8226 lines
6.2 MiB
8226 lines
6.2 MiB
<!DOCTYPE html>
|
||
<html>
|
||
<meta charset="utf-8">
|
||
<head>
|
||
<style>
|
||
#canvas
|
||
{
|
||
background-color: black;
|
||
/*
|
||
Emscripten canvas must have NO BORDER / PADDING for correct mouse position
|
||
*/
|
||
border: 0 none;
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
#output
|
||
{
|
||
border: 0 none;
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
#render
|
||
{
|
||
border: 0 none;
|
||
}
|
||
body, html
|
||
{
|
||
height: 100%;
|
||
margin: 0;
|
||
}
|
||
.hhalf
|
||
{
|
||
width: 100%;
|
||
height: 50%;
|
||
position: fixed;
|
||
}
|
||
.vhalf
|
||
{
|
||
width: 50%;
|
||
height: 100%;
|
||
position: fixed;
|
||
}
|
||
.top
|
||
{
|
||
top: 0;
|
||
}
|
||
.bottom
|
||
{
|
||
bottom: 0;
|
||
}
|
||
.left
|
||
{
|
||
left: 0;
|
||
}
|
||
.right
|
||
{
|
||
right: 0;
|
||
}
|
||
.full
|
||
{
|
||
width: 100%;
|
||
height: 100%;
|
||
position: fixed;
|
||
}
|
||
#header
|
||
{
|
||
background-color: #333366;
|
||
width: 100%;
|
||
height: 1em;
|
||
padding: 0.5em;
|
||
}
|
||
#header a
|
||
{
|
||
color: white;
|
||
text-decoration: none;
|
||
padding-right: 2em;
|
||
/*
|
||
padding: 1.5em 1em 1.5em 1em;
|
||
*/
|
||
}
|
||
#editor
|
||
{
|
||
width: 100%;
|
||
height: calc(100% - 2.5em);
|
||
}
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<!-- Reusable -->
|
||
<script>
|
||
// Topic: Create GUID / UUID in JavaScript?
|
||
// Source: https://stackoverflow.com/a/2117523
|
||
function generateUUID()
|
||
{
|
||
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(
|
||
/[xy]/g,
|
||
function(c)
|
||
{
|
||
var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
|
||
return v.toString(16);
|
||
}
|
||
);
|
||
}
|
||
// ReporterSubscription class.
|
||
|
||
function ReporterSubscription(id, callback, reporter)
|
||
{
|
||
this.id = id;
|
||
this.callback = callback;
|
||
this.reporter = reporter;
|
||
}
|
||
|
||
// Reporter class.
|
||
|
||
function Reporter(name)
|
||
{
|
||
this.name =
|
||
(typeof name !== "undefined") ?
|
||
name :
|
||
"";
|
||
this.subscriptions = [];
|
||
}
|
||
|
||
Reporter.prototype.report = function()
|
||
{
|
||
for (var id in this.subscriptions)
|
||
{
|
||
var subscription = this.subscriptions[id];
|
||
subscription.callback();
|
||
}
|
||
}
|
||
|
||
Reporter.prototype.subscribe = function(callback)
|
||
{
|
||
var id = generateUUID();
|
||
var subscription = new ReporterSubscription(id, callback, this);
|
||
this.subscriptions.push(subscription);
|
||
return subscription;
|
||
}
|
||
// Topic: JavaScript equivalent to printf/String.Format
|
||
// SRC: https://stackoverflow.com/a/4673436
|
||
function formatString()
|
||
{
|
||
// Topic: How to shift “arguments”?
|
||
// SRC: https://stackoverflow.com/questions/4775895/how-to-shift-arguments
|
||
var args = Array.prototype.slice.call(arguments);
|
||
var str = args.shift();
|
||
return str.replace(/{(\d+)}/g, function(match, number) {
|
||
return typeof args[number] != 'undefined'
|
||
? args[number]
|
||
: match
|
||
;
|
||
});
|
||
};
|
||
function bytesEncode(str)
|
||
{
|
||
return new (TextEncoder || TextEncoderLite)("utf-8").encode(str);
|
||
}
|
||
function bytesDecode(bytes)
|
||
{
|
||
return new (TextDecoder || TextDecoderLite)("utf-8").decode(bytes);
|
||
}
|
||
// Clear browser cache.
|
||
var output = document.getElementById('output');
|
||
if (output)
|
||
{
|
||
output.value = '';
|
||
}
|
||
function LOG(message)
|
||
{
|
||
console.log(message);
|
||
|
||
var log = document.getElementById("output");
|
||
if (log)
|
||
{
|
||
log.value += message + "\n";
|
||
}
|
||
}
|
||
</script>
|
||
<!-- Tool -->
|
||
<script>
|
||
function Tool()
|
||
{
|
||
var self = this;
|
||
this.fileName = "murom_1.1.0.html";
|
||
this.run = new Reporter();
|
||
this.preview = new Reporter();
|
||
this.logTranslations = {};
|
||
}
|
||
Tool.prototype.setupUI = function()
|
||
{
|
||
var self = this;
|
||
this.LOG("Tool.setupUI");
|
||
this.parameters = { };
|
||
this.parseArguments();
|
||
for (var key in this.parameters)
|
||
{
|
||
const value = this.parameters[key];
|
||
this.LOG("Parameter key: '" + key + "' value: '" + value + "'");
|
||
}
|
||
this.setupMode();
|
||
if (this.mode == "editor")
|
||
{
|
||
this.setupEditorUI();
|
||
}
|
||
if (this.mode == "preview")
|
||
{
|
||
this.setupPreviewUI();
|
||
}
|
||
}
|
||
Tool.prototype.setupDeps = function()
|
||
{
|
||
var self = this;
|
||
this.LOG("Tool.setupDeps");
|
||
if (this.mode == "editor")
|
||
{
|
||
var self = this;
|
||
|
||
this.LOG("Setup editor mode");
|
||
// Initialize ACE editor.
|
||
this.editor = window.ace.edit("editor");
|
||
// Set JavaScript language.
|
||
this.editor.session.setMode("ace/mode/javascript");
|
||
|
||
// Display script.
|
||
const zb64 = this.parameters["zipbase64"];
|
||
if (zb64)
|
||
{
|
||
const script = zipBase64Decode(zb64);
|
||
this.editor.session.setValue(script);
|
||
}
|
||
this.loadIFrame(zb64);
|
||
this.run.subscribe(function(){
|
||
self.runEditorScript();
|
||
});
|
||
this.preview.subscribe(function(){
|
||
self.previewEditorScript();
|
||
});
|
||
}
|
||
}
|
||
Tool.prototype.setupGotov = function()
|
||
{
|
||
var self = this;
|
||
this.LOG("Tool.setupGotov");
|
||
if (this.mode == "preview")
|
||
{
|
||
this.setupPreviewMode();
|
||
}
|
||
}
|
||
Tool.prototype.LOG = function()
|
||
{
|
||
var args = Array.prototype.slice.call(arguments);
|
||
var translationKey = args.shift();
|
||
var message = "";
|
||
if (translationKey in this.logTranslations)
|
||
{
|
||
args.unshift(this.logTranslations[translationKey]);
|
||
// Topic: Converting an array to a function arguments list
|
||
// SRC: https://stackoverflow.com/a/1316389
|
||
message = formatString.apply(null, args);
|
||
}
|
||
else
|
||
{
|
||
message = translationKey + " " + args.join(" ");
|
||
}
|
||
LOG(message);
|
||
}
|
||
Tool.prototype.executeScript = function()
|
||
{
|
||
const zb64 = this.parameters["zipbase64"];
|
||
if (zb64)
|
||
{
|
||
const script = zipBase64Decode(zb64);
|
||
eval(script);
|
||
}
|
||
}
|
||
Tool.prototype.parseArguments = function()
|
||
{
|
||
const query = window.location.search.substring(1);
|
||
if (!query.length)
|
||
{
|
||
return;
|
||
}
|
||
|
||
const args = query.split("&");
|
||
for (var id = 0; id < args.length; ++id)
|
||
{
|
||
const arg = args[id];
|
||
const signIndex = arg.indexOf("=");
|
||
const rawKey = arg.slice(0, signIndex);
|
||
const rawValue = arg.slice(signIndex + 1);
|
||
const key = decodeURIComponent(rawKey);
|
||
const value = decodeURIComponent(rawValue);
|
||
this.parameters[key] = value;
|
||
}
|
||
}
|
||
Tool.prototype.setupMode = function()
|
||
{
|
||
const mode = this.parameters["mode"];
|
||
if (mode)
|
||
{
|
||
if (mode == "preview")
|
||
{
|
||
this.mode = "preview";
|
||
return;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
this.mode = "editor";
|
||
}
|
||
}
|
||
|
||
Tool.prototype.setupPreviewMode = function()
|
||
{
|
||
this.LOG("Setup preview mode");
|
||
this.executeScript();
|
||
}
|
||
Tool.prototype.setupPreviewUI = function()
|
||
{
|
||
document.body.innerHTML =
|
||
'<div id="canvasContainer" class="full">' +
|
||
'<canvas id="canvas" oncontextmenu="event.preventDefault()"></canvas>' +
|
||
'</div>'
|
||
;
|
||
}
|
||
Tool.prototype.setupEditorUI = function()
|
||
{
|
||
document.body.innerHTML =
|
||
'<div class="vhalf left">' +
|
||
'<div id="header">' +
|
||
'<a id="run" href="javascript:window.muromTool.run.report()"><strong>МУРОМ</strong></a>' +
|
||
'<a id="run" href="javascript:window.muromTool.preview.report()">Просмотр</a>' +
|
||
'</div>' +
|
||
'<div id="editor"></div>' +
|
||
'</div>' +
|
||
'<div class="vhalf right">' +
|
||
'<iframe id="render" class="vhalf">' +
|
||
'<p>ERROR Your web browser does not support iframes</p>' +
|
||
'</iframe>' +
|
||
'</div>'
|
||
;
|
||
}
|
||
Tool.prototype.runEditorScript = function()
|
||
{
|
||
const script = this.editor.session.getValue();
|
||
const zb64 = zipBase64Encode(script);
|
||
// Update 'zipbase64' argument value each time script is 'run'.
|
||
var path = window.location.pathname + "?zipbase64=" + zb64;
|
||
history.pushState(null, "", path);
|
||
|
||
this.loadIFrame(zb64);
|
||
}
|
||
Tool.prototype.previewEditorScript = function()
|
||
{
|
||
const script = this.editor.session.getValue();
|
||
const zb64 = zipBase64Encode(script);
|
||
const url = this.fileName + "?mode=preview&zipbase64=" + zb64;
|
||
window.open(url, '_blank');
|
||
}
|
||
Tool.prototype.loadIFrame = function(zipBase64Script)
|
||
{
|
||
var render = document.getElementById("render");
|
||
var url = this.fileName + "?mode=preview";
|
||
// Pass script to iframe if it's present.
|
||
if (zipBase64Script)
|
||
{
|
||
url += "&zipbase64=" + zipBase64Script;
|
||
}
|
||
render.src = url;
|
||
}
|
||
|
||
window.muromTool = new Tool();
|
||
window.muromTool.setupUI();
|
||
</script>
|
||
<!-- External -->
|
||
<script>
|
||
if (window.muromTool.mode == "editor")
|
||
{
|
||
(function(){function o(n){var i=e;n&&(e[n]||(e[n]={}),i=e[n]);if(!i.define||!i.define.packaged)t.original=i.define,i.define=t,i.define.packaged=!0;if(!i.require||!i.require.packaged)r.original=i.require,i.require=r,i.require.packaged=!0}var ACE_NAMESPACE = "ace",e=function(){return this}();!e&&typeof window!="undefined"&&(e=window);if(!ACE_NAMESPACE&&typeof requirejs!="undefined")return;var t=function(e,n,r){if(typeof e!="string"){t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace());return}arguments.length==2&&(r=n),t.modules[e]||(t.payloads[e]=r,t.modules[e]=null)};t.modules={},t.payloads={};var n=function(e,t,n){if(typeof t=="string"){var i=s(e,t);if(i!=undefined)return n&&n(),i}else if(Object.prototype.toString.call(t)==="[object Array]"){var o=[];for(var u=0,a=t.length;u<a;++u){var f=s(e,t[u]);if(f==undefined&&r.original)return;o.push(f)}return n&&n.apply(null,o)||!0}},r=function(e,t){var i=n("",e,t);return i==undefined&&r.original?r.original.apply(this,arguments):i},i=function(e,t){if(t.indexOf("!")!==-1){var n=t.split("!");return i(e,n[0])+"!"+i(e,n[1])}if(t.charAt(0)=="."){var r=e.split("/").slice(0,-1).join("/");t=r+"/"+t;while(t.indexOf(".")!==-1&&s!=t){var s=t;t=t.replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return t},s=function(e,r){r=i(e,r);var s=t.modules[r];if(!s){s=t.payloads[r];if(typeof s=="function"){var o={},u={id:r,uri:"",exports:o,packaged:!0},a=function(e,t){return n(r,e,t)},f=s(a,o,u);o=f||u.exports,t.modules[r]=o,delete t.payloads[r]}s=t.modules[r]=o||s}return s};o(ACE_NAMESPACE)})(),ace.define("ace/lib/regexp",["require","exports","module"],function(e,t,n){"use strict";function o(e){return(e.global?"g":"")+(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.extended?"x":"")+(e.sticky?"y":"")}function u(e,t,n){if(Array.prototype.indexOf)return e.indexOf(t,n);for(var r=n||0;r<e.length;r++)if(e[r]===t)return r;return-1}var r={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},i=r.exec.call(/()??/,"")[1]===undefined,s=function(){var e=/^/g;return r.test.call(e,""),!e.lastIndex}();if(s&&i)return;RegExp.prototype.exec=function(e){var t=r.exec.apply(this,arguments),n,a;if(typeof e=="string"&&t){!i&&t.length>1&&u(t,"")>-1&&(a=RegExp(this.source,r.replace.call(o(this),"g","")),r.replace.call(e.slice(t.index),a,function(){for(var e=1;e<arguments.length-2;e++)arguments[e]===undefined&&(t[e]=undefined)}));if(this._xregexp&&this._xregexp.captureNames)for(var f=1;f<t.length;f++)n=this._xregexp.captureNames[f-1],n&&(t[n]=t[f]);!s&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--}return t},s||(RegExp.prototype.test=function(e){var t=r.exec.call(this,e);return t&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--,!!t})}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t==="undefined"||t==="boolean"||t==="number"||t==="string"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n=="function"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r=="function"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!="function")throw new TypeError("Function.prototype.bind called on incompatible "+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,"__defineGetter__"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,"XXX"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)=="[object Array]"});var m=Object("a"),g=m[0]!="a"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduce of empty array with no initial value");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError("reduce of empty array with no initial value")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduceRight of empty array with no initial value");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!="object")throw new TypeError("typeof prototype["+typeof t+"] != 'object'");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document=="undefined"||w(document.createElement("div"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T="Property description must be an object: ",N="Object.defineProperty called on non-object: ",C="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(t,n,r){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(N+t);if(typeof r!="object"&&typeof r!="function"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,"value"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,"get")&&l(t,n,r.get),f(r,"set")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n=="function"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n="";while(f(t,n))n+="?";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!="object"&&typeof e!="function"||e===null)throw new TypeError("Object.keys called on a non-object");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _=" \n\x0b\f\r \u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff";if(!String.prototype.trim||_.trim()){_="["+_+"]";var D=new RegExp("^"+_+_+"*"),P=new RegExp(_+_+"*$");String.prototype.trim=function(){return String(this).replace(D,"").replace(P,"")}}var F=function(e){if(e==null)throw new TypeError("can't convert "+e+" to object");return Object(e)}}),ace.define("ace/lib/fixoldbrowsers",["require","exports","module","ace/lib/regexp","ace/lib/es5-shim"],function(e,t,n){"use strict";e("./regexp"),e("./es5-shim"),typeof Element!="undefined"&&!Element.prototype.remove&&Object.defineProperty(Element.prototype,"remove",{enumerable:!1,writable:!0,configurable:!0,value:function(){this.parentNode&&this.parentNode.removeChild(this)}})}),ace.define("ace/lib/useragent",["require","exports","module"],function(e,t,n){"use strict";t.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},t.getOS=function(){return t.isMac?t.OS.MAC:t.isLinux?t.OS.LINUX:t.OS.WINDOWS};var r=typeof navigator=="object"?navigator:{},i=(/mac|win|linux/i.exec(r.platform)||["other"])[0].toLowerCase(),s=r.userAgent||"",o=r.appName||"";t.isWin=i=="win",t.isMac=i=="mac",t.isLinux=i=="linux",t.isIE=o=="Microsoft Internet Explorer"||o.indexOf("MSAppHost")>=0?parseFloat((s.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((s.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=s.match(/ Gecko\/\d+/),t.isOpera=typeof opera=="object"&&Object.prototype.toString.call(window.opera)=="[object Opera]",t.isWebKit=parseFloat(s.split("WebKit/")[1])||undefined,t.isChrome=parseFloat(s.split(" Chrome/")[1])||undefined,t.isEdge=parseFloat(s.split(" Edge/")[1])||undefined,t.isAIR=s.indexOf("AdobeAIR")>=0,t.isIPad=s.indexOf("iPad")>=0,t.isAndroid=s.indexOf("Android")>=0,t.isChromeOS=s.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(s)&&!window.MSStream,t.isIOS&&(t.isMac=!0),t.isMobile=t.isIPad||t.isAndroid}),ace.define("ace/lib/dom",["require","exports","module","ace/lib/useragent"],function(e,t,n){"use strict";var r=e("./useragent"),i="http://www.w3.org/1999/xhtml";t.buildDom=function o(e,t,n){if(typeof e=="string"&&e){var r=document.createTextNode(e);return t&&t.appendChild(r),r}if(!Array.isArray(e))return e;if(typeof e[0]!="string"||!e[0]){var i=[];for(var s=0;s<e.length;s++){var u=o(e[s],t,n);u&&i.push(u)}return i}var a=document.createElement(e[0]),f=e[1],l=1;f&&typeof f=="object"&&!Array.isArray(f)&&(l=2);for(var s=l;s<e.length;s++)o(e[s],a,n);return l==2&&Object.keys(f).forEach(function(e){var t=f[e];e==="class"?a.className=Array.isArray(t)?t.join(" "):t:typeof t=="function"||e=="value"?a[e]=t:e==="ref"?n&&(n[t]=a):t!=null&&a.setAttribute(e,t)}),t&&t.appendChild(a),a},t.getDocumentHead=function(e){return e||(e=document),e.head||e.getElementsByTagName("head")[0]||e.documentElement},t.createElement=function(e,t){return document.createElementNS?document.createElementNS(t||i,e):document.createElement(e)},t.removeChildren=function(e){e.innerHTML=""},t.createTextNode=function(e,t){var n=t?t.ownerDocument:document;return n.createTextNode(e)},t.createFragment=function(e){var t=e?e.ownerDocument:document;return t.createDocumentFragment()},t.hasCssClass=function(e,t){var n=(e.className+"").split(/\s+/g);return n.indexOf(t)!==-1},t.addCssClass=function(e,n){t.hasCssClass(e,n)||(e.className+=" "+n)},t.removeCssClass=function(e,t){var n=e.className.split(/\s+/g);for(;;){var r=n.indexOf(t);if(r==-1)break;n.splice(r,1)}e.className=n.join(" ")},t.toggleCssClass=function(e,t){var n=e.className.split(/\s+/g),r=!0;for(;;){var i=n.indexOf(t);if(i==-1)break;r=!1,n.splice(i,1)}return r&&n.push(t),e.className=n.join(" "),r},t.setCssClass=function(e,n,r){r?t.addCssClass(e,n):t.removeCssClass(e,n)},t.hasCssString=function(e,t){var n=0,r;t=t||document;if(r=t.querySelectorAll("style"))while(n<r.length)if(r[n++].id===e)return!0},t.importCssString=function(n,r,i){var s=i;if(!i||!i.getRootNode)s=document;else{s=i.getRootNode();if(!s||s==i)s=document}var o=s.ownerDocument||s;if(r&&t.hasCssString(r,s))return null;r&&(n+="\n/*# sourceURL=ace/css/"+r+" */");var u=t.createElement("style");u.appendChild(o.createTextNode(n)),r&&(u.id=r),s==o&&(s=t.getDocumentHead(o)),s.insertBefore(u,s.firstChild)},t.importCssStylsheet=function(e,n){t.buildDom(["link",{rel:"stylesheet",href:e}],t.getDocumentHead(n))},t.scrollbarWidth=function(e){var n=t.createElement("ace_inner");n.style.width="100%",n.style.minWidth="0px",n.style.height="200px",n.style.display="block";var r=t.createElement("ace_outer"),i=r.style;i.position="absolute",i.left="-10000px",i.overflow="hidden",i.width="200px",i.minWidth="0px",i.height="150px",i.display="block",r.appendChild(n);var s=e.documentElement;s.appendChild(r);var o=n.offsetWidth;i.overflow="scroll";var u=n.offsetWidth;return o==u&&(u=r.clientWidth),s.removeChild(r),o-u},typeof document=="undefined"&&(t.importCssString=function(){}),t.computedStyle=function(e,t){return window.getComputedStyle(e,"")||{}},t.setStyle=function(e,t,n){e[t]!==n&&(e[t]=n)},t.HAS_CSS_ANIMATION=!1,t.HAS_CSS_TRANSFORMS=!1,t.HI_DPI=r.isWin?typeof window!="undefined"&&window.devicePixelRatio>=1.5:!0;if(typeof document!="undefined"){var s=document.createElement("div");t.HI_DPI&&s.style.transform!==undefined&&(t.HAS_CSS_TRANSFORMS=!0),!r.isEdge&&typeof s.style.animationName!="undefined"&&(t.HAS_CSS_ANIMATION=!0),s=null}t.HAS_CSS_TRANSFORMS?t.translate=function(e,t,n){e.style.transform="translate("+Math.round(t)+"px, "+Math.round(n)+"px)"}:t.translate=function(e,t,n){e.style.top=Math.round(n)+"px",e.style.left=Math.round(t)+"px"}}),ace.define("ace/lib/oop",["require","exports","module"],function(e,t,n){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define("ace/lib/keys",["require","exports","module","ace/lib/oop"],function(e,t,n){"use strict";var r=e("./oop"),i=function(){var e={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,"super":8,meta:8,command:8,cmd:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",96:"Numpad0",97:"Numpad1",98:"Numpad2",99:"Numpad3",100:"Numpad4",101:"Numpad5",102:"Numpad6",103:"Numpad7",104:"Numpad8",105:"Numpad9","-13":"NumpadEnter",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",111:"/",106:"*"}},t,n;for(n in e.FUNCTION_KEYS)t=e.FUNCTION_KEYS[n].toLowerCase(),e[t]=parseInt(n,10);for(n in e.PRINTABLE_KEYS)t=e.PRINTABLE_KEYS[n].toLowerCase(),e[t]=parseInt(n,10);return r.mixin(e,e.MODIFIER_KEYS),r.mixin(e,e.PRINTABLE_KEYS),r.mixin(e,e.FUNCTION_KEYS),e.enter=e["return"],e.escape=e.esc,e.del=e["delete"],e[173]="-",function(){var t=["cmd","ctrl","alt","shift"];for(var n=Math.pow(2,t.length);n--;)e.KEY_MODS[n]=t.filter(function(t){return n&e.KEY_MODS[t]}).join("-")+"-"}(),e.KEY_MODS[0]="",e.KEY_MODS[-1]="input-",e}();r.mixin(t,i),t.keyCodeToString=function(e){var t=i[e];return typeof t!="string"&&(t=String.fromCharCode(e)),t.toLowerCase()}}),ace.define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,n){"use strict";function a(e,t,n){var a=u(t);if(!i.isMac&&s){t.getModifierState&&(t.getModifierState("OS")||t.getModifierState("Win"))&&(a|=8);if(s.altGr){if((3&a)==3)return;s.altGr=0}if(n===18||n===17){var f="location"in t?t.location:t.keyLocation;if(n===17&&f===1)s[n]==1&&(o=t.timeStamp);else if(n===18&&a===3&&f===2){var l=t.timeStamp-o;l<50&&(s.altGr=!0)}}}n in r.MODIFIER_KEYS&&(n=-1),a&8&&n>=91&&n<=93&&(n=-1);if(!a&&n===13){var f="location"in t?t.location:t.keyLocation;if(f===3){e(t,a,-n);if(t.defaultPrevented)return}}if(i.isChromeOS&&a&8){e(t,a,n);if(t.defaultPrevented)return;a&=-9}return!!a||n in r.FUNCTION_KEYS||n in r.PRINTABLE_KEYS?e(t,a,n):!1}function f(){s=Object.create(null)}var r=e("./keys"),i=e("./useragent"),s=null,o=0;t.addListener=function(e,t,n){if(e.addEventListener)return e.addEventListener(t,n,!1);if(e.attachEvent){var r=function(){n.call(e,window.event)};n._wrapper=r,e.attachEvent("on"+t,r)}},t.removeListener=function(e,t,n){if(e.removeEventListener)return e.removeEventListener(t,n,!1);e.detachEvent&&e.detachEvent("on"+t,n._wrapper||n)},t.stopEvent=function(e){return t.stopPropagation(e),t.preventDefault(e),!1},t.stopPropagation=function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},t.preventDefault=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1},t.getButton=function(e){return e.type=="dblclick"?0:e.type=="contextmenu"||i.isMac&&e.ctrlKey&&!e.altKey&&!e.shiftKey?2:e.preventDefault?e.button:{1:0,2:2,4:1}[e.button]},t.capture=function(e,n,r){function i(e){n&&n(e),r&&r(e),t.removeListener(document,"mousemove",n,!0),t.removeListener(document,"mouseup",i,!0),t.removeListener(document,"dragstart",i,!0)}return t.addListener(document,"mousemove",n,!0),t.addListener(document,"mouseup",i,!0),t.addListener(document,"dragstart",i,!0),i},t.addMouseWheelListener=function(e,n){"onmousewheel"in e?t.addListener(e,"mousewheel",function(e){var t=8;e.wheelDeltaX!==undefined?(e.wheelX=-e.wheelDeltaX/t,e.wheelY=-e.wheelDeltaY/t):(e.wheelX=0,e.wheelY=-e.wheelDelta/t),n(e)}):"onwheel"in e?t.addListener(e,"wheel",function(e){var t=.35;switch(e.deltaMode){case e.DOM_DELTA_PIXEL:e.wheelX=e.deltaX*t||0,e.wheelY=e.deltaY*t||0;break;case e.DOM_DELTA_LINE:case e.DOM_DELTA_PAGE:e.wheelX=(e.deltaX||0)*5,e.wheelY=(e.deltaY||0)*5}n(e)}):t.addListener(e,"DOMMouseScroll",function(e){e.axis&&e.axis==e.HORIZONTAL_AXIS?(e.wheelX=(e.detail||0)*5,e.wheelY=0):(e.wheelX=0,e.wheelY=(e.detail||0)*5),n(e)})},t.addMultiMouseDownListener=function(e,n,r,s){function c(e){t.getButton(e)!==0?o=0:e.detail>1?(o++,o>4&&(o=1)):o=1;if(i.isIE){var c=Math.abs(e.clientX-u)>5||Math.abs(e.clientY-a)>5;if(!f||c)o=1;f&&clearTimeout(f),f=setTimeout(function(){f=null},n[o-1]||600),o==1&&(u=e.clientX,a=e.clientY)}e._clicks=o,r[s]("mousedown",e);if(o>4)o=0;else if(o>1)return r[s](l[o],e)}function h(e){o=2,f&&clearTimeout(f),f=setTimeout(function(){f=null},n[o-1]||600),r[s]("mousedown",e),r[s](l[o],e)}var o=0,u,a,f,l={2:"dblclick",3:"tripleclick",4:"quadclick"};Array.isArray(e)||(e=[e]),e.forEach(function(e){t.addListener(e,"mousedown",c),i.isOldIE&&t.addListener(e,"dblclick",h)})};var u=!i.isMac||!i.isOpera||"KeyboardEvent"in window?function(e){return 0|(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)}:function(e){return 0|(e.metaKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.ctrlKey?8:0)};t.getModifierString=function(e){return r.KEY_MODS[u(e)]},t.addCommandKeyListener=function(e,n){var r=t.addListener;if(i.isOldGecko||i.isOpera&&!("KeyboardEvent"in window)){var o=null;r(e,"keydown",function(e){o=e.keyCode}),r(e,"keypress",function(e){return a(n,e,o)})}else{var u=null;r(e,"keydown",function(e){s[e.keyCode]=(s[e.keyCode]||0)+1;var t=a(n,e,e.keyCode);return u=e.defaultPrevented,t}),r(e,"keypress",function(e){u&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),u=null)}),r(e,"keyup",function(e){s[e.keyCode]=null}),s||(f(),r(window,"focus",f))}};if(typeof window=="object"&&window.postMessage&&!i.isOldIE){var l=1;t.nextTick=function(e,n){n=n||window;var r="zero-timeout-message-"+l++,i=function(s){s.data==r&&(t.stopPropagation(s),t.removeListener(n,"message",i),e())};t.addListener(n,"message",i),n.postMessage(r,"*")}}t.$idleBlocked=!1,t.onIdle=function(e,n){return setTimeout(function r(){t.$idleBlocked?setTimeout(r,100):e()},n)},t.$idleBlockId=null,t.blockIdle=function(e){t.$idleBlockId&&clearTimeout(t.$idleBlockId),t.$idleBlocked=!0,t.$idleBlockId=setTimeout(function(){t.$idleBlocked=!1},e||100)},t.nextFrame=typeof window=="object"&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}}),ace.define("ace/range",["require","exports","module"],function(e,t,n){"use strict";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e=="object"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e=="object"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),ace.define("ace/lib/lang",["require","exports","module"],function(e,t,n){"use strict";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){var n="";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(r,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]=="object"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function s(e){if(typeof e!="object"||!e)return e;var t;if(Array.isArray(e)){t=[];for(var n=0;n<e.length;n++)t[n]=s(e[n]);return t}if(Object.prototype.toString.call(e)!=="[object Object]")return e;t={};for(var n in e)t[n]=s(e[n]);return t},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")},t.escapeHTML=function(e){return(""+e).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/lib/keys"],function(e,t,n){"use strict";var r=e("../lib/event"),i=e("../lib/useragent"),s=e("../lib/dom"),o=e("../lib/lang"),u=i.isChrome<18,a=i.isIE,f=i.isChrome>63,l=400,c=e("../lib/keys"),h=c.KEY_MODS,p=i.isIOS,d=p?/\s/:/\n/,v=function(e,t){function W(){x=!0,n.blur(),n.focus(),x=!1}function V(e){e.keyCode==27&&n.value.length<n.selectionStart&&(g||(T=n.value),N=C=-1,A()),X()}function J(){clearTimeout($),$=setTimeout(function(){b&&(n.style.cssText=b,b=""),t.renderer.$isMousePressed=!1,t.renderer.$keepTextAreaAtCursor&&t.renderer.$moveTextAreaToCursor()},0)}function Q(e,t,n){var r=null,i=!1;n.addEventListener("keydown",function(e){r&&clearTimeout(r),i=!0},!0),n.addEventListener("keyup",function(e){r=setTimeout(function(){i=!1},100)},!0);var s=function(e){if(document.activeElement!==n)return;if(i||g||t.$mouseHandler.isMousePressed)return;if(v)return;var r=n.selectionStart,s=n.selectionEnd,o=null,u=0;console.log(r,s);if(r==0)o=c.up;else if(r==1)o=c.home;else if(s>C&&T[s]=="\n")o=c.end;else if(r<N&&T[r-1]==" ")o=c.left,u=h.option;else if(r<N||r==N&&C!=N&&r==s)o=c.left;else if(s>C&&T.slice(0,s).split("\n").length>2)o=c.down;else if(s>C&&T[s-1]==" ")o=c.right,u=h.option;else if(s>C||s==C&&C!=N&&r==s)o=c.right;r!==s&&(u|=h.shift),o&&(t.onCommandKey(null,u,o),N=r,C=s,A(""))};document.addEventListener("selectionchange",s),t.on("destroy",function(){document.removeEventListener("selectionchange",s)})}var n=s.createElement("textarea");n.className="ace_text-input",n.setAttribute("wrap","off"),n.setAttribute("autocorrect","off"),n.setAttribute("autocapitalize","off"),n.setAttribute("spellcheck",!1),n.style.opacity="0",e.insertBefore(n,e.firstChild);var v=!1,m=!1,g=!1,y=!1,b="",w=!0,E=!1;i.isMobile||(n.style.fontSize="1px");var S=!1,x=!1,T="",N=0,C=0;try{var k=document.activeElement===n}catch(L){}r.addListener(n,"blur",function(e){if(x)return;t.onBlur(e),k=!1}),r.addListener(n,"focus",function(e){if(x)return;k=!0;if(i.isEdge)try{if(!document.hasFocus())return}catch(e){}t.onFocus(e),i.isEdge?setTimeout(A):A()}),this.$focusScroll=!1,this.focus=function(){if(b||f||this.$focusScroll=="browser")return n.focus({preventScroll:!0});var e=n.style.top;n.style.position="fixed",n.style.top="0px";try{var t=n.getBoundingClientRect().top!=0}catch(r){return}var i=[];if(t){var s=n.parentElement;while(s&&s.nodeType==1)i.push(s),s.setAttribute("ace_nocontext",!0),!s.parentElement&&s.getRootNode?s=s.getRootNode().host:s=s.parentElement}n.focus({preventScroll:!0}),t&&i.forEach(function(e){e.removeAttribute("ace_nocontext")}),setTimeout(function(){n.style.position="",n.style.top=="0px"&&(n.style.top=e)},0)},this.blur=function(){n.blur()},this.isFocused=function(){return k},t.on("beforeEndOperation",function(){if(t.curOp&&t.curOp.command.name=="insertstring")return;g&&(T=n.value="",z()),A()});var A=p?function(e){if(!k||v&&!e||y)return;e||(e="");var r="\n ab"+e+"cde fg\n";r!=n.value&&(n.value=T=r);var i=4,s=4+(e.length||(t.selection.isEmpty()?0:1));(N!=i||C!=s)&&n.setSelectionRange(i,s),N=i,C=s}:function(){if(g||y)return;if(!k&&!D)return;g=!0;var e=t.selection,r=e.getRange(),i=e.cursor.row,s=r.start.column,o=r.end.column,u=t.session.getLine(i);if(r.start.row!=i){var a=t.session.getLine(i-1);s=r.start.row<i-1?0:s,o+=a.length+1,u=a+"\n"+u}else if(r.end.row!=i){var f=t.session.getLine(i+1);o=r.end.row>i+1?f.length:o,o+=u.length+1,u=u+"\n"+f}u.length>l&&(s<l&&o<l?u=u.slice(0,l):(u="\n",s=0,o=1));var c=u+"\n\n";c!=T&&(n.value=T=c,N=C=c.length),D&&(N=n.selectionStart,C=n.selectionEnd);if(C!=o||N!=s||n.selectionEnd!=C)try{n.setSelectionRange(s,o),N=s,C=o}catch(h){}g=!1};k&&t.onFocus();var O=function(e){return e.selectionStart===0&&e.selectionEnd>=T.length&&e.value===T&&T&&e.selectionEnd!==C},M=function(e){if(g)return;v?v=!1:O(n)&&(t.selectAll(),A())},_=null;this.setInputHandler=function(e){_=e},this.getInputHandler=function(){return _};var D=!1,P=function(e,r){D&&(D=!1);if(m)return A(),e&&t.onPaste(e),m=!1,"";var i=n.selectionStart,s=n.selectionEnd,o=N,u=T.length-C,a=e,f=e.length-i,l=e.length-s,c=0;while(o>0&&T[c]==e[c])c++,o--;a=a.slice(c),c=1;while(u>0&&T.length-c>N-1&&T[T.length-c]==e[e.length-c])c++,u--;return f-=c-1,l-=c-1,a=a.slice(0,a.length-c+1),!r&&f==a.length&&!o&&!u&&!l?"":(y=!0,a&&!o&&!u&&!f&&!l||S?t.onTextInput(a):t.onTextInput(a,{extendLeft:o,extendRight:u,restoreStart:f,restoreEnd:l}),y=!1,T=e,N=i,C=s,a)},H=function(e){if(g)return U();var t=n.value,r=P(t,!0);(t.length>l+100||d.test(r))&&A()},B=function(e,t,n){var r=e.clipboardData||window.clipboardData;if(!r||u)return;var i=a||n?"Text":"text/plain";try{return t?r.setData(i,t)!==!1:r.getData(i)}catch(e){if(!n)return B(e,t,!0)}},j=function(e,i){var s=t.getCopyText();if(!s)return r.preventDefault(e);B(e,s)?(p&&(A(s),v=s,setTimeout(function(){v=!1},10)),i?t.onCut():t.onCopy(),r.preventDefault(e)):(v=!0,n.value=s,n.select(),setTimeout(function(){v=!1,A(),i?t.onCut():t.onCopy()}))},F=function(e){j(e,!0)},I=function(e){j(e,!1)},q=function(e){var s=B(e);typeof s=="string"?(s&&t.onPaste(s,e),i.isIE&&setTimeout(A),r.preventDefault(e)):(n.value="",m=!0)};r.addCommandKeyListener(n,t.onCommandKey.bind(t)),r.addListener(n,"select",M),r.addListener(n,"input",H),r.addListener(n,"cut",F),r.addListener(n,"copy",I),r.addListener(n,"paste",q),(!("oncut"in n)||!("oncopy"in n)||!("onpaste"in n))&&r.addListener(e,"keydown",function(e){if(i.isMac&&!e.metaKey||!e.ctrlKey)return;switch(e.keyCode){case 67:I(e);break;case 86:q(e);break;case 88:F(e)}});var R=function(e){if(g||!t.onCompositionStart||t.$readOnly)return;g={};if(S)return;setTimeout(U,0),t.on("mousedown",W);var r=t.getSelectionRange();r.end.row=r.start.row,r.end.column=r.start.column,g.markerRange=r,g.selectionStart=N,t.onCompositionStart(g),g.useTextareaForIME?(n.value="",T="",N=0,C=0):(n.msGetInputContext&&(g.context=n.msGetInputContext()),n.getInputContext&&(g.context=n.getInputContext()))},U=function(){if(!g||!t.onCompositionUpdate||t.$readOnly)return;if(S)return W();if(g.useTextareaForIME)t.onCompositionUpdate(n.value);else{var e=n.value;P(e),g.markerRange&&(g.context&&(g.markerRange.start.column=g.selectionStart=g.context.compositionStartOffset),g.markerRange.end.column=g.markerRange.start.column+C-g.selectionStart)}},z=function(e){if(!t.onCompositionEnd||t.$readOnly)return;g=!1,t.onCompositionEnd(),t.off("mousedown",W),e&&H()},X=o.delayedCall(U,50).schedule.bind(null,null);r.addListener(n,"compositionstart",R),r.addListener(n,"compositionupdate",U),r.addListener(n,"keyup",V),r.addListener(n,"keydown",X),r.addListener(n,"compositionend",z),this.getElement=function(){return n},this.setCommandMode=function(e){S=e,n.readOnly=!1},this.setReadOnly=function(e){S||(n.readOnly=e)},this.setCopyWithEmptySelection=function(e){E=e},this.onContextMenu=function(e){D=!0,A(),t._emit("nativecontextmenu",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,o){b||(b=n.style.cssText),n.style.cssText=(o?"z-index:100000;":"")+(i.isIE?"opacity:0.1;":"")+"text-indent: -"+(N+C)*t.renderer.characterWidth*.5+"px;";var u=t.container.getBoundingClientRect(),a=s.computedStyle(t.container),f=u.top+(parseInt(a.borderTopWidth)||0),l=u.left+(parseInt(u.borderLeftWidth)||0),c=u.bottom-f-n.clientHeight-2,h=function(e){s.translate(n,e.clientX-l-2,Math.min(e.clientY-f-2,c))};h(e);if(e.type!="mousedown")return;t.renderer.$isMousePressed=!0,clearTimeout($),i.isWin&&r.capture(t.container,h,J)},this.onContextMenuClose=J;var $,K=function(e){t.textInput.onContextMenu(e),J()};r.addListener(n,"mouseup",K),r.addListener(n,"mousedown",function(e){e.preventDefault(),J()}),r.addListener(t.renderer.scroller,"contextmenu",K),r.addListener(n,"contextmenu",K),p&&Q(e,t,n)};t.TextInput=v}),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/useragent"],function(e,t,n){"use strict";function o(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e));var n=["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"];n.forEach(function(t){e[t]=this[t]},this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}function u(e,t,n,r){return Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2))}function a(e,t){if(e.start.row==e.end.row)var n=2*t.column-e.start.column-e.end.column;else if(e.start.row==e.end.row-1&&!e.start.column&&!e.end.column)var n=t.column-4;else var n=2*t.row-e.start.row-e.end.row;return n<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}var r=e("../lib/useragent"),i=0,s=550;(function(){this.onMouseDown=function(e){var t=e.inSelection(),n=e.getDocumentPosition();this.mousedownEvent=e;var i=this.editor,s=e.getButton();if(s!==0){var o=i.getSelectionRange(),u=o.isEmpty();(u||s==1)&&i.selection.moveToPosition(n),s==2&&(i.textInput.onContextMenu(e.domEvent),r.isMozilla||e.preventDefault());return}this.mousedownEvent.time=Date.now();if(t&&!i.isFocused()){i.focus();if(this.$focusTimeout&&!this.$clickSelection&&!i.inMultiSelectMode){this.setState("focusWait"),this.captureMouse(e);return}}return this.captureMouse(e),this.startSelect(n,e.domEvent._clicks>1),e.preventDefault()},this.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var n=this.editor;if(!this.mousedownEvent)return;this.mousedownEvent.getShiftKey()?n.selection.selectToPosition(e):t||n.selection.moveToPosition(e),t||this.select(),n.renderer.scroller.setCapture&&n.renderer.scroller.setCapture(),n.setStyle("ace_selecting"),this.setState("select")},this.select=function(){var e,t=this.editor,n=t.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var r=this.$clickSelection.comparePoint(n);if(r==-1)e=this.$clickSelection.end;else if(r==1)e=this.$clickSelection.start;else{var i=a(this.$clickSelection,n);n=i.cursor,e=i.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(n),t.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(e){var t,n=this.editor,r=n.renderer.screenToTextCoordinates(this.x,this.y),i=n.selection[e](r.row,r.column);if(this.$clickSelection){var s=this.$clickSelection.comparePoint(i.start),o=this.$clickSelection.comparePoint(i.end);if(s==-1&&o<=0){t=this.$clickSelection.end;if(i.end.row!=r.row||i.end.column!=r.column)r=i.start}else if(o==1&&s>=0){t=this.$clickSelection.start;if(i.start.row!=r.row||i.start.column!=r.column)r=i.end}else if(s==-1&&o==1)r=i.end,t=i.start;else{var u=a(this.$clickSelection,r);r=u.cursor,t=u.anchor}n.selection.setSelectionAnchor(t.row,t.column)}n.selection.selectToPosition(r),n.renderer.scrollCursorIntoView()},this.selectEnd=this.selectAllEnd=this.selectByWordsEnd=this.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting"),this.editor.renderer.scroller.releaseCapture&&this.editor.renderer.scroller.releaseCapture()},this.focusWait=function(){var e=u(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),t=Date.now();(e>i||t-this.mousedownEvent.time>this.$focusTimeout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(e){var t=e.getDocumentPosition(),n=this.editor,r=n.session,i=r.getBracketRange(t);i?(i.isEmpty()&&(i.start.column--,i.end.column++),this.setState("select")):(i=n.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=i,this.select()},this.onTripleClick=function(e){var t=e.getDocumentPosition(),n=this.editor;this.setState("selectByLines");var r=n.getSelectionRange();r.isMultiLine()&&r.contains(t.row,t.column)?(this.$clickSelection=n.selection.getLineRange(r.start.row),this.$clickSelection.end=n.selection.getLineRange(r.end.row).end):this.$clickSelection=n.selection.getLineRange(t.row),this.select()},this.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},this.onMouseWheel=function(e){if(e.getAccelKey())return;e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var n=this.$lastScroll,r=e.domEvent.timeStamp,i=r-n.t,o=i?e.wheelX/i:n.vx,u=i?e.wheelY/i:n.vy;i<s&&(o=(o+n.vx)/2,u=(u+n.vy)/2);var a=Math.abs(o/u),f=!1;a>=1&&t.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(f=!0),a<=1&&t.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(f=!0);if(f)n.allowed=r;else if(r-n.allowed<s){var l=Math.abs(o)<=1.5*Math.abs(n.vx)&&Math.abs(u)<=1.5*Math.abs(n.vy);l?(f=!0,n.allowed=r):n.allowed=0}n.t=r,n.vx=o,n.vy=u;if(f)return t.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()}}).call(o.prototype),t.DefaultHandlers=o}),ace.define("ace/tooltip",["require","exports","module","ace/lib/oop","ace/lib/dom"],function(e,t,n){"use strict";function s(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}var r=e("./lib/oop"),i=e("./lib/dom");(function(){this.$init=function(){return this.$element=i.createElement("div"),this.$element.className="ace_tooltip",this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},this.getElement=function(){return this.$element||this.$init()},this.setText=function(e){this.getElement().textContent=e},this.setHtml=function(e){this.getElement().innerHTML=e},this.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},this.setClassName=function(e){i.addCssClass(this.getElement(),e)},this.show=function(e,t,n){e!=null&&this.setText(e),t!=null&&n!=null&&this.setPosition(t,n),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},this.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.isOpen=!1)},this.getHeight=function(){return this.getElement().offsetHeight},this.getWidth=function(){return this.getElement().offsetWidth},this.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)}}).call(s.prototype),t.Tooltip=s}),ace.define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event","ace/tooltip"],function(e,t,n){"use strict";function u(e){function l(){var r=u.getDocumentPosition().row,s=n.$annotations[r];if(!s)return c();var o=t.session.getLength();if(r==o){var a=t.renderer.pixelToScreenCoordinates(0,u.y).row,l=u.$pos;if(a>t.session.documentToScreenRow(l.row,l.column))return c()}if(f==s)return;f=s.text.join("<br/>"),i.setHtml(f),i.show(),t._signal("showGutterTooltip",i),t.on("mousewheel",c);if(e.$tooltipFollowsMouse)h(u);else{var p=u.domEvent.target,d=p.getBoundingClientRect(),v=i.getElement().style;v.left=d.right+"px",v.top=d.bottom+"px"}}function c(){o&&(o=clearTimeout(o)),f&&(i.hide(),f=null,t._signal("hideGutterTooltip",i),t.removeEventListener("mousewheel",c))}function h(e){i.setPosition(e.x,e.y)}var t=e.editor,n=t.renderer.$gutterLayer,i=new a(t.container);e.editor.setDefaultHandler("guttermousedown",function(r){if(!t.isFocused()||r.getButton()!=0)return;var i=n.getRegion(r);if(i=="foldWidgets")return;var s=r.getDocumentPosition().row,o=t.session.selection;if(r.getShiftKey())o.selectTo(s,0);else{if(r.domEvent.detail==2)return t.selectAll(),r.preventDefault();e.$clickSelection=t.selection.getLineRange(s)}return e.setState("selectByLines"),e.captureMouse(r),r.preventDefault()});var o,u,f;e.editor.setDefaultHandler("guttermousemove",function(t){var n=t.domEvent.target||t.domEvent.srcElement;if(r.hasCssClass(n,"ace_fold-widget"))return c();f&&e.$tooltipFollowsMouse&&h(t),u=t;if(o)return;o=setTimeout(function(){o=null,u&&!e.isMousePressed?l():c()},50)}),s.addListener(t.renderer.$gutter,"mouseout",function(e){u=null;if(!f||o)return;o=setTimeout(function(){o=null,c()},50)}),t.on("changeSession",c)}function a(e){o.call(this,e)}var r=e("../lib/dom"),i=e("../lib/oop"),s=e("../lib/event"),o=e("../tooltip").Tooltip;i.inherits(a,o),function(){this.setPosition=function(e,t){var n=window.innerWidth||document.documentElement.clientWidth,r=window.innerHeight||document.documentElement.clientHeight,i=this.getWidth(),s=this.getHeight();e+=15,t+=15,e+i>n&&(e-=e+i-n),t+s>r&&(t-=20+s),o.prototype.setPosition.call(this,e,t)}}.call(a.prototype),t.GutterHandler=u}),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,n){"use strict";var r=e("../lib/event"),i=e("../lib/useragent"),s=t.MouseEvent=function(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){r.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){r.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos?this.$pos:(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY),this.$pos)},this.inSelection=function(){if(this.$inSelection!==null)return this.$inSelection;var e=this.editor,t=e.getSelectionRange();if(t.isEmpty())this.$inSelection=!1;else{var n=this.getDocumentPosition();this.$inSelection=t.contains(n.row,n.column)}return this.$inSelection},this.getButton=function(){return r.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=i.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(s.prototype)}),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,n){"use strict";function f(e){function T(e,n){var r=Date.now(),i=!n||e.row!=n.row,s=!n||e.column!=n.column;if(!S||i||s)t.moveCursorToPosition(e),S=r,x={x:p,y:d};else{var o=l(x.x,x.y,p,d);o>a?S=null:r-S>=u&&(t.renderer.scrollCursorIntoView(),S=null)}}function N(e,n){var r=Date.now(),i=t.renderer.layerConfig.lineHeight,s=t.renderer.layerConfig.characterWidth,u=t.renderer.scroller.getBoundingClientRect(),a={x:{left:p-u.left,right:u.right-p},y:{top:d-u.top,bottom:u.bottom-d}},f=Math.min(a.x.left,a.x.right),l=Math.min(a.y.top,a.y.bottom),c={row:e.row,column:e.column};f/s<=2&&(c.column+=a.x.left<a.x.right?-3:2),l/i<=1&&(c.row+=a.y.top<a.y.bottom?-1:1);var h=e.row!=c.row,v=e.column!=c.column,m=!n||e.row!=n.row;h||v&&!m?E?r-E>=o&&t.renderer.scrollCursorIntoView(c):E=r:E=null}function C(){var e=g;g=t.renderer.screenToTextCoordinates(p,d),T(g,e),N(g,e)}function k(){m=t.selection.toOrientedRange(),h=t.session.addMarker(m,"ace_selection",t.getSelectionStyle()),t.clearSelection(),t.isFocused()&&t.renderer.$cursorLayer.setBlinking(!1),clearInterval(v),C(),v=setInterval(C,20),y=0,i.addListener(document,"mousemove",O)}function L(){clearInterval(v),t.session.removeMarker(h),h=null,t.selection.fromOrientedRange(m),t.isFocused()&&!w&&t.$resetCursorStyle(),m=null,g=null,y=0,E=null,S=null,i.removeListener(document,"mousemove",O)}function O(){A==null&&(A=setTimeout(function(){A!=null&&h&&L()},20))}function M(e){var t=e.types;return!t||Array.prototype.some.call(t,function(e){return e=="text/plain"||e=="Text"})}function _(e){var t=["copy","copymove","all","uninitialized"],n=["move","copymove","linkmove","all","uninitialized"],r=s.isMac?e.altKey:e.ctrlKey,i="uninitialized";try{i=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var o="none";return r&&t.indexOf(i)>=0?o="copy":n.indexOf(i)>=0?o="move":t.indexOf(i)>=0&&(o="copy"),o}var t=e.editor,n=r.createElement("img");n.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",s.isOpera&&(n.style.cssText="width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;");var f=["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"];f.forEach(function(t){e[t]=this[t]},this),t.addEventListener("mousedown",this.onMouseDown.bind(e));var c=t.container,h,p,d,v,m,g,y=0,b,w,E,S,x;this.onDragStart=function(e){if(this.cancelDrag||!c.draggable){var r=this;return setTimeout(function(){r.startSelect(),r.captureMouse(e)},0),e.preventDefault()}m=t.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=t.getReadOnly()?"copy":"copyMove",s.isOpera&&(t.container.appendChild(n),n.scrollTop=0),i.setDragImage&&i.setDragImage(n,0,0),s.isOpera&&t.container.removeChild(n),i.clearData(),i.setData("Text",t.session.getTextRange()),w=!0,this.setState("drag")},this.onDragEnd=function(e){c.draggable=!1,w=!1,this.setState(null);if(!t.getReadOnly()){var n=e.dataTransfer.dropEffect;!b&&n=="move"&&t.session.remove(t.getSelectionRange()),t.$resetCursorStyle()}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(t.getReadOnly()||!M(e.dataTransfer))return;return p=e.clientX,d=e.clientY,h||k(),y++,e.dataTransfer.dropEffect=b=_(e),i.preventDefault(e)},this.onDragOver=function(e){if(t.getReadOnly()||!M(e.dataTransfer))return;return p=e.clientX,d=e.clientY,h||(k(),y++),A!==null&&(A=null),e.dataTransfer.dropEffect=b=_(e),i.preventDefault(e)},this.onDragLeave=function(e){y--;if(y<=0&&h)return L(),b=null,i.preventDefault(e)},this.onDrop=function(e){if(!g)return;var n=e.dataTransfer;if(w)switch(b){case"move":m.contains(g.row,g.column)?m={start:g,end:g}:m=t.moveText(m,g);break;case"copy":m=t.moveText(m,g,!0)}else{var r=n.getData("Text");m={start:g,end:t.session.insert(g,r)},t.focus(),b=null}return L(),i.preventDefault(e)},i.addListener(c,"dragstart",this.onDragStart.bind(e)),i.addListener(c,"dragend",this.onDragEnd.bind(e)),i.addListener(c,"dragenter",this.onDragEnter.bind(e)),i.addListener(c,"dragover",this.onDragOver.bind(e)),i.addListener(c,"dragleave",this.onDragLeave.bind(e)),i.addListener(c,"drop",this.onDrop.bind(e));var A=null}function l(e,t,n,r){return Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2))}var r=e("../lib/dom"),i=e("../lib/event"),s=e("../lib/useragent"),o=200,u=200,a=5;(function(){this.dragWait=function(){var e=Date.now()-this.mousedownEvent.time;e>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var e=this.editor.container;e.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.$resetCursorStyle(),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor,t=e.container;t.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var n=s.isWin?"default":"move";e.renderer.setCursorStyle(n),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;if(s.isIE&&this.state=="dragReady"){var n=l(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>3&&t.dragDrop()}if(this.state==="dragWait"){var n=l(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(e){if(!this.$dragEnabled)return;this.mousedownEvent=e;var t=this.editor,n=e.inSelection(),r=e.getButton(),i=e.domEvent.detail||1;if(i===1&&r===0&&n){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var o=e.domEvent.target||e.domEvent.srcElement;"unselectable"in o&&(o.unselectable="on");if(t.getDragDelay()){if(s.isWebKit){this.cancelDrag=!0;var u=t.container;u.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}).call(f.prototype),t.DragdropHandler=f}),ace.define("ace/mouse/touch_handler",["require","exports","module","ace/mouse/mouse_event"],function(e,t,n){"use strict";var r=e("./mouse_event").MouseEvent;t.addTouchListeners=function(e,t){function m(){a=null,clearTimeout(a),t.selection.isEmpty()&&t.selection.moveToPosition(c),n="wait"}function g(){a=null,clearTimeout(a),t.selection.moveToPosition(c);var e=h>=2?t.selection.getLineRange(c.row):t.session.getBracketRange(c);e&&!e.isEmpty()?t.selection.setRange(e):t.selection.selectWord(),n="wait"}function y(){l+=60,f=setInterval(function(){l--<=0&&(clearInterval(f),f=null),Math.abs(p)<.01&&(p=0),Math.abs(d)<.01&&(d=0),l<20&&(p=.9*p),l<20&&(d=.9*d),t.renderer.scrollBy(10*p,10*d)},10)}var n="scroll",i,s,o,u,a,f,l=0,c,h=0,p=0,d=0,v;e.addEventListener("contextmenu",function(e){if(!v)return;var n=t.textInput.getElement();n.focus()}),e.addEventListener("touchstart",function(e){var f=e.touches;if(a||f.length>1){clearTimeout(a),a=null,n="zoom";return}v=t.$mouseHandler.isMousePressed=!0;var y=f[0];i=y.clientX,s=y.clientY,p=d=0,e.clientX=y.clientX,e.clientY=y.clientY;var b=e.timeStamp;u=b;var w=new r(e,t);c=w.getDocumentPosition();if(b-o<500&&f.length==1&&!l)h++,e.preventDefault(),e.button=0,g();else{h=0,a=setTimeout(m,450);var E=t.selection.cursor,S=t.selection.isEmpty()?E:t.selection.anchor,x=t.renderer.$cursorLayer.getPixelPosition(E,!0),T=t.renderer.$cursorLayer.getPixelPosition(S,!0),N=t.renderer.scroller.getBoundingClientRect(),C=t.renderer.layerConfig.lineHeight,k=t.renderer.layerConfig.lineHeight,L=function(e,t){return e/=k,t=t/C-.75,e*e+t*t},A=L(e.clientX-N.left-x.left,e.clientY-N.top-x.top),O=L(e.clientX-N.left-T.left,e.clientY-N.top-T.top);A<3.5&&O<3.5&&(n=A>O?"cursor":"anchor"),O<3.5?n="anchor":A<3.5?n="cursor":n="scroll"}o=b}),e.addEventListener("touchend",function(e){v=t.$mouseHandler.isMousePressed=!1,f&&clearInterval(f),n=="zoom"?(n="",l=0):a?(t.selection.moveToPosition(c),l=0):n=="scroll"&&(y(),e.preventDefault()),clearTimeout(a),a=null}),e.addEventListener("touchmove",function(e){a&&(clearTimeout(a),a=null);var o=e.touches;if(o.length>1||n=="zoom")return;var f=o[0],l=i-f.clientX,c=s-f.clientY;if(n=="wait"){if(!(l*l+c*c>4))return e.preventDefault();n="cursor"}i=f.clientX,s=f.clientY,e.clientX=f.clientX,e.clientY=f.clientY;var h=e.timeStamp,v=h-u;u=h;if(n=="scroll"){var m=new r(e,t);m.speed=1,m.wheelX=l,m.wheelY=c,10*Math.abs(l)<Math.abs(c)&&(l=0),10*Math.abs(c)<Math.abs(l)&&(c=0),v!=0&&(p=l/v,d=c/v),t._emit("mousewheel",m),m.propagationStopped||(p=d=0)}else{var g=new r(e,t),y=g.getDocumentPosition();n=="cursor"?t.selection.moveCursorToPosition(y):n=="anchor"&&t.selection.setSelectionAnchor(y.row,y.column),t.renderer.scrollCursorIntoView(y),e.preventDefault()}})}}),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("./dom");t.get=function(e,t){var n=new XMLHttpRequest;n.open("GET",e,!0),n.onreadystatechange=function(){n.readyState===4&&t(n.responseText)},n.send(null)},t.loadScript=function(e,t){var n=r.getDocumentHead(),i=document.createElement("script");i.src=e,n.appendChild(i),i.onload=i.onreadystatechange=function(e,n){if(n||!i.readyState||i.readyState=="loaded"||i.readyState=="complete")i=i.onload=i.onreadystatechange=null,n||t()}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(e,t,n){"use strict";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!="object"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)});if(!t)return new Promise(function(e){t=e})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t)r&&this.setDefaultHandler(e,r.pop());else if(r){var i=r.indexOf(t);i!=-1&&r.splice(i,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?"unshift":"push"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),ace.define("ace/lib/app_config",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"no use strict";function o(e){typeof console!="undefined"&&console.warn&&console.warn.apply(console,arguments)}function u(e,t){var n=new Error(e);n.data=t,typeof console=="object"&&console.error&&console.error(n),setTimeout(function(){throw n})}var r=e("./oop"),i=e("./event_emitter").EventEmitter,s={setOptions:function(e){Object.keys(e).forEach(function(t){this.setOption(t,e[t])},this)},getOptions:function(e){var t={};if(!e){var n=this.$options;e=Object.keys(n).filter(function(e){return!n[e].hidden})}else Array.isArray(e)||(t=e,e=Object.keys(t));return e.forEach(function(e){t[e]=this.getOption(e)},this),t},setOption:function(e,t){if(this["$"+e]===t)return;var n=this.$options[e];if(!n)return o('misspelled option "'+e+'"');if(n.forwardTo)return this[n.forwardTo]&&this[n.forwardTo].setOption(e,t);n.handlesSet||(this["$"+e]=t),n&&n.set&&n.set.call(this,t)},getOption:function(e){var t=this.$options[e];return t?t.forwardTo?this[t.forwardTo]&&this[t.forwardTo].getOption(e):t&&t.get?t.get.call(this):this["$"+e]:o('misspelled option "'+e+'"')}},a=function(){this.$defaultOptions={}};(function(){r.implement(this,i),this.defineOptions=function(e,t,n){return e.$options||(this.$defaultOptions[t]=e.$options={}),Object.keys(n).forEach(function(t){var r=n[t];typeof r=="string"&&(r={forwardTo:r}),r.name||(r.name=t),e.$options[r.name]=r,"initialValue"in r&&(e["$"+r.name]=r.initialValue)}),r.implement(e,s),this},this.resetOptions=function(e){Object.keys(e.$options).forEach(function(t){var n=e.$options[t];"value"in n&&e.setOption(t,n.value)})},this.setDefaultValue=function(e,t,n){if(!e){for(e in this.$defaultOptions)if(this.$defaultOptions[e][t])break;if(!this.$defaultOptions[e][t])return!1}var r=this.$defaultOptions[e]||(this.$defaultOptions[e]={});r[t]&&(r.forwardTo?this.setDefaultValue(r.forwardTo,t,n):r[t].value=n)},this.setDefaultValues=function(e,t){Object.keys(t).forEach(function(n){this.setDefaultValue(e,n,t[n])},this)},this.warn=o,this.reportError=u}).call(a.prototype),t.AppConfig=a}),ace.define("ace/config",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/lib/net","ace/lib/app_config"],function(e,t,n){"no use strict";function l(r){if(!u||!u.document)return;a.packaged=r||e.packaged||n.packaged||u.define&&define.packaged;var i={},s="",o=document.currentScript||document._currentScript,f=o&&o.ownerDocument||document,l=f.getElementsByTagName("script");for(var h=0;h<l.length;h++){var p=l[h],d=p.src||p.getAttribute("src");if(!d)continue;var v=p.attributes;for(var m=0,g=v.length;m<g;m++){var y=v[m];y.name.indexOf("data-ace-")===0&&(i[c(y.name.replace(/^data-ace-/,""))]=y.value)}var b=d.match(/^(.*)\/ace(\-\w+)?\.js(\?|$)/);b&&(s=b[1])}s&&(i.base=i.base||s,i.packaged=!0),i.basePath=i.base,i.workerPath=i.workerPath||i.base,i.modePath=i.modePath||i.base,i.themePath=i.themePath||i.base,delete i.base;for(var w in i)typeof i[w]!="undefined"&&t.set(w,i[w])}function c(e){return e.replace(/-(.)/g,function(e,t){return t.toUpperCase()})}var r=e("./lib/lang"),i=e("./lib/oop"),s=e("./lib/net"),o=e("./lib/app_config").AppConfig;n.exports=t=new o;var u=function(){return this||typeof window!="undefined"&&window}(),a={packaged:!1,workerPath:null,modePath:null,themePath:null,basePath:"",suffix:".js",$moduleUrls:{},loadWorkerFromBlob:!0,sharedPopups:!1};t.get=function(e){if(!a.hasOwnProperty(e))throw new Error("Unknown config key: "+e);return a[e]},t.set=function(e,t){if(a.hasOwnProperty(e))a[e]=t;else if(this.setDefaultValue("",e,t)==0)throw new Error("Unknown config key: "+e)},t.all=function(){return r.copyObject(a)},t.$modes={},t.moduleUrl=function(e,t){if(a.$moduleUrls[e])return a.$moduleUrls[e];var n=e.split("/");t=t||n[n.length-2]||"";var r=t=="snippets"?"/":"-",i=n[n.length-1];if(t=="worker"&&r=="-"){var s=new RegExp("^"+t+"[\\-_]|[\\-_]"+t+"$","g");i=i.replace(s,"")}(!i||i==t)&&n.length>1&&(i=n[n.length-2]);var o=a[t+"Path"];return o==null?o=a.basePath:r=="/"&&(t=r=""),o&&o.slice(-1)!="/"&&(o+="/"),o+t+r+i+this.get("suffix")},t.setModuleUrl=function(e,t){return a.$moduleUrls[e]=t},t.$loading={},t.loadModule=function(n,r){var i,o;Array.isArray(n)&&(o=n[0],n=n[1]);try{i=e(n)}catch(u){}if(i&&!t.$loading[n])return r&&r(i);t.$loading[n]||(t.$loading[n]=[]),t.$loading[n].push(r);if(t.$loading[n].length>1)return;var a=function(){e([n],function(e){t._emit("load.module",{name:n,module:e});var r=t.$loading[n];t.$loading[n]=null,r.forEach(function(t){t&&t(e)})})};if(!t.get("packaged"))return a();s.loadScript(t.moduleUrl(n,o),a),f()};var f=function(){!a.basePath&&!a.workerPath&&!a.modePath&&!a.themePath&&!Object.keys(a.$moduleUrls).length&&(console.error("Unable to infer path to ace from script src,","use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes","or with webpack use ace/webpack-resolver"),f=function(){})};t.init=l,t.version="1.4.5"}),ace.define("ace/mouse/mouse_handler",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/mouse/default_handlers","ace/mouse/default_gutter_handler","ace/mouse/mouse_event","ace/mouse/dragdrop_handler","ace/mouse/touch_handler","ace/config"],function(e,t,n){"use strict";var r=e("../lib/event"),i=e("../lib/useragent"),s=e("./default_handlers").DefaultHandlers,o=e("./default_gutter_handler").GutterHandler,u=e("./mouse_event").MouseEvent,a=e("./dragdrop_handler").DragdropHandler,f=e("./touch_handler").addTouchListeners,l=e("../config"),c=function(e){var t=this;this.editor=e,new s(this),new o(this),new a(this);var n=function(t){var n=!document.hasFocus||!document.hasFocus()||!e.isFocused()&&document.activeElement==(e.textInput&&e.textInput.getElement());n&&window.focus(),e.focus()},u=e.renderer.getMouseEventTarget();r.addListener(u,"click",this.onMouseEvent.bind(this,"click")),r.addListener(u,"mousemove",this.onMouseMove.bind(this,"mousemove")),r.addMultiMouseDownListener([u,e.renderer.scrollBarV&&e.renderer.scrollBarV.inner,e.renderer.scrollBarH&&e.renderer.scrollBarH.inner,e.textInput&&e.textInput.getElement()].filter(Boolean),[400,300,250],this,"onMouseEvent"),r.addMouseWheelListener(e.container,this.onMouseWheel.bind(this,"mousewheel")),f(e.container,e);var l=e.renderer.$gutter;r.addListener(l,"mousedown",this.onMouseEvent.bind(this,"guttermousedown")),r.addListener(l,"click",this.onMouseEvent.bind(this,"gutterclick")),r.addListener(l,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick")),r.addListener(l,"mousemove",this.onMouseEvent.bind(this,"guttermousemove")),r.addListener(u,"mousedown",n),r.addListener(l,"mousedown",n),i.isIE&&e.renderer.scrollBarV&&(r.addListener(e.renderer.scrollBarV.element,"mousedown",n),r.addListener(e.renderer.scrollBarH.element,"mousedown",n)),e.on("mousemove",function(n){if(t.state||t.$dragDelay||!t.$dragEnabled)return;var r=e.renderer.screenToTextCoordinates(n.x,n.y),i=e.session.selection.getRange(),s=e.renderer;!i.isEmpty()&&i.insideStart(r.row,r.column)?s.setCursorStyle("default"):s.setCursorStyle("")})};(function(){this.onMouseEvent=function(e,t){this.editor._emit(e,new u(t,this.editor))},this.onMouseMove=function(e,t){var n=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;if(!n||!n.length)return;this.editor._emit(e,new u(t,this.editor))},this.onMouseWheel=function(e,t){var n=new u(t,this.editor);n.speed=this.$scrollSpeed*2,n.wheelX=t.wheelX,n.wheelY=t.wheelY,this.editor._emit(e,n)},this.setState=function(e){this.state=e},this.captureMouse=function(e,t){this.x=e.x,this.y=e.y,this.isMousePressed=!0;var n=this.editor,s=this.editor.renderer;s.$isMousePressed=!0;var o=this,a=function(e){if(!e)return;if(i.isWebKit&&!e.which&&o.releaseMouse)return o.releaseMouse();o.x=e.clientX,o.y=e.clientY,t&&t(e),o.mouseEvent=new u(e,o.editor),o.$mouseMoved=!0},f=function(e){n.off("beforeEndOperation",c),clearInterval(h),l(),o[o.state+"End"]&&o[o.state+"End"](e),o.state="",o.isMousePressed=s.$isMousePressed=!1,s.$keepTextAreaAtCursor&&s.$moveTextAreaToCursor(),o.$onCaptureMouseMove=o.releaseMouse=null,e&&o.onMouseEvent("mouseup",e),n.endOperation()},l=function(){o[o.state]&&o[o.state](),o.$mouseMoved=!1};if(i.isOldIE&&e.domEvent.type=="dblclick")return setTimeout(function(){f(e)});var c=function(e){if(!o.releaseMouse)return;n.curOp.command.name&&n.curOp.selectionChanged&&(o[o.state+"End"]&&o[o.state+"End"](),o.state="",o.releaseMouse())};n.on("beforeEndOperation",c),n.startOperation({command:{name:"mouse"}}),o.$onCaptureMouseMove=a,o.releaseMouse=r.capture(this.editor.container,a,f);var h=setInterval(l,20)},this.releaseMouse=null,this.cancelContextMenu=function(){var e=function(t){if(t&&t.domEvent&&t.domEvent.type!="contextmenu")return;this.editor.off("nativecontextmenu",e),t&&t.domEvent&&r.stopEvent(t.domEvent)}.bind(this);setTimeout(e,10),this.editor.on("nativecontextmenu",e)}}).call(c.prototype),l.defineOptions(c.prototype,"mouseHandler",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:i.isMac?150:0},dragEnabled:{initialValue:!0},focusTimeout:{initialValue:0},tooltipFollowsMouse:{initialValue:!0}}),t.MouseHandler=c}),ace.define("ace/mouse/fold_handler",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";function i(e){e.on("click",function(t){var n=t.getDocumentPosition(),i=e.session,s=i.getFoldAt(n.row,n.column,1);s&&(t.getAccelKey()?i.removeFold(s):i.expandFold(s),t.stop());var o=t.domEvent&&t.domEvent.target;o&&r.hasCssClass(o,"ace_inline_button")&&r.hasCssClass(o,"ace_toggle_wrap")&&(i.setOption("wrap",!i.getUseWrapMode()),e.renderer.scrollCursorIntoView())}),e.on("gutterclick",function(t){var n=e.renderer.$gutterLayer.getRegion(t);if(n=="foldWidgets"){var r=t.getDocumentPosition().row,i=e.session;i.foldWidgets&&i.foldWidgets[r]&&e.session.onFoldWidgetClick(r,t),e.isFocused()||e.focus(),t.stop()}}),e.on("gutterdblclick",function(t){var n=e.renderer.$gutterLayer.getRegion(t);if(n=="foldWidgets"){var r=t.getDocumentPosition().row,i=e.session,s=i.getParentFoldRangeData(r,!0),o=s.range||s.firstRange;if(o){r=o.start.row;var u=i.getFoldAt(r,i.getLine(r).length,1);u?i.removeFold(u):(i.addFold("...",o),e.renderer.scrollCursorIntoView({row:o.start.row,column:0}))}t.stop()}})}var r=e("../lib/dom");t.FoldHandler=i}),ace.define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],function(e,t,n){"use strict";var r=e("../lib/keys"),i=e("../lib/event"),s=function(e){this.$editor=e,this.$data={editor:e},this.$handlers=[],this.setDefaultHandler(e.commands)};(function(){this.setDefaultHandler=function(e){this.removeKeyboardHandler(this.$defaultHandler),this.$defaultHandler=e,this.addKeyboardHandler(e,0)},this.setKeyboardHandler=function(e){var t=this.$handlers;if(t[t.length-1]==e)return;while(t[t.length-1]&&t[t.length-1]!=this.$defaultHandler)this.removeKeyboardHandler(t[t.length-1]);this.addKeyboardHandler(e,1)},this.addKeyboardHandler=function(e,t){if(!e)return;typeof e=="function"&&!e.handleKeyboard&&(e.handleKeyboard=e);var n=this.$handlers.indexOf(e);n!=-1&&this.$handlers.splice(n,1),t==undefined?this.$handlers.push(e):this.$handlers.splice(t,0,e),n==-1&&e.attach&&e.attach(this.$editor)},this.removeKeyboardHandler=function(e){var t=this.$handlers.indexOf(e);return t==-1?!1:(this.$handlers.splice(t,1),e.detach&&e.detach(this.$editor),!0)},this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]},this.getStatusText=function(){var e=this.$data,t=e.editor;return this.$handlers.map(function(n){return n.getStatusText&&n.getStatusText(t,e)||""}).filter(Boolean).join(" ")},this.$callKeyboardHandlers=function(e,t,n,r){var s,o=!1,u=this.$editor.commands;for(var a=this.$handlers.length;a--;){s=this.$handlers[a].handleKeyboard(this.$data,e,t,n,r);if(!s||!s.command)continue;s.command=="null"?o=!0:o=u.exec(s.command,this.$editor,s.args,r),o&&r&&e!=-1&&s.passEvent!=1&&s.command.passEvent!=1&&i.stopEvent(r);if(o)break}return!o&&e==-1&&(s={command:"insertstring"},o=u.exec("insertstring",this.$editor,t)),o&&this.$editor._signal&&this.$editor._signal("keyboardActivity",s),o},this.onCommandKey=function(e,t,n){var i=r.keyCodeToString(n);this.$callKeyboardHandlers(t,i,n,e)},this.onTextInput=function(e){this.$callKeyboardHandlers(-1,e)}}).call(s.prototype),t.KeyBinding=s}),ace.define("ace/lib/bidiutil",["require","exports","module"],function(e,t,n){"use strict";function F(e,t,n,r){var i=s?d:p,c=null,h=null,v=null,m=0,g=null,y=null,b=-1,w=null,E=null,T=[];if(!r)for(w=0,r=[];w<n;w++)r[w]=R(e[w]);o=s,u=!1,a=!1,f=!1,l=!1;for(E=0;E<n;E++){c=m,T[E]=h=q(e,r,T,E),m=i[c][h],g=m&240,m&=15,t[E]=v=i[m][5];if(g>0)if(g==16){for(w=b;w<E;w++)t[w]=1;b=-1}else b=-1;y=i[m][6];if(y)b==-1&&(b=E);else if(b>-1){for(w=b;w<E;w++)t[w]=v;b=-1}r[E]==S&&(t[E]=0),o|=v}if(l)for(w=0;w<n;w++)if(r[w]==x){t[w]=s;for(var C=w-1;C>=0;C--){if(r[C]!=N)break;t[C]=s}}}function I(e,t,n){if(o<e)return;if(e==1&&s==m&&!f){n.reverse();return}var r=n.length,i=0,u,a,l,c;while(i<r){if(t[i]>=e){u=i+1;while(u<r&&t[u]>=e)u++;for(a=i,l=u-1;a<l;a++,l--)c=n[a],n[a]=n[l],n[l]=c;i=u}i++}}function q(e,t,n,r){var i=t[r],o,c,h,p;switch(i){case g:case y:u=!1;case E:case w:return i;case b:return u?w:b;case T:return u=!0,a=!0,y;case N:return E;case C:if(r<1||r+1>=t.length||(o=n[r-1])!=b&&o!=w||(c=t[r+1])!=b&&c!=w)return E;return u&&(c=w),c==o?c:E;case k:o=r>0?n[r-1]:S;if(o==b&&r+1<t.length&&t[r+1]==b)return b;return E;case L:if(r>0&&n[r-1]==b)return b;if(u)return E;p=r+1,h=t.length;while(p<h&&t[p]==L)p++;if(p<h&&t[p]==b)return b;return E;case A:h=t.length,p=r+1;while(p<h&&t[p]==A)p++;if(p<h){var d=e[r],v=d>=1425&&d<=2303||d==64286;o=t[p];if(v&&(o==y||o==T))return y}if(r<1||(o=t[r-1])==S)return E;return n[r-1];case S:return u=!1,f=!0,s;case x:return l=!0,E;case O:case M:case D:case P:case _:u=!1;case H:return E}}function R(e){var t=e.charCodeAt(0),n=t>>8;return n==0?t>191?g:B[t]:n==5?/[\u0591-\u05f4]/.test(e)?y:g:n==6?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(e)?A:/[\u0660-\u0669\u066b-\u066c]/.test(e)?w:t==1642?L:/[\u06f0-\u06f9]/.test(e)?b:T:n==32&&t<=8287?j[t&255]:n==254?t>=65136?T:E:E}function U(e){return e>="\u064b"&&e<="\u0655"}var r=["\u0621","\u0641"],i=["\u063a","\u064a"],s=0,o=0,u=!1,a=!1,f=!1,l=!1,c=!1,h=!1,p=[[0,3,0,1,0,0,0],[0,3,0,1,2,2,0],[0,3,0,17,2,0,1],[0,3,5,5,4,1,0],[0,3,21,21,4,0,1],[0,3,5,5,4,2,0]],d=[[2,0,1,1,0,1,0],[2,0,1,1,0,2,0],[2,0,2,1,3,2,0],[2,0,2,33,3,1,1]],v=0,m=1,g=0,y=1,b=2,w=3,E=4,S=5,x=6,T=7,N=8,C=9,k=10,L=11,A=12,O=13,M=14,_=15,D=16,P=17,H=18,B=[H,H,H,H,H,H,H,H,H,x,S,x,N,S,H,H,H,H,H,H,H,H,H,H,H,H,H,H,S,S,S,x,N,E,E,L,L,L,E,E,E,E,E,k,C,k,C,C,b,b,b,b,b,b,b,b,b,b,C,E,E,E,E,E,E,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,E,E,E,E,E,E,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,E,E,E,E,H,H,H,H,H,H,S,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,C,E,L,L,L,L,E,E,E,E,g,E,E,H,E,E,L,L,b,b,E,g,E,E,E,b,g,E,E,E,E,E],j=[N,N,N,N,N,N,N,N,N,N,N,H,H,H,g,y,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,N,S,O,M,_,D,P,C,L,L,L,L,L,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,C,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,N];t.L=g,t.R=y,t.EN=b,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.RLE=7,t.DOT="\u00b7",t.doBidiReorder=function(e,n,r){if(e.length<2)return{};var i=e.split(""),o=new Array(i.length),u=new Array(i.length),a=[];s=r?m:v,F(i,a,i.length,n);for(var f=0;f<o.length;o[f]=f,f++);I(2,a,o),I(1,a,o);for(var f=0;f<o.length-1;f++)n[f]===w?a[f]=t.AN:a[f]===y&&(n[f]>T&&n[f]<O||n[f]===E||n[f]===H)?a[f]=t.ON_R:f>0&&i[f-1]==="\u0644"&&/\u0622|\u0623|\u0625|\u0627/.test(i[f])&&(a[f-1]=a[f]=t.R_H,f++);i[i.length-1]===t.DOT&&(a[i.length-1]=t.B),i[0]==="\u202b"&&(a[0]=t.RLE);for(var f=0;f<o.length;f++)u[f]=a[o[f]];return{logicalFromVisual:o,bidiLevels:u}},t.hasBidiCharacters=function(e,t){var n=!1;for(var r=0;r<e.length;r++)t[r]=R(e.charAt(r)),!n&&(t[r]==y||t[r]==T||t[r]==w)&&(n=!0);return n},t.getVisualFromLogicalIdx=function(e,t){for(var n=0;n<t.logicalFromVisual.length;n++)if(t.logicalFromVisual[n]==e)return n;return 0}}),ace.define("ace/bidihandler",["require","exports","module","ace/lib/bidiutil","ace/lib/lang"],function(e,t,n){"use strict";var r=e("./lib/bidiutil"),i=e("./lib/lang"),s=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\u202B]/,o=function(e){this.session=e,this.bidiMap={},this.currentRow=null,this.bidiUtil=r,this.charWidths=[],this.EOL="\u00ac",this.showInvisibles=!0,this.isRtlDir=!1,this.$isRtl=!1,this.line="",this.wrapIndent=0,this.EOF="\u00b6",this.RLE="\u202b",this.contentWidth=0,this.fontMetrics=null,this.rtlLineOffset=0,this.wrapOffset=0,this.isMoveLeftOperation=!1,this.seenBidi=s.test(e.getValue())};(function(){this.isBidiRow=function(e,t,n){return this.seenBidi?(e!==this.currentRow&&(this.currentRow=e,this.updateRowLine(t,n),this.updateBidiMap()),this.bidiMap.bidiLevels):!1},this.onChange=function(e){this.seenBidi?this.currentRow=null:e.action=="insert"&&s.test(e.lines.join("\n"))&&(this.seenBidi=!0,this.currentRow=null)},this.getDocumentRow=function(){var e=0,t=this.session.$screenRowCache;if(t.length){var n=this.session.$getRowCacheIndex(t,this.currentRow);n>=0&&(e=this.session.$docRowCache[n])}return e},this.getSplitIndex=function(){var e=0,t=this.session.$screenRowCache;if(t.length){var n,r=this.session.$getRowCacheIndex(t,this.currentRow);while(this.currentRow-e>0){n=this.session.$getRowCacheIndex(t,this.currentRow-e-1);if(n!==r)break;r=n,e++}}else e=this.currentRow;return e},this.updateRowLine=function(e,t){e===undefined&&(e=this.getDocumentRow());var n=e===this.session.getLength()-1,s=n?this.EOF:this.EOL;this.wrapIndent=0,this.line=this.session.getLine(e),this.isRtlDir=this.$isRtl||this.line.charAt(0)===this.RLE;if(this.session.$useWrapMode){var o=this.session.$wrapData[e];o&&(t===undefined&&(t=this.getSplitIndex()),t>0&&o.length?(this.wrapIndent=o.indent,this.wrapOffset=this.wrapIndent*this.charWidths[r.L],this.line=t<o.length?this.line.substring(o[t-1],o[t]):this.line.substring(o[o.length-1])):this.line=this.line.substring(0,o[t])),t==o.length&&(this.line+=this.showInvisibles?s:r.DOT)}else this.line+=this.showInvisibles?s:r.DOT;var u=this.session,a=0,f;this.line=this.line.replace(/\t|[\u1100-\u2029, \u202F-\uFFE6]/g,function(e,t){return e===" "||u.isFullWidth(e.charCodeAt(0))?(f=e===" "?u.getScreenTabSize(t+a):2,a+=f-1,i.stringRepeat(r.DOT,f)):e}),this.isRtlDir&&(this.fontMetrics.$main.textContent=this.line.charAt(this.line.length-1)==r.DOT?this.line.substr(0,this.line.length-1):this.line,this.rtlLineOffset=this.contentWidth-this.fontMetrics.$main.getBoundingClientRect().width)},this.updateBidiMap=function(){var e=[];r.hasBidiCharacters(this.line,e)||this.isRtlDir?this.bidiMap=r.doBidiReorder(this.line,e,this.isRtlDir):this.bidiMap={}},this.markAsDirty=function(){this.currentRow=null},this.updateCharacterWidths=function(e){if(this.characterWidth===e.$characterSize.width)return;this.fontMetrics=e;var t=this.characterWidth=e.$characterSize.width,n=e.$measureCharWidth("\u05d4");this.charWidths[r.L]=this.charWidths[r.EN]=this.charWidths[r.ON_R]=t,this.charWidths[r.R]=this.charWidths[r.AN]=n,this.charWidths[r.R_H]=n*.45,this.charWidths[r.B]=this.charWidths[r.RLE]=0,this.currentRow=null},this.setShowInvisibles=function(e){this.showInvisibles=e,this.currentRow=null},this.setEolChar=function(e){this.EOL=e},this.setContentWidth=function(e){this.contentWidth=e},this.isRtlLine=function(e){return this.$isRtl?!0:e!=undefined?this.session.getLine(e).charAt(0)==this.RLE:this.isRtlDir},this.setRtlDirection=function(e,t){var n=e.getCursorPosition();for(var r=e.selection.getSelectionAnchor().row;r<=n.row;r++)!t&&e.session.getLine(r).charAt(0)===e.session.$bidiHandler.RLE?e.session.doc.removeInLine(r,0,1):t&&e.session.getLine(r).charAt(0)!==e.session.$bidiHandler.RLE&&e.session.doc.insert({column:0,row:r},e.session.$bidiHandler.RLE)},this.getPosLeft=function(e){e-=this.wrapIndent;var t=this.line.charAt(0)===this.RLE?1:0,n=e>t?this.session.getOverwrite()?e:e-1:t,i=r.getVisualFromLogicalIdx(n,this.bidiMap),s=this.bidiMap.bidiLevels,o=0;!this.session.getOverwrite()&&e<=t&&s[i]%2!==0&&i++;for(var u=0;u<i;u++)o+=this.charWidths[s[u]];return!this.session.getOverwrite()&&e>t&&s[i]%2===0&&(o+=this.charWidths[s[i]]),this.wrapIndent&&(o+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset),this.isRtlDir&&(o+=this.rtlLineOffset),o},this.getSelections=function(e,t){var n=this.bidiMap,r=n.bidiLevels,i,s=[],o=0,u=Math.min(e,t)-this.wrapIndent,a=Math.max(e,t)-this.wrapIndent,f=!1,l=!1,c=0;this.wrapIndent&&(o+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);for(var h,p=0;p<r.length;p++)h=n.logicalFromVisual[p],i=r[p],f=h>=u&&h<a,f&&!l?c=o:!f&&l&&s.push({left:c,width:o-c}),o+=this.charWidths[i],l=f;f&&p===r.length&&s.push({left:c,width:o-c});if(this.isRtlDir)for(var d=0;d<s.length;d++)s[d].left+=this.rtlLineOffset;return s},this.offsetToCol=function(e){this.isRtlDir&&(e-=this.rtlLineOffset);var t=0,e=Math.max(e,0),n=0,r=0,i=this.bidiMap.bidiLevels,s=this.charWidths[i[r]];this.wrapIndent&&(e-=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);while(e>n+s/2){n+=s;if(r===i.length-1){s=0;break}s=this.charWidths[i[++r]]}return r>0&&i[r-1]%2!==0&&i[r]%2===0?(e<n&&r--,t=this.bidiMap.logicalFromVisual[r]):r>0&&i[r-1]%2===0&&i[r]%2!==0?t=1+(e>n?this.bidiMap.logicalFromVisual[r]:this.bidiMap.logicalFromVisual[r-1]):this.isRtlDir&&r===i.length-1&&s===0&&i[r-1]%2===0||!this.isRtlDir&&r===0&&i[r]%2!==0?t=1+this.bidiMap.logicalFromVisual[r]:(r>0&&i[r-1]%2!==0&&s!==0&&r--,t=this.bidiMap.logicalFromVisual[r]),t===0&&this.isRtlDir&&t++,t+this.wrapIndent}}).call(o.prototype),t.BidiHandler=o}),ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/lang"),s=e("./lib/event_emitter").EventEmitter,o=e("./range").Range,u=function(e){this.session=e,this.doc=e.getDocument(),this.clearSelection(),this.cursor=this.lead=this.doc.createAnchor(0,0),this.anchor=this.doc.createAnchor(0,0),this.$silent=!1;var t=this;this.cursor.on("change",function(e){t.$cursorChanged=!0,t.$silent||t._emit("changeCursor"),!t.$isEmpty&&!t.$silent&&t._emit("changeSelection"),!t.$keepDesiredColumnOnChange&&e.old.column!=e.value.column&&(t.$desiredColumn=null)}),this.anchor.on("change",function(){t.$anchorChanged=!0,!t.$isEmpty&&!t.$silent&&t._emit("changeSelection")})};(function(){r.implement(this,s),this.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},this.isMultiLine=function(){return!this.$isEmpty&&this.anchor.row!=this.cursor.row},this.getCursor=function(){return this.lead.getPosition()},this.setSelectionAnchor=function(e,t){this.$isEmpty=!1,this.anchor.setPosition(e,t)},this.getAnchor=this.getSelectionAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},this.getSelectionLead=function(){return this.lead.getPosition()},this.isBackwards=function(){var e=this.anchor,t=this.lead;return e.row>t.row||e.row==t.row&&e.column>t.column},this.getRange=function(){var e=this.anchor,t=this.lead;return this.$isEmpty?o.fromPoints(t,t):this.isBackwards()?o.fromPoints(t,e):o.fromPoints(e,t)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){this.$setSelection(0,0,Number.MAX_VALUE,Number.MAX_VALUE)},this.setRange=this.setSelectionRange=function(e,t){var n=t?e.end:e.start,r=t?e.start:e.end;this.$setSelection(n.row,n.column,r.row,r.column)},this.$setSelection=function(e,t,n,r){var i=this.$isEmpty,s=this.inMultiSelectMode;this.$silent=!0,this.$cursorChanged=this.$anchorChanged=!1,this.anchor.setPosition(e,t),this.cursor.setPosition(n,r),this.$isEmpty=!o.comparePoints(this.anchor,this.cursor),this.$silent=!1,this.$cursorChanged&&this._emit("changeCursor"),(this.$cursorChanged||this.$anchorChanged||i!=this.$isEmpty||s)&&this._emit("changeSelection")},this.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},this.selectTo=function(e,t){this.$moveSelection(function(){this.moveCursorTo(e,t)})},this.selectToPosition=function(e){this.$moveSelection(function(){this.moveCursorToPosition(e)})},this.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},this.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(e,t){if(typeof t=="undefined"){var n=e||this.lead;e=n.row,t=n.column}return this.session.getWordRange(e,t)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},this.getLineRange=function(e,t){var n=typeof e=="number"?e:this.lead.row,r,i=this.session.getFoldLine(n);return i?(n=i.start.row,r=i.end.row):r=n,t===!0?new o(n,0,r,this.session.getLine(r).length):new o(n,0,r+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.wouldMoveIntoSoftTab=function(e,t,n){var r=e.column,i=e.column+t;return n<0&&(r=e.column-t,i=e.column),this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(r,i).split(" ").length-1==t},this.moveCursorLeft=function(){var e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,-1))this.moveCursorTo(t.start.row,t.start.column);else if(e.column===0)e.row>0&&this.moveCursorTo(e.row-1,this.doc.getLine(e.row-1).length);else{var n=this.session.getTabSize();this.wouldMoveIntoSoftTab(e,n,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-n):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,1))this.moveCursorTo(t.end.row,t.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row<this.doc.getLength()-1&&this.moveCursorTo(this.lead.row+1,0);else{var n=this.session.getTabSize(),e=this.lead;this.wouldMoveIntoSoftTab(e,n,1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,n):this.moveCursorBy(0,1)}},this.moveCursorLineStart=function(){var e=this.lead.row,t=this.lead.column,n=this.session.documentToScreenRow(e,t),r=this.session.screenToDocumentPosition(n,0),i=this.session.getDisplayLine(e,null,r.row,r.column),s=i.match(/^\s*/);s[0].length!=t&&!this.session.$useEmacsStyleLineStart&&(r.column+=s[0].length),this.moveCursorToPosition(r)},this.moveCursorLineEnd=function(){var e=this.lead,t=this.session.getDocumentLastRowColumnPosition(e.row,e.column);if(this.lead.column==t.column){var n=this.session.getLine(t.row);if(t.column==n.length){var r=n.search(/\s+$/);r>0&&(t.column=r)}}this.moveCursorTo(t.row,t.column)},this.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var i=this.session.getFoldAt(e,t,1);if(i){this.moveCursorTo(i.end.row,i.end.column);return}this.session.nonTokenRe.exec(r)&&(t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,r=n.substring(t));if(t>=n.length){this.moveCursorTo(e,n.length),this.moveCursorRight(),e<this.doc.getLength()-1&&this.moveCursorWordRight();return}this.session.tokenRe.exec(r)&&(t+=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(e,t)},this.moveCursorLongWordLeft=function(){var e=this.lead.row,t=this.lead.column,n;if(n=this.session.getFoldAt(e,t,-1)){this.moveCursorTo(n.start.row,n.start.column);return}var r=this.session.getFoldStringAt(e,t,-1);r==null&&(r=this.doc.getLine(e).substring(0,t));var s=i.stringReverse(r);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0,this.session.nonTokenRe.exec(s)&&(t-=this.session.nonTokenRe.lastIndex,s=s.slice(this.session.nonTokenRe.lastIndex),this.session.nonTokenRe.lastIndex=0);if(t<=0){this.moveCursorTo(e,0),this.moveCursorLeft(),e>0&&this.moveCursorWordLeft();return}this.session.tokenRe.exec(s)&&(t-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(e,t)},this.$shortWordEndIndex=function(e){var t=0,n,r=/\s/,i=this.session.tokenRe;i.lastIndex=0;if(this.session.tokenRe.exec(e))t=this.session.tokenRe.lastIndex;else{while((n=e[t])&&r.test(n))t++;if(t<1){i.lastIndex=0;while((n=e[t])&&!i.test(n)){i.lastIndex=0,t++;if(r.test(n)){if(t>2){t--;break}while((n=e[t])&&r.test(n))t++;if(t>2)break}}}}return i.lastIndex=0,t},this.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t),i=this.session.getFoldAt(e,t,1);if(i)return this.moveCursorTo(i.end.row,i.end.column);if(t==n.length){var s=this.doc.getLength();do e++,r=this.doc.getLine(e);while(e<s&&/^\s*$/.test(r));/^\s+/.test(r)||(r=""),t=0}var o=this.$shortWordEndIndex(r);this.moveCursorTo(e,t+o)},this.moveCursorShortWordLeft=function(){var e=this.lead.row,t=this.lead.column,n;if(n=this.session.getFoldAt(e,t,-1))return this.moveCursorTo(n.start.row,n.start.column);var r=this.session.getLine(e).substring(0,t);if(t===0){do e--,r=this.doc.getLine(e);while(e>0&&/^\s*$/.test(r));t=r.length,/\s+$/.test(r)||(r="")}var s=i.stringReverse(r),o=this.$shortWordEndIndex(s);return this.moveCursorTo(e,t-o)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(e,t){var n=this.session.documentToScreenPosition(this.lead.row,this.lead.column),r;t===0&&(e!==0&&(this.session.$bidiHandler.isBidiRow(n.row,this.lead.row)?(r=this.session.$bidiHandler.getPosLeft(n.column),n.column=Math.round(r/this.session.$bidiHandler.charWidths[0])):r=n.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?n.column=this.$desiredColumn:this.$desiredColumn=n.column);var i=this.session.screenToDocumentPosition(n.row+e,n.column,r);e!==0&&t===0&&i.row===this.lead.row&&i.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[i.row]&&(i.row>0||e>0)&&i.row++,this.moveCursorTo(i.row,i.column+t,t===0)},this.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},this.moveCursorTo=function(e,t,n){var r=this.session.getFoldAt(e,t,1);r&&(e=r.start.row,t=r.start.column),this.$keepDesiredColumnOnChange=!0;var i=this.session.getLine(e);/[\uDC00-\uDFFF]/.test(i.charAt(t))&&i.charAt(t-1)&&(this.lead.row==e&&this.lead.column==t+1?t-=1:t+=1),this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,n||(this.$desiredColumn=null)},this.moveCursorToScreen=function(e,t,n){var r=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(r.row,r.column,n)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},this.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var n=this.getCursor();return o.fromPoints(t,n)}catch(r){return o.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},this.toJSON=function(){if(this.rangeCount)var e=this.ranges.map(function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t});else{var e=this.getRange();e.isBackwards=this.isBackwards()}return e},this.fromJSON=function(e){if(e.start==undefined){if(this.rangeList&&e.length>1){this.toSingleRange(e[0]);for(var t=e.length;t--;){var n=o.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(n.cursor=n.start),this.addRange(n,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},this.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0}}).call(u.prototype),t.Selection=u}),ace.define("ace/tokenizer",["require","exports","module","ace/config"],function(e,t,n){"use strict";var r=e("./config"),i=2e3,s=function(e){this.states=e,this.regExps={},this.matchMappings={};for(var t in this.states){var n=this.states[t],r=[],i=0,s=this.matchMappings[t]={defaultToken:"text"},o="g",u=[];for(var a=0;a<n.length;a++){var f=n[a];f.defaultToken&&(s.defaultToken=f.defaultToken),f.caseInsensitive&&(o="gi");if(f.regex==null)continue;f.regex instanceof RegExp&&(f.regex=f.regex.toString().slice(1,-1));var l=f.regex,c=(new RegExp("(?:("+l+")|(.))")).exec("a").length-2;Array.isArray(f.token)?f.token.length==1||c==1?f.token=f.token[0]:c-1!=f.token.length?(this.reportError("number of classes and regexp groups doesn't match",{rule:f,groupCount:c-1}),f.token=f.token[0]):(f.tokenArray=f.token,f.token=null,f.onMatch=this.$arrayTokens):typeof f.token=="function"&&!f.onMatch&&(c>1?f.onMatch=this.$applyToken:f.onMatch=f.token),c>1&&(/\\\d/.test(f.regex)?l=f.regex.replace(/\\([0-9]+)/g,function(e,t){return"\\"+(parseInt(t,10)+i+1)}):(c=1,l=this.removeCapturingGroups(f.regex)),!f.splitRegex&&typeof f.token!="string"&&u.push(f)),s[i]=a,i+=c,r.push(l),f.onMatch||(f.onMatch=null)}r.length||(s[0]=0,r.push("$")),u.forEach(function(e){e.splitRegex=this.createSplitterRegexp(e.regex,o)},this),this.regExps[t]=new RegExp("("+r.join(")|(")+")|($)",o)}};(function(){this.$setMaxTokenCount=function(e){i=e|0},this.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),n=this.token.apply(this,t);if(typeof n=="string")return[{type:n,value:e}];var r=[];for(var i=0,s=n.length;i<s;i++)t[i]&&(r[r.length]={type:n[i],value:t[i]});return r},this.$arrayTokens=function(e){if(!e)return[];var t=this.splitRegex.exec(e);if(!t)return"text";var n=[],r=this.tokenArray;for(var i=0,s=r.length;i<s;i++)t[i+1]&&(n[n.length]={type:r[i],value:t[i+1]});return n},this.removeCapturingGroups=function(e){var t=e.replace(/\\.|\[(?:\\.|[^\\\]])*|\(\?[:=!]|(\()/g,function(e,t){return t?"(?:":e});return t},this.createSplitterRegexp=function(e,t){if(e.indexOf("(?=")!=-1){var n=0,r=!1,i={};e.replace(/(\\.)|(\((?:\?[=!])?)|(\))|([\[\]])/g,function(e,t,s,o,u,a){return r?r=u!="]":u?r=!0:o?(n==i.stack&&(i.end=a+1,i.stack=-1),n--):s&&(n++,s.length!=1&&(i.stack=n,i.start=a)),e}),i.end!=null&&/^\)*$/.test(e.substr(i.end))&&(e=e.substring(0,i.start)+e.substr(i.end))}return e.charAt(0)!="^"&&(e="^"+e),e.charAt(e.length-1)!="$"&&(e+="$"),new RegExp(e,(t||"").replace("g",""))},this.getLineTokens=function(e,t){if(t&&typeof t!="string"){var n=t.slice(0);t=n[0],t==="#tmp"&&(n.shift(),t=n.shift())}else var n=[];var r=t||"start",s=this.states[r];s||(r="start",s=this.states[r]);var o=this.matchMappings[r],u=this.regExps[r];u.lastIndex=0;var a,f=[],l=0,c=0,h={type:null,value:""};while(a=u.exec(e)){var p=o.defaultToken,d=null,v=a[0],m=u.lastIndex;if(m-v.length>l){var g=e.substring(l,m-v.length);h.type==p?h.value+=g:(h.type&&f.push(h),h={type:p,value:g})}for(var y=0;y<a.length-2;y++){if(a[y+1]===undefined)continue;d=s[o[y]],d.onMatch?p=d.onMatch(v,r,n,e):p=d.token,d.next&&(typeof d.next=="string"?r=d.next:r=d.next(r,n),s=this.states[r],s||(this.reportError("state doesn't exist",r),r="start",s=this.states[r]),o=this.matchMappings[r],l=m,u=this.regExps[r],u.lastIndex=m),d.consumeLineEnd&&(l=m);break}if(v)if(typeof p=="string")!!d&&d.merge===!1||h.type!==p?(h.type&&f.push(h),h={type:p,value:v}):h.value+=v;else if(p){h.type&&f.push(h),h={type:null,value:""};for(var y=0;y<p.length;y++)f.push(p[y])}if(l==e.length)break;l=m;if(c++>i){c>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});while(l<e.length)h.type&&f.push(h),h={value:e.substring(l,l+=500),type:"overflow"};r="start",n=[];break}}return h.type&&f.push(h),n.length>1&&n[0]!==r&&n.unshift("#tmp",r),{tokens:f,state:n.length?n:r}},this.reportError=r.reportError}).call(s.prototype),t.Tokenizer=s}),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../lib/lang"),i=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(!t){for(var n in e)this.$rules[n]=e[n];return}for(var n in e){var r=e[n];for(var i=0;i<r.length;i++){var s=r[i];if(s.next||s.onMatch)typeof s.next=="string"&&s.next.indexOf(t)!==0&&(s.next=t+s.next),s.nextState&&s.nextState.indexOf(t)!==0&&(s.nextState=t+s.nextState)}this.$rules[t+n]=r}},this.getRules=function(){return this.$rules},this.embedRules=function(e,t,n,i,s){var o=typeof e=="function"?(new e).getRules():e;if(i)for(var u=0;u<i.length;u++)i[u]=t+i[u];else{i=[];for(var a in o)i.push(t+a)}this.addRules(o,t);if(n){var f=Array.prototype[s?"push":"unshift"];for(var u=0;u<i.length;u++)f.apply(this.$rules[i[u]],r.deepCopy(n))}this.$embeds||(this.$embeds=[]),this.$embeds.push(t)},this.getEmbeds=function(){return this.$embeds};var e=function(e,t){return(e!="start"||t.length)&&t.unshift(this.nextState,e),this.nextState},t=function(e,t){return t.shift(),t.shift()||"start"};this.normalizeRules=function(){function i(s){var o=r[s];o.processed=!0;for(var u=0;u<o.length;u++){var a=o[u],f=null;Array.isArray(a)&&(f=a,a={}),!a.regex&&a.start&&(a.regex=a.start,a.next||(a.next=[]),a.next.push({defaultToken:a.token},{token:a.token+".end",regex:a.end||a.start,next:"pop"}),a.token=a.token+".start",a.push=!0);var l=a.next||a.push;if(l&&Array.isArray(l)){var c=a.stateName;c||(c=a.token,typeof c!="string"&&(c=c[0]||""),r[c]&&(c+=n++)),r[c]=l,a.next=c,i(c)}else l=="pop"&&(a.next=t);a.push&&(a.nextState=a.next||a.push,a.next=e,delete a.push);if(a.rules)for(var h in a.rules)r[h]?r[h].push&&r[h].push.apply(r[h],a.rules[h]):r[h]=a.rules[h];var p=typeof a=="string"?a:a.include;p&&(Array.isArray(p)?f=p.map(function(e){return r[e]}):f=r[p]);if(f){var d=[u,1].concat(f);a.noEscape&&(d=d.filter(function(e){return!e.next})),o.splice.apply(o,d),u--}a.keywordMap&&(a.token=this.createKeywordMapper(a.keywordMap,a.defaultToken||"text",a.caseInsensitive),delete a.defaultToken)}}var n=0,r=this.$rules;Object.keys(r).forEach(i,this)},this.createKeywordMapper=function(e,t,n,r){var i=Object.create(null);return Object.keys(e).forEach(function(t){var s=e[t];n&&(s=s.toLowerCase());var o=s.split(r||"|");for(var u=o.length;u--;)i[o[u]]=t}),Object.getPrototypeOf(i)&&(i.__proto__=null),this.$keywordList=Object.keys(i),e=null,n?function(e){return i[e.toLowerCase()]||t}:function(e){return i[e]||t}},this.getKeywords=function(){return this.$keywords}}).call(i.prototype),t.TextHighlightRules=i}),ace.define("ace/mode/behaviour",["require","exports","module"],function(e,t,n){"use strict";var r=function(){this.$behaviours={}};(function(){this.add=function(e,t,n){switch(undefined){case this.$behaviours:this.$behaviours={};case this.$behaviours[e]:this.$behaviours[e]={}}this.$behaviours[e][t]=n},this.addBehaviours=function(e){for(var t in e)for(var n in e[t])this.add(t,n,e[t][n])},this.remove=function(e){this.$behaviours&&this.$behaviours[e]&&delete this.$behaviours[e]},this.inherit=function(e,t){if(typeof e=="function")var n=(new e).getBehaviours(t);else var n=e.getBehaviours(t);this.addBehaviours(n)},this.getBehaviours=function(e){if(!e)return this.$behaviours;var t={};for(var n=0;n<e.length;n++)this.$behaviours[e[n]]&&(t[e[n]]=this.$behaviours[e[n]]);return t}}).call(r.prototype),t.Behaviour=r}),ace.define("ace/token_iterator",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("./range").Range,i=function(e,t,n){this.$session=e,this.$row=t,this.$rowTokens=e.getTokens(t);var r=e.getTokenAt(t,n);this.$tokenIndex=r?r.index:-1};(function(){this.stepBackward=function(){this.$tokenIndex-=1;while(this.$tokenIndex<0){this.$row-=1;if(this.$row<0)return this.$row=0,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=this.$rowTokens.length-1}return this.$rowTokens[this.$tokenIndex]},this.stepForward=function(){this.$tokenIndex+=1;var e;while(this.$tokenIndex>=this.$rowTokens.length){this.$row+=1,e||(e=this.$session.getLength());if(this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,n=e[t].start;if(n!==undefined)return n;n=0;while(t>0)t-=1,n+=e[t].value.length;return n},this.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},this.getCurrentTokenRange=function(){var e=this.$rowTokens[this.$tokenIndex],t=this.getCurrentTokenColumn();return new r(this.$row,t,this.$row,t+e.value.length)}}).call(i.prototype),t.TokenIterator=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c={'"':'"',"'":"'"},h=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},p=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},d=function(e){this.add("braces","insertion",function(t,n,r,i,s){var u=r.getCursorPosition(),a=i.doc.getLine(u.row);if(s=="{"){h(r);var l=r.getSelectionRange(),c=i.doc.getTextRange(l);if(c!==""&&c!=="{"&&r.getWrapBehavioursEnabled())return p(l,c,"{","}");if(d.isSaneInsertion(r,i))return/[\]\}\)]/.test(a[u.column])||r.inMultiSelectMode||e&&e.braces?(d.recordAutoInsert(r,i,"}"),{text:"{}",selection:[1,1]}):(d.recordMaybeInsert(r,i,"{"),{text:"{",selection:[1,1]})}else if(s=="}"){h(r);var v=a.substring(u.column,u.column+1);if(v=="}"){var m=i.$findOpeningBracket("}",{column:u.column+1,row:u.row});if(m!==null&&d.isAutoInsertedClosing(u,a,s))return d.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(s=="\n"||s=="\r\n"){h(r);var g="";d.isMaybeInsertedClosing(u,a)&&(g=o.stringRepeat("}",f.maybeInsertedBrackets),d.clearMaybeInsertedClosing());var v=a.substring(u.column,u.column+1);if(v==="}"){var y=i.findMatchingBracket({row:u.row,column:u.column+1},"}");if(!y)return null;var b=this.$getIndent(i.getLine(y.row))}else{if(!g){d.clearMaybeInsertedClosing();return}var b=this.$getIndent(a)}var w=b+i.getTabString();return{text:"\n"+w+"\n"+b+g,selection:[1,w.length,1,w.length]}}d.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){h(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){h(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return p(s,o,"(",")");if(d.isSaneInsertion(n,r))return d.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){h(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&d.isAutoInsertedClosing(u,a,i))return d.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){h(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){h(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return p(s,o,"[","]");if(d.isSaneInsertion(n,r))return d.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){h(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&d.isAutoInsertedClosing(u,a,i))return d.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){h(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){var s=r.$mode.$quotes||c;if(i.length==1&&s[i]){if(this.lineCommentStart&&this.lineCommentStart.indexOf(i)!=-1)return;h(n);var o=i,u=n.getSelectionRange(),a=r.doc.getTextRange(u);if(a!==""&&(a.length!=1||!s[a])&&n.getWrapBehavioursEnabled())return p(u,a,o,o);if(!a){var f=n.getCursorPosition(),l=r.doc.getLine(f.row),d=l.substring(f.column-1,f.column),v=l.substring(f.column,f.column+1),m=r.getTokenAt(f.row,f.column),g=r.getTokenAt(f.row,f.column+1);if(d=="\\"&&m&&/escape/.test(m.type))return null;var y=m&&/string|escape/.test(m.type),b=!g||/string|escape/.test(g.type),w;if(v==o)w=y!==b,w&&/string\.end/.test(g.type)&&(w=!1);else{if(y&&!b)return null;if(y&&b)return null;var E=r.$mode.tokenRe;E.lastIndex=0;var S=E.test(d);E.lastIndex=0;var x=E.test(d);if(S||x)return null;if(v&&!/[\s;,.})\]\\]/.test(v))return null;var T=l[f.column-2];if(!(d!=o||T!=o&&!E.test(T)))return null;w=!0}return{text:w?o+o:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.$mode.$quotes||c,o=r.doc.getTextRange(i);if(!i.isMultiLine()&&s.hasOwnProperty(o)){h(n);var u=r.doc.getLine(i.start.row),a=u.substring(i.start.column+1,i.start.column+2);if(a==o)return i.end.column++,i}})};d.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},d.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},d.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},d.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},d.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},d.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},d.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},d.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(d,i),t.CstyleBehaviour=d}),ace.define("ace/unicode",["require","exports","module"],function(e,t,n){"use strict";var r=[48,9,8,25,5,0,2,25,48,0,11,0,5,0,6,22,2,30,2,457,5,11,15,4,8,0,2,0,18,116,2,1,3,3,9,0,2,2,2,0,2,19,2,82,2,138,2,4,3,155,12,37,3,0,8,38,10,44,2,0,2,1,2,1,2,0,9,26,6,2,30,10,7,61,2,9,5,101,2,7,3,9,2,18,3,0,17,58,3,100,15,53,5,0,6,45,211,57,3,18,2,5,3,11,3,9,2,1,7,6,2,2,2,7,3,1,3,21,2,6,2,0,4,3,3,8,3,1,3,3,9,0,5,1,2,4,3,11,16,2,2,5,5,1,3,21,2,6,2,1,2,1,2,1,3,0,2,4,5,1,3,2,4,0,8,3,2,0,8,15,12,2,2,8,2,2,2,21,2,6,2,1,2,4,3,9,2,2,2,2,3,0,16,3,3,9,18,2,2,7,3,1,3,21,2,6,2,1,2,4,3,8,3,1,3,2,9,1,5,1,2,4,3,9,2,0,17,1,2,5,4,2,2,3,4,1,2,0,2,1,4,1,4,2,4,11,5,4,4,2,2,3,3,0,7,0,15,9,18,2,2,7,2,2,2,22,2,9,2,4,4,7,2,2,2,3,8,1,2,1,7,3,3,9,19,1,2,7,2,2,2,22,2,9,2,4,3,8,2,2,2,3,8,1,8,0,2,3,3,9,19,1,2,7,2,2,2,22,2,15,4,7,2,2,2,3,10,0,9,3,3,9,11,5,3,1,2,17,4,23,2,8,2,0,3,6,4,0,5,5,2,0,2,7,19,1,14,57,6,14,2,9,40,1,2,0,3,1,2,0,3,0,7,3,2,6,2,2,2,0,2,0,3,1,2,12,2,2,3,4,2,0,2,5,3,9,3,1,35,0,24,1,7,9,12,0,2,0,2,0,5,9,2,35,5,19,2,5,5,7,2,35,10,0,58,73,7,77,3,37,11,42,2,0,4,328,2,3,3,6,2,0,2,3,3,40,2,3,3,32,2,3,3,6,2,0,2,3,3,14,2,56,2,3,3,66,5,0,33,15,17,84,13,619,3,16,2,25,6,74,22,12,2,6,12,20,12,19,13,12,2,2,2,1,13,51,3,29,4,0,5,1,3,9,34,2,3,9,7,87,9,42,6,69,11,28,4,11,5,11,11,39,3,4,12,43,5,25,7,10,38,27,5,62,2,28,3,10,7,9,14,0,89,75,5,9,18,8,13,42,4,11,71,55,9,9,4,48,83,2,2,30,14,230,23,280,3,5,3,37,3,5,3,7,2,0,2,0,2,0,2,30,3,52,2,6,2,0,4,2,2,6,4,3,3,5,5,12,6,2,2,6,67,1,20,0,29,0,14,0,17,4,60,12,5,0,4,11,18,0,5,0,3,9,2,0,4,4,7,0,2,0,2,0,2,3,2,10,3,3,6,4,5,0,53,1,2684,46,2,46,2,132,7,6,15,37,11,53,10,0,17,22,10,6,2,6,2,6,2,6,2,6,2,6,2,6,2,6,2,31,48,0,470,1,36,5,2,4,6,1,5,85,3,1,3,2,2,89,2,3,6,40,4,93,18,23,57,15,513,6581,75,20939,53,1164,68,45,3,268,4,27,21,31,3,13,13,1,2,24,9,69,11,1,38,8,3,102,3,1,111,44,25,51,13,68,12,9,7,23,4,0,5,45,3,35,13,28,4,64,15,10,39,54,10,13,3,9,7,22,4,1,5,66,25,2,227,42,2,1,3,9,7,11171,13,22,5,48,8453,301,3,61,3,105,39,6,13,4,6,11,2,12,2,4,2,0,2,1,2,1,2,107,34,362,19,63,3,53,41,11,5,15,17,6,13,1,25,2,33,4,2,134,20,9,8,25,5,0,2,25,12,88,4,5,3,5,3,5,3,2],i=0,s=[];for(var o=0;o<r.length;o+=2)s.push(i+=r[o]),r[o+1]&&s.push(45,i+=r[o+1]);t.wordChars=String.fromCharCode.apply(null,s)}),ace.define("ace/mode/text",["require","exports","module","ace/config","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour/cstyle","ace/unicode","ace/lib/lang","ace/token_iterator","ace/range"],function(e,t,n){"use strict";var r=e("../config"),i=e("../tokenizer").Tokenizer,s=e("./text_highlight_rules").TextHighlightRules,o=e("./behaviour/cstyle").CstyleBehaviour,u=e("../unicode"),a=e("../lib/lang"),f=e("../token_iterator").TokenIterator,l=e("../range").Range,c=function(){this.HighlightRules=s};(function(){this.$defaultBehaviour=new o,this.tokenRe=new RegExp("^["+u.wordChars+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+u.wordChars+"\\$_]|\\s])+","g"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules(this.$highlightRuleConfig),this.$tokenizer=new i(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart="",this.blockComment="",this.toggleCommentLines=function(e,t,n,r){function w(e){for(var t=n;t<=r;t++)e(i.getLine(t),t)}var i=t.doc,s=!0,o=!0,u=Infinity,f=t.getTabSize(),l=!1;if(!this.lineCommentStart){if(!this.blockComment)return!1;var c=this.blockComment.start,h=this.blockComment.end,p=new RegExp("^(\\s*)(?:"+a.escapeRegExp(c)+")"),d=new RegExp("(?:"+a.escapeRegExp(h)+")\\s*$"),v=function(e,t){if(g(e,t))return;if(!s||/\S/.test(e))i.insertInLine({row:t,column:e.length},h),i.insertInLine({row:t,column:u},c)},m=function(e,t){var n;(n=e.match(d))&&i.removeInLine(t,e.length-n[0].length,e.length),(n=e.match(p))&&i.removeInLine(t,n[1].length,n[0].length)},g=function(e,n){if(p.test(e))return!0;var r=t.getTokens(n);for(var i=0;i<r.length;i++)if(r[i].type==="comment")return!0}}else{if(Array.isArray(this.lineCommentStart))var p=this.lineCommentStart.map(a.escapeRegExp).join("|"),c=this.lineCommentStart[0];else var p=a.escapeRegExp(this.lineCommentStart),c=this.lineCommentStart;p=new RegExp("^(\\s*)(?:"+p+") ?"),l=t.getUseSoftTabs();var m=function(e,t){var n=e.match(p);if(!n)return;var r=n[1].length,s=n[0].length;!b(e,r,s)&&n[0][s-1]==" "&&s--,i.removeInLine(t,r,s)},y=c+" ",v=function(e,t){if(!s||/\S/.test(e))b(e,u,u)?i.insertInLine({row:t,column:u},y):i.insertInLine({row:t,column:u},c)},g=function(e,t){return p.test(e)},b=function(e,t,n){var r=0;while(t--&&e.charAt(t)==" ")r++;if(r%f!=0)return!1;var r=0;while(e.charAt(n++)==" ")r++;return f>2?r%f!=f-1:r%f==0}}var E=Infinity;w(function(e,t){var n=e.search(/\S/);n!==-1?(n<u&&(u=n),o&&!g(e,t)&&(o=!1)):E>e.length&&(E=e.length)}),u==Infinity&&(u=E,s=!1,o=!1),l&&u%f!=0&&(u=Math.floor(u/f)*f),w(o?m:v)},this.toggleBlockComment=function(e,t,n,r){var i=this.blockComment;if(!i)return;!i.start&&i[0]&&(i=i[0]);var s=new f(t,r.row,r.column),o=s.getCurrentToken(),u=t.selection,a=t.selection.toOrientedRange(),c,h;if(o&&/comment/.test(o.type)){var p,d;while(o&&/comment/.test(o.type)){var v=o.value.indexOf(i.start);if(v!=-1){var m=s.getCurrentTokenRow(),g=s.getCurrentTokenColumn()+v;p=new l(m,g,m,g+i.start.length);break}o=s.stepBackward()}var s=new f(t,r.row,r.column),o=s.getCurrentToken();while(o&&/comment/.test(o.type)){var v=o.value.indexOf(i.end);if(v!=-1){var m=s.getCurrentTokenRow(),g=s.getCurrentTokenColumn()+v;d=new l(m,g,m,g+i.end.length);break}o=s.stepForward()}d&&t.remove(d),p&&(t.remove(p),c=p.start.row,h=-i.start.length)}else h=i.start.length,c=n.start.row,t.insert(n.end,i.end),t.insert(n.start,i.start);a.start.row==c&&(a.start.column+=h),a.end.row==c&&(a.end.column+=h),t.selection.fromOrientedRange(a)},this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.autoOutdent=function(e,t,n){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){this.$embeds=[],this.$modes={};for(var t in e)if(e[t]){var n=e[t],i=n.prototype.$id,s=r.$modes[i];s||(r.$modes[i]=s=new n),r.$modes[t]||(r.$modes[t]=s),this.$embeds.push(t),this.$modes[t]=s}var o=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"];for(var t=0;t<o.length;t++)(function(e){var n=o[t],r=e[n];e[o[t]]=function(){return this.$delegator(n,arguments,r)}})(this)},this.$delegator=function(e,t,n){var r=t[0]||"start";if(typeof r!="string"){if(Array.isArray(r[2])){var i=r[2][r[2].length-1],s=this.$modes[i];if(s)return s[e].apply(s,[r[1]].concat([].slice.call(t,1)))}r=r[0]||"start"}for(var o=0;o<this.$embeds.length;o++){if(!this.$modes[this.$embeds[o]])continue;var u=r.split(this.$embeds[o]);if(!u[0]&&u[1]){t[0]=u[1];var s=this.$modes[this.$embeds[o]];return s[e].apply(s,t)}}var a=n.apply(this,t);return n?a:undefined},this.transformAction=function(e,t,n,r,i){if(this.$behaviour){var s=this.$behaviour.getBehaviours();for(var o in s)if(s[o][t]){var u=s[o][t].apply(this,arguments);if(u)return u}}},this.getKeywords=function(e){if(!this.completionKeywords){var t=this.$tokenizer.rules,n=[];for(var r in t){var i=t[r];for(var s=0,o=i.length;s<o;s++)if(typeof i[s].token=="string")/keyword|support|storage/.test(i[s].token)&&n.push(i[s].regex);else if(typeof i[s].token=="object")for(var u=0,a=i[s].token.length;u<a;u++)if(/keyword|support|storage/.test(i[s].token[u])){var r=i[s].regex.match(/\(.+?\)/g)[u];n.push(r.substr(1,r.length-2))}}this.completionKeywords=n}return e?n.concat(this.$keywordList||[]):this.$keywordList},this.$createKeywordList=function(){return this.$highlightRules||this.getTokenizer(),this.$keywordList=this.$highlightRules.$keywordList||[]},this.getCompletions=function(e,t,n,r){var i=this.$keywordList||this.$createKeywordList();return i.map(function(e){return{name:e,value:e,score:0,meta:"keyword"}})},this.$id="ace/mode/text"}).call(c.prototype),t.Mode=c}),ace.define("ace/apply_delta",["require","exports","module"],function(e,t,n){"use strict";function r(e,t){throw console.log("Invalid Delta:",e),"Invalid Delta: "+t}function i(e,t){return t.row>=0&&t.row<e.length&&t.column>=0&&t.column<=e[t.row].length}function s(e,t){t.action!="insert"&&t.action!="remove"&&r(t,"delta.action must be 'insert' or 'remove'"),t.lines instanceof Array||r(t,"delta.lines must be an Array"),(!t.start||!t.end)&&r(t,"delta.start/end must be an present");var n=t.start;i(e,t.start)||r(t,"delta.start must be contained in document");var s=t.end;t.action=="remove"&&!i(e,s)&&r(t,"delta.end must contained in document for 'remove' actions");var o=s.row-n.row,u=s.column-(o==0?n.column:0);(o!=t.lines.length-1||t.lines[o].length!=u)&&r(t,"delta.range must match delta lines")}t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,s=e[r]||"";switch(t.action){case"insert":var o=t.lines;if(o.length===1)e[r]=s.substring(0,i)+t.lines[0]+s.substring(i);else{var u=[r,1].concat(t.lines);e.splice.apply(e,u),e[r]=s.substring(0,i)+e[r],e[r+t.lines.length-1]+=s.substring(i)}break;case"remove":var a=t.end.column,f=t.end.row;r===f?e[r]=s.substring(0,i)+s.substring(a):e.splice(r,f-r+1,s.substring(0,i)+e[f].substring(a))}}}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n=="undefined"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){function e(e,t,n){var r=n?e.column<=t.column:e.column<t.column;return e.row<t.row||e.row==t.row&&r}function t(t,n,r){var i=t.action=="insert",s=(i?1:-1)*(t.end.row-t.start.row),o=(i?1:-1)*(t.end.column-t.start.column),u=t.start,a=i?u:t.end;return e(n,u,r)?{row:n.row,column:n.column}:e(a,n,!r)?{row:n.row+s,column:n.column+(n.row==a.row?o:0)}:{row:u.row,column:u.column}}r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){if(e.start.row==e.end.row&&e.start.row!=this.row)return;if(e.start.row>this.row)return;var n=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(n.row,n.column,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal("change",{old:i,value:r})},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./apply_delta").applyDelta,s=e("./lib/event_emitter").EventEmitter,o=e("./range").Range,u=e("./anchor").Anchor,a=function(e){this.$lines=[""],e.length===0?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){r.implement(this,s),this.setValue=function(e){var t=this.getLength()-1;this.remove(new o(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new u(this,e,t)},"aaa".split(/a/).length===0?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal("changeNewLineMode")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e=="\r\n"||e=="\r"||e=="\n"},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||"").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:"insert",lines:[t]},!0),this.clonePos(r)},this.clippedPos=function(e,t){var n=this.getLength();e===undefined?e=n:e<0?e=0:e>=n&&(e=n-1,t=undefined);var r=this.getLine(e);return t==undefined&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e<this.getLength()?(t=t.concat([""]),n=0):(t=[""].concat(t),e--,n=this.$lines[e].length),this.insertMergedLines({row:e,column:n},t)},this.insertMergedLines=function(e,t){var n=this.clippedPos(e.row,e.column),r={row:n.row+t.length-1,column:(t.length==1?n.column:0)+t[t.length-1].length};return this.applyDelta({start:n,end:r,action:"insert",lines:t}),this.clonePos(r)},this.remove=function(e){var t=this.clippedPos(e.start.row,e.start.column),n=this.clippedPos(e.end.row,e.end.column);return this.applyDelta({start:t,end:n,action:"remove",lines:this.getLinesForRange({start:t,end:n})}),this.clonePos(t)},this.removeInLine=function(e,t,n){var r=this.clippedPos(e,t),i=this.clippedPos(e,n);return this.applyDelta({start:r,end:i,action:"remove",lines:this.getLinesForRange({start:r,end:i})},!0),this.clonePos(r)},this.removeFullLines=function(e,t){e=Math.min(Math.max(0,e),this.getLength()-1),t=Math.min(Math.max(0,t),this.getLength()-1);var n=t==this.getLength()-1&&e>0,r=t<this.getLength()-1,i=n?e-1:e,s=n?this.getLine(i).length:0,u=r?t+1:t,a=r?0:this.getLine(u).length,f=new o(i,s,u,a),l=this.$lines.slice(e,t+1);return this.applyDelta({start:f.start,end:f.end,action:"remove",lines:this.getLinesForRange(f)}),l},this.removeNewLine=function(e){e<this.getLength()-1&&e>=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},this.replace=function(e,t){e instanceof o||(e=o.fromPoints(e.start,e.end));if(t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return t?n=this.insert(e.start,t):n=e.start,n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++)this.applyDelta(e[t])},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var n=e.action=="insert";if(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))return;n&&e.lines.length>2e4?this.$splitAndapplyLargeDelta(e,2e4):(i(this.$lines,e,t),this._signal("change",e))},this.$splitAndapplyLargeDelta=function(e,t){var n=e.lines,r=n.length-t+1,i=e.start.row,s=e.start.column;for(var o=0,u=0;o<r;o=u){u+=t-1;var a=n.slice(o,u);a.push(""),this.applyDelta({start:this.pos(i+o,s),end:this.pos(i+u,s=0),action:e.action,lines:a},!0)}e.lines=n.slice(o),e.start.row=i+o,e.start.column=s,this.applyDelta(e,!0)},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:e.action=="insert"?"remove":"insert",lines:e.lines.slice()})},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:e+n[s-1].length+r}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(a.prototype),t.Document=a}),ace.define("ace/background_tokenizer",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=function(e,t){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.tokenizer=e;var n=this;this.$worker=function(){if(!n.running)return;var e=new Date,t=n.currentLine,r=-1,i=n.doc,s=t;while(n.lines[t])t++;var o=i.getLength(),u=0;n.running=!1;while(t<o){n.$tokenizeRow(t),r=t;do t++;while(n.lines[t]);u++;if(u%5===0&&new Date-e>20){n.running=setTimeout(n.$worker,20);break}}n.currentLine=t,r==-1&&(r=t),s<=r&&n.fireUpdateEvent(s,r)}};(function(){r.implement(this,i),this.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(e,t){var n={first:e,last:t};this._signal("update",{data:n})},this.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},this.$updateOnChange=function(e){var t=e.start.row,n=e.end.row-t;if(n===0)this.lines[t]=null;else if(e.action=="remove")this.lines.splice(t,n+1,null),this.states.splice(t,n+1,null);else{var r=Array(n+1);r.unshift(t,1),this.lines.splice.apply(this.lines,r),this.states.splice.apply(this.states,r)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},this.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},this.$tokenizeRow=function(e){var t=this.doc.getLine(e),n=this.states[e-1],r=this.tokenizer.getLineTokens(t,n,e);return this.states[e]+""!=r.state+""?(this.states[e]=r.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=r.tokens}}).call(s.prototype),t.BackgroundTokenizer=s}),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,n){"use strict";var r=e("./lib/lang"),i=e("./lib/oop"),s=e("./range").Range,o=function(e,t,n){this.setRegexp(e),this.clazz=t,this.type=n||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(e){if(this.regExp+""==e+"")return;this.regExp=e,this.cache=[]},this.update=function(e,t,n,i){if(!this.regExp)return;var o=i.firstRow,u=i.lastRow;for(var a=o;a<=u;a++){var f=this.cache[a];f==null&&(f=r.getMatchOffsets(n.getLine(a),this.regExp),f.length>this.MAX_RANGES&&(f=f.slice(0,this.MAX_RANGES)),f=f.map(function(e){return new s(a,e.offset,a,e.offset+e.length)}),this.cache[a]=f.length?f:"");for(var l=f.length;l--;)t.drawSingleLineMarker(e,f[l].toScreenRange(n),this.clazz,i)}}}).call(o.prototype),t.SearchHighlight=o}),ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(e,t,n){"use strict";function i(e,t){this.foldData=e,Array.isArray(t)?this.folds=t:t=this.folds=[t];var n=t[t.length-1];this.range=new r(t[0].start.row,t[0].start.column,n.end.row,n.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(e){e.setFoldLine(this)},this)}var r=e("../range").Range;(function(){this.shiftRow=function(e){this.start.row+=e,this.end.row+=e,this.folds.forEach(function(t){t.start.row+=e,t.end.row+=e})},this.addFold=function(e){if(e.sameRow){if(e.start.row<this.startRow||e.endRow>this.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort(function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)}),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},this.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},this.walk=function(e,t,n){var r=0,i=this.folds,s,o,u,a=!0;t==null&&(t=this.end.row,n=this.end.column);for(var f=0;f<i.length;f++){s=i[f],o=s.range.compareStart(t,n);if(o==-1){e(null,t,n,r,a);return}u=e(null,s.start.row,s.start.column,r,a),u=!u&&e(s.placeholder,s.start.row,s.start.column,r);if(u||o===0)return;a=!s.sameRow,r=s.end.column}e(null,t,n,r,a)},this.getNextFoldTo=function(e,t){var n,r;for(var i=0;i<this.folds.length;i++){n=this.folds[i],r=n.range.compareEnd(e,t);if(r==-1)return{fold:n,kind:"after"};if(r===0)return{fold:n,kind:"inside"}}return null},this.addRemoveChars=function(e,t,n){var r=this.getNextFoldTo(e,t),i,s;if(r){i=r.fold;if(r.kind=="inside"&&i.start.column!=t&&i.start.row!=e)window.console&&window.console.log(e,t,i);else if(i.start.row==e){s=this.folds;var o=s.indexOf(i);o===0&&(this.start.column+=n);for(o;o<s.length;o++){i=s[o],i.start.column+=n;if(!i.sameRow)return;i.end.column+=n}this.end.column+=n}}},this.split=function(e,t){var n=this.getNextFoldTo(e,t);if(!n||n.kind=="inside")return null;var r=n.fold,s=this.folds,o=this.foldData,u=s.indexOf(r),a=s[u-1];this.end.row=a.end.row,this.end.column=a.end.column,s=s.splice(u,s.length-u);var f=new i(o,s);return o.splice(o.indexOf(this)+1,0,f),f},this.merge=function(e){var t=e.folds;for(var n=0;n<t.length;n++)this.addFold(t[n]);var r=this.foldData;r.splice(r.indexOf(e),1)},this.toString=function(){var e=[this.range.toString()+": ["];return this.folds.forEach(function(t){e.push(" "+t.toString())}),e.push("]"),e.join("\n")},this.idxToPosition=function(e){var t=0;for(var n=0;n<this.folds.length;n++){var r=this.folds[n];e-=r.start.column-t;if(e<0)return{row:r.start.row,column:r.start.column+e};e-=r.placeholder.length;if(e<0)return r.start;t=r.end.column}return{row:this.end.row,column:this.end.column+e}}}).call(i.prototype),t.FoldLine=i}),ace.define("ace/range_list",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("./range").Range,i=r.comparePoints,s=function(){this.ranges=[]};(function(){this.comparePoints=i,this.pointIndex=function(e,t,n){var r=this.ranges;for(var s=n||0;s<r.length;s++){var o=r[s],u=i(e,o.end);if(u>0)continue;var a=i(e,o.start);return u===0?t&&a!==0?-s-2:s:a>0||a===0&&!t?s:-s-1}return-s-1},this.add=function(e){var t=!e.isEmpty(),n=this.pointIndex(e.start,t);n<0&&(n=-n-1);var r=this.pointIndex(e.end,t,n);return r<0?r=-r-1:r++,this.ranges.splice(n,r-n,e)},this.addList=function(e){var t=[];for(var n=e.length;n--;)t.push.apply(t,this.add(e[n]));return t},this.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},this.merge=function(){var e=[],t=this.ranges;t=t.sort(function(e,t){return i(e.start,t.start)});var n=t[0],r;for(var s=1;s<t.length;s++){r=n,n=t[s];var o=i(r.end,n.start);if(o<0)continue;if(o==0&&!r.isEmpty()&&!n.isEmpty())continue;i(r.end,n.end)<0&&(r.end.row=n.end.row,r.end.column=n.end.column),t.splice(s,1),e.push(n),n=r,s--}return this.ranges=t,e},this.contains=function(e,t){return this.pointIndex({row:e,column:t})>=0},this.containsPoint=function(e){return this.pointIndex(e)>=0},this.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},this.clipRows=function(e,t){var n=this.ranges;if(n[0].start.row>t||n[n.length-1].start.row<e)return[];var r=this.pointIndex({row:e,column:0});r<0&&(r=-r-1);var i=this.pointIndex({row:t,column:0},r);i<0&&(i=-i-1);var s=[];for(var o=r;o<i;o++)s.push(n[o]);return s},this.removeAll=function(){return this.ranges.splice(0,this.ranges.length)},this.attach=function(e){this.session&&this.detach(),this.session=e,this.onChange=this.$onChange.bind(this),this.session.on("change",this.onChange)},this.detach=function(){if(!this.session)return;this.session.removeListener("change",this.onChange),this.session=null},this.$onChange=function(e){var t=e.start,n=e.end,r=t.row,i=n.row,s=this.ranges;for(var o=0,u=s.length;o<u;o++){var a=s[o];if(a.end.row>=r)break}if(e.action=="insert"){var f=i-r,l=-t.column+n.column;for(;o<u;o++){var a=s[o];if(a.start.row>r)break;a.start.row==r&&a.start.column>=t.column&&(a.start.column!=t.column||!this.$insertRight)&&(a.start.column+=l,a.start.row+=f);if(a.end.row==r&&a.end.column>=t.column){if(a.end.column==t.column&&this.$insertRight)continue;a.end.column==t.column&&l>0&&o<u-1&&a.end.column>a.start.column&&a.end.column==s[o+1].start.column&&(a.end.column-=l),a.end.column+=l,a.end.row+=f}}}else{var f=r-i,l=t.column-n.column;for(;o<u;o++){var a=s[o];if(a.start.row>i)break;if(a.end.row<i&&(r<a.end.row||r==a.end.row&&t.column<a.end.column))a.end.row=r,a.end.column=t.column;else if(a.end.row==i)if(a.end.column<=n.column){if(f||a.end.column>t.column)a.end.column=t.column,a.end.row=t.row}else a.end.column+=l,a.end.row+=f;else a.end.row>i&&(a.end.row+=f);if(a.start.row<i&&(r<a.start.row||r==a.start.row&&t.column<a.start.column))a.start.row=r,a.start.column=t.column;else if(a.start.row==i)if(a.start.column<=n.column){if(f||a.start.column>t.column)a.start.column=t.column,a.start.row=t.row}else a.start.column+=l,a.start.row+=f;else a.start.row>i&&(a.start.row+=f)}}if(f!=0&&o<u)for(;o<u;o++){var a=s[o];a.start.row+=f,a.end.row+=f}}}).call(s.prototype),t.RangeList=s}),ace.define("ace/edit_session/fold",["require","exports","module","ace/range_list","ace/lib/oop"],function(e,t,n){"use strict";function o(e,t){e.row-=t.row,e.row==0&&(e.column-=t.column)}function u(e,t){o(e.start,t),o(e.end,t)}function a(e,t){e.row==0&&(e.column+=t.column),e.row+=t.row}function f(e,t){a(e.start,t),a(e.end,t)}var r=e("../range_list").RangeList,i=e("../lib/oop"),s=t.Fold=function(e,t){this.foldLine=null,this.placeholder=t,this.range=e,this.start=e.start,this.end=e.end,this.sameRow=e.start.row==e.end.row,this.subFolds=this.ranges=[]};i.inherits(s,r),function(){this.toString=function(){return'"'+this.placeholder+'" '+this.range.toString()},this.setFoldLine=function(e){this.foldLine=e,this.subFolds.forEach(function(t){t.setFoldLine(e)})},this.clone=function(){var e=this.range.clone(),t=new s(e,this.placeholder);return this.subFolds.forEach(function(e){t.subFolds.push(e.clone())}),t.collapseChildren=this.collapseChildren,t},this.addSubFold=function(e){if(this.range.isEqual(e))return;u(e,this.start);var t=e.start.row,n=e.start.column;for(var r=0,i=-1;r<this.subFolds.length;r++){i=this.subFolds[r].range.compare(t,n);if(i!=1)break}var s=this.subFolds[r],o=0;if(i==0){if(s.range.containsRange(e))return s.addSubFold(e);o=1}var t=e.range.end.row,n=e.range.end.column;for(var a=r,i=-1;a<this.subFolds.length;a++){i=this.subFolds[a].range.compare(t,n);if(i!=1)break}i==0&&a++;var f=this.subFolds.splice(r,a-r,e),l=i==0?f.length-1:f.length;for(var c=o;c<l;c++)e.addSubFold(f[c]);return e.setFoldLine(this.foldLine),e},this.restoreRange=function(e){return f(e,this.start)}}.call(s.prototype)}),ace.define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold","ace/token_iterator"],function(e,t,n){"use strict";function u(){this.getFoldAt=function(e,t,n){var r=this.getFoldLine(e);if(!r)return null;var i=r.folds;for(var s=0;s<i.length;s++){var o=i[s].range;if(o.contains(e,t)){if(n==1&&o.isEnd(e,t)&&!o.isEmpty())continue;if(n==-1&&o.isStart(e,t)&&!o.isEmpty())continue;return i[s]}}},this.getFoldsInRange=function(e){var t=e.start,n=e.end,r=this.$foldData,i=[];t.column+=1,n.column-=1;for(var s=0;s<r.length;s++){var o=r[s].range.compareRange(e);if(o==2)continue;if(o==-2)break;var u=r[s].folds;for(var a=0;a<u.length;a++){var f=u[a];o=f.range.compareRange(e);if(o==-2)break;if(o==2)continue;if(o==42)break;i.push(f)}}return t.column-=1,n.column+=1,i},this.getFoldsInRangeList=function(e){if(Array.isArray(e)){var t=[];e.forEach(function(e){t=t.concat(this.getFoldsInRange(e))},this)}else var t=this.getFoldsInRange(e);return t},this.getAllFolds=function(){var e=[],t=this.$foldData;for(var n=0;n<t.length;n++)for(var r=0;r<t[n].folds.length;r++)e.push(t[n].folds[r]);return e},this.getFoldStringAt=function(e,t,n,r){r=r||this.getFoldLine(e);if(!r)return null;var i={end:{column:0}},s,o;for(var u=0;u<r.folds.length;u++){o=r.folds[u];var a=o.range.compareEnd(e,t);if(a==-1){s=this.getLine(o.start.row).substring(i.end.column,o.start.column);break}if(a===0)return null;i=o}return s||(s=this.getLine(o.start.row).substring(i.end.column)),n==-1?s.substring(0,t-i.end.column):n==1?s.substring(t-i.end.column):s},this.getFoldLine=function(e,t){var n=this.$foldData,r=0;t&&(r=n.indexOf(t)),r==-1&&(r=0);for(r;r<n.length;r++){var i=n[r];if(i.start.row<=e&&i.end.row>=e)return i;if(i.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var n=this.$foldData,r=0;t&&(r=n.indexOf(t)),r==-1&&(r=0);for(r;r<n.length;r++){var i=n[r];if(i.end.row>=e)return i}return null},this.getFoldedRowCount=function(e,t){var n=this.$foldData,r=t-e+1;for(var i=0;i<n.length;i++){var s=n[i],o=s.end.row,u=s.start.row;if(o>=t){u<t&&(u>=e?r-=t-u:r=0);break}o>=e&&(u>=e?r-=o-u:r-=o-e+1)}return r},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort(function(e,t){return e.start.row-t.start.row}),e},this.addFold=function(e,t){var n=this.$foldData,r=!1,o;e instanceof s?o=e:(o=new s(t,e),o.collapseChildren=t.collapseChildren),this.$clipRangeToDocument(o.range);var u=o.start.row,a=o.start.column,f=o.end.row,l=o.end.column,c=this.getFoldAt(u,a,1),h=this.getFoldAt(f,l,-1);if(c&&h==c)return c.addSubFold(o);c&&!c.range.isStart(u,a)&&this.removeFold(c),h&&!h.range.isEnd(f,l)&&this.removeFold(h);var p=this.getFoldsInRange(o.range);p.length>0&&(this.removeFolds(p),p.forEach(function(e){o.addSubFold(e)}));for(var d=0;d<n.length;d++){var v=n[d];if(f==v.start.row){v.addFold(o),r=!0;break}if(u==v.end.row){v.addFold(o),r=!0;if(!o.sameRow){var m=n[d+1];if(m&&m.start.row==f){v.merge(m);break}}break}if(f<=v.start.row)break}return r||(v=this.$addFoldLine(new i(this.$foldData,o))),this.$useWrapMode?this.$updateWrapData(v.start.row,v.start.row):this.$updateRowLengthCache(v.start.row,v.start.row),this.$modified=!0,this._signal("changeFold",{data:o,action:"add"}),o},this.addFolds=function(e){e.forEach(function(e){this.addFold(e)},this)},this.removeFold=function(e){var t=e.foldLine,n=t.start.row,r=t.end.row,i=this.$foldData,s=t.folds;if(s.length==1)i.splice(i.indexOf(t),1);else if(t.range.isEnd(e.end.row,e.end.column))s.pop(),t.end.row=s[s.length-1].end.row,t.end.column=s[s.length-1].end.column;else if(t.range.isStart(e.start.row,e.start.column))s.shift(),t.start.row=s[0].start.row,t.start.column=s[0].start.column;else if(e.sameRow)s.splice(s.indexOf(e),1);else{var o=t.split(e.start.row,e.start.column);s=o.folds,s.shift(),o.start.row=s[0].start.row,o.start.column=s[0].start.column}this.$updating||(this.$useWrapMode?this.$updateWrapData(n,r):this.$updateRowLengthCache(n,r)),this.$modified=!0,this._signal("changeFold",{data:e,action:"remove"})},this.removeFolds=function(e){var t=[];for(var n=0;n<e.length;n++)t.push(e[n]);t.forEach(function(e){this.removeFold(e)},this),this.$modified=!0},this.expandFold=function(e){this.removeFold(e),e.subFolds.forEach(function(t){e.restoreRange(t),this.addFold(t)},this),e.collapseChildren>0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach(function(e){this.expandFold(e)},this)},this.unfold=function(e,t){var n,i;e==null?(n=new r(0,0,this.getLength(),0),t=!0):typeof e=="number"?n=new r(e,0,e,this.getLine(e).length):"row"in e?n=r.fromPoints(e,e):n=e,i=this.getFoldsInRangeList(n);if(t)this.removeFolds(i);else{var s=i;while(s.length)this.expandFolds(s),s=this.getFoldsInRangeList(n)}if(i.length)return i},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var n=this.getFoldLine(e,t);return n?n.end.row:e},this.getRowFoldStart=function(e,t){var n=this.getFoldLine(e,t);return n?n.start.row:e},this.getFoldDisplayLine=function(e,t,n,r,i){r==null&&(r=e.start.row),i==null&&(i=0),t==null&&(t=e.end.row),n==null&&(n=this.getLine(t).length);var s=this.doc,o="";return e.walk(function(e,t,n,u){if(t<r)return;if(t==r){if(n<i)return;u=Math.max(i,u)}e!=null?o+=e:o+=s.getLine(t).substring(u,n)},t,n),o},this.getDisplayLine=function(e,t,n,r){var i=this.getFoldLine(e);if(!i){var s;return s=this.doc.getLine(e),s.substring(r||0,t||s.length)}return this.getFoldDisplayLine(i,e,t,n,r)},this.$cloneFoldData=function(){var e=[];return e=this.$foldData.map(function(t){var n=t.folds.map(function(e){return e.clone()});return new i(e,n)}),e},this.toggleFold=function(e){var t=this.selection,n=t.getRange(),r,i;if(n.isEmpty()){var s=n.start;r=this.getFoldAt(s.row,s.column);if(r){this.expandFold(r);return}(i=this.findMatchingBracket(s))?n.comparePoint(i)==1?n.end=i:(n.start=i,n.start.column++,n.end.column--):(i=this.findMatchingBracket({row:s.row,column:s.column+1}))?(n.comparePoint(i)==1?n.end=i:n.start=i,n.start.column++):n=this.getCommentFoldRange(s.row,s.column)||n}else{var o=this.getFoldsInRange(n);if(e&&o.length){this.expandFolds(o);return}o.length==1&&(r=o[0])}r||(r=this.getFoldAt(n.start.row,n.start.column));if(r&&r.range.toString()==n.toString()){this.expandFold(r);return}var u="...";if(!n.isMultiLine()){u=this.getTextRange(n);if(u.length<4)return;u=u.trim().substring(0,2)+".."}this.addFold(u,n)},this.getCommentFoldRange=function(e,t,n){var i=new o(this,e,t),s=i.getCurrentToken(),u=s.type;if(s&&/^comment|string/.test(u)){u=u.match(/comment|string/)[0],u=="comment"&&(u+="|doc-start");var a=new RegExp(u),f=new r;if(n!=1){do s=i.stepBackward();while(s&&a.test(s.type));i.stepForward()}f.start.row=i.getCurrentTokenRow(),f.start.column=i.getCurrentTokenColumn()+2,i=new o(this,e,t);if(n!=-1){var l=-1;do{s=i.stepForward();if(l==-1){var c=this.getState(i.$row);a.test(c)||(l=i.$row)}else if(i.$row>l)break}while(s&&a.test(s.type));s=i.stepBackward()}else s=i.getCurrentToken();return f.end.row=i.getCurrentTokenRow(),f.end.column=i.getCurrentTokenColumn()+s.value.length-2,f}},this.foldAll=function(e,t,n){n==undefined&&(n=1e5);var r=this.foldWidgets;if(!r)return;t=t||this.getLength(),e=e||0;for(var i=e;i<t;i++){r[i]==null&&(r[i]=this.getFoldWidget(i));if(r[i]!="start")continue;var s=this.getFoldWidgetRange(i);if(s&&s.isMultiLine()&&s.end.row<=t&&s.start.row>=e){i=s.end.row;try{var o=this.addFold("...",s);o&&(o.collapseChildren=n)}catch(u){}}}},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle="markbegin",this.setFoldStyle=function(e){if(!this.$foldStyles[e])throw new Error("invalid fold style: "+e+"["+Object.keys(this.$foldStyles).join(", ")+"]");if(this.$foldStyle==e)return;this.$foldStyle=e,e=="manual"&&this.unfold();var t=this.$foldMode;this.$setFolding(null),this.$setFolding(t)},this.$setFolding=function(e){if(this.$foldMode==e)return;this.$foldMode=e,this.off("change",this.$updateFoldWidgets),this.off("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets),this._signal("changeAnnotation");if(!e||this.$foldStyle=="manual"){this.foldWidgets=null;return}this.foldWidgets=[],this.getFoldWidget=e.getFoldWidget.bind(e,this,this.$foldStyle),this.getFoldWidgetRange=e.getFoldWidgetRange.bind(e,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.$tokenizerUpdateFoldWidgets=this.tokenizerUpdateFoldWidgets.bind(this),this.on("change",this.$updateFoldWidgets),this.on("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets)},this.getParentFoldRangeData=function(e,t){var n=this.foldWidgets;if(!n||t&&n[e])return{};var r=e-1,i;while(r>=0){var s=n[r];s==null&&(s=n[r]=this.getFoldWidget(r));if(s=="start"){var o=this.getFoldWidgetRange(r);i||(i=o);if(o&&o.end.row>=e)break}r--}return{range:r!==-1&&o,firstRange:i}},this.onFoldWidgetClick=function(e,t){t=t.domEvent;var n={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey},r=this.$toggleFoldWidget(e,n);if(!r){var i=t.target||t.srcElement;i&&/ace_fold-widget/.test(i.className)&&(i.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(!this.getFoldWidget)return;var n=this.getFoldWidget(e),r=this.getLine(e),i=n==="end"?-1:1,s=this.getFoldAt(e,i===-1?0:r.length,i);if(s)return t.children||t.all?this.removeFold(s):this.expandFold(s),s;var o=this.getFoldWidgetRange(e,!0);if(o&&!o.isMultiLine()){s=this.getFoldAt(o.start.row,o.start.column,1);if(s&&o.isEqual(s.range))return this.removeFold(s),s}if(t.siblings){var u=this.getParentFoldRangeData(e);if(u.range)var a=u.range.start.row+1,f=u.range.end.row;this.foldAll(a,f,t.all?1e4:0)}else t.children?(f=o?o.end.row:this.getLength(),this.foldAll(e+1,f,t.all?1e4:0)):o&&(t.all&&(o.collapseChildren=1e4),this.addFold("...",o));return o},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var n=this.$toggleFoldWidget(t,{});if(n)return;var r=this.getParentFoldRangeData(t,!0);n=r.range||r.firstRange;if(n){t=n.start.row;var i=this.getFoldAt(t,this.getLine(t).length,1);i?this.removeFold(i):this.addFold("...",n)}},this.updateFoldWidgets=function(e){var t=e.start.row,n=e.end.row-t;if(n===0)this.foldWidgets[t]=null;else if(e.action=="remove")this.foldWidgets.splice(t,n+1,null);else{var r=Array(n+1);r.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,r)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}var r=e("../range").Range,i=e("./fold_line").FoldLine,s=e("./fold").Fold,o=e("../token_iterator").TokenIterator;t.Folding=u}),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(e,t,n){"use strict";function s(){this.findMatchingBracket=function(e,t){if(e.column==0)return null;var n=t||this.getLine(e.row).charAt(e.column-1);if(n=="")return null;var r=n.match(/([\(\[\{])|([\)\]\}])/);return r?r[1]?this.$findClosingBracket(r[1],e):this.$findOpeningBracket(r[2],e):null},this.getBracketRange=function(e){var t=this.getLine(e.row),n=!0,r,s=t.charAt(e.column-1),o=s&&s.match(/([\(\[\{])|([\)\]\}])/);o||(s=t.charAt(e.column),e={row:e.row,column:e.column+1},o=s&&s.match(/([\(\[\{])|([\)\]\}])/),n=!1);if(!o)return null;if(o[1]){var u=this.$findClosingBracket(o[1],e);if(!u)return null;r=i.fromPoints(e,u),n||(r.end.column++,r.start.column--),r.cursor=r.end}else{var u=this.$findOpeningBracket(o[2],e);if(!u)return null;r=i.fromPoints(u,e),n||(r.start.column++,r.end.column--),r.cursor=r.start}return r},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{","<":">",">":"<"},this.$findOpeningBracket=function(e,t,n){var i=this.$brackets[e],s=1,o=new r(this,t.row,t.column),u=o.getCurrentToken();u||(u=o.stepForward());if(!u)return;n||(n=new RegExp("(\\.?"+u.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+"));var a=t.column-o.getCurrentTokenColumn()-2,f=u.value;for(;;){while(a>=0){var l=f.charAt(a);if(l==i){s-=1;if(s==0)return{row:o.getCurrentTokenRow(),column:a+o.getCurrentTokenColumn()}}else l==e&&(s+=1);a-=1}do u=o.stepBackward();while(u&&!n.test(u.type));if(u==null)break;f=u.value,a=f.length-1}return null},this.$findClosingBracket=function(e,t,n){var i=this.$brackets[e],s=1,o=new r(this,t.row,t.column),u=o.getCurrentToken();u||(u=o.stepForward());if(!u)return;n||(n=new RegExp("(\\.?"+u.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)")+")+"));var a=t.column-o.getCurrentTokenColumn();for(;;){var f=u.value,l=f.length;while(a<l){var c=f.charAt(a);if(c==i){s-=1;if(s==0)return{row:o.getCurrentTokenRow(),column:a+o.getCurrentTokenColumn()}}else c==e&&(s+=1);a+=1}do u=o.stepForward();while(u&&!n.test(u.type));if(u==null)break;a=0}return null}}var r=e("../token_iterator").TokenIterator,i=e("../range").Range;t.BracketMatch=s}),ace.define("ace/edit_session",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/bidihandler","ace/config","ace/lib/event_emitter","ace/selection","ace/mode/text","ace/range","ace/document","ace/background_tokenizer","ace/search_highlight","ace/edit_session/folding","ace/edit_session/bracket_match"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/lang"),s=e("./bidihandler").BidiHandler,o=e("./config"),u=e("./lib/event_emitter").EventEmitter,a=e("./selection").Selection,f=e("./mode/text").Mode,l=e("./range").Range,c=e("./document").Document,h=e("./background_tokenizer").BackgroundTokenizer,p=e("./search_highlight").SearchHighlight,d=function(e,t){this.$breakpoints=[],this.$decorations=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$undoSelect=!0,this.$foldData=[],this.id="session"+ ++d.$uid,this.$foldData.toString=function(){return this.join("\n")},this.on("changeFold",this.onChangeFold.bind(this)),this.$onChange=this.onChange.bind(this);if(typeof e!="object"||!e.getLine)e=new c(e);this.setDocument(e),this.selection=new a(this),this.$bidiHandler=new s(this),o.resetOptions(this),this.setMode(t),o._signal("session",this)};d.$uid=0,function(){function m(e){return e<4352?!1:e>=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510}r.implement(this,u),this.setDocument=function(e){this.doc&&this.doc.removeListener("change",this.$onChange),this.doc=e,e.on("change",this.$onChange),this.bgTokenizer&&this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},this.getDocument=function(){return this.doc},this.$resetRowCache=function(e){if(!e){this.$docRowCache=[],this.$screenRowCache=[];return}var t=this.$docRowCache.length,n=this.$getRowCacheIndex(this.$docRowCache,e)+1;t>n&&(this.$docRowCache.splice(n,t),this.$screenRowCache.splice(n,t))},this.$getRowCacheIndex=function(e,t){var n=0,r=e.length-1;while(n<=r){var i=n+r>>1,s=e[i];if(t>s)n=i+1;else{if(!(t<s))return i;r=i-1}}return n-1},this.resetCaches=function(){this.$modified=!0,this.$wrapData=[],this.$rowLengthCache=[],this.$resetRowCache(0),this.bgTokenizer&&this.bgTokenizer.start(0)},this.onChangeFold=function(e){var t=e.data;this.$resetRowCache(t.start.row)},this.onChange=function(e){this.$modified=!0,this.$bidiHandler.onChange(e),this.$resetRowCache(e.start.row);var t=this.$updateInternalDataOnChange(e);!this.$fromUndo&&this.$undoManager&&(t&&t.length&&(this.$undoManager.add({action:"removeFolds",folds:t},this.mergeUndoDeltas),this.mergeUndoDeltas=!0),this.$undoManager.add(e,this.mergeUndoDeltas),this.mergeUndoDeltas=!0,this.$informUndoManager.schedule()),this.bgTokenizer&&this.bgTokenizer.$updateOnChange(e),this._signal("change",e)},this.setValue=function(e){this.doc.setValue(e),this.selection.moveTo(0,0),this.$resetRowCache(0),this.setUndoManager(this.$undoManager),this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(e){return this.bgTokenizer.getState(e)},this.getTokens=function(e){return this.bgTokenizer.getTokens(e)},this.getTokenAt=function(e,t){var n=this.bgTokenizer.getTokens(e),r,i=0;if(t==null){var s=n.length-1;i=this.getLine(e).length}else for(var s=0;s<n.length;s++){i+=n[s].value.length;if(i>=t)break}return r=n[s],r?(r.index=s,r.start=i-r.value.length,r):null},this.setUndoManager=function(e){this.$undoManager=e,this.$informUndoManager&&this.$informUndoManager.cancel();if(e){var t=this;e.addSession(this),this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.mergeUndoDeltas=!1},this.$informUndoManager=i.delayedCall(this.$syncInformUndoManager)}else this.$syncInformUndoManager=function(){}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){},add:function(){},addSelection:function(){},startNewGroup:function(){},addSession:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?i.stringRepeat(" ",this.getTabSize()):" "},this.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(e){this.setOption("tabSize",e)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize===0},this.setNavigateWithinSoftTabs=function(e){this.setOption("navigateWithinSoftTabs",e)},this.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},this.$overwrite=!1,this.setOverwrite=function(e){this.setOption("overwrite",e)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},this.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t<e.length;t++)this.$breakpoints[e[t]]="ace_breakpoint";this._signal("changeBreakpoint",{})},this.clearBreakpoints=function(){this.$breakpoints=[],this._signal("changeBreakpoint",{})},this.setBreakpoint=function(e,t){t===undefined&&(t="ace_breakpoint"),t?this.$breakpoints[e]=t:delete this.$breakpoints[e],this._signal("changeBreakpoint",{})},this.clearBreakpoint=function(e){delete this.$breakpoints[e],this._signal("changeBreakpoint",{})},this.addMarker=function(e,t,n,r){var i=this.$markerId++,s={range:e,type:n||"line",renderer:typeof n=="function"?n:null,clazz:t,inFront:!!r,id:i};return r?(this.$frontMarkers[i]=s,this._signal("changeFrontMarker")):(this.$backMarkers[i]=s,this._signal("changeBackMarker")),i},this.addDynamicMarker=function(e,t){if(!e.update)return;var n=this.$markerId++;return e.id=n,e.inFront=!!t,t?(this.$frontMarkers[n]=e,this._signal("changeFrontMarker")):(this.$backMarkers[n]=e,this._signal("changeBackMarker")),e},this.removeMarker=function(e){var t=this.$frontMarkers[e]||this.$backMarkers[e];if(!t)return;var n=t.inFront?this.$frontMarkers:this.$backMarkers;delete n[e],this._signal(t.inFront?"changeFrontMarker":"changeBackMarker")},this.getMarkers=function(e){return e?this.$frontMarkers:this.$backMarkers},this.highlight=function(e){if(!this.$searchHighlight){var t=new p(null,"ace_selected-word","text");this.$searchHighlight=this.addDynamicMarker(t)}this.$searchHighlight.setRegexp(e)},this.highlightLines=function(e,t,n,r){typeof t!="number"&&(n=t,t=e),n||(n="ace_step");var i=new l(e,0,t,Infinity);return i.id=this.addMarker(i,n,"fullLine",r),i},this.setAnnotations=function(e){this.$annotations=e,this._signal("changeAnnotation",{})},this.getAnnotations=function(){return this.$annotations||[]},this.clearAnnotations=function(){this.setAnnotations([])},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r?\n)/m);t?this.$autoNewLine=t[1]:this.$autoNewLine="\n"},this.getWordRange=function(e,t){var n=this.getLine(e),r=!1;t>0&&(r=!!n.charAt(t-1).match(this.tokenRe)),r||(r=!!n.charAt(t).match(this.tokenRe));if(r)var i=this.tokenRe;else if(/^\s+$/.test(n.slice(t-1,t+1)))var i=/\s/;else var i=this.nonTokenRe;var s=t;if(s>0){do s--;while(s>=0&&n.charAt(s).match(i));s++}var o=t;while(o<n.length&&n.charAt(o).match(i))o++;return new l(e,s,e,o)},this.getAWordRange=function(e,t){var n=this.getWordRange(e,t),r=this.getLine(n.end.row);while(r.charAt(n.end.column).match(/[ \t]/))n.end.column+=1;return n},this.setNewLineMode=function(e){this.doc.setNewLineMode(e)},this.getNewLineMode=function(){return this.doc.getNewLineMode()},this.setUseWorker=function(e){this.setOption("useWorker",e)},this.getUseWorker=function(){return this.$useWorker},this.onReloadTokenizer=function(e){var t=e.data;this.bgTokenizer.start(t.first),this._signal("tokenizerUpdate",e)},this.$modes=o.$modes,this.$mode=null,this.$modeId=null,this.setMode=function(e,t){if(e&&typeof e=="object"){if(e.getTokenizer)return this.$onChangeMode(e);var n=e,r=n.path}else r=e||"ace/mode/text";this.$modes["ace/mode/text"]||(this.$modes["ace/mode/text"]=new f);if(this.$modes[r]&&!n){this.$onChangeMode(this.$modes[r]),t&&t();return}this.$modeId=r,o.loadModule(["mode",r],function(e){if(this.$modeId!==r)return t&&t();this.$modes[r]&&!n?this.$onChangeMode(this.$modes[r]):e&&e.Mode&&(e=new e.Mode(n),n||(this.$modes[r]=e,e.$id=r),this.$onChangeMode(e)),t&&t()}.bind(this)),this.$mode||this.$onChangeMode(this.$modes["ace/mode/text"],!0)},this.$onChangeMode=function(e,t){t||(this.$modeId=e.$id);if(this.$mode===e)return;this.$mode=e,this.$stopWorker(),this.$useWorker&&this.$startWorker();var n=e.getTokenizer();if(n.addEventListener!==undefined){var r=this.onReloadTokenizer.bind(this);n.addEventListener("update",r)}if(!this.bgTokenizer){this.bgTokenizer=new h(n);var i=this;this.bgTokenizer.addEventListener("update",function(e){i._signal("tokenizerUpdate",e)})}else this.bgTokenizer.setTokenizer(n);this.bgTokenizer.setDocument(this.getDocument()),this.tokenRe=e.tokenRe,this.nonTokenRe=e.nonTokenRe,t||(e.attachToSession&&e.attachToSession(this),this.$options.wrapMethod.set.call(this,this.$wrapMethod),this.$setFolding(e.foldingRules),this.bgTokenizer.start(0),this._emit("changeMode"))},this.$stopWorker=function(){this.$worker&&(this.$worker.terminate(),this.$worker=null)},this.$startWorker=function(){try{this.$worker=this.$mode.createWorker(this)}catch(e){o.warn("Could not load worker",e),this.$worker=null}},this.getMode=function(){return this.$mode},this.$scrollTop=0,this.setScrollTop=function(e){if(this.$scrollTop===e||isNaN(e))return;this.$scrollTop=e,this._signal("changeScrollTop",e)},this.getScrollTop=function(){return this.$scrollTop},this.$scrollLeft=0,this.setScrollLeft=function(e){if(this.$scrollLeft===e||isNaN(e))return;this.$scrollLeft=e,this._signal("changeScrollLeft",e)},this.getScrollLeft=function(){return this.$scrollLeft},this.getScreenWidth=function(){return this.$computeWidth(),this.lineWidgets?Math.max(this.getLineWidgetMaxWidth(),this.screenWidth):this.screenWidth},this.getLineWidgetMaxWidth=function(){if(this.lineWidgetsWidth!=null)return this.lineWidgetsWidth;var e=0;return this.lineWidgets.forEach(function(t){t&&t.screenWidth>e&&(e=t.screenWidth)}),this.lineWidgetWidth=e},this.$computeWidth=function(e){if(this.$modified||e){this.$modified=!1;if(this.$useWrapMode)return this.screenWidth=this.$wrapLimit;var t=this.doc.getAllLines(),n=this.$rowLengthCache,r=0,i=0,s=this.$foldData[i],o=s?s.start.row:Infinity,u=t.length;for(var a=0;a<u;a++){if(a>o){a=s.end.row+1;if(a>=u)break;s=this.$foldData[i++],o=s?s.start.row:Infinity}n[a]==null&&(n[a]=this.$getStringScreenWidth(t[a])[0]),n[a]>r&&(r=n[a])}this.screenWidth=r}},this.getLine=function(e){return this.doc.getLine(e)},this.getLines=function(e,t){return this.doc.getLines(e,t)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},this.insert=function(e,t){return this.doc.insert(e,t)},this.remove=function(e){return this.doc.remove(e)},this.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},this.undoChanges=function(e,t){if(!e.length)return;this.$fromUndo=!0;for(var n=e.length-1;n!=-1;n--){var r=e[n];r.action=="insert"||r.action=="remove"?this.doc.revertDelta(r):r.folds&&this.addFolds(r.folds)}!t&&this.$undoSelect&&(e.selectionBefore?this.selection.fromJSON(e.selectionBefore):this.selection.setRange(this.$getUndoSelection(e,!0))),this.$fromUndo=!1},this.redoChanges=function(e,t){if(!e.length)return;this.$fromUndo=!0;for(var n=0;n<e.length;n++){var r=e[n];(r.action=="insert"||r.action=="remove")&&this.doc.applyDelta(r)}!t&&this.$undoSelect&&(e.selectionAfter?this.selection.fromJSON(e.selectionAfter):this.selection.setRange(this.$getUndoSelection(e,!1))),this.$fromUndo=!1},this.setUndoSelect=function(e){this.$undoSelect=e},this.$getUndoSelection=function(e,t){function n(e){return t?e.action!=="insert":e.action==="insert"}var r,i,s;for(var o=0;o<e.length;o++){var u=e[o];if(!u.start)continue;if(!r){n(u)?(r=l.fromPoints(u.start,u.end),s=!0):(r=l.fromPoints(u.start,u.start),s=!1);continue}n(u)?(i=u.start,r.compare(i.row,i.column)==-1&&r.setStart(i),i=u.end,r.compare(i.row,i.column)==1&&r.setEnd(i),s=!0):(i=u.start,r.compare(i.row,i.column)==-1&&(r=l.fromPoints(u.start,u.start)),s=!1)}return r},this.replace=function(e,t){return this.doc.replace(e,t)},this.moveText=function(e,t,n){var r=this.getTextRange(e),i=this.getFoldsInRange(e),s=l.fromPoints(t,t);if(!n){this.remove(e);var o=e.start.row-e.end.row,u=o?-e.end.column:e.start.column-e.end.column;u&&(s.start.row==e.end.row&&s.start.column>e.end.column&&(s.start.column+=u),s.end.row==e.end.row&&s.end.column>e.end.column&&(s.end.column+=u)),o&&s.start.row>=e.end.row&&(s.start.row+=o,s.end.row+=o)}s.end=this.insert(s.start,r);if(i.length){var a=e.start,f=s.start,o=f.row-a.row,u=f.column-a.column;this.addFolds(i.map(function(e){return e=e.clone(),e.start.row==a.row&&(e.start.column+=u),e.end.row==a.row&&(e.end.column+=u),e.start.row+=o,e.end.row+=o,e}))}return s},this.indentRows=function(e,t,n){n=n.replace(/\t/g,this.getTabString());for(var r=e;r<=t;r++)this.doc.insertInLine({row:r,column:0},n)},this.outdentRows=function(e){var t=e.collapseRows(),n=new l(0,0,0,0),r=this.getTabSize();for(var i=t.start.row;i<=t.end.row;++i){var s=this.getLine(i);n.start.row=i,n.end.row=i;for(var o=0;o<r;++o)if(s.charAt(o)!=" ")break;o<r&&s.charAt(o)==" "?(n.start.column=o,n.end.column=o+1):(n.start.column=0,n.end.column=o),this.remove(n)}},this.$moveLines=function(e,t,n){e=this.getRowFoldStart(e),t=this.getRowFoldEnd(t);if(n<0){var r=this.getRowFoldStart(e+n);if(r<0)return 0;var i=r-e}else if(n>0){var r=this.getRowFoldEnd(t+n);if(r>this.doc.getLength()-1)return 0;var i=r-t}else{e=this.$clipRowToDocument(e),t=this.$clipRowToDocument(t);var i=t-e+1}var s=new l(e,0,t,Number.MAX_VALUE),o=this.getFoldsInRange(s).map(function(e){return e=e.clone(),e.start.row+=i,e.end.row+=i,e}),u=n==0?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+i,u),o.length&&this.addFolds(o),i},this.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},this.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},this.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},this.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},this.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},this.$clipPositionToDocument=function(e,t){t=Math.max(0,t);if(e<0)e=0,t=0;else{var n=this.doc.getLength();e>=n?(e=n-1,t=this.doc.getLine(n-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},this.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(e){if(e!=this.$useWrapMode){this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0);if(e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(e,t){if(this.$wrapLimitRange.min!==e||this.$wrapLimitRange.max!==t)this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode")},this.adjustWrapLimit=function(e,t){var n=this.$wrapLimitRange;n.max<0&&(n={min:t,max:t});var r=this.$constrainWrapLimit(e,n.min,n.max);return r!=this.$wrapLimit&&r>1?(this.$wrapLimit=r,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0):!1},this.$constrainWrapLimit=function(e,t,n){return t&&(e=Math.max(t,e)),n&&(e=Math.min(n,e)),e},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,n=e.action,r=e.start,i=e.end,s=r.row,o=i.row,u=o-s,a=null;this.$updating=!0;if(u!=0)if(n==="remove"){this[t?"$wrapData":"$rowLengthCache"].splice(s,u);var f=this.$foldData;a=this.getFoldsInRange(e),this.removeFolds(a);var l=this.getFoldLine(i.row),c=0;if(l){l.addRemoveChars(i.row,i.column,r.column-i.column),l.shiftRow(-u);var h=this.getFoldLine(s);h&&h!==l&&(h.merge(l),l=h),c=f.indexOf(l)+1}for(c;c<f.length;c++){var l=f[c];l.start.row>=i.row&&l.shiftRow(-u)}o=s}else{var p=Array(u);p.unshift(s,0);var d=t?this.$wrapData:this.$rowLengthCache;d.splice.apply(d,p);var f=this.$foldData,l=this.getFoldLine(s),c=0;if(l){var v=l.range.compareInside(r.row,r.column);v==0?(l=l.split(r.row,r.column),l&&(l.shiftRow(u),l.addRemoveChars(o,0,i.column-r.column))):v==-1&&(l.addRemoveChars(s,0,i.column-r.column),l.shiftRow(u)),c=f.indexOf(l)+1}for(c;c<f.length;c++){var l=f[c];l.start.row>=s&&l.shiftRow(u)}}else{u=Math.abs(e.start.column-e.end.column),n==="remove"&&(a=this.getFoldsInRange(e),this.removeFolds(a),u=-u);var l=this.getFoldLine(s);l&&l.addRemoveChars(s,r.column,u)}return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(s,o):this.$updateRowLengthCache(s,o),a},this.$updateRowLengthCache=function(e,t,n){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},this.$updateWrapData=function(e,t){var r=this.doc.getAllLines(),i=this.getTabSize(),o=this.$wrapData,u=this.$wrapLimit,a,f,l=e;t=Math.min(t,r.length-1);while(l<=t)f=this.getFoldLine(l,f),f?(a=[],f.walk(function(e,t,i,o){var u;if(e!=null){u=this.$getDisplayTokens(e,a.length),u[0]=n;for(var f=1;f<u.length;f++)u[f]=s}else u=this.$getDisplayTokens(r[t].substring(o,i),a.length);a=a.concat(u)}.bind(this),f.end.row,r[f.end.row].length+1),o[f.start.row]=this.$computeWrapSplits(a,u,i),l=f.end.row+1):(a=this.$getDisplayTokens(r[l]),o[l]=this.$computeWrapSplits(a,u,i),l++)};var e=1,t=2,n=3,s=4,a=9,c=10,d=11,v=12;this.$computeWrapSplits=function(e,r,i){function g(){var t=0;if(m===0)return t;if(p)for(var n=0;n<e.length;n++){var r=e[n];if(r==c)t+=1;else{if(r!=d){if(r==v)continue;break}t+=i}}return h&&p!==!1&&(t+=i),Math.min(t,m)}function y(t){var n=t-f;for(var r=f;r<t;r++){var i=e[r];if(i===12||i===2)n-=1}o.length||(b=g(),o.indent=b),l+=n,o.push(l),f=t}if(e.length==0)return[];var o=[],u=e.length,f=0,l=0,h=this.$wrapAsCode,p=this.$indentedSoftWrap,m=r<=Math.max(2*i,8)||p===!1?0:Math.floor(r/2),b=0;while(u-f>r-b){var w=f+r-b;if(e[w-1]>=c&&e[w]>=c){y(w);continue}if(e[w]==n||e[w]==s){for(w;w!=f-1;w--)if(e[w]==n)break;if(w>f){y(w);continue}w=f+r;for(w;w<e.length;w++)if(e[w]!=s)break;if(w==e.length)break;y(w);continue}var E=Math.max(w-(r-(r>>2)),f-1);while(w>E&&e[w]<n)w--;if(h){while(w>E&&e[w]<n)w--;while(w>E&&e[w]==a)w--}else while(w>E&&e[w]<c)w--;if(w>E){y(++w);continue}w=f+r,e[w]==t&&w--,y(w-b)}return o},this.$getDisplayTokens=function(n,r){var i=[],s;r=r||0;for(var o=0;o<n.length;o++){var u=n.charCodeAt(o);if(u==9){s=this.getScreenTabSize(i.length+r),i.push(d);for(var f=1;f<s;f++)i.push(v)}else u==32?i.push(c):u>39&&u<48||u>57&&u<64?i.push(a):u>=4352&&m(u)?i.push(e,t):i.push(e)}return i},this.$getStringScreenWidth=function(e,t,n){if(t==0)return[0,0];t==null&&(t=Infinity),n=n||0;var r,i;for(i=0;i<e.length;i++){r=e.charCodeAt(i),r==9?n+=this.getScreenTabSize(n):r>=4352&&m(r)?n+=2:n+=1;if(n>t)break}return[n,i]},this.lineWidgets=null,this.getRowLength=function(e){if(this.lineWidgets)var t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0;else t=0;return!this.$useWrapMode||!this.$wrapData[e]?1+t:this.$wrapData[e].length+1+t},this.getRowLineCount=function(e){return!this.$useWrapMode||!this.$wrapData[e]?1:this.$wrapData[e].length+1},this.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),n=this.$wrapData[t.row];return n.length&&n[0]<t.column?n.indent:0}return 0},this.getScreenLastRowColumn=function(e){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE);return this.documentToScreenColumn(t.row,t.column)},this.getDocumentLastRowColumn=function(e,t){var n=this.documentToScreenRow(e,t);return this.getScreenLastRowColumn(n)},this.getDocumentLastRowColumnPosition=function(e,t){var n=this.documentToScreenRow(e,t);return this.screenToDocumentPosition(n,Number.MAX_VALUE/10)},this.getRowSplitData=function(e){return this.$useWrapMode?this.$wrapData[e]:undefined},this.getScreenTabSize=function(e){return this.$tabSize-(e%this.$tabSize|0)},this.screenToDocumentRow=function(e,t){return this.screenToDocumentPosition(e,t).row},this.screenToDocumentColumn=function(e,t){return this.screenToDocumentPosition(e,t).column},this.screenToDocumentPosition=function(e,t,n){if(e<0)return{row:0,column:0};var r,i=0,s=0,o,u=0,a=0,f=this.$screenRowCache,l=this.$getRowCacheIndex(f,e),c=f.length;if(c&&l>=0)var u=f[l],i=this.$docRowCache[l],h=e>f[c-1];else var h=!c;var p=this.getLength()-1,d=this.getNextFoldLine(i),v=d?d.start.row:Infinity;while(u<=e){a=this.getRowLength(i);if(u+a>e||i>=p)break;u+=a,i++,i>v&&(i=d.end.row+1,d=this.getNextFoldLine(i,d),v=d?d.start.row:Infinity),h&&(this.$docRowCache.push(i),this.$screenRowCache.push(u))}if(d&&d.start.row<=i)r=this.getFoldDisplayLine(d),i=d.start.row;else{if(u+a<=e||i>p)return{row:p,column:this.getLine(p).length};r=this.getLine(i),d=null}var m=0,g=Math.floor(e-u);if(this.$useWrapMode){var y=this.$wrapData[i];y&&(o=y[g],g>0&&y.length&&(m=y.indent,s=y[g-1]||y[y.length-1],r=r.substring(s)))}return n!==undefined&&this.$bidiHandler.isBidiRow(u+g,i,g)&&(t=this.$bidiHandler.offsetToCol(n)),s+=this.$getStringScreenWidth(r,t-m)[1],this.$useWrapMode&&s>=o&&(s=o-1),d?d.idxToPosition(s):{row:i,column:s}},this.documentToScreenPosition=function(e,t){if(typeof t=="undefined")var n=this.$clipPositionToDocument(e.row,e.column);else n=this.$clipPositionToDocument(e,t);e=n.row,t=n.column;var r=0,i=null,s=null;s=this.getFoldAt(e,t,1),s&&(e=s.start.row,t=s.start.column);var o,u=0,a=this.$docRowCache,f=this.$getRowCacheIndex(a,e),l=a.length;if(l&&f>=0)var u=a[f],r=this.$screenRowCache[f],c=e>a[l-1];else var c=!l;var h=this.getNextFoldLine(u),p=h?h.start.row:Infinity;while(u<e){if(u>=p){o=h.end.row+1;if(o>e)break;h=this.getNextFoldLine(o,h),p=h?h.start.row:Infinity}else o=u+1;r+=this.getRowLength(u),u=o,c&&(this.$docRowCache.push(u),this.$screenRowCache.push(r))}var d="";h&&u>=p?(d=this.getFoldDisplayLine(h,e,t),i=h.start.row):(d=this.getLine(e).substring(0,t),i=e);var v=0;if(this.$useWrapMode){var m=this.$wrapData[i];if(m){var g=0;while(d.length>=m[g])r++,g++;d=d.substring(m[g-1]||0,d.length),v=g>0?m.indent:0}}return{row:r,column:v+this.$getStringScreenWidth(d)[0]}},this.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},this.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},this.getScreenLength=function(){var e=0,t=null;if(!this.$useWrapMode){e=this.getLength();var n=this.$foldData;for(var r=0;r<n.length;r++)t=n[r],e-=t.end.row-t.start.row}else{var i=this.$wrapData.length,s=0,r=0,t=this.$foldData[r++],o=t?t.start.row:Infinity;while(s<i){var u=this.$wrapData[s];e+=u?u.length+1:1,s++,s>o&&(s=t.end.row+1,t=this.$foldData[r++],o=t?t.start.row:Infinity)}}return this.lineWidgets&&(e+=this.$getWidgetScreenLength()),e},this.$setFontMetrics=function(e){if(!this.$enableVarChar)return;this.$getStringScreenWidth=function(t,n,r){if(n===0)return[0,0];n||(n=Infinity),r=r||0;var i,s;for(s=0;s<t.length;s++){i=t.charAt(s),i===" "?r+=this.getScreenTabSize(r):r+=e.getCharacterWidth(i);if(r>n)break}return[r,s]}},this.destroy=function(){this.bgTokenizer&&(this.bgTokenizer.setDocument(null),this.bgTokenizer=null),this.$stopWorker()},this.isFullWidth=m}.call(d.prototype),e("./edit_session/folding").Folding.call(d.prototype),e("./edit_session/bracket_match").BracketMatch.call(d.prototype),o.defineOptions(d.prototype,"session",{wrap:{set:function(e){!e||e=="off"?e=!1:e=="free"?e=!0:e=="printMargin"?e=-1:typeof e=="string"&&(e=parseInt(e,10)||!1);if(this.$wrap==e)return;this.$wrap=e;if(!e)this.setUseWrapMode(!1);else{var t=typeof e=="number"?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}},get:function(){return this.getUseWrapMode()?this.$wrap==-1?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){e=e=="auto"?this.$mode.type!="text":e!="text",e!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0)))},initialValue:"auto"},indentedSoftWrap:{set:function(){this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0))},initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){e=parseInt(e),e>0&&this.$tabSize!==e&&(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},foldStyle:{set:function(e){this.setFoldStyle(e)},handlesSet:!0},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId},handlesSet:!0}}),t.EditSession=d}),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,n){"use strict";function u(e,t){function n(e){return/\w/.test(e)||t.regExp?"\\b":""}return n(e[0])+e+n(e[e.length-1])}var r=e("./lib/lang"),i=e("./lib/oop"),s=e("./range").Range,o=function(){this.$options={}};(function(){this.set=function(e){return i.mixin(this.$options,e),this},this.getOptions=function(){return r.copyObject(this.$options)},this.setOptions=function(e){this.$options=e},this.find=function(e){var t=this.$options,n=this.$matchIterator(e,t);if(!n)return!1;var r=null;return n.forEach(function(e,n,i,o){return r=new s(e,n,i,o),n==o&&t.start&&t.start.start&&t.skipCurrent!=0&&r.isEqual(t.start)?(r=null,!1):!0}),r},this.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var n=t.range,i=n?e.getLines(n.start.row,n.end.row):e.doc.getAllLines(),o=[],u=t.re;if(t.$isMultiLine){var a=u.length,f=i.length-a,l;e:for(var c=u.offset||0;c<=f;c++){for(var h=0;h<a;h++)if(i[c+h].search(u[h])==-1)continue e;var p=i[c],d=i[c+a-1],v=p.length-p.match(u[0])[0].length,m=d.match(u[a-1])[0].length;if(l&&l.end.row===c&&l.end.column>v)continue;o.push(l=new s(c,v,c+a-1,m)),a>2&&(c=c+a-2)}}else for(var g=0;g<i.length;g++){var y=r.getMatchOffsets(i[g],u);for(var h=0;h<y.length;h++){var b=y[h];o.push(new s(g,b.offset,g,b.offset+b.length))}}if(n){var w=n.start.column,E=n.start.column,g=0,h=o.length-1;while(g<h&&o[g].start.column<w&&o[g].start.row==n.start.row)g++;while(g<h&&o[h].end.column>E&&o[h].end.row==n.end.row)h--;o=o.slice(g,h+1);for(g=0,h=o.length;g<h;g++)o[g].start.row+=n.start.row,o[g].end.row+=n.start.row}return o},this.replace=function(e,t){var n=this.$options,r=this.$assembleRegExp(n);if(n.$isMultiLine)return t;if(!r)return;var i=r.exec(e);if(!i||i[0].length!=e.length)return null;t=e.replace(r,t);if(n.preserveCase){t=t.split("");for(var s=Math.min(e.length,e.length);s--;){var o=e[s];o&&o.toLowerCase()!=o?t[s]=t[s].toUpperCase():t[s]=t[s].toLowerCase()}t=t.join("")}return t},this.$assembleRegExp=function(e,t){if(e.needle instanceof RegExp)return e.re=e.needle;var n=e.needle;if(!e.needle)return e.re=!1;e.regExp||(n=r.escapeRegExp(n)),e.wholeWord&&(n=u(n,e));var i=e.caseSensitive?"gm":"gmi";e.$isMultiLine=!t&&/[\n\r]/.test(n);if(e.$isMultiLine)return e.re=this.$assembleMultilineRegExp(n,i);try{var s=new RegExp(n,i)}catch(o){s=!1}return e.re=s},this.$assembleMultilineRegExp=function(e,t){var n=e.replace(/\r\n|\r|\n/g,"$\n^").split("\n"),r=[];for(var i=0;i<n.length;i++)try{r.push(new RegExp(n[i],t))}catch(s){return!1}return r},this.$matchIterator=function(e,t){var n=this.$assembleRegExp(t);if(!n)return!1;var r=t.backwards==1,i=t.skipCurrent!=0,s=t.range,o=t.start;o||(o=s?s[r?"end":"start"]:e.selection.getRange()),o.start&&(o=o[i!=r?"end":"start"]);var u=s?s.start.row:0,a=s?s.end.row:e.getLength()-1;if(r)var f=function(e){var n=o.row;if(c(n,o.column,e))return;for(n--;n>=u;n--)if(c(n,Number.MAX_VALUE,e))return;if(t.wrap==0)return;for(n=a,u=o.row;n>=u;n--)if(c(n,Number.MAX_VALUE,e))return};else var f=function(e){var n=o.row;if(c(n,o.column,e))return;for(n+=1;n<=a;n++)if(c(n,0,e))return;if(t.wrap==0)return;for(n=u,a=o.row;n<=a;n++)if(c(n,0,e))return};if(t.$isMultiLine)var l=n.length,c=function(t,i,s){var o=r?t-l+1:t;if(o<0)return;var u=e.getLine(o),a=u.search(n[0]);if(!r&&a<i||a===-1)return;for(var f=1;f<l;f++){u=e.getLine(o+f);if(u.search(n[f])==-1)return}var c=u.match(n[l-1])[0].length;if(r&&c>i)return;if(s(o,a,o+l-1,c))return!0};else if(r)var c=function(t,r,i){var s=e.getLine(t),o=[],u,a=0;n.lastIndex=0;while(u=n.exec(s)){var f=u[0].length;a=u.index;if(!f){if(a>=s.length)break;n.lastIndex=a+=1}if(u.index+f>r)break;o.push(u.index,f)}for(var l=o.length-1;l>=0;l-=2){var c=o[l-1],f=o[l];if(i(t,c,t,c+f))return!0}};else var c=function(t,r,i){var s=e.getLine(t),o,u;n.lastIndex=r;while(u=n.exec(s)){var a=u[0].length;o=u.index;if(i(t,o,t,o+a))return!0;if(!a){n.lastIndex=o+=1;if(o>=s.length)return!1}}};return{forEach:f}}}).call(o.prototype),t.Search=o}),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,n){"use strict";function o(e,t){this.platform=t||(i.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=!0}function u(e,t){o.call(this,e,t),this.$singleCommand=!1}var r=e("../lib/keys"),i=e("../lib/useragent"),s=r.KEY_MODS;u.prototype=o.prototype,function(){function e(e){return typeof e=="object"&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}this.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},this.removeCommand=function(e,t){var n=e&&(typeof e=="string"?e:e.name);e=this.commands[n],t||delete this.commands[n];var r=this.commandKeyBinding;for(var i in r){var s=r[i];if(s==e)delete r[i];else if(Array.isArray(s)){var o=s.indexOf(e);o!=-1&&(s.splice(o,1),s.length==1&&(r[i]=s[0]))}}},this.bindKey=function(e,t,n){typeof e=="object"&&e&&(n==undefined&&(n=e.position),e=e[this.platform]);if(!e)return;if(typeof t=="function")return this.addCommand({exec:t,bindKey:e,name:t.name||e});e.split("|").forEach(function(e){var r="";if(e.indexOf(" ")!=-1){var i=e.split(/\s+/);e=i.pop(),i.forEach(function(e){var t=this.parseKeys(e),n=s[t.hashId]+t.key;r+=(r?" ":"")+n,this._addCommandToBinding(r,"chainKeys")},this),r+=" "}var o=this.parseKeys(e),u=s[o.hashId]+o.key;this._addCommandToBinding(r+u,t,n)},this)},this._addCommandToBinding=function(t,n,r){var i=this.commandKeyBinding,s;if(!n)delete i[t];else if(!i[t]||this.$singleCommand)i[t]=n;else{Array.isArray(i[t])?(s=i[t].indexOf(n))!=-1&&i[t].splice(s,1):i[t]=[i[t]],typeof r!="number"&&(r=e(n));var o=i[t];for(s=0;s<o.length;s++){var u=o[s],a=e(u);if(a>r)break}o.splice(s,0,n)}},this.addCommands=function(e){e&&Object.keys(e).forEach(function(t){var n=e[t];if(!n)return;if(typeof n=="string")return this.bindKey(n,t);typeof n=="function"&&(n={exec:n});if(typeof n!="object")return;n.name||(n.name=t),this.addCommand(n)},this)},this.removeCommands=function(e){Object.keys(e).forEach(function(t){this.removeCommand(e[t])},this)},this.bindKeys=function(e){Object.keys(e).forEach(function(t){this.bindKey(t,e[t])},this)},this._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},this.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(e){return e}),n=t.pop(),i=r[n];if(r.FUNCTION_KEYS[i])n=r.FUNCTION_KEYS[i].toLowerCase();else{if(!t.length)return{key:n,hashId:-1};if(t.length==1&&t[0]=="shift")return{key:n.toUpperCase(),hashId:-1}}var s=0;for(var o=t.length;o--;){var u=r.KEY_MODS[t[o]];if(u==null)return typeof console!="undefined"&&console.error("invalid modifier "+t[o]+" in "+e),!1;s|=u}return{key:n,hashId:s}},this.findKeyCommand=function(t,n){var r=s[t]+n;return this.commandKeyBinding[r]},this.handleKeyboard=function(e,t,n,r){if(r<0)return;var i=s[t]+n,o=this.commandKeyBinding[i];e.$keyChain&&(e.$keyChain+=" "+i,o=this.commandKeyBinding[e.$keyChain]||o);if(o)if(o=="chainKeys"||o[o.length-1]=="chainKeys")return e.$keyChain=e.$keyChain||i,{command:"null"};if(e.$keyChain)if(!!t&&t!=4||n.length!=1){if(t==-1||r>0)e.$keyChain=""}else e.$keyChain=e.$keyChain.slice(0,-i.length-1);return{command:o}},this.getStatusText=function(e,t){return t.$keyChain||""}}.call(o.prototype),t.HashHandler=o,t.MultiHashHandler=u}),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../keyboard/hash_handler").MultiHashHandler,s=e("../lib/event_emitter").EventEmitter,o=function(e,t){i.call(this,t,e),this.byName=this.commands,this.setDefaultHandler("exec",function(e){return e.command.exec(e.editor,e.args||{})})};r.inherits(o,i),function(){r.implement(this,s),this.exec=function(e,t,n){if(Array.isArray(e)){for(var r=e.length;r--;)if(this.exec(e[r],t,n))return!0;return!1}typeof e=="string"&&(e=this.commands[e]);if(!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;if(this.$checkCommandState!=0&&e.isAvailable&&!e.isAvailable(t))return!1;var i={editor:t,command:e,args:n};return i.returnValue=this._emit("exec",i),this._signal("afterExec",i),i.returnValue===!1?!1:!0},this.toggleRecording=function(e){if(this.$inReplay)return;return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.removeEventListener("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},this.replay=function(e){if(this.$inReplay||!this.macro)return;if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach(function(t){typeof t=="string"?this.exec(t,e):this.exec(t[0],e,t[1])},this)}finally{this.$inReplay=!1}},this.trimMacro=function(e){return e.map(function(e){return typeof e[0]!="string"&&(e[0]=e[0].name),e[1]||(e=e[0]),e})}}.call(o.prototype),t.CommandManager=o}),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(e,t,n){"use strict";function o(e,t){return{win:e,mac:t}}var r=e("../lib/lang"),i=e("../config"),s=e("../range").Range;t.commands=[{name:"showSettingsMenu",bindKey:o("Ctrl-,","Command-,"),exec:function(e){i.loadModule("ace/ext/settings_menu",function(t){t.init(e),e.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",bindKey:o("Alt-E","F4"),exec:function(e){i.loadModule("./ext/error_marker",function(t){t.showErrorMarker(e,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",bindKey:o("Alt-Shift-E","Shift-F4"),exec:function(e){i.loadModule("./ext/error_marker",function(t){t.showErrorMarker(e,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",description:"Select all",bindKey:o("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",description:"Center selection",bindKey:o(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",description:"Go to line...",bindKey:o("Ctrl-L","Command-L"),exec:function(e,t){typeof t=="number"&&!isNaN(t)&&e.gotoLine(t),e.prompt({$type:"gotoLine"})},readOnly:!0},{name:"fold",bindKey:o("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:o("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",bindKey:o("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",bindKey:o("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",description:"Fold all",bindKey:o(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",description:"Fold other",bindKey:o("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",description:"Unfold all",bindKey:o("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",description:"Find next",bindKey:o("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",description:"Find previous",bindKey:o("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",description:"Select or find next",bindKey:o("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",description:"Select or find previous",bindKey:o("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",description:"Find",bindKey:o("Ctrl-F","Command-F"),exec:function(e){i.loadModule("ace/ext/searchbox",function(t){t.Search(e)})},readOnly:!0},{name:"overwrite",description:"Overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",description:"Select to start",bindKey:o("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",description:"Go to start",bindKey:o("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",description:"Select up",bindKey:o("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",description:"Go line up",bindKey:o("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",description:"Select to end",bindKey:o("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",description:"Go to end",bindKey:o("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",description:"Select down",bindKey:o("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",description:"Go line down",bindKey:o("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",description:"Select word left",bindKey:o("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",description:"Go to word left",bindKey:o("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",description:"Select to line start",bindKey:o("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",description:"Go to line start",bindKey:o("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",description:"Select left",bindKey:o("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",description:"Go to left",bindKey:o("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",description:"Select word right",bindKey:o("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",description:"Go to word right",bindKey:o("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",description:"Select to line end",bindKey:o("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",description:"Go to line end",bindKey:o("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",description:"Select right",bindKey:o("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",description:"Go to right",bindKey:o("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",description:"Select page down",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",description:"Page down",bindKey:o(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",description:"Go to page down",bindKey:o("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",description:"Select page up",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",description:"Page up",bindKey:o(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",description:"Go to page up",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",description:"Scroll up",bindKey:o("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",description:"Scroll down",bindKey:o("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",description:"Select line start",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",description:"Select line end",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",description:"Toggle recording",bindKey:o("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",description:"Replay macro",bindKey:o("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",description:"Jump to matching",bindKey:o("Ctrl-P","Ctrl-P"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",description:"Select to matching",bindKey:o("Ctrl-Shift-P","Ctrl-Shift-P"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",description:"Expand to matching",bindKey:o("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",description:"Pass keys to browser",bindKey:o(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",description:"Copy",exec:function(e){},readOnly:!0},{name:"cut",description:"Cut",exec:function(e){var t=e.$copyWithEmptySelection&&e.selection.isEmpty(),n=t?e.selection.getLineRange():e.selection.getRange();e._emit("cut",n),n.isEmpty()||e.session.remove(n),e.clearSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",description:"Paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",description:"Remove line",bindKey:o("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",description:"Duplicate selection",bindKey:o("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",description:"Sort lines",bindKey:o("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",description:"Toggle comment",bindKey:o("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",description:"Toggle block comment",bindKey:o("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",description:"Modify number up",bindKey:o("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",description:"Modify number down",bindKey:o("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",description:"Replace",bindKey:o("Ctrl-H","Command-Option-F"),exec:function(e){i.loadModule("ace/ext/searchbox",function(t){t.Search(e,!0)})}},{name:"undo",description:"Undo",bindKey:o("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",description:"Redo",bindKey:o("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",description:"Copy lines up",bindKey:o("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",description:"Move lines up",bindKey:o("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",description:"Copy lines down",bindKey:o("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",description:"Move lines down",bindKey:o("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",description:"Delete",bindKey:o("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",description:"Backspace",bindKey:o("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",description:"Cut or delete",bindKey:o("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",description:"Remove to line start",bindKey:o("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",description:"Remove to line end",bindKey:o("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",description:"Remove to line start hard",bindKey:o("Ctrl-Shift-Backspace",null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",description:"Remove to line end hard",bindKey:o("Ctrl-Shift-Delete",null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",description:"Remove word left",bindKey:o("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",description:"Remove word right",bindKey:o("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",description:"Outdent",bindKey:o("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",description:"Indent",bindKey:o("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",description:"Block outdent",bindKey:o("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",description:"Block indent",bindKey:o("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",description:"Insert string",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",description:"Insert text",exec:function(e,t){e.insert(r.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",description:"Split line",bindKey:o(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",description:"Transpose letters",bindKey:o("Alt-Shift-X","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",description:"To uppercase",bindKey:o("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",description:"To lowercase",bindKey:o("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"expandtoline",description:"Expand to line",bindKey:o("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"joinlines",description:"Join lines",bindKey:o(null,null),exec:function(e){var t=e.selection.isBackwards(),n=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),i=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),o=e.session.doc.getLine(n.row).length,u=e.session.doc.getTextRange(e.selection.getRange()),a=u.replace(/\n\s*/," ").length,f=e.session.doc.getLine(n.row);for(var l=n.row+1;l<=i.row+1;l++){var c=r.stringTrimLeft(r.stringTrimRight(e.session.doc.getLine(l)));c.length!==0&&(c=" "+c),f+=c}i.row+1<e.session.doc.getLength()-1&&(f+=e.session.doc.getNewLineCharacter()),e.clearSelection(),e.session.doc.replace(new s(n.row,0,i.row+2,0),f),a>0?(e.selection.moveCursorTo(n.row,n.column),e.selection.selectTo(n.row,n.column+a)):(o=e.session.doc.getLine(n.row).length>o?o+1:o,e.selection.moveCursorTo(n.row,o))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",description:"Invert selection",bindKey:o(null,null),exec:function(e){var t=e.session.doc.getLength()-1,n=e.session.doc.getLine(t).length,r=e.selection.rangeList.ranges,i=[];r.length<1&&(r=[e.selection.getRange()]);for(var o=0;o<r.length;o++)o==r.length-1&&(r[o].end.row!==t||r[o].end.column!==n)&&i.push(new s(r[o].end.row,r[o].end.column,t,n)),o===0?(r[o].start.row!==0||r[o].start.column!==0)&&i.push(new s(0,0,r[o].start.row,r[o].start.column)):i.push(new s(r[o-1].end.row,r[o-1].end.column,r[o].start.row,r[o].start.column));e.exitMultiSelectMode(),e.clearSelection();for(var o=0;o<i.length;o++)e.selection.addRange(i[o],!1)},readOnly:!0,scrollIntoView:"none"},{name:"openCommandPallete",description:"Open command pallete",bindKey:o("F1","F1"),exec:function(e){e.prompt({$type:"commands"})},readOnly:!0},{name:"modeSelect",description:"Change language mode...",bindKey:o(null,null),exec:function(e){e.prompt({$type:"modes"})},readOnly:!0}]}),ace.define("ace/clipboard",["require","exports","module"],function(e,t,n){"use strict";n.exports={lineMode:!1}}),ace.define("ace/editor",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/keyboard/textinput","ace/mouse/mouse_handler","ace/mouse/fold_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","ace/lib/event_emitter","ace/commands/command_manager","ace/commands/default_commands","ace/config","ace/token_iterator","ace/clipboard"],function(e,t,n){"use strict";e("./lib/fixoldbrowsers");var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./lib/lang"),o=e("./lib/useragent"),u=e("./keyboard/textinput").TextInput,a=e("./mouse/mouse_handler").MouseHandler,f=e("./mouse/fold_handler").FoldHandler,l=e("./keyboard/keybinding").KeyBinding,c=e("./edit_session").EditSession,h=e("./search").Search,p=e("./range").Range,d=e("./lib/event_emitter").EventEmitter,v=e("./commands/command_manager").CommandManager,m=e("./commands/default_commands").commands,g=e("./config"),y=e("./token_iterator").TokenIterator,b=e("./clipboard"),w=function(e,t,n){var r=e.getContainerElement();this.container=r,this.renderer=e,this.id="editor"+ ++w.$uid,this.commands=new v(o.isMac?"mac":"win",m),typeof document=="object"&&(this.textInput=new u(e.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new a(this),new f(this)),this.keyBinding=new l(this),this.$search=(new h).set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=s.delayedCall(function(){this._signal("input",{}),this.session&&this.session.bgTokenizer&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",function(e,t){t._$emitInputEvent.schedule(31)}),this.setSession(t||n&&n.session||new c("")),g.resetOptions(this),n&&this.setOptions(n),g._signal("editor",this)};w.$uid=0,function(){r.implement(this,d),this.$initOperationListeners=function(){this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0),this.$opResetTimer=s.delayedCall(this.endOperation.bind(this,!0)),this.on("change",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.docChanged=!0}.bind(this),!0),this.on("changeSelection",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.selectionChanged=!0}.bind(this),!0)},this.curOp=null,this.prevOp={},this.startOperation=function(e){if(this.curOp){if(!e||this.curOp.command)return;this.prevOp=this.curOp}e||(this.previousCommand=null,e={}),this.$opResetTimer.schedule(),this.curOp=this.session.curOp={command:e.command||{},args:e.args,scrollTop:this.renderer.scrollTop},this.curOp.selectionBefore=this.selection.toJSON()},this.endOperation=function(e){if(this.curOp){if(e&&e.returnValue===!1)return this.curOp=null;if(e==1&&this.curOp.command&&this.curOp.command.name=="mouse")return;this._signal("beforeEndOperation");if(!this.curOp)return;var t=this.curOp.command,n=t&&t.scrollIntoView;if(n){switch(n){case"center-animate":n="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var r=this.selection.getRange(),i=this.renderer.layerConfig;(r.start.row>=i.lastRow||r.end.row<=i.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead);break;default:}n=="animate"&&this.renderer.animateScrolling(this.curOp.scrollTop)}var s=this.selection.toJSON();this.curOp.selectionAfter=s,this.$lastSel=this.selection.toJSON(),this.session.getUndoManager().addSelection(s),this.prevOp=this.curOp,this.curOp=null}},this.$mergeableCommands=["backspace","del","insertstring"],this.$historyTracker=function(e){if(!this.$mergeUndoDeltas)return;var t=this.prevOp,n=this.$mergeableCommands,r=t.command&&e.command.name==t.command.name;if(e.command.name=="insertstring"){var i=e.args;this.mergeNextCommand===undefined&&(this.mergeNextCommand=!0),r=r&&this.mergeNextCommand&&(!/\s/.test(i)||/\s/.test(t.args)),this.mergeNextCommand=!0}else r=r&&n.indexOf(e.command.name)!==-1;this.$mergeUndoDeltas!="always"&&Date.now()-this.sequenceStartTime>2e3&&(r=!1),r?this.session.mergeUndoDeltas=!0:n.indexOf(e.command.name)!==-1&&(this.sequenceStartTime=Date.now())},this.setKeyboardHandler=function(e,t){if(e&&typeof e=="string"&&e!="ace"){this.$keybindingId=e;var n=this;g.loadModule(["keybinding",e],function(r){n.$keybindingId==e&&n.keyBinding.setKeyboardHandler(r&&r.handler),t&&t()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(e){if(this.session==e)return;this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var n=this.session.getSelection();n.off("changeCursor",this.$onCursorChange),n.off("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),this.curOp=null,t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this}),e&&e.bgTokenizer&&e.bgTokenizer.scheduleStart()},this.getSession=function(){return this.session},this.setValue=function(e,t){return this.session.doc.setValue(e),t?t==1?this.navigateFileEnd():t==-1&&this.navigateFileStart():this.selectAll(),e},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(e){this.renderer.onResize(e)},this.setTheme=function(e,t){this.renderer.setTheme(e,t)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(e){this.renderer.setStyle(e)},this.unsetStyle=function(e){this.renderer.unsetStyle(e)},this.getFontSize=function(){return this.getOption("fontSize")||i.computedStyle(this.container).fontSize},this.setFontSize=function(e){this.setOption("fontSize",e)},this.$highlightBrackets=function(){this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null);if(this.$highlightPending)return;var e=this;this.$highlightPending=!0,setTimeout(function(){e.$highlightPending=!1;var t=e.session;if(!t||!t.bgTokenizer)return;var n=t.findMatchingBracket(e.getCursorPosition());if(n)var r=new p(n.row,n.column,n.row,n.column+1);else if(t.$mode.getMatching)var r=t.$mode.getMatching(e.session);r&&(t.$bracketHighlight=t.addMarker(r,"ace_bracket","text"))},50)},this.$highlightTags=function(){if(this.$highlightTagPending)return;var e=this;this.$highlightTagPending=!0,setTimeout(function(){e.$highlightTagPending=!1;var t=e.session;if(!t||!t.bgTokenizer)return;var n=e.getCursorPosition(),r=new y(e.session,n.row,n.column),i=r.getCurrentToken();if(!i||!/\b(?:tag-open|tag-name)/.test(i.type)){t.removeMarker(t.$tagHighlight),t.$tagHighlight=null;return}if(i.type.indexOf("tag-open")!=-1){i=r.stepForward();if(!i)return}var s=i.value,o=0,u=r.stepBackward();if(u.value=="<"){do u=i,i=r.stepForward(),i&&i.value===s&&i.type.indexOf("tag-name")!==-1&&(u.value==="<"?o++:u.value==="</"&&o--);while(i&&o>=0)}else{do i=u,u=r.stepBackward(),i&&i.value===s&&i.type.indexOf("tag-name")!==-1&&(u.value==="<"?o++:u.value==="</"&&o--);while(u&&o<=0);r.stepForward()}if(!i){t.removeMarker(t.$tagHighlight),t.$tagHighlight=null;return}var a=r.getCurrentTokenRow(),f=r.getCurrentTokenColumn(),l=new p(a,f,a,f+i.value.length),c=t.$backMarkers[t.$tagHighlight];t.$tagHighlight&&c!=undefined&&l.compareRange(c.range)!==0&&(t.removeMarker(t.$tagHighlight),t.$tagHighlight=null),t.$tagHighlight||(t.$tagHighlight=t.addMarker(l,"ace_bracket","text"))},50)},this.focus=function(){var e=this;setTimeout(function(){e.isFocused()||e.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(e){if(this.$isFocused)return;this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",e)},this.onBlur=function(e){if(!this.$isFocused)return;this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",e)},this.$cursorChange=function(){this.renderer.updateCursor()},this.onDocumentChange=function(e){var t=this.session.$useWrapMode,n=e.start.row==e.end.row?e.end.row:Infinity;this.renderer.updateLines(e.start.row,n,t),this._signal("change",e),this.$cursorChange(),this.$updateHighlightActiveLine()},this.onTokenizerUpdate=function(e){var t=e.data;this.renderer.updateLines(t.first,t.last)},this.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},this.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},this.onCursorChange=function(){this.$cursorChange(),this.$highlightBrackets(),this.$highlightTags(),this.$updateHighlightActiveLine(),this._signal("changeSelection")},this.$updateHighlightActiveLine=function(){var e=this.getSession(),t;if(this.$highlightActiveLine){if(this.$selectionStyle!="line"||!this.selection.isMultiLine())t=this.getCursorPosition();this.renderer.theme&&this.renderer.theme.$selectionColorConflict&&!this.selection.isEmpty()&&(t=!1),this.renderer.$maxLines&&this.session.getLength()===1&&!(this.renderer.$minLines>1)&&(t=!1)}if(e.$highlightLineMarker&&!t)e.removeMarker(e.$highlightLineMarker.id),e.$highlightLineMarker=null;else if(!e.$highlightLineMarker&&t){var n=new p(t.row,t.column,t.row,Infinity);n.id=e.addMarker(n,"ace_active-line","screenLine"),e.$highlightLineMarker=n}else t&&(e.$highlightLineMarker.start.row=t.row,e.$highlightLineMarker.end.row=t.row,e.$highlightLineMarker.start.column=t.column,e._signal("changeBackMarker"))},this.onSelectionChange=function(e){var t=this.session;t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null;if(!this.selection.isEmpty()){var n=this.selection.getRange(),r=this.getSelectionStyle();t.$selectionMarker=t.addMarker(n,"ace_selection",r)}else this.$updateHighlightActiveLine();var i=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(i),this._signal("changeSelection")},this.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(t.isEmpty()||t.isMultiLine())return;var n=t.start.column,r=t.end.column,i=e.getLine(t.start.row),s=i.substring(n,r);if(s.length>5e3||!/[\w\d]/.test(s))return;var o=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:s}),u=i.substring(n-1,r+1);if(!o.test(u))return;return o},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},this.getCopyText=function(){var e=this.getSelectedText(),t=this.session.doc.getNewLineCharacter(),n=!1;if(!e&&this.$copyWithEmptySelection){n=!0;var r=this.selection.getAllRanges();for(var i=0;i<r.length;i++){var s=r[i];if(i&&r[i-1].start.row==s.start.row)continue;e+=this.session.getLine(s.start.row)+t}}var o={text:e};return this._signal("copy",o),b.lineMode=n?o.text:"",o.text},this.onCopy=function(){this.commands.exec("copy",this)},this.onCut=function(){this.commands.exec("cut",this)},this.onPaste=function(e,t){var n={text:e,event:t};this.commands.exec("paste",this,n)},this.$handlePaste=function(e){typeof e=="string"&&(e={text:e}),this._signal("paste",e);var t=e.text,n=t==b.lineMode,r=this.session;if(!this.inMultiSelectMode||this.inVirtualSelectionMode)n?r.insert({row:this.selection.lead.row,column:0},t):this.insert(t);else if(n)this.selection.rangeList.ranges.forEach(function(e){r.insert({row:e.start.row,column:0},t)});else{var i=t.split(/\r\n|\r|\n/),s=this.selection.rangeList.ranges;if(i.length>s.length||i.length<2||!i[1])return this.commands.exec("insertstring",this,t);for(var o=s.length;o--;){var u=s[o];u.isEmpty()||r.remove(u),r.insert(u.start,i[o])}}},this.execCommand=function(e,t){return this.commands.exec(e,this,t)},this.insert=function(e,t){var n=this.session,r=n.getMode(),i=this.getCursorPosition();if(this.getBehavioursEnabled()&&!t){var s=r.transformAction(n.getState(i.row),"insertion",this,n,e);s&&(e!==s.text&&(this.inVirtualSelectionMode||(this.session.mergeUndoDeltas=!1,this.mergeNextCommand=!1)),e=s.text)}e==" "&&(e=this.session.getTabString());if(!this.selection.isEmpty()){var o=this.getSelectionRange();i=this.session.remove(o),this.clearSelection()}else if(this.session.getOverwrite()&&e.indexOf("\n")==-1){var o=new p.fromPoints(i,i);o.end.column+=e.length,this.session.remove(o)}if(e=="\n"||e=="\r\n"){var u=n.getLine(i.row);if(i.column>u.search(/\S|$/)){var a=u.substr(i.column).search(/\S|$/);n.doc.removeInLine(i.row,i.column,i.column+a)}}this.clearSelection();var f=i.column,l=n.getState(i.row),u=n.getLine(i.row),c=r.checkOutdent(l,u,e),h=n.insert(i,e);s&&s.selection&&(s.selection.length==2?this.selection.setSelectionRange(new p(i.row,f+s.selection[0],i.row,f+s.selection[1])):this.selection.setSelectionRange(new p(i.row+s.selection[0],s.selection[1],i.row+s.selection[2],s.selection[3])));if(n.getDocument().isNewLine(e)){var d=r.getNextLineIndent(l,u.slice(0,i.column),n.getTabString());n.insert({row:i.row+1,column:0},d)}c&&r.autoOutdent(l,n,i.row)},this.onTextInput=function(e,t){if(!t)return this.keyBinding.onTextInput(e);this.startOperation({command:{name:"insertstring"}});var n=this.applyComposition.bind(this,e,t);this.selection.rangeCount?this.forEachSelection(n):n(),this.endOperation()},this.applyComposition=function(e,t){if(t.extendLeft||t.extendRight){var n=this.selection.getRange();n.start.column-=t.extendLeft,n.end.column+=t.extendRight,this.selection.setRange(n),!e&&!n.isEmpty()&&this.remove()}(e||!this.selection.isEmpty())&&this.insert(e,!0);if(t.restoreStart||t.restoreEnd){var n=this.selection.getRange();n.start.column-=t.restoreStart,n.end.column-=t.restoreEnd,this.selection.setRange(n)}},this.onCommandKey=function(e,t,n){this.keyBinding.onCommandKey(e,t,n)},this.setOverwrite=function(e){this.session.setOverwrite(e)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},this.getScrollSpeed=function(){return this.getOption("scrollSpeed")},this.setDragDelay=function(e){this.setOption("dragDelay",e)},this.getDragDelay=function(){return this.getOption("dragDelay")},this.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},this.getSelectionStyle=function(){return this.getOption("selectionStyle")},this.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(e){this.setOption("readOnly",e)},this.getReadOnly=function(){return this.getOption("readOnly")},this.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},this.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},this.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.remove=function(e){this.selection.isEmpty()&&(e=="left"?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var n=this.session,r=n.getState(t.start.row),i=n.getMode().transformAction(r,"deletion",this,n,t);if(t.end.column===0){var s=n.getTextRange(t);if(s[s.length-1]=="\n"){var o=n.getLine(t.end.row);/^\s+$/.test(o)&&(t.end.column=o.length)}}i&&(t=i)}this.session.remove(t),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.selection.isEmpty()&&this.selection.selectLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},this.transposeLetters=function(){if(!this.selection.isEmpty())return;var e=this.getCursorPosition(),t=e.column;if(t===0)return;var n=this.session.getLine(e.row),r,i;t<n.length?(r=n.charAt(t)+n.charAt(t-1),i=new p(e.row,t-1,e.row,t+1)):(r=n.charAt(t-1)+n.charAt(t-2),i=new p(e.row,t-2,e.row,t)),this.session.replace(i,r),this.session.selection.moveToPosition(i.end)},this.toLowerCase=function(){var e=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var t=this.getSelectionRange(),n=this.session.getTextRange(t);this.session.replace(t,n.toLowerCase()),this.selection.setSelectionRange(e)},this.toUpperCase=function(){var e=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var t=this.getSelectionRange(),n=this.session.getTextRange(t);this.session.replace(t,n.toUpperCase()),this.selection.setSelectionRange(e)},this.indent=function(){var e=this.session,t=this.getSelectionRange();if(t.start.row<t.end.row){var n=this.$getSelectedRows();e.indentRows(n.first,n.last," ");return}if(t.start.column<t.end.column){var r=e.getTextRange(t);if(!/^\s+$/.test(r)){var n=this.$getSelectedRows();e.indentRows(n.first,n.last," ");return}}var i=e.getLine(t.start.row),o=t.start,u=e.getTabSize(),a=e.documentToScreenColumn(o.row,o.column);if(this.session.getUseSoftTabs())var f=u-a%u,l=s.stringRepeat(" ",f);else{var f=a%u;while(i[t.start.column-1]==" "&&f)t.start.column--,f--;this.selection.setSelectionRange(t),l=" "}return this.insert(l)},this.blockIndent=function(){var e=this.$getSelectedRows();this.session.indentRows(e.first,e.last," ")},this.blockOutdent=function(){var e=this.session.getSelection();this.session.outdentRows(e.getRange())},this.sortLines=function(){var e=this.$getSelectedRows(),t=this.session,n=[];for(var r=e.first;r<=e.last;r++)n.push(t.getLine(r));n.sort(function(e,t){return e.toLowerCase()<t.toLowerCase()?-1:e.toLowerCase()>t.toLowerCase()?1:0});var i=new p(0,0,0,0);for(var r=e.first;r<=e.last;r++){var s=t.getLine(r);i.start.row=r,i.end.row=r,i.end.column=s.length,t.replace(i,n[r-e.first])}},this.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},this.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),n=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,n,e)},this.getNumberAt=function(e,t){var n=/[\-]?[0-9]+(?:\.[0-9]+)?/g;n.lastIndex=0;var r=this.session.getLine(e);while(n.lastIndex<t){var i=n.exec(r);if(i.index<=t&&i.index+i[0].length>=t){var s={value:i[0],start:i.index,end:i.index+i[0].length};return s}}return null},this.modifyNumber=function(e){var t=this.selection.getCursor().row,n=this.selection.getCursor().column,r=new p(t,n-1,t,n),i=this.session.getTextRange(r);if(!isNaN(parseFloat(i))&&isFinite(i)){var s=this.getNumberAt(t,n);if(s){var o=s.value.indexOf(".")>=0?s.start+s.value.indexOf(".")+1:s.end,u=s.start+s.value.length-o,a=parseFloat(s.value);a*=Math.pow(10,u),o!==s.end&&n<o?e*=Math.pow(10,s.end-n-1):e*=Math.pow(10,s.end-n),a+=e,a/=Math.pow(10,u);var f=a.toFixed(u),l=new p(t,s.start,t,s.end);this.session.replace(l,f),this.moveCursorTo(t,Math.max(s.start+1,n+f.length-s.value.length))}}else this.toggleWord()},this.$toggleWordPairs=[["first","last"],["true","false"],["yes","no"],["width","height"],["top","bottom"],["right","left"],["on","off"],["x","y"],["get","set"],["max","min"],["horizontal","vertical"],["show","hide"],["add","remove"],["up","down"],["before","after"],["even","odd"],["inside","outside"],["next","previous"],["increase","decrease"],["attach","detach"],["&&","||"],["==","!="]],this.toggleWord=function(){var e=this.selection.getCursor().row,t=this.selection.getCursor().column;this.selection.selectWord();var n=this.getSelectedText(),r=this.selection.getWordRange().start.column,i=n.replace(/([a-z]+|[A-Z]+)(?=[A-Z_]|$)/g,"$1 ").split(/\s/),o=t-r-1;o<0&&(o=0);var u=0,a=0,f=this;n.match(/[A-Za-z0-9_]+/)&&i.forEach(function(t,i){a=u+t.length,o>=u&&o<=a&&(n=t,f.selection.clearSelection(),f.moveCursorTo(e,u+r),f.selection.selectTo(e,a+r)),u=a});var l=this.$toggleWordPairs,c;for(var h=0;h<l.length;h++){var p=l[h];for(var d=0;d<=1;d++){var v=+!d,m=n.match(new RegExp("^\\s?_?("+s.escapeRegExp(p[d])+")\\s?$","i"));if(m){var g=n.match(new RegExp("([_]|^|\\s)("+s.escapeRegExp(m[1])+")($|\\s)","g"));g&&(c=n.replace(new RegExp(s.escapeRegExp(p[d]),"i"),function(e){var t=p[v];return e.toUpperCase()==e?t=t.toUpperCase():e.charAt(0).toUpperCase()==e.charAt(0)&&(t=t.substr(0,0)+p[v].charAt(0).toUpperCase()+t.substr(1)),t}),this.insert(c),c="")}}}},this.removeLines=function(){var e=this.$getSelectedRows();this.session.removeFullLines(e.first,e.last),this.clearSelection()},this.duplicateSelection=function(){var e=this.selection,t=this.session,n=e.getRange(),r=e.isBackwards();if(n.isEmpty()){var i=n.start.row;t.duplicateLines(i,i)}else{var s=r?n.start:n.end,o=t.insert(s,t.getTextRange(n),!1);n.start=s,n.end=o,e.setSelectionRange(n,r)}},this.moveLinesDown=function(){this.$moveLines(1,!1)},this.moveLinesUp=function(){this.$moveLines(-1,!1)},this.moveText=function(e,t,n){return this.session.moveText(e,t,n)},this.copyLinesUp=function(){this.$moveLines(-1,!0)},this.copyLinesDown=function(){this.$moveLines(1,!0)},this.$moveLines=function(e,t){var n,r,i=this.selection;if(!i.inMultiSelectMode||this.inVirtualSelectionMode){var s=i.toOrientedRange();n=this.$getSelectedRows(s),r=this.session.$moveLines(n.first,n.last,t?0:e),t&&e==-1&&(r=0),s.moveBy(r,0),i.fromOrientedRange(s)}else{var o=i.rangeList.ranges;i.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;var u=0,a=0,f=o.length;for(var l=0;l<f;l++){var c=l;o[l].moveBy(u,0),n=this.$getSelectedRows(o[l]);var h=n.first,p=n.last;while(++l<f){a&&o[l].moveBy(a,0);var d=this.$getSelectedRows(o[l]);if(t&&d.first!=p)break;if(!t&&d.first>p+1)break;p=d.last}l--,u=this.session.$moveLines(h,p,t?0:e),t&&e==-1&&(c=l+1);while(c<=l)o[c].moveBy(u,0),c++;t||(u=0),a+=u}i.fromOrientedRange(i.ranges[0]),i.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},this.onCompositionStart=function(e){this.renderer.showComposition(e)},this.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},this.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(e,t){var n=this.renderer,r=this.renderer.layerConfig,i=e*Math.floor(r.height/r.lineHeight);t===!0?this.selection.$moveSelection(function(){this.moveCursorBy(i,0)}):t===!1&&(this.selection.moveCursorBy(i,0),this.selection.clearSelection());var s=n.scrollTop;n.scrollBy(0,i*r.lineHeight),t!=null&&n.scrollCursorIntoView(null,.5),n.animateScrolling(s)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(e){this.renderer.scrollToRow(e)},this.scrollToLine=function(e,t,n,r){this.renderer.scrollToLine(e,t,n,r)},this.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.selection.selectAll()},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},this.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},this.jumpToMatching=function(e,t){var n=this.getCursorPosition(),r=new y(this.session,n.row,n.column),i=r.getCurrentToken(),s=i||r.stepForward();if(!s)return;var o,u=!1,a={},f=n.column-s.start,l,c={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(s.value.match(/[{}()\[\]]/g))for(;f<s.value.length&&!u;f++){if(!c[s.value[f]])continue;l=c[s.value[f]]+"."+s.type.replace("rparen","lparen"),isNaN(a[l])&&(a[l]=0);switch(s.value[f]){case"(":case"[":case"{":a[l]++;break;case")":case"]":case"}":a[l]--,a[l]===-1&&(o="bracket",u=!0)}}else s.type.indexOf("tag-name")!==-1&&(isNaN(a[s.value])&&(a[s.value]=0),i.value==="<"?a[s.value]++:i.value==="</"&&a[s.value]--,a[s.value]===-1&&(o="tag",u=!0));u||(i=s,s=r.stepForward(),f=0)}while(s&&!u);if(!o)return;var h,d;if(o==="bracket"){h=this.session.getBracketRange(n);if(!h){h=new p(r.getCurrentTokenRow(),r.getCurrentTokenColumn()+f-1,r.getCurrentTokenRow(),r.getCurrentTokenColumn()+f-1),d=h.start;if(t||d.row===n.row&&Math.abs(d.column-n.column)<2)h=this.session.getBracketRange(d)}}else if(o==="tag"){if(!s||s.type.indexOf("tag-name")===-1)return;var v=s.value;h=new p(r.getCurrentTokenRow(),r.getCurrentTokenColumn()-2,r.getCurrentTokenRow(),r.getCurrentTokenColumn()-2);if(h.compare(n.row,n.column)===0){u=!1;do s=i,i=r.stepBackward(),i&&(i.type.indexOf("tag-close")!==-1&&h.setEnd(r.getCurrentTokenRow(),r.getCurrentTokenColumn()+1),s.value===v&&s.type.indexOf("tag-name")!==-1&&(i.value==="<"?a[v]++:i.value==="</"&&a[v]--,a[v]===0&&(u=!0)));while(i&&!u)}s&&s.type.indexOf("tag-name")&&(d=h.start,d.row==n.row&&Math.abs(d.column-n.column)<2&&(d=h.end))}d=h&&h.cursor||d,d&&(e?h&&t?this.selection.setRange(h):h&&h.isEqual(this.getSelectionRange())?this.clearSelection():this.selection.selectTo(d.row,d.column):this.selection.moveTo(d.row,d.column))},this.gotoLine=function(e,t,n){this.selection.clearSelection(),this.session.unfold({row:e-1,column:t||0}),this.exitMultiSelectMode&&this.exitMultiSelectMode(),this.moveCursorTo(e-1,t||0),this.isRowFullyVisible(e-1)||this.scrollToLine(e-1,!0,n)},this.navigateTo=function(e,t){this.selection.moveTo(e,t)},this.navigateUp=function(e){if(this.selection.isMultiLine()&&!this.selection.isBackwards()){var t=this.selection.anchor.getPosition();return this.moveCursorToPosition(t)}this.selection.clearSelection(),this.selection.moveCursorBy(-e||-1,0)},this.navigateDown=function(e){if(this.selection.isMultiLine()&&this.selection.isBackwards()){var t=this.selection.anchor.getPosition();return this.moveCursorToPosition(t)}this.selection.clearSelection(),this.selection.moveCursorBy(e||1,0)},this.navigateLeft=function(e){if(!this.selection.isEmpty()){var t=this.getSelectionRange().start;this.moveCursorToPosition(t)}else{e=e||1;while(e--)this.selection.moveCursorLeft()}this.clearSelection()},this.navigateRight=function(e){if(!this.selection.isEmpty()){var t=this.getSelectionRange().end;this.moveCursorToPosition(t)}else{e=e||1;while(e--)this.selection.moveCursorRight()}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection()},this.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection()},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(e,t){t&&this.$search.set(t);var n=this.$search.find(this.session),r=0;return n?(this.$tryReplace(n,e)&&(r=1),this.selection.setSelectionRange(n),this.renderer.scrollSelectionIntoView(n.start,n.end),r):r},this.replaceAll=function(e,t){t&&this.$search.set(t);var n=this.$search.findAll(this.session),r=0;if(!n.length)return r;var i=this.getSelectionRange();this.selection.moveTo(0,0);for(var s=n.length-1;s>=0;--s)this.$tryReplace(n[s],e)&&r++;return this.selection.setSelectionRange(i),r},this.$tryReplace=function(e,t){var n=this.session.getTextRange(e);return t=this.$search.replace(n,t),t!==null?(e.end=this.session.replace(e,t),e):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(e,t,n){t||(t={}),typeof e=="string"||e instanceof RegExp?t.needle=e:typeof e=="object"&&r.mixin(t,e);var i=this.selection.getRange();t.needle==null&&(e=this.session.getTextRange(i)||this.$search.$options.needle,e||(i=this.session.getWordRange(i.start.row,i.start.column),e=this.session.getTextRange(i)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:i});var s=this.$search.find(this.session);if(t.preventScroll)return s;if(s)return this.revealRange(s,n),s;t.backwards?i.start=i.end:i.end=i.start,this.selection.setRange(i)},this.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},this.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},this.revealRange=function(e,t){this.session.unfold(e),this.selection.setSelectionRange(e);var n=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),t!==!1&&this.renderer.animateScrolling(n)},this.undo=function(){this.session.getUndoManager().undo(this.session),this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.session.getUndoManager().redo(this.session),this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy()},this.setAutoScrollEditorIntoView=function(e){if(!e)return;var t,n=this,r=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var i=this.$scrollAnchor;i.style.cssText="position:absolute",this.container.insertBefore(i,this.container.firstChild);var s=this.on("changeSelection",function(){r=!0}),o=this.renderer.on("beforeRender",function(){r&&(t=n.renderer.container.getBoundingClientRect())}),u=this.renderer.on("afterRender",function(){if(r&&t&&(n.isFocused()||n.searchBox&&n.searchBox.isFocused())){var e=n.renderer,s=e.$cursorLayer.$pixelPos,o=e.layerConfig,u=s.top-o.offset;s.top>=0&&u+t.top<0?r=!0:s.top<o.height&&s.top+t.top+o.lineHeight>window.innerHeight?r=!1:r=null,r!=null&&(i.style.top=u+"px",i.style.left=s.left+"px",i.style.height=o.lineHeight+"px",i.scrollIntoView(r)),r=t=null}});this.setAutoScrollEditorIntoView=function(e){if(e)return;delete this.setAutoScrollEditorIntoView,this.off("changeSelection",s),this.renderer.off("afterRender",u),this.renderer.off("beforeRender",o)}},this.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;if(!t)return;t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&e!="wide",i.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e))},this.prompt=function(e,t,n){var r=this;g.loadModule("./ext/prompt",function(i){i.prompt(r,e,t,n)})}}.call(w.prototype),g.defineOptions(w.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.textInput.setReadOnly(e),this.$resetCursorStyle()},initialValue:!1},copyWithEmptySelection:{set:function(e){this.textInput.setCopyWithEmptySelection(e)},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.$keybindingId},handlesSet:!0},value:{set:function(e){this.session.setValue(e)},get:function(){return this.getValue()},handlesSet:!0,hidden:!0},session:{set:function(e){this.setSession(e)},get:function(){return this.session},handlesSet:!0,hidden:!0},showLineNumbers:{set:function(e){this.renderer.$gutterLayer.setShowLineNumbers(e),this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER),e&&this.$relativeLineNumbers?E.attach(this):E.detach(this)},initialValue:!0},relativeLineNumbers:{set:function(e){this.$showLineNumbers&&e?E.attach(this):E.detach(this)}},hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",displayIndentGuides:"renderer",showGutter:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",hasCssTransforms:"renderer",maxPixelHeight:"renderer",useTextareaForIME:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimeout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",navigateWithinSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"});var E={getText:function(e,t){return(Math.abs(e.selection.lead.row-t)||t+1+(t<9?"\u00b7":""))+""},getWidth:function(e,t,n){return Math.max(t.toString().length,(n.lastRow+1).toString().length,2)*n.characterWidth},update:function(e,t){t.renderer.$loop.schedule(t.renderer.CHANGE_GUTTER)},attach:function(e){e.renderer.$gutterLayer.$renderer=this,e.on("changeSelection",this.update),this.update(null,e)},detach:function(e){e.renderer.$gutterLayer.$renderer==this&&(e.renderer.$gutterLayer.$renderer=null),e.off("changeSelection",this.update),this.update(null,e)}};t.Editor=w}),ace.define("ace/undomanager",["require","exports","module","ace/range"],function(e,t,n){"use strict";function i(e,t){for(var n=t;n--;){var r=e[n];if(r&&!r[0].ignore){while(n<t-1){var i=d(e[n],e[n+1]);e[n]=i[0],e[n+1]=i[1],n++}return!0}}}function a(e){var t=e.action=="insert",n=e.start,r=e.end,i=(r.row-n.row)*(t?1:-1),s=(r.column-n.column)*(t?1:-1);t&&(r=n);for(var o in this.marks){var a=this.marks[o],f=u(a,n);if(f<0)continue;if(f===0&&t){if(a.bias!=1){a.bias==-1;continue}f=1}var l=t?f:u(a,r);if(l>0){a.row+=i,a.column+=a.row==r.row?s:0;continue}!t&&l<=0&&(a.row=n.row,a.column=n.column,l===0&&(a.bias=1))}}function f(e){return{row:e.row,column:e.column}}function l(e){return{start:f(e.start),end:f(e.end),action:e.action,lines:e.lines.slice()}}function c(e){e=e||this;if(Array.isArray(e))return e.map(c).join("\n");var t="";e.action?(t=e.action=="insert"?"+":"-",t+="["+e.lines+"]"):e.value&&(Array.isArray(e.value)?t=e.value.map(h).join("\n"):t=h(e.value)),e.start&&(t+=h(e));if(e.id||e.rev)t+=" ("+(e.id||e.rev)+")";return t}function h(e){return e.start.row+":"+e.start.column+"=>"+e.end.row+":"+e.end.column}function p(e,t){var n=e.action=="insert",r=t.action=="insert";if(n&&r)if(o(t.start,e.end)>=0)m(t,e,-1);else{if(!(o(t.start,e.start)<=0))return null;m(e,t,1)}else if(n&&!r)if(o(t.start,e.end)>=0)m(t,e,-1);else{if(!(o(t.end,e.start)<=0))return null;m(e,t,-1)}else if(!n&&r)if(o(t.start,e.start)>=0)m(t,e,1);else{if(!(o(t.start,e.start)<=0))return null;m(e,t,1)}else if(!n&&!r)if(o(t.start,e.start)>=0)m(t,e,1);else{if(!(o(t.end,e.start)<=0))return null;m(e,t,-1)}return[t,e]}function d(e,t){for(var n=e.length;n--;)for(var r=0;r<t.length;r++)if(!p(e[n],t[r])){while(n<e.length){while(r--)p(t[r],e[n]);r=t.length,n++}return[e,t]}return e.selectionBefore=t.selectionBefore=e.selectionAfter=t.selectionAfter=null,[t,e]}function v(e,t){var n=e.action=="insert",r=t.action=="insert";if(n&&r)o(e.start,t.start)<0?m(t,e,1):m(e,t,1);else if(n&&!r)o(e.start,t.end)>=0?m(e,t,-1):o(e.start,t.start)<=0?m(t,e,1):(m(e,s.fromPoints(t.start,e.start),-1),m(t,e,1));else if(!n&&r)o(t.start,e.end)>=0?m(t,e,-1):o(t.start,e.start)<=0?m(e,t,1):(m(t,s.fromPoints(e.start,t.start),-1),m(e,t,1));else if(!n&&!r)if(o(t.start,e.end)>=0)m(t,e,-1);else{if(!(o(t.end,e.start)<=0)){var i,u;return o(e.start,t.start)<0&&(i=e,e=y(e,t.start)),o(e.end,t.end)>0&&(u=y(e,t.end)),g(t.end,e.start,e.end,-1),u&&!i&&(e.lines=u.lines,e.start=u.start,e.end=u.end,u=e),[t,i,u].filter(Boolean)}m(e,t,-1)}return[t,e]}function m(e,t,n){g(e.start,t.start,t.end,n),g(e.end,t.start,t.end,n)}function g(e,t,n,r){e.row==(r==1?t:n).row&&(e.column+=r*(n.column-t.column)),e.row+=r*(n.row-t.row)}function y(e,t){var n=e.lines,r=e.end;e.end=f(t);var i=e.end.row-e.start.row,s=n.splice(i,n.length),o=i?t.column:t.column-e.start.column;n.push(s[0].substring(0,o)),s[0]=s[0].substr(o);var u={start:f(t),end:r,lines:s,action:e.action};return u}function b(e,t){t=l(t);for(var n=e.length;n--;){var r=e[n];for(var i=0;i<r.length;i++){var s=r[i],o=v(s,t);t=o[0],o.length!=2&&(o[2]?(r.splice(i+1,1,o[1],o[2]),i++):o[1]||(r.splice(i,1),i--))}r.length||e.splice(n,1)}return e}function w(e,t){for(var n=0;n<t.length;n++){var r=t[n];for(var i=0;i<r.length;i++)b(e,r[i])}}var r=function(){this.$maxRev=0,this.$fromUndo=!1,this.reset()};(function(){this.addSession=function(e){this.$session=e},this.add=function(e,t,n){if(this.$fromUndo)return;if(e==this.$lastDelta)return;if(t===!1||!this.lastDeltas)this.lastDeltas=[],this.$undoStack.push(this.lastDeltas),e.id=this.$rev=++this.$maxRev;if(e.action=="remove"||e.action=="insert")this.$lastDelta=e;this.lastDeltas.push(e)},this.addSelection=function(e,t){this.selections.push({value:e,rev:t||this.$rev})},this.startNewGroup=function(){return this.lastDeltas=null,this.$rev},this.markIgnored=function(e,t){t==null&&(t=this.$rev+1);var n=this.$undoStack;for(var r=n.length;r--;){var i=n[r][0];if(i.id<=e)break;i.id<t&&(i.ignore=!0)}this.lastDeltas=null},this.getSelection=function(e,t){var n=this.selections;for(var r=n.length;r--;){var i=n[r];if(i.rev<e)return t&&(i=n[r+1]),i}},this.getRevision=function(){return this.$rev},this.getDeltas=function(e,t){t==null&&(t=this.$rev+1);var n=this.$undoStack,r=null,i=0;for(var s=n.length;s--;){var o=n[s][0];o.id<t&&!r&&(r=s+1);if(o.id<=e){i=s+1;break}}return n.slice(i,r)},this.getChangedRanges=function(e,t){t==null&&(t=this.$rev+1)},this.getChangedLines=function(e,t){t==null&&(t=this.$rev+1)},this.undo=function(e,t){this.lastDeltas=null;var n=this.$undoStack;if(!i(n,n.length))return;e||(e=this.$session),this.$redoStackBaseRev!==this.$rev&&this.$redoStack.length&&(this.$redoStack=[]),this.$fromUndo=!0;var r=n.pop(),s=null;return r&&r.length&&(s=e.undoChanges(r,t),this.$redoStack.push(r),this.$syncRev()),this.$fromUndo=!1,s},this.redo=function(e,t){this.lastDeltas=null,e||(e=this.$session),this.$fromUndo=!0;if(this.$redoStackBaseRev!=this.$rev){var n=this.getDeltas(this.$redoStackBaseRev,this.$rev+1);w(this.$redoStack,n),this.$redoStackBaseRev=this.$rev,this.$redoStack.forEach(function(e){e[0].id=++this.$maxRev},this)}var r=this.$redoStack.pop(),i=null;return r&&(i=e.redoChanges(r,t),this.$undoStack.push(r),this.$syncRev()),this.$fromUndo=!1,i},this.$syncRev=function(){var e=this.$undoStack,t=e[e.length-1],n=t&&t[0].id||0;this.$redoStackBaseRev=n,this.$rev=n},this.reset=function(){this.lastDeltas=null,this.$lastDelta=null,this.$undoStack=[],this.$redoStack=[],this.$rev=0,this.mark=0,this.$redoStackBaseRev=this.$rev,this.selections=[]},this.canUndo=function(){return this.$undoStack.length>0},this.canRedo=function(){return this.$redoStack.length>0},this.bookmark=function(e){e==undefined&&(e=this.$rev),this.mark=e},this.isAtBookmark=function(){return this.$rev===this.mark},this.toJSON=function(){},this.fromJSON=function(){},this.hasUndo=this.canUndo,this.hasRedo=this.canRedo,this.isClean=this.isAtBookmark,this.markClean=this.bookmark,this.$prettyPrint=function(e){return e?c(e):c(this.$undoStack)+"\n---\n"+c(this.$redoStack)}}).call(r.prototype);var s=e("./range").Range,o=s.comparePoints,u=s.comparePoints;t.UndoManager=r}),ace.define("ace/layer/lines",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../lib/dom"),i=function(e,t){this.element=e,this.canvasHeight=t||5e5,this.element.style.height=this.canvasHeight*2+"px",this.cells=[],this.cellCache=[],this.$offsetCoefficient=0};(function(){this.moveContainer=function(e){r.translate(this.element,0,-(e.firstRowScreen*e.lineHeight%this.canvasHeight)-e.offset*this.$offsetCoefficient)},this.pageChanged=function(e,t){return Math.floor(e.firstRowScreen*e.lineHeight/this.canvasHeight)!==Math.floor(t.firstRowScreen*t.lineHeight/this.canvasHeight)},this.computeLineTop=function(e,t,n){var r=t.firstRowScreen*t.lineHeight,i=Math.floor(r/this.canvasHeight),s=n.documentToScreenRow(e,0)*t.lineHeight;return s-i*this.canvasHeight},this.computeLineHeight=function(e,t,n){return t.lineHeight*n.getRowLength(e)},this.getLength=function(){return this.cells.length},this.get=function(e){return this.cells[e]},this.shift=function(){this.$cacheCell(this.cells.shift())},this.pop=function(){this.$cacheCell(this.cells.pop())},this.push=function(e){if(Array.isArray(e)){this.cells.push.apply(this.cells,e);var t=r.createFragment(this.element);for(var n=0;n<e.length;n++)t.appendChild(e[n].element);this.element.appendChild(t)}else this.cells.push(e),this.element.appendChild(e.element)},this.unshift=function(e){if(Array.isArray(e)){this.cells.unshift.apply(this.cells,e);var t=r.createFragment(this.element);for(var n=0;n<e.length;n++)t.appendChild(e[n].element);this.element.firstChild?this.element.insertBefore(t,this.element.firstChild):this.element.appendChild(t)}else this.cells.unshift(e),this.element.insertAdjacentElement("afterbegin",e.element)},this.last=function(){return this.cells.length?this.cells[this.cells.length-1]:null},this.$cacheCell=function(e){if(!e)return;e.element.remove(),this.cellCache.push(e)},this.createCell=function(e,t,n,i){var s=this.cellCache.pop();if(!s){var o=r.createElement("div");i&&i(o),this.element.appendChild(o),s={element:o,text:"",row:e}}return s.row=e,s}}).call(i.prototype),t.Lines=i}),ace.define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/layer/lines"],function(e,t,n){"use strict";function f(e){var t=document.createTextNode("");e.appendChild(t);var n=r.createElement("span");return e.appendChild(n),e}var r=e("../lib/dom"),i=e("../lib/oop"),s=e("../lib/lang"),o=e("../lib/event_emitter").EventEmitter,u=e("./lines").Lines,a=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_gutter-layer",e.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$annotations=[],this.$updateAnnotations=this.$updateAnnotations.bind(this),this.$lines=new u(this.element),this.$lines.$offsetCoefficient=1};(function(){i.implement(this,o),this.setSession=function(e){this.session&&this.session.removeEventListener("change",this.$updateAnnotations),this.session=e,e&&e.on("change",this.$updateAnnotations)},this.addGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.addGutterDecoration"),this.session.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.removeGutterDecoration"),this.session.removeGutterDecoration(e,t)},this.setAnnotations=function(e){this.$annotations=[];for(var t=0;t<e.length;t++){var n=e[t],r=n.row,i=this.$annotations[r];i||(i=this.$annotations[r]={text:[]});var o=n.text;o=o?s.escapeHTML(o):n.html||"",i.text.indexOf(o)===-1&&i.text.push(o);var u=n.type;u=="error"?i.className=" ace_error":u=="warning"&&i.className!=" ace_error"?i.className=" ace_warning":u=="info"&&!i.className&&(i.className=" ace_info")}},this.$updateAnnotations=function(e){if(!this.$annotations.length)return;var t=e.start.row,n=e.end.row-t;if(n!==0)if(e.action=="remove")this.$annotations.splice(t,n+1,null);else{var r=new Array(n+1);r.unshift(t,1),this.$annotations.splice.apply(this.$annotations,r)}},this.update=function(e){this.config=e;var t=this.session,n=e.firstRow,r=Math.min(e.lastRow+e.gutterOffset,t.getLength()-1);this.oldLastRow=r,this.config=e,this.$lines.moveContainer(e),this.$updateCursorRow();var i=t.getNextFoldLine(n),s=i?i.start.row:Infinity,o=null,u=-1,a=n;for(;;){a>s&&(a=i.end.row+1,i=t.getNextFoldLine(a,i),s=i?i.start.row:Infinity);if(a>r){while(this.$lines.getLength()>u+1)this.$lines.pop();break}o=this.$lines.get(++u),o?o.row=a:(o=this.$lines.createCell(a,e,this.session,f),this.$lines.push(o)),this.$renderCell(o,e,i,a),a++}this._signal("afterRender"),this.$updateGutterWidth(e)},this.$updateGutterWidth=function(e){var t=this.session,n=t.gutterRenderer||this.$renderer,r=t.$firstLineNumber,i=this.$lines.last()?this.$lines.last().text:"";if(this.$fixedWidth||t.$useWrapMode)i=t.getLength()+r-1;var s=n?n.getWidth(t,i,e):i.toString().length*e.characterWidth,o=this.$padding||this.$computePadding();s+=o.left+o.right,s!==this.gutterWidth&&!isNaN(s)&&(this.gutterWidth=s,this.element.parentNode.style.width=this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._signal("changeGutterWidth",s))},this.$updateCursorRow=function(){if(!this.$highlightGutterLine)return;var e=this.session.selection.getCursor();if(this.$cursorRow===e.row)return;this.$cursorRow=e.row},this.updateLineHighlight=function(){if(!this.$highlightGutterLine)return;var e=this.session.selection.cursor.row;this.$cursorRow=e;if(this.$cursorCell&&this.$cursorCell.row==e)return;this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ",""));var t=this.$lines.cells;this.$cursorCell=null;for(var n=0;n<t.length;n++){var r=t[n];if(r.row>=this.$cursorRow){if(r.row>this.$cursorRow){var i=this.session.getFoldLine(this.$cursorRow);if(!(n>0&&i&&i.start.row==t[n-1].row))break;r=t[n-1]}r.element.className="ace_gutter-active-line "+r.element.className,this.$cursorCell=r;break}}},this.scrollLines=function(e){var t=this.config;this.config=e,this.$updateCursorRow();if(this.$lines.pageChanged(t,e))return this.update(e);this.$lines.moveContainer(e);var n=Math.min(e.lastRow+e.gutterOffset,this.session.getLength()-1),r=this.oldLastRow;this.oldLastRow=n;if(!t||r<e.firstRow)return this.update(e);if(n<t.firstRow)return this.update(e);if(t.firstRow<e.firstRow)for(var i=this.session.getFoldedRowCount(t.firstRow,e.firstRow-1);i>0;i--)this.$lines.shift();if(r>n)for(var i=this.session.getFoldedRowCount(n+1,r);i>0;i--)this.$lines.pop();e.firstRow<t.firstRow&&this.$lines.unshift(this.$renderLines(e,e.firstRow,t.firstRow-1)),n>r&&this.$lines.push(this.$renderLines(e,r+1,n)),this.updateLineHighlight(),this._signal("afterRender"),this.$updateGutterWidth(e)},this.$renderLines=function(e,t,n){var r=[],i=t,s=this.session.getNextFoldLine(i),o=s?s.start.row:Infinity;for(;;){i>o&&(i=s.end.row+1,s=this.session.getNextFoldLine(i,s),o=s?s.start.row:Infinity);if(i>n)break;var u=this.$lines.createCell(i,e,this.session,f);this.$renderCell(u,e,s,i),r.push(u),i++}return r},this.$renderCell=function(e,t,n,i){var s=e.element,o=this.session,u=s.childNodes[0],a=s.childNodes[1],f=o.$firstLineNumber,l=o.$breakpoints,c=o.$decorations,h=o.gutterRenderer||this.$renderer,p=this.$showFoldWidgets&&o.foldWidgets,d=n?n.start.row:Number.MAX_VALUE,v="ace_gutter-cell ";this.$highlightGutterLine&&(i==this.$cursorRow||n&&i<this.$cursorRow&&i>=d&&this.$cursorRow<=n.end.row)&&(v+="ace_gutter-active-line ",this.$cursorCell!=e&&(this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ","")),this.$cursorCell=e)),l[i]&&(v+=l[i]),c[i]&&(v+=c[i]),this.$annotations[i]&&(v+=this.$annotations[i].className),s.className!=v&&(s.className=v);if(p){var m=p[i];m==null&&(m=p[i]=o.getFoldWidget(i))}if(m){var v="ace_fold-widget ace_"+m;m=="start"&&i==d&&i<n.end.row?v+=" ace_closed":v+=" ace_open",a.className!=v&&(a.className=v);var g=t.lineHeight+"px";r.setStyle(a.style,"height",g),r.setStyle(a.style,"display","inline-block")}else a&&r.setStyle(a.style,"display","none");var y=(h?h.getText(o,i):i+f).toString();return y!==u.data&&(u.data=y),r.setStyle(e.element.style,"height",this.$lines.computeLineHeight(i,t,o)+"px"),r.setStyle(e.element.style,"top",this.$lines.computeLineTop(i,t,o)+"px"),e.text=y,e},this.$fixedWidth=!1,this.$highlightGutterLine=!0,this.$renderer="",this.setHighlightGutterLine=function(e){this.$highlightGutterLine=e},this.$showLineNumbers=!0,this.$renderer="",this.setShowLineNumbers=function(e){this.$renderer=!e&&{getWidth:function(){return 0},getText:function(){return""}}},this.getShowLineNumbers=function(){return this.$showLineNumbers},this.$showFoldWidgets=!0,this.setShowFoldWidgets=function(e){e?r.addCssClass(this.element,"ace_folding-enabled"):r.removeCssClass(this.element,"ace_folding-enabled"),this.$showFoldWidgets=e,this.$padding=null},this.getShowFoldWidgets=function(){return this.$showFoldWidgets},this.$computePadding=function(){if(!this.element.firstChild)return{left:0,right:0};var e=r.computedStyle(this.element.firstChild);return this.$padding={},this.$padding.left=(parseInt(e.borderLeftWidth)||0)+(parseInt(e.paddingLeft)||0)+1,this.$padding.right=(parseInt(e.borderRightWidth)||0)+(parseInt(e.paddingRight)||0),this.$padding},this.getRegion=function(e){var t=this.$padding||this.$computePadding(),n=this.element.getBoundingClientRect();if(e.x<t.left+n.left)return"markers";if(this.$showFoldWidgets&&e.x>n.right-t.right)return"foldWidgets"}}).call(a.prototype),t.Gutter=a}),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../range").Range,i=e("../lib/dom"),s=function(e){this.element=i.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)};(function(){function e(e,t,n,r){return(e?1:0)|(t?2:0)|(n?4:0)|(r?8:0)}this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setMarkers=function(e){this.markers=e},this.elt=function(e,t){var n=this.i!=-1&&this.element.childNodes[this.i];n?this.i++:(n=document.createElement("div"),this.element.appendChild(n),this.i=-1),n.style.cssText=t,n.className=e},this.update=function(e){if(!e)return;this.config=e,this.i=0;var t;for(var n in this.markers){var r=this.markers[n];if(!r.range){r.update(t,this,this.session,e);continue}var i=r.range.clipRows(e.firstRow,e.lastRow);if(i.isEmpty())continue;i=i.toScreenRange(this.session);if(r.renderer){var s=this.$getTop(i.start.row,e),o=this.$padding+i.start.column*e.characterWidth;r.renderer(t,i,o,s,e)}else r.type=="fullLine"?this.drawFullLineMarker(t,i,r.clazz,e):r.type=="screenLine"?this.drawScreenLineMarker(t,i,r.clazz,e):i.isMultiLine()?r.type=="text"?this.drawTextMarker(t,i,r.clazz,e):this.drawMultiLineMarker(t,i,r.clazz,e):this.drawSingleLineMarker(t,i,r.clazz+" ace_start"+" ace_br15",e)}if(this.i!=-1)while(this.i<this.element.childElementCount)this.element.removeChild(this.element.lastChild)},this.$getTop=function(e,t){return(e-t.firstRowScreen)*t.lineHeight},this.drawTextMarker=function(t,n,i,s,o){var u=this.session,a=n.start.row,f=n.end.row,l=a,c=0,h=0,p=u.getScreenLastRowColumn(l),d=new r(l,n.start.column,l,h);for(;l<=f;l++)d.start.row=d.end.row=l,d.start.column=l==a?n.start.column:u.getRowWrapIndent(l),d.end.column=p,c=h,h=p,p=l+1<f?u.getScreenLastRowColumn(l+1):l==f?0:n.end.column,this.drawSingleLineMarker(t,d,i+(l==a?" ace_start":"")+" ace_br"+e(l==a||l==a+1&&n.start.column,c<h,h>p,l==f),s,l==f?0:1,o)},this.drawMultiLineMarker=function(e,t,n,r,i){var s=this.$padding,o=r.lineHeight,u=this.$getTop(t.start.row,r),a=s+t.start.column*r.characterWidth;i=i||"";if(this.session.$bidiHandler.isBidiRow(t.start.row)){var f=t.clone();f.end.row=f.start.row,f.end.column=this.session.getLine(f.start.row).length,this.drawBidiSingleLineMarker(e,f,n+" ace_br1 ace_start",r,null,i)}else this.elt(n+" ace_br1 ace_start","height:"+o+"px;"+"right:0;"+"top:"+u+"px;left:"+a+"px;"+(i||""));if(this.session.$bidiHandler.isBidiRow(t.end.row)){var f=t.clone();f.start.row=f.end.row,f.start.column=0,this.drawBidiSingleLineMarker(e,f,n+" ace_br12",r,null,i)}else{u=this.$getTop(t.end.row,r);var l=t.end.column*r.characterWidth;this.elt(n+" ace_br12","height:"+o+"px;"+"width:"+l+"px;"+"top:"+u+"px;"+"left:"+s+"px;"+(i||""))}o=(t.end.row-t.start.row-1)*r.lineHeight;if(o<=0)return;u=this.$getTop(t.start.row+1,r);var c=(t.start.column?1:0)|(t.end.column?0:8);this.elt(n+(c?" ace_br"+c:""),"height:"+o+"px;"+"right:0;"+"top:"+u+"px;"+"left:"+s+"px;"+(i||""))},this.drawSingleLineMarker=function(e,t,n,r,i,s){if(this.session.$bidiHandler.isBidiRow(t.start.row))return this.drawBidiSingleLineMarker(e,t,n,r,i,s);var o=r.lineHeight,u=(t.end.column+(i||0)-t.start.column)*r.characterWidth,a=this.$getTop(t.start.row,r),f=this.$padding+t.start.column*r.characterWidth;this.elt(n,"height:"+o+"px;"+"width:"+u+"px;"+"top:"+a+"px;"+"left:"+f+"px;"+(s||""))},this.drawBidiSingleLineMarker=function(e,t,n,r,i,s){var o=r.lineHeight,u=this.$getTop(t.start.row,r),a=this.$padding,f=this.session.$bidiHandler.getSelections(t.start.column,t.end.column);f.forEach(function(e){this.elt(n,"height:"+o+"px;"+"width:"+e.width+(i||0)+"px;"+"top:"+u+"px;"+"left:"+(a+e.left)+"px;"+(s||""))},this)},this.drawFullLineMarker=function(e,t,n,r,i){var s=this.$getTop(t.start.row,r),o=r.lineHeight;t.start.row!=t.end.row&&(o+=this.$getTop(t.end.row,r)-s),this.elt(n,"height:"+o+"px;"+"top:"+s+"px;"+"left:0;right:0;"+(i||""))},this.drawScreenLineMarker=function(e,t,n,r,i){var s=this.$getTop(t.start.row,r),o=r.lineHeight;this.elt(n,"height:"+o+"px;"+"top:"+s+"px;"+"left:0;right:0;"+(i||""))}}).call(s.prototype),t.Marker=s}),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/layer/lines","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/dom"),s=e("../lib/lang"),o=e("./lines").Lines,u=e("../lib/event_emitter").EventEmitter,a=function(e){this.dom=i,this.element=this.dom.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this),this.$lines=new o(this.element)};(function(){r.implement(this,u),this.EOF_CHAR="\u00b6",this.EOL_CHAR_LF="\u00ac",this.EOL_CHAR_CRLF="\u00a4",this.EOL_CHAR=this.EOL_CHAR_LF,this.TAB_CHAR="\u2014",this.SPACE_CHAR="\u00b7",this.$padding=0,this.MAX_LINE_LENGTH=1e4,this.$updateEolChar=function(){var e=this.session.doc,t=e.getNewLineCharacter()=="\n"&&e.getNewLineMode()!="windows",n=t?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=n)return this.EOL_CHAR=n,!0},this.setPadding=function(e){this.$padding=e,this.element.style.margin="0 "+e+"px"},this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},this.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},this.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},this.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},this.setSession=function(e){this.session=e,e&&this.$computeTabString()},this.showInvisibles=!1,this.setShowInvisibles=function(e){return this.showInvisibles==e?!1:(this.showInvisibles=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides==e?!1:(this.displayIndentGuides=e,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;var t=this.$tabStrings=[0];for(var n=1;n<e+1;n++)if(this.showInvisibles){var r=this.dom.createElement("span");r.className="ace_invisible ace_invisible_tab",r.textContent=s.stringRepeat(this.TAB_CHAR,n),t.push(r)}else t.push(this.dom.createTextNode(s.stringRepeat(" ",n),this.element));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var i="ace_indent-guide",o="",u="";if(this.showInvisibles){i+=" ace_invisible",o=" ace_invisible_space",u=" ace_invisible_tab";var a=s.stringRepeat(this.SPACE_CHAR,this.tabSize),f=s.stringRepeat(this.TAB_CHAR,this.tabSize)}else var a=s.stringRepeat(" ",this.tabSize),f=a;var r=this.dom.createElement("span");r.className=i+o,r.textContent=a,this.$tabStrings[" "]=r;var r=this.dom.createElement("span");r.className=i+u,r.textContent=f,this.$tabStrings[" "]=r}},this.updateLines=function(e,t,n){if(this.config.lastRow!=e.lastRow||this.config.firstRow!=e.firstRow)return this.update(e);this.config=e;var r=Math.max(t,e.firstRow),i=Math.min(n,e.lastRow),s=this.element.childNodes,o=0;for(var u=e.firstRow;u<r;u++){var a=this.session.getFoldLine(u);if(a){if(a.containsRow(r)){r=a.start.row;break}u=a.end.row}o++}var f=!1,u=r,a=this.session.getNextFoldLine(u),l=a?a.start.row:Infinity;for(;;){u>l&&(u=a.end.row+1,a=this.session.getNextFoldLine(u,a),l=a?a.start.row:Infinity);if(u>i)break;var c=s[o++];if(c){this.dom.removeChildren(c),this.$renderLine(c,u,u==l?a:!1);var h=e.lineHeight*this.session.getRowLength(u)+"px";c.style.height!=h&&(f=!0,c.style.height=h)}u++}if(f)while(o<this.$lines.cells.length){var p=this.$lines.cells[o++];p.element.style.top=this.$lines.computeLineTop(p.row,e,this.session)+"px"}},this.scrollLines=function(e){var t=this.config;this.config=e;if(this.$lines.pageChanged(t,e))return this.update(e);this.$lines.moveContainer(e);var n=e.lastRow,r=t?t.lastRow:-1;if(!t||r<e.firstRow)return this.update(e);if(n<t.firstRow)return this.update(e);if(!t||t.lastRow<e.firstRow)return this.update(e);if(e.lastRow<t.firstRow)return this.update(e);if(t.firstRow<e.firstRow)for(var i=this.session.getFoldedRowCount(t.firstRow,e.firstRow-1);i>0;i--)this.$lines.shift();if(t.lastRow>e.lastRow)for(var i=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);i>0;i--)this.$lines.pop();e.firstRow<t.firstRow&&this.$lines.unshift(this.$renderLinesFragment(e,e.firstRow,t.firstRow-1)),e.lastRow>t.lastRow&&this.$lines.push(this.$renderLinesFragment(e,t.lastRow+1,e.lastRow))},this.$renderLinesFragment=function(e,t,n){var r=[],s=t,o=this.session.getNextFoldLine(s),u=o?o.start.row:Infinity;for(;;){s>u&&(s=o.end.row+1,o=this.session.getNextFoldLine(s,o),u=o?o.start.row:Infinity);if(s>n)break;var a=this.$lines.createCell(s,e,this.session),f=a.element;this.dom.removeChildren(f),i.setStyle(f.style,"height",this.$lines.computeLineHeight(s,e,this.session)+"px"),i.setStyle(f.style,"top",this.$lines.computeLineTop(s,e,this.session)+"px"),this.$renderLine(f,s,s==u?o:!1),this.$useLineGroups()?f.className="ace_line_group":f.className="ace_line",r.push(a),s++}return r},this.update=function(e){this.$lines.moveContainer(e),this.config=e;var t=e.firstRow,n=e.lastRow,r=this.$lines;while(r.getLength())r.pop();r.push(this.$renderLinesFragment(e,t,n))},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(e,t,n,r){var i=this,o=/(\t)|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\uFEFF\uFFF9-\uFFFC]+)|(\u3000)|([\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF])/g,u=this.dom.createFragment(this.element),a,f=0;while(a=o.exec(r)){var l=a[1],c=a[2],h=a[3],p=a[4],d=a[5];if(!i.showInvisibles&&c)continue;var v=f!=a.index?r.slice(f,a.index):"";f=a.index+a[0].length,v&&u.appendChild(this.dom.createTextNode(v,this.element));if(l){var m=i.session.getScreenTabSize(t+a.index);u.appendChild(i.$tabStrings[m].cloneNode(!0)),t+=m-1}else if(c)if(i.showInvisibles){var g=this.dom.createElement("span");g.className="ace_invisible ace_invisible_space",g.textContent=s.stringRepeat(i.SPACE_CHAR,c.length),u.appendChild(g)}else u.appendChild(this.com.createTextNode(c,this.element));else if(h){var g=this.dom.createElement("span");g.className="ace_invisible ace_invisible_space ace_invalid",g.textContent=s.stringRepeat(i.SPACE_CHAR,h.length),u.appendChild(g)}else if(p){var y=i.showInvisibles?i.SPACE_CHAR:"";t+=1;var g=this.dom.createElement("span");g.style.width=i.config.characterWidth*2+"px",g.className=i.showInvisibles?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",g.textContent=i.showInvisibles?i.SPACE_CHAR:"",u.appendChild(g)}else if(d){t+=1;var g=this.dom.createElement("span");g.style.width=i.config.characterWidth*2+"px",g.className="ace_cjk",g.textContent=d,u.appendChild(g)}}u.appendChild(this.dom.createTextNode(f?r.slice(f):r,this.element));if(!this.$textToken[n.type]){var b="ace_"+n.type.replace(/\./g," ace_"),g=this.dom.createElement("span");n.type=="fold"&&(g.style.width=n.value.length*this.config.characterWidth+"px"),g.className=b,g.appendChild(u),e.appendChild(g)}else e.appendChild(u);return t+r.length},this.renderIndentGuide=function(e,t,n){var r=t.search(this.$indentGuideRe);if(r<=0||r>=n)return t;if(t[0]==" "){r-=r%this.tabSize;var i=r/this.tabSize;for(var s=0;s<i;s++)e.appendChild(this.$tabStrings[" "].cloneNode(!0));return t.substr(r)}if(t[0]==" "){for(var s=0;s<r;s++)e.appendChild(this.$tabStrings[" "].cloneNode(!0));return t.substr(r)}return t},this.$createLineElement=function(e){var t=this.dom.createElement("div");return t.className="ace_line",t.style.height=this.config.lineHeight+"px",t},this.$renderWrappedLine=function(e,t,n){var r=0,i=0,o=n[0],u=0,a=this.$createLineElement();e.appendChild(a);for(var f=0;f<t.length;f++){var l=t[f],c=l.value;if(f==0&&this.displayIndentGuides){r=c.length,c=this.renderIndentGuide(a,c,o);if(!c)continue;r-=c.length}if(r+c.length<o)u=this.$renderToken(a,u,l,c),r+=c.length;else{while(r+c.length>=o)u=this.$renderToken(a,u,l,c.substring(0,o-r)),c=c.substring(o-r),r=o,a=this.$createLineElement(),e.appendChild(a),a.appendChild(this.dom.createTextNode(s.stringRepeat("\u00a0",n.indent),this.element)),i++,u=0,o=n[i]||Number.MAX_VALUE;c.length!=0&&(r+=c.length,u=this.$renderToken(a,u,l,c))}}n[n.length-1]>this.MAX_LINE_LENGTH&&this.$renderOverflowMessage(a,u,null,"",!0)},this.$renderSimpleLine=function(e,t){var n=0,r=t[0],i=r.value;this.displayIndentGuides&&(i=this.renderIndentGuide(e,i)),i&&(n=this.$renderToken(e,n,r,i));for(var s=1;s<t.length;s++){r=t[s],i=r.value;if(n+i.length>this.MAX_LINE_LENGTH)return this.$renderOverflowMessage(e,n,r,i);n=this.$renderToken(e,n,r,i)}},this.$renderOverflowMessage=function(e,t,n,r,i){n&&this.$renderToken(e,t,n,r.slice(0,this.MAX_LINE_LENGTH-t));var s=this.dom.createElement("span");s.className="ace_inline_button ace_keyword ace_toggle_wrap",s.textContent=i?"<hide>":"<click to see more...>",e.appendChild(s)},this.$renderLine=function(e,t,n){!n&&n!=0&&(n=this.session.getFoldLine(t));if(n)var r=this.$getFoldLineTokens(t,n);else var r=this.session.getTokens(t);var i=e;if(r.length){var s=this.session.getRowSplitData(t);if(s&&s.length){this.$renderWrappedLine(e,r,s);var i=e.lastChild}else{var i=e;this.$useLineGroups()&&(i=this.$createLineElement(),e.appendChild(i)),this.$renderSimpleLine(i,r)}}else this.$useLineGroups()&&(i=this.$createLineElement(),e.appendChild(i));if(this.showInvisibles&&i){n&&(t=n.end.row);var o=this.dom.createElement("span");o.className="ace_invisible ace_invisible_eol",o.textContent=t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,i.appendChild(o)}},this.$getFoldLineTokens=function(e,t){function i(e,t,n){var i=0,s=0;while(s+e[i].value.length<t){s+=e[i].value.length,i++;if(i==e.length)return}if(s!=t){var o=e[i].value.substring(t-s);o.length>n-t&&(o=o.substring(0,n-t)),r.push({type:e[i].type,value:o}),s=t+o.length,i+=1}while(s<n&&i<e.length){var o=e[i].value;o.length+s>n?r.push({type:e[i].type,value:o.substring(0,n-s)}):r.push(e[i]),s+=o.length,i+=1}}var n=this.session,r=[],s=n.getTokens(e);return t.walk(function(e,t,o,u,a){e!=null?r.push({type:"fold",value:e}):(a&&(s=n.getTokens(t)),s.length&&i(s,u,o))},t.end.row,this.session.getLine(t.end.row).length),r},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){}}).call(a.prototype),t.Text=a}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../lib/dom"),i=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),r.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateOpacity.bind(this)};(function(){this.$updateOpacity=function(e){var t=this.cursors;for(var n=t.length;n--;)r.setStyle(t[n].style,"opacity",e?"":"0")},this.$startCssAnimation=function(){var e=this.cursors;for(var t=e.length;t--;)e[t].style.animationDuration=this.blinkInterval+"ms";setTimeout(function(){r.addCssClass(this.element,"ace_animate-blinking")}.bind(this))},this.$stopCssAnimation=function(){r.removeCssClass(this.element,"ace_animate-blinking")},this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},this.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},this.setSmoothBlinking=function(e){e!=this.smoothBlinking&&(this.smoothBlinking=e,r.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.restartTimer())},this.addCursor=function(){var e=r.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},this.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},this.hideCursor=function(){this.isVisible=!1,r.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,r.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){var e=this.$updateCursors;clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.$stopCssAnimation(),this.smoothBlinking&&r.removeCssClass(this.element,"ace_smooth-blinking"),e(!0);if(!this.isBlinking||!this.blinkInterval||!this.isVisible){this.$stopCssAnimation();return}this.smoothBlinking&&setTimeout(function(){r.addCssClass(this.element,"ace_smooth-blinking")}.bind(this));if(r.HAS_CSS_ANIMATION)this.$startCssAnimation();else{var t=function(){this.timeoutId=setTimeout(function(){e(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){e(!0),t()},this.blinkInterval),t()}},this.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var n=this.session.documentToScreenPosition(e),r=this.$padding+(this.session.$bidiHandler.isBidiRow(n.row,e.row)?this.session.$bidiHandler.getPosLeft(n.column):n.column*this.config.characterWidth),i=(n.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:r,top:i}},this.isCursorInView=function(e,t){return e.top>=0&&e.top<t.maxHeight},this.update=function(e){this.config=e;var t=this.session.$selectionMarkers,n=0,i=0;if(t===undefined||t.length===0)t=[{cursor:null}];for(var n=0,s=t.length;n<s;n++){var o=this.getPixelPosition(t[n].cursor,!0);if((o.top>e.height+e.offset||o.top<0)&&n>1)continue;var u=this.cursors[i++]||this.addCursor(),a=u.style;this.drawCursor?this.drawCursor(u,o,e,t[n],this.session):this.isCursorInView(o,e)?(r.setStyle(a,"display","block"),r.translate(u,o.left,o.top),r.setStyle(a,"width",Math.round(e.characterWidth)+"px"),r.setStyle(a,"height",e.lineHeight+"px")):r.setStyle(a,"display","none")}while(this.cursors.length>i)this.removeCursor();var f=this.session.getOverwrite();this.$setOverwrite(f),this.$pixelPos=o,this.restartTimer()},this.drawCursor=null,this.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?r.addCssClass(this.element,"ace_overwrite-cursors"):r.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(i.prototype),t.Cursor=i}),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./lib/event"),o=e("./lib/event_emitter").EventEmitter,u=32768,a=function(e){this.element=i.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix,this.inner=i.createElement("div"),this.inner.className="ace_scrollbar-inner",this.inner.textContent="\u00a0",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,s.addListener(this.element,"scroll",this.onScroll.bind(this)),s.addListener(this.element,"mousedown",s.preventDefault)};(function(){r.implement(this,o),this.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1}}).call(a.prototype);var f=function(e,t){a.call(this,e),this.scrollTop=0,this.scrollHeight=0,t.$scrollbarWidth=this.width=i.scrollbarWidth(e.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px",this.$minWidth=0};r.inherits(f,a),function(){this.classSuffix="-v",this.onScroll=function(){if(!this.skipEvent){this.scrollTop=this.element.scrollTop;if(this.coeff!=1){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},this.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},this.setHeight=function(e){this.element.style.height=e+"px"},this.setInnerHeight=this.setScrollHeight=function(e){this.scrollHeight=e,e>u?(this.coeff=u/e,e=u):this.coeff!=1&&(this.coeff=1),this.inner.style.height=e+"px"},this.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)}}.call(f.prototype);var l=function(e,t){a.call(this,e),this.scrollLeft=0,this.height=t.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"};r.inherits(l,a),function(){this.classSuffix="-h",this.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},this.getHeight=function(){return this.isVisible?this.height:0},this.setWidth=function(e){this.element.style.width=e+"px"},this.setInnerWidth=function(e){this.inner.style.width=e+"px"},this.setScrollWidth=function(e){this.inner.style.width=e+"px"},this.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)}}.call(l.prototype),t.ScrollBar=f,t.ScrollBarV=f,t.ScrollBarH=l,t.VScrollBar=f,t.HScrollBar=l}),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(e,t,n){"use strict";var r=e("./lib/event"),i=function(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.$recursionLimit=2,this.window=t||window;var n=this;this._flush=function(e){n.pending=!1;var t=n.changes;t&&(r.blockIdle(100),n.changes=0,n.onRender(t));if(n.changes){if(n.$recursionLimit--<0)return;n.schedule()}else n.$recursionLimit=2}};(function(){this.schedule=function(e){this.changes=this.changes|e,this.changes&&!this.pending&&(r.nextFrame(this._flush),this.pending=!0)},this.clear=function(e){var t=this.changes;return this.changes=0,t}}).call(i.prototype),t.RenderLoop=i}),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/dom"),s=e("../lib/lang"),o=e("../lib/event"),u=e("../lib/useragent"),a=e("../lib/event_emitter").EventEmitter,f=256,l=typeof ResizeObserver=="function",c=200,h=t.FontMetrics=function(e){this.el=i.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=i.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=i.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),this.$measureNode.innerHTML=s.stringRepeat("X",f),this.$characterSize={width:0,height:0},l?this.$addObserver():this.checkForSizeChanges()};(function(){r.implement(this,a),this.$characterSize={width:0,height:0},this.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",u.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},this.checkForSizeChanges=function(e){e===undefined&&(e=this.$measureSizes());if(e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},this.$addObserver=function(){var e=this;this.$observer=new window.ResizeObserver(function(t){var n=t[0].contentRect;e.checkForSizeChanges({height:n.height,width:n.width/f})}),this.$observer.observe(this.$measureNode)},this.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer||this.$observer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=o.onIdle(function t(){e.checkForSizeChanges(),o.onIdle(t,500)},500)},this.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},this.$measureSizes=function(e){var t={height:(e||this.$measureNode).clientHeight,width:(e||this.$measureNode).clientWidth/f};return t.width===0||t.height===0?null:t},this.$measureCharWidth=function(e){this.$main.innerHTML=s.stringRepeat(e,f);var t=this.$main.getBoundingClientRect();return t.width/f},this.getCharacterWidth=function(e){var t=this.charSizes[e];return t===undefined&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$observer&&this.$observer.disconnect(),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)},this.$getZoom=function e(t){return t?(window.getComputedStyle(t).zoom||1)*e(t.parentElement):1},this.$initTransformMeasureNodes=function(){var e=function(e,t){return["div",{style:"position: absolute;top:"+e+"px;left:"+t+"px;"}]};this.els=i.buildDom([e(0,0),e(c,0),e(0,c),e(c,c)],this.el)},this.transformCoordinates=function(e,t){function r(e,t,n){var r=e[1]*t[0]-e[0]*t[1];return[(-t[1]*n[0]+t[0]*n[1])/r,(+e[1]*n[0]-e[0]*n[1])/r]}function i(e,t){return[e[0]-t[0],e[1]-t[1]]}function s(e,t){return[e[0]+t[0],e[1]+t[1]]}function o(e,t){return[e*t[0],e*t[1]]}function u(e){var t=e.getBoundingClientRect();return[t.left,t.top]}if(e){var n=this.$getZoom(this.el);e=o(1/n,e)}this.els||this.$initTransformMeasureNodes();var a=u(this.els[0]),f=u(this.els[1]),l=u(this.els[2]),h=u(this.els[3]),p=r(i(h,f),i(h,l),i(s(f,l),s(h,a))),d=o(1+p[0],i(f,a)),v=o(1+p[1],i(l,a));if(t){var m=t,g=p[0]*m[0]/c+p[1]*m[1]/c+1,y=s(o(m[0],d),o(m[1],v));return s(o(1/g/c,y),a)}var b=i(e,a),w=r(i(d,o(p[0],b)),i(v,o(p[1],b)),b);return o(c,w)}}).call(h.prototype)}),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/config","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter","ace/lib/useragent"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./config"),o=e("./layer/gutter").Gutter,u=e("./layer/marker").Marker,a=e("./layer/text").Text,f=e("./layer/cursor").Cursor,l=e("./scrollbar").HScrollBar,c=e("./scrollbar").VScrollBar,h=e("./renderloop").RenderLoop,p=e("./layer/font_metrics").FontMetrics,d=e("./lib/event_emitter").EventEmitter,v='.ace_br1 {border-top-left-radius : 3px;}.ace_br2 {border-top-right-radius : 3px;}.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}.ace_br4 {border-bottom-right-radius: 3px;}.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}.ace_br8 {border-bottom-left-radius : 3px;}.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_editor {position: relative;overflow: hidden;font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'source-code-pro\', monospace;direction: ltr;text-align: left;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);}.ace_scroller {position: absolute;overflow: hidden;top: 0;bottom: 0;background-color: inherit;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;cursor: text;}.ace_content {position: absolute;box-sizing: border-box;min-width: 100%;contain: style size layout;}.ace_dragging .ace_scroller:before{position: absolute;top: 0;left: 0;right: 0;bottom: 0;content: \'\';background: rgba(250, 250, 250, 0.01);z-index: 1000;}.ace_dragging.ace_dark .ace_scroller:before{background: rgba(0, 0, 0, 0.01);}.ace_selecting, .ace_selecting * {cursor: text !important;}.ace_gutter {position: absolute;overflow : hidden;width: auto;top: 0;bottom: 0;left: 0;cursor: default;z-index: 4;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;contain: style size layout;}.ace_gutter-active-line {position: absolute;left: 0;right: 0;}.ace_scroller.ace_scroll-left {box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;}.ace_gutter-cell {position: absolute;top: 0;left: 0;right: 0;padding-left: 19px;padding-right: 6px;background-repeat: no-repeat;}.ace_gutter-cell.ace_error {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: 2px center;}.ace_gutter-cell.ace_warning {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");background-position: 2px center;}.ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");background-position: 2px center;}.ace_dark .ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");}.ace_scrollbar {contain: strict;position: absolute;right: 0;bottom: 0;z-index: 6;}.ace_scrollbar-inner {position: absolute;cursor: text;left: 0;top: 0;}.ace_scrollbar-v{overflow-x: hidden;overflow-y: scroll;top: 0;}.ace_scrollbar-h {overflow-x: scroll;overflow-y: hidden;left: 0;}.ace_print-margin {position: absolute;height: 100%;}.ace_text-input {position: absolute;z-index: 0;width: 0.5em;height: 1em;opacity: 0;background: transparent;-moz-appearance: none;appearance: none;border: none;resize: none;outline: none;overflow: hidden;font: inherit;padding: 0 1px;margin: 0 -1px;contain: strict;-ms-user-select: text;-moz-user-select: text;-webkit-user-select: text;user-select: text;white-space: pre!important;}.ace_text-input.ace_composition {background: transparent;color: inherit;z-index: 1000;opacity: 1;}.ace_composition_placeholder { color: transparent }.ace_composition_marker { border-bottom: 1px solid;position: absolute;border-radius: 0;margin-top: 1px;}[ace_nocontext=true] {transform: none!important;filter: none!important;perspective: none!important;clip-path: none!important;mask : none!important;contain: none!important;perspective: none!important;mix-blend-mode: initial!important;z-index: auto;}.ace_layer {z-index: 1;position: absolute;overflow: hidden;word-wrap: normal;white-space: pre;height: 100%;width: 100%;box-sizing: border-box;pointer-events: none;}.ace_gutter-layer {position: relative;width: auto;text-align: right;pointer-events: auto;height: 1000000px;contain: style size layout;}.ace_text-layer {font: inherit !important;position: absolute;height: 1000000px;width: 1000000px;contain: style size layout;}.ace_text-layer > .ace_line, .ace_text-layer > .ace_line_group {contain: style size layout;position: absolute;top: 0;left: 0;right: 0;}.ace_hidpi .ace_text-layer,.ace_hidpi .ace_gutter-layer,.ace_hidpi .ace_content,.ace_hidpi .ace_gutter {contain: strict;will-change: transform;}.ace_hidpi .ace_text-layer > .ace_line, .ace_hidpi .ace_text-layer > .ace_line_group {contain: strict;}.ace_cjk {display: inline-block;text-align: center;}.ace_cursor-layer {z-index: 4;}.ace_cursor {z-index: 4;position: absolute;box-sizing: border-box;border-left: 2px solid;transform: translatez(0);}.ace_multiselect .ace_cursor {border-left-width: 1px;}.ace_slim-cursors .ace_cursor {border-left-width: 1px;}.ace_overwrite-cursors .ace_cursor {border-left-width: 0;border-bottom: 1px solid;}.ace_hidden-cursors .ace_cursor {opacity: 0.2;}.ace_smooth-blinking .ace_cursor {transition: opacity 0.18s;}.ace_animate-blinking .ace_cursor {animation-duration: 1000ms;animation-timing-function: step-end;animation-name: blink-ace-animate;animation-iteration-count: infinite;}.ace_animate-blinking.ace_smooth-blinking .ace_cursor {animation-duration: 1000ms;animation-timing-function: ease-in-out;animation-name: blink-ace-animate-smooth;}@keyframes blink-ace-animate {from, to { opacity: 1; }60% { opacity: 0; }}@keyframes blink-ace-animate-smooth {from, to { opacity: 1; }45% { opacity: 1; }60% { opacity: 0; }85% { opacity: 0; }}.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {position: absolute;z-index: 3;}.ace_marker-layer .ace_selection {position: absolute;z-index: 5;}.ace_marker-layer .ace_bracket {position: absolute;z-index: 6;}.ace_marker-layer .ace_active-line {position: absolute;z-index: 2;}.ace_marker-layer .ace_selected-word {position: absolute;z-index: 4;box-sizing: border-box;}.ace_line .ace_fold {box-sizing: border-box;display: inline-block;height: 11px;margin-top: -2px;vertical-align: middle;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");background-repeat: no-repeat, repeat-x;background-position: center center, top left;color: transparent;border: 1px solid black;border-radius: 2px;cursor: pointer;pointer-events: auto;}.ace_dark .ace_fold {}.ace_fold:hover{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");}.ace_tooltip {background-color: #FFF;background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));border: 1px solid gray;border-radius: 1px;box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);color: black;max-width: 100%;padding: 3px 4px;position: fixed;z-index: 999999;box-sizing: border-box;cursor: default;white-space: pre;word-wrap: break-word;line-height: normal;font-style: normal;font-weight: normal;letter-spacing: normal;pointer-events: none;}.ace_folding-enabled > .ace_gutter-cell {padding-right: 13px;}.ace_fold-widget {box-sizing: border-box;margin: 0 -12px 0 1px;display: none;width: 11px;vertical-align: top;background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: center;border-radius: 3px;border: 1px solid transparent;cursor: pointer;}.ace_folding-enabled .ace_fold-widget {display: inline-block; }.ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");}.ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");}.ace_fold-widget:hover {border: 1px solid rgba(0, 0, 0, 0.3);background-color: rgba(255, 255, 255, 0.2);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);}.ace_fold-widget:active {border: 1px solid rgba(0, 0, 0, 0.4);background-color: rgba(0, 0, 0, 0.05);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);}.ace_dark .ace_fold-widget {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");}.ace_dark .ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget:hover {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);background-color: rgba(255, 255, 255, 0.1);}.ace_dark .ace_fold-widget:active {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);}.ace_inline_button {border: 1px solid lightgray;display: inline-block;margin: -1px 8px;padding: 0 5px;pointer-events: auto;cursor: pointer;}.ace_inline_button:hover {border-color: gray;background: rgba(200,200,200,0.2);display: inline-block;pointer-events: auto;}.ace_fold-widget.ace_invalid {background-color: #FFB4B4;border-color: #DE5555;}.ace_fade-fold-widgets .ace_fold-widget {transition: opacity 0.4s ease 0.05s;opacity: 0;}.ace_fade-fold-widgets:hover .ace_fold-widget {transition: opacity 0.05s ease 0.05s;opacity:1;}.ace_underline {text-decoration: underline;}.ace_bold {font-weight: bold;}.ace_nobold .ace_bold {font-weight: normal;}.ace_italic {font-style: italic;}.ace_error-marker {background-color: rgba(255, 0, 0,0.2);position: absolute;z-index: 9;}.ace_highlight-marker {background-color: rgba(255, 255, 0,0.2);position: absolute;z-index: 8;}',m=e("./lib/useragent"),g=m.isIE;i.importCssString(v,"ace_editor.css");var y=function(e,t){var n=this;this.container=e||i.createElement("div"),i.addCssClass(this.container,"ace_editor"),i.HI_DPI&&i.addCssClass(this.container,"ace_hidpi"),this.setTheme(t),this.$gutter=i.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden",!0),this.scroller=i.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=i.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new o(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new u(this.content);var r=this.$textLayer=new a(this.content);this.canvas=r.element,this.$markerFront=new u(this.content),this.$cursorLayer=new f(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new c(this.container,this),this.scrollBarH=new l(this.container,this),this.scrollBarV.addEventListener("scroll",function(e){n.$scrollAnimation||n.session.setScrollTop(e.data-n.scrollMargin.top)}),this.scrollBarH.addEventListener("scroll",function(e){n.$scrollAnimation||n.session.setScrollLeft(e.data-n.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new p(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.addEventListener("changeCharacterSize",function(e){n.updateCharacterSize(),n.onResize(!0,n.gutterWidth,n.$size.width,n.$size.height),n._signal("changeCharacterSize",e)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.margin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$keepTextAreaAtCursor=!m.isIOS,this.$loop=new h(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),s.resetOptions(this),s._signal("renderer",this)};(function(){this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,r.implement(this,d),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin()},this.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e);if(!e)return;this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode)},this.updateLines=function(e,t,n){t===undefined&&(t=Infinity),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRow<t&&(this.$changedLines.lastRow=t)):this.$changedLines={firstRow:e,lastRow:t};if(this.$changedLines.lastRow<this.layerConfig.firstRow){if(!n)return;this.$changedLines.lastRow=this.layerConfig.lastRow}if(this.$changedLines.firstRow>this.layerConfig.lastRow)return;this.$loop.schedule(this.CHANGE_LINES)},this.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},this.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.$changes=0,this.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},this.onResize=function(e,t,n,r){if(this.resizing>2)return;this.resizing>0?this.resizing++:this.resizing=e?1:0;var i=this.container;r||(r=i.clientHeight||i.scrollHeight),n||(n=i.clientWidth||i.scrollWidth);var s=this.$updateCachedSize(e,t,n,r);if(!this.$size.scrollerHeight||!n&&!r)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(s|this.$changes,!0):this.$loop.schedule(s|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarV.scrollLeft=this.scrollBarV.scrollTop=null},this.$updateCachedSize=function(e,t,n,r){r-=this.$extraHeight||0;var s=0,o=this.$size,u={width:o.width,height:o.height,scrollerHeight:o.scrollerHeight,scrollerWidth:o.scrollerWidth};r&&(e||o.height!=r)&&(o.height=r,s|=this.CHANGE_SIZE,o.scrollerHeight=o.height,this.$horizScroll&&(o.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",s|=this.CHANGE_SCROLL);if(n&&(e||o.width!=n)){s|=this.CHANGE_SIZE,o.width=n,t==null&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,i.setStyle(this.scrollBarH.element.style,"left",t+"px"),i.setStyle(this.scroller.style,"left",t+this.margin.left+"px"),o.scrollerWidth=Math.max(0,n-t-this.scrollBarV.getWidth()-this.margin.h),i.setStyle(this.$gutter.style,"left",this.margin.left+"px");var a=this.scrollBarV.getWidth()+"px";i.setStyle(this.scrollBarH.element.style,"right",a),i.setStyle(this.scroller.style,"right",a),i.setStyle(this.scroller.style,"bottom",this.scrollBarH.getHeight());if(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)s|=this.CHANGE_FULL}return o.$dirty=!n||!r,s&&this._signal("resize",u),s},this.onGutterResize=function(e){var t=this.$showGutter?e:0;t!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,t,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):this.$computeLayerConfig()},this.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-this.$padding*2,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(e){this.setOption("showInvisibles",e),this.session.$bidiHandler.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.getOption("showInvisibles")},this.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},this.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},this.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},this.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},this.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},this.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},this.getShowGutter=function(){return this.getOption("showGutter")},this.setShowGutter=function(e){return this.setOption("showGutter",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.$updatePrintMargin=function(){if(!this.$showPrintMargin&&!this.$printMarginEl)return;if(!this.$printMarginEl){var e=i.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=i.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=Math.round(this.characterWidth*this.$printMarginColumn+this.$padding)+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&this.session.$wrap==-1&&this.adjustWrapLimit()},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.scroller},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){if(this.$isMousePressed)return;var e=this.textarea.style,t=this.$composition;if(!this.$keepTextAreaAtCursor&&!t){i.translate(this.textarea,-100,0);return}var n=this.$cursorLayer.$pixelPos;if(!n)return;t&&t.markerRange&&(n=this.$cursorLayer.getPixelPosition(t.markerRange.start,!0));var r=this.layerConfig,s=n.top,o=n.left;s-=r.offset;var u=t&&t.useTextareaForIME?this.lineHeight:g?0:1;if(s<0||s>r.height-u){i.translate(this.textarea,0,0);return}var a=1;if(!t)s+=this.lineHeight;else if(t.useTextareaForIME){var f=this.textarea.value;a=this.characterWidth*this.session.$getStringScreenWidth(f)[0],u+=2}else s+=this.lineHeight+2;o-=this.scrollLeft,o>this.$size.scrollerWidth-a&&(o=this.$size.scrollerWidth-a),o+=this.gutterWidth+this.margin.left,i.setStyle(e,"height",u+"px"),i.setStyle(e,"width",a+"px"),i.translate(this.textarea,Math.min(o,this.$size.scrollerWidth-a),Math.min(s,this.$size.height-u))},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)},this.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow,n=this.session.documentToScreenRow(t,0)*e.lineHeight;return n-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.setScrollMargin=function(e,t,n,r){var i=this.scrollMargin;i.top=e|0,i.bottom=t|0,i.right=r|0,i.left=n|0,i.v=i.top+i.bottom,i.h=i.left+i.right,i.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-i.top),this.updateFull()},this.setMargin=function(e,t,n,r){var i=this.margin;i.top=e|0,i.bottom=t|0,i.right=r|0,i.left=n|0,i.v=i.top+i.bottom,i.h=i.left+i.right,this.$updateCachedSize(!0,this.gutterWidth,this.$size.width,this.$size.height),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},this.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},this.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},this.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},this.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},this.$frozen=!1,this.freeze=function(){this.$frozen=!0},this.unfreeze=function(){this.$frozen=!1},this.$renderChanges=function(e,t){this.$changes&&(e|=this.$changes,this.$changes=0);if(!this.session||!this.container.offsetWidth||this.$frozen||!e&&!t){this.$changes|=e;return}if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender"),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var n=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){e|=this.$computeLayerConfig()|this.$loop.clear();if(n.firstRow!=this.layerConfig.firstRow&&n.firstRowScreen==this.layerConfig.firstRowScreen){var r=this.scrollTop+(n.firstRow-this.layerConfig.firstRow)*this.lineHeight;r>0&&(this.scrollTop=r,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig()|this.$loop.clear())}n=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),i.translate(this.content,-this.scrollLeft,-n.offset);var s=n.width+2*this.$padding+"px",o=n.minHeight+"px";i.setStyle(this.content.style,"width",s),i.setStyle(this.content.style,"height",o)}e&this.CHANGE_H_SCROLL&&(i.translate(this.content,-this.scrollLeft,-n.offset),this.scroller.className=this.scrollLeft<=0?"ace_scroller":"ace_scroller ace_scroll-left");if(e&this.CHANGE_FULL){this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this._signal("afterRender");return}if(e&this.CHANGE_SCROLL){e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(n):this.$textLayer.scrollLines(n),this.$showGutter&&(e&this.CHANGE_GUTTER||e&this.CHANGE_LINES?this.$gutterLayer.update(n):this.$gutterLayer.scrollLines(n)),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this._signal("afterRender");return}e&this.CHANGE_TEXT?(this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n)):e&this.CHANGE_LINES?(this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(n):e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER?this.$showGutter&&this.$gutterLayer.update(n):e&this.CHANGE_CURSOR&&this.$highlightGutterLine&&this.$gutterLayer.updateLineHighlight(n),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(n),this.$moveTextAreaToCursor()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(n),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(n),this._signal("afterRender")},this.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,n=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(n+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&n>this.$maxPixelHeight&&(n=this.$maxPixelHeight);var r=n<=2*this.lineHeight,i=!r&&e>t;if(n!=this.desiredHeight||this.$size.height!=this.desiredHeight||i!=this.$vScroll){i!=this.$vScroll&&(this.$vScroll=i,this.scrollBarV.setVisible(i));var s=this.container.clientWidth;this.container.style.height=n+"px",this.$updateCachedSize(!0,this.$gutterWidth,s,n),this.desiredHeight=n,this._signal("autosize")}},this.$computeLayerConfig=function(){var e=this.session,t=this.$size,n=t.height<=2*this.lineHeight,r=this.session.getScreenLength(),i=r*this.lineHeight,s=this.$getLongestLine(),o=!n&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-s-2*this.$padding<0),u=this.$horizScroll!==o;u&&(this.$horizScroll=o,this.scrollBarH.setVisible(o));var a=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var f=t.scrollerHeight+this.lineHeight,l=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;i+=l;var c=this.scrollMargin;this.session.setScrollTop(Math.max(-c.top,Math.min(this.scrollTop,i-t.scrollerHeight+c.bottom))),this.session.setScrollLeft(Math.max(-c.left,Math.min(this.scrollLeft,s+2*this.$padding-t.scrollerWidth+c.right)));var h=!n&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-i+l<0||this.scrollTop>c.top),p=a!==h;p&&(this.$vScroll=h,this.scrollBarV.setVisible(h));var d=this.scrollTop%this.lineHeight,v=Math.ceil(f/this.lineHeight)-1,m=Math.max(0,Math.round((this.scrollTop-d)/this.lineHeight)),g=m+v,y,b,w=this.lineHeight;m=e.screenToDocumentRow(m,0);var E=e.getFoldLine(m);E&&(m=E.start.row),y=e.documentToScreenRow(m,0),b=e.getRowLength(m)*w,g=Math.min(e.screenToDocumentRow(g,0),e.getLength()-1),f=t.scrollerHeight+e.getRowLength(g)*w+b,d=this.scrollTop-y*w;var S=0;if(this.layerConfig.width!=s||u)S=this.CHANGE_H_SCROLL;if(u||p)S|=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),p&&(s=this.$getLongestLine());return this.layerConfig={width:s,padding:this.$padding,firstRow:m,firstRowScreen:y,lastRow:g,lineHeight:w,characterWidth:this.characterWidth,minHeight:f,maxHeight:i,offset:d,gutterOffset:w?Math.max(0,Math.ceil((d+t.height-t.scrollerHeight)/w)):0,height:this.$size.scrollerHeight},this.session.$bidiHandler&&this.session.$bidiHandler.setContentWidth(s-this.$padding),S},this.$updateLines=function(){if(!this.$changedLines)return;var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var n=this.layerConfig;if(e>n.lastRow+1)return;if(t<n.firstRow)return;if(t===Infinity){this.$showGutter&&this.$gutterLayer.update(n),this.$textLayer.update(n);return}return this.$textLayer.updateLines(n,e,t),!0},this.$getLongestLine=function(){var e=this.session.getScreenWidth();return this.showInvisibles&&!this.session.$useWrapMode&&(e+=1),this.$textLayer&&e>this.$textLayer.MAX_LINE_LENGTH&&(e=this.$textLayer.MAX_LINE_LENGTH+30),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(e*this.characterWidth))},this.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},this.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},this.addGutterDecoration=function(e,t){this.$gutterLayer.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){this.$gutterLayer.removeGutterDecoration(e,t)},this.updateBreakpoints=function(e){this.$loop.schedule(this.CHANGE_GUTTER)},this.setAnnotations=function(e){this.$gutterLayer.setAnnotations(e),this.$loop.schedule(this.CHANGE_GUTTER)},this.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},this.hideCursor=function(){this.$cursorLayer.hideCursor()},this.showCursor=function(){this.$cursorLayer.showCursor()},this.scrollSelectionIntoView=function(e,t,n){this.scrollCursorIntoView(e,n),this.scrollCursorIntoView(t,n)},this.scrollCursorIntoView=function(e,t,n){if(this.$size.scrollerHeight===0)return;var r=this.$cursorLayer.getPixelPosition(e),i=r.left,s=r.top,o=n&&n.top||0,u=n&&n.bottom||0,a=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;a+o>s?(t&&a+o>s+this.lineHeight&&(s-=t*this.$size.scrollerHeight),s===0&&(s=-this.scrollMargin.top),this.session.setScrollTop(s)):a+this.$size.scrollerHeight-u<s+this.lineHeight&&(t&&a+this.$size.scrollerHeight-u<s-this.lineHeight&&(s+=t*this.$size.scrollerHeight),this.session.setScrollTop(s+this.lineHeight+u-this.$size.scrollerHeight));var f=this.scrollLeft;f>i?(i<this.$padding+2*this.layerConfig.characterWidth&&(i=-this.scrollMargin.left),this.session.setScrollLeft(i)):f+this.$size.scrollerWidth<i+this.characterWidth?this.session.setScrollLeft(Math.round(i+this.characterWidth-this.$size.scrollerWidth)):f<=this.$padding&&i-f<this.characterWidth&&this.session.setScrollLeft(0)},this.getScrollTop=function(){return this.session.getScrollTop()},this.getScrollLeft=function(){return this.session.getScrollLeft()},this.getScrollTopRow=function(){return this.scrollTop/this.lineHeight},this.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1)},this.scrollToRow=function(e){this.session.setScrollTop(e*this.lineHeight)},this.alignCursor=function(e,t){typeof e=="number"&&(e={row:e,column:0});var n=this.$cursorLayer.getPixelPosition(e),r=this.$size.scrollerHeight-this.lineHeight,i=n.top-r*(t||0);return this.session.setScrollTop(i),i},this.STEPS=8,this.$calcSteps=function(e,t){var n=0,r=this.STEPS,i=[],s=function(e,t,n){return n*(Math.pow(e-1,3)+1)+t};for(n=0;n<r;++n)i.push(s(n/this.STEPS,e,t-e));return i},this.scrollToLine=function(e,t,n,r){var i=this.$cursorLayer.getPixelPosition({row:e,column:0}),s=i.top;t&&(s-=this.$size.scrollerHeight/2);var o=this.scrollTop;this.session.setScrollTop(s),n!==!1&&this.animateScrolling(o,r)},this.animateScrolling=function(e,t){var n=this.scrollTop;if(!this.$animatedScroll)return;var r=this;if(e==n)return;if(this.$scrollAnimation){var i=this.$scrollAnimation.steps;if(i.length){e=i[0];if(e==n)return}}var s=r.$calcSteps(e,n);this.$scrollAnimation={from:e,to:n,steps:s},clearInterval(this.$timer),r.session.setScrollTop(s.shift()),r.session.$scrollTop=n,this.$timer=setInterval(function(){s.length?(r.session.setScrollTop(s.shift()),r.session.$scrollTop=n):n!=null?(r.session.$scrollTop=-1,r.session.setScrollTop(n),n=null):(r.$timer=clearInterval(r.$timer),r.$scrollAnimation=null,t&&t())},10)},this.scrollToY=function(e){this.scrollTop!==e&&(this.$loop.schedule(this.CHANGE_SCROLL),this.scrollTop=e)},this.scrollToX=function(e){this.scrollLeft!==e&&(this.scrollLeft=e),this.$loop.schedule(this.CHANGE_H_SCROLL)},this.scrollTo=function(e,t){this.session.setScrollTop(t),this.session.setScrollLeft(t)},this.scrollBy=function(e,t){t&&this.session.setScrollTop(this.session.getScrollTop()+t),e&&this.session.setScrollLeft(this.session.getScrollLeft()+e)},this.isScrollableBy=function(e,t){if(t<0&&this.session.getScrollTop()>=1-this.scrollMargin.top)return!0;if(t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom)return!0;if(e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left)return!0;if(e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right)return!0},this.pixelToScreenCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var r=this.$fontMetrics.transformCoordinates([e,t]);e=r[1]-this.gutterWidth-this.margin.left,t=r[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,s=i/this.characterWidth,o=Math.floor((t+this.scrollTop-n.top)/this.lineHeight),u=this.$blockCursor?Math.floor(s):Math.round(s);return{row:o,column:u,side:s-u>0?1:-1,offsetX:i}},this.screenToTextCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var r=this.$fontMetrics.transformCoordinates([e,t]);e=r[1]-this.gutterWidth-this.margin.left,t=r[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,s=i/this.characterWidth,o=this.$blockCursor?Math.floor(s):Math.round(s),u=Math.floor((t+this.scrollTop-n.top)/this.lineHeight);return this.session.screenToDocumentPosition(u,Math.max(o,0),i)},this.textToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=this.session.documentToScreenPosition(e,t),i=this.$padding+(this.session.$bidiHandler.isBidiRow(r.row,e)?this.session.$bidiHandler.getPosLeft(r.column):Math.round(r.column*this.characterWidth)),s=r.row*this.lineHeight;return{pageX:n.left+i-this.scrollLeft,pageY:n.top+s-this.scrollTop}},this.visualizeFocus=function(){i.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){i.removeCssClass(this.container,"ace_focus")},this.showComposition=function(e){this.$composition=e,e.cssText||(e.cssText=this.textarea.style.cssText),e.useTextareaForIME=this.$useTextareaForIME,this.$useTextareaForIME?(i.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor(),this.$cursorLayer.element.style.display="none"):e.markerId=this.session.addMarker(e.markerRange,"ace_composition_marker","text")},this.setCompositionText=function(e){var t=this.session.selection.cursor;this.addToken(e,"composition_placeholder",t.row,t.column),this.$moveTextAreaToCursor()},this.hideComposition=function(){if(!this.$composition)return;this.$composition.markerId&&this.session.removeMarker(this.$composition.markerId),i.removeCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText=this.$composition.cssText,this.$composition=null,this.$cursorLayer.element.style.display=""},this.addToken=function(e,t,n,r){var i=this.session;i.bgTokenizer.lines[n]=null;var s={type:t,value:e},o=i.getTokens(n);if(r==null)o.push(s);else{var u=0;for(var a=0;a<o.length;a++){var f=o[a];u+=f.value.length;if(r<=u){var l=f.value.length-(u-r),c=f.value.slice(0,l),h=f.value.slice(l);o.splice(a,1,{type:f.type,value:c},s,{type:f.type,value:h});break}}}this.updateLines(n,n)},this.setTheme=function(e,t){function o(r){if(n.$themeId!=e)return t&&t();if(!r||!r.cssClass)throw new Error("couldn't load module "+e+" or it didn't call define");r.$id&&(n.$themeId=r.$id),i.importCssString(r.cssText,r.cssClass,n.container),n.theme&&i.removeCssClass(n.container,n.theme.cssClass);var s="padding"in r?r.padding:"padding"in(n.theme||{})?4:n.$padding;n.$padding&&s!=n.$padding&&n.setPadding(s),n.$theme=r.cssClass,n.theme=r,i.addCssClass(n.container,r.cssClass),i.setCssClass(n.container,"ace_dark",r.isDark),n.$size&&(n.$size.width=0,n.$updateSizeAsync()),n._dispatchEvent("themeLoaded",{theme:r}),t&&t()}var n=this;this.$themeId=e,n._dispatchEvent("themeChange",{theme:e});if(!e||typeof e=="string"){var r=e||this.$options.theme.initialValue;s.loadModule(["theme",r],o)}else o(e)},this.getTheme=function(){return this.$themeId},this.setStyle=function(e,t){i.setCssClass(this.container,e,t!==!1)},this.unsetStyle=function(e){i.removeCssClass(this.container,e)},this.setCursorStyle=function(e){i.setStyle(this.scroller.style,"cursor",e)},this.setMouseCursor=function(e){i.setStyle(this.scroller.style,"cursor",e)},this.attachToShadowRoot=function(){i.importCssString(v,"ace_editor.css",this.container)},this.destroy=function(){this.$fontMetrics.destroy(),this.$cursorLayer.destroy()}}).call(y.prototype),s.defineOptions(y.prototype,"renderer",{animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){typeof e=="number"&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},fadeFoldWidgets:{set:function(e){i.setCssClass(this.$gutter,"ace_fade-fold-widgets",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightGutterLine:{set:function(e){this.$gutterLayer.setHighlightGutterLine(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},hScrollBarAlwaysVisible:{set:function(e){(!this.$hScrollBarAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){(!this.$vScrollBarAlwaysVisible||!this.$vScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){typeof e=="number"&&(e+="px"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.$minLines<562949953421311||(this.$minLines=0),this.updateFull()}},maxPixelHeight:{set:function(e){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(e){e=+e||0;if(this.$scrollPastEnd==e)return;this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0},hasCssTransforms:{},useTextareaForIME:{initialValue:!m.isMobile&&!m.isIE}}),t.VirtualRenderer=y}),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(e,t,n){"use strict";function u(e){var t="importScripts('"+i.qualifyURL(e)+"');";try{return new Blob([t],{type:"application/javascript"})}catch(n){var r=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,s=new r;return s.append(t),s.getBlob("application/javascript")}}function a(e){if(typeof Worker=="undefined")return{postMessage:function(){},terminate:function(){}};if(o.get("loadWorkerFromBlob")){var t=u(e),n=window.URL||window.webkitURL,r=n.createObjectURL(t);return new Worker(r)}return new Worker(e)}var r=e("../lib/oop"),i=e("../lib/net"),s=e("../lib/event_emitter").EventEmitter,o=e("../config"),f=function(e){e.postMessage||(e=this.$createWorkerFromOldConfig.apply(this,arguments)),this.$worker=e,this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){r.implement(this,s),this.$createWorkerFromOldConfig=function(t,n,r,i,s){e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl);if(o.get("packaged")||!e.toUrl)i=i||o.moduleUrl(n,"worker");else{var u=this.$normalizePath;i=i||u(e.toUrl("ace/worker/worker.js",null,"_"));var f={};t.forEach(function(t){f[t]=u(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}return this.$worker=a(i),s&&this.send("importScripts",s),this.$worker.postMessage({init:!0,tlns:f,module:n,classname:r}),this.$worker},this.onMessage=function(e){var t=e.data;switch(t.type){case"event":this._signal(t.name,{data:t.data});break;case"call":var n=this.callbacks[t.id];n&&(n(t.data),delete this.callbacks[t.id]);break;case"error":this.reportError(t.data);break;case"log":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return i.qualifyURL(e)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,n){if(n){var r=this.callbackId++;this.callbacks[r]=n,t.push(r)}this.send(e,t)},this.emit=function(e,t){try{t.data&&t.data.err&&(t.data.err={message:t.data.err.message,stack:t.data.err.stack,code:t.data.err.code}),this.$worker.postMessage({event:e,data:{data:t.data}})}catch(n){console.error(n.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call("setValue",[e.getValue()]),e.on("change",this.changeListener)},this.changeListener=function(e){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),e.action=="insert"?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;if(!e)return;this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e})}}).call(f.prototype);var l=function(e,t,n){var r=null,i=!1,u=Object.create(s),a=[],l=new f({messageBuffer:a,terminate:function(){},postMessage:function(e){a.push(e);if(!r)return;i?setTimeout(c):c()}});l.setEmitSync=function(e){i=e};var c=function(){var e=a.shift();e.command?r[e.command].apply(r,e.args):e.event&&u._signal(e.event,e.data)};return u.postMessage=function(e){l.onMessage({data:e})},u.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},u.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},o.loadModule(["worker",t],function(e){r=new e[n](u);while(a.length)c()}),l};t.UIWorkerClient=l,t.WorkerClient=f,t.createWorker=a}),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(e,t,n){"use strict";var r=e("./range").Range,i=e("./lib/event_emitter").EventEmitter,s=e("./lib/oop"),o=function(e,t,n,r,i,s){var o=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=i,this.othersClass=s,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate),this.$others=r,this.$onCursorChange=function(){setTimeout(function(){o.onCursorChange()})},this.$pos=n;var u=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=u.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)};(function(){s.implement(this,i),this.setup=function(){var e=this,t=this.doc,n=this.session;this.selectionBefore=n.selection.toJSON(),n.selection.inMultiSelectMode&&n.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var i=this.pos;i.$insertRight=!0,i.detach(),i.markerId=n.addMarker(new r(i.row,i.column,i.row,i.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(n){var r=t.createAnchor(n.row,n.column);r.$insertRight=!0,r.detach(),e.others.push(r)}),n.setUndoSelect(!1)},this.showOtherMarkers=function(){if(this.othersActive)return;var e=this.session,t=this;this.othersActive=!0,this.others.forEach(function(n){n.markerId=e.addMarker(new r(n.row,n.column,n.row,n.column+t.length),t.othersClass,null,!1)})},this.hideOtherMarkers=function(){if(!this.othersActive)return;this.othersActive=!1;for(var e=0;e<this.others.length;e++)this.session.removeMarker(this.others[e].markerId)},this.onUpdate=function(e){if(this.$updating)return this.updateAnchors(e);var t=e;if(t.start.row!==t.end.row)return;if(t.start.row!==this.pos.row)return;this.$updating=!0;var n=e.action==="insert"?t.end.column-t.start.column:t.start.column-t.end.column,i=t.start.column>=this.pos.column&&t.start.column<=this.pos.column+this.length+1,s=t.start.column-this.pos.column;this.updateAnchors(e),i&&(this.length+=n);if(i&&!this.session.$fromUndo)if(e.action==="insert")for(var o=this.others.length-1;o>=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};this.doc.insertMergedLines(a,e.lines)}else if(e.action==="remove")for(var o=this.others.length-1;o>=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};this.doc.remove(new r(a.row,a.column,a.row,a.column-n))}this.$updating=!1,this.updateMarkers()},this.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},this.updateMarkers=function(){if(this.$updating)return;var e=this,t=this.session,n=function(n,i){t.removeMarker(n.markerId),n.markerId=t.addMarker(new r(n.row,n.column,n.row,n.column+e.length),i,null,!1)};n(this.pos,this.mainClass);for(var i=this.others.length;i--;)n(this.others[i],this.othersClass)},this.onCursorChange=function(e){if(this.$updating||!this.session)return;var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))},this.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.removeEventListener("change",this.$onUpdate),this.session.selection.removeEventListener("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},this.cancel=function(){if(this.$undoStackDepth===-1)return;var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth;for(var n=0;n<t;n++)e.undo(this.session,!0);this.selectionBefore&&this.session.selection.fromJSON(this.selectionBefore)}}).call(o.prototype),t.PlaceHolder=o}),ace.define("ace/mouse/multi_select_handler",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,n){function s(e,t){return e.row==t.row&&e.column==t.column}function o(e){var t=e.domEvent,n=t.altKey,o=t.shiftKey,u=t.ctrlKey,a=e.getAccelKey(),f=e.getButton();u&&i.isMac&&(f=t.button);if(e.editor.inMultiSelectMode&&f==2){e.editor.textInput.onContextMenu(e.domEvent);return}if(!u&&!n&&!a){f===0&&e.editor.inMultiSelectMode&&e.editor.exitMultiSelectMode();return}if(f!==0)return;var l=e.editor,c=l.selection,h=l.inMultiSelectMode,p=e.getDocumentPosition(),d=c.getCursor(),v=e.inSelection()||c.isEmpty()&&s(p,d),m=e.x,g=e.y,y=function(e){m=e.clientX,g=e.clientY},b=l.session,w=l.renderer.pixelToScreenCoordinates(m,g),E=w,S;if(l.$mouseHandler.$enableJumpToDef)u&&n||a&&n?S=o?"block":"add":n&&l.$blockSelectEnabled&&(S="block");else if(a&&!n){S="add";if(!h&&o)return}else n&&l.$blockSelectEnabled&&(S="block");S&&i.isMac&&t.ctrlKey&&l.$mouseHandler.cancelContextMenu();if(S=="add"){if(!h&&v)return;if(!h){var x=c.toOrientedRange();l.addSelectionMarker(x)}var T=c.rangeList.rangeAtPoint(p);l.inVirtualSelectionMode=!0,o&&(T=null,x=c.ranges[0]||x,l.removeSelectionMarker(x)),l.once("mouseup",function(){var e=c.toOrientedRange();T&&e.isEmpty()&&s(T.cursor,e.cursor)?c.substractPoint(e.cursor):(o?c.substractPoint(x.cursor):x&&(l.removeSelectionMarker(x),c.addRange(x)),c.addRange(e)),l.inVirtualSelectionMode=!1})}else if(S=="block"){e.stop(),l.inVirtualSelectionMode=!0;var N,C=[],k=function(){var e=l.renderer.pixelToScreenCoordinates(m,g),t=b.screenToDocumentPosition(e.row,e.column,e.offsetX);if(s(E,e)&&s(t,c.lead))return;E=e,l.selection.moveToPosition(t),l.renderer.scrollCursorIntoView(),l.removeSelectionMarkers(C),C=c.rectangularRangeBlock(E,w),l.$mouseHandler.$clickSelection&&C.length==1&&C[0].isEmpty()&&(C[0]=l.$mouseHandler.$clickSelection.clone()),C.forEach(l.addSelectionMarker,l),l.updateSelectionMarkers()};h&&!a?c.toSingleRange():!h&&a&&(N=c.toOrientedRange(),l.addSelectionMarker(N)),o?w=b.documentToScreenPosition(c.lead):c.moveToPosition(p),E={row:-1,column:-1};var L=function(e){k(),clearInterval(O),l.removeSelectionMarkers(C),C.length||(C=[c.toOrientedRange()]),N&&(l.removeSelectionMarker(N),c.toSingleRange(N));for(var t=0;t<C.length;t++)c.addRange(C[t]);l.inVirtualSelectionMode=!1,l.$mouseHandler.$clickSelection=null},A=k;r.capture(l.container,y,L);var O=setInterval(function(){A()},20);return e.preventDefault()}}var r=e("../lib/event"),i=e("../lib/useragent");t.onMouseDown=o}),ace.define("ace/commands/multi_select_commands",["require","exports","module","ace/keyboard/hash_handler"],function(e,t,n){t.defaultCommands=[{name:"addCursorAbove",description:"Add cursor above",exec:function(e){e.selectMoreLines(-1)},bindKey:{win:"Ctrl-Alt-Up",mac:"Ctrl-Alt-Up"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorBelow",description:"Add cursor below",exec:function(e){e.selectMoreLines(1)},bindKey:{win:"Ctrl-Alt-Down",mac:"Ctrl-Alt-Down"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorAboveSkipCurrent",description:"Add cursor above (skip current)",exec:function(e){e.selectMoreLines(-1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Up",mac:"Ctrl-Alt-Shift-Up"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorBelowSkipCurrent",description:"Add cursor below (skip current)",exec:function(e){e.selectMoreLines(1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Down",mac:"Ctrl-Alt-Shift-Down"},scrollIntoView:"cursor",readOnly:!0},{name:"selectMoreBefore",description:"Select more before",exec:function(e){e.selectMore(-1)},bindKey:{win:"Ctrl-Alt-Left",mac:"Ctrl-Alt-Left"},scrollIntoView:"cursor",readOnly:!0},{name:"selectMoreAfter",description:"Select more after",exec:function(e){e.selectMore(1)},bindKey:{win:"Ctrl-Alt-Right",mac:"Ctrl-Alt-Right"},scrollIntoView:"cursor",readOnly:!0},{name:"selectNextBefore",description:"Select next before",exec:function(e){e.selectMore(-1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Left",mac:"Ctrl-Alt-Shift-Left"},scrollIntoView:"cursor",readOnly:!0},{name:"selectNextAfter",description:"Select next after",exec:function(e){e.selectMore(1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Right",mac:"Ctrl-Alt-Shift-Right"},scrollIntoView:"cursor",readOnly:!0},{name:"splitIntoLines",description:"Split into lines",exec:function(e){e.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"alignCursors",description:"Align cursors",exec:function(e){e.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",description:"Find all",exec:function(e){e.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],t.multiSelectCommands=[{name:"singleSelection",description:"Single selection",bindKey:"esc",exec:function(e){e.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(e){return e&&e.inMultiSelectMode}}];var r=e("../keyboard/hash_handler").HashHandler;t.keyboardHandler=new r(t.multiSelectCommands)}),ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],function(e,t,n){function h(e,t,n){return c.$options.wrap=!0,c.$options.needle=t,c.$options.backwards=n==-1,c.find(e)}function v(e,t){return e.row==t.row&&e.column==t.column}function m(e){if(e.$multiselectOnSessionChange)return;e.$onAddRange=e.$onAddRange.bind(e),e.$onRemoveRange=e.$onRemoveRange.bind(e),e.$onMultiSelect=e.$onMultiSelect.bind(e),e.$onSingleSelect=e.$onSingleSelect.bind(e),e.$multiselectOnSessionChange=t.onSessionChange.bind(e),e.$checkMultiselectChange=e.$checkMultiselectChange.bind(e),e.$multiselectOnSessionChange(e),e.on("changeSession",e.$multiselectOnSessionChange),e.on("mousedown",o),e.commands.addCommands(f.defaultCommands),g(e)}function g(e){function r(t){n&&(e.renderer.setMouseCursor(""),n=!1)}var t=e.textInput.getElement(),n=!1;u.addListener(t,"keydown",function(t){var i=t.keyCode==18&&!(t.ctrlKey||t.shiftKey||t.metaKey);e.$blockSelectEnabled&&i?n||(e.renderer.setMouseCursor("crosshair"),n=!0):n&&r()}),u.addListener(t,"keyup",r),u.addListener(t,"blur",r)}var r=e("./range_list").RangeList,i=e("./range").Range,s=e("./selection").Selection,o=e("./mouse/multi_select_handler").onMouseDown,u=e("./lib/event"),a=e("./lib/lang"),f=e("./commands/multi_select_commands");t.commands=f.defaultCommands.concat(f.multiSelectCommands);var l=e("./search").Search,c=new l,p=e("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(p.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(e,t){if(!e)return;if(!this.inMultiSelectMode&&this.rangeCount===0){var n=this.toOrientedRange();this.rangeList.add(n),this.rangeList.add(e);if(this.rangeList.ranges.length!=2)return this.rangeList.removeAll(),t||this.fromOrientedRange(e);this.rangeList.removeAll(),this.rangeList.add(n),this.$onAddRange(n)}e.cursor||(e.cursor=e.end);var r=this.rangeList.add(e);return this.$onAddRange(e),r.length&&this.$onRemoveRange(r),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length&&this.$onRemoveRange(e)},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){this.rangeCount=this.rangeList.ranges.length;if(this.rangeCount==1&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var n=e.length;n--;){var r=this.ranges.indexOf(e[n]);this.ranges.splice(r,1)}this._signal("removeRange",{ranges:e}),this.rangeCount===0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),t=t||this.ranges[0],t&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){if(this.rangeList)return;this.rangeList=new r,this.ranges=[],this.rangeCount=0},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var n=this.getRange(),r=this.isBackwards(),s=n.start.row,o=n.end.row;if(s==o){if(r)var u=n.end,a=n.start;else var u=n.start,a=n.end;this.addRange(i.fromPoints(a,a)),this.addRange(i.fromPoints(u,u));return}var f=[],l=this.getLineRange(s,!0);l.start.column=n.start.column,f.push(l);for(var c=s+1;c<o;c++)f.push(this.getLineRange(c,!0));l=this.getLineRange(o,!0),l.end.column=n.end.column,f.push(l),f.forEach(this.addRange,this)}},this.toggleBlockSelection=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var r=this.session.documentToScreenPosition(this.cursor),s=this.session.documentToScreenPosition(this.anchor),o=this.rectangularRangeBlock(r,s);o.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,n){var r=[],s=e.column<t.column;if(s)var o=e.column,u=t.column,a=e.offsetX,f=t.offsetX;else var o=t.column,u=e.column,a=t.offsetX,f=e.offsetX;var l=e.row<t.row;if(l)var c=e.row,h=t.row;else var c=t.row,h=e.row;o<0&&(o=0),c<0&&(c=0),c==h&&(n=!0);var p;for(var d=c;d<=h;d++){var m=i.fromPoints(this.session.screenToDocumentPosition(d,o,a),this.session.screenToDocumentPosition(d,u,f));if(m.isEmpty()){if(p&&v(m.end,p))break;p=m.end}m.cursor=s?m.start:m.end,r.push(m)}l&&r.reverse();if(!n){var g=r.length-1;while(r[g].isEmpty()&&g>0)g--;if(g>0){var y=0;while(r[y].isEmpty())y++}for(var b=g;b>=y;b--)r[b].isEmpty()&&r.splice(b,1)}return r}}.call(s.prototype);var d=e("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(!e.marker)return;this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);t!=-1&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length},this.removeSelectionMarkers=function(e){var t=this.session.$selectionMarkers;for(var n=e.length;n--;){var r=e[n];if(!r.marker)continue;this.session.removeMarker(r.marker);var i=t.indexOf(r);i!=-1&&t.splice(i,1)}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){if(this.inMultiSelectMode)return;this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(f.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onSingleSelect=function(e){if(this.session.multiSelect.inVirtualMode)return;this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(f.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection")},this.$onMultiSelectExec=function(e){var t=e.command,n=e.editor;if(!n.multiSelect)return;if(!t.multiSelectAction){var r=t.exec(n,e.args||{});n.multiSelect.addRange(n.multiSelect.toOrientedRange()),n.multiSelect.mergeOverlappingRanges()}else t.multiSelectAction=="forEach"?r=n.forEachSelection(t,e.args):t.multiSelectAction=="forEachLine"?r=n.forEachSelection(t,e.args,!0):t.multiSelectAction=="single"?(n.exitMultiSelectMode(),r=t.exec(n,e.args||{})):r=t.multiSelectAction(n,e.args||{});return r},this.forEachSelection=function(e,t,n){if(this.inVirtualSelectionMode)return;var r=n&&n.keepOrder,i=n==1||n&&n.$byLines,o=this.session,u=this.selection,a=u.rangeList,f=(r?u:a).ranges,l;if(!f.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var c=u._eventRegistry;u._eventRegistry={};var h=new s(o);this.inVirtualSelectionMode=!0;for(var p=f.length;p--;){if(i)while(p>0&&f[p].start.row==f[p-1].end.row)p--;h.fromOrientedRange(f[p]),h.index=p,this.selection=o.selection=h;var d=e.exec?e.exec(this,t||{}):e(this,t||{});!l&&d!==undefined&&(l=d),h.toOrientedRange(f[p])}h.detach(),this.selection=o.selection=u,this.inVirtualSelectionMode=!1,u._eventRegistry=c,u.mergeOverlappingRanges(),u.ranges[0]&&u.fromOrientedRange(u.ranges[0]);var v=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),v&&v.from==v.to&&this.renderer.animateScrolling(v.from),l},this.exitMultiSelectMode=function(){if(!this.inMultiSelectMode||this.inVirtualSelectionMode)return;this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var t=this.multiSelect.rangeList.ranges,n=[];for(var r=0;r<t.length;r++)n.push(this.session.getTextRange(t[r]));var i=this.session.getDocument().getNewLineCharacter();e=n.join(i),e.length==(n.length-1)*i.length&&(e="")}else this.selection.isEmpty()||(e=this.session.getTextRange(this.getSelectionRange()));return e},this.$checkMultiselectChange=function(e,t){if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var n=this.multiSelect.ranges[0];if(this.multiSelect.isEmpty()&&t==this.multiSelect.anchor)return;var r=t==this.multiSelect.anchor?n.cursor==n.start?n.end:n.start:n.cursor;r.row!=t.row||this.session.$clipPositionToDocument(r.row,r.column).column!=t.column?this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange()):this.multiSelect.mergeOverlappingRanges()}},this.findAll=function(e,t,n){t=t||{},t.needle=e||t.needle;if(t.needle==undefined){var r=this.selection.isEmpty()?this.selection.getWordRange():this.selection.getRange();t.needle=this.session.getTextRange(r)}this.$search.set(t);var i=this.$search.findAll(this.session);if(!i.length)return 0;var s=this.multiSelect;n||s.toSingleRange(i[0]);for(var o=i.length;o--;)s.addRange(i[o],!0);return r&&s.rangeList.rangeAtPoint(r.start)&&s.addRange(r,!0),i.length},this.selectMoreLines=function(e,t){var n=this.selection.toOrientedRange(),r=n.cursor==n.end,s=this.session.documentToScreenPosition(n.cursor);this.selection.$desiredColumn&&(s.column=this.selection.$desiredColumn);var o=this.session.screenToDocumentPosition(s.row+e,s.column);if(!n.isEmpty())var u=this.session.documentToScreenPosition(r?n.end:n.start),a=this.session.screenToDocumentPosition(u.row+e,u.column);else var a=o;if(r){var f=i.fromPoints(o,a);f.cursor=f.start}else{var f=i.fromPoints(a,o);f.cursor=f.end}f.desiredColumn=s.column;if(!this.selection.inMultiSelectMode)this.selection.addRange(n);else if(t)var l=n.cursor;this.selection.addRange(f),l&&this.selection.substractPoint(l)},this.transposeSelections=function(e){var t=this.session,n=t.multiSelect,r=n.ranges;for(var i=r.length;i--;){var s=r[i];if(s.isEmpty()){var o=t.getWordRange(s.start.row,s.start.column);s.start.row=o.start.row,s.start.column=o.start.column,s.end.row=o.end.row,s.end.column=o.end.column}}n.mergeOverlappingRanges();var u=[];for(var i=r.length;i--;){var s=r[i];u.unshift(t.getTextRange(s))}e<0?u.unshift(u.pop()):u.push(u.shift());for(var i=r.length;i--;){var s=r[i],o=s.clone();t.replace(s,u[i]),s.start.row=o.start.row,s.start.column=o.start.column}n.fromOrientedRange(n.ranges[0])},this.selectMore=function(e,t,n){var r=this.session,i=r.multiSelect,s=i.toOrientedRange();if(s.isEmpty()){s=r.getWordRange(s.start.row,s.start.column),s.cursor=e==-1?s.start:s.end,this.multiSelect.addRange(s);if(n)return}var o=r.getTextRange(s),u=h(r,o,e);u&&(u.cursor=e==-1?u.start:u.end,this.session.unfold(u),this.multiSelect.addRange(u),this.renderer.scrollCursorIntoView(null,.5)),t&&this.multiSelect.substractPoint(s.cursor)},this.alignCursors=function(){var e=this.session,t=e.multiSelect,n=t.ranges,r=-1,s=n.filter(function(e){if(e.cursor.row==r)return!0;r=e.cursor.row});if(!n.length||s.length==n.length-1){var o=this.selection.getRange(),u=o.start.row,f=o.end.row,l=u==f;if(l){var c=this.session.getLength(),h;do h=this.session.getLine(f);while(/[=:]/.test(h)&&++f<c);do h=this.session.getLine(u);while(/[=:]/.test(h)&&--u>0);u<0&&(u=0),f>=c&&(f=c-1)}var p=this.session.removeFullLines(u,f);p=this.$reAlignText(p,l),this.session.insert({row:u,column:0},p.join("\n")+"\n"),l||(o.start.column=0,o.end.column=p[p.length-1].length),this.selection.setRange(o)}else{s.forEach(function(e){t.substractPoint(e.cursor)});var d=0,v=Infinity,m=n.map(function(t){var n=t.cursor,r=e.getLine(n.row),i=r.substr(n.column).search(/\S/g);return i==-1&&(i=0),n.column>d&&(d=n.column),i<v&&(v=i),i});n.forEach(function(t,n){var r=t.cursor,s=d-r.column,o=m[n]-v;s>o?e.insert(r,a.stringRepeat(" ",s-o)):e.remove(new i(r.row,r.column,r.row,r.column-s+o)),t.start.column=t.end.column=d,t.start.row=t.end.row=r.row,t.cursor=t.end}),t.fromOrientedRange(n[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}},this.$reAlignText=function(e,t){function u(e){return a.stringRepeat(" ",e)}function f(e){return e[2]?u(i)+e[2]+u(s-e[2].length+o)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function l(e){return e[2]?u(i+s-e[2].length)+e[2]+u(o)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function c(e){return e[2]?u(i)+e[2]+u(o)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}var n=!0,r=!0,i,s,o;return e.map(function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?i==null?(i=t[1].length,s=t[2].length,o=t[3].length,t):(i+s+o!=t[1].length+t[2].length+t[3].length&&(r=!1),i!=t[1].length&&(n=!1),i>t[1].length&&(i=t[1].length),s<t[2].length&&(s=t[2].length),o>t[3].length&&(o=t[3].length),t):[e]}).map(t?f:n?r?l:f:c)}}).call(d.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var n=e.oldSession;n&&(n.multiSelect.off("addRange",this.$onAddRange),n.multiSelect.off("removeRange",this.$onRemoveRange),n.multiSelect.off("multiSelect",this.$onMultiSelect),n.multiSelect.off("singleSelect",this.$onSingleSelect),n.multiSelect.lead.off("change",this.$checkMultiselectChange),n.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=m,e("./config").defineOptions(d.prototype,"editor",{enableMultiselect:{set:function(e){m(this),e?(this.on("changeSession",this.$multiselectOnSessionChange),this.on("mousedown",o)):(this.off("changeSession",this.$multiselectOnSessionChange),this.off("mousedown",o))},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})}),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../../range").Range,i=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);return this.foldingStartMarker.test(r)?"start":t=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(r)?"end":""},this.getFoldWidgetRange=function(e,t,n){return null},this.indentationBlock=function(e,t,n){var i=/\S/,s=e.getLine(t),o=s.search(i);if(o==-1)return;var u=n||s.length,a=e.getLength(),f=t,l=t;while(++t<a){var c=e.getLine(t).search(i);if(c==-1)continue;if(c<=o)break;l=t}if(l>f){var h=e.getLine(l).length;return new r(f,u,l,h)}},this.openingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i+1},u=e.$findClosingBracket(t,o,s);if(!u)return;var a=e.foldWidgets[u.row];return a==null&&(a=e.getFoldWidget(u.row)),a=="start"&&u.row>o.row&&(u.row--,u.column=e.getLine(u.row).length),r.fromPoints(o,u)},this.closingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i},u=e.$findOpeningBracket(t,o);if(!u)return;return u.column++,o.column--,r.fromPoints(u,o)}}).call(i.prototype)}),ace.define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";t.isDark=!1,t.cssClass="ace-tm",t.cssText='.ace-tm .ace_gutter {background: #f0f0f0;color: #333;}.ace-tm .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-tm .ace_fold {background-color: #6B72E6;}.ace-tm {background-color: #FFFFFF;color: black;}.ace-tm .ace_cursor {color: black;}.ace-tm .ace_invisible {color: rgb(191, 191, 191);}.ace-tm .ace_storage,.ace-tm .ace_keyword {color: blue;}.ace-tm .ace_constant {color: rgb(197, 6, 11);}.ace-tm .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-tm .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-tm .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-tm .ace_invalid {background-color: rgba(255, 0, 0, 0.1);color: red;}.ace-tm .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-tm .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-tm .ace_support.ace_type,.ace-tm .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-tm .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-tm .ace_string {color: rgb(3, 106, 7);}.ace-tm .ace_comment {color: rgb(76, 136, 107);}.ace-tm .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-tm .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-tm .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-tm .ace_variable {color: rgb(49, 132, 149);}.ace-tm .ace_xml-pe {color: rgb(104, 104, 91);}.ace-tm .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-tm .ace_heading {color: rgb(12, 7, 255);}.ace-tm .ace_list {color:rgb(185, 6, 144);}.ace-tm .ace_meta.ace_tag {color:rgb(0, 22, 142);}.ace-tm .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-tm .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-tm.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;}.ace-tm .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-tm .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-tm .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-tm .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-tm .ace_gutter-active-line {background-color : #dcdcdc;}.ace-tm .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-tm .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}',t.$id="ace/theme/textmate";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)}),ace.define("ace/line_widgets",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/range"],function(e,t,n){"use strict";function o(e){this.session=e,this.session.widgetManager=this,this.session.getRowLength=this.getRowLength,this.session.$getWidgetScreenLength=this.$getWidgetScreenLength,this.updateOnChange=this.updateOnChange.bind(this),this.renderWidgets=this.renderWidgets.bind(this),this.measureWidgets=this.measureWidgets.bind(this),this.session._changedWidgets=[],this.$onChangeEditor=this.$onChangeEditor.bind(this),this.session.on("change",this.updateOnChange),this.session.on("changeFold",this.updateOnFold),this.session.on("changeEditor",this.$onChangeEditor)}var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./range").Range;(function(){this.getRowLength=function(e){var t;return this.lineWidgets?t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0:t=0,!this.$useWrapMode||!this.$wrapData[e]?1+t:this.$wrapData[e].length+1+t},this.$getWidgetScreenLength=function(){var e=0;return this.lineWidgets.forEach(function(t){t&&t.rowCount&&!t.hidden&&(e+=t.rowCount)}),e},this.$onChangeEditor=function(e){this.attach(e.editor)},this.attach=function(e){e&&e.widgetManager&&e.widgetManager!=this&&e.widgetManager.detach();if(this.editor==e)return;this.detach(),this.editor=e,e&&(e.widgetManager=this,e.renderer.on("beforeRender",this.measureWidgets),e.renderer.on("afterRender",this.renderWidgets))},this.detach=function(e){var t=this.editor;if(!t)return;this.editor=null,t.widgetManager=null,t.renderer.off("beforeRender",this.measureWidgets),t.renderer.off("afterRender",this.renderWidgets);var n=this.session.lineWidgets;n&&n.forEach(function(e){e&&e.el&&e.el.parentNode&&(e._inDocument=!1,e.el.parentNode.removeChild(e.el))})},this.updateOnFold=function(e,t){var n=t.lineWidgets;if(!n||!e.action)return;var r=e.data,i=r.start.row,s=r.end.row,o=e.action=="add";for(var u=i+1;u<s;u++)n[u]&&(n[u].hidden=o);n[s]&&(o?n[i]?n[s].hidden=o:n[i]=n[s]:(n[i]==n[s]&&(n[i]=undefined),n[s].hidden=o))},this.updateOnChange=function(e){var t=this.session.lineWidgets;if(!t)return;var n=e.start.row,r=e.end.row-n;if(r!==0)if(e.action=="remove"){var i=t.splice(n+1,r);i.forEach(function(e){e&&this.removeLineWidget(e)},this),this.$updateRows()}else{var s=new Array(r);s.unshift(n,0),t.splice.apply(t,s),this.$updateRows()}},this.$updateRows=function(){var e=this.session.lineWidgets;if(!e)return;var t=!0;e.forEach(function(e,n){if(e){t=!1,e.row=n;while(e.$oldWidget)e.$oldWidget.row=n,e=e.$oldWidget}}),t&&(this.session.lineWidgets=null)},this.addLineWidget=function(e){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var t=this.session.lineWidgets[e.row];t&&(e.$oldWidget=t,t.el&&t.el.parentNode&&(t.el.parentNode.removeChild(t.el),t._inDocument=!1)),this.session.lineWidgets[e.row]=e,e.session=this.session;var n=this.editor.renderer;e.html&&!e.el&&(e.el=i.createElement("div"),e.el.innerHTML=e.html),e.el&&(i.addCssClass(e.el,"ace_lineWidgetContainer"),e.el.style.position="absolute",e.el.style.zIndex=5,n.container.appendChild(e.el),e._inDocument=!0),e.coverGutter||(e.el.style.zIndex=3),e.pixelHeight==null&&(e.pixelHeight=e.el.offsetHeight),e.rowCount==null&&(e.rowCount=e.pixelHeight/n.layerConfig.lineHeight);var r=this.session.getFoldAt(e.row,0);e.$fold=r;if(r){var s=this.session.lineWidgets;e.row==r.end.row&&!s[r.start.row]?s[r.start.row]=e:e.hidden=!0}return this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows(),this.renderWidgets(null,n),this.onWidgetChanged(e),e},this.removeLineWidget=function(e){e._inDocument=!1,e.session=null,e.el&&e.el.parentNode&&e.el.parentNode.removeChild(e.el);if(e.editor&&e.editor.destroy)try{e.editor.destroy()}catch(t){}if(this.session.lineWidgets){var n=this.session.lineWidgets[e.row];if(n==e)this.session.lineWidgets[e.row]=e.$oldWidget,e.$oldWidget&&this.onWidgetChanged(e.$oldWidget);else while(n){if(n.$oldWidget==e){n.$oldWidget=e.$oldWidget;break}n=n.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows()},this.getWidgetsAtRow=function(e){var t=this.session.lineWidgets,n=t&&t[e],r=[];while(n)r.push(n),n=n.$oldWidget;return r},this.onWidgetChanged=function(e){this.session._changedWidgets.push(e),this.editor&&this.editor.renderer.updateFull()},this.measureWidgets=function(e,t){var n=this.session._changedWidgets,r=t.layerConfig;if(!n||!n.length)return;var i=Infinity;for(var s=0;s<n.length;s++){var o=n[s];if(!o||!o.el)continue;if(o.session!=this.session)continue;if(!o._inDocument){if(this.session.lineWidgets[o.row]!=o)continue;o._inDocument=!0,t.container.appendChild(o.el)}o.h=o.el.offsetHeight,o.fixedWidth||(o.w=o.el.offsetWidth,o.screenWidth=Math.ceil(o.w/r.characterWidth));var u=o.h/r.lineHeight;o.coverLine&&(u-=this.session.getRowLineCount(o.row),u<0&&(u=0)),o.rowCount!=u&&(o.rowCount=u,o.row<i&&(i=o.row))}i!=Infinity&&(this.session._emit("changeFold",{data:{start:{row:i}}}),this.session.lineWidgetWidth=null),this.session._changedWidgets=[]},this.renderWidgets=function(e,t){var n=t.layerConfig,r=this.session.lineWidgets;if(!r)return;var i=Math.min(this.firstRow,n.firstRow),s=Math.max(this.lastRow,n.lastRow,r.length);while(i>0&&!r[i])i--;this.firstRow=n.firstRow,this.lastRow=n.lastRow,t.$cursorLayer.config=n;for(var o=i;o<=s;o++){var u=r[o];if(!u||!u.el)continue;if(u.hidden){u.el.style.top=-100-(u.pixelHeight||0)+"px";continue}u._inDocument||(u._inDocument=!0,t.container.appendChild(u.el));var a=t.$cursorLayer.getPixelPosition({row:o,column:0},!0).top;u.coverLine||(a+=n.lineHeight*this.session.getRowLineCount(u.row)),u.el.style.top=a-n.offset+"px";var f=u.coverGutter?0:t.gutterWidth;u.fixedWidth||(f-=t.scrollLeft),u.el.style.left=f+"px",u.fullWidth&&u.screenWidth&&(u.el.style.minWidth=n.width+2*n.padding+"px"),u.fixedWidth?u.el.style.right=t.scrollBar.getWidth()+"px":u.el.style.right=""}}}).call(o.prototype),t.LineWidgets=o}),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"],function(e,t,n){"use strict";function o(e,t,n){var r=0,i=e.length-1;while(r<=i){var s=r+i>>1,o=n(t,e[s]);if(o>0)r=s+1;else{if(!(o<0))return s;i=s-1}}return-(r+1)}function u(e,t,n){var r=e.getAnnotations().sort(s.comparePoints);if(!r.length)return;var i=o(r,{row:t,column:-1},s.comparePoints);i<0&&(i=-i-1),i>=r.length?i=n>0?0:r.length-1:i===0&&n<0&&(i=r.length-1);var u=r[i];if(!u||!n)return;if(u.row===t){do u=r[i+=n];while(u&&u.row===t);if(!u)return r.slice()}var a=[];t=u.row;do a[n<0?"unshift":"push"](u),u=r[i+=n];while(u&&u.row==t);return a.length&&a}var r=e("../line_widgets").LineWidgets,i=e("../lib/dom"),s=e("../range").Range;t.showErrorMarker=function(e,t){var n=e.session;n.widgetManager||(n.widgetManager=new r(n),n.widgetManager.attach(e));var s=e.getCursorPosition(),o=s.row,a=n.widgetManager.getWidgetsAtRow(o).filter(function(e){return e.type=="errorMarker"})[0];a?a.destroy():o-=t;var f=u(n,o,t),l;if(f){var c=f[0];s.column=(c.pos&&typeof c.column!="number"?c.pos.sc:c.column)||0,s.row=c.row,l=e.renderer.$gutterLayer.$annotations[s.row]}else{if(a)return;l={text:["Looks good!"],className:"ace_ok"}}e.session.unfold(s.row),e.selection.moveToPosition(s);var h={row:s.row,fixedWidth:!0,coverGutter:!0,el:i.createElement("div"),type:"errorMarker"},p=h.el.appendChild(i.createElement("div")),d=h.el.appendChild(i.createElement("div"));d.className="error_widget_arrow "+l.className;var v=e.renderer.$cursorLayer.getPixelPosition(s).left;d.style.left=v+e.renderer.gutterWidth-5+"px",h.el.className="error_widget_wrapper",p.className="error_widget "+l.className,p.innerHTML=l.text.join("<br>"),p.appendChild(i.createElement("div"));var m=function(e,t,n){if(t===0&&(n==="esc"||n==="return"))return h.destroy(),{command:"null"}};h.destroy=function(){if(e.$mouseHandler.isMousePressed)return;e.keyBinding.removeKeyboardHandler(m),n.widgetManager.removeLineWidget(h),e.off("changeSelection",h.destroy),e.off("changeSession",h.destroy),e.off("mouseup",h.destroy),e.off("change",h.destroy)},e.keyBinding.addKeyboardHandler(m),e.on("changeSelection",h.destroy),e.on("changeSession",h.destroy),e.on("mouseup",h.destroy),e.on("change",h.destroy),e.session.widgetManager.addLineWidget(h),h.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:h.el.offsetHeight})},i.importCssString(" .error_widget_wrapper { background: inherit; color: inherit; border:none } .error_widget { border-top: solid 2px; border-bottom: solid 2px; margin: 5px 0; padding: 10px 40px; white-space: pre-wrap; } .error_widget.ace_error, .error_widget_arrow.ace_error{ border-color: #ff5a5a } .error_widget.ace_warning, .error_widget_arrow.ace_warning{ border-color: #F1D817 } .error_widget.ace_info, .error_widget_arrow.ace_info{ border-color: #5a5a5a } .error_widget.ace_ok, .error_widget_arrow.ace_ok{ border-color: #5aaa5a } .error_widget_arrow { position: absolute; border: solid 5px; border-top-color: transparent!important; border-right-color: transparent!important; border-left-color: transparent!important; top: -5px; }","")}),ace.define("ace/ace",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/dom","ace/lib/event","ace/range","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config"],function(e,t,n){"use strict";e("./lib/fixoldbrowsers");var r=e("./lib/dom"),i=e("./lib/event"),s=e("./range").Range,o=e("./editor").Editor,u=e("./edit_session").EditSession,a=e("./undomanager").UndoManager,f=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.require=e,typeof define=="function"&&(t.define=define),t.edit=function(e,n){if(typeof e=="string"){var s=e;e=document.getElementById(s);if(!e)throw new Error("ace.edit can't find div #"+s)}if(e&&e.env&&e.env.editor instanceof o)return e.env.editor;var u="";if(e&&/input|textarea/i.test(e.tagName)){var a=e;u=a.value,e=r.createElement("pre"),a.parentNode.replaceChild(e,a)}else e&&(u=e.textContent,e.innerHTML="");var l=t.createEditSession(u),c=new o(new f(e),l,n),h={document:l,editor:c,onResize:c.resize.bind(c,null)};return a&&(h.textarea=a),i.addListener(window,"resize",h.onResize),c.on("destroy",function(){i.removeListener(window,"resize",h.onResize),h.editor.container.env=null}),c.container.env=c.env=h,c},t.createEditSession=function(e,t){var n=new u(e,t);return n.setUndoManager(new a),n},t.Range=s,t.Editor=o,t.EditSession=u,t.UndoManager=a,t.VirtualRenderer=f,t.version=t.config.version}); (function() {
|
||
ace.require(["ace/ace"], function(a) {
|
||
if (a) {
|
||
a.config.init(true);
|
||
a.define = ace.define;
|
||
}
|
||
if (!window.ace)
|
||
window.ace = a;
|
||
for (var key in a) if (a.hasOwnProperty(key))
|
||
window.ace[key] = a[key];
|
||
window.ace["default"] = window.ace;
|
||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||
module.exports = window.ace;
|
||
}
|
||
});
|
||
})();
|
||
|
||
ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";function a(){var e=o.replace("\\d","\\d\\-"),t={onMatch:function(e,t,n){var r=e.charAt(1)=="/"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:"meta.tag.punctuation."+(r==1?"":"end-")+"tag-open.xml",value:e.slice(0,r)},{type:"meta.tag.tag-name.xml",value:e.substr(r)}]},regex:"</?"+e+"",next:"jsxAttributes",nextState:"jsx"};this.$rules.start.unshift(t);var n={regex:"{",token:"paren.quasi.start",push:"start"};this.$rules.jsx=[n,t,{include:"reference"},{defaultToken:"string"}],this.$rules.jsxAttributes=[{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||"start",[{type:this.token,value:e}]},nextState:"jsx"},n,f("jsxAttributes"),{token:"entity.other.attribute-name.xml",regex:e},{token:"keyword.operator.attribute-equals.xml",regex:"="},{token:"text.tag-whitespace.xml",regex:"\\s+"},{token:"string.attribute-value.xml",regex:"'",stateName:"jsx_attr_q",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',stateName:"jsx_attr_qq",push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},t],this.$rules.reference=[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}]}function f(e){return[{token:"comment",regex:/\/\*/,next:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]},{token:"comment",regex:"\\/\\/",next:[i.getTagRule(),{token:"comment",regex:"$|^",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]}]}var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*",u=function(e){var t=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert","constant.language.boolean":"true|false"},"identifier"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)";this.$rules={no_regex:[i.getStartRule("doc-start"),f("no_regex"),{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+o+")(\\.)(prototype)(\\.)("+o+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+o+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\s*)(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:"keyword",regex:"from(?=\\s*('|\"))"},{token:"keyword",regex:"(?:"+n+")\\b",next:"start"},{token:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:o},{token:"punctuation.operator",regex:/[.](?![.])/,next:"property"},{token:"storage.type",regex:/=>/,next:"start"},{token:"keyword.operator",regex:/--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],property:[{token:"text",regex:"\\s+"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()",next:"function_arguments"},{token:"punctuation.operator",regex:/[.](?![.])/},{token:"support.function",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:"support.function.dom",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:"support.constant",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:"identifier",regex:o},{regex:"",token:"empty",next:"no_regex"}],start:[i.getStartRule("doc-start"),f("start"),{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+|^$",next:"start"},{token:"empty",regex:"",next:"no_regex"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/[sxngimy]*",next:"no_regex"},{token:"invalid",regex:/\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/},{token:"constant.language.delimiter",regex:/\|/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp"}],regex_character_class:[{token:"regexp.charclass.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp.charachterclass"}],function_arguments:[{token:"variable.parameter",regex:o},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],qqstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)n.unshift("start",t);else if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1||this.next.indexOf("jsx")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:r},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../worker/worker_client").WorkerClient,a=e("./behaviour/cstyle").CstyleBehaviour,f=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$quotes={'"':'"',"'":"'","`":"`"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="no_regex"){var u=t.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||o=="no_regex")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/javascript"}.call(l.prototype),t.Mode=l}); (function() {
|
||
ace.require(["ace/mode/javascript"], function(m) {
|
||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||
module.exports = m;
|
||
}
|
||
});
|
||
})();
|
||
}
|
||
// SRC: https://github.com/beatgammit/base64-js
|
||
(function(r){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=r()}else if(typeof define==="function"&&define.amd){define([],r)}else{var e;if(typeof window!=="undefined"){e=window}else if(typeof global!=="undefined"){e=global}else if(typeof self!=="undefined"){e=self}else{e=this}e.base64js=r()}})(function(){var r,e,n;return function(){function r(e,n,t){function o(f,i){if(!n[f]){if(!e[f]){var u="function"==typeof require&&require;if(!i&&u)return u(f,!0);if(a)return a(f,!0);var v=new Error("Cannot find module '"+f+"'");throw v.code="MODULE_NOT_FOUND",v}var d=n[f]={exports:{}};e[f][0].call(d.exports,function(r){var n=e[f][1][r];return o(n||r)},d,d.exports,r,e,n,t)}return n[f].exports}for(var a="function"==typeof require&&require,f=0;f<t.length;f++)o(t[f]);return o}return r}()({"/":[function(r,e,n){"use strict";n.byteLength=d;n.toByteArray=h;n.fromByteArray=p;var t=[];var o=[];var a=typeof Uint8Array!=="undefined"?Uint8Array:Array;var f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var i=0,u=f.length;i<u;++i){t[i]=f[i];o[f.charCodeAt(i)]=i}o["-".charCodeAt(0)]=62;o["_".charCodeAt(0)]=63;function v(r){var e=r.length;if(e%4>0){throw new Error("Invalid string. Length must be a multiple of 4")}var n=r.indexOf("=");if(n===-1)n=e;var t=n===e?0:4-n%4;return[n,t]}function d(r){var e=v(r);var n=e[0];var t=e[1];return(n+t)*3/4-t}function c(r,e,n){return(e+n)*3/4-n}function h(r){var e;var n=v(r);var t=n[0];var f=n[1];var i=new a(c(r,t,f));var u=0;var d=f>0?t-4:t;for(var h=0;h<d;h+=4){e=o[r.charCodeAt(h)]<<18|o[r.charCodeAt(h+1)]<<12|o[r.charCodeAt(h+2)]<<6|o[r.charCodeAt(h+3)];i[u++]=e>>16&255;i[u++]=e>>8&255;i[u++]=e&255}if(f===2){e=o[r.charCodeAt(h)]<<2|o[r.charCodeAt(h+1)]>>4;i[u++]=e&255}if(f===1){e=o[r.charCodeAt(h)]<<10|o[r.charCodeAt(h+1)]<<4|o[r.charCodeAt(h+2)]>>2;i[u++]=e>>8&255;i[u++]=e&255}return i}function s(r){return t[r>>18&63]+t[r>>12&63]+t[r>>6&63]+t[r&63]}function l(r,e,n){var t;var o=[];for(var a=e;a<n;a+=3){t=(r[a]<<16&16711680)+(r[a+1]<<8&65280)+(r[a+2]&255);o.push(s(t))}return o.join("")}function p(r){var e;var n=r.length;var o=n%3;var a=[];var f=16383;for(var i=0,u=n-o;i<u;i+=f){a.push(l(r,i,i+f>u?u:i+f))}if(o===1){e=r[n-1];a.push(t[e>>2]+t[e<<4&63]+"==")}else if(o===2){e=(r[n-2]<<8)+r[n-1];a.push(t[e>>10]+t[e>>4&63]+t[e<<2&63]+"=")}return a.join("")}},{}]},{},[])("/")});
|
||
// SRC: https://github.com/solderjs/TextEncoderLite
|
||
function TextEncoderLite() {
|
||
}
|
||
function TextDecoderLite() {
|
||
}
|
||
|
||
(function () {
|
||
'use strict';
|
||
|
||
// Taken from https://github.com/feross/buffer/blob/master/index.js
|
||
// Thanks Feross et al! :-)
|
||
|
||
function utf8ToBytes (string, units) {
|
||
units = units || Infinity
|
||
var codePoint
|
||
var length = string.length
|
||
var leadSurrogate = null
|
||
var bytes = []
|
||
var i = 0
|
||
|
||
for (; i < length; i++) {
|
||
codePoint = string.charCodeAt(i)
|
||
|
||
// is surrogate component
|
||
if (codePoint > 0xD7FF && codePoint < 0xE000) {
|
||
// last char was a lead
|
||
if (leadSurrogate) {
|
||
// 2 leads in a row
|
||
if (codePoint < 0xDC00) {
|
||
if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
|
||
leadSurrogate = codePoint
|
||
continue
|
||
} else {
|
||
// valid surrogate pair
|
||
codePoint = leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00 | 0x10000
|
||
leadSurrogate = null
|
||
}
|
||
} else {
|
||
// no lead yet
|
||
|
||
if (codePoint > 0xDBFF) {
|
||
// unexpected trail
|
||
if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
|
||
continue
|
||
} else if (i + 1 === length) {
|
||
// unpaired lead
|
||
if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
|
||
continue
|
||
} else {
|
||
// valid lead
|
||
leadSurrogate = codePoint
|
||
continue
|
||
}
|
||
}
|
||
} else if (leadSurrogate) {
|
||
// valid bmp char, but last char was a lead
|
||
if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
|
||
leadSurrogate = null
|
||
}
|
||
|
||
// encode utf8
|
||
if (codePoint < 0x80) {
|
||
if ((units -= 1) < 0) break
|
||
bytes.push(codePoint)
|
||
} else if (codePoint < 0x800) {
|
||
if ((units -= 2) < 0) break
|
||
bytes.push(
|
||
codePoint >> 0x6 | 0xC0,
|
||
codePoint & 0x3F | 0x80
|
||
)
|
||
} else if (codePoint < 0x10000) {
|
||
if ((units -= 3) < 0) break
|
||
bytes.push(
|
||
codePoint >> 0xC | 0xE0,
|
||
codePoint >> 0x6 & 0x3F | 0x80,
|
||
codePoint & 0x3F | 0x80
|
||
)
|
||
} else if (codePoint < 0x200000) {
|
||
if ((units -= 4) < 0) break
|
||
bytes.push(
|
||
codePoint >> 0x12 | 0xF0,
|
||
codePoint >> 0xC & 0x3F | 0x80,
|
||
codePoint >> 0x6 & 0x3F | 0x80,
|
||
codePoint & 0x3F | 0x80
|
||
)
|
||
} else {
|
||
throw new Error('Invalid code point')
|
||
}
|
||
}
|
||
|
||
return bytes
|
||
}
|
||
|
||
function utf8Slice (buf, start, end) {
|
||
var res = ''
|
||
var tmp = ''
|
||
end = Math.min(buf.length, end || Infinity)
|
||
start = start || 0;
|
||
|
||
for (var i = start; i < end; i++) {
|
||
if (buf[i] <= 0x7F) {
|
||
res += decodeUtf8Char(tmp) + String.fromCharCode(buf[i])
|
||
tmp = ''
|
||
} else {
|
||
tmp += '%' + buf[i].toString(16)
|
||
}
|
||
}
|
||
|
||
return res + decodeUtf8Char(tmp)
|
||
}
|
||
|
||
function decodeUtf8Char (str) {
|
||
try {
|
||
return decodeURIComponent(str)
|
||
} catch (err) {
|
||
return String.fromCharCode(0xFFFD) // UTF 8 invalid char
|
||
}
|
||
}
|
||
|
||
TextEncoderLite.prototype.encode = function (str) {
|
||
var result;
|
||
|
||
if ('undefined' === typeof Uint8Array) {
|
||
result = utf8ToBytes(str);
|
||
} else {
|
||
result = new Uint8Array(utf8ToBytes(str));
|
||
}
|
||
|
||
return result;
|
||
};
|
||
|
||
TextDecoderLite.prototype.decode = function (bytes) {
|
||
return utf8Slice(bytes, 0, bytes.length);
|
||
}
|
||
|
||
}());
|
||
|
||
if(typeof module === "object" && module) {
|
||
module.exports.TextDecoderLite = TextDecoderLite;
|
||
module.exports.TextEncoderLite = TextEncoderLite;
|
||
}
|
||
// SRC: https://github.com/nodeca/pako
|
||
/* pako 1.0.10 nodeca/pako */(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.pako = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
|
||
'use strict';
|
||
|
||
|
||
var zlib_deflate = require('./zlib/deflate');
|
||
var utils = require('./utils/common');
|
||
var strings = require('./utils/strings');
|
||
var msg = require('./zlib/messages');
|
||
var ZStream = require('./zlib/zstream');
|
||
|
||
var toString = Object.prototype.toString;
|
||
|
||
/* Public constants ==========================================================*/
|
||
/* ===========================================================================*/
|
||
|
||
var Z_NO_FLUSH = 0;
|
||
var Z_FINISH = 4;
|
||
|
||
var Z_OK = 0;
|
||
var Z_STREAM_END = 1;
|
||
var Z_SYNC_FLUSH = 2;
|
||
|
||
var Z_DEFAULT_COMPRESSION = -1;
|
||
|
||
var Z_DEFAULT_STRATEGY = 0;
|
||
|
||
var Z_DEFLATED = 8;
|
||
|
||
/* ===========================================================================*/
|
||
|
||
|
||
/**
|
||
* class Deflate
|
||
*
|
||
* Generic JS-style wrapper for zlib calls. If you don't need
|
||
* streaming behaviour - use more simple functions: [[deflate]],
|
||
* [[deflateRaw]] and [[gzip]].
|
||
**/
|
||
|
||
/* internal
|
||
* Deflate.chunks -> Array
|
||
*
|
||
* Chunks of output data, if [[Deflate#onData]] not overridden.
|
||
**/
|
||
|
||
/**
|
||
* Deflate.result -> Uint8Array|Array
|
||
*
|
||
* Compressed result, generated by default [[Deflate#onData]]
|
||
* and [[Deflate#onEnd]] handlers. Filled after you push last chunk
|
||
* (call [[Deflate#push]] with `Z_FINISH` / `true` param) or if you
|
||
* push a chunk with explicit flush (call [[Deflate#push]] with
|
||
* `Z_SYNC_FLUSH` param).
|
||
**/
|
||
|
||
/**
|
||
* Deflate.err -> Number
|
||
*
|
||
* Error code after deflate finished. 0 (Z_OK) on success.
|
||
* You will not need it in real life, because deflate errors
|
||
* are possible only on wrong options or bad `onData` / `onEnd`
|
||
* custom handlers.
|
||
**/
|
||
|
||
/**
|
||
* Deflate.msg -> String
|
||
*
|
||
* Error message, if [[Deflate.err]] != 0
|
||
**/
|
||
|
||
|
||
/**
|
||
* new Deflate(options)
|
||
* - options (Object): zlib deflate options.
|
||
*
|
||
* Creates new deflator instance with specified params. Throws exception
|
||
* on bad params. Supported options:
|
||
*
|
||
* - `level`
|
||
* - `windowBits`
|
||
* - `memLevel`
|
||
* - `strategy`
|
||
* - `dictionary`
|
||
*
|
||
* [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)
|
||
* for more information on these.
|
||
*
|
||
* Additional options, for internal needs:
|
||
*
|
||
* - `chunkSize` - size of generated data chunks (16K by default)
|
||
* - `raw` (Boolean) - do raw deflate
|
||
* - `gzip` (Boolean) - create gzip wrapper
|
||
* - `to` (String) - if equal to 'string', then result will be "binary string"
|
||
* (each char code [0..255])
|
||
* - `header` (Object) - custom header for gzip
|
||
* - `text` (Boolean) - true if compressed data believed to be text
|
||
* - `time` (Number) - modification time, unix timestamp
|
||
* - `os` (Number) - operation system code
|
||
* - `extra` (Array) - array of bytes with extra data (max 65536)
|
||
* - `name` (String) - file name (binary string)
|
||
* - `comment` (String) - comment (binary string)
|
||
* - `hcrc` (Boolean) - true if header crc should be added
|
||
*
|
||
* ##### Example:
|
||
*
|
||
* ```javascript
|
||
* var pako = require('pako')
|
||
* , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9])
|
||
* , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]);
|
||
*
|
||
* var deflate = new pako.Deflate({ level: 3});
|
||
*
|
||
* deflate.push(chunk1, false);
|
||
* deflate.push(chunk2, true); // true -> last chunk
|
||
*
|
||
* if (deflate.err) { throw new Error(deflate.err); }
|
||
*
|
||
* console.log(deflate.result);
|
||
* ```
|
||
**/
|
||
function Deflate(options) {
|
||
if (!(this instanceof Deflate)) return new Deflate(options);
|
||
|
||
this.options = utils.assign({
|
||
level: Z_DEFAULT_COMPRESSION,
|
||
method: Z_DEFLATED,
|
||
chunkSize: 16384,
|
||
windowBits: 15,
|
||
memLevel: 8,
|
||
strategy: Z_DEFAULT_STRATEGY,
|
||
to: ''
|
||
}, options || {});
|
||
|
||
var opt = this.options;
|
||
|
||
if (opt.raw && (opt.windowBits > 0)) {
|
||
opt.windowBits = -opt.windowBits;
|
||
}
|
||
|
||
else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {
|
||
opt.windowBits += 16;
|
||
}
|
||
|
||
this.err = 0; // error code, if happens (0 = Z_OK)
|
||
this.msg = ''; // error message
|
||
this.ended = false; // used to avoid multiple onEnd() calls
|
||
this.chunks = []; // chunks of compressed data
|
||
|
||
this.strm = new ZStream();
|
||
this.strm.avail_out = 0;
|
||
|
||
var status = zlib_deflate.deflateInit2(
|
||
this.strm,
|
||
opt.level,
|
||
opt.method,
|
||
opt.windowBits,
|
||
opt.memLevel,
|
||
opt.strategy
|
||
);
|
||
|
||
if (status !== Z_OK) {
|
||
throw new Error(msg[status]);
|
||
}
|
||
|
||
if (opt.header) {
|
||
zlib_deflate.deflateSetHeader(this.strm, opt.header);
|
||
}
|
||
|
||
if (opt.dictionary) {
|
||
var dict;
|
||
// Convert data if needed
|
||
if (typeof opt.dictionary === 'string') {
|
||
// If we need to compress text, change encoding to utf8.
|
||
dict = strings.string2buf(opt.dictionary);
|
||
} else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {
|
||
dict = new Uint8Array(opt.dictionary);
|
||
} else {
|
||
dict = opt.dictionary;
|
||
}
|
||
|
||
status = zlib_deflate.deflateSetDictionary(this.strm, dict);
|
||
|
||
if (status !== Z_OK) {
|
||
throw new Error(msg[status]);
|
||
}
|
||
|
||
this._dict_set = true;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Deflate#push(data[, mode]) -> Boolean
|
||
* - data (Uint8Array|Array|ArrayBuffer|String): input data. Strings will be
|
||
* converted to utf8 byte sequence.
|
||
* - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.
|
||
* See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.
|
||
*
|
||
* Sends input data to deflate pipe, generating [[Deflate#onData]] calls with
|
||
* new compressed chunks. Returns `true` on success. The last data block must have
|
||
* mode Z_FINISH (or `true`). That will flush internal pending buffers and call
|
||
* [[Deflate#onEnd]]. For interim explicit flushes (without ending the stream) you
|
||
* can use mode Z_SYNC_FLUSH, keeping the compression context.
|
||
*
|
||
* On fail call [[Deflate#onEnd]] with error code and return false.
|
||
*
|
||
* We strongly recommend to use `Uint8Array` on input for best speed (output
|
||
* array format is detected automatically). Also, don't skip last param and always
|
||
* use the same type in your code (boolean or number). That will improve JS speed.
|
||
*
|
||
* For regular `Array`-s make sure all elements are [0..255].
|
||
*
|
||
* ##### Example
|
||
*
|
||
* ```javascript
|
||
* push(chunk, false); // push one of data chunks
|
||
* ...
|
||
* push(chunk, true); // push last chunk
|
||
* ```
|
||
**/
|
||
Deflate.prototype.push = function (data, mode) {
|
||
var strm = this.strm;
|
||
var chunkSize = this.options.chunkSize;
|
||
var status, _mode;
|
||
|
||
if (this.ended) { return false; }
|
||
|
||
_mode = (mode === ~~mode) ? mode : ((mode === true) ? Z_FINISH : Z_NO_FLUSH);
|
||
|
||
// Convert data if needed
|
||
if (typeof data === 'string') {
|
||
// If we need to compress text, change encoding to utf8.
|
||
strm.input = strings.string2buf(data);
|
||
} else if (toString.call(data) === '[object ArrayBuffer]') {
|
||
strm.input = new Uint8Array(data);
|
||
} else {
|
||
strm.input = data;
|
||
}
|
||
|
||
strm.next_in = 0;
|
||
strm.avail_in = strm.input.length;
|
||
|
||
do {
|
||
if (strm.avail_out === 0) {
|
||
strm.output = new utils.Buf8(chunkSize);
|
||
strm.next_out = 0;
|
||
strm.avail_out = chunkSize;
|
||
}
|
||
status = zlib_deflate.deflate(strm, _mode); /* no bad return value */
|
||
|
||
if (status !== Z_STREAM_END && status !== Z_OK) {
|
||
this.onEnd(status);
|
||
this.ended = true;
|
||
return false;
|
||
}
|
||
if (strm.avail_out === 0 || (strm.avail_in === 0 && (_mode === Z_FINISH || _mode === Z_SYNC_FLUSH))) {
|
||
if (this.options.to === 'string') {
|
||
this.onData(strings.buf2binstring(utils.shrinkBuf(strm.output, strm.next_out)));
|
||
} else {
|
||
this.onData(utils.shrinkBuf(strm.output, strm.next_out));
|
||
}
|
||
}
|
||
} while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== Z_STREAM_END);
|
||
|
||
// Finalize on the last chunk.
|
||
if (_mode === Z_FINISH) {
|
||
status = zlib_deflate.deflateEnd(this.strm);
|
||
this.onEnd(status);
|
||
this.ended = true;
|
||
return status === Z_OK;
|
||
}
|
||
|
||
// callback interim results if Z_SYNC_FLUSH.
|
||
if (_mode === Z_SYNC_FLUSH) {
|
||
this.onEnd(Z_OK);
|
||
strm.avail_out = 0;
|
||
return true;
|
||
}
|
||
|
||
return true;
|
||
};
|
||
|
||
|
||
/**
|
||
* Deflate#onData(chunk) -> Void
|
||
* - chunk (Uint8Array|Array|String): output data. Type of array depends
|
||
* on js engine support. When string output requested, each chunk
|
||
* will be string.
|
||
*
|
||
* By default, stores data blocks in `chunks[]` property and glue
|
||
* those in `onEnd`. Override this handler, if you need another behaviour.
|
||
**/
|
||
Deflate.prototype.onData = function (chunk) {
|
||
this.chunks.push(chunk);
|
||
};
|
||
|
||
|
||
/**
|
||
* Deflate#onEnd(status) -> Void
|
||
* - status (Number): deflate status. 0 (Z_OK) on success,
|
||
* other if not.
|
||
*
|
||
* Called once after you tell deflate that the input stream is
|
||
* complete (Z_FINISH) or should be flushed (Z_SYNC_FLUSH)
|
||
* or if an error happened. By default - join collected chunks,
|
||
* free memory and fill `results` / `err` properties.
|
||
**/
|
||
Deflate.prototype.onEnd = function (status) {
|
||
// On success - join
|
||
if (status === Z_OK) {
|
||
if (this.options.to === 'string') {
|
||
this.result = this.chunks.join('');
|
||
} else {
|
||
this.result = utils.flattenChunks(this.chunks);
|
||
}
|
||
}
|
||
this.chunks = [];
|
||
this.err = status;
|
||
this.msg = this.strm.msg;
|
||
};
|
||
|
||
|
||
/**
|
||
* deflate(data[, options]) -> Uint8Array|Array|String
|
||
* - data (Uint8Array|Array|String): input data to compress.
|
||
* - options (Object): zlib deflate options.
|
||
*
|
||
* Compress `data` with deflate algorithm and `options`.
|
||
*
|
||
* Supported options are:
|
||
*
|
||
* - level
|
||
* - windowBits
|
||
* - memLevel
|
||
* - strategy
|
||
* - dictionary
|
||
*
|
||
* [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)
|
||
* for more information on these.
|
||
*
|
||
* Sugar (options):
|
||
*
|
||
* - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify
|
||
* negative windowBits implicitly.
|
||
* - `to` (String) - if equal to 'string', then result will be "binary string"
|
||
* (each char code [0..255])
|
||
*
|
||
* ##### Example:
|
||
*
|
||
* ```javascript
|
||
* var pako = require('pako')
|
||
* , data = Uint8Array([1,2,3,4,5,6,7,8,9]);
|
||
*
|
||
* console.log(pako.deflate(data));
|
||
* ```
|
||
**/
|
||
function deflate(input, options) {
|
||
var deflator = new Deflate(options);
|
||
|
||
deflator.push(input, true);
|
||
|
||
// That will never happens, if you don't cheat with options :)
|
||
if (deflator.err) { throw deflator.msg || msg[deflator.err]; }
|
||
|
||
return deflator.result;
|
||
}
|
||
|
||
|
||
/**
|
||
* deflateRaw(data[, options]) -> Uint8Array|Array|String
|
||
* - data (Uint8Array|Array|String): input data to compress.
|
||
* - options (Object): zlib deflate options.
|
||
*
|
||
* The same as [[deflate]], but creates raw data, without wrapper
|
||
* (header and adler32 crc).
|
||
**/
|
||
function deflateRaw(input, options) {
|
||
options = options || {};
|
||
options.raw = true;
|
||
return deflate(input, options);
|
||
}
|
||
|
||
|
||
/**
|
||
* gzip(data[, options]) -> Uint8Array|Array|String
|
||
* - data (Uint8Array|Array|String): input data to compress.
|
||
* - options (Object): zlib deflate options.
|
||
*
|
||
* The same as [[deflate]], but create gzip wrapper instead of
|
||
* deflate one.
|
||
**/
|
||
function gzip(input, options) {
|
||
options = options || {};
|
||
options.gzip = true;
|
||
return deflate(input, options);
|
||
}
|
||
|
||
|
||
exports.Deflate = Deflate;
|
||
exports.deflate = deflate;
|
||
exports.deflateRaw = deflateRaw;
|
||
exports.gzip = gzip;
|
||
|
||
},{"./utils/common":3,"./utils/strings":4,"./zlib/deflate":8,"./zlib/messages":13,"./zlib/zstream":15}],2:[function(require,module,exports){
|
||
'use strict';
|
||
|
||
|
||
var zlib_inflate = require('./zlib/inflate');
|
||
var utils = require('./utils/common');
|
||
var strings = require('./utils/strings');
|
||
var c = require('./zlib/constants');
|
||
var msg = require('./zlib/messages');
|
||
var ZStream = require('./zlib/zstream');
|
||
var GZheader = require('./zlib/gzheader');
|
||
|
||
var toString = Object.prototype.toString;
|
||
|
||
/**
|
||
* class Inflate
|
||
*
|
||
* Generic JS-style wrapper for zlib calls. If you don't need
|
||
* streaming behaviour - use more simple functions: [[inflate]]
|
||
* and [[inflateRaw]].
|
||
**/
|
||
|
||
/* internal
|
||
* inflate.chunks -> Array
|
||
*
|
||
* Chunks of output data, if [[Inflate#onData]] not overridden.
|
||
**/
|
||
|
||
/**
|
||
* Inflate.result -> Uint8Array|Array|String
|
||
*
|
||
* Uncompressed result, generated by default [[Inflate#onData]]
|
||
* and [[Inflate#onEnd]] handlers. Filled after you push last chunk
|
||
* (call [[Inflate#push]] with `Z_FINISH` / `true` param) or if you
|
||
* push a chunk with explicit flush (call [[Inflate#push]] with
|
||
* `Z_SYNC_FLUSH` param).
|
||
**/
|
||
|
||
/**
|
||
* Inflate.err -> Number
|
||
*
|
||
* Error code after inflate finished. 0 (Z_OK) on success.
|
||
* Should be checked if broken data possible.
|
||
**/
|
||
|
||
/**
|
||
* Inflate.msg -> String
|
||
*
|
||
* Error message, if [[Inflate.err]] != 0
|
||
**/
|
||
|
||
|
||
/**
|
||
* new Inflate(options)
|
||
* - options (Object): zlib inflate options.
|
||
*
|
||
* Creates new inflator instance with specified params. Throws exception
|
||
* on bad params. Supported options:
|
||
*
|
||
* - `windowBits`
|
||
* - `dictionary`
|
||
*
|
||
* [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)
|
||
* for more information on these.
|
||
*
|
||
* Additional options, for internal needs:
|
||
*
|
||
* - `chunkSize` - size of generated data chunks (16K by default)
|
||
* - `raw` (Boolean) - do raw inflate
|
||
* - `to` (String) - if equal to 'string', then result will be converted
|
||
* from utf8 to utf16 (javascript) string. When string output requested,
|
||
* chunk length can differ from `chunkSize`, depending on content.
|
||
*
|
||
* By default, when no options set, autodetect deflate/gzip data format via
|
||
* wrapper header.
|
||
*
|
||
* ##### Example:
|
||
*
|
||
* ```javascript
|
||
* var pako = require('pako')
|
||
* , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9])
|
||
* , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]);
|
||
*
|
||
* var inflate = new pako.Inflate({ level: 3});
|
||
*
|
||
* inflate.push(chunk1, false);
|
||
* inflate.push(chunk2, true); // true -> last chunk
|
||
*
|
||
* if (inflate.err) { throw new Error(inflate.err); }
|
||
*
|
||
* console.log(inflate.result);
|
||
* ```
|
||
**/
|
||
function Inflate(options) {
|
||
if (!(this instanceof Inflate)) return new Inflate(options);
|
||
|
||
this.options = utils.assign({
|
||
chunkSize: 16384,
|
||
windowBits: 0,
|
||
to: ''
|
||
}, options || {});
|
||
|
||
var opt = this.options;
|
||
|
||
// Force window size for `raw` data, if not set directly,
|
||
// because we have no header for autodetect.
|
||
if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {
|
||
opt.windowBits = -opt.windowBits;
|
||
if (opt.windowBits === 0) { opt.windowBits = -15; }
|
||
}
|
||
|
||
// If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate
|
||
if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&
|
||
!(options && options.windowBits)) {
|
||
opt.windowBits += 32;
|
||
}
|
||
|
||
// Gzip header has no info about windows size, we can do autodetect only
|
||
// for deflate. So, if window size not set, force it to max when gzip possible
|
||
if ((opt.windowBits > 15) && (opt.windowBits < 48)) {
|
||
// bit 3 (16) -> gzipped data
|
||
// bit 4 (32) -> autodetect gzip/deflate
|
||
if ((opt.windowBits & 15) === 0) {
|
||
opt.windowBits |= 15;
|
||
}
|
||
}
|
||
|
||
this.err = 0; // error code, if happens (0 = Z_OK)
|
||
this.msg = ''; // error message
|
||
this.ended = false; // used to avoid multiple onEnd() calls
|
||
this.chunks = []; // chunks of compressed data
|
||
|
||
this.strm = new ZStream();
|
||
this.strm.avail_out = 0;
|
||
|
||
var status = zlib_inflate.inflateInit2(
|
||
this.strm,
|
||
opt.windowBits
|
||
);
|
||
|
||
if (status !== c.Z_OK) {
|
||
throw new Error(msg[status]);
|
||
}
|
||
|
||
this.header = new GZheader();
|
||
|
||
zlib_inflate.inflateGetHeader(this.strm, this.header);
|
||
|
||
// Setup dictionary
|
||
if (opt.dictionary) {
|
||
// Convert data if needed
|
||
if (typeof opt.dictionary === 'string') {
|
||
opt.dictionary = strings.string2buf(opt.dictionary);
|
||
} else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {
|
||
opt.dictionary = new Uint8Array(opt.dictionary);
|
||
}
|
||
if (opt.raw) { //In raw mode we need to set the dictionary early
|
||
status = zlib_inflate.inflateSetDictionary(this.strm, opt.dictionary);
|
||
if (status !== c.Z_OK) {
|
||
throw new Error(msg[status]);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Inflate#push(data[, mode]) -> Boolean
|
||
* - data (Uint8Array|Array|ArrayBuffer|String): input data
|
||
* - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.
|
||
* See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.
|
||
*
|
||
* Sends input data to inflate pipe, generating [[Inflate#onData]] calls with
|
||
* new output chunks. Returns `true` on success. The last data block must have
|
||
* mode Z_FINISH (or `true`). That will flush internal pending buffers and call
|
||
* [[Inflate#onEnd]]. For interim explicit flushes (without ending the stream) you
|
||
* can use mode Z_SYNC_FLUSH, keeping the decompression context.
|
||
*
|
||
* On fail call [[Inflate#onEnd]] with error code and return false.
|
||
*
|
||
* We strongly recommend to use `Uint8Array` on input for best speed (output
|
||
* format is detected automatically). Also, don't skip last param and always
|
||
* use the same type in your code (boolean or number). That will improve JS speed.
|
||
*
|
||
* For regular `Array`-s make sure all elements are [0..255].
|
||
*
|
||
* ##### Example
|
||
*
|
||
* ```javascript
|
||
* push(chunk, false); // push one of data chunks
|
||
* ...
|
||
* push(chunk, true); // push last chunk
|
||
* ```
|
||
**/
|
||
Inflate.prototype.push = function (data, mode) {
|
||
var strm = this.strm;
|
||
var chunkSize = this.options.chunkSize;
|
||
var dictionary = this.options.dictionary;
|
||
var status, _mode;
|
||
var next_out_utf8, tail, utf8str;
|
||
|
||
// Flag to properly process Z_BUF_ERROR on testing inflate call
|
||
// when we check that all output data was flushed.
|
||
var allowBufError = false;
|
||
|
||
if (this.ended) { return false; }
|
||
_mode = (mode === ~~mode) ? mode : ((mode === true) ? c.Z_FINISH : c.Z_NO_FLUSH);
|
||
|
||
// Convert data if needed
|
||
if (typeof data === 'string') {
|
||
// Only binary strings can be decompressed on practice
|
||
strm.input = strings.binstring2buf(data);
|
||
} else if (toString.call(data) === '[object ArrayBuffer]') {
|
||
strm.input = new Uint8Array(data);
|
||
} else {
|
||
strm.input = data;
|
||
}
|
||
|
||
strm.next_in = 0;
|
||
strm.avail_in = strm.input.length;
|
||
|
||
do {
|
||
if (strm.avail_out === 0) {
|
||
strm.output = new utils.Buf8(chunkSize);
|
||
strm.next_out = 0;
|
||
strm.avail_out = chunkSize;
|
||
}
|
||
|
||
status = zlib_inflate.inflate(strm, c.Z_NO_FLUSH); /* no bad return value */
|
||
|
||
if (status === c.Z_NEED_DICT && dictionary) {
|
||
status = zlib_inflate.inflateSetDictionary(this.strm, dictionary);
|
||
}
|
||
|
||
if (status === c.Z_BUF_ERROR && allowBufError === true) {
|
||
status = c.Z_OK;
|
||
allowBufError = false;
|
||
}
|
||
|
||
if (status !== c.Z_STREAM_END && status !== c.Z_OK) {
|
||
this.onEnd(status);
|
||
this.ended = true;
|
||
return false;
|
||
}
|
||
|
||
if (strm.next_out) {
|
||
if (strm.avail_out === 0 || status === c.Z_STREAM_END || (strm.avail_in === 0 && (_mode === c.Z_FINISH || _mode === c.Z_SYNC_FLUSH))) {
|
||
|
||
if (this.options.to === 'string') {
|
||
|
||
next_out_utf8 = strings.utf8border(strm.output, strm.next_out);
|
||
|
||
tail = strm.next_out - next_out_utf8;
|
||
utf8str = strings.buf2string(strm.output, next_out_utf8);
|
||
|
||
// move tail
|
||
strm.next_out = tail;
|
||
strm.avail_out = chunkSize - tail;
|
||
if (tail) { utils.arraySet(strm.output, strm.output, next_out_utf8, tail, 0); }
|
||
|
||
this.onData(utf8str);
|
||
|
||
} else {
|
||
this.onData(utils.shrinkBuf(strm.output, strm.next_out));
|
||
}
|
||
}
|
||
}
|
||
|
||
// When no more input data, we should check that internal inflate buffers
|
||
// are flushed. The only way to do it when avail_out = 0 - run one more
|
||
// inflate pass. But if output data not exists, inflate return Z_BUF_ERROR.
|
||
// Here we set flag to process this error properly.
|
||
//
|
||
// NOTE. Deflate does not return error in this case and does not needs such
|
||
// logic.
|
||
if (strm.avail_in === 0 && strm.avail_out === 0) {
|
||
allowBufError = true;
|
||
}
|
||
|
||
} while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== c.Z_STREAM_END);
|
||
|
||
if (status === c.Z_STREAM_END) {
|
||
_mode = c.Z_FINISH;
|
||
}
|
||
|
||
// Finalize on the last chunk.
|
||
if (_mode === c.Z_FINISH) {
|
||
status = zlib_inflate.inflateEnd(this.strm);
|
||
this.onEnd(status);
|
||
this.ended = true;
|
||
return status === c.Z_OK;
|
||
}
|
||
|
||
// callback interim results if Z_SYNC_FLUSH.
|
||
if (_mode === c.Z_SYNC_FLUSH) {
|
||
this.onEnd(c.Z_OK);
|
||
strm.avail_out = 0;
|
||
return true;
|
||
}
|
||
|
||
return true;
|
||
};
|
||
|
||
|
||
/**
|
||
* Inflate#onData(chunk) -> Void
|
||
* - chunk (Uint8Array|Array|String): output data. Type of array depends
|
||
* on js engine support. When string output requested, each chunk
|
||
* will be string.
|
||
*
|
||
* By default, stores data blocks in `chunks[]` property and glue
|
||
* those in `onEnd`. Override this handler, if you need another behaviour.
|
||
**/
|
||
Inflate.prototype.onData = function (chunk) {
|
||
this.chunks.push(chunk);
|
||
};
|
||
|
||
|
||
/**
|
||
* Inflate#onEnd(status) -> Void
|
||
* - status (Number): inflate status. 0 (Z_OK) on success,
|
||
* other if not.
|
||
*
|
||
* Called either after you tell inflate that the input stream is
|
||
* complete (Z_FINISH) or should be flushed (Z_SYNC_FLUSH)
|
||
* or if an error happened. By default - join collected chunks,
|
||
* free memory and fill `results` / `err` properties.
|
||
**/
|
||
Inflate.prototype.onEnd = function (status) {
|
||
// On success - join
|
||
if (status === c.Z_OK) {
|
||
if (this.options.to === 'string') {
|
||
// Glue & convert here, until we teach pako to send
|
||
// utf8 aligned strings to onData
|
||
this.result = this.chunks.join('');
|
||
} else {
|
||
this.result = utils.flattenChunks(this.chunks);
|
||
}
|
||
}
|
||
this.chunks = [];
|
||
this.err = status;
|
||
this.msg = this.strm.msg;
|
||
};
|
||
|
||
|
||
/**
|
||
* inflate(data[, options]) -> Uint8Array|Array|String
|
||
* - data (Uint8Array|Array|String): input data to decompress.
|
||
* - options (Object): zlib inflate options.
|
||
*
|
||
* Decompress `data` with inflate/ungzip and `options`. Autodetect
|
||
* format via wrapper header by default. That's why we don't provide
|
||
* separate `ungzip` method.
|
||
*
|
||
* Supported options are:
|
||
*
|
||
* - windowBits
|
||
*
|
||
* [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)
|
||
* for more information.
|
||
*
|
||
* Sugar (options):
|
||
*
|
||
* - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify
|
||
* negative windowBits implicitly.
|
||
* - `to` (String) - if equal to 'string', then result will be converted
|
||
* from utf8 to utf16 (javascript) string. When string output requested,
|
||
* chunk length can differ from `chunkSize`, depending on content.
|
||
*
|
||
*
|
||
* ##### Example:
|
||
*
|
||
* ```javascript
|
||
* var pako = require('pako')
|
||
* , input = pako.deflate([1,2,3,4,5,6,7,8,9])
|
||
* , output;
|
||
*
|
||
* try {
|
||
* output = pako.inflate(input);
|
||
* } catch (err)
|
||
* console.log(err);
|
||
* }
|
||
* ```
|
||
**/
|
||
function inflate(input, options) {
|
||
var inflator = new Inflate(options);
|
||
|
||
inflator.push(input, true);
|
||
|
||
// That will never happens, if you don't cheat with options :)
|
||
if (inflator.err) { throw inflator.msg || msg[inflator.err]; }
|
||
|
||
return inflator.result;
|
||
}
|
||
|
||
|
||
/**
|
||
* inflateRaw(data[, options]) -> Uint8Array|Array|String
|
||
* - data (Uint8Array|Array|String): input data to decompress.
|
||
* - options (Object): zlib inflate options.
|
||
*
|
||
* The same as [[inflate]], but creates raw data, without wrapper
|
||
* (header and adler32 crc).
|
||
**/
|
||
function inflateRaw(input, options) {
|
||
options = options || {};
|
||
options.raw = true;
|
||
return inflate(input, options);
|
||
}
|
||
|
||
|
||
/**
|
||
* ungzip(data[, options]) -> Uint8Array|Array|String
|
||
* - data (Uint8Array|Array|String): input data to decompress.
|
||
* - options (Object): zlib inflate options.
|
||
*
|
||
* Just shortcut to [[inflate]], because it autodetects format
|
||
* by header.content. Done for convenience.
|
||
**/
|
||
|
||
|
||
exports.Inflate = Inflate;
|
||
exports.inflate = inflate;
|
||
exports.inflateRaw = inflateRaw;
|
||
exports.ungzip = inflate;
|
||
|
||
},{"./utils/common":3,"./utils/strings":4,"./zlib/constants":6,"./zlib/gzheader":9,"./zlib/inflate":11,"./zlib/messages":13,"./zlib/zstream":15}],3:[function(require,module,exports){
|
||
'use strict';
|
||
|
||
|
||
var TYPED_OK = (typeof Uint8Array !== 'undefined') &&
|
||
(typeof Uint16Array !== 'undefined') &&
|
||
(typeof Int32Array !== 'undefined');
|
||
|
||
function _has(obj, key) {
|
||
return Object.prototype.hasOwnProperty.call(obj, key);
|
||
}
|
||
|
||
exports.assign = function (obj /*from1, from2, from3, ...*/) {
|
||
var sources = Array.prototype.slice.call(arguments, 1);
|
||
while (sources.length) {
|
||
var source = sources.shift();
|
||
if (!source) { continue; }
|
||
|
||
if (typeof source !== 'object') {
|
||
throw new TypeError(source + 'must be non-object');
|
||
}
|
||
|
||
for (var p in source) {
|
||
if (_has(source, p)) {
|
||
obj[p] = source[p];
|
||
}
|
||
}
|
||
}
|
||
|
||
return obj;
|
||
};
|
||
|
||
|
||
// reduce buffer size, avoiding mem copy
|
||
exports.shrinkBuf = function (buf, size) {
|
||
if (buf.length === size) { return buf; }
|
||
if (buf.subarray) { return buf.subarray(0, size); }
|
||
buf.length = size;
|
||
return buf;
|
||
};
|
||
|
||
|
||
var fnTyped = {
|
||
arraySet: function (dest, src, src_offs, len, dest_offs) {
|
||
if (src.subarray && dest.subarray) {
|
||
dest.set(src.subarray(src_offs, src_offs + len), dest_offs);
|
||
return;
|
||
}
|
||
// Fallback to ordinary array
|
||
for (var i = 0; i < len; i++) {
|
||
dest[dest_offs + i] = src[src_offs + i];
|
||
}
|
||
},
|
||
// Join array of chunks to single array.
|
||
flattenChunks: function (chunks) {
|
||
var i, l, len, pos, chunk, result;
|
||
|
||
// calculate data length
|
||
len = 0;
|
||
for (i = 0, l = chunks.length; i < l; i++) {
|
||
len += chunks[i].length;
|
||
}
|
||
|
||
// join chunks
|
||
result = new Uint8Array(len);
|
||
pos = 0;
|
||
for (i = 0, l = chunks.length; i < l; i++) {
|
||
chunk = chunks[i];
|
||
result.set(chunk, pos);
|
||
pos += chunk.length;
|
||
}
|
||
|
||
return result;
|
||
}
|
||
};
|
||
|
||
var fnUntyped = {
|
||
arraySet: function (dest, src, src_offs, len, dest_offs) {
|
||
for (var i = 0; i < len; i++) {
|
||
dest[dest_offs + i] = src[src_offs + i];
|
||
}
|
||
},
|
||
// Join array of chunks to single array.
|
||
flattenChunks: function (chunks) {
|
||
return [].concat.apply([], chunks);
|
||
}
|
||
};
|
||
|
||
|
||
// Enable/Disable typed arrays use, for testing
|
||
//
|
||
exports.setTyped = function (on) {
|
||
if (on) {
|
||
exports.Buf8 = Uint8Array;
|
||
exports.Buf16 = Uint16Array;
|
||
exports.Buf32 = Int32Array;
|
||
exports.assign(exports, fnTyped);
|
||
} else {
|
||
exports.Buf8 = Array;
|
||
exports.Buf16 = Array;
|
||
exports.Buf32 = Array;
|
||
exports.assign(exports, fnUntyped);
|
||
}
|
||
};
|
||
|
||
exports.setTyped(TYPED_OK);
|
||
|
||
},{}],4:[function(require,module,exports){
|
||
// String encode/decode helpers
|
||
'use strict';
|
||
|
||
|
||
var utils = require('./common');
|
||
|
||
|
||
// Quick check if we can use fast array to bin string conversion
|
||
//
|
||
// - apply(Array) can fail on Android 2.2
|
||
// - apply(Uint8Array) can fail on iOS 5.1 Safari
|
||
//
|
||
var STR_APPLY_OK = true;
|
||
var STR_APPLY_UIA_OK = true;
|
||
|
||
try { String.fromCharCode.apply(null, [ 0 ]); } catch (__) { STR_APPLY_OK = false; }
|
||
try { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }
|
||
|
||
|
||
// Table with utf8 lengths (calculated by first byte of sequence)
|
||
// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,
|
||
// because max possible codepoint is 0x10ffff
|
||
var _utf8len = new utils.Buf8(256);
|
||
for (var q = 0; q < 256; q++) {
|
||
_utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);
|
||
}
|
||
_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start
|
||
|
||
|
||
// convert string to array (typed, when possible)
|
||
exports.string2buf = function (str) {
|
||
var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;
|
||
|
||
// count binary size
|
||
for (m_pos = 0; m_pos < str_len; m_pos++) {
|
||
c = str.charCodeAt(m_pos);
|
||
if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {
|
||
c2 = str.charCodeAt(m_pos + 1);
|
||
if ((c2 & 0xfc00) === 0xdc00) {
|
||
c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);
|
||
m_pos++;
|
||
}
|
||
}
|
||
buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;
|
||
}
|
||
|
||
// allocate buffer
|
||
buf = new utils.Buf8(buf_len);
|
||
|
||
// convert
|
||
for (i = 0, m_pos = 0; i < buf_len; m_pos++) {
|
||
c = str.charCodeAt(m_pos);
|
||
if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {
|
||
c2 = str.charCodeAt(m_pos + 1);
|
||
if ((c2 & 0xfc00) === 0xdc00) {
|
||
c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);
|
||
m_pos++;
|
||
}
|
||
}
|
||
if (c < 0x80) {
|
||
/* one byte */
|
||
buf[i++] = c;
|
||
} else if (c < 0x800) {
|
||
/* two bytes */
|
||
buf[i++] = 0xC0 | (c >>> 6);
|
||
buf[i++] = 0x80 | (c & 0x3f);
|
||
} else if (c < 0x10000) {
|
||
/* three bytes */
|
||
buf[i++] = 0xE0 | (c >>> 12);
|
||
buf[i++] = 0x80 | (c >>> 6 & 0x3f);
|
||
buf[i++] = 0x80 | (c & 0x3f);
|
||
} else {
|
||
/* four bytes */
|
||
buf[i++] = 0xf0 | (c >>> 18);
|
||
buf[i++] = 0x80 | (c >>> 12 & 0x3f);
|
||
buf[i++] = 0x80 | (c >>> 6 & 0x3f);
|
||
buf[i++] = 0x80 | (c & 0x3f);
|
||
}
|
||
}
|
||
|
||
return buf;
|
||
};
|
||
|
||
// Helper (used in 2 places)
|
||
function buf2binstring(buf, len) {
|
||
// On Chrome, the arguments in a function call that are allowed is `65534`.
|
||
// If the length of the buffer is smaller than that, we can use this optimization,
|
||
// otherwise we will take a slower path.
|
||
if (len < 65534) {
|
||
if ((buf.subarray && STR_APPLY_UIA_OK) || (!buf.subarray && STR_APPLY_OK)) {
|
||
return String.fromCharCode.apply(null, utils.shrinkBuf(buf, len));
|
||
}
|
||
}
|
||
|
||
var result = '';
|
||
for (var i = 0; i < len; i++) {
|
||
result += String.fromCharCode(buf[i]);
|
||
}
|
||
return result;
|
||
}
|
||
|
||
|
||
// Convert byte array to binary string
|
||
exports.buf2binstring = function (buf) {
|
||
return buf2binstring(buf, buf.length);
|
||
};
|
||
|
||
|
||
// Convert binary string (typed, when possible)
|
||
exports.binstring2buf = function (str) {
|
||
var buf = new utils.Buf8(str.length);
|
||
for (var i = 0, len = buf.length; i < len; i++) {
|
||
buf[i] = str.charCodeAt(i);
|
||
}
|
||
return buf;
|
||
};
|
||
|
||
|
||
// convert array to string
|
||
exports.buf2string = function (buf, max) {
|
||
var i, out, c, c_len;
|
||
var len = max || buf.length;
|
||
|
||
// Reserve max possible length (2 words per char)
|
||
// NB: by unknown reasons, Array is significantly faster for
|
||
// String.fromCharCode.apply than Uint16Array.
|
||
var utf16buf = new Array(len * 2);
|
||
|
||
for (out = 0, i = 0; i < len;) {
|
||
c = buf[i++];
|
||
// quick process ascii
|
||
if (c < 0x80) { utf16buf[out++] = c; continue; }
|
||
|
||
c_len = _utf8len[c];
|
||
// skip 5 & 6 byte codes
|
||
if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }
|
||
|
||
// apply mask on first byte
|
||
c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;
|
||
// join the rest
|
||
while (c_len > 1 && i < len) {
|
||
c = (c << 6) | (buf[i++] & 0x3f);
|
||
c_len--;
|
||
}
|
||
|
||
// terminated by end of string?
|
||
if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }
|
||
|
||
if (c < 0x10000) {
|
||
utf16buf[out++] = c;
|
||
} else {
|
||
c -= 0x10000;
|
||
utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);
|
||
utf16buf[out++] = 0xdc00 | (c & 0x3ff);
|
||
}
|
||
}
|
||
|
||
return buf2binstring(utf16buf, out);
|
||
};
|
||
|
||
|
||
// Calculate max possible position in utf8 buffer,
|
||
// that will not break sequence. If that's not possible
|
||
// - (very small limits) return max size as is.
|
||
//
|
||
// buf[] - utf8 bytes array
|
||
// max - length limit (mandatory);
|
||
exports.utf8border = function (buf, max) {
|
||
var pos;
|
||
|
||
max = max || buf.length;
|
||
if (max > buf.length) { max = buf.length; }
|
||
|
||
// go back from last position, until start of sequence found
|
||
pos = max - 1;
|
||
while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }
|
||
|
||
// Very small and broken sequence,
|
||
// return max, because we should return something anyway.
|
||
if (pos < 0) { return max; }
|
||
|
||
// If we came to start of buffer - that means buffer is too small,
|
||
// return max too.
|
||
if (pos === 0) { return max; }
|
||
|
||
return (pos + _utf8len[buf[pos]] > max) ? pos : max;
|
||
};
|
||
|
||
},{"./common":3}],5:[function(require,module,exports){
|
||
'use strict';
|
||
|
||
// Note: adler32 takes 12% for level 0 and 2% for level 6.
|
||
// It isn't worth it to make additional optimizations as in original.
|
||
// Small size is preferable.
|
||
|
||
// (C) 1995-2013 Jean-loup Gailly and Mark Adler
|
||
// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
|
||
//
|
||
// This software is provided 'as-is', without any express or implied
|
||
// warranty. In no event will the authors be held liable for any damages
|
||
// arising from the use of this software.
|
||
//
|
||
// Permission is granted to anyone to use this software for any purpose,
|
||
// including commercial applications, and to alter it and redistribute it
|
||
// freely, subject to the following restrictions:
|
||
//
|
||
// 1. The origin of this software must not be misrepresented; you must not
|
||
// claim that you wrote the original software. If you use this software
|
||
// in a product, an acknowledgment in the product documentation would be
|
||
// appreciated but is not required.
|
||
// 2. Altered source versions must be plainly marked as such, and must not be
|
||
// misrepresented as being the original software.
|
||
// 3. This notice may not be removed or altered from any source distribution.
|
||
|
||
function adler32(adler, buf, len, pos) {
|
||
var s1 = (adler & 0xffff) |0,
|
||
s2 = ((adler >>> 16) & 0xffff) |0,
|
||
n = 0;
|
||
|
||
while (len !== 0) {
|
||
// Set limit ~ twice less than 5552, to keep
|
||
// s2 in 31-bits, because we force signed ints.
|
||
// in other case %= will fail.
|
||
n = len > 2000 ? 2000 : len;
|
||
len -= n;
|
||
|
||
do {
|
||
s1 = (s1 + buf[pos++]) |0;
|
||
s2 = (s2 + s1) |0;
|
||
} while (--n);
|
||
|
||
s1 %= 65521;
|
||
s2 %= 65521;
|
||
}
|
||
|
||
return (s1 | (s2 << 16)) |0;
|
||
}
|
||
|
||
|
||
module.exports = adler32;
|
||
|
||
},{}],6:[function(require,module,exports){
|
||
'use strict';
|
||
|
||
// (C) 1995-2013 Jean-loup Gailly and Mark Adler
|
||
// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
|
||
//
|
||
// This software is provided 'as-is', without any express or implied
|
||
// warranty. In no event will the authors be held liable for any damages
|
||
// arising from the use of this software.
|
||
//
|
||
// Permission is granted to anyone to use this software for any purpose,
|
||
// including commercial applications, and to alter it and redistribute it
|
||
// freely, subject to the following restrictions:
|
||
//
|
||
// 1. The origin of this software must not be misrepresented; you must not
|
||
// claim that you wrote the original software. If you use this software
|
||
// in a product, an acknowledgment in the product documentation would be
|
||
// appreciated but is not required.
|
||
// 2. Altered source versions must be plainly marked as such, and must not be
|
||
// misrepresented as being the original software.
|
||
// 3. This notice may not be removed or altered from any source distribution.
|
||
|
||
module.exports = {
|
||
|
||
/* Allowed flush values; see deflate() and inflate() below for details */
|
||
Z_NO_FLUSH: 0,
|
||
Z_PARTIAL_FLUSH: 1,
|
||
Z_SYNC_FLUSH: 2,
|
||
Z_FULL_FLUSH: 3,
|
||
Z_FINISH: 4,
|
||
Z_BLOCK: 5,
|
||
Z_TREES: 6,
|
||
|
||
/* Return codes for the compression/decompression functions. Negative values
|
||
* are errors, positive values are used for special but normal events.
|
||
*/
|
||
Z_OK: 0,
|
||
Z_STREAM_END: 1,
|
||
Z_NEED_DICT: 2,
|
||
Z_ERRNO: -1,
|
||
Z_STREAM_ERROR: -2,
|
||
Z_DATA_ERROR: -3,
|
||
//Z_MEM_ERROR: -4,
|
||
Z_BUF_ERROR: -5,
|
||
//Z_VERSION_ERROR: -6,
|
||
|
||
/* compression levels */
|
||
Z_NO_COMPRESSION: 0,
|
||
Z_BEST_SPEED: 1,
|
||
Z_BEST_COMPRESSION: 9,
|
||
Z_DEFAULT_COMPRESSION: -1,
|
||
|
||
|
||
Z_FILTERED: 1,
|
||
Z_HUFFMAN_ONLY: 2,
|
||
Z_RLE: 3,
|
||
Z_FIXED: 4,
|
||
Z_DEFAULT_STRATEGY: 0,
|
||
|
||
/* Possible values of the data_type field (though see inflate()) */
|
||
Z_BINARY: 0,
|
||
Z_TEXT: 1,
|
||
//Z_ASCII: 1, // = Z_TEXT (deprecated)
|
||
Z_UNKNOWN: 2,
|
||
|
||
/* The deflate compression method */
|
||
Z_DEFLATED: 8
|
||
//Z_NULL: null // Use -1 or null inline, depending on var type
|
||
};
|
||
|
||
},{}],7:[function(require,module,exports){
|
||
'use strict';
|
||
|
||
// Note: we can't get significant speed boost here.
|
||
// So write code to minimize size - no pregenerated tables
|
||
// and array tools dependencies.
|
||
|
||
// (C) 1995-2013 Jean-loup Gailly and Mark Adler
|
||
// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
|
||
//
|
||
// This software is provided 'as-is', without any express or implied
|
||
// warranty. In no event will the authors be held liable for any damages
|
||
// arising from the use of this software.
|
||
//
|
||
// Permission is granted to anyone to use this software for any purpose,
|
||
// including commercial applications, and to alter it and redistribute it
|
||
// freely, subject to the following restrictions:
|
||
//
|
||
// 1. The origin of this software must not be misrepresented; you must not
|
||
// claim that you wrote the original software. If you use this software
|
||
// in a product, an acknowledgment in the product documentation would be
|
||
// appreciated but is not required.
|
||
// 2. Altered source versions must be plainly marked as such, and must not be
|
||
// misrepresented as being the original software.
|
||
// 3. This notice may not be removed or altered from any source distribution.
|
||
|
||
// Use ordinary array, since untyped makes no boost here
|
||
function makeTable() {
|
||
var c, table = [];
|
||
|
||
for (var n = 0; n < 256; n++) {
|
||
c = n;
|
||
for (var k = 0; k < 8; k++) {
|
||
c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));
|
||
}
|
||
table[n] = c;
|
||
}
|
||
|
||
return table;
|
||
}
|
||
|
||
// Create table on load. Just 255 signed longs. Not a problem.
|
||
var crcTable = makeTable();
|
||
|
||
|
||
function crc32(crc, buf, len, pos) {
|
||
var t = crcTable,
|
||
end = pos + len;
|
||
|
||
crc ^= -1;
|
||
|
||
for (var i = pos; i < end; i++) {
|
||
crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];
|
||
}
|
||
|
||
return (crc ^ (-1)); // >>> 0;
|
||
}
|
||
|
||
|
||
module.exports = crc32;
|
||
|
||
},{}],8:[function(require,module,exports){
|
||
'use strict';
|
||
|
||
// (C) 1995-2013 Jean-loup Gailly and Mark Adler
|
||
// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
|
||
//
|
||
// This software is provided 'as-is', without any express or implied
|
||
// warranty. In no event will the authors be held liable for any damages
|
||
// arising from the use of this software.
|
||
//
|
||
// Permission is granted to anyone to use this software for any purpose,
|
||
// including commercial applications, and to alter it and redistribute it
|
||
// freely, subject to the following restrictions:
|
||
//
|
||
// 1. The origin of this software must not be misrepresented; you must not
|
||
// claim that you wrote the original software. If you use this software
|
||
// in a product, an acknowledgment in the product documentation would be
|
||
// appreciated but is not required.
|
||
// 2. Altered source versions must be plainly marked as such, and must not be
|
||
// misrepresented as being the original software.
|
||
// 3. This notice may not be removed or altered from any source distribution.
|
||
|
||
var utils = require('../utils/common');
|
||
var trees = require('./trees');
|
||
var adler32 = require('./adler32');
|
||
var crc32 = require('./crc32');
|
||
var msg = require('./messages');
|
||
|
||
/* Public constants ==========================================================*/
|
||
/* ===========================================================================*/
|
||
|
||
|
||
/* Allowed flush values; see deflate() and inflate() below for details */
|
||
var Z_NO_FLUSH = 0;
|
||
var Z_PARTIAL_FLUSH = 1;
|
||
//var Z_SYNC_FLUSH = 2;
|
||
var Z_FULL_FLUSH = 3;
|
||
var Z_FINISH = 4;
|
||
var Z_BLOCK = 5;
|
||
//var Z_TREES = 6;
|
||
|
||
|
||
/* Return codes for the compression/decompression functions. Negative values
|
||
* are errors, positive values are used for special but normal events.
|
||
*/
|
||
var Z_OK = 0;
|
||
var Z_STREAM_END = 1;
|
||
//var Z_NEED_DICT = 2;
|
||
//var Z_ERRNO = -1;
|
||
var Z_STREAM_ERROR = -2;
|
||
var Z_DATA_ERROR = -3;
|
||
//var Z_MEM_ERROR = -4;
|
||
var Z_BUF_ERROR = -5;
|
||
//var Z_VERSION_ERROR = -6;
|
||
|
||
|
||
/* compression levels */
|
||
//var Z_NO_COMPRESSION = 0;
|
||
//var Z_BEST_SPEED = 1;
|
||
//var Z_BEST_COMPRESSION = 9;
|
||
var Z_DEFAULT_COMPRESSION = -1;
|
||
|
||
|
||
var Z_FILTERED = 1;
|
||
var Z_HUFFMAN_ONLY = 2;
|
||
var Z_RLE = 3;
|
||
var Z_FIXED = 4;
|
||
var Z_DEFAULT_STRATEGY = 0;
|
||
|
||
/* Possible values of the data_type field (though see inflate()) */
|
||
//var Z_BINARY = 0;
|
||
//var Z_TEXT = 1;
|
||
//var Z_ASCII = 1; // = Z_TEXT
|
||
var Z_UNKNOWN = 2;
|
||
|
||
|
||
/* The deflate compression method */
|
||
var Z_DEFLATED = 8;
|
||
|
||
/*============================================================================*/
|
||
|
||
|
||
var MAX_MEM_LEVEL = 9;
|
||
/* Maximum value for memLevel in deflateInit2 */
|
||
var MAX_WBITS = 15;
|
||
/* 32K LZ77 window */
|
||
var DEF_MEM_LEVEL = 8;
|
||
|
||
|
||
var LENGTH_CODES = 29;
|
||
/* number of length codes, not counting the special END_BLOCK code */
|
||
var LITERALS = 256;
|
||
/* number of literal bytes 0..255 */
|
||
var L_CODES = LITERALS + 1 + LENGTH_CODES;
|
||
/* number of Literal or Length codes, including the END_BLOCK code */
|
||
var D_CODES = 30;
|
||
/* number of distance codes */
|
||
var BL_CODES = 19;
|
||
/* number of codes used to transfer the bit lengths */
|
||
var HEAP_SIZE = 2 * L_CODES + 1;
|
||
/* maximum heap size */
|
||
var MAX_BITS = 15;
|
||
/* All codes must not exceed MAX_BITS bits */
|
||
|
||
var MIN_MATCH = 3;
|
||
var MAX_MATCH = 258;
|
||
var MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);
|
||
|
||
var PRESET_DICT = 0x20;
|
||
|
||
var INIT_STATE = 42;
|
||
var EXTRA_STATE = 69;
|
||
var NAME_STATE = 73;
|
||
var COMMENT_STATE = 91;
|
||
var HCRC_STATE = 103;
|
||
var BUSY_STATE = 113;
|
||
var FINISH_STATE = 666;
|
||
|
||
var BS_NEED_MORE = 1; /* block not completed, need more input or more output */
|
||
var BS_BLOCK_DONE = 2; /* block flush performed */
|
||
var BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */
|
||
var BS_FINISH_DONE = 4; /* finish done, accept no more input or output */
|
||
|
||
var OS_CODE = 0x03; // Unix :) . Don't detect, use this default.
|
||
|
||
function err(strm, errorCode) {
|
||
strm.msg = msg[errorCode];
|
||
return errorCode;
|
||
}
|
||
|
||
function rank(f) {
|
||
return ((f) << 1) - ((f) > 4 ? 9 : 0);
|
||
}
|
||
|
||
function zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }
|
||
|
||
|
||
/* =========================================================================
|
||
* Flush as much pending output as possible. All deflate() output goes
|
||
* through this function so some applications may wish to modify it
|
||
* to avoid allocating a large strm->output buffer and copying into it.
|
||
* (See also read_buf()).
|
||
*/
|
||
function flush_pending(strm) {
|
||
var s = strm.state;
|
||
|
||
//_tr_flush_bits(s);
|
||
var len = s.pending;
|
||
if (len > strm.avail_out) {
|
||
len = strm.avail_out;
|
||
}
|
||
if (len === 0) { return; }
|
||
|
||
utils.arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out);
|
||
strm.next_out += len;
|
||
s.pending_out += len;
|
||
strm.total_out += len;
|
||
strm.avail_out -= len;
|
||
s.pending -= len;
|
||
if (s.pending === 0) {
|
||
s.pending_out = 0;
|
||
}
|
||
}
|
||
|
||
|
||
function flush_block_only(s, last) {
|
||
trees._tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);
|
||
s.block_start = s.strstart;
|
||
flush_pending(s.strm);
|
||
}
|
||
|
||
|
||
function put_byte(s, b) {
|
||
s.pending_buf[s.pending++] = b;
|
||
}
|
||
|
||
|
||
/* =========================================================================
|
||
* Put a short in the pending buffer. The 16-bit value is put in MSB order.
|
||
* IN assertion: the stream state is correct and there is enough room in
|
||
* pending_buf.
|
||
*/
|
||
function putShortMSB(s, b) {
|
||
// put_byte(s, (Byte)(b >> 8));
|
||
// put_byte(s, (Byte)(b & 0xff));
|
||
s.pending_buf[s.pending++] = (b >>> 8) & 0xff;
|
||
s.pending_buf[s.pending++] = b & 0xff;
|
||
}
|
||
|
||
|
||
/* ===========================================================================
|
||
* Read a new buffer from the current input stream, update the adler32
|
||
* and total number of bytes read. All deflate() input goes through
|
||
* this function so some applications may wish to modify it to avoid
|
||
* allocating a large strm->input buffer and copying from it.
|
||
* (See also flush_pending()).
|
||
*/
|
||
function read_buf(strm, buf, start, size) {
|
||
var len = strm.avail_in;
|
||
|
||
if (len > size) { len = size; }
|
||
if (len === 0) { return 0; }
|
||
|
||
strm.avail_in -= len;
|
||
|
||
// zmemcpy(buf, strm->next_in, len);
|
||
utils.arraySet(buf, strm.input, strm.next_in, len, start);
|
||
if (strm.state.wrap === 1) {
|
||
strm.adler = adler32(strm.adler, buf, len, start);
|
||
}
|
||
|
||
else if (strm.state.wrap === 2) {
|
||
strm.adler = crc32(strm.adler, buf, len, start);
|
||
}
|
||
|
||
strm.next_in += len;
|
||
strm.total_in += len;
|
||
|
||
return len;
|
||
}
|
||
|
||
|
||
/* ===========================================================================
|
||
* Set match_start to the longest match starting at the given string and
|
||
* return its length. Matches shorter or equal to prev_length are discarded,
|
||
* in which case the result is equal to prev_length and match_start is
|
||
* garbage.
|
||
* IN assertions: cur_match is the head of the hash chain for the current
|
||
* string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1
|
||
* OUT assertion: the match length is not greater than s->lookahead.
|
||
*/
|
||
function longest_match(s, cur_match) {
|
||
var chain_length = s.max_chain_length; /* max hash chain length */
|
||
var scan = s.strstart; /* current string */
|
||
var match; /* matched string */
|
||
var len; /* length of current match */
|
||
var best_len = s.prev_length; /* best match length so far */
|
||
var nice_match = s.nice_match; /* stop if match long enough */
|
||
var limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?
|
||
s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;
|
||
|
||
var _win = s.window; // shortcut
|
||
|
||
var wmask = s.w_mask;
|
||
var prev = s.prev;
|
||
|
||
/* Stop when cur_match becomes <= limit. To simplify the code,
|
||
* we prevent matches with the string of window index 0.
|
||
*/
|
||
|
||
var strend = s.strstart + MAX_MATCH;
|
||
var scan_end1 = _win[scan + best_len - 1];
|
||
var scan_end = _win[scan + best_len];
|
||
|
||
/* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.
|
||
* It is easy to get rid of this optimization if necessary.
|
||
*/
|
||
// Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever");
|
||
|
||
/* Do not waste too much time if we already have a good match: */
|
||
if (s.prev_length >= s.good_match) {
|
||
chain_length >>= 2;
|
||
}
|
||
/* Do not look for matches beyond the end of the input. This is necessary
|
||
* to make deflate deterministic.
|
||
*/
|
||
if (nice_match > s.lookahead) { nice_match = s.lookahead; }
|
||
|
||
// Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead");
|
||
|
||
do {
|
||
// Assert(cur_match < s->strstart, "no future");
|
||
match = cur_match;
|
||
|
||
/* Skip to next match if the match length cannot increase
|
||
* or if the match length is less than 2. Note that the checks below
|
||
* for insufficient lookahead only occur occasionally for performance
|
||
* reasons. Therefore uninitialized memory will be accessed, and
|
||
* conditional jumps will be made that depend on those values.
|
||
* However the length of the match is limited to the lookahead, so
|
||
* the output of deflate is not affected by the uninitialized values.
|
||
*/
|
||
|
||
if (_win[match + best_len] !== scan_end ||
|
||
_win[match + best_len - 1] !== scan_end1 ||
|
||
_win[match] !== _win[scan] ||
|
||
_win[++match] !== _win[scan + 1]) {
|
||
continue;
|
||
}
|
||
|
||
/* The check at best_len-1 can be removed because it will be made
|
||
* again later. (This heuristic is not always a win.)
|
||
* It is not necessary to compare scan[2] and match[2] since they
|
||
* are always equal when the other bytes match, given that
|
||
* the hash keys are equal and that HASH_BITS >= 8.
|
||
*/
|
||
scan += 2;
|
||
match++;
|
||
// Assert(*scan == *match, "match[2]?");
|
||
|
||
/* We check for insufficient lookahead only every 8th comparison;
|
||
* the 256th check will be made at strstart+258.
|
||
*/
|
||
do {
|
||
/*jshint noempty:false*/
|
||
} while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&
|
||
_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&
|
||
_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&
|
||
_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&
|
||
scan < strend);
|
||
|
||
// Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan");
|
||
|
||
len = MAX_MATCH - (strend - scan);
|
||
scan = strend - MAX_MATCH;
|
||
|
||
if (len > best_len) {
|
||
s.match_start = cur_match;
|
||
best_len = len;
|
||
if (len >= nice_match) {
|
||
break;
|
||
}
|
||
scan_end1 = _win[scan + best_len - 1];
|
||
scan_end = _win[scan + best_len];
|
||
}
|
||
} while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);
|
||
|
||
if (best_len <= s.lookahead) {
|
||
return best_len;
|
||
}
|
||
return s.lookahead;
|
||
}
|
||
|
||
|
||
/* ===========================================================================
|
||
* Fill the window when the lookahead becomes insufficient.
|
||
* Updates strstart and lookahead.
|
||
*
|
||
* IN assertion: lookahead < MIN_LOOKAHEAD
|
||
* OUT assertions: strstart <= window_size-MIN_LOOKAHEAD
|
||
* At least one byte has been read, or avail_in == 0; reads are
|
||
* performed for at least two bytes (required for the zip translate_eol
|
||
* option -- not supported here).
|
||
*/
|
||
function fill_window(s) {
|
||
var _w_size = s.w_size;
|
||
var p, n, m, more, str;
|
||
|
||
//Assert(s->lookahead < MIN_LOOKAHEAD, "already enough lookahead");
|
||
|
||
do {
|
||
more = s.window_size - s.lookahead - s.strstart;
|
||
|
||
// JS ints have 32 bit, block below not needed
|
||
/* Deal with !@#$% 64K limit: */
|
||
//if (sizeof(int) <= 2) {
|
||
// if (more == 0 && s->strstart == 0 && s->lookahead == 0) {
|
||
// more = wsize;
|
||
//
|
||
// } else if (more == (unsigned)(-1)) {
|
||
// /* Very unlikely, but possible on 16 bit machine if
|
||
// * strstart == 0 && lookahead == 1 (input done a byte at time)
|
||
// */
|
||
// more--;
|
||
// }
|
||
//}
|
||
|
||
|
||
/* If the window is almost full and there is insufficient lookahead,
|
||
* move the upper half to the lower one to make room in the upper half.
|
||
*/
|
||
if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {
|
||
|
||
utils.arraySet(s.window, s.window, _w_size, _w_size, 0);
|
||
s.match_start -= _w_size;
|
||
s.strstart -= _w_size;
|
||
/* we now have strstart >= MAX_DIST */
|
||
s.block_start -= _w_size;
|
||
|
||
/* Slide the hash table (could be avoided with 32 bit values
|
||
at the expense of memory usage). We slide even when level == 0
|
||
to keep the hash table consistent if we switch back to level > 0
|
||
later. (Using level 0 permanently is not an optimal usage of
|
||
zlib, so we don't care about this pathological case.)
|
||
*/
|
||
|
||
n = s.hash_size;
|
||
p = n;
|
||
do {
|
||
m = s.head[--p];
|
||
s.head[p] = (m >= _w_size ? m - _w_size : 0);
|
||
} while (--n);
|
||
|
||
n = _w_size;
|
||
p = n;
|
||
do {
|
||
m = s.prev[--p];
|
||
s.prev[p] = (m >= _w_size ? m - _w_size : 0);
|
||
/* If n is not on any hash chain, prev[n] is garbage but
|
||
* its value will never be used.
|
||
*/
|
||
} while (--n);
|
||
|
||
more += _w_size;
|
||
}
|
||
if (s.strm.avail_in === 0) {
|
||
break;
|
||
}
|
||
|
||
/* If there was no sliding:
|
||
* strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&
|
||
* more == window_size - lookahead - strstart
|
||
* => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)
|
||
* => more >= window_size - 2*WSIZE + 2
|
||
* In the BIG_MEM or MMAP case (not yet supported),
|
||
* window_size == input_size + MIN_LOOKAHEAD &&
|
||
* strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.
|
||
* Otherwise, window_size == 2*WSIZE so more >= 2.
|
||
* If there was sliding, more >= WSIZE. So in all cases, more >= 2.
|
||
*/
|
||
//Assert(more >= 2, "more < 2");
|
||
n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);
|
||
s.lookahead += n;
|
||
|
||
/* Initialize the hash value now that we have some input: */
|
||
if (s.lookahead + s.insert >= MIN_MATCH) {
|
||
str = s.strstart - s.insert;
|
||
s.ins_h = s.window[str];
|
||
|
||
/* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */
|
||
s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + 1]) & s.hash_mask;
|
||
//#if MIN_MATCH != 3
|
||
// Call update_hash() MIN_MATCH-3 more times
|
||
//#endif
|
||
while (s.insert) {
|
||
/* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */
|
||
s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;
|
||
|
||
s.prev[str & s.w_mask] = s.head[s.ins_h];
|
||
s.head[s.ins_h] = str;
|
||
str++;
|
||
s.insert--;
|
||
if (s.lookahead + s.insert < MIN_MATCH) {
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
/* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,
|
||
* but this is not important since only literal bytes will be emitted.
|
||
*/
|
||
|
||
} while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);
|
||
|
||
/* If the WIN_INIT bytes after the end of the current data have never been
|
||
* written, then zero those bytes in order to avoid memory check reports of
|
||
* the use of uninitialized (or uninitialised as Julian writes) bytes by
|
||
* the longest match routines. Update the high water mark for the next
|
||
* time through here. WIN_INIT is set to MAX_MATCH since the longest match
|
||
* routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.
|
||
*/
|
||
// if (s.high_water < s.window_size) {
|
||
// var curr = s.strstart + s.lookahead;
|
||
// var init = 0;
|
||
//
|
||
// if (s.high_water < curr) {
|
||
// /* Previous high water mark below current data -- zero WIN_INIT
|
||
// * bytes or up to end of window, whichever is less.
|
||
// */
|
||
// init = s.window_size - curr;
|
||
// if (init > WIN_INIT)
|
||
// init = WIN_INIT;
|
||
// zmemzero(s->window + curr, (unsigned)init);
|
||
// s->high_water = curr + init;
|
||
// }
|
||
// else if (s->high_water < (ulg)curr + WIN_INIT) {
|
||
// /* High water mark at or above current data, but below current data
|
||
// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up
|
||
// * to end of window, whichever is less.
|
||
// */
|
||
// init = (ulg)curr + WIN_INIT - s->high_water;
|
||
// if (init > s->window_size - s->high_water)
|
||
// init = s->window_size - s->high_water;
|
||
// zmemzero(s->window + s->high_water, (unsigned)init);
|
||
// s->high_water += init;
|
||
// }
|
||
// }
|
||
//
|
||
// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,
|
||
// "not enough room for search");
|
||
}
|
||
|
||
/* ===========================================================================
|
||
* Copy without compression as much as possible from the input stream, return
|
||
* the current block state.
|
||
* This function does not insert new strings in the dictionary since
|
||
* uncompressible data is probably not useful. This function is used
|
||
* only for the level=0 compression option.
|
||
* NOTE: this function should be optimized to avoid extra copying from
|
||
* window to pending_buf.
|
||
*/
|
||
function deflate_stored(s, flush) {
|
||
/* Stored blocks are limited to 0xffff bytes, pending_buf is limited
|
||
* to pending_buf_size, and each stored block has a 5 byte header:
|
||
*/
|
||
var max_block_size = 0xffff;
|
||
|
||
if (max_block_size > s.pending_buf_size - 5) {
|
||
max_block_size = s.pending_buf_size - 5;
|
||
}
|
||
|
||
/* Copy as much as possible from input to output: */
|
||
for (;;) {
|
||
/* Fill the window as much as possible: */
|
||
if (s.lookahead <= 1) {
|
||
|
||
//Assert(s->strstart < s->w_size+MAX_DIST(s) ||
|
||
// s->block_start >= (long)s->w_size, "slide too late");
|
||
// if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||
|
||
// s.block_start >= s.w_size)) {
|
||
// throw new Error("slide too late");
|
||
// }
|
||
|
||
fill_window(s);
|
||
if (s.lookahead === 0 && flush === Z_NO_FLUSH) {
|
||
return BS_NEED_MORE;
|
||
}
|
||
|
||
if (s.lookahead === 0) {
|
||
break;
|
||
}
|
||
/* flush the current block */
|
||
}
|
||
//Assert(s->block_start >= 0L, "block gone");
|
||
// if (s.block_start < 0) throw new Error("block gone");
|
||
|
||
s.strstart += s.lookahead;
|
||
s.lookahead = 0;
|
||
|
||
/* Emit a stored block if pending_buf will be full: */
|
||
var max_start = s.block_start + max_block_size;
|
||
|
||
if (s.strstart === 0 || s.strstart >= max_start) {
|
||
/* strstart == 0 is possible when wraparound on 16-bit machine */
|
||
s.lookahead = s.strstart - max_start;
|
||
s.strstart = max_start;
|
||
/*** FLUSH_BLOCK(s, 0); ***/
|
||
flush_block_only(s, false);
|
||
if (s.strm.avail_out === 0) {
|
||
return BS_NEED_MORE;
|
||
}
|
||
/***/
|
||
|
||
|
||
}
|
||
/* Flush if we may have to slide, otherwise block_start may become
|
||
* negative and the data will be gone:
|
||
*/
|
||
if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) {
|
||
/*** FLUSH_BLOCK(s, 0); ***/
|
||
flush_block_only(s, false);
|
||
if (s.strm.avail_out === 0) {
|
||
return BS_NEED_MORE;
|
||
}
|
||
/***/
|
||
}
|
||
}
|
||
|
||
s.insert = 0;
|
||
|
||
if (flush === Z_FINISH) {
|
||
/*** FLUSH_BLOCK(s, 1); ***/
|
||
flush_block_only(s, true);
|
||
if (s.strm.avail_out === 0) {
|
||
return BS_FINISH_STARTED;
|
||
}
|
||
/***/
|
||
return BS_FINISH_DONE;
|
||
}
|
||
|
||
if (s.strstart > s.block_start) {
|
||
/*** FLUSH_BLOCK(s, 0); ***/
|
||
flush_block_only(s, false);
|
||
if (s.strm.avail_out === 0) {
|
||
return BS_NEED_MORE;
|
||
}
|
||
/***/
|
||
}
|
||
|
||
return BS_NEED_MORE;
|
||
}
|
||
|
||
/* ===========================================================================
|
||
* Compress as much as possible from the input stream, return the current
|
||
* block state.
|
||
* This function does not perform lazy evaluation of matches and inserts
|
||
* new strings in the dictionary only for unmatched strings or for short
|
||
* matches. It is used only for the fast compression options.
|
||
*/
|
||
function deflate_fast(s, flush) {
|
||
var hash_head; /* head of the hash chain */
|
||
var bflush; /* set if current block must be flushed */
|
||
|
||
for (;;) {
|
||
/* Make sure that we always have enough lookahead, except
|
||
* at the end of the input file. We need MAX_MATCH bytes
|
||
* for the next match, plus MIN_MATCH bytes to insert the
|
||
* string following the next match.
|
||
*/
|
||
if (s.lookahead < MIN_LOOKAHEAD) {
|
||
fill_window(s);
|
||
if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {
|
||
return BS_NEED_MORE;
|
||
}
|
||
if (s.lookahead === 0) {
|
||
break; /* flush the current block */
|
||
}
|
||
}
|
||
|
||
/* Insert the string window[strstart .. strstart+2] in the
|
||
* dictionary, and set hash_head to the head of the hash chain:
|
||
*/
|
||
hash_head = 0/*NIL*/;
|
||
if (s.lookahead >= MIN_MATCH) {
|
||
/*** INSERT_STRING(s, s.strstart, hash_head); ***/
|
||
s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;
|
||
hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
|
||
s.head[s.ins_h] = s.strstart;
|
||
/***/
|
||
}
|
||
|
||
/* Find the longest match, discarding those <= prev_length.
|
||
* At this point we have always match_length < MIN_MATCH
|
||
*/
|
||
if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {
|
||
/* To simplify the code, we prevent matches with the string
|
||
* of window index 0 (in particular we have to avoid a match
|
||
* of the string with itself at the start of the input file).
|
||
*/
|
||
s.match_length = longest_match(s, hash_head);
|
||
/* longest_match() sets match_start */
|
||
}
|
||
if (s.match_length >= MIN_MATCH) {
|
||
// check_match(s, s.strstart, s.match_start, s.match_length); // for debug only
|
||
|
||
/*** _tr_tally_dist(s, s.strstart - s.match_start,
|
||
s.match_length - MIN_MATCH, bflush); ***/
|
||
bflush = trees._tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);
|
||
|
||
s.lookahead -= s.match_length;
|
||
|
||
/* Insert new strings in the hash table only if the match length
|
||
* is not too large. This saves time but degrades compression.
|
||
*/
|
||
if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {
|
||
s.match_length--; /* string at strstart already in table */
|
||
do {
|
||
s.strstart++;
|
||
/*** INSERT_STRING(s, s.strstart, hash_head); ***/
|
||
s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;
|
||
hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
|
||
s.head[s.ins_h] = s.strstart;
|
||
/***/
|
||
/* strstart never exceeds WSIZE-MAX_MATCH, so there are
|
||
* always MIN_MATCH bytes ahead.
|
||
*/
|
||
} while (--s.match_length !== 0);
|
||
s.strstart++;
|
||
} else
|
||
{
|
||
s.strstart += s.match_length;
|
||
s.match_length = 0;
|
||
s.ins_h = s.window[s.strstart];
|
||
/* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */
|
||
s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + 1]) & s.hash_mask;
|
||
|
||
//#if MIN_MATCH != 3
|
||
// Call UPDATE_HASH() MIN_MATCH-3 more times
|
||
//#endif
|
||
/* If lookahead < MIN_MATCH, ins_h is garbage, but it does not
|
||
* matter since it will be recomputed at next deflate call.
|
||
*/
|
||
}
|
||
} else {
|
||
/* No match, output a literal byte */
|
||
//Tracevv((stderr,"%c", s.window[s.strstart]));
|
||
/*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/
|
||
bflush = trees._tr_tally(s, 0, s.window[s.strstart]);
|
||
|
||
s.lookahead--;
|
||
s.strstart++;
|
||
}
|
||
if (bflush) {
|
||
/*** FLUSH_BLOCK(s, 0); ***/
|
||
flush_block_only(s, false);
|
||
if (s.strm.avail_out === 0) {
|
||
return BS_NEED_MORE;
|
||
}
|
||
/***/
|
||
}
|
||
}
|
||
s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);
|
||
if (flush === Z_FINISH) {
|
||
/*** FLUSH_BLOCK(s, 1); ***/
|
||
flush_block_only(s, true);
|
||
if (s.strm.avail_out === 0) {
|
||
return BS_FINISH_STARTED;
|
||
}
|
||
/***/
|
||
return BS_FINISH_DONE;
|
||
}
|
||
if (s.last_lit) {
|
||
/*** FLUSH_BLOCK(s, 0); ***/
|
||
flush_block_only(s, false);
|
||
if (s.strm.avail_out === 0) {
|
||
return BS_NEED_MORE;
|
||
}
|
||
/***/
|
||
}
|
||
return BS_BLOCK_DONE;
|
||
}
|
||
|
||
/* ===========================================================================
|
||
* Same as above, but achieves better compression. We use a lazy
|
||
* evaluation for matches: a match is finally adopted only if there is
|
||
* no better match at the next window position.
|
||
*/
|
||
function deflate_slow(s, flush) {
|
||
var hash_head; /* head of hash chain */
|
||
var bflush; /* set if current block must be flushed */
|
||
|
||
var max_insert;
|
||
|
||
/* Process the input block. */
|
||
for (;;) {
|
||
/* Make sure that we always have enough lookahead, except
|
||
* at the end of the input file. We need MAX_MATCH bytes
|
||
* for the next match, plus MIN_MATCH bytes to insert the
|
||
* string following the next match.
|
||
*/
|
||
if (s.lookahead < MIN_LOOKAHEAD) {
|
||
fill_window(s);
|
||
if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {
|
||
return BS_NEED_MORE;
|
||
}
|
||
if (s.lookahead === 0) { break; } /* flush the current block */
|
||
}
|
||
|
||
/* Insert the string window[strstart .. strstart+2] in the
|
||
* dictionary, and set hash_head to the head of the hash chain:
|
||
*/
|
||
hash_head = 0/*NIL*/;
|
||
if (s.lookahead >= MIN_MATCH) {
|
||
/*** INSERT_STRING(s, s.strstart, hash_head); ***/
|
||
s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;
|
||
hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
|
||
s.head[s.ins_h] = s.strstart;
|
||
/***/
|
||
}
|
||
|
||
/* Find the longest match, discarding those <= prev_length.
|
||
*/
|
||
s.prev_length = s.match_length;
|
||
s.prev_match = s.match_start;
|
||
s.match_length = MIN_MATCH - 1;
|
||
|
||
if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&
|
||
s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {
|
||
/* To simplify the code, we prevent matches with the string
|
||
* of window index 0 (in particular we have to avoid a match
|
||
* of the string with itself at the start of the input file).
|
||
*/
|
||
s.match_length = longest_match(s, hash_head);
|
||
/* longest_match() sets match_start */
|
||
|
||
if (s.match_length <= 5 &&
|
||
(s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {
|
||
|
||
/* If prev_match is also MIN_MATCH, match_start is garbage
|
||
* but we will ignore the current match anyway.
|
||
*/
|
||
s.match_length = MIN_MATCH - 1;
|
||
}
|
||
}
|
||
/* If there was a match at the previous step and the current
|
||
* match is not better, output the previous match:
|
||
*/
|
||
if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {
|
||
max_insert = s.strstart + s.lookahead - MIN_MATCH;
|
||
/* Do not insert strings in hash table beyond this. */
|
||
|
||
//check_match(s, s.strstart-1, s.prev_match, s.prev_length);
|
||
|
||
/***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,
|
||
s.prev_length - MIN_MATCH, bflush);***/
|
||
bflush = trees._tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);
|
||
/* Insert in hash table all strings up to the end of the match.
|
||
* strstart-1 and strstart are already inserted. If there is not
|
||
* enough lookahead, the last two strings are not inserted in
|
||
* the hash table.
|
||
*/
|
||
s.lookahead -= s.prev_length - 1;
|
||
s.prev_length -= 2;
|
||
do {
|
||
if (++s.strstart <= max_insert) {
|
||
/*** INSERT_STRING(s, s.strstart, hash_head); ***/
|
||
s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;
|
||
hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
|
||
s.head[s.ins_h] = s.strstart;
|
||
/***/
|
||
}
|
||
} while (--s.prev_length !== 0);
|
||
s.match_available = 0;
|
||
s.match_length = MIN_MATCH - 1;
|
||
s.strstart++;
|
||
|
||
if (bflush) {
|
||
/*** FLUSH_BLOCK(s, 0); ***/
|
||
flush_block_only(s, false);
|
||
if (s.strm.avail_out === 0) {
|
||
return BS_NEED_MORE;
|
||
}
|
||
/***/
|
||
}
|
||
|
||
} else if (s.match_available) {
|
||
/* If there was no match at the previous position, output a
|
||
* single literal. If there was a match but the current match
|
||
* is longer, truncate the previous match to a single literal.
|
||
*/
|
||
//Tracevv((stderr,"%c", s->window[s->strstart-1]));
|
||
/*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/
|
||
bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);
|
||
|
||
if (bflush) {
|
||
/*** FLUSH_BLOCK_ONLY(s, 0) ***/
|
||
flush_block_only(s, false);
|
||
/***/
|
||
}
|
||
s.strstart++;
|
||
s.lookahead--;
|
||
if (s.strm.avail_out === 0) {
|
||
return BS_NEED_MORE;
|
||
}
|
||
} else {
|
||
/* There is no previous match to compare with, wait for
|
||
* the next step to decide.
|
||
*/
|
||
s.match_available = 1;
|
||
s.strstart++;
|
||
s.lookahead--;
|
||
}
|
||
}
|
||
//Assert (flush != Z_NO_FLUSH, "no flush?");
|
||
if (s.match_available) {
|
||
//Tracevv((stderr,"%c", s->window[s->strstart-1]));
|
||
/*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/
|
||
bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);
|
||
|
||
s.match_available = 0;
|
||
}
|
||
s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;
|
||
if (flush === Z_FINISH) {
|
||
/*** FLUSH_BLOCK(s, 1); ***/
|
||
flush_block_only(s, true);
|
||
if (s.strm.avail_out === 0) {
|
||
return BS_FINISH_STARTED;
|
||
}
|
||
/***/
|
||
return BS_FINISH_DONE;
|
||
}
|
||
if (s.last_lit) {
|
||
/*** FLUSH_BLOCK(s, 0); ***/
|
||
flush_block_only(s, false);
|
||
if (s.strm.avail_out === 0) {
|
||
return BS_NEED_MORE;
|
||
}
|
||
/***/
|
||
}
|
||
|
||
return BS_BLOCK_DONE;
|
||
}
|
||
|
||
|
||
/* ===========================================================================
|
||
* For Z_RLE, simply look for runs of bytes, generate matches only of distance
|
||
* one. Do not maintain a hash table. (It will be regenerated if this run of
|
||
* deflate switches away from Z_RLE.)
|
||
*/
|
||
function deflate_rle(s, flush) {
|
||
var bflush; /* set if current block must be flushed */
|
||
var prev; /* byte at distance one to match */
|
||
var scan, strend; /* scan goes up to strend for length of run */
|
||
|
||
var _win = s.window;
|
||
|
||
for (;;) {
|
||
/* Make sure that we always have enough lookahead, except
|
||
* at the end of the input file. We need MAX_MATCH bytes
|
||
* for the longest run, plus one for the unrolled loop.
|
||
*/
|
||
if (s.lookahead <= MAX_MATCH) {
|
||
fill_window(s);
|
||
if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH) {
|
||
return BS_NEED_MORE;
|
||
}
|
||
if (s.lookahead === 0) { break; } /* flush the current block */
|
||
}
|
||
|
||
/* See how many times the previous byte repeats */
|
||
s.match_length = 0;
|
||
if (s.lookahead >= MIN_MATCH && s.strstart > 0) {
|
||
scan = s.strstart - 1;
|
||
prev = _win[scan];
|
||
if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {
|
||
strend = s.strstart + MAX_MATCH;
|
||
do {
|
||
/*jshint noempty:false*/
|
||
} while (prev === _win[++scan] && prev === _win[++scan] &&
|
||
prev === _win[++scan] && prev === _win[++scan] &&
|
||
prev === _win[++scan] && prev === _win[++scan] &&
|
||
prev === _win[++scan] && prev === _win[++scan] &&
|
||
scan < strend);
|
||
s.match_length = MAX_MATCH - (strend - scan);
|
||
if (s.match_length > s.lookahead) {
|
||
s.match_length = s.lookahead;
|
||
}
|
||
}
|
||
//Assert(scan <= s->window+(uInt)(s->window_size-1), "wild scan");
|
||
}
|
||
|
||
/* Emit match if have run of MIN_MATCH or longer, else emit literal */
|
||
if (s.match_length >= MIN_MATCH) {
|
||
//check_match(s, s.strstart, s.strstart - 1, s.match_length);
|
||
|
||
/*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/
|
||
bflush = trees._tr_tally(s, 1, s.match_length - MIN_MATCH);
|
||
|
||
s.lookahead -= s.match_length;
|
||
s.strstart += s.match_length;
|
||
s.match_length = 0;
|
||
} else {
|
||
/* No match, output a literal byte */
|
||
//Tracevv((stderr,"%c", s->window[s->strstart]));
|
||
/*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/
|
||
bflush = trees._tr_tally(s, 0, s.window[s.strstart]);
|
||
|
||
s.lookahead--;
|
||
s.strstart++;
|
||
}
|
||
if (bflush) {
|
||
/*** FLUSH_BLOCK(s, 0); ***/
|
||
flush_block_only(s, false);
|
||
if (s.strm.avail_out === 0) {
|
||
return BS_NEED_MORE;
|
||
}
|
||
/***/
|
||
}
|
||
}
|
||
s.insert = 0;
|
||
if (flush === Z_FINISH) {
|
||
/*** FLUSH_BLOCK(s, 1); ***/
|
||
flush_block_only(s, true);
|
||
if (s.strm.avail_out === 0) {
|
||
return BS_FINISH_STARTED;
|
||
}
|
||
/***/
|
||
return BS_FINISH_DONE;
|
||
}
|
||
if (s.last_lit) {
|
||
/*** FLUSH_BLOCK(s, 0); ***/
|
||
flush_block_only(s, false);
|
||
if (s.strm.avail_out === 0) {
|
||
return BS_NEED_MORE;
|
||
}
|
||
/***/
|
||
}
|
||
return BS_BLOCK_DONE;
|
||
}
|
||
|
||
/* ===========================================================================
|
||
* For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.
|
||
* (It will be regenerated if this run of deflate switches away from Huffman.)
|
||
*/
|
||
function deflate_huff(s, flush) {
|
||
var bflush; /* set if current block must be flushed */
|
||
|
||
for (;;) {
|
||
/* Make sure that we have a literal to write. */
|
||
if (s.lookahead === 0) {
|
||
fill_window(s);
|
||
if (s.lookahead === 0) {
|
||
if (flush === Z_NO_FLUSH) {
|
||
return BS_NEED_MORE;
|
||
}
|
||
break; /* flush the current block */
|
||
}
|
||
}
|
||
|
||
/* Output a literal byte */
|
||
s.match_length = 0;
|
||
//Tracevv((stderr,"%c", s->window[s->strstart]));
|
||
/*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/
|
||
bflush = trees._tr_tally(s, 0, s.window[s.strstart]);
|
||
s.lookahead--;
|
||
s.strstart++;
|
||
if (bflush) {
|
||
/*** FLUSH_BLOCK(s, 0); ***/
|
||
flush_block_only(s, false);
|
||
if (s.strm.avail_out === 0) {
|
||
return BS_NEED_MORE;
|
||
}
|
||
/***/
|
||
}
|
||
}
|
||
s.insert = 0;
|
||
if (flush === Z_FINISH) {
|
||
/*** FLUSH_BLOCK(s, 1); ***/
|
||
flush_block_only(s, true);
|
||
if (s.strm.avail_out === 0) {
|
||
return BS_FINISH_STARTED;
|
||
}
|
||
/***/
|
||
return BS_FINISH_DONE;
|
||
}
|
||
if (s.last_lit) {
|
||
/*** FLUSH_BLOCK(s, 0); ***/
|
||
flush_block_only(s, false);
|
||
if (s.strm.avail_out === 0) {
|
||
return BS_NEED_MORE;
|
||
}
|
||
/***/
|
||
}
|
||
return BS_BLOCK_DONE;
|
||
}
|
||
|
||
/* Values for max_lazy_match, good_match and max_chain_length, depending on
|
||
* the desired pack level (0..9). The values given below have been tuned to
|
||
* exclude worst case performance for pathological files. Better values may be
|
||
* found for specific files.
|
||
*/
|
||
function Config(good_length, max_lazy, nice_length, max_chain, func) {
|
||
this.good_length = good_length;
|
||
this.max_lazy = max_lazy;
|
||
this.nice_length = nice_length;
|
||
this.max_chain = max_chain;
|
||
this.func = func;
|
||
}
|
||
|
||
var configuration_table;
|
||
|
||
configuration_table = [
|
||
/* good lazy nice chain */
|
||
new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */
|
||
new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */
|
||
new Config(4, 5, 16, 8, deflate_fast), /* 2 */
|
||
new Config(4, 6, 32, 32, deflate_fast), /* 3 */
|
||
|
||
new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */
|
||
new Config(8, 16, 32, 32, deflate_slow), /* 5 */
|
||
new Config(8, 16, 128, 128, deflate_slow), /* 6 */
|
||
new Config(8, 32, 128, 256, deflate_slow), /* 7 */
|
||
new Config(32, 128, 258, 1024, deflate_slow), /* 8 */
|
||
new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */
|
||
];
|
||
|
||
|
||
/* ===========================================================================
|
||
* Initialize the "longest match" routines for a new zlib stream
|
||
*/
|
||
function lm_init(s) {
|
||
s.window_size = 2 * s.w_size;
|
||
|
||
/*** CLEAR_HASH(s); ***/
|
||
zero(s.head); // Fill with NIL (= 0);
|
||
|
||
/* Set the default configuration parameters:
|
||
*/
|
||
s.max_lazy_match = configuration_table[s.level].max_lazy;
|
||
s.good_match = configuration_table[s.level].good_length;
|
||
s.nice_match = configuration_table[s.level].nice_length;
|
||
s.max_chain_length = configuration_table[s.level].max_chain;
|
||
|
||
s.strstart = 0;
|
||
s.block_start = 0;
|
||
s.lookahead = 0;
|
||
s.insert = 0;
|
||
s.match_length = s.prev_length = MIN_MATCH - 1;
|
||
s.match_available = 0;
|
||
s.ins_h = 0;
|
||
}
|
||
|
||
|
||
function DeflateState() {
|
||
this.strm = null; /* pointer back to this zlib stream */
|
||
this.status = 0; /* as the name implies */
|
||
this.pending_buf = null; /* output still pending */
|
||
this.pending_buf_size = 0; /* size of pending_buf */
|
||
this.pending_out = 0; /* next pending byte to output to the stream */
|
||
this.pending = 0; /* nb of bytes in the pending buffer */
|
||
this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */
|
||
this.gzhead = null; /* gzip header information to write */
|
||
this.gzindex = 0; /* where in extra, name, or comment */
|
||
this.method = Z_DEFLATED; /* can only be DEFLATED */
|
||
this.last_flush = -1; /* value of flush param for previous deflate call */
|
||
|
||
this.w_size = 0; /* LZ77 window size (32K by default) */
|
||
this.w_bits = 0; /* log2(w_size) (8..16) */
|
||
this.w_mask = 0; /* w_size - 1 */
|
||
|
||
this.window = null;
|
||
/* Sliding window. Input bytes are read into the second half of the window,
|
||
* and move to the first half later to keep a dictionary of at least wSize
|
||
* bytes. With this organization, matches are limited to a distance of
|
||
* wSize-MAX_MATCH bytes, but this ensures that IO is always
|
||
* performed with a length multiple of the block size.
|
||
*/
|
||
|
||
this.window_size = 0;
|
||
/* Actual size of window: 2*wSize, except when the user input buffer
|
||
* is directly used as sliding window.
|
||
*/
|
||
|
||
this.prev = null;
|
||
/* Link to older string with same hash index. To limit the size of this
|
||
* array to 64K, this link is maintained only for the last 32K strings.
|
||
* An index in this array is thus a window index modulo 32K.
|
||
*/
|
||
|
||
this.head = null; /* Heads of the hash chains or NIL. */
|
||
|
||
this.ins_h = 0; /* hash index of string to be inserted */
|
||
this.hash_size = 0; /* number of elements in hash table */
|
||
this.hash_bits = 0; /* log2(hash_size) */
|
||
this.hash_mask = 0; /* hash_size-1 */
|
||
|
||
this.hash_shift = 0;
|
||
/* Number of bits by which ins_h must be shifted at each input
|
||
* step. It must be such that after MIN_MATCH steps, the oldest
|
||
* byte no longer takes part in the hash key, that is:
|
||
* hash_shift * MIN_MATCH >= hash_bits
|
||
*/
|
||
|
||
this.block_start = 0;
|
||
/* Window position at the beginning of the current output block. Gets
|
||
* negative when the window is moved backwards.
|
||
*/
|
||
|
||
this.match_length = 0; /* length of best match */
|
||
this.prev_match = 0; /* previous match */
|
||
this.match_available = 0; /* set if previous match exists */
|
||
this.strstart = 0; /* start of string to insert */
|
||
this.match_start = 0; /* start of matching string */
|
||
this.lookahead = 0; /* number of valid bytes ahead in window */
|
||
|
||
this.prev_length = 0;
|
||
/* Length of the best match at previous step. Matches not greater than this
|
||
* are discarded. This is used in the lazy match evaluation.
|
||
*/
|
||
|
||
this.max_chain_length = 0;
|
||
/* To speed up deflation, hash chains are never searched beyond this
|
||
* length. A higher limit improves compression ratio but degrades the
|
||
* speed.
|
||
*/
|
||
|
||
this.max_lazy_match = 0;
|
||
/* Attempt to find a better match only when the current match is strictly
|
||
* smaller than this value. This mechanism is used only for compression
|
||
* levels >= 4.
|
||
*/
|
||
// That's alias to max_lazy_match, don't use directly
|
||
//this.max_insert_length = 0;
|
||
/* Insert new strings in the hash table only if the match length is not
|
||
* greater than this length. This saves time but degrades compression.
|
||
* max_insert_length is used only for compression levels <= 3.
|
||
*/
|
||
|
||
this.level = 0; /* compression level (1..9) */
|
||
this.strategy = 0; /* favor or force Huffman coding*/
|
||
|
||
this.good_match = 0;
|
||
/* Use a faster search when the previous match is longer than this */
|
||
|
||
this.nice_match = 0; /* Stop searching when current match exceeds this */
|
||
|
||
/* used by trees.c: */
|
||
|
||
/* Didn't use ct_data typedef below to suppress compiler warning */
|
||
|
||
// struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */
|
||
// struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */
|
||
// struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */
|
||
|
||
// Use flat array of DOUBLE size, with interleaved fata,
|
||
// because JS does not support effective
|
||
this.dyn_ltree = new utils.Buf16(HEAP_SIZE * 2);
|
||
this.dyn_dtree = new utils.Buf16((2 * D_CODES + 1) * 2);
|
||
this.bl_tree = new utils.Buf16((2 * BL_CODES + 1) * 2);
|
||
zero(this.dyn_ltree);
|
||
zero(this.dyn_dtree);
|
||
zero(this.bl_tree);
|
||
|
||
this.l_desc = null; /* desc. for literal tree */
|
||
this.d_desc = null; /* desc. for distance tree */
|
||
this.bl_desc = null; /* desc. for bit length tree */
|
||
|
||
//ush bl_count[MAX_BITS+1];
|
||
this.bl_count = new utils.Buf16(MAX_BITS + 1);
|
||
/* number of codes at each bit length for an optimal tree */
|
||
|
||
//int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */
|
||
this.heap = new utils.Buf16(2 * L_CODES + 1); /* heap used to build the Huffman trees */
|
||
zero(this.heap);
|
||
|
||
this.heap_len = 0; /* number of elements in the heap */
|
||
this.heap_max = 0; /* element of largest frequency */
|
||
/* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.
|
||
* The same heap array is used to build all trees.
|
||
*/
|
||
|
||
this.depth = new utils.Buf16(2 * L_CODES + 1); //uch depth[2*L_CODES+1];
|
||
zero(this.depth);
|
||
/* Depth of each subtree used as tie breaker for trees of equal frequency
|
||
*/
|
||
|
||
this.l_buf = 0; /* buffer index for literals or lengths */
|
||
|
||
this.lit_bufsize = 0;
|
||
/* Size of match buffer for literals/lengths. There are 4 reasons for
|
||
* limiting lit_bufsize to 64K:
|
||
* - frequencies can be kept in 16 bit counters
|
||
* - if compression is not successful for the first block, all input
|
||
* data is still in the window so we can still emit a stored block even
|
||
* when input comes from standard input. (This can also be done for
|
||
* all blocks if lit_bufsize is not greater than 32K.)
|
||
* - if compression is not successful for a file smaller than 64K, we can
|
||
* even emit a stored file instead of a stored block (saving 5 bytes).
|
||
* This is applicable only for zip (not gzip or zlib).
|
||
* - creating new Huffman trees less frequently may not provide fast
|
||
* adaptation to changes in the input data statistics. (Take for
|
||
* example a binary file with poorly compressible code followed by
|
||
* a highly compressible string table.) Smaller buffer sizes give
|
||
* fast adaptation but have of course the overhead of transmitting
|
||
* trees more frequently.
|
||
* - I can't count above 4
|
||
*/
|
||
|
||
this.last_lit = 0; /* running index in l_buf */
|
||
|
||
this.d_buf = 0;
|
||
/* Buffer index for distances. To simplify the code, d_buf and l_buf have
|
||
* the same number of elements. To use different lengths, an extra flag
|
||
* array would be necessary.
|
||
*/
|
||
|
||
this.opt_len = 0; /* bit length of current block with optimal trees */
|
||
this.static_len = 0; /* bit length of current block with static trees */
|
||
this.matches = 0; /* number of string matches in current block */
|
||
this.insert = 0; /* bytes at end of window left to insert */
|
||
|
||
|
||
this.bi_buf = 0;
|
||
/* Output buffer. bits are inserted starting at the bottom (least
|
||
* significant bits).
|
||
*/
|
||
this.bi_valid = 0;
|
||
/* Number of valid bits in bi_buf. All bits above the last valid bit
|
||
* are always zero.
|
||
*/
|
||
|
||
// Used for window memory init. We safely ignore it for JS. That makes
|
||
// sense only for pointers and memory check tools.
|
||
//this.high_water = 0;
|
||
/* High water mark offset in window for initialized bytes -- bytes above
|
||
* this are set to zero in order to avoid memory check warnings when
|
||
* longest match routines access bytes past the input. This is then
|
||
* updated to the new high water mark.
|
||
*/
|
||
}
|
||
|
||
|
||
function deflateResetKeep(strm) {
|
||
var s;
|
||
|
||
if (!strm || !strm.state) {
|
||
return err(strm, Z_STREAM_ERROR);
|
||
}
|
||
|
||
strm.total_in = strm.total_out = 0;
|
||
strm.data_type = Z_UNKNOWN;
|
||
|
||
s = strm.state;
|
||
s.pending = 0;
|
||
s.pending_out = 0;
|
||
|
||
if (s.wrap < 0) {
|
||
s.wrap = -s.wrap;
|
||
/* was made negative by deflate(..., Z_FINISH); */
|
||
}
|
||
s.status = (s.wrap ? INIT_STATE : BUSY_STATE);
|
||
strm.adler = (s.wrap === 2) ?
|
||
0 // crc32(0, Z_NULL, 0)
|
||
:
|
||
1; // adler32(0, Z_NULL, 0)
|
||
s.last_flush = Z_NO_FLUSH;
|
||
trees._tr_init(s);
|
||
return Z_OK;
|
||
}
|
||
|
||
|
||
function deflateReset(strm) {
|
||
var ret = deflateResetKeep(strm);
|
||
if (ret === Z_OK) {
|
||
lm_init(strm.state);
|
||
}
|
||
return ret;
|
||
}
|
||
|
||
|
||
function deflateSetHeader(strm, head) {
|
||
if (!strm || !strm.state) { return Z_STREAM_ERROR; }
|
||
if (strm.state.wrap !== 2) { return Z_STREAM_ERROR; }
|
||
strm.state.gzhead = head;
|
||
return Z_OK;
|
||
}
|
||
|
||
|
||
function deflateInit2(strm, level, method, windowBits, memLevel, strategy) {
|
||
if (!strm) { // === Z_NULL
|
||
return Z_STREAM_ERROR;
|
||
}
|
||
var wrap = 1;
|
||
|
||
if (level === Z_DEFAULT_COMPRESSION) {
|
||
level = 6;
|
||
}
|
||
|
||
if (windowBits < 0) { /* suppress zlib wrapper */
|
||
wrap = 0;
|
||
windowBits = -windowBits;
|
||
}
|
||
|
||
else if (windowBits > 15) {
|
||
wrap = 2; /* write gzip wrapper instead */
|
||
windowBits -= 16;
|
||
}
|
||
|
||
|
||
if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED ||
|
||
windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||
|
||
strategy < 0 || strategy > Z_FIXED) {
|
||
return err(strm, Z_STREAM_ERROR);
|
||
}
|
||
|
||
|
||
if (windowBits === 8) {
|
||
windowBits = 9;
|
||
}
|
||
/* until 256-byte window bug fixed */
|
||
|
||
var s = new DeflateState();
|
||
|
||
strm.state = s;
|
||
s.strm = strm;
|
||
|
||
s.wrap = wrap;
|
||
s.gzhead = null;
|
||
s.w_bits = windowBits;
|
||
s.w_size = 1 << s.w_bits;
|
||
s.w_mask = s.w_size - 1;
|
||
|
||
s.hash_bits = memLevel + 7;
|
||
s.hash_size = 1 << s.hash_bits;
|
||
s.hash_mask = s.hash_size - 1;
|
||
s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);
|
||
|
||
s.window = new utils.Buf8(s.w_size * 2);
|
||
s.head = new utils.Buf16(s.hash_size);
|
||
s.prev = new utils.Buf16(s.w_size);
|
||
|
||
// Don't need mem init magic for JS.
|
||
//s.high_water = 0; /* nothing written to s->window yet */
|
||
|
||
s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */
|
||
|
||
s.pending_buf_size = s.lit_bufsize * 4;
|
||
|
||
//overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);
|
||
//s->pending_buf = (uchf *) overlay;
|
||
s.pending_buf = new utils.Buf8(s.pending_buf_size);
|
||
|
||
// It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)
|
||
//s->d_buf = overlay + s->lit_bufsize/sizeof(ush);
|
||
s.d_buf = 1 * s.lit_bufsize;
|
||
|
||
//s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;
|
||
s.l_buf = (1 + 2) * s.lit_bufsize;
|
||
|
||
s.level = level;
|
||
s.strategy = strategy;
|
||
s.method = method;
|
||
|
||
return deflateReset(strm);
|
||
}
|
||
|
||
function deflateInit(strm, level) {
|
||
return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY);
|
||
}
|
||
|
||
|
||
function deflate(strm, flush) {
|
||
var old_flush, s;
|
||
var beg, val; // for gzip header write only
|
||
|
||
if (!strm || !strm.state ||
|
||
flush > Z_BLOCK || flush < 0) {
|
||
return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR;
|
||
}
|
||
|
||
s = strm.state;
|
||
|
||
if (!strm.output ||
|
||
(!strm.input && strm.avail_in !== 0) ||
|
||
(s.status === FINISH_STATE && flush !== Z_FINISH)) {
|
||
return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR : Z_STREAM_ERROR);
|
||
}
|
||
|
||
s.strm = strm; /* just in case */
|
||
old_flush = s.last_flush;
|
||
s.last_flush = flush;
|
||
|
||
/* Write the header */
|
||
if (s.status === INIT_STATE) {
|
||
|
||
if (s.wrap === 2) { // GZIP header
|
||
strm.adler = 0; //crc32(0L, Z_NULL, 0);
|
||
put_byte(s, 31);
|
||
put_byte(s, 139);
|
||
put_byte(s, 8);
|
||
if (!s.gzhead) { // s->gzhead == Z_NULL
|
||
put_byte(s, 0);
|
||
put_byte(s, 0);
|
||
put_byte(s, 0);
|
||
put_byte(s, 0);
|
||
put_byte(s, 0);
|
||
put_byte(s, s.level === 9 ? 2 :
|
||
(s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?
|
||
4 : 0));
|
||
put_byte(s, OS_CODE);
|
||
s.status = BUSY_STATE;
|
||
}
|
||
else {
|
||
put_byte(s, (s.gzhead.text ? 1 : 0) +
|
||
(s.gzhead.hcrc ? 2 : 0) +
|
||
(!s.gzhead.extra ? 0 : 4) +
|
||
(!s.gzhead.name ? 0 : 8) +
|
||
(!s.gzhead.comment ? 0 : 16)
|
||
);
|
||
put_byte(s, s.gzhead.time & 0xff);
|
||
put_byte(s, (s.gzhead.time >> 8) & 0xff);
|
||
put_byte(s, (s.gzhead.time >> 16) & 0xff);
|
||
put_byte(s, (s.gzhead.time >> 24) & 0xff);
|
||
put_byte(s, s.level === 9 ? 2 :
|
||
(s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?
|
||
4 : 0));
|
||
put_byte(s, s.gzhead.os & 0xff);
|
||
if (s.gzhead.extra && s.gzhead.extra.length) {
|
||
put_byte(s, s.gzhead.extra.length & 0xff);
|
||
put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);
|
||
}
|
||
if (s.gzhead.hcrc) {
|
||
strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0);
|
||
}
|
||
s.gzindex = 0;
|
||
s.status = EXTRA_STATE;
|
||
}
|
||
}
|
||
else // DEFLATE header
|
||
{
|
||
var header = (Z_DEFLATED + ((s.w_bits - 8) << 4)) << 8;
|
||
var level_flags = -1;
|
||
|
||
if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {
|
||
level_flags = 0;
|
||
} else if (s.level < 6) {
|
||
level_flags = 1;
|
||
} else if (s.level === 6) {
|
||
level_flags = 2;
|
||
} else {
|
||
level_flags = 3;
|
||
}
|
||
header |= (level_flags << 6);
|
||
if (s.strstart !== 0) { header |= PRESET_DICT; }
|
||
header += 31 - (header % 31);
|
||
|
||
s.status = BUSY_STATE;
|
||
putShortMSB(s, header);
|
||
|
||
/* Save the adler32 of the preset dictionary: */
|
||
if (s.strstart !== 0) {
|
||
putShortMSB(s, strm.adler >>> 16);
|
||
putShortMSB(s, strm.adler & 0xffff);
|
||
}
|
||
strm.adler = 1; // adler32(0L, Z_NULL, 0);
|
||
}
|
||
}
|
||
|
||
//#ifdef GZIP
|
||
if (s.status === EXTRA_STATE) {
|
||
if (s.gzhead.extra/* != Z_NULL*/) {
|
||
beg = s.pending; /* start of bytes to update crc */
|
||
|
||
while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {
|
||
if (s.pending === s.pending_buf_size) {
|
||
if (s.gzhead.hcrc && s.pending > beg) {
|
||
strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
|
||
}
|
||
flush_pending(strm);
|
||
beg = s.pending;
|
||
if (s.pending === s.pending_buf_size) {
|
||
break;
|
||
}
|
||
}
|
||
put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);
|
||
s.gzindex++;
|
||
}
|
||
if (s.gzhead.hcrc && s.pending > beg) {
|
||
strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
|
||
}
|
||
if (s.gzindex === s.gzhead.extra.length) {
|
||
s.gzindex = 0;
|
||
s.status = NAME_STATE;
|
||
}
|
||
}
|
||
else {
|
||
s.status = NAME_STATE;
|
||
}
|
||
}
|
||
if (s.status === NAME_STATE) {
|
||
if (s.gzhead.name/* != Z_NULL*/) {
|
||
beg = s.pending; /* start of bytes to update crc */
|
||
//int val;
|
||
|
||
do {
|
||
if (s.pending === s.pending_buf_size) {
|
||
if (s.gzhead.hcrc && s.pending > beg) {
|
||
strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
|
||
}
|
||
flush_pending(strm);
|
||
beg = s.pending;
|
||
if (s.pending === s.pending_buf_size) {
|
||
val = 1;
|
||
break;
|
||
}
|
||
}
|
||
// JS specific: little magic to add zero terminator to end of string
|
||
if (s.gzindex < s.gzhead.name.length) {
|
||
val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;
|
||
} else {
|
||
val = 0;
|
||
}
|
||
put_byte(s, val);
|
||
} while (val !== 0);
|
||
|
||
if (s.gzhead.hcrc && s.pending > beg) {
|
||
strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
|
||
}
|
||
if (val === 0) {
|
||
s.gzindex = 0;
|
||
s.status = COMMENT_STATE;
|
||
}
|
||
}
|
||
else {
|
||
s.status = COMMENT_STATE;
|
||
}
|
||
}
|
||
if (s.status === COMMENT_STATE) {
|
||
if (s.gzhead.comment/* != Z_NULL*/) {
|
||
beg = s.pending; /* start of bytes to update crc */
|
||
//int val;
|
||
|
||
do {
|
||
if (s.pending === s.pending_buf_size) {
|
||
if (s.gzhead.hcrc && s.pending > beg) {
|
||
strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
|
||
}
|
||
flush_pending(strm);
|
||
beg = s.pending;
|
||
if (s.pending === s.pending_buf_size) {
|
||
val = 1;
|
||
break;
|
||
}
|
||
}
|
||
// JS specific: little magic to add zero terminator to end of string
|
||
if (s.gzindex < s.gzhead.comment.length) {
|
||
val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;
|
||
} else {
|
||
val = 0;
|
||
}
|
||
put_byte(s, val);
|
||
} while (val !== 0);
|
||
|
||
if (s.gzhead.hcrc && s.pending > beg) {
|
||
strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
|
||
}
|
||
if (val === 0) {
|
||
s.status = HCRC_STATE;
|
||
}
|
||
}
|
||
else {
|
||
s.status = HCRC_STATE;
|
||
}
|
||
}
|
||
if (s.status === HCRC_STATE) {
|
||
if (s.gzhead.hcrc) {
|
||
if (s.pending + 2 > s.pending_buf_size) {
|
||
flush_pending(strm);
|
||
}
|
||
if (s.pending + 2 <= s.pending_buf_size) {
|
||
put_byte(s, strm.adler & 0xff);
|
||
put_byte(s, (strm.adler >> 8) & 0xff);
|
||
strm.adler = 0; //crc32(0L, Z_NULL, 0);
|
||
s.status = BUSY_STATE;
|
||
}
|
||
}
|
||
else {
|
||
s.status = BUSY_STATE;
|
||
}
|
||
}
|
||
//#endif
|
||
|
||
/* Flush as much pending output as possible */
|
||
if (s.pending !== 0) {
|
||
flush_pending(strm);
|
||
if (strm.avail_out === 0) {
|
||
/* Since avail_out is 0, deflate will be called again with
|
||
* more output space, but possibly with both pending and
|
||
* avail_in equal to zero. There won't be anything to do,
|
||
* but this is not an error situation so make sure we
|
||
* return OK instead of BUF_ERROR at next call of deflate:
|
||
*/
|
||
s.last_flush = -1;
|
||
return Z_OK;
|
||
}
|
||
|
||
/* Make sure there is something to do and avoid duplicate consecutive
|
||
* flushes. For repeated and useless calls with Z_FINISH, we keep
|
||
* returning Z_STREAM_END instead of Z_BUF_ERROR.
|
||
*/
|
||
} else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&
|
||
flush !== Z_FINISH) {
|
||
return err(strm, Z_BUF_ERROR);
|
||
}
|
||
|
||
/* User must not provide more input after the first FINISH: */
|
||
if (s.status === FINISH_STATE && strm.avail_in !== 0) {
|
||
return err(strm, Z_BUF_ERROR);
|
||
}
|
||
|
||
/* Start a new block or continue the current one.
|
||
*/
|
||
if (strm.avail_in !== 0 || s.lookahead !== 0 ||
|
||
(flush !== Z_NO_FLUSH && s.status !== FINISH_STATE)) {
|
||
var bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) :
|
||
(s.strategy === Z_RLE ? deflate_rle(s, flush) :
|
||
configuration_table[s.level].func(s, flush));
|
||
|
||
if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {
|
||
s.status = FINISH_STATE;
|
||
}
|
||
if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {
|
||
if (strm.avail_out === 0) {
|
||
s.last_flush = -1;
|
||
/* avoid BUF_ERROR next call, see above */
|
||
}
|
||
return Z_OK;
|
||
/* If flush != Z_NO_FLUSH && avail_out == 0, the next call
|
||
* of deflate should use the same flush parameter to make sure
|
||
* that the flush is complete. So we don't have to output an
|
||
* empty block here, this will be done at next call. This also
|
||
* ensures that for a very small output buffer, we emit at most
|
||
* one empty block.
|
||
*/
|
||
}
|
||
if (bstate === BS_BLOCK_DONE) {
|
||
if (flush === Z_PARTIAL_FLUSH) {
|
||
trees._tr_align(s);
|
||
}
|
||
else if (flush !== Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */
|
||
|
||
trees._tr_stored_block(s, 0, 0, false);
|
||
/* For a full flush, this empty block will be recognized
|
||
* as a special marker by inflate_sync().
|
||
*/
|
||
if (flush === Z_FULL_FLUSH) {
|
||
/*** CLEAR_HASH(s); ***/ /* forget history */
|
||
zero(s.head); // Fill with NIL (= 0);
|
||
|
||
if (s.lookahead === 0) {
|
||
s.strstart = 0;
|
||
s.block_start = 0;
|
||
s.insert = 0;
|
||
}
|
||
}
|
||
}
|
||
flush_pending(strm);
|
||
if (strm.avail_out === 0) {
|
||
s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */
|
||
return Z_OK;
|
||
}
|
||
}
|
||
}
|
||
//Assert(strm->avail_out > 0, "bug2");
|
||
//if (strm.avail_out <= 0) { throw new Error("bug2");}
|
||
|
||
if (flush !== Z_FINISH) { return Z_OK; }
|
||
if (s.wrap <= 0) { return Z_STREAM_END; }
|
||
|
||
/* Write the trailer */
|
||
if (s.wrap === 2) {
|
||
put_byte(s, strm.adler & 0xff);
|
||
put_byte(s, (strm.adler >> 8) & 0xff);
|
||
put_byte(s, (strm.adler >> 16) & 0xff);
|
||
put_byte(s, (strm.adler >> 24) & 0xff);
|
||
put_byte(s, strm.total_in & 0xff);
|
||
put_byte(s, (strm.total_in >> 8) & 0xff);
|
||
put_byte(s, (strm.total_in >> 16) & 0xff);
|
||
put_byte(s, (strm.total_in >> 24) & 0xff);
|
||
}
|
||
else
|
||
{
|
||
putShortMSB(s, strm.adler >>> 16);
|
||
putShortMSB(s, strm.adler & 0xffff);
|
||
}
|
||
|
||
flush_pending(strm);
|
||
/* If avail_out is zero, the application will call deflate again
|
||
* to flush the rest.
|
||
*/
|
||
if (s.wrap > 0) { s.wrap = -s.wrap; }
|
||
/* write the trailer only once! */
|
||
return s.pending !== 0 ? Z_OK : Z_STREAM_END;
|
||
}
|
||
|
||
function deflateEnd(strm) {
|
||
var status;
|
||
|
||
if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {
|
||
return Z_STREAM_ERROR;
|
||
}
|
||
|
||
status = strm.state.status;
|
||
if (status !== INIT_STATE &&
|
||
status !== EXTRA_STATE &&
|
||
status !== NAME_STATE &&
|
||
status !== COMMENT_STATE &&
|
||
status !== HCRC_STATE &&
|
||
status !== BUSY_STATE &&
|
||
status !== FINISH_STATE
|
||
) {
|
||
return err(strm, Z_STREAM_ERROR);
|
||
}
|
||
|
||
strm.state = null;
|
||
|
||
return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK;
|
||
}
|
||
|
||
|
||
/* =========================================================================
|
||
* Initializes the compression dictionary from the given byte
|
||
* sequence without producing any compressed output.
|
||
*/
|
||
function deflateSetDictionary(strm, dictionary) {
|
||
var dictLength = dictionary.length;
|
||
|
||
var s;
|
||
var str, n;
|
||
var wrap;
|
||
var avail;
|
||
var next;
|
||
var input;
|
||
var tmpDict;
|
||
|
||
if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {
|
||
return Z_STREAM_ERROR;
|
||
}
|
||
|
||
s = strm.state;
|
||
wrap = s.wrap;
|
||
|
||
if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {
|
||
return Z_STREAM_ERROR;
|
||
}
|
||
|
||
/* when using zlib wrappers, compute Adler-32 for provided dictionary */
|
||
if (wrap === 1) {
|
||
/* adler32(strm->adler, dictionary, dictLength); */
|
||
strm.adler = adler32(strm.adler, dictionary, dictLength, 0);
|
||
}
|
||
|
||
s.wrap = 0; /* avoid computing Adler-32 in read_buf */
|
||
|
||
/* if dictionary would fill window, just replace the history */
|
||
if (dictLength >= s.w_size) {
|
||
if (wrap === 0) { /* already empty otherwise */
|
||
/*** CLEAR_HASH(s); ***/
|
||
zero(s.head); // Fill with NIL (= 0);
|
||
s.strstart = 0;
|
||
s.block_start = 0;
|
||
s.insert = 0;
|
||
}
|
||
/* use the tail */
|
||
// dictionary = dictionary.slice(dictLength - s.w_size);
|
||
tmpDict = new utils.Buf8(s.w_size);
|
||
utils.arraySet(tmpDict, dictionary, dictLength - s.w_size, s.w_size, 0);
|
||
dictionary = tmpDict;
|
||
dictLength = s.w_size;
|
||
}
|
||
/* insert dictionary into window and hash */
|
||
avail = strm.avail_in;
|
||
next = strm.next_in;
|
||
input = strm.input;
|
||
strm.avail_in = dictLength;
|
||
strm.next_in = 0;
|
||
strm.input = dictionary;
|
||
fill_window(s);
|
||
while (s.lookahead >= MIN_MATCH) {
|
||
str = s.strstart;
|
||
n = s.lookahead - (MIN_MATCH - 1);
|
||
do {
|
||
/* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */
|
||
s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;
|
||
|
||
s.prev[str & s.w_mask] = s.head[s.ins_h];
|
||
|
||
s.head[s.ins_h] = str;
|
||
str++;
|
||
} while (--n);
|
||
s.strstart = str;
|
||
s.lookahead = MIN_MATCH - 1;
|
||
fill_window(s);
|
||
}
|
||
s.strstart += s.lookahead;
|
||
s.block_start = s.strstart;
|
||
s.insert = s.lookahead;
|
||
s.lookahead = 0;
|
||
s.match_length = s.prev_length = MIN_MATCH - 1;
|
||
s.match_available = 0;
|
||
strm.next_in = next;
|
||
strm.input = input;
|
||
strm.avail_in = avail;
|
||
s.wrap = wrap;
|
||
return Z_OK;
|
||
}
|
||
|
||
|
||
exports.deflateInit = deflateInit;
|
||
exports.deflateInit2 = deflateInit2;
|
||
exports.deflateReset = deflateReset;
|
||
exports.deflateResetKeep = deflateResetKeep;
|
||
exports.deflateSetHeader = deflateSetHeader;
|
||
exports.deflate = deflate;
|
||
exports.deflateEnd = deflateEnd;
|
||
exports.deflateSetDictionary = deflateSetDictionary;
|
||
exports.deflateInfo = 'pako deflate (from Nodeca project)';
|
||
|
||
/* Not implemented
|
||
exports.deflateBound = deflateBound;
|
||
exports.deflateCopy = deflateCopy;
|
||
exports.deflateParams = deflateParams;
|
||
exports.deflatePending = deflatePending;
|
||
exports.deflatePrime = deflatePrime;
|
||
exports.deflateTune = deflateTune;
|
||
*/
|
||
|
||
},{"../utils/common":3,"./adler32":5,"./crc32":7,"./messages":13,"./trees":14}],9:[function(require,module,exports){
|
||
'use strict';
|
||
|
||
// (C) 1995-2013 Jean-loup Gailly and Mark Adler
|
||
// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
|
||
//
|
||
// This software is provided 'as-is', without any express or implied
|
||
// warranty. In no event will the authors be held liable for any damages
|
||
// arising from the use of this software.
|
||
//
|
||
// Permission is granted to anyone to use this software for any purpose,
|
||
// including commercial applications, and to alter it and redistribute it
|
||
// freely, subject to the following restrictions:
|
||
//
|
||
// 1. The origin of this software must not be misrepresented; you must not
|
||
// claim that you wrote the original software. If you use this software
|
||
// in a product, an acknowledgment in the product documentation would be
|
||
// appreciated but is not required.
|
||
// 2. Altered source versions must be plainly marked as such, and must not be
|
||
// misrepresented as being the original software.
|
||
// 3. This notice may not be removed or altered from any source distribution.
|
||
|
||
function GZheader() {
|
||
/* true if compressed data believed to be text */
|
||
this.text = 0;
|
||
/* modification time */
|
||
this.time = 0;
|
||
/* extra flags (not used when writing a gzip file) */
|
||
this.xflags = 0;
|
||
/* operating system */
|
||
this.os = 0;
|
||
/* pointer to extra field or Z_NULL if none */
|
||
this.extra = null;
|
||
/* extra field length (valid if extra != Z_NULL) */
|
||
this.extra_len = 0; // Actually, we don't need it in JS,
|
||
// but leave for few code modifications
|
||
|
||
//
|
||
// Setup limits is not necessary because in js we should not preallocate memory
|
||
// for inflate use constant limit in 65536 bytes
|
||
//
|
||
|
||
/* space at extra (only when reading header) */
|
||
// this.extra_max = 0;
|
||
/* pointer to zero-terminated file name or Z_NULL */
|
||
this.name = '';
|
||
/* space at name (only when reading header) */
|
||
// this.name_max = 0;
|
||
/* pointer to zero-terminated comment or Z_NULL */
|
||
this.comment = '';
|
||
/* space at comment (only when reading header) */
|
||
// this.comm_max = 0;
|
||
/* true if there was or will be a header crc */
|
||
this.hcrc = 0;
|
||
/* true when done reading gzip header (not used when writing a gzip file) */
|
||
this.done = false;
|
||
}
|
||
|
||
module.exports = GZheader;
|
||
|
||
},{}],10:[function(require,module,exports){
|
||
'use strict';
|
||
|
||
// (C) 1995-2013 Jean-loup Gailly and Mark Adler
|
||
// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
|
||
//
|
||
// This software is provided 'as-is', without any express or implied
|
||
// warranty. In no event will the authors be held liable for any damages
|
||
// arising from the use of this software.
|
||
//
|
||
// Permission is granted to anyone to use this software for any purpose,
|
||
// including commercial applications, and to alter it and redistribute it
|
||
// freely, subject to the following restrictions:
|
||
//
|
||
// 1. The origin of this software must not be misrepresented; you must not
|
||
// claim that you wrote the original software. If you use this software
|
||
// in a product, an acknowledgment in the product documentation would be
|
||
// appreciated but is not required.
|
||
// 2. Altered source versions must be plainly marked as such, and must not be
|
||
// misrepresented as being the original software.
|
||
// 3. This notice may not be removed or altered from any source distribution.
|
||
|
||
// See state defs from inflate.js
|
||
var BAD = 30; /* got a data error -- remain here until reset */
|
||
var TYPE = 12; /* i: waiting for type bits, including last-flag bit */
|
||
|
||
/*
|
||
Decode literal, length, and distance codes and write out the resulting
|
||
literal and match bytes until either not enough input or output is
|
||
available, an end-of-block is encountered, or a data error is encountered.
|
||
When large enough input and output buffers are supplied to inflate(), for
|
||
example, a 16K input buffer and a 64K output buffer, more than 95% of the
|
||
inflate execution time is spent in this routine.
|
||
|
||
Entry assumptions:
|
||
|
||
state.mode === LEN
|
||
strm.avail_in >= 6
|
||
strm.avail_out >= 258
|
||
start >= strm.avail_out
|
||
state.bits < 8
|
||
|
||
On return, state.mode is one of:
|
||
|
||
LEN -- ran out of enough output space or enough available input
|
||
TYPE -- reached end of block code, inflate() to interpret next block
|
||
BAD -- error in block data
|
||
|
||
Notes:
|
||
|
||
- The maximum input bits used by a length/distance pair is 15 bits for the
|
||
length code, 5 bits for the length extra, 15 bits for the distance code,
|
||
and 13 bits for the distance extra. This totals 48 bits, or six bytes.
|
||
Therefore if strm.avail_in >= 6, then there is enough input to avoid
|
||
checking for available input while decoding.
|
||
|
||
- The maximum bytes that a single length/distance pair can output is 258
|
||
bytes, which is the maximum length that can be coded. inflate_fast()
|
||
requires strm.avail_out >= 258 for each loop to avoid checking for
|
||
output space.
|
||
*/
|
||
module.exports = function inflate_fast(strm, start) {
|
||
var state;
|
||
var _in; /* local strm.input */
|
||
var last; /* have enough input while in < last */
|
||
var _out; /* local strm.output */
|
||
var beg; /* inflate()'s initial strm.output */
|
||
var end; /* while out < end, enough space available */
|
||
//#ifdef INFLATE_STRICT
|
||
var dmax; /* maximum distance from zlib header */
|
||
//#endif
|
||
var wsize; /* window size or zero if not using window */
|
||
var whave; /* valid bytes in the window */
|
||
var wnext; /* window write index */
|
||
// Use `s_window` instead `window`, avoid conflict with instrumentation tools
|
||
var s_window; /* allocated sliding window, if wsize != 0 */
|
||
var hold; /* local strm.hold */
|
||
var bits; /* local strm.bits */
|
||
var lcode; /* local strm.lencode */
|
||
var dcode; /* local strm.distcode */
|
||
var lmask; /* mask for first level of length codes */
|
||
var dmask; /* mask for first level of distance codes */
|
||
var here; /* retrieved table entry */
|
||
var op; /* code bits, operation, extra bits, or */
|
||
/* window position, window bytes to copy */
|
||
var len; /* match length, unused bytes */
|
||
var dist; /* match distance */
|
||
var from; /* where to copy match from */
|
||
var from_source;
|
||
|
||
|
||
var input, output; // JS specific, because we have no pointers
|
||
|
||
/* copy state to local variables */
|
||
state = strm.state;
|
||
//here = state.here;
|
||
_in = strm.next_in;
|
||
input = strm.input;
|
||
last = _in + (strm.avail_in - 5);
|
||
_out = strm.next_out;
|
||
output = strm.output;
|
||
beg = _out - (start - strm.avail_out);
|
||
end = _out + (strm.avail_out - 257);
|
||
//#ifdef INFLATE_STRICT
|
||
dmax = state.dmax;
|
||
//#endif
|
||
wsize = state.wsize;
|
||
whave = state.whave;
|
||
wnext = state.wnext;
|
||
s_window = state.window;
|
||
hold = state.hold;
|
||
bits = state.bits;
|
||
lcode = state.lencode;
|
||
dcode = state.distcode;
|
||
lmask = (1 << state.lenbits) - 1;
|
||
dmask = (1 << state.distbits) - 1;
|
||
|
||
|
||
/* decode literals and length/distances until end-of-block or not enough
|
||
input data or output space */
|
||
|
||
top:
|
||
do {
|
||
if (bits < 15) {
|
||
hold += input[_in++] << bits;
|
||
bits += 8;
|
||
hold += input[_in++] << bits;
|
||
bits += 8;
|
||
}
|
||
|
||
here = lcode[hold & lmask];
|
||
|
||
dolen:
|
||
for (;;) { // Goto emulation
|
||
op = here >>> 24/*here.bits*/;
|
||
hold >>>= op;
|
||
bits -= op;
|
||
op = (here >>> 16) & 0xff/*here.op*/;
|
||
if (op === 0) { /* literal */
|
||
//Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?
|
||
// "inflate: literal '%c'\n" :
|
||
// "inflate: literal 0x%02x\n", here.val));
|
||
output[_out++] = here & 0xffff/*here.val*/;
|
||
}
|
||
else if (op & 16) { /* length base */
|
||
len = here & 0xffff/*here.val*/;
|
||
op &= 15; /* number of extra bits */
|
||
if (op) {
|
||
if (bits < op) {
|
||
hold += input[_in++] << bits;
|
||
bits += 8;
|
||
}
|
||
len += hold & ((1 << op) - 1);
|
||
hold >>>= op;
|
||
bits -= op;
|
||
}
|
||
//Tracevv((stderr, "inflate: length %u\n", len));
|
||
if (bits < 15) {
|
||
hold += input[_in++] << bits;
|
||
bits += 8;
|
||
hold += input[_in++] << bits;
|
||
bits += 8;
|
||
}
|
||
here = dcode[hold & dmask];
|
||
|
||
dodist:
|
||
for (;;) { // goto emulation
|
||
op = here >>> 24/*here.bits*/;
|
||
hold >>>= op;
|
||
bits -= op;
|
||
op = (here >>> 16) & 0xff/*here.op*/;
|
||
|
||
if (op & 16) { /* distance base */
|
||
dist = here & 0xffff/*here.val*/;
|
||
op &= 15; /* number of extra bits */
|
||
if (bits < op) {
|
||
hold += input[_in++] << bits;
|
||
bits += 8;
|
||
if (bits < op) {
|
||
hold += input[_in++] << bits;
|
||
bits += 8;
|
||
}
|
||
}
|
||
dist += hold & ((1 << op) - 1);
|
||
//#ifdef INFLATE_STRICT
|
||
if (dist > dmax) {
|
||
strm.msg = 'invalid distance too far back';
|
||
state.mode = BAD;
|
||
break top;
|
||
}
|
||
//#endif
|
||
hold >>>= op;
|
||
bits -= op;
|
||
//Tracevv((stderr, "inflate: distance %u\n", dist));
|
||
op = _out - beg; /* max distance in output */
|
||
if (dist > op) { /* see if copy from window */
|
||
op = dist - op; /* distance back in window */
|
||
if (op > whave) {
|
||
if (state.sane) {
|
||
strm.msg = 'invalid distance too far back';
|
||
state.mode = BAD;
|
||
break top;
|
||
}
|
||
|
||
// (!) This block is disabled in zlib defaults,
|
||
// don't enable it for binary compatibility
|
||
//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR
|
||
// if (len <= op - whave) {
|
||
// do {
|
||
// output[_out++] = 0;
|
||
// } while (--len);
|
||
// continue top;
|
||
// }
|
||
// len -= op - whave;
|
||
// do {
|
||
// output[_out++] = 0;
|
||
// } while (--op > whave);
|
||
// if (op === 0) {
|
||
// from = _out - dist;
|
||
// do {
|
||
// output[_out++] = output[from++];
|
||
// } while (--len);
|
||
// continue top;
|
||
// }
|
||
//#endif
|
||
}
|
||
from = 0; // window index
|
||
from_source = s_window;
|
||
if (wnext === 0) { /* very common case */
|
||
from += wsize - op;
|
||
if (op < len) { /* some from window */
|
||
len -= op;
|
||
do {
|
||
output[_out++] = s_window[from++];
|
||
} while (--op);
|
||
from = _out - dist; /* rest from output */
|
||
from_source = output;
|
||
}
|
||
}
|
||
else if (wnext < op) { /* wrap around window */
|
||
from += wsize + wnext - op;
|
||
op -= wnext;
|
||
if (op < len) { /* some from end of window */
|
||
len -= op;
|
||
do {
|
||
output[_out++] = s_window[from++];
|
||
} while (--op);
|
||
from = 0;
|
||
if (wnext < len) { /* some from start of window */
|
||
op = wnext;
|
||
len -= op;
|
||
do {
|
||
output[_out++] = s_window[from++];
|
||
} while (--op);
|
||
from = _out - dist; /* rest from output */
|
||
from_source = output;
|
||
}
|
||
}
|
||
}
|
||
else { /* contiguous in window */
|
||
from += wnext - op;
|
||
if (op < len) { /* some from window */
|
||
len -= op;
|
||
do {
|
||
output[_out++] = s_window[from++];
|
||
} while (--op);
|
||
from = _out - dist; /* rest from output */
|
||
from_source = output;
|
||
}
|
||
}
|
||
while (len > 2) {
|
||
output[_out++] = from_source[from++];
|
||
output[_out++] = from_source[from++];
|
||
output[_out++] = from_source[from++];
|
||
len -= 3;
|
||
}
|
||
if (len) {
|
||
output[_out++] = from_source[from++];
|
||
if (len > 1) {
|
||
output[_out++] = from_source[from++];
|
||
}
|
||
}
|
||
}
|
||
else {
|
||
from = _out - dist; /* copy direct from output */
|
||
do { /* minimum length is three */
|
||
output[_out++] = output[from++];
|
||
output[_out++] = output[from++];
|
||
output[_out++] = output[from++];
|
||
len -= 3;
|
||
} while (len > 2);
|
||
if (len) {
|
||
output[_out++] = output[from++];
|
||
if (len > 1) {
|
||
output[_out++] = output[from++];
|
||
}
|
||
}
|
||
}
|
||
}
|
||
else if ((op & 64) === 0) { /* 2nd level distance code */
|
||
here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];
|
||
continue dodist;
|
||
}
|
||
else {
|
||
strm.msg = 'invalid distance code';
|
||
state.mode = BAD;
|
||
break top;
|
||
}
|
||
|
||
break; // need to emulate goto via "continue"
|
||
}
|
||
}
|
||
else if ((op & 64) === 0) { /* 2nd level length code */
|
||
here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];
|
||
continue dolen;
|
||
}
|
||
else if (op & 32) { /* end-of-block */
|
||
//Tracevv((stderr, "inflate: end of block\n"));
|
||
state.mode = TYPE;
|
||
break top;
|
||
}
|
||
else {
|
||
strm.msg = 'invalid literal/length code';
|
||
state.mode = BAD;
|
||
break top;
|
||
}
|
||
|
||
break; // need to emulate goto via "continue"
|
||
}
|
||
} while (_in < last && _out < end);
|
||
|
||
/* return unused bytes (on entry, bits < 8, so in won't go too far back) */
|
||
len = bits >> 3;
|
||
_in -= len;
|
||
bits -= len << 3;
|
||
hold &= (1 << bits) - 1;
|
||
|
||
/* update state and return */
|
||
strm.next_in = _in;
|
||
strm.next_out = _out;
|
||
strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));
|
||
strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));
|
||
state.hold = hold;
|
||
state.bits = bits;
|
||
return;
|
||
};
|
||
|
||
},{}],11:[function(require,module,exports){
|
||
'use strict';
|
||
|
||
// (C) 1995-2013 Jean-loup Gailly and Mark Adler
|
||
// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
|
||
//
|
||
// This software is provided 'as-is', without any express or implied
|
||
// warranty. In no event will the authors be held liable for any damages
|
||
// arising from the use of this software.
|
||
//
|
||
// Permission is granted to anyone to use this software for any purpose,
|
||
// including commercial applications, and to alter it and redistribute it
|
||
// freely, subject to the following restrictions:
|
||
//
|
||
// 1. The origin of this software must not be misrepresented; you must not
|
||
// claim that you wrote the original software. If you use this software
|
||
// in a product, an acknowledgment in the product documentation would be
|
||
// appreciated but is not required.
|
||
// 2. Altered source versions must be plainly marked as such, and must not be
|
||
// misrepresented as being the original software.
|
||
// 3. This notice may not be removed or altered from any source distribution.
|
||
|
||
var utils = require('../utils/common');
|
||
var adler32 = require('./adler32');
|
||
var crc32 = require('./crc32');
|
||
var inflate_fast = require('./inffast');
|
||
var inflate_table = require('./inftrees');
|
||
|
||
var CODES = 0;
|
||
var LENS = 1;
|
||
var DISTS = 2;
|
||
|
||
/* Public constants ==========================================================*/
|
||
/* ===========================================================================*/
|
||
|
||
|
||
/* Allowed flush values; see deflate() and inflate() below for details */
|
||
//var Z_NO_FLUSH = 0;
|
||
//var Z_PARTIAL_FLUSH = 1;
|
||
//var Z_SYNC_FLUSH = 2;
|
||
//var Z_FULL_FLUSH = 3;
|
||
var Z_FINISH = 4;
|
||
var Z_BLOCK = 5;
|
||
var Z_TREES = 6;
|
||
|
||
|
||
/* Return codes for the compression/decompression functions. Negative values
|
||
* are errors, positive values are used for special but normal events.
|
||
*/
|
||
var Z_OK = 0;
|
||
var Z_STREAM_END = 1;
|
||
var Z_NEED_DICT = 2;
|
||
//var Z_ERRNO = -1;
|
||
var Z_STREAM_ERROR = -2;
|
||
var Z_DATA_ERROR = -3;
|
||
var Z_MEM_ERROR = -4;
|
||
var Z_BUF_ERROR = -5;
|
||
//var Z_VERSION_ERROR = -6;
|
||
|
||
/* The deflate compression method */
|
||
var Z_DEFLATED = 8;
|
||
|
||
|
||
/* STATES ====================================================================*/
|
||
/* ===========================================================================*/
|
||
|
||
|
||
var HEAD = 1; /* i: waiting for magic header */
|
||
var FLAGS = 2; /* i: waiting for method and flags (gzip) */
|
||
var TIME = 3; /* i: waiting for modification time (gzip) */
|
||
var OS = 4; /* i: waiting for extra flags and operating system (gzip) */
|
||
var EXLEN = 5; /* i: waiting for extra length (gzip) */
|
||
var EXTRA = 6; /* i: waiting for extra bytes (gzip) */
|
||
var NAME = 7; /* i: waiting for end of file name (gzip) */
|
||
var COMMENT = 8; /* i: waiting for end of comment (gzip) */
|
||
var HCRC = 9; /* i: waiting for header crc (gzip) */
|
||
var DICTID = 10; /* i: waiting for dictionary check value */
|
||
var DICT = 11; /* waiting for inflateSetDictionary() call */
|
||
var TYPE = 12; /* i: waiting for type bits, including last-flag bit */
|
||
var TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */
|
||
var STORED = 14; /* i: waiting for stored size (length and complement) */
|
||
var COPY_ = 15; /* i/o: same as COPY below, but only first time in */
|
||
var COPY = 16; /* i/o: waiting for input or output to copy stored block */
|
||
var TABLE = 17; /* i: waiting for dynamic block table lengths */
|
||
var LENLENS = 18; /* i: waiting for code length code lengths */
|
||
var CODELENS = 19; /* i: waiting for length/lit and distance code lengths */
|
||
var LEN_ = 20; /* i: same as LEN below, but only first time in */
|
||
var LEN = 21; /* i: waiting for length/lit/eob code */
|
||
var LENEXT = 22; /* i: waiting for length extra bits */
|
||
var DIST = 23; /* i: waiting for distance code */
|
||
var DISTEXT = 24; /* i: waiting for distance extra bits */
|
||
var MATCH = 25; /* o: waiting for output space to copy string */
|
||
var LIT = 26; /* o: waiting for output space to write literal */
|
||
var CHECK = 27; /* i: waiting for 32-bit check value */
|
||
var LENGTH = 28; /* i: waiting for 32-bit length (gzip) */
|
||
var DONE = 29; /* finished check, done -- remain here until reset */
|
||
var BAD = 30; /* got a data error -- remain here until reset */
|
||
var MEM = 31; /* got an inflate() memory error -- remain here until reset */
|
||
var SYNC = 32; /* looking for synchronization bytes to restart inflate() */
|
||
|
||
/* ===========================================================================*/
|
||
|
||
|
||
|
||
var ENOUGH_LENS = 852;
|
||
var ENOUGH_DISTS = 592;
|
||
//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);
|
||
|
||
var MAX_WBITS = 15;
|
||
/* 32K LZ77 window */
|
||
var DEF_WBITS = MAX_WBITS;
|
||
|
||
|
||
function zswap32(q) {
|
||
return (((q >>> 24) & 0xff) +
|
||
((q >>> 8) & 0xff00) +
|
||
((q & 0xff00) << 8) +
|
||
((q & 0xff) << 24));
|
||
}
|
||
|
||
|
||
function InflateState() {
|
||
this.mode = 0; /* current inflate mode */
|
||
this.last = false; /* true if processing last block */
|
||
this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */
|
||
this.havedict = false; /* true if dictionary provided */
|
||
this.flags = 0; /* gzip header method and flags (0 if zlib) */
|
||
this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */
|
||
this.check = 0; /* protected copy of check value */
|
||
this.total = 0; /* protected copy of output count */
|
||
// TODO: may be {}
|
||
this.head = null; /* where to save gzip header information */
|
||
|
||
/* sliding window */
|
||
this.wbits = 0; /* log base 2 of requested window size */
|
||
this.wsize = 0; /* window size or zero if not using window */
|
||
this.whave = 0; /* valid bytes in the window */
|
||
this.wnext = 0; /* window write index */
|
||
this.window = null; /* allocated sliding window, if needed */
|
||
|
||
/* bit accumulator */
|
||
this.hold = 0; /* input bit accumulator */
|
||
this.bits = 0; /* number of bits in "in" */
|
||
|
||
/* for string and stored block copying */
|
||
this.length = 0; /* literal or length of data to copy */
|
||
this.offset = 0; /* distance back to copy string from */
|
||
|
||
/* for table and code decoding */
|
||
this.extra = 0; /* extra bits needed */
|
||
|
||
/* fixed and dynamic code tables */
|
||
this.lencode = null; /* starting table for length/literal codes */
|
||
this.distcode = null; /* starting table for distance codes */
|
||
this.lenbits = 0; /* index bits for lencode */
|
||
this.distbits = 0; /* index bits for distcode */
|
||
|
||
/* dynamic table building */
|
||
this.ncode = 0; /* number of code length code lengths */
|
||
this.nlen = 0; /* number of length code lengths */
|
||
this.ndist = 0; /* number of distance code lengths */
|
||
this.have = 0; /* number of code lengths in lens[] */
|
||
this.next = null; /* next available space in codes[] */
|
||
|
||
this.lens = new utils.Buf16(320); /* temporary storage for code lengths */
|
||
this.work = new utils.Buf16(288); /* work area for code table building */
|
||
|
||
/*
|
||
because we don't have pointers in js, we use lencode and distcode directly
|
||
as buffers so we don't need codes
|
||
*/
|
||
//this.codes = new utils.Buf32(ENOUGH); /* space for code tables */
|
||
this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */
|
||
this.distdyn = null; /* dynamic table for distance codes (JS specific) */
|
||
this.sane = 0; /* if false, allow invalid distance too far */
|
||
this.back = 0; /* bits back of last unprocessed length/lit */
|
||
this.was = 0; /* initial length of match */
|
||
}
|
||
|
||
function inflateResetKeep(strm) {
|
||
var state;
|
||
|
||
if (!strm || !strm.state) { return Z_STREAM_ERROR; }
|
||
state = strm.state;
|
||
strm.total_in = strm.total_out = state.total = 0;
|
||
strm.msg = ''; /*Z_NULL*/
|
||
if (state.wrap) { /* to support ill-conceived Java test suite */
|
||
strm.adler = state.wrap & 1;
|
||
}
|
||
state.mode = HEAD;
|
||
state.last = 0;
|
||
state.havedict = 0;
|
||
state.dmax = 32768;
|
||
state.head = null/*Z_NULL*/;
|
||
state.hold = 0;
|
||
state.bits = 0;
|
||
//state.lencode = state.distcode = state.next = state.codes;
|
||
state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS);
|
||
state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS);
|
||
|
||
state.sane = 1;
|
||
state.back = -1;
|
||
//Tracev((stderr, "inflate: reset\n"));
|
||
return Z_OK;
|
||
}
|
||
|
||
function inflateReset(strm) {
|
||
var state;
|
||
|
||
if (!strm || !strm.state) { return Z_STREAM_ERROR; }
|
||
state = strm.state;
|
||
state.wsize = 0;
|
||
state.whave = 0;
|
||
state.wnext = 0;
|
||
return inflateResetKeep(strm);
|
||
|
||
}
|
||
|
||
function inflateReset2(strm, windowBits) {
|
||
var wrap;
|
||
var state;
|
||
|
||
/* get the state */
|
||
if (!strm || !strm.state) { return Z_STREAM_ERROR; }
|
||
state = strm.state;
|
||
|
||
/* extract wrap request from windowBits parameter */
|
||
if (windowBits < 0) {
|
||
wrap = 0;
|
||
windowBits = -windowBits;
|
||
}
|
||
else {
|
||
wrap = (windowBits >> 4) + 1;
|
||
if (windowBits < 48) {
|
||
windowBits &= 15;
|
||
}
|
||
}
|
||
|
||
/* set number of window bits, free window if different */
|
||
if (windowBits && (windowBits < 8 || windowBits > 15)) {
|
||
return Z_STREAM_ERROR;
|
||
}
|
||
if (state.window !== null && state.wbits !== windowBits) {
|
||
state.window = null;
|
||
}
|
||
|
||
/* update state and reset the rest of it */
|
||
state.wrap = wrap;
|
||
state.wbits = windowBits;
|
||
return inflateReset(strm);
|
||
}
|
||
|
||
function inflateInit2(strm, windowBits) {
|
||
var ret;
|
||
var state;
|
||
|
||
if (!strm) { return Z_STREAM_ERROR; }
|
||
//strm.msg = Z_NULL; /* in case we return an error */
|
||
|
||
state = new InflateState();
|
||
|
||
//if (state === Z_NULL) return Z_MEM_ERROR;
|
||
//Tracev((stderr, "inflate: allocated\n"));
|
||
strm.state = state;
|
||
state.window = null/*Z_NULL*/;
|
||
ret = inflateReset2(strm, windowBits);
|
||
if (ret !== Z_OK) {
|
||
strm.state = null/*Z_NULL*/;
|
||
}
|
||
return ret;
|
||
}
|
||
|
||
function inflateInit(strm) {
|
||
return inflateInit2(strm, DEF_WBITS);
|
||
}
|
||
|
||
|
||
/*
|
||
Return state with length and distance decoding tables and index sizes set to
|
||
fixed code decoding. Normally this returns fixed tables from inffixed.h.
|
||
If BUILDFIXED is defined, then instead this routine builds the tables the
|
||
first time it's called, and returns those tables the first time and
|
||
thereafter. This reduces the size of the code by about 2K bytes, in
|
||
exchange for a little execution time. However, BUILDFIXED should not be
|
||
used for threaded applications, since the rewriting of the tables and virgin
|
||
may not be thread-safe.
|
||
*/
|
||
var virgin = true;
|
||
|
||
var lenfix, distfix; // We have no pointers in JS, so keep tables separate
|
||
|
||
function fixedtables(state) {
|
||
/* build fixed huffman tables if first call (may not be thread safe) */
|
||
if (virgin) {
|
||
var sym;
|
||
|
||
lenfix = new utils.Buf32(512);
|
||
distfix = new utils.Buf32(32);
|
||
|
||
/* literal/length table */
|
||
sym = 0;
|
||
while (sym < 144) { state.lens[sym++] = 8; }
|
||
while (sym < 256) { state.lens[sym++] = 9; }
|
||
while (sym < 280) { state.lens[sym++] = 7; }
|
||
while (sym < 288) { state.lens[sym++] = 8; }
|
||
|
||
inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });
|
||
|
||
/* distance table */
|
||
sym = 0;
|
||
while (sym < 32) { state.lens[sym++] = 5; }
|
||
|
||
inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });
|
||
|
||
/* do this just once */
|
||
virgin = false;
|
||
}
|
||
|
||
state.lencode = lenfix;
|
||
state.lenbits = 9;
|
||
state.distcode = distfix;
|
||
state.distbits = 5;
|
||
}
|
||
|
||
|
||
/*
|
||
Update the window with the last wsize (normally 32K) bytes written before
|
||
returning. If window does not exist yet, create it. This is only called
|
||
when a window is already in use, or when output has been written during this
|
||
inflate call, but the end of the deflate stream has not been reached yet.
|
||
It is also called to create a window for dictionary data when a dictionary
|
||
is loaded.
|
||
|
||
Providing output buffers larger than 32K to inflate() should provide a speed
|
||
advantage, since only the last 32K of output is copied to the sliding window
|
||
upon return from inflate(), and since all distances after the first 32K of
|
||
output will fall in the output data, making match copies simpler and faster.
|
||
The advantage may be dependent on the size of the processor's data caches.
|
||
*/
|
||
function updatewindow(strm, src, end, copy) {
|
||
var dist;
|
||
var state = strm.state;
|
||
|
||
/* if it hasn't been done already, allocate space for the window */
|
||
if (state.window === null) {
|
||
state.wsize = 1 << state.wbits;
|
||
state.wnext = 0;
|
||
state.whave = 0;
|
||
|
||
state.window = new utils.Buf8(state.wsize);
|
||
}
|
||
|
||
/* copy state->wsize or less output bytes into the circular window */
|
||
if (copy >= state.wsize) {
|
||
utils.arraySet(state.window, src, end - state.wsize, state.wsize, 0);
|
||
state.wnext = 0;
|
||
state.whave = state.wsize;
|
||
}
|
||
else {
|
||
dist = state.wsize - state.wnext;
|
||
if (dist > copy) {
|
||
dist = copy;
|
||
}
|
||
//zmemcpy(state->window + state->wnext, end - copy, dist);
|
||
utils.arraySet(state.window, src, end - copy, dist, state.wnext);
|
||
copy -= dist;
|
||
if (copy) {
|
||
//zmemcpy(state->window, end - copy, copy);
|
||
utils.arraySet(state.window, src, end - copy, copy, 0);
|
||
state.wnext = copy;
|
||
state.whave = state.wsize;
|
||
}
|
||
else {
|
||
state.wnext += dist;
|
||
if (state.wnext === state.wsize) { state.wnext = 0; }
|
||
if (state.whave < state.wsize) { state.whave += dist; }
|
||
}
|
||
}
|
||
return 0;
|
||
}
|
||
|
||
function inflate(strm, flush) {
|
||
var state;
|
||
var input, output; // input/output buffers
|
||
var next; /* next input INDEX */
|
||
var put; /* next output INDEX */
|
||
var have, left; /* available input and output */
|
||
var hold; /* bit buffer */
|
||
var bits; /* bits in bit buffer */
|
||
var _in, _out; /* save starting available input and output */
|
||
var copy; /* number of stored or match bytes to copy */
|
||
var from; /* where to copy match bytes from */
|
||
var from_source;
|
||
var here = 0; /* current decoding table entry */
|
||
var here_bits, here_op, here_val; // paked "here" denormalized (JS specific)
|
||
//var last; /* parent table entry */
|
||
var last_bits, last_op, last_val; // paked "last" denormalized (JS specific)
|
||
var len; /* length to copy for repeats, bits to drop */
|
||
var ret; /* return code */
|
||
var hbuf = new utils.Buf8(4); /* buffer for gzip header crc calculation */
|
||
var opts;
|
||
|
||
var n; // temporary var for NEED_BITS
|
||
|
||
var order = /* permutation of code lengths */
|
||
[ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ];
|
||
|
||
|
||
if (!strm || !strm.state || !strm.output ||
|
||
(!strm.input && strm.avail_in !== 0)) {
|
||
return Z_STREAM_ERROR;
|
||
}
|
||
|
||
state = strm.state;
|
||
if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */
|
||
|
||
|
||
//--- LOAD() ---
|
||
put = strm.next_out;
|
||
output = strm.output;
|
||
left = strm.avail_out;
|
||
next = strm.next_in;
|
||
input = strm.input;
|
||
have = strm.avail_in;
|
||
hold = state.hold;
|
||
bits = state.bits;
|
||
//---
|
||
|
||
_in = have;
|
||
_out = left;
|
||
ret = Z_OK;
|
||
|
||
inf_leave: // goto emulation
|
||
for (;;) {
|
||
switch (state.mode) {
|
||
case HEAD:
|
||
if (state.wrap === 0) {
|
||
state.mode = TYPEDO;
|
||
break;
|
||
}
|
||
//=== NEEDBITS(16);
|
||
while (bits < 16) {
|
||
if (have === 0) { break inf_leave; }
|
||
have--;
|
||
hold += input[next++] << bits;
|
||
bits += 8;
|
||
}
|
||
//===//
|
||
if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */
|
||
state.check = 0/*crc32(0L, Z_NULL, 0)*/;
|
||
//=== CRC2(state.check, hold);
|
||
hbuf[0] = hold & 0xff;
|
||
hbuf[1] = (hold >>> 8) & 0xff;
|
||
state.check = crc32(state.check, hbuf, 2, 0);
|
||
//===//
|
||
|
||
//=== INITBITS();
|
||
hold = 0;
|
||
bits = 0;
|
||
//===//
|
||
state.mode = FLAGS;
|
||
break;
|
||
}
|
||
state.flags = 0; /* expect zlib header */
|
||
if (state.head) {
|
||
state.head.done = false;
|
||
}
|
||
if (!(state.wrap & 1) || /* check if zlib header allowed */
|
||
(((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {
|
||
strm.msg = 'incorrect header check';
|
||
state.mode = BAD;
|
||
break;
|
||
}
|
||
if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {
|
||
strm.msg = 'unknown compression method';
|
||
state.mode = BAD;
|
||
break;
|
||
}
|
||
//--- DROPBITS(4) ---//
|
||
hold >>>= 4;
|
||
bits -= 4;
|
||
//---//
|
||
len = (hold & 0x0f)/*BITS(4)*/ + 8;
|
||
if (state.wbits === 0) {
|
||
state.wbits = len;
|
||
}
|
||
else if (len > state.wbits) {
|
||
strm.msg = 'invalid window size';
|
||
state.mode = BAD;
|
||
break;
|
||
}
|
||
state.dmax = 1 << len;
|
||
//Tracev((stderr, "inflate: zlib header ok\n"));
|
||
strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;
|
||
state.mode = hold & 0x200 ? DICTID : TYPE;
|
||
//=== INITBITS();
|
||
hold = 0;
|
||
bits = 0;
|
||
//===//
|
||
break;
|
||
case FLAGS:
|
||
//=== NEEDBITS(16); */
|
||
while (bits < 16) {
|
||
if (have === 0) { break inf_leave; }
|
||
have--;
|
||
hold += input[next++] << bits;
|
||
bits += 8;
|
||
}
|
||
//===//
|
||
state.flags = hold;
|
||
if ((state.flags & 0xff) !== Z_DEFLATED) {
|
||
strm.msg = 'unknown compression method';
|
||
state.mode = BAD;
|
||
break;
|
||
}
|
||
if (state.flags & 0xe000) {
|
||
strm.msg = 'unknown header flags set';
|
||
state.mode = BAD;
|
||
break;
|
||
}
|
||
if (state.head) {
|
||
state.head.text = ((hold >> 8) & 1);
|
||
}
|
||
if (state.flags & 0x0200) {
|
||
//=== CRC2(state.check, hold);
|
||
hbuf[0] = hold & 0xff;
|
||
hbuf[1] = (hold >>> 8) & 0xff;
|
||
state.check = crc32(state.check, hbuf, 2, 0);
|
||
//===//
|
||
}
|
||
//=== INITBITS();
|
||
hold = 0;
|
||
bits = 0;
|
||
//===//
|
||
state.mode = TIME;
|
||
/* falls through */
|
||
case TIME:
|
||
//=== NEEDBITS(32); */
|
||
while (bits < 32) {
|
||
if (have === 0) { break inf_leave; }
|
||
have--;
|
||
hold += input[next++] << bits;
|
||
bits += 8;
|
||
}
|
||
//===//
|
||
if (state.head) {
|
||
state.head.time = hold;
|
||
}
|
||
if (state.flags & 0x0200) {
|
||
//=== CRC4(state.check, hold)
|
||
hbuf[0] = hold & 0xff;
|
||
hbuf[1] = (hold >>> 8) & 0xff;
|
||
hbuf[2] = (hold >>> 16) & 0xff;
|
||
hbuf[3] = (hold >>> 24) & 0xff;
|
||
state.check = crc32(state.check, hbuf, 4, 0);
|
||
//===
|
||
}
|
||
//=== INITBITS();
|
||
hold = 0;
|
||
bits = 0;
|
||
//===//
|
||
state.mode = OS;
|
||
/* falls through */
|
||
case OS:
|
||
//=== NEEDBITS(16); */
|
||
while (bits < 16) {
|
||
if (have === 0) { break inf_leave; }
|
||
have--;
|
||
hold += input[next++] << bits;
|
||
bits += 8;
|
||
}
|
||
//===//
|
||
if (state.head) {
|
||
state.head.xflags = (hold & 0xff);
|
||
state.head.os = (hold >> 8);
|
||
}
|
||
if (state.flags & 0x0200) {
|
||
//=== CRC2(state.check, hold);
|
||
hbuf[0] = hold & 0xff;
|
||
hbuf[1] = (hold >>> 8) & 0xff;
|
||
state.check = crc32(state.check, hbuf, 2, 0);
|
||
//===//
|
||
}
|
||
//=== INITBITS();
|
||
hold = 0;
|
||
bits = 0;
|
||
//===//
|
||
state.mode = EXLEN;
|
||
/* falls through */
|
||
case EXLEN:
|
||
if (state.flags & 0x0400) {
|
||
//=== NEEDBITS(16); */
|
||
while (bits < 16) {
|
||
if (have === 0) { break inf_leave; }
|
||
have--;
|
||
hold += input[next++] << bits;
|
||
bits += 8;
|
||
}
|
||
//===//
|
||
state.length = hold;
|
||
if (state.head) {
|
||
state.head.extra_len = hold;
|
||
}
|
||
if (state.flags & 0x0200) {
|
||
//=== CRC2(state.check, hold);
|
||
hbuf[0] = hold & 0xff;
|
||
hbuf[1] = (hold >>> 8) & 0xff;
|
||
state.check = crc32(state.check, hbuf, 2, 0);
|
||
//===//
|
||
}
|
||
//=== INITBITS();
|
||
hold = 0;
|
||
bits = 0;
|
||
//===//
|
||
}
|
||
else if (state.head) {
|
||
state.head.extra = null/*Z_NULL*/;
|
||
}
|
||
state.mode = EXTRA;
|
||
/* falls through */
|
||
case EXTRA:
|
||
if (state.flags & 0x0400) {
|
||
copy = state.length;
|
||
if (copy > have) { copy = have; }
|
||
if (copy) {
|
||
if (state.head) {
|
||
len = state.head.extra_len - state.length;
|
||
if (!state.head.extra) {
|
||
// Use untyped array for more convenient processing later
|
||
state.head.extra = new Array(state.head.extra_len);
|
||
}
|
||
utils.arraySet(
|
||
state.head.extra,
|
||
input,
|
||
next,
|
||
// extra field is limited to 65536 bytes
|
||
// - no need for additional size check
|
||
copy,
|
||
/*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/
|
||
len
|
||
);
|
||
//zmemcpy(state.head.extra + len, next,
|
||
// len + copy > state.head.extra_max ?
|
||
// state.head.extra_max - len : copy);
|
||
}
|
||
if (state.flags & 0x0200) {
|
||
state.check = crc32(state.check, input, copy, next);
|
||
}
|
||
have -= copy;
|
||
next += copy;
|
||
state.length -= copy;
|
||
}
|
||
if (state.length) { break inf_leave; }
|
||
}
|
||
state.length = 0;
|
||
state.mode = NAME;
|
||
/* falls through */
|
||
case NAME:
|
||
if (state.flags & 0x0800) {
|
||
if (have === 0) { break inf_leave; }
|
||
copy = 0;
|
||
do {
|
||
// TODO: 2 or 1 bytes?
|
||
len = input[next + copy++];
|
||
/* use constant limit because in js we should not preallocate memory */
|
||
if (state.head && len &&
|
||
(state.length < 65536 /*state.head.name_max*/)) {
|
||
state.head.name += String.fromCharCode(len);
|
||
}
|
||
} while (len && copy < have);
|
||
|
||
if (state.flags & 0x0200) {
|
||
state.check = crc32(state.check, input, copy, next);
|
||
}
|
||
have -= copy;
|
||
next += copy;
|
||
if (len) { break inf_leave; }
|
||
}
|
||
else if (state.head) {
|
||
state.head.name = null;
|
||
}
|
||
state.length = 0;
|
||
state.mode = COMMENT;
|
||
/* falls through */
|
||
case COMMENT:
|
||
if (state.flags & 0x1000) {
|
||
if (have === 0) { break inf_leave; }
|
||
copy = 0;
|
||
do {
|
||
len = input[next + copy++];
|
||
/* use constant limit because in js we should not preallocate memory */
|
||
if (state.head && len &&
|
||
(state.length < 65536 /*state.head.comm_max*/)) {
|
||
state.head.comment += String.fromCharCode(len);
|
||
}
|
||
} while (len && copy < have);
|
||
if (state.flags & 0x0200) {
|
||
state.check = crc32(state.check, input, copy, next);
|
||
}
|
||
have -= copy;
|
||
next += copy;
|
||
if (len) { break inf_leave; }
|
||
}
|
||
else if (state.head) {
|
||
state.head.comment = null;
|
||
}
|
||
state.mode = HCRC;
|
||
/* falls through */
|
||
case HCRC:
|
||
if (state.flags & 0x0200) {
|
||
//=== NEEDBITS(16); */
|
||
while (bits < 16) {
|
||
if (have === 0) { break inf_leave; }
|
||
have--;
|
||
hold += input[next++] << bits;
|
||
bits += 8;
|
||
}
|
||
//===//
|
||
if (hold !== (state.check & 0xffff)) {
|
||
strm.msg = 'header crc mismatch';
|
||
state.mode = BAD;
|
||
break;
|
||
}
|
||
//=== INITBITS();
|
||
hold = 0;
|
||
bits = 0;
|
||
//===//
|
||
}
|
||
if (state.head) {
|
||
state.head.hcrc = ((state.flags >> 9) & 1);
|
||
state.head.done = true;
|
||
}
|
||
strm.adler = state.check = 0;
|
||
state.mode = TYPE;
|
||
break;
|
||
case DICTID:
|
||
//=== NEEDBITS(32); */
|
||
while (bits < 32) {
|
||
if (have === 0) { break inf_leave; }
|
||
have--;
|
||
hold += input[next++] << bits;
|
||
bits += 8;
|
||
}
|
||
//===//
|
||
strm.adler = state.check = zswap32(hold);
|
||
//=== INITBITS();
|
||
hold = 0;
|
||
bits = 0;
|
||
//===//
|
||
state.mode = DICT;
|
||
/* falls through */
|
||
case DICT:
|
||
if (state.havedict === 0) {
|
||
//--- RESTORE() ---
|
||
strm.next_out = put;
|
||
strm.avail_out = left;
|
||
strm.next_in = next;
|
||
strm.avail_in = have;
|
||
state.hold = hold;
|
||
state.bits = bits;
|
||
//---
|
||
return Z_NEED_DICT;
|
||
}
|
||
strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;
|
||
state.mode = TYPE;
|
||
/* falls through */
|
||
case TYPE:
|
||
if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }
|
||
/* falls through */
|
||
case TYPEDO:
|
||
if (state.last) {
|
||
//--- BYTEBITS() ---//
|
||
hold >>>= bits & 7;
|
||
bits -= bits & 7;
|
||
//---//
|
||
state.mode = CHECK;
|
||
break;
|
||
}
|
||
//=== NEEDBITS(3); */
|
||
while (bits < 3) {
|
||
if (have === 0) { break inf_leave; }
|
||
have--;
|
||
hold += input[next++] << bits;
|
||
bits += 8;
|
||
}
|
||
//===//
|
||
state.last = (hold & 0x01)/*BITS(1)*/;
|
||
//--- DROPBITS(1) ---//
|
||
hold >>>= 1;
|
||
bits -= 1;
|
||
//---//
|
||
|
||
switch ((hold & 0x03)/*BITS(2)*/) {
|
||
case 0: /* stored block */
|
||
//Tracev((stderr, "inflate: stored block%s\n",
|
||
// state.last ? " (last)" : ""));
|
||
state.mode = STORED;
|
||
break;
|
||
case 1: /* fixed block */
|
||
fixedtables(state);
|
||
//Tracev((stderr, "inflate: fixed codes block%s\n",
|
||
// state.last ? " (last)" : ""));
|
||
state.mode = LEN_; /* decode codes */
|
||
if (flush === Z_TREES) {
|
||
//--- DROPBITS(2) ---//
|
||
hold >>>= 2;
|
||
bits -= 2;
|
||
//---//
|
||
break inf_leave;
|
||
}
|
||
break;
|
||
case 2: /* dynamic block */
|
||
//Tracev((stderr, "inflate: dynamic codes block%s\n",
|
||
// state.last ? " (last)" : ""));
|
||
state.mode = TABLE;
|
||
break;
|
||
case 3:
|
||
strm.msg = 'invalid block type';
|
||
state.mode = BAD;
|
||
}
|
||
//--- DROPBITS(2) ---//
|
||
hold >>>= 2;
|
||
bits -= 2;
|
||
//---//
|
||
break;
|
||
case STORED:
|
||
//--- BYTEBITS() ---// /* go to byte boundary */
|
||
hold >>>= bits & 7;
|
||
bits -= bits & 7;
|
||
//---//
|
||
//=== NEEDBITS(32); */
|
||
while (bits < 32) {
|
||
if (have === 0) { break inf_leave; }
|
||
have--;
|
||
hold += input[next++] << bits;
|
||
bits += 8;
|
||
}
|
||
//===//
|
||
if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {
|
||
strm.msg = 'invalid stored block lengths';
|
||
state.mode = BAD;
|
||
break;
|
||
}
|
||
state.length = hold & 0xffff;
|
||
//Tracev((stderr, "inflate: stored length %u\n",
|
||
// state.length));
|
||
//=== INITBITS();
|
||
hold = 0;
|
||
bits = 0;
|
||
//===//
|
||
state.mode = COPY_;
|
||
if (flush === Z_TREES) { break inf_leave; }
|
||
/* falls through */
|
||
case COPY_:
|
||
state.mode = COPY;
|
||
/* falls through */
|
||
case COPY:
|
||
copy = state.length;
|
||
if (copy) {
|
||
if (copy > have) { copy = have; }
|
||
if (copy > left) { copy = left; }
|
||
if (copy === 0) { break inf_leave; }
|
||
//--- zmemcpy(put, next, copy); ---
|
||
utils.arraySet(output, input, next, copy, put);
|
||
//---//
|
||
have -= copy;
|
||
next += copy;
|
||
left -= copy;
|
||
put += copy;
|
||
state.length -= copy;
|
||
break;
|
||
}
|
||
//Tracev((stderr, "inflate: stored end\n"));
|
||
state.mode = TYPE;
|
||
break;
|
||
case TABLE:
|
||
//=== NEEDBITS(14); */
|
||
while (bits < 14) {
|
||
if (have === 0) { break inf_leave; }
|
||
have--;
|
||
hold += input[next++] << bits;
|
||
bits += 8;
|
||
}
|
||
//===//
|
||
state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;
|
||
//--- DROPBITS(5) ---//
|
||
hold >>>= 5;
|
||
bits -= 5;
|
||
//---//
|
||
state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;
|
||
//--- DROPBITS(5) ---//
|
||
hold >>>= 5;
|
||
bits -= 5;
|
||
//---//
|
||
state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;
|
||
//--- DROPBITS(4) ---//
|
||
hold >>>= 4;
|
||
bits -= 4;
|
||
//---//
|
||
//#ifndef PKZIP_BUG_WORKAROUND
|
||
if (state.nlen > 286 || state.ndist > 30) {
|
||
strm.msg = 'too many length or distance symbols';
|
||
state.mode = BAD;
|
||
break;
|
||
}
|
||
//#endif
|
||
//Tracev((stderr, "inflate: table sizes ok\n"));
|
||
state.have = 0;
|
||
state.mode = LENLENS;
|
||
/* falls through */
|
||
case LENLENS:
|
||
while (state.have < state.ncode) {
|
||
//=== NEEDBITS(3);
|
||
while (bits < 3) {
|
||
if (have === 0) { break inf_leave; }
|
||
have--;
|
||
hold += input[next++] << bits;
|
||
bits += 8;
|
||
}
|
||
//===//
|
||
state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);
|
||
//--- DROPBITS(3) ---//
|
||
hold >>>= 3;
|
||
bits -= 3;
|
||
//---//
|
||
}
|
||
while (state.have < 19) {
|
||
state.lens[order[state.have++]] = 0;
|
||
}
|
||
// We have separate tables & no pointers. 2 commented lines below not needed.
|
||
//state.next = state.codes;
|
||
//state.lencode = state.next;
|
||
// Switch to use dynamic table
|
||
state.lencode = state.lendyn;
|
||
state.lenbits = 7;
|
||
|
||
opts = { bits: state.lenbits };
|
||
ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);
|
||
state.lenbits = opts.bits;
|
||
|
||
if (ret) {
|
||
strm.msg = 'invalid code lengths set';
|
||
state.mode = BAD;
|
||
break;
|
||
}
|
||
//Tracev((stderr, "inflate: code lengths ok\n"));
|
||
state.have = 0;
|
||
state.mode = CODELENS;
|
||
/* falls through */
|
||
case CODELENS:
|
||
while (state.have < state.nlen + state.ndist) {
|
||
for (;;) {
|
||
here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/
|
||
here_bits = here >>> 24;
|
||
here_op = (here >>> 16) & 0xff;
|
||
here_val = here & 0xffff;
|
||
|
||
if ((here_bits) <= bits) { break; }
|
||
//--- PULLBYTE() ---//
|
||
if (have === 0) { break inf_leave; }
|
||
have--;
|
||
hold += input[next++] << bits;
|
||
bits += 8;
|
||
//---//
|
||
}
|
||
if (here_val < 16) {
|
||
//--- DROPBITS(here.bits) ---//
|
||
hold >>>= here_bits;
|
||
bits -= here_bits;
|
||
//---//
|
||
state.lens[state.have++] = here_val;
|
||
}
|
||
else {
|
||
if (here_val === 16) {
|
||
//=== NEEDBITS(here.bits + 2);
|
||
n = here_bits + 2;
|
||
while (bits < n) {
|
||
if (have === 0) { break inf_leave; }
|
||
have--;
|
||
hold += input[next++] << bits;
|
||
bits += 8;
|
||
}
|
||
//===//
|
||
//--- DROPBITS(here.bits) ---//
|
||
hold >>>= here_bits;
|
||
bits -= here_bits;
|
||
//---//
|
||
if (state.have === 0) {
|
||
strm.msg = 'invalid bit length repeat';
|
||
state.mode = BAD;
|
||
break;
|
||
}
|
||
len = state.lens[state.have - 1];
|
||
copy = 3 + (hold & 0x03);//BITS(2);
|
||
//--- DROPBITS(2) ---//
|
||
hold >>>= 2;
|
||
bits -= 2;
|
||
//---//
|
||
}
|
||
else if (here_val === 17) {
|
||
//=== NEEDBITS(here.bits + 3);
|
||
n = here_bits + 3;
|
||
while (bits < n) {
|
||
if (have === 0) { break inf_leave; }
|
||
have--;
|
||
hold += input[next++] << bits;
|
||
bits += 8;
|
||
}
|
||
//===//
|
||
//--- DROPBITS(here.bits) ---//
|
||
hold >>>= here_bits;
|
||
bits -= here_bits;
|
||
//---//
|
||
len = 0;
|
||
copy = 3 + (hold & 0x07);//BITS(3);
|
||
//--- DROPBITS(3) ---//
|
||
hold >>>= 3;
|
||
bits -= 3;
|
||
//---//
|
||
}
|
||
else {
|
||
//=== NEEDBITS(here.bits + 7);
|
||
n = here_bits + 7;
|
||
while (bits < n) {
|
||
if (have === 0) { break inf_leave; }
|
||
have--;
|
||
hold += input[next++] << bits;
|
||
bits += 8;
|
||
}
|
||
//===//
|
||
//--- DROPBITS(here.bits) ---//
|
||
hold >>>= here_bits;
|
||
bits -= here_bits;
|
||
//---//
|
||
len = 0;
|
||
copy = 11 + (hold & 0x7f);//BITS(7);
|
||
//--- DROPBITS(7) ---//
|
||
hold >>>= 7;
|
||
bits -= 7;
|
||
//---//
|
||
}
|
||
if (state.have + copy > state.nlen + state.ndist) {
|
||
strm.msg = 'invalid bit length repeat';
|
||
state.mode = BAD;
|
||
break;
|
||
}
|
||
while (copy--) {
|
||
state.lens[state.have++] = len;
|
||
}
|
||
}
|
||
}
|
||
|
||
/* handle error breaks in while */
|
||
if (state.mode === BAD) { break; }
|
||
|
||
/* check for end-of-block code (better have one) */
|
||
if (state.lens[256] === 0) {
|
||
strm.msg = 'invalid code -- missing end-of-block';
|
||
state.mode = BAD;
|
||
break;
|
||
}
|
||
|
||
/* build code tables -- note: do not change the lenbits or distbits
|
||
values here (9 and 6) without reading the comments in inftrees.h
|
||
concerning the ENOUGH constants, which depend on those values */
|
||
state.lenbits = 9;
|
||
|
||
opts = { bits: state.lenbits };
|
||
ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);
|
||
// We have separate tables & no pointers. 2 commented lines below not needed.
|
||
// state.next_index = opts.table_index;
|
||
state.lenbits = opts.bits;
|
||
// state.lencode = state.next;
|
||
|
||
if (ret) {
|
||
strm.msg = 'invalid literal/lengths set';
|
||
state.mode = BAD;
|
||
break;
|
||
}
|
||
|
||
state.distbits = 6;
|
||
//state.distcode.copy(state.codes);
|
||
// Switch to use dynamic table
|
||
state.distcode = state.distdyn;
|
||
opts = { bits: state.distbits };
|
||
ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);
|
||
// We have separate tables & no pointers. 2 commented lines below not needed.
|
||
// state.next_index = opts.table_index;
|
||
state.distbits = opts.bits;
|
||
// state.distcode = state.next;
|
||
|
||
if (ret) {
|
||
strm.msg = 'invalid distances set';
|
||
state.mode = BAD;
|
||
break;
|
||
}
|
||
//Tracev((stderr, 'inflate: codes ok\n'));
|
||
state.mode = LEN_;
|
||
if (flush === Z_TREES) { break inf_leave; }
|
||
/* falls through */
|
||
case LEN_:
|
||
state.mode = LEN;
|
||
/* falls through */
|
||
case LEN:
|
||
if (have >= 6 && left >= 258) {
|
||
//--- RESTORE() ---
|
||
strm.next_out = put;
|
||
strm.avail_out = left;
|
||
strm.next_in = next;
|
||
strm.avail_in = have;
|
||
state.hold = hold;
|
||
state.bits = bits;
|
||
//---
|
||
inflate_fast(strm, _out);
|
||
//--- LOAD() ---
|
||
put = strm.next_out;
|
||
output = strm.output;
|
||
left = strm.avail_out;
|
||
next = strm.next_in;
|
||
input = strm.input;
|
||
have = strm.avail_in;
|
||
hold = state.hold;
|
||
bits = state.bits;
|
||
//---
|
||
|
||
if (state.mode === TYPE) {
|
||
state.back = -1;
|
||
}
|
||
break;
|
||
}
|
||
state.back = 0;
|
||
for (;;) {
|
||
here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/
|
||
here_bits = here >>> 24;
|
||
here_op = (here >>> 16) & 0xff;
|
||
here_val = here & 0xffff;
|
||
|
||
if (here_bits <= bits) { break; }
|
||
//--- PULLBYTE() ---//
|
||
if (have === 0) { break inf_leave; }
|
||
have--;
|
||
hold += input[next++] << bits;
|
||
bits += 8;
|
||
//---//
|
||
}
|
||
if (here_op && (here_op & 0xf0) === 0) {
|
||
last_bits = here_bits;
|
||
last_op = here_op;
|
||
last_val = here_val;
|
||
for (;;) {
|
||
here = state.lencode[last_val +
|
||
((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];
|
||
here_bits = here >>> 24;
|
||
here_op = (here >>> 16) & 0xff;
|
||
here_val = here & 0xffff;
|
||
|
||
if ((last_bits + here_bits) <= bits) { break; }
|
||
//--- PULLBYTE() ---//
|
||
if (have === 0) { break inf_leave; }
|
||
have--;
|
||
hold += input[next++] << bits;
|
||
bits += 8;
|
||
//---//
|
||
}
|
||
//--- DROPBITS(last.bits) ---//
|
||
hold >>>= last_bits;
|
||
bits -= last_bits;
|
||
//---//
|
||
state.back += last_bits;
|
||
}
|
||
//--- DROPBITS(here.bits) ---//
|
||
hold >>>= here_bits;
|
||
bits -= here_bits;
|
||
//---//
|
||
state.back += here_bits;
|
||
state.length = here_val;
|
||
if (here_op === 0) {
|
||
//Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?
|
||
// "inflate: literal '%c'\n" :
|
||
// "inflate: literal 0x%02x\n", here.val));
|
||
state.mode = LIT;
|
||
break;
|
||
}
|
||
if (here_op & 32) {
|
||
//Tracevv((stderr, "inflate: end of block\n"));
|
||
state.back = -1;
|
||
state.mode = TYPE;
|
||
break;
|
||
}
|
||
if (here_op & 64) {
|
||
strm.msg = 'invalid literal/length code';
|
||
state.mode = BAD;
|
||
break;
|
||
}
|
||
state.extra = here_op & 15;
|
||
state.mode = LENEXT;
|
||
/* falls through */
|
||
case LENEXT:
|
||
if (state.extra) {
|
||
//=== NEEDBITS(state.extra);
|
||
n = state.extra;
|
||
while (bits < n) {
|
||
if (have === 0) { break inf_leave; }
|
||
have--;
|
||
hold += input[next++] << bits;
|
||
bits += 8;
|
||
}
|
||
//===//
|
||
state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;
|
||
//--- DROPBITS(state.extra) ---//
|
||
hold >>>= state.extra;
|
||
bits -= state.extra;
|
||
//---//
|
||
state.back += state.extra;
|
||
}
|
||
//Tracevv((stderr, "inflate: length %u\n", state.length));
|
||
state.was = state.length;
|
||
state.mode = DIST;
|
||
/* falls through */
|
||
case DIST:
|
||
for (;;) {
|
||
here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/
|
||
here_bits = here >>> 24;
|
||
here_op = (here >>> 16) & 0xff;
|
||
here_val = here & 0xffff;
|
||
|
||
if ((here_bits) <= bits) { break; }
|
||
//--- PULLBYTE() ---//
|
||
if (have === 0) { break inf_leave; }
|
||
have--;
|
||
hold += input[next++] << bits;
|
||
bits += 8;
|
||
//---//
|
||
}
|
||
if ((here_op & 0xf0) === 0) {
|
||
last_bits = here_bits;
|
||
last_op = here_op;
|
||
last_val = here_val;
|
||
for (;;) {
|
||
here = state.distcode[last_val +
|
||
((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];
|
||
here_bits = here >>> 24;
|
||
here_op = (here >>> 16) & 0xff;
|
||
here_val = here & 0xffff;
|
||
|
||
if ((last_bits + here_bits) <= bits) { break; }
|
||
//--- PULLBYTE() ---//
|
||
if (have === 0) { break inf_leave; }
|
||
have--;
|
||
hold += input[next++] << bits;
|
||
bits += 8;
|
||
//---//
|
||
}
|
||
//--- DROPBITS(last.bits) ---//
|
||
hold >>>= last_bits;
|
||
bits -= last_bits;
|
||
//---//
|
||
state.back += last_bits;
|
||
}
|
||
//--- DROPBITS(here.bits) ---//
|
||
hold >>>= here_bits;
|
||
bits -= here_bits;
|
||
//---//
|
||
state.back += here_bits;
|
||
if (here_op & 64) {
|
||
strm.msg = 'invalid distance code';
|
||
state.mode = BAD;
|
||
break;
|
||
}
|
||
state.offset = here_val;
|
||
state.extra = (here_op) & 15;
|
||
state.mode = DISTEXT;
|
||
/* falls through */
|
||
case DISTEXT:
|
||
if (state.extra) {
|
||
//=== NEEDBITS(state.extra);
|
||
n = state.extra;
|
||
while (bits < n) {
|
||
if (have === 0) { break inf_leave; }
|
||
have--;
|
||
hold += input[next++] << bits;
|
||
bits += 8;
|
||
}
|
||
//===//
|
||
state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;
|
||
//--- DROPBITS(state.extra) ---//
|
||
hold >>>= state.extra;
|
||
bits -= state.extra;
|
||
//---//
|
||
state.back += state.extra;
|
||
}
|
||
//#ifdef INFLATE_STRICT
|
||
if (state.offset > state.dmax) {
|
||
strm.msg = 'invalid distance too far back';
|
||
state.mode = BAD;
|
||
break;
|
||
}
|
||
//#endif
|
||
//Tracevv((stderr, "inflate: distance %u\n", state.offset));
|
||
state.mode = MATCH;
|
||
/* falls through */
|
||
case MATCH:
|
||
if (left === 0) { break inf_leave; }
|
||
copy = _out - left;
|
||
if (state.offset > copy) { /* copy from window */
|
||
copy = state.offset - copy;
|
||
if (copy > state.whave) {
|
||
if (state.sane) {
|
||
strm.msg = 'invalid distance too far back';
|
||
state.mode = BAD;
|
||
break;
|
||
}
|
||
// (!) This block is disabled in zlib defaults,
|
||
// don't enable it for binary compatibility
|
||
//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR
|
||
// Trace((stderr, "inflate.c too far\n"));
|
||
// copy -= state.whave;
|
||
// if (copy > state.length) { copy = state.length; }
|
||
// if (copy > left) { copy = left; }
|
||
// left -= copy;
|
||
// state.length -= copy;
|
||
// do {
|
||
// output[put++] = 0;
|
||
// } while (--copy);
|
||
// if (state.length === 0) { state.mode = LEN; }
|
||
// break;
|
||
//#endif
|
||
}
|
||
if (copy > state.wnext) {
|
||
copy -= state.wnext;
|
||
from = state.wsize - copy;
|
||
}
|
||
else {
|
||
from = state.wnext - copy;
|
||
}
|
||
if (copy > state.length) { copy = state.length; }
|
||
from_source = state.window;
|
||
}
|
||
else { /* copy from output */
|
||
from_source = output;
|
||
from = put - state.offset;
|
||
copy = state.length;
|
||
}
|
||
if (copy > left) { copy = left; }
|
||
left -= copy;
|
||
state.length -= copy;
|
||
do {
|
||
output[put++] = from_source[from++];
|
||
} while (--copy);
|
||
if (state.length === 0) { state.mode = LEN; }
|
||
break;
|
||
case LIT:
|
||
if (left === 0) { break inf_leave; }
|
||
output[put++] = state.length;
|
||
left--;
|
||
state.mode = LEN;
|
||
break;
|
||
case CHECK:
|
||
if (state.wrap) {
|
||
//=== NEEDBITS(32);
|
||
while (bits < 32) {
|
||
if (have === 0) { break inf_leave; }
|
||
have--;
|
||
// Use '|' instead of '+' to make sure that result is signed
|
||
hold |= input[next++] << bits;
|
||
bits += 8;
|
||
}
|
||
//===//
|
||
_out -= left;
|
||
strm.total_out += _out;
|
||
state.total += _out;
|
||
if (_out) {
|
||
strm.adler = state.check =
|
||
/*UPDATE(state.check, put - _out, _out);*/
|
||
(state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out));
|
||
|
||
}
|
||
_out = left;
|
||
// NB: crc32 stored as signed 32-bit int, zswap32 returns signed too
|
||
if ((state.flags ? hold : zswap32(hold)) !== state.check) {
|
||
strm.msg = 'incorrect data check';
|
||
state.mode = BAD;
|
||
break;
|
||
}
|
||
//=== INITBITS();
|
||
hold = 0;
|
||
bits = 0;
|
||
//===//
|
||
//Tracev((stderr, "inflate: check matches trailer\n"));
|
||
}
|
||
state.mode = LENGTH;
|
||
/* falls through */
|
||
case LENGTH:
|
||
if (state.wrap && state.flags) {
|
||
//=== NEEDBITS(32);
|
||
while (bits < 32) {
|
||
if (have === 0) { break inf_leave; }
|
||
have--;
|
||
hold += input[next++] << bits;
|
||
bits += 8;
|
||
}
|
||
//===//
|
||
if (hold !== (state.total & 0xffffffff)) {
|
||
strm.msg = 'incorrect length check';
|
||
state.mode = BAD;
|
||
break;
|
||
}
|
||
//=== INITBITS();
|
||
hold = 0;
|
||
bits = 0;
|
||
//===//
|
||
//Tracev((stderr, "inflate: length matches trailer\n"));
|
||
}
|
||
state.mode = DONE;
|
||
/* falls through */
|
||
case DONE:
|
||
ret = Z_STREAM_END;
|
||
break inf_leave;
|
||
case BAD:
|
||
ret = Z_DATA_ERROR;
|
||
break inf_leave;
|
||
case MEM:
|
||
return Z_MEM_ERROR;
|
||
case SYNC:
|
||
/* falls through */
|
||
default:
|
||
return Z_STREAM_ERROR;
|
||
}
|
||
}
|
||
|
||
// inf_leave <- here is real place for "goto inf_leave", emulated via "break inf_leave"
|
||
|
||
/*
|
||
Return from inflate(), updating the total counts and the check value.
|
||
If there was no progress during the inflate() call, return a buffer
|
||
error. Call updatewindow() to create and/or update the window state.
|
||
Note: a memory error from inflate() is non-recoverable.
|
||
*/
|
||
|
||
//--- RESTORE() ---
|
||
strm.next_out = put;
|
||
strm.avail_out = left;
|
||
strm.next_in = next;
|
||
strm.avail_in = have;
|
||
state.hold = hold;
|
||
state.bits = bits;
|
||
//---
|
||
|
||
if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&
|
||
(state.mode < CHECK || flush !== Z_FINISH))) {
|
||
if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) {
|
||
state.mode = MEM;
|
||
return Z_MEM_ERROR;
|
||
}
|
||
}
|
||
_in -= strm.avail_in;
|
||
_out -= strm.avail_out;
|
||
strm.total_in += _in;
|
||
strm.total_out += _out;
|
||
state.total += _out;
|
||
if (state.wrap && _out) {
|
||
strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/
|
||
(state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out));
|
||
}
|
||
strm.data_type = state.bits + (state.last ? 64 : 0) +
|
||
(state.mode === TYPE ? 128 : 0) +
|
||
(state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);
|
||
if (((_in === 0 && _out === 0) || flush === Z_FINISH) && ret === Z_OK) {
|
||
ret = Z_BUF_ERROR;
|
||
}
|
||
return ret;
|
||
}
|
||
|
||
function inflateEnd(strm) {
|
||
|
||
if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) {
|
||
return Z_STREAM_ERROR;
|
||
}
|
||
|
||
var state = strm.state;
|
||
if (state.window) {
|
||
state.window = null;
|
||
}
|
||
strm.state = null;
|
||
return Z_OK;
|
||
}
|
||
|
||
function inflateGetHeader(strm, head) {
|
||
var state;
|
||
|
||
/* check state */
|
||
if (!strm || !strm.state) { return Z_STREAM_ERROR; }
|
||
state = strm.state;
|
||
if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR; }
|
||
|
||
/* save header structure */
|
||
state.head = head;
|
||
head.done = false;
|
||
return Z_OK;
|
||
}
|
||
|
||
function inflateSetDictionary(strm, dictionary) {
|
||
var dictLength = dictionary.length;
|
||
|
||
var state;
|
||
var dictid;
|
||
var ret;
|
||
|
||
/* check state */
|
||
if (!strm /* == Z_NULL */ || !strm.state /* == Z_NULL */) { return Z_STREAM_ERROR; }
|
||
state = strm.state;
|
||
|
||
if (state.wrap !== 0 && state.mode !== DICT) {
|
||
return Z_STREAM_ERROR;
|
||
}
|
||
|
||
/* check for correct dictionary identifier */
|
||
if (state.mode === DICT) {
|
||
dictid = 1; /* adler32(0, null, 0)*/
|
||
/* dictid = adler32(dictid, dictionary, dictLength); */
|
||
dictid = adler32(dictid, dictionary, dictLength, 0);
|
||
if (dictid !== state.check) {
|
||
return Z_DATA_ERROR;
|
||
}
|
||
}
|
||
/* copy dictionary to window using updatewindow(), which will amend the
|
||
existing dictionary if appropriate */
|
||
ret = updatewindow(strm, dictionary, dictLength, dictLength);
|
||
if (ret) {
|
||
state.mode = MEM;
|
||
return Z_MEM_ERROR;
|
||
}
|
||
state.havedict = 1;
|
||
// Tracev((stderr, "inflate: dictionary set\n"));
|
||
return Z_OK;
|
||
}
|
||
|
||
exports.inflateReset = inflateReset;
|
||
exports.inflateReset2 = inflateReset2;
|
||
exports.inflateResetKeep = inflateResetKeep;
|
||
exports.inflateInit = inflateInit;
|
||
exports.inflateInit2 = inflateInit2;
|
||
exports.inflate = inflate;
|
||
exports.inflateEnd = inflateEnd;
|
||
exports.inflateGetHeader = inflateGetHeader;
|
||
exports.inflateSetDictionary = inflateSetDictionary;
|
||
exports.inflateInfo = 'pako inflate (from Nodeca project)';
|
||
|
||
/* Not implemented
|
||
exports.inflateCopy = inflateCopy;
|
||
exports.inflateGetDictionary = inflateGetDictionary;
|
||
exports.inflateMark = inflateMark;
|
||
exports.inflatePrime = inflatePrime;
|
||
exports.inflateSync = inflateSync;
|
||
exports.inflateSyncPoint = inflateSyncPoint;
|
||
exports.inflateUndermine = inflateUndermine;
|
||
*/
|
||
|
||
},{"../utils/common":3,"./adler32":5,"./crc32":7,"./inffast":10,"./inftrees":12}],12:[function(require,module,exports){
|
||
'use strict';
|
||
|
||
// (C) 1995-2013 Jean-loup Gailly and Mark Adler
|
||
// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
|
||
//
|
||
// This software is provided 'as-is', without any express or implied
|
||
// warranty. In no event will the authors be held liable for any damages
|
||
// arising from the use of this software.
|
||
//
|
||
// Permission is granted to anyone to use this software for any purpose,
|
||
// including commercial applications, and to alter it and redistribute it
|
||
// freely, subject to the following restrictions:
|
||
//
|
||
// 1. The origin of this software must not be misrepresented; you must not
|
||
// claim that you wrote the original software. If you use this software
|
||
// in a product, an acknowledgment in the product documentation would be
|
||
// appreciated but is not required.
|
||
// 2. Altered source versions must be plainly marked as such, and must not be
|
||
// misrepresented as being the original software.
|
||
// 3. This notice may not be removed or altered from any source distribution.
|
||
|
||
var utils = require('../utils/common');
|
||
|
||
var MAXBITS = 15;
|
||
var ENOUGH_LENS = 852;
|
||
var ENOUGH_DISTS = 592;
|
||
//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);
|
||
|
||
var CODES = 0;
|
||
var LENS = 1;
|
||
var DISTS = 2;
|
||
|
||
var lbase = [ /* Length codes 257..285 base */
|
||
3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,
|
||
35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0
|
||
];
|
||
|
||
var lext = [ /* Length codes 257..285 extra */
|
||
16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,
|
||
19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78
|
||
];
|
||
|
||
var dbase = [ /* Distance codes 0..29 base */
|
||
1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,
|
||
257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,
|
||
8193, 12289, 16385, 24577, 0, 0
|
||
];
|
||
|
||
var dext = [ /* Distance codes 0..29 extra */
|
||
16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,
|
||
23, 23, 24, 24, 25, 25, 26, 26, 27, 27,
|
||
28, 28, 29, 29, 64, 64
|
||
];
|
||
|
||
module.exports = function inflate_table(type, lens, lens_index, codes, table, table_index, work, opts)
|
||
{
|
||
var bits = opts.bits;
|
||
//here = opts.here; /* table entry for duplication */
|
||
|
||
var len = 0; /* a code's length in bits */
|
||
var sym = 0; /* index of code symbols */
|
||
var min = 0, max = 0; /* minimum and maximum code lengths */
|
||
var root = 0; /* number of index bits for root table */
|
||
var curr = 0; /* number of index bits for current table */
|
||
var drop = 0; /* code bits to drop for sub-table */
|
||
var left = 0; /* number of prefix codes available */
|
||
var used = 0; /* code entries in table used */
|
||
var huff = 0; /* Huffman code */
|
||
var incr; /* for incrementing code, index */
|
||
var fill; /* index for replicating entries */
|
||
var low; /* low bits for current root entry */
|
||
var mask; /* mask for low root bits */
|
||
var next; /* next available space in table */
|
||
var base = null; /* base value table to use */
|
||
var base_index = 0;
|
||
// var shoextra; /* extra bits table to use */
|
||
var end; /* use base and extra for symbol > end */
|
||
var count = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */
|
||
var offs = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */
|
||
var extra = null;
|
||
var extra_index = 0;
|
||
|
||
var here_bits, here_op, here_val;
|
||
|
||
/*
|
||
Process a set of code lengths to create a canonical Huffman code. The
|
||
code lengths are lens[0..codes-1]. Each length corresponds to the
|
||
symbols 0..codes-1. The Huffman code is generated by first sorting the
|
||
symbols by length from short to long, and retaining the symbol order
|
||
for codes with equal lengths. Then the code starts with all zero bits
|
||
for the first code of the shortest length, and the codes are integer
|
||
increments for the same length, and zeros are appended as the length
|
||
increases. For the deflate format, these bits are stored backwards
|
||
from their more natural integer increment ordering, and so when the
|
||
decoding tables are built in the large loop below, the integer codes
|
||
are incremented backwards.
|
||
|
||
This routine assumes, but does not check, that all of the entries in
|
||
lens[] are in the range 0..MAXBITS. The caller must assure this.
|
||
1..MAXBITS is interpreted as that code length. zero means that that
|
||
symbol does not occur in this code.
|
||
|
||
The codes are sorted by computing a count of codes for each length,
|
||
creating from that a table of starting indices for each length in the
|
||
sorted table, and then entering the symbols in order in the sorted
|
||
table. The sorted table is work[], with that space being provided by
|
||
the caller.
|
||
|
||
The length counts are used for other purposes as well, i.e. finding
|
||
the minimum and maximum length codes, determining if there are any
|
||
codes at all, checking for a valid set of lengths, and looking ahead
|
||
at length counts to determine sub-table sizes when building the
|
||
decoding tables.
|
||
*/
|
||
|
||
/* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */
|
||
for (len = 0; len <= MAXBITS; len++) {
|
||
count[len] = 0;
|
||
}
|
||
for (sym = 0; sym < codes; sym++) {
|
||
count[lens[lens_index + sym]]++;
|
||
}
|
||
|
||
/* bound code lengths, force root to be within code lengths */
|
||
root = bits;
|
||
for (max = MAXBITS; max >= 1; max--) {
|
||
if (count[max] !== 0) { break; }
|
||
}
|
||
if (root > max) {
|
||
root = max;
|
||
}
|
||
if (max === 0) { /* no symbols to code at all */
|
||
//table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */
|
||
//table.bits[opts.table_index] = 1; //here.bits = (var char)1;
|
||
//table.val[opts.table_index++] = 0; //here.val = (var short)0;
|
||
table[table_index++] = (1 << 24) | (64 << 16) | 0;
|
||
|
||
|
||
//table.op[opts.table_index] = 64;
|
||
//table.bits[opts.table_index] = 1;
|
||
//table.val[opts.table_index++] = 0;
|
||
table[table_index++] = (1 << 24) | (64 << 16) | 0;
|
||
|
||
opts.bits = 1;
|
||
return 0; /* no symbols, but wait for decoding to report error */
|
||
}
|
||
for (min = 1; min < max; min++) {
|
||
if (count[min] !== 0) { break; }
|
||
}
|
||
if (root < min) {
|
||
root = min;
|
||
}
|
||
|
||
/* check for an over-subscribed or incomplete set of lengths */
|
||
left = 1;
|
||
for (len = 1; len <= MAXBITS; len++) {
|
||
left <<= 1;
|
||
left -= count[len];
|
||
if (left < 0) {
|
||
return -1;
|
||
} /* over-subscribed */
|
||
}
|
||
if (left > 0 && (type === CODES || max !== 1)) {
|
||
return -1; /* incomplete set */
|
||
}
|
||
|
||
/* generate offsets into symbol table for each length for sorting */
|
||
offs[1] = 0;
|
||
for (len = 1; len < MAXBITS; len++) {
|
||
offs[len + 1] = offs[len] + count[len];
|
||
}
|
||
|
||
/* sort symbols by length, by symbol order within each length */
|
||
for (sym = 0; sym < codes; sym++) {
|
||
if (lens[lens_index + sym] !== 0) {
|
||
work[offs[lens[lens_index + sym]]++] = sym;
|
||
}
|
||
}
|
||
|
||
/*
|
||
Create and fill in decoding tables. In this loop, the table being
|
||
filled is at next and has curr index bits. The code being used is huff
|
||
with length len. That code is converted to an index by dropping drop
|
||
bits off of the bottom. For codes where len is less than drop + curr,
|
||
those top drop + curr - len bits are incremented through all values to
|
||
fill the table with replicated entries.
|
||
|
||
root is the number of index bits for the root table. When len exceeds
|
||
root, sub-tables are created pointed to by the root entry with an index
|
||
of the low root bits of huff. This is saved in low to check for when a
|
||
new sub-table should be started. drop is zero when the root table is
|
||
being filled, and drop is root when sub-tables are being filled.
|
||
|
||
When a new sub-table is needed, it is necessary to look ahead in the
|
||
code lengths to determine what size sub-table is needed. The length
|
||
counts are used for this, and so count[] is decremented as codes are
|
||
entered in the tables.
|
||
|
||
used keeps track of how many table entries have been allocated from the
|
||
provided *table space. It is checked for LENS and DIST tables against
|
||
the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in
|
||
the initial root table size constants. See the comments in inftrees.h
|
||
for more information.
|
||
|
||
sym increments through all symbols, and the loop terminates when
|
||
all codes of length max, i.e. all codes, have been processed. This
|
||
routine permits incomplete codes, so another loop after this one fills
|
||
in the rest of the decoding tables with invalid code markers.
|
||
*/
|
||
|
||
/* set up for code type */
|
||
// poor man optimization - use if-else instead of switch,
|
||
// to avoid deopts in old v8
|
||
if (type === CODES) {
|
||
base = extra = work; /* dummy value--not used */
|
||
end = 19;
|
||
|
||
} else if (type === LENS) {
|
||
base = lbase;
|
||
base_index -= 257;
|
||
extra = lext;
|
||
extra_index -= 257;
|
||
end = 256;
|
||
|
||
} else { /* DISTS */
|
||
base = dbase;
|
||
extra = dext;
|
||
end = -1;
|
||
}
|
||
|
||
/* initialize opts for loop */
|
||
huff = 0; /* starting code */
|
||
sym = 0; /* starting code symbol */
|
||
len = min; /* starting code length */
|
||
next = table_index; /* current table to fill in */
|
||
curr = root; /* current table index bits */
|
||
drop = 0; /* current bits to drop from code for index */
|
||
low = -1; /* trigger new sub-table when len > root */
|
||
used = 1 << root; /* use root table entries */
|
||
mask = used - 1; /* mask for comparing low */
|
||
|
||
/* check available table space */
|
||
if ((type === LENS && used > ENOUGH_LENS) ||
|
||
(type === DISTS && used > ENOUGH_DISTS)) {
|
||
return 1;
|
||
}
|
||
|
||
/* process all codes and make table entries */
|
||
for (;;) {
|
||
/* create table entry */
|
||
here_bits = len - drop;
|
||
if (work[sym] < end) {
|
||
here_op = 0;
|
||
here_val = work[sym];
|
||
}
|
||
else if (work[sym] > end) {
|
||
here_op = extra[extra_index + work[sym]];
|
||
here_val = base[base_index + work[sym]];
|
||
}
|
||
else {
|
||
here_op = 32 + 64; /* end of block */
|
||
here_val = 0;
|
||
}
|
||
|
||
/* replicate for those indices with low len bits equal to huff */
|
||
incr = 1 << (len - drop);
|
||
fill = 1 << curr;
|
||
min = fill; /* save offset to next table */
|
||
do {
|
||
fill -= incr;
|
||
table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;
|
||
} while (fill !== 0);
|
||
|
||
/* backwards increment the len-bit code huff */
|
||
incr = 1 << (len - 1);
|
||
while (huff & incr) {
|
||
incr >>= 1;
|
||
}
|
||
if (incr !== 0) {
|
||
huff &= incr - 1;
|
||
huff += incr;
|
||
} else {
|
||
huff = 0;
|
||
}
|
||
|
||
/* go to next symbol, update count, len */
|
||
sym++;
|
||
if (--count[len] === 0) {
|
||
if (len === max) { break; }
|
||
len = lens[lens_index + work[sym]];
|
||
}
|
||
|
||
/* create new sub-table if needed */
|
||
if (len > root && (huff & mask) !== low) {
|
||
/* if first time, transition to sub-tables */
|
||
if (drop === 0) {
|
||
drop = root;
|
||
}
|
||
|
||
/* increment past last table */
|
||
next += min; /* here min is 1 << curr */
|
||
|
||
/* determine length of next table */
|
||
curr = len - drop;
|
||
left = 1 << curr;
|
||
while (curr + drop < max) {
|
||
left -= count[curr + drop];
|
||
if (left <= 0) { break; }
|
||
curr++;
|
||
left <<= 1;
|
||
}
|
||
|
||
/* check for enough space */
|
||
used += 1 << curr;
|
||
if ((type === LENS && used > ENOUGH_LENS) ||
|
||
(type === DISTS && used > ENOUGH_DISTS)) {
|
||
return 1;
|
||
}
|
||
|
||
/* point entry in root table to sub-table */
|
||
low = huff & mask;
|
||
/*table.op[low] = curr;
|
||
table.bits[low] = root;
|
||
table.val[low] = next - opts.table_index;*/
|
||
table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;
|
||
}
|
||
}
|
||
|
||
/* fill in remaining table entry if code is incomplete (guaranteed to have
|
||
at most one remaining entry, since if the code is incomplete, the
|
||
maximum code length that was allowed to get this far is one bit) */
|
||
if (huff !== 0) {
|
||
//table.op[next + huff] = 64; /* invalid code marker */
|
||
//table.bits[next + huff] = len - drop;
|
||
//table.val[next + huff] = 0;
|
||
table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;
|
||
}
|
||
|
||
/* set return parameters */
|
||
//opts.table_index += used;
|
||
opts.bits = root;
|
||
return 0;
|
||
};
|
||
|
||
},{"../utils/common":3}],13:[function(require,module,exports){
|
||
'use strict';
|
||
|
||
// (C) 1995-2013 Jean-loup Gailly and Mark Adler
|
||
// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
|
||
//
|
||
// This software is provided 'as-is', without any express or implied
|
||
// warranty. In no event will the authors be held liable for any damages
|
||
// arising from the use of this software.
|
||
//
|
||
// Permission is granted to anyone to use this software for any purpose,
|
||
// including commercial applications, and to alter it and redistribute it
|
||
// freely, subject to the following restrictions:
|
||
//
|
||
// 1. The origin of this software must not be misrepresented; you must not
|
||
// claim that you wrote the original software. If you use this software
|
||
// in a product, an acknowledgment in the product documentation would be
|
||
// appreciated but is not required.
|
||
// 2. Altered source versions must be plainly marked as such, and must not be
|
||
// misrepresented as being the original software.
|
||
// 3. This notice may not be removed or altered from any source distribution.
|
||
|
||
module.exports = {
|
||
2: 'need dictionary', /* Z_NEED_DICT 2 */
|
||
1: 'stream end', /* Z_STREAM_END 1 */
|
||
0: '', /* Z_OK 0 */
|
||
'-1': 'file error', /* Z_ERRNO (-1) */
|
||
'-2': 'stream error', /* Z_STREAM_ERROR (-2) */
|
||
'-3': 'data error', /* Z_DATA_ERROR (-3) */
|
||
'-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */
|
||
'-5': 'buffer error', /* Z_BUF_ERROR (-5) */
|
||
'-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */
|
||
};
|
||
|
||
},{}],14:[function(require,module,exports){
|
||
'use strict';
|
||
|
||
// (C) 1995-2013 Jean-loup Gailly and Mark Adler
|
||
// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
|
||
//
|
||
// This software is provided 'as-is', without any express or implied
|
||
// warranty. In no event will the authors be held liable for any damages
|
||
// arising from the use of this software.
|
||
//
|
||
// Permission is granted to anyone to use this software for any purpose,
|
||
// including commercial applications, and to alter it and redistribute it
|
||
// freely, subject to the following restrictions:
|
||
//
|
||
// 1. The origin of this software must not be misrepresented; you must not
|
||
// claim that you wrote the original software. If you use this software
|
||
// in a product, an acknowledgment in the product documentation would be
|
||
// appreciated but is not required.
|
||
// 2. Altered source versions must be plainly marked as such, and must not be
|
||
// misrepresented as being the original software.
|
||
// 3. This notice may not be removed or altered from any source distribution.
|
||
|
||
/* eslint-disable space-unary-ops */
|
||
|
||
var utils = require('../utils/common');
|
||
|
||
/* Public constants ==========================================================*/
|
||
/* ===========================================================================*/
|
||
|
||
|
||
//var Z_FILTERED = 1;
|
||
//var Z_HUFFMAN_ONLY = 2;
|
||
//var Z_RLE = 3;
|
||
var Z_FIXED = 4;
|
||
//var Z_DEFAULT_STRATEGY = 0;
|
||
|
||
/* Possible values of the data_type field (though see inflate()) */
|
||
var Z_BINARY = 0;
|
||
var Z_TEXT = 1;
|
||
//var Z_ASCII = 1; // = Z_TEXT
|
||
var Z_UNKNOWN = 2;
|
||
|
||
/*============================================================================*/
|
||
|
||
|
||
function zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }
|
||
|
||
// From zutil.h
|
||
|
||
var STORED_BLOCK = 0;
|
||
var STATIC_TREES = 1;
|
||
var DYN_TREES = 2;
|
||
/* The three kinds of block type */
|
||
|
||
var MIN_MATCH = 3;
|
||
var MAX_MATCH = 258;
|
||
/* The minimum and maximum match lengths */
|
||
|
||
// From deflate.h
|
||
/* ===========================================================================
|
||
* Internal compression state.
|
||
*/
|
||
|
||
var LENGTH_CODES = 29;
|
||
/* number of length codes, not counting the special END_BLOCK code */
|
||
|
||
var LITERALS = 256;
|
||
/* number of literal bytes 0..255 */
|
||
|
||
var L_CODES = LITERALS + 1 + LENGTH_CODES;
|
||
/* number of Literal or Length codes, including the END_BLOCK code */
|
||
|
||
var D_CODES = 30;
|
||
/* number of distance codes */
|
||
|
||
var BL_CODES = 19;
|
||
/* number of codes used to transfer the bit lengths */
|
||
|
||
var HEAP_SIZE = 2 * L_CODES + 1;
|
||
/* maximum heap size */
|
||
|
||
var MAX_BITS = 15;
|
||
/* All codes must not exceed MAX_BITS bits */
|
||
|
||
var Buf_size = 16;
|
||
/* size of bit buffer in bi_buf */
|
||
|
||
|
||
/* ===========================================================================
|
||
* Constants
|
||
*/
|
||
|
||
var MAX_BL_BITS = 7;
|
||
/* Bit length codes must not exceed MAX_BL_BITS bits */
|
||
|
||
var END_BLOCK = 256;
|
||
/* end of block literal code */
|
||
|
||
var REP_3_6 = 16;
|
||
/* repeat previous bit length 3-6 times (2 bits of repeat count) */
|
||
|
||
var REPZ_3_10 = 17;
|
||
/* repeat a zero length 3-10 times (3 bits of repeat count) */
|
||
|
||
var REPZ_11_138 = 18;
|
||
/* repeat a zero length 11-138 times (7 bits of repeat count) */
|
||
|
||
/* eslint-disable comma-spacing,array-bracket-spacing */
|
||
var extra_lbits = /* extra bits for each length code */
|
||
[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0];
|
||
|
||
var extra_dbits = /* extra bits for each distance code */
|
||
[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];
|
||
|
||
var extra_blbits = /* extra bits for each bit length code */
|
||
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];
|
||
|
||
var bl_order =
|
||
[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];
|
||
/* eslint-enable comma-spacing,array-bracket-spacing */
|
||
|
||
/* The lengths of the bit length codes are sent in order of decreasing
|
||
* probability, to avoid transmitting the lengths for unused bit length codes.
|
||
*/
|
||
|
||
/* ===========================================================================
|
||
* Local data. These are initialized only once.
|
||
*/
|
||
|
||
// We pre-fill arrays with 0 to avoid uninitialized gaps
|
||
|
||
var DIST_CODE_LEN = 512; /* see definition of array dist_code below */
|
||
|
||
// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1
|
||
var static_ltree = new Array((L_CODES + 2) * 2);
|
||
zero(static_ltree);
|
||
/* The static literal tree. Since the bit lengths are imposed, there is no
|
||
* need for the L_CODES extra codes used during heap construction. However
|
||
* The codes 286 and 287 are needed to build a canonical tree (see _tr_init
|
||
* below).
|
||
*/
|
||
|
||
var static_dtree = new Array(D_CODES * 2);
|
||
zero(static_dtree);
|
||
/* The static distance tree. (Actually a trivial tree since all codes use
|
||
* 5 bits.)
|
||
*/
|
||
|
||
var _dist_code = new Array(DIST_CODE_LEN);
|
||
zero(_dist_code);
|
||
/* Distance codes. The first 256 values correspond to the distances
|
||
* 3 .. 258, the last 256 values correspond to the top 8 bits of
|
||
* the 15 bit distances.
|
||
*/
|
||
|
||
var _length_code = new Array(MAX_MATCH - MIN_MATCH + 1);
|
||
zero(_length_code);
|
||
/* length code for each normalized match length (0 == MIN_MATCH) */
|
||
|
||
var base_length = new Array(LENGTH_CODES);
|
||
zero(base_length);
|
||
/* First normalized length for each code (0 = MIN_MATCH) */
|
||
|
||
var base_dist = new Array(D_CODES);
|
||
zero(base_dist);
|
||
/* First normalized distance for each code (0 = distance of 1) */
|
||
|
||
|
||
function StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {
|
||
|
||
this.static_tree = static_tree; /* static tree or NULL */
|
||
this.extra_bits = extra_bits; /* extra bits for each code or NULL */
|
||
this.extra_base = extra_base; /* base index for extra_bits */
|
||
this.elems = elems; /* max number of elements in the tree */
|
||
this.max_length = max_length; /* max bit length for the codes */
|
||
|
||
// show if `static_tree` has data or dummy - needed for monomorphic objects
|
||
this.has_stree = static_tree && static_tree.length;
|
||
}
|
||
|
||
|
||
var static_l_desc;
|
||
var static_d_desc;
|
||
var static_bl_desc;
|
||
|
||
|
||
function TreeDesc(dyn_tree, stat_desc) {
|
||
this.dyn_tree = dyn_tree; /* the dynamic tree */
|
||
this.max_code = 0; /* largest code with non zero frequency */
|
||
this.stat_desc = stat_desc; /* the corresponding static tree */
|
||
}
|
||
|
||
|
||
|
||
function d_code(dist) {
|
||
return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];
|
||
}
|
||
|
||
|
||
/* ===========================================================================
|
||
* Output a short LSB first on the stream.
|
||
* IN assertion: there is enough room in pendingBuf.
|
||
*/
|
||
function put_short(s, w) {
|
||
// put_byte(s, (uch)((w) & 0xff));
|
||
// put_byte(s, (uch)((ush)(w) >> 8));
|
||
s.pending_buf[s.pending++] = (w) & 0xff;
|
||
s.pending_buf[s.pending++] = (w >>> 8) & 0xff;
|
||
}
|
||
|
||
|
||
/* ===========================================================================
|
||
* Send a value on a given number of bits.
|
||
* IN assertion: length <= 16 and value fits in length bits.
|
||
*/
|
||
function send_bits(s, value, length) {
|
||
if (s.bi_valid > (Buf_size - length)) {
|
||
s.bi_buf |= (value << s.bi_valid) & 0xffff;
|
||
put_short(s, s.bi_buf);
|
||
s.bi_buf = value >> (Buf_size - s.bi_valid);
|
||
s.bi_valid += length - Buf_size;
|
||
} else {
|
||
s.bi_buf |= (value << s.bi_valid) & 0xffff;
|
||
s.bi_valid += length;
|
||
}
|
||
}
|
||
|
||
|
||
function send_code(s, c, tree) {
|
||
send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);
|
||
}
|
||
|
||
|
||
/* ===========================================================================
|
||
* Reverse the first len bits of a code, using straightforward code (a faster
|
||
* method would use a table)
|
||
* IN assertion: 1 <= len <= 15
|
||
*/
|
||
function bi_reverse(code, len) {
|
||
var res = 0;
|
||
do {
|
||
res |= code & 1;
|
||
code >>>= 1;
|
||
res <<= 1;
|
||
} while (--len > 0);
|
||
return res >>> 1;
|
||
}
|
||
|
||
|
||
/* ===========================================================================
|
||
* Flush the bit buffer, keeping at most 7 bits in it.
|
||
*/
|
||
function bi_flush(s) {
|
||
if (s.bi_valid === 16) {
|
||
put_short(s, s.bi_buf);
|
||
s.bi_buf = 0;
|
||
s.bi_valid = 0;
|
||
|
||
} else if (s.bi_valid >= 8) {
|
||
s.pending_buf[s.pending++] = s.bi_buf & 0xff;
|
||
s.bi_buf >>= 8;
|
||
s.bi_valid -= 8;
|
||
}
|
||
}
|
||
|
||
|
||
/* ===========================================================================
|
||
* Compute the optimal bit lengths for a tree and update the total bit length
|
||
* for the current block.
|
||
* IN assertion: the fields freq and dad are set, heap[heap_max] and
|
||
* above are the tree nodes sorted by increasing frequency.
|
||
* OUT assertions: the field len is set to the optimal bit length, the
|
||
* array bl_count contains the frequencies for each bit length.
|
||
* The length opt_len is updated; static_len is also updated if stree is
|
||
* not null.
|
||
*/
|
||
function gen_bitlen(s, desc)
|
||
// deflate_state *s;
|
||
// tree_desc *desc; /* the tree descriptor */
|
||
{
|
||
var tree = desc.dyn_tree;
|
||
var max_code = desc.max_code;
|
||
var stree = desc.stat_desc.static_tree;
|
||
var has_stree = desc.stat_desc.has_stree;
|
||
var extra = desc.stat_desc.extra_bits;
|
||
var base = desc.stat_desc.extra_base;
|
||
var max_length = desc.stat_desc.max_length;
|
||
var h; /* heap index */
|
||
var n, m; /* iterate over the tree elements */
|
||
var bits; /* bit length */
|
||
var xbits; /* extra bits */
|
||
var f; /* frequency */
|
||
var overflow = 0; /* number of elements with bit length too large */
|
||
|
||
for (bits = 0; bits <= MAX_BITS; bits++) {
|
||
s.bl_count[bits] = 0;
|
||
}
|
||
|
||
/* In a first pass, compute the optimal bit lengths (which may
|
||
* overflow in the case of the bit length tree).
|
||
*/
|
||
tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */
|
||
|
||
for (h = s.heap_max + 1; h < HEAP_SIZE; h++) {
|
||
n = s.heap[h];
|
||
bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;
|
||
if (bits > max_length) {
|
||
bits = max_length;
|
||
overflow++;
|
||
}
|
||
tree[n * 2 + 1]/*.Len*/ = bits;
|
||
/* We overwrite tree[n].Dad which is no longer needed */
|
||
|
||
if (n > max_code) { continue; } /* not a leaf node */
|
||
|
||
s.bl_count[bits]++;
|
||
xbits = 0;
|
||
if (n >= base) {
|
||
xbits = extra[n - base];
|
||
}
|
||
f = tree[n * 2]/*.Freq*/;
|
||
s.opt_len += f * (bits + xbits);
|
||
if (has_stree) {
|
||
s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);
|
||
}
|
||
}
|
||
if (overflow === 0) { return; }
|
||
|
||
// Trace((stderr,"\nbit length overflow\n"));
|
||
/* This happens for example on obj2 and pic of the Calgary corpus */
|
||
|
||
/* Find the first bit length which could increase: */
|
||
do {
|
||
bits = max_length - 1;
|
||
while (s.bl_count[bits] === 0) { bits--; }
|
||
s.bl_count[bits]--; /* move one leaf down the tree */
|
||
s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */
|
||
s.bl_count[max_length]--;
|
||
/* The brother of the overflow item also moves one step up,
|
||
* but this does not affect bl_count[max_length]
|
||
*/
|
||
overflow -= 2;
|
||
} while (overflow > 0);
|
||
|
||
/* Now recompute all bit lengths, scanning in increasing frequency.
|
||
* h is still equal to HEAP_SIZE. (It is simpler to reconstruct all
|
||
* lengths instead of fixing only the wrong ones. This idea is taken
|
||
* from 'ar' written by Haruhiko Okumura.)
|
||
*/
|
||
for (bits = max_length; bits !== 0; bits--) {
|
||
n = s.bl_count[bits];
|
||
while (n !== 0) {
|
||
m = s.heap[--h];
|
||
if (m > max_code) { continue; }
|
||
if (tree[m * 2 + 1]/*.Len*/ !== bits) {
|
||
// Trace((stderr,"code %d bits %d->%d\n", m, tree[m].Len, bits));
|
||
s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;
|
||
tree[m * 2 + 1]/*.Len*/ = bits;
|
||
}
|
||
n--;
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
/* ===========================================================================
|
||
* Generate the codes for a given tree and bit counts (which need not be
|
||
* optimal).
|
||
* IN assertion: the array bl_count contains the bit length statistics for
|
||
* the given tree and the field len is set for all tree elements.
|
||
* OUT assertion: the field code is set for all tree elements of non
|
||
* zero code length.
|
||
*/
|
||
function gen_codes(tree, max_code, bl_count)
|
||
// ct_data *tree; /* the tree to decorate */
|
||
// int max_code; /* largest code with non zero frequency */
|
||
// ushf *bl_count; /* number of codes at each bit length */
|
||
{
|
||
var next_code = new Array(MAX_BITS + 1); /* next code value for each bit length */
|
||
var code = 0; /* running code value */
|
||
var bits; /* bit index */
|
||
var n; /* code index */
|
||
|
||
/* The distribution counts are first used to generate the code values
|
||
* without bit reversal.
|
||
*/
|
||
for (bits = 1; bits <= MAX_BITS; bits++) {
|
||
next_code[bits] = code = (code + bl_count[bits - 1]) << 1;
|
||
}
|
||
/* Check that the bit counts in bl_count are consistent. The last code
|
||
* must be all ones.
|
||
*/
|
||
//Assert (code + bl_count[MAX_BITS]-1 == (1<<MAX_BITS)-1,
|
||
// "inconsistent bit counts");
|
||
//Tracev((stderr,"\ngen_codes: max_code %d ", max_code));
|
||
|
||
for (n = 0; n <= max_code; n++) {
|
||
var len = tree[n * 2 + 1]/*.Len*/;
|
||
if (len === 0) { continue; }
|
||
/* Now reverse the bits */
|
||
tree[n * 2]/*.Code*/ = bi_reverse(next_code[len]++, len);
|
||
|
||
//Tracecv(tree != static_ltree, (stderr,"\nn %3d %c l %2d c %4x (%x) ",
|
||
// n, (isgraph(n) ? n : ' '), len, tree[n].Code, next_code[len]-1));
|
||
}
|
||
}
|
||
|
||
|
||
/* ===========================================================================
|
||
* Initialize the various 'constant' tables.
|
||
*/
|
||
function tr_static_init() {
|
||
var n; /* iterates over tree elements */
|
||
var bits; /* bit counter */
|
||
var length; /* length value */
|
||
var code; /* code value */
|
||
var dist; /* distance index */
|
||
var bl_count = new Array(MAX_BITS + 1);
|
||
/* number of codes at each bit length for an optimal tree */
|
||
|
||
// do check in _tr_init()
|
||
//if (static_init_done) return;
|
||
|
||
/* For some embedded targets, global variables are not initialized: */
|
||
/*#ifdef NO_INIT_GLOBAL_POINTERS
|
||
static_l_desc.static_tree = static_ltree;
|
||
static_l_desc.extra_bits = extra_lbits;
|
||
static_d_desc.static_tree = static_dtree;
|
||
static_d_desc.extra_bits = extra_dbits;
|
||
static_bl_desc.extra_bits = extra_blbits;
|
||
#endif*/
|
||
|
||
/* Initialize the mapping length (0..255) -> length code (0..28) */
|
||
length = 0;
|
||
for (code = 0; code < LENGTH_CODES - 1; code++) {
|
||
base_length[code] = length;
|
||
for (n = 0; n < (1 << extra_lbits[code]); n++) {
|
||
_length_code[length++] = code;
|
||
}
|
||
}
|
||
//Assert (length == 256, "tr_static_init: length != 256");
|
||
/* Note that the length 255 (match length 258) can be represented
|
||
* in two different ways: code 284 + 5 bits or code 285, so we
|
||
* overwrite length_code[255] to use the best encoding:
|
||
*/
|
||
_length_code[length - 1] = code;
|
||
|
||
/* Initialize the mapping dist (0..32K) -> dist code (0..29) */
|
||
dist = 0;
|
||
for (code = 0; code < 16; code++) {
|
||
base_dist[code] = dist;
|
||
for (n = 0; n < (1 << extra_dbits[code]); n++) {
|
||
_dist_code[dist++] = code;
|
||
}
|
||
}
|
||
//Assert (dist == 256, "tr_static_init: dist != 256");
|
||
dist >>= 7; /* from now on, all distances are divided by 128 */
|
||
for (; code < D_CODES; code++) {
|
||
base_dist[code] = dist << 7;
|
||
for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {
|
||
_dist_code[256 + dist++] = code;
|
||
}
|
||
}
|
||
//Assert (dist == 256, "tr_static_init: 256+dist != 512");
|
||
|
||
/* Construct the codes of the static literal tree */
|
||
for (bits = 0; bits <= MAX_BITS; bits++) {
|
||
bl_count[bits] = 0;
|
||
}
|
||
|
||
n = 0;
|
||
while (n <= 143) {
|
||
static_ltree[n * 2 + 1]/*.Len*/ = 8;
|
||
n++;
|
||
bl_count[8]++;
|
||
}
|
||
while (n <= 255) {
|
||
static_ltree[n * 2 + 1]/*.Len*/ = 9;
|
||
n++;
|
||
bl_count[9]++;
|
||
}
|
||
while (n <= 279) {
|
||
static_ltree[n * 2 + 1]/*.Len*/ = 7;
|
||
n++;
|
||
bl_count[7]++;
|
||
}
|
||
while (n <= 287) {
|
||
static_ltree[n * 2 + 1]/*.Len*/ = 8;
|
||
n++;
|
||
bl_count[8]++;
|
||
}
|
||
/* Codes 286 and 287 do not exist, but we must include them in the
|
||
* tree construction to get a canonical Huffman tree (longest code
|
||
* all ones)
|
||
*/
|
||
gen_codes(static_ltree, L_CODES + 1, bl_count);
|
||
|
||
/* The static distance tree is trivial: */
|
||
for (n = 0; n < D_CODES; n++) {
|
||
static_dtree[n * 2 + 1]/*.Len*/ = 5;
|
||
static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);
|
||
}
|
||
|
||
// Now data ready and we can init static trees
|
||
static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS);
|
||
static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES, MAX_BITS);
|
||
static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES, MAX_BL_BITS);
|
||
|
||
//static_init_done = true;
|
||
}
|
||
|
||
|
||
/* ===========================================================================
|
||
* Initialize a new block.
|
||
*/
|
||
function init_block(s) {
|
||
var n; /* iterates over tree elements */
|
||
|
||
/* Initialize the trees. */
|
||
for (n = 0; n < L_CODES; n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }
|
||
for (n = 0; n < D_CODES; n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }
|
||
for (n = 0; n < BL_CODES; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }
|
||
|
||
s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;
|
||
s.opt_len = s.static_len = 0;
|
||
s.last_lit = s.matches = 0;
|
||
}
|
||
|
||
|
||
/* ===========================================================================
|
||
* Flush the bit buffer and align the output on a byte boundary
|
||
*/
|
||
function bi_windup(s)
|
||
{
|
||
if (s.bi_valid > 8) {
|
||
put_short(s, s.bi_buf);
|
||
} else if (s.bi_valid > 0) {
|
||
//put_byte(s, (Byte)s->bi_buf);
|
||
s.pending_buf[s.pending++] = s.bi_buf;
|
||
}
|
||
s.bi_buf = 0;
|
||
s.bi_valid = 0;
|
||
}
|
||
|
||
/* ===========================================================================
|
||
* Copy a stored block, storing first the length and its
|
||
* one's complement if requested.
|
||
*/
|
||
function copy_block(s, buf, len, header)
|
||
//DeflateState *s;
|
||
//charf *buf; /* the input data */
|
||
//unsigned len; /* its length */
|
||
//int header; /* true if block header must be written */
|
||
{
|
||
bi_windup(s); /* align on byte boundary */
|
||
|
||
if (header) {
|
||
put_short(s, len);
|
||
put_short(s, ~len);
|
||
}
|
||
// while (len--) {
|
||
// put_byte(s, *buf++);
|
||
// }
|
||
utils.arraySet(s.pending_buf, s.window, buf, len, s.pending);
|
||
s.pending += len;
|
||
}
|
||
|
||
/* ===========================================================================
|
||
* Compares to subtrees, using the tree depth as tie breaker when
|
||
* the subtrees have equal frequency. This minimizes the worst case length.
|
||
*/
|
||
function smaller(tree, n, m, depth) {
|
||
var _n2 = n * 2;
|
||
var _m2 = m * 2;
|
||
return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||
|
||
(tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));
|
||
}
|
||
|
||
/* ===========================================================================
|
||
* Restore the heap property by moving down the tree starting at node k,
|
||
* exchanging a node with the smallest of its two sons if necessary, stopping
|
||
* when the heap property is re-established (each father smaller than its
|
||
* two sons).
|
||
*/
|
||
function pqdownheap(s, tree, k)
|
||
// deflate_state *s;
|
||
// ct_data *tree; /* the tree to restore */
|
||
// int k; /* node to move down */
|
||
{
|
||
var v = s.heap[k];
|
||
var j = k << 1; /* left son of k */
|
||
while (j <= s.heap_len) {
|
||
/* Set j to the smallest of the two sons: */
|
||
if (j < s.heap_len &&
|
||
smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {
|
||
j++;
|
||
}
|
||
/* Exit if v is smaller than both sons */
|
||
if (smaller(tree, v, s.heap[j], s.depth)) { break; }
|
||
|
||
/* Exchange v with the smallest son */
|
||
s.heap[k] = s.heap[j];
|
||
k = j;
|
||
|
||
/* And continue down the tree, setting j to the left son of k */
|
||
j <<= 1;
|
||
}
|
||
s.heap[k] = v;
|
||
}
|
||
|
||
|
||
// inlined manually
|
||
// var SMALLEST = 1;
|
||
|
||
/* ===========================================================================
|
||
* Send the block data compressed using the given Huffman trees
|
||
*/
|
||
function compress_block(s, ltree, dtree)
|
||
// deflate_state *s;
|
||
// const ct_data *ltree; /* literal tree */
|
||
// const ct_data *dtree; /* distance tree */
|
||
{
|
||
var dist; /* distance of matched string */
|
||
var lc; /* match length or unmatched char (if dist == 0) */
|
||
var lx = 0; /* running index in l_buf */
|
||
var code; /* the code to send */
|
||
var extra; /* number of extra bits to send */
|
||
|
||
if (s.last_lit !== 0) {
|
||
do {
|
||
dist = (s.pending_buf[s.d_buf + lx * 2] << 8) | (s.pending_buf[s.d_buf + lx * 2 + 1]);
|
||
lc = s.pending_buf[s.l_buf + lx];
|
||
lx++;
|
||
|
||
if (dist === 0) {
|
||
send_code(s, lc, ltree); /* send a literal byte */
|
||
//Tracecv(isgraph(lc), (stderr," '%c' ", lc));
|
||
} else {
|
||
/* Here, lc is the match length - MIN_MATCH */
|
||
code = _length_code[lc];
|
||
send_code(s, code + LITERALS + 1, ltree); /* send the length code */
|
||
extra = extra_lbits[code];
|
||
if (extra !== 0) {
|
||
lc -= base_length[code];
|
||
send_bits(s, lc, extra); /* send the extra length bits */
|
||
}
|
||
dist--; /* dist is now the match distance - 1 */
|
||
code = d_code(dist);
|
||
//Assert (code < D_CODES, "bad d_code");
|
||
|
||
send_code(s, code, dtree); /* send the distance code */
|
||
extra = extra_dbits[code];
|
||
if (extra !== 0) {
|
||
dist -= base_dist[code];
|
||
send_bits(s, dist, extra); /* send the extra distance bits */
|
||
}
|
||
} /* literal or match pair ? */
|
||
|
||
/* Check that the overlay between pending_buf and d_buf+l_buf is ok: */
|
||
//Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,
|
||
// "pendingBuf overflow");
|
||
|
||
} while (lx < s.last_lit);
|
||
}
|
||
|
||
send_code(s, END_BLOCK, ltree);
|
||
}
|
||
|
||
|
||
/* ===========================================================================
|
||
* Construct one Huffman tree and assigns the code bit strings and lengths.
|
||
* Update the total bit length for the current block.
|
||
* IN assertion: the field freq is set for all tree elements.
|
||
* OUT assertions: the fields len and code are set to the optimal bit length
|
||
* and corresponding code. The length opt_len is updated; static_len is
|
||
* also updated if stree is not null. The field max_code is set.
|
||
*/
|
||
function build_tree(s, desc)
|
||
// deflate_state *s;
|
||
// tree_desc *desc; /* the tree descriptor */
|
||
{
|
||
var tree = desc.dyn_tree;
|
||
var stree = desc.stat_desc.static_tree;
|
||
var has_stree = desc.stat_desc.has_stree;
|
||
var elems = desc.stat_desc.elems;
|
||
var n, m; /* iterate over heap elements */
|
||
var max_code = -1; /* largest code with non zero frequency */
|
||
var node; /* new node being created */
|
||
|
||
/* Construct the initial heap, with least frequent element in
|
||
* heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].
|
||
* heap[0] is not used.
|
||
*/
|
||
s.heap_len = 0;
|
||
s.heap_max = HEAP_SIZE;
|
||
|
||
for (n = 0; n < elems; n++) {
|
||
if (tree[n * 2]/*.Freq*/ !== 0) {
|
||
s.heap[++s.heap_len] = max_code = n;
|
||
s.depth[n] = 0;
|
||
|
||
} else {
|
||
tree[n * 2 + 1]/*.Len*/ = 0;
|
||
}
|
||
}
|
||
|
||
/* The pkzip format requires that at least one distance code exists,
|
||
* and that at least one bit should be sent even if there is only one
|
||
* possible code. So to avoid special checks later on we force at least
|
||
* two codes of non zero frequency.
|
||
*/
|
||
while (s.heap_len < 2) {
|
||
node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);
|
||
tree[node * 2]/*.Freq*/ = 1;
|
||
s.depth[node] = 0;
|
||
s.opt_len--;
|
||
|
||
if (has_stree) {
|
||
s.static_len -= stree[node * 2 + 1]/*.Len*/;
|
||
}
|
||
/* node is 0 or 1 so it does not have extra bits */
|
||
}
|
||
desc.max_code = max_code;
|
||
|
||
/* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,
|
||
* establish sub-heaps of increasing lengths:
|
||
*/
|
||
for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }
|
||
|
||
/* Construct the Huffman tree by repeatedly combining the least two
|
||
* frequent nodes.
|
||
*/
|
||
node = elems; /* next internal node of the tree */
|
||
do {
|
||
//pqremove(s, tree, n); /* n = node of least frequency */
|
||
/*** pqremove ***/
|
||
n = s.heap[1/*SMALLEST*/];
|
||
s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];
|
||
pqdownheap(s, tree, 1/*SMALLEST*/);
|
||
/***/
|
||
|
||
m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */
|
||
|
||
s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */
|
||
s.heap[--s.heap_max] = m;
|
||
|
||
/* Create a new node father of n and m */
|
||
tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;
|
||
s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;
|
||
tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;
|
||
|
||
/* and insert the new node in the heap */
|
||
s.heap[1/*SMALLEST*/] = node++;
|
||
pqdownheap(s, tree, 1/*SMALLEST*/);
|
||
|
||
} while (s.heap_len >= 2);
|
||
|
||
s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];
|
||
|
||
/* At this point, the fields freq and dad are set. We can now
|
||
* generate the bit lengths.
|
||
*/
|
||
gen_bitlen(s, desc);
|
||
|
||
/* The field len is now set, we can generate the bit codes */
|
||
gen_codes(tree, max_code, s.bl_count);
|
||
}
|
||
|
||
|
||
/* ===========================================================================
|
||
* Scan a literal or distance tree to determine the frequencies of the codes
|
||
* in the bit length tree.
|
||
*/
|
||
function scan_tree(s, tree, max_code)
|
||
// deflate_state *s;
|
||
// ct_data *tree; /* the tree to be scanned */
|
||
// int max_code; /* and its largest code of non zero frequency */
|
||
{
|
||
var n; /* iterates over all tree elements */
|
||
var prevlen = -1; /* last emitted length */
|
||
var curlen; /* length of current code */
|
||
|
||
var nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */
|
||
|
||
var count = 0; /* repeat count of the current code */
|
||
var max_count = 7; /* max repeat count */
|
||
var min_count = 4; /* min repeat count */
|
||
|
||
if (nextlen === 0) {
|
||
max_count = 138;
|
||
min_count = 3;
|
||
}
|
||
tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */
|
||
|
||
for (n = 0; n <= max_code; n++) {
|
||
curlen = nextlen;
|
||
nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;
|
||
|
||
if (++count < max_count && curlen === nextlen) {
|
||
continue;
|
||
|
||
} else if (count < min_count) {
|
||
s.bl_tree[curlen * 2]/*.Freq*/ += count;
|
||
|
||
} else if (curlen !== 0) {
|
||
|
||
if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }
|
||
s.bl_tree[REP_3_6 * 2]/*.Freq*/++;
|
||
|
||
} else if (count <= 10) {
|
||
s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;
|
||
|
||
} else {
|
||
s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;
|
||
}
|
||
|
||
count = 0;
|
||
prevlen = curlen;
|
||
|
||
if (nextlen === 0) {
|
||
max_count = 138;
|
||
min_count = 3;
|
||
|
||
} else if (curlen === nextlen) {
|
||
max_count = 6;
|
||
min_count = 3;
|
||
|
||
} else {
|
||
max_count = 7;
|
||
min_count = 4;
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
/* ===========================================================================
|
||
* Send a literal or distance tree in compressed form, using the codes in
|
||
* bl_tree.
|
||
*/
|
||
function send_tree(s, tree, max_code)
|
||
// deflate_state *s;
|
||
// ct_data *tree; /* the tree to be scanned */
|
||
// int max_code; /* and its largest code of non zero frequency */
|
||
{
|
||
var n; /* iterates over all tree elements */
|
||
var prevlen = -1; /* last emitted length */
|
||
var curlen; /* length of current code */
|
||
|
||
var nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */
|
||
|
||
var count = 0; /* repeat count of the current code */
|
||
var max_count = 7; /* max repeat count */
|
||
var min_count = 4; /* min repeat count */
|
||
|
||
/* tree[max_code+1].Len = -1; */ /* guard already set */
|
||
if (nextlen === 0) {
|
||
max_count = 138;
|
||
min_count = 3;
|
||
}
|
||
|
||
for (n = 0; n <= max_code; n++) {
|
||
curlen = nextlen;
|
||
nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;
|
||
|
||
if (++count < max_count && curlen === nextlen) {
|
||
continue;
|
||
|
||
} else if (count < min_count) {
|
||
do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);
|
||
|
||
} else if (curlen !== 0) {
|
||
if (curlen !== prevlen) {
|
||
send_code(s, curlen, s.bl_tree);
|
||
count--;
|
||
}
|
||
//Assert(count >= 3 && count <= 6, " 3_6?");
|
||
send_code(s, REP_3_6, s.bl_tree);
|
||
send_bits(s, count - 3, 2);
|
||
|
||
} else if (count <= 10) {
|
||
send_code(s, REPZ_3_10, s.bl_tree);
|
||
send_bits(s, count - 3, 3);
|
||
|
||
} else {
|
||
send_code(s, REPZ_11_138, s.bl_tree);
|
||
send_bits(s, count - 11, 7);
|
||
}
|
||
|
||
count = 0;
|
||
prevlen = curlen;
|
||
if (nextlen === 0) {
|
||
max_count = 138;
|
||
min_count = 3;
|
||
|
||
} else if (curlen === nextlen) {
|
||
max_count = 6;
|
||
min_count = 3;
|
||
|
||
} else {
|
||
max_count = 7;
|
||
min_count = 4;
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
/* ===========================================================================
|
||
* Construct the Huffman tree for the bit lengths and return the index in
|
||
* bl_order of the last bit length code to send.
|
||
*/
|
||
function build_bl_tree(s) {
|
||
var max_blindex; /* index of last bit length code of non zero freq */
|
||
|
||
/* Determine the bit length frequencies for literal and distance trees */
|
||
scan_tree(s, s.dyn_ltree, s.l_desc.max_code);
|
||
scan_tree(s, s.dyn_dtree, s.d_desc.max_code);
|
||
|
||
/* Build the bit length tree: */
|
||
build_tree(s, s.bl_desc);
|
||
/* opt_len now includes the length of the tree representations, except
|
||
* the lengths of the bit lengths codes and the 5+5+4 bits for the counts.
|
||
*/
|
||
|
||
/* Determine the number of bit length codes to send. The pkzip format
|
||
* requires that at least 4 bit length codes be sent. (appnote.txt says
|
||
* 3 but the actual value used is 4.)
|
||
*/
|
||
for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) {
|
||
if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {
|
||
break;
|
||
}
|
||
}
|
||
/* Update opt_len to include the bit length tree and counts */
|
||
s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;
|
||
//Tracev((stderr, "\ndyn trees: dyn %ld, stat %ld",
|
||
// s->opt_len, s->static_len));
|
||
|
||
return max_blindex;
|
||
}
|
||
|
||
|
||
/* ===========================================================================
|
||
* Send the header for a block using dynamic Huffman trees: the counts, the
|
||
* lengths of the bit length codes, the literal tree and the distance tree.
|
||
* IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.
|
||
*/
|
||
function send_all_trees(s, lcodes, dcodes, blcodes)
|
||
// deflate_state *s;
|
||
// int lcodes, dcodes, blcodes; /* number of codes for each tree */
|
||
{
|
||
var rank; /* index in bl_order */
|
||
|
||
//Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, "not enough codes");
|
||
//Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,
|
||
// "too many codes");
|
||
//Tracev((stderr, "\nbl counts: "));
|
||
send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */
|
||
send_bits(s, dcodes - 1, 5);
|
||
send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */
|
||
for (rank = 0; rank < blcodes; rank++) {
|
||
//Tracev((stderr, "\nbl code %2d ", bl_order[rank]));
|
||
send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);
|
||
}
|
||
//Tracev((stderr, "\nbl tree: sent %ld", s->bits_sent));
|
||
|
||
send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */
|
||
//Tracev((stderr, "\nlit tree: sent %ld", s->bits_sent));
|
||
|
||
send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */
|
||
//Tracev((stderr, "\ndist tree: sent %ld", s->bits_sent));
|
||
}
|
||
|
||
|
||
/* ===========================================================================
|
||
* Check if the data type is TEXT or BINARY, using the following algorithm:
|
||
* - TEXT if the two conditions below are satisfied:
|
||
* a) There are no non-portable control characters belonging to the
|
||
* "black list" (0..6, 14..25, 28..31).
|
||
* b) There is at least one printable character belonging to the
|
||
* "white list" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).
|
||
* - BINARY otherwise.
|
||
* - The following partially-portable control characters form a
|
||
* "gray list" that is ignored in this detection algorithm:
|
||
* (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).
|
||
* IN assertion: the fields Freq of dyn_ltree are set.
|
||
*/
|
||
function detect_data_type(s) {
|
||
/* black_mask is the bit mask of black-listed bytes
|
||
* set bits 0..6, 14..25, and 28..31
|
||
* 0xf3ffc07f = binary 11110011111111111100000001111111
|
||
*/
|
||
var black_mask = 0xf3ffc07f;
|
||
var n;
|
||
|
||
/* Check for non-textual ("black-listed") bytes. */
|
||
for (n = 0; n <= 31; n++, black_mask >>>= 1) {
|
||
if ((black_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {
|
||
return Z_BINARY;
|
||
}
|
||
}
|
||
|
||
/* Check for textual ("white-listed") bytes. */
|
||
if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||
|
||
s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {
|
||
return Z_TEXT;
|
||
}
|
||
for (n = 32; n < LITERALS; n++) {
|
||
if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {
|
||
return Z_TEXT;
|
||
}
|
||
}
|
||
|
||
/* There are no "black-listed" or "white-listed" bytes:
|
||
* this stream either is empty or has tolerated ("gray-listed") bytes only.
|
||
*/
|
||
return Z_BINARY;
|
||
}
|
||
|
||
|
||
var static_init_done = false;
|
||
|
||
/* ===========================================================================
|
||
* Initialize the tree data structures for a new zlib stream.
|
||
*/
|
||
function _tr_init(s)
|
||
{
|
||
|
||
if (!static_init_done) {
|
||
tr_static_init();
|
||
static_init_done = true;
|
||
}
|
||
|
||
s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);
|
||
s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);
|
||
s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);
|
||
|
||
s.bi_buf = 0;
|
||
s.bi_valid = 0;
|
||
|
||
/* Initialize the first block of the first file: */
|
||
init_block(s);
|
||
}
|
||
|
||
|
||
/* ===========================================================================
|
||
* Send a stored block
|
||
*/
|
||
function _tr_stored_block(s, buf, stored_len, last)
|
||
//DeflateState *s;
|
||
//charf *buf; /* input block */
|
||
//ulg stored_len; /* length of input block */
|
||
//int last; /* one if this is the last block for a file */
|
||
{
|
||
send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */
|
||
copy_block(s, buf, stored_len, true); /* with header */
|
||
}
|
||
|
||
|
||
/* ===========================================================================
|
||
* Send one empty static block to give enough lookahead for inflate.
|
||
* This takes 10 bits, of which 7 may remain in the bit buffer.
|
||
*/
|
||
function _tr_align(s) {
|
||
send_bits(s, STATIC_TREES << 1, 3);
|
||
send_code(s, END_BLOCK, static_ltree);
|
||
bi_flush(s);
|
||
}
|
||
|
||
|
||
/* ===========================================================================
|
||
* Determine the best encoding for the current block: dynamic trees, static
|
||
* trees or store, and output the encoded block to the zip file.
|
||
*/
|
||
function _tr_flush_block(s, buf, stored_len, last)
|
||
//DeflateState *s;
|
||
//charf *buf; /* input block, or NULL if too old */
|
||
//ulg stored_len; /* length of input block */
|
||
//int last; /* one if this is the last block for a file */
|
||
{
|
||
var opt_lenb, static_lenb; /* opt_len and static_len in bytes */
|
||
var max_blindex = 0; /* index of last bit length code of non zero freq */
|
||
|
||
/* Build the Huffman trees unless a stored block is forced */
|
||
if (s.level > 0) {
|
||
|
||
/* Check if the file is binary or text */
|
||
if (s.strm.data_type === Z_UNKNOWN) {
|
||
s.strm.data_type = detect_data_type(s);
|
||
}
|
||
|
||
/* Construct the literal and distance trees */
|
||
build_tree(s, s.l_desc);
|
||
// Tracev((stderr, "\nlit data: dyn %ld, stat %ld", s->opt_len,
|
||
// s->static_len));
|
||
|
||
build_tree(s, s.d_desc);
|
||
// Tracev((stderr, "\ndist data: dyn %ld, stat %ld", s->opt_len,
|
||
// s->static_len));
|
||
/* At this point, opt_len and static_len are the total bit lengths of
|
||
* the compressed block data, excluding the tree representations.
|
||
*/
|
||
|
||
/* Build the bit length tree for the above two trees, and get the index
|
||
* in bl_order of the last bit length code to send.
|
||
*/
|
||
max_blindex = build_bl_tree(s);
|
||
|
||
/* Determine the best encoding. Compute the block lengths in bytes. */
|
||
opt_lenb = (s.opt_len + 3 + 7) >>> 3;
|
||
static_lenb = (s.static_len + 3 + 7) >>> 3;
|
||
|
||
// Tracev((stderr, "\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u ",
|
||
// opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,
|
||
// s->last_lit));
|
||
|
||
if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }
|
||
|
||
} else {
|
||
// Assert(buf != (char*)0, "lost buf");
|
||
opt_lenb = static_lenb = stored_len + 5; /* force a stored block */
|
||
}
|
||
|
||
if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {
|
||
/* 4: two words for the lengths */
|
||
|
||
/* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.
|
||
* Otherwise we can't have processed more than WSIZE input bytes since
|
||
* the last block flush, because compression would have been
|
||
* successful. If LIT_BUFSIZE <= WSIZE, it is never too late to
|
||
* transform a block into a stored block.
|
||
*/
|
||
_tr_stored_block(s, buf, stored_len, last);
|
||
|
||
} else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) {
|
||
|
||
send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);
|
||
compress_block(s, static_ltree, static_dtree);
|
||
|
||
} else {
|
||
send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);
|
||
send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);
|
||
compress_block(s, s.dyn_ltree, s.dyn_dtree);
|
||
}
|
||
// Assert (s->compressed_len == s->bits_sent, "bad compressed size");
|
||
/* The above check is made mod 2^32, for files larger than 512 MB
|
||
* and uLong implemented on 32 bits.
|
||
*/
|
||
init_block(s);
|
||
|
||
if (last) {
|
||
bi_windup(s);
|
||
}
|
||
// Tracev((stderr,"\ncomprlen %lu(%lu) ", s->compressed_len>>3,
|
||
// s->compressed_len-7*last));
|
||
}
|
||
|
||
/* ===========================================================================
|
||
* Save the match info and tally the frequency counts. Return true if
|
||
* the current block must be flushed.
|
||
*/
|
||
function _tr_tally(s, dist, lc)
|
||
// deflate_state *s;
|
||
// unsigned dist; /* distance of matched string */
|
||
// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */
|
||
{
|
||
//var out_length, in_length, dcode;
|
||
|
||
s.pending_buf[s.d_buf + s.last_lit * 2] = (dist >>> 8) & 0xff;
|
||
s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;
|
||
|
||
s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;
|
||
s.last_lit++;
|
||
|
||
if (dist === 0) {
|
||
/* lc is the unmatched char */
|
||
s.dyn_ltree[lc * 2]/*.Freq*/++;
|
||
} else {
|
||
s.matches++;
|
||
/* Here, lc is the match length - MIN_MATCH */
|
||
dist--; /* dist = match distance - 1 */
|
||
//Assert((ush)dist < (ush)MAX_DIST(s) &&
|
||
// (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&
|
||
// (ush)d_code(dist) < (ush)D_CODES, "_tr_tally: bad match");
|
||
|
||
s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2]/*.Freq*/++;
|
||
s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;
|
||
}
|
||
|
||
// (!) This block is disabled in zlib defaults,
|
||
// don't enable it for binary compatibility
|
||
|
||
//#ifdef TRUNCATE_BLOCK
|
||
// /* Try to guess if it is profitable to stop the current block here */
|
||
// if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {
|
||
// /* Compute an upper bound for the compressed length */
|
||
// out_length = s.last_lit*8;
|
||
// in_length = s.strstart - s.block_start;
|
||
//
|
||
// for (dcode = 0; dcode < D_CODES; dcode++) {
|
||
// out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);
|
||
// }
|
||
// out_length >>>= 3;
|
||
// //Tracev((stderr,"\nlast_lit %u, in %ld, out ~%ld(%ld%%) ",
|
||
// // s->last_lit, in_length, out_length,
|
||
// // 100L - out_length*100L/in_length));
|
||
// if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {
|
||
// return true;
|
||
// }
|
||
// }
|
||
//#endif
|
||
|
||
return (s.last_lit === s.lit_bufsize - 1);
|
||
/* We avoid equality with lit_bufsize because of wraparound at 64K
|
||
* on 16 bit machines and because stored blocks are restricted to
|
||
* 64K-1 bytes.
|
||
*/
|
||
}
|
||
|
||
exports._tr_init = _tr_init;
|
||
exports._tr_stored_block = _tr_stored_block;
|
||
exports._tr_flush_block = _tr_flush_block;
|
||
exports._tr_tally = _tr_tally;
|
||
exports._tr_align = _tr_align;
|
||
|
||
},{"../utils/common":3}],15:[function(require,module,exports){
|
||
'use strict';
|
||
|
||
// (C) 1995-2013 Jean-loup Gailly and Mark Adler
|
||
// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
|
||
//
|
||
// This software is provided 'as-is', without any express or implied
|
||
// warranty. In no event will the authors be held liable for any damages
|
||
// arising from the use of this software.
|
||
//
|
||
// Permission is granted to anyone to use this software for any purpose,
|
||
// including commercial applications, and to alter it and redistribute it
|
||
// freely, subject to the following restrictions:
|
||
//
|
||
// 1. The origin of this software must not be misrepresented; you must not
|
||
// claim that you wrote the original software. If you use this software
|
||
// in a product, an acknowledgment in the product documentation would be
|
||
// appreciated but is not required.
|
||
// 2. Altered source versions must be plainly marked as such, and must not be
|
||
// misrepresented as being the original software.
|
||
// 3. This notice may not be removed or altered from any source distribution.
|
||
|
||
function ZStream() {
|
||
/* next input byte */
|
||
this.input = null; // JS specific, because we have no pointers
|
||
this.next_in = 0;
|
||
/* number of bytes available at input */
|
||
this.avail_in = 0;
|
||
/* total number of input bytes read so far */
|
||
this.total_in = 0;
|
||
/* next output byte should be put there */
|
||
this.output = null; // JS specific, because we have no pointers
|
||
this.next_out = 0;
|
||
/* remaining free space at output */
|
||
this.avail_out = 0;
|
||
/* total number of bytes output so far */
|
||
this.total_out = 0;
|
||
/* last error message, NULL if no error */
|
||
this.msg = ''/*Z_NULL*/;
|
||
/* not visible by applications */
|
||
this.state = null;
|
||
/* best guess about the data type: binary or text */
|
||
this.data_type = 2/*Z_UNKNOWN*/;
|
||
/* adler32 value of the uncompressed data */
|
||
this.adler = 0;
|
||
}
|
||
|
||
module.exports = ZStream;
|
||
|
||
},{}],"/":[function(require,module,exports){
|
||
// Top level file is just a mixin of submodules & constants
|
||
'use strict';
|
||
|
||
var assign = require('./lib/utils/common').assign;
|
||
|
||
var deflate = require('./lib/deflate');
|
||
var inflate = require('./lib/inflate');
|
||
var constants = require('./lib/zlib/constants');
|
||
|
||
var pako = {};
|
||
|
||
assign(pako, deflate, inflate, constants);
|
||
|
||
module.exports = pako;
|
||
|
||
},{"./lib/deflate":1,"./lib/inflate":2,"./lib/utils/common":3,"./lib/zlib/constants":6}]},{},[])("/")
|
||
});
|
||
// SRC: https://developer.mozilla.org/ru/docs/Web/API/WindowBase64/Base64_encoding_and_decoding
|
||
function base64Encode(str)
|
||
{
|
||
var bytes = new (TextEncoder || TextEncoderLite)("utf-8").encode(str);
|
||
return base64js.fromByteArray(bytes);
|
||
}
|
||
function base64Decode(str)
|
||
{
|
||
var bytes = base64js.toByteArray(str);
|
||
return new (TextDecoder || TextDecoderLite)("utf-8").decode(bytes);
|
||
}
|
||
function zipBase64Encode(input)
|
||
{
|
||
var bytes = new (TextEncoder || TextEncoderLite)("utf-8").encode(input);
|
||
var zipValue = window.pako.deflate(bytes, {to: 'string'});
|
||
return base64Encode(zipValue);
|
||
}
|
||
function zipBase64Decode(input)
|
||
{
|
||
var zipValue = base64Decode(input);
|
||
var bytes = window.pako.inflate(zipValue)
|
||
return new (TextDecoder || TextDecoderLite)("utf-8").decode(bytes);
|
||
}
|
||
</script>
|
||
<!-- Emscripten -->
|
||
<script>
|
||
if (window.muromTool.mode != "editor")
|
||
{
|
||
var Module = {
|
||
preRun: [],
|
||
postRun: [],
|
||
print: function(text) {
|
||
console.log(text);
|
||
},
|
||
printErr: function(text) {
|
||
console.error(text);
|
||
},
|
||
canvas: (function() {
|
||
var canvas = document.getElementById('canvas');
|
||
|
||
// As a default initial behavior, pop up an alert when webgl context is lost. To make your
|
||
// application robust, you may want to override this behavior before shipping!
|
||
// See http://www.khronos.org/registry/webgl/specs/latest/1.0/#5.15.2
|
||
canvas.addEventListener(
|
||
"webglcontextlost",
|
||
function(e) {
|
||
alert('WebGL context has been lost. Please, reload the page.');
|
||
e.preventDefault();
|
||
},
|
||
false
|
||
);
|
||
return canvas;
|
||
})(),
|
||
setStatus: function(text) {
|
||
Module.print("STATUS: '" + text + "'");
|
||
},
|
||
totalDependencies: 0,
|
||
monitorRunDependencies: function(left) {
|
||
this.totalDependencies = Math.max(this.totalDependencies, left);
|
||
Module.setStatus(left ? 'Preparing... (' + (this.totalDependencies-left) + '/' + this.totalDependencies + ')' : 'All downloads complete.');
|
||
}
|
||
};
|
||
Module.setStatus('Downloading...');
|
||
window.onerror = function(event) {
|
||
Module.setStatus('Exception thrown, see JavaScript console');
|
||
};
|
||
}
|
||
</script>
|
||
<!-- Motor -->
|
||
<script>
|
||
if (window.muromTool.mode != "editor")
|
||
{
|
||
var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}Module["arguments"]=[];Module["thisProgram"]="./this.program";Module["quit"]=(function(status,toThrow){throw toThrow});Module["preRun"]=[];Module["postRun"]=[];var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}else{return scriptDirectory+path}}if(ENVIRONMENT_IS_NODE){scriptDirectory=__dirname+"/";var nodeFS;var nodePath;Module["read"]=function shell_read(filename,binary){var ret;ret=tryParseAsDataURI(filename);if(!ret){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);ret=nodeFS["readFileSync"](filename)}return binary?ret:ret.toString()};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));process["on"]("unhandledRejection",(function(reason,p){process["exit"](1)}));Module["quit"]=(function(status){process["exit"](status)});Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){Module["read"]=function shell_read(f){var data=tryParseAsDataURI(f);if(data){return intArrayToString(data)}return read(f)}}Module["readBinary"]=function readBinary(f){var data;data=tryParseAsDataURI(f);if(data){return data}if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}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}if(typeof quit==="function"){Module["quit"]=(function(status){quit(status)})}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WEB){var currentScript=document.currentScript;if(currentScript.src.indexOf("blob:")!==0){scriptDirectory=currentScript.src.split("/").slice(0,-1).join("/")+"/"}}else if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href.split("/").slice(0,-1).join("/")+"/"}Module["read"]=function shell_read(url){try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){Module["readBinary"]=function readBinary(url){try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}Module["readAsync"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)};Module["setWindowTitle"]=(function(title){document.title=title})}else{}var out=Module["print"]||(typeof console!=="undefined"?console.log.bind(console):typeof print!=="undefined"?print:null);var err=Module["printErr"]||(typeof printErr!=="undefined"?printErr:typeof console!=="undefined"&&console.warn.bind(console)||out);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var STACK_ALIGN=16;function staticAlloc(size){var ret=STATICTOP;STATICTOP=STATICTOP+size+15&-16;return ret}function dynamicAlloc(size){var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=ret+size+15&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;if(end>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){HEAP32[DYNAMICTOP_PTR>>2]=ret;return 0}}return ret}function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;var ret=size=Math.ceil(size/factor)*factor;return ret}function getNativeTypeSize(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 4}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var jsCallStartIndex=1;var functionPointers=new Array(0);function addFunction(func,sig){var base=0;for(var i=base;i<base+0;i++){if(!functionPointers[i]){functionPointers[i]=func;return jsCallStartIndex+i}}throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."}var funcWrappers={};function dynCall(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}else{return Module["dynCall_"+sig].call(null,ptr)}}var Runtime={dynCall:dynCall};var GLOBAL_BASE=8;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];assert(func,"Cannot call unknown function "+ident+", make sure it is exported");return func}var JSfuncs={"stackSave":(function(){stackSave()}),"stackRestore":(function(){stackRestore()}),"arrayToC":(function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};function ccall(ident,returnType,argTypes,args,opts){function convertReturnValue(ret){if(returnType==="string")return Pointer_stringify(ret);if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);ret=convertReturnValue(ret);if(stack!==0)stackRestore(stack);return ret}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>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)}}var ALLOC_NORMAL=0;var ALLOC_STATIC=2;var ALLOC_NONE=4;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=[typeof _malloc==="function"?_malloc:staticAlloc,stackAlloc,staticAlloc,dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var stop;ptr=ret;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr<stop;ptr+=4){HEAP32[ptr>>2]=0}stop=ret+size;while(ptr<stop){HEAP8[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<size){var curr=slab[i];type=singleType||types[i];if(type===0){i++;continue}if(type=="i64")type="i32";setValue(ret+i,curr,type);if(previousType!==type){typeSize=getNativeTypeSize(type);previousType=type}i+=typeSize}return ret}function getMemory(size){if(!staticSealed)return staticAlloc(size);if(!runtimeInitialized)return dynamicAlloc(size);return _malloc(size)}function Pointer_stringify(ptr,length){if(length===0||!ptr)return"";var hasUtf=0;var t;var i=0;while(1){t=HEAPU8[ptr+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 UTF8ToString(ptr)}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{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)}}}}function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=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}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=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}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}function allocateUTF8OnStack(str){var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8Array(str,HEAP8,ret,size);return ret}function demangle(func){return func}function demangleAll(text){var regex=/__Z[\w\d_]+/g;return text.replace(regex,(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(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}var WASM_PAGE_SIZE=65536;var ASMJS_PAGE_SIZE=16777216;var MIN_TOTAL_MEMORY=16777216;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBuffer(buf){Module["buffer"]=buffer=buf}function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;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 allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}if(!Module["reallocBuffer"])Module["reallocBuffer"]=(function(size){var ret;try{if(ArrayBuffer.transfer){ret=ArrayBuffer.transfer(buffer,size)}else{var oldHEAP8=HEAP8;ret=new ArrayBuffer(size);var temp=new Int8Array(ret);temp.set(oldHEAP8)}}catch(e){return false}var success=_emscripten_replace_memory(ret);if(!success)return false;return ret});function enlargeMemory(){var PAGE_MULTIPLE=Module["usingWasm"]?WASM_PAGE_SIZE:ASMJS_PAGE_SIZE;var LIMIT=2147483648-PAGE_MULTIPLE;if(HEAP32[DYNAMICTOP_PTR>>2]>LIMIT){return false}var OLD_TOTAL_MEMORY=TOTAL_MEMORY;TOTAL_MEMORY=Math.max(TOTAL_MEMORY,MIN_TOTAL_MEMORY);while(TOTAL_MEMORY<HEAP32[DYNAMICTOP_PTR>>2]){if(TOTAL_MEMORY<=536870912){TOTAL_MEMORY=alignUp(2*TOTAL_MEMORY,PAGE_MULTIPLE)}else{TOTAL_MEMORY=Math.min(alignUp((3*TOTAL_MEMORY+2147483648)/4,PAGE_MULTIPLE),LIMIT)}}var replacement=Module["reallocBuffer"](TOTAL_MEMORY);if(!replacement||replacement.byteLength!=TOTAL_MEMORY){TOTAL_MEMORY=OLD_TOTAL_MEMORY;return false}updateGlobalBuffer(replacement);updateGlobalBufferViews();return true}var byteLength;try{byteLength=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get);byteLength(new ArrayBuffer(4))}catch(e){byteLength=(function(buffer){return buffer.byteLength})}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;if(TOTAL_MEMORY<TOTAL_STACK)err("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+TOTAL_MEMORY+"! (TOTAL_STACK="+TOTAL_STACK+")");if(Module["buffer"]){buffer=Module["buffer"]}else{{buffer=new ArrayBuffer(TOTAL_MEMORY)}Module["buffer"]=buffer}updateGlobalBufferViews();function getTotalMemory(){return TOTAL_MEMORY}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["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)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){HEAP8[buffer++>>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var Math_abs=Math.abs;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_min=Math.min;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}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["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}var ASM_CONSTS=[(function(){return screen.width}),(function(){return screen.height}),(function($0){if(typeof Module["setWindowTitle"]!=="undefined"){Module["setWindowTitle"](Module["Pointer_stringify"]($0))}return 0}),(function($0,$1,$2){var w=$0;var h=$1;var pixels=$2;if(!Module["SDL2"])Module["SDL2"]={};var SDL2=Module["SDL2"];if(SDL2.ctxCanvas!==Module["canvas"]){SDL2.ctx=Module["createContext"](Module["canvas"],false,true);SDL2.ctxCanvas=Module["canvas"]}if(SDL2.w!==w||SDL2.h!==h||SDL2.imageCtx!==SDL2.ctx){SDL2.image=SDL2.ctx.createImageData(w,h);SDL2.w=w;SDL2.h=h;SDL2.imageCtx=SDL2.ctx}var data=SDL2.image.data;var src=pixels>>2;var dst=0;var num;if(typeof CanvasPixelArray!=="undefined"&&data instanceof CanvasPixelArray){num=data.length;while(dst<num){var val=HEAP32[src];data[dst]=val&255;data[dst+1]=val>>8&255;data[dst+2]=val>>16&255;data[dst+3]=255;src++;dst+=4}}else{if(SDL2.data32Data!==data){SDL2.data32=new Int32Array(data.buffer);SDL2.data8=new Uint8Array(data.buffer)}var data32=SDL2.data32;num=data32.length;data32.set(HEAP32.subarray(src,src+num));var data8=SDL2.data8;var i=3;var j=i+4*num;if(num%8==0){while(i<j){data8[i]=255;i=i+4|0;data8[i]=255;i=i+4|0;data8[i]=255;i=i+4|0;data8[i]=255;i=i+4|0;data8[i]=255;i=i+4|0;data8[i]=255;i=i+4|0;data8[i]=255;i=i+4|0;data8[i]=255;i=i+4|0}}else{while(i<j){data8[i]=255;i=i+4|0}}}SDL2.ctx.putImageData(SDL2.image,0,0);return 0}),(function($0,$1,$2){var w=$0;var h=$1;var pixels=$2;var canvas=document.createElement("canvas");canvas.width=w;canvas.height=h;var ctx=canvas.getContext("2d");var image=ctx.createImageData(w,h);var data=image.data;var src=pixels>>2;var dst=0;var num;if(typeof CanvasPixelArray!=="undefined"&&data instanceof CanvasPixelArray){num=data.length;while(dst<num){var val=HEAP32[src];data[dst]=val&255;data[dst+1]=val>>8&255;data[dst+2]=val>>16&255;data[dst+3]=val>>24&255;src++;dst+=4}}else{var data32=new Int32Array(data.buffer);num=data32.length;data32.set(HEAP32.subarray(src,src+num))}ctx.putImageData(image,0,0);var url="url("+canvas.toDataURL()+"), auto";var urlBuf=_malloc(url.length+1);stringToUTF8(url,urlBuf,url.length+1);return urlBuf}),(function($0){if(Module["canvas"]){Module["canvas"].style["cursor"]=Module["Pointer_stringify"]($0)}return 0}),(function(){if(Module["canvas"]){Module["canvas"].style["cursor"]="none"}}),(function(){if(typeof AudioContext!=="undefined"){return 1}else if(typeof webkitAudioContext!=="undefined"){return 1}return 0}),(function(){if(typeof navigator.mediaDevices!=="undefined"&&typeof navigator.mediaDevices.getUserMedia!=="undefined"){return 1}else if(typeof navigator.webkitGetUserMedia!=="undefined"){return 1}return 0}),(function($0){if(typeof SDL2==="undefined"){SDL2={}}if(!$0){SDL2.audio={}}else{SDL2.capture={}}if(!SDL2.audioContext){if(typeof AudioContext!=="undefined"){SDL2.audioContext=new AudioContext}else if(typeof webkitAudioContext!=="undefined"){SDL2.audioContext=new webkitAudioContext}}return SDL2.audioContext===undefined?-1:0}),(function(){return SDL2.audioContext.sampleRate}),(function($0,$1,$2,$3){var have_microphone=(function(stream){if(SDL2.capture.silenceTimer!==undefined){clearTimeout(SDL2.capture.silenceTimer);SDL2.capture.silenceTimer=undefined}SDL2.capture.mediaStreamNode=SDL2.audioContext.createMediaStreamSource(stream);SDL2.capture.scriptProcessorNode=SDL2.audioContext.createScriptProcessor($1,$0,1);SDL2.capture.scriptProcessorNode.onaudioprocess=(function(audioProcessingEvent){if(SDL2===undefined||SDL2.capture===undefined){return}audioProcessingEvent.outputBuffer.getChannelData(0).fill(0);SDL2.capture.currentCaptureBuffer=audioProcessingEvent.inputBuffer;Runtime.dynCall("vi",$2,[$3])});SDL2.capture.mediaStreamNode.connect(SDL2.capture.scriptProcessorNode);SDL2.capture.scriptProcessorNode.connect(SDL2.audioContext.destination);SDL2.capture.stream=stream});var no_microphone=(function(error){});SDL2.capture.silenceBuffer=SDL2.audioContext.createBuffer($0,$1,SDL2.audioContext.sampleRate);SDL2.capture.silenceBuffer.getChannelData(0).fill(0);var silence_callback=(function(){SDL2.capture.currentCaptureBuffer=SDL2.capture.silenceBuffer;Runtime.dynCall("vi",$2,[$3])});SDL2.capture.silenceTimer=setTimeout(silence_callback,$1/SDL2.audioContext.sampleRate*1e3);if(navigator.mediaDevices!==undefined&&navigator.mediaDevices.getUserMedia!==undefined){navigator.mediaDevices.getUserMedia({audio:true,video:false}).then(have_microphone).catch(no_microphone)}else if(navigator.webkitGetUserMedia!==undefined){navigator.webkitGetUserMedia({audio:true,video:false},have_microphone,no_microphone)}}),(function($0,$1,$2,$3){SDL2.audio.scriptProcessorNode=SDL2.audioContext["createScriptProcessor"]($1,0,$0);SDL2.audio.scriptProcessorNode["onaudioprocess"]=(function(e){if(SDL2===undefined||SDL2.audio===undefined){return}SDL2.audio.currentOutputBuffer=e["outputBuffer"];Runtime.dynCall("vi",$2,[$3])});SDL2.audio.scriptProcessorNode["connect"](SDL2.audioContext["destination"])}),(function($0){if($0){if(SDL2.capture.silenceTimer!==undefined){clearTimeout(SDL2.capture.silenceTimer)}if(SDL2.capture.stream!==undefined){var tracks=SDL2.capture.stream.getAudioTracks();for(var i=0;i<tracks.length;i++){SDL2.capture.stream.removeTrack(tracks[i])}SDL2.capture.stream=undefined}if(SDL2.capture.scriptProcessorNode!==undefined){SDL2.capture.scriptProcessorNode.onaudioprocess=(function(audioProcessingEvent){});SDL2.capture.scriptProcessorNode.disconnect();SDL2.capture.scriptProcessorNode=undefined}if(SDL2.capture.mediaStreamNode!==undefined){SDL2.capture.mediaStreamNode.disconnect();SDL2.capture.mediaStreamNode=undefined}if(SDL2.capture.silenceBuffer!==undefined){SDL2.capture.silenceBuffer=undefined}SDL2.capture=undefined}else{if(SDL2.audio.scriptProcessorNode!=undefined){SDL2.audio.scriptProcessorNode.disconnect();SDL2.audio.scriptProcessorNode=undefined}SDL2.audio=undefined}if(SDL2.audioContext!==undefined&&SDL2.audio===undefined&&SDL2.capture===undefined){SDL2.audioContext.close();SDL2.audioContext=undefined}}),(function($0,$1){var numChannels=SDL2.capture.currentCaptureBuffer.numberOfChannels;if(numChannels==1){var channelData=SDL2.capture.currentCaptureBuffer.getChannelData(0);if(channelData.length!=$1){throw"Web Audio capture buffer length mismatch! Destination size: "+channelData.length+" samples vs expected "+$1+" samples!"}for(var j=0;j<$1;++j){setValue($0+j*4,channelData[j],"float")}}else{for(var c=0;c<numChannels;++c){var channelData=SDL2.capture.currentCaptureBuffer.getChannelData(c);if(channelData.length!=$1){throw"Web Audio capture buffer length mismatch! Destination size: "+channelData.length+" samples vs expected "+$1+" samples!"}for(var j=0;j<$1;++j){setValue($0+(j*numChannels+c)*4,channelData[j],"float")}}}}),(function($0,$1){var numChannels=SDL2.audio.currentOutputBuffer["numberOfChannels"];for(var c=0;c<numChannels;++c){var channelData=SDL2.audio.currentOutputBuffer["getChannelData"](c);if(channelData.length!=$1){throw"Web Audio output buffer length mismatch! Destination size: "+channelData.length+" samples vs expected "+$1+" samples!"}for(var j=0;j<$1;++j){channelData[j]=HEAPF32[$0+(j*numChannels+c<<2)>>2]}}})];function _emscripten_asm_const_i(code){return ASM_CONSTS[code]()}function _emscripten_asm_const_iiiii(code,a0,a1,a2,a3){return ASM_CONSTS[code](a0,a1,a2,a3)}function _emscripten_asm_const_ii(code,a0){return ASM_CONSTS[code](a0)}function _emscripten_asm_const_iii(code,a0,a1){return ASM_CONSTS[code](a0,a1)}function _emscripten_asm_const_iiii(code,a0,a1,a2){return ASM_CONSTS[code](a0,a1,a2)}STATIC_BASE=GLOBAL_BASE;STATICTOP=STATIC_BASE+295632;__ATINIT__.push({func:(function(){__GLOBAL__I_000101()})},{func:(function(){__GLOBAL__sub_I_motor_cpp()})},{func:(function(){__GLOBAL__sub_I_OpenSceneGraph_01_cpp()})},{func:(function(){__GLOBAL__sub_I_OpenSceneGraph_02_cpp()})},{func:(function(){__GLOBAL__sub_I_OpenSceneGraph_03_cpp()})},{func:(function(){__GLOBAL__sub_I_OpenSceneGraph_04_cpp()})},{func:(function(){__GLOBAL__sub_I_OpenSceneGraph_05_cpp()})},{func:(function(){__GLOBAL__sub_I_OpenSceneGraph_06_cpp()})},{func:(function(){__GLOBAL__sub_I_OpenSceneGraph_07_cpp()})},{func:(function(){__GLOBAL__sub_I_OpenSceneGraph_08_cpp()})},{func:(function(){__GLOBAL__sub_I_bind_cpp()})},{func:(function(){___emscripten_environ_constructor()})},{func:(function(){__GLOBAL__sub_I_iostream_cpp()})});memoryInitializer="data:application/octet-stream;base64,AAAAAAAAAABASQEAKOMAAJhJAQDY4gAAUEkBABDjAACYSQEA2OIAAKmnAwA2xgIAb8YCAKjGAgDgxgIAGMcCADLHAgAAAAAAAAAAAJbFAgAABQAAn8UCAAEFAACxxQIAAgUAAL/FAgADBQAA0cUCAAQFAADgxQIABQUAAGQfBAAxgAAA8MUCAAYFAAAAxgIAJIoBAJ/FAgAligEAscUCACaKAQBkHwQAJ4oBAB7GAgAoigEAv8UCAP////8AAAAAAAAAAAAAAABmlgMAonEDALdxAwDOcQMArHEDAMJxAwDXcQMA4XEDAOxxAwD4cQMAA3IDAA5yAwA9cgMASHIDAFNyAwDEcgMAz3IDANpyAwAZcgMAJXIDADFyAwBecgMAanIDAHZyAwDlcgMA8XIDAP1yAwBa0AIAZNACAG7QAgCjcgMArnIDALlyAwB40AIAhNACAJHQAgCb0AIAp9ACAAAAAAAAAAAARERERJmZmZlEREREmZmZmURERESZmZmZRERERJmZmZlEREREmZmZmURERESZmZmZRERERJmZmZlEREREmZmZmURERESZmZmZRERERJmZmZlEREREmZmZmURERESZmZmZRERERJmZmZlEREREmZmZmURERESZmZmZRERERJmZmZkMAAAABAAAAAAAAAAw6AAAowEAALwAAAC9AAAApAEAAKUBAACmAQAApwEAAB0AAAAmAAAAlgEAAJcBAAD8/////P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8/////P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz////8/////P////z////8////CAAAAPz///8w6AAAqAEAAL4AAAC/AAAAqQEAAKoBAAA1AAAANgAAADcAAAA4AAAAcwAAAHQAAACrAQAArAEAAD0AAAA+AAAAPwAAAEAAAABkAAAAZQAAAEMAAABEAAAAZgAAAGcAAAAeAAAAmAEAAJkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+P////j////4////+P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD0////9P////T////0////9P////T///8AAAAA9P///zDoAAABAAAAmgEAAJsBAACtAQAAwAAAAMEAAACuAQAArwEAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAABMAAABKAAAASwAAAEwAAABNAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAAgAAAAMAAAADAAAAHgAAAB8AAAAEAAAABQAAADKCAACUjQAAARQAADGCAACUjQAAABQAADSCAACUjQAAAxQAADOCAACUjQAAAhQAADaCAACUjQAABRQAADWCAACUjQAABBQAADiCAAAoggAAARQAADeCAAAoggAAABQAADqCAAAoggAAAxQAADmCAAAoggAAAhQAADyCAAAoggAABRQAADuCAAAoggAABBQAAH2NAACYjQAAARQAAI+NAACYjQAAABQAAHeNAACYjQAAAxQAAImNAACYjQAAAhQAAHGNAACYjQAABRQAAIONAACYjQAABBQAAHyNAACZjQAAARQAAI6NAACZjQAAABQAAHaNAACZjQAAAxQAAIiNAACZjQAAAhQAAIKNAACZjQAABBQAAHCNAACZjQAABRQAACmCAAADGQAAARQAAC2CAAADGQAACxQAAC6CAAADGQAABhQAAC2CAAADGQAABhQAACuCAAAnggAAARQAAC+CAAAnggAACxQAAC+CAAAnggAABhQAADCCAAAnggAABhQAABAqAAAHGQAAMoAAABAqAAAHGQAAYoMAAE+AAAAHGQAAM4AAAE+AAAAHGQAAZYMAAFCAAAAHGQAANIAAAFCAAAAHGQAAZoMAAFGAAAAHGQAAARQAAGKNAAAHGQAAARQAAGKNAAAHGQAAY4MAAGKNAAAHGQAAZIMAAFKAAAAHGQAAaIMAAFKAAAAHGQAANoAAAFOAAAAHGQAAAxQAABuIAAAHGQAACxQAABWIAAAHGQAABhQAABuIAAAHGQAABhQAAFiAAAAIGQAAARQAAFmAAAAIGQAANoAAAFmAAAAIGQAAaIMAAFqAAAAIGQAAAxQAAFaAAAAIGQAAARQAAFaAAAAIGQAAM4AAAFaAAAAIGQAAZYMAAFeAAAAIGQAAARQAAFeAAAAIGQAANIAAAFeAAAAIGQAAZoMAAFeAAAAIGQAANoAAAFeAAAAIGQAAaIMAAEGMAAAHGQAAARQAAEOMAAAIGQAAARQAAJSPAAADGQAAABQAAJiPAAADGQAAAhQAAJWPAAAnggAAABQAAJmPAAAnggAAAhQAAJaPAAAHGQAAABQAAJqPAAAHGQAAAhQAAJePAAAIGQAAABQAAAAAAAAVhQAAFoUAABeFAAAYhQAAGYUAABqFAAAAAAAAAAAAACNpZmRlZiBHTF9FUwogICAgcHJlY2lzaW9uIGhpZ2hwIGZsb2F0OwogICAgcHJlY2lzaW9uIGhpZ2hwIGludDsKI2VuZGlmCgojcHJhZ21hIGltcG9ydF9tb2RlcyAoIEdMX0xJR0hUSU5HLCBHTF9MSUdIVDApCiNwcmFnbWEgaW1wb3J0X3RleHR1cmVfbW9kZXMgKCBHTF9URVhUVVJFX0dFTl9TLCBHTF9URVhUVVJFX0dFTl9ULCBHTF9URVhUVVJFX0dFTl9SLCBHTF9URVhUVVJFX0dFTl9RKQojcHJhZ21hIGltcG9ydF9kZWZpbmVzICggR0xfTUFYX1RFWFRVUkVfVU5JVFMgKQojcHJhZ21hIGltcG9ydF9kZWZpbmVzICggVEVYVFVSRV9WRVJUX0RFQ0xBUkUwLCBURVhUVVJFX1ZFUlRfQk9EWTAsIFRFWFRVUkVfR0VOX0ZVTkNUSU9OMCApCiNwcmFnbWEgaW1wb3J0X2RlZmluZXMgKCBURVhUVVJFX1ZFUlRfREVDTEFSRTEsIFRFWFRVUkVfVkVSVF9CT0RZMSwgVEVYVFVSRV9HRU5fRlVOQ1RJT04xICkKI3ByYWdtYSBpbXBvcnRfZGVmaW5lcyAoIFRFWFRVUkVfVkVSVF9ERUNMQVJFMiwgVEVYVFVSRV9WRVJUX0JPRFkyLCBURVhUVVJFX0dFTl9GVU5DVElPTjIgKQojcHJhZ21hIGltcG9ydF9kZWZpbmVzICggVEVYVFVSRV9WRVJUX0RFQ0xBUkUzLCBURVhUVVJFX1ZFUlRfQk9EWTMsIFRFWFRVUkVfR0VOX0ZVTkNUSU9OMyApCgojaWYgR0xfTUFYX1RFWFRVUkVfVU5JVFM+MAoKdW5pZm9ybSBib29sIEdMX0FDVElWRV9URVhUVVJFW0dMX01BWF9URVhUVVJFX1VOSVRTXTsKCnVuaWZvcm0gdmVjNCBvc2dfT2JqZWN0UGxhbmVSW0dMX01BWF9URVhUVVJFX1VOSVRTXTsKdW5pZm9ybSB2ZWM0IG9zZ19PYmplY3RQbGFuZVNbR0xfTUFYX1RFWFRVUkVfVU5JVFNdOwp1bmlmb3JtIHZlYzQgb3NnX09iamVjdFBsYW5lVFtHTF9NQVhfVEVYVFVSRV9VTklUU107CnVuaWZvcm0gdmVjNCBvc2dfT2JqZWN0UGxhbmVRW0dMX01BWF9URVhUVVJFX1VOSVRTXTsKCnVuaWZvcm0gdmVjNCBvc2dfRXllUGxhbmVSW0dMX01BWF9URVhUVVJFX1VOSVRTXTsKdW5pZm9ybSB2ZWM0IG9zZ19FeWVQbGFuZVNbR0xfTUFYX1RFWFRVUkVfVU5JVFNdOwp1bmlmb3JtIHZlYzQgb3NnX0V5ZVBsYW5lVFtHTF9NQVhfVEVYVFVSRV9VTklUU107CnVuaWZvcm0gdmVjNCBvc2dfRXllUGxhbmVRW0dMX01BWF9URVhUVVJFX1VOSVRTXTsKCgp2ZWM0IHRleGdlbl9FWUVfTElORUFSKHZlYzQgdGV4Y29vcmQsIGludCB1bml0LCBib29sIHMsIGJvb2wgdCwgYm9vbCByLCBib29sIHEpCnsKICAgIHZlYzQgdmVydGV4X2V5ZSA9IGdsX01vZGVsVmlld01hdHJpeCAqIGdsX1ZlcnRleDsKICAgIGlmIChzKSB0ZXhjb29yZC5zID0gZG90KHZlcnRleF9leWUgLCBnbF9FeWVQbGFuZVNbdW5pdF0pOwogICAgaWYgKHQpIHRleGNvb3JkLnQgPSBkb3QodmVydGV4X2V5ZSAsIGdsX0V5ZVBsYW5lVFt1bml0XSk7CiAgICBpZiAocikgdGV4Y29vcmQuciA9IGRvdCh2ZXJ0ZXhfZXllICwgZ2xfRXllUGxhbmVSW3VuaXRdKTsKICAgIGlmIChxKSB0ZXhjb29yZC5xID0gZG90KHZlcnRleF9leWUgLCBnbF9FeWVQbGFuZVFbdW5pdF0pOwogICAgcmV0dXJuIHRleGNvb3JkOwp9Cgp2ZWM0IHRleGdlbl9PQkpFQ1RfTElORUFSKHZlYzQgdGV4Y29vcmQsIGludCB1bml0LCBib29sIHMsIGJvb2wgdCwgYm9vbCByLCBib29sIHEpCnsKICAgIHZlYzQgdmVydGV4X2V5ZSA9IGdsX01vZGVsVmlld01hdHJpeCAqIGdsX1ZlcnRleDsKICAgIGlmIChzKSB0ZXhjb29yZC5zID0gZG90KGdsX1ZlcnRleCAsIGdsX09iamVjdFBsYW5lU1t1bml0XSk7CiAgICBpZiAodCkgdGV4Y29vcmQudCA9IGRvdChnbF9WZXJ0ZXggLCBnbF9PYmplY3RQbGFuZVRbdW5pdF0pOwogICAgaWYgKHIpIHRleGNvb3JkLnIgPSBkb3QoZ2xfVmVydGV4ICwgZ2xfT2JqZWN0UGxhbmVSW3VuaXRdKTsKICAgIGlmIChxKSB0ZXhjb29yZC5xID0gZG90KGdsX1ZlcnRleCAsIGdsX09iamVjdFBsYW5lUVt1bml0XSk7CiAgICByZXR1cm4gdGV4Y29vcmQ7Cn0KCnZlYzQgdGV4Z2VuX1NQSEVSRV9NQVAodmVjNCB0ZXhjb29yZCwgaW50IHVuaXQsIGJvb2wgcywgYm9vbCB0LCBib29sIHIsIGJvb2wgcSkKewogICAgdmVjNCB2ZXJ0ZXhfZXllID0gZ2xfTW9kZWxWaWV3TWF0cml4ICogZ2xfVmVydGV4OwogICAgdmVjMyBub3JtYWxpemVkX3ZlcnRleF9leWUgPSBub3JtYWxpemUodmVydGV4X2V5ZS54eXopOwogICAgdmVjMyBub3JtYWxfZXllID0gZ2xfTm9ybWFsTWF0cml4ICogZ2xfTm9ybWFsOwogICAgdmVjMyByZWZsZWN0aW9uX3ZlY3RvciA9IHJlZmxlY3Qobm9ybWFsaXplZF92ZXJ0ZXhfZXllLCBub3JtYWxfZXllKTsKICAgIHJlZmxlY3Rpb25fdmVjdG9yLnogPSByZWZsZWN0aW9uX3ZlY3Rvci56ICsgMS4wOwogICAgZmxvYXQgc3BoZXJlbWFwX20gPSAxLjAgLyAoMi4wICogbGVuZ3RoKHJlZmxlY3Rpb25fdmVjdG9yKSk7CiAgICBpZiAocykgdGV4Y29vcmQucyA9IHJlZmxlY3Rpb25fdmVjdG9yLnggKiBzcGhlcmVtYXBfbSArIDAuNTsKICAgIGlmICh0KSB0ZXhjb29yZC50ID0gcmVmbGVjdGlvbl92ZWN0b3IueSAqIHNwaGVyZW1hcF9tICsgMC41OwogICAgcmV0dXJuIHRleGNvb3JkOwp9Cgp2ZWM0IHRleGdlbl9SRUZMRUNUSU9OX01BUCh2ZWM0IHRleGNvb3JkLCBpbnQgdW5pdCwgYm9vbCBzLCBib29sIHQsIGJvb2wgciwgYm9vbCBxKQp7CiAgICB2ZWM0IHZlcnRleF9leWUgPSBnbF9Nb2RlbFZpZXdNYXRyaXggKiBnbF9WZXJ0ZXg7CiAgICB2ZWMzIG5vcm1hbGl6ZWRfdmVydGV4X2V5ZSA9IG5vcm1hbGl6ZSh2ZXJ0ZXhfZXllLnh5eik7CiAgICB2ZWMzIG5vcm1hbF9leWUgPSBnbF9Ob3JtYWxNYXRyaXggKiBnbF9Ob3JtYWw7CiAgICBmbG9hdCBtID0gMi4wICogZG90KG5vcm1hbGl6ZWRfdmVydGV4X2V5ZSwgbm9ybWFsX2V5ZSk7CiAgICBpZiAocykgdGV4Y29vcmQucyA9IG5vcm1hbGl6ZWRfdmVydGV4X2V5ZS54IC0gbm9ybWFsX2V5ZS54ICogbTsKICAgIGlmICh0KSB0ZXhjb29yZC50ID0gbm9ybWFsaXplZF92ZXJ0ZXhfZXllLnkgLSBub3JtYWxfZXllLnkgKiBtOwogICAgaWYgKHIpIHRleGNvb3JkLnIgPSBub3JtYWxpemVkX3ZlcnRleF9leWUueiAtIG5vcm1hbF9leWUueiAqIG07CiAgICByZXR1cm4gdGV4Y29vcmQ7Cn0KCnZlYzQgdGV4Z2VuX05PUk1BTF9NQVAodmVjNCB0ZXhjb29yZCwgaW50IHVuaXQsIGJvb2wgcywgYm9vbCB0LCBib29sIHIsIGJvb2wgcSkKewogICAgdmVjMyBub3JtYWxfZXllID0gbm9ybWFsaXplKGdsX05vcm1hbE1hdHJpeCAqIGdsX05vcm1hbCk7CiAgICBpZiAocykgdGV4Y29vcmQucyA9IG5vcm1hbF9leWUuczsKICAgIGlmICh0KSB0ZXhjb29yZC5zID0gbm9ybWFsX2V5ZS50OwogICAgaWYgKHIpIHRleGNvb3JkLnMgPSBub3JtYWxfZXllLnI7CiAgICByZXR1cm4gdGV4Y29vcmQ7Cn0KCiNpZmRlZiBURVhUVVJFX1ZFUlRfREVDTEFSRTAKICAgIFRFWFRVUkVfVkVSVF9ERUNMQVJFMAojZW5kaWYKCiNpZmRlZiBURVhUVVJFX1ZFUlRfREVDTEFSRTEKICAgIFRFWFRVUkVfVkVSVF9ERUNMQVJFMQojZW5kaWYKCiNpZmRlZiBURVhUVVJFX1ZFUlRfREVDTEFSRTIKICAgIFRFWFRVUkVfVkVSVF9ERUNMQVJFMgojZW5kaWYKCiNpZmRlZiBURVhUVVJFX1ZFUlRfREVDTEFSRTMKICAgIFRFWFRVUkVfVkVSVF9ERUNMQVJFMwojZW5kaWYKCiNlbmRpZgoKdmFyeWluZyB2ZWM0IHZlcnRleF9jb2xvcjsKCnZvaWQgbWFpbigpCnsKICAgIHZlcnRleF9jb2xvciA9IGdsX0NvbG9yOwoKI2lmIEdMX0xJR0hUSU5HCiAgICAvLyBmb3IgZWFjaCBhY3RpdmUgbGlnaHQgc291cmNlIHdlIG5lZWQgdG8gZG8gbGlnaHRpbmcKICAgICNpZiBHTF9MSUdIVDAKICAgICAgICAvLyB2ZXJ0ZXhfY29sb3IgPSB2ZXJ0ZXhfY29sb3IqMC4yNTsKICAgICNlbmRpZgojZW5kaWYKCi8vIGZvciBlYWNoIGFjdGl2ZSB0ZXh0dXJlIHVuaXQgd2UgbmVlZCB0byBkbyB0aGUgZm9sbG93aW5nLi4uLgojaWYgR0xfTUFYX1RFWFRVUkVfVU5JVFM+MAoKICAgICNpZmRlZiBURVhUVVJFX1ZFUlRfQk9EWTAKICAgICAgICBURVhUVVJFX1ZFUlRfQk9EWTAKCiAgICAgICAgI2lmIGRlZmluZWQoVEVYVFVSRV9HRU5fRlVOQ1RJT04wKSAmJiAoR0xfVEVYVFVSRV9HRU5fUzAgfHwgR0xfVEVYVFVSRV9HRU5fVDAgfHwgR0xfVEVYVFVSRV9HRU5fUjAgfHwgR0xfVEVYVFVSRV9HRU5fUTApCiAgICAgICAgICAgIFRleENvb3JkMCA9IFRFWFRVUkVfR0VOX0ZVTkNUSU9OMChUZXhDb29yZDAsIDAsIEdMX1RFWFRVUkVfR0VOX1MwLCBHTF9URVhUVVJFX0dFTl9UMCwgR0xfVEVYVFVSRV9HRU5fUjAsIEdMX1RFWFRVUkVfR0VOX1EwKTsKICAgICAgICAjZW5kaWYKCiAgICAjZW5kaWYKCiAgICAjaWZkZWYgVEVYVFVSRV9WRVJUX0JPRFkxCiAgICAgICAgVEVYVFVSRV9WRVJUX0JPRFkxCgogICAgICAgICNpZiBkZWZpbmVkKFRFWFRVUkVfR0VOX0JPRFkxKSAmJiAoVEVYVFVSRV9HRU5fUzEgfHwgVEVYVFVSRV9HRU5fVDEgfHwgVEVYVFVSRV9HRU5fUjEgfHwgVEVYVFVSRV9HRU5fUTEpCiAgICAgICAgICAgIFRleENvb3JkMSA9IFRFWFRVUkVfR0VOX0ZVTkNUSU9OMShUZXhDb29yZDEsIDEsIEdMX1RFWFRVUkVfR0VOX1MxLCBHTF9URVhUVVJFX0dFTl9UMSwgR0xfVEVYVFVSRV9HRU5fUjEsIEdMX1RFWFRVUkVfR0VOX1ExKTsKICAgICAgICAjZW5kaWYKICAgICNlbmRpZgoKICAgICNpZmRlZiBURVhUVVJFX1ZFUlRfQk9EWTIKICAgICAgICBURVhUVVJFX1ZFUlRfQk9EWTIKCiAgICAgICAgI2lmIGRlZmluZWQoVEVYVFVSRV9HRU5fQk9EWTIpICYmIChURVhUVVJFX0dFTl9TMiB8fCBURVhUVVJFX0dFTl9UMiB8fCBURVhUVVJFX0dFTl9SMiB8fCBURVhUVVJFX0dFTl9RMikKICAgICAgICAgICAgVGV4Q29vcmQyID0gVEVYVFVSRV9HRU5fRlVOQ1RJT04yKFRleENvb3JkMiwgMiwgR0xfVEVYVFVSRV9HRU5fUzIsIEdMX1RFWFRVUkVfR0VOX1QyLCBHTF9URVhUVVJFX0dFTl9SMiwgR0xfVEVYVFVSRV9HRU5fUTIpOwogICAgICAgICNlbmRpZgogICAgI2VuZGlmCgogICAgI2lmZGVmIFRFWFRVUkVfVkVSVF9CT0RZMwogICAgICAgIFRFWFRVUkVfVkVSVF9CT0RZMwoKICAgICAgICAjaWYgZGVmaW5lZChURVhUVVJFX0dFTl9CT0RZMykgJiYgKFRFWFRVUkVfR0VOX1MzIHx8IFRFWFRVUkVfR0VOX1QzIHx8IFRFWFRVUkVfR0VOX1IzIHx8IFRFWFRVUkVfR0VOX1EzKQogICAgICAgICAgICBUZXhDb29yZDMgPSBURVhUVVJFX0dFTl9GVU5DVElPTjMoVGV4Q29vcmQzLCAzLCBHTF9URVhUVVJFX0dFTl9TMywgR0xfVEVYVFVSRV9HRU5fVDMsIEdMX1RFWFRVUkVfR0VOX1IzLCBHTF9URVhUVVJFX0dFTl9RMyk7CiAgICAgICAgI2VuZGlmCiAgICAjZW5kaWYKCiNlbmRpZgoKICAgIGdsX1Bvc2l0aW9uID0gZ2xfTW9kZWxWaWV3UHJvamVjdGlvbk1hdHJpeCAqIGdsX1ZlcnRleDsKCn0KAAAAAAAjaWZkZWYgR0xfRVMKICAgIHByZWNpc2lvbiBoaWdocCBmbG9hdDsKI2VuZGlmCgojcHJhZ21hIGltcG9ydF9tb2RlcyAoIEdMX0xJR0hUSU5HICkKI3ByYWdtYSBpbXBvcnRfZGVmaW5lcyAoIEdMX01BWF9URVhUVVJFX1VOSVRTLCBHTF9BTFBIQSApCgojcHJhZ21hIGltcG9ydF9kZWZpbmVzICggVEVYVFVSRV9GUkFHX0RFQ0xBUkUwLCBURVhUVVJFX0ZVTkNUSU9OMCwgVEVYVFVSRV9FTlZfRlVOQ1RJT04wICkKI3ByYWdtYSBpbXBvcnRfZGVmaW5lcyAoIFRFWFRVUkVfRlJBR19ERUNMQVJFMSwgVEVYVFVSRV9GVU5DVElPTjEsIFRFWFRVUkVfRU5WX0ZVTkNUSU9OMSApCiNwcmFnbWEgaW1wb3J0X2RlZmluZXMgKCBURVhUVVJFX0ZSQUdfREVDTEFSRTIsIFRFWFRVUkVfRlVOQ1RJT04yLCBURVhUVVJFX0VOVl9GVU5DVElPTjIgKQojcHJhZ21hIGltcG9ydF9kZWZpbmVzICggVEVYVFVSRV9GUkFHX0RFQ0xBUkUzLCBURVhUVVJFX0ZVTkNUSU9OMywgVEVYVFVSRV9FTlZfRlVOQ1RJT04zICkKCiNpZiBHTF9NQVhfVEVYVFVSRV9VTklUUz4wCgp1bmlmb3JtIGludCBvc2dfVGV4dHVyZUZvcm1hdFtHTF9NQVhfVEVYVFVSRV9VTklUU107CnVuaWZvcm0gdmVjNCBvc2dfVGV4dHVyZUVudkNvbG9yW0dMX01BWF9URVhUVVJFX1VOSVRTXTsKCnZlYzQgdGV4ZW52X01PRFVMQVRFKHZlYzQgY29sb3IsIHZlYzQgdGV4dHVyZV9jb2xvciwgaW50IHVuaXQpIHsgcmV0dXJuIChvc2dfVGV4dHVyZUZvcm1hdFt1bml0XT09R0xfQUxQSEEpID8gdmVjNChjb2xvci5yLCBjb2xvci5nLCBjb2xvci5iLCBjb2xvci5hKnRleHR1cmVfY29sb3IuYSkgOiAgY29sb3IqdGV4dHVyZV9jb2xvcjsgfQp2ZWM0IHRleGVudl9SRVBMQUNFKHZlYzQgY29sb3IsIHZlYzQgdGV4dHVyZV9jb2xvciwgaW50IHVuaXQpIHsgcmV0dXJuIChvc2dfVGV4dHVyZUZvcm1hdFt1bml0XT09R0xfQUxQSEEpID8gdmVjNChjb2xvci5yLCBjb2xvci5nLCBjb2xvci5iLCB0ZXh0dXJlX2NvbG9yLmEpIDogdGV4dHVyZV9jb2xvcjsgfQp2ZWM0IHRleGVudl9ERUNBTCh2ZWM0IGNvbG9yLCB2ZWM0IHRleHR1cmVfY29sb3IsIGludCB1bml0KSB7IGNvbG9yLnJnYiA9IGNvbG9yLnJnYiAqICgxLjAtdGV4dHVyZV9jb2xvci5hKSArIHRleHR1cmVfY29sb3IucmdiKnRleHR1cmVfY29sb3IuYTsgcmV0dXJuIGNvbG9yOyB9CnZlYzQgdGV4ZW52X0FERCh2ZWM0IGNvbG9yLCB2ZWM0IHRleHR1cmVfY29sb3IsIGludCB1bml0KSB7IGNvbG9yLnJnYiA9IGNvbG9yLnJnYiArIHRleHR1cmVfY29sb3IucmdiOyBjb2xvci5hID0gY29sb3IuYSp0ZXh0dXJlX2NvbG9yLmE7IHJldHVybiBjb2xvcjsgfQp2ZWM0IHRleGVudl9CTEVORCh2ZWM0IGNvbG9yLCB2ZWM0IHRleHR1cmVfY29sb3IsIGludCB1bml0KSB7IGNvbG9yLnJnYiA9IGNvbG9yLnJnYiAqICh2ZWMzKDEuMCwxLjAsMS4wKS10ZXh0dXJlX2NvbG9yLnJnYikgKyB0ZXh0dXJlX2NvbG9yLnJnYiAqIG9zZ19UZXh0dXJlRW52Q29sb3JbdW5pdF0ucmdiOyByZXR1cm4gY29sb3I7IH0KCiNpZmRlZiBURVhUVVJFX0ZSQUdfREVDTEFSRTAKICAgIFRFWFRVUkVfRlJBR19ERUNMQVJFMAojZW5kaWYKCiNpZmRlZiBURVhUVVJFX0ZSQUdfREVDTEFSRTEKICAgIFRFWFRVUkVfRlJBR19ERUNMQVJFMQojZW5kaWYKCiNpZmRlZiBURVhUVVJFX0ZSQUdfREVDTEFSRTIKICAgIFRFWFRVUkVfRlJBR19ERUNMQVJFMgojZW5kaWYKCiNpZmRlZiBURVhUVVJFX0ZSQUdfREVDTEFSRTMKICAgIFRFWFRVUkVfRlJBR19ERUNMQVJFMwojZW5kaWYKCiNlbmRpZgoKCnZhcnlpbmcgdmVjNCB2ZXJ0ZXhfY29sb3I7Cgp2b2lkIG1haW4oKQp7CiAgICB2ZWM0IGZyYWdfY29sb3IgPSB2ZXJ0ZXhfY29sb3I7CgojaWYgR0xfTUFYX1RFWFRVUkVfVU5JVFM+MAogICAgI2lmZGVmIFRFWFRVUkVfRlVOQ1RJT04wCiAgICAgICAgI2lmZGVmIFRFWFRVUkVfRU5WX0ZVTkNUSU9OMAogICAgICAgICAgICBmcmFnX2NvbG9yID0gVEVYVFVSRV9FTlZfRlVOQ1RJT04wKGZyYWdfY29sb3IsIFRFWFRVUkVfRlVOQ1RJT04wKCksIDApOwogICAgICAgICNlbHNlCiAgICAgICAgICAgIGZyYWdfY29sb3IgPSBURVhUVVJFX0ZVTkNUSU9OMCgpOwogICAgICAgICNlbmRpZgogICAgI2VuZGlmCgogICAgI2lmZGVmIFRFWFRVUkVfRlVOQ1RJT04xCiAgICAgICAgI2lmZGVmIFRFWFRVUkVfRU5WX0ZVTkNUSU9OMQogICAgICAgICAgICBmcmFnX2NvbG9yID0gVEVYVFVSRV9FTlZfRlVOQ1RJT04xKGZyYWdfY29sb3IsIFRFWFRVUkVfRlVOQ1RJT04xKCksIDEpOwogICAgICAgICNlbHNlCiAgICAgICAgICAgIGZyYWdfY29sb3IgPSBURVhUVVJFX0ZVTkNUSU9OMSgpOwogICAgICAgICNlbmRpZgogICAgI2VuZGlmCgogICAgI2lmZGVmIFRFWFRVUkVfRlVOQ1RJT04yCiAgICAgICAgI2lmZGVmIFRFWFRVUkVfRU5WX0ZVTkNUSU9OMgogICAgICAgICAgICBmcmFnX2NvbG9yID0gVEVYVFVSRV9FTlZfRlVOQ1RJT04yKGZyYWdfY29sb3IsIFRFWFRVUkVfRlVOQ1RJT04yKCksIDIpOwogICAgICAgICNlbHNlCiAgICAgICAgICAgIGZyYWdf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OyAgICAgdmFyeWluZyB2ZWMyIHZfdGV4Q29vcmQ7ICAgICAgICAgdm9pZCBtYWluKCkgICAgIHsgICAgICAgICB2ZWM0IGFiZ3IgPSB0ZXh0dXJlMkQodV90ZXh0dXJlLCB2X3RleENvb3JkKTsgICAgICAgICBnbF9GcmFnQ29sb3IgPSBhYmdyOyAgICAgICAgIGdsX0ZyYWdDb2xvci5yID0gYWJnci5iOyAgICAgICAgIGdsX0ZyYWdDb2xvci5iID0gYWJnci5yOyAgICAgICAgIGdsX0ZyYWdDb2xvci5hID0gMS4wOyAgICAgICAgIGdsX0ZyYWdDb2xvciAqPSB1X21vZHVsYXRpb247ICAgICB9IAAAAAAAAAAAAAAAACAgICAgcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7ICAgICB1bmlmb3JtIHNhbXBsZXIyRCB1X3RleHR1cmU7ICAgICB1bmlmb3JtIHZlYzQgdV9tb2R1bGF0aW9uOyAgICAgdmFyeWluZyB2ZWMyIHZfdGV4Q29vcmQ7ICAgICAgICAgdm9pZCBtYWluKCkgICAgIHsgICAgICAgICB2ZWM0IGFiZ3IgPSB0ZXh0dXJlMkQodV90ZXh0dXJlLCB2X3RleENvb3JkKTsgICAgICAgICBnbF9GcmFnQ29sb3IgPSBhYmdyOyAgICAgICAgIGdsX0ZyYWdDb2xvci5yID0gYWJnci5iOyAgICAgICAgIGdsX0ZyYWdDb2xvci5iID0gYWJnci5yOyAgICAgICAgIGdsX0ZyYWdDb2xvciAqPSB1X21vZHVsYXRpb247ICAgICB9IAAAAAAAAAAAAAAgICAgIHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OyAgICAgdW5pZm9ybSBzYW1wbGVyMkQgdV90ZXh0dXJlOyAgICAgdW5pZm9ybSB2ZWM0IHVfbW9kdWxhdGlvbjsgICAgIHZhcnlpbmcgdmVjMiB2X3RleENvb3JkOyAgICAgICAgIHZvaWQgbWFpbigpICAgICB7ICAgICAgICAgZ2xfRnJhZ0NvbG9yID0gdGV4dHVyZTJEKHVfdGV4dHVyZSwgdl90ZXhDb29yZCk7ICAgICAgICAgZ2xfRnJhZ0NvbG9yICo9IHVfbW9kdWxhdGlvbjsgICAgIH0gAAAAAAAAICAgICBwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsgICAgIHVuaWZvcm0gdmVjNCB1X2NvbG9yOyAgICAgICAgIHZvaWQgbWFpbigpICAgICB7ICAgICAgICAgZ2xfRnJhZ0NvbG9yID0gdV9jb2xvcjsgICAgIH0gAAAAAAAAAAAgICAgIHVuaWZvcm0gbWF0NCB1X3Byb2plY3Rpb247ICAgICBhdHRyaWJ1dGUgdmVjMiBhX3Bvc2l0aW9uOyAgICAgYXR0cmlidXRlIHZlYzIgYV90ZXhDb29yZDsgICAgIGF0dHJpYnV0ZSBmbG9hdCBhX2FuZ2xlOyAgICAgYXR0cmlidXRlIHZlYzIgYV9jZW50ZXI7ICAgICB2YXJ5aW5nIHZlYzIgdl90ZXhDb29yZDsgICAgICAgICB2b2lkIG1haW4oKSAgICAgeyAgICAgICAgIGZsb2F0IGFuZ2xlID0gcmFkaWFucyhhX2FuZ2xlKTsgICAgICAgICBmbG9hdCBjID0gY29zKGFuZ2xlKTsgICAgICAgICBmbG9hdCBzID0gc2luKGFuZ2xlKTsgICAgICAgICBtYXQyIHJvdGF0aW9uTWF0cml4ID0gbWF0MihjLCAtcywgcywgYyk7ICAgICAgICAgdmVjMiBwb3NpdGlvbiA9IHJvdGF0aW9uTWF0cml4ICogKGFfcG9zaXRpb24gLSBhX2NlbnRlcikgKyBhX2NlbnRlcjsgICAgICAgICB2X3RleENvb3JkID0gYV90ZXhDb29yZDsgICAgICAgICBnbF9Qb3NpdGlvbiA9IHVfcHJvamVjdGlvbiAqIHZlYzQocG9zaXRpb24sIDAuMCwgMS4wKTsgICAgICAgIGdsX1BvaW50U2l6ZSA9IDEuMDsgICAgIH0gAAAAAAAAAAAAAAAAAAAgICAgIHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OyAgICAgdW5pZm9ybSBzYW1wbGVyMkQgdV90ZXh0dXJlOyAgICAgdW5pZm9ybSBzYW1wbGVyMkQgdV90ZXh0dXJlX3U7ICAgICB1bmlmb3JtIHNhbXBsZXIyRCB1X3RleHR1cmVfdjsgICAgIHVuaWZvcm0gdmVjNCB1X21vZHVsYXRpb247ICAgICB2YXJ5aW5nIHZlYzIgdl90ZXhDb29yZDsgICAgICAgICB2b2lkIG1haW4oKSAgICAgeyAgICAgICAgIG1lZGl1bXAgdmVjMyB5dXY7ICAgICAgICAgbG93cCB2ZWMzIHJnYjsgICAgICAgICB5dXYueCA9IHRleHR1cmUyRCh1X3RleHR1cmUsICAgdl90ZXhDb29yZCkucjsgICAgICAgICB5dXYueSA9IHRleHR1cmUyRCh1X3RleHR1cmVfdSwgdl90ZXhDb29yZCkuciAtIDAuNTsgICAgICAgICB5dXYueiA9IHRleHR1cmUyRCh1X3RleHR1cmVfdiwgdl90ZXhDb29yZCkuciAtIDAuNTsgICAgICAgICByZ2IgPSBtYXQzKCAxLCAgICAgICAgMSwgICAgICAgMSwgICAgICAgICAgICAgICAgICAgICAwLCAgICAgICAtMC4zOTQ2NSwgMi4wMzIxMSwgICAgICAgICAgICAgICAgICAgICAxLjEzOTgzLCAtMC41ODA2MCwgMCkgKiB5dXY7ICAgICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNChyZ2IsIDEpOyAgICAgICAgIGdsX0ZyYWdDb2xvciAqPSB1X21vZHVsYXRpb247ICAgICB9IAAAAAAAAAAAAAAgICAgIHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OyAgICAgdW5pZm9ybSBzYW1wbGVyMkQgdV90ZXh0dXJlOyAgICAgdW5pZm9ybSBzYW1wbGVyMkQgdV90ZXh0dXJlX3U7ICAgICB1bmlmb3JtIHZlYzQgdV9tb2R1bGF0aW9uOyAgICAgdmFyeWluZyB2ZWMyIHZfdGV4Q29vcmQ7ICAgICAgICAgdm9pZCBtYWluKCkgICAgIHsgICAgICAgICBtZWRpdW1wIHZlYzMgeXV2OyAgICAgICAgIGxvd3AgdmVjMyByZ2I7ICAgICAgICAgeXV2LnggPSB0ZXh0dXJlMkQodV90ZXh0dXJlLCAgIHZfdGV4Q29vcmQpLnI7ICAgICAgICAgeXV2Lnl6ID0gdGV4dHVyZTJEKHVfdGV4dHVyZV91LCB2X3RleENvb3JkKS5yYSAtIDAuNTsgICAgICAgICByZ2IgPSBtYXQzKCAxLCAgICAgICAgMSwgICAgICAgMSwgICAgICAgICAgICAgICAgICAgICAwLCAgICAgICAtMC4z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BwAAAAgAAAAIAAAACQAAAAkAAAAKAAAACgAAAAsAAAALAAAADAAAAAwAAAANAAAADQAAAAAAAAAAAAAADAAIAIwACABMAAgAzAAIACwACACsAAgAbAAIAOwACAAcAAgAnAAIAFwACADcAAgAPAAIALwACAB8AAgA/AAIAAIACACCAAgAQgAIAMIACAAiAAgAogAIAGIACADiAAgAEgAIAJIACABSAAgA0gAIADIACACyAAgAcgAIAPIACAAKAAgAigAIAEoACADKAAgAKgAIAKoACABqAAgA6gAIABoACACaAAgAWgAIANoACAA6AAgAugAIAHoACAD6AAgABgAIAIYACABGAAgAxgAIACYACACmAAgAZgAIAOYACAAWAAgAlgAIAFYACADWAAgANgAIALYACAB2AAgA9gAIAA4ACACOAAgATgAIAM4ACAAuAAgArgAIAG4ACADuAAgAHgAIAJ4ACABeAAgA3gAIAD4ACAC+AAgAfgAIAP4ACAABAAgAgQAIAEEACADBAAgAIQAIAKEACABhAAgA4QAIABEACACRAAgAUQAIANEACAAxAAgAsQAIAHEACADxAAgACQAIAIkACABJAAgAyQAIACkACACpAAgAaQAIAOkACAAZAAgAmQAIAFkACADZAAgAOQAIALkACAB5AAgA+QAIAAUACACFAAgARQAIAMUACAAlAAgApQAIAGUACADlAAgAFQAIAJUACABVAAgA1QAIADUACAC1AAgAdQAIAPUACAANAAgAjQAIAE0ACADNAAgALQAIAK0ACABtAAgA7QAIAB0ACACdAAgAXQAIAN0ACAA9AAgAvQAIAH0ACAD9AAgAEwAJABMBCQCTAAkAkwEJAFMACQBTAQkA0wAJANMBCQAzAAkAMwEJALMACQCzAQkAcwAJAHMBCQDzAAkA8wEJAAsACQALAQkAiwAJAIsBCQBLAAkASwEJAMsACQDLAQkAKwAJACsBCQCrAAkAqwEJAGsACQBrAQkA6wAJAOsBCQAbAAkAGwEJAJsACQCbAQkAWwAJAFsBCQDbAAkA2wEJADsACQA7AQkAuwAJALsBCQB7AAkAewEJAPsACQD7AQkABwAJAAcBCQCHAAkAhwEJAEcACQBHAQkAxwAJAMcBCQAnAAkAJwEJAKcACQCnAQkAZwAJAGcBCQDnAAkA5wEJABcACQAXAQkAlwAJAJcBCQBXAAkAVwEJANcACQDXAQkANwAJADcBCQC3AAkAtwEJAHcACQB3AQkA9wAJAPcBCQAPAAkADwEJAI8ACQCPAQkATwAJAE8BCQDPAAkAzwEJAC8ACQAvAQkArwAJAK8BCQBvAAkAbwEJAO8ACQDvAQkAHwAJAB8BCQCfAAkAnwEJAF8ACQBfAQkA3wAJAN8BCQA/AAkAPwEJAL8ACQC/AQkAfwAJAH8BCQD/AAkA/wEJAAAABwBAAAcAIAAHAGAABwAQAAcAUAAHADAABwBwAAcACAAHAEgABwAoAAcAaAAHABgABwBYAAcAOAAHAHgABwAEAAcARAAHACQABwBkAAcAFAAHAFQABwA0AAcAdAAHAAMACACDAAgAQwAIAMMACAAjAAgAowAIAGMACADjAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAABAAAAAgAAAAIAAAACAAAAAgAAAAMAAAADAAAAAwAAAAMAAAAEAAAABAAAAAQAAAAEAAAABQAAAAUAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAQERIACAcJBgoFCwQMAw0CDgEPAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAoAAAAMAAAADgAAABAAAAAUAAAAGAAAABwAAAAgAAAAKAAAADAAAAA4AAAAQAAAAFAAAABgAAAAcAAAAIAAAACgAAAAwAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAAABAACAAQAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAAAAAAAAAAAB1KgQAhSoEAMSCBACQKgQAmyoEAKgqBACzKgQAxyoEANQqBADEggQAAAAAAAAAAADeEgSVAAAAAP///////////////wAAAAAAAAAAAAAAAAIAAMADAADABAAAwAUAAMAGAADABwAAwAgAAMAJAADACgAAwAsAAMAMAADADQAAwA4AAMAPAADAEAAAwBEAAMASAADAEwAAwBQAAMAVAADAFgAAwBcAAMAYAADAGQAAwBoAAMAbAADAHAAAwB0AAMAeAADAHwAAwAAAALMBAADDAgAAwwMAAMMEAADDBQAAwwYAAMMHAADDCAAAwwkAAMMKAADDCwAAwwwAAMMNAADTDgAAww8AAMMAAAy7AQAMwwIADMMDAAzDBAAM0wAAAABUISIZDQECAxFLHAwQBAsdEh4naG5vcHFiIAUGDxMUFRoIFgcoJBcYCQoOGx8lI4OCfSYqKzw9Pj9DR0pNWFlaW1xdXl9gYWNkZWZnaWprbHJzdHl6e3wAAAAAAAAAAABJbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgAAAAAAAP////////////////////////////////////////////////////////////////8AAQIDBAUGBwgJ/////////woLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIj////////CgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiP/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAeAAAAHwAAACAAAAAhAAAAIgAAACMAAAAkAAAAJQAAACYAAAAnAAAAKAAAACkAAAAqAAAAKwAAACwAAAAtAAAALgAAAC8AAAAwAAAAMQAAADIAAAAzAAAANAAAADUAAAA2AAAANwAAADgAAAA5AAAAOgAAADsAAAA8AAAAPQAAAD4AAAA/AAAAQAAAAEEAAABCAAAAQwAAAEQAAABFAAAARgAAAEcAAABIAAAASQAAAEoAAABLAAAATAAAAE0AAABOAAAATwAAAFAAAABRAAAAUgAAAFMAAABUAAAAVQAAAFYAAABXAAAAWAAAAFkAAABaAAAAWwAAAFwAAABdAAAAXgAAAF8AAABgAAAAQQAAAEIAAABDAAAARAAAAEUAAABGAAAARwAAAEgAAABJAAAASgAAAEsAAABMAAAATQAAAE4AAABPAAAAUAAAAFEAAABSAAAAUwAAAFQAAABVAAAAVgAAAFcAAABYAAAAWQAAAFoAAAB7AAAAfAAAAH0AAAB+AAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAeAAAAHwAAACAAAAAhAAAAIgAAACMAAAAkAAAAJQAAACYAAAAnAAAAKAAAACkAAAAqAAAAKwAAACwAAAAtAAAALgAAAC8AAAAwAAAAMQAAADIAAAAzAAAANAAAADUAAAA2AAAANwAAADgAAAA5AAAAOgAAADsAAAA8AAAAPQAAAD4AAAA/AAAAQAAAAGEAAABiAAAAYwAAAGQAAABlAAAAZgAAAGcAAABoAAAAaQAAAGoAAABrAAAAbAAAAG0AAABuAAAAbwAAAHAAAABxAAAAcgAAAHMAAAB0AAAAdQAAAHYAAAB3AAAAeAAAAHkAAAB6AAAAWwAAAFwAAABdAAAAXgAAAF8AAABgAAAAYQAAAGIAAABjAAAAZAAAAGUAAABmAAAAZwAAAGgAAABpAAAAagAAAGsAAABsAAAAbQAAAG4AAABvAAAAcAAAAHEAAAByAAAAcwAAAHQAAAB1AAAAdgAAAHcAAAB4AAAAeQAAAHoAAAB7AAAAfAAAAH0AAAB+AAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAMgAiACIAIgAiACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgABYATABMAEwATABMAEwATABMAEwATABMAEwATABMAEwAjYCNgI2AjYCNgI2AjYCNgI2AjYBMAEwATABMAEwATABMAI1QjVCNUI1QjVCNUIxQjFCMUIxQjFCMUIxQjFCMUIxQjFCMUIxQjFCMUIxQjFCMUIxQjFBMAEwATABMAEwATACNYI1gjWCNYI1gjWCMYIxgjGCMYIxgjGCMYIxgjGCMYIxgjGCMYIxgjGCMYIxgjGCMYIxgTABMAEwATAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAKABEREQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAARAA8KERERAwoHAAETCQsLAAAJBgsAAAsABhEAAAAREREAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAAEQAKChEREQAKAAACAAkLAAAACQALAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAADAAAAAAJDAAAAAAADAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAANAAAABA0AAAAACQ4AAAAAAA4AAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAADwAAAAAPAAAAAAkQAAAAAAAQAAAQAAASAAAAEhISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAASEhIAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAAAAAAKAAAAAAoAAAAACQsAAAAAAAsAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAwMTIzNDU2Nzg5QUJDREVGCgAAAGQAAADoAwAAECcAAKCGAQBAQg8AgJaYAADh9QVMQ19DVFlQRQAAAABMQ19OVU1FUklDAABMQ19USU1FAAAAAABMQ19DT0xMQVRFAABMQ19NT05FVEFSWQBMQ19NRVNTQUdFUwAAAAAAAAAAAAQAAAAAAAAAcEMBAIsAAACMAAAA/P////z///9wQwEAjQAAAI4AAAAAAAAAAAAAADAxMjM0NTY3ODlhYmNkZWZBQkNERUZ4WCstcFBpSW5OAAAAAAAAAAAAAAAAAAAAACUAAABtAAAALwAAACUAAABkAAAALwAAACUAAAB5AAAAJQAAAFkAAAAtAAAAJQAAAG0AAAAtAAAAJQAAAGQAAAAlAAAASQAAADoAAAAlAAAATQAAADoAAAAlAAAAUwAAACAAAAAlAAAAcAAAAAAAAAAlAAAASAAAADoAAAAlAAAATQAAAAAAAAAAAAAAAAAAACUAAABIAAAAOgAAACUAAABNAAAAOgAAACUAAABTAAAAJQAAAEgAAAA6AAAAJQAAAE0AAAA6AAAAJQAAAFMAAAAoNAIAOjUCAODjAAAAAAAAKDQCAGY1AgAwQwEAAAAAAGgAAABgAAAAAAAAADj8AAAkAAAABQAAAAYAAAAlAAAAJgAAACcAAAAoAAAABAAAAAEAAAAOAAAADwAAACkAAAAqAAAAKwAAACwAAAACAAAAAQAAAAcAAAACAAAABQAAAGQAAABcAAAA/P///zj8AAAtAAAABwAAAAgAAAAuAAAALwAAADAAAAAxAAAABgAAAAMAAAAQAAAAEQAAAKD///+g////oP///6D///8AAAAAAAAAAKD///+g////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoP///6D///8AAAAAAAAAAAAAAAAAAAAAoP///6D///+g////oP///6D///8IAAAAoP///zj8AAAyAAAACQAAAAoAAAAzAAAANAAAADUAAAA2AAAANwAAADgAAAA5AAAAOgAAADsAAAA8AAAAPQAAAD4AAAA/AAAAQAAAAEEAAABCAAAAQwAAAEQAAABFAAAARgAAAAcAAAASAAAAEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4////+P////j////4////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJj///+Y////mP///5j///+Y////mP///wAAAACY////OPwAAAEAAAAUAAAAFQAAAEcAAAALAAAADAAAAEgAAABJAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAAEoAAABLAAAATAAAAE0AAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAACAAAAAwAAAAMAAAAeAAAAHwAAAAQAAAAFAAAAaAAAAGAAAAAAAAAASPwAAE4AAAANAAAADgAAAE8AAABQAAAAJwAAACgAAAAEAAAAAQAAABYAAAAXAAAAKQAAACoAAAArAAAALAAAAAIAAAACAAAABwAAAGQAAABcAAAA/P///0j8AABRAAAADwAAABAAAABSAAAAUwAAADAAAAAxAAAABgAAAAMAAAAYAAAAGQAAAKD///+g////oP///6D///8AAAAAAAAAAKD///+g////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoP///6D///8AAAAAAAAAAAAAAAAAAAAAoP///6D///+g////oP///6D///8IAAAAoP///0j8AABUAAAAEQAAABIAAABVAAAAVgAAADUAAAA2AAAANwAAADgAAAA5AAAAOgAAADsAAAA8AAAAPQAAAD4AAAA/AAAAQAAAAEEAAABCAAAAQwAAAEQAAABFAAAARgAAAAcAAAAaAAAAGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4////+P////j////4////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJj///+Y////mP///5j///+Y////mP///wAAAACY////SPwAAAEAAAAcAAAAHQAAAFcAAAATAAAAFAAAAFgAAABZAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAAEoAAABLAAAATAAAAE0AAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAACAAAAAwAAAAMAAAAeAAAAHwAAAAQAAAAFAAAAaAAAAGAAAAAAAAAAsPEAAFoAAAAVAAAAFgAAAFsAAABcAAAAXQAAAF4AAAAIAAAABAAAAB4AAAAfAAAAoP///6D///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACg////oP///wAAAAAAAAAAAAAAAAAAAACg////oP///6D///+g////oP///wgAAACg////sPEAAF8AAAAXAAAAGAAAAGAAAABhAAAANQAAADYAAAA3AAAAOAAAAGIAAABjAAAAOwAAADwAAAA9AAAAPgAAAD8AAABAAAAAZAAAAGUAAABDAAAARAAAAGYAAABnAAAACQAAACAAAAAhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj////4////+P////j///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmP///5j///+Y////mP///5j///+Y////AAAAAJj///+w8QAAAQAAACIAAAAjAAAAaAAAABkAAAAaAAAAaQAAAGoAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAATAAAASgAAAEsAAABMAAAATQAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAAIAAAADAAAAAwAAAB4AAAAfAAAABAAAAAUAAABkAAAAXAAAAAAAAADg8QAAawAAABsAAAAcAAAAbAAAAG0AAABuAAAAbwAAAAoAAAAFAAAAJAAAACUAAACk////pP///wAAAAAAAAAAAAAAAAAAAACk////pP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKT///+k////pP///6T///+k////CAAAAKT////g8QAAcAAAAB0AAAAeAAAAcQAAAHIAAAA1AAAANgAAADcAAAA4AAAAcwAAAHQAAAA7AAAAPAAAAD0AAAA+AAAAPwAAAEAAAAB1AAAAdgAAAEMAAABEAAAAZgAAAGcAAAALAAAAJgAAACcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+P////j////4////+P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACc////nP///5z///+c////nP///5z///8AAAAAnP///+DxAAABAAAAKAAAACkAAAB3AAAAHwAAACAAAAB4AAAAeQAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAABMAAABKAAAASwAAAEwAAABNAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAAgAAAAMAAAADAAAAHgAAAB8AAAAEAAAABQAAANg0AgDSQQIAAAAAAAEAAADg4wAAA/T//yg0AgDiQQIAOPwAAAAAAAAoNAIAx0MCAJDoAAAAAAAAADQCAMhEAgAoNAIA7UMCAGDgAAAAAAAAADQCAEZFAgAoNAIA+UUCAGDgAAAAAAAAADQCANVGAgAoNAIAiUcCAGDgAAAAAAAAADQCAGVIAgAoNAIAGUkCAGDgAAAAAAAAADQCAPVJAgAoNAIAqUoCAGDgAAAAAAAAADQCAIhLAgAANAIA8UwCACg0AgA8TAIA4OAAAAAAAAAANAIAE00CACg0AgCmTQIAYOAAAAAAAAAANAIAtU4CACg0AgBpTwIA4OAAAAAAAAAANAIAH1ACACg0AgCzUAIAYOAAAAAAAAAANAIAslECACg0AgBmUgIAYOAAAAAAAAAANAIAQlMCACg0AgD2UwIAYOAAAAAAAAAANAIA0lQCACg0AgCGVQIAYOAAAAAAAAAANAIAYlYCACg0AgAWVwIAYOAAAAAAAAAANAIA8lcCACg0AgCmWAIAYOAAAAAAAAAANAIAg1kCACg0AgA4WgIAYOAAAAAAAAAANAIAFVsCACg0AgDKWwIAYOAAAAAAAAAANAIAp1wCACg0AgBcXQIAYOAAAAAAAAAANAIAOV4CACg0AgDuXgIAYOAAAAAAAAAANAIAy18CACg0AgCAYAIAYOAAAAAAAAAANAIAXWECACg0AgASYgIAYOAAAAAAAAAANAIA72ICACg0AgCkYwIAYOAAAAAAAAAANAIAgWQCACg0AgA2ZQIA4OAAAAAAAAAANAIA7GUCACg0AgCAZgIAYOAAAAAAAAAANAIAXWcCACg0AgASaAIAYOAAAAAAAAAANAIA72gCACg0AgCkaQIAYOAAAAAAAAAANAIAgWoCAAA0AgA9awIAADQCAI9rAgDYNAIAUGsCAAAAAAABAAAA0OIAAAAAAAAANAIAi2wCANg0AgAtbAIAAAAAAAEAAADw4gAAAAAAANg0AgDXawIAAAAAAAEAAAD44gAAAAAAALw0AgCwbAIAAAAAABDjAAC8NAIAB20CAAEAAAAQ4wAAKDQCAA1uAgBwQwEAAAAAAAgAAAAAAAAAcEMBAIsAAACMAAAA+P////j///9wQwEAjQAAAI4AAAAoNAIAIG4CAHBDAQAAAAAAKDQCANJuAgDA4wAAAAAAACg0AgCebgIAsOMAAAAAAAAoNAIAvG4CALD2AAAAAAAAKDQCAO1uAgAwQwEAAAAAACg0AgAvbwIAMEMBAAAAAAAoNAIASG8CALD2AAAAAAAAKDQCAGVvAgDg4wAAAAAAACg0AgB8bwIAsPYAAAAAAAAoNAIAF3ACAPDjAAAAAAAAKDQCAChwAgAw5AAAAAAAACg0AgA/cAIAsPYAAAAAAAAoNAIAVnACALD2AAAAAAAAKDQCAG1yAgBg5AAAAAAAACg0AgBPcgIAsPYAAAAAAAAoNAIAuHICAODjAAAAAAAAKDQCACFzAgDg4wAAAAAAACg0AgD8egIAcOQAAAAAAAA8AAAAAAAAAEBDAQCxAAAAsgAAAMT////E////QEMBALMAAAC0AAAAKDQCAJB5AgBAQwEAAAAAACg0AgDkegIAsPYAAAAAAAAoNAIAF3sCAIDkAAAAAAAAKDQCADh7AgBw5AAAAAAAACg0AgCQewIAcOQAAAAAAAAoNAIAvLACALD2AAAAAAAAKDQCAAWyAgBg5AAAAAAAANg0AgD4swIAAAAAAAIAAADY+AAAAgAAAFjlAAACkAAAADQCABmyAgAoNAIAULICAODjAAAAAAAAKDQCAC6yAgCA5QAAAAAAACg0AgBDsgIAYOUAAAAAAAAoNAIA9rICAOjkAAAAAAAAKDQCABC0AgDw4wAAAAAAANg0AgAKtQIAAAAAAAIAAACQ6AAAAgAAAIDoAAACOAAAjAEAAAAAAACQ6AAA0gAAANMAAACAAAAAJQAAACYAAACBAAAAggAAAIMAAACEAAAAhQAAAIYAAACHAAAAiAAAAIkAAACKAAAAiwAAAIwAAACNAAAAjgAAADAAAAAIAAAACQAAAAEAAAACAAAAAwAAAAoAAAALAAAADAAAAFoAAAAOAAAADwAAABAAAAARAAAAEgAAABMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHT+//90/v//AAAAAAAAAAB0/v//dP7//3T+//90/v//dP7//3T+//8AAAAAdP7//5DoAAABAAAA1AAAANUAAACPAAAAJwAAACgAAACQAAAAkQAAAAQAAAAFAAAAkgAAAJMAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAABMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAAgAAAAMAAAADAAAAHgAAAB8AAAAEAAAABQAAANg0AgCwtAIAAAAAAAIAAADg4wAAAgAAAHjoAAACIAAAADQCAKK0AgDYNAIAObQCAAAAAAABAAAAKOAAAAP0///YNAIAUbQCAAAAAAABAAAAKOAAAAP0//8oNAIAcLQCAIDkAAAAAAAAKDQCAIW0AgCA5AAAAAAAACg0AgCStAIAYOUAAAAAAAAANAIAw7QCACg0AgDStAIAWOUAAAAAAADYNAIA47QCAAAAAAABAAAA4OMAAAP0//8oNAIA97QCALD2AAAAAAAAKDQCAD+1AgCQ6AAAAAAAAFwAAAAAAAAAkOgAANIAAADTAAAAgAAAACUAAAAmAAAAgQAAAIIAAACDAAAAhAAAAIUAAACGAAAAhwAAAIgAAACJAAAAigAAAIsAAACMAAAAjQAAAI4AAAAwAAAACAAAAAkAAAABAAAAAgAAAAMAAAAKAAAACwAAAAwAAABaAAAADgAAAA8AAAAQAAAAEQAAABIAAAATAAAAFAAAABUAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAB4AAAAfAAAAIAAAACEAAAAiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACk////pP///wAAAAAAAAAApP///6T///+k////pP///6T///+k////AAAAAKT///+Q6AAAAQAAANQAAADVAAAAjwAAACcAAAAoAAAAkAAAAJEAAAAEAAAABQAAAJIAAACTAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAATAAAAFAAAABUAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAAIAAAADAAAAAwAAAB4AAAAfAAAABAAAAAUAAAAoNAIAvLUCAPjqAAAAAAAAADQCAMu1AgAoNAIAtbYCAGDkAAAAAAAAKDQCAES3AgAg6wAAAAAAACg0AgAstwIAYOQAAAAAAAAoNAIAYrcCACDrAAAAAAAAKDQCAKi3AgDg4wAAAAAAACg0AgCPuQIA8OMAAAAAAAAoNAIAqbkCALD2AAAAAAAAKDQCAMi5AgCA5QAAAAAAACg0AgDbvwIAaOgAAAAAAAAoNAIAI7wCAKDrAAAAAAAAADQCAE28AgAoNAIArrwCALjrAAAAAAAAADQCANO8AgAoNAIA3b0CANDrAAAAAAAAKDQCAAm+AgCw9gAAAAAAACg0AgDrvwIAsPYAAAAAAAAoNAIAZ8ECAODjAAAAAAAAKDQCAH/BAgAQ7AAAAAAAACg0AgCfwQIAsPYAAAAAAAAoNAIAxcECALD2AAAAAAAAKDQCAKTCAgBA7AAAAAAAANg0AgCMwgIAAAAAAAIAAACw9gAAAgAAACgKAQACDAAA2DQCAMzCAgAAAAAAAgAAANDsAAACAAAA4OwAAAIUAAAsAAAAAAAAALjsAAAmAQAAAQAAACcBAAAoAQAA1P///wAAAADU////uOwAADwAAAApAQAAKgEAANg0AgC7wgIAAAAAAAEAAACw9gAAA/T//yg0AgABwwIAuOwAAAAAAAAANAIA68ICACwAAAAAAAAA0OwAACYBAADjAAAAKwEAACwBAAABAAAA1P///wAAAADU////0OwAADwAAAAtAQAALgEAAAAAAADYNAIAG8MCAAAAAAACAAAASO0AAAIMAABQ7QAAAgAAAAA0AgBvwwIAKDQCADnDAgCw9gAAAAAAACg0AgC4zAIAcO0AAAAAAAAoNAIApMwCAFjoAAAAAAAAKDQCANXOAgAI9wAAAAAAANg0AgBuzgIAAAAAAAIAAADo5AAAAgAAAODtAAACSAAA2DQCAPHNAgAAAAAAAgAAANDtAAACAAAA2O0AAAIEAAAANAIAUM4CAAA0AgA0zgIAADQCAK7OAgAoNAIA8c4CAJDoAAAAAAAASAAAAAAAAACQ6AAA0gAAANMAAACAAAAAJQAAACYAAACBAAAAggAAAIMAAACEAAAAhQAAAIYAAACHAAAAiAAAAIkAAACKAAAAiwAAAIwAAACNAAAAjgAAADAAAAAIAAAACQAAAAEAAAACAAAAAwAAAAoAAAALAAAADAAAAFoAAAAOAAAADwAAABAAAAARAAAAEgAAABMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALj///+4////AAAAAAAAAAC4////uP///7j///+4////uP///7j///8AAAAAuP///5DoAAABAAAA1AAAANUAAACPAAAAJwAAACgAAACQAAAAkQAAAAQAAAAFAAAAkgAAAJMAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAABMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAAgAAAAMAAAADAAAAHgAAAB8AAAAEAAAABQAAACg0AgA8zwIA8OMAAAAAAAAoNAIASc8CAIDlAAAAAAAAKDQCAGTPAgDY+AAAAAAAAAA0AgB8zwIAKDQCAIzPAgCw9gAAAAAAACg0AgDxzwIA8OMAAAAAAADYNAIAstACAAAAAAACAAAA6OQAAAIAAACQ8AAAAkgAAAA0AgAF0AIA2DQCAFrRAgAAAAAAAgAAALjwAAACAAAAyPAAAAJAAAAoNAIAjNECAEjoAAAAAAAAADQCAHXRAgAoNAIArtECALD2AAAAAAAAKDQCAMXRAgAo8AAAAAAAACg0AgAc0gIA8OMAAAAAAADYNAIAStICAAAAAAACAAAAuPAAAAIAAAAg8QAAAkAAAAA0AgAz0gIA2DQCAHvSAgAAAAAAAgAAALjwAAACAAAASPEAAAJAAAAANAIAZNICACg0AgDq1AIA8OMAAAAAAAAoNAIAodQCALD2AAAAAAAAKDQCAM7SAgDg4wAAAAAAACg0AgCO1AIAIOsAAAAAAAAoNAIAw9QCADDkAAAAAAAAKDQCAPnUAgCA5QAAAAAAANg0AgAK1QIAAAAAAAEAAAAo4AAAA/T//9g0AgA21QIAAAAAAAEAAAAo4AAAA/T//9g0AgBV1QIAAAAAAAEAAAAo4AAAA/T//9g0AgBz1QIAAAAAAAEAAAAo4AAAA/T//yg0AgCQ1QIA0OwAAAAAAADYNAIArdUCAAAAAAACAAAAuOwAAAIAAAAwCgEAAhQAACQAAAAAAAAAuOwAACYBAAABAAAAJwEAACgBAADc////AAAAANz///+47AAAPAAAACkBAAAqAQAA2DQCAMbVAgAAAAAAAgAAALD2AAAD9P//4OwAAAIEAAAoNAIA1tUCANDsAAAAAAAAFAAAAAAAAAC47AAAJgEAAAEAAAAnAQAAKAEAAOz///8AAAAA7P///7jsAAA8AAAAKQEAACoBAAAUAAAAAAAAANDsAAAmAQAA4wAAACsBAAAsAQAAAQAAAOz///8AAAAA7P///9DsAAA8AAAALQEAAC4BAAAAAAAAKDQCAOzVAgBI6AAAAAAAANg0AgAn1gIAAAAAAAIAAABI6AAAAgAAAFDzAAACQAAAADQCAP/VAgAoNAIAQNYCADDoAAAAAAAAKDQCABvoAgCoHgEAAAAAACg0AgAD6QIAmPMAAAAAAAAoNAIAsegCALD2AAAAAAAAKDQCAMroAgCo8wAAAAAAACg0AgDq6AIAsPYAAAAAAAAoNAIAjukCAODzAAAAAAAA2DQCADPpAgAAAAAAAQAAAODjAAAD9P//KDQCAFHpAgCo8wAAAAAAACg0AgD86QIAAPQAAAAAAAAoNAIAzekCAKjzAAAAAAAAKDQCAFbqAgAg9AAAAAAAACg0AgA26gIAqPMAAAAAAAAoNAIAsuoCAED0AAAAAAAAKDQCAIbqAgCo8wAAAAAAACg0AgBg6wIAcPQAAAAAAAAoNAIA6eoCAODjAAAAAAAAKDQCABXrAgCo8wAAAAAAACg0AgCt6wIAqPMAAAAAAAAoNAIAFuwCAKD0AAAAAAAAKDQCAOfrAgCo8wAAAAAAACg0AgCI8gIAqB4BAAAAAAAoNAIAwe8CAND0AAAAAAAAKDQCANjvAgCw9gAAAAAAAEAAAAAAAAAAQEMBALEAAACyAAAAwP///8D///9AQwEAswAAALQAAABAAAAAAAAAAKBDAQDHAQAAyAEAADgAAAD4////oEMBAMkBAADKAQAAwP///8D///+gQwEAywEAAMwBAAAAAAAAKDQCAPHvAgCgQwEAAAAAACg0AgBO8AIA0PQAAAAAAAAoNAIAb/ACAND0AAAAAAAAKDQCAH3xAgCI9QAAAAAAACg0AgCQ8QIAsPYAAAAAAAAoNAIA4PECAIj1AAAAAAAAKDQCADHyAgCI9QAAAAAAACg0AgCX9AIAqB4BAAAAAAAoNAIAqfQCAKD3AAAAAAAAKDQCAMn0AgCw9gAAAAAAADgAAAAAAAAAcEMBAIsAAACMAAAAyP///8j///9wQwEAjQAAAI4AAAAoNAIAAPgCAHBDAQAAAAAA2DQCAGv7AgAAAAAAAgAAALD2AAACAAAAQPYAAAIMAAAANAIAivsCACg0AgC0+wIAgOUAAAAAAADYNAIAFf0CAAAAAAACAAAA6OQAAAIAAAB49gAAAkgAAAA0AgBV/QIAKDQCALT9AgCw9gAAAAAAACg0AgDS/QIAsPYAAAAAAAAoNAIAIv4CALD2AAAAAAAAADQCAIT/AgAoNAIAjAQDALD2AAAAAAAAKDQCAHoEAwAg6wAAAAAAACg0AgC7BAMAsPYAAAAAAAAoNAIA3wQDAODjAAAAAAAAKDQCACgIAwDg4wAAAAAAACg0AgA/CAMA4OMAAAAAAAAoNAIApQgDAAj3AAAAAAAA2DQCAFgIAwAAAAAAAgAAAOjkAAACAAAASPcAAAJIAAAANAIAjggDACg0AgAVCQMAYPcAAAAAAAAANAIANwkDACg0AgDHCQMAgOsAAAAAAAAoNAIAcxEDALD2AAAAAAAAKDQCAEgNAwDg4wAAAAAAAAA0AgDnDAMAADQCABANAwAoNAIAbA0DAIj3AAAAAAAAKDQCABwQAwDI9wAAAAAAACg0AgA4EAMAsPYAAAAAAAAoNAIAWhEDALD2AAAAAAAAKDQCAI4RAwDg4wAAAAAAACg0AgCmEQMA8OMAAAAAAAAoNAIAtREDAPDjAAAAAAAAKDQCAAUSAwDw4wAAAAAAACg0AgATEgMAsPYAAAAAAAAoNAIA4RQDAGDkAAAAAAAAKDQCAAYVAwAI+AAAAAAAACg0AgA+FQMASPgAAAAAAAAoNAIAzBgDAEj4AAAAAAAAKDQCAFkYAwAw5AAAAAAAACg0AgDdGAMASPgAAAAAAAAoNAIA9BgDAEj4AAAAAAAAKDQCABEZAwBI+AAAAAAAACg0AgAiGQMASPgAAAAAAAAoNAIAJxoDAEj4AAAAAAAAKDQCAEoaAwCA5QAAAAAAACg0AgC+GwMAiPcAAAAAAADYNAIAdhoDAAAAAAACAAAAkOUAAAIAAABI8QAAAkgAANg0AgCxGgMAAAAAAAIAAACQ5QAAAgAAAFDzAAACSAAA2DQCAOwaAwAAAAAAAgAAAOjkAAACAAAAWPkAAAJIAAAANAIAIhsDACg0AgDNGwMA4OMAAAAAAAAoNAIAABwDAGD5AAAAAAAA2DQCAOUrAwAAAAAAAQAAAODjAAAD9P//ADQCACEcAwAoNAIAHCoDALD5AAAAAAAAADQCADYqAwAoNAIA+isDAPDjAAAAAAAAKDQCAAosAwCw9gAAAAAAACg0AgAyLAMAkOgAAAAAAABQAAAAAAAAAJDoAADSAAAA0wAAAIAAAAAlAAAAJgAAAIEAAACCAAAAgwAAAIQAAACFAAAAhgAAAIcAAACIAAAAiQAAAIoAAACLAAAAjAAAAI0AAACOAAAAMAAAAAgAAAAJAAAAAQAAAAIAAAADAAAACgAAAAsAAAAMAAAAWgAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAeAAAAHwAAACAAAAAhAAAAIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsP///7D///8AAAAAAAAAALD///+w////sP///7D///+w////sP///wAAAACw////kOgAAAEAAADUAAAA1QAAAI8AAAAnAAAAKAAAAJAAAACRAAAABAAAAAUAAACSAAAAkwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAACAAAAAwAAAAMAAAAeAAAAHwAAAAQAAAAFAAAAKDQCAH0sAwAo/AAAAAAAACg0AgBZLAMA4OMAAAAAAAAoNAIAlywDAODjAAAAAAAAKDQCAKYsAwBI/AAAAAAAANg0AgDALAMAAwAAAAIAAACw8QAAAgAAAODxAAACBAAAKDQCACszAwCY/AAAAAAAACg0AgD2LAMAsPYAAAAAAAAoNAIAPS0DADj8AAAAAAAAKDQCAJotAwCI/AAAAAAAACg0AgBtLQMAsPYAAAAAAAAoNAIASS4DAKj8AAAAAAAAoAAAAAAAAACQ6AAA0gAAANMAAACAAAAAJQAAACYAAACBAAAAggAAAIMAAACEAAAAhQAAAIYAAACHAAAAiAAAAIkAAACKAAAAiwAAAIwAAACNAAAAjgAAADAAAAAIAAAACQAAAAEAAAACAAAAAwAAAAoAAAALAAAADAAAAFoAAAAOAAAADwAAABAAAAARAAAAEgAAABMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGD///9g////AAAAAAAAAABg////YP///2D///9g////YP///2D///8AAAAAYP///5DoAAABAAAA1AAAANUAAACPAAAAJwAAACgAAACQAAAAkQAAAAQAAAAFAAAAkgAAAJMAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAABMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAAgAAAAMAAAADAAAAHgAAAB8AAAAEAAAABQAAACg0AgCULgMAkOgAAAAAAAAoNAIAIy8DALD2AAAAAAAAKDQCAAAvAwD4/gAAAAAAANg0AgCSMAMAAAAAAAIAAAD46gAAAgAAADj/AAACBAAAADQCAPMwAwDYNAIANDEDAAAAAAACAAAA+OoAAAIAAABg/wAAAggAAAA0AgCVMQMA2DQCAOdBAwAAAAAAAgAAAJDoAAACAAAAgOgAAAI4AAD4AQAAAAAAAJDoAADSAAAA0wAAAIAAAAAlAAAAJgAAAIEAAACCAAAAgwAAAIQAAACFAAAAhgAAAIcAAACIAAAAiQAAAIoAAACLAAAAjAAAAI0AAACOAAAAMAAAAAgAAAAJAAAAAQAAAAIAAAADAAAACgAAAAsAAAAMAAAAWgAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAeAAAAHwAAACAAAAAhAAAAIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACP7//wj+//8AAAAAAAAAAAj+//8I/v//CP7//wj+//8I/v//CP7//wAAAAAI/v//kOgAAAEAAADUAAAA1QAAAI8AAAAnAAAAKAAAAJAAAACRAAAABAAAAAUAAACSAAAAkwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAACAAAAAwAAAAMAAAAeAAAAHwAAAAQAAAAFAAAA2DQCAJ4zAwAAAAAAAgAAAPjqAAACAAAAyAEBAAIIAAAANAIA7TMDANg0AgAaNAMAAAAAAAIAAAD46gAAAgAAAPABAQACCAAAADQCAGY0AwAoNAIAqDQDAODjAAAAAAAAKDQCAJA0AwD4AQEAAAAAANg0AgBsNgMAAAAAAAMAAABAAgEAAAAAALD2AAACAAAASAIBAAIMAAAANAIAGTcDAAA0AgCFNgMAKDQCAHc3AwCw9gAAAAAAANg0AgCmPwMAAAAAAAIAAADg4wAAAgAAAEjwAAACIAAAKDQCAMQ4AwDg4wAAAAAAADwAAAAAAAAAuOwAACYBAAABAAAAJwEAACgBAADE////AAAAAMT///+47AAAPAAAACkBAAAqAQAAKDQCAKM7AwC47AAAAAAAACg0AgAIQQMAsPYAAAAAAAAoNAIAUEQDAJDoAAAAAAAAgAAAAAAAAACQ6AAA0gAAANMAAACAAAAAJQAAACYAAACBAAAAggAAAIMAAACEAAAAhQAAAIYAAACHAAAAiAAAAIkAAACKAAAAiwAAAIwAAACNAAAAjgAAADAAAAAIAAAACQAAAAEAAAACAAAAAwAAAAoAAAALAAAADAAAAFoAAAAOAAAADwAAABAAAAARAAAAEgAAABMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAID///+A////AAAAAAAAAACA////gP///4D///+A////gP///4D///8AAAAAgP///5DoAAABAAAA1AAAANUAAACPAAAAJwAAACgAAACQAAAAkQAAAAQAAAAFAAAAkgAAAJMAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAABMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAAgAAAAMAAAADAAAAHgAAAB8AAAAEAAAABQAAACg0AgBtRAMAkOgAAAAAAACEAAAAAAAAAJDoAADSAAAA0wAAAIAAAAAlAAAAJgAAAIEAAACCAAAAgwAAAIQAAACFAAAAhgAAAIcAAACIAAAAiQAAAIoAAACLAAAAjAAAAI0AAACOAAAAMAAAAAgAAAAJAAAAAQAAAAIAAAADAAAACgAAAAsAAAAMAAAAWgAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAeAAAAHwAAACAAAAAhAAAAIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfP///3z///8AAAAAAAAAAHz///98////fP///3z///98////fP///wAAAAB8////kOgAAAEAAADUAAAA1QAAAI8AAAAnAAAAKAAAAJAAAACRAAAABAAAAAUAAACSAAAAkwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAACAAAAAwAAAAMAAAAeAAAAHwAAAAQAAAAFAAAAKDQCAIhEAwBYBwEAAAAAACg0AgDDRAMAsPYAAAAAAAAoNAIA9UQDAFgHAQAAAAAAKDQCAC9FAwBYBwEAAAAAACg0AgBpRQMA+P4AAAAAAADYNAIAGUsDAAAAAAACAAAA4OMAAAIAAABY5QAAAiAAACg0AgDsRwMAsPYAAAAAAAAoNAIAy0kDALD5AAAAAAAAKDQCALBKAwCQ6AAAAAAAACg0AgAuSwMA+OoAAAAAAAAoNAIAMEwDAJDoAAAAAAAAeAEAAAAAAACQ6AAA0gAAANMAAACAAAAAJQAAACYAAACBAAAAggAAAIMAAACEAAAAhQAAAIYAAACHAAAAiAAAAIkAAACKAAAAiwAAAIwAAACNAAAAjgAAADAAAAAIAAAACQAAAAEAAAACAAAAAwAAAAoAAAALAAAADAAAAFoAAAAOAAAADwAAABAAAAARAAAAEgAAABMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIj+//+I/v//AAAAAAAAAACI/v//iP7//4j+//+I/v//iP7//4j+//8AAAAAiP7//5DoAAABAAAA1AAAANUAAACPAAAAJwAAACgAAACQAAAAkQAAAAQAAAAFAAAAkgAAAJMAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAABMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAAgAAAAMAAAADAAAAHgAAAB8AAAAEAAAABQAAAAA0AgB1TAMAADQCAIxMAwAANAIA50wDACg0AgAITQMACPcAAAAAAAAoNAIAFk0DAJDoAAAAAAAA2DQCADdNAwAAAAAAAgAAAOjkAAACAAAAgAoBAAJIAAAANAIAd00DANg0AgCXTQMAAAAAAAIAAADo5AAAAgAAAKgKAQACSAAAADQCANdNAwDYNAIA900DAAAAAAACAAAA6OQAAAIAAADQCgEAAkgAAAA0AgA3TgMA2DQCAFdOAwAAAAAAAgAAAOjkAAACAAAA+AoBAAJIAAAANAIAmE4DANg0AgC5TgMAAAAAAAIAAADo5AAAAgAAACALAQACSAAAADQCAPlOAwDYNAIAGU8DAAAAAAACAAAA6OQAAAIAAABICwEAAkgAAAA0AgBZTwMA2DQCAHlPAwAAAAAAAgAAAOjkAAACAAAAcAsBAAJIAAAANAIAuU8DANg0AgDZTwMAAAAAAAIAAADo5AAAAgAAAJgLAQACSAAAADQCABlQAwDYNAIAOVADAAAAAAACAAAA6OQAAAIAAADACwEAAkgAAAA0AgB5UAMA2DQCAJlQAwAAAAAAAgAAAOjkAAACAAAA6AsBAAJIAAAANAIA2FADANg0AgD4UAMAAAAAAAIAAACQ5QAAAgAAAMjwAAACSAAA2DQCADNRAwAAAAAAAgAAAJDlAAACAAAAIPEAAAJIAADYNAIAblEDAAAAAAACAAAAkOUAAAIAAABQDAEAAkgAAAA0AgCpUQMA2DQCAMBRAwAAAAAAAgAAAJDlAAACAAAAeAwBAAJIAAAANAIA+1EDACg0AgAXUgMAUAoBAAAAAAAoNAIA/1cDAKAMAQAAAAAAKDQCABVYAwCw9gAAAAAAACg0AgAsWAMAoAwBAAAAAAAoNAIAflgDAKAMAQAAAAAAKDQCAD9YAwDgDAEAAAAAAAA0AgBZWAMAKDQCAJFYAwCgDAEAAAAAACg0AgDzWAMAoAwBAAAAAAAoNAIAtFgDABgNAQAAAAAAKDQCANNYAwDg4wAAAAAAACg0AgAKWQMAqPMAAAAAAAAoNAIAMVkDADBDAQAAAAAAKDQCAGBZAwBAQwEAAAAAACg0AgC0WgMAsPYAAAAAAAAoNAIAL1sDAJDoAAAAAAAAKDQCAH5cAwBg5AAAAAAAACg0AgDEXAMAaPwAAAAAAAAAAQAA+AAAAAAAAACY/AAAJAAAAAUAAAAGAAAAJQAAAPECAAAnAAAAKAAAAAQAAAABAAAAXAMAAF0DAAApAAAAKgAAACsAAAAsAAAAAgAAAAsAAACCAgAAAgAAAFkAAACDAgAAAQAAAAEAAAABAAAAAQAAAIgCAADyAgAAAgAAAIkCAADYAgAA2QIAAB4AAABVAAAAigIAAJUAAABMAwAAlgAAAAkAAACXAAAAAQAAAAEAAAABAAAAAQAAAIsCAACMAgAACgAAAFoAAABbAAAAXAAAAF0AAABeAAAAXwAAAGAAAABhAAAAZwAAAGMAAADaAgAABAAAAAUAAAAGAAAAAgAAAGQAAAAGAAAA2wIAAJoAAABlAAAAaAAAAF4DAAD8AAAA9AAAAPz///+Y/AAALQAAAAcAAAAIAAAALgAAAPMCAAAwAAAAMQAAAAYAAAADAAAAXwMAAGADAAAI////CP///wj///8I////AAAAAAAAAAAI////CP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAj///8I////AAAAAAAAAAAAAAAAAAAAAAj///8I////CP///wj///8I////CAAAAAj///+Y/AAAMgAAAAkAAAAKAAAAMwAAAPQCAAA1AAAANgAAADcAAAA4AAAAOQAAADoAAAA7AAAAPAAAAD0AAAA+AAAAPwAAAEAAAABBAAAAQgAAAEMAAABEAAAARQAAAEYAAAAHAAAAYQMAAGIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+P////j////4////+P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AP///wD///8A////AP///wD///8AAAAAAP///5j8AAABAAAAYwMAAGQDAABHAAAACwAAAAwAAABIAAAA9QIAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAABMAAABKAAAASwAAAEwAAABNAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAAgAAAAMAAAADAAAAHgAAAB8AAAAEAAAABQAAAAABAAD4AAAAAAAAAIj8AAAkAAAABQAAAAYAAAAlAAAA9gIAACcAAAAoAAAABAAAAAEAAABlAwAAZgMAACkAAAAqAAAAKwAAACwAAAACAAAACwAAAAcAAAACAAAAaQAAAIMCAAABAAAAAQAAAAEAAAABAAAAiAIAAPICAAACAAAAkAIAAPcCAAD4AgAAHgAAAFUAAACKAgAAlQAAAGcDAACcAAAADQAAAJ0AAAD8AAAA9AAAAPz///+I/AAALQAAAAcAAAAIAAAALgAAAPkCAAAwAAAAMQAAAAYAAAADAAAAaAMAAGkDAAAI////CP///wj///8I////AAAAAAAAAAAI////CP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAj///8I////AAAAAAAAAAAAAAAAAAAAAAj///8I////CP///wj///8I////CAAAAAj///+I/AAAMgAAAAkAAAAKAAAAMwAAAPoCAAA1AAAANgAAADcAAAA4AAAAOQAAADoAAAA7AAAAPAAAAD0AAAA+AAAAPwAAAEAAAABBAAAAQgAAAEMAAABEAAAARQAAAEYAAAAHAAAAagMAAGsDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+P////j////4////+P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AP///wD///8A////AP///wD///8AAAAAAP///4j8AAABAAAAbAMAAG0DAABHAAAACwAAAAwAAABIAAAA+wIAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAABMAAABKAAAASwAAAEwAAABNAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAAgAAAAMAAAADAAAAHgAAAB8AAAAEAAAABQAAAAAAAAAAAQAA+AAAAAAAAAA4/AAAJAAAAAUAAAAGAAAAJQAAACYAAAAnAAAAKAAAAAQAAAABAAAADgAAAA8AAAApAAAAKgAAACsAAAAsAAAAAgAAAAEAAAAHAAAAAgAAAAUAAAD8AAAA9AAAAPz///84/AAALQAAAAcAAAAIAAAALgAAAC8AAAAwAAAAMQAAAAYAAAADAAAAEAAAABEAAAAI////CP///wj///8I////AAAAAAAAAAAI////CP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAj///8I////AAAAAAAAAAAAAAAAAAAAAAj///8I////CP///wj///8I////CAAAAAj///84/AAAMgAAAAkAAAAKAAAAMwAAADQAAAA1AAAANgAAADcAAAA4AAAAOQAAADoAAAA7AAAAPAAAAD0AAAA+AAAAPwAAAEAAAABBAAAAQgAAAEMAAABEAAAARQAAAEYAAAAHAAAAEgAAABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+P////j////4////+P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AP///wD///8A////AP///wD///8AAAAAAP///zj8AAABAAAAFAAAABUAAABHAAAACwAAAAwAAABIAAAASQAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAABMAAABKAAAASwAAAEwAAABNAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAAgAAAAMAAAADAAAAHgAAAB8AAAAEAAAABQAAAAABAAD4AAAAAAAAAEj8AABOAAAADQAAAA4AAABPAAAAUAAAACcAAAAoAAAABAAAAAEAAAAWAAAAFwAAACkAAAAqAAAAKwAAACwAAAACAAAAAgAAAAcAAAD8AAAA9AAAAPz///9I/AAAUQAAAA8AAAAQAAAAUgAAAFMAAAAwAAAAMQAAAAYAAAADAAAAGAAAABkAAAAI////CP///wj///8I////AAAAAAAAAAAI////CP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAj///8I////AAAAAAAAAAAAAAAAAAAAAAj///8I////CP///wj///8I////CAAAAAj///9I/AAAVAAAABEAAAASAAAAVQAAAFYAAAA1AAAANgAAADcAAAA4AAAAOQAAADoAAAA7AAAAPAAAAD0AAAA+AAAAPwAAAEAAAABBAAAAQgAAAEMAAABEAAAARQAAAEYAAAAHAAAAGgAAABsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+P////j////4////+P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AP///wD///8A////AP///wD///8AAAAAAP///0j8AAABAAAAHAAAAB0AAABXAAAAEwAAABQAAABYAAAAWQAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAABMAAABKAAAASwAAAEwAAABNAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAAgAAAAMAAAADAAAAHgAAAB8AAAAEAAAABQAAAAABAAD4AAAAAAAAALDxAABaAAAAFQAAABYAAABbAAAAXAAAAF0AAABeAAAACAAAAAQAAAAeAAAAHwAAAAj///8I////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACP///wj///8AAAAAAAAAAAAAAAAAAAAACP///wj///8I////CP///wj///8IAAAACP///7DxAABfAAAAFwAAABgAAABgAAAAYQAAADUAAAA2AAAANwAAADgAAABiAAAAYwAAADsAAAA8AAAAPQAAAD4AAAA/AAAAQAAAAGQAAABlAAAAQwAAAEQAAABmAAAAZwAAAAkAAAAgAAAAIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4////+P////j////4////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wAAAAAA////sPEAAAEAAAAiAAAAIwAAAGgAAAAZAAAAGgAAAGkAAABqAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAAEoAAABLAAAATAAAAE0AAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAACAAAAAwAAAAMAAAAeAAAAHwAAAAQAAAAFAAAA/AAAAPQAAAAAAAAA4PEAAGsAAAAbAAAAHAAAAGwAAABtAAAAbgAAAG8AAAAKAAAABQAAACQAAAAlAAAADP///wz///8AAAAAAAAAAAAAAAAAAAAADP///wz///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM////DP///wz///8M////DP///wgAAAAM////4PEAAHAAAAAdAAAAHgAAAHEAAAByAAAANQAAADYAAAA3AAAA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AAAAACg0AgAUmwMAsPYAAAAAAAAoNAIAaaIDALD2AAAAAAAAKDQCAAmvAwAQKwEAAAAAANg0AgA0owMAAAAAAAEAAADg4wAAA/T//9g0AgBNowMAAAAAAAIAAADw6wAAAgAAAEgrAQAChAAAADQCAGqjAwAoNAIAVaYDANDsAAAAAAAA2DQCABKnAwAAAAAAAgAAAID5AAACAAAASCsBAAIkAAAoNAIAS6cDALD2AAAAAAAAKDQCAFaoAwB4/AAAAAAAACg0AgDqrgMAqDgBAAAAAAAoNAIAvq4DAKg4AQAAAAAAKDQCAH2uAwCoOAEAAAAAACg0AgAYrgMA4OMAAAAAAAAoNAIAmqwDAPArAQAAAAAA2DQCAMGsAwAAAAAAAQAAALD2AAAD9P//dAAAAGwAAAAAAAAAOPwAACQAAAAFAAAABgAAACUAAAAmAAAAJwAAACgAAAAEAAAAAQAAAA4AAAAPAAAAKQAAACoAAAArAAAALAAAAAIAAAABAAAABwAAAAIAAAAFAAAAcAAAAGgAAAD8////OPwAAC0AAAAHAAAACAAAAC4AAAAvAAAAMAAAADEAAAAGAAAAAwAAABAAAAARAAAAlP///5T///+U////lP///wAAAAAAAAAAlP///5T///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU////lP///wAAAAAAAAAAAAAAAAAAAACU////lP///5T///+U////lP///wgAAACU////OPwAADIAAAAJAAAACgAAADMAAAA0AAAANQAAADYAAAA3AAAAOAAAADkAAAA6AAAAOwAAADwAAAA9AAAAPgAAAD8AAABAAAAAQQAAAEIAAABDAAAARAAAAEUAAABGAAAABwAAABIAAAATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj////4////+P////j///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjP///4z///+M////jP///4z///+M////AAAAAIz///84/AAAAQAAABQAAAAVAAAARwAAAAsAAAAMAAAASAAAAEkAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAATAAAASgAAAEsAAABMAAAATQAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAAIAAAADAAAAAwAAAB4AAAAfAAAABAAAAAUAAAB0AAAAbAAAAAAAAABI/AAATgAAAA0AAAAOAAAATwAAAFAAAAAnAAAAKAAAAAQAAAABAAAAFgAAABcAAAApAAAAKgAAACsAAAAsAAAAAgAAAAIAAAAHAAAAcAAAAGgAAAD8////SPwAAFEAAAAPAAAAEAAAAFIAAABTAAAAMAAAADEAAAAGAAAAAwAAABgAAAAZAAAAlP///5T///+U////lP///wAAAAAAAAAAlP///5T///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU////lP///wAAAAAAAAAAAAAAAAAAAACU////lP///5T///+U////lP///wgAAACU////SPwAAFQAAAARAAAAEgAAAFUAAABWAAAANQAAADYAAAA3AAAAOAAAADkAAAA6AAAAOwAAADwAAAA9AAAAPgAAAD8AAABAAAAAQQAAAEIAAABDAAAARAAAAEUAAABGAAAABwAAABoAAAAbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj////4////+P////j///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjP///4z///+M////jP///4z///+M////AAAAAIz///9I/AAAAQAAABwAAAAdAAAAVwAAABMAAAAUAAAAWAAAAFkAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAATAAAASgAAAEsAAABMAAAATQAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAAIAAAADAAAAAwAAAB4AAAAfAAAABAAAAAUAAAB0AAAAbAAAAAAAAACw8QAAWgAAABUAAAAWAAAAWwAAAFwAAABdAAAAXgAAAAgAAAAEAAAAHgAAAB8AAACU////lP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJT///+U////AAAAAAAAAAAAAAAAAAAAAJT///+U////lP///5T///+U////CAAAAJT///+w8QAAXwAAABcAAAAYAAAAYAAAAGEAAAA1AAAANgAAADcAAAA4AAAAYgAAAGMAAAA7AAAAPAAAAD0AAAA+AAAAPwAAAEAAAABkAAAAZQAAAEMAAABEAAAAZgAAAGcAAAAJAAAAIAAAACEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+P////j////4////+P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACM////jP///4z///+M////jP///4z///8AAAAAjP///7DxAAABAAAAIgAAACMAAABoAAAAGQAAABoAAABpAAAAagAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAABMAAABKAAAASwAAAEwAAABNAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAAgAAAAMAAAADAAAAHgAAAB8AAAAEAAAABQAAAHAAAABoAAAAAAAAAODxAABrAAAAGwAAABwAAABsAAAAbQAAAG4AAABvAAAACgAAAAUAAAAkAAAAJQAAAJj///+Y////AAAAAAAAAAAAAAAAAAAAAJj///+Y////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmP///5j///+Y////mP///5j///8IAAAAmP///+DxAABwAAAAHQAAAB4AAABxAAAAcgAAADUAAAA2AAAANwAAADgAAABzAAAAdAAAADsAAAA8AAAAPQAAAD4AAAA/AAAAQAAAAHUAAAB2AAAAQwAAAEQAAABmAAAAZwAAAAsAAAAmAAAAJwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4////+P////j////4////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AQAAAAEAAAABAAAAIAAAACEAAAACAAAAIgAAACMAAAADAAAAAwAAAAQAAABoAAAAYAAAAAAAAABA4AAAJAAAAAUAAAAGAAAAJQAAACYAAAAnAAAAKAAAAAQAAAABAAAABgAAAAcAAAApAAAAKgAAACsAAAAsAAAAAgAAAAEAAAAHAAAAAQAAAAUAAABkAAAAXAAAAPz///9A4AAALQAAAAcAAAAIAAAALgAAAC8AAAAwAAAAMQAAAAYAAAADAAAACAAAAAkAAACg////oP///6D///+g////AAAAAAAAAACg////oP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKD///+g////AAAAAAAAAAAAAAAAAAAAAKD///+g////oP///6D///+g////CAAAAKD///9A4AAAMgAAAAkAAAAKAAAAMwAAADQAAAA1AAAANgAAADcAAAA4AAAAOQAAADoAAAA7AAAAPAAAAD0AAAA+AAAAPwAAAEAAAABBAAAAQgAAAEMAAABEAAAARQAAAEYAAAAHAAAACgAAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+P////j////4////+P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACY////mP///5j///+Y////mP///5j///8AAAAAmP///0DgAAABAAAADAAAAA0AAABHAAAACwAAAAwAAABIAAAASQAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAABMAAABKAAAASwAAAEwAAABNAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAAgAAAAMAAAADAAAAHgAAAB8AAAAEAAAABQAAALxKAQAA1gAAwNgAAHjbAAAU3AAAJN0AANjdAAB03gAAhN8AALTZAADE2gAAGNkAAPzWAAAM2AAAYNYAALhLAQDITAEAHEsBAOA2AQDwNwEACAAAAAAAAAAo4AAAegAAACEAAAAiAAAAewAAAHwAAAA1AAAANgAAADcAAAA4AAAAcwAAAHQAAAA7AAAAPAAAAD0AAAA+AAAA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RgAAAA0BAAAOAQAAAAAAAJDxAAA8AAAAbwEAAHABAAAAAAAAYPEAADwAAABxAQAAcgEAAA8BAACTAQAAsgAAALMAAABzAQAAAAAAAHDxAAABAAAAdAEAAHUBAACUAQAAtAAAALUAAACVAQAAlgEAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAABMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAAgAAAAMAAAADAAAAHgAAAB8AAAAEAAAABQAAAAAAAACA8QAAPAAAAPEAAAB2AQAARQAAAKkAAABGAAAARwAAAAQAAADzAAAA9AAAAPUAAAB+AAAAIQEAABABAAAMAAAABAAAAAAAAACw8QAAWgAAABUAAAAWAAAAWwAAAFwAAABdAAAAXgAAAAgAAAAEAAAAHgAAAB8AAAD8/////P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz////8////AAAAAAAAAAAAAAAAAAAAAPz////8/////P////z////8////CAAAAPz///+w8QAAXwAAABcAAAAYAAAAYAAAAGEAAAA1AAAANgAAADcAAAA4AAAAYgAAAGMAAAA7AAAAPAAAAD0AAAA+AAAAPwAAAEAAAABkAAAAZQAAAEMAAABEAAAAZgAAAGcAAAAJAAAAIAAAACEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+P////j////4////+P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD0////9P////T////0////9P////T///8AAAAA9P///7DxAAABAAAAIgAAACMAAABoAAAAGQAAABoAAABpAAAAagAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAABMAAABKAAAASwAAAEwAAABNAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAAgAAAAMAAAADAAAAHgAAAB8AAAAEAAAABQAAAAwAAAAEAAAAAAAAAODxAABrAAAAGwAAABwAAABsAAAAbQAAAG4AAABvAAAACgAAAAUAAAAkAAAAJQAAAPz////8////AAAAAAAAAAAAAAAAAAAAAPz////8////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/P////z////8/////P////z///8IAAAA/P///+DxAABwAAAAHQAAAB4AAABxAAAAcgAAADUAAAA2AAAANwAAADgAAABzAAAAdAAAADsAAAA8AAAAPQAAAD4AAAA/AAAAQAAAAHUAAAB2AAAAQwAAAEQAAABmAAAAZwAAAAsAAAAmAAAAJwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4////+P////j////4////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT////0////9P////T////0////9P///wAAAAD0////4PEAAAEAAAAoAAAAKQAAAHcAAAAfAAAAIAAAAHgAAAB5AAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAAEoAAABLAAAATAAAAE0AAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAACAAAAAwAAAAMAAAAeAAAAHwAAAAQAAAAFAAAAFAAAAAAAAAAQ8gAAJgEAAOMAAAB3AQAAeAEAABEBAADs////AAAAAOz///8Q8gAAPAAAAHkBAAB6AQAAJAAAAAAAAAAg8gAAewEAABIBAAB8AQAAfQEAAOz///8g8gAAfgEAAH8BAACAAQAAEwEAAIEBAACXAQAA3P///wAAAADc////IPIAADwAAACCAQAAgwEAAPyIAQBM8gAAbPIAADyJAQAUAAAAAAAAAJjyAAAmAQAA4wAAAIQBAACFAQAAFAEAAOz///8AAAAA7P///5jyAAA8AAAAhgEAAIcBAABkiQEA7PIAALTyAADU8gAAEPMAAIiJAQAAAAAASOgAAAEAAACsAAAAiAEAAAEAAAABAAAA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BwAAAAIAAAAFAAAADAAAAAQAAAD8////OPwAAC0AAAAHAAAACAAAAC4AAAAvAAAAMAAAADEAAAAGAAAAAwAAABAAAAARAAAA+P////j////4////+P///wAAAAAAAAAA+P////j///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4////+P///wAAAAAAAAAAAAAAAAAAAAD4////+P////j////4////+P///wgAAAD4////OPwAADIAAAAJAAAACgAAADMAAAA0AAAANQAAADYAAAA3AAAAOAAAADkAAAA6AAAAOwAAADwAAAA9AAAAPgAAAD8AAABAAAAAQQAAAEIAAABDAAAARAAAAEUAAABGAAAABwAAABIAAAATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj////4////+P////j///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8P////D////w////8P////D////w////AAAAAPD///84/AAAAQAAABQAAAAVAAAARwAAAAsAAAAMAAAASAAAAEkAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAATAAAASgAAAEsAAABMAAAATQAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAAIAAAADAAAAAwAAAB4AAAAfAAAABAAAAAUAAABgLAAAqA0BACgRAQA4FAEA+BYBALAZAQBMGgEAXBsBABAcAQCsHAEAvB0BAOwXAQD8GAEAUBcBADQVAQBEFgEAmBQBAHASAQCAEwEA1BEBAGQPAQB0EAEAyA4BAEguAABYLwAArC0AAOA2AQDwNwEAAAAAAKj8AAA8AAAAkAAAAFkCAAAAAAAAuPwAADwAAACQAAAAWgIAAAAAAAAI/wAAPAAAAFsCAABcAgAAEwEAABQBAABdAgAASgAAAF4CAABOAgAAHQAAAEi3AQDU/AAARP4AALi4AQCgAAAAAAAAAOj+AABfAgAAYAIAAIAAAAAlAAAAJgAAAE8CAABQAgAAgwAAAIQAAACFAAAAhgAAAIcAAACIAAAA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SPwAAE4AAAANAAAADgAAAE8AAABQAAAAJwAAACgAAAAEAAAAAQAAABYAAAAXAAAAKQAAACoAAAArAAAALAAAAAIAAAACAAAABwAAAAwAAAAEAAAA/P///0j8AABRAAAADwAAABAAAABSAAAAUwAAADAAAAAxAAAABgAAAAMAAAAYAAAAGQAAAPj////4////+P////j///8AAAAAAAAAAPj////4////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+P////j///8AAAAAAAAAAAAAAAAAAAAA+P////j////4////+P////j///8IAAAA+P///0j8AABUAAAAEQAAABIAAABVAAAAVgAAADUAAAA2AAAANwAAADgAAAA5AAAAOgAAADsAAAA8AAAAPQAAAD4AAAA/AAAAQAAAAEEAAABCAAAAQwAAAEQAAABFAAAARgAAAAcAAAAaAAAAGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4////+P////j////4////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPD////w////8P////D////w////8P///wAAAADw////SPwAAAEAAAAcAAAAHQAAAFcAAAATAAAAFAAAAFgAAABZAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAAEoAAABLAAAATAAAAE0AAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAACAAAAAwAAAAMAAAAeAAAAHwAAAAQAAAAFAAAAZM8BADwqAACEJAEA9CUBAKwrAADU0AEAQAAAAAAAAACADAEAzAIAAM0CAACAAAAAJQAAACYAAACBAAAAggAAAIMAAACEAAAAhQAAAIYAAACHAAAAiAAAAIkAAACKAAAAiwAAAIwAAACNAAAAjgAAADAAAAAIAAAACQAAAAEAAAACAAAAAwAAAB4CAAALAAAAHwIAAFoAAAAOAAAADwAAABAAAAARAAAAEgAAABMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAA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CQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAABMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAAgAAAAMAAAADAAAAHgAAAB8AAAAEAAAABQAAABAAAAAAAAAA4CsBAMkAAABMBAAATQQAAPD///8AAAAA8P///+ArAQA8AAAATgQAAE8EAAB0AAAAbAAAAAAAAABANgEAJAAAAAUAAAAGAAAAJQAAACYAAAAnAAAAKAAAAAQAAAABAAAAUAQAAFEEAAApAAAAKgAAACsAAAAsAAAAAgAAAAEAAAAHAAAAAwAAAAUAAABwAAAAaAAAAPz///9ANgEALQAAAAcAAAAIAAAALgAAAC8AAAAwAAAAMQAAAAYAAAADAAAAUgQAAFMEAACU////lP///5T///+U////AAAAAAAAAACU////lP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJT///+U////AAAAAAAAAAAAAAAAAAAAAJT///+U////lP///5T///+U////CAAAAJT///9ANgEAMgAAAAkAAAAKAAAAMwAAADQAAAA1AAAANgAAADcAAAA4AAAAOQAAADoAAAA7AAAAPAAAAD0AAAA+AAAAPwAAAEAAAABBAAAAQgAAAEMAAABEAAAARQAAAEYAAAAHAAAAVAQAAFUEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+P////j////4////+P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACM////jP///4z///+M////jP///4z///8AAAAAjP///0A2AQABAAAAVgQAAFcEAABHAAAACwAAAAwAAABIAAAASQAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAABMAAABKAAAASwAAAEwAAABNAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAAgAAAAMAAAADAAAAHgAAAB8AAAAEAAAABQAAAAwJAgAYLAEA2C4BAJAxAQAsMgEAPDMBAPAzAQCMNAEAnDUBAMwvAQDcMAEAMC8BABQtAQAkLgEAeCwBAAgKAgAYCwIAbAkCAOA2AQDwNwEAEAAAAAgAAAAAAAAAYDYBAGoDAACeAQAAnwEAAGsDAABsAwAAbQMAAG4DAACKAAAAygAAAFgEAABZBAAA+P////j///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4////+P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4////+P////j////4////+P///wgAAAD4////YDYBAG8DAACgAQAAoQEAAHADAABxAwAANQAAADYAAAA3AAAAOAAAAHMAAAB0AAAAOwAAADwAAAA9AAAAPgAAAHIDAABzAwAAZAAAAGUAAABDAAAARAAAAGYAAABnAAAAiwAAAFoEAABbBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj////4////+P////j///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8P////D////w////8P////D////w////AAAAAPD///9gNgEAAQAAAFwEAABdBAAAdAMAAKIBAACjAQAAdQMAAHYDAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAATAAAASgAAAEsAAABMAAAATQAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAAIAAAADAAAAAwAAAB4AAAAfAAAABAAAAAUAAAAQAAAACAAAAAAAAABQNgEAdwMAAKQBAAClAQAAeAMAAHkDAAB6AwAAewMAAAwAAAANAAAAXgQAAF8EAAD4////AAAAAAAAAAAAAAAA+P////j///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj////4////+P////j////4////CAAAAPj///9QNgEAfAMAAKYBAACnAQAAfQMAAH4DAAA1AAAANgAAADcAAAA4AAAAcwAAAHQAAAA7AAAAPAAAAD0AAAA+AAAAPwAAAEAAAABkAAAA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0L7RgdGMINC/0LXRgNC10LTQsNGC0Ywg0LfQvdCw0YfQtdC90LjQtSDQutC70Y7Rh9GDICclcycg0LjQty3Qt9CwINC90LXRgdC+0L7RgtCy0LXRgtGB0YLQstC40Y8g0YTQsNC60YLQuNGH0LXRgdC60L7Qs9C+INC60L7Qu9C40YfQtdGB0YLQstCwINC/0LDRgNCw0LzQtdGC0YDQvtCyKCVkKSDQvtC20LjQtNCw0LXQvNC+0LzRgyglZCkA0J7QqNCY0JHQmtCQX9Ca0J7Qm9CY0KfQldCh0KLQktCeX9Cf0JDQoNCQ0JzQldCi0KDQntCSANCe0KjQmNCR0JrQkCDQndC1INGD0LTQsNC70L7RgdGMINC/0LXRgNC10LTQsNGC0Ywg0LfQvdCw0YfQtdC90LjQtSDQutC70Y7Rh9GDICclcycg0LjQty3Qt9CwINC90LXRgdC+0L7RgtCy0LXRgtGB0YLQstC40Y8g0YTQsNC60YLQuNGH0LXRgdC60L7Qs9C+INC60L7Qu9C40YfQtdGB0YLQstCwINC/0LDRgNCw0LzQtdGC0YDQvtCyKCVkKSDQvtC20LjQtNCw0LXQvNC+0LzRgyglZC0lZCkA0J7QqNCY0JHQmtCQX9Ca0J7Qm9CY0KfQldCh0KLQktCeX9Cf0JDQoNCQ0JzQldCi0KDQntCSX9CU0JjQkNCf0JDQl9Ce0J0A0J7QqNCY0JHQmtCQINCd0LUg0YPQtNCw0LvQvtGB0Ywg0LTQvtCx0LDQstC40YLRjCDQuiDRgNC+0LTQuNGC0LXQu9GOICclcycg0YDQtdCx0ZHQvdC60LAgJyVzJyDQuNC3LdC30LAg0LjRhSDQvtGC0YHRg9GC0YHRgtCy0LjRjwDQntCo0JjQkdCa0JBf0JTQntCR0JDQktCb0JXQndCY0JVf0KPQl9Cb0JAA0J7QqNCY0JHQmtCQINCd0LUg0YPQtNCw0LvQvtGB0Ywg0LLRi9GB0YLQsNCy0LjRgtGMINC80LDRgdC60YMgJyVkJyDRg9C30LvRgyAnJXMnINC40Lct0LfQsCDQtdCz0L4g0L7RgtGB0YPRgtGB0YLQstC40Y8A0J7QqNCY0JHQmtCQX9Cc0JDQodCa0JBf0KPQl9Cb0JAA0J7QqNCY0JHQmtCQINCd0LUg0YPQtNCw0LvQvtGB0Ywg0L3QsNC30L3QsNGH0LjRgtGMINGD0LfQu9GDICclcycg0LzQsNGC0LXRgNC40LDQuyAnJXMnINC40Lct0LfQsCDQvtGC0YHRg9GC0YHRgtCy0LjRjyDRg9C30LvQsADQntCo0JjQkdCa0JBf0KPQl9CV0Jtf0JzQkNCi0JXQoNCY0JDQmwDQntCo0JjQkdCa0JAg0J3QtSDRg9C00LDQu9C+0YHRjCDQv9C+0LvRg9GH0LjRgtGMINC/0L7Qt9C40YbQuNGOINGD0LfQu9CwICclcycgKNC90LDQt9C90LDRh9C40YLRjCDQtdGRINC10LzRgykg0LjQty3Qt9CwINC10LPQviDQvtGC0YHRg9GC0YHRgtCy0LjRjwDQntCo0JjQkdCa0JBf0KPQl9CV0Jtf0J/QntCX0JjQptCY0K8A0J7QqNCY0JHQmtCQINCd0LUg0YPQtNCw0LvQvtGB0Ywg0L/QvtC70YPRh9C40YLRjCDQstGA0LDRidC10L3QuNC1INGD0LfQu9CwICclcycgKNC90LDQt9C90LDRh9C40YLRjCDQstGA0LDRidC10L3QuNC1INGD0LfQu9GDKSDQuNC3LdC30LAg0LXQs9C+INC+0YLRgdGD0YLRgdGC0LLQuNGPANCe0KjQmNCR0JrQkF/Qo9CX0JXQm1/QktCg0JDQqdCV0J3QmNCVANCe0KjQmNCR0JrQkCDQndC1INGD0LTQsNC70L7RgdGMINC90LDQt9C90LDRh9C40YLRjCDQvNCw0YLQtdGA0LjQsNC70YMgJyVzJyDQstC10YDRiNC40L3QvdGL0LkoJWxsZCkg0Lgg0YTRgNCw0LPQvNC10L3RgtC90YvQuSglbGxkKSDRiNC10LnQtNC10YDRiyDQuNC3LdC30LAg0L7RgtGB0YPRgtGB0YLQstC40Y8g0LzQsNGC0LXRgNC40LDQu9CwANCe0KjQmNCR0JrQkF/QnNCQ0KLQldCg0JjQkNCbX9Co0JXQmdCU0JXQoNCrANCe0KjQmNCR0JrQkCDQndC1INGD0LTQsNC70L7RgdGMINC90LDQt9C90LDRh9C40YLRjCDQvNCw0YLQtdGA0LjQsNC70YMgJyVzJyDRjtC90LjRhNC+0YDQvCAnJXMnINC40Lct0LfQsCDQvtGC0YHRg9GC0YHRgtCy0LjRjyDQvNCw0YLQtdGA0LjQsNC70LAA0J7QqNCY0JHQmtCQX9Cc0JDQotCV0KDQmNCQ0Jtf0K7QndCY0KTQntCg0JwA0J7QqNCY0JHQmtCQINCd0LUg0YPQtNCw0LvQvtGB0Ywg0L/QvtC70YPRh9C40YLRjCAo0LfQsNC00LDRgtGMKSDRgdC+0LTQtdGA0LbQuNC80L7QtSDRgNC10YHRg9GA0YHQsCAnJXMnINC40Lct0LfQsCDQtdCz0L4g0L7RgtGB0YPRgtGB0YLQstC40Y8A0J7QqNCY0JHQmtCQX9Cg0JXQodCj0KDQoQDQntCo0JjQkdCa0JAg0J3QtSDRg9C00LDQu9C+0YHRjCDQt9Cw0LTQsNGC0Ywg0LzQsNGC0LXRgNC40LDQu9GDICclcycg0YLQtdC60YHRgtGD0YDRgyAnJXMnINC40Lct0LfQsCDQuNGFINC+0YLRgdGD0YLRgdGC0LLQuNGPANCe0KjQmNCR0JrQkF/QnNCQ0KLQldCg0JjQkNCbX9Ci0JXQmtCh0KLQo9Cg0JAAY2FtZXJhLmNsZWFyQ29sb3IAY2FtZXJhLm5vZGVBdFBvc2l0aW9uAGNhbWVyYS5wb3NpdGlvbgBjYW1lcmEucm90YXRpb24AbW91c2UucG9zaXRpb24AbW91c2UucHJlc3NlZEJ1dHRvbnMAbm9kZXMuY3JlYXRlTm9kZQBub2Rlcy5jcmVhdGVTcGhlcmUAbm9kZXMubm9kZS5leGlzdHMAbm9kZXMubm9kZS5hZGRDaGlsZABub2Rlcy5ub2RlLm1hc2sAbm9kZXMubm9kZS5tYXRlcmlhbABub2Rlcy5ub2RlLnBvc2l0aW9uAG5vZGVzLm5vZGUucm90YXRpb24AbWF0ZXJpYWxzLmNyZWF0ZU1hdGVyaWFsAG1hdGVyaWFscy5tYXRlcmlhbC5zaGFkZXJzAG1hdGVyaWFscy5tYXRlcmlhbC51bmlmb3JtAG1hdGVyaWFscy5tYXRlcmlhbC50ZXh0dXJlAHdpbmRvdy5zaXplAHJlc291cmNlcy5jcmVhdGVSZXNvdXJjZQByZXNvdXJjZXMucmVzb3VyY2UuY29udGVudHMAcmVzb3VyY2VzLnJlc291cmNlLmV4aXN0cwDQntCo0JjQkdCa0JAg0J3QtSDRg9C00LDQu9C+0YHRjCDRgdC+0LfQtNCw0YLRjCDQvtC60L3QviBTREw6ICclcycA0J7QqNCY0JHQmtCQX9Ce0JrQndCeX1NETADQntCo0JjQkdCa0JAg0J7RgtGB0YPRgtGB0YLQstGD0LXRgiDQutC70LjQtdC90YIsINC+0YLQstC10YfQsNGO0YnQuNC5INC30LAg0LrQu9GO0YcgJyVzJwDQntCo0JjQkdCa0JAg0J3QtSDRg9C00LDQu9C+0YHRjCDQvtCx0YDQsNCx0L7RgtCw0YLRjCDQutC70Y7RhyAnJXMnLCDQv9C+0YLQvtC80YMg0YfRgtC+INC60LvQuNC10L3RgiDQvdC1INGB0L7QtNC10YDQttC40YIg0YTRg9C90LrRhtC40Lgg0L7QsdGA0LDRgtC90L7Qs9C+INCy0YvQt9C+0LLQsABOM29zZzhDYWxsYmFja0UATjVtb3RvcjVNb3VzZUUAR1VJRXZlbnRIYW5kbGVyAEV2ZW50SGFuZGxlcgBOb2RlQ2FsbGJhY2sARHJhd2FibGVFdmVudENhbGxiYWNrAENhbGxiYWNrANCe0KjQmNCR0JrQkCDQndC1INGD0LTQsNC70L7RgdGMINGA0LDQt9C+0LHRgNCw0YLRjCDQvNC+0LTQtdC70Ywg0LTQu9GPINGB0L7Qt9C00LDQvdC40Y8g0YPQt9C70LAgJyVzJy4g0KHQvtC30LTQsNC9INC/0YPRgdGC0L7QuSDRg9C30LXQuwDQntCo0JjQkdCa0JBf0KPQl9CV0Jtf0JzQntCU0JXQm9CsX9Cg0JDQl9CR0J7QoADQntCo0JjQkdCa0JAg0J3QtSDRg9C00LDQu9C+0YHRjCDQvdCw0LnRgtC4INC+0LHRgNCw0LHQvtGC0YfQuNC60LAg0LzQvtC00LXQu9C4INC00LvRjyDRgdC+0LfQtNCw0L3QuNGPINGD0LfQu9CwICclcycuINCh0L7Qt9C00LDQvSDQv9GD0YHRgtC+0Lkg0YPQt9C10LsA0J7QqNCY0JHQmtCQX9Cj0JfQldCbX9Cc0J7QlNCV0JvQrF/QntCR0KDQkNCR0J7QotCn0JjQmgBONW1vdG9yMTVWQk9TZXR1cFZpc2l0b3JFAE5vZGVWaXNpdG9yAE5TdDNfXzIxMF9fZnVuY3Rpb242X19mdW5jSVpONW1vdG9yN0V4YW1wbGVDMUVSS05TXzNtYXBJTlNfMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRVNBX05TXzRsZXNzSVNBX0VFTlM4X0lOU180cGFpcklLU0FfU0FfRUVFRUVFRVVsUlNFX1JLTlNfNnZlY3RvcklTQV9OUzhfSVNBX0VFRUVFX05TOF9JU1FfRUVGU05fU0tfU1BfRUVFAE5TdDNfXzIxMF9fZnVuY3Rpb242X19iYXNlSUZOU182dmVjdG9ySU5TXzEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVOUzZfSVM4X0VFRUVSS1M4X1JLU0FfRUVFACVmAFpONW1vdG9yN0V4YW1wbGVDMUVSS05TdDNfXzIzbWFwSU5TMV8xMmJhc2ljX3N0cmluZ0ljTlMxXzExY2hhcl90cmFpdHNJY0VFTlMxXzlhbGxvY2F0b3JJY0VFRUVTOF9OUzFfNGxlc3NJUzhfRUVOUzZfSU5TMV80cGFpcklLUzhfUzhfRUVFRUVFRVVsUlNDX1JLTlMxXzZ2ZWN0b3JJUzhfTlM2X0lTOF9FRUVFRV8ATlN0M19fMjEwX19mdW5jdGlvbjZfX2Z1bmNJWk41bW90b3I3RXhhbXBsZUMxRVJLTlNfM21hcElOU18xMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFU0FfTlNfNGxlc3NJU0FfRUVOUzhfSU5TXzRwYWlySUtTQV9TQV9FRUVFRUVFVWxSU0VfUktOU182dmVjdG9ySVNBX05TOF9JU0FfRUVFRUUwX05TOF9JU1FfRUVGU05fU0tfU1BfRUVFAFpONW1vdG9yN0V4YW1wbGVDMUVSS05TdDNfXzIzbWFwSU5TMV8xMmJhc2ljX3N0cmluZ0ljTlMxXzExY2hhcl90cmFpdHNJY0VFTlMxXzlhbGxvY2F0b3JJY0VFRUVTOF9OUzFfNGxlc3NJUzhfRUVOUzZfSU5TMV80cGFpcklLUzhfUzhfRUVFRUVFRVVsUlNDX1JLTlMxXzZ2ZWN0b3JJUzhfTlM2X0lTOF9FRUVFRTBfAE5TdDNfXzIxMF9fZnVuY3Rpb242X19mdW5jSVpONW1vdG9yN0V4YW1wbGVDMUVSS05TXzNtYXBJTlNfMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRVNBX05TXzRsZXNzSVNBX0VFTlM4X0lOU180cGFpcklLU0FfU0FfRUVFRUVFRVVsUlNFX1JLTlNfNnZlY3RvcklTQV9OUzhfSVNBX0VFRUVFMV9OUzhfSVNRX0VFRlNOX1NLX1NQX0VFRQBaTjVtb3RvcjdFeGFtcGxlQzFFUktOU3QzX18yM21hcElOUzFfMTJiYXNpY19zdHJpbmdJY05TMV8xMWNoYXJfdHJhaXRzSWNFRU5TMV85YWxsb2NhdG9ySWNFRUVFUzhfTlMxXzRsZXNzSVM4X0VFTlM2X0lOUzFfNHBhaXJJS1M4X1M4X0VFRUVFRUVVbFJTQ19SS05TMV82dmVjdG9ySVM4X05TNl9JUzhfRUVFRUUxXwBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0laTjVtb3RvcjdFeGFtcGxlQzFFUktOU18zbWFwSU5TXzEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVTQV9OU180bGVzc0lTQV9FRU5TOF9JTlNfNHBhaXJJS1NBX1NBX0VFRUVFRUVVbFJTRV9SS05TXzZ2ZWN0b3JJU0FfTlM4X0lTQV9FRUVFRTJfTlM4X0lTUV9FRUZTTl9TS19TUF9FRUUAWk41bW90b3I3RXhhbXBsZUMxRVJLTlN0M19fMjNtYXBJTlMxXzEyYmFzaWNfc3RyaW5nSWNOUzFfMTFjaGFyX3RyYWl0c0ljRUVOUzFfOWFsbG9jYXRvckljRUVFRVM4X05TMV80bGVzc0lTOF9FRU5TNl9JTlMxXzRwYWlySUtTOF9TOF9FRUVFRUVFVWxSU0NfUktOUzFfNnZlY3RvcklTOF9OUzZfSVM4X0VFRUVFMl8ATlN0M19fMjEwX19mdW5jdGlvbjZfX2Z1bmNJWk41bW90b3I3RXhhbXBsZUMxRVJLTlNfM21hcElOU18xMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFU0FfTlNfNGxlc3NJU0FfRUVOUzhfSU5TXzRwYWlySUtTQV9TQV9FRUVFRUVFVWxSU0VfUktOU182dmVjdG9ySVNBX05TOF9JU0FfRUVFRUUzX05TOF9JU1FfRUVGU05fU0tfU1BfRUVFACVkAFpONW1vdG9yN0V4YW1wbGVDMUVSS05TdDNfXzIzbWFwSU5TMV8xMmJhc2ljX3N0cmluZ0ljTlMxXzExY2hhcl90cmFpdHNJY0VFTlMxXzlhbGxvY2F0b3JJY0VFRUVTOF9OUzFfNGxlc3NJUzhfRUVOUzZfSU5TMV80cGFpcklLUzhfUzhfRUVFRUVFRVVsUlNDX1JLTlMxXzZ2ZWN0b3JJUzhfTlM2X0lTOF9FRUVFRTNfAE5TdDNfXzIxMF9fZnVuY3Rpb242X19mdW5jSVpONW1vdG9yN0V4YW1wbGVDMUVSS05TXzNtYXBJTlNfMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRVNBX05TXzRsZXNzSVNBX0VFTlM4X0lOU180cGFpcklLU0FfU0FfRUVFRUVFRVVsdkVfTlM4X0lTS19FRUZ2dkVFRQBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fYmFzZUlGdnZFRUUAWk41bW90b3I3RXhhbXBsZUMxRVJLTlN0M19fMjNtYXBJTlMxXzEyYmFzaWNfc3RyaW5nSWNOUzFfMTFjaGFyX3RyYWl0c0ljRUVOUzFfOWFsbG9jYXRvckljRUVFRVM4X05TMV80bGVzc0lTOF9FRU5TNl9JTlMxXzRwYWlySUtTOF9TOF9FRUVFRUVFVWx2RV8ATlN0M19fMjEwX19mdW5jdGlvbjZfX2Z1bmNJWk41bW90b3I3RXhhbXBsZUMxRVJLTlNfM21hcElOU18xMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFU0FfTlNfNGxlc3NJU0FfRUVOUzhfSU5TXzRwYWlySUtTQV9TQV9FRUVFRUVFVWxSU0VfUktOU182dmVjdG9ySVNBX05TOF9JU0FfRUVFRUU0X05TOF9JU1FfRUVGU05fU0tfU1BfRUVFAEJVVFRPTl9MRUZUAEJVVFRPTl9SSUdIVABCVVRUT05fTUlERExFAEJVVFRPTl9OT05FAFpONW1vdG9yN0V4YW1wbGVDMUVSS05TdDNfXzIzbWFwSU5TMV8xMmJhc2ljX3N0cmluZ0ljTlMxXzExY2hhcl90cmFpdHNJY0VFTlMxXzlhbGxvY2F0b3JJY0VFRUVTOF9OUzFfNGxlc3NJUzhfRUVOUzZfSU5TMV80cGFpcklLUzhfUzhfRUVFRUVFRVVsUlNDX1JLTlMxXzZ2ZWN0b3JJUzhfTlM2X0lTOF9FRUVFRTRfAE5TdDNfXzIxMF9fZnVuY3Rpb242X19mdW5jSVpONW1vdG9yN0V4YW1wbGVDMUVSS05TXzNtYXBJTlNfMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRVNBX05TXzRsZXNzSVNBX0VFTlM4X0lOU180cGFpcklLU0FfU0FfRUVFRUVFRVVsdkUwX05TOF9JU0tfRUVGdnZFRUUAWk41bW90b3I3RXhhbXBsZUMxRVJLTlN0M19fMjNtYXBJTlMxXzEyYmFzaWNfc3RyaW5nSWNOUzFfMTFjaGFyX3RyYWl0c0ljRUVOUzFfOWFsbG9jYXRvckljRUVFRVM4X05TMV80bGVzc0lTOF9FRU5TNl9JTlMxXzRwYWlySUtTOF9TOF9FRUVFRUVFVWx2RTBfAE5TdDNfXzIxMF9fZnVuY3Rpb242X19mdW5jSVpONW1vdG9yN0V4YW1wbGVDMUVSS05TXzNtYXBJTlNfMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRVNBX05TXzRsZXNzSVNBX0VFTlM4X0lOU180cGFpcklLU0FfU0FfRUVFRUVFRVVsUlNFX1JLTlNfNnZlY3RvcklTQV9OUzhfSVNBX0VFRUVFNV9OUzhfSVNRX0VFRlNOX1NLX1NQX0VFRQDQntCo0JjQkdCa0JBf0KPQl9CV0Jtf0JzQntCU0JXQm9CsAFpONW1vdG9yN0V4YW1wbGVDMUVSS05TdDNfXzIzbWFwSU5TMV8xMmJhc2ljX3N0cmluZ0ljTlMxXzExY2hhcl90cmFpdHNJY0VFTlMxXzlhbGxvY2F0b3JJY0VFRUVTOF9OUzFfNGxlc3NJUzhfRUVOUzZfSU5TMV80cGFpcklLUzhfUzhfRUVFRUVFRVVsUlNDX1JLTlMxXzZ2ZWN0b3JJUzhfTlM2X0lTOF9FRUVFRTVfAE5TdDNfXzIxMF9fZnVuY3Rpb242X19mdW5jSVpONW1vdG9yN0V4YW1wbGVDMUVSS05TXzNtYXBJTlNfMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRVNBX05TXzRsZXNzSVNBX0VFTlM4X0lOU180cGFpcklLU0FfU0FfRUVFRUVFRVVsUlNFX1JLTlNfNnZlY3RvcklTQV9OUzhfSVNBX0VFRUVFNl9OUzhfSVNRX0VFRlNOX1NLX1NQX0VFRQBaTjVtb3RvcjdFeGFtcGxlQzFFUktOU3QzX18yM21hcElOUzFfMTJiYXNpY19zdHJpbmdJY05TMV8xMWNoYXJfdHJhaXRzSWNFRU5TMV85YWxsb2NhdG9ySWNFRUVFUzhfTlMxXzRsZXNzSVM4X0VFTlM2X0lOUzFfNHBhaXJJS1M4X1M4X0VFRUVFRUVVbFJTQ19SS05TMV82dmVjdG9ySVM4X05TNl9JUzhfRUVFRUU2XwBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0laTjVtb3RvcjdFeGFtcGxlQzFFUktOU18zbWFwSU5TXzEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVTQV9OU180bGVzc0lTQV9FRU5TOF9JTlNfNHBhaXJJS1NBX1NBX0VFRUVFRUVVbFJTRV9SS05TXzZ2ZWN0b3JJU0FfTlM4X0lTQV9FRUVFRTdfTlM4X0lTUV9FRUZTTl9TS19TUF9FRUUAWk41bW90b3I3RXhhbXBsZUMxRVJLTlN0M19fMjNtYXBJTlMxXzEyYmFzaWNfc3RyaW5nSWNOUzFfMTFjaGFyX3RyYWl0c0ljRUVOUzFfOWFsbG9jYXRvckljRUVFRVM4X05TMV80bGVzc0lTOF9FRU5TNl9JTlMxXzRwYWlySUtTOF9TOF9FRUVFRUVFVWxSU0NfUktOUzFfNnZlY3RvcklTOF9OUzZfSVM4X0VFRUVFN18ATlN0M19fMjEwX19mdW5jdGlvbjZfX2Z1bmNJWk41bW90b3I3RXhhbXBsZUMxRVJLTlNfM21hcElOU18xMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFU0FfTlNfNGxlc3NJU0FfRUVOUzhfSU5TXzRwYWlySUtTQV9TQV9FRUVFRUVFVWxSU0VfUktOU182dmVjdG9ySVNBX05TOF9JU0FfRUVFRUU4X05TOF9JU1FfRUVGU05fU0tfU1BfRUVFAFpONW1vdG9yN0V4YW1wbGVDMUVSS05TdDNfXzIzbWFwSU5TMV8xMmJhc2ljX3N0cmluZ0ljTlMxXzExY2hhcl90cmFpdHNJY0VFTlMxXzlhbGxvY2F0b3JJY0VFRUVTOF9OUzFfNGxlc3NJUzhfRUVOUzZfSU5TMV80cGFpcklLUzhfUzhfRUVFRUVFRVVsUlNDX1JLTlMxXzZ2ZWN0b3JJUzhfTlM2X0lTOF9FRUVFRThfAE5TdDNfXzIxMF9fZnVuY3Rpb242X19mdW5jSVpONW1vdG9yN0V4YW1wbGVDMUVSS05TXzNtYXBJTlNfMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRVNBX05TXzRsZXNzSVNBX0VFTlM4X0lOU180cGFpcklLU0FfU0FfRUVFRUVFRVVsUlNFX1JLTlNfNnZlY3RvcklTQV9OUzhfSVNBX0VFRUVFOV9OUzhfSVNRX0VFRlNOX1NLX1NQX0VFRQBaTjVtb3RvcjdFeGFtcGxlQzFFUktOU3QzX18yM21hcElOUzFfMTJiYXNpY19zdHJpbmdJY05TMV8xMWNoYXJfdHJhaXRzSWNFRU5TMV85YWxsb2NhdG9ySWNFRUVFUzhfTlMxXzRsZXNzSVM4X0VFTlM2X0lOUzFfNHBhaXJJS1M4X1M4X0VFRUVFRUVVbFJTQ19SS05TMV82dmVjdG9ySVM4X05TNl9JUzhfRUVFRUU5XwBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0laTjVtb3RvcjdFeGFtcGxlQzFFUktOU18zbWFwSU5TXzEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVTQV9OU180bGVzc0lTQV9FRU5TOF9JTlNfNHBhaXJJS1NBX1NBX0VFRUVFRUVVbFJTRV9SS05TXzZ2ZWN0b3JJU0FfTlM4X0lTQV9FRUVFRTEwX05TOF9JU1FfRUVGU05fU0tfU1BfRUVFAFpONW1vdG9yN0V4YW1wbGVDMUVSS05TdDNfXzIzbWFwSU5TMV8xMmJhc2ljX3N0cmluZ0ljTlMxXzExY2hhcl90cmFpdHNJY0VFTlMxXzlhbGxvY2F0b3JJY0VFRUVTOF9OUzFfNGxlc3NJUzhfRUVOUzZfSU5TMV80cGFpcklLUzhfUzhfRUVFRUVFRVVsUlNDX1JLTlMxXzZ2ZWN0b3JJUzhfTlM2X0lTOF9FRUVFRTEwXwBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0laTjVtb3RvcjdFeGFtcGxlQzFFUktOU18zbWFwSU5TXzEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVTQV9OU180bGVzc0lTQV9FRU5TOF9JTlNfNHBhaXJJS1NBX1NBX0VFRUVFRUVVbFJTRV9SS05TXzZ2ZWN0b3JJU0FfTlM4X0lTQV9FRUVFRTExX05TOF9JU1FfRUVGU05fU0tfU1BfRUVFAFpONW1vdG9yN0V4YW1wbGVDMUVSS05TdDNfXzIzbWFwSU5TMV8xMmJhc2ljX3N0cmluZ0ljTlMxXzExY2hhcl90cmFpdHNJY0VFTlMxXzlhbGxvY2F0b3JJY0VFRUVTOF9OUzFfNGxlc3NJUzhfRUVOUzZfSU5TMV80cGFpcklLUzhfUzhfRUVFRUVFRVVsUlNDX1JLTlMxXzZ2ZWN0b3JJUzhfTlM2X0lTOF9FRUVFRTExXwBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0laTjVtb3RvcjdFeGFtcGxlQzFFUktOU18zbWFwSU5TXzEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVTQV9OU180bGVzc0lTQV9FRU5TOF9JTlNfNHBhaXJJS1NBX1NBX0VFRUVFRUVVbFJTRV9SS05TXzZ2ZWN0b3JJU0FfTlM4X0lTQV9FRUVFRTEyX05TOF9JU1FfRUVGU05fU0tfU1BfRUVFAFpONW1vdG9yN0V4YW1wbGVDMUVSS05TdDNfXzIzbWFwSU5TMV8xMmJhc2ljX3N0cmluZ0ljTlMxXzExY2hhcl90cmFpdHNJY0VFTlMxXzlhbGxvY2F0b3JJY0VFRUVTOF9OUzFfNGxlc3NJUzhfRUVOUzZfSU5TMV80cGFpcklLUzhfUzhfRUVFRUVFRVVsUlNDX1JLTlMxXzZ2ZWN0b3JJUzhfTlM2X0lTOF9FRUVFRTEyXwBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0laTjVtb3RvcjdFeGFtcGxlQzFFUktOU18zbWFwSU5TXzEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVTQV9OU180bGVzc0lTQV9FRU5TOF9JTlNfNHBhaXJJS1NBX1NBX0VFRUVFRUVVbFJTRV9SS05TXzZ2ZWN0b3JJU0FfTlM4X0lTQV9FRUVFRTEzX05TOF9JU1FfRUVGU05fU0tfU1BfRUVFAFpONW1vdG9yN0V4YW1wbGVDMUVSS05TdDNfXzIzbWFwSU5TMV8xMmJhc2ljX3N0cmluZ0ljTlMxXzExY2hhcl90cmFpdHNJY0VFTlMxXzlhbGxvY2F0b3JJY0VFRUVTOF9OUzFfNGxlc3NJUzhfRUVOUzZfSU5TMV80cGFpcklLUzhfUzhfRUVFRUVFRVVsUlNDX1JLTlMxXzZ2ZWN0b3JJUzhfTlM2X0lTOF9FRUVFRTEzXwBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0laTjVtb3RvcjdFeGFtcGxlQzFFUktOU18zbWFwSU5TXzEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVTQV9OU180bGVzc0lTQV9FRU5TOF9JTlNfNHBhaXJJS1NBX1NBX0VFRUVFRUVVbFJTRV9SS05TXzZ2ZWN0b3JJU0FfTlM4X0lTQV9FRUVFRTE0X05TOF9JU1FfRUVGU05fU0tfU1BfRUVFAFpONW1vdG9yN0V4YW1wbGVDMUVSS05TdDNfXzIzbWFwSU5TMV8xMmJhc2ljX3N0cmluZ0ljTlMxXzExY2hhcl90cmFpdHNJY0VFTlMxXzlhbGxvY2F0b3JJY0VFRUVTOF9OUzFfNGxlc3NJUzhfRUVOUzZfSU5TMV80cGFpcklLUzhfUzhfRUVFRUVFRVVsUlNDX1JLTlMxXzZ2ZWN0b3JJUzhfTlM2X0lTOF9FRUVFRTE0XwBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0laTjVtb3RvcjdFeGFtcGxlQzFFUktOU18zbWFwSU5TXzEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVTQV9OU180bGVzc0lTQV9FRU5TOF9JTlNfNHBhaXJJS1NBX1NBX0VFRUVFRUVVbFJTRV9SS05TXzZ2ZWN0b3JJU0FfTlM4X0lTQV9FRUVFRTE1X05TOF9JU1FfRUVGU05fU0tfU1BfRUVFAFpONW1vdG9yN0V4YW1wbGVDMUVSS05TdDNfXzIzbWFwSU5TMV8xMmJhc2ljX3N0cmluZ0ljTlMxXzExY2hhcl90cmFpdHNJY0VFTlMxXzlhbGxvY2F0b3JJY0VFRUVTOF9OUzFfNGxlc3NJUzhfRUVOUzZfSU5TMV80cGFpcklLUzhfUzhfRUVFRUVFRVVsUlNDX1JLTlMxXzZ2ZWN0b3JJUzhfTlM2X0lTOF9FRUVFRTE1XwBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0laTjVtb3RvcjdFeGFtcGxlQzFFUktOU18zbWFwSU5TXzEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVTQV9OU180bGVzc0lTQV9FRU5TOF9JTlNfNHBhaXJJS1NBX1NBX0VFRUVFRUVVbFJTRV9SS05TXzZ2ZWN0b3JJU0FfTlM4X0lTQV9FRUVFRTE2X05TOF9JU1FfRUVGU05fU0tfU1BfRUVFAFpONW1vdG9yN0V4YW1wbGVDMUVSS05TdDNfXzIzbWFwSU5TMV8xMmJhc2ljX3N0cmluZ0ljTlMxXzExY2hhcl90cmFpdHNJY0VFTlMxXzlhbGxvY2F0b3JJY0VFRUVTOF9OUzFfNGxlc3NJUzhfRUVOUzZfSU5TMV80cGFpcklLUzhfUzhfRUVFRUVFRVVsUlNDX1JLTlMxXzZ2ZWN0b3JJUzhfTlM2X0lTOF9FRUVFRTE2XwBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0laTjVtb3RvcjdFeGFtcGxlQzFFUktOU18zbWFwSU5TXzEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVTQV9OU180bGVzc0lTQV9FRU5TOF9JTlNfNHBhaXJJS1NBX1NBX0VFRUVFRUVVbFJTRV9SS05TXzZ2ZWN0b3JJU0FfTlM4X0lTQV9FRUVFRTE3X05TOF9JU1FfRUVGU05fU0tfU1BfRUVFAFpONW1vdG9yN0V4YW1wbGVDMUVSS05TdDNfXzIzbWFwSU5TMV8xMmJhc2ljX3N0cmluZ0ljTlMxXzExY2hhcl90cmFpdHNJY0VFTlMxXzlhbGxvY2F0b3JJY0VFRUVTOF9OUzFfNGxlc3NJUzhfRUVOUzZfSU5TMV80cGFpcklLUzhfUzhfRUVFRUVFRVVsUlNDX1JLTlMxXzZ2ZWN0b3JJUzhfTlM2X0lTOF9FRUVFRTE3XwBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0laTjVtb3RvcjdFeGFtcGxlQzFFUktOU18zbWFwSU5TXzEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVTQV9OU180bGVzc0lTQV9FRU5TOF9JTlNfNHBhaXJJS1NBX1NBX0VFRUVFRUVVbHZFMV9OUzhfSVNLX0VFRnZ2RUVFAFpONW1vdG9yN0V4YW1wbGVDMUVSS05TdDNfXzIzbWFwSU5TMV8xMmJhc2ljX3N0cmluZ0ljTlMxXzExY2hhcl90cmFpdHNJY0VFTlMxXzlhbGxvY2F0b3JJY0VFRUVTOF9OUzFfNGxlc3NJUzhfRUVOUzZfSU5TMV80cGFpcklLUzhfUzhfRUVFRUVFRVVsdkUxXwBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0laTjVtb3RvcjdFeGFtcGxlQzFFUktOU18zbWFwSU5TXzEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVTQV9OU180bGVzc0lTQV9FRU5TOF9JTlNfNHBhaXJJS1NBX1NBX0VFRUVFRUVVbFJTRV9SS05TXzZ2ZWN0b3JJU0FfTlM4X0lTQV9FRUVFRTE4X05TOF9JU1FfRUVGU05fU0tfU1BfRUVFAFpONW1vdG9yN0V4YW1wbGVDMUVSS05TdDNfXzIzbWFwSU5TMV8xMmJhc2ljX3N0cmluZ0ljTlMxXzExY2hhcl90cmFpdHNJY0VFTlMxXzlhbGxvY2F0b3JJY0VFRUVTOF9OUzFfNGxlc3NJUzhfRUVOUzZfSU5TMV80cGFpcklLUzhfUzhfRUVFRUVFRVVsUlNDX1JLTlMxXzZ2ZWN0b3JJUzhfTlM2X0lTOF9FRUVFRTE4XwBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0laTjVtb3RvcjdFeGFtcGxlQzFFUktOU18zbWFwSU5TXzEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVTQV9OU180bGVzc0lTQV9FRU5TOF9JTlNfNHBhaXJJS1NBX1NBX0VFRUVFRUVVbFJTRV9SS05TXzZ2ZWN0b3JJU0FfTlM4X0lTQV9FRUVFRTE5X05TOF9JU1FfRUVGU05fU0tfU1BfRUVFAFpONW1vdG9yN0V4YW1wbGVDMUVSS05TdDNfXzIzbWFwSU5TMV8xMmJhc2ljX3N0cmluZ0ljTlMxXzExY2hhcl90cmFpdHNJY0VFTlMxXzlhbGxvY2F0b3JJY0VFRUVTOF9OUzFfNGxlc3NJUzhfRUVOUzZfSU5TMV80cGFpcklLUzhfUzhfRUVFRUVFRVVsUlNDX1JLTlMxXzZ2ZWN0b3JJUzhfTlM2X0lTOF9FRUVFRTE5XwBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0laTjVtb3RvcjdFeGFtcGxlQzFFUktOU18zbWFwSU5TXzEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVTQV9OU180bGVzc0lTQV9FRU5TOF9JTlNfNHBhaXJJS1NBX1NBX0VFRUVFRUVVbFJTRV9SS05TXzZ2ZWN0b3JJU0FfTlM4X0lTQV9FRUVFRTIwX05TOF9JU1FfRUVGU05fU0tfU1BfRUVFAFpONW1vdG9yN0V4YW1wbGVDMUVSS05TdDNfXzIzbWFwSU5TMV8xMmJhc2ljX3N0cmluZ0ljTlMxXzExY2hhcl90cmFpdHNJY0VFTlMxXzlhbGxvY2F0b3JJY0VFRUVTOF9OUzFfNGxlc3NJUzhfRUVOUzZfSU5TMV80cGFpcklLUzhfUzhfRUVFRUVFRVVsUlNDX1JLTlMxXzZ2ZWN0b3JJUzhfTlM2X0lTOF9FRUVFRTIwXwBjYW52YXMATjEwZW1zY3JpcHRlbjN2YWxFAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFAE5TdDNfXzIyMV9fYmFzaWNfc3RyaW5nX2NvbW1vbklMYjFFRUUAdmlpAHB1c2hfYmFjawByZXNpemUAc2l6ZQBnZXQAc2V0AE5TdDNfXzI2dmVjdG9ySU5TXzEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVOUzRfSVM2X0VFRUUATlN0M19fMjEzX192ZWN0b3JfYmFzZUlOU18xMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFTlM0X0lTNl9FRUVFAE5TdDNfXzIyMF9fdmVjdG9yX2Jhc2VfY29tbW9uSUxiMUVFRQBQTlN0M19fMjZ2ZWN0b3JJTlNfMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRU5TNF9JUzZfRUVFRQBQS05TdDNfXzI2dmVjdG9ySU5TXzEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVOUzRfSVM2X0VFRUUAaWkAdgB2aQB2aWlpAHZpaWlpAGlpaQBpaWlpAGlpaWlpANCe0KjQmNCR0JrQkF/QotCV0JrQodCi0KPQoNCQX9CY0JfQntCR0KDQkNCW0JXQndCY0JVf0J7QkdCg0JDQkdCe0KLQp9CY0JoA0J7QqNCY0JHQmtCQX9Ci0JXQmtCh0KLQo9Cg0JBf0JjQl9Ce0JHQoNCQ0JbQldCd0JjQlV/QoNCQ0JfQkdCe0KAATjNvc2cxME51bGxTdHJlYW1FAE4zb3NnMTJOb3RpZnlTdHJlYW1FAE9TR19OT1RJRllfTEVWRUwAT1NHTk9USUZZTEVWRUwARkFUQUwATk9USUNFAERFQlVHX0lORk8AREVCVUdfRlAAV2FybmluZzogaW52YWxpZCBPU0dfTk9USUZZX0xFVkVMIHNldCAoAE4zb3NnMjFTdGFuZGFyZE5vdGlmeUhhbmRsZXJFAE4zb3NnMTNOb3RpZnlIYW5kbGVyRQBOM29zZzE4Tm90aWZ5U3RyZWFtQnVmZmVyRQBOU3QzX18yMTViYXNpY19zdHJpbmdidWZJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRQBOM29zZzE2TnVsbFN0cmVhbUJ1ZmZlckUATjNvc2c2T2JqZWN0RQBTdGF0ZUF0dHJpYnV0ZQBOM29zZzE0U3RhdGVBdHRyaWJ1dGVFAE4zb3NnMjBBdHRyaWJ1dGVEaXNwYXRjaGVyc0UAV2FybmluZzogQmxlbmRGdW5jOjphcHBseSguLikgZmFpbGVkLCBCbGVuZEZ1bmNTZXBhcmF0ZSBpcyBub3Qgc3VwcG9ydCBieSBPcGVuR0wgZHJpdmVyLCBmYWxsaW5nIGJhY2sgdG8gQmxlbmRGdW5jLgBCbGVuZEZ1bmMATjNvc2c5QmxlbmRGdW5jRQBOM29zZzE0R0xCdWZmZXJPYmplY3RFAE4zb3NnMTRHcmFwaGljc09iamVjdEUATjNvc2cxN0dMQnVmZmVyT2JqZWN0U2V0RQBHTEJ1ZmZlck9iamVjdDo6ZGVsZXRlR0xPYmplY3QoKSAAUGxlbnR5IG9mIHNwYWNlIGluIEdMQnVmZmVyT2JqZWN0IHBvb2wAX3BhcmVudC0+Z2V0Q3VyckdMQnVmZmVyT2JqZWN0UG9vbFNpemUoKT0AIF9wYXJlbnQtPmdldE1heEdMQnVmZmVyT2JqZWN0UG9vbFNpemUoKT0AR0xCdWZmZXJPYmplY3RNYW5hbmdlcjo6cmVjb21wdXRlU3RhdHMoKQAgICBnZXRNYXhHTEJ1ZmZlck9iamVjdFBvb2xTaXplKCk9ACwgb3MtPmNvbXB1dGVOdW1HTEJ1ZmZlck9iamVjdHNJbkxpc3QoKQAsIG9zLT5nZXROdW1PZkdMQnVmZmVyT2JqZWN0cygpAEdMQnVmZmVyT2JqZWN0TWFuYW5nZXI6OnJlcG9ydFN0YXRzKCkAICAgdG90YWwgX251bU9mR0xCdWZmZXJPYmplY3RzPQAsIF9udW1PcnBoYW5lZEdMQnVmZmVyT2JqZWN0cz0AIF9jdXJyR0xCdWZmZXJPYmplY3RQb29sU2l6ZT0AICAgdG90YWwgX251bUFwcGxpZWQ9ACwgX2FwcGx5VGltZT0AOjp+ACgpAE4zb3NnMjFHcmFwaGljc09iamVjdE1hbmFnZXJFAE4zb3NnMjFHTEJ1ZmZlck9iamVjdE1hbmFnZXJFAEJ1ZmZlck9iamVjdDo6cmVsZWFzZUdMT2JqZWN0cygAQnVmZmVyT2JqZWN0AE4zb3NnMTJCdWZmZXJPYmplY3RFAEJ1ZmZlckRhdGE6OnJlbGVhc2VHTE9iamVjdHMoAEJ1ZmZlckRhdGEARXJyb3IgADo6cmVtb3ZlQnVmZmVyRGF0YSgAKSBvdXQgb2YgcmFuZ2UuAE4zb3NnMTBCdWZmZXJEYXRhRQBWZXJ0ZXhCdWZmZXJPYmplY3QAMS4wAE9TR19ESVNQTEFZX1RZUEUATU9OSVRPUgBQT1dFUldBTEwAUkVBTElUWV9DRU5URVIASEVBRF9NT1VOVEVEX0RJU1BMQVkAT1NHX1NURVJFT19NT0RFAFFVQURfQlVGRkVSAEFOQUdMWVBISUMASE9SSVpPTlRBTF9TUExJVABWRVJUSUNBTF9TUExJVABMRUZUX0VZRQBSSUdIVF9FWUUASE9SSVpPTlRBTF9JTlRFUkxBQ0UAVkVSVElDQUxfSU5URVJMQUNFAENIRUNLRVJCT0FSRABPU0dfU1RFUkVPAE9TR19FWUVfU0VQQVJBVElPTgBPU0dfU0NSRUVOX1dJRFRIAE9TR19TQ1JFRU5fSEVJR0hUAE9TR19TQ1JFRU5fRElTVEFOQ0UAT1NHX1NQTElUX1NURVJFT19IT1JJWk9OVEFMX0VZRV9NQVBQSU5HAExFRlRfRVlFX0xFRlRfVklFV1BPUlQATEVGVF9FWUVfUklHSFRfVklFV1BPUlQAT1NHX1NQTElUX1NURVJFT19IT1JJWk9OVEFMX1NFUEFSQVRJT04AT1NHX1NQTElUX1NURVJFT19WRVJUSUNBTF9FWUVfTUFQUElORwBMRUZUX0VZRV9UT1BfVklFV1BPUlQATEVGVF9FWUVfQk9UVE9NX1ZJRVdQT1JUAE9TR19TUExJVF9TVEVSRU9fQVVUT19BREpVU1RfQVNQRUNUX1JBVElPAE9TR19TUExJVF9TVEVSRU9fVkVSVElDQUxfU0VQQVJBVElPTgBPU0dfTUFYX05VTUJFUl9PRl9HUkFQSElDU19DT05URVhUUwBPU0dfQ09NUElMRV9DT05URVhUUwBPU0dfU0VSSUFMSVpFX0RSQVdfRElTUEFUQ0gAT1NHX1VTRV9TQ0VORVZJRVdfRk9SX1NURVJFTwBPU0dfTlVNX0RBVEFCQVNFX1RIUkVBRFMAT1NHX05VTV9IVFRQX0RBVEFCQVNFX1RIUkVBRFMAT1NHX01VTFRJX1NBTVBMRVMAT1NHX1RFWFRVUkVfUE9PTF9TSVpFAE9TR19CVUZGRVJfT0JKRUNUX1BPT0xfU0laRQBPU0dfR0xfVkVSU0lPTgB+REVGQVVMVAB+Q09MT1IAQ09MT1IAfkRFUFRIAH5TVEVOQ0lMAFNURU5DSUwAT1NHX0dMX0NPTlRFWFRfVkVSU0lPTgBPU0dfR0xfQ09OVEVYVF9GTEFHUwBPU0dfR0xfQ09OVEVYVF9QUk9GSUxFX01BU0sAT1NHX1NXQVBfTUVUSE9EAEVYQ0hBTkdFAENPUFkAT1NHX1NZTkNfU1dBUF9CVUZGRVJTAE9TR19WRVJURVhfQlVGRkVSX0hJTlQAVkVSVEVYX0JVRkZFUl9PQkpFQ1QAT1NHX1ZFUlRFWF9CVUZGRVJfSElOVCBzZXQgdG8gVkVSVEVYX0JVRkZFUl9PQkpFQ1QAVkVSVEVYX0FSUkFZX09CSkVDVABWQU8AT1NHX1ZFUlRFWF9CVUZGRVJfSElOVCBzZXQgdG8gVkVSVEVYX0FSUkFZX09CSkVDVABPU0dfVkVSVEVYX0JVRkZFUl9ISU5UIHNldCB0byBOT19QUkVGRVJFTkNFAE9TR19TSEFERVJfSElOVABHTDIAR0wzAEdMRVMyAEdMRVMzAE5PTkUAT1NHX1RFWFRfU0hBREVSX1RFQ0hOSVFVRQBPU0dfS0VZU1RPTkUAT1NHX0tFWVNUT05FX0ZJTEVTAE9TR19NRU5VQkFSX0JFSEFWSU9SAEFVVE9fSElERQBGT1JDRV9ISURFAEZPUkNFX1NIT1cAT1NHX052T3B0aW11c0VuYWJsZW1lbnQAT1NHX1NIQURFUl9QSVBFTElORQBPU0dfU0hBREVSX1BJUEVMSU5FX0ZJTEVTAE9TR19TSEFERVJfUElQRUxJTkVfTlVNX1RFWFRVUkVfVU5JVFMAX3NoYWRlclBpcGVsaW5lTnVtVGV4dHVyZVVuaXRzID0gAE9TR19JTVBMSUNJVF9CVUZGRVJfQVRUQUNITUVOVF9SRU5ERVJfTUFTSwBPU0dfSU1QTElDSVRfQlVGRkVSX0FUVEFDSE1FTlRfUkVTT0xWRV9NQVNLAE5TdDNfXzIxOWJhc2ljX2lzdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRQBPU0dfR0xTTF9WRVJTSU9OACN2ZXJzaW9uIDMwMCBlcwBPU0dfUFJFQ0lTSU9OX0ZMT0FUAHByZWNpc2lvbiBoaWdocCBmbG9hdDsAT1NHX1ZBUllJTkdfSU4AT1NHX1ZBUllJTkdfT1VUAG91dABEaXNwbGF5U2V0dGluZ3M6OlNIQURFUl9HTEVTMwB2YXJ5aW5nAERpc3BsYXlTZXR0aW5nczo6U0hBREVSX0dMRVMyACN2ZXJzaW9uIDMzMABEaXNwbGF5U2V0dGluZ3M6OlNIQURFUl9HTDMARGlzcGxheVNldHRpbmdzOjpTSEFERVJfR0wyAERpc3BsYXlTZXR0aW5nczo6Tk9ORQBOM29zZzE1RGlzcGxheVNldHRpbmdzRQBOM29zZzE4VmVydGV4QnVmZmVyT2JqZWN0RQBOM29zZzVBcnJheUUARWxlbWVudEJ1ZmZlck9iamVjdABOM29zZzE5RWxlbWVudEJ1ZmZlck9iamVjdEUAUGl4ZWxCdWZmZXJPYmplY3QAQ29uc3RydWN0aW5nIFBpeGVsQnVmZmVyT2JqZWN0IGZvciBpbWFnZT0ATjNvc2cxN1BpeGVsQnVmZmVyT2JqZWN0RQBFcnJvcjogT3BlbkdMIHZlcnNpb24gdGVzdCBmYWlsZWQsIHJlcXVpcmVzIHZhbGlkIGdyYXBoaWNzIGNvbnRleHQuAEdMX0VYVF9nZW9tZXRyeV9zaGFkZXI0AEdMX09FU19nZW9tZXRyeV9zaGFkZXIAR0xfQVJCX2dlb21ldHJ5X3NoYWRlcjQAR0xfRVhUX2dwdV9zaGFkZXI0AEdMX0FSQl90ZXNzZWxsYXRpb25fc2hhZGVyAEdMX09FU190ZXNzZWxsYXRpb25fc2hhZGVyAEdMX0FSQl91bmlmb3JtX2J1ZmZlcl9vYmplY3QAR0xfQVJCX2dldF9wcm9ncmFtX2JpbmFyeQBHTF9BUkJfZ3B1X3NoYWRlcl9mcDY0AEdMX0FSQl9zaGFkZXJfYXRvbWljX2NvdW50ZXJzAEdMX0FSQl90ZXh0dXJlX3JlY3RhbmdsZQBHTF9FWFRfdGV4dHVyZV9yZWN0YW5nbGUAR0xfTlZfdGV4dHVyZV9yZWN0YW5nbGUAR0xfQVJCX2NsaXBfY29udHJvbABnbFZlcnNpb249AGlzR2xzbFN1cHBvcnRlZD0ATk8AZ2xzbExhbmd1YWdlVmVyc2lvbj0AZ2xEcmF3QnVmZmVyc0FSQgBnbEF0dGFjaE9iamVjdEFSQgBnbEJpbmRBdHRyaWJMb2NhdGlvbkFSQgBnbENvbXBpbGVTaGFkZXJBUkIAZ2xDcmVhdGVQcm9ncmFtT2JqZWN0QVJCAGdsQ3JlYXRlU2hhZGVyT2JqZWN0QVJCAGdsRGV0YWNoT2JqZWN0QVJCAGdsR2V0QWN0aXZlQXR0cmliQVJCAGdsR2V0QWN0aXZlVW5pZm9ybUFSQgBnbEdldEF0dGFjaGVkT2JqZWN0c0FSQgBnbEdldEF0dHJpYkxvY2F0aW9uQVJCAGdsR2V0U2hhZGVyU291cmNlQVJCAGdsR2V0VW5pZm9ybUxvY2F0aW9uQVJCAGdsR2V0VW5pZm9ybWZ2QVJCAGdsR2V0VW5pZm9ybWl2QVJCAGdsR2V0VmVydGV4QXR0cmliZHYAZ2xMaW5rUHJvZ3JhbUFSQgBnbFNoYWRlclNvdXJjZUFSQgBnbFVzZVByb2dyYW1PYmplY3RBUkIAZ2xVbmlmb3JtMWZBUkIAZ2xVbmlmb3JtMmZBUkIAZ2xVbmlmb3JtM2ZBUkIAZ2xVbmlmb3JtNGZBUkIAZ2xVbmlmb3JtMWlBUkIAZ2xVbmlmb3JtMmlBUkIAZ2xVbmlmb3JtM2lBUkIAZ2xVbmlmb3JtNGlBUkIAZ2xVbmlmb3JtMWZ2QVJCAGdsVW5pZm9ybTJmdkFSQgBnbFVuaWZvcm0zZnZBUkIAZ2xVbmlmb3JtNGZ2QVJCAGdsVW5pZm9ybTFpdkFSQgBnbFVuaWZvcm0yaXZBUkIAZ2xVbmlmb3JtM2l2QVJCAGdsVW5pZm9ybTRpdkFSQgBnbFVuaWZvcm1NYXRyaXgyZnZBUkIAZ2xVbmlmb3JtTWF0cml4M2Z2QVJCAGdsVW5pZm9ybU1hdHJpeDRmdkFSQgBnbFZhbGlkYXRlUHJvZ3JhbUFSQgBnbFZlcnRleEF0dHJpYjFkAGdsVmVydGV4QXR0cmliMWRBUkIAZ2xWZXJ0ZXhBdHRyaWIxZHYAZ2xWZXJ0ZXhBdHRyaWIxZkFSQgBnbFZlcnRleEF0dHJpYjFmdkFSQgBnbFZlcnRleEF0dHJpYjFzAGdsVmVydGV4QXR0cmliMXNBUkIAZ2xWZXJ0ZXhBdHRyaWIxc3YAZ2xWZXJ0ZXhBdHRyaWIyZABnbFZlcnRleEF0dHJpYjJkdgBnbFZlcnRleEF0dHJpYjJkdkFSQgBnbFZlcnRleEF0dHJpYjJmdkFSQgBnbFZlcnRleEF0dHJpYjJzAGdsVmVydGV4QXR0cmliMnN2AGdsVmVydGV4QXR0cmliM2QAZ2xWZXJ0ZXhBdHRyaWIzZHYAZ2xWZXJ0ZXhBdHRyaWIzZHZBUkIAZ2xWZXJ0ZXhBdHRyaWIzZnZBUkIAZ2xWZXJ0ZXhBdHRyaWIzcwBnbFZlcnRleEF0dHJpYjNzdgBnbFZlcnRleEF0dHJpYjROYnYAZ2xWZXJ0ZXhBdHRyaWI0Tml2AGdsVmVydGV4QXR0cmliNE5zdgBnbFZlcnRleEF0dHJpYjROdWIAZ2xWZXJ0ZXhBdHRyaWI0TnVidgBnbFZlcnRleEF0dHJpYjROdWJ2QVJCAGdsVmVydGV4QXR0cmliNE51aXYAZ2xWZXJ0ZXhBdHRyaWI0TnVzdgBnbFZlcnRleEF0dHJpYjRidgBnbFZlcnRleEF0dHJpYjRkAGdsVmVydGV4QXR0cmliNGR2AGdsVmVydGV4QXR0cmliNGR2QVJCAGdsVmVydGV4QXR0cmliNGZ2QVJCAGdsVmVydGV4QXR0cmliNGl2AGdsVmVydGV4QXR0cmliNHMAZ2xWZXJ0ZXhBdHRyaWI0c3YAZ2xWZXJ0ZXhBdHRyaWI0dWJ2AGdsVmVydGV4QXR0cmliNHVidkFSQgBnbFZlcnRleEF0dHJpYjR1aXYAZ2xWZXJ0ZXhBdHRyaWI0dXN2AGdsVmVydGV4QXR0cmliSVBvaW50ZXJBUkIAZ2xWZXJ0ZXhBdHRyaWJMUG9pbnRlckFSQgBnbEdldEluZm9Mb2dBUkIAZ2xHZXRPYmplY3RQYXJhbWV0ZXJpdkFSQgBnbERlbGV0ZU9iamVjdEFSQgBnbEdldEhhbmRsZUFSQgBnbFVuaWZvcm1NYXRyaXgyeDNmdgBnbFVuaWZvcm1NYXRyaXgzeDJmdgBnbFVuaWZvcm1NYXRyaXgyeDRmdgBnbFVuaWZvcm1NYXRyaXg0eDJmdgBnbFVuaWZvcm1NYXRyaXgzeDRmdgBnbFVuaWZvcm1NYXRyaXg0eDNmdgBnbENsaXBDb250cm9sAGdsUHJvZ3JhbVBhcmFtZXRlcmkAZ2xQcm9ncmFtUGFyYW1ldGVyaUVYVABnbFBhdGNoUGFyYW1ldGVyaQBnbFBhdGNoUGFyYW1ldGVyZnYAZ2xHZXRVbmlmb3JtdWl2RVhUAGdsQmluZEZyYWdEYXRhTG9jYXRpb25FWFQAZ2xCaW5kRnJhZ0RhdGFMb2NhdGlvbkluZGV4ZWQAZ2xCaW5kRnJhZ0RhdGFMb2NhdGlvbkluZGV4ZWRFWFQAZ2xHZXRGcmFnRGF0YUluZGV4AGdsR2V0RnJhZ0RhdGFJbmRleEVYVABnbEdldEZyYWdEYXRhTG9jYXRpb25FWFQAZ2xVbmlmb3JtMXVpRVhUAGdsVW5pZm9ybTJ1aUVYVABnbFVuaWZvcm0zdWlFWFQAZ2xVbmlmb3JtNHVpRVhUAGdsVW5pZm9ybTF1aXYAZ2xVbmlmb3JtMXVpdkVYVABnbFVuaWZvcm0ydWl2AGdsVW5pZm9ybTJ1aXZFWFQAZ2xVbmlmb3JtM3VpdgBnbFVuaWZvcm0zdWl2RVhUAGdsVW5pZm9ybTR1aXYAZ2xVbmlmb3JtNHVpdkVYVABnbFVuaWZvcm0xaTY0AGdsVW5pZm9ybTFpNjRBUkIAZ2xVbmlmb3JtMXVpNjQAZ2xVbmlmb3JtMXVpNjRBUkIAZ2xVbmlmb3JtMmk2NABnbFVuaWZvcm0yaTY0QVJCAGdsVW5pZm9ybTJ1aTY0AGdsVW5pZm9ybTJ1aTY0QVJCAGdsVW5pZm9ybTNpNjQAZ2xVbmlmb3JtM2k2NEFSQgBnbFVuaWZvcm0zdWk2NABnbFVuaWZvcm0zdWk2NEFSQgBnbFVuaWZvcm00aTY0AGdsVW5pZm9ybTRpNjRBUkIAZ2xVbmlmb3JtNHVpNjQAZ2xVbmlmb3JtNHVpNjRBUkIAZ2xVbmlmb3JtMWk2NHYAZ2xVbmlmb3JtMWk2NHZBUkIAZ2xVbmlmb3JtMXVpNjR2AGdsVW5pZm9ybTF1aTY0dkFSQgBnbFVuaWZvcm0yaTY0dgBnbFVuaWZvcm0yaTY0dkFSQgBnbFVuaWZvcm0ydWk2NHYAZ2xVbmlmb3JtMnVpNjR2QVJCAGdsVW5pZm9ybTNpNjR2AGdsVW5pZm9ybTNpNjR2QVJCAGdsVW5pZm9ybTN1aTY0dgBnbFVuaWZvcm0zdWk2NHZBUkIAZ2xVbmlmb3JtNGk2NHYAZ2xVbmlmb3JtNGk2NHZBUkIAZ2xVbmlmb3JtNHVpNjR2AGdsVW5pZm9ybTR1aTY0dkFSQgBnbEdldFByb2dyYW1CaW5hcnkAZ2xQcm9ncmFtQmluYXJ5AGdsVW5pZm9ybTFkAGdsVW5pZm9ybTJkAGdsVW5pZm9ybTNkAGdsVW5pZm9ybTRkAGdsVW5pZm9ybTFkdgBnbFVuaWZvcm0yZHYAZ2xVbmlmb3JtM2R2AGdsVW5pZm9ybTRkdgBnbFVuaWZvcm1NYXRyaXgyZHYAZ2xVbmlmb3JtTWF0cml4M2R2AGdsVW5pZm9ybU1hdHJpeDRkdgBnbFVuaWZvcm1NYXRyaXgyeDNkdgBnbFVuaWZvcm1NYXRyaXgzeDJkdgBnbFVuaWZvcm1NYXRyaXgyeDRkdgBnbFVuaWZvcm1NYXRyaXg0eDJkdgBnbFVuaWZvcm1NYXRyaXgzeDRkdgBnbFVuaWZvcm1NYXRyaXg0eDNkdgBnbEdldEFjdGl2ZUF0b21pY0NvdW50ZXJCdWZmZXJpdgBnbERpc3BhdGNoQ29tcHV0ZQBnbE1lbW9yeUJhcnJpZXIAZ2xNZW1vcnlCYXJyaWVyRVhUAGdsR2VuQnVmZmVyc0FSQgBnbEJ1ZmZlckRhdGFBUkIAZ2xCdWZmZXJTdWJEYXRhQVJCAGdsRGVsZXRlQnVmZmVyc0FSQgBnbElzQnVmZmVyQVJCAGdsR2V0QnVmZmVyU3ViRGF0YQBnbEdldEJ1ZmZlclN1YkRhdGFBUkIAZ2xCdWZmZXJTdG9yYWdlAGdsQnVmZmVyU3RvcmFnZUFSQgBnbE5hbWVkQnVmZmVyU3RvcmFnZQBnbE5hbWVkQnVmZmVyU3RvcmFnZUFSQgBnbE1hcEJ1ZmZlcgBnbE1hcEJ1ZmZlckFSQgBnbE1hcEJ1ZmZlclJhbmdlAGdsTWFwQnVmZmVyUmFuZ2VBUkIAZ2xVbm1hcEJ1ZmZlcgBnbFVubWFwQnVmZmVyQVJCAGdsR2V0QnVmZmVyUGFyYW1ldGVyaXZBUkIAZ2xHZXRCdWZmZXJQb2ludGVydgBnbEdldEJ1ZmZlclBvaW50ZXJ2QVJCAGdsQmluZEJ1ZmZlckJhc2VFWFQAZ2xCaW5kQnVmZmVyQmFzZU5WAGdsVGV4QnVmZmVyAGdsVGV4QnVmZmVyQVJCAEdMX0FSQl9waXhlbF9idWZmZXJfb2JqZWN0AEdMX0FSQl90ZXh0dXJlX2J1ZmZlcl9vYmplY3QAR0xfQVJCX3ZlcnRleF9hcnJheV9vYmplY3QAR0xfT0VTX3ZlcnRleF9hcnJheV9vYmplY3QAR0xfQVJCX3RyYW5zZm9ybV9mZWVkYmFjazIAZ2xCbGVuZEZ1bmNTZXBhcmF0ZUVYVABnbEJsZW5kRnVuY2kAZ2xCbGVuZEZ1bmNpQVJCAGdsQmxlbmRGdW5jU2VwYXJhdGVpAGdsQmxlbmRGdW5jU2VwYXJhdGVpQVJCAEdMX0FSQl9tdWx0aXRleHR1cmUAR0xfTlZfb2NjbHVzaW9uX3F1ZXJ5AEdMX0FSQl9vY2NsdXNpb25fcXVlcnkAR0xfRVhUX3RpbWVyX3F1ZXJ5AEdMX0FSQl90aW1lcl9xdWVyeQBnbEZvZ0Nvb3JkZnYAZ2xGb2dDb29yZGZ2RVhUAGdsU2Vjb25kYXJ5Q29sb3IzdWJ2AGdsU2Vjb25kYXJ5Q29sb3IzdWJ2RVhUAGdsU2Vjb25kYXJ5Q29sb3IzZnYAZ2xTZWNvbmRhcnlDb2xvcjNmdkVYVABnbE11bHRpVGV4Q29vcmQxZgBnbE11bHRpVGV4Q29vcmQxZkFSQgBnbE11bHRpVGV4Q29vcmQxZnYAZ2xNdWx0aVRleENvb3JkMWZ2QVJCAGdsTXVsdGlUZXhDb29yZDJmdgBnbE11bHRpVGV4Q29vcmQyZnZBUkIAZ2xNdWx0aVRleENvb3JkM2Z2AGdsTXVsdGlUZXhDb29yZDNmdkFSQgBnbE11bHRpVGV4Q29vcmQ0ZnYAZ2xNdWx0aVRleENvb3JkNGZ2QVJCAGdsTXVsdGlUZXhDb29yZDFkAGdsTXVsdGlUZXhDb29yZDFkQVJCAGdsTXVsdGlUZXhDb29yZDFkdgBnbE11bHRpVGV4Q29vcmQxZHZBUkIAZ2xNdWx0aVRleENvb3JkMmR2AGdsTXVsdGlUZXhDb29yZDJkdkFSQgBnbE11bHRpVGV4Q29vcmQzZHYAZ2xNdWx0aVRleENvb3JkM2R2QVJCAGdsTXVsdGlUZXhDb29yZDRkdgBnbE11bHRpVGV4Q29vcmQ0ZHZBUkIAZ2xHZW5PY2NsdXNpb25RdWVyaWVzAGdsR2VuT2NjbHVzaW9uUXVlcmllc05WAGdsRGVsZXRlT2NjbHVzaW9uUXVlcmllcwBnbERlbGV0ZU9jY2x1c2lvblF1ZXJpZXNOVgBnbElzT2NjbHVzaW9uUXVlcnkAZ2xJc09jY2x1c2lvblF1ZXJ5TlYAZ2xCZWdpbk9jY2x1c2lvblF1ZXJ5AGdsQmVnaW5PY2NsdXNpb25RdWVyeU5WAGdsRW5kT2NjbHVzaW9uUXVlcnkAZ2xFbmRPY2NsdXNpb25RdWVyeU5WAGdsR2V0T2NjbHVzaW9uUXVlcnlpdgBnbEdldE9jY2x1c2lvblF1ZXJ5aXZOVgBnbEdldE9jY2x1c2lvblF1ZXJ5dWl2AGdsR2V0T2NjbHVzaW9uUXVlcnl1aXZOVgBnbEdlblF1ZXJpZXMAZ2xHZW5RdWVyaWVzQVJCAGdsRGVsZXRlUXVlcmllcwBnbERlbGV0ZVF1ZXJpZXNBUkIAZ2xJc1F1ZXJ5AGdsSXNRdWVyeUFSQgBnbEJlZ2luUXVlcnkAZ2xCZWdpblF1ZXJ5QVJCAGdsRW5kUXVlcnkAZ2xFbmRRdWVyeUFSQgBnbEJlZ2luUXVlcnlJbmRleGVkAGdsQmVnaW5RdWVyeUluZGV4ZWRBUkIAZ2xFbmRRdWVyeUluZGV4ZWQAZ2xFbmRRdWVyeUluZGV4ZWRBUkIAZ2xHZXRRdWVyeWl2AGdsR2V0UXVlcnlpdkFSQgBnbEdldFF1ZXJ5T2JqZWN0aXYAZ2xHZXRRdWVyeU9iamVjdGl2QVJCAGdsR2V0UXVlcnlPYmplY3R1aXYAZ2xHZXRRdWVyeU9iamVjdHVpdkFSQgBnbEdldFF1ZXJ5T2JqZWN0dWk2NHYAZ2xHZXRRdWVyeU9iamVjdHVpNjR2RVhUAGdsUXVlcnlDb3VudGVyAGdsR2V0SW50ZWdlcjY0dgBHTF9BUkJfdGV4dHVyZV9tdWx0aXNhbXBsZQBnbFNhbXBsZU1hc2tpAEFSQl90ZXh0dXJlX211bHRpc2FtcGxlAEdMX0FSQl92ZXJ0ZXhfcHJvZ3JhbQBHTF9BUkJfZnJhZ21lbnRfcHJvZ3JhbQBnbEJpbmRQcm9ncmFtQVJCAGdsR2VuUHJvZ3JhbXNBUkIAZ2xEZWxldGVQcm9ncmFtc0FSQgBnbFByb2dyYW1TdHJpbmdBUkIAZ2xQcm9ncmFtTG9jYWxQYXJhbWV0ZXI0ZnZBUkIAZ2xTYW1wbGVyUGFyYW1ldGVyaQBnbFNhbXBsZXJQYXJhbWV0ZXJpQVJCAGdsU2FtcGxlclBhcmFtZXRlcmYAZ2xTYW1wbGVyUGFyYW1ldGVyZkFSQgBnbFNhbXBsZXJQYXJhbWV0ZXJpdgBnbFNhbXBsZXJQYXJhbWV0ZXJpdkFSQgBnbFNhbXBsZXJQYXJhbWV0ZXJmdgBnbFNhbXBsZXJQYXJhbWV0ZXJmdkFSQgBnbFNhbXBsZXJQYXJhbWV0ZXJJaXYAZ2xTYW1wbGVyUGFyYW1ldGVySWl2QVJCAGdsU2FtcGxlclBhcmFtZXRlckl1aXYAZ2xTYW1wbGVyUGFyYW1ldGVySXVpdkFSQgBnbEdldFNhbXBsZXJQYXJhbWV0ZXJpdgBnbEdldFNhbXBsZXJQYXJhbWV0ZXJpdkFSQgBnbEdldFNhbXBsZXJQYXJhbWV0ZXJmdgBnbEdldFNhbXBsZXJQYXJhbWV0ZXJmdkFSQgBnbEdldFNhbXBsZXJQYXJhbWV0ZXJJaXYAZ2xHZXRTYW1wbGVyUGFyYW1ldGVySWl2QVJCAGdsR2V0U2FtcGxlclBhcmFtZXRlckl1aXYAZ2xHZXRTYW1wbGVyUGFyYW1ldGVySXVpdkFSQgBnbEdlblNhbXBsZXJzAGdsR2VuU2FtcGxlcnNBUkIAZ2xEZWxldGVTYW1wbGVycwBnbERlbGV0ZVNhbXBsZXJzQVJCAGdsQmluZFNhbXBsZXIAZ2xCaW5kU2FtcGxlckFSQgBnbElzU2FtcGxlcgBnbElzU2FtcGxlckFSQgBGaXJlR0wARklSRUdMAEdMX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYwBHTF9BUkJfdGV4dHVyZV9zd2l6emxlAEdMX0VYVF90ZXh0dXJlX2NvbXByZXNzaW9uX3MzdGMAR0xfUzNfczN0YwBHTF9JTUdfdGV4dHVyZV9jb21wcmVzc2lvbl9wdnJ0YwBHTF9PRVNfY29tcHJlc3NlZF9FVEMxX1JHQjhfdGV4dHVyZQBHTF9BUkJfRVMzX2NvbXBhdGliaWxpdHkAR0xfRVhUX3RleHR1cmVfY29tcHJlc3Npb25fcmd0YwBHTF9FWFRfdGV4dHVyZV9ib3JkZXJfY2xhbXAAR0xfQVJCX3NoYWRvdwBHTF9BUkJfc2hhZG93X2FtYmllbnQAR0xfQVBQTEVfY2xpZW50X3N0b3JhZ2UAR0xfRVhUX3RleHR1cmVfaW50ZWdlcgBHZUZvcmNlIEZYAERpc2FibGluZyBfaXNOb25Qb3dlck9mVHdvVGV4dHVyZU1pcE1hcHBlZFN1cHBvcnRlZCBmb3IgR2VGb3JjZSBGWCBoYXJkd2FyZS4AR0xfQVJCX3RleHR1cmVfc3RvcmFnZQBESVNBQkxFAGdsVGV4U3RvcmFnZTFEAGdsVGV4U3RvcmFnZTFEQVJCAGdsVGV4dHVyZVN0b3JhZ2UxRABnbFRleHR1cmVTdG9yYWdlMURBUkIAZ2xUZXhTdG9yYWdlMkRBUkIAZ2xUZXh0dXJlU3RvcmFnZTJEAGdsVGV4dHVyZVN0b3JhZ2UyREFSQgBnbFRleFN0b3JhZ2UzREVYVABnbFRleHR1cmVTdG9yYWdlM0QAZ2xUZXh0dXJlU3RvcmFnZTNERVhUAGdsVGV4dHVyZVN0b3JhZ2UyRE11bHRpc2FtcGxlAGdsVGV4dHVyZVN0b3JhZ2UyRE11bHRpc2FtcGxlRVhUAGdsVGV4dHVyZVN0b3JhZ2UzRE11bHRpc2FtcGxlAGdsVGV4dHVyZVN0b3JhZ2UzRE11bHRpc2FtcGxlRVhUAGdsVGV4dHVyZVZpZXcAZ2xUZXh0dXJlVmlld0VYVABnbENvbXByZXNzZWRUZXhJbWFnZTJEQVJCAGdsQ29tcHJlc3NlZFRleFN1YkltYWdlMkRBUkIAZ2xHZXRDb21wcmVzc2VkVGV4SW1hZ2UAZ2xHZXRDb21wcmVzc2VkVGV4SW1hZ2VBUkIAZ2xUZXhJbWFnZTJETXVsdGlzYW1wbGUAZ2xUZXhJbWFnZTJETXVsdGlzYW1wbGVBUkIAZ2xUZXhQYXJhbWV0ZXJJaXZBUkIAZ2xUZXhQYXJhbWV0ZXJJaXZFWFQAZ2xUZXhQYXJhbWV0ZXJJdWl2QVJCAGdsVGV4UGFyYW1ldGVySXVpdkVYVABnbEJpbmRJbWFnZVRleHR1cmUAZ2xCaW5kSW1hZ2VUZXh0dXJlQVJCAEdMX0VYVF90ZXh0dXJlM0QAZ2xUZXhJbWFnZTNERVhUAGdsVGV4U3ViSW1hZ2UzREVYVABnbENvbXByZXNzZWRUZXhJbWFnZTNEAGdsQ29tcHJlc3NlZFRleEltYWdlM0RBUkIAZ2xDb21wcmVzc2VkVGV4U3ViSW1hZ2UzRABnbENvbXByZXNzZWRUZXhTdWJJbWFnZTNEQVJCAGdsVGV4SW1hZ2UzRE11bHRpc2FtcGxlAGdsR2V0TXVsdGlzYW1wbGVmdgBnbENvcHlUZXhTdWJJbWFnZTNEAGdsQ29weVRleFN1YkltYWdlM0RFWFQAZ2xCZWdpbkNvbmRpdGlvbmFsUmVuZGVyQVJCAGdsRW5kQ29uZGl0aW9uYWxSZW5kZXJBUkIAR0xfRVhUX3RleHR1cmVfYXJyYXkAZ2xHZXRUZXh0dXJlSGFuZGxlAGdsR2V0VGV4dHVyZUhhbmRsZUFSQgBnbEdldFRleHR1cmVIYW5kbGVOVgBnbE1ha2VUZXh0dXJlSGFuZGxlUmVzaWRlbnQAZ2xNYWtlVGV4dHVyZUhhbmRsZVJlc2lkZW50QVJCAGdsTWFrZVRleHR1cmVIYW5kbGVSZXNpZGVudE5WAGdsTWFrZVRleHR1cmVIYW5kbGVOb25SZXNpZGVudABnbE1ha2VUZXh0dXJlSGFuZGxlTm9uUmVzaWRlbnRBUkIAZ2xNYWtlVGV4dHVyZUhhbmRsZU5vblJlc2lkZW50TlYAZ2xVbmlmb3JtSGFuZGxldWk2NABnbFVuaWZvcm1IYW5kbGV1aTY0QVJCAGdsVW5pZm9ybUhhbmRsZXVpNjROVgBnbElzVGV4dHVyZUhhbmRsZVJlc2lkZW50AGdsSXNUZXh0dXJlSGFuZGxlUmVzaWRlbnRBUkIAZ2xJc1RleHR1cmVIYW5kbGVSZXNpZGVudE5WAGdsQmxlbmRDb2xvckVYVABHTF9TR0lYX2JsZW5kX2FscGhhX21pbm1heABHTF9FWFRfYmxlbmRfbG9naWNfb3AAZ2xCbGVuZEVxdWF0aW9uRVhUAGdsQmxlbmRFcXVhdGlvblNlcGFyYXRlRVhUAGdsQmxlbmRFcXVhdGlvbmkAZ2xCbGVuZEVxdWF0aW9uaUFSQgBnbEJsZW5kRXF1YXRpb25TZXBhcmF0ZWkAZ2xCbGVuZEVxdWF0aW9uU2VwYXJhdGVpQVJCAEdMX0VYVF9zdGVuY2lsX3dyYXAAR0xfRVhUX3N0ZW5jaWxfdHdvX3NpZGUAR0xfQVRJX3NlcGFyYXRlX3N0ZW5jaWwAZ2xBY3RpdmVTdGVuY2lsRmFjZUVYVABnbFN0ZW5jaWxPcFNlcGFyYXRlQVRJAGdsU3RlbmNpbEZ1bmNTZXBhcmF0ZUFUSQBnbENvbG9yTWFza2lBUkIAR0xfQVJCX2NvbG9yX2J1ZmZlcl9mbG9hdABnbENsYW1wQ29sb3JBUkIAZ2xQcmltaXRpdmVSZXN0YXJ0SW5kZXgAZ2xQcmltaXRpdmVSZXN0YXJ0SW5kZXhOVgBHTF9BUkJfcG9pbnRfcGFyYW1ldGVycwBHTF9FWFRfcG9pbnRfcGFyYW1ldGVycwBHTF9TR0lTX3BvaW50X3BhcmFtZXRlcnMAZ2xQb2ludFBhcmFtZXRlcmkAZ2xQb2ludFBhcmFtZXRlcmlBUkIAZ2xQb2ludFBhcmFtZXRlcmlFWFQAZ2xQb2ludFBhcmFtZXRlcmlTR0lTAGdsUG9pbnRQYXJhbWV0ZXJmAGdsUG9pbnRQYXJhbWV0ZXJmQVJCAGdsUG9pbnRQYXJhbWV0ZXJmRVhUAGdsUG9pbnRQYXJhbWV0ZXJmU0dJUwBnbFBvaW50UGFyYW1ldGVyZnYAZ2xQb2ludFBhcmFtZXRlcmZ2QVJCAGdsUG9pbnRQYXJhbWV0ZXJmdkVYVABnbFBvaW50UGFyYW1ldGVyZnZTR0lTAEdMX05WX211bHRpc2FtcGxlX2ZpbHRlcl9oaW50AGdsU2FtcGxlQ292ZXJhZ2VBUkIAZ2xCaW5kUmVuZGVyYnVmZmVyRVhUAGdsQmluZFJlbmRlcmJ1ZmZlck9FUwBnbERlbGV0ZVJlbmRlcmJ1ZmZlcnNFWFQAZ2xEZWxldGVSZW5kZXJidWZmZXJzT0VTAGdsR2VuUmVuZGVyYnVmZmVyc0VYVABnbEdlblJlbmRlcmJ1ZmZlcnNPRVMAZ2xSZW5kZXJidWZmZXJTdG9yYWdlRVhUAGdsUmVuZGVyYnVmZmVyU3RvcmFnZU9FUwBnbFJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZQBnbFJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZUVYVABnbFJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZU9FUwBnbFJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZUNvdmVyYWdlTlYAZ2xCaW5kRnJhbWVidWZmZXJFWFQAZ2xCaW5kRnJhbWVidWZmZXJPRVMAZ2xEZWxldGVGcmFtZWJ1ZmZlcnNFWFQAZ2xEZWxldGVGcmFtZWJ1ZmZlcnNPRVMAZ2xHZW5GcmFtZWJ1ZmZlcnNFWFQAZ2xHZW5GcmFtZWJ1ZmZlcnNPRVMAZ2xDaGVja0ZyYW1lYnVmZmVyU3RhdHVzRVhUAGdsQ2hlY2tGcmFtZWJ1ZmZlclN0YXR1c09FUwBnbEZyYW1lYnVmZmVyVGV4dHVyZTFEAGdsRnJhbWVidWZmZXJUZXh0dXJlMURFWFQAZ2xGcmFtZWJ1ZmZlclRleHR1cmUxRE9FUwBnbEZyYW1lYnVmZmVyVGV4dHVyZTJERVhUAGdsRnJhbWVidWZmZXJUZXh0dXJlMkRPRVMAZ2xGcmFtZWJ1ZmZlclRleHR1cmUzRABnbEZyYW1lYnVmZmVyVGV4dHVyZTNERVhUAGdsRnJhbWVidWZmZXJUZXh0dXJlM0RPRVMAZ2xGcmFtZWJ1ZmZlclRleHR1cmUAZ2xGcmFtZWJ1ZmZlclRleHR1cmVFWFQAZ2xGcmFtZWJ1ZmZlclRleHR1cmVPRVMAZ2xGcmFtZWJ1ZmZlclRleHR1cmVMYXllcgBnbEZyYW1lYnVmZmVyVGV4dHVyZUxheWVyRVhUAGdsRnJhbWVidWZmZXJUZXh0dXJlTGF5ZXJPRVMAZ2xGcmFtZWJ1ZmZlclRleHR1cmVGYWNlAGdsRnJhbWVidWZmZXJUZXh0dXJlRmFjZUVYVABnbEZyYW1lYnVmZmVyVGV4dHVyZUZhY2VPRVMAZ2xGcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlckVYVABnbEZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyT0VTAGdsRnJhbWVidWZmZXJQYXJhbWV0ZXJpAGdsRnJhbWVidWZmZXJQYXJhbWV0ZXJpQVJCAGdsRnJhbWVidWZmZXJQYXJhbWV0ZXJpT0VTAGdsR2V0RnJhbWVidWZmZXJQYXJhbWV0ZXJpdgBnbEdldEZyYW1lYnVmZmVyUGFyYW1ldGVyaXZBUkIAZ2xHZXRGcmFtZWJ1ZmZlclBhcmFtZXRlcml2T0VTAGdsTmFtZWRGcmFtZWJ1ZmZlclBhcmFtZXRlcmkAZ2xOYW1lZEZyYW1lYnVmZmVyUGFyYW1ldGVyaUVYVABnbE5hbWVkRnJhbWVidWZmZXJQYXJhbWV0ZXJpT0VTAGdsR2V0TmFtZWRGcmFtZWJ1ZmZlclBhcmFtZXRlcml2AGdsR2V0TmFtZWRGcmFtZWJ1ZmZlclBhcmFtZXRlcml2RVhUAGdsR2V0TmFtZWRGcmFtZWJ1ZmZlclBhcmFtZXRlcml2T0VTAGdsR2VuZXJhdGVNaXBtYXBFWFQAZ2xHZW5lcmF0ZU1pcG1hcE9FUwBnbEJsaXRGcmFtZWJ1ZmZlcgBnbEJsaXRGcmFtZWJ1ZmZlckVYVABnbEJsaXRGcmFtZWJ1ZmZlck9FUwBnbEdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcml2RVhUAGdsR2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyaXZPRVMAR0xfRVhUX3BhY2tlZF9kZXB0aF9zdGVuY2lsAEdMX09FU19wYWNrZWRfZGVwdGhfc3RlbmNpbABnbEdldFN1YnJvdXRpbmVVbmlmb3JtTG9jYXRpb24AZ2xHZXRBY3RpdmVTdWJyb3V0aW5lVW5pZm9ybU5hbWUAZ2xHZXRBY3RpdmVTdWJyb3V0aW5lVW5pZm9ybWl2AGdsR2V0U3Vicm91dGluZUluZGV4AGdsR2V0QWN0aXZlU3Vicm91dGluZU5hbWUAZ2xHZXRQcm9ncmFtU3RhZ2VpdgBnbFVuaWZvcm1TdWJyb3V0aW5lc3VpdgBnbEdldFVuaWZvcm1TdWJyb3V0aW5ldWl2AGdsRmVuY2VTeW5jAGdsSXNTeW5jAGdsRGVsZXRlU3luYwBnbENsaWVudFdhaXRTeW5jAGdsV2FpdFN5bmMAZ2xHZXRTeW5jaXYAZ2xEcmF3QXJyYXlzSW5kaXJlY3QAZ2xEcmF3QXJyYXlzSW5kaXJlY3RFWFQAZ2xNdWx0aURyYXdBcnJheXNJbmRpcmVjdABnbE11bHRpRHJhd0FycmF5c0luZGlyZWN0RVhUAGdsRHJhd0VsZW1lbnRzSW5kaXJlY3QAZ2xEcmF3RWxlbWVudHNJbmRpcmVjdEVYVABnbE11bHRpRHJhd0VsZW1lbnRzSW5kaXJlY3QAZ2xNdWx0aURyYXdFbGVtZW50c0luZGlyZWN0RVhUAGdsVGV4UGFnZUNvbW1pdG1lbnQAZ2xUZXhQYWdlQ29tbWl0bWVudEFSQgBnbFRleFBhZ2VDb21taXRtZW50RVhUAGdsQmVnaW5UcmFuc2Zvcm1GZWVkYmFja0VYVABnbEVuZFRyYW5zZm9ybUZlZWRiYWNrRVhUAGdsVHJhbnNmb3JtRmVlZGJhY2tWYXJ5aW5nc0VYVABnbEdldFRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZ0VYVABnbEJpbmRUcmFuc2Zvcm1GZWVkYmFjawBnbERlbGV0ZVRyYW5zZm9ybUZlZWRiYWNrcwBnbEdlblRyYW5zZm9ybUZlZWRiYWNrcwBnbElzVHJhbnNmb3JtRmVlZGJhY2sAZ2xQYXVzZVRyYW5zZm9ybUZlZWRiYWNrAGdsUmVzdW1lVHJhbnNmb3JtRmVlZGJhY2sAZ2xEcmF3VHJhbnNmb3JtRmVlZGJhY2sAZ2xEcmF3VHJhbnNmb3JtRmVlZGJhY2tTdHJlYW0AZ2xEcmF3VHJhbnNmb3JtRmVlZGJhY2tJbnN0YW5jZWQAZ2xEcmF3VHJhbnNmb3JtRmVlZGJhY2tTdHJlYW1JbnN0YW5jZWQAZ2xDcmVhdGVUcmFuc2Zvcm1GZWVkYmFja3MAZ2xUcmFuc2Zvcm1GZWVkYmFja0J1ZmZlckJhc2UAZ2xUcmFuc2Zvcm1GZWVkYmFja0J1ZmZlclJhbmdlAGdsR2V0VHJhbnNmb3JtRmVlZGJhY2tpdgBnbEdldFRyYW5zZm9ybUZlZWRiYWNraV92AGdsR2V0VHJhbnNmb3JtRmVlZGJhY2tpNjRfdgBnbEdlblZlcnRleEFycmF5c09FUwBnbEJpbmRWZXJ0ZXhBcnJheU9FUwBnbERlbGV0ZVZlcnRleEFycmF5c09FUwBnbElzVmVydGV4QXJyYXlPRVMAR0xfQVJCX3ZlcnRleF9hdHRyaWJfYmluZGluZwBnbEJpbmRWZXJ0ZXhCdWZmZXIAZ2xCaW5kVmVydGV4QnVmZmVyT0VTAGdsVmVydGV4QXJyYXlWZXJ0ZXhCdWZmZXIAZ2xWZXJ0ZXhBcnJheVZlcnRleEJ1ZmZlck9FUwBnbFZlcnRleEF0dHJpYkJpbmRpbmcAZ2xWZXJ0ZXhBdHRyaWJCaW5kaW5nT0VTAGdsVmVydGV4QXJyYXlBdHRyaWJCaW5kaW5nAGdsVmVydGV4QXJyYXlBdHRyaWJCaW5kaW5nT0VTAGdsVmVydGV4QXR0cmliTEZvcm1hdABnbFZlcnRleEF0dHJpYkxGb3JtYXRPRVMAZ2xWZXJ0ZXhBcnJheUF0dHJpYkZvcm1hdABnbFZlcnRleEFycmF5QXR0cmliRm9ybWF0T0VTAGdsVmVydGV4QXJyYXlBdHRyaWJJRm9ybWF0AGdsVmVydGV4QXJyYXlBdHRyaWJJRm9ybWF0T0VTAGdsVmVydGV4QXJyYXlBdHRyaWJMRm9ybWF0AGdsVmVydGV4QXJyYXlBdHRyaWJMRm9ybWF0T0VTAGdsTXVsdGlEcmF3QXJyYXlzAGdsTXVsdGlEcmF3QXJyYXlzRVhUAGdsTXVsdGlEcmF3RWxlbWVudHMAZ2xNdWx0aURyYXdFbGVtZW50c0VYVABnbERyYXdBcnJheXNJbnN0YW5jZWRCYXNlSW5zdGFuY2UAZ2xEcmF3QXJyYXlzSW5zdGFuY2VkQmFzZUluc3RhbmNlRVhUAGdsRHJhd0VsZW1lbnRzSW5zdGFuY2VkQmFzZUluc3RhbmNlAGdsRHJhd0VsZW1lbnRzSW5zdGFuY2VkQmFzZUluc3RhbmNlRVhUAGdsRHJhd0VsZW1lbnRzSW5zdGFuY2VkQmFzZVZlcnRleEJhc2VJbnN0YW5jZQBnbERyYXdFbGVtZW50c0luc3RhbmNlZEJhc2VWZXJ0ZXhCYXNlSW5zdGFuY2VFWFQAZ2xEcmF3RWxlbWVudHNCYXNlVmVydGV4AGdsRHJhd0VsZW1lbnRzQmFzZVZlcnRleEVYVABnbERyYXdSYW5nZUVsZW1lbnRzQmFzZVZlcnRleABnbERyYXdSYW5nZUVsZW1lbnRzQmFzZVZlcnRleEVYVABnbERyYXdFbGVtZW50c0luc3RhbmNlZEJhc2VWZXJ0ZXgAZ2xEcmF3RWxlbWVudHNJbnN0YW5jZWRCYXNlVmVydGV4RVhUAGdsTXVsdGlEcmF3RWxlbWVudHNCYXNlVmVydGV4AGdsTXVsdGlEcmF3RWxlbWVudHNCYXNlVmVydGV4RVhUAGdsUHJvdm9raW5nVmVydGV4AGdsUHJvdm9raW5nVmVydGV4RVhUAGdsQmVnaW5Db25kaXRpb25hbFJlbmRlckVYVABnbEVuZENvbmRpdGlvbmFsUmVuZGVyRVhUAEdMX0FSQl92aWV3cG9ydF9hcnJheQBnbFZpZXdwb3J0QXJyYXl2AGdsVmlld3BvcnRJbmRleGVkZgBnbFZpZXdwb3J0SW5kZXhlZGZ2AGdsU2Npc3NvckFycmF5dgBnbFNjaXNzb3JJbmRleGVkAGdsU2Npc3NvckluZGV4ZWR2AGdsRGVwdGhSYW5nZUFycmF5dgBnbERlcHRoUmFuZ2VJbmRleGVkAGdsRGVwdGhSYW5nZUluZGV4ZWRmT0VTAGdsRGVwdGhSYW5nZUluZGV4ZWRmTlYAZ2xHZXRGbG9hdGlfdgBnbEdldERvdWJsZWlfdgBnbEdldEludGVnZXJJbmRleGVkdkVYVABnbEVuYWJsZUluZGV4ZWRFWFQAZ2xEaXNhYmxlSW5kZXhlZEVYVABnbElzRW5hYmxlZEluZGV4ZWRFWFQAZ2xPYmplY3RMYWJlbABPcGVuR0wgZXh0ZW5zaW9ucyBzdXBwb3J0ZWQgYnkgaW5zdGFsbGVkIE9wZW5HTCBkcml2ZXJzIGFyZToAICAgIABPcGVuR0wgZXh0ZW5zaW9uICcAJyBpcyBzdXBwb3J0ZWQuACcgaXMgc3VwcG9ydGVkIGJ5IE9wZW5HTApkcml2ZXIgYnV0IGhhcyBiZWVuIGRpc2FibGVkIGJ5IG9zZzo6Z2V0R0xFeHRlbnNpb25EaXNhYmxlU3RyaW5nKCkuACcgaXMgbm90IHN1cHBvcnRlZC4AT1NHX0dMX0VYVEVOU0lPTl9ESVNBQkxFAE4zb3NnMTJHTEV4dGVuc2lvbnNFAEdMQnVmZmVyT2JqZWN0U2V0PQA6IFJldXNpbmcgYW4gYWN0aXZlIEdMQnVmZmVyT2JqZWN0IAAgX251bU9mR0xCdWZmZXJPYmplY3RzPQAgc2l6ZT0AUmV1c2luZyBhIHJlY2VudGx5IG9ycGhhbmVkIGFjdGl2ZSBHTEJ1ZmZlck9iamVjdCAAR0xCdWZmZXJPYmplY3RTZXQ6OkdMQnVmZmVyT2JqZWN0U2V0IF9wcm9maWxlLl9zaXplPQBCdWZmZXJPYmplY3Q6OgA6OkJ1ZmZlck9iamVjdDo6Y29tcHV0ZVJlcXVpcmVkQnVmZmVyU2l6ZSgpIGVycm9yLCBCdWZmZXJEYXRhIGlzIDB4MABHTEJ1ZmZlck9iamVjdE1hbmFnZXIAQ29udGV4dERhdGEATjNvc2cxMUNvbnRleHREYXRhRQBOM29zZzEyQ3VsbFNldHRpbmdzRQBOM29zZzEyT2NjbHVkZXJOb2RlRQBOM29zZzVHcm91cEUATjNvc2c0Tm9kZUUAV2FybmluZzogR3JvdXA6OnJlbW92ZUNoaWxkKGksbnVtQ2hpbGRyZW5Ub1JlbW92ZSkgaGFzIGJlZW4gcGFzc2VkIGFuIGV4Y2Vzc2l2ZSBudW1iZXIAICAgICAgICAgb2YgY2hpbHJlbiB0byByZW1vdmUsIHRyaW1taW5nIGp1c3QgdG8gZW5kIG9mIGNoaWxkIGxpc3QuAE4zb3NnMTBJbmRleEFycmF5RQBDdWxsU2V0dGluZ3M6OnJlYWRFbnZpcm9ubWVudGFsVmFyaWFibGVzKCkAT1NHX0NPTVBVVEVfTkVBUl9GQVJfTU9ERQBET19OT1RfQ09NUFVURV9ORUFSX0ZBUgBDT01QVVRFX05FQVJfRkFSX1VTSU5HX0JPVU5ESU5HX1ZPTFVNRVMAQ09NUFVURV9ORUFSX0ZBUl9VU0lOR19QUklNSVRJVkVTAFNldCBjb21wdXRlIG5lYXIgZmFyIG1vZGUgdG8gAE9TR19ORUFSX0ZBUl9SQVRJTwBTZXQgbmVhci9mYXIgcmF0aW8gdG8gAE4zb3NnNkNhbWVyYUUAQ29sb3JNYXNrAE4zb3NnOUNvbG9yTWFza0UAQ29sbGVjdE9jY2x1ZGVyc1Zpc2l0b3IATjNvc2cxNVVuaWZvcm1DYWxsYmFja0UATjNvc2cyMlN0YXRlQXR0cmlidXRlQ2FsbGJhY2tFAE4zb3NnMTJQcmltaXRpdmVTZXRFAE4zb3NnNUltYWdlRQBOM29zZzhEcmF3YWJsZUUATjNvc2c2Q29weU9wRQBOM29zZzEwUmVmTWF0cml4ZEUATjNvc2c3TWF0cml4ZEUATjNvc2c5Q3VsbFN0YWNrRQBOM29zZzExTm9kZVZpc2l0b3JFAE4zb3NnMTBDdWxsaW5nU2V0RQBOM29zZzIzQ29sbGVjdE9jY2x1ZGVyc1Zpc2l0b3JFAENvbXB1dGVCb3VuZHNWaXNpdG9yAE4zb3NnMjBDb21wdXRlQm91bmRzVmlzaXRvckUAVmVydGV4QXJyYXlTdGF0ZSogRHJhd2FibGU6OmNyZWF0ZVZlcnRleEFycmF5U3RhdGVJbXBsZW1lbnRhdGlvbihSZW5kZXJJbmZvJiByZW5kZXJJbmZvKSBjb25zdCAAMTJDb21wdXRlQm91bmQATjNvc2cxNlByaW1pdGl2ZUZ1bmN0b3JFAFdhcm5pbmc6IERyYXdhYmxlOjpkZWxldGVEaXNwbGF5TGlzdCguLikgLSBub3Qgc3VwcG9ydGVkLgBEaXNwbGF5TGlzdE1hbmFnZXIARGlzcGxheUxpc3RNYW5hZ2VyOjpkZWxldGVBbGxHTE9iamVjdHMoKSBOb3QgY3VycmVudGx5IGltcGxlbWVudGVkAFdhcm5pbmc6IERyYXdhYmxlOjpmbHVzaERlbGV0ZWREaXNwbGF5TGlzdHMoLi4pIC0gbm90IHN1cHBvcnRlZC4AMThEaXNwbGF5TGlzdE1hbmFnZXIARHJhd2FibGUATm9kZQB2b2lkIAA6OmNyZWF0ZUdMT2JqZWN0KCkgOiBOb3QgSW1wbGVtZW50ZWQAOjpkZWxldGVBbGxHTE9iamVjdHMoKSA6IE5vdCBJbXBsZW1lbnRlZABOM29zZzE1R0xPYmplY3RNYW5hZ2VyRQBOM29zZzIxR0xSZW5kZXJCdWZmZXJNYW5hZ2VyRQBOM29zZzI2R0xGcmFtZUJ1ZmZlck9iamVjdE1hbmFnZXJFAEdMUmVuZGVyQnVmZmVyTWFuYWdlcgBSZW5kZXJCdWZmZXIATjNvc2cxMlJlbmRlckJ1ZmZlckUAV2FybmluZzogRVhUX2ZyYW1lYnVmZmVyX29iamVjdCBpcyBub3Qgc3VwcG9ydGVkAFdhcm5pbmc6IEZyYW1lQnVmZmVyT2JqZWN0OiBjb3VsZCBub3QgY3JlYXRlIHRoZSBGQk8AV2FybmluZzogRnJhbWVCdWZmZXJPYmplY3Q6IGNvdWxkIG5vdCBzZXQgZHJhdyBidWZmZXJzLCBnbERyYXdCdWZmZXJzIGlzIG5vdCBzdXBwb3J0ZWQhAFdhcm5pbmc6IEZyYW1lQnVmZmVyT2JqZWN0OiBjb3VsZCBub3QgYXR0YWNoIFBBQ0tFRF9ERVBUSF9TVEVOQ0lMX0JVRkZFUiwgRVhUX3BhY2tlZF9kZXB0aF9zdGVuY2lsIGlzIG5vdCBzdXBwb3J0ZWQhAENvdmVyYWdlIHNhbXBsZXMgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gY29sb3Igc2FtcGxlcy4gU2V0dGluZyBjb3ZlcmFnZSBzYW1wbGVzIGVxdWFsIHRvIGNvbG9yIHNhbXBsZXMuAEdMRnJhbWVCdWZmZXJPYmplY3RNYW5hZ2VyAEZyYW1lQnVmZmVyT2JqZWN0AE4zb3NnMTdGcmFtZUJ1ZmZlck9iamVjdEUATjNvc2cxMEZyYW1lU3RhbXBFAEdlb2RlAEdyb3VwAE4zb3NnNUdlb2RlRQBHZW9tZXRyeTo6YWNjZXB0KFByaW1pdGl2ZUluZGV4RnVuY3RvciYgZnVuY3Rvcik6IFVzaW5nIHZlcnRleCBhdHRyaWJ1dGUgaW5zdGVhZABHZW9tZXRyeTo6YWNjZXB0KFByaW1pdGl2ZUluZGV4RnVuY3RvciYgZnVuY3RvcikgdW5hYmxlIHRvIHdvcmsgZHVlIHRvIGRlcHJlY2F0ZWQgZGF0YSwgY2FsbCBnZW9tZXRyeS0+Zml4RGVwcmVjYXRlZERhdGEoKTsAV2FybmluZzogR2VvbWV0cnk6OmFjY2VwdChQcmltaXRpdmVJbmRleEZ1bmN0b3ImKSBjYW5ub3QgaGFuZGxlIFZlcnRleCBBcnJheSB0eXBlAFVzaW5nIHZlcnRleCBhdHRyaWJ1dGUgaW5zdGVhZABHZW9tZXRyeTo6YWNjZXB0KFByaW1pdGl2ZUZ1bmN0b3ImIGZ1bmN0b3IpIHVuYWJsZSB0byB3b3JrIGR1ZSB0byBkZXByZWNhdGVkIGRhdGEsIGNhbGwgZ2VvbWV0cnktPmZpeERlcHJlY2F0ZWREYXRhKCk7AFdhcm5pbmc6IEdlb21ldHJ5OjphY2NlcHQoUHJpbWl0aXZlRnVuY3RvciYpIGNhbm5vdCBoYW5kbGUgVmVydGV4IEFycmF5IHR5cGUAR2VvbWV0cnk6OmFjY2VwdChDb25zdEF0dHJpYnV0ZUZ1bmN0b3ImIGFmKTogVXNpbmcgdmVydGV4IGF0dHJpYnV0ZSBpbnN0ZWFkAE4zb3NnMzNDb25zdEF0dHJpYnV0ZUZ1bmN0b3JBcnJheVZpc2l0b3JFAE4zb3NnMTdDb25zdEFycmF5VmlzaXRvckUAR2VvbWV0cnk6OmFjY2VwdChBdHRyaWJ1dGVGdW5jdG9yJiBhZik6IFVzaW5nIHZlcnRleCBhdHRyaWJ1dGUgaW5zdGVhZABOM29zZzI4QXR0cmlidXRlRnVuY3RvckFycmF5VmlzaXRvckUATjNvc2cxMkFycmF5VmlzaXRvckUAR2VvbWV0cnk6OmRyYXdJbXBsZW1lbnRhdGlvbigpIHVuYWJsZSB0byByZW5kZXIgZHVlIHRvIGRlcHJlY2F0ZWQgZGF0YSwgY2FsbCBnZW9tZXRyeS0+Zml4RGVwcmVjYXRlZERhdGEoKTsAc3RhcnQgb2YgR2VvbWV0cnk6OmRyYXdJbXBsZW1lbnRhdGlvbigpAEdlb21ldHJ5OjpkcmF3SW1wbGVtZW50YXRpb24oKSBhZnRlciB2ZXJ0ZXggYXJyYXlzIHNldHVwLgBlbmQgb2YgR2VvbWV0cnk6OmRyYXdJbXBsZW1lbnRhdGlvbigpLgBOM29zZzMxVGVtcGxhdGVUYXJnZXRBdHRyaWJ1dGVEaXNwYXRjaElqZkVFAE4zb3NnMTdBdHRyaWJ1dGVEaXNwYXRjaEUAbmV3VG90YWxTaXplPQAsIF9wcm9maWxlLl9zaXplPQAgICAgQWxsb2NhdGluZyBuZXcgZ2xCdWZmZXJEYXRhKCksIF9hbGxvY2F0ZWRTaXplPQBJbWFnZTo6Y29tcHV0ZVBpeGVsU2l6ZUluQml0cyhmb3JtYXQsdHlwZSkgOiBjYW5ub3QgY29tcHV0ZSBjb3JyZWN0IHNpemUgb2YgY29tcHJlc3NlZCBmb3JtYXQgKABJbWFnZTo6Y29tcHV0ZVBpeGVsU2l6ZUluQml0cyhmb3JtYXQsdHlwZSkgOiBiaXRzIHBlciBwaXhlbCAoACkgaXMgbm90IGFuIGludGVnZXIgZm9yIEdMX0tIUl90ZXh0dXJlX2NvbXByZXNzaW9uX2FzdGNfaGRyIHNpemVzIG90aGVyIHRoYW4gNHg0IGFuZCA4eDguACkgaXMgbm90IGFuIGludGVnZXIgZm9yIEdMX0tIUl90ZXh0dXJlX2NvbXByZXNzaW9uX2FzdGNfaGRyIHNpemUAZXJyb3IgdHlwZSA9IABlcnJvciBwaXhlbEZvcm1hdCA9IABHZW9tZXRyeQBOM29zZzhHZW9tZXRyeUUATjNvc2cxNUdyYXBoaWNzQ29udGV4dDI1V2luZG93aW5nU3lzdGVtSW50ZXJmYWNlc0UAR3JhcGhpY3NDb250ZXh0AENvbnRleHREYXRhOjp1bnJlZ2lzdGVyR3JhcGhpY3NDb250ZXh0IABjbG9zZSgAUmVsZWFzaW5nIEdMIG9iamVjdHMgZm9yIENhbWVyYT0AIF9zdGF0ZT0AQ2xvc2luZyBzdGlsbCB2aWFibGUgd2luZG93IAAgX3N0YXRlLT5nZXRDb250ZXh0SUQoKT0ARG9pbmcgZGVsZXRlIG9mIEdMIG9iamVjdHMARG9uZSBkZWxldGUgb2YgR0wgb2JqZWN0cwBtYWtlQ3VycmVudCBkaWQgbm90IHN1Y2NlZWQsIGNvdWxkIG5vdCBkbyBmbHVzaC9kZWxldGlvbiBvZiBPcGVuR0wgb2JqZWN0cy4ARG9pbmcgZGlzY2FyZCBvZiBkZWxldGVkIE9wZW5HTCBvYmplY3RzLgBOM29zZzE1R3JhcGhpY3NDb250ZXh0RQBOM29zZzIzU3luY1N3YXBCdWZmZXJzQ2FsbGJhY2tFAE4zb3NnMTVHcmFwaGljc0NvbnRleHQxMlN3YXBDYWxsYmFja0UATjNvc2cyMUdyYXBoaWNzQ29zdEVzdGltYXRvckUAQ2FuY2VsbGluZyBPcGVyYXRpb25UaHJlYWQgACBpc1J1bm5pbmcoKT0AICAgRG9pbmcgY2FuY2VsIAAgICBXYWl0aW5nIGZvciBPcGVyYXRpb25UaHJlYWQgdG8gY2FuY2VsIAAgIE9wZXJhdGlvblRocmVhZDo6Y2FuY2VsKCkgdGhyZWFkIGNhbmNlbGxlZCAARG9pbmcgcnVuIABleGl0IGxvb3AgAE4zb3NnMTVPcGVyYXRpb25UaHJlYWRFAE4zb3NnMTRHcmFwaGljc1RocmVhZEUATjNvc2c5T3BlcmF0aW9uRQBOM29zZzIyQmxvY2tBbmRGbHVzaE9wZXJhdGlvbkUATjExT3BlblRocmVhZHM1QmxvY2tFAE4zb3NnMTdHcmFwaGljc09wZXJhdGlvbkUATjNvc2cyMUVuZE9mRHluYW1pY0RyYXdCbG9ja0UATjNvc2c1U3RhdGUzOUR5bmFtaWNPYmplY3RSZW5kZXJpbmdDb21wbGV0ZWRDYWxsYmFja0UATjExT3BlblRocmVhZHMxMEJsb2NrQ291bnRFAFdhcm5pbmc6IG5lZ2F0aXZlIG9mZnNldHMgcGFzc2VkIHRvIEltYWdlOjpjb3B5U3ViSW1hZ2UoLi4pIG5vdCBzdXBwb3J0ZWQsIG9wZXJhdGlvbiBpZ25vcmVkLgBhbGxvY2F0aW5nIGltYWdlAFdhcm5pbmc6IG9mZnNldHMgcGFzc2VkIHRvIEltYWdlOjpjb3B5U3ViSW1hZ2UoLi4pIG91dHNpZGUgZGVzdGluYXRpb24gaW1hZ2UsIG9wZXJhdGlvbiBpZ25vcmVkLgBXYXJuaW5nOiBpbWFnZSB3aXRoIGFuIGluY29tcGF0aWJsZSBwaXhlbCBmb3JtYXRzIHBhc3NlZCB0byBJbWFnZTo6Y29weVN1YkltYWdlKC4uKSwgb3BlcmF0aW9uIGlnbm9yZWQuAEVycm9yIEltYWdlOjpjb3B5U3ViSW1hZ2UoKSBkaWQgbm90IHN1Y2NlZWQgOiBzaXplIAAgb3Igb2Zmc2V0IAAgbm90IG11bHRpcGxlIG9mIDQuACBub3QgbXVsdGlwbGUgb2YgZm9vdHByaW50IABFcnJvciBJbWFnZTo6c2NhbGVJbWFnZSgpIGRpZCBub3Qgc3VjY2VlZCA6IGVycm9yU3RyaW5nID0gAC4gVGhlIHJlbmRlcmluZyBjb250ZXh0IG1heSBiZSBpbnZhbGlkLgBubyBlcnJvcgBpbnZhbGlkIGVudW1lcmFudABpbnZhbGlkIHZhbHVlAGludmFsaWQgb3BlcmF0aW9uAHN0YWNrIG92ZXJmbG93AHN0YWNrIHVuZGVyZmxvdwB0YWJsZSB0b28gbGFyZ2UAaW52YWxpZCBmcmFtZWJ1ZmZlciBvcGVyYXRpb24AaW5jb21wYXRpYmxlIGdsIHZlcnNpb24AZ2x1VGVzc0JlZ2luUG9seWdvbigpIG11c3QgcHJlY2VkZSBhIGdsdVRlc3NFbmRQb2x5Z29uKCkAZ2x1VGVzc0JlZ2luQ29udG91cigpIG11c3QgcHJlY2VkZSBhIGdsdVRlc3NFbmRDb250b3VyKCkAZ2x1VGVzc0VuZFBvbHlnb24oKSBtdXN0IGZvbGxvdyBhIGdsdVRlc3NCZWdpblBvbHlnb24oKQBnbHVUZXNzRW5kQ29udG91cigpIG11c3QgZm9sbG93IGEgZ2x1VGVzc0JlZ2luQ29udG91cigpAGEgY29vcmRpbmF0ZSBpcyB0b28gbGFyZ2UAbmVlZCBjb21iaW5lIGNhbGxiYWNrAHdpZHRoID4gMAAvaG9tZS9rb3JuZXJyL3AvbW90b3IvbW90b3IvMDUuTW9kZWxUZXh0dXJlL21vdG9yLXdlYi8uLi8uLi8uLi8uLi9tb3Rvci8uLi9PcGVuU2NlbmVHcmFwaC9zcmMvb3NnL2dsdS9saWJ1dGlsL21pcG1hcC5jcHAAaW1hZ2Vfc2l6ZQBoZWlnaHQgPiAwAGl0ZXIyID09ICZvbGRpbWFnZVt3aWR0aCpoZWlnaHQqY29tcG9uZW50c10AZW1wdHlfaW1hZ2UAaXRlcjIgPT0gJm9sZGltYWdlW3dpZHRoKmhlaWdodCogZWxlbWVudHNfcGVyX2dyb3VwKGZvcm1hdCwwKV0AaXRlciA9PSAmKChHTHVieXRlICopdXNlcmRhdGEpW3Jvd3NpemUqaGVpZ2h0ICsgcHNtLT5wYWNrX3NraXBfcm93cyAqIHJvd3NpemUgKyBwc20tPnBhY2tfc2tpcF9waXhlbHMgKiBncm91cF9zaXplXQAwLjAgPD0gc2hvdmVDb21wb25lbnRzWzBdICYmIHNob3ZlQ29tcG9uZW50c1swXSA8PSAxLjAAc2hvdmUyMTAxMDEwcmV2ADAuMCA8PSBzaG92ZUNvbXBvbmVudHNbMV0gJiYgc2hvdmVDb21wb25lbnRzWzFdIDw9IDEuMAAwLjAgPD0gc2hvdmVDb21wb25lbnRzWzJdICYmIHNob3ZlQ29tcG9uZW50c1syXSA8PSAxLjAAMC4wIDw9IHNob3ZlQ29tcG9uZW50c1szXSAmJiBzaG92ZUNvbXBvbmVudHNbM10gPD0gMS4wAHNob3ZlMTAxMDEwMgBzaG92ZTg4ODhyZXYAc2hvdmU4ODg4AHNob3ZlMTU1NXJldgBzaG92ZTU1NTEAc2hvdmU0NDQ0cmV2AHNob3ZlNDQ0NABzaG92ZTU2NXJldgBzaG92ZTU2NQBzaG92ZTIzM3JldgBzaG92ZTMzMgBsZWdhbFR5cGUodHlwZSkAaXNUeXBlUGFja2VkUGl4ZWwAaXRlcjIgPT0gJm5ld2ltYWdlW3dpZHRoKmhlaWdodCpjb21wb25lbnRzXQBmaWxsX2ltYWdlAGl0ZXIyID09ICZuZXdpbWFnZVt3aWR0aCpoZWlnaHQqIGVsZW1lbnRzX3Blcl9ncm91cChmb3JtYXQsMCldAGl0ZXIgPT0gJigoY29uc3QgR0x1Ynl0ZSAqKXVzZXJkYXRhKVtyb3dzaXplKmhlaWdodCArIHBzbS0+dW5wYWNrX3NraXBfcm93cyAqIHJvd3NpemUgKyBwc20tPnVucGFja19za2lwX3BpeGVscyAqIGdyb3VwX3NpemVdAEVycm9yIEltYWdlOjpzY2FsZUltYWdlKCkgZG8gbm90IHN1Y2NlZWQgOiBjYW5ub3Qgc2NhbGUgTlVMTCBpbWFnZS4ARXJyb3IgSW1hZ2U6OnNjYWxlSW1hZ2UoKSBkbyBub3Qgc3VjY2VlZCA6IHNjYWxpbmcgb2Ygdm9sdW1lcyBub3QgaW1wbGVtZW50ZWQuAFdhcm5pbmc6IEltYWdlOjpyZWFkSW1hZ2VGcm9tQ3VycmVudFRleHR1cmUoKSBub3Qgc3VwcG9ydGVkLgBXYXJuaW5nOiBJbWFnZTo6SW1hZ2UoY29uc3QgSW1hZ2UmLCBjb25zdCBDb3B5T3AmKSBvdXQgb2YgbWVtb3J5LCBubyBpbWFnZSBjb3B5IG1hZGUuAE1vdmluZyBmb3J3YXJkIGZyb20gACAgIGRlbGV0aW5nIABNb3ZpbmcgYmFjayBmcm9tIABOM29zZzExSW1hZ2VTdHJlYW1FAE4zb3NnMTNJbWFnZVNlcXVlbmNlRQBsZWZ0Q2hpbGRJbmRleD0AICYmIG9yaWdpbmFsTGVmdENoaWxkSW5kZXg9AHJpZ2h0Q2hpbGRJbmRleD0AICYmIG9yaWdpbmFsUmlnaHRDaGlsZEluZGV4PQBJbnZhbGlkIEJCIGxlZnRDaGlsZEluZGV4PQAgIGJiLl9taW4gKAAgIGJiLl9tYXggKAAgIGdldE5vZGUobGVmdENoaWxkSW5kZXgpLmJiIG1pbiA9IAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXggPSAAICBnZXROb2RlKHJpZ2h0Q2hpbGRJbmRleCkuYmIgbWluID0gACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heCA9IABOM29zZzI5VGVtcGxhdGVQcmltaXRpdmVJbmRleEZ1bmN0b3JJMjVQcmltaXRpdmVJbmRpY2VzQ29sbGVjdG9yRUUAMjVQcmltaXRpdmVJbmRpY2VzQ29sbGVjdG9yAE4zb3NnMjFQcmltaXRpdmVJbmRleEZ1bmN0b3JFAE4zb3NnMTNUZW1wbGF0ZUFycmF5SU5TXzVWZWMzZkVMTlNfNUFycmF5NFR5cGVFMjhFTGkzRUxpNTEyNkVFRQBOM29zZzExTWl4aW5WZWN0b3JJTlNfNVZlYzNmRUVFAEtkVHJlZQBOM29zZzZLZFRyZWVFAEtkVHJlZUJ1aWxkZXIATjNvc2cxM0tkVHJlZUJ1aWxkZXJFAFdhcm5pbmc6IExpZ2h0OjphcHBseShTdGF0ZSYpIC0gbm90IHN1cHBvcnRlZC4ATGlnaHQATjNvc2c1TGlnaHRFAE4zb3NnM0xPREUATWF0cml4VHJhbnNmb3JtAE4zb3NnMTVNYXRyaXhUcmFuc2Zvcm1FAE4zb3NnOE9ic2VydmVyRQBOM29zZzExT2JzZXJ2ZXJTZXRFAERyYXdDYWxsYmFjawBXYXJuaW5nOiBQb2x5Z29uTW9kZTo6YXBwbHkoU3RhdGUmKSAtIGlzIG5vdCBzdXBwb3J0ZWQuAFBvbHlnb25Nb2RlAE4zb3NnMTFQb2x5Z29uTW9kZUUATjNvc2cxMU1peGluVmVjdG9ySU5TXzVWZWM0ZkVFRQBBcnJheTo6Y2xhc3NOYW1lKCk6IFVua25vd24gYXJyYXkgdHlwZSAAVW5rbm93bkFycmF5AFZlYzJBcnJheQBWZWMzQXJyYXkAVmVjNEFycmF5AE1hdHJpeEFycmF5AE1hdHJpeGRBcnJheQBRdWF0QXJyYXkAVUludDY0QXJyYXkASW50NjRBcnJheQBOM29zZzEzVGVtcGxhdGVBcnJheUlOU181VmVjNGZFTE5TXzVBcnJheTRUeXBlRTI5RUxpNEVMaTUxMjZFRUUAV2FybmluZzogaW52YWxpZCBwcmltaXRpdmVzZXQgcGFzc2VkIHRvIG9zZzo6R2VvbWV0cnk6OmFkZFByaW1pdGl2ZVNldChpLCBwcmltaXRpdmVzZXQpLCBpZ25vcmluZyBjYWxsLgBOM29zZzE4RHJhd0VsZW1lbnRzVVNob3J0RQBOM29zZzExTWl4aW5WZWN0b3JJdEVFAE4zb3NnMTJEcmF3RWxlbWVudHNFAFByaW1pdGl2ZVNldABOM29zZzE0T3BlcmF0aW9uUXVldWVFAE4zb3NnOFBhZ2VkTE9ERQBXYXJuaW5nOiBQb2x5Z29uU3RpcHBsZTo6YXBwbHkoU3RhdGUmKSAtIG5vdCBzdXBwb3J0ZWQuAFBvbHlnb25TdGlwcGxlAE4zb3NnMTRQb2x5Z29uU3RpcHBsZUUATjNvc2cxMU1peGluVmVjdG9ySWhFRQBOM29zZzE3RHJhd0VsZW1lbnRzVUJ5dGVFAE4zb3NnMTFNaXhpblZlY3RvcklqRUUATjNvc2cxNkRyYXdFbGVtZW50c1VJbnRFAFVuYWJsZSB0byBjcmVhdGUgb3NnOjpQcm9ncmFtICIAIGNvbnRleHRJRD0AUHJvZ3JhbUJpbmFyeQBOM29zZzdQcm9ncmFtMTNQcm9ncmFtQmluYXJ5RQBnbFZhbGlkYXRlUHJvZ3JhbSBGQUlMRUQgIgAgaWQ9AGluZm9sb2c6CgBMaW5raW5nIG9zZzo6UHJvZ3JhbSAiAFByb2dyYW0ncyB2ZXJ0ZXggYXR0cmliIGJpbmRpbmcgAFN0YXRlJ3MgdmVydGV4IGF0dHJpYiBiaW5kaW5nIABnbExpbmtQcm9ncmFtIABQcm9ncmFtICIAIiAAbGluayBzdWNjZWVkZWQsIGluZm9sb2c6CgB1bmlmb3JtIGJsb2NrIAAgYmluZGluZzogACBoYXMgbm8gYmluZGluZy4KAAlVbmlmb3JtICIAIGxvYz0AIHR5cGU9AAlVbmlmb3JtIGF0b21pYyBjb3VudGVyICIAIGJ1ZmZlciBiaW5kPSAALgoACVVuaWZvcm0gYXRvbWljIGNvdW50ZXIgYnVmZmVyIGJpbmQgIgAgbnVtIGFjdGl2ZSBhdG9taWMgY291bnRlcj0gACBtaW4gc2l6ZT0gAAkJaW5kaWNlcyB1c2VkPSAACUF0dHJpYiAiAEdMUHJvZ3JhbU1hbmFnZXIAMTZHTFByb2dyYW1NYW5hZ2VyAE4zb3NnN1Byb2dyYW0xN1BlckNvbnRleHRQcm9ncmFtRQBOM29zZzdQcm9ncmFtMTRQcm9ncmFtT2JqZWN0c0UAUHJvZ3JhbQBOM29zZzdQcm9ncmFtRQBOM29zZzlQcm94eU5vZGVFAE4zb3NnMTJOb2RlQ2FsbGJhY2tFAFN0YXRlQXR0cmlidXRlQ2FsbGJhY2sATjNvc2cyMkRyYXdhYmxlVXBkYXRlQ2FsbGJhY2tFAE4zb3NnMjFEcmF3YWJsZUV2ZW50Q2FsbGJhY2tFAE4zb3NnMjBEcmF3YWJsZUN1bGxDYWxsYmFja0UATjNvc2cyMFN3YXBCdWZmZXJzT3BlcmF0aW9uRQBOM29zZzE2QmFycmllck9wZXJhdGlvbkUATjNvc2c4UmVmQmxvY2tFAE4zb3NnMTNSdW5PcGVyYXRpb25zRQBOM29zZzEwRHJhd0FycmF5c0UATjNvc2cxMU1peGluVmVjdG9ySWlFRQBEcmF3QXJyYXlMZW5ndGhzAE4zb3NnMTZEcmF3QXJyYXlMZW5ndGhzRQBOM29zZzVJbWFnZTE0VXBkYXRlQ2FsbGJhY2tFAE9TR19DT01QVVRFX05FQVJfRkFSX01PREUgPG1vZGU+AERPX05PVF9DT01QVVRFX05FQVJfRkFSIHwgQ09NUFVURV9ORUFSX0ZBUl9VU0lOR19CT1VORElOR19WT0xVTUVTIHwgQ09NUFVURV9ORUFSX0ZBUl9VU0lOR19QUklNSVRJVkVTAE9TR19ORUFSX0ZBUl9SQVRJTyA8ZmxvYXQ+AFNldCB0aGUgcmF0aW8gYmV0d2VlbiBuZWFyIGFuZCBmYXIgcGxhbmVzIC0gbXVzdCBncmVhdGVyIHRoYW4gMC4wIGJ1dCBsZXNzIHRoYW4gMS4wLgBPU0dfRElTUExBWV9UWVBFIDx0eXBlPgBNT05JVE9SIHwgUE9XRVJXQUxMIHwgUkVBTElUWV9DRU5URVIgfCBIRUFEX01PVU5URURfRElTUExBWQBPU0dfU1RFUkVPX01PREUgPG1vZGU+AFFVQURfQlVGRkVSIHwgQU5BR0xZUEhJQyB8IEhPUklaT05UQUxfU1BMSVQgfCBWRVJUSUNBTF9TUExJVCB8IExFRlRfRVlFIHwgUklHSFRfRVlFIHwgVkVSVElDQUxfSU5URVJMQUNFIHwgSE9SSVpPTlRBTF9JTlRFUkxBQ0UAT1NHX1NURVJFTyA8bW9kZT4AT1NHX0VZRV9TRVBBUkFUSU9OIDxmbG9hdD4AUGh5c2ljYWwgZGlzdGFuY2UgYmV0d2VlbiBleWVzLgBPU0dfU0NSRUVOX0RJU1RBTkNFIDxmbG9hdD4AUGh5c2ljYWwgZGlzdGFuY2UgYmV0d2VlbiBleWVzIGFuZCBzY3JlZW4uAE9TR19TQ1JFRU5fSEVJR0hUIDxmbG9hdD4AUGh5c2ljYWwgc2NyZWVuIGhlaWdodC4AT1NHX1NDUkVFTl9XSURUSCA8ZmxvYXQ+AFBoeXNpY2FsIHNjcmVlbiB3aWR0aC4AT1NHX1NQTElUX1NURVJFT19IT1JJWk9OVEFMX0VZRV9NQVBQSU5HIDxtb2RlPgBMRUZUX0VZRV9MRUZUX1ZJRVdQT1JUIHwgTEVGVF9FWUVfUklHSFRfVklFV1BPUlQAT1NHX1NQTElUX1NURVJFT19IT1JJWk9OVEFMX1NFUEFSQVRJT04gPGZsb2F0PgBOdW1iZXIgb2YgcGl4ZWxzIGJldHdlZW4gdmlld3BvcnRzLgBPU0dfU1BMSVRfU1RFUkVPX1ZFUlRJQ0FMX0VZRV9NQVBQSU5HIDxtb2RlPgBMRUZUX0VZRV9UT1BfVklFV1BPUlQgfCBMRUZUX0VZRV9CT1RUT01fVklFV1BPUlQAT1NHX1NQTElUX1NURVJFT19BVVRPX0FESlVTVF9BU1BFQ1RfUkFUSU8gPG1vZGU+AE9GRiB8IE9OICBEZWZhdWx0IHRvIE9GRiB0byBjb21wZW5zdGF0ZSBmb3IgdGhlIGNvbXByZXNzaW9uIG9mIHRoZSBhc3BlY3QgcmF0aW8gd2hlbiB2aWV3aW5nIGluIHNwbGl0IHNjcmVlbiBzdGVyZW8uICBOb3RlLCBpZiB5b3UgYXJlIHNldHRpbmcgZm92eCBhbmQgZm92eSBleHBsaWNpdHlseSBPRkYgc2hvdWxkIGJlIHVzZWQuAE9TR19TUExJVF9TVEVSRU9fVkVSVElDQUxfU0VQQVJBVElPTiA8ZmxvYXQ+AE9TR19NQVhfTlVNQkVSX09GX0dSQVBISUNTX0NPTlRFWFRTIDxpbnQ+AE1heGltdW0gbnVtYmVyIG9mIGdyYXBoaWNzIGNvbnRleHRzIHRvIGJlIHVzZWQgd2l0aCBhcHBsaWNhdGlvbnMuAE9TR19DT01QSUxFX0NPTlRFWFRTIDxtb2RlPgBPRkYgfCBPTiBEaXNhYmxlL2VuYWJsZSB0aGUgdXNlIG9mIGJhY2tncm91bmQgY29tcGlsZWQgY29udGV4dHMgYW5kIHRocmVhZHMuAE9TR19TRVJJQUxJWkVfRFJBV19ESVNQQVRDSCA8bW9kZT4AT0ZGIHwgT04gRGlzYWJsZS9lbmFibGUgdGhlIHVzZSBvZiBhIG11dGV4IHRvIHNlcmlhbGl6ZSB0aGUgZHJhdyBkaXNwYXRjaCB3aGVuIHRoZXJlIGFyZSBtdWx0aXBsZSBncmFwaGljcyB0aHJlYWRzLgBPU0dfVVNFX1NDRU5FVklFV19GT1JfU1RFUkVPIDxtb2RlPgBPRkYgfCBPTiBEaXNhYmxlL2VuYWJsZSB0aGUgaGludCB0byB1c2Ugb3NnVXRpbDo6U2NlbmVWaWV3IHRvIGltcGxlbWVudCBzdGVyZW8gd2hlbiByZXF1aXJlZC4uAE9TR19OVU1fREFUQUJBU0VfVEhSRUFEUyA8aW50PgBTZXQgdGhlIGhpbnQgZm9yIHRoZSB0b3RhbCBudW1iZXIgb2YgdGhyZWFkcyB0byBzZXQgdXAgaW4gdGhlIERhdGFiYXNlUGFnZXIuAE9TR19OVU1fSFRUUF9EQVRBQkFTRV9USFJFQURTIDxpbnQ+AFNldCB0aGUgaGludCBmb3IgdGhlIHRvdGFsIG51bWJlciBvZiB0aHJlYWRzIGRlZGljYXRlZCB0byBodHRwIHJlcXVlc3RzIHRvIHNldCB1cCBpbiB0aGUgRGF0YWJhc2VQYWdlci4AT1NHX01VTFRJX1NBTVBMRVMgPGludD4AU2V0IHRoZSBoaW50IGZvciB0aGUgbnVtYmVyIG9mIHNhbXBsZXMgdG8gdXNlIHdoZW4gbXVsdGktc2FtcGxpbmcuAE9TR19URVhUVVJFX1BPT0xfU0laRSA8aW50PgBTZXQgdGhlIGhpbnQgZm9yIHRoZSBzaXplIG9mIHRoZSB0ZXh0dXJlIHBvb2wgdG8gbWFuYWdlLgBPU0dfQlVGRkVSX09CSkVDVF9QT09MX1NJWkUgPGludD4AU2V0IHRoZSBoaW50IGZvciB0aGUgc2l6ZSBvZiB0aGUgdmVydGV4IGJ1ZmZlciBvYmplY3QgcG9vbCB0byBtYW5hZ2UuAE9TR19GQk9fUE9PTF9TSVpFIDxpbnQ+AFNldCB0aGUgaGludCBmb3IgdGhlIHNpemUgb2YgdGhlIGZyYW1lIGJ1ZmZlciBvYmplY3QgcG9vbCB0byBtYW5hZ2UuAE9GRiB8IERFRkFVTFQgfCBbfl1DT0xPUiB8IFt+XURFUFRIIHwgW35dU1RFTkNJTC4gU3Vic3RpdHV0ZSBtaXNzaW5nIGJ1ZmZlciBhdHRhY2htZW50cyBmb3IgcmVuZGVyIEZCTy4AT0ZGIHwgREVGQVVMVCB8IFt+XUNPTE9SIHwgW35dREVQVEggfCBbfl1TVEVOQ0lMLiBTdWJzdGl0dXRlIG1pc3NpbmcgYnVmZmVyIGF0dGFjaG1lbnRzIGZvciByZXNvbHZlIEZCTy4AT1NHX0dMX0NPTlRFWFRfVkVSU0lPTiA8bWFqb3IubWlub3I+AFNldCB0aGUgaGludCBmb3IgdGhlIEdMIHZlcnNpb24gdG8gY3JlYXRlIGNvbnRleHRzIGZvci4AT1NHX0dMX0NPTlRFWFRfRkxBR1MgPHVpbnQ+AFNldCB0aGUgaGludCBmb3IgdGhlIEdMIGNvbnRleHQgZmxhZ3MgdG8gdXNlIHdoZW4gY3JlYXRpbmcgY29udGV4dHMuAE9TR19HTF9DT05URVhUX1BST0ZJTEVfTUFTSyA8dWludD4AU2V0IHRoZSBoaW50IGZvciB0aGUgR0wgY29udGV4dCBwcm9maWxlIG1hc2sgdG8gdXNlIHdoZW4gY3JlYXRpbmcgY29udGV4dHMuAE9TR19TV0FQX01FVEhPRCA8bWV0aG9kPgBERUZBVUxUIHwgRVhDSEFOR0UgfCBDT1BZIHwgVU5ERUZJTkVELiBTZWxlY3QgcHJlZmVycmVkIHN3YXAgbWV0aG9kLgBPU0dfS0VZU1RPTkUgT04gfCBPRkYAU3BlY2lmeSB0aGUgaGludCB0byB3aGV0aGVyIHRoZSB2aWV3ZXIgc2hvdWxkIHNldCB1cCBrZXlzdG9uZSBjb3JyZWN0aW9uLgBPU0dfS0VZU1RPTkVfRklMRVMgPGZpbGVuYW1lPls6ZmlsZW5hbWVdLi4AU3BlY2lmeSBmaWxlbmFtZXMgb2Yga2V5c3RvbmUgcGFyYW1ldGVyIGZpbGVzLiBVbmRlciBXaW5kb3dzIHVzZSA7IHRvIGRlbGltaW5hdGUgZmlsZXMsIG90aGVyd2lzZSB1c2UgOgBPU0dfTUVOVUJBUl9CRUhBVklPUiA8YmVoYXZpb3I+AE9TWCBPbmx5IDogU3BlY2lmeSB0aGUgYmVoYXZpb3Igb2YgdGhlIG1lbnViYXIgKEFVVE9fSElERSwgRk9SQ0VfSElERSwgRk9SQ0VfU0hPVykAT1NHX052T3B0aW11c0VuYWJsZW1lbnQgPHZhbHVlPgBTZXQgdGhlIGhpbnQgdG8gTnZPcHRpbXVzIG9mIHdoZXRoZXIgdG8gZW5hYmxlIGl0IG9yIG5vdCwgc2V0IDEgdG8gZW5hYmxlLCAwIHRvIGRpc2FibGUAT1NHX1ZFUlRFWF9CVUZGRVJfSElOVCA8dmFsdWU+AFNldCB0aGUgaGludCB0byB3aGF0IGJhY2tlbmQgb3NnOjpHZW9tZXRyeSBpbXBsZW1lbnRhdGlvbiB0byB1c2UuIE5PX1BSRUZFUkVOQ0UgfCBWRVJURVhfQlVGRkVSX09CSkVDVCB8IFZFUlRFWF9BUlJBWV9PQkpFQ1QAT1NHX1NIQURFUl9QSVBFTElORSA8ZW5hYmxlPgBPTnxJRkYAU3BlY2lmeSB0aGUgc2hhZGVyIGZpbGVzIHRvIHVzZSBmb3Igd2hlbiBTaGFkZXIgUGlwZWxpbmUgaXMgZW5hYmxlZABPU0dfU0hBREVSX1BJUEVMSU5FX05VTV9URVhUVVJFX1VOSVRTIDx2YWx1ZT4AU3BlY2lmaXkgbnVtYmVyIG9mIHRleHR1cmUgdW5pdHMgU2hhZGVyIFBpcGVsaW5lIHNoYWRlcnMgc3VwcG9ydABPU0dfVEVYVF9TSEFERVJfVEVDSE5JUVVFIDx2YWx1ZT4AU2V0IHRoZSBkZWZhZnVsdCBvc2dUZXh0OjpTaGFkZXJUZWNobmlxdWUuIEFMTF9GRUFUVVJFUyB8IEFMTCB8IEdSRVlTQ0FMRSB8IFNJR05FRF9ESVNUQU5DRV9GSUVMRCB8IFNERiB8IE5PX1RFWFRfU0hBREVSIHwgTk9ORQBPU0dfR0xfRVhURU5TSU9OX0RJU0FCTEUgPHZhbHVlPgBVc2Ugc3BhY2UgZGVsaW1pbmFydGVkIGxpc3Qgb2YgR0wgZXh0ZW5zaW9ucyB0byBkaXNhYmxlIGFzc29jaWF0ZWQgR0wgZXh0ZW5zaW9ucwBPU0dfTUFYX1RFWFRVUkVfU0laRSA8dmFsdWU+AENsYW1wIHRoZSBtYXhpbXVtIEdMIHRleHR1cmUgc2l6ZSB0byBzcGVjaWZpZWQgdmFsdWUuAE9TR19OT1RJRllfTEVWRUwgPG1vZGU+AEZBVEFMIHwgV0FSTiB8IE5PVElDRSB8IERFQlVHX0lORk8gfCBERUJVR19GUCB8IERFQlVHIHwgSU5GTyB8IEFMV0FZUwBvc2c6OkRyYXdhYmxlAG9zZzo6T2JqZWN0IG9zZzo6Tm9kZSBvc2c6OkRyYXdhYmxlAFBORyBJbWFnZSBmb3JtYXQAUE5HX0NPTVBSRVNTSU9OAHdpZHRoPQAgZGVwdGg9AGNvbG9yID09IFBOR19DT0xPUl9UWVBFX1JHQiAAY29sb3IgPT0gUE5HX0NPTE9SX1RZUEVfR1JBWSAAY29sb3IgPT0gIFBOR19DT0xPUl9UWVBFX0dSQVlfQUxQSEEAUE5HIGxpYiB3YXJuaW5nIDogAFBORyBJbWFnZSBSZWFkZXIvV3JpdGVyADE1UmVhZGVyV3JpdGVyUE5HAENvbXB1dGVCb3VuZGluZ0JveENhbGxiYWNrAFNoYXBlAFN1cHBvcnRzRGlzcGxheUxpc3QAVXNlRGlzcGxheUxpc3QAVXNlVmVydGV4QnVmZmVyT2JqZWN0cwBJbnB1dFN0cmVhbTogRmFpbGVkIHRvIHJlYWQgZnJvbSBzdHJlYW0uAE41b3NnREIxNElucHV0RXhjZXB0aW9uRQBONW9zZ0RCMThUZW1wbGF0ZVNlcmlhbGl6ZXJJakVFAE41b3NnREIxNEJhc2VTZXJpYWxpemVyRQBONW9zZ0RCMTlQcm9wQnlWYWxTZXJpYWxpemVySU4zb3NnOERyYXdhYmxlRWpFRQBOM29zZzhEcmF3YWJsZTEyRHJhd0NhbGxiYWNrRQBONW9zZ0RCMThUZW1wbGF0ZVNlcmlhbGl6ZXJJUE4zb3NnOERyYXdhYmxlMTJEcmF3Q2FsbGJhY2tFRUUATjVvc2dEQjE2T2JqZWN0U2VyaWFsaXplcklOM29zZzhEcmF3YWJsZUVOUzJfMTJEcmF3Q2FsbGJhY2tFRUUATjVvc2dEQjE4VGVtcGxhdGVTZXJpYWxpemVySVBOM29zZzhDYWxsYmFja0VFRQBONW9zZ0RCMTZPYmplY3RTZXJpYWxpemVySU4zb3NnOERyYXdhYmxlRU5TMV84Q2FsbGJhY2tFRUUATjVvc2dEQjE4VGVtcGxhdGVTZXJpYWxpemVySWJFRQBONW9zZ0RCMTlQcm9wQnlWYWxTZXJpYWxpemVySU4zb3NnOERyYXdhYmxlRWJFRQBONW9zZ0RCMThUZW1wbGF0ZVNlcmlhbGl6ZXJJUE4zb3NnNVNoYXBlRUVFAE41b3NnREIxNk9iamVjdFNlcmlhbGl6ZXJJTjNvc2c4RHJhd2FibGVFTlMxXzVTaGFwZUVFRQBOM29zZzhEcmF3YWJsZTI2Q29tcHV0ZUJvdW5kaW5nQm94Q2FsbGJhY2tFAE41b3NnREIxOFRlbXBsYXRlU2VyaWFsaXplcklQTjNvc2c4RHJhd2FibGUyNkNvbXB1dGVCb3VuZGluZ0JveENhbGxiYWNrRUVFAE41b3NnREIxNk9iamVjdFNlcmlhbGl6ZXJJTjNvc2c4RHJhd2FibGVFTlMyXzI2Q29tcHV0ZUJvdW5kaW5nQm94Q2FsbGJhY2tFRUUATjVvc2dEQjE0VXNlclNlcmlhbGl6ZXJJTjNvc2c4RHJhd2FibGVFRUUATWluaW11bQBNYXhpbXVtAE41b3NnREIxOFRlbXBsYXRlU2VyaWFsaXplcklQTjNvc2c4U3RhdGVTZXRFRUUATjVvc2dEQjE2T2JqZWN0U2VyaWFsaXplcklOM29zZzhEcmF3YWJsZUVOUzFfOFN0YXRlU2V0RUVFAE9wZW5TY2VuZUdyYXBoIGV4dGVuZGFibGUgZm9ybWF0AE9wZW5TY2VuZUdyYXBoIGV4dGVuZGFibGUgYXNjaWkgZm9ybWF0AE9wZW5TY2VuZUdyYXBoIGV4dGVuZGFibGUgYmluYXJ5IGZvcm1hdABPcGVuU2NlbmVHcmFwaCBleHRlbmRhYmxlIFhNTCBmb3JtYXQAQXNjaWkASW1wb3J0L0V4cG9ydCBvcHRpb246IEZvcmNlIHJlYWRpbmcvd3JpdGluZyBhc2NpaSBmaWxlAFhNTABJbXBvcnQvRXhwb3J0IG9wdGlvbjogRm9yY2UgcmVhZGluZy93cml0aW5nIFhNTCBmaWxlAEltcG9ydCBvcHRpb246IExvYWQgYW4gZW1wdHkgaW1hZ2UgaW5zdGVhZCBpZiByZXF1aXJlZCBmaWxlIG1pc3NlZABFeHBvcnQgb3B0aW9uOiBSZWNvcmQgaW5idWlsdCBzY2hlbWEgZGF0YSBpbnRvIGEgYmluYXJ5IGZpbGUAU2NoZW1hRmlsZT08ZmlsZT4ASW1wb3J0L0V4cG9ydCBvcHRpb246IFVzZS9SZWNvcmQgYW4gYXNjaWkgc2NoZW1hIGZpbGUAQ29tcHJlc3Nvcj08bmFtZT4ARXhwb3J0IG9wdGlvbjogVXNlIGFuIGluYnVpbHQgb3IgdXNlci1kZWZpbmVkIGNvbXByZXNzb3IAV3JpdGVJbWFnZUhpbnQ9PGhpbnQ+AEV4cG9ydCBvcHRpb246IEhpbnQgb2Ygd3JpdGluZyBpbWFnZSB0byBzdHJlYW06IDxJbmNsdWRlRGF0YT4gd3JpdGVzIEltYWdlOjpkYXRhKCkgZGlyZWN0bHk7IDxJbmNsdWRlRmlsZT4gd3JpdGVzIHRoZSBpbWFnZSBmaWxlIGl0c2VsZiB0byBzdHJlYW07IDxVc2VFeHRlcm5hbD4gd3JpdGVzIG9ubHkgdGhlIGZpbGVuYW1lOyA8V3JpdGVPdXQ+IHdyaXRlcyBJbWFnZTo6ZGF0YSgpIHRvIGRpc2sgYXMgZXh0ZXJuYWwgZmlsZS4AIEF0IABQUkVDSVNJT04AcHJlY2lzaW9uACNBc2NpaQA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgPz4AMjBCaW5hcnlPdXRwdXRJdGVyYXRvcgBONW9zZ0RCMTRPdXRwdXRJdGVyYXRvckUATlN0M19fMjE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUAYXR0cmlidXRlAC0tACAJDQoARkFMU0UAMTdYbWxPdXRwdXRJdGVyYXRvcgBUUlVFIABGQUxTRSAAMTlBc2NpaU91dHB1dEl0ZXJhdG9yAFJlYWRpbmcgT3BlblNjZW5lR3JhcGggYmluYXJ5IGZpbGUgd2l0aCB0aGUgc2FtZSBlbmRpYW4gYXMgdGhpcyBjb21wdXRlci4AUmVhZGluZyBPcGVuU2NlbmVHcmFwaCBiaW5hcnkgZmlsZSB3aXRoIHRoZSBkaWZmZXJlbnQgZW5kaWFuIHRvIHRoaXMgY29tcHV0ZXIsIGRvaW5nIGJ5dGUgc3dhcC4APD94bWwAWG1sSW5wdXRJdGVyYXRvcjo6cmVhZFByb3BlcnR5KCk6IFVubWF0Y2hlZCBwcm9wZXJ0eSAALCBleHBlY3RpbmcgAFRSVUUAMTZYbWxJbnB1dEl0ZXJhdG9yAE41b3NnREIxM0lucHV0SXRlcmF0b3JFAEFzY2lpSW5wdXRJdGVyYXRvcjo6cmVhZFByb3BlcnR5KCk6IFVubWF0Y2hlZCBwcm9wZXJ0eSAAMThBc2NpaUlucHV0SXRlcmF0b3IASW5wdXRTdHJlYW06OnJlYWRTdHJpbmcoKSBlcnJvciwgbmVnYXRpdmUgc3RyaW5nIHNpemUgcmVhZC4AMTlCaW5hcnlJbnB1dEl0ZXJhdG9yAG9zZ3QAb3NneABvc2diAEJpbmFyeQBPcGVuU2NlbmVHcmFwaCBOYXRpdmUgRm9ybWF0IFJlYWRlci9Xcml0ZXIAMTZSZWFkZXJXcml0ZXJPU0cyAE9wZW5TY2VuZUdyYXBoIEFzY2lpIGZpbGUgZm9ybWF0AFBzZXVkbyBPcGVuU2NlbmVHcmFwaCBmaWxlIGxvYWRlZCwgd2l0aCBmaWxlIGVuY29kZWQgaW4gZmlsZW5hbWUgc3RyaW5nAFNldCB0aGUgZmxvYXRpbmcgcG9pbnQgcHJlY2lzaW9uIHdoZW4gd3JpdGluZyBvdXQgZmlsZXMAT3V0cHV0VGV4dHVyZUZpbGVzAFdyaXRlIG91dCB0aGUgdGV4dHVyZSBpbWFnZXMgdG8gZmlsZQBpbmNsdWRlRXh0ZXJuYWxSZWZlcmVuY2VzAEV4cG9ydCBvcHRpb24Ad3JpdGVFeHRlcm5hbFJlZmVyZW5jZUZpbGVzAFVuYWJsZSB0byB3cml0ZSB0byBvdXRwdXQgc3RyZWFtAE91dHB1dFNoYWRlckZpbGVzAGRlcHJlY2F0ZWRfb3NnAE9TR1JlYWRlcldyaXRlciB3cmFwcGVycyBsb2FkZWQgT0sAT1NHUmVhZGVyV3JpdGVyIHdyYXBwZXJzIGZhaWxlZCB0byBsb2FkAE5vIGRhdGEgbG9hZGVkAGltcG9ydCBncm91cABVbmFibGUgdG8gb3BlbiBmaWxlIGZvciBvdXRwdXQAb3NncwBPU0cgUmVhZGVyL1dyaXRlcgAxNU9TR1JlYWRlcldyaXRlcgBOMTFPcGVuVGhyZWFkczE0UmVlbnRyYW50TXV0ZXhFAE4zb3NnMTZBcHBsaWNhdGlvblVzYWdlRQBjaGVja01pcG1hcEFyZ3MoaW50ZXJuYWxGb3JtYXQsZm9ybWF0LHR5cGUpID09IDAAZ2x1QnVpbGQyRE1pcG1hcExldmVsc0NvcmUAd2lkdGggPj0gMSAmJiBoZWlnaHQgPj0gMQBmb3JtYXQgPT0gR0xfUkdCACEod2lkdGggPT0gMSAmJiBoZWlnaHQgPT0gMSkAaGFsdmVJbWFnZVBhY2tlZFBpeGVsAHdpZHRoICE9IGhlaWdodABoYWx2ZTFEaW1hZ2VQYWNrZWRQaXhlbAB3aWR0aCAhPSAxAHNyYyA9PSAmKChjb25zdCBjaGFyICopZGF0YUluKVtyb3dTaXplSW5CeXRlc10Ab3V0SW5kZXggPT0gaGFsZldpZHRoICogaGFsZkhlaWdodABzcmMgPT0gJigoY29uc3QgY2hhciAqKWRhdGFJbilbcm93U2l6ZUluQnl0ZXMqaGVpZ2h0XQBvdXRpbmRleCA9PSAod2lkdGhPdXQqaGVpZ2h0T3V0IC0gMSkAc2NhbGVJbnRlcm5hbFBhY2tlZFBpeGVsAGhhbHZlSW1hZ2VfZmxvYXQAaGFsdmUxRGltYWdlX2Zsb2F0AHNyYyA9PSAmKChjb25zdCBjaGFyICopZGF0YUluKVt5c2l6ZSpoZWlnaHRdAChjaGFyICopZGVzdCA9PSAmKChjaGFyICopZGF0YU91dCkgW2NvbXBvbmVudHMgKiBlbGVtZW50X3NpemUgKiBoYWxmV2lkdGggKiBoYWxmSGVpZ2h0XQBoYWx2ZUltYWdlX2ludABoYWx2ZTFEaW1hZ2VfaW50AGhhbHZlSW1hZ2VfdWludABoYWx2ZTFEaW1hZ2VfdWludABoYWx2ZUltYWdlX3Nob3J0AGhhbHZlMURpbWFnZV9zaG9ydABoYWx2ZUltYWdlX3VzaG9ydABoYWx2ZTFEaW1hZ2VfdXNob3J0AGhhbHZlSW1hZ2VfYnl0ZQBoYWx2ZTFEaW1hZ2VfYnl0ZQBoYWx2ZUltYWdlX3VieXRlAGhhbHZlMURpbWFnZV91Ynl0ZQBOU3QzX18yMTliYXNpY19vc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUAV2FybmluZzogbmV3IE1heEdMQnVmZmVyT2JqZWN0UG9vbFNpemU9ACBpcyBzbWFsbGVyIHRoYW4gY3VycmVudCBHTEJ1ZmZlck9iamVjdFBvb2xTaXplPQBDb250ZXh0RGF0YTo6Y3JlYXRlTmV3Q29udGV4dElEKCkgOiByZXVzaW5nIGNvbnRleHRJRD0AQ29udGV4dERhdGE6OmNyZWF0ZU5ld0NvbnRleHRJRCgpIGNyZWF0aW5nIGNvbnRleHRJRD0AVXBkYXRpbmcgdGhlIE1heE51bWJlck9mR3JhcGhpY3NDb250ZXh0cyB0byAAQ29udGV4dERhdGE6OmluY3JlbWVudENvbnRleHRJRFVzYWdlQ291bnQoACkgdG8gAENvbnRleHREYXRhOjpyZWdpc3RlckdyYXBoaWNzQ29udGV4dCAAQ29udGV4dERhdGE6OmdldFJlZ2lzdGVyZWRHcmFwaGljc0NvbnRleHRzIAAgY29udGV4dHMuc2l6ZSgpPQBDb250ZXh0RGF0YTo6Y3JlYXRlQ29tcGlsZUNvbnRleHQuACAgIHN1Y2NlZWRlZCBDb250ZXh0RGF0YTo6Y3JlYXRlQ29tcGlsZUNvbnRleHQuAFdhcm5pbmc6IEdyYXBoaWNzQ29udGV4dDo6V2luZG93aW5nU3lzdGVtSW50ZXJmYWNlczo6Z2V0V2luZG93aW5nU3lzdGVtSW50ZXJmYWNlKCkgZmFpbGVkLCBubyBpbnRlcmZhY2VzIGF2YWlsYWJsZS4AICAgdHJpZWQgaW50ZXJmYWNlIABOM29zZzdyZWZfcHRySU5TXzE1R3JhcGhpY3NDb250ZXh0MjRXaW5kb3dpbmdTeXN0ZW1JbnRlcmZhY2VFRUUALCBuYW1lPSAAV2FybmluZzogR3JhcGhpY3NDb250ZXh0OjpXaW5kb3dpbmdTeXN0ZW1JbnRlcmZhY2VzOjpnZXRXaW5kb3dpbmdTeXN0ZW1JbnRlcmZhY2UoKSBmYWlsZWQsIG5vIGludGVyZmFjZXMgbWF0Y2hlcyBuYW1lIDogAE4zb3NnMTVHcmFwaGljc0NvbnRleHQ2VHJhaXRzRQBOM29zZzE1R3JhcGhpY3NDb250ZXh0MTZTY3JlZW5JZGVudGlmaWVyRQBOM29zZzIwQ29vcmRpbmF0ZVN5c3RlbU5vZGVFAERpc3BsYXlTZXR0aW5nczo6Z2V0VmFsdWUoACkgZm91bmQgZXhpc3RpbmcgdmFsdWUgPSBbACkgZm91bmQgZ2V0RW52VmFyIHZhbHVlID0gWwBFcnJvcjogRnJhbWVCdWZmZXJBdHRhY2htZW50OjpGcmFtZUJ1ZmZlckF0dGFjaG1lbnQoQ2FtZXJhOjpBdHRhY2htZW50JikgcGFzc2VkIGFuIGVtcHR5IG9zZzo6SW1hZ2UsIGltYWdlIG11c3QgYmUgYWxsb2NhdGVkIGZpcnN0LgBFcnJvcjogRnJhbWVCdWZmZXJBdHRhY2htZW50OjpGcmFtZUJ1ZmZlckF0dGFjaG1lbnQoQ2FtZXJhOjpBdHRhY2htZW50JikgcGFzc2VkIGFuIHVucmVjb2duaXNlZCBUZXh0dXJlIHR5cGUuAE4zb3NnMTNUZW1wbGF0ZUFycmF5SU5TXzVWZWMyZkVMTlNfNUFycmF5NFR5cGVFMjdFTGkyRUxpNTEyNkVFRQBOM29zZzExTWl4aW5WZWN0b3JJTlNfNVZlYzJmRUVFAERJU1BMQVkARG9pbmcgYWRkAFN3YXBCdWZmZXJzAENyZWF0ZWQgU3luY1N3YXBCdWZmZXJzQ2FsbGJhY2suAE4zb3NnMjFHZW9tZXRyeUNvc3RFc3RpbWF0b3JFAE4zb3NnMjBUZXh0dXJlQ29zdEVzdGltYXRvckUAVGV4dHVyZUNvc3RFc3RpbWF0b3I6OmVzdGltYXRlQ29tcGlsZUNvc3QoKSwgc2l6ZT0ATjNvc2cyMFByb2dyYW1Db3N0RXN0aW1hdG9yRQBHcmFwaGljc0Nvc3RFc3RpbWF0b3I6OmNhbGlicmF0ZSguLikAQmxvY2sAT2JzZXJ2ZXJOb2RlUGF0aDo6Z2V0Tm9kZVBhdGgoKSBub2RlIGhhcyBiZWVuIGludmFsaWRhdGVkAFdhcm5pbmc6IGRlbGV0aW5nIHN0aWxsIHJlZmVyZW5jZWQgb2JqZWN0IAAgb2YgdHlwZSAnAFBOM29zZzEwUmVmZXJlbmNlZEUAJwAgICAgICAgICB0aGUgZmluYWwgcmVmZXJlbmNlIGNvdW50IHdhcyAALCBtZW1vcnkgY29ycnVwdGlvbiBwb3NzaWJsZS4AV2FybmluZyBSZWZlcmVuY2VkOjpzaWduYWxPYnNlcnZlcnNBbmREZWxldGUoLCwpIGRvaW5nIGRlbGV0ZSB3aXRoIF9yZWZDb3VudD0ATjNvc2cxMFJlZmVyZW5jZWRFACAgZm9ybWF0PQBXYXJuaW5nOiBObyBzdWl0YWJsZSBzaGFkZXIgb2Ygc3VwcG9ydGVkIGZvcm1hdCBieSBHTEVTIGRyaXZlciBmb3VuZCBpbiBzaGFkZXIgYmluYXJ5LCB1bmFibGUgdG8gY29tcGlsZSBzaGFkZXIuAG9zZzo6U2hhZGVyOjpjb21waWxlU2hhZGVyKCk6IE5vIHN1aXRhYmxlIHNoYWRlciBvZiBzdXBwb3J0ZWQgZm9ybWF0IGJ5IEdMRVMgZHJpdmVyIGZvdW5kIGluIHNoYWRlciBiaW5hcnksIGZhbGxpbmcgYmFjayB0byBzaGFkZXIgc291cmNlLgBXYXJuaW5nOiBObyBzaGFkZXIgYmluYXJ5IGZvcm1hdHMgc3VwcG9ydGVkIGJ5IEdMRVMgZHJpdmVyLCB1bmFibGUgdG8gY29tcGlsZSBzaGFkZXIuAG9zZzo6U2hhZGVyOjpjb21waWxlU2hhZGVyKCk6IE5vIHNoYWRlciBiaW5hcnkgZm9ybWF0cyBzdXBwb3J0ZWQgYnkgR0xFUyBkcml2ZXIsIGZhbGxpbmcgYmFjayB0byBzaGFkZXIgc291cmNlLgAKQ29tcGlsaW5nIABVTkRFRklORUQAQ09NUFVURQBGUkFHTUVOVABHRU9NRVRSWQBURVNTRVZBTFVBVElPTgBURVNTQ09OVFJPTABWRVJURVgAIHNvdXJjZToKAApDb21waWxpbmcgQSA6ACAJAAoNACN2ZXJzaW9uAC8vIGZvbGxvd2luZyB2ZXJzaW9uIHNwZWMgaGFzIGJlZW4gYXV0b21hdGljYWxseSByZWFzc2lnbmVkIHRvIHN0YXJ0IG9mIHNvdXJjZSBsaXN0OiAACkNvbXBpbGluZyBCOiAACkNvbXBpbGluZyBDOiAAIGdsQ29tcGlsZVNoYWRlciAiACIgRkFJTEVEACBTaGFkZXIgIgAiIGluZm9sb2c6CgBTdGF0ZTo6Y29udmVydFNoYWRlclNvdXJjZVRvT3NnQnVpbHRJbnMoKQArK0JlZm9yZSBDb252ZXJ0ZWQgc291cmNlIAArKysrKysrKwBhdHRyaWJ1dGUgAHNoYWRlciB2ZXJzaW9uIGZvdW5kOiAAaW4gAGZ0cmFuc2Zvcm0oKQBnbF9Nb2RlbFZpZXdQcm9qZWN0aW9uTWF0cml4ICogZ2xfVmVydGV4AGdsX01vZGVsVmlld01hdHJpeABvc2dfTW9kZWxWaWV3TWF0cml4AG1hdDQgAGdsX01vZGVsVmlld1Byb2plY3Rpb25NYXRyaXgAb3NnX01vZGVsVmlld1Byb2plY3Rpb25NYXRyaXgAZ2xfUHJvamVjdGlvbk1hdHJpeABvc2dfUHJvamVjdGlvbk1hdHJpeABnbF9Ob3JtYWxNYXRyaXgAb3NnX05vcm1hbE1hdHJpeABtYXQzIAAtLS0tLS0tLSBDb252ZXJ0ZWQgc291cmNlIAAtLS0tLS0tLS0tLS0tLS0tAEFCQ0RFRkdISUpLTE1OT1BRUlRTVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5XwBTaGFkZXIgdHlwZSBpcyBVTkRFRklORUQAR0xTaGFkZXJNYW5hZ2VyADE1R0xTaGFkZXJNYW5hZ2VyAE4zb3NnNlNoYWRlcjE2UGVyQ29udGV4dFNoYWRlckUAI2RlZmluZSAAIDEAIDAATjNvc2c2U2hhZGVyMTNTaGFkZXJPYmplY3RzRQBTaGFkZXIATjNvc2c2U2hhZGVyRQBTaGFkZXJDb21wb3Nlcjo6Y29tcG9zZU1haW4oU2hhZGVycykgc2hhZGVycy5zaXplKCk9PQBXYXJuaW5nOlNoYWRlckNvbXBvc2VyOjpjb21wb3NlTWFpbigpIG1peGluZyBkaWZmZXJlbnQgdHlwZXMgb2YgU2hhZGVycyBwcm9oaWJpdGVkLgB2b2lkIG1haW4odm9pZCkKAHR5cGUgPT0AZnVsbF9zb3VyY2UgPT0gAGVuZCBvZiBTaGFkZXJDb21wb3Nlcjo6Y29tcG9zZU1haW4oU2hhZGVycykAI3ByYWdtYQAKRm91bmQgcHJhZ21hIGxpbmUgWwAgCSgAaW1wb3J0X2RlZmluZXMAaW1wb3J0X21vZGVzAGltcG9ydF90ZXh0dXJlX21vZGVzAHJlcXVpcmVzACAga2V5d29yZCBub3QgbWF0Y2hlZCBbACAgICBGb3VuZCBrZXl3b3JkIFsAXSBidXQgbm90IG1hdGNoZWQgKCkKAFNoYWRlcjo6X3BhcnNlU2hhZGVyRGVmaW5lcygAIAksACAJLCkAICAgc2V0dGluZyBpbmRleCgAICAgZGVmaW5lcy5pbnNlcnQoAFNoYWRlckNvbXBvc2VyOjpnZXRPckNyZWF0ZVByb2dyYW0oc2hhZGVyQ29tcG9uZW50cy5zaXplKCk9PQBXYXJuaW5nOiBTaGFkZXJDb21wb3NlOjpnZXRPckNyZWF0ZVByb2dhbShTaGFkZXJDb21wb250cykgZW5jb3VudGVyZCBpbnZhbGlkIFNoYWRlcjo6VHlwZS4AU2hhZGVyQ29tcG9zZXI6OmdldE9yQ3JlYXRlUHJvZ3JhbSguLikgY3JlYXRlZCBuZXcgUHJvZ3JhbQBTaGFkZXJDb21wb3NlcgBTaGFkZXJDb21wb3Nlcjo6U2hhZGVyQ29tcG9zZXIoY29uc3QgU2hhZGVyQ29tcG9zZXImLCBjb25zdCBDb3B5T3AmIGNvcHlvcCkgAFNoYWRlckNvbXBvc2VyOjpTaGFkZXJDb21wb3NlcigpIABTaGFkZXJDb21wb3Nlcjo6flNoYWRlckNvbXBvc2VyKCkgAE4zb3NnMTRTaGFkZXJDb21wb3NlckUATjNvc2c1U2hhcGVFAEhlaWdodEZpZWxkAE4zb3NnMTNUZW1wbGF0ZUFycmF5SWZMTlNfNUFycmF5NFR5cGVFN0VMaTFFTGk1MTI2RUVFAE4zb3NnMTFNaXhpblZlY3RvcklmRUUATjNvc2cxMUhlaWdodEZpZWxkRQBXYXJuaW5nOiBCdWlsZFNoYXBlR2VvbWV0cnlWaXNpdG9yOjphcHBseShjb25zdCBJbmZpbml0ZVBsYW5lJiBwbGFuZSkgbm90IHlldCBpbXBsZW1lbnRlZC4gAE4zb3NnMjVCdWlsZFNoYXBlR2VvbWV0cnlWaXNpdG9yRQBOM29zZzE3Q29uc3RTaGFwZVZpc2l0b3JFAFdhcm5pbmc6IEJ1aWxkU2hhcGVHZW9tZXRyeVZpc2l0b3IoKSBHZW9tZXRyeSBjb250YWlucyBjb21wYXRpYmxlIGFycmF5cywgcmVzZXR0aW5nIGJlZm9yZSBzaGFwZSBidWlsZC4AU2hhcGVEcmF3YWJsZQBOM29zZzEzU2hhcGVEcmF3YWJsZUUAR0xfVEVYVFVSRV8yRF9NVUxUSVNBTVBMRQBHTF9URVhUVVJFXzJEX0FSUkFZAEdMX1RFWFRVUkUwAEdMX1RFWFRVUkUxAEdMX1RFWFRVUkUyAEdMX1RFWFRVUkUzAEdMX1RFWFRVUkU0AEdMX1RFWFRVUkU1AEdMX1RFWFRVUkU2AEdMX1RFWFRVUkU3AEdMX1JFRABHTF9SRwBvc2dfVGV4dHVyZUZvcm1hdAAjZGVmaW5lIFRFWFRVUkVfVkVSVF9ERUNMQVJFACB2YXJ5aW5nIHZlYzQgVGV4Q29vcmQAOwAjZGVmaW5lIFRFWFRVUkVfVkVSVF9CT0RZACBUZXhDb29yZAAgPSBnbF9NdWx0aVRleENvb3JkACNkZWZpbmUgVEVYVFVSRV9GUkFHX0RFQ0xBUkUAIHVuaWZvcm0gc2FtcGxlcjFEIHNhbXBsZXIAOyB2YXJ5aW5nIHZlYzQgVGV4Q29vcmQAI2RlZmluZSBURVhUVVJFX0ZVTkNUSU9OACgpIHRleHR1cmUxRCggc2FtcGxlcgAsIFRleENvb3JkAC5zKQAgdW5pZm9ybSBzYW1wbGVyMkQgc2FtcGxlcgAoKSB0ZXh0dXJlMkQoIHNhbXBsZXIALnN0KQAgdW5pZm9ybSBzYW1wbGVyUmVjdGFuZ2xlIHNhbXBsZXIAKCkgdGV4dHVyZVJlY3RhbmdsZSggc2FtcGxlcgAgdW5pZm9ybSBzYW1wbGVyM0Qgc2FtcGxlcgAoKSB0ZXh0dXJlM0QoIHNhbXBsZXIALnN0cikAIHVuaWZvcm0gc2FtcGxlckN1YmVNYXAgc2FtcGxlcgAoKSB0ZXh0dXJlQ3ViZU1hcCggc2FtcGxlcgAgdW5pZm9ybSBzYW1wbGVyMkRBcnJheSBzYW1wbGVyACgpIHRleHR1cmUyREFycmF5KCBzYW1wbGVyAFVuaW1wbGVtZW50ZWQgOiBVbmlmb3JtQmFzZTo6YXBwbHkoY29uc3QgR0xFeHRlbnNpb25zKiwgR0xpbnQpAE4xMU9wZW5UaHJlYWRzMjNQVGhyZWFkTXV0ZXhQcml2YXRlRGF0YUUATjExT3BlblRocmVhZHM1TXV0ZXhFAFVuaWZvcm0gQWRkaW5nIHBhcmVudABVbmlmb3JtQmFzZQBOM29zZzExVW5pZm9ybUJhc2VFAEludEFycmF5VW5pZm9ybQBOM29zZzIwVGVtcGxhdGVBcnJheVVuaWZvcm1JaUVFAEdMX1ZFTkRPUiA9IFsAR0xfRVhUX3NlY29uZGFyeV9jb2xvcgBHTF9FWFRfZm9nX2Nvb3JkAG9zZzo6U3RhdGU6OmluaXRpYWxpemVFeHRlbnNpb25Qcm9jcygpIF9mb3JjZVZlcnRleEFycmF5T2JqZWN0ID0gACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9mb3JjZVZlcnRleEJ1ZmZlck9iamVjdCA9IABnbENsaWVudEFjdGl2ZVRleHR1cmVBUkIAZ2xBY3RpdmVUZXh0dXJlQVJCAGdsRm9nQ29vcmRQb2ludGVyAGdsRm9nQ29vcmRQb2ludGVyRVhUAGdsU2Vjb25kYXJ5Q29sb3JQb2ludGVyAGdsU2Vjb25kYXJ5Q29sb3JQb2ludGVyRVhUAGdsVmVydGV4QXR0cmliUG9pbnRlckFSQgBnbFZlcnRleEF0dHJpYkxQb2ludGVyAGdsRW5hYmxlVmVydGV4QXR0cmliQXJyYXlBUkIAZ2xNdWx0aVRleENvb3JkNGYAZ2xNdWx0aVRleENvb3JkNGZBUkIAZ2xEaXNhYmxlVmVydGV4QXR0cmliQXJyYXlBUkIAZ2xCaW5kQnVmZmVyQVJCAGdsRHJhd0FycmF5c0luc3RhbmNlZEFSQgBnbERyYXdBcnJheXNJbnN0YW5jZWRFWFQAZ2xEcmF3RWxlbWVudHNJbnN0YW5jZWRBUkIAZ2xEcmF3RWxlbWVudHNJbnN0YW5jZWRFWFQAR0xfQVJCX3ZlcnRleF9zaGFkZXIAUmFkZW9uAFJBREVPTgBGaXJlUHJvAFZlcnRleEF0dHJpYkFycmF5RGlzcGF0Y2gAMjVWZXJ0ZXhBdHRyaWJBcnJheURpc3BhdGNoAE4zb3NnMTZWZXJ0ZXhBcnJheVN0YXRlMTNBcnJheURpc3BhdGNoRQBWZXJ0ZXhBcnJheVN0YXRlOjphc3NpZ25Db2xvckFycmF5RGlzcGF0Y2hlcigpIF9zdGF0ZS0+Z2V0Q29sb3JBbGlhcygpLl9sb2NhdGlvbj0AVmVydGV4QXJyYXlTdGF0ZTo6YXNzaWduTm9ybWFsQXJyYXlEaXNwYXRjaGVyKCkgX3N0YXRlLT5nZXROb3JtYWxBbGlhcygpLl9sb2NhdGlvbj0AVmVydGV4QXJyYXlTdGF0ZTo6YXNzaWduVmVydGV4QXJyYXlEaXNwYXRjaGVyKCkgX3N0YXRlLT5nZXRWZXJ0ZXhBbGlhcygpLl9sb2NhdGlvbj0ATjNvc2cxNlZlcnRleEFycmF5U3RhdGVFAE4zb3NnNVN0YXRlRQBBZGRpbmcgcGFyZW50AE4zb3NnOFN0YXRlU2V0RQBTdGVuY2lsAE4zb3NnN1N0ZW5jaWxFAE4zb3NnMTZUZXh0dXJlQXR0cmlidXRlRQBXYXJuaW5nOiBUZXhNYXQ6OmFwcGx5KFN0YXRlJikgLSBub3Qgc3VwcG9ydGVkLgBUZXhNYXQATjNvc2c2VGV4TWF0RQBOM29zZzE2VGV4dHVyZU9iamVjdFNldEUAX3BhcmVudC0+Z2V0Q3VyclRleHR1cmVQb29sU2l6ZSgpPQAgX3BhcmVudC0+Z2V0TWF4VGV4dHVyZVBvb2xTaXplKCk9AExvb2tpbmcgdG8gcmVjbGFpbSAALCBnb2luZyB0byBsb29rIHRvIHJlbW92ZSAAIGZyb20gACBvcnBoYW5zAFRleHR1cmVPYmplY3RNYW5hZ2VyOjpyZWNvbXB1dGVTdGF0cygpACAgIG51bU9iamVjdHNJbkxpc3RzPQAsIG51bUFjdGl2ZT0ALCBudW1PcnBoYW5zPQAgY3VycmVudFNpemU9ACAgIGdldE1heFRleHR1cmVQb29sU2l6ZSgpPQAgY3VycmVudC9tYXggc2l6ZSA9IAAgICBzaXplPQAsIG9zLT5jb21wdXRlTnVtVGV4dHVyZU9iamVjdHNJbkxpc3QoKQAsIG9zLT5nZXROdW1PZlRleHR1cmVPYmplY3RzKCkALCBvcy0+Z2V0TnVtT3JwaGFucygpACwgb3MtPmdldE51bVBlbmRpbmdPcnBoYW5zKCkAICAgV0FSTklORzogX2N1cnJUZXh0dXJlUG9vbFNpemUoACkgIT0gY3VycmVudFNpemUsIGRlbHRhID0gAFRleHR1cmVPYmplY3RNYW5hbmdlcjo6cmVwb3J0U3RhdHMoKQAgICB0b3RhbCBfbnVtT2ZUZXh0dXJlT2JqZWN0cz0ALCBfbnVtT3JwaGFuZWRUZXh0dXJlT2JqZWN0cz0AIF9jdXJyVGV4dHVyZVBvb2xTaXplPQAgICB0b3RhbCBfbnVtR2VuZXJhdGVkPQAsIF9nZW5lcmF0ZVRpbWU9ACwgYXZlcmFnZVBlckZyYW1lPQAgICB0b3RhbCBfbnVtRGVsZXRlZD0ALCBfZGVsZXRlVGltZT0ATjNvc2cyMFRleHR1cmVPYmplY3RNYW5hZ2VyRQBUZXh0dXJlAE4zb3NnN1RleHR1cmVFAFN0YXRlQXR0cmlidXRlOjpTZXR0aW5nIFVwZGF0ZSBjYWxsYmFja3MATjNvc2c5VGV4dHVyZTFERQBFcnJvciAqKioqKioqKioqKioqKioqKiBTaG91bGQgbm90IGdldCBoZXJlICEhISEhISEhIQBFcnJvciAqKioqKioqKioqKioqKioqKiBTaG91bGQgbm90IGdldCBoZXJlIGVpdGhlciAhISEhISEhISEAUmVjZWl2ZWQgYSByZXF1ZXN0IHRvIGNvbXByZXNzIGFuIGltYWdlLCBidXQgaW1hZ2Ugc2l6ZSBpcyBub3QgYSBtdWx0aXBsZSBvZiBmb3VyICgAKS4gUmV2ZXJ0aW5nIHRvIHVuY29tcHJlc3NlZC4KAFdhcm5pbmc6OiBNaXBtYXBwZWQgb3NnOjpJbWFnZSBub3QgYSBwb3dlciBvZiB0d28sIGNhbm5vdCBhcHBseSB0byB0ZXh0dXJlLgBXYXJuaW5nOjogQ29tcHJlc3NlZCBvc2c6OkltYWdlIG5vdCBhIHBvd2VyIG9mIHR3bywgY2Fubm90IGFwcGx5IHRvIHRleHR1cmUuAFNjYWxpbmcgaW1hZ2UgJwAnIGZyb20gKAApIHRvICgAU2NhbGluZyBpbWFnZSBmcm9tICgAV2FybmluZzo6IENvbXByZXNzZWQgaW1hZ2UgY2Fubm90IGJlIG1pcCBtYXBwZWQAVGV4dHVyZTo6Z2V0Q29tcHJlc3NlZFNpemUoLi4uKSA6IGNhbm5vdCBjb21wdXRlIGNvcnJlY3Qgc2l6ZSBvZiBjb21wcmVzc2VkIGZvcm1hdCAoACkgcmV0dXJuaW5nIDAuAFRleHR1cmVPYmplY3RTZXQ9ADogUmV1c2luZyBhbiBhY3RpdmUgVGV4dHVyZU9iamVjdCAAIF9udW1PZlRleHR1cmVPYmplY3RzPQAgd2lkdGg9ACBoZWlnaHQ9AFJldXNpbmcgYSByZWNlbnRseSBvcnBoYW5lZCBhY3RpdmUgVGV4dHVyZU9iamVjdCAAQ3JlYXRlZCBuZXcgACBUZXh0dXJlT2JqZWN0LCBfbnVtT2ZUZXh0dXJlT2JqZWN0cyAATjNvc2c3VGV4dHVyZTEzVGV4dHVyZU9iamVjdEUAUmV1c2luZyBvcnBoYW5lZCBUZXh0dXJlT2JqZWN0LCBfbnVtT2ZUZXh0dXJlT2JqZWN0cz0AVGV4dHVyZU9iamVjdE1hbmFnZXIAVGV4dHVyZTJEAE4zb3NnOVRleHR1cmUyREUATjNvc2cxNFRleHR1cmUyREFycmF5RQBOM29zZzIwVGV4dHVyZTJETXVsdGlzYW1wbGVFAE4zb3NnOVRleHR1cmUzREUATjNvc2cxNFRleHR1cmVDdWJlTWFwRQBXYXJuaW5nOiBUZXh0dXJlUmVjdGFuZ2xlOjphbGxvY2F0ZU1pcG1hcChTdGF0ZSYpIGNhbGxlZCBlcm9uZW91c2x5LCBHTF9URVhUVVJFX1JFQ1RBTkdMRSBkb2VzIG5vdCBzdXBwb3J0IG1pcG1hcHBpbmcuAFdhcm5pbmc6IFRleHR1cmVSZWN0YW5nbGU6OmFwcGx5KC4uKSBmYWlsZWQsIHRleHR1cmUgcmVjdGFuZ2xlIGlzIG5vdCBzdXBwb3J0IGJ5IHlvdXIgT3BlbkdMIGRyaXZlcnMuAFRleHR1cmVSZWN0YW5nbGUATjNvc2cxNlRleHR1cmVSZWN0YW5nbGVFAFRyYW5zZm9ybQBOM29zZzlUcmFuc2Zvcm1FAGNhbm5vdCBjaGFuZ2UgVW5pZm9ybSB0eXBlAE4zb3NnMThUZW1wbGF0ZUluZGV4QXJyYXlJakxOU181QXJyYXk0VHlwZUU2RUxpMUVMaTUxMjVFRUUATjNvc2cxOFRlbXBsYXRlSW5kZXhBcnJheUlpTE5TXzVBcnJheTRUeXBlRTNFTGkxRUxpNTEyNEVFRQBOM29zZzEzVGVtcGxhdGVBcnJheUlkTE5TXzVBcnJheTRUeXBlRThFTGkxRUxpNTEzMEVFRQBOM29zZzExTWl4aW5WZWN0b3JJZEVFAGhvdyBnb3QgaGVyZT8gL2hvbWUva29ybmVyci9wL21vdG9yL21vdG9yLzA1Lk1vZGVsVGV4dHVyZS9tb3Rvci13ZWIvLi4vLi4vLi4vLi4vbW90b3IvLi4vT3BlblNjZW5lR3JhcGgvc3JjL29zZy9Vbmlmb3JtLmNwcDoAVW5pZm9ybQBOM29zZzdVbmlmb3JtRQBOM29zZzE3VXNlckRhdGFDb250YWluZXJFAERlZmF1bHRVc2VyRGF0YUNvbnRhaW5lcgBOM29zZzI0RGVmYXVsdFVzZXJEYXRhQ29udGFpbmVyRQBOM29zZzRWaWV3NVNsYXZlRQB2b2lkIFN0YXRlU2V0OjpzZXRHbG9iYWxEZWZhdWx0cygpAHZvaWQgU3RhdGVTZXQ6OnNldEdsb2JhbERlZmF1bHRzKCkgU2hhZGVyUGlwZWxpbmUgZW5hYmxlZCwgbnVtVGV4dFVuaXRzID0gAEdMX01BWF9URVhUVVJFX1VOSVRTAHZvaWQgU3RhdGVTZXQ6OnNldEdsb2JhbERlZmF1bHRzKCkgU2hhZGVyUGlwZWxpbmUgZGlzYWJsZWQuACAgIFN0YXRlU2V0OjpzZXRHbG9iYWxEZWZhdWx0cygpIFNldHRpbmcgdXAgR0wyIGNvbXBhdGlibGUgc2hhZGVycwAgICBTdGF0ZVNldDo6c2V0R2xvYmFsRGVmYXVsdHMoKSBTZXR0aW5nIHVwIEdMMyBjb21wYXRpYmxlIHNoYWRlcnMAI3ZlcnNpb24gMzAwIGVzCi8vIGdsM19WZXJ0ZXhTaGFkZXIKI2lmZGVmIEdMX0VTCiAgICBwcmVjaXNpb24gaGlnaHAgZmxvYXQ7CiNlbmRpZgppbiB2ZWM0IG9zZ19WZXJ0ZXg7CmluIHZlYzQgb3NnX0NvbG9yOwppbiB2ZWM0IG9zZ19NdWx0aVRleENvb3JkMDsKdW5pZm9ybSBtYXQ0IG9zZ19Nb2RlbFZpZXdQcm9qZWN0aW9uTWF0cml4OwpvdXQgdmVjMiB0ZXhDb29yZDsKb3V0IHZlYzQgdmVydGV4Q29sb3I7CnZvaWQgbWFpbih2b2lkKQp7CiAgICBnbF9Qb3NpdGlvbiA9IG9zZ19Nb2RlbFZpZXdQcm9qZWN0aW9uTWF0cml4ICogb3NnX1ZlcnRleDsKICAgIHRleENvb3JkID0gb3NnX011bHRpVGV4Q29vcmQwLnh5OwogICAgdmVydGV4Q29sb3IgPSBvc2dfQ29sb3I7IAp9CgAjdmVyc2lvbiAzMDAgZXMKLy8gZ2wzX0ZyYWdtZW50U2hhZGVyCiNpZmRlZiBHTF9FUwogICAgcHJlY2lzaW9uIGhpZ2hwIGZsb2F0OwojZW5kaWYKdW5pZm9ybSBzYW1wbGVyMkQgYmFzZVRleHR1cmU7CmluIHZlYzIgdGV4Q29vcmQ7CmluIHZlYzQgdmVydGV4Q29sb3I7Cm91dCB2ZWM0IGNvbG9yOwp2b2lkIG1haW4odm9pZCkKewogICAgY29sb3IgPSB2ZXJ0ZXhDb2xvciAqIHRleHR1cmUoYmFzZVRleHR1cmUsIHRleENvb3JkKTsKfQoAYmFzZVRleHR1cmUALy8gZ2wyX1ZlcnRleFNoYWRlcgojaWZkZWYgR0xfRVMKICAgIHByZWNpc2lvbiBoaWdocCBmbG9hdDsKI2VuZGlmCnZhcnlpbmcgdmVjMiB0ZXhDb29yZDsKdmFyeWluZyB2ZWM0IHZlcnRleENvbG9yOwp2b2lkIG1haW4odm9pZCkKewogICAgZ2xfUG9zaXRpb24gPSBnbF9Nb2RlbFZpZXdQcm9qZWN0aW9uTWF0cml4ICogZ2xfVmVydGV4OwogICAgdGV4Q29vcmQgPSBnbF9NdWx0aVRleENvb3JkMC54eTsKICAgIHZlcnRleENvbG9yID0gZ2xfQ29sb3I7IAp9CgAvLyBnbDJfRnJhZ21lbnRTaGFkZXIKI2lmZGVmIEdMX0VTCiAgICBwcmVjaXNpb24gaGlnaHAgZmxvYXQ7CiNlbmRpZgp1bmlmb3JtIHNhbXBsZXIyRCBiYXNlVGV4dHVyZTsKdmFyeWluZyB2ZWMyIHRleENvb3JkOwp2YXJ5aW5nIHZlYzQgdmVydGV4Q29sb3I7CnZvaWQgbWFpbih2b2lkKQp7CiAgICBnbF9GcmFnQ29sb3IgPSB2ZXJ0ZXhDb2xvciAqIHRleHR1cmUyRChiYXNlVGV4dHVyZSwgdGV4Q29vcmQpOwp9CgBDYW5ub3QgYXNzaWduIGJldHdlZW4gVW5pZm9ybSB0eXBlcyAAdWltYWdlMkRNU0FycmF5AHVpbWFnZTJETVMAdWltYWdlQ3ViZUFycmF5AHVpbWFnZTJEQXJyYXkAdWltYWdlMURBcnJheQB1aW1hZ2VCdWZmZXIAdWltYWdlQ3ViZQB1aW1hZ2UyRFJlY3QAdWltYWdlM0QAdWltYWdlMkQAdWltYWdlMUQAaWltYWdlMkRNU0FycmF5AGlpbWFnZTJETVMAaWltYWdlQ3ViZUFycmF5AGlpbWFnZTJEQXJyYXkAaWltYWdlMURBcnJheQBpaW1hZ2VCdWZmZXIAaWltYWdlQ3ViZQBpaW1hZ2UyRFJlY3QAaWltYWdlM0QAaWltYWdlMkQAaWltYWdlMUQAaW1hZ2UyRE1TQXJyYXkAaW1hZ2UyRE1TAGltYWdlQ3ViZUFycmF5AGltYWdlMkRBcnJheQBpbWFnZTFEQXJyYXkAaW1hZ2VCdWZmZXIAaW1hZ2VDdWJlAGltYWdlMkRSZWN0AGltYWdlM0QAaW1hZ2UyRABpbWFnZTFEAHVzYW1wbGVyMkRSZWN0AHVzYW1wbGVyQnVmZmVyAHVzYW1wbGVyMkRNU0FycmF5AHVzYW1wbGVyMkRNUwB1c2FtcGxlckN1YmVNYXBBcnJheQB1c2FtcGxlcjJEQXJyYXkAdXNhbXBsZXIxREFycmF5AHVzYW1wbGVyQ3ViZQB1c2FtcGxlcjNEAHVzYW1wbGVyMkQAdXNhbXBsZXIxRABpc2FtcGxlcjJEUmVjdABpc2FtcGxlckJ1ZmZlcgBpc2FtcGxlcjJETVNBcnJheQBpc2FtcGxlcjJETVMAaXNhbXBsZXJDdWJlTWFwQXJyYXkAaXNhbXBsZXIyREFycmF5AGlzYW1wbGVyMURBcnJheQBpc2FtcGxlckN1YmUAaXNhbXBsZXIzRABpc2FtcGxlcjJEAGlzYW1wbGVyMUQAc2FtcGxlcjJEUmVjdFNoYWRvdwBzYW1wbGVyMkRSZWN0AHNhbXBsZXJCdWZmZXIAc2FtcGxlckN1YmVNYXBBcnJheVNoYWRvdwBzYW1wbGVyQ3ViZVNoYWRvdwBzYW1wbGVyMkRNU0FycmF5AHNhbXBsZXIyRE1TAHNhbXBsZXIyREFycmF5U2hhZG93AHNhbXBsZXIxREFycmF5U2hhZG93AHNhbXBsZXJDdWJlTWFwQXJyYXkAc2FtcGxlcjJEQXJyYXkAc2FtcGxlcjFEQXJyYXkAc2FtcGxlcjJEU2hhZG93AHNhbXBsZXIxRFNoYWRvdwBzYW1wbGVyQ3ViZQBzYW1wbGVyM0QAc2FtcGxlcjJEAHNhbXBsZXIxRABkbWF0NHgzAGRtYXQ0eDIAZG1hdDN4NABkbWF0M3gyAGRtYXQyeDQAZG1hdDJ4MwBkbWF0NABkbWF0MwBkbWF0MgBtYXQ0eDMAbWF0NHgyAG1hdDN4NABtYXQzeDIAbWF0Mng0AG1hdDJ4MwBtYXQ0AG1hdDMAbWF0MgB1aW50NjRfdABpbnQ2NF90AGJ2ZWM0AGJ2ZWMzAGJ2ZWMyAHVpdmVjNAB1aXZlYzMAdWl2ZWMyAHVpbnQAaXZlYzQAaXZlYzMAaXZlYzIAZHZlYzQAZHZlYzMAZHZlYzIAdmVjNAB2ZWMzAHZlYzIAVW5pZm9ybSBudW1FbGVtZW50cyA8IDEgaXMgaW52YWxpZABXYXJuaW5nOiBVbmlmb3JtOjpzZXROdW1FbGVtZW50cygpIGNhbm5vdCBjaGFuZ2UgVW5pZm9ybSBudW1FbGVtZW50cywgc2l6ZSBhbHJlYWR5IGZpeGVkLgBXYXJuaW5nOiB0ZXh0dXJlIGF0dHJpYnV0ZSAnACdwYXNzZWQgdG8gc2V0QXR0cmlidXRlKGF0dHIsdmFsdWUpLCAAICAgICAgICAgYXNzdW1pbmcgc2V0VGV4dHVyZUF0dHJpYnV0ZSh1bml0PTAsYXR0cix2YWx1ZSkgaW5zdGVhZC4AICAgICAgICAgcGxlYXNlIGNoYW5nZSBjYWxsaW5nIGNvZGUgdG8gdXNlIGFwcHJvcHJpYXRlIGNhbGwuACcgcGFzc2VkIHRvIHNldFRleHR1cmVBdHRyaWJ1dGUodW5pdCxhdHRyLHZhbHVlKSwgACAgICAgICAgIGFzc3VtaW5nIHNldEF0dHJpYnV0ZShhdHRyLHZhbHVlKSBpbnN0ZWFkLgAnIHBhc3NlZCB0byBzZXRBdHRyaWJ1dGVBbmRNb2RlcyhhdHRyLHZhbHVlKSwgACAgICAgICAgIGFzc3VtaW5nIHNldFRleHR1cmVBdHRyaWJ1dGVBbmRNb2Rlcyh1bml0PTAsYXR0cix2YWx1ZSkgaW5zdGVhZC4AV2FybmluZzogbm9uIHRleHR1cmUgYXR0cmlidXRlICcAJyBwYXNzZWQgdG8gc2V0VGV4dHVyZUF0dHJpYnV0ZUFuZE1vZGVzKHVuaXQsYXR0cix2YWx1ZSksIAAgICAgICAgICBhc3N1bWluZyBzZXRBdHRyaWJ1dGVBbmRNb2RlcyhhdHRyLHZhbHVlKSBpbnN0ZWFkLgBXYXJuaW5nOiBub24tdGV4dHVyZSBtb2RlICcAJ3Bhc3NlZCB0byBzZXRUZXh0dXJlTW9kZSh1bml0LG1vZGUsdmFsdWUpLCAAICAgICAgICAgYXNzdW1pbmcgc2V0TW9kZShtb2RlLHZhbHVlKSBpbnN0ZWFkLgAyM1NldEFzc29jaWF0ZU1vZGVzSGVscGVyAE4zb3NnMTRTdGF0ZUF0dHJpYnV0ZTlNb2RlVXNhZ2VFAFdhcm5pbmc6IHRleHR1cmUgbW9kZSAnACdwYXNzZWQgdG8gc2V0TW9kZShtb2RlLHZhbHVlKSwgACAgICAgICAgIGFzc3VtaW5nIHNldFRleHR1cmVNb2RlKHVuaXQ9MCxtb2RlLHZhbHVlKSBpbnN0ZWFkLgBFcnJvcjogU2V0dGluZyBtb2RlICdHTF9DT0xPUl9NQVRFUklBTCcgdmlhIG9zZzo6U3RhdGVTZXQ6OnNldE1vZGUobW9kZSx2YWx1ZSkgaWdub3JlZC4KACAgICAgICBUaGUgbW9kZSAnR0xfQ09MT1JfTUFURVJJQUwnIGlzIHNldCBieSB0aGUgb3NnOjpNYXRlcmlhbCBTdGF0ZUF0dHJpYnV0ZS4KACAgICAgICBTZXR0aW5nIHRoaXMgbW9kZSB3b3VsZCBjb25mdXNlIG9zZydzIFN0YXRlIHRyYWNraW5nLgBEZXN0cnVjdGluZyBvc2c6OlZpZXcARG9uZSBkZXN0cnVjdGluZyBvc2c6OlZpZXcATjNvc2c0Vmlld0UAVmlld3BvcnQATjNvc2c4Vmlld3BvcnRFAE41b3NnR0ExMEV2ZW50UXVldWVFAEV2ZW50VmlzaXRvcgBvc2dHQQBONW9zZ0dBMTJFdmVudFZpc2l0b3JFAEdVSUV2ZW50QWRhcHRlcgBONW9zZ0dBMTVHVUlFdmVudEFkYXB0ZXI5VG91Y2hEYXRhRQBONW9zZ0dBMTVHVUlFdmVudEFkYXB0ZXJFAE41b3NnR0E1RXZlbnRFAE41b3NnR0ExNUdVSUV2ZW50SGFuZGxlckUATjVvc2dHQTEyRXZlbnRIYW5kbGVyRQBIYW5kbGUgZXZlbnQgAE9yYml0TWFuaXB1bGF0b3IATjVvc2dHQTE3Q2FtZXJhTWFuaXB1bGF0b3IyM0Nvb3JkaW5hdGVGcmFtZUNhbGxiYWNrRQBDYW1lcmFNYW5pcHVsYXRvcgBONW9zZ0dBMTdDYW1lcmFNYW5pcHVsYXRvckUAU3RhbmRhcmRNYW5pcHVsYXRvcgBONW9zZ0dBMTlTdGFuZGFyZE1hbmlwdWxhdG9yMTNBbmltYXRpb25EYXRhRQBONW9zZ0dBMTlTdGFuZGFyZE1hbmlwdWxhdG9yRQBUcmFja2JhbGxNYW5pcHVsYXRvcjo6c2V0VHJhY2tiYWxsU2l6ZShmbG9hdCkAV2FybmluZzogACBvZiAAIGlzIGJlbG93IHBlcm1pdHRlZCBtaW5pbXVtLCBjbGFtcGluZyB0byAAIGlzIGFib3ZlIHBlcm1pdHRlZCBtYXhpbXVtLCBjbGFtcGluZyB0byAATjVvc2dHQTE2T3JiaXRNYW5pcHVsYXRvcjE4T3JiaXRBbmltYXRpb25EYXRhRQBJbnRlcnNlY3Rpb25WaXNpdG9yAG9zZ1V0aWwATjdvc2dVdGlsMTlJbnRlcnNlY3Rpb25WaXNpdG9yRQBTdGFuZGFyZE1hbmlwdWxhdG9yOjpmaXhWZXJ0aWNhbEF4aXMgd2FybmluZzogQ2FuIG5vdCB1cGRhdGUgdmVydGljYWwgYXhpcy4ATjdvc2dVdGlsMjJMaW5lU2VnbWVudEludGVyc2VjdG9yRQBON29zZ1V0aWwxMUludGVyc2VjdG9yRQBXYXJuaW5nOiBLZFRyZWU6OmludGVyc2VjdCgpIGVuY291bnRlZCB1bnN1cHBvcnRlZCBwcmltaXRpdmUgc2l6ZSBvZiAAVHJpYW5nbGUgRnVuY3RvciBkb2VzIG5vdCBzdXBwb3J0IFZlYzRkKiB2ZXJ0ZXggYXJyYXlzAFRyaWFuZ2xlIEZ1bmN0b3IgZG9lcyBub3Qgc3VwcG9ydCBWZWMzZCogdmVydGV4IGFycmF5cwBUcmlhbmdsZSBGdW5jdG9yIGRvZXMgbm90IHN1cHBvcnQgVmVjMmQqIHZlcnRleCBhcnJheXMAVHJpYW5nbGUgRnVuY3RvciBkb2VzIG5vdCBzdXBwb3J0IFZlYzQqIHZlcnRleCBhcnJheXMAVHJpYW5nbGUgRnVuY3RvciBkb2VzIG5vdCBzdXBwb3J0IFZlYzIqIHZlcnRleCBhcnJheXMATjNvc2cyNFRlbXBsYXRlUHJpbWl0aXZlRnVuY3RvcklOMjdMaW5lU2VnbWVudEludGVyc2VjdG9yVXRpbHMxNkludGVyc2VjdEZ1bmN0b3JJTlNfNVZlYzNmRWZFRUVFAE4yN0xpbmVTZWdtZW50SW50ZXJzZWN0b3JVdGlsczE2SW50ZXJzZWN0RnVuY3RvcklOM29zZzVWZWMzZkVmRUUATjNvc2cyNFRlbXBsYXRlUHJpbWl0aXZlRnVuY3RvcklOMjdMaW5lU2VnbWVudEludGVyc2VjdG9yVXRpbHMxNkludGVyc2VjdEZ1bmN0b3JJTlNfNVZlYzNkRWRFRUVFAE4yN0xpbmVTZWdtZW50SW50ZXJzZWN0b3JVdGlsczE2SW50ZXJzZWN0RnVuY3RvcklOM29zZzVWZWMzZEVkRUUAYWQAL2hvbWUva29ybmVyci9wL21vdG9yL21vdG9yLzA1Lk1vZGVsVGV4dHVyZS9tb3Rvci13ZWIvLi4vLi4vLi4vLi4vbW90b3IvLi4vT3BlblNjZW5lR3JhcGgvc3JjL29zZ0dBL09yYml0TWFuaXB1bGF0b3IuY3BwAGFwcGx5QW5pbWF0aW9uU3RlcABNYW5pcHVsYXRvciB3YXJuaW5nOiBldmVudFRpbWVEZWx0YSA9IAAgQ2FtZXJhTWFuaXB1bGF0b3I6OmNvbXB1dGVIb21lUG9zaXRpb24oACAgICBib3VuZGluZ1NwaGVyZS5jZW50ZXIoKSA9ICgAICAgIGJvdW5kaW5nU3BoZXJlLnJhZGl1cygpID0gADogU3BhY2UAUmVzZXQgdGhlIHZpZXdpbmcgcG9zaXRpb24gdG8gaG9tZQBNYW5pcHVsYXRvcgBONW9zZ0dBMTZPcmJpdE1hbmlwdWxhdG9yRQBDdWxsVmlzaXRvcgBfY2xhbXBQcm9qZWN0aW9uTWF0cml4IG5vdCBhcHBsaWVkLCBpbnZhbGlkIGRlcHRoIHJhbmdlLCB6bmVhciA9IAAgIHpmYXIgPSAATjNvc2cyNFRlbXBsYXRlUHJpbWl0aXZlRnVuY3RvckkyMUNvbXB1dGVOZWFyRmFyRnVuY3RvckkxN0dyZWF0ZXJDb21wYXJhdG9yRUVFADIxQ29tcHV0ZU5lYXJGYXJGdW5jdG9ySTE3R3JlYXRlckNvbXBhcmF0b3JFAE4zb3NnMjRUZW1wbGF0ZVByaW1pdGl2ZUZ1bmN0b3JJMjFDb21wdXRlTmVhckZhckZ1bmN0b3JJMTRMZXNzQ29tcGFyYXRvckVFRQAyMUNvbXB1dGVOZWFyRmFyRnVuY3RvckkxNExlc3NDb21wYXJhdG9yRQBON29zZ1V0aWwxMVJlbmRlclN0YWdlRQBON29zZ1V0aWw5UmVuZGVyQmluRQBXYXJuaW5nOiBSZW5kZXJCaW4gIgAiIGltcGxlbWVudGF0aW9uIG5vdCBmb3VuZCwgdXNpbmcgZGVmYXVsdCBSZW5kZXJCaW4gYXMgYSBmYWxsYmFjay4AT1NHX0RFRkFVTFRfQklOX1NPUlRfTU9ERQBTT1JUX0JZX1NUQVRFAFNPUlRfQllfU1RBVEVfVEhFTl9GUk9OVF9UT19CQUNLAFNPUlRfRlJPTlRfVE9fQkFDSwBTT1JUX0JBQ0tfVE9fRlJPTlQAVFJBVkVSU0FMX09SREVSAFdhcm5pbmc6IFN0YXRlOjpyZW1vdmVTdGF0ZVNldCgAKSBvdXQgb2YgcmFuZ2UAV2FybmluZzogUmVuZGVyQmluOjpjb3B5TGVhdmVzRnJvbVN0YXRlR3JhcGhMaXN0VG9SZW5kZXJMZWFmTGlzdCgpIGRldGVjdGVkIE5hTiBkZXB0aCB2YWx1ZXMsIGRhdGFiYXNlIG1heSBiZSBjb3JydXB0ZWQuAFN0YXRlU29ydGVkQmluAERlcHRoU29ydGVkQmluAFRyYXZlcnNhbE9yZGVyQmluADIyUmVuZGVyQmluUHJvdG90eXBlTGlzdABOU3QzX18yM21hcElOU18xMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFTjNvc2c3cmVmX3B0cklON29zZ1V0aWw5UmVuZGVyQmluRUVFTlNfNGxlc3NJUzZfRUVOUzRfSU5TXzRwYWlySUtTNl9TQl9FRUVFRUUATjNvc2cxMGRlcGVuZHNfb25JUE4xMU9wZW5UaHJlYWRzNU11dGV4RVhhZExfWk5TXzEwUmVmZXJlbmNlZDI0Z2V0R2xvYmFsUmVmZXJlbmNlZE11dGV4RXZFRUVFAE43b3NnVXRpbDEwU3RhdGVHcmFwaEUAIG9yIABzdGFydCBvZiBTdGF0ZTo6YXBwbHkoKQBhZnRlciBhdHRyaWJ1dGVzIFN0YXRlOjphcHBseSgpAGVuZCBvZiBTdGF0ZTo6YXBwbHkoKQBXYXJuaW5nOiBkZXRlY3RlZCBPcGVuR0wgZXJyb3IgJwAnIGFmdGVyIGFwcGx5aW5nIGF0dHJpYnV0ZSAAV2FybmluZzogZGV0ZWN0ZWQgT3BlbkdMIGVycm9yIG51bWJlciAweAAgYWZ0ZXIgYXBwbHlpbmcgYXR0cmlidXRlIAAnIGFmdGVyIGFwcGx5aW5nIEdMTW9kZSAweAAgYWZ0ZXIgYXBwbHlpbmcgR0xNb2RlIDB4ACBhdAAgaW4gb3NnOjpTdGF0ZS4AUG9zaXRpb25hbFN0YXRlQ29udGFpbmVyAE43b3NnVXRpbDI0UG9zaXRpb25hbFN0YXRlQ29udGFpbmVyRQBhZnRlciBSZW5kZXJCaW46OmRyYXcoLi4pAFJlbmRlclN0YWdlOjpkcmF3SW5uZXIoLCkgRkJPIHN0YXR1cyA9IDB4AFdhcm5pbmcgOiBmYWlsZWQgdG8gY3JlYXRlIFRleHR1cmVDdWJlTWFwIHRleHR1cmUgb2JlamVjdCwgY29weVRleFN1YkltYWdlQ3ViZU1hcCBhYmFuZG9uZWQuAFdhcm5pbmc6IFRleHR1cmVDdWJlTWFwOjpjb3B5VGV4SW1hZ2UyRCgsLCwsKSBzd2l0Y2ggb2ZmIG1pcCBtYXBwaW5nIGFzIGhhcmR3YXJlIHN1cHBvcnQgbm90IGF2YWlsYWJsZS4AV2FybmluZzogVGV4dHVyZTNEOjpjb3B5VGV4U3ViSW1hZ2UzRCguLikgZmFpbGVkLCBjYW5ub3Qgbm90IGNvcHkgdG8gYSBub24gZXhpc3RlbnQgdGV4dHVyZS4AV2FybmluZzogVGV4dHVyZTFEOjpjb3B5VGV4U3ViSW1hZ2UxRCguLikgbm90IHN1cHBvcnRlZC4AV2FybmluZzogVGV4dHVyZTJEOjpjb3B5VGV4SW1hZ2UyRCgsLCwsKSBzd2l0Y2ggb2ZmIG1pcCBtYXBwaW5nIGFzIGhhcmR3YXJlIHN1cHBvcnQgbm90IGF2YWlsYWJsZS4AQXR0ZW1wdGluZyB0byByZWFkIGZyb20gYSBtdWx0aXNhbXBsZWQgZnJhbWVidWZmZXIgb2JqZWN0LiBTZXQgYSByZXNvbHZlIGZyYW1lYnVmZmVyIG9uIHRoZSBSZW5kZXJTdGFnZSB0byBmaXggdGhpcy4ARXJyb3I6IGNhbm5vdCBkcmF3IHN0YWdlIGR1ZSB0byB1bmRlZmluZWQgdmlld3BvcnQuAERyYXdJbm5lclN0YWdlADE4RHJhd0lubmVyT3BlcmF0aW9uAFJlbmRlclN0YWdlOjpydW5DYW1lcmFTZXRVcChvc2c6OlJlbmRlckluZm8mIHJlbmRlckluZm8pIABTZXR0aW5nIHVwIG9zZzo6Q2FtZXJhOjpGUkFNRV9CVUZGRVJfT0JKRUNUAE11bHRpc2FtcGxlIGNvbG9yIHNhbXBsZXMgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gc2FtcGxlcy4gU2V0dGluZyBjb2xvciBzYW1wbGVzIGVxdWFsIHRvIHNhbXBsZXMuAFJlbmRlclN0YWdlOjpydW5DYW1lcmFTZXRVcCgpLCBGQk8gc2V0dXAgZmFpbGVkLCBGQk8gc3RhdHVzPSAweABSZW5kZXJTdGFnZTo6cnVuQ2FtZXJhU2V0VXAoKSwgbXVsdGlzYW1wbGUgRkJPIHNldHVwIGZhaWxlZCwgRkJPIHN0YXR1cyA9IDB4AFdHTF9BUkJfcmVuZGVyX3RleHR1cmUAV2FybmluZzogUmVuZGVyU3RhZ2U6OnJ1bkNhbWVyYVNldFVwKFN0YXRlJikgV2luZG93IABXYXJuaW5nOiBSZW5kZXJTdGFnZTo6cnVuQ2FtZXJhU2V0VXAoU3RhdGUmKSBQYnVmZmVyIABkb2VzIG5vdCBzdXBwb3J0IG11bHRpcGxlIGNvbG9yIG91dHB1dHMuAFJlbmRlclN0YWdlOjpydW5DYW1lcmFTZXRVcChTdGF0ZSYpIENvbnRleHQgaGFzIGJlZW4gcmVhbGl6ZWQgAFJlbmRlclN0YWdlOjpydW5DYW1lcmFTZXRVcChTdGF0ZSYpIEFzc2lnbiBncmFwaGljcyBjb250ZXh0IHRvIFRleHR1cmUAUmVuZGVyU3RhZ2U6OnJ1bkNhbWVyYVNldFVwKFN0YXRlJikgQXNzaWduaW5nIHRleHR1cmUgdG8gUmVuZGVyU3RhZ2Ugc28gdGhhdCBpdCBkb2VzIHRoZSBjb3B5AEZhaWxlZCB0byBhY3F1aXJlIEdyYXBoaWNzIENvbnRleHQAU2V0dGluZyB1cCBvc2c6OkNhbWVyYTo6RlJBTUVfQlVGRkVSAFJlbmRlclN0YWdlAFdhcm5pbmc6IG9zZzo6Y2xvbmVUeXBlKGNvbnN0IFQqKSBjbG9uZWQgb2JqZWN0IG5vdCBvZiB0eXBlIFQsIHJldHVybmluZyBOVUxMLgBXYXJuaW5nOiBvc2c6OmNsb25lVHlwZShjb25zdCBUKikgcGFzc2VkIG51bGwgb2JqZWN0IHRvIGNsb25lLCByZXR1cm5pbmcgTlVMTC4AUmVuZGVyU3RhZ2VDYWNoZQBON29zZ1V0aWwxNlJlbmRlclN0YWdlQ2FjaGVFAEN1bGxWaXNpdG9yOjphcHBseShCaWxsYm9hcmQmKSBkZXRlY3RlZCBOYU4sACAgICBkZXB0aD0ALCBwb3M9KAApLAAgICAgKmJpbGxib2FyZF9tYXRyaXg9ACAgICBOb2RlUGF0aDoAICAgICAgICAiAEN1bGxWaXNpdG9yOmNyZWF0ZU9yUmV1c2VSZW5kZXJMZWFmKCkgc2tpcHBpbmcgbXVsdGlwbHkgcmVmZXJlbmNlZCBlbnRyeS4gX3JldXNlUmVuZGVyTGVhZkxpc3Quc2l6ZSgpPQAgX3JldXNlUmVuZGVyTGVhZkxpc3RbAF0tPnJlZmVyZW5jZUNvdW50KCk9AHN0YXJ0IG9mIFN0YXRlOjphcHBseShTdGF0ZVNldCopAGVuZCBvZiBTdGF0ZTo6YXBwbHkoU3RhdGVTZXQqKQBON29zZ1V0aWwxMFJlbmRlckxlYWZFAAkAV2FybmluZzogQ3VsbFZpc2l0b3I6OnVwZGF0ZUNhbGN1bGF0ZWROZWFyRmFyKC4pIG5lYXI+ZmFyIGluIHJhbmdlIGNhbGN1bGF0aW9uLAAgICAgICAgICBjb3JyZWN0aW5nIGJ5IHN3YXBwaW5nIHZhbHVlcyBkX25lYXI9ACBkZmFyPQBDdWxsVmlzaXRvcjo6YXBwbHkoR2VvZGUmKSBkZXRlY3RlZCBOYU4sACwgY2VudGVyPSgAICAgIG1hdHJpeD0ATjdvc2dVdGlsMTFDdWxsVmlzaXRvckUAR0xPYmplY3RzVmlzaXRvcgBzdGFydCBvZiBHTE9iamVjdHNWaXNpdG9yOjphcHBseShvc2c6OlN0YXRlU2V0JiBzdGF0ZXNldCkAYWZ0ZXIgc3RhdGVzZXQuY29tcGlsZUdMT2JqZWN0cyBpbiBHTE9iamVjdHNWaXNpdG9yOjphcHBseShvc2c6OlN0YXRlU2V0JiBzdGF0ZXNldCkAYWZ0ZXIgcGNwLT5hcHBseShVbmlmb3JtJikgaW4gR0xPYmplY3RzVmlzaXRvcjo6YXBwbHkob3NnOjpTdGF0ZVNldCYgc3RhdGVzZXQpLCB1bmlmb3JtIG5hbWU6IABhZnRlciBHTE9iamVjdHNWaXNpdG9yOjphcHBseShvc2c6OlN0YXRlU2V0JiBzdGF0ZXNldCkAYmVmb3JlIFN0YXRlU2V0Ojpjb21waWxlR0xPYmVqY3RzKCkAU3RhdGVTZXQ6OmNvbXBpbGVHTE9iZWpjdHMoKSBjb21waWxpbmcgAFN0YXRlU2V0Ojpjb21waWxlR0xPYmVqY3RzKCkgY29tcGlsaW5nIHRleHR1cmUgYXR0cmlidXRlAHN0YXJ0IG9mIEdMT2JqZWN0c1Zpc2l0b3I6OmFwcGx5KG9zZzo6RHJhd2FibGUmIGRyYXdhYmxlKQBhZnRlciBkcmF3YWJsZS5jb21waWxlR0xPYmplY3RzKCkgY2FsbCBpbiBHTE9iamVjdHNWaXNpdG9yOjphcHBseShvc2c6OkRyYXdhYmxlJiBkcmF3YWJsZSkgIABON29zZ1V0aWwxNkdMT2JqZWN0c1Zpc2l0b3JFAE43b3NnVXRpbDE0U3RhdGVUb0NvbXBpbGVFAE43b3NnVXRpbDI3SW5jcmVtZW50YWxDb21waWxlT3BlcmF0aW9uMTdDb21waWxlRHJhd2FibGVPcEUATjdvc2dVdGlsMjdJbmNyZW1lbnRhbENvbXBpbGVPcGVyYXRpb245Q29tcGlsZU9wRQBON29zZ1V0aWwyN0luY3JlbWVudGFsQ29tcGlsZU9wZXJhdGlvbjE2Q29tcGlsZVRleHR1cmVPcEUATjdvc2dVdGlsMjdJbmNyZW1lbnRhbENvbXBpbGVPcGVyYXRpb24xNkNvbXBpbGVQcm9ncmFtT3BFAE43b3NnVXRpbDE0UmF5SW50ZXJzZWN0b3JFAGZpbmlzaGVkIHNlYXJjaGluZyBmb3Igb2NjbHVkZXIgLSBmb3VuZCAAV2FybmluZzogU2NlbmVWaWV3OjpkcmF3KCkgLSBWRVJUSUNBTF9JTlRFUkxBQ0UsIEhPUklaT05UQUxfSU5URVJMQUNFLCBhbmQgQ0hFQ0tFUkJPQVJEIHN0ZXJlbyBub3Qgc3VwcG9ydGVkLgBXYXJuaW5nOiBzdGVyZW8gbW9kZSBub3QgaW1wbGVtZW50ZWQgeWV0LgBlbmQgb2YgU2NlbmVWaWV3OjpkcmF3KCkAV2FybmluZzogbm8gdmFsaWQgb3NnVXRpbDo6U2NlbmVWaWV3Ojpfc3RhdGUgYXR0YWNoZWQsIGNyZWF0aW5nIGEgZGVmYXVsdCBzdGF0ZSBhdXRvbWF0aWNhbGx5LgBXYXJuaW5nOiBubyB2YWxpZCBvc2dVdGlsOjpTY2VuZVZpZXc6OiBhdHRhY2hlZCwgY3JlYXRpbmcgYSBkZWZhdWx0IEN1bGxWaXNpdG9yIGF1dG9tYXRpY2FsbHkuAFdhcm5pbmc6IG5vIHZhbGlkIG9zZ1V0aWw6OlNjZW5lVmlldzo6IGF0dGFjaGVkLCBjcmVhdGluZyBhIGdsb2JhbCBkZWZhdWx0IFN0YXRlR3JhcGggYXV0b21hdGljYWxseS4AV2FybmluZzogbm8gdmFsaWQgb3NnVXRpbDo6U2NlbmVWaWV3OjpfcmVuZGVyU3RhZ2UgYXR0YWNoZWQsIGNyZWF0aW5nIGEgZGVmYXVsdCBSZW5kZXJTdGFnZSBhdXRvbWF0aWNhbGx5LgBON29zZ1V0aWwxMUN1bGxWaXNpdG9yMTBJZGVudGlmaWVyRQBPU0dfR0xfRVJST1JfQ0hFQ0tJTkcAT05DRV9QRVJfQVRUUklCVVRFAGdsX1ZlcnRleABvc2dfVmVydGV4AHZlYzQgAGdsX05vcm1hbABvc2dfTm9ybWFsAHZlYzMgAG9zZ19Db2xvcgBnbF9TZWNvbmRhcnlDb2xvcgBvc2dfU2Vjb25kYXJ5Q29sb3IAZ2xfTXVsdGlUZXhDb29yZABvc2dfTXVsdGlUZXhDb29yZABnbF9Gb2dDb29yZABvc2dfRm9nQ29vcmQAZmxvYXQgAG9zZ19GcmFtZU51bWJlcgBvc2dfRnJhbWVUaW1lAG9zZ19EZWx0YUZyYW1lVGltZQBvc2dfU2ltdWxhdGlvblRpbWUAb3NnX0RlbHRhU2ltdWxhdGlvblRpbWUAb3NnX1ZpZXdNYXRyaXgAb3NnX1ZpZXdNYXRyaXhJbnZlcnNlACdwYXNzZWQgdG8gc2V0VGV4dHVyZU1vZGVUb0luaGVyaXQodW5pdCxtb2RlKSwgACAgICAgICAgIGFzc3VtaW5nIHNldE1vZGVUb0luaGVyaXQodW5pdD0wLG1vZGUpIGluc3RlYWQuADI2UmVtb3ZlQXNzb2NpYXRlTW9kZXNIZWxwZXIAJ3Bhc3NlZCB0byBzZXRNb2RlVG9Jbmhlcml0KG1vZGUpLCAAICAgICAgICAgYXNzdW1pbmcgc2V0VGV4dHVyZU1vZGVUb0luaGVyaXQodW5pdD0wLG1vZGUpIGluc3RlYWQuAEVycm9yOiBTZXR0aW5nIG1vZGUgJ0dMX0NPTE9SX01BVEVSSUFMJyB2aWEgb3NnOjpTdGF0ZVNldDo6cmVtb3ZlTW9kZShtb2RlKSBpZ25vcmVkLgoAVXBkYXRlVmlzaXRvcgBON29zZ1V0aWwxM1VwZGF0ZVZpc2l0b3JFAFNjZW5lVmlldwBXYXJuaW5nOiBhdHRlbXB0IHRvIGFzc2lnbiBhIE5VTEwgY2FtZXJhIHRvIFNjZW5lVmlldyBub3QgcGVybWl0dGVkLgBON29zZ1V0aWw5U2NlbmVWaWV3RQBON29zZ1V0aWwxMFN0YXRpc3RpY3NFAFN0YXRzVmlzaXRvcgBPYmplY3QgVHlwZQBVbmlxdWUASW5zdGFuY2VkAER5bmFtaWMALS0tLS0tLS0tLS0ALS0tLS0tAC0tLS0tLS0tLQBTdGF0ZVNldCAgIAAgIGJpbiAxMCAgIAAgIG90aGVyIGJpbgBHcm91cCAgICAgIABUcmFuc2Zvcm0gIABMT0QgICAgICAgIABTd2l0Y2ggICAgIABHZW9kZSAgICAgIABEcmF3YWJsZSAgIABHZW9tZXRyeSAgIABGYXN0IGdlb20uIABWZXJ0aWNlcyAgIABQcmltaXRpdmVzIABON29zZ1V0aWwxMlN0YXRzVmlzaXRvckUARXJyb3I6IFRocmVhZCAAIHN0aWxsIHJ1bm5pbmcgaW4gZGVzdHJ1Y3RvcgBOMTFPcGVuVGhyZWFkczZUaHJlYWRFAE4xMU9wZW5UaHJlYWRzN0JhcnJpZXJFAEVycm9yOiBwdGhyZWFkX2NvbmRfZGVzdHJveSgsKSByZXR1cm5lZCBlcnJvciBzdGF0dXMsIHN0YXR1cyA9ICVkCgBOMTFPcGVuVGhyZWFkczlDb25kaXRpb25FAFNwaGVyZQBOM29zZzZTcGhlcmVFAE43b3NnVXRpbDIwQmFzZU9wdGltaXplclZpc2l0b3JFAE4zb3NnMTNUZW1wbGF0ZUFycmF5SU5TXzVWZWM0ZEVMTlNfNUFycmF5NFR5cGVFMzJFTGk0RUxpNTEzMEVFRQBOM29zZzExTWl4aW5WZWN0b3JJTlNfNVZlYzRkRUVFAE4zb3NnMTNUZW1wbGF0ZUFycmF5SU5TXzVWZWMzZEVMTlNfNUFycmF5NFR5cGVFMzFFTGkzRUxpNTEzMEVFRQBOM29zZzExTWl4aW5WZWN0b3JJTlNfNVZlYzNkRUVFAE4zb3NnMTNUZW1wbGF0ZUFycmF5SU5TXzVWZWMyZEVMTlNfNUFycmF5NFR5cGVFMzBFTGkyRUxpNTEzMEVFRQBOM29zZzExTWl4aW5WZWN0b3JJTlNfNVZlYzJkRUVFAE4zb3NnMTNUZW1wbGF0ZUFycmF5SU5TXzZWZWM0dWJFTE5TXzVBcnJheTRUeXBlRTIwRUxpNEVMaTUxMjFFRUUATjNvc2cxMU1peGluVmVjdG9ySU5TXzZWZWM0dWJFRUUATjNvc2cxM1RlbXBsYXRlQXJyYXlJTlNfNVZlYzRzRUxOU181QXJyYXk0VHlwZUUxNEVMaTRFTGk1MTIyRUVFAE4zb3NnMTFNaXhpblZlY3RvcklOU181VmVjNHNFRUUATjNvc2cxM1RlbXBsYXRlQXJyYXlJTlNfNVZlYzNzRUxOU181QXJyYXk0VHlwZUUxM0VMaTNFTGk1MTIyRUVFAE4zb3NnMTFNaXhpblZlY3RvcklOU181VmVjM3NFRUUATjNvc2cxM1RlbXBsYXRlQXJyYXlJTlNfNVZlYzJzRUxOU181QXJyYXk0VHlwZUUxMkVMaTJFTGk1MTIyRUVFAE4zb3NnMTFNaXhpblZlY3RvcklOU181VmVjMnNFRUUATjNvc2cxM1RlbXBsYXRlQXJyYXlJTlNfNVZlYzRiRUxOU181QXJyYXk0VHlwZUUxMUVMaTRFTGk1MTIwRUVFAE4zb3NnMTFNaXhpblZlY3RvcklOU181VmVjNGJFRUUATjNvc2cxM1RlbXBsYXRlQXJyYXlJTlNfNVZlYzNiRUxOU181QXJyYXk0VHlwZUUxMEVMaTNFTGk1MTIwRUVFAE4zb3NnMTFNaXhpblZlY3RvcklOU181VmVjM2JFRUUATjNvc2cxM1RlbXBsYXRlQXJyYXlJTlNfNVZlYzJiRUxOU181QXJyYXk0VHlwZUU5RUxpMkVMaTUxMjBFRUUATjNvc2cxMU1peGluVmVjdG9ySU5TXzVWZWMyYkVFRQBOM29zZzE4VGVtcGxhdGVJbmRleEFycmF5SXRMTlNfNUFycmF5NFR5cGVFNUVMaTFFTGk1MTIzRUVFAE4zb3NnMThUZW1wbGF0ZUluZGV4QXJyYXlJaExOU181QXJyYXk0VHlwZUU0RUxpMUVMaTUxMjFFRUUATjNvc2cxOFRlbXBsYXRlSW5kZXhBcnJheUlzTE5TXzVBcnJheTRUeXBlRTJFTGkxRUxpNTEyMkVFRQBOM29zZzExTWl4aW5WZWN0b3JJc0VFAE4zb3NnMThUZW1wbGF0ZUluZGV4QXJyYXlJYUxOU181QXJyYXk0VHlwZUUxRUxpMUVMaTUxMjBFRUUATjNvc2cxMU1peGluVmVjdG9ySWFFRQAgdG8gAE43b3NnVXRpbDlPcHRpbWl6ZXIyOFN0YXRpY09iamVjdERldGVjdGlvblZpc2l0b3JFAE9TR19HTF9FUlJPUl9DSEVDS0lORyA8dHlwZT4AT05DRV9QRVJfQVRUUklCVVRFIHwgT04gfCBvbiBlbmFibGVzIGZpbmUgZ3JhaW5lZCBjaGVja2luZywgIE9OQ0VfUEVSX0ZSQU1FIGVuYWJsZXMgY29hcnNlIGdyYWluZWQgY2hlY2tpbmcAT1NHX01BWF9URVhUVVJFX1NJWkUAU2V0IHRoZSBtYXhpbXVtIHNpemUgb2YgdGV4dHVyZXMuAE9TR19HTF9URVhUVVJFX1NUT1JBR0UAT058T0ZGIG9yIEVOQUJMRXxESVNBQkxFLCBFbmFibGVzL2Rpc2FibGVzIHVzYWdlIG9mIGdsVGV4U3RvcmFnZSBmb3IgdGV4dHVyZXMgd2hlcmUgc3VwcG9ydGVkLCBkZWZhdWx0IGlzIEVOQUJMRUQuAE9TR19NSU5JTVVNX0NPTVBJTEVfVElNRV9QRVJfRlJBTUUgPGZsb2F0PgBtaW5pbXVtIGNvbXBpbGUgdGltZSBhbGxvdGVkIHRvIGNvbXBpbGluZyBPcGVuR0wgb2JqZWN0cyBwZXIgZnJhbWUgaW4gZGF0YWJhc2UgcGFnZXIuAE9TR19NQVhJTVVNX09CSkVDVFNfVE9fQ09NUElMRV9QRVJfRlJBTUUgPGludD4AbWF4aW11bSBudW1iZXIgb2YgT3BlbkdMIG9iamVjdHMgdG8gY29tcGlsZSBwZXIgZnJhbWUgaW4gZGF0YWJhc2UgcGFnZXIuAE9TR19GT1JDRV9URVhUVVJFX0RPV05MT0FEIDxPTi9PRkY+AHNob3VsZCB0aGUgdGV4dHVyZSBjb21waWxlcyBiZSBmb3JjZWQgdG8gZG93bmxvYWQgdXNpbmcgYSBkdW1teSBHZW9tZXRyeS4AT1NHX09QVElNSVpFUiAiPHR5cGU+IFs8dHlwZT5dIgBPRkYgfCBERUZBVUxUIHwgRkxBVFRFTl9TVEFUSUNfVFJBTlNGT1JNUyB8IEZMQVRURU5fU1RBVElDX1RSQU5TRk9STVNfRFVQTElDQVRJTkdfU0hBUkVEX1NVQkdSQVBIUyB8IFJFTU9WRV9SRURVTkRBTlRfTk9ERVMgfCBDT01CSU5FX0FESkFDRU5UX0xPRFMgfCBTSEFSRV9EVVBMSUNBVEVfU1RBVEUgfCBNRVJHRV9HRU9NRVRSWSB8IE1FUkdFX0dFT0RFUyB8IFNQQVRJQUxJWkVfR1JPVVBTICB8IENPUFlfU0hBUkVEX05PREVTIHwgT1BUSU1JWkVfVEVYVFVSRV9TRVRUSU5HUyB8IFJFTU9WRV9MT0FERURfUFJPWFlfTk9ERVMgfCBURVNTRUxMQVRFX0dFT01FVFJZIHwgQ0hFQ0tfR0VPTUVUUlkgfCAgRkxBVFRFTl9CSUxMQk9BUkRTIHwgVEVYVFVSRV9BVExBU19CVUlMREVSIHwgU1RBVElDX09CSkVDVF9ERVRFQ1RJT04gfCBJTkRFWF9NRVNIIHwgVkVSVEVYX1BPU1RUUkFOU0ZPUk0gfCBWRVJURVhfUFJFVFJBTlNGT1JNIHwgQlVGRkVSX09CSkVDVF9TRVRUSU5HUwBPU0dfREVGQVVMVF9CSU5fU09SVF9NT0RFIDx0eXBlPgBTT1JUX0JZX1NUQVRFIHwgU09SVF9CWV9TVEFURV9USEVOX0ZST05UX1RPX0JBQ0sgfCBTT1JUX0ZST05UX1RPX0JBQ0sgfCBTT1JUX0JBQ0tfVE9fRlJPTlQAb3NnOjpHZW9kZQBvc2c6Ok9iamVjdCBvc2c6Ok5vZGUgb3NnOjpHZW9kZQBEcmF3YWJsZXMAZ2V0TnVtRHJhd2FibGVzAGdldERyYXdhYmxlAHNldERyYXdhYmxlAGFkZERyYXdhYmxlAHJlbW92ZURyYXdhYmxlADE5R2VvZGVSZW1vdmVEcmF3YWJsZQBONW9zZ0RCMTJNZXRob2RPYmplY3RFADE2R2VvZGVBZGREcmF3YWJsZQBOM29zZzE0R2V0U2NhbGFyVmFsdWVJakVFAE4zb3NnMTFWYWx1ZU9iamVjdDE1R2V0VmFsdWVWaXNpdG9yRQAxNkdlb2RlU2V0RHJhd2FibGUAMTZHZW9kZUdldERyYXdhYmxlAFVJbnRWYWx1ZU9iamVjdABOM29zZzE5VGVtcGxhdGVWYWx1ZU9iamVjdElqRUUATjNvc2cxMVZhbHVlT2JqZWN0RQBWYWx1ZU9iamVjdAAyMEdlb2RlR2V0TnVtRHJhd2FibGVzAE41b3NnREIxNFVzZXJTZXJpYWxpemVySU4zb3NnNUdlb2RlRUVFAE5TdDNfXzIxM2Jhc2ljX2ZpbGVidWZJY05TXzExY2hhcl90cmFpdHNJY0VFRUUATlN0M19fMjE0YmFzaWNfaWZzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFRUUAb3NnOjpTdGF0ZTo6X21heFRleHR1cmVQb29sU2l6ZT0AV2FybmluZzogbmV3IE1heFRleHR1cmVQb29sU2l6ZT0AIGlzIHNtYWxsZXIgdGhhbiBjdXJyZW50IFRleHR1cmVQb29sU2l6ZT0Ab3NnOjpTdGF0ZTo6X21heEJ1ZmZlck9iamVjdFBvb2xTaXplPQAgIFJlbW92ZWQgZnJvbSBwYXJlbnQgACAgIEFkZGVkIGJhY2sgdG8gcGFyZW50IABFcnJvcjogaW52YWxpZCAnd2hpY2gnIHBhc3NlZCBUZXh0dXJlOjpzZXRXcmFwKABFcnJvcjogaW52YWxpZCAnd2hpY2gnIHBhc3NlZCBUZXh0dXJlOjpzZXRGaWx0ZXIoAE4zb3NnNVN0YXRzRQBGYWlsZWQgdG8gYXNzaWduIHZhbGlkIGluZGV4IGZvciBTdGF0czo6c2V0QXR0cmlidXRlKABFcnJvcjogaW52YWxpZCAnd2hpY2gnIHBhc3NlZCBUZXh0dXJlOjpnZXRGaWx0ZXIod2hpY2gpADE2VHJhbnNmb3JtVmlzaXRvcgAlZC4lZC4lZAAgIFZlcnRleEFycmF5U3RhdGU6OmRlbGV0ZVZlcnRleEFycmF5T2JqZWN0KCkgAFZlcnRleEFycmF5U3RhdGU6OnJlbGVhc2UoKSAAVmVydGV4QXJyYXlTdGF0ZU1hbmFnZXI6OnJlbGVhc2UoAFZlcnRleEFycmF5U3RhdGVNYW5hZ2VyAFZlcnRleEFycmF5U3RhdGVNYW5hZ2VyOjpmbHVzaEFsbERlbGV0ZWRHTE9iamVjdHMoKQBWZXJ0ZXhBcnJheVN0YXRlTWFuYWdlcjo6ZGVsZXRlQWxsR0xPYmplY3RzKCkgTm90IGN1cnJlbnRseSBpbXBsZW1lbnRlZABWZXJ0ZXhBcnJheVN0YXRlTWFuYWdlcjo6Zmx1c2hEZWxldGVkR0xPYmplY3RzKCkAMjNWZXJ0ZXhBcnJheVN0YXRlTWFuYWdlcgBSZXNldCBldmVudCB0aW1lIGZyb20gAFRyYWNrYmFsbE1hbmlwdWxhdG9yAE41b3NnR0EyMFRyYWNrYmFsbE1hbmlwdWxhdG9yRQBhZnRlciBHTE9iamVjdHNWaXNpdG9yOjpjb21waWxlKG9zZzo6Tm9kZSYgbm9kZSkARHVtbXlPYmplY3QATjNvc2cxMUR1bW15T2JqZWN0RQBJbmNyZW1lbnRhbENvbXBpbGVPcGVyYXRpb246OmFkZChDb21waWxlU2V0ID0gAE43b3NnVXRpbDI3SW5jcmVtZW50YWxDb21waWxlT3BlcmF0aW9uMTBDb21waWxlU2V0RQBFcnJvcjogcHRocmVhZF9rZXlfY3JlYXRlKCwpIHJldHVybmVkIGVycm9yIHN0YXR1cywgc3RhdHVzID0gJWQKAEVycm9yOiBwdGhyZWFkX2NvbmRfaW5pdCgsKSByZXR1cm5lZCBlcnJvciBzdGF0dXMsIHN0YXR1cyA9ICVkCgBOMTFPcGVuVGhyZWFkczI3UFRocmVhZENvbmRpdGlvblByaXZhdGVEYXRhRQBOMTFPcGVuVGhyZWFkczE4UFRocmVhZFByaXZhdGVEYXRhRQBFcnJvcjogcHRocmVhZF9zZXRzcGVjaWZpYygsKSByZXR1cm5lZCBlcnJvciBzdGF0dXMsIHN0YXR1cyA9ICVkCgBOMTFPcGVuVGhyZWFkczI1UFRocmVhZEJhcnJpZXJQcml2YXRlRGF0YUUAb3NnREIAUmVhZGVyV3JpdGVyAE41b3NnREIxMlJlYWRlcldyaXRlckUATjVvc2dEQjdBcmNoaXZlRQBEYXRhYmFzZVBhZ2VyOjpSZXF1ZXN0UXVldWU6On5SZXF1ZXN0UXVldWUoKSBEZXN0cnVjdGluZyBxdWV1ZS4AICAgRGF0YWJhc2VQYWdlcjo6RGF0YWJhc2VSZXF1ZXN0OjppbnZhbGlkYXRlKCkuAE41b3NnREIxM0RhdGFiYXNlUGFnZXIxMlJlcXVlc3RRdWV1ZUUATjVvc2dEQjEzRGF0YWJhc2VQYWdlcjlSZWFkUXVldWVFADogRGF0YWJhc2VQYWdlcjo6RGF0YWJhc2VUaHJlYWQ6OnJ1bgA6IF9wYWdlci0+c2l6ZSgpPSAAIHRvIGRlbGV0ZSA9IAA6IFBhc3NpbmcgaHR0cCByZXF1ZXN0cyBvdmVyIABFcnJvciBpbiByZWFkaW5nIGZpbGUgACA6IAA6IFdhcm5pbmcgRGF0YWJhc2VScXVlc3Qgbm8gbG9uZ2VyIHJlcXVpcmVkLgBMb2FkZWQgZnJvbSBPYmplY3RDYWNoZQAiRmluZENvbXBpbGVhYmxlR0xPYmplY3RzVmlzaXRvciIAIm9zZ0RCIgBONW9zZ0RCMTNEYXRhYmFzZVBhZ2VyMzFGaW5kQ29tcGlsZWFibGVHTE9iamVjdHNWaXNpdG9yRQBONW9zZ0RCMTNEYXRhYmFzZVBhZ2VyMzdEYXRhYmFzZVBhZ2VyQ29tcGlsZUNvbXBsZXRlZENhbGxiYWNrRQBON29zZ1V0aWwyN0luY3JlbWVudGFsQ29tcGlsZU9wZXJhdGlvbjI0Q29tcGlsZUNvbXBsZXRlZENhbGxiYWNrRQBub3QgaW1wbGVtZW50ZWQAZmlsZSBub3QgaGFuZGxlZABmaWxlIG5vdCBmb3VuZAByZWFkIGVycm9yAGZpbGUgbG9hZGVkAGZpbGUgbG9hZGVkIGZyb20gY2FjaGUAZmlsZSByZXF1ZXN0ZWQAaW5zdWZmaWNpZW50IG1lbW9yeSB0byBsb2FkACAoAEVycm9yIGZpbGUgZG9lcyBub3QgY29udGFpbiBhbiBvc2c6Ok9iamVjdABObyB2YWxpZCBvYmplY3QgZm91bmQgZm9yIABBZGRpbmcgACB3aXRoIG9wdGlvbnMgJwAnIHRvIE9iamVjdENhY2hlIABXYXJuaW5nOiBvc2c6OmNsb25lKGNvbnN0IFQqLCBvc2c6OkNvcHlPcCYpIGNsb25lZCBvYmplY3Qgbm90IG9mIHR5cGUgVCwgcmV0dXJuaW5nIE5VTEwuAFdhcm5pbmc6IG9zZzo6Y2xvbmUoY29uc3QgVCosIG9zZzo6Q29weU9wJikgcGFzc2VkIG51bGwgb2JqZWN0IHRvIGNsb25lLCByZXR1cm5pbmcgTlVMTC4ATjVvc2dEQjdPcHRpb25zRQBDb250YWlucyBhcmNoaXZlIDogACAgICAgICAgIGFyY2hpdmUgOiAAICAgICAgICAgZmlsZW5hbWUgOiAAUmVhZCBvYmplY3QgZnJvbSBhcmNoaXZlAEZhaWxlZCB0byByZWFkIG9iamVjdCBmcm9tIGFyY2hpdmUAOi8vAENvdWxkIG5vdCBmaW5kIHRoZSAuY3VybCBwbHVnaW4gdG8gcmVhZCBmcm9tIHNlcnZlci4AQ291bGQgbm90IGZpbmQgcGx1Z2luIHRvIHJlYWQgb2JqZWN0cyBmcm9tIGZpbGUgIgAiLgBOb3cgY2hlY2tpbmcgZm9yIHBsdWctaW4gAER5bmFtaWNMaWJyYXJ5OjpmYWlsZWQgbG9hZGluZyAiACIAT3BlbmVkIER5bmFtaWNMaWJyYXJ5IABDbG9zaW5nIER5bmFtaWNMaWJyYXJ5IABONW9zZ0RCMTREeW5hbWljTGlicmFyeUUAV2FybmluZzogZHluYW1pYyBsaWJyYXJ5ICcAJyBleGlzdHMsIGJ1dCBhbiBlcnJvciBvY2N1cnJlZCB3aGlsZSB0cnlpbmcgdG8gb3BlbiBpdDoAJyBkb2VzIG5vdCBleGlzdCAob3IgaXNuJ3QgcmVhZGFibGUpOgAvXABvc2dQbHVnaW5zLQBvc2dkYl8AT1NHX1BMVUdJTl9FWFRFTlNJT04ATjVvc2dEQjhSZWdpc3RyeTE4UmVhZEFyY2hpdmVGdW5jdG9yRQBONW9zZ0RCOFJlZ2lzdHJ5MTFSZWFkRnVuY3RvckUATjVvc2dEQjhSZWdpc3RyeTE1UmVhZE5vZGVGdW5jdG9yRQBONW9zZ0RCMTFPYmplY3RDYWNoZUUARm91bmQgACcgaW4gT2JqZWN0Q2FjaGUgACBpbiBPYmplY3RDYWNoZSAAT3B0aW9ucwBPU0dfQlVJTERfS0RUUkVFUwBvZmYAT0ZGAE9mZgBPU0dfRVhQSVJZX0RFTEFZAFJlZ2lzdHJ5IDogRXhwaXJ5IGRlbGF5ID0gAE9TR19GSUxFX0NBQ0hFAHppcABPU0dfT1BFTl9GTElHSFRfUExVR0lOAG5ldwBmbHQAT3BlbkZsaWdodABzaGFkb3cAb3Nnc2hhZG93AHRlcnJhaW4Ab3NndGVycmFpbgBvc2d2aWV3ZXIAc2dpAHJnYgBpdnoAb3pnAG1hZwBkaWNvbQBpbWEAZGNtAGRpYwB0Y3RybAB0ZXZhbABjb21wdXRlAGpwZwBqcGUAdGlmAGx3bwB0dGYAdHRjAGNpZABjZmYAY2VmAGZvbgBmbnQAdGV4dDNkAHRmLTI1NQBwYm0AcG5tAHBnbQBwcG0AYWRkZWQAcmV2aXNpb25zAHJlbW92ZWQAc3RwAG9wZW5jYXNjYWRlAGlncwBodHRwcwBmdHAATjVvc2dEQjMwRGVwcmVjYXRlZERvdE9zZ1dyYXBwZXJNYW5hZ2VyRQBHTF9BTFBIQV9URVNUAEdMX0JMRU5EAEdMX0NPTE9SX0xPR0lDX09QAEdMX0NPTE9SX01BVEVSSUFMAEdMX0NVTExfRkFDRQBHTF9ERVBUSF9URVNUAEdMX0ZPRwBHTF9GUkFHTUVOVF9QUk9HUkFNX0FSQgBHTF9MSU5FX1NUSVBQTEUAR0xfUE9JTlRfU01PT1RIAEdMX1BPSU5UX1NQUklURV9BUkIAR0xfUE9MWUdPTl9PRkZTRVRfRklMTABHTF9QT0xZR09OX09GRlNFVF9MSU5FAEdMX1BPTFlHT05fT0ZGU0VUX1BPSU5UAEdMX1BPTFlHT05fU1RJUFBMRQBHTF9TQ0lTU09SX1RFU1QAR0xfU1RFTkNJTF9URVNUAEdMX1NURU5DSUxfVEVTVF9UV09fU0lERQBHTF9WRVJURVhfUFJPR1JBTV9BUkIAR0xfQ09MT1JfU1VNAEdMX0xJR0hUSU5HAEdMX05PUk1BTElaRQBHTF9SRVNDQUxFX05PUk1BTABHTF9URVhUVVJFXzFEAEdMX1RFWFRVUkVfMkQAR0xfVEVYVFVSRV8zRABHTF9URVhUVVJFX0NVQkVfTUFQAEdMX1RFWFRVUkVfUkVDVEFOR0xFAEdMX1RFWFRVUkVfR0VOX1EAR0xfVEVYVFVSRV9HRU5fUgBHTF9URVhUVVJFX0dFTl9TAEdMX1RFWFRVUkVfR0VOX1QAR0xfQ0xJUF9QTEFORTAAR0xfQ0xJUF9QTEFORTEAR0xfQ0xJUF9QTEFORTIAR0xfQ0xJUF9QTEFORTMAR0xfQ0xJUF9QTEFORTQAR0xfQ0xJUF9QTEFORTUAR0xfTElHSFQwAEdMX0xJR0hUMQBHTF9MSUdIVDIAR0xfTElHSFQzAEdMX0xJR0hUNABHTF9MSUdIVDUAR0xfTElHSFQ2AEdMX0xJR0hUNwBHTF9WRVJURVhfUFJPR1JBTV9QT0lOVF9TSVpFAEdMX1ZFUlRFWF9QUk9HUkFNX1RXT19TSURFAE5FVkVSAExFU1MARVFVQUwATEVRVUFMAEdSRUFURVIATk9URVFVQUwAR0VRVUFMAEFMV0FZUwBSRVBMQUNFAE1PRFVMQVRFAEFERABBRERfU0lHTkVEAElOVEVSUE9MQVRFAFNVQlRSQUNUAERPVDNfUkdCAERPVDNfUkdCQQBDT05TVEFOVABQUklNQVJZX0NPTE9SAFBSRVZJT1VTAFRFWFRVUkUAVEVYVFVSRTAAVEVYVFVSRTEAVEVYVFVSRTIAVEVYVFVSRTMAVEVYVFVSRTQAVEVYVFVSRTUAVEVYVFVSRTYAVEVYVFVSRTcAQ0xBTVAAQ0xBTVBfVE9fRURHRQBDTEFNUF9UT19CT1JERVIAUkVQRUFUAE1JUlJPUgBMSU5FQVIATElORUFSX01JUE1BUF9MSU5FQVIATElORUFSX01JUE1BUF9ORUFSRVNUAE5FQVJFU1QATkVBUkVTVF9NSVBNQVBfTElORUFSAE5FQVJFU1RfTUlQTUFQX05FQVJFU1QAR0xfSU5URU5TSVRZAEdMX0xVTUlOQU5DRQBHTF9BTFBIQQBHTF9MVU1JTkFOQ0VfQUxQSEEAR0xfUkdCAEdMX1JHQkEAR0xfQ09NUFJFU1NFRF9BTFBIQV9BUkIAR0xfQ09NUFJFU1NFRF9MVU1JTkFOQ0VfQVJCAEdMX0NPTVBSRVNTRURfSU5URU5TSVRZX0FSQgBHTF9DT01QUkVTU0VEX0xVTUlOQU5DRV9BTFBIQV9BUkIAR0xfQ09NUFJFU1NFRF9SR0JfQVJCAEdMX0NPTVBSRVNTRURfUkdCQV9BUkIAR0xfQ09NUFJFU1NFRF9SR0JfUzNUQ19EWFQxX0VYVABHTF9DT01QUkVTU0VEX1JHQkFfUzNUQ19EWFQxX0VYVABHTF9DT01QUkVTU0VEX1JHQkFfUzNUQ19EWFQzX0VYVABHTF9DT01QUkVTU0VEX1JHQkFfUzNUQ19EWFQ1X0VYVABHTF9DT01QUkVTU0VEX1JHQl9QVlJUQ180QlBQVjFfSU1HAEdMX0NPTVBSRVNTRURfUkdCX1BWUlRDXzJCUFBWMV9JTUcAR0xfQ09NUFJFU1NFRF9SR0JBX1BWUlRDXzRCUFBWMV9JTUcAR0xfQ09NUFJFU1NFRF9SR0JBX1BWUlRDXzJCUFBWMV9JTUcAR0xfRVRDMV9SR0I4X09FUwBHTF9DT01QUkVTU0VEX1JHQjhfRVRDMgBHTF9DT01QUkVTU0VEX1NSR0I4X0VUQzIAR0xfQ09NUFJFU1NFRF9SR0I4X1BVTkNIVEhST1VHSF9BTFBIQTFfRVRDMgBHTF9DT01QUkVTU0VEX1NSR0I4X1BVTkNIVEhST1VHSF9BTFBIQTFfRVRDMgBHTF9DT01QUkVTU0VEX1JHQkE4X0VUQzJfRUFDAEdMX0NPTVBSRVNTRURfU1JHQjhfQUxQSEE4X0VUQzJfRUFDAEdMX0NPTVBSRVNTRURfUjExX0VBQwBHTF9DT01QUkVTU0VEX1NJR05FRF9SMTFfRUFDAEdMX0NPTVBSRVNTRURfUkcxMV9FQUMAR0xfQ09NUFJFU1NFRF9TSUdORURfUkcxMV9FQUMAR0xfQllURQBHTF9TSE9SVABHTF9JTlQAR0xfRkxPQVQAR0xfRE9VQkxFAEdMX1VOU0lHTkVEX0JZVEUAR0xfVU5TSUdORURfU0hPUlQAR0xfVU5TSUdORURfSU5UAERTVF9BTFBIQQBEU1RfQ09MT1IAT05FAE9ORV9NSU5VU19EU1RfQUxQSEEAT05FX01JTlVTX0RTVF9DT0xPUgBPTkVfTUlOVVNfU1JDX0FMUEhBAE9ORV9NSU5VU19TUkNfQ09MT1IAU1JDX0FMUEhBAFNSQ19BTFBIQV9TQVRVUkFURQBTUkNfQ09MT1IAQ09OU1RBTlRfQ09MT1IAT05FX01JTlVTX0NPTlNUQU5UX0NPTE9SAENPTlNUQU5UX0FMUEhBAE9ORV9NSU5VU19DT05TVEFOVF9BTFBIQQBaRVJPAENPT1JESU5BVEUAREVQVEgARk9HX0hJTlQAR0VORVJBVEVfTUlQTUFQX0hJTlQATElORV9TTU9PVEhfSElOVABQRVJTUEVDVElWRV9DT1JSRUNUSU9OX0hJTlQAUE9JTlRfU01PT1RIX0hJTlQAUE9MWUdPTl9TTU9PVEhfSElOVABURVhUVVJFX0NPTVBSRVNTSU9OX0hJTlQARlJBR01FTlRfU0hBREVSX0RFUklWQVRJVkVfSElOVABQT0lOVABMSU5FAEZJTEwAQkFDSwBGUk9OVABGUk9OVF9BTkRfQkFDSwBGSVhFRF9PTkxZAEZBU1RFU1QATklDRVNUAERPTlRfQ0FSRQBBcnJheVR5cGUAQnl0ZUFycmF5AFVCeXRlQXJyYXkAU2hvcnRBcnJheQBVU2hvcnRBcnJheQBJbnRBcnJheQBVSW50QXJyYXkARmxvYXRBcnJheQBEb3VibGVBcnJheQBWZWMyYkFycmF5AFZlYzNiQXJyYXkAVmVjNGJBcnJheQBWZWMydWJBcnJheQBWZWMzdWJBcnJheQBWZWM0dWJBcnJheQBWZWMyc0FycmF5AFZlYzNzQXJyYXkAVmVjNHNBcnJheQBWZWMydXNBcnJheQBWZWMzdXNBcnJheQBWZWM0dXNBcnJheQBWZWMyZkFycmF5AFZlYzNmQXJyYXkAVmVjNGZBcnJheQBWZWMyZEFycmF5AFZlYzNkQXJyYXkAVmVjNGRBcnJheQBWZWMyaUFycmF5AFZlYzNpQXJyYXkAVmVjNGlBcnJheQBWZWMydWlBcnJheQBWZWMzdWlBcnJheQBWZWM0dWlBcnJheQBQcmltaXRpdmVUeXBlAERyYXdBcnJheXMARHJhd0FycmF5c0xlbmd0aABEcmF3RWxlbWVudHNVQnl0ZQBEcmF3RWxlbWVudHNVU2hvcnQARHJhd0VsZW1lbnRzVUludABHTF9QT0lOVFMAR0xfTElORVMAR0xfTElORV9TVFJJUABHTF9MSU5FX0xPT1AAR0xfVFJJQU5HTEVTAEdMX1RSSUFOR0xFX1NUUklQAEdMX1RSSUFOR0xFX0ZBTgBHTF9RVUFEUwBHTF9RVUFEX1NUUklQAEdMX1BPTFlHT04AR0xfTElORVNfQURKQUNFTkNZX0VYVABHTF9MSU5FU19BREpBQ0VOQ1kAR0xfTElORV9TVFJJUF9BREpBQ0VOQ1lfRVhUAEdMX0xJTkVfU1RSSVBfQURKQUNFTkNZAEdMX1RSSUFOR0xFU19BREpBQ0VOQ1lfRVhUAEdMX1RSSUFOR0xFU19BREpBQ0VOQ1kAR0xfVFJJQU5HTEVfU1RSSVBfQURKQUNFTkNZX0VYVABHTF9UUklBTkdMRV9TVFJJUF9BREpBQ0VOQ1kAR0xfUEFUQ0hFUwBEdXBsaWNhdGUgZW51bSB2YWx1ZSAAIHdpdGggb2xkIHN0cmluZzogACBhbmQgbmV3IHN0cmluZ3M6IAAgYW5kIAAgYW5kIG5ldyBzdHJpbmc6IABONW9zZ0RCMjBPYmplY3RXcmFwcGVyTWFuYWdlckUAYXBwbGljYXRpb24vZHhmAGR4ZgBhcHBsaWNhdGlvbi9nbnV0YXIAdGd6AGFwcGxpY2F0aW9uL3BkZgBwZGYAYXBwbGljYXRpb24vcGxhaW4AYXBwbGljYXRpb24vcG9zdHNjcmlwdABwcwBhcHBsaWNhdGlvbi94LWJ6aXAAYnoAYXBwbGljYXRpb24veC1iemlwMgBiejIAYXBwbGljYXRpb24veC1jb21wcmVzc2VkAGFwcGxpY2F0aW9uL3gtZ3ppcABnegBhcHBsaWNhdGlvbi94LWludmVudG9yAGl2AGFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdABqcwBhcHBsaWNhdGlvbi94bWwAeG1sAGFwcGxpY2F0aW9uL3gtdGFyAHRhcgBhcHBsaWNhdGlvbi94LXZybWwAd3JsAGFwcGxpY2F0aW9uL3gtd29ybGQAYXBwbGljYXRpb24veC16aXAtY29tcHJlc3NlZABhcHBsaWNhdGlvbi96aXAAZHJhd2luZy94LWR3ZihvbGQpAGR3ZgBpbWFnZS9ibXAAYm1wAGltYWdlL2NtdS1yYXN0ZXIAcmFzAGltYWdlL2ZpZgBmaWYAaW1hZ2UvZmxvcmlhbgBmbG8AaW1hZ2UvZzNmYXgAZzMAaW1hZ2UvZ2lmAGdpZgBpbWFnZS9pZWYAaWVmAGltYWdlL2pwZWcAaW1hZ2UvanV0dmlzaW9uAGp1dABpbWFnZS9uYXBscHMAbmFwAG5hcGxwcwBpbWFnZS9waWN0AHBpYwBpbWFnZS9wanBlZwBpbWFnZS9wbmcAcG5nAGltYWdlL3RpZmYAaW1hZ2UvdmFzYQBtY2YAaW1hZ2Uvdm5kLmR3ZwBpbWFnZS92bmQuZnB4AGZweABpbWFnZS92bmQubmV0LWZweABpbWFnZS92bmQucm4tcmVhbGZsYXNoAHJmAGltYWdlL3ZuZC5ybi1yZWFscGl4AHJwAGltYWdlL3ZuZC53YXAud2JtcAB3Ym1wAGltYWdlL3ZuZC54aWZmAHhpZgBpbWFnZS94Ym0AeGJtAGltYWdlL3gtY211LXJhc3RlcgBpbWFnZS94LWR3ZwBpbWFnZS94LWljb24AaWNvAGltYWdlL3gtamcAYXJ0AGltYWdlL3gtanBzAGpwcwBpbWFnZS94LW5pZmYAbmlmAGltYWdlL3gtcGN4AHBjeABpbWFnZS94LXBpY3QAcGN0AGltYWdlL3hwbQB4cG0AaW1hZ2UveC1wb3J0YWJsZS1hbnltYXAAaW1hZ2UveC1wb3J0YWJsZS1iaXRtYXAAaW1hZ2UveC1wb3J0YWJsZS1ncmF5bWFwAGltYWdlL3gtcG9ydGFibGUtZ3JleW1hcABpbWFnZS94LXBvcnRhYmxlLXBpeG1hcABpbWFnZS94LXF1aWNrdGltZQBxaWYAaW1hZ2UveC1yZ2IAaW1hZ2UveC10aWZmAGltYWdlL3gtd2luZG93cy1ibXAAaW1hZ2UveC14Yml0bWFwAGltYWdlL3gteGJtAGltYWdlL3gteHBpeG1hcABpbWFnZS94LXh3ZAB4d2QAaW1hZ2UveC14d2luZG93ZHVtcABpLXdvcmxkL2ktdnJtbABpdnIAbW9kZWwvaWdlcwBtb2RlbC92bmQuZHdmAG1vZGVsL3ZybWwAbW9kZWwveC1wb3YAcG92AG11bHRpcGFydC94LWd6aXAAZ3ppcABtdWx0aXBhcnQveC11c3RhcgB1c3RhcgBtdWx0aXBhcnQveC16aXAAdmlkZW8vYW5pbWFmbGV4AGFmbAB2aWRlby9hdmkAYXZpAHZpZGVvL2F2cy12aWRlbwBhdnMAdmlkZW8vZGwAZGwAdmlkZW8vZmxpAGZsaQB2aWRlby9nbABnbAB2aWRlby9tcGVnAG1wZwB2aWRlby9tc3ZpZGVvAHZpZGVvL3F1aWNrdGltZQBxdAB2aWRlby92ZG8AdmRvAHZpZGVvL3Zpdm8Adml2AHZpZGVvL3ZuZC5ybi1yZWFsdmlkZW8AcnYAdmlkZW8vdm5kLnZpdm8AdmlkZW8vdm9zYWljAHZvcwB2aWRlby94LWFtdC1kZW1vcnVuAHhkcgB2aWRlby94LWFtdC1zaG93cnVuAHhzcgB2aWRlby94LWF0b21pYzNkLWZlYXR1cmUAZm1mAHZpZGVvL3gtZGwAdmlkZW8veC1kdgBkdgB2aWRlby94LWZsaQB2aWRlby94LWdsAHZpZGVvL3gtaXN2aWRlbwBpc3UAdmlkZW8veC1tb3Rpb24tanBlZwBtanBnAHZpZGVvL3gtbXBlZwBtcDMAdmlkZW8veC1tcGVxMmEAbXAyAHZpZGVvL3gtbXMtYXNmAGFzZgB2aWRlby94LW1zLWFzZi1wbHVnaW4AYXN4AHZpZGVvL3gtbXN2aWRlbwB2aWRlby94LXF0YwBxdGMAdmlkZW8veC1zY20Ac2NtAHZpZGVvL3gtc2dpLW1vdmllAG1vdmllAHdpbmRvd3MvbWV0YWZpbGUAd21mAHhnbC9kcmF3aW5nAHhnegB4Z2wvbW92aWUAeG16AHgtd29ybGQveC0zZG1mADNkbQB4LXdvcmxkL3gtc3ZyAHN2cgB4LXdvcmxkL3gtdnJtbAB4LXdvcmxkL3gtdnJ0AHZydABPU0dfTElCUkFSWV9QQVRIAE9TR19MRF9MSUJSQVJZX1BBVEgAT1NHX0ZJTEVfUEFUSABPU0dGSUxFUEFUSABDb25zdHJ1Y3RlZCBGaWxlQ2FjaGUgOiAAQ291bGQgbm90IGNyZWF0ZSBjYWNoZSBkaXJlY3Rvcnk6IABGaWxlQ2FjaGU6OndyaXRlU2hhZGVyVG9DYWNoZSgAKSBhcyAARXJyb3Igd3JpdGluZyBmaWxlIAA6IAB3cml0ZSBlcnJvcgBmaWxlIHNhdmVkAENvdWxkIG5vdCBmaW5kIHBsdWdpbiB0byB3cml0ZSBvYmplY3RzIHRvIGZpbGUgIgBDb3VsZCBub3QgZmluZCBwbHVnaW4gdG8gd3JpdGUgc2hhZGVyIHRvIGZpbGUgIgBGaWxlQ2FjaGU6OnJlYWRTaGFkZXJGcm9tQ2FjaGUoAE41b3NnREI4UmVnaXN0cnkxN1JlYWRTaGFkZXJGdW5jdG9yRQBGaWxlQ2FjaGU6OndyaXRlTm9kZVRvQ2FjaGUoAENvdWxkIG5vdCBmaW5kIHBsdWdpbiB0byB3cml0ZSBub2RlcyB0byBmaWxlICIARmlsZUNhY2hlOjpyZWFkTm9kZUZyb21DYWNoZSgARmlsZUNhY2hlOjp3cml0ZUhlaWdodEZpZWxkVG9DYWNoZSgAQ291bGQgbm90IGZpbmQgcGx1Z2luIHRvIHdyaXRlIEhlaWdodEZpZWxkIHRvIGZpbGUgIgBGaWxlQ2FjaGU6OnJlYWRIZWlnaHRGaWVsZEZyb21DYWNoZSgATjVvc2dEQjhSZWdpc3RyeTIyUmVhZEhlaWdodEZpZWxkRnVuY3RvckUARmlsZUNhY2hlOjp3cml0ZU9iamVjdFRvQ2FjaGUoAEZpbGVDYWNoZTo6cmVhZE9iamVjdEZyb21DYWNoZSgATjVvc2dEQjhSZWdpc3RyeTE3UmVhZE9iamVjdEZ1bmN0b3JFAEZpbGVDYWNoZTo6d3JpdGVJbWFnZVRvQ2FjaGUoAENvdWxkIG5vdCBmaW5kIHBsdWdpbiB0byB3cml0ZSBpbWFnZSB0byBmaWxlICIARmlsZUNhY2hlOjpyZWFkSW1hZ2VGcm9tQ2FjaGUoAE41b3NnREI4UmVnaXN0cnkxNlJlYWRJbWFnZUZ1bmN0b3JFAEZpbGUgaXMgYmxhY2sgbGlzdGVkIABEYXRhYmFzZVJldmlzaW9uKAApOjppc0ZpbGVCbGFja0xpc3RlZCgARmlsZUNhY2hlOjpjcmVhdGVDYWNoZUZpbGVOYW1lKAApID0gAERlc3RydWN0ZWQgRmlsZUNhY2hlIABONW9zZ0RCOUZpbGVDYWNoZUUATjVvc2dEQjhSZWdpc3RyeUUARGF0YWJhc2VQYWdlcjo6UmVxdWVzdFF1ZXVlOjp0YWtlRmlyc3QoKTogUHJ1bmluZyAAIERhdGFiYXNlUGFnZXI6OlJlcXVlc3RRdWV1ZTo6dGFrZUZpcnN0KCkgRm91bmQgRGF0YWJhc2VSZXF1ZXN0IHNpemUoKT0AIERhdGFiYXNlUGFnZXI6OlJlcXVlc3RRdWV1ZTo6dGFrZUZpcnN0KCkgTm8gc3VpdGFibGUgRGF0YWJhc2VSZXF1ZXN0IGZvdW5kIHNpemUoKT0ATjVvc2dEQjEzRGF0YWJhc2VQYWdlcjE0RGF0YWJhc2VUaHJlYWRFAGFjdGl2ZT0AIG92ZXJhbGwgPSAAIEE9ACBhdmc9ACBtYXggPSAAIEI9ACBDPQBEYXRhYmFzZVBhZ2VyOjphZGRMb2FkZWREYXRhVG9TY2VuZUdyYXBoKCkgbm9kZSBpbiBwYXJlbnRhbCBjaGFpbiBkZWxldGVkLCBkaXNjYXJkaW5nIHN1YmdhcGguAERvbmUgRGF0YWJhc2VQYWdlcjo6YWRkTG9hZGVkRGF0YVRvU2NlbmVHcmFwaABtcywJAG1zACAgb2JqZWN0cwBJbnNlcnRpbmcgb2JqZWN0cyB0byBtYWluIE9iamVjdENhY2hlIAAiRmluZFBhZ2VkTE9Ec1Zpc2l0b3IiAE41b3NnREIxM0RhdGFiYXNlUGFnZXIyMEZpbmRQYWdlZExPRHNWaXNpdG9yRQBEYXRhYmFzZVBhZ2VyOjpSZXF1ZXN0UXVldWU6OnBydW5lT2xkUmVxdWVzdHNBbmRDaGVja0lmRW1wdHkoKTogUHJ1bmluZyAARGF0YWJhc2VQYWdlcjo6YWRkRGF0YWJhc2VUaHJlYWQoKSAARGF0YWJhc2VQYWdlcjo6c3RhcnRUaHJlYWQoKQBIYXNCZWVuQnlTdGF0ZVRvQ29tcGlsZVByb2Nlc3NlZE1hcmtlcgBmaWxlUmVxdWVzdFF1ZXVlAGh0dHBSZXF1ZXN0UXVldWUARGF0YWJhc2VQYWdlcgBXYXJuaW5nOiBEYXRhYmFzZVBhZ2VyOjpyZXF1ZXN0Tm9kZUZpbGUoLi4pIHBhc3NlZCBlbXB0eSBOb2RlUGF0aCwgc28gbm93aGVyZSB0byBhdHRhY2ggbmV3IHN1YmdyYXBoIHRvLgBXYXJuaW5nOiBEYXRhYmFzZVBhZ2VyOjpyZXF1ZXN0Tm9kZUZpbGUoLi4pIHBhc3NlZCBOb2RlUGF0aCB3aXRob3V0IGdyb3VwIGFzIGxhc3Qgbm9kZSBpbiBwYXRoLCBzbyBub3doZXJlIHRvIGF0dGFjaCBuZXcgc3ViZ3JhcGggdG8uAERhdGFiYXNlUmVxdWVzdCBoYXMgYmVlbiBwcmV2aW91c2x5IGludmFsaWRhdGVkIHdoaWxzdCBzdGlsbCBhdHRhY2hlZCB0byBzY2VuZSBncmFwaC4ARGF0YWJhc2VQYWdlcjo6cmVxdWVzdE5vZGVGaWxlKAApIHVwZGF0aW5nIGFscmVhZHkgYXNzaWduZWQuACkgb3JwaGFuZWQsIHJlc3VibWl0dGluZy4ASW4gRGF0YWJhc2VQYWdlcjo6cmVxdWVzdE5vZGVGaWxlKABIQU5ETEVfQUxMX1JFUVVFU1RTAEhBTkRMRV9OT05fSFRUUABIQU5ETEVfT05MWV9IVFRQAE41b3NnREIxM0RhdGFiYXNlUGFnZXIxNURhdGFiYXNlUmVxdWVzdEUATjVvc2dEQjEzRGF0YWJhc2VQYWdlckUATjNvc2cxMU5vZGVWaXNpdG9yMjJEYXRhYmFzZVJlcXVlc3RIYW5kbGVyRQBONW9zZ0RCOGlmc3RyZWFtRQBOU3QzX18yMTRiYXNpY19vZnN0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRQBONW9zZ0RCOG9mc3RyZWFtRQBJbWFnZVBhZ2VyOjpJbWFnZVRocmVhZDo6cnVuKCkgAEltYWdlUGFnZXI6OkltYWdlVGhyZWFkOjpkb25lKCkARXJyb3IgcmVhZGluZyBmaWxlIABJbWFnZVBhZ2VyOjpSZWFkUXVldWU6OnRha2VGaXJzdCguLiksIHNpemUoKT0ATjVvc2dEQjEwSW1hZ2VQYWdlcjExSW1hZ2VUaHJlYWRFAEltYWdlUGFnZXI6OnVwZGF0ZVNjZW5lR3JhcGgoKSA6IGVycm9yLCBpbWFnZSByZXF1ZXN0IGF0dGFjaG1lbnQgdHlwZSBub3QgaGFuZGxlZCB5ZXQuAEltYWdlUGFnZXI6OlJlYWRRdWV1ZTo6YWRkKAApLCBzaXplKCk9AE41b3NnREIxMEltYWdlUGFnZXIxMkltYWdlUmVxdWVzdEUATjVvc2dEQjEwSW1hZ2VQYWdlckUATjNvc2cxMU5vZGVWaXNpdG9yMTlJbWFnZVJlcXVlc3RIYW5kbGVyRQBONW9zZ0RCMTFJbnB1dFN0cmVhbUUATjVvc2dEQjIwUmVnaXN0ZXJXcmFwcGVyUHJveHlFAE41b3NnREIxMk91dHB1dFN0cmVhbUUAVXNlAFRva2VuIAAgcmVhZCwgYnV0IGhhcyBubyBwcm90b3R5cGUsIGNhbm5vdCBsb2FkLgBVbmlxdWVJRABkZXByZWNhdGVkXwBsaWIAMHgATjVvc2dEQjVGaWVsZEUAMTZjb25jcmV0ZV93cmFwcGVyAE41b3NnREIxOGJhc2ljX3R5cGVfd3JhcHBlckUATjVvc2dEQjExRmllbGRSZWFkZXJFAE41b3NnREIxOUZpZWxkUmVhZGVySXRlcmF0b3JFAE41b3NnREI1SW5wdXRFAE9TR19XUklURV9PVVRfREVGQVVMVF9WQUxVRVMAT04ALmdsc2wALmRkcwBXYXJuaW5nOiBPdXRwdXQ6OmdldEZpbGVOYW1lRm9yT3V0cHV0KCkgZG9lcyBub3Qgc3VwcG9ydCBGVUxMX1BBVEggeWV0LgBXYXJuaW5nOiBPdXRwdXQ6OmdldEZpbGVOYW1lRm9yT3V0cHV0KCkgZG9lcyBub3Qgc3VwcG9ydCBSRUxBVElWRV9QQVRIIHlldC4AVW5pcXVlSUQgAFVzZSAAfQAgewA6OgAlc18laQBONW9zZ0RCNk91dHB1dEUAT1NHX0RPX1BSRV9DT01QSUxFIDxPTi9PRkY+AFN3aXRjaCBvbiBvciBvZmYgdGhlIHByZSBjb21waWxlIG9mIE9wZW5HTCBvYmplY3QgZGF0YWJhc2UgcGFnZXIuAE9TR19EQVRBQkFTRV9QQUdFUl9EUkFXQUJMRSA8bW9kZT4AU2V0IHRoZSBkcmF3YWJsZSBwb2xpY3kgZm9yIHNldHRpbmcgb2YgbG9hZGVkIGRyYXdhYmxlIHRvIHNwZWNpZmllZCB0eXBlLiAgbW9kZSBjYW4gYmUgb25lIG9mIERvTm90TW9kaWZ5LCBEaXNwbGF5TGlzdCwgVkJPIG9yIFZlcnRleEFycmF5cz4uAE9TR19EQVRBQkFTRV9QQUdFUl9QUklPUklUWSA8bW9kZT4AU2V0IHRoZSB0aHJlYWQgcHJpb3JpdHkgdG8gREVGQVVMVCwgTUlOLCBMT1csIE5PTUlOQUwsIEhJR0ggb3IgTUFYLgBPU0dfTUFYX1BBR0VETE9EIDxudW0+AFNldCB0aGUgdGFyZ2V0IG1heGltdW0gbnVtYmVyIG9mIFBhZ2VkTE9EIHRvIG1haW50YWluLgBPU0dfQVNTSUdOX1BCT19UT19JTUFHRVMgPE9OL09GRj4AU2V0IHdoZXRoZXIgUGl4ZWxCdWZmZXJPYmplY3RzIHNob3VsZCBiZSBhc3NpZ25lZCB0byBJbWFnZXMgdG8gYWlkIGRvd25sb2FkIHRvIHRoZSBHUFUuAE9TR19GSUxFX1BBVEggPHBhdGg+WzpwYXRoXS4uAFBhdGhzIGZvciBsb2NhdGluZyBkYXRhZmlsZXMAT1NHX0xJQlJBUllfUEFUSCA8cGF0aD5bOnBhdGhdLi4AUGF0aHMgZm9yIGxvY2F0aW5nIGxpYnJhcmllcy8gcGx1Z2lucwBPU0dfQlVJTERfS0RUUkVFUyBvbi9vZmYARW5hYmxlL2Rpc2FibGUgdGhlIGF1dG9tYXRpYyBidWlsZGluZyBvZiBLZFRyZWVzIGZvciBlYWNoIGxvYWRlZCBHZW9tZXRyeS4AQklORF9PRkYAQklORF9PVkVSQUxMAEJJTkRfUEVSX1BSSU1JVElWRV9TRVQAQklORF9QRVJfUFJJTUlUSVZFAEJJTkRfUEVSX1ZFUlRFWABvc2c6Okdlb21ldHJ5AG9zZzo6T2JqZWN0IG9zZzo6Tm9kZSBvc2c6OkRyYXdhYmxlIG9zZzo6R2VvbWV0cnkAT2JqZWN0V3JhcHBlck1hbmFnZXI6OmFkZFdyYXBwZXIoKTogJwAnIGFscmVhZHkgZXhpc3RzLgBONW9zZ0RCMTNPYmplY3RXcmFwcGVyRQBQcmltaXRpdmVTZXRMaXN0AFZlcnRleERhdGEATm9ybWFsRGF0YQBDb2xvckRhdGEAU2Vjb25kYXJ5Q29sb3JEYXRhAEZvZ0Nvb3JkRGF0YQBUZXhDb29yZERhdGEAVmVydGV4QXR0cmliRGF0YQBGYXN0UGF0aEhpbnQAVmVydGV4QXJyYXkATm9ybWFsQXJyYXkAQ29sb3JBcnJheQBTZWNvbmRhcnlDb2xvckFycmF5AEZvZ0Nvb3JkQXJyYXkAVGV4Q29vcmRBcnJheUxpc3QAVmVydGV4QXR0cmliQXJyYXlMaXN0AEFycmF5SUQAT3V0cHV0U3RyZWFtOjp3cml0ZUFycmF5KCk6IFVuc3VwcG9ydGVkIGFycmF5IHR5cGUuAE41b3NnREIxNU91dHB1dEV4Y2VwdGlvbkUAT3V0cHV0U3RyZWFtOjp3cml0ZU9iamVjdCgpOiBVbnN1cHBvcnRlZCB3cmFwcGVyIGNsYXNzIABPdXRwdXRTdHJlYW06OndyaXRlT2JqZWN0KCk6IFVuc3VwcG9ydGVkIGFzc29jaWF0ZWQgY2xhc3MgADoAT2JqZWN0V3JhcHBlcjo6d3JpdGUoKTogRXJyb3Igd3JpdGluZyBwcm9wZXJ0eSAAc2VyaWFsaXplcnNfAElucHV0U3RyZWFtOjpyZWFkQXJyYXkoKTogVW5zdXBwb3J0ZWQgYXJyYXkgdHlwZS4ATjNvc2cxMU1peGluVmVjdG9ySU5TXzZWZWM0dWlFRUUATjNvc2cxM1RlbXBsYXRlQXJyYXlJTlNfNlZlYzR1aUVMTlNfNUFycmF5NFR5cGVFMjZFTGk0RUxpNTEyNUVFRQBOM29zZzExTWl4aW5WZWN0b3JJTlNfNlZlYzN1aUVFRQBOM29zZzEzVGVtcGxhdGVBcnJheUlOU182VmVjM3VpRUxOU181QXJyYXk0VHlwZUUyNUVMaTNFTGk1MTI1RUVFAE4zb3NnMTFNaXhpblZlY3RvcklOU182VmVjMnVpRUVFAE4zb3NnMTNUZW1wbGF0ZUFycmF5SU5TXzZWZWMydWlFTE5TXzVBcnJheTRUeXBlRTI0RUxpMkVMaTUxMjVFRUUATjNvc2cxMU1peGluVmVjdG9ySU5TXzVWZWM0aUVFRQBOM29zZzEzVGVtcGxhdGVBcnJheUlOU181VmVjNGlFTE5TXzVBcnJheTRUeXBlRTE3RUxpNEVMaTUxMjRFRUUATjNvc2cxMU1peGluVmVjdG9ySU5TXzVWZWMzaUVFRQBOM29zZzEzVGVtcGxhdGVBcnJheUlOU181VmVjM2lFTE5TXzVBcnJheTRUeXBlRTE2RUxpM0VMaTUxMjRFRUUATjNvc2cxMU1peGluVmVjdG9ySU5TXzVWZWMyaUVFRQBOM29zZzEzVGVtcGxhdGVBcnJheUlOU181VmVjMmlFTE5TXzVBcnJheTRUeXBlRTE1RUxpMkVMaTUxMjRFRUUATjNvc2cxMU1peGluVmVjdG9ySU5TXzZWZWM0dXNFRUUATjNvc2cxM1RlbXBsYXRlQXJyYXlJTlNfNlZlYzR1c0VMTlNfNUFycmF5NFR5cGVFMjNFTGk0RUxpNTEyM0VFRQBOM29zZzExTWl4aW5WZWN0b3JJTlNfNlZlYzN1c0VFRQBOM29zZzEzVGVtcGxhdGVBcnJheUlOU182VmVjM3VzRUxOU181QXJyYXk0VHlwZUUyMkVMaTNFTGk1MTIzRUVFAE4zb3NnMTFNaXhpblZlY3RvcklOU182VmVjMnVzRUVFAE4zb3NnMTNUZW1wbGF0ZUFycmF5SU5TXzZWZWMydXNFTE5TXzVBcnJheTRUeXBlRTIxRUxpMkVMaTUxMjNFRUUATjNvc2cxMU1peGluVmVjdG9ySU5TXzZWZWMzdWJFRUUATjNvc2cxM1RlbXBsYXRlQXJyYXlJTlNfNlZlYzN1YkVMTlNfNUFycmF5NFR5cGVFMTlFTGkzRUxpNTEyMUVFRQBOM29zZzExTWl4aW5WZWN0b3JJTlNfNlZlYzJ1YkVFRQBOM29zZzEzVGVtcGxhdGVBcnJheUlOU182VmVjMnViRUxOU181QXJyYXk0VHlwZUUxOEVMaTJFTGk1MTIxRUVFAE5VTEwASW5wdXRTdHJlYW06OnJlYWRPYmplY3QoKTogVW5zdXBwb3J0ZWQgd3JhcHBlciBjbGFzcyAASW5wdXRTdHJlYW06OnJlYWRPYmplY3QoKTogVW5zdXBwb3J0ZWQgYXNzb2NpYXRlZCBjbGFzcyAAT2JqZWN0V3JhcHBlcjo6cmVhZCgpOiBFcnJvciByZWFkaW5nIHByb3BlcnR5IABONW9zZ0RCMTZWZWN0b3JTZXJpYWxpemVySU4zb3NnOEdlb21ldHJ5RU5TdDNfXzI2dmVjdG9ySU5TMV83cmVmX3B0cklOUzFfNUFycmF5RUVFTlMzXzlhbGxvY2F0b3JJUzdfRUVFRUVFAE41b3NnREIyMFZlY3RvckJhc2VTZXJpYWxpemVyRQBONW9zZ0RCMThUZW1wbGF0ZVNlcmlhbGl6ZXJJUE4zb3NnNUFycmF5RUVFAE41b3NnREIxNk9iamVjdFNlcmlhbGl6ZXJJTjNvc2c4R2VvbWV0cnlFTlMxXzVBcnJheUVFRQBEYXRhAEFycmF5AEluZGljZXMAQmluZGluZwBOb3JtYWxpemUATjVvc2dEQjE0VXNlclNlcmlhbGl6ZXJJTjNvc2c4R2VvbWV0cnlFRUUAT3V0cHV0U3RyZWFtOjp3cml0ZVByaW1pdGl2ZVNldCgpOiBVbnN1cHBvcnRlZCBwcmltaXRpdmUgdHlwZS4ASW5wdXRTdHJlYW06OnJlYWRQcmltaXRpdmVTZXQoKTogVW5zdXBwb3J0ZWQgYXJyYXkgdHlwZS4ATjVvc2dEQjE2VmVjdG9yU2VyaWFsaXplcklOM29zZzhHZW9tZXRyeUVOU3QzX18yNnZlY3RvcklOUzFfN3JlZl9wdHJJTlMxXzEyUHJpbWl0aXZlU2V0RUVFTlMzXzlhbGxvY2F0b3JJUzdfRUVFRUVFAE9iamVjdFdyYXBwZXI6OmFzc29jaWF0ZUFkZGVkQXRWZXJzaW9uOiBBc3NvY2lhdGUgY2xhc3MgACBub3QgZGVmaW5lZCBmb3Igd3JhcHBlciAATG9hZFNoYWRlclNoYWRlclBpcGVsaW5lRmlsZXNQcm94eSgpIFByZS1sb2FkaW5nIHRoZSBTaGFkZXJQaXBlbGluZSBzaGFkZXJzACAgIHJlYWQgc2hhZGVyIABPU0dfREFUQUJBU0VfUEFHRVJfR0VPTUVUUlkAT1NHX0RBVEFCQVNFX1BBR0VSX0RSQVdBQkxFAERvTm90TW9kaWZ5AERpc3BsYXlMaXN0AERMAFZCTwBWZXJ0ZXhBcnJheXMAVkEAT1NHX0FTU0lHTl9QQk9fVE9fSU1BR0VTAHllcwBZRVMAb24AT1NHX0FTU0lHTl9QQk9fVE9fSU1BR0VTIHNldCB0byAAT1NHX0RFTEVURV9JTl9EQVRBQkFTRV9USFJFQUQAT1NHX01BWF9QQUdFRExPRABfdGFyZ2V0TWF4aW11bU51bWJlck9mUGFnZUxPRCA9IABPU0dfRE9fUFJFX0NPTVBJTEUAT1NHX0RBVEFCQVNFX1BBR0VSX1BSSU9SSVRZAERFRkFVTFQATUlOAExPVwBOT01JTkFMAEhJR0gATUFYAFdhcm5pbmc6IFNldEJhc2VkUGFnZWRMT0RMaXN0OjppbnNlcnRQYWdlZExPRCgAKSBhbHJlYWR5IGluc2VydGVkAFJlbW92aW5nIG5vZGUgZnJvbSBQYWdlZExPRCBsaXN0AERhdGFiYXNlUGFnZXI6OnJlbW92ZUV4cGlyZWRTdWJncmFwaHMoKSBfaW5hY3RpdmVQYWdlZExPRCBoYXMgYmVlbiBpbnZhbGlkYXRlZCwgYnV0IGlnbm9yZWQAIkV4cGlyZVBhZ2VkTE9Ec1Zpc2l0b3IiAE41b3NnREIxM0RhdGFiYXNlUGFnZXIyMkV4cGlyZVBhZ2VkTE9Ec1Zpc2l0b3JFADIwU2V0QmFzZWRQYWdlZExPRExpc3QATjVvc2dEQjEzRGF0YWJhc2VQYWdlcjEyUGFnZWRMT0RMaXN0RQByAHIrAHcrAGErAGFiAHIrYgB3K2IAYStiAE41b3NnREIxMEltYWdlUGFnZXI5UmVhZFF1ZXVlRQBONW9zZ0RCMTBJbWFnZVBhZ2VyMTJSZXF1ZXN0UXVldWVFAEltYWdlIFF1ZXVlAEltYWdlIFRocmVhZCAxAEltYWdlIFRocmVhZCAyAEltYWdlIFRocmVhZCAzAHsARm9yY2VSZWFkaW5nSW1hZ2UAQ3VzdG9tRG9tYWlucwBTY2hlbWFGaWxlAElucHV0U3RyZWFtOjpzZXRTY2hlbWEoKTogVW5zdXBwb3J0ZWQgd3JhcHBlciBjbGFzcyAAT2JqZWN0V3JhcHBlcjo6cmVhZFNjaGVtYSgpOiBXcmFwcGVyIAA6IEluY29tcGF0aWJsZSBzZXJpYWxpemVycyBzaXplADogVW5rbm93biBwcm9wZXJ0eSAAIAkMCwoNAG9zZzo6SW1hZ2UAQ2xhc3NOYW1lAEZpbGVOYW1lAFdyaXRlSGludABPcmlnaW4AU2l6ZQBJbnRlcm5hbFRleHR1cmVGb3JtYXQAUGl4ZWxGb3JtYXQARGF0YVR5cGUAUGFja2luZwBBbGxvY2F0aW9uTW9kZQBJbnB1dFN0cmVhbTo6cmVhZEltYWdlKCk6IABJbnB1dFN0cmVhbTo6cmVhZEltYWdlKCk6IFVuYWJsZSB0byBmaW5kIGEgcGx1Z2luIGZvciAALCBmaWxlbmFtZTogAFN0YXJ0AElucHV0U3RyZWFtOiBOdWxsIHN0cmVhbSBzcGVjaWZpZWQuAEltYWdlAE9iamVjdAAjVmVyc2lvbgAjR2VuZXJhdG9yACNDdXN0b21Eb21haW4ARGVjb21wcmVzc2lvbgBJbnB1dFN0cmVhbTogRmFpbGVkIHRvIGRlY29tcHJlc3Mgc3RyZWFtLCBObyBzdWNoIGNvbXByZXNzb3IuAElucHV0U3RyZWFtOiBGYWlsZWQgdG8gZGVjb21wcmVzcyBzdHJlYW0uAFNjaGVtYURhdGEAY29tcHJlc3Nvcl8AUm9idXN0QmluYXJ5Rm9ybWF0AENvbXByZXNzb3IAV3JpdGVJbWFnZUhpbnQASW5jbHVkZURhdGEASW5jbHVkZUZpbGUAVXNlRXh0ZXJuYWwAV3JpdGVPdXQAVGFyZ2V0RmlsZVZlcnNpb24ARW1wdHkgSW1hZ2U6OkZpbGVOYW1lIHJlc2V0dGluZyB0byBpbWFnZS5kZHMAaW1hZ2UuZGRzAE91dHB1dFN0cmVhbTo6d3JpdGVJbWFnZSgpOiBXcml0ZSBpbWFnZSBkYXRhIHRvIGV4dGVybmFsIGZpbGUgAE91dHB1dFN0cmVhbTo6d3JpdGVJbWFnZSgpOiBGYWlsZWQgdG8gd3JpdGUgAE91dHB1dFN0cmVhbTo6d3JpdGVJbWFnZSgpOiBGYWlsZWQgdG8gb3BlbiBpbWFnZSBmaWxlIABPdXRwdXRTdHJlYW06IE51bGwgc3RyZWFtIHNwZWNpZmllZC4AT3V0cHV0U3RyZWFtOjpzdGFydCgpOiBObyBzdWNoIGNvbXByZXNzb3IgAFVua25vd24AT3BlblNjZW5lR3JhcGgAQ29tcHJlc3Npb24AT3V0cHV0U3RyZWFtOiBGYWlsZWQgdG8gY29tcHJlc3Mgc3RyZWFtLgAgPQBGaW5kRmlsZUluUGF0aCgAKTogcmV0dXJuaW5nIABJbnB1dEl0ZXJhdG9yOjpjaGVja1N0cmVhbSgpIDogX2luLT5yZHN0YXRlKCkgACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaW4tPnRlbGxnKCkgPSAALS0+AFZhbGlkIENvbW1lbnQgcmVjb3JkIFsAXQBFcnJvcjogVW5jbG9zZWQgQ29tbWVudCByZWNvcmQgWwBWYWxpZCBlbmQgdGFnIFsARXJyb3I6IFVuY2xvc2VkIGVuZCB0YWcgWwBlbmQgdGFnIGlzIG1hdGNoZWQgY29ycmVjdGx5AEVycm9yOiBlbmQgdGFnIGlzIG5vdCBtYXRjaGVkIGNvcnJlY3RseQA8IURPQ1RZUEUAVmFsaWQgaW5mb3JtYXRpb24gcmVjb3JkIFsARXJyb3I6IFVuY2xvc2VkIGluZm9ybWF0aW9uIHJlY29yZCBbADwhW0NEQVRBWwBdXT4ARXJyb3IsIHBhcnNlciBpdGVyYXRvciBub3QgYWR2YW5jZWQsIHBvc2l0aW9uOiAAQXNzaWduaW5nIG9wdGlvbiAAIHdpdGggdmFsdWUgAFZhbGlkIHRhZyBbAHRhZyBpcyBjbG9zZWQgY29ycmVjdGx5AEVycm9yOiB0YWcgaXMgbm90IGNsb3NlZCBjb3JyZWN0bHkAVW5jbG9zZWQgdGFnIFsAUmVhZCBjb250cm9sIGNoYXJhY3RlciAAIGNvbnZlcnRlZCB0byAAV2FybmluZzogcmVhZCBjb250cm9sIGNoYXJhY3RlciAALCBidXQgaGF2ZSBubyBtYXBwaW5nIHRvIGNvbnZlcnQgaXQgdG8uAE41b3NnREI3WG1sTm9kZUUAJmFtcDsAJnF1b3Q7ACZhcG9zOwBDb3VsZCBub3QgYXR0YWNoIHRvIFhNTCBzdHJlYW0uAFVOQVNTSUdORUQAPAAgLz4APgA8LwAgIAA8IS0tADw/AD8+AD0iAG9zZ1ZpZXdlcgBPU0dfUlVOX0ZSQU1FX1NDSEVNRQBPTl9ERU1BTkQAQ09OVElOVU9VUwBPU0dfUlVOX01BWF9GUkFNRV9SQVRFAE9TR19SVU5fRlJBTUVfQ09VTlQATjlvc2dWaWV3ZXIxMFZpZXdlckJhc2VFAE45b3NnVmlld2VyMTRHcmFwaGljc1dpbmRvd0UATjVvc2dHQTE2R1VJQWN0aW9uQWRhcHRlckUAVmlldzo6aW5pdCgpAGFsbG9jYXRvcjxUPjo6YWxsb2NhdGUoc2l6ZV90IG4pICduJyBleGNlZWRzIG1heGltdW0gc3VwcG9ydGVkIHNpemUAc2NlbmUATnVtYmVyIG9mIHVuaXF1ZSBTdGF0ZVNldABOdW1iZXIgb2YgdW5pcXVlIEdyb3VwAE51bWJlciBvZiB1bmlxdWUgVHJhbnNmb3JtAE51bWJlciBvZiB1bmlxdWUgTE9EAE51bWJlciBvZiB1bmlxdWUgU3dpdGNoAE51bWJlciBvZiB1bmlxdWUgR2VvZGUATnVtYmVyIG9mIHVuaXF1ZSBEcmF3YWJsZQBOdW1iZXIgb2YgdW5pcXVlIEdlb21ldHJ5AE51bWJlciBvZiB1bmlxdWUgVmVydGljZXMATnVtYmVyIG9mIHVuaXF1ZSBQcmltaXRpdmVzAE51bWJlciBvZiBpbnN0YW5jZWQgU3RhdGVzZXQATnVtYmVyIG9mIGluc3RhbmNlZCBHcm91cABOdW1iZXIgb2YgaW5zdGFuY2VkIFRyYW5zZm9ybQBOdW1iZXIgb2YgaW5zdGFuY2VkIExPRABOdW1iZXIgb2YgaW5zdGFuY2VkIFN3aXRjaABOdW1iZXIgb2YgaW5zdGFuY2VkIEdlb2RlAE51bWJlciBvZiBpbnN0YW5jZWQgRHJhd2FibGUATnVtYmVyIG9mIGluc3RhbmNlZCBHZW9tZXRyeQBOdW1iZXIgb2YgaW5zdGFuY2VkIFZlcnRpY2VzAE51bWJlciBvZiBpbnN0YW5jZWQgUHJpbWl0aXZlcwB1cGRhdGUAUmVuZGVyaW5nIHRyYXZlcnNhbHMgYmVnaW4gdGltZSAAUmVuZGVyaW5nIHRyYXZlcnNhbHMgZW5kIHRpbWUgAFJlbmRlcmluZyB0cmF2ZXJzYWxzIHRpbWUgdGFrZW4ATjlvc2dWaWV3ZXI4UmVuZGVyZXJFAFVwZGF0ZSB0cmF2ZXJzYWwgYmVnaW4gdGltZQBVcGRhdGUgdHJhdmVyc2FsIGVuZCB0aW1lAFVwZGF0ZSB0cmF2ZXJzYWwgdGltZSB0YWtlbgBldmVudABFdmVudCB0cmF2ZXJzYWwgYmVnaW4gdGltZQBFdmVudCB0cmF2ZXJzYWwgZW5kIHRpbWUARXZlbnQgdHJhdmVyc2FsIHRpbWUgdGFrZW4ATjlvc2dWaWV3ZXI0Vmlld0UAICBTbGF2ZSBoYXMgbWF0Y2hlZCB0ZXh0dXJlIGN1YmVtYXAALCAATjVvc2dHQTExUG9pbnRlckRhdGFFAGZyYW1lX3JhdGUARnJhbWUgZHVyYXRpb24ARnJhbWUgcmF0ZQBSZWZlcmVuY2UgdGltZQBnZXRDb29yZGluYXRlRnJhbWUoACAAKQBjc24tPmNvbXB1dGVMb2NhbENvb3JkaW5hdGVGcmFtZShwb3NpdGlvbikqIG9zZzo6Y29tcHV0ZUxvY2FsVG9Xb3JsZCh0bXBQYXRoKQBvc2c6OmNvbXB1dGVMb2NhbFRvV29ybGQodG1wUGF0aCkAICAgbm8gY29vcmRpbmF0ZSBzeXN0ZW0gZm91bmQsIHVzaW5nIGRlZmF1bHQgb3JpZW50YXRpb24AMjlWaWV3ZXJDb29yZGluYXRlRnJhbWVDYWxsYmFjawBWaWV3ZXI6OnN0YXJ0VGhyZWFkaW5nKCkgLSBzdGFydGluZyB0aHJlYWRpbmcAVmlld2VyOjpzdGFydFRocmVhZGluZygpIC0gY29udGV4dHMuc2l6ZSgpPQBFcnJvcjogVGhyZWFkaW5nIG1vZGVsIG5vdCBzZWxlY3RlZABNYWtpbmcgc2NlbmUgdGhyZWFkIHNhZmUAVmlld2VyQmFzZTo6c3RhcnRUaHJlYWRpbmcoKSA6IFJlYWxpem5nIHdpbmRvdyAAICBjYW1lcmEtPmdldENhbWVyYVRocmVhZCgpLT4gACAgZ2MtPmdldEdyYXBoaWNzVGhyZWFkKCktPnN0YXJ0VGhyZWFkKCkgAFNldCB1cCB0aHJlYWRpbmcAUnVuT3BlcmF0aW9uAEJhcnJpZXIAVmlld2VyQmFzZTo6c3RvcFRocmVhZGluZygpIC0gc3RvcHBpbmcgdGhyZWFkaW5nAFZpZXdlcjo6c3RvcFRocmVhZGluZygpIC0gc3RvcHBlZCB0aHJlYWRpbmcuAE9TR19USFJFQURJTkcAU2luZ2xlVGhyZWFkZWQAQ3VsbERyYXdUaHJlYWRQZXJDb250ZXh0AERyYXdUaHJlYWRQZXJDb250ZXh0AEN1bGxUaHJlYWRQZXJDYW1lcmFEcmF3VGhyZWFkUGVyQ29udGV4dABWaWV3ZXJCYXNlOjpjb25maWd1cmVBZmZpbml0eSgpIG51bVByb2Nlc3NvcnM9ACAgZGF0YWJhc2VQYWdlcnMgPSAAQXBwbHlpbmcgb3NnVmlld2VyOjpWaWV3Q29uZmlnIDogAEFjcm9zc0FsbFNjcmVlbnM6OmNvbmZpZ3VyZSgpIDogRXJyb3IsIG5vIFdpbmRvd1N5c3RlbUludGVyZmFjZSBhdmFpbGFibGUsIGNhbm5vdCBjcmVhdGUgd2luZG93cy4AICBHcmFwaGljc1dpbmRvdyBoYXMgYmVlbiBjcmVhdGVkIHN1Y2Nlc3NmdWxseS4AICBHcmFwaGljc1dpbmRvdyBoYXMgbm90IGJlZW4gY3JlYXRlZCBzdWNjZXNzZnVsbHkuAFNpbmdsZVdpbmRvdzo6Y29uZmlndXJlKCkgOiBFcnJvciwgbm8gV2luZG93U3lzdGVtSW50ZXJmYWNlIGF2YWlsYWJsZSwgY2Fubm90IGNyZWF0ZSB3aW5kb3dzLgBTaW5nbGVXaW5kb3c6OmNvbmZpZ3VyZSAtIEdyYXBoaWNzV2luZG93IGhhcyBiZWVuIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5LgBTaW5nbGVXaW5kb3c6OmNvbmZpZ3VyZSAtIEdyYXBoaWNzV2luZG93IGhhcyBub3QgYmVlbiBjcmVhdGVkIHN1Y2Nlc3NmdWxseS4ATjlvc2dWaWV3ZXI0VmlldzE5U3RlcmVvU2xhdmVDYWxsYmFja0UATjNvc2c0VmlldzVTbGF2ZTE5VXBkYXRlU2xhdmVDYWxsYmFja0UATjNvc2cxOVRlbXBsYXRlVmFsdWVPYmplY3RJTlN0M19fMjEyYmFzaWNfc3RyaW5nSWNOUzFfMTFjaGFyX3RyYWl0c0ljRUVOUzFfOWFsbG9jYXRvckljRUVFRUVFAFdyaXRpbmcga2V5c3RvbmUgdG86IABOOW9zZ1ZpZXdlcjE1S2V5c3RvbmVIYW5kbGVyRQBEaXN0b3J0aW9uQ29ycmVjdGlvbkNhbWVyYQBSZW5kZXJCaW4AS2V5c3RvbmVDdWxsQ2FsbGJhY2sAb3NnADIwS2V5c3RvbmVDdWxsQ2FsbGJhY2sAS2V5c3RvbmVVcGRhdGVDYWxsYmFjawAyMktleXN0b25lVXBkYXRlQ2FsbGJhY2sAUmVuZGVyIHRvIHRleHR1cmUgY2FtZXJhAE45b3NnVmlld2VyOEtleXN0b25lRQBLZXlzdG9uZQBDcmVhdGluZyBLZXlzdG9uZSBmb3IgZmlsZW5hbWUgZW50cnk6IABTdHJpbmdWYWx1ZU9iamVjdABTaW5nbGVXaW5kb3cATjlvc2dWaWV3ZXIxMlNpbmdsZVdpbmRvd0UATjlvc2dWaWV3ZXIxMFZpZXdDb25maWdFAFNpbmdsZVNjcmVlbgBOOW9zZ1ZpZXdlcjEyU2luZ2xlU2NyZWVuRQBBY3Jvc3NBbGxTY3JlZW5zAE45b3NnVmlld2VyMTZBY3Jvc3NBbGxTY3JlZW5zRQBOOW9zZ1ZpZXdlcjE1Q29tcG9zaXRlVmlld2VyRQBOOW9zZ1ZpZXdlcjE4T3BlbkdMUXVlcnlTdXBwb3J0RQBHUFUgZHJhdyBiZWdpbiB0aW1lAEdQVSBkcmF3IGVuZCB0aW1lAEdQVSBkcmF3IHRpbWUgdGFrZW4AMTVFWFRRdWVyeVN1cHBvcnQAUmVuZGVyOjp+UmVuZGVyKCkgAFJlbmRlcmVyOjpjb21waWxlKCkAQmVmb3JlIFJlbmRlcmVyOjpjb21waWxlAEFmdGVyIFJlbmRlcmVyOjpjb21waWxlAGN1bGxfZHJhdygpIABncHUAcmVuZGVyaW5nAENvbGxlY3RpbmcgcmVuZGVyaW5nIHN0YXRzAEN1bGwgdHJhdmVyc2FsIGJlZ2luIHRpbWUAQ3VsbCB0cmF2ZXJzYWwgZW5kIHRpbWUAQ3VsbCB0cmF2ZXJzYWwgdGltZSB0YWtlbgBEcmF3IHRyYXZlcnNhbCBiZWdpbiB0aW1lAERyYXcgdHJhdmVyc2FsIGVuZCB0aW1lAERyYXcgdHJhdmVyc2FsIHRpbWUgdGFrZW4AZW5kIGN1bGxfZHJhdygpIABWaXNpYmxlIHZlcnRleCBjb3VudABWaXNpYmxlIG51bWJlciBvZiBkcmF3YWJsZXMAVmlzaWJsZSBudW1iZXIgb2YgZmFzdCBkcmF3YWJsZXMAVmlzaWJsZSBudW1iZXIgb2YgbGlnaHRzAFZpc2libGUgbnVtYmVyIG9mIHJlbmRlciBiaW5zAFZpc2libGUgZGVwdGgATnVtYmVyIG9mIFN0YXRlR3JhcGhzAFZpc2libGUgbnVtYmVyIG9mIGltcG9zdG9ycwBOdW1iZXIgb2Ygb3JkZXJlZCBsZWF2ZXMAVmlzaWJsZSBudW1iZXIgb2YgUHJpbWl0aXZlU2V0cwBWaXNpYmxlIG51bWJlciBvZiBHTF9QT0lOVFMAVmlzaWJsZSBudW1iZXIgb2YgR0xfTElORVMAVmlzaWJsZSBudW1iZXIgb2YgR0xfTElORV9TVFJJUABWaXNpYmxlIG51bWJlciBvZiBHTF9MSU5FX0xPT1AAVmlzaWJsZSBudW1iZXIgb2YgR0xfVFJJQU5HTEVTAFZpc2libGUgbnVtYmVyIG9mIEdMX1RSSUFOR0xFX1NUUklQAFZpc2libGUgbnVtYmVyIG9mIEdMX1RSSUFOR0xFX0ZBTgBWaXNpYmxlIG51bWJlciBvZiBHTF9RVUFEUwBWaXNpYmxlIG51bWJlciBvZiBHTF9RVUFEX1NUUklQAFZpc2libGUgbnVtYmVyIG9mIEdMX1BPTFlHT04AMTVBUkJRdWVyeVN1cHBvcnQAZHJhdygpIABkcmF3KCkgZ290IFNjZW5lVmlldyAAUmVuZGVyZXI6OnJlbGVhc2UoKSBjYXVzaW5nIGRyYXcgdG8gZXhpdABSZW5kZXJlcjo6ZHJhdygpIGNvbXBsZXRpbmcgZWFybHkgZHVlIHRvIGNoYW5nZSBpbiBfZ3JhcGhpY3NUaHJlYWREb2VzQ3VsbCBmbGFnLgBlbmQgZHJhdygpIABjdWxsKCkAY3VsbCgpIGdvdCBTY2VuZVZpZXcgAGVuZCBjdWxsKCkgAFJlbmRlcmVyOjpyZWxlYXNlKCkAU2NlbmUATjlvc2dWaWV3ZXI1U2NlbmVFAFZpZXcARGVzdHJ1Y3Rpbmcgb3NnVmlld2VyOjpWaWV3AFZpZXc6OnJlcXVlc3RXYXJwUG9pbnRlcigALABWaWV3OjpyZXF1ZXN0V2FycFBvaW50ZXIgZmFpbGVkIG5vIGNhbWVyYSBjb250YWluaW5nIHBvaW50ZXIAVGVzdGluZyBzbGF2ZSBjYW1lcmEgAFZpZXc6OnJlcXVlc3RDb250aW51b3VzVXBkYXRlKCksIE5vIHZpZXdlciBiYXNlIGhhcyBiZWVuIGFzc2lnbmVkIHlldC4AVmlldzo6cmVxdWVzdFJlZHJhdygpLCBObyB2aWV3ZXIgYmFzZSBoYXMgYmVlbiBhc3NpZ25lZCB5ZXQuAGNvbXB1dGVJbnRlcnNlY3Rpb25zKAApIGxvY2FsX3g9ACwgbG9jYWxfeT0AVmlldzo6c2V0U2NlbmVEYXRhKCkgU2hhcmluZyBzY2VuZSAAVmlldzo6c2V0U2NlbmVEYXRhKCkgQWxsb2NhdGluZyBuZXcgc2NlbmUAVmlldzo6c2V0U2NlbmVEYXRhKCkgUmV1c2luZyBleGlzdGluZyBzY2VuZQAiQ29sbGVjdGVkQ29vcmRpbmF0ZVN5c3RlbU5vZGVzVmlzaXRvciIAIm9zZ1ZpZXdlciIARm91bmQgQ29vcmRpbmF0ZVN5c3RlbU5vZGUgbm9kZQAgICAgIENvb3JkaW5hdGVTeXN0ZW0gPSAARm91bmQgYWRkaXRpb25hbCBDb29yZGluYXRlU3lzdGVtTm9kZSBub2RlLCBidXQgaWdub3JpbmcAMzdDb2xsZWN0ZWRDb29yZGluYXRlU3lzdGVtTm9kZXNWaXNpdG9yAENhbWVyYQBSZW5kZXI6OlJlbmRlcigpIABfYXZhaWxhYmxlUXVldWUuc2l6ZSgpPQBWaWV3ZXIAVmlld2VyOjp+Vmlld2VyKCk6OiBzdGFydCBkZXN0cnVjdG9yIGdldFRocmVhZHMgPSAAVmlld2VyOjp+Vmlld2VyKCkgZW5kIGRlc3RydWN0b3IgZ2V0VGhyZWFkcyA9IABHcmFwaGljc1dpbmRvdzo6cmVxdWVzdFJlZHJhdygpOiBObyB2aWV3cyBhc3NpZ25lZCB5ZXQuAEdyYXBoaWNzV2luZG93OjpzZXRTd2FwR3JvdXAoACkgbm90IGltcGxlbWVudGVkLgBHcmFwaGljc1dpbmRvdzo6c2V0U3luY1RvVkJsYW5rKABHcmFwaGljc1dpbmRvdzo6c2V0Q3Vyc29yKC4uKSBub3QgaW1wbGVtZW50ZWQuAEdyYXBoaWNzV2luZG93OjpzZXRXaW5kb3dOYW1lKC4uKSBub3QgaW1wbGVtZW50ZWQuAEdyYXBoaWNzV2luZG93OjpyYWlzZVdpbmRvdyguLikgbm90IGltcGxlbWVudGVkLgBHcmFwaGljc1dpbmRvdzo6Z3JhYkZvY3VzSWZQb2ludGVySW5XaW5kb3coLi4pIG5vdCBpbXBsZW1lbnRlZC4AR3JhcGhpY3NXaW5kb3c6OmdyYWJGb2N1cyguLikgbm90IGltcGxlbWVudGVkLgBHcmFwaGljc1dpbmRvdzo6c2V0V2luZG93RGVjb3JhdGlvbkltcGxlbWVudGF0aW9uKC4uKSBub3QgaW1wbGVtZW50ZWQuAEdyYXBoaWNzV2luZG93OjpzZXRXaW5kb3dSZWN0YW5nbGVJbXBsZW1lbnRhdGlvbiguLikgbm90IGltcGxlbWVudGVkLgBHcmFwaGljc1dpbmRvdzo6IHN3YXBCdWZmZXJzSW1wbGVtZW50YXRpb24oKSBub3QgaW1wbGVtZW50ZWQuAEdyYXBoaWNzV2luZG93OjpiaW5kUEJ1ZmZlclRvVGV4dHVyZUltcGxlbWVudGF0aW9uKC4uKSBub3QgaW1wbGVtZW50ZWQuAEdyYXBoaWNzV2luZG93OjpyZWxlYXNlQ29udGV4dEltcGxlbWVudGF0aW9uKC4uKSBub3QgaW1wbGVtZW50ZWQuAEdyYXBoaWNzV2luZG93OjptYWtlQ29udGV4dEN1cnJlbnRJbXBsZW1lbnRhdGlvbiguLikgbm90IGltcGxlbWVudGVkLgBHcmFwaGljc1dpbmRvdzo6bWFrZUN1cnJlbnRJbXBsZW1lbnRhdGlvbigpIG5vdCBpbXBsZW1lbnRlZC4AR3JhcGhpY3NXaW5kb3c6OmNsb3NlSW1wbGVtZW50YXRpb24oKSBub3QgaW1wbGVtZW50ZWQuAEdyYXBoaWNzV2luZG93Ojppc1JlYWxpemVkSW1wbGVtZW50YXRpb24oKSBub3QgaW1wbGVtZW50ZWQuAEdyYXBoaWNzV2luZG93OjpyZWFsaXplSW1wbGVtZW50YXRpb24oKSBub3QgaW1wbGVtZW50ZWQuAEdyYXBoaWNzV2luZG93Ojp2YWxpZCgpIG5vdCBpbXBsZW1lbnRlZC4AR3JhcGhpY3NXaW5kb3cAR3JhcGhpY3NXaW5kb3dFbWJlZGRlZABOOW9zZ1ZpZXdlcjIyR3JhcGhpY3NXaW5kb3dFbWJlZGRlZEUAVmlld2VyOjpyZWFsaXplKCkgLSBObyB2YWxpZCBjb250ZXh0cyBmb3VuZCwgc2V0dGluZyB1cCB2aWV3IGFjcm9zcyBhbGwgc2NyZWVucy4AT1NHX0NPTkZJR19GSUxFAE9TR19TQ1JFRU4AT1NHX1dJTkRPVwBPU0dfQk9SREVSTEVTU19XSU5ET1cAVmlld2VyOjpyZWFsaXplKCkgLSBmYWlsZWQgdG8gc2V0IHVwIGFueSB3aW5kb3dzAFZpZXdlcjo6cmVhZENvbmZpZ3VyYXRpb24oAFVzaW5nIG9zZ1ZpZXdlcjo6Q29uZmlnIDogAEVycm9yOiBDb25maWcgZmlsZSAiACIgY29udGFpbmluZyBDb21wb3NpdGVWaWV3ZXIgY2Fubm90IGJlIGxvYWRlZCBieSBWaWV3ZXIuACIgZG9lcyBub3QgY29udGFpbiBhIHZhbGlkIFZpZXdlciBjb25maWd1cmF0aW9uLgBOOW9zZ1ZpZXdlcjZWaWV3ZXJFAE9TR19DT05GSUdfRklMRSA8ZmlsZW5hbWU+AFNwZWNpZnkgYSB2aWV3ZXIgY29uZmlndXJhdGlvbiBmaWxlIHRvIGxvYWQgYnkgZGVmYXVsdC4AT1NHX1RIUkVBRElORyA8dmFsdWU+AFNldCB0aGUgdGhyZWFkaW5nIG1vZGVsIHVzaW5nIGJ5IFZpZXdlciwgPHZhbHVlPiBjYW4gYmUgU2luZ2xlVGhyZWFkZWQsIEN1bGxEcmF3VGhyZWFkUGVyQ29udGV4dCwgRHJhd1RocmVhZFBlckNvbnRleHQgb3IgQ3VsbFRocmVhZFBlckNhbWVyYURyYXdUaHJlYWRQZXJDb250ZXh0LgBPU0dfU0NSRUVOIDx2YWx1ZT4AU2V0IHRoZSBkZWZhdWx0IHNjcmVlbiB0aGF0IHdpbmRvd3Mgc2hvdWxkIG9wZW4gdXAgb24uAE9TR19XSU5ET1cgeCB5IHdpZHRoIGhlaWdodABTZXQgdGhlIGRlZmF1bHQgd2luZG93IGRpbWVuc2lvbnMgdGhhdCB3aW5kb3dzIHNob3VsZCBvcGVuIHVwIG9uLgBGcmFtZSByYXRlIG1hbmFnZSBzY2hlbWUgdGhhdCB2aWV3ZXIgcnVuIHNob3VsZCB1c2UsICBPTl9ERU1BTkQgb3IgQ09OVElOVU9VUyAoZGVmYXVsdCkuAFNldCB0aGUgbWF4aW11bSBudW1iZXIgb2YgZnJhbWUgYXMgc2Vjb25kIHRoYXQgdmlld2VyIHJ1bi4gMC4wIGlzIGRlZmF1bHQgYW5kIGRpc2FibGVzIGFuIGZyYW1lIHJhdGUgY2FwcGluZy4AU2V0IHRoZSBtYXhpbXVtIG51bWJlciBvZiBmcmFtZXMgdG8gcnVuIHRoZSB2aWV3ZXIgcnVuIG1ldGhvZC4Ab3NnOjpHcm91cABvc2c6Ok9iamVjdCBvc2c6Ok5vZGUgb3NnOjpHcm91cABDaGlsZHJlbgBnZXROdW1DaGlsZHJlbgByZW1vdmVDaGlsZAAxNkdyb3VwUmVtb3ZlQ2hpbGQAMTNHcm91cEFkZENoaWxkADEzR3JvdXBTZXRDaGlsZAAxM0dyb3VwR2V0Q2hpbGQAcmV0dXJuADE5R3JvdXBHZXROdW1DaGlsZHJlbgBONW9zZ0RCMTRVc2VyU2VyaWFsaXplcklOM29zZzVHcm91cEVFRQBvc2dEQjo6bWFrZURpcmVjdG9yeSgpOiBjYW5ub3QgY3JlYXRlIGFuIGVtcHR5IGRpcmVjdG9yeQBvc2dEQjo6bWFrZURpcmVjdG9yeSgpOiAAIGFscmVhZHkgZXhpc3RzIGFuZCBpcyBub3QgYSBkaXJlY3RvcnkhAGl0cj0nACcKAEZpbmRGaWxlSW5QYXRoKCkgOiB0cnlpbmcgACAuLi4KAEZpbmRGaWxlSW5QYXRoKCkgOiBVU0lORyAACgAuLwAuXAAvAGZpbmRGaWxlSW5EaXJlY3RvcnkoKSBUcmltbWluZyBsYXN0IGNoYXJhY3RlciBvZiBmaWxlcGF0aCwgbm93IHJlYWxEaXJOYW1lPQBmaW5kRmlsZUluRGlyZWN0b3J5KCkgOiBsb29raW5nIGZvciAAIGluIABMRF9MSUJSQVJZX1BBVEgAL3Vzci9saWIvOi91c3IvbG9jYWwvbGliLwBvc2c6Ok1hdHJpeFRyYW5zZm9ybQBvc2c6Ok9iamVjdCBvc2c6Ok5vZGUgb3NnOjpHcm91cCBvc2c6OlRyYW5zZm9ybSBvc2c6Ok1hdHJpeFRyYW5zZm9ybQBNYXRyaXgATjVvc2dEQjE4VGVtcGxhdGVTZXJpYWxpemVySU4zb3NnN01hdHJpeGRFRUUATjVvc2dEQjE2TWF0cml4U2VyaWFsaXplcklOM29zZzE1TWF0cml4VHJhbnNmb3JtRUVFAG9zZzo6Tm9kZQBvc2c6Ok9iamVjdCBvc2c6Ok5vZGUASW5pdGlhbEJvdW5kAENvbXB1dGVCb3VuZGluZ1NwaGVyZUNhbGxiYWNrAFVwZGF0ZUNhbGxiYWNrAEV2ZW50Q2FsbGJhY2sAQ3VsbENhbGxiYWNrAEN1bGxpbmdBY3RpdmUATm9kZU1hc2sARGVzY3JpcHRpb25zAFN0YXRlU2V0AGdldE9yQ3JlYXRlU3RhdGVTZXQAMjNOb2RlR2V0T3JDcmVhdGVTdGF0ZVNldABONW9zZ0RCMTZPYmplY3RTZXJpYWxpemVySU4zb3NnNE5vZGVFTlMxXzhTdGF0ZVNldEVFRQBONW9zZ0RCMTlQcm9wQnlWYWxTZXJpYWxpemVySU4zb3NnNE5vZGVFakVFAE41b3NnREIxOVByb3BCeVZhbFNlcmlhbGl6ZXJJTjNvc2c0Tm9kZUViRUUATjVvc2dEQjE2T2JqZWN0U2VyaWFsaXplcklOM29zZzROb2RlRU5TMV84Q2FsbGJhY2tFRUUATjNvc2c0Tm9kZTI5Q29tcHV0ZUJvdW5kaW5nU3BoZXJlQ2FsbGJhY2tFAE41b3NnREIxOFRlbXBsYXRlU2VyaWFsaXplcklQTjNvc2c0Tm9kZTI5Q29tcHV0ZUJvdW5kaW5nU3BoZXJlQ2FsbGJhY2tFRUUATjVvc2dEQjE2T2JqZWN0U2VyaWFsaXplcklOM29zZzROb2RlRU5TMl8yOUNvbXB1dGVCb3VuZGluZ1NwaGVyZUNhbGxiYWNrRUVFAE41b3NnREIxNFVzZXJTZXJpYWxpemVySU4zb3NnNE5vZGVFRUUAQ2VudGVyAFJhZGl1cwBvc2c6Ok9iamVjdABOYW1lAERhdGFWYXJpYW5jZQBTVEFUSUMARFlOQU1JQwBVTlNQRUNJRklFRABVc2VyRGF0YQBVc2VyRGF0YUNvbnRhaW5lcgBONW9zZ0RCMThUZW1wbGF0ZVNlcmlhbGl6ZXJJUE4zb3NnMTdVc2VyRGF0YUNvbnRhaW5lckVFRQBONW9zZ0RCMTZPYmplY3RTZXJpYWxpemVySU4zb3NnNk9iamVjdEVOUzFfMTdVc2VyRGF0YUNvbnRhaW5lckVFRQBONW9zZ0RCMTRVc2VyU2VyaWFsaXplcklOM29zZzZPYmplY3RFRUUATjVvc2dEQjE4VGVtcGxhdGVTZXJpYWxpemVySU4zb3NnNk9iamVjdDEyRGF0YVZhcmlhbmNlRUVFAE41b3NnREIxNEVudW1TZXJpYWxpemVySU4zb3NnNk9iamVjdEVOUzJfMTJEYXRhVmFyaWFuY2VFdkVFAE41b3NnREIxOFRlbXBsYXRlU2VyaWFsaXplcklOU3QzX18yMTJiYXNpY19zdHJpbmdJY05TMV8xMWNoYXJfdHJhaXRzSWNFRU5TMV85YWxsb2NhdG9ySWNFRUVFRUUATjVvc2dEQjE2U3RyaW5nU2VyaWFsaXplcklOM29zZzZPYmplY3RFRUUAb3NnOjpUcmFuc2Zvcm0Ab3NnOjpPYmplY3Qgb3NnOjpOb2RlIG9zZzo6R3JvdXAgb3NnOjpUcmFuc2Zvcm0AUmVmZXJlbmNlRnJhbWUAUkVMQVRJVkVfUkYAQUJTT0xVVEVfUkYAQUJTT0xVVEVfUkZfSU5IRVJJVF9WSUVXUE9JTlQATjVvc2dEQjE4VGVtcGxhdGVTZXJpYWxpemVySU4zb3NnOVRyYW5zZm9ybTE0UmVmZXJlbmNlRnJhbWVFRUUATjVvc2dEQjE0RW51bVNlcmlhbGl6ZXJJTjNvc2c5VHJhbnNmb3JtRU5TMl8xNFJlZmVyZW5jZUZyYW1lRXZFRQB2b2lkAGJvb2wAY2hhcgBzaWduZWQgY2hhcgB1bnNpZ25lZCBjaGFyAHNob3J0AHVuc2lnbmVkIHNob3J0AGludAB1bnNpZ25lZCBpbnQAbG9uZwB1bnNpZ25lZCBsb25nAGZsb2F0AGRvdWJsZQBzdGQ6OnN0cmluZwBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBjaGFyPgBzdGQ6OndzdHJpbmcAZW1zY3JpcHRlbjo6dmFsAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgc2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgaW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZmxvYXQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGRvdWJsZT4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZyBkb3VibGU+AE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWVFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lkRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJZkVFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SW1FRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lsRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJakVFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWlFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l0RUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJc0VFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWhFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lhRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJY0VFAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0l3TlNfMTFjaGFyX3RyYWl0c0l3RUVOU185YWxsb2NhdG9ySXdFRUVFAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0loTlNfMTFjaGFyX3RyYWl0c0loRUVOU185YWxsb2NhdG9ySWhFRUVFAG9wZW5nbGVzMgBDb3VsZG4ndCBsb2FkIEdMRVMyIGZ1bmN0aW9uICVzOiAlcwoAZ2VuZXJpYwBHTF9JTlZBTElEX0VOVU0AR0xfSU5WQUxJRF9WQUxVRQBHTF9JTlZBTElEX09QRVJBVElPTgBHTF9PVVRfT0ZfTUVNT1JZAFVOS05PV04AJXM6ICVzICglZCk6ICVzICVzICgweCVYKQAvaG9tZS9rb3JuZXJyLy5lbXNjcmlwdGVuX3BvcnRzL3NkbDIvU0RMMi12ZXJzaW9uXzEzL3NyYy9yZW5kZXIvb3BlbmdsZXMyL1NETF9yZW5kZXJfZ2xlczIuYwB2b2lkIEdMRVMyX1Jlc2V0U3RhdGUoU0RMX1JlbmRlcmVyICopAFZpZGVvIHN1YnN5c3RlbSBoYXMgbm90IGJlZW4gaW5pdGlhbGl6ZWQAVGhlIHNwZWNpZmllZCB3aW5kb3cgaXNuJ3QgYW4gT3BlbkdMIHdpbmRvdwBUaGUgc3BlY2lmaWVkIHdpbmRvdyBoYXMgbm90IGJlZW4gbWFkZSBjdXJyZW50AGdsUmVhZFBpeGVscygpAGludCBHTEVTMl9SZW5kZXJSZWFkUGl4ZWxzKFNETF9SZW5kZXJlciAqLCBjb25zdCBTRExfUmVjdCAqLCBVaW50MzIsIHZvaWQgKiwgaW50KQBkc3QAZHN0X3BpdGNoAFVua25vd24gRk9VUkNDIHBpeGVsIGZvcm1hdABJbmRleGVkIHBpeGVsIGZvcm1hdHMgbm90IHN1cHBvcnRlZABTRExfQkxJVF9DUFVfRkVBVFVSRVMAJXUAQmxpdCBjb21iaW5hdGlvbiBub3Qgc3VwcG9ydGVkAAAkSG2Rttr/AFWq/wD//2Zvcm1hdABTRExfU2V0UGl4ZWxGb3JtYXRQYWxldHRlKCkgcGFzc2VkIE5VTEwgZm9ybWF0AFNETF9TZXRQaXhlbEZvcm1hdFBhbGV0dGUoKSBwYXNzZWQgYSBwYWxldHRlIHRoYXQgZG9lc24ndCBtYXRjaCB0aGUgZm9ybWF0AFNETF9GaWxsUmVjdCgpOiBVbnN1cHBvcnRlZCBzdXJmYWNlIGZvcm1hdABTRExfRmlsbFJlY3QoKTogWW91IG11c3QgbG9jayB0aGUgc3VyZmFjZQBBAEIAcmVzdWx0AEZPVVJDQyBwaXhlbCBmb3JtYXRzIGFyZSBub3Qgc3VwcG9ydGVkAEludmFsaWQgcmVuZGVyZXIASW52YWxpZCB0ZXh0dXJlAFJlbmRlcmVyIGRvZXNuJ3Qgc3VwcG9ydCBxdWVyeWluZyBvdXRwdXQgc2l6ZQBpbnQgR0xFUzJfUmVuZGVyQ29weUV4KFNETF9SZW5kZXJlciAqLCBTRExfVGV4dHVyZSAqLCBjb25zdCBTRExfUmVjdCAqLCBjb25zdCBTRExfRlJlY3QgKiwgY29uc3QgZG91YmxlLCBjb25zdCBTRExfRlBvaW50ICosIGNvbnN0IFNETF9SZW5kZXJlckZsaXApAFVuc3VwcG9ydGVkIHRleHR1cmUgZm9ybWF0AGFfcG9zaXRpb24AYV90ZXhDb29yZABhX2FuZ2xlAGFfY2VudGVyAEZhaWxlZCB0byBsaW5rIHNoYWRlciBwcm9ncmFtAHVfcHJvamVjdGlvbgB1X3RleHR1cmVfdgB1X3RleHR1cmVfdQB1X3RleHR1cmUAdV9tb2R1bGF0aW9uAHVfY29sb3IATm8gc2hhZGVyIG1hdGNoaW5nIHRoZSByZXF1ZXN0ZWQgY2hhcmFjdGVyaXN0aWNzIHdhcyBmb3VuZABUaGUgc3BlY2lmaWVkIHNoYWRlciBjYW5ub3QgYmUgbG9hZGVkIG9uIHRoZSBjdXJyZW50IHBsYXRmb3JtAEZhaWxlZCB0byBsb2FkIHRoZSBzaGFkZXI6ICVzAEZhaWxlZCB0byBsb2FkIHRoZSBzaGFkZXIAaW50IEdMRVMyX1JlbmRlckNvcHkoU0RMX1JlbmRlcmVyICosIFNETF9UZXh0dXJlICosIGNvbnN0IFNETF9SZWN0ICosIGNvbnN0IFNETF9GUmVjdCAqKQBpbnQgR0xFUzJfUmVuZGVyRmlsbFJlY3RzKFNETF9SZW5kZXJlciAqLCBjb25zdCBTRExfRlJlY3QgKiwgaW50KQBpbnQgR0xFUzJfUmVuZGVyRHJhd0xpbmVzKFNETF9SZW5kZXJlciAqLCBjb25zdCBTRExfRlBvaW50ICosIGludCkAaW50IEdMRVMyX1VwZGF0ZVZpZXdwb3J0KFNETF9SZW5kZXJlciAqKQBnbEZyYW1lYnVmZmVyVGV4dHVyZTJEKCkgZmFpbGVkAGdsVGV4U3ViSW1hZ2UyRCgpAGludCBHTEVTMl9VcGRhdGVUZXh0dXJlWVVWKFNETF9SZW5kZXJlciAqLCBTRExfVGV4dHVyZSAqLCBjb25zdCBTRExfUmVjdCAqLCBjb25zdCBVaW50OCAqLCBpbnQsIGNvbnN0IFVpbnQ4ICosIGludCwgY29uc3QgVWludDggKiwgaW50KQBpbnQgR0xFUzJfVXBkYXRlVGV4dHVyZShTRExfUmVuZGVyZXIgKiwgU0RMX1RleHR1cmUgKiwgY29uc3QgU0RMX1JlY3QgKiwgY29uc3Qgdm9pZCAqLCBpbnQpAFRleHR1cmUgZm9ybWF0IG5vdCBzdXBwb3J0ZWQAaW50IEdMRVMyX0NyZWF0ZVRleHR1cmUoU0RMX1JlbmRlcmVyICosIFNETF9UZXh0dXJlICopAGdsR2VuVGV4dXJlcygpAGdsVGV4SW1hZ2UyRCgpAE5vIE9wZW5HTCBjb250ZXh0IGhhcyBiZWVuIG1hZGUgY3VycmVudABTZXR0aW5nIHRoZSBzd2FwIGludGVydmFsIGlzIG5vdCBzdXBwb3J0ZWQAJXMAJXM6ICVzCgBWRVJCT1NFAERFQlVHAElORk8AV0FSTgBFUlJPUgBDUklUSUNBTABObyBHTCBkcml2ZXIgaGFzIGJlZW4gbG9hZGVkAE5vIGR5bmFtaWMgR0wgc3VwcG9ydCBpbiB2aWRlbyBkcml2ZXIAaWQAdm9pZCBHTEVTMl9EZXN0cm95UmVuZGVyZXIoU0RMX1JlbmRlcmVyICopAEVycm9yIHJlYWRpbmcgZnJvbSBkYXRhc3RyZWFtAEVycm9yIHdyaXRpbmcgdG8gZGF0YXN0cmVhbQBFcnJvciBzZWVraW5nIGluIGRhdGFzdHJlYW0AVGhhdCBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZABVbmtub3duIFNETCBlcnJvcgBObyBPcGVuR0wgc3VwcG9ydCBpbiB2aWRlbyBkcml2ZXIAbm8gZ2VzdHVyZSB0b3VjaCBkZXZpY2VzIHJlZ2lzdGVyZWQARVJST1I6IE51bVBvaW50cyA9ICVpCgBUaGUgZXZlbnQgc3lzdGVtIGhhcyBiZWVuIHNodXQgZG93bgBFdmVudCBxdWV1ZSBpcyBmdWxsICglZCBldmVudHMpAENvdWxkbid0IGxvY2sgZXZlbnQgcXVldWUAVmlkZW8gZHJpdmVyIGRvZXNuJ3Qgc3VwcG9ydCBjaGFuZ2luZyBkaXNwbGF5IG1vZGUATm8gdmlkZW8gbW9kZSBsYXJnZSBlbm91Z2ggZm9yICVkeCVkAE1pc3NpbmcgZGVzaXJlZCBtb2RlIG9yIGNsb3Nlc3QgbW9kZSBwYXJhbWV0ZXIAbW9kZQBDb3VsZG4ndCBmaW5kIGRpc3BsYXkgbW9kZSBtYXRjaABDb3VsZG4ndCBmaW5kIGFueSBkaXNwbGF5cwBwb2ludHMAY291bnQAZGlzcGxheUluZGV4IG11c3QgYmUgaW4gdGhlIHJhbmdlIDAgLSAlZABVbmtub3duIE9wZW5HTCBjb250ZXh0IGZsYWcgJWQAVW5rbm93biBPcGVuR0wgY29udGV4dCBwcm9maWxlICVkAFVua25vd24gT3BlbkdMIGF0dHJpYnV0ZQBGYWlsZWQgZ2V0dGluZyBPcGVuR0wgZ2xHZXRJbnRlZ2VydiBlbnRyeSBwb2ludABGYWlsZWQgZ2V0dGluZyBPcGVuR0wgZ2xHZXRFcnJvciBlbnRyeSBwb2ludABPcGVuR0wgZXJyb3I6IEdMX0lOVkFMSURfRU5VTQBPcGVuR0wgZXJyb3I6IEdMX0lOVkFMSURfVkFMVUUAT3BlbkdMIGVycm9yOiAlMDhYAENhbid0IGNyZWF0ZSByZW5kZXJlciBmb3IgTlVMTCBzdXJmYWNlAFdpbmRvdyBzdXJmYWNlIGlzIGludmFsaWQsIHBsZWFzZSBjYWxsIFNETF9HZXRXaW5kb3dTdXJmYWNlKCkgdG8gZ2V0IGEgbmV3IHN1cmZhY2UAVHJpZWQgdG8gcmVhZCBvdXRzaWRlIG9mIHN1cmZhY2UgYm91bmRzAFNETF9SRU5ERVJfU0NBTEVfUVVBTElUWQBuZWFyZXN0AFNETF9VcHBlckJsaXQ6IHBhc3NlZCBhIE5VTEwgc3VyZmFjZQBTdXJmYWNlcyBtdXN0IG5vdCBiZSBsb2NrZWQgZHVyaW5nIGJsaXQARW1wdHkgZGVzdGluYXRpb24gcGFsZXR0ZQBVbmtub3duIHBpeGVsIGZvcm1hdABrZXkAcGFsZXR0ZQBuY29sb3JzAFNETF9VcHBlckJsaXRTY2FsZWQ6IHBhc3NlZCBhIE5VTEwgc3VyZmFjZQBPbmx5IHdvcmtzIHdpdGggc2FtZSBmb3JtYXQgc3VyZmFjZXMASW52YWxpZCBzb3VyY2UgYmxpdCByZWN0YW5nbGUASW52YWxpZCBkZXN0aW5hdGlvbiBibGl0IHJlY3RhbmdsZQBVbmFibGUgdG8gbG9jayBkZXN0aW5hdGlvbiBzdXJmYWNlAFVuYWJsZSB0byBsb2NrIHNvdXJjZSBzdXJmYWNlAHN1cmZhY2UAU0RMX0JsZW5kRmlsbFJlY3RzKCk6IFVuc3VwcG9ydGVkIHN1cmZhY2UgZm9ybWF0AFNETF9GaWxsUmVjdHMoKSBwYXNzZWQgTlVMTCByZWN0cwBTRExfQmxlbmRMaW5lcygpOiBQYXNzZWQgTlVMTCBkZXN0aW5hdGlvbiBzdXJmYWNlAFNETF9CbGVuZExpbmVzKCk6IFVuc3VwcG9ydGVkIHN1cmZhY2UgZm9ybWF0AFNETF9CbGVuZFBvaW50KCk6IFVuc3VwcG9ydGVkIHN1cmZhY2UgZm9ybWF0AHJlY3QAWDEAWTEAWDIAWTIAU0RMX0RyYXdMaW5lcygpOiBQYXNzZWQgTlVMTCBkZXN0aW5hdGlvbiBzdXJmYWNlAFNETF9EcmF3TGluZXMoKTogVW5zdXBwb3J0ZWQgc3VyZmFjZSBmb3JtYXQAUGFzc2VkIE5VTEwgZGVzdGluYXRpb24gc3VyZmFjZQBTRExfRHJhd1BvaW50KCk6IFVuc3VwcG9ydGVkIHN1cmZhY2UgZm9ybWF0AFNETF9CbGVuZFBvaW50cygpOiBVbnN1cHBvcnRlZCBzdXJmYWNlIGZvcm1hdABTRExfRHJhd1BvaW50cygpOiBVbnN1cHBvcnRlZCBzdXJmYWNlIGZvcm1hdABVbmtub3duIHRleHR1cmUgZm9ybWF0AFNvZnR3YXJlIHJlbmRlcmVyIGRvZXNuJ3QgaGF2ZSBhbiBvdXRwdXQgc3VyZmFjZQBTREwgZW1zY3JpcHRlbiB2aWRlbyBkcml2ZXIAU0RMX1ZJREVPX01JTklNSVpFX09OX0ZPQ1VTX0xPU1MAMABFR0wgbm90IGluaXRpYWxpemVkAFVuYWJsZSB0byBzZXQgdGhlIEVHTCBzd2FwIGludGVydmFsAE9wZW5HTCBub3QgaW5pdGlhbGl6ZWQAVW5hYmxlIHRvIG1ha2UgRUdMIGNvbnRleHQgY3VycmVudABDb3VsZCBub3QgY3JlYXRlIEVHTCBjb250ZXh0IChjb250ZXh0IGF0dHJpYnV0ZXMgYXJlIG5vdCBzdXBwb3J0ZWQpAENvdWxkIG5vdCBjcmVhdGUgRUdMIGNvbnRleHQAQ291bGQgbm90IG1ha2UgRUdMIGNvbnRleHQgY3VycmVudABGYWlsZWQgbG9hZGluZyAlczogJXMAQ291bGQgbm90IGdldCBFR0wgZGlzcGxheQBDb3VsZCBub3QgaW5pdGlhbGl6ZSBFR0wAQ291bGRuJ3QgZmluZCBmcmFtZWJ1ZmZlciBzdXJmYWNlIGZvciB3aW5kb3cAeyB2YXIgdyA9ICQwOyB2YXIgaCA9ICQxOyB2YXIgcGl4ZWxzID0gJDI7IGlmICghTW9kdWxlWydTREwyJ10pIE1vZHVsZVsnU0RMMiddID0ge307IHZhciBTREwyID0gTW9kdWxlWydTREwyJ107IGlmIChTREwyLmN0eENhbnZhcyAhPT0gTW9kdWxlWydjYW52YXMnXSkgeyBTREwyLmN0eCA9IE1vZHVsZVsnY3JlYXRlQ29udGV4dCddKE1vZHVsZVsnY2FudmFzJ10sIGZhbHNlLCB0cnVlKTsgU0RMMi5jdHhDYW52YXMgPSBNb2R1bGVbJ2NhbnZhcyddOyB9IGlmIChTREwyLncgIT09IHcgfHwgU0RMMi5oICE9PSBoIHx8IFNETDIuaW1hZ2VDdHggIT09IFNETDIuY3R4KSB7IFNETDIuaW1hZ2UgPSBTREwyLmN0eC5jcmVhdGVJbWFnZURhdGEodywgaCk7IFNETDIudyA9IHc7IFNETDIuaCA9IGg7IFNETDIuaW1hZ2VDdHggPSBTREwyLmN0eDsgfSB2YXIgZGF0YSA9IFNETDIuaW1hZ2UuZGF0YTsgdmFyIHNyYyA9IHBpeGVscyA+PiAyOyB2YXIgZHN0ID0gMDsgdmFyIG51bTsgaWYgKHR5cGVvZiBDYW52YXNQaXhlbEFycmF5ICE9PSAndW5kZWZpbmVkJyAmJiBkYXRhIGluc3RhbmNlb2YgQ2FudmFzUGl4ZWxBcnJheSkgeyBudW0gPSBkYXRhLmxlbmd0aDsgd2hpbGUgKGRzdCA8IG51bSkgeyB2YXIgdmFsID0gSEVBUDMyW3NyY107IGRhdGFbZHN0IF0gPSB2YWwgJiAweGZmOyBkYXRhW2RzdCsxXSA9ICh2YWwgPj4gOCkgJiAweGZmOyBkYXRhW2RzdCsyXSA9ICh2YWwgPj4gMTYpICYgMHhmZjsgZGF0YVtkc3QrM10gPSAweGZmOyBzcmMrKzsgZHN0ICs9IDQ7IH0gfSBlbHNlIHsgaWYgKFNETDIuZGF0YTMyRGF0YSAhPT0gZGF0YSkgeyBTREwyLmRhdGEzMiA9IG5ldyBJbnQzMkFycmF5KGRhdGEuYnVmZmVyKTsgU0RMMi5kYXRhOCA9IG5ldyBVaW50OEFycmF5KGRhdGEuYnVmZmVyKTsgfSB2YXIgZGF0YTMyID0gU0RMMi5kYXRhMzI7IG51bSA9IGRhdGEzMi5sZW5ndGg7IGRhdGEzMi5zZXQoSEVBUDMyLnN1YmFycmF5KHNyYywgc3JjICsgbnVtKSk7IHZhciBkYXRhOCA9IFNETDIuZGF0YTg7IHZhciBpID0gMzsgdmFyIGogPSBpICsgNCpudW07IGlmIChudW0gJSA4ID09IDApIHsgd2hpbGUgKGkgPCBqKSB7IGRhdGE4W2ldID0gMHhmZjsgaSA9IGkgKyA0IHwgMDsgZGF0YThbaV0gPSAweGZmOyBpID0gaSArIDQgfCAwOyBkYXRhOFtpXSA9IDB4ZmY7IGkgPSBpICsgNCB8IDA7IGRhdGE4W2ldID0gMHhmZjsgaSA9IGkgKyA0IHwgMDsgZGF0YThbaV0gPSAweGZmOyBpID0gaSArIDQgfCAwOyBkYXRhOFtpXSA9IDB4ZmY7IGkgPSBpICsgNCB8IDA7IGRhdGE4W2ldID0gMHhmZjsgaSA9IGkgKyA0IHwgMDsgZGF0YThbaV0gPSAweGZmOyBpID0gaSArIDQgfCAwOyB9IH0gZWxzZSB7IHdoaWxlIChpIDwgaikgeyBkYXRhOFtpXSA9IDB4ZmY7IGkgPSBpICsgNCB8IDA7IH0gfSB9IFNETDIuY3R4LnB1dEltYWdlRGF0YShTREwyLmltYWdlLCAwLCAwKTsgcmV0dXJuIDA7IH0AI2NhbnZhcwAjZG9jdW1lbnQAI3dpbmRvdwBTRExfRU1TQ1JJUFRFTl9LRVlCT0FSRF9FTEVNRU5UAHsgaWYgKHR5cGVvZiBNb2R1bGVbJ3NldFdpbmRvd1RpdGxlJ10gIT09ICd1bmRlZmluZWQnKSB7IE1vZHVsZVsnc2V0V2luZG93VGl0bGUnXShNb2R1bGVbJ1BvaW50ZXJfc3RyaW5naWZ5J10oJDApKTsgfSByZXR1cm4gMDsgfQBDb3VsZCBub3QgY3JlYXRlIEdMRVMgd2luZG93IHN1cmZhY2UAVW5rbm93biB0b3VjaCBkZXZpY2UATm8gd2luZG93IGhhcyBmb2N1cwBFR0wgaW1wbGVtZW50YXRpb24gZG9lcyBub3Qgc3VwcG9ydCBzUkdCIHN5c3RlbSBmcmFtZWJ1ZmZlcnMAQ291bGRuJ3QgZmluZCBtYXRjaGluZyBFR0wgY29uZmlnAE9wZW5HTCBsaWJyYXJ5IGFscmVhZHkgbG9hZGVkACJ7IHJldHVybiBzY3JlZW4ud2lkdGg7IH0iACJ7IHJldHVybiBzY3JlZW4uaGVpZ2h0OyB9IgBkZWZhdWx0AHBvaW50ZXIAbm90LWFsbG93ZWQAbnMtcmVzaXplAGV3LXJlc2l6ZQBuZXN3LXJlc2l6ZQBud3NlLXJlc2l6ZQBwcm9ncmVzcwBjcm9zc2hhaXIAd2FpdAB0ZXh0AHsgaWYgKE1vZHVsZVsnY2FudmFzJ10pIHsgTW9kdWxlWydjYW52YXMnXS5zdHlsZVsnY3Vyc29yJ10gPSBNb2R1bGVbJ1BvaW50ZXJfc3RyaW5naWZ5J10oJDApOyB9IHJldHVybiAwOyB9AGlmIChNb2R1bGVbJ2NhbnZhcyddKSB7IE1vZHVsZVsnY2FudmFzJ10uc3R5bGVbJ2N1cnNvciddID0gJ25vbmUnOyB9AHsgdmFyIHcgPSAkMDsgdmFyIGggPSAkMTsgdmFyIHBpeGVscyA9ICQyOyB2YXIgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7IGNhbnZhcy53aWR0aCA9IHc7IGNhbnZhcy5oZWlnaHQgPSBoOyB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7IHZhciBpbWFnZSA9IGN0eC5jcmVhdGVJbWFnZURhdGEodywgaCk7IHZhciBkYXRhID0gaW1hZ2UuZGF0YTsgdmFyIHNyYyA9IHBpeGVscyA+PiAyOyB2YXIgZHN0ID0gMDsgdmFyIG51bTsgaWYgKHR5cGVvZiBDYW52YXNQaXhlbEFycmF5ICE9PSAndW5kZWZpbmVkJyAmJiBkYXRhIGluc3RhbmNlb2YgQ2FudmFzUGl4ZWxBcnJheSkgeyBudW0gPSBkYXRhLmxlbmd0aDsgd2hpbGUgKGRzdCA8IG51bSkgeyB2YXIgdmFsID0gSEVBUDMyW3NyY107IGRhdGFbZHN0IF0gPSB2YWwgJiAweGZmOyBkYXRhW2RzdCsxXSA9ICh2YWwgPj4gOCkgJiAweGZmOyBkYXRhW2RzdCsyXSA9ICh2YWwgPj4gMTYpICYgMHhmZjsgZGF0YVtkc3QrM10gPSAodmFsID4+IDI0KSAmIDB4ZmY7IHNyYysrOyBkc3QgKz0gNDsgfSB9IGVsc2UgeyB2YXIgZGF0YTMyID0gbmV3IEludDMyQXJyYXkoZGF0YS5idWZmZXIpOyBudW0gPSBkYXRhMzIubGVuZ3RoOyBkYXRhMzIuc2V0KEhFQVAzMi5zdWJhcnJheShzcmMsIHNyYyArIG51bSkpOyB9IGN0eC5wdXRJbWFnZURhdGEoaW1hZ2UsIDAsIDApOyB2YXIgdXJsID0gInVybCgiICsgY2FudmFzLnRvRGF0YVVSTCgpICsgIiksIGF1dG8iOyB2YXIgdXJsQnVmID0gX21hbGxvYyh1cmwubGVuZ3RoICsgMSk7IHN0cmluZ1RvVVRGOCh1cmwsIHVybEJ1ZiwgdXJsLmxlbmd0aCArIDEpOyByZXR1cm4gdXJsQnVmOyB9AFNETCBlbXNjcmlwdGVuIGF1ZGlvIGRyaXZlcgAieyBpZiAodHlwZW9mKEF1ZGlvQ29udGV4dCkgIT09ICd1bmRlZmluZWQnKSB7IHJldHVybiAxOyB9IGVsc2UgaWYgKHR5cGVvZih3ZWJraXRBdWRpb0NvbnRleHQpICE9PSAndW5kZWZpbmVkJykgeyByZXR1cm4gMTsgfSByZXR1cm4gMDsgfSIATm8gYXVkaW8gY29udGV4dCBhdmFpbGFibGUAInsgaWYgKCh0eXBlb2YobmF2aWdhdG9yLm1lZGlhRGV2aWNlcykgIT09ICd1bmRlZmluZWQnKSAmJiAodHlwZW9mKG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKSAhPT0gJ3VuZGVmaW5lZCcpKSB7IHJldHVybiAxOyB9IGVsc2UgaWYgKHR5cGVvZihuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKSAhPT0gJ3VuZGVmaW5lZCcpIHsgcmV0dXJuIDE7IH0gcmV0dXJuIDA7IH0iAHsgaWYgKCQwKSB7IGlmIChTREwyLmNhcHR1cmUuc2lsZW5jZVRpbWVyICE9PSB1bmRlZmluZWQpIHsgY2xlYXJUaW1lb3V0KFNETDIuY2FwdHVyZS5zaWxlbmNlVGltZXIpOyB9IGlmIChTREwyLmNhcHR1cmUuc3RyZWFtICE9PSB1bmRlZmluZWQpIHsgdmFyIHRyYWNrcyA9IFNETDIuY2FwdHVyZS5zdHJlYW0uZ2V0QXVkaW9UcmFja3MoKTsgZm9yICh2YXIgaSA9IDA7IGkgPCB0cmFja3MubGVuZ3RoOyBpKyspIHsgU0RMMi5jYXB0dXJlLnN0cmVhbS5yZW1vdmVUcmFjayh0cmFja3NbaV0pOyB9IFNETDIuY2FwdHVyZS5zdHJlYW0gPSB1bmRlZmluZWQ7IH0gaWYgKFNETDIuY2FwdHVyZS5zY3JpcHRQcm9jZXNzb3JOb2RlICE9PSB1bmRlZmluZWQpIHsgU0RMMi5jYXB0dXJlLnNjcmlwdFByb2Nlc3Nvck5vZGUub25hdWRpb3Byb2Nlc3MgPSBmdW5jdGlvbihhdWRpb1Byb2Nlc3NpbmdFdmVudCkge307IFNETDIuY2FwdHVyZS5zY3JpcHRQcm9jZXNzb3JOb2RlLmRpc2Nvbm5lY3QoKTsgU0RMMi5jYXB0dXJlLnNjcmlwdFByb2Nlc3Nvck5vZGUgPSB1bmRlZmluZWQ7IH0gaWYgKFNETDIuY2FwdHVyZS5tZWRpYVN0cmVhbU5vZGUgIT09IHVuZGVmaW5lZCkgeyBTREwyLmNhcHR1cmUubWVkaWFTdHJlYW1Ob2RlLmRpc2Nvbm5lY3QoKTsgU0RMMi5jYXB0dXJlLm1lZGlhU3RyZWFtTm9kZSA9IHVuZGVmaW5lZDsgfSBpZiAoU0RMMi5jYXB0dXJlLnNpbGVuY2VCdWZmZXIgIT09IHVuZGVmaW5lZCkgeyBTREwyLmNhcHR1cmUuc2lsZW5jZUJ1ZmZlciA9IHVuZGVmaW5lZCB9IFNETDIuY2FwdHVyZSA9IHVuZGVmaW5lZDsgfSBlbHNlIHsgaWYgKFNETDIuYXVkaW8uc2NyaXB0UHJvY2Vzc29yTm9kZSAhPSB1bmRlZmluZWQpIHsgU0RMMi5hdWRpby5zY3JpcHRQcm9jZXNzb3JOb2RlLmRpc2Nvbm5lY3QoKTsgU0RMMi5hdWRpby5zY3JpcHRQcm9jZXNzb3JOb2RlID0gdW5kZWZpbmVkOyB9IFNETDIuYXVkaW8gPSB1bmRlZmluZWQ7IH0gaWYgKChTREwyLmF1ZGlvQ29udGV4dCAhPT0gdW5kZWZpbmVkKSAmJiAoU0RMMi5hdWRpbyA9PT0gdW5kZWZpbmVkKSAmJiAoU0RMMi5jYXB0dXJlID09PSB1bmRlZmluZWQpKSB7IFNETDIuYXVkaW9Db250ZXh0LmNsb3NlKCk7IFNETDIuYXVkaW9Db250ZXh0ID0gdW5kZWZpbmVkOyB9IH0AeyBpZih0eXBlb2YoU0RMMikgPT09ICd1bmRlZmluZWQnKSB7IFNETDIgPSB7fTsgfSBpZiAoISQwKSB7IFNETDIuYXVkaW8gPSB7fTsgfSBlbHNlIHsgU0RMMi5jYXB0dXJlID0ge307IH0gaWYgKCFTREwyLmF1ZGlvQ29udGV4dCkgeyBpZiAodHlwZW9mKEF1ZGlvQ29udGV4dCkgIT09ICd1bmRlZmluZWQnKSB7IFNETDIuYXVkaW9Db250ZXh0ID0gbmV3IEF1ZGlvQ29udGV4dCgpOyB9IGVsc2UgaWYgKHR5cGVvZih3ZWJraXRBdWRpb0NvbnRleHQpICE9PSAndW5kZWZpbmVkJykgeyBTREwyLmF1ZGlvQ29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoKTsgfSB9IHJldHVybiBTREwyLmF1ZGlvQ29udGV4dCA9PT0gdW5kZWZpbmVkID8gLTEgOiAwOyB9AFdlYiBBdWRpbyBBUEkgaXMgbm90IGF2YWlsYWJsZSEATm8gY29tcGF0aWJsZSBhdWRpbyBmb3JtYXQhACJ7IHJldHVybiBTREwyLmF1ZGlvQ29udGV4dC5zYW1wbGVSYXRlOyB9IgB7IHZhciBoYXZlX21pY3JvcGhvbmUgPSBmdW5jdGlvbihzdHJlYW0pIHsgaWYgKFNETDIuY2FwdHVyZS5zaWxlbmNlVGltZXIgIT09IHVuZGVmaW5lZCkgeyBjbGVhclRpbWVvdXQoU0RMMi5jYXB0dXJlLnNpbGVuY2VUaW1lcik7IFNETDIuY2FwdHVyZS5zaWxlbmNlVGltZXIgPSB1bmRlZmluZWQ7IH0gU0RMMi5jYXB0dXJlLm1lZGlhU3RyZWFtTm9kZSA9IFNETDIuYXVkaW9Db250ZXh0LmNyZWF0ZU1lZGlhU3RyZWFtU291cmNlKHN0cmVhbSk7IFNETDIuY2FwdHVyZS5zY3JpcHRQcm9jZXNzb3JOb2RlID0gU0RMMi5hdWRpb0NvbnRleHQuY3JlYXRlU2NyaXB0UHJvY2Vzc29yKCQxLCAkMCwgMSk7IFNETDIuY2FwdHVyZS5zY3JpcHRQcm9jZXNzb3JOb2RlLm9uYXVkaW9wcm9jZXNzID0gZnVuY3Rpb24oYXVkaW9Qcm9jZXNzaW5nRXZlbnQpIHsgaWYgKChTREwyID09PSB1bmRlZmluZWQpIHx8IChTREwyLmNhcHR1cmUgPT09IHVuZGVmaW5lZCkpIHsgcmV0dXJuOyB9IGF1ZGlvUHJvY2Vzc2luZ0V2ZW50Lm91dHB1dEJ1ZmZlci5nZXRDaGFubmVsRGF0YSgwKS5maWxsKDAuMCk7IFNETDIuY2FwdHVyZS5jdXJyZW50Q2FwdHVyZUJ1ZmZlciA9IGF1ZGlvUHJvY2Vzc2luZ0V2ZW50LmlucHV0QnVmZmVyOyBSdW50aW1lLmR5bkNhbGwoJ3ZpJywgJDIsIFskM10pOyB9OyBTREwyLmNhcHR1cmUubWVkaWFTdHJlYW1Ob2RlLmNvbm5lY3QoU0RMMi5jYXB0dXJlLnNjcmlwdFByb2Nlc3Nvck5vZGUpOyBTREwyLmNhcHR1cmUuc2NyaXB0UHJvY2Vzc29yTm9kZS5jb25uZWN0KFNETDIuYXVkaW9Db250ZXh0LmRlc3RpbmF0aW9uKTsgU0RMMi5jYXB0dXJlLnN0cmVhbSA9IHN0cmVhbTsgfTsgdmFyIG5vX21pY3JvcGhvbmUgPSBmdW5jdGlvbihlcnJvcikgeyB9OyBTREwyLmNhcHR1cmUuc2lsZW5jZUJ1ZmZlciA9IFNETDIuYXVkaW9Db250ZXh0LmNyZWF0ZUJ1ZmZlcigkMCwgJDEsIFNETDIuYXVkaW9Db250ZXh0LnNhbXBsZVJhdGUpOyBTREwyLmNhcHR1cmUuc2lsZW5jZUJ1ZmZlci5nZXRDaGFubmVsRGF0YSgwKS5maWxsKDAuMCk7IHZhciBzaWxlbmNlX2NhbGxiYWNrID0gZnVuY3Rpb24oKSB7IFNETDIuY2FwdHVyZS5jdXJyZW50Q2FwdHVyZUJ1ZmZlciA9IFNETDIuY2FwdHVyZS5zaWxlbmNlQnVmZmVyOyBSdW50aW1lLmR5bkNhbGwoJ3ZpJywgJDIsIFskM10pOyB9OyBTREwyLmNhcHR1cmUuc2lsZW5jZVRpbWVyID0gc2V0VGltZW91dChzaWxlbmNlX2NhbGxiYWNrLCAoJDEgLyBTREwyLmF1ZGlvQ29udGV4dC5zYW1wbGVSYXRlKSAqIDEwMDApOyBpZiAoKG5hdmlnYXRvci5tZWRpYURldmljZXMgIT09IHVuZGVmaW5lZCkgJiYgKG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhICE9PSB1bmRlZmluZWQpKSB7IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHsgYXVkaW86IHRydWUsIHZpZGVvOiBmYWxzZSB9KS50aGVuKGhhdmVfbWljcm9waG9uZSkuY2F0Y2gobm9fbWljcm9waG9uZSk7IH0gZWxzZSBpZiAobmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSAhPT0gdW5kZWZpbmVkKSB7IG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoeyBhdWRpbzogdHJ1ZSwgdmlkZW86IGZhbHNlIH0sIGhhdmVfbWljcm9waG9uZSwgbm9fbWljcm9waG9uZSk7IH0gfQB7IFNETDIuYXVkaW8uc2NyaXB0UHJvY2Vzc29yTm9kZSA9IFNETDIuYXVkaW9Db250ZXh0WydjcmVhdGVTY3JpcHRQcm9jZXNzb3InXSgkMSwgMCwgJDApOyBTREwyLmF1ZGlvLnNjcmlwdFByb2Nlc3Nvck5vZGVbJ29uYXVkaW9wcm9jZXNzJ10gPSBmdW5jdGlvbiAoZSkgeyBpZiAoKFNETDIgPT09IHVuZGVmaW5lZCkgfHwgKFNETDIuYXVkaW8gPT09IHVuZGVmaW5lZCkpIHsgcmV0dXJuOyB9IFNETDIuYXVkaW8uY3VycmVudE91dHB1dEJ1ZmZlciA9IGVbJ291dHB1dEJ1ZmZlciddOyBSdW50aW1lLmR5bkNhbGwoJ3ZpJywgJDIsIFskM10pOyB9OyBTREwyLmF1ZGlvLnNjcmlwdFByb2Nlc3Nvck5vZGVbJ2Nvbm5lY3QnXShTREwyLmF1ZGlvQ29udGV4dFsnZGVzdGluYXRpb24nXSk7IH0AeyB2YXIgbnVtQ2hhbm5lbHMgPSBTREwyLmF1ZGlvLmN1cnJlbnRPdXRwdXRCdWZmZXJbJ251bWJlck9mQ2hhbm5lbHMnXTsgZm9yICh2YXIgYyA9IDA7IGMgPCBudW1DaGFubmVsczsgKytjKSB7IHZhciBjaGFubmVsRGF0YSA9IFNETDIuYXVkaW8uY3VycmVudE91dHB1dEJ1ZmZlclsnZ2V0Q2hhbm5lbERhdGEnXShjKTsgaWYgKGNoYW5uZWxEYXRhLmxlbmd0aCAhPSAkMSkgeyB0aHJvdyAnV2ViIEF1ZGlvIG91dHB1dCBidWZmZXIgbGVuZ3RoIG1pc21hdGNoISBEZXN0aW5hdGlvbiBzaXplOiAnICsgY2hhbm5lbERhdGEubGVuZ3RoICsgJyBzYW1wbGVzIHZzIGV4cGVjdGVkICcgKyAkMSArICcgc2FtcGxlcyEnOyB9IGZvciAodmFyIGogPSAwOyBqIDwgJDE7ICsraikgeyBjaGFubmVsRGF0YVtqXSA9IEhFQVBGMzJbJDAgKyAoKGoqbnVtQ2hhbm5lbHMgKyBjKSA8PCAyKSA+PiAyXTsgfSB9IH0ATm8gYnVmZmVyIGFsbG9jYXRlZCBmb3IgY29udmVyc2lvbgB7IHZhciBudW1DaGFubmVscyA9IFNETDIuY2FwdHVyZS5jdXJyZW50Q2FwdHVyZUJ1ZmZlci5udW1iZXJPZkNoYW5uZWxzOyBpZiAobnVtQ2hhbm5lbHMgPT0gMSkgeyB2YXIgY2hhbm5lbERhdGEgPSBTREwyLmNhcHR1cmUuY3VycmVudENhcHR1cmVCdWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCk7IGlmIChjaGFubmVsRGF0YS5sZW5ndGggIT0gJDEpIHsgdGhyb3cgJ1dlYiBBdWRpbyBjYXB0dXJlIGJ1ZmZlciBsZW5ndGggbWlzbWF0Y2ghIERlc3RpbmF0aW9uIHNpemU6ICcgKyBjaGFubmVsRGF0YS5sZW5ndGggKyAnIHNhbXBsZXMgdnMgZXhwZWN0ZWQgJyArICQxICsgJyBzYW1wbGVzISc7IH0gZm9yICh2YXIgaiA9IDA7IGogPCAkMTsgKytqKSB7IHNldFZhbHVlKCQwICsgKGogKiA0KSwgY2hhbm5lbERhdGFbal0sICdmbG9hdCcpOyB9IH0gZWxzZSB7IGZvciAodmFyIGMgPSAwOyBjIDwgbnVtQ2hhbm5lbHM7ICsrYykgeyB2YXIgY2hhbm5lbERhdGEgPSBTREwyLmNhcHR1cmUuY3VycmVudENhcHR1cmVCdWZmZXIuZ2V0Q2hhbm5lbERhdGEoYyk7IGlmIChjaGFubmVsRGF0YS5sZW5ndGggIT0gJDEpIHsgdGhyb3cgJ1dlYiBBdWRpbyBjYXB0dXJlIGJ1ZmZlciBsZW5ndGggbWlzbWF0Y2ghIERlc3RpbmF0aW9uIHNpemU6ICcgKyBjaGFubmVsRGF0YS5sZW5ndGggKyAnIHNhbXBsZXMgdnMgZXhwZWN0ZWQgJyArICQxICsgJyBzYW1wbGVzISc7IH0gZm9yICh2YXIgaiA9IDA7IGogPCAkMTsgKytqKSB7IHNldFZhbHVlKCQwICsgKCgoaiAqIG51bUNoYW5uZWxzKSArIGMpICogNCksIGNoYW5uZWxEYXRhW2pdLCAnZmxvYXQnKTsgfSB9IH0gfQBTREwgZHVtbXkgdmlkZW8gZHJpdmVyAF9TRExfRHVtbXlTdXJmYWNlAENvdWxkbid0IGZpbmQgZHVtbXkgc3VyZmFjZSBmb3Igd2luZG93AFNETF9WSURFT19EVU1NWV9TQVZFX0ZSQU1FUwBTRExfd2luZG93JWQtJTguOGQuYm1wACVkIGJwcCBCTVAgZmlsZXMgbm90IHN1cHBvcnRlZABDb3VsZG4ndCBjb252ZXJ0IGltYWdlIHRvICVkIGJwcABTRExfQk1QX1NBVkVfTEVHQUNZX0ZPUk1BVABTRExfUldGcm9tRmlsZSgpOiBObyBmaWxlIG9yIG5vIG1vZGUgc3BlY2lmaWVkAENvdWxkbid0IG9wZW4gJXMAZGlzawBkaXJlY3QtdG8tZGlzayBhdWRpbwBzZGxhdWRpby1pbi5yYXcAc2RsYXVkaW8ucmF3AFNETF9ESVNLQVVESU9GSUxFSU4AU0RMX0RJU0tBVURJT0ZJTEUAU0RMX0RJU0tBVURJT0RFTEFZAHJiAHdiAFJlYWRpbmcgZnJvbQBXcml0aW5nIHRvAFdBUk5JTkc6IFlvdSBhcmUgdXNpbmcgdGhlIFNETCBkaXNrIGkvbyBhdWRpbyBkcml2ZXIhCiAlcyBmaWxlIFslc10uCgBkdW1teQBTREwgZHVtbXkgYXVkaW8gZHJpdmVyAFNETCBub3QgYnVpbHQgd2l0aCBoYXB0aWMgKGZvcmNlIGZlZWRiYWNrKSBzdXBwb3J0AGVtc2NyaXB0ZW4sU3RhbmRhcmQgR2FtZXBhZCxhOmIwLGI6YjEsYmFjazpiOCxkcGRvd246YjEzLGRwbGVmdDpiMTQsZHByaWdodDpiMTUsZHB1cDpiMTIsZ3VpZGU6YjE2LGxlZnRzaG91bGRlcjpiNCxsZWZ0c3RpY2s6YjEwLGxlZnR0cmlnZ2VyOmI2LGxlZnR4OmEwLGxlZnR5OmExLHJpZ2h0c2hvdWxkZXI6YjUscmlnaHRzdGljazpiMTEscmlnaHR0cmlnZ2VyOmI3LHJpZ2h0eDphMixyaWdodHk6YTMsc3RhcnQ6YjkseDpiMix5OmIzLABTRExfR0FNRUNPTlRST0xMRVJDT05GSUcAWGJveABYLUJveABUaGVyZSBhcmUgJWQgam95c3RpY2tzIGF2YWlsYWJsZQBTRExfR2FtZUNvbnRyb2xsZXJFdmVudFdhdGNoZXI6IEF4aXMgaW5kZXggJWQgdG9vIGxhcmdlLCBpZ25vcmluZyBtb3Rpb24AU0RMX0dhbWVDb250cm9sbGVyRXZlbnRXYXRjaGVyOiBCdXR0b24gaW5kZXggJWQgdG9vIGxhcmdlLCBpZ25vcmluZyB1cGRhdGUAbWFwcGluZ1N0cmluZwBDb3VsZG4ndCBwYXJzZSBHVUlEIGZyb20gJXMAeGlucHV0AGVtc2NyaXB0ZW4AQ291bGRuJ3QgcGFyc2UgbmFtZSBmcm9tICVzAENvdWxkbid0IHBhcnNlICVzAEJ1dHRvbiBuYW1lIHRvbyBsYXJnZTogJXMASm95c3RpY2sgYnV0dG9uIG5hbWUgdG9vIGxhcmdlOiAlcwBBeGlzIGluZGV4IHRvbyBsYXJnZTogJWQAQnV0dG9uIGluZGV4IHRvbyBsYXJnZTogJWQASGF0IGluZGV4IHRvbyBsYXJnZTogJWQAbGVmdHgAbGVmdHkAcmlnaHR4AHJpZ2h0eQBsZWZ0dHJpZ2dlcgByaWdodHRyaWdnZXIAYQBiAHgAeQBiYWNrAGd1aWRlAHN0YXJ0AGxlZnRzdGljawByaWdodHN0aWNrAGxlZnRzaG91bGRlcgByaWdodHNob3VsZGVyAGRwdXAAZHBkb3duAGRwbGVmdABkcHJpZ2h0AFNETF9KT1lTVElDS19BTExPV19CQUNLR1JPVU5EX0VWRU5UUwBHYW1lcGFkcyBub3Qgc3VwcG9ydGVkAENvdWxkIG5vdCBzZXQgZ2FtZXBhZCBjb25uZWN0IGNhbGxiYWNrAENvdWxkIG5vdCBzZXQgZ2FtZXBhZCBkaXNjb25uZWN0IGNhbGxiYWNrAG5hbWUAY2FsbGJhY2sAU0RMX0FVRElPRFJJVkVSAEF1ZGlvIHRhcmdldCAnJXMnIG5vdCBhdmFpbGFibGUATm8gYXZhaWxhYmxlIGF1ZGlvIGRldmljZQBTeXN0ZW0gYXVkaW8gb3V0cHV0IGRldmljZQBTeXN0ZW0gYXVkaW8gY2FwdHVyZSBkZXZpY2UAU0RMIG5vdCBidWlsdCB3aXRoIHRocmVhZCBzdXBwb3J0AFNETF9WSURFT0RSSVZFUgAlcyBub3QgYXZhaWxhYmxlAE5vIGF2YWlsYWJsZSB2aWRlbyBkZXZpY2UAVGhlIHZpZGVvIGRyaXZlciBkaWQgbm90IGFkZCBhbnkgZGlzcGxheXMAc29mdHdhcmUAU0RMX0ZSQU1FQlVGRkVSX0FDQ0VMRVJBVElPTgBTRExfVklERU9fQUxMT1dfU0NSRUVOU0FWRVIAX1NETF9XaW5kb3dUZXh0dXJlRGF0YQBfU0RMX1dpbmRvd1JlbmRlckRhdGEAVGV4dHVyZSB3YXMgbm90IGNyZWF0ZWQgd2l0aCB0aGlzIHJlbmRlcmVyAFRleHR1cmUgbm90IGNyZWF0ZWQgd2l0aCBTRExfVEVYVFVSRUFDQ0VTU19UQVJHRVQATm8gd2luZG93IHRleHR1cmUgZGF0YQBQYXJhbWV0ZXIgJyVzJyBpcyBpbnZhbGlkAHBpeGVscwBwaXRjaABJbnZhbGlkIHRhcmdldCBwaXhlbCBmb3JtYXQAVW5zdXBwb3J0ZWQgWVVWIGRlc3RpbmF0aW9uIGZvcm1hdABVbnN1cHBvcnRlZCBZVVYgZm9ybWF0IGluIGNvcHkAU0RMX0xvY2tUZXh0dXJlKCk6IHRleHR1cmUgbXVzdCBiZSBzdHJlYW1pbmcAWVYxMiBhbmQgSVlVViB0ZXh0dXJlcyBvbmx5IHN1cHBvcnQgZnVsbCBzdXJmYWNlIGxvY2tzAHdpZHRoAGhlaWdodAByZWN0cwBzcGFuAG51bXJlY3RzAE5vIGhhcmR3YXJlIGFjY2VsZXJhdGVkIHJlbmRlcmVycyBhdmFpbGFibGUASW52YWxpZCB0ZXh0dXJlIGZvcm1hdABQYWxldHRpemVkIHRleHR1cmVzIGFyZSBub3Qgc3VwcG9ydGVkAFRleHR1cmUgZGltZW5zaW9ucyBjYW4ndCBiZSAwAFRleHR1cmUgZGltZW5zaW9ucyBhcmUgbGltaXRlZCB0byAlZHglZABVbnN1cHBvcnRlZCBZVVYgZm9ybWF0AEludmFsaWQgd2luZG93AFJlbmRlcmVyIGFscmVhZHkgYXNzb2NpYXRlZCB3aXRoIHdpbmRvdwBTRExfUkVOREVSX1ZTWU5DAFNETF9SRU5ERVJfRFJJVkVSAENvdWxkbid0IGZpbmQgbWF0Y2hpbmcgcmVuZGVyIGRyaXZlcgBpbmRleCBtdXN0IGJlIC0xIG9yIGluIHRoZSByYW5nZSBvZiAwIC0gJWQAQ3JlYXRlZCByZW5kZXJlcjogJXMAaW5kZXggbXVzdCBiZSBpbiB0aGUgcmFuZ2Ugb2YgMCAtICVkAFNETF9FVkVOVF9RVUVVRV9TVEFUSVNUSUNTAFNETCBFVkVOVCBRVUVVRTogTWF4aW11bSBldmVudHMgaW4tZmxpZ2h0OiAlZAoAU0RMX01PVVNFX1JFTEFUSVZFX01PREVfV0FSUABTRExfTk9fU0lHTkFMX0hBTkRMRVJTAENvbmZsaWN0aW5nIHdpbmRvdyBmbGFncyBzcGVjaWZpZWQAV2luZG93IGlzIHRvbyBsYXJnZS4AU0RMX1ZJREVPX0hJR0hEUElfRElTQUJMRUQAdwBoAENhbGwgdG8gTlVMTCB3cml0ZSBmdW5jdGlvbgB1bmRlZmluZWQAbGlicG5nIGVycm9yOiAlcwBXcml0ZSBFcnJvcgBsaWJwbmcgd2FybmluZzogJXMAQ2FsbCB0byBOVUxMIHJlYWQgZnVuY3Rpb24AUmVhZCBFcnJvcgBDYW4ndCBzZXQgYm90aCByZWFkX2RhdGFfZm4gYW5kIHdyaXRlX2RhdGFfZm4gaW4gdGhlIHNhbWUgc3RydWN0dXJlAGluY29uc2lzdGVudCBjaHJvbWF0aWNpdGllcwBpbnZhbGlkIGNocm9tYXRpY2l0aWVzAGludGVybmFsIGVycm9yIGNoZWNraW5nIGNocm9tYXRpY2l0aWVzAGZpeGVkIHBvaW50IG92ZXJmbG93IGluIABnYW1tYSB2YWx1ZSBkb2VzIG5vdCBtYXRjaCBsaWJwbmcgZXN0aW1hdGUAZ2FtbWEgdmFsdWUgZG9lcyBub3QgbWF0Y2ggc1JHQgBnYW1tYSB2YWx1ZSBvdXQgb2YgcmFuZ2UASW52YWxpZCBwYWxldHRlIHNpemUsIGhJU1QgYWxsb2NhdGlvbiBza2lwcGVkAEluc3VmZmljaWVudCBtZW1vcnkgZm9yIGhJU1QgY2h1bmsgZGF0YQBPdXQgb2YgbWVtb3J5AEltYWdlIHdpZHRoIGlzIHplcm8gaW4gSUhEUgBJbnZhbGlkIGltYWdlIHdpZHRoIGluIElIRFIASW1hZ2Ugd2lkdGggaXMgdG9vIGxhcmdlIGZvciB0aGlzIGFyY2hpdGVjdHVyZQBJbWFnZSB3aWR0aCBleGNlZWRzIHVzZXIgbGltaXQgaW4gSUhEUgBJbWFnZSBoZWlnaHQgaXMgemVybyBpbiBJSERSAEludmFsaWQgaW1hZ2UgaGVpZ2h0IGluIElIRFIASW1hZ2UgaGVpZ2h0IGV4Y2VlZHMgdXNlciBsaW1pdCBpbiBJSERSAEludmFsaWQgYml0IGRlcHRoIGluIElIRFIASW52YWxpZCBjb2xvciB0eXBlIGluIElIRFIASW52YWxpZCBjb2xvciB0eXBlL2JpdCBkZXB0aCBjb21iaW5hdGlvbiBpbiBJSERSAFVua25vd24gaW50ZXJsYWNlIG1ldGhvZCBpbiBJSERSAFVua25vd24gY29tcHJlc3Npb24gbWV0aG9kIGluIElIRFIAVW5rbm93biBmaWx0ZXIgbWV0aG9kIGluIElIRFIASW52YWxpZCBmaWx0ZXIgbWV0aG9kIGluIElIRFIASW52YWxpZCBJSERSIGRhdGEASW52YWxpZCBwQ0FMIGVxdWF0aW9uIHR5cGUASW52YWxpZCBwQ0FMIHBhcmFtZXRlciBjb3VudABJbnZhbGlkIGZvcm1hdCBmb3IgcENBTCBwYXJhbWV0ZXIASW5zdWZmaWNpZW50IG1lbW9yeSBmb3IgcENBTCBwdXJwb3NlAEluc3VmZmljaWVudCBtZW1vcnkgZm9yIHBDQUwgdW5pdHMASW5zdWZmaWNpZW50IG1lbW9yeSBmb3IgcENBTCBwYXJhbXMASW5zdWZmaWNpZW50IG1lbW9yeSBmb3IgcENBTCBwYXJhbWV0ZXIASW52YWxpZCBzQ0FMIHVuaXQASW52YWxpZCBzQ0FMIHdpZHRoAEludmFsaWQgc0NBTCBoZWlnaHQATWVtb3J5IGFsbG9jYXRpb24gZmFpbGVkIHdoaWxlIHByb2Nlc3Npbmcgc0NBTABJbnZhbGlkIHBhbGV0dGUgbGVuZ3RoAEludmFsaWQgcGFsZXR0ZQBzUkdCAGludmFsaWQgc1JHQiByZW5kZXJpbmcgaW50ZW50AGluY29uc2lzdGVudCByZW5kZXJpbmcgaW50ZW50cwBkdXBsaWNhdGUgc1JHQiBpbmZvcm1hdGlvbiBpZ25vcmVkAGNIUk0gY2h1bmsgZG9lcyBub3QgbWF0Y2ggc1JHQgBwcm9maWxlICcAJzogAGg6IABrbm93biBpbmNvcnJlY3Qgc1JHQiBwcm9maWxlAG91dC1vZi1kYXRlIHNSR0IgcHJvZmlsZSB3aXRoIG5vIHNpZ25hdHVyZQBOb3QgcmVjb2duaXppbmcga25vd24gc1JHQiBwcm9maWxlIHRoYXQgaGFzIGJlZW4gZWRpdGVkAElDQyBwcm9maWxlIHRhZyBzdGFydCBub3QgYSBtdWx0aXBsZSBvZiA0AElDQyBwcm9maWxlIHRhZyBvdXRzaWRlIHByb2ZpbGUAbGVuZ3RoIGRvZXMgbm90IG1hdGNoIHByb2ZpbGUAaW52YWxpZCBsZW5ndGgAdGFnIGNvdW50IHRvbyBsYXJnZQBpbnZhbGlkIHJlbmRlcmluZyBpbnRlbnQAaW50ZW50IG91dHNpZGUgZGVmaW5lZCByYW5nZQBpbnZhbGlkIHNpZ25hdHVyZQAAAPbWAAEAAAAA0y1QQ1MgaWxsdW1pbmFudCBpcyBub3QgRDUwAFJHQiBjb2xvciBzcGFjZSBub3QgcGVybWl0dGVkIG9uIGdyYXlzY2FsZSBQTkcAR3JheSBjb2xvciBzcGFjZSBub3QgcGVybWl0dGVkIG9uIFJHQiBQTkcAaW52YWxpZCBJQ0MgcHJvZmlsZSBjb2xvciBzcGFjZQBpbnZhbGlkIGVtYmVkZGVkIEFic3RyYWN0IElDQyBwcm9maWxlAHVuZXhwZWN0ZWQgRGV2aWNlTGluayBJQ0MgcHJvZmlsZSBjbGFzcwB1bmV4cGVjdGVkIE5hbWVkQ29sb3IgSUNDIHByb2ZpbGUgY2xhc3MAdW5yZWNvZ25pemVkIElDQyBwcm9maWxlIGNsYXNzAHVuZXhwZWN0ZWQgSUNDIFBDUyBlbmNvZGluZwB0b28gbWFueSB0ZXh0IGNodW5rcwB0ZXh0IGNvbXByZXNzaW9uIG1vZGUgaXMgb3V0IG9mIHJhbmdlAHRleHQgY2h1bms6IG91dCBvZiBtZW1vcnkAaW50ZXJuYWwgZXJyb3I6IGFycmF5IHJlYWxsb2MASWdub3JpbmcgaW52YWxpZCB0aW1lIHZhbHVlAHRSTlMgY2h1bmsgaGFzIG91dC1vZi1yYW5nZSBzYW1wbGVzIGZvciBiaXRfZGVwdGgAdG9vIG1hbnkgc1BMVCBjaHVua3MAcG5nX3NldF9zUExUOiBpbnZhbGlkIHNQTFQAc1BMVCBvdXQgb2YgbWVtb3J5AGludGVybmFsIGVycm9yOiBhcnJheSBhbGxvYwB0b28gbWFueSB1bmtub3duIGNodW5rcwBwbmdfc2V0X3Vua25vd25fY2h1bmtzIG5vdyBleHBlY3RzIGEgdmFsaWQgbG9jYXRpb24AaW52YWxpZCBsb2NhdGlvbiBpbiBwbmdfc2V0X3Vua25vd25fY2h1bmtzAHVua25vd24gY2h1bms6IG91dCBvZiBtZW1vcnkAbGVuZ3RoIGV4Y2VlZHMgUE5HIG1heGltdW0ASW52YWxpZCBiaXQgZGVwdGggZm9yIGdyYXlzY2FsZSBpbWFnZQBJbnZhbGlkIGJpdCBkZXB0aCBmb3IgUkdCIGltYWdlAEludmFsaWQgYml0IGRlcHRoIGZvciBwYWxldHRlZCBpbWFnZQBJbnZhbGlkIGJpdCBkZXB0aCBmb3IgZ3JheXNjYWxlK2FscGhhIGltYWdlAEludmFsaWQgYml0IGRlcHRoIGZvciBSR0JBIGltYWdlAEludmFsaWQgaW1hZ2UgY29sb3IgdHlwZSBzcGVjaWZpZWQASW52YWxpZCBjb21wcmVzc2lvbiB0eXBlIHNwZWNpZmllZABJbnZhbGlkIGZpbHRlciB0eXBlIHNwZWNpZmllZABJbnZhbGlkIGludGVybGFjZSB0eXBlIHNwZWNpZmllZABJbnZhbGlkIG51bWJlciBvZiBjb2xvcnMgaW4gcGFsZXR0ZQBJZ25vcmluZyByZXF1ZXN0IHRvIHdyaXRlIGEgUExURSBjaHVuayBpbiBncmF5c2NhbGUgUE5HAFpfT0sgb24gWl9GSU5JU0ggd2l0aCBvdXRwdXQgc3BhY2UAdW5leHBlY3RlZCBlbmQgb2YgTFogc3RyZWFtAG1pc3NpbmcgTFogZGljdGlvbmFyeQB6bGliIElPIGVycm9yAGJhZCBwYXJhbWV0ZXJzIHRvIHpsaWIAZGFtYWdlZCBMWiBzdHJlYW0AdW5zdXBwb3J0ZWQgemxpYiB2ZXJzaW9uAHVuZXhwZWN0ZWQgemxpYiByZXR1cm4AdW5leHBlY3RlZCB6bGliIHJldHVybiBjb2RlAGluIHVzZSBieSBJREFUAGRlZmxhdGVFbmQgZmFpbGVkIChpZ25vcmVkKQBJbnZhbGlkIHNSR0IgcmVuZGVyaW5nIGludGVudCBzcGVjaWZpZWQATm8gcHJvZmlsZSBmb3IgaUNDUCBjaHVuawBJQ0MgcHJvZmlsZSB0b28gc2hvcnQASUNDIHByb2ZpbGUgbGVuZ3RoIGludmFsaWQgKG5vdCBhIG11bHRpcGxlIG9mIDQpAGlDQ1A6IGludmFsaWQga2V5d29yZABlcnJvciB3cml0aW5nIGFuY2lsbGFyeSBjaHVua2VkIGNvbXByZXNzZWQgZGF0YQBjb21wcmVzc2VkIGRhdGEgdG9vIGxvbmcAa2V5d29yZCB0cnVuY2F0ZWQAa2V5d29yZCAiQDEiOiBiYWQgY2hhcmFjdGVyICcweEAyJwAxMjM0NTY3ODkAc1BMVDogaW52YWxpZCBrZXl3b3JkAEludmFsaWQgc0JJVCBkZXB0aCBzcGVjaWZpZWQASW52YWxpZCBudW1iZXIgb2YgdHJhbnNwYXJlbnQgY29sb3JzIHNwZWNpZmllZABJZ25vcmluZyBhdHRlbXB0IHRvIHdyaXRlIHRSTlMgY2h1bmsgb3V0LW9mLXJhbmdlIGZvciBiaXRfZGVwdGgASWdub3JpbmcgYXR0ZW1wdCB0byB3cml0ZSAxNi1iaXQgdFJOUyBjaHVuayB3aGVuIGJpdF9kZXB0aCBpcyA4AENhbid0IHdyaXRlIHRSTlMgd2l0aCBhbiBhbHBoYSBjaGFubmVsAEludmFsaWQgYmFja2dyb3VuZCBwYWxldHRlIGluZGV4AElnbm9yaW5nIGF0dGVtcHQgdG8gd3JpdGUgMTYtYml0IGJLR0QgY2h1bmsgd2hlbiBiaXRfZGVwdGggaXMgOABJZ25vcmluZyBhdHRlbXB0IHRvIHdyaXRlIGJLR0QgY2h1bmsgb3V0LW9mLXJhbmdlIGZvciBiaXRfZGVwdGgASW52YWxpZCBudW1iZXIgb2YgaGlzdG9ncmFtIGVudHJpZXMgc3BlY2lmaWVkAHRFWHQ6IGludmFsaWQga2V5d29yZAB0RVh0OiB0ZXh0IHRvbyBsb25nAHpUWHQ6IGludmFsaWQgY29tcHJlc3Npb24gdHlwZQB6VFh0OiBpbnZhbGlkIGtleXdvcmQAaVRYdDogaW52YWxpZCBrZXl3b3JkAGlUWHQ6IGludmFsaWQgY29tcHJlc3Npb24AaVRYdDogdW5jb21wcmVzc2VkIHRleHQgdG9vIGxvbmcAVW5yZWNvZ25pemVkIHVuaXQgdHlwZSBmb3Igb0ZGcyBjaHVuawBVbnJlY29nbml6ZWQgZXF1YXRpb24gdHlwZSBmb3IgcENBTCBjaHVuawBwQ0FMOiBpbnZhbGlkIGtleXdvcmQAQ2FuJ3Qgd3JpdGUgc0NBTCAoYnVmZmVyIHRvbyBzbWFsbCkAVW5yZWNvZ25pemVkIHVuaXQgdHlwZSBmb3IgcEhZcyBjaHVuawBJbnZhbGlkIHRpbWUgc3BlY2lmaWVkIGZvciB0SU1FIGNodW5rAENSQyBlcnJvcgBOVUxMIHJvdyBidWZmZXIAVW5pbml0aWFsaXplZCByb3cAcG5nX2RvX3JnYl90b19ncmF5IGZvdW5kIG5vbmdyYXkgcGl4ZWwAcG5nX2RvX2VuY29kZV9hbHBoYTogdW5leHBlY3RlZCBjYWxsAHBuZ19kb19xdWFudGl6ZSByZXR1cm5lZCByb3dieXRlcz0wAFBORyB1bnNpZ25lZCBpbnRlZ2VyIG91dCBvZiByYW5nZQBubyBzcGFjZSBpbiBjaHVuayBjYWNoZQBtaXNzaW5nIElIRFIAaW5zdWZmaWNpZW50IG1lbW9yeSB0byByZWFkIGNodW5rAG91dCBvZiBtZW1vcnkAdHJ1bmNhdGVkAGJhZCBjb21wcmVzc2lvbiBpbmZvAGJhZCBrZXl3b3JkAHpzdHJlYW0gdW5jbGFpbWVkAGV4dHJhIGNvbXByZXNzZWQgZGF0YQAgdXNpbmcgenN0cmVhbQAxLjIuOAB1bmtub3duIGNvbXByZXNzaW9uIHR5cGUASW5zdWZmaWNpZW50IG1lbW9yeSB0byBwcm9jZXNzIHRleHQgY2h1bmsAZHVwbGljYXRlAGludmFsaWQAb3V0IG9mIHBsYWNlAGludmFsaWQgdW5pdABiYWQgd2lkdGggZm9ybWF0AG5vbi1wb3NpdGl2ZSB3aWR0aABiYWQgaGVpZ2h0IGZvcm1hdABub24tcG9zaXRpdmUgaGVpZ2h0AGludmFsaWQgcGFyYW1ldGVyIGNvdW50AHVucmVjb2duaXplZCBlcXVhdGlvbiB0eXBlAGludmFsaWQgZGF0YQBpbnZhbGlkIGluZGV4AGludmFsaWQgd2l0aCBhbHBoYSBjaGFubmVsAE5vIHNwYWNlIGluIGNodW5rIGNhY2hlIGZvciBzUExUAG1hbGZvcm1lZCBzUExUIGNodW5rAHNQTFQgY2h1bmsgaGFzIGJhZCBsZW5ndGgAc1BMVCBjaHVuayB0b28gbG9uZwBzUExUIGNodW5rIHJlcXVpcmVzIHRvbyBtdWNoIG1lbW9yeQB0b28gc2hvcnQAYmFkIGNvbXByZXNzaW9uIG1ldGhvZAB0b28gbWFueSBwcm9maWxlcwBpbnZhbGlkIHZhbHVlcwBpZ25vcmVkIGluIGdyYXlzY2FsZSBQTkcAdFJOUyBtdXN0IGJlIGFmdGVyAGhJU1QgbXVzdCBiZSBhZnRlcgBiS0dEIG11c3QgYmUgYWZ0ZXIAZXJyb3IgaW4gdXNlciBjaHVuawBTYXZpbmcgdW5rbm93biBjaHVuazoAZm9yY2luZyBzYXZlIG9mIGFuIHVuaGFuZGxlZCBjaHVuazsgcGxlYXNlIGNhbGwgcG5nX3NldF9rZWVwX3Vua25vd25fY2h1bmtzAHVuaGFuZGxlZCBjcml0aWNhbCBjaHVuawB1bmtub3duIGNodW5rIGV4Y2VlZHMgbWVtb3J5IGxpbWl0cwBpbnZhbGlkIGNodW5rIHR5cGUAiVBORw0KGgppbnRlcm5hbCByb3cgbG9naWMgZXJyb3IAaW50ZXJuYWwgcm93IHNpemUgY2FsY3VsYXRpb24gZXJyb3IAaW50ZXJuYWwgcm93IHdpZHRoIGVycm9yAGludmFsaWQgdXNlciB0cmFuc2Zvcm0gcGl4ZWwgZGVwdGgATU5HIGZlYXR1cmVzIGFyZSBub3QgYWxsb3dlZCBpbiBhIFBORyBkYXRhc3RyZWFtAHByb2ZpbGUgbWF0Y2hlcyBzUkdCIGJ1dCB3cml0aW5nIGlDQ1AgaW5zdGVhZABXcml0aW5nIHplcm8tbGVuZ3RoIHVua25vd24gY2h1bmsAVmFsaWQgcGFsZXR0ZSByZXF1aXJlZCBmb3IgcGFsZXR0ZWQgaW1hZ2VzAE5vIElEQVRzIHdyaXR0ZW4gaW50byBmaWxlAFdyb3RlIHBhbGV0dGUgaW5kZXggZXhjZWVkaW5nIG51bV9wYWxldHRlAFBvdGVudGlhbCBvdmVyZmxvdyBpbiBwbmdfemFsbG9jKCkAMS42LjE3AEFwcGxpY2F0aW9uIGJ1aWx0IHdpdGggbGlicG5nLQAgYnV0IHJ1bm5pbmcgd2l0aCAAcG5nX3dyaXRlX2luZm8gd2FzIG5ldmVyIGNhbGxlZCBiZWZvcmUgcG5nX3dyaXRlX3JvdwBpbnRlcm5hbCB3cml0ZSB0cmFuc2Zvcm0gbG9naWMgZXJyb3IATWlzc2luZyBJSERSIGJlZm9yZSBJREFUAE1pc3NpbmcgUExURSBiZWZvcmUgSURBVABUb28gbWFueSBJREFUcyBmb3VuZABOb3QgYSBQTkcgZmlsZQBQTkcgZmlsZSBjb3JydXB0ZWQgYnkgQVNDSUkgY29udmVyc2lvbgBwbmdfcmVhZF91cGRhdGVfaW5mby9wbmdfc3RhcnRfcmVhZF9pbWFnZTogZHVwbGljYXRlIGNhbGwAUGFsZXR0ZSBpcyBOVUxMIGluIGluZGV4ZWQgaW1hZ2UACAgEBAICAQAEAAIAAQBSb3cgaGFzIHRvbyBtYW55IGJ5dGVzIHRvIGFsbG9jYXRlIGluIG1lbW9yeQBsaWJwbmcgZG9lcyBub3Qgc3VwcG9ydCBnYW1tYStiYWNrZ3JvdW5kK3JnYl90b19ncmF5AGludmFsaWQgYmFja2dyb3VuZCBnYW1tYSB0eXBlAGdhbW1hIHRhYmxlIGJlaW5nIHJlYnVpbHQAaW50ZXJuYWwgZXJyb3IgaGFuZGxpbmcgY0hSTSBjb2VmZmljaWVudHMAaW50ZXJuYWwgZXJyb3IgaGFuZGxpbmcgY0hSTS0+WFlaAHBuZ19zdGFydF9yZWFkX2ltYWdlL3BuZ19yZWFkX3VwZGF0ZV9pbmZvOiBkdXBsaWNhdGUgY2FsbABJbnZhbGlkIGF0dGVtcHQgdG8gcmVhZCByb3cgZGF0YQBiYWQgYWRhcHRpdmUgZmlsdGVyIHZhbHVlAHNlcXVlbnRpYWwgcm93IG92ZXJmbG93AGludGVybmFsIHNlcXVlbnRpYWwgcm93IHNpemUgY2FsY3VsYXRpb24gZXJyb3IATm90IGVub3VnaCBpbWFnZSBkYXRhAEV4dHJhIGNvbXByZXNzZWQgZGF0YQBUb28gbXVjaCBpbWFnZSBkYXRhAAgICAQEAgIAAAQAAgABSW50ZXJsYWNlIGhhbmRsaW5nIHNob3VsZCBiZSB0dXJuZWQgb24gd2hlbiB1c2luZyBwbmdfcmVhZF9pbWFnZQBSZWFkIHBhbGV0dGUgaW5kZXggZXhjZWVkaW5nIG51bV9wYWxldHRlAGludmFsaWQgYWZ0ZXIgcG5nX3N0YXJ0X3JlYWRfaW1hZ2Ugb3IgcG5nX3JlYWRfdXBkYXRlX2luZm8AVG9vIG1hbnkgYnl0ZXMgZm9yIFBORyBzaWduYXR1cmUAZ2FtbWEgdmFsdWUAaW52YWxpZCBmaWxlIGdhbW1hIGluIHBuZ19zZXRfZ2FtbWEAaW52YWxpZCBzY3JlZW4gZ2FtbWEgaW4gcG5nX3NldF9nYW1tYQBpbmNvcnJlY3QgaGVhZGVyIGNoZWNrAHVua25vd24gY29tcHJlc3Npb24gbWV0aG9kAGludmFsaWQgd2luZG93IHNpemUAdW5rbm93biBoZWFkZXIgZmxhZ3Mgc2V0AGhlYWRlciBjcmMgbWlzbWF0Y2gAaW52YWxpZCBibG9jayB0eXBlAGludmFsaWQgc3RvcmVkIGJsb2NrIGxlbmd0aHMAdG9vIG1hbnkgbGVuZ3RoIG9yIGRpc3RhbmNlIHN5bWJvbHMAaW52YWxpZCBjb2RlIGxlbmd0aHMgc2V0AGludmFsaWQgYml0IGxlbmd0aCByZXBlYXQAaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGludmFsaWQgbGl0ZXJhbC9sZW5ndGhzIHNldABpbnZhbGlkIGRpc3RhbmNlcyBzZXQAaW5jb3JyZWN0IGRhdGEgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBuZWVkIGRpY3Rpb25hcnkAc3RyZWFtIGVuZABmaWxlIGVycm9yAHN0cmVhbSBlcnJvcgBkYXRhIGVycm9yAGluc3VmZmljaWVudCBtZW1vcnkAYnVmZmVyIGVycm9yAGluY29tcGF0aWJsZSB2ZXJzaW9uAGludmFsaWQgbGl0ZXJhbC9sZW5ndGggY29kZQBpbnZhbGlkIGRpc3RhbmNlIGNvZGUAaW52YWxpZCBkaXN0YW5jZSB0b28gZmFyIGJhY2sARVhUAEFSQgBPRVMAQU5HTEUAZ2xDcmVhdGVQcm9ncmFtT2JqZWN0AGdsQ3JlYXRlUHJvZ3JhbQBnbFVzZVByb2dyYW1PYmplY3QAZ2xVc2VQcm9ncmFtAGdsQ3JlYXRlU2hhZGVyT2JqZWN0AGdsQ3JlYXRlU2hhZGVyAGdsQXR0YWNoT2JqZWN0AGdsQXR0YWNoU2hhZGVyAGdsRGV0YWNoT2JqZWN0AGdsRGV0YWNoU2hhZGVyAGdsUGl4ZWxTdG9yZWkAZ2xHZXRTdHJpbmcAZ2xHZXRTdHJpbmdpAGdsR2V0SW50ZWdlcnYAZ2xHZXRGbG9hdHYAZ2xHZXRCb29sZWFudgBnbEdlblRleHR1cmVzAGdsRGVsZXRlVGV4dHVyZXMAZ2xDb21wcmVzc2VkVGV4SW1hZ2UyRABnbENvbXByZXNzZWRUZXhTdWJJbWFnZTJEAGdsVGV4SW1hZ2UyRABnbFRleFN1YkltYWdlMkQAZ2xUZXhJbWFnZTNEAGdsVGV4U3ViSW1hZ2UzRABnbFRleFN0b3JhZ2UyRABnbFRleFN0b3JhZ2UzRABnbFJlYWRQaXhlbHMAZ2xCaW5kVGV4dHVyZQBnbEdldFRleFBhcmFtZXRlcmZ2AGdsR2V0VGV4UGFyYW1ldGVyaXYAZ2xUZXhQYXJhbWV0ZXJpAGdsVGV4UGFyYW1ldGVyZgBnbFRleFBhcmFtZXRlcmZ2AGdsVGV4UGFyYW1ldGVyaXYAZ2xJc1RleHR1cmUAZ2xHZW5CdWZmZXJzAGdsRGVsZXRlQnVmZmVycwBnbEdldEJ1ZmZlclBhcmFtZXRlcml2AGdsQnVmZmVyRGF0YQBnbEJ1ZmZlclN1YkRhdGEAZ2xJc0J1ZmZlcgBnbEdlblJlbmRlcmJ1ZmZlcnMAZ2xEZWxldGVSZW5kZXJidWZmZXJzAGdsQmluZFJlbmRlcmJ1ZmZlcgBnbEdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcml2AGdsSXNSZW5kZXJidWZmZXIAZ2xHZXRVbmlmb3JtZnYAZ2xHZXRVbmlmb3JtaXYAZ2xHZXRVbmlmb3JtTG9jYXRpb24AZ2xHZXRWZXJ0ZXhBdHRyaWJmdgBnbEdldFZlcnRleEF0dHJpYml2AGdsR2V0VmVydGV4QXR0cmliUG9pbnRlcnYAZ2xHZXRBY3RpdmVVbmlmb3JtAGdsVW5pZm9ybTFmAGdsVW5pZm9ybTJmAGdsVW5pZm9ybTNmAGdsVW5pZm9ybTRmAGdsVW5pZm9ybTFpAGdsVW5pZm9ybTJpAGdsVW5pZm9ybTNpAGdsVW5pZm9ybTRpAGdsVW5pZm9ybTFpdgBnbFVuaWZvcm0yaXYAZ2xVbmlmb3JtM2l2AGdsVW5pZm9ybTRpdgBnbFVuaWZvcm0xZnYAZ2xVbmlmb3JtMmZ2AGdsVW5pZm9ybTNmdgBnbFVuaWZvcm00ZnYAZ2xVbmlmb3JtTWF0cml4MmZ2AGdsVW5pZm9ybU1hdHJpeDNmdgBnbFVuaWZvcm1NYXRyaXg0ZnYAZ2xCaW5kQnVmZmVyAGdsVmVydGV4QXR0cmliMWYAZ2xWZXJ0ZXhBdHRyaWIyZgBnbFZlcnRleEF0dHJpYjNmAGdsVmVydGV4QXR0cmliNGYAZ2xWZXJ0ZXhBdHRyaWIxZnYAZ2xWZXJ0ZXhBdHRyaWIyZnYAZ2xWZXJ0ZXhBdHRyaWIzZnYAZ2xWZXJ0ZXhBdHRyaWI0ZnYAZ2xHZXRBdHRyaWJMb2NhdGlvbgBnbEdldEFjdGl2ZUF0dHJpYgBnbERlbGV0ZVNoYWRlcgBnbEdldEF0dGFjaGVkU2hhZGVycwBnbFNoYWRlclNvdXJjZQBnbEdldFNoYWRlclNvdXJjZQBnbENvbXBpbGVTaGFkZXIAZ2xHZXRTaGFkZXJJbmZvTG9nAGdsR2V0U2hhZGVyaXYAZ2xHZXRQcm9ncmFtaXYAZ2xJc1NoYWRlcgBnbERlbGV0ZVByb2dyYW0AZ2xHZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQAZ2xMaW5rUHJvZ3JhbQBnbEdldFByb2dyYW1JbmZvTG9nAGdsVmFsaWRhdGVQcm9ncmFtAGdsSXNQcm9ncmFtAGdsQmluZEF0dHJpYkxvY2F0aW9uAGdsQmluZEZyYW1lYnVmZmVyAGdsR2VuRnJhbWVidWZmZXJzAGdsRGVsZXRlRnJhbWVidWZmZXJzAGdsRnJhbWVidWZmZXJSZW5kZXJidWZmZXIAZ2xGcmFtZWJ1ZmZlclRleHR1cmUyRABnbEdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcml2AGdsSXNGcmFtZWJ1ZmZlcgBnbERlbGV0ZU9iamVjdABnbEdldE9iamVjdFBhcmFtZXRlcml2AGdsR2V0SW5mb0xvZwBnbEJpbmRQcm9ncmFtAGdsR2V0UG9pbnRlcnYAZ2xEcmF3UmFuZ2VFbGVtZW50cwBnbEVuYWJsZUNsaWVudFN0YXRlAGdsVmVydGV4UG9pbnRlcgBnbFRleENvb3JkUG9pbnRlcgBnbE5vcm1hbFBvaW50ZXIAZ2xDb2xvclBvaW50ZXIAZ2xDbGllbnRBY3RpdmVUZXh0dXJlAGdsSXNWZXJ0ZXhBcnJheQBnbEdlblZlcnRleEFycmF5cwBnbERlbGV0ZVZlcnRleEFycmF5cwBnbEJpbmRWZXJ0ZXhBcnJheQBnbE1hdHJpeE1vZGUAZ2xMb2FkSWRlbnRpdHkAZ2xMb2FkTWF0cml4ZgBnbEZydXN0dW0AZ2xSb3RhdGVmAGdsVmVydGV4QXR0cmliUG9pbnRlcgBnbEVuYWJsZVZlcnRleEF0dHJpYkFycmF5AGdsRGlzYWJsZVZlcnRleEF0dHJpYkFycmF5AGdsRHJhd0FycmF5cwBnbERyYXdFbGVtZW50cwBnbFNoYWRlckJpbmFyeQBnbFJlbGVhc2VTaGFkZXJDb21waWxlcgBnbEdldEVycm9yAGdsVmVydGV4QXR0cmliRGl2aXNvcgBnbERyYXdBcnJheXNJbnN0YW5jZWQAZ2xEcmF3RWxlbWVudHNJbnN0YW5jZWQAZ2xGaW5pc2gAZ2xGbHVzaABnbENsZWFyRGVwdGgAZ2xDbGVhckRlcHRoZgBnbERlcHRoRnVuYwBnbEVuYWJsZQBnbERpc2FibGUAZ2xGcm9udEZhY2UAZ2xDdWxsRmFjZQBnbENsZWFyAGdsTGluZVdpZHRoAGdsQ2xlYXJTdGVuY2lsAGdsRGVwdGhNYXNrAGdsU3RlbmNpbE1hc2sAZ2xDaGVja0ZyYW1lYnVmZmVyU3RhdHVzAGdsR2VuZXJhdGVNaXBtYXAAZ2xBY3RpdmVUZXh0dXJlAGdsQmxlbmRFcXVhdGlvbgBnbElzRW5hYmxlZABnbEJsZW5kRnVuYwBnbEJsZW5kRXF1YXRpb25TZXBhcmF0ZQBnbERlcHRoUmFuZ2UAZ2xEZXB0aFJhbmdlZgBnbFN0ZW5jaWxNYXNrU2VwYXJhdGUAZ2xIaW50AGdsUG9seWdvbk9mZnNldABnbFNhbXBsZUNvdmVyYWdlAGdsU3RlbmNpbEZ1bmMAZ2xTdGVuY2lsT3AAZ2xWaWV3cG9ydABnbENsZWFyQ29sb3IAZ2xTY2lzc29yAGdsQ29sb3JNYXNrAGdsUmVuZGVyYnVmZmVyU3RvcmFnZQBnbEJsZW5kRnVuY1NlcGFyYXRlAGdsQmxlbmRDb2xvcgBnbFN0ZW5jaWxGdW5jU2VwYXJhdGUAZ2xTdGVuY2lsT3BTZXBhcmF0ZQBnbENvcHlUZXhJbWFnZTJEAGdsQ29weVRleFN1YkltYWdlMkQAZ2xEcmF3QnVmZmVycwBnbEdldFVuaWZvcm1JbmRpY2VzAGdsR2V0QWN0aXZlVW5pZm9ybXNpdgBnbEdldEFjdGl2ZVVuaWZvcm1OYW1lAGdsR2V0VW5pZm9ybUJsb2NrSW5kZXgAZ2xHZXRBY3RpdmVVbmlmb3JtQmxvY2tpdgBnbEdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUAZ2xVbmlmb3JtQmxvY2tCaW5kaW5nAGdsQ29sb3JNYXNraQBnbEdldEJvb2xlYW5pX3YAZ2xHZXRJbnRlZ2VyaV92AGdsRW5hYmxlaQBnbERpc2FibGVpAGdsSXNFbmFibGVkaQBnbEJlZ2luVHJhbnNmb3JtRmVlZGJhY2sAZ2xFbmRUcmFuc2Zvcm1GZWVkYmFjawBnbEJpbmRCdWZmZXJSYW5nZQBnbEJpbmRCdWZmZXJCYXNlAGdsVHJhbnNmb3JtRmVlZGJhY2tWYXJ5aW5ncwBnbEdldFRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZwBnbENsYW1wQ29sb3IAZ2xCZWdpbkNvbmRpdGlvbmFsUmVuZGVyAGdsRW5kQ29uZGl0aW9uYWxSZW5kZXIAZ2xWZXJ0ZXhBdHRyaWJJUG9pbnRlcgBnbEdldFZlcnRleEF0dHJpYklpdgBnbEdldFZlcnRleEF0dHJpYkl1aXYAZ2xWZXJ0ZXhBdHRyaWJJMWkAZ2xWZXJ0ZXhBdHRyaWJJMmkAZ2xWZXJ0ZXhBdHRyaWJJM2kAZ2xWZXJ0ZXhBdHRyaWJJNGkAZ2xWZXJ0ZXhBdHRyaWJJMXVpAGdsVmVydGV4QXR0cmliSTJ1aQBnbFZlcnRleEF0dHJpYkkzdWkAZ2xWZXJ0ZXhBdHRyaWJJNHVpAGdsVmVydGV4QXR0cmliSTFpdgBnbFZlcnRleEF0dHJpYkkyaXYAZ2xWZXJ0ZXhBdHRyaWJJM2l2AGdsVmVydGV4QXR0cmliSTRpdgBnbFZlcnRleEF0dHJpYkkxdWl2AGdsVmVydGV4QXR0cmliSTJ1aXYAZ2xWZXJ0ZXhBdHRyaWJJM3VpdgBnbFZlcnRleEF0dHJpYkk0dWl2AGdsVmVydGV4QXR0cmliSTRidgBnbFZlcnRleEF0dHJpYkk0c3YAZ2xWZXJ0ZXhBdHRyaWJJNHVidgBnbFZlcnRleEF0dHJpYkk0dXN2AGdsR2V0VW5pZm9ybXVpdgBnbEJpbmRGcmFnRGF0YUxvY2F0aW9uAGdsR2V0RnJhZ0RhdGFMb2NhdGlvbgBnbFVuaWZvcm0xdWkAZ2xVbmlmb3JtMnVpAGdsVW5pZm9ybTN1aQBnbFVuaWZvcm00dWkAZ2xUZXhQYXJhbWV0ZXJJaXYAZ2xUZXhQYXJhbWV0ZXJJdWl2AGdsR2V0VGV4UGFyYW1ldGVySWl2AGdsR2V0VGV4UGFyYW1ldGVySXVpdgBnbENsZWFyQnVmZmVyaXYAZ2xDbGVhckJ1ZmZlcnVpdgBnbENsZWFyQnVmZmVyZnYAZ2xDbGVhckJ1ZmZlcmZpAAABAgQHAwYFAC0rICAgMFgweAAobnVsbCkALTBYKzBYIDBYLTB4KzB4IDB4AGluZgBJTkYATkFOAC4AaW5maW5pdHkAbmFuAExDX0FMTABMQU5HAEMuVVRGLTgAUE9TSVgATVVTTF9MT0NQQVRIAC9wcm9jL3NlbGYvZmQvAHJ3YQBOU3QzX18yOGlvc19iYXNlRQBOU3QzX18yOWJhc2ljX2lvc0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRQBOU3QzX18yOWJhc2ljX2lvc0l3TlNfMTFjaGFyX3RyYWl0c0l3RUVFRQBOU3QzX18yMTViYXNpY19zdHJlYW1idWZJY05TXzExY2hhcl90cmFpdHNJY0VFRUUATlN0M19fMjE1YmFzaWNfc3RyZWFtYnVmSXdOU18xMWNoYXJfdHJhaXRzSXdFRUVFAE5TdDNfXzIxM2Jhc2ljX2lzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFRUUATlN0M19fMjEzYmFzaWNfaXN0cmVhbUl3TlNfMTFjaGFyX3RyYWl0c0l3RUVFRQBOU3QzX18yMTNiYXNpY19vc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFAE5TdDNfXzIxM2Jhc2ljX29zdHJlYW1Jd05TXzExY2hhcl90cmFpdHNJd0VFRUUATlN0M19fMjE0YmFzaWNfaW9zdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFRUUATlN0M19fMjExX19zdGRvdXRidWZJd0VFAE5TdDNfXzIxMV9fc3Rkb3V0YnVmSWNFRQB1bnN1cHBvcnRlZCBsb2NhbGUgZm9yIHN0YW5kYXJkIGlucHV0AE5TdDNfXzIxMF9fc3RkaW5idWZJd0VFAE5TdDNfXzIxMF9fc3RkaW5idWZJY0VFAE5TdDNfXzI3Y29sbGF0ZUljRUUATlN0M19fMjZsb2NhbGU1ZmFjZXRFAE5TdDNfXzI3Y29sbGF0ZUl3RUUAJXAAQwBOU3QzX18yN251bV9nZXRJY05TXzE5aXN0cmVhbWJ1Zl9pdGVyYXRvckljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRUVFAE5TdDNfXzI5X19udW1fZ2V0SWNFRQBOU3QzX18yMTRfX251bV9nZXRfYmFzZUUATlN0M19fMjdudW1fZ2V0SXdOU18xOWlzdHJlYW1idWZfaXRlcmF0b3JJd05TXzExY2hhcl90cmFpdHNJd0VFRUVFRQBOU3QzX18yOV9fbnVtX2dldEl3RUUAJXAAAAAATABsbAAlAAAAAABsAE5TdDNfXzI3bnVtX3B1dEljTlNfMTlvc3RyZWFtYnVmX2l0ZXJhdG9ySWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFRUUATlN0M19fMjlfX251bV9wdXRJY0VFAE5TdDNfXzIxNF9fbnVtX3B1dF9iYXNlRQBOU3QzX18yN251bV9wdXRJd05TXzE5b3N0cmVhbWJ1Zl9pdGVyYXRvckl3TlNfMTFjaGFyX3RyYWl0c0l3RUVFRUVFAE5TdDNfXzI5X19udW1fcHV0SXdFRQAlSDolTTolUwAlbS8lZC8leQAlSTolTTolUyAlcAAlYSAlYiAlZCAlSDolTTolUyAlWQBBTQBQTQBKYW51YXJ5AEZlYnJ1YXJ5AE1hcmNoAEFwcmlsAE1heQBKdW5lAEp1bHkAQXVndXN0AFNlcHRlbWJlcgBPY3RvYmVyAE5vdmVtYmVyAERlY2VtYmVyAEphbgBGZWIATWFyAEFwcgBKdW4ASnVsAEF1ZwBTZXAAT2N0AE5vdgBEZWMAU3VuZGF5AE1vbmRheQBUdWVzZGF5AFdlZG5lc2RheQBUaHVyc2RheQBGcmlkYXkAU2F0dXJkYXkAU3VuAE1vbgBUdWUAV2VkAFRodQBGcmkAU2F0ACVtLyVkLyV5JVktJW0tJWQlSTolTTolUyAlcCVIOiVNJUg6JU06JVMlSDolTTolU05TdDNfXzI4dGltZV9nZXRJY05TXzE5aXN0cmVhbWJ1Zl9pdGVyYXRvckljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRUVFAE5TdDNfXzIyMF9fdGltZV9nZXRfY19zdG9yYWdlSWNFRQBOU3QzX18yOXRpbWVfYmFzZUUATlN0M19fMjh0aW1lX2dldEl3TlNfMTlpc3RyZWFtYnVmX2l0ZXJhdG9ySXdOU18xMWNoYXJfdHJhaXRzSXdFRUVFRUUATlN0M19fMjIwX190aW1lX2dldF9jX3N0b3JhZ2VJd0VFAE5TdDNfXzI4dGltZV9wdXRJY05TXzE5b3N0cmVhbWJ1Zl9pdGVyYXRvckljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRUVFAE5TdDNfXzIxMF9fdGltZV9wdXRFAE5TdDNfXzI4dGltZV9wdXRJd05TXzE5b3N0cmVhbWJ1Zl9pdGVyYXRvckl3TlNfMTFjaGFyX3RyYWl0c0l3RUVFRUVFAE5TdDNfXzIxMG1vbmV5cHVuY3RJY0xiMEVFRQBOU3QzX18yMTBtb25leV9iYXNlRQBOU3QzX18yMTBtb25leXB1bmN0SWNMYjFFRUUATlN0M19fMjEwbW9uZXlwdW5jdEl3TGIwRUVFAE5TdDNfXzIxMG1vbmV5cHVuY3RJd0xiMUVFRQAwMTIzNDU2Nzg5ACVMZgBOU3QzX18yOW1vbmV5X2dldEljTlNfMTlpc3RyZWFtYnVmX2l0ZXJhdG9ySWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFRUUATlN0M19fMjExX19tb25leV9nZXRJY0VFADAxMjM0NTY3ODkATlN0M19fMjltb25leV9nZXRJd05TXzE5aXN0cmVhbWJ1Zl9pdGVyYXRvckl3TlNfMTFjaGFyX3RyYWl0c0l3RUVFRUVFAE5TdDNfXzIxMV9fbW9uZXlfZ2V0SXdFRQAlLjBMZgBOU3QzX18yOW1vbmV5X3B1dEljTlNfMTlvc3RyZWFtYnVmX2l0ZXJhdG9ySWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFRUUATlN0M19fMjExX19tb25leV9wdXRJY0VFAE5TdDNfXzI5bW9uZXlfcHV0SXdOU18xOW9zdHJlYW1idWZfaXRlcmF0b3JJd05TXzExY2hhcl90cmFpdHNJd0VFRUVFRQBOU3QzX18yMTFfX21vbmV5X3B1dEl3RUUATlN0M19fMjhtZXNzYWdlc0ljRUUATlN0M19fMjEzbWVzc2FnZXNfYmFzZUUATlN0M19fMjE3X193aWRlbl9mcm9tX3V0ZjhJTG0zMkVFRQBOU3QzX18yN2NvZGVjdnRJRGljMTFfX21ic3RhdGVfdEVFAE5TdDNfXzIxMmNvZGVjdnRfYmFzZUUATlN0M19fMjE2X19uYXJyb3dfdG9fdXRmOElMbTMyRUVFAE5TdDNfXzI4bWVzc2FnZXNJd0VFAE5TdDNfXzI3Y29kZWN2dEljYzExX19tYnN0YXRlX3RFRQBOU3QzX18yN2NvZGVjdnRJd2MxMV9fbWJzdGF0ZV90RUUATlN0M19fMjdjb2RlY3Z0SURzYzExX19tYnN0YXRlX3RFRQBOU3QzX18yNmxvY2FsZTVfX2ltcEUATlN0M19fMjVjdHlwZUljRUUATlN0M19fMjEwY3R5cGVfYmFzZUUATlN0M19fMjVjdHlwZUl3RUUAZmFsc2UAdHJ1ZQBOU3QzX18yOG51bXB1bmN0SWNFRQBOU3QzX18yOG51bXB1bmN0SXdFRQBOU3QzX18yMTRfX3NoYXJlZF9jb3VudEUAdGVybWluYXRpbmcgd2l0aCAlcyBleGNlcHRpb24gb2YgdHlwZSAlczogJXMAdGVybWluYXRpbmcgd2l0aCAlcyBleGNlcHRpb24gb2YgdHlwZSAlcwB0ZXJtaW5hdGluZyB3aXRoICVzIGZvcmVpZ24gZXhjZXB0aW9uAHRlcm1pbmF0aW5nAHVuY2F1Z2h0AFN0OWV4Y2VwdGlvbgBOMTBfX2N4eGFiaXYxMTZfX3NoaW1fdHlwZV9pbmZvRQBTdDl0eXBlX2luZm8ATjEwX19jeHhhYml2MTIwX19zaV9jbGFzc190eXBlX2luZm9FAE4xMF9fY3h4YWJpdjExN19fY2xhc3NfdHlwZV9pbmZvRQBwdGhyZWFkX29uY2UgZmFpbHVyZSBpbiBfX2N4YV9nZXRfZ2xvYmFsc19mYXN0KCkAY2Fubm90IGNyZWF0ZSBwdGhyZWFkIGtleSBmb3IgX19jeGFfZ2V0X2dsb2JhbHMoKQBjYW5ub3QgemVybyBvdXQgdGhyZWFkIHZhbHVlIGZvciBfX2N4YV9nZXRfZ2xvYmFscygpAHRlcm1pbmF0ZV9oYW5kbGVyIHVuZXhwZWN0ZWRseSByZXR1cm5lZABTdDExbG9naWNfZXJyb3IAU3QxMmxlbmd0aF9lcnJvcgBzdGQ6OmJhZF9jYXN0AFN0OGJhZF9jYXN0AHN0ZDo6YmFkX3R5cGVpZABTdDEwYmFkX3R5cGVpZABOMTBfX2N4eGFiaXYxMTlfX3BvaW50ZXJfdHlwZV9pbmZvRQBOMTBfX2N4eGFiaXYxMTdfX3BiYXNlX3R5cGVfaW5mb0UATjEwX19jeHhhYml2MTIzX19mdW5kYW1lbnRhbF90eXBlX2luZm9FAHYARG4AYwBzAHQAaQBqAG0AZgBkAE4xMF9fY3h4YWJpdjEyMV9fdm1pX2NsYXNzX3R5cGVfaW5mb0U=";var tempDoublePtr=STATICTOP;STATICTOP+=16;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+Pointer_stringify(condition)+", at: "+[filename?Pointer_stringify(filename):"unknown filename",line,func?Pointer_stringify(func):"unknown function"])}var ENV={};function ___buildEnvironment(environ){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.UTF-8";ENV["_"]=Module["thisProgram"];poolPtr=getMemory(TOTAL_ENV_SIZE);envPtr=getMemory(MAX_ENV_VALUES*4);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<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}function ___cxa_allocate_exception(size){return _malloc(size)}var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:(function(adjusted){if(!adjusted||EXCEPTIONS.infos[adjusted])return adjusted;for(var key in EXCEPTIONS.infos){var ptr=+key;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&&!info.rethrown){if(info.destructor){Module["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 ___cxa_begin_catch(ptr){var info=EXCEPTIONS.infos[ptr];if(info&&!info.caught){info.caught=true;__ZSt18uncaught_exceptionv.uncaught_exception--}if(info)info.rethrown=false;EXCEPTIONS.caught.push(ptr);EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr));return ptr}function ___cxa_pure_virtual(){ABORT=true;throw"Pure virtual function called!"}function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=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(setTempRet0(0),0)|0}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(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<typeArray.length;i++){if(typeArray[i]&&Module["___cxa_can_catch"](typeArray[i],throwntype,thrown)){thrown=HEAP32[thrown>>2];info.adjusted=thrown;return(setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};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 ___cxa_uncaught_exception(){return!!__ZSt18uncaught_exceptionv.uncaught_exception}function ___gxx_personality_v0(){}function ___lock(){}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 ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}function ___map_file(pathname,size){___setErrNo(ERRNO_CODES.EPERM);return-1}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)}),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<arr.length;start++){if(arr[start]!=="")break}var end=arr.length-1;for(;end>=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;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push("..")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/")})};var TTY={ttys:[],init:(function(){}),shutdown:(function(){}),register:(function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)}),stream_ops:{open:(function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}stream.tty=tty;stream.seekable=false}),close:(function(stream){stream.tty.ops.flush(stream.tty)}),flush:(function(stream){stream.tty.ops.flush(stream.tty)}),read:(function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(ERRNO_CODES.ENXIO)}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty)}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(ERRNO_CODES.EAGAIN)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead}),write:(function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(ERRNO_CODES.ENXIO)}for(var i=0;i<length;i++){try{stream.tty.ops.put_char(stream.tty,buffer[offset+i])}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}}if(length){stream.node.timestamp=Date.now()}return i})},default_tty_ops:{get_char:(function(tty){if(!tty.input.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=new Buffer(BUFSIZE);var bytesRead=0;var isPosixPlatform=process.platform!="win32";var fd=process.stdin.fd;if(isPosixPlatform){var usingDevice=false;try{fd=fs.openSync("/dev/stdin","r");usingDevice=true}catch(e){}}try{bytesRead=fs.readSync(fd,buf,0,BUFSIZE,null)}catch(e){if(e.toString().indexOf("EOF")!=-1)bytesRead=0;else throw e}if(usingDevice){fs.closeSync(fd)}if(bytesRead>0){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){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}})},default_tty1_ops:{put_char:(function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){err(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;i<node.usedBytes;++i)arr.push(node.contents[i]);return arr}return node.contents}),getFileDataAsTypedArray:(function(node){if(!node.contents)return new Uint8Array;if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)}),expandFileStorage:(function(node,newCapacity){if(node.contents&&node.contents.subarray&&newCapacity>node.contents.length){node.contents=MEMFS.getFileDataAsRegularArray(node);node.usedBytes=node.contents.length}if(!node.contents||node.contents.subarray){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)|0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return}if(!node.contents&&newCapacity>0)node.contents=[];while(node.contents.length<newCapacity)node.contents.push(0)}),resizeFileStorage:(function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0;return}if(!node.contents||node.contents.subarray){var oldContents=node.contents;node.contents=new Uint8Array(new ArrayBuffer(newSize));if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize;return}if(!node.contents)node.contents=[];if(node.contents.length>newSize)node.contents.length=newSize;else while(node.contents.length<newSize)node.contents.push(0);node.usedBytes=newSize}),node_ops:{getattr:(function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr}),setattr:(function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}}),lookup:(function(parent,name){throw FS.genericErrors[ERRNO_CODES.ENOENT]}),mknod:(function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)}),rename:(function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}}}delete old_node.parent.contents[old_node.name];old_node.name=new_name;new_dir.contents[new_name]=old_node;old_node.parent=new_dir}),unlink:(function(parent,name){delete parent.contents[name]}),rmdir:(function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}delete parent.contents[name]}),readdir:(function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries}),symlink:(function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node}),readlink:(function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return node.link})},stream_ops:{read:(function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=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;i<size;i++)buffer[offset+i]=contents[position+i]}return size}),write:(function(stream,buffer,offset,length,position,canOwn){if(!length)return 0;var node=stream.node;node.timestamp=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length}else if(node.usedBytes===0&&position===0){node.contents=new Uint8Array(buffer.subarray(offset,offset+length));node.usedBytes=length;return length}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray)node.contents.set(buffer.subarray(offset,offset+length),position);else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i]}}node.usedBytes=Math.max(node.usedBytes,position+length);return length}),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.usedBytes}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position}),allocate:(function(stream,offset,length){MEMFS.expandFileStorage(stream.node,offset+length);stream.node.usedBytes=Math.max(stream.node.usedBytes,offset+length)}),mmap:(function(stream,buffer,offset,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&(contents.buffer===buffer||contents.buffer===buffer.buffer)){allocated=false;ptr=contents.byteOffset}else{if(position>0||position+length<stream.node.usedBytes){if(contents.subarray){contents=contents.subarray(position,position+length)}else{contents=Array.prototype.slice.call(contents,position,position+length)}}allocated=true;ptr=_malloc(length);if(!ptr){throw new FS.ErrnoError(ERRNO_CODES.ENOMEM)}buffer.set(contents,ptr)}return{ptr:ptr,allocated:allocated}}),msync:(function(stream,buffer,offset,length,mmapFlags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}if(mmapFlags&2){return 0}var bytesWritten=MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0})}};var IDBFS={dbs:{},indexedDB:(function(){if(typeof indexedDB!=="undefined")return indexedDB;var ret=null;if(typeof window==="object")ret=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB;assert(ret,"IDBFS used, but indexedDB not supported");return ret}),DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:(function(mount){return MEMFS.mount.apply(null,arguments)}),syncfs:(function(mount,populate,callback){IDBFS.getLocalSet(mount,(function(err,local){if(err)return callback(err);IDBFS.getRemoteSet(mount,(function(err,remote){if(err)return callback(err);var src=populate?remote:local;var dst=populate?local:remote;IDBFS.reconcile(src,dst,callback)}))}))}),getDB:(function(name,callback){var db=IDBFS.dbs[name];if(db){return callback(null,db)}var req;try{req=IDBFS.indexedDB().open(name,IDBFS.DB_VERSION)}catch(e){return callback(e)}if(!req){return callback("Unable to connect to IndexedDB")}req.onupgradeneeded=(function(e){var db=e.target.result;var transaction=e.target.transaction;var fileStore;if(db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)){fileStore=transaction.objectStore(IDBFS.DB_STORE_NAME)}else{fileStore=db.createObjectStore(IDBFS.DB_STORE_NAME)}if(!fileStore.indexNames.contains("timestamp")){fileStore.createIndex("timestamp","timestamp",{unique:false})}});req.onsuccess=(function(){db=req.result;IDBFS.dbs[name]=db;callback(null,db)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),getLocalSet:(function(mount,callback){var entries={};function isRealDir(p){return p!=="."&&p!==".."}function toAbsolute(root){return(function(p){return PATH.join2(root,p)})}var check=FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint));while(check.length){var path=check.pop();var stat;try{stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){check.push.apply(check,FS.readdir(path).filter(isRealDir).map(toAbsolute(path)))}entries[path]={timestamp:stat.mtime}}return callback(null,{type:"local",entries:entries})}),getRemoteSet:(function(mount,callback){var entries={};IDBFS.getDB(mount.mountpoint,(function(err,db){if(err)return callback(err);try{var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readonly");transaction.onerror=(function(e){callback(this.error);e.preventDefault()});var store=transaction.objectStore(IDBFS.DB_STORE_NAME);var index=store.index("timestamp");index.openKeyCursor().onsuccess=(function(event){var cursor=event.target.result;if(!cursor){return callback(null,{type:"remote",db:db,entries:entries})}entries[cursor.primaryKey]={timestamp:cursor.key};cursor.continue()})}catch(e){return callback(e)}}))}),loadLocalEntry:(function(path,callback){var stat,node;try{var lookup=FS.lookupPath(path);node=lookup.node;stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){return callback(null,{timestamp:stat.mtime,mode:stat.mode})}else if(FS.isFile(stat.mode)){node.contents=MEMFS.getFileDataAsTypedArray(node);return callback(null,{timestamp:stat.mtime,mode:stat.mode,contents:node.contents})}else{return callback(new Error("node type not supported"))}}),storeLocalEntry:(function(path,entry,callback){try{if(FS.isDir(entry.mode)){FS.mkdir(path,entry.mode)}else if(FS.isFile(entry.mode)){FS.writeFile(path,entry.contents,{canOwn:true})}else{return callback(new Error("node type not supported"))}FS.chmod(path,entry.mode);FS.utime(path,entry.timestamp,entry.timestamp)}catch(e){return callback(e)}callback(null)}),removeLocalEntry:(function(path,callback){try{var lookup=FS.lookupPath(path);var stat=FS.stat(path);if(FS.isDir(stat.mode)){FS.rmdir(path)}else if(FS.isFile(stat.mode)){FS.unlink(path)}}catch(e){return callback(e)}callback(null)}),loadRemoteEntry:(function(store,path,callback){var req=store.get(path);req.onsuccess=(function(event){callback(null,event.target.result)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),storeRemoteEntry:(function(store,path,entry,callback){var req=store.put(entry,path);req.onsuccess=(function(){callback(null)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),removeRemoteEntry:(function(store,path,callback){var req=store.delete(path);req.onsuccess=(function(){callback(null)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),reconcile:(function(src,dst,callback){var total=0;var create=[];Object.keys(src.entries).forEach((function(key){var e=src.entries[key];var e2=dst.entries[key];if(!e2||e.timestamp>e2.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 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/);var flags=process["binding"]("constants");if(flags["fs"]){flags=flags["fs"]}NODEFS.flagsForNodeMap={"1024":flags["O_APPEND"],"64":flags["O_CREAT"],"128":flags["O_EXCL"],"0":flags["O_RDONLY"],"2":flags["O_RDWR"],"4096":flags["O_SYNC"],"512":flags["O_TRUNC"],"1":flags["O_WRONLY"]}}),bufferFrom:(function(arrayBuffer){return Buffer.alloc?Buffer.from(arrayBuffer):new Buffer(arrayBuffer)}),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&292)>>2}}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)}),flagsForNode:(function(flags){flags&=~2097152;flags&=~2048;flags&=~32768;flags&=~524288;var newFlags=0;for(var k in NODEFS.flagsForNodeMap){if(flags&k){newFlags|=NODEFS.flagsForNodeMap[k];flags^=k}}if(!flags){return newFlags}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.flagsForNode(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;try{return fs.readSync(stream.nfd,NODEFS.bufferFrom(buffer.buffer),offset,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),write:(function(stream,buffer,offset,length,position){try{return fs.writeSync(stream.nfd,NODEFS.bufferFrom(buffer.buffer),offset,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){try{var stat=fs.fstatSync(stream.nfd);position+=stat.size}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position})}};var WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:(function(mount){assert(ENVIRONMENT_IS_WORKER);if(!WORKERFS.reader)WORKERFS.reader=new FileReaderSync;var root=WORKERFS.createNode(null,"/",WORKERFS.DIR_MODE,0);var createdParents={};function ensureParent(path){var parts=path.split("/");var parent=root;for(var i=0;i<parts.length-1;i++){var curr=parts.slice(0,i+1).join("/");if(!createdParents[curr]){createdParents[curr]=WORKERFS.createNode(parent,parts[i],WORKERFS.DIR_MODE,0)}parent=createdParents[curr]}return parent}function base(path){var parts=path.split("/");return parts[parts.length-1]}Array.prototype.forEach.call(mount.opts["files"]||[],(function(file){WORKERFS.createNode(ensureParent(file.name),base(file.name),WORKERFS.FILE_MODE,0,file,file.lastModifiedDate)}));(mount.opts["blobs"]||[]).forEach((function(obj){WORKERFS.createNode(ensureParent(obj["name"]),base(obj["name"]),WORKERFS.FILE_MODE,0,obj["data"])}));(mount.opts["packages"]||[]).forEach((function(pack){pack["metadata"].files.forEach((function(file){var name=file.filename.substr(1);WORKERFS.createNode(ensureParent(name),base(name),WORKERFS.FILE_MODE,0,pack["blob"].slice(file.start,file.end))}))}));return root}),createNode:(function(parent,name,mode,dev,contents,mtime){var node=FS.createNode(parent,name,mode);node.mode=mode;node.node_ops=WORKERFS.node_ops;node.stream_ops=WORKERFS.stream_ops;node.timestamp=(mtime||new Date).getTime();assert(WORKERFS.FILE_MODE!==WORKERFS.DIR_MODE);if(mode===WORKERFS.FILE_MODE){node.size=contents.size;node.contents=contents}else{node.size=4096;node.contents={}}if(parent){parent.contents[name]=node}return node}),node_ops:{getattr:(function(node){return{dev:1,ino:undefined,mode:node.mode,nlink:1,uid:0,gid:0,rdev:undefined,size:node.size,atime:new Date(node.timestamp),mtime:new Date(node.timestamp),ctime:new Date(node.timestamp),blksize:4096,blocks:Math.ceil(node.size/4096)}}),setattr:(function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}}),lookup:(function(parent,name){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}),mknod:(function(parent,name,mode,dev){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),rename:(function(oldNode,newDir,newName){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),unlink:(function(parent,name){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),rmdir:(function(parent,name){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),readdir:(function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries}),symlink:(function(parent,newName,oldPath){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),readlink:(function(node){throw new FS.ErrnoError(ERRNO_CODES.EPERM)})},stream_ops:{read:(function(stream,buffer,offset,length,position){if(position>=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})}};STATICTOP+=16;STATICTOP+=16;STATICTOP+=16;var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,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;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break}current=FS.lookupNode(current,parts[i]);current_path=PATH.join2(current_path,parts[i]);if(FS.isMountpoint(current)){if(!islast||islast&&opts.follow_mount){current=current.mounted.root}}if(!islast||opts.follow){var count=0;while(FS.isLink(current.mode)){var link=FS.readlink(current_path);current_path=PATH.resolve(PATH.dirname(current_path),link);var lookup=FS.lookupPath(current_path,{recurse_count:opts.recurse_count});current=lookup.node;if(count++>40){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<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0}return(parentid+hash>>>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(FS.flagsToPermissionString(flags)!=="r"||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}FS.syncFSRequests++;if(FS.syncFSRequests>1){console.log("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(err){assert(FS.syncFSRequests>0);FS.syncFSRequests--;return callback(err)}function done(err){if(err){if(!done.errored){done.errored=true;return doCallback(err)}return}if(++completed>=mounts.length){doCallback(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)}),mkdirTree:(function(path,mode){var dirs=path.split("/");var d="";for(var i=0;i<dirs.length;++i){if(!dirs[i])continue;d+="/"+dirs[i];try{FS.mkdir(d,mode)}catch(e){if(e.errno!=ERRNO_CODES.EEXIST)throw e}}}),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){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;err("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(FS.isClosed(stream)){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}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)}stream.fd=null}),isClosed:(function(stream){return stream.fd===null}),llseek:(function(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}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(FS.isClosed(stream)){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}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=typeof position!=="undefined";if(!seeking){position=stream.position}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(FS.isClosed(stream)){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}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=typeof position!=="undefined";if(!seeking){position=stream.position}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(FS.isClosed(stream)){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}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(stream.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";var stream=FS.open(path,opts.flags,opts.mode);if(typeof data==="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)}),cwd:(function(){return FS.currentPath}),chdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}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];if(this.stack)Object.defineProperty(this,"stack",{value:(new Error).stack,writable:true})};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="<generic error, no 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;i<FS.streams.length;i++){var stream=FS.streams[i];if(!stream){continue}FS.close(stream)}}),getMode:(function(canRead,canWrite){var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode}),joinPath:(function(parts,forceRelative){var path=PATH.join.apply(null,parts);if(forceRelative&&path[0]=="/")path=path.substr(1);return path}),absolutePath:(function(relative,base){return PATH.resolve(base,relative)}),standardizePath:(function(path){return PATH.normalize(path)}),findObject:(function(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(ret.exists){return ret.object}else{___setErrNo(ret.error);return null}}),analyzePath:(function(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret}),createFolder:(function(parent,name,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.mkdir(path,mode)}),createPath:(function(parent,path,canRead,canWrite){parent=typeof parent==="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current}),createFile:(function(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)}),createDataFile:(function(parent,name,data,canRead,canWrite,canOwn){var path=name?PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name):parent;var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data==="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i)arr[i]=data.charCodeAt(i);data=arr}FS.chmod(node,mode|146);var stream=FS.open(node,"w");FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode)}return node}),createDevice:(function(parent,name,input,output){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:(function(stream){stream.seekable=false}),close:(function(stream){if(output&&output.buffer&&output.buffer.length){output(10)}}),read:(function(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input()}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(ERRNO_CODES.EAGAIN)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead}),write:(function(stream,buffer,offset,length,pos){for(var i=0;i<length;i++){try{output(buffer[offset+i])}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}}if(length){stream.node.timestamp=Date.now()}return i})});return FS.mkdev(path,mode,dev)}),createLink:(function(parent,name,target,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);return FS.symlink(target,path)}),forceLoadFile:(function(obj){if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;var success=true;if(typeof XMLHttpRequest!=="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else if(Module["read"]){try{obj.contents=intArrayFromString(Module["read"](obj.url),true);obj.usedBytes=obj.contents.length}catch(e){success=false}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}if(!success)___setErrNo(ERRNO_CODES.EIO);return success}),createLazyFile:(function(parent,name,url,canRead,canWrite){function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.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 usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";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]}));if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;console.log("LazyFiles on gzip forces download of the whole file when length is accessed")}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.defineProperties(lazyArray,{length:{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._length})},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.defineProperties(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<size;i++){buffer[offset+i]=contents[position+i]}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i)}}return size};node.stream_ops=stream_ops;return node}),createPreloadedFile:(function(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish){Browser.init();var fullname=name?PATH.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency("cp "+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}var handled=false;Module["preloadPlugins"].forEach((function(plugin){if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,(function(){if(onerror)onerror();removeRunDependency(dep)}));handled=true}}));if(!handled)finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){Browser.asyncLoad(url,(function(byteArray){processData(byteArray)}),onerror)}else{processData(url)}}),indexedDB:(function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB}),DB_NAME:(function(){return"EM_FS_"+window.location.pathname}),DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(function(paths,onload,onerror){onload=onload||(function(){});onerror=onerror||(function(){});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=function openRequest_onupgradeneeded(){console.log("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)};openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach((function(path){var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=function putRequest_onsuccess(){ok++;if(ok+fail==total)finish()};putRequest.onerror=function putRequest_onerror(){fail++;if(ok+fail==total)finish()}}));transaction.onerror=onerror};openRequest.onerror=onerror}),loadFilesFromDB:(function(paths,onload,onerror){onload=onload||(function(){});onerror=onerror||(function(){});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach((function(path){var getRequest=files.get(path);getRequest.onsuccess=function getRequest_onsuccess(){if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()};getRequest.onerror=function getRequest_onerror(){fail++;if(ok+fail==total)finish()}}));transaction.onerror=onerror};openRequest.onerror=onerror})};var SYSCALLS={DEFAULT_POLLMASK:5,mappings:{},umask:511,calculateAt:(function(dirfd,path){if(path[0]!=="/"){var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);dir=dirstream.path}path=PATH.join2(dir,path)}return path}),doStat:(function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-ERRNO_CODES.ENOTDIR}throw e}HEAP32[buf>>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);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len}),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<iovcnt;i++){var ptr=HEAP32[iov+i*8>>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<len)break}return ret}),doWritev:(function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>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 ___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;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 ___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}}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 ___syscall195(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr(),buf=SYSCALLS.get();return SYSCALLS.doStat(FS.stat,path,buf)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall197(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),buf=SYSCALLS.get();return SYSCALLS.doStat(FS.stat,stream.path,buf)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall220(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),dirp=SYSCALLS.get(),count=SYSCALLS.get();if(!stream.getdents){stream.getdents=FS.readdir(stream.path)}var pos=0;while(stream.getdents.length>0&&pos+268<=count){var id;var type;var name=stream.getdents.pop();if(name[0]==="."){id=1;type=4}else{var child=FS.lookupNode(stream.node,name);id=child.id;type=FS.isChrdev(child.mode)?2:FS.isDir(child.mode)?4:FS.isLink(child.mode)?10:8}HEAP32[dirp+pos>>2]=id;HEAP32[dirp+pos+4>>2]=stream.position;HEAP16[dirp+pos+8>>1]=268;HEAP8[dirp+pos+10>>0]=type;stringToUTF8(name,dirp+pos+11,256);pos+=268}return pos}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 ___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}}function ___syscall39(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr(),mode=SYSCALLS.get();return SYSCALLS.doMkdir(path,mode)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}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 ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),op=SYSCALLS.get();switch(op){case 21509:case 21505:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{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)};case 21523:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21524:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}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}}function ___syscall85(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr(),buf=SYSCALLS.get(),bufsize=SYSCALLS.get();return SYSCALLS.doReadlink(path,buf,bufsize)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall91(which,varargs){SYSCALLS.varargs=varargs;try{var addr=SYSCALLS.get(),len=SYSCALLS.get();var info=SYSCALLS.mappings[addr];if(!info)return 0;if(len===info.len){var stream=FS.getStream(info.fd);SYSCALLS.doMsync(addr,stream,len,info.flags);FS.munmap(stream);SYSCALLS.mappings[addr]=null;if(info.allocated){_free(info.malloc)}}return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___unlock(){}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_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<myTypes.length;++i){registerType(myTypes[i],myTypeConverters[i])}}var typeConverters=new Array(dependentTypes.length);var unregisteredTypes=[];var registered=0;dependentTypes.forEach((function(dt,i){if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push((function(){typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}}))}}));if(0===unregisteredTypes.length){onComplete(typeConverters)}}function registerType(rawType,registeredInstance,options){options=options||{};if(!("argPackAdvance"in registeredInstance)){throw new TypeError("registerType registeredInstance requires argPackAdvance")}var name=registeredInstance.name;if(!rawType){throwBindingError('type "'+name+'" must have a positive integer typeid pointer')}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError("Cannot register type '"+name+"' twice")}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach((function(cb){cb()}))}}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})}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+" instance already deleted")}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}});clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}}function runDestructor(handle){var $$=handle.$$;if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}this.$$.count.value-=1;var toDelete=0===this.$$.count.value;if(toDelete){runDestructor(this)}if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}}function ClassHandle_isDeleted(){return!this.$$.ptr}var delayFunction=undefined;var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}function init_ClassHandle(){ClassHandle.prototype["isAliasOf"]=ClassHandle_isAliasOf;ClassHandle.prototype["clone"]=ClassHandle_clone;ClassHandle.prototype["delete"]=ClassHandle_delete;ClassHandle.prototype["isDeleted"]=ClassHandle_isDeleted;ClassHandle.prototype["deleteLater"]=ClassHandle_deleteLater}function ClassHandle(){}var registeredPointers={};function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=(function(){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)});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")}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError("Cannot register multiple overloads of a function with the same number of arguments ("+numArguments+")!")}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError("Expected null or instance of "+desiredClass.name+", got an instance of "+ptrClass.name)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError("Passing raw pointer to smart pointer is illegal")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,__emval_register((function(){clonedHandle["delete"]()})));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError("Unsupporting sharing policy")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}if(handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+handle.$$.ptrType.name+" to parameter type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAPU32[pointer>>2])}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr)}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle["delete"]()}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)}function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv}function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}}function init_embind(){Module["getInheritedInstanceCount"]=getInheritedInstanceCount;Module["getLiveInheritedInstances"]=getLiveInheritedInstances;Module["flushPendingDeletes"]=flushPendingDeletes;Module["setDelayFunction"]=setDelayFunction}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError("ptr should not be undefined")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr}function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError("makeClassHandle requires ptr and ptrType")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError("Both smartPtrType and smartPtr must be specified")}record.count={value:1};return Object.create(prototype,{$$:{value:record}})}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]()}else{var rv=registeredInstance["clone"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype["argPackAdvance"]=8;RegisteredPointer.prototype["readValueFromPointer"]=simpleReadValueFromPointer;RegisteredPointer.prototype["deleteObject"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype["fromWireType"]=RegisteredPointer_fromWireType}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this["toWireType"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this["toWireType"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this["toWireType"]=genericPointerToWireType}}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;Module[name].argCount=numArguments}}function embind__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{var dc=Module["asm"]["dynCall_"+signature];if(dc===undefined){dc=Module["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_class(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor){name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);if(upcast){upcast=embind__requireFunction(upcastSignature,upcast)}if(downcast){downcast=embind__requireFunction(downcastSignature,downcast)}rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,(function(){throwUnboundTypeError("Cannot construct "+name+" due to unbound types",[baseClassRawType])}));whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],(function(base){base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(legalFunctionName,(function(){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError("Use 'new' to construct "+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+" has no accessible constructor")}var body=registeredClass.constructor_body[arguments.length];if(undefined===body){throw new BindingError("Tried to invoke ctor of "+name+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(registeredClass.constructor_body).toString()+") parameters instead!")}return body.apply(this,arguments)}));var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+"*",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+" const*",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]}))}function heap32VectorToArray(count,firstElement){var array=[];for(var i=0;i<count;i++){array.push(HEAP32[(firstElement>>2)+i])}return array}function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function __embind_register_class_constructor(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],(function(classType){classType=classType[0];var humanName="constructor "+classType.name;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError("Cannot register multiple constructors with identical number of parameters ("+(argCount-1)+") for class '"+classType.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!")}classType.registeredClass.constructor_body[argCount-1]=function unboundTypeHandler(){throwUnboundTypeError("Cannot construct "+classType.name+" due to unbound types",rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,(function(argTypes){classType.registeredClass.constructor_body[argCount-1]=function constructor_body(){if(arguments.length!==argCount-1){throwBindingError(humanName+" called with "+arguments.length+" arguments, expected "+(argCount-1))}var destructors=[];var args=new Array(argCount);args[0]=rawConstructor;for(var i=1;i<argCount;++i){args[i]=argTypes[i]["toWireType"](destructors,arguments[i-1])}var ptr=invoker.apply(null,args);runDestructors(destructors);return argTypes[0]["fromWireType"](ptr)};return[]}));return[]}))}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 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 needsDestructorStack=false;for(var i=1;i<argTypes.length;++i){if(argTypes[i]!==null&&argTypes[i].destructorFunction===undefined){needsDestructorStack=true;break}}var returns=argTypes[0].name!=="void";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";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}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){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 __embind_register_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],(function(classType){classType=classType[0];var humanName=classType.name+"."+methodName;if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName)}function unboundTypesHandler(){throwUnboundTypeError("Cannot call "+humanName+" due to unbound types",rawArgTypes)}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,(function(argTypes){var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction}else{proto[methodName].overloadTable[argCount-2]=memberFunction}return[]}));return[]}))}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})}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 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})}function __embind_register_function(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn){var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);rawInvoker=embind__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],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn),argCount-1);return[]}))}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>>>bitshift})}var isUnsignedType=name.indexOf("unsigned")!=-1;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(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 isUnsignedType?value>>>0:value|0}),"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}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 __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<length;++i){a[i]=String.fromCharCode(HEAPU8[value+4+i])}_free(value);return a.join("")}),"toWireType":(function(destructors,value){if(value instanceof ArrayBuffer){value=new Uint8Array(value)}function getTAElement(ta,index){return ta[index]}function getStringElement(string,index){return string.charCodeAt(index)}var getElement;if(value instanceof Uint8Array){getElement=getTAElement}else if(value instanceof Uint8ClampedArray){getElement=getTAElement}else if(value instanceof Int8Array){getElement=getTAElement}else if(typeof value==="string"){getElement=getStringElement}else{throwBindingError("Cannot pass non-string to std::string")}var length=value.length;var ptr=_malloc(4+length);HEAPU32[ptr>>2]=length;for(var i=0;i<length;++i){var charCode=getElement(value,i);if(charCode>255){_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<length;++i){a[i]=String.fromCharCode(HEAP[start+i])}_free(value);return a.join("")}),"toWireType":(function(destructors,value){var HEAP=getHeap();var length=value.length;var ptr=_malloc(4+length*charSize);HEAPU32[ptr>>2]=length;var start=ptr+4>>shift;for(var i=0;i<length;++i){HEAP[start+i]=value.charCodeAt(i)}if(destructors!==null){destructors.push(_free,ptr)}return ptr}),"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:(function(ptr){_free(ptr)})})}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})})}function __emval_allocateDestructors(destructorsRef){var destructors=[];HEAP32[destructorsRef>>2]=__emval_register(destructors);return destructors}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}else{return symbol}}var emval_methodCallers=[];function requireHandle(handle){if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle)}return emval_handle_array[handle].value}function __emval_call_method(caller,handle,methodName,destructorsRef,args){caller=emval_methodCallers[caller];handle=requireHandle(handle);methodName=getStringOrSymbol(methodName);return caller(handle,methodName,__emval_allocateDestructors(destructorsRef),args)}function emval_get_global(){return(function(){return Function})()("return this")()}function __emval_get_global(name){if(name===0){return __emval_register(emval_get_global())}else{name=getStringOrSymbol(name);return __emval_register(emval_get_global()[name])}}function __emval_addMethodCaller(caller){var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType))}return impl}function __emval_lookupTypes(argCount,argTypes,argWireTypes){var a=new Array(argCount);for(var i=0;i<argCount;++i){a[i]=requireRegisteredType(HEAP32[(argTypes>>2)+i],"parameter "+i)}return a}function __emval_get_method_caller(argCount,argTypes){var types=__emval_lookupTypes(argCount,argTypes);var retType=types[0];var signatureName=retType.name+"_$"+types.slice(1).map((function(t){return t.name})).join("_")+"$";var params=["retType"];var args=[retType];var argsList="";for(var i=0;i<argCount-1;++i){argsList+=(i!==0?", ":"")+"arg"+i;params.push("argType"+i);args.push(types[1+i])}var functionName=makeLegalFunctionName("methodCaller_"+signatureName);var functionBody="return function "+functionName+"(handle, name, destructors, args) {\n";var offset=0;for(var i=0;i<argCount-1;++i){functionBody+=" var arg"+i+" = argType"+i+".readValueFromPointer(args"+(offset?"+"+offset:"")+");\n";offset+=types[i+1]["argPackAdvance"]}functionBody+=" var rv = handle[name]("+argsList+");\n";for(var i=0;i<argCount-1;++i){if(types[i+1]["deleteObject"]){functionBody+=" argType"+i+".deleteObject(arg"+i+");\n"}}if(!retType.isVoid){functionBody+=" return retType.toWireType(destructors, rv);\n"}functionBody+="};\n";params.push(functionBody);var invokerFunction=new_(Function,params).apply(null,args);return __emval_addMethodCaller(invokerFunction)}function __emval_incref(handle){if(handle>4){emval_handle_array[handle].refcount+=1}}function __emval_run_destructors(handle){var destructors=emval_handle_array[handle].value;runDestructors(destructors);__emval_decref(handle)}function __emval_take_value(type,argv){type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](argv);return __emval_register(v)}function _abort(){Module["abort"]()}function _emscripten_get_now(){abort()}function _emscripten_get_now_is_monotonic(){return ENVIRONMENT_IS_NODE||typeof dateNow!=="undefined"||(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&self["performance"]&&self["performance"]["now"]}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if(clk_id===1&&_emscripten_get_now_is_monotonic()){now=_emscripten_get_now()}else{___setErrNo(ERRNO_CODES.EINVAL);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}var DLFCN={error:null,errorMsg:null,loadedLibs:{},loadedLibNames:{}};function _dlclose(handle){if(!DLFCN.loadedLibs[handle]){DLFCN.errorMsg="Tried to dlclose() unopened handle: "+handle;return 1}else{var lib_record=DLFCN.loadedLibs[handle];if(--lib_record.refcount==0){if(lib_record.module.cleanups){lib_record.module.cleanups.forEach((function(cleanup){cleanup()}))}delete DLFCN.loadedLibNames[lib_record.name];delete DLFCN.loadedLibs[handle]}return 0}}function _dlerror(){if(DLFCN.errorMsg===null){return 0}else{if(DLFCN.error)_free(DLFCN.error);var msgArr=intArrayFromString(DLFCN.errorMsg);DLFCN.error=allocate(msgArr,"i8",ALLOC_NORMAL);DLFCN.errorMsg=null;return DLFCN.error}}function _dlopen(filename,flag){abort("To use dlopen, you need to use Emscripten's linking support, see https://github.com/kripken/emscripten/wiki/Linking");var searchpaths=[];if(filename===0){filename="__self__"}else{var strfilename=Pointer_stringify(filename);var isValidFile=(function(filename){var target=FS.findObject(filename);return target&&!target.isFolder&&!target.isDevice});if(isValidFile(strfilename)){filename=strfilename}else{if(ENV["LD_LIBRARY_PATH"]){searchpaths=ENV["LD_LIBRARY_PATH"].split(":")}for(var ident in searchpaths){var searchfile=PATH.join2(searchpaths[ident],strfilename);if(isValidFile(searchfile)){filename=searchfile;break}}}}if(DLFCN.loadedLibNames[filename]){var handle=DLFCN.loadedLibNames[filename];DLFCN.loadedLibs[handle].refcount++;return handle}var lib_module;if(filename==="__self__"){var handle=-1;lib_module=Module}else{if(Module["preloadedWasm"]!==undefined&&Module["preloadedWasm"][filename]!==undefined){lib_module=Module["preloadedWasm"][filename]}else{var target=FS.findObject(filename);if(!target||target.isFolder||target.isDevice){DLFCN.errorMsg="Could not find dynamic lib: "+filename;return 0}FS.forceLoadFile(target);try{var lib_data=FS.readFile(filename,{encoding:"utf8"});lib_module=eval(lib_data)(alignFunctionTables(),Module)}catch(e){DLFCN.errorMsg="Could not evaluate dynamic lib: "+filename+"\n"+e;return 0}}var handle=1;for(var key in DLFCN.loadedLibs){if(DLFCN.loadedLibs.hasOwnProperty(key))handle++}if(flag&256){for(var ident in lib_module){if(lib_module.hasOwnProperty(ident)){if(ident[0]=="_"){Module[ident]=lib_module[ident]}}}}}DLFCN.loadedLibs[handle]={refcount:1,name:filename,module:lib_module};DLFCN.loadedLibNames[filename]=handle;return handle}function _dlsym(handle,symbol){symbol=Pointer_stringify(symbol);if(!DLFCN.loadedLibs[handle]){DLFCN.errorMsg="Tried to dlsym() from an unopened handle: "+handle;return 0}else{var lib=DLFCN.loadedLibs[handle];symbol="_"+symbol;if(!lib.module.hasOwnProperty(symbol)){DLFCN.errorMsg='Tried to lookup unknown symbol "'+symbol+'" in dynamic lib: '+lib.name;return 0}else{var result=lib.module[symbol];if(typeof result==="function"){return addFunction(result)}return result}}}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate==="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";function Browser_setImmediate_messageHandler(event){if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}}addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function _emscripten_set_main_loop(func,fps,simulateInfiniteLoop,arg,noSetTiming){Module["noExitRuntime"]=true;assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=func;Browser.mainLoop.arg=arg;var browserIterationFunc;if(typeof arg!=="undefined"){browserIterationFunc=(function(){Module["dynCall_vi"](func,arg)})}else{browserIterationFunc=(function(){Module["dynCall_v"](func)})}var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;Browser.mainLoop.runner=function Browser_mainLoop_runner(){if(ABORT)return;if(Browser.mainLoop.queue.length>0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}console.log('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(thisMainLoopId<Browser.mainLoop.currentlyRunningMainloop)return;setTimeout(Browser.mainLoop.runner,0);return}if(thisMainLoopId<Browser.mainLoop.currentlyRunningMainloop)return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}if(Browser.mainLoop.method==="timeout"&&Module.ctx){err("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!");Browser.mainLoop.method=""}Browser.mainLoop.runIter(browserIterationFunc);if(thisMainLoopId<Browser.mainLoop.currentlyRunningMainloop)return;if(typeof SDL==="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"SimulateInfiniteLoop"}}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:(function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++}),resume:(function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;_emscripten_set_main_loop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()}),updateStatus:(function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining<expected){Module["setStatus"](message+" ("+(expected-remaining)+"/"+expected+")")}else{Module["setStatus"](message)}}else{Module["setStatus"]("")}}}),runIter:(function(func){if(ABORT)return;if(Module["preMainLoop"]){var preRet=Module["preMainLoop"]();if(preRet===false){return}}try{func()}catch(e){if(e instanceof ExitStatus){return}else{if(e&&typeof e==="object"&&e.stack)err("exception thrown: "+[e,e.stack]);throw e}}if(Module["postMainLoop"])Module["postMainLoop"]()})},isFullscreen:false,pointerLock:false,moduleContextCreatedCallbacks:[],workers:[],init:(function(){if(!Module["preloadPlugins"])Module["preloadPlugins"]=[];if(Browser.initted)return;Browser.initted=true;try{new Blob;Browser.hasBlobConstructor=true}catch(e){Browser.hasBlobConstructor=false;console.log("warning: no blob constructor, cannot create blobs with mimetypes")}Browser.BlobBuilder=typeof MozBlobBuilder!="undefined"?MozBlobBuilder:typeof WebKitBlobBuilder!="undefined"?WebKitBlobBuilder:!Browser.hasBlobConstructor?console.log("warning: no BlobBuilder"):null;Browser.URLObject=typeof window!="undefined"?window.URL?window.URL:window.webkitURL:undefined;if(!Module.noImageDecoding&&typeof Browser.URLObject==="undefined"){console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available.");Module.noImageDecoding=true}var imagePlugin={};imagePlugin["canHandle"]=function imagePlugin_canHandle(name){return!Module.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(name)};imagePlugin["handle"]=function imagePlugin_handle(byteArray,name,onload,onerror){var b=null;if(Browser.hasBlobConstructor){try{b=new Blob([byteArray],{type:Browser.getMimetype(name)});if(b.size!==byteArray.length){b=new Blob([(new Uint8Array(byteArray)).buffer],{type:Browser.getMimetype(name)})}}catch(e){warnOnce("Blob constructor present but fails: "+e+"; falling back to blob builder")}}if(!b){var bb=new Browser.BlobBuilder;bb.append((new Uint8Array(byteArray)).buffer);b=bb.getBlob()}var url=Browser.URLObject.createObjectURL(b);var img=new Image;img.onload=function img_onload(){assert(img.complete,"Image "+name+" could not be decoded");var canvas=document.createElement("canvas");canvas.width=img.width;canvas.height=img.height;var ctx=canvas.getContext("2d");ctx.drawImage(img,0,0);Module["preloadedImages"][name]=canvas;Browser.URLObject.revokeObjectURL(url);if(onload)onload(byteArray)};img.onerror=function img_onerror(event){console.log("Image "+url+" could not be decoded");if(onerror)onerror()};img.src=url};Module["preloadPlugins"].push(imagePlugin);var audioPlugin={};audioPlugin["canHandle"]=function audioPlugin_canHandle(name){return!Module.noAudioDecoding&&name.substr(-4)in{".ogg":1,".wav":1,".mp3":1}};audioPlugin["handle"]=function audioPlugin_handle(byteArray,name,onload,onerror){var done=false;function finish(audio){if(done)return;done=true;Module["preloadedAudios"][name]=audio;if(onload)onload(byteArray)}function fail(){if(done)return;done=true;Module["preloadedAudios"][name]=new Audio;if(onerror)onerror()}if(Browser.hasBlobConstructor){try{var b=new Blob([byteArray],{type:Browser.getMimetype(name)})}catch(e){return fail()}var url=Browser.URLObject.createObjectURL(b);var audio=new Audio;audio.addEventListener("canplaythrough",(function(){finish(audio)}),false);audio.onerror=function audio_onerror(event){if(done)return;console.log("warning: browser could not fully decode audio "+name+", trying slower base64 approach");function encode64(data){var BASE="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var PAD="=";var ret="";var leftchar=0;var leftbits=0;for(var i=0;i<data.length;i++){leftchar=leftchar<<8|data[i];leftbits+=8;while(leftbits>=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;Browser.safeSetTimeout((function(){finish(audio)}),1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||(function(){});canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||(function(){});canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",(function(ev){if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}}),false)}}}),createContext:(function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach((function(callback){callback()}));Browser.init()}return ctx}),destroyContext:(function(canvas,useWebGL,setInModule){}),fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:(function(lockPointer,resizeCanvas,vrDevice){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;Browser.vrDevice=vrDevice;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;if(typeof Browser.vrDevice==="undefined")Browser.vrDevice=null;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||(function(){});canvas.exitFullscreen=canvas.exitFullscreen.bind(document);if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?(function(){canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"])}):null)||(canvasContainer["webkitRequestFullScreen"]?(function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}):null);if(vrDevice){canvasContainer.requestFullscreen({vrDisplay:vrDevice})}else{canvasContainer.requestFullscreen()}}),requestFullScreen:(function(lockPointer,resizeCanvas,vrDevice){err("Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead.");Browser.requestFullScreen=(function(lockPointer,resizeCanvas,vrDevice){return Browser.requestFullscreen(lockPointer,resizeCanvas,vrDevice)});return Browser.requestFullscreen(lockPointer,resizeCanvas,vrDevice)}),nextRAF:0,fakeRequestAnimationFrame:(function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)}),requestAnimationFrame:function requestAnimationFrame(func){if(typeof window==="undefined"){Browser.fakeRequestAnimationFrame(func)}else{if(!window.requestAnimationFrame){window.requestAnimationFrame=window["requestAnimationFrame"]||window["mozRequestAnimationFrame"]||window["webkitRequestAnimationFrame"]||window["msRequestAnimationFrame"]||window["oRequestAnimationFrame"]||Browser.fakeRequestAnimationFrame}window.requestAnimationFrame(func)}},safeCallback:(function(func){return(function(){if(!ABORT)return func.apply(null,arguments)})}),allowAsyncCallbacks:true,queuedAsyncCallbacks:[],pauseAsyncCallbacks:(function(){Browser.allowAsyncCallbacks=false}),resumeAsyncCallbacks:(function(){Browser.allowAsyncCallbacks=true;if(Browser.queuedAsyncCallbacks.length>0){var callbacks=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[];callbacks.forEach((function(func){func()}))}}),safeRequestAnimationFrame:(function(func){return Browser.requestAnimationFrame((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}else{Browser.queuedAsyncCallbacks.push(func)}}))}),safeSetTimeout:(function(func,timeout){Module["noExitRuntime"]=true;return setTimeout((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}else{Browser.queuedAsyncCallbacks.push(func)}}),timeout)}),safeSetInterval:(function(func,timeout){Module["noExitRuntime"]=true;return setInterval((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}}),timeout)}),getMimetype:(function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]}),getUserMedia:(function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)}),getMovementX:(function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0}),getMovementY:(function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0}),getMouseWheelDelta:(function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail;break;case"mousewheel":delta=event.wheelDelta;break;case"wheel":delta=event["deltaY"];break;default:throw"unrecognized mouse wheel event: "+event.type}return delta}),mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:(function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}}),asyncLoad:(function(url,onload,onerror,noRunDep){var dep=!noRunDep?getUniqueRunDependency("al "+url):"";Module["readAsync"](url,(function(arrayBuffer){assert(arrayBuffer,'Loading data file "'+url+'" failed (no arrayBuffer).');onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)}),(function(event){if(onerror){onerror()}else{throw'Loading data file "'+url+'" failed.'}}));if(dep)addRunDependency(dep)}),resizeListeners:[],updateResizeListeners:(function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach((function(listener){listener(canvas.width,canvas.height)}))}),setCanvasSize:(function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()}),windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:(function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()}),setWindowedCanvasSize:(function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()}),updateCanvasDimensions:(function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h<Module["forcedAspectRatio"]){w=Math.round(h*Module["forcedAspectRatio"])}else{h=Math.round(w/Module["forcedAspectRatio"])}}if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvas.parentNode&&typeof screen!="undefined"){var factor=Math.min(screen.width/w,screen.height/h);w=Math.round(w*factor);h=Math.round(h*factor)}if(Browser.resizeCanvas){if(canvas.width!=w)canvas.width=w;if(canvas.height!=h)canvas.height=h;if(typeof canvas.style!="undefined"){canvas.style.removeProperty("width");canvas.style.removeProperty("height")}}else{if(canvas.width!=wNative)canvas.width=wNative;if(canvas.height!=hNative)canvas.height=hNative;if(typeof canvas.style!="undefined"){if(w!=wNative||h!=hNative){canvas.style.setProperty("width",w+"px","important");canvas.style.setProperty("height",h+"px","important")}else{canvas.style.removeProperty("width");canvas.style.removeProperty("height")}}}}),wgetRequests:{},nextWgetRequestHandle:0,getNextWgetRequestHandle:(function(){var handle=Browser.nextWgetRequestHandle;Browser.nextWgetRequestHandle++;return handle})};var EGL={errorCode:12288,defaultDisplayInitialized:false,currentContext:0,currentReadSurface:0,currentDrawSurface:0,stringCache:{},setErrorCode:(function(code){EGL.errorCode=code}),chooseConfig:(function(display,attribList,config,config_size,numConfigs){if(display!=62e3){EGL.setErrorCode(12296);return 0}if((!config||!config_size)&&!numConfigs){EGL.setErrorCode(12300);return 0}if(numConfigs){HEAP32[numConfigs>>2]=1}if(config&&config_size>0){HEAP32[config>>2]=62002}EGL.setErrorCode(12288);return 1})};function _eglBindAPI(api){if(api==12448){EGL.setErrorCode(12288);return 1}else{EGL.setErrorCode(12300);return 0}}function _eglChooseConfig(display,attrib_list,configs,config_size,numConfigs){return EGL.chooseConfig(display,attrib_list,configs,config_size,numConfigs)}var GLUT={initTime:null,idleFunc:null,displayFunc:null,keyboardFunc:null,keyboardUpFunc:null,specialFunc:null,specialUpFunc:null,reshapeFunc:null,motionFunc:null,passiveMotionFunc:null,mouseFunc:null,buttons:0,modifiers:0,initWindowWidth:256,initWindowHeight:256,initDisplayMode:18,windowX:0,windowY:0,windowWidth:0,windowHeight:0,requestedAnimationFrame:false,saveModifiers:(function(event){GLUT.modifiers=0;if(event["shiftKey"])GLUT.modifiers+=1;if(event["ctrlKey"])GLUT.modifiers+=2;if(event["altKey"])GLUT.modifiers+=4}),onMousemove:(function(event){var lastX=Browser.mouseX;var lastY=Browser.mouseY;Browser.calculateMouseEvent(event);var newX=Browser.mouseX;var newY=Browser.mouseY;if(newX==lastX&&newY==lastY)return;if(GLUT.buttons==0&&event.target==Module["canvas"]&&GLUT.passiveMotionFunc){event.preventDefault();GLUT.saveModifiers(event);Module["dynCall_vii"](GLUT.passiveMotionFunc,lastX,lastY)}else if(GLUT.buttons!=0&&GLUT.motionFunc){event.preventDefault();GLUT.saveModifiers(event);Module["dynCall_vii"](GLUT.motionFunc,lastX,lastY)}}),getSpecialKey:(function(keycode){var key=null;switch(keycode){case 8:key=120;break;case 46:key=111;break;case 112:key=1;break;case 113:key=2;break;case 114:key=3;break;case 115:key=4;break;case 116:key=5;break;case 117:key=6;break;case 118:key=7;break;case 119:key=8;break;case 120:key=9;break;case 121:key=10;break;case 122:key=11;break;case 123:key=12;break;case 37:key=100;break;case 38:key=101;break;case 39:key=102;break;case 40:key=103;break;case 33:key=104;break;case 34:key=105;break;case 36:key=106;break;case 35:key=107;break;case 45:key=108;break;case 16:case 5:key=112;break;case 6:key=113;break;case 17:case 3:key=114;break;case 4:key=115;break;case 18:case 2:key=116;break;case 1:key=117;break}return key}),getASCIIKey:(function(event){if(event["ctrlKey"]||event["altKey"]||event["metaKey"])return null;var keycode=event["keyCode"];if(48<=keycode&&keycode<=57)return keycode;if(65<=keycode&&keycode<=90)return event["shiftKey"]?keycode:keycode+32;if(96<=keycode&&keycode<=105)return keycode-48;if(106<=keycode&&keycode<=111)return keycode-106+42;switch(keycode){case 9:case 13:case 27:case 32:case 61:return keycode}var s=event["shiftKey"];switch(keycode){case 186:return s?58:59;case 187:return s?43:61;case 188:return s?60:44;case 189:return s?95:45;case 190:return s?62:46;case 191:return s?63:47;case 219:return s?123:91;case 220:return s?124:47;case 221:return s?125:93;case 222:return s?34:39}return null}),onKeydown:(function(event){if(GLUT.specialFunc||GLUT.keyboardFunc){var key=GLUT.getSpecialKey(event["keyCode"]);if(key!==null){if(GLUT.specialFunc){event.preventDefault();GLUT.saveModifiers(event);Module["dynCall_viii"](GLUT.specialFunc,key,Browser.mouseX,Browser.mouseY)}}else{key=GLUT.getASCIIKey(event);if(key!==null&&GLUT.keyboardFunc){event.preventDefault();GLUT.saveModifiers(event);Module["dynCall_viii"](GLUT.keyboardFunc,key,Browser.mouseX,Browser.mouseY)}}}}),onKeyup:(function(event){if(GLUT.specialUpFunc||GLUT.keyboardUpFunc){var key=GLUT.getSpecialKey(event["keyCode"]);if(key!==null){if(GLUT.specialUpFunc){event.preventDefault();GLUT.saveModifiers(event);Module["dynCall_viii"](GLUT.specialUpFunc,key,Browser.mouseX,Browser.mouseY)}}else{key=GLUT.getASCIIKey(event);if(key!==null&&GLUT.keyboardUpFunc){event.preventDefault();GLUT.saveModifiers(event);Module["dynCall_viii"](GLUT.keyboardUpFunc,key,Browser.mouseX,Browser.mouseY)}}}}),touchHandler:(function(event){if(event.target!=Module["canvas"]){return}var touches=event.changedTouches,main=touches[0],type="";switch(event.type){case"touchstart":type="mousedown";break;case"touchmove":type="mousemove";break;case"touchend":type="mouseup";break;default:return}var simulatedEvent=document.createEvent("MouseEvent");simulatedEvent.initMouseEvent(type,true,true,window,1,main.screenX,main.screenY,main.clientX,main.clientY,false,false,false,false,0,null);main.target.dispatchEvent(simulatedEvent);event.preventDefault()}),onMouseButtonDown:(function(event){Browser.calculateMouseEvent(event);GLUT.buttons|=1<<event["button"];if(event.target==Module["canvas"]&&GLUT.mouseFunc){try{event.target.setCapture()}catch(e){}event.preventDefault();GLUT.saveModifiers(event);Module["dynCall_viiii"](GLUT.mouseFunc,event["button"],0,Browser.mouseX,Browser.mouseY)}}),onMouseButtonUp:(function(event){Browser.calculateMouseEvent(event);GLUT.buttons&=~(1<<event["button"]);if(GLUT.mouseFunc){event.preventDefault();GLUT.saveModifiers(event);Module["dynCall_viiii"](GLUT.mouseFunc,event["button"],1,Browser.mouseX,Browser.mouseY)}}),onMouseWheel:(function(event){Browser.calculateMouseEvent(event);var e=window.event||event;var delta=-Browser.getMouseWheelDelta(event);delta=delta==0?0:delta>0?Math.max(delta,1):Math.min(delta,-1);var button=3;if(delta<0){button=4}if(GLUT.mouseFunc){event.preventDefault();GLUT.saveModifiers(event);Module["dynCall_viiii"](GLUT.mouseFunc,button,0,Browser.mouseX,Browser.mouseY)}}),onFullscreenEventChange:(function(event){var width;var height;if(document["fullscreen"]||document["fullScreen"]||document["mozFullScreen"]||document["webkitIsFullScreen"]){width=screen["width"];height=screen["height"]}else{width=GLUT.windowWidth;height=GLUT.windowHeight;document.removeEventListener("fullscreenchange",GLUT.onFullscreenEventChange,true);document.removeEventListener("mozfullscreenchange",GLUT.onFullscreenEventChange,true);document.removeEventListener("webkitfullscreenchange",GLUT.onFullscreenEventChange,true)}Browser.setCanvasSize(width,height,true);if(GLUT.reshapeFunc){Module["dynCall_vii"](GLUT.reshapeFunc,width,height)}_glutPostRedisplay()}),requestFullscreen:(function(){Browser.requestFullscreen(false,false)}),requestFullScreen:(function(){err("GLUT.requestFullScreen() is deprecated. Please call GLUT.requestFullscreen instead.");GLUT.requestFullScreen=(function(){return GLUT.requestFullscreen()});return GLUT.requestFullscreen()}),exitFullscreen:(function(){var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["webkitCancelFullScreen"]||(function(){});CFS.apply(document,[])}),cancelFullScreen:(function(){err("GLUT.cancelFullScreen() is deprecated. Please call GLUT.exitFullscreen instead.");GLUT.cancelFullScreen=(function(){return GLUT.exitFullscreen()});return GLUT.exitFullscreen()})};function _glutInitDisplayMode(mode){GLUT.initDisplayMode=mode}function _glutCreateWindow(name){var contextAttributes={antialias:(GLUT.initDisplayMode&128)!=0,depth:(GLUT.initDisplayMode&16)!=0,stencil:(GLUT.initDisplayMode&32)!=0,alpha:(GLUT.initDisplayMode&8)!=0};Module.ctx=Browser.createContext(Module["canvas"],true,true,contextAttributes);return Module.ctx?1:0}var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:[],currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],byteSizeByTypeRoot:5120,byteSizeByType:[1,1,2,2,4,4,4,2,3,4,8],programInfos:{},stringCache:{},tempFixedLengthArray:[],packAlignment:4,unpackAlignment:4,init:(function(){GL.miniTempBuffer=new Float32Array(GL.MINI_TEMP_BUFFER_SIZE);for(var i=0;i<GL.MINI_TEMP_BUFFER_SIZE;i++){GL.miniTempBufferViews[i]=GL.miniTempBuffer.subarray(0,i+1)}for(var i=0;i<32;i++){GL.tempFixedLengthArray.push(new Array(i))}}),recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:(function(table){var ret=GL.counter++;for(var i=table.length;i<ret;i++){table[i]=null}return ret}),MINI_TEMP_BUFFER_SIZE:256,miniTempBuffer:null,miniTempBufferViews:[0],getSource:(function(shader,count,string,length){var source="";for(var i=0;i<count;++i){var frag;if(length){var len=HEAP32[length+i*4>>2];if(len<0){frag=Pointer_stringify(HEAP32[string+i*4>>2])}else{frag=Pointer_stringify(HEAP32[string+i*4>>2],len)}}else{frag=Pointer_stringify(HEAP32[string+i*4>>2])}source+=frag}return source}),createContext:(function(canvas,webGLContextAttributes){if(typeof webGLContextAttributes["majorVersion"]==="undefined"&&typeof webGLContextAttributes["minorVersion"]==="undefined"){webGLContextAttributes["majorVersion"]=1;webGLContextAttributes["minorVersion"]=0}var ctx;var errorInfo="?";function onContextCreationError(event){errorInfo=event.statusMessage||errorInfo}try{canvas.addEventListener("webglcontextcreationerror",onContextCreationError,false);try{if(webGLContextAttributes["majorVersion"]==1&&webGLContextAttributes["minorVersion"]==0){ctx=canvas.getContext("webgl",webGLContextAttributes)||canvas.getContext("experimental-webgl",webGLContextAttributes)}else if(webGLContextAttributes["majorVersion"]==2&&webGLContextAttributes["minorVersion"]==0){ctx=canvas.getContext("webgl2",webGLContextAttributes)}else{throw"Unsupported WebGL context version "+majorVersion+"."+minorVersion+"!"}}finally{canvas.removeEventListener("webglcontextcreationerror",onContextCreationError,false)}if(!ctx)throw":("}catch(e){out("Could not create canvas: "+[errorInfo,e,JSON.stringify(webGLContextAttributes)]);return 0}if(!ctx)return 0;var context=GL.registerContext(ctx,webGLContextAttributes);return context}),registerContext:(function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes["majorVersion"],GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes["enableExtensionsByDefault"]==="undefined"||webGLContextAttributes["enableExtensionsByDefault"]){GL.initExtensions(context)}return handle}),makeContextCurrent:(function(contextHandle){var context=GL.contexts[contextHandle];if(!context)return false;GLctx=Module.ctx=context.GLctx;GL.currentContext=context;return true}),getContext:(function(contextHandle){return GL.contexts[contextHandle]}),deleteContext:(function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null}),initExtensions:(function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;context.maxVertexAttribs=GLctx.getParameter(GLctx.MAX_VERTEX_ATTRIBS);if(context.version<2){var instancedArraysExt=GLctx.getExtension("ANGLE_instanced_arrays");if(instancedArraysExt){GLctx["vertexAttribDivisor"]=(function(index,divisor){instancedArraysExt["vertexAttribDivisorANGLE"](index,divisor)});GLctx["drawArraysInstanced"]=(function(mode,first,count,primcount){instancedArraysExt["drawArraysInstancedANGLE"](mode,first,count,primcount)});GLctx["drawElementsInstanced"]=(function(mode,count,type,indices,primcount){instancedArraysExt["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)})}var vaoExt=GLctx.getExtension("OES_vertex_array_object");if(vaoExt){GLctx["createVertexArray"]=(function(){return vaoExt["createVertexArrayOES"]()});GLctx["deleteVertexArray"]=(function(vao){vaoExt["deleteVertexArrayOES"](vao)});GLctx["bindVertexArray"]=(function(vao){vaoExt["bindVertexArrayOES"](vao)});GLctx["isVertexArray"]=(function(vao){return vaoExt["isVertexArrayOES"](vao)})}var drawBuffersExt=GLctx.getExtension("WEBGL_draw_buffers");if(drawBuffersExt){GLctx["drawBuffers"]=(function(n,bufs){drawBuffersExt["drawBuffersWEBGL"](n,bufs)})}}GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query");var automaticallyEnabledExtensions=["OES_texture_float","OES_texture_half_float","OES_standard_derivatives","OES_vertex_array_object","WEBGL_compressed_texture_s3tc","WEBGL_depth_texture","OES_element_index_uint","EXT_texture_filter_anisotropic","ANGLE_instanced_arrays","OES_texture_float_linear","OES_texture_half_float_linear","WEBGL_compressed_texture_atc","WEBKIT_WEBGL_compressed_texture_pvrtc","WEBGL_compressed_texture_pvrtc","EXT_color_buffer_half_float","WEBGL_color_buffer_float","EXT_frag_depth","EXT_sRGB","WEBGL_draw_buffers","WEBGL_shared_resources","EXT_shader_texture_lod","EXT_color_buffer_float"];var exts=GLctx.getSupportedExtensions();if(exts&&exts.length>0){GLctx.getSupportedExtensions().forEach((function(ext){if(automaticallyEnabledExtensions.indexOf(ext)!=-1){GLctx.getExtension(ext)}}))}}),populateUniformTable:(function(program){var p=GL.programs[program];GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1};var ptable=GL.programInfos[program];var utable=ptable.uniforms;var numUniforms=GLctx.getProgramParameter(p,GLctx.ACTIVE_UNIFORMS);for(var i=0;i<numUniforms;++i){var u=GLctx.getActiveUniform(p,i);var name=u.name;ptable.maxUniformLength=Math.max(ptable.maxUniformLength,name.length+1);if(name.indexOf("]",name.length-1)!==-1){var ls=name.lastIndexOf("[");name=name.slice(0,ls)}var loc=GLctx.getUniformLocation(p,name);if(loc!=null){var id=GL.getNewId(GL.uniforms);utable[name]=[u.size,id];GL.uniforms[id]=loc;for(var j=1;j<u.size;++j){var n=name+"["+j+"]";loc=GLctx.getUniformLocation(p,n);id=GL.getNewId(GL.uniforms);GL.uniforms[id]=loc}}}})};function _eglCreateContext(display,config,hmm,contextAttribs){if(display!=62e3){EGL.setErrorCode(12296);return 0}var glesContextVersion=1;for(;;){var param=HEAP32[contextAttribs>>2];if(param==12440){glesContextVersion=HEAP32[contextAttribs+4>>2]}else if(param==12344){break}else{EGL.setErrorCode(12292);return 0}contextAttribs+=8}if(glesContextVersion!=2){EGL.setErrorCode(12293);return 0}_glutInitDisplayMode(178);EGL.windowID=_glutCreateWindow();if(EGL.windowID!=0){EGL.setErrorCode(12288);return 62004}else{EGL.setErrorCode(12297);return 0}}function _eglCreateWindowSurface(display,config,win,attrib_list){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(config!=62002){EGL.setErrorCode(12293);return 0}EGL.setErrorCode(12288);return 62006}function _glutDestroyWindow(name){Module.ctx=Browser.destroyContext(Module["canvas"],true,true);return 1}function _eglDestroyContext(display,context){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=62004){EGL.setErrorCode(12294);return 0}EGL.setErrorCode(12288);return 1}function _eglDestroySurface(display,surface){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(surface!=62006){EGL.setErrorCode(12301);return 1}if(EGL.currentReadSurface==surface){EGL.currentReadSurface=0}if(EGL.currentDrawSurface==surface){EGL.currentDrawSurface=0}EGL.setErrorCode(12288);return 1}function _eglGetConfigAttrib(display,config,attribute,value){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(config!=62002){EGL.setErrorCode(12293);return 0}if(!value){EGL.setErrorCode(12300);return 0}EGL.setErrorCode(12288);switch(attribute){case 12320:HEAP32[value>>2]=32;return 1;case 12321:HEAP32[value>>2]=8;return 1;case 12322:HEAP32[value>>2]=8;return 1;case 12323:HEAP32[value>>2]=8;return 1;case 12324:HEAP32[value>>2]=8;return 1;case 12325:HEAP32[value>>2]=24;return 1;case 12326:HEAP32[value>>2]=8;return 1;case 12327:HEAP32[value>>2]=12344;return 1;case 12328:HEAP32[value>>2]=62002;return 1;case 12329:HEAP32[value>>2]=0;return 1;case 12330:HEAP32[value>>2]=4096;return 1;case 12331:HEAP32[value>>2]=16777216;return 1;case 12332:HEAP32[value>>2]=4096;return 1;case 12333:HEAP32[value>>2]=0;return 1;case 12334:HEAP32[value>>2]=0;return 1;case 12335:HEAP32[value>>2]=12344;return 1;case 12337:HEAP32[value>>2]=4;return 1;case 12338:HEAP32[value>>2]=1;return 1;case 12339:HEAP32[value>>2]=4;return 1;case 12340:HEAP32[value>>2]=12344;return 1;case 12341:case 12342:case 12343:HEAP32[value>>2]=-1;return 1;case 12345:case 12346:HEAP32[value>>2]=0;return 1;case 12347:case 12348:HEAP32[value>>2]=1;return 1;case 12349:case 12350:HEAP32[value>>2]=0;return 1;case 12351:HEAP32[value>>2]=12430;return 1;case 12352:HEAP32[value>>2]=4;return 1;case 12354:HEAP32[value>>2]=0;return 1;default:EGL.setErrorCode(12292);return 0}}function _eglGetDisplay(nativeDisplayType){EGL.setErrorCode(12288);return 62e3}function _eglGetProcAddress(name_){return _emscripten_GetProcAddress(name_)}function _eglInitialize(display,majorVersion,minorVersion){if(display==62e3){if(majorVersion){HEAP32[majorVersion>>2]=1}if(minorVersion){HEAP32[minorVersion>>2]=4}EGL.defaultDisplayInitialized=true;EGL.setErrorCode(12288);return 1}else{EGL.setErrorCode(12296);return 0}}function _eglMakeCurrent(display,draw,read,context){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=0&&context!=62004){EGL.setErrorCode(12294);return 0}if(read!=0&&read!=62006||draw!=0&&draw!=62006){EGL.setErrorCode(12301);return 0}EGL.currentContext=context;EGL.currentDrawSurface=draw;EGL.currentReadSurface=read;EGL.setErrorCode(12288);return 1}function _eglSwapBuffers(){if(!EGL.defaultDisplayInitialized){EGL.setErrorCode(12289)}else if(!Module.ctx){EGL.setErrorCode(12290)}else if(Module.ctx.isContextLost()){EGL.setErrorCode(12302)}else{EGL.setErrorCode(12288);return 1}return 0}function _eglSwapInterval(display,interval){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(interval==0)_emscripten_set_main_loop_timing(0,0);else _emscripten_set_main_loop_timing(1,interval);EGL.setErrorCode(12288);return 1}function _eglTerminate(display){if(display!=62e3){EGL.setErrorCode(12296);return 0}EGL.currentContext=0;EGL.currentReadSurface=0;EGL.currentDrawSurface=0;EGL.defaultDisplayInitialized=false;EGL.setErrorCode(12288);return 1}function _eglWaitClient(){EGL.setErrorCode(12288);return 1}function _eglWaitGL(){return _eglWaitClient.apply(null,arguments)}function _eglWaitNative(nativeEngineId){EGL.setErrorCode(12288);return 1}var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,lastGamepadState:null,lastGamepadStateFrame:null,numGamepadsConnected:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:false,staticInit:(function(){if(typeof window!=="undefined"){window.addEventListener("gamepadconnected",(function(){++JSEvents.numGamepadsConnected}));window.addEventListener("gamepaddisconnected",(function(){--JSEvents.numGamepadsConnected}));var firstState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():null;if(firstState){JSEvents.numGamepadsConnected=firstState.length}}}),registerRemoveEventListeners:(function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push((function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}}));JSEvents.removeEventListenersRegistered=true}}),findEventTarget:(function(target){if(target){if(typeof target=="number"){target=Pointer_stringify(target)}if(target=="#window")return window;else if(target=="#document")return document;else if(target=="#screen")return window.screen;else if(target=="#canvas")return Module["canvas"];if(typeof target=="string")return document.getElementById(target);else return target}else{return window}}),deferredCalls:[],deferCall:(function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort((function(x,y){return x.precedence<y.precedence}))}),removeDeferredCalls:(function(targetFunction){for(var i=0;i<JSEvents.deferredCalls.length;++i){if(JSEvents.deferredCalls[i].targetFunction==targetFunction){JSEvents.deferredCalls.splice(i,1);--i}}}),canPerformEventHandlerRequests:(function(){return JSEvents.inEventHandler&&JSEvents.currentEventHandler.allowsDeferredCalls}),runDeferredCalls:(function(){if(!JSEvents.canPerformEventHandlerRequests()){return}for(var i=0;i<JSEvents.deferredCalls.length;++i){var call=JSEvents.deferredCalls[i];JSEvents.deferredCalls.splice(i,1);--i;call.targetFunction.apply(this,call.argsList)}}),inEventHandler:0,currentEventHandler:null,eventHandlers:[],isInternetExplorer:(function(){return navigator.userAgent.indexOf("MSIE")!==-1||navigator.appVersion.indexOf("Trident/")>0}),removeAllHandlersOnTarget:(function(target,eventTypeString){for(var i=0;i<JSEvents.eventHandlers.length;++i){if(JSEvents.eventHandlers[i].target==target&&(!eventTypeString||eventTypeString==JSEvents.eventHandlers[i].eventTypeString)){JSEvents._removeHandler(i--)}}}),_removeHandler:(function(i){var h=JSEvents.eventHandlers[i];h.target.removeEventListener(h.eventTypeString,h.eventListenerFunc,h.useCapture);JSEvents.eventHandlers.splice(i,1)}),registerOrRemoveHandler:(function(eventHandler){var jsEventHandler=function jsEventHandler(event){++JSEvents.inEventHandler;JSEvents.currentEventHandler=eventHandler;JSEvents.runDeferredCalls();eventHandler.handlerFunc(event);JSEvents.runDeferredCalls();--JSEvents.inEventHandler};if(eventHandler.callbackfunc){eventHandler.eventListenerFunc=jsEventHandler;eventHandler.target.addEventListener(eventHandler.eventTypeString,jsEventHandler,eventHandler.useCapture);JSEvents.eventHandlers.push(eventHandler);JSEvents.registerRemoveEventListeners()}else{for(var i=0;i<JSEvents.eventHandlers.length;++i){if(JSEvents.eventHandlers[i].target==eventHandler.target&&JSEvents.eventHandlers[i].eventTypeString==eventHandler.eventTypeString){JSEvents._removeHandler(i--)}}}}),registerKeyEventCallback:(function(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString){if(!JSEvents.keyEvent){JSEvents.keyEvent=_malloc(164)}var handlerFunc=(function(event){var e=event||window.event;stringToUTF8(e.key?e.key:"",JSEvents.keyEvent+0,32);stringToUTF8(e.code?e.code:"",JSEvents.keyEvent+32,32);HEAP32[JSEvents.keyEvent+64>>2]=e.location;HEAP32[JSEvents.keyEvent+68>>2]=e.ctrlKey;HEAP32[JSEvents.keyEvent+72>>2]=e.shiftKey;HEAP32[JSEvents.keyEvent+76>>2]=e.altKey;HEAP32[JSEvents.keyEvent+80>>2]=e.metaKey;HEAP32[JSEvents.keyEvent+84>>2]=e.repeat;stringToUTF8(e.locale?e.locale:"",JSEvents.keyEvent+88,32);stringToUTF8(e.char?e.char:"",JSEvents.keyEvent+120,32);HEAP32[JSEvents.keyEvent+152>>2]=e.charCode;HEAP32[JSEvents.keyEvent+156>>2]=e.keyCode;HEAP32[JSEvents.keyEvent+160>>2]=e.which;var shouldCancel=Module["dynCall_iiii"](callbackfunc,eventTypeId,JSEvents.keyEvent,userData);if(shouldCancel){e.preventDefault()}});var eventHandler={target:JSEvents.findEventTarget(target),allowsDeferredCalls:JSEvents.isInternetExplorer()?false:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:handlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}),getBoundingClientRectOrZeros:(function(target){return target.getBoundingClientRect?target.getBoundingClientRect():{left:0,top:0}}),fillMouseEventData:(function(eventStruct,e,target){HEAPF64[eventStruct>>3]=JSEvents.tick();HEAP32[eventStruct+8>>2]=e.screenX;HEAP32[eventStruct+12>>2]=e.screenY;HEAP32[eventStruct+16>>2]=e.clientX;HEAP32[eventStruct+20>>2]=e.clientY;HEAP32[eventStruct+24>>2]=e.ctrlKey;HEAP32[eventStruct+28>>2]=e.shiftKey;HEAP32[eventStruct+32>>2]=e.altKey;HEAP32[eventStruct+36>>2]=e.metaKey;HEAP16[eventStruct+40>>1]=e.button;HEAP16[eventStruct+42>>1]=e.buttons;HEAP32[eventStruct+44>>2]=e["movementX"]||e["mozMovementX"]||e["webkitMovementX"]||e.screenX-JSEvents.previousScreenX;HEAP32[eventStruct+48>>2]=e["movementY"]||e["mozMovementY"]||e["webkitMovementY"]||e.screenY-JSEvents.previousScreenY;if(Module["canvas"]){var rect=Module["canvas"].getBoundingClientRect();HEAP32[eventStruct+60>>2]=e.clientX-rect.left;HEAP32[eventStruct+64>>2]=e.clientY-rect.top}else{HEAP32[eventStruct+60>>2]=0;HEAP32[eventStruct+64>>2]=0}if(target){var rect=JSEvents.getBoundingClientRectOrZeros(target);HEAP32[eventStruct+52>>2]=e.clientX-rect.left;HEAP32[eventStruct+56>>2]=e.clientY-rect.top}else{HEAP32[eventStruct+52>>2]=0;HEAP32[eventStruct+56>>2]=0}if(e.type!=="wheel"&&e.type!=="mousewheel"){JSEvents.previousScreenX=e.screenX;JSEvents.previousScreenY=e.screenY}}),registerMouseEventCallback:(function(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString){if(!JSEvents.mouseEvent){JSEvents.mouseEvent=_malloc(72)}target=JSEvents.findEventTarget(target);var handlerFunc=(function(event){var e=event||window.event;JSEvents.fillMouseEventData(JSEvents.mouseEvent,e,target);var shouldCancel=Module["dynCall_iiii"](callbackfunc,eventTypeId,JSEvents.mouseEvent,userData);if(shouldCancel){e.preventDefault()}});var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:handlerFunc,useCapture:useCapture};if(JSEvents.isInternetExplorer()&&eventTypeString=="mousedown")eventHandler.allowsDeferredCalls=false;JSEvents.registerOrRemoveHandler(eventHandler)}),registerWheelEventCallback:(function(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString){if(!JSEvents.wheelEvent){JSEvents.wheelEvent=_malloc(104)}target=JSEvents.findEventTarget(target);var wheelHandlerFunc=(function(event){var e=event||window.event;JSEvents.fillMouseEventData(JSEvents.wheelEvent,e,target);HEAPF64[JSEvents.wheelEvent+72>>3]=e["deltaX"];HEAPF64[JSEvents.wheelEvent+80>>3]=e["deltaY"];HEAPF64[JSEvents.wheelEvent+88>>3]=e["deltaZ"];HEAP32[JSEvents.wheelEvent+96>>2]=e["deltaMode"];var shouldCancel=Module["dynCall_iiii"](callbackfunc,eventTypeId,JSEvents.wheelEvent,userData);if(shouldCancel){e.preventDefault()}});var mouseWheelHandlerFunc=(function(event){var e=event||window.event;JSEvents.fillMouseEventData(JSEvents.wheelEvent,e,target);HEAPF64[JSEvents.wheelEvent+72>>3]=e["wheelDeltaX"]||0;HEAPF64[JSEvents.wheelEvent+80>>3]=-(e["wheelDeltaY"]?e["wheelDeltaY"]:e["wheelDelta"]);HEAPF64[JSEvents.wheelEvent+88>>3]=0;HEAP32[JSEvents.wheelEvent+96>>2]=0;var shouldCancel=Module["dynCall_iiii"](callbackfunc,eventTypeId,JSEvents.wheelEvent,userData);if(shouldCancel){e.preventDefault()}});var eventHandler={target:target,allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:eventTypeString=="wheel"?wheelHandlerFunc:mouseWheelHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}),pageScrollPos:(function(){if(window.pageXOffset>0||window.pageYOffset>0){return[window.pageXOffset,window.pageYOffset]}if(typeof document.documentElement.scrollLeft!=="undefined"||typeof document.documentElement.scrollTop!=="undefined"){return[document.documentElement.scrollLeft,document.documentElement.scrollTop]}return[document.body.scrollLeft|0,document.body.scrollTop|0]}),registerUiEventCallback:(function(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString){if(!JSEvents.uiEvent){JSEvents.uiEvent=_malloc(36)}if(eventTypeString=="scroll"&&!target){target=document}else{target=JSEvents.findEventTarget(target)}var handlerFunc=(function(event){var e=event||window.event;if(e.target!=target){return}var scrollPos=JSEvents.pageScrollPos();HEAP32[JSEvents.uiEvent>>2]=e.detail;HEAP32[JSEvents.uiEvent+4>>2]=document.body.clientWidth;HEAP32[JSEvents.uiEvent+8>>2]=document.body.clientHeight;HEAP32[JSEvents.uiEvent+12>>2]=window.innerWidth;HEAP32[JSEvents.uiEvent+16>>2]=window.innerHeight;HEAP32[JSEvents.uiEvent+20>>2]=window.outerWidth;HEAP32[JSEvents.uiEvent+24>>2]=window.outerHeight;HEAP32[JSEvents.uiEvent+28>>2]=scrollPos[0];HEAP32[JSEvents.uiEvent+32>>2]=scrollPos[1];var shouldCancel=Module["dynCall_iiii"](callbackfunc,eventTypeId,JSEvents.uiEvent,userData);if(shouldCancel){e.preventDefault()}});var eventHandler={target:target,allowsDeferredCalls:false,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:handlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}),getNodeNameForTarget:(function(target){if(!target)return"";if(target==window)return"#window";if(target==window.screen)return"#screen";return target&&target.nodeName?target.nodeName:""}),registerFocusEventCallback:(function(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString){if(!JSEvents.focusEvent){JSEvents.focusEvent=_malloc(256)}var handlerFunc=(function(event){var e=event||window.event;var nodeName=JSEvents.getNodeNameForTarget(e.target);var id=e.target.id?e.target.id:"";stringToUTF8(nodeName,JSEvents.focusEvent+0,128);stringToUTF8(id,JSEvents.focusEvent+128,128);var shouldCancel=Module["dynCall_iiii"](callbackfunc,eventTypeId,JSEvents.focusEvent,userData);if(shouldCancel){e.preventDefault()}});var eventHandler={target:JSEvents.findEventTarget(target),allowsDeferredCalls:false,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:handlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}),tick:(function(){if(window["performance"]&&window["performance"]["now"])return window["performance"]["now"]();else return Date.now()}),registerDeviceOrientationEventCallback:(function(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString){if(!JSEvents.deviceOrientationEvent){JSEvents.deviceOrientationEvent=_malloc(40)}var handlerFunc=(function(event){var e=event||window.event;HEAPF64[JSEvents.deviceOrientationEvent>>3]=JSEvents.tick();HEAPF64[JSEvents.deviceOrientationEvent+8>>3]=e.alpha;HEAPF64[JSEvents.deviceOrientationEvent+16>>3]=e.beta;HEAPF64[JSEvents.deviceOrientationEvent+24>>3]=e.gamma;HEAP32[JSEvents.deviceOrientationEvent+32>>2]=e.absolute;var shouldCancel=Module["dynCall_iiii"](callbackfunc,eventTypeId,JSEvents.deviceOrientationEvent,userData);if(shouldCancel){e.preventDefault()}});var eventHandler={target:JSEvents.findEventTarget(target),allowsDeferredCalls:false,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:handlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}),registerDeviceMotionEventCallback:(function(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString){if(!JSEvents.deviceMotionEvent){JSEvents.deviceMotionEvent=_malloc(80)}var handlerFunc=(function(event){var e=event||window.event;HEAPF64[JSEvents.deviceMotionEvent>>3]=JSEvents.tick();HEAPF64[JSEvents.deviceMotionEvent+8>>3]=e.acceleration.x;HEAPF64[JSEvents.deviceMotionEvent+16>>3]=e.acceleration.y;HEAPF64[JSEvents.deviceMotionEvent+24>>3]=e.acceleration.z;HEAPF64[JSEvents.deviceMotionEvent+32>>3]=e.accelerationIncludingGravity.x;HEAPF64[JSEvents.deviceMotionEvent+40>>3]=e.accelerationIncludingGravity.y;HEAPF64[JSEvents.deviceMotionEvent+48>>3]=e.accelerationIncludingGravity.z;HEAPF64[JSEvents.deviceMotionEvent+56>>3]=e.rotationRate.alpha;HEAPF64[JSEvents.deviceMotionEvent+64>>3]=e.rotationRate.beta;HEAPF64[JSEvents.deviceMotionEvent+72>>3]=e.rotationRate.gamma;var shouldCancel=Module["dynCall_iiii"](callbackfunc,eventTypeId,JSEvents.deviceMotionEvent,userData);if(shouldCancel){e.preventDefault()}});var eventHandler={target:JSEvents.findEventTarget(target),allowsDeferredCalls:false,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:handlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}),screenOrientation:(function(){if(!window.screen)return undefined;return window.screen.orientation||window.screen.mozOrientation||window.screen.webkitOrientation||window.screen.msOrientation}),fillOrientationChangeEventData:(function(eventStruct,e){var orientations=["portrait-primary","portrait-secondary","landscape-primary","landscape-secondary"];var orientations2=["portrait","portrait","landscape","landscape"];var orientationString=JSEvents.screenOrientation();var orientation=orientations.indexOf(orientationString);if(orientation==-1){orientation=orientations2.indexOf(orientationString)}HEAP32[eventStruct>>2]=1<<orientation;HEAP32[eventStruct+4>>2]=window.orientation}),registerOrientationChangeEventCallback:(function(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString){if(!JSEvents.orientationChangeEvent){JSEvents.orientationChangeEvent=_malloc(8)}if(!target){target=window.screen}else{target=JSEvents.findEventTarget(target)}var handlerFunc=(function(event){var e=event||window.event;JSEvents.fillOrientationChangeEventData(JSEvents.orientationChangeEvent,e);var shouldCancel=Module["dynCall_iiii"](callbackfunc,eventTypeId,JSEvents.orientationChangeEvent,userData);if(shouldCancel){e.preventDefault()}});if(eventTypeString=="orientationchange"&&window.screen.mozOrientation!==undefined){eventTypeString="mozorientationchange"}var eventHandler={target:target,allowsDeferredCalls:false,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:handlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}),fullscreenEnabled:(function(){return document.fullscreenEnabled||document.mozFullScreenEnabled||document.webkitFullscreenEnabled||document.msFullscreenEnabled}),fillFullscreenChangeEventData:(function(eventStruct,e){var fullscreenElement=document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement;var isFullscreen=!!fullscreenElement;HEAP32[eventStruct>>2]=isFullscreen;HEAP32[eventStruct+4>>2]=JSEvents.fullscreenEnabled();var reportedElement=isFullscreen?fullscreenElement:JSEvents.previousFullscreenElement;var nodeName=JSEvents.getNodeNameForTarget(reportedElement);var id=reportedElement&&reportedElement.id?reportedElement.id:"";stringToUTF8(nodeName,eventStruct+8,128);stringToUTF8(id,eventStruct+136,128);HEAP32[eventStruct+264>>2]=reportedElement?reportedElement.clientWidth:0;HEAP32[eventStruct+268>>2]=reportedElement?reportedElement.clientHeight:0;HEAP32[eventStruct+272>>2]=screen.width;HEAP32[eventStruct+276>>2]=screen.height;if(isFullscreen){JSEvents.previousFullscreenElement=fullscreenElement}}),registerFullscreenChangeEventCallback:(function(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString){if(!JSEvents.fullscreenChangeEvent){JSEvents.fullscreenChangeEvent=_malloc(280)}if(!target){target=document}else{target=JSEvents.findEventTarget(target)}var handlerFunc=(function(event){var e=event||window.event;JSEvents.fillFullscreenChangeEventData(JSEvents.fullscreenChangeEvent,e);var shouldCancel=Module["dynCall_iiii"](callbackfunc,eventTypeId,JSEvents.fullscreenChangeEvent,userData);if(shouldCancel){e.preventDefault()}});var eventHandler={target:target,allowsDeferredCalls:false,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:handlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}),resizeCanvasForFullscreen:(function(target,strategy){var restoreOldStyle=__registerRestoreOldStyle(target);var cssWidth=strategy.softFullscreen?window.innerWidth:screen.width;var cssHeight=strategy.softFullscreen?window.innerHeight:screen.height;var rect=target.getBoundingClientRect();var windowedCssWidth=rect.right-rect.left;var windowedCssHeight=rect.bottom-rect.top;var windowedRttWidth=target.width;var windowedRttHeight=target.height;if(strategy.scaleMode==3){__setLetterbox(target,(cssHeight-windowedCssHeight)/2,(cssWidth-windowedCssWidth)/2);cssWidth=windowedCssWidth;cssHeight=windowedCssHeight}else if(strategy.scaleMode==2){if(cssWidth*windowedRttHeight<windowedRttWidth*cssHeight){var desiredCssHeight=windowedRttHeight*cssWidth/windowedRttWidth;__setLetterbox(target,(cssHeight-desiredCssHeight)/2,0);cssHeight=desiredCssHeight}else{var desiredCssWidth=windowedRttWidth*cssHeight/windowedRttHeight;__setLetterbox(target,0,(cssWidth-desiredCssWidth)/2);cssWidth=desiredCssWidth}}if(!target.style.backgroundColor)target.style.backgroundColor="black";if(!document.body.style.backgroundColor)document.body.style.backgroundColor="black";target.style.width=cssWidth+"px";target.style.height=cssHeight+"px";if(strategy.filteringMode==1){target.style.imageRendering="optimizeSpeed";target.style.imageRendering="-moz-crisp-edges";target.style.imageRendering="-o-crisp-edges";target.style.imageRendering="-webkit-optimize-contrast";target.style.imageRendering="optimize-contrast";target.style.imageRendering="crisp-edges";target.style.imageRendering="pixelated"}var dpiScale=strategy.canvasResolutionScaleMode==2?window.devicePixelRatio:1;if(strategy.canvasResolutionScaleMode!=0){target.width=cssWidth*dpiScale;target.height=cssHeight*dpiScale;if(target.GLctxObject)target.GLctxObject.GLctx.viewport(0,0,target.width,target.height)}return restoreOldStyle}),requestFullscreen:(function(target,strategy){if(strategy.scaleMode!=0||strategy.canvasResolutionScaleMode!=0){JSEvents.resizeCanvasForFullscreen(target,strategy)}if(target.requestFullscreen){target.requestFullscreen()}else if(target.msRequestFullscreen){target.msRequestFullscreen()}else if(target.mozRequestFullScreen){target.mozRequestFullScreen()}else if(target.mozRequestFullscreen){target.mozRequestFullscreen()}else if(target.webkitRequestFullscreen){target.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}else{if(typeof JSEvents.fullscreenEnabled()==="undefined"){return-1}else{return-3}}if(strategy.canvasResizedCallback){Module["dynCall_iiii"](strategy.canvasResizedCallback,37,0,strategy.canvasResizedCallbackUserData)}return 0}),fillPointerlockChangeEventData:(function(eventStruct,e){var pointerLockElement=document.pointerLockElement||document.mozPointerLockElement||document.webkitPointerLockElement||document.msPointerLockElement;var isPointerlocked=!!pointerLockElement;HEAP32[eventStruct>>2]=isPointerlocked;var nodeName=JSEvents.getNodeNameForTarget(pointerLockElement);var id=pointerLockElement&&pointerLockElement.id?pointerLockElement.id:"";stringToUTF8(nodeName,eventStruct+4,128);stringToUTF8(id,eventStruct+132,128)}),registerPointerlockChangeEventCallback:(function(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString){if(!JSEvents.pointerlockChangeEvent){JSEvents.pointerlockChangeEvent=_malloc(260)}if(!target){target=document}else{target=JSEvents.findEventTarget(target)}var handlerFunc=(function(event){var e=event||window.event;JSEvents.fillPointerlockChangeEventData(JSEvents.pointerlockChangeEvent,e);var shouldCancel=Module["dynCall_iiii"](callbackfunc,eventTypeId,JSEvents.pointerlockChangeEvent,userData);if(shouldCancel){e.preventDefault()}});var eventHandler={target:target,allowsDeferredCalls:false,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:handlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}),registerPointerlockErrorEventCallback:(function(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString){if(!target){target=document}else{target=JSEvents.findEventTarget(target)}var handlerFunc=(function(event){var e=event||window.event;var shouldCancel=Module["dynCall_iiii"](callbackfunc,eventTypeId,0,userData);if(shouldCancel){e.preventDefault()}});var eventHandler={target:target,allowsDeferredCalls:false,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:handlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}),requestPointerLock:(function(target){if(target.requestPointerLock){target.requestPointerLock()}else if(target.mozRequestPointerLock){target.mozRequestPointerLock()}else if(target.webkitRequestPointerLock){target.webkitRequestPointerLock()}else if(target.msRequestPointerLock){target.msRequestPointerLock()}else{if(document.body.requestPointerLock||document.body.mozRequestPointerLock||document.body.webkitRequestPointerLock||document.body.msRequestPointerLock){return-3}else{return-1}}return 0}),fillVisibilityChangeEventData:(function(eventStruct,e){var visibilityStates=["hidden","visible","prerender","unloaded"];var visibilityState=visibilityStates.indexOf(document.visibilityState);HEAP32[eventStruct>>2]=document.hidden;HEAP32[eventStruct+4>>2]=visibilityState}),registerVisibilityChangeEventCallback:(function(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString){if(!JSEvents.visibilityChangeEvent){JSEvents.visibilityChangeEvent=_malloc(8)}if(!target){target=document}else{target=JSEvents.findEventTarget(target)}var handlerFunc=(function(event){var e=event||window.event;JSEvents.fillVisibilityChangeEventData(JSEvents.visibilityChangeEvent,e);var shouldCancel=Module["dynCall_iiii"](callbackfunc,eventTypeId,JSEvents.visibilityChangeEvent,userData);if(shouldCancel){e.preventDefault()}});var eventHandler={target:target,allowsDeferredCalls:false,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:handlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}),registerTouchEventCallback:(function(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString){if(!JSEvents.touchEvent){JSEvents.touchEvent=_malloc(1684)}target=JSEvents.findEventTarget(target);var handlerFunc=(function(event){var e=event||window.event;var touches={};for(var i=0;i<e.touches.length;++i){var touch=e.touches[i];touches[touch.identifier]=touch}for(var i=0;i<e.changedTouches.length;++i){var touch=e.changedTouches[i];touches[touch.identifier]=touch;touch.changed=true}for(var i=0;i<e.targetTouches.length;++i){var touch=e.targetTouches[i];touches[touch.identifier].onTarget=true}var ptr=JSEvents.touchEvent;HEAP32[ptr+4>>2]=e.ctrlKey;HEAP32[ptr+8>>2]=e.shiftKey;HEAP32[ptr+12>>2]=e.altKey;HEAP32[ptr+16>>2]=e.metaKey;ptr+=20;var canvasRect=Module["canvas"]?Module["canvas"].getBoundingClientRect():undefined;var targetRect=JSEvents.getBoundingClientRectOrZeros(target);var numTouches=0;for(var i in touches){var t=touches[i];HEAP32[ptr>>2]=t.identifier;HEAP32[ptr+4>>2]=t.screenX;HEAP32[ptr+8>>2]=t.screenY;HEAP32[ptr+12>>2]=t.clientX;HEAP32[ptr+16>>2]=t.clientY;HEAP32[ptr+20>>2]=t.pageX;HEAP32[ptr+24>>2]=t.pageY;HEAP32[ptr+28>>2]=t.changed;HEAP32[ptr+32>>2]=t.onTarget;if(canvasRect){HEAP32[ptr+44>>2]=t.clientX-canvasRect.left;HEAP32[ptr+48>>2]=t.clientY-canvasRect.top}else{HEAP32[ptr+44>>2]=0;HEAP32[ptr+48>>2]=0}HEAP32[ptr+36>>2]=t.clientX-targetRect.left;HEAP32[ptr+40>>2]=t.clientY-targetRect.top;ptr+=52;if(++numTouches>=32){break}}HEAP32[JSEvents.touchEvent>>2]=numTouches;var shouldCancel=Module["dynCall_iiii"](callbackfunc,eventTypeId,JSEvents.touchEvent,userData);if(shouldCancel){e.preventDefault()}});var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:handlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}),fillGamepadEventData:(function(eventStruct,e){HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i<e.axes.length;++i){HEAPF64[eventStruct+i*8+16>>3]=e.axes[i]}for(var i=0;i<e.buttons.length;++i){if(typeof e.buttons[i]==="object"){HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i<e.buttons.length;++i){if(typeof e.buttons[i]==="object"){HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)}),registerGamepadEventCallback:(function(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString){if(!JSEvents.gamepadEvent){JSEvents.gamepadEvent=_malloc(1432)}var handlerFunc=(function(event){var e=event||window.event;JSEvents.fillGamepadEventData(JSEvents.gamepadEvent,e.gamepad);var shouldCancel=Module["dynCall_iiii"](callbackfunc,eventTypeId,JSEvents.gamepadEvent,userData);if(shouldCancel){e.preventDefault()}});var eventHandler={target:JSEvents.findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:handlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}),registerBeforeUnloadEventCallback:(function(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString){var handlerFunc=(function(event){var e=event||window.event;var confirmationMessage=Module["dynCall_iiii"](callbackfunc,eventTypeId,0,userData);if(confirmationMessage){confirmationMessage=Pointer_stringify(confirmationMessage)}if(confirmationMessage){e.preventDefault();e.returnValue=confirmationMessage;return confirmationMessage}});var eventHandler={target:JSEvents.findEventTarget(target),allowsDeferredCalls:false,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:handlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}),battery:(function(){return navigator.battery||navigator.mozBattery||navigator.webkitBattery}),fillBatteryEventData:(function(eventStruct,e){HEAPF64[eventStruct>>3]=e.chargingTime;HEAPF64[eventStruct+8>>3]=e.dischargingTime;HEAPF64[eventStruct+16>>3]=e.level;HEAP32[eventStruct+24>>2]=e.charging}),registerBatteryEventCallback:(function(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString){if(!JSEvents.batteryEvent){JSEvents.batteryEvent=_malloc(32)}var handlerFunc=(function(event){var e=event||window.event;JSEvents.fillBatteryEventData(JSEvents.batteryEvent,JSEvents.battery());var shouldCancel=Module["dynCall_iiii"](callbackfunc,eventTypeId,JSEvents.batteryEvent,userData);if(shouldCancel){e.preventDefault()}});var eventHandler={target:JSEvents.findEventTarget(target),allowsDeferredCalls:false,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:handlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}),registerWebGlEventCallback:(function(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString){if(!target){target=Module["canvas"]}var handlerFunc=(function(event){var e=event||window.event;var shouldCancel=Module["dynCall_iiii"](callbackfunc,eventTypeId,0,userData);if(shouldCancel){e.preventDefault()}});var eventHandler={target:JSEvents.findEventTarget(target),allowsDeferredCalls:false,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:handlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)})};var __currentFullscreenStrategy={};function _emscripten_exit_fullscreen(){if(typeof JSEvents.fullscreenEnabled()==="undefined")return-1;JSEvents.removeDeferredCalls(JSEvents.requestFullscreen);if(document.exitFullscreen){document.exitFullscreen()}else if(document.msExitFullscreen){document.msExitFullscreen()}else if(document.mozCancelFullScreen){document.mozCancelFullScreen()}else if(document.webkitExitFullscreen){document.webkitExitFullscreen()}else{return-1}if(__currentFullscreenStrategy.canvasResizedCallback){Module["dynCall_iiii"](__currentFullscreenStrategy.canvasResizedCallback,37,0,__currentFullscreenStrategy.canvasResizedCallbackUserData)}return 0}function _emscripten_exit_pointerlock(){JSEvents.removeDeferredCalls(JSEvents.requestPointerLock);if(document.exitPointerLock){document.exitPointerLock()}else if(document.msExitPointerLock){document.msExitPointerLock()}else if(document.mozExitPointerLock){document.mozExitPointerLock()}else if(document.webkitExitPointerLock){document.webkitExitPointerLock()}else{return-1}return 0}function _emscripten_get_device_pixel_ratio(){return window.devicePixelRatio||1}function _emscripten_get_element_css_size(target,width,height){if(!target){target=Module["canvas"]}else{target=JSEvents.findEventTarget(target)}if(!target)return-4;if(target.getBoundingClientRect){var rect=target.getBoundingClientRect();HEAPF64[width>>3]=rect.right-rect.left;HEAPF64[height>>3]=rect.bottom-rect.top}else{HEAPF64[width>>3]=target.clientWidth;HEAPF64[height>>3]=target.clientHeight}return 0}function __emscripten_sample_gamepad_data(){if(!JSEvents.numGamepadsConnected)return;if(Browser.mainLoop.currentFrameNumber!==JSEvents.lastGamepadStateFrame||!Browser.mainLoop.currentFrameNumber){JSEvents.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads:null;JSEvents.lastGamepadStateFrame=Browser.mainLoop.currentFrameNumber}}function _emscripten_get_gamepad_status(index,gamepadState){__emscripten_sample_gamepad_data();if(!JSEvents.lastGamepadState)return-1;if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;JSEvents.fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0}function _emscripten_get_num_gamepads(){if(!JSEvents.numGamepadsConnected)return 0;__emscripten_sample_gamepad_data();if(!JSEvents.lastGamepadState)return-1;return JSEvents.lastGamepadState.length}function _emscripten_get_pointerlock_status(pointerlockStatus){if(pointerlockStatus)JSEvents.fillPointerlockChangeEventData(pointerlockStatus);if(!document.body||!document.body.requestPointerLock&&!document.body.mozRequestPointerLock&&!document.body.webkitRequestPointerLock&&!document.body.msRequestPointerLock){return-1}return 0}function _emscripten_glActiveTexture(x0){GLctx["activeTexture"](x0)}function _emscripten_glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glBeginConditionalRender(){err("missing function: emscripten_glBeginConditionalRender");abort(-1)}function _emscripten_glBeginTransformFeedback(){err("missing function: emscripten_glBeginTransformFeedback");abort(-1)}function _emscripten_glBindAttribLocation(program,index,name){name=Pointer_stringify(name);GLctx.bindAttribLocation(GL.programs[program],index,name)}function _emscripten_glBindBuffer(target,buffer){var bufferObj=buffer?GL.buffers[buffer]:null;GLctx.bindBuffer(target,bufferObj)}function _emscripten_glBindBufferBase(){err("missing function: emscripten_glBindBufferBase");abort(-1)}function _emscripten_glBindBufferRange(){err("missing function: emscripten_glBindBufferRange");abort(-1)}function _emscripten_glBindFragDataLocation(){err("missing function: emscripten_glBindFragDataLocation");abort(-1)}function _emscripten_glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,framebuffer?GL.framebuffers[framebuffer]:null)}function _emscripten_glBindProgramARB(){err("missing function: emscripten_glBindProgramARB");abort(-1)}function _emscripten_glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,renderbuffer?GL.renderbuffers[renderbuffer]:null)}function _emscripten_glBindTexture(target,texture){GLctx.bindTexture(target,texture?GL.textures[texture]:null)}function _emscripten_glBindVertexArray(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _emscripten_glBlendColor(x0,x1,x2,x3){GLctx["blendColor"](x0,x1,x2,x3)}function _emscripten_glBlendEquation(x0){GLctx["blendEquation"](x0)}function _emscripten_glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}function _emscripten_glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _emscripten_glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glBufferData(target,size,data,usage){if(!data){GLctx.bufferData(target,size,usage)}else{GLctx.bufferData(target,HEAPU8.subarray(data,data+size),usage)}}function _emscripten_glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _emscripten_glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}function _emscripten_glClampColor(){err("missing function: emscripten_glClampColor");abort(-1)}function _emscripten_glClear(x0){GLctx["clear"](x0)}function _emscripten_glClearBufferfi(){err("missing function: emscripten_glClearBufferfi");abort(-1)}function _emscripten_glClearBufferfv(){err("missing function: emscripten_glClearBufferfv");abort(-1)}function _emscripten_glClearBufferiv(){err("missing function: emscripten_glClearBufferiv");abort(-1)}function _emscripten_glClearBufferuiv(){err("missing function: emscripten_glClearBufferuiv");abort(-1)}function _emscripten_glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _emscripten_glClearDepth(x0){GLctx["clearDepth"](x0)}function _emscripten_glClearDepthf(x0){GLctx["clearDepth"](x0)}function _emscripten_glClearStencil(x0){GLctx["clearStencil"](x0)}function _emscripten_glClientActiveTexture(){err("missing function: emscripten_glClientActiveTexture");abort(-1)}function _emscripten_glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _emscripten_glColorMaski(){err("missing function: emscripten_glColorMaski");abort(-1)}function _emscripten_glColorPointer(){err("missing function: emscripten_glColorPointer");abort(-1)}function _emscripten_glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _emscripten_glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;GL.programs[id]=program;return id}function _emscripten_glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _emscripten_glCullFace(x0){GLctx["cullFace"](x0)}function _emscripten_glDeleteBuffers(n,buffers){for(var i=0;i<n;i++){var id=HEAP32[buffers+i*4>>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null;if(id==GL.currArrayBuffer)GL.currArrayBuffer=0;if(id==GL.currElementArrayBuffer)GL.currElementArrayBuffer=0}}function _emscripten_glDeleteFramebuffers(n,framebuffers){for(var i=0;i<n;++i){var id=HEAP32[framebuffers+i*4>>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _emscripten_glDeleteObjectARB(){err("missing function: emscripten_glDeleteObjectARB");abort(-1)}function _emscripten_glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null;GL.programInfos[id]=null}function _emscripten_glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i<n;i++){var id=HEAP32[renderbuffers+i*4>>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _emscripten_glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _emscripten_glDeleteTextures(n,textures){for(var i=0;i<n;i++){var id=HEAP32[textures+i*4>>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _emscripten_glDeleteVertexArrays(n,vaos){for(var i=0;i<n;i++){var id=HEAP32[vaos+i*4>>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDepthFunc(x0){GLctx["depthFunc"](x0)}function _emscripten_glDepthMask(flag){GLctx.depthMask(!!flag)}function _emscripten_glDepthRange(x0,x1){GLctx["depthRange"](x0,x1)}function _emscripten_glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _emscripten_glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glDisable(x0){GLctx["disable"](x0)}function _emscripten_glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _emscripten_glDisablei(){err("missing function: emscripten_glDisablei");abort(-1)}function _emscripten_glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _emscripten_glDrawArraysInstanced(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}function _emscripten_glDrawBuffers(n,bufs){var bufArray=GL.tempFixedLengthArray[n];for(var i=0;i<n;i++){bufArray[i]=HEAP32[bufs+i*4>>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _emscripten_glDrawElementsInstanced(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glDrawRangeElements(){err("missing function: emscripten_glDrawRangeElements");abort(-1)}function _emscripten_glEnable(x0){GLctx["enable"](x0)}function _emscripten_glEnableClientState(){err("missing function: emscripten_glEnableClientState");abort(-1)}function _emscripten_glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _emscripten_glEnablei(){err("missing function: emscripten_glEnablei");abort(-1)}function _emscripten_glEndConditionalRender(){err("missing function: emscripten_glEndConditionalRender");abort(-1)}function _emscripten_glEndTransformFeedback(){err("missing function: emscripten_glEndTransformFeedback");abort(-1)}function _emscripten_glFinish(){GLctx["finish"]()}function _emscripten_glFlush(){GLctx["flush"]()}function _emscripten_glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _emscripten_glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _emscripten_glFrontFace(x0){GLctx["frontFace"](x0)}function _emscripten_glFrustum(){err("missing function: emscripten_glFrustum");abort(-1)}function _emscripten_glGenBuffers(n,buffers){for(var i=0;i<n;i++){var buffer=GLctx.createBuffer();if(!buffer){GL.recordError(1282);while(i<n)HEAP32[buffers+i++*4>>2]=0;return}var id=GL.getNewId(GL.buffers);buffer.name=id;GL.buffers[id]=buffer;HEAP32[buffers+i*4>>2]=id}}function _emscripten_glGenFramebuffers(n,ids){for(var i=0;i<n;++i){var framebuffer=GLctx.createFramebuffer();if(!framebuffer){GL.recordError(1282);while(i<n)HEAP32[ids+i++*4>>2]=0;return}var id=GL.getNewId(GL.framebuffers);framebuffer.name=id;GL.framebuffers[id]=framebuffer;HEAP32[ids+i*4>>2]=id}}function _emscripten_glGenRenderbuffers(n,renderbuffers){for(var i=0;i<n;i++){var renderbuffer=GLctx.createRenderbuffer();if(!renderbuffer){GL.recordError(1282);while(i<n)HEAP32[renderbuffers+i++*4>>2]=0;return}var id=GL.getNewId(GL.renderbuffers);renderbuffer.name=id;GL.renderbuffers[id]=renderbuffer;HEAP32[renderbuffers+i*4>>2]=id}}function _emscripten_glGenTextures(n,textures){for(var i=0;i<n;i++){var texture=GLctx.createTexture();if(!texture){GL.recordError(1282);while(i<n)HEAP32[textures+i++*4>>2]=0;return}var id=GL.getNewId(GL.textures);texture.name=id;GL.textures[id]=texture;HEAP32[textures+i*4>>2]=id}}function _emscripten_glGenVertexArrays(n,arrays){for(var i=0;i<n;i++){var vao=GLctx["createVertexArray"]();if(!vao){GL.recordError(1282);while(i<n)HEAP32[arrays+i++*4>>2]=0;return}var id=GL.getNewId(GL.vaos);vao.name=id;GL.vaos[id]=vao;HEAP32[arrays+i*4>>2]=id}}function _emscripten_glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function _emscripten_glGetActiveAttrib(program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx.getActiveAttrib(program,index);if(!info)return;if(bufSize>0&&name){var numBytesWrittenExclNull=stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull}else{if(length)HEAP32[length>>2]=0}if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}function _emscripten_glGetActiveUniform(program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx.getActiveUniform(program,index);if(!info)return;if(bufSize>0&&name){var numBytesWrittenExclNull=stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull}else{if(length)HEAP32[length>>2]=0}if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}function _emscripten_glGetActiveUniformBlockName(){err("missing function: emscripten_glGetActiveUniformBlockName");abort(-1)}function _emscripten_glGetActiveUniformBlockiv(){err("missing function: emscripten_glGetActiveUniformBlockiv");abort(-1)}function _emscripten_glGetActiveUniformName(){err("missing function: emscripten_glGetActiveUniformName");abort(-1)}function _emscripten_glGetActiveUniformsiv(){err("missing function: emscripten_glGetActiveUniformsiv");abort(-1)}function _emscripten_glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i<len;++i){var id=GL.shaders.indexOf(result[i]);HEAP32[shaders+i*4>>2]=id}}function _emscripten_glGetAttribLocation(program,name){program=GL.programs[program];name=Pointer_stringify(name);return GLctx.getAttribLocation(program,name)}function _emscripten_glGetBooleani_v(){err("missing function: emscripten_glGetBooleani_v");abort(-1)}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=="Integer"&&type!=="Integer64"){GL.recordError(1280)}return;case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats.length;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34068:{ret=0;break};default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i<result.length;++i){switch(type){case"Integer":HEAP32[p+i*4>>2]=result[i];break;case"Float":HEAPF32[p+i*4>>2]=result[i];break;case"Boolean":HEAP8[p+i>>0]=result[i]?1:0;break;default:throw"internal glGet error, bad type: "+type}}return}else if(result instanceof WebGLBuffer||result instanceof WebGLProgram||result instanceof WebGLFramebuffer||result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){ret=result.name|0}else{GL.recordError(1280);return}break;default:GL.recordError(1280);return}}switch(type){case"Integer64":tempI64=[ret>>>0,(tempDouble=ret,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[p>>2]=tempI64[0],HEAP32[p+4>>2]=tempI64[1];break;case"Integer":HEAP32[p>>2]=ret;break;case"Float":HEAPF32[p>>2]=ret;break;case"Boolean":HEAP8[p>>0]=ret?1:0;break;default:throw"internal glGet error, bad type: "+type}}function _emscripten_glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,"Boolean")}function _emscripten_glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}function _emscripten_glGetError(){if(GL.lastError){var error=GL.lastError;GL.lastError=0;return error}else{return GLctx.getError()}}function _emscripten_glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,"Float")}function _emscripten_glGetFragDataLocation(){err("missing function: emscripten_glGetFragDataLocation");abort(-1)}function _emscripten_glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}function _emscripten_glGetInfoLogARB(){err("missing function: emscripten_glGetInfoLogARB");abort(-1)}function _emscripten_glGetIntegeri_v(){err("missing function: emscripten_glGetIntegeri_v");abort(-1)}function _emscripten_glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,"Integer")}function _emscripten_glGetObjectParameterivARB(){err("missing function: emscripten_glGetObjectParameterivARB");abort(-1)}function _emscripten_glGetPointerv(){err("missing function: emscripten_glGetPointerv");abort(-1)}function _emscripten_glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";if(maxLength>0&&infoLog){var numBytesWrittenExclNull=stringToUTF8(log,infoLog,maxLength);if(length)HEAP32[length>>2]=numBytesWrittenExclNull}else{if(length)HEAP32[length>>2]=0}}function _emscripten_glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}var ptable=GL.programInfos[program];if(!ptable){GL.recordError(1282);return}if(pname==35716){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){HEAP32[p>>2]=ptable.maxUniformLength}else if(pname==35722){if(ptable.maxAttributeLength==-1){program=GL.programs[program];var numAttribs=GLctx.getProgramParameter(program,GLctx.ACTIVE_ATTRIBUTES);ptable.maxAttributeLength=0;for(var i=0;i<numAttribs;++i){var activeAttrib=GLctx.getActiveAttrib(program,i);ptable.maxAttributeLength=Math.max(ptable.maxAttributeLength,activeAttrib.name.length+1)}}HEAP32[p>>2]=ptable.maxAttributeLength}else if(pname==35381){if(ptable.maxUniformBlockNameLength==-1){program=GL.programs[program];var numBlocks=GLctx.getProgramParameter(program,GLctx.ACTIVE_UNIFORM_BLOCKS);ptable.maxUniformBlockNameLength=0;for(var i=0;i<numBlocks;++i){var activeBlockName=GLctx.getActiveUniformBlockName(program,i);ptable.maxUniformBlockNameLength=Math.max(ptable.maxUniformBlockNameLength,activeBlockName.length+1)}}HEAP32[p>>2]=ptable.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(GL.programs[program],pname)}}function _emscripten_glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}function _emscripten_glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";if(maxLength>0&&infoLog){var numBytesWrittenExclNull=stringToUTF8(log,infoLog,maxLength);if(length)HEAP32[length>>2]=numBytesWrittenExclNull}else{if(length)HEAP32[length>>2]=0}}function _emscripten_glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}function _emscripten_glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;if(bufSize>0&&source){var numBytesWrittenExclNull=stringToUTF8(result,source,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull}else{if(length)HEAP32[length>>2]=0}}function _emscripten_glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source===null||source.length==0?0:source.length+1;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function _emscripten_glGetString(name_){if(GL.stringCache[name_])return GL.stringCache[name_];var ret;switch(name_){case 7936:case 7937:case 37445:case 37446:ret=allocate(intArrayFromString(GLctx.getParameter(name_)),"i8",ALLOC_NORMAL);break;case 7938:var glVersion=GLctx.getParameter(GLctx.VERSION);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=allocate(intArrayFromString(glVersion),"i8",ALLOC_NORMAL);break;case 7939:var exts=GLctx.getSupportedExtensions();var gl_exts=[];for(var i=0;i<exts.length;++i){gl_exts.push(exts[i]);gl_exts.push("GL_"+exts[i])}ret=allocate(intArrayFromString(gl_exts.join(" ")),"i8",ALLOC_NORMAL);break;case 35724:var glslVersion=GLctx.getParameter(GLctx.SHADING_LANGUAGE_VERSION);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=allocate(intArrayFromString(glslVersion),"i8",ALLOC_NORMAL);break;default:GL.recordError(1280);return 0}GL.stringCache[name_]=ret;return ret}function _emscripten_glGetStringi(){err("missing function: emscripten_glGetStringi");abort(-1)}function _emscripten_glGetTexParameterIiv(){err("missing function: emscripten_glGetTexParameterIiv");abort(-1)}function _emscripten_glGetTexParameterIuiv(){err("missing function: emscripten_glGetTexParameterIuiv");abort(-1)}function _emscripten_glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTransformFeedbackVarying(){err("missing function: emscripten_glGetTransformFeedbackVarying");abort(-1)}function _emscripten_glGetUniformBlockIndex(){err("missing function: emscripten_glGetUniformBlockIndex");abort(-1)}function _emscripten_glGetUniformIndices(){err("missing function: emscripten_glGetUniformIndices");abort(-1)}function _emscripten_glGetUniformLocation(program,name){name=Pointer_stringify(name);var arrayOffset=0;if(name.indexOf("]",name.length-1)!==-1){var ls=name.lastIndexOf("[");var arrayIndex=name.slice(ls+1,-1);if(arrayIndex.length>0){arrayOffset=parseInt(arrayIndex);if(arrayOffset<0){return-1}}name=name.slice(0,ls)}var ptable=GL.programInfos[program];if(!ptable){return-1}var utable=ptable.uniforms;var uniformInfo=utable[name];if(uniformInfo&&arrayOffset<uniformInfo[0]){return uniformInfo[1]+arrayOffset}else{return-1}}function emscriptenWebGLGetUniform(program,location,params,type){if(!params){GL.recordError(1281);return}var data=GLctx.getUniform(GL.programs[program],GL.uniforms[location]);if(typeof data=="number"||typeof data=="boolean"){switch(type){case"Integer":HEAP32[params>>2]=data;break;case"Float":HEAPF32[params>>2]=data;break;default:throw"internal emscriptenWebGLGetUniform() error, bad type: "+type}}else{for(var i=0;i<data.length;i++){switch(type){case"Integer":HEAP32[params+i*4>>2]=data[i];break;case"Float":HEAPF32[params+i*4>>2]=data[i];break;default:throw"internal emscriptenWebGLGetUniform() error, bad type: "+type}}}}function _emscripten_glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,"Float")}function _emscripten_glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,"Integer")}function _emscripten_glGetUniformuiv(){err("missing function: emscripten_glGetUniformuiv");abort(-1)}function _emscripten_glGetVertexAttribIiv(){err("missing function: emscripten_glGetVertexAttribIiv");abort(-1)}function _emscripten_glGetVertexAttribIuiv(){err("missing function: emscripten_glGetVertexAttribIuiv");abort(-1)}function _emscripten_glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case"Integer":HEAP32[params>>2]=data;break;case"Float":HEAPF32[params>>2]=data;break;case"FloatToInteger":HEAP32[params>>2]=Math.fround(data);break;default:throw"internal emscriptenWebGLGetVertexAttrib() error, bad type: "+type}}else{for(var i=0;i<data.length;i++){switch(type){case"Integer":HEAP32[params+i*4>>2]=data[i];break;case"Float":HEAPF32[params+i*4>>2]=data[i];break;case"FloatToInteger":HEAP32[params+i*4>>2]=Math.fround(data[i]);break;default:throw"internal emscriptenWebGLGetVertexAttrib() error, bad type: "+type}}}}function _emscripten_glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,"Float")}function _emscripten_glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,"FloatToInteger")}function _emscripten_glHint(x0,x1){GLctx["hint"](x0,x1)}function _emscripten_glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}function _emscripten_glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _emscripten_glIsEnabledi(){err("missing function: emscripten_glIsEnabledi");abort(-1)}function _emscripten_glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}function _emscripten_glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}function _emscripten_glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}function _emscripten_glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}function _emscripten_glIsTexture(texture){var texture=GL.textures[texture];if(!texture)return 0;return GLctx.isTexture(texture)}function _emscripten_glIsVertexArray(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glLineWidth(x0){GLctx["lineWidth"](x0)}function _emscripten_glLinkProgram(program){GLctx.linkProgram(GL.programs[program]);GL.programInfos[program]=null;GL.populateUniformTable(program)}function _emscripten_glLoadIdentity(){throw"Legacy GL function (glLoadIdentity) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation."}function _emscripten_glLoadMatrixf(){err("missing function: emscripten_glLoadMatrixf");abort(-1)}function _emscripten_glMatrixMode(){throw"Legacy GL function (glMatrixMode) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation."}function _emscripten_glNormalPointer(){err("missing function: emscripten_glNormalPointer");abort(-1)}function _emscripten_glPixelStorei(pname,param){if(pname==3333){GL.packAlignment=param}else if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _emscripten_glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function emscriptenWebGLComputeImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return Math.floor((x+y-1)/y)*y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height<=0?0:(height-1)*alignedRowSize+plainRowSize}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var sizePerPixel;var numChannels;switch(format){case 6406:case 6409:case 6402:numChannels=1;break;case 6410:numChannels=2;break;case 6407:case 35904:numChannels=3;break;case 6408:case 35906:numChannels=4;break;default:GL.recordError(1280);return null}switch(type){case 5121:sizePerPixel=numChannels*1;break;case 5123:case 36193:sizePerPixel=numChannels*2;break;case 5125:case 5126:sizePerPixel=numChannels*4;break;case 34042:sizePerPixel=4;break;case 33635:case 32819:case 32820:sizePerPixel=2;break;default:GL.recordError(1280);return null}var bytes=emscriptenWebGLComputeImageSize(width,height,sizePerPixel,GL.unpackAlignment);switch(type){case 5121:return HEAPU8.subarray(pixels,pixels+bytes);case 5126:return HEAPF32.subarray(pixels>>2,pixels+bytes>>2);case 5125:case 34042:return HEAPU32.subarray(pixels>>2,pixels+bytes>>2);case 5123:case 33635:case 32819:case 32820:case 36193:return HEAPU16.subarray(pixels>>1,pixels+bytes>>1);default:GL.recordError(1280);return null}}function _emscripten_glReadPixels(x,y,width,height,format,type,pixels){var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _emscripten_glReleaseShaderCompiler(){}function _emscripten_glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _emscripten_glRotatef(){err("missing function: emscripten_glRotatef");abort(-1)}function _emscripten_glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}function _emscripten_glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _emscripten_glShaderBinary(){GL.recordError(1280)}function _emscripten_glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _emscripten_glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}function _emscripten_glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glStencilMask(x0){GLctx["stencilMask"](x0)}function _emscripten_glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}function _emscripten_glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}function _emscripten_glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}function _emscripten_glTexCoordPointer(){err("missing function: emscripten_glTexCoordPointer");abort(-1)}function _emscripten_glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat);GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixelData)}function _emscripten_glTexImage3D(){err("missing function: emscripten_glTexImage3D");abort(-1)}function _emscripten_glTexParameterIiv(){err("missing function: emscripten_glTexParameterIiv");abort(-1)}function _emscripten_glTexParameterIuiv(){err("missing function: emscripten_glTexParameterIuiv");abort(-1)}function _emscripten_glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _emscripten_glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}function _emscripten_glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _emscripten_glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}function _emscripten_glTexStorage2D(){err("missing function: emscripten_glTexStorage2D");abort(-1)}function _emscripten_glTexStorage3D(){err("missing function: emscripten_glTexStorage3D");abort(-1)}function _emscripten_glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _emscripten_glTexSubImage3D(){err("missing function: emscripten_glTexSubImage3D");abort(-1)}function _emscripten_glTransformFeedbackVaryings(){err("missing function: emscripten_glTransformFeedbackVaryings");abort(-1)}function _emscripten_glUniform1f(location,v0){GLctx.uniform1f(GL.uniforms[location],v0)}function _emscripten_glUniform1fv(location,count,value){var view;if(count<=GL.MINI_TEMP_BUFFER_SIZE){view=GL.miniTempBufferViews[count-1];for(var i=0;i<count;++i){view[i]=HEAPF32[value+4*i>>2]}}else{view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(GL.uniforms[location],view)}function _emscripten_glUniform1i(location,v0){GLctx.uniform1i(GL.uniforms[location],v0)}function _emscripten_glUniform1iv(location,count,value){GLctx.uniform1iv(GL.uniforms[location],HEAP32.subarray(value>>2,value+count*4>>2))}function _emscripten_glUniform1ui(){err("missing function: emscripten_glUniform1ui");abort(-1)}function _emscripten_glUniform2f(location,v0,v1){GLctx.uniform2f(GL.uniforms[location],v0,v1)}function _emscripten_glUniform2fv(location,count,value){var view;if(2*count<=GL.MINI_TEMP_BUFFER_SIZE){view=GL.miniTempBufferViews[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(GL.uniforms[location],view)}function _emscripten_glUniform2i(location,v0,v1){GLctx.uniform2i(GL.uniforms[location],v0,v1)}function _emscripten_glUniform2iv(location,count,value){GLctx.uniform2iv(GL.uniforms[location],HEAP32.subarray(value>>2,value+count*8>>2))}function _emscripten_glUniform2ui(){err("missing function: emscripten_glUniform2ui");abort(-1)}function _emscripten_glUniform3f(location,v0,v1,v2){GLctx.uniform3f(GL.uniforms[location],v0,v1,v2)}function _emscripten_glUniform3fv(location,count,value){var view;if(3*count<=GL.MINI_TEMP_BUFFER_SIZE){view=GL.miniTempBufferViews[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(GL.uniforms[location],view)}function _emscripten_glUniform3i(location,v0,v1,v2){GLctx.uniform3i(GL.uniforms[location],v0,v1,v2)}function _emscripten_glUniform3iv(location,count,value){GLctx.uniform3iv(GL.uniforms[location],HEAP32.subarray(value>>2,value+count*12>>2))}function _emscripten_glUniform3ui(){err("missing function: emscripten_glUniform3ui");abort(-1)}function _emscripten_glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(GL.uniforms[location],v0,v1,v2,v3)}function _emscripten_glUniform4fv(location,count,value){var view;if(4*count<=GL.MINI_TEMP_BUFFER_SIZE){view=GL.miniTempBufferViews[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(GL.uniforms[location],view)}function _emscripten_glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(GL.uniforms[location],v0,v1,v2,v3)}function _emscripten_glUniform4iv(location,count,value){GLctx.uniform4iv(GL.uniforms[location],HEAP32.subarray(value>>2,value+count*16>>2))}function _emscripten_glUniform4ui(){err("missing function: emscripten_glUniform4ui");abort(-1)}function _emscripten_glUniformBlockBinding(){err("missing function: emscripten_glUniformBlockBinding");abort(-1)}function _emscripten_glUniformMatrix2fv(location,count,transpose,value){var view;if(4*count<=GL.MINI_TEMP_BUFFER_SIZE){view=GL.miniTempBufferViews[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(GL.uniforms[location],!!transpose,view)}function _emscripten_glUniformMatrix3fv(location,count,transpose,value){var view;if(9*count<=GL.MINI_TEMP_BUFFER_SIZE){view=GL.miniTempBufferViews[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(GL.uniforms[location],!!transpose,view)}function _emscripten_glUniformMatrix4fv(location,count,transpose,value){var view;if(16*count<=GL.MINI_TEMP_BUFFER_SIZE){view=GL.miniTempBufferViews[16*count-1];for(var i=0;i<16*count;i+=16){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2];view[i+9]=HEAPF32[value+(4*i+36)>>2];view[i+10]=HEAPF32[value+(4*i+40)>>2];view[i+11]=HEAPF32[value+(4*i+44)>>2];view[i+12]=HEAPF32[value+(4*i+48)>>2];view[i+13]=HEAPF32[value+(4*i+52)>>2];view[i+14]=HEAPF32[value+(4*i+56)>>2];view[i+15]=HEAPF32[value+(4*i+60)>>2]}}else{view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(GL.uniforms[location],!!transpose,view)}function _emscripten_glUseProgram(program){GLctx.useProgram(program?GL.programs[program]:null)}function _emscripten_glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}function _emscripten_glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}function _emscripten_glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _emscripten_glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}function _emscripten_glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _emscripten_glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}function _emscripten_glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _emscripten_glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _emscripten_glVertexAttribDivisor(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribI1i(){err("missing function: emscripten_glVertexAttribI1i");abort(-1)}function _emscripten_glVertexAttribI1iv(){err("missing function: emscripten_glVertexAttribI1iv");abort(-1)}function _emscripten_glVertexAttribI1ui(){err("missing function: emscripten_glVertexAttribI1ui");abort(-1)}function _emscripten_glVertexAttribI1uiv(){err("missing function: emscripten_glVertexAttribI1uiv");abort(-1)}function _emscripten_glVertexAttribI2i(){err("missing function: emscripten_glVertexAttribI2i");abort(-1)}function _emscripten_glVertexAttribI2iv(){err("missing function: emscripten_glVertexAttribI2iv");abort(-1)}function _emscripten_glVertexAttribI2ui(){err("missing function: emscripten_glVertexAttribI2ui");abort(-1)}function _emscripten_glVertexAttribI2uiv(){err("missing function: emscripten_glVertexAttribI2uiv");abort(-1)}function _emscripten_glVertexAttribI3i(){err("missing function: emscripten_glVertexAttribI3i");abort(-1)}function _emscripten_glVertexAttribI3iv(){err("missing function: emscripten_glVertexAttribI3iv");abort(-1)}function _emscripten_glVertexAttribI3ui(){err("missing function: emscripten_glVertexAttribI3ui");abort(-1)}function _emscripten_glVertexAttribI3uiv(){err("missing function: emscripten_glVertexAttribI3uiv");abort(-1)}function _emscripten_glVertexAttribI4bv(){err("missing function: emscripten_glVertexAttribI4bv");abort(-1)}function _emscripten_glVertexAttribI4i(){err("missing function: emscripten_glVertexAttribI4i");abort(-1)}function _emscripten_glVertexAttribI4iv(){err("missing function: emscripten_glVertexAttribI4iv");abort(-1)}function _emscripten_glVertexAttribI4sv(){err("missing function: emscripten_glVertexAttribI4sv");abort(-1)}function _emscripten_glVertexAttribI4ubv(){err("missing function: emscripten_glVertexAttribI4ubv");abort(-1)}function _emscripten_glVertexAttribI4ui(){err("missing function: emscripten_glVertexAttribI4ui");abort(-1)}function _emscripten_glVertexAttribI4uiv(){err("missing function: emscripten_glVertexAttribI4uiv");abort(-1)}function _emscripten_glVertexAttribI4usv(){err("missing function: emscripten_glVertexAttribI4usv");abort(-1)}function _emscripten_glVertexAttribIPointer(){err("missing function: emscripten_glVertexAttribIPointer");abort(-1)}function _emscripten_glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _emscripten_glVertexPointer(){throw"Legacy GL function (glVertexPointer) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation."}function _emscripten_glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _longjmp(env,value){Module["setThrew"](env,value||1);throw"longjmp"}function _emscripten_longjmp(env,value){_longjmp(env,value)}function __setLetterbox(element,topBottom,leftRight){if(JSEvents.isInternetExplorer()){element.style.marginLeft=element.style.marginRight=leftRight+"px";element.style.marginTop=element.style.marginBottom=topBottom+"px"}else{element.style.paddingLeft=element.style.paddingRight=leftRight+"px";element.style.paddingTop=element.style.paddingBottom=topBottom+"px"}}function _emscripten_do_request_fullscreen(target,strategy){if(typeof JSEvents.fullscreenEnabled()==="undefined")return-1;if(!JSEvents.fullscreenEnabled())return-3;if(!target)target="#canvas";target=JSEvents.findEventTarget(target);if(!target)return-4;if(!target.requestFullscreen&&!target.msRequestFullscreen&&!target.mozRequestFullScreen&&!target.mozRequestFullscreen&&!target.webkitRequestFullscreen){return-3}var canPerformRequests=JSEvents.canPerformEventHandlerRequests();if(!canPerformRequests){if(strategy.deferUntilInEventHandler){JSEvents.deferCall(JSEvents.requestFullscreen,1,[target,strategy]);return 1}else{return-2}}return JSEvents.requestFullscreen(target,strategy)}function __registerRestoreOldStyle(canvas){var oldWidth=canvas.width;var oldHeight=canvas.height;var oldCssWidth=canvas.style.width;var oldCssHeight=canvas.style.height;var oldBackgroundColor=canvas.style.backgroundColor;var oldDocumentBackgroundColor=document.body.style.backgroundColor;var oldPaddingLeft=canvas.style.paddingLeft;var oldPaddingRight=canvas.style.paddingRight;var oldPaddingTop=canvas.style.paddingTop;var oldPaddingBottom=canvas.style.paddingBottom;var oldMarginLeft=canvas.style.marginLeft;var oldMarginRight=canvas.style.marginRight;var oldMarginTop=canvas.style.marginTop;var oldMarginBottom=canvas.style.marginBottom;var oldDocumentBodyMargin=document.body.style.margin;var oldDocumentOverflow=document.documentElement.style.overflow;var oldDocumentScroll=document.body.scroll;var oldImageRendering=canvas.style.imageRendering;function restoreOldStyle(){var fullscreenElement=document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement;if(!fullscreenElement){document.removeEventListener("fullscreenchange",restoreOldStyle);document.removeEventListener("mozfullscreenchange",restoreOldStyle);document.removeEventListener("webkitfullscreenchange",restoreOldStyle);document.removeEventListener("MSFullscreenChange",restoreOldStyle);canvas.width=oldWidth;canvas.height=oldHeight;canvas.style.width=oldCssWidth;canvas.style.height=oldCssHeight;canvas.style.backgroundColor=oldBackgroundColor;if(!oldDocumentBackgroundColor)document.body.style.backgroundColor="white";document.body.style.backgroundColor=oldDocumentBackgroundColor;canvas.style.paddingLeft=oldPaddingLeft;canvas.style.paddingRight=oldPaddingRight;canvas.style.paddingTop=oldPaddingTop;canvas.style.paddingBottom=oldPaddingBottom;canvas.style.marginLeft=oldMarginLeft;canvas.style.marginRight=oldMarginRight;canvas.style.marginTop=oldMarginTop;canvas.style.marginBottom=oldMarginBottom;document.body.style.margin=oldDocumentBodyMargin;document.documentElement.style.overflow=oldDocumentOverflow;document.body.scroll=oldDocumentScroll;canvas.style.imageRendering=oldImageRendering;if(canvas.GLctxObject)canvas.GLctxObject.GLctx.viewport(0,0,oldWidth,oldHeight);if(__currentFullscreenStrategy.canvasResizedCallback){Module["dynCall_iiii"](__currentFullscreenStrategy.canvasResizedCallback,37,0,__currentFullscreenStrategy.canvasResizedCallbackUserData)}}}document.addEventListener("fullscreenchange",restoreOldStyle);document.addEventListener("mozfullscreenchange",restoreOldStyle);document.addEventListener("webkitfullscreenchange",restoreOldStyle);document.addEventListener("MSFullscreenChange",restoreOldStyle);return restoreOldStyle}function _emscripten_request_fullscreen_strategy(target,deferUntilInEventHandler,fullscreenStrategy){var strategy={};strategy.scaleMode=HEAP32[fullscreenStrategy>>2];strategy.canvasResolutionScaleMode=HEAP32[fullscreenStrategy+4>>2];strategy.filteringMode=HEAP32[fullscreenStrategy+8>>2];strategy.deferUntilInEventHandler=deferUntilInEventHandler;strategy.canvasResizedCallback=HEAP32[fullscreenStrategy+12>>2];strategy.canvasResizedCallbackUserData=HEAP32[fullscreenStrategy+16>>2];__currentFullscreenStrategy=strategy;return _emscripten_do_request_fullscreen(target,strategy)}function _emscripten_request_pointerlock(target,deferUntilInEventHandler){if(!target)target="#canvas";target=JSEvents.findEventTarget(target);if(!target)return-4;if(!target.requestPointerLock&&!target.mozRequestPointerLock&&!target.webkitRequestPointerLock&&!target.msRequestPointerLock){return-1}var canPerformRequests=JSEvents.canPerformEventHandlerRequests();if(!canPerformRequests){if(deferUntilInEventHandler){JSEvents.deferCall(JSEvents.requestPointerLock,2,[target]);return 1}else{return-2}}return JSEvents.requestPointerLock(target)}function _emscripten_set_blur_callback(target,userData,useCapture,callbackfunc){JSEvents.registerFocusEventCallback(target,userData,useCapture,callbackfunc,12,"blur");return 0}function _emscripten_set_canvas_size(width,height){Browser.setCanvasSize(width,height)}function _emscripten_set_element_css_size(target,width,height){if(!target){target=Module["canvas"]}else{target=JSEvents.findEventTarget(target)}if(!target)return-4;target.style.setProperty("width",width+"px");target.style.setProperty("height",height+"px");return 0}function _emscripten_set_focus_callback(target,userData,useCapture,callbackfunc){JSEvents.registerFocusEventCallback(target,userData,useCapture,callbackfunc,13,"focus");return 0}function _emscripten_set_fullscreenchange_callback(target,userData,useCapture,callbackfunc){if(typeof JSEvents.fullscreenEnabled()==="undefined")return-1;if(!target)target=document;else{target=JSEvents.findEventTarget(target);if(!target)return-4}JSEvents.registerFullscreenChangeEventCallback(target,userData,useCapture,callbackfunc,19,"fullscreenchange");JSEvents.registerFullscreenChangeEventCallback(target,userData,useCapture,callbackfunc,19,"mozfullscreenchange");JSEvents.registerFullscreenChangeEventCallback(target,userData,useCapture,callbackfunc,19,"webkitfullscreenchange");JSEvents.registerFullscreenChangeEventCallback(target,userData,useCapture,callbackfunc,19,"msfullscreenchange");return 0}function _emscripten_set_gamepadconnected_callback(userData,useCapture,callbackfunc){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;JSEvents.registerGamepadEventCallback(window,userData,useCapture,callbackfunc,26,"gamepadconnected");return 0}function _emscripten_set_gamepaddisconnected_callback(userData,useCapture,callbackfunc){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;JSEvents.registerGamepadEventCallback(window,userData,useCapture,callbackfunc,27,"gamepaddisconnected");return 0}function _emscripten_set_keydown_callback(target,userData,useCapture,callbackfunc){JSEvents.registerKeyEventCallback(target,userData,useCapture,callbackfunc,2,"keydown");return 0}function _emscripten_set_keypress_callback(target,userData,useCapture,callbackfunc){JSEvents.registerKeyEventCallback(target,userData,useCapture,callbackfunc,1,"keypress");return 0}function _emscripten_set_keyup_callback(target,userData,useCapture,callbackfunc){JSEvents.registerKeyEventCallback(target,userData,useCapture,callbackfunc,3,"keyup");return 0}function _emscripten_set_mousedown_callback(target,userData,useCapture,callbackfunc){JSEvents.registerMouseEventCallback(target,userData,useCapture,callbackfunc,5,"mousedown");return 0}function _emscripten_set_mouseenter_callback(target,userData,useCapture,callbackfunc){JSEvents.registerMouseEventCallback(target,userData,useCapture,callbackfunc,33,"mouseenter");return 0}function _emscripten_set_mouseleave_callback(target,userData,useCapture,callbackfunc){JSEvents.registerMouseEventCallback(target,userData,useCapture,callbackfunc,34,"mouseleave");return 0}function _emscripten_set_mousemove_callback(target,userData,useCapture,callbackfunc){JSEvents.registerMouseEventCallback(target,userData,useCapture,callbackfunc,8,"mousemove");return 0}function _emscripten_set_mouseup_callback(target,userData,useCapture,callbackfunc){JSEvents.registerMouseEventCallback(target,userData,useCapture,callbackfunc,6,"mouseup");return 0}function _emscripten_set_resize_callback(target,userData,useCapture,callbackfunc){JSEvents.registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize");return 0}function _emscripten_set_touchcancel_callback(target,userData,useCapture,callbackfunc){JSEvents.registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel");return 0}function _emscripten_set_touchend_callback(target,userData,useCapture,callbackfunc){JSEvents.registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend");return 0}function _emscripten_set_touchmove_callback(target,userData,useCapture,callbackfunc){JSEvents.registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove");return 0}function _emscripten_set_touchstart_callback(target,userData,useCapture,callbackfunc){JSEvents.registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart");return 0}function _emscripten_set_visibilitychange_callback(userData,useCapture,callbackfunc){JSEvents.registerVisibilityChangeEventCallback(document,userData,useCapture,callbackfunc,21,"visibilitychange");return 0}function _emscripten_set_wheel_callback(target,userData,useCapture,callbackfunc){target=JSEvents.findEventTarget(target);if(typeof target.onwheel!=="undefined"){JSEvents.registerWheelEventCallback(target,userData,useCapture,callbackfunc,9,"wheel");return 0}else if(typeof target.onmousewheel!=="undefined"){JSEvents.registerWheelEventCallback(target,userData,useCapture,callbackfunc,9,"mousewheel");return 0}else{return-1}}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=allocateUTF8(ENV[name]);return _getenv.ret}function _gettimeofday(ptr){var now=Date.now();HEAP32[ptr>>2]=now/1e3|0;HEAP32[ptr+4>>2]=now%1e3*1e3|0;return 0}function _glBindTexture(target,texture){GLctx.bindTexture(target,texture?GL.textures[texture]:null)}function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _glClear(x0){GLctx["clear"](x0)}function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glClearDepthf(x0){GLctx["clearDepth"](x0)}function _glClearStencil(x0){GLctx["clearStencil"](x0)}function _glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _glDeleteTextures(n,textures){for(var i=0;i<n;i++){var id=HEAP32[textures+i*4>>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDepthMask(flag){GLctx.depthMask(!!flag)}function _glDisable(x0){GLctx["disable"](x0)}function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _glEnable(x0){GLctx["enable"](x0)}function _glFinish(){GLctx["finish"]()}function _glFlush(){GLctx["flush"]()}function _glGenTextures(n,textures){for(var i=0;i<n;i++){var texture=GLctx.createTexture();if(!texture){GL.recordError(1282);while(i<n)HEAP32[textures+i++*4>>2]=0;return}var id=GL.getNewId(GL.textures);texture.name=id;GL.textures[id]=texture;HEAP32[textures+i*4>>2]=id}}function _glGetError(){if(GL.lastError){var error=GL.lastError;GL.lastError=0;return error}else{return GLctx.getError()}}function _glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,"Integer")}function _glGetString(name_){if(GL.stringCache[name_])return GL.stringCache[name_];var ret;switch(name_){case 7936:case 7937:case 37445:case 37446:ret=allocate(intArrayFromString(GLctx.getParameter(name_)),"i8",ALLOC_NORMAL);break;case 7938:var glVersion=GLctx.getParameter(GLctx.VERSION);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=allocate(intArrayFromString(glVersion),"i8",ALLOC_NORMAL);break;case 7939:var exts=GLctx.getSupportedExtensions();var gl_exts=[];for(var i=0;i<exts.length;++i){gl_exts.push(exts[i]);gl_exts.push("GL_"+exts[i])}ret=allocate(intArrayFromString(gl_exts.join(" ")),"i8",ALLOC_NORMAL);break;case 35724:var glslVersion=GLctx.getParameter(GLctx.SHADING_LANGUAGE_VERSION);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=allocate(intArrayFromString(glslVersion),"i8",ALLOC_NORMAL);break;default:GL.recordError(1280);return 0}GL.stringCache[name_]=ret;return ret}function _glPixelStorei(pname,param){if(pname==3333){GL.packAlignment=param}else if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _glReadPixels(x,y,width,height,format,type,pixels){var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _glShaderBinary(){GL.recordError(1280)}function _glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}function _glStencilMask(x0){GLctx["stencilMask"](x0)}function _glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}function _glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat);GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixelData)}function _glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}function _glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}function _glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}var _llvm_ceil_f64=Math_ceil;function _llvm_exp2_f32(x){return Math.pow(2,x)}var _llvm_fabs_f32=Math_abs;var _llvm_fabs_f64=Math_abs;var _llvm_floor_f32=Math_floor;var _llvm_floor_f64=Math_floor;function _llvm_stackrestore(p){var self=_llvm_stacksave;var ret=self.LLVM_SAVEDSTACKS[p];self.LLVM_SAVEDSTACKS.splice(p,1);stackRestore(ret)}function _llvm_stacksave(){var self=_llvm_stacksave;if(!self.LLVM_SAVEDSTACKS){self.LLVM_SAVEDSTACKS=[]}self.LLVM_SAVEDSTACKS.push(stackSave());return self.LLVM_SAVEDSTACKS.length-1}function _llvm_trap(){abort("trap!")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}function _usleep(useconds){var msec=useconds/1e3;if((ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&self["performance"]&&self["performance"]["now"]){var start=self["performance"]["now"]();while(self["performance"]["now"]()-start<msec){}}else{var start=Date.now();while(Date.now()-start<msec){}}return 0}function _nanosleep(rqtp,rmtp){var seconds=HEAP32[rqtp>>2];var nanoseconds=HEAP32[rqtp+4>>2];if(rmtp!==0){HEAP32[rmtp>>2]=0;HEAP32[rmtp+4>>2]=0}return _usleep(seconds*1e6+nanoseconds/1e3)}function _pthread_attr_getstacksize(){err("missing function: pthread_attr_getstacksize");abort(-1)}function _pthread_attr_init(attr){return 0}function _pthread_attr_setstacksize(){}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}function _pthread_cleanup_push(routine,arg){__ATEXIT__.push((function(){Module["dynCall_vi"](routine,arg)}));_pthread_cleanup_push.level=__ATEXIT__.length}function _pthread_cond_destroy(){return 0}function _pthread_cond_init(){return 0}function _pthread_cond_signal(){return 0}function _pthread_cond_timedwait(){return 0}function _pthread_cond_wait(){return 0}function _pthread_create(){return 11}var PTHREAD_SPECIFIC={};function _pthread_getspecific(key){return PTHREAD_SPECIFIC[key]||0}function _pthread_join(){}var PTHREAD_SPECIFIC_NEXT_KEY=1;function _pthread_key_create(key,destructor){if(key==0){return ERRNO_CODES.EINVAL}HEAP32[key>>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0}function _pthread_mutex_destroy(){}function _pthread_mutex_init(){}function _pthread_mutexattr_init(){}function _pthread_mutexattr_settype(){}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Module["dynCall_v"](func);_pthread_once.seen[ptr]=1}function _pthread_setspecific(key,value){if(!(key in PTHREAD_SPECIFIC)){return ERRNO_CODES.EINVAL}PTHREAD_SPECIFIC[key]=value;return 0}function _sigaction(signum,act,oldact){return 0}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}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.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: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){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,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<12){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()<date.tm_year+1900){daysDifference=date.tm_yday+32-firstWeekStartThisYear.getDate()}else{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){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);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){return(date.tm_year+1900).toString().substring(2)}),"%Y":(function(date){return date.tm_year+1900}),"%z":(function(date){var off=date.tm_gmtoff;var ahead=off>=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)}FS.staticInit();__ATINIT__.unshift((function(){if(!Module["noFSInit"]&&!FS.init.initialized)FS.init()}));__ATMAIN__.push((function(){FS.ignorePermissions=false}));__ATEXIT__.push((function(){FS.quit()}));__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()}embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");InternalError=Module["InternalError"]=extendError(Error,"InternalError");init_ClassHandle();init_RegisteredPointer();init_embind();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");init_emval();if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function _emscripten_get_now_actual(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else if(typeof self==="object"&&self["performance"]&&typeof self["performance"]["now"]==="function"){_emscripten_get_now=(function(){return self["performance"]["now"]()})}else if(typeof performance==="object"&&typeof performance["now"]==="function"){_emscripten_get_now=(function(){return performance["now"]()})}else{_emscripten_get_now=Date.now}Module["requestFullScreen"]=function Module_requestFullScreen(lockPointer,resizeCanvas,vrDevice){err("Module.requestFullScreen is deprecated. Please call Module.requestFullscreen instead.");Module["requestFullScreen"]=Module["requestFullscreen"];Browser.requestFullScreen(lockPointer,resizeCanvas,vrDevice)};Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas,vrDevice){Browser.requestFullscreen(lockPointer,resizeCanvas,vrDevice)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};var GLctx;GL.init();JSEvents.staticInit();DYNAMICTOP_PTR=staticAlloc(4);STACK_BASE=STACKTOP=alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;var ASSERTIONS=false;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}function intArrayToString(array){var ret=[];for(var i=0;i<array.length;i++){var chr=array[i];if(chr>255){if(ASSERTIONS){assert(false,"Character code "+chr+" ("+String.fromCharCode(chr)+") at offset "+i+" not in 0x00-0xFF.")}chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}var decodeBase64=typeof atob==="function"?atob:(function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i<input.length);return output});function intArrayFromBase64(s){if(typeof ENVIRONMENT_IS_NODE==="boolean"&&ENVIRONMENT_IS_NODE){var buf;try{buf=Buffer.from(s,"base64")}catch(_){buf=new Buffer(s,"base64")}return new Uint8Array(buf.buffer,buf.byteOffset,buf.byteLength)}try{var decoded=decodeBase64(s);var bytes=new Uint8Array(decoded.length);for(var i=0;i<decoded.length;++i){bytes[i]=decoded.charCodeAt(i)}return bytes}catch(_){throw new Error("Converting base64 string to bytes failed.")}}function tryParseAsDataURI(filename){if(!isDataURI(filename)){return}return intArrayFromBase64(filename.slice(dataURIPrefix.length))}function invoke_di(index,a1){var sp=stackSave();try{return Module["dynCall_di"](index,a1)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_dii(index,a1,a2){var sp=stackSave();try{return Module["dynCall_dii"](index,a1,a2)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_diii(index,a1,a2,a3){var sp=stackSave();try{return Module["dynCall_diii"](index,a1,a2,a3)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_i(index){var sp=stackSave();try{return Module["dynCall_i"](index)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return Module["dynCall_ii"](index,a1)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iidd(index,a1,a2,a3){var sp=stackSave();try{return Module["dynCall_iidd"](index,a1,a2,a3)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiddd(index,a1,a2,a3,a4){var sp=stackSave();try{return Module["dynCall_iiddd"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iidii(index,a1,a2,a3,a4){var sp=stackSave();try{return Module["dynCall_iidii"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return Module["dynCall_iii"](index,a1,a2)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return Module["dynCall_iiii"](index,a1,a2,a3)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return Module["dynCall_iiiii"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiiid(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return Module["dynCall_iiiiid"](index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiiidii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return Module["dynCall_iiiiidii"](index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return Module["dynCall_iiiiii"](index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiiiid(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return Module["dynCall_iiiiiid"](index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return Module["dynCall_iiiiiii"](index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return Module["dynCall_iiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return Module["dynCall_iiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return Module["dynCall_iiiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_v(index){var sp=stackSave();try{Module["dynCall_v"](index)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_vd(index,a1){var sp=stackSave();try{Module["dynCall_vd"](index,a1)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_vdd(index,a1,a2){var sp=stackSave();try{Module["dynCall_vdd"](index,a1,a2)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_vdddd(index,a1,a2,a3,a4){var sp=stackSave();try{Module["dynCall_vdddd"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_vdddddd(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{Module["dynCall_vdddddd"](index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_vdi(index,a1,a2){var sp=stackSave();try{Module["dynCall_vdi"](index,a1,a2)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{Module["dynCall_vi"](index,a1)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_vid(index,a1,a2){var sp=stackSave();try{Module["dynCall_vid"](index,a1,a2)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_vidd(index,a1,a2,a3){var sp=stackSave();try{Module["dynCall_vidd"](index,a1,a2,a3)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viddd(index,a1,a2,a3,a4){var sp=stackSave();try{Module["dynCall_viddd"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_vidddd(index,a1,a2,a3,a4,a5){var sp=stackSave();try{Module["dynCall_vidddd"](index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viddddd(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{Module["dynCall_viddddd"](index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viddi(index,a1,a2,a3,a4){var sp=stackSave();try{Module["dynCall_viddi"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_vidi(index,a1,a2,a3){var sp=stackSave();try{Module["dynCall_vidi"](index,a1,a2,a3)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{Module["dynCall_vii"](index,a1,a2)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viid(index,a1,a2,a3){var sp=stackSave();try{Module["dynCall_viid"](index,a1,a2,a3)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viidi(index,a1,a2,a3,a4){var sp=stackSave();try{Module["dynCall_viidi"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viidiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{Module["dynCall_viidiii"](index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{Module["dynCall_viii"](index,a1,a2,a3)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiid(index,a1,a2,a3,a4){var sp=stackSave();try{Module["dynCall_viiid"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiidiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{Module["dynCall_viiidiii"](index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{Module["dynCall_viiii"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiidiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{Module["dynCall_viiiidiii"](index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{Module["dynCall_viiiiiii"](index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{Module["dynCall_viiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{Module["dynCall_viiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{Module["dynCall_viiiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{Module["dynCall_viiiiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["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,"enlargeMemory":enlargeMemory,"getTotalMemory":getTotalMemory,"abortOnCannotGrowMemory":abortOnCannotGrowMemory,"invoke_di":invoke_di,"invoke_dii":invoke_dii,"invoke_diii":invoke_diii,"invoke_i":invoke_i,"invoke_ii":invoke_ii,"invoke_iidd":invoke_iidd,"invoke_iiddd":invoke_iiddd,"invoke_iidii":invoke_iidii,"invoke_iii":invoke_iii,"invoke_iiii":invoke_iiii,"invoke_iiiii":invoke_iiiii,"invoke_iiiiid":invoke_iiiiid,"invoke_iiiiidii":invoke_iiiiidii,"invoke_iiiiii":invoke_iiiiii,"invoke_iiiiiid":invoke_iiiiiid,"invoke_iiiiiii":invoke_iiiiiii,"invoke_iiiiiiii":invoke_iiiiiiii,"invoke_iiiiiiiii":invoke_iiiiiiiii,"invoke_iiiiiiiiii":invoke_iiiiiiiiii,"invoke_v":invoke_v,"invoke_vd":invoke_vd,"invoke_vdd":invoke_vdd,"invoke_vdddd":invoke_vdddd,"invoke_vdddddd":invoke_vdddddd,"invoke_vdi":invoke_vdi,"invoke_vi":invoke_vi,"invoke_vid":invoke_vid,"invoke_vidd":invoke_vidd,"invoke_viddd":invoke_viddd,"invoke_vidddd":invoke_vidddd,"invoke_viddddd":invoke_viddddd,"invoke_viddi":invoke_viddi,"invoke_vidi":invoke_vidi,"invoke_vii":invoke_vii,"invoke_viid":invoke_viid,"invoke_viidi":invoke_viidi,"invoke_viidiii":invoke_viidiii,"invoke_viii":invoke_viii,"invoke_viiid":invoke_viiid,"invoke_viiidiii":invoke_viiidiii,"invoke_viiii":invoke_viiii,"invoke_viiiidiii":invoke_viiiidiii,"invoke_viiiii":invoke_viiiii,"invoke_viiiiii":invoke_viiiiii,"invoke_viiiiiii":invoke_viiiiiii,"invoke_viiiiiiii":invoke_viiiiiiii,"invoke_viiiiiiiii":invoke_viiiiiiiii,"invoke_viiiiiiiiii":invoke_viiiiiiiiii,"invoke_viiiiiiiiiii":invoke_viiiiiiiiiii,"ClassHandle":ClassHandle,"ClassHandle_clone":ClassHandle_clone,"ClassHandle_delete":ClassHandle_delete,"ClassHandle_deleteLater":ClassHandle_deleteLater,"ClassHandle_isAliasOf":ClassHandle_isAliasOf,"ClassHandle_isDeleted":ClassHandle_isDeleted,"RegisteredClass":RegisteredClass,"RegisteredPointer":RegisteredPointer,"RegisteredPointer_deleteObject":RegisteredPointer_deleteObject,"RegisteredPointer_destructor":RegisteredPointer_destructor,"RegisteredPointer_fromWireType":RegisteredPointer_fromWireType,"RegisteredPointer_getPointee":RegisteredPointer_getPointee,"___assert_fail":___assert_fail,"___buildEnvironment":___buildEnvironment,"___cxa_allocate_exception":___cxa_allocate_exception,"___cxa_begin_catch":___cxa_begin_catch,"___cxa_find_matching_catch":___cxa_find_matching_catch,"___cxa_pure_virtual":___cxa_pure_virtual,"___cxa_throw":___cxa_throw,"___cxa_uncaught_exception":___cxa_uncaught_exception,"___gxx_personality_v0":___gxx_personality_v0,"___lock":___lock,"___map_file":___map_file,"___resumeException":___resumeException,"___setErrNo":___setErrNo,"___syscall140":___syscall140,"___syscall145":___syscall145,"___syscall146":___syscall146,"___syscall195":___syscall195,"___syscall197":___syscall197,"___syscall220":___syscall220,"___syscall221":___syscall221,"___syscall33":___syscall33,"___syscall39":___syscall39,"___syscall5":___syscall5,"___syscall54":___syscall54,"___syscall6":___syscall6,"___syscall85":___syscall85,"___syscall91":___syscall91,"___unlock":___unlock,"__addDays":__addDays,"__arraySum":__arraySum,"__embind_register_bool":__embind_register_bool,"__embind_register_class":__embind_register_class,"__embind_register_class_constructor":__embind_register_class_constructor,"__embind_register_class_function":__embind_register_class_function,"__embind_register_emval":__embind_register_emval,"__embind_register_float":__embind_register_float,"__embind_register_function":__embind_register_function,"__embind_register_integer":__embind_register_integer,"__embind_register_memory_view":__embind_register_memory_view,"__embind_register_std_string":__embind_register_std_string,"__embind_register_std_wstring":__embind_register_std_wstring,"__embind_register_void":__embind_register_void,"__emscripten_sample_gamepad_data":__emscripten_sample_gamepad_data,"__emval_addMethodCaller":__emval_addMethodCaller,"__emval_allocateDestructors":__emval_allocateDestructors,"__emval_call_method":__emval_call_method,"__emval_decref":__emval_decref,"__emval_get_global":__emval_get_global,"__emval_get_method_caller":__emval_get_method_caller,"__emval_incref":__emval_incref,"__emval_lookupTypes":__emval_lookupTypes,"__emval_register":__emval_register,"__emval_run_destructors":__emval_run_destructors,"__emval_take_value":__emval_take_value,"__isLeapYear":__isLeapYear,"__registerRestoreOldStyle":__registerRestoreOldStyle,"__setLetterbox":__setLetterbox,"_abort":_abort,"_clock_gettime":_clock_gettime,"_dlclose":_dlclose,"_dlerror":_dlerror,"_dlopen":_dlopen,"_dlsym":_dlsym,"_eglBindAPI":_eglBindAPI,"_eglChooseConfig":_eglChooseConfig,"_eglCreateContext":_eglCreateContext,"_eglCreateWindowSurface":_eglCreateWindowSurface,"_eglDestroyContext":_eglDestroyContext,"_eglDestroySurface":_eglDestroySurface,"_eglGetConfigAttrib":_eglGetConfigAttrib,"_eglGetDisplay":_eglGetDisplay,"_eglGetProcAddress":_eglGetProcAddress,"_eglInitialize":_eglInitialize,"_eglMakeCurrent":_eglMakeCurrent,"_eglSwapBuffers":_eglSwapBuffers,"_eglSwapInterval":_eglSwapInterval,"_eglTerminate":_eglTerminate,"_eglWaitClient":_eglWaitClient,"_eglWaitGL":_eglWaitGL,"_eglWaitNative":_eglWaitNative,"_embind_repr":_embind_repr,"_emscripten_asm_const_i":_emscripten_asm_const_i,"_emscripten_asm_const_ii":_emscripten_asm_const_ii,"_emscripten_asm_const_iii":_emscripten_asm_const_iii,"_emscripten_asm_const_iiii":_emscripten_asm_const_iiii,"_emscripten_asm_const_iiiii":_emscripten_asm_const_iiiii,"_emscripten_do_request_fullscreen":_emscripten_do_request_fullscreen,"_emscripten_exit_fullscreen":_emscripten_exit_fullscreen,"_emscripten_exit_pointerlock":_emscripten_exit_pointerlock,"_emscripten_get_device_pixel_ratio":_emscripten_get_device_pixel_ratio,"_emscripten_get_element_css_size":_emscripten_get_element_css_size,"_emscripten_get_gamepad_status":_emscripten_get_gamepad_status,"_emscripten_get_now":_emscripten_get_now,"_emscripten_get_now_is_monotonic":_emscripten_get_now_is_monotonic,"_emscripten_get_num_gamepads":_emscripten_get_num_gamepads,"_emscripten_get_pointerlock_status":_emscripten_get_pointerlock_status,"_emscripten_glActiveTexture":_emscripten_glActiveTexture,"_emscripten_glAttachShader":_emscripten_glAttachShader,"_emscripten_glBeginConditionalRender":_emscripten_glBeginConditionalRender,"_emscripten_glBeginTransformFeedback":_emscripten_glBeginTransformFeedback,"_emscripten_glBindAttribLocation":_emscripten_glBindAttribLocation,"_emscripten_glBindBuffer":_emscripten_glBindBuffer,"_emscripten_glBindBufferBase":_emscripten_glBindBufferBase,"_emscripten_glBindBufferRange":_emscripten_glBindBufferRange,"_emscripten_glBindFragDataLocation":_emscripten_glBindFragDataLocation,"_emscripten_glBindFramebuffer":_emscripten_glBindFramebuffer,"_emscripten_glBindProgramARB":_emscripten_glBindProgramARB,"_emscripten_glBindRenderbuffer":_emscripten_glBindRenderbuffer,"_emscripten_glBindTexture":_emscripten_glBindTexture,"_emscripten_glBindVertexArray":_emscripten_glBindVertexArray,"_emscripten_glBlendColor":_emscripten_glBlendColor,"_emscripten_glBlendEquation":_emscripten_glBlendEquation,"_emscripten_glBlendEquationSeparate":_emscripten_glBlendEquationSeparate,"_emscripten_glBlendFunc":_emscripten_glBlendFunc,"_emscripten_glBlendFuncSeparate":_emscripten_glBlendFuncSeparate,"_emscripten_glBufferData":_emscripten_glBufferData,"_emscripten_glBufferSubData":_emscripten_glBufferSubData,"_emscripten_glCheckFramebufferStatus":_emscripten_glCheckFramebufferStatus,"_emscripten_glClampColor":_emscripten_glClampColor,"_emscripten_glClear":_emscripten_glClear,"_emscripten_glClearBufferfi":_emscripten_glClearBufferfi,"_emscripten_glClearBufferfv":_emscripten_glClearBufferfv,"_emscripten_glClearBufferiv":_emscripten_glClearBufferiv,"_emscripten_glClearBufferuiv":_emscripten_glClearBufferuiv,"_emscripten_glClearColor":_emscripten_glClearColor,"_emscripten_glClearDepth":_emscripten_glClearDepth,"_emscripten_glClearDepthf":_emscripten_glClearDepthf,"_emscripten_glClearStencil":_emscripten_glClearStencil,"_emscripten_glClientActiveTexture":_emscripten_glClientActiveTexture,"_emscripten_glColorMask":_emscripten_glColorMask,"_emscripten_glColorMaski":_emscripten_glColorMaski,"_emscripten_glColorPointer":_emscripten_glColorPointer,"_emscripten_glCompileShader":_emscripten_glCompileShader,"_emscripten_glCompressedTexImage2D":_emscripten_glCompressedTexImage2D,"_emscripten_glCompressedTexSubImage2D":_emscripten_glCompressedTexSubImage2D,"_emscripten_glCopyTexImage2D":_emscripten_glCopyTexImage2D,"_emscripten_glCopyTexSubImage2D":_emscripten_glCopyTexSubImage2D,"_emscripten_glCreateProgram":_emscripten_glCreateProgram,"_emscripten_glCreateShader":_emscripten_glCreateShader,"_emscripten_glCullFace":_emscripten_glCullFace,"_emscripten_glDeleteBuffers":_emscripten_glDeleteBuffers,"_emscripten_glDeleteFramebuffers":_emscripten_glDeleteFramebuffers,"_emscripten_glDeleteObjectARB":_emscripten_glDeleteObjectARB,"_emscripten_glDeleteProgram":_emscripten_glDeleteProgram,"_emscripten_glDeleteRenderbuffers":_emscripten_glDeleteRenderbuffers,"_emscripten_glDeleteShader":_emscripten_glDeleteShader,"_emscripten_glDeleteTextures":_emscripten_glDeleteTextures,"_emscripten_glDeleteVertexArrays":_emscripten_glDeleteVertexArrays,"_emscripten_glDepthFunc":_emscripten_glDepthFunc,"_emscripten_glDepthMask":_emscripten_glDepthMask,"_emscripten_glDepthRange":_emscripten_glDepthRange,"_emscripten_glDepthRangef":_emscripten_glDepthRangef,"_emscripten_glDetachShader":_emscripten_glDetachShader,"_emscripten_glDisable":_emscripten_glDisable,"_emscripten_glDisableVertexAttribArray":_emscripten_glDisableVertexAttribArray,"_emscripten_glDisablei":_emscripten_glDisablei,"_emscripten_glDrawArrays":_emscripten_glDrawArrays,"_emscripten_glDrawArraysInstanced":_emscripten_glDrawArraysInstanced,"_emscripten_glDrawBuffers":_emscripten_glDrawBuffers,"_emscripten_glDrawElements":_emscripten_glDrawElements,"_emscripten_glDrawElementsInstanced":_emscripten_glDrawElementsInstanced,"_emscripten_glDrawRangeElements":_emscripten_glDrawRangeElements,"_emscripten_glEnable":_emscripten_glEnable,"_emscripten_glEnableClientState":_emscripten_glEnableClientState,"_emscripten_glEnableVertexAttribArray":_emscripten_glEnableVertexAttribArray,"_emscripten_glEnablei":_emscripten_glEnablei,"_emscripten_glEndConditionalRender":_emscripten_glEndConditionalRender,"_emscripten_glEndTransformFeedback":_emscripten_glEndTransformFeedback,"_emscripten_glFinish":_emscripten_glFinish,"_emscripten_glFlush":_emscripten_glFlush,"_emscripten_glFramebufferRenderbuffer":_emscripten_glFramebufferRenderbuffer,"_emscripten_glFramebufferTexture2D":_emscripten_glFramebufferTexture2D,"_emscripten_glFrontFace":_emscripten_glFrontFace,"_emscripten_glFrustum":_emscripten_glFrustum,"_emscripten_glGenBuffers":_emscripten_glGenBuffers,"_emscripten_glGenFramebuffers":_emscripten_glGenFramebuffers,"_emscripten_glGenRenderbuffers":_emscripten_glGenRenderbuffers,"_emscripten_glGenTextures":_emscripten_glGenTextures,"_emscripten_glGenVertexArrays":_emscripten_glGenVertexArrays,"_emscripten_glGenerateMipmap":_emscripten_glGenerateMipmap,"_emscripten_glGetActiveAttrib":_emscripten_glGetActiveAttrib,"_emscripten_glGetActiveUniform":_emscripten_glGetActiveUniform,"_emscripten_glGetActiveUniformBlockName":_emscripten_glGetActiveUniformBlockName,"_emscripten_glGetActiveUniformBlockiv":_emscripten_glGetActiveUniformBlockiv,"_emscripten_glGetActiveUniformName":_emscripten_glGetActiveUniformName,"_emscripten_glGetActiveUniformsiv":_emscripten_glGetActiveUniformsiv,"_emscripten_glGetAttachedShaders":_emscripten_glGetAttachedShaders,"_emscripten_glGetAttribLocation":_emscripten_glGetAttribLocation,"_emscripten_glGetBooleani_v":_emscripten_glGetBooleani_v,"_emscripten_glGetBooleanv":_emscripten_glGetBooleanv,"_emscripten_glGetBufferParameteriv":_emscripten_glGetBufferParameteriv,"_emscripten_glGetError":_emscripten_glGetError,"_emscripten_glGetFloatv":_emscripten_glGetFloatv,"_emscripten_glGetFragDataLocation":_emscripten_glGetFragDataLocation,"_emscripten_glGetFramebufferAttachmentParameteriv":_emscripten_glGetFramebufferAttachmentParameteriv,"_emscripten_glGetInfoLogARB":_emscripten_glGetInfoLogARB,"_emscripten_glGetIntegeri_v":_emscripten_glGetIntegeri_v,"_emscripten_glGetIntegerv":_emscripten_glGetIntegerv,"_emscripten_glGetObjectParameterivARB":_emscripten_glGetObjectParameterivARB,"_emscripten_glGetPointerv":_emscripten_glGetPointerv,"_emscripten_glGetProgramInfoLog":_emscripten_glGetProgramInfoLog,"_emscripten_glGetProgramiv":_emscripten_glGetProgramiv,"_emscripten_glGetRenderbufferParameteriv":_emscripten_glGetRenderbufferParameteriv,"_emscripten_glGetShaderInfoLog":_emscripten_glGetShaderInfoLog,"_emscripten_glGetShaderPrecisionFormat":_emscripten_glGetShaderPrecisionFormat,"_emscripten_glGetShaderSource":_emscripten_glGetShaderSource,"_emscripten_glGetShaderiv":_emscripten_glGetShaderiv,"_emscripten_glGetString":_emscripten_glGetString,"_emscripten_glGetStringi":_emscripten_glGetStringi,"_emscripten_glGetTexParameterIiv":_emscripten_glGetTexParameterIiv,"_emscripten_glGetTexParameterIuiv":_emscripten_glGetTexParameterIuiv,"_emscripten_glGetTexParameterfv":_emscripten_glGetTexParameterfv,"_emscripten_glGetTexParameteriv":_emscripten_glGetTexParameteriv,"_emscripten_glGetTransformFeedbackVarying":_emscripten_glGetTransformFeedbackVarying,"_emscripten_glGetUniformBlockIndex":_emscripten_glGetUniformBlockIndex,"_emscripten_glGetUniformIndices":_emscripten_glGetUniformIndices,"_emscripten_glGetUniformLocation":_emscripten_glGetUniformLocation,"_emscripten_glGetUniformfv":_emscripten_glGetUniformfv,"_emscripten_glGetUniformiv":_emscripten_glGetUniformiv,"_emscripten_glGetUniformuiv":_emscripten_glGetUniformuiv,"_emscripten_glGetVertexAttribIiv":_emscripten_glGetVertexAttribIiv,"_emscripten_glGetVertexAttribIuiv":_emscripten_glGetVertexAttribIuiv,"_emscripten_glGetVertexAttribPointerv":_emscripten_glGetVertexAttribPointerv,"_emscripten_glGetVertexAttribfv":_emscripten_glGetVertexAttribfv,"_emscripten_glGetVertexAttribiv":_emscripten_glGetVertexAttribiv,"_emscripten_glHint":_emscripten_glHint,"_emscripten_glIsBuffer":_emscripten_glIsBuffer,"_emscripten_glIsEnabled":_emscripten_glIsEnabled,"_emscripten_glIsEnabledi":_emscripten_glIsEnabledi,"_emscripten_glIsFramebuffer":_emscripten_glIsFramebuffer,"_emscripten_glIsProgram":_emscripten_glIsProgram,"_emscripten_glIsRenderbuffer":_emscripten_glIsRenderbuffer,"_emscripten_glIsShader":_emscripten_glIsShader,"_emscripten_glIsTexture":_emscripten_glIsTexture,"_emscripten_glIsVertexArray":_emscripten_glIsVertexArray,"_emscripten_glLineWidth":_emscripten_glLineWidth,"_emscripten_glLinkProgram":_emscripten_glLinkProgram,"_emscripten_glLoadIdentity":_emscripten_glLoadIdentity,"_emscripten_glLoadMatrixf":_emscripten_glLoadMatrixf,"_emscripten_glMatrixMode":_emscripten_glMatrixMode,"_emscripten_glNormalPointer":_emscripten_glNormalPointer,"_emscripten_glPixelStorei":_emscripten_glPixelStorei,"_emscripten_glPolygonOffset":_emscripten_glPolygonOffset,"_emscripten_glReadPixels":_emscripten_glReadPixels,"_emscripten_glReleaseShaderCompiler":_emscripten_glReleaseShaderCompiler,"_emscripten_glRenderbufferStorage":_emscripten_glRenderbufferStorage,"_emscripten_glRotatef":_emscripten_glRotatef,"_emscripten_glSampleCoverage":_emscripten_glSampleCoverage,"_emscripten_glScissor":_emscripten_glScissor,"_emscripten_glShaderBinary":_emscripten_glShaderBinary,"_emscripten_glShaderSource":_emscripten_glShaderSource,"_emscripten_glStencilFunc":_emscripten_glStencilFunc,"_emscripten_glStencilFuncSeparate":_emscripten_glStencilFuncSeparate,"_emscripten_glStencilMask":_emscripten_glStencilMask,"_emscripten_glStencilMaskSeparate":_emscripten_glStencilMaskSeparate,"_emscripten_glStencilOp":_emscripten_glStencilOp,"_emscripten_glStencilOpSeparate":_emscripten_glStencilOpSeparate,"_emscripten_glTexCoordPointer":_emscripten_glTexCoordPointer,"_emscripten_glTexImage2D":_emscripten_glTexImage2D,"_emscripten_glTexImage3D":_emscripten_glTexImage3D,"_emscripten_glTexParameterIiv":_emscripten_glTexParameterIiv,"_emscripten_glTexParameterIuiv":_emscripten_glTexParameterIuiv,"_emscripten_glTexParameterf":_emscripten_glTexParameterf,"_emscripten_glTexParameterfv":_emscripten_glTexParameterfv,"_emscripten_glTexParameteri":_emscripten_glTexParameteri,"_emscripten_glTexParameteriv":_emscripten_glTexParameteriv,"_emscripten_glTexStorage2D":_emscripten_glTexStorage2D,"_emscripten_glTexStorage3D":_emscripten_glTexStorage3D,"_emscripten_glTexSubImage2D":_emscripten_glTexSubImage2D,"_emscripten_glTexSubImage3D":_emscripten_glTexSubImage3D,"_emscripten_glTransformFeedbackVaryings":_emscripten_glTransformFeedbackVaryings,"_emscripten_glUniform1f":_emscripten_glUniform1f,"_emscripten_glUniform1fv":_emscripten_glUniform1fv,"_emscripten_glUniform1i":_emscripten_glUniform1i,"_emscripten_glUniform1iv":_emscripten_glUniform1iv,"_emscripten_glUniform1ui":_emscripten_glUniform1ui,"_emscripten_glUniform2f":_emscripten_glUniform2f,"_emscripten_glUniform2fv":_emscripten_glUniform2fv,"_emscripten_glUniform2i":_emscripten_glUniform2i,"_emscripten_glUniform2iv":_emscripten_glUniform2iv,"_emscripten_glUniform2ui":_emscripten_glUniform2ui,"_emscripten_glUniform3f":_emscripten_glUniform3f,"_emscripten_glUniform3fv":_emscripten_glUniform3fv,"_emscripten_glUniform3i":_emscripten_glUniform3i,"_emscripten_glUniform3iv":_emscripten_glUniform3iv,"_emscripten_glUniform3ui":_emscripten_glUniform3ui,"_emscripten_glUniform4f":_emscripten_glUniform4f,"_emscripten_glUniform4fv":_emscripten_glUniform4fv,"_emscripten_glUniform4i":_emscripten_glUniform4i,"_emscripten_glUniform4iv":_emscripten_glUniform4iv,"_emscripten_glUniform4ui":_emscripten_glUniform4ui,"_emscripten_glUniformBlockBinding":_emscripten_glUniformBlockBinding,"_emscripten_glUniformMatrix2fv":_emscripten_glUniformMatrix2fv,"_emscripten_glUniformMatrix3fv":_emscripten_glUniformMatrix3fv,"_emscripten_glUniformMatrix4fv":_emscripten_glUniformMatrix4fv,"_emscripten_glUseProgram":_emscripten_glUseProgram,"_emscripten_glValidateProgram":_emscripten_glValidateProgram,"_emscripten_glVertexAttrib1f":_emscripten_glVertexAttrib1f,"_emscripten_glVertexAttrib1fv":_emscripten_glVertexAttrib1fv,"_emscripten_glVertexAttrib2f":_emscripten_glVertexAttrib2f,"_emscripten_glVertexAttrib2fv":_emscripten_glVertexAttrib2fv,"_emscripten_glVertexAttrib3f":_emscripten_glVertexAttrib3f,"_emscripten_glVertexAttrib3fv":_emscripten_glVertexAttrib3fv,"_emscripten_glVertexAttrib4f":_emscripten_glVertexAttrib4f,"_emscripten_glVertexAttrib4fv":_emscripten_glVertexAttrib4fv,"_emscripten_glVertexAttribDivisor":_emscripten_glVertexAttribDivisor,"_emscripten_glVertexAttribI1i":_emscripten_glVertexAttribI1i,"_emscripten_glVertexAttribI1iv":_emscripten_glVertexAttribI1iv,"_emscripten_glVertexAttribI1ui":_emscripten_glVertexAttribI1ui,"_emscripten_glVertexAttribI1uiv":_emscripten_glVertexAttribI1uiv,"_emscripten_glVertexAttribI2i":_emscripten_glVertexAttribI2i,"_emscripten_glVertexAttribI2iv":_emscripten_glVertexAttribI2iv,"_emscripten_glVertexAttribI2ui":_emscripten_glVertexAttribI2ui,"_emscripten_glVertexAttribI2uiv":_emscripten_glVertexAttribI2uiv,"_emscripten_glVertexAttribI3i":_emscripten_glVertexAttribI3i,"_emscripten_glVertexAttribI3iv":_emscripten_glVertexAttribI3iv,"_emscripten_glVertexAttribI3ui":_emscripten_glVertexAttribI3ui,"_emscripten_glVertexAttribI3uiv":_emscripten_glVertexAttribI3uiv,"_emscripten_glVertexAttribI4bv":_emscripten_glVertexAttribI4bv,"_emscripten_glVertexAttribI4i":_emscripten_glVertexAttribI4i,"_emscripten_glVertexAttribI4iv":_emscripten_glVertexAttribI4iv,"_emscripten_glVertexAttribI4sv":_emscripten_glVertexAttribI4sv,"_emscripten_glVertexAttribI4ubv":_emscripten_glVertexAttribI4ubv,"_emscripten_glVertexAttribI4ui":_emscripten_glVertexAttribI4ui,"_emscripten_glVertexAttribI4uiv":_emscripten_glVertexAttribI4uiv,"_emscripten_glVertexAttribI4usv":_emscripten_glVertexAttribI4usv,"_emscripten_glVertexAttribIPointer":_emscripten_glVertexAttribIPointer,"_emscripten_glVertexAttribPointer":_emscripten_glVertexAttribPointer,"_emscripten_glVertexPointer":_emscripten_glVertexPointer,"_emscripten_glViewport":_emscripten_glViewport,"_emscripten_longjmp":_emscripten_longjmp,"_emscripten_memcpy_big":_emscripten_memcpy_big,"_emscripten_request_fullscreen_strategy":_emscripten_request_fullscreen_strategy,"_emscripten_request_pointerlock":_emscripten_request_pointerlock,"_emscripten_set_blur_callback":_emscripten_set_blur_callback,"_emscripten_set_canvas_size":_emscripten_set_canvas_size,"_emscripten_set_element_css_size":_emscripten_set_element_css_size,"_emscripten_set_focus_callback":_emscripten_set_focus_callback,"_emscripten_set_fullscreenchange_callback":_emscripten_set_fullscreenchange_callback,"_emscripten_set_gamepadconnected_callback":_emscripten_set_gamepadconnected_callback,"_emscripten_set_gamepaddisconnected_callback":_emscripten_set_gamepaddisconnected_callback,"_emscripten_set_keydown_callback":_emscripten_set_keydown_callback,"_emscripten_set_keypress_callback":_emscripten_set_keypress_callback,"_emscripten_set_keyup_callback":_emscripten_set_keyup_callback,"_emscripten_set_main_loop":_emscripten_set_main_loop,"_emscripten_set_main_loop_timing":_emscripten_set_main_loop_timing,"_emscripten_set_mousedown_callback":_emscripten_set_mousedown_callback,"_emscripten_set_mouseenter_callback":_emscripten_set_mouseenter_callback,"_emscripten_set_mouseleave_callback":_emscripten_set_mouseleave_callback,"_emscripten_set_mousemove_callback":_emscripten_set_mousemove_callback,"_emscripten_set_mouseup_callback":_emscripten_set_mouseup_callback,"_emscripten_set_resize_callback":_emscripten_set_resize_callback,"_emscripten_set_touchcancel_callback":_emscripten_set_touchcancel_callback,"_emscripten_set_touchend_callback":_emscripten_set_touchend_callback,"_emscripten_set_touchmove_callback":_emscripten_set_touchmove_callback,"_emscripten_set_touchstart_callback":_emscripten_set_touchstart_callback,"_emscripten_set_visibilitychange_callback":_emscripten_set_visibilitychange_callback,"_emscripten_set_wheel_callback":_emscripten_set_wheel_callback,"_getenv":_getenv,"_gettimeofday":_gettimeofday,"_glBindTexture":_glBindTexture,"_glBlendFunc":_glBlendFunc,"_glClear":_glClear,"_glClearColor":_glClearColor,"_glClearDepthf":_glClearDepthf,"_glClearStencil":_glClearStencil,"_glColorMask":_glColorMask,"_glCopyTexImage2D":_glCopyTexImage2D,"_glCopyTexSubImage2D":_glCopyTexSubImage2D,"_glDeleteTextures":_glDeleteTextures,"_glDepthMask":_glDepthMask,"_glDisable":_glDisable,"_glDrawArrays":_glDrawArrays,"_glDrawElements":_glDrawElements,"_glEnable":_glEnable,"_glFinish":_glFinish,"_glFlush":_glFlush,"_glGenTextures":_glGenTextures,"_glGetError":_glGetError,"_glGetIntegerv":_glGetIntegerv,"_glGetString":_glGetString,"_glPixelStorei":_glPixelStorei,"_glReadPixels":_glReadPixels,"_glScissor":_glScissor,"_glShaderBinary":_glShaderBinary,"_glStencilFunc":_glStencilFunc,"_glStencilMask":_glStencilMask,"_glStencilOp":_glStencilOp,"_glTexImage2D":_glTexImage2D,"_glTexParameterf":_glTexParameterf,"_glTexParameterfv":_glTexParameterfv,"_glTexParameteri":_glTexParameteri,"_glTexParameteriv":_glTexParameteriv,"_glTexSubImage2D":_glTexSubImage2D,"_glViewport":_glViewport,"_glutCreateWindow":_glutCreateWindow,"_glutDestroyWindow":_glutDestroyWindow,"_glutInitDisplayMode":_glutInitDisplayMode,"_llvm_ceil_f64":_llvm_ceil_f64,"_llvm_exp2_f32":_llvm_exp2_f32,"_llvm_fabs_f32":_llvm_fabs_f32,"_llvm_fabs_f64":_llvm_fabs_f64,"_llvm_floor_f32":_llvm_floor_f32,"_llvm_floor_f64":_llvm_floor_f64,"_llvm_stackrestore":_llvm_stackrestore,"_llvm_stacksave":_llvm_stacksave,"_llvm_trap":_llvm_trap,"_longjmp":_longjmp,"_nanosleep":_nanosleep,"_pthread_attr_getstacksize":_pthread_attr_getstacksize,"_pthread_attr_init":_pthread_attr_init,"_pthread_attr_setstacksize":_pthread_attr_setstacksize,"_pthread_cleanup_pop":_pthread_cleanup_pop,"_pthread_cleanup_push":_pthread_cleanup_push,"_pthread_cond_destroy":_pthread_cond_destroy,"_pthread_cond_init":_pthread_cond_init,"_pthread_cond_signal":_pthread_cond_signal,"_pthread_cond_timedwait":_pthread_cond_timedwait,"_pthread_cond_wait":_pthread_cond_wait,"_pthread_create":_pthread_create,"_pthread_getspecific":_pthread_getspecific,"_pthread_join":_pthread_join,"_pthread_key_create":_pthread_key_create,"_pthread_mutex_destroy":_pthread_mutex_destroy,"_pthread_mutex_init":_pthread_mutex_init,"_pthread_mutexattr_init":_pthread_mutexattr_init,"_pthread_mutexattr_settype":_pthread_mutexattr_settype,"_pthread_once":_pthread_once,"_pthread_setspecific":_pthread_setspecific,"_sigaction":_sigaction,"_signal":_signal,"_strftime":_strftime,"_strftime_l":_strftime_l,"_usleep":_usleep,"constNoSmartPtrRawPointerToWireType":constNoSmartPtrRawPointerToWireType,"count_emval_handles":count_emval_handles,"craftInvokerFunction":craftInvokerFunction,"createNamedFunction":createNamedFunction,"downcastPointer":downcastPointer,"embind__requireFunction":embind__requireFunction,"embind_init_charCodes":embind_init_charCodes,"emscriptenWebGLComputeImageSize":emscriptenWebGLComputeImageSize,"emscriptenWebGLGet":emscriptenWebGLGet,"emscriptenWebGLGetTexPixelData":emscriptenWebGLGetTexPixelData,"emscriptenWebGLGetUniform":emscriptenWebGLGetUniform,"emscriptenWebGLGetVertexAttrib":emscriptenWebGLGetVertexAttrib,"emval_get_global":emval_get_global,"ensureOverloadTable":ensureOverloadTable,"exposePublicSymbol":exposePublicSymbol,"extendError":extendError,"floatReadValueFromPointer":floatReadValueFromPointer,"flushPendingDeletes":flushPendingDeletes,"genericPointerToWireType":genericPointerToWireType,"getBasestPointer":getBasestPointer,"getInheritedInstance":getInheritedInstance,"getInheritedInstanceCount":getInheritedInstanceCount,"getLiveInheritedInstances":getLiveInheritedInstances,"getShiftFromSize":getShiftFromSize,"getStringOrSymbol":getStringOrSymbol,"getTypeName":getTypeName,"get_first_emval":get_first_emval,"heap32VectorToArray":heap32VectorToArray,"init_ClassHandle":init_ClassHandle,"init_RegisteredPointer":init_RegisteredPointer,"init_embind":init_embind,"init_emval":init_emval,"integerReadValueFromPointer":integerReadValueFromPointer,"makeClassHandle":makeClassHandle,"makeLegalFunctionName":makeLegalFunctionName,"new_":new_,"nonConstNoSmartPtrRawPointerToWireType":nonConstNoSmartPtrRawPointerToWireType,"readLatin1String":readLatin1String,"registerType":registerType,"replacePublicSymbol":replacePublicSymbol,"requireHandle":requireHandle,"requireRegisteredType":requireRegisteredType,"runDestructor":runDestructor,"runDestructors":runDestructors,"setDelayFunction":setDelayFunction,"shallowCopyInternalPointer":shallowCopyInternalPointer,"simpleReadValueFromPointer":simpleReadValueFromPointer,"throwBindingError":throwBindingError,"throwInstanceAlreadyDeleted":throwInstanceAlreadyDeleted,"throwInternalError":throwInternalError,"throwUnboundTypeError":throwUnboundTypeError,"upcastPointer":upcastPointer,"whenDependentTypesAreResolved":whenDependentTypesAreResolved,"DYNAMICTOP_PTR":DYNAMICTOP_PTR,"tempDoublePtr":tempDoublePtr,"ABORT":ABORT,"STACKTOP":STACKTOP,"STACK_MAX":STACK_MAX};// EMSCRIPTEN_START_ASM
|
||
var asm=(/** @suppress {uselessCode} */ function(global,env,buffer) {
|
||
"almost asm";var a=global.Int8Array;var b=new a(buffer);var c=global.Int16Array;var d=new c(buffer);var e=global.Int32Array;var f=new e(buffer);var g=global.Uint8Array;var h=new g(buffer);var i=global.Uint16Array;var j=new i(buffer);var k=global.Uint32Array;var l=new k(buffer);var m=global.Float32Array;var n=new m(buffer);var o=global.Float64Array;var p=new o(buffer);var q=global.byteLength;var r=env.DYNAMICTOP_PTR|0;var s=env.tempDoublePtr|0;var t=env.ABORT|0;var u=env.STACKTOP|0;var v=env.STACK_MAX|0;var w=0;var x=0;var y=0;var z=0;var A=global.NaN,B=global.Infinity;var C=0,D=0,E=0,F=0,G=0.0;var H=0;var I=global.Math.floor;var J=global.Math.abs;var K=global.Math.sqrt;var L=global.Math.pow;var M=global.Math.cos;var N=global.Math.sin;var O=global.Math.tan;var P=global.Math.acos;var Q=global.Math.asin;var R=global.Math.atan;var S=global.Math.atan2;var T=global.Math.exp;var U=global.Math.log;var V=global.Math.ceil;var W=global.Math.imul;var X=global.Math.min;var Y=global.Math.max;var Z=global.Math.clz32;var _=env.abort;var $=env.assert;var aa=env.enlargeMemory;var ba=env.getTotalMemory;var ca=env.abortOnCannotGrowMemory;var da=env.invoke_di;var ea=env.invoke_dii;var fa=env.invoke_diii;var ga=env.invoke_i;var ha=env.invoke_ii;var ia=env.invoke_iidd;var ja=env.invoke_iiddd;var ka=env.invoke_iidii;var la=env.invoke_iii;var ma=env.invoke_iiii;var na=env.invoke_iiiii;var oa=env.invoke_iiiiid;var pa=env.invoke_iiiiidii;var qa=env.invoke_iiiiii;var ra=env.invoke_iiiiiid;var sa=env.invoke_iiiiiii;var ta=env.invoke_iiiiiiii;var ua=env.invoke_iiiiiiiii;var va=env.invoke_iiiiiiiiii;var wa=env.invoke_v;var xa=env.invoke_vd;var ya=env.invoke_vdd;var za=env.invoke_vdddd;var Aa=env.invoke_vdddddd;var Ba=env.invoke_vdi;var Ca=env.invoke_vi;var Da=env.invoke_vid;var Ea=env.invoke_vidd;var Fa=env.invoke_viddd;var Ga=env.invoke_vidddd;var Ha=env.invoke_viddddd;var Ia=env.invoke_viddi;var Ja=env.invoke_vidi;var Ka=env.invoke_vii;var La=env.invoke_viid;var Ma=env.invoke_viidi;var Na=env.invoke_viidiii;var Oa=env.invoke_viii;var Pa=env.invoke_viiid;var Qa=env.invoke_viiidiii;var Ra=env.invoke_viiii;var Sa=env.invoke_viiiidiii;var Ta=env.invoke_viiiii;var Ua=env.invoke_viiiiii;var Va=env.invoke_viiiiiii;var Wa=env.invoke_viiiiiiii;var Xa=env.invoke_viiiiiiiii;var Ya=env.invoke_viiiiiiiiii;var Za=env.invoke_viiiiiiiiiii;var _a=env.ClassHandle;var $a=env.ClassHandle_clone;var ab=env.ClassHandle_delete;var bb=env.ClassHandle_deleteLater;var cb=env.ClassHandle_isAliasOf;var db=env.ClassHandle_isDeleted;var eb=env.RegisteredClass;var fb=env.RegisteredPointer;var gb=env.RegisteredPointer_deleteObject;var hb=env.RegisteredPointer_destructor;var ib=env.RegisteredPointer_fromWireType;var jb=env.RegisteredPointer_getPointee;var kb=env.___assert_fail;var lb=env.___buildEnvironment;var mb=env.___cxa_allocate_exception;var nb=env.___cxa_begin_catch;var ob=env.___cxa_find_matching_catch;var pb=env.___cxa_pure_virtual;var qb=env.___cxa_throw;var rb=env.___cxa_uncaught_exception;var sb=env.___gxx_personality_v0;var tb=env.___lock;var ub=env.___map_file;var vb=env.___resumeException;var wb=env.___setErrNo;var xb=env.___syscall140;var yb=env.___syscall145;var zb=env.___syscall146;var Ab=env.___syscall195;var Bb=env.___syscall197;var Cb=env.___syscall220;var Db=env.___syscall221;var Eb=env.___syscall33;var Fb=env.___syscall39;var Gb=env.___syscall5;var Hb=env.___syscall54;var Ib=env.___syscall6;var Jb=env.___syscall85;var Kb=env.___syscall91;var Lb=env.___unlock;var Mb=env.__addDays;var Nb=env.__arraySum;var Ob=env.__embind_register_bool;var Pb=env.__embind_register_class;var Qb=env.__embind_register_class_constructor;var Rb=env.__embind_register_class_function;var Sb=env.__embind_register_emval;var Tb=env.__embind_register_float;var Ub=env.__embind_register_function;var Vb=env.__embind_register_integer;var Wb=env.__embind_register_memory_view;var Xb=env.__embind_register_std_string;var Yb=env.__embind_register_std_wstring;var Zb=env.__embind_register_void;var _b=env.__emscripten_sample_gamepad_data;var $b=env.__emval_addMethodCaller;var ac=env.__emval_allocateDestructors;var bc=env.__emval_call_method;var cc=env.__emval_decref;var dc=env.__emval_get_global;var ec=env.__emval_get_method_caller;var fc=env.__emval_incref;var gc=env.__emval_lookupTypes;var hc=env.__emval_register;var ic=env.__emval_run_destructors;var jc=env.__emval_take_value;var kc=env.__isLeapYear;var lc=env.__registerRestoreOldStyle;var mc=env.__setLetterbox;var nc=env._abort;var oc=env._clock_gettime;var pc=env._dlclose;var qc=env._dlerror;var rc=env._dlopen;var sc=env._dlsym;var tc=env._eglBindAPI;var uc=env._eglChooseConfig;var vc=env._eglCreateContext;var wc=env._eglCreateWindowSurface;var xc=env._eglDestroyContext;var yc=env._eglDestroySurface;var zc=env._eglGetConfigAttrib;var Ac=env._eglGetDisplay;var Bc=env._eglGetProcAddress;var Cc=env._eglInitialize;var Dc=env._eglMakeCurrent;var Ec=env._eglSwapBuffers;var Fc=env._eglSwapInterval;var Gc=env._eglTerminate;var Hc=env._eglWaitClient;var Ic=env._eglWaitGL;var Jc=env._eglWaitNative;var Kc=env._embind_repr;var Lc=env._emscripten_asm_const_i;var Mc=env._emscripten_asm_const_ii;var Nc=env._emscripten_asm_const_iii;var Oc=env._emscripten_asm_const_iiii;var Pc=env._emscripten_asm_const_iiiii;var Qc=env._emscripten_do_request_fullscreen;var Rc=env._emscripten_exit_fullscreen;var Sc=env._emscripten_exit_pointerlock;var Tc=env._emscripten_get_device_pixel_ratio;var Uc=env._emscripten_get_element_css_size;var Vc=env._emscripten_get_gamepad_status;var Wc=env._emscripten_get_now;var Xc=env._emscripten_get_now_is_monotonic;var Yc=env._emscripten_get_num_gamepads;var Zc=env._emscripten_get_pointerlock_status;var _c=env._emscripten_glActiveTexture;var $c=env._emscripten_glAttachShader;var ad=env._emscripten_glBeginConditionalRender;var bd=env._emscripten_glBeginTransformFeedback;var cd=env._emscripten_glBindAttribLocation;var dd=env._emscripten_glBindBuffer;var ed=env._emscripten_glBindBufferBase;var fd=env._emscripten_glBindBufferRange;var gd=env._emscripten_glBindFragDataLocation;var hd=env._emscripten_glBindFramebuffer;var id=env._emscripten_glBindProgramARB;var jd=env._emscripten_glBindRenderbuffer;var kd=env._emscripten_glBindTexture;var ld=env._emscripten_glBindVertexArray;var md=env._emscripten_glBlendColor;var nd=env._emscripten_glBlendEquation;var od=env._emscripten_glBlendEquationSeparate;var pd=env._emscripten_glBlendFunc;var qd=env._emscripten_glBlendFuncSeparate;var rd=env._emscripten_glBufferData;var sd=env._emscripten_glBufferSubData;var td=env._emscripten_glCheckFramebufferStatus;var ud=env._emscripten_glClampColor;var vd=env._emscripten_glClear;var wd=env._emscripten_glClearBufferfi;var xd=env._emscripten_glClearBufferfv;var yd=env._emscripten_glClearBufferiv;var zd=env._emscripten_glClearBufferuiv;var Ad=env._emscripten_glClearColor;var Bd=env._emscripten_glClearDepth;var Cd=env._emscripten_glClearDepthf;var Dd=env._emscripten_glClearStencil;var Ed=env._emscripten_glClientActiveTexture;var Fd=env._emscripten_glColorMask;var Gd=env._emscripten_glColorMaski;var Hd=env._emscripten_glColorPointer;var Id=env._emscripten_glCompileShader;var Jd=env._emscripten_glCompressedTexImage2D;var Kd=env._emscripten_glCompressedTexSubImage2D;var Ld=env._emscripten_glCopyTexImage2D;var Md=env._emscripten_glCopyTexSubImage2D;var Nd=env._emscripten_glCreateProgram;var Od=env._emscripten_glCreateShader;var Pd=env._emscripten_glCullFace;var Qd=env._emscripten_glDeleteBuffers;var Rd=env._emscripten_glDeleteFramebuffers;var Sd=env._emscripten_glDeleteObjectARB;var Td=env._emscripten_glDeleteProgram;var Ud=env._emscripten_glDeleteRenderbuffers;var Vd=env._emscripten_glDeleteShader;var Wd=env._emscripten_glDeleteTextures;var Xd=env._emscripten_glDeleteVertexArrays;var Yd=env._emscripten_glDepthFunc;var Zd=env._emscripten_glDepthMask;var _d=env._emscripten_glDepthRange;var $d=env._emscripten_glDepthRangef;var ae=env._emscripten_glDetachShader;var be=env._emscripten_glDisable;var ce=env._emscripten_glDisableVertexAttribArray;var de=env._emscripten_glDisablei;var ee=env._emscripten_glDrawArrays;var fe=env._emscripten_glDrawArraysInstanced;var ge=env._emscripten_glDrawBuffers;var he=env._emscripten_glDrawElements;var ie=env._emscripten_glDrawElementsInstanced;var je=env._emscripten_glDrawRangeElements;var ke=env._emscripten_glEnable;var le=env._emscripten_glEnableClientState;var me=env._emscripten_glEnableVertexAttribArray;var ne=env._emscripten_glEnablei;var oe=env._emscripten_glEndConditionalRender;var pe=env._emscripten_glEndTransformFeedback;var qe=env._emscripten_glFinish;var re=env._emscripten_glFlush;var se=env._emscripten_glFramebufferRenderbuffer;var te=env._emscripten_glFramebufferTexture2D;var ue=env._emscripten_glFrontFace;var ve=env._emscripten_glFrustum;var we=env._emscripten_glGenBuffers;var xe=env._emscripten_glGenFramebuffers;var ye=env._emscripten_glGenRenderbuffers;var ze=env._emscripten_glGenTextures;var Ae=env._emscripten_glGenVertexArrays;var Be=env._emscripten_glGenerateMipmap;var Ce=env._emscripten_glGetActiveAttrib;var De=env._emscripten_glGetActiveUniform;var Ee=env._emscripten_glGetActiveUniformBlockName;var Fe=env._emscripten_glGetActiveUniformBlockiv;var Ge=env._emscripten_glGetActiveUniformName;var He=env._emscripten_glGetActiveUniformsiv;var Ie=env._emscripten_glGetAttachedShaders;var Je=env._emscripten_glGetAttribLocation;var Ke=env._emscripten_glGetBooleani_v;var Le=env._emscripten_glGetBooleanv;var Me=env._emscripten_glGetBufferParameteriv;var Ne=env._emscripten_glGetError;var Oe=env._emscripten_glGetFloatv;var Pe=env._emscripten_glGetFragDataLocation;var Qe=env._emscripten_glGetFramebufferAttachmentParameteriv;var Re=env._emscripten_glGetInfoLogARB;var Se=env._emscripten_glGetIntegeri_v;var Te=env._emscripten_glGetIntegerv;var Ue=env._emscripten_glGetObjectParameterivARB;var Ve=env._emscripten_glGetPointerv;var We=env._emscripten_glGetProgramInfoLog;var Xe=env._emscripten_glGetProgramiv;var Ye=env._emscripten_glGetRenderbufferParameteriv;var Ze=env._emscripten_glGetShaderInfoLog;var _e=env._emscripten_glGetShaderPrecisionFormat;var $e=env._emscripten_glGetShaderSource;var af=env._emscripten_glGetShaderiv;var bf=env._emscripten_glGetString;var cf=env._emscripten_glGetStringi;var df=env._emscripten_glGetTexParameterIiv;var ef=env._emscripten_glGetTexParameterIuiv;var ff=env._emscripten_glGetTexParameterfv;var gf=env._emscripten_glGetTexParameteriv;var hf=env._emscripten_glGetTransformFeedbackVarying;var jf=env._emscripten_glGetUniformBlockIndex;var kf=env._emscripten_glGetUniformIndices;var lf=env._emscripten_glGetUniformLocation;var mf=env._emscripten_glGetUniformfv;var nf=env._emscripten_glGetUniformiv;var of=env._emscripten_glGetUniformuiv;var pf=env._emscripten_glGetVertexAttribIiv;var qf=env._emscripten_glGetVertexAttribIuiv;var rf=env._emscripten_glGetVertexAttribPointerv;var sf=env._emscripten_glGetVertexAttribfv;var tf=env._emscripten_glGetVertexAttribiv;var uf=env._emscripten_glHint;var vf=env._emscripten_glIsBuffer;var wf=env._emscripten_glIsEnabled;var xf=env._emscripten_glIsEnabledi;var yf=env._emscripten_glIsFramebuffer;var zf=env._emscripten_glIsProgram;var Af=env._emscripten_glIsRenderbuffer;var Bf=env._emscripten_glIsShader;var Cf=env._emscripten_glIsTexture;var Df=env._emscripten_glIsVertexArray;var Ef=env._emscripten_glLineWidth;var Ff=env._emscripten_glLinkProgram;var Gf=env._emscripten_glLoadIdentity;var Hf=env._emscripten_glLoadMatrixf;var If=env._emscripten_glMatrixMode;var Jf=env._emscripten_glNormalPointer;var Kf=env._emscripten_glPixelStorei;var Lf=env._emscripten_glPolygonOffset;var Mf=env._emscripten_glReadPixels;var Nf=env._emscripten_glReleaseShaderCompiler;var Of=env._emscripten_glRenderbufferStorage;var Pf=env._emscripten_glRotatef;var Qf=env._emscripten_glSampleCoverage;var Rf=env._emscripten_glScissor;var Sf=env._emscripten_glShaderBinary;var Tf=env._emscripten_glShaderSource;var Uf=env._emscripten_glStencilFunc;var Vf=env._emscripten_glStencilFuncSeparate;var Wf=env._emscripten_glStencilMask;var Xf=env._emscripten_glStencilMaskSeparate;var Yf=env._emscripten_glStencilOp;var Zf=env._emscripten_glStencilOpSeparate;var _f=env._emscripten_glTexCoordPointer;var $f=env._emscripten_glTexImage2D;var ag=env._emscripten_glTexImage3D;var bg=env._emscripten_glTexParameterIiv;var cg=env._emscripten_glTexParameterIuiv;var dg=env._emscripten_glTexParameterf;var eg=env._emscripten_glTexParameterfv;var fg=env._emscripten_glTexParameteri;var gg=env._emscripten_glTexParameteriv;var hg=env._emscripten_glTexStorage2D;var ig=env._emscripten_glTexStorage3D;var jg=env._emscripten_glTexSubImage2D;var kg=env._emscripten_glTexSubImage3D;var lg=env._emscripten_glTransformFeedbackVaryings;var mg=env._emscripten_glUniform1f;var ng=env._emscripten_glUniform1fv;var og=env._emscripten_glUniform1i;var pg=env._emscripten_glUniform1iv;var qg=env._emscripten_glUniform1ui;var rg=env._emscripten_glUniform2f;var sg=env._emscripten_glUniform2fv;var tg=env._emscripten_glUniform2i;var ug=env._emscripten_glUniform2iv;var vg=env._emscripten_glUniform2ui;var wg=env._emscripten_glUniform3f;var xg=env._emscripten_glUniform3fv;var yg=env._emscripten_glUniform3i;var zg=env._emscripten_glUniform3iv;var Ag=env._emscripten_glUniform3ui;var Bg=env._emscripten_glUniform4f;var Cg=env._emscripten_glUniform4fv;var Dg=env._emscripten_glUniform4i;var Eg=env._emscripten_glUniform4iv;var Fg=env._emscripten_glUniform4ui;var Gg=env._emscripten_glUniformBlockBinding;var Hg=env._emscripten_glUniformMatrix2fv;var Ig=env._emscripten_glUniformMatrix3fv;var Jg=env._emscripten_glUniformMatrix4fv;var Kg=env._emscripten_glUseProgram;var Lg=env._emscripten_glValidateProgram;var Mg=env._emscripten_glVertexAttrib1f;var Ng=env._emscripten_glVertexAttrib1fv;var Og=env._emscripten_glVertexAttrib2f;var Pg=env._emscripten_glVertexAttrib2fv;var Qg=env._emscripten_glVertexAttrib3f;var Rg=env._emscripten_glVertexAttrib3fv;var Sg=env._emscripten_glVertexAttrib4f;var Tg=env._emscripten_glVertexAttrib4fv;var Ug=env._emscripten_glVertexAttribDivisor;var Vg=env._emscripten_glVertexAttribI1i;var Wg=env._emscripten_glVertexAttribI1iv;var Xg=env._emscripten_glVertexAttribI1ui;var Yg=env._emscripten_glVertexAttribI1uiv;var Zg=env._emscripten_glVertexAttribI2i;var _g=env._emscripten_glVertexAttribI2iv;var $g=env._emscripten_glVertexAttribI2ui;var ah=env._emscripten_glVertexAttribI2uiv;var bh=env._emscripten_glVertexAttribI3i;var ch=env._emscripten_glVertexAttribI3iv;var dh=env._emscripten_glVertexAttribI3ui;var eh=env._emscripten_glVertexAttribI3uiv;var fh=env._emscripten_glVertexAttribI4bv;var gh=env._emscripten_glVertexAttribI4i;var hh=env._emscripten_glVertexAttribI4iv;var ih=env._emscripten_glVertexAttribI4sv;var jh=env._emscripten_glVertexAttribI4ubv;var kh=env._emscripten_glVertexAttribI4ui;var lh=env._emscripten_glVertexAttribI4uiv;var mh=env._emscripten_glVertexAttribI4usv;var nh=env._emscripten_glVertexAttribIPointer;var oh=env._emscripten_glVertexAttribPointer;var ph=env._emscripten_glVertexPointer;var qh=env._emscripten_glViewport;var rh=env._emscripten_longjmp;var sh=env._emscripten_memcpy_big;var th=env._emscripten_request_fullscreen_strategy;var uh=env._emscripten_request_pointerlock;var vh=env._emscripten_set_blur_callback;var wh=env._emscripten_set_canvas_size;var xh=env._emscripten_set_element_css_size;var yh=env._emscripten_set_focus_callback;var zh=env._emscripten_set_fullscreenchange_callback;var Ah=env._emscripten_set_gamepadconnected_callback;var Bh=env._emscripten_set_gamepaddisconnected_callback;var Ch=env._emscripten_set_keydown_callback;var Dh=env._emscripten_set_keypress_callback;var Eh=env._emscripten_set_keyup_callback;var Fh=env._emscripten_set_main_loop;var Gh=env._emscripten_set_main_loop_timing;var Hh=env._emscripten_set_mousedown_callback;var Ih=env._emscripten_set_mouseenter_callback;var Jh=env._emscripten_set_mouseleave_callback;var Kh=env._emscripten_set_mousemove_callback;var Lh=env._emscripten_set_mouseup_callback;var Mh=env._emscripten_set_resize_callback;var Nh=env._emscripten_set_touchcancel_callback;var Oh=env._emscripten_set_touchend_callback;var Ph=env._emscripten_set_touchmove_callback;var Qh=env._emscripten_set_touchstart_callback;var Rh=env._emscripten_set_visibilitychange_callback;var Sh=env._emscripten_set_wheel_callback;var Th=env._getenv;var Uh=env._gettimeofday;var Vh=env._glBindTexture;var Wh=env._glBlendFunc;var Xh=env._glClear;var Yh=env._glClearColor;var Zh=env._glClearDepthf;var _h=env._glClearStencil;var $h=env._glColorMask;var ai=env._glCopyTexImage2D;var bi=env._glCopyTexSubImage2D;var ci=env._glDeleteTextures;var di=env._glDepthMask;var ei=env._glDisable;var fi=env._glDrawArrays;var gi=env._glDrawElements;var hi=env._glEnable;var ii=env._glFinish;var ji=env._glFlush;var ki=env._glGenTextures;var li=env._glGetError;var mi=env._glGetIntegerv;var ni=env._glGetString;var oi=env._glPixelStorei;var pi=env._glReadPixels;var qi=env._glScissor;var ri=env._glShaderBinary;var si=env._glStencilFunc;var ti=env._glStencilMask;var ui=env._glStencilOp;var vi=env._glTexImage2D;var wi=env._glTexParameterf;var xi=env._glTexParameterfv;var yi=env._glTexParameteri;var zi=env._glTexParameteriv;var Ai=env._glTexSubImage2D;var Bi=env._glViewport;var Ci=env._glutCreateWindow;var Di=env._glutDestroyWindow;var Ei=env._glutInitDisplayMode;var Fi=env._llvm_ceil_f64;var Gi=env._llvm_exp2_f32;var Hi=env._llvm_fabs_f32;var Ii=env._llvm_fabs_f64;var Ji=env._llvm_floor_f32;var Ki=env._llvm_floor_f64;var Li=env._llvm_stackrestore;var Mi=env._llvm_stacksave;var Ni=env._llvm_trap;var Oi=env._longjmp;var Pi=env._nanosleep;var Qi=env._pthread_attr_getstacksize;var Ri=env._pthread_attr_init;var Si=env._pthread_attr_setstacksize;var Ti=env._pthread_cleanup_pop;var Ui=env._pthread_cleanup_push;var Vi=env._pthread_cond_destroy;var Wi=env._pthread_cond_init;var Xi=env._pthread_cond_signal;var Yi=env._pthread_cond_timedwait;var Zi=env._pthread_cond_wait;var _i=env._pthread_create;var $i=env._pthread_getspecific;var aj=env._pthread_join;var bj=env._pthread_key_create;var cj=env._pthread_mutex_destroy;var dj=env._pthread_mutex_init;var ej=env._pthread_mutexattr_init;var fj=env._pthread_mutexattr_settype;var gj=env._pthread_once;var hj=env._pthread_setspecific;var ij=env._sigaction;var jj=env._signal;var kj=env._strftime;var lj=env._strftime_l;var mj=env._usleep;var nj=env.constNoSmartPtrRawPointerToWireType;var oj=env.count_emval_handles;var pj=env.craftInvokerFunction;var qj=env.createNamedFunction;var rj=env.downcastPointer;var sj=env.embind__requireFunction;var tj=env.embind_init_charCodes;var uj=env.emscriptenWebGLComputeImageSize;var vj=env.emscriptenWebGLGet;var wj=env.emscriptenWebGLGetTexPixelData;var xj=env.emscriptenWebGLGetUniform;var yj=env.emscriptenWebGLGetVertexAttrib;var zj=env.emval_get_global;var Aj=env.ensureOverloadTable;var Bj=env.exposePublicSymbol;var Cj=env.extendError;var Dj=env.floatReadValueFromPointer;var Ej=env.flushPendingDeletes;var Fj=env.genericPointerToWireType;var Gj=env.getBasestPointer;var Hj=env.getInheritedInstance;var Ij=env.getInheritedInstanceCount;var Jj=env.getLiveInheritedInstances;var Kj=env.getShiftFromSize;var Lj=env.getStringOrSymbol;var Mj=env.getTypeName;var Nj=env.get_first_emval;var Oj=env.heap32VectorToArray;var Pj=env.init_ClassHandle;var Qj=env.init_RegisteredPointer;var Rj=env.init_embind;var Sj=env.init_emval;var Tj=env.integerReadValueFromPointer;var Uj=env.makeClassHandle;var Vj=env.makeLegalFunctionName;var Wj=env.new_;var Xj=env.nonConstNoSmartPtrRawPointerToWireType;var Yj=env.readLatin1String;var Zj=env.registerType;var _j=env.replacePublicSymbol;var $j=env.requireHandle;var ak=env.requireRegisteredType;var bk=env.runDestructor;var ck=env.runDestructors;var dk=env.setDelayFunction;var ek=env.shallowCopyInternalPointer;var fk=env.simpleReadValueFromPointer;var gk=env.throwBindingError;var hk=env.throwInstanceAlreadyDeleted;var ik=env.throwInternalError;var jk=env.throwUnboundTypeError;var kk=env.upcastPointer;var lk=env.whenDependentTypesAreResolved;var mk=0.0;function nk(newBuffer){if(q(newBuffer)&16777215||q(newBuffer)<=16777215||q(newBuffer)>2147483648)return false;b=new a(newBuffer);d=new c(newBuffer);f=new e(newBuffer);h=new g(newBuffer);j=new i(newBuffer);l=new k(newBuffer);n=new m(newBuffer);p=new o(newBuffer);buffer=newBuffer;return true}
|
||
// EMSCRIPTEN_START_FUNCS
|
||
function jl(a){a=a|0;var b=0;b=u;u=u+a|0;u=u+15&-16;return b|0}function kl(){return u|0}function ll(a){a=a|0;u=a}function ml(a,b){a=a|0;b=b|0;u=a;v=b}function nl(a,b){a=a|0;b=b|0;if(!w){w=a;x=b}}function ol(a){a=a|0;H=a}function pl(){return H|0}function ql(a){a=a|0;var b=0,c=0,d=0;b=u;u=u+16|0;d=b;c=dc(144632)|0;dv(d,c,144636,a);cc(f[d>>2]|0);cc(c|0);u=b;return}function rl(a,c){a=a|0;c=c|0;var d=0,e=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,v=0;v=u;u=u+16|0;t=v+4|0;s=v;e=b[a+11>>0]|0;g=e<<24>>24<0;e=g?f[a+4>>2]|0:e&255;g=g?f[a>>2]|0:a;a=0;d=g+e|0;while(1){d=d+-1|0;if((b[d>>0]|0)!=61)break;else a=a+1|0}fEb(c,((e*6|0)/8|0)-a|0,0);if(e){m=s+1|0;n=s+2|0;r=t+1|0;o=s+3|0;p=t+2|0;q=c+11|0;a=0;j=0;l=e;d=b[r>>0]|0;e=b[t>>0]|0;while(1){l=l+-1|0;h=b[g>>0]|0;if(h<<24>>24==61){k=j;break}g=g+1|0;i=j+1|0;b[s+j>>0]=h;if((i|0)==4){d=b[s>>0]|0;e=d&255;do if((d+-65&255)>=26){if((d+-97&255)<26){k=e+185&255;break}if((d+-48&255)<10){k=e+4&255;break}else{k=d<<24>>24==43?62:d<<24>>24==47?63:-1;break}}else k=e+191&255;while(0);b[s>>0]=k;d=b[m>>0]|0;e=d&255;do if((d+-65&255)>=26){if((d+-97&255)<26){j=e+185&255;break}if((d+-48&255)<10){j=e+4&255;break}else{j=d<<24>>24==43?62:d<<24>>24==47?63:-1;break}}else j=e+191&255;while(0);b[m>>0]=j;d=b[n>>0]|0;e=d&255;do if((d+-65&255)>=26){if((d+-97&255)<26){i=e+185&255;break}if((d+-48&255)<10){i=e+4&255;break}else{i=d<<24>>24==43?62:d<<24>>24==47?63:-1;break}}else i=e+191&255;while(0);b[n>>0]=i;d=b[o>>0]|0;e=d&255;do if((d+-65&255)>=26){if((d+-97&255)<26){h=e+185&255;break}if((d+-48&255)<10){h=e+4&255;break}else{h=d<<24>>24==43?62:d<<24>>24==47?63:-1;break}}else h=e+191&255;while(0);b[o>>0]=h;e=((j&48)>>>4|(k&255)<<2)&255;d=((i&60)>>>2|j<<4&255)&255;i=(h&255)+(i<<6&255)&255;b[p>>0]=i;if((b[q>>0]|0)<0)h=f[c>>2]|0;else h=c;b[h+a>>0]=e;if((b[q>>0]|0)<0)h=f[c>>2]|0;else h=c;b[h+(a+1)>>0]=d;if((b[q>>0]|0)<0)h=f[c>>2]|0;else h=c;b[h+(a+2)>>0]=i;a=a+3|0;i=0}if(!l){k=i;break}else j=i}b[t>>0]=e;b[r>>0]=d;if(k){if((k|0)<4)iGb(s+k|0,0,4-k|0)|0;d=b[s>>0]|0;e=d&255;do if((d+-65&255)>=26){if((d+-97&255)<26){j=e+185&255;break}if((d+-48&255)<10){j=e+4&255;break}else{j=d<<24>>24==43?62:d<<24>>24==47?63:-1;break}}else j=e+191&255;while(0);b[s>>0]=j;g=s+1|0;d=b[g>>0]|0;e=d&255;do if((d+-65&255)>=26){if((d+-97&255)<26){i=e+185&255;break}if((d+-48&255)<10){i=e+4&255;break}else{i=d<<24>>24==43?62:d<<24>>24==47?63:-1;break}}else i=e+191&255;while(0);b[g>>0]=i;g=s+2|0;d=b[g>>0]|0;e=d&255;do if((d+-65&255)>=26){if((d+-97&255)<26){h=e+185&255;break}if((d+-48&255)<10){h=e+4&255;break}else{h=d<<24>>24==43?62:d<<24>>24==47?63:-1;break}}else h=e+191&255;while(0);b[g>>0]=h;g=s+3|0;d=b[g>>0]|0;e=d&255;do if((d+-65&255)>=26){if((d+-97&255)<26){d=e+185&255;break}if((d+-48&255)<10){d=e+4&255;break}else{d=d<<24>>24==43?62:d<<24>>24==47?63:-1;break}}else d=e+191&255;while(0);b[g>>0]=d;e=((i&48)>>>4|(j&255)<<2)&255;b[t>>0]=e;b[t+1>>0]=(h&60)>>>2|i<<4&255;b[t+2>>0]=(d&255)+(h<<6&255);j=k+-1|0;if((k|0)>1){i=c+11|0;h=k+a|0;g=0;while(1){if((b[i>>0]|0)<0)d=f[c>>2]|0;else d=c;b[d+a>>0]=e;d=g+1|0;if((d|0)==(j|0))break;g=d;a=a+1|0;e=b[t+d>>0]|0}a=h+-1|0}}}else a=0;d=b[c+11>>0]|0;if(d<<24>>24<0){c=f[c+4>>2]|0;c=(a|0)==(c|0);u=v;return c|0}else{c=d&255;c=(a|0)==(c|0);u=v;return c|0}return 0}function sl(a,c){a=a|0;c=c|0;var d=0,e=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;t=u;u=u+16|0;r=t+4|0;s=t;e=a+11|0;h=b[e>>0]|0;q=a+4|0;fEb(c,((((h<<24>>24<0?f[q>>2]|0:h&255)+2|0)>>>0)/3|0)<<2,0);e=b[e>>0]|0;h=e<<24>>24<0;e=h?f[q>>2]|0:e&255;if(e){l=r+1|0;m=s+1|0;n=r+2|0;o=s+2|0;p=s+3|0;q=c+11|0;d=0;g=0;k=h?f[a>>2]|0:a;i=b[m>>0]|0;h=b[s>>0]|0;while(1){e=e+-1|0;a=g+1|0;b[r+g>>0]=b[k>>0]|0;k=k+1|0;if((a|0)==3){j=b[r>>0]|0;h=(j&255)>>>2;g=b[l>>0]|0;j=(g&255)>>>4|j<<4&48;i=b[n>>0]|0;g=(i&255)>>>6|g<<2&60;b[o>>0]=g;i=i&63;b[p>>0]=i;if((b[q>>0]|0)<0)a=f[c>>2]|0;else a=c;b[a+d>>0]=b[13360+(h&255)>>0]|0;if((b[q>>0]|0)<0)a=f[c>>2]|0;else a=c;b[a+(d+1)>>0]=b[13360+j>>0]|0;if((b[q>>0]|0)<0)a=f[c>>2]|0;else a=c;b[a+(d+2)>>0]=b[13360+g>>0]|0;if((b[q>>0]|0)<0)a=f[c>>2]|0;else a=c;b[a+(d+3)>>0]=b[13360+(i&255)>>0]|0;d=d+4|0;g=0;a=j&255}else{g=a;a=i}if(!e)break;else i=a}b[s>>0]=h;b[m>>0]=a;if(g){k=(g|0)<3;if(k)iGb(r+g|0,0,3-g|0)|0;p=b[r>>0]|0;e=(p&255)>>>2;b[s>>0]=e;q=b[r+1>>0]|0;b[s+1>>0]=(q&255)>>>4|p<<4&48;r=b[r+2>>0]|0;b[s+2>>0]=(r&255)>>>6|q<<2&60;b[s+3>>0]=r&63;if((g|0)>=0){i=c+11|0;j=d+g|0;h=0;while(1){if((b[i>>0]|0)<0)a=f[c>>2]|0;else a=c;b[a+d>>0]=b[13360+(e&255)>>0]|0;e=h+1|0;if((h|0)==(g|0))break;h=e;d=d+1|0;e=b[s+e>>0]|0}d=j+1|0}if(k){h=c+11|0;while(1){e=d+1|0;if((b[h>>0]|0)<0)a=f[c>>2]|0;else a=c;b[a+d>>0]=61;if((g|0)<2){g=g+1|0;d=e}else{d=e;break}}}}}else d=0;e=b[c+11>>0]|0;if(e<<24>>24<0){c=f[c+4>>2]|0;c=(d|0)==(c|0);u=t;return c|0}else{c=e&255;c=(d|0)==(c|0);u=t;return c|0}return 0}function tl(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0;g=u;u=u+4112|0;h=g+4096|0;e=g;f[h>>2]=d;bqb(e,4096,c,h)|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;c=Zob(e)|0;if(c>>>0>4294967279)TDb(a);if(c>>>0<11){b[a+11>>0]=c;if(!c){h=a;h=h+c|0;b[h>>0]=0;u=g;return}}else{d=c+16&-16;h=LDb(d)|0;f[a>>2]=h;f[a+8>>2]=d|-2147483648;f[a+4>>2]=c;a=h}gGb(a|0,e|0,c|0)|0;h=a;h=h+c|0;b[h>>0]=0;u=g;return}function ul(a,b){a=a|0;b=b|0;var c=0,d=0;c=a+4|0;d=f[c>>2]|0;if((d|0)==(f[a+8>>2]|0)){cv(a,b);return}else{VDb(d,b);f[c>>2]=(f[c>>2]|0)+12;return}}function vl(a){a=a|0;var c=0,d=0,e=0,g=0;g=LDb(52)|0;BCa(g);c=g+12|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[g+24>>2]=2;f[g+28>>2]=0;f[g>>2]=84424;f[g+32>>2]=0;f[g+40>>2]=100;b[g+44>>0]=1;b[g+45>>0]=0;b[g+46>>0]=1;b[g+47>>0]=0;b[g+48>>0]=1;b[g+49>>0]=1;b[g+50>>0]=1;n[g+36>>2]=.5;c=LDb(160)|0;p2(c);e=f[(f[c>>2]|0)+264>>2]|0;d=LDb(300)|0;ZCa(d,a,g);wk[e&1023](c,d)|0;a=LDb(408)|0;j4(a);d=a+8|0;f[d>>2]=(f[d>>2]|0)+1;wk[f[(f[a>>2]|0)+228>>2]&1023](a,c)|0;ECa(a)|0;return a|0}function wl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;j=u;u=u+288|0;h=j+96|0;g=j;i=LDb(96)|0;QFa(i,0,+n[a>>2],+n[a+4>>2]);e=i+8|0;f[e>>2]=(f[e>>2]|0)+1;Jja(h,i,0);Vk[f[(f[b>>2]|0)+212>>2]&1023](b,h);if(sk[f[(f[i>>2]|0)+32>>2]&2047](i)|0){a=f[i+28>>2]|0;a=(a|0)==0?i:a;a:do if(f[a+88>>2]|0){um(g,(f[a+80>>2]|0)+16|0);a=f[g+8>>2]|0;d=f[g+12>>2]|0;if((a|0)==(d|0))a=0;else{b=a;while(1){a=f[b>>2]|0;b=b+4|0;if((f[a+116>>2]&c|0)!=(c|0))break a;if((b|0)==(d|0)){a=0;break}}}}else{p[g>>3]=-1.0;a=g+8|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;f[a+16>>2]=0;a=g+32|0;b=a+64|0;do{f[a>>2]=0;a=a+4|0}while((a|0)<(b|0));a=0}while(0);xl(g)}else a=0;vm(h,112428);ow(h+160|0);h=f[e>>2]|0;f[e>>2]=h-1;if((h|0)!=1){u=j;return a|0}X4(i,1,1);u=j;return a|0}function xl(a){a=a|0;var b=0,c=0,d=0,e=0;b=f[a+80>>2]|0;if(b|0){f[a+84>>2]=b;NDb(b)}b=f[a+68>>2]|0;if(b|0){f[a+72>>2]=b;NDb(b)}b=a+24|0;c=f[b>>2]|0;if(c|0?(e=c+8|0,d=f[e>>2]|0,f[e>>2]=d-1,(d|0)==1):0)X4(c,1,1);f[b>>2]=0;b=a+20|0;c=f[b>>2]|0;if(c|0?(d=c+8|0,e=f[d>>2]|0,f[d>>2]=e-1,(e|0)==1):0)X4(c,1,1);f[b>>2]=0;b=f[a+8>>2]|0;if(!b)return;f[a+12>>2]=b;NDb(b);return}function yl(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0.0,B=0.0,C=0.0,D=0,E=0,F=0,G=0,H=0.0,I=0.0,J=0.0,L=0.0,M=0.0,N=0.0;x=u;u=u+800|0;G=x+672|0;k=x+544|0;z=x+288|0;E=x+128|0;D=x+416|0;F=x+256|0;y=x;w=a+144|0;N=+p[w>>3];p[G>>3]=N;d=a+152|0;J=+p[d>>3];p[G+8>>3]=J;e=a+160|0;A=+p[e>>3];p[G+16>>3]=A;f=a+168|0;p[G+24>>3]=+p[f>>3];g=a+176|0;M=+p[g>>3];p[G+32>>3]=M;h=a+184|0;I=+p[h>>3];p[G+40>>3]=I;i=a+192|0;B=+p[i>>3];p[G+48>>3]=B;j=a+200|0;p[G+56>>3]=+p[j>>3];l=a+208|0;L=+p[l>>3];p[G+64>>3]=L;m=a+216|0;H=+p[m>>3];p[G+72>>3]=H;o=a+224|0;C=+p[o>>3];p[G+80>>3]=C;q=a+232|0;p[G+88>>3]=+p[q>>3];r=a+240|0;p[G+96>>3]=+p[r>>3];s=a+248|0;p[G+104>>3]=+p[s>>3];t=a+256|0;p[G+112>>3]=+p[t>>3];v=a+264|0;p[G+120>>3]=+p[v>>3];SWa(E);TWa(E,+K(+(N*N+M*M+L*L)),+K(+(J*J+I*I+H*H)),+K(+(A*A+B*B+C*C)));OWa(F,G);VWa(D,F);SWa(z);WWa(z,E,D);C=+n[c>>2];B=+n[c+4>>2];A=+n[c+8>>2];SWa(y);UWa(y,C,B,A);SWa(k);WWa(k,z,y);if((w|0)==(k|0)){G=a+400|0;b[G>>0]=1;oA(a);u=x;return}p[w>>3]=+p[k>>3];p[d>>3]=+p[k+8>>3];p[e>>3]=+p[k+16>>3];p[f>>3]=+p[k+24>>3];p[g>>3]=+p[k+32>>3];p[h>>3]=+p[k+40>>3];p[i>>3]=+p[k+48>>3];p[j>>3]=+p[k+56>>3];p[l>>3]=+p[k+64>>3];p[m>>3]=+p[k+72>>3];p[o>>3]=+p[k+80>>3];p[q>>3]=+p[k+88>>3];p[r>>3]=+p[k+96>>3];p[s>>3]=+p[k+104>>3];p[t>>3]=+p[k+112>>3];p[v>>3]=+p[k+120>>3];G=a+400|0;b[G>>0]=1;oA(a);u=x;return}function zl(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0.0,l=0.0,m=0.0,o=0,q=0,r=0,s=0.0,t=0.0,v=0.0,w=0.0,x=0.0,y=0.0;h=u;u=u+672|0;g=h+544|0;o=h+416|0;i=h+288|0;r=h+256|0;j=h+128|0;q=h;f[r>>2]=0;f[r+4>>2]=0;f[r+8>>2]=0;f[r+12>>2]=0;f[r+16>>2]=0;f[r+20>>2]=0;p[r+24>>3]=1.0;k=+n[c>>2]*3.1415927410125732/180.0;n[g>>2]=1.0;n[g+4>>2]=0.0;n[g+8>>2]=0.0;x=+n[c+4>>2]*3.1415927410125732/180.0;n[o>>2]=0.0;n[o+4>>2]=1.0;n[o+8>>2]=0.0;y=+n[c+8>>2]*3.1415927410125732/180.0;n[i>>2]=0.0;n[i+4>>2]=0.0;n[i+8>>2]=1.0;yCa(r,k,g,x,o,y,i);c=a+144|0;y=+p[c>>3];x=+p[a+176>>3];k=+p[a+208>>3];d=a+152|0;w=+p[d>>3];v=+p[a+184>>3];l=+p[a+216>>3];e=a+160|0;t=+p[e>>3];s=+p[a+192>>3];m=+p[a+224>>3];k=+K(+(y*y+x*x+k*k));l=+K(+(w*w+v*v+l*l));m=+K(+(t*t+s*s+m*m));SWa(q);TWa(q,k,l,m);VWa(o,r);SWa(j);WWa(j,q,o);m=+p[a+240>>3];l=+p[a+248>>3];k=+p[a+256>>3];SWa(i);UWa(i,m,l,k);SWa(g);WWa(g,j,i);if((c|0)==(g|0)){r=a+400|0;b[r>>0]=1;oA(a);u=h;return}p[c>>3]=+p[g>>3];p[d>>3]=+p[g+8>>3];p[e>>3]=+p[g+16>>3];p[a+168>>3]=+p[g+24>>3];p[a+176>>3]=+p[g+32>>3];p[a+184>>3]=+p[g+40>>3];p[a+192>>3]=+p[g+48>>3];p[a+200>>3]=+p[g+56>>3];p[a+208>>3]=+p[g+64>>3];p[a+216>>3]=+p[g+72>>3];p[a+224>>3]=+p[g+80>>3];p[a+232>>3]=+p[g+88>>3];p[a+240>>3]=+p[g+96>>3];p[a+248>>3]=+p[g+104>>3];p[a+256>>3]=+p[g+112>>3];p[a+264>>3]=+p[g+120>>3];r=a+400|0;b[r>>0]=1;oA(a);u=h;return}function Al(a,b){a=a|0;b=b|0;var c=0,d=0;c=LDb(152)|0;b6(c,35633,a);a=LDb(152)|0;b6(a,35632,b);b=LDb(196)|0;hT(b);d=b+8|0;f[d>>2]=(f[d>>2]|0)+1;_S(b,c)|0;_S(b,a)|0;ECa(b)|0;return b|0}function Bl(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;i=u;u=u+144|0;g=i+112|0;h=i+24|0;e=i;d=aHa(0)|0;j=g+4|0;f[j>>2]=0;f[j+4>>2]=0;j=g+11|0;b[j>>0]=3;b[g>>0]=b[227219]|0;b[g+1>>0]=b[227220]|0;b[g+2>>0]=b[227221]|0;b[g+3>>0]=0;d=YHa(d,g)|0;if((b[j>>0]|0)<0)NDb(f[g>>2]|0);if(!d){dsb(159105)|0;j=0;u=i;return j|0}Otb(g);f[g>>2]=84596;j=b[c+11>>0]|0;l=j<<24>>24<0;k=l?f[c>>2]|0:c;j=k+(l?f[c+4>>2]|0:j&255)|0;f[g+8>>2]=k;f[g+12>>2]=k;f[g+16>>2]=j;j=h+8|0;f[h>>2]=141244;f[j>>2]=141264;f[h+4>>2]=0;Itb(j,g);f[h+80>>2]=0;f[h+84>>2]=-1;al[f[(f[d>>2]|0)+252>>2]&255](e,d,h,0);if((f[e>>2]|1|0)==5){pba(a,JYa(e)|0);a=e+16|0;c=f[a>>2]|0;if(c|0?(k=c+8|0,l=f[k>>2]|0,f[k>>2]=l-1,(l|0)==1):0)X4(c,1,1);f[a>>2]=0;a=e+4|0;if((b[a+11>>0]|0)<0)NDb(f[a>>2]|0);ftb(h);xsb(g);l=1;u=i;return l|0}else{dsb(159179)|0;a=e+16|0;c=f[a>>2]|0;if(c|0?(k=c+8|0,l=f[k>>2]|0,f[k>>2]=l-1,(l|0)==1):0)X4(c,1,1);f[a>>2]=0;a=e+4|0;if((b[a+11>>0]|0)<0)NDb(f[a>>2]|0);ftb(h);xsb(g);l=0;u=i;return l|0}return 0}function Cl(a){a=a|0;var b=0,c=0;if(!a){c=0;return c|0}b=LDb(264)|0;Mba(b);c=b+8|0;f[c>>2]=(f[c>>2]|0)+1;if(Bl(b,a)|0){pDa(b,0,10497);pDa(b,1,10497);qDa(b,0,9987);qDa(b,1,9729);ECa(b)|0;c=b;return c|0}a=f[c>>2]|0;f[c>>2]=a-1;if((a|0)!=1){c=0;return c|0}X4(b,1,1);c=0;return c|0}function Dl(){var a=0,c=0,d=0,e=0,g=0,h=0;h=u;u=u+64|0;e=h;if(!(f[72417]|0)){u=h;return}d=(okb(e)|0)==0;c=f[f[72417]>>2]|0;a=c+24|0;if(!d)do{a=f[(f[(f[a>>2]|0)+120>>2]|0)+624>>2]|0;do if(a|0?(g=bFb(a,60400,76584,0)|0,g|0):0){a=f[g+136>>2]|0;d=c+12|0;if(((f[e>>2]|0)+-1792|0)>>>0>=3){if(!(b[d>>0]|0)){ym(c,e,a)|0;break}}else b[d>>0]=1;zm(c,e,a)|0}while(0);d=(okb(e)|0)==0;c=f[f[72417]>>2]|0;a=c+24|0}while(!d);g=f[a>>2]|0;Ok[f[(f[g>>2]|0)+64>>2]&31](g,1797693134862315708145274.0e284);u=h;return}function El(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0;j=u;u=u+16|0;i=j+8|0;g=j;h=f[(f[f[72417]>>2]|0)+28>>2]|0;e=Bm(h+12|0,c)|0;if((e|0)==(h+16|0)){f[g>>2]=(b[c+11>>0]|0)<0?f[c>>2]|0:c;Am(h,144771,g);f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;u=j;return}e=f[(f[e+28>>2]|0)+16>>2]|0;if(!e){f[i>>2]=(b[c+11>>0]|0)<0?f[c>>2]|0:c;Am(h,144806,i);f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;u=j;return}else{al[f[(f[e>>2]|0)+24>>2]&255](a,e,c,d);u=j;return}}function Fl(a){a=a|0;Pb(58128,58152,58168,0,159071,1033,159074,0,159074,0,a|0,159076,1474);Qb(58128,1,87560,159071,1034,3);a=LDb(8)|0;f[a>>2]=788;f[a+4>>2]=0;Rb(58128,158649,3,87564,159079,215,a|0,0);a=LDb(8)|0;f[a>>2]=216;f[a+4>>2]=0;Rb(58128,158659,4,16,159084,108,a|0,0);a=LDb(8)|0;f[a>>2]=1035;f[a+4>>2]=0;Rb(58128,158666,2,87576,159090,463,a|0,0);a=LDb(4)|0;f[a>>2]=217;Rb(58128,158671,3,87584,159094,198,a|0,0);a=LDb(4)|0;f[a>>2]=199;Rb(58128,158675,4,32,159099,28,a|0,0);return}function Gl(){var a=0,b=0,c=0;a=u;u=u+16|0;c=a;b=dc(144632)|0;uv(c,b,144670);cc(f[c>>2]|0);cc(b|0);u=a;return}function Hl(a,b){a=a|0;b=b|0;var c=0,d=0;d=u;u=u+16|0;b=d+4|0;f[b+4>>2]=0;f[b+8>>2]=0;c=b+4|0;f[b>>2]=c;a=LDb(28)|0;Il(a,b);f[72417]=a;if(Jl(f[a>>2]|0,a+4|0,800,600)|0){Kl(f[f[72417]>>2]|0);Gl();Fh(3,-1,0);a=0}else{Xrb(144685,d)|0;a=1}bv(b,f[c>>2]|0);u=d;return a|0}function Il(a,c){a=a|0;c=c|0;var d=0,e=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,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;K=u;u=u+576|0;I=K+528|0;l=K+552|0;m=K+504|0;n=K+480|0;o=K+456|0;p=K+432|0;q=K+408|0;r=K+384|0;s=K+360|0;t=K+336|0;v=K+312|0;w=K+288|0;x=K+264|0;y=K+240|0;z=K+216|0;A=K+192|0;B=K+168|0;C=K+144|0;D=K+120|0;E=K+96|0;F=K+72|0;G=K+48|0;H=K+24|0;J=K;d=a+4|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;c=LDb(48)|0;f[d>>2]=c;f[a+12>>2]=-2147483600;f[a+8>>2]=40;e=c;g=144841;h=e+40|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[c+40>>0]=0;i=a+16|0;j=a+20|0;f[j>>2]=0;k=a+24|0;f[k>>2]=0;f[i>>2]=a+20;c=LDb(96)|0;Dm(c,d);f[a>>2]=c;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;c=LDb(64)|0;f[l>>2]=c;f[l+8>>2]=-2147483584;f[l+4>>2]=54;e=c;g=145100;h=e+54|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[c+54>>0]=0;e=Dq(i,I,l)|0;c=f[e>>2]|0;if(!c){c=LDb(40)|0;d=c+16|0;f[d>>2]=f[l>>2];f[d+4>>2]=f[l+4>>2];f[d+8>>2]=f[l+8>>2];f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;d=c+28|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;d=f[I>>2]|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=d;f[e>>2]=c;d=f[f[i>>2]>>2]|0;if(!d)d=c;else{f[i>>2]=d;d=f[e>>2]|0}Aq(f[j>>2]|0,d);f[k>>2]=(f[k>>2]|0)+1}eEb(c+28|0,144882)|0;if((b[l+11>>0]|0)<0)NDb(f[l>>2]|0);f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;c=LDb(80)|0;f[l>>2]=c;f[l+8>>2]=-2147483568;f[l+4>>2]=71;e=c;g=145376;h=e+71|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[c+71>>0]=0;e=Dq(i,I,l)|0;c=f[e>>2]|0;if(!c){c=LDb(40)|0;d=c+16|0;f[d>>2]=f[l>>2];f[d+4>>2]=f[l+4>>2];f[d+8>>2]=f[l+8>>2];f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;d=c+28|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;d=f[I>>2]|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=d;f[e>>2]=c;d=f[f[i>>2]>>2]|0;if(!d)d=c;else{f[i>>2]=d;d=f[e>>2]|0}Aq(f[j>>2]|0,d);f[k>>2]=(f[k>>2]|0)+1}eEb(c+28|0,145155)|0;if((b[l+11>>0]|0)<0)NDb(f[l>>2]|0);f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;c=LDb(48)|0;f[l>>2]=c;f[l+8>>2]=-2147483600;f[l+4>>2]=42;e=c;g=145579;h=e+42|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[c+42>>0]=0;e=Dq(i,I,l)|0;c=f[e>>2]|0;if(!c){c=LDb(40)|0;d=c+16|0;f[d>>2]=f[l>>2];f[d+4>>2]=f[l+4>>2];f[d+8>>2]=f[l+8>>2];f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;d=c+28|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;d=f[I>>2]|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=d;f[e>>2]=c;d=f[f[i>>2]>>2]|0;if(!d)d=c;else{f[i>>2]=d;d=f[e>>2]|0}Aq(f[j>>2]|0,d);f[k>>2]=(f[k>>2]|0)+1}eEb(c+28|0,145448)|0;if((b[l+11>>0]|0)<0)NDb(f[l>>2]|0);f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;c=LDb(48)|0;f[l>>2]=c;f[l+8>>2]=-2147483600;f[l+4>>2]=32;e=c;g=145742;h=e+32|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[c+32>>0]=0;e=Dq(i,I,l)|0;c=f[e>>2]|0;if(!c){c=LDb(40)|0;d=c+16|0;f[d>>2]=f[l>>2];f[d+4>>2]=f[l+4>>2];f[d+8>>2]=f[l+8>>2];f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;d=c+28|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;d=f[I>>2]|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=d;f[e>>2]=c;d=f[f[i>>2]>>2]|0;if(!d)d=c;else{f[i>>2]=d;d=f[e>>2]|0}Aq(f[j>>2]|0,d);f[k>>2]=(f[k>>2]|0)+1}eEb(c+28|0,145622)|0;if((b[l+11>>0]|0)<0)NDb(f[l>>2]|0);f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;c=LDb(48)|0;f[l>>2]=c;f[l+8>>2]=-2147483600;f[l+4>>2]=38;e=c;g=145903;h=e+38|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[c+38>>0]=0;e=Dq(i,I,l)|0;c=f[e>>2]|0;if(!c){c=LDb(40)|0;d=c+16|0;f[d>>2]=f[l>>2];f[d+4>>2]=f[l+4>>2];f[d+8>>2]=f[l+8>>2];f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;d=c+28|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;d=f[I>>2]|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=d;f[e>>2]=c;d=f[f[i>>2]>>2]|0;if(!d)d=c;else{f[i>>2]=d;d=f[e>>2]|0}Aq(f[j>>2]|0,d);f[k>>2]=(f[k>>2]|0)+1}eEb(c+28|0,145775)|0;if((b[l+11>>0]|0)<0)NDb(f[l>>2]|0);f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;c=LDb(48)|0;f[l>>2]=c;f[l+8>>2]=-2147483600;f[l+4>>2]=36;e=c;g=146092;h=e+36|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[c+36>>0]=0;e=Dq(i,I,l)|0;c=f[e>>2]|0;if(!c){c=LDb(40)|0;d=c+16|0;f[d>>2]=f[l>>2];f[d+4>>2]=f[l+4>>2];f[d+8>>2]=f[l+8>>2];f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;d=c+28|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;d=f[I>>2]|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=d;f[e>>2]=c;d=f[f[i>>2]>>2]|0;if(!d)d=c;else{f[i>>2]=d;d=f[e>>2]|0}Aq(f[j>>2]|0,d);f[k>>2]=(f[k>>2]|0)+1}eEb(c+28|0,145942)|0;if((b[l+11>>0]|0)<0)NDb(f[l>>2]|0);f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;c=LDb(48)|0;f[l>>2]=c;f[l+8>>2]=-2147483600;f[l+4>>2]=38;e=c;g=146295;h=e+38|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[c+38>>0]=0;e=Dq(i,I,l)|0;c=f[e>>2]|0;if(!c){c=LDb(40)|0;d=c+16|0;f[d>>2]=f[l>>2];f[d+4>>2]=f[l+4>>2];f[d+8>>2]=f[l+8>>2];f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;d=c+28|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;d=f[I>>2]|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=d;f[e>>2]=c;d=f[f[i>>2]>>2]|0;if(!d)d=c;else{f[i>>2]=d;d=f[e>>2]|0}Aq(f[j>>2]|0,d);f[k>>2]=(f[k>>2]|0)+1}eEb(c+28|0,146129)|0;if((b[l+11>>0]|0)<0)NDb(f[l>>2]|0);f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;c=LDb(48)|0;f[l>>2]=c;f[l+8>>2]=-2147483600;f[l+4>>2]=44;e=c;g=146532;h=e+44|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[c+44>>0]=0;e=Dq(i,I,l)|0;c=f[e>>2]|0;if(!c){c=LDb(40)|0;d=c+16|0;f[d>>2]=f[l>>2];f[d+4>>2]=f[l+4>>2];f[d+8>>2]=f[l+8>>2];f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;d=c+28|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;d=f[I>>2]|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=d;f[e>>2]=c;d=f[f[i>>2]>>2]|0;if(!d)d=c;else{f[i>>2]=d;d=f[e>>2]|0}Aq(f[j>>2]|0,d);f[k>>2]=(f[k>>2]|0)+1}eEb(c+28|0,146334)|0;if((b[l+11>>0]|0)<0)NDb(f[l>>2]|0);f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;c=LDb(48)|0;f[l>>2]=c;f[l+8>>2]=-2147483600;f[l+4>>2]=44;e=c;g=146723;h=e+44|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[c+44>>0]=0;e=Dq(i,I,l)|0;c=f[e>>2]|0;if(!c){c=LDb(40)|0;d=c+16|0;f[d>>2]=f[l>>2];f[d+4>>2]=f[l+4>>2];f[d+8>>2]=f[l+8>>2];f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;d=c+28|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;d=f[I>>2]|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=d;f[e>>2]=c;d=f[f[i>>2]>>2]|0;if(!d)d=c;else{f[i>>2]=d;d=f[e>>2]|0}Aq(f[j>>2]|0,d);f[k>>2]=(f[k>>2]|0)+1}eEb(c+28|0,146577)|0;if((b[l+11>>0]|0)<0)NDb(f[l>>2]|0);f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;c=LDb(32)|0;f[l>>2]=c;f[l+8>>2]=-2147483616;f[l+4>>2]=25;e=c;g=146912;h=e+25|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[c+25>>0]=0;e=Dq(i,I,l)|0;c=f[e>>2]|0;if(!c){c=LDb(40)|0;d=c+16|0;f[d>>2]=f[l>>2];f[d+4>>2]=f[l+4>>2];f[d+8>>2]=f[l+8>>2];f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;d=c+28|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;d=f[I>>2]|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=d;f[e>>2]=c;d=f[f[i>>2]>>2]|0;if(!d)d=c;else{f[i>>2]=d;d=f[e>>2]|0}Aq(f[j>>2]|0,d);f[k>>2]=(f[k>>2]|0)+1}eEb(c+28|0,146768)|0;if((b[l+11>>0]|0)<0)NDb(f[l>>2]|0);f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;c=LDb(48)|0;f[l>>2]=c;f[l+8>>2]=-2147483600;f[l+4>>2]=46;e=c;g=147066;h=e+46|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[c+46>>0]=0;e=Dq(i,I,l)|0;c=f[e>>2]|0;if(!c){c=LDb(40)|0;d=c+16|0;f[d>>2]=f[l>>2];f[d+4>>2]=f[l+4>>2];f[d+8>>2]=f[l+8>>2];f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;d=c+28|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;d=f[I>>2]|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=d;f[e>>2]=c;d=f[f[i>>2]>>2]|0;if(!d)d=c;else{f[i>>2]=d;d=f[e>>2]|0}Aq(f[j>>2]|0,d);f[k>>2]=(f[k>>2]|0)+1}eEb(c+28|0,146938)|0;if((b[l+11>>0]|0)<0)NDb(f[l>>2]|0);d=f[a>>2]|0;f[I>>2]=0;f[I+4>>2]=0;f[I+8>>2]=0;c=LDb(32)|0;f[I>>2]=c;f[I+8>>2]=-2147483616;f[I+4>>2]=17;e=c;g=147113;h=e+17|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[c+17>>0]=0;i=a;c=m+16|0;f[m>>2]=86452;f[m+4>>2]=i;f[c>>2]=m;Em(d,I,m);c=f[c>>2]|0;do if((m|0)==(c|0))Nk[f[(f[c>>2]|0)+16>>2]&2047](c);else{if(!c)break;Nk[f[(f[c>>2]|0)+20>>2]&2047](c)}while(0);if((b[I+11>>0]|0)<0)NDb(f[I>>2]|0);c=f[a>>2]|0;f[I>>2]=0;f[I+4>>2]=0;f[I+8>>2]=0;d=LDb(32)|0;f[I>>2]=d;f[I+8>>2]=-2147483616;f[I+4>>2]=21;e=d;g=147131;h=e+21|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[d+21>>0]=0;m=n+16|0;f[n>>2]=86496;f[n+4>>2]=i;f[m>>2]=n;Em(c,I,n);c=f[m>>2]|0;do if((n|0)==(c|0))Nk[f[(f[c>>2]|0)+16>>2]&2047](c);else{if(!c)break;Nk[f[(f[c>>2]|0)+20>>2]&2047](c)}while(0);if((b[I+11>>0]|0)<0)NDb(f[I>>2]|0);c=f[a>>2]|0;f[I>>2]=0;f[I+4>>2]=0;f[I+8>>2]=0;d=LDb(16)|0;f[I>>2]=d;f[I+8>>2]=-2147483632;f[I+4>>2]=15;e=d;g=147153;h=e+15|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[d+15>>0]=0;n=o+16|0;f[o>>2]=86540;f[o+4>>2]=i;f[n>>2]=o;Em(c,I,o);c=f[n>>2]|0;do if((o|0)==(c|0))Nk[f[(f[c>>2]|0)+16>>2]&2047](c);else{if(!c)break;Nk[f[(f[c>>2]|0)+20>>2]&2047](c)}while(0);if((b[I+11>>0]|0)<0)NDb(f[I>>2]|0);c=f[a>>2]|0;f[I>>2]=0;f[I+4>>2]=0;f[I+8>>2]=0;d=LDb(16)|0;f[I>>2]=d;f[I+8>>2]=-2147483632;f[I+4>>2]=15;e=d;g=147169;h=e+15|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[d+15>>0]=0;o=p+16|0;f[p>>2]=86584;f[p+4>>2]=i;f[o>>2]=p;Em(c,I,p);c=f[o>>2]|0;do if((p|0)==(c|0))Nk[f[(f[c>>2]|0)+16>>2]&2047](c);else{if(!c)break;Nk[f[(f[c>>2]|0)+20>>2]&2047](c)}while(0);if((b[I+11>>0]|0)<0)NDb(f[I>>2]|0);c=f[a>>2]|0;f[I>>2]=0;f[I+4>>2]=0;f[I+8>>2]=0;d=LDb(16)|0;f[I>>2]=d;f[I+8>>2]=-2147483632;f[I+4>>2]=14;e=d;g=147185;h=e+14|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[d+14>>0]=0;p=q+16|0;f[q>>2]=86628;f[q+4>>2]=i;f[p>>2]=q;Em(c,I,q);c=f[p>>2]|0;do if((q|0)==(c|0))Nk[f[(f[c>>2]|0)+16>>2]&2047](c);else{if(!c)break;Nk[f[(f[c>>2]|0)+20>>2]&2047](c)}while(0);if((b[I+11>>0]|0)<0)NDb(f[I>>2]|0);q=(f[(f[a>>2]|0)+20>>2]|0)+32|0;c=I+16|0;f[I>>2]=86672;f[c>>2]=I;Br(I,q);c=f[c>>2]|0;do if((I|0)==(c|0))Nk[f[(f[c>>2]|0)+16>>2]&2047](c);else{if(!c)break;Nk[f[(f[c>>2]|0)+20>>2]&2047](c)}while(0);c=f[a>>2]|0;f[I>>2]=0;f[I+4>>2]=0;f[I+8>>2]=0;d=LDb(32)|0;f[I>>2]=d;f[I+8>>2]=-2147483616;f[I+4>>2]=20;e=d;g=147200;h=e+20|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[d+20>>0]=0;q=r+16|0;f[r>>2]=86716;f[r+4>>2]=i;f[q>>2]=r;Em(c,I,r);c=f[q>>2]|0;do if((r|0)==(c|0))Nk[f[(f[c>>2]|0)+16>>2]&2047](c);else{if(!c)break;Nk[f[(f[c>>2]|0)+20>>2]&2047](c)}while(0);if((b[I+11>>0]|0)<0)NDb(f[I>>2]|0);r=(f[(f[a>>2]|0)+20>>2]|0)+72|0;c=I+16|0;f[I>>2]=86760;f[c>>2]=I;Br(I,r);c=f[c>>2]|0;do if((I|0)==(c|0))Nk[f[(f[c>>2]|0)+16>>2]&2047](c);else{if(!c)break;Nk[f[(f[c>>2]|0)+20>>2]&2047](c)}while(0);c=f[a>>2]|0;f[I>>2]=0;f[I+4>>2]=0;f[I+8>>2]=0;d=LDb(32)|0;f[I>>2]=d;f[I+8>>2]=-2147483616;f[I+4>>2]=16;e=d;g=147221;h=e+16|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[d+16>>0]=0;r=s+16|0;f[s>>2]=86804;f[s+4>>2]=i;f[r>>2]=s;Em(c,I,s);c=f[r>>2]|0;do if((s|0)==(c|0))Nk[f[(f[c>>2]|0)+16>>2]&2047](c);else{if(!c)break;Nk[f[(f[c>>2]|0)+20>>2]&2047](c)}while(0);if((b[I+11>>0]|0)<0)NDb(f[I>>2]|0);c=f[a>>2]|0;f[I>>2]=0;f[I+4>>2]=0;f[I+8>>2]=0;d=LDb(32)|0;f[I>>2]=d;f[I+8>>2]=-2147483616;f[I+4>>2]=18;e=d;g=147238;h=e+18|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[d+18>>0]=0;s=t+16|0;f[t>>2]=86848;f[t+4>>2]=i;f[s>>2]=t;Em(c,I,t);c=f[s>>2]|0;do if((t|0)==(c|0))Nk[f[(f[c>>2]|0)+16>>2]&2047](c);else{if(!c)break;Nk[f[(f[c>>2]|0)+20>>2]&2047](c)}while(0);if((b[I+11>>0]|0)<0)NDb(f[I>>2]|0);c=f[a>>2]|0;f[I>>2]=0;f[I+4>>2]=0;f[I+8>>2]=0;d=LDb(32)|0;f[I>>2]=d;f[I+8>>2]=-2147483616;f[I+4>>2]=17;e=d;g=147257;h=e+17|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[d+17>>0]=0;t=v+16|0;f[v>>2]=86892;f[v+4>>2]=i;f[t>>2]=v;Em(c,I,v);c=f[t>>2]|0;do if((v|0)==(c|0))Nk[f[(f[c>>2]|0)+16>>2]&2047](c);else{if(!c)break;Nk[f[(f[c>>2]|0)+20>>2]&2047](c)}while(0);if((b[I+11>>0]|0)<0)NDb(f[I>>2]|0);c=f[a>>2]|0;f[I>>2]=0;f[I+4>>2]=0;f[I+8>>2]=0;d=LDb(32)|0;f[I>>2]=d;f[I+8>>2]=-2147483616;f[I+4>>2]=19;e=d;g=147275;h=e+19|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[d+19>>0]=0;v=w+16|0;f[w>>2]=86936;f[w+4>>2]=i;f[v>>2]=w;Em(c,I,w);c=f[v>>2]|0;do if((w|0)==(c|0))Nk[f[(f[c>>2]|0)+16>>2]&2047](c);else{if(!c)break;Nk[f[(f[c>>2]|0)+20>>2]&2047](c)}while(0);if((b[I+11>>0]|0)<0)NDb(f[I>>2]|0);c=f[a>>2]|0;f[I>>2]=0;f[I+4>>2]=0;f[I+8>>2]=0;d=LDb(16)|0;f[I>>2]=d;f[I+8>>2]=-2147483632;f[I+4>>2]=15;e=d;g=147295;h=e+15|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[d+15>>0]=0;w=x+16|0;f[x>>2]=86980;f[x+4>>2]=i;f[w>>2]=x;Em(c,I,x);c=f[w>>2]|0;do if((x|0)==(c|0))Nk[f[(f[c>>2]|0)+16>>2]&2047](c);else{if(!c)break;Nk[f[(f[c>>2]|0)+20>>2]&2047](c)}while(0);if((b[I+11>>0]|0)<0)NDb(f[I>>2]|0);c=f[a>>2]|0;f[I>>2]=0;f[I+4>>2]=0;f[I+8>>2]=0;d=LDb(32)|0;f[I>>2]=d;f[I+8>>2]=-2147483616;f[I+4>>2]=19;e=d;g=147311;h=e+19|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[d+19>>0]=0;x=y+16|0;f[y>>2]=87024;f[y+4>>2]=i;f[x>>2]=y;Em(c,I,y);c=f[x>>2]|0;do if((y|0)==(c|0))Nk[f[(f[c>>2]|0)+16>>2]&2047](c);else{if(!c)break;Nk[f[(f[c>>2]|0)+20>>2]&2047](c)}while(0);if((b[I+11>>0]|0)<0)NDb(f[I>>2]|0);c=f[a>>2]|0;f[I>>2]=0;f[I+4>>2]=0;f[I+8>>2]=0;d=LDb(32)|0;f[I>>2]=d;f[I+8>>2]=-2147483616;f[I+4>>2]=19;e=d;g=147331;h=e+19|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[d+19>>0]=0;y=z+16|0;f[z>>2]=87068;f[z+4>>2]=i;f[y>>2]=z;Em(c,I,z);c=f[y>>2]|0;do if((z|0)==(c|0))Nk[f[(f[c>>2]|0)+16>>2]&2047](c);else{if(!c)break;Nk[f[(f[c>>2]|0)+20>>2]&2047](c)}while(0);if((b[I+11>>0]|0)<0)NDb(f[I>>2]|0);c=f[a>>2]|0;f[I>>2]=0;f[I+4>>2]=0;f[I+8>>2]=0;d=LDb(32)|0;f[I>>2]=d;f[I+8>>2]=-2147483616;f[I+4>>2]=19;e=d;g=147351;h=e+19|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[d+19>>0]=0;z=A+16|0;f[A>>2]=87112;f[A+4>>2]=i;f[z>>2]=A;Em(c,I,A);c=f[z>>2]|0;do if((A|0)==(c|0))Nk[f[(f[c>>2]|0)+16>>2]&2047](c);else{if(!c)break;Nk[f[(f[c>>2]|0)+20>>2]&2047](c)}while(0);if((b[I+11>>0]|0)<0)NDb(f[I>>2]|0);c=f[a>>2]|0;f[I>>2]=0;f[I+4>>2]=0;f[I+8>>2]=0;d=LDb(32)|0;f[I>>2]=d;f[I+8>>2]=-2147483616;f[I+4>>2]=24;e=d;g=147371;h=e+24|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[d+24>>0]=0;A=B+16|0;f[B>>2]=87156;f[B+4>>2]=i;f[A>>2]=B;Em(c,I,B);c=f[A>>2]|0;do if((B|0)==(c|0))Nk[f[(f[c>>2]|0)+16>>2]&2047](c);else{if(!c)break;Nk[f[(f[c>>2]|0)+20>>2]&2047](c)}while(0);if((b[I+11>>0]|0)<0)NDb(f[I>>2]|0);c=f[a>>2]|0;f[I>>2]=0;f[I+4>>2]=0;f[I+8>>2]=0;d=LDb(32)|0;f[I>>2]=d;f[I+8>>2]=-2147483616;f[I+4>>2]=26;e=d;g=147396;h=e+26|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[d+26>>0]=0;B=C+16|0;f[C>>2]=87200;f[C+4>>2]=i;f[B>>2]=C;Em(c,I,C);c=f[B>>2]|0;do if((C|0)==(c|0))Nk[f[(f[c>>2]|0)+16>>2]&2047](c);else{if(!c)break;Nk[f[(f[c>>2]|0)+20>>2]&2047](c)}while(0);if((b[I+11>>0]|0)<0)NDb(f[I>>2]|0);c=f[a>>2]|0;f[I>>2]=0;f[I+4>>2]=0;f[I+8>>2]=0;d=LDb(32)|0;f[I>>2]=d;f[I+8>>2]=-2147483616;f[I+4>>2]=26;e=d;g=147423;h=e+26|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[d+26>>0]=0;C=D+16|0;f[D>>2]=87244;f[D+4>>2]=i;f[C>>2]=D;Em(c,I,D);c=f[C>>2]|0;do if((D|0)==(c|0))Nk[f[(f[c>>2]|0)+16>>2]&2047](c);else{if(!c)break;Nk[f[(f[c>>2]|0)+20>>2]&2047](c)}while(0);if((b[I+11>>0]|0)<0)NDb(f[I>>2]|0);c=f[a>>2]|0;f[I>>2]=0;f[I+4>>2]=0;f[I+8>>2]=0;d=LDb(32)|0;f[I>>2]=d;f[I+8>>2]=-2147483616;f[I+4>>2]=26;e=d;g=147450;h=e+26|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[d+26>>0]=0;D=E+16|0;f[E>>2]=87288;f[E+4>>2]=i;f[D>>2]=E;Em(c,I,E);c=f[D>>2]|0;do if((E|0)==(c|0))Nk[f[(f[c>>2]|0)+16>>2]&2047](c);else{if(!c)break;Nk[f[(f[c>>2]|0)+20>>2]&2047](c)}while(0);if((b[I+11>>0]|0)<0)NDb(f[I>>2]|0);c=f[a>>2]|0;f[I>>2]=0;f[I+4>>2]=0;f[I+8>>2]=0;d=LDb(16)|0;f[I>>2]=d;f[I+8>>2]=-2147483632;f[I+4>>2]=11;e=d;g=147477;h=e+11|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[d+11>>0]=0;E=F+16|0;f[F>>2]=87332;f[F+4>>2]=i;f[E>>2]=F;Em(c,I,F);c=f[E>>2]|0;do if((F|0)==(c|0))Nk[f[(f[c>>2]|0)+16>>2]&2047](c);else{if(!c)break;Nk[f[(f[c>>2]|0)+20>>2]&2047](c)}while(0);if((b[I+11>>0]|0)<0)NDb(f[I>>2]|0);F=(f[a>>2]|0)+48|0;c=I+16|0;f[I>>2]=87376;f[c>>2]=I;Br(I,F);c=f[c>>2]|0;do if((I|0)==(c|0))Nk[f[(f[c>>2]|0)+16>>2]&2047](c);else{if(!c)break;Nk[f[(f[c>>2]|0)+20>>2]&2047](c)}while(0);c=f[a>>2]|0;f[I>>2]=0;f[I+4>>2]=0;f[I+8>>2]=0;d=LDb(32)|0;f[I>>2]=d;f[I+8>>2]=-2147483616;f[I+4>>2]=24;e=d;g=147489;h=e+24|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[d+24>>0]=0;F=G+16|0;f[G>>2]=87420;f[G+4>>2]=i;f[F>>2]=G;Em(c,I,G);c=f[F>>2]|0;do if((G|0)==(c|0))Nk[f[(f[c>>2]|0)+16>>2]&2047](c);else{if(!c)break;Nk[f[(f[c>>2]|0)+20>>2]&2047](c)}while(0);if((b[I+11>>0]|0)<0)NDb(f[I>>2]|0);c=f[a>>2]|0;f[I>>2]=0;f[I+4>>2]=0;f[I+8>>2]=0;d=LDb(32)|0;f[I>>2]=d;f[I+8>>2]=-2147483616;f[I+4>>2]=27;e=d;g=147514;h=e+27|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[d+27>>0]=0;G=H+16|0;f[H>>2]=87464;f[H+4>>2]=i;f[G>>2]=H;Em(c,I,H);c=f[G>>2]|0;do if((H|0)==(c|0))Nk[f[(f[c>>2]|0)+16>>2]&2047](c);else{if(!c)break;Nk[f[(f[c>>2]|0)+20>>2]&2047](c)}while(0);if((b[I+11>>0]|0)<0)NDb(f[I>>2]|0);c=f[a>>2]|0;f[I>>2]=0;f[I+4>>2]=0;f[I+8>>2]=0;d=LDb(32)|0;f[I>>2]=d;f[I+8>>2]=-2147483616;f[I+4>>2]=25;e=d;g=147542;h=e+25|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[d+25>>0]=0;a=J+16|0;f[J>>2]=87508;f[J+4>>2]=i;f[a>>2]=J;Em(c,I,J);c=f[a>>2]|0;do if((J|0)==(c|0))Nk[f[(f[c>>2]|0)+16>>2]&2047](c);else{if(!c)break;Nk[f[(f[c>>2]|0)+20>>2]&2047](c)}while(0);if((b[I+11>>0]|0)>=0){u=K;return}NDb(f[I>>2]|0);u=K;return}function Jl(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0;h=u;u=u+16|0;g=h;p7a(0,5)|0;p7a(1,5)|0;p7a(2,5)|0;p7a(6,16)|0;p7a(5,1)|0;c=pkb((b[c+11>>0]|0)<0?f[c>>2]|0:c,805240832,805240832,d,e,2)|0;f[a+80>>2]=c;if(!c){e=x7a()|0;f[g>>2]=e;av(a,147635,g);g=0;u=h;return g|0}else{u7a(c)|0;g=f[a+24>>2]|0;Bk[f[(f[g>>2]|0)+168>>2]&63](g,0,0,d,e)|0;f[a+72>>2]=d;f[a+76>>2]=e;g=1;u=h;return g|0}return 0}function Kl(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;i=u;u=u+16|0;b=i+8|0;c=i;if((Uc(158518,b|0,c|0)|0)<=-1){u=i;return}e=~~+p[b>>3];g=~~+p[c>>3];h=a+80|0;tcb(f[h>>2]|0,b,c);if(!((f[b>>2]|0)==(e|0)?(f[c>>2]|0)==(g|0):0)?(qkb(f[h>>2]|0,e,g),d=f[a+24>>2]|0,Bk[f[(f[d>>2]|0)+168>>2]&63](d,0,0,e,g)|0,f[a+72>>2]=e,f[a+76>>2]=g,d=f[a+64>>2]|0,d|0):0)Nk[f[(f[d>>2]|0)+24>>2]&2047](d);u=i;return}function Ll(a){a=a|0;nb(a|0)|0;jFb()}function Ml(a){a=a|0;ow(a);NDb(a);return}function Nl(a){a=a|0;var c=0;a=LDb(52)|0;BCa(a);c=a+12|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[a+24>>2]=2;f[a+28>>2]=0;f[a>>2]=84424;f[a+32>>2]=0;n[a+36>>2]=1.0;f[a+40>>2]=100;b[a+44>>0]=1;b[a+45>>0]=0;b[a+46>>0]=1;b[a+47>>0]=0;b[a+48>>0]=1;b[a+49>>0]=1;b[a+50>>0]=1;return a|0}function Ol(a,c){a=a|0;c=c|0;var d=0;d=LDb(52)|0;nw(d,a,c);f[d>>2]=84424;f[d+32>>2]=f[a+32>>2];f[d+36>>2]=f[a+36>>2];f[d+40>>2]=f[a+40>>2];b[d+44>>0]=b[a+44>>0]|0;b[d+45>>0]=b[a+45>>0]|0;b[d+46>>0]=b[a+46>>0]|0;b[d+47>>0]=b[a+47>>0]|0;b[d+48>>0]=b[a+48>>0]|0;b[d+49>>0]=b[a+49>>0]|0;b[d+50>>0]=b[a+50>>0]|0;return d|0}function Pl(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,54736,0)|0)!=0;return b|0}function Ql(a){a=a|0;return 241076}function Rl(a){a=a|0;return 144724}function Sl(a){a=a|0;return 0}function Tl(a){a=a|0;return 0}function Ul(a){a=a|0;return 0}function Vl(a){a=a|0;return 0}function Wl(a){a=a|0;return 0}function Xl(a){a=a|0;return 0}function Yl(a){a=a|0;return 0}function Zl(a){a=a|0;return 0}function _l(a){a=a|0;return 0}function $l(a){a=a|0;return 0}function am(a){a=a|0;return 0}function bm(a){a=a|0;return 0}function cm(a){a=a|0;return 0}function dm(a){a=a|0;return 0}function em(a){a=a|0;return 0}function fm(a){a=a|0;return 0}function gm(a){a=a|0;return 0}function hm(a){a=a|0;return 0}function im(a){a=a|0;return 0}function jm(a){a=a|0;return 0}function km(a){a=a|0;return 0}function lm(a){a=a|0;return 0}function mm(a){a=a|0;return 0}function nm(a){a=a|0;return 0}function om(a){a=a|0;return 0}function pm(a){a=a|0;return 0}function qm(a,b){a=a|0;b=b|0;$Db(a+12|0,b)|0;return}function rm(a){a=a|0;return}function sm(a,b){a=a|0;b=b|0;return}function tm(a,b){a=a|0;b=b|0;return}function um(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;p[a>>3]=+p[b>>3];e=a+8|0;g=b+8|0;f[e>>2]=0;k=a+12|0;f[k>>2]=0;h=a+16|0;f[h>>2]=0;j=b+12|0;c=(f[j>>2]|0)-(f[g>>2]|0)|0;d=c>>2;if(c|0){if(d>>>0>1073741823)KEb(e);i=LDb(c)|0;f[k>>2]=i;f[e>>2]=i;f[h>>2]=i+(d<<2);d=f[g>>2]|0;c=(f[j>>2]|0)-d|0;if((c|0)>0){gGb(i|0,d|0,c|0)|0;f[k>>2]=i+(c>>>2<<2)}}c=f[b+20>>2]|0;f[a+20>>2]=c;if(c|0){k=c+8|0;f[k>>2]=(f[k>>2]|0)+1}c=f[b+24>>2]|0;f[a+24>>2]=c;if(c|0){k=c+8|0;f[k>>2]=(f[k>>2]|0)+1}c=a+32|0;d=b+32|0;e=c+36|0;do{f[c>>2]=f[d>>2];c=c+4|0;d=d+4|0}while((c|0)<(e|0));d=a+68|0;e=b+68|0;f[d>>2]=0;k=a+72|0;f[k>>2]=0;g=a+76|0;f[g>>2]=0;i=b+72|0;c=(f[i>>2]|0)-(f[e>>2]|0)|0;h=c>>2;if(c|0){if(h>>>0>1073741823)KEb(d);j=LDb(c)|0;f[k>>2]=j;f[d>>2]=j;f[g>>2]=j+(h<<2);d=f[e>>2]|0;c=(f[i>>2]|0)-d|0;if((c|0)>0){gGb(j|0,d|0,c|0)|0;f[k>>2]=j+(c>>>2<<2)}}d=a+80|0;e=b+80|0;f[d>>2]=0;k=a+84|0;f[k>>2]=0;g=a+88|0;f[g>>2]=0;i=b+84|0;c=(f[i>>2]|0)-(f[e>>2]|0)|0;h=c>>3;if(!c){a=a+92|0;b=b+92|0;b=f[b>>2]|0;f[a>>2]=b;return}if(h>>>0>536870911)KEb(d);j=LDb(c)|0;f[k>>2]=j;f[d>>2]=j;f[g>>2]=j+(h<<3);d=f[e>>2]|0;c=(f[i>>2]|0)-d|0;if((c|0)<=0){a=a+92|0;b=b+92|0;b=f[b>>2]|0;f[a>>2]=b;return}gGb(j|0,d|0,c|0)|0;f[k>>2]=j+(c>>>3<<3);a=a+92|0;b=b+92|0;b=f[b>>2]|0;f[a>>2]=b;return}function vm(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;g=f[b>>2]|0;f[a>>2]=g;f[a+(f[g+-12>>2]|0)>>2]=f[b+12>>2];g=a+112|0;d=a+120|0;if(f[d>>2]|0?(c=f[a+116>>2]|0,e=(f[g>>2]|0)+4|0,k=f[c>>2]|0,f[k+4>>2]=f[e>>2],f[f[e>>2]>>2]=k,f[d>>2]=0,(c|0)!=(g|0)):0)do{d=c;c=f[c+4>>2]|0;e=f[d+8>>2]|0;if(e|0?(l=e+8|0,k=f[l>>2]|0,f[l>>2]=k-1,(k|0)==1):0)X4(e,1,1);NDb(d)}while((c|0)!=(g|0));g=a+100|0;c=a+108|0;if(f[c>>2]|0?(h=f[a+104>>2]|0,l=(f[g>>2]|0)+4|0,k=f[h>>2]|0,f[k+4>>2]=f[l>>2],f[f[l>>2]>>2]=k,f[c>>2]=0,(h|0)!=(g|0)):0){c=h;do{d=c;c=f[c+4>>2]|0;e=f[d+8>>2]|0;if(e|0?(k=e+8|0,l=f[k>>2]|0,f[k>>2]=l-1,(l|0)==1):0)X4(e,1,1);NDb(d)}while((c|0)!=(g|0))}g=a+88|0;c=a+96|0;if(f[c>>2]|0?(i=f[a+92>>2]|0,l=(f[g>>2]|0)+4|0,k=f[i>>2]|0,f[k+4>>2]=f[l>>2],f[f[l>>2]>>2]=k,f[c>>2]=0,(i|0)!=(g|0)):0){c=i;do{d=c;c=f[c+4>>2]|0;e=f[d+8>>2]|0;if(e|0?(k=e+8|0,l=f[k>>2]|0,f[k>>2]=l-1,(l|0)==1):0)X4(e,1,1);NDb(d)}while((c|0)!=(g|0))}g=a+76|0;c=a+84|0;if(f[c>>2]|0?(j=f[a+80>>2]|0,l=(f[g>>2]|0)+4|0,k=f[j>>2]|0,f[k+4>>2]=f[l>>2],f[f[l>>2]>>2]=k,f[c>>2]=0,(j|0)!=(g|0)):0){c=j;do{d=c;c=f[c+4>>2]|0;e=f[d+8>>2]|0;if(e|0?(k=e+8|0,l=f[k>>2]|0,f[k>>2]=l-1,(l|0)==1):0)X4(e,1,1);NDb(d)}while((c|0)!=(g|0))}c=a+72|0;d=f[c>>2]|0;if(d|0?(k=d+8|0,l=f[k>>2]|0,f[k>>2]=l-1,(l|0)==1):0)X4(d,1,1);f[c>>2]=0;g=a+56|0;c=a+64|0;if(!(f[c>>2]|0)){l=b+4|0;qC(a,l);return}d=f[a+60>>2]|0;l=(f[g>>2]|0)+4|0;k=f[d>>2]|0;f[k+4>>2]=f[l>>2];f[f[l>>2]>>2]=k;f[c>>2]=0;if((d|0)==(g|0)){l=b+4|0;qC(a,l);return}do{c=d;d=f[d+4>>2]|0;e=f[c+8>>2]|0;if(e|0?(k=e+8|0,l=f[k>>2]|0,f[k>>2]=l-1,(l|0)==1):0)X4(e,1,1);NDb(c)}while((d|0)!=(g|0));l=b+4|0;qC(a,l);return}function wm(a){a=a|0;xsb(a);NDb(a);return}function xm(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;switch(e|0){case 1:{g=b+12|0;c=(f[g>>2]|0)+c|0;f[g>>2]=c;break}case 2:{c=(f[b+16>>2]|0)+c|0;f[b+12>>2]=c;break}case 0:{c=(f[b+8>>2]|0)+c|0;f[b+12>>2]=c;break}default:c=f[b+12>>2]|0}g=c-(f[b+8>>2]|0)|0;b=a;f[b>>2]=0;f[b+4>>2]=0;b=a+8|0;f[b>>2]=g;f[b+4>>2]=((g|0)<0)<<31>>31;return}function ym(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0,g=0,i=0,j=0.0,k=0,l=0.0;switch(f[b>>2]|0){case 1024:{l=+(f[b+20>>2]|0);j=+((f[b+24>>2]|0)-(f[a+76>>2]|0)|0);a=eDa()|0;e=c+24|0;b=f[e>>2]|0;e=f[e+4>>2]|0;g=fDa(eDa()|0)|0;i=H;if(i>>>0>e>>>0|(i|0)==(e|0)&g>>>0>b>>>0){k=ZFb(g|0,i|0,b|0,e|0)|0;d=+p[a+8>>3]*(+(k>>>0)+4294967296.0*+(H>>>0))}else{k=ZFb(b|0,e|0,g|0,i|0)|0;d=-(+p[a+8>>3]*(+(k>>>0)+4294967296.0*+(H>>>0)))}GEa(c,l,j,d)|0;c=1;return c|0}case 1025:{l=+(f[b+20>>2]|0);j=+((f[b+24>>2]|0)-(f[a+76>>2]|0)|0);k=h[b+16>>0]|0;a=eDa()|0;e=c+24|0;b=f[e>>2]|0;e=f[e+4>>2]|0;g=fDa(eDa()|0)|0;i=H;if(i>>>0>e>>>0|(i|0)==(e|0)&g>>>0>b>>>0){i=ZFb(g|0,i|0,b|0,e|0)|0;d=+p[a+8>>3]*(+(i>>>0)+4294967296.0*+(H>>>0))}else{i=ZFb(b|0,e|0,g|0,i|0)|0;d=-(+p[a+8>>3]*(+(i>>>0)+4294967296.0*+(H>>>0)))}HEa(c,l,j,k,d)|0;c=1;return c|0}case 1026:{l=+(f[b+20>>2]|0);j=+((f[b+24>>2]|0)-(f[a+76>>2]|0)|0);k=h[b+16>>0]|0;i=eDa()|0;b=c+24|0;a=f[b>>2]|0;b=f[b+4>>2]|0;e=fDa(eDa()|0)|0;g=H;if(g>>>0>b>>>0|(g|0)==(b|0)&e>>>0>a>>>0){g=ZFb(e|0,g|0,a|0,b|0)|0;d=+p[i+8>>3]*(+(g>>>0)+4294967296.0*+(H>>>0))}else{g=ZFb(a|0,b|0,e|0,g|0)|0;d=-(+p[i+8>>3]*(+(g>>>0)+4294967296.0*+(H>>>0)))}IEa(c,l,j,k,d)|0;c=1;return c|0}default:{c=0;return c|0}}return 0}function zm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0,g=0,h=0,i=0,j=0;j=~~(+n[b+24>>2]*+(f[a+72>>2]|0));i=f[a+76>>2]|0;i=~~(+n[b+28>>2]*+(i|0))-i|0;switch(f[b>>2]|0){case 1794:{a=eDa()|0;e=c+24|0;b=f[e>>2]|0;e=f[e+4>>2]|0;g=fDa(eDa()|0)|0;h=H;if(h>>>0>e>>>0|(h|0)==(e|0)&g>>>0>b>>>0){h=ZFb(g|0,h|0,b|0,e|0)|0;d=+p[a+8>>3]*(+(h>>>0)+4294967296.0*+(H>>>0))}else{h=ZFb(b|0,e|0,g|0,h|0)|0;d=-(+p[a+8>>3]*(+(h>>>0)+4294967296.0*+(H>>>0)))}GEa(c,+(j|0),+(i|0),d)|0;j=1;return j|0}case 1792:{a=eDa()|0;e=c+24|0;b=f[e>>2]|0;e=f[e+4>>2]|0;g=fDa(eDa()|0)|0;h=H;if(h>>>0>e>>>0|(h|0)==(e|0)&g>>>0>b>>>0){h=ZFb(g|0,h|0,b|0,e|0)|0;d=+p[a+8>>3]*(+(h>>>0)+4294967296.0*+(H>>>0))}else{h=ZFb(b|0,e|0,g|0,h|0)|0;d=-(+p[a+8>>3]*(+(h>>>0)+4294967296.0*+(H>>>0)))}HEa(c,+(j|0),+(i|0),1,d)|0;j=1;return j|0}case 1793:{a=eDa()|0;e=c+24|0;b=f[e>>2]|0;e=f[e+4>>2]|0;g=fDa(eDa()|0)|0;h=H;if(h>>>0>e>>>0|(h|0)==(e|0)&g>>>0>b>>>0){h=ZFb(g|0,h|0,b|0,e|0)|0;d=+p[a+8>>3]*(+(h>>>0)+4294967296.0*+(H>>>0))}else{h=ZFb(b|0,e|0,g|0,h|0)|0;d=-(+p[a+8>>3]*(+(h>>>0)+4294967296.0*+(H>>>0)))}IEa(c,+(j|0),+(i|0),1,d)|0;j=1;return j|0}default:{j=0;return j|0}}return 0}function Am(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0;k=u;u=u+32|0;i=k+16|0;j=k;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;g=Zob(c)|0;if(g>>>0>4294967279)TDb(i);if(g>>>0<11){b[i+11>>0]=g;if(!g)e=i;else{e=i;h=6}}else{h=g+16&-16;e=LDb(h)|0;f[i>>2]=e;f[i+8>>2]=h|-2147483648;f[i+4>>2]=g;h=6}if((h|0)==6)gGb(e|0,c|0,g|0)|0;b[e+g>>0]=0;e=Cm(a,i)|0;if((b[i+11>>0]|0)<0)NDb(f[i>>2]|0);if((e|0)==(a+4|0)){dsb(c)|0;u=k;return}VDb(i,e+28|0);f[j>>2]=d;d=i+11|0;lsb((b[d>>0]|0)<0?f[i>>2]|0:i,j)|0;fsb(10)|0;if((b[d>>0]|0)<0)NDb(f[i>>2]|0);u=k;return}function Bm(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=a+4|0;d=f[m>>2]|0;do if(d|0){l=b[c+11>>0]|0;k=l<<24>>24<0;l=k?f[c+4>>2]|0:l&255;k=k?f[c>>2]|0:c;a=m;do{e=d+16|0;h=b[e+11>>0]|0;g=h<<24>>24<0;h=g?f[d+20>>2]|0:h&255;i=l>>>0<h>>>0;c=i?l:h;if((c|0)!=0?(j=ipb(g?f[e>>2]|0:e,k,c)|0,(j|0)!=0):0)c=j;else c=h>>>0<l>>>0?-1:i&1;i=(c|0)<0;a=i?a:d;d=f[(i?d+4|0:d)>>2]|0}while((d|0)!=0);if((a|0)!=(m|0)){d=a+16|0;g=b[d+11>>0]|0;e=g<<24>>24<0;g=e?f[a+20>>2]|0:g&255;c=g>>>0<l>>>0?g:l;if(c|0?(n=ipb(k,e?f[d>>2]|0:d,c)|0,n|0):0){if((n|0)<0)break;return a|0}if(l>>>0>=g>>>0){n=a;return n|0}}}while(0);n=m;return n|0}function Cm(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=a+4|0;d=f[m>>2]|0;do if(d|0){l=b[c+11>>0]|0;k=l<<24>>24<0;l=k?f[c+4>>2]|0:l&255;k=k?f[c>>2]|0:c;a=m;do{e=d+16|0;h=b[e+11>>0]|0;g=h<<24>>24<0;h=g?f[d+20>>2]|0:h&255;i=l>>>0<h>>>0;c=i?l:h;if((c|0)!=0?(j=ipb(g?f[e>>2]|0:e,k,c)|0,(j|0)!=0):0)c=j;else c=h>>>0<l>>>0?-1:i&1;i=(c|0)<0;a=i?a:d;d=f[(i?d+4|0:d)>>2]|0}while((d|0)!=0);if((a|0)!=(m|0)){d=a+16|0;g=b[d+11>>0]|0;e=g<<24>>24<0;g=e?f[a+20>>2]|0:g&255;c=g>>>0<l>>>0?g:l;if(c|0?(n=ipb(k,e?f[d>>2]|0:d,c)|0,n|0):0){if((n|0)<0)break;return a|0}if(l>>>0>=g>>>0){n=a;return n|0}}}while(0);n=m;return n|0}function Dm(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=u;u=u+16|0;h=m+12|0;k=m;i=a+4|0;f[i>>2]=0;j=a+8|0;f[j>>2]=0;f[a>>2]=a+4;b[a+12>>0]=0;f[a+16>>2]=0;l=a+20|0;f[l>>2]=0;f[a+32>>2]=0;f[a+36>>2]=0;f[a+40>>2]=0;f[a+64>>2]=0;f[a+80>>2]=0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;c=LDb(32)|0;f[k>>2]=c;f[k+8>>2]=-2147483616;f[k+4>>2]=25;d=c;e=147635;g=d+25|0;do{b[d>>0]=b[e>>0]|0;d=d+1|0;e=e+1|0}while((d|0)<(g|0));b[c+25>>0]=0;e=Dq(a,h,k)|0;c=f[e>>2]|0;if(!c){c=LDb(40)|0;d=c+16|0;f[d>>2]=f[k>>2];f[d+4>>2]=f[k+4>>2];f[d+8>>2]=f[k+8>>2];f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;d=c+28|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;d=f[h>>2]|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=d;f[e>>2]=c;d=f[f[a>>2]>>2]|0;if(!d)d=c;else{f[a>>2]=d;d=f[e>>2]|0}Aq(f[i>>2]|0,d);f[j>>2]=(f[j>>2]|0)+1}eEb(c+28|0,147568)|0;if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);Fm(a);c=LDb(24)|0;Gm(c);f[a+28>>2]=c;Mh(0,a|0,0,200)|0;c=LDb(136)|0;d=c+104|0;BCa(d);k=c+116|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;f[c+128>>2]=2;f[c+132>>2]=0;f[c+100>>2]=0;f[c>>2]=84668;f[c+96>>2]=84920;f[d>>2]=85192;f[c+4>>2]=84764;d=c+12|0;f[d>>2]=0;f[c+16>>2]=0;f[c+8>>2]=d;f[c+20>>2]=0;f[c+24>>2]=0;f[c+48>>2]=0;f[c+56>>2]=0;f[c+60>>2]=0;f[c+64>>2]=0;f[c+88>>2]=0;d=f[l>>2]|0;if(((d|0)!=(c|0)?(f[l>>2]=c,k=c+112|0,f[k>>2]=(f[k>>2]|0)+1,d|0):0)?(n=d+(f[(f[d>>2]|0)+-16>>2]|0)|0,j=n+8|0,k=f[j>>2]|0,f[j>>2]=k-1,(k|0)==1):0)X4(n,1,1);a5a((f[a+24>>2]|0)+104|0,f[l>>2]|0);n=LDb(24)|0;l=n+4|0;f[l>>2]=0;f[n+8>>2]=0;f[n>>2]=l;l=n+16|0;f[l>>2]=0;f[n+20>>2]=0;f[n+12>>2]=l;f[a+88>>2]=n;Hm(a);Im(a);n=LDb(12)|0;l=n+4|0;f[l>>2]=0;f[n+8>>2]=0;f[n>>2]=l;f[a+92>>2]=n;u=m;return}function Em(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0;k=u;u=u+48|0;h=k;i=k+36|0;j=k+24|0;g=LDb(24)|0;f[g+16>>2]=0;f[i>>2]=g;e=f[d+16>>2]|0;do if(e)if((d|0)==(e|0)){d=h+16|0;f[d>>2]=h;Vk[f[(f[e>>2]|0)+12>>2]&1023](e,h);break}else{e=sk[f[(f[e>>2]|0)+8>>2]&2047](e)|0;d=h+16|0;f[d>>2]=e;break}else{d=h+16|0;f[d>>2]=0}while(0);Eq(h,g);d=f[d>>2]|0;if((h|0)!=(d|0)){if(d|0)Nk[f[(f[d>>2]|0)+20>>2]&2047](d)}else Nk[f[(f[d>>2]|0)+16>>2]&2047](d);d=a+36|0;e=f[d>>2]|0;if((e|0)==(f[a+40>>2]|0))Fq(a+32|0,i);else{f[e>>2]=f[i>>2];f[d>>2]=(f[d>>2]|0)+4}a=f[a+28>>2]|0;VDb(j,c);d=LDb(12)|0;VDb(d,j);c=f[i>>2]|0;VDb(h,d);i=Gq(a+12|0,h)|0;f[i>>2]=c;if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[d+11>>0]|0)<0)NDb(f[d>>2]|0);NDb(d);if((b[j+11>>0]|0)>=0){u=k;return}NDb(f[j>>2]|0);u=k;return}function Fm(a){a=a|0;var b=0,c=0;c=LDb(272)|0;k3a(c);b=a+24|0;f[b>>2]=c;Vk[f[(f[c>>2]|0)+32>>2]&1023](c,0);b=f[b>>2]|0;a=LDb(288)|0;REa(a,5);QZa(b+104|0,a,1);return}function Gm(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;l=u;u=u+16|0;h=l+12|0;k=l;i=a+4|0;f[i>>2]=0;j=a+8|0;f[j>>2]=0;f[a>>2]=a+4;f[a+16>>2]=0;f[a+20>>2]=0;f[a+12>>2]=a+16;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;c=LDb(48)|0;f[k>>2]=c;f[k+8>>2]=-2147483600;f[k+4>>2]=34;d=c;e=144771;g=d+34|0;do{b[d>>0]=b[e>>0]|0;d=d+1|0;e=e+1|0}while((d|0)<(g|0));b[c+34>>0]=0;e=Dq(a,h,k)|0;c=f[e>>2]|0;if(!c){c=LDb(40)|0;d=c+16|0;f[d>>2]=f[k>>2];f[d+4>>2]=f[k+4>>2];f[d+8>>2]=f[k+8>>2];f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;d=c+28|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;d=f[h>>2]|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=d;f[e>>2]=c;d=f[f[a>>2]>>2]|0;if(!d)d=c;else{f[a>>2]=d;d=f[e>>2]|0}Aq(f[i>>2]|0,d);f[j>>2]=(f[j>>2]|0)+1}eEb(c+28|0,147661)|0;if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;c=LDb(48)|0;f[k>>2]=c;f[k+8>>2]=-2147483600;f[k+4>>2]=34;d=c;e=144806;g=d+34|0;do{b[d>>0]=b[e>>0]|0;d=d+1|0;e=e+1|0}while((d|0)<(g|0));b[c+34>>0]=0;e=Dq(a,h,k)|0;c=f[e>>2]|0;if(!c){c=LDb(40)|0;d=c+16|0;f[d>>2]=f[k>>2];f[d+4>>2]=f[k+4>>2];f[d+8>>2]=f[k+8>>2];f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;d=c+28|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;d=f[h>>2]|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=d;f[e>>2]=c;d=f[f[a>>2]>>2]|0;if(!d)d=c;else{f[a>>2]=d;d=f[e>>2]|0}Aq(f[i>>2]|0,d);f[j>>2]=(f[j>>2]|0)+1}eEb(c+28|0,147751)|0;if((b[k+11>>0]|0)>=0){u=l;return}NDb(f[k>>2]|0);u=l;return}function Hm(a){a=a|0;var c=0,d=0,e=0,g=0,h=0;g=u;u=u+16|0;d=g;h=LDb(112)|0;Rp(h);f[a+84>>2]=h;e=d+4|0;f[e>>2]=0;f[e+4>>2]=0;e=d+11|0;b[e>>0]=3;b[d>>0]=b[144632]|0;b[d+1>>0]=b[144633]|0;b[d+2>>0]=b[144634]|0;b[d+3>>0]=0;c=Cq(h,d)|0;if((c|0)==(h+4|0))c=0;else c=f[c+28>>2]|0;if((b[e>>0]|0)>=0){h=a+24|0;h=f[h>>2]|0;e=f[h>>2]|0;e=e+164|0;e=f[e>>2]|0;Vk[e&1023](h,c);u=g;return}NDb(f[d>>2]|0);h=a+24|0;h=f[h>>2]|0;e=f[h>>2]|0;e=e+164|0;e=f[e>>2]|0;Vk[e&1023](h,c);u=g;return}function Im(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=u;u=u+128|0;b=m+112|0;c=m+100|0;e=m+88|0;g=m+64|0;h=m+32|0;i=m;j=LDb(288)|0;REa(j,5);k=a+16|0;l=f[k>>2]|0;if(((l|0)!=(j|0)?(f[k>>2]=j,j=j+(f[(f[j>>2]|0)+-16>>2]|0)+8|0,f[j>>2]=(f[j>>2]|0)+1,l|0):0)?(d=l+(f[(f[l>>2]|0)+-16>>2]|0)|0,j=d+8|0,l=f[j>>2]|0,f[j>>2]=l-1,(l|0)==1):0)X4(d,1,1);QZa((f[a+24>>2]|0)+104|0,f[k>>2]|0,1);f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;f[g+16>>2]=0;f[g+20>>2]=0;l=h+24|0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;f[h+12>>2]=0;f[h+16>>2]=0;f[h+20>>2]=0;p[l>>3]=1.0;j=f[k>>2]|0;Zk[f[(f[j>>2]|0)+164>>2]&511](j,g,h);j=i+24|0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;p[j>>3]=1.0;n[b>>2]=1.0;n[b+4>>2]=0.0;n[b+8>>2]=0.0;n[c>>2]=0.0;n[c+4>>2]=1.0;n[c+8>>2]=0.0;n[e>>2]=0.0;n[e+4>>2]=0.0;n[e+8>>2]=1.0;yCa(i,0.0,b,0.0,c,0.0,e);p[h>>3]=+p[i>>3];p[h+8>>3]=+p[i+8>>3];p[h+16>>3]=+p[i+16>>3];p[l>>3]=+p[j>>3];l=f[k>>2]|0;Zk[f[(f[l>>2]|0)+156>>2]&511](l,g,h);u=m;return}function Jm(a,b,c){a=a|0;b=b|0;c=c|0;if(!c){c=0;return c|0}Kl(c);c=1;return c|0}function Km(a){a=a|0;var b=0,c=0;b=LDb(48)|0;a=b+16|0;BCa(a);c=b+28|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[b+40>>2]=2;f[b+44>>2]=0;f[b+12>>2]=0;f[b>>2]=111540;f[b+8>>2]=111792;f[a>>2]=112064;f[b+4>>2]=111636;return a|0}function Lm(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;d=LDb(48)|0;e=d+16|0;nw(e,a+(f[(f[a>>2]|0)+-16>>2]|0)|0,b);c=d+8|0;b=a+(f[(f[a>>2]|0)+-12>>2]|0)|0;f[c>>2]=79584;f[e>>2]=79856;b=f[b+4>>2]|0;f[d+12>>2]=b;if(!b){f[d>>2]=111540;f[c>>2]=111792;f[e>>2]=112064;d=d+4|0;f[d>>2]=111636;return e|0}a=b+(f[(f[b>>2]|0)+-12>>2]|0)+8|0;f[a>>2]=(f[a>>2]|0)+1;f[d>>2]=111540;f[c>>2]=111792;f[e>>2]=112064;d=d+4|0;f[d>>2]=111636;return e|0}function Mm(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,64568,-1)|0)!=0;return b|0}function Nm(a){a=a|0;return 207916}function Om(a){a=a|0;return 147953}function Pm(a){a=a|0;return a|0}function Qm(a){a=a|0;return a|0}function Rm(a,b,c){a=a|0;b=b|0;c=c|0;b=sk[f[(f[b>>2]|0)+32>>2]&2047](b)|0;c=sk[f[(f[c>>2]|0)+40>>2]&2047](c)|0;Zk[f[(f[a>>2]|0)+32>>2]&511](a,b,c);return 1}function Sm(a){a=a|0;return a+4|0}function Tm(a){a=a|0;return a+4|0}function Um(a){a=a|0;return a|0}function Vm(a){a=a|0;return a|0}function Wm(a,b){a=a|0;b=b|0;return}function Xm(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return xk[f[(f[a>>2]|0)+76>>2]&255](a,b,c)|0}function Ym(a,b,c){a=a|0;b=b|0;c=c|0;return 0}function Zm(a){a=a|0;var b=0,c=0;b=LDb(48)|0;a=b+16|0;BCa(a);c=b+28|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[b+40>>2]=2;f[b+44>>2]=0;f[b+12>>2]=0;f[b>>2]=111540;f[b+8>>2]=111792;f[a>>2]=112064;f[b+4>>2]=111636;return a|0}function _m(a,b){a=a|0;b=b|0;var c=0,d=0;a=a+-4|0;c=LDb(48)|0;d=c+16|0;nw(d,a+(f[(f[a>>2]|0)+-16>>2]|0)|0,b);b=c+8|0;a=a+(f[(f[a>>2]|0)+-12>>2]|0)|0;f[b>>2]=79584;f[d>>2]=79856;a=f[a+4>>2]|0;f[c+12>>2]=a;if(!a){f[c>>2]=111540;f[b>>2]=111792;f[d>>2]=112064;c=c+4|0;f[c>>2]=111636;return d|0}a=a+(f[(f[a>>2]|0)+-12>>2]|0)+8|0;f[a>>2]=(f[a>>2]|0)+1;f[c>>2]=111540;f[b>>2]=111792;f[d>>2]=112064;c=c+4|0;f[c>>2]=111636;return d|0}function $m(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,64568,-1)|0)!=0;return b|0}function an(a){a=a|0;return 207916}function bn(a){a=a|0;return 147953}function cn(a){a=a|0;return a+-4+4|0}function dn(a){a=a|0;return a+-4+4|0}function en(a,b,c){a=a|0;b=b|0;c=c|0;a=a+-4|0;b=sk[f[(f[b>>2]|0)+32>>2]&2047](b)|0;c=sk[f[(f[c>>2]|0)+40>>2]&2047](c)|0;Zk[f[(f[a>>2]|0)+32>>2]&511](a,b,c);return 1}function fn(a){a=a|0;var b=0,c=0;b=LDb(48)|0;a=b+16|0;BCa(a);c=b+28|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[b+40>>2]=2;f[b+44>>2]=0;f[b+12>>2]=0;f[b>>2]=111540;f[b+8>>2]=111792;f[a>>2]=112064;f[b+4>>2]=111636;return a|0}function gn(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;e=a+(f[(f[a>>2]|0)+-20>>2]|0)|0;c=LDb(48)|0;d=c+16|0;nw(d,e+(f[(f[e>>2]|0)+-16>>2]|0)|0,b);a=c+8|0;b=e+(f[(f[e>>2]|0)+-12>>2]|0)|0;f[a>>2]=79584;f[d>>2]=79856;b=f[b+4>>2]|0;f[c+12>>2]=b;if(!b){f[c>>2]=111540;f[a>>2]=111792;f[d>>2]=112064;e=c+4|0;f[e>>2]=111636;return d|0}e=b+(f[(f[b>>2]|0)+-12>>2]|0)+8|0;f[e>>2]=(f[e>>2]|0)+1;f[c>>2]=111540;f[a>>2]=111792;f[d>>2]=112064;e=c+4|0;f[e>>2]=111636;return d|0}function hn(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,64568,-1)|0)!=0;return b|0}function jn(a){a=a|0;return 207916}function kn(a){a=a|0;return 147953}function ln(a){a=a|0;return a|0}function mn(a){a=a|0;return a|0}function nn(a){a=a|0;return 0}function on(a){a=a|0;return 0}function pn(a){a=a|0;return a+(f[(f[a>>2]|0)+-52>>2]|0)|0}function qn(a){a=a|0;return a+(f[(f[a>>2]|0)+-56>>2]|0)|0}function rn(a){a=a|0;return 0}function sn(a){a=a|0;return 0}function tn(a){a=a|0;return 0}function un(a){a=a|0;return 0}function vn(a){a=a|0;return 0}function wn(a){a=a|0;return 0}function xn(a){a=a|0;return a+(f[(f[a>>2]|0)+-84>>2]|0)+4|0}function yn(a){a=a|0;return a+(f[(f[a>>2]|0)+-88>>2]|0)+4|0}function zn(a){a=a|0;return 0}function An(a){a=a|0;return 0}function Bn(a){a=a|0;return a+(f[(f[a>>2]|0)+-100>>2]|0)|0}function Cn(a){a=a|0;return a+(f[(f[a>>2]|0)+-104>>2]|0)|0}function Dn(a,b,c){a=a|0;b=b|0;c=c|0;a=a+(f[(f[a>>2]|0)+-108>>2]|0)|0;b=sk[f[(f[b>>2]|0)+32>>2]&2047](b)|0;c=sk[f[(f[c>>2]|0)+40>>2]&2047](c)|0;Zk[f[(f[a>>2]|0)+32>>2]&511](a,b,c);return 1}function En(a){a=a|0;var b=0,c=0;b=LDb(48)|0;a=b+16|0;BCa(a);c=b+28|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[b+40>>2]=2;f[b+44>>2]=0;f[b+12>>2]=0;f[b>>2]=111540;f[b+8>>2]=111792;f[a>>2]=112064;f[b+4>>2]=111636;return a|0}function Fn(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;e=a+(f[(f[a>>2]|0)+-24>>2]|0)|0;c=LDb(48)|0;d=c+16|0;nw(d,e+(f[(f[e>>2]|0)+-16>>2]|0)|0,b);a=c+8|0;b=e+(f[(f[e>>2]|0)+-12>>2]|0)|0;f[a>>2]=79584;f[d>>2]=79856;b=f[b+4>>2]|0;f[c+12>>2]=b;if(!b){f[c>>2]=111540;f[a>>2]=111792;f[d>>2]=112064;e=c+4|0;f[e>>2]=111636;return d|0}e=b+(f[(f[b>>2]|0)+-12>>2]|0)+8|0;f[e>>2]=(f[e>>2]|0)+1;f[c>>2]=111540;f[a>>2]=111792;f[d>>2]=112064;e=c+4|0;f[e>>2]=111636;return d|0}function Gn(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,64568,-1)|0)!=0;return b|0}function Hn(a){a=a|0;return 207916}function In(a){a=a|0;return 147953}function Jn(a){a=a|0;return a+(f[(f[a>>2]|0)+-104>>2]|0)|0}function Kn(a){a=a|0;return a+(f[(f[a>>2]|0)+-108>>2]|0)|0}function Ln(a){a=a|0;return 0}function Mn(a){a=a|0;return 0}function Nn(a){a=a|0;var b=0,c=0;b=LDb(48)|0;a=b+16|0;BCa(a);c=b+28|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[b+40>>2]=2;f[b+44>>2]=0;f[b+12>>2]=0;f[b>>2]=117912;f[b+8>>2]=118156;f[a>>2]=118428;f[b+4>>2]=118e3;return a|0}function On(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;d=LDb(48)|0;e=d+16|0;nw(e,a+(f[(f[a>>2]|0)+-16>>2]|0)|0,b);c=d+8|0;b=a+(f[(f[a>>2]|0)+-12>>2]|0)|0;f[c>>2]=79584;f[e>>2]=79856;b=f[b+4>>2]|0;f[d+12>>2]=b;if(!b){f[d>>2]=117912;f[c>>2]=118156;f[e>>2]=118428;d=d+4|0;f[d>>2]=118e3;return e|0}a=b+(f[(f[b>>2]|0)+-12>>2]|0)+8|0;f[a>>2]=(f[a>>2]|0)+1;f[d>>2]=117912;f[c>>2]=118156;f[e>>2]=118428;d=d+4|0;f[d>>2]=118e3;return e|0}function Pn(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,64584,-1)|0)!=0;return b|0}function Qn(a){a=a|0;return 207916}function Rn(a){a=a|0;return 147969}function Sn(a){a=a|0;var b=0,c=0,d=0,e=0;b=a+8|0;f[b>>2]=79584;f[b+8>>2]=79856;b=a+12|0;c=f[b>>2]|0;if(c|0?(d=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,e=d+8|0,c=f[e>>2]|0,f[e>>2]=c-1,(c|0)==1):0)X4(d,1,1);f[b>>2]=0;ow(a+16|0);return}function Tn(a){a=a|0;var b=0,c=0,d=0,e=0;b=a+8|0;f[b>>2]=79584;f[b+8>>2]=79856;b=a+12|0;c=f[b>>2]|0;if(c|0?(d=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,e=d+8|0,c=f[e>>2]|0,f[e>>2]=c-1,(c|0)==1):0)X4(d,1,1);f[b>>2]=0;ow(a+16|0);NDb(a);return}function Un(a){a=a|0;var b=0,c=0;b=LDb(48)|0;a=b+16|0;BCa(a);c=b+28|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[b+40>>2]=2;f[b+44>>2]=0;f[b+12>>2]=0;f[b>>2]=117912;f[b+8>>2]=118156;f[a>>2]=118428;f[b+4>>2]=118e3;return a|0}function Vn(a,b){a=a|0;b=b|0;var c=0,d=0;a=a+-4|0;c=LDb(48)|0;d=c+16|0;nw(d,a+(f[(f[a>>2]|0)+-16>>2]|0)|0,b);b=c+8|0;a=a+(f[(f[a>>2]|0)+-12>>2]|0)|0;f[b>>2]=79584;f[d>>2]=79856;a=f[a+4>>2]|0;f[c+12>>2]=a;if(!a){f[c>>2]=117912;f[b>>2]=118156;f[d>>2]=118428;c=c+4|0;f[c>>2]=118e3;return d|0}a=a+(f[(f[a>>2]|0)+-12>>2]|0)+8|0;f[a>>2]=(f[a>>2]|0)+1;f[c>>2]=117912;f[b>>2]=118156;f[d>>2]=118428;c=c+4|0;f[c>>2]=118e3;return d|0}function Wn(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,64584,-1)|0)!=0;return b|0}function Xn(a){a=a|0;return 207916}function Yn(a){a=a|0;return 147969}function Zn(a){a=a|0;var b=0,c=0,d=0,e=0;b=a+-4|0;f[b+8>>2]=79584;a=b+16|0;f[a>>2]=79856;b=b+12|0;c=f[b>>2]|0;if(c|0?(d=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,e=d+8|0,c=f[e>>2]|0,f[e>>2]=c-1,(c|0)==1):0)X4(d,1,1);f[b>>2]=0;ow(a);return}function _n(a){a=a|0;var b=0,c=0,d=0,e=0,g=0;a=a+-4|0;f[a+8>>2]=79584;b=a+16|0;f[b>>2]=79856;c=a+12|0;d=f[c>>2]|0;if(d|0?(e=d+(f[(f[d>>2]|0)+-12>>2]|0)|0,g=e+8|0,d=f[g>>2]|0,f[g>>2]=d-1,(d|0)==1):0)X4(e,1,1);f[c>>2]=0;ow(b);NDb(a);return}function $n(a){a=a|0;var b=0,c=0;b=LDb(48)|0;a=b+16|0;BCa(a);c=b+28|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[b+40>>2]=2;f[b+44>>2]=0;f[b+12>>2]=0;f[b>>2]=117912;f[b+8>>2]=118156;f[a>>2]=118428;f[b+4>>2]=118e3;return a|0}function ao(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;e=a+(f[(f[a>>2]|0)+-20>>2]|0)|0;c=LDb(48)|0;d=c+16|0;nw(d,e+(f[(f[e>>2]|0)+-16>>2]|0)|0,b);a=c+8|0;b=e+(f[(f[e>>2]|0)+-12>>2]|0)|0;f[a>>2]=79584;f[d>>2]=79856;b=f[b+4>>2]|0;f[c+12>>2]=b;if(!b){f[c>>2]=117912;f[a>>2]=118156;f[d>>2]=118428;e=c+4|0;f[e>>2]=118e3;return d|0}e=b+(f[(f[b>>2]|0)+-12>>2]|0)+8|0;f[e>>2]=(f[e>>2]|0)+1;f[c>>2]=117912;f[a>>2]=118156;f[d>>2]=118428;e=c+4|0;f[e>>2]=118e3;return d|0}function bo(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,64584,-1)|0)!=0;return b|0}function co(a){a=a|0;return 207916}function eo(a){a=a|0;return 147969}function fo(a){a=a|0;var b=0,c=0,d=0,e=0;a=a+(f[(f[a>>2]|0)+-112>>2]|0)|0;b=a+8|0;f[b>>2]=79584;f[b+8>>2]=79856;b=a+12|0;c=f[b>>2]|0;if(c|0?(d=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,e=d+8|0,c=f[e>>2]|0,f[e>>2]=c-1,(c|0)==1):0)X4(d,1,1);f[b>>2]=0;ow(a+16|0);return}function go(a){a=a|0;var b=0,c=0,d=0,e=0;a=a+(f[(f[a>>2]|0)+-112>>2]|0)|0;b=a+8|0;f[b>>2]=79584;f[b+8>>2]=79856;b=a+12|0;c=f[b>>2]|0;if(c|0?(d=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,e=d+8|0,c=f[e>>2]|0,f[e>>2]=c-1,(c|0)==1):0)X4(d,1,1);f[b>>2]=0;ow(a+16|0);NDb(a);return}function ho(a){a=a|0;var b=0,c=0,d=0,e=0;a=a+(f[(f[a>>2]|0)+-16>>2]|0)|0;b=a+8|0;f[b>>2]=79584;f[b+8>>2]=79856;b=a+12|0;c=f[b>>2]|0;if(c|0?(d=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,e=d+8|0,c=f[e>>2]|0,f[e>>2]=c-1,(c|0)==1):0)X4(d,1,1);f[b>>2]=0;ow(a+16|0);return}function io(a){a=a|0;var b=0,c=0,d=0,e=0;a=a+(f[(f[a>>2]|0)+-16>>2]|0)|0;b=a+8|0;f[b>>2]=79584;f[b+8>>2]=79856;b=a+12|0;c=f[b>>2]|0;if(c|0?(d=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,e=d+8|0,c=f[e>>2]|0,f[e>>2]=c-1,(c|0)==1):0)X4(d,1,1);f[b>>2]=0;ow(a+16|0);NDb(a);return}function jo(a){a=a|0;var b=0,c=0;b=LDb(48)|0;a=b+16|0;BCa(a);c=b+28|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[b+40>>2]=2;f[b+44>>2]=0;f[b+12>>2]=0;f[b>>2]=117912;f[b+8>>2]=118156;f[a>>2]=118428;f[b+4>>2]=118e3;return a|0}function ko(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;e=a+(f[(f[a>>2]|0)+-24>>2]|0)|0;c=LDb(48)|0;d=c+16|0;nw(d,e+(f[(f[e>>2]|0)+-16>>2]|0)|0,b);a=c+8|0;b=e+(f[(f[e>>2]|0)+-12>>2]|0)|0;f[a>>2]=79584;f[d>>2]=79856;b=f[b+4>>2]|0;f[c+12>>2]=b;if(!b){f[c>>2]=117912;f[a>>2]=118156;f[d>>2]=118428;e=c+4|0;f[e>>2]=118e3;return d|0}e=b+(f[(f[b>>2]|0)+-12>>2]|0)+8|0;f[e>>2]=(f[e>>2]|0)+1;f[c>>2]=117912;f[a>>2]=118156;f[d>>2]=118428;e=c+4|0;f[e>>2]=118e3;return d|0}function lo(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,64584,-1)|0)!=0;return b|0}function mo(a){a=a|0;return 207916}function no(a){a=a|0;return 147969}function oo(a){a=a|0;var b=0,c=0;b=LDb(44)|0;a=b+12|0;BCa(a);c=b+24|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[b+36>>2]=2;f[b+40>>2]=0;f[b+8>>2]=0;f[b>>2]=99332;f[b+4>>2]=99488;f[a>>2]=99760;return a|0}function po(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;d=LDb(44)|0;e=d+12|0;nw(e,a+(f[(f[a>>2]|0)+-16>>2]|0)|0,b);c=d+4|0;b=a+(f[(f[a>>2]|0)+-12>>2]|0)|0;f[c>>2]=79584;f[e>>2]=79856;b=f[b+4>>2]|0;f[d+8>>2]=b;if(!b){f[d>>2]=99332;f[c>>2]=99488;f[e>>2]=99760;return e|0}a=b+(f[(f[b>>2]|0)+-12>>2]|0)+8|0;f[a>>2]=(f[a>>2]|0)+1;f[d>>2]=99332;f[c>>2]=99488;f[e>>2]=99760;return e|0}function qo(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,61872,-1)|0)!=0;return b|0}function ro(a){a=a|0;return 241076}function so(a){a=a|0;return 147982}function to(a){a=a|0;return a|0}function uo(a){a=a|0;return a|0}function vo(a){a=a|0;var b=0,c=0,d=0,e=0;b=a+4|0;f[b>>2]=79584;f[b+8>>2]=79856;b=a+8|0;c=f[b>>2]|0;if(c|0?(d=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,e=d+8|0,c=f[e>>2]|0,f[e>>2]=c-1,(c|0)==1):0)X4(d,1,1);f[b>>2]=0;ow(a+12|0);return}function wo(a){a=a|0;var b=0,c=0,d=0,e=0;b=a+4|0;f[b>>2]=79584;f[b+8>>2]=79856;b=a+8|0;c=f[b>>2]|0;if(c|0?(d=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,e=d+8|0,c=f[e>>2]|0,f[e>>2]=c-1,(c|0)==1):0)X4(d,1,1);f[b>>2]=0;ow(a+12|0);NDb(a);return}function xo(a){a=a|0;var b=0,c=0;b=LDb(44)|0;a=b+12|0;BCa(a);c=b+24|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[b+36>>2]=2;f[b+40>>2]=0;f[b+8>>2]=0;f[b>>2]=99332;f[b+4>>2]=99488;f[a>>2]=99760;return a|0}function yo(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;e=a+(f[(f[a>>2]|0)+-20>>2]|0)|0;c=LDb(44)|0;d=c+12|0;nw(d,e+(f[(f[e>>2]|0)+-16>>2]|0)|0,b);a=c+4|0;b=e+(f[(f[e>>2]|0)+-12>>2]|0)|0;f[a>>2]=79584;f[d>>2]=79856;b=f[b+4>>2]|0;f[c+8>>2]=b;if(!b){f[c>>2]=99332;f[a>>2]=99488;f[d>>2]=99760;return d|0}e=b+(f[(f[b>>2]|0)+-12>>2]|0)+8|0;f[e>>2]=(f[e>>2]|0)+1;f[c>>2]=99332;f[a>>2]=99488;f[d>>2]=99760;return d|0}function zo(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,61872,-1)|0)!=0;return b|0}function Ao(a){a=a|0;return 241076}function Bo(a){a=a|0;return 147982}function Co(a){a=a|0;return a+(f[(f[a>>2]|0)+-52>>2]|0)|0}function Do(a){a=a|0;return a+(f[(f[a>>2]|0)+-56>>2]|0)|0}function Eo(a){a=a|0;return 0}function Fo(a){a=a|0;return 0}function Go(a){a=a|0;return 0}function Ho(a){a=a|0;return 0}function Io(a){a=a|0;var b=0,c=0,d=0,e=0;a=a+(f[(f[a>>2]|0)+-112>>2]|0)|0;b=a+4|0;f[b>>2]=79584;f[b+8>>2]=79856;b=a+8|0;c=f[b>>2]|0;if(c|0?(d=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,e=d+8|0,c=f[e>>2]|0,f[e>>2]=c-1,(c|0)==1):0)X4(d,1,1);f[b>>2]=0;ow(a+12|0);return}function Jo(a){a=a|0;var b=0,c=0,d=0,e=0;a=a+(f[(f[a>>2]|0)+-112>>2]|0)|0;b=a+4|0;f[b>>2]=79584;f[b+8>>2]=79856;b=a+8|0;c=f[b>>2]|0;if(c|0?(d=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,e=d+8|0,c=f[e>>2]|0,f[e>>2]=c-1,(c|0)==1):0)X4(d,1,1);f[b>>2]=0;ow(a+12|0);NDb(a);return}function Ko(a){a=a|0;var b=0,c=0,d=0,e=0;a=a+(f[(f[a>>2]|0)+-16>>2]|0)|0;b=a+4|0;f[b>>2]=79584;f[b+8>>2]=79856;b=a+8|0;c=f[b>>2]|0;if(c|0?(d=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,e=d+8|0,c=f[e>>2]|0,f[e>>2]=c-1,(c|0)==1):0)X4(d,1,1);f[b>>2]=0;ow(a+12|0);return}function Lo(a){a=a|0;var b=0,c=0,d=0,e=0;a=a+(f[(f[a>>2]|0)+-16>>2]|0)|0;b=a+4|0;f[b>>2]=79584;f[b+8>>2]=79856;b=a+8|0;c=f[b>>2]|0;if(c|0?(d=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,e=d+8|0,c=f[e>>2]|0,f[e>>2]=c-1,(c|0)==1):0)X4(d,1,1);f[b>>2]=0;ow(a+12|0);NDb(a);return}function Mo(a){a=a|0;var b=0,c=0;b=LDb(44)|0;a=b+12|0;BCa(a);c=b+24|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[b+36>>2]=2;f[b+40>>2]=0;f[b+8>>2]=0;f[b>>2]=99332;f[b+4>>2]=99488;f[a>>2]=99760;return a|0}function No(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;e=a+(f[(f[a>>2]|0)+-24>>2]|0)|0;c=LDb(44)|0;d=c+12|0;nw(d,e+(f[(f[e>>2]|0)+-16>>2]|0)|0,b);a=c+4|0;b=e+(f[(f[e>>2]|0)+-12>>2]|0)|0;f[a>>2]=79584;f[d>>2]=79856;b=f[b+4>>2]|0;f[c+8>>2]=b;if(!b){f[c>>2]=99332;f[a>>2]=99488;f[d>>2]=99760;return d|0}e=b+(f[(f[b>>2]|0)+-12>>2]|0)+8|0;f[e>>2]=(f[e>>2]|0)+1;f[c>>2]=99332;f[a>>2]=99488;f[d>>2]=99760;return d|0}function Oo(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,61872,-1)|0)!=0;return b|0}function Po(a){a=a|0;return 241076}function Qo(a){a=a|0;return 147982}function Ro(a){a=a|0;var b=0,c=0;b=LDb(44)|0;a=b+12|0;BCa(a);c=b+24|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[b+36>>2]=2;f[b+40>>2]=0;f[b+8>>2]=0;f[b>>2]=99940;f[b+4>>2]=100096;f[a>>2]=100368;return a|0}function So(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;d=LDb(44)|0;e=d+12|0;nw(e,a+(f[(f[a>>2]|0)+-16>>2]|0)|0,b);c=d+4|0;b=a+(f[(f[a>>2]|0)+-12>>2]|0)|0;f[c>>2]=79584;f[e>>2]=79856;b=f[b+4>>2]|0;f[d+8>>2]=b;if(!b){f[d>>2]=99940;f[c>>2]=100096;f[e>>2]=100368;return e|0}a=b+(f[(f[b>>2]|0)+-12>>2]|0)+8|0;f[a>>2]=(f[a>>2]|0)+1;f[d>>2]=99940;f[c>>2]=100096;f[e>>2]=100368;return e|0}function To(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,61920,-1)|0)!=0;return b|0}function Uo(a){a=a|0;return 241076}function Vo(a){a=a|0;return 147995}function Wo(a){a=a|0;return a|0}function Xo(a){a=a|0;return a|0}function Yo(a,b,c){a=a|0;b=b|0;c=c|0;return}function Zo(a){a=a|0;var b=0,c=0,d=0,e=0;b=a+4|0;f[b>>2]=79584;f[b+8>>2]=79856;b=a+8|0;c=f[b>>2]|0;if(c|0?(d=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,e=d+8|0,c=f[e>>2]|0,f[e>>2]=c-1,(c|0)==1):0)X4(d,1,1);f[b>>2]=0;ow(a+12|0);return}function _o(a){a=a|0;var b=0,c=0,d=0,e=0;b=a+4|0;f[b>>2]=79584;f[b+8>>2]=79856;b=a+8|0;c=f[b>>2]|0;if(c|0?(d=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,e=d+8|0,c=f[e>>2]|0,f[e>>2]=c-1,(c|0)==1):0)X4(d,1,1);f[b>>2]=0;ow(a+12|0);NDb(a);return}function $o(a){a=a|0;var b=0,c=0;b=LDb(44)|0;a=b+12|0;BCa(a);c=b+24|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[b+36>>2]=2;f[b+40>>2]=0;f[b+8>>2]=0;f[b>>2]=99940;f[b+4>>2]=100096;f[a>>2]=100368;return a|0}function ap(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;e=a+(f[(f[a>>2]|0)+-20>>2]|0)|0;c=LDb(44)|0;d=c+12|0;nw(d,e+(f[(f[e>>2]|0)+-16>>2]|0)|0,b);a=c+4|0;b=e+(f[(f[e>>2]|0)+-12>>2]|0)|0;f[a>>2]=79584;f[d>>2]=79856;b=f[b+4>>2]|0;f[c+8>>2]=b;if(!b){f[c>>2]=99940;f[a>>2]=100096;f[d>>2]=100368;return d|0}e=b+(f[(f[b>>2]|0)+-12>>2]|0)+8|0;f[e>>2]=(f[e>>2]|0)+1;f[c>>2]=99940;f[a>>2]=100096;f[d>>2]=100368;return d|0}function bp(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,61920,-1)|0)!=0;return b|0}function cp(a){a=a|0;return 241076}function dp(a){a=a|0;return 147995}function ep(a){a=a|0;return 0}function fp(a){a=a|0;return 0}function gp(a){a=a|0;return a+(f[(f[a>>2]|0)+-84>>2]|0)|0}function hp(a){a=a|0;return a+(f[(f[a>>2]|0)+-88>>2]|0)|0}function ip(a){a=a|0;var b=0,c=0,d=0,e=0;a=a+(f[(f[a>>2]|0)+-112>>2]|0)|0;b=a+4|0;f[b>>2]=79584;f[b+8>>2]=79856;b=a+8|0;c=f[b>>2]|0;if(c|0?(d=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,e=d+8|0,c=f[e>>2]|0,f[e>>2]=c-1,(c|0)==1):0)X4(d,1,1);f[b>>2]=0;ow(a+12|0);return}function jp(a){a=a|0;var b=0,c=0,d=0,e=0;a=a+(f[(f[a>>2]|0)+-112>>2]|0)|0;b=a+4|0;f[b>>2]=79584;f[b+8>>2]=79856;b=a+8|0;c=f[b>>2]|0;if(c|0?(d=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,e=d+8|0,c=f[e>>2]|0,f[e>>2]=c-1,(c|0)==1):0)X4(d,1,1);f[b>>2]=0;ow(a+12|0);NDb(a);return}function kp(a){a=a|0;var b=0,c=0,d=0,e=0;a=a+(f[(f[a>>2]|0)+-16>>2]|0)|0;b=a+4|0;f[b>>2]=79584;f[b+8>>2]=79856;b=a+8|0;c=f[b>>2]|0;if(c|0?(d=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,e=d+8|0,c=f[e>>2]|0,f[e>>2]=c-1,(c|0)==1):0)X4(d,1,1);f[b>>2]=0;ow(a+12|0);return}function lp(a){a=a|0;var b=0,c=0,d=0,e=0;a=a+(f[(f[a>>2]|0)+-16>>2]|0)|0;b=a+4|0;f[b>>2]=79584;f[b+8>>2]=79856;b=a+8|0;c=f[b>>2]|0;if(c|0?(d=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,e=d+8|0,c=f[e>>2]|0,f[e>>2]=c-1,(c|0)==1):0)X4(d,1,1);f[b>>2]=0;ow(a+12|0);NDb(a);return}function mp(a){a=a|0;var b=0,c=0;b=LDb(44)|0;a=b+12|0;BCa(a);c=b+24|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[b+36>>2]=2;f[b+40>>2]=0;f[b+8>>2]=0;f[b>>2]=99940;f[b+4>>2]=100096;f[a>>2]=100368;return a|0}function np(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;e=a+(f[(f[a>>2]|0)+-24>>2]|0)|0;c=LDb(44)|0;d=c+12|0;nw(d,e+(f[(f[e>>2]|0)+-16>>2]|0)|0,b);a=c+4|0;b=e+(f[(f[e>>2]|0)+-12>>2]|0)|0;f[a>>2]=79584;f[d>>2]=79856;b=f[b+4>>2]|0;f[c+8>>2]=b;if(!b){f[c>>2]=99940;f[a>>2]=100096;f[d>>2]=100368;return d|0}e=b+(f[(f[b>>2]|0)+-12>>2]|0)+8|0;f[e>>2]=(f[e>>2]|0)+1;f[c>>2]=99940;f[a>>2]=100096;f[d>>2]=100368;return d|0}function op(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,61920,-1)|0)!=0;return b|0}function pp(a){a=a|0;return 241076}function qp(a){a=a|0;return 147995}function rp(a){a=a|0;var b=0,c=0;b=LDb(40)|0;a=b+8|0;BCa(a);c=b+20|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[b+32>>2]=2;f[b+36>>2]=0;f[b>>2]=85448;f[a>>2]=85720;f[b+4>>2]=0;return a|0}function sp(a,b){a=a|0;b=b|0;var c=0,d=0;c=LDb(40)|0;d=c+8|0;nw(d,a+(f[(f[a>>2]|0)+-12>>2]|0)|0,b);f[c>>2]=85448;f[d>>2]=85720;a=f[a+4>>2]|0;f[c+4>>2]=a;if(!a){d=85448;d=d+-12|0;d=f[d>>2]|0;d=c+d|0;return d|0}d=a+(f[(f[a>>2]|0)+-12>>2]|0)+8|0;f[d>>2]=(f[d>>2]|0)+1;d=f[c>>2]|0;d=d+-12|0;d=f[d>>2]|0;d=c+d|0;return d|0}function tp(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,57384,-1)|0)!=0;return b|0}function up(a){a=a|0;return 241076}function vp(a){a=a|0;return 148017}function wp(a,b,c){a=a|0;b=b|0;c=c|0;return g1(a,b,c)|0}function xp(a){a=a|0;var b=0,c=0,d=0,e=0;f[a>>2]=85448;c=a+8|0;f[c>>2]=85720;a=a+4|0;b=f[a>>2]|0;if(b|0?(d=b+(f[(f[b>>2]|0)+-12>>2]|0)|0,e=d+8|0,b=f[e>>2]|0,f[e>>2]=b-1,(b|0)==1):0)X4(d,1,1);f[a>>2]=0;ow(c);return}function yp(a){a=a|0;var b=0,c=0,d=0,e=0,g=0;f[a>>2]=85448;b=a+8|0;f[b>>2]=85720;c=a+4|0;d=f[c>>2]|0;if(d|0?(e=d+(f[(f[d>>2]|0)+-12>>2]|0)|0,g=e+8|0,d=f[g>>2]|0,f[g>>2]=d-1,(d|0)==1):0)X4(e,1,1);f[c>>2]=0;ow(b);NDb(a);return}function zp(a){a=a|0;var b=0,c=0,d=0,e=0;c=a+(f[(f[a>>2]|0)+-16>>2]|0)|0;f[c>>2]=85448;b=c+8|0;f[b>>2]=85720;c=c+4|0;a=f[c>>2]|0;if(!a){f[c>>2]=0;ow(b);return}a=a+(f[(f[a>>2]|0)+-12>>2]|0)|0;e=a+8|0;d=f[e>>2]|0;f[e>>2]=d-1;if((d|0)!=1){f[c>>2]=0;ow(b);return}X4(a,1,1);f[c>>2]=0;ow(b);return}function Ap(a){a=a|0;var b=0,c=0,d=0,e=0,g=0;a=a+(f[(f[a>>2]|0)+-16>>2]|0)|0;f[a>>2]=85448;b=a+8|0;f[b>>2]=85720;c=a+4|0;d=f[c>>2]|0;if(d|0?(e=d+(f[(f[d>>2]|0)+-12>>2]|0)|0,g=e+8|0,d=f[g>>2]|0,f[g>>2]=d-1,(d|0)==1):0)X4(e,1,1);f[c>>2]=0;ow(b);NDb(a);return}function Bp(a){a=a|0;var b=0,c=0;b=LDb(40)|0;a=b+8|0;BCa(a);c=b+20|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[b+32>>2]=2;f[b+36>>2]=0;f[b>>2]=85448;f[a>>2]=85720;f[b+4>>2]=0;return a|0}function Cp(a,b){a=a|0;b=b|0;var c=0,d=0;a=a+(f[(f[a>>2]|0)+-24>>2]|0)|0;c=LDb(40)|0;d=c+8|0;nw(d,a+(f[(f[a>>2]|0)+-12>>2]|0)|0,b);f[c>>2]=85448;f[d>>2]=85720;a=f[a+4>>2]|0;f[c+4>>2]=a;if(!a){d=85448;d=d+-12|0;d=f[d>>2]|0;d=c+d|0;return d|0}d=a+(f[(f[a>>2]|0)+-12>>2]|0)+8|0;f[d>>2]=(f[d>>2]|0)+1;d=f[c>>2]|0;d=d+-12|0;d=f[d>>2]|0;d=c+d|0;return d|0}function Dp(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,57384,-1)|0)!=0;return b|0}function Ep(a){a=a|0;return 241076}function Fp(a){a=a|0;return 148017}function Gp(a){a=a|0;var b=0,c=0,d=0,e=0;f[a>>2]=84668;c=a+96|0;f[c>>2]=84920;d=a+104|0;f[d>>2]=85192;f[a+4>>2]=84764;b=f[a+88>>2]|0;if((a+72|0)!=(b|0)){if(b|0)Nk[f[(f[b>>2]|0)+20>>2]&2047](b)}else Nk[f[(f[b>>2]|0)+16>>2]&2047](b);b=f[a+56>>2]|0;if(b|0){f[a+60>>2]=b;NDb(b)}b=f[a+48>>2]|0;if((a+32|0)!=(b|0)){if(b|0)Nk[f[(f[b>>2]|0)+20>>2]&2047](b)}else Nk[f[(f[b>>2]|0)+16>>2]&2047](b);bv(a+8|0,f[a+12>>2]|0);f[c>>2]=79584;f[c+8>>2]=79856;a=a+100|0;b=f[a>>2]|0;if(!b){f[a>>2]=0;ow(d);return}b=b+(f[(f[b>>2]|0)+-12>>2]|0)|0;e=b+8|0;c=f[e>>2]|0;f[e>>2]=c-1;if((c|0)!=1){f[a>>2]=0;ow(d);return}X4(b,1,1);f[a>>2]=0;ow(d);return}function Hp(a){a=a|0;Gp(a);NDb(a);return}function Ip(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0;e=~~+n[b+104>>2];c=~~+n[b+108>>2];d=a+20|0;if(!((f[d>>2]|0)==(e|0)?(f[a+24>>2]|0)==(c|0):0))h=3;if((h|0)==3?(g=d,f[g>>2]=e,f[g+4>>2]=c,g=f[a+48>>2]|0,g|0):0)Nk[f[(f[g>>2]|0)+24>>2]&2047](g);if((sk[f[(f[b>>2]|0)+172>>2]&2047](b)|0)!=1)if((sk[f[(f[b>>2]|0)+172>>2]&2047](b)|0)==2)d=0;else return 1;else d=1;c=f[b+84>>2]|0;switch(c|0){case 1:break;case 2:{c=3;break}case 4:{c=2;break}default:c=0}Pp(a,c,d);return 1}function Jp(a){a=a|0;Gp(a+-4|0);return}function Kp(a){a=a|0;a=a+-4|0;Gp(a);NDb(a);return}function Lp(a){a=a|0;Gp(a+(f[(f[a>>2]|0)+-112>>2]|0)|0);return}function Mp(a){a=a|0;a=a+(f[(f[a>>2]|0)+-112>>2]|0)|0;Gp(a);NDb(a);return}function Np(a){a=a|0;Gp(a+(f[(f[a>>2]|0)+-16>>2]|0)|0);return}function Op(a){a=a|0;a=a+(f[(f[a>>2]|0)+-16>>2]|0)|0;Gp(a);NDb(a);return}function Pp(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=u;u=u+16|0;k=n;f[k>>2]=b;h=a+56|0;d=f[h>>2]|0;l=a+60|0;m=f[l>>2]|0;i=(d|0)==(m|0);a:do if(i){e=d;j=5}else{g=d;do{if((f[g>>2]|0)==(b|0)){e=g;j=5;break a}g=g+4|0}while((g|0)!=(m|0))}while(0);if((j|0)==5?(e|0)!=(m|0):0){if(c){u=n;return}b:do if(i)j=11;else while(1){if((f[d>>2]|0)==(b|0)){j=11;break b}d=d+4|0;if((d|0)==(m|0)){d=m;break}}while(0);c:do if((j|0)==11)if((d|0)!=(m|0)){e=d+4|0;if((e|0)!=(m|0))while(1){g=f[e>>2]|0;if((g|0)!=(b|0)){f[d>>2]=g;d=d+4|0}e=e+4|0;if((e|0)==(m|0))break c;b=f[k>>2]|0}}else d=m;while(0);if((m|0)!=(d|0))f[l>>2]=d;d=f[a+88>>2]|0;if(!d){u=n;return}Nk[f[(f[d>>2]|0)+24>>2]&2047](d);u=n;return}if(!c){u=n;return}if((m|0)==(f[a+64>>2]|0))Qp(h,k);else{f[m>>2]=b;f[l>>2]=m+4}d=f[a+88>>2]|0;if(!d){u=n;return}Nk[f[(f[d>>2]|0)+24>>2]&2047](d);u=n;return}function Qp(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;i=a+4|0;j=f[a>>2]|0;k=(f[i>>2]|0)-j|0;g=k>>2;c=g+1|0;if(c>>>0>1073741823)KEb(a);l=a+8|0;e=(f[l>>2]|0)-j|0;h=e>>1;h=e>>2>>>0<536870911?(h>>>0<c>>>0?c:h):1073741823;do if(h)if(h>>>0>1073741823){l=mb(8)|0;RDb(l,238482);f[l>>2]=144484;qb(l|0,84192,1464)}else{e=LDb(h<<2)|0;d=e;break}else{d=0;e=0}while(0);c=d+(g<<2)|0;f[c>>2]=f[b>>2];if((k|0)>0)gGb(e|0,j|0,k|0)|0;f[a>>2]=d;f[i>>2]=c+4;f[l>>2]=d+(h<<2);if(!j)return;NDb(j);return}function Rp(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=u;u=u+16|0;k=p+12|0;o=p;g=a+4|0;f[g>>2]=0;h=a+8|0;f[h>>2]=0;f[a>>2]=a+4;l=a+12|0;m=a+16|0;f[m>>2]=0;n=a+20|0;f[n>>2]=0;f[l>>2]=a+16;j=a+24|0;i=a+80|0;BCa(i);f[i>>2]=88164;e=a+92|0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;f[a+104>>2]=2;f[a+108>>2]=0;C1(j,86432,2);f[j>>2]=85896;f[i>>2]=86264;i=LDb(408)|0;j4(i);j=o+4|0;f[j>>2]=0;f[j+4>>2]=0;j=o+11|0;b[j>>0]=3;b[o>>0]=b[144632]|0;b[o+1>>0]=b[144633]|0;b[o+2>>0]=b[144634]|0;b[o+3>>0]=0;e=zq(a,k,o)|0;c=f[e>>2]|0;if(!c){c=LDb(32)|0;d=c+16|0;f[d>>2]=f[o>>2];f[d+4>>2]=f[o+4>>2];f[d+8>>2]=f[o+8>>2];f[o>>2]=0;f[o+4>>2]=0;f[o+8>>2]=0;f[c+28>>2]=0;d=f[k>>2]|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=d;f[e>>2]=c;d=f[f[a>>2]>>2]|0;if(!d)d=c;else{f[a>>2]=d;d=f[e>>2]|0}Aq(f[g>>2]|0,d);f[h>>2]=(f[h>>2]|0)+1}c=c+28|0;d=f[c>>2]|0;if(((d|0)!=(i|0)?(f[c>>2]=i,i=i+8|0,f[i>>2]=(f[i>>2]|0)+1,d|0):0)?(h=d+8|0,i=f[h>>2]|0,f[h>>2]=i-1,(i|0)==1):0)X4(d,1,1);if((b[j>>0]|0)<0)NDb(f[o>>2]|0);f[o>>2]=0;f[o+4>>2]=0;f[o+8>>2]=0;c=LDb(48)|0;f[o>>2]=c;f[o+8>>2]=-2147483600;f[o+4>>2]=47;d=c;a=148165;e=d+47|0;do{b[d>>0]=b[a>>0]|0;d=d+1|0;a=a+1|0}while((d|0)<(e|0));b[c+47>>0]=0;a=Dq(l,k,o)|0;c=f[a>>2]|0;if(!c){c=LDb(40)|0;d=c+16|0;f[d>>2]=f[o>>2];f[d+4>>2]=f[o+4>>2];f[d+8>>2]=f[o+8>>2];f[o>>2]=0;f[o+4>>2]=0;f[o+8>>2]=0;d=c+28|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;d=f[k>>2]|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=d;f[a>>2]=c;d=f[f[l>>2]>>2]|0;if(!d)d=c;else{f[l>>2]=d;d=f[a>>2]|0}Aq(f[m>>2]|0,d);f[n>>2]=(f[n>>2]|0)+1}eEb(c+28|0,148026)|0;if((b[o+11>>0]|0)<0)NDb(f[o>>2]|0);f[o>>2]=0;f[o+4>>2]=0;f[o+8>>2]=0;c=LDb(64)|0;f[o>>2]=c;f[o+8>>2]=-2147483584;f[o+4>>2]=55;d=c;a=148367;e=d+55|0;do{b[d>>0]=b[a>>0]|0;d=d+1|0;a=a+1|0}while((d|0)<(e|0));b[c+55>>0]=0;a=Dq(l,k,o)|0;c=f[a>>2]|0;if(!c){c=LDb(40)|0;d=c+16|0;f[d>>2]=f[o>>2];f[d+4>>2]=f[o+4>>2];f[d+8>>2]=f[o+8>>2];f[o>>2]=0;f[o+4>>2]=0;f[o+8>>2]=0;d=c+28|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;d=f[k>>2]|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=d;f[a>>2]=c;d=f[f[l>>2]>>2]|0;if(!d)d=c;else{f[l>>2]=d;d=f[a>>2]|0}Aq(f[m>>2]|0,d);f[n>>2]=(f[n>>2]|0)+1}eEb(c+28|0,148213)|0;if((b[o+11>>0]|0)>=0){u=p;return}NDb(f[o>>2]|0);u=p;return}function Sp(a){a=a|0;qC(a,86432);ow(a+56|0);return}function Tp(a){a=a|0;a=LDb(88)|0;o4(a,0);return a+(f[(f[a>>2]|0)+-12>>2]|0)|0}function Up(a,b){a=a|0;b=b|0;var c=0;c=LDb(88)|0;q4(c,a,b);return c+(f[(f[c>>2]|0)+-12>>2]|0)|0}function Vp(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,59536,-1)|0)!=0;return b|0}function Wp(a){a=a|0;return 241076}function Xp(a){a=a|0;return 148449}function Yp(a){a=a|0;return a|0}function Zp(a){a=a|0;return a|0}function _p(a){a=a|0;return 0}function $p(a){a=a|0;return 0}function aq(a){a=a|0;return 0}function bq(a){a=a|0;return 0}function cq(a){a=a|0;return 0}function dq(a){a=a|0;return 0}function eq(a){a=a|0;return 0}function fq(a){a=a|0;return 0}function gq(a){a=a|0;return 0}function hq(a){a=a|0;return 0}function iq(a){a=a|0;return}function jq(a,b){a=a|0;b=b|0;n[a>>2]=0.0;n[a+4>>2]=0.0;n[a+8>>2]=0.0;return}function kq(a,b){a=a|0;b=b|0;Vk[f[(f[b>>2]|0)+80>>2]&1023](a,b);return}function lq(a,b,c){a=a|0;b=b|0;c=c|0;return 0.0}function mq(a,b,c){a=a|0;b=b|0;c=c|0;return 0.0}function nq(a,b,c){a=a|0;b=b|0;c=c|0;return 0.0}function oq(a){a=a|0;a=LDb(88)|0;o4(a,0);return a+(f[(f[a>>2]|0)+-12>>2]|0)|0}function pq(a,b){a=a|0;b=b|0;var c=0;c=a+(f[(f[a>>2]|0)+-24>>2]|0)|0;a=LDb(88)|0;q4(a,c,b);return a+(f[(f[a>>2]|0)+-12>>2]|0)|0}function qq(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,59536,-1)|0)!=0;return b|0}function rq(a){a=a|0;return 241076}function sq(a){a=a|0;return 148449}function tq(a){a=a|0;return a+(f[(f[a>>2]|0)+-48>>2]|0)|0}function uq(a){a=a|0;return a+(f[(f[a>>2]|0)+-52>>2]|0)|0}function vq(a){a=a|0;qC(a,86432);ow(a+56|0);NDb(a);return}function wq(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;if(!(sk[f[(f[b>>2]|0)+248>>2]&2047](b)|0)){NB(a,b);return}h=b+124|0;c=0;do{d=f[(f[h>>2]|0)+(c<<2)>>2]|0;if((d|0?(e=sk[f[(f[d>>2]|0)+88>>2]&2047](d)|0,e|0):0)?(g=bFb(e,59496,60288,0)|0,g|0):0)Vk[f[(f[g>>2]|0)+236>>2]&1023](g,1);c=c+1|0}while(c>>>0<(sk[f[(f[b>>2]|0)+248>>2]&2047](b)|0)>>>0);NB(a,b);return}function xq(a){a=a|0;a=a+(f[(f[a>>2]|0)+-16>>2]|0)|0;qC(a,86432);ow(a+56|0);return}function yq(a){a=a|0;a=a+(f[(f[a>>2]|0)+-16>>2]|0)|0;qC(a,86432);ow(a+56|0);NDb(a);return}function zq(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;e=a+4|0;h=f[e>>2]|0;if(!h){f[c>>2]=e;o=e;return o|0}m=b[d+11>>0]|0;l=m<<24>>24<0;m=l?f[d+4>>2]|0:m&255;l=l?f[d>>2]|0:d;g=a+4|0;e=h;while(1){d=e+16|0;h=b[d+11>>0]|0;a=h<<24>>24<0;h=a?f[e+20>>2]|0:h&255;k=h>>>0<m>>>0;j=k?h:m;i=(j|0)==0;if(!i?(n=a?f[d>>2]|0:d,o=ipb(l,n,j)|0,(o|0)!=0):0)if((o|0)<0)a=7;else{d=n;a=11}else if(m>>>0>=h>>>0)if(i)a=12;else{d=a?f[d>>2]|0:d;a=11}else a=7;if((a|0)==7){a=0;d=f[e>>2]|0;if(!d){a=8;break}else{g=e;e=d}}else if((a|0)==11){d=ipb(d,l,j)|0;if(d)if((d|0)<0)a=14;else{a=16;break}else a=12}if((a|0)==12)if(k)a=14;else{a=16;break}if((a|0)==14){d=e+4|0;a=f[d>>2]|0;if(!a){a=15;break}else{g=d;e=a}}}if((a|0)==8){f[c>>2]=e;o=e;return o|0}else if((a|0)==15){f[c>>2]=e;o=d;return o|0}else if((a|0)==16){f[c>>2]=e;o=g;return o|0}return 0}function Aq(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0;i=(c|0)==(a|0);b[c+12>>0]=i&1;if(i)return;while(1){h=c+8|0;i=f[h>>2]|0;d=i+12|0;if(b[d>>0]|0){g=24;break}e=f[i+8>>2]|0;g=f[e>>2]|0;if((g|0)==(i|0)){g=f[e+4>>2]|0;if(!g){g=7;break}g=g+12|0;if(!(b[g>>0]|0))c=g;else{g=7;break}}else{if(!g){g=16;break}g=g+12|0;if(!(b[g>>0]|0))c=g;else{g=16;break}}b[d>>0]=1;b[e+12>>0]=(e|0)==(a|0)&1;b[c>>0]=1;if((e|0)==(a|0)){g=24;break}else c=e}if((g|0)==7){g=i+8|0;if((f[i>>2]|0)==(c|0)){c=d;g=e}else{h=i+4|0;d=f[h>>2]|0;c=f[d>>2]|0;f[h>>2]=c;if(!c)c=e;else{f[c+8>>2]=i;c=f[g>>2]|0}f[d+8>>2]=c;c=f[g>>2]|0;f[((f[c>>2]|0)==(i|0)?c:c+4|0)>>2]=d;f[d>>2]=i;f[g>>2]=d;c=d+12|0;g=f[d+8>>2]|0}b[c>>0]=1;b[g+12>>0]=0;c=f[g>>2]|0;d=c+4|0;e=f[d>>2]|0;f[g>>2]=e;if(e|0)f[e+8>>2]=g;i=g+8|0;f[c+8>>2]=f[i>>2];h=f[i>>2]|0;f[((f[h>>2]|0)==(g|0)?h:h+4|0)>>2]=c;f[d>>2]=g;f[i>>2]=c;return}else if((g|0)==16){a=i+8|0;if((f[i>>2]|0)==(c|0)){g=c+4|0;d=f[g>>2]|0;f[i>>2]=d;if(d){f[d+8>>2]=i;e=f[a>>2]|0}f[h>>2]=e;d=f[a>>2]|0;f[((f[d>>2]|0)==(i|0)?d:d+4|0)>>2]=c;f[g>>2]=i;f[a>>2]=c;d=c+12|0;e=f[c+8>>2]|0}b[d>>0]=1;b[e+12>>0]=0;i=e+4|0;c=f[i>>2]|0;d=f[c>>2]|0;f[i>>2]=d;if(d|0)f[d+8>>2]=e;i=e+8|0;f[c+8>>2]=f[i>>2];h=f[i>>2]|0;f[((f[h>>2]|0)==(e|0)?h:h+4|0)>>2]=c;f[c>>2]=e;f[i>>2]=c;return}else if((g|0)==24)return}function Bq(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0;if(!c)return;Bq(a,f[c>>2]|0);Bq(a,f[c+4>>2]|0);a=c+16|0;d=c+28|0;e=f[d>>2]|0;if(e|0?(h=e+8|0,g=f[h>>2]|0,f[h>>2]=g-1,(g|0)==1):0)X4(e,1,1);f[d>>2]=0;if((b[a+11>>0]|0)<0)NDb(f[a>>2]|0);NDb(c);return}function Cq(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=a+4|0;d=f[m>>2]|0;do if(d|0){l=b[c+11>>0]|0;k=l<<24>>24<0;l=k?f[c+4>>2]|0:l&255;k=k?f[c>>2]|0:c;a=m;do{e=d+16|0;h=b[e+11>>0]|0;g=h<<24>>24<0;h=g?f[d+20>>2]|0:h&255;i=l>>>0<h>>>0;c=i?l:h;if((c|0)!=0?(j=ipb(g?f[e>>2]|0:e,k,c)|0,(j|0)!=0):0)c=j;else c=h>>>0<l>>>0?-1:i&1;i=(c|0)<0;a=i?a:d;d=f[(i?d+4|0:d)>>2]|0}while((d|0)!=0);if((a|0)!=(m|0)){d=a+16|0;g=b[d+11>>0]|0;e=g<<24>>24<0;g=e?f[a+20>>2]|0:g&255;c=g>>>0<l>>>0?g:l;if(c|0?(n=ipb(k,e?f[d>>2]|0:d,c)|0,n|0):0){if((n|0)<0)break;return a|0}if(l>>>0>=g>>>0){n=a;return n|0}}}while(0);n=m;return n|0}function Dq(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;e=a+4|0;h=f[e>>2]|0;if(!h){f[c>>2]=e;o=e;return o|0}m=b[d+11>>0]|0;l=m<<24>>24<0;m=l?f[d+4>>2]|0:m&255;l=l?f[d>>2]|0:d;g=a+4|0;e=h;while(1){d=e+16|0;h=b[d+11>>0]|0;a=h<<24>>24<0;h=a?f[e+20>>2]|0:h&255;k=h>>>0<m>>>0;j=k?h:m;i=(j|0)==0;if(!i?(n=a?f[d>>2]|0:d,o=ipb(l,n,j)|0,(o|0)!=0):0)if((o|0)<0)a=7;else{d=n;a=11}else if(m>>>0>=h>>>0)if(i)a=12;else{d=a?f[d>>2]|0:d;a=11}else a=7;if((a|0)==7){a=0;d=f[e>>2]|0;if(!d){a=8;break}else{g=e;e=d}}else if((a|0)==11){d=ipb(d,l,j)|0;if(d)if((d|0)<0)a=14;else{a=16;break}else a=12}if((a|0)==12)if(k)a=14;else{a=16;break}if((a|0)==14){d=e+4|0;a=f[d>>2]|0;if(!a){a=15;break}else{g=d;e=a}}}if((a|0)==8){f[c>>2]=e;o=e;return o|0}else if((a|0)==15){f[c>>2]=e;o=d;return o|0}else if((a|0)==16){f[c>>2]=e;o=g;return o|0}return 0}function Eq(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0;i=u;u=u+16|0;c=i;if((b|0)==(a|0)){u=i;return}e=a+16|0;d=f[e>>2]|0;g=d;h=b+16|0;if((d|0)==(a|0))if((f[h>>2]|0)==(b|0)){Vk[f[(f[d>>2]|0)+12>>2]&1023](d,c);g=f[e>>2]|0;Nk[f[(f[g>>2]|0)+16>>2]&2047](g);f[e>>2]=0;g=f[h>>2]|0;Vk[f[(f[g>>2]|0)+12>>2]&1023](g,a);g=f[h>>2]|0;Nk[f[(f[g>>2]|0)+16>>2]&2047](g);f[h>>2]=0;f[e>>2]=a;Vk[f[(f[c>>2]|0)+12>>2]&1023](c,b);Nk[f[(f[c>>2]|0)+16>>2]&2047](c);f[h>>2]=b;u=i;return}else{Vk[f[(f[d>>2]|0)+12>>2]&1023](d,b);h=f[e>>2]|0;Nk[f[(f[h>>2]|0)+16>>2]&2047](h);h=b+16|0;f[e>>2]=f[h>>2];f[h>>2]=b;u=i;return}else{c=f[h>>2]|0;if((b|0)==(c|0)){Vk[f[(f[c>>2]|0)+12>>2]&1023](c,a);g=f[h>>2]|0;Nk[f[(f[g>>2]|0)+16>>2]&2047](g);f[h>>2]=f[e>>2];f[e>>2]=a;u=i;return}else{f[e>>2]=c;f[h>>2]=g;u=i;return}}}function Fq(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;i=a+4|0;j=f[a>>2]|0;k=(f[i>>2]|0)-j|0;g=k>>2;c=g+1|0;if(c>>>0>1073741823)KEb(a);l=a+8|0;e=(f[l>>2]|0)-j|0;h=e>>1;h=e>>2>>>0<536870911?(h>>>0<c>>>0?c:h):1073741823;do if(h)if(h>>>0>1073741823){l=mb(8)|0;RDb(l,238482);f[l>>2]=144484;qb(l|0,84192,1464)}else{e=LDb(h<<2)|0;d=e;break}else{d=0;e=0}while(0);c=d+(g<<2)|0;f[c>>2]=f[b>>2];if((k|0)>0)gGb(e|0,j|0,k|0)|0;f[a>>2]=d;f[i>>2]=c+4;f[l>>2]=d+(h<<2);if(!j)return;NDb(j);return}function Gq(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;h=u;u=u+16|0;d=h;e=Hq(a,d,b)|0;c=f[e>>2]|0;if(c|0){a=c;a=a+28|0;u=h;return a|0}g=LDb(32)|0;VDb(g+16|0,b);f[g+28>>2]=0;c=f[d>>2]|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=c;f[e>>2]=g;c=f[f[a>>2]>>2]|0;if(!c)c=g;else{f[a>>2]=c;c=f[e>>2]|0}Aq(f[a+4>>2]|0,c);a=a+8|0;f[a>>2]=(f[a>>2]|0)+1;a=g;a=a+28|0;u=h;return a|0}function Hq(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;e=a+4|0;h=f[e>>2]|0;if(!h){f[c>>2]=e;o=e;return o|0}m=b[d+11>>0]|0;l=m<<24>>24<0;m=l?f[d+4>>2]|0:m&255;l=l?f[d>>2]|0:d;g=a+4|0;e=h;while(1){d=e+16|0;h=b[d+11>>0]|0;a=h<<24>>24<0;h=a?f[e+20>>2]|0:h&255;k=h>>>0<m>>>0;j=k?h:m;i=(j|0)==0;if(!i?(n=a?f[d>>2]|0:d,o=ipb(l,n,j)|0,(o|0)!=0):0)if((o|0)<0)a=7;else{d=n;a=11}else if(m>>>0>=h>>>0)if(i)a=12;else{d=a?f[d>>2]|0:d;a=11}else a=7;if((a|0)==7){a=0;d=f[e>>2]|0;if(!d){a=8;break}else{g=e;e=d}}else if((a|0)==11){d=ipb(d,l,j)|0;if(d)if((d|0)<0)a=14;else{a=16;break}else a=12}if((a|0)==12)if(k)a=14;else{a=16;break}if((a|0)==14){d=e+4|0;a=f[d>>2]|0;if(!a){a=15;break}else{g=d;e=a}}}if((a|0)==8){f[c>>2]=e;o=e;return o|0}else if((a|0)==15){f[c>>2]=e;o=d;return o|0}else if((a|0)==16){f[c>>2]=e;o=g;return o|0}return 0}function Iq(a){a=a|0;NDb(a);return}function Jq(a){a=a|0;var b=0;b=LDb(8)|0;f[b>>2]=86452;f[b+4>>2]=f[a+4>>2];return b|0}function Kq(a,b){a=a|0;b=b|0;f[b>>2]=86452;f[b+4>>2]=f[a+4>>2];return}function Lq(a){a=a|0;return}function Mq(a){a=a|0;NDb(a);return}function Nq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Qq(a,b+4|0,c,d);return}function Oq(a,b){a=a|0;b=b|0;return ((f[b+4>>2]|0)==148806?a+4|0:0)|0}function Pq(a){a=a|0;return 57464}function Qq(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0.0,h=0.0,i=0,j=0,k=0,l=0,m=0,o=0,q=0,r=0,s=0,t=0.0;s=u;u=u+80|0;q=s+32|0;o=s+24|0;m=s+16|0;j=s;r=s+40|0;i=f[c>>2]|0;l=f[(f[(f[i>>2]|0)+24>>2]|0)+120>>2]|0;k=f[e>>2]|0;c=f[e+4>>2]|0;do if((k|0)!=(c|0)){c=c-k|0;if((c|0)!=36){f[j>>2]=(b[d+11>>0]|0)<0?f[d>>2]|0:d;f[j+4>>2]=(c|0)/12|0;f[j+8>>2]=3;Sq(i,145100,j);break}if((b[k+11>>0]|0)<0)c=f[k>>2]|0;else c=k;h=+Wqb(c);c=k+12|0;if((b[c+11>>0]|0)<0)c=f[c>>2]|0;g=+Wqb(c);c=k+24|0;if((b[c+11>>0]|0)<0)c=f[c>>2]|0;t=+Wqb(c);n[l+240>>2]=h;n[l+244>>2]=g;n[l+248>>2]=t;c=l+148|0;if(!(f[l+152>>2]|0))f[c>>2]=f[c>>2]&-8193}while(0);h=+n[l+244>>2];t=+n[l+248>>2];p[m>>3]=+n[l+240>>2];tl(r,148803,m);p[o>>3]=h;tl(r+12|0,148803,o);p[q>>3]=t;tl(r+24|0,148803,q);f[a>>2]=0;c=a+4|0;f[c>>2]=0;o=a+8|0;f[o>>2]=0;q=LDb(36)|0;f[c>>2]=q;f[a>>2]=q;f[o>>2]=q+36;VDb(q,r);o=q+12|0;f[c>>2]=o;VDb(o,r+12|0);o=q+24|0;f[c>>2]=o;VDb(o,r+24|0);f[c>>2]=q+36;c=r+24|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);c=r+12|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);if((b[r+11>>0]|0)>=0){u=s;return}NDb(f[r>>2]|0);u=s;return}function Rq(a){a=a|0;return ((f[a+4>>2]|0)-(f[a>>2]|0)|0)/12|0|0}function Sq(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0;k=u;u=u+32|0;i=k+16|0;j=k;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;g=Zob(c)|0;if(g>>>0>4294967279)TDb(i);if(g>>>0<11){b[i+11>>0]=g;if(!g)e=i;else{e=i;h=6}}else{h=g+16&-16;e=LDb(h)|0;f[i>>2]=e;f[i+8>>2]=h|-2147483648;f[i+4>>2]=g;h=6}if((h|0)==6)gGb(e|0,c|0,g|0)|0;b[e+g>>0]=0;e=Cm(a+16|0,i)|0;if((b[i+11>>0]|0)<0)NDb(f[i>>2]|0);if((e|0)==(a+20|0)){dsb(c)|0;u=k;return}VDb(i,e+28|0);f[j>>2]=d;d=i+11|0;lsb((b[d>>0]|0)<0?f[i>>2]|0:i,j)|0;fsb(10)|0;if((b[d>>0]|0)<0)NDb(f[i>>2]|0);u=k;return}function Tq(a){a=a|0;NDb(a);return}function Uq(a){a=a|0;var b=0;b=LDb(8)|0;f[b>>2]=86496;f[b+4>>2]=f[a+4>>2];return b|0}function Vq(a,b){a=a|0;b=b|0;f[b>>2]=86496;f[b+4>>2]=f[a+4>>2];return}function Wq(a){a=a|0;return}function Xq(a){a=a|0;NDb(a);return}function Yq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;$q(a,b+4|0,c,d);return}function Zq(a,b){a=a|0;b=b|0;return ((f[b+4>>2]|0)==149205?a+4|0:0)|0}function _q(a){a=a|0;return 57488}function $q(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0.0,h=0.0,i=0,j=0,k=0,l=0,m=0;m=u;u=u+32|0;i=m;l=m+12|0;k=f[c>>2]|0;c=f[e>>2]|0;e=(f[e+4>>2]|0)-c|0;j=c;if((e|0)==36){if((b[c+11>>0]|0)<0)c=f[j>>2]|0;h=+Wqb(c);c=j+12|0;if((b[c+11>>0]|0)<0)c=f[c>>2]|0;g=+Wqb(c);c=j+24|0;if((b[c+11>>0]|0)<0)c=f[c>>2]|0;c=$pb(c)|0;n[l>>2]=h;n[l+4>>2]=g;c=wl(l,f[(f[(f[k>>2]|0)+24>>2]|0)+120>>2]|0,c)|0;if(c|0){VDb(l,c+12|0);f[a>>2]=0;k=a+4|0;f[k>>2]=0;i=a+8|0;f[i>>2]=0;j=LDb(12)|0;f[k>>2]=j;f[a>>2]=j;f[i>>2]=j+12;VDb(j,l);f[k>>2]=j+12;if((b[l+11>>0]|0)<0)NDb(f[l>>2]|0);u=m;return}}else{f[i>>2]=(b[d+11>>0]|0)<0?f[d>>2]|0:d;f[i+4>>2]=(e|0)/12|0;f[i+8>>2]=3;Sq(k,145100,i)}f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;u=m;return}function ar(a){a=a|0;NDb(a);return}function br(a){a=a|0;var b=0;b=LDb(8)|0;f[b>>2]=86540;f[b+4>>2]=f[a+4>>2];return b|0}function cr(a,b){a=a|0;b=b|0;f[b>>2]=86540;f[b+4>>2]=f[a+4>>2];return}function dr(a){a=a|0;return}function er(a){a=a|0;NDb(a);return}function fr(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ir(a,b+4|0,c,d);return}function gr(a,b){a=a|0;b=b|0;return ((f[b+4>>2]|0)==149605?a+4|0:0)|0}function hr(a){a=a|0;return 57512}function ir(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0.0,h=0.0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0.0;q=u;u=u+128|0;k=q+72|0;j=q+64|0;i=q+56|0;n=q+32|0;o=q;l=q+80|0;m=f[(f[f[c>>2]>>2]|0)+16>>2]|0;f[n>>2]=0;f[n+4>>2]=0;f[n+8>>2]=0;f[n+12>>2]=0;f[n+16>>2]=0;f[n+20>>2]=0;f[o>>2]=0;f[o+4>>2]=0;f[o+8>>2]=0;f[o+12>>2]=0;f[o+16>>2]=0;f[o+20>>2]=0;p[o+24>>3]=1.0;Zk[f[(f[m>>2]|0)+164>>2]&511](m,n,o);d=f[e>>2]|0;c=d;if(((f[e+4>>2]|0)-d|0)!=36){Zk[f[(f[m>>2]|0)+164>>2]&511](m,n,o);p[i>>3]=+p[n>>3];tl(l,148803,i);p[j>>3]=+p[n+8>>3];tl(l+12|0,148803,j);p[k>>3]=+p[n+16>>3];tl(l+24|0,148803,k);f[a>>2]=0;d=a+4|0;f[d>>2]=0;n=a+8|0;f[n>>2]=0;o=LDb(36)|0;f[d>>2]=o;f[a>>2]=o;f[n>>2]=o+36;VDb(o,l);a=o+12|0;f[d>>2]=a;VDb(a,l+12|0);a=o+24|0;f[d>>2]=a;VDb(a,l+24|0);f[d>>2]=o+36;d=l+24|0;if((b[d+11>>0]|0)<0)NDb(f[d>>2]|0);d=l+12|0;if((b[d+11>>0]|0)<0)NDb(f[d>>2]|0);if((b[l+11>>0]|0)<0)NDb(f[l>>2]|0);u=q;return}if((b[d+11>>0]|0)<0)d=f[c>>2]|0;h=+Wqb(d);d=c+12|0;if((b[d+11>>0]|0)<0)d=f[d>>2]|0;g=+Wqb(d);d=c+24|0;if((b[d+11>>0]|0)<0)d=f[d>>2]|0;r=+Wqb(d);p[n>>3]=h;p[n+8>>3]=g;p[n+16>>3]=r;Zk[f[(f[m>>2]|0)+156>>2]&511](m,n,o);f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;u=q;return}function jr(a){a=a|0;NDb(a);return}function kr(a){a=a|0;var b=0;b=LDb(8)|0;f[b>>2]=86584;f[b+4>>2]=f[a+4>>2];return b|0}function lr(a,b){a=a|0;b=b|0;f[b>>2]=86584;f[b+4>>2]=f[a+4>>2];return}function mr(a){a=a|0;return}function nr(a){a=a|0;NDb(a);return}function or(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;rr(a,b+4|0,c,d);return}function pr(a,b){a=a|0;b=b|0;return ((f[b+4>>2]|0)==150005?a+4|0:0)|0}function qr(a){a=a|0;return 57536}function rr(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0.0,h=0.0,i=0,j=0,k=0,l=0,m=0,o=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0.0,y=0.0,z=0.0,A=0.0;w=u;u=u+176|0;k=w+104|0;j=w+96|0;i=w+88|0;v=w+136|0;o=w+124|0;q=w+112|0;r=w+64|0;s=w+32|0;t=w;l=f[(f[f[c>>2]>>2]|0)+16>>2]|0;f[r>>2]=0;f[r+4>>2]=0;f[r+8>>2]=0;f[r+12>>2]=0;f[r+16>>2]=0;f[r+20>>2]=0;m=s+24|0;f[s>>2]=0;f[s+4>>2]=0;f[s+8>>2]=0;f[s+12>>2]=0;f[s+16>>2]=0;f[s+20>>2]=0;p[m>>3]=1.0;Zk[f[(f[l>>2]|0)+164>>2]&511](l,r,s);d=f[e>>2]|0;c=d;if(((f[e+4>>2]|0)-d|0)!=36){Zk[f[(f[l>>2]|0)+164>>2]&511](l,r,s);z=+p[s>>3];x=+p[s+8>>3];y=+p[s+16>>3];g=+p[m>>3];A=y*y;h=+S(+((z*x+y*g)*2.0),+(1.0-(x*x+A)*2.0))*180.0/3.141592653589793;A=180.0-+S(+((x*y+z*g)*2.0),+(1.0-(A+g*g)*2.0))*180.0/3.141592653589793;p[i>>3]=A;tl(v,148803,i);g=+Q(+((z*y-x*g)*2.0))*180.0/3.141592653589793;p[j>>3]=g;tl(v+12|0,148803,j);p[k>>3]=h<0.0?h+360.0:h;tl(v+24|0,148803,k);f[a>>2]=0;d=a+4|0;f[d>>2]=0;s=a+8|0;f[s>>2]=0;t=LDb(36)|0;f[d>>2]=t;f[a>>2]=t;f[s>>2]=t+36;VDb(t,v);a=t+12|0;f[d>>2]=a;VDb(a,v+12|0);a=t+24|0;f[d>>2]=a;VDb(a,v+24|0);f[d>>2]=t+36;d=v+24|0;if((b[d+11>>0]|0)<0)NDb(f[d>>2]|0);d=v+12|0;if((b[d+11>>0]|0)<0)NDb(f[d>>2]|0);if((b[v+11>>0]|0)<0)NDb(f[v>>2]|0);u=w;return}if((b[d+11>>0]|0)<0)d=f[c>>2]|0;h=+Wqb(d);d=c+12|0;if((b[d+11>>0]|0)<0)d=f[d>>2]|0;g=+Wqb(d);d=c+24|0;if((b[d+11>>0]|0)<0)d=f[d>>2]|0;A=+Wqb(d);e=t+24|0;f[t>>2]=0;f[t+4>>2]=0;f[t+8>>2]=0;f[t+12>>2]=0;f[t+16>>2]=0;f[t+20>>2]=0;p[e>>3]=1.0;n[v>>2]=1.0;n[v+4>>2]=0.0;n[v+8>>2]=0.0;n[o>>2]=0.0;n[o+4>>2]=1.0;n[o+8>>2]=0.0;n[q>>2]=0.0;n[q+4>>2]=0.0;n[q+8>>2]=1.0;yCa(t,h*3.1415927410125732/180.0,v,g*3.1415927410125732/180.0,o,A*3.1415927410125732/180.0,q);p[s>>3]=+p[t>>3];p[s+8>>3]=+p[t+8>>3];p[s+16>>3]=+p[t+16>>3];p[m>>3]=+p[e>>3];Zk[f[(f[l>>2]|0)+156>>2]&511](l,r,s);f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;u=w;return}function sr(a){a=a|0;NDb(a);return}function tr(a){a=a|0;var b=0;b=LDb(8)|0;f[b>>2]=86628;f[b+4>>2]=f[a+4>>2];return b|0}function ur(a,b){a=a|0;b=b|0;f[b>>2]=86628;f[b+4>>2]=f[a+4>>2];return}function vr(a){a=a|0;return}function wr(a){a=a|0;NDb(a);return}function xr(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ar(a,b+4|0,c,d);return}function yr(a,b){a=a|0;b=b|0;return ((f[b+4>>2]|0)==150408?a+4|0:0)|0}function zr(a){a=a|0;return 57560}function Ar(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0;g=u;u=u+48|0;d=g+8|0;i=g;e=g+16|0;c=(f[(f[f[c>>2]>>2]|0)+20>>2]|0)+20|0;h=f[c+4>>2]|0;f[i>>2]=f[c>>2];tl(e,150405,i);f[d>>2]=h;tl(e+12|0,150405,d);f[a>>2]=0;d=a+4|0;f[d>>2]=0;h=a+8|0;f[h>>2]=0;c=LDb(24)|0;f[d>>2]=c;f[a>>2]=c;f[h>>2]=c+24;VDb(c,e);a=c+12|0;f[d>>2]=a;VDb(a,e+12|0);f[d>>2]=c+24;d=e+12|0;if((b[d+11>>0]|0)<0)NDb(f[d>>2]|0);if((b[e+11>>0]|0)>=0){u=g;return}NDb(f[e>>2]|0);u=g;return}function Br(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0;i=u;u=u+16|0;c=i;if((b|0)==(a|0)){u=i;return}e=a+16|0;d=f[e>>2]|0;g=d;h=b+16|0;if((d|0)==(a|0))if((f[h>>2]|0)==(b|0)){Vk[f[(f[d>>2]|0)+12>>2]&1023](d,c);g=f[e>>2]|0;Nk[f[(f[g>>2]|0)+16>>2]&2047](g);f[e>>2]=0;g=f[h>>2]|0;Vk[f[(f[g>>2]|0)+12>>2]&1023](g,a);g=f[h>>2]|0;Nk[f[(f[g>>2]|0)+16>>2]&2047](g);f[h>>2]=0;f[e>>2]=a;Vk[f[(f[c>>2]|0)+12>>2]&1023](c,b);Nk[f[(f[c>>2]|0)+16>>2]&2047](c);f[h>>2]=b;u=i;return}else{Vk[f[(f[d>>2]|0)+12>>2]&1023](d,b);h=f[e>>2]|0;Nk[f[(f[h>>2]|0)+16>>2]&2047](h);h=b+16|0;f[e>>2]=f[h>>2];f[h>>2]=b;u=i;return}else{c=f[h>>2]|0;if((b|0)==(c|0)){Vk[f[(f[c>>2]|0)+12>>2]&1023](c,a);g=f[h>>2]|0;Nk[f[(f[g>>2]|0)+16>>2]&2047](g);f[h>>2]=f[e>>2];f[e>>2]=a;u=i;return}else{f[e>>2]=c;f[h>>2]=g;u=i;return}}}function Cr(a){a=a|0;NDb(a);return}function Dr(a){a=a|0;a=LDb(8)|0;f[a>>2]=86672;return a|0}function Er(a,b){a=a|0;b=b|0;f[b>>2]=86672;return}function Fr(a){a=a|0;return}function Gr(a){a=a|0;NDb(a);return}function Hr(a){a=a|0;var c=0,d=0,e=0,g=0,h=0;e=u;u=u+16|0;a=e;c=LDb(16)|0;f[a>>2]=c;f[a+8>>2]=-2147483632;f[a+4>>2]=14;d=c;g=147185;h=d+14|0;do{b[d>>0]=b[g>>0]|0;d=d+1|0;g=g+1|0}while((d|0)<(h|0));b[c+14>>0]=0;ql(a);if((b[a+11>>0]|0)>=0){u=e;return}NDb(f[a>>2]|0);u=e;return}function Ir(a,b){a=a|0;b=b|0;return ((f[b+4>>2]|0)==150803?a+4|0:0)|0}function Jr(a){a=a|0;return 57592}function Kr(a){a=a|0;return}function Lr(a){a=a|0;NDb(a);return}function Mr(a){a=a|0;var b=0;b=LDb(8)|0;f[b>>2]=86716;f[b+4>>2]=f[a+4>>2];return b|0}function Nr(a,b){a=a|0;b=b|0;f[b>>2]=86716;f[b+4>>2]=f[a+4>>2];return}function Or(a){a=a|0;return}function Pr(a){a=a|0;NDb(a);return}function Qr(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Tr(a,b+4|0,c,d);return}function Rr(a,b){a=a|0;b=b|0;return ((f[b+4>>2]|0)==151221?a+4|0:0)|0}function Sr(a){a=a|0;return 57616}function Tr(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|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,t=0;q=u;u=u+32|0;o=q+12|0;p=q;h=f[(f[f[c>>2]>>2]|0)+20>>2]|0;e=h+56|0;f[o>>2]=0;n=o+4|0;f[n>>2]=0;c=o+8|0;f[c>>2]=0;h=h+60|0;d=(f[h>>2]|0)-(f[e>>2]|0)|0;g=d>>2;if(d){if(g>>>0>1073741823)KEb(o);i=LDb(d)|0;f[n>>2]=i;f[o>>2]=i;f[c>>2]=i+(g<<2);e=f[e>>2]|0;d=(f[h>>2]|0)-e|0;if((d|0)>0){m=i+(d>>>2<<2)|0;gGb(i|0,e|0,d|0)|0;f[n>>2]=m;e=i;d=i}else{e=i;m=i;d=i}}else{e=0;m=0;d=0}f[a>>2]=0;k=a+4|0;f[k>>2]=0;l=a+8|0;f[l>>2]=0;do if((e|0)!=(m|0)){h=p+11|0;i=p+8|0;j=p+4|0;while(1){switch(f[e>>2]|0){case 1:{c=151170;break}case 2:{c=151182;break}case 3:{c=151195;break}default:c=151209}f[p>>2]=0;f[p+4>>2]=0;f[p+8>>2]=0;g=Zob(c)|0;if(g>>>0>4294967279){t=17;break}if(g>>>0<11){b[h>>0]=g;if(!g)d=p;else{d=p;t=21}}else{t=g+16&-16;d=LDb(t)|0;f[p>>2]=d;f[i>>2]=t|-2147483648;f[j>>2]=g;t=21}if((t|0)==21){t=0;gGb(d|0,c|0,g|0)|0}b[d+g>>0]=0;d=f[k>>2]|0;if(d>>>0>=(f[l>>2]|0)>>>0){Ur(a,p);if((b[h>>0]|0)<0)NDb(f[p>>2]|0)}else{f[d>>2]=f[p>>2];f[d+4>>2]=f[p+4>>2];f[d+8>>2]=f[p+8>>2];f[p>>2]=0;f[p+4>>2]=0;f[p+8>>2]=0;f[k>>2]=(f[k>>2]|0)+12}e=e+4|0;if((e|0)==(m|0)){t=8;break}}if((t|0)==8){s=f[o>>2]|0;r=s;break}else if((t|0)==17)TDb(p)}else{r=e;s=d}while(0);if(!r){u=q;return}f[n>>2]=r;NDb(s);u=q;return}function Ur(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;j=a+4|0;d=f[a>>2]|0;h=((f[j>>2]|0)-d|0)/12|0;e=h+1|0;if(e>>>0>357913941)KEb(a);k=a+8|0;i=((f[k>>2]|0)-d|0)/12|0;g=i<<1;g=i>>>0<178956970?(g>>>0<e>>>0?e:g):357913941;do if(g)if(g>>>0>357913941){k=mb(8)|0;RDb(k,238482);f[k>>2]=144484;qb(k|0,84192,1464)}else{d=LDb(g*12|0)|0;break}else d=0;while(0);e=d+(h*12|0)|0;i=d+(g*12|0)|0;f[e>>2]=f[c>>2];f[e+4>>2]=f[c+4>>2];f[e+8>>2]=f[c+8>>2];f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;c=e+12|0;h=f[a>>2]|0;d=f[j>>2]|0;if((d|0)==(h|0)){g=h;d=h}else{do{e=e+-12|0;d=d+-12|0;f[e>>2]=f[d>>2];f[e+4>>2]=f[d+4>>2];f[e+8>>2]=f[d+8>>2];f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0}while((d|0)!=(h|0));g=f[a>>2]|0;d=f[j>>2]|0}f[a>>2]=e;f[j>>2]=c;f[k>>2]=i;e=g;if((d|0)!=(e|0))do{d=d+-12|0;if((b[d+11>>0]|0)<0)NDb(f[d>>2]|0)}while((d|0)!=(e|0));if(!g)return;NDb(g);return}function Vr(a){a=a|0;NDb(a);return}function Wr(a){a=a|0;a=LDb(8)|0;f[a>>2]=86760;return a|0}function Xr(a,b){a=a|0;b=b|0;f[b>>2]=86760;return}function Yr(a){a=a|0;return}function Zr(a){a=a|0;NDb(a);return}function _r(a){a=a|0;var c=0,d=0,e=0,g=0,h=0;e=u;u=u+16|0;a=e;c=LDb(32)|0;f[a>>2]=c;f[a+8>>2]=-2147483616;f[a+4>>2]=20;d=c;g=147200;h=d+20|0;do{b[d>>0]=b[g>>0]|0;d=d+1|0;g=g+1|0}while((d|0)<(h|0));b[c+20>>0]=0;ql(a);if((b[a+11>>0]|0)>=0){u=e;return}NDb(f[a>>2]|0);u=e;return}function $r(a,b){a=a|0;b=b|0;return ((f[b+4>>2]|0)==151583?a+4|0:0)|0}function as(a){a=a|0;return 57640}function bs(a){a=a|0;NDb(a);return}function cs(a){a=a|0;var b=0;b=LDb(8)|0;f[b>>2]=86804;f[b+4>>2]=f[a+4>>2];return b|0}function ds(a,b){a=a|0;b=b|0;f[b>>2]=86804;f[b+4>>2]=f[a+4>>2];return}function es(a){a=a|0;return}function fs(a){a=a|0;NDb(a);return}function gs(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;js(a,b+4|0,c,d);return}function hs(a,b){a=a|0;b=b|0;return ((f[b+4>>2]|0)==151986?a+4|0:0)|0}function is(a){a=a|0;return 57664}function js(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=u;u=u+48|0;j=m+16|0;h=m;k=m+36|0;l=m+24|0;i=f[c>>2]|0;g=e+4|0;c=f[e>>2]|0;if((f[g>>2]|0)==(c|0)){f[h>>2]=(b[d+11>>0]|0)<0?f[d>>2]|0:d;f[h+4>>2]=0;f[h+8>>2]=1;f[h+12>>2]=2;Sq(i,145376,h);f[a>>2]=0;l=a+4|0;f[l>>2]=0;l=a+8|0;f[l>>2]=0;u=m;return}VDb(k,c);c=f[e>>2]|0;if(((f[g>>2]|0)-c|0)!=12){VDb(l,c+12|0);h=f[(f[i>>2]|0)+92>>2]|0;c=Cm(h,l)|0;if((c|0)==(h+4|0)){c=l+11|0;h=(b[c>>0]|0)<0?f[l>>2]|0:l;f[j>>2]=(b[k+11>>0]|0)<0?f[k>>2]|0:k;f[j+4>>2]=h;Sq(i,151951,j)}else{ks(f[(f[i>>2]|0)+84>>2]|0,k,c+28|0)|0;c=l+11|0}if((b[c>>0]|0)<0)NDb(f[l>>2]|0)}else ks(f[(f[i>>2]|0)+84>>2]|0,k,0)|0;if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);f[a>>2]=0;l=a+4|0;f[l>>2]=0;l=a+8|0;f[l>>2]=0;u=m;return}function ks(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=u;u=u+160|0;i=o+8|0;h=o;k=o+120|0;l=o+32|0;j=o+12|0;m=LDb(408)|0;j4(m);n=m+8|0;f[n>>2]=(f[n>>2]|0)+1;Vk[f[(f[m>>2]|0)+136>>2]&1023](m,c);e=ls(a,c)|0;g=f[e>>2]|0;if(((g|0)!=(m|0)?(f[e>>2]=m,f[n>>2]=(f[n>>2]|0)+1,g|0):0)?(p=g+8|0,e=f[p>>2]|0,f[p>>2]=e-1,(e|0)==1):0)X4(g,1,1);do if(d|0){e=aHa(0)|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;p=k+11|0;b[p>>0]=4;f[k>>2]=1952936815;b[k+4>>0]=0;e=YHa(e,k)|0;if((b[p>>0]|0)<0)NDb(f[k>>2]|0);if(!e){f[i>>2]=(b[c+11>>0]|0)<0?f[c>>2]|0:c;ms(a,148367,i);break}Otb(k);f[k>>2]=84596;p=b[d+11>>0]|0;g=p<<24>>24<0;i=g?f[d>>2]|0:d;p=i+(g?f[d+4>>2]|0:p&255)|0;f[k+8>>2]=i;f[k+12>>2]=i;f[k+16>>2]=p;p=l+8|0;f[l>>2]=141244;f[p>>2]=141264;f[l+4>>2]=0;Itb(p,k);f[l+80>>2]=0;f[l+84>>2]=-1;al[f[(f[e>>2]|0)+260>>2]&255](j,e,l,0);if((f[j>>2]|1|0)==5){e=AXa(j)|0;if(!e)e=0;else{p=e+8|0;f[p>>2]=(f[p>>2]|0)+1}wk[f[(f[m>>2]|0)+228>>2]&1023](m,e)|0}else{f[h>>2]=(b[c+11>>0]|0)<0?f[c>>2]|0:c;ms(a,148165,h);e=0}g=j+16|0;c=f[g>>2]|0;if(c|0?(i=c+8|0,p=f[i>>2]|0,f[i>>2]=p-1,(p|0)==1):0)X4(c,1,1);f[g>>2]=0;g=j+4|0;if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);ftb(l);xsb(k);if(e|0?(l=e+8|0,p=f[l>>2]|0,f[l>>2]=p-1,(p|0)==1):0)X4(e,1,1)}while(0);Vk[f[(f[m>>2]|0)+212>>2]&1023](m,a+24|0);p=f[n>>2]|0;f[n>>2]=p-1;if((p|0)!=1){u=o;return m|0}X4(m,1,1);u=o;return m|0}function ls(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;h=u;u=u+16|0;d=h;e=zq(a,d,b)|0;c=f[e>>2]|0;if(c|0){a=c;a=a+28|0;u=h;return a|0}g=LDb(32)|0;VDb(g+16|0,b);f[g+28>>2]=0;c=f[d>>2]|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=c;f[e>>2]=g;c=f[f[a>>2]>>2]|0;if(!c)c=g;else{f[a>>2]=c;c=f[e>>2]|0}Aq(f[a+4>>2]|0,c);a=a+8|0;f[a>>2]=(f[a>>2]|0)+1;a=g;a=a+28|0;u=h;return a|0}function ms(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0;k=u;u=u+32|0;i=k+16|0;j=k;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;g=Zob(c)|0;if(g>>>0>4294967279)TDb(i);if(g>>>0<11){b[i+11>>0]=g;if(!g)e=i;else{e=i;h=6}}else{h=g+16&-16;e=LDb(h)|0;f[i>>2]=e;f[i+8>>2]=h|-2147483648;f[i+4>>2]=g;h=6}if((h|0)==6)gGb(e|0,c|0,g|0)|0;b[e+g>>0]=0;e=Cm(a+12|0,i)|0;if((b[i+11>>0]|0)<0)NDb(f[i>>2]|0);if((e|0)==(a+16|0)){dsb(c)|0;u=k;return}VDb(i,e+28|0);f[j>>2]=d;d=i+11|0;lsb((b[d>>0]|0)<0?f[i>>2]|0:i,j)|0;fsb(10)|0;if((b[d>>0]|0)<0)NDb(f[i>>2]|0);u=k;return}function ns(a){a=a|0;NDb(a);return}function os(a){a=a|0;var b=0;b=LDb(8)|0;f[b>>2]=86848;f[b+4>>2]=f[a+4>>2];return b|0}function ps(a,b){a=a|0;b=b|0;f[b>>2]=86848;f[b+4>>2]=f[a+4>>2];return}function qs(a){a=a|0;return}function rs(a){a=a|0;NDb(a);return}function ss(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;vs(a,b+4|0,c,d);return}function ts(a,b){a=a|0;b=b|0;return ((f[b+4>>2]|0)==152386?a+4|0:0)|0}function us(a){a=a|0;return 57688}function vs(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0.0;k=u;u=u+32|0;h=k;j=k+12|0;i=f[c>>2]|0;c=f[e>>2]|0;g=(f[e+4>>2]|0)-c|0;if((g|0)!=24){f[h>>2]=(b[d+11>>0]|0)<0?f[d>>2]|0:d;f[h+4>>2]=(g|0)/12|0;f[h+8>>2]=2;Sq(i,145100,h);f[a>>2]=0;j=a+4|0;f[j>>2]=0;j=a+8|0;f[j>>2]=0;u=k;return}VDb(j,c);c=(f[e>>2]|0)+12|0;if((b[c+11>>0]|0)<0)c=f[c>>2]|0;l=+Wqb(c);ws(f[(f[i>>2]|0)+84>>2]|0,j,l)|0;if((b[j+11>>0]|0)<0)NDb(f[j>>2]|0);f[a>>2]=0;j=a+4|0;f[j>>2]=0;j=a+8|0;f[j>>2]=0;u=k;return}function ws(a,b,c){a=a|0;b=b|0;c=+c;var d=0,e=0,g=0;e=LDb(48)|0;BCa(e);d=e+12|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;f[e+24>>2]=2;f[e+28>>2]=0;f[e>>2]=117724;n[e+32>>2]=0.0;n[e+36>>2]=0.0;n[e+40>>2]=0.0;n[e+44>>2]=c;e=vl(e)|0;Vk[f[(f[e>>2]|0)+136>>2]&1023](e,b);b=ls(a,b)|0;d=f[b>>2]|0;if((d|0)!=(e|0)){f[b>>2]=e;if(e|0){b=e+8|0;f[b>>2]=(f[b>>2]|0)+1}if(d|0?(g=d+8|0,b=f[g>>2]|0,f[g>>2]=b-1,(b|0)==1):0)X4(d,1,1)}Vk[f[(f[e>>2]|0)+212>>2]&1023](e,a+24|0);return e|0}function xs(a){a=a|0;NDb(a);return}function ys(a){a=a|0;var b=0;b=LDb(8)|0;f[b>>2]=86892;f[b+4>>2]=f[a+4>>2];return b|0}function zs(a,b){a=a|0;b=b|0;f[b>>2]=86892;f[b+4>>2]=f[a+4>>2];return}function As(a){a=a|0;return}function Bs(a){a=a|0;NDb(a);return}function Cs(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Fs(a,b+4|0,c,d);return}function Ds(a,b){a=a|0;b=b|0;return ((f[b+4>>2]|0)==152786?a+4|0:0)|0}function Es(a){a=a|0;return 57712}function Fs(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0;l=u;u=u+48|0;k=l;i=l+24|0;j=l+12|0;g=f[c>>2]|0;h=f[e>>2]|0;c=(f[e+4>>2]|0)-h|0;if((c|0)==12){VDb(i,h);d=f[(f[g>>2]|0)+84>>2]|0;k=Cq(d,i)|0;if((k|0)!=(d+4|0)?f[k+28>>2]|0:0){f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;b[j+11>>0]=1;b[j>>0]=49;b[j+1>>0]=0;f[a>>2]=0;k=a+4|0;f[k>>2]=0;h=a+8|0;f[h>>2]=0;d=LDb(12)|0;f[k>>2]=d;f[a>>2]=d;f[h>>2]=d+12;VDb(d,j);f[k>>2]=d+12;if((b[j+11>>0]|0)<0)NDb(f[j>>2]|0);if((b[i+11>>0]|0)<0)NDb(f[i>>2]|0);u=l;return}if((b[i+11>>0]|0)<0)NDb(f[i>>2]|0)}else{f[k>>2]=(b[d+11>>0]|0)<0?f[d>>2]|0:d;f[k+4>>2]=(c|0)/12|0;f[k+8>>2]=1;Sq(g,145100,k)}f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;u=l;return}function Gs(a){a=a|0;NDb(a);return}function Hs(a){a=a|0;var b=0;b=LDb(8)|0;f[b>>2]=86936;f[b+4>>2]=f[a+4>>2];return b|0}function Is(a,b){a=a|0;b=b|0;f[b>>2]=86936;f[b+4>>2]=f[a+4>>2];return}function Js(a){a=a|0;return}function Ks(a){a=a|0;NDb(a);return}function Ls(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Os(a,b+4|0,c,d);return}function Ms(a,b){a=a|0;b=b|0;return ((f[b+4>>2]|0)==153186?a+4|0:0)|0}function Ns(a){a=a|0;return 57736}function Os(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=u;u=u+48|0;k=n+16|0;h=n;l=n+36|0;m=n+24|0;i=f[c>>2]|0;g=f[e>>2]|0;c=(f[e+4>>2]|0)-g|0;if((c|0)!=24){f[h>>2]=(b[d+11>>0]|0)<0?f[d>>2]|0:d;f[h+4>>2]=(c|0)/12|0;f[h+8>>2]=2;Sq(i,145100,h);f[a>>2]=0;m=a+4|0;f[m>>2]=0;m=a+8|0;f[m>>2]=0;u=n;return}VDb(l,g);h=f[(f[i>>2]|0)+84>>2]|0;c=Cq(h,l)|0;if((c|0)==(h+4|0)){g=0;d=0}else{d=f[c+28>>2]|0;g=d}VDb(m,(f[e>>2]|0)+12|0);e=f[(f[i>>2]|0)+84>>2]|0;c=Cq(e,m)|0;if((c|0)!=(e+4|0)?(j=f[c+28>>2]|0,(g|0)!=0&(j|0)!=0):0){wk[f[(f[d>>2]|0)+228>>2]&1023](g,j)|0;c=m+11|0}else{c=m+11|0;j=(b[l+11>>0]|0)<0?f[l>>2]|0:l;f[k>>2]=(b[c>>0]|0)<0?f[m>>2]|0:m;f[k+4>>2]=j;Sq(i,145579,k)}if((b[c>>0]|0)<0)NDb(f[m>>2]|0);if((b[l+11>>0]|0)<0)NDb(f[l>>2]|0);f[a>>2]=0;m=a+4|0;f[m>>2]=0;m=a+8|0;f[m>>2]=0;u=n;return}function Ps(a){a=a|0;NDb(a);return}function Qs(a){a=a|0;var b=0;b=LDb(8)|0;f[b>>2]=86980;f[b+4>>2]=f[a+4>>2];return b|0}function Rs(a,b){a=a|0;b=b|0;f[b>>2]=86980;f[b+4>>2]=f[a+4>>2];return}function Ss(a){a=a|0;return}function Ts(a){a=a|0;NDb(a);return}function Us(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Xs(a,b+4|0,c,d);return}function Vs(a,b){a=a|0;b=b|0;return ((f[b+4>>2]|0)==153586?a+4|0:0)|0}function Ws(a){a=a|0;return 57760}function Xs(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=u;u=u+48|0;k=m+16|0;h=m;l=m+24|0;i=f[c>>2]|0;c=f[e>>2]|0;g=(f[e+4>>2]|0)-c|0;if((g|0)!=24){f[h>>2]=(b[d+11>>0]|0)<0?f[d>>2]|0:d;f[h+4>>2]=(g|0)/12|0;f[h+8>>2]=2;Sq(i,145100,h);f[a>>2]=0;l=a+4|0;f[l>>2]=0;l=a+8|0;f[l>>2]=0;u=m;return}VDb(l,c);c=(f[e>>2]|0)+12|0;if((b[c+11>>0]|0)<0)c=f[c>>2]|0;c=$pb(c)|0;h=f[(f[i>>2]|0)+84>>2]|0;g=Cq(h,l)|0;if((g|0)!=(h+4|0)?(j=f[g+28>>2]|0,(j|0)!=0):0){k=j+116|0;f[k>>2]=f[k>>2]&~c;c=l+11|0}else{j=l+11|0;h=(b[j>>0]|0)<0?f[l>>2]|0:l;f[k>>2]=c;f[k+4>>2]=h;Sq(i,145742,k);c=j}if((b[c>>0]|0)<0)NDb(f[l>>2]|0);f[a>>2]=0;l=a+4|0;f[l>>2]=0;l=a+8|0;f[l>>2]=0;u=m;return}function Ys(a){a=a|0;NDb(a);return}function Zs(a){a=a|0;var b=0;b=LDb(8)|0;f[b>>2]=87024;f[b+4>>2]=f[a+4>>2];return b|0}function _s(a,b){a=a|0;b=b|0;f[b>>2]=87024;f[b+4>>2]=f[a+4>>2];return}function $s(a){a=a|0;return}function at(a){a=a|0;NDb(a);return}function bt(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;et(a,b+4|0,c,d);return}function ct(a,b){a=a|0;b=b|0;return ((f[b+4>>2]|0)==153987?a+4|0:0)|0}function dt(a){a=a|0;return 57784}function et(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=u;u=u+48|0;j=n+16|0;i=n;l=n+36|0;m=n+24|0;h=f[c>>2]|0;g=f[e>>2]|0;c=(f[e+4>>2]|0)-g|0;if((c|0)!=24){f[i>>2]=(b[d+11>>0]|0)<0?f[d>>2]|0:d;f[i+4>>2]=(c|0)/12|0;f[i+8>>2]=2;Sq(h,145100,i);f[a>>2]=0;m=a+4|0;f[m>>2]=0;m=a+8|0;f[m>>2]=0;u=n;return}VDb(l,g);VDb(m,(f[e>>2]|0)+12|0);i=f[(f[h>>2]|0)+84>>2]|0;c=Cq(i,l)|0;if((c|0)!=(i+4|0)?(k=f[c+28>>2]|0,(k|0)!=0):0){j=f[(f[h>>2]|0)+88>>2]|0;c=ft(j,m)|0;if((c|0)==(j+4|0))c=0;else c=f[c+28>>2]|0;$A(k,c);c=m+11|0}else{c=m+11|0;k=(b[c>>0]|0)<0?f[m>>2]|0:m;f[j>>2]=(b[l+11>>0]|0)<0?f[l>>2]|0:l;f[j+4>>2]=k;Sq(h,145903,j)}if((b[c>>0]|0)<0)NDb(f[m>>2]|0);if((b[l+11>>0]|0)<0)NDb(f[l>>2]|0);f[a>>2]=0;m=a+4|0;f[m>>2]=0;m=a+8|0;f[m>>2]=0;u=n;return}function ft(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=a+4|0;d=f[m>>2]|0;do if(d|0){l=b[c+11>>0]|0;k=l<<24>>24<0;l=k?f[c+4>>2]|0:l&255;k=k?f[c>>2]|0:c;a=m;do{e=d+16|0;h=b[e+11>>0]|0;g=h<<24>>24<0;h=g?f[d+20>>2]|0:h&255;i=l>>>0<h>>>0;c=i?l:h;if((c|0)!=0?(j=ipb(g?f[e>>2]|0:e,k,c)|0,(j|0)!=0):0)c=j;else c=h>>>0<l>>>0?-1:i&1;i=(c|0)<0;a=i?a:d;d=f[(i?d+4|0:d)>>2]|0}while((d|0)!=0);if((a|0)!=(m|0)){d=a+16|0;g=b[d+11>>0]|0;e=g<<24>>24<0;g=e?f[a+20>>2]|0:g&255;c=g>>>0<l>>>0?g:l;if(c|0?(n=ipb(k,e?f[d>>2]|0:d,c)|0,n|0):0){if((n|0)<0)break;return a|0}if(l>>>0>=g>>>0){n=a;return n|0}}}while(0);n=m;return n|0}function gt(a){a=a|0;NDb(a);return}function ht(a){a=a|0;var b=0;b=LDb(8)|0;f[b>>2]=87068;f[b+4>>2]=f[a+4>>2];return b|0}function it(a,b){a=a|0;b=b|0;f[b>>2]=87068;f[b+4>>2]=f[a+4>>2];return}function jt(a){a=a|0;return}function kt(a){a=a|0;NDb(a);return}function lt(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ot(a,b+4|0,c,d);return}function mt(a,b){a=a|0;b=b|0;return ((f[b+4>>2]|0)==154389?a+4|0:0)|0}function nt(a){a=a|0;return 57808}function ot(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0.0,h=0.0,i=0,j=0,k=0,l=0,m=0,o=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0.0;w=u;u=u+96|0;l=w+40|0;m=w+32|0;q=w+24|0;o=w+16|0;j=w;v=w+80|0;t=w+44|0;i=f[c>>2]|0;k=e+4|0;c=f[e>>2]|0;if((f[k>>2]|0)!=(c|0)){VDb(v,c);j=f[(f[i>>2]|0)+84>>2]|0;c=Cq(j,v)|0;do if((c|0)!=(j+4|0)?(r=f[c+28>>2]|0,(r|0)!=0):0){l=f[e>>2]|0;d=l;if(((f[k>>2]|0)-l|0)==48){c=d+12|0;if((b[c+11>>0]|0)<0)c=f[c>>2]|0;h=+Wqb(c);c=d+24|0;if((b[c+11>>0]|0)<0)c=f[c>>2]|0;g=+Wqb(c);c=d+36|0;if((b[c+11>>0]|0)<0)c=f[c>>2]|0;x=+Wqb(c);n[t>>2]=h;n[t+4>>2]=g;n[t+8>>2]=x;yl(r,t);c=v+11|0;break}else{h=+p[r+248>>3];x=+p[r+256>>3];p[o>>3]=+p[r+240>>3];tl(t,148803,o);p[q>>3]=h;tl(t+12|0,148803,q);p[m>>3]=x;tl(t+24|0,148803,m);f[a>>2]=0;c=a+4|0;f[c>>2]=0;r=a+8|0;f[r>>2]=0;s=LDb(36)|0;f[c>>2]=s;f[a>>2]=s;f[r>>2]=s+36;VDb(s,t);a=s+12|0;f[c>>2]=a;VDb(a,t+12|0);a=s+24|0;f[c>>2]=a;VDb(a,t+24|0);f[c>>2]=s+36;c=t+24|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);c=t+12|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);if((b[t+11>>0]|0)<0)NDb(f[t>>2]|0);if((b[v+11>>0]|0)<0)NDb(f[v>>2]|0);u=w;return}}else s=21;while(0);if((s|0)==21){c=v+11|0;f[l>>2]=(b[c>>0]|0)<0?f[v>>2]|0:v;Sq(i,146092,l)}if((b[c>>0]|0)<0)NDb(f[v>>2]|0)}else{f[j>>2]=(b[d+11>>0]|0)<0?f[d>>2]|0:d;f[j+4>>2]=0;f[j+8>>2]=1;f[j+12>>2]=4;Sq(i,145376,j)}f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;u=w;return}function pt(a){a=a|0;NDb(a);return}function qt(a){a=a|0;var b=0;b=LDb(8)|0;f[b>>2]=87112;f[b+4>>2]=f[a+4>>2];return b|0}function rt(a,b){a=a|0;b=b|0;f[b>>2]=87112;f[b+4>>2]=f[a+4>>2];return}function st(a){a=a|0;return}function tt(a){a=a|0;NDb(a);return}function ut(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;xt(a,b+4|0,c,d);return}function vt(a,b){a=a|0;b=b|0;return ((f[b+4>>2]|0)==154791?a+4|0:0)|0}function wt(a){a=a|0;return 57832}function xt(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0.0,h=0.0,i=0,j=0,k=0,l=0,m=0,o=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0.0,y=0.0,z=0.0,A=0.0;w=u;u=u+96|0;l=w+80|0;m=w+72|0;q=w+64|0;o=w+56|0;j=w+40|0;t=w;v=w+84|0;i=f[c>>2]|0;k=e+4|0;c=f[e>>2]|0;if((f[k>>2]|0)!=(c|0)){VDb(v,c);j=f[(f[i>>2]|0)+84>>2]|0;c=Cq(j,v)|0;do if((c|0)!=(j+4|0)?(r=f[c+28>>2]|0,(r|0)!=0):0){l=f[e>>2]|0;d=l;if(((f[k>>2]|0)-l|0)==48){c=d+12|0;if((b[c+11>>0]|0)<0)c=f[c>>2]|0;h=+Wqb(c);c=d+24|0;if((b[c+11>>0]|0)<0)c=f[c>>2]|0;g=+Wqb(c);c=d+36|0;if((b[c+11>>0]|0)<0)c=f[c>>2]|0;x=+Wqb(c);n[t>>2]=h;n[t+4>>2]=g;n[t+8>>2]=x;zl(r,t);c=v+11|0;break}else{OWa(t,r+144|0);z=+p[t>>3];g=+p[t+8>>3];y=+p[t+16>>3];h=+p[t+24>>3];A=y*y;x=+S(+((z*g+y*h)*2.0),+(1.0-(g*g+A)*2.0))*180.0/3.141592653589793;A=180.0-+S(+((g*y+z*h)*2.0),+(1.0-(A+h*h)*2.0))*180.0/3.141592653589793;p[o>>3]=A;tl(t,148803,o);h=+Q(+((z*y-g*h)*2.0))*180.0/3.141592653589793;p[q>>3]=h;tl(t+12|0,148803,q);p[m>>3]=x<0.0?x+360.0:x;tl(t+24|0,148803,m);f[a>>2]=0;c=a+4|0;f[c>>2]=0;r=a+8|0;f[r>>2]=0;s=LDb(36)|0;f[c>>2]=s;f[a>>2]=s;f[r>>2]=s+36;VDb(s,t);a=s+12|0;f[c>>2]=a;VDb(a,t+12|0);a=s+24|0;f[c>>2]=a;VDb(a,t+24|0);f[c>>2]=s+36;c=t+24|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);c=t+12|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);if((b[t+11>>0]|0)<0)NDb(f[t>>2]|0);if((b[v+11>>0]|0)<0)NDb(f[v>>2]|0);u=w;return}}else s=21;while(0);if((s|0)==21){c=v+11|0;f[l>>2]=(b[c>>0]|0)<0?f[v>>2]|0:v;Sq(i,146295,l)}if((b[c>>0]|0)<0)NDb(f[v>>2]|0)}else{f[j>>2]=(b[d+11>>0]|0)<0?f[d>>2]|0:d;f[j+4>>2]=0;f[j+8>>2]=1;f[j+12>>2]=4;Sq(i,145376,j)}f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;u=w;return}function yt(a){a=a|0;NDb(a);return}function zt(a){a=a|0;var b=0;b=LDb(8)|0;f[b>>2]=87156;f[b+4>>2]=f[a+4>>2];return b|0}function At(a,b){a=a|0;b=b|0;f[b>>2]=87156;f[b+4>>2]=f[a+4>>2];return}function Bt(a){a=a|0;return}function Ct(a){a=a|0;NDb(a);return}function Dt(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Gt(a,b+4|0,c,d);return}function Et(a,b){a=a|0;b=b|0;return ((f[b+4>>2]|0)==155193?a+4|0:0)|0}function Ft(a){a=a|0;return 57856}function Gt(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0;k=u;u=u+32|0;i=k;j=k+12|0;g=f[c>>2]|0;h=f[e>>2]|0;c=(f[e+4>>2]|0)-h|0;if((c|0)!=12){f[i>>2]=(b[d+11>>0]|0)<0?f[d>>2]|0:d;f[i+4>>2]=(c|0)/12|0;f[i+8>>2]=1;Sq(g,145100,i);f[a>>2]=0;j=a+4|0;f[j>>2]=0;j=a+8|0;f[j>>2]=0;u=k;return}VDb(j,h);e=f[(f[g>>2]|0)+88>>2]|0;c=LDb(160)|0;s9(c);e=Ht(e,j)|0;g=f[e>>2]|0;if(((g|0)!=(c|0)?(f[e>>2]=c,i=c+8|0,f[i>>2]=(f[i>>2]|0)+1,g|0):0)?(d=g+8|0,i=f[d>>2]|0,f[d>>2]=i-1,(i|0)==1):0)X4(g,1,1);if((b[j+11>>0]|0)<0)NDb(f[j>>2]|0);f[a>>2]=0;j=a+4|0;f[j>>2]=0;j=a+8|0;f[j>>2]=0;u=k;return}function Ht(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;h=u;u=u+16|0;d=h;e=It(a,d,b)|0;c=f[e>>2]|0;if(c|0){a=c;a=a+28|0;u=h;return a|0}g=LDb(32)|0;VDb(g+16|0,b);f[g+28>>2]=0;c=f[d>>2]|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=c;f[e>>2]=g;c=f[f[a>>2]>>2]|0;if(!c)c=g;else{f[a>>2]=c;c=f[e>>2]|0}Aq(f[a+4>>2]|0,c);a=a+8|0;f[a>>2]=(f[a>>2]|0)+1;a=g;a=a+28|0;u=h;return a|0}function It(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;e=a+4|0;h=f[e>>2]|0;if(!h){f[c>>2]=e;o=e;return o|0}m=b[d+11>>0]|0;l=m<<24>>24<0;m=l?f[d+4>>2]|0:m&255;l=l?f[d>>2]|0:d;g=a+4|0;e=h;while(1){d=e+16|0;h=b[d+11>>0]|0;a=h<<24>>24<0;h=a?f[e+20>>2]|0:h&255;k=h>>>0<m>>>0;j=k?h:m;i=(j|0)==0;if(!i?(n=a?f[d>>2]|0:d,o=ipb(l,n,j)|0,(o|0)!=0):0)if((o|0)<0)a=7;else{d=n;a=11}else if(m>>>0>=h>>>0)if(i)a=12;else{d=a?f[d>>2]|0:d;a=11}else a=7;if((a|0)==7){a=0;d=f[e>>2]|0;if(!d){a=8;break}else{g=e;e=d}}else if((a|0)==11){d=ipb(d,l,j)|0;if(d)if((d|0)<0)a=14;else{a=16;break}else a=12}if((a|0)==12)if(k)a=14;else{a=16;break}if((a|0)==14){d=e+4|0;a=f[d>>2]|0;if(!a){a=15;break}else{g=d;e=a}}}if((a|0)==8){f[c>>2]=e;o=e;return o|0}else if((a|0)==15){f[c>>2]=e;o=d;return o|0}else if((a|0)==16){f[c>>2]=e;o=g;return o|0}return 0}function Jt(a){a=a|0;NDb(a);return}function Kt(a){a=a|0;var b=0;b=LDb(8)|0;f[b>>2]=87200;f[b+4>>2]=f[a+4>>2];return b|0}function Lt(a,b){a=a|0;b=b|0;f[b>>2]=87200;f[b+4>>2]=f[a+4>>2];return}function Mt(a){a=a|0;return}function Nt(a){a=a|0;NDb(a);return}function Ot(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Rt(a,b+4|0,c,d);return}function Pt(a,b){a=a|0;b=b|0;return ((f[b+4>>2]|0)==155595?a+4|0:0)|0}function Qt(a){a=a|0;return 57880}function Rt(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=u;u=u+64|0;k=o+16|0;i=o;l=o+52|0;m=o+40|0;n=o+28|0;h=f[c>>2]|0;c=f[e>>2]|0;g=(f[e+4>>2]|0)-c|0;if((g|0)!=36){f[i>>2]=(b[d+11>>0]|0)<0?f[d>>2]|0:d;f[i+4>>2]=(g|0)/12|0;f[i+8>>2]=3;Sq(h,145100,i);f[a>>2]=0;n=a+4|0;f[n>>2]=0;n=a+8|0;f[n>>2]=0;u=o;return}VDb(l,c);VDb(m,(f[e>>2]|0)+12|0);VDb(n,(f[e>>2]|0)+24|0);i=f[(f[h>>2]|0)+88>>2]|0;c=ft(i,l)|0;if((c|0)!=(i+4|0)?(j=f[c+28>>2]|0,(j|0)!=0):0){ufa(j,Al(m,n)|0,0);c=n+11|0}else{i=b[m+11>>0]|0;i=i<<24>>24<0?f[m+4>>2]|0:i&255;c=n+11|0;j=b[c>>0]|0;j=j<<24>>24<0?f[n+4>>2]|0:j&255;f[k>>2]=(b[l+11>>0]|0)<0?f[l>>2]|0:l;f[k+4>>2]=i;f[k+8>>2]=j;Sq(h,146532,k)}if((b[c>>0]|0)<0)NDb(f[n>>2]|0);if((b[m+11>>0]|0)<0)NDb(f[m>>2]|0);if((b[l+11>>0]|0)<0)NDb(f[l>>2]|0);f[a>>2]=0;n=a+4|0;f[n>>2]=0;n=a+8|0;f[n>>2]=0;u=o;return}function St(a){a=a|0;NDb(a);return}function Tt(a){a=a|0;var b=0;b=LDb(8)|0;f[b>>2]=87244;f[b+4>>2]=f[a+4>>2];return b|0}function Ut(a,b){a=a|0;b=b|0;f[b>>2]=87244;f[b+4>>2]=f[a+4>>2];return}function Vt(a){a=a|0;return}function Wt(a){a=a|0;NDb(a);return}function Xt(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;_t(a,b+4|0,c,d);return}function Yt(a,b){a=a|0;b=b|0;return ((f[b+4>>2]|0)==155997?a+4|0:0)|0}function Zt(a){a=a|0;return 57904}function _t(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0.0,h=0,i=0.0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0.0;r=u;u=u+64|0;m=r+16|0;k=r;p=r+48|0;q=r+36|0;o=r+24|0;j=f[c>>2]|0;c=f[e>>2]|0;h=(f[e+4>>2]|0)-c|0;if((h|0)!=60){f[k>>2]=(b[d+11>>0]|0)<0?f[d>>2]|0:d;f[k+4>>2]=(h|0)/12|0;f[k+8>>2]=5;Sq(j,145100,k);f[a>>2]=0;q=a+4|0;f[q>>2]=0;q=a+8|0;f[q>>2]=0;u=r;return}VDb(p,c);VDb(q,(f[e>>2]|0)+12|0);k=f[(f[j>>2]|0)+88>>2]|0;c=ft(k,p)|0;if((c|0)!=(k+4|0)?(l=f[c+28>>2]|0,(l|0)!=0):0){d=Lsa(l,q,35665,1)|0;h=f[e>>2]|0;c=h+24|0;if((b[c+11>>0]|0)<0)c=f[c>>2]|0;i=+Wqb(c);c=h+36|0;if((b[c+11>>0]|0)<0)c=f[c>>2]|0;g=+Wqb(c);c=h+48|0;if((b[c+11>>0]|0)<0)c=f[c>>2]|0;s=+Wqb(c);n[o>>2]=i;n[o+4>>2]=g;n[o+8>>2]=s;QDa(d,o)|0;c=q+11|0}else{c=q+11|0;o=(b[c>>0]|0)<0?f[q>>2]|0:q;f[m>>2]=(b[p+11>>0]|0)<0?f[p>>2]|0:p;f[m+4>>2]=o;Sq(j,146723,m)}if((b[c>>0]|0)<0)NDb(f[q>>2]|0);if((b[p+11>>0]|0)<0)NDb(f[p>>2]|0);f[a>>2]=0;q=a+4|0;f[q>>2]=0;q=a+8|0;f[q>>2]=0;u=r;return}function $t(a){a=a|0;NDb(a);return}function au(a){a=a|0;var b=0;b=LDb(8)|0;f[b>>2]=87288;f[b+4>>2]=f[a+4>>2];return b|0}function bu(a,b){a=a|0;b=b|0;f[b>>2]=87288;f[b+4>>2]=f[a+4>>2];return}function cu(a){a=a|0;return}function du(a){a=a|0;NDb(a);return}function eu(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;hu(a,b+4|0,c,d);return}function fu(a,b){a=a|0;b=b|0;return ((f[b+4>>2]|0)==156399?a+4|0:0)|0}function gu(a){a=a|0;return 57928}function hu(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=u;u=u+64|0;j=n+16|0;h=n;k=n+48|0;l=n+36|0;m=n+24|0;i=f[c>>2]|0;c=f[e>>2]|0;g=(f[e+4>>2]|0)-c|0;if((g|0)!=36){f[h>>2]=(b[d+11>>0]|0)<0?f[d>>2]|0:d;f[h+4>>2]=(g|0)/12|0;f[h+8>>2]=3;Sq(i,145100,h);f[a>>2]=0;m=a+4|0;f[m>>2]=0;m=a+8|0;f[m>>2]=0;u=n;return}VDb(k,c);VDb(l,(f[e>>2]|0)+12|0);VDb(m,(f[e>>2]|0)+24|0);h=f[(f[i>>2]|0)+88>>2]|0;c=ft(h,k)|0;if((c|0)==(h+4|0))c=0;else c=f[c+28>>2]|0;h=f[(f[i>>2]|0)+92>>2]|0;g=Cm(h,m)|0;g=Cl((g|0)==(h+4|0)?0:g+28|0)|0;if((c|0)!=0&(g|0)!=0){RDa(Lsa(c,l,5124,1)|0,0)|0;Cfa(c,0,g,1);c=m+11|0}else{c=m+11|0;h=(b[c>>0]|0)<0?f[m>>2]|0:m;f[j>>2]=(b[k+11>>0]|0)<0?f[k>>2]|0:k;f[j+4>>2]=h;Sq(i,147066,j)}if((b[c>>0]|0)<0)NDb(f[m>>2]|0);if((b[l+11>>0]|0)<0)NDb(f[l>>2]|0);if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);f[a>>2]=0;m=a+4|0;f[m>>2]=0;m=a+8|0;f[m>>2]=0;u=n;return}function iu(a){a=a|0;NDb(a);return}function ju(a){a=a|0;var b=0;b=LDb(8)|0;f[b>>2]=87332;f[b+4>>2]=f[a+4>>2];return b|0}function ku(a,b){a=a|0;b=b|0;f[b>>2]=87332;f[b+4>>2]=f[a+4>>2];return}function lu(a){a=a|0;return}function mu(a){a=a|0;NDb(a);return}function nu(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;qu(a,b+4|0,c,d);return}function ou(a,b){a=a|0;b=b|0;return ((f[b+4>>2]|0)==156801?a+4|0:0)|0}function pu(a){a=a|0;return 57952}function qu(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0;g=u;u=u+48|0;d=g+8|0;i=g;e=g+16|0;h=f[c>>2]|0;f[i>>2]=f[(f[h>>2]|0)+72>>2];tl(e,150405,i);f[d>>2]=f[(f[h>>2]|0)+76>>2];tl(e+12|0,150405,d);f[a>>2]=0;d=a+4|0;f[d>>2]=0;h=a+8|0;f[h>>2]=0;c=LDb(24)|0;f[d>>2]=c;f[a>>2]=c;f[h>>2]=c+24;VDb(c,e);a=c+12|0;f[d>>2]=a;VDb(a,e+12|0);f[d>>2]=c+24;d=e+12|0;if((b[d+11>>0]|0)<0)NDb(f[d>>2]|0);if((b[e+11>>0]|0)>=0){u=g;return}NDb(f[e>>2]|0);u=g;return}function ru(a){a=a|0;NDb(a);return}function su(a){a=a|0;a=LDb(8)|0;f[a>>2]=87376;return a|0}function tu(a,b){a=a|0;b=b|0;f[b>>2]=87376;return}function uu(a){a=a|0;return}function vu(a){a=a|0;NDb(a);return}function wu(a){a=a|0;var c=0,d=0,e=0,g=0,h=0;e=u;u=u+16|0;a=e;c=LDb(16)|0;f[a>>2]=c;f[a+8>>2]=-2147483632;f[a+4>>2]=11;d=c;g=147477;h=d+11|0;do{b[d>>0]=b[g>>0]|0;d=d+1|0;g=g+1|0}while((d|0)<(h|0));b[c+11>>0]=0;ql(a);if((b[a+11>>0]|0)>=0){u=e;return}NDb(f[a>>2]|0);u=e;return}function xu(a,b){a=a|0;b=b|0;return ((f[b+4>>2]|0)==157164?a+4|0:0)|0}function yu(a){a=a|0;return 57976}function zu(a){a=a|0;return}function Au(a){a=a|0;NDb(a);return}function Bu(a){a=a|0;var b=0;b=LDb(8)|0;f[b>>2]=87420;f[b+4>>2]=f[a+4>>2];return b|0}function Cu(a,b){a=a|0;b=b|0;f[b>>2]=87420;f[b+4>>2]=f[a+4>>2];return}function Du(a){a=a|0;return}function Eu(a){a=a|0;NDb(a);return}function Fu(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Iu(a,b+4|0,c,d);return}function Gu(a,b){a=a|0;b=b|0;return ((f[b+4>>2]|0)==157533?a+4|0:0)|0}function Hu(a){a=a|0;return 58e3}function Iu(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0;l=u;u=u+48|0;h=l;j=l+28|0;k=l+16|0;c=f[c>>2]|0;i=e+4|0;g=f[e>>2]|0;if((f[i>>2]|0)==(g|0)){f[h>>2]=(b[d+11>>0]|0)<0?f[d>>2]|0:d;f[h+4>>2]=0;f[h+8>>2]=1;f[h+12>>2]=2;Sq(c,145376,h);f[a>>2]=0;k=a+4|0;f[k>>2]=0;k=a+8|0;f[k>>2]=0;u=l;return}VDb(j,g);g=f[(f[c>>2]|0)+92>>2]|0;eEb(Ju(g,j)|0,295620)|0;g=Ju(g,j)|0;c=f[e>>2]|0;if(((f[i>>2]|0)-c|0)==24){f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;rl(c+12|0,k)|0;c=g+11|0;if((b[c>>0]|0)<0){b[f[g>>2]>>0]=0;f[g+4>>2]=0}else{b[g>>0]=0;b[c>>0]=0}dEb(g,0);f[g>>2]=f[k>>2];f[g+4>>2]=f[k+4>>2];f[g+8>>2]=f[k+8>>2]}if((b[j+11>>0]|0)<0)NDb(f[j>>2]|0);f[a>>2]=0;k=a+4|0;f[k>>2]=0;k=a+8|0;f[k>>2]=0;u=l;return}function Ju(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;h=u;u=u+16|0;d=h;e=Dq(a,d,b)|0;c=f[e>>2]|0;if(c|0){a=c;a=a+28|0;u=h;return a|0}g=LDb(40)|0;VDb(g+16|0,b);c=g+28|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;c=f[d>>2]|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=c;f[e>>2]=g;c=f[f[a>>2]>>2]|0;if(!c)c=g;else{f[a>>2]=c;c=f[e>>2]|0}Aq(f[a+4>>2]|0,c);a=a+8|0;f[a>>2]=(f[a>>2]|0)+1;a=g;a=a+28|0;u=h;return a|0}function Ku(a){a=a|0;NDb(a);return}function Lu(a){a=a|0;var b=0;b=LDb(8)|0;f[b>>2]=87464;f[b+4>>2]=f[a+4>>2];return b|0}function Mu(a,b){a=a|0;b=b|0;f[b>>2]=87464;f[b+4>>2]=f[a+4>>2];return}function Nu(a){a=a|0;return}function Ou(a){a=a|0;NDb(a);return}function Pu(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Su(a,b+4|0,c,d);return}function Qu(a,b){a=a|0;b=b|0;return ((f[b+4>>2]|0)==157935?a+4|0:0)|0}function Ru(a){a=a|0;return 58024}function Su(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=u;u=u+48|0;j=m+16|0;h=m;l=m+32|0;k=m+20|0;g=f[c>>2]|0;i=e+4|0;c=f[e>>2]|0;if((f[i>>2]|0)!=(c|0)){VDb(l,c);h=f[(f[g>>2]|0)+92>>2]|0;d=Cm(h,l)|0;h=(d|0)==(h+4|0);d=h?0:d+28|0;do if(h){c=l+11|0;f[j>>2]=(b[c>>0]|0)<0?f[l>>2]|0:l;Sq(g,146912,j)}else{c=f[e>>2]|0;if(((f[i>>2]|0)-c|0)==24){f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;rl(c+12|0,k)|0;c=d+11|0;if((b[c>>0]|0)<0){b[f[d>>2]>>0]=0;f[d+4>>2]=0}else{b[d>>0]=0;b[c>>0]=0}dEb(d,0);f[d>>2]=f[k>>2];f[d+4>>2]=f[k+4>>2];f[d+8>>2]=f[k+8>>2];c=l+11|0;break};f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;sl(d,k)|0;f[a>>2]=0;j=a+4|0;f[j>>2]=0;e=a+8|0;f[e>>2]=0;i=LDb(12)|0;f[j>>2]=i;f[a>>2]=i;f[e>>2]=i+12;VDb(i,k);f[j>>2]=i+12;if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);if((b[l+11>>0]|0)<0)NDb(f[l>>2]|0);u=m;return}while(0);if((b[c>>0]|0)<0)NDb(f[l>>2]|0)}else{f[h>>2]=(b[d+11>>0]|0)<0?f[d>>2]|0:d;f[h+4>>2]=0;f[h+8>>2]=1;f[h+12>>2]=2;Sq(g,145376,h)}f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;u=m;return}function Tu(a){a=a|0;NDb(a);return}function Uu(a){a=a|0;var b=0;b=LDb(8)|0;f[b>>2]=87508;f[b+4>>2]=f[a+4>>2];return b|0}function Vu(a,b){a=a|0;b=b|0;f[b>>2]=87508;f[b+4>>2]=f[a+4>>2];return}function Wu(a){a=a|0;return}function Xu(a){a=a|0;NDb(a);return}function Yu(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;$u(a,b+4|0,c,d);return}function Zu(a,b){a=a|0;b=b|0;return ((f[b+4>>2]|0)==158337?a+4|0:0)|0}function _u(a){a=a|0;return 58048}function $u(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0;l=u;u=u+48|0;k=l;i=l+24|0;j=l+12|0;g=f[c>>2]|0;h=f[e>>2]|0;c=(f[e+4>>2]|0)-h|0;do if((c|0)==12){VDb(i,h);k=f[(f[g>>2]|0)+92>>2]|0;if((Cm(k,i)|0)==(k+4|0)){if((b[i+11>>0]|0)<0)NDb(f[i>>2]|0);break};f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;b[j+11>>0]=1;b[j>>0]=49;b[j+1>>0]=0;f[a>>2]=0;k=a+4|0;f[k>>2]=0;h=a+8|0;f[h>>2]=0;d=LDb(12)|0;f[k>>2]=d;f[a>>2]=d;f[h>>2]=d+12;VDb(d,j);f[k>>2]=d+12;if((b[j+11>>0]|0)<0)NDb(f[j>>2]|0);if((b[i+11>>0]|0)<0)NDb(f[i>>2]|0);u=l;return}else{f[k>>2]=(b[d+11>>0]|0)<0?f[d>>2]|0:d;f[k+4>>2]=(c|0)/12|0;f[k+8>>2]=1;Sq(g,145100,k)}while(0);f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;u=l;return}function av(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0;k=u;u=u+32|0;i=k+16|0;j=k;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;g=Zob(c)|0;if(g>>>0>4294967279)TDb(i);if(g>>>0<11){b[i+11>>0]=g;if(!g)e=i;else{e=i;h=6}}else{h=g+16&-16;e=LDb(h)|0;f[i>>2]=e;f[i+8>>2]=h|-2147483648;f[i+4>>2]=g;h=6}if((h|0)==6)gGb(e|0,c|0,g|0)|0;b[e+g>>0]=0;e=Cm(a,i)|0;if((b[i+11>>0]|0)<0)NDb(f[i>>2]|0);if((e|0)==(a+4|0)){dsb(c)|0;u=k;return}VDb(i,e+28|0);f[j>>2]=d;d=i+11|0;lsb((b[d>>0]|0)<0?f[i>>2]|0:i,j)|0;fsb(10)|0;if((b[d>>0]|0)<0)NDb(f[i>>2]|0);u=k;return}function bv(a,c){a=a|0;c=c|0;var d=0;if(!c)return;bv(a,f[c>>2]|0);bv(a,f[c+4>>2]|0);a=c+16|0;d=c+28|0;if((b[d+11>>0]|0)<0)NDb(f[d>>2]|0);if((b[a+11>>0]|0)<0)NDb(f[a>>2]|0);NDb(c);return}function cv(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;j=a+4|0;d=f[a>>2]|0;h=((f[j>>2]|0)-d|0)/12|0;e=h+1|0;if(e>>>0>357913941)KEb(a);k=a+8|0;i=((f[k>>2]|0)-d|0)/12|0;g=i<<1;g=i>>>0<178956970?(g>>>0<e>>>0?e:g):357913941;do if(g)if(g>>>0>357913941){k=mb(8)|0;RDb(k,238482);f[k>>2]=144484;qb(k|0,84192,1464)}else{d=LDb(g*12|0)|0;break}else d=0;while(0);e=d+(h*12|0)|0;i=d+(g*12|0)|0;VDb(e,c);c=e+12|0;h=f[a>>2]|0;d=f[j>>2]|0;if((d|0)==(h|0)){g=h;d=h}else{do{e=e+-12|0;d=d+-12|0;f[e>>2]=f[d>>2];f[e+4>>2]=f[d+4>>2];f[e+8>>2]=f[d+8>>2];f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0}while((d|0)!=(h|0));g=f[a>>2]|0;d=f[j>>2]|0}f[a>>2]=e;f[j>>2]=c;f[k>>2]=i;e=g;if((d|0)!=(e|0))do{d=d+-12|0;if((b[d+11>>0]|0)<0)NDb(f[d>>2]|0)}while((d|0)!=(e|0));if(!g)return;NDb(g);return}function dv(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0.0;l=u;u=u+16|0;j=l;k=l+8|0;if((b[287936]|0)==0?PFb(287936)|0:0){i=ec(2,87544)|0;f[72418]=i}i=f[72418]|0;g=b[e+11>>0]|0;if(g<<24>>24<0){m=f[e+4>>2]|0;h=Kob(m+4|0)|0;f[h>>2]=m;g=f[e>>2]|0;e=m}else{m=g&255;h=Kob(m+4|0)|0;f[h>>2]=m;g=e;e=m}gGb(h+4|0,g|0,e|0)|0;f[j>>2]=h;n=+bc(i|0,c|0,d|0,k|0,j|0);m=f[k>>2]|0;f[a>>2]=~~n>>>0;ic(m|0);u=l;return}function ev(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0;i=u;u=u+16|0;g=i;d=c+4|0;e=f[c>>2]|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;if(e>>>0>4294967279)TDb(g);if(e>>>0<11){b[g+11>>0]=e;if(!e)c=g;else{c=g;h=6}}else{h=e+16&-16;c=LDb(h)|0;f[g>>2]=c;f[g+8>>2]=h|-2147483648;f[g+4>>2]=e;h=6}if((h|0)==6)gGb(c|0,d|0,e|0)|0;b[c+e>>0]=0;Nk[a&2047](g);if((b[g+11>>0]|0)>=0){u=i;return}NDb(f[g>>2]|0);u=i;return}function fv(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;i=a+4|0;e=f[i>>2]|0;g=f[a>>2]|0;h=(e-g|0)/12|0;if(h>>>0<c>>>0){iv(a,c-h|0,d);return}if(h>>>0<=c>>>0)return;a=g+(c*12|0)|0;if((a|0)!=(e|0))do{e=e+-12|0;if((b[e+11>>0]|0)<0)NDb(f[e>>2]|0)}while((e|0)!=(a|0));f[i>>2]=a;return}function gv(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;i=u;u=u+16|0;h=i;e=f[c>>2]|0;g=e;if((((f[c+4>>2]|0)-e|0)/12|0)>>>0<=d>>>0){f[a>>2]=1;u=i;return}c=g+(d*12|0)|0;e=b[c+11>>0]|0;if(e<<24>>24<0){e=f[g+(d*12|0)+4>>2]|0;g=Kob(e+4|0)|0;f[g>>2]=e;c=f[c>>2]|0}else{e=e&255;g=Kob(e+4|0)|0;f[g>>2]=e}gGb(g+4|0,c|0,e|0)|0;f[h>>2]=g;h=jc(58072,h|0)|0;f[a>>2]=h;u=i;return}function hv(a,b,c){a=a|0;b=b|0;c=c|0;$Db((f[a>>2]|0)+(b*12|0)|0,c)|0;return 1}function iv(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=a+8|0;h=f[l>>2]|0;m=a+4|0;e=f[m>>2]|0;if(((h-e|0)/12|0)>>>0>=c>>>0){do{VDb(e,d);e=(f[m>>2]|0)+12|0;f[m>>2]=e;c=c+-1|0}while((c|0)!=0);return}g=f[a>>2]|0;i=(e-g|0)/12|0;e=i+c|0;if(e>>>0>357913941)KEb(a);k=(h-g|0)/12|0;h=k<<1;h=k>>>0<178956970?(h>>>0<e>>>0?e:h):357913941;do if(h)if(h>>>0>357913941){m=mb(8)|0;RDb(m,238482);f[m>>2]=144484;qb(m|0,84192,1464)}else{g=LDb(h*12|0)|0;break}else g=0;while(0);e=g+(i*12|0)|0;j=e;k=g+(h*12|0)|0;h=j;g=e;while(1){VDb(g,d);g=h+12|0;c=c+-1|0;if(!c)break;else h=g}i=f[a>>2]|0;c=f[m>>2]|0;if((c|0)==(i|0)){c=j;h=i;e=i}else{do{e=e+-12|0;c=c+-12|0;f[e>>2]=f[c>>2];f[e+4>>2]=f[c+4>>2];f[e+8>>2]=f[c+8>>2];f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0}while((c|0)!=(i|0));c=e;h=f[a>>2]|0;e=f[m>>2]|0}f[a>>2]=c;f[m>>2]=g;f[l>>2]=k;c=h;if((e|0)!=(c|0))do{e=e+-12|0;if((b[e+11>>0]|0)<0)NDb(f[e>>2]|0)}while((e|0)!=(c|0));if(!h)return;NDb(h);return}function jv(a){a=a|0;return 58128}function kv(a){a=a|0;var c=0,d=0,e=0;if(!a)return;d=f[a>>2]|0;if(d|0){e=a+4|0;c=f[e>>2]|0;if((c|0)==(d|0))c=d;else{do{c=c+-12|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0)}while((c|0)!=(d|0));c=f[a>>2]|0}f[e>>2]=d;NDb(c)}NDb(a);return}function lv(){var a=0;a=LDb(12)|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;return a|0}function mv(a){a=a|0;return rk[a&15]()|0}function nv(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0;j=u;u=u+16|0;h=j;e=f[a>>2]|0;a=f[a+4>>2]|0;g=c+(a>>1)|0;if(a&1)e=f[(f[g>>2]|0)+e>>2]|0;c=d+4|0;d=f[d>>2]|0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;if(d>>>0>4294967279)TDb(h);if(d>>>0<11){b[h+11>>0]=d;if(!d)a=h;else{a=h;i=9}}else{i=d+16&-16;a=LDb(i)|0;f[h>>2]=a;f[h+8>>2]=i|-2147483648;f[h+4>>2]=d;i=9}if((i|0)==9)gGb(a|0,c|0,d|0)|0;b[a+d>>0]=0;Vk[e&1023](g,h);if((b[h+11>>0]|0)>=0){u=j;return}NDb(f[h>>2]|0);u=j;return}function ov(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0;k=u;u=u+16|0;i=k;g=f[a>>2]|0;a=f[a+4>>2]|0;h=c+(a>>1)|0;if(a&1)g=f[(f[h>>2]|0)+g>>2]|0;c=e+4|0;e=f[e>>2]|0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;if(e>>>0>4294967279)TDb(i);if(e>>>0<11){b[i+11>>0]=e;if(!e)a=i;else{a=i;j=9}}else{j=e+16&-16;a=LDb(j)|0;f[i>>2]=a;f[i+8>>2]=j|-2147483648;f[i+4>>2]=e;j=9}if((j|0)==9)gGb(a|0,c|0,e|0)|0;b[a+e>>0]=0;Zk[g&511](h,d,i);if((b[i+11>>0]|0)>=0){u=k;return}NDb(f[i>>2]|0);u=k;return}function pv(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[a>>2]|0;d=f[a+4>>2]|0;a=b+(d>>1)|0;if(d&1)c=f[(f[a>>2]|0)+c>>2]|0;return sk[c&2047](a)|0}function qv(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=u;u=u+16|0;e=d;Zk[f[a>>2]&511](e,b,c);fc(f[e>>2]|0);c=f[e>>2]|0;cc(c|0);u=d;return c|0}function rv(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0;k=u;u=u+16|0;j=k;h=f[a>>2]|0;g=e+4|0;e=f[e>>2]|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;if(e>>>0>4294967279)TDb(j);if(e>>>0<11){b[j+11>>0]=e;if(!e)a=j;else{a=j;i=6}}else{i=e+16&-16;a=LDb(i)|0;f[j>>2]=a;f[j+8>>2]=i|-2147483648;f[j+4>>2]=e;i=6}if((i|0)==6)gGb(a|0,g|0,e|0)|0;b[a+e>>0]=0;a=xk[h&255](c,d,j)|0;if((b[j+11>>0]|0)>=0){u=k;return a|0}NDb(f[j>>2]|0);u=k;return a|0}function sv(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0;l=u;u=u+48|0;i=l+24|0;k=l+12|0;j=l;e=c+4|0;g=f[c>>2]|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;if(g>>>0>4294967279)TDb(k);if(g>>>0<11){b[k+11>>0]=g;if(!g)c=k;else{c=k;h=6}}else{h=g+16&-16;c=LDb(h)|0;f[k>>2]=c;f[k+8>>2]=h|-2147483648;f[k+4>>2]=g;h=6}if((h|0)==6)gGb(c|0,e|0,g|0)|0;b[c+g>>0]=0;tv(j,d);Zk[a&511](i,k,j);a=LDb(12)|0;f[a>>2]=f[i>>2];e=i+4|0;f[a+4>>2]=f[e>>2];h=i+8|0;f[a+8>>2]=f[h>>2];f[h>>2]=0;f[e>>2]=0;f[i>>2]=0;e=f[j>>2]|0;if(e|0){g=j+4|0;c=f[g>>2]|0;if((c|0)==(e|0))c=e;else{do{c=c+-12|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0)}while((c|0)!=(e|0));c=f[j>>2]|0}f[g>>2]=e;NDb(c)}if((b[k+11>>0]|0)>=0){u=l;return a|0}NDb(f[k>>2]|0);u=l;return a|0}function tv(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;f[a>>2]=0;h=a+4|0;f[h>>2]=0;d=a+8|0;f[d>>2]=0;g=b+4|0;c=(f[g>>2]|0)-(f[b>>2]|0)|0;e=(c|0)/12|0;if(!c)return;if(e>>>0>357913941)KEb(a);c=LDb(c)|0;f[h>>2]=c;f[a>>2]=c;f[d>>2]=c+(e*12|0);a=f[b>>2]|0;b=f[g>>2]|0;if((a|0)==(b|0))return;do{VDb(c,a);a=a+12|0;c=(f[h>>2]|0)+12|0;f[h>>2]=c}while((a|0)!=(b|0));return}function uv(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0.0;h=u;u=u+16|0;e=h;g=h+8|0;if((b[287944]|0)==0?PFb(287944)|0:0){i=ec(1,87608)|0;f[72419]=i}j=+bc(f[72419]|0,c|0,d|0,g|0,e|0);i=f[g>>2]|0;f[a>>2]=~~j>>>0;ic(i|0);u=h;return}function vv(a){a=a|0;Hk[a&15]();return}function wv(){n[72408]=1.0;n[72409]=0.0;n[72410]=0.0;n[72411]=0.0;n[72412]=1.0;n[72413]=0.0;n[72414]=0.0;n[72415]=0.0;n[72416]=1.0;Ub(144642,2,87552,158645,789,1475);Fl(144651);Ub(144662,3,87596,159094,201,218);Ub(144676,1,87612,159076,1476,4);return}function xv(a,b){a=a|0;b=b|0;a=f[a+28>>2]|0;if(!a)return;Vk[f[f[a>>2]>>2]&1023](a,b);return}function yv(a){a=a|0;return a|0}function zv(a){a=a|0;return a|0}function Av(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0;if((sk[f[(f[a>>2]|0)+148>>2]&2047](a)|0)==(b|0))return;d=a+28|0;a=f[d>>2]|0;if(!a){a=LDb(60)|0;SDa(a);c=f[d>>2]|0;if((c|0)!=(a|0)){if(c|0?(g=c+8|0,e=f[g>>2]|0,f[g>>2]=e-1,(e|0)==1):0)X4(c,1,1);f[d>>2]=a;a=a+8|0;f[a>>2]=(f[a>>2]|0)+1;a=f[d>>2]|0}}Vk[f[(f[a>>2]|0)+144>>2]&1023](a,b);return}function Bv(a){a=a|0;a=f[a+28>>2]|0;if(!a){a=0;return a|0}a=sk[f[(f[a>>2]|0)+148>>2]&2047](a)|0;return a|0}function Cv(a){a=a|0;a=f[a+28>>2]|0;if(!a){a=0;return a|0}a=sk[f[(f[a>>2]|0)+148>>2]&2047](a)|0;return a|0}function Dv(a,b){a=a|0;b=b|0;return}function Ev(a,b){a=a|0;b=b|0;return}function Fv(a){a=a|0;return 0}function Gv(a){a=a|0;return 0}function Hv(a){a=a|0;return 0}function Iv(a){a=a|0;return 0}function Jv(a,b){a=a|0;b=b|0;return 1}function Kv(a,b){a=a|0;b=b|0;return}function Lv(a){a=a|0;var c=0,d=0,e=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,v=0,w=0,x=0,y=0,z=0,A=0;A=u;u=u+32|0;r=A+24|0;v=A+12|0;s=A;d=a+4|0;t=a+12|0;f[t>>2]=141080;p=LDb(32)|0;Otb(p);f[p>>2]=87736;f[d>>2]=58212;f[t>>2]=58232;Itb(a+12|0,p);f[a+84>>2]=0;f[a+88>>2]=-1;f[d>>2]=87684;f[t>>2]=87704;f[a+8>>2]=f[a+36>>2];t=a+92|0;d=a+100|0;f[d>>2]=141080;p=LDb(60)|0;Xv(p);f[t>>2]=58212;f[d>>2]=58232;Itb(a+100|0,p);f[a+172>>2]=0;f[a+176>>2]=-1;f[t>>2]=87628;f[d>>2]=87648;f[a+96>>2]=f[a+124>>2];f[a>>2]=3;f[v>>2]=0;f[v+4>>2]=0;f[v+8>>2]=0;d=Th(159285)|0;if(!d){d=Th(159302)|0;if(!d)c=87628;else{c=0;while(1){if(!(b[d+c>>0]|0))break;c=c+1|0;if(c>>>0>=4096){c=4096;break}}aEb(v,d,c)|0;q=11}}else{c=0;while(1){if(!(b[d+c>>0]|0))break;c=c+1|0;if(c>>>0>=4096){c=4096;break}}aEb(v,d,c)|0;q=11}if((q|0)==11){VDb(s,v);o=s+11|0;n=b[o>>0]|0;c=n<<24>>24<0;p=s+4|0;a:do if((c?f[p>>2]|0:n&255)|0){d=c?f[s>>2]|0:s;do{c=(Fpb(b[d>>0]|0)|0)&255;b[d>>0]=c;d=d+1|0;c=b[o>>0]|0;k=c<<24>>24<0;e=k?f[s>>2]|0:s;k=k?f[p>>2]|0:c&255;n=e+k|0}while((d|0)!=(n|0));l=n;m=e;h=(k|0)<6;b:do if(!h){g=e;d=k;while(1){d=d+-5|0;if(!d)break b;d=epb(g,65,d)|0;if(!d)break b;if(!(ipb(d,223932,6)|0))break;g=d+1|0;d=l-g|0;if((d|0)<6)break b}if(!((d|0)==(n|0)|(d-m|0)==-1)){f[a>>2]=0;break a}}else h=1;while(0);i=(k|0)<5;c:do if(!i){g=e;d=k;while(1){d=d+-4|0;if(!d)break c;d=epb(g,70,d)|0;if(!d)break c;if(!(ipb(d,159317,5)|0))break;g=d+1|0;d=l-g|0;if((d|0)<5)break c}if(!((d|0)==(n|0)|(d-m|0)==-1)){f[a>>2]=1;break a}}else i=1;while(0);j=(k|0)<4;d:do if(!j){g=e;d=k;while(1){d=d+-3|0;if(!d)break d;d=epb(g,87,d)|0;if(!d)break d;if(!(ipb(d,251492,4)|0))break;g=d+1|0;d=l-g|0;if((d|0)<4)break d}if(!((d|0)==(n|0)|(d-m|0)==-1)){f[a>>2]=2;break a}}else j=1;while(0);e:do if(!h){g=e;d=k;while(1){d=d+-5|0;if(!d)break e;d=epb(g,78,d)|0;if(!d)break e;if(!(ipb(d,159323,6)|0))break;g=d+1|0;d=l-g|0;if((d|0)<6)break e}if(!((d|0)==(n|0)|(d-m|0)==-1)){f[a>>2]=3;break a}}while(0);f:do if((k|0)>=10){g=e;d=k;while(1){d=d+-9|0;if(!d)break f;d=epb(g,68,d)|0;if(!d)break f;if(!(ipb(d,159330,10)|0))break;g=d+1|0;d=l-g|0;if((d|0)<10)break f}if(!((d|0)==(n|0)|(d-m|0)==-1)){f[a>>2]=5;break a}}while(0);g:do if((k|0)>=8){g=e;d=k;while(1){d=d+-7|0;if(!d)break g;d=epb(g,68,d)|0;if(!d)break g;if(!(ipb(d,159341,8)|0))break;g=d+1|0;d=l-g|0;if((d|0)<8)break g}if(!((d|0)==(n|0)|(d-m|0)==-1)){f[a>>2]=6;break a}}while(0);h:do if(!i){g=e;d=k;while(1){d=d+-4|0;if(!d)break h;d=epb(g,68,d)|0;if(!d)break h;if(!(ipb(d,251481,5)|0))break;g=d+1|0;d=l-g|0;if((d|0)<5)break h}if(!((d|0)==(n|0)|(d-m|0)==-1)){f[a>>2]=5;break a}}while(0);if(!j){d=k;while(1){d=d+-3|0;if(!d){q=78;break a}d=epb(e,73,d)|0;if(!d){q=78;break a}if(!(ipb(d,251487,4)|0))break;e=d+1|0;d=l-e|0;if((d|0)<4){q=78;break a}}if(!((d|0)==(n|0)|(d-m|0)==-1))f[a>>2]=4;else q=78}else q=78}else q=78;while(0);if((q|0)==78){q=Nv(294292,159350,39)|0;c=b[o>>0]|0;a=c<<24>>24<0;c=Nv(Nv(q,a?f[s>>2]|0:s,a?f[p>>2]|0:c&255)|0,239531,1)|0;Ktb(r,c+(f[(f[c>>2]|0)+-12>>2]|0)|0);a=Bvb(r,295164)|0;a=wk[f[(f[a>>2]|0)+28>>2]&1023](a,10)|0;Cvb(r);rub(c,a)|0;Rtb(c)|0;c=b[o>>0]|0}if(c<<24>>24<0)NDb(f[s>>2]|0);c=f[t>>2]|0}c=f[t+(f[c+-12>>2]|0)+24>>2]|0;if(((((c|0?(w=bFb(c,82736,58256,0)|0,w|0):0)?(x=w+52|0,(f[x>>2]|0)==0):0)?(y=LDb(12)|0,BCa(y),f[y>>2]=87800,z=f[x>>2]|0,(z|0)!=(y|0)):0)?(f[x>>2]=y,y=y+8|0,f[y>>2]=(f[y>>2]|0)+1,z|0):0)?(x=z+8|0,y=f[x>>2]|0,f[x>>2]=y-1,(y|0)==1):0)X4(z,1,1);if((b[v+11>>0]|0)>=0){u=A;return}NDb(f[v>>2]|0);u=A;return}function Mv(a){a=a|0;var c=0,d=0;if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);c=(f[72420]|0)<(a|0);if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if(c){a=289684;return a|0}c=f[72444]|0;d=c+56|0;if((f[d>>2]|0)!=(a|0)){sk[f[(f[c>>2]|0)+24>>2]&2047](c)|0;f[d>>2]=a}if(b[287952]|0){a=289772;return a|0}if(!(PFb(287952)|0)){a=289772;return a|0}Lv(289680);a=289772;return a|0}function Nv(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=u;u=u+16|0;h=m+12|0;k=m;l=m+8|0;Stb(k,a);if(!(b[k>>0]|0)){Ttb(k);u=m;return a|0}i=(f[a>>2]|0)+-12|0;f[l>>2]=f[a+(f[i>>2]|0)+24>>2];i=a+(f[i>>2]|0)|0;j=f[i+4>>2]|0;g=c+d|0;e=i+76|0;d=f[e>>2]|0;if((d|0)==-1){Ktb(h,i);d=Bvb(h,295164)|0;d=wk[f[(f[d>>2]|0)+28>>2]&1023](d,32)|0;Cvb(h);d=d<<24>>24;f[e>>2]=d}f[h>>2]=f[l>>2];if(Ov(h,c,(j&176|0)==32?g:c,g,i,d&255)|0){Ttb(k);u=m;return a|0}l=a+(f[(f[a>>2]|0)+-12>>2]|0)|0;Htb(l,f[l+16>>2]|5);Ttb(k);u=m;return a|0}function Ov(a,c,d,e,g,h){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=u;u=u+16|0;m=o;n=f[a>>2]|0;if(!n){n=0;u=o;return n|0}i=c;j=e-i|0;l=g+12|0;k=f[l>>2]|0;j=(k|0)>(j|0)?k-j|0:0;k=d;g=k-i|0;if((g|0)>0?(xk[f[(f[n>>2]|0)+48>>2]&255](n,c,g)|0)!=(g|0):0){f[a>>2]=0;n=0;u=o;return n|0}do if((j|0)>0){f[m>>2]=0;f[m+4>>2]=0;f[m+8>>2]=0;if(j>>>0<11){c=m+11|0;b[c>>0]=j;g=m;i=m}else{c=j+16&-16;g=LDb(c)|0;f[m>>2]=g;f[m+8>>2]=c|-2147483648;f[m+4>>2]=j;c=m+11|0;i=m}iGb(g|0,h|0,j|0)|0;b[g+j>>0]=0;if((xk[f[(f[n>>2]|0)+48>>2]&255](n,(b[c>>0]|0)<0?f[i>>2]|0:m,j)|0)==(j|0)){if((b[c>>0]|0)<0)NDb(f[i>>2]|0);break}f[a>>2]=0;if((b[c>>0]|0)<0)NDb(f[i>>2]|0);n=0;u=o;return n|0}while(0);e=e-k|0;if((e|0)>0?(xk[f[(f[n>>2]|0)+48>>2]&255](n,d,e)|0)!=(e|0):0){f[a>>2]=0;n=0;u=o;return n|0}f[l>>2]=0;u=o;return n|0}function Pv(a){a=a|0;var b=0,c=0;f[a>>2]=87684;b=a+8|0;f[b>>2]=87704;f[a+32>>2]=0;Htb(a+8|0,0);c=f[a+4>>2]|0;if(c|0)Nk[f[(f[c>>2]|0)+4>>2]&2047](c);ttb(a,87716);rsb(b);return}function Qv(a){a=a|0;var b=0,c=0;f[a>>2]=87684;b=a+8|0;f[b>>2]=87704;f[a+32>>2]=0;Htb(a+8|0,0);c=f[a+4>>2]|0;if(c|0)Nk[f[(f[c>>2]|0)+4>>2]&2047](c);ttb(a,87716);rsb(b);NDb(a);return}function Rv(a){a=a|0;var b=0,c=0;a=a+(f[(f[a>>2]|0)+-12>>2]|0)|0;f[a>>2]=87684;b=a+8|0;f[b>>2]=87704;f[a+32>>2]=0;Htb(b,0);c=f[a+4>>2]|0;if(c|0)Nk[f[(f[c>>2]|0)+4>>2]&2047](c);ttb(a,87716);rsb(b);return}function Sv(a){a=a|0;Qv(a+(f[(f[a>>2]|0)+-12>>2]|0)|0);return}function Tv(a){a=a|0;var b=0,c=0;f[a>>2]=87628;b=a+8|0;f[b>>2]=87648;f[a+32>>2]=0;Htb(a+8|0,0);c=f[a+4>>2]|0;if(c|0)Nk[f[(f[c>>2]|0)+4>>2]&2047](c);ttb(a,87660);rsb(b);return}function Uv(a){a=a|0;var b=0,c=0;f[a>>2]=87628;b=a+8|0;f[b>>2]=87648;f[a+32>>2]=0;Htb(a+8|0,0);c=f[a+4>>2]|0;if(c|0)Nk[f[(f[c>>2]|0)+4>>2]&2047](c);ttb(a,87660);rsb(b);NDb(a);return}function Vv(a){a=a|0;var b=0,c=0;a=a+(f[(f[a>>2]|0)+-12>>2]|0)|0;f[a>>2]=87628;b=a+8|0;f[b>>2]=87648;f[a+32>>2]=0;Htb(b,0);c=f[a+4>>2]|0;if(c|0)Nk[f[(f[c>>2]|0)+4>>2]&2047](c);ttb(a,87660);rsb(b);return}function Wv(a){a=a|0;Uv(a+(f[(f[a>>2]|0)+-12>>2]|0)|0);return}function Xv(a){a=a|0;var c=0,d=0,e=0,g=0;e=u;u=u+48|0;c=e+32|0;d=e+16|0;Otb(a);g=a+32|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;f[a+48>>2]=24;f[a>>2]=87824;f[a+52>>2]=0;f[a+56>>2]=3;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;g=LDb(4096)|0;f[c>>2]=g;f[c+8>>2]=-2147479552;f[c+4>>2]=4095;iGb(g|0,0,4096)|0;$v(a,c);if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;f[d+12>>2]=0;g=f[(f[a>>2]|0)+20>>2]|0;f[c>>2]=f[d>>2];f[c+4>>2]=f[d+4>>2];f[c+8>>2]=f[d+8>>2];f[c+12>>2]=f[d+12>>2];al[g&255](e,a,c,16);u=e;return}function Yv(a,b){a=a|0;b=b|0;return}function Zv(a){a=a|0;V4(a);NDb(a);return}function _v(a,b,c){a=a|0;b=b|0;c=c|0;if((b|0)<3){esb(c,f[35106]|0)|0;return}else{esb(c,f[35138]|0)|0;return}}function $v(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0;h=a+32|0;$Db(h,c)|0;g=a+44|0;f[g>>2]=0;i=a+48|0;e=f[i>>2]|0;if(e&8|0){c=b[h+11>>0]|0;if(c<<24>>24<0){c=f[h>>2]|0;d=c;c=c+(f[a+36>>2]|0)|0}else{d=h;c=h+(c&255)|0}f[g>>2]=c;f[a+8>>2]=d;f[a+12>>2]=d;f[a+16>>2]=c}if(!(e&16))return;e=h+11|0;c=b[e>>0]|0;if(c<<24>>24<0){d=f[a+36>>2]|0;f[g>>2]=(f[h>>2]|0)+d;c=(f[a+40>>2]&2147483647)+-1|0}else{d=c&255;f[g>>2]=h+d;c=10}fEb(h,c,0);e=b[e>>0]|0;if(e<<24>>24<0){c=f[h>>2]|0;e=f[a+36>>2]|0}else{c=h;e=e&255}g=a+24|0;f[g>>2]=c;f[a+20>>2]=c;f[a+28>>2]=c+e;if(!(f[i>>2]&3))return;if((d|0)>=0){if(!d)return}else{c=c+2147483647|0;d=d+-2147483647|0;a=(d|0)<0;c=a?c+2147483647|0:c;f[g>>2]=c;d=a?1:d}f[g>>2]=c+d;return}function aw(a){a=a|0;var c=0;f[a>>2]=87888;c=a+32|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);xsb(a);return}function bw(a){a=a|0;var c=0;f[a>>2]=87888;c=a+32|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);xsb(a);NDb(a);return}function cw(a,c,d,e,g,h){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;i=c+44|0;j=f[i>>2]|0;n=c+24|0;o=f[n>>2]|0;if(j>>>0<o>>>0){f[i>>2]=o;m=o}else m=j;l=h&24;a:do if((l|0)!=0?!((g|0)==1&(l|0)==24):0){if(!m){k=0;l=0}else{i=c+32|0;if((b[i+11>>0]|0)<0)i=f[i>>2]|0;l=m-i|0;k=((l|0)<0)<<31>>31}b:do switch(g|0){case 0:{i=0;j=0;break}case 1:if(!(h&8)){j=o-(f[c+20>>2]|0)|0;i=j;j=((j|0)<0)<<31>>31;break b}else{j=(f[c+12>>2]|0)-(f[c+8>>2]|0)|0;i=j;j=((j|0)<0)<<31>>31;break b}case 2:{i=l;j=k;break}default:{j=-1;i=-1;break a}}while(0);j=YFb(i|0,j|0,d|0,e|0)|0;i=H;if(!((i|0)<0|((k|0)<(i|0)|(k|0)==(i|0)&l>>>0<j>>>0))){g=h&8;if(!((j|0)==0&(i|0)==0)){if(g|0?(f[c+12>>2]|0)==0:0){j=-1;i=-1;break}if((h&16|0)!=0&(o|0)==0){j=-1;i=-1;break}}if(g|0){f[c+12>>2]=(f[c+8>>2]|0)+j;f[c+16>>2]=m}if(h&16)f[n>>2]=(f[c+20>>2]|0)+j}else{j=-1;i=-1}}else{j=-1;i=-1}while(0);o=a;f[o>>2]=0;f[o+4>>2]=0;a=a+8|0;f[a>>2]=j;f[a+4>>2]=i;return}function dw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=c+8|0;dl[f[(f[b>>2]|0)+16>>2]&15](a,b,f[c>>2]|0,f[c+4>>2]|0,0,d);return}function ew(a){a=a|0;var b=0,c=0,d=0;b=a+44|0;d=f[b>>2]|0;c=f[a+24>>2]|0;if(d>>>0<c>>>0){f[b>>2]=c;d=c}if(!(f[a+48>>2]&8)){a=-1;return a|0}b=a+16|0;c=f[b>>2]|0;if(c>>>0<d>>>0){f[b>>2]=d;c=d}b=f[a+12>>2]|0;if(b>>>0>=c>>>0){a=-1;return a|0}a=h[b>>0]|0;return a|0}function fw(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0;e=a+44|0;d=f[e>>2]|0;g=f[a+24>>2]|0;if(d>>>0<g>>>0){f[e>>2]=g;d=g}h=a+12|0;e=f[h>>2]|0;if((f[a+8>>2]|0)>>>0>=e>>>0){c=-1;return c|0}if((c|0)==-1){f[h>>2]=e+-1;f[a+16>>2]=d;c=0;return c|0}if(!(f[a+48>>2]&16)){g=c&255;e=e+-1|0;if((b[e>>0]|0)!=g<<24>>24){c=-1;return c|0}}else{g=c&255;e=e+-1|0}f[h>>2]=e;f[a+16>>2]=d;b[e>>0]=g;return c|0}function gw(a,c){a=a|0;c=c|0;var d=0,e=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;t=u;u=u+16|0;o=t;if((c|0)==-1){s=0;u=t;return s|0}p=a+12|0;q=a+8|0;r=(f[p>>2]|0)-(f[q>>2]|0)|0;s=a+24|0;k=f[s>>2]|0;m=a+28|0;d=f[m>>2]|0;if((k|0)==(d|0)){j=a+48|0;if(!(f[j>>2]&16)){s=-1;u=t;return s|0}h=a+20|0;i=f[h>>2]|0;n=a+44|0;l=(f[n>>2]|0)-i|0;g=a+32|0;kEb(g,0);d=g+11|0;if((b[d>>0]|0)<0)e=(f[a+40>>2]&2147483647)+-1|0;else e=10;fEb(g,e,0);d=b[d>>0]|0;if(d<<24>>24<0){e=f[g>>2]|0;d=f[a+36>>2]|0}else{e=g;d=d&255}d=e+d|0;f[h>>2]=e;f[m>>2]=d;k=e+(k-i)|0;f[s>>2]=k;e=e+l|0;f[n>>2]=e;l=n;g=n;i=d}else{e=a+44|0;l=e;j=a+48|0;g=e;e=f[e>>2]|0;i=d}h=k+1|0;f[o>>2]=h;e=f[(h>>>0<e>>>0?g:o)>>2]|0;f[l>>2]=e;if(f[j>>2]&8|0){d=a+32|0;if((b[d+11>>0]|0)<0)d=f[d>>2]|0;f[q>>2]=d;f[p>>2]=d+r;f[a+16>>2]=e}if((k|0)==(i|0)){s=wk[f[(f[a>>2]|0)+52>>2]&1023](a,c&255)|0;u=t;return s|0}else{f[s>>2]=h;b[k>>0]=c;s=c&255;u=t;return s|0}return 0}function hw(a){a=a|0;var c=0,d=0,e=0,g=0;f[a>>2]=87824;c=a+52|0;d=f[c>>2]|0;if(d|0?(g=d+8|0,e=f[g>>2]|0,f[g>>2]=e-1,(e|0)==1):0)X4(d,1,1);f[c>>2]=0;f[a>>2]=87888;c=a+32|0;if((b[c+11>>0]|0)>=0){xsb(a);return}NDb(f[c>>2]|0);xsb(a);return}function iw(a){a=a|0;var c=0,d=0,e=0,g=0;f[a>>2]=87824;c=a+52|0;d=f[c>>2]|0;if(d|0?(g=d+8|0,e=f[g>>2]|0,f[g>>2]=e-1,(e|0)==1):0)X4(d,1,1);f[c>>2]=0;f[a>>2]=87888;c=a+32|0;if((b[c+11>>0]|0)>=0){xsb(a);NDb(a);return}NDb(f[c>>2]|0);xsb(a);NDb(a);return}function jw(a){a=a|0;var c=0,d=0,e=0,g=0,h=0;h=u;u=u+48|0;e=h+32|0;g=h+16|0;c=a+24|0;d=f[c>>2]|0;if((d|0)==(f[a+28>>2]|0))wk[f[(f[a>>2]|0)+52>>2]&1023](a,0)|0;else{f[c>>2]=d+1;b[d>>0]=0}c=f[a+52>>2]|0;if(c|0)Zk[f[(f[c>>2]|0)+12>>2]&511](c,f[a+56>>2]|0,f[a+20>>2]|0);f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;d=f[(f[a>>2]|0)+20>>2]|0;f[e>>2]=f[g>>2];f[e+4>>2]=f[g+4>>2];f[e+8>>2]=f[g+8>>2];f[e+12>>2]=f[g+12>>2];al[d&255](h,a,e,16);u=h;return 0}function kw(a){a=a|0;xsb(a);NDb(a);return}function lw(a,b,c){a=a|0;b=b|0;c=c|0;return c|0}function mw(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;nw(a,b,c);f[a>>2]=87952;f[a+32>>2]=0;f[a+36>>2]=0;f[a+40>>2]=0;d=f[b+44>>2]|0;f[a+44>>2]=d;if(d|0){d=d+8|0;f[d>>2]=(f[d>>2]|0)+1}d=wk[f[(f[c>>2]|0)+64>>2]&1023](c,f[b+48>>2]|0)|0;f[a+48>>2]=d;if(d|0){d=d+(f[(f[d>>2]|0)+-16>>2]|0)+8|0;f[d>>2]=(f[d>>2]|0)+1}d=wk[f[(f[c>>2]|0)+64>>2]&1023](c,f[b+52>>2]|0)|0;f[a+52>>2]=d;if(!d)return;a=d+(f[(f[d>>2]|0)+-16>>2]|0)+8|0;f[a>>2]=(f[a>>2]|0)+1;return}function nw(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;BCa(a);f[a>>2]=88164;VDb(a+12|0,b+12|0);f[a+24>>2]=f[b+24>>2];d=a+28|0;f[d>>2]=0;a=f[b+28>>2]|0;if(!a)return;if(!(f[c+4>>2]&4096)){f[d>>2]=a;d=a+8|0;f[d>>2]=(f[d>>2]|0)+1;return}a=yw(a,c)|0;b=f[d>>2]|0;if((b|0)==(a|0))return;if(b|0?(e=b+8|0,c=f[e>>2]|0,f[e>>2]=c-1,(c|0)==1):0)X4(b,1,1);f[d>>2]=a;if(!a)return;e=a+8|0;f[e>>2]=(f[e>>2]|0)+1;return}function ow(a){a=a|0;var c=0,d=0,e=0;f[a>>2]=88164;c=f[a+28>>2]|0;if(c|0?(e=c+8|0,d=f[e>>2]|0,f[e>>2]=d-1,(d|0)==1):0)X4(c,1,1);c=a+12|0;if((b[c+11>>0]|0)>=0){V4(a);return}NDb(f[c>>2]|0);V4(a);return}function pw(a){a=a|0;Ni()}function qw(a,b){a=a|0;b=b|0;return 1}function rw(a){a=a|0;var b=0,c=0,d=0,e=0,g=0;f[a>>2]=87952;b=a+52|0;c=f[b>>2]|0;if(c|0?(d=c+(f[(f[c>>2]|0)+-16>>2]|0)|0,g=d+8|0,c=f[g>>2]|0,f[g>>2]=c-1,(c|0)==1):0)X4(d,1,1);f[b>>2]=0;b=a+48|0;c=f[b>>2]|0;if(c|0?(e=c+(f[(f[c>>2]|0)+-16>>2]|0)|0,d=e+8|0,g=f[d>>2]|0,f[d>>2]=g-1,(g|0)==1):0)X4(e,1,1);f[b>>2]=0;b=a+44|0;c=f[b>>2]|0;if(c|0?(e=c+8|0,g=f[e>>2]|0,f[e>>2]=g-1,(g|0)==1):0)X4(c,1,1);f[b>>2]=0;b=f[a+32>>2]|0;if(!b){ow(a);return}f[a+36>>2]=b;NDb(b);ow(a);return}function sw(a){a=a|0;Ni()}function tw(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,58352,0)|0)!=0;return b|0}function uw(a){a=a|0;return 241076}function vw(a){a=a|0;return 159574}function ww(a,b){a=a|0;b=b|0;return 0}function xw(a,b){a=a|0;b=b|0;return}function yw(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0;g=u;u=u+16|0;e=g;if(!a){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=1){e=0;u=g;return e|0}d=Nv(Mv(2)|0,221895,88)|0;Ktb(e,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);c=Bvb(e,295164)|0;c=wk[f[(f[c>>2]|0)+28>>2]&1023](c,10)|0;Cvb(e);rub(d,c)|0;Rtb(d)|0;e=0;u=g;return e|0}a=wk[f[(f[a>>2]|0)+16>>2]&1023](a,c)|0;c=(a|0)==0;if(!c?(d=a+8|0,f[d>>2]=(f[d>>2]|0)+1,d=bFb(a,58336,63840,0)|0,d|0):0){ECa(a)|0;e=d;u=g;return e|0}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>1){d=Nv(Mv(2)|0,221806,88)|0;Ktb(e,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);h=Bvb(e,295164)|0;h=wk[f[(f[h>>2]|0)+28>>2]&1023](h,10)|0;Cvb(e);rub(d,h)|0;Rtb(d)|0}if(c){h=0;u=g;return h|0}e=a+8|0;h=f[e>>2]|0;f[e>>2]=h-1;if((h|0)!=1){h=0;u=g;return h|0}X4(a,1,1);h=0;u=g;return h|0}function zw(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;f[a>>2]=88336;d=f[a+20>>2]|0;if(d|0){e=f[d>>2]|0;if(e|0){g=d+4|0;b=f[g>>2]|0;if((b|0)==(e|0))b=e;else{do{b=b+-4|0;c=f[b>>2]|0;if(c|0?(i=c+8|0,j=f[i>>2]|0,f[i>>2]=j-1,(j|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(e|0));b=f[d>>2]|0}f[g>>2]=e;NDb(b)}NDb(d)}d=f[a+24>>2]|0;if(d|0){e=f[d>>2]|0;if(e|0){g=d+4|0;b=f[g>>2]|0;if((b|0)==(e|0))b=e;else{do{b=b+-4|0;c=f[b>>2]|0;if(c|0?(i=c+8|0,j=f[i>>2]|0,f[i>>2]=j-1,(j|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(e|0));b=f[d>>2]|0}f[g>>2]=e;NDb(b)}NDb(d)}d=f[a+28>>2]|0;if(d|0){e=f[d>>2]|0;if(e|0){g=d+4|0;b=f[g>>2]|0;if((b|0)==(e|0))b=e;else{do{b=b+-4|0;c=f[b>>2]|0;if(c|0?(i=c+8|0,j=f[i>>2]|0,f[i>>2]=j-1,(j|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(e|0));b=f[d>>2]|0}f[g>>2]=e;NDb(b)}NDb(d)}d=f[a+32>>2]|0;if(d|0){e=f[d>>2]|0;if(e|0){g=d+4|0;b=f[g>>2]|0;if((b|0)==(e|0))b=e;else{do{b=b+-4|0;c=f[b>>2]|0;if(c|0?(i=c+8|0,j=f[i>>2]|0,f[i>>2]=j-1,(j|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(e|0));b=f[d>>2]|0}f[g>>2]=e;NDb(b)}NDb(d)}i=a+36|0;c=f[i>>2]|0;j=a+40|0;b=f[j>>2]|0;if((c|0)!=(b|0))do{h=f[c>>2]|0;if(h){e=f[h>>2]|0;if(e|0){g=h+4|0;b=f[g>>2]|0;if((b|0)==(e|0))b=e;else{do{b=b+-4|0;d=f[b>>2]|0;if(d|0?(l=d+8|0,k=f[l>>2]|0,f[l>>2]=k-1,(k|0)==1):0)X4(d,1,1);f[b>>2]=0}while((b|0)!=(e|0));b=f[h>>2]|0}f[g>>2]=e;NDb(b)}NDb(h);b=f[j>>2]|0}c=c+4|0}while((c|0)!=(b|0));b=f[a+48>>2]|0;if(b|0){f[a+52>>2]=b;NDb(b)}b=f[i>>2]|0;if(!b){V4(a);return}f[j>>2]=b;NDb(b);V4(a);return}function Aw(a){a=a|0;zw(a);NDb(a);return}function Bw(a){a=a|0;rw(a);return}function Cw(a){a=a|0;rw(a);NDb(a);return}function Dw(a){a=a|0;a=LDb(72)|0;gDa(a);f[a>>2]=88356;f[a+56>>2]=770;f[a+60>>2]=771;f[a+64>>2]=770;f[a+68>>2]=771;return a|0}function Ew(a,b){a=a|0;b=b|0;var c=0;c=LDb(72)|0;mw(c,a,b);f[c>>2]=88356;f[c+56>>2]=f[a+56>>2];f[c+60>>2]=f[a+60>>2];f[c+64>>2]=f[a+64>>2];f[c+68>>2]=f[a+68>>2];return c|0}function Fw(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,58384,0)|0)!=0;return b|0}function Gw(a){a=a|0;return 241076}function Hw(a){a=a|0;return 159757}function Iw(a){a=a|0;return 21}function Jw(a,b){a=a|0;b=b|0;var c=0,d=0;if((a|0)==(b|0)){b=0;return b|0}if(!a)NFb();c=f[(f[(f[a>>2]|0)+-4>>2]|0)+4>>2]|0;d=f[(f[(f[b>>2]|0)+-4>>2]|0)+4>>2]|0;if(c>>>0<d>>>0){b=-1;return b|0}if((c|0)!=(d|0)){b=1;return b|0}c=f[a+56>>2]|0;d=f[b+56>>2]|0;if(c>>>0<d>>>0){b=-1;return b|0}if(d>>>0<c>>>0){b=1;return b|0}c=f[a+60>>2]|0;d=f[b+60>>2]|0;if(c>>>0<d>>>0){b=-1;return b|0}if(d>>>0<c>>>0){b=1;return b|0}c=f[a+64>>2]|0;d=f[b+64>>2]|0;if(c>>>0<d>>>0){b=-1;return b|0}if(d>>>0<c>>>0){b=1;return b|0}else{a=f[a+68>>2]|0;b=f[b+68>>2]|0;return (a>>>0<b>>>0?-1:b>>>0<a>>>0&1)|0}return 0}function Kw(a,b){a=a|0;b=b|0;Vk[f[(f[b>>2]|0)+8>>2]&1023](b,3042);return 1}function Lw(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0;i=u;u=u+16|0;d=i;e=a+56|0;g=f[e>>2]|0;h=f[a+64>>2]|0;if(!((g|0)==(h|0)?(f[a+60>>2]|0)==(f[a+68>>2]|0):0)){c=f[c+832>>2]|0;if(b[c+792>>0]|0){al[f[c+796>>2]&255](g,f[a+60>>2]|0,h,f[a+68>>2]|0);u=i;return}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>1){h=Nv(Mv(2)|0,159641,115)|0;Ktb(d,h+(f[(f[h>>2]|0)+-12>>2]|0)|0);g=Bvb(d,295164)|0;g=wk[f[(f[g>>2]|0)+28>>2]&1023](g,10)|0;Cvb(d);rub(h,g)|0;Rtb(h)|0}}Wh(f[e>>2]|0,f[a+60>>2]|0);u=i;return}function Mw(a){a=a|0;var b=0;f[a>>2]=88568;b=f[a+40>>2]|0;if(!b){V4(a);return}f[a+44>>2]=b;NDb(b);V4(a);return}function Nw(a){a=a|0;var b=0;f[a>>2]=88568;b=f[a+40>>2]|0;if(b|0){f[a+44>>2]=b;NDb(b)}V4(a);NDb(a);return}function Ow(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;f[a>>2]=88588;e=a+60|0;b=a+68|0;if(f[b>>2]|0?(c=f[a+64>>2]|0,d=(f[e>>2]|0)+4|0,g=f[c>>2]|0,f[g+4>>2]=f[d>>2],f[f[d>>2]>>2]=g,f[b>>2]=0,(c|0)!=(e|0)):0)do{b=c;c=f[c+4>>2]|0;d=f[b+8>>2]|0;if(d|0?(h=d+8|0,g=f[h>>2]|0,f[h>>2]=g-1,(g|0)==1):0)X4(d,1,1);NDb(b)}while((c|0)!=(e|0));e=a+48|0;b=a+56|0;if(!(f[b>>2]|0)){h=a+12|0;d8(h);V4(a);return}c=f[a+52>>2]|0;h=(f[e>>2]|0)+4|0;g=f[c>>2]|0;f[g+4>>2]=f[h>>2];f[f[h>>2]>>2]=g;f[b>>2]=0;if((c|0)==(e|0)){h=a+12|0;d8(h);V4(a);return}do{b=c;c=f[c+4>>2]|0;d=f[b+8>>2]|0;if(d|0?(g=d+8|0,h=f[g>>2]|0,f[g>>2]=h-1,(h|0)==1):0)X4(d,1,1);NDb(b)}while((c|0)!=(e|0));h=a+12|0;d8(h);V4(a);return}function Pw(a){a=a|0;Ow(a);NDb(a);return}function Qw(a){a=a|0;f[a>>2]=88608;gx(a+44|0,f[a+48>>2]|0);hx(a);return}function Rw(a){a=a|0;f[a>>2]=88608;gx(a+44|0,f[a+48>>2]|0);hx(a);NDb(a);return}function Sw(a,b){a=a|0;b=b|0;if(!b){b=a+56|0;f[b>>2]=(f[b>>2]|0)+1}else f[a+56>>2]=f[b+12>>2];b=a+60|0;f[b>>2]=(f[b>>2]|0)+1;return}function Tw(a){a=a|0;f[a+60>>2]=0;f[a+64>>2]=0;p[a+72>>3]=0.0;f[a+80>>2]=0;p[a+88>>3]=0.0;f[a+96>>2]=0;p[a+104>>3]=0.0;return}function Uw(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0.0;c=u;u=u+16|0;g=c;d=f[a+60>>2]|0;i=(d|0)==0?1.0:+(d>>>0);d=Nv(b,160161,37)|0;Ktb(g,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);e=Bvb(g,295164)|0;e=wk[f[(f[e>>2]|0)+28>>2]&1023](e,10)|0;Cvb(g);rub(d,e)|0;Rtb(d)|0;d=Nv(b,160199,31)|0;d=Nv(jub(d,f[a+28>>2]|0)|0,160231,30)|0;d=Nv(jub(d,f[a+32>>2]|0)|0,160262,29)|0;e=a+36|0;d=jub(d,f[e>>2]|0)|0;Ktb(g,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);h=Bvb(g,295164)|0;h=wk[f[(f[h>>2]|0)+28>>2]&1023](h,10)|0;Cvb(g);rub(d,h)|0;Rtb(d)|0;d=Nv(b,201856,23)|0;d=Nv(jub(d,f[a+80>>2]|0)|0,201880,16)|0;h=a+88|0;d=Nv(pub(d,+p[h>>3])|0,201897,18)|0;h=Nv(pub(d,+p[h>>3]/i*1.0e3)|0,230109,2)|0;Ktb(g,h+(f[(f[h>>2]|0)+-12>>2]|0)|0);d=Bvb(g,295164)|0;d=wk[f[(f[d>>2]|0)+28>>2]&1023](d,10)|0;Cvb(g);rub(h,d)|0;Rtb(h)|0;h=Nv(b,201916,21)|0;h=Nv(jub(h,f[a+64>>2]|0)|0,201938,14)|0;d=a+72|0;h=Nv(pub(h,+p[d>>3])|0,201897,18)|0;d=Nv(pub(h,+p[d>>3]/i*1.0e3)|0,230109,2)|0;Ktb(g,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);h=Bvb(g,295164)|0;h=wk[f[(f[h>>2]|0)+28>>2]&1023](h,10)|0;Cvb(g);rub(d,h)|0;Rtb(d)|0;d=Nv(b,160292,21)|0;d=Nv(jub(d,f[a+96>>2]|0)|0,160314,13)|0;h=a+104|0;d=Nv(pub(d,+p[h>>3])|0,201897,18)|0;h=Nv(pub(d,+p[h>>3]/i*1.0e3)|0,230109,2)|0;Ktb(g,h+(f[(f[h>>2]|0)+-12>>2]|0)|0);d=Bvb(g,295164)|0;d=wk[f[(f[d>>2]|0)+28>>2]&1023](d,10)|0;Cvb(g);rub(h,d)|0;Rtb(h)|0;h=Nv(b,160054,34)|0;d=a+40|0;h=Nv(jub(h,f[d>>2]|0)|0,201523,20)|0;d=pub(h,+((f[e>>2]|0)>>>0)/+((f[d>>2]|0)>>>0))|0;Ktb(g,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);e=Bvb(g,295164)|0;e=wk[f[(f[e>>2]|0)+28>>2]&1023](e,10)|0;Cvb(g);rub(d,e)|0;Rtb(d)|0;Vk[f[(f[a>>2]|0)+24>>2]&1023](a,b);u=c;return}function Vw(a,b){a=a|0;b=b|0;var c=0,d=0,e=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,v=0,w=0;w=u;u=u+16|0;v=w;g=Nv(b,160013,40)|0;Ktb(v,g+(f[(f[g>>2]|0)+-12>>2]|0)|0);t=Bvb(v,295164)|0;t=wk[f[(f[t>>2]|0)+28>>2]&1023](t,10)|0;Cvb(v);rub(g,t)|0;Rtb(g)|0;g=f[a+44>>2]|0;t=a+48|0;if((g|0)==(t|0)){g=0;e=0;d=0;c=0}else{e=0;d=0;c=0;j=0;do{k=f[g+28>>2]|0;r=k+72|0;o=f[r>>2]|0;n=(o|0)==0;if(n)h=0;else{h=0;i=o;do{h=h+1|0;i=f[i+64>>2]|0}while((i|0)!=0)}j=h+j|0;s=k+44|0;c=(f[s>>2]|0)+c|0;q=k+56|0;m=f[q>>2]|0;d=m+d|0;p=k+68|0;l=k+40|0;k=f[l>>2]|0;if(n)h=0;else{h=0;i=o;do{h=h+1|0;i=f[i+64>>2]|0}while((i|0)!=0)}e=(W(h+m|0,k)|0)+e|0;k=Nv(b,201544,8)|0;k=Nv(jub(k,f[l>>2]|0)|0,160089,39)|0;i=f[r>>2]|0;if(!i)h=0;else{h=0;do{h=h+1|0;i=f[i+64>>2]|0}while((i|0)!=0)}h=Nv(jub(k,h)|0,160129,31)|0;h=Nv(jub(h,f[s>>2]|0)|0,201623,21)|0;h=Nv(jub(h,f[q>>2]|0)|0,201645,28)|0;h=jub(h,f[p>>2]|0)|0;Ktb(v,h+(f[(f[h>>2]|0)+-12>>2]|0)|0);s=Bvb(v,295164)|0;s=wk[f[(f[s>>2]|0)+28>>2]&1023](s,10)|0;Cvb(v);rub(h,s)|0;Rtb(h)|0;h=f[g+4>>2]|0;if(!h){h=g+8|0;i=f[h>>2]|0;if((f[i>>2]|0)==(g|0))g=i;else do{s=f[h>>2]|0;h=s+8|0;g=f[h>>2]|0}while((f[g>>2]|0)!=(s|0))}else{g=h;while(1){h=f[g>>2]|0;if(!h)break;else g=h}}}while((g|0)!=(t|0));g=j}t=jub(Nv(jub(Nv(jub(Nv(jub(Nv(b,201432,21)|0,g)|0,201454,12)|0,c)|0,201467,13)|0,d)|0,201481,13)|0,e)|0;Ktb(v,t+(f[(f[t>>2]|0)+-12>>2]|0)|0);s=Bvb(v,295164)|0;s=wk[f[(f[s>>2]|0)+28>>2]&1023](s,10)|0;Cvb(v);rub(t,s)|0;Rtb(t)|0;t=Nv(b,160054,34)|0;b=a+40|0;a=Nv(jub(t,f[b>>2]|0)|0,201523,20)|0;b=pub(a,+(e>>>0)/+((f[b>>2]|0)>>>0))|0;Ktb(v,b+(f[(f[b>>2]|0)+-12>>2]|0)|0);a=Bvb(v,295164)|0;a=wk[f[(f[a>>2]|0)+28>>2]&1023](a,10)|0;Cvb(v);rub(b,a)|0;Rtb(b)|0;u=w;return}function Ww(a,b,c){a=a|0;b=+b;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0.0;h=a+72|0;i=eDa()|0;j=fDa(i)|0;k=H;d=f[a+44>>2]|0;g=a+48|0;if((d|0)!=(g|0)&+p[c>>3]>0.0){e=d;while(1){fx(f[e+28>>2]|0,0.0,c);a=f[e+4>>2]|0;if(!a){d=e+8|0;a=f[d>>2]|0;if((f[a>>2]|0)!=(e|0))do{e=f[d>>2]|0;d=e+8|0;a=f[d>>2]|0}while((f[a>>2]|0)!=(e|0))}else while(1){d=f[a>>2]|0;if(!d)break;else a=d}if((a|0)!=(g|0)&+p[c>>3]>0.0)e=a;else break}}a=fDa(i)|0;d=H;if(d>>>0>k>>>0|(d|0)==(k|0)&a>>>0>j>>>0){k=ZFb(a|0,d|0,j|0,k|0)|0;l=+p[i+8>>3]*(+(k>>>0)+4294967296.0*+(H>>>0));b=+p[h>>3];b=l+b;p[h>>3]=b;return}else{k=ZFb(j|0,k|0,a|0,d|0)|0;b=-(+p[i+8>>3]*(+(k>>>0)+4294967296.0*+(H>>>0)));l=+p[h>>3];l=b+l;p[h>>3]=l;return}}function Xw(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0.0,k=0.0;e=a+72|0;g=eDa()|0;h=fDa(g)|0;i=H;b=f[a+44>>2]|0;d=a+48|0;if((b|0)!=(d|0)){c=b;while(1){dx(f[c+28>>2]|0);a=f[c+4>>2]|0;if(!a){b=c+8|0;a=f[b>>2]|0;if((f[a>>2]|0)!=(c|0))do{c=f[b>>2]|0;b=c+8|0;a=f[b>>2]|0}while((f[a>>2]|0)!=(c|0))}else while(1){b=f[a>>2]|0;if(!b)break;else a=b}if((a|0)==(d|0))break;else c=a}}b=fDa(g)|0;a=H;if(a>>>0>i>>>0|(a|0)==(i|0)&b>>>0>h>>>0){i=ZFb(b|0,a|0,h|0,i|0)|0;k=+p[g+8>>3]*(+(i>>>0)+4294967296.0*+(H>>>0));j=+p[e>>3];j=k+j;p[e>>3]=j;return}else{i=ZFb(h|0,i|0,b|0,a|0)|0;j=-(+p[g+8>>3]*(+(i>>>0)+4294967296.0*+(H>>>0)));k=+p[e>>3];k=j+k;p[e>>3]=k;return}}function Yw(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0.0,k=0.0;e=a+72|0;g=eDa()|0;h=fDa(g)|0;i=H;b=f[a+44>>2]|0;d=a+48|0;if((b|0)!=(d|0)){c=b;while(1){bx(f[c+28>>2]|0);a=f[c+4>>2]|0;if(!a){b=c+8|0;a=f[b>>2]|0;if((f[a>>2]|0)!=(c|0))do{c=f[b>>2]|0;b=c+8|0;a=f[b>>2]|0}while((f[a>>2]|0)!=(c|0))}else while(1){b=f[a>>2]|0;if(!b)break;else a=b}if((a|0)==(d|0))break;else c=a}}b=fDa(g)|0;a=H;if(a>>>0>i>>>0|(a|0)==(i|0)&b>>>0>h>>>0){i=ZFb(b|0,a|0,h|0,i|0)|0;k=+p[g+8>>3]*(+(i>>>0)+4294967296.0*+(H>>>0));j=+p[e>>3];j=k+j;p[e>>3]=j;return}else{i=ZFb(h|0,i|0,b|0,a|0)|0;j=-(+p[g+8>>3]*(+(i>>>0)+4294967296.0*+(H>>>0)));k=+p[e>>3];k=j+k;p[e>>3]=k;return}}function Zw(a){a=a|0;var b=0,c=0,d=0;b=f[a+44>>2]|0;d=a+48|0;if((b|0)==(d|0))return;c=b;while(1){_w(f[c+28>>2]|0);a=f[c+4>>2]|0;if(!a){b=c+8|0;a=f[b>>2]|0;if((f[a>>2]|0)!=(c|0))do{c=f[b>>2]|0;b=c+8|0;a=f[b>>2]|0}while((f[a>>2]|0)!=(c|0))}else while(1){b=f[a>>2]|0;if(!b)break;else a=b}if((a|0)==(d|0))break;else c=a}return}function _w(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;g=a+72|0;b=f[g>>2]|0;if(b|0){h=a+28|0;do{e=b+8|0;f[e>>2]=(f[e>>2]|0)+1;c=b;b=f[b+64>>2]|0;d=f[c+52>>2]|0;if(d|0?(l=d+8|0,f[l>>2]=(f[l>>2]|0)+1,$w(d,f[h>>2]|0,0),k=f[l>>2]|0,f[l>>2]=k-1,(k|0)==1):0)X4(d,1,1);l=f[e>>2]|0;f[e>>2]=l-1;if((l|0)==1)X4(c,1,1)}while((b|0)!=0)}f[g>>2]=0;f[a+76>>2]=0;e=a+60|0;b=a+68|0;if(f[b>>2]|0?(i=f[a+64>>2]|0,l=(f[e>>2]|0)+4|0,k=f[i>>2]|0,f[k+4>>2]=f[l>>2],f[f[l>>2]>>2]=k,f[b>>2]=0,(i|0)!=(e|0)):0){b=i;do{c=b;b=f[b+4>>2]|0;d=f[c+8>>2]|0;if(d|0?(k=d+8|0,l=f[k>>2]|0,f[k>>2]=l-1,(l|0)==1):0)X4(d,1,1);NDb(c)}while((b|0)!=(e|0))}e=a+48|0;b=a+56|0;if(f[b>>2]|0?(j=f[a+52>>2]|0,l=(f[e>>2]|0)+4|0,k=f[j>>2]|0,f[k+4>>2]=f[l>>2],f[f[l>>2]>>2]=k,f[b>>2]=0,(j|0)!=(e|0)):0){b=j;do{c=b;b=f[b+4>>2]|0;d=f[c+8>>2]|0;if(d|0?(k=d+8|0,l=f[k>>2]|0,f[k>>2]=l-1,(l|0)==1):0)X4(d,1,1);NDb(c)}while((b|0)!=(e|0))}j=a+44|0;k=f[j>>2]|0;f[j>>2]=0;j=W(f[a+40>>2]|0,k)|0;l=f[a+24>>2]|0;a=l+36|0;f[a>>2]=(f[a>>2]|0)-j;a=l+32|0;f[a>>2]=(f[a>>2]|0)-k;l=l+64|0;f[l>>2]=(f[l>>2]|0)+k;return}function $w(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;i=a+60|0;h=a+64|0;a=f[h>>2]|0;e=f[i>>2]|0;g=a-e>>2;do if(g>>>0<=b>>>0){d=b+1|0;if(d>>>0>g>>>0){ax(i,d-g|0);break}if(d>>>0<g>>>0){e=e+(d<<2)|0;if((e|0)!=(a|0))do{a=a+-4|0;d=f[a>>2]|0;if(d|0?(j=d+8|0,g=f[j>>2]|0,f[j>>2]=g-1,(g|0)==1):0)X4(d,1,1);f[a>>2]=0}while((a|0)!=(e|0));f[h>>2]=e}}while(0);a=(f[i>>2]|0)+(b<<2)|0;d=f[a>>2]|0;if((d|0)==(c|0))return;f[a>>2]=c;if(c|0){j=c+8|0;f[j>>2]=(f[j>>2]|0)+1}if(!d)return;c=d+8|0;j=f[c>>2]|0;f[c>>2]=j-1;if((j|0)!=1)return;X4(d,1,1);return}function ax(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=a+8|0;e=f[m>>2]|0;n=a+4|0;d=f[n>>2]|0;c=d;if(e-d>>2>>>0>=b>>>0){iGb(d|0,0,b<<2|0)|0;f[n>>2]=c+(b<<2);return}j=f[a>>2]|0;h=d-j>>2;d=h+b|0;g=j;if(d>>>0>1073741823)KEb(a);l=e-j|0;e=l>>1;e=l>>2>>>0<536870911?(e>>>0<d>>>0?d:e):1073741823;do if(e)if(e>>>0>1073741823){n=mb(8)|0;RDb(n,238482);f[n>>2]=144484;qb(n|0,84192,1464)}else{i=LDb(e<<2)|0;break}else i=0;while(0);d=i+(h<<2)|0;l=i+(e<<2)|0;iGb(d|0,0,b<<2|0)|0;k=d+(b<<2)|0;if((c|0)==(g|0))e=j;else{b=h+-1-((c+-4+(0-j)|0)>>>2)|0;while(1){c=c+-4|0;e=f[c>>2]|0;f[d+-4>>2]=e;if(e|0){j=e+8|0;f[j>>2]=(f[j>>2]|0)+1}if((c|0)==(g|0))break;else d=d+-4|0}e=f[a>>2]|0;d=i+(b<<2)|0;g=e;c=f[n>>2]|0}f[a>>2]=d;f[n>>2]=k;f[m>>2]=l;if((c|0)!=(g|0))do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(m=d+8|0,n=f[m>>2]|0,f[m>>2]=n-1,(n|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(g|0));if(!e)return;NDb(e);return}function bx(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;b=a+12|0;sk[f[(f[b>>2]|0)+8>>2]&2047](b)|0;if(f[a+68>>2]|0)cx(a);sk[f[(f[b>>2]|0)+12>>2]&2047](b)|0;k=a+72|0;c=f[k>>2]|0;if(!c){n=0;o=a+24|0;o=f[o>>2]|0;m=o+32|0;l=f[m>>2]|0;l=l+n|0;f[m>>2]=l;o=o+28|0;m=f[o>>2]|0;n=m-n|0;f[o>>2]=n;dx(a);return}l=a+48|0;m=a+56|0;n=a+76|0;o=a+28|0;b=0;do{j=c+8|0;f[j>>2]=(f[j>>2]|0)+1;e=c+64|0;i=c;c=f[e>>2]|0;f[j>>2]=(f[j>>2]|0)+1;h=LDb(12)|0;f[h>>2]=0;f[h+8>>2]=i;f[j>>2]=(f[j>>2]|0)+1;f[h+4>>2]=l;g=f[l>>2]|0;f[h>>2]=g;f[g+4>>2]=h;f[l>>2]=h;f[m>>2]=(f[m>>2]|0)+1;h=f[j>>2]|0;f[j>>2]=h-1;if((h|0)==1)X4(i,1,1);g=i+60|0;h=f[g>>2]|0;d=f[e>>2]|0;if(!h)f[k>>2]=d;else{f[h+64>>2]=d;d=f[e>>2]|0}f[((d|0)==0?n:d+60|0)>>2]=h;f[e>>2]=0;f[g>>2]=0;b=b+1|0;d=f[i+52>>2]|0;if(d|0?(g=d+8|0,f[g>>2]=(f[g>>2]|0)+1,$w(d,f[o>>2]|0,0),h=f[g>>2]|0,f[g>>2]=h-1,(h|0)==1):0)X4(d,1,1);h=f[j>>2]|0;f[j>>2]=h-1;if((h|0)==1)X4(i,1,1)}while((c|0)!=0);o=a+24|0;o=f[o>>2]|0;n=o+32|0;m=f[n>>2]|0;m=m+b|0;f[n>>2]=m;o=o+28|0;n=f[o>>2]|0;n=n-b|0;f[o>>2]=n;dx(a);return}function cx(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=a+60|0;o=a+68|0;m=f[o>>2]|0;if(!m)return;n=a+64|0;b=f[n>>2]|0;c=b;if((p|0)==(c|0))b=m;else{k=a+48|0;l=a+56|0;i=a+72|0;j=a+76|0;do{e=f[b+8>>2]|0;b=(e|0)==0;if(!b){h=e+8|0;f[h>>2]=(f[h>>2]|0)+1}d=LDb(12)|0;f[d>>2]=0;f[d+8>>2]=e;if(!b){h=e+8|0;f[h>>2]=(f[h>>2]|0)+1}f[d+4>>2]=k;h=f[k>>2]|0;f[d>>2]=h;f[h+4>>2]=d;f[k>>2]=d;f[l>>2]=(f[l>>2]|0)+1;if(!b?(g=e+8|0,h=f[g>>2]|0,f[g>>2]=h-1,(h|0)==1):0)X4(e,1,1);g=e+60|0;h=f[g>>2]|0;d=e+64|0;b=f[d>>2]|0;if(!h)f[i>>2]=b;else{f[h+64>>2]=b;b=f[d>>2]|0}f[((b|0)==0?j:b+60|0)>>2]=h;f[d>>2]=0;f[g>>2]=0;b=f[c+4>>2]|0;c=b}while((p|0)!=(c|0));b=f[o>>2]|0}a=f[a+24>>2]|0;l=a+32|0;f[l>>2]=(f[l>>2]|0)+m;a=a+28|0;f[a>>2]=(f[a>>2]|0)-m;if(!b)return;b=f[n>>2]|0;n=(f[p>>2]|0)+4|0;m=f[b>>2]|0;f[m+4>>2]=f[n>>2];f[f[n>>2]>>2]=m;f[o>>2]=0;if((b|0)==(p|0))return;do{c=b;b=f[b+4>>2]|0;d=f[c+8>>2]|0;if(d|0?(n=d+8|0,o=f[n>>2]|0,f[n>>2]=o-1,(o|0)==1):0)X4(d,1,1);NDb(c)}while((b|0)!=(p|0));return}function dx(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;b=a+12|0;sk[f[(f[b>>2]|0)+8>>2]&2047](b)|0;if(f[a+68>>2]|0)cx(a);sk[f[(f[b>>2]|0)+12>>2]&2047](b)|0;e=a+48|0;d=a+52|0;b=f[d>>2]|0;c=b;if((e|0)!=(c|0))do{ex(f[b+8>>2]|0);b=f[c+4>>2]|0;c=b}while((e|0)!=(c|0));c=a+56|0;b=f[c>>2]|0;h=a+44|0;f[h>>2]=(f[h>>2]|0)-b;h=W(f[a+40>>2]|0,b)|0;a=f[a+24>>2]|0;g=a+36|0;f[g>>2]=(f[g>>2]|0)-h;g=a+32|0;f[g>>2]=(f[g>>2]|0)-b;a=a+64|0;f[a>>2]=(f[a>>2]|0)+b;if(!b)return;b=f[d>>2]|0;h=(f[e>>2]|0)+4|0;g=f[b>>2]|0;f[g+4>>2]=f[h>>2];f[f[h>>2]>>2]=g;f[c>>2]=0;if((b|0)==(e|0))return;do{c=b;b=f[b+4>>2]|0;d=f[c+8>>2]|0;if(d|0?(g=d+8|0,h=f[g>>2]|0,f[g>>2]=h-1,(h|0)==1):0)X4(d,1,1);NDb(c)}while((b|0)!=(e|0));return}function ex(a){a=a|0;var c=0,d=0,e=0,g=0,h=0;d=u;u=u+16|0;c=d;if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>4){g=Nv(Mv(5)|0,159856,33)|0;e=a+16|0;g=jub(g,f[e>>2]|0)|0;Ktb(c,g+(f[(f[g>>2]|0)+-12>>2]|0)|0);h=Bvb(c,295164)|0;h=wk[f[(f[h>>2]|0)+28>>2]&1023](h,10)|0;Cvb(c);rub(g,h)|0;Rtb(g)|0;c=e}else c=a+16|0;if(!(f[c>>2]|0)){u=d;return}Vk[f[(f[a+72>>2]|0)+736>>2]&1023](1,c);f[c>>2]=0;f[a+32>>2]=0;f[a+44>>2]=f[a+40>>2];u=d;return}function fx(a,c,d){a=a|0;c=+c;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0,v=0,w=0;w=u;u=u+16|0;h=w;e=a+12|0;sk[f[(f[e>>2]|0)+8>>2]&2047](e)|0;if(f[a+68>>2]|0)cx(a);sk[f[(f[e>>2]|0)+12>>2]&2047](e)|0;t=a+24|0;g=f[t>>2]|0;e=f[g+36>>2]|0;g=f[g+40>>2]|0;if(e>>>0<=g>>>0){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=3){u=w;return}d=Nv(Mv(4)|0,159890,38)|0;Ktb(h,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);a=Bvb(h,295164)|0;a=wk[f[(f[a>>2]|0)+28>>2]&1023](a,10)|0;Cvb(h);rub(d,a)|0;Rtb(d)|0;u=w;return}v=a+56|0;if(!((f[v>>2]|0)!=0&!(+p[d>>3]<=0.0))){u=w;return}e=e-g|0;r=a+40|0;n=~~+V(+(+(e>>>0)/+((f[r>>2]|0)>>>0)))>>>0;if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>3){s=Nv(Mv(4)|0,159929,41)|0;s=Nv(jub(s,f[(f[t>>2]|0)+36>>2]|0)|0,159971,41)|0;s=jub(s,f[(f[t>>2]|0)+40>>2]|0)|0;Ktb(h,s+(f[(f[s>>2]|0)+-12>>2]|0)|0);q=Bvb(h,295164)|0;q=wk[f[(f[q>>2]|0)+28>>2]&1023](q,10)|0;Cvb(h);rub(s,q)|0;Rtb(s)|0}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>3){s=Nv(jub(Nv(jub(Nv(Mv(4)|0,201330,19)|0,e)|0,201350,26)|0,n)|0,201377,6)|0;s=Nv(lub(s,f[v>>2]|0)|0,201384,8)|0;Ktb(h,s+(f[(f[s>>2]|0)+-12>>2]|0)|0);q=Bvb(h,295164)|0;q=wk[f[(f[q>>2]|0)+28>>2]&1023](q,10)|0;Cvb(h);rub(s,q)|0;Rtb(s)|0}s=eDa()|0;o=fDa(s)|0;q=H;m=a+52|0;e=f[m>>2]|0;i=a+48|0;h=e;a:do if((i|0)==(h|0))j=0;else{l=s+8|0;g=0;while(1){j=fDa(s)|0;k=H;if(k>>>0>q>>>0|(k|0)==(q|0)&j>>>0>o>>>0){k=ZFb(j|0,k|0,o|0,q|0)|0;c=+p[l>>3]*(+(k>>>0)+4294967296.0*+(H>>>0))}else{k=ZFb(o|0,q|0,j|0,k|0)|0;c=-(+p[l>>3]*(+(k>>>0)+4294967296.0*+(H>>>0)))}if(!(g>>>0<n>>>0?c<+p[d>>3]:0)){j=g;i=h;break a}ex(f[e+8>>2]|0);g=g+1|0;e=f[h+4>>2]|0;h=e;if((i|0)==(h|0)){j=g;break}}}while(0);e=f[m>>2]|0;if((e|0)!=(i|0)){n=(f[i>>2]|0)+4|0;m=f[e>>2]|0;f[m+4>>2]=f[n>>2];f[f[n>>2]>>2]=m;do{g=e;e=f[e+4>>2]|0;f[v>>2]=(f[v>>2]|0)+-1;h=f[g+8>>2]|0;if(h|0?(m=h+8|0,n=f[m>>2]|0,f[m>>2]=n-1,(n|0)==1):0)X4(h,1,1);NDb(g)}while((e|0)!=(i|0))}e=a+44|0;f[e>>2]=(f[e>>2]|0)-j;e=f[t>>2]|0;g=e+36|0;a=(f[g>>2]|0)-(W(f[r>>2]|0,j)|0)|0;f[g>>2]=a;g=e+32|0;f[g>>2]=(f[g>>2]|0)-j;e=e+64|0;f[e>>2]=(f[e>>2]|0)+j;e=fDa(s)|0;g=H;if(g>>>0>q>>>0|(g|0)==(q|0)&e>>>0>o>>>0){a=ZFb(e|0,g|0,o|0,q|0)|0;c=+p[s+8>>3]*(+(a>>>0)+4294967296.0*+(H>>>0))}else{a=ZFb(o|0,q|0,e|0,g|0)|0;c=-(+p[s+8>>3]*(+(a>>>0)+4294967296.0*+(H>>>0)))}p[d>>3]=+p[d>>3]-c;fDa(s)|0;u=w;return}function gx(a,b){a=a|0;b=b|0;var c=0,d=0;if(!b)return;gx(a,f[b>>2]|0);gx(a,f[b+4>>2]|0);a=f[b+28>>2]|0;if(a|0?(d=a+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(a,1,1);NDb(b);return}function hx(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;d=u;u=u+16|0;c=d;f[a>>2]=88660;if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>3){i=Mv(4)|0;j=a+12|0;e=j+11|0;k=b[e>>0]|0;g=k<<24>>24<0;h=a+16|0;k=Nv(Nv(i,g?f[j>>2]|0:j,g?f[h>>2]|0:k&255)|0,160328,3)|0;g=b[e>>0]|0;i=g<<24>>24<0;g=qub(Nv(Nv(k,i?f[j>>2]|0:j,i?f[h>>2]|0:g&255)|0,160332,2)|0,a)|0;Ktb(c,g+(f[(f[g>>2]|0)+-12>>2]|0)|0);h=Bvb(c,295164)|0;h=wk[f[(f[h>>2]|0)+28>>2]&1023](h,10)|0;Cvb(c);rub(g,h)|0;Rtb(g)|0;c=e}else c=a+12+11|0;if((b[c>>0]|0)>=0){V4(a);u=d;return}NDb(f[a+12>>2]|0);V4(a);u=d;return}function ix(a){a=a|0;Ni()}function jx(a,b){a=a|0;b=b|0;return}function kx(a){a=a|0;return}function lx(a,b){a=a|0;b=b|0;return}function mx(a,b){a=a|0;b=b|0;return}function nx(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;f[a>>2]=88712;tx(a,0);d=a+60|0;e=f[d>>2]|0;if(e|0){g=a+64|0;b=f[g>>2]|0;if((b|0)==(e|0))b=e;else{do{b=b+-4|0;c=f[b>>2]|0;if(c|0?(i=c+8|0,h=f[i>>2]|0,f[i>>2]=h-1,(h|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(e|0));b=f[d>>2]|0}f[g>>2]=e;NDb(b)}b=f[a+48>>2]|0;if(!b){ow(a);return}f[a+52>>2]=b;NDb(b);ow(a);return}function ox(a){a=a|0;Ni()}function px(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,58480,0)|0)!=0;return b|0}function qx(a){a=a|0;return 241076}function rx(a){a=a|0;return 160427}function sx(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0;e=a+60|0;g=a+64|0;a=f[g>>2]|0;c=f[e>>2]|0;d=a-c>>2;if(d>>>0<b>>>0){ax(e,b-d|0);return}if(d>>>0<=b>>>0)return;d=c+(b<<2)|0;if((d|0)!=(a|0))do{a=a+-4|0;c=f[a>>2]|0;if(c|0?(b=c+8|0,e=f[b>>2]|0,f[b>>2]=e-1,(e|0)==1):0)X4(c,1,1);f[a>>2]=0}while((a|0)!=(d|0));f[g>>2]=d;return}function tx(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;j=u;u=u+16|0;d=j;if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>4){i=Nv(qub(Nv(Mv(5)|0,160395,31)|0,c)|0,239531,1)|0;Ktb(d,i+(f[(f[i>>2]|0)+-12>>2]|0)|0);h=Bvb(d,295164)|0;h=wk[f[(f[h>>2]|0)+28>>2]&1023](h,10)|0;Cvb(d);rub(i,h)|0;Rtb(i)|0}if(!c){h=a+60|0;g=a+64|0;d=f[g>>2]|0;c=f[h>>2]|0;if((d|0)==(c|0)){u=j;return}e=0;do{if(f[c+(e<<2)>>2]|0){c=d-c>>2;if(c>>>0<=e>>>0)ax(h,e+1-c|0);c=f[h>>2]|0;d=f[c+(e<<2)>>2]|0;a=f[d+56>>2]|0;if(a){ux(a,d);c=f[h>>2]|0}c=(f[g>>2]|0)-c>>2;if(c>>>0<=e>>>0)ax(h,e+1-c|0);c=(f[h>>2]|0)+(e<<2)|0;d=f[c>>2]|0;if(d|0?(f[c>>2]=0,a=d+8|0,i=f[a>>2]|0,f[a>>2]=i-1,(i|0)==1):0)X4(d,1,1)}e=e+1|0;d=f[g>>2]|0;c=f[h>>2]|0}while(e>>>0<d-c>>2>>>0);u=j;return}h=f[c+124>>2]|0;i=a+60|0;g=a+64|0;c=f[g>>2]|0;d=f[i>>2]|0;a=c-d>>2;do if(a>>>0<=h>>>0){e=h+1|0;if(e>>>0>a>>>0){ax(i,e-a|0);break}if(e>>>0<a>>>0){a=d+(e<<2)|0;if((a|0)!=(c|0))do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(k=d+8|0,e=f[k>>2]|0,f[k>>2]=e-1,(e|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(a|0));f[g>>2]=a}}while(0);d=f[i>>2]|0;if(!(f[d+(h<<2)>>2]|0)){u=j;return}c=f[g>>2]|0;a=c-d>>2;do if(a>>>0<=h>>>0){e=h+1|0;if(e>>>0>a>>>0){ax(i,e-a|0);break}if(e>>>0<a>>>0){a=d+(e<<2)|0;if((a|0)!=(c|0))do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(e=d+8|0,k=f[e>>2]|0,f[e>>2]=k-1,(k|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(a|0));f[g>>2]=a}}while(0);c=f[i>>2]|0;d=f[c+(h<<2)>>2]|0;a=f[d+56>>2]|0;if(!a)d=c;else{ux(a,d);d=f[i>>2]|0}c=f[g>>2]|0;a=c-d>>2;do if(a>>>0<=h>>>0){e=h+1|0;if(e>>>0>a>>>0){ax(i,e-a|0);break}if(e>>>0<a>>>0){a=d+(e<<2)|0;if((a|0)!=(c|0))do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(e=d+8|0,k=f[e>>2]|0,f[e>>2]=k-1,(k|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(a|0));f[g>>2]=a}}while(0);c=(f[i>>2]|0)+(h<<2)|0;d=f[c>>2]|0;if(!d){u=j;return}f[c>>2]=0;i=d+8|0;k=f[i>>2]|0;f[i>>2]=k-1;if((k|0)!=1){u=j;return}X4(d,1,1);u=j;return}function ux(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;g=a+12|0;sk[f[(f[g>>2]|0)+8>>2]&2047](g)|0;f[b+52>>2]=0;f[b+20>>2]=0;f[b+24>>2]=0;f[b+28>>2]=0;f[b+44>>2]=f[b+40>>2];c=(b|0)==0;if(!c){e=b+8|0;f[e>>2]=(f[e>>2]|0)+1}d=a+60|0;e=LDb(12)|0;f[e>>2]=0;f[e+8>>2]=b;if(!c){h=b+8|0;f[h>>2]=(f[h>>2]|0)+1}f[e+4>>2]=d;h=f[d>>2]|0;f[e>>2]=h;f[h+4>>2]=e;f[d>>2]=e;h=a+68|0;f[h>>2]=(f[h>>2]|0)+1;if(c){h=f[g>>2]|0;h=h+12|0;h=f[h>>2]|0;sk[h&2047](g)|0;return}e=b+8|0;h=f[e>>2]|0;f[e>>2]=h-1;if((h|0)!=1){h=f[g>>2]|0;h=h+12|0;h=f[h>>2]|0;sk[h&2047](g)|0;return}X4(b,1,1);h=f[g>>2]|0;h=h+12|0;h=f[h>>2]|0;sk[h&2047](g)|0;return}function vx(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;d=f[a>>2]|0;if(!d)return;e=a+4|0;b=f[e>>2]|0;if((b|0)==(d|0))b=d;else{do{b=b+-4|0;c=f[b>>2]|0;if(c|0?(h=c+8|0,g=f[h>>2]|0,f[h>>2]=g-1,(g|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(d|0));b=f[a>>2]|0}f[e>>2]=d;NDb(b);return}function wx(a){a=a|0;var b=0;b=f[a>>2]|0;if(!b)return;f[a+4>>2]=b;NDb(b);return}function xx(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;f[a>>2]=88884;e=a+40|0;b=f[e>>2]|0;if(b|0){c=a+36|0;Kx(b,f[c>>2]|0);b=f[e>>2]|0;if(b){f[e>>2]=0;h=b+8|0;g=f[h>>2]|0;f[h>>2]=g-1;if((g|0)==1)X4(b,1,1);b=f[e>>2]|0;if(b)b=Lx(b,a)|0;else b=0}else b=0;f[c>>2]=b}b=a+44|0;c=f[b>>2]|0;if(c|0?(d=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,g=d+8|0,h=f[g>>2]|0,f[g>>2]=h-1,(h|0)==1):0)X4(d,1,1);f[b>>2]=0;b=f[e>>2]|0;if(!b){f[e>>2]=0;ow(a);return}g=b+8|0;h=f[g>>2]|0;f[g>>2]=h-1;if((h|0)!=1){f[e>>2]=0;ow(a);return}X4(b,1,1);f[e>>2]=0;ow(a);return}function yx(a){a=a|0;Ni()}function zx(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,58496,0)|0)!=0;return b|0}function Ax(a){a=a|0;return 241076}function Bx(a){a=a|0;return 160491}function Cx(a){a=a|0;return 0}function Dx(a){a=a|0;return 0}function Ex(a,b){a=a|0;b=b|0;a=f[a+40>>2]|0;if(!a)return;Vk[f[(f[a>>2]|0)+156>>2]&1023](a,b);return}function Fx(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0;e=u;u=u+16|0;d=e;if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>4){g=Nv(qub(Nv(Mv(5)|0,160461,29)|0,c)|0,239531,1)|0;Ktb(d,g+(f[(f[g>>2]|0)+-12>>2]|0)|0);h=Bvb(d,295164)|0;h=wk[f[(f[h>>2]|0)+28>>2]&1023](h,10)|0;Cvb(d);rub(g,h)|0;Rtb(g)|0}a=f[a+40>>2]|0;if(!a){u=e;return}Vk[f[(f[a>>2]|0)+160>>2]&1023](a,c);u=e;return}function Gx(a){a=a|0;return 0}function Hx(a){a=a|0;return 0}function Ix(a){a=a|0;return 0}function Jx(a){a=a|0;return 0}function Kx(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;k=u;u=u+16|0;d=k;j=a+52|0;i=f[j>>2]|0;g=f[a+48>>2]|0;h=i-g>>2;if(h>>>0<=c>>>0){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=1){u=k;return}j=Nv(Mv(2)|0,160502,6)|0;a=sk[f[(f[a>>2]|0)+28>>2]&2047](a)|0;a=Nv(jub(Nv(Nv(j,a,Zob(a)|0)|0,160509,19)|0,c)|0,160529,15)|0;Ktb(d,a+(f[(f[a>>2]|0)+-12>>2]|0)|0);j=Bvb(d,295164)|0;j=wk[f[(f[j>>2]|0)+28>>2]&1023](j,10)|0;Cvb(d);rub(a,j)|0;Rtb(a)|0;u=k;return}d=c+1|0;if(d>>>0<h>>>0?(f[(f[g+(d<<2)>>2]|0)+36>>2]=c,e=c+2|0,(e|0)!=(h|0)):0)while(1){f[(f[g+(e<<2)>>2]|0)+36>>2]=d;d=e+1|0;if((d|0)==(h|0))break;else{l=e;e=d;d=l}}e=g+(c<<2)|0;c=e+4|0;d=i-c|0;if(d|0)hGb(e|0,c|0,d|0)|0;f[j>>2]=e+(d>>2<<2);h=a+60|0;g=a+64|0;d=f[g>>2]|0;e=f[h>>2]|0;if((d|0)==(e|0)){u=k;return}c=0;do{if(f[e+(c<<2)>>2]|0){e=d-e>>2;if(e>>>0<=c>>>0){ax(h,c+1-e|0);d=f[g>>2]|0}e=f[h>>2]|0;l=f[e+(c<<2)>>2]|0;f[l+44>>2]=f[l+40>>2];b[l+36>>0]=1}c=c+1|0}while(c>>>0<d-e>>2>>>0);u=k;return}function Lx(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;l=u;u=u+16|0;g=l;f[g>>2]=c;h=c;if(!c){k=0;u=l;return k|0}j=a+48|0;d=f[j>>2]|0;k=a+52|0;e=f[k>>2]|0;a:do if((d|0)!=(e|0)){while(1){if((f[d>>2]|0)==(c|0))break;d=d+4|0;if((d|0)==(e|0)){d=e;break a}}k=f[c+36>>2]|0;u=l;return k|0}while(0);if((d|0)==(f[a+56>>2]|0))Ox(j,g);else{f[d>>2]=h;f[k>>2]=(f[k>>2]|0)+4}i=a+60|0;a=a+64|0;d=f[a>>2]|0;c=f[i>>2]|0;if((d|0)!=(c|0)){h=0;e=c;g=c;while(1){if(!(f[e+(h<<2)>>2]|0))c=g;else{c=d-e>>2;if(c>>>0>h>>>0)c=g;else{ax(i,h+1-c|0);d=f[a>>2]|0;c=f[i>>2]|0}b[(f[c+(h<<2)>>2]|0)+36>>0]=1;e=c}h=h+1|0;if(h>>>0>=d-e>>2>>>0)break;else g=c}}k=((f[k>>2]|0)-(f[j>>2]|0)>>2)+-1|0;u=l;return k|0}function Mx(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(!b){f[a>>2]=0;return}b=b+(f[(f[b>>2]|0)+-12>>2]|0)|0;d=b+8|0;c=f[d>>2]|0;f[d>>2]=c-1;if((c|0)!=1){f[a>>2]=0;return}X4(b,1,1);f[a>>2]=0;return}function Nx(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(b|0?(d=b+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(b,1,1);f[a>>2]=0;return}function Ox(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;i=a+4|0;j=f[a>>2]|0;k=(f[i>>2]|0)-j|0;g=k>>2;c=g+1|0;if(c>>>0>1073741823)KEb(a);l=a+8|0;e=(f[l>>2]|0)-j|0;h=e>>1;h=e>>2>>>0<536870911?(h>>>0<c>>>0?c:h):1073741823;do if(h)if(h>>>0>1073741823){l=mb(8)|0;RDb(l,238482);f[l>>2]=144484;qb(l|0,84192,1464)}else{e=LDb(h<<2)|0;d=e;break}else{d=0;e=0}while(0);c=d+(g<<2)|0;f[c>>2]=f[b>>2];if((k|0)>0)gGb(e|0,j|0,k|0)|0;f[a>>2]=d;f[i>>2]=c+4;f[l>>2]=d+(h<<2);if(!j)return;NDb(j);return}function Px(a){a=a|0;nx(a);NDb(a);return}function Qx(a){a=a|0;var c=0;a=LDb(72)|0;BCa(a);c=a+12|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[a+24>>2]=2;f[a+28>>2]=0;f[a>>2]=88712;c=a+32|0;f[a+48>>2]=0;f[a+52>>2]=0;f[a+56>>2]=0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;b[c+12>>0]=0;Vx(a+60|0);f[a>>2]=89080;f[c>>2]=34962;f[a+36>>2]=35044;return a|0}function Rx(a,c){a=a|0;c=c|0;var d=0;d=LDb(72)|0;nw(d,a,c);f[d>>2]=88712;f[d+32>>2]=0;f[d+36>>2]=0;f[d+40>>2]=0;b[d+44>>0]=b[a+44>>0]|0;f[d+48>>2]=0;f[d+52>>2]=0;f[d+56>>2]=0;Vx(d+60|0);f[d>>2]=89080;return d|0}function Sx(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,58512,0)|0)!=0;return b|0}function Tx(a){a=a|0;return 241076}function Ux(a){a=a|0;return 160564}function Vx(a){a=a|0;var b=0,c=0,d=0,e=0,g=0;Wx()|0;b=f[(f[72465]|0)+84>>2]|0;f[a>>2]=0;c=a+4|0;f[c>>2]=0;d=a+8|0;f[d>>2]=0;if(!b)return;if(b>>>0>1073741823)KEb(a);e=b<<2;g=LDb(e)|0;f[a>>2]=g;b=g+(b<<2)|0;f[d>>2]=b;iGb(g|0,0,e|0)|0;f[c>>2]=b;return}function Wx(){var a=0;if(b[287960]|0)return 289860;if(!(PFb(287960)|0))return 289860;a=LDb(268)|0;Xx(a);f[72465]=a;a=a+8|0;f[a>>2]=(f[a>>2]|0)+1;return 289860}function Xx(a){a=a|0;var c=0,d=0;CCa(a,1);f[a>>2]=89252;c=a+104|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;c=a+132|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;d=a+168|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;d=a+184|0;f[a+216>>2]=0;f[a+220>>2]=0;f[a+224>>2]=0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;f[d+12>>2]=0;f[d+16>>2]=0;f[d+20>>2]=0;yGa(a+232|0,0);f[a+248>>2]=0;f[a+252>>2]=0;f[a+244>>2]=a+248;f[a+260>>2]=0;f[a+264>>2]=0;f[a+256>>2]=a+260;f[a+12>>2]=0;b[a+16>>0]=0;f[a+20>>2]=1;n[a+24>>2]=.05000000074505806;n[a+28>>2]=.32499998807907104;n[a+32>>2]=.25999999046325684;n[a+36>>2]=.5;d=a+40|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;f[d+12>>2]=0;b[d+16>>0]=0;b[a+57>>0]=1;b[a+58>>0]=1;b[a+59>>0]=1;d=a+60|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;f[d+12>>2]=0;f[d+16>>2]=0;f[d+20>>2]=0;f[a+84>>2]=32;f[a+88>>2]=0;b[a+92>>0]=0;b[a+93>>0]=0;b[a+94>>0]=1;f[a+96>>2]=2;f[a+100>>2]=1;f[a+116>>2]=0;f[a+120>>2]=0;f[a+124>>2]=5;f[a+128>>2]=5;eEb(c,160583)|0;c=a+144|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;f[c+16>>2]=0;Zx(a,2,1);b[a+180>>0]=0;f[a+208>>2]=0;b[a+212>>0]=0;f[a+228>>2]=4;_x(a);return}function Yx(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(b|0?(d=b+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(b,1,1);f[a>>2]=0;return}function Zx(a,c,e){a=a|0;c=c|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=u;u=u+32|0;k=m+12|0;l=m;f[a+164>>2]=c;if(!e){u=m;return}switch(c|0){case 4:{c=LDb(32)|0;f[k>>2]=c;f[k+8>>2]=-2147483616;f[k+4>>2]=16;h=c;i=162262;j=h+16|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[c+16>>0]=0;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;c=LDb(16)|0;f[l>>2]=c;f[l+8>>2]=-2147483632;f[l+4>>2]=15;h=c;i=162279;j=h+15|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[c+15>>0]=0;g=a+232|0;sk[f[(f[g>>2]|0)+8>>2]&2047](g)|0;e=a+244|0;$Db(Ju(e,k)|0,l)|0;sk[f[(f[g>>2]|0)+12>>2]&2047](g)|0;if((b[l+11>>0]|0)<0)NDb(f[l>>2]|0);if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);c=LDb(32)|0;f[k>>2]=c;f[k+8>>2]=-2147483616;f[k+4>>2]=19;h=c;i=162295;j=h+19|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[c+19>>0]=0;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;c=LDb(32)|0;f[l>>2]=c;f[l+8>>2]=-2147483616;f[l+4>>2]=22;h=c;i=162315;j=h+22|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[c+22>>0]=0;sk[f[(f[g>>2]|0)+8>>2]&2047](g)|0;$Db(Ju(e,k)|0,l)|0;sk[f[(f[g>>2]|0)+12>>2]&2047](g)|0;if((b[l+11>>0]|0)<0)NDb(f[l>>2]|0);if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);c=LDb(16)|0;f[k>>2]=c;f[k+8>>2]=-2147483632;f[k+4>>2]=14;h=c;i=162338;j=h+14|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[c+14>>0]=0;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;j=l+11|0;b[j>>0]=2;d[l>>1]=28265;b[l+2>>0]=0;sk[f[(f[g>>2]|0)+8>>2]&2047](g)|0;$Db(Ju(e,k)|0,l)|0;sk[f[(f[g>>2]|0)+12>>2]&2047](g)|0;if((b[j>>0]|0)<0)NDb(f[l>>2]|0);if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);c=LDb(16)|0;f[k>>2]=c;f[k+8>>2]=-2147483632;f[k+4>>2]=15;h=c;i=162353;j=h+15|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[c+15>>0]=0;j=l+4|0;f[j>>2]=0;f[j+4>>2]=0;j=l+11|0;b[j>>0]=3;b[l>>0]=b[162369]|0;b[l+1>>0]=b[162370]|0;b[l+2>>0]=b[162371]|0;b[l+3>>0]=0;sk[f[(f[g>>2]|0)+8>>2]&2047](g)|0;$Db(Ju(e,k)|0,l)|0;sk[f[(f[g>>2]|0)+12>>2]&2047](g)|0;if((b[j>>0]|0)<0)NDb(f[l>>2]|0);if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=3){u=m;return}l=Nv(Mv(4)|0,162373,29)|0;Ktb(k,l+(f[(f[l>>2]|0)+-12>>2]|0)|0);j=Bvb(k,295164)|0;j=wk[f[(f[j>>2]|0)+28>>2]&1023](j,10)|0;Cvb(k);rub(l,j)|0;Rtb(l)|0;u=m;return}case 2:{c=LDb(32)|0;f[k>>2]=c;f[k+8>>2]=-2147483616;f[k+4>>2]=16;h=c;i=162262;j=h+16|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[c+16>>0]=0;g=a+232|0;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;sk[f[(f[g>>2]|0)+8>>2]&2047](g)|0;e=a+244|0;$Db(Ju(e,k)|0,l)|0;sk[f[(f[g>>2]|0)+12>>2]&2047](g)|0;if((b[l+11>>0]|0)<0)NDb(f[l>>2]|0);if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);c=LDb(32)|0;f[k>>2]=c;f[k+8>>2]=-2147483616;f[k+4>>2]=19;h=c;i=162295;j=h+19|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[c+19>>0]=0;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;c=LDb(32)|0;f[l>>2]=c;f[l+8>>2]=-2147483616;f[l+4>>2]=22;h=c;i=162315;j=h+22|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[c+22>>0]=0;sk[f[(f[g>>2]|0)+8>>2]&2047](g)|0;$Db(Ju(e,k)|0,l)|0;sk[f[(f[g>>2]|0)+12>>2]&2047](g)|0;if((b[l+11>>0]|0)<0)NDb(f[l>>2]|0);if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);c=LDb(16)|0;f[k>>2]=c;f[k+8>>2]=-2147483632;f[k+4>>2]=14;h=c;i=162338;j=h+14|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[c+14>>0]=0;f[l+8>>2]=0;j=l+11|0;b[j>>0]=7;b[l>>0]=b[162403]|0;b[l+1>>0]=b[162404]|0;b[l+2>>0]=b[162405]|0;b[l+3>>0]=b[162406]|0;b[l+4>>0]=b[162407]|0;b[l+5>>0]=b[162408]|0;b[l+6>>0]=b[162409]|0;b[l+7>>0]=0;sk[f[(f[g>>2]|0)+8>>2]&2047](g)|0;$Db(Ju(e,k)|0,l)|0;sk[f[(f[g>>2]|0)+12>>2]&2047](g)|0;if((b[j>>0]|0)<0)NDb(f[l>>2]|0);if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);c=LDb(16)|0;f[k>>2]=c;f[k+8>>2]=-2147483632;f[k+4>>2]=15;h=c;i=162353;j=h+15|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[c+15>>0]=0;f[l+8>>2]=0;j=l+11|0;b[j>>0]=7;b[l>>0]=b[162403]|0;b[l+1>>0]=b[162404]|0;b[l+2>>0]=b[162405]|0;b[l+3>>0]=b[162406]|0;b[l+4>>0]=b[162407]|0;b[l+5>>0]=b[162408]|0;b[l+6>>0]=b[162409]|0;b[l+7>>0]=0;sk[f[(f[g>>2]|0)+8>>2]&2047](g)|0;$Db(Ju(e,k)|0,l)|0;sk[f[(f[g>>2]|0)+12>>2]&2047](g)|0;if((b[j>>0]|0)<0)NDb(f[l>>2]|0);if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=3){u=m;return}l=Nv(Mv(4)|0,162411,29)|0;Ktb(k,l+(f[(f[l>>2]|0)+-12>>2]|0)|0);j=Bvb(k,295164)|0;j=wk[f[(f[j>>2]|0)+28>>2]&1023](j,10)|0;Cvb(k);rub(l,j)|0;Rtb(l)|0;u=m;return}case 3:{c=LDb(32)|0;f[k>>2]=c;f[k+8>>2]=-2147483616;f[k+4>>2]=16;h=c;i=162262;j=h+16|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[c+16>>0]=0;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;c=LDb(16)|0;f[l>>2]=c;f[l+8>>2]=-2147483632;f[l+4>>2]=12;h=c;i=162441;j=h+12|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[c+12>>0]=0;g=a+232|0;sk[f[(f[g>>2]|0)+8>>2]&2047](g)|0;e=a+244|0;$Db(Ju(e,k)|0,l)|0;sk[f[(f[g>>2]|0)+12>>2]&2047](g)|0;if((b[l+11>>0]|0)<0)NDb(f[l>>2]|0);if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);c=LDb(32)|0;f[k>>2]=c;f[k+8>>2]=-2147483616;f[k+4>>2]=19;h=c;i=162295;j=h+19|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[c+19>>0]=0;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;sk[f[(f[g>>2]|0)+8>>2]&2047](g)|0;$Db(Ju(e,k)|0,l)|0;sk[f[(f[g>>2]|0)+12>>2]&2047](g)|0;if((b[l+11>>0]|0)<0)NDb(f[l>>2]|0);if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);c=LDb(16)|0;f[k>>2]=c;f[k+8>>2]=-2147483632;f[k+4>>2]=14;h=c;i=162338;j=h+14|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[c+14>>0]=0;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;j=l+11|0;b[j>>0]=2;d[l>>1]=28265;b[l+2>>0]=0;sk[f[(f[g>>2]|0)+8>>2]&2047](g)|0;$Db(Ju(e,k)|0,l)|0;sk[f[(f[g>>2]|0)+12>>2]&2047](g)|0;if((b[j>>0]|0)<0)NDb(f[l>>2]|0);if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);c=LDb(16)|0;f[k>>2]=c;f[k+8>>2]=-2147483632;f[k+4>>2]=15;h=c;i=162353;j=h+15|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[c+15>>0]=0;j=l+4|0;f[j>>2]=0;f[j+4>>2]=0;j=l+11|0;b[j>>0]=3;b[l>>0]=b[162369]|0;b[l+1>>0]=b[162370]|0;b[l+2>>0]=b[162371]|0;b[l+3>>0]=0;sk[f[(f[g>>2]|0)+8>>2]&2047](g)|0;$Db(Ju(e,k)|0,l)|0;sk[f[(f[g>>2]|0)+12>>2]&2047](g)|0;if((b[j>>0]|0)<0)NDb(f[l>>2]|0);if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=3){u=m;return}l=Nv(Mv(4)|0,162454,27)|0;Ktb(k,l+(f[(f[l>>2]|0)+-12>>2]|0)|0);j=Bvb(k,295164)|0;j=wk[f[(f[j>>2]|0)+28>>2]&1023](j,10)|0;Cvb(k);rub(l,j)|0;Rtb(l)|0;u=m;return}case 1:{c=LDb(32)|0;f[k>>2]=c;f[k+8>>2]=-2147483616;f[k+4>>2]=16;h=c;i=162262;j=h+16|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[c+16>>0]=0;g=a+232|0;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;sk[f[(f[g>>2]|0)+8>>2]&2047](g)|0;e=a+244|0;$Db(Ju(e,k)|0,l)|0;sk[f[(f[g>>2]|0)+12>>2]&2047](g)|0;if((b[l+11>>0]|0)<0)NDb(f[l>>2]|0);if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);c=LDb(32)|0;f[k>>2]=c;f[k+8>>2]=-2147483616;f[k+4>>2]=19;h=c;i=162295;j=h+19|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[c+19>>0]=0;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;sk[f[(f[g>>2]|0)+8>>2]&2047](g)|0;$Db(Ju(e,k)|0,l)|0;sk[f[(f[g>>2]|0)+12>>2]&2047](g)|0;if((b[l+11>>0]|0)<0)NDb(f[l>>2]|0);if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);c=LDb(16)|0;f[k>>2]=c;f[k+8>>2]=-2147483632;f[k+4>>2]=14;h=c;i=162338;j=h+14|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[c+14>>0]=0;f[l+8>>2]=0;j=l+11|0;b[j>>0]=7;b[l>>0]=b[162403]|0;b[l+1>>0]=b[162404]|0;b[l+2>>0]=b[162405]|0;b[l+3>>0]=b[162406]|0;b[l+4>>0]=b[162407]|0;b[l+5>>0]=b[162408]|0;b[l+6>>0]=b[162409]|0;b[l+7>>0]=0;sk[f[(f[g>>2]|0)+8>>2]&2047](g)|0;$Db(Ju(e,k)|0,l)|0;sk[f[(f[g>>2]|0)+12>>2]&2047](g)|0;if((b[j>>0]|0)<0)NDb(f[l>>2]|0);if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);c=LDb(16)|0;f[k>>2]=c;f[k+8>>2]=-2147483632;f[k+4>>2]=15;h=c;i=162353;j=h+15|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[c+15>>0]=0;f[l+8>>2]=0;j=l+11|0;b[j>>0]=7;b[l>>0]=b[162403]|0;b[l+1>>0]=b[162404]|0;b[l+2>>0]=b[162405]|0;b[l+3>>0]=b[162406]|0;b[l+4>>0]=b[162407]|0;b[l+5>>0]=b[162408]|0;b[l+6>>0]=b[162409]|0;b[l+7>>0]=0;sk[f[(f[g>>2]|0)+8>>2]&2047](g)|0;$Db(Ju(e,k)|0,l)|0;sk[f[(f[g>>2]|0)+12>>2]&2047](g)|0;if((b[j>>0]|0)<0)NDb(f[l>>2]|0);if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=3){u=m;return}l=Nv(Mv(4)|0,162482,27)|0;Ktb(k,l+(f[(f[l>>2]|0)+-12>>2]|0)|0);j=Bvb(k,295164)|0;j=wk[f[(f[j>>2]|0)+28>>2]&1023](j,10)|0;Cvb(k);rub(l,j)|0;Rtb(l)|0;u=m;return}case 0:{c=LDb(32)|0;f[k>>2]=c;f[k+8>>2]=-2147483616;f[k+4>>2]=16;h=c;i=162262;j=h+16|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[c+16>>0]=0;g=a+232|0;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;sk[f[(f[g>>2]|0)+8>>2]&2047](g)|0;e=a+244|0;$Db(Ju(e,k)|0,l)|0;sk[f[(f[g>>2]|0)+12>>2]&2047](g)|0;if((b[l+11>>0]|0)<0)NDb(f[l>>2]|0);if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);c=LDb(32)|0;f[k>>2]=c;f[k+8>>2]=-2147483616;f[k+4>>2]=19;h=c;i=162295;j=h+19|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[c+19>>0]=0;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;sk[f[(f[g>>2]|0)+8>>2]&2047](g)|0;$Db(Ju(e,k)|0,l)|0;sk[f[(f[g>>2]|0)+12>>2]&2047](g)|0;if((b[l+11>>0]|0)<0)NDb(f[l>>2]|0);if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);c=LDb(16)|0;f[k>>2]=c;f[k+8>>2]=-2147483632;f[k+4>>2]=14;h=c;i=162338;j=h+14|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[c+14>>0]=0;f[l+8>>2]=0;j=l+11|0;b[j>>0]=7;b[l>>0]=b[162403]|0;b[l+1>>0]=b[162404]|0;b[l+2>>0]=b[162405]|0;b[l+3>>0]=b[162406]|0;b[l+4>>0]=b[162407]|0;b[l+5>>0]=b[162408]|0;b[l+6>>0]=b[162409]|0;b[l+7>>0]=0;sk[f[(f[g>>2]|0)+8>>2]&2047](g)|0;$Db(Ju(e,k)|0,l)|0;sk[f[(f[g>>2]|0)+12>>2]&2047](g)|0;if((b[j>>0]|0)<0)NDb(f[l>>2]|0);if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);c=LDb(16)|0;f[k>>2]=c;f[k+8>>2]=-2147483632;f[k+4>>2]=15;h=c;i=162353;j=h+15|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[c+15>>0]=0;f[l+8>>2]=0;j=l+11|0;b[j>>0]=7;b[l>>0]=b[162403]|0;b[l+1>>0]=b[162404]|0;b[l+2>>0]=b[162405]|0;b[l+3>>0]=b[162406]|0;b[l+4>>0]=b[162407]|0;b[l+5>>0]=b[162408]|0;b[l+6>>0]=b[162409]|0;b[l+7>>0]=0;sk[f[(f[g>>2]|0)+8>>2]&2047](g)|0;$Db(Ju(e,k)|0,l)|0;sk[f[(f[g>>2]|0)+12>>2]&2047](g)|0;if((b[j>>0]|0)<0)NDb(f[l>>2]|0);if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=3){u=m;return}l=Nv(Mv(4)|0,162510,21)|0;Ktb(k,l+(f[(f[l>>2]|0)+-12>>2]|0)|0);j=Bvb(k,295164)|0;j=wk[f[(f[j>>2]|0)+28>>2]&1023](j,10)|0;Cvb(k);rub(l,j)|0;Rtb(l)|0;u=m;return}default:{u=m;return}}}function _x(a){a=a|0;var c=0,d=0,e=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,v=0,w=0;w=u;u=u+64|0;t=w+36|0;v=w+24|0;q=w+12|0;s=w;r=w+48|0;f[v>>2]=0;f[v+4>>2]=0;f[v+8>>2]=0;d=Th(160587)|0;a:do if(d|0){c=0;while(1){if(!(b[d+c>>0]|0))break;c=c+1|0;if(c>>>0>=4096){c=4096;break}}aEb(v,d,c)|0;g=v+11|0;e=b[g>>0]|0;h=v+4|0;c=f[h>>2]|0;d=e&255;do if(((e<<24>>24<0?c:d)|0)==7)if(!(uEb(v,0,-1,160604,7)|0)){f[a+12>>2]=0;break a}else{e=b[g>>0]|0;d=e&255;c=f[h>>2]|0;break}while(0);do if(((e<<24>>24<0?c:d)|0)==9)if(!(uEb(v,0,-1,160612,9)|0)){f[a+12>>2]=1;break a}else{e=b[g>>0]|0;d=e&255;c=f[h>>2]|0;break}while(0);do if(((e<<24>>24<0?c:d)|0)==14)if(!(uEb(v,0,-1,160622,14)|0)){f[a+12>>2]=2;break a}else{e=b[g>>0]|0;d=e&255;c=f[h>>2]|0;break}while(0);if(((e<<24>>24<0?c:d)|0)==20?(uEb(v,0,-1,160637,20)|0)==0:0)f[a+12>>2]=3}while(0);d=Th(160658)|0;b:do if(d|0){c=0;while(1){if(!(b[d+c>>0]|0))break;c=c+1|0;if(c>>>0>=4096){c=4096;break}}aEb(v,d,c)|0;g=v+11|0;d=b[g>>0]|0;h=v+4|0;c=f[h>>2]|0;e=d&255;do if(((d<<24>>24<0?c:e)|0)==11)if(!(uEb(v,0,-1,160674,11)|0)){f[a+20>>2]=0;break b}else{d=b[g>>0]|0;e=d&255;c=f[h>>2]|0;break}while(0);do if(((d<<24>>24<0?c:e)|0)==10)if(!(uEb(v,0,-1,160686,10)|0)){f[a+20>>2]=1;break b}else{d=b[g>>0]|0;e=d&255;c=f[h>>2]|0;break}while(0);do if(((d<<24>>24<0?c:e)|0)==16)if(!(uEb(v,0,-1,160697,16)|0)){f[a+20>>2]=2;break b}else{d=b[g>>0]|0;e=d&255;c=f[h>>2]|0;break}while(0);do if(((d<<24>>24<0?c:e)|0)==14)if(!(uEb(v,0,-1,160714,14)|0)){f[a+20>>2]=3;break b}else{d=b[g>>0]|0;e=d&255;c=f[h>>2]|0;break}while(0);do if(((d<<24>>24<0?c:e)|0)==8)if(!(uEb(v,0,-1,160729,8)|0)){f[a+20>>2]=4;break b}else{d=b[g>>0]|0;e=d&255;c=f[h>>2]|0;break}while(0);do if(((d<<24>>24<0?c:e)|0)==9)if(!(uEb(v,0,-1,160738,9)|0)){f[a+20>>2]=5;break b}else{d=b[g>>0]|0;e=d&255;c=f[h>>2]|0;break}while(0);do if(((d<<24>>24<0?c:e)|0)==20)if(!(uEb(v,0,-1,160748,20)|0)){f[a+20>>2]=6;break b}else{d=b[g>>0]|0;e=d&255;c=f[h>>2]|0;break}while(0);do if(((d<<24>>24<0?c:e)|0)==18)if(!(uEb(v,0,-1,160769,18)|0)){f[a+20>>2]=7;break b}else{d=b[g>>0]|0;e=d&255;c=f[h>>2]|0;break}while(0);if(((d<<24>>24<0?c:e)|0)==12?(uEb(v,0,-1,160788,12)|0)==0:0)f[a+20>>2]=8}while(0);d=Th(160801)|0;c:do if(d|0){c=0;while(1){if(!(b[d+c>>0]|0))break;c=c+1|0;if(c>>>0>=4096){c=4096;break}}aEb(v,d,c)|0;d=v+11|0;g=b[d>>0]|0;h=v+4|0;c=f[h>>2]|0;e=g&255;do if(((g<<24>>24<0?c:e)|0)==3)if(!(uEb(v,0,-1,222728,3)|0)){b[a+16>>0]=0;break c}else{d=b[d>>0]|0;e=d&255;c=f[h>>2]|0;break}else d=g;while(0);if(((d<<24>>24<0?c:e)|0)==2?(uEb(v,0,-1,231851,2)|0)==0:0)b[a+16>>0]=1}while(0);ay(160812,a+24|0)|0;ay(160831,a+28|0)|0;ay(160848,a+32|0)|0;ay(160866,a+36|0)|0;d=Th(160886)|0;d:do if(d|0){c=0;while(1){if(!(b[d+c>>0]|0))break;c=c+1|0;if(c>>>0>=4096){c=4096;break}}aEb(v,d,c)|0;d=v+11|0;g=b[d>>0]|0;h=v+4|0;c=f[h>>2]|0;e=g&255;do if(((g<<24>>24<0?c:e)|0)==22)if(!(uEb(v,0,-1,160926,22)|0)){f[a+40>>2]=0;break d}else{d=b[d>>0]|0;e=d&255;c=f[h>>2]|0;break}else d=g;while(0);if(((d<<24>>24<0?c:e)|0)==23?(uEb(v,0,-1,160949,23)|0)==0:0)f[a+40>>2]=1}while(0);by(160973,a+44|0)|0;d=Th(161012)|0;e:do if(d|0){c=0;while(1){if(!(b[d+c>>0]|0))break;c=c+1|0;if(c>>>0>=4096){c=4096;break}}aEb(v,d,c)|0;d=v+11|0;g=b[d>>0]|0;h=v+4|0;c=f[h>>2]|0;e=g&255;do if(((g<<24>>24<0?c:e)|0)==21)if(!(uEb(v,0,-1,161050,21)|0)){f[a+48>>2]=0;break e}else{d=b[d>>0]|0;e=d&255;c=f[h>>2]|0;break}else d=g;while(0);if(((d<<24>>24<0?c:e)|0)==24?(uEb(v,0,-1,161072,24)|0)==0:0)f[a+48>>2]=1}while(0);d=Th(161097)|0;f:do if(d|0){c=0;while(1){if(!(b[d+c>>0]|0))break;c=c+1|0;if(c>>>0>=4096){c=4096;break}}aEb(v,d,c)|0;d=v+11|0;g=b[d>>0]|0;h=v+4|0;c=f[h>>2]|0;e=g&255;do if(((g<<24>>24<0?c:e)|0)==3)if(!(uEb(v,0,-1,222728,3)|0)){b[a+56>>0]=0;break f}else{d=b[d>>0]|0;e=d&255;c=f[h>>2]|0;break}else d=g;while(0);if(((d<<24>>24<0?c:e)|0)==2?(uEb(v,0,-1,231851,2)|0)==0:0)b[a+56>>0]=1}while(0);by(161139,a+52|0)|0;cy(161176,a+84|0)|0;d=Th(161212)|0;g:do if(d|0){c=0;while(1){if(!(b[d+c>>0]|0))break;c=c+1|0;if(c>>>0>=4096){c=4096;break}}aEb(v,d,c)|0;d=v+11|0;g=b[d>>0]|0;h=v+4|0;c=f[h>>2]|0;e=g&255;do if(((g<<24>>24<0?c:e)|0)==3)if(!(uEb(v,0,-1,222728,3)|0)){b[a+92>>0]=0;break g}else{d=b[d>>0]|0;e=d&255;c=f[h>>2]|0;break}else d=g;while(0);if(((d<<24>>24<0?c:e)|0)==2?(uEb(v,0,-1,231851,2)|0)==0:0)b[a+92>>0]=1}while(0);d=Th(161233)|0;h:do if(d|0){c=0;while(1){if(!(b[d+c>>0]|0))break;c=c+1|0;if(c>>>0>=4096){c=4096;break}}aEb(v,d,c)|0;d=v+11|0;g=b[d>>0]|0;h=v+4|0;c=f[h>>2]|0;e=g&255;do if(((g<<24>>24<0?c:e)|0)==3)if(!(uEb(v,0,-1,222728,3)|0)){b[a+93>>0]=0;break h}else{d=b[d>>0]|0;e=d&255;c=f[h>>2]|0;break}else d=g;while(0);if(((d<<24>>24<0?c:e)|0)==2?(uEb(v,0,-1,231851,2)|0)==0:0)b[a+93>>0]=1}while(0);d=Th(161261)|0;i:do if(d|0){c=0;while(1){if(!(b[d+c>>0]|0))break;c=c+1|0;if(c>>>0>=4096){c=4096;break}}aEb(v,d,c)|0;d=v+11|0;g=b[d>>0]|0;h=v+4|0;c=f[h>>2]|0;e=g&255;do if(((g<<24>>24<0?c:e)|0)==3)if(!(uEb(v,0,-1,222728,3)|0)){b[a+94>>0]=0;break i}else{d=b[d>>0]|0;e=d&255;c=f[h>>2]|0;break}else d=g;while(0);if(((d<<24>>24<0?c:e)|0)==2?(uEb(v,0,-1,231851,2)|0)==0:0)b[a+94>>0]=1}while(0);cy(161290,a+96|0)|0;cy(161315,a+100|0)|0;cy(161345,a+88|0)|0;cy(161363,a+116|0)|0;cy(161385,a+120|0)|0;f[t>>2]=a+124;f[t+4>>2]=a+128;n=q+11|0;o=q+4|0;m=0;do{f[q>>2]=0;f[q+4>>2]=0;f[q+8>>2]=0;d=Th(f[89280+(m<<2)>>2]|0)|0;j:do if(d|0){c=0;while(1){if(!(b[d+c>>0]|0))break;c=c+1|0;if(c>>>0>=4096){c=4096;break}}aEb(q,d,c)|0;e=b[n>>0]|0;i=e<<24>>24<0;c=f[q>>2]|0;h=i?c:q;d=f[o>>2]|0;g=e&255;i=i?d:g;j=h+i|0;k=j;l=h;k:do if((i|0)>=3){while(1){i=i+-2|0;if(!i)break k;h=epb(h,79,i)|0;if(!h)break k;if(!(ipb(h,222728,3)|0))break;h=h+1|0;i=k-h|0;if((i|0)<3)break k}if((h|0)!=(j|0)?(h-l|0)!=-1:0){f[f[t+(m<<2)>>2]>>2]=0;e=b[n>>0]|0;g=e&255;c=f[q>>2]|0;d=f[o>>2]|0}}while(0);i=e<<24>>24<0;h=i?c:q;c=i?d:g;g=h+c|0;i=g;j=h;l:do if((c|0)>=8){e=h;d=c;while(1){d=d+-7|0;if(!d){p=163;break l}d=epb(e,126,d)|0;if(!d){p=163;break l}if(!(ipb(d,161428,8)|0))break;e=d+1|0;d=i-e|0;if((d|0)<8){p=163;break l}}if(!((d|0)==(g|0)|(d-j|0)==-1)){l=f[t+(m<<2)>>2]|0;f[l>>2]=f[l>>2]^5}else p=163}else p=163;while(0);m:do if((p|0)==163?(p=0,(c|0)>=7):0){d=h;while(1){c=c+-6|0;if(!c)break m;c=epb(d,68,c)|0;if(!c)break m;if(!(ipb(c,235893,7)|0))break;d=c+1|0;c=i-d|0;if((c|0)<7)break m}if((c|0)!=(g|0)?(c-j|0)!=-1:0){l=f[t+(m<<2)>>2]|0;f[l>>2]=f[l>>2]|5}}while(0);c=b[n>>0]|0;h=c<<24>>24<0;g=h?f[q>>2]|0:q;c=h?f[o>>2]|0:c&255;h=g+c|0;i=h;j=g;n:do if((c|0)>=6){e=g;d=c;while(1){d=d+-5|0;if(!d){p=180;break n}d=epb(e,126,d)|0;if(!d){p=180;break n}if(!(ipb(d,161437,6)|0))break;e=d+1|0;d=i-e|0;if((d|0)<6){p=180;break n}}if(!((d|0)==(h|0)|(d-j|0)==-1)){l=f[t+(m<<2)>>2]|0;f[l>>2]=f[l>>2]^4}else p=180}else p=180;while(0);o:do if((p|0)==180?(p=0,(c|0)>=5):0){d=g;while(1){c=c+-4|0;if(!c)break o;c=epb(d,67,c)|0;if(!c)break o;if(!(ipb(c,161444,5)|0))break;d=c+1|0;c=i-d|0;if((c|0)<5)break o}if((c|0)!=(h|0)?(c-j|0)!=-1:0){l=f[t+(m<<2)>>2]|0;f[l>>2]=f[l>>2]|4}}while(0);c=b[n>>0]|0;h=c<<24>>24<0;g=h?f[q>>2]|0:q;c=h?f[o>>2]|0:c&255;h=g+c|0;i=h;j=g;p:do if((c|0)>=6){e=g;d=c;while(1){d=d+-5|0;if(!d){p=197;break p}d=epb(e,126,d)|0;if(!d){p=197;break p}if(!(ipb(d,161450,6)|0))break;e=d+1|0;d=i-e|0;if((d|0)<6){p=197;break p}}if(!((d|0)==(h|0)|(d-j|0)==-1)){l=f[t+(m<<2)>>2]|0;f[l>>2]=f[l>>2]^1}else p=197}else p=197;while(0);q:do if((p|0)==197?(p=0,(c|0)>=5):0){d=g;while(1){c=c+-4|0;if(!c)break q;c=epb(d,68,c)|0;if(!c)break q;if(!(ipb(c,225434,5)|0))break;d=c+1|0;c=i-d|0;if((c|0)<5)break q}if((c|0)!=(h|0)?(c-j|0)!=-1:0){l=f[t+(m<<2)>>2]|0;f[l>>2]=f[l>>2]|1}}while(0);c=b[n>>0]|0;h=c<<24>>24<0;g=h?f[q>>2]|0:q;c=h?f[o>>2]|0:c&255;h=g+c|0;i=h;j=g;r:do if((c|0)>=8){e=g;d=c;while(1){d=d+-7|0;if(!d)break r;d=epb(e,126,d)|0;if(!d)break r;if(!(ipb(d,161457,8)|0))break;e=d+1|0;d=i-e|0;if((d|0)<8)break r}if(!((d|0)==(h|0)|(d-j|0)==-1)){l=f[t+(m<<2)>>2]|0;f[l>>2]=f[l>>2]^2;break j}}while(0);if((c|0)>=7){d=g;while(1){c=c+-6|0;if(!c)break j;c=epb(d,83,c)|0;if(!c)break j;if(!(ipb(c,161466,7)|0))break;d=c+1|0;c=i-d|0;if((c|0)<7)break j}if((c|0)!=(h|0)?(c-j|0)!=-1:0){l=f[t+(m<<2)>>2]|0;f[l>>2]=f[l>>2]|2}}}while(0);if((b[n>>0]|0)<0)NDb(f[q>>2]|0);m=m+1|0}while(m>>>0<2);d=Th(161413)|0;if(!d){d=Th(161474)|0;if(d|0){c=0;while(1){if(!(b[d+c>>0]|0))break;c=c+1|0;if(c>>>0>=4096){c=4096;break}}aEb(v,d,c)|0;p=231}}else{c=0;while(1){if(!(b[d+c>>0]|0))break;c=c+1|0;if(c>>>0>=4096){c=4096;break}}aEb(v,d,c)|0;p=231}if((p|0)==231)$Db(a+132|0,v)|0;cy(161497,a+144|0)|0;cy(161518,a+148|0)|0;d=Th(161546)|0;s:do if(d|0){c=0;while(1){if(!(b[d+c>>0]|0))break;c=c+1|0;if(c>>>0>=4096){c=4096;break}}aEb(v,d,c)|0;g=v+11|0;e=b[g>>0]|0;h=v+4|0;c=f[h>>2]|0;d=e&255;do if(((e<<24>>24<0?c:d)|0)==7)if(!(uEb(v,0,-1,235893,7)|0)){f[a+152>>2]=0;break s}else{e=b[g>>0]|0;d=e&255;c=f[h>>2]|0;break}while(0);do if(((e<<24>>24<0?c:d)|0)==8)if(!(uEb(v,0,-1,161562,8)|0)){f[a+152>>2]=1;break s}else{e=b[g>>0]|0;d=e&255;c=f[h>>2]|0;break}while(0);do if(((e<<24>>24<0?c:d)|0)==4)if(!(uEb(v,0,-1,161571,4)|0)){f[a+152>>2]=2;break s}else{e=b[g>>0]|0;d=e&255;c=f[h>>2]|0;break}while(0);if(((e<<24>>24<0?c:d)|0)==9?(uEb(v,0,-1,196975,9)|0)==0:0)f[a+152>>2]=3}while(0);d=Th(161576)|0;if(d|0){c=0;while(1){if(!(b[d+c>>0]|0))break;c=c+1|0;if(c>>>0>=4096){c=4096;break}}aEb(v,d,c)|0;h=v+11|0;c=b[h>>0]|0;g=v+4|0;d=f[g>>2]|0;e=c&255;if(((c<<24>>24<0?d:e)|0)==3)if(!(uEb(v,0,-1,222728,3)|0))c=0;else{c=b[h>>0]|0;e=c&255;d=f[g>>2]|0;p=258}else p=258;do if((p|0)==258){if(((c<<24>>24<0?d:e)|0)==2){if(!(uEb(v,0,-1,231851,2)|0)){c=1;break}c=b[h>>0]|0}c=$pb(c<<24>>24<0?f[v>>2]|0:v)|0}while(0);f[a+156>>2]=c}d=Th(161598)|0;if(d|0){c=0;while(1){if(!(b[d+c>>0]|0))break;c=c+1|0;if(c>>>0>=4096){c=4096;break}}aEb(v,d,c)|0;g=v+11|0;e=b[g>>0]|0;h=v+4|0;c=f[h>>2]|0;d=e&255;if(((e<<24>>24<0?c:d)|0)==20)if(!(uEb(v,0,-1,161621,20)|0))p=273;else{e=b[g>>0]|0;d=e&255;c=f[h>>2]|0;p=270}else p=270;t:do if((p|0)==270){if(((e<<24>>24<0?c:d)|0)==3){if(!(uEb(v,0,-1,235677,3)|0)){p=273;break}e=b[g>>0]|0;d=e&255;c=f[h>>2]|0}if(((e<<24>>24<0?c:d)|0)==19){if(uEb(v,0,-1,161693,19)|0){e=b[g>>0]|0;d=e&255;c=f[h>>2]|0;p=281}}else p=281;do if((p|0)==281){if(((e<<24>>24<0?c:d)|0)==3?(uEb(v,0,-1,161713,3)|0)==0:0)break;do if(!(b[287952]|0)){if(!(PFb(287952)|0))break;Lv(289680)}while(0);if((f[72420]|0)<=3){c=0;break t}c=Nv(Mv(4)|0,161767,43)|0;Ktb(t,c+(f[(f[c>>2]|0)+-12>>2]|0)|0);o=Bvb(t,295164)|0;o=wk[f[(f[o>>2]|0)+28>>2]&1023](o,10)|0;Cvb(t);rub(c,o)|0;Rtb(c)|0;c=0;break t}while(0);do if(!(b[287952]|0)){if(!(PFb(287952)|0))break;Lv(289680)}while(0);if((f[72420]|0)>3){c=Nv(Mv(4)|0,161717,49)|0;Ktb(t,c+(f[(f[c>>2]|0)+-12>>2]|0)|0);o=Bvb(t,295164)|0;o=wk[f[(f[o>>2]|0)+28>>2]&1023](o,10)|0;Cvb(t);rub(c,o)|0;Rtb(c)|0;c=2}else c=2}while(0);if((p|0)==273){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>3){c=Nv(Mv(4)|0,161642,50)|0;Ktb(t,c+(f[(f[c>>2]|0)+-12>>2]|0)|0);p=Bvb(t,295164)|0;p=wk[f[(f[p>>2]|0)+28>>2]&1023](p,10)|0;Cvb(t);rub(c,p)|0;Rtb(c)|0;c=1}else c=1}f[a+160>>2]=c}d=Th(161811)|0;u:do if(d|0){c=0;while(1){if(!(b[d+c>>0]|0))break;c=c+1|0;if(c>>>0>=4096){c=4096;break}}aEb(v,d,c)|0;g=v+11|0;e=b[g>>0]|0;h=v+4|0;c=f[h>>2]|0;d=e&255;do if(((e<<24>>24<0?c:d)|0)==3)if(!(uEb(v,0,-1,161827,3)|0)){Zx(a,1,1);break u}else{e=b[g>>0]|0;d=e&255;c=f[h>>2]|0;break}while(0);do if(((e<<24>>24<0?c:d)|0)==3)if(!(uEb(v,0,-1,161831,3)|0)){Zx(a,3,1);break u}else{e=b[g>>0]|0;d=e&255;c=f[h>>2]|0;break}while(0);do if(((e<<24>>24<0?c:d)|0)==5)if(!(uEb(v,0,-1,161835,5)|0)){Zx(a,2,1);break u}else{e=b[g>>0]|0;d=e&255;c=f[h>>2]|0;break}while(0);do if(((e<<24>>24<0?c:d)|0)==5)if(!(uEb(v,0,-1,161841,5)|0)){Zx(a,4,1);break u}else{e=b[g>>0]|0;d=e&255;c=f[h>>2]|0;break}while(0);if(((e<<24>>24<0?c:d)|0)==4){if(uEb(v,0,-1,161847,4)|0)break;Zx(a,0,1)}}while(0);d=Th(161852)|0;if(d|0){c=0;while(1){if(!(b[d+c>>0]|0))break;c=c+1|0;if(c>>>0>=4096){c=4096;break}}aEb(v,d,c)|0;$Db(a+168|0,v)|0}d=Th(161878)|0;v:do if(d|0){c=0;while(1){if(!(b[d+c>>0]|0))break;c=c+1|0;if(c>>>0>=4096){c=4096;break}}aEb(v,d,c)|0;d=v+11|0;g=b[d>>0]|0;h=v+4|0;c=f[h>>2]|0;e=g&255;do if(((g<<24>>24<0?c:e)|0)==3)if(!(uEb(v,0,-1,222728,3)|0)){b[a+180>>0]=0;break v}else{d=b[d>>0]|0;e=d&255;c=f[h>>2]|0;break}else d=g;while(0);if(((d<<24>>24<0?c:e)|0)==2?(uEb(v,0,-1,231851,2)|0)==0:0)b[a+180>>0]=1}while(0);d=Th(161891)|0;if(d|0){c=0;while(1){if(!(b[d+c>>0]|0))break;c=c+1|0;if(c>>>0>=4096){c=4096;break}}aEb(v,d,c)|0;VDb(t,v);j=t+11|0;c=b[j>>0]|0;if((c<<24>>24<0?f[t+4>>2]|0:c&255)|0){d=sEb(t,58,0)|0;if((d|0)==-1)c=0;else{e=a+188|0;g=a+192|0;h=q+11|0;i=a+184|0;c=0;do{ZDb(q,t,c,d-c|0,s);c=f[e>>2]|0;do if(c>>>0<(f[g>>2]|0)>>>0){f[c>>2]=f[q>>2];f[c+4>>2]=f[q+4>>2];f[c+8>>2]=f[q+8>>2];f[q>>2]=0;f[q+4>>2]=0;f[q+8>>2]=0;f[e>>2]=(f[e>>2]|0)+12}else{Ur(i,q);if((b[h>>0]|0)>=0)break;NDb(f[q>>2]|0)}while(0);c=d+1|0;d=sEb(t,58,c)|0}while((d|0)!=-1)}ZDb(q,t,c,-1,s);c=q+11|0;p=b[c>>0]|0;do if((p<<24>>24<0?f[q+4>>2]|0:p&255)|0){d=a+188|0;e=f[d>>2]|0;if((e|0)==(f[a+192>>2]|0)){cv(a+184|0,q);break}else{VDb(e,q);f[d>>2]=(f[d>>2]|0)+12;break}}while(0);if((b[c>>0]|0)<0)NDb(f[q>>2]|0);c=b[j>>0]|0}if(c<<24>>24<0)NDb(f[t>>2]|0)}d=Th(161910)|0;w:do if(d|0){c=0;while(1){if(!(b[d+c>>0]|0))break;c=c+1|0;if(c>>>0>=4096){c=4096;break}}aEb(v,d,c)|0;g=v+11|0;e=b[g>>0]|0;h=v+4|0;c=f[h>>2]|0;d=e&255;do if(((e<<24>>24<0?c:d)|0)==9)if(!(uEb(v,0,-1,161931,9)|0)){f[a+208>>2]=0;break w}else{e=b[g>>0]|0;d=e&255;c=f[h>>2]|0;break}while(0);do if(((e<<24>>24<0?c:d)|0)==10)if(!(uEb(v,0,-1,161941,10)|0)){f[a+208>>2]=1;break w}else{e=b[g>>0]|0;d=e&255;c=f[h>>2]|0;break}while(0);if(((e<<24>>24<0?c:d)|0)!=10)break;if(uEb(v,0,-1,161952,10)|0)break;f[a+208>>2]=2}while(0);f[q>>2]=0;by(161963,q)|0;d=Th(161987)|0;x:do if(d|0){c=0;while(1){if(!(b[d+c>>0]|0))break;c=c+1|0;if(c>>>0>=4096){c=4096;break}}aEb(v,d,c)|0;d=v+11|0;g=b[d>>0]|0;h=v+4|0;c=f[h>>2]|0;e=g&255;do if(((g<<24>>24<0?c:e)|0)==3)if(!(uEb(v,0,-1,222728,3)|0)){b[a+212>>0]=0;break x}else{d=b[d>>0]|0;e=d&255;c=f[h>>2]|0;break}else d=g;while(0);if(((d<<24>>24<0?c:e)|0)!=2)break;if(uEb(v,0,-1,231851,2)|0)break;b[a+212>>0]=1}while(0);d=Th(162007)|0;if(d|0){c=0;while(1){if(!(b[d+c>>0]|0))break;c=c+1|0;if(c>>>0>=4096){c=4096;break}}aEb(v,d,c)|0;i=a+216|0;d=f[i>>2]|0;j=a+220|0;c=f[j>>2]|0;if((c|0)!=(d|0))do{c=c+-12|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0)}while((c|0)!=(d|0));f[j>>2]=d;VDb(t,v);h=t+11|0;c=b[h>>0]|0;if((c<<24>>24<0?f[t+4>>2]|0:c&255)|0){d=sEb(t,58,0)|0;if((d|0)==-1)c=0;else{e=a+224|0;g=s+11|0;c=0;do{ZDb(s,t,c,d-c|0,r);c=f[j>>2]|0;do if(c>>>0<(f[e>>2]|0)>>>0){f[c>>2]=f[s>>2];f[c+4>>2]=f[s+4>>2];f[c+8>>2]=f[s+8>>2];f[s>>2]=0;f[s+4>>2]=0;f[s+8>>2]=0;f[j>>2]=(f[j>>2]|0)+12}else{Ur(i,s);if((b[g>>0]|0)>=0)break;NDb(f[s>>2]|0)}while(0);c=d+1|0;d=sEb(t,58,c)|0}while((d|0)!=-1)}ZDb(s,t,c,-1,r);c=s+11|0;r=b[c>>0]|0;do if((r<<24>>24<0?f[s+4>>2]|0:r&255)|0){d=f[j>>2]|0;if((d|0)==(f[a+224>>2]|0)){cv(i,s);break}else{VDb(d,s);f[j>>2]=(f[j>>2]|0)+12;break}}while(0);if((b[c>>0]|0)<0)NDb(f[s>>2]|0);c=b[h>>0]|0}if(c<<24>>24<0)NDb(f[t>>2]|0)}d=Th(162033)|0;if(d|0){c=0;while(1){if(!(b[d+c>>0]|0))break;c=c+1|0;if(c>>>0>=4096){c=4096;break}}aEb(v,d,c)|0;s=$pb((b[v+11>>0]|0)<0?f[v>>2]|0:v)|0;f[a+228>>2]=s}do if(!(b[287952]|0)){if(!(PFb(287952)|0))break;Lv(289680)}while(0);if((f[72420]|0)>3){s=Nv(Mv(4)|0,162071,33)|0;a=jub(s,f[a+228>>2]|0)|0;Ktb(t,a+(f[(f[a>>2]|0)+-12>>2]|0)|0);s=Bvb(t,295164)|0;s=wk[f[(f[s>>2]|0)+28>>2]&1023](s,10)|0;Cvb(t);rub(a,s)|0;Rtb(a)|0}if((b[v+11>>0]|0)>=0){u=w;return}NDb(f[v>>2]|0);u=w;return}function $x(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0;if(!c)return;$x(a,f[c>>2]|0);$x(a,f[c+4>>2]|0);a=c+16|0;d=c+28|0;e=f[d>>2]|0;if(e|0?(h=e+8|0,g=f[h>>2]|0,f[h>>2]=g-1,(g|0)==1):0)X4(e,1,1);f[d>>2]=0;if((b[a+11>>0]|0)<0)NDb(f[a>>2]|0);NDb(c);return}function ay(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;j=u;u=u+160|0;i=j+12|0;h=j;e=Th(a|0)|0;if(!e){i=0;u=j;return i|0}a=0;while(1){if(!(b[e+a>>0]|0)){g=6;break}a=a+1|0;if(a>>>0>=4096){g=5;break}}if((g|0)==5){f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=4096;g=7}else if((g|0)==6){f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;if(a>>>0<11){b[h+11>>0]=a;if(!a){a=0;d=h}else{d=h;g=9}}else g=7}if((g|0)==7){k=a+16&-16;d=LDb(k)|0;f[h>>2]=d;f[h+8>>2]=k|-2147483648;f[h+4>>2]=a;g=9}if((g|0)==9)gGb(d|0,e|0,a|0)|0;b[d+a>>0]=0;d=i+60|0;e=i+8|0;f[i>>2]=58540;f[d>>2]=58560;f[i+4>>2]=0;Itb(i+60|0,e);f[i+132>>2]=0;f[i+136>>2]=-1;f[i>>2]=89300;f[d>>2]=89320;Otb(e);f[e>>2]=87888;g=i+40|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;f[i+56>>2]=8;$v(e,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);Ytb(i,c)|0;a=(f[i+(f[(f[i>>2]|0)+-12>>2]|0)+16>>2]&5|0)==0;f[i>>2]=89300;f[d>>2]=89320;f[e>>2]=87888;if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);xsb(e);jtb(i,89332);rsb(d);k=a;u=j;return k|0}function by(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;j=u;u=u+160|0;i=j+12|0;h=j;e=Th(a|0)|0;if(!e){i=0;u=j;return i|0}a=0;while(1){if(!(b[e+a>>0]|0)){g=6;break}a=a+1|0;if(a>>>0>=4096){g=5;break}}if((g|0)==5){f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=4096;g=7}else if((g|0)==6){f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;if(a>>>0<11){b[h+11>>0]=a;if(!a){a=0;d=h}else{d=h;g=9}}else g=7}if((g|0)==7){k=a+16&-16;d=LDb(k)|0;f[h>>2]=d;f[h+8>>2]=k|-2147483648;f[h+4>>2]=a;g=9}if((g|0)==9)gGb(d|0,e|0,a|0)|0;b[d+a>>0]=0;d=i+60|0;e=i+8|0;f[i>>2]=58540;f[d>>2]=58560;f[i+4>>2]=0;Itb(i+60|0,e);f[i+132>>2]=0;f[i+136>>2]=-1;f[i>>2]=89300;f[d>>2]=89320;Otb(e);f[e>>2]=87888;g=i+40|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;f[i+56>>2]=8;$v(e,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);Wtb(i,c)|0;a=(f[i+(f[(f[i>>2]|0)+-12>>2]|0)+16>>2]&5|0)==0;f[i>>2]=89300;f[d>>2]=89320;f[e>>2]=87888;if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);xsb(e);jtb(i,89332);rsb(d);k=a;u=j;return k|0}function cy(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;j=u;u=u+160|0;i=j+12|0;h=j;e=Th(a|0)|0;if(!e){i=0;u=j;return i|0}a=0;while(1){if(!(b[e+a>>0]|0)){g=6;break}a=a+1|0;if(a>>>0>=4096){g=5;break}}if((g|0)==5){f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=4096;g=7}else if((g|0)==6){f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;if(a>>>0<11){b[h+11>>0]=a;if(!a){a=0;d=h}else{d=h;g=9}}else g=7}if((g|0)==7){k=a+16&-16;d=LDb(k)|0;f[h>>2]=d;f[h+8>>2]=k|-2147483648;f[h+4>>2]=a;g=9}if((g|0)==9)gGb(d|0,e|0,a|0)|0;b[d+a>>0]=0;d=i+60|0;e=i+8|0;f[i>>2]=58540;f[d>>2]=58560;f[i+4>>2]=0;Itb(i+60|0,e);f[i+132>>2]=0;f[i+136>>2]=-1;f[i>>2]=89300;f[d>>2]=89320;Otb(e);f[e>>2]=87888;g=i+40|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;f[i+56>>2]=8;$v(e,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);Xtb(i,c)|0;a=(f[i+(f[(f[i>>2]|0)+-12>>2]|0)+16>>2]&5|0)==0;f[i>>2]=89300;f[d>>2]=89320;f[e>>2]=87888;if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);xsb(e);jtb(i,89332);rsb(d);k=a;u=j;return k|0}function dy(a){a=a|0;var c=0,d=0,e=0;f[a>>2]=89300;c=a+60|0;f[c>>2]=89320;d=a+8|0;f[d>>2]=87888;e=a+40|0;if((b[e+11>>0]|0)<0)NDb(f[e>>2]|0);xsb(d);jtb(a,89332);rsb(c);return}function ey(a){a=a|0;var c=0,d=0,e=0;f[a>>2]=89300;c=a+60|0;f[c>>2]=89320;d=a+8|0;f[d>>2]=87888;e=a+40|0;if((b[e+11>>0]|0)<0)NDb(f[e>>2]|0);xsb(d);jtb(a,89332);rsb(c);NDb(a);return}function fy(a){a=a|0;var c=0,d=0,e=0;a=a+(f[(f[a>>2]|0)+-12>>2]|0)|0;f[a>>2]=89300;c=a+60|0;f[c>>2]=89320;d=a+8|0;f[d>>2]=87888;e=a+40|0;if((b[e+11>>0]|0)<0)NDb(f[e>>2]|0);xsb(d);jtb(a,89332);rsb(c);return}function gy(a){a=a|0;var c=0,d=0,e=0;a=a+(f[(f[a>>2]|0)+-12>>2]|0)|0;f[a>>2]=89300;c=a+60|0;f[c>>2]=89320;d=a+8|0;f[d>>2]=87888;e=a+40|0;if((b[e+11>>0]|0)<0)NDb(f[e>>2]|0);xsb(d);jtb(a,89332);rsb(c);NDb(a);return}function hy(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0;f[a>>2]=89252;$x(a+256|0,f[a+260>>2]|0);bv(a+244|0,f[a+248>>2]|0);d8(a+232|0);d=a+216|0;g=f[d>>2]|0;if(g|0){e=a+220|0;c=f[e>>2]|0;if((c|0)==(g|0))c=g;else{do{c=c+-12|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0)}while((c|0)!=(g|0));c=f[d>>2]|0}f[e>>2]=g;NDb(c)}e=a+196|0;g=f[e>>2]|0;if(g|0){h=a+200|0;c=f[h>>2]|0;if((c|0)==(g|0))c=g;else{do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(j=d+8|0,i=f[j>>2]|0,f[j>>2]=i-1,(i|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(g|0));c=f[e>>2]|0}f[h>>2]=g;NDb(c)}d=a+184|0;e=f[d>>2]|0;if(e|0){g=a+188|0;c=f[g>>2]|0;if((c|0)==(e|0))c=e;else{do{c=c+-12|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0)}while((c|0)!=(e|0));c=f[d>>2]|0}f[g>>2]=e;NDb(c)}c=a+168|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);c=a+132|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);c=a+104|0;if((b[c+11>>0]|0)>=0){V4(a);return}NDb(f[c>>2]|0);V4(a);return}function iy(a){a=a|0;hy(a);NDb(a);return}function jy(a,c,d){a=a|0;c=c|0;d=d|0;var e=0.0,g=0.0,h=0.0,i=0,j=0,k=0,l=0,m=0.0,o=0;o=u;u=u+512|0;i=o+256|0;j=o+128|0;k=o;l=o+384|0;m=+n[c+24>>2];h=+n[c+36>>2];a:do if(!(b[c+56>>0]|0)){e=1.0;g=1.0}else switch(f[c+20>>2]|0){case 2:{e=1.0;g=2.0;break a}case 3:{e=2.0;g=1.0;break a}default:{e=1.0;g=1.0;break a}}while(0);if((f[c+12>>2]|0)==3){SWa(i);TWa(i,g,e,1.0);SWa(a);WWa(a,i,d);u=o;return}else{NWa(k,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,m/(h*2.0),0.0,1.0,0.0,0.0,0.0,0.0,1.0);SWa(l);TWa(l,g,e,1.0);SWa(j);WWa(j,k,l);SWa(a);WWa(a,j,d);u=o;return}}function ky(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;var e=0,f=0;e=u;u=u+128|0;f=e;NWa(f,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,+n[b+24>>2]*.5*d,0.0,0.0,1.0);SWa(a);WWa(a,c,f);u=e;return}function ly(a,c,d){a=a|0;c=c|0;d=d|0;var e=0.0,g=0.0,h=0.0,i=0,j=0,k=0,l=0,m=0.0,o=0;o=u;u=u+512|0;i=o+256|0;j=o+128|0;k=o;l=o+384|0;m=+n[c+24>>2];h=+n[c+36>>2];a:do if(!(b[c+56>>0]|0)){e=1.0;g=1.0}else switch(f[c+20>>2]|0){case 2:{e=1.0;g=2.0;break a}case 3:{e=2.0;g=1.0;break a}default:{e=1.0;g=1.0;break a}}while(0);if((f[c+12>>2]|0)==3){SWa(i);TWa(i,g,e,1.0);SWa(a);WWa(a,i,d);u=o;return}else{NWa(k,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,-m/(h*2.0),0.0,1.0,0.0,0.0,0.0,0.0,1.0);SWa(l);TWa(l,g,e,1.0);SWa(j);WWa(j,k,l);SWa(a);WWa(a,j,d);u=o;return}}function my(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;var e=0,f=0;e=u;u=u+128|0;f=e;NWa(f,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,-(+n[b+24>>2]*.5*d),0.0,0.0,1.0);SWa(a);WWa(a,c,f);u=e;return}function ny(a){a=a|0;nx(a);NDb(a);return}function oy(a){a=a|0;var c=0;a=LDb(72)|0;BCa(a);c=a+12|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[a+24>>2]=2;f[a+28>>2]=0;f[a>>2]=88712;c=a+32|0;f[a+48>>2]=0;f[a+52>>2]=0;f[a+56>>2]=0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;b[c+12>>0]=0;Vx(a+60|0);f[a>>2]=89352;f[c>>2]=34963;f[a+36>>2]=35044;return a|0}function py(a,c){a=a|0;c=c|0;var d=0;d=LDb(72)|0;nw(d,a,c);f[d>>2]=88712;f[d+32>>2]=0;f[d+36>>2]=0;f[d+40>>2]=0;b[d+44>>0]=b[a+44>>0]|0;f[d+48>>2]=0;f[d+52>>2]=0;f[d+56>>2]=0;Vx(d+60|0);f[d>>2]=89352;return d|0}function qy(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,58616,0)|0)!=0;return b|0}function ry(a){a=a|0;return 241076}function sy(a){a=a|0;return 162596}function ty(a){a=a|0;nx(a);NDb(a);return}function uy(a){a=a|0;a=LDb(72)|0;zy(a,0);return a|0}function vy(a,c){a=a|0;c=c|0;var d=0;d=LDb(72)|0;nw(d,a,c);f[d>>2]=88712;f[d+32>>2]=0;f[d+36>>2]=0;f[d+40>>2]=0;b[d+44>>0]=b[a+44>>0]|0;f[d+48>>2]=0;f[d+52>>2]=0;f[d+56>>2]=0;Vx(d+60|0);f[d>>2]=89524;return d|0}function wy(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,58632,0)|0)!=0;return b|0}function xy(a){a=a|0;return 241076}function yy(a){a=a|0;return 162644}function zy(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0;g=u;u=u+16|0;d=g;BCa(a);h=a+12|0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;f[a+24>>2]=2;f[a+28>>2]=0;f[a>>2]=88712;h=a+32|0;f[a+48>>2]=0;e=a+52|0;f[e>>2]=0;f[a+56>>2]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;b[h+12>>0]=0;Vx(a+60|0);f[a>>2]=89524;f[h>>2]=35052;f[a+36>>2]=35040;if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>4){h=qub(Nv(Mv(5)|0,162662,41)|0,c)|0;Ktb(d,h+(f[(f[h>>2]|0)+-12>>2]|0)|0);i=Bvb(d,295164)|0;i=wk[f[(f[i>>2]|0)+28>>2]&1023](i,10)|0;Cvb(d);rub(h,i)|0;Rtb(h)|0}if(!c){u=g;return}d=a+48|0;a=f[d>>2]|0;if((f[e>>2]|0)==(a|0)){Ay(d,1);a=f[d>>2]|0}f[a>>2]=c;u=g;return}function Ay(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;k=a+8|0;d=f[k>>2]|0;l=a+4|0;c=f[l>>2]|0;if(d-c>>2>>>0>=b>>>0){do{f[c>>2]=0;c=(f[l>>2]|0)+4|0;f[l>>2]=c;b=b+-1|0}while((b|0)!=0);return}j=f[a>>2]|0;g=c-j|0;h=g>>2;i=h+b|0;if(i>>>0>1073741823)KEb(a);d=d-j|0;e=d>>1;e=d>>2>>>0<536870911?(e>>>0<i>>>0?i:e):1073741823;do if(e)if(e>>>0>1073741823){l=mb(8)|0;RDb(l,238482);f[l>>2]=144484;qb(l|0,84192,1464)}else{d=LDb(e<<2)|0;c=d;break}else{c=0;d=0}while(0);iGb(c+(h<<2)|0,0,b<<2|0)|0;if((g|0)>0)gGb(d|0,j|0,g|0)|0;f[a>>2]=c;f[l>>2]=c+(i<<2);f[k>>2]=c+(e<<2);if(!j)return;NDb(j);return}function By(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;c=f[72467]|0;d=f[72466]|0;e=c-d>>2;do if(e>>>0<=a>>>0){g=a+1|0;if(g>>>0>e>>>0){Dy(289864,g-e|0);break}if(g>>>0<e>>>0){e=d+(g<<2)|0;if((e|0)!=(c|0))do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(h=d+8|0,g=f[h>>2]|0,f[h>>2]=g-1,(g|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(e|0));f[72467]=e}}while(0);if(!((f[(f[72466]|0)+(a<<2)>>2]|0)!=0|b^1)){b=LDb(1752)|0;Ey(b,a);c=f[72467]|0;d=f[72466]|0;e=c-d>>2;do if(e>>>0<=a>>>0){g=a+1|0;if(g>>>0>e>>>0){Dy(289864,g-e|0);break}if(g>>>0<e>>>0){e=d+(g<<2)|0;if((e|0)!=(c|0))do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(g=d+8|0,h=f[g>>2]|0,f[g>>2]=h-1,(h|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(e|0));f[72467]=e}}while(0);c=(f[72466]|0)+(a<<2)|0;d=f[c>>2]|0;if(((d|0)!=(b|0)?(f[c>>2]=b,h=b+8|0,f[h>>2]=(f[h>>2]|0)+1,d|0):0)?(b=d+8|0,h=f[b>>2]|0,f[b>>2]=h-1,(h|0)==1):0)X4(d,1,1)}c=f[72467]|0;d=f[72466]|0;e=c-d>>2;if(e>>>0>a>>>0){h=f[72466]|0;h=h+(a<<2)|0;h=f[h>>2]|0;return h|0}g=a+1|0;if(g>>>0>e>>>0){Dy(289864,g-e|0);h=f[72466]|0;h=h+(a<<2)|0;h=f[h>>2]|0;return h|0}if(g>>>0>=e>>>0){h=f[72466]|0;h=h+(a<<2)|0;h=f[h>>2]|0;return h|0}e=d+(g<<2)|0;if((e|0)!=(c|0))do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(b=d+8|0,h=f[b>>2]|0,f[b>>2]=h-1,(h|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(e|0));f[72467]=e;h=f[72466]|0;h=h+(a<<2)|0;h=f[h>>2]|0;return h|0}function Cy(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=a+8|0;e=f[m>>2]|0;n=a+4|0;d=f[n>>2]|0;g=d;if(e-d>>2>>>0>=b>>>0){d=b;e=g;while(1){f[e>>2]=f[c>>2];d=d+-1|0;if(!d)break;else e=e+4|0}f[n>>2]=g+(b<<2);return}l=f[a>>2]|0;k=d-l|0;g=k>>2;d=g+b|0;if(d>>>0>1073741823)KEb(a);i=e-l|0;j=i>>1;d=i>>2>>>0<536870911?(j>>>0<d>>>0?d:j):1073741823;do if(d)if(d>>>0>1073741823){n=mb(8)|0;RDb(n,238482);f[n>>2]=144484;qb(n|0,84192,1464)}else{j=LDb(d<<2)|0;i=j;break}else{i=0;j=0}while(0);h=i+(g<<2)|0;e=i+(d<<2)|0;d=b;g=h;while(1){f[g>>2]=f[c>>2];d=d+-1|0;if(!d)break;else g=g+4|0}if((k|0)>0)gGb(j|0,l|0,k|0)|0;f[a>>2]=i;f[n>>2]=h+(b<<2);f[m>>2]=e;if(!l)return;NDb(l);return}function Dy(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=a+8|0;e=f[m>>2]|0;n=a+4|0;d=f[n>>2]|0;c=d;if(e-d>>2>>>0>=b>>>0){iGb(d|0,0,b<<2|0)|0;f[n>>2]=c+(b<<2);return}j=f[a>>2]|0;h=d-j>>2;d=h+b|0;g=j;if(d>>>0>1073741823)KEb(a);l=e-j|0;e=l>>1;e=l>>2>>>0<536870911?(e>>>0<d>>>0?d:e):1073741823;do if(e)if(e>>>0>1073741823){n=mb(8)|0;RDb(n,238482);f[n>>2]=144484;qb(n|0,84192,1464)}else{i=LDb(e<<2)|0;break}else i=0;while(0);d=i+(h<<2)|0;l=i+(e<<2)|0;iGb(d|0,0,b<<2|0)|0;k=d+(b<<2)|0;if((c|0)==(g|0))e=j;else{b=h+-1-((c+-4+(0-j)|0)>>>2)|0;while(1){c=c+-4|0;e=f[c>>2]|0;f[d+-4>>2]=e;if(e|0){j=e+8|0;f[j>>2]=(f[j>>2]|0)+1}if((c|0)==(g|0))break;else d=d+-4|0}e=f[a>>2]|0;d=i+(b<<2)|0;g=e;c=f[n>>2]|0}f[a>>2]=d;f[n>>2]=k;f[m>>2]=l;if((c|0)!=(g|0))do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(m=d+8|0,n=f[m>>2]|0,f[m>>2]=n-1,(n|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(g|0));if(!e)return;NDb(e);return}function Ey(a,c){a=a|0;c=c|0;var e=0,g=0.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,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=u;u=u+32|0;r=E+24|0;D=E+12|0;s=E;BCa(a);f[a>>2]=89696;C=a+12|0;f[C>>2]=c;c=ni(7938)|0;A=(c|0)!=0;a:do if(A){e=b[c>>0]|0;if(!(e<<24>>24))g=0.0;else{while(1){if((e+-48&255)<10)break;c=c+1|0;e=b[c>>0]|0;if(!(e<<24>>24)){g=0.0;break a}}g=+Fy(c)}}else{if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>0){z=Nv(Mv(1)|0,162730,67)|0;Ktb(r,z+(f[(f[z>>2]|0)+-12>>2]|0)|0);y=Bvb(r,295164)|0;y=wk[f[(f[y>>2]|0)+28>>2]&1023](y,10)|0;Cvb(r);rub(z,y)|0;Rtb(z)|0;g=0.0}else g=0.0}while(0);y=a+16|0;n[y>>2]=g;k=a+20|0;n[k>>2]=0.0;x=A&1;e=a+25|0;h=a+26|0;i=a+27|0;j=a+28|0;iGb(e|0,x|0,4)|0;do if(A){if(!(Gy(f[C>>2]|0,162798,3402823466385288598117041.0e14)|0)?!(Gy(f[C>>2]|0,162822,3402823466385288598117041.0e14)|0):0)c=Gy(f[C>>2]|0,162845,3.200000047683716)|0;else c=1;b[a+29>>0]=c&1;z=(Gy(f[C>>2]|0,162869,3.0)|0)&1;b[a+31>>0]=z;if(Gy(f[C>>2]|0,162888,4.0)|0)c=1;else c=Gy(f[C>>2]|0,162915,3402823466385288598117041.0e14)|0;b[a+30>>0]=c&1;z=(Gy(f[C>>2]|0,162942,3.0999999046325684)|0)&1;b[a+32>>0]=z;z=(Gy(f[C>>2]|0,162971,4.099999904632568)|0)&1;b[a+33>>0]=z;z=(Gy(f[C>>2]|0,162997,4.0)|0)&1;b[a+34>>0]=z;z=(Gy(f[C>>2]|0,163020,4.199999809265137)|0)&1;b[a+35>>0]=z;if(!(Gy(f[C>>2]|0,163050,3402823466385288598117041.0e14)|0)?!(Gy(f[C>>2]|0,163075,3402823466385288598117041.0e14)|0):0)c=Gy(f[C>>2]|0,163100,3402823466385288598117041.0e14)|0;else c=1;b[a+36>>0]=c&1;b[a+37>>0]=1;z=Gy(f[C>>2]|0,163124,3402823466385288598117041.0e14)|0;g=+n[y>>2];b[a+38>>0]=(z|g>=4.5)&1;if(!(g>=2.0)){if(!(b[e>>0]|0)){e=1;B=27;break}if(!(b[h>>0]|0)){e=1;B=27;break}if(!(b[i>>0]|0)){e=1;B=27;break}z=b[j>>0]|0;c=a+24|0;b[c>>0]=z;if(!(z<<24>>24)){z=1;break}}else{c=a+24|0;b[c>>0]=1}do{}while((li()|0)!=0);e=ni(35724)|0;b:do if((e|0)!=0&(li()|0)==0){h=b[e>>0]|0;if(!(h<<24>>24))g=0.0;else{while(1){if((h+-48&255)<10)break;e=e+1|0;h=b[e>>0]|0;if(!(h<<24>>24)){g=0.0;break b}}g=+Fy(e)}}else g=1.0;while(0);n[k>>2]=g;z=1}else{h=a+29|0;i=h+10|0;do{b[h>>0]=0;h=h+1|0}while((h|0)<(i|0));e=0;B=27}while(0);if((B|0)==27){c=a+24|0;b[c>>0]=0;z=e}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>3){v=Nv(Mv(4)|0,163144,10)|0;v=Nv(Nv(oub(v,+n[y>>2])|0,239432,2)|0,163155,16)|0;w=(b[c>>0]|0)==0;w=Nv(Nv(Nv(v,w?163172:235726,w?2:3)|0,239432,2)|0,163175,20)|0;w=oub(w,+n[k>>2])|0;Ktb(r,w+(f[(f[w>>2]|0)+-12>>2]|0)|0);v=Bvb(r,295164)|0;v=wk[f[(f[v>>2]|0)+28>>2]&1023](v,10)|0;Cvb(r);rub(w,v)|0;Rtb(w)|0}e=a+40|0;if(A){c=Bc(276137)|0;if(!c)c=Bc(163196)|0;f[e>>2]=c;c=Bc(273348)|0;if(!c)c=Bc(163213)|0;f[a+44>>2]=c;c=Bc(274818)|0;if(!c)c=Bc(163231)|0;f[a+48>>2]=c;c=Bc(274636)|0;if(!c)c=Bc(163255)|0;f[a+52>>2]=c;c=Bc(273249)|0;if(!c)c=Bc(163274)|0;f[a+56>>2]=c;c=Bc(273318)|0;if(!c)c=Bc(163299)|0;f[a+60>>2]=c;c=Bc(274711)|0;f[a+64>>2]=c;c=Bc(274567)|0;f[a+72>>2]=c;c=Bc(273378)|0;if(!c)c=Bc(163323)|0;f[a+76>>2]=c;c=Bc(275388)|0;f[a+80>>2]=c;c=Bc(275362)|0;f[a+84>>2]=c;c=Bc(274549)|0;if(!c)c=Bc(163341)|0;f[a+88>>2]=c;c=Bc(274100)|0;if(!c)c=Bc(163362)|0;f[a+92>>2]=c;c=Bc(274582)|0;if(!c)c=Bc(163384)|0;f[a+96>>2]=c;c=Bc(274529)|0;if(!c)c=Bc(163408)|0;f[a+100>>2]=c;c=Bc(274685)|0;f[a+104>>2]=c;c=Bc(274768)|0;f[a+112>>2]=c;c=Bc(274671)|0;f[a+120>>2]=c;c=Bc(274652)|0;f[a+124>>2]=c;c=Bc(274618)|0;if(!c)c=Bc(163431)|0;f[a+128>>2]=c;c=Bc(274013)|0;if(!c)c=Bc(163452)|0;f[a+132>>2]=c;c=Bc(273983)|0;if(!c)c=Bc(163476)|0;f[a+136>>2]=c;c=Bc(273998)|0;if(!c)c=Bc(163494)|0;f[a+140>>2]=c;c=Bc(163512)|0;f[a+144>>2]=c;c=Bc(274034)|0;f[a+148>>2]=c;c=Bc(274054)|0;f[a+152>>2]=c;c=Bc(274074)|0;f[a+156>>2]=c;c=Bc(274806)|0;f[a+160>>2]=c;c=Bc(274700)|0;f[a+164>>2]=c;c=Bc(274754)|0;if(!c)c=Bc(163532)|0;f[a+168>>2]=c;c=Bc(274603)|0;if(!c)c=Bc(163549)|0;f[a+172>>2]=c;c=Bc(273284)|0;if(!c)c=Bc(163567)|0;f[a+176>>2]=c;c=Bc(274119)|0;if(!c)c=Bc(163589)|0;f[a+180>>2]=c;c=Bc(274131)|0;if(!c)c=Bc(163604)|0;f[a+184>>2]=c;c=Bc(274143)|0;if(!c)c=Bc(163619)|0;f[a+188>>2]=c;c=Bc(274155)|0;if(!c)c=Bc(163634)|0;f[a+192>>2]=c;c=Bc(274167)|0;if(!c)c=Bc(163649)|0;f[a+196>>2]=c;c=Bc(274179)|0;if(!c)c=Bc(163664)|0;f[a+200>>2]=c;c=Bc(274191)|0;if(!c)c=Bc(163679)|0;f[a+204>>2]=c;c=Bc(274203)|0;if(!c)c=Bc(163694)|0;f[a+208>>2]=c;c=Bc(274267)|0;if(!c)c=Bc(163709)|0;f[a+212>>2]=c;c=Bc(274280)|0;if(!c)c=Bc(163725)|0;f[a+216>>2]=c;c=Bc(274293)|0;if(!c)c=Bc(163741)|0;f[a+220>>2]=c;c=Bc(274306)|0;if(!c)c=Bc(163757)|0;f[a+224>>2]=c;c=Bc(274215)|0;if(!c)c=Bc(163773)|0;f[a+228>>2]=c;c=Bc(274228)|0;if(!c)c=Bc(163789)|0;f[a+232>>2]=c;c=Bc(274241)|0;if(!c)c=Bc(163805)|0;f[a+236>>2]=c;c=Bc(274254)|0;if(!c)c=Bc(163821)|0;f[a+240>>2]=c;c=Bc(274319)|0;if(!c)c=Bc(163837)|0;f[a+244>>2]=c;c=Bc(274338)|0;if(!c)c=Bc(163859)|0;f[a+248>>2]=c;c=Bc(274357)|0;if(!c)c=Bc(163881)|0;f[a+252>>2]=c;c=Bc(274788)|0;if(!c)c=Bc(163903)|0;f[a+256>>2]=c;c=Bc(163924)|0;if(!c)c=Bc(163941)|0;f[a+260>>2]=c;c=Bc(163961)|0;f[a+264>>2]=c;c=Bc(274389)|0;if(!c)c=Bc(163979)|0;f[a+268>>2]=c;c=Bc(274457)|0;if(!c)c=Bc(163999)|0;f[a+272>>2]=c;c=Bc(164020)|0;if(!c)c=Bc(164037)|0;f[a+276>>2]=c;c=Bc(164057)|0;f[a+280>>2]=c;c=Bc(164075)|0;f[a+284>>2]=c;c=Bc(164092)|0;if(!c)c=Bc(164110)|0;f[a+288>>2]=c;c=Bc(274406)|0;f[a+292>>2]=c;c=Bc(274475)|0;if(!c)c=Bc(164131)|0;f[a+296>>2]=c;c=Bc(164152)|0;f[a+300>>2]=c;c=Bc(164169)|0;f[a+304>>2]=c;c=Bc(164187)|0;f[a+308>>2]=c;c=Bc(164204)|0;if(!c)c=Bc(164222)|0;f[a+312>>2]=c;c=Bc(274423)|0;f[a+316>>2]=c;c=Bc(274493)|0;if(!c)c=Bc(164243)|0;f[a+320>>2]=c;c=Bc(164264)|0;f[a+324>>2]=c;c=Bc(164281)|0;f[a+328>>2]=c;c=Bc(164299)|0;f[a+332>>2]=c;c=Bc(164318)|0;f[a+336>>2]=c;c=Bc(164337)|0;f[a+340>>2]=c;c=Bc(164356)|0;f[a+344>>2]=c;c=Bc(164375)|0;if(!c)c=Bc(164395)|0;f[a+348>>2]=c;c=Bc(164418)|0;f[a+352>>2]=c;c=Bc(164438)|0;f[a+356>>2]=c;c=Bc(164458)|0;f[a+360>>2]=c;c=Bc(164476)|0;f[a+364>>2]=c;c=Bc(164493)|0;if(!c)c=Bc(164511)|0;f[a+368>>2]=c;c=Bc(274440)|0;f[a+372>>2]=c;c=Bc(274511)|0;if(!c)c=Bc(164532)|0;f[a+376>>2]=c;c=Bc(164553)|0;f[a+380>>2]=c;c=Bc(164571)|0;f[a+384>>2]=c;c=Bc(164588)|0;f[a+388>>2]=c;c=Bc(164606)|0;if(!c)c=Bc(164625)|0;f[a+392>>2]=c;c=Bc(164647)|0;f[a+396>>2]=c;c=Bc(164666)|0;f[a+400>>2]=c;c=Bc(275340)|0;if(!c)c=Bc(200397)|0;f[a+404>>2]=c;c=Bc(276596)|0;if(!c)c=Bc(164685)|0;f[a+408>>2]=c;c=Bc(200422)|0;if(!c)c=Bc(164711)|0;f[a+412>>2]=c;c=Bc(275493)|0;f[a+416>>2]=c;c=Bc(164737)|0;f[a+116>>2]=c;c=Bc(164753)|0;f[a+108>>2]=c;c=Bc(164779)|0;f[a+68>>2]=c;c=Bc(164797)|0;f[a+576>>2]=c;c=Bc(164812)|0;f[a+420>>2]=c;c=Bc(164833)|0;f[a+424>>2]=c;c=Bc(164854)|0;f[a+428>>2]=c;c=Bc(164875)|0;f[a+432>>2]=c;c=Bc(164896)|0;f[a+436>>2]=c;c=Bc(164917)|0;f[a+440>>2]=c;c=Bc(164938)|0;f[a+444>>2]=c;c=Bc(164952)|0;if(!c)c=Bc(164972)|0;f[a+448>>2]=c;c=Bc(164995)|0;f[a+452>>2]=c;c=Bc(165013)|0;f[a+456>>2]=c;c=Bc(277044)|0;if(!c)c=Bc(165032)|0;f[a+460>>2]=c;c=Bc(277060)|0;if(!c)c=Bc(165051)|0;f[a+464>>2]=c;c=Bc(165077)|0;if(!c)c=Bc(165107)|0;f[a+468>>2]=c;c=Bc(165140)|0;if(!c)c=Bc(165159)|0;f[a+472>>2]=c;c=Bc(277083)|0;if(!c)c=Bc(165181)|0;f[a+476>>2]=c;c=Bc(277105)|0;if(!c)c=Bc(165206)|0;f[a+480>>2]=c;c=Bc(277118)|0;if(!c)c=Bc(165222)|0;f[a+484>>2]=c;c=Bc(277131)|0;if(!c)c=Bc(165238)|0;f[a+488>>2]=c;c=Bc(277144)|0;if(!c)c=Bc(165254)|0;f[a+492>>2]=c;c=Bc(165270)|0;if(!c)c=Bc(165284)|0;f[a+496>>2]=c;c=Bc(165301)|0;if(!c)c=Bc(165315)|0;f[a+500>>2]=c;c=Bc(165332)|0;if(!c)c=Bc(165346)|0;f[a+504>>2]=c;c=Bc(165363)|0;if(!c)c=Bc(165377)|0;f[a+508>>2]=c;c=Bc(165394)|0;if(!c)c=Bc(165408)|0;f[a+512>>2]=c;c=Bc(165425)|0;if(!c)c=Bc(165440)|0;f[a+520>>2]=c;c=Bc(165458)|0;if(!c)c=Bc(165472)|0;f[a+528>>2]=c;c=Bc(165489)|0;if(!c)c=Bc(165504)|0;f[a+536>>2]=c;c=Bc(165522)|0;if(!c)c=Bc(165536)|0;f[a+544>>2]=c;c=Bc(165553)|0;if(!c)c=Bc(165568)|0;f[a+552>>2]=c;c=Bc(165586)|0;if(!c)c=Bc(165600)|0;f[a+560>>2]=c;c=Bc(165617)|0;if(!c)c=Bc(165632)|0;f[a+568>>2]=c;c=Bc(165650)|0;if(!c)c=Bc(165665)|0;f[a+516>>2]=c;c=Bc(165683)|0;if(!c)c=Bc(165699)|0;f[a+524>>2]=c;c=Bc(165718)|0;if(!c)c=Bc(165733)|0;f[a+532>>2]=c;c=Bc(165751)|0;if(!c)c=Bc(165767)|0;f[a+540>>2]=c;c=Bc(165786)|0;if(!c)c=Bc(165801)|0;f[a+548>>2]=c;c=Bc(165819)|0;if(!c)c=Bc(165835)|0;f[a+556>>2]=c;c=Bc(165854)|0;if(!c)c=Bc(165869)|0;f[a+564>>2]=c;c=Bc(165887)|0;if(!c)c=Bc(165903)|0;f[a+572>>2]=c;c=Bc(276151)|0;f[a+580>>2]=c;c=Bc(276171)|0;f[a+584>>2]=c;c=Bc(276193)|0;f[a+588>>2]=c;c=Bc(276216)|0;f[a+592>>2]=c;c=Bc(276239)|0;f[a+596>>2]=c;c=Bc(276265)|0;f[a+600>>2]=c;c=Bc(276293)|0;f[a+604>>2]=c;c=Bc(165922)|0;f[a+608>>2]=c;c=Bc(165941)|0;f[a+612>>2]=c;c=Bc(165957)|0;f[a+616>>2]=c;c=Bc(165969)|0;f[a+620>>2]=c;c=Bc(165981)|0;f[a+624>>2]=c;c=Bc(165993)|0;f[a+628>>2]=c;c=Bc(166005)|0;f[a+632>>2]=c;c=Bc(166018)|0;f[a+636>>2]=c;c=Bc(166031)|0;f[a+640>>2]=c;c=Bc(166044)|0;f[a+644>>2]=c;c=Bc(166057)|0;f[a+648>>2]=c;c=Bc(166076)|0;f[a+652>>2]=c;c=Bc(166095)|0;f[a+656>>2]=c;c=Bc(166114)|0;f[a+660>>2]=c;c=Bc(166135)|0;f[a+664>>2]=c;c=Bc(166156)|0;f[a+668>>2]=c;c=Bc(166177)|0;f[a+672>>2]=c;c=Bc(166198)|0;f[a+676>>2]=c;c=Bc(166219)|0;f[a+680>>2]=c;c=Bc(166240)|0;f[a+684>>2]=c;c=Bc(166273)|0;f[a+688>>2]=c;c=Bc(166291)|0;if(!c)c=Bc(166307)|0;f[a+788>>2]=c;c=Bc(273785)|0;if(!c)c=Bc(166326)|0;f[a+720>>2]=c;c=Bc(274376)|0;if(!c)c=Bc(200543)|0;f[a+724>>2]=c;c=Bc(273837)|0;if(!c)c=Bc(166342)|0;f[a+728>>2]=c;c=Bc(273850)|0;if(!c)c=Bc(166358)|0;f[a+732>>2]=c;c=Bc(273798)|0;if(!c)c=Bc(166377)|0;f[a+736>>2]=c;c=Bc(273866)|0;if(!c)c=Bc(166396)|0;f[a+740>>2]=c;c=Bc(166410)|0;if(!c)c=Bc(166429)|0;f[a+744>>2]=c;c=Bc(166451)|0;if(!c)c=Bc(166467)|0;f[a+748>>2]=c;c=Bc(166486)|0;if(!c)c=Bc(166507)|0;f[a+752>>2]=c;c=Bc(166531)|0;if(!c)c=Bc(166543)|0;f[a+756>>2]=c;c=Bc(166558)|0;if(!c)c=Bc(166575)|0;f[a+760>>2]=c;c=Bc(166595)|0;if(!c)c=Bc(166609)|0;f[a+764>>2]=c;c=Bc(273814)|0;if(!c)c=Bc(166626)|0;f[a+768>>2]=c;c=Bc(166652)|0;if(!c)c=Bc(166672)|0;f[a+772>>2]=c;e=Bc(276442)|0;f[a+776>>2]=e;e=a+780|0;c=Bc(276460)|0;do if(!c){c=Bc(166695)|0;if(c|0)break;c=Bc(166715)|0}while(0);f[e>>2]=c;c=Bc(166734)|0;if(!c)c=Bc(166746)|0;f[a+784>>2]=c;e=a+713|0;b[e>>0]=z;i=a+714|0;c=(Gy(f[C>>2]|0,166761,3402823466385288598117041.0e14)|0)&1;b[i>>0]=c;c=(Gy(f[C>>2]|0,166788,3402823466385288598117041.0e14)|0)&1;b[a+715>>0]=c;c=f[C>>2]|0;if(Gy(c,166817,3402823466385288598117041.0e14)|0)c=1;else c=Gy(c,166844,3402823466385288598117041.0e14)|0;b[a+716>>0]=c&1;h=Gy(f[C>>2]|0,166871,3402823466385288598117041.0e14)|0;e=b[e>>0]|0;c=i}else{c=a+713|0;iGb(e|0,0,652)|0;h=a+720|0;i=h+72|0;do{f[h>>2]=0;h=h+4|0}while((h|0)<(i|0));b[c>>0]=z;c=a+714|0;b[c>>0]=0;b[a+715>>0]=0;b[a+716>>0]=0;h=0;e=z}b[a+717>>0]=h&1;if(!(e<<24>>24))c=(b[c>>0]|0)!=0;else c=1;b[a+712>>0]=c&1;b[a+792>>0]=z;e=a+796|0;if(A){c=Bc(276025)|0;if(!c)c=Bc(166898)|0;f[e>>2]=c;c=Bc(166921)|0;if(!c)c=Bc(166934)|0;f[a+800>>2]=c;c=Bc(166950)|0;if(!c)c=Bc(166971)|0;f[a+804>>2]=c;e=(Gy(f[C>>2]|0,200090,3402823466385288598117041.0e14)|0)&1;b[a+808>>0]=e;e=(Gy(f[C>>2]|0,200113,3402823466385288598117041.0e14)|0)&1;b[a+809>>0]=e;e=(Gy(f[C>>2]|0,166995,3402823466385288598117041.0e14)|0)&1;b[a+810>>0]=e;e=(Gy(f[C>>2]|0,167015,3402823466385288598117041.0e14)|0)&1;b[a+811>>0]=e;e=(Gy(f[C>>2]|0,167037,3402823466385288598117041.0e14)|0)&1;b[a+812>>0]=e;e=(Gy(f[C>>2]|0,167060,3402823466385288598117041.0e14)|0)&1;b[a+813>>0]=e;e=(Gy(f[C>>2]|0,167079,3402823466385288598117041.0e14)|0)&1;b[a+814>>0]=e;e=a+816|0;c=Bc(275515)|0;if(!c){c=Bc(200559)|0;if(!c)c=Bc(200584)|0}f[e>>2]=c;e=a+820|0;c=Bc(275537)|0;if(!c){c=Bc(200609)|0;if(!c)c=Bc(200636)|0}f[e>>2]=c;c=Bc(167098)|0;if(!c)c=Bc(167111)|0;f[a+832>>2]=c;c=Bc(167127)|0;if(!c)c=Bc(167148)|0;f[a+824>>2]=c;c=Bc(167172)|0;if(!c)c=Bc(167192)|0;f[a+828>>2]=c;c=Bc(167215)|0;if(!c)c=Bc(167233)|0;f[a+836>>2]=c;c=Bc(200474)|0;if(!c)c=Bc(200492)|0;f[a+840>>2]=c;c=Bc(167254)|0;if(!c)c=Bc(167273)|0;f[a+844>>2]=c;c=Bc(167295)|0;if(!c)c=Bc(167314)|0;f[a+848>>2]=c;c=Bc(167336)|0;if(!c)c=Bc(167355)|0;f[a+852>>2]=c;c=Bc(167377)|0;if(!c)c=Bc(167396)|0;f[a+856>>2]=c;c=Bc(167418)|0;if(!c)c=Bc(167436)|0;f[a+860>>2]=c;c=Bc(167457)|0;if(!c)c=Bc(167476)|0;f[a+864>>2]=c;c=Bc(167498)|0;if(!c)c=Bc(167517)|0;f[a+868>>2]=c;c=Bc(167539)|0;if(!c)c=Bc(167558)|0;f[a+872>>2]=c;c=Bc(167580)|0;if(!c)c=Bc(167599)|0;f[a+876>>2]=c;c=Bc(167621)|0;if(!c)c=Bc(167643)|0;f[a+880>>2]=c;c=Bc(167667)|0;if(!c)c=Bc(167692)|0;f[a+884>>2]=c;c=Bc(167719)|0;if(!c)c=Bc(167738)|0;f[a+888>>2]=c;c=Bc(167759)|0;if(!c)c=Bc(167781)|0;f[a+892>>2]=c;c=Bc(167805)|0;if(!c)c=Bc(167825)|0;f[a+896>>2]=c;c=Bc(167847)|0;if(!c)c=Bc(167869)|0;f[a+900>>2]=c;c=Bc(167893)|0;if(!c)c=Bc(167916)|0;f[a+904>>2]=c;c=Bc(167941)|0;if(!c)c=Bc(167954)|0;f[a+912>>2]=c;c=Bc(167970)|0;if(!c)c=Bc(167986)|0;f[a+940>>2]=c;c=Bc(168005)|0;if(!c)c=Bc(168015)|0;f[a+936>>2]=c;c=Bc(168028)|0;if(!c)c=Bc(168041)|0;f[a+916>>2]=c;c=Bc(168057)|0;if(!c)c=Bc(168068)|0;f[a+920>>2]=c;c=Bc(168082)|0;if(!c)c=Bc(168102)|0;f[a+924>>2]=c;c=Bc(168125)|0;if(!c)c=Bc(168143)|0;f[a+928>>2]=c;c=Bc(168164)|0;if(!c)c=Bc(168177)|0;f[a+908>>2]=c;c=Bc(168193)|0;if(!c)c=Bc(168212)|0;f[a+944>>2]=c;c=Bc(168234)|0;if(!c)c=Bc(168254)|0;f[a+948>>2]=c;c=Bc(168277)|0;if(!c)c=Bc(168299)|0;f[a+952>>2]=c;c=Bc(168324)|0;f[a+932>>2]=c;c=Bc(168339)|0;f[a+956>>2]=c;c=Gy(f[C>>2]|0,168355,3402823466385288598117041.0e14)|0}else{f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;f[e+12>>2]=0;d[e+16>>1]=0;b[e+18>>0]=0;iGb(a+816|0,0,144)|0;c=0}b[a+961>>0]=c&1;c=a+960|0;b[c>>0]=+n[y>>2]>=3.200000047683716&1;e=a+964|0;if(A){w=Bc(168382)|0;f[e>>2]=w;if(!(b[c>>0]|0))c=Gy(f[C>>2]|0,168396,3402823466385288598117041.0e14)|0;else c=1;b[a+962>>0]=c&1;c=(Gy(f[C>>2]|0,168420,3402823466385288598117041.0e14)|0)&1;b[a+968>>0]=c;c=(Gy(f[C>>2]|0,168442,3402823466385288598117041.0e14)|0)&1;b[a+969>>0]=c;c=Bc(168466)|0;f[a+972>>2]=c;c=Bc(168483)|0;f[a+976>>2]=c;c=Bc(168500)|0;f[a+980>>2]=c;c=Bc(168520)|0;f[a+984>>2]=c;c=Bc(168539)|0;f[a+988>>2]=c;c=Bc(168569)|0;if(!c)c=Bc(168589)|0;f[a+992>>2]=c;c=Bc(168612)|0;if(!c)c=Bc(168632)|0;f[a+996>>2]=c;c=Bc(168655)|0;if(!c)c=Bc(168676)|0;f[a+1e3>>2]=c;c=Bc(168700)|0;if(!c)c=Bc(168721)|0;f[a+1004>>2]=c;c=Bc(168745)|0;if(!c)c=Bc(168767)|0;f[a+1008>>2]=c;c=Bc(168792)|0;if(!c)c=Bc(168815)|0;f[a+1012>>2]=c;c=Bc(168841)|0;if(!c)c=Bc(168865)|0;f[a+1016>>2]=c;c=Bc(168892)|0;if(!c)c=Bc(168916)|0;f[a+1020>>2]=c;c=Bc(168943)|0;if(!c)c=Bc(168968)|0;f[a+1024>>2]=c;c=Bc(168996)|0;if(!c)c=Bc(169022)|0;f[a+1028>>2]=c;c=Bc(169051)|0;if(!c)c=Bc(169065)|0;f[a+1032>>2]=c;c=Bc(169082)|0;if(!c)c=Bc(169099)|0;f[a+1036>>2]=c;c=Bc(169119)|0;if(!c)c=Bc(169133)|0;f[a+1040>>2]=c;c=Bc(169150)|0;if(!c)c=Bc(169162)|0;f[a+1044>>2]=c;c=ni(7937)|0}else{f[e>>2]=0;b[a+962>>0]=0;b[a+968>>0]=0;b[a+969>>0]=0;h=a+972|0;i=h+76|0;do{f[h>>2]=0;h=h+4|0}while((h|0)<(i|0));c=0}h=(c|0)==0?295620:c;f[D>>2]=0;f[D+4>>2]=0;f[D+8>>2]=0;i=Zob(h)|0;if(i>>>0>4294967279)TDb(D);if(i>>>0<11){e=D+11|0;b[e>>0]=i;if(!i){c=D;w=e}else{c=D;B=368}}else{e=i+16&-16;c=LDb(e)|0;f[D>>2]=c;f[D+8>>2]=e|-2147483648;f[D+4>>2]=i;e=D+11|0;B=368}if((B|0)==368){gGb(c|0,h|0,i|0)|0;w=e}b[c+i>>0]=0;e=b[w>>0]|0;m=e<<24>>24<0;h=m?f[D>>2]|0:D;p=D+4|0;e=m?f[p>>2]|0:e&255;m=h+e|0;c=m;o=h;k=(e|0)<6;c:do if(!k){j=h;i=e;do{i=i+-5|0;if(!i)break;l=epb(j,82,i)|0;if(!l)break;if(!(ipb(l,200684,6)|0)){B=375;break}j=l+1|0;i=c-j|0}while((i|0)>=6);if((B|0)==375?!((l|0)==(m|0)|(l-o|0)==-1):0){l=1;break}if(!k){j=h;i=e;while(1){i=i+-5|0;if(!i){j=m;i=c;B=383;break c}i=epb(j,82,i)|0;if(!i){j=m;i=c;B=383;break c}if(!(ipb(i,200691,6)|0))break;j=i+1|0;i=c-j|0;if((i|0)<6){j=m;i=c;B=383;break c}}j=i;B=383}else{j=m;i=c;B=383}}else{j=m;i=c;B=383}while(0);if((B|0)==383)l=(i-o|0)!=-1&(j|0)!=(m|0);d:do if(!k){j=h;i=e;do{i=i+-5|0;if(!i)break;q=epb(j,70,i)|0;if(!q)break;if(!(ipb(q,169177,6)|0)){B=390;break}j=q+1|0;i=c-j|0}while((i|0)>=6);if((B|0)==390?!((q|0)==(m|0)|(q-o|0)==-1):0){h=1;break}if(!k){while(1){e=e+-5|0;if(!e){h=m;B=398;break d}e=epb(h,70,e)|0;if(!e){h=m;B=398;break d}if(!(ipb(e,169184,6)|0))break;h=e+1|0;e=c-h|0;if((e|0)<6){h=m;B=398;break d}}h=e;c=e;B=398}else{h=m;B=398}}else{h=m;B=398}while(0);if((B|0)==398)h=(c-o|0)!=-1&(h|0)!=(m|0);b[a+1048>>0]=x;if(A){v=(Gy(f[C>>2]|0,169191,3402823466385288598117041.0e14)|0)&1;b[a+1049>>0]=v;v=(Gy(f[C>>2]|0,169225,3402823466385288598117041.0e14)|0)&1;b[a+1050>>0]=v;b[a+1051>>0]=x;if(Gy(f[C>>2]|0,169248,3402823466385288598117041.0e14)|0)c=1;else c=Gy(f[C>>2]|0,169280,3402823466385288598117041.0e14)|0;b[a+1052>>0]=c&1;c=(Gy(f[C>>2]|0,169291,3402823466385288598117041.0e14)|0)&1;b[a+1053>>0]=c;b[a+1054>>0]=c;c=(Gy(f[C>>2]|0,169324,3402823466385288598117041.0e14)|0)&1;b[a+1055>>0]=c;c=(Gy(f[C>>2]|0,169360,3402823466385288598117041.0e14)|0)&1;b[a+1056>>0]=c;c=(Gy(f[C>>2]|0,169385,3402823466385288598117041.0e14)|0)&1;b[a+1057>>0]=c;c=Gy(f[C>>2]|0,169291,3402823466385288598117041.0e14)|0}else{b[a+1049>>0]=0;b[a+1050>>0]=0;b[a+1051>>0]=x;c=a+1052|0;f[c>>2]=0;d[c+4>>1]=0;c=0}b[a+1058>>0]=c&1;b[a+1059>>0]=x;b[a+1060>>0]=x;if(A){c=1;e=Gy(f[C>>2]|0,169417,3402823466385288598117041.0e14)|0}else{c=0;e=0}b[a+1061>>0]=e&1;b[a+1062>>0]=x;b[a+1063>>0]=((l|h)^1)&1;if(c){c=(Gy(f[C>>2]|0,168355,3402823466385288598117041.0e14)|0)&1;b[a+1064>>0]=c;c=(Gy(f[C>>2]|0,169445,3402823466385288598117041.0e14)|0)&1;b[a+1065>>0]=c;c=(Gy(f[C>>2]|0,169459,3402823466385288598117041.0e14)|0)&1;b[a+1066>>0]=c;c=Gy(f[C>>2]|0,169481,3402823466385288598117041.0e14)|0}else{b[a+1064>>0]=0;b[a+1065>>0]=0;b[a+1066>>0]=0;c=0}b[a+1072>>0]=c&1;k=a+1075|0;b[k>>0]=x;b[a+1076>>0]=x;if(A)c=Gy(f[C>>2]|0,169505,3402823466385288598117041.0e14)|0;else c=0;b[a+1073>>0]=c&1;c=b[w>>0]|0;h=c<<24>>24<0;e=h?f[D>>2]|0:D;c=h?f[p>>2]|0:c&255;h=e+c|0;i=h;j=e;e:do if((c|0)>=10){while(1){c=c+-9|0;if(!c)break e;c=epb(e,71,c)|0;if(!c)break e;if(!(ipb(c,169528,10)|0))break;e=c+1|0;c=i-e|0;if((c|0)<10)break e}if(!((c|0)==(h|0)|(c-j|0)==-1)){b[k>>0]=0;do if(!(b[287952]|0)){if(!(PFb(287952)|0))break;Lv(289680)}while(0);if((f[72420]|0)<=3)break;v=Nv(Mv(4)|0,169539,76)|0;Ktb(r,v+(f[(f[v>>2]|0)+-12>>2]|0)|0);t=Bvb(r,295164)|0;t=wk[f[(f[t>>2]|0)+28>>2]&1023](t,10)|0;Cvb(r);rub(v,t)|0;Rtb(v)|0}}while(0);e=a+1068|0;f[e>>2]=0;if(A){mi(3379,e|0);c=f[e>>2]|0}else c=0;f[r>>2]=c;do if(by(217811,r)|0){c=f[r>>2]|0;if((c|0)>=(f[e>>2]|0))break;f[e>>2]=c}while(0);g=+n[y>>2];b[a+1067>>0]=g>=1.2000000476837158&1;if(A){if(!(g>=4.199999809265137)){v=Gy(f[C>>2]|0,169616,3402823466385288598117041.0e14)|0;c=a+1074|0;b[c>>0]=v&1;if(v){k=c;B=432}}else{k=a+1074|0;b[k>>0]=1;B=432}if((B|0)==432){f[s>>2]=0;f[s+4>>2]=0;f[s+8>>2]=0;e=Th(217866)|0;f:do if(!e)c=s+11|0;else{c=0;while(1){if(!(b[e+c>>0]|0))break;c=c+1|0;if(c>>>0>=4096){c=4096;break}}aEb(s,e,c)|0;c=s+11|0;i=b[c>>0]|0;j=s+4|0;e=f[j>>2]|0;h=i&255;do if(((i<<24>>24<0?e:h)|0)==3){if(!(uEb(s,0,-1,222728,3)|0))break;i=b[c>>0]|0;h=i&255;e=f[j>>2]|0;B=440}else B=440;while(0);do if((B|0)==440){if(((i<<24>>24<0?e:h)|0)==7?(uEb(s,0,-1,169639,7)|0)==0:0)break;b[k>>0]=1;break f}while(0);b[k>>0]=0}while(0);if((b[c>>0]|0)<0)NDb(f[s>>2]|0)}c=Bc(169647)|0;if(!c)c=Bc(169662)|0;f[a+1080>>2]=c;c=Bc(169680)|0;if(!c)c=Bc(169699)|0;f[a+1084>>2]=c;c=Bc(273610)|0;if(!c)c=Bc(169721)|0;f[a+1088>>2]=c;c=Bc(169739)|0;if(!c)c=Bc(169758)|0;f[a+1092>>2]=c;c=Bc(273625)|0;if(!c)c=Bc(169780)|0;f[a+1096>>2]=c;c=Bc(169798)|0;if(!c)c=Bc(169817)|0;f[a+1100>>2]=c;c=Bc(169839)|0;if(!c)c=Bc(169869)|0;f[a+1104>>2]=c;c=Bc(169902)|0;if(!c)c=Bc(169932)|0;f[a+1108>>2]=c;c=Bc(169965)|0;if(!c)c=Bc(169979)|0;f[a+1112>>2]=c;c=Bc(273503)|0;if(!c)c=Bc(169996)|0;f[a+1116>>2]=c;c=Bc(273526)|0;if(!c)c=Bc(170022)|0;f[a+1120>>2]=c;c=Bc(170051)|0;if(!c)c=Bc(170075)|0;f[a+1124>>2]=c;c=Bc(170102)|0;if(!c)c=Bc(170126)|0;f[a+1128>>2]=c;e=a+1132|0;c=Bc(277157)|0;do if(!c){c=Bc(170153)|0;if(c|0)break;c=Bc(170174)|0}while(0);f[e>>2]=c;e=a+1136|0;c=Bc(277175)|0;do if(!c){c=Bc(170195)|0;if(c|0)break;c=Bc(170217)|0}while(0);f[e>>2]=c;c=Bc(170239)|0;if(!c)c=Bc(170258)|0;f[a+1140>>2]=c;v=Gy(f[C>>2]|0,170280,3402823466385288598117041.0e14)|0;b[a+1145>>0]=v&1;if(v){b[a+1144>>0]=1;c=a+1148|0}else{b[a+1144>>0]=+n[y>>2]>=1.2000000476837158&1;c=a+1148|0}f[c>>2]=0;mi(32883,c|0);c=Bc(273581)|0;if(!c)c=Bc(170297)|0;f[a+1152>>2]=c;c=Bc(273594)|0;if(!c)c=Bc(170313)|0;f[a+1156>>2]=c;c=Bc(170332)|0;if(!c)c=Bc(170355)|0;f[a+1164>>2]=c;c=Bc(170381)|0;if(!c)c=Bc(170407)|0;f[a+1168>>2]=c;c=Bc(170436)|0;f[a+1172>>2]=c;c=Bc(170460)|0;f[a+1176>>2]=c;c=Bc(170479)|0;if(!c)c=Bc(170499)|0}else{b[a+1074>>0]=0;f[a+1080>>2]=0;c=a+1084|0;f[a+1148>>2]=0;f[a+1152>>2]=0;f[a+1156>>2]=0;e=a+1164|0;h=c;i=h+60|0;do{f[h>>2]=0;h=h+4|0}while((h|0)<(i|0));d[c+60>>1]=0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;f[e+12>>2]=0;c=0}f[a+1160>>2]=c;t=a+1640|0;c=Bc(276548)|0;if(!c)c=Bc(170522)|0;f[t>>2]=c;v=a+1644|0;c=Bc(276573)|0;if(!c)c=Bc(170550)|0;f[v>>2]=c;if(A){e=(Gy(f[C>>2]|0,170576,3402823466385288598117041.0e14)|0)&1;b[a+1180>>0]=e;e=a+1188|0;f[e>>2]=0;mi(3379,e|0);e=a+1184|0;f[e>>2]=0;mi(35071,e|0);e=a+692|0;c=Bc(170597)|0;do if(!c){c=Bc(170616)|0;if(c|0)break;c=Bc(170638)|0}while(0);f[e>>2]=c;e=a+696|0;c=Bc(170659)|0;do if(!c){c=Bc(170687)|0;if(c|0)break;c=Bc(170718)|0}while(0);f[e>>2]=c;e=a+700|0;c=Bc(170748)|0;do if(!c){c=Bc(170779)|0;if(c|0)break;c=Bc(170813)|0}while(0);f[e>>2]=c;e=a+704|0;c=Bc(170846)|0;do if(!c){c=Bc(170866)|0;if(c|0)break;c=Bc(170889)|0}while(0);f[e>>2]=c;e=a+708|0;c=Bc(170911)|0;do if(!c){c=Bc(170937)|0;if(c|0)break;c=Bc(170966)|0}while(0);f[e>>2]=c;b[a+1192>>0]=z;c=Bc(276045)|0;if(!c)c=Bc(170994)|0;f[a+1200>>2]=c;b[a+1193>>0]=x;b[a+1194>>0]=x;c=(Gy(f[C>>2]|0,171010,3402823466385288598117041.0e14)|0)&1;b[a+1195>>0]=c;c=(Gy(f[C>>2]|0,171037,3402823466385288598117041.0e14)|0)&1;b[a+1196>>0]=c;c=Bc(275778)|0;if(!c)c=Bc(171059)|0;f[a+1204>>2]=c;c=Bc(275818)|0;if(!c)c=Bc(171078)|0;f[a+1208>>2]=c;c=Bc(171105)|0;if(!c)c=Bc(171122)|0;f[a+1212>>2]=c;c=Bc(171142)|0;if(!c)c=Bc(171167)|0;f[a+1216>>2]=c;c=Bc(276360)|0;f[a+1220>>2]=c;c=Bc(276370)|0;f[a+1224>>2]=c;c=(Gy(f[C>>2]|0,171195,1.399999976158142)|0)&1;b[a+1228>>0]=c;c=(Gy(f[C>>2]|0,171215,3402823466385288598117041.0e14)|0)&1;b[a+1229>>0]=c;b[a+1230>>0]=+n[y>>2]>=2.0&1;c=(Gy(f[C>>2]|0,171239,3402823466385288598117041.0e14)|0)&1;b[a+1231>>0]=c;c=Bc(171263)|0;f[a+1232>>2]=c;c=Bc(276080)|0;if(!c)c=Bc(171286)|0;f[a+1236>>2]=c;c=Bc(275869)|0;f[a+1240>>2]=c;c=Bc(276058)|0;if(!c)c=Bc(171309)|0;f[a+1244>>2]=c;c=Bc(171309)|0;f[a+1248>>2]=c;c=Bc(276315)|0;if(!c)c=Bc(171334)|0;f[a+1252>>2]=c;if(Gy(f[C>>2]|0,171350,3402823466385288598117041.0e14)|0)c=1;else c=+n[y>>2]>=2.0;b[a+1256>>0]=c&1;c=Bc(276535)|0;if(!c)c=Bc(171376)|0;f[a+1260>>2]=c;c=Bc(171392)|0;if(!c)c=Bc(171416)|0;f[a+1264>>2]=c;do if(!(+n[y>>2]>=1.399999976158142)){if(Gy(f[C>>2]|0,171442,3402823466385288598117041.0e14)|0){c=1;break}if(Gy(f[C>>2]|0,171466,3402823466385288598117041.0e14)|0){c=1;break}c=Gy(f[C>>2]|0,171490,3402823466385288598117041.0e14)|0}else c=1;while(0);b[a+1276>>0]=c&1;b[a+1277>>0]=z;b[a+1279>>0]=+n[y>>2]>=2.0&1;c=Bc(171515)|0;if(!c)c=Bc(171533)|0;e=a+1280|0;f[e>>2]=c;if(!c){c=Bc(171554)|0;if(!c)c=Bc(171575)|0;f[e>>2]=c}e=a+1284|0;c=Bc(171597)|0;if(!c)c=Bc(171615)|0;f[e>>2]=c;if(!c){c=Bc(171636)|0;if(!c)c=Bc(171657)|0;f[e>>2]=c}e=a+1288|0;c=Bc(171679)|0;if(!c)c=Bc(171698)|0;f[e>>2]=c;if(!c){c=Bc(171720)|0;if(!c)c=Bc(171742)|0;f[e>>2]=c}b[a+1268>>0]=z;c=(Gy(f[C>>2]|0,171765,3402823466385288598117041.0e14)|0)&1;b[a+1269>>0]=c;c=Bc(275914)|0;if(!c)c=Bc(171795)|0;f[a+1272>>2]=c;s=a+1296|0;c=Bc(273918)|0;do if(!c){c=Bc(171815)|0;if(c|0)break;c=Bc(171837)|0}while(0);f[s>>2]=c;r=a+1300|0;c=Bc(273896)|0;do if(!c){c=Bc(171859)|0;if(c|0)break;c=Bc(171884)|0}while(0);f[r>>2]=c;q=a+1304|0;c=Bc(273877)|0;do if(!c){c=Bc(171909)|0;if(c|0)break;c=Bc(171931)|0}while(0);f[q>>2]=c;p=a+1308|0;c=Bc(276003)|0;do if(!c){c=Bc(171953)|0;if(c|0)break;c=Bc(171978)|0}while(0);f[p>>2]=c;e=a+1312|0;c=Bc(172003)|0;do if(!c){c=Bc(172036)|0;if(c|0)break;c=Bc(172072)|0}while(0);f[e>>2]=c;o=Bc(172108)|0;f[a+1316>>2]=o;o=a+1320|0;c=Bc(274839)|0;do if(!c){c=Bc(172151)|0;if(c|0)break;c=Bc(172172)|0}while(0);f[o>>2]=c;m=a+1324|0;c=Bc(274875)|0;do if(!c){c=Bc(172193)|0;if(c|0)break;c=Bc(172217)|0}while(0);f[m>>2]=c;l=a+1328|0;c=Bc(274857)|0;do if(!c){c=Bc(172241)|0;if(c|0)break;c=Bc(172262)|0}while(0);f[l>>2]=c;k=a+1332|0;c=Bc(275720)|0;do if(!c){c=Bc(172283)|0;if(c|0)break;c=Bc(172311)|0}while(0);f[k>>2]=c;e=a+1336|0;c=Bc(172339)|0;do if(!c){c=Bc(172362)|0;if(c|0)break;c=Bc(172388)|0}while(0);f[e>>2]=c;j=a+1340|0;c=Bc(274922)|0;do if(!c){c=Bc(172414)|0;if(c|0)break;c=Bc(172440)|0}while(0);f[j>>2]=c;e=a+1344|0;c=Bc(172466)|0;do if(!c){c=Bc(172489)|0;if(c|0)break;c=Bc(172515)|0}while(0);f[e>>2]=c;e=a+1348|0;c=Bc(172541)|0;do if(!c){c=Bc(172562)|0;if(c|0)break;c=Bc(172586)|0}while(0);f[e>>2]=c;e=a+1352|0;c=Bc(172610)|0;do if(!c){c=Bc(172636)|0;if(c|0)break;c=Bc(172665)|0}while(0);f[e>>2]=c;e=a+1356|0;c=Bc(172694)|0;do if(!c){c=Bc(172719)|0;if(c|0)break;c=Bc(172747)|0}while(0);f[e>>2]=c;i=a+1360|0;c=Bc(274896)|0;do if(!c){c=Bc(172775)|0;if(c|0)break;c=Bc(172804)|0}while(0);f[i>>2]=c;e=a+1376|0;c=Bc(172833)|0;do if(!c){c=Bc(172857)|0;if(c|0)break;c=Bc(172884)|0}while(0);f[e>>2]=c;e=a+1380|0;c=Bc(172911)|0;do if(!c){c=Bc(172939)|0;if(c|0)break;c=Bc(172970)|0}while(0);f[e>>2]=c;e=a+1384|0;c=Bc(173001)|0;do if(!c){c=Bc(173030)|0;if(c|0)break;c=Bc(173062)|0}while(0);f[e>>2]=c;e=a+1388|0;c=Bc(173094)|0;do if(!c){c=Bc(173127)|0;if(c|0)break;c=Bc(173163)|0}while(0);f[e>>2]=c;h=a+1364|0;c=Bc(275745)|0;do if(!c){c=Bc(173199)|0;if(c|0)break;c=Bc(173219)|0}while(0);f[h>>2]=c;e=a+1368|0;c=Bc(173239)|0;do if(!c){c=Bc(173257)|0;if(c|0)break;c=Bc(173278)|0}while(0);f[e>>2]=c;c=Bc(273937)|0;do if(!c){c=Bc(173299)|0;if(c|0)break;c=Bc(173331)|0}while(0);z=f[s>>2]|0;f[a+1372>>2]=c;do if(!z)c=0;else{if(!(f[r>>2]|0)){c=0;break}if(!(f[q>>2]|0)){c=0;break}if(!(f[p>>2]|0)){c=0;break}if(!(f[o>>2]|0)){c=0;break}if(!(f[m>>2]|0)){c=0;break}if(!(f[l>>2]|0)){c=0;break}if(!(f[k>>2]|0)){c=0;break}if(!(f[j>>2]|0)){c=0;break}if(!(f[i>>2]|0)){c=0;break}c=(c|0)!=0&(f[h>>2]|0)!=0}while(0);b[a+1292>>0]=c&1;if(Gy(f[C>>2]|0,173363,3402823466385288598117041.0e14)|0)c=1;else c=Gy(f[C>>2]|0,173391,3402823466385288598117041.0e14)|0;b[a+1293>>0]=c&1;c=Bc(173419)|0;f[a+1392>>2]=c;c=Bc(173450)|0;f[a+1396>>2]=c;c=Bc(173483)|0;f[a+1400>>2]=c;c=Bc(173514)|0;f[a+1404>>2]=c;c=Bc(173535)|0;f[a+1408>>2]=c;c=Bc(173561)|0;f[a+1412>>2]=c;c=Bc(173581)|0;f[a+1416>>2]=c;c=Bc(173605)|0;f[a+1420>>2]=c;c=Bc(173631)|0;f[a+1424>>2]=c;c=Bc(173643)|0;f[a+1428>>2]=c;c=Bc(173652)|0;f[a+1432>>2]=c;c=Bc(173665)|0;f[a+1436>>2]=c;c=Bc(173682)|0;f[a+1440>>2]=c;c=Bc(173693)|0;f[a+1444>>2]=c;c=Bc(173705)|0;if(!c)c=Bc(173726)|0;f[a+1448>>2]=c;c=Bc(173750)|0;if(!c)c=Bc(173776)|0;f[a+1452>>2]=c;c=Bc(173805)|0;if(!c)c=Bc(173828)|0;f[a+1456>>2]=c;c=Bc(173854)|0;if(!c)c=Bc(173882)|0;f[a+1460>>2]=c;e=a+1464|0;c=Bc(173913)|0;do if(!c){c=Bc(173933)|0;if(c|0)break;c=Bc(173956)|0}while(0);f[e>>2]=c;c=Bc(276394)|0;if(!c)c=Bc(173979)|0;f[a+1468>>2]=c;c=Bc(276419)|0;if(!c)c=Bc(174007)|0;f[a+1472>>2]=c;c=Bc(276477)|0;if(!c)c=Bc(174033)|0;f[a+1476>>2]=c;c=Bc(276505)|0;if(!c)c=Bc(174064)|0;f[a+1480>>2]=c;c=Bc(174097)|0;f[a+1484>>2]=c;c=Bc(174121)|0;f[a+1488>>2]=c;c=Bc(174148)|0;f[a+1492>>2]=c;c=Bc(174172)|0;f[a+1496>>2]=c;c=Bc(174194)|0;f[a+1500>>2]=c;c=Bc(174219)|0;f[a+1504>>2]=c;c=Bc(174245)|0;f[a+1508>>2]=c;c=Bc(174269)|0;f[a+1512>>2]=c;c=Bc(174299)|0;f[a+1516>>2]=c;c=Bc(174332)|0;f[a+1520>>2]=c;c=Bc(174371)|0;f[a+1524>>2]=c;c=Bc(174398)|0;f[a+1528>>2]=c;c=Bc(174428)|0;f[a+1532>>2]=c;c=Bc(174459)|0;f[a+1536>>2]=c;c=Bc(174484)|0;f[a+1540>>2]=c;c=Bc(174510)|0;f[a+1544>>2]=c;c=Bc(275221)|0;if(!c)c=Bc(174538)|0;f[a+1552>>2]=c;c=Bc(275260)|0;if(!c)c=Bc(174559)|0;f[a+1560>>2]=c;c=Bc(275239)|0;if(!c)c=Bc(174580)|0;f[a+1548>>2]=c;c=Bc(275205)|0;if(!c)c=Bc(174604)|0;f[a+1556>>2]=c;c=(Gy(f[C>>2]|0,174623,4.300000190734863)|0)&1;b[a+1564>>0]=c;c=Bc(174652)|0;if(!c)c=Bc(174671)|0;f[a+1568>>2]=c;c=Bc(174693)|0;if(!c)c=Bc(174719)|0;f[a+1572>>2]=c;c=Bc(174748)|0;if(!c)c=Bc(174770)|0;f[a+1576>>2]=c;c=Bc(174795)|0;if(!c)c=Bc(174822)|0;f[a+1580>>2]=c;c=Bc(174748)|0;if(!c)c=Bc(174770)|0;f[a+1584>>2]=c;c=Bc(174748)|0;if(!c)c=Bc(174770)|0;f[a+1588>>2]=c;c=Bc(174852)|0;if(!c)c=Bc(174874)|0;f[a+1592>>2]=c;c=Bc(174899)|0;if(!c)c=Bc(174925)|0;f[a+1596>>2]=c;c=Bc(174954)|0;if(!c)c=Bc(174981)|0;f[a+1600>>2]=c;c=Bc(175011)|0;if(!c)c=Bc(175038)|0;f[a+1604>>2]=c;c=Bc(175068)|0;if(!c)c=Bc(175086)|0}else{b[a+1180>>0]=0;f[a+1188>>2]=0;f[a+1184>>2]=0;c=a+692|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;f[c+16>>2]=0;b[a+1192>>0]=z;f[a+1200>>2]=0;b[a+1193>>0]=x;b[a+1194>>0]=x;b[a+1195>>0]=0;b[a+1196>>0]=0;c=a+1204|0;f[a+1260>>2]=0;f[a+1264>>2]=0;b[a+1276>>0]=0;e=a+1277|0;h=c;i=h+52|0;do{f[h>>2]=0;h=h+4|0}while((h|0)<(i|0));b[c+52>>0]=0;b[e>>0]=z;b[a+1279>>0]=0;f[a+1280>>2]=0;f[a+1284>>2]=0;f[a+1288>>2]=0;b[a+1268>>0]=z;b[a+1269>>0]=0;f[a+1272>>2]=0;c=a+1376|0;h=a+1296|0;i=h+76|0;do{f[h>>2]=0;h=h+4|0}while((h|0)<(i|0));f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;f[a+1372>>2]=0;b[a+1292>>0]=0;b[a+1293>>0]=0;iGb(a+1392|0,0,173)|0;h=a+1568|0;i=h+40|0;do{f[h>>2]=0;h=h+4|0}while((h|0)<(i|0));c=0}f[a+1608>>2]=c;c=Bc(175107)|0;if(!c)c=Bc(175127)|0;f[a+1612>>2]=c;c=Bc(175150)|0;if(!c)c=Bc(175184)|0;f[a+1648>>2]=c;c=Bc(175221)|0;if(!c)c=Bc(175257)|0;f[a+1652>>2]=c;c=Bc(175296)|0;if(!c)c=Bc(175342)|0;f[a+1656>>2]=c;c=Bc(275078)|0;f[a+1620>>2]=c;c=Bc(175391)|0;if(!c)c=Bc(175416)|0;f[a+1624>>2]=c;c=Bc(175444)|0;if(!c)c=Bc(175474)|0;f[a+1632>>2]=c;c=Bc(175507)|0;if(!c)c=Bc(175541)|0;f[a+1628>>2]=c;c=Bc(175578)|0;if(!c)c=Bc(175608)|0;f[a+1616>>2]=c;c=Bc(175641)|0;if(!c)c=Bc(175659)|0;f[a+1636>>2]=c;c=Bc(276548)|0;if(!c)c=Bc(175680)|0;f[t>>2]=c;c=Bc(276573)|0;if(!c)c=Bc(175708)|0;f[v>>2]=c;if(A){c=(Gy(f[C>>2]|0,175734,4.099999904632568)|0)&1;b[a+1660>>0]=c;c=Bc(175756)|0;f[a+1664>>2]=c;c=Bc(175773)|0;f[a+1668>>2]=c;c=Bc(175792)|0;f[a+1672>>2]=c;c=Bc(175812)|0;f[a+1676>>2]=c;c=Bc(175828)|0;f[a+1680>>2]=c;c=Bc(175845)|0;f[a+1684>>2]=c;c=Bc(175863)|0;f[a+1688>>2]=c;c=Bc(175882)|0;f[a+1692>>2]=c;c=Bc(175902)|0;if(!c)c=Bc(175926)|0;f[a+1696>>2]=c;c=Bc(175949)|0;f[a+1700>>2]=c;c=Bc(175963)|0;f[a+1704>>2]=c;c=Bc(175978)|0;f[a+1708>>2]=c;c=Bc(176002)|0;f[a+1712>>2]=c;c=Bc(176021)|0;f[a+1716>>2]=c;c=Bc(176041)|0;f[a+1720>>2]=c;c=Bc(275183)|0;if(!c)c=Bc(200263)|0;f[a+1724>>2]=c;c=Bc(275762)|0;if(!c)c=Bc(200288)|0;f[a+1728>>2]=c;c=Bc(200307)|0;if(!c)c=Bc(200325)|0;f[a+1732>>2]=c;c=Bc(200346)|0;if(!c)c=Bc(200370)|0;f[a+1736>>2]=c;c=ni(7938)|0;g:do if(c){e=b[c>>0]|0;if(!(e<<24>>24)){B=734;break}while(1){if((e+-48&255)<10)break;c=c+1|0;e=b[c>>0]|0;if(!(e<<24>>24)){B=734;break g}}if(!(+Fy(c)>=2.0))B=734}else B=734;while(0);if((B|0)==734)Gy(f[C>>2]|0,200663,3402823466385288598117041.0e14)|0;c=a+1744|0;mi(35661,c|0);f[a+1740>>2]=f[c>>2];c=Bc(176063)|0}else{b[a+1660>>0]=0;h=a+1664|0;i=h+84|0;do{f[h>>2]=0;h=h+4|0}while((h|0)<(i|0));c=0}f[a+1748>>2]=c;if((b[w>>0]|0)>=0){u=E;return}NDb(f[D>>2]|0);u=E;return}function Fy(a){a=a|0;var c=0.0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0.0;r=u;u=u+64|0;j=r+48|0;k=r+32|0;n=r+16|0;o=r;if(!(lpb(a,231689,2)|0)){d=a+2|0;a=b[d>>0]|0;if(!(a<<24>>24)){c=0.0;u=r;return +c}c=0.0;e=a;while(1){if((e+-48&255)>=10)if((e+-97&255)>=6)if((e+-65&255)<6)a=-55;else{q=26;break}else a=-87;else a=-48;c=c*16.0+ +(a+(e<<24>>24)|0);d=d+1|0;e=b[d>>0]|0;if(!(e<<24>>24)){q=26;break}}if((q|0)==26){u=r;return +c}}b[j+1>>0]=0;b[j>>0]=0;l=n+8|0;p[l>>3]=1.0;p[n>>3]=1.0;m=k+8|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;f[k+12>>2]=0;p[o+8>>3]=.1;p[o>>3]=.1;e=b[a>>0]|0;do if(!(e<<24>>24))q=23;else{d=0;g=e;h=e<<24>>24;a:while(1){b:do switch(g<<24>>24){case 43:{p[n+(d<<3)>>3]=1.0;break}case 45:{p[n+(d<<3)>>3]=-1.0;break}default:{if((g+-48&255)<10){e=k+(d<<3)|0;c=+p[e>>3];if(!(b[j+d>>0]|0)){p[e>>3]=c*10.0+ +(h+-48|0);break b}else{g=o+(d<<3)|0;s=+p[g>>3];p[e>>3]=c+s*+(h+-48|0);p[g>>3]=s*.1;break b}}switch(g<<24>>24){case 46:{b[j+d>>0]=1;break b}case 101:if((d|0)==1)break a;else{d=1;break b}default:if((d|0)==1|g<<24>>24!=69){i=d;q=22;break a}else{d=1;break b}}}}while(0);a=a+1|0;e=b[a>>0]|0;if(!((d|0)<2&e<<24>>24!=0)){i=d;q=22;break}else{g=e;h=e<<24>>24}}if((q|0)==22?(i|0)==0:0){q=23;break}c=+p[k>>3]*+p[n>>3]*+L(10.0,+(+p[m>>3]*+p[l>>3]))}while(0);if((q|0)==23)c=+p[k>>3]*+p[n>>3];s=c;u=r;return +s}function Gy(a,c,d){a=a|0;c=c|0;d=+d;var e=0,g=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,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=u;u=u+32|0;A=B+12|0;z=B;e=f[72470]|0;i=f[72469]|0;k=(e-i|0)/12|0;do if(k>>>0<=a>>>0){g=a+1|0;if(g>>>0>k>>>0){Hy(289876,g-k|0);break}if(g>>>0<k>>>0){g=i+(g*12|0)|0;if((g|0)!=(e|0))do{y=e;e=e+-12|0;Iy(e,f[y+-8>>2]|0)}while((e|0)!=(g|0));f[72470]=g}}while(0);t=f[72469]|0;v=t+(a*12|0)|0;e=f[72473]|0;g=f[72472]|0;i=(e-g|0)/12|0;do if(i>>>0<=a>>>0){k=a+1|0;if(k>>>0>i>>>0){Jy(289888,k-i|0);break}if(k>>>0<i>>>0){g=g+(k*12|0)|0;if((g|0)!=(e|0))do{e=e+-12|0;if((b[e+11>>0]|0)<0)NDb(f[e>>2]|0)}while((e|0)!=(g|0));f[72473]=g}}while(0);s=f[72472]|0;y=s+(a*12|0)|0;e=ni(7938)|0;a:do if((e|0)!=0?(l=b[e>>0]|0,l<<24>>24!=0):0){g=l;while(1){if((g+-48&255)<10)break;e=e+1|0;g=b[e>>0]|0;if(!(g<<24>>24)){j=0.0;break a}}j=+Fy(e)}else j=0.0;while(0);if(!(j>=d)){e=f[72475]|0;i=(f[72476]|0)-e>>2;g=e;if(i>>>0<=a>>>0){k=a+1|0;f[A>>2]=0;if(k>>>0<=i>>>0){if(k>>>0<i>>>0)f[72476]=g+(k<<2)}else{Ky(289900,k-i|0,A);e=f[72475]|0;g=e}}if(!(f[g+(a<<2)>>2]|0)){i=(f[72476]|0)-e>>2;if(i>>>0<=a>>>0){g=a+1|0;f[A>>2]=0;if(g>>>0<=i>>>0){if(g>>>0<i>>>0)f[72476]=e+(g<<2)}else{Ky(289900,g-i|0,A);e=f[72475]|0}}f[e+(a<<2)>>2]=1;e=ni(7937)|0;eEb(y,(e|0)==0?295620:e)|0;e=ni(7939)|0;if(!e){A=0;u=B;return A|0}g=dpb(e,32)|0;b:do if(!g)r=e;else{m=z+11|0;n=z+8|0;o=z+4|0;p=t+(a*12|0)+4|0;q=t+(a*12|0)+8|0;i=e;while(1){f[z>>2]=0;f[z+4>>2]=0;f[z+8>>2]=0;l=g-i|0;if(l>>>0>4294967279)break;if(l>>>0<11){b[m>>0]=l;e=z}else{w=l+16&-16;e=LDb(w)|0;f[z>>2]=e;f[n>>2]=w|-2147483648;f[o>>2]=l}if((i|0)!=(g|0)){k=e;while(1){b[k>>0]=b[i>>0]|0;i=i+1|0;if((i|0)==(g|0))break;else k=k+1|0}e=e+l|0}b[e>>0]=0;i=Ly(v,A,z)|0;if(!(f[i>>2]|0)){e=LDb(28)|0;k=e+16|0;f[k>>2]=f[z>>2];f[k+4>>2]=f[z+4>>2];f[k+8>>2]=f[z+8>>2];f[z>>2]=0;f[z+4>>2]=0;f[z+8>>2]=0;k=f[A>>2]|0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=k;f[i>>2]=e;k=f[f[v>>2]>>2]|0;if(k){f[v>>2]=k;e=f[i>>2]|0}Aq(f[p>>2]|0,e);f[q>>2]=(f[q>>2]|0)+1}if((b[m>>0]|0)<0)NDb(f[z>>2]|0);e=g+1|0;g=dpb(e,32)|0;if(!g){r=e;break b}else i=e}TDb(z)}while(0);if(b[r>>0]|0){f[z>>2]=0;f[z+4>>2]=0;f[z+8>>2]=0;g=Zob(r)|0;if(g>>>0>4294967279)TDb(z);if(g>>>0<11){b[z+11>>0]=g;if(!g)e=z;else{e=z;x=64}}else{x=g+16&-16;e=LDb(x)|0;f[z>>2]=e;f[z+8>>2]=x|-2147483648;f[z+4>>2]=g;x=64}if((x|0)==64)gGb(e|0,r|0,g|0)|0;b[e+g>>0]=0;g=Ly(v,A,z)|0;if(!(f[g>>2]|0)){e=LDb(28)|0;i=e+16|0;f[i>>2]=f[z>>2];f[i+4>>2]=f[z+4>>2];f[i+8>>2]=f[z+8>>2];f[z>>2]=0;f[z+4>>2]=0;f[z+8>>2]=0;i=f[A>>2]|0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=i;f[g>>2]=e;i=f[f[v>>2]>>2]|0;if(i){f[v>>2]=i;e=f[g>>2]|0}Aq(f[t+(a*12|0)+4>>2]|0,e);w=t+(a*12|0)+8|0;f[w>>2]=(f[w>>2]|0)+1}if((b[z+11>>0]|0)<0)NDb(f[z>>2]|0)}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>3){w=Nv(Mv(4)|0,176077,60)|0;Ktb(A,w+(f[(f[w>>2]|0)+-12>>2]|0)|0);r=Bvb(A,295164)|0;r=wk[f[(f[r>>2]|0)+28>>2]&1023](r,10)|0;Cvb(A);rub(w,r)|0;Rtb(w)|0}e=f[v>>2]|0;k=t+(a*12|0)+4|0;if((e|0)!=(k|0)){i=e;while(1){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>3){p=Nv(Mv(4)|0,176138,4)|0;q=i+16|0;w=b[q+11>>0]|0;r=w<<24>>24<0;w=Nv(p,r?f[q>>2]|0:q,r?f[i+20>>2]|0:w&255)|0;Ktb(A,w+(f[(f[w>>2]|0)+-12>>2]|0)|0);r=Bvb(A,295164)|0;r=wk[f[(f[r>>2]|0)+28>>2]&1023](r,10)|0;Cvb(A);rub(w,r)|0;Rtb(w)|0}e=f[i+4>>2]|0;do if(!e){g=i+8|0;e=f[g>>2]|0;if((f[e>>2]|0)==(i|0))break;do{w=f[g>>2]|0;g=w+8|0;e=f[g>>2]|0}while((f[e>>2]|0)!=(w|0))}else while(1){g=f[e>>2]|0;if(!g)break;else e=g}while(0);if((e|0)==(k|0))break;else i=e}}};f[A>>2]=0;f[A+4>>2]=0;f[A+8>>2]=0;g=Zob(c)|0;if(g>>>0>4294967279)TDb(A);if(g>>>0<11){b[A+11>>0]=g;if(!g)e=A;else{e=A;x=97}}else{x=g+16&-16;e=LDb(x)|0;f[A>>2]=e;f[A+8>>2]=x|-2147483648;f[A+4>>2]=g;x=97}if((x|0)==97)gGb(e|0,c|0,g|0)|0;b[e+g>>0]=0;e=(My(v,A)|0)==(t+(a*12|0)+4|0);if((b[A+11>>0]|0)<0)NDb(f[A>>2]|0);if(e){i=0;g=0}else x=101}else x=101;if((x|0)==101){Ny()|0;i=b[289923]|0;k=f[72479]|0;c:do if(!((i<<24>>24<0?k:i&255)|0))e=0;else{t=A+11|0;v=A+4|0;w=y+11|0;s=s+(a*12|0)+4|0;x=i<<24>>24<0;o=x?f[72478]|0:289912;g=0;e=0;n=Zob(c)|0;k=x?k:i&255;while(1){if(n){i=o+g|0;m=o+k|0;k=m;g=k-i|0;if((g|0)<(n|0))break c;l=h[c>>0]|0;while(1){g=g-n+1|0;if(!g)break c;i=epb(i,l,g)|0;if(!i)break c;if(!(ipb(i,c,n)|0))break;i=i+1|0;g=k-i|0;if((g|0)<(n|0))break c}g=i-o|0;if((i|0)==(m|0)|(g|0)==-1)break c}i=tEb(289912,58,g)|0;k=tEb(289912,59,g)|0;f[A>>2]=0;f[A+4>>2]=0;f[A+8>>2]=0;do if((i|0)!=-1){if((k|0)==-1){ZDb(z,289912,0,i,289912);if((b[t>>0]|0)<0){b[f[A>>2]>>0]=0;f[v>>2]=0}else{b[A>>0]=0;b[t>>0]=0}dEb(A,0);f[A>>2]=f[z>>2];f[A+4>>2]=f[z+4>>2];f[A+8>>2]=f[z+8>>2];break}if(i>>>0>k>>>0){ZDb(z,289912,k+1|0,i+-1-k|0,289912);if((b[t>>0]|0)<0){b[f[A>>2]>>0]=0;f[v>>2]=0}else{b[A>>0]=0;b[t>>0]=0}dEb(A,0);f[A>>2]=f[z>>2];f[A+4>>2]=f[z+4>>2];f[A+8>>2]=f[z+8>>2]}}while(0);m=b[t>>0]|0;k=m<<24>>24<0;i=f[v>>2]|0;l=m&255;n=k?i:l;d:do if(n){l=k?f[A>>2]|0:A;k=l+n|0;i=l;while(1){if((b[i>>0]|0)!=32){x=127;break}i=i+1|0;if((i|0)==(k|0)){x=128;break}}e:do if((x|0)==127){x=0;i=i-l|0;switch(i|0){case -1:{x=128;break e}case 0:break e;default:{}}oEb(A,0,i)|0}while(0);if((x|0)==128)eEb(A,295620)|0;k=b[t>>0]|0;i=k<<24>>24<0;n=f[v>>2]|0;l=k&255;m=i?f[A>>2]|0:A;i=i?n:l;if(i){i=m+i|0;while(1){i=i+-1|0;if((b[i>>0]|0)!=32)break;if((i|0)==(m|0)){i=n;break d}}i=i-m|0;if((i|0)!=-1){oEb(A,i+1|0,-1)|0;k=b[t>>0]|0;l=k&255;i=f[v>>2]|0}else i=n}else i=n}else k=m;while(0);r=k<<24>>24<0;o=r?i:l;if(!o){i=g;e=1;g=0}else{i=b[w>>0]|0;if(i<<24>>24<0){l=f[y>>2]|0;k=f[s>>2]|0}else{l=y;k=i&255}m=r?f[A>>2]|0:A;p=l+k|0;i=p;q=l;f:do if((k|0)<(o|0))k=p;else{n=h[m>>0]|0;while(1){k=k-o+1|0;if(!k){k=p;break f}l=epb(l,n,k)|0;if(!l){k=p;break f}if(!(ipb(l,m,o)|0))break;l=l+1|0;k=i-l|0;if((k|0)<(o|0)){k=p;break f}}k=l;i=l}while(0);x=(k|0)==(p|0)|(i-q|0)==-1;i=g+(x&1)|0;e=x?e:1;g=x}if(r)NDb(f[A>>2]|0);if((i|0)==-1|g^1)break c;k=b[289923]|0;n=k<<24>>24<0;o=n?f[72478]|0:289912;k=n?f[72479]|0:k&255;n=Zob(c)|0;if(k>>>0<i>>>0)break;else g=i}}while(0);i=1;g=(e&1)!=0}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);e=(f[72420]|0)>3;do if(i)if(g){if(!e)break;z=Nv(Mv(4)|0,176143,18)|0;c=Nv(Nv(z,c,Zob(c)|0)|0,176178,92)|0;Ktb(A,c+(f[(f[c>>2]|0)+-12>>2]|0)|0);z=Bvb(A,295164)|0;z=wk[f[(f[z>>2]|0)+28>>2]&1023](z,10)|0;Cvb(A);rub(c,z)|0;Rtb(c)|0;break}else{if(!e)break;z=Nv(Mv(4)|0,176143,18)|0;c=Nv(Nv(z,c,Zob(c)|0)|0,176162,15)|0;Ktb(A,c+(f[(f[c>>2]|0)+-12>>2]|0)|0);z=Bvb(A,295164)|0;z=wk[f[(f[z>>2]|0)+28>>2]&1023](z,10)|0;Cvb(A);rub(c,z)|0;Rtb(c)|0;break}else if(e){z=Nv(Mv(4)|0,176143,18)|0;c=Nv(Nv(z,c,Zob(c)|0)|0,176271,19)|0;Ktb(A,c+(f[(f[c>>2]|0)+-12>>2]|0)|0);z=Bvb(A,295164)|0;z=wk[f[(f[z>>2]|0)+28>>2]&1023](z,10)|0;Cvb(A);rub(c,z)|0;Rtb(c)|0}while(0);A=i&(g^1);u=B;return A|0}function Hy(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=a+8|0;e=f[l>>2]|0;m=a+4|0;c=f[m>>2]|0;if(((e-c|0)/12|0)>>>0>=b>>>0){do{f[c+4>>2]=0;f[c+8>>2]=0;f[c>>2]=c+4;c=(f[m>>2]|0)+12|0;f[m>>2]=c;b=b+-1|0}while((b|0)!=0);return}d=f[a>>2]|0;g=(c-d|0)/12|0;h=g+b|0;if(h>>>0>357913941)KEb(a);k=(e-d|0)/12|0;c=k<<1;c=k>>>0<178956970?(c>>>0<h>>>0?h:c):357913941;do if(c)if(c>>>0>357913941){m=mb(8)|0;RDb(m,238482);f[m>>2]=144484;qb(m|0,84192,1464)}else{e=LDb(c*12|0)|0;break}else e=0;while(0);g=e+(g*12|0)|0;d=e+(c*12|0)|0;c=g;while(1){f[c+4>>2]=0;f[c+8>>2]=0;f[c>>2]=c+4;b=b+-1|0;if(!b)break;else c=c+12|0}k=e+(h*12|0)|0;j=f[a>>2]|0;c=f[m>>2]|0;if((c|0)==(j|0)){b=g;e=j;c=j}else{b=g;do{i=b;b=b+-12|0;e=c;c=c+-12|0;f[b>>2]=f[c>>2];g=f[e+-8>>2]|0;f[i+-8>>2]=g;h=e+-4|0;n=f[h>>2]|0;f[i+-4>>2]=n;i=i+-8|0;if(!n)f[b>>2]=i;else{f[g+8>>2]=i;n=e+-8|0;f[c>>2]=n;f[n>>2]=0;f[h>>2]=0}}while((c|0)!=(j|0));e=f[a>>2]|0;c=f[m>>2]|0}f[a>>2]=b;f[m>>2]=k;f[l>>2]=d;b=e;if((c|0)!=(b|0))do{n=c;c=c+-12|0;Iy(c,f[n+-8>>2]|0)}while((c|0)!=(b|0));if(!e)return;NDb(e);return}function Iy(a,c){a=a|0;c=c|0;if(!c)return;Iy(a,f[c>>2]|0);Iy(a,f[c+4>>2]|0);a=c+16|0;if((b[a+11>>0]|0)<0)NDb(f[a>>2]|0);NDb(c);return}function Jy(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=a+8|0;e=f[m>>2]|0;n=a+4|0;d=f[n>>2]|0;k=d;if(((e-d|0)/12|0)>>>0>=c>>>0){do{f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;d=(f[n>>2]|0)+12|0;f[n>>2]=d;c=c+-1|0}while((c|0)!=0);return}l=f[a>>2]|0;d=(d-l|0)/12|0;i=d+c|0;g=l;if(i>>>0>357913941)KEb(a);j=(e-l|0)/12|0;e=j<<1;e=j>>>0<178956970?(e>>>0<i>>>0?i:e):357913941;do if(e)if(e>>>0>357913941){n=mb(8)|0;RDb(n,238482);f[n>>2]=144484;qb(n|0,84192,1464)}else{h=LDb(e*12|0)|0;break}else h=0;while(0);d=h+(d*12|0)|0;iGb(d|0,0,c*12|0)|0;j=h+(e*12|0)|0;h=h+(i*12|0)|0;if((k|0)==(g|0)){e=d;d=k;c=l}else{c=k;do{d=d+-12|0;c=c+-12|0;f[d>>2]=f[c>>2];f[d+4>>2]=f[c+4>>2];f[d+8>>2]=f[c+8>>2];f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0}while((c|0)!=(g|0));c=f[a>>2]|0;e=d;g=c;d=f[n>>2]|0}f[a>>2]=e;f[n>>2]=h;f[m>>2]=j;if((d|0)!=(g|0))do{d=d+-12|0;if((b[d+11>>0]|0)<0)NDb(f[d>>2]|0)}while((d|0)!=(g|0));if(!c)return;NDb(c);return}function Ky(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=a+8|0;e=f[m>>2]|0;n=a+4|0;d=f[n>>2]|0;g=d;if(e-d>>2>>>0>=b>>>0){d=b;e=g;while(1){f[e>>2]=f[c>>2];d=d+-1|0;if(!d)break;else e=e+4|0}f[n>>2]=g+(b<<2);return}l=f[a>>2]|0;k=d-l|0;g=k>>2;d=g+b|0;if(d>>>0>1073741823)KEb(a);i=e-l|0;j=i>>1;d=i>>2>>>0<536870911?(j>>>0<d>>>0?d:j):1073741823;do if(d)if(d>>>0>1073741823){n=mb(8)|0;RDb(n,238482);f[n>>2]=144484;qb(n|0,84192,1464)}else{j=LDb(d<<2)|0;i=j;break}else{i=0;j=0}while(0);h=i+(g<<2)|0;e=i+(d<<2)|0;d=b;g=h;while(1){f[g>>2]=f[c>>2];d=d+-1|0;if(!d)break;else g=g+4|0}if((k|0)>0)gGb(j|0,l|0,k|0)|0;f[a>>2]=i;f[n>>2]=h+(b<<2);f[m>>2]=e;if(!l)return;NDb(l);return}function Ly(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;e=a+4|0;h=f[e>>2]|0;if(!h){f[c>>2]=e;o=e;return o|0}m=b[d+11>>0]|0;l=m<<24>>24<0;m=l?f[d+4>>2]|0:m&255;l=l?f[d>>2]|0:d;g=a+4|0;e=h;while(1){d=e+16|0;h=b[d+11>>0]|0;a=h<<24>>24<0;h=a?f[e+20>>2]|0:h&255;k=h>>>0<m>>>0;j=k?h:m;i=(j|0)==0;if(!i?(n=a?f[d>>2]|0:d,o=ipb(l,n,j)|0,(o|0)!=0):0)if((o|0)<0)a=7;else{d=n;a=11}else if(m>>>0>=h>>>0)if(i)a=12;else{d=a?f[d>>2]|0:d;a=11}else a=7;if((a|0)==7){a=0;d=f[e>>2]|0;if(!d){a=8;break}else{g=e;e=d}}else if((a|0)==11){d=ipb(d,l,j)|0;if(d)if((d|0)<0)a=14;else{a=16;break}else a=12}if((a|0)==12)if(k)a=14;else{a=16;break}if((a|0)==14){d=e+4|0;a=f[d>>2]|0;if(!a){a=15;break}else{g=d;e=a}}}if((a|0)==8){f[c>>2]=e;o=e;return o|0}else if((a|0)==15){f[c>>2]=e;o=d;return o|0}else if((a|0)==16){f[c>>2]=e;o=g;return o|0}return 0}function My(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=a+4|0;d=f[m>>2]|0;do if(d|0){l=b[c+11>>0]|0;k=l<<24>>24<0;l=k?f[c+4>>2]|0:l&255;k=k?f[c>>2]|0:c;a=m;do{e=d+16|0;h=b[e+11>>0]|0;g=h<<24>>24<0;h=g?f[d+20>>2]|0:h&255;i=l>>>0<h>>>0;c=i?l:h;if((c|0)!=0?(j=ipb(g?f[e>>2]|0:e,k,c)|0,(j|0)!=0):0)c=j;else c=h>>>0<l>>>0?-1:i&1;i=(c|0)<0;a=i?a:d;d=f[(i?d+4|0:d)>>2]|0}while((d|0)!=0);if((a|0)!=(m|0)){d=a+16|0;g=b[d+11>>0]|0;e=g<<24>>24<0;g=e?f[a+20>>2]|0:g&255;c=g>>>0<l>>>0?g:l;if(c|0?(n=ipb(k,e?f[d>>2]|0:d,c)|0,n|0):0){if((n|0)<0)break;return a|0}if(l>>>0>=g>>>0){n=a;return n|0}}}while(0);n=m;return n|0}function Ny(){var a=0,c=0;if(b[287968]|0)return 289912;if(!(PFb(287968)|0))return 289912;f[72478]=0;f[72479]=0;f[72480]=0;c=Th(176291)|0;if(c|0){a=0;while(1){if(!(b[c+a>>0]|0))break;a=a+1|0;if(a>>>0>=4096){a=4096;break}}aEb(289912,c,a)|0}return 289912}function Oy(a){a=a|0;V4(a);NDb(a);return}function Py(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;k=u;u=u+16|0;h=k;i=a+60|0;j=a+64|0;c=f[j>>2]|0;e=f[i>>2]|0;g=c-e>>2;do if(g>>>0<=b>>>0){d=b+1|0;if(d>>>0>g>>>0){ax(i,d-g|0);break}if(d>>>0<g>>>0){e=e+(d<<2)|0;if((e|0)!=(c|0))do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(l=d+8|0,g=f[l>>2]|0,f[l>>2]=g-1,(g|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(e|0));f[j>>2]=e}}while(0);l=f[i>>2]|0;c=l;if(!(f[l+(b<<2)>>2]|0)){Sy(h,Ry(Qy(b)|0)|0,a);c=f[j>>2]|0;d=f[i>>2]|0;e=c-d>>2;do if(e>>>0<=b>>>0){g=b+1|0;if(g>>>0>e>>>0){ax(i,g-e|0);break}if(g>>>0<e>>>0){e=d+(g<<2)|0;if((e|0)!=(c|0))do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(a=d+8|0,l=f[a>>2]|0,f[a>>2]=l-1,(l|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(e|0));f[j>>2]=e}}while(0);d=(f[i>>2]|0)+(b<<2)|0;c=f[d>>2]|0;e=f[h>>2]|0;if((c|0)!=(e|0)){f[d>>2]=e;if(e|0){l=e+8|0;f[l>>2]=(f[l>>2]|0)+1}if(c|0?(a=c+8|0,l=f[a>>2]|0,f[a>>2]=l-1,(l|0)==1):0)X4(c,1,1);c=f[h>>2]|0}if(c|0?(h=c+8|0,l=f[h>>2]|0,f[h>>2]=l-1,(l|0)==1):0)X4(c,1,1);d=f[i>>2]|0}else d=c;c=f[j>>2]|0;e=c-d>>2;if(e>>>0>b>>>0){l=f[i>>2]|0;l=l+(b<<2)|0;l=f[l>>2]|0;u=k;return l|0}g=b+1|0;if(g>>>0>e>>>0){ax(i,g-e|0);l=f[i>>2]|0;l=l+(b<<2)|0;l=f[l>>2]|0;u=k;return l|0}if(g>>>0>=e>>>0){l=f[i>>2]|0;l=l+(b<<2)|0;l=f[l>>2]|0;u=k;return l|0}e=d+(g<<2)|0;if((e|0)!=(c|0))do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(h=d+8|0,l=f[h>>2]|0,f[h>>2]=l-1,(l|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(e|0));f[j>>2]=e;l=f[i>>2]|0;l=l+(b<<2)|0;l=f[l>>2]|0;u=k;return l|0}function Qy(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;k=u;u=u+16|0;j=k;c=f[72482]|0;do if(c){e=289928;while(1){d=f[c+16>>2]|0;if(d>>>0>a>>>0){d=f[c>>2]|0;if(!d){d=5;break}}else{if(d>>>0>=a>>>0){d=9;break}e=c+4|0;d=f[e>>2]|0;if(!d){d=8;break}else c=e}e=c;c=d}if((d|0)==5){g=c;e=c;break}else if((d|0)==8){g=c;break}else if((d|0)==9){g=c;break}}else{g=289928;e=289928}while(0);c=f[e>>2]|0;if(!c){c=LDb(24)|0;f[c+16>>2]=a;f[c+20>>2]=0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=g;f[e>>2]=c;d=f[f[72481]>>2]|0;if(!d)d=c;else{f[72481]=d;d=f[e>>2]|0}Aq(f[72482]|0,d);f[72483]=(f[72483]|0)+1}h=c+20|0;if(f[h>>2]|0){j=f[h>>2]|0;u=k;return j|0}i=LDb(48)|0;c=LDb(16)|0;f[j>>2]=c;f[j+8>>2]=-2147483632;f[j+4>>2]=11;d=c;e=176633;g=d+11|0;do{b[d>>0]=b[e>>0]|0;d=d+1|0;e=e+1|0}while((d|0)<(g|0));b[c+11>>0]=0;az(i,j,a);if((b[j+11>>0]|0)<0)NDb(f[j>>2]|0);f[i>>2]=89716;f[i+28>>2]=0;f[i+32>>2]=0;c=i+40|0;f[c>>2]=0;f[i+44>>2]=0;f[i+36>>2]=c;c=f[h>>2]|0;if((c|0)==(i|0)){j=f[h>>2]|0;u=k;return j|0}f[h>>2]=i;j=i+8|0;f[j>>2]=(f[j>>2]|0)+1;if(!c){j=f[h>>2]|0;u=k;return j|0}a=c+8|0;j=f[a>>2]|0;f[a>>2]=j-1;if((j|0)!=1){j=f[h>>2]|0;u=k;return j|0}X4(c,1,1);j=f[h>>2]|0;u=k;return j|0}function Ry(a){a=a|0;var b=0,c=0,d=0,e=0,g=0;g=a+36|0;c=a+40|0;b=f[c>>2]|0;do if(b){d=a+40|0;while(1){c=f[b+16>>2]|0;if(c>>>0>58448>>>0){c=f[b>>2]|0;if(!c){c=5;break}else{d=b;b=c}}else{if(c>>>0>=58448>>>0){c=9;break}d=b+4|0;c=f[d>>2]|0;if(!c){c=8;break}else b=c}}if((c|0)==5){e=b;d=b;break}else if((c|0)==8){e=b;break}else if((c|0)==9){e=b;break}}else{e=c;d=c}while(0);b=f[d>>2]|0;if(!b){b=LDb(24)|0;f[b+16>>2]=58448;f[b+20>>2]=0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=e;f[d>>2]=b;c=f[f[g>>2]>>2]|0;if(!c)c=b;else{f[g>>2]=c;c=f[d>>2]|0}Aq(f[a+40>>2]|0,c);g=a+44|0;f[g>>2]=(f[g>>2]|0)+1}c=b+20|0;if(f[c>>2]|0){a=f[c>>2]|0;return a|0}d=LDb(112)|0;$y(d,f[a+24>>2]|0);b=f[c>>2]|0;if((b|0)==(d|0)){a=f[c>>2]|0;return a|0}f[c>>2]=d;a=d+8|0;f[a>>2]=(f[a>>2]|0)+1;if(!b){a=f[c>>2]|0;return a|0}g=b+8|0;a=f[g>>2]|0;f[g>>2]=a-1;if((a|0)!=1){a=f[c>>2]|0;return a|0}X4(b,1,1);a=f[c>>2]|0;return a|0}function Sy(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0.0,o=0.0;i=u;u=u+16|0;j=i;d=b+88|0;e=eDa()|0;g=fDa(e)|0;h=H;l=b+80|0;f[l>>2]=(f[l>>2]|0)+1;l=Ty(c)|0;k=f[c+40>>2]|0;m=f[c+36>>2]|0;f[j>>2]=f[c+32>>2];f[j+4>>2]=m;f[j+8>>2]=l>>>0>k>>>0?l:k;Vy(a,Uy(b,j)|0,c);a=fDa(e)|0;b=H;if(b>>>0>h>>>0|(b|0)==(h|0)&a>>>0>g>>>0){m=ZFb(a|0,b|0,g|0,h|0)|0;o=+p[e+8>>3]*(+(m>>>0)+4294967296.0*+(H>>>0));n=+p[d>>3];n=o+n;p[d>>3]=n;u=i;return}else{m=ZFb(g|0,h|0,a|0,b|0)|0;n=-(+p[e+8>>3]*(+(m>>>0)+4294967296.0*+(H>>>0)));o=+p[d>>3];o=n+o;p[d>>3]=o;u=i;return}}function Ty(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0;i=u;u=u+16|0;g=i;d=f[a+48>>2]|0;h=a+52|0;if((d|0)==(f[h>>2]|0)){h=0;u=i;return h|0}c=0;do{e=f[d>>2]|0;if(!e){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>2){j=Nv(qub(Nv(Mv(3)|0,176527,14)|0,a)|0,233520,1)|0;e=sk[f[(f[a>>2]|0)+28>>2]&2047](a)|0;e=Nv(Nv(j,e,Zob(e)|0)|0,176542,68)|0;Ktb(g,e+(f[(f[e>>2]|0)+-12>>2]|0)|0);j=Bvb(g,295164)|0;j=wk[f[(f[j>>2]|0)+28>>2]&1023](j,10)|0;Cvb(g);rub(e,j)|0;Rtb(e)|0}}else{c=(sk[f[(f[e>>2]|0)+168>>2]&2047](e)|0)+c|0;if(c&3)c=c+4&-4}d=d+4|0}while((d|0)!=(f[h>>2]|0));u=i;return c|0}function Uy(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;g=u;u=u+32|0;e=g+8|0;h=g;f[h>>2]=b;Zy(e,a+44|0,b,295604,h,g+16|0);e=(f[e>>2]|0)+28|0;if((((f[e>>2]|0)==0?(c=LDb(80)|0,_y(c,a,b),d=f[e>>2]|0,(d|0)!=(c|0)):0)?(f[e>>2]=c,h=c+8|0,f[h>>2]=(f[h>>2]|0)+1,d|0):0)?(c=d+8|0,h=f[c>>2]|0,f[c>>2]=h-1,(h|0)==1):0)X4(d,1,1);u=g;return f[e>>2]|0}function Vy(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=u;u=u+16|0;l=p;o=c+12|0;sk[f[(f[o>>2]|0)+8>>2]&2047](o)|0;if(f[c+68>>2]|0){cx(c);Wy(a,c,d);sk[f[(f[o>>2]|0)+12>>2]&2047](o)|0;u=p;return}sk[f[(f[o>>2]|0)+12>>2]&2047](o)|0;if(f[c+56>>2]|0){Wy(a,c,d);u=p;return}k=c+24|0;e=f[k>>2]|0;g=f[e+56>>2]|0;h=f[e+40>>2]|0;if((((h|0?(n=c+40|0,((f[e+36>>2]|0)+(f[n>>2]|0)|0)>>>0>h>>>0):0)?(m=c+44|0,(f[m>>2]|0)>>>0>1):0)?(i=c+72|0,j=f[i>>2]|0,j|0):0)?(f[j+68>>2]|0)>>>0<g>>>0:0){sk[f[(f[o>>2]|0)+8>>2]&2047](o)|0;j=f[i>>2]|0;f[a>>2]=j;j=j+8|0;f[j>>2]=(f[j>>2]|0)+1;j=f[(f[a>>2]|0)+52>>2]|0;k=(j|0)==0;if(k){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>3){m=Nv(Mv(4)|0,176423,50)|0;m=qub(m,f[a>>2]|0)|0;Ktb(l,m+(f[(f[m>>2]|0)+-12>>2]|0)|0);i=Bvb(l,295164)|0;i=wk[f[(f[i>>2]|0)+28>>2]&1023](i,10)|0;Cvb(l);rub(m,i)|0;Rtb(m)|0}}else{i=j+8|0;f[i>>2]=(f[i>>2]|0)+1;$w(j,f[c+28>>2]|0,0);if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>3){i=Nv(qub(Nv(Mv(4)|0,176337,18)|0,c)|0,176356,35)|0;i=Nv(qub(i,f[a>>2]|0)|0,176392,23)|0;m=Nv(jub(i,f[m>>2]|0)|0,176416,6)|0;m=jub(m,f[n>>2]|0)|0;Ktb(l,m+(f[(f[m>>2]|0)+-12>>2]|0)|0);i=Bvb(l,295164)|0;i=wk[f[(f[i>>2]|0)+28>>2]&1023](i,10)|0;Cvb(l);rub(m,i)|0;Rtb(m)|0}}i=f[a>>2]|0;Xy(c,i);f[i+52>>2]=d;if(!d){h=i+20|0;f[h>>2]=0;e=i+24|0;f[e>>2]=0;g=i+28|0;f[g>>2]=0}else{h=i+20|0;f[h>>2]=f[d+32>>2];e=i+24|0;f[e>>2]=f[d+36>>2];g=i+28|0;f[g>>2]=f[d+40>>2];b[i+36>>0]=1}f[i+44>>2]=f[i+40>>2];f[h>>2]=f[c+32>>2];f[e>>2]=f[c+36>>2];f[g>>2]=f[n>>2];if(!k?(a=j+8|0,c=f[a>>2]|0,f[a>>2]=c-1,(c|0)==1):0)X4(j,1,1);sk[f[(f[o>>2]|0)+12>>2]&2047](o)|0;u=p;return}i=LDb(76)|0;Yy(i,f[c+28>>2]|0,d,0);f[i+20>>2]=f[c+32>>2];f[i+24>>2]=f[c+36>>2];o=f[c+40>>2]|0;f[i+28>>2]=o;f[i+56>>2]=c;e=c+44|0;f[e>>2]=(f[e>>2]|0)+1;e=f[k>>2]|0;g=e+36|0;f[g>>2]=(f[g>>2]|0)+o;g=e+28|0;f[g>>2]=(f[g>>2]|0)+1;g=i+60|0;if((f[g>>2]|0)==0?(f[i+64>>2]|0)==0:0){f[i+68>>2]=f[e+56>>2];h=c+76|0;e=f[h>>2]|0;if(e|0)f[e+64>>2]=i;f[g>>2]=e;e=c+72|0;if(!(f[e>>2]|0))f[e>>2]=i;f[h>>2]=i}else Xy(c,i);f[a>>2]=i;c=i+8|0;f[c>>2]=(f[c>>2]|0)+1;u=p;return}function Wy(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;g=c+52|0;e=f[g>>2]|0;h=f[e+8>>2]|0;f[a>>2]=h;if(h){e=h+8|0;f[e>>2]=(f[e>>2]|0)+1;e=f[g>>2]|0}g=e+4|0;h=f[e>>2]|0;f[h+4>>2]=f[g>>2];f[f[g>>2]>>2]=h;g=c+56|0;f[g>>2]=(f[g>>2]|0)+-1;g=f[e+8>>2]|0;if(g|0?(i=g+8|0,h=f[i>>2]|0,f[i>>2]=h-1,(h|0)==1):0)X4(g,1,1);NDb(e);a=f[a>>2]|0;f[a+52>>2]=d;if(!d){h=a+20|0;f[h>>2]=0;e=a+24|0;f[e>>2]=0;g=a+28|0;f[g>>2]=0}else{h=a+20|0;f[h>>2]=f[d+32>>2];e=a+24|0;f[e>>2]=f[d+36>>2];g=a+28|0;f[g>>2]=f[d+40>>2];b[a+36>>0]=1}f[a+44>>2]=f[a+40>>2];f[h>>2]=f[c+32>>2];f[e>>2]=f[c+36>>2];f[g>>2]=f[c+40>>2];e=f[c+24>>2]|0;g=e+32|0;f[g>>2]=(f[g>>2]|0)+-1;g=e+28|0;f[g>>2]=(f[g>>2]|0)+1;g=a+60|0;if((f[g>>2]|0)==0?(f[a+64>>2]|0)==0:0){f[a+68>>2]=f[e+56>>2];h=c+76|0;e=f[h>>2]|0;if(e|0)f[e+64>>2]=a;f[g>>2]=e;e=c+72|0;if(!(f[e>>2]|0))f[e>>2]=a;f[h>>2]=a;return}Xy(c,a);return}function Xy(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=u;u=u+16|0;d=m;f[c+68>>2]=f[(f[a+24>>2]|0)+56>>2];k=a+76|0;l=f[k>>2]|0;i=l;if((l|0)==(c|0)){u=m;return}if(!l){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>2){l=Nv(Mv(3)|0,202063,53)|0;Ktb(d,l+(f[(f[l>>2]|0)+-12>>2]|0)|0);j=Bvb(d,295164)|0;j=wk[f[(f[j>>2]|0)+28>>2]&1023](j,10)|0;Cvb(d);rub(l,j)|0;Rtb(l)|0}f[a+72>>2]=c;f[k>>2]=c;u=m;return}j=c+64|0;e=f[j>>2]|0;if(e|0){g=c+60|0;h=f[g>>2]|0;if(!h){f[a+72>>2]=e;d=e}else{f[h+64>>2]=e;d=f[j>>2]|0}f[d+60>>2]=h;f[l+64>>2]=c;f[g>>2]=i;f[j>>2]=0;f[k>>2]=c;u=m;return}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=2){u=m;return}l=Nv(Mv(3)|0,202117,60)|0;Ktb(d,l+(f[(f[l>>2]|0)+-12>>2]|0)|0);k=Bvb(d,295164)|0;k=wk[f[(f[k>>2]|0)+28>>2]&1023](k,10)|0;Cvb(d);rub(l,k)|0;Rtb(l)|0;u=m;return}function Yy(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;BCa(a);f[a>>2]=88568;f[a+12>>2]=c;o=a+16|0;f[o>>2]=e;j=a+20|0;k=a+24|0;l=a+28|0;m=a+36|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;b[m>>0]=1;h=a+44|0;i=a+52|0;n=a+72|0;a=a+40|0;g=a+36|0;do{f[a>>2]=0;a=a+4|0}while((a|0)<(g|0));f[i>>2]=d;if(!d){f[j>>2]=0;f[k>>2]=0;f[l>>2]=0}else{f[j>>2]=f[d+32>>2];f[k>>2]=f[d+36>>2];f[l>>2]=f[d+40>>2];b[m>>0]=1}f[h>>2]=0;a=By(c,1)|0;f[n>>2]=a;if(e|0)return;Vk[f[a+720>>2]&1023](1,o);return}function Zy(a,c,d,e,g,h){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0;e=c+4|0;h=f[e>>2]|0;do if(h){j=f[d>>2]|0;k=f[d+4>>2]|0;i=f[d+8>>2]|0;d=c+4|0;e=h;a:while(1){h=f[e+16>>2]|0;do if(j>>>0>=h>>>0){if(j>>>0<=h>>>0){h=f[e+20>>2]|0;if(k>>>0<h>>>0){l=8;break}if(k>>>0<=h>>>0){h=f[e+24>>2]|0;if(i>>>0<h>>>0){l=8;break}if(h>>>0>=i>>>0){l=13;break a}}}d=e+4|0;h=f[d>>2]|0;if(!h){l=12;break a}else e=h}else l=8;while(0);if((l|0)==8){l=0;h=f[e>>2]|0;if(!h){l=9;break}else{d=e;e=h}}}if((l|0)==9){i=e;d=e;break}else if((l|0)==12){i=e;break}else if((l|0)==13){i=e;break}}else{i=e;d=e}while(0);e=f[d>>2]|0;if(e|0){c=e;g=0;f[a>>2]=c;c=a+4|0;b[c>>0]=g;return}h=LDb(32)|0;e=f[g>>2]|0;f[h+16>>2]=f[e>>2];f[h+20>>2]=f[e+4>>2];f[h+24>>2]=f[e+8>>2];f[h+28>>2]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=i;f[d>>2]=h;e=f[f[c>>2]>>2]|0;if(!e)e=h;else{f[c>>2]=e;e=f[d>>2]|0}Aq(f[c+4>>2]|0,e);c=c+8|0;f[c>>2]=(f[c>>2]|0)+1;c=h;g=1;f[a>>2]=c;c=a+4|0;b[c>>0]=g;return}function _y(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0;g=u;u=u+16|0;e=g;BCa(a);f[a>>2]=88588;yGa(a+12|0,0);f[a+24>>2]=c;f[a+28>>2]=f[c+24>>2];f[a+32>>2]=f[d>>2];f[a+36>>2]=f[d+4>>2];c=a+40|0;f[c>>2]=f[d+8>>2];f[a+44>>2]=0;d=a+48|0;f[d>>2]=d;f[a+52>>2]=d;f[a+56>>2]=0;d=a+60|0;f[d>>2]=d;f[a+64>>2]=d;f[a+68>>2]=0;f[a+72>>2]=0;f[a+76>>2]=0;if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=3){u=g;return}d=Nv(Mv(4)|0,176474,52)|0;d=jub(d,f[c>>2]|0)|0;Ktb(e,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);a=Bvb(e,295164)|0;a=wk[f[(f[a>>2]|0)+28>>2]&1023](a,10)|0;Cvb(e);rub(d,a)|0;Rtb(d)|0;u=g;return}function $y(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;h=u;u=u+16|0;d=h;e=LDb(32)|0;f[d>>2]=e;f[d+8>>2]=-2147483616;f[d+4>>2]=21;g=e;i=176611;j=g+21|0;do{b[g>>0]=b[i>>0]|0;g=g+1|0;i=i+1|0}while((g|0)<(j|0));b[e+21>>0]=0;az(a,d,c);if((b[d+11>>0]|0)<0)NDb(f[d>>2]|0);f[a>>2]=88608;j=a+28|0;f[a+48>>2]=0;f[a+52>>2]=0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[a+44>>2]=a+48;f[a+56>>2]=0;f[a+60>>2]=0;f[a+64>>2]=0;p[a+72>>3]=0.0;f[a+80>>2]=0;p[a+88>>3]=0.0;f[a+96>>2]=0;p[a+104>>3]=0.0;u=h;return}function az(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0;h=u;u=u+16|0;e=h;BCa(a);f[a>>2]=88660;g=a+12|0;VDb(g,c);f[a+24>>2]=d;if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=3){u=h;return}k=Mv(4)|0;d=g+11|0;j=b[d>>0]|0;i=j<<24>>24<0;c=a+16|0;j=Nv(Nv(k,i?f[g>>2]|0:g,i?f[c>>2]|0:j&255)|0,232033,2)|0;d=b[d>>0]|0;i=d<<24>>24<0;g=qub(Nv(Nv(j,i?f[g>>2]|0:g,i?f[c>>2]|0:d&255)|0,160332,2)|0,a)|0;Ktb(e,g+(f[(f[g>>2]|0)+-12>>2]|0)|0);d=Bvb(e,295164)|0;d=wk[f[(f[d>>2]|0)+28>>2]&1023](d,10)|0;Cvb(e);rub(g,d)|0;Rtb(g)|0;u=h;return}function bz(a){a=a|0;var b=0,c=0,d=0,e=0;f[a>>2]=89716;lz(a+36|0,f[a+40>>2]|0);b=a+32|0;c=f[b>>2]|0;if(c|0?(e=c+8|0,d=f[e>>2]|0,f[e>>2]=d-1,(d|0)==1):0)X4(c,1,1);f[b>>2]=0;hx(a);return}function cz(a){a=a|0;var b=0,c=0,d=0,e=0;f[a>>2]=89716;lz(a+36|0,f[a+40>>2]|0);b=a+32|0;c=f[b>>2]|0;if(c|0?(e=c+8|0,d=f[e>>2]|0,f[e>>2]=d-1,(d|0)==1):0)X4(c,1,1);f[b>>2]=0;hx(a);NDb(a);return}function dz(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0;c=f[a+36>>2]|0;e=a+40|0;if((c|0)==(e|0))return;d=c;while(1){a=f[d+20>>2]|0;if(a|0?(g=bFb(a,63152,58464,0)|0,g|0):0)Vk[f[(f[g>>2]|0)+12>>2]&1023](g,b);a=f[d+4>>2]|0;if(!a){c=d+8|0;a=f[c>>2]|0;if((f[a>>2]|0)!=(d|0))do{d=f[c>>2]|0;c=d+8|0;a=f[c>>2]|0}while((f[a>>2]|0)!=(d|0))}else while(1){c=f[a>>2]|0;if(!c)break;else a=c}if((a|0)==(e|0))break;else d=a}return}function ez(a){a=a|0;var b=0,c=0,d=0,e=0;b=f[a+36>>2]|0;d=a+40|0;if((b|0)==(d|0))return;while(1){a=f[b+20>>2]|0;if(a|0?(e=bFb(a,63152,58464,0)|0,e|0):0)Nk[f[(f[e>>2]|0)+16>>2]&2047](e);a=f[b+4>>2]|0;if(!a){c=b+8|0;a=f[c>>2]|0;if((f[a>>2]|0)!=(b|0)){b=c;do{c=f[b>>2]|0;b=c+8|0;a=f[b>>2]|0}while((f[a>>2]|0)!=(c|0))}}else while(1){b=f[a>>2]|0;if(!b)break;else a=b}if((a|0)==(d|0))break;else b=a}return}function fz(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0;c=f[a+36>>2]|0;e=a+40|0;if((c|0)==(e|0))return;d=c;while(1){a=f[d+20>>2]|0;if(a|0?(g=bFb(a,63152,58464,0)|0,g|0):0)Vk[f[(f[g>>2]|0)+20>>2]&1023](g,b);a=f[d+4>>2]|0;if(!a){c=d+8|0;a=f[c>>2]|0;if((f[a>>2]|0)!=(d|0))do{d=f[c>>2]|0;c=d+8|0;a=f[c>>2]|0}while((f[a>>2]|0)!=(d|0))}else while(1){c=f[a>>2]|0;if(!c)break;else a=c}if((a|0)==(e|0))break;else d=a}return}function gz(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0;c=f[a+36>>2]|0;e=a+40|0;if((c|0)==(e|0))return;d=c;while(1){a=f[d+20>>2]|0;if(a|0?(g=bFb(a,63152,58464,0)|0,g|0):0)Vk[f[(f[g>>2]|0)+24>>2]&1023](g,b);a=f[d+4>>2]|0;if(!a){c=d+8|0;a=f[c>>2]|0;if((f[a>>2]|0)!=(d|0))do{d=f[c>>2]|0;c=d+8|0;a=f[c>>2]|0}while((f[a>>2]|0)!=(d|0))}else while(1){c=f[a>>2]|0;if(!c)break;else a=c}if((a|0)==(e|0))break;else d=a}return}function hz(a,b,c){a=a|0;b=+b;c=c|0;var d=0,e=0,g=0,h=0;d=f[a+36>>2]|0;g=a+40|0;if((d|0)==(g|0))return;e=d;while(1){a=f[e+20>>2]|0;if(a|0?(h=bFb(a,63152,58464,0)|0,h|0):0)Uk[f[(f[h>>2]|0)+28>>2]&7](h,b,c);a=f[e+4>>2]|0;if(!a){d=e+8|0;a=f[d>>2]|0;if((f[a>>2]|0)!=(e|0))do{e=f[d>>2]|0;d=e+8|0;a=f[d>>2]|0}while((f[a>>2]|0)!=(e|0))}else while(1){d=f[a>>2]|0;if(!d)break;else a=d}if((a|0)==(g|0))break;else e=a}return}function iz(a){a=a|0;var b=0,c=0,d=0,e=0;b=f[a+36>>2]|0;d=a+40|0;if((b|0)==(d|0))return;while(1){a=f[b+20>>2]|0;if(a|0?(e=bFb(a,63152,58464,0)|0,e|0):0)Nk[f[(f[e>>2]|0)+32>>2]&2047](e);a=f[b+4>>2]|0;if(!a){c=b+8|0;a=f[c>>2]|0;if((f[a>>2]|0)!=(b|0)){b=c;do{c=f[b>>2]|0;b=c+8|0;a=f[b>>2]|0}while((f[a>>2]|0)!=(c|0))}}else while(1){b=f[a>>2]|0;if(!b)break;else a=b}if((a|0)==(d|0))break;else b=a}return}function jz(a){a=a|0;var b=0,c=0,d=0,e=0;b=f[a+36>>2]|0;d=a+40|0;if((b|0)==(d|0))return;while(1){a=f[b+20>>2]|0;if(a|0?(e=bFb(a,63152,58464,0)|0,e|0):0)Nk[f[(f[e>>2]|0)+36>>2]&2047](e);a=f[b+4>>2]|0;if(!a){c=b+8|0;a=f[c>>2]|0;if((f[a>>2]|0)!=(b|0)){b=c;do{c=f[b>>2]|0;b=c+8|0;a=f[b>>2]|0}while((f[a>>2]|0)!=(c|0))}}else while(1){b=f[a>>2]|0;if(!b)break;else a=b}if((a|0)==(d|0))break;else b=a}return}function kz(a){a=a|0;var b=0,c=0,d=0,e=0;b=f[a+36>>2]|0;d=a+40|0;if((b|0)==(d|0))return;while(1){a=f[b+20>>2]|0;if(a|0?(e=bFb(a,63152,58464,0)|0,e|0):0)Nk[f[(f[e>>2]|0)+40>>2]&2047](e);a=f[b+4>>2]|0;if(!a){c=b+8|0;a=f[c>>2]|0;if((f[a>>2]|0)!=(b|0)){b=c;do{c=f[b>>2]|0;b=c+8|0;a=f[b>>2]|0}while((f[a>>2]|0)!=(c|0))}}else while(1){b=f[a>>2]|0;if(!b)break;else a=b}if((a|0)==(d|0))break;else b=a}return}function lz(a,b){a=a|0;b=b|0;var c=0,d=0;if(!b)return;lz(a,f[b>>2]|0);lz(a,f[b+4>>2]|0);a=f[b+20>>2]|0;if(a|0?(d=a+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(a,1,1);NDb(b);return}function mz(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[a+28>>2]|0;if(c|0)Vk[f[f[c>>2]>>2]&1023](c,b);c=f[a+120>>2]|0;if(c|0)Vk[f[f[c>>2]>>2]&1023](c,b);c=f[a+84>>2]|0;if(c|0){c=c+(f[(f[c>>2]|0)+-12>>2]|0)|0;Vk[f[f[c>>2]>>2]&1023](c,b)}c=f[a+92>>2]|0;if(c|0){c=c+(f[(f[c>>2]|0)+-12>>2]|0)|0;Vk[f[f[c>>2]>>2]&1023](c,b)}c=f[a+100>>2]|0;if(c|0){c=c+(f[(f[c>>2]|0)+-12>>2]|0)|0;Vk[f[f[c>>2]>>2]&1023](c,b)}c=f[a+124>>2]|0;a=a+128|0;if((c|0)==(f[a>>2]|0))return;do{d=f[c>>2]|0;Vk[f[f[d>>2]>>2]&1023](d,b);c=c+4|0}while((c|0)!=(f[a>>2]|0));return}function nz(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;f[a>>2]=89768;k=a+144|0;f[k>>2]=90076;bB(a,0);j=a+624|0;b=f[j>>2]|0;if(b|0)cB(b,a);b=a+648|0;c=f[b>>2]|0;if(c|0?(d=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,l=d+8|0,c=f[l>>2]|0,f[l>>2]=c-1,(c|0)==1):0)X4(d,1,1);f[b>>2]=0;b=a+644|0;c=f[b>>2]|0;if(c|0?(e=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,d=e+8|0,l=f[d>>2]|0,f[d>>2]=l-1,(l|0)==1):0)X4(e,1,1);f[b>>2]=0;b=a+640|0;c=f[b>>2]|0;if(c|0?(g=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,e=g+8|0,l=f[e>>2]|0,f[e>>2]=l-1,(l|0)==1):0)X4(g,1,1);f[b>>2]=0;b=a+636|0;c=f[b>>2]|0;if(c|0?(h=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,g=h+8|0,l=f[g>>2]|0,f[g>>2]=l-1,(l|0)==1):0)X4(h,1,1);f[b>>2]=0;b=a+632|0;c=f[b>>2]|0;if(c|0?(h=c+8|0,l=f[h>>2]|0,f[h>>2]=l-1,(l|0)==1):0)X4(c,1,1);f[b>>2]=0;b=a+628|0;c=f[b>>2]|0;if(c|0?(i=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,h=i+8|0,l=f[h>>2]|0,f[h>>2]=l-1,(l|0)==1):0)X4(i,1,1);f[b>>2]=0;b=f[j>>2]|0;if(b|0?(i=b+8|0,l=f[i>>2]|0,f[i>>2]=l-1,(l|0)==1):0)X4(b,1,1);f[j>>2]=0;b=a+620|0;c=f[b>>2]|0;if(c|0?(j=c+8|0,l=f[j>>2]|0,f[j>>2]=l-1,(l|0)==1):0)X4(c,1,1);f[b>>2]=0;VA(a+608|0,f[a+612>>2]|0);TA(a+584|0,f[a+588>>2]|0);b=a+288|0;c=f[b>>2]|0;if(c|0?(j=c+8|0,l=f[j>>2]|0,f[j>>2]=l-1,(l|0)==1):0)X4(c,1,1);f[b>>2]=0;b=a+284|0;c=f[b>>2]|0;if(c|0?(j=c+8|0,l=f[j>>2]|0,f[j>>2]=l-1,(l|0)==1):0)X4(c,1,1);f[b>>2]=0;b=a+232|0;c=f[b>>2]|0;if(c|0?(j=c+8|0,l=f[j>>2]|0,f[j>>2]=l-1,(l|0)==1):0)X4(c,1,1);f[b>>2]=0;b=a+224|0;c=f[b>>2]|0;if(c|0?(j=c+8|0,l=f[j>>2]|0,f[j>>2]=l-1,(l|0)==1):0)X4(c,1,1);f[b>>2]=0;d8(a+208|0);f[k>>2]=90104;b=a+172|0;c=f[b>>2]|0;if(!c){f[b>>2]=0;oca(a);return}k=c+8|0;l=f[k>>2]|0;f[k>>2]=l-1;if((l|0)!=1){f[b>>2]=0;oca(a);return}X4(c,1,1);f[b>>2]=0;oca(a);return}function oz(a){a=a|0;nz(a);NDb(a);return}function pz(a){a=a|0;a=LDb(656)|0;ZA(a);return a|0}function qz(a,b){a=a|0;b=b|0;var c=0;c=LDb(656)|0;QA(c,a,b);return c|0}function rz(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,58680,0)|0)!=0;return b|0}function sz(a){a=a|0;return 241076}function tz(a){a=a|0;return 243348}function uz(a){a=a|0;return a|0}function vz(a){a=a|0;return a|0}function wz(a){a=a|0;return a|0}function xz(a){a=a|0;return a|0}function yz(a){a=a|0;return 0}function zz(a){a=a|0;return 0}function Az(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[a+632>>2]|0;if(c|0)Vk[f[(f[c>>2]|0)+156>>2]&1023](c,b);c=f[a+120>>2]|0;if(c|0)Vk[f[(f[c>>2]|0)+156>>2]&1023](c,b);c=f[a+84>>2]|0;if(c|0){c=c+(f[(f[c>>2]|0)+-12>>2]|0)|0;Vk[f[(f[c>>2]|0)+156>>2]&1023](c,b)}c=f[a+92>>2]|0;if(c|0){c=c+(f[(f[c>>2]|0)+-12>>2]|0)|0;Vk[f[(f[c>>2]|0)+156>>2]&1023](c,b)}c=f[a+100>>2]|0;if(c|0){c=c+(f[(f[c>>2]|0)+-12>>2]|0)|0;Vk[f[(f[c>>2]|0)+156>>2]&1023](c,b)}c=f[a+124>>2]|0;a=a+128|0;if((c|0)==(f[a>>2]|0))return;do{d=f[c>>2]|0;Vk[f[(f[d>>2]|0)+156>>2]&1023](d,b);c=c+4|0}while((c|0)!=(f[a>>2]|0));return}function Bz(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[a+632>>2]|0;if(c|0)Vk[f[(f[c>>2]|0)+160>>2]&1023](c,b);c=f[a+120>>2]|0;if(c|0)Vk[f[(f[c>>2]|0)+160>>2]&1023](c,b);c=f[a+84>>2]|0;if(c|0){c=c+(f[(f[c>>2]|0)+-12>>2]|0)|0;Vk[f[(f[c>>2]|0)+160>>2]&1023](c,b)}c=f[a+92>>2]|0;if(c|0){c=c+(f[(f[c>>2]|0)+-12>>2]|0)|0;Vk[f[(f[c>>2]|0)+160>>2]&1023](c,b)}c=f[a+100>>2]|0;if(c|0){c=c+(f[(f[c>>2]|0)+-12>>2]|0)|0;Vk[f[(f[c>>2]|0)+160>>2]&1023](c,b)}c=f[a+124>>2]|0;a=a+128|0;if((c|0)==(f[a>>2]|0))return;do{d=f[c>>2]|0;Vk[f[(f[d>>2]|0)+160>>2]&1023](d,b);c=c+4|0}while((c|0)!=(f[a>>2]|0));return}function Cz(a){a=a|0;return 0}function Dz(a){a=a|0;return 0}function Ez(a){a=a|0;return a|0}function Fz(a){a=a|0;return a|0}function Gz(a){a=a|0;return a|0}function Hz(a){a=a|0;return a|0}function Iz(a){a=a|0;return 0}function Jz(a){a=a|0;return 0}function Kz(a){a=a|0;return 0}function Lz(a){a=a|0;return 0}function Mz(a){a=a|0;return 0}function Nz(a){a=a|0;return 0}function Oz(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0;j=u;u=u+16|0;c=j+8|0;i=j+4|0;d=j;if(!((f[a+116>>2]|f[b+24>>2])&f[b+20>>2])){u=j;return}f[i>>2]=a;e=b+16|0;g=b+28|0;h=a;do if((f[e>>2]|0)!=1){c=b+32|0;d=f[c>>2]|0;if((d|0)==(f[b+36>>2]|0)){OA(g,i);break}else{f[d>>2]=h;f[c>>2]=(f[c>>2]|0)+4;break}}else{f[d>>2]=f[g>>2];f[c>>2]=f[d>>2];PA(g,c,i)|0}while(0);Vk[f[(f[b>>2]|0)+152>>2]&1023](b,a);if((f[e>>2]|0)==1){a=f[b+28>>2]|0;e=a+4|0;c=b+32|0;d=(f[c>>2]|0)-e|0;if(d|0)hGb(a|0,e|0,d|0)|0;d=a+(d>>2<<2)|0}else{c=b+32|0;d=(f[c>>2]|0)+-4|0}f[c>>2]=d;u=j;return}function Pz(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[a+72>>2]|0;d=f[a+76>>2]|0;if((c|0)==(d|0))return;a=c;do{c=f[a>>2]|0;Vk[f[(f[c>>2]|0)+212>>2]&1023](c,b);a=a+4|0}while((a|0)!=(d|0));return}function Qz(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[a+124>>2]|0;a=a+128|0;if((c|0)==(f[a>>2]|0))return;do{d=f[c>>2]|0;Vk[f[(f[d>>2]|0)+212>>2]&1023](d,b);c=c+4|0}while((c|0)!=(f[a>>2]|0));return}function Rz(a,b){a=a|0;b=b|0;return Sz(a,(f[a+128>>2]|0)-(f[a+124>>2]|0)>>2,b)|0}function Sz(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=u;u=u+16|0;k=m+8|0;h=m+4|0;i=m;if(!d){d=0;u=m;return d|0}e=sk[f[(f[d>>2]|0)+164>>2]&2047](d)|0;if(e|0?b[e+276>>0]|0:0)vA(e);g=a+124|0;j=a+128|0;e=f[g>>2]|0;l=(f[j>>2]|0)-e>>2;if(l>>>0>c>>>0){f[h>>2]=e+(c<<2);f[i>>2]=d;e=d+8|0;f[e>>2]=(f[e>>2]|0)+1;f[k>>2]=f[h>>2];xA(g,k,i)|0;e=f[i>>2]|0;if(e|0?(k=e+8|0,l=f[k>>2]|0,f[k>>2]=l-1,(l|0)==1):0)X4(e,1,1)}else{f[k>>2]=d;c=d+8|0;f[c>>2]=(f[c>>2]|0)+1;c=f[j>>2]|0;if(c>>>0<(f[a+132>>2]|0)>>>0){e=f[k>>2]|0;f[c>>2]=e;if(e){c=e+8|0;f[c>>2]=(f[c>>2]|0)+1;c=f[j>>2]|0}f[j>>2]=c+4}else wA(g,k);c=f[k>>2]|0;if(c|0?(j=c+8|0,k=f[j>>2]|0,f[j>>2]=k-1,(k|0)==1):0)X4(c,1,1);c=l}nA(d,a);Vk[f[(f[a>>2]|0)+260>>2]&1023](a,c);oA(a);if(!((f[d+88>>2]|0)==0?!(f[d+84>>2]|0):0))pA(a,(f[a+88>>2]|0)+1|0);if(!((f[d+96>>2]|0)==0?!(f[d+92>>2]|0):0))qA(a,(f[a+96>>2]|0)+1|0);if(!((f[d+108>>2]|0)==0?(b[d+104>>0]|0)!=0:0))rA(a,(f[a+108>>2]|0)+1|0);if((f[d+112>>2]|0)==0?(bFb(d,58720,58736,0)|0)==0:0){d=1;u=m;return d|0}sA(a,(f[a+112>>2]|0)+1|0);d=1;u=m;return d|0}function Tz(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;d=f[a+124>>2]|0;c=(f[a+128>>2]|0)-d|0;e=c>>2;a:do if(!c)c=0;else{c=0;while(1){if((f[d+(c<<2)>>2]|0)==(b|0))break a;c=c+1|0;if(c>>>0>=e>>>0){c=0;break}}return c|0}while(0);if(c>>>0>=e>>>0){e=0;return e|0}e=xk[f[(f[a>>2]|0)+240>>2]&255](a,c,1)|0;return e|0}function Uz(a,c,d){a=a|0;c=c|0;d=d|0;var e=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,v=0,w=0,x=0,y=0,z=0;z=u;u=u+16|0;v=z+12|0;t=z+8|0;w=z+4|0;x=z;y=a+124|0;g=a+128|0;h=f[y>>2]|0;e=(f[g>>2]|0)-h>>2;if(!((d|0)!=0&e>>>0>c>>>0)){y=0;u=z;return y|0}d=d+c|0;if(d>>>0>e>>>0){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>4){s=Nv(Mv(5)|0,176732,86)|0;Ktb(v,s+(f[(f[s>>2]|0)+-12>>2]|0)|0);p=Bvb(v,295164)|0;p=wk[f[(f[p>>2]|0)+28>>2]&1023](p,10)|0;Cvb(v);rub(s,p)|0;Rtb(s)|0}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>4){s=Nv(Mv(5)|0,176819,66)|0;Ktb(v,s+(f[(f[s>>2]|0)+-12>>2]|0)|0);p=Bvb(v,295164)|0;p=wk[f[(f[p>>2]|0)+28>>2]&1023](p,10)|0;Cvb(v);rub(s,p)|0;Rtb(s)|0}j=f[y>>2]|0;s=(f[g>>2]|0)-j>>2}else{s=d;j=h}a:do if(s>>>0>c>>>0){e=c;i=0;h=0;g=0;d=0;while(1){p=f[j+(e<<2)>>2]|0;m=$7()|0;n=(m|0)==0;if(!n)sk[f[(f[m>>2]|0)+8>>2]&2047](m)|0;j=f[p+72>>2]|0;o=p+76|0;k=f[o>>2]|0;l=k;b:do if((j|0)==(k|0)){q=j;r=24}else do{if((f[j>>2]|0)==(a|0)){q=j;r=24;break b}j=j+4|0}while((j|0)!=(k|0));while(0);if((r|0)==24?(r=0,(q|0)!=(k|0)):0){k=q+4|0;j=l-k|0;if(j|0)hGb(q|0,k|0,j|0)|0;f[o>>2]=q+(j>>2<<2)}if(!n)sk[f[(f[m>>2]|0)+12>>2]&2047](m)|0;if(!((f[p+88>>2]|0)==0?(f[p+84>>2]|0)==0:0))d=d+1|0;if(!((f[p+96>>2]|0)==0?(f[p+92>>2]|0)==0:0))g=g+1|0;if(!((f[p+108>>2]|0)==0?(b[p+104>>0]|0)!=0:0))h=h+1|0;if(!((f[p+112>>2]|0)==0?(bFb(p,58720,58736,0)|0)==0:0))i=i+1|0;e=e+1|0;if(e>>>0>=s>>>0){e=y;break a}j=f[y>>2]|0}}else{i=0;h=0;g=0;d=0;e=y}while(0);Zk[f[(f[a>>2]|0)+256>>2]&511](a,c,s-c|0);r=f[e>>2]|0;f[w>>2]=r+(c<<2);f[x>>2]=r+(s<<2);f[t>>2]=f[w>>2];f[v>>2]=f[x>>2];uA(y,t,v)|0;if(d|0)pA(a,(f[a+88>>2]|0)-d|0);if(g|0)qA(a,(f[a+96>>2]|0)-g|0);if(h|0)rA(a,(f[a+108>>2]|0)-h|0);if(i|0)sA(a,(f[a+112>>2]|0)-i|0);oA(a);y=1;u=z;return y|0}function Vz(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0;if((c|0)==0|(b|0)==(c|0)){c=0;return c|0}e=f[a+124>>2]|0;d=(f[a+128>>2]|0)-e|0;g=d>>2;a:do if(!d)d=0;else{d=0;while(1){if((f[e+(d<<2)>>2]|0)==(b|0))break a;d=d+1|0;if(d>>>0>=g>>>0){d=0;break}}return d|0}while(0);if(d>>>0>=g>>>0){c=0;return c|0}c=xk[f[(f[a>>2]|0)+252>>2]&255](a,d,c)|0;return c|0}function Wz(a){a=a|0;return (f[a+128>>2]|0)-(f[a+124>>2]|0)>>2|0}function Xz(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=a+124|0;e=f[n>>2]|0;if(!(d|0?(f[a+128>>2]|0)-e>>2>>>0>c>>>0:0)){a=0;return a|0}o=f[e+(c<<2)>>2]|0;if(o|0){l=o+8|0;f[l>>2]=(f[l>>2]|0)+1}j=$7()|0;k=(j|0)==0;if(!k)sk[f[(f[j>>2]|0)+8>>2]&2047](j)|0;e=f[o+72>>2]|0;l=o+76|0;g=f[l>>2]|0;h=g;a:do if((e|0)==(g|0)){m=e;i=10}else do{if((f[e>>2]|0)==(a|0)){m=e;i=10;break a}e=e+4|0}while((e|0)!=(g|0));while(0);if((i|0)==10?(m|0)!=(g|0):0){g=m+4|0;e=h-g|0;if(e|0)hGb(m|0,g|0,e|0)|0;f[l>>2]=m+(e>>2<<2)}if(!k)sk[f[(f[j>>2]|0)+12>>2]&2047](j)|0;e=(f[n>>2]|0)+(c<<2)|0;g=f[e>>2]|0;if(((g|0)!=(d|0)?(f[e>>2]=d,n=d+8|0,f[n>>2]=(f[n>>2]|0)+1,g|0):0)?(c=g+8|0,n=f[c>>2]|0,f[c>>2]=n-1,(n|0)==1):0)X4(g,1,1);nA(d,a);oA(a);if((f[o+88>>2]|0)==0?(f[o+84>>2]|0)==0:0)e=0;else e=-1;if(!((f[d+88>>2]|0)==0?(f[d+84>>2]|0)==0:0))e=e+1|0;if(e|0)pA(a,(f[a+88>>2]|0)+e|0);if((f[o+96>>2]|0)==0?(f[o+92>>2]|0)==0:0)e=0;else e=-1;if(!((f[d+96>>2]|0)==0?(f[d+92>>2]|0)==0:0))e=e+1|0;if(e|0)qA(a,(f[a+96>>2]|0)+e|0);if((f[o+108>>2]|0)==0?(b[o+104>>0]|0)!=0:0)e=0;else e=-1;if(!((f[d+108>>2]|0)==0?(b[d+104>>0]|0)!=0:0))e=e+1|0;if(e|0)rA(a,(f[a+108>>2]|0)+e|0);if((f[o+112>>2]|0)==0?(bFb(o,58720,58736,0)|0)==0:0)e=0;else e=-1;if(!((f[d+112>>2]|0)==0?(bFb(d,58720,58736,0)|0)==0:0))e=e+1|0;if(e|0)sA(a,(f[a+112>>2]|0)+e|0);d=o+8|0;a=f[d>>2]|0;f[d>>2]=a-1;if((a|0)!=1){a=1;return a|0}X4(o,1,1);a=1;return a|0}function Yz(a,b,c){a=a|0;b=b|0;c=c|0;return}function Zz(a,b){a=a|0;b=b|0;return}function _z(a){a=a|0;return 0}function $z(a){a=a|0;return 0}function aA(a){a=a|0;return 0}function bA(a){a=a|0;return 0}function cA(a){a=a|0;return 0}function dA(a){a=a|0;return 0}function eA(a,b,c){a=a|0;b=b|0;c=c|0;if(f[a+136>>2]|0){c=a+432|0;if((c|0)==(b|0))return 1;p[b>>3]=+p[c>>3];p[b+8>>3]=+p[a+440>>3];p[b+16>>3]=+p[a+448>>3];p[b+24>>3]=+p[a+456>>3];p[b+32>>3]=+p[a+464>>3];p[b+40>>3]=+p[a+472>>3];p[b+48>>3]=+p[a+480>>3];p[b+56>>3]=+p[a+488>>3];p[b+64>>3]=+p[a+496>>3];p[b+72>>3]=+p[a+504>>3];p[b+80>>3]=+p[a+512>>3];p[b+88>>3]=+p[a+520>>3];p[b+96>>3]=+p[a+528>>3];p[b+104>>3]=+p[a+536>>3];p[b+112>>3]=+p[a+544>>3];p[b+120>>3]=+p[a+552>>3];return 1}c=a+432|0;if(!(f[a+292>>2]|0)){YWa(b,c);return 1}else{XWa(b,c);return 1}return 0}function fA(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=u;u=u+128|0;c=e;SWa(c);d=a+432|0;if(((+p[a+456>>3]==0.0?+p[a+488>>3]==0.0:0)?+p[a+520>>3]==0.0:0)?+p[a+552>>3]==1.0:0)ZWa(c,d)|0;else _Wa(c,d)|0;if(f[a+136>>2]|0){if((c|0)==(b|0)){u=e;return 1}p[b>>3]=+p[c>>3];p[b+8>>3]=+p[c+8>>3];p[b+16>>3]=+p[c+16>>3];p[b+24>>3]=+p[c+24>>3];p[b+32>>3]=+p[c+32>>3];p[b+40>>3]=+p[c+40>>3];p[b+48>>3]=+p[c+48>>3];p[b+56>>3]=+p[c+56>>3];p[b+64>>3]=+p[c+64>>3];p[b+72>>3]=+p[c+72>>3];p[b+80>>3]=+p[c+80>>3];p[b+88>>3]=+p[c+88>>3];p[b+96>>3]=+p[c+96>>3];p[b+104>>3]=+p[c+104>>3];p[b+112>>3]=+p[c+112>>3];p[b+120>>3]=+p[c+120>>3];u=e;return 1}if(!(f[a+292>>2]|0)){XWa(b,c);u=e;return 1}else{YWa(b,c);u=e;return 1}return 0}function gA(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;mA(a+144|0,b,c);b=bFb(b,58712,58680,144)|0;if(!b)return;if(c&8192|0){e=b+240|0;d=a+240|0;f[d>>2]=f[e>>2];f[d+4>>2]=f[e+4>>2];f[d+8>>2]=f[e+8>>2];f[d+12>>2]=f[e+12>>2]}if(c&16384|0)f[a+236>>2]=f[b+236>>2];if(c&131072|0)f[a+568>>2]=f[b+568>>2];if(!(c&262144))return;f[a+572>>2]=f[b+572>>2];return}function hA(a){a=a|0;nz(a+-144|0);return}function iA(a){a=a|0;a=a+-144|0;nz(a);NDb(a);return}function jA(a){a=a|0;f[a+4>>2]=2147483647;f[a+8>>2]=0;f[a+16>>2]=57;n[a+20>>2]=1.0;n[a+24>>2]=2.0;f[a+12>>2]=1;p[a+32>>3]=.0005;b[a+40>>0]=1;b[a+41>>0]=0;n[a+44>>2]=4.0;f[a+48>>2]=10;f[a+52>>2]=-1;f[a+56>>2]=-1;f[a+60>>2]=-1;return}function kA(a,b){a=a|0;b=b|0;Zk[f[(f[a>>2]|0)+16>>2]&511](a,b,f[a+4>>2]|0);return}function lA(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0;d=a+-144|0;mA(a,b,c);b=bFb(b,58712,58680,144)|0;if(!b)return;if(c&8192|0){g=b+240|0;e=a+96|0;f[e>>2]=f[g>>2];f[e+4>>2]=f[g+4>>2];f[e+8>>2]=f[g+8>>2];f[e+12>>2]=f[g+12>>2]}if(c&16384|0)f[d+236>>2]=f[b+236>>2];if(c&131072|0)f[a+424>>2]=f[b+568>>2];if(!(c&262144))return;f[d+572>>2]=f[b+572>>2];return}function mA(a,c,d){a=a|0;c=c|0;d=d|0;var e=0;if(d&1|0)f[a+12>>2]=f[c+12>>2];if(d&32|0)p[a+32>>3]=+p[c+32>>3];if(d&64|0)b[a+40>>0]=b[c+40>>0]|0;if(d&128|0)b[a+41>>0]=b[c+41>>0]|0;if(d&256|0)f[a+44>>2]=f[c+44>>2];if(d&512|0)f[a+48>>2]=f[c+48>>2];if(d&1024|0)f[a+52>>2]=f[c+52>>2];if(d&2048|0)f[a+56>>2]=f[c+56>>2];if(d&4096|0)f[a+60>>2]=f[c+60>>2];if(d&2|0)f[a+16>>2]=f[c+16>>2];if(d&4|0)f[a+20>>2]=f[c+20>>2];if(d&8|0)f[a+24>>2]=f[c+24>>2];if(!(d&16))return;d=a+28|0;e=f[d>>2]|0;a=f[c+28>>2]|0;if((e|0)==(a|0))return;f[d>>2]=a;if(a|0){c=a+8|0;f[c>>2]=(f[c>>2]|0)+1}if(!e)return;d=e+8|0;c=f[d>>2]|0;f[d>>2]=c-1;if((c|0)!=1)return;X4(e,1,1);return}function nA(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0;i=u;u=u+16|0;d=i;f[d>>2]=b;e=$7()|0;g=(e|0)==0;if(!g)sk[f[(f[e>>2]|0)+8>>2]&2047](e)|0;h=a+76|0;c=f[h>>2]|0;if((c|0)==(f[a+80>>2]|0))tA(a+72|0,d);else{f[c>>2]=b;f[h>>2]=(f[h>>2]|0)+4}if(g){u=i;return}sk[f[(f[e>>2]|0)+12>>2]&2047](e)|0;u=i;return}function oA(a){a=a|0;var c=0;c=a+68|0;if(!(b[c>>0]|0))return;b[c>>0]=0;c=f[a+72>>2]|0;a=a+76|0;if((c|0)==(f[a>>2]|0))return;do{oA(f[c>>2]|0);c=c+4|0}while((c|0)!=(f[a>>2]|0));return}function pA(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;h=a+88|0;d=f[h>>2]|0;if((d|0)==(b|0))return;if(((f[a+84>>2]|0)==0?(c=f[a+72>>2]|0,g=a+76|0,(c|0)!=(f[g>>2]|0)):0)?(e=(((d|0)!=0)<<31>>31)+((b|0)!=0&1)|0,e|0):0)do{d=f[c>>2]|0;pA(d,(f[d+88>>2]|0)+e|0);c=c+4|0}while((c|0)!=(f[g>>2]|0));f[h>>2]=b;return}function qA(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;h=a+96|0;d=f[h>>2]|0;if((d|0)==(b|0))return;if(((f[a+92>>2]|0)==0?(c=f[a+72>>2]|0,g=a+76|0,(c|0)!=(f[g>>2]|0)):0)?(e=(((d|0)!=0)<<31>>31)+((b|0)!=0&1)|0,e|0):0)do{d=f[c>>2]|0;qA(d,(f[d+96>>2]|0)+e|0);c=c+4|0}while((c|0)!=(f[g>>2]|0));f[h>>2]=b;return}function rA(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0;i=a+108|0;e=f[i>>2]|0;if((e|0)==(c|0))return;if((b[a+104>>0]|0?(d=f[a+72>>2]|0,h=a+76|0,(d|0)!=(f[h>>2]|0)):0)?(g=(((e|0)!=0)<<31>>31)+((c|0)!=0&1)|0,g|0):0)do{e=f[d>>2]|0;rA(e,(f[e+108>>2]|0)+g|0);d=d+4|0}while((d|0)!=(f[h>>2]|0));f[i>>2]=c;return}function sA(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;g=a+112|0;d=f[g>>2]|0;if((d|0)==(b|0))return;if(((bFb(a,58720,58736,0)|0)==0?(c=f[a+72>>2]|0,h=a+76|0,(c|0)!=(f[h>>2]|0)):0)?(e=(((d|0)!=0)<<31>>31)+((b|0)!=0&1)|0,e|0):0)do{d=f[c>>2]|0;sA(d,(f[d+112>>2]|0)+e|0);c=c+4|0}while((c|0)!=(f[h>>2]|0));f[g>>2]=b;return}function tA(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;i=a+4|0;j=f[a>>2]|0;k=(f[i>>2]|0)-j|0;g=k>>2;c=g+1|0;if(c>>>0>1073741823)KEb(a);l=a+8|0;e=(f[l>>2]|0)-j|0;h=e>>1;h=e>>2>>>0<536870911?(h>>>0<c>>>0?c:h):1073741823;do if(h)if(h>>>0>1073741823){l=mb(8)|0;RDb(l,238482);f[l>>2]=144484;qb(l|0,84192,1464)}else{e=LDb(h<<2)|0;d=e;break}else{d=0;e=0}while(0);c=d+(g<<2)|0;f[c>>2]=f[b>>2];if((k|0)>0)gGb(e|0,j|0,k|0)|0;f[a>>2]=d;f[i>>2]=c+4;f[l>>2]=d+(h<<2);if(!j)return;NDb(j);return}function uA(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0;h=f[a>>2]|0;d=f[b>>2]|0;h=h+(d-h>>2<<2)|0;b=f[c>>2]|0;if((b|0)==(d|0))return h|0;b=h+(b-d>>2<<2)|0;g=a+4|0;e=f[g>>2]|0;if((b|0)==(e|0))d=h;else{d=h;do{c=f[d>>2]|0;a=f[b>>2]|0;if((c|0)!=(a|0)){f[d>>2]=a;if(a|0){a=a+8|0;f[a>>2]=(f[a>>2]|0)+1}if(c|0?(i=c+8|0,a=f[i>>2]|0,f[i>>2]=a-1,(a|0)==1):0)X4(c,1,1)}b=b+4|0;d=d+4|0}while((b|0)!=(e|0));b=f[g>>2]|0}if((b|0)!=(d|0))do{b=b+-4|0;c=f[b>>2]|0;if(c|0?(e=c+8|0,i=f[e>>2]|0,f[e>>2]=i-1,(i|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(d|0));f[g>>2]=d;return h|0}function vA(a){a=a|0;var c=0,e=0,g=0,i=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=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=u;u=u+64|0;J=L+48|0;K=L+36|0;I=L+24|0;G=L+12|0;F=L;H=a+276|0;if(!(b[H>>0]|0)){u=L;return}E=a+232|0;c=f[E>>2]|0;if((c|0?(e=sk[f[(f[c>>2]|0)+148>>2]&2047](c)|0,e|0):0)?(g=bFb(e,63152,58768,0)|0,g|0):0)AA(a,zA(f[E>>2]|0,g)|0);D=a+236|0;e=f[D>>2]|0;if(e){c=(f[e+64>>2]|0)==3;e=sk[f[(f[e>>2]|0)+148>>2]&2047](e)|0;if((e|0)!=0?(i=bFb(e,63152,58768,0)|0,(i|0)!=0):0){k=a+236|0;e=zA(f[k>>2]|0,i)|0;g=(e|0)==0;i=f[k>>2]|0;if((i|0)!=(e|0)){f[k>>2]=e;if(!g){z=e+8|0;f[z>>2]=(f[z>>2]|0)+1}if(i|0?(y=i+8|0,z=f[y>>2]|0,f[y>>2]=z-1,(z|0)==1):0)X4(i,1,1)}Nk[f[(f[a>>2]|0)+240>>2]&2047](a);if(!g){mEa(a+200|0);BA(a,e)}}}else c=0;k=a+240|0;e=f[k>>2]|0;if(e){c=c|(f[e+64>>2]|0)==3;l=a+240|0;e=sk[f[(f[e>>2]|0)+148>>2]&2047](e)|0;if((e|0)!=0?(m=bFb(e,63152,58768,0)|0,(m|0)!=0):0){e=zA(f[k>>2]|0,m)|0;g=(e|0)==0;i=f[k>>2]|0;if((i|0)!=(e|0)){f[k>>2]=e;if(!g){z=e+8|0;f[z>>2]=(f[z>>2]|0)+1}if(i|0?(y=i+8|0,z=f[y>>2]|0,f[y>>2]=z-1,(z|0)==1):0)X4(i,1,1)}Nk[f[(f[a>>2]|0)+240>>2]&2047](a);if(!g){nEa(a+200|0);BA(a,e);y=l;z=l}else{y=l;z=l}}else{y=l;z=l}}else{z=a+240|0;y=z}k=a+244|0;e=f[k>>2]|0;if(e){c=c|(f[e+64>>2]|0)==3;l=a+244|0;e=sk[f[(f[e>>2]|0)+148>>2]&2047](e)|0;if((e|0)!=0?(n=bFb(e,63152,58768,0)|0,(n|0)!=0):0){e=zA(f[k>>2]|0,n)|0;g=(e|0)==0;i=f[k>>2]|0;if((i|0)!=(e|0)){f[k>>2]=e;if(!g){x=e+8|0;f[x>>2]=(f[x>>2]|0)+1}if(i|0?(w=i+8|0,x=f[w>>2]|0,f[w>>2]=x-1,(x|0)==1):0)X4(i,1,1)}Nk[f[(f[a>>2]|0)+240>>2]&2047](a);if(!g){oEa(a+200|0);BA(a,e);w=l;x=l}else{w=l;x=l}}else{w=l;x=l}}else{x=a+244|0;w=x}k=a+248|0;e=f[k>>2]|0;if(e){c=c|(f[e+64>>2]|0)==3;l=a+248|0;e=sk[f[(f[e>>2]|0)+148>>2]&2047](e)|0;if((e|0)!=0?(o=bFb(e,63152,58768,0)|0,(o|0)!=0):0){e=zA(f[k>>2]|0,o)|0;g=(e|0)==0;i=f[k>>2]|0;if((i|0)!=(e|0)){f[k>>2]=e;if(!g){t=e+8|0;f[t>>2]=(f[t>>2]|0)+1}if(i|0?(s=i+8|0,t=f[s>>2]|0,f[s>>2]=t-1,(t|0)==1):0)X4(i,1,1)}Nk[f[(f[a>>2]|0)+240>>2]&2047](a);if(!g){pEa(a+200|0);BA(a,e);r=l;s=l}else{r=l;s=l}}else{r=l;s=l}}else{s=a+248|0;r=s}q=a+252|0;t=a+256|0;e=f[q>>2]|0;if((f[t>>2]|0)!=(e|0)){g=0;do{e=f[e+(g<<2)>>2]|0;if((e|0?(p=sk[f[(f[e>>2]|0)+148>>2]&2047](e)|0,p|0):0)?(v=bFb(p,63152,58768,0)|0,v|0):0){e=f[q>>2]|0;if((f[t>>2]|0)-e>>2>>>0>g>>>0)e=f[e+(g<<2)>>2]|0;else e=0;CA(a,g,zA(e,v)|0,-1)}g=g+1|0;e=f[q>>2]|0}while(g>>>0<(f[t>>2]|0)-e>>2>>>0)}l=a+264|0;m=a+268|0;g=f[m>>2]|0;e=f[l>>2]|0;if((g|0)!=(e|0)){k=0;do{i=e;if(g-e>>2>>>0>k>>>0?(A=f[e+(k<<2)>>2]|0,(A|0)!=0):0)c=c|(f[A+64>>2]|0)==3;e=f[i+(k<<2)>>2]|0;if((e|0?(B=sk[f[(f[e>>2]|0)+148>>2]&2047](e)|0,B|0):0)?(C=bFb(B,63152,58768,0)|0,C|0):0){e=f[l>>2]|0;if((f[m>>2]|0)-e>>2>>>0>k>>>0)e=f[e+(k<<2)>>2]|0;else e=0;DA(a,k,zA(e,C)|0,-1)}k=k+1|0;g=f[m>>2]|0;e=f[l>>2]|0}while(k>>>0<g-e>>2>>>0)}if(!c){b[H>>0]=0;u=L;return}p=a+220|0;e=f[p>>2]|0;A=a+224|0;a:do if((e|0)==(f[A>>2]|0))g=0;else{c=0;while(1){g=f[e>>2]|0;switch(f[g+52>>2]|0){case 1:{c=(f[g+68>>2]|0)+c|0;break}case 2:{i=f[g+68>>2]|0;k=f[g+72>>2]|0;if((i|0)!=(k|0)){g=i;do{c=(f[g>>2]|0)+c|0;g=g+4|0}while((g|0)!=(k|0))}break}case 3:{c=(sk[f[(f[g>>2]|0)+216>>2]&2047](g)|0)+c|0;break}case 4:{c=(sk[f[(f[g>>2]|0)+216>>2]&2047](g)|0)+c|0;break}case 5:{c=(sk[f[(f[g>>2]|0)+216>>2]&2047](g)|0)+c|0;break}default:{}}e=e+4|0;if((e|0)==(f[A>>2]|0)){g=c;break a}}}while(0);f[J>>2]=0;n=J+4|0;f[n>>2]=0;f[J+8>>2]=0;f[K>>2]=0;o=K+4|0;f[o>>2]=0;f[K+8>>2]=0;if(f[E>>2]|0)EA(J,E,g);c=f[D>>2]|0;b:do if(c|0)switch(f[c+64>>2]|0){case 4:{EA(J,D,g);break b}case 3:{EA(K,D,g);break b}default:break b}while(0);c=f[y>>2]|0;c:do if(c|0)switch(f[c+64>>2]|0){case 4:{EA(J,z,g);break c}case 3:{EA(K,z,g);break c}default:break c}while(0);c=f[w>>2]|0;d:do if(c|0)switch(f[c+64>>2]|0){case 4:{EA(J,x,g);break d}case 3:{EA(K,x,g);break d}default:break d}while(0);c=f[r>>2]|0;e:do if(c|0)switch(f[c+64>>2]|0){case 4:{EA(J,s,g);break e}case 3:{EA(K,s,g);break e}default:break e}while(0);c=f[q>>2]|0;if((c|0)!=(f[t>>2]|0))do{e=f[c>>2]|0;f:do if(e|0)switch(f[e+64>>2]|0){case 4:{EA(J,c,g);break f}case 3:{EA(K,c,g);break f}default:break f}while(0);c=c+4|0}while((c|0)!=(f[t>>2]|0));c=f[l>>2]|0;if((c|0)!=(f[m>>2]|0))do{e=f[c>>2]|0;g:do if(e|0)switch(f[e+64>>2]|0){case 4:{EA(J,c,g);break g}case 3:{EA(K,c,g);break g}default:break g}while(0);c=c+4|0}while((c|0)!=(f[m>>2]|0));f[I>>2]=0;x=I+4|0;f[x>>2]=0;i=I+8|0;f[i>>2]=0;f[G>>2]=0;w=G+4|0;f[w>>2]=0;m=G+8|0;f[m>>2]=0;c=f[J>>2]|0;if((c|0)!=(f[n>>2]|0)){k=F+4|0;l=F+8|0;do{e=f[c>>2]|0;g=f[c+4>>2]|0;E=sk[f[(f[e>>2]|0)+164>>2]&2047](e)|0;f[F>>2]=E;g=sk[f[(f[g>>2]|0)+164>>2]&2047](g)|0;f[k>>2]=g;e=sk[f[(f[e>>2]|0)+208>>2]&2047](e)|0;f[l>>2]=e;g=f[x>>2]|0;if(g>>>0<(f[i>>2]|0)>>>0){f[g>>2]=f[F>>2];f[g+4>>2]=f[k>>2];f[g+8>>2]=e;f[x>>2]=g+12}else FA(I,F);c=c+8|0}while((c|0)!=(f[n>>2]|0))}c=f[K>>2]|0;if((c|0)!=(f[o>>2]|0)){i=F+4|0;k=F+8|0;do{e=f[c>>2]|0;g=f[c+4>>2]|0;E=sk[f[(f[e>>2]|0)+164>>2]&2047](e)|0;f[F>>2]=E;g=sk[f[(f[g>>2]|0)+164>>2]&2047](g)|0;f[i>>2]=g;e=sk[f[(f[e>>2]|0)+208>>2]&2047](e)|0;f[k>>2]=e;g=f[w>>2]|0;if(g>>>0<(f[m>>2]|0)>>>0){f[g>>2]=f[F>>2];f[g+4>>2]=f[i>>2];f[g+8>>2]=e;f[w>>2]=g+12}else FA(G,F);c=c+8|0}while((c|0)!=(f[o>>2]|0))}e=f[p>>2]|0;h:do if((e|0)!=(f[A>>2]|0)){c=0;n=-1;while(1){i=f[e>>2]|0;switch(f[i+60>>2]|0){case 0:{g=1;break}case 1:{g=2;break}case 4:{g=3;break}case 7:{g=4;break}default:g=0}i:do switch(f[i+52>>2]|0){case 1:{do if(!g){g=sk[f[(f[i>>2]|0)+216>>2]&2047](i)|0;if(g|0)break;g=f[i+68>>2]|0}while(0);t=i+64|0;k=f[t>>2]|0;f[t>>2]=c;t=f[i+68>>2]|0;if(k>>>0>=(t+k|0)>>>0){i=n;break i}s=0;r=c;i=n;while(1){i=i+(((s>>>0)%(g>>>0)|0|0)==0&1)|0;l=f[I>>2]|0;m=f[x>>2]|0;if((l|0)!=(m|0))do{p=l+8|0;n=f[p>>2]|0;if(n){o=(f[l+4>>2]|0)+(W(n,r)|0)|0;m=(f[l>>2]|0)+(W(n,k)|0)|0;n=o;o=0;while(1){b[n>>0]=b[m>>0]|0;o=o+1|0;if(o>>>0>=(f[p>>2]|0)>>>0)break;else{m=m+1|0;n=n+1|0}}m=f[x>>2]|0}l=l+12|0}while((l|0)!=(m|0));l=f[G>>2]|0;m=f[w>>2]|0;if((l|0)!=(m|0))do{q=l+8|0;p=f[q>>2]|0;if(p){o=(f[l+4>>2]|0)+(W(p,r)|0)|0;n=0;m=(f[l>>2]|0)+(W(p,i)|0)|0;while(1){b[o>>0]=b[m>>0]|0;n=n+1|0;if(n>>>0>=(f[q>>2]|0)>>>0)break;else{o=o+1|0;m=m+1|0}}m=f[w>>2]|0}l=l+12|0}while((l|0)!=(m|0));s=s+1|0;if((s|0)==(t|0))break;else{k=k+1|0;r=r+1|0}}c=c+t|0;break}case 2:{v=i+80|0;k=f[v>>2]|0;m=f[i+68>>2]|0;t=i+72|0;l=f[t>>2]|0;if((m|0)==(l|0)){i=n;break i}if(!g){i=n;s=m;g=l;do{r=f[s>>2]|0;f[v>>2]=c;if((f[s>>2]|0)>0){q=0;do{i=i+(((q>>>0)%(r>>>0)|0|0)==0&1)|0;g=f[I>>2]|0;l=f[x>>2]|0;if((g|0)!=(l|0))do{p=g+8|0;o=f[p>>2]|0;if(o){n=(f[g+4>>2]|0)+(W(o,c)|0)|0;m=0;l=(f[g>>2]|0)+(W(o,k)|0)|0;while(1){b[n>>0]=b[l>>0]|0;m=m+1|0;if(m>>>0>=(f[p>>2]|0)>>>0)break;else{n=n+1|0;l=l+1|0}}l=f[x>>2]|0}g=g+12|0}while((g|0)!=(l|0));g=f[G>>2]|0;l=f[w>>2]|0;if((g|0)!=(l|0))do{p=g+8|0;o=f[p>>2]|0;if(o){n=(f[g+4>>2]|0)+(W(o,c)|0)|0;m=0;l=(f[g>>2]|0)+(W(o,i)|0)|0;while(1){b[n>>0]=b[l>>0]|0;m=m+1|0;if(m>>>0>=(f[p>>2]|0)>>>0)break;else{n=n+1|0;l=l+1|0}}l=f[w>>2]|0}g=g+12|0}while((g|0)!=(l|0));k=k+1|0;c=c+1|0;q=q+1|0}while((q|0)<(f[s>>2]|0));g=f[t>>2]|0}s=s+4|0}while((s|0)!=(g|0))}else{i=n;s=m;do{f[v>>2]=c;if((f[s>>2]|0)>0){r=0;do{i=i+(((r>>>0)%(g>>>0)|0|0)==0&1)|0;l=f[I>>2]|0;m=f[x>>2]|0;if((l|0)!=(m|0))do{q=l+8|0;p=f[q>>2]|0;if(p){o=(f[l+4>>2]|0)+(W(p,c)|0)|0;n=0;m=(f[l>>2]|0)+(W(p,k)|0)|0;while(1){b[o>>0]=b[m>>0]|0;n=n+1|0;if(n>>>0>=(f[q>>2]|0)>>>0)break;else{o=o+1|0;m=m+1|0}}m=f[x>>2]|0}l=l+12|0}while((l|0)!=(m|0));l=f[G>>2]|0;m=f[w>>2]|0;if((l|0)!=(m|0))do{q=l+8|0;p=f[q>>2]|0;if(p){o=(f[l+4>>2]|0)+(W(p,c)|0)|0;n=0;m=(f[l>>2]|0)+(W(p,i)|0)|0;while(1){b[o>>0]=b[m>>0]|0;n=n+1|0;if(n>>>0>=(f[q>>2]|0)>>>0)break;else{o=o+1|0;m=m+1|0}}m=f[w>>2]|0}l=l+12|0}while((l|0)!=(m|0));k=k+1|0;c=c+1|0;r=r+1|0}while((r|0)<(f[s>>2]|0));l=f[t>>2]|0}s=s+4|0}while((s|0)!=(l|0))}break}case 3:{if(!g)g=sk[f[(f[i>>2]|0)+216>>2]&2047](i)|0;k=f[i+68>>2]|0;t=i+72|0;if((k|0)==(f[t>>2]|0)){i=n;break i}s=0;i=n;r=k;while(1){i=i+(((s>>>0)%(g>>>0)|0|0)==0&1)|0;q=h[r>>0]|0;b[r>>0]=c;k=f[I>>2]|0;l=f[x>>2]|0;if((k|0)!=(l|0))do{p=k+8|0;o=f[p>>2]|0;if(o){n=(f[k+4>>2]|0)+(W(o,c)|0)|0;m=0;l=(f[k>>2]|0)+(W(o,q)|0)|0;while(1){b[n>>0]=b[l>>0]|0;m=m+1|0;if(m>>>0>=(f[p>>2]|0)>>>0)break;else{n=n+1|0;l=l+1|0}}l=f[x>>2]|0}k=k+12|0}while((k|0)!=(l|0));k=f[G>>2]|0;l=f[w>>2]|0;if((k|0)!=(l|0))do{p=k+8|0;o=f[p>>2]|0;if(o){n=(f[k+4>>2]|0)+(W(o,c)|0)|0;m=0;l=(f[k>>2]|0)+(W(o,i)|0)|0;while(1){b[n>>0]=b[l>>0]|0;m=m+1|0;if(m>>>0>=(f[p>>2]|0)>>>0)break;else{n=n+1|0;l=l+1|0}}l=f[w>>2]|0}k=k+12|0}while((k|0)!=(l|0));c=c+1|0;r=r+1|0;if((r|0)==(f[t>>2]|0))break;else s=s+1|0}break}case 4:{if(!g)g=sk[f[(f[i>>2]|0)+216>>2]&2047](i)|0;k=f[i+68>>2]|0;t=i+72|0;if((k|0)==(f[t>>2]|0)){i=n;break i}s=0;i=n;r=k;while(1){i=i+(((s>>>0)%(g>>>0)|0|0)==0&1)|0;q=j[r>>1]|0;d[r>>1]=c;k=f[I>>2]|0;l=f[x>>2]|0;if((k|0)!=(l|0))do{p=k+8|0;o=f[p>>2]|0;if(o){n=(f[k+4>>2]|0)+(W(o,c)|0)|0;m=0;l=(f[k>>2]|0)+(W(o,q)|0)|0;while(1){b[n>>0]=b[l>>0]|0;m=m+1|0;if(m>>>0>=(f[p>>2]|0)>>>0)break;else{n=n+1|0;l=l+1|0}}l=f[x>>2]|0}k=k+12|0}while((k|0)!=(l|0));k=f[G>>2]|0;l=f[w>>2]|0;if((k|0)!=(l|0))do{p=k+8|0;o=f[p>>2]|0;if(o){n=(f[k+4>>2]|0)+(W(o,c)|0)|0;m=0;l=(f[k>>2]|0)+(W(o,i)|0)|0;while(1){b[n>>0]=b[l>>0]|0;m=m+1|0;if(m>>>0>=(f[p>>2]|0)>>>0)break;else{n=n+1|0;l=l+1|0}}l=f[w>>2]|0}k=k+12|0}while((k|0)!=(l|0));c=c+1|0;r=r+2|0;if((r|0)==(f[t>>2]|0))break;else s=s+1|0}break}case 5:{if(!g)g=sk[f[(f[i>>2]|0)+216>>2]&2047](i)|0;k=f[i+68>>2]|0;t=i+72|0;if((k|0)==(f[t>>2]|0)){i=n;break i}s=0;i=n;r=k;while(1){i=i+(((s>>>0)%(g>>>0)|0|0)==0&1)|0;q=f[r>>2]|0;f[r>>2]=c;k=f[I>>2]|0;l=f[x>>2]|0;if((k|0)!=(l|0))do{p=k+8|0;o=f[p>>2]|0;if(o){n=(f[k+4>>2]|0)+(W(o,c)|0)|0;m=0;l=(f[k>>2]|0)+(W(o,q)|0)|0;while(1){b[n>>0]=b[l>>0]|0;m=m+1|0;if(m>>>0>=(f[p>>2]|0)>>>0)break;else{n=n+1|0;l=l+1|0}}l=f[x>>2]|0}k=k+12|0}while((k|0)!=(l|0));k=f[G>>2]|0;l=f[w>>2]|0;if((k|0)!=(l|0))do{o=k+8|0;m=f[o>>2]|0;if(m){n=(f[k+4>>2]|0)+(W(m,c)|0)|0;l=(f[k>>2]|0)+(W(m,i)|0)|0;m=0;while(1){b[n>>0]=b[l>>0]|0;m=m+1|0;if(m>>>0>=(f[o>>2]|0)>>>0)break;else{n=n+1|0;l=l+1|0}}l=f[w>>2]|0}k=k+12|0}while((k|0)!=(l|0));c=c+1|0;r=r+4|0;if((r|0)==(f[t>>2]|0))break;else s=s+1|0}break}default:i=n}while(0);e=e+4|0;if((e|0)==(f[A>>2]|0))break h;else n=i}}while(0);b[H>>0]=0;c=f[G>>2]|0;if(c|0){f[w>>2]=c;NDb(c)}c=f[I>>2]|0;if(c|0){f[x>>2]=c;NDb(c)}GA(K);GA(J);u=L;return}function wA(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=a+4|0;c=f[m>>2]|0;d=f[a>>2]|0;i=c-d>>2;e=i+1|0;g=d;if(e>>>0>1073741823)KEb(a);l=a+8|0;j=(f[l>>2]|0)-d|0;k=j>>1;e=j>>2>>>0<536870911?(k>>>0<e>>>0?e:k):1073741823;do if(e)if(e>>>0>1073741823){m=mb(8)|0;RDb(m,238482);f[m>>2]=144484;qb(m|0,84192,1464)}else{j=LDb(e<<2)|0;break}else j=0;while(0);d=j+(i<<2)|0;k=j+(e<<2)|0;e=f[b>>2]|0;f[d>>2]=e;if(e){g=e+8|0;f[g>>2]=(f[g>>2]|0)+1;g=f[a>>2]|0;c=f[m>>2]|0}h=d+4|0;e=g;if((c|0)==(g|0))b=e;else{b=i+-1-((c+-4-e|0)>>>2)|0;while(1){c=c+-4|0;e=f[c>>2]|0;f[d+-4>>2]=e;if(e|0){i=e+8|0;f[i>>2]=(f[i>>2]|0)+1}if((c|0)==(g|0))break;else d=d+-4|0}d=j+(b<<2)|0;b=f[a>>2]|0;c=f[m>>2]|0}f[a>>2]=d;f[m>>2]=h;f[l>>2]=k;e=b;if((c|0)!=(e|0))do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(l=d+8|0,m=f[l>>2]|0,f[l>>2]=m-1,(m|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(e|0));if(!b)return;NDb(b);return}function xA(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=u;u=u+32|0;n=q;o=f[a>>2]|0;g=o;h=(f[b>>2]|0)-g|0;o=o+(h>>2<<2)|0;p=a+4|0;b=f[p>>2]|0;m=a+8|0;l=f[m>>2]|0;d=b;e=l;if(b>>>0<l>>>0){if((o|0)==(b|0)){b=f[c>>2]|0;f[o>>2]=b;if(!b)b=o;else{b=b+8|0;f[b>>2]=(f[b>>2]|0)+1;b=f[p>>2]|0}f[p>>2]=b+4;p=o;u=q;return p|0}i=d-(o+4)|0;g=o+(i>>2<<2)|0;if(g>>>0<b>>>0){h=g;d=b;do{e=f[h>>2]|0;f[d>>2]=e;if(e){d=e+8|0;f[d>>2]=(f[d>>2]|0)+1;d=f[p>>2]|0}h=h+4|0;d=d+4|0;f[p>>2]=d}while(h>>>0<b>>>0)}if(i|0)do{g=g+-4|0;b=b+-4|0;d=f[b>>2]|0;e=f[g>>2]|0;if((d|0)!=(e|0)){f[b>>2]=e;if(e|0){p=e+8|0;f[p>>2]=(f[p>>2]|0)+1}if(d|0?(n=d+8|0,p=f[n>>2]|0,f[n>>2]=p-1,(p|0)==1):0)X4(d,1,1)}}while((g|0)!=(o|0));d=f[o>>2]|0;b=f[c>>2]|0;if((d|0)==(b|0)){p=o;u=q;return p|0}f[o>>2]=b;if(b|0){p=b+8|0;f[p>>2]=(f[p>>2]|0)+1}if(!d){p=o;u=q;return p|0}n=d+8|0;p=f[n>>2]|0;f[n>>2]=p-1;if((p|0)!=1){p=o;u=q;return p|0}X4(d,1,1);p=o;u=q;return p|0}else{b=(d-g>>2)+1|0;if(b>>>0>1073741823)KEb(a);k=e-g|0;e=k>>1;e=k>>2>>>0<536870911?(e>>>0<b>>>0?b:e):1073741823;b=h>>2;k=n+12|0;f[k>>2]=0;f[n+16>>2]=a+8;do if(e)if(e>>>0>1073741823){q=mb(8)|0;RDb(q,238482);f[q>>2]=144484;qb(q|0,84192,1464)}else{d=LDb(e<<2)|0;break}else d=0;while(0);f[n>>2]=d;g=d+(b<<2)|0;l=n+8|0;f[l>>2]=g;j=n+4|0;f[j>>2]=g;f[k>>2]=d+(e<<2);yA(n,c);c=f[j>>2]|0;g=f[a>>2]|0;if((g|0)==(o|0))b=c;else{e=o;b=c;do{e=e+-4|0;d=f[e>>2]|0;f[b+-4>>2]=d;if(d|0){i=d+8|0;f[i>>2]=(f[i>>2]|0)+1}b=(f[j>>2]|0)+-4|0;f[j>>2]=b}while((e|0)!=(g|0))}d=f[p>>2]|0;if((d|0)==(o|0)){h=j;i=l;e=f[l>>2]|0}else{b=o;g=f[l>>2]|0;do{e=f[b>>2]|0;f[g>>2]=e;if(e|0){o=e+8|0;f[o>>2]=(f[o>>2]|0)+1}b=b+4|0;g=(f[l>>2]|0)+4|0;f[l>>2]=g}while((b|0)!=(d|0));h=j;i=l;b=f[j>>2]|0;e=g;d=f[p>>2]|0}o=f[a>>2]|0;f[a>>2]=b;f[h>>2]=o;f[p>>2]=e;f[i>>2]=d;b=f[m>>2]|0;f[m>>2]=f[k>>2];f[k>>2]=b;f[n>>2]=o;b=o;if((d|0)!=(b|0)){do{d=d+-4|0;f[l>>2]=d;e=f[d>>2]|0;if(e|0?(o=e+8|0,p=f[o>>2]|0,f[o>>2]=p-1,(p|0)==1):0)X4(e,1,1);f[d>>2]=0;d=f[l>>2]|0}while((d|0)!=(b|0));b=f[n>>2]|0}if(b|0)NDb(b);p=c;u=q;return p|0}return 0}function yA(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=a+8|0;m=f[o>>2]|0;l=a+12|0;n=f[l>>2]|0;e=n;do if((m|0)==(n|0)){n=a+4|0;g=f[n>>2]|0;c=f[a>>2]|0;d=c;if(g>>>0>c>>>0){h=((g-d>>2)+1|0)/-2|0;d=g+(h<<2)|0;if((g|0)==(m|0))c=m;else{do{c=f[d>>2]|0;e=f[g>>2]|0;if((c|0)!=(e|0)){f[d>>2]=e;if(e|0){l=e+8|0;f[l>>2]=(f[l>>2]|0)+1}if(c|0?(a=c+8|0,l=f[a>>2]|0,f[a>>2]=l-1,(l|0)==1):0)X4(c,1,1)}g=g+4|0;d=d+4|0}while((g|0)!=(m|0));c=f[n>>2]|0}f[o>>2]=d;f[n>>2]=c+(h<<2);break}h=e-d|0;h=(h|0)==0?1:h>>1;d=h>>>2;do if(h)if(h>>>0>1073741823){o=mb(8)|0;RDb(o,238482);f[o>>2]=144484;qb(o|0,84192,1464)}else{i=LDb(h<<2)|0;break}else i=0;while(0);k=i;e=i+(d<<2)|0;j=e;h=i+(h<<2)|0;if((g|0)!=(m|0)){c=j;while(1){d=f[g>>2]|0;f[e>>2]=d;if(!d)c=e;else{i=d+8|0;f[i>>2]=(f[i>>2]|0)+1}e=c+4|0;g=g+4|0;if((g|0)==(m|0))break;else c=e}c=f[a>>2]|0;g=f[n>>2]|0;d=f[o>>2]|0;f[a>>2]=k;f[n>>2]=j;f[o>>2]=e;f[l>>2]=h;if((d|0)!=(g|0))do{d=d+-4|0;e=f[d>>2]|0;if(e|0?(m=e+8|0,n=f[m>>2]|0,f[m>>2]=n-1,(n|0)==1):0)X4(e,1,1);f[d>>2]=0}while((d|0)!=(g|0))}else{f[a>>2]=k;f[n>>2]=j;f[o>>2]=j;f[l>>2]=h}if(c|0)NDb(c)}while(0);d=f[o>>2]|0;c=f[b>>2]|0;f[d>>2]=c;if(!c){b=d;b=b+4|0;f[o>>2]=b;return}b=c+8|0;f[b>>2]=(f[b>>2]|0)+1;b=f[o>>2]|0;b=b+4|0;f[o>>2]=b;return}function zA(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;k=HA(a)|0;l=(k|0)==0;if(!l){j=k+8|0;f[j>>2]=(f[j>>2]|0)+1}f[k+64>>2]=f[a+64>>2];b[k+68>>0]=b[a+68>>0]|0;b[k+69>>0]=b[a+69>>0]|0;h=f[(f[k>>2]|0)+224>>2]|0;j=sk[f[(f[c>>2]|0)+216>>2]&2047](c)|0;Vk[h&1023](k,j);j=sk[f[(f[a>>2]|0)+208>>2]&2047](a)|0;h=sk[f[(f[a>>2]|0)+164>>2]&2047](a)|0;i=sk[f[(f[k>>2]|0)+164>>2]&2047](k)|0;a:do if(!j){a=0;while(1){if(a>>>0>=(sk[f[(f[c>>2]|0)+216>>2]&2047](c)|0)>>>0)break a;wk[f[(f[c>>2]|0)+232>>2]&1023](c,a)|0;a=a+1|0}}else{e=0;while(1){if(e>>>0>=(sk[f[(f[c>>2]|0)+216>>2]&2047](c)|0)>>>0)break a;a=i+(W(e,j)|0)|0;d=h+(W(wk[f[(f[c>>2]|0)+232>>2]&1023](c,e)|0,j)|0)|0;g=0;while(1){b[a>>0]=b[d>>0]|0;g=g+1|0;if((g|0)==(j|0))break;else{a=a+1|0;d=d+1|0}}e=e+1|0}}while(0);if(l)return k|0;ECa(k)|0;return k|0}function AA(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;if(!b){c=a+232|0;d=f[c>>2]|0;if(d|0?(f[c>>2]=0,c=d+8|0,b=f[c>>2]|0,f[c>>2]=b-1,(b|0)==1):0)X4(d,1,1);Nk[f[(f[a>>2]|0)+240>>2]&2047](a);oA(a);return}c=b+64|0;if((f[c>>2]|0)==-1)f[c>>2]=4;c=a+232|0;d=f[c>>2]|0;if(((d|0)!=(b|0)?(f[c>>2]=b,c=b+8|0,f[c>>2]=(f[c>>2]|0)+1,d|0):0)?(e=d+8|0,c=f[e>>2]|0,f[e>>2]=c-1,(c|0)==1):0)X4(d,1,1);Nk[f[(f[a>>2]|0)+240>>2]&2047](a);oA(a);lEa(a+200|0);BA(a,b);return}function BA(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;switch(f[b+64>>2]|0){case -1:case 4:break;default:return}d=b+40|0;c=f[d>>2]|0;if(c|0?bFb(c,58480,58512,0)|0:0)return;c=LA(a)|0;a=f[d>>2]|0;if((a|0)==(c|0))return;if(!a)a=0;else{Kx(a,f[b+36>>2]|0);a=f[d>>2]|0}if((a|0)!=(c|0)){f[d>>2]=c;if(c|0){c=c+8|0;f[c>>2]=(f[c>>2]|0)+1}if(a|0?(e=a+8|0,c=f[e>>2]|0,f[e>>2]=c-1,(c|0)==1):0)X4(a,1,1)}a=f[d>>2]|0;if(!a)a=0;else a=Lx(a,b)|0;f[b+36>>2]=a;return}function CA(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0;j=a+252|0;k=a+256|0;e=f[k>>2]|0;h=f[j>>2]|0;i=e-h>>2;do if(i>>>0<=b>>>0){g=b+1|0;if(g>>>0>i>>>0){KA(j,g-i|0);break}if(g>>>0<i>>>0){h=h+(g<<2)|0;if((h|0)!=(e|0))do{e=e+-4|0;g=f[e>>2]|0;if(g|0?(l=g+8|0,i=f[l>>2]|0,f[l>>2]=i-1,(i|0)==1):0)X4(g,1,1);f[e>>2]=0}while((e|0)!=(h|0));f[k>>2]=h}}while(0);if(!c){e=(f[j>>2]|0)+(b<<2)|0;g=f[e>>2]|0;if(g|0?(f[e>>2]=0,k=g+8|0,l=f[k>>2]|0,f[k>>2]=l-1,(l|0)==1):0)X4(g,1,1);Nk[f[(f[a>>2]|0)+240>>2]&2047](a);return}f[c+64>>2]=(d|0)==-1?4:d;e=(f[j>>2]|0)+(b<<2)|0;g=f[e>>2]|0;if(((g|0)!=(c|0)?(f[e>>2]=c,l=c+8|0,f[l>>2]=(f[l>>2]|0)+1,g|0):0)?(d=g+8|0,l=f[d>>2]|0,f[d>>2]=l-1,(l|0)==1):0)X4(g,1,1);Nk[f[(f[a>>2]|0)+240>>2]&2047](a);qEa(a+200|0,(f[k>>2]|0)-(f[j>>2]|0)>>2);BA(a,c);return}function DA(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0;j=a+264|0;k=a+268|0;e=f[k>>2]|0;h=f[j>>2]|0;i=e-h>>2;do if(i>>>0<=b>>>0){g=b+1|0;if(g>>>0>i>>>0){KA(j,g-i|0);break}if(g>>>0<i>>>0){h=h+(g<<2)|0;if((h|0)!=(e|0))do{e=e+-4|0;g=f[e>>2]|0;if(g|0?(l=g+8|0,i=f[l>>2]|0,f[l>>2]=i-1,(i|0)==1):0)X4(g,1,1);f[e>>2]=0}while((e|0)!=(h|0));f[k>>2]=h}}while(0);h=(c|0)!=0;if(h&(d|0)!=-1)f[c+64>>2]=d;e=(f[j>>2]|0)+(b<<2)|0;g=f[e>>2]|0;if((g|0)!=(c|0)){f[e>>2]=c;if(c|0){l=c+8|0;f[l>>2]=(f[l>>2]|0)+1}if(g|0?(d=g+8|0,l=f[d>>2]|0,f[d>>2]=l-1,(l|0)==1):0)X4(g,1,1)}Nk[f[(f[a>>2]|0)+240>>2]&2047](a);if(!h)return;rEa(a+200|0,(f[k>>2]|0)-(f[j>>2]|0)>>2);BA(a,c);return}function EA(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0;l=u;u=u+16|0;j=l;k=HA(f[c>>2]|0)|0;f[k+64>>2]=4;i=f[c>>2]|0;b[k+68>>0]=b[i+68>>0]|0;b[k+69>>0]=b[i+69>>0]|0;Vk[f[(f[k>>2]|0)+224>>2]&1023](k,d);d=f[c>>2]|0;f[j>>2]=d;if(d|0){i=d+8|0;f[i>>2]=(f[i>>2]|0)+1}h=j+4|0;f[h>>2]=k;i=(k|0)==0;if(!i){g=k+8|0;f[g>>2]=(f[g>>2]|0)+1}e=a+4|0;g=f[e>>2]|0;if(g>>>0<(f[a+8>>2]|0)>>>0){d=f[j>>2]|0;f[g>>2]=d;if(d|0){a=d+8|0;f[a>>2]=(f[a>>2]|0)+1}d=f[h>>2]|0;f[g+4>>2]=d;if(d|0){g=d+8|0;f[g>>2]=(f[g>>2]|0)+1}f[e>>2]=(f[e>>2]|0)+8}else IA(a,j);d=f[h>>2]|0;if(d|0?(e=d+8|0,g=f[e>>2]|0,f[e>>2]=g-1,(g|0)==1):0)X4(d,1,1);f[h>>2]=0;d=f[j>>2]|0;if(d|0?(h=d+8|0,j=f[h>>2]|0,f[h>>2]=j-1,(j|0)==1):0)X4(d,1,1);d=f[c>>2]|0;if((d|0)==(k|0)){u=l;return}f[c>>2]=k;if(!i){k=k+8|0;f[k>>2]=(f[k>>2]|0)+1}if(!d){u=l;return}c=d+8|0;k=f[c>>2]|0;f[c>>2]=k-1;if((k|0)!=1){u=l;return}X4(d,1,1);u=l;return}function FA(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=a+4|0;i=f[m>>2]|0;c=f[a>>2]|0;h=(i-c|0)/12|0;d=h+1|0;k=c;if(d>>>0>357913941)KEb(a);l=a+8|0;j=((f[l>>2]|0)-c|0)/12|0;e=j<<1;e=j>>>0<178956970?(e>>>0<d>>>0?d:e):357913941;do if(e)if(e>>>0>357913941){m=mb(8)|0;RDb(m,238482);f[m>>2]=144484;qb(m|0,84192,1464)}else{g=LDb(e*12|0)|0;break}else g=0;while(0);d=g+(h*12|0)|0;j=g+(e*12|0)|0;f[d>>2]=f[b>>2];f[g+(h*12|0)+4>>2]=f[b+4>>2];f[g+(h*12|0)+8>>2]=f[b+8>>2];e=d+12|0;if((i|0)!=(k|0)){c=i;do{i=d;d=d+-12|0;h=c;c=c+-12|0;f[d>>2]=f[c>>2];f[i+-8>>2]=f[h+-8>>2];f[i+-4>>2]=f[h+-4>>2]}while((c|0)!=(k|0));c=f[a>>2]|0}f[a>>2]=d;f[m>>2]=e;f[l>>2]=j;if(!c)return;NDb(c);return}function GA(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;e=f[a>>2]|0;if(!e)return;g=a+4|0;b=f[g>>2]|0;if((b|0)==(e|0))b=e;else{do{c=b+-4|0;b=b+-8|0;d=f[c>>2]|0;if(d|0?(i=d+8|0,h=f[i>>2]|0,f[i>>2]=h-1,(h|0)==1):0)X4(d,1,1);f[c>>2]=0;c=f[b>>2]|0;if(c|0?(h=c+8|0,i=f[h>>2]|0,f[h>>2]=i-1,(i|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(e|0));b=f[a>>2]|0}f[g>>2]=e;NDb(b);return}function HA(a){a=a|0;var c=0,d=0,e=0,g=0,h=0;g=u;u=u+16|0;d=g;if(!a){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=1){e=0;u=g;return e|0}e=Nv(Mv(2)|0,212806,78)|0;Ktb(d,e+(f[(f[e>>2]|0)+-12>>2]|0)|0);c=Bvb(d,295164)|0;c=wk[f[(f[c>>2]|0)+28>>2]&1023](c,10)|0;Cvb(d);rub(e,c)|0;Rtb(e)|0;e=0;u=g;return e|0}a=sk[f[(f[a>>2]|0)+12>>2]&2047](a)|0;c=(a|0)==0;if(!c?(e=a+8|0,f[e>>2]=(f[e>>2]|0)+1,e=bFb(a,58336,58600,0)|0,e|0):0){ECa(a)|0;u=g;return e|0}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>1){e=Nv(Mv(2)|0,212727,78)|0;Ktb(d,e+(f[(f[e>>2]|0)+-12>>2]|0)|0);h=Bvb(d,295164)|0;h=wk[f[(f[h>>2]|0)+28>>2]&1023](h,10)|0;Cvb(d);rub(e,h)|0;Rtb(e)|0}if(c){h=0;u=g;return h|0}e=a+8|0;h=f[e>>2]|0;f[e>>2]=h-1;if((h|0)!=1){h=0;u=g;return h|0}X4(a,1,1);h=0;u=g;return h|0}function IA(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=u;u=u+32|0;l=n;m=a+4|0;c=f[a>>2]|0;e=(f[m>>2]|0)-c>>3;d=e+1|0;if(d>>>0>536870911)KEb(a);k=a+8|0;h=(f[k>>2]|0)-c|0;c=h>>2;c=h>>3>>>0<268435455?(c>>>0<d>>>0?d:c):536870911;h=l+12|0;f[h>>2]=0;f[l+16>>2]=a+8;do if(c)if(c>>>0>536870911){n=mb(8)|0;RDb(n,238482);f[n>>2]=144484;qb(n|0,84192,1464)}else{d=LDb(c<<3)|0;break}else d=0;while(0);f[l>>2]=d;g=d+(e<<3)|0;i=l+8|0;f[i>>2]=g;j=l+4|0;f[j>>2]=g;f[h>>2]=d+(c<<3);c=f[b>>2]|0;f[g>>2]=c;if(c|0){g=c+8|0;f[g>>2]=(f[g>>2]|0)+1}c=f[b+4>>2]|0;f[d+(e<<3)+4>>2]=c;if(c|0){g=c+8|0;f[g>>2]=(f[g>>2]|0)+1}c=(f[i>>2]|0)+8|0;f[i>>2]=c;g=f[a>>2]|0;d=f[m>>2]|0;if((d|0)==(g|0)){b=j;o=f[j>>2]|0;j=g;e=c;g=d;f[a>>2]=o;f[b>>2]=j;f[m>>2]=e;f[i>>2]=g;m=f[k>>2]|0;a=f[h>>2]|0;f[k>>2]=a;f[h>>2]=m;f[l>>2]=j;JA(l);u=n;return}e=f[j>>2]|0;do{c=d;d=d+-8|0;b=f[d>>2]|0;f[e+-8>>2]=b;if(b|0){o=b+8|0;f[o>>2]=(f[o>>2]|0)+1}c=f[c+-4>>2]|0;f[e+-4>>2]=c;if(c|0){o=c+8|0;f[o>>2]=(f[o>>2]|0)+1}e=(f[j>>2]|0)+-8|0;f[j>>2]=e}while((d|0)!=(g|0));b=j;j=i;o=f[a>>2]|0;g=f[i>>2]|0;i=f[m>>2]|0;f[a>>2]=e;f[b>>2]=o;f[m>>2]=g;f[j>>2]=i;m=f[k>>2]|0;a=f[h>>2]|0;f[k>>2]=a;f[h>>2]=m;f[l>>2]=o;JA(l);u=n;return}function JA(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;e=f[a+4>>2]|0;g=a+8|0;b=f[g>>2]|0;if((b|0)!=(e|0))do{d=b+-8|0;f[g>>2]=d;b=b+-4|0;c=f[b>>2]|0;if(c|0?(i=c+8|0,h=f[i>>2]|0,f[i>>2]=h-1,(h|0)==1):0)X4(c,1,1);f[b>>2]=0;b=f[d>>2]|0;if(b|0?(h=b+8|0,i=f[h>>2]|0,f[h>>2]=i-1,(i|0)==1):0)X4(b,1,1);f[d>>2]=0;b=f[g>>2]|0}while((b|0)!=(e|0));b=f[a>>2]|0;if(!b)return;NDb(b);return}function KA(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=a+8|0;e=f[m>>2]|0;n=a+4|0;d=f[n>>2]|0;c=d;if(e-d>>2>>>0>=b>>>0){iGb(d|0,0,b<<2|0)|0;f[n>>2]=c+(b<<2);return}j=f[a>>2]|0;h=d-j>>2;d=h+b|0;g=j;if(d>>>0>1073741823)KEb(a);l=e-j|0;e=l>>1;e=l>>2>>>0<536870911?(e>>>0<d>>>0?d:e):1073741823;do if(e)if(e>>>0>1073741823){n=mb(8)|0;RDb(n,238482);f[n>>2]=144484;qb(n|0,84192,1464)}else{i=LDb(e<<2)|0;break}else i=0;while(0);d=i+(h<<2)|0;l=i+(e<<2)|0;iGb(d|0,0,b<<2|0)|0;k=d+(b<<2)|0;if((c|0)==(g|0))e=j;else{b=h+-1-((c+-4+(0-j)|0)>>>2)|0;while(1){c=c+-4|0;e=f[c>>2]|0;f[d+-4>>2]=e;if(e|0){j=e+8|0;f[j>>2]=(f[j>>2]|0)+1}if((c|0)==(g|0))break;else d=d+-4|0}e=f[a>>2]|0;d=i+(b<<2)|0;g=e;c=f[n>>2]|0}f[a>>2]=d;f[n>>2]=k;f[m>>2]=l;if((c|0)!=(g|0))do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(m=d+8|0,n=f[m>>2]|0,f[m>>2]=n-1,(n|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(g|0));if(!e)return;NDb(e);return}function LA(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;k=u;u=u+16|0;i=k;f[i>>2]=0;j=i+4|0;f[j>>2]=0;f[i+8>>2]=0;MA(a,i)|0;g=f[i>>2]|0;c=f[j>>2]|0;a:do if((g|0)==(c|0))h=6;else{a=g;while(1){d=f[(f[a>>2]|0)+40>>2]|0;if(d|0?(e=bFb(d,58480,58512,0)|0,e|0):0){d=g;break a}a=a+4|0;if((a|0)==(c|0)){h=6;break}}}while(0);if((h|0)==6){e=LDb(72)|0;BCa(e);d=e+12|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;f[e+24>>2]=2;f[e+28>>2]=0;f[e>>2]=88712;d=e+32|0;f[e+48>>2]=0;f[e+52>>2]=0;f[e+56>>2]=0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;b[d+12>>0]=0;Vx(e+60|0);f[e>>2]=89080;f[d>>2]=34962;f[e+36>>2]=35044;d=f[i>>2]|0}if(!d){u=k;return e|0}a=f[j>>2]|0;if((a|0)==(d|0))a=d;else{do{a=a+-4|0;c=f[a>>2]|0;if(c|0?(g=c+8|0,h=f[g>>2]|0,f[g>>2]=h-1,(h|0)==1):0)X4(c,1,1);f[a>>2]=0}while((a|0)!=(d|0));a=f[i>>2]|0}f[j>>2]=d;NDb(a);u=k;return e|0}function MA(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=u;u=u+16|0;k=n;l=b+4|0;m=(f[l>>2]|0)-(f[b>>2]|0)|0;c=f[a+232>>2]|0;if(c|0){f[k>>2]=c;c=c+8|0;f[c>>2]=(f[c>>2]|0)+1;c=f[l>>2]|0;if(c>>>0<(f[b+8>>2]|0)>>>0){d=f[k>>2]|0;f[c>>2]=d;if(d){c=d+8|0;f[c>>2]=(f[c>>2]|0)+1;c=f[l>>2]|0}f[l>>2]=c+4}else NA(b,k);c=f[k>>2]|0;if(c|0?(i=c+8|0,j=f[i>>2]|0,f[i>>2]=j-1,(j|0)==1):0)X4(c,1,1)}c=f[a+236>>2]|0;if(c|0){f[k>>2]=c;c=c+8|0;f[c>>2]=(f[c>>2]|0)+1;c=f[l>>2]|0;if(c>>>0<(f[b+8>>2]|0)>>>0){d=f[k>>2]|0;f[c>>2]=d;if(d){c=d+8|0;f[c>>2]=(f[c>>2]|0)+1;c=f[l>>2]|0}f[l>>2]=c+4}else NA(b,k);c=f[k>>2]|0;if(c|0?(i=c+8|0,j=f[i>>2]|0,f[i>>2]=j-1,(j|0)==1):0)X4(c,1,1)}c=f[a+240>>2]|0;if(c|0){f[k>>2]=c;c=c+8|0;f[c>>2]=(f[c>>2]|0)+1;c=f[l>>2]|0;if(c>>>0<(f[b+8>>2]|0)>>>0){d=f[k>>2]|0;f[c>>2]=d;if(d){c=d+8|0;f[c>>2]=(f[c>>2]|0)+1;c=f[l>>2]|0}f[l>>2]=c+4}else NA(b,k);c=f[k>>2]|0;if(c|0?(i=c+8|0,j=f[i>>2]|0,f[i>>2]=j-1,(j|0)==1):0)X4(c,1,1)}c=f[a+244>>2]|0;if(c|0){f[k>>2]=c;c=c+8|0;f[c>>2]=(f[c>>2]|0)+1;c=f[l>>2]|0;if(c>>>0<(f[b+8>>2]|0)>>>0){d=f[k>>2]|0;f[c>>2]=d;if(d){c=d+8|0;f[c>>2]=(f[c>>2]|0)+1;c=f[l>>2]|0}f[l>>2]=c+4}else NA(b,k);c=f[k>>2]|0;if(c|0?(i=c+8|0,j=f[i>>2]|0,f[i>>2]=j-1,(j|0)==1):0)X4(c,1,1)}c=f[a+248>>2]|0;if(c|0){f[k>>2]=c;c=c+8|0;f[c>>2]=(f[c>>2]|0)+1;c=f[l>>2]|0;if(c>>>0<(f[b+8>>2]|0)>>>0){d=f[k>>2]|0;f[c>>2]=d;if(d){c=d+8|0;f[c>>2]=(f[c>>2]|0)+1;c=f[l>>2]|0}f[l>>2]=c+4}else NA(b,k);c=f[k>>2]|0;if(c|0?(i=c+8|0,j=f[i>>2]|0,f[i>>2]=j-1,(j|0)==1):0)X4(c,1,1)}h=a+252|0;i=a+256|0;d=f[i>>2]|0;c=f[h>>2]|0;if((d|0)!=(c|0)){j=b+8|0;g=0;do{e=f[c+(g<<2)>>2]|0;if(e){f[k>>2]=e;c=e+8|0;f[c>>2]=(f[c>>2]|0)+1;c=f[l>>2]|0;if(c>>>0<(f[j>>2]|0)>>>0){d=f[k>>2]|0;f[c>>2]=d;if(d){c=d+8|0;f[c>>2]=(f[c>>2]|0)+1;c=f[l>>2]|0}f[l>>2]=c+4}else NA(b,k);c=f[k>>2]|0;if(c|0?(d=c+8|0,e=f[d>>2]|0,f[d>>2]=e-1,(e|0)==1):0)X4(c,1,1);c=f[h>>2]|0;d=f[i>>2]|0}g=g+1|0}while(g>>>0<d-c>>2>>>0)}j=a+264|0;h=a+268|0;d=f[h>>2]|0;c=f[j>>2]|0;if((d|0)==(c|0)){k=f[l>>2]|0;l=f[b>>2]|0;l=k-l|0;m=(l|0)!=(m|0);u=n;return m|0}i=b+8|0;g=0;do{e=f[c+(g<<2)>>2]|0;if(e){f[k>>2]=e;c=e+8|0;f[c>>2]=(f[c>>2]|0)+1;c=f[l>>2]|0;if(c>>>0<(f[i>>2]|0)>>>0){d=f[k>>2]|0;f[c>>2]=d;if(d){c=d+8|0;f[c>>2]=(f[c>>2]|0)+1;c=f[l>>2]|0}f[l>>2]=c+4}else NA(b,k);c=f[k>>2]|0;if(c|0?(e=c+8|0,a=f[e>>2]|0,f[e>>2]=a-1,(a|0)==1):0)X4(c,1,1);c=f[j>>2]|0;d=f[h>>2]|0}g=g+1|0}while(g>>>0<d-c>>2>>>0);k=f[l>>2]|0;l=f[b>>2]|0;l=k-l|0;m=(l|0)!=(m|0);u=n;return m|0}function NA(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=a+4|0;c=f[m>>2]|0;d=f[a>>2]|0;i=c-d>>2;e=i+1|0;g=d;if(e>>>0>1073741823)KEb(a);l=a+8|0;j=(f[l>>2]|0)-d|0;k=j>>1;e=j>>2>>>0<536870911?(k>>>0<e>>>0?e:k):1073741823;do if(e)if(e>>>0>1073741823){m=mb(8)|0;RDb(m,238482);f[m>>2]=144484;qb(m|0,84192,1464)}else{j=LDb(e<<2)|0;break}else j=0;while(0);d=j+(i<<2)|0;k=j+(e<<2)|0;e=f[b>>2]|0;f[d>>2]=e;if(e){g=e+8|0;f[g>>2]=(f[g>>2]|0)+1;g=f[a>>2]|0;c=f[m>>2]|0}h=d+4|0;e=g;if((c|0)==(g|0))b=e;else{b=i+-1-((c+-4-e|0)>>>2)|0;while(1){c=c+-4|0;e=f[c>>2]|0;f[d+-4>>2]=e;if(e|0){i=e+8|0;f[i>>2]=(f[i>>2]|0)+1}if((c|0)==(g|0))break;else d=d+-4|0}d=j+(b<<2)|0;b=f[a>>2]|0;c=f[m>>2]|0}f[a>>2]=d;f[m>>2]=h;f[l>>2]=k;e=b;if((c|0)!=(e|0))do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(l=d+8|0,m=f[l>>2]|0,f[l>>2]=m-1,(m|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(e|0));if(!b)return;NDb(b);return}function OA(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;i=a+4|0;j=f[a>>2]|0;k=(f[i>>2]|0)-j|0;g=k>>2;c=g+1|0;if(c>>>0>1073741823)KEb(a);l=a+8|0;e=(f[l>>2]|0)-j|0;h=e>>1;h=e>>2>>>0<536870911?(h>>>0<c>>>0?c:h):1073741823;do if(h)if(h>>>0>1073741823){l=mb(8)|0;RDb(l,238482);f[l>>2]=144484;qb(l|0,84192,1464)}else{e=LDb(h<<2)|0;d=e;break}else{d=0;e=0}while(0);c=d+(g<<2)|0;f[c>>2]=f[b>>2];if((k|0)>0)gGb(e|0,j|0,k|0)|0;f[a>>2]=d;f[i>>2]=c+4;f[l>>2]=d+(h<<2);if(!j)return;NDb(j);return}function PA(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;m=f[a>>2]|0;e=m;k=(f[b>>2]|0)-e|0;o=m+(k>>2<<2)|0;p=a+4|0;h=f[p>>2]|0;n=a+8|0;l=f[n>>2]|0;b=h;d=l;if(h>>>0<l>>>0){if((o|0)==(h|0)){f[o>>2]=f[c>>2];f[p>>2]=(f[p>>2]|0)+4;p=o;return p|0}e=b-(o+4)|0;g=e>>2;b=o+(g<<2)|0;if(b>>>0<h>>>0){d=h;do{f[d>>2]=f[b>>2];b=b+4|0;d=(f[p>>2]|0)+4|0;f[p>>2]=d}while(b>>>0<h>>>0)}if(e|0)hGb(h+(0-g<<2)|0,o|0,e|0)|0;if(o>>>0<=c>>>0)c=(f[p>>2]|0)>>>0>c>>>0?c+4|0:c;f[o>>2]=f[c>>2];p=o;return p|0}b=(b-e>>2)+1|0;if(b>>>0>1073741823)KEb(a);l=d-e|0;d=l>>1;d=l>>2>>>0<536870911?(d>>>0<b>>>0?b:d):1073741823;l=o;j=k>>2;b=(d|0)==0;do if(!b)if(d>>>0>1073741823){p=mb(8)|0;RDb(p,238482);f[p>>2]=144484;qb(p|0,84192,1464)}else{i=LDb(d<<2)|0;h=i;break}else{h=0;i=0}while(0);g=h+(j<<2)|0;e=h+(d<<2)|0;do if((j|0)==(d|0)){if((k|0)>0){b=g+(((d+1|0)/-2|0)<<2)|0;h=k;d=j;j=b;i=e;e=m;break}d=b?1:d<<2>>1;b=d>>>2;do if(d)if(d>>>0>1073741823){p=mb(8)|0;RDb(p,238482);f[p>>2]=144484;qb(p|0,84192,1464)}else{e=LDb(d<<2)|0;break}else e=0;while(0);g=e+(b<<2)|0;b=e+(d<<2)|0;if(!h){h=k;d=j;j=g;i=b;b=g;e=m}else{NDb(i);e=f[a>>2]|0;d=l-e|0;h=d;d=d>>2;j=g;i=b;b=g}}else{h=k;d=j;j=g;i=e;b=g;e=m}while(0);f[b>>2]=f[c>>2];c=j+4|0;d=j+(0-d<<2)|0;if((h|0)>0)gGb(d|0,e|0,h|0)|0;b=(f[p>>2]|0)-l|0;if((b|0)>0){gGb(c|0,o|0,b|0)|0;c=c+(b>>>2<<2)|0}b=f[a>>2]|0;f[a>>2]=d;f[p>>2]=c;f[n>>2]=i;if(!b){p=j;return p|0}NDb(b);p=j;return p|0}function QA(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=u;u=u+16|0;k=m+4|0;l=m;ODa(a,c,d);e=a+144|0;f[e>>2]=90104;g=a+172|0;f[g>>2]=0;f[a+148>>2]=f[c+148>>2];f[a+152>>2]=f[c+152>>2];f[a+156>>2]=f[c+156>>2];f[a+160>>2]=f[c+160>>2];f[a+164>>2]=f[c+164>>2];f[a+168>>2]=f[c+168>>2];d=f[c+172>>2]|0;if(d|0){f[g>>2]=d;j=d+8|0;f[j>>2]=(f[j>>2]|0)+1}p[a+176>>3]=+p[c+176>>3];b[a+184>>0]=b[c+184>>0]|0;b[a+185>>0]=b[c+185>>0]|0;f[a+188>>2]=f[c+188>>2];f[a+192>>2]=f[c+192>>2];f[a+196>>2]=f[c+196>>2];f[a+200>>2]=f[c+200>>2];f[a+204>>2]=f[c+204>>2];f[a>>2]=89768;f[e>>2]=90076;yGa(a+208|0,0);f[a+220>>2]=f[c+220>>2];f[a+224>>2]=0;b[a+228>>0]=b[c+228>>0]|0;d=f[c+232>>2]|0;f[a+232>>2]=d;if(d|0){j=d+8|0;f[j>>2]=(f[j>>2]|0)+1}f[a+236>>2]=f[c+236>>2];d=a+240|0;j=c+240|0;f[d>>2]=f[j>>2];f[d+4>>2]=f[j+4>>2];f[d+8>>2]=f[j+8>>2];f[d+12>>2]=f[j+12>>2];d=a+256|0;j=c+256|0;f[d>>2]=f[j>>2];f[d+4>>2]=f[j+4>>2];f[d+8>>2]=f[j+8>>2];f[d+12>>2]=f[j+12>>2];p[a+272>>3]=+p[c+272>>3];f[a+280>>2]=f[c+280>>2];d=f[c+284>>2]|0;f[a+284>>2]=d;if(d|0){j=d+8|0;f[j>>2]=(f[j>>2]|0)+1}d=f[c+288>>2]|0;f[a+288>>2]=d;if(d|0){j=d+8|0;f[j>>2]=(f[j>>2]|0)+1}f[a+292>>2]=f[c+292>>2];f[a+296>>2]=f[c+296>>2];p[a+304>>3]=+p[c+304>>3];p[a+312>>3]=+p[c+312>>3];p[a+320>>3]=+p[c+320>>3];p[a+328>>3]=+p[c+328>>3];p[a+336>>3]=+p[c+336>>3];p[a+344>>3]=+p[c+344>>3];p[a+352>>3]=+p[c+352>>3];p[a+360>>3]=+p[c+360>>3];p[a+368>>3]=+p[c+368>>3];p[a+376>>3]=+p[c+376>>3];p[a+384>>3]=+p[c+384>>3];p[a+392>>3]=+p[c+392>>3];p[a+400>>3]=+p[c+400>>3];p[a+408>>3]=+p[c+408>>3];p[a+416>>3]=+p[c+416>>3];p[a+424>>3]=+p[c+424>>3];p[a+432>>3]=+p[c+432>>3];p[a+440>>3]=+p[c+440>>3];p[a+448>>3]=+p[c+448>>3];p[a+456>>3]=+p[c+456>>3];p[a+464>>3]=+p[c+464>>3];p[a+472>>3]=+p[c+472>>3];p[a+480>>3]=+p[c+480>>3];p[a+488>>3]=+p[c+488>>3];p[a+496>>3]=+p[c+496>>3];p[a+504>>3]=+p[c+504>>3];p[a+512>>3]=+p[c+512>>3];p[a+520>>3]=+p[c+520>>3];p[a+528>>3]=+p[c+528>>3];p[a+536>>3]=+p[c+536>>3];p[a+544>>3]=+p[c+544>>3];p[a+552>>3]=+p[c+552>>3];f[a+560>>2]=f[c+560>>2];f[a+564>>2]=f[c+564>>2];f[a+568>>2]=f[c+568>>2];f[a+572>>2]=f[c+572>>2];f[a+576>>2]=f[c+576>>2];f[a+580>>2]=f[c+580>>2];i=a+584|0;f[a+588>>2]=0;f[a+592>>2]=0;d=a+588|0;f[i>>2]=d;e=f[c+584>>2]|0;j=c+588|0;if((e|0)!=(j|0)){h=d;while(1){d=e+16|0;f[l>>2]=h;f[k>>2]=f[l>>2];RA(i,k,d,d)|0;d=f[e+4>>2]|0;if(!d){g=e+8|0;d=f[g>>2]|0;if((f[d>>2]|0)!=(e|0)){e=g;do{g=f[e>>2]|0;e=g+8|0;d=f[e>>2]|0}while((f[d>>2]|0)!=(g|0))}}else while(1){e=f[d>>2]|0;if(!e)break;else d=e}if((d|0)==(j|0))break;else e=d}}f[a+596>>2]=f[c+596>>2];f[a+600>>2]=f[c+600>>2];f[a+604>>2]=f[c+604>>2];SA(a+608|0,c+608|0);d=a+620|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;f[d+12>>2]=0;d=f[c+636>>2]|0;f[a+636>>2]=d;if(d|0){l=d+(f[(f[d>>2]|0)+-12>>2]|0)+8|0;f[l>>2]=(f[l>>2]|0)+1}d=f[c+640>>2]|0;f[a+640>>2]=d;if(d|0){l=d+(f[(f[d>>2]|0)+-12>>2]|0)+8|0;f[l>>2]=(f[l>>2]|0)+1}d=f[c+644>>2]|0;f[a+644>>2]=d;if(d|0){l=d+(f[(f[d>>2]|0)+-12>>2]|0)+8|0;f[l>>2]=(f[l>>2]|0)+1}d=f[c+648>>2]|0;f[a+648>>2]=d;if(!d){u=m;return}a=d+(f[(f[d>>2]|0)+-12>>2]|0)+8|0;f[a>>2]=(f[a>>2]|0)+1;u=m;return}function RA(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;h=u;u=u+16|0;e=h+12|0;g=h+8|0;i=h;f[i>>2]=f[b>>2];f[e>>2]=f[i>>2];e=WA(a,e,g,h+4|0,c)|0;b=f[e>>2]|0;if(b|0){i=b;u=h;return i|0}c=LDb(52)|0;f[c+16>>2]=f[d>>2];f[c+20>>2]=f[d+4>>2];b=f[d+8>>2]|0;f[c+24>>2]=b;if(b|0){i=b+8|0;f[i>>2]=(f[i>>2]|0)+1}b=f[d+12>>2]|0;f[c+28>>2]=b;if(b|0){i=b+8|0;f[i>>2]=(f[i>>2]|0)+1}b=c+32|0;i=d+16|0;f[b>>2]=f[i>>2];f[b+4>>2]=f[i+4>>2];f[b+8>>2]=f[i+8>>2];f[b+12>>2]=f[i+12>>2];f[b+16>>2]=f[i+16>>2];b=f[g>>2]|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=b;f[e>>2]=c;b=f[f[a>>2]>>2]|0;if(!b)b=c;else{f[a>>2]=b;b=f[e>>2]|0}Aq(f[a+4>>2]|0,b);i=a+8|0;f[i>>2]=(f[i>>2]|0)+1;i=c;u=h;return i|0}function SA(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=u;u=u+16|0;i=o+12|0;j=o+8|0;k=o+4|0;l=o;m=a+4|0;f[m>>2]=0;n=a+8|0;f[n>>2]=0;c=a+4|0;f[a>>2]=c;d=f[b>>2]|0;h=b+4|0;if((d|0)==(h|0)){u=o;return}g=c;while(1){c=d+16|0;f[l>>2]=g;f[i>>2]=f[l>>2];e=UA(a,i,j,k,c)|0;if(!(f[e>>2]|0)){b=LDb(20)|0;f[b+16>>2]=f[c>>2];c=f[j>>2]|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=c;f[e>>2]=b;c=f[f[a>>2]>>2]|0;if(c){f[a>>2]=c;b=f[e>>2]|0}Aq(f[m>>2]|0,b);f[n>>2]=(f[n>>2]|0)+1}b=f[d+4>>2]|0;if(!b){c=d+8|0;b=f[c>>2]|0;if((f[b>>2]|0)!=(d|0))do{e=f[c>>2]|0;c=e+8|0;b=f[c>>2]|0}while((f[b>>2]|0)!=(e|0))}else while(1){c=f[b>>2]|0;if(!c)break;else b=c}if((b|0)==(h|0))break;else d=b}u=o;return}function TA(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;if(!b)return;TA(a,f[b>>2]|0);TA(a,f[b+4>>2]|0);a=b+28|0;c=f[a>>2]|0;if(c|0?(e=c+8|0,d=f[e>>2]|0,f[e>>2]=d-1,(d|0)==1):0)X4(c,1,1);f[a>>2]=0;a=f[b+24>>2]|0;if(a|0?(d=a+8|0,e=f[d>>2]|0,f[d>>2]=e-1,(e|0)==1):0)X4(a,1,1);NDb(b);return}function UA(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0;i=a+4|0;h=f[b>>2]|0;b=h;if((h|0)!=(i|0)?(j=f[e>>2]|0,g=f[h+16>>2]|0,j>>>0>=g>>>0):0){if(g>>>0>=j>>>0){f[c>>2]=b;f[d>>2]=b;c=d;return c|0}g=f[h+4>>2]|0;if(!g){d=h+8|0;g=f[d>>2]|0;if((f[g>>2]|0)!=(h|0))do{e=f[d>>2]|0;d=e+8|0;g=f[d>>2]|0}while((f[g>>2]|0)!=(e|0))}else while(1){d=f[g>>2]|0;if(!d)break;else g=d}if((g|0)!=(i|0)?j>>>0>=(f[g+16>>2]|0)>>>0:0){b=f[i>>2]|0;if(!b){f[c>>2]=i;c=i;return c|0}d=a+4|0;while(1){g=f[b+16>>2]|0;if(j>>>0<g>>>0){g=f[b>>2]|0;if(!g){e=42;break}else{d=b;b=g}}else{if(g>>>0>=j>>>0){e=46;break}d=b+4|0;g=f[d>>2]|0;if(!g){e=45;break}else b=g}}if((e|0)==42){f[c>>2]=b;c=b;return c|0}else if((e|0)==45){f[c>>2]=b;c=d;return c|0}else if((e|0)==46){f[c>>2]=b;c=d;return c|0}}if(!(f[h+4>>2]|0)){f[c>>2]=b;c=h+4|0;return c|0}else{f[c>>2]=g;c=g;return c|0}}d=f[h>>2]|0;if((f[a>>2]|0)!=(h|0)){if(!d){b=h;do{j=b;b=f[b+8>>2]|0}while((f[b>>2]|0)==(j|0))}else{b=d;while(1){g=f[b+4>>2]|0;if(!g)break;else b=g}}e=f[e>>2]|0;if((f[b+16>>2]|0)>>>0>=e>>>0){b=f[i>>2]|0;if(!b){f[c>>2]=i;c=i;return c|0}d=a+4|0;while(1){g=f[b+16>>2]|0;if(e>>>0<g>>>0){g=f[b>>2]|0;if(!g){e=18;break}else{d=b;b=g}}else{if(g>>>0>=e>>>0){e=22;break}d=b+4|0;g=f[d>>2]|0;if(!g){e=21;break}else b=g}}if((e|0)==18){f[c>>2]=b;c=b;return c|0}else if((e|0)==21){f[c>>2]=b;c=d;return c|0}else if((e|0)==22){f[c>>2]=b;c=d;return c|0}}}if(!d){f[c>>2]=h;c=h;return c|0}else{f[c>>2]=b;c=b+4|0;return c|0}return 0}function VA(a,b){a=a|0;b=b|0;if(!b)return;else{VA(a,f[b>>2]|0);VA(a,f[b+4>>2]|0);NDb(b);return}}function WA(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0;i=a+4|0;h=f[b>>2]|0;b=h;if((h|0)!=(i|0)?(j=f[e>>2]|0,g=f[h+16>>2]|0,(j|0)>=(g|0)):0){if((g|0)>=(j|0)){f[c>>2]=b;f[d>>2]=b;c=d;return c|0}g=f[h+4>>2]|0;if(!g){d=h+8|0;g=f[d>>2]|0;if((f[g>>2]|0)!=(h|0))do{e=f[d>>2]|0;d=e+8|0;g=f[d>>2]|0}while((f[g>>2]|0)!=(e|0))}else while(1){d=f[g>>2]|0;if(!d)break;else g=d}if((g|0)!=(i|0)?(j|0)>=(f[g+16>>2]|0):0){b=f[i>>2]|0;if(!b){f[c>>2]=i;c=i;return c|0}d=a+4|0;while(1){g=f[b+16>>2]|0;if((j|0)<(g|0)){g=f[b>>2]|0;if(!g){e=42;break}else{d=b;b=g}}else{if((g|0)>=(j|0)){e=46;break}d=b+4|0;g=f[d>>2]|0;if(!g){e=45;break}else b=g}}if((e|0)==42){f[c>>2]=b;c=b;return c|0}else if((e|0)==45){f[c>>2]=b;c=d;return c|0}else if((e|0)==46){f[c>>2]=b;c=d;return c|0}}if(!(f[h+4>>2]|0)){f[c>>2]=b;c=h+4|0;return c|0}else{f[c>>2]=g;c=g;return c|0}}d=f[h>>2]|0;if((f[a>>2]|0)!=(h|0)){if(!d){b=h;do{j=b;b=f[b+8>>2]|0}while((f[b>>2]|0)==(j|0))}else{b=d;while(1){g=f[b+4>>2]|0;if(!g)break;else b=g}}e=f[e>>2]|0;if((f[b+16>>2]|0)>=(e|0)){b=f[i>>2]|0;if(!b){f[c>>2]=i;c=i;return c|0}d=a+4|0;while(1){g=f[b+16>>2]|0;if((e|0)<(g|0)){g=f[b>>2]|0;if(!g){e=18;break}else{d=b;b=g}}else{if((g|0)>=(e|0)){e=22;break}d=b+4|0;g=f[d>>2]|0;if(!g){e=21;break}else b=g}}if((e|0)==18){f[c>>2]=b;c=b;return c|0}else if((e|0)==21){f[c>>2]=b;c=d;return c|0}else if((e|0)==22){f[c>>2]=b;c=d;return c|0}}}if(!d){f[c>>2]=h;c=h;return c|0}else{f[c>>2]=b;c=b+4|0;return c|0}return 0}function XA(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=90104;a=a+28|0;b=f[a>>2]|0;if(!b){f[a>>2]=0;return}d=b+8|0;c=f[d>>2]|0;f[d>>2]=c-1;if((c|0)!=1){f[a>>2]=0;return}X4(b,1,1);f[a>>2]=0;return}function YA(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=90104;b=f[a+28>>2]|0;if(!b){NDb(a);return}d=b+8|0;c=f[d>>2]|0;f[d>>2]=c-1;if((c|0)!=1){NDb(a);return}X4(b,1,1);NDb(a);return}function ZA(a){a=a|0;var c=0;NDa(a);c=a+144|0;f[c>>2]=90104;f[a+172>>2]=0;f[a+148>>2]=2147483647;f[a+152>>2]=0;f[a+160>>2]=57;n[a+164>>2]=1.0;n[a+168>>2]=2.0;f[a+156>>2]=1;p[a+176>>3]=.0005;b[a+184>>0]=1;b[a+185>>0]=0;n[a+188>>2]=4.0;f[a+192>>2]=10;f[a+196>>2]=-1;f[a+200>>2]=-1;f[a+204>>2]=-1;_A(c);f[a>>2]=89768;f[c>>2]=90076;yGa(a+208|0,0);f[a+220>>2]=0;f[a+224>>2]=0;b[a+228>>0]=1;f[a+232>>2]=0;f[a+236>>2]=16640;n[a+240>>2]=0.0;n[a+244>>2]=0.0;n[a+248>>2]=0.0;n[a+252>>2]=1.0;n[a+256>>2]=0.0;n[a+260>>2]=0.0;n[a+264>>2]=0.0;n[a+268>>2]=1.0;p[a+272>>3]=1.0;c=a+280|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;f[a+296>>2]=1;SWa(a+304|0);SWa(a+432|0);f[a+560>>2]=2;f[a+564>>2]=0;f[a+568>>2]=0;f[a+572>>2]=0;f[a+576>>2]=3;f[a+580>>2]=3;f[a+588>>2]=0;f[a+592>>2]=0;f[a+584>>2]=a+588;f[a+596>>2]=-1;f[a+600>>2]=-1;f[a+604>>2]=0;f[a+612>>2]=0;f[a+616>>2]=0;f[a+608>>2]=a+612;c=a+620|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;f[c+16>>2]=0;f[c+20>>2]=0;f[c+24>>2]=0;f[c+28>>2]=0;c=LDb(160)|0;s9(c);$A(a,c);return}function _A(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;l=u;u=u+16|0;j=l+12|0;k=l;if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>3){h=Nv(Mv(4)|0,176905,42)|0;Ktb(j,h+(f[(f[h>>2]|0)+-12>>2]|0)|0);g=Bvb(j,295164)|0;g=wk[f[(f[g>>2]|0)+28>>2]&1023](g,10)|0;Cvb(j);rub(h,g)|0;Rtb(h)|0};f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;d=Th(176948)|0;if(d|0){c=0;while(1){if(!(b[d+c>>0]|0))break;c=c+1|0;if(c>>>0>=4096){c=4096;break}}aEb(k,d,c)|0;g=k+11|0;d=b[g>>0]|0;h=k+4|0;c=f[h>>2]|0;e=d&255;do if(((d<<24>>24<0?c:e)|0)==23)if(!(uEb(k,0,-1,176974,23)|0)){f[a+12>>2]=0;break}else{d=b[g>>0]|0;e=d&255;c=f[h>>2]|0;i=14;break}else i=14;while(0);a:do if((i|0)==14){do if(((d<<24>>24<0?c:e)|0)==39)if(!(uEb(k,0,-1,176998,39)|0)){f[a+12>>2]=1;break a}else{d=b[g>>0]|0;e=d&255;c=f[h>>2]|0;break}while(0);if(((d<<24>>24<0?c:e)|0)==33?(uEb(k,0,-1,177038,33)|0)==0:0)f[a+12>>2]=2}while(0);if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>3){i=Nv(Mv(4)|0,177072,29)|0;i=iub(i,f[a+12>>2]|0)|0;Ktb(j,i+(f[(f[i>>2]|0)+-12>>2]|0)|0);h=Bvb(j,295164)|0;h=wk[f[(f[h>>2]|0)+28>>2]&1023](h,10)|0;Cvb(j);rub(i,h)|0;Rtb(i)|0}}c=a+32|0;if(aB(177102,c)|0){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>3){a=Nv(Mv(4)|0,177121,22)|0;a=pub(a,+p[c>>3])|0;Ktb(j,a+(f[(f[a>>2]|0)+-12>>2]|0)|0);i=Bvb(j,295164)|0;i=wk[f[(f[i>>2]|0)+28>>2]&1023](i,10)|0;Cvb(j);rub(a,i)|0;Rtb(a)|0}}if((b[k+11>>0]|0)>=0){u=l;return}NDb(f[k>>2]|0);u=l;return}function $A(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;g=a+120|0;c=f[g>>2]|0;if((c|0)==(b|0))return;do if(!c){d=0;c=0;e=0}else{oDa(c,a);e=f[g>>2]|0;if((f[e+144>>2]|0)==0?(f[e+148>>2]|0)==0:0)c=0;else c=-1;if((f[e+152>>2]|0)==0?(f[e+156>>2]|0)==0:0){d=0;break}d=-1}while(0);if((e|0)!=(b|0)){f[g>>2]=b;if(b|0){b=b+8|0;f[b>>2]=(f[b>>2]|0)+1}if(e|0?(h=e+8|0,b=f[h>>2]|0,f[h>>2]=b-1,(b|0)==1):0)X4(e,1,1)}e=f[g>>2]|0;do if(e){nDa(e,a);e=f[g>>2]|0;if(!((f[e+144>>2]|0)==0?(f[e+148>>2]|0)==0:0))c=c+1|0;if((f[e+152>>2]|0)==0?(f[e+156>>2]|0)==0:0)break;d=d+1|0}while(0);if(c|0)pA(a,(f[a+88>>2]|0)+c|0);if(!d)return;qA(a,(f[a+96>>2]|0)+d|0);return}function aB(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;j=u;u=u+160|0;i=j+12|0;h=j;e=Th(a|0)|0;if(!e){i=0;u=j;return i|0}a=0;while(1){if(!(b[e+a>>0]|0)){g=6;break}a=a+1|0;if(a>>>0>=4096){g=5;break}}if((g|0)==5){f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=4096;g=7}else if((g|0)==6){f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;if(a>>>0<11){b[h+11>>0]=a;if(!a){a=0;d=h}else{d=h;g=9}}else g=7}if((g|0)==7){k=a+16&-16;d=LDb(k)|0;f[h>>2]=d;f[h+8>>2]=k|-2147483648;f[h+4>>2]=a;g=9}if((g|0)==9)gGb(d|0,e|0,a|0)|0;b[d+a>>0]=0;d=i+60|0;e=i+8|0;f[i>>2]=58540;f[d>>2]=58560;f[i+4>>2]=0;Itb(i+60|0,e);f[i+132>>2]=0;f[i+136>>2]=-1;f[i>>2]=89300;f[d>>2]=89320;Otb(e);f[e>>2]=87888;g=i+40|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;f[i+56>>2]=8;$v(e,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);Ztb(i,c)|0;a=(f[i+(f[(f[i>>2]|0)+-12>>2]|0)+16>>2]&5|0)==0;f[i>>2]=89300;f[d>>2]=89320;f[e>>2]=87888;if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);xsb(e);jtb(i,89332);rsb(d);k=a;u=j;return k|0}function bB(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;g=a+620|0;c=f[g>>2]|0;if((c|0)==(b|0))return;if(!c)c=0;else{sk[f[(f[c>>2]|0)+16>>2]&2047](c)|0;e=f[g>>2]|0;c=e+20|0;d=f[c>>2]|0;if(d|0?(f[c>>2]=0,h=d+8|0,c=f[h>>2]|0,f[h>>2]=c-1,(c|0)==1):0)X4(d,1,1);f[e+24>>2]=0;c=f[g>>2]|0}if((c|0)!=(b|0)){f[g>>2]=b;if(b|0){h=b+8|0;f[h>>2]=(f[h>>2]|0)+1}if(c|0?(b=c+8|0,h=f[b>>2]|0,f[b>>2]=h-1,(h|0)==1):0)X4(c,1,1)}c=f[g>>2]|0;if(!c)return;lGa(c+12|0,a+608|0)|0;b=f[g>>2]|0;c=DCa(a)|0;d=b+20|0;e=f[d>>2]|0;if((e|0)!=(c|0)){f[d>>2]=c;if(c|0){h=c+8|0;f[h>>2]=(f[h>>2]|0)+1}if(e|0?(g=e+8|0,h=f[g>>2]|0,f[g>>2]=h-1,(h|0)==1):0)X4(e,1,1);c=f[d>>2]|0}if(!c)c=0;else c=(f[c+24>>2]|0)==0?0:a;f[b+24>>2]=c;return}function cB(a,b){a=a|0;b=b|0;var c=0,d=0,e=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=u;u=u+16|0;q=r;l=a+36|0;c=f[l>>2]|0;n=a+32|0;a:do if((c|0)==(n|0))o=c;else{d=c;do{if((f[c+8>>2]|0)==(b|0)){o=d;break a}c=f[d+4>>2]|0;d=c}while((n|0)!=(d|0));u=r;return}while(0);if((o|0)==(n|0)){u=r;return}j=q+4|0;f[j>>2]=0;m=q+8|0;f[m>>2]=0;p=q+4|0;f[q>>2]=p;k=b+124|0;i=0;while(1){if(i>>>0>=(sk[f[(f[b>>2]|0)+248>>2]&2047](b)|0)>>>0)break;g=f[(f[k>>2]|0)+(i<<2)>>2]|0;h=g;c=f[p>>2]|0;do if(c){e=j;while(1){d=f[c+16>>2]|0;if(g>>>0<d>>>0){d=f[c>>2]|0;if(!d){d=14;break}}else{if(d>>>0>=g>>>0){d=18;break}e=c+4|0;d=f[e>>2]|0;if(!d){d=17;break}else c=e}e=c;c=d}if((d|0)==14){g=c;e=c;break}else if((d|0)==17){g=c;break}else if((d|0)==18){g=c;break}}else{g=p;e=p}while(0);if(!(f[e>>2]|0)){c=LDb(20)|0;f[c+16>>2]=h;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=g;f[e>>2]=c;d=f[f[q>>2]>>2]|0;if(d){f[q>>2]=d;c=f[e>>2]|0}Aq(f[j>>2]|0,c);f[m>>2]=(f[m>>2]|0)+1}i=i+1|0}c=f[l>>2]|0;d=c;if((n|0)!=(d|0))do{b:do if((o|0)!=(d|0)){i=f[c+8>>2]|0;j=i+124|0;h=0;while(1){if(h>>>0>=(sk[f[(f[i>>2]|0)+248>>2]&2047](i)|0)>>>0)break b;e=f[(f[j>>2]|0)+(h<<2)>>2]|0;k=f[p>>2]|0;if(k|0){g=p;c=k;do{l=(f[c+16>>2]|0)>>>0<e>>>0;g=l?g:c;c=f[(l?c+4|0:c)>>2]|0}while((c|0)!=0);if((g|0)!=(p|0)?e>>>0>=(f[g+16>>2]|0)>>>0:0){c=f[g+4>>2]|0;if(!c){e=g+8|0;c=f[e>>2]|0;if((f[c>>2]|0)!=(g|0))do{l=f[e>>2]|0;e=l+8|0;c=f[e>>2]|0}while((f[c>>2]|0)!=(l|0))}else while(1){e=f[c>>2]|0;if(!e)break;else c=e}if((f[q>>2]|0)==(g|0))f[q>>2]=c;f[m>>2]=(f[m>>2]|0)+-1;nB(k,g);NDb(g)}}h=h+1|0}}while(0);c=f[d+4>>2]|0;d=c}while((n|0)!=(d|0));c=f[q>>2]|0;if((c|0)!=(p|0)){g=a+48|0;e=c;while(1){c=f[e+16>>2]|0;Vk[f[(f[c>>2]|0)+160>>2]&1023](c,f[g>>2]|0);c=f[e+4>>2]|0;if(!c){d=e+8|0;c=f[d>>2]|0;if((f[c>>2]|0)!=(e|0))do{n=f[d>>2]|0;d=n+8|0;c=f[d>>2]|0}while((f[c>>2]|0)!=(n|0))}else while(1){d=f[c>>2]|0;if(!d)break;else c=d}if((c|0)==(p|0))break;else e=c}}c=f[b+632>>2]|0;if(c|0)Vk[f[(f[c>>2]|0)+160>>2]&1023](c,f[a+48>>2]|0);b=o+4|0;n=f[o>>2]|0;f[n+4>>2]=f[b>>2];f[f[b>>2]>>2]=n;a=a+40|0;f[a>>2]=(f[a>>2]|0)+-1;NDb(o);oB(q,f[p>>2]|0);u=r;return}function dB(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(!b){f[a>>2]=0;return}b=b+(f[(f[b>>2]|0)+-12>>2]|0)|0;d=b+8|0;c=f[d>>2]|0;f[d>>2]=c-1;if((c|0)!=1){f[a>>2]=0;return}X4(b,1,1);f[a>>2]=0;return}function eB(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(b|0?(d=b+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(b,1,1);f[a>>2]=0;return}function fB(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(!b){f[a>>2]=0;return}b=b+(f[(f[b>>2]|0)+-12>>2]|0)|0;d=b+8|0;c=f[d>>2]|0;f[d>>2]=c-1;if((c|0)!=1){f[a>>2]=0;return}X4(b,1,1);f[a>>2]=0;return}function gB(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(b|0?(d=b+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(b,1,1);f[a>>2]=0;return}function hB(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(b|0?(d=b+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(b,1,1);f[a>>2]=0;return}function iB(a){a=a|0;VA(a,f[a+4>>2]|0);return}function jB(a){a=a|0;TA(a,f[a+4>>2]|0);return}function kB(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(b|0?(d=b+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(b,1,1);f[a>>2]=0;return}function lB(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(b|0?(d=b+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(b,1,1);f[a>>2]=0;return}function mB(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(b|0?(d=b+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(b,1,1);f[a>>2]=0;return}function nB(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;e=f[c>>2]|0;if(e){d=f[c+4>>2]|0;if(!d){d=c;g=c;m=8}else{while(1){e=f[d>>2]|0;if(!e)break;else d=e}g=d;m=6}}else{g=c;d=c;m=6}if((m|0)==6){e=f[g+4>>2]|0;if(!e){k=g+8|0;l=0;j=g;e=0}else m=8}if((m|0)==8){k=g+8|0;f[e+8>>2]=f[k>>2];l=1;j=g}g=f[k>>2]|0;h=f[g>>2]|0;if((h|0)==(j|0)){f[g>>2]=e;if((j|0)==(a|0)){a=e;h=0}else h=f[g+4>>2]|0}else f[g+4>>2]=e;g=j+12|0;i=(b[g>>0]|0)!=0;if((j|0)!=(c|0)){n=c+8|0;m=f[n>>2]|0;f[k>>2]=m;f[((f[f[n>>2]>>2]|0)==(c|0)?m:m+4|0)>>2]=j;m=f[c>>2]|0;f[d>>2]=m;f[m+8>>2]=j;d=f[c+4>>2]|0;f[j+4>>2]=d;if(d|0)f[d+8>>2]=j;b[g>>0]=b[c+12>>0]|0;a=(a|0)==(c|0)?j:a}if(!(i&(a|0)!=0))return;if(l){b[e+12>>0]=1;return}k=h;while(1){i=k+8|0;j=f[i>>2]|0;d=k+12|0;e=(b[d>>0]|0)!=0;if((f[j>>2]|0)==(k|0)){if(e)i=k;else{b[d>>0]=1;b[j+12>>0]=0;g=k+4|0;d=f[g>>2]|0;f[j>>2]=d;if(d|0)f[d+8>>2]=j;h=j+8|0;f[i>>2]=f[h>>2];e=f[h>>2]|0;if((f[e>>2]|0)==(j|0)){f[e>>2]=k;d=f[j>>2]|0}else f[e+4>>2]=k;f[g>>2]=j;f[h>>2]=k;i=d;a=(a|0)==(j|0)?k:a}d=f[i>>2]|0;g=(d|0)==0;if(!g?(b[d+12>>0]|0)==0:0){m=58;break}e=f[i+4>>2]|0;if(e|0?(b[e+12>>0]|0)==0:0){m=56;break}b[i+12>>0]=0;d=f[i+8>>2]|0;if((d|0)==(a|0)|(b[d+12>>0]|0)==0){m=55;break}}else{if(e)j=k;else{b[d>>0]=1;b[j+12>>0]=0;n=j+4|0;d=f[n>>2]|0;e=f[d>>2]|0;f[n>>2]=e;if(e|0)f[e+8>>2]=j;n=j+8|0;f[d+8>>2]=f[n>>2];m=f[n>>2]|0;f[((f[m>>2]|0)==(j|0)?m:m+4|0)>>2]=d;f[d>>2]=j;f[n>>2]=d;n=f[k>>2]|0;j=f[n+4>>2]|0;a=(a|0)==(n|0)?k:a}i=f[j>>2]|0;if(i|0?(b[i+12>>0]|0)==0:0){m=33;break}d=f[j+4>>2]|0;if(d|0?(b[d+12>>0]|0)==0:0){m=34;break}b[j+12>>0]=0;d=f[j+8>>2]|0;if((d|0)==(a|0)){m=32;break}if(!(b[d+12>>0]|0)){a=d;m=32;break}}k=f[d+8>>2]|0;k=f[((f[k>>2]|0)==(d|0)?k+4|0:k)>>2]|0}do if((m|0)==32){b[a+12>>0]=1;return}else if((m|0)==33){a=f[j+4>>2]|0;if(!a){h=j;m=37}else{h=j;m=35}}else if((m|0)==34){h=j;a=d;m=35}else if((m|0)==55){b[d+12>>0]=1;return}else if((m|0)==56){if(g)h=i+4|0;else{a=d+12|0;if(!(b[a>>0]|0)){m=59;break}e=i+4|0;h=e;e=f[e>>2]|0}d=e+12|0;b[d>>0]=1;a=i+12|0;b[a>>0]=0;g=f[e>>2]|0;f[h>>2]=g;if(g|0)f[g+8>>2]=i;n=i+8|0;m=e+8|0;f[m>>2]=f[n>>2];c=f[n>>2]|0;f[((f[c>>2]|0)==(i|0)?c:c+4|0)>>2]=e;f[e>>2]=i;f[n>>2]=e;e=m;m=64}else if((m|0)==58){a=d+12|0;m=59}while(0);if((m|0)==35){a=a+12|0;if(!(b[a>>0]|0)){g=a;d=j+8|0;a=j+12|0}else m=37}else if((m|0)==59){e=i+8|0;d=i+12|0;m=64}if((m|0)==37){a=i+12|0;b[a>>0]=1;g=j+12|0;b[g>>0]=0;e=i+4|0;d=f[e>>2]|0;f[h>>2]=d;if(d|0)f[d+8>>2]=j;n=j+8|0;d=i+8|0;f[d>>2]=f[n>>2];m=f[n>>2]|0;f[((f[m>>2]|0)==(j|0)?m:m+4|0)>>2]=i;f[e>>2]=j;f[n>>2]=i}else if((m|0)==64){g=f[e>>2]|0;e=g+12|0;b[d>>0]=b[e>>0]|0;b[e>>0]=1;b[a>>0]=1;a=f[g>>2]|0;d=a+4|0;e=f[d>>2]|0;f[g>>2]=e;if(e|0)f[e+8>>2]=g;n=g+8|0;f[a+8>>2]=f[n>>2];m=f[n>>2]|0;f[((f[m>>2]|0)==(g|0)?m:m+4|0)>>2]=a;f[d>>2]=g;f[n>>2]=a;return}e=f[d>>2]|0;n=e+12|0;b[a>>0]=b[n>>0]|0;b[n>>0]=1;b[g>>0]=1;n=e+4|0;a=f[n>>2]|0;d=f[a>>2]|0;f[n>>2]=d;if(d|0)f[d+8>>2]=e;n=e+8|0;f[a+8>>2]=f[n>>2];m=f[n>>2]|0;f[((f[m>>2]|0)==(e|0)?m:m+4|0)>>2]=a;f[a>>2]=e;f[n>>2]=a;return}function oB(a,b){a=a|0;b=b|0;if(!b)return;else{oB(a,f[b>>2]|0);oB(a,f[b+4>>2]|0);NDb(b);return}}function pB(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[a+120>>2]|0;if(c|0)Vk[f[(f[c>>2]|0)+156>>2]&1023](c,b);c=f[a+84>>2]|0;if(c|0){c=c+(f[(f[c>>2]|0)+-12>>2]|0)|0;Vk[f[(f[c>>2]|0)+156>>2]&1023](c,b)}c=f[a+92>>2]|0;if(c|0){c=c+(f[(f[c>>2]|0)+-12>>2]|0)|0;Vk[f[(f[c>>2]|0)+156>>2]&1023](c,b)}c=f[a+100>>2]|0;if(c|0){c=c+(f[(f[c>>2]|0)+-12>>2]|0)|0;Vk[f[(f[c>>2]|0)+156>>2]&1023](c,b)}c=f[a+124>>2]|0;a=a+128|0;if((c|0)==(f[a>>2]|0))return;do{d=f[c>>2]|0;Vk[f[(f[d>>2]|0)+156>>2]&1023](d,b);c=c+4|0}while((c|0)!=(f[a>>2]|0));return}function qB(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[a+120>>2]|0;if(c|0)Vk[f[(f[c>>2]|0)+160>>2]&1023](c,b);c=f[a+84>>2]|0;if(c|0){c=c+(f[(f[c>>2]|0)+-12>>2]|0)|0;Vk[f[(f[c>>2]|0)+160>>2]&1023](c,b)}c=f[a+92>>2]|0;if(c|0){c=c+(f[(f[c>>2]|0)+-12>>2]|0)|0;Vk[f[(f[c>>2]|0)+160>>2]&1023](c,b)}c=f[a+100>>2]|0;if(c|0){c=c+(f[(f[c>>2]|0)+-12>>2]|0)|0;Vk[f[(f[c>>2]|0)+160>>2]&1023](c,b)}c=f[a+124>>2]|0;a=a+128|0;if((c|0)==(f[a>>2]|0))return;do{d=f[c>>2]|0;Vk[f[(f[d>>2]|0)+160>>2]&1023](d,b);c=c+4|0}while((c|0)!=(f[a>>2]|0));return}function rB(a){a=a|0;rw(a);return}function sB(a){a=a|0;rw(a);NDb(a);return}function tB(a){a=a|0;a=LDb(60)|0;gDa(a);f[a>>2]=90132;f[a+56>>2]=16843009;return a|0}function uB(a,c){a=a|0;c=c|0;var d=0;d=LDb(60)|0;mw(d,a,c);f[d>>2]=90132;b[d+56>>0]=b[a+56>>0]|0;b[d+57>>0]=b[a+57>>0]|0;b[d+58>>0]=b[a+58>>0]|0;b[d+59>>0]=b[a+59>>0]|0;return d|0}function vB(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,58784,0)|0)!=0;return b|0}function wB(a){a=a|0;return 241076}function xB(a){a=a|0;return 177158}function yB(a){a=a|0;return 25}function zB(a,c){a=a|0;c=c|0;var d=0,e=0;if((a|0)==(c|0)){c=0;return c|0}if(!a)NFb();d=f[(f[(f[a>>2]|0)+-4>>2]|0)+4>>2]|0;e=f[(f[(f[c>>2]|0)+-4>>2]|0)+4>>2]|0;if(d>>>0<e>>>0){c=-1;return c|0}if((d|0)!=(e|0)){c=1;return c|0}d=b[a+56>>0]|0;e=b[c+56>>0]|0;if((d&255)<(e&255)){c=-1;return c|0}if((e&255)<(d&255)){c=1;return c|0}d=b[a+57>>0]|0;e=b[c+57>>0]|0;if((d&255)<(e&255)){c=-1;return c|0}if((e&255)<(d&255)){c=1;return c|0}d=b[a+58>>0]|0;e=b[c+58>>0]|0;if((d&255)<(e&255)){c=-1;return c|0}if((e&255)<(d&255)){c=1;return c|0}else{a=b[a+59>>0]|0;c=b[c+59>>0]|0;return ((a&255)<(c&255)?-1:(c&255)<(a&255)&1)|0}return 0}function AB(a,c){a=a|0;c=c|0;$h(b[a+56>>0]|0,b[a+57>>0]|0,b[a+58>>0]|0,b[a+59>>0]|0);return}function BB(a){a=a|0;var b=0,c=0;f[a>>2]=90348;b=a+396|0;f[b>>2]=90744;c=a+56|0;f[c>>2]=90556;zD(a+384|0,f[a+388>>2]|0);fD(c);qC(a,90912);ow(b);return}function CB(a){a=a|0;var b=0,c=0;f[a>>2]=90348;b=a+396|0;f[b>>2]=90744;c=a+56|0;f[c>>2]=90556;zD(a+384|0,f[a+388>>2]|0);fD(c);qC(a,90912);ow(b);NDb(a);return}function DB(a){a=a|0;a=LDb(432)|0;oC(a);return a+(f[(f[a>>2]|0)+-12>>2]|0)|0}function EB(a){a=a|0;return 241076}function FB(a){a=a|0;return 177185}function GB(a){a=a|0;var b=0,c=0;hD(a+56|0);c=a+384|0;b=a+388|0;zD(c,f[b>>2]|0);f[a+392>>2]=0;f[c>>2]=b;f[b>>2]=0;return}function HB(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0;f=+n[b>>2]-+n[a+240>>2];e=+n[b+4>>2]-+n[a+244>>2];d=+n[b+8>>2]-+n[a+248>>2];d=+K(+(f*f+e*e+d*d));if(!c){f=d;return +f}f=d*+n[a+76>>2];return +f}function IB(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0;e=f[a+152>>2]|0;d=-(+p[e+144>>3]+(+p[e+48>>3]*+n[b>>2]+ +p[e+80>>3]*+n[b+4>>2]+ +p[e+112>>3]*+n[b+8>>2]));if(!c)return +d;d=+n[a+76>>2]*d;return +d}function JB(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0;f=+n[b>>2]-+n[a+268>>2];e=+n[b+4>>2]-+n[a+272>>2];d=+n[b+8>>2]-+n[a+276>>2];d=+K(+(f*f+e*e+d*d));if(!c){f=d;return +f}f=d*+n[a+76>>2];return +f}function KB(a,b){a=a|0;b=b|0;Vk[f[(f[a>>2]|0)+108>>2]&1023](a,b);return}function LB(a,b){a=a|0;b=b|0;Vk[f[(f[a>>2]|0)+100>>2]&1023](a,b);return}function MB(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;do if((f[c+108>>2]|0)==0?(b[c+104>>0]|0)!=0:0){j=(BD(c)|0)+12|0;g=a+336|0;d=f[g>>2]|0;if(+n[j>>2]>=0.0)if(CD(d,BD(c)|0)|0)return;else{e=g;d=f[g>>2]|0;break}else{e=g;h=5}}else h=3;while(0);if((h|0)==3){d=a+336|0;e=d;d=f[d>>2]|0;h=5}if((h|0)==5)f[d+36>>2]=f[d+16>>2];DD(d);a:do if(f[c+112>>2]|0)switch(f[a+16>>2]|0){case 0:break a;case 1:{Vk[f[(f[c>>2]|0)+216>>2]&1023](c,a);break a}default:{Vk[f[(f[c>>2]|0)+220>>2]&1023](c,a);break a}}while(0);i=f[e>>2]|0;d=i+32|0;e=f[d>>2]|0;if(e|0){g=i+24|0;a=f[g>>2]|0;if((f[i+20>>2]|0)!=(a|0)){j=a+-4|0;f[i+16>>2]=f[j>>2];f[g>>2]=j}f[d>>2]=e+-1}d=f[i+64>>2]|0;h=f[i+68>>2]|0;if((d|0)!=(h|0))do{e=d+20|0;g=f[e>>2]|0;if(g|0){a=d+12|0;c=f[a>>2]|0;if((f[d+8>>2]|0)!=(c|0)){j=c+-4|0;f[d+4>>2]=f[j>>2];f[a>>2]=j}f[e>>2]=g+-1}d=d+52|0}while((d|0)!=(h|0));d=f[i+76>>2]|0;j=f[i+80>>2]|0;if((d|0)==(j|0))return;do{e=d+36|0;g=f[e>>2]|0;if(g|0){a=d+28|0;c=f[a>>2]|0;if((f[d+24>>2]|0)!=(c|0)){i=c+-4|0;f[d+20>>2]=f[i>>2];f[a>>2]=i}f[e>>2]=g+-1}e=f[d+68>>2]|0;i=f[d+72>>2]|0;if((e|0)!=(i|0))do{g=e+16|0;a=f[g>>2]|0;if(a|0){c=e+8|0;h=f[c>>2]|0;if((f[e+4>>2]|0)!=(h|0)){h=h+-4|0;f[e>>2]=f[h>>2];f[c>>2]=h}f[g>>2]=a+-1}e=e+48|0}while((e|0)!=(i|0));d=d+80|0}while((d|0)!=(j|0));return}function NB(a,b){a=a|0;b=b|0;Vk[f[(f[a>>2]|0)+120>>2]&1023](a,b);return}function OB(a,b){a=a|0;b=b|0;Vk[f[(f[a>>2]|0)+112>>2]&1023](a,b);return}function PB(a,b){a=a|0;b=b|0;Vk[f[(f[a>>2]|0)+108>>2]&1023](a,b);return}function QB(a,b){a=a|0;b=b|0;Vk[f[(f[a>>2]|0)+120>>2]&1023](a,b);return}function RB(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;i=a+56|0;do if((f[c+108>>2]|0)==0?(b[c+104>>0]|0)!=0:0){l=(BD(c)|0)+12|0;g=a+336|0;d=f[g>>2]|0;if(+n[l>>2]>=0.0)if(CD(d,BD(c)|0)|0)return;else{e=g;d=f[g>>2]|0;break}else{e=g;h=5}}else h=3;while(0);if((h|0)==3){d=a+336|0;e=d;d=f[d>>2]|0;h=5}if((h|0)==5)f[d+36>>2]=f[d+16>>2];DD(d);k=KD(i,c+136|0)|0;l=(k|0)==0;if(!l){j=k+8|0;f[j>>2]=(f[j>>2]|0)+1}kE(i,k);a:do if(f[c+112>>2]|0)switch(f[a+16>>2]|0){case 0:break a;case 1:{Vk[f[(f[c>>2]|0)+216>>2]&1023](c,a);break a}default:{Vk[f[(f[c>>2]|0)+220>>2]&1023](c,a);break a}}while(0);lE(i);i=f[e>>2]|0;d=i+32|0;e=f[d>>2]|0;if(e|0){g=i+24|0;h=f[g>>2]|0;if((f[i+20>>2]|0)!=(h|0)){j=h+-4|0;f[i+16>>2]=f[j>>2];f[g>>2]=j}f[d>>2]=e+-1}d=f[i+64>>2]|0;c=f[i+68>>2]|0;if((d|0)!=(c|0))do{e=d+20|0;g=f[e>>2]|0;if(g|0){h=d+12|0;a=f[h>>2]|0;if((f[d+8>>2]|0)!=(a|0)){j=a+-4|0;f[d+4>>2]=f[j>>2];f[h>>2]=j}f[e>>2]=g+-1}d=d+52|0}while((d|0)!=(c|0));d=f[i+76>>2]|0;j=f[i+80>>2]|0;if((d|0)!=(j|0))do{e=d+36|0;g=f[e>>2]|0;if(g|0){h=d+28|0;a=f[h>>2]|0;if((f[d+24>>2]|0)!=(a|0)){i=a+-4|0;f[d+20>>2]=f[i>>2];f[h>>2]=i}f[e>>2]=g+-1}e=f[d+68>>2]|0;i=f[d+72>>2]|0;if((e|0)!=(i|0))do{a=e+16|0;c=f[a>>2]|0;if(c|0){g=e+8|0;h=f[g>>2]|0;if((f[e+4>>2]|0)!=(h|0)){h=h+-4|0;f[e>>2]=f[h>>2];f[g>>2]=h}f[a>>2]=c+-1}e=e+48|0}while((e|0)!=(i|0));d=d+80|0}while((d|0)!=(j|0));if(l)return;j=k+8|0;l=f[j>>2]|0;f[j>>2]=l-1;if((l|0)!=1)return;X4(k,1,1);return}function SB(a,b){a=a|0;b=b|0;Vk[f[(f[a>>2]|0)+120>>2]&1023](a,b);return}function TB(a,b){a=a|0;b=b|0;Vk[f[(f[a>>2]|0)+120>>2]&1023](a,b);return}function UB(a,b){a=a|0;b=b|0;Vk[f[(f[a>>2]|0)+120>>2]&1023](a,b);return}function VB(a,b){a=a|0;b=b|0;Vk[f[(f[a>>2]|0)+120>>2]&1023](a,b);return}function WB(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;i=a+56|0;do if((f[c+108>>2]|0)==0?(b[c+104>>0]|0)!=0:0){l=(BD(c)|0)+12|0;g=a+336|0;d=f[g>>2]|0;if(+n[l>>2]>=0.0)if(CD(d,BD(c)|0)|0)return;else{e=g;d=f[g>>2]|0;break}else{e=g;h=5}}else h=3;while(0);if((h|0)==3){d=a+336|0;e=d;d=f[d>>2]|0;h=5}if((h|0)==5)f[d+36>>2]=f[d+16>>2];DD(d);k=KD(i,(f[((f[a+168>>2]|0)==0?a+352|0:a+152|0)>>2]|0)+32|0)|0;l=(k|0)==0;if(!l){j=k+8|0;f[j>>2]=(f[j>>2]|0)+1}xk[f[(f[c>>2]|0)+288>>2]&255](c,k+32|0,a)|0;LD(i,k,f[c+136>>2]|0);a:do if(f[c+112>>2]|0)switch(f[a+16>>2]|0){case 0:break a;case 1:{Vk[f[(f[c>>2]|0)+216>>2]&1023](c,a);break a}default:{Vk[f[(f[c>>2]|0)+220>>2]&1023](c,a);break a}}while(0);MD(i);i=f[e>>2]|0;d=i+32|0;e=f[d>>2]|0;if(e|0){g=i+24|0;h=f[g>>2]|0;if((f[i+20>>2]|0)!=(h|0)){j=h+-4|0;f[i+16>>2]=f[j>>2];f[g>>2]=j}f[d>>2]=e+-1}d=f[i+64>>2]|0;c=f[i+68>>2]|0;if((d|0)!=(c|0))do{e=d+20|0;g=f[e>>2]|0;if(g|0){h=d+12|0;a=f[h>>2]|0;if((f[d+8>>2]|0)!=(a|0)){j=a+-4|0;f[d+4>>2]=f[j>>2];f[h>>2]=j}f[e>>2]=g+-1}d=d+52|0}while((d|0)!=(c|0));d=f[i+76>>2]|0;j=f[i+80>>2]|0;if((d|0)!=(j|0))do{e=d+36|0;g=f[e>>2]|0;if(g|0){h=d+28|0;a=f[h>>2]|0;if((f[d+24>>2]|0)!=(a|0)){i=a+-4|0;f[d+20>>2]=f[i>>2];f[h>>2]=i}f[e>>2]=g+-1}e=f[d+68>>2]|0;i=f[d+72>>2]|0;if((e|0)!=(i|0))do{g=e+16|0;h=f[g>>2]|0;if(h|0){a=e+8|0;c=f[a>>2]|0;if((f[e+4>>2]|0)!=(c|0)){c=c+-4|0;f[e>>2]=f[c>>2];f[a>>2]=c}f[g>>2]=h+-1}e=e+48|0}while((e|0)!=(i|0));d=d+80|0}while((d|0)!=(j|0));if(l)return;j=k+8|0;l=f[j>>2]|0;f[j>>2]=l-1;if((l|0)!=1)return;X4(k,1,1);return}function XB(a,b){a=a|0;b=b|0;Vk[f[(f[a>>2]|0)+148>>2]&1023](a,b);return}function YB(a,b){a=a|0;b=b|0;Vk[f[(f[a>>2]|0)+148>>2]&1023](a,b);return}function ZB(a,b){a=a|0;b=b|0;Vk[f[(f[a>>2]|0)+148>>2]&1023](a,b);return}function _B(a,b){a=a|0;b=b|0;Vk[f[(f[a>>2]|0)+148>>2]&1023](a,b);return}function $B(a,b){a=a|0;b=b|0;Vk[f[(f[a>>2]|0)+148>>2]&1023](a,b);return}function aC(a,b){a=a|0;b=b|0;Vk[f[(f[a>>2]|0)+108>>2]&1023](a,b);return}function bC(a,b){a=a|0;b=b|0;Vk[f[(f[a>>2]|0)+120>>2]&1023](a,b);return}function cC(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;do if((f[c+108>>2]|0)==0?(b[c+104>>0]|0)!=0:0){j=(BD(c)|0)+12|0;g=a+336|0;d=f[g>>2]|0;if(+n[j>>2]>=0.0)if(CD(d,BD(c)|0)|0)return;else{e=g;d=f[g>>2]|0;break}else{e=g;h=5}}else h=3;while(0);if((h|0)==3){d=a+336|0;e=d;d=f[d>>2]|0;h=5}if((h|0)==5)f[d+36>>2]=f[d+16>>2];DD(d);a:do if(f[c+112>>2]|0)switch(f[a+16>>2]|0){case 0:break a;case 1:{Vk[f[(f[c>>2]|0)+216>>2]&1023](c,a);break a}default:{Vk[f[(f[c>>2]|0)+220>>2]&1023](c,a);break a}}while(0);i=f[e>>2]|0;d=i+32|0;e=f[d>>2]|0;if(e|0){g=i+24|0;a=f[g>>2]|0;if((f[i+20>>2]|0)!=(a|0)){j=a+-4|0;f[i+16>>2]=f[j>>2];f[g>>2]=j}f[d>>2]=e+-1}d=f[i+64>>2]|0;h=f[i+68>>2]|0;if((d|0)!=(h|0))do{e=d+20|0;g=f[e>>2]|0;if(g|0){a=d+12|0;c=f[a>>2]|0;if((f[d+8>>2]|0)!=(c|0)){j=c+-4|0;f[d+4>>2]=f[j>>2];f[a>>2]=j}f[e>>2]=g+-1}d=d+52|0}while((d|0)!=(h|0));d=f[i+76>>2]|0;j=f[i+80>>2]|0;if((d|0)==(j|0))return;do{e=d+36|0;g=f[e>>2]|0;if(g|0){a=d+28|0;c=f[a>>2]|0;if((f[d+24>>2]|0)!=(c|0)){i=c+-4|0;f[d+20>>2]=f[i>>2];f[a>>2]=i}f[e>>2]=g+-1}e=f[d+68>>2]|0;i=f[d+72>>2]|0;if((e|0)!=(i|0))do{g=e+16|0;a=f[g>>2]|0;if(a|0){c=e+8|0;h=f[c>>2]|0;if((f[e+4>>2]|0)!=(h|0)){h=h+-4|0;f[e>>2]=f[h>>2];f[c>>2]=h}f[g>>2]=a+-1}e=e+48|0}while((e|0)!=(i|0));d=d+80|0}while((d|0)!=(j|0));return}function dC(a,b){a=a|0;b=b|0;Vk[f[(f[a>>2]|0)+180>>2]&1023](a,b);return}function eC(a,b){a=a|0;b=b|0;Vk[f[(f[a>>2]|0)+120>>2]&1023](a,b);return}function fC(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0;q=u;u=u+96|0;i=q+80|0;j=q;k=a+56|0;p=a+28|0;l=a+336|0;AD(f[l>>2]|0,p);if((f[c+108>>2]|0)==0?(b[c+104>>0]|0)!=0:0){o=(BD(c)|0)+12|0;d=f[l>>2]|0;if(+n[o>>2]>=0.0){o=CD(d,BD(c)|0)|0;e=f[l>>2]|0;if(o){d=f[e+76>>2]|0;m=f[e+80>>2]|0;if((d|0)==(m|0)){u=q;return}l=f[p>>2]|0;k=(f[a+32>>2]|0)-l|0;j=d;do{a=f[j+8>>2]|0;p=f[j+4>>2]|0;d=p;g=a;a:do if((a-p|0)==(k|0)){if((d|0)!=(g|0)){e=l;while(1){if((f[d>>2]|0)!=(f[e>>2]|0))break a;d=d+4|0;if((d|0)==(g|0))break;else e=e+4|0}}d=j+36|0;e=f[d>>2]|0;if(e|0){g=j+28|0;h=f[g>>2]|0;if((f[j+24>>2]|0)!=(h|0)){p=h+-4|0;f[j+20>>2]=f[p>>2];f[g>>2]=p}f[d>>2]=e+-1}d=f[j+68>>2]|0;i=f[j+72>>2]|0;if((d|0)!=(i|0))do{e=d+16|0;g=f[e>>2]|0;if(g|0){h=d+8|0;c=f[h>>2]|0;if((f[d+4>>2]|0)!=(c|0)){p=c+-4|0;f[d>>2]=f[p>>2];f[h>>2]=p}f[e>>2]=g+-1}d=d+48|0}while((d|0)!=(i|0))}while(0);j=j+80|0}while((j|0)!=(m|0));u=q;return}else d=e}else g=5}else{d=f[l>>2]|0;g=5}if((g|0)==5)f[d+36>>2]=f[d+16>>2];DD(d);d=f[c+136>>2]|0;if(d|0){e=j+36|0;g=j;h=g+68|0;do{f[g>>2]=0;g=g+4|0}while((g|0)<(h|0));f[e>>2]=1;f[j+68>>2]=0;f[j+72>>2]=0;f[j+76>>2]=0;if(oXa(j,p,d,k,(b[a+380>>0]|0)!=0)|0?+n[j>>2]>+n[a+372>>2]:0)ED(i,a+384|0,j,j);sC(j)}b:do if(f[c+112>>2]|0)switch(f[a+16>>2]|0){case 0:break b;case 1:{Vk[f[(f[c>>2]|0)+216>>2]&1023](c,a);break b}default:{Vk[f[(f[c>>2]|0)+220>>2]&1023](c,a);break b}}while(0);j=f[l>>2]|0;d=j+32|0;e=f[d>>2]|0;if(e|0){g=j+24|0;h=f[g>>2]|0;if((f[j+20>>2]|0)!=(h|0)){o=h+-4|0;f[j+16>>2]=f[o>>2];f[g>>2]=o}f[d>>2]=e+-1}d=f[j+64>>2]|0;i=f[j+68>>2]|0;if((d|0)!=(i|0))do{e=d+20|0;g=f[e>>2]|0;if(g|0){h=d+12|0;c=f[h>>2]|0;if((f[d+8>>2]|0)!=(c|0)){o=c+-4|0;f[d+4>>2]=f[o>>2];f[h>>2]=o}f[e>>2]=g+-1}d=d+52|0}while((d|0)!=(i|0));k=f[j+76>>2]|0;o=f[j+80>>2]|0;if((k|0)==(o|0)){u=q;return}j=k;do{d=j+36|0;e=f[d>>2]|0;if(e|0){g=j+28|0;h=f[g>>2]|0;if((f[j+24>>2]|0)!=(h|0)){m=h+-4|0;f[j+20>>2]=f[m>>2];f[g>>2]=m}f[d>>2]=e+-1}d=f[j+68>>2]|0;i=f[j+72>>2]|0;if((d|0)!=(i|0))do{e=d+16|0;g=f[e>>2]|0;if(g|0){h=d+8|0;c=f[h>>2]|0;if((f[d+4>>2]|0)!=(c|0)){m=c+-4|0;f[d>>2]=f[m>>2];f[h>>2]=m}f[e>>2]=g+-1}d=d+48|0}while((d|0)!=(i|0));j=j+80|0}while((j|0)!=(o|0));m=f[p>>2]|0;l=(f[a+32>>2]|0)-m|0;j=k;do{a=f[j+8>>2]|0;p=f[j+4>>2]|0;d=p;g=a;c:do if((a-p|0)==(l|0)){if((d|0)!=(g|0)){e=m;while(1){if((f[d>>2]|0)!=(f[e>>2]|0))break c;d=d+4|0;if((d|0)==(g|0))break;else e=e+4|0}}d=j+36|0;e=f[d>>2]|0;if(e|0){g=j+28|0;h=f[g>>2]|0;if((f[j+24>>2]|0)!=(h|0)){p=h+-4|0;f[j+20>>2]=f[p>>2];f[g>>2]=p}f[d>>2]=e+-1}d=f[j+68>>2]|0;i=f[j+72>>2]|0;if((d|0)!=(i|0))do{e=d+16|0;g=f[e>>2]|0;if(g|0){h=d+8|0;c=f[h>>2]|0;if((f[d+4>>2]|0)!=(c|0)){p=c+-4|0;f[d>>2]=f[p>>2];f[h>>2]=p}f[e>>2]=g+-1}d=d+48|0}while((d|0)!=(i|0))}while(0);j=j+80|0}while((j|0)!=(o|0));u=q;return}function gC(a,b){a=a|0;b=b|0;Vk[f[(f[a>>2]|0)+120>>2]&1023](a,b);return}function hC(a){a=a|0;var b=0,c=0;b=a+-56|0;f[b>>2]=90348;a=b+396|0;f[a>>2]=90744;c=b+56|0;f[c>>2]=90556;zD(b+384|0,f[b+388>>2]|0);fD(c);qC(b,90912);ow(a);return}function iC(a){a=a|0;var b=0,c=0;a=a+-56|0;f[a>>2]=90348;b=a+396|0;f[b>>2]=90744;c=a+56|0;f[c>>2]=90556;zD(a+384|0,f[a+388>>2]|0);fD(c);qC(a,90912);ow(b);NDb(a);return}function jC(a){a=a|0;var b=0,c=0;b=a+(f[(f[a>>2]|0)+-16>>2]|0)|0;f[b>>2]=90348;a=b+396|0;f[a>>2]=90744;c=b+56|0;f[c>>2]=90556;zD(b+384|0,f[b+388>>2]|0);fD(c);qC(b,90912);ow(a);return}function kC(a){a=a|0;var b=0,c=0;a=a+(f[(f[a>>2]|0)+-16>>2]|0)|0;f[a>>2]=90348;b=a+396|0;f[b>>2]=90744;c=a+56|0;f[c>>2]=90556;zD(a+384|0,f[a+388>>2]|0);fD(c);qC(a,90912);ow(b);NDb(a);return}function lC(a){a=a|0;a=LDb(432)|0;oC(a);return a+(f[(f[a>>2]|0)+-12>>2]|0)|0}function mC(a){a=a|0;return 241076}function nC(a){a=a|0;return 177185}function oC(a){a=a|0;var c=0,d=0;d=a+396|0;BCa(d);c=a+408|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[a+420>>2]=2;f[a+424>>2]=0;f[a>>2]=58844;f[d>>2]=59212;f[a+12>>2]=0;c=a+28|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;f[c+16>>2]=0;f[c+20>>2]=0;f[c+24>>2]=0;f[a+4>>2]=3;f[a+8>>2]=-1;f[a+16>>2]=3;f[a+20>>2]=-1;f[a+24>>2]=0;c=a+56|0;pC(c);f[a>>2]=90348;f[d>>2]=90744;f[c>>2]=90556;f[a+388>>2]=0;f[a+392>>2]=0;f[a+384>>2]=a+388;f[a+72>>2]=15;c=a+60|0;if(f[a+64>>2]|0){d=a+372|0;n[d>>2]=.004999999888241291;d=a+376|0;f[d>>2]=10;d=a+380|0;b[d>>0]=0;return}f[c>>2]=f[c>>2]&-3;d=a+372|0;n[d>>2]=.004999999888241291;d=a+376|0;f[d>>2]=10;d=a+380|0;b[d>>0]=0;return}function pC(a){a=a|0;var c=0,d=0,e=0,g=0;f[a>>2]=90104;f[a+28>>2]=0;f[a+4>>2]=2147483647;f[a+8>>2]=0;f[a+16>>2]=57;n[a+20>>2]=1.0;n[a+24>>2]=2.0;f[a+12>>2]=1;p[a+32>>3]=.0005;b[a+40>>0]=1;b[a+41>>0]=0;n[a+44>>2]=4.0;f[a+48>>2]=10;f[a+52>>2]=-1;f[a+56>>2]=-1;f[a+60>>2]=-1;_A(a);f[a>>2]=90932;g=a+156|0;c=a+296|0;iGb(a+64|0,0,212)|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;n[a+284>>2]=-1.0;f[a+288>>2]=0;f[a+292>>2]=7;f[a+312>>2]=0;d=LDb(160)|0;CCa(d,0);f[d>>2]=88164;e=d+12|0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;f[d+24>>2]=2;f[d+28>>2]=0;SWa(d+32|0);f[d>>2]=90960;e=f[c>>2]|0;if(((e|0)!=(d|0)?(f[c>>2]=d,d=d+8|0,f[d>>2]=(f[d>>2]|0)+1,e|0):0)?(c=e+8|0,d=f[c>>2]|0,f[c>>2]=d-1,(d|0)==1):0)X4(e,1,1);f[a+276>>2]=0;f[a+280>>2]=0;c=a+180|0;do if(f[c>>2]|0){d=a+172|0;e=f[d>>2]|0;if((e|0)==(f[a+176>>2]|0)){rC(a+168|0,g);break}else{f[e>>2]=f[g>>2];f[e+4>>2]=f[g+4>>2];f[e+8>>2]=f[g+8>>2];f[d>>2]=(f[d>>2]|0)+12;break}}while(0);n[a+156>>2]=0.0;n[a+160>>2]=0.0;n[a+164>>2]=0.0;f[c>>2]=(f[c>>2]|0)+1;return}function qC(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=f[b>>2]|0;f[a>>2]=c;f[a+(f[c+-12>>2]|0)>>2]=f[b+4>>2];b=a+52|0;c=f[b>>2]|0;if(c|0?(e=c+8|0,d=f[e>>2]|0,f[e>>2]=d-1,(d|0)==1):0)X4(c,1,1);f[b>>2]=0;b=a+48|0;c=f[b>>2]|0;if(c|0?(d=c+8|0,e=f[d>>2]|0,f[d>>2]=e-1,(e|0)==1):0)X4(c,1,1);f[b>>2]=0;b=a+44|0;c=f[b>>2]|0;if(c|0?(d=c+8|0,e=f[d>>2]|0,f[d>>2]=e-1,(e|0)==1):0)X4(c,1,1);f[b>>2]=0;b=a+40|0;c=f[b>>2]|0;if(c|0?(d=c+8|0,e=f[d>>2]|0,f[d>>2]=e-1,(e|0)==1):0)X4(c,1,1);f[b>>2]=0;b=f[a+28>>2]|0;if(b|0){f[a+32>>2]=b;NDb(b)}b=a+12|0;c=f[b>>2]|0;if(!c){f[b>>2]=0;return}d=c+8|0;e=f[d>>2]|0;f[d>>2]=e-1;if((e|0)!=1){f[b>>2]=0;return}X4(c,1,1);f[b>>2]=0;return}function rC(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;h=a+4|0;i=f[a>>2]|0;j=(f[h>>2]|0)-i|0;d=(j|0)/12|0;c=d+1|0;if(c>>>0>357913941)KEb(a);k=a+8|0;e=((f[k>>2]|0)-i|0)/12|0;g=e<<1;g=e>>>0<178956970?(g>>>0<c>>>0?c:g):357913941;do if(g)if(g>>>0>357913941){k=mb(8)|0;RDb(k,238482);f[k>>2]=144484;qb(k|0,84192,1464)}else{e=LDb(g*12|0)|0;break}else e=0;while(0);d=e+(d*12|0)|0;f[d>>2]=f[b>>2];f[d+4>>2]=f[b+4>>2];f[d+8>>2]=f[b+8>>2];c=d+(((j|0)/-12|0)*12|0)|0;if((j|0)>0)gGb(c|0,i|0,j|0)|0;f[a>>2]=c;f[h>>2]=d+12;f[k>>2]=e+(g*12|0);if(!i)return;NDb(i);return}function sC(a){a=a|0;var b=0,c=0,d=0,e=0,g=0;d=a+68|0;e=f[d>>2]|0;if(e|0){g=a+72|0;b=f[g>>2]|0;if((b|0)==(e|0))b=e;else{do{c=f[b+-12>>2]|0;if(c|0){f[b+-8>>2]=c;NDb(c)}c=f[b+-24>>2]|0;if(c|0){f[b+-20>>2]=c;NDb(c)}c=f[b+-44>>2]|0;if(c|0){f[b+-40>>2]=c;NDb(c)}b=b+-48|0}while((b|0)!=(e|0));b=f[d>>2]|0}f[g>>2]=e;NDb(b)}b=f[a+56>>2]|0;if(b|0){f[a+60>>2]=b;NDb(b)}b=f[a+44>>2]|0;if(b|0){f[a+48>>2]=b;NDb(b)}b=f[a+24>>2]|0;if(b|0){f[a+28>>2]=b;NDb(b)}b=a+16|0;c=f[b>>2]|0;if(c|0?(e=c+8|0,g=f[e>>2]|0,f[e>>2]=g-1,(g|0)==1):0)X4(c,1,1);f[b>>2]=0;b=f[a+4>>2]|0;if(!b)return;f[a+8>>2]=b;NDb(b);return}function tC(a){a=a|0;ow(a);return}function uC(a){a=a|0;ow(a);NDb(a);return}function vC(a){a=a|0;var b=0;a=LDb(160)|0;CCa(a,0);f[a>>2]=88164;b=a+12|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[a+24>>2]=2;f[a+28>>2]=0;SWa(a+32|0);f[a>>2]=90960;return a|0}function wC(a,b){a=a|0;b=b|0;var c=0,d=0;c=u;u=u+16|0;d=c;b=LDb(160)|0;f[d>>2]=91132;f[d+4>>2]=0;nw(b,a,d);p[b+32>>3]=+p[a+32>>3];p[b+40>>3]=+p[a+40>>3];p[b+48>>3]=+p[a+48>>3];p[b+56>>3]=+p[a+56>>3];p[b+64>>3]=+p[a+64>>3];p[b+72>>3]=+p[a+72>>3];p[b+80>>3]=+p[a+80>>3];p[b+88>>3]=+p[a+88>>3];p[b+96>>3]=+p[a+96>>3];p[b+104>>3]=+p[a+104>>3];p[b+112>>3]=+p[a+112>>3];p[b+120>>3]=+p[a+120>>3];p[b+128>>3]=+p[a+128>>3];p[b+136>>3]=+p[a+136>>3];p[b+144>>3]=+p[a+144>>3];p[b+152>>3]=+p[a+152>>3];f[b>>2]=90960;u=c;return b|0}function xC(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,59376,0)|0)!=0;return b|0}function yC(a){a=a|0;return 241076}function zC(a){a=a|0;return 246412}function AC(a){a=a|0;return}function BC(a){a=a|0;NDb(a);return}function CC(a,b){a=a|0;b=b|0;return b|0}function DC(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}if(!(f[a+4>>2]&1))return b|0;b=eD(b,a)|0;return b|0}function EC(a,b){a=a|0;b=b|0;var c=0;if(!b){c=0;return c|0}c=sk[f[(f[b>>2]|0)+92>>2]&2047](b)|0;if(c|0){c=wk[f[(f[a>>2]|0)+20>>2]&1023](a,c)|0;return c|0}if(!(f[a+4>>2]&2)){c=b;return c|0}c=dD(b,a)|0;return c|0}function FC(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}if(!(f[a+4>>2]&4))return b|0;b=cD(b,a)|0;return b|0}function GC(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}if(!(f[a+4>>2]&8))return b|0;b=bD(b,a)|0;return b|0}function HC(a,b){a=a|0;b=b|0;var c=0;if(!b){c=0;return c|0}if(!(f[a+4>>2]&16)){c=b;return c|0}c=bFb(b,58352,63560,0)|0;if(!c){c=aD(b,a)|0;return c|0}else{c=wk[f[(f[a>>2]|0)+32>>2]&1023](a,c)|0;return c|0}return 0}function IC(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}if(!(f[a+4>>2]&32))return b|0;b=$C(b,a)|0;return b|0}function JC(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}if(!(f[a+4>>2]&64))return b|0;b=_C(b,a)|0;return b|0}function KC(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}if(!(f[a+4>>2]&128))return b|0;b=ZC(b,a)|0;return b|0}function LC(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}if(!(f[a+4>>2]&256))return b|0;b=YC(b,a)|0;return b|0}function MC(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}if(!(f[a+4>>2]&512))return b|0;b=XC(b,a)|0;return b|0}function NC(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}if(!(f[a+4>>2]&1024))return b|0;b=WC(b,a)|0;return b|0}function OC(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}if(!(f[a+4>>2]&1024))return b|0;b=VC(b,a)|0;return b|0}function PC(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;if(!b){h=0;return h|0}if(!(f[a+4>>2]&2048)){h=b;return h|0}c=UC(b,a)|0;if(!c){h=0;return h|0}g=c+4|0;d=f[g>>2]|0;if(d|0?(f[g>>2]=0,e=d+(f[(f[d>>2]|0)+-12>>2]|0)|0,d=e+8|0,g=f[d>>2]|0,f[d>>2]=g-1,(g|0)==1):0)X4(e,1,1);b=f[b+4>>2]|0;if(!b){h=c;return h|0}do{g=UC(b,a)|0;if(g|0){d=g+4|0;e=f[d>>2]|0;if(e|0?(f[d>>2]=0,h=e+(f[(f[e>>2]|0)+-12>>2]|0)|0,d=h+8|0,e=f[d>>2]|0,f[d>>2]=e-1,(e|0)==1):0)X4(h,1,1);d=c;while(1){e=f[d+4>>2]|0;if(!e)break;else d=e}f[d+4>>2]=g;g=g+(f[(f[g>>2]|0)+-12>>2]|0)+8|0;f[g>>2]=(f[g>>2]|0)+1}b=f[b+4>>2]|0}while((b|0)!=0);return c|0}function QC(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}if(!(f[a+4>>2]&2048))return b|0;b=TC(b,a)|0;return b|0}function RC(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}if(!(f[a+4>>2]&2048))return b|0;b=SC(b,a)|0;return b|0}function SC(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0;g=u;u=u+16|0;e=g;if(!a){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=1){e=0;u=g;return e|0}d=Nv(Mv(2)|0,221895,88)|0;Ktb(e,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);c=Bvb(e,295164)|0;c=wk[f[(f[c>>2]|0)+28>>2]&1023](c,10)|0;Cvb(e);rub(d,c)|0;Rtb(d)|0;e=0;u=g;return e|0}a=wk[f[(f[a>>2]|0)+4>>2]&1023](a,c)|0;c=(a|0)==0;if(!c?(d=a+8|0,f[d>>2]=(f[d>>2]|0)+1,d=bFb(a,58336,59416,-1)|0,d|0):0){ECa(a)|0;e=d;u=g;return e|0}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>1){d=Nv(Mv(2)|0,221806,88)|0;Ktb(e,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);h=Bvb(e,295164)|0;h=wk[f[(f[h>>2]|0)+28>>2]&1023](h,10)|0;Cvb(e);rub(d,h)|0;Rtb(d)|0}if(c){h=0;u=g;return h|0}e=a+8|0;h=f[e>>2]|0;f[e>>2]=h-1;if((h|0)!=1){h=0;u=g;return h|0}X4(a,1,1);h=0;u=g;return h|0}function TC(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0;g=u;u=u+16|0;e=g;if(!a){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=1){e=0;u=g;return e|0}d=Nv(Mv(2)|0,221895,88)|0;Ktb(e,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);c=Bvb(e,295164)|0;c=wk[f[(f[c>>2]|0)+28>>2]&1023](c,10)|0;Cvb(e);rub(d,c)|0;Rtb(d)|0;e=0;u=g;return e|0}a=wk[f[(f[a>>2]|0)+4>>2]&1023](a,c)|0;c=(a|0)==0;if(!c?(d=a+8|0,f[d>>2]=(f[d>>2]|0)+1,d=bFb(a,58336,59440,-1)|0,d|0):0){ECa(a)|0;e=d;u=g;return e|0}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>1){d=Nv(Mv(2)|0,221806,88)|0;Ktb(e,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);h=Bvb(e,295164)|0;h=wk[f[(f[h>>2]|0)+28>>2]&1023](h,10)|0;Cvb(e);rub(d,h)|0;Rtb(d)|0}if(c){h=0;u=g;return h|0}e=a+8|0;h=f[e>>2]|0;f[e>>2]=h-1;if((h|0)!=1){h=0;u=g;return h|0}X4(a,1,1);h=0;u=g;return h|0}function UC(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0;g=u;u=u+16|0;e=g;if(!a){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=1){e=0;u=g;return e|0}d=Nv(Mv(2)|0,221895,88)|0;Ktb(e,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);c=Bvb(e,295164)|0;c=wk[f[(f[c>>2]|0)+28>>2]&1023](c,10)|0;Cvb(e);rub(d,c)|0;Rtb(d)|0;e=0;u=g;return e|0}a=wk[f[(f[a>>2]|0)+4>>2]&1023](a,c)|0;c=(a|0)==0;if(!c?(d=a+8|0,f[d>>2]=(f[d>>2]|0)+1,d=bFb(a,58336,57384,-1)|0,d|0):0){ECa(a)|0;e=d;u=g;return e|0}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>1){d=Nv(Mv(2)|0,221806,88)|0;Ktb(e,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);h=Bvb(e,295164)|0;h=wk[f[(f[h>>2]|0)+28>>2]&1023](h,10)|0;Cvb(e);rub(d,h)|0;Rtb(d)|0}if(c){h=0;u=g;return h|0}e=a+8|0;h=f[e>>2]|0;f[e>>2]=h-1;if((h|0)!=1){h=0;u=g;return h|0}X4(a,1,1);h=0;u=g;return h|0}function VC(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0;g=u;u=u+16|0;e=g;if(!a){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=1){e=0;u=g;return e|0}d=Nv(Mv(2)|0,221895,88)|0;Ktb(e,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);c=Bvb(e,295164)|0;c=wk[f[(f[c>>2]|0)+28>>2]&1023](c,10)|0;Cvb(e);rub(d,c)|0;Rtb(d)|0;e=0;u=g;return e|0}a=wk[f[(f[a>>2]|0)+16>>2]&1023](a,c)|0;c=(a|0)==0;if(!c?(d=a+8|0,f[d>>2]=(f[d>>2]|0)+1,d=bFb(a,58336,63720,0)|0,d|0):0){ECa(a)|0;e=d;u=g;return e|0}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>1){d=Nv(Mv(2)|0,221806,88)|0;Ktb(e,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);h=Bvb(e,295164)|0;h=wk[f[(f[h>>2]|0)+28>>2]&1023](h,10)|0;Cvb(e);rub(d,h)|0;Rtb(d)|0}if(c){h=0;u=g;return h|0}e=a+8|0;h=f[e>>2]|0;f[e>>2]=h-1;if((h|0)!=1){h=0;u=g;return h|0}X4(a,1,1);h=0;u=g;return h|0}function WC(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0;g=u;u=u+16|0;e=g;if(!a){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=1){e=0;u=g;return e|0}d=Nv(Mv(2)|0,221895,88)|0;Ktb(e,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);c=Bvb(e,295164)|0;c=wk[f[(f[c>>2]|0)+28>>2]&1023](c,10)|0;Cvb(e);rub(d,c)|0;Rtb(d)|0;e=0;u=g;return e|0}a=wk[f[(f[a>>2]|0)+16>>2]&1023](a,c)|0;c=(a|0)==0;if(!c?(d=a+8|0,f[d>>2]=(f[d>>2]|0)+1,d=bFb(a,58336,63368,0)|0,d|0):0){ECa(a)|0;e=d;u=g;return e|0}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>1){d=Nv(Mv(2)|0,221806,88)|0;Ktb(e,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);h=Bvb(e,295164)|0;h=wk[f[(f[h>>2]|0)+28>>2]&1023](h,10)|0;Cvb(e);rub(d,h)|0;Rtb(d)|0}if(c){h=0;u=g;return h|0}e=a+8|0;h=f[e>>2]|0;f[e>>2]=h-1;if((h|0)!=1){h=0;u=g;return h|0}X4(a,1,1);h=0;u=g;return h|0}function XC(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0;g=u;u=u+16|0;e=g;if(!a){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=1){e=0;u=g;return e|0}d=Nv(Mv(2)|0,221895,88)|0;Ktb(e,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);c=Bvb(e,295164)|0;c=wk[f[(f[c>>2]|0)+28>>2]&1023](c,10)|0;Cvb(e);rub(d,c)|0;Rtb(d)|0;e=0;u=g;return e|0}a=wk[f[(f[a>>2]|0)+16>>2]&1023](a,c)|0;c=(a|0)==0;if(!c?(d=a+8|0,f[d>>2]=(f[d>>2]|0)+1,d=bFb(a,58336,63240,0)|0,d|0):0){ECa(a)|0;e=d;u=g;return e|0}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>1){d=Nv(Mv(2)|0,221806,88)|0;Ktb(e,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);h=Bvb(e,295164)|0;h=wk[f[(f[h>>2]|0)+28>>2]&1023](h,10)|0;Cvb(e);rub(d,h)|0;Rtb(d)|0}if(c){h=0;u=g;return h|0}e=a+8|0;h=f[e>>2]|0;f[e>>2]=h-1;if((h|0)!=1){h=0;u=g;return h|0}X4(a,1,1);h=0;u=g;return h|0}function YC(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0;g=u;u=u+16|0;e=g;if(!a){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=1){e=0;u=g;return e|0}d=Nv(Mv(2)|0,221895,88)|0;Ktb(e,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);c=Bvb(e,295164)|0;c=wk[f[(f[c>>2]|0)+28>>2]&1023](c,10)|0;Cvb(e);rub(d,c)|0;Rtb(d)|0;e=0;u=g;return e|0}a=wk[f[(f[a>>2]|0)+16>>2]&1023](a,c)|0;c=(a|0)==0;if(!c?(d=a+8|0,f[d>>2]=(f[d>>2]|0)+1,d=bFb(a,58336,59464,0)|0,d|0):0){ECa(a)|0;e=d;u=g;return e|0}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>1){d=Nv(Mv(2)|0,221806,88)|0;Ktb(e,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);h=Bvb(e,295164)|0;h=wk[f[(f[h>>2]|0)+28>>2]&1023](h,10)|0;Cvb(e);rub(d,h)|0;Rtb(d)|0}if(c){h=0;u=g;return h|0}e=a+8|0;h=f[e>>2]|0;f[e>>2]=h-1;if((h|0)!=1){h=0;u=g;return h|0}X4(a,1,1);h=0;u=g;return h|0}function ZC(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0;g=u;u=u+16|0;e=g;if(!a){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=1){e=0;u=g;return e|0}d=Nv(Mv(2)|0,221895,88)|0;Ktb(e,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);c=Bvb(e,295164)|0;c=wk[f[(f[c>>2]|0)+28>>2]&1023](c,10)|0;Cvb(e);rub(d,c)|0;Rtb(d)|0;e=0;u=g;return e|0}a=wk[f[(f[a>>2]|0)+16>>2]&1023](a,c)|0;c=(a|0)==0;if(!c?(d=a+8|0,f[d>>2]=(f[d>>2]|0)+1,d=bFb(a,58336,58600,0)|0,d|0):0){ECa(a)|0;e=d;u=g;return e|0}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>1){d=Nv(Mv(2)|0,221806,88)|0;Ktb(e,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);h=Bvb(e,295164)|0;h=wk[f[(f[h>>2]|0)+28>>2]&1023](h,10)|0;Cvb(e);rub(d,h)|0;Rtb(d)|0}if(c){h=0;u=g;return h|0}e=a+8|0;h=f[e>>2]|0;f[e>>2]=h-1;if((h|0)!=1){h=0;u=g;return h|0}X4(a,1,1);h=0;u=g;return h|0}function _C(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0;g=u;u=u+16|0;e=g;if(!a){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=1){e=0;u=g;return e|0}d=Nv(Mv(2)|0,221895,88)|0;Ktb(e,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);c=Bvb(e,295164)|0;c=wk[f[(f[c>>2]|0)+28>>2]&1023](c,10)|0;Cvb(e);rub(d,c)|0;Rtb(d)|0;e=0;u=g;return e|0}a=wk[f[(f[a>>2]|0)+16>>2]&1023](a,c)|0;c=(a|0)==0;if(!c?(d=a+8|0,f[d>>2]=(f[d>>2]|0)+1,d=bFb(a,58336,59480,0)|0,d|0):0){ECa(a)|0;e=d;u=g;return e|0}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>1){d=Nv(Mv(2)|0,221806,88)|0;Ktb(e,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);h=Bvb(e,295164)|0;h=wk[f[(f[h>>2]|0)+28>>2]&1023](h,10)|0;Cvb(e);rub(d,h)|0;Rtb(d)|0}if(c){h=0;u=g;return h|0}e=a+8|0;h=f[e>>2]|0;f[e>>2]=h-1;if((h|0)!=1){h=0;u=g;return h|0}X4(a,1,1);h=0;u=g;return h|0}function $C(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0;g=u;u=u+16|0;e=g;if(!a){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=1){e=0;u=g;return e|0}d=Nv(Mv(2)|0,221895,88)|0;Ktb(e,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);c=Bvb(e,295164)|0;c=wk[f[(f[c>>2]|0)+28>>2]&1023](c,10)|0;Cvb(e);rub(d,c)|0;Rtb(d)|0;e=0;u=g;return e|0}a=wk[f[(f[a>>2]|0)+16>>2]&1023](a,c)|0;c=(a|0)==0;if(!c?(d=a+8|0,f[d>>2]=(f[d>>2]|0)+1,d=bFb(a,58336,63560,0)|0,d|0):0){ECa(a)|0;e=d;u=g;return e|0}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>1){d=Nv(Mv(2)|0,221806,88)|0;Ktb(e,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);h=Bvb(e,295164)|0;h=wk[f[(f[h>>2]|0)+28>>2]&1023](h,10)|0;Cvb(e);rub(d,h)|0;Rtb(d)|0}if(c){h=0;u=g;return h|0}e=a+8|0;h=f[e>>2]|0;f[e>>2]=h-1;if((h|0)!=1){h=0;u=g;return h|0}X4(a,1,1);h=0;u=g;return h|0}function aD(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0;g=u;u=u+16|0;e=g;if(!a){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=1){e=0;u=g;return e|0}d=Nv(Mv(2)|0,221895,88)|0;Ktb(e,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);c=Bvb(e,295164)|0;c=wk[f[(f[c>>2]|0)+28>>2]&1023](c,10)|0;Cvb(e);rub(d,c)|0;Rtb(d)|0;e=0;u=g;return e|0}a=wk[f[(f[a>>2]|0)+16>>2]&1023](a,c)|0;c=(a|0)==0;if(!c?(d=a+8|0,f[d>>2]=(f[d>>2]|0)+1,d=bFb(a,58336,58352,0)|0,d|0):0){ECa(a)|0;e=d;u=g;return e|0}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>1){d=Nv(Mv(2)|0,221806,88)|0;Ktb(e,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);h=Bvb(e,295164)|0;h=wk[f[(f[h>>2]|0)+28>>2]&1023](h,10)|0;Cvb(e);rub(d,h)|0;Rtb(d)|0}if(c){h=0;u=g;return h|0}e=a+8|0;h=f[e>>2]|0;f[e>>2]=h-1;if((h|0)!=1){h=0;u=g;return h|0}X4(a,1,1);h=0;u=g;return h|0}function bD(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0;g=u;u=u+16|0;e=g;if(!a){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=1){e=0;u=g;return e|0}d=Nv(Mv(2)|0,221895,88)|0;Ktb(e,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);c=Bvb(e,295164)|0;c=wk[f[(f[c>>2]|0)+28>>2]&1023](c,10)|0;Cvb(e);rub(d,c)|0;Rtb(d)|0;e=0;u=g;return e|0}a=wk[f[(f[a>>2]|0)+16>>2]&1023](a,c)|0;c=(a|0)==0;if(!c?(d=a+8|0,f[d>>2]=(f[d>>2]|0)+1,d=bFb(a,58336,63464,0)|0,d|0):0){ECa(a)|0;e=d;u=g;return e|0}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>1){d=Nv(Mv(2)|0,221806,88)|0;Ktb(e,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);h=Bvb(e,295164)|0;h=wk[f[(f[h>>2]|0)+28>>2]&1023](h,10)|0;Cvb(e);rub(d,h)|0;Rtb(d)|0}if(c){h=0;u=g;return h|0}e=a+8|0;h=f[e>>2]|0;f[e>>2]=h-1;if((h|0)!=1){h=0;u=g;return h|0}X4(a,1,1);h=0;u=g;return h|0}function cD(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0;g=u;u=u+16|0;e=g;if(!a){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=1){e=0;u=g;return e|0}d=Nv(Mv(2)|0,221895,88)|0;Ktb(e,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);c=Bvb(e,295164)|0;c=wk[f[(f[c>>2]|0)+28>>2]&1023](c,10)|0;Cvb(e);rub(d,c)|0;Rtb(d)|0;e=0;u=g;return e|0}a=wk[f[(f[a>>2]|0)+16>>2]&1023](a,c)|0;c=(a|0)==0;if(!c?(d=a+8|0,f[d>>2]=(f[d>>2]|0)+1,d=bFb(a,58336,59496,0)|0,d|0):0){ECa(a)|0;e=d;u=g;return e|0}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>1){d=Nv(Mv(2)|0,221806,88)|0;Ktb(e,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);h=Bvb(e,295164)|0;h=wk[f[(f[h>>2]|0)+28>>2]&1023](h,10)|0;Cvb(e);rub(d,h)|0;Rtb(d)|0}if(c){h=0;u=g;return h|0}e=a+8|0;h=f[e>>2]|0;f[e>>2]=h-1;if((h|0)!=1){h=0;u=g;return h|0}X4(a,1,1);h=0;u=g;return h|0}function dD(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0;g=u;u=u+16|0;e=g;if(!a){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=1){e=0;u=g;return e|0}d=Nv(Mv(2)|0,221895,88)|0;Ktb(e,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);c=Bvb(e,295164)|0;c=wk[f[(f[c>>2]|0)+28>>2]&1023](c,10)|0;Cvb(e);rub(d,c)|0;Rtb(d)|0;e=0;u=g;return e|0}a=wk[f[(f[a>>2]|0)+16>>2]&1023](a,c)|0;c=(a|0)==0;if(!c?(d=a+8|0,f[d>>2]=(f[d>>2]|0)+1,d=bFb(a,58336,58720,0)|0,d|0):0){ECa(a)|0;e=d;u=g;return e|0}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>1){d=Nv(Mv(2)|0,221806,88)|0;Ktb(e,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);h=Bvb(e,295164)|0;h=wk[f[(f[h>>2]|0)+28>>2]&1023](h,10)|0;Cvb(e);rub(d,h)|0;Rtb(d)|0}if(c){h=0;u=g;return h|0}e=a+8|0;h=f[e>>2]|0;f[e>>2]=h-1;if((h|0)!=1){h=0;u=g;return h|0}X4(a,1,1);h=0;u=g;return h|0}function eD(a,c){a=a|0;c=c|0;var d=0,e=0;e=u;u=u+16|0;d=e;if(!a){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=1){d=0;u=e;return d|0}c=Nv(Mv(2)|0,221895,88)|0;Ktb(d,c+(f[(f[c>>2]|0)+-12>>2]|0)|0);a=Bvb(d,295164)|0;a=wk[f[(f[a>>2]|0)+28>>2]&1023](a,10)|0;Cvb(d);rub(c,a)|0;Rtb(c)|0;d=0;u=e;return d|0}a=wk[f[(f[a>>2]|0)+16>>2]&1023](a,c)|0;if(a|0){d=a+8|0;f[d>>2]=(f[d>>2]|0)+1;ECa(a)|0;d=a;u=e;return d|0}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=1){d=0;u=e;return d|0}c=Nv(Mv(2)|0,221806,88)|0;Ktb(d,c+(f[(f[c>>2]|0)+-12>>2]|0)|0);a=Bvb(d,295164)|0;a=wk[f[(f[a>>2]|0)+28>>2]&1023](a,10)|0;Cvb(d);rub(c,a)|0;Rtb(c)|0;d=0;u=e;return d|0}function fD(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;f[a>>2]=90932;hD(a);d=a+300|0;e=f[d>>2]|0;if(e|0){g=a+304|0;b=f[g>>2]|0;if((b|0)==(e|0))b=e;else{do{b=b+-4|0;c=f[b>>2]|0;if(c|0?(i=c+8|0,h=f[i>>2]|0,f[i>>2]=h-1,(h|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(e|0));b=f[d>>2]|0}f[g>>2]=e;NDb(b)}b=a+296|0;c=f[b>>2]|0;if(c|0?(h=c+8|0,i=f[h>>2]|0,f[h>>2]=i-1,(i|0)==1):0)X4(c,1,1);f[b>>2]=0;c=a+264|0;d=f[c>>2]|0;if(d|0){e=a+268|0;b=f[e>>2]|0;if((b|0)==(d|0))b=d;else{do{b=b+-108|0;Nk[f[(f[b>>2]|0)+4>>2]&2047](b)}while((b|0)!=(d|0));b=f[c>>2]|0}f[e>>2]=d;NDb(b)}c=a+252|0;d=f[c>>2]|0;if(d|0){e=a+256|0;b=f[e>>2]|0;if((b|0)==(d|0))b=d;else{do{b=b+-108|0;Nk[f[(f[b>>2]|0)+4>>2]&2047](b)}while((b|0)!=(d|0));b=f[c>>2]|0}f[e>>2]=d;NDb(b)}c=a+240|0;d=f[c>>2]|0;if(d|0){e=a+244|0;b=f[e>>2]|0;if((b|0)==(d|0))b=d;else{do{b=b+-108|0;Nk[f[(f[b>>2]|0)+4>>2]&2047](b)}while((b|0)!=(d|0));b=f[c>>2]|0}f[e>>2]=d;NDb(b)}b=f[a+224>>2]|0;if(b|0){f[a+228>>2]=b;NDb(b)}b=f[a+196>>2]|0;if(b|0){f[a+200>>2]=b;NDb(b)}b=f[a+168>>2]|0;if(b|0){f[a+172>>2]=b;NDb(b)}d=a+140|0;e=f[d>>2]|0;if(e|0){g=a+144|0;b=f[g>>2]|0;if((b|0)==(e|0))b=e;else{do{b=b+-4|0;c=f[b>>2]|0;if(c|0?(h=c+8|0,i=f[h>>2]|0,f[h>>2]=i-1,(i|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(e|0));b=f[d>>2]|0}f[g>>2]=e;NDb(b)}b=a+136|0;c=f[b>>2]|0;if(c|0?(h=c+8|0,i=f[h>>2]|0,f[h>>2]=i-1,(i|0)==1):0)X4(c,1,1);f[b>>2]=0;d=a+120|0;e=f[d>>2]|0;if(e|0){g=a+124|0;b=f[g>>2]|0;if((b|0)==(e|0))b=e;else{do{b=b+-4|0;c=f[b>>2]|0;if(c|0?(h=c+8|0,i=f[h>>2]|0,f[h>>2]=i-1,(i|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(e|0));b=f[d>>2]|0}f[g>>2]=e;NDb(b)}b=a+116|0;c=f[b>>2]|0;if(c|0?(h=c+8|0,i=f[h>>2]|0,f[h>>2]=i-1,(i|0)==1):0)X4(c,1,1);f[b>>2]=0;d=a+100|0;e=f[d>>2]|0;if(e|0){g=a+104|0;b=f[g>>2]|0;if((b|0)==(e|0))b=e;else{do{b=b+-4|0;c=f[b>>2]|0;if(c|0?(h=c+8|0,i=f[h>>2]|0,f[h>>2]=i-1,(i|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(e|0));b=f[d>>2]|0}f[g>>2]=e;NDb(b)}b=a+96|0;c=f[b>>2]|0;if(c|0?(h=c+8|0,i=f[h>>2]|0,f[h>>2]=i-1,(i|0)==1):0)X4(c,1,1);f[b>>2]=0;d=a+80|0;e=f[d>>2]|0;if(e|0){g=a+84|0;b=f[g>>2]|0;if((b|0)==(e|0))b=e;else{do{b=b+-4|0;c=f[b>>2]|0;do if(c|0){h=c+8|0;i=f[h>>2]|0;f[h>>2]=i-1;if((i|0)!=1)break;X4(c,1,1)}while(0);f[b>>2]=0}while((b|0)!=(e|0));b=f[d>>2]|0}f[g>>2]=e;NDb(b)}b=a+76|0;c=f[b>>2]|0;if(c|0?(h=c+8|0,i=f[h>>2]|0,f[h>>2]=i-1,(i|0)==1):0)X4(c,1,1);f[b>>2]=0;c=a+64|0;d=f[c>>2]|0;if(d|0){e=a+68|0;b=f[e>>2]|0;if((b|0)==(d|0))b=d;else{do{b=b+-80|0;sC(b)}while((b|0)!=(d|0));b=f[c>>2]|0}f[e>>2]=d;NDb(b)}f[a>>2]=90104;b=a+28|0;c=f[b>>2]|0;if(!c){f[b>>2]=0;return}h=c+8|0;i=f[h>>2]|0;f[h>>2]=i-1;if((i|0)!=1){f[b>>2]=0;return}X4(c,1,1);f[b>>2]=0;return}function gD(a){a=a|0;fD(a);NDb(a);return}function hD(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;d=f[a+80>>2]|0;e=a+84|0;b=f[e>>2]|0;if((b|0)!=(d|0))do{b=b+-4|0;c=f[b>>2]|0;if(c|0?(h=c+8|0,g=f[h>>2]|0,f[h>>2]=g-1,(g|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(d|0));f[e>>2]=d;f[a+92>>2]=0;d=f[a+100>>2]|0;e=a+104|0;b=f[e>>2]|0;if((b|0)!=(d|0))do{b=b+-4|0;c=f[b>>2]|0;if(c|0?(g=c+8|0,h=f[g>>2]|0,f[g>>2]=h-1,(h|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(d|0));f[e>>2]=d;f[a+112>>2]=0;d=f[a+140>>2]|0;e=a+144|0;b=f[e>>2]|0;if((b|0)!=(d|0))do{b=b+-4|0;c=f[b>>2]|0;if(c|0?(g=c+8|0,h=f[g>>2]|0,f[g>>2]=h-1,(h|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(d|0));f[e>>2]=d;f[a+152>>2]=0;f[a+172>>2]=f[a+168>>2];n[a+156>>2]=0.0;n[a+160>>2]=0.0;n[a+164>>2]=0.0;f[a+180>>2]=1;f[a+200>>2]=f[a+196>>2];f[a+208>>2]=0;f[a+228>>2]=f[a+224>>2];f[a+236>>2]=0;c=f[a+240>>2]|0;d=a+244|0;b=f[d>>2]|0;if((b|0)!=(c|0))do{b=b+-108|0;Nk[f[(f[b>>2]|0)+4>>2]&2047](b)}while((b|0)!=(c|0));f[d>>2]=c;c=f[a+252>>2]|0;d=a+256|0;b=f[d>>2]|0;if((b|0)==(c|0)){f[d>>2]=c;h=a+276|0;f[h>>2]=0;h=a+280|0;f[h>>2]=0;h=a+292|0;f[h>>2]=3;h=a+288|0;f[h>>2]=4;h=a+312|0;f[h>>2]=0;return}do{b=b+-108|0;Nk[f[(f[b>>2]|0)+4>>2]&2047](b)}while((b|0)!=(c|0));f[d>>2]=c;h=a+276|0;f[h>>2]=0;h=a+280|0;f[h>>2]=0;h=a+292|0;f[h>>2]=3;h=a+288|0;f[h>>2]=4;h=a+312|0;f[h>>2]=0;return}function iD(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;d=f[a>>2]|0;if(!d)return;e=a+4|0;b=f[e>>2]|0;if((b|0)==(d|0))b=d;else{do{b=b+-4|0;c=f[b>>2]|0;if(c|0?(h=c+8|0,g=f[h>>2]|0,f[h>>2]=g-1,(g|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(d|0));b=f[a>>2]|0}f[e>>2]=d;NDb(b);return}function jD(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(b|0?(d=b+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(b,1,1);f[a>>2]=0;return}function kD(a){a=a|0;var b=0,c=0,d=0;c=f[a>>2]|0;if(!c)return;d=a+4|0;b=f[d>>2]|0;if((b|0)==(c|0))b=c;else{do{b=b+-108|0;Nk[f[(f[b>>2]|0)+4>>2]&2047](b)}while((b|0)!=(c|0));b=f[a>>2]|0}f[d>>2]=c;NDb(b);return}function lD(a){a=a|0;var b=0;b=f[a+12>>2]|0;if(!b)return;f[a+16>>2]=b;NDb(b);return}function mD(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;d=a+4|0;e=f[d>>2]|0;if(e|0){g=a+8|0;b=f[g>>2]|0;if((b|0)==(e|0))b=e;else{do{b=b+-4|0;c=f[b>>2]|0;if(c|0?(i=c+8|0,h=f[i>>2]|0,f[i>>2]=h-1,(h|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(e|0));b=f[d>>2]|0}f[g>>2]=e;NDb(b)}b=f[a>>2]|0;if(!b){f[a>>2]=0;return}h=b+8|0;i=f[h>>2]|0;f[h>>2]=i-1;if((i|0)!=1){f[a>>2]=0;return}X4(b,1,1);f[a>>2]=0;return}function nD(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;d=a+4|0;e=f[d>>2]|0;if(e|0){g=a+8|0;b=f[g>>2]|0;if((b|0)==(e|0))b=e;else{do{b=b+-4|0;c=f[b>>2]|0;if(c|0?(i=c+8|0,h=f[i>>2]|0,f[i>>2]=h-1,(h|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(e|0));b=f[d>>2]|0}f[g>>2]=e;NDb(b)}b=f[a>>2]|0;if(!b){f[a>>2]=0;return}h=b+8|0;i=f[h>>2]|0;f[h>>2]=i-1;if((i|0)!=1){f[a>>2]=0;return}X4(b,1,1);f[a>>2]=0;return}function oD(a){a=a|0;var b=0,c=0,d=0;c=f[a>>2]|0;if(!c)return;d=a+4|0;b=f[d>>2]|0;if((b|0)==(c|0))b=c;else{do{b=b+-80|0;sC(b)}while((b|0)!=(c|0));b=f[a>>2]|0}f[d>>2]=c;NDb(b);return}function pD(a){a=a|0;qC(a,91204);ow(a+56|0);return}function qD(a){a=a|0;qC(a,91204);ow(a+56|0);NDb(a);return}function rD(a,b){a=a|0;b=b|0;switch(f[a+16>>2]|0){case 1:{Vk[f[(f[b>>2]|0)+216>>2]&1023](b,a);return}case 0:return;default:{Vk[f[(f[b>>2]|0)+220>>2]&1023](b,a);return}}}function sD(a,b){a=a|0;b=b|0;Vk[f[(f[a>>2]|0)+120>>2]&1023](a,b);return}function tD(a,b){a=a|0;b=b|0;Vk[f[(f[a>>2]|0)+120>>2]&1023](a,b);return}function uD(a,b){a=a|0;b=b|0;Vk[f[(f[a>>2]|0)+120>>2]&1023](a,b);return}function vD(a,b){a=a|0;b=b|0;Vk[f[(f[a>>2]|0)+120>>2]&1023](a,b);return}function wD(a,b){a=a|0;b=b|0;Vk[f[(f[a>>2]|0)+120>>2]&1023](a,b);return}function xD(a){a=a|0;a=a+(f[(f[a>>2]|0)+-16>>2]|0)|0;qC(a,91204);ow(a+56|0);return}function yD(a){a=a|0;a=a+(f[(f[a>>2]|0)+-16>>2]|0)|0;qC(a,91204);ow(a+56|0);NDb(a);return}function zD(a,b){a=a|0;b=b|0;if(!b)return;else{zD(a,f[b>>2]|0);zD(a,f[b+4>>2]|0);sC(b+16|0);NDb(b);return}}function AD(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;c=f[a+76>>2]|0;m=a+80|0;if((c|0)==(f[m>>2]|0))return;n=b+4|0;do{k=f[c+8>>2]|0;l=f[c+4>>2]|0;d=f[b>>2]|0;a=l;e=k;a:do if((k-l|0)==((f[n>>2]|0)-d|0)){if((a|0)!=(e|0))while(1){if((f[a>>2]|0)!=(f[d>>2]|0))break a;a=a+4|0;if((a|0)==(e|0))break;else d=d+4|0}k=c+40|0;f[k>>2]=0;g=c+68|0;h=f[g>>2]|0;l=c+72|0;a=f[l>>2]|0;if((h|0)!=(a|0)){d=h;do{f[d+20>>2]=0;d=d+48|0}while((d|0)!=(a|0))}j=c+36|0;i=c+20|0;do if(f[j>>2]|0){d=c+28|0;e=f[d>>2]|0;if((e|0)==(f[c+32>>2]|0)){JD(c+24|0,i);d=f[g>>2]|0;a=f[l>>2]|0;break}else{f[e>>2]=f[i>>2];f[d>>2]=e+4;d=h;break}}else d=h;while(0);f[i>>2]=f[k>>2];f[j>>2]=(f[j>>2]|0)+1;if((d|0)!=(a|0))do{h=d+20|0;i=d+16|0;do if(f[i>>2]|0){e=d+8|0;g=f[e>>2]|0;if((g|0)==(f[d+12>>2]|0)){JD(d+4|0,d);a=f[l>>2]|0;break}else{f[g>>2]=f[d>>2];f[e>>2]=g+4;break}}while(0);f[d>>2]=f[h>>2];f[i>>2]=(f[i>>2]|0)+1;d=d+48|0}while((d|0)!=(a|0))}while(0);c=c+80|0}while((c|0)!=(f[m>>2]|0));return}function BD(a){a=a|0;var c=0,d=0.0,e=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0,m=0.0,o=0.0,p=0,q=0.0,r=0.0,s=0,t=0,v=0,w=0;w=u;u=u+16|0;s=w;t=a+68|0;if(b[t>>0]|0){v=a+52|0;u=w;return v|0}c=a+32|0;v=a+52|0;f[v>>2]=f[c>>2];f[v+4>>2]=f[c+4>>2];f[v+8>>2]=f[c+8>>2];f[v+12>>2]=f[c+12>>2];c=f[a+48>>2]|0;if(!c){Vk[f[(f[a>>2]|0)+224>>2]&1023](s,a);k=+n[s+12>>2];do if(k>=0.0){l=a+64|0;d=+n[l>>2];if(!(d>=0.0)){f[v>>2]=f[s>>2];f[v+4>>2]=f[s+4>>2];f[v+8>>2]=f[s+8>>2];n[l>>2]=k;break}m=+n[v>>2];o=+n[s>>2];e=m-o;p=a+56|0;q=+n[p>>2];r=+n[s+4>>2];j=q-r;c=a+60|0;g=+n[c>>2];h=+n[s+8>>2];i=g-h;i=+K(+(e*e+j*j+i*i));j=k;e=d;if(!(j+i<=e)){d=e+i;if(!(d<=j)){k=(d+j)*.5;j=(k-e)/i;n[v>>2]=j*(o-m)+m;n[p>>2]=j*(r-q)+q;n[c>>2]=j*(h-g)+g;n[l>>2]=k;break}else{f[v>>2]=f[s>>2];f[v+4>>2]=f[s+4>>2];f[v+8>>2]=f[s+8>>2];n[l>>2]=k;break}}}while(0)}else{Zk[f[(f[c>>2]|0)+164>>2]&511](s,c,a);k=+n[s+12>>2];do if(k>=0.0){l=a+64|0;d=+n[l>>2];if(!(d>=0.0)){f[v>>2]=f[s>>2];f[v+4>>2]=f[s+4>>2];f[v+8>>2]=f[s+8>>2];n[l>>2]=k;break}m=+n[v>>2];o=+n[s>>2];e=m-o;p=a+56|0;q=+n[p>>2];r=+n[s+4>>2];j=q-r;c=a+60|0;g=+n[c>>2];h=+n[s+8>>2];i=g-h;i=+K(+(e*e+j*j+i*i));j=k;if(!(j+i<=d)){e=d+i;if(!(e<=j)){k=(e+j)*.5;j=(k-d)/i;n[v>>2]=j*(o-m)+m;n[p>>2]=j*(r-q)+q;n[c>>2]=j*(h-g)+g;n[l>>2]=k;break}else{f[v>>2]=f[s>>2];f[v+4>>2]=f[s+4>>2];f[v+8>>2]=f[s+8>>2];n[l>>2]=k;break}}}while(0)}b[t>>0]=1;u=w;return v|0}function CD(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0.0,k=0.0,l=0.0,m=0.0,o=0.0,q=0,r=0,s=0.0;q=f[a+12>>2]|0;a:do if((q&7|0?(d=f[a+16>>2]|0,d|0):0)?(r=a+36|0,f[r>>2]=d,c=f[a+40>>2]|0,i=f[a+44>>2]|0,(c|0)!=(i|0)):0){j=+n[b>>2];k=+n[b+4>>2];l=+n[b+8>>2];m=+n[b+12>>2];o=-m;h=1;while(1){if(h&d){s=+p[c+24>>3]+(+p[c>>3]*j+ +p[c+8>>3]*k+ +p[c+16>>3]*l);e=m<s?1:(s<o)<<31>>31;if((e|0)<0){c=1;break}g=h^d;if(e){f[r>>2]=g;d=g}}c=c+40|0;if((c|0)==(i|0))break a;else h=h<<1}return c|0}while(0);if(q&8|0?+n[a+104>>2]*(+n[a+100>>2]+(+n[b>>2]*+n[a+88>>2]+ +n[b+4>>2]*+n[a+92>>2]+ +n[b+8>>2]*+n[a+96>>2]))>+n[b+12>>2]:0){b=1;return b|0}if(!(q&16)){b=0;return b|0}c=f[a+76>>2]|0;d=a+80|0;if((c|0)==(f[d>>2]|0)){b=0;return b|0}while(1){if(rXa(c,b)|0){c=1;d=17;break}c=c+80|0;if((c|0)==(f[d>>2]|0)){c=0;d=17;break}}if((d|0)==17)return c|0;return 0}function DD(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0;c=a+36|0;d=a+32|0;b=a+16|0;do if(f[d>>2]|0){e=a+24|0;g=f[e>>2]|0;if((g|0)==(f[a+28>>2]|0)){JD(a+20|0,b);break}else{f[g>>2]=f[b>>2];f[e>>2]=g+4;break}}while(0);f[b>>2]=f[c>>2];f[d>>2]=(f[d>>2]|0)+1;b=f[a+64>>2]|0;j=a+68|0;c=f[j>>2]|0;if((b|0)!=(c|0))do{h=b+24|0;i=b+20|0;g=b+4|0;do if(f[i>>2]|0){d=b+12|0;e=f[d>>2]|0;if((e|0)==(f[b+16>>2]|0)){JD(b+8|0,g);c=f[j>>2]|0;break}else{f[e>>2]=f[g>>2];f[d>>2]=e+4;break}}while(0);f[g>>2]=f[h>>2];f[i>>2]=(f[i>>2]|0)+1;b=b+52|0}while((b|0)!=(c|0));b=f[a+76>>2]|0;a=a+80|0;if((b|0)==(f[a>>2]|0))return;do{d=b+40|0;e=b+36|0;c=b+20|0;do if(f[e>>2]|0){g=b+28|0;h=f[g>>2]|0;if((h|0)==(f[b+32>>2]|0)){JD(b+24|0,c);break}else{f[h>>2]=f[c>>2];f[g>>2]=h+4;break}}while(0);f[c>>2]=f[d>>2];f[e>>2]=(f[e>>2]|0)+1;c=f[b+68>>2]|0;j=b+72|0;d=f[j>>2]|0;if((c|0)!=(d|0))do{h=c+20|0;i=c+16|0;do if(f[i>>2]|0){e=c+8|0;g=f[e>>2]|0;if((g|0)==(f[c+12>>2]|0)){JD(c+4|0,c);d=f[j>>2]|0;break}else{f[g>>2]=f[c>>2];f[e>>2]=g+4;break}}while(0);f[c>>2]=f[h>>2];f[i>>2]=(f[i>>2]|0)+1;c=c+48|0}while((c|0)!=(d|0));b=b+80|0}while((b|0)!=(f[a>>2]|0));return}function ED(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0.0,h=0,i=0,j=0,k=0.0;h=c+4|0;j=f[h>>2]|0;do if(j){k=+n[d>>2];i=c+4|0;d=j;while(1){g=+n[d+16>>2];if(k>g){h=f[d>>2]|0;if(!h){h=5;break}else{i=d;d=h}}else{if(!(g>k)){h=9;break}i=d+4|0;h=f[i>>2]|0;if(!h){h=8;break}else d=h}}if((h|0)==5){j=d;i=d;break}else if((h|0)==8){j=d;break}else if((h|0)==9){j=d;break}}else{j=h;i=h}while(0);d=f[i>>2]|0;if(d|0){c=d;e=0;f[a>>2]=c;c=a+4|0;b[c>>0]=e;return}h=LDb(96)|0;FD(h+16|0,e);f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=j;f[i>>2]=h;d=f[f[c>>2]>>2]|0;if(!d)d=h;else{f[c>>2]=d;d=f[i>>2]|0}Aq(f[c+4>>2]|0,d);c=c+8|0;f[c>>2]=(f[c>>2]|0)+1;c=h;e=1;f[a>>2]=c;c=a+4|0;b[c>>0]=e;return}function FD(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;f[a>>2]=f[b>>2];e=a+4|0;g=b+4|0;f[e>>2]=0;k=a+8|0;f[k>>2]=0;h=a+12|0;f[h>>2]=0;j=b+8|0;c=(f[j>>2]|0)-(f[g>>2]|0)|0;d=c>>2;if(c|0){if(d>>>0>1073741823)KEb(e);i=LDb(c)|0;f[k>>2]=i;f[e>>2]=i;f[h>>2]=i+(d<<2);d=f[g>>2]|0;c=(f[j>>2]|0)-d|0;if((c|0)>0){gGb(i|0,d|0,c|0)|0;f[k>>2]=i+(c>>>2<<2)}}c=f[b+16>>2]|0;f[a+16>>2]=c;if(!c){j=a+20|0;k=b+20|0;GD(j,k);a=a+68|0;b=b+68|0;HD(a,b);return}j=c+8|0;f[j>>2]=(f[j>>2]|0)+1;j=a+20|0;k=b+20|0;GD(j,k);a=a+68|0;b=b+68|0;HD(a,b);return}function GD(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;f[a>>2]=f[b>>2];e=a+4|0;g=b+4|0;f[e>>2]=0;k=a+8|0;f[k>>2]=0;h=a+12|0;f[h>>2]=0;j=b+8|0;c=(f[j>>2]|0)-(f[g>>2]|0)|0;d=c>>2;if(c|0){if(d>>>0>1073741823)KEb(e);i=LDb(c)|0;f[k>>2]=i;f[e>>2]=i;f[h>>2]=i+(d<<2);d=f[g>>2]|0;c=(f[j>>2]|0)-d|0;if((c|0)>0){gGb(i|0,d|0,c|0)|0;f[k>>2]=i+(c>>>2<<2)}}f[a+16>>2]=f[b+16>>2];f[a+20>>2]=f[b+20>>2];ID(a+24|0,b+24|0);i=a+36|0;j=b+36|0;f[i>>2]=0;k=a+40|0;f[k>>2]=0;e=a+44|0;f[e>>2]=0;g=b+40|0;c=(f[g>>2]|0)-(f[j>>2]|0)|0;d=(c|0)/12|0;if(!c)return;if(d>>>0>357913941)KEb(i);h=LDb(c)|0;f[k>>2]=h;f[i>>2]=h;f[e>>2]=h+(d*12|0);d=f[j>>2]|0;c=(f[g>>2]|0)-d|0;if((c|0)<=0)return;gGb(h|0,d|0,c|0)|0;f[k>>2]=h+(((c>>>0)/12|0)*12|0);return}function HD(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;f[a>>2]=0;h=a+4|0;f[h>>2]=0;d=a+8|0;f[d>>2]=0;g=b+4|0;c=(f[g>>2]|0)-(f[b>>2]|0)|0;e=(c|0)/48|0;if(!c)return;if(e>>>0>89478485)KEb(a);c=LDb(c)|0;f[h>>2]=c;f[a>>2]=c;f[d>>2]=c+(e*48|0);a=f[b>>2]|0;b=f[g>>2]|0;if((a|0)==(b|0))return;do{GD(c,a);a=a+48|0;c=(f[h>>2]|0)+48|0;f[h>>2]=c}while((a|0)!=(b|0));return}function ID(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0.0,j=0.0,k=0.0;f[a>>2]=0;h=a+4|0;f[h>>2]=0;d=a+8|0;f[d>>2]=0;g=b+4|0;c=(f[g>>2]|0)-(f[b>>2]|0)|0;e=(c|0)/40|0;if(!c)return;if(e>>>0>107374182)KEb(a);c=LDb(c)|0;f[h>>2]=c;f[a>>2]=c;f[d>>2]=c+(e*40|0);a=f[b>>2]|0;b=f[g>>2]|0;if((a|0)==(b|0))return;do{j=+p[a>>3];p[c>>3]=j;k=+p[a+8>>3];p[c+8>>3]=k;i=+p[a+16>>3];p[c+16>>3]=i;p[c+24>>3]=+p[a+24>>3];g=(k>=0.0?2:0)|j>=0.0|(i>=0.0?4:0);f[c+32>>2]=g;f[c+36>>2]=g^7;a=a+40|0;c=c+40|0}while((a|0)!=(b|0));f[h>>2]=c;return}function JD(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;i=a+4|0;j=f[a>>2]|0;k=(f[i>>2]|0)-j|0;g=k>>2;c=g+1|0;if(c>>>0>1073741823)KEb(a);l=a+8|0;e=(f[l>>2]|0)-j|0;h=e>>1;h=e>>2>>>0<536870911?(h>>>0<c>>>0?c:h):1073741823;do if(h)if(h>>>0>1073741823){l=mb(8)|0;RDb(l,238482);f[l>>2]=144484;qb(l|0,84192,1464)}else{e=LDb(h<<2)|0;d=e;break}else{d=0;e=0}while(0);c=d+(g<<2)|0;f[c>>2]=f[b>>2];if((k|0)>0)gGb(e|0,j|0,k|0)|0;f[a>>2]=d;f[i>>2]=c+4;f[l>>2]=d+(h<<2);if(!j)return;NDb(j);return}function KD(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=u;u=u+16|0;k=n;m=a+312|0;g=f[m>>2]|0;j=a+300|0;l=a+304|0;d=f[l>>2]|0;c=f[j>>2]|0;e=c;do if(g>>>0<d-c>>2>>>0){h=g;while(1){g=f[m>>2]|0;if((f[(f[e+(h<<2)>>2]|0)+8>>2]|0)<=1){i=5;break}h=g+1|0;f[m>>2]=h;d=f[l>>2]|0;e=f[j>>2]|0;if(h>>>0>=d-e>>2>>>0){i=6;break}}if((i|0)==5){e=f[j>>2]|0;c=e;d=f[l>>2]|0;break}else if((i|0)==6){c=e;g=h;break}}while(0);if(g>>>0<d-c>>2>>>0){f[m>>2]=g+1;m=f[e+(g<<2)>>2]|0;p[m+32>>3]=+p[b>>3];p[m+40>>3]=+p[b+8>>3];p[m+48>>3]=+p[b+16>>3];p[m+56>>3]=+p[b+24>>3];p[m+64>>3]=+p[b+32>>3];p[m+72>>3]=+p[b+40>>3];p[m+80>>3]=+p[b+48>>3];p[m+88>>3]=+p[b+56>>3];p[m+96>>3]=+p[b+64>>3];p[m+104>>3]=+p[b+72>>3];p[m+112>>3]=+p[b+80>>3];p[m+120>>3]=+p[b+88>>3];p[m+128>>3]=+p[b+96>>3];p[m+136>>3]=+p[b+104>>3];p[m+144>>3]=+p[b+112>>3];p[m+152>>3]=+p[b+120>>3];u=n;return m|0}e=LDb(160)|0;CCa(e,0);c=e+12|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[e+24>>2]=2;f[e+28>>2]=0;p[e+32>>3]=+p[b>>3];p[e+40>>3]=+p[b+8>>3];p[e+48>>3]=+p[b+16>>3];p[e+56>>3]=+p[b+24>>3];p[e+64>>3]=+p[b+32>>3];p[e+72>>3]=+p[b+40>>3];p[e+80>>3]=+p[b+48>>3];p[e+88>>3]=+p[b+56>>3];p[e+96>>3]=+p[b+64>>3];p[e+104>>3]=+p[b+72>>3];p[e+112>>3]=+p[b+80>>3];p[e+120>>3]=+p[b+88>>3];p[e+128>>3]=+p[b+96>>3];p[e+136>>3]=+p[b+104>>3];p[e+144>>3]=+p[b+112>>3];p[e+152>>3]=+p[b+120>>3];f[e>>2]=90960;f[k>>2]=e;c=e+8|0;f[c>>2]=(f[c>>2]|0)+1;c=f[l>>2]|0;if(c>>>0<(f[a+308>>2]|0)>>>0){d=f[k>>2]|0;f[c>>2]=d;if(d){c=d+8|0;f[c>>2]=(f[c>>2]|0)+1;c=f[l>>2]|0}f[l>>2]=c+4}else jE(j,k);c=f[k>>2]|0;if(c|0?(k=c+8|0,l=f[k>>2]|0,f[k>>2]=l-1,(l|0)==1):0)X4(c,1,1);f[m>>2]=(f[m>>2]|0)+1;m=e;u=n;return m|0}function LD(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0.0,j=0.0,k=0.0,l=0,m=0,o=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0.0,y=0.0,z=0.0;w=u;u=u+256|0;v=w+128|0;t=w;l=a+96|0;m=a+112|0;d=f[m>>2]|0;if(!d)s=0;else s=f[l>>2]|0;h=(b|0)==0;if(!h){d=b+8|0;f[d>>2]=(f[d>>2]|0)+1;d=f[m>>2]|0}do if(d|0){g=a+104|0;d=f[g>>2]|0;if((d|0)==(f[a+108>>2]|0)){OD(a+100|0,l);break}e=f[l>>2]|0;f[d>>2]=e;if(e){d=e+8|0;f[d>>2]=(f[d>>2]|0)+1;d=f[g>>2]|0}f[g>>2]=d+4}while(0);d=f[l>>2]|0;if((d|0)!=(b|0)){f[l>>2]=b;if(!h){r=b+8|0;f[r>>2]=(f[r>>2]|0)+1}if(d|0?(q=d+8|0,r=f[q>>2]|0,f[q>>2]=r-1,(r|0)==1):0)X4(d,1,1)}f[m>>2]=(f[m>>2]|0)+1;if(!h?(q=b+8|0,r=f[q>>2]|0,f[q>>2]=r-1,(r|0)==1):0)X4(b,1,1);PD(a);SWa(v);o=b+32|0;if(((+p[b+56>>3]==0.0?+p[b+88>>3]==0.0:0)?+p[b+120>>3]==0.0:0)?+p[b+152>>3]==1.0:0)ZWa(v,o)|0;else _Wa(v,o)|0;switch(c|0){case 0:{d=a+184|0;m=v+96|0;b=v+104|0;c=v+112|0;i=+p[m>>3];j=+p[b>>3];k=+p[c>>3];e=a+208|0;do if(f[e>>2]|0){g=a+200|0;h=f[g>>2]|0;if((h|0)==(f[a+204>>2]|0)){rC(a+196|0,d);break}else{f[h>>2]=f[d>>2];f[h+4>>2]=f[d+4>>2];f[h+8>>2]=f[d+8>>2];f[g>>2]=(f[g>>2]|0)+12;break}}while(0);n[a+184>>2]=i;n[a+188>>2]=j;n[a+192>>2]=k;f[e>>2]=(f[e>>2]|0)+1;d=a+156|0;e=a+156|0;g=a+180|0;do if(f[g>>2]|0){h=a+172|0;l=f[h>>2]|0;if((l|0)==(f[a+176>>2]|0)){rC(a+168|0,d);break}else{f[l>>2]=f[d>>2];f[l+4>>2]=f[d+4>>2];f[l+8>>2]=f[d+8>>2];f[h>>2]=(f[h>>2]|0)+12;break}}while(0);f[d>>2]=f[e>>2];f[d+4>>2]=f[e+4>>2];f[d+8>>2]=f[e+8>>2];f[g>>2]=(f[g>>2]|0)+1;y=+n[e>>2];x=+n[a+160>>2];i=+n[a+164>>2];z=1.0/(+p[v+120>>3]+(+p[v+24>>3]*y+ +p[v+56>>3]*x+ +p[v+88>>3]*i));k=z*(+p[m>>3]+(+p[v>>3]*y+ +p[v+32>>3]*x+ +p[v+64>>3]*i));j=z*(+p[b>>3]+(+p[v+8>>3]*y+ +p[v+40>>3]*x+ +p[v+72>>3]*i));i=z*(+p[c>>3]+(+p[v+16>>3]*y+ +p[v+48>>3]*x+ +p[v+80>>3]*i));e=a+212|0;d=a+236|0;do if(f[d>>2]|0){g=a+228|0;h=f[g>>2]|0;if((h|0)==(f[a+232>>2]|0)){rC(a+224|0,e);break}else{f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[g>>2]=(f[g>>2]|0)+12;break}}while(0);n[a+212>>2]=k;n[a+216>>2]=j;n[a+220>>2]=i;break}case 1:{l=a+184|0;j=+p[v+96>>3];k=+p[v+104>>3];i=+p[v+112>>3];d=a+208|0;do if(f[d>>2]|0){e=a+200|0;g=f[e>>2]|0;if((g|0)==(f[a+204>>2]|0)){rC(a+196|0,l);break}else{f[g>>2]=f[l>>2];f[g+4>>2]=f[l+4>>2];f[g+8>>2]=f[l+8>>2];f[e>>2]=(f[e>>2]|0)+12;break}}while(0);n[a+184>>2]=j;n[a+188>>2]=k;n[a+192>>2]=i;f[d>>2]=(f[d>>2]|0)+1;d=a+156|0;e=a+180|0;do if(f[e>>2]|0){g=a+172|0;h=f[g>>2]|0;if((h|0)==(f[a+176>>2]|0)){rC(a+168|0,d);break}else{f[h>>2]=f[d>>2];f[h+4>>2]=f[d+4>>2];f[h+8>>2]=f[d+8>>2];f[g>>2]=(f[g>>2]|0)+12;break}}while(0);n[a+156>>2]=0.0;n[a+160>>2]=0.0;n[a+164>>2]=0.0;f[e>>2]=(f[e>>2]|0)+1;e=a+212|0;d=a+236|0;do if(f[d>>2]|0){g=a+228|0;h=f[g>>2]|0;if((h|0)==(f[a+232>>2]|0)){rC(a+224|0,e);break}else{f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[g>>2]=(f[g>>2]|0)+12;break}}while(0);f[e>>2]=f[l>>2];f[e+4>>2]=f[l+4>>2];f[e+8>>2]=f[l+8>>2];break}case 2:{d=a+184|0;c=v+96|0;q=v+104|0;r=v+112|0;i=+p[c>>3];j=+p[q>>3];k=+p[r>>3];e=a+208|0;do if(f[e>>2]|0){g=a+200|0;h=f[g>>2]|0;if((h|0)==(f[a+204>>2]|0)){rC(a+196|0,d);break}else{f[h>>2]=f[d>>2];f[h+4>>2]=f[d+4>>2];f[h+8>>2]=f[d+8>>2];f[g>>2]=(f[g>>2]|0)+12;break}}while(0);n[a+184>>2]=i;n[a+188>>2]=j;n[a+192>>2]=k;f[e>>2]=(f[e>>2]|0)+1;l=a+156|0;i=+n[l>>2];m=a+160|0;k=+n[m>>2];b=a+164|0;j=+n[b>>2];if(s){SWa(t);d=s+32|0;if(((+p[s+56>>3]==0.0?+p[s+88>>3]==0.0:0)?+p[s+120>>3]==0.0:0)?+p[s+152>>3]==1.0:0)ZWa(t,d)|0;else _Wa(t,d)|0;XWa(t,o);y=i;z=k;x=1.0/(+p[t+120>>3]+(+p[t+24>>3]*y+ +p[t+56>>3]*z+ +p[t+88>>3]*j));i=x*(+p[t+96>>3]+(+p[t>>3]*y+ +p[t+32>>3]*z+ +p[t+64>>3]*j));k=x*(+p[t+104>>3]+(+p[t+8>>3]*y+ +p[t+40>>3]*z+ +p[t+72>>3]*j));j=x*(+p[t+112>>3]+(+p[t+16>>3]*y+ +p[t+48>>3]*z+ +p[t+80>>3]*j))}d=a+156|0;e=a+180|0;do if(f[e>>2]|0){g=a+172|0;h=f[g>>2]|0;if((h|0)==(f[a+176>>2]|0)){rC(a+168|0,d);break}else{f[h>>2]=f[d>>2];f[h+4>>2]=f[d+4>>2];f[h+8>>2]=f[d+8>>2];f[g>>2]=(f[g>>2]|0)+12;break}}while(0);n[l>>2]=i;n[m>>2]=k;n[b>>2]=j;f[e>>2]=(f[e>>2]|0)+1;y=i;z=k;i=j;x=1.0/(+p[v+120>>3]+(+p[v+24>>3]*y+ +p[v+56>>3]*z+ +p[v+88>>3]*i));k=x*(+p[c>>3]+(+p[v>>3]*y+ +p[v+32>>3]*z+ +p[v+64>>3]*i));j=x*(+p[q>>3]+(+p[v+8>>3]*y+ +p[v+40>>3]*z+ +p[v+72>>3]*i));i=x*(+p[r>>3]+(+p[v+16>>3]*y+ +p[v+48>>3]*z+ +p[v+80>>3]*i));e=a+212|0;d=a+236|0;do if(f[d>>2]|0){g=a+228|0;h=f[g>>2]|0;if((h|0)==(f[a+232>>2]|0)){rC(a+224|0,e);break}else{f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[g>>2]=(f[g>>2]|0)+12;break}}while(0);n[a+212>>2]=k;n[a+216>>2]=j;n[a+220>>2]=i;break}default:{t=a+96|0;t=f[t>>2]|0;v=t+48|0;x=+p[v>>3];v=t+80|0;y=+p[v>>3];t=t+112|0;z=+p[t>>3];t=x<=-0.0;t=t&1;v=y<=-0.0;v=v?2:0;t=v|t;v=z<=-0.0;v=v?4:0;v=t|v;t=a+292|0;f[t>>2]=v;v=v^7;a=a+288|0;f[a>>2]=v;u=w;return}}f[d>>2]=(f[d>>2]|0)+1;t=a+96|0;t=f[t>>2]|0;v=t+48|0;x=+p[v>>3];v=t+80|0;y=+p[v>>3];t=t+112|0;z=+p[t>>3];t=x<=-0.0;t=t&1;v=y<=-0.0;v=v?2:0;t=v|t;v=z<=-0.0;v=v?4:0;v=t|v;t=a+292|0;f[t>>2]=v;v=v^7;a=a+288|0;f[a>>2]=v;u=w;return}function MD(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;h=a+112|0;b=f[h>>2]|0;if(b|0){g=a+104|0;d=f[g>>2]|0;if((f[a+100>>2]|0)!=(d|0)){e=a+96|0;c=f[e>>2]|0;b=f[d+-4>>2]|0;if((c|0)!=(b|0)){f[e>>2]=b;if(b|0){e=b+8|0;f[e>>2]=(f[e>>2]|0)+1}if(c|0?(d=c+8|0,e=f[d>>2]|0,f[d>>2]=e-1,(e|0)==1):0)X4(c,1,1)}b=(f[g>>2]|0)+-4|0;c=f[b>>2]|0;if(c|0?(d=c+8|0,e=f[d>>2]|0,f[d>>2]=e-1,(e|0)==1):0)X4(c,1,1);f[b>>2]=0;f[g>>2]=b;b=f[h>>2]|0}f[h>>2]=b+-1}b=a+184|0;c=a+208|0;d=f[c>>2]|0;if(d|0){e=a+200|0;g=f[e>>2]|0;if((f[a+196>>2]|0)!=(g|0)){g=g+-12|0;f[b>>2]=f[g>>2];f[b+4>>2]=f[g+4>>2];f[b+8>>2]=f[g+8>>2];f[e>>2]=g}f[c>>2]=d+-1}b=a+156|0;c=a+180|0;d=f[c>>2]|0;if(d|0){e=a+172|0;g=f[e>>2]|0;if((f[a+168>>2]|0)!=(g|0)){g=g+-12|0;f[b>>2]=f[g>>2];f[b+4>>2]=f[g+4>>2];f[b+8>>2]=f[g+8>>2];f[e>>2]=g}f[c>>2]=d+-1}b=a+212|0;c=a+236|0;d=f[c>>2]|0;if(d|0){e=a+228|0;g=f[e>>2]|0;if((f[a+224>>2]|0)!=(g|0)){g=g+-12|0;f[b>>2]=f[g>>2];f[b+4>>2]=f[g+4>>2];f[b+8>>2]=f[g+8>>2];f[e>>2]=g}f[c>>2]=d+-1}ND(a);if(!(f[h>>2]|0)){h=1;e=2;g=0;h=e|h;g=h|g;h=a+292|0;f[h>>2]=g;g=g^7;h=a+288|0;f[h>>2]=g;return}g=f[a+96>>2]|0;h=+p[g+48>>3]<=-0.0&1;e=+p[g+80>>3]<=-0.0?2:0;g=+p[g+112>>3]<=-0.0?4:0;h=e|h;g=h|g;h=a+292|0;f[h>>2]=g;g=g^7;h=a+288|0;f[h>>2]=g;return}function ND(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;h=a+132|0;b=f[h>>2]|0;if(b|0){g=a+124|0;d=f[g>>2]|0;if((f[a+120>>2]|0)!=(d|0)){e=a+116|0;c=f[e>>2]|0;b=f[d+-4>>2]|0;if((c|0)!=(b|0)){f[e>>2]=b;if(b|0){e=b+8|0;f[e>>2]=(f[e>>2]|0)+1}if(c|0?(d=c+8|0,e=f[d>>2]|0,f[d>>2]=e-1,(e|0)==1):0)X4(c,1,1)}b=(f[g>>2]|0)+-4|0;c=f[b>>2]|0;if(c|0?(d=c+8|0,e=f[d>>2]|0,f[d>>2]=e-1,(e|0)==1):0)X4(c,1,1);f[b>>2]=0;f[g>>2]=b;b=f[h>>2]|0}f[h>>2]=b+-1}g=a+276|0;b=f[g>>2]|0;h=b+-1|0;f[g>>2]=h;if(!h)return;f[a+280>>2]=(f[a+264>>2]|0)+((b+-2|0)*108|0);return}function OD(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=a+4|0;c=f[m>>2]|0;d=f[a>>2]|0;i=c-d>>2;e=i+1|0;g=d;if(e>>>0>1073741823)KEb(a);l=a+8|0;j=(f[l>>2]|0)-d|0;k=j>>1;e=j>>2>>>0<536870911?(k>>>0<e>>>0?e:k):1073741823;do if(e)if(e>>>0>1073741823){m=mb(8)|0;RDb(m,238482);f[m>>2]=144484;qb(m|0,84192,1464)}else{j=LDb(e<<2)|0;break}else j=0;while(0);d=j+(i<<2)|0;k=j+(e<<2)|0;e=f[b>>2]|0;f[d>>2]=e;if(e){g=e+8|0;f[g>>2]=(f[g>>2]|0)+1;g=f[a>>2]|0;c=f[m>>2]|0}h=d+4|0;e=g;if((c|0)==(g|0))b=e;else{b=i+-1-((c+-4-e|0)>>>2)|0;while(1){c=c+-4|0;e=f[c>>2]|0;f[d+-4>>2]=e;if(e|0){i=e+8|0;f[i>>2]=(f[i>>2]|0)+1}if((c|0)==(g|0))break;else d=d+-4|0}d=j+(b<<2)|0;b=f[a>>2]|0;c=f[m>>2]|0}f[a>>2]=d;f[m>>2]=h;f[l>>2]=k;e=b;if((c|0)!=(e|0))do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(l=d+8|0,m=f[l>>2]|0,f[l>>2]=m-1,(m|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(e|0));if(!b)return;NDb(b);return}function PD(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=u;u=u+224|0;l=m+108|0;j=m;e=a+116|0;g=a+132|0;do if(f[g>>2]|0){d=a+124|0;b=f[d>>2]|0;if((b|0)==(f[a+128>>2]|0)){OD(a+120|0,e);break}c=f[e>>2]|0;f[b>>2]=c;if(c){b=c+8|0;f[b>>2]=(f[b>>2]|0)+1;b=f[d>>2]|0}f[d>>2]=b+4}while(0);b=f[e>>2]|0;if(b|0?(f[e>>2]=0,i=b+8|0,k=f[i>>2]|0,f[i>>2]=k-1,(k|0)==1):0)X4(b,1,1);f[g>>2]=(f[g>>2]|0)+1;k=a+276|0;if(f[k>>2]|0){i=a+96|0;YD(l,f[a+136>>2]|0,(f[a+76>>2]|0)+32|0,(f[i>>2]|0)+32|0);c=f[k>>2]|0;e=a+264|0;d=a+268|0;b=f[e>>2]|0;if(c>>>0>=(((f[d>>2]|0)-b|0)/108|0)>>>0){BCa(j);f[j>>2]=91220;b=j+32|0;g=j+16|0;h=g+48|0;do{f[g>>2]=0;g=g+4|0}while((g|0)<(h|0));f[b>>2]=1;b=j+64|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[b+12>>2]=0;f[b+16>>2]=0;f[b+20>>2]=0;f[j+12>>2]=31;n[j+88>>2]=0.0;n[j+92>>2]=0.0;n[j+96>>2]=0.0;n[j+100>>2]=1.0;n[j+104>>2]=2.0;b=f[d>>2]|0;if(b>>>0<(f[a+272>>2]|0)>>>0){QD(b,j);f[d>>2]=(f[d>>2]|0)+108}else RD(e,j);SD(j);c=f[k>>2]|0;b=f[e>>2]|0}f[k>>2]=c+1;ZD(b+(c*108|0)|0,(f[a+256>>2]|0)+-108|0,(f[i>>2]|0)+32|0,l);l=f[k>>2]|0;l=l+-1|0;k=a+264|0;k=f[k>>2]|0;l=k+(l*108|0)|0;a=a+280|0;f[a>>2]=l;u=m;return}e=a+264|0;b=f[e>>2]|0;c=a+268|0;if((b|0)==(f[c>>2]|0)){BCa(l);f[l>>2]=91220;b=l+32|0;g=l+16|0;h=g+48|0;do{f[g>>2]=0;g=g+4|0}while((g|0)<(h|0));f[b>>2]=1;b=l+64|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[b+12>>2]=0;f[b+16>>2]=0;f[b+20>>2]=0;f[l+12>>2]=31;n[l+88>>2]=0.0;n[l+92>>2]=0.0;n[l+96>>2]=0.0;n[l+100>>2]=1.0;n[l+104>>2]=2.0;b=f[c>>2]|0;if(b>>>0<(f[a+272>>2]|0)>>>0){QD(b,l);f[c>>2]=(f[c>>2]|0)+108}else RD(e,l);SD(l);d=f[k>>2]|0;b=f[e>>2]|0}else d=0;f[k>>2]=d+1;c=f[a+256>>2]|0;f[b+(d*108|0)+12>>2]=f[c+-96>>2];if((c+-108|0)!=(b+(d*108|0)|0)){f[b+(d*108|0)+16>>2]=f[c+-92>>2];TD(b+(d*108|0)+20|0,f[c+-88>>2]|0,f[c+-84>>2]|0);f[b+(d*108|0)+32>>2]=f[c+-76>>2];f[b+(d*108|0)+36>>2]=f[c+-72>>2];UD(b+(d*108|0)+40|0,f[c+-68>>2]|0,f[c+-64>>2]|0);VD(b+(d*108|0)+52|0,f[c+-56>>2]|0,f[c+-52>>2]|0);WD(b+(d*108|0)+64|0,f[c+-44>>2]|0,f[c+-40>>2]|0);XD(b+(d*108|0)+76|0,f[c+-32>>2]|0,f[c+-28>>2]|0)}j=c+-20|0;l=b+(d*108|0)+88|0;f[l>>2]=f[j>>2];f[l+4>>2]=f[j+4>>2];f[l+8>>2]=f[j+8>>2];f[l+12>>2]=f[j+12>>2];f[b+(d*108|0)+104>>2]=f[c+-4>>2];l=f[k>>2]|0;l=l+-1|0;k=a+264|0;k=f[k>>2]|0;l=k+(l*108|0)|0;a=a+280|0;f[a>>2]=l;u=m;return}function QD(a,b){a=a|0;b=b|0;var c=0,d=0;BCa(a);f[a>>2]=91220;f[a+12>>2]=f[b+12>>2];GD(a+16|0,b+16|0);gE(a+64|0,b+64|0);hE(a+76|0,b+76|0);c=a+88|0;d=b+88|0;f[c>>2]=f[d>>2];f[c+4>>2]=f[d+4>>2];f[c+8>>2]=f[d+8>>2];f[c+12>>2]=f[d+12>>2];f[a+104>>2]=f[b+104>>2];return}function RD(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0;i=a+4|0;c=f[a>>2]|0;e=((f[i>>2]|0)-c|0)/108|0;d=e+1|0;if(d>>>0>39768215)KEb(a);j=a+8|0;h=((f[j>>2]|0)-c|0)/108|0;g=h<<1;g=h>>>0<19884107?(g>>>0<d>>>0?d:g):39768215;do if(g)if(g>>>0>39768215){j=mb(8)|0;RDb(j,238482);f[j>>2]=144484;qb(j|0,84192,1464)}else{c=LDb(g*108|0)|0;break}else c=0;while(0);e=c+(e*108|0)|0;d=e;h=c+(g*108|0)|0;QD(e,b);b=e+108|0;g=f[a>>2]|0;c=f[i>>2]|0;if((c|0)==(g|0)){e=g;c=g}else{while(1){c=c+-108|0;QD(e+-108|0,c);e=d+-108|0;if((c|0)==(g|0))break;else d=e}d=e;e=f[a>>2]|0;c=f[i>>2]|0}f[a>>2]=d;f[i>>2]=b;f[j>>2]=h;d=e;if((c|0)!=(d|0))do{c=c+-108|0;Nk[f[(f[c>>2]|0)+4>>2]&2047](c)}while((c|0)!=(d|0));if(!e)return;NDb(e);return}function SD(a){a=a|0;var b=0,c=0,d=0,e=0;f[a>>2]=91220;c=a+76|0;d=f[c>>2]|0;if(d|0){e=a+80|0;b=f[e>>2]|0;if((b|0)==(d|0))b=d;else{do{b=b+-80|0;sC(b)}while((b|0)!=(d|0));b=f[c>>2]|0}f[e>>2]=d;NDb(b)}fE(a+64|0);b=f[a+52>>2]|0;if(b|0){f[a+56>>2]=b;NDb(b)}b=f[a+40>>2]|0;if(b|0){f[a+44>>2]=b;NDb(b)}b=f[a+20>>2]|0;if(!b){V4(a);return}f[a+24>>2]=b;NDb(b);V4(a);return}function TD(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;k=c;h=b;g=k-h|0;e=g>>2;i=a+8|0;d=f[i>>2]|0;l=f[a>>2]|0;j=l;if(e>>>0<=d-l>>2>>>0){g=a+4|0;a=(f[g>>2]|0)-l>>2;e=e>>>0>a>>>0;a=e?b+(a<<2)|0:c;c=a;d=c-h|0;if(d|0)hGb(l|0,b|0,d|0)|0;if(!e){f[g>>2]=j+(d>>2<<2);return}d=k-c|0;if((d|0)<=0)return;gGb(f[g>>2]|0,a|0,d|0)|0;f[g>>2]=(f[g>>2]|0)+(d>>>2<<2);return}if(l){d=a+4|0;f[d>>2]=l;NDb(l);f[i>>2]=0;f[d>>2]=0;f[a>>2]=0;d=0}if(e>>>0>1073741823)KEb(a);l=d>>1;e=d>>2>>>0<536870911?(l>>>0<e>>>0?e:l):1073741823;if(e>>>0>1073741823)KEb(a);d=LDb(e<<2)|0;c=a+4|0;f[c>>2]=d;f[a>>2]=d;f[i>>2]=d+(e<<2);if((g|0)<=0)return;gGb(d|0,b|0,g|0)|0;f[c>>2]=d+(g>>>2<<2);return}function UD(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0.0,k=0.0,l=0.0,m=0;h=(c-b|0)/40|0;i=a+8|0;d=f[i>>2]|0;g=f[a>>2]|0;e=g;if(h>>>0>((d-g|0)/40|0)>>>0){if(g){d=a+4|0;f[d>>2]=g;NDb(g);f[i>>2]=0;f[d>>2]=0;f[a>>2]=0;d=0}if(h>>>0>107374182)KEb(a);g=(d|0)/40|0;e=g<<1;e=g>>>0<53687091?(e>>>0<h>>>0?h:e):107374182;if(e>>>0>107374182)KEb(a);d=LDb(e*40|0)|0;g=a+4|0;f[g>>2]=d;f[a>>2]=d;f[i>>2]=d+(e*40|0);if((b|0)==(c|0))return;do{k=+p[b>>3];p[d>>3]=k;l=+p[b+8>>3];p[d+8>>3]=l;j=+p[b+16>>3];p[d+16>>3]=j;p[d+24>>3]=+p[b+24>>3];i=(l>=0.0?2:0)|k>=0.0|(j>=0.0?4:0);f[d+32>>2]=i;f[d+36>>2]=i^7;b=b+40|0;d=d+40|0}while((b|0)!=(c|0));f[g>>2]=d;return}i=a+4|0;d=f[i>>2]|0;a=(d-g|0)/40|0;g=h>>>0>a>>>0;h=b+(a*40|0)|0;a=g?h:c;if((a|0)==(b|0))b=e;else{do{if((b|0)!=(e|0)){k=+p[b>>3];p[e>>3]=k;j=+p[b+8>>3];p[e+8>>3]=j;l=+p[b+16>>3];p[e+16>>3]=l;p[e+24>>3]=+p[b+24>>3];m=(j>=0.0?2:0)|k>=0.0|(l>=0.0?4:0);f[e+32>>2]=m;f[e+36>>2]=m^7}b=b+40|0;e=e+40|0}while((b|0)!=(a|0));b=e}if(!g){f[i>>2]=b;return}if((a|0)==(c|0))return;b=h;do{k=+p[b>>3];p[d>>3]=k;j=+p[b+8>>3];p[d+8>>3]=j;l=+p[b+16>>3];p[d+16>>3]=l;p[d+24>>3]=+p[b+24>>3];m=(j>=0.0?2:0)|k>=0.0|(l>=0.0?4:0);f[d+32>>2]=m;f[d+36>>2]=m^7;b=b+40|0;d=d+40|0}while((b|0)!=(c|0));f[i>>2]=d;return}function VD(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;k=c;h=b;g=k-h|0;e=(g|0)/12|0;i=a+8|0;d=f[i>>2]|0;l=f[a>>2]|0;j=l;if(e>>>0<=((d-l|0)/12|0)>>>0){g=a+4|0;a=((f[g>>2]|0)-l|0)/12|0;e=e>>>0>a>>>0;a=e?b+(a*12|0)|0:c;c=a;d=c-h|0;if(d|0)hGb(l|0,b|0,d|0)|0;if(!e){f[g>>2]=j+(((d|0)/12|0)*12|0);return}d=k-c|0;if((d|0)<=0)return;gGb(f[g>>2]|0,a|0,d|0)|0;f[g>>2]=(f[g>>2]|0)+(((d>>>0)/12|0)*12|0);return}if(l){d=a+4|0;f[d>>2]=l;NDb(l);f[i>>2]=0;f[d>>2]=0;f[a>>2]=0;d=0}if(e>>>0>357913941)KEb(a);k=(d|0)/12|0;l=k<<1;e=k>>>0<178956970?(l>>>0<e>>>0?e:l):357913941;if(e>>>0>357913941)KEb(a);d=LDb(e*12|0)|0;c=a+4|0;f[c>>2]=d;f[a>>2]=d;f[i>>2]=d+(e*12|0);if((g|0)<=0)return;gGb(d|0,b|0,g|0)|0;f[c>>2]=d+(((g>>>0)/12|0)*12|0);return}function WD(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;d=(c-b|0)/52|0;h=a+8|0;g=f[a>>2]|0;e=g;if(d>>>0>(((f[h>>2]|0)-g|0)/52|0)>>>0){eE(a);if(d>>>0>82595524)KEb(a);i=((f[h>>2]|0)-(f[a>>2]|0)|0)/52|0;j=i<<1;d=i>>>0<41297762?(j>>>0<d>>>0?d:j):82595524;if(d>>>0>82595524)KEb(a);e=LDb(d*52|0)|0;g=a+4|0;f[g>>2]=e;f[a>>2]=e;f[h>>2]=e+(d*52|0);if((b|0)==(c|0))return;do{d=f[b>>2]|0;f[e>>2]=d;if(d|0){j=d+8|0;f[j>>2]=(f[j>>2]|0)+1}GD(e+4|0,b+4|0);b=b+52|0;e=(f[g>>2]|0)+52|0;f[g>>2]=e}while((b|0)!=(c|0));return}j=a+4|0;i=((f[j>>2]|0)-g|0)/52|0;h=d>>>0>i>>>0;d=b+(i*52|0)|0;i=h?d:c;if((i|0)==(b|0))b=e;else{do{g=f[e>>2]|0;a=f[b>>2]|0;if((g|0)!=(a|0)){f[e>>2]=a;if(a|0){a=a+8|0;f[a>>2]=(f[a>>2]|0)+1}if(g|0?(k=g+8|0,a=f[k>>2]|0,f[k>>2]=a-1,(a|0)==1):0)X4(g,1,1)}if((b|0)!=(e|0)){f[e+4>>2]=f[b+4>>2];TD(e+8|0,f[b+8>>2]|0,f[b+12>>2]|0);f[e+20>>2]=f[b+20>>2];f[e+24>>2]=f[b+24>>2];UD(e+28|0,f[b+28>>2]|0,f[b+32>>2]|0);VD(e+40|0,f[b+40>>2]|0,f[b+44>>2]|0)}b=b+52|0;e=e+52|0}while((b|0)!=(i|0));b=e}if(h){if((i|0)==(c|0))return;b=f[j>>2]|0;do{e=f[d>>2]|0;f[b>>2]=e;if(e|0){k=e+8|0;f[k>>2]=(f[k>>2]|0)+1}GD(b+4|0,d+4|0);d=d+52|0;b=(f[j>>2]|0)+52|0;f[j>>2]=b}while((d|0)!=(c|0));return}d=f[j>>2]|0;if((d|0)!=(b|0))do{e=f[d+-12>>2]|0;if(e|0){f[d+-8>>2]=e;NDb(e)}e=f[d+-24>>2]|0;if(e|0){f[d+-20>>2]=e;NDb(e)}e=f[d+-44>>2]|0;if(e|0){f[d+-40>>2]=e;NDb(e)}d=d+-52|0;e=f[d>>2]|0;if(e|0?(c=e+8|0,k=f[c>>2]|0,f[c>>2]=k-1,(k|0)==1):0)X4(e,1,1);f[d>>2]=0}while((d|0)!=(b|0));f[j>>2]=b;return}function XD(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;i=(c-b|0)/80|0;j=a+8|0;d=f[j>>2]|0;h=f[a>>2]|0;e=h;if(i>>>0<=((d-h|0)/80|0)>>>0){a=a+4|0;d=((f[a>>2]|0)-h|0)/80|0;g=i>>>0>d>>>0;d=b+(d*80|0)|0;h=g?d:c;if((h|0)!=(b|0))do{bE(e,b)|0;b=b+80|0;e=e+80|0}while((b|0)!=(h|0));if(g){if((h|0)==(c|0))return;b=f[a>>2]|0;do{FD(b,d);d=d+80|0;b=(f[a>>2]|0)+80|0;f[a>>2]=b}while((d|0)!=(c|0));return}else{d=f[a>>2]|0;if((d|0)!=(e|0))do{d=d+-80|0;sC(d)}while((d|0)!=(e|0));f[a>>2]=e;return}}if(h){g=a+4|0;d=f[g>>2]|0;if((d|0)==(e|0))d=h;else{do{d=d+-80|0;sC(d)}while((d|0)!=(e|0));d=f[a>>2]|0}f[g>>2]=e;NDb(d);f[j>>2]=0;f[g>>2]=0;f[a>>2]=0;d=0}if(i>>>0>53687091)KEb(a);h=(d|0)/80|0;e=h<<1;e=h>>>0<26843545?(e>>>0<i>>>0?i:e):53687091;if(e>>>0>53687091)KEb(a);d=LDb(e*80|0)|0;g=a+4|0;f[g>>2]=d;f[a>>2]=d;f[j>>2]=d+(e*80|0);if((b|0)==(c|0))return;do{FD(d,b);b=b+80|0;d=(f[g>>2]|0)+80|0;f[g>>2]=d}while((b|0)!=(c|0));return}function YD(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var 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,o=0.0,q=0.0;m=+p[b+72>>3];g=+p[c+88>>3];l=+p[c>>3]*m*.5;j=+p[d+16>>3];m=m*+p[c+64>>3]*.5+m*g*.5;q=+p[d>>3]*l+j*m;i=+p[d+48>>3];o=+p[d+32>>3]*l+i*m;h=+p[d+80>>3];m=+p[d+64>>3]*l+h*m;l=+p[b+80>>3];e=+p[c+40>>3]*l*.5;l=g*l*.5+l*+p[c+72>>3]*.5;k=+p[d+8>>3]*e+j*l;f=+p[d+40>>3]*e+i*l;l=+p[d+72>>3]*e+h*l;e=+p[d+112>>3]*g+ +p[d+120>>3]*+p[c+120>>3];f=.7071067690849304/+K(+(q*q+o*o+m*m+(l*l+(k*k+f*f))));n[a>>2]=f*(j*g);n[a+4>>2]=f*(i*g);n[a+8>>2]=f*(h*g);n[a+12>>2]=f*e;return}function ZD(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0;f[a+12>>2]=f[b+12>>2];e=a+64|0;if((a|0)!=(b|0)){WD(e,f[b+64>>2]|0,f[b+68>>2]|0);XD(a+76|0,f[b+76>>2]|0,f[b+80>>2]|0)}g=a+88|0;f[g>>2]=f[d>>2];f[g+4>>2]=f[d+4>>2];f[g+8>>2]=f[d+8>>2];f[g+12>>2]=f[d+12>>2];f[a+104>>2]=f[b+104>>2];_D(a+16|0,b+16|0,c);b=f[e>>2]|0;d=a+68|0;if((b|0)!=(f[d>>2]|0))do{$D(b+4|0,c);b=b+52|0}while((b|0)!=(f[d>>2]|0));b=f[a+76>>2]|0;a=a+80|0;if((b|0)==(f[a>>2]|0))return;do{$D(b+20|0,c);d=f[b+68>>2]|0;e=b+72|0;if((d|0)!=(f[e>>2]|0))do{$D(d,c);d=d+48|0}while((d|0)!=(f[e>>2]|0));b=b+80|0}while((b|0)!=(f[a>>2]|0));return}function _D(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0.0,l=0.0,m=0.0,n=0,o=0,q=0.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,L=0,M=0,N=0,O=0,P=0.0,Q=0.0,R=0.0;if((a|0)!=(b|0))VD(a+36|0,f[b+36>>2]|0,f[b+40>>2]|0);L=f[b>>2]|0;if(!L){f[a>>2]=0;f[a+20>>2]=0;f[a+28>>2]=f[a+24>>2];return}h=b+24|0;i=f[h>>2]|0;j=b+28|0;g=f[j>>2]|0;if((i|0)==(g|0))b=0;else{d=1;b=0;e=i;while(1){b=b+((d&L|0)!=0&1)|0;e=e+40|0;if((e|0)==(g|0))break;else d=d<<1}}J=a+24|0;d=a+28|0;e=f[J>>2]|0;g=((f[d>>2]|0)-e|0)/40|0;if(b>>>0<=g>>>0){if(b>>>0<g>>>0)f[d>>2]=e+(b*40|0)}else{aE(J,b-g|0);i=f[h>>2]|0}I=a+20|0;f[I>>2]=0;s=f[j>>2]|0;if((i|0)==(s|0))b=0;else{t=c+8|0;u=c+16|0;v=c+24|0;w=c+32|0;x=c+40|0;y=c+48|0;z=c+56|0;A=c+64|0;B=c+72|0;C=c+80|0;D=c+88|0;E=c+96|0;F=c+104|0;G=c+112|0;H=c+120|0;d=0;r=1;b=0;while(1){if(r&L){e=f[J>>2]|0;g=e+(d*40|0)|0;q=+p[i>>3];if((i|0)==(g|0)){O=e+(d*40|0)+8|0;N=e+(d*40|0)+16|0;M=e+(d*40|0)+24|0;h=O;j=N;n=M;o=e+(d*40|0)+32|0;e=e+(d*40|0)+36|0;k=+p[O>>3];l=+p[N>>3];m=+p[M>>3]}else{p[g>>3]=q;k=+p[i+8>>3];h=e+(d*40|0)+8|0;p[h>>3]=k;l=+p[i+16>>3];j=e+(d*40|0)+16|0;p[j>>3]=l;m=+p[i+24>>3];n=e+(d*40|0)+24|0;p[n>>3]=m;O=(k>=0.0?2:0)|q>=0.0|(l>=0.0?4:0);o=e+(d*40|0)+32|0;f[o>>2]=O;e=e+(d*40|0)+36|0;f[e>>2]=O^7}R=q*+p[c>>3]+k*+p[t>>3]+l*+p[u>>3]+m*+p[v>>3];Q=q*+p[w>>3]+k*+p[x>>3]+l*+p[y>>3]+m*+p[z>>3];P=q*+p[A>>3]+k*+p[B>>3]+l*+p[C>>3]+m*+p[D>>3];m=q*+p[E>>3]+k*+p[F>>3]+l*+p[G>>3]+m*+p[H>>3];O=(Q>=0.0?2:0)|R>=0.0|(P>=0.0?4:0);f[o>>2]=O;f[e>>2]=O^7;q=1.0/+K(+(R*R+Q*Q+P*P));p[g>>3]=R*q;p[h>>3]=Q*q;p[j>>3]=P*q;p[n>>3]=m*q;b=b<<1|1;f[I>>2]=b;d=d+1|0}i=i+40|0;if((i|0)==(s|0))break;else r=r<<1}}f[a>>2]=b;return}function $D(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0.0,z=0,A=0.0,B=0,C=0.0,D=0.0,E=0,F=0.0,G=0.0;w=f[a>>2]|0;if(!w)return;f[a+20>>2]=w;u=f[a+24>>2]|0;v=f[a+28>>2]|0;if((u|0)==(v|0))return;d=b+8|0;e=b+16|0;g=b+24|0;h=b+32|0;i=b+40|0;j=b+48|0;k=b+56|0;l=b+64|0;m=b+72|0;n=b+80|0;o=b+88|0;q=b+96|0;r=b+104|0;s=b+112|0;t=b+120|0;c=1;a=u;while(1){if(c&w|0){G=+p[a>>3];B=a+8|0;F=+p[B>>3];z=a+16|0;x=+p[z>>3];u=a+24|0;y=+p[u>>3];D=G*+p[b>>3]+F*+p[d>>3]+x*+p[e>>3]+y*+p[g>>3];C=G*+p[h>>3]+F*+p[i>>3]+x*+p[j>>3]+y*+p[k>>3];A=G*+p[l>>3]+F*+p[m>>3]+x*+p[n>>3]+y*+p[o>>3];y=G*+p[q>>3]+F*+p[r>>3]+x*+p[s>>3]+y*+p[t>>3];E=(C>=0.0?2:0)|D>=0.0|(A>=0.0?4:0);f[a+32>>2]=E;f[a+36>>2]=E^7;x=1.0/+K(+(D*D+C*C+A*A));p[a>>3]=D*x;p[B>>3]=C*x;p[z>>3]=A*x;p[u>>3]=y*x}a=a+40|0;if((a|0)==(v|0))break;else c=c<<1}return}function aE(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0.0,o=0.0,q=0.0;l=a+8|0;d=f[l>>2]|0;m=a+4|0;c=f[m>>2]|0;i=c;if(((d-c|0)/40|0)>>>0>=b>>>0){do{d=c+40|0;do{f[c>>2]=0;c=c+4|0}while((c|0)<(d|0));c=(f[m>>2]|0)+40|0;f[m>>2]=c;b=b+-1|0}while((b|0)!=0);return}j=f[a>>2]|0;c=(c-j|0)/40|0;h=c+b|0;k=j;if(h>>>0>107374182)KEb(a);g=(d-j|0)/40|0;e=g<<1;e=g>>>0<53687091?(e>>>0<h>>>0?h:e):107374182;do if(e)if(e>>>0>107374182){m=mb(8)|0;RDb(m,238482);f[m>>2]=144484;qb(m|0,84192,1464)}else{g=LDb(e*40|0)|0;break}else g=0;while(0);d=g+(c*40|0)|0;iGb(d|0,0,b*40|0)|0;e=g+(e*40|0)|0;b=g+(h*40|0)|0;if((i|0)==(k|0))c=j;else{c=i;do{j=d;d=d+-40|0;i=c;c=c+-40|0;o=+p[c>>3];p[d>>3]=o;q=+p[i+-32>>3];p[j+-32>>3]=q;n=+p[i+-24>>3];p[j+-24>>3]=n;p[j+-16>>3]=+p[i+-16>>3];i=(q>=0.0?2:0)|o>=0.0|(n>=0.0?4:0);f[j+-8>>2]=i;f[j+-4>>2]=i^7}while((c|0)!=(k|0));c=f[a>>2]|0}f[a>>2]=d;f[m>>2]=b;f[l>>2]=e;if(!c)return;NDb(c);return}function bE(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0;f[a>>2]=f[b>>2];e=(a|0)==(b|0);if(!e)cE(a+4|0,f[b+4>>2]|0,f[b+8>>2]|0);g=a+16|0;c=f[g>>2]|0;d=f[b+16>>2]|0;if((c|0)!=(d|0)){f[g>>2]=d;if(d|0){g=d+8|0;f[g>>2]=(f[g>>2]|0)+1}if(c|0?(d=c+8|0,g=f[d>>2]|0,f[d>>2]=g-1,(g|0)==1):0)X4(c,1,1)}if(e)return a|0;f[a+20>>2]=f[b+20>>2];TD(a+24|0,f[b+24>>2]|0,f[b+28>>2]|0);f[a+36>>2]=f[b+36>>2];f[a+40>>2]=f[b+40>>2];UD(a+44|0,f[b+44>>2]|0,f[b+48>>2]|0);VD(a+56|0,f[b+56>>2]|0,f[b+60>>2]|0);dE(a+68|0,f[b+68>>2]|0,f[b+72>>2]|0);return a|0}function cE(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;k=c;h=b;g=k-h|0;e=g>>2;i=a+8|0;d=f[i>>2]|0;l=f[a>>2]|0;j=l;if(e>>>0<=d-l>>2>>>0){g=a+4|0;a=(f[g>>2]|0)-l>>2;e=e>>>0>a>>>0;a=e?b+(a<<2)|0:c;c=a;d=c-h|0;if(d|0)hGb(l|0,b|0,d|0)|0;if(!e){f[g>>2]=j+(d>>2<<2);return}d=k-c|0;if((d|0)<=0)return;gGb(f[g>>2]|0,a|0,d|0)|0;f[g>>2]=(f[g>>2]|0)+(d>>>2<<2);return}if(l){d=a+4|0;f[d>>2]=l;NDb(l);f[i>>2]=0;f[d>>2]=0;f[a>>2]=0;d=0}if(e>>>0>1073741823)KEb(a);l=d>>1;e=d>>2>>>0<536870911?(l>>>0<e>>>0?e:l):1073741823;if(e>>>0>1073741823)KEb(a);d=LDb(e<<2)|0;c=a+4|0;f[c>>2]=d;f[a>>2]=d;f[i>>2]=d+(e<<2);if((g|0)<=0)return;gGb(d|0,b|0,g|0)|0;f[c>>2]=d+(g>>>2<<2);return}function dE(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;i=(c-b|0)/48|0;j=a+8|0;d=f[j>>2]|0;g=f[a>>2]|0;e=g;if(i>>>0>((d-g|0)/48|0)>>>0){if(g){h=a+4|0;d=f[h>>2]|0;if((d|0)==(e|0))d=g;else{do{g=f[d+-12>>2]|0;if(g|0){f[d+-8>>2]=g;NDb(g)}g=f[d+-24>>2]|0;if(g|0){f[d+-20>>2]=g;NDb(g)}g=f[d+-44>>2]|0;if(g|0){f[d+-40>>2]=g;NDb(g)}d=d+-48|0}while((d|0)!=(e|0));d=f[a>>2]|0}f[h>>2]=e;NDb(d);f[j>>2]=0;f[h>>2]=0;f[a>>2]=0;d=0}if(i>>>0>89478485)KEb(a);h=(d|0)/48|0;e=h<<1;e=h>>>0<44739242?(e>>>0<i>>>0?i:e):89478485;if(e>>>0>89478485)KEb(a);d=LDb(e*48|0)|0;g=a+4|0;f[g>>2]=d;f[a>>2]=d;f[j>>2]=d+(e*48|0);if((b|0)==(c|0))return;do{GD(d,b);b=b+48|0;d=(f[g>>2]|0)+48|0;f[g>>2]=d}while((b|0)!=(c|0));return}a=a+4|0;d=((f[a>>2]|0)-g|0)/48|0;g=i>>>0>d>>>0;d=b+(d*48|0)|0;h=g?d:c;if((h|0)!=(b|0))do{if((b|0)!=(e|0)){f[e>>2]=f[b>>2];TD(e+4|0,f[b+4>>2]|0,f[b+8>>2]|0);f[e+16>>2]=f[b+16>>2];f[e+20>>2]=f[b+20>>2];UD(e+24|0,f[b+24>>2]|0,f[b+28>>2]|0);VD(e+36|0,f[b+36>>2]|0,f[b+40>>2]|0)}b=b+48|0;e=e+48|0}while((b|0)!=(h|0));if(g){if((h|0)==(c|0))return;b=f[a>>2]|0;do{GD(b,d);d=d+48|0;b=(f[a>>2]|0)+48|0;f[a>>2]=b}while((d|0)!=(c|0));return}d=f[a>>2]|0;if((d|0)!=(e|0))do{b=f[d+-12>>2]|0;if(b|0){f[d+-8>>2]=b;NDb(b)}b=f[d+-24>>2]|0;if(b|0){f[d+-20>>2]=b;NDb(b)}b=f[d+-44>>2]|0;if(b|0){f[d+-40>>2]=b;NDb(b)}d=d+-48|0}while((d|0)!=(e|0));f[a>>2]=e;return}function eE(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;d=f[a>>2]|0;if(!d)return;e=a+4|0;b=f[e>>2]|0;if((b|0)==(d|0))b=d;else{do{c=f[b+-12>>2]|0;if(c|0){f[b+-8>>2]=c;NDb(c)}c=f[b+-24>>2]|0;if(c|0){f[b+-20>>2]=c;NDb(c)}c=f[b+-44>>2]|0;if(c|0){f[b+-40>>2]=c;NDb(c)}b=b+-52|0;c=f[b>>2]|0;if(c|0?(h=c+8|0,g=f[h>>2]|0,f[h>>2]=g-1,(g|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(d|0));b=f[a>>2]|0}f[e>>2]=d;NDb(b);f[a+8>>2]=0;f[e>>2]=0;f[a>>2]=0;return}function fE(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;d=f[a>>2]|0;if(!d)return;e=a+4|0;b=f[e>>2]|0;if((b|0)==(d|0))b=d;else{do{c=f[b+-12>>2]|0;if(c|0){f[b+-8>>2]=c;NDb(c)}c=f[b+-24>>2]|0;if(c|0){f[b+-20>>2]=c;NDb(c)}c=f[b+-44>>2]|0;if(c|0){f[b+-40>>2]=c;NDb(c)}b=b+-52|0;c=f[b>>2]|0;if(c|0?(h=c+8|0,g=f[h>>2]|0,f[h>>2]=g-1,(g|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(d|0));b=f[a>>2]|0}f[e>>2]=d;NDb(b);return}function gE(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0;f[a>>2]=0;i=a+4|0;f[i>>2]=0;e=a+8|0;f[e>>2]=0;h=b+4|0;c=(f[h>>2]|0)-(f[b>>2]|0)|0;g=(c|0)/52|0;if(!c)return;if(g>>>0>82595524)KEb(a);d=LDb(c)|0;f[i>>2]=d;f[a>>2]=d;f[e>>2]=d+(g*52|0);c=f[b>>2]|0;b=f[h>>2]|0;if((c|0)==(b|0))return;do{a=f[c>>2]|0;f[d>>2]=a;if(a|0){h=a+8|0;f[h>>2]=(f[h>>2]|0)+1}GD(d+4|0,c+4|0);c=c+52|0;d=(f[i>>2]|0)+52|0;f[i>>2]=d}while((c|0)!=(b|0));return}function hE(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;f[a>>2]=0;h=a+4|0;f[h>>2]=0;d=a+8|0;f[d>>2]=0;g=b+4|0;c=(f[g>>2]|0)-(f[b>>2]|0)|0;e=(c|0)/80|0;if(!c)return;if(e>>>0>53687091)KEb(a);c=LDb(c)|0;f[h>>2]=c;f[a>>2]=c;f[d>>2]=c+(e*80|0);a=f[b>>2]|0;b=f[g>>2]|0;if((a|0)==(b|0))return;do{FD(c,a);a=a+80|0;c=(f[h>>2]|0)+80|0;f[h>>2]=c}while((a|0)!=(b|0));return}function iE(a){a=a|0;SD(a);NDb(a);return}function jE(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=a+4|0;c=f[m>>2]|0;d=f[a>>2]|0;i=c-d>>2;e=i+1|0;g=d;if(e>>>0>1073741823)KEb(a);l=a+8|0;j=(f[l>>2]|0)-d|0;k=j>>1;e=j>>2>>>0<536870911?(k>>>0<e>>>0?e:k):1073741823;do if(e)if(e>>>0>1073741823){m=mb(8)|0;RDb(m,238482);f[m>>2]=144484;qb(m|0,84192,1464)}else{j=LDb(e<<2)|0;break}else j=0;while(0);d=j+(i<<2)|0;k=j+(e<<2)|0;e=f[b>>2]|0;f[d>>2]=e;if(e){g=e+8|0;f[g>>2]=(f[g>>2]|0)+1;g=f[a>>2]|0;c=f[m>>2]|0}h=d+4|0;e=g;if((c|0)==(g|0))b=e;else{b=i+-1-((c+-4-e|0)>>>2)|0;while(1){c=c+-4|0;e=f[c>>2]|0;f[d+-4>>2]=e;if(e|0){i=e+8|0;f[i>>2]=(f[i>>2]|0)+1}if((c|0)==(g|0))break;else d=d+-4|0}d=j+(b<<2)|0;b=f[a>>2]|0;c=f[m>>2]|0}f[a>>2]=d;f[m>>2]=h;f[l>>2]=k;e=b;if((c|0)!=(e|0))do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(l=d+8|0,m=f[l>>2]|0,f[l>>2]=m-1,(m|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(e|0));if(!b)return;NDb(b);return}function kE(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;k=u;u=u+112|0;j=k;g=a+76|0;h=(b|0)==0;if(!h){i=b+8|0;f[i>>2]=(f[i>>2]|0)+1}i=a+92|0;do if(f[i>>2]|0){e=a+84|0;c=f[e>>2]|0;if((c|0)==(f[a+88>>2]|0)){OD(a+80|0,g);break}d=f[g>>2]|0;f[c>>2]=d;if(d){c=d+8|0;f[c>>2]=(f[c>>2]|0)+1;c=f[e>>2]|0}f[e>>2]=c+4}while(0);c=f[g>>2]|0;if((c|0)!=(b|0)){f[g>>2]=b;if(!h){g=b+8|0;f[g>>2]=(f[g>>2]|0)+1}if(c|0?(e=c+8|0,g=f[e>>2]|0,f[e>>2]=g-1,(g|0)==1):0)X4(c,1,1)}f[i>>2]=(f[i>>2]|0)+1;if(!h?(h=b+8|0,i=f[h>>2]|0,f[h>>2]=i-1,(i|0)==1):0)X4(b,1,1);BCa(j);f[j>>2]=91220;c=j+32|0;d=j+16|0;e=d+48|0;do{f[d>>2]=0;d=d+4|0}while((d|0)<(e|0));f[c>>2]=1;c=j+64|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;f[c+16>>2]=0;f[c+20>>2]=0;f[j+12>>2]=31;n[j+88>>2]=0.0;n[j+92>>2]=0.0;n[j+96>>2]=0.0;n[j+100>>2]=1.0;n[j+104>>2]=2.0;c=a+256|0;d=f[c>>2]|0;if(d>>>0<(f[a+260>>2]|0)>>>0){QD(d,j);f[c>>2]=(f[c>>2]|0)+108}else RD(a+252|0,j);SD(j);c=f[c>>2]|0;h=c+-92|0;d=a+16|0;g=f[d>>2]|0;mE(h,(g&2|0)!=0,(g&4|0)!=0);g=b+32|0;$D(h,g);f[c+-96>>2]=f[d>>2];f[c+-4>>2]=f[a+24>>2];d=f[a+64>>2]|0;h=a+68|0;if((d|0)==(f[h>>2]|0)){b=a+284|0;n[b>>2]=-1.0;PD(a);u=k;return}i=c+-28|0;j=c+-24|0;e=c+-32|0;do{c=f[d+16>>2]|0;do if(c|0?(PWa(g,c+32|0)|0)==0:0){c=f[i>>2]|0;if((c|0)==(f[j>>2]|0)){nE(e,d);break}else{FD(c,d);f[i>>2]=(f[i>>2]|0)+80;break}}while(0);d=d+80|0}while((d|0)!=(f[h>>2]|0));b=a+284|0;n[b>>2]=-1.0;PD(a);u=k;return}function lE(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;h=a+92|0;b=f[h>>2]|0;if(b|0){g=a+84|0;d=f[g>>2]|0;if((f[a+80>>2]|0)!=(d|0)){e=a+76|0;c=f[e>>2]|0;b=f[d+-4>>2]|0;if((c|0)!=(b|0)){f[e>>2]=b;if(b|0){e=b+8|0;f[e>>2]=(f[e>>2]|0)+1}if(c|0?(d=c+8|0,e=f[d>>2]|0,f[d>>2]=e-1,(e|0)==1):0)X4(c,1,1)}b=(f[g>>2]|0)+-4|0;c=f[b>>2]|0;if(c|0?(d=c+8|0,e=f[d>>2]|0,f[d>>2]=e-1,(e|0)==1):0)X4(c,1,1);f[b>>2]=0;f[g>>2]=b;b=f[h>>2]|0}f[h>>2]=b+-1}h=a+256|0;g=(f[h>>2]|0)+-108|0;Nk[f[(f[g>>2]|0)+4>>2]&2047](g);f[h>>2]=g;n[a+284>>2]=-1.0;ND(a);return}function mE(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0.0,q=0.0;n=u;u=u+48|0;k=n;m=a+24|0;d=f[m>>2]|0;l=a+28|0;f[l>>2]=d;p[k>>3]=1.0;e=k+8|0;g=k+24|0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;f[e+12>>2]=0;p[g>>3]=1.0;f[k+32>>2]=7;f[k+36>>2]=0;j=a+32|0;h=f[j>>2]|0;if(h>>>0>d>>>0){p[d>>3]=1.0;o=+p[e>>3];p[d+8>>3]=o;q=+p[k+16>>3];p[d+16>>3]=q;p[d+24>>3]=+p[g>>3];g=(q>=0.0?4:0)|(o>=0.0?3:1);f[d+32>>2]=g;f[d+36>>2]=g^7;g=d+40|0;f[l>>2]=g}else{oE(m,k);g=f[l>>2]|0;h=f[j>>2]|0}p[k>>3]=-1.0;d=k+8|0;e=k+24|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;f[d+12>>2]=0;p[e>>3]=1.0;f[k+32>>2]=6;f[k+36>>2]=1;if(g>>>0<h>>>0){p[g>>3]=-1.0;q=+p[d>>3];p[g+8>>3]=q;o=+p[k+16>>3];p[g+16>>3]=o;p[g+24>>3]=+p[e>>3];i=(o>=0.0?4:0)|(q>=0.0?2:0);f[g+32>>2]=i;f[g+36>>2]=i^7;i=g+40|0;f[l>>2]=i}else{oE(m,k);i=f[l>>2]|0;h=f[j>>2]|0}p[k>>3]=0.0;d=k+8|0;p[d>>3]=1.0;e=k+16|0;p[e>>3]=0.0;g=k+24|0;p[g>>3]=1.0;f[k+32>>2]=7;f[k+36>>2]=0;if(i>>>0<h>>>0){p[i>>3]=0.0;q=+p[d>>3];p[i+8>>3]=q;o=+p[e>>3];p[i+16>>3]=o;p[i+24>>3]=+p[g>>3];g=(o>=0.0?4:0)|(q>=0.0?3:1);f[i+32>>2]=g;f[i+36>>2]=g^7;i=i+40|0;f[l>>2]=i}else{oE(m,k);i=f[l>>2]|0;h=f[j>>2]|0}p[k>>3]=0.0;d=k+8|0;p[d>>3]=-1.0;e=k+16|0;p[e>>3]=0.0;g=k+24|0;p[g>>3]=1.0;f[k+32>>2]=5;f[k+36>>2]=2;if(i>>>0<h>>>0){p[i>>3]=0.0;q=+p[d>>3];p[i+8>>3]=q;o=+p[e>>3];p[i+16>>3]=o;p[i+24>>3]=+p[g>>3];h=(o>=0.0?4:0)|(q>=0.0?3:1);f[i+32>>2]=h;f[i+36>>2]=h^7;f[l>>2]=i+40}else oE(m,k);if(b){d=k+16|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;f[k+12>>2]=0;p[d>>3]=1.0;e=k+24|0;p[e>>3]=1.0;f[k+32>>2]=7;f[k+36>>2]=0;g=f[l>>2]|0;if(g>>>0<(f[j>>2]|0)>>>0){p[g>>3]=0.0;q=+p[k+8>>3];p[g+8>>3]=q;o=+p[d>>3];p[g+16>>3]=o;p[g+24>>3]=+p[e>>3];b=(o>=0.0?4:0)|(q>=0.0?3:1);f[g+32>>2]=b;f[g+36>>2]=b^7;f[l>>2]=g+40}else oE(m,k)}if(c){d=k+16|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;f[k+12>>2]=0;p[d>>3]=-1.0;e=k+24|0;p[e>>3]=1.0;f[k+32>>2]=3;f[k+36>>2]=4;g=f[l>>2]|0;if(g>>>0<(f[j>>2]|0)>>>0){p[g>>3]=0.0;q=+p[k+8>>3];p[g+8>>3]=q;o=+p[d>>3];p[g+16>>3]=o;p[g+24>>3]=+p[e>>3];k=(o>=0.0?4:0)|(q>=0.0?3:1);f[g+32>>2]=k;f[g+36>>2]=k^7;f[l>>2]=g+40}else oE(m,k)}h=a+20|0;f[h>>2]=0;e=f[l>>2]|0;d=f[m>>2]|0;if((e|0)!=(d|0)){e=(e-d|0)/40|0;d=0;g=0;do{g=g<<1|1;d=d+1|0}while(d>>>0<e>>>0);f[h>>2]=g}d=a+16|0;if(!(f[d>>2]|0)){m=f[h>>2]|0;f[a>>2]=m;a=f[d>>2]|0;a=a+1|0;f[d>>2]=a;u=n;return}e=a+8|0;g=f[e>>2]|0;if((g|0)==(f[a+12>>2]|0)){JD(a+4|0,a);m=f[h>>2]|0;f[a>>2]=m;a=f[d>>2]|0;a=a+1|0;f[d>>2]=a;u=n;return}else{f[g>>2]=f[a>>2];f[e>>2]=g+4;m=f[h>>2]|0;f[a>>2]=m;a=f[d>>2]|0;a=a+1|0;f[d>>2]=a;u=n;return}}function nE(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0;i=a+4|0;c=f[a>>2]|0;e=((f[i>>2]|0)-c|0)/80|0;d=e+1|0;if(d>>>0>53687091)KEb(a);j=a+8|0;h=((f[j>>2]|0)-c|0)/80|0;g=h<<1;g=h>>>0<26843545?(g>>>0<d>>>0?d:g):53687091;do if(g)if(g>>>0>53687091){j=mb(8)|0;RDb(j,238482);f[j>>2]=144484;qb(j|0,84192,1464)}else{c=LDb(g*80|0)|0;break}else c=0;while(0);e=c+(e*80|0)|0;d=e;h=c+(g*80|0)|0;FD(e,b);b=e+80|0;g=f[a>>2]|0;c=f[i>>2]|0;if((c|0)==(g|0)){e=g;c=g}else{while(1){c=c+-80|0;FD(e+-80|0,c);e=d+-80|0;if((c|0)==(g|0))break;else d=e}d=e;e=f[a>>2]|0;c=f[i>>2]|0}f[a>>2]=d;f[i>>2]=b;f[j>>2]=h;d=e;if((c|0)!=(d|0))do{c=c+-80|0;sC(c)}while((c|0)!=(d|0));if(!e)return;NDb(e);return}function oE(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0.0,o=0.0,q=0.0;l=a+4|0;e=f[l>>2]|0;m=f[a>>2]|0;h=(e-m|0)/40|0;c=h+1|0;j=m;if(c>>>0>107374182)KEb(a);k=a+8|0;i=((f[k>>2]|0)-m|0)/40|0;d=i<<1;d=i>>>0<53687091?(d>>>0<c>>>0?c:d):107374182;do if(d)if(d>>>0>107374182){m=mb(8)|0;RDb(m,238482);f[m>>2]=144484;qb(m|0,84192,1464)}else{g=LDb(d*40|0)|0;break}else g=0;while(0);c=g+(h*40|0)|0;i=g+(d*40|0)|0;o=+p[b>>3];p[c>>3]=o;q=+p[b+8>>3];p[g+(h*40|0)+8>>3]=q;n=+p[b+16>>3];p[g+(h*40|0)+16>>3]=n;p[g+(h*40|0)+24>>3]=+p[b+24>>3];b=(q>=0.0?2:0)|o>=0.0|(n>=0.0?4:0);f[g+(h*40|0)+32>>2]=b;f[g+(h*40|0)+36>>2]=b^7;g=c+40|0;if((e|0)!=(j|0))while(1){d=c+-40|0;h=e;e=e+-40|0;o=+p[e>>3];p[d>>3]=o;n=+p[h+-32>>3];p[c+-32>>3]=n;q=+p[h+-24>>3];p[c+-24>>3]=q;p[c+-16>>3]=+p[h+-16>>3];h=(n>=0.0?2:0)|o>=0.0|(q>=0.0?4:0);f[c+-8>>2]=h;f[c+-4>>2]=h^7;if((e|0)==(j|0)){c=d;break}else c=d}f[a>>2]=c;f[l>>2]=g;f[k>>2]=i;if(!m)return;NDb(m);return}function pE(a){a=a|0;var b=0,c=0;f[a>>2]=91244;b=a+92|0;f[b>>2]=91612;c=f[a+56>>2]|0;if(c|0){f[a+60>>2]=c;NDb(c)}qC(a,91780);ow(b);return}function qE(a){a=a|0;var b=0,c=0;f[a>>2]=91244;b=a+92|0;f[b>>2]=91612;c=f[a+56>>2]|0;if(c|0){f[a+60>>2]=c;NDb(c)}qC(a,91780);ow(b);NDb(a);return}function rE(a){a=a|0;return 241076}function sE(a){a=a|0;return 177450}function tE(a){a=a|0;f[a+60>>2]=f[a+56>>2];n[a+68>>2]=3402823466385288598117041.0e14;n[a+72>>2]=3402823466385288598117041.0e14;n[a+76>>2]=3402823466385288598117041.0e14;n[a+80>>2]=-3402823466385288598117041.0e14;n[a+84>>2]=-3402823466385288598117041.0e14;n[a+88>>2]=-3402823466385288598117041.0e14;return}function uE(a,b){a=a|0;b=b|0;CE(a,BE(b)|0);return}function vE(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0;i=u;u=u+128|0;e=i;SWa(e);g=a+56|0;h=a+60|0;c=f[h>>2]|0;if((f[g>>2]|0)!=(c|0)?(d=c+-128|0,(d|0)!=(e|0)):0){p[e>>3]=+p[d>>3];p[e+8>>3]=+p[c+-120>>3];p[e+16>>3]=+p[c+-112>>3];p[e+24>>3]=+p[c+-104>>3];p[e+32>>3]=+p[c+-96>>3];p[e+40>>3]=+p[c+-88>>3];p[e+48>>3]=+p[c+-80>>3];p[e+56>>3]=+p[c+-72>>3];p[e+64>>3]=+p[c+-64>>3];p[e+72>>3]=+p[c+-56>>3];p[e+80>>3]=+p[c+-48>>3];p[e+88>>3]=+p[c+-40>>3];p[e+96>>3]=+p[c+-32>>3];p[e+104>>3]=+p[c+-24>>3];p[e+112>>3]=+p[c+-16>>3];p[e+120>>3]=+p[c+-8>>3]}xk[f[(f[b>>2]|0)+288>>2]&255](b,e,a)|0;c=f[h>>2]|0;if((c|0)==(f[a+64>>2]|0))AE(g,e);else{p[c>>3]=+p[e>>3];p[c+8>>3]=+p[e+8>>3];p[c+16>>3]=+p[e+16>>3];p[c+24>>3]=+p[e+24>>3];p[c+32>>3]=+p[e+32>>3];p[c+40>>3]=+p[e+40>>3];p[c+48>>3]=+p[e+48>>3];p[c+56>>3]=+p[e+56>>3];p[c+64>>3]=+p[e+64>>3];p[c+72>>3]=+p[e+72>>3];p[c+80>>3]=+p[e+80>>3];p[c+88>>3]=+p[e+88>>3];p[c+96>>3]=+p[e+96>>3];p[c+104>>3]=+p[e+104>>3];p[c+112>>3]=+p[e+112>>3];p[c+120>>3]=+p[e+120>>3];f[h>>2]=c+128}switch(f[a+16>>2]|0){case 1:{Vk[f[(f[b>>2]|0)+216>>2]&1023](b,a);g=f[h>>2]|0;g=g+-128|0;f[h>>2]=g;u=i;return}case 0:{g=f[h>>2]|0;g=g+-128|0;f[h>>2]=g;u=i;return}default:{Vk[f[(f[b>>2]|0)+220>>2]&1023](b,a);g=f[h>>2]|0;g=g+-128|0;f[h>>2]=g;u=i;return}}}function wE(a){a=a|0;var b=0,c=0;a=a+(f[(f[a>>2]|0)+-16>>2]|0)|0;f[a>>2]=91244;b=a+92|0;f[b>>2]=91612;c=f[a+56>>2]|0;if(!c){qC(a,91780);ow(b);return}f[a+60>>2]=c;NDb(c);qC(a,91780);ow(b);return}function xE(a){a=a|0;var b=0,c=0;a=a+(f[(f[a>>2]|0)+-16>>2]|0)|0;f[a>>2]=91244;b=a+92|0;f[b>>2]=91612;c=f[a+56>>2]|0;if(c|0){f[a+60>>2]=c;NDb(c)}qC(a,91780);ow(b);NDb(a);return}function yE(a){a=a|0;return 241076}function zE(a){a=a|0;return 177450}function AE(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=a+4|0;d=f[l>>2]|0;m=f[a>>2]|0;h=d-m>>7;c=h+1|0;j=m;if(c>>>0>33554431)KEb(a);k=a+8|0;i=(f[k>>2]|0)-m|0;e=i>>6;e=i>>7>>>0<16777215?(e>>>0<c>>>0?c:e):33554431;do if(e)if(e>>>0>33554431){m=mb(8)|0;RDb(m,238482);f[m>>2]=144484;qb(m|0,84192,1464)}else{g=LDb(e<<7)|0;break}else g=0;while(0);c=g+(h<<7)|0;i=g+(e<<7)|0;p[c>>3]=+p[b>>3];p[g+(h<<7)+8>>3]=+p[b+8>>3];p[g+(h<<7)+16>>3]=+p[b+16>>3];p[g+(h<<7)+24>>3]=+p[b+24>>3];p[g+(h<<7)+32>>3]=+p[b+32>>3];p[g+(h<<7)+40>>3]=+p[b+40>>3];p[g+(h<<7)+48>>3]=+p[b+48>>3];p[g+(h<<7)+56>>3]=+p[b+56>>3];p[g+(h<<7)+64>>3]=+p[b+64>>3];p[g+(h<<7)+72>>3]=+p[b+72>>3];p[g+(h<<7)+80>>3]=+p[b+80>>3];p[g+(h<<7)+88>>3]=+p[b+88>>3];p[g+(h<<7)+96>>3]=+p[b+96>>3];p[g+(h<<7)+104>>3]=+p[b+104>>3];p[g+(h<<7)+112>>3]=+p[b+112>>3];p[g+(h<<7)+120>>3]=+p[b+120>>3];b=c+128|0;if((d|0)!=(j|0)){g=d+-128-m|0;e=c;do{h=e;e=e+-128|0;n=d;d=d+-128|0;p[e>>3]=+p[d>>3];p[h+-120>>3]=+p[n+-120>>3];p[h+-112>>3]=+p[n+-112>>3];p[h+-104>>3]=+p[n+-104>>3];p[h+-96>>3]=+p[n+-96>>3];p[h+-88>>3]=+p[n+-88>>3];p[h+-80>>3]=+p[n+-80>>3];p[h+-72>>3]=+p[n+-72>>3];p[h+-64>>3]=+p[n+-64>>3];p[h+-56>>3]=+p[n+-56>>3];p[h+-48>>3]=+p[n+-48>>3];p[h+-40>>3]=+p[n+-40>>3];p[h+-32>>3]=+p[n+-32>>3];p[h+-24>>3]=+p[n+-24>>3];p[h+-16>>3]=+p[n+-16>>3];p[h+-8>>3]=+p[n+-8>>3]}while((d|0)!=(j|0));c=c+(~(g>>>7)<<7)|0}f[a>>2]=c;f[l>>2]=b;f[k>>2]=i;if(!m)return;NDb(m);return}function BE(a){a=a|0;var c=0.0,d=0.0,e=0,g=0.0,h=0.0,i=0.0,j=0,k=0.0,l=0.0,m=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,v=0,w=0,x=0;x=u;u=u+32|0;j=x;v=a+68|0;if(b[v>>0]|0){w=a+152|0;u=x;return w|0}e=a+124|0;w=a+152|0;f[w>>2]=f[e>>2];f[w+4>>2]=f[e+4>>2];f[w+8>>2]=f[e+8>>2];f[w+12>>2]=f[e+12>>2];f[w+16>>2]=f[e+16>>2];f[w+20>>2]=f[e+20>>2];e=f[a+148>>2]|0;if(!e){Vk[f[(f[a>>2]|0)+228>>2]&1023](j,a);d=+n[j+12>>2];c=+n[j>>2];if((d>=c?(k=+n[j+16>>2],h=+n[j+4>>2],k>=h):0)?(p=+n[j+20>>2],m=+n[j+8>>2],p>=m):0){if(c<+n[w>>2])n[w>>2]=c;e=a+164|0;if(d>+n[e>>2])n[e>>2]=d;e=a+156|0;if(h<+n[e>>2])n[e>>2]=h;e=a+168|0;if(k>+n[e>>2])n[e>>2]=k;e=a+160|0;if(m<+n[e>>2])n[e>>2]=m;e=a+172|0;if(p>+n[e>>2])n[e>>2]=p}}else{Zk[f[(f[e>>2]|0)+164>>2]&511](j,e,a);d=+n[j+12>>2];c=+n[j>>2];if((d>=c?(i=+n[j+16>>2],g=+n[j+4>>2],i>=g):0)?(o=+n[j+20>>2],l=+n[j+8>>2],o>=l):0){if(c<+n[w>>2])n[w>>2]=c;e=a+164|0;if(d>+n[e>>2])n[e>>2]=d;e=a+156|0;if(g<+n[e>>2])n[e>>2]=g;e=a+168|0;if(i>+n[e>>2])n[e>>2]=i;e=a+160|0;if(l<+n[e>>2])n[e>>2]=l;e=a+172|0;if(o>+n[e>>2])n[e>>2]=o}}c=+n[a+164>>2];h=+n[w>>2];if((c>=h?(s=+n[a+168>>2],t=+n[a+156>>2],s>=t):0)?(q=+n[a+172>>2],r=+n[a+160>>2],q>=r):0){d=c-h;g=s-t;i=q-r;i=+K(+((d*d+g*g+i*i)*.25));g=(r+q)*.5;d=(t+s)*.5;c=(c+h)*.5}else{i=-1.0;g=0.0;d=0.0;c=0.0}n[a+52>>2]=c;n[a+56>>2]=d;n[a+60>>2]=g;n[a+64>>2]=i;b[v>>0]=1;u=x;return w|0}function CE(a,b){a=a|0;b=b|0;var c=0,d=0.0,e=0,g=0,h=0.0,i=0,j=0,k=0.0,l=0.0,m=0.0,o=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.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,M=0.0,N=0,O=0,P=0.0,Q=0,R=0.0;e=f[a+60>>2]|0;Q=b+12|0;d=+n[Q>>2];k=+n[b>>2];c=!(d>=k);if((f[a+56>>2]|0)==(e|0)){if(c)return;g=b+16|0;e=b+4|0;if(!(+n[g>>2]>=+n[e>>2]))return;j=b+20|0;i=b+8|0;if(!(+n[j>>2]>=+n[i>>2]))return;c=a+68|0;if(k<+n[c>>2]){n[c>>2]=k;d=+n[Q>>2]}c=a+80|0;if(d>+n[c>>2])n[c>>2]=d;d=+n[e>>2];c=a+72|0;if(d<+n[c>>2])n[c>>2]=d;d=+n[g>>2];c=a+84|0;if(d>+n[c>>2])n[c>>2]=d;d=+n[i>>2];c=a+76|0;if(d<+n[c>>2])n[c>>2]=d;d=+n[j>>2];c=a+88|0;if(!(d>+n[c>>2]))return;n[c>>2]=d;return}if(c)return;N=b+16|0;g=b+4|0;d=+n[g>>2];if(!(+n[N>>2]>=d))return;O=b+20|0;c=b+8|0;h=+n[c>>2];if(!(+n[O>>2]>=h))return;P=+p[e+-104>>3];u=k;M=+p[e+-72>>3];E=+p[e+-40>>3];q=h;w=+p[e+-8>>3];t=1.0/(w+(P*u+M*d+E*q));x=+p[e+-128>>3];y=+p[e+-96>>3];z=+p[e+-64>>3];A=+p[e+-32>>3];k=t*(A+(x*u+y*d+z*q));F=+p[e+-120>>3];G=+p[e+-88>>3];H=+p[e+-56>>3];B=+p[e+-24>>3];m=t*(B+(F*u+G*d+H*q));I=+p[e+-112>>3];J=+p[e+-80>>3];K=+p[e+-48>>3];C=+p[e+-16>>3];q=t*(C+(I*u+J*d+K*q));L=a+68|0;d=+n[L>>2];if(d>k){n[L>>2]=k;d=k}D=a+80|0;h=+n[D>>2];if(h<k){n[D>>2]=k;h=k}v=a+72|0;k=+n[v>>2];if(k>m){n[v>>2]=m;k=m}j=a+84|0;l=+n[j>>2];if(l<m){n[j>>2]=m;l=m}i=a+76|0;m=+n[i>>2];if(m>q){n[i>>2]=q;m=q}e=a+88|0;o=+n[e>>2];if(o<q){n[e>>2]=q;o=q}R=+n[Q>>2];t=+n[g>>2];u=+n[c>>2];s=1.0/(w+(P*R+M*t+E*u));q=(A+(x*R+y*t+z*u))*s;r=(B+(F*R+G*t+H*u))*s;s=(C+(I*R+J*t+K*u))*s;if(d>q){n[L>>2]=q;d=q}if(h<q){n[D>>2]=q;h=q}if(k>r){n[v>>2]=r;k=r}if(l<r){n[j>>2]=r;l=r}if(m>s){n[i>>2]=s;m=s}if(o<s){n[e>>2]=s;o=s}t=+n[b>>2];u=+n[N>>2];R=+n[c>>2];s=1.0/(w+(P*t+M*u+E*R));q=(A+(x*t+y*u+z*R))*s;r=(B+(F*t+G*u+H*R))*s;s=(C+(I*t+J*u+K*R))*s;if(d>q){n[L>>2]=q;d=q}if(h<q){n[D>>2]=q;h=q}if(k>r){n[v>>2]=r;k=r}if(l<r){n[j>>2]=r;l=r}if(m>s){n[i>>2]=s;m=s}if(o<s){n[e>>2]=s;o=s}t=+n[Q>>2];u=+n[N>>2];R=+n[c>>2];s=1.0/(w+(P*t+M*u+E*R));q=(A+(x*t+y*u+z*R))*s;r=(B+(F*t+G*u+H*R))*s;s=(C+(I*t+J*u+K*R))*s;if(d>q){n[L>>2]=q;d=q}if(h<q){n[D>>2]=q;h=q}if(k>r){n[v>>2]=r;k=r}if(l<r){n[j>>2]=r;l=r}if(m>s){n[i>>2]=s;m=s}if(o<s){n[e>>2]=s;o=s}t=+n[b>>2];u=+n[g>>2];R=+n[O>>2];s=1.0/(w+(P*t+M*u+E*R));q=(A+(x*t+y*u+z*R))*s;r=(B+(F*t+G*u+H*R))*s;s=(C+(I*t+J*u+K*R))*s;if(d>q){n[L>>2]=q;d=q}if(h<q){n[D>>2]=q;h=q}if(k>r){n[v>>2]=r;k=r}if(l<r){n[j>>2]=r;l=r}if(m>s){n[i>>2]=s;m=s}if(o<s){n[e>>2]=s;o=s}t=+n[Q>>2];u=+n[g>>2];R=+n[O>>2];s=1.0/(w+(P*t+M*u+E*R));q=(A+(x*t+y*u+z*R))*s;r=(B+(F*t+G*u+H*R))*s;s=(C+(I*t+J*u+K*R))*s;if(d>q){n[L>>2]=q;d=q}if(h<q){n[D>>2]=q;h=q}if(k>r){n[v>>2]=r;k=r}if(l<r){n[j>>2]=r;l=r}if(m>s){n[i>>2]=s;m=s}if(o<s){n[e>>2]=s;t=s}else t=o;s=+n[b>>2];u=+n[N>>2];R=+n[O>>2];o=1.0/(w+(P*s+M*u+E*R));q=(A+(x*s+y*u+z*R))*o;r=(B+(F*s+G*u+H*R))*o;o=(C+(I*s+J*u+K*R))*o;if(d>q){n[L>>2]=q;u=q}else u=d;if(h<q)n[D>>2]=q;else q=h;if(k>r){n[v>>2]=r;s=r}else s=k;if(l<r){n[j>>2]=r;l=r}if(m>o){n[i>>2]=o;m=o}if(t<o)n[e>>2]=o;else o=t;r=+n[Q>>2];t=+n[N>>2];R=+n[O>>2];d=1.0/(w+(P*r+M*t+E*R));k=(A+(x*r+y*t+z*R))*d;h=(B+(F*r+G*t+H*R))*d;d=(C+(I*r+J*t+K*R))*d;if(u>k)n[L>>2]=k;if(q<k)n[D>>2]=k;if(s>h)n[v>>2]=h;if(l<h)n[j>>2]=h;if(m>d)n[i>>2]=d;if(!(o<d))return;n[e>>2]=d;return}function DE(a,b){a=a|0;b=b|0;var c=0;c=f[a+28>>2]|0;if(c|0)Vk[f[f[c>>2]>>2]&1023](c,b);c=f[a+120>>2]|0;if(c|0)Vk[f[f[c>>2]>>2]&1023](c,b);c=f[a+212>>2]|0;if(!c)return;a=c+(f[(f[c>>2]|0)+-12>>2]|0)|0;Vk[f[f[a>>2]>>2]&1023](a,b);return}function EE(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;f[a>>2]=91800;g=a+200|0;h=a+204|0;if((f[h>>2]|0)!=(f[g>>2]|0)){b=0;do{c=mF(g,b)|0;c=f[c>>2]|0;if(c|0)jEa(c);b=b+1|0}while(b>>>0<(f[h>>2]|0)-(f[g>>2]|0)>>2>>>0)}b=a+216|0;c=f[b>>2]|0;if(c|0?(d=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,i=d+8|0,c=f[i>>2]|0,f[i>>2]=c-1,(c|0)==1):0)X4(d,1,1);f[b>>2]=0;b=a+212|0;c=f[b>>2]|0;if(c|0?(e=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,d=e+8|0,i=f[d>>2]|0,f[d>>2]=i-1,(i|0)==1):0)X4(e,1,1);f[b>>2]=0;d=f[g>>2]|0;if(d|0){b=f[h>>2]|0;if((b|0)==(d|0))b=d;else{do{b=b+-4|0;c=f[b>>2]|0;if(c|0?(e=c+8|0,i=f[e>>2]|0,f[e>>2]=i-1,(i|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(d|0));b=f[g>>2]|0}f[h>>2]=d;NDb(b)}b=f[a+188>>2]|0;if(b|0){f[a+192>>2]=b;NDb(b)}b=a+176|0;c=f[b>>2]|0;if(c|0?(h=c+8|0,i=f[h>>2]|0,f[h>>2]=i-1,(i|0)==1):0)X4(c,1,1);f[b>>2]=0;b=a+148|0;c=f[b>>2]|0;if(!c){f[b>>2]=0;aG(a);return}h=c+8|0;i=f[h>>2]|0;f[h>>2]=i-1;if((i|0)!=1){f[b>>2]=0;aG(a);return}X4(c,1,1);f[b>>2]=0;aG(a);return}function FE(a){a=a|0;EE(a);NDb(a);return}function GE(a){a=a|0;a=LDb(220)|0;qG(a);return a|0}function HE(a,b){a=a|0;b=b|0;var c=0;c=LDb(220)|0;_F(c,a,b);return c|0}function IE(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,59496,0)|0)!=0;return b|0}function JE(a){a=a|0;return 241076}function KE(a){a=a|0;return 177866}function LE(a){a=a|0;return a|0}function ME(a){a=a|0;return a|0}function NE(a){a=a|0;var b=0;b=a+24|0;if((f[b>>2]|0)!=2)return;if(((f[a+84>>2]|0)==0?(f[a+92>>2]|0)==0:0)?(f[a+100>>2]|0)==0:0)a=1;else a=0;f[b>>2]=a;return}function OE(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0;i=u;u=u+16|0;h=i;c=f[a+120>>2]|0;if(c|0)Vk[f[(f[c>>2]|0)+156>>2]&1023](c,b);c=f[a+212>>2]|0;if(c|0){g=c+(f[(f[c>>2]|0)+-12>>2]|0)|0;Vk[f[(f[g>>2]|0)+156>>2]&1023](g,b)}c=a+188|0;f[h>>2]=0;d=a+192|0;e=f[c>>2]|0;g=(f[d>>2]|0)-e>>2;if(g>>>0>=b>>>0){if(g>>>0>b>>>0)f[d>>2]=e+(b<<2)}else Cy(c,b-g|0,h);g=a+200|0;h=a+204|0;c=f[h>>2]|0;d=f[g>>2]|0;e=c-d>>2;if(e>>>0<b>>>0){ZF(g,b-e|0);u=i;return}if(e>>>0<=b>>>0){u=i;return}e=d+(b<<2)|0;if((e|0)!=(c|0))do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(a=d+8|0,b=f[a>>2]|0,f[a>>2]=b-1,(b|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(e|0));f[h>>2]=e;u=i;return}function PE(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;k=u;u=u+16|0;i=k;d=f[a+120>>2]|0;if(d|0)Vk[f[(f[d>>2]|0)+160>>2]&1023](d,c);d=f[a+212>>2]|0;if(d|0){j=d+(f[(f[d>>2]|0)+-12>>2]|0)|0;Vk[f[(f[j>>2]|0)+160>>2]&1023](j,c)}if(!c){Nk[f[(f[a>>2]|0)+240>>2]&2047](a);u=k;return}j=f[c+124>>2]|0;if(b[a+181>>0]|0){c=a+188|0;e=a+192|0;d=f[c>>2]|0;g=(f[e>>2]|0)-d>>2;if(g>>>0<=j>>>0){h=j+1|0;f[i>>2]=0;if(h>>>0<=g>>>0){if(h>>>0<g>>>0)f[e>>2]=d+(h<<2)}else{Cy(c,h-g|0,i);d=f[c>>2]|0}}d=d+(j<<2)|0;c=f[d>>2]|0;if(c|0){i=sk[f[(f[a>>2]|0)+244>>2]&2047](a)|0;QF(PF(Qy(j)|0)|0,c,i);f[d>>2]=0}}c=a+200|0;if(j>>>0>=(f[a+204>>2]|0)-(f[c>>2]|0)>>2>>>0){u=k;return}d=mF(c,j)|0;d=f[d>>2]|0;if(!d){u=k;return}ZDa(d);d=mF(c,j)|0;c=f[d>>2]|0;if(!c){u=k;return}f[d>>2]=0;j=c+8|0;a=f[j>>2]|0;f[j>>2]=a-1;if((a|0)!=1){u=k;return}X4(c,1,1);u=k;return}function QE(a){a=a|0;return 0}function RE(a){a=a|0;return 0}function SE(a){a=a|0;return 0}function TE(a){a=a|0;return 0}function UE(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0;j=u;u=u+16|0;c=j+8|0;i=j+4|0;d=j;if(!((f[a+116>>2]|f[b+24>>2])&f[b+20>>2])){u=j;return}f[i>>2]=a;e=b+16|0;g=b+28|0;h=a;do if((f[e>>2]|0)!=1){c=b+32|0;d=f[c>>2]|0;if((d|0)==(f[b+36>>2]|0)){OA(g,i);break}else{f[d>>2]=h;f[c>>2]=(f[c>>2]|0)+4;break}}else{f[d>>2]=f[g>>2];f[c>>2]=f[d>>2];PA(g,c,i)|0}while(0);Vk[f[(f[b>>2]|0)+100>>2]&1023](b,a);if((f[e>>2]|0)==1){a=f[b+28>>2]|0;e=a+4|0;c=b+32|0;d=(f[c>>2]|0)-e|0;if(d|0)hGb(a|0,e|0,d|0)|0;d=a+(d>>2<<2)|0}else{c=b+32|0;d=(f[c>>2]|0)+-4|0}f[c>>2]=d;u=j;return}function VE(a,b){a=a|0;b=b|0;return}function WE(a,b){a=a|0;b=b|0;b=BE(b)|0;n[a>>2]=0.0;n[a+4>>2]=0.0;n[a+8>>2]=0.0;n[a+12>>2]=-1.0;OF(a,b);return}function XE(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=u;u=u+64|0;d=c;f[d>>2]=92104;n[d+28>>2]=3402823466385288598117041.0e14;n[d+32>>2]=3402823466385288598117041.0e14;n[d+36>>2]=3402823466385288598117041.0e14;n[d+40>>2]=-3402823466385288598117041.0e14;n[d+44>>2]=-3402823466385288598117041.0e14;n[d+48>>2]=-3402823466385288598117041.0e14;e=d+4|0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;f[e+12>>2]=0;f[e+16>>2]=0;f[e+20>>2]=0;Vk[f[(f[b>>2]|0)+284>>2]&1023](b,d);b=d+28|0;f[a>>2]=f[b>>2];f[a+4>>2]=f[b+4>>2];f[a+8>>2]=f[b+8>>2];f[a+12>>2]=f[b+12>>2];f[a+16>>2]=f[b+16>>2];f[a+20>>2]=f[b+20>>2];u=c;return}function YE(a,b){a=a|0;b=b|0;var c=0;a=a+176|0;c=f[a>>2]|0;if((c|0)==(b|0))return;f[a>>2]=b;if(b|0){b=b+8|0;f[b>>2]=(f[b>>2]|0)+1}if(!c)return;a=c+8|0;b=f[a>>2]|0;f[a>>2]=b-1;if((b|0)!=1)return;X4(c,1,1);return}function ZE(a,c){a=a|0;c=c|0;var d=0,e=0;d=a+183|0;e=b[d>>0]|0;if((e&255|0)==(c&1|0))return;if(e<<24>>24)Nk[f[(f[a>>2]|0)+240>>2]&2047](a);b[d>>0]=c&1;return}function _E(a){a=a|0;var b=0,c=0,d=0;d=a+200|0;b=a+204|0;if((f[b>>2]|0)==(f[d>>2]|0))return;a=0;do{c=mF(d,a)|0;c=f[c>>2]|0;if(c|0)jEa(c);a=a+1|0}while(a>>>0<(f[b>>2]|0)-(f[d>>2]|0)>>2>>>0);return}function $E(a){a=a|0;return 0}function aF(a,b){a=a|0;b=b|0;return}function bF(a,c){a=a|0;c=c|0;var d=0,e=0,g=0;e=u;u=u+16|0;d=e;if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=3){d=LDb(108)|0;c=f[c>>2]|0;UDa(d,c);y8(d);u=e;return d|0}a=qub(Nv(Mv(4)|0,177500,95)|0,a)|0;Ktb(d,a+(f[(f[a>>2]|0)+-12>>2]|0)|0);g=Bvb(d,295164)|0;g=wk[f[(f[g>>2]|0)+28>>2]&1023](g,10)|0;Cvb(d);rub(a,g)|0;Rtb(a)|0;d=LDb(108)|0;c=f[c>>2]|0;UDa(d,c);y8(d);u=e;return d|0}function cF(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;d=a+212|0;e=f[d>>2]|0;if((e|0)!=(b|0)){f[d>>2]=b;if(b|0){d=b+(f[(f[b>>2]|0)+-12>>2]|0)+8|0;f[d>>2]=(f[d>>2]|0)+1}if(e|0?(c=e+(f[(f[e>>2]|0)+-12>>2]|0)|0,d=c+8|0,e=f[d>>2]|0,f[d>>2]=e-1,(e|0)==1):0)X4(c,1,1)}Nk[f[(f[a>>2]|0)+240>>2]&2047](a);return}function dF(a,b){a=a|0;b=b|0;return}function eF(a,b){a=a|0;b=b|0;return 0}function fF(a,b){a=a|0;b=b|0;return}function gF(a,b){a=a|0;b=b|0;return 0}function hF(a,b){a=a|0;b=b|0;return}function iF(a,b){a=a|0;b=b|0;return 0}function jF(a,b){a=a|0;b=b|0;return}function kF(a,b){a=a|0;b=b|0;return 0}function lF(a,b){a=a|0;b=b|0;return}function mF(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;l=u;u=u+16|0;j=l;k=a+4|0;c=f[k>>2]|0;g=f[a>>2]|0;e=c-g>>2;if(e>>>0>b>>>0){k=g;k=k+(b<<2)|0;u=l;return k|0}d=b+1|0;f[j>>2]=0;if(d>>>0<=e>>>0){if(d>>>0<e>>>0){e=g+(d<<2)|0;if((e|0)!=(c|0))do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(g=d+8|0,h=f[g>>2]|0,f[g>>2]=h-1,(h|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(e|0));f[k>>2]=e;h=12}}else{nF(a,d-e|0,j);h=12}if(((h|0)==12?(i=f[j>>2]|0,i|0):0)?(j=i+8|0,k=f[j>>2]|0,f[j>>2]=k-1,(k|0)==1):0)X4(i,1,1);k=f[a>>2]|0;k=k+(b<<2)|0;u=l;return k|0}function nF(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=a+8|0;g=f[m>>2]|0;n=a+4|0;d=f[n>>2]|0;if(g-d>>2>>>0>=b>>>0){do{e=f[c>>2]|0;f[d>>2]=e;if(e){d=e+8|0;f[d>>2]=(f[d>>2]|0)+1;d=f[n>>2]|0}d=d+4|0;f[n>>2]=d;b=b+-1|0}while((b|0)!=0);return}e=f[a>>2]|0;k=d-e>>2;d=k+b|0;if(d>>>0>1073741823)KEb(a);j=g-e|0;l=j>>1;d=j>>2>>>0<536870911?(l>>>0<d>>>0?d:l):1073741823;do if(d)if(d>>>0>1073741823){n=mb(8)|0;RDb(n,238482);f[n>>2]=144484;qb(n|0,84192,1464)}else{l=LDb(d<<2)|0;break}else l=0;while(0);j=l+(k<<2)|0;e=j;i=l+(d<<2)|0;d=e;h=j;while(1){g=f[c>>2]|0;f[h>>2]=g;if(!g)d=h;else{h=g+8|0;f[h>>2]=(f[h>>2]|0)+1}g=d+4|0;b=b+-1|0;if(!b)break;else{d=g;h=g}}c=g;d=f[a>>2]|0;b=d;g=f[n>>2]|0;if((g|0)==(d|0))g=b;else{h=k+-1-((g+-4-b|0)>>>2)|0;e=j;while(1){g=g+-4|0;b=f[g>>2]|0;f[e+-4>>2]=b;if(b|0){k=b+8|0;f[k>>2]=(f[k>>2]|0)+1}if((g|0)==(d|0))break;else e=e+-4|0}e=l+(h<<2)|0;g=f[a>>2]|0;d=f[n>>2]|0}f[a>>2]=e;f[n>>2]=c;f[m>>2]=i;b=g;if((d|0)!=(b|0))do{d=d+-4|0;e=f[d>>2]|0;if(e|0?(m=e+8|0,n=f[m>>2]|0,f[m>>2]=n-1,(n|0)==1):0)X4(e,1,1);f[d>>2]=0}while((d|0)!=(b|0));if(!g)return;NDb(g);return}function oF(a){a=a|0;return}function pF(a){a=a|0;NDb(a);return}function qF(a,b,c){a=a|0;b=b|0;c=c|0;f[a+4>>2]=c;return}function rF(a,b,c){a=a|0;b=b|0;c=c|0;f[a+8>>2]=c;return}function sF(a,b,c){a=a|0;b=b|0;c=c|0;f[a+12>>2]=c;return}function tF(a,b,c){a=a|0;b=b|0;c=c|0;f[a+16>>2]=c;return}function uF(a,b,c){a=a|0;b=b|0;c=c|0;f[a+20>>2]=c;return}function vF(a,b,c){a=a|0;b=b|0;c=c|0;f[a+24>>2]=c;return}function wF(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;b=f[a+8>>2]|0;if(b|0){e=b+((d+c|0)*12|0)|0;if((d|0)<=0)return;b=b+(c*12|0)|0;do{Vk[f[(f[a>>2]|0)+56>>2]&1023](a,b);b=b+12|0}while(b>>>0<e>>>0);return}b=f[a+4>>2]|0;if(b|0){e=b+(d+c<<3)|0;if((d|0)<=0)return;b=b+(c<<3)|0;do{Vk[f[(f[a>>2]|0)+52>>2]&1023](a,b);b=b+8|0}while(b>>>0<e>>>0);return}b=f[a+12>>2]|0;if(b|0){e=b+(d+c<<4)|0;if((d|0)<=0)return;b=b+(c<<4)|0;do{Vk[f[(f[a>>2]|0)+60>>2]&1023](a,b);b=b+16|0}while(b>>>0<e>>>0);return}b=f[a+16>>2]|0;if(b|0){e=b+(d+c<<4)|0;if((d|0)<=0)return;b=b+(c<<4)|0;do{Vk[f[(f[a>>2]|0)+64>>2]&1023](a,b);b=b+16|0}while(b>>>0<e>>>0);return}b=f[a+20>>2]|0;if(b|0){e=b+((d+c|0)*24|0)|0;if((d|0)<=0)return;b=b+(c*24|0)|0;do{Vk[f[(f[a>>2]|0)+68>>2]&1023](a,b);b=b+24|0}while(b>>>0<e>>>0);return}b=f[a+24>>2]|0;if(!b)return;e=b+(d+c<<5)|0;if((d|0)<=0)return;b=b+(c<<5)|0;do{Vk[f[(f[a>>2]|0)+72>>2]&1023](a,b);b=b+32|0}while(b>>>0<e>>>0);return}function xF(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;b=f[a+8>>2]|0;if(b|0){e=d+c|0;if((c|0)<=0)return;do{Vk[f[(f[a>>2]|0)+56>>2]&1023](a,b+((h[d>>0]|0)*12|0)|0);d=d+1|0}while((d|0)!=(e|0));return}b=f[a+4>>2]|0;if(b|0){e=d+c|0;if((c|0)<=0)return;do{Vk[f[(f[a>>2]|0)+52>>2]&1023](a,b+((h[d>>0]|0)<<3)|0);d=d+1|0}while((d|0)!=(e|0));return}b=f[a+12>>2]|0;if(b|0){e=d+c|0;if((c|0)<=0)return;do{Vk[f[(f[a>>2]|0)+60>>2]&1023](a,b+((h[d>>0]|0)<<4)|0);d=d+1|0}while((d|0)!=(e|0));return}b=f[a+16>>2]|0;if(b|0){e=d+c|0;if((c|0)<=0)return;do{Vk[f[(f[a>>2]|0)+64>>2]&1023](a,b+((h[d>>0]|0)<<4)|0);d=d+1|0}while((d|0)!=(e|0));return}b=f[a+20>>2]|0;if(b|0){e=d+c|0;if((c|0)<=0)return;do{Vk[f[(f[a>>2]|0)+68>>2]&1023](a,b+((h[d>>0]|0)*24|0)|0);d=d+1|0}while((d|0)!=(e|0));return}b=f[a+24>>2]|0;if(!b)return;e=d+c|0;if((c|0)<=0)return;do{Vk[f[(f[a>>2]|0)+72>>2]&1023](a,b+((h[d>>0]|0)<<5)|0);d=d+1|0}while((d|0)!=(e|0));return}function yF(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;b=f[a+8>>2]|0;if(b|0){e=d+(c<<1)|0;if((c|0)<=0)return;do{Vk[f[(f[a>>2]|0)+56>>2]&1023](a,b+((j[d>>1]|0)*12|0)|0);d=d+2|0}while(d>>>0<e>>>0);return}b=f[a+4>>2]|0;if(b|0){e=d+(c<<1)|0;if((c|0)<=0)return;do{Vk[f[(f[a>>2]|0)+52>>2]&1023](a,b+((j[d>>1]|0)<<3)|0);d=d+2|0}while(d>>>0<e>>>0);return}b=f[a+12>>2]|0;if(b|0){e=d+(c<<1)|0;if((c|0)<=0)return;do{Vk[f[(f[a>>2]|0)+60>>2]&1023](a,b+((j[d>>1]|0)<<4)|0);d=d+2|0}while(d>>>0<e>>>0);return}b=f[a+16>>2]|0;if(b|0){e=d+(c<<1)|0;if((c|0)<=0)return;do{Vk[f[(f[a>>2]|0)+64>>2]&1023](a,b+((j[d>>1]|0)<<4)|0);d=d+2|0}while(d>>>0<e>>>0);return}b=f[a+20>>2]|0;if(b|0){e=d+(c<<1)|0;if((c|0)<=0)return;do{Vk[f[(f[a>>2]|0)+68>>2]&1023](a,b+((j[d>>1]|0)*24|0)|0);d=d+2|0}while(d>>>0<e>>>0);return}b=f[a+24>>2]|0;if(!b)return;e=d+(c<<1)|0;if((c|0)<=0)return;do{Vk[f[(f[a>>2]|0)+72>>2]&1023](a,b+((j[d>>1]|0)<<5)|0);d=d+2|0}while(d>>>0<e>>>0);return}function zF(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;b=f[a+8>>2]|0;if(b|0){e=d+(c<<2)|0;if((c|0)<=0)return;do{Vk[f[(f[a>>2]|0)+56>>2]&1023](a,b+((f[d>>2]|0)*12|0)|0);d=d+4|0}while(d>>>0<e>>>0);return}b=f[a+4>>2]|0;if(b|0){e=d+(c<<2)|0;if((c|0)<=0)return;do{Vk[f[(f[a>>2]|0)+52>>2]&1023](a,b+(f[d>>2]<<3)|0);d=d+4|0}while(d>>>0<e>>>0);return}b=f[a+12>>2]|0;if(b|0){e=d+(c<<2)|0;if((c|0)<=0)return;do{Vk[f[(f[a>>2]|0)+60>>2]&1023](a,b+(f[d>>2]<<4)|0);d=d+4|0}while(d>>>0<e>>>0);return}b=f[a+16>>2]|0;if(b|0){e=d+(c<<2)|0;if((c|0)<=0)return;do{Vk[f[(f[a>>2]|0)+64>>2]&1023](a,b+(f[d>>2]<<4)|0);d=d+4|0}while(d>>>0<e>>>0);return}b=f[a+20>>2]|0;if(b|0){e=d+(c<<2)|0;if((c|0)<=0)return;do{Vk[f[(f[a>>2]|0)+68>>2]&1023](a,b+((f[d>>2]|0)*24|0)|0);d=d+4|0}while(d>>>0<e>>>0);return}b=f[a+24>>2]|0;if(!b)return;e=d+(c<<2)|0;if((c|0)<=0)return;do{Vk[f[(f[a>>2]|0)+72>>2]&1023](a,b+(f[d>>2]<<5)|0);d=d+4|0}while(d>>>0<e>>>0);return}function AF(a,b){a=a|0;b=b|0;return}function BF(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;c=+n[b>>2];d=+n[b+4>>2];b=a+28|0;if(c<+n[b>>2])n[b>>2]=c;b=a+40|0;if(c>+n[b>>2])n[b>>2]=c;b=a+32|0;if(d<+n[b>>2])n[b>>2]=d;b=a+44|0;if(d>+n[b>>2])n[b>>2]=d;b=a+36|0;if(+n[b>>2]>0.0)n[b>>2]=0.0;b=a+48|0;if(!(+n[b>>2]<0.0))return;n[b>>2]=0.0;return}function CF(a,b){a=a|0;b=b|0;var c=0,d=0.0,e=0;d=+n[b>>2];c=a+28|0;if(d<+n[c>>2]){n[c>>2]=d;d=+n[b>>2]}c=a+40|0;if(d>+n[c>>2])n[c>>2]=d;c=b+4|0;d=+n[c>>2];e=a+32|0;if(d<+n[e>>2]){n[e>>2]=d;d=+n[c>>2]}c=a+44|0;if(d>+n[c>>2])n[c>>2]=d;c=b+8|0;d=+n[c>>2];e=a+36|0;if(d<+n[e>>2]){n[e>>2]=d;d=+n[c>>2]}c=a+48|0;if(!(d>+n[c>>2]))return;n[c>>2]=d;return}function DF(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0;c=+n[b+12>>2];if(!(c!=0.0))return;d=+n[b>>2]/c;e=+n[b+4>>2]/c;c=+n[b+8>>2]/c;b=a+28|0;if(d<+n[b>>2])n[b>>2]=d;b=a+40|0;if(d>+n[b>>2])n[b>>2]=d;b=a+32|0;if(e<+n[b>>2])n[b>>2]=e;b=a+44|0;if(e>+n[b>>2])n[b>>2]=e;b=a+36|0;if(c<+n[b>>2])n[b>>2]=c;b=a+48|0;if(!(c>+n[b>>2]))return;n[b>>2]=c;return}function EF(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;c=+p[b>>3];d=+p[b+8>>3];b=a+28|0;if(+n[b>>2]>c)n[b>>2]=c;b=a+40|0;if(+n[b>>2]<c)n[b>>2]=c;b=a+32|0;if(+n[b>>2]>d)n[b>>2]=d;b=a+44|0;if(+n[b>>2]<d)n[b>>2]=d;b=a+36|0;if(+n[b>>2]>0.0)n[b>>2]=0.0;b=a+48|0;if(!(+n[b>>2]<0.0))return;n[b>>2]=0.0;return}function FF(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0;c=+p[b>>3];d=+p[b+8>>3];e=+p[b+16>>3];b=a+28|0;if(+n[b>>2]>c)n[b>>2]=c;b=a+40|0;if(+n[b>>2]<c)n[b>>2]=c;b=a+32|0;if(+n[b>>2]>d)n[b>>2]=d;b=a+44|0;if(+n[b>>2]<d)n[b>>2]=d;b=a+36|0;if(+n[b>>2]>e)n[b>>2]=e;b=a+48|0;if(!(+n[b>>2]<e))return;n[b>>2]=e;return}function GF(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0;c=+p[b+24>>3];if(!(c!=0.0))return;e=c;c=+p[b>>3]/e;d=+p[b+8>>3]/e;e=+p[b+16>>3]/e;b=a+28|0;if(c<+n[b>>2])n[b>>2]=c;b=a+40|0;if(c>+n[b>>2])n[b>>2]=c;b=a+32|0;if(d<+n[b>>2])n[b>>2]=d;b=a+44|0;if(d>+n[b>>2])n[b>>2]=d;b=a+36|0;if(e<+n[b>>2])n[b>>2]=e;b=a+48|0;if(!(e>+n[b>>2]))return;n[b>>2]=e;return}function HF(a,b,c){a=a|0;b=+b;c=+c;var d=0;d=a+28|0;if(+n[d>>2]>b)n[d>>2]=b;d=a+40|0;if(+n[d>>2]<b)n[d>>2]=b;d=a+32|0;if(+n[d>>2]>c)n[d>>2]=c;d=a+44|0;if(+n[d>>2]<c)n[d>>2]=c;d=a+36|0;if(+n[d>>2]>1.0)n[d>>2]=1.0;d=a+48|0;if(!(+n[d>>2]<1.0))return;n[d>>2]=1.0;return}function IF(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;var e=0;e=a+28|0;if(+n[e>>2]>b)n[e>>2]=b;e=a+40|0;if(+n[e>>2]<b)n[e>>2]=b;e=a+32|0;if(+n[e>>2]>c)n[e>>2]=c;e=a+44|0;if(+n[e>>2]<c)n[e>>2]=c;e=a+36|0;if(+n[e>>2]>d)n[e>>2]=d;e=a+48|0;if(!(+n[e>>2]<d))return;n[e>>2]=d;return}function JF(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;var f=0;if(!(e!=0.0))return;b=b/e;c=c/e;d=d/e;f=a+28|0;if(+n[f>>2]>b)n[f>>2]=b;f=a+40|0;if(+n[f>>2]<b)n[f>>2]=b;f=a+32|0;if(+n[f>>2]>c)n[f>>2]=c;f=a+44|0;if(+n[f>>2]<c)n[f>>2]=c;f=a+36|0;if(+n[f>>2]>d)n[f>>2]=d;f=a+48|0;if(!(+n[f>>2]<d))return;n[f>>2]=d;return}function KF(a,b,c){a=a|0;b=+b;c=+c;var d=0;d=a+28|0;if(+n[d>>2]>b)n[d>>2]=b;d=a+40|0;if(+n[d>>2]<b)n[d>>2]=b;d=a+32|0;if(+n[d>>2]>c)n[d>>2]=c;d=a+44|0;if(+n[d>>2]<c)n[d>>2]=c;d=a+36|0;if(+n[d>>2]>1.0)n[d>>2]=1.0;d=a+48|0;if(!(+n[d>>2]<1.0))return;n[d>>2]=1.0;return}function LF(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;var e=0;e=a+28|0;if(+n[e>>2]>b)n[e>>2]=b;e=a+40|0;if(+n[e>>2]<b)n[e>>2]=b;e=a+32|0;if(+n[e>>2]>c)n[e>>2]=c;e=a+44|0;if(+n[e>>2]<c)n[e>>2]=c;e=a+36|0;if(+n[e>>2]>d)n[e>>2]=d;e=a+48|0;if(!(+n[e>>2]<d))return;n[e>>2]=d;return}function MF(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;var f=0,g=0.0;if(!(e!=0.0))return;b=b/e;g=c/e;c=d/e;f=a+28|0;if(+n[f>>2]>b)n[f>>2]=b;f=a+40|0;if(+n[f>>2]<b)n[f>>2]=b;f=a+32|0;if(+n[f>>2]>g)n[f>>2]=g;f=a+44|0;if(+n[f>>2]<g)n[f>>2]=g;f=a+36|0;if(+n[f>>2]>c)n[f>>2]=c;f=a+48|0;if(!(+n[f>>2]<c))return;n[f>>2]=c;return}function NF(a){a=a|0;return}function OF(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=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;e=b+12|0;v=+n[e>>2];w=+n[b>>2];if(!(v>=w))return;f=b+16|0;x=+n[f>>2];g=b+4|0;y=+n[g>>2];if(!(x>=y))return;c=b+20|0;s=+n[c>>2];d=b+8|0;t=+n[d>>2];if(!(s>=t))return;u=a+12|0;h=+n[u>>2];if(!(h>=0.0)){n[a>>2]=(v+w)*.5;n[a+4>>2]=(y+x)*.5;n[a+8>>2]=(t+s)*.5;w=+n[e>>2]-+n[b>>2];x=+n[f>>2]-+n[g>>2];y=+n[c>>2]-+n[d>>2];y=+K(+((w*w+x*x+y*y)*.25));n[u>>2]=y;return}p=+n[a>>2];c=a+4|0;q=+n[c>>2];d=a+8|0;r=+n[d>>2];o=-h;b=0;h=w;i=t;j=v;k=x;l=s;m=y;do{B=((b&1|0)==0?w:v)-p;A=((b&2|0)==0?y:x)-q;z=((b&4|0)==0?t:s)-r;C=+K(+(B*B+A*A+z*z));g=C>0.0;C=1.0/C;B=p+(g?B*C:B)*o;A=q+(g?A*C:A)*o;z=r+(g?z*C:z)*o;h=B<h?B:h;j=B>j?B:j;m=A<m?A:m;k=A>k?A:k;i=z<i?z:i;l=z>l?z:l;b=b+1|0}while((b|0)!=8);n[a>>2]=(h+j)*.5;n[c>>2]=(m+k)*.5;n[d>>2]=(i+l)*.5;A=j-h;B=k-m;C=l-i;C=+K(+((A*A+B*B+C*C)*.25));n[u>>2]=C;return}function PF(a){a=a|0;var b=0,c=0,d=0,e=0,g=0;g=a+36|0;c=a+40|0;b=f[c>>2]|0;do if(b){d=a+40|0;while(1){c=f[b+16>>2]|0;if(c>>>0>60160>>>0){c=f[b>>2]|0;if(!c){c=5;break}else{d=b;b=c}}else{if(c>>>0>=60160>>>0){c=9;break}d=b+4|0;c=f[d>>2]|0;if(!c){c=8;break}else b=c}}if((c|0)==5){e=b;d=b;break}else if((c|0)==8){e=b;break}else if((c|0)==9){e=b;break}}else{e=c;d=c}while(0);b=f[d>>2]|0;if(!b){b=LDb(24)|0;f[b+16>>2]=60160;f[b+20>>2]=0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=e;f[d>>2]=b;c=f[f[g>>2]>>2]|0;if(!c)c=b;else{f[g>>2]=c;c=f[d>>2]|0}Aq(f[a+40>>2]|0,c);g=a+44|0;f[g>>2]=(f[g>>2]|0)+1}c=b+20|0;if(f[c>>2]|0){a=f[c>>2]|0;return a|0}d=LDb(64)|0;RF(d,f[a+24>>2]|0);b=f[c>>2]|0;if((b|0)==(d|0)){a=f[c>>2]|0;return a|0}f[c>>2]=d;a=d+8|0;f[a>>2]=(f[a>>2]|0)+1;if(!b){a=f[c>>2]|0;return a|0}g=b+8|0;a=f[g>>2]|0;f[g>>2]=a-1;if((a|0)!=1){a=f[c>>2]|0;return a|0}X4(b,1,1);a=f[c>>2]|0;return a|0}function QF(a,c,d){a=a|0;c=c|0;d=d|0;var e=0;c=u;u=u+16|0;a=c;if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=3){u=c;return}d=Nv(Mv(4)|0,177636,57)|0;Ktb(a,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);e=Bvb(a,295164)|0;e=wk[f[(f[e>>2]|0)+28>>2]&1023](e,10)|0;Cvb(a);rub(d,e)|0;Rtb(d)|0;u=c;return}function RF(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;h=u;u=u+16|0;d=h;e=LDb(32)|0;f[d>>2]=e;f[d+8>>2]=-2147483616;f[d+4>>2]=18;g=e;i=177694;j=g+18|0;do{b[g>>0]=b[i>>0]|0;g=g+1|0;i=i+1|0}while((g|0)<(j|0));b[e+18>>0]=0;az(a,d,c);if((b[d+11>>0]|0)<0)NDb(f[d>>2]|0);f[a>>2]=92216;f[a+28>>2]=0;f[a+32>>2]=0;f[a+36>>2]=0;yGa(a+40|0,0);f[a+56>>2]=0;f[a+60>>2]=0;f[a+52>>2]=a+56;u=h;return}function SF(a){a=a|0;f[a>>2]=92216;YF(a+52|0,f[a+56>>2]|0);d8(a+40|0);hx(a);return}function TF(a){a=a|0;f[a>>2]=92216;YF(a+52|0,f[a+56>>2]|0);d8(a+40|0);hx(a);NDb(a);return}function UF(a,c,d){a=a|0;c=+c;d=d|0;var e=0,g=0;d=u;u=u+16|0;a=d;if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=3){u=d;return}e=Nv(Mv(4)|0,177780,64)|0;Ktb(a,e+(f[(f[e>>2]|0)+-12>>2]|0)|0);g=Bvb(a,295164)|0;g=wk[f[(f[g>>2]|0)+28>>2]&1023](g,10)|0;Cvb(a);rub(e,g)|0;Rtb(e)|0;u=d;return}function VF(a){a=a|0;var c=0,d=0,e=0;c=u;u=u+16|0;a=c;if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=3){u=c;return}d=Nv(Mv(4)|0,177636,57)|0;Ktb(a,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);e=Bvb(a,295164)|0;e=wk[f[(f[e>>2]|0)+28>>2]&1023](e,10)|0;Cvb(a);rub(d,e)|0;Rtb(d)|0;u=c;return}function WF(a){a=a|0;var c=0,d=0,e=0;c=u;u=u+16|0;a=c;if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=3){u=c;return}d=Nv(Mv(4)|0,177713,66)|0;Ktb(a,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);e=Bvb(a,295164)|0;e=wk[f[(f[e>>2]|0)+28>>2]&1023](e,10)|0;Cvb(a);rub(d,e)|0;Rtb(d)|0;u=c;return}function XF(a){a=a|0;var b=0,c=0,d=0;b=a+40|0;sk[f[(f[b>>2]|0)+8>>2]&2047](b)|0;d=a+52|0;c=a+56|0;YF(d,f[c>>2]|0);f[a+60>>2]=0;f[d>>2]=c;f[c>>2]=0;sk[f[(f[b>>2]|0)+12>>2]&2047](b)|0;return}function YF(a,b){a=a|0;b=b|0;if(!b)return;else{YF(a,f[b>>2]|0);YF(a,f[b+4>>2]|0);NDb(b);return}}function ZF(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=a+8|0;e=f[m>>2]|0;n=a+4|0;d=f[n>>2]|0;c=d;if(e-d>>2>>>0>=b>>>0){iGb(d|0,0,b<<2|0)|0;f[n>>2]=c+(b<<2);return}j=f[a>>2]|0;h=d-j>>2;d=h+b|0;g=j;if(d>>>0>1073741823)KEb(a);l=e-j|0;e=l>>1;e=l>>2>>>0<536870911?(e>>>0<d>>>0?d:e):1073741823;do if(e)if(e>>>0>1073741823){n=mb(8)|0;RDb(n,238482);f[n>>2]=144484;qb(n|0,84192,1464)}else{i=LDb(e<<2)|0;break}else i=0;while(0);d=i+(h<<2)|0;l=i+(e<<2)|0;iGb(d|0,0,b<<2|0)|0;k=d+(b<<2)|0;if((c|0)==(g|0))e=j;else{b=h+-1-((c+-4+(0-j)|0)>>>2)|0;while(1){c=c+-4|0;e=f[c>>2]|0;f[d+-4>>2]=e;if(e|0){j=e+8|0;f[j>>2]=(f[j>>2]|0)+1}if((c|0)==(g|0))break;else d=d+-4|0}e=f[a>>2]|0;d=i+(b<<2)|0;g=e;c=f[n>>2]|0}f[a>>2]=d;f[n>>2]=k;f[m>>2]=l;if((c|0)!=(g|0))do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(m=d+8|0,n=f[m>>2]|0,f[m>>2]=n-1,(n|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(g|0));if(!e)return;NDb(e);return}function _F(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0;$F(a,c,d);f[a>>2]=91800;e=a+124|0;h=c+124|0;f[e>>2]=f[h>>2];f[e+4>>2]=f[h+4>>2];f[e+8>>2]=f[h+8>>2];f[e+12>>2]=f[h+12>>2];f[e+16>>2]=f[h+16>>2];f[e+20>>2]=f[h+20>>2];e=f[c+148>>2]|0;f[a+148>>2]=e;if(e|0){h=e+8|0;f[h>>2]=(f[h>>2]|0)+1}h=a+152|0;g=c+152|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];f[h+16>>2]=f[g+16>>2];f[h+20>>2]=f[g+20>>2];d=wk[f[(f[d>>2]|0)+48>>2]&1023](d,f[c+176>>2]|0)|0;f[a+176>>2]=d;if(d|0){h=d+8|0;f[h>>2]=(f[h>>2]|0)+1}b[a+180>>0]=b[c+180>>0]|0;b[a+181>>0]=b[c+181>>0]|0;b[a+182>>0]=b[c+182>>0]|0;b[a+183>>0]=b[c+183>>0]|0;b[a+184>>0]=b[c+184>>0]|0;d=a+188|0;Wx()|0;e=f[(f[72465]|0)+84>>2]|0;f[d>>2]=0;g=a+192|0;f[g>>2]=0;h=a+196|0;f[h>>2]=0;do if(e|0)if(e>>>0>1073741823)KEb(d);else{i=e<<2;j=LDb(i)|0;f[d>>2]=j;e=j+(e<<2)|0;f[h>>2]=e;iGb(j|0,0,i|0)|0;f[g>>2]=e;break}while(0);kEa(a+200|0);d=f[c+212>>2]|0;f[a+212>>2]=d;if(d|0){j=d+(f[(f[d>>2]|0)+-12>>2]|0)+8|0;f[j>>2]=(f[j>>2]|0)+1}d=f[c+216>>2]|0;f[a+216>>2]=d;if(!d)return;j=d+(f[(f[d>>2]|0)+-12>>2]|0)+8|0;f[j>>2]=(f[j>>2]|0)+1;return}function $F(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0;nw(a,c,d);f[a>>2]=92268;e=a+32|0;g=c+32|0;f[e>>2]=f[g>>2];f[e+4>>2]=f[g+4>>2];f[e+8>>2]=f[g+8>>2];f[a+44>>2]=f[c+44>>2];f[a+48>>2]=0;e=a+52|0;g=c+52|0;f[e>>2]=f[g>>2];f[e+4>>2]=f[g+4>>2];f[e+8>>2]=f[g+8>>2];f[a+64>>2]=f[c+64>>2];b[a+68>>0]=b[c+68>>0]|0;f[a+72>>2]=0;f[a+76>>2]=0;f[a+80>>2]=0;e=wk[f[(f[d>>2]|0)+60>>2]&1023](d,f[c+84>>2]|0)|0;f[a+84>>2]=e;if(e|0){g=e+(f[(f[e>>2]|0)+-12>>2]|0)+8|0;f[g>>2]=(f[g>>2]|0)+1}f[a+88>>2]=0;f[a+92>>2]=0;f[a+96>>2]=0;e=wk[f[(f[d>>2]|0)+60>>2]&1023](d,f[c+100>>2]|0)|0;f[a+100>>2]=e;if(e|0){g=e+(f[(f[e>>2]|0)+-12>>2]|0)+8|0;f[g>>2]=(f[g>>2]|0)+1}b[a+104>>0]=b[c+104>>0]|0;f[a+108>>2]=0;f[a+112>>2]=0;f[a+116>>2]=f[c+116>>2];f[a+120>>2]=0;$A(a,wk[f[(f[d>>2]|0)+24>>2]&1023](d,f[c+120>>2]|0)|0);return}function aG(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;f[a>>2]=92268;$A(a,0);b=a+120|0;c=f[b>>2]|0;if(c|0?(i=c+8|0,h=f[i>>2]|0,f[i>>2]=h-1,(h|0)==1):0)X4(c,1,1);f[b>>2]=0;b=a+100|0;c=f[b>>2]|0;if(c|0?(d=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,h=d+8|0,i=f[h>>2]|0,f[h>>2]=i-1,(i|0)==1):0)X4(d,1,1);f[b>>2]=0;b=a+92|0;c=f[b>>2]|0;if(c|0?(e=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,h=e+8|0,i=f[h>>2]|0,f[h>>2]=i-1,(i|0)==1):0)X4(e,1,1);f[b>>2]=0;b=a+84|0;c=f[b>>2]|0;if(c|0?(g=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,h=g+8|0,i=f[h>>2]|0,f[h>>2]=i-1,(i|0)==1):0)X4(g,1,1);f[b>>2]=0;b=f[a+72>>2]|0;if(b|0){f[a+76>>2]=b;NDb(b)}b=a+48|0;c=f[b>>2]|0;if(!c){f[b>>2]=0;ow(a);return}h=c+8|0;i=f[h>>2]|0;f[h>>2]=i-1;if((i|0)!=1){f[b>>2]=0;ow(a);return}X4(c,1,1);f[b>>2]=0;ow(a);return}function bG(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(b|0?(d=b+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(b,1,1);f[a>>2]=0;return}function cG(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(!b){f[a>>2]=0;return}b=b+(f[(f[b>>2]|0)+-12>>2]|0)|0;d=b+8|0;c=f[d>>2]|0;f[d>>2]=c-1;if((c|0)!=1){f[a>>2]=0;return}X4(b,1,1);f[a>>2]=0;return}function dG(a){a=a|0;var b=0;b=f[a>>2]|0;if(!b)return;f[a+4>>2]=b;NDb(b);return}function eG(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(b|0?(d=b+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(b,1,1);f[a>>2]=0;return}function fG(a,b){a=a|0;b=b|0;var c=0;c=f[a+28>>2]|0;if(c|0)Vk[f[f[c>>2]>>2]&1023](c,b);c=f[a+120>>2]|0;if(c|0)Vk[f[f[c>>2]>>2]&1023](c,b);c=f[a+84>>2]|0;if(c|0){c=c+(f[(f[c>>2]|0)+-12>>2]|0)|0;Vk[f[f[c>>2]>>2]&1023](c,b)}c=f[a+92>>2]|0;if(c|0){c=c+(f[(f[c>>2]|0)+-12>>2]|0)|0;Vk[f[f[c>>2]>>2]&1023](c,b)}c=f[a+100>>2]|0;if(!c)return;a=c+(f[(f[c>>2]|0)+-12>>2]|0)|0;Vk[f[f[a>>2]>>2]&1023](a,b);return}function gG(a){a=a|0;aG(a);NDb(a);return}function hG(a){a=a|0;var c=0;a=LDb(124)|0;CCa(a,1);c=a+12|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[a+24>>2]=2;f[a+28>>2]=0;f[a>>2]=92268;n[a+32>>2]=0.0;n[a+36>>2]=0.0;n[a+40>>2]=0.0;n[a+44>>2]=-1.0;c=a+48|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;n[a+64>>2]=-1.0;c=a+72|0;f[a+92>>2]=0;f[a+100>>2]=0;f[a+120>>2]=0;b[a+68>>0]=0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;f[a+116>>2]=-1;f[a+88>>2]=0;f[a+96>>2]=0;b[a+104>>0]=1;f[a+108>>2]=0;f[a+112>>2]=0;return a|0}function iG(a,b){a=a|0;b=b|0;var c=0;c=LDb(124)|0;$F(c,a,b);return c|0}function jG(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,58720,0)|0)!=0;return b|0}function kG(a){a=a|0;return 241076}function lG(a){a=a|0;return 177875}function mG(a,b){a=a|0;b=b|0;var c=0;c=f[a+120>>2]|0;if(c|0)Vk[f[(f[c>>2]|0)+156>>2]&1023](c,b);c=f[a+84>>2]|0;if(c|0){c=c+(f[(f[c>>2]|0)+-12>>2]|0)|0;Vk[f[(f[c>>2]|0)+156>>2]&1023](c,b)}c=f[a+92>>2]|0;if(c|0){c=c+(f[(f[c>>2]|0)+-12>>2]|0)|0;Vk[f[(f[c>>2]|0)+156>>2]&1023](c,b)}c=f[a+100>>2]|0;if(!c)return;a=c+(f[(f[c>>2]|0)+-12>>2]|0)|0;Vk[f[(f[a>>2]|0)+156>>2]&1023](a,b);return}function nG(a,b){a=a|0;b=b|0;var c=0;c=f[a+120>>2]|0;if(c|0)Vk[f[(f[c>>2]|0)+160>>2]&1023](c,b);c=f[a+84>>2]|0;if(c|0){c=c+(f[(f[c>>2]|0)+-12>>2]|0)|0;Vk[f[(f[c>>2]|0)+160>>2]&1023](c,b)}c=f[a+92>>2]|0;if(c|0){c=c+(f[(f[c>>2]|0)+-12>>2]|0)|0;Vk[f[(f[c>>2]|0)+160>>2]&1023](c,b)}c=f[a+100>>2]|0;if(!c)return;a=c+(f[(f[c>>2]|0)+-12>>2]|0)|0;Vk[f[(f[a>>2]|0)+160>>2]&1023](a,b);return}function oG(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0;j=u;u=u+16|0;c=j+8|0;i=j+4|0;d=j;if(!((f[a+116>>2]|f[b+24>>2])&f[b+20>>2])){u=j;return}f[i>>2]=a;e=b+16|0;g=b+28|0;h=a;do if((f[e>>2]|0)!=1){c=b+32|0;d=f[c>>2]|0;if((d|0)==(f[b+36>>2]|0)){OA(g,i);break}else{f[d>>2]=h;f[c>>2]=(f[c>>2]|0)+4;break}}else{f[d>>2]=f[g>>2];f[c>>2]=f[d>>2];PA(g,c,i)|0}while(0);Vk[f[(f[b>>2]|0)+108>>2]&1023](b,a);if((f[e>>2]|0)==1){a=f[b+28>>2]|0;e=a+4|0;c=b+32|0;d=(f[c>>2]|0)-e|0;if(d|0)hGb(a|0,e|0,d|0)|0;d=a+(d>>2<<2)|0}else{c=b+32|0;d=(f[c>>2]|0)+-4|0}f[c>>2]=d;u=j;return}function pG(a,b){a=a|0;b=b|0;n[a>>2]=0.0;n[a+4>>2]=0.0;n[a+8>>2]=0.0;n[a+12>>2]=-1.0;return}function qG(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0;CCa(a,1);c=a+12|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[a+24>>2]=2;f[a+28>>2]=0;n[a+32>>2]=0.0;n[a+36>>2]=0.0;n[a+40>>2]=0.0;n[a+44>>2]=-1.0;c=a+48|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;n[a+64>>2]=-1.0;c=a+72|0;f[a+92>>2]=0;f[a+100>>2]=0;f[a+120>>2]=0;b[a+68>>0]=0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;f[a+116>>2]=-1;f[a+88>>2]=0;f[a+96>>2]=0;b[a+104>>0]=1;f[a+108>>2]=0;f[a+112>>2]=0;f[a>>2]=91800;n[a+124>>2]=3402823466385288598117041.0e14;n[a+128>>2]=3402823466385288598117041.0e14;n[a+132>>2]=3402823466385288598117041.0e14;n[a+136>>2]=-3402823466385288598117041.0e14;n[a+140>>2]=-3402823466385288598117041.0e14;n[a+144>>2]=-3402823466385288598117041.0e14;f[a+148>>2]=0;n[a+152>>2]=3402823466385288598117041.0e14;n[a+156>>2]=3402823466385288598117041.0e14;n[a+160>>2]=3402823466385288598117041.0e14;n[a+164>>2]=-3402823466385288598117041.0e14;n[a+168>>2]=-3402823466385288598117041.0e14;n[a+172>>2]=-3402823466385288598117041.0e14;f[a+176>>2]=0;c=a+188|0;Wx()|0;d=f[(f[72465]|0)+84>>2]|0;f[c>>2]=0;e=a+192|0;f[e>>2]=0;g=a+196|0;f[g>>2]=0;if(!d){g=a+200|0;kEa(g);g=a+212|0;f[g>>2]=0;g=a+216|0;f[g>>2]=0;g=a+180|0;b[g>>0]=0;g=a+181|0;b[g>>0]=0;g=a+182|0;b[g>>0]=1;g=a+183|0;b[g>>0]=1;g=a+184|0;b[g>>0]=0;return}if(d>>>0>1073741823)KEb(c);h=d<<2;i=LDb(h)|0;f[c>>2]=i;d=i+(d<<2)|0;f[g>>2]=d;iGb(i|0,0,h|0)|0;f[e>>2]=d;g=a+200|0;kEa(g);g=a+212|0;f[g>>2]=0;g=a+216|0;f[g>>2]=0;g=a+180|0;b[g>>0]=0;g=a+181|0;b[g>>0]=0;g=a+182|0;b[g>>0]=1;g=a+183|0;b[g>>0]=1;g=a+184|0;b[g>>0]=0;return}function rG(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(!b){f[a>>2]=0;return}b=b+(f[(f[b>>2]|0)+-12>>2]|0)|0;d=b+8|0;c=f[d>>2]|0;f[d>>2]=c-1;if((c|0)!=1){f[a>>2]=0;return}X4(b,1,1);f[a>>2]=0;return}function sG(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(!b){f[a>>2]=0;return}b=b+(f[(f[b>>2]|0)+-12>>2]|0)|0;d=b+8|0;c=f[d>>2]|0;f[d>>2]=c-1;if((c|0)!=1){f[a>>2]=0;return}X4(b,1,1);f[a>>2]=0;return}function tG(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;d=f[a>>2]|0;if(!d)return;e=a+4|0;b=f[e>>2]|0;if((b|0)==(d|0))b=d;else{do{b=b+-4|0;c=f[b>>2]|0;if(c|0?(h=c+8|0,g=f[h>>2]|0,f[h>>2]=g-1,(g|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(d|0));b=f[a>>2]|0}f[e>>2]=d;NDb(b);return}function uG(a){a=a|0;var b=0;b=f[a>>2]|0;if(!b)return;f[a+4>>2]=b;NDb(b);return}function vG(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(b|0?(d=b+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(b,1,1);f[a>>2]=0;return}function wG(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(b|0?(d=b+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(b,1,1);f[a>>2]=0;return}function xG(a){a=a|0;var b=0,c=0,d=0,e=0,g=0;f[a>>2]=92568;d=a+40|0;c=a+48|0;if(f[c>>2]|0?(b=f[a+44>>2]|0,e=(f[d>>2]|0)+4|0,g=f[b>>2]|0,f[g+4>>2]=f[e>>2],f[f[e>>2]>>2]=g,f[c>>2]=0,(b|0)!=(d|0)):0)do{g=b;b=f[b+4>>2]|0;NDb(g)}while((b|0)!=(d|0));d8(a+28|0);hx(a);return}function yG(a){a=a|0;var b=0,c=0,d=0,e=0,g=0;f[a>>2]=92568;d=a+40|0;c=a+48|0;if(f[c>>2]|0?(b=f[a+44>>2]|0,e=(f[d>>2]|0)+4|0,g=f[b>>2]|0,f[g+4>>2]=f[e>>2],f[f[e>>2]>>2]=g,f[c>>2]=0,(b|0)!=(d|0)):0)do{g=b;b=f[b+4>>2]|0;NDb(g)}while((b|0)!=(d|0));d8(a+28|0);hx(a);NDb(a);return}function zG(a,b,c){a=a|0;b=+b;c=c|0;var d=0.0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0;if(+p[c>>3]<=0.0)return;l=eDa()|0;m=fDa(l)|0;n=H;o=a+28|0;sk[f[(f[o>>2]|0)+8>>2]&2047](o)|0;e=f[a+44>>2]|0;k=a+40|0;g=e;b=+p[c>>3];if((k|0)!=(g|0)&b>0.0){i=a+48|0;j=l+8|0;do{Vk[f[(f[a>>2]|0)+52>>2]&1023](a,f[e+8>>2]|0);q=g+4|0;h=e;e=f[q>>2]|0;g=f[g>>2]|0;f[g+4>>2]=e;f[f[q>>2]>>2]=g;f[i>>2]=(f[i>>2]|0)+-1;NDb(h);g=fDa(l)|0;h=H;if(h>>>0>n>>>0|(h|0)==(n|0)&g>>>0>m>>>0){q=ZFb(g|0,h|0,m|0,n|0)|0;d=+p[j>>3]*(+(q>>>0)+4294967296.0*+(H>>>0))}else{q=ZFb(m|0,n|0,g|0,h|0)|0;d=-(+p[j>>3]*(+(q>>>0)+4294967296.0*+(H>>>0)))}g=e;b=+p[c>>3]}while((k|0)!=(g|0)&d<b)}else d=0.0;p[c>>3]=b-d;sk[f[(f[o>>2]|0)+12>>2]&2047](o)|0;return}function AG(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;g=a+28|0;sk[f[(f[g>>2]|0)+8>>2]&2047](g)|0;h=a+40|0;e=a+44|0;c=f[e>>2]|0;d=c;if((h|0)!=(d|0))do{Vk[f[(f[a>>2]|0)+52>>2]&1023](a,f[c+8>>2]|0);c=f[d+4>>2]|0;d=c}while((h|0)!=(d|0));c=a+48|0;if(f[c>>2]|0?(b=f[e>>2]|0,e=(f[h>>2]|0)+4|0,a=f[b>>2]|0,f[a+4>>2]=f[e>>2],f[f[e>>2]>>2]=a,f[c>>2]=0,(b|0)!=(h|0)):0)do{e=b;b=f[b+4>>2]|0;NDb(e)}while((b|0)!=(h|0));sk[f[(f[g>>2]|0)+12>>2]&2047](g)|0;return}function BG(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0;d=u;u=u+16|0;c=d;if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=3){u=d;return}i=Nv(Mv(4)|0,177880,5)|0;h=a+12|0;e=b[h+11>>0]|0;g=e<<24>>24<0;a=Nv(Nv(i,g?f[h>>2]|0:h,g?f[a+16>>2]|0:e&255)|0,177923,40)|0;Ktb(c,a+(f[(f[a>>2]|0)+-12>>2]|0)|0);e=Bvb(c,295164)|0;e=wk[f[(f[e>>2]|0)+28>>2]&1023](e,10)|0;Cvb(c);rub(a,e)|0;Rtb(a)|0;u=d;return}function CG(a){a=a|0;var b=0,c=0,d=0,e=0,g=0;d=a+28|0;sk[f[(f[d>>2]|0)+8>>2]&2047](d)|0;e=a+40|0;c=a+48|0;if(f[c>>2]|0?(b=f[a+44>>2]|0,a=(f[e>>2]|0)+4|0,g=f[b>>2]|0,f[g+4>>2]=f[a>>2],f[f[a>>2]>>2]=g,f[c>>2]=0,(b|0)!=(e|0)):0)do{g=b;b=f[b+4>>2]|0;NDb(g)}while((b|0)!=(e|0));sk[f[(f[d>>2]|0)+12>>2]&2047](d)|0;return}function DG(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=a+28|0;sk[f[(f[c>>2]|0)+8>>2]&2047](c)|0;d=a+40|0;e=LDb(12)|0;f[e+8>>2]=b;f[e+4>>2]=d;b=f[d>>2]|0;f[e>>2]=b;f[b+4>>2]=e;f[d>>2]=e;b=a+48|0;f[b>>2]=(f[b>>2]|0)+1;sk[f[(f[c>>2]|0)+12>>2]&2047](c)|0;return}function EG(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0;d=u;u=u+16|0;c=d;if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=3){u=d;return 0}i=Nv(Mv(4)|0,177880,5)|0;h=a+12|0;e=b[h+11>>0]|0;g=e<<24>>24<0;a=Nv(Nv(i,g?f[h>>2]|0:h,g?f[a+16>>2]|0:e&255)|0,177886,36)|0;Ktb(c,a+(f[(f[a>>2]|0)+-12>>2]|0)|0);e=Bvb(c,295164)|0;e=wk[f[(f[e>>2]|0)+28>>2]&1023](e,10)|0;Cvb(c);rub(a,e)|0;Rtb(a)|0;u=d;return 0}function FG(a,c){a=a|0;c=c|0;var d=0,e=0;e=u;u=u+16|0;d=e;f[d>>2]=c;a=By(f[a+24>>2]|0,1)|0;if(!(b[a+24>>0]|0)){u=e;return}Vk[f[a+1300>>2]&1023](1,d);u=e;return}function GG(a){a=a|0;Ni()}function HG(a){a=a|0;var b=0,c=0,d=0,e=0,g=0;f[a>>2]=92568;d=a+40|0;c=a+48|0;if(f[c>>2]|0?(b=f[a+44>>2]|0,e=(f[d>>2]|0)+4|0,g=f[b>>2]|0,f[g+4>>2]=f[e>>2],f[f[e>>2]>>2]=g,f[c>>2]=0,(b|0)!=(d|0)):0)do{g=b;b=f[b+4>>2]|0;NDb(g)}while((b|0)!=(d|0));d8(a+28|0);hx(a);NDb(a);return}function IG(a,c){a=a|0;c=c|0;var d=0,e=0;e=u;u=u+16|0;d=e;f[d>>2]=c;a=By(f[a+24>>2]|0,1)|0;if(!(b[a+24>>0]|0)){u=e;return}Vk[f[a+1324>>2]&1023](1,d);u=e;return}function JG(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;k=u;u=u+16|0;h=k;f[a>>2]=92696;i=a+32|0;j=a+36|0;d=f[j>>2]|0;c=f[i>>2]|0;b=c;if((d|0)!=(c|0)){g=0;do{if(f[c+(g<<2)>>2]|0){d=SG(Qy(g)|0)|0;e=f[(f[d>>2]|0)+44>>2]|0;b=f[i>>2]|0;c=(f[j>>2]|0)-b>>2;if(c>>>0<=g>>>0){f[h>>2]=0;Cy(i,g+1-c|0,h);b=f[i>>2]|0}Vk[e&1023](d,f[b+(g<<2)>>2]|0);b=f[i>>2]|0;c=b;d=f[j>>2]|0}g=g+1|0}while(g>>>0<d-c>>2>>>0)}c=f[a+44>>2]|0;if(c){f[a+48>>2]=c;NDb(c);b=f[i>>2]|0}if(!b){ow(a);u=k;return}f[j>>2]=b;NDb(b);ow(a);u=k;return}function KG(a){a=a|0;JG(a);NDb(a);return}function LG(a){a=a|0;a=LDb(76)|0;VG(a);return a|0}function MG(a,b){a=a|0;b=b|0;var c=0;c=LDb(76)|0;UG(c,a,b);return c|0}function NG(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,60224,0)|0)!=0;return b|0}function OG(a){a=a|0;return 241076}function PG(a){a=a|0;return 178075}function QG(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0;i=u;u=u+16|0;h=i;c=a+32|0;f[h>>2]=0;d=a+36|0;e=f[c>>2]|0;g=(f[d>>2]|0)-e>>2;if(g>>>0>=b>>>0){if(g>>>0>b>>>0)f[d>>2]=e+(b<<2)}else Cy(c,b-g|0,h);g=a+44|0;f[h>>2]=0;c=a+48|0;d=f[g>>2]|0;e=(f[c>>2]|0)-d>>2;if(e>>>0<b>>>0){Ky(g,b-e|0,h);u=i;return}if(e>>>0<=b>>>0){u=i;return}f[c>>2]=d+(b<<2);u=i;return}function RG(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;k=u;u=u+16|0;j=k;if(!b){h=a+32|0;g=a+36|0;a=f[g>>2]|0;b=f[h>>2]|0;if((a|0)==(b|0)){u=k;return}e=0;do{if(f[b+(e<<2)>>2]|0){c=SG(Qy(e)|0)|0;d=f[(f[c>>2]|0)+44>>2]|0;b=f[h>>2]|0;a=(f[g>>2]|0)-b>>2;if(a>>>0<=e>>>0){f[j>>2]=0;Cy(h,e+1-a|0,j);b=f[h>>2]|0}Vk[d&1023](c,f[b+(e<<2)>>2]|0);a=f[g>>2]|0;d=f[h>>2]|0;b=a-d>>2;if(b>>>0>e>>>0){c=d;b=d}else{f[j>>2]=0;Cy(h,e+1-b|0,j);b=f[h>>2]|0;a=f[g>>2]|0;c=b}f[c+(e<<2)>>2]=0}e=e+1|0}while(e>>>0<a-b>>2>>>0);u=k;return}i=f[b+124>>2]|0;h=a+32|0;g=a+36|0;b=f[h>>2]|0;a=(f[g>>2]|0)-b>>2;if(a>>>0<=i>>>0){c=i+1|0;f[j>>2]=0;if(c>>>0<=a>>>0){if(c>>>0<a>>>0)f[g>>2]=b+(c<<2)}else{Cy(h,c-a|0,j);b=f[h>>2]|0}}if(!(f[b+(i<<2)>>2]|0)){u=k;return}d=SG(Qy(i)|0)|0;e=f[(f[d>>2]|0)+44>>2]|0;b=f[h>>2]|0;a=(f[g>>2]|0)-b>>2;if(a>>>0<=i>>>0){c=i+1|0;f[j>>2]=0;if(c>>>0<=a>>>0){if(c>>>0<a>>>0)f[g>>2]=b+(c<<2)}else{Cy(h,c-a|0,j);b=f[h>>2]|0}}Vk[e&1023](d,f[b+(i<<2)>>2]|0);b=f[h>>2]|0;a=(f[g>>2]|0)-b>>2;if(a>>>0<=i>>>0){c=i+1|0;f[j>>2]=0;if(c>>>0<=a>>>0){if(c>>>0<a>>>0)f[g>>2]=b+(c<<2)}else{Cy(h,c-a|0,j);b=f[h>>2]|0}}f[b+(i<<2)>>2]=0;u=k;return}function SG(a){a=a|0;var b=0,c=0,d=0,e=0,g=0;g=a+36|0;c=a+40|0;b=f[c>>2]|0;do if(b){d=a+40|0;while(1){c=f[b+16>>2]|0;if(c>>>0>60176>>>0){c=f[b>>2]|0;if(!c){c=5;break}else{d=b;b=c}}else{if(c>>>0>=60176>>>0){c=9;break}d=b+4|0;c=f[d>>2]|0;if(!c){c=8;break}else b=c}}if((c|0)==5){e=b;d=b;break}else if((c|0)==8){e=b;break}else if((c|0)==9){e=b;break}}else{e=c;d=c}while(0);b=f[d>>2]|0;if(!b){b=LDb(24)|0;f[b+16>>2]=60176;f[b+20>>2]=0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=e;f[d>>2]=b;c=f[f[g>>2]>>2]|0;if(!c)c=b;else{f[g>>2]=c;c=f[d>>2]|0}Aq(f[a+40>>2]|0,c);g=a+44|0;f[g>>2]=(f[g>>2]|0)+1}c=b+20|0;if(f[c>>2]|0){a=f[c>>2]|0;return a|0}d=LDb(52)|0;TG(d,f[a+24>>2]|0);b=f[c>>2]|0;if((b|0)==(d|0)){a=f[c>>2]|0;return a|0}f[c>>2]=d;a=d+8|0;f[a>>2]=(f[a>>2]|0)+1;if(!b){a=f[c>>2]|0;return a|0}g=b+8|0;a=f[g>>2]|0;f[g>>2]=a-1;if((a|0)!=1){a=f[c>>2]|0;return a|0}X4(b,1,1);a=f[c>>2]|0;return a|0}function TG(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;h=u;u=u+16|0;d=h;e=LDb(32)|0;f[d>>2]=e;f[d+8>>2]=-2147483616;f[d+4>>2]=21;g=e;i=178053;j=g+21|0;do{b[g>>0]=b[i>>0]|0;g=g+1|0;i=i+1|0}while((g|0)<(j|0));b[e+21>>0]=0;az(a,d,c);f[a>>2]=92568;yGa(a+28|0,0);j=a+40|0;f[j>>2]=j;f[a+44>>2]=j;f[a+48>>2]=0;if((b[d+11>>0]|0)>=0){f[a>>2]=92504;u=h;return}NDb(f[d>>2]|0);f[a>>2]=92504;u=h;return}function UG(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;nw(a,b,c);f[a>>2]=92696;c=a+32|0;Wx()|0;d=f[(f[72465]|0)+84>>2]|0;f[c>>2]=0;e=a+36|0;f[e>>2]=0;g=a+40|0;f[g>>2]=0;do if(d|0)if(d>>>0>1073741823)KEb(c);else{h=d<<2;i=LDb(h)|0;f[c>>2]=i;d=i+(d<<2)|0;f[g>>2]=d;iGb(i|0,0,h|0)|0;f[e>>2]=d;break}while(0);c=a+44|0;Wx()|0;d=f[(f[72465]|0)+84>>2]|0;f[c>>2]=0;e=a+48|0;f[e>>2]=0;g=a+52|0;f[g>>2]=0;do if(d|0)if(d>>>0>1073741823)KEb(c);else{h=d<<2;j=LDb(h)|0;f[c>>2]=j;i=j+(d<<2)|0;f[g>>2]=i;iGb(j|0,0,h|0)|0;f[e>>2]=i;break}while(0);f[a+56>>2]=f[b+56>>2];f[a+60>>2]=f[b+60>>2];f[a+64>>2]=f[b+64>>2];f[a+68>>2]=f[b+68>>2];f[a+72>>2]=f[b+72>>2];return}function VG(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;BCa(a);b=a+12|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[a+24>>2]=2;f[a+28>>2]=0;f[a>>2]=92696;b=a+32|0;Wx()|0;c=f[(f[72465]|0)+84>>2]|0;f[b>>2]=0;d=a+36|0;f[d>>2]=0;e=a+40|0;f[e>>2]=0;do if(c|0)if(c>>>0>1073741823)KEb(b);else{g=c<<2;h=LDb(g)|0;f[b>>2]=h;c=h+(c<<2)|0;f[e>>2]=c;iGb(h|0,0,g|0)|0;f[d>>2]=c;break}while(0);b=a+44|0;Wx()|0;c=f[(f[72465]|0)+84>>2]|0;f[b>>2]=0;d=a+48|0;f[d>>2]=0;e=a+52|0;f[e>>2]=0;if(!c){h=a+56|0;f[h>>2]=33190;h=a+60|0;f[h>>2]=512;h=a+64|0;f[h>>2]=512;h=a+68|0;f[h>>2]=0;h=a+72|0;f[h>>2]=0;return}if(c>>>0>1073741823)KEb(b);g=c<<2;i=LDb(g)|0;f[b>>2]=i;h=i+(c<<2)|0;f[e>>2]=h;iGb(i|0,0,g|0)|0;f[d>>2]=h;h=a+56|0;f[h>>2]=33190;h=a+60|0;f[h>>2]=512;h=a+64|0;f[h>>2]=512;h=a+68|0;f[h>>2]=0;h=a+72|0;f[h>>2]=0;return}function WG(a){a=a|0;var b=0;b=f[a>>2]|0;if(!b)return;f[a+4>>2]=b;NDb(b);return}function XG(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;k=u;u=u+16|0;h=k;f[a>>2]=92868;i=a+104|0;j=a+108|0;d=f[j>>2]|0;c=f[i>>2]|0;b=c;if((d|0)!=(c|0)){g=0;do{if(f[c+(g<<2)>>2]|0){d=rH(Qy(g)|0)|0;e=f[(f[d>>2]|0)+44>>2]|0;b=f[i>>2]|0;c=(f[j>>2]|0)-b>>2;if(c>>>0<=g>>>0){f[h>>2]=0;Cy(i,g+1-c|0,h);b=f[i>>2]|0}Vk[e&1023](d,f[b+(g<<2)>>2]|0);b=f[i>>2]|0;c=b;d=f[j>>2]|0}g=g+1|0}while(g>>>0<d-c>>2>>>0)}if(b|0){f[j>>2]=b;NDb(b)}b=f[a+92>>2]|0;if(b|0){f[a+96>>2]=b;NDb(b)}b=f[a+80>>2]|0;if(b|0){f[a+84>>2]=b;NDb(b)}b=f[a+68>>2]|0;if(!b){i=a+56|0;j=a+60|0;j=f[j>>2]|0;vH(i,j);rw(a);u=k;return}f[a+72>>2]=b;NDb(b);i=a+56|0;j=a+60|0;j=f[j>>2]|0;vH(i,j);rw(a);u=k;return}function YG(a){a=a|0;XG(a);NDb(a);return}function ZG(a){a=a|0;a=LDb(116)|0;yH(a);return a|0}function _G(a,b){a=a|0;b=b|0;var c=0;c=LDb(116)|0;tH(c,a,b);return c|0}function $G(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,60240,0)|0)!=0;return b|0}function aH(a){a=a|0;return 241076}function bH(a){a=a|0;return 178557}function cH(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0;j=u;u=u+16|0;g=j;h=a+104|0;f[g>>2]=0;i=a+108|0;c=f[h>>2]|0;d=(f[i>>2]|0)-c>>2;if(d>>>0>=b>>>0){if(d>>>0>b>>>0)f[i>>2]=c+(b<<2)}else Cy(h,b-d|0,g);e=a+92|0;f[g>>2]=0;c=a+96|0;d=f[e>>2]|0;a=(f[c>>2]|0)-d>>2;if(a>>>0>=b>>>0){if(a>>>0>b>>>0)f[c>>2]=d+(b<<2)}else Ky(e,b-a|0,g);f[g>>2]=0;c=f[h>>2]|0;d=(f[i>>2]|0)-c>>2;if(d>>>0<b>>>0){Cy(h,b-d|0,g);u=j;return}if(d>>>0<=b>>>0){u=j;return}f[i>>2]=c+(b<<2);u=j;return}function dH(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;k=u;u=u+16|0;j=k;if(!b){h=a+104|0;g=a+108|0;a=f[g>>2]|0;b=f[h>>2]|0;if((a|0)==(b|0)){u=k;return}e=0;do{if(f[b+(e<<2)>>2]|0){c=rH(Qy(e)|0)|0;d=f[(f[c>>2]|0)+44>>2]|0;b=f[h>>2]|0;a=(f[g>>2]|0)-b>>2;if(a>>>0<=e>>>0){f[j>>2]=0;Cy(h,e+1-a|0,j);b=f[h>>2]|0}Vk[d&1023](c,f[b+(e<<2)>>2]|0);a=f[g>>2]|0;d=f[h>>2]|0;b=a-d>>2;if(b>>>0>e>>>0){c=d;b=d}else{f[j>>2]=0;Cy(h,e+1-b|0,j);b=f[h>>2]|0;a=f[g>>2]|0;c=b}f[c+(e<<2)>>2]=0}e=e+1|0}while(e>>>0<a-b>>2>>>0);u=k;return}i=f[b+124>>2]|0;h=a+104|0;g=a+108|0;b=f[h>>2]|0;a=(f[g>>2]|0)-b>>2;if(a>>>0<=i>>>0){c=i+1|0;f[j>>2]=0;if(c>>>0<=a>>>0){if(c>>>0<a>>>0)f[g>>2]=b+(c<<2)}else{Cy(h,c-a|0,j);b=f[h>>2]|0}}if(!(f[b+(i<<2)>>2]|0)){u=k;return}d=rH(Qy(i)|0)|0;e=f[(f[d>>2]|0)+44>>2]|0;b=f[h>>2]|0;a=(f[g>>2]|0)-b>>2;if(a>>>0<=i>>>0){c=i+1|0;f[j>>2]=0;if(c>>>0<=a>>>0){if(c>>>0<a>>>0)f[g>>2]=b+(c<<2)}else{Cy(h,c-a|0,j);b=f[h>>2]|0}}Vk[e&1023](d,f[b+(i<<2)>>2]|0);b=f[h>>2]|0;a=(f[g>>2]|0)-b>>2;if(a>>>0<=i>>>0){c=i+1|0;f[j>>2]=0;if(c>>>0<=a>>>0){if(c>>>0<a>>>0)f[g>>2]=b+(c<<2)}else{Cy(h,c-a|0,j);b=f[h>>2]|0}}f[b+(i<<2)>>2]=0;u=k;return}function eH(a){a=a|0;return 55}function fH(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;if((a|0)==(b|0)){h=0;return h|0}if(!a)NFb();c=f[(f[(f[a>>2]|0)+-4>>2]|0)+4>>2]|0;d=f[(f[(f[b>>2]|0)+-4>>2]|0)+4>>2]|0;if(c>>>0<d>>>0){h=-1;return h|0}if((c|0)!=(d|0)){h=1;return h|0}c=f[a+64>>2]|0;d=f[b+64>>2]|0;if(c>>>0<d>>>0){h=-1;return h|0}if(d>>>0<c>>>0){h=1;return h|0}d=f[a+56>>2]|0;h=a+60|0;if((d|0)==(h|0)){h=0;return h|0}g=f[b+56>>2]|0;while(1){if((g|0)!=(d|0)){b=f[d+20>>2]|0;c=f[b>>2]|0;e=f[g+20>>2]|0;a=f[e>>2]|0;if((c|0)<(a|0)){c=-1;d=37;break}if((c|0)>(a|0)){c=1;d=37;break}c=f[b+4>>2]|0;a=f[e+4>>2]|0;if(c>>>0<a>>>0){c=-1;d=37;break}if(c>>>0>a>>>0){c=1;d=37;break}c=f[b+8>>2]|0;a=f[e+8>>2]|0;if(c>>>0<a>>>0){c=-1;d=37;break}if(c>>>0>a>>>0){c=1;d=37;break}c=f[b+12>>2]|0;a=f[e+12>>2]|0;if(c>>>0<a>>>0){c=-1;d=37;break}if(c>>>0>a>>>0){c=1;d=37;break}c=f[b+16>>2]|0;a=f[e+16>>2]|0;if(c>>>0<a>>>0){c=-1;d=37;break}if(c>>>0>a>>>0){c=1;d=37;break}b=f[b+20>>2]|0;c=f[e+20>>2]|0;c=b>>>0<c>>>0?-1:b>>>0>c>>>0&1;if(c|0){d=37;break}}c=f[d+4>>2]|0;if(!c){c=d+8|0;a=f[c>>2]|0;if((f[a>>2]|0)==(d|0))d=a;else do{e=f[c>>2]|0;c=e+8|0;d=f[c>>2]|0}while((f[d>>2]|0)!=(e|0))}else{while(1){d=f[c>>2]|0;if(!d)break;else c=d}d=c}c=f[g+4>>2]|0;if(!c){a=g+8|0;c=f[a>>2]|0;if((f[c>>2]|0)!=(g|0))do{g=f[a>>2]|0;a=g+8|0;c=f[a>>2]|0}while((f[c>>2]|0)!=(g|0))}else while(1){a=f[c>>2]|0;if(!a)break;else c=a}if((d|0)==(h|0)){c=0;d=37;break}else g=c}if((d|0)==37)return c|0;return 0}function gH(a,b){a=a|0;b=b|0;hH(a,b,36160);return}function hH(a,c,d){a=a|0;c=c|0;d=d|0;var e=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;s=u;u=u+16|0;r=s;l=f[c+124>>2]|0;j=a+92|0;k=a+96|0;e=f[j>>2]|0;h=(f[k>>2]|0)-e>>2;g=e;if(h>>>0<=l>>>0){i=l+1|0;f[r>>2]=0;if(i>>>0<=h>>>0){if(i>>>0<h>>>0)f[k>>2]=g+(i<<2)}else{Ky(j,i-h|0,r);e=f[j>>2]|0;g=e}}if(f[g+(l<<2)>>2]|0){u=s;return}m=c+832|0;p=f[m>>2]|0;if(!(b[p+1292>>0]|0)){h=(f[k>>2]|0)-e>>2;if(h>>>0<=l>>>0){g=l+1|0;f[r>>2]=0;if(g>>>0<=h>>>0){if(g>>>0<h>>>0)f[k>>2]=e+(g<<2)}else{Ky(j,g-h|0,r);e=f[j>>2]|0}}f[e+(l<<2)>>2]=1;if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=1){u=s;return}q=Nv(Mv(2)|0,178109,48)|0;Ktb(r,q+(f[(f[q>>2]|0)+-12>>2]|0)|0);d=Bvb(r,295164)|0;d=wk[f[(f[d>>2]|0)+28>>2]&1023](d,10)|0;Cvb(r);rub(q,d)|0;Rtb(q)|0;u=s;return}k=a+56|0;if(!(f[a+64>>2]|0)){Vk[f[p+1320>>2]&1023](d,0);u=s;return}g=a+80|0;h=a+84|0;e=f[g>>2]|0;i=(f[h>>2]|0)-e>>2;if(i>>>0<=l>>>0){j=l+1|0;f[r>>2]=0;if(j>>>0<=i>>>0){if(j>>>0<i>>>0)f[h>>2]=e+(j<<2)}else{Ky(g,j-i|0,r);e=f[g>>2]|0}}n=e+(l<<2)|0;g=a+104|0;h=a+108|0;e=f[g>>2]|0;i=(f[h>>2]|0)-e>>2;if(i>>>0<=l>>>0){j=l+1|0;f[r>>2]=0;if(j>>>0<=i>>>0){if(j>>>0<i>>>0)f[h>>2]=e+(j<<2)}else{Cy(g,j-i|0,r);e=f[g>>2]|0}}j=e+(l<<2)|0;e=f[j>>2]|0;do if(e){if(f[n>>2]|0)q=43}else{Vk[f[p+1328>>2]&1023](1,j);if(f[j>>2]|0){f[n>>2]=1;q=43;break}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=1){u=s;return}q=Nv(Mv(2)|0,178158,52)|0;Ktb(r,q+(f[(f[q>>2]|0)+-12>>2]|0)|0);d=Bvb(r,295164)|0;d=wk[f[(f[d>>2]|0)+28>>2]&1023](d,10)|0;Cvb(r);rub(q,d)|0;Rtb(q)|0;u=s;return}while(0);if((q|0)==43){if((b[287976]|0)==0?PFb(287976)|0:0)yGa(289936,0);sk[f[(f[72484]|0)+8>>2]&2047](289936)|0;e=f[k>>2]|0;i=a+60|0;if((e|0)!=(i|0)){h=e;while(1){iH(h+20|0,c,p);e=f[h+4>>2]|0;if(!e){g=h+8|0;e=f[g>>2]|0;if((f[e>>2]|0)!=(h|0))do{l=f[g>>2]|0;g=l+8|0;e=f[g>>2]|0}while((f[e>>2]|0)!=(l|0))}else while(1){g=f[e>>2]|0;if(!g)break;else e=g}if((e|0)==(i|0))break;else h=e}}sk[f[(f[72484]|0)+12>>2]&2047](289936)|0;e=f[j>>2]|0}Vk[f[p+1320>>2]&1023](d,e);a:do switch(d|0){case 36009:case 36160:{h=f[a+68>>2]|0;l=(f[a+72>>2]|0)-h|0;g=l>>2;if(l|0){e=f[m>>2]|0;if(e|0?(o=f[e+40>>2]|0,o|0):0){Vk[o&1023](g,h);break a}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>1){o=Nv(Mv(2)|0,178211,87)|0;Ktb(r,o+(f[(f[o>>2]|0)+-12>>2]|0)|0);m=Bvb(r,295164)|0;m=wk[f[(f[m>>2]|0)+28>>2]&1023](m,10)|0;Cvb(r);rub(o,m)|0;Rtb(o)|0}}break}default:{}}while(0);if(!(f[n>>2]|0)){u=s;return}e=f[k>>2]|0;i=a+60|0;b:do if((e|0)!=(i|0)){j=p+1293|0;h=e;while(1){g=h+20|0;e=f[h+16>>2]|0;c:do switch(e|0){case 2:{if(b[j>>0]|0){jH(g,c,d,36096,p);jH(g,c,d,36128,p);break c}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>1){a=Nv(Mv(2)|0,178299,116)|0;Ktb(r,a+(f[(f[a>>2]|0)+-12>>2]|0)|0);o=Bvb(r,295164)|0;o=wk[f[(f[o>>2]|0)+28>>2]&1023](o,10)|0;Cvb(r);rub(a,o)|0;Rtb(a)|0}break}case 0:{e=36096;q=82;break}case 1:{e=36128;q=82;break}case 3:{e=36064;q=82;break}default:{e=e+36060|0;q=82}}while(0);if((q|0)==82){q=0;jH(g,c,d,e,p)}e=f[h+4>>2]|0;if(!e){g=h+8|0;e=f[g>>2]|0;if((f[e>>2]|0)!=(h|0))do{a=f[g>>2]|0;g=a+8|0;e=f[g>>2]|0}while((f[e>>2]|0)!=(a|0))}else while(1){g=f[e>>2]|0;if(!g)break;else e=g}if((e|0)==(i|0))break b;else h=e}}while(0);f[n>>2]=0;u=s;return}function iH(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=f[b+124>>2]|0;d=f[(f[a>>2]|0)+8>>2]|0;if(!d)return;j=d+216|0;i=d+220|0;d=f[i>>2]|0;e=f[j>>2]|0;g=d-e>>2;do if(g>>>0<=k>>>0){h=k+1|0;if(h>>>0>g>>>0){lH(j,h-g|0);break}if(h>>>0<g>>>0){g=e+(h<<2)|0;if((g|0)!=(d|0))do{d=d+-4|0;e=f[d>>2]|0;if(e|0?(m=e+8|0,h=f[m>>2]|0,f[m>>2]=h-1,(h|0)==1):0)X4(e,1,1);f[d>>2]=0}while((d|0)!=(g|0));f[i>>2]=g}}while(0);m=f[(f[j>>2]|0)+(k<<2)>>2]|0;if(!((m|0)!=0?(f[m+12>>2]|0)!=0:0)){j=f[(f[a>>2]|0)+8>>2]|0;Vk[f[(f[j>>2]|0)+200>>2]&1023](j,b);j=f[(f[a>>2]|0)+8>>2]|0;i=j+216|0;j=j+220|0;d=f[j>>2]|0;e=f[i>>2]|0;g=d-e>>2;do if(g>>>0<=k>>>0){h=k+1|0;if(h>>>0>g>>>0){lH(i,h-g|0);break}if(h>>>0<g>>>0){g=e+(h<<2)|0;if((g|0)!=(d|0))do{d=d+-4|0;e=f[d>>2]|0;if(e|0?(h=e+8|0,m=f[h>>2]|0,f[h>>2]=m-1,(m|0)==1):0)X4(e,1,1);f[d>>2]=0}while((d|0)!=(g|0));f[j>>2]=g}}while(0);d=f[(f[i>>2]|0)+(k<<2)>>2]|0;if(!d)return;if(!(f[d+12>>2]|0))return}if(((EDa(f[(f[a>>2]|0)+8>>2]|0,0)|0)&-4|0)!=9984)return;d=b+732|0;if((f[d>>2]|0?(l=f[b+776>>2]|0,l|0):0)?(k=f[b+764>>2]|0,m=f[b+768>>2]|0,((k|0)>(m|0)?k:m)|0):0){Nk[l&2047](33984);f[d>>2]=0}nH(b,0,f[(f[a>>2]|0)+8>>2]|0)|0;l=f[c+1364>>2]|0;m=f[(f[a>>2]|0)+8>>2]|0;m=sk[f[(f[m>>2]|0)+212>>2]&2047](m)|0;Nk[l&2047](m);return}function jH(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=f[b+124>>2]|0;h=f[a>>2]|0;if(!(f[h>>2]|0)){a=f[e+1360>>2]|0;e=kH(f[h+4>>2]|0,n,e)|0;al[a&255](c,d,36161,e);return}h=f[h+8>>2]|0;if(!h)return;m=h+216|0;l=h+220|0;h=f[l>>2]|0;i=f[m>>2]|0;j=h-i>>2;do if(j>>>0<=n>>>0){k=n+1|0;if(k>>>0>j>>>0){lH(m,k-j|0);break}if(k>>>0<j>>>0){j=i+(k<<2)|0;if((j|0)!=(h|0))do{h=h+-4|0;i=f[h>>2]|0;if(i|0?(o=i+8|0,k=f[o>>2]|0,f[o>>2]=k-1,(k|0)==1):0)X4(i,1,1);f[h>>2]=0}while((h|0)!=(j|0));f[l>>2]=j}}while(0);h=f[(f[m>>2]|0)+(n<<2)>>2]|0;if(!((h|0)!=0?(g=f[h+12>>2]|0,(g|0)!=0):0)){l=f[(f[a>>2]|0)+8>>2]|0;Vk[f[(f[l>>2]|0)+200>>2]&1023](l,b);l=f[(f[a>>2]|0)+8>>2]|0;k=l+216|0;l=l+220|0;g=f[l>>2]|0;h=f[k>>2]|0;i=g-h>>2;do if(i>>>0<=n>>>0){j=n+1|0;if(j>>>0>i>>>0){lH(k,j-i|0);break}if(j>>>0<i>>>0){i=h+(j<<2)|0;if((i|0)!=(g|0))do{g=g+-4|0;h=f[g>>2]|0;if(h|0?(b=h+8|0,o=f[b>>2]|0,f[b>>2]=o-1,(o|0)==1):0)X4(h,1,1);f[g>>2]=0}while((g|0)!=(i|0));f[l>>2]=i}}while(0);g=f[(f[k>>2]|0)+(n<<2)>>2]|0;if(!g)return;g=f[g+12>>2]|0;if(!g)return}i=f[a>>2]|0;switch(f[i>>2]|0){case 4:{h=f[i+12>>2]|0;if((h|0)==-1){al[f[e+1348>>2]&255](c,d,g,f[i+16>>2]|0);return}else{cl[f[e+1340>>2]&63](c,d,h+34069|0,g,f[i+16>>2]|0);return}}case 1:{cl[f[e+1336>>2]&63](c,d,3552,g,f[i+16>>2]|0);return}case 2:{cl[f[e+1340>>2]&63](c,d,3553,g,f[i+16>>2]|0);return}case 7:{cl[f[e+1340>>2]&63](c,d,37120,g,f[i+16>>2]|0);return}case 3:{h=f[i+20>>2]|0;if((h|0)==-1){al[f[e+1348>>2]&255](c,d,g,f[i+16>>2]|0);return}else{dl[f[e+1344>>2]&15](c,d,32879,g,f[i+16>>2]|0,h);return}}case 6:{h=f[i+20>>2]|0;if((h|0)==-1){al[f[e+1348>>2]&255](c,d,g,f[i+16>>2]|0);return}else{cl[f[e+1352>>2]&63](c,d,g,f[i+16>>2]|0,h);return}}case 5:{cl[f[e+1340>>2]&63](c,d,34037,g,0);return}default:return}}function kH(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=u;u=u+16|0;m=p;h=a+32|0;i=a+36|0;e=f[h>>2]|0;j=(f[i>>2]|0)-e>>2;if(j>>>0<=c>>>0){g=c+1|0;f[m>>2]=0;if(g>>>0<=j>>>0){if(g>>>0<j>>>0)f[i>>2]=e+(g<<2)}else{Cy(h,g-j|0,m);e=f[h>>2]|0}}n=e+(c<<2)|0;g=a+44|0;k=a+48|0;e=f[g>>2]|0;h=(f[k>>2]|0)-e>>2;if(h>>>0<=c>>>0){i=c+1|0;f[m>>2]=0;if(i>>>0<=h>>>0){if(i>>>0<h>>>0)f[k>>2]=e+(i<<2)}else{Ky(g,i-h|0,m);e=f[g>>2]|0}}l=e+(c<<2)|0;e=f[n>>2]|0;do if(!e){Vk[f[d+1304>>2]&1023](1,n);if(!(f[n>>2]|0)){o=0;u=p;return o|0}else{f[l>>2]=1;e=f[n>>2]|0;break}}else if(!(f[l>>2]|0)){o=e;u=p;return o|0}while(0);Vk[f[d+1296>>2]&1023](36161,e);i=a+68|0;g=f[i>>2]|0;j=a+72|0;if((g|0)<(f[j>>2]|0)){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>1){h=Nv(Mv(2)|0,178416,113)|0;Ktb(m,h+(f[(f[h>>2]|0)+-12>>2]|0)|0);g=Bvb(m,295164)|0;g=wk[f[(f[g>>2]|0)+28>>2]&1023](g,10)|0;Cvb(m);rub(h,g)|0;Rtb(h)|0}g=f[j>>2]|0;f[i>>2]=g;e=f[a+44>>2]|0;h=(f[k>>2]|0)-e|0;if((h|0)>0){g=h>>>2;while(1){f[e>>2]=1;if((g|0)>1){g=g+-1|0;e=e+4|0}else break}g=f[i>>2]|0}}do if((g|0)>0){e=d+1316|0;if(f[e>>2]|0){d=mH(c,d)|0;d=(g|0)<(d|0)?g:d;c=f[j>>2]|0;dl[f[e>>2]&15](36161,d,(c|0)<(d|0)?c:d,f[a+56>>2]|0,f[a+60>>2]|0,f[a+64>>2]|0);break}e=d+1312|0;if(f[e>>2]|0){d=mH(c,d)|0;cl[f[e>>2]&63](36161,(g|0)<(d|0)?g:d,f[a+56>>2]|0,f[a+60>>2]|0,f[a+64>>2]|0)}else o=32}else o=32;while(0);if((o|0)==32)al[f[d+1308>>2]&255](36161,f[a+56>>2]|0,f[a+60>>2]|0,f[a+64>>2]|0);f[l>>2]=0;o=f[n>>2]|0;u=p;return o|0}function lH(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=a+8|0;e=f[m>>2]|0;n=a+4|0;d=f[n>>2]|0;c=d;if(e-d>>2>>>0>=b>>>0){iGb(d|0,0,b<<2|0)|0;f[n>>2]=c+(b<<2);return}j=f[a>>2]|0;h=d-j>>2;d=h+b|0;g=j;if(d>>>0>1073741823)KEb(a);l=e-j|0;e=l>>1;e=l>>2>>>0<536870911?(e>>>0<d>>>0?d:e):1073741823;do if(e)if(e>>>0>1073741823){n=mb(8)|0;RDb(n,238482);f[n>>2]=144484;qb(n|0,84192,1464)}else{i=LDb(e<<2)|0;break}else i=0;while(0);d=i+(h<<2)|0;l=i+(e<<2)|0;iGb(d|0,0,b<<2|0)|0;k=d+(b<<2)|0;if((c|0)==(g|0))e=j;else{b=h+-1-((c+-4+(0-j)|0)>>>2)|0;while(1){c=c+-4|0;e=f[c>>2]|0;f[d+-4>>2]=e;if(e|0){j=e+8|0;f[j>>2]=(f[j>>2]|0)+1}if((c|0)==(g|0))break;else d=d+-4|0}e=f[a>>2]|0;d=i+(b<<2)|0;g=e;c=f[n>>2]|0}f[a>>2]=d;f[n>>2]=k;f[m>>2]=l;if((c|0)!=(g|0))do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(m=d+8|0,n=f[m>>2]|0,f[m>>2]=n-1,(n|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(g|0));if(!e)return;NDb(e);return}function mH(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;i=u;u=u+16|0;h=i;if((b[287984]|0)==0?PFb(287984)|0:0){Wx()|0;d=f[(f[72465]|0)+84>>2]|0;f[72487]=0;f[72488]=0;f[72489]=0;do if(d|0)if(d>>>0>1073741823)KEb(289948);else{e=d<<2;j=LDb(e)|0;f[72487]=j;g=j+(d<<2)|0;f[72489]=g;iGb(j|0,0,e|0)|0;f[72488]=g;break}while(0)}d=f[72487]|0;e=(f[72488]|0)-d>>2;if(e>>>0<=a>>>0){g=a+1|0;f[h>>2]=0;if(g>>>0<=e>>>0){if(g>>>0<e>>>0)f[72488]=d+(g<<2)}else{Ky(289948,g-e|0,h);d=f[72487]|0}}d=d+(a<<2)|0;e=f[d>>2]|0;if(e|0){j=e;u=i;return j|0}if(!(b[c+1268>>0]|0)){j=0;u=i;return j|0}mi(36183,d|0);j=f[d>>2]|0;u=i;return j|0}function nH(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;j=a+696|0;k=a+700|0;e=f[k>>2]|0;h=f[j>>2]|0;i=(e-h|0)/12|0;do if(i>>>0<=c>>>0){g=c+1|0;if(g>>>0>i>>>0){oH(j,g-i|0);break}if(g>>>0<i>>>0){g=h+(g*12|0)|0;if((g|0)!=(e|0))do{m=e;e=e+-12|0;pH(e,f[m+-8>>2]|0)}while((e|0)!=(g|0));f[k>>2]=g}}while(0);m=f[j>>2]|0;l=m+(c*12|0)|0;j=sk[f[(f[d>>2]|0)+172>>2]&2047](d)|0;k=sk[f[(f[d>>2]|0)+176>>2]&2047](d)|0;g=m+(c*12|0)+4|0;e=f[g>>2]|0;do if(e){h=m+(c*12|0)+4|0;a:while(1){g=f[e+16>>2]|0;do if((j|0)>=(g|0)){if((g|0)>=(j|0)){g=f[e+20>>2]|0;if(k>>>0<g>>>0){n=14;break}if(g>>>0>=k>>>0){n=19;break a}}h=e+4|0;g=f[h>>2]|0;if(!g){n=18;break a}else e=g}else n=14;while(0);if((n|0)==14){n=0;g=f[e>>2]|0;if(!g){n=15;break}else{h=e;e=g}}}if((n|0)==15){i=e;h=e;break}else if((n|0)==18){i=e;break}else if((n|0)==19){i=e;break}}else{i=g;h=g}while(0);e=f[h>>2]|0;if(e|0){n=e;n=n+24|0;b[n>>0]=1;d=qH(a,c,d,n)|0;return d|0}g=LDb(52)|0;e=g+16|0;f[e>>2]=j;f[e+4>>2]=k;b[g+24>>0]=0;e=g+28|0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;f[e+12>>2]=0;f[e+16>>2]=0;f[e+20>>2]=0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=i;f[h>>2]=g;e=f[f[l>>2]>>2]|0;if(!e)e=g;else{f[l>>2]=e;e=f[h>>2]|0}Aq(f[m+(c*12|0)+4>>2]|0,e);n=m+(c*12|0)+8|0;f[n>>2]=(f[n>>2]|0)+1;n=g;n=n+24|0;b[n>>0]=1;d=qH(a,c,d,n)|0;return d|0}function oH(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=a+8|0;e=f[l>>2]|0;m=a+4|0;c=f[m>>2]|0;if(((e-c|0)/12|0)>>>0>=b>>>0){do{f[c+4>>2]=0;f[c+8>>2]=0;f[c>>2]=c+4;c=(f[m>>2]|0)+12|0;f[m>>2]=c;b=b+-1|0}while((b|0)!=0);return}d=f[a>>2]|0;g=(c-d|0)/12|0;h=g+b|0;if(h>>>0>357913941)KEb(a);k=(e-d|0)/12|0;c=k<<1;c=k>>>0<178956970?(c>>>0<h>>>0?h:c):357913941;do if(c)if(c>>>0>357913941){m=mb(8)|0;RDb(m,238482);f[m>>2]=144484;qb(m|0,84192,1464)}else{e=LDb(c*12|0)|0;break}else e=0;while(0);g=e+(g*12|0)|0;d=e+(c*12|0)|0;c=g;while(1){f[c+4>>2]=0;f[c+8>>2]=0;f[c>>2]=c+4;b=b+-1|0;if(!b)break;else c=c+12|0}k=e+(h*12|0)|0;j=f[a>>2]|0;c=f[m>>2]|0;if((c|0)==(j|0)){b=g;e=j;c=j}else{b=g;do{i=b;b=b+-12|0;e=c;c=c+-12|0;f[b>>2]=f[c>>2];g=f[e+-8>>2]|0;f[i+-8>>2]=g;h=e+-4|0;n=f[h>>2]|0;f[i+-4>>2]=n;i=i+-8|0;if(!n)f[b>>2]=i;else{f[g+8>>2]=i;n=e+-8|0;f[c>>2]=n;f[n>>2]=0;f[h>>2]=0}}while((c|0)!=(j|0));e=f[a>>2]|0;c=f[m>>2]|0}f[a>>2]=b;f[m>>2]=k;f[l>>2]=d;b=e;if((c|0)!=(b|0))do{n=c;c=c+-12|0;pH(c,f[n+-8>>2]|0)}while((c|0)!=(b|0));if(!e)return;NDb(e);return}function pH(a,b){a=a|0;b=b|0;var c=0,d=0;if(!b)return;pH(a,f[b>>2]|0);pH(a,f[b+4>>2]|0);a=f[b+40>>2]|0;if(a|0){f[b+44>>2]=a;NDb(a)}a=f[b+36>>2]|0;if(a|0?(d=a+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(a,1,1);NDb(b);return}function qH(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=e+4|0;if((f[k>>2]|0)==(d|0)){d=0;return d|0}h=a+732|0;do if((f[h>>2]|0)!=(c|0)){g=f[a+776>>2]|0;if(g|0?(m=f[a+764>>2]|0,l=f[a+768>>2]|0,((m|0)>(l|0)?m:l)>>>0>c>>>0):0){Nk[g&2047](c+33984|0);f[h>>2]=c;break}if(c|0){m=0;return m|0}}while(0);c=e+12|0;if((f[c>>2]|0)==0?(i=sk[f[(f[d>>2]|0)+12>>2]&2047](d)|0,i=sk[f[(f[i>>2]|0)+56>>2]&2047](i)|0,j=f[c>>2]|0,(j|0)!=(i|0)):0){f[c>>2]=i;if(i|0){m=i+8|0;f[m>>2]=(f[m>>2]|0)+1}if(j|0?(l=j+8|0,m=f[l>>2]|0,f[l>>2]=m-1,(m|0)==1):0)X4(j,1,1)}f[k>>2]=d;Vk[f[(f[d>>2]|0)+196>>2]&1023](d,a);g=f[d+44>>2]|0;c=e+8|0;if((f[c>>2]|0)!=(g|0)){f[c>>2]=g;b[a+145>>0]=1}if((f[a+368>>2]|0)!=2){m=1;return m|0}mpa(a,d)|0;m=1;return m|0}function rH(a){a=a|0;var b=0,c=0,d=0,e=0,g=0;g=a+36|0;c=a+40|0;b=f[c>>2]|0;do if(b){d=a+40|0;while(1){c=f[b+16>>2]|0;if(c>>>0>60208>>>0){c=f[b>>2]|0;if(!c){c=5;break}else{d=b;b=c}}else{if(c>>>0>=60208>>>0){c=9;break}d=b+4|0;c=f[d>>2]|0;if(!c){c=8;break}else b=c}}if((c|0)==5){e=b;d=b;break}else if((c|0)==8){e=b;break}else if((c|0)==9){e=b;break}}else{e=c;d=c}while(0);b=f[d>>2]|0;if(!b){b=LDb(24)|0;f[b+16>>2]=60208;f[b+20>>2]=0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=e;f[d>>2]=b;c=f[f[g>>2]>>2]|0;if(!c)c=b;else{f[g>>2]=c;c=f[d>>2]|0}Aq(f[a+40>>2]|0,c);g=a+44|0;f[g>>2]=(f[g>>2]|0)+1}c=b+20|0;if(f[c>>2]|0){a=f[c>>2]|0;return a|0}d=LDb(52)|0;sH(d,f[a+24>>2]|0);b=f[c>>2]|0;if((b|0)==(d|0)){a=f[c>>2]|0;return a|0}f[c>>2]=d;a=d+8|0;f[a>>2]=(f[a>>2]|0)+1;if(!b){a=f[c>>2]|0;return a|0}g=b+8|0;a=f[g>>2]|0;f[g>>2]=a-1;if((a|0)!=1){a=f[c>>2]|0;return a|0}X4(b,1,1);a=f[c>>2]|0;return a|0}function sH(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;h=u;u=u+16|0;d=h;e=LDb(32)|0;f[d>>2]=e;f[d+8>>2]=-2147483616;f[d+4>>2]=26;g=e;i=178530;j=g+26|0;do{b[g>>0]=b[i>>0]|0;g=g+1|0;i=i+1|0}while((g|0)<(j|0));b[e+26>>0]=0;az(a,d,c);f[a>>2]=92568;yGa(a+28|0,0);j=a+40|0;f[j>>2]=j;f[a+44>>2]=j;f[a+48>>2]=0;if((b[d+11>>0]|0)>=0){f[a>>2]=92632;u=h;return}NDb(f[d>>2]|0);f[a>>2]=92632;u=h;return}function tH(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;l=u;u=u+16|0;j=l+4|0;k=l;mw(a,b,c);f[a>>2]=92868;i=a+56|0;f[a+60>>2]=0;f[a+64>>2]=0;c=a+60|0;f[i>>2]=c;d=f[b+56>>2]|0;h=b+60|0;if((d|0)!=(h|0)){g=c;e=d;while(1){c=e+16|0;f[k>>2]=g;f[j>>2]=f[k>>2];uH(i,j,c,c)|0;c=f[e+4>>2]|0;if(!c){d=e+8|0;c=f[d>>2]|0;if((f[c>>2]|0)!=(e|0))do{e=f[d>>2]|0;d=e+8|0;c=f[d>>2]|0}while((f[c>>2]|0)!=(e|0))}else while(1){d=f[c>>2]|0;if(!d)break;else c=d}if((c|0)==(h|0))break;else e=c}}e=a+68|0;g=b+68|0;f[e>>2]=0;k=a+72|0;f[k>>2]=0;h=a+76|0;f[h>>2]=0;i=b+72|0;c=(f[i>>2]|0)-(f[g>>2]|0)|0;d=c>>2;if(c|0){if(d>>>0>1073741823)KEb(e);j=LDb(c)|0;f[k>>2]=j;f[e>>2]=j;f[h>>2]=j+(d<<2);d=f[g>>2]|0;c=(f[i>>2]|0)-d|0;if((c|0)>0){gGb(j|0,d|0,c|0)|0;f[k>>2]=j+(c>>>2<<2)}}c=a+80|0;Wx()|0;d=f[(f[72465]|0)+84>>2]|0;f[c>>2]=0;e=a+84|0;f[e>>2]=0;g=a+88|0;f[g>>2]=0;do if(d|0)if(d>>>0>1073741823)KEb(c);else{k=d<<2;j=LDb(k)|0;f[c>>2]=j;b=j+(d<<2)|0;f[g>>2]=b;iGb(j|0,0,k|0)|0;f[e>>2]=b;break}while(0);c=a+92|0;Wx()|0;d=f[(f[72465]|0)+84>>2]|0;f[c>>2]=0;e=a+96|0;f[e>>2]=0;g=a+100|0;f[g>>2]=0;do if(d|0)if(d>>>0>1073741823)KEb(c);else{k=d<<2;j=LDb(k)|0;f[c>>2]=j;b=j+(d<<2)|0;f[g>>2]=b;iGb(j|0,0,k|0)|0;f[e>>2]=b;break}while(0);d=a+104|0;Wx()|0;e=f[(f[72465]|0)+84>>2]|0;f[d>>2]=0;g=a+108|0;f[g>>2]=0;c=a+112|0;f[c>>2]=0;if(!e){u=l;return}if(e>>>0>1073741823)KEb(d);b=e<<2;k=LDb(b)|0;f[d>>2]=k;a=k+(e<<2)|0;f[c>>2]=a;iGb(k|0,0,b|0)|0;f[g>>2]=a;u=l;return}function uH(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0;j=u;u=u+16|0;h=j+12|0;i=j+8|0;g=j;f[g>>2]=f[b>>2];f[h>>2]=f[g>>2];h=xH(a,h,i,j+4|0,c)|0;b=f[h>>2]|0;if(b|0){a=b;u=j;return a|0}g=LDb(24)|0;f[g+16>>2]=f[d>>2];e=LDb(24)|0;c=f[d+4>>2]|0;f[e>>2]=f[c>>2];b=f[c+4>>2]|0;f[e+4>>2]=b;if(b|0){d=b+8|0;f[d>>2]=(f[d>>2]|0)+1}b=f[c+8>>2]|0;f[e+8>>2]=b;if(b|0){d=b+8|0;f[d>>2]=(f[d>>2]|0)+1}f[e+12>>2]=f[c+12>>2];f[e+16>>2]=f[c+16>>2];f[e+20>>2]=f[c+20>>2];f[g+20>>2]=e;b=f[i>>2]|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=b;f[h>>2]=g;b=f[f[a>>2]>>2]|0;if(!b)b=g;else{f[a>>2]=b;b=f[h>>2]|0}Aq(f[a+4>>2]|0,b);a=a+8|0;f[a>>2]=(f[a>>2]|0)+1;a=g;u=j;return a|0}function vH(a,b){a=a|0;b=b|0;if(!b)return;else{vH(a,f[b>>2]|0);vH(a,f[b+4>>2]|0);wH(b+20|0);NDb(b);return}}function wH(a){a=a|0;var b=0,c=0,d=0,e=0;c=f[a>>2]|0;if(!c)return;a=c+8|0;b=f[a>>2]|0;if(b|0?(e=b+8|0,d=f[e>>2]|0,f[e>>2]=d-1,(d|0)==1):0)X4(b,1,1);f[a>>2]=0;a=f[c+4>>2]|0;if(a|0?(d=a+8|0,e=f[d>>2]|0,f[d>>2]=e-1,(e|0)==1):0)X4(a,1,1);NDb(c);return}function xH(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0;i=a+4|0;h=f[b>>2]|0;b=h;if((h|0)!=(i|0)?(j=f[e>>2]|0,g=f[h+16>>2]|0,(j|0)>=(g|0)):0){if((g|0)>=(j|0)){f[c>>2]=b;f[d>>2]=b;c=d;return c|0}g=f[h+4>>2]|0;if(!g){d=h+8|0;g=f[d>>2]|0;if((f[g>>2]|0)!=(h|0))do{e=f[d>>2]|0;d=e+8|0;g=f[d>>2]|0}while((f[g>>2]|0)!=(e|0))}else while(1){d=f[g>>2]|0;if(!d)break;else g=d}if((g|0)!=(i|0)?(j|0)>=(f[g+16>>2]|0):0){b=f[i>>2]|0;if(!b){f[c>>2]=i;c=i;return c|0}d=a+4|0;while(1){g=f[b+16>>2]|0;if((j|0)<(g|0)){g=f[b>>2]|0;if(!g){e=42;break}else{d=b;b=g}}else{if((g|0)>=(j|0)){e=46;break}d=b+4|0;g=f[d>>2]|0;if(!g){e=45;break}else b=g}}if((e|0)==42){f[c>>2]=b;c=b;return c|0}else if((e|0)==45){f[c>>2]=b;c=d;return c|0}else if((e|0)==46){f[c>>2]=b;c=d;return c|0}}if(!(f[h+4>>2]|0)){f[c>>2]=b;c=h+4|0;return c|0}else{f[c>>2]=g;c=g;return c|0}}d=f[h>>2]|0;if((f[a>>2]|0)!=(h|0)){if(!d){b=h;do{j=b;b=f[b+8>>2]|0}while((f[b>>2]|0)==(j|0))}else{b=d;while(1){g=f[b+4>>2]|0;if(!g)break;else b=g}}e=f[e>>2]|0;if((f[b+16>>2]|0)>=(e|0)){b=f[i>>2]|0;if(!b){f[c>>2]=i;c=i;return c|0}d=a+4|0;while(1){g=f[b+16>>2]|0;if((e|0)<(g|0)){g=f[b>>2]|0;if(!g){e=18;break}else{d=b;b=g}}else{if((g|0)>=(e|0)){e=22;break}d=b+4|0;g=f[d>>2]|0;if(!g){e=21;break}else b=g}}if((e|0)==18){f[c>>2]=b;c=b;return c|0}else if((e|0)==21){f[c>>2]=b;c=d;return c|0}else if((e|0)==22){f[c>>2]=b;c=d;return c|0}}}if(!d){f[c>>2]=h;c=h;return c|0}else{f[c>>2]=b;c=b+4|0;return c|0}return 0}function yH(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;gDa(a);f[a>>2]=92868;f[a+60>>2]=0;f[a+64>>2]=0;f[a+56>>2]=a+60;f[a+68>>2]=0;f[a+72>>2]=0;f[a+76>>2]=0;e=a+80|0;Wx()|0;b=f[(f[72465]|0)+84>>2]|0;f[e>>2]=0;c=a+84|0;f[c>>2]=0;d=a+88|0;f[d>>2]=0;do if(b|0)if(b>>>0>1073741823)KEb(e);else{g=b<<2;h=LDb(g)|0;f[e>>2]=h;e=h+(b<<2)|0;f[d>>2]=e;iGb(h|0,0,g|0)|0;f[c>>2]=e;break}while(0);b=a+92|0;Wx()|0;c=f[(f[72465]|0)+84>>2]|0;f[b>>2]=0;d=a+96|0;f[d>>2]=0;e=a+100|0;f[e>>2]=0;do if(c|0)if(c>>>0>1073741823)KEb(b);else{g=c<<2;i=LDb(g)|0;f[b>>2]=i;h=i+(c<<2)|0;f[e>>2]=h;iGb(i|0,0,g|0)|0;f[d>>2]=h;break}while(0);c=a+104|0;Wx()|0;d=f[(f[72465]|0)+84>>2]|0;f[c>>2]=0;e=a+108|0;f[e>>2]=0;b=a+112|0;f[b>>2]=0;if(!d)return;if(d>>>0>1073741823)KEb(c);h=d<<2;g=LDb(h)|0;f[c>>2]=g;i=g+(d<<2)|0;f[b>>2]=i;iGb(g|0,0,h|0)|0;f[e>>2]=i;return}function zH(a){a=a|0;var b=0;b=f[a>>2]|0;if(!b)return;f[a+4>>2]=b;NDb(b);return}function AH(a){a=a|0;vH(a,f[a+4>>2]|0);return}function BH(a){a=a|0;V4(a);return}function CH(a){a=a|0;V4(a);NDb(a);return}function DH(a){a=a|0;UH(a);return}function EH(a){a=a|0;UH(a);NDb(a);return}function FH(a){a=a|0;var c=0;a=LDb(160)|0;CCa(a,1);c=a+12|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[a+24>>2]=2;c=a+28|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;n[a+44>>2]=-1.0;c=a+48|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;n[a+64>>2]=-1.0;c=a+72|0;f[a+92>>2]=0;f[a+100>>2]=0;f[a+120>>2]=0;b[a+68>>0]=0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;f[a+116>>2]=-1;f[a+88>>2]=0;f[a+96>>2]=0;b[a+104>>0]=1;f[a+108>>2]=0;f[a+112>>2]=0;f[a+124>>2]=0;f[a+128>>2]=0;f[a+132>>2]=0;f[a>>2]=93100;n[a+136>>2]=3402823466385288598117041.0e14;n[a+140>>2]=3402823466385288598117041.0e14;n[a+144>>2]=3402823466385288598117041.0e14;n[a+148>>2]=-3402823466385288598117041.0e14;n[a+152>>2]=-3402823466385288598117041.0e14;n[a+156>>2]=-3402823466385288598117041.0e14;return a|0}function GH(a,b){a=a|0;b=b|0;var c=0;c=LDb(160)|0;TH(c,a,b);f[c>>2]=93100;n[c+136>>2]=3402823466385288598117041.0e14;n[c+140>>2]=3402823466385288598117041.0e14;n[c+144>>2]=3402823466385288598117041.0e14;n[c+148>>2]=-3402823466385288598117041.0e14;n[c+152>>2]=-3402823466385288598117041.0e14;n[c+156>>2]=-3402823466385288598117041.0e14;return c|0}function HH(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,60272,0)|0)!=0;return b|0}function IH(a){a=a|0;return 241076}function JH(a){a=a|0;return 178620}function KH(a){a=a|0;return a|0}function LH(a){a=a|0;return a|0}function MH(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0;j=u;u=u+16|0;c=j+8|0;i=j+4|0;d=j;if(!((f[a+116>>2]|f[b+24>>2])&f[b+20>>2])){u=j;return}f[i>>2]=a;e=b+16|0;g=b+28|0;h=a;do if((f[e>>2]|0)!=1){c=b+32|0;d=f[c>>2]|0;if((d|0)==(f[b+36>>2]|0)){OA(g,i);break}else{f[d>>2]=h;f[c>>2]=(f[c>>2]|0)+4;break}}else{f[d>>2]=f[g>>2];f[c>>2]=f[d>>2];PA(g,c,i)|0}while(0);Vk[f[(f[b>>2]|0)+112>>2]&1023](b,a);if((f[e>>2]|0)==1){a=f[b+28>>2]|0;e=a+4|0;c=b+32|0;d=(f[c>>2]|0)-e|0;if(d|0)hGb(a|0,e|0,d|0)|0;d=a+(d>>2<<2)|0}else{c=b+32|0;d=(f[c>>2]|0)+-4|0}f[c>>2]=d;u=j;return}function NH(a,b){a=a|0;b=b|0;var c=0,d=0.0,e=0,g=0.0,h=0.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;n[a>>2]=0.0;n[a+4>>2]=0.0;n[a+8>>2]=0.0;n[a+12>>2]=-1.0;q=b+136|0;n[q>>2]=3402823466385288598117041.0e14;r=b+140|0;n[r>>2]=3402823466385288598117041.0e14;s=b+144|0;n[s>>2]=3402823466385288598117041.0e14;t=b+148|0;n[t>>2]=-3402823466385288598117041.0e14;u=b+152|0;n[u>>2]=-3402823466385288598117041.0e14;k=b+156|0;n[k>>2]=-3402823466385288598117041.0e14;c=f[b+124>>2]|0;j=b+128|0;if((c|0)==(f[j>>2]|0))return;do{b=f[c>>2]|0;do if(b|0){b=sk[f[(f[b>>2]|0)+88>>2]&2047](b)|0;if(!b){e=BD(f[c>>2]|0)|0;i=e+12|0;d=+n[i>>2];if(!(d>=0.0))break;g=+n[e>>2];h=g-d;if(h<+n[q>>2]){n[q>>2]=h;g=+n[e>>2];d=+n[i>>2]}g=d+g;if(g>+n[t>>2]){n[t>>2]=g;d=+n[i>>2]}b=e+4|0;g=+n[b>>2];h=g-d;if(h<+n[r>>2]){n[r>>2]=h;g=+n[b>>2];d=+n[i>>2]}g=d+g;if(g>+n[u>>2]){n[u>>2]=g;d=+n[i>>2]}b=e+8|0;g=+n[b>>2];h=g-d;if(h<+n[s>>2]){n[s>>2]=h;g=+n[b>>2];d=+n[i>>2]}d=d+g;if(!(d>+n[k>>2]))break;n[k>>2]=d;break}b=BE(b)|0;e=b+12|0;d=+n[e>>2];g=+n[b>>2];if((d>=g?(l=b+16|0,m=b+4|0,+n[l>>2]>=+n[m>>2]):0)?(o=b+20|0,p=b+8|0,+n[o>>2]>=+n[p>>2]):0){if(g<+n[q>>2]){n[q>>2]=g;d=+n[e>>2]}if(d>+n[t>>2])n[t>>2]=d;d=+n[m>>2];if(d<+n[r>>2])n[r>>2]=d;d=+n[l>>2];if(d>+n[u>>2])n[u>>2]=d;d=+n[p>>2];if(d<+n[s>>2])n[s>>2]=d;d=+n[o>>2];if(d>+n[k>>2])n[k>>2]=d}}while(0);c=c+4|0}while((c|0)!=(f[j>>2]|0));if(!(+n[t>>2]>=+n[q>>2]))return;if(!(+n[u>>2]>=+n[r>>2]))return;if(!(+n[k>>2]>=+n[s>>2]))return;OF(a,q);return}function OH(a,b){a=a|0;b=b|0;return wk[f[(f[a>>2]|0)+228>>2]&1023](a,b)|0}function PH(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0;g=f[(f[a>>2]|0)+272>>2]|0;e=f[a+124>>2]|0;c=(f[a+128>>2]|0)-e|0;d=c>>2;a:do if(!c)c=0;else{c=0;while(1){if((f[e+(c<<2)>>2]|0)==(b|0))break a;c=c+1|0;if(c>>>0>=d>>>0){c=d;break}}}while(0);return xk[g&255](a,c,1)|0}function QH(a,b,c){a=a|0;b=b|0;c=c|0;return xk[f[(f[a>>2]|0)+240>>2]&255](a,b,c)|0}function RH(a,b,c){a=a|0;b=b|0;c=c|0;return xk[f[(f[a>>2]|0)+244>>2]&255](a,b,c)|0}function SH(a,b,c){a=a|0;b=b|0;c=c|0;return xk[f[(f[a>>2]|0)+252>>2]&255](a,b,c)|0}function TH(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;$F(a,b,c);f[a>>2]=93392;f[a+124>>2]=0;f[a+128>>2]=0;f[a+132>>2]=0;d=f[b+124>>2]|0;e=b+128|0;if((d|0)==(f[e>>2]|0))return;b=d;do{d=wk[f[(f[c>>2]|0)+16>>2]&1023](c,f[b>>2]|0)|0;if(d|0)wk[f[(f[a>>2]|0)+228>>2]&1023](a,d)|0;b=b+4|0}while((b|0)!=(f[e>>2]|0));return}function UH(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f[a>>2]=93392;m=a+124|0;b=f[m>>2]|0;n=a+128|0;if((b|0)==(f[n>>2]|0))d=b;else{do{c=f[b>>2]|0;i=$7()|0;j=(i|0)==0;if(!j)sk[f[(f[i>>2]|0)+8>>2]&2047](i)|0;d=f[c+72>>2]|0;h=c+76|0;e=f[h>>2]|0;g=e;a:do if((d|0)==(e|0)){k=d;l=20}else{c=d;do{if((f[c>>2]|0)==(a|0)){k=c;l=20;break a}c=c+4|0}while((c|0)!=(e|0))}while(0);if((l|0)==20?(l=0,(k|0)!=(e|0)):0){d=k+4|0;c=g-d|0;if(c|0)hGb(k|0,d|0,c|0)|0;f[h>>2]=k+(c>>2<<2)}if(!j)sk[f[(f[i>>2]|0)+12>>2]&2047](i)|0;b=b+4|0}while((b|0)!=(f[n>>2]|0));d=f[m>>2]|0}if(!d){aG(a);return}if((b|0)==(d|0))b=d;else{do{b=b+-4|0;c=f[b>>2]|0;if(c|0?(k=c+8|0,l=f[k>>2]|0,f[k>>2]=l-1,(l|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(d|0));b=f[m>>2]|0}f[n>>2]=d;NDb(b);aG(a);return}function VH(a){a=a|0;UH(a);NDb(a);return}function WH(a){a=a|0;var c=0;a=LDb(136)|0;CCa(a,1);c=a+12|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[a+24>>2]=2;c=a+28|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;n[a+44>>2]=-1.0;c=a+48|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;n[a+64>>2]=-1.0;c=a+72|0;f[a+92>>2]=0;f[a+100>>2]=0;f[a+120>>2]=0;b[a+68>>0]=0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;f[a+116>>2]=-1;f[a+88>>2]=0;f[a+96>>2]=0;b[a+104>>0]=1;f[a+108>>2]=0;f[a+112>>2]=0;f[a>>2]=93392;f[a+124>>2]=0;f[a+128>>2]=0;f[a+132>>2]=0;return a|0}function XH(a,b){a=a|0;b=b|0;var c=0;c=LDb(136)|0;TH(c,a,b);return c|0}function YH(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,58752,0)|0)!=0;return b|0}function ZH(a){a=a|0;return 241076}function _H(a){a=a|0;return 178626}function $H(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0;j=u;u=u+16|0;c=j+8|0;i=j+4|0;d=j;if(!((f[a+116>>2]|f[b+24>>2])&f[b+20>>2])){u=j;return}f[i>>2]=a;e=b+16|0;g=b+28|0;h=a;do if((f[e>>2]|0)!=1){c=b+32|0;d=f[c>>2]|0;if((d|0)==(f[b+36>>2]|0)){OA(g,i);break}else{f[d>>2]=h;f[c>>2]=(f[c>>2]|0)+4;break}}else{f[d>>2]=f[g>>2];f[c>>2]=f[d>>2];PA(g,c,i)|0}while(0);Vk[f[(f[b>>2]|0)+120>>2]&1023](b,a);if((f[e>>2]|0)==1){a=f[b+28>>2]|0;e=a+4|0;c=b+32|0;d=(f[c>>2]|0)-e|0;if(d|0)hGb(a|0,e|0,d|0)|0;d=a+(d>>2<<2)|0}else{c=b+32|0;d=(f[c>>2]|0)+-4|0}f[c>>2]=d;u=j;return}function aI(a,b){a=a|0;b=b|0;var c=0.0,d=0,e=0.0,g=0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,o=0.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;n[a>>2]=0.0;v=a+4|0;n[v>>2]=0.0;w=a+8|0;n[w>>2]=0.0;x=a+12|0;n[x>>2]=-1.0;t=b+124|0;d=f[t>>2]|0;u=b+128|0;if((d|0)==(f[u>>2]|0))return;m=3402823466385288598117041.0e14;e=3402823466385288598117041.0e14;c=3402823466385288598117041.0e14;k=-3402823466385288598117041.0e14;o=-3402823466385288598117041.0e14;j=-3402823466385288598117041.0e14;while(1){b=f[d>>2]|0;g=sk[f[(f[b>>2]|0)+180>>2]&2047](b)|0;if((g|0)!=0?(f[g+136>>2]|0)!=0:0){h=m;i=o}else y=5;do if((y|0)==5){y=0;g=sk[f[(f[b>>2]|0)+88>>2]&2047](b)|0;if(!g){b=BD(b)|0;l=+n[b+12>>2];if(!(l>=0.0)){h=m;i=o;break}i=+n[b>>2];h=i-l;h=h<m?h:m;i=l+i;k=i>k?i:k;i=+n[b+4>>2];m=i-l;e=m<e?m:e;i=l+i;i=i>o?i:o;o=+n[b+8>>2];m=o-l;c=m<c?m:c;l=l+o;if(!(l>j))break;j=l;break}b=BE(g)|0;i=+n[b+12>>2];h=+n[b>>2];if((i>=h?(p=+n[b+16>>2],q=+n[b+4>>2],p>=q):0)?(r=+n[b+20>>2],s=+n[b+8>>2],r>=s):0){h=h<m?h:m;k=i>k?i:k;e=q<e?q:e;i=p>o?p:o;c=s<c?s:c;if(r>j)j=r}else{h=m;i=o}}while(0);d=d+4|0;if((d|0)==(f[u>>2]|0))break;else{m=h;o=i}}if(!(k>=h))return;if(!(i>=e)|!(j>=c))return;n[a>>2]=(h+k)*.5;n[v>>2]=(e+i)*.5;n[w>>2]=(c+j)*.5;n[x>>2]=0.0;b=f[t>>2]|0;if((b|0)==(d|0))return;e=0.0;while(1){d=f[b>>2]|0;t=sk[f[(f[d>>2]|0)+180>>2]&2047](d)|0;if((t|0)!=0?(f[t+136>>2]|0)!=0:0)c=e;else y=21;do if((y|0)==21){y=0;d=BD(d)|0;c=+n[d+12>>2];if(c>=0.0){if(!(e>=0.0)){f[a>>2]=f[d>>2];f[a+4>>2]=f[d+4>>2];f[a+8>>2]=f[d+8>>2];n[x>>2]=c;break}q=+n[d>>2]-+n[a>>2];r=+n[d+4>>2]-+n[v>>2];s=+n[d+8>>2]-+n[w>>2];c=c+ +K(+(q*q+r*r+s*s));if(c>e)n[x>>2]=c;else c=e}else c=e}while(0);b=b+4|0;if((b|0)==(f[u>>2]|0))break;else e=c}return}function bI(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;d=f[a>>2]|0;if(!d)return;e=a+4|0;b=f[e>>2]|0;if((b|0)==(d|0))b=d;else{do{b=b+-4|0;c=f[b>>2]|0;if(c|0?(h=c+8|0,g=f[h>>2]|0,f[h>>2]=g-1,(g|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(d|0));b=f[a>>2]|0}f[e>>2]=d;NDb(b);return}function cI(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;f[a>>2]=93664;c=a+200|0;d=a+204|0;if((f[d>>2]|0)!=(f[c>>2]|0)){b=0;do{e=mF(c,b)|0;e=f[e>>2]|0;if(e|0)jEa(e);b=b+1|0}while(b>>>0<(f[d>>2]|0)-(f[c>>2]|0)>>2>>>0)}d=a+264|0;e=f[d>>2]|0;if(e|0){g=a+268|0;b=f[g>>2]|0;if((b|0)==(e|0))b=e;else{do{b=b+-4|0;c=f[b>>2]|0;if(c|0?(i=c+8|0,h=f[i>>2]|0,f[i>>2]=h-1,(h|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(e|0));b=f[d>>2]|0}f[g>>2]=e;NDb(b)}d=a+252|0;e=f[d>>2]|0;if(e|0){g=a+256|0;b=f[g>>2]|0;if((b|0)==(e|0))b=e;else{do{b=b+-4|0;c=f[b>>2]|0;if(c|0?(h=c+8|0,i=f[h>>2]|0,f[h>>2]=i-1,(i|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(e|0));b=f[d>>2]|0}f[g>>2]=e;NDb(b)}b=a+248|0;c=f[b>>2]|0;if(c|0?(h=c+8|0,i=f[h>>2]|0,f[h>>2]=i-1,(i|0)==1):0)X4(c,1,1);f[b>>2]=0;b=a+244|0;c=f[b>>2]|0;if(c|0?(h=c+8|0,i=f[h>>2]|0,f[h>>2]=i-1,(i|0)==1):0)X4(c,1,1);f[b>>2]=0;b=a+240|0;c=f[b>>2]|0;if(c|0?(h=c+8|0,i=f[h>>2]|0,f[h>>2]=i-1,(i|0)==1):0)X4(c,1,1);f[b>>2]=0;b=a+236|0;c=f[b>>2]|0;if(c|0?(h=c+8|0,i=f[h>>2]|0,f[h>>2]=i-1,(i|0)==1):0)X4(c,1,1);f[b>>2]=0;b=a+232|0;c=f[b>>2]|0;if(c|0?(h=c+8|0,i=f[h>>2]|0,f[h>>2]=i-1,(i|0)==1):0)X4(c,1,1);f[b>>2]=0;d=a+220|0;e=f[d>>2]|0;if(!e){EE(a);return}g=a+224|0;b=f[g>>2]|0;if((b|0)==(e|0))b=e;else{do{b=b+-4|0;c=f[b>>2]|0;if(c|0?(h=c+8|0,i=f[h>>2]|0,f[h>>2]=i-1,(i|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(e|0));b=f[d>>2]|0}f[g>>2]=e;NDb(b);EE(a);return}function dI(a){a=a|0;cI(a);NDb(a);return}function eI(a){a=a|0;var c=0,d=0,e=0,g=0;a=LDb(280)|0;qG(a);f[a>>2]=93664;c=a+220|0;d=a+182|0;e=c;g=e+56|0;do{f[e>>2]=0;e=e+4|0}while((e|0)<(g|0));b[c+56>>0]=0;b[d>>0]=1;b[a+183>>0]=0;return a|0}function fI(a,b){a=a|0;b=b|0;var c=0;c=LDb(280)|0;BK(c,a,b);return c|0}function gI(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,60288,0)|0)!=0;return b|0}function hI(a){a=a|0;return 241076}function iI(a){a=a|0;return 180178}function jI(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=u;u=u+32|0;h=m+24|0;k=m+12|0;j=m;OE(a,b);f[k>>2]=0;l=k+4|0;f[l>>2]=0;f[k+8>>2]=0;if(MA(a,k)|0?(c=f[k>>2]|0,(c|0)!=(f[l>>2]|0)):0)do{i=f[c>>2]|0;Vk[f[(f[i>>2]|0)+156>>2]&1023](i,b);c=c+4|0}while((c|0)!=(f[l>>2]|0));f[j>>2]=0;i=j+4|0;f[i>>2]=0;g=j+8|0;f[g>>2]=0;c=f[a+220>>2]|0;e=a+224|0;if((c|0)!=(f[e>>2]|0)){do{d=f[c>>2]|0;d=sk[f[(f[d>>2]|0)+192>>2]&2047](d)|0;f[h>>2]=d;a=d;do if(d|0){d=f[i>>2]|0;if((d|0)==(f[g>>2]|0)){AK(j,h);break}else{f[d>>2]=a;f[i>>2]=(f[i>>2]|0)+4;break}}while(0);c=c+4|0}while((c|0)!=(f[e>>2]|0));h=f[i>>2]|0;g=f[j>>2]|0;c=g;if(!((h|0)==(g|0)|(c|0)==(h|0))){do{h=f[c>>2]|0;Vk[f[(f[h>>2]|0)+156>>2]&1023](h,b);c=c+4|0}while((c|0)!=(f[i>>2]|0));c=f[j>>2]|0}if(c|0){f[i>>2]=c;NDb(c)}}d=f[k>>2]|0;if(!d){u=m;return}c=f[l>>2]|0;if((c|0)==(d|0))c=d;else{do{c=c+-4|0;a=f[c>>2]|0;if(a|0?(b=a+8|0,j=f[b>>2]|0,f[b>>2]=j-1,(j|0)==1):0)X4(a,1,1);f[c>>2]=0}while((c|0)!=(d|0));c=f[k>>2]|0}f[l>>2]=d;NDb(c);u=m;return}function kI(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=u;u=u+32|0;k=n+24|0;m=n+12|0;l=n;PE(a,b);g=a+200|0;if(b){h=b+124|0;j=mF(g,f[h>>2]|0)|0;if((f[j>>2]|0?(d=mF(g,f[h>>2]|0)|0,ZDa(f[d>>2]|0),d=mF(g,f[h>>2]|0)|0,e=f[d>>2]|0,e|0):0)?(f[d>>2]=0,i=e+8|0,j=f[i>>2]|0,f[i>>2]=j-1,(j|0)==1):0)X4(e,1,1)}else{g=f[g>>2]|0;h=a+204|0;d=f[h>>2]|0;if((d|0)!=(g|0))do{d=d+-4|0;e=f[d>>2]|0;if(e|0?(i=e+8|0,j=f[i>>2]|0,f[i>>2]=j-1,(j|0)==1):0)X4(e,1,1);f[d>>2]=0}while((d|0)!=(g|0));f[h>>2]=g}f[m>>2]=0;j=m+4|0;f[j>>2]=0;f[m+8>>2]=0;if(MA(a,m)|0?(c=f[m>>2]|0,(c|0)!=(f[j>>2]|0)):0)do{i=f[c>>2]|0;Vk[f[(f[i>>2]|0)+160>>2]&1023](i,b);c=c+4|0}while((c|0)!=(f[j>>2]|0));f[l>>2]=0;i=l+4|0;f[i>>2]=0;h=l+8|0;f[h>>2]=0;c=f[a+220>>2]|0;g=a+224|0;if((c|0)!=(f[g>>2]|0)){do{a=f[c>>2]|0;a=sk[f[(f[a>>2]|0)+192>>2]&2047](a)|0;f[k>>2]=a;d=a;do if(a|0){e=f[i>>2]|0;if((e|0)==(f[h>>2]|0)){AK(l,k);break}else{f[e>>2]=d;f[i>>2]=(f[i>>2]|0)+4;break}}while(0);c=c+4|0}while((c|0)!=(f[g>>2]|0));k=f[i>>2]|0;a=f[l>>2]|0;c=a;if(!((k|0)==(a|0)|(c|0)==(k|0))){do{k=f[c>>2]|0;Vk[f[(f[k>>2]|0)+160>>2]&1023](k,b);c=c+4|0}while((c|0)!=(f[i>>2]|0));c=f[l>>2]|0}if(c|0){f[i>>2]=c;NDb(c)}}e=f[m>>2]|0;if(!e){u=n;return}c=f[j>>2]|0;if((c|0)==(e|0))c=e;else{do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(b=d+8|0,l=f[b>>2]|0,f[b>>2]=l-1,(l|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(e|0));c=f[m>>2]|0}f[j>>2]=e;NDb(c);u=n;return}function lI(a){a=a|0;return a|0}function mI(a){a=a|0;return a|0}function nI(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0;j=u;u=u+16|0;c=j+8|0;i=j+4|0;d=j;if(!((f[a+116>>2]|f[b+24>>2])&f[b+20>>2])){u=j;return}f[i>>2]=a;e=b+16|0;g=b+28|0;h=a;do if((f[e>>2]|0)!=1){c=b+32|0;d=f[c>>2]|0;if((d|0)==(f[b+36>>2]|0)){OA(g,i);break}else{f[d>>2]=h;f[c>>2]=(f[c>>2]|0)+4;break}}else{f[d>>2]=f[g>>2];f[c>>2]=f[d>>2];PA(g,c,i)|0}while(0);Vk[f[(f[b>>2]|0)+104>>2]&1023](b,a);if((f[e>>2]|0)==1){a=f[b+28>>2]|0;e=a+4|0;c=b+32|0;d=(f[c>>2]|0)-e|0;if(d|0)hGb(a|0,e|0,d|0)|0;d=a+(d>>2<<2)|0}else{c=b+32|0;d=(f[c>>2]|0)+-4|0}f[c>>2]=d;u=j;return}function oI(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=u;u=u+32|0;h=q+24|0;p=q+12|0;m=q;d=a+183|0;e=b[d>>0]|0;if((e&255|0)==(c&1|0)){u=q;return}if(e<<24>>24)Nk[f[(f[a>>2]|0)+240>>2]&2047](a);b[d>>0]=c&1;f[p>>2]=0;o=p+4|0;f[o>>2]=0;f[p+8>>2]=0;MA(a,p)|0;f[m>>2]=0;l=m+4|0;f[l>>2]=0;g=m+8|0;f[g>>2]=0;c=f[a+220>>2]|0;a=a+224|0;if((c|0)!=(f[a>>2]|0))do{j=f[c>>2]|0;j=sk[f[(f[j>>2]|0)+192>>2]&2047](j)|0;f[h>>2]=j;d=j;do if(j|0){e=f[l>>2]|0;if((e|0)==(f[g>>2]|0)){AK(m,h);break}else{f[e>>2]=d;f[l>>2]=(f[l>>2]|0)+4;break}}while(0);c=c+4|0}while((c|0)!=(f[a>>2]|0));d=f[p>>2]|0;e=f[o>>2]|0;if((d|0)!=(e|0)){c=0;g=1;while(1){if(!g)break;a=f[(f[d>>2]|0)+40>>2]|0;if(((a|0)!=0?(i=bFb(a,58480,58512,0)|0,(i|0)!=0):0)?(c|0)!=(i|0):0){a=i+8|0;f[a>>2]=(f[a>>2]|0)+1;a=i;e=f[o>>2]|0}else a=0;d=d+4|0;g=(a|0)==0;if((d|0)==(e|0)){n=19;break}else c=a}if((n|0)==19)if(g){c=LDb(72)|0;BCa(c);j=c+12|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[c+24>>2]=2;f[c+28>>2]=0;f[c>>2]=88712;j=c+32|0;f[c+48>>2]=0;f[c+52>>2]=0;f[c+56>>2]=0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;b[j+12>>0]=0;Vx(c+60|0);f[c>>2]=89080;f[j>>2]=34962;f[c+36>>2]=35044;if((a|0)==(c|0))c=0;else{j=c+8|0;f[j>>2]=(f[j>>2]|0)+1}}else c=a;e=f[p>>2]|0;d=f[o>>2]|0;a:do if((e|0)!=(d|0)){j=c+8|0;if(c|0)while(1){i=f[e>>2]|0;h=i+40|0;a=f[h>>2]|0;g=(a|0)==0;if(!(!g?(bFb(a,58480,58512,0)|0)!=0:0))if((a|0)!=(c|0)){if(g)d=0;else{Kx(a,f[i+36>>2]|0);d=f[h>>2]|0}if(((d|0)!=(c|0)?(f[h>>2]=c,f[j>>2]=(f[j>>2]|0)+1,d|0):0)?(a=d+8|0,g=f[a>>2]|0,f[a>>2]=g-1,(g|0)==1):0)X4(d,1,1);d=f[h>>2]|0;if(!d)d=0;else d=Lx(d,i)|0;f[i+36>>2]=d;d=f[o>>2]|0}e=e+4|0;if((e|0)==(d|0))break a}do{i=f[e>>2]|0;h=i+40|0;a=f[h>>2]|0;g=(a|0)==0;if(!(!g?(bFb(a,58480,58512,0)|0)!=0:0))if((a|0)!=(c|0)){if(g)d=0;else{Kx(a,f[i+36>>2]|0);d=f[h>>2]|0}if((d|0)!=(c|0)){f[h>>2]=c;if(d){j=d+8|0;n=f[j>>2]|0;f[j>>2]=n-1;if((n|0)==1){X4(d,1,1);n=35}else n=35}else d=c}else n=35;if((n|0)==35){n=0;d=f[h>>2]|0}if(!d)d=0;else d=Lx(d,i)|0;f[i+36>>2]=d;d=f[o>>2]|0}e=e+4|0}while((e|0)!=(d|0))}while(0);if(c|0?(i=c+8|0,j=f[i>>2]|0,f[i>>2]=j-1,(j|0)==1):0)X4(c,1,1)}c=f[m>>2]|0;if((c|0)!=(f[l>>2]|0)){d=0;do{e=f[(f[c>>2]|0)+40>>2]|0;if(((e|0)!=0?(k=bFb(e,58480,58616,0)|0,(k|0)!=0):0)?(d|0)!=(k|0):0){j=k+8|0;f[j>>2]=(f[j>>2]|0)+1;if((d|0)!=0?(i=d+8|0,j=f[i>>2]|0,f[i>>2]=j-1,(j|0)==1):0){X4(d,1,1);d=k}else d=k}c=c+4|0}while((c|0)!=(f[l>>2]|0));if(!d){d=LDb(72)|0;BCa(d);k=d+12|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;f[d+24>>2]=2;f[d+28>>2]=0;f[d>>2]=88712;k=d+32|0;f[d+48>>2]=0;f[d+52>>2]=0;f[d+56>>2]=0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;b[k+12>>0]=0;Vx(d+60|0);f[d>>2]=89352;f[k>>2]=34963;f[d+36>>2]=35044;k=d+8|0;f[k>>2]=(f[k>>2]|0)+1}c=f[m>>2]|0;e=f[l>>2]|0;if((c|0)!=(e|0)){j=d+8|0;do{i=f[c>>2]|0;h=i+40|0;a=f[h>>2]|0;g=(a|0)==0;if(!(!g?(bFb(a,58480,58616,0)|0)!=0:0))if((a|0)!=(d|0)){if(g)e=0;else{Kx(a,f[i+36>>2]|0);e=f[h>>2]|0}if(((e|0)!=(d|0)?(f[h>>2]=d,f[j>>2]=(f[j>>2]|0)+1,e|0):0)?(g=e+8|0,k=f[g>>2]|0,f[g>>2]=k-1,(k|0)==1):0)X4(e,1,1);e=f[h>>2]|0;if(!e)e=0;else e=Lx(e,i)|0;f[i+36>>2]=e;e=f[l>>2]|0}c=c+4|0}while((c|0)!=(e|0));if(d|0)n=83}else n=83;if((n|0)==83?(k=d+8|0,n=f[k>>2]|0,f[k>>2]=n-1,(n|0)==1):0)X4(d,1,1);c=f[m>>2]|0}if(c|0){f[l>>2]=c;NDb(c)}e=f[p>>2]|0;if(e|0){c=f[o>>2]|0;if((c|0)==(e|0))c=e;else{do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(m=d+8|0,n=f[m>>2]|0,f[m>>2]=n-1,(n|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(e|0));c=f[p>>2]|0}f[o>>2]=e;NDb(c)}u=q;return}function pI(a){a=a|0;var b=0,c=0,d=0;d=a+200|0;b=a+204|0;if((f[b>>2]|0)==(f[d>>2]|0))return;a=0;do{c=mF(d,a)|0;c=f[c>>2]|0;if(c|0)jEa(c);a=a+1|0}while(a>>>0<(f[b>>2]|0)-(f[d>>2]|0)>>2>>>0);return}function qI(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;b=f[a+232>>2]|0;if(!b)b=0;else b=sk[f[(f[b>>2]|0)+168>>2]&2047](b)|0;c=f[a+236>>2]|0;if(c)b=(sk[f[(f[c>>2]|0)+168>>2]&2047](c)|0)+b|0;c=f[a+240>>2]|0;if(c)b=(sk[f[(f[c>>2]|0)+168>>2]&2047](c)|0)+b|0;c=f[a+244>>2]|0;if(c)b=(sk[f[(f[c>>2]|0)+168>>2]&2047](c)|0)+b|0;c=f[a+248>>2]|0;if(c)b=(sk[f[(f[c>>2]|0)+168>>2]&2047](c)|0)+b|0;h=a+252|0;i=a+256|0;d=f[i>>2]|0;c=f[h>>2]|0;if((d|0)!=(c|0)){g=0;e=d;while(1){d=f[c+(g<<2)>>2]|0;if(!d)d=e;else{b=(sk[f[(f[d>>2]|0)+168>>2]&2047](d)|0)+b|0;c=f[h>>2]|0;d=f[i>>2]|0}g=g+1|0;if(g>>>0>=d-c>>2>>>0)break;else e=d}}h=a+264|0;i=a+268|0;d=f[i>>2]|0;c=f[h>>2]|0;if((d|0)!=(c|0)){g=0;e=d;while(1){d=f[c+(g<<2)>>2]|0;if(!d)d=e;else{b=(sk[f[(f[d>>2]|0)+168>>2]&2047](d)|0)+b|0;c=f[h>>2]|0;d=f[i>>2]|0}g=g+1|0;if(g>>>0>=d-c>>2>>>0)break;else e=d}}c=f[a+220>>2]|0;d=a+224|0;if((c|0)==(f[d>>2]|0)){a=b;return a|0}do{a=f[c>>2]|0;b=((sk[f[(f[a>>2]|0)+216>>2]&2047](a)|0)<<2)+b|0;c=c+4|0}while((c|0)!=(f[d>>2]|0));return b|0}function rI(a,c){a=a|0;c=c|0;var d=0,e=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,v=0,w=0,x=0,y=0,z=0;z=u;u=u+16|0;x=z;y=f[c>>2]|0;if(!(b[a+182>>0]|0))d=0;else d=(b[a+183>>0]|0)!=0;if((b[y+760>>0]|0)==0?!(d&(b[y+758>>0]|0)!=0):0){u=z;return}s=f[y+124>>2]|0;t=y+832|0;v=f[t>>2]|0;if(!v){u=z;return}q=x+4|0;f[q>>2]=0;r=x+8|0;f[r>>2]=0;w=x+4|0;f[x>>2]=w;d=f[a+232>>2]|0;if(((d|0)!=0?(e=f[d+40>>2]|0,(e|0)!=0):0)?(f[w>>2]|0)==0:0){d=LDb(20)|0;f[d+16>>2]=e;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=w;f[w>>2]=d;f[x>>2]=d;Aq(d,d);d=(f[r>>2]|0)+1|0;f[r>>2]=d}else d=0;e=f[a+236>>2]|0;if((e|0)!=0?(i=f[e+40>>2]|0,(i|0)!=0):0){j=i;e=f[w>>2]|0;do if(e){h=q;while(1){g=f[e+16>>2]|0;if(i>>>0<g>>>0){g=f[e>>2]|0;if(!g){n=16;break}}else{if(g>>>0>=i>>>0){n=20;break}h=e+4|0;g=f[h>>2]|0;if(!g){n=19;break}else e=h}h=e;e=g}if((n|0)==16){i=e;g=e;break}else if((n|0)==19){i=e;g=h;break}else if((n|0)==20){i=e;g=h;break}}else{i=w;g=w}while(0);if(!(f[g>>2]|0)){d=LDb(20)|0;f[d+16>>2]=j;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=i;f[g>>2]=d;e=f[f[x>>2]>>2]|0;if(e){f[x>>2]=e;d=f[g>>2]|0}Aq(f[q>>2]|0,d);d=(f[r>>2]|0)+1|0;f[r>>2]=d}}e=f[a+240>>2]|0;if((e|0)!=0?(k=f[e+40>>2]|0,(k|0)!=0):0){j=k;e=f[w>>2]|0;do if(e){h=q;while(1){g=f[e+16>>2]|0;if(k>>>0<g>>>0){g=f[e>>2]|0;if(!g){n=33;break}}else{if(g>>>0>=k>>>0){n=37;break}h=e+4|0;g=f[h>>2]|0;if(!g){n=36;break}else e=h}h=e;e=g}if((n|0)==33){i=e;g=e;break}else if((n|0)==36){i=e;g=h;break}else if((n|0)==37){i=e;g=h;break}}else{i=w;g=w}while(0);if(!(f[g>>2]|0)){d=LDb(20)|0;f[d+16>>2]=j;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=i;f[g>>2]=d;e=f[f[x>>2]>>2]|0;if(e){f[x>>2]=e;d=f[g>>2]|0}Aq(f[q>>2]|0,d);d=(f[r>>2]|0)+1|0;f[r>>2]=d}}e=f[a+244>>2]|0;if((e|0)!=0?(l=f[e+40>>2]|0,(l|0)!=0):0){j=l;e=f[w>>2]|0;do if(e){h=q;while(1){g=f[e+16>>2]|0;if(l>>>0<g>>>0){g=f[e>>2]|0;if(!g){n=50;break}}else{if(g>>>0>=l>>>0){n=54;break}h=e+4|0;g=f[h>>2]|0;if(!g){n=53;break}else e=h}h=e;e=g}if((n|0)==50){i=e;g=e;break}else if((n|0)==53){i=e;g=h;break}else if((n|0)==54){i=e;g=h;break}}else{i=w;g=w}while(0);if(!(f[g>>2]|0)){d=LDb(20)|0;f[d+16>>2]=j;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=i;f[g>>2]=d;e=f[f[x>>2]>>2]|0;if(e){f[x>>2]=e;d=f[g>>2]|0}Aq(f[q>>2]|0,d);d=(f[r>>2]|0)+1|0;f[r>>2]=d}}e=f[a+248>>2]|0;if((e|0)!=0?(m=f[e+40>>2]|0,(m|0)!=0):0){j=m;e=f[w>>2]|0;do if(e){h=q;while(1){g=f[e+16>>2]|0;if(m>>>0<g>>>0){g=f[e>>2]|0;if(!g){n=67;break}}else{if(g>>>0>=m>>>0){n=71;break}h=e+4|0;g=f[h>>2]|0;if(!g){n=70;break}else e=h}h=e;e=g}if((n|0)==67){i=e;g=e;break}else if((n|0)==70){i=e;g=h;break}else if((n|0)==71){i=e;g=h;break}}else{i=w;g=w}while(0);if(!(f[g>>2]|0)){d=LDb(20)|0;f[d+16>>2]=j;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=i;f[g>>2]=d;e=f[f[x>>2]>>2]|0;if(e){f[x>>2]=e;d=f[g>>2]|0}Aq(f[q>>2]|0,d);d=(f[r>>2]|0)+1|0;f[r>>2]=d}}e=f[a+252>>2]|0;m=a+256|0;g=f[m>>2]|0;if((e|0)!=(g|0)){l=g;while(1){g=f[e>>2]|0;if((g|0)!=0?(o=f[g+40>>2]|0,(o|0)!=0):0){k=o;g=f[w>>2]|0;do if(g){i=q;while(1){h=f[g+16>>2]|0;if(o>>>0<h>>>0){h=f[g>>2]|0;if(!h){n=88;break}}else{if(h>>>0>=o>>>0){n=92;break}i=g+4|0;h=f[i>>2]|0;if(!h){n=91;break}else g=i}i=g;g=h}if((n|0)==88){j=g;h=g;break}else if((n|0)==91){j=g;h=i;break}else if((n|0)==92){j=g;h=i;break}}else{j=w;h=w}while(0);if(!(f[h>>2]|0)){d=LDb(20)|0;f[d+16>>2]=k;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=j;f[h>>2]=d;g=f[f[x>>2]>>2]|0;if(g){f[x>>2]=g;d=f[h>>2]|0}Aq(f[q>>2]|0,d);d=(f[r>>2]|0)+1|0;f[r>>2]=d;g=f[m>>2]|0}else g=l}else g=l;e=e+4|0;if((e|0)==(g|0))break;else l=g}}e=f[a+264>>2]|0;m=a+268|0;g=f[m>>2]|0;if((e|0)!=(g|0)){l=g;while(1){g=f[e>>2]|0;if((g|0)!=0?(p=f[g+40>>2]|0,(p|0)!=0):0){k=p;g=f[w>>2]|0;do if(g){i=q;while(1){h=f[g+16>>2]|0;if(p>>>0<h>>>0){h=f[g>>2]|0;if(!h){n=107;break}}else{if(h>>>0>=p>>>0){n=111;break}i=g+4|0;h=f[i>>2]|0;if(!h){n=110;break}else g=i}i=g;g=h}if((n|0)==107){j=g;h=g;break}else if((n|0)==110){j=g;h=i;break}else if((n|0)==111){j=g;h=i;break}}else{j=w;h=w}while(0);if(!(f[h>>2]|0)){d=LDb(20)|0;f[d+16>>2]=k;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=j;f[h>>2]=d;g=f[f[x>>2]>>2]|0;if(g){f[x>>2]=g;d=f[h>>2]|0}Aq(f[q>>2]|0,d);d=(f[r>>2]|0)+1|0;f[r>>2]=d;g=f[m>>2]|0}else g=l}else g=l;e=e+4|0;if((e|0)==(g|0))break;else l=g}}e=f[a+220>>2]|0;m=a+224|0;g=f[m>>2]|0;if((e|0)!=(g|0))do{k=f[(f[e>>2]|0)+40>>2]|0;if(k){l=k;h=f[w>>2]|0;do if(h){j=q;while(1){i=f[h+16>>2]|0;if(k>>>0<i>>>0){i=f[h>>2]|0;if(!i){n=124;break}}else{if(i>>>0>=k>>>0){n=128;break}j=h+4|0;i=f[j>>2]|0;if(!i){n=127;break}else h=j}j=h;h=i}if((n|0)==124){i=h;break}else if((n|0)==127){i=h;h=j;break}else if((n|0)==128){i=h;h=j;break}}else{i=w;h=w}while(0);if(!(f[h>>2]|0)){d=LDb(20)|0;f[d+16>>2]=l;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=i;f[h>>2]=d;g=f[f[x>>2]>>2]|0;if(g){f[x>>2]=g;d=f[h>>2]|0}Aq(f[q>>2]|0,d);d=(f[r>>2]|0)+1|0;f[r>>2]=d;g=f[m>>2]|0}}e=e+4|0}while((e|0)!=(g|0));if(d|0){d=f[x>>2]|0;if((d|0)!=(w|0)){g=d;while(1){d=Py(f[g+16>>2]|0,s)|0;if(d|0?b[d+36>>0]|0:0)pK(d);d=f[g+4>>2]|0;if(!d){e=g+8|0;d=f[e>>2]|0;if((f[d>>2]|0)!=(g|0))do{r=f[e>>2]|0;e=r+8|0;d=f[e>>2]|0}while((f[d>>2]|0)!=(r|0))}else while(1){e=f[d>>2]|0;if(!e)break;else d=e}if((d|0)==(w|0))break;else g=d}}if(!((b[y+761>>0]|0)==0?!((b[a+184>>0]|0)!=0&(b[y+759>>0]|0)!=0):0)){d=f[a+216>>2]|0;if(!d)h=wk[f[(f[a>>2]|0)+252>>2]&1023](a,c)|0;else h=xk[f[(f[d>>2]|0)+20>>2]&255](d,c,a)|0;d=mF(a+200|0,s)|0;e=f[d>>2]|0;do if((e|0)!=(h|0)){f[d>>2]=h;if(h|0){s=h+8|0;f[s>>2]=(f[s>>2]|0)+1}if(!e)break;r=e+8|0;s=f[r>>2]|0;f[r>>2]=s-1;if((s|0)!=1)break;X4(e,1,1)}while(0);g=y+140|0;f[g>>2]=h;d=f[h+24>>2]|0;e=y+748|0;if((f[e>>2]|0)!=(d|0)){Nk[f[(f[t>>2]|0)+1560>>2]&2047](d);f[e>>2]=d}_J(a,c);if(f[e>>2]|0){Nk[f[(f[t>>2]|0)+1560>>2]&2047](0);f[e>>2]=0}f[g>>2]=f[y+136>>2]}y=v+724|0;Vk[f[y>>2]&1023](34962,0);Vk[f[y>>2]&1023](34963,0)}qK(x,f[w>>2]|0);u=z;return}function sI(a,c){a=a|0;c=c|0;var d=0,e=0,g=0;e=f[c>>2]|0;g=LDb(108)|0;UDa(g,e);if(f[a+232>>2]|0)z8(g);if(f[a+240>>2]|0)B8(g);if(f[a+236>>2]|0)A8(g);if(f[a+244>>2]|0)XDa(g);if(f[a+248>>2]|0)YDa(g);c=f[a+252>>2]|0;d=f[a+256>>2]|0;if((c|0)!=(d|0))C8(g,d-c>>2);c=f[a+264>>2]|0;d=f[a+268>>2]|0;if((c|0)!=(d|0))D8(g,d-c>>2);if((b[e+761>>0]|0)==0?!((b[a+184>>0]|0)!=0&(b[e+759>>0]|0)!=0):0)return g|0;VDa(g);return g|0}function tI(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;j=u;u=u+16|0;d=j;if(b[a+276>>0]|0){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=1){u=j;return}i=Nv(Mv(2)|0,179432,107)|0;Ktb(d,i+(f[(f[i>>2]|0)+-12>>2]|0)|0);h=Bvb(d,295164)|0;h=wk[f[(f[h>>2]|0)+28>>2]&1023](h,10)|0;Cvb(d);rub(i,h)|0;Rtb(i)|0;u=j;return}i=f[c>>2]|0;if(!(b[a+182>>0]|0))d=0;else d=(b[a+183>>0]|0)!=0;if((b[i+760>>0]|0)==0?!(d&(b[i+758>>0]|0)!=0):0){d=0;e=0}else if(!(b[i+761>>0]|0)){d=1;e=(b[a+184>>0]|0)!=0&(b[i+759>>0]|0)!=0}else{d=1;e=1}g=f[i+140>>2]|0;b[g+20>>0]=d&1;h=(f[i+368>>2]|0)==2;if(h){cpa(i,179540,0)|0;_J(a,c);cpa(i,179580,0)|0}else _J(a,c);$J(a,c);if(!(e|d^1)){d=g+96|0;if(f[d>>2]|0){Vk[f[(f[g+16>>2]|0)+724>>2]&1023](34962,0);f[d>>2]=0}d=g+100|0;if(f[d>>2]|0){Vk[f[(f[g+16>>2]|0)+724>>2]&1023](34963,0);f[d>>2]=0}}if(!h){u=j;return}cpa(i,179638,0)|0;u=j;return}function uI(a,b){a=a|0;b=b|0;return 1}function vI(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;l=u;u=u+16|0;d=l+12|0;k=l;f[k>>2]=94132;f[k+4>>2]=c;j=k+8|0;f[j>>2]=0;c=f[a+232>>2]|0;if(!c){c=a+264|0;if((f[a+268>>2]|0)!=(f[c>>2]|0)){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>3){i=Nv(Mv(4)|0,179303,70)|0;Ktb(d,i+(f[(f[i>>2]|0)+-12>>2]|0)|0);h=Bvb(d,295164)|0;h=wk[f[(f[h>>2]|0)+28>>2]&1023](h,10)|0;Cvb(d);rub(i,h)|0;Rtb(i)|0}c=f[f[c>>2]>>2]|0;if(c|0){f[j>>2]=0;Vk[f[(f[c>>2]|0)+188>>2]&1023](c,k)}}}else{f[j>>2]=0;Vk[f[(f[c>>2]|0)+188>>2]&1023](c,k)}c=f[a+236>>2]|0;if(c|0){f[j>>2]=2;Vk[f[(f[c>>2]|0)+188>>2]&1023](c,k)}c=f[a+240>>2]|0;if(c|0){f[j>>2]=3;Vk[f[(f[c>>2]|0)+188>>2]&1023](c,k)}c=f[a+244>>2]|0;if(c|0){f[j>>2]=4;Vk[f[(f[c>>2]|0)+188>>2]&1023](c,k)}c=f[a+248>>2]|0;if(c|0){f[j>>2]=5;Vk[f[(f[c>>2]|0)+188>>2]&1023](c,k)}h=a+252|0;i=a+256|0;c=f[i>>2]|0;d=f[h>>2]|0;if((c|0)!=(d|0)){g=0;do{e=f[d+(g<<2)>>2]|0;if(e){f[j>>2]=g+8;Vk[f[(f[e>>2]|0)+188>>2]&1023](e,k);d=f[h>>2]|0;c=f[i>>2]|0}g=g+1|0}while(g>>>0<c-d>>2>>>0)}i=a+264|0;h=a+268|0;c=f[h>>2]|0;d=f[i>>2]|0;if((c|0)==(d|0)){u=l;return}g=0;do{e=f[d+(g<<2)>>2]|0;if(e){f[j>>2]=g;Vk[f[(f[e>>2]|0)+188>>2]&1023](e,k);c=f[h>>2]|0;d=f[i>>2]|0}g=g+1|0}while(g>>>0<c-d>>2>>>0);u=l;return}function wI(a,b){a=a|0;b=b|0;return 1}function xI(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;l=u;u=u+16|0;d=l+12|0;k=l;f[k>>2]=93968;f[k+4>>2]=c;j=k+8|0;f[j>>2]=0;c=f[a+232>>2]|0;if(!c){c=a+264|0;if((f[a+268>>2]|0)!=(f[c>>2]|0)){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>3){i=Nv(Mv(4)|0,179159,75)|0;Ktb(d,i+(f[(f[i>>2]|0)+-12>>2]|0)|0);h=Bvb(d,295164)|0;h=wk[f[(f[h>>2]|0)+28>>2]&1023](h,10)|0;Cvb(d);rub(i,h)|0;Rtb(i)|0}c=f[f[c>>2]>>2]|0;if(c|0){f[j>>2]=0;Vk[f[(f[c>>2]|0)+192>>2]&1023](c,k)}}}else{f[j>>2]=0;Vk[f[(f[c>>2]|0)+192>>2]&1023](c,k)}c=f[a+236>>2]|0;if(c|0){f[j>>2]=2;Vk[f[(f[c>>2]|0)+192>>2]&1023](c,k)}c=f[a+240>>2]|0;if(c|0){f[j>>2]=3;Vk[f[(f[c>>2]|0)+192>>2]&1023](c,k)}c=f[a+244>>2]|0;if(c|0){f[j>>2]=4;Vk[f[(f[c>>2]|0)+192>>2]&1023](c,k)}c=f[a+248>>2]|0;if(c|0){f[j>>2]=5;Vk[f[(f[c>>2]|0)+192>>2]&1023](c,k)}h=a+252|0;i=a+256|0;c=f[i>>2]|0;d=f[h>>2]|0;if((c|0)!=(d|0)){g=0;do{e=f[d+(g<<2)>>2]|0;if(e){f[j>>2]=g+8;Vk[f[(f[e>>2]|0)+192>>2]&1023](e,k);d=f[h>>2]|0;c=f[i>>2]|0}g=g+1|0}while(g>>>0<c-d>>2>>>0)}i=a+264|0;h=a+268|0;c=f[h>>2]|0;d=f[i>>2]|0;if((c|0)==(d|0)){u=l;return}g=0;do{e=f[d+(g<<2)>>2]|0;if(e){f[j>>2]=g;Vk[f[(f[e>>2]|0)+192>>2]&1023](e,k);c=f[h>>2]|0;d=f[i>>2]|0}g=g+1|0}while(g>>>0<c-d>>2>>>0);u=l;return}function yI(a,b){a=a|0;b=b|0;return 1}function zI(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;h=u;u=u+16|0;g=h;d=f[a+232>>2]|0;if(!d){d=a+264|0;if((f[a+268>>2]|0)==(f[d>>2]|0)){u=h;return}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>3){i=Nv(Mv(4)|0,178932,30)|0;Ktb(g,i+(f[(f[i>>2]|0)+-12>>2]|0)|0);j=Bvb(g,295164)|0;j=wk[f[(f[j>>2]|0)+28>>2]&1023](j,10)|0;Cvb(g);rub(i,j)|0;Rtb(i)|0}d=f[f[d>>2]>>2]|0;if(!d){u=h;return}}if(!(sk[f[(f[d>>2]|0)+216>>2]&2047](d)|0)){u=h;return}if((b[a+276>>0]|0?(e=sk[f[(f[d>>2]|0)+152>>2]&2047](d)|0,e|0):0)?bFb(e,63152,58768,0)|0:0){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=1){u=h;return}j=Nv(Mv(2)|0,178963,118)|0;Ktb(g,j+(f[(f[j>>2]|0)+-12>>2]|0)|0);i=Bvb(g,295164)|0;i=wk[f[(f[i>>2]|0)+28>>2]&1023](i,10)|0;Cvb(g);rub(j,i)|0;Rtb(j)|0;u=h;return}e=d+52|0;switch(f[e>>2]|0){case 27:{g=f[(f[c>>2]|0)+8>>2]|0;i=sk[f[(f[d>>2]|0)+216>>2]&2047](d)|0;j=sk[f[(f[d>>2]|0)+164>>2]&2047](d)|0;Zk[g&511](c,i,j);break}case 28:{g=f[(f[c>>2]|0)+12>>2]|0;i=sk[f[(f[d>>2]|0)+216>>2]&2047](d)|0;j=sk[f[(f[d>>2]|0)+164>>2]&2047](d)|0;Zk[g&511](c,i,j);break}case 29:{g=f[(f[c>>2]|0)+16>>2]|0;i=sk[f[(f[d>>2]|0)+216>>2]&2047](d)|0;j=sk[f[(f[d>>2]|0)+164>>2]&2047](d)|0;Zk[g&511](c,i,j);break}case 30:{g=f[(f[c>>2]|0)+20>>2]|0;i=sk[f[(f[d>>2]|0)+216>>2]&2047](d)|0;j=sk[f[(f[d>>2]|0)+164>>2]&2047](d)|0;Zk[g&511](c,i,j);break}case 31:{g=f[(f[c>>2]|0)+24>>2]|0;i=sk[f[(f[d>>2]|0)+216>>2]&2047](d)|0;j=sk[f[(f[d>>2]|0)+164>>2]&2047](d)|0;Zk[g&511](c,i,j);break}case 32:{g=f[(f[c>>2]|0)+28>>2]|0;i=sk[f[(f[d>>2]|0)+216>>2]&2047](d)|0;j=sk[f[(f[d>>2]|0)+164>>2]&2047](d)|0;Zk[g&511](c,i,j);break}default:{if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=1){u=h;return}j=iub(Nv(Mv(2)|0,179082,76)|0,f[e>>2]|0)|0;Ktb(g,j+(f[(f[j>>2]|0)+-12>>2]|0)|0);i=Bvb(g,295164)|0;i=wk[f[(f[i>>2]|0)+28>>2]&1023](i,10)|0;Cvb(g);rub(j,i)|0;Rtb(j)|0;u=h;return}}d=f[a+220>>2]|0;e=a+224|0;if((d|0)==(f[e>>2]|0)){u=h;return}do{j=f[d>>2]|0;Vk[f[(f[j>>2]|0)+204>>2]&1023](j,c);d=d+4|0}while((d|0)!=(f[e>>2]|0));u=h;return}function AI(a,b){a=a|0;b=b|0;return 1}function BI(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;h=u;u=u+16|0;g=h;d=f[a+232>>2]|0;if(!d){d=a+264|0;if((f[a+268>>2]|0)==(f[d>>2]|0)){u=h;return}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>3){i=Nv(Mv(4)|0,178645,80)|0;Ktb(g,i+(f[(f[i>>2]|0)+-12>>2]|0)|0);j=Bvb(g,295164)|0;j=wk[f[(f[j>>2]|0)+28>>2]&1023](j,10)|0;Cvb(g);rub(i,j)|0;Rtb(i)|0}d=f[f[d>>2]>>2]|0;if(!d){u=h;return}}if(!(sk[f[(f[d>>2]|0)+216>>2]&2047](d)|0)){u=h;return}if((b[a+276>>0]|0?(e=sk[f[(f[d>>2]|0)+152>>2]&2047](d)|0,e|0):0)?bFb(e,63152,58768,0)|0:0){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=1){u=h;return}j=Nv(Mv(2)|0,178726,123)|0;Ktb(g,j+(f[(f[j>>2]|0)+-12>>2]|0)|0);i=Bvb(g,295164)|0;i=wk[f[(f[i>>2]|0)+28>>2]&1023](i,10)|0;Cvb(g);rub(j,i)|0;Rtb(j)|0;u=h;return}e=d+52|0;switch(f[e>>2]|0){case 27:{g=f[(f[c>>2]|0)+8>>2]|0;i=sk[f[(f[d>>2]|0)+216>>2]&2047](d)|0;j=sk[f[(f[d>>2]|0)+164>>2]&2047](d)|0;Zk[g&511](c,i,j);break}case 28:{g=f[(f[c>>2]|0)+12>>2]|0;i=sk[f[(f[d>>2]|0)+216>>2]&2047](d)|0;j=sk[f[(f[d>>2]|0)+164>>2]&2047](d)|0;Zk[g&511](c,i,j);break}case 29:{g=f[(f[c>>2]|0)+16>>2]|0;i=sk[f[(f[d>>2]|0)+216>>2]&2047](d)|0;j=sk[f[(f[d>>2]|0)+164>>2]&2047](d)|0;Zk[g&511](c,i,j);break}case 30:{g=f[(f[c>>2]|0)+20>>2]|0;i=sk[f[(f[d>>2]|0)+216>>2]&2047](d)|0;j=sk[f[(f[d>>2]|0)+164>>2]&2047](d)|0;Zk[g&511](c,i,j);break}case 31:{g=f[(f[c>>2]|0)+24>>2]|0;i=sk[f[(f[d>>2]|0)+216>>2]&2047](d)|0;j=sk[f[(f[d>>2]|0)+164>>2]&2047](d)|0;Zk[g&511](c,i,j);break}case 32:{g=f[(f[c>>2]|0)+28>>2]|0;i=sk[f[(f[d>>2]|0)+216>>2]&2047](d)|0;j=sk[f[(f[d>>2]|0)+164>>2]&2047](d)|0;Zk[g&511](c,i,j);break}default:{if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=1){u=h;return}j=iub(Nv(Mv(2)|0,178850,81)|0,f[e>>2]|0)|0;Ktb(g,j+(f[(f[j>>2]|0)+-12>>2]|0)|0);i=Bvb(g,295164)|0;i=wk[f[(f[i>>2]|0)+28>>2]&1023](i,10)|0;Cvb(g);rub(j,i)|0;Rtb(j)|0;u=h;return}}d=f[a+220>>2]|0;e=a+224|0;if((d|0)==(f[e>>2]|0)){u=h;return}do{j=f[d>>2]|0;Vk[f[(f[j>>2]|0)+208>>2]&1023](j,c);d=d+4|0}while((d|0)!=(f[e>>2]|0));u=h;return}function CI(a){a=a|0;return}function DI(a){a=a|0;NDb(a);return}function EI(a,b){a=a|0;b=b|0;return}function FI(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[b+76>>2]|0;b=f[b+80>>2]|0;if((c|0)==(b|0))return;d=f[a+4>>2]|0;al[f[(f[d>>2]|0)+8>>2]&255](d,f[a+8>>2]|0,b-c|0,c);return}function GI(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[b+76>>2]|0;b=f[b+80>>2]|0;if((c|0)==(b|0))return;d=f[a+4>>2]|0;al[f[(f[d>>2]|0)+12>>2]&255](d,f[a+8>>2]|0,b-c>>1,c);return}function HI(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[b+76>>2]|0;b=f[b+80>>2]|0;if((c|0)==(b|0))return;d=f[a+4>>2]|0;al[f[(f[d>>2]|0)+16>>2]&255](d,f[a+8>>2]|0,b-c>>2,c);return}function II(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[b+76>>2]|0;b=f[b+80>>2]|0;if((c|0)==(b|0))return;d=f[a+4>>2]|0;al[f[(f[d>>2]|0)+20>>2]&255](d,f[a+8>>2]|0,b-c|0,c);return}function JI(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[b+76>>2]|0;b=f[b+80>>2]|0;if((c|0)==(b|0))return;d=f[a+4>>2]|0;al[f[(f[d>>2]|0)+24>>2]&255](d,f[a+8>>2]|0,b-c>>1,c);return}function KI(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[b+76>>2]|0;b=f[b+80>>2]|0;if((c|0)==(b|0))return;d=f[a+4>>2]|0;al[f[(f[d>>2]|0)+28>>2]&255](d,f[a+8>>2]|0,b-c>>2,c);return}function LI(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[b+76>>2]|0;b=f[b+80>>2]|0;if((c|0)==(b|0))return;d=f[a+4>>2]|0;al[f[(f[d>>2]|0)+32>>2]&255](d,f[a+8>>2]|0,b-c>>2,c);return}function MI(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[b+76>>2]|0;b=f[b+80>>2]|0;if((c|0)==(b|0))return;d=f[a+4>>2]|0;al[f[(f[d>>2]|0)+52>>2]&255](d,f[a+8>>2]|0,b-c>>3,c);return}function NI(a,b){a=a|0;b=b|0;return}function OI(a,b){a=a|0;b=b|0;return}function PI(a,b){a=a|0;b=b|0;return}function QI(a,b){a=a|0;b=b|0;return}function RI(a,b){a=a|0;b=b|0;return}function SI(a,b){a=a|0;b=b|0;return}function TI(a,b){a=a|0;b=b|0;return}function UI(a,b){a=a|0;b=b|0;return}function VI(a,b){a=a|0;b=b|0;return}function WI(a,b){a=a|0;b=b|0;return}function XI(a,b){a=a|0;b=b|0;return}function YI(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[b+76>>2]|0;b=f[b+80>>2]|0;if((c|0)==(b|0))return;d=f[a+4>>2]|0;al[f[(f[d>>2]|0)+48>>2]&255](d,f[a+8>>2]|0,b-c>>2,c);return}function ZI(a,b){a=a|0;b=b|0;return}function _I(a,b){a=a|0;b=b|0;return}function $I(a,b){a=a|0;b=b|0;return}function aJ(a,b){a=a|0;b=b|0;return}function bJ(a,b){a=a|0;b=b|0;return}function cJ(a,b){a=a|0;b=b|0;return}function dJ(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[b+76>>2]|0;b=f[b+80>>2]|0;if((c|0)==(b|0))return;d=f[a+4>>2]|0;al[f[(f[d>>2]|0)+36>>2]&255](d,f[a+8>>2]|0,b-c>>3,c);return}function eJ(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[b+76>>2]|0;b=f[b+80>>2]|0;if((c|0)==(b|0))return;d=f[a+4>>2]|0;al[f[(f[d>>2]|0)+40>>2]&255](d,f[a+8>>2]|0,(b-c|0)/12|0,c);return}function fJ(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[b+76>>2]|0;b=f[b+80>>2]|0;if((c|0)==(b|0))return;d=f[a+4>>2]|0;al[f[(f[d>>2]|0)+44>>2]&255](d,f[a+8>>2]|0,b-c>>4,c);return}function gJ(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[b+76>>2]|0;b=f[b+80>>2]|0;if((c|0)==(b|0))return;d=f[a+4>>2]|0;al[f[(f[d>>2]|0)+56>>2]&255](d,f[a+8>>2]|0,b-c>>4,c);return}function hJ(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[b+76>>2]|0;b=f[b+80>>2]|0;if((c|0)==(b|0))return;d=f[a+4>>2]|0;al[f[(f[d>>2]|0)+60>>2]&255](d,f[a+8>>2]|0,(b-c|0)/24|0,c);return}function iJ(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[b+76>>2]|0;b=f[b+80>>2]|0;if((c|0)==(b|0))return;d=f[a+4>>2]|0;al[f[(f[d>>2]|0)+64>>2]&255](d,f[a+8>>2]|0,b-c>>5,c);return}function jJ(a,b){a=a|0;b=b|0;return}function kJ(a,b){a=a|0;b=b|0;return}function lJ(a,b){a=a|0;b=b|0;return}function mJ(a,b){a=a|0;b=b|0;return}function nJ(a){a=a|0;return}function oJ(a){a=a|0;NDb(a);return}function pJ(a,b){a=a|0;b=b|0;return}function qJ(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[b+76>>2]|0;b=f[b+80>>2]|0;if((c|0)==(b|0))return;d=f[a+4>>2]|0;al[f[(f[d>>2]|0)+8>>2]&255](d,f[a+8>>2]|0,b-c|0,c);return}function rJ(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[b+76>>2]|0;b=f[b+80>>2]|0;if((c|0)==(b|0))return;d=f[a+4>>2]|0;al[f[(f[d>>2]|0)+12>>2]&255](d,f[a+8>>2]|0,b-c>>1,c);return}function sJ(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[b+76>>2]|0;b=f[b+80>>2]|0;if((c|0)==(b|0))return;d=f[a+4>>2]|0;al[f[(f[d>>2]|0)+16>>2]&255](d,f[a+8>>2]|0,b-c>>2,c);return}function tJ(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[b+76>>2]|0;b=f[b+80>>2]|0;if((c|0)==(b|0))return;d=f[a+4>>2]|0;al[f[(f[d>>2]|0)+20>>2]&255](d,f[a+8>>2]|0,b-c|0,c);return}function uJ(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[b+76>>2]|0;b=f[b+80>>2]|0;if((c|0)==(b|0))return;d=f[a+4>>2]|0;al[f[(f[d>>2]|0)+24>>2]&255](d,f[a+8>>2]|0,b-c>>1,c);return}function vJ(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[b+76>>2]|0;b=f[b+80>>2]|0;if((c|0)==(b|0))return;d=f[a+4>>2]|0;al[f[(f[d>>2]|0)+28>>2]&255](d,f[a+8>>2]|0,b-c>>2,c);return}function wJ(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[b+76>>2]|0;b=f[b+80>>2]|0;if((c|0)==(b|0))return;d=f[a+4>>2]|0;al[f[(f[d>>2]|0)+32>>2]&255](d,f[a+8>>2]|0,b-c>>2,c);return}function xJ(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[b+76>>2]|0;b=f[b+80>>2]|0;if((c|0)==(b|0))return;d=f[a+4>>2]|0;al[f[(f[d>>2]|0)+52>>2]&255](d,f[a+8>>2]|0,b-c>>3,c);return}function yJ(a,b){a=a|0;b=b|0;return}function zJ(a,b){a=a|0;b=b|0;return}function AJ(a,b){a=a|0;b=b|0;return}function BJ(a,b){a=a|0;b=b|0;return}function CJ(a,b){a=a|0;b=b|0;return}function DJ(a,b){a=a|0;b=b|0;return}function EJ(a,b){a=a|0;b=b|0;return}function FJ(a,b){a=a|0;b=b|0;return}function GJ(a,b){a=a|0;b=b|0;return}function HJ(a,b){a=a|0;b=b|0;return}function IJ(a,b){a=a|0;b=b|0;return}function JJ(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[b+76>>2]|0;b=f[b+80>>2]|0;if((c|0)==(b|0))return;d=f[a+4>>2]|0;al[f[(f[d>>2]|0)+48>>2]&255](d,f[a+8>>2]|0,b-c>>2,c);return}function KJ(a,b){a=a|0;b=b|0;return}function LJ(a,b){a=a|0;b=b|0;return}function MJ(a,b){a=a|0;b=b|0;return}function NJ(a,b){a=a|0;b=b|0;return}function OJ(a,b){a=a|0;b=b|0;return}function PJ(a,b){a=a|0;b=b|0;return}function QJ(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[b+76>>2]|0;b=f[b+80>>2]|0;if((c|0)==(b|0))return;d=f[a+4>>2]|0;al[f[(f[d>>2]|0)+36>>2]&255](d,f[a+8>>2]|0,b-c>>3,c);return}function RJ(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[b+76>>2]|0;b=f[b+80>>2]|0;if((c|0)==(b|0))return;d=f[a+4>>2]|0;al[f[(f[d>>2]|0)+40>>2]&255](d,f[a+8>>2]|0,(b-c|0)/12|0,c);return}function SJ(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[b+76>>2]|0;b=f[b+80>>2]|0;if((c|0)==(b|0))return;d=f[a+4>>2]|0;al[f[(f[d>>2]|0)+44>>2]&255](d,f[a+8>>2]|0,b-c>>4,c);return}function TJ(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[b+76>>2]|0;b=f[b+80>>2]|0;if((c|0)==(b|0))return;d=f[a+4>>2]|0;al[f[(f[d>>2]|0)+56>>2]&255](d,f[a+8>>2]|0,b-c>>4,c);return}function UJ(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[b+76>>2]|0;b=f[b+80>>2]|0;if((c|0)==(b|0))return;d=f[a+4>>2]|0;al[f[(f[d>>2]|0)+60>>2]&255](d,f[a+8>>2]|0,(b-c|0)/24|0,c);return}function VJ(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[b+76>>2]|0;b=f[b+80>>2]|0;if((c|0)==(b|0))return;d=f[a+4>>2]|0;al[f[(f[d>>2]|0)+64>>2]&255](d,f[a+8>>2]|0,b-c>>5,c);return}function WJ(a,b){a=a|0;b=b|0;return}function XJ(a,b){a=a|0;b=b|0;return}function YJ(a,b){a=a|0;b=b|0;return}function ZJ(a,b){a=a|0;b=b|0;return}function _J(a,c){a=a|0;c=c|0;var d=0,e=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,v=0,w=0,x=0,y=0;w=u;u=u+16|0;m=w;v=f[c>>2]|0;r=f[v+140>>2]|0;s=a+264|0;t=a+268|0;q=(f[s>>2]|0)==(f[t>>2]|0);i=v+844|0;if(!(b[v+856>>0]|0))aK(i);k=v+892|0;l=v+896|0;f[l>>2]=f[k>>2];b[v+904>>0]=b[v+131>>0]|0;if(!q?(h=f[s>>2]|0,(f[t>>2]|0)!=(h|0)):0){g=0;c=h;do{bK(i,g,f[c+(g<<2)>>2]|0);g=g+1|0;c=f[s>>2]|0}while(g>>>0<(f[t>>2]|0)-c>>2>>>0)}p=a+236|0;c=f[p>>2]|0;a:do if(c|0){switch(f[c+64>>2]|0){case 1:{c=cK(i,c)|0;if(!c)break a;Vk[f[(f[c>>2]|0)+16>>2]&1023](c,0);break a}case 2:break;default:break a}n=cK(i,c)|0;f[m>>2]=n;c=n;do if(n|0){g=f[l>>2]|0;if((g|0)==(f[v+900>>2]|0)){dK(k,m);break}else{f[g>>2]=c;f[l>>2]=(f[l>>2]|0)+4;break}}while(0)}while(0);n=a+240|0;c=f[n>>2]|0;b:do if(c|0){switch(f[c+64>>2]|0){case 1:{c=eK(i,c)|0;if(!c)break b;Vk[f[(f[c>>2]|0)+16>>2]&1023](c,0);break b}case 2:break;default:break b}j=eK(i,c)|0;f[m>>2]=j;c=j;do if(j|0){g=f[l>>2]|0;if((g|0)==(f[v+900>>2]|0)){dK(k,m);break}else{f[g>>2]=c;f[l>>2]=(f[l>>2]|0)+4;break}}while(0)}while(0);j=a+244|0;c=f[j>>2]|0;c:do if(c|0){switch(f[c+64>>2]|0){case 1:{c=fK(i,c)|0;if(!c)break c;Vk[f[(f[c>>2]|0)+16>>2]&1023](c,0);break c}case 2:break;default:break c}h=fK(i,c)|0;f[m>>2]=h;c=h;do if(h|0){g=f[l>>2]|0;if((g|0)==(f[v+900>>2]|0)){dK(k,m);break}else{f[g>>2]=c;f[l>>2]=(f[l>>2]|0)+4;break}}while(0)}while(0);h=a+248|0;c=f[h>>2]|0;d:do if(c|0){switch(f[c+64>>2]|0){case 1:{c=gK(i,c)|0;if(!c)break d;Vk[f[(f[c>>2]|0)+16>>2]&1023](c,0);break d}case 2:break;default:break d}i=gK(i,c)|0;f[m>>2]=i;c=i;do if(i|0){g=f[l>>2]|0;if((g|0)==(f[v+900>>2]|0)){dK(k,m);break}else{f[g>>2]=c;f[l>>2]=(f[l>>2]|0)+4;break}}while(0)}while(0);if(!((b[v+761>>0]|0)==0?!((b[a+184>>0]|0)!=0&(b[v+759>>0]|0)!=0):0))o=45;if((o|0)==45?(b[r+104>>0]|0)==0:0){u=w;return}l=r+72|0;m=r+84|0;c=f[l>>2]|0;k=f[m>>2]|0;f[l>>2]=k;f[m>>2]=c;l=r+76|0;o=r+88|0;g=f[l>>2]|0;f[o>>2]=g;y=r+80|0;i=r+92|0;x=f[y>>2]|0;f[y>>2]=f[i>>2];f[i>>2]=x;f[l>>2]=k;if((c|0)!=(g|0))do{b[(f[c>>2]|0)+20>>0]=0;c=c+4|0}while((c|0)!=(g|0));c=f[a+232>>2]|0;if(c|0)hEa(r,f[r+28>>2]|0,v,c);c=f[p>>2]|0;if(c|0?(f[c+64>>2]|0)==4:0)hEa(r,f[r+32>>2]|0,v,c);c=f[n>>2]|0;if(c|0?(f[c+64>>2]|0)==4:0)hEa(r,f[r+36>>2]|0,v,c);c=f[j>>2]|0;if(c|0?(f[c+64>>2]|0)==4:0)hEa(r,f[r+40>>2]|0,v,c);c=f[h>>2]|0;if(c|0?(f[c+64>>2]|0)==4:0)hEa(r,f[r+44>>2]|0,v,c);l=a+252|0;j=a+256|0;g=f[j>>2]|0;c=f[l>>2]|0;if((g|0)!=(c|0)){k=r+48|0;i=0;do{h=f[c+(i<<2)>>2]|0;if(h){hEa(r,f[(f[k>>2]|0)+(i<<2)>>2]|0,v,h);c=f[l>>2]|0;g=f[j>>2]|0}i=i+1|0}while(i>>>0<g-c>>2>>>0)}if(!q?(d=f[t>>2]|0,e=f[s>>2]|0,(d|0)!=(e|0)):0){h=r+60|0;g=0;while(1){c=f[e+(g<<2)>>2]|0;do if(!c)c=e;else{if((f[c+64>>2]|0)!=4){c=e;break}hEa(r,f[(f[h>>2]|0)+(g<<2)>>2]|0,v,c);c=f[s>>2]|0;d=f[t>>2]|0}while(0);g=g+1|0;if(g>>>0>=d-c>>2>>>0)break;else e=c}}c=f[m>>2]|0;d=f[o>>2]|0;if((c|0)!=(d|0)){do{e=f[c>>2]|0;if(!(b[e+20>>0]|0)){Vk[f[(f[e>>2]|0)+44>>2]&1023](e,v);f[e+12>>2]=0;f[e+16>>2]=-1;d=f[o>>2]|0}c=c+4|0}while((c|0)!=(d|0));c=f[m>>2]|0}f[o>>2]=c;u=w;return}function $J(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;l=f[c>>2]|0;if(!(b[a+182>>0]|0))c=0;else c=(b[a+183>>0]|0)!=0;if(!(b[l+760>>0]|0))k=c&(b[l+758>>0]|0)!=0;else k=1;g=l+892|0;h=l+896|0;j=a+220|0;i=a+224|0;e=f[j>>2]|0;c=e;if((f[i>>2]|0)==(e|0))return;d=f[g>>2]|0;e=f[h>>2]|0;if((d|0)==(e|0)){a=0;do{h=f[c+(a<<2)>>2]|0;Zk[f[(f[h>>2]|0)+200>>2]&511](h,l,k);a=a+1|0;c=f[j>>2]|0}while((a|0)!=((f[i>>2]|0)-c>>2|0));return}a=0;while(1){if((d|0)!=(e|0)){c=d;do{e=f[c>>2]|0;Vk[f[(f[e>>2]|0)+16>>2]&1023](e,a);c=c+4|0}while((c|0)!=(f[h>>2]|0));c=f[j>>2]|0}c=f[c+(a<<2)>>2]|0;Zk[f[(f[c>>2]|0)+200>>2]&511](c,l,k);a=a+1|0;c=f[j>>2]|0;if((a|0)==((f[i>>2]|0)-c>>2|0))break;d=f[g>>2]|0;e=f[h>>2]|0}return}function aK(a){a=a|0;var c=0,d=0,e=0,g=0;c=a+12|0;if(b[c>>0]|0)return;b[c>>0]=1;g=LDb(12)|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[a+20>>2]=g;g=LDb(12)|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[a+24>>2]=g;g=LDb(12)|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[a+28>>2]=g;g=LDb(12)|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[a+32>>2]=g;g=a+48|0;c=a+52|0;a=f[g>>2]|0;d=(f[c>>2]|0)-a|0;e=d>>2;if(e>>>0<5){oK(g,5-e|0);return}if((d|0)==20)return;f[c>>2]=a+20;return}function bK(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;j=u;u=u+16|0;g=j;if(!c){u=j;return}switch(f[c+64>>2]|0){case 1:{e=a+36|0;d=f[e>>2]|0;if((f[a+40>>2]|0)-d>>2>>>0<=b>>>0){hK(a,b);d=f[e>>2]|0}a=f[d+(b<<2)>>2]|0;d=f[c+52>>2]|0;e=f[a>>2]|0;if(d>>>0>=(f[a+4>>2]|0)-e>>2>>>0){u=j;return}d=f[e+(d<<2)>>2]|0;if(!d){u=j;return}a=f[(f[d>>2]|0)+12>>2]|0;c=sk[f[(f[c>>2]|0)+164>>2]&2047](c)|0;Vk[a&1023](d,c);Vk[f[(f[d>>2]|0)+16>>2]&1023](d,0);u=j;return}case 2:{e=a+36|0;d=f[e>>2]|0;if((f[a+40>>2]|0)-d>>2>>>0<=b>>>0){hK(a,b);d=f[e>>2]|0}b=f[d+(b<<2)>>2]|0;d=f[c+52>>2]|0;e=f[b>>2]|0;do if(d>>>0<(f[b+4>>2]|0)-e>>2>>>0?(h=f[e+(d<<2)>>2]|0,(h|0)!=0):0){e=f[(f[h>>2]|0)+12>>2]|0;d=sk[f[(f[c>>2]|0)+164>>2]&2047](c)|0;Vk[e&1023](h,d);f[g>>2]=h;d=a+52|0;e=f[d>>2]|0;if((e|0)==(f[a+56>>2]|0)){dK(a+48|0,g);break}else{f[e>>2]=h;f[d>>2]=(f[d>>2]|0)+4;break}}else i=14;while(0);if((i|0)==14)f[g>>2]=0;u=j;return}default:{u=j;return}}}function cK(a,c){a=a|0;c=c|0;var d=0,e=0,g=0;if(!(b[a+60>>0]|0)){d=f[a+20>>2]|0;if(!c){c=0;return c|0}a=f[c+52>>2]|0;e=f[d>>2]|0;if(a>>>0>=(f[d+4>>2]|0)-e>>2>>>0){c=0;return c|0}d=f[e+(a<<2)>>2]|0;if(!d){c=0;return c|0}g=f[(f[d>>2]|0)+12>>2]|0;c=sk[f[(f[c>>2]|0)+164>>2]&2047](c)|0;Vk[g&1023](d,c);c=d;return c|0}g=f[(f[a+16>>2]|0)+412>>2]|0;e=a+36|0;d=f[e>>2]|0;if((f[a+40>>2]|0)-d>>2>>>0<=g>>>0){hK(a,g);d=f[e>>2]|0}d=f[d+(g<<2)>>2]|0;if(!c){c=0;return c|0}a=f[c+52>>2]|0;e=f[d>>2]|0;if(a>>>0>=(f[d+4>>2]|0)-e>>2>>>0){c=0;return c|0}d=f[e+(a<<2)>>2]|0;if(!d){c=0;return c|0}g=f[(f[d>>2]|0)+12>>2]|0;c=sk[f[(f[c>>2]|0)+164>>2]&2047](c)|0;Vk[g&1023](d,c);c=d;return c|0}function dK(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;i=a+4|0;j=f[a>>2]|0;k=(f[i>>2]|0)-j|0;g=k>>2;c=g+1|0;if(c>>>0>1073741823)KEb(a);l=a+8|0;e=(f[l>>2]|0)-j|0;h=e>>1;h=e>>2>>>0<536870911?(h>>>0<c>>>0?c:h):1073741823;do if(h)if(h>>>0>1073741823){l=mb(8)|0;RDb(l,238482);f[l>>2]=144484;qb(l|0,84192,1464)}else{e=LDb(h<<2)|0;d=e;break}else{d=0;e=0}while(0);c=d+(g<<2)|0;f[c>>2]=f[b>>2];if((k|0)>0)gGb(e|0,j|0,k|0)|0;f[a>>2]=d;f[i>>2]=c+4;f[l>>2]=d+(h<<2);if(!j)return;NDb(j);return}function eK(a,c){a=a|0;c=c|0;var d=0,e=0,g=0;if(!(b[a+60>>0]|0)){d=f[a+24>>2]|0;if(!c){c=0;return c|0}a=f[c+52>>2]|0;e=f[d>>2]|0;if(a>>>0>=(f[d+4>>2]|0)-e>>2>>>0){c=0;return c|0}d=f[e+(a<<2)>>2]|0;if(!d){c=0;return c|0}g=f[(f[d>>2]|0)+12>>2]|0;c=sk[f[(f[c>>2]|0)+164>>2]&2047](c)|0;Vk[g&1023](d,c);c=d;return c|0}g=f[(f[a+16>>2]|0)+452>>2]|0;e=a+36|0;d=f[e>>2]|0;if((f[a+40>>2]|0)-d>>2>>>0<=g>>>0){hK(a,g);d=f[e>>2]|0}d=f[d+(g<<2)>>2]|0;if(!c){c=0;return c|0}a=f[c+52>>2]|0;e=f[d>>2]|0;if(a>>>0>=(f[d+4>>2]|0)-e>>2>>>0){c=0;return c|0}d=f[e+(a<<2)>>2]|0;if(!d){c=0;return c|0}g=f[(f[d>>2]|0)+12>>2]|0;c=sk[f[(f[c>>2]|0)+164>>2]&2047](c)|0;Vk[g&1023](d,c);c=d;return c|0}function fK(a,c){a=a|0;c=c|0;var d=0,e=0,g=0;if(!(b[a+60>>0]|0)){d=f[a+28>>2]|0;if(!c){c=0;return c|0}a=f[c+52>>2]|0;e=f[d>>2]|0;if(a>>>0>=(f[d+4>>2]|0)-e>>2>>>0){c=0;return c|0}d=f[e+(a<<2)>>2]|0;if(!d){c=0;return c|0}g=f[(f[d>>2]|0)+12>>2]|0;c=sk[f[(f[c>>2]|0)+164>>2]&2047](c)|0;Vk[g&1023](d,c);c=d;return c|0}g=f[(f[a+16>>2]|0)+492>>2]|0;e=a+36|0;d=f[e>>2]|0;if((f[a+40>>2]|0)-d>>2>>>0<=g>>>0){hK(a,g);d=f[e>>2]|0}d=f[d+(g<<2)>>2]|0;if(!c){c=0;return c|0}a=f[c+52>>2]|0;e=f[d>>2]|0;if(a>>>0>=(f[d+4>>2]|0)-e>>2>>>0){c=0;return c|0}d=f[e+(a<<2)>>2]|0;if(!d){c=0;return c|0}g=f[(f[d>>2]|0)+12>>2]|0;c=sk[f[(f[c>>2]|0)+164>>2]&2047](c)|0;Vk[g&1023](d,c);c=d;return c|0}function gK(a,c){a=a|0;c=c|0;var d=0,e=0,g=0;if(!(b[a+60>>0]|0)){d=f[a+32>>2]|0;if(!c){c=0;return c|0}a=f[c+52>>2]|0;e=f[d>>2]|0;if(a>>>0>=(f[d+4>>2]|0)-e>>2>>>0){c=0;return c|0}d=f[e+(a<<2)>>2]|0;if(!d){c=0;return c|0}g=f[(f[d>>2]|0)+12>>2]|0;c=sk[f[(f[c>>2]|0)+164>>2]&2047](c)|0;Vk[g&1023](d,c);c=d;return c|0}g=f[(f[a+16>>2]|0)+532>>2]|0;e=a+36|0;d=f[e>>2]|0;if((f[a+40>>2]|0)-d>>2>>>0<=g>>>0){hK(a,g);d=f[e>>2]|0}d=f[d+(g<<2)>>2]|0;if(!c){c=0;return c|0}a=f[c+52>>2]|0;e=f[d>>2]|0;if(a>>>0>=(f[d+4>>2]|0)-e>>2>>>0){c=0;return c|0}d=f[e+(a<<2)>>2]|0;if(!d){c=0;return c|0}g=f[(f[d>>2]|0)+12>>2]|0;c=sk[f[(f[c>>2]|0)+164>>2]&2047](c)|0;Vk[g&1023](d,c);c=d;return c|0}function hK(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=u;u=u+16|0;k=n;c=f[(f[a+16>>2]|0)+832>>2]|0;l=a+36|0;m=a+40|0;d=(f[m>>2]|0)-(f[l>>2]|0)>>2;if(d>>>0>b>>>0){u=n;return}g=a+44|0;h=c+272|0;i=c+296|0;j=c+320|0;e=c+376|0;a=d;do{c=LDb(12)|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[k>>2]=c;d=f[m>>2]|0;if(d>>>0<(f[g>>2]|0)>>>0){f[d>>2]=c;f[m>>2]=(f[m>>2]|0)+4}else iK(l,k);d=f[(f[l>>2]|0)+(a<<2)>>2]|0;jK(d,a,7,f[h>>2]|0,1);jK(d,a,27,f[i>>2]|0,2);jK(d,a,28,f[j>>2]|0,3);jK(d,a,29,f[e>>2]|0,4);a=a+1|0}while(a>>>0<=b>>>0);u=n;return}function iK(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;i=a+4|0;j=f[a>>2]|0;k=(f[i>>2]|0)-j|0;g=k>>2;c=g+1|0;if(c>>>0>1073741823)KEb(a);l=a+8|0;e=(f[l>>2]|0)-j|0;h=e>>1;h=e>>2>>>0<536870911?(h>>>0<c>>>0?c:h):1073741823;do if(h)if(h>>>0>1073741823){l=mb(8)|0;RDb(l,238482);f[l>>2]=144484;qb(l|0,84192,1464)}else{e=LDb(h<<2)|0;d=e;break}else{d=0;e=0}while(0);c=d+(g<<2)|0;f[c>>2]=f[b>>2];if((k|0)>0)gGb(e|0,j|0,k|0)|0;f[a>>2]=d;f[i>>2]=c+4;f[l>>2]=d+(h<<2);if(!j)return;NDb(j);return}function jK(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0;k=a+4|0;g=f[k>>2]|0;i=f[a>>2]|0;j=g-i>>2;do if(j>>>0<=c>>>0){h=c+1|0;if(h>>>0>j>>>0){kK(a,h-j|0);break}if(h>>>0<j>>>0){i=i+(h<<2)|0;if((i|0)!=(g|0))do{g=g+-4|0;h=f[g>>2]|0;if(h|0?(l=h+8|0,j=f[l>>2]|0,f[l>>2]=j-1,(j|0)==1):0)X4(h,1,1);f[g>>2]=0}while((g|0)!=(i|0));f[k>>2]=i}}while(0);if(!d)i=0;else{i=LDb(28)|0;BCa(i);f[i>>2]=94296;f[i+12>>2]=d;f[i+16>>2]=b;f[i+20>>2]=e;f[i+24>>2]=0}g=(f[a>>2]|0)+(c<<2)|0;h=f[g>>2]|0;if((h|0)==(i|0))return;f[g>>2]=i;if(i|0){l=i+8|0;f[l>>2]=(f[l>>2]|0)+1}if(!h)return;c=h+8|0;l=f[c>>2]|0;f[c>>2]=l-1;if((l|0)!=1)return;X4(h,1,1);return}function kK(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=a+8|0;e=f[m>>2]|0;n=a+4|0;d=f[n>>2]|0;c=d;if(e-d>>2>>>0>=b>>>0){iGb(d|0,0,b<<2|0)|0;f[n>>2]=c+(b<<2);return}j=f[a>>2]|0;h=d-j>>2;d=h+b|0;g=j;if(d>>>0>1073741823)KEb(a);l=e-j|0;e=l>>1;e=l>>2>>>0<536870911?(e>>>0<d>>>0?d:e):1073741823;do if(e)if(e>>>0>1073741823){n=mb(8)|0;RDb(n,238482);f[n>>2]=144484;qb(n|0,84192,1464)}else{i=LDb(e<<2)|0;break}else i=0;while(0);d=i+(h<<2)|0;l=i+(e<<2)|0;iGb(d|0,0,b<<2|0)|0;k=d+(b<<2)|0;if((c|0)==(g|0))e=j;else{b=h+-1-((c+-4+(0-j)|0)>>>2)|0;while(1){c=c+-4|0;e=f[c>>2]|0;f[d+-4>>2]=e;if(e|0){j=e+8|0;f[j>>2]=(f[j>>2]|0)+1}if((c|0)==(g|0))break;else d=d+-4|0}e=f[a>>2]|0;d=i+(b<<2)|0;g=e;c=f[n>>2]|0}f[a>>2]=d;f[n>>2]=k;f[m>>2]=l;if((c|0)!=(g|0))do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(m=d+8|0,n=f[m>>2]|0,f[m>>2]=n-1,(n|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(g|0));if(!e)return;NDb(e);return}function lK(a){a=a|0;V4(a);NDb(a);return}function mK(a,b){a=a|0;b=b|0;f[a+24>>2]=b;return}function nK(a,b){a=a|0;b=b|0;b=(f[a+24>>2]|0)+((W(f[a+20>>2]|0,b)|0)<<2)|0;Vk[f[a+12>>2]&1023](f[a+16>>2]|0,b);return}function oK(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;k=a+8|0;d=f[k>>2]|0;l=a+4|0;c=f[l>>2]|0;if(d-c>>2>>>0>=b>>>0){do{f[c>>2]=0;c=(f[l>>2]|0)+4|0;f[l>>2]=c;b=b+-1|0}while((b|0)!=0);return}j=f[a>>2]|0;g=c-j|0;h=g>>2;i=h+b|0;if(i>>>0>1073741823)KEb(a);d=d-j|0;e=d>>1;e=d>>2>>>0<536870911?(e>>>0<i>>>0?i:e):1073741823;do if(e)if(e>>>0>1073741823){l=mb(8)|0;RDb(l,238482);f[l>>2]=144484;qb(l|0,84192,1464)}else{d=LDb(e<<2)|0;c=d;break}else{c=0;d=0}while(0);iGb(c+(h<<2)|0,0,b<<2|0)|0;if((g|0)>0)gGb(d|0,j|0,g|0)|0;f[a>>2]=c;f[l>>2]=c+(i<<2);f[k>>2]=c+(e<<2);if(!j)return;NDb(j);return}function pK(a){a=a|0;var c=0,d=0,e=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,v=0,w=0,x=0,y=0,z=0,A=0,B=0;A=u;u=u+32|0;y=A;b[a+36>>0]=0;w=a+40|0;q=a+52|0;e=f[q>>2]|0;rK(w,(f[e+52>>2]|0)-(f[e+48>>2]|0)>>2);e=f[q>>2]|0;x=a+44|0;if((f[e+52>>2]|0)==(f[e+48>>2]|0)){i=0;c=0}else{j=y+12|0;k=y+4|0;l=y+8|0;m=y+16|0;n=a+48|0;g=0;d=0;c=0;do{i=f[(f[e+48>>2]|0)+(c<<2)>>2]|0;e=f[x>>2]|0;v=f[w>>2]|0;h=v;do if(c>>>0<((e-v|0)/20|0)>>>0){e=h+(c*20|0)+16|0;if((!g?(f[e>>2]|0)==(i|0):0)?(o=h+(c*20|0)+8|0,v=f[o>>2]|0,(v|0)==(sk[f[(f[i>>2]|0)+168>>2]&2047](i)|0)):0){d=(f[o>>2]|0)+d|0;if(!(d&3)){g=0;break}d=d+4&-4;g=0;break}v=h+(c*20|0)+12|0;B=h+(c*20|0)+8|0;t=(f[B>>2]|0)+(f[v>>2]|0)|0;f[h+(c*20|0)>>2]=0;f[h+(c*20|0)+4>>2]=16777215;f[v>>2]=d;v=sk[f[(f[i>>2]|0)+168>>2]&2047](i)|0;f[B>>2]=v;f[e>>2]=i;v=v+d|0;d=v;g=g|(((t&3|0)==0?t:t+4&-4)|0)!=(v|0)}else{f[y>>2]=0;f[y+4>>2]=0;f[y+8>>2]=0;f[y+12>>2]=0;f[y+16>>2]=0;f[j>>2]=d;f[k>>2]=16777215;if(!i)h=0;else{h=sk[f[(f[i>>2]|0)+168>>2]&2047](i)|0;e=f[x>>2]|0}f[l>>2]=h;f[m>>2]=i;d=h+d|0;if((e|0)==(f[n>>2]|0))sK(w,y);else{f[e>>2]=f[y>>2];f[e+4>>2]=f[k>>2];f[e+8>>2]=h;f[e+12>>2]=f[j>>2];f[e+16>>2]=i;f[x>>2]=e+20}d=(d&3|0)==0?d:d+4&-4}while(0);c=c+1|0;e=f[q>>2]|0}while(c>>>0<(f[e+52>>2]|0)-(f[e+48>>2]|0)>>2>>>0);i=d}e=f[x>>2]|0;d=f[w>>2]|0;if(c>>>0<((e-d|0)/20|0)>>>0?(p=d+(c*20|0)|0,(p|0)!=(e|0)):0)f[x>>2]=p;t=a+72|0;v=a+20|0;g=a+16|0;Vk[f[(f[t>>2]|0)+724>>2]&1023](f[v>>2]|0,f[g>>2]|0);g=f[g>>2]|0;c=f[q>>2]|0;d=c+12|0;e=f[(f[t>>2]|0)+1748>>2]|0;if(e|0?(s=b[d+11>>0]|0,r=s<<24>>24<0,s=r?f[c+16>>2]|0:s&255,s|0):0)al[e&255](33504,g,s,r?f[d>>2]|0:d);l=a+28|0;c=f[l>>2]|0;if(i>>>0>c>>>0){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>3){B=Nv(jub(Nv(Mv(4)|0,179747,13)|0,i)|0,179761,17)|0;B=jub(B,f[l>>2]|0)|0;Ktb(y,B+(f[(f[B>>2]|0)+-12>>2]|0)|0);s=Bvb(y,295164)|0;s=wk[f[(f[s>>2]|0)+28>>2]&1023](s,10)|0;Cvb(y);rub(B,s)|0;Rtb(B)|0}c=f[l>>2]|0;f[l>>2]=i;g=a+56|0;h=f[g>>2]|0;if(!h)c=i;else{k=i-c|0;i=Uy(f[h+24>>2]|0,v)|0;if((i|0)!=(h|0)&(i|0)!=0){j=h+44|0;f[j>>2]=(f[j>>2]|0)+-1;j=a+60|0;d=f[j>>2]|0;e=a+64|0;c=f[e>>2]|0;if(!d)f[h+72>>2]=c;else{f[d+64>>2]=c;c=f[e>>2]|0}f[((c|0)==0?h+76|0:c+60|0)>>2]=d;f[e>>2]=0;f[j>>2]=0;f[g>>2]=i;c=i+44|0;f[c>>2]=(f[c>>2]|0)+1;c=f[i+24>>2]|0;f[a+68>>2]=f[c+56>>2];e=i+76|0;d=f[e>>2]|0;if(d|0)f[d+64>>2]=a;f[j>>2]=d;d=i+72|0;if(!(f[d>>2]|0))f[d>>2]=a;f[e>>2]=a}else c=f[(f[g>>2]|0)+24>>2]|0;c=c+36|0;f[c>>2]=k+(f[c>>2]|0);c=f[l>>2]|0}}d=a+32|0;if((f[d>>2]|0)==(c|0))p=0;else{f[d>>2]=c;if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>3){B=Nv(Mv(4)|0,179779,50)|0;B=jub(B,f[d>>2]|0)|0;Ktb(y,B+(f[(f[B>>2]|0)+-12>>2]|0)|0);s=Bvb(y,295164)|0;s=wk[f[(f[s>>2]|0)+28>>2]&1023](s,10)|0;Cvb(y);rub(B,s)|0;Rtb(B)|0}al[f[(f[t>>2]|0)+728>>2]&255](f[v>>2]|0,f[l>>2]|0,0,f[a+24>>2]|0);p=1}c=f[w>>2]|0;if((c|0)==(f[x>>2]|0)){u=A;return}k=y+4|0;l=y+16|0;m=y+20|0;n=y+8|0;o=y+12|0;do{h=c+16|0;g=f[h>>2]|0;do if(g|0){if(!p){d=c+4|0;e=f[g+32>>2]|0;if((f[d>>2]|0)==(e|0))break}else{d=c+4|0;e=f[g+32>>2]|0}f[c>>2]=0;f[d>>2]=e;d=sk[f[(f[g>>2]|0)+128>>2]&2047](g)|0;if((d|0?(z=f[d+84>>2]|0,z|0):0)?(z|0)!=(f[d+72>>2]|0):0){e=f[c+12>>2]|0;f[y>>2]=d;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;f[k+12>>2]=0;f[k+16>>2]=0;tK(y);d=f[l>>2]|0;a:do if(d|0){b:while(1){j=f[m>>2]|0;al[f[(f[t>>2]|0)+732>>2]&255](f[v>>2]|0,e,j,d);i=f[y>>2]|0;if(!i){d=64;break}d=f[i+84>>2]|0;if(!d){d=64;break}if((d|0)==(f[i+72>>2]|0)){d=64;break}w=f[i+116>>2]|0;B=f[i+120>>2]|0;d=(f[k>>2]|0)+1|0;f[k>>2]=d;d=(d|0)>=(f[i+76>>2]|0);g=B;h=w;do if((w|0)==(B|0)){if(!d)break;f[k>>2]=0;B=(f[n>>2]|0)+1|0;f[n>>2]=B;if((B|0)>=(f[i+80>>2]|0)){d=72;break b}}else{if(!d)break;f[k>>2]=0;B=(f[n>>2]|0)+1|0;f[n>>2]=B;if((B|0)<(f[i+80>>2]|0))break;f[n>>2]=0;B=(f[o>>2]|0)+1|0;f[o>>2]=B;if(B>>>0>=((g-h>>2)+1|0)>>>0){d=69;break b}}while(0);tK(y);d=f[l>>2]|0;if(!d)break a;else e=j+e|0}if((d|0)==64){f[l>>2]=0;f[m>>2]=0;break}else if((d|0)==69){f[l>>2]=0;f[m>>2]=0;break}else if((d|0)==72){f[l>>2]=0;f[m>>2]=0;break}}while(0);break}r=f[(f[t>>2]|0)+732>>2]|0;s=f[v>>2]|0;a=f[c+12>>2]|0;w=f[c+8>>2]|0;B=f[h>>2]|0;B=sk[f[(f[B>>2]|0)+164>>2]&2047](B)|0;al[r&255](s,a,w,B)}while(0);c=c+20|0}while((c|0)!=(f[x>>2]|0));u=A;return}function qK(a,b){a=a|0;b=b|0;if(!b)return;else{qK(a,f[b>>2]|0);qK(a,f[b+4>>2]|0);NDb(b);return}}function rK(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;i=a+8|0;c=f[a>>2]|0;e=c;if((((f[i>>2]|0)-c|0)/20|0)>>>0>=b>>>0)return;j=a+4|0;if(b>>>0>214748364){j=mb(8)|0;RDb(j,238482);f[j>>2]=144484;qb(j|0,84192,1464)}k=f[j>>2]|0;g=LDb(b*20|0)|0;d=g+(((k-c|0)/20|0)*20|0)|0;h=d;g=g+(b*20|0)|0;b=k;if((b|0)==(e|0))b=h;else{c=d;do{k=b;b=b+-20|0;f[c+-20>>2]=f[b>>2];f[c+-16>>2]=f[k+-16>>2];f[c+-12>>2]=f[k+-12>>2];f[c+-8>>2]=f[k+-8>>2];f[c+-4>>2]=f[k+-4>>2];c=c+-20|0}while((b|0)!=(e|0));b=c;c=f[a>>2]|0}f[a>>2]=b;f[j>>2]=h;f[i>>2]=g;if(!c)return;NDb(c);return}function sK(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=a+4|0;i=f[m>>2]|0;c=f[a>>2]|0;h=(i-c|0)/20|0;d=h+1|0;k=c;if(d>>>0>214748364)KEb(a);l=a+8|0;j=((f[l>>2]|0)-c|0)/20|0;e=j<<1;e=j>>>0<107374182?(e>>>0<d>>>0?d:e):214748364;do if(e)if(e>>>0>214748364){m=mb(8)|0;RDb(m,238482);f[m>>2]=144484;qb(m|0,84192,1464)}else{g=LDb(e*20|0)|0;break}else g=0;while(0);d=g+(h*20|0)|0;j=g+(e*20|0)|0;f[d>>2]=f[b>>2];f[g+(h*20|0)+4>>2]=f[b+4>>2];f[g+(h*20|0)+8>>2]=f[b+8>>2];f[g+(h*20|0)+12>>2]=f[b+12>>2];f[g+(h*20|0)+16>>2]=f[b+16>>2];e=d+20|0;if((i|0)!=(k|0)){c=i;do{i=c;c=c+-20|0;f[d+-20>>2]=f[c>>2];f[d+-16>>2]=f[i+-16>>2];f[d+-12>>2]=f[i+-12>>2];f[d+-8>>2]=f[i+-8>>2];f[d+-4>>2]=f[i+-4>>2];d=d+-20|0}while((c|0)!=(k|0));c=f[a>>2]|0}f[a>>2]=d;f[m>>2]=e;f[l>>2]=j;if(!c)return;NDb(c);return}function tK(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;c=f[a>>2]|0;if(!c){f[a+16>>2]=0;l=0;a=a+20|0;f[a>>2]=l;return}i=c+84|0;h=f[i>>2]|0;if(h|0?(j=c+72|0,b=f[j>>2]|0,(h|0)!=(b|0)):0){e=f[c+116>>2]|0;g=f[c+120>>2]|0;if((e|0)!=(g|0)){d=f[a+12>>2]|0;if(d>>>0>=((g-e>>2)+1|0)>>>0){f[a+16>>2]=0;l=0;a=a+20|0;f[a>>2]=l;return}if(!d)b=0;else b=f[e+(d+-1<<2)>>2]|0;j=(f[c+112>>2]|0)+b|0;g=h>>d;k=f[c+76>>2]>>d;l=f[c+100>>2]|0;g=W(vK(f[c+92>>2]|0,f[c+96>>2]|0)|0,(g|0)==0?1:g)|0;i=(l|0)==0?8:l<<3;h=(g|0)/(i|0)|0;l=W(h+((g-(W(h,i)|0)|0)!=0&1)|0,l)|0;j=j+(W(l,f[a+4>>2]|0)|0)|0;k=j+(W(W(f[a+8>>2]|0,(k|0)==0?1:k)|0,l)|0)|0;f[a+16>>2]=k;a=a+20|0;f[a>>2]=l;return}g=f[a+8>>2]|0;if((g|0)<(f[c+80>>2]|0)?(k=f[a+4>>2]|0,l=c+76|0,(k|0)<(f[l>>2]|0)):0){h=f[c+112>>2]|0;if(!h)d=0;else{d=c+92|0;e=c+96|0;vK(f[d>>2]|0,f[e>>2]|0)|0;b=f[i>>2]|0;if(!b)b=f[j>>2]|0;i=c+100|0;n=f[i>>2]|0;m=W(vK(f[d>>2]|0,f[e>>2]|0)|0,b)|0;c=(n|0)==0?8:n<<3;b=(m|0)/(c|0)|0;c=h+(W(W(n,k)|0,b+((m-(W(b,c)|0)|0)!=0&1)|0)|0)|0;j=f[j>>2]|0;b=f[i>>2]|0;j=W(vK(f[d>>2]|0,f[e>>2]|0)|0,j)|0;d=(b|0)==0?8:b<<3;k=(j|0)/(d|0)|0;d=k+((j-(W(k,d)|0)|0)!=0&1)|0;d=c+(W(W(W(b,g)|0,f[l>>2]|0)|0,d)|0)|0;b=f[a>>2]|0;c=b;b=f[b+72>>2]|0}f[a+16>>2]=d;m=f[c+100>>2]|0;k=W(vK(f[c+92>>2]|0,f[c+96>>2]|0)|0,b)|0;n=(m|0)==0?8:m<<3;l=(k|0)/(n|0)|0;m=W(l+((k-(W(l,n)|0)|0)!=0&1)|0,m)|0;n=a+20|0;f[n>>2]=m;return}f[a+16>>2]=0;m=0;n=a+20|0;f[n>>2]=m;return}f[a+16>>2]=f[c+112>>2];m=uK(c)|0;n=a+20|0;f[n>>2]=m;return}function uK(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;k=a+116|0;b=f[k>>2]|0;l=a+120|0;c=f[l>>2]|0;e=f[a+72>>2]|0;if((b|0)==(c|0)){k=f[a+100>>2]|0;i=W(vK(f[a+92>>2]|0,f[a+96>>2]|0)|0,e)|0;l=(k|0)==0?8:k<<3;j=(i|0)/(l|0)|0;l=j+((i-(W(j,l)|0)|0)!=0&1)|0;k=W(f[a+76>>2]|0,k)|0;l=W(W(k,f[a+80>>2]|0)|0,l)|0;return l|0}if((c-b|0)==-4){l=0;return l|0}h=a+92|0;i=a+96|0;j=a+100|0;b=0;g=f[a+80>>2]|0;d=f[a+76>>2]|0;c=e;a=0;while(1){b=(zK(c,d,g,f[h>>2]|0,f[i>>2]|0,f[j>>2]|0,1,1)|0)+b|0;a=a+1|0;if(a>>>0>=(((f[l>>2]|0)-(f[k>>2]|0)>>2)+1|0)>>>0)break;else{g=(g|0)<2?1:g>>1;d=(d|0)<2?1:d>>1;c=(c|0)<2?1:c>>1}}return b|0}function vK(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;k=u;u=u+16|0;j=k+12|0;i=k;a:do switch(a|0){case 37489:case 37488:case 37495:case 37494:case 37493:case 37492:case 36196:case 35842:case 35840:case 36283:case 36284:case 33777:case 33776:{d=4;break}case 33778:{d=8;break}case 33779:{d=8;break}case 36286:{d=8;break}case 36285:{d=8;break}case 35841:{d=2;break}case 35843:{d=2;break}case 37496:{d=8;break}case 37497:{d=8;break}case 37490:{d=8;break}case 37491:{d=8;break}default:{if((a+-34025|0)>>>0<6){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=1){d=0;break a}d=Nv(jub(Nv(Mv(2)|0,179830,95)|0,a)|0,202632,14)|0;Ktb(j,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);i=Bvb(j,295164)|0;i=wk[f[(f[i>>2]|0)+28>>2]&1023](i,10)|0;Cvb(j);rub(d,i)|0;Rtb(d)|0;d=0;break a}do switch(a|0){case 32842:case 32831:{d=4;break a}case 37853:case 37852:case 37851:case 37850:case 37849:case 37848:case 37847:case 37846:case 37845:case 37844:case 37843:case 37842:case 37841:case 37840:case 37821:case 37820:case 37819:case 37818:case 37817:case 37816:case 37815:case 37814:case 37813:case 37812:case 37811:case 37810:case 37809:case 37808:{wK(i,a);g=i+4|0;h=W(f[g>>2]|0,f[i>>2]|0)|0;c=xK(a,0)|0;d=(c>>>0)/(h>>>0)|0;a=(c|0)==(W(d,h)|0);if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);e=(f[72420]|0)>1;if(a){if(e){i=Nv(jub(Nv(Mv(2)|0,179926,61)|0,d)|0,179988,89)|0;Ktb(j,i+(f[(f[i>>2]|0)+-12>>2]|0)|0);h=Bvb(j,295164)|0;h=wk[f[(f[h>>2]|0)+28>>2]&1023](h,10)|0;Cvb(j);rub(i,h)|0;Rtb(i)|0}}else if(e){d=Nv(jub(Nv(jub(Nv(Mv(2)|0,179926,61)|0,c)|0,246160,1)|0,h)|0,180078,64)|0;d=Nv(iub(d,f[i>>2]|0)|0,263784,1)|0;d=Nv(iub(d,f[g>>2]|0)|0,277359,1)|0;Ktb(j,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);i=Bvb(j,295164)|0;i=wk[f[(f[i>>2]|0)+28>>2]&1023](i,10)|0;Cvb(j);rub(d,i)|0;Rtb(d)|0;d=0}else d=0;break a}case 32832:{d=8;break a}case 32833:{d=12;break a}case 32834:{d=16;break a}case 32835:{d=8;break a}case 32836:{d=8;break a}case 32837:{d=16;break a}case 32838:{d=16;break a}case 32839:{d=24;break a}case 32840:{d=32;break a}case 32843:{d=8;break a}case 32844:{d=12;break a}case 32845:{d=16;break a}default:{b:do if((c|0)<32819){c:do if((c|0)<5125){switch(c|0){case 5123:case 5122:{d=43;break c}case 5124:{d=44;break c}case 5121:case 5120:break;default:break b}d=(yK(a)|0)<<3;break a}else{if((c|0)<5131)switch(c|0){case 5126:case 5125:{d=44;break c}default:break b}if((c|0)<6656)switch(c|0){case 5131:{d=43;break c}default:break b}if((c|0)>=32818)switch(c|0){case 32818:{d=8;break a}default:break b}switch(c|0){case 6656:break;default:break b}d=yK(a)|0;break a}while(0);if((d|0)==43){d=(yK(a)|0)<<4;break a}else if((d|0)==44){d=(yK(a)|0)<<5;break a}}else switch(c|0){case 33634:{d=8;break a}case 33638:case 32820:case 33637:case 32819:case 33636:case 33635:{d=16;break a}case 33640:case 32822:case 33639:case 32821:{d=32;break a}default:break b}while(0);if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=1){d=0;break a}d=jub(Nv(Mv(2)|0,180143,13)|0,c)|0;Ktb(j,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);i=Bvb(j,295164)|0;i=wk[f[(f[i>>2]|0)+28>>2]&1023](i,10)|0;Cvb(j);rub(d,i)|0;Rtb(d)|0;d=0;break a}}while(0)}}while(0);u=k;return d|0}function wK(a,b){a=a|0;b=b|0;var c=0,d=0;do switch(b|0){case 33779:case 33778:case 33777:case 33776:{b=4;c=4;d=4;break}case 37491:case 37490:case 37489:case 37488:case 37497:case 37496:case 37495:case 37494:case 37493:case 37492:case 36196:case 35842:case 35840:case 36285:case 36286:case 36283:case 36284:{b=1;c=4;d=4;break}case 35843:case 35841:{b=1;c=4;d=8;break}case 37808:{b=1;c=4;d=4;break}case 37809:{b=1;c=4;d=5;break}case 37810:{b=1;c=5;d=5;break}case 37811:{b=1;c=5;d=6;break}case 37812:{b=1;c=6;d=6;break}case 37813:{b=1;c=5;d=8;break}case 37814:{b=1;c=6;d=8;break}case 37815:{b=1;c=8;d=8;break}case 37816:{b=1;c=5;d=10;break}case 37817:{b=1;c=6;d=10;break}case 37818:{b=1;c=8;d=10;break}case 37819:{b=1;c=10;d=10;break}case 37820:{b=1;c=10;d=12;break}case 37821:{b=1;c=12;d=12;break}case 37840:{b=1;c=4;d=4;break}case 37841:{b=1;c=4;d=5;break}case 37842:{b=1;c=5;d=5;break}case 37843:{b=1;c=5;d=6;break}case 37844:{b=1;c=6;d=6;break}case 37845:{b=1;c=5;d=8;break}case 37846:{b=1;c=6;d=8;break}case 37847:{b=1;c=8;d=8;break}case 37848:{b=1;c=5;d=10;break}case 37849:{b=1;c=6;d=10;break}case 37850:{b=1;c=8;d=10;break}case 37851:{b=1;c=10;d=10;break}case 37852:{b=1;c=10;d=12;break}case 37853:{b=1;c=12;d=12;break}default:{b=1;c=1;d=1}}while(0);f[a>>2]=d;f[a+4>>2]=c;f[a+8>>2]=b;return}function xK(a,b){a=a|0;b=b|0;switch(a|0){case 33777:case 33776:{b=b>>>0>8?b:8;break}case 36196:case 35842:case 35840:case 35843:case 35841:case 33779:case 33778:{b=b>>>0>16?b:16;break}case 36283:case 36284:{b=b>>>0>8?b:8;break}case 36285:case 36286:{b=b>>>0>16?b:16;break}case 37489:case 37488:case 37495:case 37494:case 37493:case 37492:{b=b>>>0>8?b:8;break}case 37491:case 37490:case 37497:case 37496:{b=b>>>0>16?b:16;break}case 37853:case 37852:case 37851:case 37850:case 37849:case 37848:case 37847:case 37846:case 37845:case 37844:case 37843:case 37842:case 37841:case 37840:case 37821:case 37820:case 37819:case 37818:case 37817:case 37816:case 37815:case 37814:case 37813:case 37812:case 37811:case 37810:case 37809:case 37808:{b=b>>>0>16?b:16;break}default:{}}return b|0}function yK(a){a=a|0;var c=0,d=0,e=0,g=0;e=u;u=u+16|0;c=e;a:do if((a|0)<36221){if((a|0)>=33777)do switch(a|0){case 35905:case 34550:case 34837:case 34843:case 36209:case 36215:case 36196:case 35841:case 35840:{a=3;break a}case 33777:{a=4;break a}case 33778:{a=4;break a}case 33779:{a=4;break a}case 35842:{a=4;break a}case 35843:{a=4;break a}case 36012:{a=1;break a}case 36216:{a=1;break a}case 36210:{a=1;break a}case 34844:{a=1;break a}case 34838:{a=1;break a}case 34842:{a=4;break a}case 34836:{a=4;break a}case 36218:{a=1;break a}case 36212:{a=1;break a}case 34846:{a=1;break a}case 34840:{a=1;break a}case 36217:{a=1;break a}case 36211:{a=1;break a}case 34845:{a=1;break a}case 34839:{a=1;break a}case 36219:{a=2;break a}case 36213:{a=2;break a}case 34847:{a=2;break a}case 34841:{a=2;break a}case 34548:{a=2;break a}case 34549:{a=2;break a}case 34551:{a=4;break a}case 35907:{a=4;break a}default:{d=128;break a}}while(0);if((a|0)>=32838)do switch(a|0){case 32992:case 33776:{a=3;break a}case 33189:{a=1;break a}case 33190:{a=1;break a}case 33191:{a=1;break a}case 33326:{a=1;break a}case 33319:{a=2;break a}case 33328:{a=2;break a}case 32993:{a=4;break a}case 32856:{a=4;break a}case 32838:{a=2;break a}case 32839:{a=2;break a}case 32840:{a=2;break a}case 32841:{a=1;break a}case 32842:{a=1;break a}case 32843:{a=1;break a}case 32844:{a=1;break a}case 32845:{a=1;break a}default:{d=128;break a}}while(0);if((a|0)<6409)switch(a|0){case 6407:{a=3;break a}case 6400:{a=1;break a}case 6401:{a=1;break a}case 6402:{a=1;break a}case 6403:{a=1;break a}case 6404:{a=1;break a}case 6405:{a=1;break a}case 6406:{a=1;break a}case 6408:{a=4;break a}default:{d=128;break a}}if((a|0)>=32833)switch(a|0){case 32833:{a=1;break a}case 32834:{a=1;break a}case 32835:{a=2;break a}case 32836:{a=2;break a}case 32837:{a=2;break a}default:{d=128;break a}}if((a|0)<32831)switch(a|0){case 6409:{a=1;break a}case 6410:{a=2;break a}default:{d=128;break a}}else switch(a|0){case 32831:{a=1;break a}case 32832:{a=1;break a}default:{d=128;break a}}}else do switch(a|0){case 36250:case 36248:case 36227:case 36233:case 36221:case 36239:case 37493:case 37492:{a=3;break a}case 36284:{a=1;break a}case 36283:{a=1;break a}case 36286:{a=2;break a}case 36285:{a=2;break a}case 37494:{a=4;break a}case 37495:{a=4;break a}case 37496:{a=4;break a}case 37497:{a=4;break a}case 37488:{a=1;break a}case 37489:{a=1;break a}case 37490:{a=2;break a}case 37491:{a=2;break a}case 36267:{a=1;break a}case 36240:{a=1;break a}case 36222:{a=1;break a}case 36234:{a=1;break a}case 36228:{a=1;break a}case 36242:{a=1;break a}case 36224:{a=1;break a}case 36236:{a=1;break a}case 36230:{a=1;break a}case 36223:{a=1;break a}case 36241:{a=1;break a}case 36235:{a=1;break a}case 36229:{a=1;break a}case 36243:{a=2;break a}case 36225:{a=2;break a}case 36237:{a=2;break a}case 36231:{a=2;break a}case 36244:{a=1;break a}case 36245:{a=1;break a}case 36246:{a=1;break a}case 36247:{a=1;break a}case 36249:{a=4;break a}case 36251:{a=4;break a}case 36252:{a=1;break a}case 36253:{a=2;break a}case 37808:{a=4;break a}case 37809:{a=4;break a}case 37810:{a=4;break a}case 37811:{a=4;break a}case 37812:{a=4;break a}case 37813:{a=4;break a}case 37814:{a=4;break a}case 37815:{a=4;break a}case 37816:{a=4;break a}case 37817:{a=4;break a}case 37818:{a=4;break a}case 37819:{a=4;break a}case 37820:{a=4;break a}case 37821:{a=4;break a}case 37840:{a=4;break a}case 37841:{a=4;break a}case 37842:{a=4;break a}case 37843:{a=4;break a}case 37844:{a=4;break a}case 37845:{a=4;break a}case 37846:{a=4;break a}case 37847:{a=4;break a}case 37848:{a=4;break a}case 37849:{a=4;break a}case 37850:{a=4;break a}case 37851:{a=4;break a}case 37852:{a=4;break a}case 37853:{a=4;break a}default:{d=128;break a}}while(0);while(0);if((d|0)==128){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>1){d=Nv(Mv(2)|0,180157,20)|0;g=d+(f[(f[d>>2]|0)+-12>>2]|0)+4|0;f[g>>2]=f[g>>2]&-75|8;a=jub(d,a)|0;d=(f[a>>2]|0)+-12|0;g=a+(f[d>>2]|0)+4|0;f[g>>2]=f[g>>2]&-75|2;Ktb(c,a+(f[d>>2]|0)|0);d=Bvb(c,295164)|0;d=wk[f[(f[d>>2]|0)+28>>2]&1023](d,10)|0;Cvb(c);rub(a,d)|0;Rtb(a)|0;a=0}else a=0}u=e;return a|0}function zK(a,b,c,d,e,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0;l=u;u=u+16|0;j=l;if((a|0)<1|(b|0)<1|(c|0)<1){i=0;u=l;return i|0}k=xK(d,0)|0;if((k|0)<=0){j=W(vK(d,e)|0,a)|0;k=(g|0)==0?8:g<<3;a=(j|0)/(k|0)|0;b=h+-1+(W(W(g,b)|0,a+((j-(W(a,k)|0)|0)!=0&1)|0)|0)|0;c=i+-1+(W(b-((b>>>0)%(h>>>0)|0)|0,c)|0)|0;c=c-((c>>>0)%(i>>>0)|0)|0;i=xK(d,g)|0;i=c>>>0>i>>>0?c:i;u=l;return i|0}wK(j,d);d=f[j>>2]|0;j=f[j+4>>2]|0;d=W((a+-1+d|0)/(d|0)|0,k)|0;e=g+-1+d|0;if((g|0)>=2)d=e-((e|0)%(g|0)|0)|0;d=W(d,(b+-1+j|0)/(j|0)|0)|0;e=h+-1+d|0;if((h|0)>=2)d=e-((e|0)%(h|0)|0)|0;d=W(d,c)|0;e=i+-1+d|0;if((i|0)>=2)d=e-((e|0)%(i|0)|0)|0;i=d;u=l;return i|0}function AK(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;i=a+4|0;j=f[a>>2]|0;k=(f[i>>2]|0)-j|0;g=k>>2;c=g+1|0;if(c>>>0>1073741823)KEb(a);l=a+8|0;e=(f[l>>2]|0)-j|0;h=e>>1;h=e>>2>>>0<536870911?(h>>>0<c>>>0?c:h):1073741823;do if(h)if(h>>>0>1073741823){l=mb(8)|0;RDb(l,238482);f[l>>2]=144484;qb(l|0,84192,1464)}else{e=LDb(h<<2)|0;d=e;break}else{d=0;e=0}while(0);c=d+(g<<2)|0;f[c>>2]=f[b>>2];if((k|0)>0)gGb(e|0,j|0,k|0)|0;f[a>>2]=d;f[i>>2]=c+4;f[l>>2]=d+(h<<2);if(!j)return;NDb(j);return}function BK(a,c,d){a=a|0;c=c|0;d=d|0;var e=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,v=0;t=u;u=u+16|0;s=t;_F(a,c,d);f[a>>2]=93664;j=a+220|0;f[j>>2]=0;k=a+224|0;f[k>>2]=0;l=a+228|0;f[l>>2]=0;e=wk[f[(f[d>>2]|0)+40>>2]&1023](d,f[c+232>>2]|0)|0;f[a+232>>2]=e;if(e|0){r=e+8|0;f[r>>2]=(f[r>>2]|0)+1}e=wk[f[(f[d>>2]|0)+40>>2]&1023](d,f[c+236>>2]|0)|0;f[a+236>>2]=e;if(e|0){r=e+8|0;f[r>>2]=(f[r>>2]|0)+1}e=wk[f[(f[d>>2]|0)+40>>2]&1023](d,f[c+240>>2]|0)|0;f[a+240>>2]=e;if(e|0){r=e+8|0;f[r>>2]=(f[r>>2]|0)+1}e=wk[f[(f[d>>2]|0)+40>>2]&1023](d,f[c+244>>2]|0)|0;f[a+244>>2]=e;if(e|0){r=e+8|0;f[r>>2]=(f[r>>2]|0)+1}e=wk[f[(f[d>>2]|0)+40>>2]&1023](d,f[c+248>>2]|0)|0;f[a+248>>2]=e;if(e|0){r=e+8|0;f[r>>2]=(f[r>>2]|0)+1}m=a+252|0;n=a+256|0;o=a+260|0;p=a+264|0;q=a+268|0;r=a+272|0;f[m>>2]=0;f[m+4>>2]=0;f[m+8>>2]=0;f[m+12>>2]=0;f[m+16>>2]=0;f[m+20>>2]=0;b[a+276>>0]=b[c+276>>0]|0;b[a+182>>0]=1;e=f[c+220>>2]|0;i=c+224|0;if((e|0)!=(f[i>>2]|0))do{g=wk[f[(f[d>>2]|0)+44>>2]&1023](d,f[e>>2]|0)|0;if(g|0){f[s>>2]=g;g=g+8|0;f[g>>2]=(f[g>>2]|0)+1;g=f[k>>2]|0;if(g>>>0<(f[l>>2]|0)>>>0){h=f[s>>2]|0;f[g>>2]=h;if(h){g=h+8|0;f[g>>2]=(f[g>>2]|0)+1;g=f[k>>2]|0}f[k>>2]=g+4}else CK(j,s);g=f[s>>2]|0;if(g|0?(v=g+8|0,h=f[v>>2]|0,f[v>>2]=h-1,(h|0)==1):0)X4(g,1,1)}e=e+4|0}while((e|0)!=(f[i>>2]|0));e=f[c+252>>2]|0;i=c+256|0;if((e|0)!=(f[i>>2]|0))do{g=wk[f[(f[d>>2]|0)+40>>2]&1023](d,f[e>>2]|0)|0;f[s>>2]=g;if(g|0){v=g+8|0;f[v>>2]=(f[v>>2]|0)+1}g=f[n>>2]|0;if(g>>>0<(f[o>>2]|0)>>>0){h=f[s>>2]|0;f[g>>2]=h;if(h){g=h+8|0;f[g>>2]=(f[g>>2]|0)+1;g=f[n>>2]|0}f[n>>2]=g+4}else NA(m,s);g=f[s>>2]|0;if(g|0?(l=g+8|0,v=f[l>>2]|0,f[l>>2]=v-1,(v|0)==1):0)X4(g,1,1);e=e+4|0}while((e|0)!=(f[i>>2]|0));e=f[c+264>>2]|0;i=c+268|0;if((e|0)!=(f[i>>2]|0))do{g=wk[f[(f[d>>2]|0)+40>>2]&1023](d,f[e>>2]|0)|0;f[s>>2]=g;if(g|0){v=g+8|0;f[v>>2]=(f[v>>2]|0)+1}g=f[q>>2]|0;if(g>>>0<(f[r>>2]|0)>>>0){h=f[s>>2]|0;f[g>>2]=h;if(h){g=h+8|0;f[g>>2]=(f[g>>2]|0)+1;g=f[q>>2]|0}f[q>>2]=g+4}else NA(p,s);g=f[s>>2]|0;if(g|0?(c=g+8|0,v=f[c>>2]|0,f[c>>2]=v-1,(v|0)==1):0)X4(g,1,1);e=e+4|0}while((e|0)!=(f[i>>2]|0));if(!(f[d+4>>2]&384)){u=t;return}b[a+183>>0]=0;Vk[f[(f[a>>2]|0)+236>>2]&1023](a,1);u=t;return}function CK(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=a+4|0;c=f[m>>2]|0;d=f[a>>2]|0;i=c-d>>2;e=i+1|0;g=d;if(e>>>0>1073741823)KEb(a);l=a+8|0;j=(f[l>>2]|0)-d|0;k=j>>1;e=j>>2>>>0<536870911?(k>>>0<e>>>0?e:k):1073741823;do if(e)if(e>>>0>1073741823){m=mb(8)|0;RDb(m,238482);f[m>>2]=144484;qb(m|0,84192,1464)}else{j=LDb(e<<2)|0;break}else j=0;while(0);d=j+(i<<2)|0;k=j+(e<<2)|0;e=f[b>>2]|0;f[d>>2]=e;if(e){g=e+8|0;f[g>>2]=(f[g>>2]|0)+1;g=f[a>>2]|0;c=f[m>>2]|0}h=d+4|0;e=g;if((c|0)==(g|0))b=e;else{b=i+-1-((c+-4-e|0)>>>2)|0;while(1){c=c+-4|0;e=f[c>>2]|0;f[d+-4>>2]=e;if(e|0){i=e+8|0;f[i>>2]=(f[i>>2]|0)+1}if((c|0)==(g|0))break;else d=d+-4|0}d=j+(b<<2)|0;b=f[a>>2]|0;c=f[m>>2]|0}f[a>>2]=d;f[m>>2]=h;f[l>>2]=k;e=b;if((c|0)!=(e|0))do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(l=d+8|0,m=f[l>>2]|0,f[l>>2]=m-1,(m|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(e|0));if(!b)return;NDb(b);return}function DK(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;d=f[a>>2]|0;if(!d)return;e=a+4|0;b=f[e>>2]|0;if((b|0)==(d|0))b=d;else{do{b=b+-4|0;c=f[b>>2]|0;if(c|0?(h=c+8|0,g=f[h>>2]|0,f[h>>2]=g-1,(g|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(d|0));b=f[a>>2]|0}f[e>>2]=d;NDb(b);return}function EK(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(b|0?(d=b+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(b,1,1);f[a>>2]=0;return}function FK(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;d=f[a>>2]|0;if(!d)return;e=a+4|0;b=f[e>>2]|0;if((b|0)==(d|0))b=d;else{do{b=b+-4|0;c=f[b>>2]|0;if(c|0?(h=c+8|0,g=f[h>>2]|0,f[h>>2]=g-1,(g|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(d|0));b=f[a>>2]|0}f[e>>2]=d;NDb(b);return}function GK(a){a=a|0;V4(a);return}function HK(a){a=a|0;V4(a);NDb(a);return}function IK(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;f[a>>2]=94344;d=a+12|0;e=f[d>>2]|0;if(!e){V4(a);return}g=a+16|0;b=f[g>>2]|0;if((b|0)==(e|0))b=e;else{do{b=b+-4|0;c=f[b>>2]|0;if(c|0?(i=c+8|0,h=f[i>>2]|0,f[i>>2]=h-1,(h|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(e|0));b=f[d>>2]|0}f[g>>2]=e;NDb(b);V4(a);return}function JK(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;f[a>>2]=94344;d=a+12|0;e=f[d>>2]|0;if(!e){V4(a);NDb(a);return}g=a+16|0;b=f[g>>2]|0;if((b|0)==(e|0))b=e;else{do{b=b+-4|0;c=f[b>>2]|0;if(c|0?(i=c+8|0,h=f[i>>2]|0,f[i>>2]=h-1,(h|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(e|0));b=f[d>>2]|0}f[g>>2]=e;NDb(b);V4(a);NDb(a);return}function KK(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0;f[a>>2]=94364;$K(a,0);aL(a);b=a+116|0;c=f[b>>2]|0;if(c|0?(j=c+8|0,e=f[j>>2]|0,f[j>>2]=e-1,(e|0)==1):0)X4(c,1,1);f[b>>2]=0;b=a+112|0;c=f[b>>2]|0;if(c|0?(e=c+8|0,j=f[e>>2]|0,f[e>>2]=j-1,(j|0)==1):0)X4(c,1,1);f[b>>2]=0;b=a+108|0;c=f[b>>2]|0;if(c|0?(e=c+8|0,j=f[e>>2]|0,f[e>>2]=j-1,(j|0)==1):0)X4(c,1,1);f[b>>2]=0;b=a+104|0;c=f[b>>2]|0;if(c|0?(d=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,e=d+8|0,j=f[e>>2]|0,f[e>>2]=j-1,(j|0)==1):0)X4(d,1,1);f[b>>2]=0;e=a+92|0;b=a+100|0;if(f[b>>2]|0?(g=f[a+96>>2]|0,j=(f[e>>2]|0)+4|0,d=f[g>>2]|0,f[d+4>>2]=f[j>>2],f[f[j>>2]>>2]=d,f[b>>2]=0,(g|0)!=(e|0)):0){b=g;do{c=b;b=f[b+4>>2]|0;d=f[c+8>>2]|0;if(d|0?(h=d+(f[(f[d>>2]|0)+-12>>2]|0)|0,g=h+8|0,j=f[g>>2]|0,f[g>>2]=j-1,(j|0)==1):0)X4(h,1,1);NDb(c)}while((b|0)!=(e|0))}b=a+88|0;c=f[b>>2]|0;if(c|0?(i=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,h=i+8|0,j=f[h>>2]|0,f[h>>2]=j-1,(j|0)==1):0)X4(i,1,1);f[b>>2]=0;d8(a+76|0);b=a+48|0;c=f[b>>2]|0;if(c|0?(i=c+8|0,j=f[i>>2]|0,f[i>>2]=j-1,(j|0)==1):0)X4(c,1,1);f[b>>2]=0;b=a+44|0;c=f[b>>2]|0;if(c|0?(i=c+8|0,j=f[i>>2]|0,f[i>>2]=j-1,(j|0)==1):0)X4(c,1,1);f[b>>2]=0;d=a+32|0;c=a+40|0;if(!(f[c>>2]|0)){ow(a);return}b=f[a+36>>2]|0;j=(f[d>>2]|0)+4|0;i=f[b>>2]|0;f[i+4>>2]=f[j>>2];f[f[j>>2]>>2]=i;f[c>>2]=0;if((b|0)==(d|0)){ow(a);return}do{j=b;b=f[b+4>>2]|0;NDb(j)}while((b|0)!=(d|0));ow(a);return}function LK(a){a=a|0;Ni()}function MK(a){a=a|0;return 0}function NK(a,b){a=a|0;b=b|0;return 0}function OK(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,60400,0)|0)!=0;return b|0}function PK(a){a=a|0;return 241076}function QK(a){a=a|0;return 180254}function RK(a){a=a|0;var c=0,d=0,e=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,v=0;t=u;u=u+16|0;j=t;p=t+4|0;f[p>>2]=0;s=p+4|0;f[s>>2]=0;h=p+8|0;f[h>>2]=0;d=f[a+36>>2]|0;i=a+32|0;if((d|0)==(i|0)){c=0;d=0}else{c=d;e=0;g=0;while(1){c=c+8|0;if((e|0)==(g|0))VK(p,c);else{f[e>>2]=f[c>>2];f[s>>2]=(f[s>>2]|0)+4}c=f[d+4>>2]|0;d=c;if((i|0)==(d|0))break;e=f[s>>2]|0;g=f[h>>2]|0}c=f[p>>2]|0;d=f[s>>2]|0}WK(c,d,j);c=f[p>>2]|0;d=f[s>>2]|0;if((c|0)!=(d|0))do{e=f[(f[c>>2]|0)+628>>2]|0;if(e){Vk[f[(f[e>>2]|0)+16>>2]&1023](e,a);d=f[s>>2]|0}c=c+4|0}while((c|0)!=(d|0));c=f[a+96>>2]|0;h=a+92|0;d=c;if((h|0)!=(d|0)){i=a+76|0;j=a+104|0;k=a+100|0;l=a+88|0;g=c;do{sk[f[(f[i>>2]|0)+8>>2]&2047](i)|0;c=f[j>>2]|0;e=f[g+8>>2]|0;if((c|0)!=(e|0)){f[j>>2]=e;if(e|0){e=e+(f[(f[e>>2]|0)+-12>>2]|0)+8|0;f[e>>2]=(f[e>>2]|0)+1}if(c|0?(q=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,c=q+8|0,e=f[c>>2]|0,f[c>>2]=e-1,(e|0)==1):0)X4(q,1,1)}c=d+4|0;e=g;g=f[c>>2]|0;if(!(b[(f[j>>2]|0)+16>>0]|0)){v=f[d>>2]|0;f[v+4>>2]=g;f[f[c>>2]>>2]=v;f[k>>2]=(f[k>>2]|0)+-1;c=f[d+8>>2]|0;if(c|0?(r=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,d=r+8|0,v=f[d>>2]|0,f[d>>2]=v-1,(v|0)==1):0)X4(r,1,1);NDb(e);if((f[k>>2]|0)==0?(n=f[l>>2]|0,m=n+4|0,n=n+24|0,b[n>>0]|0):0){sk[f[(f[m>>2]|0)+8>>2]&2047](m)|0;b[n>>0]=0;sk[f[(f[m>>2]|0)+12>>2]&2047](m)|0}}sk[f[(f[i>>2]|0)+12>>2]&2047](i)|0;c=f[j>>2]|0;if(c|0){Vk[f[(f[c>>2]|0)+4>>2]&1023](c,a);sk[f[(f[i>>2]|0)+8>>2]&2047](i)|0;c=f[j>>2]|0;if(c|0?(f[j>>2]=0,o=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,e=o+8|0,v=f[e>>2]|0,f[e>>2]=v-1,(v|0)==1):0)X4(o,1,1);sk[f[(f[i>>2]|0)+12>>2]&2047](i)|0}d=g}while((h|0)!=(d|0))}c=f[p>>2]|0;if(!c){u=t;return}f[s>>2]=c;NDb(c);u=t;return}function SK(a){a=a|0;var b=0,c=0,d=0;c=fDa(eDa()|0)|0;d=a+120|0;f[d>>2]=c;f[d+4>>2]=H;d=a+68|0;if(!(f[d>>2]|0))return;b=a+44|0;c=f[b>>2]|0;if(!c)return;Bi(0,0,f[c+40>>2]|0,f[c+44>>2]|0);c=f[b>>2]|0;qi(0,0,f[c+40>>2]|0,f[c+44>>2]|0);Yh(+(+n[a+52>>2]),+(+n[a+56>>2]),+(+n[a+60>>2]),+(+n[a+64>>2]));Xh(f[d>>2]|0);return}function TK(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0.0,l=0.0,m=0,n=0,o=0,q=0,r=0,s=0,t=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,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0.0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=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,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0.0,Ib=0.0,Jb=0.0,Kb=0,Lb=0,Mb=0,Nb=0.0,Ob=0.0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0;Yb=u;u=u+272|0;Sb=Yb+128|0;Xb=Yb+256|0;Tb=Yb;Ub=Xb+4|0;f[Ub>>2]=0;Vb=Xb+8|0;f[Vb>>2]=0;Wb=Xb+4|0;f[Xb>>2]=Wb;Gb=a+44|0;g=f[Gb>>2]|0;if(!g){e=0;UK(Xb,e);u=Yb;return}Hb=+(d|0);h=g+40|0;Ib=Hb/+(f[h>>2]|0);Jb=+(e|0);i=g+44|0;Nb=Jb/+(f[i>>2]|0);Ob=Ib/Nb;j=f[a+36>>2]|0;Fb=a+32|0;a=j;if((Fb|0)==(a|0))a=0;else{oa=Ob!=1.0;pa=1.0/Ob;qa=Sb+8|0;ra=Sb+16|0;sa=Sb+24|0;ta=Sb+32|0;ua=Sb+40|0;va=Sb+48|0;wa=Sb+56|0;xa=Sb+64|0;ya=Sb+72|0;za=Sb+80|0;Aa=Sb+88|0;Ba=Sb+96|0;Ca=Sb+104|0;Da=Sb+112|0;Ea=Sb+120|0;Fa=Sb+8|0;Ga=Sb+16|0;Ha=Sb+24|0;Ia=Sb+32|0;Ja=Sb+40|0;Ka=Sb+48|0;La=Sb+56|0;Ma=Sb+64|0;Na=Sb+72|0;Oa=Sb+80|0;Pa=Sb+88|0;Qa=Sb+96|0;Ra=Sb+104|0;Sa=Sb+112|0;Ta=Sb+120|0;Ua=Sb+8|0;Va=Sb+16|0;Wa=Sb+24|0;Xa=Sb+32|0;Ya=Sb+40|0;Za=Sb+48|0;_a=Sb+56|0;$a=Sb+64|0;ab=Sb+72|0;bb=Sb+80|0;cb=Sb+88|0;db=Sb+96|0;eb=Sb+104|0;fb=Sb+112|0;gb=Sb+120|0;hb=Sb+8|0;ib=Sb+16|0;jb=Sb+24|0;kb=Sb+32|0;lb=Sb+40|0;mb=Sb+48|0;nb=Sb+56|0;ob=Sb+64|0;pb=Sb+72|0;qb=Sb+80|0;rb=Sb+88|0;sb=Sb+96|0;tb=Sb+104|0;ub=Sb+112|0;vb=Sb+120|0;wb=Sb+8|0;xb=Sb+16|0;yb=Sb+24|0;zb=Sb+32|0;Ab=Sb+40|0;Bb=Sb+48|0;Cb=Sb+56|0;Db=Sb+64|0;Eb=Sb+72|0;q=Sb+80|0;r=Sb+88|0;s=Sb+96|0;t=Sb+104|0;v=Sb+112|0;w=Sb+120|0;x=Sb+8|0;y=Sb+16|0;z=Sb+24|0;A=Sb+32|0;B=Sb+40|0;C=Sb+48|0;D=Sb+56|0;E=Sb+64|0;F=Sb+72|0;G=Sb+80|0;H=Sb+88|0;I=Sb+96|0;J=Sb+104|0;K=Sb+112|0;L=Sb+120|0;M=Sb+8|0;N=Sb+16|0;O=Sb+24|0;P=Sb+32|0;Q=Sb+40|0;R=Sb+48|0;S=Sb+56|0;T=Sb+64|0;U=Sb+72|0;V=Sb+80|0;W=Sb+88|0;X=Sb+96|0;Y=Sb+104|0;Z=Sb+112|0;_=Sb+120|0;$=Sb+8|0;aa=Sb+16|0;ba=Sb+24|0;ca=Sb+32|0;da=Sb+40|0;ea=Sb+48|0;fa=Sb+56|0;ga=Sb+64|0;ha=Sb+72|0;ia=Sb+80|0;ja=Sb+88|0;ka=Sb+96|0;la=Sb+104|0;ma=Sb+112|0;na=Sb+120|0;g=j;o=a;do{n=f[g+8>>2]|0;a:do if(f[n+576>>2]|0){m=f[n+288>>2]|0;j=m;b:do if(m|0){i=f[Wb>>2]|0;do if(i){g=i;do{a=f[g+16>>2]|0;if(m>>>0>=a>>>0){if(a>>>0>=m>>>0)break b;g=g+4|0}g=f[g>>2]|0}while((g|0)!=0);h=Ub;g=i;while(1){a=f[g+16>>2]|0;if(m>>>0<a>>>0){a=f[g>>2]|0;if(!a){a=18;break}else{h=g;g=a}}else{if(a>>>0>=m>>>0){a=22;break}h=g+4|0;a=f[h>>2]|0;if(!a){a=21;break}else g=a}}if((a|0)==18){i=g;h=g;break}else if((a|0)==21){i=g;break}else if((a|0)==22){i=g;break}}else{i=Wb;h=Wb}while(0);if(!(f[h>>2]|0)){g=LDb(20)|0;f[g+16>>2]=j;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=i;f[h>>2]=g;a=f[f[Xb>>2]>>2]|0;if(a){f[Xb>>2]=a;g=f[h>>2]|0}Aq(f[Ub>>2]|0,g);f[Vb>>2]=(f[Vb>>2]|0)+1}g=m+56|0;k=+p[g>>3];a=m+64|0;l=+p[a>>3];if((k==0.0&l==0.0?(Kb=m+72|0,Lb=f[Gb>>2]|0,+p[Kb>>3]>=+(f[Lb+40>>2]|0)):0)?(Mb=m+80|0,+p[Mb>>3]>=+(f[Lb+44>>2]|0)):0){f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;p[Kb>>3]=Hb;p[Mb>>3]=Jb;break}p[g>>3]=Ib*k;p[a>>3]=Nb*l;j=m+72|0;p[j>>3]=Ib*+p[j>>3];m=m+80|0;p[m>>3]=Nb*+p[m>>3]}while(0);if(oa){h=f[n+220>>2]|0;i=(h|0)!=0;do if(i){a=xEa(h,n)|0;if(!a){g=f[h+16>>2]|0;break}if(!(f[n+136>>2]|0))switch(f[(f[h+16>>2]|0)+296>>2]|0){case 1:{SWa(Tb);TWa(Tb,pa,1.0,1.0);g=a+8|0;if((g|0)==(Tb|0)){p[Sb>>3]=+p[Tb>>3];p[wb>>3]=+p[a+16>>3];p[xb>>3]=+p[a+24>>3];p[yb>>3]=+p[a+32>>3];p[zb>>3]=+p[a+40>>3];p[Ab>>3]=+p[a+48>>3];p[Bb>>3]=+p[a+56>>3];p[Cb>>3]=+p[a+64>>3];p[Db>>3]=+p[a+72>>3];p[Eb>>3]=+p[a+80>>3];p[q>>3]=+p[a+88>>3];p[r>>3]=+p[a+96>>3];p[s>>3]=+p[a+104>>3];p[t>>3]=+p[a+112>>3];p[v>>3]=+p[a+120>>3];p[w>>3]=+p[a+128>>3];XWa(Tb,Sb)}else XWa(g,Tb);break a}case 2:{SWa(Tb);TWa(Tb,1.0,Ob,1.0);g=a+8|0;if((g|0)==(Tb|0)){p[Sb>>3]=+p[Tb>>3];p[x>>3]=+p[a+16>>3];p[y>>3]=+p[a+24>>3];p[z>>3]=+p[a+32>>3];p[A>>3]=+p[a+40>>3];p[B>>3]=+p[a+48>>3];p[C>>3]=+p[a+56>>3];p[D>>3]=+p[a+64>>3];p[E>>3]=+p[a+72>>3];p[F>>3]=+p[a+80>>3];p[G>>3]=+p[a+88>>3];p[H>>3]=+p[a+96>>3];p[I>>3]=+p[a+104>>3];p[J>>3]=+p[a+112>>3];p[K>>3]=+p[a+120>>3];p[L>>3]=+p[a+128>>3];XWa(Tb,Sb)}else XWa(g,Tb);break a}default:break a}else switch(f[n+296>>2]|0){case 1:{SWa(Tb);TWa(Tb,pa,1.0,1.0);g=n+304|0;if((g|0)==(Tb|0)){p[Sb>>3]=+p[Tb>>3];p[M>>3]=+p[n+312>>3];p[N>>3]=+p[n+320>>3];p[O>>3]=+p[n+328>>3];p[P>>3]=+p[n+336>>3];p[Q>>3]=+p[n+344>>3];p[R>>3]=+p[n+352>>3];p[S>>3]=+p[n+360>>3];p[T>>3]=+p[n+368>>3];p[U>>3]=+p[n+376>>3];p[V>>3]=+p[n+384>>3];p[W>>3]=+p[n+392>>3];p[X>>3]=+p[n+400>>3];p[Y>>3]=+p[n+408>>3];p[Z>>3]=+p[n+416>>3];p[_>>3]=+p[n+424>>3];XWa(Tb,Sb)}else XWa(g,Tb);break a}case 2:{SWa(Tb);TWa(Tb,1.0,Ob,1.0);g=n+304|0;if((g|0)==(Tb|0)){p[Sb>>3]=+p[Tb>>3];p[$>>3]=+p[n+312>>3];p[aa>>3]=+p[n+320>>3];p[ba>>3]=+p[n+328>>3];p[ca>>3]=+p[n+336>>3];p[da>>3]=+p[n+344>>3];p[ea>>3]=+p[n+352>>3];p[fa>>3]=+p[n+360>>3];p[ga>>3]=+p[n+368>>3];p[ha>>3]=+p[n+376>>3];p[ia>>3]=+p[n+384>>3];p[ja>>3]=+p[n+392>>3];p[ka>>3]=+p[n+400>>3];p[la>>3]=+p[n+408>>3];p[ma>>3]=+p[n+416>>3];p[na>>3]=+p[n+424>>3];XWa(Tb,Sb)}else XWa(g,Tb);break a}default:break a}}else g=n;while(0);j=f[g+296>>2]|0;switch(j|0){case 1:{SWa(Tb);TWa(Tb,pa,1.0,1.0);g=n+304|0;if((g|0)==(Tb|0)){p[Sb>>3]=+p[Tb>>3];p[Ua>>3]=+p[n+312>>3];p[Va>>3]=+p[n+320>>3];p[Wa>>3]=+p[n+328>>3];p[Xa>>3]=+p[n+336>>3];p[Ya>>3]=+p[n+344>>3];p[Za>>3]=+p[n+352>>3];p[_a>>3]=+p[n+360>>3];p[$a>>3]=+p[n+368>>3];p[ab>>3]=+p[n+376>>3];p[bb>>3]=+p[n+384>>3];p[cb>>3]=+p[n+392>>3];p[db>>3]=+p[n+400>>3];p[eb>>3]=+p[n+408>>3];p[fb>>3]=+p[n+416>>3];p[gb>>3]=+p[n+424>>3];XWa(Tb,Sb)}else XWa(g,Tb);break}case 2:{SWa(Tb);TWa(Tb,1.0,Ob,1.0);g=n+304|0;if((g|0)==(Tb|0)){p[Sb>>3]=+p[Tb>>3];p[hb>>3]=+p[n+312>>3];p[ib>>3]=+p[n+320>>3];p[jb>>3]=+p[n+328>>3];p[kb>>3]=+p[n+336>>3];p[lb>>3]=+p[n+344>>3];p[mb>>3]=+p[n+352>>3];p[nb>>3]=+p[n+360>>3];p[ob>>3]=+p[n+368>>3];p[pb>>3]=+p[n+376>>3];p[qb>>3]=+p[n+384>>3];p[rb>>3]=+p[n+392>>3];p[sb>>3]=+p[n+400>>3];p[tb>>3]=+p[n+408>>3];p[ub>>3]=+p[n+416>>3];p[vb>>3]=+p[n+424>>3];XWa(Tb,Sb)}else XWa(g,Tb);break}default:{}}if((i?(n|0)==(f[h+16>>2]|0):0)?(Pb=h+20|0,Qb=h+24|0,Rb=f[Pb>>2]|0,(f[Qb>>2]|0)!=(Rb|0)):0){h=0;g=Rb;do{n=f[g+(h*272|0)+4>>2]|0;c:do if(n|0?(f[n+136>>2]|0)==0:0)switch(j|0){case 1:{SWa(Tb);TWa(Tb,Ob,1.0,1.0);a=g+(h*272|0)+8|0;if((a|0)==(Tb|0)){p[Sb>>3]=+p[Tb>>3];p[qa>>3]=+p[g+(h*272|0)+16>>3];p[ra>>3]=+p[g+(h*272|0)+24>>3];p[sa>>3]=+p[g+(h*272|0)+32>>3];p[ta>>3]=+p[g+(h*272|0)+40>>3];p[ua>>3]=+p[g+(h*272|0)+48>>3];p[va>>3]=+p[g+(h*272|0)+56>>3];p[wa>>3]=+p[g+(h*272|0)+64>>3];p[xa>>3]=+p[g+(h*272|0)+72>>3];p[ya>>3]=+p[g+(h*272|0)+80>>3];p[za>>3]=+p[g+(h*272|0)+88>>3];p[Aa>>3]=+p[g+(h*272|0)+96>>3];p[Ba>>3]=+p[g+(h*272|0)+104>>3];p[Ca>>3]=+p[g+(h*272|0)+112>>3];p[Da>>3]=+p[g+(h*272|0)+120>>3];p[Ea>>3]=+p[g+(h*272|0)+128>>3];XWa(Tb,Sb)}else XWa(a,Tb);break c}case 2:{SWa(Tb);TWa(Tb,1.0,pa,1.0);a=g+(h*272|0)+8|0;if((a|0)==(Tb|0)){p[Sb>>3]=+p[Tb>>3];p[Fa>>3]=+p[g+(h*272|0)+16>>3];p[Ga>>3]=+p[g+(h*272|0)+24>>3];p[Ha>>3]=+p[g+(h*272|0)+32>>3];p[Ia>>3]=+p[g+(h*272|0)+40>>3];p[Ja>>3]=+p[g+(h*272|0)+48>>3];p[Ka>>3]=+p[g+(h*272|0)+56>>3];p[La>>3]=+p[g+(h*272|0)+64>>3];p[Ma>>3]=+p[g+(h*272|0)+72>>3];p[Na>>3]=+p[g+(h*272|0)+80>>3];p[Oa>>3]=+p[g+(h*272|0)+88>>3];p[Pa>>3]=+p[g+(h*272|0)+96>>3];p[Qa>>3]=+p[g+(h*272|0)+104>>3];p[Ra>>3]=+p[g+(h*272|0)+112>>3];p[Sa>>3]=+p[g+(h*272|0)+120>>3];p[Ta>>3]=+p[g+(h*272|0)+128>>3];XWa(Tb,Sb)}else XWa(a,Tb);break c}default:break c}while(0);h=h+1|0;g=f[Pb>>2]|0}while(h>>>0<(((f[Qb>>2]|0)-g|0)/272|0)>>>0)}}}while(0);g=f[o+4>>2]|0;o=g}while((Fb|0)!=(o|0));g=f[Gb>>2]|0;i=g+44|0;h=g+40|0;a=f[Wb>>2]|0}f[g+32>>2]=b;f[g+36>>2]=c;f[h>>2]=d;f[i>>2]=e;e=a;UK(Xb,e);u=Yb;return}function UK(a,b){a=a|0;b=b|0;if(!b)return;else{UK(a,f[b>>2]|0);UK(a,f[b+4>>2]|0);NDb(b);return}}function VK(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;i=a+4|0;j=f[a>>2]|0;k=(f[i>>2]|0)-j|0;g=k>>2;c=g+1|0;if(c>>>0>1073741823)KEb(a);l=a+8|0;e=(f[l>>2]|0)-j|0;h=e>>1;h=e>>2>>>0<536870911?(h>>>0<c>>>0?c:h):1073741823;do if(h)if(h>>>0>1073741823){l=mb(8)|0;RDb(l,238482);f[l>>2]=144484;qb(l|0,84192,1464)}else{e=LDb(h<<2)|0;d=e;break}else{d=0;e=0}while(0);c=d+(g<<2)|0;f[c>>2]=f[b>>2];if((k|0)>0)gGb(e|0,j|0,k|0)|0;f[a>>2]=d;f[i>>2]=c+4;f[l>>2]=d+(h<<2);if(!j)return;NDb(j);return}function WK(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=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;a:while(1){q=b;e=b+-4|0;r=b+-8|0;s=b;b:while(1){d=q-a|0;g=d>>2;switch(g|0){case 2:{d=4;break a}case 3:{d=8;break a}case 4:{d=26;break a}case 5:{d=27;break a}case 1:case 0:{d=112;break a}default:{}}if((d|0)<124){d=29;break a}n=a+(((g|0)/2|0)<<2)|0;do if((d|0)>3996){d=(g|0)/4|0;d=YK(a,a+(d<<2)|0,n,n+(d<<2)|0,e,c)|0}else{h=f[n>>2]|0;p=f[a>>2]|0;i=f[h+560>>2]|0;m=f[p+560>>2]|0;k=h;o=p;if((i|0)>=(m|0))if((m|0)<(i|0))j=0;else j=(f[h+564>>2]|0)<(f[p+564>>2]|0);else j=1;d=f[e>>2]|0;g=f[d+560>>2]|0;l=d;if((g|0)>=(i|0))if((i|0)<(g|0))d=0;else d=(f[d+564>>2]|0)<(f[h+564>>2]|0);else d=1;if(!j){if(!d){d=0;break}f[n>>2]=l;f[e>>2]=k;d=f[n>>2]|0;g=f[a>>2]|0;h=f[d+560>>2]|0;i=f[g+560>>2]|0;j=g;k=d;if((h|0)>=(i|0)){if((i|0)<(h|0)){d=1;break}if((f[d+564>>2]|0)>=(f[g+564>>2]|0)){d=1;break}}f[a>>2]=k;f[n>>2]=j;d=2;break}if(d){f[a>>2]=l;f[e>>2]=o;d=1;break}f[a>>2]=k;f[n>>2]=o;d=f[e>>2]|0;g=f[d+560>>2]|0;h=d;if((g|0)>=(m|0)){if((m|0)<(g|0)){d=1;break}if((f[d+564>>2]|0)>=(f[p+564>>2]|0)){d=1;break}}f[n>>2]=h;f[e>>2]=o;d=2}while(0);m=f[a>>2]|0;g=f[n>>2]|0;o=f[m+560>>2]|0;k=f[g+560>>2]|0;l=m;do if((o|0)<(k|0))g=e;else{if((k|0)>=(o|0)?(f[m+564>>2]|0)<(f[g+564>>2]|0):0){g=e;break}if((a|0)==(r|0)){d=55;break b}j=g+564|0;g=r;while(1){h=f[g>>2]|0;i=f[h+560>>2]|0;if((i|0)<(k|0))break;if((k|0)>=(i|0)?(f[h+564>>2]|0)<(f[j>>2]|0):0)break;g=g+-4|0;if((a|0)==(g|0)){d=55;break b}}f[a>>2]=h;f[g>>2]=l;d=d+1|0}while(0);h=a+4|0;c:do if(h>>>0<g>>>0)while(1){m=f[n>>2]|0;l=f[m+560>>2]|0;m=m+564|0;while(1){i=f[h>>2]|0;j=f[i+560>>2]|0;if((j|0)>=(l|0)){if((l|0)<(j|0))break;if((f[i+564>>2]|0)>=(f[m>>2]|0))break}h=h+4|0}g=g+-4|0;k=f[g>>2]|0;j=f[k+560>>2]|0;d:do if((j|0)>=(l|0))do{if((l|0)>=(j|0)?(f[k+564>>2]|0)<(f[m>>2]|0):0)break d;g=g+-4|0;k=f[g>>2]|0;j=f[k+560>>2]|0}while((j|0)>=(l|0));while(0);if(h>>>0>g>>>0)break c;f[h>>2]=f[g>>2];f[g>>2]=i;n=(n|0)==(h|0)?g:n;h=h+4|0;d=d+1|0}while(0);do if((h|0)!=(n|0)){g=f[n>>2]|0;i=f[h>>2]|0;j=f[g+560>>2]|0;k=f[i+560>>2]|0;l=i;m=g;if((j|0)>=(k|0)){if((k|0)<(j|0))break;if((f[g+564>>2]|0)>=(f[i+564>>2]|0))break}f[h>>2]=m;f[n>>2]=l;d=d+1|0}while(0);if(!d){g=_K(a,h,c)|0;d=h+4|0;if(_K(d,b,c)|0){d=105;break}if(g){e=2;a=d;d=110;break}}p=h;if((p-a|0)>=(s-p|0)){d=109;break}WK(a,h,c);a=h+4|0}e:do if((d|0)==55){d=a+4|0;g=f[e>>2]|0;h=f[g+560>>2]|0;j=g;do if((o|0)>=(h|0)){if((h|0)>=(o|0)?(f[m+564>>2]|0)<(f[g+564>>2]|0):0)break;if((d|0)==(e|0)){d=112;break a}i=m+564|0;while(1){g=f[d>>2]|0;h=f[g+560>>2]|0;if((o|0)<(h|0))break;if((h|0)>=(o|0)?(f[i>>2]|0)<(f[g+564>>2]|0):0)break;d=d+4|0;if((d|0)==(e|0)){d=112;break a}}f[d>>2]=j;f[e>>2]=g;d=d+4|0}while(0);if((d|0)==(e|0)){d=112;break a}while(1){j=f[a>>2]|0;h=f[d>>2]|0;k=f[j+560>>2]|0;g=f[h+560>>2]|0;f:do if((k|0)>=(g|0)){i=j+564|0;do{if((g|0)>=(k|0)?(f[i>>2]|0)<(f[h+564>>2]|0):0)break f;d=d+4|0;h=f[d>>2]|0;g=f[h+560>>2]|0}while((k|0)>=(g|0))}while(0);i=j+564|0;while(1){e=e+-4|0;g=f[e>>2]|0;h=f[g+560>>2]|0;if((k|0)>=(h|0)){if((h|0)<(k|0))break;if((f[i>>2]|0)>=(f[g+564>>2]|0))break}}if(d>>>0>=e>>>0){e=4;a=d;d=110;break e}s=f[d>>2]|0;f[d>>2]=g;f[e>>2]=s;d=d+4|0}}else if((d|0)==105){e=g?1:2;b=g?b:h;d=110}else if((d|0)==109){d=0;WK(h+4|0,b,c);b=h}while(0);if((d|0)==110)switch(e&7){case 2:case 4:case 0:break;default:{d=112;break a}}}if((d|0)==4){b=b+-4|0;d=f[b>>2]|0;e=f[a>>2]|0;g=f[d+560>>2]|0;h=f[e+560>>2]|0;i=e;j=d;if((g|0)>=(h|0)){if((h|0)<(g|0))return;if((f[d+564>>2]|0)>=(f[e+564>>2]|0))return}f[a>>2]=j;f[b>>2]=i;return}else if((d|0)==8){o=a+4|0;k=b+-4|0;b=f[o>>2]|0;l=f[a>>2]|0;d=f[b+560>>2]|0;m=f[l+560>>2]|0;i=b;n=l;if((d|0)>=(m|0))if((m|0)<(d|0))h=0;else h=(f[b+564>>2]|0)<(f[l+564>>2]|0);else h=1;e=f[k>>2]|0;g=f[e+560>>2]|0;j=e;if((g|0)>=(d|0))if((d|0)<(g|0))b=0;else b=(f[e+564>>2]|0)<(f[b+564>>2]|0);else b=1;if(!h){if(!b)return;f[o>>2]=j;f[k>>2]=i;b=f[o>>2]|0;d=f[a>>2]|0;e=f[b+560>>2]|0;g=f[d+560>>2]|0;h=d;i=b;if((e|0)>=(g|0)){if((g|0)<(e|0))return;if((f[b+564>>2]|0)>=(f[d+564>>2]|0))return}f[a>>2]=i;f[o>>2]=h;return}if(b){f[a>>2]=j;f[k>>2]=n;return}f[a>>2]=i;f[o>>2]=n;a=f[k>>2]|0;b=f[a+560>>2]|0;d=a;if((b|0)>=(m|0)){if((m|0)<(b|0))return;if((f[a+564>>2]|0)>=(f[l+564>>2]|0))return}f[o>>2]=d;f[k>>2]=n;return}else if((d|0)==26){XK(a,a+4|0,a+8|0,b+-4|0,c)|0;return}else if((d|0)==27){YK(a,a+4|0,a+8|0,a+12|0,b+-4|0,c)|0;return}else if((d|0)==29){ZK(a,b,c);return}else if((d|0)==112)return}function XK(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|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;r=f[b>>2]|0;o=f[a>>2]|0;q=r+560|0;h=f[q>>2]|0;n=o+560|0;m=f[n>>2]|0;j=r;p=o;if((h|0)>=(m|0))if((m|0)<(h|0))i=0;else i=(f[r+564>>2]|0)<(f[o+564>>2]|0);else i=1;k=f[c>>2]|0;g=k+560|0;e=f[g>>2]|0;l=k;if((e|0)>=(h|0))if((h|0)<(e|0))e=0;else e=(f[k+564>>2]|0)<(f[r+564>>2]|0);else e=1;do if(!i)if(e){f[b>>2]=l;f[c>>2]=j;e=f[b>>2]|0;g=f[a>>2]|0;h=f[e+560>>2]|0;i=f[g+560>>2]|0;k=g;l=e;if((h|0)>=(i|0)){if((i|0)<(h|0)){m=1;g=q;k=r;break}if((f[e+564>>2]|0)>=(f[g+564>>2]|0)){m=1;g=q;k=r;break}}f[a>>2]=l;f[b>>2]=k;j=f[c>>2]|0;m=2;g=j+560|0;k=j}else{m=0;j=l}else{if(e){f[a>>2]=l;f[c>>2]=p;m=1;g=n;k=o;j=p;break}f[a>>2]=j;f[b>>2]=p;h=f[c>>2]|0;g=h+560|0;e=f[g>>2]|0;j=h;if((e|0)>=(m|0)){if((m|0)<(e|0)){m=1;k=h;break}if((f[h+564>>2]|0)>=(f[o+564>>2]|0)){m=1;k=h;break}}f[b>>2]=j;f[c>>2]=p;m=2;g=n;k=o;j=p}while(0);h=f[d>>2]|0;i=f[h+560>>2]|0;e=f[g>>2]|0;g=h;if((i|0)>=(e|0)){if((e|0)<(i|0)){b=m;return b|0}if((f[h+564>>2]|0)>=(f[k+564>>2]|0)){b=m;return b|0}}f[c>>2]=g;f[d>>2]=j;e=m+1|0;g=f[c>>2]|0;h=f[b>>2]|0;i=f[g+560>>2]|0;j=f[h+560>>2]|0;k=h;l=g;if((i|0)>=(j|0)){if((j|0)<(i|0)){b=e;return b|0}if((f[g+564>>2]|0)>=(f[h+564>>2]|0)){b=e;return b|0}}f[b>>2]=l;f[c>>2]=k;e=m+2|0;g=f[b>>2]|0;h=f[a>>2]|0;i=f[g+560>>2]|0;j=f[h+560>>2]|0;k=h;l=g;if((i|0)>=(j|0)){if((j|0)<(i|0)){b=e;return b|0}if((f[g+564>>2]|0)>=(f[h+564>>2]|0)){b=e;return b|0}}f[a>>2]=l;f[b>>2]=k;b=m+3|0;return b|0}function YK(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0;m=XK(a,b,c,d,g)|0;k=f[e>>2]|0;l=f[d>>2]|0;g=f[k+560>>2]|0;h=f[l+560>>2]|0;i=l;j=k;if((g|0)>=(h|0)){if((h|0)<(g|0)){b=m;return b|0}if((f[k+564>>2]|0)>=(f[l+564>>2]|0)){b=m;return b|0}}f[d>>2]=j;f[e>>2]=i;g=m+1|0;h=f[d>>2]|0;i=f[c>>2]|0;j=f[h+560>>2]|0;k=f[i+560>>2]|0;l=i;e=h;if((j|0)>=(k|0)){if((k|0)<(j|0)){b=g;return b|0}if((f[h+564>>2]|0)>=(f[i+564>>2]|0)){b=g;return b|0}}f[c>>2]=e;f[d>>2]=l;g=m+2|0;h=f[c>>2]|0;i=f[b>>2]|0;j=f[h+560>>2]|0;k=f[i+560>>2]|0;l=i;e=h;if((j|0)>=(k|0)){if((k|0)<(j|0)){b=g;return b|0}if((f[h+564>>2]|0)>=(f[i+564>>2]|0)){b=g;return b|0}}f[b>>2]=e;f[c>>2]=l;g=m+3|0;h=f[b>>2]|0;i=f[a>>2]|0;j=f[h+560>>2]|0;k=f[i+560>>2]|0;l=i;e=h;if((j|0)>=(k|0)){if((k|0)<(j|0)){b=g;return b|0}if((f[h+564>>2]|0)>=(f[i+564>>2]|0)){b=g;return b|0}}f[a>>2]=e;f[b>>2]=l;b=m+4|0;return b|0}function ZK(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;c=a+8|0;m=a+4|0;n=f[m>>2]|0;o=f[a>>2]|0;d=f[n+560>>2]|0;h=f[o+560>>2]|0;i=n;j=o;if((d|0)>=(h|0))if((h|0)<(d|0))g=0;else g=(f[n+564>>2]|0)<(f[o+564>>2]|0);else g=1;e=f[c>>2]|0;k=f[e+560>>2]|0;l=e;if((k|0)>=(d|0))if((d|0)<(k|0))d=0;else d=(f[e+564>>2]|0)<(f[n+564>>2]|0);else d=1;do if(!g)if(d){f[m>>2]=l;f[c>>2]=i;if((k|0)>=(h|0)){if((h|0)<(k|0)){e=n;break}if((f[e+564>>2]|0)>=(f[o+564>>2]|0)){e=n;break}}f[a>>2]=l;f[m>>2]=j;e=n}else i=l;else{if(d){f[a>>2]=l;f[c>>2]=j;i=j;e=o;break}f[a>>2]=i;f[m>>2]=j;if((k|0)>=(h|0)){if((h|0)<(k|0)){i=l;break}if((f[e+564>>2]|0)>=(f[o+564>>2]|0)){i=l;break}}f[m>>2]=l;f[c>>2]=j;i=j;e=o}while(0);d=a+12|0;if((d|0)==(b|0))return;while(1){g=f[d>>2]|0;k=f[g+560>>2]|0;h=f[e+560>>2]|0;l=g;if((k|0)>=(h|0)){if((h|0)>=(k|0)?(p=g+564|0,(f[p>>2]|0)<(f[e+564>>2]|0)):0){j=p;q=26}}else{j=g+564|0;q=26}if((q|0)==26){q=0;f[d>>2]=i;a:do if((c|0)!=(a|0)){e=c;while(1){i=e+-4|0;e=f[i>>2]|0;g=f[e+560>>2]|0;h=e;if((k|0)>=(g|0)){if((g|0)<(k|0))break a;if((f[j>>2]|0)>=(f[e+564>>2]|0))break a}f[c>>2]=h;if((i|0)==(a|0)){c=a;break}else{e=i;c=i}}}while(0);f[c>>2]=l}c=d+4|0;if((c|0)==(b|0))break;i=f[d>>2]|0;o=d;d=c;e=i;c=o}return}function _K(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;switch(b-a>>2|0){case 2:{h=b+-4|0;i=f[h>>2]|0;j=f[a>>2]|0;c=f[i+560>>2]|0;d=f[j+560>>2]|0;e=j;g=i;if((c|0)>=(d|0)){if((d|0)<(c|0)){a=1;return a|0}if((f[i+564>>2]|0)>=(f[j+564>>2]|0)){a=1;return a|0}}f[a>>2]=g;f[h>>2]=e;a=1;return a|0}case 3:{o=a+4|0;k=b+-4|0;c=f[o>>2]|0;l=f[a>>2]|0;d=f[c+560>>2]|0;m=f[l+560>>2]|0;i=c;n=l;if((d|0)>=(m|0))if((m|0)<(d|0))h=0;else h=(f[c+564>>2]|0)<(f[l+564>>2]|0);else h=1;e=f[k>>2]|0;g=f[e+560>>2]|0;j=e;if((g|0)>=(d|0))if((d|0)<(g|0))c=0;else c=(f[e+564>>2]|0)<(f[c+564>>2]|0);else c=1;if(!h){if(!c){a=1;return a|0}f[o>>2]=j;f[k>>2]=i;c=f[o>>2]|0;d=f[a>>2]|0;e=f[c+560>>2]|0;g=f[d+560>>2]|0;h=d;i=c;if((e|0)>=(g|0)){if((g|0)<(e|0)){a=1;return a|0}if((f[c+564>>2]|0)>=(f[d+564>>2]|0)){a=1;return a|0}}f[a>>2]=i;f[o>>2]=h;a=1;return a|0}if(c){f[a>>2]=j;f[k>>2]=n;a=1;return a|0}f[a>>2]=i;f[o>>2]=n;c=f[k>>2]|0;d=f[c+560>>2]|0;e=c;if((d|0)>=(m|0)){if((m|0)<(d|0)){a=1;return a|0}if((f[c+564>>2]|0)>=(f[l+564>>2]|0)){a=1;return a|0}}f[o>>2]=e;f[k>>2]=n;a=1;return a|0}case 4:{XK(a,a+4|0,a+8|0,b+-4|0,c)|0;a=1;return a|0}case 5:{YK(a,a+4|0,a+8|0,a+12|0,b+-4|0,c)|0;a=1;return a|0}case 1:case 0:{a=1;return a|0}default:{d=a+8|0;j=a+4|0;k=f[j>>2]|0;l=f[a>>2]|0;c=f[k+560>>2]|0;m=f[l+560>>2]|0;n=k;o=l;if((c|0)>=(m|0))if((m|0)<(c|0))g=0;else g=(f[k+564>>2]|0)<(f[l+564>>2]|0);else g=1;e=f[d>>2]|0;h=f[e+560>>2]|0;i=e;if((h|0)>=(c|0))if((c|0)<(h|0))c=0;else c=(f[e+564>>2]|0)<(f[k+564>>2]|0);else c=1;do if(!g){if(c){f[j>>2]=i;f[d>>2]=n;if((h|0)>=(m|0)){if((m|0)<(h|0)){e=k;break}if((f[e+564>>2]|0)>=(f[l+564>>2]|0)){e=k;break}}f[a>>2]=i;f[j>>2]=o;e=k}}else{if(c){f[a>>2]=i;f[d>>2]=o;e=l;break}f[a>>2]=n;f[j>>2]=o;if((h|0)>=(m|0)){if((m|0)<(h|0))break;if((f[e+564>>2]|0)>=(f[l+564>>2]|0))break}f[j>>2]=i;f[d>>2]=o;e=l}while(0);c=a+12|0;if((c|0)==(b|0)){a=1;return a|0}m=c;c=0;while(1){g=f[m>>2]|0;k=f[g+560>>2]|0;h=f[e+560>>2]|0;l=g;if((k|0)>=(h|0)){if((h|0)>=(k|0)?(p=g+564|0,(f[p>>2]|0)<(f[e+564>>2]|0)):0){j=p;q=50}}else{j=g+564|0;q=50}if((q|0)==50){q=0;f[m>>2]=f[d>>2];a:do if((d|0)!=(a|0)){e=d;while(1){i=e+-4|0;e=f[i>>2]|0;g=f[e+560>>2]|0;h=e;if((k|0)>=(g|0)){if((g|0)<(k|0))break a;if((f[j>>2]|0)>=(f[e+564>>2]|0))break a}f[d>>2]=h;if((i|0)==(a|0)){d=a;break}else{e=i;d=i}}}while(0);f[d>>2]=l;c=c+1|0;if((c|0)==8)break}d=m+4|0;if((d|0)==(b|0)){c=1;q=60;break}e=f[m>>2]|0;o=m;m=d;d=o}if((q|0)==60)return c|0;a=(m+4|0)==(b|0);return a|0}}return 0}function $K(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=u;u=u+16|0;i=k;if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>3){j=qub(Nv(fub(Nv(Mv(4)|0,180310,6)|0,c)|0,239531,1)|0,a)|0;Ktb(i,j+(f[(f[j>>2]|0)+-12>>2]|0)|0);h=Bvb(i,295164)|0;h=wk[f[(f[h>>2]|0)+28>>2]&1023](h,10)|0;Cvb(i);rub(j,h)|0;Rtb(j)|0}kL(a,0);j=a+48|0;d=f[j>>2]|0;if(d){g=f[d+124>>2]|0;sk[f[(f[72490]|0)+8>>2]&2047](289960)|0;d=f[72482]|0;if(d){e=289928;do{h=(f[d+16>>2]|0)>>>0<g>>>0;e=h?e:d;d=f[(h?d+4|0:d)>>2]|0}while((d|0)!=0);if((e|0)!=289928?(f[e+16>>2]|0)>>>0<=g>>>0:0)d=f[e+20>>2]|0;else d=0}else d=0;sk[f[(f[72490]|0)+12>>2]&2047](289960)|0;if(d)h=(f[d+28>>2]|0)>>>0>1;else h=0}else h=0;d=f[a+36>>2]|0;g=a+32|0;e=d;if((g|0)!=(e|0))do{d=f[d+8>>2]|0;if(d|0){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>3){l=Nv(qub(Nv(Mv(4)|0,180317,32)|0,d)|0,180350,8)|0;l=qub(l,f[j>>2]|0)|0;Ktb(i,l+(f[(f[l>>2]|0)+-12>>2]|0)|0);m=Bvb(i,295164)|0;m=wk[f[(f[m>>2]|0)+28>>2]&1023](m,10)|0;Cvb(i);rub(l,m)|0;Rtb(l)|0}Vk[f[(f[d>>2]|0)+160>>2]&1023](d,f[j>>2]|0)}d=f[e+4>>2]|0;e=d}while((g|0)!=(e|0));d=f[j>>2]|0;if(d|0)_Ca(d);if(c){do if(f[j>>2]|0?sk[f[(f[a>>2]|0)+180>>2]&2047](a)|0:0){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>3){m=Nv(fub(Nv(Mv(4)|0,180359,28)|0,h)|0,180388,24)|0;m=jub(m,f[(f[j>>2]|0)+124>>2]|0)|0;Ktb(i,m+(f[(f[m>>2]|0)+-12>>2]|0)|0);l=Bvb(i,295164)|0;l=wk[f[(f[l>>2]|0)+28>>2]&1023](l,10)|0;Cvb(i);rub(m,l)|0;Rtb(m)|0}m=jGa()|0;c=a+72|0;f[c>>2]=m;if(!(sk[f[(f[a>>2]|0)+188>>2]&2047](a)|0)){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=3)break;m=Nv(Mv(4)|0,180466,75)|0;Ktb(i,m+(f[(f[m>>2]|0)+-12>>2]|0)|0);l=Bvb(i,295164)|0;l=wk[f[(f[l>>2]|0)+28>>2]&1023](l,10)|0;Cvb(i);rub(m,l)|0;Rtb(m)|0;break}m=f[j>>2]|0;Nk[f[(f[m>>2]|0)+12>>2]&2047](m);do if(h){g=f[(f[j>>2]|0)+124>>2]|0;sk[f[(f[72490]|0)+8>>2]&2047](289960)|0;d=f[72482]|0;if(d){e=289928;do{m=(f[d+16>>2]|0)>>>0<g>>>0;e=m?e:d;d=f[(m?d+4|0:d)>>2]|0}while((d|0)!=0);if((e|0)!=289928?(f[e+16>>2]|0)>>>0<=g>>>0:0){e=f[e+20>>2]|0;d=e}else{d=0;e=0}}else{d=0;e=0}sk[f[(f[72490]|0)+12>>2]&2047](289960)|0;Nk[f[(f[d>>2]|0)+32>>2]&2047](e)}else{if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>3){m=Nv(Mv(4)|0,180413,26)|0;Ktb(i,m+(f[(f[m>>2]|0)+-12>>2]|0)|0);l=Bvb(i,295164)|0;l=wk[f[(f[l>>2]|0)+28>>2]&1023](l,10)|0;Cvb(i);rub(m,l)|0;Rtb(m)|0}g=f[(f[j>>2]|0)+124>>2]|0;sk[f[(f[72490]|0)+8>>2]&2047](289960)|0;d=f[72482]|0;do if(d){e=289928;do{m=(f[d+16>>2]|0)>>>0<g>>>0;e=m?e:d;d=f[(m?d+4|0:d)>>2]|0}while((d|0)!=0);if((e|0)!=289928){if((f[e+16>>2]|0)>>>0>g>>>0){d=0;e=0;break}e=f[e+20>>2]|0;d=e}else{d=0;e=0}}else{d=0;e=0}while(0);sk[f[(f[72490]|0)+12>>2]&2047](289960)|0;Nk[f[(f[d>>2]|0)+36>>2]&2047](e);g=f[(f[j>>2]|0)+124>>2]|0;sk[f[(f[72490]|0)+8>>2]&2047](289960)|0;d=f[72482]|0;do if(!d){d=0;e=0}else{e=289928;do{m=(f[d+16>>2]|0)>>>0<g>>>0;e=m?e:d;d=f[(m?d+4|0:d)>>2]|0}while((d|0)!=0);if((e|0)==289928){d=0;e=0;break}if((f[e+16>>2]|0)>>>0>g>>>0){d=0;e=0;break}e=f[e+20>>2]|0;d=e}while(0);sk[f[(f[72490]|0)+12>>2]&2047](289960)|0;Nk[f[(f[d>>2]|0)+32>>2]&2047](e);do if(!(b[287952]|0)){if(!(PFb(287952)|0))break;Lv(289680)}while(0);if((f[72420]|0)<=3)break;m=Nv(Mv(4)|0,180440,25)|0;Ktb(i,m+(f[(f[m>>2]|0)+-12>>2]|0)|0);l=Bvb(i,295164)|0;l=wk[f[(f[l>>2]|0)+28>>2]&1023](l,10)|0;Cvb(i);rub(m,l)|0;Rtb(m)|0}while(0);sk[f[(f[a>>2]|0)+196>>2]&2047](a)|0;f[c>>2]=-1}while(0);Nk[f[(f[a>>2]|0)+184>>2]&2047](a)}if(!h){if(!(f[j>>2]|0)){u=k;return}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>3){m=Nv(Mv(4)|0,180542,40)|0;Ktb(i,m+(f[(f[m>>2]|0)+-12>>2]|0)|0);l=Bvb(i,295164)|0;l=wk[f[(f[l>>2]|0)+28>>2]&1023](l,10)|0;Cvb(i);rub(m,l)|0;Rtb(m)|0}g=f[(f[j>>2]|0)+124>>2]|0;sk[f[(f[72490]|0)+8>>2]&2047](289960)|0;d=f[72482]|0;if(d){e=289928;do{m=(f[d+16>>2]|0)>>>0<g>>>0;e=m?e:d;d=f[(m?d+4|0:d)>>2]|0}while((d|0)!=0);if((e|0)!=289928?(f[e+16>>2]|0)>>>0<=g>>>0:0){e=f[e+20>>2]|0;d=e}else{d=0;e=0}}else{d=0;e=0}sk[f[(f[72490]|0)+12>>2]&2047](289960)|0;Nk[f[(f[d>>2]|0)+40>>2]&2047](e)}d=f[j>>2]|0;if(!d){u=k;return}lL(f[d+124>>2]|0);d=f[j>>2]|0;if(!d){u=k;return}f[j>>2]=0;l=d+8|0;m=f[l>>2]|0;f[l>>2]=m-1;if((m|0)!=1){u=k;return}X4(d,1,1);u=k;return}function aL(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0;i=u;u=u+16|0;c=i;if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>3){e=qub(Nv(Mv(4)|0,180270,39)|0,a)|0;Ktb(c,e+(f[(f[e>>2]|0)+-12>>2]|0)|0);d=Bvb(c,295164)|0;d=wk[f[(f[d>>2]|0)+28>>2]&1023](d,10)|0;Cvb(c);rub(e,d)|0;Rtb(e)|0}if(!a){u=i;return}sk[f[(f[72490]|0)+8>>2]&2047](289960)|0;c=f[72493]|0;d=f[72494]|0;e=d;a:do if((c|0)==(d|0)){h=c;g=11}else do{if((f[c>>2]|0)==(a|0)){h=c;g=11;break a}c=c+4|0}while((c|0)!=(d|0));while(0);if((g|0)==11?(h|0)!=(d|0):0){d=h+4|0;c=e-d|0;if(c|0)hGb(h|0,d|0,c|0)|0;f[72494]=h+(c>>2<<2)}sk[f[(f[72490]|0)+12>>2]&2047](289960)|0;u=i;return}function bL(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(b|0?(d=b+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(b,1,1);f[a>>2]=0;return}function cL(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(b|0?(d=b+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(b,1,1);f[a>>2]=0;return}function dL(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(b|0?(d=b+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(b,1,1);f[a>>2]=0;return}function eL(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(!b){f[a>>2]=0;return}b=b+(f[(f[b>>2]|0)+-12>>2]|0)|0;d=b+8|0;c=f[d>>2]|0;f[d>>2]=c-1;if((c|0)!=1){f[a>>2]=0;return}X4(b,1,1);f[a>>2]=0;return}function fL(a){a=a|0;var b=0,c=0,d=0,e=0,g=0;b=a+8|0;if(!(f[b>>2]|0))return;c=f[a+4>>2]|0;d=(f[a>>2]|0)+4|0;g=f[c>>2]|0;f[g+4>>2]=f[d>>2];f[f[d>>2]>>2]=g;f[b>>2]=0;if((c|0)==(a|0))return;do{b=c;c=f[c+4>>2]|0;d=f[b+8>>2]|0;if(d|0?(e=d+(f[(f[d>>2]|0)+-12>>2]|0)|0,d=e+8|0,g=f[d>>2]|0,f[d>>2]=g-1,(g|0)==1):0)X4(e,1,1);NDb(b)}while((c|0)!=(a|0));return}function gL(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(!b){f[a>>2]=0;return}b=b+(f[(f[b>>2]|0)+-12>>2]|0)|0;d=b+8|0;c=f[d>>2]|0;f[d>>2]=c-1;if((c|0)!=1){f[a>>2]=0;return}X4(b,1,1);f[a>>2]=0;return}function hL(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(b|0?(d=b+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(b,1,1);f[a>>2]=0;return}function iL(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(b|0?(d=b+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(b,1,1);f[a>>2]=0;return}function jL(a){a=a|0;var b=0,c=0,d=0,e=0;c=a+8|0;if(!(f[c>>2]|0))return;b=f[a+4>>2]|0;d=(f[a>>2]|0)+4|0;e=f[b>>2]|0;f[e+4>>2]=f[d>>2];f[f[d>>2]>>2]=e;f[c>>2]=0;if((b|0)==(a|0))return;do{e=b;b=f[b+4>>2]|0;NDb(e)}while((b|0)!=(a|0));return}function kL(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;g=a+108|0;c=f[g>>2]|0;if((c|0)==(b|0))return;if(!c)c=0;else{sk[f[(f[c>>2]|0)+16>>2]&2047](c)|0;e=f[g>>2]|0;c=e+20|0;d=f[c>>2]|0;if(d|0?(f[c>>2]=0,h=d+8|0,c=f[h>>2]|0,f[h>>2]=c-1,(c|0)==1):0)X4(d,1,1);f[e+24>>2]=0;c=f[g>>2]|0}if((c|0)!=(b|0)){f[g>>2]=b;if(b|0){h=b+8|0;f[h>>2]=(f[h>>2]|0)+1}if(c|0?(b=c+8|0,h=f[b>>2]|0,f[b>>2]=h-1,(h|0)==1):0)X4(c,1,1)}b=f[g>>2]|0;if(!b)return;c=DCa(a)|0;d=b+20|0;e=f[d>>2]|0;if((e|0)!=(c|0)){f[d>>2]=c;if(c|0){h=c+8|0;f[h>>2]=(f[h>>2]|0)+1}if(e|0?(g=e+8|0,h=f[g>>2]|0,f[g>>2]=h-1,(h|0)==1):0)X4(e,1,1);c=f[d>>2]|0}if(!c)c=0;else c=(f[c+24>>2]|0)==0?0:a;f[b+24>>2]=c;return}function lL(a){a=a|0;var b=0,c=0,d=0,e=0;sk[f[(f[72490]|0)+8>>2]&2047](289960)|0;b=f[72482]|0;do if(b){d=289928;while(1){c=f[b+16>>2]|0;if(c>>>0>a>>>0){c=f[b>>2]|0;if(!c){e=5;break}}else{if(c>>>0>=a>>>0){e=9;break}d=b+4|0;c=f[d>>2]|0;if(!c){e=8;break}else b=d}d=b;b=c}if((e|0)==5){c=b;d=b;break}else if((e|0)==8){c=b;break}else if((e|0)==9){c=b;break}}else{c=289928;d=289928}while(0);b=f[d>>2]|0;if(!b){b=LDb(24)|0;f[b+16>>2]=a;f[b+20>>2]=0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=c;f[d>>2]=b;c=f[f[72481]>>2]|0;if(!c)c=b;else{f[72481]=c;c=f[d>>2]|0}Aq(f[72482]|0,c);f[72483]=(f[72483]|0)+1}if(!(f[b+20>>2]|0)){a=f[72490]|0;a=a+12|0;a=f[a>>2]|0;sk[a&2047](289960)|0;return}b=f[72482]|0;do if(b){d=289928;while(1){c=f[b+16>>2]|0;if(c>>>0>a>>>0){c=f[b>>2]|0;if(!c){e=20;break}}else{if(c>>>0>=a>>>0){e=24;break}d=b+4|0;c=f[d>>2]|0;if(!c){e=23;break}else b=d}d=b;b=c}if((e|0)==20){c=b;d=b;break}else if((e|0)==23){c=b;break}else if((e|0)==24){c=b;break}}else{c=289928;d=289928}while(0);b=f[d>>2]|0;if(!b){b=LDb(24)|0;f[b+16>>2]=a;f[b+20>>2]=0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=c;f[d>>2]=b;c=f[f[72481]>>2]|0;if(!c)c=b;else{f[72481]=c;c=f[d>>2]|0}Aq(f[72482]|0,c);f[72483]=(f[72483]|0)+1}if(f[(f[b+20>>2]|0)+28>>2]|0){b=f[72482]|0;do if(b){d=289928;while(1){c=f[b+16>>2]|0;if(c>>>0>a>>>0){c=f[b>>2]|0;if(!c){e=35;break}}else{if(c>>>0>=a>>>0){e=39;break}d=b+4|0;c=f[d>>2]|0;if(!c){e=38;break}else b=d}d=b;b=c}if((e|0)==35){c=b;d=b;break}else if((e|0)==38){c=b;break}else if((e|0)==39){c=b;break}}else{c=289928;d=289928}while(0);b=f[d>>2]|0;if(!b){b=LDb(24)|0;f[b+16>>2]=a;f[b+20>>2]=0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=c;f[d>>2]=b;c=f[f[72481]>>2]|0;if(!c)c=b;else{f[72481]=c;c=f[d>>2]|0}Aq(f[72482]|0,c);f[72483]=(f[72483]|0)+1}e=(f[b+20>>2]|0)+28|0;f[e>>2]=(f[e>>2]|0)+-1}b=f[72482]|0;do if(b){d=289928;while(1){c=f[b+16>>2]|0;if(c>>>0>a>>>0){c=f[b>>2]|0;if(!c){e=50;break}}else{if(c>>>0>=a>>>0){e=54;break}d=b+4|0;c=f[d>>2]|0;if(!c){e=53;break}else b=d}d=b;b=c}if((e|0)==50){c=b;d=b;break}else if((e|0)==53){c=b;break}else if((e|0)==54){c=b;break}}else{c=289928;d=289928}while(0);b=f[d>>2]|0;if(!b){b=LDb(24)|0;f[b+16>>2]=a;f[b+20>>2]=0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=c;f[d>>2]=b;c=f[f[72481]>>2]|0;if(!c)c=b;else{f[72481]=c;c=f[d>>2]|0}Aq(f[72482]|0,c);f[72483]=(f[72483]|0)+1}if(f[(f[b+20>>2]|0)+28>>2]|0){a=f[72490]|0;a=a+12|0;a=f[a>>2]|0;sk[a&2047](289960)|0;return}b=f[72482]|0;do if(b){d=289928;while(1){c=f[b+16>>2]|0;if(c>>>0>a>>>0){c=f[b>>2]|0;if(!c){e=65;break}}else{if(c>>>0>=a>>>0){e=69;break}d=b+4|0;c=f[d>>2]|0;if(!c){e=68;break}else b=d}d=b;b=c}if((e|0)==65){c=b;d=b;break}else if((e|0)==68){c=b;break}else if((e|0)==69){c=b;break}}else{c=289928;d=289928}while(0);b=f[d>>2]|0;if(!b){b=LDb(24)|0;f[b+16>>2]=a;f[b+20>>2]=0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=c;f[d>>2]=b;c=f[f[72481]>>2]|0;if(!c)c=b;else{f[72481]=c;c=f[d>>2]|0}Aq(f[72482]|0,c);f[72483]=(f[72483]|0)+1}b=b+20|0;c=f[b>>2]|0;if(!c){a=f[72490]|0;a=a+12|0;a=f[a>>2]|0;sk[a&2047](289960)|0;return}f[b>>2]=0;e=c+8|0;a=f[e>>2]|0;f[e>>2]=a-1;if((a|0)!=1){a=f[72490]|0;a=a+12|0;a=f[a>>2]|0;sk[a&2047](289960)|0;return}X4(c,1,1);a=f[72490]|0;a=a+12|0;a=f[a>>2]|0;sk[a&2047](289960)|0;return}function mL(a){a=a|0;V4(a);NDb(a);return}function nL(a,b){a=a|0;b=b|0;var c=0,d=0;Nk[f[(f[b>>2]|0)+204>>2]&2047](b);d=f[(f[b+48>>2]|0)+832>>2]|0;c=f[d+1436>>2]|0;if(!c)return;b=a+12|0;a=f[b>>2]|0;if(a|0){yk[c&63](a,0,1e9,0)|0;Nk[f[d+1432>>2]&2047](f[b>>2]|0)}d=wk[f[d+1424>>2]&1023](37143,0)|0;f[b>>2]=d;return}function oL(a){a=a|0;var b=0,c=0,d=0,e=0;f[a>>2]=94608;b=a+20|0;c=f[b>>2]|0;if(c|0?(e=c+8|0,d=f[e>>2]|0,f[e>>2]=d-1,(d|0)==1):0)X4(c,1,1);f[b>>2]=0;b=a+16|0;c=f[b>>2]|0;if(c|0?(d=c+8|0,e=f[d>>2]|0,f[d>>2]=e-1,(e|0)==1):0)X4(c,1,1);f[b>>2]=0;b=a+12|0;c=f[b>>2]|0;if(!c){f[b>>2]=0;V4(a);return}d=c+8|0;e=f[d>>2]|0;f[d>>2]=e-1;if((e|0)!=1){f[b>>2]=0;V4(a);return}X4(c,1,1);f[b>>2]=0;V4(a);return}function pL(a){a=a|0;oL(a);NDb(a);return}function qL(a){a=a|0;var b=0,c=0,d=0,e=0,g=0;f[a>>2]=94684;e=a+12|0;f[e>>2]=94712;tL(a)|0;b=a+48|0;c=f[b>>2]|0;if(c|0?(d=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,g=d+8|0,c=f[g>>2]|0,f[g>>2]=c-1,(c|0)==1):0)X4(d,1,1);f[b>>2]=0;b=a+44|0;c=f[b>>2]|0;if(c|0?(d=c+8|0,g=f[d>>2]|0,f[d>>2]=g-1,(g|0)==1):0)X4(c,1,1);f[b>>2]=0;d8(a+32|0);b=a+20|0;c=f[b>>2]|0;if(!c){f[b>>2]=0;cua(e);V4(a);return}d=c+8|0;g=f[d>>2]|0;f[d>>2]=g-1;if((g|0)!=1){f[b>>2]=0;cua(e);V4(a);return}X4(c,1,1);f[b>>2]=0;cua(e);V4(a);return}function rL(a){a=a|0;qL(a);NDb(a);return}function sL(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;e=f[a+20>>2]|0;if(((e|0?f[e+24>>2]|0:0)?(b=f[a+24>>2]|0,b|0):0)?(g=bFb(b,58336,60400,0)|0,g|0):0){b=jGa()|0;e=g+72|0;f[e>>2]=b;b=g+48|0;if(sk[f[(f[g>>2]|0)+188>>2]&2047](g)|0){d=f[b>>2]|0;Nk[f[(f[d>>2]|0)+12>>2]&2047](d)}d=f[b>>2]|0;Nk[f[(f[d>>2]|0)+12>>2]&2047](d);zL(a);d=f[a+44>>2]|0;c=d+12|0;sk[f[(f[c>>2]|0)+8>>2]&2047](c)|0;b=f[d+32>>2]|0;d=d+28|0;a=b;if((d|0)!=(a|0))do{h=f[b+8>>2]|0;Nk[f[f[h>>2]>>2]&2047](h);b=f[a+4>>2]|0;a=b}while((d|0)!=(a|0));sk[f[(f[c>>2]|0)+12>>2]&2047](c)|0;sk[f[(f[g>>2]|0)+196>>2]&2047](g)|0;f[e>>2]=-1;return}zL(a);d=f[a+44>>2]|0;c=d+12|0;sk[f[(f[c>>2]|0)+8>>2]&2047](c)|0;b=f[d+32>>2]|0;d=d+28|0;a=b;if((d|0)!=(a|0))do{h=f[b+8>>2]|0;Nk[f[f[h>>2]>>2]&2047](h);b=f[a+4>>2]|0;a=b}while((d|0)!=(a|0));sk[f[(f[c>>2]|0)+12>>2]&2047](c)|0;return}function tL(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;l=u;u=u+16|0;i=l;if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>3){h=Nv(qub(Nv(Mv(4)|0,180707,27)|0,a)|0,180735,13)|0;g=a+12|0;h=fub(h,mGa(g)|0)|0;Ktb(i,h+(f[(f[h>>2]|0)+-12>>2]|0)|0);k=Bvb(i,295164)|0;k=wk[f[(f[k>>2]|0)+28>>2]&1023](k,10)|0;Cvb(i);rub(h,k)|0;Rtb(h)|0;h=a}else{g=a+12|0;h=a}if(mGa(g)|0){f[a+28>>2]=1;if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>3){k=qub(Nv(Mv(4)|0,180749,16)|0,h)|0;Ktb(i,k+(f[(f[k>>2]|0)+-12>>2]|0)|0);j=Bvb(i,295164)|0;j=wk[f[(f[j>>2]|0)+28>>2]&1023](j,10)|0;Cvb(i);rub(k,j)|0;Rtb(k)|0}j=a+32|0;sk[f[(f[j>>2]|0)+8>>2]&2047](j)|0;k=a+44|0;c=f[k>>2]|0;if(c|0){c=f[c+24>>2]|0;d=c+4|0;sk[f[(f[d>>2]|0)+8>>2]&2047](d)|0;e=c+24|0;if(!(b[e>>0]|0)){b[e>>0]=1;rua(c+16|0)|0}sk[f[(f[d>>2]|0)+12>>2]&2047](d)|0}a=a+48|0;c=f[a>>2]|0;if(c|0)Nk[f[f[c>>2]>>2]&2047](c);sk[f[(f[j>>2]|0)+12>>2]&2047](j)|0;if(mGa(g)|0)do{sk[f[(f[j>>2]|0)+8>>2]&2047](j)|0;c=f[k>>2]|0;if(c|0){c=f[c+24>>2]|0;d=c+4|0;sk[f[(f[d>>2]|0)+8>>2]&2047](d)|0;e=c+24|0;if(!(b[e>>0]|0)){b[e>>0]=1;rua(c+16|0)|0}sk[f[(f[d>>2]|0)+12>>2]&2047](d)|0}c=f[a>>2]|0;if(c|0)Nk[f[f[c>>2]>>2]&2047](c);sk[f[(f[j>>2]|0)+12>>2]&2047](j)|0;if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>4){e=qub(Nv(Mv(5)|0,180766,41)|0,h)|0;Ktb(i,e+(f[(f[e>>2]|0)+-12>>2]|0)|0);d=Bvb(i,295164)|0;d=wk[f[(f[d>>2]|0)+28>>2]&1023](d,10)|0;Cvb(i);rub(e,d)|0;Rtb(e)|0}}while(mGa(g)|0);iGa(g)|0}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=3){u=l;return 0}k=Nv(qub(Nv(Mv(4)|0,180808,45)|0,h)|0,180735,13)|0;k=fub(k,mGa(g)|0)|0;Ktb(i,k+(f[(f[k>>2]|0)+-12>>2]|0)|0);j=Bvb(i,295164)|0;j=wk[f[(f[j>>2]|0)+28>>2]&1023](j,10)|0;Cvb(i);rub(k,j)|0;Rtb(k)|0;u=l;return 0}function uL(a){a=a|0;qL(a+-12|0);return}function vL(a){a=a|0;a=a+-12|0;qL(a);NDb(a);return}function wL(a){a=a|0;tL(a+-12|0)|0;return 0}function xL(a){a=a|0;sL(a+-12|0);return}function yL(a){a=a|0;return}function zL(a){a=a|0;var c=0,d=0,e=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,v=0,w=0;v=u;u=u+16|0;j=v;if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>3){r=Nv(qub(Nv(Mv(4)|0,180854,10)|0,a)|0,180735,13)|0;i=a+12|0;r=fub(r,mGa(i)|0)|0;Ktb(j,r+(f[(f[r>>2]|0)+-12>>2]|0)|0);q=Bvb(j,295164)|0;q=wk[f[(f[q>>2]|0)+28>>2]&1023](q,10)|0;Cvb(j);rub(r,q)|0;Rtb(r)|0}else i=a+12|0;m=a+32|0;n=a+44|0;o=a+28|0;p=a+48|0;q=a+20|0;r=a+24|0;g=1;do{sk[f[(f[m>>2]|0)+8>>2]&2047](m)|0;c=f[n>>2]|0;if(!c)c=0;else{h=c+8|0;f[h>>2]=(f[h>>2]|0)+1}sk[f[(f[m>>2]|0)+12>>2]&2047](m)|0;AL(j,c,1);e=f[j>>2]|0;if(e){d=e+(f[(f[e>>2]|0)+-12>>2]|0)+8|0;f[d>>2]=(f[d>>2]|0)+1;d=f[j>>2]|0;if((d|0)!=0?(s=d+(f[(f[d>>2]|0)+-12>>2]|0)|0,d=s+8|0,h=f[d>>2]|0,f[d>>2]=h-1,(h|0)==1):0)X4(s,1,1)}else e=0;if(!(f[o>>2]|0))if(!e){h=1;g=0;d=0}else{sk[f[(f[m>>2]|0)+8>>2]&2047](m)|0;d=f[p>>2]|0;if(((d|0)!=(e|0)?(f[p>>2]=e,h=e+(f[(f[e>>2]|0)+-12>>2]|0)+8|0,f[h>>2]=(f[h>>2]|0)+1,d|0):0)?(t=d+(f[(f[d>>2]|0)+-12>>2]|0)|0,g=t+8|0,h=f[g>>2]|0,f[g>>2]=h-1,(h|0)==1):0)X4(t,1,1);sk[f[(f[m>>2]|0)+12>>2]&2047](m)|0;d=f[(f[e>>2]|0)+4>>2]|0;h=f[q>>2]|0;if((h|0)!=0?(f[h+24>>2]|0)!=0:0)g=f[r>>2]|0;else g=0;Vk[d&1023](e,g);sk[f[(f[m>>2]|0)+8>>2]&2047](m)|0;d=f[p>>2]|0;if(d|0?(f[p>>2]=0,k=d+(f[(f[d>>2]|0)+-12>>2]|0)|0,g=k+8|0,h=f[g>>2]|0,f[g>>2]=h-1,(h|0)==1):0)X4(k,1,1);sk[f[(f[m>>2]|0)+12>>2]&2047](m)|0;h=1;g=0;d=e}else{h=0;d=e}if(c|0?(w=c+8|0,e=f[w>>2]|0,f[w>>2]=e-1,(e|0)==1):0)X4(c,1,1);if(d|0?(l=d+(f[(f[d>>2]|0)+-12>>2]|0)|0,e=l+8|0,w=f[e>>2]|0,f[e>>2]=w-1,(w|0)==1):0)X4(l,1,1);if(!h)break;if(qGa(i)|0)break}while((f[o>>2]|0)==0);if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=3){u=v;return}w=Nv(qub(Nv(Mv(4)|0,180865,10)|0,a)|0,180735,13)|0;w=fub(w,mGa(i)|0)|0;Ktb(j,w+(f[(f[w>>2]|0)+-12>>2]|0)|0);t=Bvb(j,295164)|0;t=wk[f[(f[t>>2]|0)+28>>2]&1023](t,10)|0;Cvb(j);rub(w,t)|0;Rtb(w)|0;u=v;return}function AL(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;j=c+36|0;if(d?(f[j>>2]|0)==0:0){d=f[c+24>>2]|0;e=d+4|0;sk[f[(f[e>>2]|0)+8>>2]&2047](e)|0;if(!(b[d+24>>0]|0))oua(d+16|0,e)|0;sk[f[(f[e>>2]|0)+12>>2]&2047](e)|0}i=c+12|0;sk[f[(f[i>>2]|0)+8>>2]&2047](i)|0;if(!(f[j>>2]|0)){f[a>>2]=0;m=f[i>>2]|0;m=m+12|0;m=f[m>>2]|0;sk[m&2047](i)|0;return}e=c+40|0;d=f[e>>2]|0;if((d|0)==(c+28|0)){d=f[c+32>>2]|0;f[c+40>>2]=d}g=f[d+8>>2]|0;if(g|0){h=g+(f[(f[g>>2]|0)+-12>>2]|0)+8|0;f[h>>2]=(f[h>>2]|0)+1}h=f[e>>2]|0;d=h+4|0;if(!(b[g+16>>0]|0)){e=f[d>>2]|0;n=f[h>>2]|0;f[n+4>>2]=e;f[f[d>>2]>>2]=n;f[j>>2]=(f[j>>2]|0)+-1;d=f[h+8>>2]|0;if(d|0?(k=d+(f[(f[d>>2]|0)+-12>>2]|0)|0,d=k+8|0,n=f[d>>2]|0,f[d>>2]=n-1,(n|0)==1):0)X4(k,1,1);NDb(h);f[c+40>>2]=e;if((f[j>>2]|0)==0?(m=f[c+24>>2]|0,l=m+4|0,m=m+24|0,b[m>>0]|0):0){sk[f[(f[l>>2]|0)+8>>2]&2047](l)|0;b[m>>0]=0;sk[f[(f[l>>2]|0)+12>>2]&2047](l)|0}}else f[e>>2]=f[d>>2];f[a>>2]=g;d=g+(f[(f[g>>2]|0)+-12>>2]|0)+8|0;f[d>>2]=(f[d>>2]|0)+1;d=g+(f[(f[g>>2]|0)+-12>>2]|0)|0;m=d+8|0;n=f[m>>2]|0;f[m>>2]=n-1;if((n|0)!=1){n=f[i>>2]|0;n=n+12|0;n=f[n>>2]|0;sk[n&2047](i)|0;return}X4(d,1,1);n=f[i>>2]|0;n=n+12|0;n=f[n>>2]|0;sk[n&2047](i)|0;return}function BL(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(b|0?(d=b+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(b,1,1);f[a>>2]=0;return}function CL(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(b|0?(d=b+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(b,1,1);f[a>>2]=0;return}function DL(a){a=a|0;qL(a);NDb(a);return}function EL(a){a=a|0;qL(a+-12|0);return}function FL(a){a=a|0;a=a+-12|0;qL(a);NDb(a);return}function GL(a){a=a|0;zL(a+-12|0);return}function HL(a){a=a|0;var c=0,d=0;c=a+20|0;sk[f[(f[c>>2]|0)+8>>2]&2047](c)|0;d=a+40|0;if(!(b[d>>0]|0)){b[d>>0]=1;rua(a+32|0)|0}sk[f[(f[c>>2]|0)+12>>2]&2047](c)|0;return}function IL(a,b){a=a|0;b=b|0;if(!b)return;b=bFb(b,58336,60400,0)|0;if(!b)return;Vk[f[(f[a>>2]|0)+16>>2]&1023](a,b);return}function JL(a){a=a|0;var c=0;OL(a+20|0);f[a>>2]=60556;c=a+44|0;f[c>>2]=60588;a=a+4|0;if((b[a+11>>0]|0)>=0){V4(c);return}NDb(f[a>>2]|0);V4(c);return}function KL(a){a=a|0;var c=0,d=0;OL(a+20|0);f[a>>2]=60556;c=a+44|0;f[c>>2]=60588;d=a+4|0;if((b[d+11>>0]|0)>=0){V4(c);NDb(a);return}NDb(f[d>>2]|0);V4(c);NDb(a);return}function LL(a,c){a=a|0;c=c|0;var d=0;ji();c=a+20|0;sk[f[(f[c>>2]|0)+8>>2]&2047](c)|0;d=a+40|0;if(!(b[d>>0]|0)){b[d>>0]=1;rua(a+32|0)|0}sk[f[(f[c>>2]|0)+12>>2]&2047](c)|0;return}function ML(a){a=a|0;var c=0;c=a+(f[(f[a>>2]|0)+-16>>2]|0)|0;OL(c+20|0);f[c>>2]=60556;a=c+44|0;f[a>>2]=60588;c=c+4|0;if((b[c+11>>0]|0)>=0){V4(a);return}NDb(f[c>>2]|0);V4(a);return}function NL(a){a=a|0;var c=0,d=0;a=a+(f[(f[a>>2]|0)+-16>>2]|0)|0;OL(a+20|0);f[a>>2]=60556;c=a+44|0;f[c>>2]=60588;d=a+4|0;if((b[d+11>>0]|0)>=0){V4(c);NDb(a);return}NDb(f[d>>2]|0);V4(c);NDb(a);return}function OL(a){a=a|0;var c=0;sk[f[(f[a>>2]|0)+8>>2]&2047](a)|0;c=a+20|0;if(!(b[c>>0]|0)){b[c>>0]=1;rua(a+12|0)|0}sk[f[(f[a>>2]|0)+12>>2]&2047](a)|0;mua(a+12|0);d8(a);return}function PL(a){a=a|0;return}function QL(a){a=a|0;Ni()}function RL(a){a=a|0;Ni()}function SL(a){a=a|0;Ni()}function TL(a){a=a|0;Ni()}function UL(a){a=a|0;Ni()}function VL(a){a=a|0;Ni()}function WL(a){a=a|0;Ni()}function XL(a){a=a|0;Ni()}function YL(a){a=a|0;V4(a);$L(a+12|0);return}function ZL(a){a=a|0;V4(a);$L(a+12|0);NDb(a);return}function _L(a,b){a=a|0;b=b|0;var c=0,d=0;b=a+12|0;sk[f[(f[b>>2]|0)+8>>2]&2047](b)|0;c=a+36|0;d=f[c>>2]|0;if(d|0?(d=d+-1|0,f[c>>2]=d,(d|0)==0):0)rua(a+24|0)|0;sk[f[(f[b>>2]|0)+12>>2]&2047](b)|0;return}function $L(a){a=a|0;var b=0;f[a+20>>2]=0;sk[f[(f[a>>2]|0)+8>>2]&2047](a)|0;b=a+24|0;if(f[b>>2]|0){f[b>>2]=0;rua(a+12|0)|0}sk[f[(f[a>>2]|0)+12>>2]&2047](a)|0;mua(a+12|0);d8(a);return}function aM(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0;f[a>>2]=94824;c=a+112|0;d=f[c>>2]|0;if(d|0){switch(f[a+108>>2]|0){case 1:{ODb(d);break}case 2:{Lob(d);break}default:{}}f[c>>2]=0}e=a+128|0;g=f[e>>2]|0;if(g|0){h=a+132|0;c=f[h>>2]|0;if((c|0)==(g|0))c=g;else{do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(j=d+8|0,i=f[j>>2]|0,f[j>>2]=i-1,(i|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(g|0));c=f[e>>2]|0}f[h>>2]=g;NDb(c)}c=f[a+116>>2]|0;if(c|0){f[a+120>>2]=c;NDb(c)}c=a+52|0;if((b[c+11>>0]|0)>=0){xx(a);return}NDb(f[c>>2]|0);xx(a);return}function bM(a){a=a|0;aM(a);NDb(a);return}function cM(a){a=a|0;var c=0,d=0,e=0,g=0;a=LDb(140)|0;CCa(a,1);c=a+12|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;c=a+24|0;d=a+28|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;f[d+12>>2]=0;f[d+16>>2]=0;f[d+20>>2]=0;f[a>>2]=94824;d=a+100|0;e=a+52|0;g=e+48|0;do{b[e>>0]=0;e=e+1|0}while((e|0)<(g|0));f[d>>2]=4;n[a+104>>2]=1.0;f[a+108>>2]=1;g=a+112|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;f[g+16>>2]=0;f[g+20>>2]=0;f[g+24>>2]=0;f[c>>2]=1;return a|0}function dM(a,b){a=a|0;b=b|0;var c=0;c=LDb(140)|0;TM(c,a,b);return c|0}function eM(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,59480,0)|0)!=0;return b|0}function fM(a){a=a|0;return 241076}function gM(a){a=a|0;return 236850}function hM(a){a=a|0;return a|0}function iM(a){a=a|0;return a|0}function jM(a){a=a|0;return f[a+112>>2]|0}function kM(a){a=a|0;return uK(a)|0}function lM(a,c){a=a|0;c=c|0;var d=0,e=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=a+52|0;n=b[r+11>>0]|0;s=n<<24>>24<0;if(s)d=f[a+56>>2]|0;else d=n&255;if(!((d|0)!=0?(m=b[c+52+11>>0]|0,((m<<24>>24<0?f[c+56>>2]|0:m&255)|0)!=0):0)){d=f[a+112>>2]|0;e=f[c+112>>2]|0;if(d>>>0<e>>>0){t=-1;return t|0}if(d>>>0>e>>>0){t=1;return t|0}}d=f[a+72>>2]|0;e=f[c+72>>2]|0;if((d|0)<(e|0)){t=-1;return t|0}if((e|0)<(d|0)){t=1;return t|0}d=f[a+76>>2]|0;e=f[c+76>>2]|0;if((d|0)<(e|0)){t=-1;return t|0}if((e|0)<(d|0)){t=1;return t|0}d=f[a+88>>2]|0;e=f[c+88>>2]|0;if((d|0)<(e|0)){t=-1;return t|0}if((e|0)<(d|0)){t=1;return t|0}d=f[a+92>>2]|0;e=f[c+92>>2]|0;if(d>>>0<e>>>0){t=-1;return t|0}if(e>>>0<d>>>0){t=1;return t|0}d=f[a+96>>2]|0;e=f[c+96>>2]|0;if(d>>>0<e>>>0){t=-1;return t|0}if(e>>>0<d>>>0){t=1;return t|0}d=f[a+100>>2]|0;e=f[c+100>>2]|0;if(d>>>0<e>>>0){t=-1;return t|0}if(e>>>0<d>>>0){t=1;return t|0}k=f[a+120>>2]|0;h=f[c+116>>2]|0;l=f[c+120>>2]|0;g=f[a+116>>2]|0;a:do if((h|0)!=(l|0)){d=g;j=h;while(1){if((d|0)==(k|0)){d=-1;e=44;break}e=f[d>>2]|0;i=f[j>>2]|0;if(e>>>0<i>>>0){d=-1;e=44;break}if(i>>>0<e>>>0)break a;j=j+4|0;if((j|0)==(l|0))break a;else d=d+4|0}if((e|0)==44)return d|0}while(0);b:do if((g|0)!=(k|0)){while(1){if((h|0)==(l|0)){d=1;e=44;break}d=f[h>>2]|0;e=f[g>>2]|0;if(d>>>0<e>>>0){d=1;e=44;break}if(e>>>0<d>>>0)break b;g=g+4|0;if((g|0)==(k|0))break b;else h=h+4|0}if((e|0)==44)return d|0}while(0);d=f[a+32>>2]|0;e=f[c+32>>2]|0;if(d>>>0<e>>>0){t=-1;return t|0}if(e>>>0<d>>>0){t=1;return t|0}l=f[a+112>>2]|0;m=f[c+112>>2]|0;if(((m|0)!=0|(l|0)!=0)&(l|0)==(m|0)){t=0;return t|0}l=c+52|0;k=b[l+11>>0]|0;m=k<<24>>24<0;k=m?f[c+56>>2]|0:k&255;h=s?f[a+56>>2]|0:n&255;j=k>>>0<h>>>0;g=j?k:h;i=(g|0)==0;do if(i)e=37;else{d=m?f[l>>2]|0:l;e=ipb(s?f[r>>2]|0:r,d,g)|0;if(!e){e=37;break}if((e|0)<0)d=-1;else{o=d;p=r;q=r;e=41;break}return d|0}while(0);do if((e|0)==37){if(h>>>0<k>>>0){t=-1;return t|0}if(i){e=42;break}o=m?f[l>>2]|0:l;p=r;q=r;e=41}while(0);if((e|0)==41){d=ipb(o,s?f[p>>2]|0:q,g)|0;if(!d)e=42;else t=d}if((e|0)==42)t=j<<31>>31;t=t>>>31;return t|0}function mM(a,c,d,e,g,h,i){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0;f[a+120>>2]=f[a+116>>2];n=a+112|0;if(!(f[n>>2]|0))k=0;else{l=f[a+72>>2]|0;o=f[a+100>>2]|0;l=W(vK(f[a+92>>2]|0,f[a+96>>2]|0)|0,l)|0;k=(o|0)==0?8:o<<3;m=(l|0)/(k|0)|0;k=m+((l-(W(m,k)|0)|0)!=0&1)|0;k=W(W(W(f[a+76>>2]|0,o)|0,f[a+80>>2]|0)|0,k)|0}m=W(vK(g,h)|0,c)|0;l=(i|0)==0?8:i<<3;o=(m|0)/(l|0)|0;l=W(W(W(e,d)|0,i)|0,o+((m-(W(o,l)|0)|0)!=0&1)|0)|0;do if((l|0)==(k|0))o=12;else{if(l|0){SM(a,MDb(l)|0,1);o=12;break}k=f[n>>2]|0;if(k|0){switch(f[a+108>>2]|0){case 1:{ODb(k);break}case 2:{Lob(k);break}default:{}}f[n>>2]=0}m=a+72|0;k=f[m>>2]|0;o=18}while(0);do if((o|0)==12){m=a+72|0;k=f[m>>2]|0;if(f[n>>2]|0){n=a+76|0;if((k|0)==(c|0)?(f[n>>2]|0)==(d|0):0)l=(f[a+80>>2]|0)!=(e|0);else l=1;f[m>>2]=c;f[n>>2]=d;f[a+80>>2]=e;f[a+92>>2]=g;f[a+96>>2]=h;f[a+100>>2]=i;f[a+84>>2]=0;k=a+88|0;if(!(f[k>>2]|0)){f[k>>2]=g;if(l){o=23;break}else break}else if(l){o=23;break}else break}else o=18}while(0);if((o|0)==18){l=a+76|0;if((k|0)==0?(f[l>>2]|0)==0:0)k=(f[a+80>>2]|0)!=0;else k=1;f[m>>2]=0;f[l>>2]=0;f[a+80>>2]=0;f[a+92>>2]=0;f[a+96>>2]=0;f[a+100>>2]=0;f[a+84>>2]=0;if(k)o=23}if((o|0)==23?(j=f[a+128>>2]|0,p=a+132|0,(j|0)!=(f[p>>2]|0)):0)do{o=f[j>>2]|0;Vk[f[(f[o>>2]|0)+12>>2]&1023](o,a);j=j+4|0}while((j|0)!=(f[p>>2]|0));j=a+32|0;f[j>>2]=(f[j>>2]|0)+1;j=f[a+44>>2]|0;if(j|0)Vk[f[(f[j>>2]|0)+20>>2]&1023](j,a);j=f[a+40>>2]|0;if(!j)return;d=j+60|0;c=j+64|0;j=f[c>>2]|0;k=f[d>>2]|0;if((j|0)==(k|0))return;n=0;l=k;m=k;while(1){if(!(f[l+(n<<2)>>2]|0))k=m;else{k=j-l>>2;if(k>>>0>n>>>0)k=m;else{ax(d,n+1-k|0);j=f[c>>2]|0;k=f[d>>2]|0}b[(f[k+(n<<2)>>2]|0)+36>>0]=1;l=k}n=n+1|0;if(n>>>0>=j-l>>2>>>0)break;else m=k}return}function nM(a,c,d,e,g,h,i,j,k,l,m){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|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;f[a+120>>2]=f[a+116>>2];n=a+72|0;p=a+76|0;if((f[n>>2]|0)==(c|0)?(f[p>>2]|0)==(d|0):0)t=(f[a+80>>2]|0)!=(e|0);else t=1;f[n>>2]=c;f[p>>2]=d;f[a+80>>2]=e;f[a+88>>2]=g;f[a+92>>2]=h;f[a+96>>2]=i;SM(a,j,k);f[a+100>>2]=l;f[a+84>>2]=m;c=a+32|0;f[c>>2]=(f[c>>2]|0)+1;c=f[a+44>>2]|0;if(c|0)Vk[f[(f[c>>2]|0)+20>>2]&1023](c,a);c=f[a+40>>2]|0;if(c|0?(r=c+60|0,s=c+64|0,o=f[s>>2]|0,q=f[r>>2]|0,(o|0)!=(q|0)):0){p=0;n=q;m=q;while(1){if(!(f[n+(p<<2)>>2]|0))c=o;else{c=o-n>>2;if(c>>>0>p>>>0)c=o;else{ax(r,p+1-c|0);c=f[s>>2]|0;m=f[r>>2]|0}b[(f[m+(p<<2)>>2]|0)+36>>0]=1;n=m}p=p+1|0;if(p>>>0>=c-n>>2>>>0)break;else o=c}}if(!t)return;c=f[a+128>>2]|0;m=a+132|0;if((c|0)==(f[m>>2]|0))return;do{t=f[c>>2]|0;Vk[f[(f[t>>2]|0)+12>>2]&1023](t,a);c=c+4|0}while((c|0)!=(f[m>>2]|0));return}function oM(a,b,c,d,e,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;el[f[(f[a>>2]|0)+192>>2]&15](a,d,e,1,g,h,i);oi(3333,f[a+100>>2]|0);oi(3330,f[a+84>>2]|0);pi(b|0,c|0,d|0,e|0,g|0,h|0,f[a+112>>2]|0);return}function pM(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;c=u;u=u+16|0;a=c;if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=2){u=c;return}g=Nv(Mv(3)|0,183261,60)|0;Ktb(a,g+(f[(f[g>>2]|0)+-12>>2]|0)|0);e=Bvb(a,295164)|0;e=wk[f[(f[e>>2]|0)+28>>2]&1023](e,10)|0;Cvb(a);rub(g,e)|0;Rtb(g)|0;u=c;return}function qM(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|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,v=0;t=u;u=u+80|0;p=t+64|0;i=t;o=a+72|0;if(((f[o>>2]|0)==(c|0)?(f[a+76>>2]|0)==(d|0):0)?(f[a+80>>2]|0)==(e|0):0){u=t;return}h=a+112|0;if(!(f[h>>2]|0)){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=1){u=t;return}s=Nv(Mv(2)|0,183114,67)|0;Ktb(p,s+(f[(f[s>>2]|0)+-12>>2]|0)|0);r=Bvb(p,295164)|0;r=wk[f[(f[r>>2]|0)+28>>2]&1023](r,10)|0;Cvb(p);rub(s,r)|0;Rtb(s)|0;u=t;return}if((e|0)!=1?1:(f[a+80>>2]|0)!=1){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=1){u=t;return}s=Nv(Mv(2)|0,183182,78)|0;Ktb(p,s+(f[(f[s>>2]|0)+-12>>2]|0)|0);r=Bvb(p,295164)|0;r=wk[f[(f[r>>2]|0)+28>>2]&1023](r,10)|0;Cvb(p);rub(s,r)|0;Rtb(s)|0;u=t;return}n=a+92|0;l=a+100|0;v=f[l>>2]|0;k=W(vK(f[n>>2]|0,g)|0,c)|0;e=(v|0)==0?8:v<<3;m=(k|0)/(e|0)|0;e=MDb(W(W(v,d)|0,m+((k-(W(m,e)|0)|0)!=0&1)|0)|0)|0;m=i+4|0;k=m+4|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;f[k+12>>2]=0;f[k+16>>2]=0;f[k+20>>2]=0;k=i+36|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;f[k+12>>2]=0;f[k+16>>2]=0;f[k+20>>2]=0;f[k+24>>2]=0;l=f[l>>2]|0;f[i>>2]=l;k=a+84|0;f[m>>2]=f[k>>2];f[i+32>>2]=l;l=a+76|0;m=a+96|0;n=BM(i,f[n>>2]|0,f[o>>2]|0,f[l>>2]|0,f[m>>2]|0,f[h>>2]|0,c,d,g,e)|0;if(n){ODb(e);if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>1){h=Nv(Mv(2)|0,181555,58)|0;a:do if((n|0)>=1286){if((n|0)>=100901)switch(n|0){case 100904:{e=13;i=36;break a}case 100901:{e=10;i=36;break a}case 100902:{e=11;i=36;break a}case 100903:{e=12;i=36;break a}default:{i=37;break a}}if((n|0)<32817){switch(n|0){case 1286:break;default:{i=37;break a}}e=8;i=36;break}if((n|0)<100900){switch(n|0){case 32817:break;default:{i=37;break a}}e=7;i=36;break}else{switch(n|0){case 100900:break;default:{i=37;break a}}e=9;i=36;break}}else switch(n|0){case 1280:{e=1;i=36;break a}case 1281:{e=2;i=36;break a}case 1282:{e=3;i=36;break a}case 1283:{e=4;i=36;break a}case 1284:{e=5;i=36;break a}case 1285:{e=6;i=36;break a}default:{i=37;break a}}while(0);if((i|0)==36){e=80+(e<<3)+4|0;i=38}else if((i|0)==37)if((n+-100151|0)>>>0<6){e=48+(n+-100150<<2)|0;i=38}else e=0;if((i|0)==38)e=f[e>>2]|0;v=Nv(Nv(h,e,Zob(e)|0)|0,181614,39)|0;Ktb(p,v+(f[(f[v>>2]|0)+-12>>2]|0)|0);o=Bvb(p,295164)|0;o=wk[f[(f[o>>2]|0)+28>>2]&1023](o,10)|0;Cvb(p);rub(v,o)|0;Rtb(v)|0}}else{f[o>>2]=c;f[l>>2]=d;f[k>>2]=0;f[m>>2]=g;SM(a,e,1)}e=a+32|0;f[e>>2]=(f[e>>2]|0)+1;e=f[a+44>>2]|0;if(e|0)Vk[f[(f[e>>2]|0)+20>>2]&1023](e,a);e=f[a+40>>2]|0;if(e|0?(r=e+60|0,s=e+64|0,j=f[s>>2]|0,q=f[r>>2]|0,(j|0)!=(q|0)):0){k=0;i=q;h=q;while(1){if(!(f[i+(k<<2)>>2]|0))e=j;else{e=j-i>>2;if(e>>>0>k>>>0)e=j;else{ax(r,k+1-e|0);e=f[s>>2]|0;h=f[r>>2]|0}b[(f[h+(k<<2)>>2]|0)+36>>0]=1;i=h}k=k+1|0;if(k>>>0>=e-i>>2>>>0)break;else j=e}}u=t;return}function rM(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|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,v=0,w=0,x=0,y=0,z=0,A=0,B=0;y=u;u=u+80|0;w=y+64|0;o=y;if(!g){u=y;return}l=d|c;if((l|e|0)<0){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=1){u=y;return}g=Nv(Mv(2)|0,181131,93)|0;Ktb(w,g+(f[(f[g>>2]|0)+-12>>2]|0)|0);x=Bvb(w,295164)|0;x=wk[f[(f[x>>2]|0)+28>>2]&1023](x,10)|0;Cvb(w);rub(g,x)|0;Rtb(g)|0;u=y;return}q=a+112|0;if(!(f[q>>2]|0)){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>3){x=Nv(Mv(4)|0,181225,16)|0;Ktb(w,x+(f[(f[x>>2]|0)+-12>>2]|0)|0);v=Bvb(w,295164)|0;v=wk[f[(f[v>>2]|0)+28>>2]&1023](v,10)|0;Cvb(w);rub(x,v)|0;Rtb(x)|0}el[f[(f[a>>2]|0)+192>>2]&15](a,(f[g+72>>2]|0)+c|0,(f[g+76>>2]|0)+d|0,(f[g+80>>2]|0)+e|0,f[g+92>>2]|0,f[g+96>>2]|0,f[g+100>>2]|0)}r=a+72|0;if(((f[r>>2]|0)>(c|0)?(s=a+76|0,(f[s>>2]|0)>(d|0)):0)?(f[a+80>>2]|0)>(e|0):0){v=a+92|0;i=f[v>>2]|0;x=g+92|0;if((i|0)!=(f[x>>2]|0)){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=1){u=y;return}g=Nv(Mv(2)|0,181339,103)|0;Ktb(w,g+(f[(f[g>>2]|0)+-12>>2]|0)|0);x=Bvb(w,295164)|0;x=wk[f[(f[x>>2]|0)+28>>2]&1023](x,10)|0;Cvb(w);rub(g,x)|0;Rtb(g)|0;u=y;return}h=f[q>>2]|0;if(!h)e=0;else{j=a+96|0;i=h+((W(vK(i,f[j>>2]|0)|0,c)|0)>>>3)|0;h=f[a+84>>2]|0;if(!h)h=f[r>>2]|0;p=a+100|0;B=f[p>>2]|0;A=W(vK(f[v>>2]|0,f[j>>2]|0)|0,h)|0;h=(B|0)==0?8:B<<3;z=(A|0)/(h|0)|0;h=i+(W(W(B,d)|0,z+((A-(W(z,h)|0)|0)!=0&1)|0)|0)|0;z=f[r>>2]|0;i=f[p>>2]|0;z=W(vK(f[v>>2]|0,f[j>>2]|0)|0,z)|0;p=(i|0)==0?8:i<<3;j=(z|0)/(p|0)|0;p=j+((z-(W(j,p)|0)|0)!=0&1)|0;e=h+(W(W(W(i,e)|0,f[s>>2]|0)|0,p)|0)|0}if(AM(a)|0){wK(o,f[v>>2]|0);p=f[o>>2]|0;do if((p|0)==4?(f[o+4>>2]|0)==4:0){h=g+72|0;i=f[h>>2]|0;if((i&3|0)==0?(k=f[g+76>>2]|0,((l|k)&3|0)==0):0){o=i;h=4;t=52;break}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>1){B=Nv(Mv(2)|0,181443,51)|0;B=Nv(iub(B,f[h>>2]|0)|0,263784,1)|0;B=Nv(iub(Nv(iub(Nv(iub(B,f[g+76>>2]|0)|0,181495,11)|0,c)|0,242759,1)|0,d)|0,181507,19)|0;Ktb(w,B+(f[(f[B>>2]|0)+-12>>2]|0)|0);A=Bvb(w,295164)|0;A=wk[f[(f[A>>2]|0)+28>>2]&1023](A,10)|0;Cvb(w);rub(B,A)|0;Rtb(B)|0}}else t=43;while(0);do if((t|0)==43){h=g+72|0;i=f[h>>2]|0;if(((((i|0)%(p|0)|0|0)==0?(m=f[g+76>>2]|0,n=f[o+4>>2]|0,((m|0)%(n|0)|0|0)==0):0)?((c|0)%(p|0)|0|0)==0:0)?((d|0)%(n|0)|0|0)==0:0){o=i;k=m;h=n;t=52;break}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>1){B=Nv(Mv(2)|0,181443,51)|0;B=Nv(iub(B,f[h>>2]|0)|0,263784,1)|0;B=Nv(iub(Nv(iub(Nv(iub(B,f[g+76>>2]|0)|0,181495,11)|0,c)|0,242759,1)|0,d)|0,181527,27)|0;B=Nv(iub(B,f[o>>2]|0)|0,263784,1)|0;B=iub(B,f[o+4>>2]|0)|0;Ktb(w,B+(f[(f[B>>2]|0)+-12>>2]|0)|0);A=Bvb(w,295164)|0;A=wk[f[(f[A>>2]|0)+28>>2]&1023](A,10)|0;Cvb(w);rub(B,A)|0;Rtb(B)|0}}while(0);if((t|0)==52){j=f[r>>2]|0;n=p+-1|0;l=(n+j|0)/(p|0)|0;a=xK(f[v>>2]|0,0)|0;i=(f[q>>2]|0)+(W(((c|0)/(p|0)|0)+(W(l,d)|0)|0,a)|0)|0;j=j-c|0;e=(f[s>>2]|0)-d|0;e=(h+-1+((k|0)<(e|0)?k:e)|0)/(h|0)|0;l=W(a,l)|0;m=((W(n+o|0,a)|0)>>>0)/(p>>>0)|0;h=f[g+112>>2]|0;if(!h)h=0;else{B=g+96|0;vK(f[x>>2]|0,f[B>>2]|0)|0;vK(f[x>>2]|0,f[B>>2]|0)|0;vK(f[x>>2]|0,f[B>>2]|0)|0}if(e|0){k=W((n+((o|0)<(j|0)?o:j)|0)/(p|0)|0,a)|0;j=0;while(1){gGb(i|0,h|0,k|0)|0;j=j+1|0;if((j|0)==(e|0))break;else{i=i+l|0;h=h+m|0}}}}u=y;return}i=o+4|0;j=o+32|0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;f[i+24>>2]=0;f[j>>2]=4;k=o+36|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;f[k+12>>2]=0;f[k+16>>2]=0;f[k+20>>2]=0;f[k+24>>2]=0;f[o>>2]=f[a+100>>2];h=f[a+84>>2]|0;if(!h)h=f[r>>2]|0;f[i>>2]=h;f[j>>2]=f[g+100>>2];f[k>>2]=f[g+84>>2];B=f[g+72>>2]|0;h=f[g+76>>2]|0;h=BM(o,f[v>>2]|0,B,h,f[g+96>>2]|0,f[g+112>>2]|0,B,h,f[a+96>>2]|0,e)|0;if(h|0){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>1){i=Nv(Mv(2)|0,181555,58)|0;a:do if((h|0)>=1286){if((h|0)>=100901)switch(h|0){case 100904:{h=13;t=79;break a}case 100901:{h=10;t=79;break a}case 100902:{h=11;t=79;break a}case 100903:{h=12;t=79;break a}default:{t=80;break a}}if((h|0)<32817){switch(h|0){case 1286:break;default:{t=80;break a}}h=8;t=79;break}if((h|0)<100900){switch(h|0){case 32817:break;default:{t=80;break a}}h=7;t=79;break}else{switch(h|0){case 100900:break;default:{t=80;break a}}h=9;t=79;break}}else switch(h|0){case 1280:{h=1;t=79;break a}case 1281:{h=2;t=79;break a}case 1282:{h=3;t=79;break a}case 1283:{h=4;t=79;break a}case 1284:{h=5;t=79;break a}case 1285:{h=6;t=79;break a}default:{t=80;break a}}while(0);if((t|0)==79){h=80+(h<<3)+4|0;t=81}else if((t|0)==80)if((h+-100151|0)>>>0<6){h=48+(h+-100150<<2)|0;t=81}else h=0;if((t|0)==81)h=f[h>>2]|0;B=Nv(Nv(i,h,Zob(h)|0)|0,181614,39)|0;Ktb(w,B+(f[(f[B>>2]|0)+-12>>2]|0)|0);A=Bvb(w,295164)|0;A=wk[f[(f[A>>2]|0)+28>>2]&1023](A,10)|0;Cvb(w);rub(B,A)|0;Rtb(B)|0}}u=y;return}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=1){u=y;return}B=Nv(Mv(2)|0,181242,96)|0;Ktb(w,B+(f[(f[B>>2]|0)+-12>>2]|0)|0);A=Bvb(w,295164)|0;A=wk[f[(f[A>>2]|0)+28>>2]&1023](A,10)|0;Cvb(w);rub(B,A)|0;Rtb(B)|0;u=y;return}function sM(a){a=a|0;var c=0,e=0,g=0,h=0,i=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;v=a+92|0;c=f[v>>2]|0;a:do if((c|0)<32993)switch(c|0){case 6406:{m=1;o=0;break a}case 6410:{m=2;o=1;break a}case 6408:{m=4;o=3;break a}default:{v=0;return v|0}}else switch(c|0){case 32993:{m=4;o=3;break a}case 33777:case 33778:case 33779:{v=zM(f[a+72>>2]|0,f[a+76>>2]|0,c,f[a+112>>2]|0)|0;return v|0}default:{v=0;return v|0}}while(0);p=a+80|0;if((f[p>>2]|0)<=0){v=0;return v|0}q=a+76|0;r=a+112|0;s=a+96|0;t=a+84|0;u=a+72|0;l=a+100|0;k=0;c=f[q>>2]|0;b:while(1){if((c|0)>0){i=0;do{a=f[r>>2]|0;if(!a)h=0;else{vK(f[v>>2]|0,f[s>>2]|0)|0;c=f[t>>2]|0;if(!c)c=f[u>>2]|0;w=f[l>>2]|0;h=W(vK(f[v>>2]|0,f[s>>2]|0)|0,c)|0;e=(w|0)==0?8:w<<3;g=(h|0)/(e|0)|0;e=a+(W(W(w,i)|0,g+((h-(W(g,e)|0)|0)!=0&1)|0)|0)|0;a=f[u>>2]|0;g=f[l>>2]|0;a=W(vK(f[v>>2]|0,f[s>>2]|0)|0,a)|0;h=(g|0)==0?8:g<<3;c=(a|0)/(h|0)|0;h=c+((a-(W(c,h)|0)|0)!=0&1)|0;c=f[q>>2]|0;h=e+(W(W(W(g,k)|0,c)|0,h)|0)|0}a=f[s>>2]|0;c:do if((a|0)<5131)switch(a|0){case 5120:{g=f[u>>2]|0;if(!g)break c;a=h+o|0;e=0;while(1){if((b[a>>0]|0)!=127){c=1;a=73;break b}e=e+1|0;if(e>>>0>=g>>>0)break;else a=a+m|0}break}case 5121:{g=f[u>>2]|0;if(!g)break c;a=h+o|0;e=0;while(1){if((b[a>>0]|0)!=-1){c=1;a=73;break b}e=e+1|0;if(e>>>0>=g>>>0)break;else a=a+m|0}break}case 5122:{g=f[u>>2]|0;if(!g)break c;a=h+(o<<1)|0;e=0;while(1){if((d[a>>1]|0)!=32767){c=1;a=73;break b}e=e+1|0;if(e>>>0>=g>>>0)break;else a=a+(m<<1)|0}break}case 5123:{g=f[u>>2]|0;if(!g)break c;a=h+(o<<1)|0;e=0;while(1){if((d[a>>1]|0)!=-1){c=1;a=73;break b}e=e+1|0;if(e>>>0>=g>>>0)break;else a=a+(m<<1)|0}break}case 5124:{g=f[u>>2]|0;if(!g)break c;a=h+(o<<2)|0;e=0;while(1){if((f[a>>2]|0)!=2147483647){c=1;a=73;break b}e=e+1|0;if(e>>>0>=g>>>0)break;else a=a+(m<<2)|0}break}case 5125:{g=f[u>>2]|0;if(!g)break c;a=h+(o<<2)|0;e=0;while(1){if((f[a>>2]|0)!=-1){c=1;a=73;break b}e=e+1|0;if(e>>>0>=g>>>0)break;else a=a+(m<<2)|0}break}case 5126:{g=f[u>>2]|0;if(!g)break c;a=h+(o<<2)|0;e=0;while(1){if(+n[a>>2]<1.0){c=1;a=73;break b}e=e+1|0;if(e>>>0>=g>>>0)break;else a=a+(m<<2)|0}break}default:break c}else{if((a|0)<32822){if((a|0)<32819){switch(a|0){case 5131:break;default:break c}g=f[u>>2]|0;if(!g)break;a=h+(o<<1)|0;e=0;while(1){if((j[a>>1]|0)<15360){c=1;a=73;break b}e=e+1|0;if(e>>>0>=g>>>0)break c;else a=a+(m<<1)|0}}switch(a|0){case 32820:{g=f[u>>2]|0;if(!g)break c;e=0;a=h;while(1){if(!(d[a>>1]&1)){c=1;a=73;break b}e=e+1|0;if(e>>>0>=g>>>0)break c;else a=a+2|0}}case 32819:{g=f[u>>2]|0;if(!g)break c;e=0;a=h;while(1){if((d[a>>1]&15)!=15){c=1;a=73;break b}e=e+1|0;if(e>>>0>=g>>>0)break c;else a=a+2|0}}default:break c}}switch(a|0){case 33638:{g=f[u>>2]|0;if(!g)break c;e=0;a=h;while(1){if((d[a>>1]|0)>-1){c=1;a=73;break b}e=e+1|0;if(e>>>0>=g>>>0)break;else a=a+2|0}break}case 33637:{g=f[u>>2]|0;if(!g)break c;e=0;a=h;while(1){if((j[a>>1]|0)<61440){c=1;a=73;break b}e=e+1|0;if(e>>>0>=g>>>0)break;else a=a+2|0}break}case 32822:{g=f[u>>2]|0;if(!g)break c;e=0;a=h;while(1){if((f[a>>2]&3|0)!=3){c=1;a=73;break b}e=e+1|0;if(e>>>0>=g>>>0)break;else a=a+4|0}break}case 33640:{g=f[u>>2]|0;if(!g)break c;e=0;a=h;while(1){if((f[a>>2]|0)>>>0<3221225472){c=1;a=73;break b}e=e+1|0;if(e>>>0>=g>>>0)break;else a=a+4|0}break}default:break c}}while(0);i=i+1|0}while((i|0)<(c|0))}k=k+1|0;if((k|0)>=(f[p>>2]|0)){c=0;a=73;break}}if((a|0)==73)return c|0;return 0}function tM(a){a=a|0;return 0}function uM(a,b){a=a|0;b=b|0;return}function vM(a,b){a=a|0;b=b|0;return 0}function wM(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return 0}function xM(a,b,c){a=a|0;b=b|0;c=c|0;return 0}function yM(a,b){a=a|0;b=b|0;return}function zM(a,c,e,g){a=a|0;c=c|0;e=e|0;g=g|0;var i=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=u;u=u+16|0;s=t;a=W((c+3|0)>>>2,(a+3|0)>>>2)|0;switch(e|0){case 33779:{a:do if((a|0)>0){l=s+1|0;m=s+2|0;n=s+3|0;o=s+4|0;p=s+5|0;q=s+6|0;r=s+7|0;while(1){c=b[g>>0]|0;e=b[g+1>>0]|0;b[s>>0]=c;b[l>>0]=e;if((c&255)>(e&255)){if(c<<24>>24!=-1){g=1;break a}c=e&255;b[m>>0]=((c+1533|0)>>>0)/7|0;b[n>>0]=(((c<<1)+1278|0)>>>0)/7|0;b[o>>0]=(((c*3|0)+1023|0)>>>0)/7|0;b[p>>0]=(((c<<2)+768|0)>>>0)/7|0;b[q>>0]=(((c*5|0)+513|0)>>>0)/7|0;c=((((c*6|0)+258|0)>>>0)/7|0)&255}else{k=c&255;c=e&255;b[m>>0]=((c+2+(k<<2)|0)>>>0)/5|0;b[n>>0]=(((k*3|0)+2+(c<<1)|0)>>>0)/5|0;b[o>>0]=(((k<<1)+2+(c*3|0)|0)>>>0)/5|0;b[p>>0]=((k+2+(c<<2)|0)>>>0)/5|0;b[q>>0]=0;c=-1}b[r>>0]=c;k=0;c=(h[g+3>>0]<<8|h[g+2>>0])&65535;e=1;do{if((b[s+(c&7)>>0]|0)!=-1){g=1;break a}c=(c&65535)>>>3;i=k*3|0;if((i>>>3|0)==(e|0)){e=e+1|0;c=(h[g+2+e>>0]<<8-(i&7))+(c&65535)&65535}k=k+1|0}while(k>>>0<16);if((a|0)>1){a=a+-1|0;g=g+16|0}else{g=0;break}}}else g=0;while(0);s=g;u=t;return s|0}case 33777:{if((a|0)<=0){s=0;u=t;return s|0}while(1){if((j[g>>1]|0)<=(j[g+2>>1]|0)){c=f[g+4>>2]|0;if((c&3|0)==3|(c&12|0)==12|(c&48|0)==48|(c&192|0)==192|(c&768|0)==768|(c&3072|0)==3072|(c&12288|0)==12288|(c&49152|0)==49152|(c&196608|0)==196608|(c&786432|0)==786432|(c&3145728|0)==3145728|(c&12582912|0)==12582912|(c&50331648|0)==50331648|(c&201326592|0)==201326592){g=1;a=24;break}if((c&805306368|0)==805306368|c>>>0>3221225471){g=1;a=24;break}}if((a|0)>1){a=a+-1|0;g=g+8|0}else{g=0;a=24;break}}if((a|0)==24){u=t;return g|0}break}case 33778:{if((a|0)<=0){s=0;u=t;return s|0}while(1){if((d[g>>1]|0)!=-1){g=1;a=24;break}if((d[g+2>>1]|0)!=-1){g=1;a=24;break}if((d[g+4>>1]|0)!=-1){g=1;a=24;break}if((d[g+6>>1]|0)!=-1){g=1;a=24;break}if((a|0)>1){a=a+-1|0;g=g+16|0}else{g=0;a=24;break}}if((a|0)==24){u=t;return g|0}break}default:{s=0;u=t;return s|0}}return 0}function AM(a){a=a|0;switch(f[a+92>>2]|0){case 37853:case 37852:case 37851:case 37850:case 37849:case 37848:case 37847:case 37846:case 37845:case 37844:case 37843:case 37842:case 37841:case 37840:case 37821:case 37820:case 37819:case 37818:case 37817:case 37816:case 37815:case 37814:case 37813:case 37812:case 37811:case 37810:case 37809:case 37808:case 37491:case 37490:case 37489:case 37488:case 37497:case 37496:case 37495:case 37494:case 37493:case 37492:case 36196:case 35843:case 35842:case 35841:case 35840:case 36285:case 36286:case 36283:case 36284:case 33779:case 33778:case 33777:case 33776:case 34029:case 34030:case 34026:case 34027:case 34028:case 34025:{a=1;break}default:a=0}return a|0}function BM(a,c,e,g,i,k,l,m,o,p){a=a|0;c=c|0;e=e|0;g=g|0;i=i|0;k=k|0;l=l|0;m=m|0;o=o|0;p=p|0;var q=0,r=0,t=0,v=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,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0;V=u;u=u+32|0;P=V;Q=V+16|0;if((e|0)==0|(g|0)==0|(l|0)==0|(m|0)==0){U=0;u=V;return U|0}if((g|e|l|m|0)<0){U=100901;u=V;return U|0}a:do if((c|0)>=6407){if((c|0)<6410){switch(c|0){case 6409:case 6408:case 6407:break a;default:q=100900}u=V;return q|0}if((c|0)>=32993){switch(c|0){case 32993:case 33319:break a;default:q=100900}u=V;return q|0}if((c|0)<32992){switch(c|0){case 6410:break a;default:q=100900}u=V;return q|0}else{switch(c|0){case 32992:break a;default:q=100900}u=V;return q|0}}else{switch(c|0){case 6406:case 6405:case 6404:case 6403:case 6402:case 6401:case 6400:break a;default:q=100900}u=V;return q|0}while(0);if(!((CM(i)|0)<<24>>24)){U=100900;u=V;return U|0}if(!((CM(o)|0)<<24>>24)){U=100900;u=V;return U|0}b:do switch(i|0){case 32818:case 32819:case 32820:case 32821:case 32822:case 33634:case 33635:case 33636:case 33637:case 33638:case 33639:case 33640:{if((c|0)!=6407&((i|0)==33636|((i|0)==32818|(i|1|0)==33635))){U=100904;u=V;return U|0}switch(i|0){case 32819:case 32820:case 32821:case 32822:case 33637:case 33638:case 33639:case 33640:break;default:break b}if((c|0)<32993){switch(c|0){case 6408:break b;default:q=100904}u=V;return q|0}else{switch(c|0){case 32993:break b;default:q=100904}u=V;return q|0}}default:{}}while(0);c:do switch(o|0){case 32818:case 32819:case 32820:case 32821:case 32822:case 33634:case 33635:case 33636:case 33637:case 33638:case 33639:case 33640:{if((c|0)!=6407&((o|0)==33636|((o|0)==32818|(o|1|0)==33635))){U=100904;u=V;return U|0}switch(o|0){case 32819:case 32820:case 32821:case 32822:case 33637:case 33638:case 33639:case 33640:break;default:break c}if((c|0)<32993){switch(c|0){case 6408:break c;default:q=100904}u=V;return q|0}else{switch(c|0){case 32993:break c;default:q=100904}u=V;return q|0}}default:{}}while(0);if((e|0)<=0)kb(182088,182098,4944,182219);if((g|0)<=0)kb(182230,182098,4945,182219);if((c|0)<32992)switch(c|0){case 6407:{q=3;break}case 6410:{U=19;break}case 6408:{U=20;break}default:U=21}else switch(c|0){case 32992:{q=3;break}case 33319:{U=19;break}case 32993:{U=20;break}default:U=21}if((U|0)==19)q=2;else if((U|0)==20)q=4;else if((U|0)==21)q=1;T=Kob(W(W(~~(+(e|0)*2.0)>>>0,g)|0,q)|0)|0;if((l|0)<=0)kb(182088,182098,4944,182219);if((m|0)<=0)kb(182230,182098,4945,182219);if((c|0)<32992)switch(c|0){case 6407:{q=3;break}case 6410:{U=27;break}case 6408:{U=28;break}default:U=29}else switch(c|0){case 32992:{q=3;break}case 33319:{U=27;break}case 32993:{U=28;break}default:U=29}if((U|0)==27)q=2;else if((U|0)==28)q=4;else if((U|0)==29)q=1;S=Kob(W(W(~~(+(l|0)*2.0)>>>0,m)|0,q)|0)|0;if((T|0)==0|(S|0)==0){Lob(T);Lob(S);U=100902;u=V;return U|0}R=(c|1|0)==6401;DM(a,e,g,c,i,R&1,k,T);if((c|0)<32992)switch(c|0){case 6407:{q=3;break}case 6410:{U=33;break}case 6408:{U=34;break}default:U=35}else switch(c|0){case 32992:{q=3;break}case 33319:{U=33;break}case 32993:{U=34;break}default:U=35}if((U|0)==33)q=2;else if((U|0)==34)q=4;else if((U|0)==35)q=1;EM(q,e,g,T,l,m,S);i=f[a+20>>2]|0;d:do switch(o|0){case 32818:case 32819:case 32820:case 32821:case 32822:case 33634:case 33635:case 33636:case 33637:case 33638:case 33639:case 33640:{q=f[a+4>>2]|0;B=1;q=(q|0)>0?q:l;U=68;break}default:{if((c|0)<32992)switch(c|0){case 6407:{B=3;break}case 6410:{U=38;break}case 6408:{U=39;break}default:U=40}else switch(c|0){case 32992:{B=3;break}case 33319:{U=38;break}case 32993:{U=39;break}default:U=40}if((U|0)==38)B=2;else if((U|0)==39)B=4;else if((U|0)==40)B=1;q=f[a+4>>2]|0;q=(q|0)>0?q:l;if((o|0)==6656){z=((W(q,B)|0)+7|0)/8|0;y=f[a>>2]|0;A=(z|0)%(y|0)|0;z=((A|0)==0?0:y-A|0)+z|0;A=a+12|0;y=W(B,l)|0;t=p+(W(z,f[a+8>>2]|0)|0)|0;k=f[A>>2]|0;w=(y|0)>0;v=a+16|0;q=0;i=S;t=t+((W(k,B)|0)/8|0)|0;while(1){k=(W(k,B)|0)%8|0;do if(w)if(R){g=0;a=t;r=i;while(1){e=(f[v>>2]|0)!=0;do if(!(d[r>>1]&1))if(e){e=(1<<k^255)&h[a>>0];break}else{e=(1<<7-k^255)&h[a>>0];break}else if(e){e=1<<k|h[a>>0];break}else{e=1<<7-k|h[a>>0];break}while(0);b[a>>0]=e;k=k+1|0;e=(k|0)==8;g=g+1|0;if((g|0)==(y|0))break;else{k=e?0:k;a=e?a+1|0:a;r=r+2|0}}i=i+(y<<1)|0;break}else{g=0;a=t;r=i;while(1){e=(f[v>>2]|0)!=0;do if((d[r>>1]|0)>-1)if(e){e=(1<<k^255)&h[a>>0];break}else{e=(1<<7-k^255)&h[a>>0];break}else if(e){e=1<<k|h[a>>0];break}else{e=1<<7-k|h[a>>0];break}while(0);b[a>>0]=e;k=k+1|0;e=(k|0)==8;g=g+1|0;if((g|0)==(y|0))break;else{k=e?0:k;a=e?a+1|0:a;r=r+2|0}}i=i+(y<<1)|0;break}while(0);q=q+1|0;if((q|0)==(m|0))break d;t=t+z|0;k=f[A>>2]|0}}else U=68}}while(0);do if((U|0)==68){J=~~+FM(o);N=W(B,J)|0;M=W(N,q)|0;O=f[a>>2]|0;K=(M|0)%(O|0)|0;K=(K|0)==0?0:O-K|0;M=K+M|0;O=a+8|0;L=a+12|0;H=W(B,l)|0;w=f[O>>2]|0;a=p+(W(M,w)|0)|0;t=f[L>>2]|0;I=(H|0)>0;C=(i|0)==0|(J|0)==1;D=(o|0)==5125;E=Q+1|0;F=Q+2|0;G=Q+3|0;v=W(t+q|0,N)|0;w=W(M,m+-1+w|0)|0;y=P+4|0;z=P+8|0;A=P+12|0;r=0;t=a+(W(t,N)|0)|0;q=S;while(1){if(I){a=0;g=t;while(1){e:do if((o|0)<32820){if((o|0)<5124){f:do switch(o|0){case 5121:{i=q+2|0;q=d[q>>1]|0;if(R){b[g>>0]=q;q=i;break e}else{b[g>>0]=(q&65535)>>>8;q=i;break e}}case 5120:{i=q+2|0;q=d[q>>1]|0;if(R){b[g>>0]=q;q=i;break e}else{b[g>>0]=(q&65535)>>>9;q=i;break e}}case 5123:{i=d[q>>1]|0;d[Q>>1]=i;q=q+2|0;k=i&255;i=(i&65535)>>>8&255;break}case 5122:{i=q+2|0;e=d[q>>1]|0;if(R){d[Q>>1]=e;q=i;k=e&255;i=(e&65535)>>>8&255;break f}else{k=(e&65535)>>>1;d[Q>>1]=k;q=i;k=k&255;i=(e&65535)>>>9&255;break f}}default:break e}while(0);if(C){b[g>>0]=k;b[g+1>>0]=b[E>>0]|0;break}else{b[g>>0]=i;b[g+1>>0]=b[Q>>0]|0;break}}do if((o|0)<5126){switch(o|0){case 5125:case 5124:break;default:break e}k=q+2|0;i=j[q>>1]|0;if(D)if(R){f[Q>>2]=i;q=k;k=i>>>8;break}else{i=i*65537|0;f[Q>>2]=i;q=k;k=i>>>8;break}else if(R){f[Q>>2]=i;q=k;k=i>>>8;break}else{e=i*65537|0;i=e>>>1;f[Q>>2]=i;q=k;k=e>>>9;break}}else{if((o|0)<32818){switch(o|0){case 5126:break;default:break e}i=q+2|0;x=+(j[q>>1]|0);if(R){n[Q>>2]=x;e=(n[s>>2]=x,f[s>>2]|0);q=i;k=e>>>8;i=e;break}else{x=x/65535.0;n[Q>>2]=x;e=(n[s>>2]=x,f[s>>2]|0);q=i;k=e>>>8;i=e;break}}switch(o|0){case 32818:{n[P>>2]=+(j[q>>1]|0)/65535.0;n[y>>2]=+(j[q+2>>1]|0)/65535.0;n[z>>2]=+(j[q+4>>1]|0)/65535.0;GM(P,0,g);q=q+6|0;break e}case 32819:break;default:break e}n[P>>2]=+(j[q>>1]|0)/65535.0;n[y>>2]=+(j[q+2>>1]|0)/65535.0;n[z>>2]=+(j[q+4>>1]|0)/65535.0;n[A>>2]=+(j[q+6>>1]|0)/65535.0;q=q+8|0;KM(P,0,Q);if(C){d[g>>1]=d[Q>>1]|0;break e}else{b[g>>0]=b[E>>0]|0;b[g+1>>0]=b[Q>>0]|0;break e}}while(0);i=i&255;if(C){b[g>>0]=i;b[g+1>>0]=b[E>>0]|0;b[g+2>>0]=b[F>>0]|0;b[g+3>>0]=b[G>>0]|0;break}else{b[g+3>>0]=i;b[g+2>>0]=k;b[g+1>>0]=b[F>>0]|0;b[g>>0]=b[G>>0]|0;break}}else do switch(o|0){case 33634:{n[P>>2]=+(j[q>>1]|0)/65535.0;n[y>>2]=+(j[q+2>>1]|0)/65535.0;n[z>>2]=+(j[q+4>>1]|0)/65535.0;HM(P,0,g);q=q+6|0;break e}case 33635:{n[P>>2]=+(j[q>>1]|0)/65535.0;n[y>>2]=+(j[q+2>>1]|0)/65535.0;n[z>>2]=+(j[q+4>>1]|0)/65535.0;q=q+6|0;IM(P,0,Q);if(C){d[g>>1]=d[Q>>1]|0;break e}else{b[g>>0]=b[E>>0]|0;b[g+1>>0]=b[Q>>0]|0;break e}}case 33636:{n[P>>2]=+(j[q>>1]|0)/65535.0;n[y>>2]=+(j[q+2>>1]|0)/65535.0;n[z>>2]=+(j[q+4>>1]|0)/65535.0;q=q+6|0;JM(P,0,Q);if(C){d[g>>1]=d[Q>>1]|0;break e}else{b[g>>0]=b[E>>0]|0;b[g+1>>0]=b[Q>>0]|0;break e}}case 33637:{n[P>>2]=+(j[q>>1]|0)/65535.0;n[y>>2]=+(j[q+2>>1]|0)/65535.0;n[z>>2]=+(j[q+4>>1]|0)/65535.0;n[A>>2]=+(j[q+6>>1]|0)/65535.0;q=q+8|0;LM(P,0,Q);if(C){d[g>>1]=d[Q>>1]|0;break e}else{b[g>>0]=b[E>>0]|0;b[g+1>>0]=b[Q>>0]|0;break e}}case 32820:{n[P>>2]=+(j[q>>1]|0)/65535.0;n[y>>2]=+(j[q+2>>1]|0)/65535.0;n[z>>2]=+(j[q+4>>1]|0)/65535.0;n[A>>2]=+(j[q+6>>1]|0)/65535.0;q=q+8|0;MM(P,0,Q);if(C){d[g>>1]=d[Q>>1]|0;break e}else{b[g>>0]=b[E>>0]|0;b[g+1>>0]=b[Q>>0]|0;break e}}case 33638:{n[P>>2]=+(j[q>>1]|0)/65535.0;n[y>>2]=+(j[q+2>>1]|0)/65535.0;n[z>>2]=+(j[q+4>>1]|0)/65535.0;n[A>>2]=+(j[q+6>>1]|0)/65535.0;q=q+8|0;NM(P,0,Q);if(C){d[g>>1]=d[Q>>1]|0;break e}else{b[g>>0]=b[E>>0]|0;b[g+1>>0]=b[Q>>0]|0;break e}}case 32821:{n[P>>2]=+(j[q>>1]|0)/65535.0;n[y>>2]=+(j[q+2>>1]|0)/65535.0;n[z>>2]=+(j[q+4>>1]|0)/65535.0;n[A>>2]=+(j[q+6>>1]|0)/65535.0;q=q+8|0;OM(P,0,Q);if(C){f[g>>2]=f[Q>>2];break e}else{b[g+3>>0]=b[Q>>0]|0;b[g+2>>0]=b[E>>0]|0;b[g+1>>0]=b[F>>0]|0;b[g>>0]=b[G>>0]|0;break e}}case 33639:{n[P>>2]=+(j[q>>1]|0)/65535.0;n[y>>2]=+(j[q+2>>1]|0)/65535.0;n[z>>2]=+(j[q+4>>1]|0)/65535.0;n[A>>2]=+(j[q+6>>1]|0)/65535.0;q=q+8|0;PM(P,0,Q);if(C){f[g>>2]=f[Q>>2];break e}else{b[g+3>>0]=b[Q>>0]|0;b[g+2>>0]=b[E>>0]|0;b[g+1>>0]=b[F>>0]|0;b[g>>0]=b[G>>0]|0;break e}}case 32822:{n[P>>2]=+(j[q>>1]|0)/65535.0;n[y>>2]=+(j[q+2>>1]|0)/65535.0;n[z>>2]=+(j[q+4>>1]|0)/65535.0;n[A>>2]=+(j[q+6>>1]|0)/65535.0;q=q+8|0;QM(P,0,Q);if(C){f[g>>2]=f[Q>>2];break e}else{b[g+3>>0]=b[Q>>0]|0;b[g+2>>0]=b[E>>0]|0;b[g+1>>0]=b[F>>0]|0;b[g>>0]=b[G>>0]|0;break e}}case 33640:{n[P>>2]=+(j[q>>1]|0)/65535.0;n[y>>2]=+(j[q+2>>1]|0)/65535.0;n[z>>2]=+(j[q+4>>1]|0)/65535.0;n[A>>2]=+(j[q+6>>1]|0)/65535.0;q=q+8|0;RM(P,0,Q);if(C){f[g>>2]=f[Q>>2];break e}else{b[g+3>>0]=b[Q>>0]|0;b[g+2>>0]=b[E>>0]|0;b[g+1>>0]=b[F>>0]|0;b[g>>0]=b[G>>0]|0;break e}}default:break e}while(0);while(0);a=a+1|0;if((a|0)==(H|0)){e=q;break}else g=g+J|0}}else e=q;r=r+1|0;if((r|0)==(m|0))break;else{t=t+M|0;q=e}}k=p+(v+K+w)|0;switch(o|0){case 32818:case 32819:case 32820:case 32821:case 32822:case 33634:case 33635:case 33636:case 33637:case 33638:case 33639:case 33640:{i=W(m,l)|0;if((c|0)<32992)switch(c|0){case 6407:{q=3;break}case 6410:{U=136;break}case 6408:{U=137;break}default:U=138}else switch(c|0){case 32992:{q=3;break}case 33319:{U=136;break}case 32993:{U=137;break}default:U=138}if((U|0)==136)q=2;else if((U|0)==137)q=4;else if((U|0)==138)q=1;if((e|0)!=(S+((W(i,q)|0)<<1)|0))kb(182297,182098,5550,182285);break}default:if((e|0)!=(S+((W(W(m,l)|0,B)|0)<<1)|0))kb(182241,182098,5546,182285)}U=W((f[O>>2]|0)+m|0,M)|0;if((k|0)==(p+(U+(W(f[L>>2]|0,N)|0))|0))break;else kb(182360,182098,5554,182285)}while(0);Lob(T);Lob(S);U=0;u=V;return U|0}function CM(a){a=a|0;var b=0;a:do if((a|0)<32820){if((a|0)<5125)switch(a|0){case 5124:case 5123:case 5122:case 5121:case 5120:{a=1;break a}default:{b=2;break a}}if((a|0)<6656)switch(a|0){case 5126:case 5125:{a=1;break a}default:{b=2;break a}}if((a|0)<32818)switch(a|0){case 6656:{a=1;break a}default:{b=2;break a}}else switch(a|0){case 32819:case 32818:{a=1;break a}default:{b=2;break a}}}else switch(a|0){case 33640:case 32822:case 33639:case 32821:case 33638:case 32820:case 33637:case 33636:case 33635:case 33634:{a=1;break}default:b=2}while(0);if((b|0)==2)a=0;return a|0}function DM(a,c,e,g,i,j,k,l){a=a|0;c=c|0;e=e|0;g=g|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,o=0,p=0,q=0,r=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,G=0;p=f[a+52>>2]|0;switch(i|0){case 32818:case 32819:case 32820:case 32821:case 32822:case 33634:case 33635:case 33636:case 33637:case 33638:case 33639:case 33640:{m=f[a+36>>2]|0;o=1;m=(m|0)>0?m:c;break}default:{if((g|0)<32992)switch(g|0){case 6407:{o=3;break}case 6410:{G=3;break}case 6408:{G=4;break}default:G=5}else switch(g|0){case 32992:{o=3;break}case 33319:{G=3;break}case 32993:{G=4;break}default:G=5}if((G|0)==3)o=2;else if((G|0)==4)o=4;else if((G|0)==5)o=1;m=f[a+36>>2]|0;m=(m|0)>0?m:c;if((i|0)==6656){z=((W(m,o)|0)+7|0)/8|0;y=f[a+32>>2]|0;m=(z|0)%(y|0)|0;z=((m|0)==0?0:y-m|0)+z|0;m=W(f[a+44>>2]|0,o)|0;y=W(o,c)|0;if((e|0)<=0)return;o=(m|0)/8|0;w=m-(o<<3)|0;x=a+48|0;v=j<<24>>24==0;if((y|0)<=0)return;u=0;r=k+(W(z,f[a+40>>2]|0)|0)+o|0;while(1){j=(f[x>>2]|0)==0;if(v){m=w;o=0;a=r;p=l;while(1){d[p>>1]=((1<<(j?7-m|0:m)&(h[a>>0]|0)|0)!=0)<<31>>31;m=m+1|0;q=(m|0)==8;o=o+1|0;if((o|0)==(y|0))break;else{m=q?0:m;a=q?a+1|0:a;p=p+2|0}}}else{m=w;o=0;a=r;p=l;while(1){d[p>>1]=(1<<(j?7-m|0:m)&(h[a>>0]|0)|0)!=0&1;m=m+1|0;q=(m|0)==8;o=o+1|0;if((o|0)==(y|0))break;else{m=q?0:m;a=q?a+1|0:a;p=p+2|0}}}u=u+1|0;if((u|0)==(e|0))break;else{l=l+(y<<1)|0;r=r+z|0}}return}}}C=~~+FM(i);q=W(o,C)|0;E=W(q,m)|0;F=f[a+32>>2]|0;r=(E|0)%(F|0)|0;r=(r|0)==0?0:F-r|0;E=r+E|0;F=f[a+40>>2]|0;a=f[a+44>>2]|0;D=W(a,q)|0;z=W(o,c)|0;if((e|0)>0){A=(z|0)>0;B=j<<24>>24==0;x=(C|0)==1|(p|0)==0;y=(i|0)==5122;w=j<<24>>24!=0;v=r+(W(q,m+a|0)|0)+(W(F+e+-1|0,E)|0)|0;j=0;u=k+(W(E,F)|0)+D|0;p=l;while(1){if(A){r=0;q=u;while(1){a:do if((i|0)<32820){if((i|0)<5124)switch(i|0){case 5121:{m=b[q>>0]|0;if(B){d[p>>1]=(m&255)*257;p=p+2|0;break a}else{d[p>>1]=m&255;p=p+2|0;break a}}case 5120:{m=b[q>>0]|0;if(B){d[p>>1]=(m<<24>>24)*516;p=p+2|0;break a}else{d[p>>1]=m<<24>>24;p=p+2|0;break a}}case 5122:case 5123:{if(x){m=q+1|0;a=h[q>>0]|0}else{m=q;a=h[q+1>>0]|0}m=(h[m>>0]|0)<<8|a;if(!y){d[p>>1]=m;p=p+2|0;break a}if(B){d[p>>1]=m<<1;p=p+2|0;break a}else{d[p>>1]=m;p=p+2|0;break a}}default:break a}b:do if((i|0)<5126)switch(i|0){case 5125:case 5124:break;default:break a}else{if((i|0)<32818)switch(i|0){case 5126:break b;default:break a}switch(i|0){case 32818:{a=h[q>>0]|0;d[p>>1]=~~(+(a>>>5|0)/7.0*65535.0);d[p+2>>1]=~~(+(a>>>2&7|0)/7.0*65535.0);d[p+4>>1]=~~(+(a&3|0)/3.0*65535.0);p=p+6|0;break a}case 32819:break;default:break a}if(x)m=d[q>>1]|0;else m=((h[q+1>>0]|0)<<8|(h[q>>0]|0))&65535;a=m&65535;d[p>>1]=~~(+(a>>>12|0)/15.0*65535.0);d[p+2>>1]=~~(+(a>>>8&15|0)/15.0*65535.0);d[p+4>>1]=~~(+(a>>>4&15|0)/15.0*65535.0);d[p+6>>1]=~~(+(a&15|0)/15.0*65535.0);p=p+8|0;break a}while(0);if(x){m=q+3|0;a=(h[q+1>>0]|0)<<8|(h[q>>0]|0)|(h[q+2>>0]|0)<<16}else{m=q;a=(h[q+2>>0]|0)<<8|(h[q+3>>0]|0)|(h[q+1>>0]|0)<<16}m=a|(h[m>>0]|0)<<24;switch(i|0){case 5126:{t=(f[s>>2]=m,+n[s>>2]);if(B){d[p>>1]=~~(t*65535.0);p=p+2|0;break a}else{d[p>>1]=~~t;p=p+2|0;break a}}case 5125:if(w){d[p>>1]=a;p=p+2|0;break a}else{d[p>>1]=m>>>16;p=p+2|0;break a}default:if(w){d[p>>1]=a;p=p+2|0;break a}else{d[p>>1]=m>>>15;p=p+2|0;break a}}}else do switch(i|0){case 33634:{a=h[q>>0]|0;d[p>>1]=~~(+(a&7|0)/7.0*65535.0);d[p+2>>1]=~~(+(a>>>3&7|0)/7.0*65535.0);d[p+4>>1]=~~(+(a>>>6|0)/3.0*65535.0);p=p+6|0;break a}case 33635:{if(x)m=d[q>>1]|0;else m=((h[q+1>>0]|0)<<8|(h[q>>0]|0))&65535;a=m&65535;d[p>>1]=~~(+(a>>>11|0)/31.0*65535.0);d[p+2>>1]=~~(+(a>>>5&63|0)/63.0*65535.0);d[p+4>>1]=~~(+(a&31|0)/31.0*65535.0);p=p+6|0;break a}case 33636:{if(x)m=d[q>>1]|0;else m=((h[q+1>>0]|0)<<8|(h[q>>0]|0))&65535;a=m&65535;d[p>>1]=~~(+(a&31|0)/31.0*65535.0);d[p+2>>1]=~~(+(a>>>5&63|0)/63.0*65535.0);d[p+4>>1]=~~(+(a>>>11|0)/31.0*65535.0);p=p+6|0;break a}case 33637:{if(x)m=d[q>>1]|0;else m=((h[q+1>>0]|0)<<8|(h[q>>0]|0))&65535;a=m&65535;d[p>>1]=~~(+(a&15|0)/15.0*65535.0);d[p+2>>1]=~~(+(a>>>4&15|0)/15.0*65535.0);d[p+4>>1]=~~(+(a>>>8&15|0)/15.0*65535.0);d[p+6>>1]=~~(+(a>>>12|0)/15.0*65535.0);p=p+8|0;break a}case 32820:{if(x)m=d[q>>1]|0;else m=((h[q+1>>0]|0)<<8|(h[q>>0]|0))&65535;a=m&65535;d[p>>1]=~~(+(a>>>11|0)/31.0*65535.0);d[p+2>>1]=~~(+(a>>>6&31|0)/31.0*65535.0);d[p+4>>1]=~~(+(a>>>1&31|0)/31.0*65535.0);d[p+6>>1]=~~(+(a&1|0)*65535.0);p=p+8|0;break a}case 33638:{if(x)m=d[q>>1]|0;else m=((h[q+1>>0]|0)<<8|(h[q>>0]|0))&65535;a=m&65535;d[p>>1]=~~(+(a&31|0)/31.0*65535.0);d[p+2>>1]=~~(+(a>>>5&31|0)/31.0*65535.0);d[p+4>>1]=~~(+(a>>>10&31|0)/31.0*65535.0);d[p+6>>1]=~~(+(a>>>15|0)*65535.0);p=p+8|0;break a}case 32821:{if(x)m=f[q>>2]|0;else m=(h[q+2>>0]|0)<<16|(h[q+3>>0]|0)<<24|(h[q+1>>0]|0)<<8|(h[q>>0]|0);d[p>>1]=~~(+(m>>>24>>>0)/255.0*65535.0);d[p+2>>1]=~~(+((m>>>16&255)>>>0)/255.0*65535.0);d[p+4>>1]=~~(+((m>>>8&255)>>>0)/255.0*65535.0);d[p+6>>1]=~~(+((m&255)>>>0)/255.0*65535.0);p=p+8|0;break a}case 33639:{if(x)m=f[q>>2]|0;else m=(h[q+2>>0]|0)<<16|(h[q+3>>0]|0)<<24|(h[q+1>>0]|0)<<8|(h[q>>0]|0);d[p>>1]=~~(+((m&255)>>>0)/255.0*65535.0);d[p+2>>1]=~~(+((m>>>8&255)>>>0)/255.0*65535.0);d[p+4>>1]=~~(+((m>>>16&255)>>>0)/255.0*65535.0);d[p+6>>1]=~~(+(m>>>24>>>0)/255.0*65535.0);p=p+8|0;break a}case 32822:{if(x)m=f[q>>2]|0;else m=(h[q+2>>0]|0)<<16|(h[q+3>>0]|0)<<24|(h[q+1>>0]|0)<<8|(h[q>>0]|0);d[p>>1]=~~(+(m>>>22>>>0)/1023.0*65535.0);d[p+2>>1]=~~(+((m>>>12&1023)>>>0)/1023.0*65535.0);d[p+4>>1]=~~(+((m>>>2&1023)>>>0)/1023.0*65535.0);d[p+6>>1]=~~(+((m&3)>>>0)/3.0*65535.0);p=p+8|0;break a}case 33640:{if(x)m=f[q>>2]|0;else m=(h[q+2>>0]|0)<<16|(h[q+3>>0]|0)<<24|(h[q+1>>0]|0)<<8|(h[q>>0]|0);d[p>>1]=~~(+((m&1023)>>>0)/1023.0*65535.0);d[p+2>>1]=~~(+((m>>>10&1023)>>>0)/1023.0*65535.0);d[p+4>>1]=~~(+((m>>>20&1023)>>>0)/1023.0*65535.0);d[p+6>>1]=~~(+(m>>>30>>>0)/3.0*65535.0);p=p+8|0;break a}default:break a}while(0);while(0);r=r+1|0;if((r|0)==(z|0))break;else q=q+C|0}}j=j+1|0;if((j|0)==(e|0))break;else u=u+E|0}a=k+v|0}else{p=l;a=0}if(!((CM(i)|0)<<24>>24))kb(182836,182098,3368,182852);switch(i|0){case 32818:case 32819:case 32820:case 32821:case 32822:case 33634:case 33635:case 33636:case 33637:case 33638:case 33639:case 33640:{o=W(e,c)|0;if((g|0)<32992)switch(g|0){case 6407:{m=3;break}case 6410:{G=100;break}case 6408:{G=101;break}default:G=102}else switch(g|0){case 32992:{m=3;break}case 33319:{G=100;break}case 32993:{G=101;break}default:G=102}if((G|0)==100)m=2;else if((G|0)==101)m=4;else if((G|0)==102)m=1;if((p|0)!=(l+((W(o,m)|0)<<1)|0))kb(182925,182098,5208,182914);break}default:if((p|0)!=(l+((W(W(e,c)|0,o)|0)<<1)|0))kb(182870,182098,5204,182914)}if((a|0)==(k+((W(E,F+e|0)|0)+D)|0))return;else kb(182988,182098,5212,182914)}function EM(a,b,c,e,g,h,i){a=a|0;b=b|0;c=c|0;e=e|0;g=g|0;h=h|0;i=i|0;var k=0.0,l=0.0,m=0,o=0,p=0,q=0,r=0,s=0,t=0.0,v=0,w=0,x=0,y=0,z=0,A=0.0,B=0,C=0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0,Q=0,R=0;Q=u;u=u+16|0;P=Q;if((g<<1|0)==(b|0)&(h<<1|0)==(c|0)){C=b>>>1;B=c>>>1;w=W(b,a)|0;if(!B){u=Q;return}x=w+a|0;if(!C){u=Q;return}y=W(C,a)|0;z=W((C<<2)+-2|0,a)|0;if((a|0)<=0){u=Q;return}v=0;while(1){m=0;p=i;q=e;while(1){o=0;r=p;s=q;while(1){d[r>>1]=((j[s>>1]|0)+2+(j[s+(a<<1)>>1]|0)+(j[s+(w<<1)>>1]|0)+(j[s+(x<<1)>>1]|0)|0)>>>2;o=o+1|0;if((o|0)==(a|0))break;else{r=r+2|0;s=s+2|0}}m=m+1|0;if((m|0)==(C|0))break;else{p=p+(a<<1)|0;q=q+(a<<1)+(a<<1)|0}}v=v+1|0;if((v|0)==(B|0))break;else{i=i+(y<<1)|0;e=e+z+(a<<1)+(w<<1)|0}}u=Q;return}k=+(c|0)/+(h|0);t=+(b|0)/+(g|0);A=t*.5;l=k*.5;if((h|0)<=0){u=Q;return}C=(c|0)>(h|0);O=C?l:.5;N=C?-l:-.5;C=(g|0)>0;x=(b|0)>(g|0);M=x?A:.5;J=x?-A:-.5;x=(a|0)>0;w=0;do{L=(+(w|0)+.5)*k;K=N+L;L=O+L;if(C){y=~~+I(+K);z=K<L;B=W(w,g)|0;v=0;do{G=(+(v|0)+.5)*t;F=J+G;G=M+G;f[P>>2]=0;f[P+4>>2]=0;f[P+8>>2]=0;f[P+12>>2]=0;a:do if(z){s=~~+I(+F);if(!(F<G)){m=y;while(1){m=m+1|0;if(!(L>+(m|0))){l=0.0;break a}}}r=y;l=0.0;H=K;do{q=r;r=r+1|0;E=H;H=+(r|0);E=(L<H?L:H)-E;q=W((q+c|0)%(c|0)|0,b)|0;if(x){p=s;D=F;do{o=p;p=p+1|0;A=D;D=+(p|0);A=E*((G<D?G:D)-A);o=W(((o+b|0)%(b|0)|0)+q|0,a)|0;m=0;do{R=P+(m<<2)|0;n[R>>2]=+n[R>>2]+A*+(j[e+(m+o<<1)>>1]|0);m=m+1|0}while((m|0)!=(a|0));l=l+A}while(G>D)}else{m=s;A=F;do{m=m+1|0;D=A;A=+(m|0);l=l+E*((G<A?G:A)-D)}while(G>A)}}while(L>H)}else l=0.0;while(0);o=W(v+B|0,a)|0;if(x){m=0;do{d[i+(m+o<<1)>>1]=~~((+n[P+(m<<2)>>2]+.5)/l);m=m+1|0}while((m|0)!=(a|0))}v=v+1|0}while((v|0)!=(g|0))}w=w+1|0}while((w|0)!=(h|0));u=Q;return}function FM(a){a=a|0;var b=0.0,c=0;a:do if((a|0)<32820){if((a|0)<5125)switch(a|0){case 5123:{b=2.0;break a}case 5122:{b=2.0;break a}case 5121:{b=1.0;break a}case 5120:{b=1.0;break a}case 5124:{b=4.0;break a}default:{c=12;break a}}if((a|0)>=6656)if((a|0)<32818)switch(a|0){case 6656:{b=.125;break a}default:{c=12;break a}}else switch(a|0){case 32818:{c=9;break a}case 32819:{c=10;break a}default:{c=12;break a}}else switch(a|0){case 5125:{b=4.0;break a}case 5126:{b=4.0;break a}default:{c=12;break a}}}else{switch(a|0){case 33634:{c=9;break a}case 33638:case 32820:case 33637:case 33636:case 33635:{c=10;break a}case 33640:case 32822:case 33639:case 32821:break;default:{c=12;break a}}b=4.0}while(0);if((c|0)==9)b=1.0;else if((c|0)==10)b=2.0;else if((c|0)==12)b=4.0;return +b}function GM(a,c,d){a=a|0;c=c|0;d=d|0;var e=0.0,f=0,g=0.0,h=0;e=+n[a>>2];if(!(e>=0.0)|!(e<=1.0))kb(182476,182098,5584,182827);f=a+4|0;g=+n[f>>2];if(!(g>=0.0)|!(g<=1.0))kb(182547,182098,5585,182827);a=a+8|0;g=+n[a>>2];if(!(g>=0.0)|!(g<=1.0))kb(182602,182098,5586,182827);else{h=(~~(e*7.0+.5)&255)<<5;d=d+c|0;b[d>>0]=h;f=(~~(+n[f>>2]*7.0+.5)&255)<<2&28|h;b[d>>0]=f;b[d>>0]=f|~~(+n[a>>2]*3.0+.5)&3;return}}function HM(a,c,d){a=a|0;c=c|0;d=d|0;var e=0.0,f=0,g=0.0,h=0;e=+n[a>>2];if(!(e>=0.0)|!(e<=1.0))kb(182476,182098,5618,182815);f=a+4|0;g=+n[f>>2];if(!(g>=0.0)|!(g<=1.0))kb(182547,182098,5619,182815);a=a+8|0;g=+n[a>>2];if(!(g>=0.0)|!(g<=1.0))kb(182602,182098,5620,182815);else{h=~~(e*7.0+.5)&7;d=d+c|0;b[d>>0]=h;f=(~~(+n[f>>2]*7.0+.5)&255)<<3&56|h&255;b[d>>0]=f;b[d>>0]=f|(~~(+n[a>>2]*3.0+.5)&255)<<6;return}}function IM(a,b,c){a=a|0;b=b|0;c=c|0;var e=0.0,f=0.0,g=0.0;f=+n[a>>2];if(!(f>=0.0)|!(f<=1.0))kb(182476,182098,5659,182806);g=+n[a+4>>2];if(!(g>=0.0)|!(g<=1.0))kb(182547,182098,5660,182806);e=+n[a+8>>2];if(!(e>=0.0)|!(e<=1.0))kb(182602,182098,5661,182806);else{d[c+(b<<1)>>1]=(~~(g*63.0+.5)&65535)<<5&2016|(~~(f*31.0+.5)&65535)<<11|~~(e*31.0+.5)&31;return}}function JM(a,b,c){a=a|0;b=b|0;c=c|0;var e=0.0,f=0.0,g=0.0;f=+n[a>>2];if(!(f>=0.0)|!(f<=1.0))kb(182476,182098,5700,182794);g=+n[a+4>>2];if(!(g>=0.0)|!(g<=1.0))kb(182547,182098,5701,182794);e=+n[a+8>>2];if(!(e>=0.0)|!(e<=1.0))kb(182602,182098,5702,182794);else{d[c+(b<<1)>>1]=(~~(g*63.0+.5)&65535)<<5&2016|~~(f*31.0+.5)&31|(~~(e*31.0+.5)&65535)<<11;return}}function KM(a,b,c){a=a|0;b=b|0;c=c|0;var e=0.0,f=0.0,g=0.0,h=0.0;g=+n[a>>2];if(!(g>=0.0)|!(g<=1.0))kb(182476,182098,5739,182784);h=+n[a+4>>2];if(!(h>=0.0)|!(h<=1.0))kb(182547,182098,5740,182784);f=+n[a+8>>2];if(!(f>=0.0)|!(f<=1.0))kb(182602,182098,5741,182784);e=+n[a+12>>2];if(!(e>=0.0)|!(e<=1.0))kb(182657,182098,5742,182784);else{d[c+(b<<1)>>1]=(~~(h*15.0+.5)&65535)<<8&3840|(~~(g*15.0+.5)&65535)<<12|(~~(f*15.0+.5)&65535)<<4&240|~~(e*15.0+.5)&15;return}}function LM(a,b,c){a=a|0;b=b|0;c=c|0;var e=0.0,f=0.0,g=0.0,h=0.0;g=+n[a>>2];if(!(g>=0.0)|!(g<=1.0))kb(182476,182098,5787,182771);h=+n[a+4>>2];if(!(h>=0.0)|!(h<=1.0))kb(182547,182098,5788,182771);f=+n[a+8>>2];if(!(f>=0.0)|!(f<=1.0))kb(182602,182098,5789,182771);e=+n[a+12>>2];if(!(e>=0.0)|!(e<=1.0))kb(182657,182098,5790,182771);else{d[c+(b<<1)>>1]=(~~(h*15.0+.5)&65535)<<4&240|~~(g*15.0+.5)&15|(~~(f*15.0+.5)&65535)<<8&3840|(~~(e*15.0+.5)&65535)<<12;return}}function MM(a,b,c){a=a|0;b=b|0;c=c|0;var e=0.0,f=0.0,g=0.0,h=0.0;g=+n[a>>2];if(!(g>=0.0)|!(g<=1.0))kb(182476,182098,5834,182761);h=+n[a+4>>2];if(!(h>=0.0)|!(h<=1.0))kb(182547,182098,5835,182761);f=+n[a+8>>2];if(!(f>=0.0)|!(f<=1.0))kb(182602,182098,5836,182761);e=+n[a+12>>2];if(!(e>=0.0)|!(e<=1.0))kb(182657,182098,5837,182761);else{d[c+(b<<1)>>1]=(~~(h*31.0+.5)&65535)<<6&1984|(~~(g*31.0+.5)&65535)<<11|(~~(f*31.0+.5)&65535)<<1&62|~~(e+.5)&1;return}}function NM(a,b,c){a=a|0;b=b|0;c=c|0;var e=0.0,f=0.0,g=0.0,h=0.0;g=+n[a>>2];if(!(g>=0.0)|!(g<=1.0))kb(182476,182098,5882,182748);h=+n[a+4>>2];if(!(h>=0.0)|!(h<=1.0))kb(182547,182098,5883,182748);f=+n[a+8>>2];if(!(f>=0.0)|!(f<=1.0))kb(182602,182098,5884,182748);e=+n[a+12>>2];if(!(e>=0.0)|!(e<=1.0))kb(182657,182098,5885,182748);else{d[c+(b<<1)>>1]=(~~(h*31.0+.5)&65535)<<5&992|~~(g*31.0+.5)&31|(~~(f*31.0+.5)&65535)<<10&31744|(~~(e+.5)&65535)<<15;return}}function OM(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,g=0.0,h=0.0;g=+n[a>>2];if(!(g>=0.0)|!(g<=1.0))kb(182476,182098,5930,182738);h=+n[a+4>>2];if(!(h>=0.0)|!(h<=1.0))kb(182547,182098,5931,182738);e=+n[a+8>>2];if(!(e>=0.0)|!(e<=1.0))kb(182602,182098,5932,182738);d=+n[a+12>>2];if(!(d>=0.0)|!(d<=1.0))kb(182657,182098,5933,182738);else{f[c+(b<<2)>>2]=~~(h*255.0+.5)>>>0<<16&16711680|~~(g*255.0+.5)>>>0<<24|~~(e*255.0+.5)>>>0<<8&65280|~~(d*255.0+.5)>>>0&255;return}}function PM(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,g=0.0,h=0.0;g=+n[a>>2];if(!(g>=0.0)|!(g<=1.0))kb(182476,182098,5978,182725);h=+n[a+4>>2];if(!(h>=0.0)|!(h<=1.0))kb(182547,182098,5979,182725);e=+n[a+8>>2];if(!(e>=0.0)|!(e<=1.0))kb(182602,182098,5980,182725);d=+n[a+12>>2];if(!(d>=0.0)|!(d<=1.0))kb(182657,182098,5981,182725);else{f[c+(b<<2)>>2]=~~(h*255.0+.5)>>>0<<8&65280|~~(g*255.0+.5)>>>0&255|~~(e*255.0+.5)>>>0<<16&16711680|~~(d*255.0+.5)>>>0<<24;return}}function QM(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,g=0.0,h=0.0;g=+n[a>>2];if(!(g>=0.0)|!(g<=1.0))kb(182476,182098,6026,182712);h=+n[a+4>>2];if(!(h>=0.0)|!(h<=1.0))kb(182547,182098,6027,182712);e=+n[a+8>>2];if(!(e>=0.0)|!(e<=1.0))kb(182602,182098,6028,182712);d=+n[a+12>>2];if(!(d>=0.0)|!(d<=1.0))kb(182657,182098,6029,182712);else{f[c+(b<<2)>>2]=~~(h*1023.0+.5)>>>0<<12&4190208|~~(g*1023.0+.5)>>>0<<22|~~(e*1023.0+.5)>>>0<<2&4092|~~(d*3.0+.5)>>>0&3;return}}function RM(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,g=0.0,h=0.0;g=+n[a>>2];if(!(g>=0.0)|!(g<=1.0))kb(182476,182098,6076,182531);h=+n[a+4>>2];if(!(h>=0.0)|!(h<=1.0))kb(182547,182098,6077,182531);e=+n[a+8>>2];if(!(e>=0.0)|!(e<=1.0))kb(182602,182098,6078,182531);d=+n[a+12>>2];if(!(d>=0.0)|!(d<=1.0))kb(182657,182098,6079,182531);else{f[c+(b<<2)>>2]=~~(h*1023.0+.5)>>>0<<10&1047552|~~(g*1023.0+.5)>>>0&1023|~~(e*1023.0+.5)>>>0<<20&1072693248|~~(d*3.0+.5)>>>0<<30;return}}function SM(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;g=a+112|0;h=f[g>>2]|0;e=a+108|0;if(h|0){switch(f[e>>2]|0){case 1:{ODb(h);break}case 2:{Lob(h);break}default:{}}f[g>>2]=0}f[g>>2]=c;f[e>>2]=d;e=a+32|0;f[e>>2]=(f[e>>2]|0)+1;e=f[a+44>>2]|0;if(e|0)Vk[f[(f[e>>2]|0)+20>>2]&1023](e,a);e=f[a+40>>2]|0;if(!e)return;i=e+60|0;a=e+64|0;e=f[a>>2]|0;c=f[i>>2]|0;if((e|0)==(c|0))return;h=0;d=c;g=c;while(1){if(!(f[d+(h<<2)>>2]|0))c=g;else{c=e-d>>2;if(c>>>0>h>>>0)c=g;else{ax(i,h+1-c|0);e=f[a>>2]|0;c=f[i>>2]|0}b[(f[c+(h<<2)>>2]|0)+36>>0]=1;d=c}h=h+1|0;if(h>>>0>=e-d>>2>>>0)break;else g=c}return}function TM(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;o=u;u=u+32|0;n=o;nw(a,c,d);f[a>>2]=88884;f[a+32>>2]=0;f[a+36>>2]=0;f[a+40>>2]=0;d=f[c+44>>2]|0;f[a+44>>2]=d;if(d|0){m=d+(f[(f[d>>2]|0)+-12>>2]|0)+8|0;f[m>>2]=(f[m>>2]|0)+1}f[a+48>>2]=0;f[a>>2]=94824;VDb(a+52|0,c+52|0);f[a+64>>2]=f[c+64>>2];f[a+68>>2]=f[c+68>>2];f[a+72>>2]=f[c+72>>2];f[a+76>>2]=f[c+76>>2];f[a+80>>2]=f[c+80>>2];f[a+84>>2]=0;f[a+88>>2]=f[c+88>>2];f[a+92>>2]=f[c+92>>2];f[a+96>>2]=f[c+96>>2];f[a+100>>2]=f[c+100>>2];f[a+104>>2]=f[c+104>>2];f[a+108>>2]=1;l=a+112|0;e=a+116|0;g=c+116|0;m=a+120|0;h=a+124|0;j=c+120|0;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;f[l+12>>2]=0;d=(f[j>>2]|0)-(f[g>>2]|0)|0;i=d>>2;if(d|0){if(i>>>0>1073741823)KEb(e);k=LDb(d)|0;f[m>>2]=k;f[e>>2]=k;f[h>>2]=k+(i<<2);e=f[g>>2]|0;d=(f[j>>2]|0)-e|0;if((d|0)>0){gGb(k|0,e|0,d|0)|0;f[m>>2]=k+(d>>>2<<2)}}UM(a+128|0,c+128|0);if(!(f[c+112>>2]|0)){u=o;return}SM(a,MDb(uK(c)|0)|0,1);d=f[l>>2]|0;if(!d){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=1){u=o;return}c=Nv(Mv(2)|0,183322,85)|0;Ktb(n,c+(f[(f[c>>2]|0)+-12>>2]|0)|0);a=Bvb(n,295164)|0;a=wk[f[(f[a>>2]|0)+28>>2]&1023](a,10)|0;Cvb(n);rub(c,a)|0;Rtb(c)|0;u=o;return}f[n>>2]=c;k=n+4|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;f[k+12>>2]=0;f[k+16>>2]=0;tK(n);a=n+16|0;e=f[a>>2]|0;a:do if(e|0){c=n+20|0;l=n+8|0;m=n+12|0;while(1){j=f[c>>2]|0;gGb(d|0,e|0,j|0)|0;i=f[n>>2]|0;if(!i){d=16;break}e=f[i+84>>2]|0;if(!e){d=16;break}if((e|0)==(f[i+72>>2]|0)){d=16;break}q=f[i+116>>2]|0;p=f[i+120>>2]|0;e=(f[k>>2]|0)+1|0;f[k>>2]=e;e=(e|0)>=(f[i+76>>2]|0);g=p;h=q;if((q|0)==(p|0)){if(e?(f[k>>2]=0,q=(f[l>>2]|0)+1|0,f[l>>2]=q,(q|0)>=(f[i+80>>2]|0)):0){d=24;break}}else if((e?(f[k>>2]=0,q=(f[l>>2]|0)+1|0,f[l>>2]=q,(q|0)>=(f[i+80>>2]|0)):0)?(f[l>>2]=0,q=(f[m>>2]|0)+1|0,f[m>>2]=q,q>>>0>=((g-h>>2)+1|0)>>>0):0){d=21;break}tK(n);e=f[a>>2]|0;if(!e)break a;else d=d+j|0}if((d|0)==16){f[a>>2]=0;f[c>>2]=0;break}else if((d|0)==21){f[a>>2]=0;f[c>>2]=0;break}else if((d|0)==24){f[a>>2]=0;f[c>>2]=0;break}}while(0);u=o;return}function UM(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0;f[a>>2]=0;i=a+4|0;f[i>>2]=0;e=a+8|0;f[e>>2]=0;h=b+4|0;c=(f[h>>2]|0)-(f[b>>2]|0)|0;g=c>>2;if(!c)return;if(g>>>0>1073741823)KEb(a);d=LDb(c)|0;f[i>>2]=d;f[a>>2]=d;f[e>>2]=d+(g<<2);c=f[b>>2]|0;b=f[h>>2]|0;if((c|0)==(b|0))return;do{a=f[c>>2]|0;f[d>>2]=a;if(a|0){h=a+8|0;f[h>>2]=(f[h>>2]|0)+1}c=c+4|0;d=(f[i>>2]|0)+4|0;f[i>>2]=d}while((c|0)!=(b|0));return}function VM(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=u;u=u+16|0;j=l;if((c|0)<=-1){u=l;return}d=f[a+212>>2]|0;if((((f[a+216>>2]|0)-d|0)/20|0|0)<=(c|0)){u=l;return}k=f[d+(c*20|0)+12>>2]|0;if(!k){u=l;return}i=k+112|0;if((f[i>>2]|0)==(f[a+112>>2]|0)){u=l;return}a:do switch(f[a+176>>2]|0){case 2:case 4:{d=a+224|0;e=f[d>>2]|0;if((e|0)>-1){if((e|0)<(c|0)){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>3){h=Nv(Mv(4)|0,183408,20)|0;h=iub(Nv(iub(h,f[d>>2]|0)|0,217618,4)|0,c)|0;Ktb(j,h+(f[(f[h>>2]|0)+-12>>2]|0)|0);g=Bvb(j,295164)|0;g=wk[f[(f[g>>2]|0)+28>>2]&1023](g,10)|0;Cvb(j);rub(h,g)|0;Rtb(h)|0}e=f[d>>2]|0;if((e|0)>=(c|0))break a;h=a+212|0;while(1){e=(f[h>>2]|0)+(e*20|0)+12|0;g=f[e>>2]|0;if(g|0?(f[e>>2]=0,m=g+8|0,e=f[m>>2]|0,f[m>>2]=e-1,(e|0)==1):0)X4(g,1,1);if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>3){m=Nv(Mv(4)|0,183429,12)|0;m=iub(m,f[d>>2]|0)|0;Ktb(j,m+(f[(f[m>>2]|0)+-12>>2]|0)|0);g=Bvb(j,295164)|0;g=wk[f[(f[g>>2]|0)+28>>2]&1023](g,10)|0;Cvb(j);rub(m,g)|0;Rtb(m)|0}e=(f[d>>2]|0)+1|0;f[d>>2]=e;if((e|0)>=(c|0))break a}}if((e|0)>(c|0)){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>3){m=Nv(Mv(4)|0,183442,17)|0;m=iub(Nv(iub(m,f[d>>2]|0)|0,217618,4)|0,c)|0;Ktb(j,m+(f[(f[m>>2]|0)+-12>>2]|0)|0);h=Bvb(j,295164)|0;h=wk[f[(f[h>>2]|0)+28>>2]&1023](h,10)|0;Cvb(j);rub(m,h)|0;Rtb(m)|0}e=f[d>>2]|0;if((e|0)>(c|0)){h=a+212|0;do{e=(f[h>>2]|0)+(e*20|0)+12|0;g=f[e>>2]|0;if(g|0?(f[e>>2]=0,e=g+8|0,m=f[e>>2]|0,f[e>>2]=m-1,(m|0)==1):0)X4(g,1,1);if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>3){m=Nv(Mv(4)|0,183429,12)|0;m=iub(m,f[d>>2]|0)|0;Ktb(j,m+(f[(f[m>>2]|0)+-12>>2]|0)|0);g=Bvb(j,295164)|0;g=wk[f[(f[g>>2]|0)+28>>2]&1023](g,10)|0;Cvb(j);rub(m,g)|0;Rtb(m)|0}e=(f[d>>2]|0)+-1|0;f[d>>2]=e}while((e|0)>(c|0))}}}break}default:d=a+224|0}while(0);f[d>>2]=c;nM(a,f[k+72>>2]|0,f[k+76>>2]|0,f[k+80>>2]|0,f[k+88>>2]|0,f[k+92>>2]|0,f[k+96>>2]|0,f[i>>2]|0,0,f[k+100>>2]|0,0);e=k+116|0;d=a+116|0;if((d|0)==(e|0)){u=l;return}TD(d,f[e>>2]|0,f[k+120>>2]|0);u=l;return}function WM(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0;h=a+4|0;g=f[h>>2]|0;d=f[a>>2]|0;e=(g-d|0)/20|0;if(e>>>0<c>>>0){XM(a,c-e|0);return}if(e>>>0<=c>>>0)return;e=d+(c*20|0)|0;if((e|0)!=(g|0)){d=g;do{a=d+-4|0;c=f[a>>2]|0;if(c|0?(i=c+8|0,g=f[i>>2]|0,f[i>>2]=g-1,(g|0)==1):0)X4(c,1,1);f[a>>2]=0;a=d+-8|0;d=d+-20|0;c=f[a>>2]|0;if(c|0?(g=c+8|0,i=f[g>>2]|0,f[g>>2]=i-1,(i|0)==1):0)X4(c,1,1);f[a>>2]=0;if((b[d+11>>0]|0)<0)NDb(f[d>>2]|0)}while((d|0)!=(e|0))}f[h>>2]=e;return}function XM(a,b){a=a|0;b=b|0;var c=0,d=0,e=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;t=u;u=u+32|0;q=t;r=a+8|0;n=f[r>>2]|0;s=a+4|0;c=f[s>>2]|0;e=c;if(((n-c|0)/20|0)>>>0>=b>>>0){do{f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;f[c+16>>2]=0;c=(f[s>>2]|0)+20|0;f[s>>2]=c;b=b+-1|0}while((b|0)!=0);u=t;return}d=f[a>>2]|0;g=(c-d|0)/20|0;j=g+b|0;l=d;if(j>>>0>214748364)KEb(a);o=(n-d|0)/20|0;h=o<<1;h=o>>>0<107374182?(h>>>0<j>>>0?j:h):214748364;o=q+12|0;f[o>>2]=0;f[q+16>>2]=a+8;do if(h)if(h>>>0>214748364){t=mb(8)|0;RDb(t,238482);f[t>>2]=144484;qb(t|0,84192,1464)}else{i=LDb(h*20|0)|0;break}else i=0;while(0);f[q>>2]=i;d=i+(g*20|0)|0;m=q+8|0;p=q+4|0;f[p>>2]=d;k=i+(h*20|0)|0;f[o>>2]=k;iGb(d|0,0,b*20|0)|0;g=i+(j*20|0)|0;f[m>>2]=g;if((e|0)==(l|0)){h=o;i=m;j=c;e=c;b=k;c=n}else{do{c=e;e=e+-20|0;VDb(d+-20|0,e);b=f[c+-8>>2]|0;f[d+-8>>2]=b;if(b|0){n=b+8|0;f[n>>2]=(f[n>>2]|0)+1}c=f[c+-4>>2]|0;f[d+-4>>2]=c;if(c|0){n=c+8|0;f[n>>2]=(f[n>>2]|0)+1}d=(f[p>>2]|0)+-20|0;f[p>>2]=d}while((e|0)!=(l|0));h=o;i=m;j=f[a>>2]|0;g=f[m>>2]|0;e=f[s>>2]|0;b=f[o>>2]|0;c=f[r>>2]|0}f[a>>2]=d;f[p>>2]=j;f[s>>2]=g;f[i>>2]=e;f[r>>2]=b;f[h>>2]=c;f[q>>2]=j;YM(q);u=t;return}function YM(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;h=f[a+4>>2]|0;i=a+8|0;c=f[i>>2]|0;if((c|0)!=(h|0))do{g=c+-20|0;f[i>>2]=g;d=c+-4|0;e=f[d>>2]|0;if(e|0?(k=e+8|0,j=f[k>>2]|0,f[k>>2]=j-1,(j|0)==1):0)X4(e,1,1);f[d>>2]=0;c=c+-8|0;d=f[c>>2]|0;if(d|0?(j=d+8|0,k=f[j>>2]|0,f[j>>2]=k-1,(k|0)==1):0)X4(d,1,1);f[c>>2]=0;if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);c=f[i>>2]|0}while((c|0)!=(h|0));c=f[a>>2]|0;if(!c)return;NDb(c);return}function ZM(a){a=a|0;var b=0,c=0,d=0,e=0;f[a>>2]=95076;b=f[a+64>>2]|0;if(b|0){f[a+68>>2]=b;NDb(b)}b=f[a+52>>2]|0;if(b|0){f[a+56>>2]=b;NDb(b)}b=f[a+40>>2]|0;if(b|0){f[a+44>>2]=b;NDb(b)}b=a+36|0;c=f[b>>2]|0;if(!c){f[b>>2]=0;sua(a);return}e=c+8|0;d=f[e>>2]|0;f[e>>2]=d-1;if((d|0)!=1){f[b>>2]=0;sua(a);return}X4(c,1,1);f[b>>2]=0;sua(a);return}function _M(a){a=a|0;var b=0,c=0,d=0,e=0;f[a>>2]=95076;b=f[a+64>>2]|0;if(b|0){f[a+68>>2]=b;NDb(b)}b=f[a+52>>2]|0;if(b|0){f[a+56>>2]=b;NDb(b)}b=f[a+40>>2]|0;if(b|0){f[a+44>>2]=b;NDb(b)}b=a+36|0;c=f[b>>2]|0;if(!c){f[b>>2]=0;sua(a);NDb(a);return}e=c+8|0;d=f[e>>2]|0;f[e>>2]=d-1;if((d|0)!=1){f[b>>2]=0;sua(a);NDb(a);return}X4(c,1,1);f[b>>2]=0;sua(a);NDb(a);return}function $M(a){a=a|0;var b=0,c=0;a=LDb(76)|0;BCa(a);b=a+12|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[a+24>>2]=2;f[a+28>>2]=0;f[a>>2]=95076;b=a+32|0;c=b+44|0;do{f[b>>2]=0;b=b+4|0}while((b|0)<(c|0));return a|0}function aN(a,b){a=a|0;b=b|0;var c=0;c=LDb(76)|0;JN(c,a,b);return c|0}function bN(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,60800,0)|0)!=0;return b|0}function cN(a){a=a|0;return 241076}function dN(a){a=a|0;return 184014}function eN(a,b){a=a|0;b=b|0;Vk[f[(f[b>>2]|0)+8>>2]&1023](b,a);return}function fN(a,b){a=a|0;b=b|0;Vk[f[(f[b>>2]|0)+8>>2]&1023](b,a);return}function gN(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;h=u;u=u+64|0;g=h;f[g>>2]=a;n[g+4>>2]=3402823466385288598117041.0e14;n[g+8>>2]=3402823466385288598117041.0e14;n[g+12>>2]=3402823466385288598117041.0e14;n[g+16>>2]=-3402823466385288598117041.0e14;n[g+20>>2]=-3402823466385288598117041.0e14;n[g+24>>2]=-3402823466385288598117041.0e14;e=g+28|0;a=e;d=a+36|0;do{f[a>>2]=0;a=a+4|0}while((a|0)<(d|0));d=hN(g,b,c)|0;a=f[g+52>>2]|0;if(a|0){f[g+56>>2]=a;NDb(a)}a=f[g+40>>2]|0;if(a|0){f[g+44>>2]=a;NDb(a)}a=f[e>>2]|0;if(!a){u=h;return d|0}f[g+32>>2]=a;NDb(a);u=h;return d|0}function hN(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=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=u;u=u+80|0;k=r+72|0;n=r+40|0;o=r+16|0;q=r;d=f[c+232>>2]|0;if(!d){q=0;u=r;return q|0}d=bFb(d,58600,60816,0)|0;if(!d){q=0;u=r;return q|0}i=d+76|0;j=d+80|0;e=b+4|0;if((((f[j>>2]|0)-(f[i>>2]|0)|0)/12|0)>>>0<=(f[e>>2]|0)>>>0){q=0;u=r;return q|0}g=BE(c)|0;l=a+4|0;f[l>>2]=f[g>>2];f[l+4>>2]=f[g+4>>2];f[l+8>>2]=f[g+8>>2];f[l+12>>2]=f[g+12>>2];f[l+16>>2]=f[g+16>>2];f[l+20>>2]=f[g+20>>2];g=(f[a>>2]|0)+36|0;h=f[g>>2]|0;if(((h|0)!=(d|0)?(f[g>>2]=d,p=d+8|0,f[p>>2]=(f[p>>2]|0)+1,h|0):0)?(m=h+8|0,p=f[m>>2]|0,f[m>>2]=p-1,(p|0)==1):0)X4(h,1,1);iN((f[a>>2]|0)+64|0,(~~(+((((f[j>>2]|0)-(f[i>>2]|0)|0)/12|0)>>>0)*2.0/+((f[e>>2]|0)>>>0))>>>0)*5|0);jN(a,b);p=((f[j>>2]|0)-(f[i>>2]|0)|0)/12|0;f[b>>2]=p+(f[b>>2]|0);p=p<<1;m=a+40|0;kN(m,p);lN(a+52|0,p);f[k>>2]=95260;f[k+4>>2]=a;Vk[f[(f[c>>2]|0)+292>>2]&1023](c,k);kN(m,((f[j>>2]|0)-(f[i>>2]|0)|0)/12|0);p=a+44|0;k=(f[p>>2]|0)-(f[m>>2]|0)>>2;f[n+24>>2]=-1;f[n+28>>2]=k;f[n>>2]=f[l>>2];f[n+4>>2]=f[l+4>>2];f[n+8>>2]=f[l+8>>2];f[n+12>>2]=f[l+12>>2];f[n+16>>2]=f[l+16>>2];f[n+20>>2]=f[l+20>>2];k=f[a>>2]|0;d=k+64|0;e=k+68|0;g=f[e>>2]|0;h=g-(f[d>>2]|0)>>5;if((f[k+72>>2]|0)==(g|0))mN(d,n);else{k=g;f[k>>2]=f[n>>2];f[k+4>>2]=f[n+4>>2];f[k+8>>2]=f[n+8>>2];f[k+12>>2]=f[n+12>>2];f[k+16>>2]=f[n+16>>2];f[k+20>>2]=f[n+20>>2];f[k+24>>2]=f[n+24>>2];f[k+28>>2]=f[n+28>>2];f[e>>2]=(f[e>>2]|0)+32};f[o>>2]=f[l>>2];f[o+4>>2]=f[l+4>>2];f[o+8>>2]=f[l+8>>2];f[o+12>>2]=f[l+12>>2];f[o+16>>2]=f[l+16>>2];f[o+20>>2]=f[l+20>>2];nN(a,b,o,h,0)|0;i=f[a>>2]|0;j=i+40|0;f[q>>2]=0;k=q+4|0;f[k>>2]=0;c=q+8|0;f[c>>2]=0;kN(q,(f[p>>2]|0)-(f[m>>2]|0)>>2);e=f[m>>2]|0;d=f[p>>2]|0;if((e|0)!=(d|0))do{g=(f[j>>2]|0)+(f[e>>2]<<2)|0;h=f[k>>2]|0;if((h|0)==(f[c>>2]|0)){JD(q,g);d=f[p>>2]|0}else{f[h>>2]=f[g>>2];f[k>>2]=h+4}e=e+4|0}while((e|0)!=(d|0));e=f[j>>2]|0;f[j>>2]=f[q>>2];f[q>>2]=e;d=i+44|0;q=f[d>>2]|0;f[d>>2]=f[k>>2];f[k>>2]=q;q=i+48|0;d=f[q>>2]|0;f[q>>2]=f[c>>2];f[c>>2]=d;d=f[a>>2]|0;d=(f[d+64>>2]|0)!=(f[d+68>>2]|0);if(e|0){f[k>>2]=e;NDb(e)}q=d;u=r;return q|0}function iN(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;e=a+8|0;g=f[a>>2]|0;if((f[e>>2]|0)-g>>5>>>0>=b>>>0)return;h=a+4|0;if(b>>>0>134217727){h=mb(8)|0;RDb(h,238482);f[h>>2]=144484;qb(h|0,84192,1464)}c=(f[h>>2]|0)-g|0;d=LDb(b<<5)|0;if((c|0)>0)gGb(d|0,g|0,c|0)|0;f[a>>2]=d;f[h>>2]=d+(c>>5<<5);f[e>>2]=d+(b<<5);if(!g)return;NDb(g);return}function jN(a,b){a=a|0;b=b|0;var c=0,d=0.0,e=0.0,g=0.0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0;q=u;u=u+16|0;l=q+4|0;p=q;e=+n[a+16>>2]-+n[a+4>>2];g=+n[a+20>>2]-+n[a+8>>2];d=+n[a+24>>2]-+n[a+12>>2];n[l>>2]=e;k=l+4|0;n[k>>2]=g;m=l+8|0;n[m>>2]=d;o=a+28|0;i=b+8|0;kN(o,f[i>>2]|0);if(!(f[i>>2]|0)){u=q;return}j=a+32|0;h=a+36|0;b=0;while(1){a=!(e>=g)?(!(g>=d)?2:1):!(e>=d)?2:0;f[p>>2]=a;c=f[j>>2]|0;if(c>>>0<(f[h>>2]|0)>>>0){f[c>>2]=a;f[j>>2]=c+4}else FN(o,p);c=l+(a<<2)|0;n[c>>2]=+n[c>>2]*.5;b=b+1|0;if(b>>>0>=(f[i>>2]|0)>>>0)break;g=+n[k>>2];e=+n[l>>2];d=+n[m>>2]}u=q;return}function kN(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;e=a+8|0;g=f[a>>2]|0;if((f[e>>2]|0)-g>>2>>>0>=b>>>0)return;h=a+4|0;if(b>>>0>1073741823){h=mb(8)|0;RDb(h,238482);f[h>>2]=144484;qb(h|0,84192,1464)}c=(f[h>>2]|0)-g|0;d=LDb(b<<2)|0;if((c|0)>0)gGb(d|0,g|0,c|0)|0;f[a>>2]=d;f[h>>2]=d+(c>>2<<2);f[e>>2]=d+(b<<2);if(!g)return;NDb(g);return}function lN(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0;g=a+8|0;i=f[a>>2]|0;if((((f[g>>2]|0)-i|0)/12|0)>>>0>=b>>>0)return;j=a+4|0;if(b>>>0>357913941){j=mb(8)|0;RDb(j,238482);f[j>>2]=144484;qb(j|0,84192,1464)}c=(f[j>>2]|0)-i|0;d=LDb(b*12|0)|0;e=d+(((c|0)/12|0)*12|0)|0;h=e+(((c|0)/-12|0)*12|0)|0;if((c|0)>0)gGb(h|0,i|0,c|0)|0;f[a>>2]=h;f[j>>2]=e;f[g>>2]=d+(b*12|0);if(!i)return;NDb(i);return}function mN(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;i=a+4|0;j=f[a>>2]|0;k=(f[i>>2]|0)-j|0;g=k>>5;c=g+1|0;if(c>>>0>134217727)KEb(a);l=a+8|0;e=(f[l>>2]|0)-j|0;h=e>>4;h=e>>5>>>0<67108863?(h>>>0<c>>>0?c:h):134217727;do if(h)if(h>>>0>134217727){l=mb(8)|0;RDb(l,238482);f[l>>2]=144484;qb(l|0,84192,1464)}else{e=LDb(h<<5)|0;d=e;break}else{d=0;e=0}while(0);c=d+(g<<5)|0;f[c>>2]=f[b>>2];f[c+4>>2]=f[b+4>>2];f[c+8>>2]=f[b+8>>2];f[c+12>>2]=f[b+12>>2];f[c+16>>2]=f[b+16>>2];f[c+20>>2]=f[b+20>>2];f[c+24>>2]=f[b+24>>2];f[c+28>>2]=f[b+28>>2];if((k|0)>0)gGb(e|0,j|0,k|0)|0;f[a>>2]=d;f[i>>2]=c+32;f[l>>2]=d+(h<<5);if(!j)return;NDb(j);return}function nN(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0.0,j=0.0,k=0,l=0.0,m=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0,t=0,v=0.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.0,I=0,J=0.0,K=0.0,L=0.0,M=0.0,N=0,O=0;O=u;u=u+64|0;N=O+32|0;E=O;I=f[a>>2]|0;m=f[I+64>>2]|0;G=f[a+28>>2]|0;k=G;D=m;C=f[m+(e<<5)+24>>2]|0;h=(C|0)<0;if((f[a+32>>2]|0)-G>>2>>>0>g>>>0){if(!h){u=O;return e|0}h=f[m+(e<<5)+28>>2]|0;if(h>>>0>(f[c+4>>2]|0)>>>0){z=f[k+(g<<2)>>2]|0;B=~C;A=-2-C+h|0;G=d+(z<<2)|0;F=d+12+(z<<2)|0;H=(+n[G>>2]+ +n[F>>2])*.5;if((A|0)>(B|0)){x=a+40|0;y=a+52|0;h=A;k=B;do{a:do if((k|0)<(h|0)){m=f[x>>2]|0;s=f[y>>2]|0;do{if(!(+n[s+((f[m+(k<<2)>>2]|0)*12|0)+(z<<2)>>2]<=H))break a;k=k+1|0}while((k|0)<(h|0))}while(0);b:do if((k|0)<(h|0)){t=f[x>>2]|0;w=f[y>>2]|0;while(1){m=t+(h<<2)|0;s=f[m>>2]|0;if(!(+n[w+(s*12|0)+(z<<2)>>2]>H))break;h=h+-1|0;if((k|0)>=(h|0))break b}t=t+(k<<2)|0;w=f[t>>2]|0;f[t>>2]=s;f[m>>2]=w;h=h+-1|0;k=k+1|0}while(0)}while((k|0)<(h|0))}else{h=A;k=B}do if((k|0)==(h|0))if(!(+n[(f[a+52>>2]|0)+((f[(f[a+40>>2]|0)+(k<<2)>>2]|0)*12|0)+(z<<2)>>2]<=H)){h=k+-1|0;break}else{h=k;k=k+1|0;break}while(0);B=h-B|0;n[N>>2]=3402823466385288598117041.0e14;n[N+4>>2]=3402823466385288598117041.0e14;n[N+8>>2]=3402823466385288598117041.0e14;n[N+12>>2]=-3402823466385288598117041.0e14;n[N+16>>2]=-3402823466385288598117041.0e14;n[N+20>>2]=-3402823466385288598117041.0e14;f[N+24>>2]=C;f[N+28>>2]=B+1;h=A-k|0;n[E>>2]=3402823466385288598117041.0e14;n[E+4>>2]=3402823466385288598117041.0e14;n[E+8>>2]=3402823466385288598117041.0e14;n[E+12>>2]=-3402823466385288598117041.0e14;n[E+16>>2]=-3402823466385288598117041.0e14;n[E+20>>2]=-3402823466385288598117041.0e14;f[E+24>>2]=~k;f[E+28>>2]=h+1;do if((B|0)>=0)if((h|0)>=0){h=I+68|0;k=f[h>>2]|0;t=k-D>>5;if((f[I+72>>2]|0)==(k|0))mN(I+64|0,N);else{I=k;f[I>>2]=f[N>>2];f[I+4>>2]=f[N+4>>2];f[I+8>>2]=f[N+8>>2];f[I+12>>2]=f[N+12>>2];f[I+16>>2]=f[N+16>>2];f[I+20>>2]=f[N+20>>2];f[I+24>>2]=f[N+24>>2];f[I+28>>2]=f[N+28>>2];f[h>>2]=(f[h>>2]|0)+32}I=f[a>>2]|0;h=I+64|0;k=I+68|0;m=f[k>>2]|0;s=m-(f[h>>2]|0)>>5;if((f[I+72>>2]|0)==(m|0)){mN(h,E);k=0;break}else{I=m;f[I>>2]=f[E>>2];f[I+4>>2]=f[E+4>>2];f[I+8>>2]=f[E+8>>2];f[I+12>>2]=f[E+12>>2];f[I+16>>2]=f[E+16>>2];f[I+20>>2]=f[E+20>>2];f[I+24>>2]=f[E+24>>2];f[I+28>>2]=f[E+28>>2];f[k>>2]=(f[k>>2]|0)+32;k=0;break}}else{k=1;s=0;t=e}else{k=1;s=e;t=0}while(0);h=f[F>>2]|0;n[F>>2]=H;if(!t)D=0;else D=nN(a,c,d,t,g+1|0)|0;f[F>>2]=h;h=f[G>>2]|0;n[G>>2]=H;if(!s)C=0;else C=nN(a,c,d,s,g+1|0)|0;f[G>>2]=h;if(k){u=O;return e|0}h=f[(f[a>>2]|0)+64>>2]|0;f[h+(e<<5)+24>>2]=D;f[h+(e<<5)+28>>2]=C;m=h+(e<<5)|0;n[m>>2]=3402823466385288598117041.0e14;w=h+(e<<5)+4|0;n[w>>2]=3402823466385288598117041.0e14;x=h+(e<<5)+8|0;n[x>>2]=3402823466385288598117041.0e14;y=h+(e<<5)+12|0;n[y>>2]=-3402823466385288598117041.0e14;z=h+(e<<5)+16|0;n[z>>2]=-3402823466385288598117041.0e14;A=h+(e<<5)+20|0;n[A>>2]=-3402823466385288598117041.0e14;B=(D|0)!=0;do if(((B?(p=+n[h+(D<<5)+12>>2],r=+n[h+(D<<5)>>2],p>=r):0)?(l=+n[h+(D<<5)+16>>2],o=+n[h+(D<<5)+4>>2],l>=o):0)?(v=+n[h+(D<<5)+20>>2],j=+n[h+(D<<5)+8>>2],v>=j):0){if(r<3402823466385288598117041.0e14)n[m>>2]=r;else r=3402823466385288598117041.0e14;if(p>-3402823466385288598117041.0e14)n[y>>2]=p;else p=-3402823466385288598117041.0e14;if(o<3402823466385288598117041.0e14)n[w>>2]=o;else o=3402823466385288598117041.0e14;if(l>-3402823466385288598117041.0e14)n[z>>2]=l;else l=-3402823466385288598117041.0e14;if(j<3402823466385288598117041.0e14)n[x>>2]=j;else j=3402823466385288598117041.0e14;if(!(v>-3402823466385288598117041.0e14)){v=-3402823466385288598117041.0e14;break}n[A>>2]=v}else{r=3402823466385288598117041.0e14;p=-3402823466385288598117041.0e14;o=3402823466385288598117041.0e14;l=-3402823466385288598117041.0e14;j=3402823466385288598117041.0e14;v=-3402823466385288598117041.0e14}while(0);k=(C|0)!=0;do if(((k?(J=+n[h+(C<<5)+12>>2],q=+n[h+(C<<5)>>2],J>=q):0)?(L=+n[h+(C<<5)+16>>2],K=+n[h+(C<<5)+4>>2],L>=K):0)?(i=+n[h+(C<<5)+20>>2],M=+n[h+(C<<5)+8>>2],i>=M):0){if(q<r)n[m>>2]=q;else q=r;if(J>p){n[y>>2]=J;p=J}if(K<o){n[w>>2]=K;o=K}if(L>l){n[z>>2]=L;l=L}if(M<j){n[x>>2]=M;j=M}if(!(i>v)){i=v;break}n[A>>2]=i}else{q=r;i=v}while(0);if(!(!(p>=q)|!(l>=o)|!(i>=j))){u=O;return e|0}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>2){I=iub(Nv(iub(Nv(Mv(3)|0,183502,15)|0,D)|0,183518,27)|0,t)|0;Ktb(N,I+(f[(f[I>>2]|0)+-12>>2]|0)|0);g=Bvb(N,295164)|0;g=wk[f[(f[g>>2]|0)+28>>2]&1023](g,10)|0;Cvb(N);rub(I,g)|0;Rtb(I)|0}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>2){I=iub(Nv(iub(Nv(Mv(3)|0,183546,16)|0,C)|0,183563,28)|0,s)|0;Ktb(N,I+(f[(f[I>>2]|0)+-12>>2]|0)|0);g=Bvb(N,295164)|0;g=wk[f[(f[g>>2]|0)+28>>2]&1023](g,10)|0;Cvb(N);rub(I,g)|0;Rtb(I)|0}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>2){I=iub(Nv(iub(Nv(Mv(3)|0,183592,26)|0,D)|0,239432,2)|0,C)|0;Ktb(N,I+(f[(f[I>>2]|0)+-12>>2]|0)|0);g=Bvb(N,295164)|0;g=wk[f[(f[g>>2]|0)+28>>2]&1023](g,10)|0;Cvb(N);rub(I,g)|0;Rtb(I)|0}do if(!(b[287952]|0)){if(!(PFb(287952)|0))break;Lv(289680)}while(0);if((f[72420]|0)>2){I=Nv(Mv(3)|0,183619,11)|0;g=Nv(oub(I,+n[m>>2])|0,239529,1)|0;g=Nv(oub(g,+n[w>>2])|0,239529,1)|0;oub(g,+n[x>>2])|0;I=Nv(I,239531,1)|0;Ktb(N,I+(f[(f[I>>2]|0)+-12>>2]|0)|0);g=Bvb(N,295164)|0;g=wk[f[(f[g>>2]|0)+28>>2]&1023](g,10)|0;Cvb(N);rub(I,g)|0;Rtb(I)|0}do if(!(b[287952]|0)){if(!(PFb(287952)|0))break;Lv(289680)}while(0);if((f[72420]|0)>2){I=Nv(Mv(3)|0,183631,11)|0;g=Nv(oub(I,+n[y>>2])|0,239529,1)|0;g=Nv(oub(g,+n[z>>2])|0,239529,1)|0;oub(g,+n[A>>2])|0;I=Nv(I,239531,1)|0;Ktb(N,I+(f[(f[I>>2]|0)+-12>>2]|0)|0);g=Bvb(N,295164)|0;g=wk[f[(f[g>>2]|0)+28>>2]&1023](g,10)|0;Cvb(N);rub(I,g)|0;Rtb(I)|0}do if(B){do if(!(b[287952]|0)){if(!(PFb(287952)|0))break;Lv(289680)}while(0);if((f[72420]|0)>2){I=Nv(Mv(3)|0,183643,35)|0;g=f[(f[a>>2]|0)+64>>2]|0;d=Nv(oub(I,+n[g+(D<<5)>>2])|0,239529,1)|0;d=Nv(oub(d,+n[g+(D<<5)+4>>2])|0,239529,1)|0;oub(d,+n[g+(D<<5)+8>>2])|0;Ktb(N,I+(f[(f[I>>2]|0)+-12>>2]|0)|0);g=Bvb(N,295164)|0;g=wk[f[(f[g>>2]|0)+28>>2]&1023](g,10)|0;Cvb(N);rub(I,g)|0;Rtb(I)|0}do if(!(b[287952]|0)){if(!(PFb(287952)|0))break;Lv(289680)}while(0);if((f[72420]|0)<=2)break;I=Nv(Mv(3)|0,183679,39)|0;g=f[(f[a>>2]|0)+64>>2]|0;d=Nv(oub(I,+n[g+(D<<5)+12>>2])|0,239529,1)|0;d=Nv(oub(d,+n[g+(D<<5)+16>>2])|0,239529,1)|0;oub(d,+n[g+(D<<5)+20>>2])|0;Ktb(N,I+(f[(f[I>>2]|0)+-12>>2]|0)|0);g=Bvb(N,295164)|0;g=wk[f[(f[g>>2]|0)+28>>2]&1023](g,10)|0;Cvb(N);rub(I,g)|0;Rtb(I)|0}while(0);if(!k){u=O;return e|0}do if(!(b[287952]|0)){if(!(PFb(287952)|0))break;Lv(289680)}while(0);if((f[72420]|0)>2){I=Nv(Mv(3)|0,183719,36)|0;g=f[(f[a>>2]|0)+64>>2]|0;d=Nv(oub(I,+n[g+(C<<5)>>2])|0,239529,1)|0;d=Nv(oub(d,+n[g+(C<<5)+4>>2])|0,239529,1)|0;oub(d,+n[g+(C<<5)+8>>2])|0;Ktb(N,I+(f[(f[I>>2]|0)+-12>>2]|0)|0);g=Bvb(N,295164)|0;g=wk[f[(f[g>>2]|0)+28>>2]&1023](g,10)|0;Cvb(N);rub(I,g)|0;Rtb(I)|0}do if(!(b[287952]|0)){if(!(PFb(287952)|0))break;Lv(289680)}while(0);if((f[72420]|0)<=2){u=O;return e|0}I=Nv(Mv(3)|0,183756,36)|0;a=f[(f[a>>2]|0)+64>>2]|0;g=Nv(oub(I,+n[a+(C<<5)+12>>2])|0,239529,1)|0;g=Nv(oub(g,+n[a+(C<<5)+16>>2])|0,239529,1)|0;oub(g,+n[a+(C<<5)+20>>2])|0;Ktb(N,I+(f[(f[I>>2]|0)+-12>>2]|0)|0);a=Bvb(N,295164)|0;a=wk[f[(f[a>>2]|0)+28>>2]&1023](a,10)|0;Cvb(N);rub(I,a)|0;Rtb(I)|0;u=O;return e|0}}else if(!h){u=O;return e|0}h=~C;N=f[m+(e<<5)+28>>2]|0;C=N+h|0;D=m+(e<<5)|0;n[D>>2]=3402823466385288598117041.0e14;E=m+(e<<5)+4|0;n[E>>2]=3402823466385288598117041.0e14;F=m+(e<<5)+8|0;n[F>>2]=3402823466385288598117041.0e14;G=m+(e<<5)+12|0;n[G>>2]=-3402823466385288598117041.0e14;c=m+(e<<5)+16|0;n[c>>2]=-3402823466385288598117041.0e14;B=m+(e<<5)+20|0;n[B>>2]=-3402823466385288598117041.0e14;if((N|0)<=0){u=O;return e|0}y=f[a+40>>2]|0;z=f[I+40>>2]|0;A=f[I+52>>2]|0;x=I+36|0;i=-3402823466385288598117041.0e14;j=3402823466385288598117041.0e14;l=-3402823466385288598117041.0e14;p=3402823466385288598117041.0e14;q=-3402823466385288598117041.0e14;o=3402823466385288598117041.0e14;do{k=f[z+(f[y+(h<<2)>>2]<<2)>>2]|0;m=f[A+(k+1<<2)>>2]|0;if(m){w=f[(f[x>>2]|0)+76>>2]|0;t=k+2|0;while(1){s=f[A+(t<<2)>>2]|0;k=w+(s*12|0)|0;r=+n[k>>2];if(r<o){n[D>>2]=r;v=r;o=+n[k>>2]}else{v=o;o=r}if(o>q){n[G>>2]=o;q=o}k=w+(s*12|0)+4|0;o=+n[k>>2];if(o<p){n[E>>2]=o;p=o;o=+n[k>>2]}if(o>l){n[c>>2]=o;l=o}k=w+(s*12|0)+8|0;o=+n[k>>2];if(o<j){n[F>>2]=o;j=o;o=+n[k>>2]}if(o>i){n[B>>2]=o;i=o}m=m+-1|0;if(!m){o=v;break}else{t=t+1|0;o=v}}}h=h+1|0}while((h|0)<(C|0));if(!(q>=o)|!(l>=p)|!(i>=j)){u=O;return e|0}n[D>>2]=o+-9.999999974752427e-07;n[E>>2]=p+-9.999999974752427e-07;n[F>>2]=j+-9.999999974752427e-07;n[G>>2]=q+9.999999974752427e-07;n[c>>2]=l+9.999999974752427e-07;n[B>>2]=i+9.999999974752427e-07;u=O;return e|0}function oN(a){a=a|0;return}function pN(a){a=a|0;NDb(a);return}function qN(a,b,c){a=a|0;b=b|0;c=c|0;return}function rN(a,b,c){a=a|0;b=b|0;c=c|0;return}function sN(a,b,c){a=a|0;b=b|0;c=c|0;return}function tN(a,b,c){a=a|0;b=b|0;c=c|0;return}function uN(a,b,c){a=a|0;b=b|0;c=c|0;return}function vN(a,b,c){a=a|0;b=b|0;c=c|0;return}function wN(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;do switch(b|0){case 4:{if((d|0)<=2)return;b=a+4|0;a=2;while(1){AN(b,c,c+1|0,c+2|0);a=a+3|0;if((a|0)>=(d|0))break;else c=c+3|0}return}case 5:{if((d|0)<=2)return;b=a+4|0;a=2;do{if(!(a&1)){e=c+1|0;AN(b,c,e,c+2|0);c=e}else{e=c+1|0;AN(b,c,c+2|0,e);c=e}a=a+1|0}while((a|0)!=(d|0));return}case 7:{if((d|0)<=3)return;b=a+4|0;a=3;while(1){BN(b,c,c+1|0,c+2|0,c+3|0);a=a+4|0;if((a|0)>=(d|0))break;else c=c+4|0}return}case 8:{if((d|0)<=3)return;b=a+4|0;a=3;do{e=c;c=c+2|0;BN(b,e,e+1|0,c,e+3|0);a=a+2|0}while((a|0)<(d|0));return}case 6:case 9:{if((d|0)<=2)return;e=a+4|0;a=2;b=c+1|0;do{f=b;b=b+1|0;AN(e,c,f,b);a=a+1|0}while((a|0)!=(d|0));return}case 0:{if((d|0)<=0)return;b=a+4|0;a=0;while(1){CN(b,c);a=a+1|0;if((a|0)==(d|0))break;else c=c+1|0}return}case 1:{if((d|0)<=1)return;b=a+4|0;a=1;while(1){DN(b,c,c+1|0);a=a+2|0;if((a|0)>=(d|0))break;else c=c+2|0}return}case 3:{if((d|0)<=1)return;b=a+4|0;a=1;do{f=c;c=c+1|0;DN(b,f,c);a=a+1|0}while((a|0)!=(d|0));return}case 2:{e=a+4|0;if((d|0)>1){a=c;b=1;do{f=a;a=a+1|0;DN(e,f,a);b=b+1|0}while((b|0)!=(d|0))}DN(e,c+-1+d|0,c);return}default:return}while(0)}function xN(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,i=0;if((d|0)==0|(e|0)==0)return;do switch(c|0){case 4:{f=e+d|0;if((d|0)<=0)return;c=a+4|0;do{AN(c,h[e>>0]|0,h[e+1>>0]|0,h[e+2>>0]|0);e=e+3|0}while(e>>>0<f>>>0);return}case 5:{if((d|0)<=2)return;a=a+4|0;f=2;do{c=h[e>>0]|0;if(!(f&1)){i=e+1|0;AN(a,c,h[i>>0]|0,h[e+2>>0]|0);e=i}else{i=e+1|0;AN(a,c,h[e+2>>0]|0,h[i>>0]|0);e=i}f=f+1|0}while((f|0)!=(d|0));return}case 7:{if((d|0)<=3)return;f=a+4|0;c=3;while(1){BN(f,h[e>>0]|0,h[e+1>>0]|0,h[e+2>>0]|0,h[e+3>>0]|0);c=c+4|0;if((c|0)>=(d|0))break;else e=e+4|0}return}case 8:{if((d|0)<=3)return;f=a+4|0;c=3;do{i=e;e=e+2|0;BN(f,h[i>>0]|0,h[i+1>>0]|0,h[e>>0]|0,h[i+3>>0]|0);c=c+2|0}while((c|0)<(d|0));return}case 6:case 9:{if((d|0)<=2)return;f=a+4|0;a=h[e>>0]|0;c=2;e=e+1|0;do{i=e;e=e+1|0;AN(f,a,h[i>>0]|0,h[e>>0]|0);c=c+1|0}while((c|0)!=(d|0));return}case 0:{f=e+d|0;if((d|0)<=0)return;c=a+4|0;do{CN(c,h[e>>0]|0);e=e+1|0}while(e>>>0<f>>>0);return}case 1:{f=e+d|0;if((d|0)<=0)return;c=a+4|0;do{DN(c,h[e>>0]|0,h[e+1>>0]|0);e=e+2|0}while(e>>>0<f>>>0);return}case 3:{if((d|0)<=1)return;f=a+4|0;c=1;do{i=e;e=e+1|0;DN(f,h[i>>0]|0,h[e>>0]|0);c=c+1|0}while((c|0)!=(d|0));return}case 2:{i=a+4|0;f=h[e>>0]|0;if((d|0)>1){a=e;g=1;c=f;while(1){a=a+1|0;DN(i,c,h[a>>0]|0);g=g+1|0;c=b[a>>0]|0;if((g|0)==(d|0))break;else c=c&255}c=c&255;e=h[e>>0]|0}else{c=f;e=f}DN(i,c,e);return}default:return}while(0)}function yN(a,b,c,e){a=a|0;b=b|0;c=c|0;e=e|0;var f=0,g=0,h=0;if((c|0)==0|(e|0)==0)return;do switch(b|0){case 4:{f=e+(c<<1)|0;if((c|0)<=0)return;b=a+4|0;do{AN(b,j[e>>1]|0,j[e+2>>1]|0,j[e+4>>1]|0);e=e+6|0}while(e>>>0<f>>>0);return}case 5:{if((c|0)<=2)return;a=a+4|0;f=2;do{b=j[e>>1]|0;if(!(f&1)){h=e+2|0;AN(a,b,j[h>>1]|0,j[e+4>>1]|0);e=h}else{h=e+2|0;AN(a,b,j[e+4>>1]|0,j[h>>1]|0);e=h}f=f+1|0}while((f|0)!=(c|0));return}case 7:{if((c|0)<=3)return;f=a+4|0;b=3;while(1){BN(f,j[e>>1]|0,j[e+2>>1]|0,j[e+4>>1]|0,j[e+6>>1]|0);b=b+4|0;if((b|0)>=(c|0))break;else e=e+8|0}return}case 8:{if((c|0)<=3)return;f=a+4|0;b=3;do{h=e;e=e+4|0;BN(f,j[h>>1]|0,j[h+2>>1]|0,j[e>>1]|0,j[h+6>>1]|0);b=b+2|0}while((b|0)<(c|0));return}case 6:case 9:{if((c|0)<=2)return;f=a+4|0;a=j[e>>1]|0;b=2;e=e+2|0;do{h=e;e=e+2|0;AN(f,a,j[h>>1]|0,j[e>>1]|0);b=b+1|0}while((b|0)!=(c|0));return}case 0:{f=e+(c<<1)|0;if((c|0)<=0)return;b=a+4|0;do{CN(b,j[e>>1]|0);e=e+2|0}while(e>>>0<f>>>0);return}case 1:{f=e+(c<<1)|0;if((c|0)<=0)return;b=a+4|0;do{DN(b,j[e>>1]|0,j[e+2>>1]|0);e=e+4|0}while(e>>>0<f>>>0);return}case 3:{if((c|0)<=1)return;f=a+4|0;b=1;do{h=e;e=e+2|0;DN(f,j[h>>1]|0,j[e>>1]|0);b=b+1|0}while((b|0)!=(c|0));return}case 2:{h=a+4|0;f=j[e>>1]|0;if((c|0)>1){a=e;g=1;b=f;while(1){a=a+2|0;DN(h,b,j[a>>1]|0);g=g+1|0;b=d[a>>1]|0;if((g|0)==(c|0))break;else b=b&65535}b=b&65535;e=j[e>>1]|0}else{b=f;e=f}DN(h,b,e);return}default:return}while(0)}function zN(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0;if((c|0)==0|(d|0)==0)return;do switch(b|0){case 4:{e=d+(c<<2)|0;if((c|0)<=0)return;b=a+4|0;do{AN(b,f[d>>2]|0,f[d+4>>2]|0,f[d+8>>2]|0);d=d+12|0}while(d>>>0<e>>>0);return}case 5:{if((c|0)<=2)return;g=a+4|0;e=2;do{b=f[d>>2]|0;if(!(e&1)){h=d+4|0;AN(g,b,f[h>>2]|0,f[d+8>>2]|0);d=h}else{h=d+4|0;AN(g,b,f[d+8>>2]|0,f[h>>2]|0);d=h}e=e+1|0}while((e|0)!=(c|0));return}case 7:{if((c|0)<=3)return;e=a+4|0;b=3;while(1){BN(e,f[d>>2]|0,f[d+4>>2]|0,f[d+8>>2]|0,f[d+12>>2]|0);b=b+4|0;if((b|0)>=(c|0))break;else d=d+16|0}return}case 8:{if((c|0)<=3)return;e=a+4|0;b=3;do{h=d;d=d+8|0;BN(e,f[h>>2]|0,f[h+4>>2]|0,f[d>>2]|0,f[h+12>>2]|0);b=b+2|0}while((b|0)<(c|0));return}case 6:case 9:{g=f[d>>2]|0;if((c|0)<=2)return;e=a+4|0;b=2;d=d+4|0;do{h=d;d=d+4|0;AN(e,g,f[h>>2]|0,f[d>>2]|0);b=b+1|0}while((b|0)!=(c|0));return}case 0:{e=d+(c<<2)|0;if((c|0)<=0)return;b=a+4|0;do{CN(b,f[d>>2]|0);d=d+4|0}while(d>>>0<e>>>0);return}case 1:{e=d+(c<<2)|0;if((c|0)<=0)return;b=a+4|0;do{DN(b,f[d>>2]|0,f[d+4>>2]|0);d=d+8|0}while(d>>>0<e>>>0);return}case 3:{if((c|0)<=1)return;e=a+4|0;b=1;do{h=d;d=d+4|0;DN(e,f[h>>2]|0,f[d>>2]|0);b=b+1|0}while((b|0)!=(c|0));return}case 2:{h=a+4|0;a=f[d>>2]|0;if((c|0)>1){e=d;g=1;b=a;do{e=e+4|0;DN(h,b,f[e>>2]|0);g=g+1|0;b=f[e>>2]|0}while((g|0)!=(c|0));d=f[d>>2]|0}else{b=a;d=a}DN(h,b,d);return}default:return}while(0)}function AN(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0.0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,v=0.0,w=0,x=0,y=0;y=u;u=u+16|0;x=y;m=f[f[a>>2]>>2]|0;w=f[(f[m+36>>2]|0)+76>>2]|0;k=w+(b*12|0)|0;i=+n[k>>2];l=w+(c*12|0)|0;j=+n[l>>2];if(!((i==j?+n[w+(b*12|0)+4>>2]==+n[w+(c*12|0)+4>>2]:0)?+n[w+(b*12|0)+8>>2]==+n[w+(c*12|0)+8>>2]:0))e=4;do if((e|0)==4){o=w+(d*12|0)|0;g=+n[o>>2];if((j==g?+n[w+(c*12|0)+4>>2]==+n[w+(d*12|0)+4>>2]:0)?+n[w+(c*12|0)+8>>2]==+n[w+(d*12|0)+8>>2]:0)break;if(g==i){h=w+(d*12|0)+4|0;e=w+(b*12|0)+4|0;if(+n[h>>2]==+n[e>>2]?+n[w+(d*12|0)+8>>2]==+n[w+(b*12|0)+8>>2]:0)break}else{e=w+(b*12|0)+4|0;h=w+(d*12|0)+4|0}IN(m,b,c,d)|0;t=+n[k>>2];r=t<3402823466385288598117041.0e14?t:3402823466385288598117041.0e14;t=t>-3402823466385288598117041.0e14?t:-3402823466385288598117041.0e14;v=+n[e>>2];s=v<3402823466385288598117041.0e14?v:3402823466385288598117041.0e14;v=v>-3402823466385288598117041.0e14?v:-3402823466385288598117041.0e14;q=+n[w+(b*12|0)+8>>2];p=q<3402823466385288598117041.0e14?q:3402823466385288598117041.0e14;q=q>-3402823466385288598117041.0e14?q:-3402823466385288598117041.0e14;j=+n[l>>2];r=j<r?j:r;t=j>t?j:t;j=+n[w+(c*12|0)+4>>2];s=j<s?j:s;v=j>v?j:v;j=+n[w+(c*12|0)+8>>2];p=j<p?j:p;q=j>q?j:q;j=+n[o>>2];i=+n[h>>2];g=+n[w+(d*12|0)+8>>2];h=f[a>>2]|0;b=h+56|0;e=f[b>>2]|0;k=(e-(f[h+52>>2]|0)|0)/12|0;f[x>>2]=k;l=h+44|0;m=f[l>>2]|0;if(m>>>0<(f[h+48>>2]|0)>>>0){f[m>>2]=k;f[l>>2]=m+4}else{FN(h+40|0,x);h=f[a>>2]|0;e=h+56|0;b=e;e=f[e>>2]|0}n[x>>2]=((j<r?j:r)+(j>t?j:t))*.5;n[x+4>>2]=((i<s?i:s)+(i>v?i:v))*.5;n[x+8>>2]=((g<p?g:p)+(g>q?g:q))*.5;if((e|0)==(f[h+60>>2]|0))rC(h+52|0,x);else{f[e>>2]=f[x>>2];f[e+4>>2]=f[x+4>>2];f[e+8>>2]=f[x+8>>2];f[b>>2]=(f[b>>2]|0)+12}u=y;return}while(0);x=m+32|0;f[x>>2]=(f[x>>2]|0)+1;u=y;return}function BN(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0.0,k=0.0,l=0.0,m=0,o=0,p=0.0,q=0,r=0.0,s=0.0,t=0.0,v=0.0,w=0.0,x=0,y=0,z=0,A=0;A=u;u=u+16|0;z=A;q=f[f[a>>2]>>2]|0;y=f[(f[q+36>>2]|0)+76>>2]|0;m=y+(b*12|0)|0;l=+n[m>>2];o=y+(c*12|0)|0;p=+n[o>>2];if(!((l==p?+n[y+(b*12|0)+4>>2]==+n[y+(c*12|0)+4>>2]:0)?+n[y+(b*12|0)+8>>2]==+n[y+(c*12|0)+8>>2]:0))g=4;do if((g|0)==4){i=y+(d*12|0)|0;j=+n[i>>2];if((p==j?+n[y+(c*12|0)+4>>2]==+n[y+(d*12|0)+4>>2]:0)?+n[y+(c*12|0)+8>>2]==+n[y+(d*12|0)+8>>2]:0)break;if((j==l?+n[y+(d*12|0)+4>>2]==+n[y+(b*12|0)+4>>2]:0)?+n[y+(d*12|0)+8>>2]==+n[y+(b*12|0)+8>>2]:0)break;x=y+(e*12|0)|0;k=+n[x>>2];if((k==l?+n[y+(e*12|0)+4>>2]==+n[y+(b*12|0)+4>>2]:0)?+n[y+(e*12|0)+8>>2]==+n[y+(b*12|0)+8>>2]:0)break;if((k==p?+n[y+(e*12|0)+4>>2]==+n[y+(c*12|0)+4>>2]:0)?+n[y+(e*12|0)+8>>2]==+n[y+(c*12|0)+8>>2]:0)break;if(k==j){h=y+(e*12|0)+4|0;g=y+(d*12|0)+4|0;if(+n[h>>2]==+n[g>>2]?+n[y+(e*12|0)+8>>2]==+n[y+(d*12|0)+8>>2]:0)break}else{g=y+(d*12|0)+4|0;h=y+(e*12|0)+4|0}HN(q,b,c,d,e)|0;w=+n[m>>2];v=w<3402823466385288598117041.0e14?w:3402823466385288598117041.0e14;w=w>-3402823466385288598117041.0e14?w:-3402823466385288598117041.0e14;t=+n[y+(b*12|0)+4>>2];s=t<3402823466385288598117041.0e14?t:3402823466385288598117041.0e14;t=t>-3402823466385288598117041.0e14?t:-3402823466385288598117041.0e14;r=+n[y+(b*12|0)+8>>2];p=r<3402823466385288598117041.0e14?r:3402823466385288598117041.0e14;r=r>-3402823466385288598117041.0e14?r:-3402823466385288598117041.0e14;l=+n[o>>2];v=l<v?l:v;w=l>w?l:w;l=+n[y+(c*12|0)+4>>2];s=l<s?l:s;t=l>t?l:t;l=+n[y+(c*12|0)+8>>2];p=l<p?l:p;r=l>r?l:r;l=+n[i>>2];v=l<v?l:v;w=l>w?l:w;l=+n[g>>2];s=l<s?l:s;t=l>t?l:t;l=+n[y+(d*12|0)+8>>2];p=l<p?l:p;r=l>r?l:r;l=+n[x>>2];k=+n[h>>2];j=+n[y+(e*12|0)+8>>2];h=f[a>>2]|0;i=h+56|0;g=f[i>>2]|0;b=(g-(f[h+52>>2]|0)|0)/12|0;f[z>>2]=b;m=h+44|0;o=f[m>>2]|0;if(o>>>0<(f[h+48>>2]|0)>>>0){f[o>>2]=b;f[m>>2]=o+4}else{FN(h+40|0,z);h=f[a>>2]|0;g=h+56|0;i=g;g=f[g>>2]|0}n[z>>2]=((l<v?l:v)+(l>w?l:w))*.5;n[z+4>>2]=((k<s?k:s)+(k>t?k:t))*.5;n[z+8>>2]=((j<p?j:p)+(j>r?j:r))*.5;if((g|0)==(f[h+60>>2]|0))rC(h+52|0,z);else{f[g>>2]=f[z>>2];f[g+4>>2]=f[z+4>>2];f[g+8>>2]=f[z+8>>2];f[i>>2]=(f[i>>2]|0)+12}u=A;return}while(0);z=q+32|0;f[z>>2]=(f[z>>2]|0)+1;u=A;return}function CN(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0.0,j=0.0,k=0.0,l=0,m=0;m=u;u=u+16|0;l=m;d=f[f[a>>2]>>2]|0;c=f[(f[d+36>>2]|0)+76>>2]|0;GN(d,b)|0;j=+n[c+(b*12|0)>>2];k=+n[c+(b*12|0)+4>>2];i=+n[c+(b*12|0)+8>>2];c=f[a>>2]|0;d=c+56|0;b=f[d>>2]|0;e=(b-(f[c+52>>2]|0)|0)/12|0;f[l>>2]=e;g=c+44|0;h=f[g>>2]|0;if(h>>>0<(f[c+48>>2]|0)>>>0){f[h>>2]=e;f[g>>2]=h+4}else{FN(c+40|0,l);c=f[a>>2]|0;b=c+56|0;d=b;b=f[b>>2]|0}n[l>>2]=((j<3402823466385288598117041.0e14?j:3402823466385288598117041.0e14)+(j>-3402823466385288598117041.0e14?j:-3402823466385288598117041.0e14))*.5;n[l+4>>2]=((k<3402823466385288598117041.0e14?k:3402823466385288598117041.0e14)+(k>-3402823466385288598117041.0e14?k:-3402823466385288598117041.0e14))*.5;n[l+8>>2]=((i<3402823466385288598117041.0e14?i:3402823466385288598117041.0e14)+(i>-3402823466385288598117041.0e14?i:-3402823466385288598117041.0e14))*.5;if((b|0)==(f[c+60>>2]|0)){rC(c+52|0,l);u=m;return}else{f[b>>2]=f[l>>2];f[b+4>>2]=f[l+4>>2];f[b+8>>2]=f[l+8>>2];f[d>>2]=(f[d>>2]|0)+12;u=m;return}}function DN(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0.0,l=0.0,m=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,v=0,w=0;w=u;u=u+16|0;v=w;g=f[f[a>>2]>>2]|0;j=f[(f[g+36>>2]|0)+76>>2]|0;e=j+(b*12|0)|0;i=j+(c*12|0)|0;h=j+(b*12|0)+4|0;if(+n[e>>2]==+n[i>>2]){d=j+(c*12|0)+4|0;if(+n[h>>2]==+n[d>>2]?+n[j+(b*12|0)+8>>2]==+n[j+(c*12|0)+8>>2]:0){v=g+32|0;f[v>>2]=(f[v>>2]|0)+1;u=w;return}}else d=j+(c*12|0)+4|0;EN(g,b,c)|0;t=+n[e>>2];s=t<3402823466385288598117041.0e14?t:3402823466385288598117041.0e14;t=t>-3402823466385288598117041.0e14?t:-3402823466385288598117041.0e14;q=+n[h>>2];r=q<3402823466385288598117041.0e14?q:3402823466385288598117041.0e14;q=q>-3402823466385288598117041.0e14?q:-3402823466385288598117041.0e14;p=+n[j+(b*12|0)+8>>2];o=p<3402823466385288598117041.0e14?p:3402823466385288598117041.0e14;p=p>-3402823466385288598117041.0e14?p:-3402823466385288598117041.0e14;m=+n[i>>2];l=+n[d>>2];k=+n[j+(c*12|0)+8>>2];e=f[a>>2]|0;g=e+56|0;d=f[g>>2]|0;h=(d-(f[e+52>>2]|0)|0)/12|0;f[v>>2]=h;b=e+44|0;i=f[b>>2]|0;if(i>>>0<(f[e+48>>2]|0)>>>0){f[i>>2]=h;f[b>>2]=i+4}else{FN(e+40|0,v);e=f[a>>2]|0;d=e+56|0;g=d;d=f[d>>2]|0}n[v>>2]=((m<s?m:s)+(m>t?m:t))*.5;n[v+4>>2]=((l<r?l:r)+(l>q?l:q))*.5;n[v+8>>2]=((k<o?k:o)+(k>p?k:p))*.5;if((d|0)==(f[e+60>>2]|0))rC(e+52|0,v);else{f[d>>2]=f[v>>2];f[d+4>>2]=f[v+4>>2];f[d+8>>2]=f[v+8>>2];f[g>>2]=(f[g>>2]|0)+12}u=w;return}function EN(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=u;u=u+16|0;h=o+8|0;m=o;n=o+12|0;e=o+4|0;f[h>>2]=b;f[m>>2]=c;i=a+52|0;j=a+56|0;d=f[j>>2]|0;f[n>>2]=d-(f[i>>2]|0)>>2;k=a+40|0;l=a+44|0;c=((f[l>>2]|0)-(f[k>>2]|0)>>2)+(f[a+32>>2]|0)|0;f[e>>2]=c;g=a+60|0;b=f[g>>2]|0;if(b>>>0>d>>>0){f[d>>2]=c;c=d+4|0;f[j>>2]=c}else{FN(i,e);c=f[j>>2]|0;b=f[g>>2]|0}f[e>>2]=2;if(c>>>0<b>>>0){f[c>>2]=2;c=c+4|0;f[j>>2]=c}else{FN(i,e);c=f[j>>2]|0;b=f[g>>2]|0}if((c|0)==(b|0)){JD(i,h);c=f[j>>2]|0;b=f[g>>2]|0}else{f[c>>2]=f[h>>2];c=c+4|0;f[j>>2]=c}if((c|0)==(b|0))JD(i,m);else{f[c>>2]=f[m>>2];f[j>>2]=c+4}b=f[l>>2]|0;if((b|0)==(f[a+48>>2]|0)){JD(k,n);n=f[n>>2]|0;u=o;return n|0}else{f[b>>2]=f[n>>2];f[l>>2]=b+4;n=f[n>>2]|0;u=o;return n|0}return 0}function FN(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;i=a+4|0;j=f[a>>2]|0;k=(f[i>>2]|0)-j|0;g=k>>2;c=g+1|0;if(c>>>0>1073741823)KEb(a);l=a+8|0;e=(f[l>>2]|0)-j|0;h=e>>1;h=e>>2>>>0<536870911?(h>>>0<c>>>0?c:h):1073741823;do if(h)if(h>>>0>1073741823){l=mb(8)|0;RDb(l,238482);f[l>>2]=144484;qb(l|0,84192,1464)}else{e=LDb(h<<2)|0;d=e;break}else{d=0;e=0}while(0);c=d+(g<<2)|0;f[c>>2]=f[b>>2];if((k|0)>0)gGb(e|0,j|0,k|0)|0;f[a>>2]=d;f[i>>2]=c+4;f[l>>2]=d+(h<<2);if(!j)return;NDb(j);return}function GN(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=u;u=u+16|0;l=n+4|0;m=n+8|0;g=n;f[l>>2]=b;h=a+52|0;i=a+56|0;d=f[i>>2]|0;f[m>>2]=d-(f[h>>2]|0)>>2;j=a+40|0;k=a+44|0;c=((f[k>>2]|0)-(f[j>>2]|0)>>2)+(f[a+32>>2]|0)|0;f[g>>2]=c;e=a+60|0;b=f[e>>2]|0;if(b>>>0>d>>>0){f[d>>2]=c;c=d+4|0;f[i>>2]=c}else{FN(h,g);c=f[i>>2]|0;b=f[e>>2]|0}f[g>>2]=1;if(c>>>0<b>>>0){f[c>>2]=1;c=c+4|0;f[i>>2]=c}else{FN(h,g);c=f[i>>2]|0;b=f[e>>2]|0}if((c|0)==(b|0))JD(h,l);else{f[c>>2]=f[l>>2];f[i>>2]=c+4}b=f[k>>2]|0;if((b|0)==(f[a+48>>2]|0)){JD(j,m);m=f[m>>2]|0;u=n;return m|0}else{f[b>>2]=f[m>>2];f[k>>2]=b+4;m=f[m>>2]|0;u=n;return m|0}return 0}function HN(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=u;u=u+32|0;h=q+16|0;k=q+8|0;n=q+4|0;o=q;p=q+20|0;g=q+12|0;f[h>>2]=b;f[k>>2]=c;f[n>>2]=d;f[o>>2]=e;i=a+52|0;j=a+56|0;d=f[j>>2]|0;f[p>>2]=d-(f[i>>2]|0)>>2;l=a+40|0;m=a+44|0;c=((f[m>>2]|0)-(f[l>>2]|0)>>2)+(f[a+32>>2]|0)|0;f[g>>2]=c;e=a+60|0;b=f[e>>2]|0;if(b>>>0>d>>>0){f[d>>2]=c;c=d+4|0;f[j>>2]=c}else{FN(i,g);c=f[j>>2]|0;b=f[e>>2]|0}f[g>>2]=4;if(c>>>0<b>>>0){f[c>>2]=4;c=c+4|0;f[j>>2]=c}else{FN(i,g);c=f[j>>2]|0;b=f[e>>2]|0}if((c|0)==(b|0)){JD(i,h);c=f[j>>2]|0;b=f[e>>2]|0}else{f[c>>2]=f[h>>2];c=c+4|0;f[j>>2]=c}if((c|0)==(b|0)){JD(i,k);c=f[j>>2]|0;b=f[e>>2]|0}else{f[c>>2]=f[k>>2];c=c+4|0;f[j>>2]=c}if((c|0)==(b|0)){JD(i,n);c=f[j>>2]|0;b=f[e>>2]|0}else{f[c>>2]=f[n>>2];c=c+4|0;f[j>>2]=c}if((c|0)==(b|0))JD(i,o);else{f[c>>2]=f[o>>2];f[j>>2]=c+4}b=f[m>>2]|0;if((b|0)==(f[a+48>>2]|0)){JD(l,p);p=f[p>>2]|0;u=q;return p|0}else{f[b>>2]=f[p>>2];f[m>>2]=b+4;p=f[p>>2]|0;u=q;return p|0}return 0}function IN(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=u;u=u+32|0;h=p+12|0;m=p+4|0;n=p;o=p+16|0;e=p+8|0;f[h>>2]=b;f[m>>2]=c;f[n>>2]=d;j=a+52|0;i=a+56|0;d=f[i>>2]|0;f[o>>2]=d-(f[j>>2]|0)>>2;k=a+40|0;l=a+44|0;c=((f[l>>2]|0)-(f[k>>2]|0)>>2)+(f[a+32>>2]|0)|0;f[e>>2]=c;g=a+60|0;b=f[g>>2]|0;if(b>>>0>d>>>0){f[d>>2]=c;c=d+4|0;f[i>>2]=c}else{FN(j,e);c=f[i>>2]|0;b=f[g>>2]|0}f[e>>2]=3;if(c>>>0<b>>>0){f[c>>2]=3;c=c+4|0;f[i>>2]=c}else{FN(j,e);c=f[i>>2]|0;b=f[g>>2]|0}if((c|0)==(b|0)){JD(j,h);c=f[i>>2]|0;b=f[g>>2]|0}else{f[c>>2]=f[h>>2];c=c+4|0;f[i>>2]=c}if((c|0)==(b|0)){JD(j,m);c=f[i>>2]|0;b=f[g>>2]|0}else{f[c>>2]=f[m>>2];c=c+4|0;f[i>>2]=c}if((c|0)==(b|0))JD(j,n);else{f[c>>2]=f[n>>2];f[i>>2]=c+4}b=f[l>>2]|0;if((b|0)==(f[a+48>>2]|0)){JD(k,o);o=f[o>>2]|0;u=p;return o|0}else{f[b>>2]=f[o>>2];f[l>>2]=b+4;o=f[o>>2]|0;u=p;return o|0}return 0}function JN(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0;nw(a,b,c);f[a>>2]=95076;f[a+32>>2]=f[b+32>>2];c=f[b+36>>2]|0;f[a+36>>2]=c;if(c|0){i=c+8|0;f[i>>2]=(f[i>>2]|0)+1}d=a+64|0;e=b+64|0;i=a+68|0;g=a+72|0;h=b+68|0;c=a+40|0;b=c+36|0;do{f[c>>2]=0;c=c+4|0}while((c|0)<(b|0));c=(f[h>>2]|0)-(f[e>>2]|0)|0;b=c>>5;if(!c)return;if(b>>>0>134217727)KEb(d);a=LDb(c)|0;f[i>>2]=a;f[d>>2]=a;f[g>>2]=a+(b<<5);b=f[e>>2]|0;c=(f[h>>2]|0)-b|0;if((c|0)<=0)return;gGb(a|0,b|0,c|0)|0;f[i>>2]=a+(c>>>5<<5);return}function KN(a){a=a|0;var b=0,c=0,d=0,e=0,g=0;f[a>>2]=95320;b=a+72|0;f[b>>2]=95692;c=a+68|0;d=f[c>>2]|0;if(d|0?(g=d+8|0,e=f[g>>2]|0,f[g>>2]=e-1,(e|0)==1):0)X4(d,1,1);f[c>>2]=0;qC(a,95860);ow(b);return}function LN(a){a=a|0;var b=0,c=0,d=0,e=0,g=0;f[a>>2]=95320;b=a+72|0;f[b>>2]=95692;c=a+68|0;d=f[c>>2]|0;if(d|0?(g=d+8|0,e=f[g>>2]|0,f[g>>2]=e-1,(e|0)==1):0)X4(d,1,1);f[c>>2]=0;qC(a,95860);ow(b);NDb(a);return}function MN(a){a=a|0;return 241076}function NN(a){a=a|0;return 184035}function ON(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;e=u;u=u+16|0;c=e;d=f[b+176>>2]|0;if(d|0?bFb(d,63240,60800,0)|0:0){u=e;return}d=f[a+68>>2]|0;f[c>>2]=91132;f[c+4>>2]=0;c=UN(d,c)|0;if(c|0){d=c+8|0;f[d>>2]=(f[d>>2]|0)+1}if(xk[f[(f[c>>2]|0)+172>>2]&255](c,a+56|0,b)|0)Vk[f[(f[b>>2]|0)+232>>2]&1023](b,c);a=c+8|0;b=f[a>>2]|0;f[a>>2]=b-1;if((b|0)!=1){u=e;return}X4(c,1,1);u=e;return}function PN(a){a=a|0;var b=0,c=0,d=0,e=0,g=0;c=u;u=u+16|0;e=c;b=LDb(104)|0;d=b+72|0;g=a+(f[(f[a>>2]|0)+-12>>2]|0)|0;f[e>>2]=91132;f[e+4>>2]=0;nw(d,g,e);f[b+12>>2]=0;e=b+28|0;f[b+4>>2]=0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;f[e+12>>2]=0;f[e+16>>2]=0;f[e+20>>2]=0;f[e+24>>2]=0;f[b+8>>2]=-1;f[b+16>>2]=2;f[b+20>>2]=-1;f[b+24>>2]=0;f[b>>2]=95320;f[d>>2]=95692;d=b+56|0;e=a+56|0;f[d>>2]=f[e>>2];f[d+4>>2]=f[e+4>>2];f[d+8>>2]=f[e+8>>2];a=f[a+68>>2]|0;f[b+68>>2]=a;if(!a){u=c;return b|0}g=a+8|0;f[g>>2]=(f[g>>2]|0)+1;u=c;return b|0}function QN(a){a=a|0;var b=0,c=0,d=0,e=0,g=0;a=a+(f[(f[a>>2]|0)+-16>>2]|0)|0;f[a>>2]=95320;b=a+72|0;f[b>>2]=95692;c=a+68|0;d=f[c>>2]|0;if(d|0?(g=d+8|0,e=f[g>>2]|0,f[g>>2]=e-1,(e|0)==1):0)X4(d,1,1);f[c>>2]=0;qC(a,95860);ow(b);return}function RN(a){a=a|0;var b=0,c=0,d=0,e=0,g=0;a=a+(f[(f[a>>2]|0)+-16>>2]|0)|0;f[a>>2]=95320;b=a+72|0;f[b>>2]=95692;c=a+68|0;d=f[c>>2]|0;if(d|0?(g=d+8|0,e=f[g>>2]|0,f[g>>2]=e-1,(e|0)==1):0)X4(d,1,1);f[c>>2]=0;qC(a,95860);ow(b);NDb(a);return}function SN(a){a=a|0;return 241076}function TN(a){a=a|0;return 184035}function UN(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0;g=u;u=u+16|0;e=g;if(!a){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=1){e=0;u=g;return e|0}d=Nv(Mv(2)|0,221895,88)|0;Ktb(e,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);c=Bvb(e,295164)|0;c=wk[f[(f[c>>2]|0)+28>>2]&1023](c,10)|0;Cvb(e);rub(d,c)|0;Rtb(d)|0;e=0;u=g;return e|0}a=wk[f[(f[a>>2]|0)+16>>2]&1023](a,c)|0;c=(a|0)==0;if(!c?(d=a+8|0,f[d>>2]=(f[d>>2]|0)+1,d=bFb(a,58336,60800,0)|0,d|0):0){ECa(a)|0;e=d;u=g;return e|0}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>1){d=Nv(Mv(2)|0,221806,88)|0;Ktb(e,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);h=Bvb(e,295164)|0;h=wk[f[(f[h>>2]|0)+28>>2]&1023](h,10)|0;Cvb(e);rub(d,h)|0;Rtb(d)|0}if(c){h=0;u=g;return h|0}e=a+8|0;h=f[e>>2]|0;f[e>>2]=h-1;if((h|0)!=1){h=0;u=g;return h|0}X4(a,1,1);h=0;u=g;return h|0}function VN(a){a=a|0;rw(a);return}function WN(a){a=a|0;rw(a);NDb(a);return}function XN(a){a=a|0;var b=0;b=LDb(156)|0;a=f[a+56>>2]|0;gDa(b);f[b>>2]=95880;n[b+60>>2]=.05000000074505806;n[b+64>>2]=.05000000074505806;n[b+68>>2]=.05000000074505806;n[b+72>>2]=1.0;n[b+76>>2]=.800000011920929;n[b+80>>2]=.800000011920929;n[b+84>>2]=.800000011920929;n[b+88>>2]=1.0;n[b+92>>2]=.05000000074505806;n[b+96>>2]=.05000000074505806;n[b+100>>2]=.05000000074505806;n[b+104>>2]=1.0;n[b+108>>2]=0.0;n[b+112>>2]=0.0;n[b+116>>2]=1.0;n[b+120>>2]=0.0;n[b+124>>2]=0.0;n[b+128>>2]=0.0;n[b+132>>2]=-1.0;n[b+148>>2]=0.0;n[b+152>>2]=180.0;n[b+136>>2]=1.0;n[b+140>>2]=0.0;n[b+144>>2]=0.0;f[b+56>>2]=a;return b|0}function YN(a,b){a=a|0;b=b|0;var c=0,d=0;c=LDb(156)|0;mw(c,a,b);f[c>>2]=95880;f[c+56>>2]=f[a+56>>2];b=c+60|0;d=a+60|0;f[b>>2]=f[d>>2];f[b+4>>2]=f[d+4>>2];f[b+8>>2]=f[d+8>>2];f[b+12>>2]=f[d+12>>2];b=c+76|0;d=a+76|0;f[b>>2]=f[d>>2];f[b+4>>2]=f[d+4>>2];f[b+8>>2]=f[d+8>>2];f[b+12>>2]=f[d+12>>2];b=c+92|0;d=a+92|0;f[b>>2]=f[d>>2];f[b+4>>2]=f[d+4>>2];f[b+8>>2]=f[d+8>>2];f[b+12>>2]=f[d+12>>2];b=c+108|0;d=a+108|0;f[b>>2]=f[d>>2];f[b+4>>2]=f[d+4>>2];f[b+8>>2]=f[d+8>>2];f[b+12>>2]=f[d+12>>2];b=c+124|0;d=a+124|0;f[b>>2]=f[d>>2];f[b+4>>2]=f[d+4>>2];f[b+8>>2]=f[d+8>>2];f[c+136>>2]=f[a+136>>2];f[c+140>>2]=f[a+140>>2];f[c+144>>2]=f[a+144>>2];f[c+148>>2]=f[a+148>>2];f[c+152>>2]=f[a+152>>2];return c|0}function ZN(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,61464,0)|0)!=0;return b|0}function _N(a){a=a|0;return 241076}function $N(a){a=a|0;return 184118}function aO(a){a=a|0;return 10}function bO(a){a=a|0;return f[a+56>>2]|0}function cO(a,b){a=a|0;b=b|0;var c=0,d=0.0,e=0.0,g=0;if((a|0)==(b|0)){b=0;return b|0}if(!a)NFb();c=f[(f[(f[a>>2]|0)+-4>>2]|0)+4>>2]|0;g=f[(f[(f[b>>2]|0)+-4>>2]|0)+4>>2]|0;if(c>>>0<g>>>0){b=-1;return b|0}if((c|0)!=(g|0)){b=1;return b|0}c=f[a+56>>2]|0;g=f[b+56>>2]|0;if((c|0)<(g|0)){b=-1;return b|0}if((g|0)<(c|0)){b=1;return b|0}c=b+60|0;d=+n[a+60>>2];e=+n[c>>2];if(d<e){b=-1;return b|0}if(d>e){b=1;return b|0}d=+n[a+64>>2];e=+n[c+4>>2];if(d<e){b=-1;return b|0}if(!(d>e)){d=+n[a+68>>2];e=+n[c+8>>2];if(d<e){b=-1;return b|0}if(!(d>e)?+n[a+72>>2]<+n[c+12>>2]:0){b=-1;return b|0}}d=+n[c+4>>2];e=+n[a+64>>2];if(d<e){b=1;return b|0}if(!(d>e)){d=+n[c+8>>2];e=+n[a+68>>2];if(d<e){b=1;return b|0}if(!(d>e)?+n[c+12>>2]<+n[a+72>>2]:0){b=1;return b|0}}c=b+76|0;d=+n[a+76>>2];e=+n[c>>2];if(d<e){b=-1;return b|0}if(d>e){b=1;return b|0}d=+n[a+80>>2];e=+n[c+4>>2];if(d<e){b=-1;return b|0}if(!(d>e)){d=+n[a+84>>2];e=+n[c+8>>2];if(d<e){b=-1;return b|0}if(!(d>e)?+n[a+88>>2]<+n[c+12>>2]:0){b=-1;return b|0}}d=+n[c+4>>2];e=+n[a+80>>2];if(d<e){b=1;return b|0}do if(!(d>e)){d=+n[c+8>>2];e=+n[a+84>>2];if(d<e){b=1;return b|0}if(d>e)break;if(+n[c+12>>2]<+n[a+88>>2])c=1;else break;return c|0}while(0);c=b+92|0;d=+n[a+92>>2];e=+n[c>>2];if(d<e){b=-1;return b|0}if(d>e){b=1;return b|0}d=+n[a+96>>2];e=+n[c+4>>2];if(d<e){b=-1;return b|0}do if(!(d>e)){d=+n[a+100>>2];e=+n[c+8>>2];if(d<e){b=-1;return b|0}if(d>e)break;if(+n[a+104>>2]<+n[c+12>>2])c=-1;else break;return c|0}while(0);d=+n[c+4>>2];e=+n[a+96>>2];if(d<e){b=1;return b|0}do if(!(d>e)){d=+n[c+8>>2];e=+n[a+100>>2];if(d<e){b=1;return b|0}if(d>e)break;if(+n[c+12>>2]<+n[a+104>>2])c=1;else break;return c|0}while(0);c=b+108|0;d=+n[a+108>>2];e=+n[c>>2];if(d<e){b=-1;return b|0}if(d>e){b=1;return b|0}d=+n[a+112>>2];e=+n[c+4>>2];if(d<e){b=-1;return b|0}do if(!(d>e)){d=+n[a+116>>2];e=+n[c+8>>2];if(d<e){b=-1;return b|0}if(d>e)break;if(+n[a+120>>2]<+n[c+12>>2])c=-1;else break;return c|0}while(0);d=+n[c+4>>2];e=+n[a+112>>2];if(d<e){b=1;return b|0}do if(!(d>e)){d=+n[c+8>>2];e=+n[a+116>>2];if(d<e){b=1;return b|0}if(d>e)break;if(+n[c+12>>2]<+n[a+120>>2])c=1;else break;return c|0}while(0);d=+n[a+124>>2];e=+n[b+124>>2];if(d<e){b=-1;return b|0}if(d>e){b=1;return b|0}d=+n[a+128>>2];e=+n[b+128>>2];if(d<e){b=-1;return b|0}do if(!(d>e)){if(+n[a+132>>2]<+n[b+132>>2])c=-1;else break;return c|0}while(0);d=+n[b+128>>2];e=+n[a+128>>2];if(d<e){b=1;return b|0}do if(!(d>e)){if(+n[b+132>>2]<+n[a+132>>2])c=1;else break;return c|0}while(0);d=+n[a+136>>2];e=+n[b+136>>2];if(d<e){b=-1;return b|0}if(e<d){b=1;return b|0}d=+n[a+140>>2];e=+n[b+140>>2];if(d<e){b=-1;return b|0}if(e<d){b=1;return b|0}d=+n[a+144>>2];e=+n[b+144>>2];if(d<e){b=-1;return b|0}if(e<d){b=1;return b|0}d=+n[a+148>>2];e=+n[b+148>>2];if(d<e){b=-1;return b|0}if(e<d){b=1;return b|0}e=+n[a+152>>2];d=+n[b+152>>2];if(e<d){b=-1;return b|0}b=d<e&1;return b|0}function dO(a,b){a=a|0;b=b|0;Vk[f[(f[b>>2]|0)+8>>2]&1023](b,(f[a+56>>2]|0)+16384|0);return 1}function eO(a,c){a=a|0;c=c|0;var d=0,e=0;c=u;u=u+16|0;a=c;if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=2){u=c;return}d=Nv(Mv(3)|0,184071,46)|0;Ktb(a,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);e=Bvb(a,295164)|0;e=wk[f[(f[e>>2]|0)+28>>2]&1023](e,10)|0;Cvb(a);rub(d,e)|0;Rtb(d)|0;u=c;return}function fO(a){a=a|0;oca(a);return}function gO(a){a=a|0;oca(a);NDb(a);return}function hO(a){a=a|0;a=LDb(408)|0;NDa(a);f[a>>2]=96092;SWa(a+144|0);SWa(a+272|0);b[a+400>>0]=0;return a|0}function iO(a,c){a=a|0;c=c|0;var d=0;d=LDb(408)|0;ODa(d,a,c);f[d>>2]=96092;p[d+144>>3]=+p[a+144>>3];p[d+152>>3]=+p[a+152>>3];p[d+160>>3]=+p[a+160>>3];p[d+168>>3]=+p[a+168>>3];p[d+176>>3]=+p[a+176>>3];p[d+184>>3]=+p[a+184>>3];p[d+192>>3]=+p[a+192>>3];p[d+200>>3]=+p[a+200>>3];p[d+208>>3]=+p[a+208>>3];p[d+216>>3]=+p[a+216>>3];p[d+224>>3]=+p[a+224>>3];p[d+232>>3]=+p[a+232>>3];p[d+240>>3]=+p[a+240>>3];p[d+248>>3]=+p[a+248>>3];p[d+256>>3]=+p[a+256>>3];p[d+264>>3]=+p[a+264>>3];p[d+272>>3]=+p[a+272>>3];p[d+280>>3]=+p[a+280>>3];p[d+288>>3]=+p[a+288>>3];p[d+296>>3]=+p[a+296>>3];p[d+304>>3]=+p[a+304>>3];p[d+312>>3]=+p[a+312>>3];p[d+320>>3]=+p[a+320>>3];p[d+328>>3]=+p[a+328>>3];p[d+336>>3]=+p[a+336>>3];p[d+344>>3]=+p[a+344>>3];p[d+352>>3]=+p[a+352>>3];p[d+360>>3]=+p[a+360>>3];p[d+368>>3]=+p[a+368>>3];p[d+376>>3]=+p[a+376>>3];p[d+384>>3]=+p[a+384>>3];p[d+392>>3]=+p[a+392>>3];b[d+400>>0]=b[a+400>>0]|0;return d|0}function jO(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,61496,0)|0)!=0;return b|0}function kO(a){a=a|0;return 241076}function lO(a){a=a|0;return 184148}function mO(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0;j=u;u=u+16|0;c=j+8|0;i=j+4|0;d=j;if(!((f[a+116>>2]|f[b+24>>2])&f[b+20>>2])){u=j;return}f[i>>2]=a;e=b+16|0;g=b+28|0;h=a;do if((f[e>>2]|0)!=1){c=b+32|0;d=f[c>>2]|0;if((d|0)==(f[b+36>>2]|0)){OA(g,i);break}else{f[d>>2]=h;f[c>>2]=(f[c>>2]|0)+4;break}}else{f[d>>2]=f[g>>2];f[c>>2]=f[d>>2];PA(g,c,i)|0}while(0);Vk[f[(f[b>>2]|0)+160>>2]&1023](b,a);if((f[e>>2]|0)==1){a=f[b+28>>2]|0;e=a+4|0;c=b+32|0;d=(f[c>>2]|0)-e|0;if(d|0)hGb(a|0,e|0,d|0)|0;d=a+(d>>2<<2)|0}else{c=b+32|0;d=(f[c>>2]|0)+-4|0}f[c>>2]=d;u=j;return}function nO(a){a=a|0;return a|0}function oO(a){a=a|0;return a|0}function pO(a,b,c){a=a|0;b=b|0;c=c|0;c=a+144|0;if(!(f[a+136>>2]|0)){YWa(b,c);return 1}if((c|0)==(b|0))return 1;p[b>>3]=+p[c>>3];p[b+8>>3]=+p[a+152>>3];p[b+16>>3]=+p[a+160>>3];p[b+24>>3]=+p[a+168>>3];p[b+32>>3]=+p[a+176>>3];p[b+40>>3]=+p[a+184>>3];p[b+48>>3]=+p[a+192>>3];p[b+56>>3]=+p[a+200>>3];p[b+64>>3]=+p[a+208>>3];p[b+72>>3]=+p[a+216>>3];p[b+80>>3]=+p[a+224>>3];p[b+88>>3]=+p[a+232>>3];p[b+96>>3]=+p[a+240>>3];p[b+104>>3]=+p[a+248>>3];p[b+112>>3]=+p[a+256>>3];p[b+120>>3]=+p[a+264>>3];return 1}function qO(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0;e=a+400|0;d=a+272|0;if(b[e>>0]|0){g=a+144|0;if(((+p[a+168>>3]==0.0?+p[a+200>>3]==0.0:0)?+p[a+232>>3]==0.0:0)?+p[a+264>>3]==1.0:0)ZWa(d,g)|0;else _Wa(d,g)|0;b[e>>0]=0}if(!(f[a+136>>2]|0)){XWa(c,d);return 1}if((d|0)==(c|0))return 1;p[c>>3]=+p[d>>3];p[c+8>>3]=+p[a+280>>3];p[c+16>>3]=+p[a+288>>3];p[c+24>>3]=+p[a+296>>3];p[c+32>>3]=+p[a+304>>3];p[c+40>>3]=+p[a+312>>3];p[c+48>>3]=+p[a+320>>3];p[c+56>>3]=+p[a+328>>3];p[c+64>>3]=+p[a+336>>3];p[c+72>>3]=+p[a+344>>3];p[c+80>>3]=+p[a+352>>3];p[c+88>>3]=+p[a+360>>3];p[c+96>>3]=+p[a+368>>3];p[c+104>>3]=+p[a+376>>3];p[c+112>>3]=+p[a+384>>3];p[c+120>>3]=+p[a+392>>3];return 1}function rO(a){a=a|0;return}function sO(a){a=a|0;NDb(a);return}function tO(a,b){a=a|0;b=b|0;return}function uO(a){a=a|0;f[a>>2]=96416;wO(a+28|0,f[a+32>>2]|0);d8(a+12|0);V4(a);return}function vO(a){a=a|0;f[a>>2]=96416;wO(a+28|0,f[a+32>>2]|0);d8(a+12|0);V4(a);NDb(a);return}function wO(a,b){a=a|0;b=b|0;if(!b)return;else{wO(a,f[b>>2]|0);wO(a,f[b+4>>2]|0);NDb(b);return}}function xO(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;j=u;u=u+16|0;e=j;g=f[(f[a>>2]|0)+136>>2]|0;if(!c){f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;Vk[g&1023](a,e);if((b[e+11>>0]|0)<0)NDb(f[e>>2]|0);u=j;return};f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;h=Zob(c)|0;if(h>>>0>4294967279)TDb(e);if(h>>>0<11){b[e+11>>0]=h;if(!h)d=e;else{d=e;i=7}}else{i=h+16&-16;d=LDb(i)|0;f[e>>2]=d;f[e+8>>2]=i|-2147483648;f[e+4>>2]=h;i=7}if((i|0)==7)gGb(d|0,c|0,h|0)|0;b[d+h>>0]=0;Vk[g&1023](a,e);if((b[e+11>>0]|0)<0)NDb(f[e>>2]|0);u=j;return}function yO(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0;h=u;u=u+16|0;g=h;if(!c){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=1){a=0;u=h;return a|0}a=Nv(Mv(2)|0,184562,103)|0;Ktb(g,a+(f[(f[a>>2]|0)+-12>>2]|0)|0);e=Bvb(g,295164)|0;e=wk[f[(f[e>>2]|0)+28>>2]&1023](e,10)|0;Cvb(g);rub(a,e)|0;Rtb(a)|0;a=0;u=h;return a|0}nP(a,c);f[g>>2]=c;e=c+8|0;f[e>>2]=(f[e>>2]|0)+1;e=a+224|0;c=f[e>>2]|0;if(c>>>0<(f[a+228>>2]|0)>>>0){d=f[g>>2]|0;f[c>>2]=d;if(d){c=d+8|0;f[c>>2]=(f[c>>2]|0)+1;c=f[e>>2]|0}f[e>>2]=c+4}else CK(a+220|0,g);c=f[g>>2]|0;if(c|0?(e=c+8|0,g=f[e>>2]|0,f[e>>2]=g-1,(g|0)==1):0)X4(c,1,1);Nk[f[(f[a>>2]|0)+240>>2]&2047](a);oA(a);a=1;u=h;return a|0}function zO(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;i=a+4|0;j=f[a>>2]|0;k=(f[i>>2]|0)-j|0;g=k>>4;c=g+1|0;if(c>>>0>268435455)KEb(a);l=a+8|0;e=(f[l>>2]|0)-j|0;h=e>>3;h=e>>4>>>0<134217727?(h>>>0<c>>>0?c:h):268435455;do if(h)if(h>>>0>268435455){l=mb(8)|0;RDb(l,238482);f[l>>2]=144484;qb(l|0,84192,1464)}else{e=LDb(h<<4)|0;d=e;break}else{d=0;e=0}while(0);c=d+(g<<4)|0;f[c>>2]=f[b>>2];f[c+4>>2]=f[b+4>>2];f[c+8>>2]=f[b+8>>2];f[c+12>>2]=f[b+12>>2];if((k|0)>0)gGb(e|0,j|0,k|0)|0;f[a>>2]=d;f[i>>2]=c+16;f[l>>2]=d+(h<<4);if(!j)return;NDb(j);return}function AO(a){a=a|0;rw(a);return}function BO(a){a=a|0;rw(a);NDb(a);return}function CO(a){a=a|0;a=LDb(64)|0;gDa(a);f[a>>2]=97252;f[a+56>>2]=6914;f[a+60>>2]=6914;return a|0}function DO(a,b){a=a|0;b=b|0;var c=0;c=LDb(64)|0;mw(c,a,b);f[c>>2]=97252;f[c+56>>2]=f[a+56>>2];f[c+60>>2]=f[a+60>>2];return c|0}function EO(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,61536,0)|0)!=0;return b|0}function FO(a){a=a|0;return 241076}function GO(a){a=a|0;return 184293}function HO(a){a=a|0;return 1}function IO(a,b){a=a|0;b=b|0;var c=0,d=0;if((a|0)==(b|0)){b=0;return b|0}if(!a)NFb();c=f[(f[(f[a>>2]|0)+-4>>2]|0)+4>>2]|0;d=f[(f[(f[b>>2]|0)+-4>>2]|0)+4>>2]|0;if(c>>>0<d>>>0){b=-1;return b|0}if((c|0)!=(d|0)){b=1;return b|0}c=f[a+56>>2]|0;d=f[b+56>>2]|0;if((c|0)<(d|0)){b=-1;return b|0}if((d|0)<(c|0)){b=1;return b|0}else{a=f[a+60>>2]|0;b=f[b+60>>2]|0;return ((a|0)<(b|0)?-1:(b|0)<(a|0)&1)|0}return 0}function JO(a,c){a=a|0;c=c|0;var d=0,e=0;c=u;u=u+16|0;a=c;if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=2){u=c;return}d=Nv(Mv(3)|0,184237,55)|0;Ktb(a,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);e=Bvb(a,295164)|0;e=wk[f[(f[e>>2]|0)+28>>2]&1023](e,10)|0;Cvb(a);rub(d,e)|0;Rtb(d)|0;u=c;return}function KO(a){a=a|0;var b=0;f[a+72>>2]=97464;b=f[a+76>>2]|0;if(!b){xx(a);return}f[a+80>>2]=b;NDb(b);xx(a);return}function LO(a){a=a|0;var b=0;f[a+72>>2]=97464;b=f[a+76>>2]|0;if(b|0){f[a+80>>2]=b;NDb(b)}xx(a);NDb(a);return}function MO(a){a=a|0;var c=0;a=LDb(88)|0;CCa(a,1);c=a+12|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[a+24>>2]=2;c=a+28|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;f[c+16>>2]=0;f[c+20>>2]=0;f[a+52>>2]=29;f[a+56>>2]=4;f[a+60>>2]=5126;f[a+64>>2]=-1;b[a+68>>0]=0;b[a+69>>0]=0;f[a+76>>2]=0;f[a+80>>2]=0;f[a+84>>2]=0;f[a>>2]=96996;f[a+72>>2]=97236;return a|0}function NO(a,b){a=a|0;b=b|0;var c=0;c=LDb(88)|0;kP(c,a,b);return c|0}function OO(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,58600,0)|0)!=0;return b|0}function PO(a){a=a|0;return 241076}function QO(a){a=a|0;var c=0,d=0,e=0;e=u;u=u+16|0;d=e;a=a+52|0;c=f[a>>2]|0;if(c>>>0<38){d=f[208+(c<<2)>>2]|0;u=e;return d|0}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=4){d=184397;u=e;return d|0}c=Nv(Mv(5)|0,184357,39)|0;c=iub(c,f[a>>2]|0)|0;Ktb(d,c+(f[(f[c>>2]|0)+-12>>2]|0)|0);a=Bvb(d,295164)|0;a=wk[f[(f[a>>2]|0)+28>>2]&1023](a,10)|0;Cvb(d);rub(c,a)|0;Rtb(c)|0;d=184397;u=e;return d|0}function RO(a){a=a|0;var b=0;b=f[a+76>>2]|0;return ((b|0)==(f[a+80>>2]|0)?0:b)|0}function SO(a){a=a|0;return (f[a+80>>2]|0)-(f[a+76>>2]|0)|0}function TO(a){a=a|0;return a|0}function UO(a){a=a|0;return a|0}function VO(a,b){a=a|0;b=b|0;Vk[f[(f[b>>2]|0)+124>>2]&1023](b,a);return}function WO(a,b){a=a|0;b=b|0;Vk[f[(f[b>>2]|0)+124>>2]&1023](b,a);return}function XO(a,b,c){a=a|0;b=b|0;c=c|0;Vk[f[(f[c>>2]|0)+120>>2]&1023](c,(f[a+76>>2]|0)+(b<<4)|0);return}function YO(a,b,c){a=a|0;b=b|0;c=c|0;Vk[f[(f[c>>2]|0)+120>>2]&1023](c,(f[a+76>>2]|0)+(b<<4)|0);return}function ZO(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0;a=f[a+76>>2]|0;d=+n[a+(b<<4)>>2];e=+n[a+(c<<4)>>2];if(d<e){c=-1;return c|0}if(!(d>e)){d=+n[a+(b<<4)+4>>2];e=+n[a+(c<<4)+4>>2];if(d<e){c=-1;return c|0}if(!(d>e)){d=+n[a+(b<<4)+8>>2];e=+n[a+(c<<4)+8>>2];if(d<e){c=-1;return c|0}if(!(d>e)?+n[a+(b<<4)+12>>2]<+n[a+(c<<4)+12>>2]:0){c=-1;return c|0}}d=+n[a+(c<<4)+4>>2];e=+n[a+(b<<4)+4>>2];if(!(d<e)){if(d>e){c=0;return c|0}d=+n[a+(c<<4)+8>>2];e=+n[a+(b<<4)+8>>2];if(!(d<e)){if(d>e){c=0;return c|0}if(!(+n[a+(c<<4)+12>>2]<+n[a+(b<<4)+12>>2])){c=0;return c|0}}}}c=1;return c|0}function _O(a){a=a|0;return 16}function $O(a,b){a=a|0;b=b|0;var c=0;c=f[a+76>>2]|0;return ((c|0)==(f[a+80>>2]|0)?0:c+(b<<4)|0)|0}function aP(a){a=a|0;return (f[a+80>>2]|0)-(f[a+76>>2]|0)>>4|0}function bP(a,b){a=a|0;b=b|0;jP(a+76|0,b);return}function cP(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;h=u;u=u+16|0;e=h;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;f[e+12>>2]=0;g=a+76|0;a=a+80|0;c=f[g>>2]|0;d=(f[a>>2]|0)-c>>4;if(d>>>0<b>>>0){iP(g,b-d|0,e);u=h;return}if(d>>>0<=b>>>0){u=h;return}f[a>>2]=c+(b<<4);u=h;return}function dP(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=u;u=u+16|0;g=o;f[g>>2]=97464;h=g+4|0;i=a+76|0;f[h>>2]=0;j=g+8|0;f[j>>2]=0;k=g+12|0;f[k>>2]=0;l=a+80|0;m=f[l>>2]|0;n=f[i>>2]|0;e=m-n|0;b=e>>4;if(e){if(b>>>0>268435455)KEb(h);c=LDb(e)|0;f[j>>2]=c;f[h>>2]=c;b=c+(b<<4)|0;f[k>>2]=b;d=c;if((e|0)>0){p=c+(e>>>4<<4)|0;gGb(c|0,n|0,e|0)|0;f[j>>2]=p;e=d;c=p}else{e=d;c=d}}else{e=0;c=0;b=0}f[h>>2]=n;f[i>>2]=e;f[j>>2]=m;f[l>>2]=c;p=a+84|0;f[k>>2]=f[p>>2];f[p>>2]=b;f[g>>2]=97464;if(!n){u=o;return}f[j>>2]=n;NDb(n);u=o;return}function eP(a){a=a|0;var b=0;a=a+-72|0;f[a+72>>2]=97464;b=f[a+76>>2]|0;if(!b){xx(a);return}f[a+80>>2]=b;NDb(b);xx(a);return}function fP(a){a=a|0;var b=0;a=a+-72|0;f[a+72>>2]=97464;b=f[a+76>>2]|0;if(b|0){f[a+80>>2]=b;NDb(b)}xx(a);NDb(a);return}function gP(a){a=a|0;var b=0;f[a>>2]=97464;b=f[a+4>>2]|0;if(!b)return;f[a+8>>2]=b;NDb(b);return}function hP(a){a=a|0;var b=0;f[a>>2]=97464;b=f[a+4>>2]|0;if(!b){NDb(a);return}f[a+8>>2]=b;NDb(b);NDb(a);return}function iP(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;k=a+8|0;g=f[k>>2]|0;l=a+4|0;d=f[l>>2]|0;if(g-d>>4>>>0>=b>>>0){do{f[d>>2]=f[c>>2];f[d+4>>2]=f[c+4>>2];f[d+8>>2]=f[c+8>>2];f[d+12>>2]=f[c+12>>2];d=(f[l>>2]|0)+16|0;f[l>>2]=d;b=b+-1|0}while((b|0)!=0);return}e=f[a>>2]|0;h=d-e>>4;j=h+b|0;if(j>>>0>268435455)KEb(a);i=g-e|0;d=i>>3;d=i>>4>>>0<134217727?(d>>>0<j>>>0?j:d):268435455;do if(d)if(d>>>0>268435455){l=mb(8)|0;RDb(l,238482);f[l>>2]=144484;qb(l|0,84192,1464)}else{i=LDb(d<<4)|0;break}else i=0;while(0);g=i+(h<<4)|0;h=i+(d<<4)|0;d=g;while(1){f[d>>2]=f[c>>2];f[d+4>>2]=f[c+4>>2];f[d+8>>2]=f[c+8>>2];f[d+12>>2]=f[c+12>>2];b=b+-1|0;if(!b)break;else d=d+16|0}b=f[a>>2]|0;e=(f[l>>2]|0)-b|0;d=g+(0-(e>>4)<<4)|0;if((e|0)>0)gGb(d|0,b|0,e|0)|0;f[a>>2]=d;f[l>>2]=i+(j<<4);f[k>>2]=h;if(!b)return;NDb(b);return}function jP(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;e=a+8|0;g=f[a>>2]|0;if((f[e>>2]|0)-g>>4>>>0>=b>>>0)return;h=a+4|0;if(b>>>0>268435455){h=mb(8)|0;RDb(h,238482);f[h>>2]=144484;qb(h|0,84192,1464)}c=(f[h>>2]|0)-g|0;d=LDb(b<<4)|0;if((c|0)>0)gGb(d|0,g|0,c|0)|0;f[a>>2]=d;f[h>>2]=d+(c>>4<<4);f[e>>2]=d+(b<<4);if(!g)return;NDb(g);return}function kP(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0;nw(a,c,d);f[a>>2]=88884;f[a+32>>2]=0;f[a+36>>2]=0;f[a+40>>2]=0;d=f[c+44>>2]|0;f[a+44>>2]=d;if(d|0){l=d+(f[(f[d>>2]|0)+-12>>2]|0)+8|0;f[l>>2]=(f[l>>2]|0)+1}f[a+48>>2]=0;f[a>>2]=97480;f[a+52>>2]=f[c+52>>2];f[a+56>>2]=f[c+56>>2];f[a+60>>2]=f[c+60>>2];f[a+64>>2]=f[c+64>>2];b[a+68>>0]=b[c+68>>0]|0;b[a+69>>0]=b[c+69>>0]|0;k=a+72|0;f[k>>2]=97464;e=a+76|0;g=c+76|0;f[e>>2]=0;l=a+80|0;f[l>>2]=0;h=a+84|0;f[h>>2]=0;i=c+80|0;d=(f[i>>2]|0)-(f[g>>2]|0)|0;c=d>>4;if(!d){f[a>>2]=96996;f[k>>2]=97236;return}if(c>>>0>268435455)KEb(e);j=LDb(d)|0;f[l>>2]=j;f[e>>2]=j;f[h>>2]=j+(c<<4);c=f[g>>2]|0;d=(f[i>>2]|0)-c|0;if((d|0)<=0){f[a>>2]=96996;f[k>>2]=97236;return}gGb(j|0,c|0,d|0)|0;f[l>>2]=j+(d>>>4<<4);f[a>>2]=96996;f[k>>2]=97236;return}function lP(a){a=a|0;Ni()}function mP(a){a=a|0;return}function nP(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;d=sk[f[(f[b>>2]|0)+192>>2]&2047](b)|0;if(!d)return;c=d+40|0;b=f[c>>2]|0;if(b|0?bFb(b,58480,58616,0)|0:0)return;a=oP(a)|0;b=f[c>>2]|0;if((b|0)==(a|0))return;if(!b)b=0;else{Kx(b,f[d+36>>2]|0);b=f[c>>2]|0}if((b|0)!=(a|0)){f[c>>2]=a;if(a|0){a=a+8|0;f[a>>2]=(f[a>>2]|0)+1}if(b|0?(e=b+8|0,a=f[e>>2]|0,f[e>>2]=a-1,(a|0)==1):0)X4(b,1,1)}b=f[c>>2]|0;if(!b)b=0;else b=Lx(b,d)|0;f[d+36>>2]=b;return}function oP(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=u;u=u+16|0;h=m+12|0;j=m;f[j>>2]=0;k=j+4|0;f[k>>2]=0;i=j+8|0;f[i>>2]=0;d=f[a+220>>2]|0;g=a+224|0;a:do if((d|0)!=(f[g>>2]|0)){do{e=f[d>>2]|0;e=sk[f[(f[e>>2]|0)+192>>2]&2047](e)|0;f[h>>2]=e;a=e;do if(e|0){e=f[k>>2]|0;if((e|0)==(f[i>>2]|0)){AK(j,h);break}else{f[e>>2]=a;f[k>>2]=(f[k>>2]|0)+4;break}}while(0);d=d+4|0}while((d|0)!=(f[g>>2]|0));a=f[j>>2]|0;d=f[k>>2]|0;if((a|0)!=(d|0)){e=a;while(1){g=f[(f[e>>2]|0)+40>>2]|0;if(g|0?(c=bFb(g,58480,58616,0)|0,c|0):0)break a;e=e+4|0;if((e|0)==(d|0)){l=13;break}}}else l=13}else l=13;while(0);if((l|0)==13){c=LDb(72)|0;BCa(c);a=c+12|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[c+24>>2]=2;f[c+28>>2]=0;f[c>>2]=88712;a=c+32|0;f[c+48>>2]=0;f[c+52>>2]=0;f[c+56>>2]=0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;b[a+12>>0]=0;Vx(c+60|0);f[c>>2]=89352;f[a>>2]=34963;f[c+36>>2]=35044;a=f[j>>2]|0}if(!a){u=m;return c|0}f[k>>2]=a;NDb(a);u=m;return c|0}function pP(a){a=a|0;var b=0;f[a>>2]=96716;b=a+64|0;f[b>>2]=96980;Fx(a,0);f[b>>2]=96700;b=f[a+68>>2]|0;if(!b){xx(a);return}f[a+72>>2]=b;NDb(b);xx(a);return}function qP(a){a=a|0;var b=0;f[a>>2]=96716;b=a+64|0;f[b>>2]=96980;Fx(a,0);f[b>>2]=96700;b=f[a+68>>2]|0;if(!b){xx(a);NDb(a);return}f[a+72>>2]=b;NDb(b);xx(a);NDb(a);return}function rP(a){a=a|0;var b=0;a=LDb(80)|0;CCa(a,1);b=a+12|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[a+24>>2]=2;b=a+28|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[b+12>>2]=0;f[b+16>>2]=0;f[b+20>>2]=0;f[a+52>>2]=4;f[a+56>>2]=0;f[a+60>>2]=0;f[a+68>>2]=0;f[a+72>>2]=0;f[a+76>>2]=0;f[a>>2]=96716;f[a+64>>2]=96980;return a|0}function sP(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0;i=LDb(80)|0;nw(i,a,b);f[i>>2]=88884;f[i+32>>2]=0;f[i+36>>2]=0;f[i+40>>2]=0;b=f[a+44>>2]|0;f[i+44>>2]=b;if(b|0){h=b+(f[(f[b>>2]|0)+-12>>2]|0)+8|0;f[h>>2]=(f[h>>2]|0)+1}f[i+48>>2]=0;f[i+52>>2]=f[a+52>>2];f[i+56>>2]=f[a+56>>2];f[i+60>>2]=f[a+60>>2];f[i>>2]=96436;c=i+64|0;f[c>>2]=96700;d=i+68|0;f[d>>2]=0;e=i+72|0;f[e>>2]=0;g=i+76|0;f[g>>2]=0;h=f[a+68>>2]|0;b=(f[a+72>>2]|0)-h|0;if(!b){f[i>>2]=96716;f[c>>2]=96980;return i|0}if((b|0)<0)KEb(d);a=LDb(b)|0;f[e>>2]=a;f[d>>2]=a;f[g>>2]=a+(b>>1<<1);gGb(a|0,h|0,b|0)|0;f[e>>2]=a+(b>>>1<<1);f[i>>2]=96716;f[c>>2]=96980;return i|0}function tP(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,61592,0)|0)!=0;return b|0}function uP(a){a=a|0;return 241076}function vP(a){a=a|0;return 226117}function wP(a){a=a|0;var b=0;b=f[a+68>>2]|0;return ((b|0)==(f[a+72>>2]|0)?0:b)|0}function xP(a){a=a|0;return (f[a+72>>2]|0)-(f[a+68>>2]|0)|0}function yP(a){a=a|0;return a|0}function zP(a){a=a|0;return a|0}function AP(a){a=a|0;return 0}function BP(a){a=a|0;return a|0}function CP(a){a=a|0;return a|0}function DP(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0;j=f[a+60>>2]|0;j=(j|0)==9?6:j;j=(j|0)==8?5:j;if(!d){h=f[a+56>>2]|0;g=f[a+68>>2]|0;e=(f[a+72>>2]|0)-g>>1;if((h|0)<=0){gi(j|0,e|0,5123,g|0);return}d=f[c+828>>2]|0;if(!d){gi(j|0,e|0,5123,g|0);return}else{cl[d&63](j,e,5123,g,h);return}}d=f[a+40>>2]|0;if(d){i=Py(d,f[c+124>>2]|0)|0;e=f[c+140>>2]|0;if(i){if(!(b[i+36>>0]|0)){d=e+100|0;if((f[d>>2]|0)!=(i|0)){Vk[f[(f[i+72>>2]|0)+724>>2]&1023](f[i+20>>2]|0,f[i+16>>2]|0);e=f[i+56>>2]|0;if(!e)g=10;else{Xy(e,i);g=10}}}else{pK(i);d=e+100|0;g=10}if((g|0)==10)f[d>>2]=i;g=f[a+56>>2]|0;h=(f[a+72>>2]|0)-(f[a+68>>2]|0)>>1;e=f[(f[i+40>>2]|0)+((f[a+36>>2]|0)*20|0)+12>>2]|0;if((g|0)<=0){gi(j|0,h|0,5123,e|0);return}d=f[c+828>>2]|0;if(!d){gi(j|0,h|0,5123,e|0);return}else{cl[d&63](j,h,5123,e,g);return}}}else e=f[c+140>>2]|0;d=e+100|0;if(f[d>>2]|0){Vk[f[(f[e+16>>2]|0)+724>>2]&1023](34963,0);f[d>>2]=0}h=f[a+56>>2]|0;g=f[a+68>>2]|0;e=(f[a+72>>2]|0)-g>>1;if((h|0)<=0){gi(j|0,e|0,5123,g|0);return}d=f[c+828>>2]|0;if(!d){gi(j|0,e|0,5123,g|0);return}else{cl[d&63](j,e,5123,g,h);return}}function EP(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[a+68>>2]|0;d=f[a+72>>2]|0;if((c|0)==(d|0))return;al[f[(f[b>>2]|0)+40>>2]&255](b,f[a+60>>2]|0,d-c>>1,c);return}function FP(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[a+68>>2]|0;d=f[a+72>>2]|0;if((c|0)==(d|0))return;al[f[(f[b>>2]|0)+40>>2]&255](b,f[a+60>>2]|0,d-c>>1,c);return}function GP(a,b){a=a|0;b=b|0;return j[(f[a+68>>2]|0)+(b<<1)>>1]|0|0}function HP(a){a=a|0;return (f[a+72>>2]|0)-(f[a+68>>2]|0)>>1|0}function IP(a,b){a=a|0;b=b|0;var c=0;c=f[a+68>>2]|0;a=f[a+72>>2]|0;if((c|0)==(a|0))return;do{d[c>>1]=(j[c>>1]|0)+b;c=c+2|0}while((c|0)!=(a|0));return}function JP(a){a=a|0;switch(f[a+60>>2]|0){case 0:{a=sk[f[(f[a>>2]|0)+216>>2]&2047](a)|0;return a|0}case 1:{a=(sk[f[(f[a>>2]|0)+216>>2]&2047](a)|0)>>>1;return a|0}case 4:{a=((sk[f[(f[a>>2]|0)+216>>2]&2047](a)|0)>>>0)/3|0;return a|0}case 7:{a=(sk[f[(f[a>>2]|0)+216>>2]&2047](a)|0)>>>2;return a|0}case 9:case 14:case 8:case 6:case 5:case 2:case 3:{a=(sk[f[(f[a>>2]|0)+216>>2]&2047](a)|0)!=0&1;return a|0}default:{a=0;return a|0}}return 0}function KP(a){a=a|0;return}function LP(a){a=a|0;return 5123}function MP(a,b){a=a|0;b=b|0;var c=0,e=0,g=0,h=0,i=0;i=u;u=u+16|0;g=i;d[g>>1]=0;h=a+68|0;a=a+72|0;c=f[h>>2]|0;e=(f[a>>2]|0)-c>>1;if(e>>>0<b>>>0){WP(h,b-e|0,g);u=i;return}if(e>>>0<=b>>>0){u=i;return}f[a>>2]=c+(b<<1);u=i;return}function NP(a,b){a=a|0;b=b|0;VP(a+68|0,b);return}function OP(a,b,c){a=a|0;b=b|0;c=c|0;d[(f[a+68>>2]|0)+(b<<1)>>1]=c;return}function PP(a,b){a=a|0;b=b|0;return j[(f[a+68>>2]|0)+(b<<1)>>1]|0|0}function QP(a,b){a=a|0;b=b|0;var c=0,e=0,g=0,h=0;h=u;u=u+16|0;g=h;b=b&65535;d[g>>1]=b;c=a+72|0;e=f[c>>2]|0;if((e|0)==(f[a+76>>2]|0)){UP(a+68|0,g);u=h;return}else{d[e>>1]=b;f[c>>2]=e+2;u=h;return}}function RP(a){a=a|0;var b=0;a=a+-64|0;f[a>>2]=96716;b=a+64|0;f[b>>2]=96980;Fx(a,0);f[b>>2]=96700;b=f[a+68>>2]|0;if(!b){xx(a);return}f[a+72>>2]=b;NDb(b);xx(a);return}function SP(a){a=a|0;qP(a+-64|0);return}function TP(a){a=a|0;var b=0;f[a>>2]=96700;b=f[a+4>>2]|0;if(!b)return;f[a+8>>2]=b;NDb(b);return}function UP(a,b){a=a|0;b=b|0;var c=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=a+4|0;k=f[a>>2]|0;l=(f[j>>2]|0)-k|0;h=l>>1;c=h+1|0;if((l|0)<-2)KEb(a);m=a+8|0;i=(f[m>>2]|0)-k|0;i=i>>1>>>0<1073741823?(i>>>0<c>>>0?c:i):2147483647;do if(i)if((i|0)<0){m=mb(8)|0;RDb(m,238482);f[m>>2]=144484;qb(m|0,84192,1464)}else{g=LDb(i<<1)|0;e=g;break}else{e=0;g=0}while(0);c=e+(h<<1)|0;d[c>>1]=d[b>>1]|0;if((l|0)>0)gGb(g|0,k|0,l|0)|0;f[a>>2]=e;f[j>>2]=c+2;f[m>>2]=e+(i<<1);if(!k)return;NDb(k);return}function VP(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;e=a+8|0;g=f[a>>2]|0;if((f[e>>2]|0)-g>>1>>>0>=b>>>0)return;h=a+4|0;if((b|0)<0){h=mb(8)|0;RDb(h,238482);f[h>>2]=144484;qb(h|0,84192,1464)}c=(f[h>>2]|0)-g|0;d=LDb(b<<1)|0;if((c|0)>0)gGb(d|0,g|0,c|0)|0;f[a>>2]=d;f[h>>2]=d+(c>>1<<1);f[e>>2]=d+(b<<1);if(!g)return;NDb(g);return}function WP(a,b,c){a=a|0;b=b|0;c=c|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=a+8|0;g=f[n>>2]|0;o=a+4|0;e=f[o>>2]|0;h=e;if(g-e>>1>>>0>=b>>>0){e=b;g=h;while(1){d[g>>1]=d[c>>1]|0;e=e+-1|0;if(!e)break;else g=g+2|0}f[o>>2]=h+(b<<1);return}m=f[a>>2]|0;l=e-m|0;h=l>>1;e=h+b|0;if((e|0)<0)KEb(a);k=g-m|0;e=k>>1>>>0<1073741823?(k>>>0<e>>>0?e:k):2147483647;do if(e)if((e|0)<0){o=mb(8)|0;RDb(o,238482);f[o>>2]=144484;qb(o|0,84192,1464)}else{k=LDb(e<<1)|0;j=k;break}else{j=0;k=0}while(0);i=j+(h<<1)|0;g=j+(e<<1)|0;e=b;h=i;while(1){d[h>>1]=d[c>>1]|0;e=e+-1|0;if(!e)break;else h=h+2|0}if((l|0)>0)gGb(k|0,m|0,l|0)|0;f[a>>2]=j;f[o>>2]=i+(b<<1);f[n>>2]=g;if(!m)return;NDb(m);return}function XP(a){a=a|0;var b=0;f[a>>2]=96700;b=f[a+4>>2]|0;if(!b){NDb(a);return}f[a+8>>2]=b;NDb(b);NDb(a);return}function YP(a){a=a|0;Ni()}function ZP(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,59464,0)|0)!=0;return b|0}function _P(a){a=a|0;return 241076}function $P(a){a=a|0;return 184737}function aQ(a){a=a|0;return 0}function bQ(a){a=a|0;return 0}function cQ(a){a=a|0;return 0}function dQ(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;k=a+8|0;g=f[k>>2]|0;l=a+4|0;d=f[l>>2]|0;if(((g-d|0)/12|0)>>>0>=b>>>0){do{f[d>>2]=f[c>>2];f[d+4>>2]=f[c+4>>2];f[d+8>>2]=f[c+8>>2];d=(f[l>>2]|0)+12|0;f[l>>2]=d;b=b+-1|0}while((b|0)!=0);return}e=f[a>>2]|0;h=(d-e|0)/12|0;j=h+b|0;if(j>>>0>357913941)KEb(a);i=(g-e|0)/12|0;d=i<<1;d=i>>>0<178956970?(d>>>0<j>>>0?j:d):357913941;do if(d)if(d>>>0>357913941){l=mb(8)|0;RDb(l,238482);f[l>>2]=144484;qb(l|0,84192,1464)}else{i=LDb(d*12|0)|0;break}else i=0;while(0);g=i+(h*12|0)|0;h=i+(d*12|0)|0;d=g;while(1){f[d>>2]=f[c>>2];f[d+4>>2]=f[c+4>>2];f[d+8>>2]=f[c+8>>2];b=b+-1|0;if(!b)break;else d=d+12|0}b=f[a>>2]|0;e=(f[l>>2]|0)-b|0;d=g+(((e|0)/-12|0)*12|0)|0;if((e|0)>0)gGb(d|0,b|0,e|0)|0;f[a>>2]=d;f[l>>2]=i+(j*12|0);f[k>>2]=h;if(!b)return;NDb(b);return}function eQ(a){a=a|0;var b=0;f[a+72>>2]=97976;b=f[a+76>>2]|0;if(!b){xx(a);return}f[a+80>>2]=b;NDb(b);xx(a);return}function fQ(a){a=a|0;var b=0;f[a+72>>2]=97976;b=f[a+76>>2]|0;if(b|0){f[a+80>>2]=b;NDb(b)}xx(a);NDb(a);return}function gQ(a){a=a|0;var c=0;a=LDb(88)|0;CCa(a,1);c=a+12|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[a+24>>2]=2;c=a+28|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;f[c+16>>2]=0;f[c+20>>2]=0;f[a+52>>2]=28;f[a+56>>2]=3;f[a+60>>2]=5126;f[a+64>>2]=-1;b[a+68>>0]=0;b[a+69>>0]=0;f[a+76>>2]=0;f[a+80>>2]=0;f[a+84>>2]=0;f[a>>2]=97720;f[a+72>>2]=97960;return a|0}function hQ(a,b){a=a|0;b=b|0;var c=0;c=LDb(88)|0;zQ(c,a,b);return c|0}function iQ(a){a=a|0;var b=0;b=f[a+76>>2]|0;return ((b|0)==(f[a+80>>2]|0)?0:b)|0}function jQ(a){a=a|0;return (f[a+80>>2]|0)-(f[a+76>>2]|0)|0}function kQ(a,b){a=a|0;b=b|0;Vk[f[(f[b>>2]|0)+120>>2]&1023](b,a);return}function lQ(a,b){a=a|0;b=b|0;Vk[f[(f[b>>2]|0)+120>>2]&1023](b,a);return}function mQ(a,b,c){a=a|0;b=b|0;c=c|0;Vk[f[(f[c>>2]|0)+116>>2]&1023](c,(f[a+76>>2]|0)+(b*12|0)|0);return}function nQ(a,b,c){a=a|0;b=b|0;c=c|0;Vk[f[(f[c>>2]|0)+116>>2]&1023](c,(f[a+76>>2]|0)+(b*12|0)|0);return}function oQ(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0;a=f[a+76>>2]|0;d=+n[a+(b*12|0)>>2];e=+n[a+(c*12|0)>>2];if(d<e){c=-1;return c|0}if(!(d>e)){d=+n[a+(b*12|0)+4>>2];e=+n[a+(c*12|0)+4>>2];if(d<e){c=-1;return c|0}if(!(d>e)?+n[a+(b*12|0)+8>>2]<+n[a+(c*12|0)+8>>2]:0){c=-1;return c|0}d=+n[a+(c*12|0)+4>>2];e=+n[a+(b*12|0)+4>>2];if(!(d<e)){if(d>e){c=0;return c|0}if(!(+n[a+(c*12|0)+8>>2]<+n[a+(b*12|0)+8>>2])){c=0;return c|0}}}c=1;return c|0}function pQ(a){a=a|0;return 12}function qQ(a,b){a=a|0;b=b|0;var c=0;c=f[a+76>>2]|0;return ((c|0)==(f[a+80>>2]|0)?0:c+(b*12|0)|0)|0}function rQ(a){a=a|0;return ((f[a+80>>2]|0)-(f[a+76>>2]|0)|0)/12|0|0}function sQ(a,b){a=a|0;b=b|0;lN(a+76|0,b);return}function tQ(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;h=u;u=u+16|0;e=h;n[e>>2]=0.0;n[e+4>>2]=0.0;n[e+8>>2]=0.0;g=a+76|0;c=a+80|0;d=f[g>>2]|0;a=((f[c>>2]|0)-d|0)/12|0;if(a>>>0<b>>>0){dQ(g,b-a|0,e);u=h;return}if(a>>>0<=b>>>0){u=h;return}f[c>>2]=d+(b*12|0);u=h;return}function uQ(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=u;u=u+16|0;g=o;f[g>>2]=97976;h=g+4|0;i=a+76|0;f[h>>2]=0;j=g+8|0;f[j>>2]=0;k=g+12|0;f[k>>2]=0;l=a+80|0;m=f[l>>2]|0;n=f[i>>2]|0;e=m-n|0;b=(e|0)/12|0;if(e){if(b>>>0>357913941)KEb(h);c=LDb(e)|0;f[j>>2]=c;f[h>>2]=c;b=c+(b*12|0)|0;f[k>>2]=b;d=c;if((e|0)>0){gGb(c|0,n|0,e|0)|0;c=c+(((e>>>0)/12|0)*12|0)|0;f[j>>2]=c;e=d}else{e=d;c=d}}else{e=0;c=0;b=0}f[h>>2]=n;f[i>>2]=e;f[j>>2]=m;f[l>>2]=c;m=a+84|0;f[k>>2]=f[m>>2];f[m>>2]=b;f[g>>2]=97976;if(!n){u=o;return}f[j>>2]=n;NDb(n);u=o;return}function vQ(a){a=a|0;var b=0;a=a+-72|0;f[a+72>>2]=97976;b=f[a+76>>2]|0;if(!b){xx(a);return}f[a+80>>2]=b;NDb(b);xx(a);return}function wQ(a){a=a|0;var b=0;a=a+-72|0;f[a+72>>2]=97976;b=f[a+76>>2]|0;if(b|0){f[a+80>>2]=b;NDb(b)}xx(a);NDb(a);return}function xQ(a){a=a|0;var b=0;f[a>>2]=97976;b=f[a+4>>2]|0;if(!b)return;f[a+8>>2]=b;NDb(b);return}function yQ(a){a=a|0;var b=0;f[a>>2]=97976;b=f[a+4>>2]|0;if(!b){NDb(a);return}f[a+8>>2]=b;NDb(b);NDb(a);return}function zQ(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0;nw(a,c,d);f[a>>2]=88884;f[a+32>>2]=0;f[a+36>>2]=0;f[a+40>>2]=0;d=f[c+44>>2]|0;f[a+44>>2]=d;if(d|0){l=d+(f[(f[d>>2]|0)+-12>>2]|0)+8|0;f[l>>2]=(f[l>>2]|0)+1}f[a+48>>2]=0;f[a>>2]=97480;f[a+52>>2]=f[c+52>>2];f[a+56>>2]=f[c+56>>2];f[a+60>>2]=f[c+60>>2];f[a+64>>2]=f[c+64>>2];b[a+68>>0]=b[c+68>>0]|0;b[a+69>>0]=b[c+69>>0]|0;k=a+72|0;f[k>>2]=97976;e=a+76|0;g=c+76|0;f[e>>2]=0;l=a+80|0;f[l>>2]=0;h=a+84|0;f[h>>2]=0;i=c+80|0;d=(f[i>>2]|0)-(f[g>>2]|0)|0;c=(d|0)/12|0;if(!d){f[a>>2]=97720;f[k>>2]=97960;return}if(c>>>0>357913941)KEb(e);j=LDb(d)|0;f[l>>2]=j;f[e>>2]=j;f[h>>2]=j+(c*12|0);c=f[g>>2]|0;d=(f[i>>2]|0)-c|0;if((d|0)<=0){f[a>>2]=97720;f[k>>2]=97960;return}gGb(j|0,c|0,d|0)|0;f[l>>2]=j+(((d>>>0)/12|0)*12|0);f[a>>2]=97720;f[k>>2]=97960;return}function AQ(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;f[a>>2]=97992;CQ(a+44|0,f[a+48>>2]|0);g=a+28|0;b=a+36|0;if(f[b>>2]|0?(c=f[a+32>>2]|0,d=(f[g>>2]|0)+4|0,h=f[c>>2]|0,f[h+4>>2]=f[d>>2],f[f[d>>2]>>2]=h,f[b>>2]=0,(c|0)!=(g|0)):0)do{b=c;c=f[c+4>>2]|0;d=f[b+8>>2]|0;if(d|0?(e=d+(f[(f[d>>2]|0)+-12>>2]|0)|0,d=e+8|0,h=f[d>>2]|0,f[d>>2]=h-1,(h|0)==1):0)X4(e,1,1);NDb(b)}while((c|0)!=(g|0));c=a+24|0;b=f[c>>2]|0;if(!b){f[c>>2]=0;h=a+12|0;d8(h);V4(a);return}b=b+(f[(f[b>>2]|0)+-12>>2]|0)|0;g=b+8|0;h=f[g>>2]|0;f[g>>2]=h-1;if((h|0)!=1){f[c>>2]=0;h=a+12|0;d8(h);V4(a);return}X4(b,1,1);f[c>>2]=0;h=a+12|0;d8(h);V4(a);return}function BQ(a){a=a|0;AQ(a);NDb(a);return}function CQ(a,b){a=a|0;b=b|0;if(!b)return;else{CQ(a,f[b>>2]|0);CQ(a,f[b+4>>2]|0);NDb(b);return}}function DQ(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0;h=a+4|0;d=f[h>>2]|0;e=f[a>>2]|0;g=d-e>>6;if(g>>>0<c>>>0){EQ(a,c-g|0);return}if(g>>>0<=c>>>0)return;e=e+(c<<6)|0;if((e|0)!=(d|0))do{a=d+-8|0;d=d+-64|0;c=f[a>>2]|0;if(c|0?(i=c+8|0,g=f[i>>2]|0,f[i>>2]=g-1,(g|0)==1):0)X4(c,1,1);f[a>>2]=0;if((b[d+11>>0]|0)<0)NDb(f[d>>2]|0)}while((d|0)!=(e|0));f[h>>2]=e;return}function EQ(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=a+8|0;g=f[l>>2]|0;m=a+4|0;d=f[m>>2]|0;if(g-d>>6>>>0>=c>>>0){do{f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;f[d+12>>2]=0;n[d+16>>2]=1.0;p[d+24>>3]=0.0;f[d+32>>2]=0;l=d+40|0;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;f[l+12>>2]=0;f[l+16>>2]=0;d=(f[m>>2]|0)+64|0;f[m>>2]=d;c=c+-1|0}while((c|0)!=0);return}e=f[a>>2]|0;h=d-e>>6;j=h+c|0;if(j>>>0>67108863)KEb(a);k=g-e|0;d=k>>5;d=k>>6>>>0<33554431?(d>>>0<j>>>0?j:d):67108863;do if(d)if(d>>>0>67108863){m=mb(8)|0;RDb(m,238482);f[m>>2]=144484;qb(m|0,84192,1464)}else{i=LDb(d<<6)|0;break}else i=0;while(0);g=i+(h<<6)|0;e=i+(d<<6)|0;d=g;while(1){f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;f[d+12>>2]=0;n[d+16>>2]=1.0;p[d+24>>3]=0.0;f[d+32>>2]=0;k=d+40|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;f[k+12>>2]=0;f[k+16>>2]=0;c=c+-1|0;if(!c)break;else d=d+64|0}c=g;k=e;j=i+(j<<6)|0;i=f[a>>2]|0;d=f[m>>2]|0;if((d|0)==(i|0)){h=i;d=i}else{while(1){e=d;d=d+-64|0;VDb(g+-64|0,d);f[g+-52>>2]=f[e+-52>>2];f[g+-48>>2]=f[e+-48>>2];p[g+-40>>3]=+p[e+-40>>3];f[g+-32>>2]=f[e+-32>>2];p[g+-24>>3]=+p[e+-24>>3];f[g+-16>>2]=f[e+-16>>2];f[g+-12>>2]=f[e+-12>>2];e=f[e+-8>>2]|0;f[g+-8>>2]=e;if(e|0){h=e+8|0;f[h>>2]=(f[h>>2]|0)+1}e=c+-64|0;if((d|0)==(i|0))break;else{c=e;g=e}}c=e;h=f[a>>2]|0;d=f[m>>2]|0}f[a>>2]=c;f[m>>2]=j;f[l>>2]=k;g=h;if((d|0)!=(g|0))do{c=d+-8|0;d=d+-64|0;e=f[c>>2]|0;if(e|0?(l=e+8|0,m=f[l>>2]|0,f[l>>2]=m-1,(m|0)==1):0)X4(e,1,1);f[c>>2]=0;if((b[d+11>>0]|0)<0)NDb(f[d>>2]|0)}while((d|0)!=(g|0));if(!h)return;NDb(h);return}function FQ(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;i=b[c+11>>0]|0;e=i<<24>>24<0;i=e?f[c+4>>2]|0:i&255;h=b[d+11>>0]|0;g=h<<24>>24<0;h=g?f[d+4>>2]|0:h&255;e=e?f[c>>2]|0:c;c=h+i|0;if(c>>>0>4294967279)TDb(a);if(c>>>0<11){b[a+11>>0]=i;c=a}else{j=c+16&-16;c=LDb(j)|0;f[a>>2]=c;f[a+8>>2]=j|-2147483648;f[a+4>>2]=i}if(!i){j=c+i|0;b[j>>0]=0;j=f[d>>2]|0;j=g?j:d;iEb(a,j,h)|0;return}gGb(c|0,e|0,i|0)|0;j=c+i|0;b[j>>0]=0;j=f[d>>2]|0;j=g?j:d;iEb(a,j,h)|0;return}function GQ(a){a=a|0;rw(a);return}function HQ(a){a=a|0;rw(a);NDb(a);return}function IQ(a){a=a|0;var c=0,d=0,e=0;a=LDb(184)|0;gDa(a);f[a>>2]=98012;c=a+56|0;d=368;e=c+128|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));return a|0}function JQ(a,c){a=a|0;c=c|0;var d=0,e=0;e=LDb(184)|0;mw(e,a,c);f[e>>2]=98012;d=e+56|0;c=a+56|0;a=d+128|0;do{b[d>>0]=b[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(a|0));return e|0}function KQ(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,61680,0)|0)!=0;return b|0}function LQ(a){a=a|0;return 241076}function MQ(a){a=a|0;return 184845}function NQ(a){a=a|0;return 14}function OQ(a,c){a=a|0;c=c|0;var d=0,e=0,g=0;if((a|0)==(c|0)){a=0;return a|0}if(!a)NFb();d=f[(f[(f[a>>2]|0)+-4>>2]|0)+4>>2]|0;e=f[(f[(f[c>>2]|0)+-4>>2]|0)+4>>2]|0;if(d>>>0<e>>>0){a=-1;return a|0}if((d|0)!=(e|0)){a=1;return a|0}d=c+56|0;c=0;while(1){e=b[a+56+c>>0]|0;g=b[d+c>>0]|0;if((e&255)<(g&255)){c=-1;d=10;break}c=c+1|0;if((e&255)>(g&255)){c=1;d=10;break}if(c>>>0>=128){c=0;d=10;break}}if((d|0)==10)return c|0;return 0}function PQ(a,b){a=a|0;b=b|0;Vk[f[(f[b>>2]|0)+8>>2]&1023](b,2882);return 1}function QQ(a,c){a=a|0;c=c|0;var d=0,e=0;c=u;u=u+16|0;a=c;if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=2){u=c;return}d=Nv(Mv(3)|0,184789,55)|0;Ktb(a,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);e=Bvb(a,295164)|0;e=wk[f[(f[e>>2]|0)+28>>2]&1023](e,10)|0;Cvb(a);rub(d,e)|0;Rtb(d)|0;u=c;return}function RQ(a){a=a|0;var b=0;f[a>>2]=98224;b=a+64|0;f[b>>2]=98488;Fx(a,0);f[b>>2]=98504;b=f[a+68>>2]|0;if(!b){xx(a);return}f[a+72>>2]=b;NDb(b);xx(a);return}function SQ(a){a=a|0;var b=0;f[a>>2]=98224;b=a+64|0;f[b>>2]=98488;Fx(a,0);f[b>>2]=98504;b=f[a+68>>2]|0;if(!b){xx(a);NDb(a);return}f[a+72>>2]=b;NDb(b);xx(a);NDb(a);return}function TQ(a){a=a|0;var b=0;a=LDb(80)|0;CCa(a,1);b=a+12|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[a+24>>2]=2;b=a+28|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[b+12>>2]=0;f[b+16>>2]=0;f[b+20>>2]=0;f[a+52>>2]=3;f[a+56>>2]=0;f[a+60>>2]=0;f[a+68>>2]=0;f[a+72>>2]=0;f[a+76>>2]=0;f[a>>2]=98224;f[a+64>>2]=98488;return a|0}function UQ(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0;i=LDb(80)|0;nw(i,a,b);f[i>>2]=88884;f[i+32>>2]=0;f[i+36>>2]=0;f[i+40>>2]=0;b=f[a+44>>2]|0;f[i+44>>2]=b;if(b|0){h=b+(f[(f[b>>2]|0)+-12>>2]|0)+8|0;f[h>>2]=(f[h>>2]|0)+1}f[i+48>>2]=0;f[i+52>>2]=f[a+52>>2];f[i+56>>2]=f[a+56>>2];f[i+60>>2]=f[a+60>>2];f[i>>2]=96436;c=i+64|0;f[c>>2]=98504;d=i+68|0;f[d>>2]=0;e=i+72|0;f[e>>2]=0;g=i+76|0;f[g>>2]=0;h=f[a+68>>2]|0;b=(f[a+72>>2]|0)-h|0;if(!b){f[i>>2]=98224;f[c>>2]=98488;return i|0}if((b|0)<0)KEb(d);j=LDb(b)|0;f[e>>2]=j;f[d>>2]=j;a=j+b|0;f[g>>2]=a;gGb(j|0,h|0,b|0)|0;f[e>>2]=a;f[i>>2]=98224;f[c>>2]=98488;return i|0}function VQ(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,61696,0)|0)!=0;return b|0}function WQ(a){a=a|0;return 241076}function XQ(a){a=a|0;return 226099}function YQ(a){a=a|0;var b=0;b=f[a+68>>2]|0;return ((b|0)==(f[a+72>>2]|0)?0:b)|0}function ZQ(a){a=a|0;return (f[a+72>>2]|0)-(f[a+68>>2]|0)|0}function _Q(a){a=a|0;return 0}function $Q(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0;j=f[a+60>>2]|0;j=(j|0)==9?6:j;j=(j|0)==8?5:j;if(!d){h=f[a+56>>2]|0;g=f[a+68>>2]|0;e=(f[a+72>>2]|0)-g|0;if((h|0)<=0){gi(j|0,e|0,5121,g|0);return}d=f[c+828>>2]|0;if(!d){gi(j|0,e|0,5121,g|0);return}else{cl[d&63](j,e,5121,g,h);return}}d=f[a+40>>2]|0;if(d){i=Py(d,f[c+124>>2]|0)|0;e=f[c+140>>2]|0;if(i){if(!(b[i+36>>0]|0)){d=e+100|0;if((f[d>>2]|0)!=(i|0)){Vk[f[(f[i+72>>2]|0)+724>>2]&1023](f[i+20>>2]|0,f[i+16>>2]|0);e=f[i+56>>2]|0;if(!e)g=10;else{Xy(e,i);g=10}}}else{pK(i);d=e+100|0;g=10}if((g|0)==10)f[d>>2]=i;g=f[a+56>>2]|0;h=(f[a+72>>2]|0)-(f[a+68>>2]|0)|0;e=f[(f[i+40>>2]|0)+((f[a+36>>2]|0)*20|0)+12>>2]|0;if((g|0)<=0){gi(j|0,h|0,5121,e|0);return}d=f[c+828>>2]|0;if(!d){gi(j|0,h|0,5121,e|0);return}else{cl[d&63](j,h,5121,e,g);return}}}else e=f[c+140>>2]|0;d=e+100|0;if(f[d>>2]|0){Vk[f[(f[e+16>>2]|0)+724>>2]&1023](34963,0);f[d>>2]=0}h=f[a+56>>2]|0;g=f[a+68>>2]|0;e=(f[a+72>>2]|0)-g|0;if((h|0)<=0){gi(j|0,e|0,5121,g|0);return}d=f[c+828>>2]|0;if(!d){gi(j|0,e|0,5121,g|0);return}else{cl[d&63](j,e,5121,g,h);return}}function aR(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[a+68>>2]|0;d=f[a+72>>2]|0;if((c|0)==(d|0))return;al[f[(f[b>>2]|0)+36>>2]&255](b,f[a+60>>2]|0,d-c|0,c);return}function bR(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[a+68>>2]|0;d=f[a+72>>2]|0;if((c|0)==(d|0))return;al[f[(f[b>>2]|0)+36>>2]&255](b,f[a+60>>2]|0,d-c|0,c);return}function cR(a,b){a=a|0;b=b|0;return h[(f[a+68>>2]|0)+b>>0]|0|0}function dR(a){a=a|0;return (f[a+72>>2]|0)-(f[a+68>>2]|0)|0}function eR(a,c){a=a|0;c=c|0;var d=0;d=f[a+68>>2]|0;a=a+72|0;if((d|0)==(f[a>>2]|0))return;do{b[d>>0]=(h[d>>0]|0)+c;d=d+1|0}while((d|0)!=(f[a>>2]|0));return}function fR(a){a=a|0;return 5121}function gR(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0;i=u;u=u+16|0;g=i;b[g>>0]=0;h=a+68|0;a=a+72|0;d=f[h>>2]|0;e=(f[a>>2]|0)-d|0;if(e>>>0<c>>>0){pR(h,c-e|0,g);u=i;return}if(e>>>0<=c>>>0){u=i;return}f[a>>2]=d+c;u=i;return}function hR(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0;e=a+68|0;g=a+76|0;h=f[e>>2]|0;i=h;if(((f[g>>2]|0)-h|0)>>>0>=b>>>0)return;d=a+72|0;a=(f[d>>2]|0)-h|0;c=LDb(b)|0;if((a|0)>0)gGb(c|0,i|0,a|0)|0;f[e>>2]=c;f[d>>2]=c+a;f[g>>2]=c+b;if(!h)return;NDb(i);return}function iR(a,c,d){a=a|0;c=c|0;d=d|0;b[(f[a+68>>2]|0)+c>>0]=d;return}function jR(a,b){a=a|0;b=b|0;return h[(f[a+68>>2]|0)+b>>0]|0|0}function kR(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;j=c&255;k=a+68|0;l=a+72|0;c=f[l>>2]|0;i=a+76|0;a=f[i>>2]|0;if((c|0)!=(a|0)){b[c>>0]=j;f[l>>2]=(f[l>>2]|0)+1;return}h=f[k>>2]|0;e=c-h|0;c=e+1|0;g=h;if((c|0)<0)KEb(k);a=a-h|0;d=a<<1;d=a>>>0<1073741823?(d>>>0<c>>>0?c:d):2147483647;if(!d)a=0;else a=LDb(d)|0;c=a+e|0;b[c>>0]=j;if((e|0)>0)gGb(a|0,g|0,e|0)|0;f[k>>2]=a;f[l>>2]=c+1;f[i>>2]=a+d;if(!h)return;NDb(g);return}function lR(a){a=a|0;var b=0;a=a+-64|0;f[a>>2]=98224;b=a+64|0;f[b>>2]=98488;Fx(a,0);f[b>>2]=98504;b=f[a+68>>2]|0;if(!b){xx(a);return}f[a+72>>2]=b;NDb(b);xx(a);return}function mR(a){a=a|0;SQ(a+-64|0);return}function nR(a){a=a|0;var b=0;f[a>>2]=98504;b=f[a+4>>2]|0;if(!b)return;f[a+8>>2]=b;NDb(b);return}function oR(a){a=a|0;var b=0;f[a>>2]=98504;b=f[a+4>>2]|0;if(!b){NDb(a);return}f[a+8>>2]=b;NDb(b);NDb(a);return}function pR(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=a+8|0;h=f[m>>2]|0;n=a+4|0;e=f[n>>2]|0;if((h-e|0)>>>0>=c>>>0){do{b[e>>0]=b[d>>0]|0;e=(f[n>>2]|0)+1|0;f[n>>2]=e;c=c+-1|0}while((c|0)!=0);return}j=f[a>>2]|0;i=e-j|0;g=i+c|0;if((g|0)<0)KEb(a);k=h-j|0;l=k<<1;g=k>>>0<1073741823?(l>>>0<g>>>0?g:l):2147483647;if(!g)l=0;else l=LDb(g)|0;i=l+i|0;k=l+g|0;h=e+c-j|0;e=i;while(1){b[e>>0]=b[d>>0]|0;c=c+-1|0;if(!c)break;else e=e+1|0}c=f[a>>2]|0;g=(f[n>>2]|0)-c|0;e=i+(0-g)|0;if((g|0)>0)gGb(e|0,c|0,g|0)|0;f[a>>2]=e;f[n>>2]=l+h;f[m>>2]=k;if(!c)return;NDb(c);return}function qR(a){a=a|0;var b=0;f[a>>2]=98520;b=a+64|0;f[b>>2]=98784;Fx(a,0);f[b>>2]=98800;b=f[a+68>>2]|0;if(!b){xx(a);return}f[a+72>>2]=b;NDb(b);xx(a);return}function rR(a){a=a|0;var b=0;f[a>>2]=98520;b=a+64|0;f[b>>2]=98784;Fx(a,0);f[b>>2]=98800;b=f[a+68>>2]|0;if(!b){xx(a);NDb(a);return}f[a+72>>2]=b;NDb(b);xx(a);NDb(a);return}function sR(a){a=a|0;var b=0;a=LDb(80)|0;CCa(a,1);b=a+12|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[a+24>>2]=2;b=a+28|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[b+12>>2]=0;f[b+16>>2]=0;f[b+20>>2]=0;f[a+52>>2]=5;f[a+56>>2]=0;f[a+60>>2]=0;f[a+68>>2]=0;f[a+72>>2]=0;f[a+76>>2]=0;f[a>>2]=98520;f[a+64>>2]=98784;return a|0}function tR(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0;j=LDb(80)|0;nw(j,a,b);f[j>>2]=88884;f[j+32>>2]=0;f[j+36>>2]=0;f[j+40>>2]=0;b=f[a+44>>2]|0;f[j+44>>2]=b;if(b|0){i=b+(f[(f[b>>2]|0)+-12>>2]|0)+8|0;f[i>>2]=(f[i>>2]|0)+1}f[j+48>>2]=0;f[j+52>>2]=f[a+52>>2];f[j+56>>2]=f[a+56>>2];f[j+60>>2]=f[a+60>>2];f[j>>2]=96436;d=j+64|0;f[d>>2]=98800;e=j+68|0;f[e>>2]=0;g=j+72|0;f[g>>2]=0;h=j+76|0;f[h>>2]=0;i=f[a+68>>2]|0;b=(f[a+72>>2]|0)-i|0;a=b>>2;if(!b){f[j>>2]=98520;f[d>>2]=98784;return j|0}if(a>>>0>1073741823)KEb(e);c=LDb(b)|0;f[g>>2]=c;f[e>>2]=c;f[h>>2]=c+(a<<2);if((b|0)<=0){f[j>>2]=98520;f[d>>2]=98784;return j|0}gGb(c|0,i|0,b|0)|0;f[g>>2]=c+(b>>>2<<2);f[j>>2]=98520;f[d>>2]=98784;return j|0}function uR(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,61736,0)|0)!=0;return b|0}function vR(a){a=a|0;return 241076}function wR(a){a=a|0;return 226136}function xR(a){a=a|0;var b=0;b=f[a+68>>2]|0;return ((b|0)==(f[a+72>>2]|0)?0:b)|0}function yR(a){a=a|0;return (f[a+72>>2]|0)-(f[a+68>>2]|0)|0}function zR(a){a=a|0;return 0}function AR(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0;j=f[a+60>>2]|0;j=(j|0)==9?6:j;j=(j|0)==8?5:j;if(!d){h=f[a+56>>2]|0;g=f[a+68>>2]|0;e=(f[a+72>>2]|0)-g>>2;if((h|0)<=0){gi(j|0,e|0,5125,g|0);return}d=f[c+828>>2]|0;if(!d){gi(j|0,e|0,5125,g|0);return}else{cl[d&63](j,e,5125,g,h);return}}d=f[a+40>>2]|0;if(d){i=Py(d,f[c+124>>2]|0)|0;e=f[c+140>>2]|0;if(i){if(!(b[i+36>>0]|0)){d=e+100|0;if((f[d>>2]|0)!=(i|0)){Vk[f[(f[i+72>>2]|0)+724>>2]&1023](f[i+20>>2]|0,f[i+16>>2]|0);e=f[i+56>>2]|0;if(!e)g=10;else{Xy(e,i);g=10}}}else{pK(i);d=e+100|0;g=10}if((g|0)==10)f[d>>2]=i;g=f[a+56>>2]|0;h=(f[a+72>>2]|0)-(f[a+68>>2]|0)>>2;e=f[(f[i+40>>2]|0)+((f[a+36>>2]|0)*20|0)+12>>2]|0;if((g|0)<=0){gi(j|0,h|0,5125,e|0);return}d=f[c+828>>2]|0;if(!d){gi(j|0,h|0,5125,e|0);return}else{cl[d&63](j,h,5125,e,g);return}}}else e=f[c+140>>2]|0;d=e+100|0;if(f[d>>2]|0){Vk[f[(f[e+16>>2]|0)+724>>2]&1023](34963,0);f[d>>2]=0}h=f[a+56>>2]|0;g=f[a+68>>2]|0;e=(f[a+72>>2]|0)-g>>2;if((h|0)<=0){gi(j|0,e|0,5125,g|0);return}d=f[c+828>>2]|0;if(!d){gi(j|0,e|0,5125,g|0);return}else{cl[d&63](j,e,5125,g,h);return}}function BR(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[a+68>>2]|0;d=f[a+72>>2]|0;if((c|0)==(d|0))return;al[f[(f[b>>2]|0)+44>>2]&255](b,f[a+60>>2]|0,d-c>>2,c);return}function CR(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[a+68>>2]|0;d=f[a+72>>2]|0;if((c|0)==(d|0))return;al[f[(f[b>>2]|0)+44>>2]&255](b,f[a+60>>2]|0,d-c>>2,c);return}function DR(a,b){a=a|0;b=b|0;return f[(f[a+68>>2]|0)+(b<<2)>>2]|0}function ER(a){a=a|0;return (f[a+72>>2]|0)-(f[a+68>>2]|0)>>2|0}function FR(a,b){a=a|0;b=b|0;var c=0;c=f[a+68>>2]|0;a=f[a+72>>2]|0;if((c|0)==(a|0))return;do{f[c>>2]=(f[c>>2]|0)+b;c=c+4|0}while((c|0)!=(a|0));return}function GR(a){a=a|0;return 5125}function HR(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;h=u;u=u+16|0;e=h;f[e>>2]=0;g=a+68|0;a=a+72|0;c=f[g>>2]|0;d=(f[a>>2]|0)-c>>2;if(d>>>0<b>>>0){Cy(g,b-d|0,e);u=h;return}if(d>>>0<=b>>>0){u=h;return}f[a>>2]=c+(b<<2);u=h;return}function IR(a,b){a=a|0;b=b|0;kN(a+68|0,b);return}function JR(a,b,c){a=a|0;b=b|0;c=c|0;f[(f[a+68>>2]|0)+(b<<2)>>2]=c;return}function KR(a,b){a=a|0;b=b|0;return f[(f[a+68>>2]|0)+(b<<2)>>2]|0}function LR(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0;g=u;u=u+16|0;c=g;f[c>>2]=b;d=a+72|0;e=f[d>>2]|0;if((e|0)==(f[a+76>>2]|0)){JD(a+68|0,c);u=g;return}else{f[e>>2]=b;f[d>>2]=e+4;u=g;return}}function MR(a){a=a|0;var b=0;a=a+-64|0;f[a>>2]=98520;b=a+64|0;f[b>>2]=98784;Fx(a,0);f[b>>2]=98800;b=f[a+68>>2]|0;if(!b){xx(a);return}f[a+72>>2]=b;NDb(b);xx(a);return}function NR(a){a=a|0;rR(a+-64|0);return}function OR(a){a=a|0;var b=0;f[a>>2]=98800;b=f[a+4>>2]|0;if(!b)return;f[a+8>>2]=b;NDb(b);return}function PR(a){a=a|0;var b=0;f[a>>2]=98800;b=f[a+4>>2]|0;if(!b){NDb(a);return}f[a+8>>2]=b;NDb(b);NDb(a);return}function QR(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;c=f[a+28>>2]|0;if(c|0)Vk[f[f[c>>2]>>2]&1023](c,b);h=a+104|0;g=a+108|0;a=f[g>>2]|0;c=f[h>>2]|0;if((a|0)==(c|0))return;e=0;d=a;while(1){a=f[c+(e<<2)>>2]|0;if(!a)a=d;else{Vk[f[f[a>>2]>>2]&1023](a,b);c=f[h>>2]|0;a=f[g>>2]|0}e=e+1|0;if(e>>>0>=a-c>>2>>>0)break;else d=a}return}function RR(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0;f[a>>2]=98816;h=a+104|0;i=a+108|0;c=f[h>>2]|0;if((f[i>>2]|0)!=(c|0)){d=0;do{XCa(f[c+(d<<2)>>2]|0,a)|0;d=d+1|0;c=f[h>>2]|0}while(d>>>0<(f[i>>2]|0)-c>>2>>>0)}d=a+184|0;e=f[d>>2]|0;if(e|0){g=a+188|0;c=f[g>>2]|0;if((c|0)==(e|0))c=e;else{do{j=c;c=c+-12|0;Iy(c,f[j+-8>>2]|0)}while((c|0)!=(e|0));c=f[d>>2]|0}f[g>>2]=e;NDb(c)}Iy(a+172|0,f[a+176>>2]|0);Iy(a+160|0,f[a+164>>2]|0);Iy(a+148|0,f[a+152>>2]|0);d=a+136|0;e=f[d>>2]|0;if(e|0){g=a+140|0;c=f[g>>2]|0;if((c|0)==(e|0))c=e;else{do{c=c+-12|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0)}while((c|0)!=(e|0));c=f[d>>2]|0}f[g>>2]=e;NDb(c)}c=a+116|0;d=f[c>>2]|0;if(d|0?(g=d+8|0,j=f[g>>2]|0,f[g>>2]=j-1,(j|0)==1):0)X4(d,1,1);f[c>>2]=0;e=f[h>>2]|0;if(e|0){c=f[i>>2]|0;if((c|0)==(e|0))c=e;else{do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(g=d+8|0,j=f[g>>2]|0,f[g>>2]=j-1,(j|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(e|0));c=f[h>>2]|0}f[i>>2]=e;NDb(c)}cT(a+92|0,f[a+96>>2]|0);cT(a+80|0,f[a+84>>2]|0);cT(a+68|0,f[a+72>>2]|0);e=a+56|0;g=f[e>>2]|0;if(!g){rw(a);return}h=a+60|0;c=f[h>>2]|0;if((c|0)==(g|0))c=g;else{do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(i=d+8|0,j=f[i>>2]|0,f[i>>2]=j-1,(j|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(g|0));c=f[e>>2]|0}f[h>>2]=g;NDb(c);rw(a);return}function SR(a){a=a|0;RR(a);NDb(a);return}function TR(a){a=a|0;a=LDb(196)|0;hT(a);return a|0}function UR(a,b){a=a|0;b=b|0;var c=0;c=LDb(196)|0;YS(c,a,b);return c|0}function VR(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,61776,0)|0)!=0;return b|0}function WR(a){a=a|0;return 241076}function XR(a){a=a|0;return 185570}function YR(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0;h=a+104|0;i=a+108|0;c=f[i>>2]|0;d=f[h>>2]|0;if((c|0)!=(d|0)){g=0;e=d;while(1){d=f[e+(g<<2)>>2]|0;if(!d)d=e;else{Vk[f[(f[d>>2]|0)+156>>2]&1023](d,b);d=f[h>>2]|0;c=f[i>>2]|0}g=g+1|0;if(g>>>0>=c-d>>2>>>0)break;else e=d}}XS(a+56|0,b);return}function ZR(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0;h=a+104|0;i=a+108|0;c=f[i>>2]|0;d=f[h>>2]|0;if((c|0)!=(d|0)){g=0;e=d;while(1){d=f[e+(g<<2)>>2]|0;if(!d)d=e;else{Vk[f[(f[d>>2]|0)+160>>2]&1023](d,b);d=f[h>>2]|0;c=f[i>>2]|0}g=g+1|0;if(g>>>0>=c-d>>2>>>0)break;else e=d}}if(b|0){c=dS(a+56|0,f[b+124>>2]|0)|0;d=f[c>>2]|0;if(!d)return;f[c>>2]=0;i=d+8|0;a=f[i>>2]|0;f[i>>2]=a-1;if((a|0)!=1)return;X4(d,1,1);return}d=f[a+56>>2]|0;c=(f[a+60>>2]|0)-d|0;if((c|0)<=0)return;e=c>>>2;while(1){c=f[d>>2]|0;if(c|0?(f[d>>2]=0,i=c+8|0,a=f[i>>2]|0,f[i>>2]=a-1,(a|0)==1):0)X4(c,1,1);if((e|0)>1){e=e+-1|0;d=d+4|0}else break}return}function _R(a){a=a|0;return 36}function $R(a,c){a=a|0;c=c|0;var d=0,e=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;if((a|0)==(c|0)){A=0;return A|0}if(!a)NFb();d=f[(f[(f[a>>2]|0)+-4>>2]|0)+4>>2]|0;e=f[(f[(f[c>>2]|0)+-4>>2]|0)+4>>2]|0;if(d>>>0<e>>>0){A=-1;return A|0}if((d|0)!=(e|0)){A=1;return A|0}A=a+108|0;u=f[A>>2]|0;d=f[a+104>>2]|0;e=u-d>>2;h=c+104|0;g=f[h>>2]|0;h=(f[h+4>>2]|0)-g>>2;if(e>>>0<h>>>0){A=-1;return A|0}if(h>>>0<e>>>0){A=1;return A|0}e=a+12|0;h=c+12|0;j=b[h+11>>0]|0;i=j<<24>>24<0;j=i?f[c+16>>2]|0:j&255;l=b[e+11>>0]|0;k=l<<24>>24<0;l=k?f[a+16>>2]|0:l&255;o=j>>>0<l>>>0;n=o?j:l;m=(n|0)==0;if(!m?(p=k?f[e>>2]|0:e,q=i?f[h>>2]|0:h,r=ipb(p,q,n)|0,(r|0)!=0):0)if((r|0)<0){A=-1;return A|0}else{s=q;t=p;r=14}else{if(l>>>0<j>>>0){A=-1;return A|0}if(m)r=15;else{s=i?f[h>>2]|0:h;t=k?f[e>>2]|0:e;r=14}}if((r|0)==14){e=ipb(s,t,n)|0;if(e){if((e|0)<0){A=1;return A|0}}else r=15}if((r|0)==15?o:0){A=1;return A|0}e=f[a+120>>2]|0;h=f[c+120>>2]|0;if((e|0)<(h|0)){A=-1;return A|0}if((h|0)<(e|0)){A=1;return A|0}e=f[a+124>>2]|0;h=f[c+124>>2]|0;if((e|0)<(h|0)){A=-1;return A|0}if((h|0)<(e|0)){A=1;return A|0}e=f[a+128>>2]|0;h=f[c+128>>2]|0;if((e|0)<(h|0)){A=-1;return A|0}if((h|0)<(e|0)){A=1;return A|0}p=c+136|0;o=f[a+140>>2]|0;e=f[p>>2]|0;p=f[p+4>>2]|0;a:do if((e|0)!=(p|0)){q=f[a+136>>2]|0;b:while(1){if((q|0)==(o|0)){e=-1;r=41;break}m=b[e+11>>0]|0;l=m<<24>>24<0;m=l?f[e+4>>2]|0:m&255;j=b[q+11>>0]|0;i=j<<24>>24<0;j=i?f[q+4>>2]|0:j&255;n=m>>>0<j>>>0;h=n?m:j;k=(h|0)==0;if(!k?(x=i?f[q>>2]|0:q,y=l?f[e>>2]|0:e,z=ipb(x,y,h)|0,(z|0)!=0):0)if((z|0)<0){e=-1;r=41;break}else{v=y;w=x;r=32}else r=28;do if((r|0)==28){if(j>>>0<m>>>0){e=-1;r=41;break b}if(k){r=33;break}v=l?f[e>>2]|0:e;w=i?f[q>>2]|0:q;r=32}while(0);if((r|0)==32){r=0;h=ipb(v,w,h)|0;if(h){if((h|0)<0)break a}else r=33}if((r|0)==33?(0,n):0)break a;e=e+12|0;if((e|0)==(p|0))break a;else q=q+12|0}if((r|0)==41)return e|0}while(0);if((f[a+132>>2]|0)>>>0<(f[c+132>>2]|0)>>>0){A=-1;return A|0}if((d|0)==(u|0)){A=0;return A|0}while(1){e=VCa(f[d>>2]|0,f[g>>2]|0)|0;if(e|0){r=41;break}d=d+4|0;if((d|0)==(f[A>>2]|0)){e=0;r=41;break}else g=g+4|0}if((r|0)==41)return e|0;return 0}function aS(a,c){a=a|0;c=c|0;var d=0,e=0;d=f[c+832>>2]|0;if(!(b[d+24>>0]|0))return;if((f[a+104>>2]|0)==(f[a+108>>2]|0)){Nk[f[d+176>>2]&2047](0);a=c+708|0;if(!(f[a>>2]|0))return;f[a>>2]=0;return}e=cS(a,c)|0;if(b[e+36>>0]|0)Vk[f[(f[a>>2]|0)+200>>2]&1023](a,c);if(!(b[e+37>>0]|0)){Nk[f[d+176>>2]&2047](0);a=c+708|0;if(!(f[a>>2]|0))return;f[a>>2]=0;return}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>3)sk[f[(f[e>>2]|0)+16>>2]&2047](e)|0;Nk[f[(f[e>>2]|0)+28>>2]&2047](e);a=c+708|0;if((f[a>>2]|0)==(e|0))return;f[a>>2]=e;return}function bS(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;g=a+104|0;d=f[g>>2]|0;h=a+108|0;if((d|0)==(f[h>>2]|0))return;e=0;do{FCa(f[d+(e<<2)>>2]|0,c);e=e+1|0;d=f[g>>2]|0}while(e>>>0<(f[h>>2]|0)-d>>2>>>0);d=a+136|0;l=a+140|0;if((f[d>>2]|0)!=(f[l>>2]|0)){j=cS(a,c)|0;k=f[c+832>>2]|0;g=f[l>>2]|0;d=f[d>>2]|0;h=(g-d|0)/12|0;i=MDb(h>>>0>1073741823?-1:h<<2)|0;if((d|0)!=(g|0)){g=i;while(1){if((b[d+11>>0]|0)<0)e=f[d>>2]|0;else e=d;f[g>>2]=e;d=d+12|0;if((d|0)==(f[l>>2]|0))break;else g=g+4|0}}al[f[k+1476>>2]&255](f[j+20>>2]|0,h,i,f[a+132>>2]|0);ODb(i)}a=cS(a,c)|0;Vk[f[(f[a>>2]|0)+12>>2]&1023](a,c);return}function cS(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=u;u=u+16|0;p=q;n=f[c+124>>2]|0;f[p>>2]=0;f[p+4>>2]=0;f[p+8>>2]=0;j5(c,p,a+148|0);m=a+56|0;l=dS(m,n)|0;if((((f[l>>2]|0)==0?(d=LDb(32)|0,BCa(d),f[d>>2]=99028,f[d+12>>2]=n,f[d+16>>2]=a,f[d+20>>2]=0,f[d+24>>2]=0,f[d+28>>2]=0,e=dS(m,n)|0,g=f[e>>2]|0,(g|0)!=(d|0)):0)?(f[e>>2]=d,l=d+8|0,f[l>>2]=(f[l>>2]|0)+1,g|0):0)?(k=g+8|0,l=f[k>>2]|0,f[k>>2]=l-1,(l|0)==1):0)X4(g,1,1);l=dS(m,n)|0;l=f[l>>2]|0;d=f[l+20>>2]|0;l=f[l+24>>2]|0;a:do if((d|0)!=(l|0)){j=b[p+11>>0]|0;k=j<<24>>24<0;j=k?f[p+4>>2]|0:j&255;k=k?f[p>>2]|0:p;if(!j)while(1){c=f[d>>2]|0;k=b[c+24+11>>0]|0;if(!((k<<24>>24<0?f[c+28>>2]|0:k&255)|0))break a;d=d+4|0;if((d|0)==(l|0)){o=21;break a}}b:while(1){c=f[d>>2]|0;h=c+24|0;e=b[h+11>>0]|0;g=e<<24>>24<0;e=e&255;do if(((g?f[c+28>>2]|0:e)|0)==(j|0)){i=f[h>>2]|0;if(g)if(!(ipb(i,k,j)|0))break a;else break;if((b[k>>0]|0)==(i&255)<<24>>24){g=k;do{e=e+-1|0;h=h+1|0;if(!e)break b;g=g+1|0}while((b[h>>0]|0)==(b[g>>0]|0))}}while(0);d=d+4|0;if((d|0)==(l|0)){o=21;break a}}if(!c)o=21}else o=21;while(0);if((o|0)==21){c=dS(m,n)|0;c=eS(f[c>>2]|0,p)|0;h=a+104|0;g=a+108|0;d=f[h>>2]|0;if((f[g>>2]|0)!=(d|0)){e=0;do{fS(c,f[d+(e<<2)>>2]|0);e=e+1|0;d=f[h>>2]|0}while(e>>>0<(f[g>>2]|0)-d>>2>>>0)}}if((b[p+11>>0]|0)>=0){u=q;return c|0}NDb(f[p>>2]|0);u=q;return c|0}function dS(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;l=u;u=u+16|0;j=l;k=a+4|0;c=f[k>>2]|0;g=f[a>>2]|0;e=c-g>>2;if(e>>>0>b>>>0){k=g;k=k+(b<<2)|0;u=l;return k|0}d=b+1|0;f[j>>2]=0;if(d>>>0<=e>>>0){if(d>>>0<e>>>0){e=g+(d<<2)|0;if((e|0)!=(c|0))do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(g=d+8|0,h=f[g>>2]|0,f[g>>2]=h-1,(h|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(e|0));f[k>>2]=e;h=12}}else{WS(a,d-e|0,j);h=12}if(((h|0)==12?(i=f[j>>2]|0,i|0):0)?(j=i+8|0,k=f[j>>2]|0,f[j>>2]=k-1,(k|0)==1):0)X4(i,1,1);k=f[a>>2]|0;k=k+(b<<2)|0;u=l;return k|0}function eS(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;h=u;u=u+16|0;e=h;g=LDb(120)|0;hS(g,f[a+16>>2]|0,f[a+12>>2]|0,0);f[e>>2]=g;d=g+8|0;f[d>>2]=(f[d>>2]|0)+1;d=a+24|0;c=f[d>>2]|0;if(c>>>0<(f[a+28>>2]|0)>>>0){a=f[e>>2]|0;f[c>>2]=a;if(a){c=a+8|0;f[c>>2]=(f[c>>2]|0)+1;c=f[d>>2]|0}f[d>>2]=c+4}else iS(a+20|0,e);c=f[e>>2]|0;if(c|0?(d=c+8|0,e=f[d>>2]|0,f[d>>2]=e-1,(e|0)==1):0)X4(c,1,1);$Db(g+24|0,b)|0;u=h;return g|0}function fS(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0;g=u;u=u+16|0;e=g;c=a+108|0;f[e>>2]=b;if(b|0){d=b+8|0;f[d>>2]=(f[d>>2]|0)+1}d=a+112|0;b=f[d>>2]|0;if(b>>>0<(f[a+116>>2]|0)>>>0){a=f[e>>2]|0;f[b>>2]=a;if(a){b=a+8|0;f[b>>2]=(f[b>>2]|0)+1;b=f[d>>2]|0}f[d>>2]=b+4}else gS(c,e);b=f[e>>2]|0;if(!b){u=g;return}d=b+8|0;e=f[d>>2]|0;f[d>>2]=e-1;if((e|0)!=1){u=g;return}X4(b,1,1);u=g;return}function gS(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=a+4|0;c=f[m>>2]|0;d=f[a>>2]|0;i=c-d>>2;e=i+1|0;g=d;if(e>>>0>1073741823)KEb(a);l=a+8|0;j=(f[l>>2]|0)-d|0;k=j>>1;e=j>>2>>>0<536870911?(k>>>0<e>>>0?e:k):1073741823;do if(e)if(e>>>0>1073741823){m=mb(8)|0;RDb(m,238482);f[m>>2]=144484;qb(m|0,84192,1464)}else{j=LDb(e<<2)|0;break}else j=0;while(0);d=j+(i<<2)|0;k=j+(e<<2)|0;e=f[b>>2]|0;f[d>>2]=e;if(e){g=e+8|0;f[g>>2]=(f[g>>2]|0)+1;g=f[a>>2]|0;c=f[m>>2]|0}h=d+4|0;e=g;if((c|0)==(g|0))b=e;else{b=i+-1-((c+-4-e|0)>>>2)|0;while(1){c=c+-4|0;e=f[c>>2]|0;f[d+-4>>2]=e;if(e|0){i=e+8|0;f[i>>2]=(f[i>>2]|0)+1}if((c|0)==(g|0))break;else d=d+-4|0}d=j+(b<<2)|0;b=f[a>>2]|0;c=f[m>>2]|0}f[a>>2]=d;f[m>>2]=h;f[l>>2]=k;e=b;if((c|0)!=(e|0))do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(l=d+8|0,m=f[l>>2]|0,f[l>>2]=m-1,(m|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(e|0));if(!b)return;NDb(b);return}function hS(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=u;u=u+16|0;i=m;BCa(a);f[a>>2]=99048;j=a+16|0;f[j>>2]=0;k=a+20|0;f[k>>2]=e;l=a+24|0;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;b[a+38>>0]=0;l=a+40|0;f[l>>2]=d;g=a+44|0;b[g>>0]=0;f[a+52>>2]=0;f[a+56>>2]=0;f[a+48>>2]=a+52;f[a+64>>2]=0;f[a+68>>2]=0;f[a+60>>2]=a+64;f[a+76>>2]=0;f[a+80>>2]=0;f[a+72>>2]=a+76;f[a+88>>2]=0;f[a+92>>2]=0;f[a+84>>2]=a+88;n=a+96|0;h=a+12|0;f[n>>2]=0;f[n+4>>2]=0;f[n+8>>2]=0;f[n+12>>2]=0;f[n+16>>2]=0;f[n+20>>2]=0;f[h>>2]=c;if(e|0){n=a+36|0;b[n>>0]=1;n=a+37|0;b[n>>0]=0;u=m;return}c=By(d,1)|0;d=f[j>>2]|0;if((d|0)!=(c|0)){f[j>>2]=c;if(c|0){n=c+8|0;f[n>>2]=(f[n>>2]|0)+1}if(d|0?(e=d+8|0,n=f[e>>2]|0,f[e>>2]=n-1,(n|0)==1):0)X4(d,1,1)}n=rk[f[(f[j>>2]|0)+56>>2]&15]()|0;f[k>>2]=n;if(n|0){b[g>>0]=1;n=a+36|0;b[n>>0]=1;n=a+37|0;b[n>>0]=0;u=m;return}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=1){n=a+36|0;b[n>>0]=1;n=a+37|0;b[n>>0]=0;u=m;return}g=Nv(Mv(2)|0,184980,31)|0;k=f[h>>2]|0;h=k+12|0;n=b[h+11>>0]|0;j=n<<24>>24<0;n=Nv(Nv(Nv(g,j?f[h>>2]|0:h,j?f[k+16>>2]|0:n&255)|0,222291,1)|0,185012,11)|0;n=jub(n,f[l>>2]|0)|0;Ktb(i,n+(f[(f[n>>2]|0)+-12>>2]|0)|0);l=Bvb(i,295164)|0;l=wk[f[(f[l>>2]|0)+28>>2]&1023](l,10)|0;Cvb(i);rub(n,l)|0;Rtb(n)|0;n=a+36|0;b[n>>0]=1;n=a+37|0;b[n>>0]=0;u=m;return}function iS(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=a+4|0;c=f[m>>2]|0;d=f[a>>2]|0;i=c-d>>2;e=i+1|0;g=d;if(e>>>0>1073741823)KEb(a);l=a+8|0;j=(f[l>>2]|0)-d|0;k=j>>1;e=j>>2>>>0<536870911?(k>>>0<e>>>0?e:k):1073741823;do if(e)if(e>>>0>1073741823){m=mb(8)|0;RDb(m,238482);f[m>>2]=144484;qb(m|0,84192,1464)}else{j=LDb(e<<2)|0;break}else j=0;while(0);d=j+(i<<2)|0;k=j+(e<<2)|0;e=f[b>>2]|0;f[d>>2]=e;if(e){g=e+8|0;f[g>>2]=(f[g>>2]|0)+1;g=f[a>>2]|0;c=f[m>>2]|0}h=d+4|0;e=g;if((c|0)==(g|0))b=e;else{b=i+-1-((c+-4-e|0)>>>2)|0;while(1){c=c+-4|0;e=f[c>>2]|0;f[d+-4>>2]=e;if(e|0){i=e+8|0;f[i>>2]=(f[i>>2]|0)+1}if((c|0)==(g|0))break;else d=d+-4|0}d=j+(b<<2)|0;b=f[a>>2]|0;c=f[m>>2]|0}f[a>>2]=d;f[m>>2]=h;f[l>>2]=k;e=b;if((c|0)!=(e|0))do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(l=d+8|0,m=f[l>>2]|0,f[l>>2]=m-1,(m|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(e|0));if(!b)return;NDb(b);return}function jS(a,b){a=a|0;b=b|0;var c=0,d=0;if(!b)return;jS(a,f[b>>2]|0);jS(a,f[b+4>>2]|0);a=f[b+20>>2]|0;if(a|0?(d=a+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(a,1,1);NDb(b);return}function kS(a,c){a=a|0;c=c|0;if(!c)return;kS(a,f[c>>2]|0);kS(a,f[c+4>>2]|0);a=c+16|0;if((b[a+11>>0]|0)<0)NDb(f[a>>2]|0);NDb(c);return}function lS(a,c){a=a|0;c=c|0;if(!c)return;lS(a,f[c>>2]|0);lS(a,f[c+4>>2]|0);a=c+16|0;if((b[a+11>>0]|0)<0)NDb(f[a>>2]|0);NDb(c);return}function mS(a,b){a=a|0;b=b|0;if(!b)return;else{mS(a,f[b>>2]|0);mS(a,f[b+4>>2]|0);NDb(b);return}}function nS(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0;f[a>>2]=99048;if(b[a+44>>0]|0){h=KS(Qy(f[a+40>>2]|0)|0)|0;Vk[f[(f[h>>2]|0)+44>>2]&1023](h,f[a+20>>2]|0)}e=a+108|0;g=f[e>>2]|0;if(g|0){h=a+112|0;c=f[h>>2]|0;if((c|0)==(g|0))c=g;else{do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(j=d+8|0,i=f[j>>2]|0,f[j>>2]=i-1,(i|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(g|0));c=f[e>>2]|0}f[h>>2]=g;NDb(c)}e=a+96|0;g=f[e>>2]|0;if(g|0){h=a+100|0;c=f[h>>2]|0;if((c|0)==(g|0))c=g;else{do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(i=d+8|0,j=f[i>>2]|0,f[i>>2]=j-1,(j|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(g|0));c=f[e>>2]|0}f[h>>2]=g;NDb(c)}jS(a+84|0,f[a+88>>2]|0);kS(a+72|0,f[a+76>>2]|0);lS(a+60|0,f[a+64>>2]|0);mS(a+48|0,f[a+52>>2]|0);c=a+24|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);c=a+16|0;d=f[c>>2]|0;if(!d){f[c>>2]=0;V4(a);return}i=d+8|0;j=f[i>>2]|0;f[i>>2]=j-1;if((j|0)!=1){f[c>>2]=0;V4(a);return}X4(d,1,1);f[c>>2]=0;V4(a);return}function oS(a){a=a|0;nS(a);NDb(a);return}function pS(a,c){a=a|0;c=c|0;var d=0,e=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,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;T=u;u=u+192|0;M=T+180|0;N=T;B=T+168|0;O=T+156|0;P=T+144|0;Q=T+132|0;R=T+112|0;S=T+100|0;I=T+96|0;J=T+92|0;K=T+80|0;d=a+36|0;if(!(b[d>>0]|0)){u=T;return}b[d>>0]=0;L=a+20|0;if(!(f[L>>2]|0)){u=T;return}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>3){x=Nv(Mv(4)|0,185110,22)|0;z=a+12|0;F=f[z>>2]|0;y=F+12|0;G=b[y+11>>0]|0;A=G<<24>>24<0;G=Nv(Nv(Nv(x,A?f[y>>2]|0:y,A?f[F+16>>2]|0:G&255)|0,222291,1)|0,185095,4)|0;G=Nv(jub(G,f[L>>2]|0)|0,185012,11)|0;G=jub(G,f[a+40>>2]|0)|0;Ktb(M,G+(f[(f[G>>2]|0)+-12>>2]|0)|0);F=Bvb(M,295164)|0;F=wk[f[(f[F>>2]|0)+28>>2]&1023](F,10)|0;Cvb(M);rub(G,F)|0;Rtb(G)|0}else z=a+12|0;d=f[(f[z>>2]|0)+116>>2]|0;p=a+38|0;b[p>>0]=0;s=(d|0)!=0;if(!((s?(e=f[d+36>>2]|0,h=f[d+32>>2]|0,g=e-h|0,h,(g|0)!=0):0)?(f[M>>2]=0,G=a+16|0,al[f[(f[G>>2]|0)+612>>2]&255](f[L>>2]|0,f[d+44>>2]|0,(h|0)==(e|0)?0:h,g),Zk[f[(f[G>>2]|0)+104>>2]&511](f[L>>2]|0,35714,M),G=(f[M>>2]|0)==1,F=G&1,b[a+37>>0]=F,b[p>>0]=F,G):0))H=12;do if((H|0)==12){d=a+16|0;e=f[d>>2]|0;if(b[e+29>>0]|0?(Zk[f[e+448>>2]&511](f[L>>2]|0,36314,f[(f[z>>2]|0)+120>>2]|0),Zk[f[(f[d>>2]|0)+448>>2]&511](f[L>>2]|0,36315,f[(f[z>>2]|0)+124>>2]|0),Zk[f[(f[d>>2]|0)+448>>2]&511](f[L>>2]|0,36316,f[(f[z>>2]|0)+128>>2]|0),b[p>>0]|0):0)break;f[M>>2]=0;n=a+16|0;al[f[(f[n>>2]|0)+96>>2]&255](f[L>>2]|0,20,M,N);l=B+4|0;f[l>>2]=0;m=B+8|0;f[m>>2]=0;o=B+4|0;f[B>>2]=o;d=f[M>>2]|0;a:do if((d|0)>0){e=0;g=0;while(1){k=N+(e<<2)|0;do if(g){j=f[k>>2]|0;i=l;while(1){h=f[g+16>>2]|0;if(j>>>0<h>>>0){h=f[g>>2]|0;if(!h){H=22;break}else{i=g;g=h}}else{if(h>>>0>=j>>>0){H=26;break}i=g+4|0;h=f[i>>2]|0;if(!h){H=25;break}else g=h}}if((H|0)==22){H=0;h=g;i=g;break}else if((H|0)==25){H=0;h=g;break}else if((H|0)==26){H=0;h=g;break}}else{h=o;i=o}while(0);g=f[i>>2]|0;if(!g){g=LDb(24)|0;f[g+16>>2]=f[k>>2];f[g+20>>2]=0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=h;f[i>>2]=g;d=f[f[B>>2]>>2]|0;if(!d)d=g;else{f[B>>2]=d;d=f[i>>2]|0}Aq(f[l>>2]|0,d);f[m>>2]=(f[m>>2]|0)+1;d=f[M>>2]|0}G=g+20|0;f[G>>2]=(f[G>>2]|0)+-1;e=e+1|0;if((e|0)>=(d|0))break a;g=f[o>>2]|0}}while(0);d=f[z>>2]|0;if((f[d+108>>2]|0)!=(f[d+104>>2]|0)){i=0;do{d=Z4(f[(f[d+104>>2]|0)+(i<<2)>>2]|0,c)|0;if(d|0){h=f[d+20>>2]|0;d=f[o>>2]|0;do if(d){g=l;while(1){e=f[d+16>>2]|0;if(h>>>0<e>>>0){e=f[d>>2]|0;if(!e){H=41;break}else{g=d;d=e}}else{if(e>>>0>=h>>>0){H=45;break}g=d+4|0;e=f[g>>2]|0;if(!e){H=44;break}else d=e}}if((H|0)==41){H=0;e=d;g=d;break}else if((H|0)==44){H=0;e=d;break}else if((H|0)==45){H=0;e=d;break}}else{e=o;g=o}while(0);d=f[g>>2]|0;if(!d){d=LDb(24)|0;f[d+16>>2]=h;f[d+20>>2]=0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=e;f[g>>2]=d;e=f[f[B>>2]>>2]|0;if(!e)e=d;else{f[B>>2]=e;e=f[g>>2]|0}Aq(f[l>>2]|0,e);f[m>>2]=(f[m>>2]|0)+1}G=d+20|0;f[G>>2]=(f[G>>2]|0)+1}i=i+1|0;d=f[z>>2]|0}while(i>>>0<(f[d+108>>2]|0)-(f[d+104>>2]|0)>>2>>>0)}d=f[B>>2]|0;if((d|0)!=(o|0)){g=d;while(1){d=g+16|0;e=f[g+20>>2]|0;if((e|0)<=0){if((e|0)<0)Vk[f[(f[n>>2]|0)+76>>2]&1023](f[L>>2]|0,f[d>>2]|0)}else Vk[f[(f[n>>2]|0)+44>>2]&1023](f[L>>2]|0,f[d>>2]|0);d=f[g+4>>2]|0;if(!d){e=g+8|0;d=f[e>>2]|0;if((f[d>>2]|0)!=(g|0))do{G=f[e>>2]|0;e=G+8|0;d=f[e>>2]|0}while((f[d>>2]|0)!=(G|0))}else while(1){e=f[d>>2]|0;if(!e)break;else d=e}if((d|0)==(o|0))break;else g=d}}CS(B,f[o>>2]|0)}while(0);g=f[a+96>>2]|0;h=a+100|0;d=f[h>>2]|0;if((d|0)!=(g|0))do{d=d+-4|0;e=f[d>>2]|0;if(e|0?(F=e+8|0,G=f[F>>2]|0,f[F>>2]=G-1,(G|0)==1):0)X4(e,1,1);f[d>>2]=0}while((d|0)!=(g|0));f[h>>2]=g;g=f[a+108>>2]|0;h=a+112|0;d=f[h>>2]|0;if((d|0)!=(g|0))do{d=d+-4|0;e=f[d>>2]|0;if(e|0?(F=e+8|0,G=f[F>>2]|0,f[F>>2]=G-1,(G|0)==1):0)X4(e,1,1);f[d>>2]=0}while((d|0)!=(g|0));f[h>>2]=g;w=a+48|0;x=a+52|0;mS(w,f[x>>2]|0);y=a+56|0;f[y>>2]=0;f[w>>2]=x;f[x>>2]=0;F=a+60|0;o=a+64|0;lS(F,f[o>>2]|0);G=a+68|0;f[G>>2]=0;f[F>>2]=o;f[o>>2]=0;o=a+84|0;A=a+88|0;jS(o,f[A>>2]|0);f[a+92>>2]=0;f[o>>2]=A;f[A>>2]=0;if(!(b[p>>0]|0)){i=f[z>>2]|0;d=f[i+68>>2]|0;i=i+72|0;if((d|0)!=(i|0)){j=a+16|0;h=d;while(1){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>3){o=Nv(Mv(4)|0,185133,32)|0;d=h+16|0;g=h+28|0;o=Nv(jub(o,f[g>>2]|0)|0,239432,2)|0;e=d+11|0;A=b[e>>0]|0;p=A<<24>>24<0;A=Nv(o,p?f[d>>2]|0:d,p?f[h+20>>2]|0:A&255)|0;Ktb(M,A+(f[(f[A>>2]|0)+-12>>2]|0)|0);p=Bvb(M,295164)|0;p=wk[f[(f[p>>2]|0)+28>>2]&1023](p,10)|0;Cvb(M);rub(A,p)|0;Rtb(A)|0}else{e=h+16|0;d=e;g=h+28|0;e=e+11|0}if((b[e>>0]|0)<0)d=f[d>>2]|0;Zk[f[(f[j>>2]|0)+48>>2]&511](f[L>>2]|0,f[g>>2]|0,d);d=f[h+4>>2]|0;if(!d){e=h+8|0;d=f[e>>2]|0;if((f[d>>2]|0)!=(h|0))do{A=f[e>>2]|0;e=A+8|0;d=f[e>>2]|0}while((f[d>>2]|0)!=(A|0))}else while(1){e=f[d>>2]|0;if(!e)break;else d=e}if((d|0)==(i|0))break;else h=d}}if(b[c+131>>0]|0?(q=f[c+584>>2]|0,r=c+588|0,(q|0)!=(r|0)):0){i=a+16|0;h=q;while(1){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>3){c=Nv(Mv(4)|0,185166,30)|0;d=h+16|0;g=h+28|0;c=Nv(jub(c,f[g>>2]|0)|0,239432,2)|0;e=d+11|0;A=b[e>>0]|0;q=A<<24>>24<0;A=Nv(c,q?f[d>>2]|0:d,q?f[h+20>>2]|0:A&255)|0;Ktb(M,A+(f[(f[A>>2]|0)+-12>>2]|0)|0);q=Bvb(M,295164)|0;q=wk[f[(f[q>>2]|0)+28>>2]&1023](q,10)|0;Cvb(M);rub(A,q)|0;Rtb(A)|0}else{e=h+16|0;d=e;g=h+28|0;e=e+11|0}if((b[e>>0]|0)<0)d=f[d>>2]|0;Zk[f[(f[i>>2]|0)+48>>2]&511](f[L>>2]|0,f[g>>2]|0,d);d=f[h+4>>2]|0;if(!d){e=h+8|0;d=f[e>>2]|0;if((f[d>>2]|0)!=(h|0))do{A=f[e>>2]|0;e=A+8|0;d=f[e>>2]|0}while((f[d>>2]|0)!=(A|0))}else while(1){e=f[d>>2]|0;if(!e)break;else d=e}if((d|0)==(r|0))break;else h=d}}h=f[z>>2]|0;d=f[h+80>>2]|0;h=h+84|0;if((d|0)!=(h|0)){i=a+16|0;g=d;while(1){d=g+16|0;if((b[d+11>>0]|0)<0)d=f[d>>2]|0;Zk[f[(f[i>>2]|0)+464>>2]&511](f[L>>2]|0,f[g+28>>2]|0,d);d=f[g+4>>2]|0;if(!d){e=g+8|0;d=f[e>>2]|0;if((f[d>>2]|0)!=(g|0))do{A=f[e>>2]|0;e=A+8|0;d=f[e>>2]|0}while((f[d>>2]|0)!=(A|0))}else while(1){e=f[d>>2]|0;if(!e)break;else d=e}if((d|0)==(h|0))break;else g=d}}d=a+16|0;if(s)Zk[f[(f[d>>2]|0)+448>>2]&511](f[L>>2]|0,33367,1);f[M>>2]=0;Nk[f[(f[d>>2]|0)+168>>2]&2047](f[L>>2]|0);Zk[f[(f[d>>2]|0)+104>>2]&511](f[L>>2]|0,35714,M);d=(f[M>>2]|0)==1&1;b[a+37>>0]=d}else d=b[a+37>>0]|0;if(!(d<<24>>24)){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>2){O=Nv(qub(Nv(Mv(3)|0,185197,14)|0,a)|0,222291,1)|0;R=f[z>>2]|0;P=R+12|0;S=b[P+11>>0]|0;Q=S<<24>>24<0;S=Nv(Nv(O,Q?f[P>>2]|0:P,Q?f[R+16>>2]|0:S&255)|0,197220,8)|0;Ktb(M,S+(f[(f[S>>2]|0)+-12>>2]|0)|0);R=Bvb(M,295164)|0;R=wk[f[(f[R>>2]|0)+28>>2]&1023](R,10)|0;Cvb(M);rub(S,R)|0;Rtb(S)|0};f[N>>2]=0;f[N+4>>2]=0;f[N+8>>2]=0;if(wk[f[(f[a>>2]|0)+20>>2]&1023](a,N)|0){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>2){O=Nv(Mv(3)|0,185212,9)|0;S=f[z>>2]|0;P=S+12|0;Q=b[P+11>>0]|0;R=Q<<24>>24<0;Q=Nv(Nv(O,R?f[P>>2]|0:P,R?f[S+16>>2]|0:Q&255)|0,197239,11)|0;S=b[N+11>>0]|0;R=S<<24>>24<0;S=Nv(Q,R?f[N>>2]|0:N,R?f[N+4>>2]|0:S&255)|0;Ktb(M,S+(f[(f[S>>2]|0)+-12>>2]|0)|0);R=Bvb(M,295164)|0;R=wk[f[(f[R>>2]|0)+28>>2]&1023](R,10)|0;Cvb(M);rub(S,R)|0;Rtb(S)|0}}if((b[N+11>>0]|0)<0)NDb(f[N>>2]|0);u=T;return};f[N>>2]=0;f[N+4>>2]=0;f[N+8>>2]=0;if(wk[f[(f[a>>2]|0)+20>>2]&1023](a,N)|0){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>3){c=Nv(Mv(4)|0,185212,9)|0;A=f[z>>2]|0;q=A+12|0;r=b[q+11>>0]|0;s=r<<24>>24<0;r=Nv(Nv(Nv(c,s?f[q>>2]|0:q,s?f[A+16>>2]|0:r&255)|0,185222,2)|0,185225,25)|0;A=b[N+11>>0]|0;s=A<<24>>24<0;A=Nv(r,s?f[N>>2]|0:N,s?f[N+4>>2]|0:A&255)|0;Ktb(M,A+(f[(f[A>>2]|0)+-12>>2]|0)|0);s=Bvb(M,295164)|0;s=wk[f[(f[s>>2]|0)+28>>2]&1023](s,10)|0;Cvb(M);rub(A,s)|0;Rtb(A)|0}}A=a+16|0;d=f[L>>2]|0;e=f[z>>2]|0;g=e+12|0;h=f[(f[A>>2]|0)+1748>>2]|0;if(h|0?(v=b[g+11>>0]|0,t=v<<24>>24<0,v=t?f[e+16>>2]|0:v&255,v|0):0)al[h&255](33506,d,v,t?f[g>>2]|0:g);if((b[N+11>>0]|0)<0)NDb(f[N>>2]|0);d=f[A>>2]|0;if(b[d+32>>0]|0){f[N>>2]=0;f[B>>2]=0;Zk[f[d+104>>2]&511](f[L>>2]|0,35382,N);Zk[f[(f[A>>2]|0)+104>>2]&511](f[L>>2]|0,35381,B);e=f[B>>2]|0;if((e|0)>0){f[O>>2]=0;o=O+4|0;f[o>>2]=0;t=O+8|0;f[t>>2]=0;d=LDb(e)|0;f[O>>2]=d;v=d+e|0;f[t>>2]=v;iGb(d|0,0,e|0)|0;f[o>>2]=v;do if(f[N>>2]|0){j=R+11|0;k=R+12|0;l=a+72|0;m=R+8|0;n=R+4|0;i=0;while(1){f[P>>2]=0;f[Q>>2]=0;cl[f[(f[A>>2]|0)+600>>2]&63](f[L>>2]|0,i,e,P,d);al[f[(f[A>>2]|0)+596>>2]&255](f[L>>2]|0,i,35392,Q);g=f[Q>>2]|0;f[R>>2]=0;f[R+4>>2]=0;f[R+8>>2]=0;h=Zob(d)|0;if(h>>>0>4294967279){H=169;break}if(h>>>0<11){b[j>>0]=h;if(!h)d=R;else{e=R;H=173}}else{H=h+16&-16;e=LDb(H)|0;f[R>>2]=e;f[m>>2]=H|-2147483648;f[n>>2]=h;H=173}if((H|0)==173){H=0;gGb(e|0,d|0,h|0)|0;d=e}b[d+h>>0]=0;v=k;f[v>>2]=i;f[v+4>>2]=g;DS(M,l,R,R);if((b[j>>0]|0)<0)NDb(f[R>>2]|0);d=i+1|0;if(d>>>0>=(f[N>>2]|0)>>>0){H=165;break}i=d;e=f[B>>2]|0;d=f[O>>2]|0}if((H|0)==165){d=f[O>>2]|0;if(!d)break;else{H=166;break}}else if((H|0)==169)TDb(R)}else H=166;while(0);if((H|0)==166){f[o>>2]=d;NDb(d)}}d=f[z>>2]|0;e=f[a+72>>2]|0;j=a+76|0;if((e|0)!=(j|0)){k=d+92|0;i=d+96|0;while(1){g=e+16|0;d=ES(k,g)|0;do if((d|0)==(i|0)){do if(!(b[287952]|0)){if(!(PFb(287952)|0))break;Lv(289680)}while(0);if((f[72420]|0)<=1)break;t=Nv(Mv(2)|0,185251,14)|0;z=b[g+11>>0]|0;v=z<<24>>24<0;Nv(Nv(t,v?f[g>>2]|0:g,v?f[e+20>>2]|0:z&255)|0,185277,17)|0}else{h=e+28|0;d=d+28|0;Zk[f[(f[A>>2]|0)+604>>2]&511](f[L>>2]|0,f[h>>2]|0,f[d>>2]|0);do if(!(b[287952]|0)){if(!(PFb(287952)|0))break;Lv(289680)}while(0);if((f[72420]|0)<=3)break;t=Nv(Mv(4)|0,185251,14)|0;z=b[g+11>>0]|0;v=z<<24>>24<0;z=Nv(Nv(t,v?f[g>>2]|0:g,v?f[e+20>>2]|0:z&255)|0,228802,2)|0;z=Nv(jub(z,f[h>>2]|0)|0,185266,10)|0;Nv(jub(z,f[d>>2]|0)|0,246152,1)|0}while(0);d=f[e+4>>2]|0;do if(!d){g=e+8|0;d=f[g>>2]|0;if((f[d>>2]|0)==(e|0))break;e=g;do{z=f[e>>2]|0;e=z+8|0;d=f[e>>2]|0}while((f[d>>2]|0)!=(z|0))}else while(1){e=f[d>>2]|0;if(!e)break;else d=e}while(0);if((d|0)==(j|0))break;else e=d}}d=f[A>>2]|0}q=N+4|0;f[q>>2]=0;r=N+8|0;f[r>>2]=0;s=N+4|0;f[N>>2]=s;f[B>>2]=0;f[O>>2]=0;Zk[f[d+104>>2]&511](f[L>>2]|0,35718,B);Zk[f[(f[A>>2]|0)+104>>2]&511](f[L>>2]|0,35719,O);e=f[O>>2]|0;do if((f[B>>2]|0)>0&(e|0)>1){f[P>>2]=0;f[Q>>2]=0;m=MDb(e)|0;n=M+11|0;o=M+8|0;p=M+4|0;c=a+52|0;d=0;b:while(1){el[f[(f[A>>2]|0)+92>>2]&15](f[L>>2]|0,d,e,0,P,Q,m);e=Zob(m)|0;if((e|0)>0?(C=e+-1|0,D=m+C|0,(b[D>>0]|0)==93):0){if((e|0)>1){e=C;do{z=e;e=e+-1|0;if((z|0)<=1)break}while((b[m+e>>0]|0)!=91);e=m+e|0}else e=D;b[e>>0]=0}if((f[Q>>2]|0)==37595){e=f[s>>2]|0;do if(e){h=q;while(1){g=f[e+16>>2]|0;if(d>>>0<g>>>0){g=f[e>>2]|0;if(!g){H=215;break}else{h=e;e=g}}else{if(g>>>0>=d>>>0){H=219;break}h=e+4|0;g=f[h>>2]|0;if(!g){H=218;break}else e=g}}if((H|0)==215){H=0;g=e;h=e;break}else if((H|0)==218){H=0;g=e;break}else if((H|0)==219){H=0;g=e;break}}else{g=s;h=s}while(0);e=f[h>>2]|0;if(!e){e=LDb(32)|0;f[e+16>>2]=d;z=e+20|0;f[z>>2]=0;f[z+4>>2]=0;f[z+8>>2]=0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=g;f[h>>2]=e;g=f[f[N>>2]>>2]|0;if(!g)g=e;else{f[N>>2]=g;g=f[h>>2]|0}Aq(f[q>>2]|0,g);f[r>>2]=(f[r>>2]|0)+1}eEb(e+20|0,m)|0}j=wk[f[(f[A>>2]|0)+132>>2]&1023](f[L>>2]|0,m)|0;do if((j|0)!=-1){k=f[Q>>2]|0;l=f[P>>2]|0;f[M>>2]=0;f[M+4>>2]=0;f[M+8>>2]=0;g=Zob(m)|0;if(g>>>0>4294967279){H=228;break b}if(g>>>0<11){b[n>>0]=g;if(!g)e=M;else{e=M;H=232}}else{H=g+16&-16;e=LDb(H)|0;f[M>>2]=e;f[o>>2]=H|-2147483648;f[p>>2]=g;H=232}if((H|0)==232){H=0;gGb(e|0,m|0,g|0)|0}b[e+g>>0]=0;i=W7(M)|0;e=f[x>>2]|0;do if(e){h=c;while(1){g=f[e+16>>2]|0;if(i>>>0<g>>>0){g=f[e>>2]|0;if(!g){H=237;break}else{h=e;e=g}}else{if(g>>>0>=i>>>0){H=241;break}h=e+4|0;g=f[h>>2]|0;if(!g){H=240;break}else e=g}}if((H|0)==237){H=0;g=e;h=e;break}else if((H|0)==240){H=0;g=e;break}else if((H|0)==241){H=0;g=e;break}}else{g=x;h=x}while(0);e=f[h>>2]|0;if(!e){e=LDb(32)|0;f[e+16>>2]=i;f[e+20>>2]=-1;f[e+24>>2]=0;f[e+28>>2]=-1;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=g;f[h>>2]=e;g=f[f[w>>2]>>2]|0;if(!g)g=e;else{f[w>>2]=g;g=f[h>>2]|0}Aq(f[c>>2]|0,g);f[y>>2]=(f[y>>2]|0)+1}f[e+20>>2]=j;f[e+24>>2]=k;f[e+28>>2]=l;if((b[n>>0]|0)<0)NDb(f[M>>2]|0);do if(!(b[287952]|0)){if(!(PFb(287952)|0))break;Lv(289680)}while(0);if((f[72420]|0)<=3)break;v=Nv(Mv(4)|0,185295,10)|0;v=Nv(iub(Nv(Nv(Nv(v,m,Zob(m)|0)|0,222291,1)|0,185306,5)|0,j)|0,176416,6)|0;v=Nv(iub(v,f[P>>2]|0)|0,185312,6)|0;z=yfa(f[Q>>2]|0)|0;z=Nv(v,z,Zob(z)|0)|0;Ktb(M,z+(f[(f[z>>2]|0)+-12>>2]|0)|0);v=Bvb(M,295164)|0;v=wk[f[(f[v>>2]|0)+28>>2]&1023](v,10)|0;Cvb(M);rub(z,v)|0;Rtb(z)|0}while(0);d=d+1|0;if((d|0)>=(f[B>>2]|0)){H=256;break}e=f[O>>2]|0}if((H|0)==228)TDb(M);else if((H|0)==256){ODb(m);break}}while(0);d=f[A>>2]|0;if((b[d+35>>0]|0)!=0?(E=f[r>>2]|0,(E|0)!=0):0){f[M>>2]=0;o=M+4|0;f[o>>2]=0;e=M+8|0;f[e>>2]=0;if(E>>>0>1073741823)KEb(M);j=E<<2;i=LDb(j)|0;f[M>>2]=i;k=i+(E<<2)|0;f[e>>2]=k;iGb(i|0,0,j|0)|0;f[o>>2]=k;f[P>>2]=0;k=P+4|0;f[k>>2]=0;j=P+8|0;f[j>>2]=0;e=f[N>>2]|0;if((e|0)==(s|0)){n=k;l=P;h=0;g=0;e=i}else{h=e;e=0;g=0;while(1){d=h+16|0;if((e|0)==(g|0))JD(P,d);else{f[e>>2]=f[d>>2];f[k>>2]=e+4}d=f[h+4>>2]|0;do if(!d){e=h+8|0;d=f[e>>2]|0;if((f[d>>2]|0)==(h|0))break;do{E=f[e>>2]|0;e=E+8|0;d=f[e>>2]|0}while((f[d>>2]|0)!=(E|0))}else while(1){e=f[d>>2]|0;if(!e)break;else d=e}while(0);if((d|0)==(s|0))break;h=d;e=f[k>>2]|0;g=f[j>>2]|0}n=k;l=P;d=f[A>>2]|0;h=f[P>>2]|0;g=f[k>>2]|0;e=f[M>>2]|0}cl[f[d+584>>2]&63](f[L>>2]|0,g-h>>2,h,37594,e);if((f[n>>2]|0)!=(f[l>>2]|0)){j=0;do{do if(!(b[287952]|0)){if(!(PFb(287952)|0))break;Lv(289680)}while(0);if((f[72420]|0)>3){k=Nv(Mv(4)|0,185319,25)|0;i=(f[P>>2]|0)+(j<<2)|0;d=f[s>>2]|0;do if(d){h=f[i>>2]|0;g=q;while(1){e=f[d+16>>2]|0;if(h>>>0<e>>>0){e=f[d>>2]|0;if(!e){H=289;break}else{g=d;d=e}}else{if(e>>>0>=h>>>0){H=293;break}g=d+4|0;e=f[g>>2]|0;if(!e){H=292;break}else d=e}}if((H|0)==289){H=0;e=d;g=d;break}else if((H|0)==292){H=0;e=d;break}else if((H|0)==293){H=0;e=d;break}}else{e=s;g=s}while(0);d=f[g>>2]|0;if(!d){d=LDb(32)|0;f[d+16>>2]=f[i>>2];E=d+20|0;f[E>>2]=0;f[E+4>>2]=0;f[E+8>>2]=0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=e;f[g>>2]=d;e=f[f[N>>2]>>2]|0;if(!e)e=d;else{f[N>>2]=e;e=f[g>>2]|0}Aq(f[q>>2]|0,e);f[r>>2]=(f[r>>2]|0)+1}C=d+20|0;E=b[C+11>>0]|0;D=E<<24>>24<0;E=Nv(Nv(Nv(k,D?f[C>>2]|0:C,D?f[d+24>>2]|0:E&255)|0,222291,1)|0,185345,14)|0;Nv(iub(E,f[(f[M>>2]|0)+(j<<2)>>2]|0)|0,185360,2)|0}j=j+1|0}while(j>>>0<(f[n>>2]|0)-(f[l>>2]|0)>>2>>>0)}k=Q+4|0;f[k>>2]=0;l=Q+8|0;f[l>>2]=0;m=Q+4|0;f[Q>>2]=m;e=f[M>>2]|0;c:do if((f[o>>2]|0)!=(e|0)){d=0;g=0;while(1){j=e+(d<<2)|0;do if(g){i=f[j>>2]|0;h=k;e=g;while(1){g=f[e+16>>2]|0;if((i|0)<(g|0)){g=f[e>>2]|0;if(!g){H=306;break}else{h=e;e=g}}else{if((g|0)>=(i|0)){H=310;break}h=e+4|0;g=f[h>>2]|0;if(!g){H=309;break}else e=g}}if((H|0)==306){H=0;i=e;h=e;break}else if((H|0)==309){H=0;i=e;break}else if((H|0)==310){H=0;i=e;break}}else{i=m;h=m}while(0);e=f[h>>2]|0;if(!e){g=LDb(32)|0;f[g+16>>2]=f[j>>2];f[g+20>>2]=0;f[g+24>>2]=0;f[g+28>>2]=0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=i;f[h>>2]=g;e=f[f[Q>>2]>>2]|0;if(!e)e=g;else{f[Q>>2]=e;e=f[h>>2]|0}Aq(f[k>>2]|0,e);f[l>>2]=(f[l>>2]|0)+1;e=g}g=f[(f[P>>2]|0)+(d<<2)>>2]|0;f[R>>2]=g;h=e+24|0;i=f[h>>2]|0;if(i>>>0<(f[e+28>>2]|0)>>>0){f[i>>2]=g;f[h>>2]=i+4}else FS(e+20|0,R);d=d+1|0;e=f[M>>2]|0;if(d>>>0>=(f[o>>2]|0)-e>>2>>>0)break c;g=f[m>>2]|0}}while(0);f[R>>2]=0;Zk[f[(f[A>>2]|0)+104>>2]&511](f[L>>2]|0,37593,R);d:do if(f[R>>2]|0){h=K+4|0;i=K+8|0;g=0;while(1){f[S>>2]=0;al[f[(f[A>>2]|0)+684>>2]&255](f[L>>2]|0,g,37569,S);f[I>>2]=0;al[f[(f[A>>2]|0)+684>>2]&255](f[L>>2]|0,g,37573,I);f[J>>2]=0;al[f[(f[A>>2]|0)+684>>2]&255](f[L>>2]|0,g,37572,J);do if(!(b[287952]|0)){if(!(PFb(287952)|0))break;Lv(289680)}while(0);if((f[72420]|0)>3){E=Nv(Mv(4)|0,185363,37)|0;E=Nv(Nv(iub(E,f[S>>2]|0)|0,222291,1)|0,185401,28)|0;E=Nv(iub(E,f[I>>2]|0)|0,185430,11)|0;Nv(iub(E,f[J>>2]|0)|0,246152,1)|0}d=f[I>>2]|0;if(d|0){f[K>>2]=0;f[h>>2]=0;f[i>>2]=0;if(d>>>0>1073741823)break;C=d<<2;E=LDb(C)|0;f[K>>2]=E;D=E+(d<<2)|0;f[i>>2]=D;iGb(E|0,0,C|0)|0;f[h>>2]=D;al[f[(f[A>>2]|0)+684>>2]&255](f[L>>2]|0,g,37574,E);do if(!(b[287952]|0)){if(!(PFb(287952)|0))break;Lv(289680)}while(0);if((f[72420]|0)>3)Nv(Mv(4)|0,185442,16)|0;if((f[I>>2]|0)>0){d=0;do{do if(!(b[287952]|0)){if(!(PFb(287952)|0))break;Lv(289680)}while(0);if((f[72420]|0)>3){E=Mv(4)|0;iub(E,f[(f[K>>2]|0)+(d<<2)>>2]|0)|0}e=(b[287952]|0)==0;do if((d|0)<((f[I>>2]|0)+-1|0)){do if(e){if(!(PFb(287952)|0))break;Lv(289680)}while(0);if((f[72420]|0)<=3)break;Nv(Mv(4)|0,239432,2)|0}else{do if(e){if(!(PFb(287952)|0))break;Lv(289680)}while(0);if((f[72420]|0)<=3)break;Nv(Mv(4)|0,185360,2)|0}while(0);d=d+1|0}while((d|0)<(f[I>>2]|0))}d=f[K>>2]|0;if(d|0){f[h>>2]=d;NDb(d)}}g=g+1|0;if(g>>>0>=(f[R>>2]|0)>>>0)break d}KEb(K)}while(0);GS(Q,f[m>>2]|0);d=f[P>>2]|0;if(d|0){f[n>>2]=d;NDb(d)}d=f[M>>2]|0;if(d|0){f[o>>2]=d;NDb(d)}d=f[A>>2]|0}f[P>>2]=0;Zk[f[d+104>>2]&511](f[L>>2]|0,35721,P);Zk[f[(f[A>>2]|0)+104>>2]&511](f[L>>2]|0,35722,O);e=f[O>>2]|0;do if((f[P>>2]|0)>0&(e|0)>1){f[Q>>2]=0;f[R>>2]=0;m=MDb(e)|0;n=S+11|0;o=S+8|0;p=S+4|0;l=a+64|0;d=0;e:while(1){el[f[(f[A>>2]|0)+88>>2]&15](f[L>>2]|0,d,e,0,Q,R,m);i=wk[f[(f[A>>2]|0)+100>>2]&1023](f[L>>2]|0,m)|0;do if((i|0)!=-1){j=f[R>>2]|0;k=f[Q>>2]|0;f[S>>2]=0;f[S+4>>2]=0;f[S+8>>2]=0;g=Zob(m)|0;if(g>>>0>4294967279){H=367;break e}if(g>>>0<11){b[n>>0]=g;if(!g)e=S;else{e=S;H=371}}else{H=g+16&-16;e=LDb(H)|0;f[S>>2]=e;f[o>>2]=H|-2147483648;f[p>>2]=g;H=371}if((H|0)==371){H=0;gGb(e|0,m|0,g|0)|0}b[e+g>>0]=0;h=HS(F,M,S)|0;e=f[h>>2]|0;if(!e){e=LDb(40)|0;g=e+16|0;f[g>>2]=f[S>>2];f[g+4>>2]=f[S+4>>2];f[g+8>>2]=f[S+8>>2];f[S>>2]=0;f[S+4>>2]=0;f[S+8>>2]=0;f[e+28>>2]=-1;f[e+32>>2]=0;f[e+36>>2]=-1;g=f[M>>2]|0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=g;f[h>>2]=e;g=f[f[F>>2]>>2]|0;if(!g)g=e;else{f[F>>2]=g;g=f[h>>2]|0}Aq(f[l>>2]|0,g);f[G>>2]=(f[G>>2]|0)+1}f[e+28>>2]=i;f[e+32>>2]=j;f[e+36>>2]=k;if((b[n>>0]|0)<0)NDb(f[S>>2]|0);do if(!(b[287952]|0)){if(!(PFb(287952)|0))break;Lv(289680)}while(0);if((f[72420]|0)<=3)break;a=Nv(Mv(4)|0,185459,9)|0;a=Nv(iub(Nv(Nv(Nv(a,m,Zob(m)|0)|0,222291,1)|0,185306,5)|0,i)|0,176416,6)|0;a=iub(a,f[Q>>2]|0)|0;Ktb(M,a+(f[(f[a>>2]|0)+-12>>2]|0)|0);K=Bvb(M,295164)|0;K=wk[f[(f[K>>2]|0)+28>>2]&1023](K,10)|0;Cvb(M);rub(a,K)|0;Rtb(a)|0}while(0);d=d+1|0;if((d|0)>=(f[P>>2]|0)){H=385;break}e=f[O>>2]|0}if((H|0)==367)TDb(S);else if((H|0)==385){ODb(m);break}}while(0);if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>3){S=Mv(4)|0;Ktb(M,S+(f[(f[S>>2]|0)+-12>>2]|0)|0);R=Bvb(M,295164)|0;R=wk[f[(f[R>>2]|0)+28>>2]&1023](R,10)|0;Cvb(M);rub(S,R)|0;Rtb(S)|0}IS(N,f[s>>2]|0);u=T;return}function qS(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;i=u;u=u+32|0;c=i+16|0;d=i+12|0;e=i;g=a+20|0;h=f[g>>2]|0;if(!h){h=0;u=i;return h|0}f[d>>2]=0;j=a+16|0;Nk[f[(f[j>>2]|0)+256>>2]&2047](h);Zk[f[(f[j>>2]|0)+104>>2]&511](f[g>>2]|0,35715,d);if((f[d>>2]|0)==1)a=1;else{if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>1){l=Nv(Mv(2)|0,185068,26)|0;h=f[a+12>>2]|0;k=h+12|0;j=b[k+11>>0]|0;d=j<<24>>24<0;j=Nv(Nv(Nv(l,d?f[k>>2]|0:k,d?f[h+16>>2]|0:j&255)|0,222291,1)|0,185095,4)|0;j=Nv(jub(j,f[g>>2]|0)|0,185012,11)|0;j=jub(j,f[a+40>>2]|0)|0;Ktb(c,j+(f[(f[j>>2]|0)+-12>>2]|0)|0);h=Bvb(c,295164)|0;h=wk[f[(f[h>>2]|0)+28>>2]&1023](h,10)|0;Cvb(c);rub(j,h)|0;Rtb(j)|0};f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;if(wk[f[(f[a>>2]|0)+20>>2]&1023](a,e)|0){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>1){j=Nv(Mv(2)|0,185100,9)|0;l=b[e+11>>0]|0;k=l<<24>>24<0;l=Nv(j,k?f[e>>2]|0:e,k?f[e+4>>2]|0:l&255)|0;Ktb(c,l+(f[(f[l>>2]|0)+-12>>2]|0)|0);k=Bvb(c,295164)|0;k=wk[f[(f[k>>2]|0)+28>>2]&1023](k,10)|0;Cvb(c);rub(l,k)|0;Rtb(l)|0}}if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>1){l=Mv(2)|0;Ktb(c,l+(f[(f[l>>2]|0)+-12>>2]|0)|0);k=Bvb(c,295164)|0;k=wk[f[(f[k>>2]|0)+28>>2]&1023](k,10)|0;Cvb(c);rub(l,k)|0;Rtb(l)|0}if((b[e+11>>0]|0)<0)NDb(f[e>>2]|0);a=0}l=a;u=i;return l|0}function rS(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;h=u;u=u+16|0;c=h+4|0;e=h;g=f[a+20>>2]|0;if(!g){g=0;u=h;return g|0}d=f[a+16>>2]|0;f[c>>2]=0;f[e>>2]=0;Zk[f[d+104>>2]&511](g,35716,c);a=f[c>>2]|0;if((a|0)>1){c=MDb(a)|0;al[f[d+112>>2]&255](g,a,e,c);if((f[e>>2]|0)>0)eEb(b,c)|0;ODb(c);a=(f[e>>2]|0)>0}else a=0;g=a;u=h;return g|0}function sS(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;l=u;u=u+16|0;c=l+4|0;g=l;k=a+20|0;if(!(f[k>>2]|0)){k=0;u=l;return k|0}Vk[f[(f[a>>2]|0)+12>>2]&1023](a,b);f[c>>2]=0;d=a+16|0;Zk[f[(f[d>>2]|0)+104>>2]&511](f[k>>2]|0,34625,c);if(!(f[c>>2]|0))a=0;else{a=LDb(48)|0;BCa(a);e=a+12|0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;f[a+24>>2]=2;f[a+28>>2]=0;f[a>>2]=99088;e=a+32|0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;f[e+12>>2]=0;b=f[c>>2]|0;c=a+36|0;f[c>>2]=0;do if(b)if((b|0)<0)KEb(e);else{h=LDb(b)|0;i=h+b|0;iGb(h|0,0,b|0)|0;j=i;f[e>>2]=h;f[c>>2]=j;f[a+40>>2]=j;j=b;break}else{h=0;i=0;j=0}while(0);f[g>>2]=0;cl[f[(f[d>>2]|0)+608>>2]&63](f[k>>2]|0,j,0,g,(h|0)==(i|0)?0:h);f[a+44>>2]=f[g>>2]}k=a;u=l;return k|0}function tS(a){a=a|0;var b=0;b=f[a+20>>2]|0;if(!b)return;Nk[f[(f[a+16>>2]|0)+176>>2]&2047](b);return}function uS(a){a=a|0;var b=0;f[a>>2]=99088;b=f[a+32>>2]|0;if(!b){ow(a);return}f[a+36>>2]=b;NDb(b);ow(a);return}function vS(a){a=a|0;var b=0;f[a>>2]=99088;b=f[a+32>>2]|0;if(b|0){f[a+36>>2]=b;NDb(b)}ow(a);NDb(a);return}function wS(a){a=a|0;var b=0;a=LDb(48)|0;BCa(a);b=a+12|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[a+24>>2]=2;f[a+28>>2]=0;f[a>>2]=99088;b=a+32|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[b+12>>2]=0;return a|0}function xS(a,b){a=a|0;b=b|0;var c=0;c=LDb(48)|0;BS(c,a,b);return c|0}function yS(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,61808,0)|0)!=0;return b|0}function zS(a){a=a|0;return 241076}function AS(a){a=a|0;return 185024}function BS(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;nw(a,b,c);f[a>>2]=99088;d=a+32|0;e=b+32|0;f[d>>2]=0;j=a+36|0;f[j>>2]=0;g=a+40|0;f[g>>2]=0;h=b+36|0;c=(f[h>>2]|0)-(f[e>>2]|0)|0;if(c|0){if((c|0)<0)KEb(d);i=LDb(c)|0;f[j>>2]=i;f[d>>2]=i;f[g>>2]=i+c;d=f[e>>2]|0;c=(f[h>>2]|0)-d|0;if((c|0)>0){gGb(i|0,d|0,c|0)|0;f[j>>2]=i+c}}f[a+44>>2]=f[b+44>>2];return}function CS(a,b){a=a|0;b=b|0;if(!b)return;else{CS(a,f[b>>2]|0);CS(a,f[b+4>>2]|0);NDb(b);return}}function DS(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0;j=u;u=u+16|0;g=j;h=JS(c,g,d)|0;d=f[h>>2]|0;if(d|0){c=d;i=0;f[a>>2]=c;c=a+4|0;b[c>>0]=i;u=j;return}i=LDb(36)|0;VDb(i+16|0,e);k=e+12|0;e=f[k+4>>2]|0;d=i+28|0;f[d>>2]=f[k>>2];f[d+4>>2]=e;d=f[g>>2]|0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=d;f[h>>2]=i;d=f[f[c>>2]>>2]|0;if(!d)d=i;else{f[c>>2]=d;d=f[h>>2]|0}Aq(f[c+4>>2]|0,d);k=c+8|0;f[k>>2]=(f[k>>2]|0)+1;k=i;c=1;f[a>>2]=k;k=a+4|0;b[k>>0]=c;u=j;return}function ES(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=a+4|0;d=f[m>>2]|0;do if(d|0){l=b[c+11>>0]|0;k=l<<24>>24<0;l=k?f[c+4>>2]|0:l&255;k=k?f[c>>2]|0:c;a=m;do{e=d+16|0;h=b[e+11>>0]|0;g=h<<24>>24<0;h=g?f[d+20>>2]|0:h&255;i=l>>>0<h>>>0;c=i?l:h;if((c|0)!=0?(j=ipb(g?f[e>>2]|0:e,k,c)|0,(j|0)!=0):0)c=j;else c=h>>>0<l>>>0?-1:i&1;i=(c|0)<0;a=i?a:d;d=f[(i?d+4|0:d)>>2]|0}while((d|0)!=0);if((a|0)!=(m|0)){d=a+16|0;g=b[d+11>>0]|0;e=g<<24>>24<0;g=e?f[a+20>>2]|0:g&255;c=g>>>0<l>>>0?g:l;if(c|0?(n=ipb(k,e?f[d>>2]|0:d,c)|0,n|0):0){if((n|0)<0)break;return a|0}if(l>>>0>=g>>>0){n=a;return n|0}}}while(0);n=m;return n|0}function FS(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;i=a+4|0;j=f[a>>2]|0;k=(f[i>>2]|0)-j|0;g=k>>2;c=g+1|0;if(c>>>0>1073741823)KEb(a);l=a+8|0;e=(f[l>>2]|0)-j|0;h=e>>1;h=e>>2>>>0<536870911?(h>>>0<c>>>0?c:h):1073741823;do if(h)if(h>>>0>1073741823){l=mb(8)|0;RDb(l,238482);f[l>>2]=144484;qb(l|0,84192,1464)}else{e=LDb(h<<2)|0;d=e;break}else{d=0;e=0}while(0);c=d+(g<<2)|0;f[c>>2]=f[b>>2];if((k|0)>0)gGb(e|0,j|0,k|0)|0;f[a>>2]=d;f[i>>2]=c+4;f[l>>2]=d+(h<<2);if(!j)return;NDb(j);return}function GS(a,b){a=a|0;b=b|0;if(!b)return;GS(a,f[b>>2]|0);GS(a,f[b+4>>2]|0);a=f[b+20>>2]|0;if(a|0){f[b+24>>2]=a;NDb(a)}NDb(b);return}function HS(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;e=a+4|0;h=f[e>>2]|0;if(!h){f[c>>2]=e;o=e;return o|0}m=b[d+11>>0]|0;l=m<<24>>24<0;m=l?f[d+4>>2]|0:m&255;l=l?f[d>>2]|0:d;g=a+4|0;e=h;while(1){d=e+16|0;h=b[d+11>>0]|0;a=h<<24>>24<0;h=a?f[e+20>>2]|0:h&255;k=h>>>0<m>>>0;j=k?h:m;i=(j|0)==0;if(!i?(n=a?f[d>>2]|0:d,o=ipb(l,n,j)|0,(o|0)!=0):0)if((o|0)<0)a=7;else{d=n;a=11}else if(m>>>0>=h>>>0)if(i)a=12;else{d=a?f[d>>2]|0:d;a=11}else a=7;if((a|0)==7){a=0;d=f[e>>2]|0;if(!d){a=8;break}else{g=e;e=d}}else if((a|0)==11){d=ipb(d,l,j)|0;if(d)if((d|0)<0)a=14;else{a=16;break}else a=12}if((a|0)==12)if(k)a=14;else{a=16;break}if((a|0)==14){d=e+4|0;a=f[d>>2]|0;if(!a){a=15;break}else{g=d;e=a}}}if((a|0)==8){f[c>>2]=e;o=e;return o|0}else if((a|0)==15){f[c>>2]=e;o=d;return o|0}else if((a|0)==16){f[c>>2]=e;o=g;return o|0}return 0}function IS(a,c){a=a|0;c=c|0;if(!c)return;IS(a,f[c>>2]|0);IS(a,f[c+4>>2]|0);a=c+20|0;if((b[a+11>>0]|0)<0)NDb(f[a>>2]|0);NDb(c);return}function JS(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;e=a+4|0;h=f[e>>2]|0;if(!h){f[c>>2]=e;o=e;return o|0}m=b[d+11>>0]|0;l=m<<24>>24<0;m=l?f[d+4>>2]|0:m&255;l=l?f[d>>2]|0:d;g=a+4|0;e=h;while(1){d=e+16|0;h=b[d+11>>0]|0;a=h<<24>>24<0;h=a?f[e+20>>2]|0:h&255;k=h>>>0<m>>>0;j=k?h:m;i=(j|0)==0;if(!i?(n=a?f[d>>2]|0:d,o=ipb(l,n,j)|0,(o|0)!=0):0)if((o|0)<0)a=7;else{d=n;a=11}else if(m>>>0>=h>>>0)if(i)a=12;else{d=a?f[d>>2]|0:d;a=11}else a=7;if((a|0)==7){a=0;d=f[e>>2]|0;if(!d){a=8;break}else{g=e;e=d}}else if((a|0)==11){d=ipb(d,l,j)|0;if(d)if((d|0)<0)a=14;else{a=16;break}else a=12}if((a|0)==12)if(k)a=14;else{a=16;break}if((a|0)==14){d=e+4|0;a=f[d>>2]|0;if(!a){a=15;break}else{g=d;e=a}}}if((a|0)==8){f[c>>2]=e;o=e;return o|0}else if((a|0)==15){f[c>>2]=e;o=d;return o|0}else if((a|0)==16){f[c>>2]=e;o=g;return o|0}return 0}function KS(a){a=a|0;var b=0,c=0,d=0,e=0,g=0;g=a+36|0;c=a+40|0;b=f[c>>2]|0;do if(b){d=a+40|0;while(1){c=f[b+16>>2]|0;if(c>>>0>61824>>>0){c=f[b>>2]|0;if(!c){c=5;break}else{d=b;b=c}}else{if(c>>>0>=61824>>>0){c=9;break}d=b+4|0;c=f[d>>2]|0;if(!c){c=8;break}else b=c}}if((c|0)==5){e=b;d=b;break}else if((c|0)==8){e=b;break}else if((c|0)==9){e=b;break}}else{e=c;d=c}while(0);b=f[d>>2]|0;if(!b){b=LDb(24)|0;f[b+16>>2]=61824;f[b+20>>2]=0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=e;f[d>>2]=b;c=f[f[g>>2]>>2]|0;if(!c)c=b;else{f[g>>2]=c;c=f[d>>2]|0}Aq(f[a+40>>2]|0,c);g=a+44|0;f[g>>2]=(f[g>>2]|0)+1}c=b+20|0;if(f[c>>2]|0){a=f[c>>2]|0;return a|0}d=LDb(52)|0;RS(d,f[a+24>>2]|0);b=f[c>>2]|0;if((b|0)==(d|0)){a=f[c>>2]|0;return a|0}f[c>>2]=d;a=d+8|0;f[a>>2]=(f[a>>2]|0)+1;if(!b){a=f[c>>2]|0;return a|0}g=b+8|0;a=f[g>>2]|0;f[g>>2]=a-1;if((a|0)!=1){a=f[c>>2]|0;return a|0}X4(b,1,1);a=f[c>>2]|0;return a|0}function LS(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;d=f[a>>2]|0;if(!d)return;e=a+4|0;b=f[e>>2]|0;if((b|0)==(d|0))b=d;else{do{b=b+-4|0;c=f[b>>2]|0;if(c|0?(h=c+8|0,g=f[h>>2]|0,f[h>>2]=g-1,(g|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(d|0));b=f[a>>2]|0}f[e>>2]=d;NDb(b);return}function MS(a){a=a|0;jS(a,f[a+4>>2]|0);return}function NS(a){a=a|0;kS(a,f[a+4>>2]|0);return}function OS(a){a=a|0;lS(a,f[a+4>>2]|0);return}function PS(a){a=a|0;mS(a,f[a+4>>2]|0);return}function QS(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(b|0?(d=b+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(b,1,1);f[a>>2]=0;return}function RS(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;h=u;u=u+16|0;d=h;e=LDb(32)|0;f[d>>2]=e;f[d+8>>2]=-2147483616;f[d+4>>2]=16;g=e;i=185469;j=g+16|0;do{b[g>>0]=b[i>>0]|0;g=g+1|0;i=i+1|0}while((g|0)<(j|0));b[e+16>>0]=0;az(a,d,c);f[a>>2]=92568;yGa(a+28|0,0);j=a+40|0;f[j>>2]=j;f[a+44>>2]=j;f[a+48>>2]=0;if((b[d+11>>0]|0)>=0){f[a>>2]=99260;u=h;return}NDb(f[d>>2]|0);f[a>>2]=99260;u=h;return}function SS(a){a=a|0;var b=0,c=0,d=0,e=0,g=0;f[a>>2]=92568;d=a+40|0;c=a+48|0;if(f[c>>2]|0?(b=f[a+44>>2]|0,e=(f[d>>2]|0)+4|0,g=f[b>>2]|0,f[g+4>>2]=f[e>>2],f[f[e>>2]>>2]=g,f[c>>2]=0,(b|0)!=(d|0)):0)do{g=b;b=f[b+4>>2]|0;NDb(g)}while((b|0)!=(d|0));d8(a+28|0);hx(a);NDb(a);return}function TS(a,c){a=a|0;c=c|0;a=By(f[a+24>>2]|0,1)|0;if(!(b[a+24>>0]|0))return;Nk[f[a+64>>2]&2047](c);return}function US(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;f[a>>2]=99028;d=a+20|0;e=f[d>>2]|0;if(!e){V4(a);return}g=a+24|0;b=f[g>>2]|0;if((b|0)==(e|0))b=e;else{do{b=b+-4|0;c=f[b>>2]|0;if(c|0?(i=c+8|0,h=f[i>>2]|0,f[i>>2]=h-1,(h|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(e|0));b=f[d>>2]|0}f[g>>2]=e;NDb(b);V4(a);return}function VS(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;f[a>>2]=99028;d=a+20|0;e=f[d>>2]|0;if(!e){V4(a);NDb(a);return}g=a+24|0;b=f[g>>2]|0;if((b|0)==(e|0))b=e;else{do{b=b+-4|0;c=f[b>>2]|0;if(c|0?(i=c+8|0,h=f[i>>2]|0,f[i>>2]=h-1,(h|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(e|0));b=f[d>>2]|0}f[g>>2]=e;NDb(b);V4(a);NDb(a);return}function WS(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=a+8|0;g=f[m>>2]|0;n=a+4|0;d=f[n>>2]|0;if(g-d>>2>>>0>=b>>>0){do{e=f[c>>2]|0;f[d>>2]=e;if(e){d=e+8|0;f[d>>2]=(f[d>>2]|0)+1;d=f[n>>2]|0}d=d+4|0;f[n>>2]=d;b=b+-1|0}while((b|0)!=0);return}e=f[a>>2]|0;k=d-e>>2;d=k+b|0;if(d>>>0>1073741823)KEb(a);j=g-e|0;l=j>>1;d=j>>2>>>0<536870911?(l>>>0<d>>>0?d:l):1073741823;do if(d)if(d>>>0>1073741823){n=mb(8)|0;RDb(n,238482);f[n>>2]=144484;qb(n|0,84192,1464)}else{l=LDb(d<<2)|0;break}else l=0;while(0);j=l+(k<<2)|0;e=j;i=l+(d<<2)|0;d=e;h=j;while(1){g=f[c>>2]|0;f[h>>2]=g;if(!g)d=h;else{h=g+8|0;f[h>>2]=(f[h>>2]|0)+1}g=d+4|0;b=b+-1|0;if(!b)break;else{d=g;h=g}}c=g;d=f[a>>2]|0;b=d;g=f[n>>2]|0;if((g|0)==(d|0))g=b;else{h=k+-1-((g+-4-b|0)>>>2)|0;e=j;while(1){g=g+-4|0;b=f[g>>2]|0;f[e+-4>>2]=b;if(b|0){k=b+8|0;f[k>>2]=(f[k>>2]|0)+1}if((g|0)==(d|0))break;else e=e+-4|0}e=l+(h<<2)|0;g=f[a>>2]|0;d=f[n>>2]|0}f[a>>2]=e;f[n>>2]=c;f[m>>2]=i;b=g;if((d|0)!=(b|0))do{d=d+-4|0;e=f[d>>2]|0;if(e|0?(m=e+8|0,n=f[m>>2]|0,f[m>>2]=n-1,(n|0)==1):0)X4(e,1,1);f[d>>2]=0}while((d|0)!=(b|0));if(!g)return;NDb(g);return}function XS(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0;i=u;u=u+16|0;g=i;f[g>>2]=0;h=a+4|0;c=f[h>>2]|0;e=f[a>>2]|0;d=c-e>>2;if(d>>>0>=b>>>0){if(d>>>0>b>>>0){b=e+(b<<2)|0;if((b|0)!=(c|0))do{c=c+-4|0;a=f[c>>2]|0;if(a|0?(d=a+8|0,e=f[d>>2]|0,f[d>>2]=e-1,(e|0)==1):0)X4(a,1,1);f[c>>2]=0}while((c|0)!=(b|0));f[h>>2]=b}}else WS(a,b-d|0,g);c=f[g>>2]|0;if(!c){u=i;return}g=c+8|0;h=f[g>>2]|0;f[g>>2]=h-1;if((h|0)!=1){u=i;return}X4(c,1,1);u=i;return}function YS(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=u;u=u+16|0;d=l;mw(a,b,c);f[a>>2]=98816;Wx()|0;k=f[(f[72465]|0)+84>>2]|0;f[d>>2]=0;ZS(a+56|0,k,d);d=f[d>>2]|0;if(d|0?(j=d+8|0,k=f[j>>2]|0,f[j>>2]=k-1,(k|0)==1):0)X4(d,1,1);i=a+68|0;f[a+72>>2]=0;f[a+76>>2]=0;f[i>>2]=a+72;j=a+80|0;f[a+84>>2]=0;f[a+88>>2]=0;f[j>>2]=a+84;f[a+96>>2]=0;f[a+100>>2]=0;f[a+92>>2]=a+96;g=a+104|0;k=a+136|0;f[k>>2]=0;f[a+140>>2]=0;f[a+144>>2]=0;f[a+152>>2]=0;f[a+156>>2]=0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;f[a+148>>2]=a+152;f[a+164>>2]=0;f[a+168>>2]=0;f[a+160>>2]=a+164;f[a+176>>2]=0;f[a+180>>2]=0;f[a+172>>2]=a+176;f[a+184>>2]=0;f[a+188>>2]=0;f[a+192>>2]=0;g=b+104|0;h=b+108|0;d=f[g>>2]|0;e=(f[h>>2]|0)!=(d|0);if(!(f[c+4>>2]&16)){if(e){e=0;do{_S(a,f[d+(e<<2)>>2]|0)|0;e=e+1|0;d=f[g>>2]|0}while(e>>>0<(f[h>>2]|0)-d>>2>>>0)}}else if(e){e=0;do{m=LDb(152)|0;J5(m,f[d+(e<<2)>>2]|0,c);_S(a,m)|0;e=e+1|0;d=f[g>>2]|0}while(e>>>0<(f[h>>2]|0)-d>>2>>>0)}d=f[b+68>>2]|0;g=b+72|0;if((d|0)!=(g|0)){c=d;while(1){m=f[c+28>>2]|0;d=$S(i,c+16|0)|0;f[d>>2]=m;aT(a);d=f[c+4>>2]|0;if(!d){e=c+8|0;d=f[e>>2]|0;if((f[d>>2]|0)!=(c|0))do{m=f[e>>2]|0;e=m+8|0;d=f[e>>2]|0}while((f[d>>2]|0)!=(m|0))}else while(1){e=f[d>>2]|0;if(!e)break;else d=e}if((d|0)==(g|0))break;else c=d}}d=f[b+80>>2]|0;g=b+84|0;if((d|0)!=(g|0)){c=d;while(1){m=f[c+28>>2]|0;d=$S(j,c+16|0)|0;f[d>>2]=m;aT(a);d=f[c+4>>2]|0;if(!d){e=c+8|0;d=f[e>>2]|0;if((f[d>>2]|0)!=(c|0))do{m=f[e>>2]|0;e=m+8|0;d=f[e>>2]|0}while((f[d>>2]|0)!=(m|0))}else while(1){e=f[d>>2]|0;if(!e)break;else d=e}if((d|0)==(g|0))break;else c=d}}f[a+120>>2]=f[b+120>>2];f[a+124>>2]=f[b+124>>2];f[a+128>>2]=f[b+128>>2];f[a+132>>2]=f[b+132>>2];if((a|0)==(b|0)){u=l;return}bT(k,f[b+136>>2]|0,f[b+140>>2]|0);u=l;return}function ZS(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0;f[a>>2]=0;e=a+4|0;f[e>>2]=0;d=a+8|0;f[d>>2]=0;if(!b)return;if(b>>>0>1073741823)KEb(a);g=LDb(b<<2)|0;f[e>>2]=g;f[a>>2]=g;f[d>>2]=g+(b<<2);a=g;do{d=f[c>>2]|0;f[a>>2]=d;if(d){a=d+8|0;f[a>>2]=(f[a>>2]|0)+1;a=f[e>>2]|0}a=a+4|0;f[e>>2]=a;b=b+-1|0}while((b|0)!=0);return}function _S(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=u;u=u+16|0;k=m;if(!b){a=0;u=m;return a|0}j=a+104|0;l=a+108|0;c=f[l>>2]|0;d=f[j>>2]|0;e=d;a:do if((c|0)!=(d|0)){d=c-d>>2;c=0;while(1){if((f[e+(c<<2)>>2]|0)==(b|0)){c=0;break}c=c+1|0;if(c>>>0>=d>>>0)break a}u=m;return c|0}while(0);e=a+56|0;g=a+60|0;if((f[g>>2]|0)!=(f[e>>2]|0)){c=0;do{d=dS(e,c)|0;if(f[d>>2]|0?(i=dS(e,c)|0,i=f[i>>2]|0,h=f[i+20>>2]|0,i=i+24|0,(h|0)!=(f[i>>2]|0)):0){d=h;do{fS(f[d>>2]|0,b);d=d+4|0}while((d|0)!=(f[i>>2]|0))}c=c+1|0}while(c>>>0<(f[g>>2]|0)-(f[e>>2]|0)>>2>>>0)}WCa(b,a)|0;f[k>>2]=b;c=b+8|0;f[c>>2]=(f[c>>2]|0)+1;c=f[l>>2]|0;if(c>>>0<(f[a+112>>2]|0)>>>0){d=f[k>>2]|0;f[c>>2]=d;if(d){c=d+8|0;f[c>>2]=(f[c>>2]|0)+1;c=f[l>>2]|0}f[l>>2]=c+4}else gS(j,k);c=f[k>>2]|0;if(c|0?(k=c+8|0,l=f[k>>2]|0,f[k>>2]=l-1,(l|0)==1):0)X4(c,1,1);aT(a);a=1;u=m;return a|0}function $S(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;h=u;u=u+16|0;d=h;e=gT(a,d,b)|0;c=f[e>>2]|0;if(c|0){a=c;a=a+28|0;u=h;return a|0}g=LDb(32)|0;VDb(g+16|0,b);f[g+28>>2]=0;c=f[d>>2]|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=c;f[e>>2]=g;c=f[f[a>>2]>>2]|0;if(!c)c=g;else{f[a>>2]=c;c=f[e>>2]|0}Aq(f[a+4>>2]|0,c);a=a+8|0;f[a>>2]=(f[a>>2]|0)+1;a=g;a=a+28|0;u=h;return a|0}function aT(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0;e=a+56|0;g=a+60|0;if((f[g>>2]|0)!=(f[e>>2]|0)){c=0;do{d=dS(e,c)|0;if(f[d>>2]|0?(i=dS(e,c)|0,i=f[i>>2]|0,h=f[i+20>>2]|0,i=f[i+24>>2]|0,(h|0)!=(i|0)):0){d=h;do{j=f[d>>2]|0;b[j+36>>0]=1;b[j+37>>0]=0;d=d+4|0}while((d|0)!=(i|0))}c=c+1|0}while(c>>>0<(f[g>>2]|0)-(f[e>>2]|0)>>2>>>0)}g=a+148|0;d=a+152|0;Iy(g,f[d>>2]|0);f[a+156>>2]=0;f[g>>2]=d;f[d>>2]=0;d=a+160|0;e=a+164|0;Iy(d,f[e>>2]|0);f[a+168>>2]=0;f[d>>2]=e;f[e>>2]=0;e=a+172|0;d=a+176|0;Iy(e,f[d>>2]|0);f[a+180>>2]=0;f[e>>2]=d;f[d>>2]=0;d=f[a+184>>2]|0;e=a+188|0;c=f[e>>2]|0;if((c|0)!=(d|0))do{j=c;c=c+-12|0;Iy(c,f[j+-8>>2]|0)}while((c|0)!=(d|0));f[e>>2]=d;c=f[a+104>>2]|0;d=a+108|0;if((c|0)==(f[d>>2]|0))return;do{dT(g,(f[c>>2]|0)+80|0);c=c+4|0}while((c|0)!=(f[d>>2]|0));return}function bT(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0;j=(d-c|0)/12|0;k=a+8|0;e=f[k>>2]|0;i=f[a>>2]|0;g=i;if(j>>>0<=((e-i|0)/12|0)>>>0){a=a+4|0;e=((f[a>>2]|0)-i|0)/12|0;h=j>>>0>e>>>0;e=c+(e*12|0)|0;i=h?e:d;if((i|0)!=(c|0))do{$Db(g,c)|0;c=c+12|0;g=g+12|0}while((c|0)!=(i|0));if(h){if((i|0)==(d|0))return;c=f[a>>2]|0;do{VDb(c,e);e=e+12|0;c=(f[a>>2]|0)+12|0;f[a>>2]=c}while((e|0)!=(d|0));return}e=f[a>>2]|0;if((e|0)!=(g|0))do{e=e+-12|0;if((b[e+11>>0]|0)<0)NDb(f[e>>2]|0)}while((e|0)!=(g|0));f[a>>2]=g;return}if(i){h=a+4|0;e=f[h>>2]|0;if((e|0)==(g|0))e=i;else{do{e=e+-12|0;if((b[e+11>>0]|0)<0)NDb(f[e>>2]|0)}while((e|0)!=(g|0));e=f[a>>2]|0}f[h>>2]=g;NDb(e);f[k>>2]=0;f[h>>2]=0;f[a>>2]=0;e=0}if(j>>>0>357913941)KEb(a);i=(e|0)/12|0;g=i<<1;g=i>>>0<178956970?(g>>>0<j>>>0?j:g):357913941;if(g>>>0>357913941)KEb(a);e=LDb(g*12|0)|0;h=a+4|0;f[h>>2]=e;f[a>>2]=e;f[k>>2]=e+(g*12|0);if((c|0)==(d|0))return;do{VDb(e,c);c=c+12|0;e=(f[h>>2]|0)+12|0;f[h>>2]=e}while((c|0)!=(d|0));return}function cT(a,c){a=a|0;c=c|0;if(!c)return;cT(a,f[c>>2]|0);cT(a,f[c+4>>2]|0);a=c+16|0;if((b[a+11>>0]|0)<0)NDb(f[a>>2]|0);NDb(c);return}function dT(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=u;u=u+16|0;m=o+4|0;n=o;c=f[b>>2]|0;g=b+4|0;if((c|0)!=(g|0)){h=a+4|0;e=c;while(1){c=e+16|0;f[n>>2]=h;f[m>>2]=f[n>>2];eT(a,m,c,c)|0;c=f[e+4>>2]|0;if(!c){d=e+8|0;c=f[d>>2]|0;if((f[c>>2]|0)!=(e|0))do{l=f[d>>2]|0;d=l+8|0;c=f[d>>2]|0}while((f[c>>2]|0)!=(l|0))}else while(1){d=f[c>>2]|0;if(!d)break;else c=d}if((c|0)==(g|0))break;else e=c}}c=f[b+12>>2]|0;g=b+16|0;if((c|0)!=(g|0)){h=a+12|0;i=a+16|0;e=c;while(1){c=e+16|0;f[n>>2]=i;f[m>>2]=f[n>>2];eT(h,m,c,c)|0;c=f[e+4>>2]|0;if(!c){d=e+8|0;c=f[d>>2]|0;if((f[c>>2]|0)!=(e|0))do{l=f[d>>2]|0;d=l+8|0;c=f[d>>2]|0}while((f[c>>2]|0)!=(l|0))}else while(1){d=f[c>>2]|0;if(!d)break;else c=d}if((c|0)==(g|0))break;else e=c}}c=f[b+24>>2]|0;g=b+28|0;if((c|0)!=(g|0)){h=a+24|0;i=a+28|0;e=c;while(1){c=e+16|0;f[n>>2]=i;f[m>>2]=f[n>>2];eT(h,m,c,c)|0;c=f[e+4>>2]|0;if(!c){d=e+8|0;c=f[d>>2]|0;if((f[c>>2]|0)!=(e|0))do{l=f[d>>2]|0;d=l+8|0;c=f[d>>2]|0}while((f[c>>2]|0)!=(l|0))}else while(1){d=f[c>>2]|0;if(!d)break;else c=d}if((c|0)==(g|0))break;else e=c}}l=b+36|0;d=(f[b+40>>2]|0)-(f[l>>2]|0)|0;j=(d|0)/12|0;k=a+36|0;c=((f[a+40>>2]|0)-(f[k>>2]|0)|0)/12|0;if(j>>>0>c>>>0)Hy(k,j-c|0);if(!d){u=o;return}h=0;do{i=f[l>>2]|0;c=f[k>>2]|0;d=f[i+(h*12|0)>>2]|0;i=i+(h*12|0)+4|0;if((d|0)!=(i|0)){b=c+(h*12|0)|0;g=c+(h*12|0)+4|0;e=d;while(1){c=e+16|0;f[n>>2]=g;f[m>>2]=f[n>>2];eT(b,m,c,c)|0;c=f[e+4>>2]|0;if(!c){d=e+8|0;c=f[d>>2]|0;if((f[c>>2]|0)!=(e|0))do{a=f[d>>2]|0;d=a+8|0;c=f[d>>2]|0}while((f[c>>2]|0)!=(a|0))}else while(1){d=f[c>>2]|0;if(!d)break;else c=d}if((c|0)==(i|0))break;else e=c}}h=h+1|0}while(h>>>0<j>>>0);u=o;return}function eT(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;h=u;u=u+16|0;e=h+12|0;g=h+8|0;i=h;f[i>>2]=f[b>>2];f[e>>2]=f[i>>2];e=fT(a,e,g,h+4|0,c)|0;b=f[e>>2]|0;if(b|0){i=b;u=h;return i|0}c=LDb(28)|0;VDb(c+16|0,d);b=f[g>>2]|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=b;f[e>>2]=c;b=f[f[a>>2]>>2]|0;if(!b)b=c;else{f[a>>2]=b;b=f[e>>2]|0}Aq(f[a+4>>2]|0,b);i=a+8|0;f[i>>2]=(f[i>>2]|0)+1;i=c;u=h;return i|0}function fT(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|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;q=a+4|0;v=f[c>>2]|0;c=v;do if((v|0)!=(q|0)){m=v+16|0;k=b[m+11>>0]|0;j=k<<24>>24<0;k=j?f[v+20>>2]|0:k&255;t=b[g+11>>0]|0;s=t<<24>>24<0;t=s?f[g+4>>2]|0:t&255;p=k>>>0<t>>>0;o=p?k:t;l=(o|0)==0;if(!l?(h=s?f[g>>2]|0:g,i=j?f[m>>2]|0:m,n=ipb(h,i,o)|0,(n|0)!=0):0)if((n|0)<0)break;else w=23;else{if(t>>>0<k>>>0)break;if(l)w=24;else{i=j?f[m>>2]|0:m;h=s?f[g>>2]|0:g;w=23}}if((w|0)==23){h=ipb(i,h,o)|0;if(h){if((h|0)>=0)w=42}else w=24}if((w|0)==24?!p:0)w=42;if((w|0)==42){f[d>>2]=c;f[e>>2]=c;d=e;return d|0}h=f[v+4>>2]|0;if(!h){i=v+8|0;h=f[i>>2]|0;if((f[h>>2]|0)!=(v|0))do{r=f[i>>2]|0;i=r+8|0;h=f[i>>2]|0}while((f[h>>2]|0)!=(r|0))}else while(1){i=f[h>>2]|0;if(!i)break;else h=i}do if((h|0)!=(q|0)){j=h+16|0;l=b[j+11>>0]|0;k=l<<24>>24<0;l=k?f[h+20>>2]|0:l&255;i=l>>>0<t>>>0?l:t;if((i|0)!=0?(u=ipb(s?f[g>>2]|0:g,k?f[j>>2]|0:j,i)|0,(u|0)!=0):0){if((u|0)<0)break}else w=36;if((w|0)==36?t>>>0<l>>>0:0)break;d=Ly(a,d,g)|0;return d|0}while(0);if(!(f[v+4>>2]|0)){f[d>>2]=c;d=v+4|0;return d|0}else{f[d>>2]=h;d=h;return d|0}}while(0);n=f[v>>2]|0;do if((f[a>>2]|0)!=(v|0)){if(!n){c=v;do{u=c;c=f[c+8>>2]|0}while((f[c>>2]|0)==(u|0));h=c}else{c=n;while(1){h=f[c+4>>2]|0;if(!h){h=c;break}else c=h}}c=h;j=h+16|0;l=b[g+11>>0]|0;k=l<<24>>24<0;l=k?f[g+4>>2]|0:l&255;i=b[j+11>>0]|0;m=i<<24>>24<0;i=m?f[h+20>>2]|0:i&255;h=l>>>0<i>>>0?l:i;if((h|0)!=0?(r=ipb(m?f[j>>2]|0:j,k?f[g>>2]|0:g,h)|0,(r|0)!=0):0){if((r|0)<0)break}else w=15;if((w|0)==15?i>>>0<l>>>0:0)break;d=Ly(a,d,g)|0;return d|0}while(0);if(!n){f[d>>2]=v;d=v;return d|0}else{f[d>>2]=c;d=c+4|0;return d|0}return 0}function gT(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;e=a+4|0;h=f[e>>2]|0;if(!h){f[c>>2]=e;o=e;return o|0}m=b[d+11>>0]|0;l=m<<24>>24<0;m=l?f[d+4>>2]|0:m&255;l=l?f[d>>2]|0:d;g=a+4|0;e=h;while(1){d=e+16|0;h=b[d+11>>0]|0;a=h<<24>>24<0;h=a?f[e+20>>2]|0:h&255;k=h>>>0<m>>>0;j=k?h:m;i=(j|0)==0;if(!i?(n=a?f[d>>2]|0:d,o=ipb(l,n,j)|0,(o|0)!=0):0)if((o|0)<0)a=7;else{d=n;a=11}else if(m>>>0>=h>>>0)if(i)a=12;else{d=a?f[d>>2]|0:d;a=11}else a=7;if((a|0)==7){a=0;d=f[e>>2]|0;if(!d){a=8;break}else{g=e;e=d}}else if((a|0)==11){d=ipb(d,l,j)|0;if(d)if((d|0)<0)a=14;else{a=16;break}else a=12}if((a|0)==12)if(k)a=14;else{a=16;break}if((a|0)==14){d=e+4|0;a=f[d>>2]|0;if(!a){a=15;break}else{g=d;e=a}}}if((a|0)==8){f[c>>2]=e;o=e;return o|0}else if((a|0)==15){f[c>>2]=e;o=d;return o|0}else if((a|0)==16){f[c>>2]=e;o=g;return o|0}return 0}function hT(a){a=a|0;var b=0,c=0,d=0,e=0;c=u;u=u+16|0;b=c;gDa(a);f[a>>2]=98816;Wx()|0;d=f[(f[72465]|0)+84>>2]|0;f[b>>2]=0;ZS(a+56|0,d,b);b=f[b>>2]|0;if(b|0?(e=b+8|0,d=f[e>>2]|0,f[e>>2]=d-1,(d|0)==1):0)X4(b,1,1);f[a+72>>2]=0;f[a+76>>2]=0;f[a+68>>2]=a+72;f[a+84>>2]=0;f[a+88>>2]=0;f[a+80>>2]=a+84;f[a+96>>2]=0;f[a+100>>2]=0;f[a+92>>2]=a+96;e=a+104|0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;f[e+12>>2]=0;f[a+120>>2]=1;f[a+124>>2]=4;f[a+128>>2]=5;f[a+132>>2]=35981;f[a+136>>2]=0;f[a+140>>2]=0;f[a+144>>2]=0;f[a+152>>2]=0;f[a+156>>2]=0;f[a+148>>2]=a+152;f[a+164>>2]=0;f[a+168>>2]=0;f[a+160>>2]=a+164;f[a+176>>2]=0;f[a+180>>2]=0;f[a+172>>2]=a+176;f[a+184>>2]=0;f[a+188>>2]=0;f[a+192>>2]=0;u=c;return}function iT(a){a=a|0;var b=0,c=0,d=0,e=0,g=0;c=a+36|0;d=f[c>>2]|0;if(d|0){e=a+40|0;b=f[e>>2]|0;if((b|0)==(d|0))b=d;else{do{g=b;b=b+-12|0;Iy(b,f[g+-8>>2]|0)}while((b|0)!=(d|0));b=f[c>>2]|0}f[e>>2]=d;NDb(b)}Iy(a+24|0,f[a+28>>2]|0);Iy(a+12|0,f[a+16>>2]|0);Iy(a,f[a+4>>2]|0);return}function jT(a){a=a|0;var c=0,d=0,e=0;d=f[a>>2]|0;if(!d)return;e=a+4|0;c=f[e>>2]|0;if((c|0)==(d|0))c=d;else{do{c=c+-12|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0)}while((c|0)!=(d|0));c=f[a>>2]|0}f[e>>2]=d;NDb(c);return}function kT(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(b|0?(d=b+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(b,1,1);f[a>>2]=0;return}function lT(a){a=a|0;cT(a,f[a+4>>2]|0);return}function mT(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;d=f[a>>2]|0;if(!d)return;e=a+4|0;b=f[e>>2]|0;if((b|0)==(d|0))b=d;else{do{b=b+-4|0;c=f[b>>2]|0;if(c|0?(h=c+8|0,g=f[h>>2]|0,f[h>>2]=g-1,(g|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(d|0));b=f[a>>2]|0}f[e>>2]=d;NDb(b);return}function nT(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=a+4|0;c=f[m>>2]|0;d=f[a>>2]|0;i=c-d>>2;e=i+1|0;g=d;if(e>>>0>1073741823)KEb(a);l=a+8|0;j=(f[l>>2]|0)-d|0;k=j>>1;e=j>>2>>>0<536870911?(k>>>0<e>>>0?e:k):1073741823;do if(e)if(e>>>0>1073741823){m=mb(8)|0;RDb(m,238482);f[m>>2]=144484;qb(m|0,84192,1464)}else{j=LDb(e<<2)|0;break}else j=0;while(0);d=j+(i<<2)|0;k=j+(e<<2)|0;e=f[b>>2]|0;f[d>>2]=e;if(e){g=e+8|0;f[g>>2]=(f[g>>2]|0)+1;g=f[a>>2]|0;c=f[m>>2]|0}h=d+4|0;e=g;if((c|0)==(g|0))b=e;else{b=i+-1-((c+-4-e|0)>>>2)|0;while(1){c=c+-4|0;e=f[c>>2]|0;f[d+-4>>2]=e;if(e|0){i=e+8|0;f[i>>2]=(f[i>>2]|0)+1}if((c|0)==(g|0))break;else d=d+-4|0}d=j+(b<<2)|0;b=f[a>>2]|0;c=f[m>>2]|0}f[a>>2]=d;f[m>>2]=h;f[l>>2]=k;e=b;if((c|0)!=(e|0))do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(l=d+8|0,m=f[l>>2]|0,f[l>>2]=m-1,(m|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(e|0));if(!b)return;NDb(b);return}function oT(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;g=(b|0)==0;if(g)e=0;else e=sk[f[(f[b>>2]|0)+32>>2]&2047](b)|0;h=(c|0)==0;if(!h?(d=sk[f[(f[c>>2]|0)+40>>2]&2047](c)|0,(e|0)!=0&(d|0)!=0):0){Zk[f[(f[a>>2]|0)+32>>2]&511](a,e,d);h=1;return h|0}a=f[a+(f[(f[a>>2]|0)+-12>>2]|0)+4>>2]|0;if(a|0){h=xk[f[(f[a>>2]|0)+92>>2]&255](a,b,c)|0;return h|0}if(g)d=0;else d=sk[f[(f[b>>2]|0)+32>>2]&2047](b)|0;if(h){h=0;return h|0}a=sk[f[(f[c>>2]|0)+40>>2]&2047](c)|0;if(!((d|0)!=0&(a|0)!=0)){h=0;return h|0}switch(f[a+16>>2]|0){case 1:{Vk[f[(f[d>>2]|0)+216>>2]&1023](d,a);h=1;return h|0}case 0:{h=1;return h|0}default:{Vk[f[(f[d>>2]|0)+220>>2]&1023](d,a);h=1;return h|0}}return 0}function pT(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if(!c)d=0;else d=c+(f[(f[c>>2]|0)+-12>>2]|0)|0;c=f[a+(f[(f[a>>2]|0)+-12>>2]|0)+4>>2]|0;if(c|0){xk[f[(f[c>>2]|0)+92>>2]&255](c,b,d)|0;return}if(!b)a=0;else a=sk[f[(f[b>>2]|0)+32>>2]&2047](b)|0;if(!d)return;c=sk[f[(f[d>>2]|0)+40>>2]&2047](d)|0;if(!((a|0)!=0&(c|0)!=0))return;switch(f[c+16>>2]|0){case 1:{Vk[f[(f[a>>2]|0)+216>>2]&1023](a,c);return}case 0:return;default:{Vk[f[(f[a>>2]|0)+220>>2]&1023](a,c);return}}}function qT(a,b,c){a=a|0;b=b|0;c=c|0;return oT(a+(f[(f[a>>2]|0)+-108>>2]|0)|0,b,c)|0}function rT(a){a=a|0;var b=0,c=0;b=LDb(44)|0;a=b+12|0;BCa(a);c=b+24|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[b+36>>2]=2;f[b+40>>2]=0;f[b+8>>2]=0;f[b>>2]=512;f[b+4>>2]=668;f[a>>2]=940;return a|0}function sT(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;d=LDb(44)|0;e=d+12|0;nw(e,a+(f[(f[a>>2]|0)+-16>>2]|0)|0,b);c=d+4|0;b=a+(f[(f[a>>2]|0)+-12>>2]|0)|0;f[c>>2]=79584;f[e>>2]=79856;b=f[b+4>>2]|0;f[d+8>>2]=b;if(!b){f[d>>2]=512;f[c>>2]=668;f[e>>2]=940;return e|0}a=b+(f[(f[b>>2]|0)+-12>>2]|0)+8|0;f[a>>2]=(f[a>>2]|0)+1;f[d>>2]=512;f[c>>2]=668;f[e>>2]=940;return e|0}function tT(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,59440,-1)|0)!=0;return b|0}function uT(a){a=a|0;return 241076}function vT(a){a=a|0;return 185631}function wT(a){a=a|0;return a|0}function xT(a){a=a|0;return a|0}function yT(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;g=(b|0)==0;if(g)e=0;else e=sk[f[(f[b>>2]|0)+56>>2]&2047](b)|0;h=(c|0)==0;if(!h?(d=sk[f[(f[c>>2]|0)+40>>2]&2047](c)|0,(e|0)!=0&(d|0)!=0):0){Zk[f[(f[a>>2]|0)+32>>2]&511](a,e,d);h=1;return h|0}a=f[a+(f[(f[a>>2]|0)+-12>>2]|0)+4>>2]|0;if(a|0){h=xk[f[(f[a>>2]|0)+92>>2]&255](a,b,c)|0;return h|0}if(g)d=0;else d=sk[f[(f[b>>2]|0)+32>>2]&2047](b)|0;if(h){h=0;return h|0}a=sk[f[(f[c>>2]|0)+40>>2]&2047](c)|0;if(!((d|0)!=0&(a|0)!=0)){h=0;return h|0}switch(f[a+16>>2]|0){case 1:{Vk[f[(f[d>>2]|0)+216>>2]&1023](d,a);h=1;return h|0}case 0:{h=1;return h|0}default:{Vk[f[(f[d>>2]|0)+220>>2]&1023](d,a);h=1;return h|0}}return 0}function zT(a,b,c){a=a|0;b=b|0;c=c|0;return}function AT(a){a=a|0;var b=0,c=0,d=0,e=0;b=a+4|0;f[b>>2]=79584;f[b+8>>2]=79856;b=a+8|0;c=f[b>>2]|0;if(c|0?(d=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,e=d+8|0,c=f[e>>2]|0,f[e>>2]=c-1,(c|0)==1):0)X4(d,1,1);f[b>>2]=0;ow(a+12|0);return}function BT(a){a=a|0;var b=0,c=0,d=0,e=0;b=a+4|0;f[b>>2]=79584;f[b+8>>2]=79856;b=a+8|0;c=f[b>>2]|0;if(c|0?(d=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,e=d+8|0,c=f[e>>2]|0,f[e>>2]=c-1,(c|0)==1):0)X4(d,1,1);f[b>>2]=0;ow(a+12|0);NDb(a);return}function CT(a){a=a|0;var b=0,c=0;b=LDb(44)|0;a=b+12|0;BCa(a);c=b+24|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[b+36>>2]=2;f[b+40>>2]=0;f[b+8>>2]=0;f[b>>2]=512;f[b+4>>2]=668;f[a>>2]=940;return a|0}function DT(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;e=a+(f[(f[a>>2]|0)+-20>>2]|0)|0;c=LDb(44)|0;d=c+12|0;nw(d,e+(f[(f[e>>2]|0)+-16>>2]|0)|0,b);a=c+4|0;b=e+(f[(f[e>>2]|0)+-12>>2]|0)|0;f[a>>2]=79584;f[d>>2]=79856;b=f[b+4>>2]|0;f[c+8>>2]=b;if(!b){f[c>>2]=512;f[a>>2]=668;f[d>>2]=940;return d|0}e=b+(f[(f[b>>2]|0)+-12>>2]|0)+8|0;f[e>>2]=(f[e>>2]|0)+1;f[c>>2]=512;f[a>>2]=668;f[d>>2]=940;return d|0}function ET(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,59440,-1)|0)!=0;return b|0}function FT(a){a=a|0;return 241076}function GT(a){a=a|0;return 185631}function HT(a){a=a|0;return a+(f[(f[a>>2]|0)+-60>>2]|0)|0}function IT(a){a=a|0;return a+(f[(f[a>>2]|0)+-64>>2]|0)|0}function JT(a,b,c){a=a|0;b=b|0;c=c|0;return yT(a+(f[(f[a>>2]|0)+-108>>2]|0)|0,b,c)|0}function KT(a){a=a|0;var b=0,c=0,d=0,e=0;a=a+(f[(f[a>>2]|0)+-112>>2]|0)|0;b=a+4|0;f[b>>2]=79584;f[b+8>>2]=79856;b=a+8|0;c=f[b>>2]|0;if(c|0?(d=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,e=d+8|0,c=f[e>>2]|0,f[e>>2]=c-1,(c|0)==1):0)X4(d,1,1);f[b>>2]=0;ow(a+12|0);return}function LT(a){a=a|0;var b=0,c=0,d=0,e=0;a=a+(f[(f[a>>2]|0)+-112>>2]|0)|0;b=a+4|0;f[b>>2]=79584;f[b+8>>2]=79856;b=a+8|0;c=f[b>>2]|0;if(c|0?(d=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,e=d+8|0,c=f[e>>2]|0,f[e>>2]=c-1,(c|0)==1):0)X4(d,1,1);f[b>>2]=0;ow(a+12|0);NDb(a);return}function MT(a){a=a|0;var b=0,c=0,d=0,e=0;a=a+(f[(f[a>>2]|0)+-16>>2]|0)|0;b=a+4|0;f[b>>2]=79584;f[b+8>>2]=79856;b=a+8|0;c=f[b>>2]|0;if(c|0?(d=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,e=d+8|0,c=f[e>>2]|0,f[e>>2]=c-1,(c|0)==1):0)X4(d,1,1);f[b>>2]=0;ow(a+12|0);return}function NT(a){a=a|0;var b=0,c=0,d=0,e=0;a=a+(f[(f[a>>2]|0)+-16>>2]|0)|0;b=a+4|0;f[b>>2]=79584;f[b+8>>2]=79856;b=a+8|0;c=f[b>>2]|0;if(c|0?(d=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,e=d+8|0,c=f[e>>2]|0,f[e>>2]=c-1,(c|0)==1):0)X4(d,1,1);f[b>>2]=0;ow(a+12|0);NDb(a);return}function OT(a){a=a|0;var b=0,c=0;b=LDb(44)|0;a=b+12|0;BCa(a);c=b+24|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[b+36>>2]=2;f[b+40>>2]=0;f[b+8>>2]=0;f[b>>2]=512;f[b+4>>2]=668;f[a>>2]=940;return a|0}function PT(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;e=a+(f[(f[a>>2]|0)+-24>>2]|0)|0;c=LDb(44)|0;d=c+12|0;nw(d,e+(f[(f[e>>2]|0)+-16>>2]|0)|0,b);a=c+4|0;b=e+(f[(f[e>>2]|0)+-12>>2]|0)|0;f[a>>2]=79584;f[d>>2]=79856;b=f[b+4>>2]|0;f[c+8>>2]=b;if(!b){f[c>>2]=512;f[a>>2]=668;f[d>>2]=940;return d|0}e=b+(f[(f[b>>2]|0)+-12>>2]|0)+8|0;f[e>>2]=(f[e>>2]|0)+1;f[c>>2]=512;f[a>>2]=668;f[d>>2]=940;return d|0}function QT(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,59440,-1)|0)!=0;return b|0}function RT(a){a=a|0;return 241076}function ST(a){a=a|0;return 185631}function TT(a){a=a|0;return a|0}function UT(a){a=a|0;return a|0}function VT(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=sk[f[(f[b>>2]|0)+88>>2]&2047](b)|0;d=sk[f[(f[c>>2]|0)+40>>2]&2047](c)|0;if((e|0)!=0&(d|0)!=0){Zk[f[(f[a>>2]|0)+32>>2]&511](a,d,e);c=1;return c|0}a=f[a+(f[(f[a>>2]|0)+-12>>2]|0)+4>>2]|0;if(a|0){c=xk[f[(f[a>>2]|0)+92>>2]&255](a,b,c)|0;return c|0}d=sk[f[(f[b>>2]|0)+32>>2]&2047](b)|0;a=sk[f[(f[c>>2]|0)+40>>2]&2047](c)|0;if(!((d|0)!=0&(a|0)!=0)){c=0;return c|0}switch(f[a+16>>2]|0){case 1:{Vk[f[(f[d>>2]|0)+216>>2]&1023](d,a);c=1;return c|0}case 0:{c=1;return c|0}default:{Vk[f[(f[d>>2]|0)+220>>2]&1023](d,a);c=1;return c|0}}return 0}function WT(a){a=a|0;return a+(f[(f[a>>2]|0)+-76>>2]|0)|0}function XT(a){a=a|0;return a+(f[(f[a>>2]|0)+-80>>2]|0)|0}function YT(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=a+(f[(f[a>>2]|0)+-108>>2]|0)|0;a=sk[f[(f[b>>2]|0)+88>>2]&2047](b)|0;d=sk[f[(f[c>>2]|0)+40>>2]&2047](c)|0;if((a|0)!=0&(d|0)!=0){Zk[f[(f[e>>2]|0)+32>>2]&511](e,d,a);c=1;return c|0}a=f[e+(f[(f[e>>2]|0)+-12>>2]|0)+4>>2]|0;if(a|0){c=xk[f[(f[a>>2]|0)+92>>2]&255](a,b,c)|0;return c|0}d=sk[f[(f[b>>2]|0)+32>>2]&2047](b)|0;a=sk[f[(f[c>>2]|0)+40>>2]&2047](c)|0;if(!((d|0)!=0&(a|0)!=0)){c=0;return c|0}switch(f[a+16>>2]|0){case 1:{Vk[f[(f[d>>2]|0)+216>>2]&1023](d,a);c=1;return c|0}case 0:{c=1;return c|0}default:{Vk[f[(f[d>>2]|0)+220>>2]&1023](d,a);c=1;return c|0}}return 0}function ZT(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=sk[f[(f[b>>2]|0)+88>>2]&2047](b)|0;d=sk[f[(f[c>>2]|0)+40>>2]&2047](c)|0;if((e|0)!=0&(d|0)!=0){Zk[f[(f[a>>2]|0)+32>>2]&511](a,d,e);c=1;return c|0}a=f[a+(f[(f[a>>2]|0)+-12>>2]|0)+4>>2]|0;if(a|0){c=xk[f[(f[a>>2]|0)+92>>2]&255](a,b,c)|0;return c|0}d=sk[f[(f[b>>2]|0)+32>>2]&2047](b)|0;a=sk[f[(f[c>>2]|0)+40>>2]&2047](c)|0;if(!((d|0)!=0&(a|0)!=0)){c=0;return c|0}switch(f[a+16>>2]|0){case 1:{Vk[f[(f[d>>2]|0)+216>>2]&1023](d,a);c=1;return c|0}case 0:{c=1;return c|0}default:{Vk[f[(f[d>>2]|0)+220>>2]&1023](d,a);c=1;return c|0}}return 0}function _T(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=a+(f[(f[a>>2]|0)+-108>>2]|0)|0;a=sk[f[(f[b>>2]|0)+88>>2]&2047](b)|0;d=sk[f[(f[c>>2]|0)+40>>2]&2047](c)|0;if((a|0)!=0&(d|0)!=0){Zk[f[(f[e>>2]|0)+32>>2]&511](e,d,a);c=1;return c|0}a=f[e+(f[(f[e>>2]|0)+-12>>2]|0)+4>>2]|0;if(a|0){c=xk[f[(f[a>>2]|0)+92>>2]&255](a,b,c)|0;return c|0}d=sk[f[(f[b>>2]|0)+32>>2]&2047](b)|0;a=sk[f[(f[c>>2]|0)+40>>2]&2047](c)|0;if(!((d|0)!=0&(a|0)!=0)){c=0;return c|0}switch(f[a+16>>2]|0){case 1:{Vk[f[(f[d>>2]|0)+216>>2]&1023](d,a);c=1;return c|0}case 0:{c=1;return c|0}default:{Vk[f[(f[d>>2]|0)+220>>2]&1023](d,a);c=1;return c|0}}return 0}function $T(a){a=a|0;return a|0}function aU(a){a=a|0;return a|0}function bU(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return 0}function cU(a){a=a|0;return a+(f[(f[a>>2]|0)+-92>>2]|0)|0}function dU(a){a=a|0;return a+(f[(f[a>>2]|0)+-96>>2]|0)|0}function eU(a){a=a|0;var c=0;f[a>>2]=62132;c=a+20|0;f[c>>2]=62164;a=a+4|0;if((b[a+11>>0]|0)>=0){V4(c);return}NDb(f[a>>2]|0);V4(c);return}function fU(a){a=a|0;var c=0,d=0;f[a>>2]=62132;c=a+20|0;f[c>>2]=62164;d=a+4|0;if((b[d+11>>0]|0)<0)NDb(f[d>>2]|0);V4(c);NDb(a);return}function gU(a,b){a=a|0;b=b|0;a=f[b+48>>2]|0;if(a|0)Nk[f[(f[a>>2]|0)+16>>2]&2047](a);a=f[b+116>>2]|0;if(!a){Nk[f[(f[b>>2]|0)+204>>2]&2047](b);a=b}else{Vk[f[(f[a>>2]|0)+12>>2]&1023](a,b);a=b}Nk[f[(f[a>>2]|0)+172>>2]&2047](b);return}function hU(a){a=a|0;var c=0;c=a+(f[(f[a>>2]|0)+-16>>2]|0)|0;f[c>>2]=62132;a=c+20|0;f[a>>2]=62164;c=c+4|0;if((b[c+11>>0]|0)>=0){V4(a);return}NDb(f[c>>2]|0);V4(a);return}function iU(a){a=a|0;var c=0,d=0;a=a+(f[(f[a>>2]|0)+-16>>2]|0)|0;f[a>>2]=62132;c=a+20|0;f[c>>2]=62164;d=a+4|0;if((b[d+11>>0]|0)>=0){V4(c);NDb(a);return}NDb(f[d>>2]|0);V4(c);NDb(a);return}function jU(a){a=a|0;jua(a+20|0);return}function kU(a,b){a=a|0;b=b|0;switch(f[a+32>>2]|0){case 2:{ii();break}case 1:{ji();break}default:{}}b=a+20|0;Vk[f[(f[b>>2]|0)+12>>2]&1023](b,0);return}function lU(a){a=a|0;var c=0;fua(a+20|0);f[a>>2]=62028;c=a+36|0;f[c>>2]=62060;a=a+4|0;if((b[a+11>>0]|0)>=0){V4(c);return}NDb(f[a>>2]|0);V4(c);return}function mU(a){a=a|0;var c=0,d=0;fua(a+20|0);f[a>>2]=62028;c=a+36|0;f[c>>2]=62060;d=a+4|0;if((b[d+11>>0]|0)>=0){V4(c);NDb(a);return}NDb(f[d>>2]|0);V4(c);NDb(a);return}function nU(a){a=a|0;var c=0;a=a+-20|0;fua(a+20|0);f[a>>2]=62028;c=a+36|0;f[c>>2]=62060;if((b[a+15>>0]|0)>=0){V4(c);return}NDb(f[a+4>>2]|0);V4(c);return}function oU(a){a=a|0;var c=0;a=a+-20|0;fua(a+20|0);f[a>>2]=62028;c=a+36|0;f[c>>2]=62060;if((b[a+15>>0]|0)>=0){V4(c);NDb(a);return}NDb(f[a+4>>2]|0);V4(c);NDb(a);return}function pU(a){a=a|0;jua(a+-20+20|0);return}function qU(a){a=a|0;var c=0;c=a+(f[(f[a>>2]|0)+-16>>2]|0)|0;fua(c+20|0);f[c>>2]=62028;a=c+36|0;f[a>>2]=62060;c=c+4|0;if((b[c+11>>0]|0)>=0){V4(a);return}NDb(f[c>>2]|0);V4(a);return}function rU(a){a=a|0;var c=0,d=0;a=a+(f[(f[a>>2]|0)+-16>>2]|0)|0;fua(a+20|0);f[a>>2]=62028;c=a+36|0;f[c>>2]=62060;d=a+4|0;if((b[d+11>>0]|0)>=0){V4(c);NDb(a);return}NDb(f[d>>2]|0);V4(c);NDb(a);return}function sU(a){a=a|0;OL(a+4|0);V4(a+28|0);return}function tU(a){a=a|0;OL(a+4|0);V4(a+28|0);NDb(a);return}function uU(a){a=a|0;a=a+(f[(f[a>>2]|0)+-16>>2]|0)|0;OL(a+4|0);V4(a+28|0);return}function vU(a){a=a|0;a=a+(f[(f[a>>2]|0)+-16>>2]|0)|0;OL(a+4|0);V4(a+28|0);NDb(a);return}function wU(a){a=a|0;var c=0;f[a>>2]=62132;c=a+20|0;f[c>>2]=62164;a=a+4|0;if((b[a+11>>0]|0)>=0){V4(c);return}NDb(f[a>>2]|0);V4(c);return}function xU(a){a=a|0;var c=0,d=0;f[a>>2]=62132;c=a+20|0;f[c>>2]=62164;d=a+4|0;if((b[d+11>>0]|0)<0)NDb(f[d>>2]|0);V4(c);NDb(a);return}function yU(a,b){a=a|0;b=b|0;Nk[f[(f[b>>2]|0)+164>>2]&2047](b);return}function zU(a){a=a|0;var c=0;c=a+(f[(f[a>>2]|0)+-16>>2]|0)|0;f[c>>2]=62132;a=c+20|0;f[a>>2]=62164;c=c+4|0;if((b[c+11>>0]|0)>=0){V4(a);return}NDb(f[c>>2]|0);V4(a);return}function AU(a){a=a|0;var c=0,d=0;a=a+(f[(f[a>>2]|0)+-16>>2]|0)|0;f[a>>2]=62132;c=a+20|0;f[c>>2]=62164;d=a+4|0;if((b[d+11>>0]|0)>=0){V4(c);NDb(a);return}NDb(f[d>>2]|0);V4(c);NDb(a);return}function BU(a){a=a|0;Ni()}function CU(a){a=a|0;return 0}function DU(a){a=a|0;return 0}function EU(a){a=a|0;xx(a);NDb(a);return}function FU(a){a=a|0;var b=0;a=LDb(72)|0;CCa(a,1);b=a+12|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[a+24>>2]=2;b=a+28|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[b+12>>2]=0;f[b+16>>2]=0;f[b+20>>2]=0;f[a+52>>2]=1;f[a+56>>2]=0;f[a+60>>2]=0;f[a>>2]=101028;f[a+64>>2]=0;f[a+68>>2]=0;return a|0}function GU(a,b){a=a|0;b=b|0;var c=0;c=LDb(72)|0;nw(c,a,b);f[c>>2]=88884;f[c+32>>2]=0;f[c+36>>2]=0;f[c+40>>2]=0;b=f[a+44>>2]|0;f[c+44>>2]=b;if(b|0){b=b+(f[(f[b>>2]|0)+-12>>2]|0)+8|0;f[b>>2]=(f[b>>2]|0)+1}f[c+48>>2]=0;f[c+52>>2]=f[a+52>>2];f[c+56>>2]=f[a+56>>2];f[c+60>>2]=f[a+60>>2];f[c>>2]=101028;f[c+64>>2]=f[a+64>>2];f[c+68>>2]=f[a+68>>2];return c|0}function HU(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,62240,0)|0)!=0;return b|0}function IU(a){a=a|0;return 241076}function JU(a){a=a|0;return 226071}function KU(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0;c=f[a+60>>2]|0;switch(c|0){case 7:{cDa(b,f[a+64>>2]|0,f[a+68>>2]|0,f[a+56>>2]|0);return}case 9:{c=6;break}case 8:{c=5;break}default:{}}e=f[a+56>>2]|0;g=f[a+64>>2]|0;d=f[a+68>>2]|0;if((e|0)<=0){fi(c|0,g|0,d|0);return}a=f[b+824>>2]|0;if(!a){fi(c|0,g|0,d|0);return}else{al[a&255](c,g,d,e);return}}function LU(a,b){a=a|0;b=b|0;al[f[(f[b>>2]|0)+32>>2]&255](b,f[a+60>>2]|0,f[a+64>>2]|0,f[a+68>>2]|0);return}function MU(a,b){a=a|0;b=b|0;al[f[(f[b>>2]|0)+32>>2]&255](b,f[a+60>>2]|0,f[a+64>>2]|0,f[a+68>>2]|0);return}function NU(a,b){a=a|0;b=b|0;return (f[a+64>>2]|0)+b|0}function OU(a){a=a|0;return f[a+68>>2]|0}function PU(a,b){a=a|0;b=b|0;a=a+64|0;f[a>>2]=(f[a>>2]|0)+b;return}function QU(a){a=a|0;var b=0;f[a+64>>2]=101524;b=f[a+68>>2]|0;if(!b){xx(a);return}f[a+72>>2]=b;NDb(b);xx(a);return}function RU(a){a=a|0;var b=0;f[a+64>>2]=101524;b=f[a+68>>2]|0;if(b|0){f[a+72>>2]=b;NDb(b)}xx(a);NDb(a);return}function SU(a){a=a|0;var b=0;a=LDb(84)|0;CCa(a,1);b=a+12|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[a+24>>2]=2;b=a+28|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[b+12>>2]=0;f[b+16>>2]=0;f[b+20>>2]=0;f[a+52>>2]=2;f[a+56>>2]=0;f[a+60>>2]=0;f[a+68>>2]=0;f[a+72>>2]=0;f[a+76>>2]=0;f[a>>2]=101268;f[a+64>>2]=101508;f[a+80>>2]=0;return a|0}function TU(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;k=LDb(84)|0;nw(k,a,b);f[k>>2]=88884;f[k+32>>2]=0;f[k+36>>2]=0;f[k+40>>2]=0;b=f[a+44>>2]|0;f[k+44>>2]=b;if(b|0){j=b+(f[(f[b>>2]|0)+-12>>2]|0)+8|0;f[j>>2]=(f[j>>2]|0)+1}f[k+48>>2]=0;f[k>>2]=100788;f[k+52>>2]=f[a+52>>2];f[k+56>>2]=f[a+56>>2];f[k+60>>2]=f[a+60>>2];b=k+64|0;f[b>>2]=101524;c=k+68|0;f[c>>2]=0;d=k+72|0;f[d>>2]=0;e=k+76|0;f[e>>2]=0;g=f[a+68>>2]|0;h=(f[a+72>>2]|0)-g|0;i=h>>2;if(!h){f[k>>2]=101268;f[b>>2]=101508;j=k+80|0;a=a+80|0;a=f[a>>2]|0;f[j>>2]=a;return k|0}if(i>>>0>1073741823)KEb(c);j=LDb(h)|0;f[d>>2]=j;f[c>>2]=j;f[e>>2]=j+(i<<2);if((h|0)<=0){f[k>>2]=101268;f[b>>2]=101508;j=k+80|0;a=a+80|0;a=f[a>>2]|0;f[j>>2]=a;return k|0}gGb(j|0,g|0,h|0)|0;f[d>>2]=j+(h>>>2<<2);f[k>>2]=101268;f[b>>2]=101508;j=k+80|0;a=a+80|0;a=f[a>>2]|0;f[j>>2]=a;return k|0}function UU(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,62256,0)|0)!=0;return b|0}function VU(a){a=a|0;return 241076}function WU(a){a=a|0;return 185878}function XU(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;c=f[a+60>>2]|0;switch(c|0){case 7:{c=f[a+68>>2]|0;g=a+72|0;if((c|0)==(f[g>>2]|0))return;e=a+56|0;a=f[a+80>>2]|0;while(1){cDa(b,a,f[c>>2]|0,f[e>>2]|0);d=c+4|0;if((d|0)==(f[g>>2]|0))break;else{a=(f[c>>2]|0)+a|0;c=d}}return}case 9:{c=6;break}case 8:{c=5;break}default:{}}d=f[a+68>>2]|0;i=a+72|0;if((d|0)==(f[i>>2]|0))return;j=a+56|0;h=b+824|0;b=f[a+80>>2]|0;g=d;while(1){d=f[j>>2]|0;a=f[g>>2]|0;do if((d|0)>0){e=f[h>>2]|0;if(!e){fi(c|0,b|0,a|0);break}else{al[e&255](c,b,a,d);break}}else fi(c|0,b|0,a|0);while(0);d=g+4|0;if((d|0)==(f[i>>2]|0))break;else{b=(f[g>>2]|0)+b|0;g=d}}return}function YU(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0;c=f[a+68>>2]|0;e=a+72|0;if((c|0)==(f[e>>2]|0))return;g=a+60|0;d=f[a+80>>2]|0;a=c;while(1){al[f[(f[b>>2]|0)+32>>2]&255](b,f[g>>2]|0,d,f[a>>2]|0);c=a+4|0;if((c|0)==(f[e>>2]|0))break;else{d=(f[a>>2]|0)+d|0;a=c}}return}function ZU(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0;c=f[a+68>>2]|0;e=a+72|0;if((c|0)==(f[e>>2]|0))return;g=a+60|0;d=f[a+80>>2]|0;a=c;while(1){al[f[(f[b>>2]|0)+32>>2]&255](b,f[g>>2]|0,d,f[a>>2]|0);c=a+4|0;if((c|0)==(f[e>>2]|0))break;else{d=(f[a>>2]|0)+d|0;a=c}}return}function _U(a,b){a=a|0;b=b|0;return (f[a+80>>2]|0)+b|0}function $U(a){a=a|0;var b=0,c=0;b=f[a+68>>2]|0;c=f[a+72>>2]|0;if((b|0)==(c|0)){c=0;return c|0}a=0;do{a=(f[b>>2]|0)+a|0;b=b+4|0}while((b|0)!=(c|0));return a|0}function aV(a,b){a=a|0;b=b|0;a=a+80|0;f[a>>2]=(f[a>>2]|0)+b;return}function bV(a){a=a|0;switch(f[a+60>>2]|0){case 0:{a=sk[f[(f[a>>2]|0)+216>>2]&2047](a)|0;return a|0}case 1:{a=(sk[f[(f[a>>2]|0)+216>>2]&2047](a)|0)>>>1;return a|0}case 4:{a=((sk[f[(f[a>>2]|0)+216>>2]&2047](a)|0)>>>0)/3|0;return a|0}case 7:{a=(sk[f[(f[a>>2]|0)+216>>2]&2047](a)|0)>>>2;return a|0}case 9:case 14:case 8:case 6:case 5:case 2:case 3:{a=(f[a+72>>2]|0)-(f[a+68>>2]|0)>>2;return a|0}default:{a=0;return a|0}}return 0}function cV(a){a=a|0;var b=0;a=a+-64|0;f[a+64>>2]=101524;b=f[a+68>>2]|0;if(!b){xx(a);return}f[a+72>>2]=b;NDb(b);xx(a);return}function dV(a){a=a|0;var b=0;a=a+-64|0;f[a+64>>2]=101524;b=f[a+68>>2]|0;if(b|0){f[a+72>>2]=b;NDb(b)}xx(a);NDb(a);return}function eV(a){a=a|0;var b=0;f[a>>2]=101524;b=f[a+4>>2]|0;if(!b)return;f[a+8>>2]=b;NDb(b);return}function fV(a){a=a|0;var b=0;f[a>>2]=101524;b=f[a+4>>2]|0;if(!b){NDb(a);return}f[a+8>>2]=b;NDb(b);NDb(a);return}function gV(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if(!b)return;b=sk[f[(f[b>>2]|0)+164>>2]&2047](b)|0;if(!b)return;if(!(sk[f[(f[b>>2]|0)+244>>2]&2047](b)|0))return;a=0;do{d=wk[f[(f[b>>2]|0)+236>>2]&1023](b,a)|0;Vk[f[(f[d>>2]|0)+224>>2]&1023](d,c);a=a+1|0}while(a>>>0<(sk[f[(f[b>>2]|0)+244>>2]&2047](b)|0)>>>0);return}function hV(a){a=a|0;var b=0,c=0,d=0,e=0;b=a+4|0;f[b>>2]=79584;f[b+8>>2]=79856;b=a+8|0;c=f[b>>2]|0;if(c|0?(d=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,e=d+8|0,c=f[e>>2]|0,f[e>>2]=c-1,(c|0)==1):0)X4(d,1,1);f[b>>2]=0;ow(a+12|0);return}function iV(a){a=a|0;var b=0,c=0,d=0,e=0;b=a+4|0;f[b>>2]=79584;f[b+8>>2]=79856;b=a+8|0;c=f[b>>2]|0;if(c|0?(d=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,e=d+8|0,c=f[e>>2]|0,f[e>>2]=c-1,(c|0)==1):0)X4(d,1,1);f[b>>2]=0;ow(a+12|0);NDb(a);return}function jV(a){a=a|0;var b=0,c=0,d=0,e=0;a=a+(f[(f[a>>2]|0)+-112>>2]|0)|0;b=a+4|0;f[b>>2]=79584;f[b+8>>2]=79856;b=a+8|0;c=f[b>>2]|0;if(c|0?(d=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,e=d+8|0,c=f[e>>2]|0,f[e>>2]=c-1,(c|0)==1):0)X4(d,1,1);f[b>>2]=0;ow(a+12|0);return}function kV(a){a=a|0;var b=0,c=0,d=0,e=0;a=a+(f[(f[a>>2]|0)+-112>>2]|0)|0;b=a+4|0;f[b>>2]=79584;f[b+8>>2]=79856;b=a+8|0;c=f[b>>2]|0;if(c|0?(d=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,e=d+8|0,c=f[e>>2]|0,f[e>>2]=c-1,(c|0)==1):0)X4(d,1,1);f[b>>2]=0;ow(a+12|0);NDb(a);return}function lV(a){a=a|0;var b=0,c=0,d=0,e=0;a=a+(f[(f[a>>2]|0)+-16>>2]|0)|0;b=a+4|0;f[b>>2]=79584;f[b+8>>2]=79856;b=a+8|0;c=f[b>>2]|0;if(c|0?(d=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,e=d+8|0,c=f[e>>2]|0,f[e>>2]=c-1,(c|0)==1):0)X4(d,1,1);f[b>>2]=0;ow(a+12|0);return}function mV(a){a=a|0;var b=0,c=0,d=0,e=0;a=a+(f[(f[a>>2]|0)+-16>>2]|0)|0;b=a+4|0;f[b>>2]=79584;f[b+8>>2]=79856;b=a+8|0;c=f[b>>2]|0;if(c|0?(d=c+(f[(f[c>>2]|0)+-12>>2]|0)|0,e=d+8|0,c=f[e>>2]|0,f[e>>2]=c-1,(c|0)==1):0)X4(d,1,1);f[b>>2]=0;ow(a+12|0);NDb(a);return}function nV(){var a=0,c=0,d=0,e=0,g=0,h=0,i=0;i=u;u=u+32|0;g=i+12|0;h=i;n[72496]=1.0;n[72497]=0.0;n[72498]=0.0;n[72499]=0.0;n[72500]=1.0;n[72501]=0.0;n[72502]=0.0;n[72503]=0.0;n[72504]=1.0;oV()|0;f[72482]=0;f[72483]=0;f[72481]=289928;yGa(289960,1);f[72490]=102180;f[72493]=0;f[72494]=0;f[72495]=0;a=LDb(48)|0;f[g>>2]=a;f[g+8>>2]=-2147483600;f[g+4>>2]=32;c=a;d=185949;e=c+32|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+32>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=LDb(112)|0;f[h>>2]=a;f[h+8>>2]=-2147483536;f[h+4>>2]=101;c=a;d=185982;e=c+101|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+101>>0]=0;pV(oV()|0,2,g,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);a=LDb(32)|0;f[g>>2]=a;f[g+8>>2]=-2147483616;f[g+4>>2]=26;c=a;d=186084;e=c+26|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+26>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=LDb(96)|0;f[h>>2]=a;f[h+8>>2]=-2147483552;f[h+4>>2]=84;c=a;d=186111;e=c+84|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+84>>0]=0;pV(oV()|0,2,g,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);Wx()|0;a=LDb(32)|0;f[g>>2]=a;f[g+8>>2]=-2147483616;f[g+4>>2]=23;c=a;d=186196;e=c+23|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+23>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=LDb(64)|0;f[h>>2]=a;f[h+8>>2]=-2147483584;f[h+4>>2]=59;c=a;d=186220;e=c+59|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+59>>0]=0;pV(oV()|0,2,g,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);a=LDb(32)|0;f[g>>2]=a;f[g+8>>2]=-2147483616;f[g+4>>2]=22;c=a;d=186280;e=c+22|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+22>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=LDb(128)|0;f[h>>2]=a;f[h+8>>2]=-2147483520;f[h+4>>2]=127;c=a;d=186303;e=c+127|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+127>>0]=0;pV(oV()|0,2,g,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);a=LDb(32)|0;f[g>>2]=a;f[g+8>>2]=-2147483616;f[g+4>>2]=17;c=a;d=186431;e=c+17|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+17>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;e=h+11|0;b[e>>0]=8;d=h;f[d>>2]=541476431;f[d+4>>2]=1313808508;b[h+8>>0]=0;pV(oV()|0,2,g,h);if((b[e>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);a=LDb(32)|0;f[g>>2]=a;f[g+8>>2]=-2147483616;f[g+4>>2]=26;c=a;d=186449;e=c+26|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+26>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=LDb(32)|0;f[h>>2]=a;f[h+8>>2]=-2147483616;f[h+4>>2]=31;c=a;d=186476;e=c+31|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+31>>0]=0;pV(oV()|0,2,g,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);a=LDb(32)|0;f[g>>2]=a;f[g+8>>2]=-2147483616;f[g+4>>2]=27;c=a;d=186508;e=c+27|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+27>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=LDb(48)|0;f[h>>2]=a;f[h+8>>2]=-2147483600;f[h+4>>2]=42;c=a;d=186536;e=c+42|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+42>>0]=0;pV(oV()|0,2,g,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);a=LDb(32)|0;f[g>>2]=a;f[g+8>>2]=-2147483616;f[g+4>>2]=25;c=a;d=186579;e=c+25|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+25>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=LDb(32)|0;f[h>>2]=a;f[h+8>>2]=-2147483616;f[h+4>>2]=23;c=a;d=186605;e=c+23|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+23>>0]=0;pV(oV()|0,2,g,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);a=LDb(32)|0;f[g>>2]=a;f[g+8>>2]=-2147483616;f[g+4>>2]=24;c=a;d=186629;e=c+24|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+24>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=LDb(32)|0;f[h>>2]=a;f[h+8>>2]=-2147483616;f[h+4>>2]=22;c=a;d=186654;e=c+22|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+22>>0]=0;pV(oV()|0,2,g,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);a=LDb(48)|0;f[g>>2]=a;f[g+8>>2]=-2147483600;f[g+4>>2]=46;c=a;d=186677;e=c+46|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+46>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=LDb(64)|0;f[h>>2]=a;f[h+8>>2]=-2147483584;f[h+4>>2]=48;c=a;d=186724;e=c+48|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+48>>0]=0;pV(oV()|0,2,g,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);a=LDb(48)|0;f[g>>2]=a;f[g+8>>2]=-2147483600;f[g+4>>2]=46;c=a;d=186773;e=c+46|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+46>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=LDb(48)|0;f[h>>2]=a;f[h+8>>2]=-2147483600;f[h+4>>2]=35;c=a;d=186820;e=c+35|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+35>>0]=0;pV(oV()|0,2,g,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);a=LDb(48)|0;f[g>>2]=a;f[g+8>>2]=-2147483600;f[g+4>>2]=44;c=a;d=186856;e=c+44|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+44>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=LDb(64)|0;f[h>>2]=a;f[h+8>>2]=-2147483584;f[h+4>>2]=48;c=a;d=186901;e=c+48|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+48>>0]=0;pV(oV()|0,2,g,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);a=LDb(64)|0;f[g>>2]=a;f[g+8>>2]=-2147483584;f[g+4>>2]=48;c=a;d=186950;e=c+48|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+48>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;e=LDb(192)|0;f[h>>2]=e;f[h+8>>2]=-2147483456;f[h+4>>2]=188;gGb(e|0,186999,188)|0;b[e+188>>0]=0;pV(oV()|0,2,g,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);a=LDb(48)|0;f[g>>2]=a;f[g+8>>2]=-2147483600;f[g+4>>2]=44;c=a;d=187188;e=c+44|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+44>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=LDb(48)|0;f[h>>2]=a;f[h+8>>2]=-2147483600;f[h+4>>2]=35;c=a;d=186820;e=c+35|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+35>>0]=0;pV(oV()|0,2,g,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);a=LDb(48)|0;f[g>>2]=a;f[g+8>>2]=-2147483600;f[g+4>>2]=41;c=a;d=187233;e=c+41|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+41>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=LDb(80)|0;f[h>>2]=a;f[h+8>>2]=-2147483568;f[h+4>>2]=65;c=a;d=187275;e=c+65|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+65>>0]=0;pV(oV()|0,2,g,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);a=LDb(32)|0;f[g>>2]=a;f[g+8>>2]=-2147483616;f[g+4>>2]=27;c=a;d=187341;e=c+27|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+27>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=LDb(80)|0;f[h>>2]=a;f[h+8>>2]=-2147483568;f[h+4>>2]=76;c=a;d=187369;e=c+76|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+76>>0]=0;pV(oV()|0,2,g,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);a=LDb(48)|0;f[g>>2]=a;f[g+8>>2]=-2147483600;f[g+4>>2]=34;c=a;d=187446;e=c+34|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+34>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=LDb(128)|0;f[h>>2]=a;f[h+8>>2]=-2147483520;f[h+4>>2]=115;c=a;d=187481;e=c+115|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+115>>0]=0;pV(oV()|0,2,g,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);a=LDb(48)|0;f[g>>2]=a;f[g+8>>2]=-2147483600;f[g+4>>2]=35;c=a;d=187597;e=c+35|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+35>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=LDb(96)|0;f[h>>2]=a;f[h+8>>2]=-2147483552;f[h+4>>2]=94;c=a;d=187633;e=c+94|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+94>>0]=0;pV(oV()|0,2,g,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);a=LDb(32)|0;f[g>>2]=a;f[g+8>>2]=-2147483616;f[g+4>>2]=30;c=a;d=187728;e=c+30|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+30>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=LDb(80)|0;f[h>>2]=a;f[h+8>>2]=-2147483568;f[h+4>>2]=76;c=a;d=187759;e=c+76|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+76>>0]=0;pV(oV()|0,2,g,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);a=LDb(48)|0;f[g>>2]=a;f[g+8>>2]=-2147483600;f[g+4>>2]=35;c=a;d=187836;e=c+35|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+35>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=LDb(112)|0;f[h>>2]=a;f[h+8>>2]=-2147483536;f[h+4>>2]=103;c=a;d=187872;e=c+103|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+103>>0]=0;pV(oV()|0,2,g,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);a=LDb(32)|0;f[g>>2]=a;f[g+8>>2]=-2147483616;f[g+4>>2]=23;c=a;d=187976;e=c+23|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+23>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=LDb(80)|0;f[h>>2]=a;f[h+8>>2]=-2147483568;f[h+4>>2]=66;c=a;d=188e3;e=c+66|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+66>>0]=0;pV(oV()|0,2,g,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);a=LDb(32)|0;f[g>>2]=a;f[g+8>>2]=-2147483616;f[g+4>>2]=27;c=a;d=188067;e=c+27|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+27>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=LDb(64)|0;f[h>>2]=a;f[h+8>>2]=-2147483584;f[h+4>>2]=56;c=a;d=188095;e=c+56|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+56>>0]=0;pV(oV()|0,2,g,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);a=LDb(48)|0;f[g>>2]=a;f[g+8>>2]=-2147483600;f[g+4>>2]=33;c=a;d=188152;e=c+33|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+33>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=LDb(80)|0;f[h>>2]=a;f[h+8>>2]=-2147483568;f[h+4>>2]=69;c=a;d=188186;e=c+69|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+69>>0]=0;pV(oV()|0,2,g,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);a=LDb(32)|0;f[g>>2]=a;f[g+8>>2]=-2147483616;f[g+4>>2]=23;c=a;d=188256;e=c+23|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+23>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=LDb(80)|0;f[h>>2]=a;f[h+8>>2]=-2147483568;f[h+4>>2]=68;c=a;d=188280;e=c+68|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+68>>0]=0;pV(oV()|0,2,g,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);a=LDb(48)|0;f[g>>2]=a;f[g+8>>2]=-2147483600;f[g+4>>2]=42;c=a;d=162105;e=c+42|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+42>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=LDb(112)|0;f[h>>2]=a;f[h+8>>2]=-2147483536;f[h+4>>2]=103;c=a;d=188349;e=c+103|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+103>>0]=0;pV(oV()|0,2,g,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);a=LDb(48)|0;f[g>>2]=a;f[g+8>>2]=-2147483600;f[g+4>>2]=43;c=a;d=162148;e=c+43|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+43>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=LDb(112)|0;f[h>>2]=a;f[h+8>>2]=-2147483536;f[h+4>>2]=104;c=a;d=188453;e=c+104|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+104>>0]=0;pV(oV()|0,2,g,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);a=LDb(48)|0;f[g>>2]=a;f[g+8>>2]=-2147483600;f[g+4>>2]=36;c=a;d=188558;e=c+36|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+36>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=LDb(64)|0;f[h>>2]=a;f[h+8>>2]=-2147483584;f[h+4>>2]=55;c=a;d=188595;e=c+55|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+55>>0]=0;pV(oV()|0,2,g,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);a=LDb(32)|0;f[g>>2]=a;f[g+8>>2]=-2147483616;f[g+4>>2]=27;c=a;d=188651;e=c+27|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+27>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=LDb(80)|0;f[h>>2]=a;f[h+8>>2]=-2147483568;f[h+4>>2]=68;c=a;d=188679;e=c+68|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+68>>0]=0;pV(oV()|0,2,g,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);a=LDb(48)|0;f[g>>2]=a;f[g+8>>2]=-2147483600;f[g+4>>2]=34;c=a;d=188748;e=c+34|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+34>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=LDb(80)|0;f[h>>2]=a;f[h+8>>2]=-2147483568;f[h+4>>2]=75;c=a;d=188783;e=c+75|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+75>>0]=0;pV(oV()|0,2,g,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);a=LDb(32)|0;f[g>>2]=a;f[g+8>>2]=-2147483616;f[g+4>>2]=24;c=a;d=188859;e=c+24|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+24>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=LDb(80)|0;f[h>>2]=a;f[h+8>>2]=-2147483568;f[h+4>>2]=68;c=a;d=188884;e=c+68|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+68>>0]=0;pV(oV()|0,2,g,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);a=LDb(32)|0;f[g>>2]=a;f[g+8>>2]=-2147483616;f[g+4>>2]=21;c=a;d=188953;e=c+21|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+21>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=LDb(80)|0;f[h>>2]=a;f[h+8>>2]=-2147483568;f[h+4>>2]=73;c=a;d=188975;e=c+73|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+73>>0]=0;pV(oV()|0,2,g,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);a=LDb(48)|0;f[g>>2]=a;f[g+8>>2]=-2147483600;f[g+4>>2]=42;c=a;d=189049;e=c+42|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+42>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=LDb(112)|0;f[h>>2]=a;f[h+8>>2]=-2147483536;f[h+4>>2]=103;c=a;d=189092;e=c+103|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+103>>0]=0;pV(oV()|0,2,g,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);a=LDb(32)|0;f[g>>2]=a;f[g+8>>2]=-2147483616;f[g+4>>2]=31;c=a;d=189196;e=c+31|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+31>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=LDb(96)|0;f[h>>2]=a;f[h+8>>2]=-2147483552;f[h+4>>2]=82;c=a;d=189228;e=c+82|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+82>>0]=0;pV(oV()|0,2,g,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);a=LDb(32)|0;f[g>>2]=a;f[g+8>>2]=-2147483616;f[g+4>>2]=31;c=a;d=189311;e=c+31|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+31>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=LDb(96)|0;f[h>>2]=a;f[h+8>>2]=-2147483552;f[h+4>>2]=87;c=a;d=189343;e=c+87|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+87>>0]=0;pV(oV()|0,2,g,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);a=LDb(32)|0;f[g>>2]=a;f[g+8>>2]=-2147483616;f[g+4>>2]=30;c=a;d=189431;e=c+30|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+30>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=LDb(128)|0;f[h>>2]=a;f[h+8>>2]=-2147483520;f[h+4>>2]=124;c=a;d=189462;e=c+124|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+124>>0]=0;pV(oV()|0,2,g,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);a=LDb(32)|0;f[g>>2]=a;f[g+8>>2]=-2147483616;f[g+4>>2]=28;c=a;d=189587;e=c+28|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+28>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;e=h+11|0;b[e>>0]=6;b[h>>0]=b[189616]|0;b[h+1>>0]=b[189617]|0;b[h+2>>0]=b[189618]|0;b[h+3>>0]=b[189619]|0;b[h+4>>0]=b[189620]|0;b[h+5>>0]=b[189621]|0;b[h+6>>0]=0;pV(oV()|0,2,g,h);if((b[e>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);a=LDb(32)|0;f[g>>2]=a;f[g+8>>2]=-2147483616;f[g+4>>2]=25;c=a;d=162007;e=c+25|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+25>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=LDb(80)|0;f[h>>2]=a;f[h+8>>2]=-2147483568;f[h+4>>2]=67;c=a;d=189623;e=c+67|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+67>>0]=0;pV(oV()|0,2,g,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);a=LDb(48)|0;f[g>>2]=a;f[g+8>>2]=-2147483600;f[g+4>>2]=45;c=a;d=189691;e=c+45|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+45>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=LDb(80)|0;f[h>>2]=a;f[h+8>>2]=-2147483568;f[h+4>>2]=64;c=a;d=189737;e=c+64|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+64>>0]=0;pV(oV()|0,2,g,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);a=LDb(48)|0;f[g>>2]=a;f[g+8>>2]=-2147483600;f[g+4>>2]=33;c=a;d=189802;e=c+33|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+33>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=LDb(128)|0;f[h>>2]=a;f[h+8>>2]=-2147483520;f[h+4>>2]=127;c=a;d=189836;e=c+127|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+127>>0]=0;pV(oV()|0,2,g,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);Wx()|0;qV(289876,f[(f[72465]|0)+84>>2]|0);Wx()|0;rV(289888,f[(f[72465]|0)+84>>2]|0);Wx()|0;a=f[(f[72465]|0)+84>>2]|0;f[72475]=0;f[72476]=0;f[72477]=0;do if(a|0)if(a>>>0>1073741823)KEb(289900);else{d=a<<2;c=LDb(d)|0;f[72475]=c;e=c+(a<<2)|0;f[72477]=e;iGb(c|0,0,d|0)|0;f[72476]=e;break}while(0);Wx()|0;qV(290020,f[(f[72465]|0)+84>>2]|0);Wx()|0;rV(290032,f[(f[72465]|0)+84>>2]|0);Wx()|0;a=f[(f[72465]|0)+84>>2]|0;f[72511]=0;f[72512]=0;f[72513]=0;do if(a|0)if(a>>>0>1073741823)KEb(290044);else{d=a<<2;c=LDb(d)|0;f[72511]=c;e=c+(a<<2)|0;f[72513]=e;iGb(c|0,0,d|0)|0;f[72512]=e;break}while(0);a=LDb(48)|0;f[g>>2]=a;f[g+8>>2]=-2147483600;f[g+4>>2]=32;c=a;d=189964;e=c+32|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+32>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=LDb(96)|0;f[h>>2]=a;f[h+8>>2]=-2147483552;f[h+4>>2]=80;c=a;d=189997;e=c+80|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+80>>0]=0;pV(oV()|0,2,g,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);a=LDb(32)|0;f[g>>2]=a;f[g+8>>2]=-2147483616;f[g+4>>2]=28;c=a;d=190078;e=c+28|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+28>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=LDb(64)|0;f[h>>2]=a;f[h+8>>2]=-2147483584;f[h+4>>2]=53;c=a;d=190107;e=c+53|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+53>>0]=0;pV(oV()|0,2,g,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);Ny()|0;sV(289864);tV()|0;yGa(290056,0);a=LDb(32)|0;f[g>>2]=a;f[g+8>>2]=-2147483616;f[g+4>>2]=23;c=a;d=190161;e=c+23|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+23>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=LDb(80)|0;f[h>>2]=a;f[h+8>>2]=-2147483568;f[h+4>>2]=69;c=a;d=190185;e=c+69|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+69>>0]=0;pV(oV()|0,2,g,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);do if(!(b[287952]|0)){if(!(PFb(287952)|0))break;Lv(289680)}while(0);uV(290068);vV(290072);a=LDb(16)|0;f[g>>2]=a;f[g+8>>2]=-2147483632;f[g+4>>2]=13;c=a;d=190255;e=c+13|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+13>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;a=LDb(48)|0;f[h>>2]=a;f[h+8>>2]=-2147483600;f[h+4>>2]=35;c=a;d=190269;e=c+35|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));b[a+35>>0]=0;_Na(290076,4,g,h,1477);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)>=0){yV(290084);u=i;return}NDb(f[g>>2]|0);yV(290084);u=i;return}function oV(){var a=0,c=0,d=0,e=0,g=0;if(b[288e3]|0){g=f[72523]|0;return g|0}if(!(PFb(288e3)|0)){g=f[72523]|0;return g|0}a=LDb(108)|0;BCa(a);f[a>>2]=104588;c=a+52|0;f[c>>2]=0;f[a+56>>2]=0;d=a+48|0;e=a+12|0;g=e+36|0;do{f[e>>2]=0;e=e+4|0}while((e|0)<(g|0));f[d>>2]=c;g=a+64|0;f[g>>2]=0;f[a+68>>2]=0;f[a+60>>2]=g;g=a+76|0;f[g>>2]=0;f[a+80>>2]=0;f[a+72>>2]=g;g=a+88|0;f[g>>2]=0;f[a+92>>2]=0;f[a+84>>2]=g;g=a+100|0;f[g>>2]=0;f[a+104>>2]=0;f[a+96>>2]=g;f[72523]=a;g=a+8|0;f[g>>2]=(f[g>>2]|0)+1;g=f[72523]|0;return g|0}function pV(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0;h=u;u=u+16|0;g=h;switch(c|0){case 1:{f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;$Db(Ju(a+48|0,d)|0,e)|0;$Db(Ju(a+96|0,d)|0,g)|0;if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);u=h;return}case 2:{f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;$Db(Ju(a+60|0,d)|0,e)|0;$Db(Ju(a+84|0,d)|0,g)|0;if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);u=h;return}default:{u=h;return}}}function qV(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;f[a>>2]=0;d=a+4|0;f[d>>2]=0;c=a+8|0;f[c>>2]=0;if(!b)return;if(b>>>0>357913941)KEb(a);e=LDb(b*12|0)|0;f[d>>2]=e;f[a>>2]=e;f[c>>2]=e+(b*12|0);a=e;do{f[a+4>>2]=0;f[a+8>>2]=0;f[a>>2]=a+4;a=(f[d>>2]|0)+12|0;f[d>>2]=a;b=b+-1|0}while((b|0)!=0);return}function rV(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;f[a>>2]=0;d=a+4|0;f[d>>2]=0;c=a+8|0;f[c>>2]=0;if(!b)return;if(b>>>0>357913941)KEb(a);e=LDb(b*12|0)|0;f[d>>2]=e;f[a>>2]=e;f[c>>2]=e+(b*12|0);a=e;do{f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;a=(f[d>>2]|0)+12|0;f[d>>2]=a;b=b+-1|0}while((b|0)!=0);return}function sV(a){a=a|0;var b=0,c=0,d=0,e=0,g=0;Wx()|0;b=f[(f[72465]|0)+84>>2]|0;f[a>>2]=0;c=a+4|0;f[c>>2]=0;d=a+8|0;f[d>>2]=0;if(!b)return;if(b>>>0>1073741823)KEb(a);e=b<<2;g=LDb(e)|0;f[a>>2]=g;b=g+(b<<2)|0;f[d>>2]=b;iGb(g|0,0,e|0)|0;f[c>>2]=b;return}function tV(){var a=0;if(b[287992]|0)return 290088;if(!(PFb(287992)|0))return 290088;a=LDb(24)|0;BCa(a);f[a>>2]=94344;f[a+12>>2]=0;f[a+16>>2]=0;f[a+20>>2]=0;f[72522]=a;a=a+8|0;f[a>>2]=(f[a>>2]|0)+1;return 290088}function uV(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=0;if(!(aHa(0)|0))return;b=LDb(84)|0;_$(b);c=f[a>>2]|0;if(((c|0)!=(b|0)?(f[a>>2]=b,b=b+8|0,f[b>>2]=(f[b>>2]|0)+1,c|0):0)?(d=c+8|0,b=f[d>>2]|0,f[d>>2]=b-1,(b|0)==1):0)X4(c,1,1);d=aHa(0)|0;DYa(d,f[a>>2]|0);return}function vV(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=0;if(!(aHa(0)|0))return;b=LDb(68)|0;iY(b);c=f[a>>2]|0;if(((c|0)!=(b|0)?(f[a>>2]=b,b=b+8|0,f[b>>2]=(f[b>>2]|0)+1,c|0):0)?(d=c+8|0,b=f[d>>2]|0,f[d>>2]=b-1,(b|0)==1):0)X4(c,1,1);d=aHa(0)|0;DYa(d,f[a>>2]|0);return}function wV(){return 0}function xV(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;i=u;u=u+16|0;e=i;g=a+112|0;c=f[g>>2]|0;f[g>>2]=154;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;d=e+11|0;b[d>>0]=9;h=e;j=246516;k=h+9|0;do{b[h>>0]=b[j>>0]|0;h=h+1|0;j=j+1|0}while((h|0)<(k|0));b[e+9>>0]=0;hOa(a,e);if((b[d>>0]|0)<0)NDb(f[e>>2]|0);f[g>>2]=c;d=LDb(56)|0;qW(d,246669,0);f[d>>2]=102512;f[d+40>>2]=1036;f[d+44>>2]=0;f[d+48>>2]=790;f[d+52>>2]=0;f[d+20>>2]=7;kOa(a,d,2);d=LDb(48)|0;vW(d,246548,1037,464,465);kOa(a,d,1);d=LDb(56)|0;wW(d,190509,0);f[d>>2]=102556;f[d+40>>2]=1038;f[d+44>>2]=0;f[d+48>>2]=791;f[d+52>>2]=0;f[d+20>>2]=7;kOa(a,d,2);d=LDb(56)|0;zW(d,190536,0);f[d>>2]=102600;f[d+40>>2]=1039;f[d+44>>2]=0;f[d+48>>2]=232;f[d+52>>2]=1;f[d+20>>2]=7;kOa(a,d,2);d=LDb(60)|0;BW(d,190542,1);f[d>>2]=102644;f[d+40>>2]=1040;f[d+44>>2]=0;f[d+48>>2]=792;f[d+52>>2]=0;b[d+56>>0]=0;f[d+20>>2]=7;kOa(a,d,5);d=LDb(60)|0;BW(d,190562,1);f[d>>2]=102644;f[d+40>>2]=1041;f[d+44>>2]=0;f[d+48>>2]=793;f[d+52>>2]=0;b[d+56>>0]=0;f[d+20>>2]=7;kOa(a,d,5);d=LDb(60)|0;BW(d,190577,0);f[d>>2]=102644;f[d+40>>2]=1042;f[d+44>>2]=0;f[d+48>>2]=236;f[d+52>>2]=1;b[d+56>>0]=0;f[d+20>>2]=7;kOa(a,d,5);d=LDb(56)|0;HW(d,246591,0);f[d>>2]=102688;f[d+40>>2]=1043;f[d+44>>2]=0;f[d+48>>2]=794;f[d+52>>2]=0;f[d+20>>2]=7;kOa(a,d,2);d=LDb(56)|0;HW(d,246606,0);f[d>>2]=102688;f[d+40>>2]=1044;f[d+44>>2]=0;f[d+48>>2]=795;f[d+52>>2]=0;f[d+20>>2]=7;kOa(a,d,2);d=LDb(56)|0;HW(d,246620,0);f[d>>2]=102688;f[d+40>>2]=1045;f[d+44>>2]=0;f[d+48>>2]=796;f[d+52>>2]=0;f[d+20>>2]=7;kOa(a,d,2);d=LDb(56)|0;OW(d,184224,0);f[d>>2]=102732;f[d+40>>2]=1046;f[d+44>>2]=0;f[d+48>>2]=256;f[d+52>>2]=1;f[d+20>>2]=7;kOa(a,d,2);d=f[g>>2]|0;f[g>>2]=156;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;k=e+11|0;b[k>>0]=8;j=e;f[j>>2]=1952543827;f[j+4>>2]=1952797541;b[e+8>>0]=0;qYa(a,e);if((b[k>>0]|0)<0)NDb(f[e>>2]|0);f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;c=LDb(16)|0;f[e>>2]=c;f[e+8>>2]=-2147483632;f[e+4>>2]=14;h=c;j=246591;k=h+14|0;do{b[h>>0]=b[j>>0]|0;h=h+1|0;j=j+1|0}while((h|0)<(k|0));b[c+14>>0]=0;qYa(a,e);if((b[e+11>>0]|0)<0)NDb(f[e>>2]|0);f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;c=LDb(16)|0;f[e>>2]=c;f[e+8>>2]=-2147483632;f[e+4>>2]=13;h=c;j=246606;k=h+13|0;do{b[h>>0]=b[j>>0]|0;h=h+1|0;j=j+1|0}while((h|0)<(k|0));b[c+13>>0]=0;qYa(a,e);if((b[e+11>>0]|0)<0)NDb(f[e>>2]|0);f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;c=LDb(16)|0;f[e>>2]=c;f[e+8>>2]=-2147483632;f[e+4>>2]=12;h=c;j=246620;k=h+12|0;do{b[h>>0]=b[j>>0]|0;h=h+1|0;j=j+1|0}while((h|0)<(k|0));b[c+12>>0]=0;qYa(a,e);if((b[e+11>>0]|0)<0)NDb(f[e>>2]|0);f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;c=LDb(16)|0;f[e>>2]=c;f[e+8>>2]=-2147483632;f[e+4>>2]=12;h=c;j=184224;k=h+12|0;do{b[h>>0]=b[j>>0]|0;h=h+1|0;j=j+1|0}while((h|0)<(k|0));b[c+12>>0]=0;qYa(a,e);if((b[e+11>>0]|0)>=0){f[g>>2]=142;k=LDb(60)|0;QW(k,246647,-1);f[k>>2]=102776;j=k+40|0;f[j>>2]=1047;j=k+44|0;f[j>>2]=0;j=k+48|0;f[j>>2]=797;j=k+52|0;f[j>>2]=0;j=k+56|0;b[j>>0]=1;j=k+20|0;f[j>>2]=7;kOa(a,k,11);f[g>>2]=145;k=LDb(60)|0;BW(k,246633,1);f[k>>2]=102644;j=k+40|0;f[j>>2]=1048;j=k+44|0;f[j>>2]=0;j=k+48|0;f[j>>2]=798;j=k+52|0;f[j>>2]=0;j=k+56|0;b[j>>0]=0;j=k+20|0;f[j>>2]=7;kOa(a,k,5);f[g>>2]=d;u=i;return}NDb(f[e>>2]|0);f[g>>2]=142;k=LDb(60)|0;QW(k,246647,-1);f[k>>2]=102776;j=k+40|0;f[j>>2]=1047;j=k+44|0;f[j>>2]=0;j=k+48|0;f[j>>2]=797;j=k+52|0;f[j>>2]=0;j=k+56|0;b[j>>0]=1;j=k+20|0;f[j>>2]=7;kOa(a,k,11);f[g>>2]=145;k=LDb(60)|0;BW(k,246633,1);f[k>>2]=102644;j=k+40|0;f[j>>2]=1048;j=k+44|0;f[j>>2]=0;j=k+48|0;f[j>>2]=798;j=k+52|0;f[j>>2]=0;j=k+56|0;b[j>>0]=0;j=k+20|0;f[j>>2]=7;kOa(a,k,5);f[g>>2]=d;u=i;return}function yV(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=0;if(!(aHa(0)|0))return;b=LDb(68)|0;zV(b);c=f[a>>2]|0;if(((c|0)!=(b|0)?(f[a>>2]=b,b=b+8|0,f[b>>2]=(f[b>>2]|0)+1,c|0):0)?(d=c+8|0,b=f[d>>2]|0,f[d>>2]=b-1,(b|0)==1):0)X4(c,1,1);d=aHa(0)|0;DYa(d,f[a>>2]|0);return}function zV(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;i=u;u=u+32|0;c=i+12|0;d=i;CCa(a,1);e=a+12|0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;f[a+24>>2]=2;f[a+28>>2]=0;f[a+36>>2]=0;f[a+40>>2]=0;f[a+32>>2]=a+36;f[a+48>>2]=0;f[a+52>>2]=0;f[a+44>>2]=a+48;f[a+60>>2]=0;f[a+64>>2]=0;f[a+56>>2]=a+60;f[a>>2]=102208;e=c+4|0;f[e>>2]=0;f[e+4>>2]=0;e=c+11|0;b[e>>0]=3;b[c>>0]=b[227219]|0;b[c+1>>0]=b[227220]|0;b[c+2>>0]=b[227221]|0;b[c+3>>0]=0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;g=LDb(32)|0;f[d>>2]=g;f[d+8>>2]=-2147483616;f[d+4>>2]=16;h=g;j=190305;k=h+16|0;do{b[h>>0]=b[j>>0]|0;h=h+1|0;j=j+1|0}while((h|0)<(k|0));b[g+16>>0]=0;KYa(a,c,d);if((b[d+11>>0]|0)<0)NDb(f[d>>2]|0);if((b[e>>0]|0)>=0){u=i;return}NDb(f[c>>2]|0);u=i;return}function AV(a){a=a|0;EGa(a);NDb(a);return}function BV(a){a=a|0;var b=0;a=LDb(68)|0;CCa(a,1);b=a+12|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[a+24>>2]=2;f[a+28>>2]=0;f[a>>2]=125708;b=a+36|0;f[b>>2]=0;f[a+40>>2]=0;f[a+32>>2]=b;b=a+48|0;f[b>>2]=0;f[a+52>>2]=0;f[a+44>>2]=b;b=a+60|0;f[b>>2]=0;f[a+64>>2]=0;f[a+56>>2]=b;return a|0}function CV(a,b){a=a|0;b=b|0;var c=0;c=LDb(68)|0;nw(c,a,b);f[c>>2]=125708;b=c+36|0;f[b>>2]=0;f[c+40>>2]=0;f[c+32>>2]=b;b=c+48|0;f[b>>2]=0;f[c+52>>2]=0;f[c+44>>2]=b;b=c+60|0;f[b>>2]=0;f[c+64>>2]=0;f[c+56>>2]=b;return c|0}function DV(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,73384,0)|0)!=0;return b|0}function EV(a){a=a|0;return 220886}function FV(a){a=a|0;return 190467}function GV(a){a=a|0;return a+32|0}function HV(a){a=a|0;return a+44|0}function IV(a){a=a|0;return a+56|0}function JV(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;f[a+16>>2]=0;return}function KV(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;f[a+16>>2]=0;return}function LV(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;al[f[(f[b>>2]|0)+204>>2]&255](a,b,c,d);return}function MV(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=u;u=u+240|0;l=n+220|0;m=n+208|0;k=n+20|0;h=n;GXa(l,d);if(wk[f[(f[c>>2]|0)+176>>2]&1023](c,l)|0){Y4a(m,d,e,0);i=m+11|0;e=b[i>>0]|0;g=e<<24>>24<0;if(!((g?f[m+4>>2]|0:e&255)|0)){f[a>>2]=2;k=a+4|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;f[k+12>>2]=0}else{OXa(k,g?f[m>>2]|0:m,12);if(!(f[k+(f[(f[k>>2]|0)+-12>>2]|0)+16>>2]&5)){mW(h,c,k);if(JYa(h)|0)$Db((JYa(h)|0)+52|0,d)|0;f[a>>2]=f[h>>2];c=h+4|0;VDb(a+4|0,c);e=h+16|0;g=f[e>>2]|0;f[a+16>>2]=g;if((g|0?(j=g+8|0,f[j>>2]=(f[j>>2]|0)+1,j=f[e>>2]|0,j|0):0)?(h=j+8|0,a=f[h>>2]|0,f[h>>2]=a-1,(a|0)==1):0)X4(j,1,1);f[e>>2]=0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0)}else{f[a>>2]=1;a=a+4|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0}ELa(k);e=b[i>>0]|0}if(e<<24>>24<0)NDb(f[m>>2]|0)}else{f[a>>2]=1;m=a+4|0;f[m>>2]=0;f[m+4>>2]=0;f[m+8>>2]=0;f[m+12>>2]=0}if((b[l+11>>0]|0)>=0){u=n;return}NDb(f[l>>2]|0);u=n;return}function NV(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;f[a+16>>2]=0;return}function OV(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;f[a+16>>2]=0;return}function PV(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;f[a+16>>2]=0;return}function QV(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;f[a+16>>2]=0;return}function RV(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;return}function SV(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0;j=u;u=u+208|0;h=j+184|0;i=j;LHa(h,e);if(wk[f[(f[c>>2]|0)+176>>2]&1023](c,h)|0){QXa(i,(b[e+11>>0]|0)<0?f[e>>2]|0:e,20);if(!(f[i+(f[(f[i>>2]|0)+-12>>2]|0)+16>>2]&5))cl[f[(f[c>>2]|0)+276>>2]&63](a,c,d,i,g);else{f[a>>2]=2;g=a+4|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0}ILa(i)}else{f[a>>2]=1;i=a+4|0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0}if((b[h+11>>0]|0)>=0){u=j;return}NDb(f[h>>2]|0);u=j;return}function TV(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;return}function UV(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;return}function VV(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;return}function WV(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;return}function XV(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;al[f[(f[b>>2]|0)+252>>2]&255](a,b,c,d);return}function YV(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;mW(a,b,c);return}function ZV(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;f[a+16>>2]=0;return}function _V(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;f[a+16>>2]=0;return}function $V(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;f[a+16>>2]=0;return}function aW(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;f[a+16>>2]=0;return}function bW(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;return}function cW(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;e=iW(b,d,c,hW(b,e)|0)|0;f[a>>2]=e;e=a+4|0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;return}function dW(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;return}function eW(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;return}function fW(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;return}function gW(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;return}function hW(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=u;u=u+160|0;h=l+16|0;i=l+4|0;e=l;if(c|0){j=h+60|0;k=h+8|0;f[h>>2]=58540;f[j>>2]=58560;f[h+4>>2]=0;Itb(h+60|0,k);f[h+132>>2]=0;f[h+136>>2]=-1;f[h>>2]=89300;f[j>>2]=89320;Otb(k);f[k>>2]=87888;g=h+40|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;f[h+56>>2]=8;$v(k,c+32|0);f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;d=i+11|0;a=i+4|0;while(1){c=lW(h,i)|0;if(f[c+(f[(f[c>>2]|0)+-12>>2]|0)+16>>2]&5|0){c=1;a=0;break}c=b[d>>0]|0;if(((c<<24>>24<0?f[a>>2]|0:c&255)|0)==15?(uEb(i,0,-1,190322,15)|0)==0:0){m=7;break}}if((m|0)==7){Wtb(h,e)|0;c=0;a=f[e>>2]|0}if((b[d>>0]|0)<0)NDb(f[i>>2]|0);f[h>>2]=89300;f[j>>2]=89320;f[k>>2]=87888;if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);xsb(k);jtb(h,89332);rsb(j);if(!c){m=a;u=l;return m|0}}m=-1;u=l;return m|0}function iW(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=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,v=0,w=0,x=0;s=u;u=u+16|0;o=s+4|0;p=s;f[p>>2]=0;q=qnb(271475,0,0,0)|0;f[o>>2]=q;if(!q){r=2;u=s;return r|0}r=Cnb(q)|0;f[p>>2]=r;if(!r){r=2;u=s;return r|0}ykb(q,b,219,1478);Bnb(q,d);k=c+92|0;a=f[k>>2]|0;a:do if((a|0)<6409)switch(a|0){case 6406:case 6402:{n=0;break a}case 6407:{n=2;break a}case 6408:{n=6;break a}default:{r=2;u=s;return r|0}}else{if((a|0)<32992)switch(a|0){case 6409:{n=0;break a}case 6410:{n=4;break a}default:{r=2;u=s;return r|0}}switch(a|0){case 32992:{Dlb(q);n=2;break a}case 32993:{Dlb(q);n=6;break a}default:{r=2;u=s;return r|0}}}while(0);a=yK(f[k>>2]|0)|0;if(!a){r=2;u=s;return r|0}j=c+96|0;l=((vK(f[k>>2]|0,f[j>>2]|0)|0)>>>0)/(a>>>0)|0;switch(l|0){case 8:case 16:break;default:{r=2;u=s;return r|0}}g=c+76|0;b=f[g>>2]|0;m=MDb(b>>>0>1073741823?-1:b<<2)|0;if((b|0)>0){h=c+112|0;i=c+84|0;a=c+72|0;e=c+100|0;c=0;do{d=f[h>>2]|0;if(!d)d=0;else{vK(f[k>>2]|0,f[j>>2]|0)|0;w=f[i>>2]|0;w=(w|0)==0?f[a>>2]|0:w;x=f[e>>2]|0;w=W(vK(f[k>>2]|0,f[j>>2]|0)|0,w)|0;t=(x|0)==0?8:x<<3;v=(w|0)/(t|0)|0;d=d+(W(W(x,b+~c|0)|0,v+((w-(W(v,t)|0)|0)!=0&1)|0)|0)|0;vK(f[k>>2]|0,f[j>>2]|0)|0;b=f[g>>2]|0}f[m+(c<<2)>>2]=d;c=c+1|0}while((b|0)>(c|0))}else a=c+72|0;Skb(q,r,f[a>>2]|0,b,l,n,0,0,0);onb(q,r);if((l|0)>8)Elb(q);ynb(q,m);pnb(q,0);znb(o,p);ODb(m);x=3;u=s;return x|0}function jW(a,b,c){a=a|0;b=b|0;c=c|0;sub(bob(a)|0,b,c)|0;return}function kW(a){a=a|0;Rtb(bob(a)|0)|0;return}function lW(a,c){a=a|0;c=c|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0;m=u;u=u+16|0;l=m+4|0;g=m;Qtb(l,a,0);if(!(b[l>>0]|0)){c=a+(f[(f[a>>2]|0)+-12>>2]|0)|0;Htb(c,f[c+16>>2]|4);u=m;return a|0}e=c+11|0;if((b[e>>0]|0)<0){b[f[c>>2]>>0]=0;f[c+4>>2]=0}else{b[c>>0]=0;b[e>>0]=0}e=a+(f[(f[a>>2]|0)+-12>>2]|0)|0;l=f[e+12>>2]|0;l=(l|0)<1?2147483647:l;Ktb(g,e);e=Bvb(g,295164)|0;Cvb(g);a:do if((l|0)>0){k=e+8|0;e=0;while(1){g=f[a+(f[(f[a>>2]|0)+-12>>2]|0)+24>>2]|0;i=f[g+12>>2]|0;if((i|0)==(f[g+16>>2]|0)){g=sk[f[(f[g>>2]|0)+36>>2]&2047](g)|0;if((g|0)==-1){g=2;break a}}else g=h[i>>0]|0;i=g&255;if(i<<24>>24>-1?d[(f[k>>2]|0)+(g<<24>>24<<1)>>1]&8192:0){g=0;break a}kEb(c,i);e=e+1|0;g=f[a+(f[(f[a>>2]|0)+-12>>2]|0)+24>>2]|0;i=g+12|0;j=f[i>>2]|0;if((j|0)==(f[g+16>>2]|0))sk[f[(f[g>>2]|0)+40>>2]&2047](g)|0;else f[i>>2]=j+1;if((e|0)>=(l|0)){e=1;g=0;break}}}else{e=0;g=0}while(0);c=(f[a>>2]|0)+-12|0;f[a+(f[c>>2]|0)+12>>2]=0;c=a+(f[c>>2]|0)|0;Htb(c,f[c+16>>2]|((e|0)==0?g|4:g));u=m;return a|0}function mW(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,q=0,r=0,s=0,t=0;t=u;u=u+48|0;e=t+36|0;c=t+40|0;m=t+32|0;o=t+28|0;q=t+24|0;g=t;s=t+20|0;r=t+16|0;h=t+12|0;i=t+8|0;l=Fnb(271475,0,0,0)|0;f[m>>2]=l;snb(l,cob(l)|0,799,800);k=Cnb(l)|0;f[o>>2]=k;l=Cnb(l)|0;f[q>>2]=l;bub(d,c,8)|0;if((f[d+4>>2]|0)==8?(knb(c,0,8)|0)==0:0){Ckb(f[m>>2]|0,d,220);aob(f[m>>2]|0,8);Gnb(f[m>>2]|0,f[o>>2]|0);zlb(f[m>>2]|0,f[o>>2]|0,s,r,h,i,0,0,0)|0;if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>4){l=Nv(Mv(5)|0,190338,6)|0;l=Nv(jub(l,f[s>>2]|0)|0,202731,8)|0;l=Nv(jub(l,f[r>>2]|0)|0,190345,7)|0;l=iub(l,f[h>>2]|0)|0;Ktb(e,l+(f[(f[l>>2]|0)+-12>>2]|0)|0);k=Bvb(e,295164)|0;k=wk[f[(f[k>>2]|0)+28>>2]&1023](k,10)|0;Cvb(e);rub(l,k)|0;Rtb(l)|0}c=f[i>>2]|0;if((c|0)==2){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>4){l=Nv(Mv(5)|0,190353,28)|0;Ktb(e,l+(f[(f[l>>2]|0)+-12>>2]|0)|0);k=Bvb(e,295164)|0;k=wk[f[(f[k>>2]|0)+28>>2]&1023](k,10)|0;Cvb(e);rub(l,k)|0;Rtb(l)|0}c=f[i>>2]|0}if(!c){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>4){l=Nv(Mv(5)|0,190382,29)|0;Ktb(e,l+(f[(f[l>>2]|0)+-12>>2]|0)|0);k=Bvb(e,295164)|0;k=wk[f[(f[k>>2]|0)+28>>2]&1023](k,10)|0;Cvb(e);rub(l,k)|0;Rtb(l)|0}}if((f[i>>2]|0)==4){if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)>4){l=Nv(Mv(5)|0,190412,35)|0;Ktb(e,l+(f[(f[l>>2]|0)+-12>>2]|0)|0);k=Bvb(e,295164)|0;k=wk[f[(f[k>>2]|0)+28>>2]&1023](k,10)|0;Cvb(e);rub(l,k)|0;Rtb(l)|0}}if((f[h>>2]|0)>8)Elb(f[m>>2]|0);c=f[i>>2]|0;if((c|0)==3){fob(f[m>>2]|0);c=f[i>>2]|0}if((c|0)==0&(f[h>>2]|0)<8)gob(f[m>>2]|0);if(ulb(f[m>>2]|0,f[o>>2]|0,16)|0)$nb(f[m>>2]|0);if((f[h>>2]|0)<8)Flb(f[m>>2]|0);l=(ylb(f[m>>2]|0,f[o>>2]|0,g)|0)==0;c=f[m>>2]|0;if(l)eob(c,2.2,.45454545454545453);else eob(c,2.2,+p[g>>3]);Jnb(f[m>>2]|0,f[o>>2]|0);l=vlb(f[m>>2]|0,f[o>>2]|0)|0;k=f[r>>2]|0;l=MDb(W(k,l)|0)|0;e=MDb(k>>>0>1073741823?-1:k<<2)|0;c=f[m>>2]|0;if(k){d=0;do{c=l+(W(vlb(c,f[o>>2]|0)|0,d)|0)|0;k=f[r>>2]|0;f[e+(k+~d<<2)>>2]=c;d=d+1|0;c=f[m>>2]|0}while(d>>>0<k>>>0)}Ynb(c,e);ODb(e);Znb(f[m>>2]|0,f[q>>2]|0);c=f[h>>2]|0;k=(c|0)<9?5121:5123;switch(f[i>>2]|0){case -1:{j=6409;break}case -2:{j=6406;break}case 0:{j=6409;break}case 4:{j=6410;break}case 3:case 2:{j=(xlb(f[m>>2]|0,f[o>>2]|0)|0)<<24>>24==4;j=j?6408:6407;c=f[h>>2]|0;break}case 6:{j=6408;break}default:j=0}a:do if((c|0)>8)switch(f[i>>2]|0){case 6409:{i=32834;break a}case 6406:{i=32830;break a}case 6410:{i=32840;break a}case 6407:{i=32852;break a}case 6408:{i=32859;break a}default:{i=j;break a}}else i=j;while(0);Dnb(m,o,q);if(!j){f[a>>2]=1;a=a+4|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;u=t;return}else{c=LDb(140)|0;CCa(c,1);d=c+12|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;d=c+24|0;e=c+28|0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;f[e+12>>2]=0;f[e+16>>2]=0;f[e+20>>2]=0;f[c>>2]=94824;e=c+100|0;g=c+52|0;h=g+48|0;do{b[g>>0]=0;g=g+1|0}while((g|0)<(h|0));f[e>>2]=4;n[c+104>>2]=1.0;f[c+108>>2]=1;q=c+112|0;f[q>>2]=0;f[q+4>>2]=0;f[q+8>>2]=0;f[q+12>>2]=0;f[q+16>>2]=0;f[q+20>>2]=0;f[q+24>>2]=0;f[d>>2]=1;nM(c,f[s>>2]|0,f[r>>2]|0,1,i,j,k,l,1,1,0);f[a>>2]=4;s=a+4|0;f[s>>2]=0;f[s+4>>2]=0;f[s+8>>2]=0;f[a+16>>2]=c;a=c+8|0;f[a>>2]=(f[a>>2]|0)+1;u=t;return}}Dnb(m,o,q);f[a>>2]=1;a=a+4|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;u=t;return}function nW(a,c){a=a|0;c=c|0;var d=0,e=0;d=u;u=u+16|0;a=d;if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=1){u=d;return}e=Nv(Mv(2)|0,190448,18)|0;c=Nv(e,c,Zob(c)|0)|0;Ktb(a,c+(f[(f[c>>2]|0)+-12>>2]|0)|0);e=Bvb(a,295164)|0;e=wk[f[(f[e>>2]|0)+28>>2]&1023](e,10)|0;Cvb(a);rub(c,e)|0;Rtb(c)|0;u=d;return}function oW(a,c){a=a|0;c=c|0;var d=0,e=0;d=u;u=u+16|0;a=d;if((b[287952]|0)==0?PFb(287952)|0:0)Lv(289680);if((f[72420]|0)<=1){u=d;return}e=Nv(Mv(2)|0,190448,18)|0;c=Nv(e,c,Zob(c)|0)|0;Ktb(a,c+(f[(f[c>>2]|0)+-12>>2]|0)|0);e=Bvb(a,295164)|0;e=wk[f[(f[e>>2]|0)+28>>2]&1023](e,10)|0;Cvb(a);rub(c,e)|0;Rtb(c)|0;u=d;return}function pW(a,b,c){a=a|0;b=b|0;c=c|0;bub(bob(a)|0,b,c)|0;return}function qW(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;BCa(a);f[a+12>>2]=0;f[a+16>>2]=2147483647;f[a+20>>2]=1;f[a>>2]=103148;e=a+24|0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;g=Zob(c)|0;if(g>>>0>4294967279)TDb(e);if(g>>>0<11){b[e+11>>0]=g;if(!g){c=e;g=c+g|0;b[g>>0]=0;g=a+36|0;f[g>>2]=d;return}}else{i=g+16&-16;h=LDb(i)|0;f[e>>2]=h;f[a+32>>2]=i|-2147483648;f[a+28>>2]=g;e=h}gGb(e|0,c|0,g|0)|0;i=e;i=i+g|0;b[i>>0]=0;i=a+36|0;f[i>>2]=d;return}function rW(a){a=a|0;return f[a+120>>2]|0}function sW(a){a=a|0;if(!(+n[a+136>>2]>=+n[a+124>>2])){a=0;return a|0}if(!(+n[a+140>>2]>=+n[a+128>>2])){a=0;return a|0}a=+n[a+144>>2]>=+n[a+132>>2];return a|0}function tW(a,b){a=a|0;b=b|0;var c=0,d=0.0,e=0.0,g=0.0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,o=0;c=u;u=u+48|0;j=c+24|0;k=c;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;f[k+12>>2]=0;f[k+16>>2]=0;f[k+20>>2]=0;l=a+112|0;m=f[l>>2]|0;Vk[f[(f[m>>2]|0)+84>>2]&1023](m,a+24|0);gX(a);m=a+4|0;eEb(m,191447)|0;o=f[l>>2]|0;Vk[f[(f[o>>2]|0)+80>>2]&1023](o,m);gX(a);hYa(a,j)|0;eEb(m,191455)|0;o=f[l>>2]|0;Vk[f[(f[o>>2]|0)+80>>2]&1023](o,m);gX(a);hYa(a,k)|0;l=f[l>>2]|0;Vk[f[(f[l>>2]|0)+84>>2]&1023](l,a+40|0);gX(a);i=+p[j+8>>3];h=+p[j+16>>3];g=+p[k>>3];e=+p[k+8>>3];d=+p[k+16>>3];n[b+124>>2]=+p[j>>3];n[b+128>>2]=i;n[b+132>>2]=h;n[b+136>>2]=g;n[b+140>>2]=e;n[b+144>>2]=d;oA(b);u=c;return 1}function uW(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;c=u;u=u+32|0;e=c;d=a+292|0;g=f[d>>2]|0;Vk[f[(f[g>>2]|0)+88>>2]&1023](g,a+24|0);g=f[d>>2]|0;Vk[f[(f[g>>2]|0)+72>>2]&1023](g,1049);g=a+4|0;eEb(g,191447)|0;h=f[d>>2]|0;Vk[f[(f[h>>2]|0)+84>>2]&1023](h,g);p[e>>3]=+n[b+124>>2];p[e+8>>3]=+n[b+128>>2];p[e+16>>3]=+n[b+132>>2];wYa(a,e)|0;h=f[a+292>>2]|0;Vk[f[(f[h>>2]|0)+72>>2]&1023](h,1049);eEb(g,191455)|0;h=f[d>>2]|0;Vk[f[(f[h>>2]|0)+84>>2]&1023](h,g);p[e>>3]=+n[b+136>>2];p[e+8>>3]=+n[b+140>>2];p[e+16>>3]=+n[b+144>>2];wYa(a,e)|0;b=f[a+292>>2]|0;Vk[f[(f[b>>2]|0)+72>>2]&1023](b,1049);b=f[d>>2]|0;Vk[f[(f[b>>2]|0)+88>>2]&1023](b,a+40|0);b=f[d>>2]|0;Vk[f[(f[b>>2]|0)+72>>2]&1023](b,1049);u=c;return 1}function vW(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0;BCa(a);f[a+12>>2]=0;f[a+16>>2]=2147483647;f[a+20>>2]=1;f[a>>2]=103104;h=a+24|0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;i=Zob(c)|0;if(i>>>0>4294967279)TDb(h);if(i>>>0<11){b[h+11>>0]=i;if(i)j=6}else{k=i+16&-16;j=LDb(k)|0;f[h>>2]=j;f[a+32>>2]=k|-2147483648;f[a+28>>2]=i;h=j;j=6}if((j|0)==6)gGb(h|0,c|0,i|0)|0;b[h+i>>0]=0;f[a+36>>2]=d;f[a+40>>2]=e;f[a+44>>2]=g;return}function wW(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;BCa(a);f[a+12>>2]=0;f[a+16>>2]=2147483647;f[a+20>>2]=1;f[a>>2]=103060;e=a+24|0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;g=Zob(c)|0;if(g>>>0>4294967279)TDb(e);if(g>>>0<11){b[e+11>>0]=g;if(!g){c=e;g=c+g|0;b[g>>0]=0;g=a+36|0;f[g>>2]=d;return}}else{i=g+16&-16;h=LDb(i)|0;f[e>>2]=h;f[a+32>>2]=i|-2147483648;f[a+28>>2]=g;e=h}gGb(e|0,c|0,g|0)|0;i=e;i=i+g|0;b[i>>0]=0;i=a+36|0;f[i>>2]=d;return}function xW(a){a=a|0;return f[a+148>>2]|0}function yW(a,b){a=a|0;b=b|0;var c=0;a=a+148|0;c=f[a>>2]|0;if((c|0)==(b|0))return;f[a>>2]=b;if(b|0){b=b+8|0;f[b>>2]=(f[b>>2]|0)+1}if(!c)return;a=c+8|0;b=f[a>>2]|0;f[a>>2]=b-1;if((b|0)!=1)return;X4(c,1,1);return}function zW(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;BCa(a);f[a+12>>2]=0;f[a+16>>2]=2147483647;f[a+20>>2]=1;f[a>>2]=103016;e=a+24|0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;g=Zob(c)|0;if(g>>>0>4294967279)TDb(e);if(g>>>0<11){b[e+11>>0]=g;if(!g){c=e;g=c+g|0;b[g>>0]=0;g=a+36|0;f[g>>2]=d;return}}else{i=g+16&-16;h=LDb(i)|0;f[e>>2]=h;f[a+32>>2]=i|-2147483648;f[a+28>>2]=g;e=h}gGb(e|0,c|0,g|0)|0;i=e;i=i+g|0;b[i>>0]=0;i=a+36|0;f[i>>2]=d;return}function AW(a){a=a|0;return f[a+176>>2]|0}function BW(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;BCa(a);f[a+12>>2]=0;f[a+16>>2]=2147483647;f[a+20>>2]=1;f[a>>2]=102972;e=a+24|0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;g=Zob(c)|0;if(g>>>0>4294967279)TDb(e);if(g>>>0<11){b[e+11>>0]=g;if(!g){c=e;g=c+g|0;b[g>>0]=0;d=d&1;g=a+36|0;b[g>>0]=d;return}}else{i=g+16&-16;h=LDb(i)|0;f[e>>2]=h;f[a+32>>2]=i|-2147483648;f[a+28>>2]=g;e=h}gGb(e|0,c|0,g|0)|0;h=e;h=h+g|0;b[h>>0]=0;h=d&1;i=a+36|0;b[i>>0]=h;return}function CW(a){a=a|0;return (b[a+180>>0]|0)!=0|0}function DW(a,c){a=a|0;c=c|0;a=a+180|0;if((h[a>>0]|0|0)==(c&1|0))return;b[a>>0]=0;return}function EW(a){a=a|0;return (b[a+181>>0]|0)!=0|0}function FW(a,c){a=a|0;c=c|0;a=a+181|0;if((h[a>>0]|0|0)==(c&1|0))return;b[a>>0]=0;return}function GW(a){a=a|0;return (b[a+183>>0]|0)!=0|0}function HW(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;BCa(a);f[a+12>>2]=0;f[a+16>>2]=2147483647;f[a+20>>2]=1;f[a>>2]=102928;e=a+24|0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;g=Zob(c)|0;if(g>>>0>4294967279)TDb(e);if(g>>>0<11){b[e+11>>0]=g;if(!g){c=e;g=c+g|0;b[g>>0]=0;g=a+36|0;f[g>>2]=d;return}}else{i=g+16&-16;h=LDb(i)|0;f[e>>2]=h;f[a+32>>2]=i|-2147483648;f[a+28>>2]=g;e=h}gGb(e|0,c|0,g|0)|0;i=e;i=i+g|0;b[i>>0]=0;i=a+36|0;f[i>>2]=d;return}function IW(a){a=a|0;return f[a+84>>2]|0}function JW(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;h=a+84|0;c=f[h>>2]|0;if((c|0)==(b|0))return;if(((f[a+88>>2]|0)==0?(d=f[a+72>>2]|0,g=a+76|0,(d|0)!=(f[g>>2]|0)):0)?(e=(((c|0)!=0)<<31>>31)+((b|0)!=0&1)|0,(e|0)!=0):0){c=d;do{d=f[c>>2]|0;pA(d,(f[d+88>>2]|0)+e|0);c=c+4|0}while((c|0)!=(f[g>>2]|0));c=f[h>>2]|0}if((c|0)==(b|0))return;f[h>>2]=b;if(b|0){h=b+(f[(f[b>>2]|0)+-12>>2]|0)+8|0;f[h>>2]=(f[h>>2]|0)+1}if(!c)return;c=c+(f[(f[c>>2]|0)+-12>>2]|0)|0;b=c+8|0;h=f[b>>2]|0;f[b>>2]=h-1;if((h|0)!=1)return;X4(c,1,1);return}function KW(a){a=a|0;return f[a+92>>2]|0}function LW(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;h=a+92|0;c=f[h>>2]|0;if((c|0)==(b|0))return;if(((f[a+96>>2]|0)==0?(d=f[a+72>>2]|0,g=a+76|0,(d|0)!=(f[g>>2]|0)):0)?(e=(((c|0)!=0)<<31>>31)+((b|0)!=0&1)|0,(e|0)!=0):0){c=d;do{d=f[c>>2]|0;qA(d,(f[d+96>>2]|0)+e|0);c=c+4|0}while((c|0)!=(f[g>>2]|0));c=f[h>>2]|0}if((c|0)==(b|0))return;f[h>>2]=b;if(b|0){h=b+(f[(f[b>>2]|0)+-12>>2]|0)+8|0;f[h>>2]=(f[h>>2]|0)+1}if(!c)return;c=c+(f[(f[c>>2]|0)+-12>>2]|0)|0;b=c+8|0;h=f[b>>2]|0;f[b>>2]=h-1;if((h|0)!=1)return;X4(c,1,1);return}function MW(a){a=a|0;return f[a+100>>2]|0}function NW(a,b){a=a|0;b=b|0;var c=0;a=a+100|0;c=f[a>>2]|0;if((c|0)==(b|0))return;f[a>>2]=b;if(b|0){b=b+(f[(f[b>>2]|0)+-12>>2]|0)+8|0;f[b>>2]=(f[b>>2]|0)+1}if(!c)return;a=c+(f[(f[c>>2]|0)+-12>>2]|0)|0;c=a+8|0;b=f[c>>2]|0;f[c>>2]=b-1;if((b|0)!=1)return;X4(a,1,1);return}function OW(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;BCa(a);f[a+12>>2]=0;f[a+16>>2]=2147483647;f[a+20>>2]=1;f[a>>2]=102884;e=a+24|0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;g=Zob(c)|0;if(g>>>0>4294967279)TDb(e);if(g>>>0<11){b[e+11>>0]=g;if(!g){c=e;g=c+g|0;b[g>>0]=0;g=a+36|0;f[g>>2]=d;return}}else{i=g+16&-16;h=LDb(i)|0;f[e>>2]=h;f[a+32>>2]=i|-2147483648;f[a+28>>2]=g;e=h}gGb(e|0,c|0,g|0)|0;i=e;i=i+g|0;b[i>>0]=0;i=a+36|0;f[i>>2]=d;return}function PW(a){a=a|0;return f[a+212>>2]|0}function QW(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;BCa(a);f[a+12>>2]=0;f[a+16>>2]=2147483647;f[a+20>>2]=1;f[a>>2]=102840;e=a+24|0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;g=Zob(c)|0;if(g>>>0>4294967279)TDb(e);if(g>>>0<11){b[e+11>>0]=g;if(!g){c=e;g=c+g|0;b[g>>0]=0;g=a+36|0;f[g>>2]=d;return}}else{i=g+16&-16;h=LDb(i)|0;f[e>>2]=h;f[a+32>>2]=i|-2147483648;f[a+28>>2]=g;e=h}gGb(e|0,c|0,g|0)|0;i=e;i=i+g|0;b[i>>0]=0;i=a+36|0;f[i>>2]=d;return}function RW(a){a=a|0;return f[a+116>>2]|0}function SW(a,b){a=a|0;b=b|0;f[a+116>>2]=b;return}function TW(a){a=a|0;return (b[a+104>>0]|0)!=0|0}function UW(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;i=c&1;j=a+104|0;e=b[j>>0]|0;if((e&255|0)==(c&1|0))return;if(((f[a+108>>2]|0)==0?(d=f[a+72>>2]|0,h=a+76|0,(d|0)!=(f[h>>2]|0)):0)?(g=(e+-1<<24>>24<<24>>24)+((c^1)&1)|0,g|0):0)do{e=f[d>>2]|0;rA(e,(f[e+108>>2]|0)+g|0);d=d+4|0}while((d|0)!=(f[h>>2]|0));b[j>>0]=i;return}function VW(a){a=a|0;var c=0;f[a>>2]=102840;c=a+24|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);V4(a);return}function WW(a){a=a|0;var c=0;f[a>>2]=102840;c=a+24|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);V4(a);NDb(a);return}function XW(a,b,c){a=a|0;b=b|0;c=c|0;return 0}function YW(a,b,c){a=a|0;b=b|0;c=c|0;return 0}function ZW(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0;i=u;u=u+16|0;h=i;g=c+112|0;e=f[g>>2]|0;if(sk[f[(f[e>>2]|0)+12>>2]&2047](e)|0){e=f[g>>2]|0;Vk[f[(f[e>>2]|0)+44>>2]&1023](e,h);gX(c);c=f[a+48>>2]|0;a=f[a+52>>2]|0;e=d+(a>>1)|0;if(a&1)c=f[(f[e>>2]|0)+c>>2]|0;Vk[c&1023](e,f[h>>2]|0);u=i;return 1}e=f[g>>2]|0;if(!(wk[f[(f[e>>2]|0)+96>>2]&1023](e,a+24|0)|0)){u=i;return 1}e=a+56|0;if(b[e>>0]|0){j=f[g>>2]|0;Vk[f[(f[j>>2]|0)+72>>2]&1023](j,1050);gX(c)}j=f[g>>2]|0;Vk[f[(f[j>>2]|0)+44>>2]&1023](j,h);gX(c);if(b[e>>0]|0){j=f[g>>2]|0;Vk[f[(f[j>>2]|0)+72>>2]&1023](j,1051);gX(c)}c=f[a+48>>2]|0;j=f[a+52>>2]|0;e=d+(j>>1)|0;if(j&1)c=f[(f[e>>2]|0)+c>>2]|0;Vk[c&1023](e,f[h>>2]|0);u=i;return 1}function _W(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0;e=f[a+40>>2]|0;h=f[a+44>>2]|0;d=d+(h>>1)|0;if(h&1)e=f[(f[d>>2]|0)+e>>2]|0;g=sk[e&2047](d)|0;h=c+292|0;d=f[h>>2]|0;if(sk[f[(f[d>>2]|0)+12>>2]&2047](d)|0){a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+40>>2]&1023](a,g);return 1}if((f[a+36>>2]|0)==(g|0))return 1;d=c+4|0;e=a+24|0;if((b[e+11>>0]|0)<0)e=f[e>>2]|0;eEb(d,e)|0;e=f[h>>2]|0;Vk[f[(f[e>>2]|0)+84>>2]&1023](e,d);e=a+56|0;if(b[e>>0]|0){a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+76>>2]&1023](a,1050);a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+76>>2]&1023](a,1052)}a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+40>>2]&1023](a,g);if(b[e>>0]|0){a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+76>>2]&1023](a,1051);a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+76>>2]&1023](a,1053)}a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+72>>2]&1023](a,1049);return 1}function $W(a){a=a|0;return a+24|0}function aX(a){a=a|0;return 0}function bX(a){a=a|0;var b=0;b=a+4|0;f[b>>2]=f[b>>2]&-75|8;return a|0}function cX(a){a=a|0;var b=0;b=a+4|0;f[b>>2]=f[b>>2]|512;return a|0}function dX(a){a=a|0;var b=0;b=a+4|0;f[b>>2]=f[b>>2]&-75|2;return a|0}function eX(a){a=a|0;var b=0;b=a+4|0;f[b>>2]=f[b>>2]&-513;return a|0}function fX(a){a=a|0;var b=0,c=0,d=0;b=u;u=u+16|0;d=b;Ktb(d,a+(f[(f[a>>2]|0)+-12>>2]|0)|0);c=Bvb(d,295164)|0;c=wk[f[(f[c>>2]|0)+28>>2]&1023](c,10)|0;Cvb(d);rub(a,c)|0;Rtb(a)|0;u=b;return a|0}function gX(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0;i=u;u=u+16|0;h=i;g=a+112|0;PYa(f[g>>2]|0);if(!(b[(f[g>>2]|0)+25>>0]|0)){u=i;return}c=LDb(48)|0;f[h>>2]=c;f[h+8>>2]=-2147483600;f[h+4>>2]=40;d=c;e=190600;g=d+40|0;do{b[d>>0]=b[e>>0]|0;d=d+1|0;e=e+1|0}while((d|0)<(g|0));b[c+40>>0]=0;e=LDb(36)|0;hX(e,a+100|0,h);c=a+116|0;d=f[c>>2]|0;if(((d|0)!=(e|0)?(f[c>>2]=e,a=e+8|0,f[a>>2]=(f[a>>2]|0)+1,d|0):0)?(g=d+8|0,a=f[g>>2]|0,f[g>>2]=a-1,(a|0)==1):0)X4(d,1,1);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);u=i;return}function hX(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0;BCa(a);f[a>>2]=102820;g=a+12|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;VDb(a+24|0,d);e=c+4|0;a=f[c>>2]|0;if((f[e>>2]|0)==(a|0))return;d=0;do{i=a;k=i+(d*12|0)|0;h=b[k+11>>0]|0;j=h<<24>>24<0;iEb(g,j?f[k>>2]|0:k,j?f[i+(d*12|0)+4>>2]|0:h&255)|0;jEb(g,239529)|0;d=d+1|0;a=f[c>>2]|0}while(d>>>0<(((f[e>>2]|0)-a|0)/12|0)>>>0);return}function iX(a){a=a|0;var c=0;f[a>>2]=102820;c=a+24|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);c=a+12|0;if((b[c+11>>0]|0)>=0){V4(a);return}NDb(f[c>>2]|0);V4(a);return}function jX(a){a=a|0;var c=0;f[a>>2]=102820;c=a+24|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);c=a+12|0;if((b[c+11>>0]|0)>=0){V4(a);NDb(a);return}NDb(f[c>>2]|0);V4(a);NDb(a);return}function kX(a){a=a|0;Ni()}function lX(a){a=a|0;var c=0;f[a>>2]=102884;c=a+24|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);V4(a);return}function mX(a){a=a|0;var c=0;f[a>>2]=102884;c=a+24|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);V4(a);NDb(a);return}function nX(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=f[a+48>>2]|0;a=f[a+52>>2]|0;e=b+(a>>1)|0;if(!(a&1))b=d;else b=f[(f[e>>2]|0)+d>>2]|0;a=f[c>>2]|0;if(!a){c=0;Vk[b&1023](e,c);return 1}c=bFb(a,58336,62408,-1)|0;Vk[b&1023](e,c);return 1}function oX(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=f[a+40>>2]|0;e=f[a+44>>2]|0;a=b+(e>>1)|0;if(e&1)d=f[(f[a>>2]|0)+d>>2]|0;d=sk[d&2047](a)|0;if(!d){e=0;f[c>>2]=e;return 1}e=d+(f[(f[d>>2]|0)+-12>>2]|0)|0;f[c>>2]=e;return 1}function pX(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0;k=u;u=u+16|0;g=k;e=k+4|0;b[e>>0]=0;j=c+112|0;i=f[j>>2]|0;if(sk[f[(f[i>>2]|0)+12>>2]&2047](i)|0){j=f[j>>2]|0;Vk[f[(f[j>>2]|0)+16>>2]&1023](j,e);gX(c);if(!(b[e>>0]|0)){u=k;return 1}_Pa(g,c,0);e=f[g>>2]|0;do if(e){h=bFb(e,58336,62408,-1)|0;if(h){e=h+(f[(f[h>>2]|0)+-12>>2]|0)+8|0;f[e>>2]=(f[e>>2]|0)+1;e=f[g>>2]|0;if(!e){i=h;break}else g=h}else{g=0;h=0}c=e+8|0;j=f[c>>2]|0;f[c>>2]=j-1;if((j|0)==1){X4(e,1,1);i=g}else i=g}else{i=0;h=0}while(0);e=f[a+48>>2]|0;a=f[a+52>>2]|0;g=d+(a>>1)|0;if(a&1)e=f[(f[g>>2]|0)+e>>2]|0;Vk[e&1023](g,i);if(!i){u=k;return 1}e=h+(f[(f[i>>2]|0)+-12>>2]|0)|0;a=e+8|0;d=f[a>>2]|0;f[a>>2]=d-1;if((d|0)!=1){u=k;return 1}X4(e,1,1);u=k;return 1}i=f[j>>2]|0;if(!(wk[f[(f[i>>2]|0)+96>>2]&1023](i,a+24|0)|0)){u=k;return 1}i=f[j>>2]|0;Vk[f[(f[i>>2]|0)+16>>2]&1023](i,e);gX(c);if(!(b[e>>0]|0)){u=k;return 1}e=f[j>>2]|0;Vk[f[(f[e>>2]|0)+84>>2]&1023](e,c+24|0);gX(c);_Pa(g,c,0);e=f[g>>2]|0;do if(e){h=bFb(e,58336,62408,-1)|0;if(h){e=h+(f[(f[h>>2]|0)+-12>>2]|0)+8|0;f[e>>2]=(f[e>>2]|0)+1;e=f[g>>2]|0;if(!e){i=h;break}else g=h}else{g=0;h=0}l=e+8|0;i=f[l>>2]|0;f[l>>2]=i-1;if((i|0)==1){X4(e,1,1);i=g}else i=g}else{i=0;h=0}while(0);e=f[a+48>>2]|0;l=f[a+52>>2]|0;g=d+(l>>1)|0;if(l&1)e=f[(f[g>>2]|0)+e>>2]|0;Vk[e&1023](g,i);l=f[j>>2]|0;Vk[f[(f[l>>2]|0)+84>>2]&1023](l,c+40|0);gX(c);if(!i){u=k;return 1}e=h+(f[(f[i>>2]|0)+-12>>2]|0)|0;d=e+8|0;l=f[d>>2]|0;f[d>>2]=l-1;if((l|0)!=1){u=k;return 1}X4(e,1,1);u=k;return 1}function qX(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;e=f[a+40>>2]|0;i=f[a+44>>2]|0;d=d+(i>>1)|0;if(i&1)e=f[(f[d>>2]|0)+e>>2]|0;d=sk[e&2047](d)|0;g=(d|0)!=0;h=c+292|0;i=f[h>>2]|0;if(sk[f[(f[i>>2]|0)+12>>2]&2047](i)|0){a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+16>>2]&1023](a,g);if(!g)return 1;nPa(c,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);return 1}if((f[a+36>>2]|0)==(d|0))return 1;i=c+4|0;e=a+24|0;if((b[e+11>>0]|0)<0)e=f[e>>2]|0;eEb(i,e)|0;a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+84>>2]&1023](a,i);a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+16>>2]&1023](a,g);if(g){a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+88>>2]&1023](a,c+24|0);a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+72>>2]&1023](a,1049);nPa(c,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+88>>2]&1023](a,c+40|0)}c=f[h>>2]|0;Vk[f[(f[c>>2]|0)+72>>2]&1023](c,1049);return 1}function rX(a){a=a|0;return a+24|0}function sX(a){a=a|0;Ni()}function tX(a){a=a|0;var c=0;f[a>>2]=102928;c=a+24|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);V4(a);return}function uX(a){a=a|0;var c=0;f[a>>2]=102928;c=a+24|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);V4(a);NDb(a);return}function vX(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=f[a+48>>2]|0;a=f[a+52>>2]|0;e=b+(a>>1)|0;if(!(a&1))b=d;else b=f[(f[e>>2]|0)+d>>2]|0;a=f[c>>2]|0;if(!a){c=0;Vk[b&1023](e,c);return 1}c=bFb(a,58336,57384,-1)|0;Vk[b&1023](e,c);return 1}function wX(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=f[a+40>>2]|0;e=f[a+44>>2]|0;a=b+(e>>1)|0;if(e&1)d=f[(f[a>>2]|0)+d>>2]|0;d=sk[d&2047](a)|0;if(!d){e=0;f[c>>2]=e;return 1}e=d+(f[(f[d>>2]|0)+-12>>2]|0)|0;f[c>>2]=e;return 1}function xX(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0;k=u;u=u+16|0;g=k;e=k+4|0;b[e>>0]=0;j=c+112|0;i=f[j>>2]|0;if(sk[f[(f[i>>2]|0)+12>>2]&2047](i)|0){j=f[j>>2]|0;Vk[f[(f[j>>2]|0)+16>>2]&1023](j,e);gX(c);if(!(b[e>>0]|0)){u=k;return 1}_Pa(g,c,0);e=f[g>>2]|0;do if(e){h=bFb(e,58336,57384,-1)|0;if(h){e=h+(f[(f[h>>2]|0)+-12>>2]|0)+8|0;f[e>>2]=(f[e>>2]|0)+1;e=f[g>>2]|0;if(!e){i=h;break}else g=h}else{g=0;h=0}c=e+8|0;j=f[c>>2]|0;f[c>>2]=j-1;if((j|0)==1){X4(e,1,1);i=g}else i=g}else{i=0;h=0}while(0);e=f[a+48>>2]|0;a=f[a+52>>2]|0;g=d+(a>>1)|0;if(a&1)e=f[(f[g>>2]|0)+e>>2]|0;Vk[e&1023](g,i);if(!i){u=k;return 1}e=h+(f[(f[i>>2]|0)+-12>>2]|0)|0;a=e+8|0;d=f[a>>2]|0;f[a>>2]=d-1;if((d|0)!=1){u=k;return 1}X4(e,1,1);u=k;return 1}i=f[j>>2]|0;if(!(wk[f[(f[i>>2]|0)+96>>2]&1023](i,a+24|0)|0)){u=k;return 1}i=f[j>>2]|0;Vk[f[(f[i>>2]|0)+16>>2]&1023](i,e);gX(c);if(!(b[e>>0]|0)){u=k;return 1}e=f[j>>2]|0;Vk[f[(f[e>>2]|0)+84>>2]&1023](e,c+24|0);gX(c);_Pa(g,c,0);e=f[g>>2]|0;do if(e){h=bFb(e,58336,57384,-1)|0;if(h){e=h+(f[(f[h>>2]|0)+-12>>2]|0)+8|0;f[e>>2]=(f[e>>2]|0)+1;e=f[g>>2]|0;if(!e){i=h;break}else g=h}else{g=0;h=0}l=e+8|0;i=f[l>>2]|0;f[l>>2]=i-1;if((i|0)==1){X4(e,1,1);i=g}else i=g}else{i=0;h=0}while(0);e=f[a+48>>2]|0;l=f[a+52>>2]|0;g=d+(l>>1)|0;if(l&1)e=f[(f[g>>2]|0)+e>>2]|0;Vk[e&1023](g,i);l=f[j>>2]|0;Vk[f[(f[l>>2]|0)+84>>2]&1023](l,c+40|0);gX(c);if(!i){u=k;return 1}e=h+(f[(f[i>>2]|0)+-12>>2]|0)|0;d=e+8|0;l=f[d>>2]|0;f[d>>2]=l-1;if((l|0)!=1){u=k;return 1}X4(e,1,1);u=k;return 1}function yX(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;e=f[a+40>>2]|0;i=f[a+44>>2]|0;d=d+(i>>1)|0;if(i&1)e=f[(f[d>>2]|0)+e>>2]|0;d=sk[e&2047](d)|0;g=(d|0)!=0;h=c+292|0;i=f[h>>2]|0;if(sk[f[(f[i>>2]|0)+12>>2]&2047](i)|0){a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+16>>2]&1023](a,g);if(!g)return 1;nPa(c,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);return 1}if((f[a+36>>2]|0)==(d|0))return 1;i=c+4|0;e=a+24|0;if((b[e+11>>0]|0)<0)e=f[e>>2]|0;eEb(i,e)|0;a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+84>>2]&1023](a,i);a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+16>>2]&1023](a,g);if(g){a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+88>>2]&1023](a,c+24|0);a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+72>>2]&1023](a,1049);nPa(c,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+88>>2]&1023](a,c+40|0)}c=f[h>>2]|0;Vk[f[(f[c>>2]|0)+72>>2]&1023](c,1049);return 1}function zX(a){a=a|0;return a+24|0}function AX(a){a=a|0;Ni()}function BX(a){a=a|0;var c=0;f[a>>2]=102972;c=a+24|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);V4(a);return}function CX(a){a=a|0;var c=0;f[a>>2]=102972;c=a+24|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);V4(a);NDb(a);return}function DX(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0;i=u;u=u+16|0;h=i;g=c+112|0;e=f[g>>2]|0;if(sk[f[(f[e>>2]|0)+12>>2]&2047](e)|0){e=f[g>>2]|0;Vk[f[(f[e>>2]|0)+16>>2]&1023](e,h);gX(c);c=f[a+48>>2]|0;a=f[a+52>>2]|0;e=d+(a>>1)|0;if(a&1)c=f[(f[e>>2]|0)+c>>2]|0;Vk[c&1023](e,(b[h>>0]|0)!=0);u=i;return 1}e=f[g>>2]|0;if(!(wk[f[(f[e>>2]|0)+96>>2]&1023](e,a+24|0)|0)){u=i;return 1}e=a+56|0;if(b[e>>0]|0){j=f[g>>2]|0;Vk[f[(f[j>>2]|0)+72>>2]&1023](j,1050);gX(c)}j=f[g>>2]|0;Vk[f[(f[j>>2]|0)+16>>2]&1023](j,h);gX(c);if(b[e>>0]|0){j=f[g>>2]|0;Vk[f[(f[j>>2]|0)+72>>2]&1023](j,1051);gX(c)}c=f[a+48>>2]|0;j=f[a+52>>2]|0;e=d+(j>>1)|0;if(j&1)c=f[(f[e>>2]|0)+c>>2]|0;Vk[c&1023](e,(b[h>>0]|0)!=0);u=i;return 1}function EX(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0;e=f[a+40>>2]|0;i=f[a+44>>2]|0;d=d+(i>>1)|0;if(i&1)e=f[(f[d>>2]|0)+e>>2]|0;g=sk[e&2047](d)|0;i=c+292|0;d=f[i>>2]|0;if(sk[f[(f[d>>2]|0)+12>>2]&2047](d)|0){a=f[i>>2]|0;Vk[f[(f[a>>2]|0)+16>>2]&1023](a,g);return 1}if((h[a+36>>0]|0)==(g&1|0))return 1;d=c+4|0;e=a+24|0;if((b[e+11>>0]|0)<0)e=f[e>>2]|0;eEb(d,e)|0;e=f[i>>2]|0;Vk[f[(f[e>>2]|0)+84>>2]&1023](e,d);e=a+56|0;if(b[e>>0]|0){a=f[i>>2]|0;Vk[f[(f[a>>2]|0)+76>>2]&1023](a,1050);a=f[i>>2]|0;Vk[f[(f[a>>2]|0)+76>>2]&1023](a,1052)}a=f[i>>2]|0;Vk[f[(f[a>>2]|0)+16>>2]&1023](a,g);if(b[e>>0]|0){a=f[i>>2]|0;Vk[f[(f[a>>2]|0)+76>>2]&1023](a,1051);a=f[i>>2]|0;Vk[f[(f[a>>2]|0)+76>>2]&1023](a,1053)}a=f[i>>2]|0;Vk[f[(f[a>>2]|0)+72>>2]&1023](a,1049);return 1}function FX(a){a=a|0;return a+24|0}function GX(a){a=a|0;Ni()}function HX(a){a=a|0;var c=0;f[a>>2]=103016;c=a+24|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);V4(a);return}function IX(a){a=a|0;var c=0;f[a>>2]=103016;c=a+24|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);V4(a);NDb(a);return}function JX(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=f[a+48>>2]|0;a=f[a+52>>2]|0;e=b+(a>>1)|0;if(!(a&1))b=d;else b=f[(f[e>>2]|0)+d>>2]|0;a=f[c>>2]|0;if(!a){c=0;Vk[b&1023](e,c);return 1}c=bFb(a,58336,63240,0)|0;Vk[b&1023](e,c);return 1}function KX(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=f[a+40>>2]|0;e=f[a+44>>2]|0;a=b+(e>>1)|0;if(e&1)d=f[(f[a>>2]|0)+d>>2]|0;e=sk[d&2047](a)|0;f[c>>2]=e;return 1}function LX(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0;j=u;u=u+16|0;g=j;e=j+4|0;b[e>>0]=0;i=c+112|0;h=f[i>>2]|0;if(sk[f[(f[h>>2]|0)+12>>2]&2047](h)|0){i=f[i>>2]|0;Vk[f[(f[i>>2]|0)+16>>2]&1023](i,e);gX(c);if(!(b[e>>0]|0)){u=j;return 1}_Pa(g,c,0);e=f[g>>2]|0;do if(e){h=bFb(e,58336,63240,0)|0;if(h){e=h+8|0;f[e>>2]=(f[e>>2]|0)+1;e=f[g>>2]|0;if(!e)break}else h=0;c=e+8|0;i=f[c>>2]|0;f[c>>2]=i-1;if((i|0)==1)X4(e,1,1)}else h=0;while(0);e=f[a+48>>2]|0;a=f[a+52>>2]|0;g=d+(a>>1)|0;if(a&1)e=f[(f[g>>2]|0)+e>>2]|0;Vk[e&1023](g,h);if(!h){u=j;return 1}a=h+8|0;d=f[a>>2]|0;f[a>>2]=d-1;if((d|0)!=1){u=j;return 1}X4(h,1,1);u=j;return 1}h=f[i>>2]|0;if(!(wk[f[(f[h>>2]|0)+96>>2]&1023](h,a+24|0)|0)){u=j;return 1}h=f[i>>2]|0;Vk[f[(f[h>>2]|0)+16>>2]&1023](h,e);gX(c);if(!(b[e>>0]|0)){u=j;return 1}e=f[i>>2]|0;Vk[f[(f[e>>2]|0)+84>>2]&1023](e,c+24|0);gX(c);_Pa(g,c,0);e=f[g>>2]|0;do if(e){h=bFb(e,58336,63240,0)|0;if(h){e=h+8|0;f[e>>2]=(f[e>>2]|0)+1;e=f[g>>2]|0;if(!e)break}else h=0;k=e+8|0;g=f[k>>2]|0;f[k>>2]=g-1;if((g|0)==1)X4(e,1,1)}else h=0;while(0);e=f[a+48>>2]|0;k=f[a+52>>2]|0;g=d+(k>>1)|0;if(k&1)e=f[(f[g>>2]|0)+e>>2]|0;Vk[e&1023](g,h);k=f[i>>2]|0;Vk[f[(f[k>>2]|0)+84>>2]&1023](k,c+40|0);gX(c);if(!h){u=j;return 1}d=h+8|0;k=f[d>>2]|0;f[d>>2]=k-1;if((k|0)!=1){u=j;return 1}X4(h,1,1);u=j;return 1}function MX(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;e=f[a+40>>2]|0;i=f[a+44>>2]|0;d=d+(i>>1)|0;if(i&1)e=f[(f[d>>2]|0)+e>>2]|0;d=sk[e&2047](d)|0;g=(d|0)!=0;h=c+292|0;i=f[h>>2]|0;if(sk[f[(f[i>>2]|0)+12>>2]&2047](i)|0){a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+16>>2]&1023](a,g);if(!g)return 1;nPa(c,d);return 1}if((f[a+36>>2]|0)==(d|0))return 1;i=c+4|0;e=a+24|0;if((b[e+11>>0]|0)<0)e=f[e>>2]|0;eEb(i,e)|0;a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+84>>2]&1023](a,i);a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+16>>2]&1023](a,g);if(g){a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+88>>2]&1023](a,c+24|0);a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+72>>2]&1023](a,1049);nPa(c,d);a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+88>>2]&1023](a,c+40|0)}c=f[h>>2]|0;Vk[f[(f[c>>2]|0)+72>>2]&1023](c,1049);return 1}function NX(a){a=a|0;return a+24|0}function OX(a){a=a|0;Ni()}function PX(a){a=a|0;var c=0;f[a>>2]=103060;c=a+24|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);V4(a);return}function QX(a){a=a|0;var c=0;f[a>>2]=103060;c=a+24|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);V4(a);NDb(a);return}function RX(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=f[a+48>>2]|0;a=f[a+52>>2]|0;e=b+(a>>1)|0;if(!(a&1))b=d;else b=f[(f[e>>2]|0)+d>>2]|0;a=f[c>>2]|0;if(!a){c=0;Vk[b&1023](e,c);return 1}c=bFb(a,58336,62560,0)|0;Vk[b&1023](e,c);return 1}function SX(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=f[a+40>>2]|0;e=f[a+44>>2]|0;a=b+(e>>1)|0;if(e&1)d=f[(f[a>>2]|0)+d>>2]|0;e=sk[d&2047](a)|0;f[c>>2]=e;return 1}function TX(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0;j=u;u=u+16|0;g=j;e=j+4|0;b[e>>0]=0;i=c+112|0;h=f[i>>2]|0;if(sk[f[(f[h>>2]|0)+12>>2]&2047](h)|0){i=f[i>>2]|0;Vk[f[(f[i>>2]|0)+16>>2]&1023](i,e);gX(c);if(!(b[e>>0]|0)){u=j;return 1}_Pa(g,c,0);e=f[g>>2]|0;do if(e){h=bFb(e,58336,62560,0)|0;if(h){e=h+8|0;f[e>>2]=(f[e>>2]|0)+1;e=f[g>>2]|0;if(!e)break}else h=0;c=e+8|0;i=f[c>>2]|0;f[c>>2]=i-1;if((i|0)==1)X4(e,1,1)}else h=0;while(0);e=f[a+48>>2]|0;a=f[a+52>>2]|0;g=d+(a>>1)|0;if(a&1)e=f[(f[g>>2]|0)+e>>2]|0;Vk[e&1023](g,h);if(!h){u=j;return 1}a=h+8|0;d=f[a>>2]|0;f[a>>2]=d-1;if((d|0)!=1){u=j;return 1}X4(h,1,1);u=j;return 1}h=f[i>>2]|0;if(!(wk[f[(f[h>>2]|0)+96>>2]&1023](h,a+24|0)|0)){u=j;return 1}h=f[i>>2]|0;Vk[f[(f[h>>2]|0)+16>>2]&1023](h,e);gX(c);if(!(b[e>>0]|0)){u=j;return 1}e=f[i>>2]|0;Vk[f[(f[e>>2]|0)+84>>2]&1023](e,c+24|0);gX(c);_Pa(g,c,0);e=f[g>>2]|0;do if(e){h=bFb(e,58336,62560,0)|0;if(h){e=h+8|0;f[e>>2]=(f[e>>2]|0)+1;e=f[g>>2]|0;if(!e)break}else h=0;k=e+8|0;g=f[k>>2]|0;f[k>>2]=g-1;if((g|0)==1)X4(e,1,1)}else h=0;while(0);e=f[a+48>>2]|0;k=f[a+52>>2]|0;g=d+(k>>1)|0;if(k&1)e=f[(f[g>>2]|0)+e>>2]|0;Vk[e&1023](g,h);k=f[i>>2]|0;Vk[f[(f[k>>2]|0)+84>>2]&1023](k,c+40|0);gX(c);if(!h){u=j;return 1}d=h+8|0;k=f[d>>2]|0;f[d>>2]=k-1;if((k|0)!=1){u=j;return 1}X4(h,1,1);u=j;return 1}function UX(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;e=f[a+40>>2]|0;i=f[a+44>>2]|0;d=d+(i>>1)|0;if(i&1)e=f[(f[d>>2]|0)+e>>2]|0;d=sk[e&2047](d)|0;g=(d|0)!=0;h=c+292|0;i=f[h>>2]|0;if(sk[f[(f[i>>2]|0)+12>>2]&2047](i)|0){a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+16>>2]&1023](a,g);if(!g)return 1;nPa(c,d);return 1}if((f[a+36>>2]|0)==(d|0))return 1;i=c+4|0;e=a+24|0;if((b[e+11>>0]|0)<0)e=f[e>>2]|0;eEb(i,e)|0;a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+84>>2]&1023](a,i);a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+16>>2]&1023](a,g);if(g){a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+88>>2]&1023](a,c+24|0);a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+72>>2]&1023](a,1049);nPa(c,d);a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+88>>2]&1023](a,c+40|0)}c=f[h>>2]|0;Vk[f[(f[c>>2]|0)+72>>2]&1023](c,1049);return 1}function VX(a){a=a|0;return a+24|0}function WX(a){a=a|0;Ni()}function XX(a){a=a|0;var c=0;f[a>>2]=103104;c=a+24|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);V4(a);return}function YX(a){a=a|0;var c=0;f[a>>2]=103104;c=a+24|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);V4(a);NDb(a);return}function ZX(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;h=u;u=u+16|0;e=h;g=c+112|0;i=f[g>>2]|0;if(sk[f[(f[i>>2]|0)+12>>2]&2047](i)|0){b[e>>0]=0;i=f[g>>2]|0;Vk[f[(f[i>>2]|0)+16>>2]&1023](i,e);gX(c);if(!(b[e>>0]|0)){i=1;u=h;return i|0}}else{i=f[g>>2]|0;if(!(wk[f[(f[i>>2]|0)+96>>2]&1023](i,a+24|0)|0)){i=1;u=h;return i|0}}i=wk[f[a+40>>2]&1023](c,d)|0;u=h;return i|0}function _X(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0;e=sk[f[a+36>>2]&2047](d)|0;h=c+292|0;g=f[h>>2]|0;if(sk[f[(f[g>>2]|0)+12>>2]&2047](g)|0){h=f[h>>2]|0;Vk[f[(f[h>>2]|0)+16>>2]&1023](h,e);if(!e){h=1;return h|0}}else{if(!e){h=1;return h|0}g=c+4|0;e=a+24|0;if((b[e+11>>0]|0)<0)e=f[e>>2]|0;eEb(g,e)|0;h=f[h>>2]|0;Vk[f[(f[h>>2]|0)+84>>2]&1023](h,g)}h=wk[f[a+44>>2]&1023](c,d)|0;return h|0}function $X(a){a=a|0;return a+24|0}function aY(a){a=a|0;var c=0;f[a>>2]=103148;c=a+24|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);V4(a);return}function bY(a){a=a|0;var c=0;f[a>>2]=103148;c=a+24|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);V4(a);NDb(a);return}function cY(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=f[a+48>>2]|0;a=f[a+52>>2]|0;e=b+(a>>1)|0;if(!(a&1))b=d;else b=f[(f[e>>2]|0)+d>>2]|0;a=f[c>>2]|0;if(!a){c=0;Vk[b&1023](e,c);return 1}c=bFb(a,58336,63464,0)|0;Vk[b&1023](e,c);return 1}function dY(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=f[a+40>>2]|0;e=f[a+44>>2]|0;a=b+(e>>1)|0;if(e&1)d=f[(f[a>>2]|0)+d>>2]|0;e=sk[d&2047](a)|0;f[c>>2]=e;return 1}function eY(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0;j=u;u=u+16|0;g=j;e=j+4|0;b[e>>0]=0;i=c+112|0;h=f[i>>2]|0;if(sk[f[(f[h>>2]|0)+12>>2]&2047](h)|0){i=f[i>>2]|0;Vk[f[(f[i>>2]|0)+16>>2]&1023](i,e);gX(c);if(!(b[e>>0]|0)){u=j;return 1}_Pa(g,c,0);e=f[g>>2]|0;do if(e){h=bFb(e,58336,63464,0)|0;if(h){e=h+8|0;f[e>>2]=(f[e>>2]|0)+1;e=f[g>>2]|0;if(!e)break}else h=0;c=e+8|0;i=f[c>>2]|0;f[c>>2]=i-1;if((i|0)==1)X4(e,1,1)}else h=0;while(0);e=f[a+48>>2]|0;a=f[a+52>>2]|0;g=d+(a>>1)|0;if(a&1)e=f[(f[g>>2]|0)+e>>2]|0;Vk[e&1023](g,h);if(!h){u=j;return 1}a=h+8|0;d=f[a>>2]|0;f[a>>2]=d-1;if((d|0)!=1){u=j;return 1}X4(h,1,1);u=j;return 1}h=f[i>>2]|0;if(!(wk[f[(f[h>>2]|0)+96>>2]&1023](h,a+24|0)|0)){u=j;return 1}h=f[i>>2]|0;Vk[f[(f[h>>2]|0)+16>>2]&1023](h,e);gX(c);if(!(b[e>>0]|0)){u=j;return 1}e=f[i>>2]|0;Vk[f[(f[e>>2]|0)+84>>2]&1023](e,c+24|0);gX(c);_Pa(g,c,0);e=f[g>>2]|0;do if(e){h=bFb(e,58336,63464,0)|0;if(h){e=h+8|0;f[e>>2]=(f[e>>2]|0)+1;e=f[g>>2]|0;if(!e)break}else h=0;k=e+8|0;g=f[k>>2]|0;f[k>>2]=g-1;if((g|0)==1)X4(e,1,1)}else h=0;while(0);e=f[a+48>>2]|0;k=f[a+52>>2]|0;g=d+(k>>1)|0;if(k&1)e=f[(f[g>>2]|0)+e>>2]|0;Vk[e&1023](g,h);k=f[i>>2]|0;Vk[f[(f[k>>2]|0)+84>>2]&1023](k,c+40|0);gX(c);if(!h){u=j;return 1}d=h+8|0;k=f[d>>2]|0;f[d>>2]=k-1;if((k|0)!=1){u=j;return 1}X4(h,1,1);u=j;return 1}function fY(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;e=f[a+40>>2]|0;i=f[a+44>>2]|0;d=d+(i>>1)|0;if(i&1)e=f[(f[d>>2]|0)+e>>2]|0;d=sk[e&2047](d)|0;g=(d|0)!=0;h=c+292|0;i=f[h>>2]|0;if(sk[f[(f[i>>2]|0)+12>>2]&2047](i)|0){a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+16>>2]&1023](a,g);if(!g)return 1;nPa(c,d);return 1}if((f[a+36>>2]|0)==(d|0))return 1;i=c+4|0;e=a+24|0;if((b[e+11>>0]|0)<0)e=f[e>>2]|0;eEb(i,e)|0;a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+84>>2]&1023](a,i);a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+16>>2]&1023](a,g);if(g){a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+88>>2]&1023](a,c+24|0);a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+72>>2]&1023](a,1049);nPa(c,d);a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+88>>2]&1023](a,c+40|0)}c=f[h>>2]|0;Vk[f[(f[c>>2]|0)+72>>2]&1023](c,1049);return 1}function gY(a){a=a|0;return a+24|0}function hY(a){a=a|0;Ni()}function iY(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;i=u;u=u+32|0;e=i+12|0;g=i;CCa(a,1);c=a+12|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[a+24>>2]=2;f[a+28>>2]=0;f[a+36>>2]=0;f[a+40>>2]=0;f[a+32>>2]=a+36;f[a+48>>2]=0;f[a+52>>2]=0;f[a+44>>2]=a+48;f[a+60>>2]=0;f[a+64>>2]=0;f[a+56>>2]=a+60;f[a>>2]=103192;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;c=e+11|0;b[c>>0]=4;f[e>>2]=845640559;b[e+4>>0]=0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;d=LDb(48)|0;f[g>>2]=d;f[g+8>>2]=-2147483600;f[g+4>>2]=32;h=d;j=191568;k=h+32|0;do{b[h>>0]=b[j>>0]|0;h=h+1|0;j=j+1|0}while((h|0)<(k|0));b[d+32>>0]=0;KYa(a,e,g);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);if((b[c>>0]|0)<0)NDb(f[e>>2]|0);f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;c=e+11|0;b[c>>0]=4;f[e>>2]=1952936815;b[e+4>>0]=0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;d=LDb(48)|0;f[g>>2]=d;f[g+8>>2]=-2147483600;f[g+4>>2]=38;h=d;j=191601;k=h+38|0;do{b[h>>0]=b[j>>0]|0;h=h+1|0;j=j+1|0}while((h|0)<(k|0));b[d+38>>0]=0;KYa(a,e,g);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);if((b[c>>0]|0)<0)NDb(f[e>>2]|0);f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;c=e+11|0;b[c>>0]=4;f[e>>2]=1650946927;b[e+4>>0]=0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;d=LDb(48)|0;f[g>>2]=d;f[g+8>>2]=-2147483600;f[g+4>>2]=39;h=d;j=191640;k=h+39|0;do{b[h>>0]=b[j>>0]|0;h=h+1|0;j=j+1|0}while((h|0)<(k|0));b[d+39>>0]=0;KYa(a,e,g);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);if((b[c>>0]|0)<0)NDb(f[e>>2]|0);f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;c=e+11|0;b[c>>0]=4;f[e>>2]=2020045679;b[e+4>>0]=0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;d=LDb(48)|0;f[g>>2]=d;f[g+8>>2]=-2147483600;f[g+4>>2]=36;h=d;j=191680;k=h+36|0;do{b[h>>0]=b[j>>0]|0;h=h+1|0;j=j+1|0}while((h|0)<(k|0));b[d+36>>0]=0;KYa(a,e,g);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);if((b[c>>0]|0)<0)NDb(f[e>>2]|0);f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;c=e+11|0;b[c>>0]=5;b[e>>0]=b[191717]|0;b[e+1>>0]=b[191718]|0;b[e+2>>0]=b[191719]|0;b[e+3>>0]=b[191720]|0;b[e+4>>0]=b[191721]|0;b[e+5>>0]=0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;d=LDb(64)|0;f[g>>2]=d;f[g+8>>2]=-2147483584;f[g+4>>2]=54;h=d;j=191723;k=h+54|0;do{b[h>>0]=b[j>>0]|0;h=h+1|0;j=j+1|0}while((h|0)<(k|0));b[d+54>>0]=0;LYa(a,e,g);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);if((b[c>>0]|0)<0)NDb(f[e>>2]|0);c=e+4|0;f[c>>2]=0;f[c+4>>2]=0;c=e+11|0;b[c>>0]=3;b[e>>0]=b[191778]|0;b[e+1>>0]=b[191779]|0;b[e+2>>0]=b[191780]|0;b[e+3>>0]=0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;d=LDb(64)|0;f[g>>2]=d;f[g+8>>2]=-2147483584;f[g+4>>2]=52;h=d;j=191782;k=h+52|0;do{b[h>>0]=b[j>>0]|0;h=h+1|0;j=j+1|0}while((h|0)<(k|0));b[d+52>>0]=0;LYa(a,e,g);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);if((b[c>>0]|0)<0)NDb(f[e>>2]|0);f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;c=LDb(32)|0;f[e>>2]=c;f[e+8>>2]=-2147483616;f[e+4>>2]=17;h=c;j=236402;k=h+17|0;do{b[h>>0]=b[j>>0]|0;h=h+1|0;j=j+1|0}while((h|0)<(k|0));b[c+17>>0]=0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;c=LDb(80)|0;f[g>>2]=c;f[g+8>>2]=-2147483568;f[g+4>>2]=66;h=c;j=191835;k=h+66|0;do{b[h>>0]=b[j>>0]|0;h=h+1|0;j=j+1|0}while((h|0)<(k|0));b[c+66>>0]=0;LYa(a,e,g);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);if((b[e+11>>0]|0)<0)NDb(f[e>>2]|0);c=e+11|0;b[c>>0]=10;h=e;j=237015;k=h+10|0;do{b[h>>0]=b[j>>0]|0;h=h+1|0;j=j+1|0}while((h|0)<(k|0));b[e+10>>0]=0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;d=LDb(64)|0;f[g>>2]=d;f[g+8>>2]=-2147483584;f[g+4>>2]=60;h=d;j=191902;k=h+60|0;do{b[h>>0]=b[j>>0]|0;h=h+1|0;j=j+1|0}while((h|0)<(k|0));b[d+60>>0]=0;LYa(a,e,g);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);if((b[c>>0]|0)<0)NDb(f[e>>2]|0);f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;c=LDb(32)|0;f[e>>2]=c;f[e+8>>2]=-2147483616;f[e+4>>2]=17;h=c;j=191963;k=h+17|0;do{b[h>>0]=b[j>>0]|0;h=h+1|0;j=j+1|0}while((h|0)<(k|0));b[c+17>>0]=0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;c=LDb(64)|0;f[g>>2]=c;f[g+8>>2]=-2147483584;f[g+4>>2]=53;h=c;j=191981;k=h+53|0;do{b[h>>0]=b[j>>0]|0;h=h+1|0;j=j+1|0}while((h|0)<(k|0));b[c+53>>0]=0;LYa(a,e,g);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);if((b[e+11>>0]|0)<0)NDb(f[e>>2]|0);f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;c=LDb(32)|0;f[e>>2]=c;f[e+8>>2]=-2147483616;f[e+4>>2]=17;h=c;j=192035;k=h+17|0;do{b[h>>0]=b[j>>0]|0;h=h+1|0;j=j+1|0}while((h|0)<(k|0));b[c+17>>0]=0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;c=LDb(64)|0;f[g>>2]=c;f[g+8>>2]=-2147483584;f[g+4>>2]=56;h=c;j=192053;k=h+56|0;do{b[h>>0]=b[j>>0]|0;h=h+1|0;j=j+1|0}while((h|0)<(k|0));b[c+56>>0]=0;LYa(a,e,g);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);if((b[e+11>>0]|0)<0)NDb(f[e>>2]|0);f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;c=LDb(32)|0;f[e>>2]=c;f[e+8>>2]=-2147483616;f[e+4>>2]=21;h=c;j=192110;k=h+21|0;do{b[h>>0]=b[j>>0]|0;h=h+1|0;j=j+1|0}while((h|0)<(k|0));b[c+21>>0]=0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;k=LDb(256)|0;f[g>>2]=k;f[g+8>>2]=-2147483392;f[g+4>>2]=244;gGb(k|0,192132,244)|0;b[k+244>>0]=0;LYa(a,e,g);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);if((b[e+11>>0]|0)>=0){u=i;return}NDb(f[e>>2]|0);u=i;return}function jY(a){a=a|0;EGa(a);NDb(a);return}function kY(a){a=a|0;return 193117}function lY(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0;l=u;u=u+224|0;i=l+204|0;j=l+192|0;g=l+188|0;h=l;f[i>>2]=4;k=i+4|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;f[k+12>>2]=0;VDb(j,d);f[g>>2]=8;e=Z$(c,i,j,g,e)|0;d=f[i>>2]|0;if((d|1|0)!=5){f[a>>2]=d;VDb(a+4|0,k);d=f[i+16>>2]|0;f[a+16>>2]=d;if(d|0){a=d+8|0;f[a>>2]=(f[a>>2]|0)+1}}else{OXa(h,(b[j+11>>0]|0)<0?f[j>>2]|0:j,f[g>>2]|0);al[f[(f[c>>2]|0)+248>>2]&255](a,c,h,e);ELa(h)}if((b[j+11>>0]|0)<0)NDb(f[j>>2]|0);d=i+16|0;e=f[d>>2]|0;if(e|0?(i=e+8|0,j=f[i>>2]|0,f[i>>2]=j-1,(j|0)==1):0)X4(e,1,1);f[d>>2]=0;if((b[k+11>>0]|0)>=0){u=l;return}NDb(f[k>>2]|0);u=l;return}function mY(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0;l=u;u=u+224|0;i=l+204|0;j=l+192|0;g=l+188|0;h=l;f[i>>2]=4;k=i+4|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;f[k+12>>2]=0;VDb(j,d);f[g>>2]=8;e=Z$(c,i,j,g,e)|0;d=f[i>>2]|0;if((d|1|0)!=5){f[a>>2]=d;VDb(a+4|0,k);d=f[i+16>>2]|0;f[a+16>>2]=d;if(d|0){a=d+8|0;f[a>>2]=(f[a>>2]|0)+1}}else{OXa(h,(b[j+11>>0]|0)<0?f[j>>2]|0:j,f[g>>2]|0);al[f[(f[c>>2]|0)+252>>2]&255](a,c,h,e);ELa(h)}if((b[j+11>>0]|0)<0)NDb(f[j>>2]|0);d=i+16|0;e=f[d>>2]|0;if(e|0?(i=e+8|0,j=f[i>>2]|0,f[i>>2]=j-1,(j|0)==1):0)X4(e,1,1);f[d>>2]=0;if((b[k+11>>0]|0)>=0){u=l;return}NDb(f[k>>2]|0);u=l;return}function nY(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0;l=u;u=u+224|0;i=l+204|0;j=l+192|0;g=l+188|0;h=l;f[i>>2]=4;k=i+4|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;f[k+12>>2]=0;VDb(j,d);f[g>>2]=8;e=Z$(c,i,j,g,e)|0;d=f[i>>2]|0;if((d|1|0)!=5){f[a>>2]=d;VDb(a+4|0,k);d=f[i+16>>2]|0;f[a+16>>2]=d;if(d|0){a=d+8|0;f[a>>2]=(f[a>>2]|0)+1}}else{OXa(h,(b[j+11>>0]|0)<0?f[j>>2]|0:j,f[g>>2]|0);al[f[(f[c>>2]|0)+260>>2]&255](a,c,h,e);ELa(h)}if((b[j+11>>0]|0)<0)NDb(f[j>>2]|0);d=i+16|0;e=f[d>>2]|0;if(e|0?(i=e+8|0,j=f[i>>2]|0,f[i>>2]=j-1,(j|0)==1):0)X4(e,1,1);f[d>>2]=0;if((b[k+11>>0]|0)>=0){u=l;return}NDb(f[k>>2]|0);u=l;return}function oY(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=u;u=u+224|0;m=p+208|0;h=p+200|0;n=p+16|0;i=p;f[m>>2]=3;o=m+4|0;f[o>>2]=0;f[o+4>>2]=0;f[o+8>>2]=0;f[h>>2]=16;j=T$(c,m,e,h,g)|0;k=(j|0)==0;if(!k){g=j+8|0;f[g>>2]=(f[g>>2]|0)+1}g=f[m>>2]|0;if((g|0)==3){QXa(n,(b[e+11>>0]|0)<0?f[e>>2]|0:e,f[h>>2]|0);if(!(f[n+(f[(f[n>>2]|0)+-12>>2]|0)+16>>2]&5)){cl[f[(f[c>>2]|0)+272>>2]&63](i,c,d,n,j);f[m>>2]=f[i>>2];g=i+4|0;$Db(o,g)|0;if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);g=n+4|0;c=n+68|0;d=f[c>>2]|0;if(!(((d|0)!=0?(l=sk[f[(f[g>>2]|0)+24>>2]&2047](g)|0,(Srb(d)|0)==0):0)?(f[c>>2]=0,!(l|0)):0)){l=n+(f[(f[n>>2]|0)+-12>>2]|0)|0;Htb(l,f[l+16>>2]|4)}f[a>>2]=f[m>>2];VDb(a+4|0,o)}else{f[a>>2]=2;m=a+4|0;f[m>>2]=0;f[m+4>>2]=0;f[m+8>>2]=0}ILa(n)}else{f[a>>2]=g;VDb(a+4|0,o)}if(!k?(m=j+8|0,n=f[m>>2]|0,f[m>>2]=n-1,(n|0)==1):0)X4(j,1,1);if((b[o+11>>0]|0)>=0){u=p;return}NDb(f[o>>2]|0);u=p;return}function pY(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=u;u=u+224|0;m=p+208|0;h=p+200|0;n=p+16|0;i=p;f[m>>2]=3;o=m+4|0;f[o>>2]=0;f[o+4>>2]=0;f[o+8>>2]=0;f[h>>2]=16;j=T$(c,m,e,h,g)|0;k=(j|0)==0;if(!k){g=j+8|0;f[g>>2]=(f[g>>2]|0)+1}g=f[m>>2]|0;if((g|0)==3){QXa(n,(b[e+11>>0]|0)<0?f[e>>2]|0:e,f[h>>2]|0);if(!(f[n+(f[(f[n>>2]|0)+-12>>2]|0)+16>>2]&5)){cl[f[(f[c>>2]|0)+276>>2]&63](i,c,d,n,j);f[m>>2]=f[i>>2];g=i+4|0;$Db(o,g)|0;if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);g=n+4|0;c=n+68|0;d=f[c>>2]|0;if(!(((d|0)!=0?(l=sk[f[(f[g>>2]|0)+24>>2]&2047](g)|0,(Srb(d)|0)==0):0)?(f[c>>2]=0,!(l|0)):0)){l=n+(f[(f[n>>2]|0)+-12>>2]|0)|0;Htb(l,f[l+16>>2]|4)}f[a>>2]=f[m>>2];VDb(a+4|0,o)}else{f[a>>2]=2;m=a+4|0;f[m>>2]=0;f[m+4>>2]=0;f[m+8>>2]=0}ILa(n)}else{f[a>>2]=g;VDb(a+4|0,o)}if(!k?(m=j+8|0,n=f[m>>2]|0,f[m>>2]=n-1,(n|0)==1):0)X4(j,1,1);if((b[o+11>>0]|0)>=0){u=p;return}NDb(f[o>>2]|0);u=p;return}function qY(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=u;u=u+224|0;m=p+208|0;h=p+200|0;n=p+16|0;i=p;f[m>>2]=3;o=m+4|0;f[o>>2]=0;f[o+4>>2]=0;f[o+8>>2]=0;f[h>>2]=16;j=T$(c,m,e,h,g)|0;k=(j|0)==0;if(!k){g=j+8|0;f[g>>2]=(f[g>>2]|0)+1}g=f[m>>2]|0;if((g|0)==3){QXa(n,(b[e+11>>0]|0)<0?f[e>>2]|0:e,f[h>>2]|0);if(!(f[n+(f[(f[n>>2]|0)+-12>>2]|0)+16>>2]&5)){cl[f[(f[c>>2]|0)+284>>2]&63](i,c,d,n,j);f[m>>2]=f[i>>2];g=i+4|0;$Db(o,g)|0;if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);g=n+4|0;c=n+68|0;d=f[c>>2]|0;if(!(((d|0)!=0?(l=sk[f[(f[g>>2]|0)+24>>2]&2047](g)|0,(Srb(d)|0)==0):0)?(f[c>>2]=0,!(l|0)):0)){l=n+(f[(f[n>>2]|0)+-12>>2]|0)|0;Htb(l,f[l+16>>2]|4)}f[a>>2]=f[m>>2];VDb(a+4|0,o)}else{f[a>>2]=2;m=a+4|0;f[m>>2]=0;f[m+4>>2]=0;f[m+8>>2]=0}ILa(n)}else{f[a>>2]=g;VDb(a+4|0,o)}if(!k?(m=j+8|0,n=f[m>>2]|0,f[m>>2]=n-1,(n|0)==1):0)X4(j,1,1);if((b[o+11>>0]|0)>=0){u=p;return}NDb(f[o>>2]|0);u=p;return}function rY(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=u;u=u+176|0;l=m+36|0;c=m+24|0;h=m+12|0;g=m;k=r_(d,e)|0;if(!k){f[a>>2]=1;l=a+4|0;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;f[l+12>>2]=0;u=m;return}j=k+8|0;f[j>>2]=(f[j>>2]|0)+1;YXa(l,e);do if(!(kYa(l,k)|0)){d=l+116|0;e=f[d>>2]|0;if(!e){f[a>>2]=1;i=a+4|0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;break}yY(h,e+24|0,192377);g=f[d>>2]|0;d=g+12|0;i=b[d+11>>0]|0;e=i<<24>>24<0;i=iEb(h,e?f[d>>2]|0:d,e?f[g+16>>2]|0:i&255)|0;f[c>>2]=f[i>>2];f[c+4>>2]=f[i+4>>2];f[c+8>>2]=f[i+8>>2];f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[a>>2]=3;VDb(a+4|0,c);f[a+16>>2]=0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0)}else{lYa(l);e=l+116|0;d=f[e>>2]|0;if(d|0){yY(h,d+24|0,192377);g=f[e>>2]|0;d=g+12|0;i=b[d+11>>0]|0;e=i<<24>>24<0;i=iEb(h,e?f[d>>2]|0:d,e?f[g+16>>2]|0:i&255)|0;f[c>>2]=f[i>>2];f[c+4>>2]=f[i+4>>2];f[c+8>>2]=f[i+8>>2];f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[a>>2]=3;VDb(a+4|0,c);f[a+16>>2]=0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);break}_Pa(c,l,0);d=f[e>>2]|0;if(!d){f[a>>2]=4;d=a+4|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;d=f[c>>2]|0;f[a+16>>2]=d;if(d){d=d+8|0;f[d>>2]=(f[d>>2]|0)+1;d=c;i=25}}else{yY(g,d+24|0,192377);e=f[e>>2]|0;n=e+12|0;i=b[n+11>>0]|0;d=i<<24>>24<0;i=iEb(g,d?f[n>>2]|0:n,d?f[e+16>>2]|0:i&255)|0;f[h>>2]=f[i>>2];f[h+4>>2]=f[i+4>>2];f[h+8>>2]=f[i+8>>2];f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[a>>2]=3;VDb(a+4|0,h);f[a+16>>2]=0;if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);d=c;i=25}if((i|0)==25){c=f[d>>2]|0;if((c|0)!=0?(i=c+8|0,n=f[i>>2]|0,f[i>>2]=n-1,(n|0)==1):0){X4(c,1,1);c=d}else c=d}f[c>>2]=0}while(0);uMa(l);n=f[j>>2]|0;f[j>>2]=n-1;if((n|0)!=1){u=m;return}X4(k,1,1);u=m;return}function sY(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=u;u=u+176|0;l=m+36|0;c=m+24|0;h=m+12|0;g=m;k=r_(d,e)|0;if(!k){f[a>>2]=1;l=a+4|0;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;f[l+12>>2]=0;u=m;return}j=k+8|0;f[j>>2]=(f[j>>2]|0)+1;YXa(l,e);do if((kYa(l,k)|0)!=2){d=l+116|0;e=f[d>>2]|0;if(!e){f[a>>2]=1;i=a+4|0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;break}yY(h,e+24|0,192377);g=f[d>>2]|0;d=g+12|0;i=b[d+11>>0]|0;e=i<<24>>24<0;i=iEb(h,e?f[d>>2]|0:d,e?f[g+16>>2]|0:i&255)|0;f[c>>2]=f[i>>2];f[c+4>>2]=f[i+4>>2];f[c+8>>2]=f[i+8>>2];f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[a>>2]=3;VDb(a+4|0,c);f[a+16>>2]=0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0)}else{lYa(l);e=l+116|0;d=f[e>>2]|0;if(d|0){yY(h,d+24|0,192377);g=f[e>>2]|0;d=g+12|0;i=b[d+11>>0]|0;e=i<<24>>24<0;i=iEb(h,e?f[d>>2]|0:d,e?f[g+16>>2]|0:i&255)|0;f[c>>2]=f[i>>2];f[c+4>>2]=f[i+4>>2];f[c+8>>2]=f[i+8>>2];f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[a>>2]=3;VDb(a+4|0,c);f[a+16>>2]=0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);break}jYa(c,l,1);d=f[e>>2]|0;if(!d){f[a>>2]=4;d=a+4|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;d=f[c>>2]|0;f[a+16>>2]=d;if(d){d=d+8|0;f[d>>2]=(f[d>>2]|0)+1;d=c;i=25}}else{yY(g,d+24|0,192377);e=f[e>>2]|0;n=e+12|0;i=b[n+11>>0]|0;d=i<<24>>24<0;i=iEb(g,d?f[n>>2]|0:n,d?f[e+16>>2]|0:i&255)|0;f[h>>2]=f[i>>2];f[h+4>>2]=f[i+4>>2];f[h+8>>2]=f[i+8>>2];f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[a>>2]=3;VDb(a+4|0,h);f[a+16>>2]=0;if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);d=c;i=25}if((i|0)==25){c=f[d>>2]|0;if((c|0)!=0?(i=c+8|0,n=f[i>>2]|0,f[i>>2]=n-1,(n|0)==1):0){X4(c,1,1);c=d}else c=d}f[c>>2]=0}while(0);uMa(l);n=f[j>>2]|0;f[j>>2]=n-1;if((n|0)!=1){u=m;return}X4(k,1,1);u=m;return}
|
||
function uJa(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|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=u;u=u+48|0;n=r+24|0;q=r+12|0;p=r;Zk[f[(f[c>>2]|0)+16>>2]&511](q,c,e);o=q+11|0;i=b[o>>0]|0;j=i<<24>>24<0;l=q+4|0;k=j?f[l>>2]|0:i&255;if(!k){f[a>>2]=1;p=a+4|0;f[p>>2]=0;f[p+4>>2]=0;f[p+8>>2]=0}else{j=j?f[q>>2]|0:q;i=j+k|0;while(1){i=i+-1|0;if(epb(222487,h[i>>0]|0,2)|0){k=5;break}if((i|0)==(j|0)){k=6;break}}if((k|0)==5){i=i-j|0;if((i|0)==-1)k=6;else ZDb(p,q,0,i,n)}if((k|0)==6){f[p>>2]=0;f[p+4>>2]=0;f[p+8>>2]=0}if(!(T4a(p)|0)?!(S4a(p)|0):0){if(S0(3)|0){g=Nv(Mv(3)|0,228710,34)|0;e=b[p+11>>0]|0;c=e<<24>>24<0;e=Nv(g,c?f[p>>2]|0:p,c?f[p+4>>2]|0:e&255)|0;Ktb(n,e+(f[(f[e>>2]|0)+-12>>2]|0)|0);c=Bvb(n,295164)|0;c=wk[f[(f[c>>2]|0)+28>>2]&1023](c,10)|0;Cvb(n);rub(e,c)|0;Rtb(e)|0}f[a>>2]=2;a=a+4|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0}else{if(S0(4)|0){i=Nv(Mv(4)|0,229268,30)|0;s=b[e+11>>0]|0;j=s<<24>>24<0;s=Nv(Nv(i,j?f[e>>2]|0:e,j?f[e+4>>2]|0:s&255)|0,228776,5)|0;j=b[o>>0]|0;i=j<<24>>24<0;l=Nv(s,i?f[q>>2]|0:q,i?f[l>>2]|0:j&255)|0;Ktb(n,l+(f[(f[l>>2]|0)+-12>>2]|0)|0);j=Bvb(n,295164)|0;j=wk[f[(f[j>>2]|0)+28>>2]&1023](j,10)|0;Cvb(n);rub(l,j)|0;Rtb(l)|0}j=aHa(0)|0;if((g|0)!=0?(m=f[g+120>>2]|0,(m|0)!=0):0)cl[f[f[m>>2]>>2]&63](n,m,d,q,g);else k=18;do if((k|0)==18){i=f[j+52>>2]|0;if(!i){FJa(n,j,d,q,g);break}else{cl[f[f[i>>2]>>2]&63](n,i,d,q,g);break}}while(0);i=f[n>>2]|0;if((i|0)==3){CJa(c,e)|0;i=f[n>>2]|0}f[a>>2]=i;i=n+4|0;VDb(a+4|0,i);if((b[i+11>>0]|0)<0)NDb(f[i>>2]|0)}if((b[p+11>>0]|0)<0)NDb(f[p>>2]|0);i=b[o>>0]|0}if(i<<24>>24>=0){u=r;return}NDb(f[q>>2]|0);u=r;return}function vJa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;l=u;u=u+16|0;g=l+12|0;j=l;Zk[f[(f[c>>2]|0)+16>>2]&511](j,c,d);i=j+11|0;m=b[i>>0]|0;c=j+4|0;do if(((m<<24>>24<0?f[c>>2]|0:m&255)|0)!=0?T4a(j)|0:0){if(S0(4)|0){o=Nv(Mv(4)|0,229189,36)|0;n=b[d+11>>0]|0;m=n<<24>>24<0;n=Nv(Nv(o,m?f[d>>2]|0:d,m?f[d+4>>2]|0:n&255)|0,228776,5)|0;m=b[i>>0]|0;d=m<<24>>24<0;m=Nv(n,d?f[j>>2]|0:j,d?f[c>>2]|0:m&255)|0;Ktb(g,m+(f[(f[m>>2]|0)+-12>>2]|0)|0);d=Bvb(g,295164)|0;d=wk[f[(f[d>>2]|0)+28>>2]&1023](d,10)|0;Cvb(g);rub(m,d)|0;Rtb(m)|0}d=aHa(0)|0;if(e|0?(h=f[e+116>>2]|0,h|0):0){al[f[(f[h>>2]|0)+12>>2]&255](a,h,j,e);break}c=f[d+48>>2]|0;if(!c){WJa(a,d,j,e);break}else{al[f[(f[c>>2]|0)+12>>2]&255](a,c,j,e);break}}else k=11;while(0);if((k|0)==11){f[a>>2]=4;o=a+4|0;f[o>>2]=0;f[o+4>>2]=0;f[o+8>>2]=0;f[o+12>>2]=0}if((b[i>>0]|0)>=0){u=l;return}NDb(f[j>>2]|0);u=l;return}function wJa(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|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=u;u=u+48|0;n=r+24|0;q=r+12|0;p=r;Zk[f[(f[c>>2]|0)+16>>2]&511](q,c,e);o=q+11|0;i=b[o>>0]|0;j=i<<24>>24<0;l=q+4|0;k=j?f[l>>2]|0:i&255;if(!k){f[a>>2]=1;p=a+4|0;f[p>>2]=0;f[p+4>>2]=0;f[p+8>>2]=0}else{j=j?f[q>>2]|0:q;i=j+k|0;while(1){i=i+-1|0;if(epb(222487,h[i>>0]|0,2)|0){k=5;break}if((i|0)==(j|0)){k=6;break}}if((k|0)==5){i=i-j|0;if((i|0)==-1)k=6;else ZDb(p,q,0,i,n)}if((k|0)==6){f[p>>2]=0;f[p+4>>2]=0;f[p+8>>2]=0}if(!(T4a(p)|0)?!(S4a(p)|0):0){if(S0(3)|0){g=Nv(Mv(3)|0,228710,34)|0;e=b[p+11>>0]|0;c=e<<24>>24<0;e=Nv(g,c?f[p>>2]|0:p,c?f[p+4>>2]|0:e&255)|0;Ktb(n,e+(f[(f[e>>2]|0)+-12>>2]|0)|0);c=Bvb(n,295164)|0;c=wk[f[(f[c>>2]|0)+28>>2]&1023](c,10)|0;Cvb(n);rub(e,c)|0;Rtb(e)|0}f[a>>2]=2;a=a+4|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0}else{if(S0(4)|0){i=Nv(Mv(4)|0,229100,35)|0;s=b[e+11>>0]|0;j=s<<24>>24<0;s=Nv(Nv(i,j?f[e>>2]|0:e,j?f[e+4>>2]|0:s&255)|0,228776,5)|0;j=b[o>>0]|0;i=j<<24>>24<0;l=Nv(s,i?f[q>>2]|0:q,i?f[l>>2]|0:j&255)|0;Ktb(n,l+(f[(f[l>>2]|0)+-12>>2]|0)|0);j=Bvb(n,295164)|0;j=wk[f[(f[j>>2]|0)+28>>2]&1023](j,10)|0;Cvb(n);rub(l,j)|0;Rtb(l)|0}j=aHa(0)|0;if((g|0)!=0?(m=f[g+120>>2]|0,(m|0)!=0):0)cl[f[(f[m>>2]|0)+8>>2]&63](n,m,d,q,g);else k=18;do if((k|0)==18){i=f[j+52>>2]|0;if(!i){VJa(n,j,d,q,g);break}else{cl[f[(f[i>>2]|0)+8>>2]&63](n,i,d,q,g);break}}while(0);i=f[n>>2]|0;if((i|0)==3){CJa(c,e)|0;i=f[n>>2]|0}f[a>>2]=i;i=n+4|0;VDb(a+4|0,i);if((b[i+11>>0]|0)<0)NDb(f[i>>2]|0)}if((b[p+11>>0]|0)<0)NDb(f[p>>2]|0);i=b[o>>0]|0}if(i<<24>>24>=0){u=r;return}NDb(f[q>>2]|0);u=r;return}function xJa(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;k=u;u=u+16|0;i=k+12|0;j=k;Zk[f[(f[c>>2]|0)+16>>2]&511](j,c,d);c=j+11|0;l=b[c>>0]|0;h=j+4|0;if(((l<<24>>24<0?f[h>>2]|0:l&255)|0)!=0?T4a(j)|0:0){if(S0(4)|0){n=Nv(Mv(4)|0,229070,29)|0;m=b[d+11>>0]|0;l=m<<24>>24<0;m=Nv(Nv(n,l?f[d>>2]|0:d,l?f[d+4>>2]|0:m&255)|0,228776,5)|0;l=b[c>>0]|0;d=l<<24>>24<0;l=Nv(m,d?f[j>>2]|0:j,d?f[h>>2]|0:l&255)|0;Ktb(i,l+(f[(f[l>>2]|0)+-12>>2]|0)|0);d=Bvb(i,295164)|0;d=wk[f[(f[d>>2]|0)+28>>2]&1023](d,10)|0;Cvb(i);rub(l,d)|0;Rtb(l)|0}eHa(a,aHa(0)|0,j,e,g)}else{f[a>>2]=4;n=a+4|0;f[n>>2]=0;f[n+4>>2]=0;f[n+8>>2]=0;f[n+12>>2]=0}if((b[c>>0]|0)>=0){u=k;return}NDb(f[j>>2]|0);u=k;return}function yJa(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|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=u;u=u+48|0;n=r+24|0;q=r+12|0;p=r;Zk[f[(f[c>>2]|0)+16>>2]&511](q,c,e);o=q+11|0;i=b[o>>0]|0;j=i<<24>>24<0;l=q+4|0;k=j?f[l>>2]|0:i&255;if(!k){f[a>>2]=1;p=a+4|0;f[p>>2]=0;f[p+4>>2]=0;f[p+8>>2]=0}else{j=j?f[q>>2]|0:q;i=j+k|0;while(1){i=i+-1|0;if(epb(222487,h[i>>0]|0,2)|0){k=5;break}if((i|0)==(j|0)){k=6;break}}if((k|0)==5){i=i-j|0;if((i|0)==-1)k=6;else ZDb(p,q,0,i,n)}if((k|0)==6){f[p>>2]=0;f[p+4>>2]=0;f[p+8>>2]=0}if(!(T4a(p)|0)?!(S4a(p)|0):0){if(S0(3)|0){g=Nv(Mv(3)|0,228710,34)|0;e=b[p+11>>0]|0;c=e<<24>>24<0;e=Nv(g,c?f[p>>2]|0:p,c?f[p+4>>2]|0:e&255)|0;Ktb(n,e+(f[(f[e>>2]|0)+-12>>2]|0)|0);c=Bvb(n,295164)|0;c=wk[f[(f[c>>2]|0)+28>>2]&1023](c,10)|0;Cvb(n);rub(e,c)|0;Rtb(e)|0}f[a>>2]=2;a=a+4|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0}else{if(S0(4)|0){i=Nv(Mv(4)|0,228994,28)|0;s=b[e+11>>0]|0;j=s<<24>>24<0;s=Nv(Nv(i,j?f[e>>2]|0:e,j?f[e+4>>2]|0:s&255)|0,228776,5)|0;j=b[o>>0]|0;i=j<<24>>24<0;l=Nv(s,i?f[q>>2]|0:q,i?f[l>>2]|0:j&255)|0;Ktb(n,l+(f[(f[l>>2]|0)+-12>>2]|0)|0);j=Bvb(n,295164)|0;j=wk[f[(f[j>>2]|0)+28>>2]&1023](j,10)|0;Cvb(n);rub(l,j)|0;Rtb(l)|0}j=aHa(0)|0;if((g|0)!=0?(m=f[g+120>>2]|0,(m|0)!=0):0)cl[f[(f[m>>2]|0)+12>>2]&63](n,m,d,q,g);else k=18;do if((k|0)==18){i=f[j+52>>2]|0;if(!i){UJa(n,j,d,q,g);break}else{cl[f[(f[i>>2]|0)+12>>2]&63](n,i,d,q,g);break}}while(0);i=f[n>>2]|0;if((i|0)==3){CJa(c,e)|0;i=f[n>>2]|0}f[a>>2]=i;i=n+4|0;VDb(a+4|0,i);if((b[i+11>>0]|0)<0)NDb(f[i>>2]|0)}if((b[p+11>>0]|0)<0)NDb(f[p>>2]|0);i=b[o>>0]|0}if(i<<24>>24>=0){u=r;return}NDb(f[q>>2]|0);u=r;return}function zJa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;l=u;u=u+16|0;g=l+12|0;j=l;Zk[f[(f[c>>2]|0)+16>>2]&511](j,c,d);i=j+11|0;m=b[i>>0]|0;c=j+4|0;do if(((m<<24>>24<0?f[c>>2]|0:m&255)|0)!=0?T4a(j)|0:0){if(S0(4)|0){o=Nv(Mv(4)|0,228925,31)|0;n=b[d+11>>0]|0;m=n<<24>>24<0;n=Nv(Nv(o,m?f[d>>2]|0:d,m?f[d+4>>2]|0:n&255)|0,228776,5)|0;m=b[i>>0]|0;d=m<<24>>24<0;m=Nv(n,d?f[j>>2]|0:j,d?f[c>>2]|0:m&255)|0;Ktb(g,m+(f[(f[m>>2]|0)+-12>>2]|0)|0);d=Bvb(g,295164)|0;d=wk[f[(f[d>>2]|0)+28>>2]&1023](d,10)|0;Cvb(g);rub(m,d)|0;Rtb(m)|0}d=aHa(0)|0;if(e|0?(h=f[e+116>>2]|0,h|0):0){al[f[(f[h>>2]|0)+20>>2]&255](a,h,j,e);break}c=f[d+48>>2]|0;if(!c){OJa(a,d,j,e);break}else{al[f[(f[c>>2]|0)+20>>2]&255](a,c,j,e);break}}else k=11;while(0);if((k|0)==11){f[a>>2]=4;o=a+4|0;f[o>>2]=0;f[o+4>>2]=0;f[o+8>>2]=0;f[o+12>>2]=0}if((b[i>>0]|0)>=0){u=l;return}NDb(f[j>>2]|0);u=l;return}function AJa(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|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=u;u=u+48|0;n=r+24|0;q=r+12|0;p=r;Zk[f[(f[c>>2]|0)+16>>2]&511](q,c,e);o=q+11|0;i=b[o>>0]|0;j=i<<24>>24<0;l=q+4|0;k=j?f[l>>2]|0:i&255;if(!k){f[a>>2]=1;p=a+4|0;f[p>>2]=0;f[p+4>>2]=0;f[p+8>>2]=0}else{j=j?f[q>>2]|0:q;i=j+k|0;while(1){i=i+-1|0;if(epb(222487,h[i>>0]|0,2)|0){k=5;break}if((i|0)==(j|0)){k=6;break}}if((k|0)==5){i=i-j|0;if((i|0)==-1)k=6;else ZDb(p,q,0,i,n)}if((k|0)==6){f[p>>2]=0;f[p+4>>2]=0;f[p+8>>2]=0}if(!(T4a(p)|0)?!(S4a(p)|0):0){if(S0(3)|0){g=Nv(Mv(3)|0,228710,34)|0;e=b[p+11>>0]|0;c=e<<24>>24<0;e=Nv(g,c?f[p>>2]|0:p,c?f[p+4>>2]|0:e&255)|0;Ktb(n,e+(f[(f[e>>2]|0)+-12>>2]|0)|0);c=Bvb(n,295164)|0;c=wk[f[(f[c>>2]|0)+28>>2]&1023](c,10)|0;Cvb(n);rub(e,c)|0;Rtb(e)|0}f[a>>2]=2;a=a+4|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0}else{if(S0(4)|0){i=Nv(Mv(4)|0,228745,30)|0;s=b[e+11>>0]|0;j=s<<24>>24<0;s=Nv(Nv(i,j?f[e>>2]|0:e,j?f[e+4>>2]|0:s&255)|0,228776,5)|0;j=b[o>>0]|0;i=j<<24>>24<0;l=Nv(s,i?f[q>>2]|0:q,i?f[l>>2]|0:j&255)|0;Ktb(n,l+(f[(f[l>>2]|0)+-12>>2]|0)|0);j=Bvb(n,295164)|0;j=wk[f[(f[j>>2]|0)+28>>2]&1023](j,10)|0;Cvb(n);rub(l,j)|0;Rtb(l)|0}j=aHa(0)|0;if((g|0)!=0?(m=f[g+120>>2]|0,(m|0)!=0):0)cl[f[(f[m>>2]|0)+16>>2]&63](n,m,d,q,g);else k=18;do if((k|0)==18){i=f[j+52>>2]|0;if(!i){BJa(n,j,d,q,g);break}else{cl[f[(f[i>>2]|0)+16>>2]&63](n,i,d,q,g);break}}while(0);i=f[n>>2]|0;if((i|0)==3){CJa(c,e)|0;i=f[n>>2]|0}f[a>>2]=i;i=n+4|0;VDb(a+4|0,i);if((b[i+11>>0]|0)<0)NDb(f[i>>2]|0)}if((b[p+11>>0]|0)<0)NDb(f[p>>2]|0);i=b[o>>0]|0}if(i<<24>>24>=0){u=r;return}NDb(f[q>>2]|0);u=r;return}function BJa(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|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,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;B=u;u=u+80|0;w=B;z=B+60|0;x=B+40|0;y=B+28|0;s=B+16|0;f[z>>2]=0;A=z+4|0;f[A>>2]=0;o=z+8|0;f[o>>2]=0;n=c+60|0;f[x>>2]=c+72;p=x+4|0;f[p>>2]=n;f[x+12>>2]=0;f[x+16>>2]=0;t=x+12|0;f[x+8>>2]=t;v=a+4|0;q=v+11|0;while(1){sk[f[(f[n>>2]|0)+8>>2]&2047](n)|0;l=f[x>>2]|0;h=f[l>>2]|0;l=f[l+4>>2]|0;a:do if((h|0)==(l|0))h=0;else{m=f[t>>2]|0;if(!m){h=f[h>>2]|0;break}k=h;while(1){h=f[k>>2]|0;i=t;j=m;do{C=(f[j+16>>2]|0)>>>0<h>>>0;i=C?i:j;j=f[(C?j+4|0:j)>>2]|0}while((j|0)!=0);if((i|0)==(t|0))break a;k=k+4|0;if(h>>>0<(f[i+16>>2]|0)>>>0)break a;if((k|0)==(l|0)){h=0;break}}}while(0);sk[f[(f[n>>2]|0)+12>>2]&2047](n)|0;if(!h){r=28;break}n=f[p>>2]|0;sk[f[(f[n>>2]|0)+8>>2]&2047](n)|0;l=f[x>>2]|0;h=f[l>>2]|0;l=f[l+4>>2]|0;b:do if((h|0)==(l|0))h=0;else{m=f[t>>2]|0;if(!m){h=f[h>>2]|0;break}k=h;while(1){h=f[k>>2]|0;i=t;j=m;do{C=(f[j+16>>2]|0)>>>0<h>>>0;i=C?i:j;j=f[(C?j+4|0:j)>>2]|0}while((j|0)!=0);if((i|0)==(t|0))break b;k=k+4|0;if(h>>>0<(f[i+16>>2]|0)>>>0)break b;if((k|0)==(l|0)){h=0;break}}}while(0);sk[f[(f[n>>2]|0)+12>>2]&2047](n)|0;cl[f[(f[h>>2]|0)+240>>2]&63](a,h,d,e,g);h=f[a>>2]|0;if((h|0)==3)break;i=f[A>>2]|0;if((i|0)==(f[o>>2]|0))HJa(z,a);else{f[i>>2]=h;VDb(i+4|0,v);f[A>>2]=(f[A>>2]|0)+16}if((b[q>>0]|0)<0)NDb(f[v>>2]|0);JHa(x);n=f[p>>2]|0}if((r|0)==28){j=f[z>>2]|0;h=f[A>>2]|0;if((h|0)!=(j|0))do{i=h+-12|0;h=h+-16|0;if((b[i+11>>0]|0)<0)NDb(f[i>>2]|0)}while((h|0)!=(j|0));f[A>>2]=j;LHa(w,e);MHa(y,c,w);if((b[w+11>>0]|0)<0)NDb(f[w>>2]|0);c:do if((NHa(c,y)|0)==2)while(1){n=f[p>>2]|0;sk[f[(f[n>>2]|0)+8>>2]&2047](n)|0;l=f[x>>2]|0;h=f[l>>2]|0;l=f[l+4>>2]|0;d:do if((h|0)==(l|0))h=0;else{m=f[t>>2]|0;if(!m){h=f[h>>2]|0;break}k=h;while(1){h=f[k>>2]|0;i=t;j=m;do{C=(f[j+16>>2]|0)>>>0<h>>>0;i=C?i:j;j=f[(C?j+4|0:j)>>2]|0}while((j|0)!=0);if((i|0)==(t|0))break d;k=k+4|0;if(h>>>0<(f[i+16>>2]|0)>>>0)break d;if((k|0)==(l|0)){h=0;break}}}while(0);sk[f[(f[n>>2]|0)+12>>2]&2047](n)|0;if(!h){r=63;break c}n=f[p>>2]|0;sk[f[(f[n>>2]|0)+8>>2]&2047](n)|0;l=f[x>>2]|0;h=f[l>>2]|0;l=f[l+4>>2]|0;e:do if((h|0)==(l|0))h=0;else{m=f[t>>2]|0;if(!m){h=f[h>>2]|0;break}k=h;while(1){h=f[k>>2]|0;i=t;j=m;do{C=(f[j+16>>2]|0)>>>0<h>>>0;i=C?i:j;j=f[(C?j+4|0:j)>>2]|0}while((j|0)!=0);if((i|0)==(t|0))break e;k=k+4|0;if(h>>>0<(f[i+16>>2]|0)>>>0)break e;if((k|0)==(l|0)){h=0;break}}}while(0);sk[f[(f[n>>2]|0)+12>>2]&2047](n)|0;cl[f[(f[h>>2]|0)+240>>2]&63](a,h,d,e,g);h=f[a>>2]|0;if((h|0)==3)break c;i=f[A>>2]|0;if((i|0)==(f[o>>2]|0))HJa(z,a);else{f[i>>2]=h;VDb(i+4|0,v);f[A>>2]=(f[A>>2]|0)+16}if((b[q>>0]|0)<0)NDb(f[v>>2]|0);JHa(x)}else r=63;while(0);do if((r|0)==63){h=f[z>>2]|0;i=f[A>>2]|0;if((h|0)!=(i|0)){IJa(h,i,w);C=f[A>>2]|0;f[w>>2]=f[C+-16>>2];h=w+4|0;VDb(h,C+-12|0);f[a>>2]=f[w>>2];VDb(v,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);break}JEb(s,228877,e);C=jEb(s,222229)|0;f[w>>2]=f[C>>2];f[w+4>>2]=f[C+4>>2];f[w+8>>2]=f[C+8>>2];f[C>>2]=0;f[C+4>>2]=0;f[C+8>>2]=0;f[a>>2]=2;VDb(v,w);if((b[w+11>>0]|0)<0)NDb(f[w>>2]|0);if((b[s+11>>0]|0)<0)NDb(f[s>>2]|0)}while(0);if((b[y+11>>0]|0)<0)NDb(f[y>>2]|0)}SHa(x+8|0,f[t>>2]|0);j=f[z>>2]|0;if(!j){u=B;return}h=f[A>>2]|0;if((h|0)==(j|0))h=j;else{do{i=h+-12|0;h=h+-16|0;if((b[i+11>>0]|0)<0)NDb(f[i>>2]|0)}while((h|0)!=(j|0));h=f[z>>2]|0}f[A>>2]=j;NDb(h);u=B;return}function CJa(a,c){a=a|0;c=c|0;var d=0,e=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,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=u;u=u+48|0;w=B+24|0;x=B+12|0;y=B;d=f[a+28>>2]|0;z=a+24|0;e=d;if((z|0)==(e|0)){u=B;return 0}A=c+11|0;n=c+4|0;o=w+11|0;p=x+11|0;q=x+4|0;r=x+11|0;s=x+4|0;t=x+11|0;v=x+4|0;do{m=f[d+8>>2]|0;i=m+32|0;j=i+11|0;d=b[j>>0]|0;k=d<<24>>24<0;if(k)g=f[m+36>>2]|0;else g=d&255;l=b[A>>0]|0;if(g>>>0<(l<<24>>24<0?f[n>>2]|0:l&255)>>>0){if(k){l=m+36|0;h=f[l>>2]|0;d=d&255;g=h}else{h=d&255;g=m+36|0;d=h;l=g;g=f[g>>2]|0}if(!(uEb(c,0,h,k?f[i>>2]|0:i,k?g:d)|0)){d=b[j>>0]|0;g=d<<24>>24<0;if(g)h=f[l>>2]|0;else h=d&255;if(!h)d=0;else{if(g)d=f[l>>2]|0;else d=d&255;d=d+1|0}ZDb(w,c,d,-1,x);d=f[m+44>>2]|0;j=m+48|0;if((d|0)!=(f[j>>2]|0)){i=d;do{h=f[i>>2]|0;g=h+44|0;d=f[g>>2]|0;if(d|0?DJa(d,w)|0:0){VDb(x,(f[g>>2]|0)+12|0);if(OHa(x)|0){Zk[f[(f[a>>2]|0)+16>>2]&511](y,a,x);if((b[p>>0]|0)<0){b[f[x>>2]>>0]=0;f[q>>2]=0}else{b[x>>0]=0;b[p>>0]=0}dEb(x,0);f[x>>2]=f[y>>2];f[x+4>>2]=f[y+4>>2];f[x+8>>2]=f[y+8>>2]}d=b[p>>0]|0;if((d<<24>>24<0?f[q>>2]|0:d&255)|0){m=f[g>>2]|0;d=(aHa(0)|0)+160|0;EJa(m,x,f[d>>2]|0)|0;d=b[p>>0]|0}if(d<<24>>24<0)NDb(f[x>>2]|0)}g=h+48|0;d=f[g>>2]|0;if(d|0?DJa(d,w)|0:0){VDb(x,(f[g>>2]|0)+12|0);if(OHa(x)|0){Zk[f[(f[a>>2]|0)+16>>2]&511](y,a,x);if((b[r>>0]|0)<0){b[f[x>>2]>>0]=0;f[s>>2]=0}else{b[x>>0]=0;b[r>>0]=0}dEb(x,0);f[x>>2]=f[y>>2];f[x+4>>2]=f[y+4>>2];f[x+8>>2]=f[y+8>>2]}d=b[r>>0]|0;if((d<<24>>24<0?f[s>>2]|0:d&255)|0){m=f[g>>2]|0;d=(aHa(0)|0)+160|0;EJa(m,x,f[d>>2]|0)|0;d=b[r>>0]|0}if(d<<24>>24<0)NDb(f[x>>2]|0)}g=h+52|0;d=f[g>>2]|0;if(d|0?DJa(d,w)|0:0){VDb(x,(f[g>>2]|0)+12|0);if(OHa(x)|0){Zk[f[(f[a>>2]|0)+16>>2]&511](y,a,x);if((b[t>>0]|0)<0){b[f[x>>2]>>0]=0;f[v>>2]=0}else{b[x>>0]=0;b[t>>0]=0}dEb(x,0);f[x>>2]=f[y>>2];f[x+4>>2]=f[y+4>>2];f[x+8>>2]=f[y+8>>2]}d=b[t>>0]|0;if((d<<24>>24<0?f[v>>2]|0:d&255)|0){m=f[g>>2]|0;d=(aHa(0)|0)+160|0;EJa(m,x,f[d>>2]|0)|0;d=b[t>>0]|0}if(d<<24>>24<0)NDb(f[x>>2]|0)}i=i+4|0}while((i|0)!=(f[j>>2]|0))}if((b[o>>0]|0)<0)NDb(f[w>>2]|0)}}d=f[e+4>>2]|0;e=d}while((z|0)!=(e|0));u=B;return 0}function DJa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0;e=a+32|0;g=My(e,c)|0;if((g|0)==(a+36|0)){g=0;return g|0}c=f[g+4>>2]|0;if(!c){d=g+8|0;c=f[d>>2]|0;if((f[c>>2]|0)!=(g|0))do{h=f[d>>2]|0;d=h+8|0;c=f[d>>2]|0}while((f[c>>2]|0)!=(h|0))}else while(1){d=f[c>>2]|0;if(!d)break;else c=d}if((f[e>>2]|0)==(g|0))f[e>>2]=c;c=a+40|0;f[c>>2]=(f[c>>2]|0)+-1;nB(f[a+36>>2]|0,g);c=g+16|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);NDb(g);h=1;return h|0}function EJa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0;l=u;u=u+48|0;h=l+32|0;k=l+16|0;i=l;j=aHa(0)|0;if((d|0)!=0?(e=f[d+120>>2]|0,(e|0)!=0):0)cl[f[f[e>>2]>>2]&63](k,e,a,c,d);else g=4;do if((g|0)==4){e=f[j+52>>2]|0;if(!e){FJa(k,j,a,c,d);break}else{cl[f[f[e>>2]>>2]&63](k,e,a,c,d);break}}while(0);if(((f[k>>2]|0)!=3?S0(2)|0:0)?(d=Nv(Mv(2)|0,228782,19)|0,a=b[c+11>>0]|0,j=a<<24>>24<0,a=Nv(Nv(d,j?f[c>>2]|0:c,j?f[c+4>>2]|0:a&255)|0,228802,2)|0,GJa(i,k),j=i+11|0,d=b[j>>0]|0,c=d<<24>>24<0,d=Nv(a,c?f[i>>2]|0:i,c?f[i+4>>2]|0:d&255)|0,Ktb(h,d+(f[(f[d>>2]|0)+-12>>2]|0)|0),c=Bvb(h,295164)|0,c=wk[f[(f[c>>2]|0)+28>>2]&1023](c,10)|0,Cvb(h),rub(d,c)|0,Rtb(d)|0,(b[j>>0]|0)<0):0)NDb(f[i>>2]|0);g=(f[k>>2]|0)==3;e=k+4|0;if((b[e+11>>0]|0)>=0){u=l;return g|0}NDb(f[e>>2]|0);u=l;return g|0}function FJa(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|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,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;B=u;u=u+80|0;w=B;z=B+60|0;x=B+40|0;y=B+28|0;s=B+16|0;f[z>>2]=0;A=z+4|0;f[A>>2]=0;o=z+8|0;f[o>>2]=0;n=c+60|0;f[x>>2]=c+72;p=x+4|0;f[p>>2]=n;f[x+12>>2]=0;f[x+16>>2]=0;t=x+12|0;f[x+8>>2]=t;v=a+4|0;q=v+11|0;while(1){sk[f[(f[n>>2]|0)+8>>2]&2047](n)|0;l=f[x>>2]|0;h=f[l>>2]|0;l=f[l+4>>2]|0;a:do if((h|0)==(l|0))h=0;else{m=f[t>>2]|0;if(!m){h=f[h>>2]|0;break}k=h;while(1){h=f[k>>2]|0;i=t;j=m;do{C=(f[j+16>>2]|0)>>>0<h>>>0;i=C?i:j;j=f[(C?j+4|0:j)>>2]|0}while((j|0)!=0);if((i|0)==(t|0))break a;k=k+4|0;if(h>>>0<(f[i+16>>2]|0)>>>0)break a;if((k|0)==(l|0)){h=0;break}}}while(0);sk[f[(f[n>>2]|0)+12>>2]&2047](n)|0;if(!h){r=28;break}n=f[p>>2]|0;sk[f[(f[n>>2]|0)+8>>2]&2047](n)|0;l=f[x>>2]|0;h=f[l>>2]|0;l=f[l+4>>2]|0;b:do if((h|0)==(l|0))h=0;else{m=f[t>>2]|0;if(!m){h=f[h>>2]|0;break}k=h;while(1){h=f[k>>2]|0;i=t;j=m;do{C=(f[j+16>>2]|0)>>>0<h>>>0;i=C?i:j;j=f[(C?j+4|0:j)>>2]|0}while((j|0)!=0);if((i|0)==(t|0))break b;k=k+4|0;if(h>>>0<(f[i+16>>2]|0)>>>0)break b;if((k|0)==(l|0)){h=0;break}}}while(0);sk[f[(f[n>>2]|0)+12>>2]&2047](n)|0;cl[f[(f[h>>2]|0)+224>>2]&63](a,h,d,e,g);h=f[a>>2]|0;if((h|0)==3)break;i=f[A>>2]|0;if((i|0)==(f[o>>2]|0))HJa(z,a);else{f[i>>2]=h;VDb(i+4|0,v);f[A>>2]=(f[A>>2]|0)+16}if((b[q>>0]|0)<0)NDb(f[v>>2]|0);JHa(x);n=f[p>>2]|0}if((r|0)==28){LHa(w,e);MHa(y,c,w);if((b[w+11>>0]|0)<0)NDb(f[w>>2]|0);c:do if((NHa(c,y)|0)==2)while(1){n=f[p>>2]|0;sk[f[(f[n>>2]|0)+8>>2]&2047](n)|0;l=f[x>>2]|0;h=f[l>>2]|0;l=f[l+4>>2]|0;d:do if((h|0)==(l|0))h=0;else{m=f[t>>2]|0;if(!m){h=f[h>>2]|0;break}k=h;while(1){h=f[k>>2]|0;i=t;j=m;do{C=(f[j+16>>2]|0)>>>0<h>>>0;i=C?i:j;j=f[(C?j+4|0:j)>>2]|0}while((j|0)!=0);if((i|0)==(t|0))break d;k=k+4|0;if(h>>>0<(f[i+16>>2]|0)>>>0)break d;if((k|0)==(l|0)){h=0;break}}}while(0);sk[f[(f[n>>2]|0)+12>>2]&2047](n)|0;if(!h){r=58;break c}n=f[p>>2]|0;sk[f[(f[n>>2]|0)+8>>2]&2047](n)|0;l=f[x>>2]|0;h=f[l>>2]|0;l=f[l+4>>2]|0;e:do if((h|0)==(l|0))h=0;else{m=f[t>>2]|0;if(!m){h=f[h>>2]|0;break}k=h;while(1){h=f[k>>2]|0;i=t;j=m;do{C=(f[j+16>>2]|0)>>>0<h>>>0;i=C?i:j;j=f[(C?j+4|0:j)>>2]|0}while((j|0)!=0);if((i|0)==(t|0))break e;k=k+4|0;if(h>>>0<(f[i+16>>2]|0)>>>0)break e;if((k|0)==(l|0)){h=0;break}}}while(0);sk[f[(f[n>>2]|0)+12>>2]&2047](n)|0;cl[f[(f[h>>2]|0)+224>>2]&63](a,h,d,e,g);h=f[a>>2]|0;if((h|0)==3)break c;i=f[A>>2]|0;if((i|0)==(f[o>>2]|0))HJa(z,a);else{f[i>>2]=h;VDb(i+4|0,v);f[A>>2]=(f[A>>2]|0)+16}if((b[q>>0]|0)<0)NDb(f[v>>2]|0);JHa(x)}else r=58;while(0);do if((r|0)==58){h=f[z>>2]|0;i=f[A>>2]|0;if((h|0)!=(i|0)){IJa(h,i,w);C=f[A>>2]|0;f[w>>2]=f[C+-16>>2];h=w+4|0;VDb(h,C+-12|0);f[a>>2]=f[w>>2];VDb(v,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);break}JEb(s,228828,e);C=jEb(s,222229)|0;f[w>>2]=f[C>>2];f[w+4>>2]=f[C+4>>2];f[w+8>>2]=f[C+8>>2];f[C>>2]=0;f[C+4>>2]=0;f[C+8>>2]=0;f[a>>2]=2;VDb(v,w);if((b[w+11>>0]|0)<0)NDb(f[w>>2]|0);if((b[s+11>>0]|0)<0)NDb(f[s>>2]|0)}while(0);if((b[y+11>>0]|0)<0)NDb(f[y>>2]|0)}SHa(x+8|0,f[t>>2]|0);j=f[z>>2]|0;if(!j){u=B;return}h=f[A>>2]|0;if((h|0)==(j|0))h=j;else{do{i=h+-12|0;h=h+-16|0;if((b[i+11>>0]|0)<0)NDb(f[i>>2]|0)}while((h|0)!=(j|0));h=f[z>>2]|0}f[A>>2]=j;NDb(h);u=B;return}function GJa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0;i=u;u=u+32|0;e=i+12|0;g=i;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;switch(f[c>>2]|0){case 0:{jEb(a,221554)|0;break}case 1:{jEb(a,221570)|0;break}case 2:{jEb(a,228805)|0;break}case 3:{jEb(a,228817)|0;break}default:{}}h=c+4|0;d=b[h+11>>0]|0;if(d<<24>>24<0)c=f[c+8>>2]|0;else c=d&255;if(!c){u=i;return}JEb(g,221691,h);h=jEb(g,239531)|0;f[e>>2]=f[h>>2];f[e+4>>2]=f[h+4>>2];f[e+8>>2]=f[h+8>>2];f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;h=e+11|0;d=b[h>>0]|0;c=d<<24>>24<0;iEb(a,c?f[e>>2]|0:e,c?f[e+4>>2]|0:d&255)|0;if((b[h>>0]|0)<0)NDb(f[e>>2]|0);if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);u=i;return}function HJa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=a+4|0;d=f[a>>2]|0;h=(f[l>>2]|0)-d>>4;e=h+1|0;if(e>>>0>268435455)KEb(a);m=a+8|0;k=(f[m>>2]|0)-d|0;d=k>>3;d=k>>4>>>0<134217727?(d>>>0<e>>>0?e:d):268435455;do if(d)if(d>>>0>268435455){m=mb(8)|0;RDb(m,238482);f[m>>2]=144484;qb(m|0,84192,1464)}else{g=LDb(d<<4)|0;break}else g=0;while(0);i=g+(h<<4)|0;e=i;k=g+(d<<4)|0;f[i>>2]=f[c>>2];VDb(g+(h<<4)+4|0,c+4|0);j=i+16|0;h=f[a>>2]|0;d=f[l>>2]|0;if((d|0)==(h|0)){c=h;d=h}else{g=i;while(1){i=d;d=d+-16|0;f[g+-16>>2]=f[d>>2];VDb(g+-12|0,i+-12|0);g=e+-16|0;if((d|0)==(h|0))break;else e=g}e=g;c=f[a>>2]|0;d=f[l>>2]|0}f[a>>2]=e;f[l>>2]=j;f[m>>2]=k;g=c;if((d|0)!=(g|0))do{e=d+-12|0;d=d+-16|0;if((b[e+11>>0]|0)<0)NDb(f[e>>2]|0)}while((d|0)!=(g|0));if(!c)return;NDb(c);return}function IJa(a,c,d){a=a|0;c=c|0;d=d|0;var e=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,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=u;u=u+16|0;D=E;x=D+4|0;y=x+11|0;z=D+4|0;A=D+4|0;B=A+11|0;C=D+4|0;r=z+11|0;s=D+4|0;t=C+11|0;v=s+11|0;q=c;a:while(1){l=q;o=q+-16|0;m=q+-32|0;n=q;p=a;b:while(1){a=l-p|0;c=a>>4;switch(c|0){case 2:{h=4;break a}case 3:{h=12;break a}case 4:{h=13;break a}case 5:{h=14;break a}case 1:case 0:{h=82;break a}default:{}}if((a|0)<112){h=16;break a}h=p+(((c|0)/2|0)<<4)|0;if((a|0)>15984){a=(c|0)/4|0;a=LJa(p,p+(a<<4)|0,h,h+(a<<4)|0,o,d)|0}else a=JJa(p,h,o,d)|0;i=f[p>>2]|0;g=f[h>>2]|0;if((i|0)<(g|0))e=o;else{if((p|0)==(m|0)){h=24;break}c=o;e=m;while(1){if((f[e>>2]|0)<(g|0))break;c=e+-16|0;if((p|0)==(c|0)){h=24;break b}else{k=e;e=c;c=k}}f[D>>2]=i;k=p+4|0;VDb(C,k);f[p>>2]=f[e>>2];c=c+-12|0;$Db(k,c)|0;if((D|0)!=(e|0)){f[e>>2]=f[D>>2];$Db(c,C)|0}if((b[t>>0]|0)<0)NDb(f[C>>2]|0);a=a+1|0}c=p+16|0;c:do if(c>>>0<e>>>0){k=h;while(1){i=f[k>>2]|0;while(1){g=f[c>>2]|0;j=c+16|0;if((g|0)<(i|0))c=j;else break}while(1){h=e+-16|0;if((f[h>>2]|0)<(i|0))break;else e=h}if(c>>>0>h>>>0){g=k;break c}f[D>>2]=g;g=c+4|0;VDb(x,g);if((c|0)!=(h|0)){f[c>>2]=f[h>>2];$Db(g,e+-12|0)|0}if((D|0)!=(h|0)){f[h>>2]=f[D>>2];$Db(e+-12|0,x)|0}if((b[y>>0]|0)<0)NDb(f[x>>2]|0);k=(k|0)==(c|0)?h:k;e=h;c=j;a=a+1|0}}else g=h;while(0);if((c|0)!=(g|0)?(w=f[c>>2]|0,(f[g>>2]|0)<(w|0)):0){f[D>>2]=w;k=c+4|0;VDb(z,k);f[c>>2]=f[g>>2];e=g+4|0;$Db(k,e)|0;if((D|0)!=(g|0)){f[g>>2]=f[D>>2];$Db(e,z)|0}if((b[r>>0]|0)<0)NDb(f[z>>2]|0);a=a+1|0}if(!a){g=NJa(p,c,d)|0;a=c+16|0;if(NJa(a,q,d)|0){h=75;break}if(g){e=2;c=q;h=80;break}}k=c;if((k-p|0)>=(n-k|0)){h=79;break}IJa(p,c,d);p=c+16|0}d:do if((h|0)==24){a=p+16|0;if((i|0)>=(f[o>>2]|0)){if((a|0)==(o|0)){h=82;break a}while(1){c=f[a>>2]|0;if((i|0)<(c|0))break;a=a+16|0;if((a|0)==(o|0)){h=82;break a}}f[D>>2]=c;n=a+4|0;VDb(s,n);f[a>>2]=f[o>>2];c=q+-12|0;$Db(n,c)|0;if((D|0)!=(o|0)){f[o>>2]=f[D>>2];$Db(c,s)|0}if((b[v>>0]|0)<0)NDb(f[s>>2]|0);a=a+16|0}if((a|0)==(o|0)){h=82;break a}c=o;while(1){h=f[p>>2]|0;while(1){e=f[a>>2]|0;i=a+16|0;if((h|0)<(e|0))break;else a=i}while(1){g=c+-16|0;if((h|0)<(f[g>>2]|0))c=g;else break}if(a>>>0>=g>>>0){e=4;c=q;h=80;break d}f[D>>2]=e;o=a+4|0;VDb(A,o);f[a>>2]=f[g>>2];a=c+-12|0;$Db(o,a)|0;if((D|0)!=(g|0)){f[g>>2]=f[D>>2];$Db(a,A)|0}if((b[B>>0]|0)<0)NDb(f[A>>2]|0);c=g;a=i}}else if((h|0)==75){e=g?1:2;a=p;c=g?q:c;h=80}else if((h|0)==79){h=0;IJa(c+16|0,q,d);a=p}while(0);if((h|0)==80)switch(e&7){case 2:case 4:case 0:break;default:{h=82;break a}}q=c}if((h|0)==4){e=q+-16|0;a=f[p>>2]|0;if((f[e>>2]|0)>=(a|0)){u=E;return}f[D>>2]=a;a=D+4|0;c=p+4|0;VDb(a,c);if((p|0)!=(e|0)){f[p>>2]=f[e>>2];$Db(c,q+-12|0)|0}if((D|0)!=(e|0)){f[e>>2]=f[D>>2];$Db(q+-12|0,a)|0}if((b[a+11>>0]|0)<0)NDb(f[a>>2]|0);u=E;return}else if((h|0)==12){JJa(p,p+16|0,q+-16|0,d)|0;u=E;return}else if((h|0)==13){KJa(p,p+16|0,p+32|0,q+-16|0,d)|0;u=E;return}else if((h|0)==14){LJa(p,p+16|0,p+32|0,p+48|0,q+-16|0,d)|0;u=E;return}else if((h|0)==16){MJa(p,q,d);u=E;return}else if((h|0)==82){u=E;return}}function JJa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0;j=u;u=u+16|0;i=j;e=f[c>>2]|0;g=f[a>>2]|0;h=(f[d>>2]|0)<(e|0);if((e|0)>=(g|0)){if(!h){i=0;u=j;return i|0}f[i>>2]=e;e=i+4|0;h=c+4|0;VDb(e,h);if((c|0)!=(d|0)){f[c>>2]=f[d>>2];$Db(h,d+4|0)|0}if((i|0)!=(d|0)){f[d>>2]=f[i>>2];$Db(d+4|0,e)|0}if((b[e+11>>0]|0)<0)NDb(f[e>>2]|0);e=f[a>>2]|0;if((f[c>>2]|0)>=(e|0)){i=1;u=j;return i|0}f[i>>2]=e;e=i+4|0;g=a+4|0;VDb(e,g);if((a|0)!=(c|0)){f[a>>2]=f[c>>2];$Db(g,h)|0}if((i|0)!=(c|0)){f[c>>2]=f[i>>2];$Db(h,e)|0}if((b[e+11>>0]|0)<0)NDb(f[e>>2]|0);i=2;u=j;return i|0}if(h){f[i>>2]=g;e=i+4|0;g=a+4|0;VDb(e,g);if((a|0)!=(d|0)){f[a>>2]=f[d>>2];$Db(g,d+4|0)|0}if((i|0)!=(d|0)){f[d>>2]=f[i>>2];$Db(d+4|0,e)|0}if((b[e+11>>0]|0)<0)NDb(f[e>>2]|0);i=1;u=j;return i|0}f[i>>2]=g;e=i+4|0;g=a+4|0;VDb(e,g);if((a|0)!=(c|0)){f[a>>2]=f[c>>2];$Db(g,c+4|0)|0}if((i|0)!=(c|0)){f[c>>2]=f[i>>2];$Db(c+4|0,e)|0}if((b[e+11>>0]|0)<0)NDb(f[e>>2]|0);e=f[c>>2]|0;if((f[d>>2]|0)>=(e|0)){i=1;u=j;return i|0}f[i>>2]=e;e=i+4|0;g=c+4|0;VDb(e,g);if((c|0)!=(d|0)){f[c>>2]=f[d>>2];$Db(g,d+4|0)|0}if((i|0)!=(d|0)){f[d>>2]=f[i>>2];$Db(d+4|0,e)|0}if((b[e+11>>0]|0)<0)NDb(f[e>>2]|0);i=2;u=j;return i|0}function KJa(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;l=u;u=u+16|0;k=l;j=JJa(a,c,d,g)|0;g=f[d>>2]|0;if((f[e>>2]|0)>=(g|0)){k=j;u=l;return k|0}f[k>>2]=g;g=k+4|0;h=d+4|0;VDb(g,h);if((d|0)!=(e|0)){f[d>>2]=f[e>>2];$Db(h,e+4|0)|0}if((k|0)!=(e|0)){f[e>>2]=f[k>>2];$Db(e+4|0,g)|0}if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);g=f[c>>2]|0;if((f[d>>2]|0)>=(g|0)){k=j+1|0;u=l;return k|0}f[k>>2]=g;g=k+4|0;i=c+4|0;VDb(g,i);if((c|0)!=(d|0)){f[c>>2]=f[d>>2];$Db(i,h)|0}if((k|0)!=(d|0)){f[d>>2]=f[k>>2];$Db(h,g)|0}if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);g=f[a>>2]|0;if((f[c>>2]|0)>=(g|0)){k=j+2|0;u=l;return k|0}f[k>>2]=g;g=k+4|0;e=a+4|0;VDb(g,e);if((a|0)!=(c|0)){f[a>>2]=f[c>>2];$Db(e,i)|0}if((k|0)!=(c|0)){f[c>>2]=f[k>>2];$Db(i,g)|0}if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);k=j+3|0;u=l;return k|0}function LJa(a,c,d,e,g,h){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0;l=u;u=u+16|0;k=l;j=KJa(a,c,d,e,h)|0;h=f[e>>2]|0;if((f[g>>2]|0)>=(h|0)){k=j;u=l;return k|0}f[k>>2]=h;h=k+4|0;i=e+4|0;VDb(h,i);if((e|0)!=(g|0)){f[e>>2]=f[g>>2];$Db(i,g+4|0)|0}if((k|0)!=(g|0)){f[g>>2]=f[k>>2];$Db(g+4|0,h)|0}if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);h=f[d>>2]|0;if((f[e>>2]|0)>=(h|0)){k=j+1|0;u=l;return k|0}f[k>>2]=h;h=k+4|0;g=d+4|0;VDb(h,g);if((d|0)!=(e|0)){f[d>>2]=f[e>>2];$Db(g,i)|0}if((k|0)!=(e|0)){f[e>>2]=f[k>>2];$Db(i,h)|0}if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);h=f[c>>2]|0;if((f[d>>2]|0)>=(h|0)){k=j+2|0;u=l;return k|0}f[k>>2]=h;h=k+4|0;i=c+4|0;VDb(h,i);if((c|0)!=(d|0)){f[c>>2]=f[d>>2];$Db(i,g)|0}if((k|0)!=(d|0)){f[d>>2]=f[k>>2];$Db(g,h)|0}if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);h=f[a>>2]|0;if((f[c>>2]|0)>=(h|0)){k=j+3|0;u=l;return k|0}f[k>>2]=h;h=k+4|0;g=a+4|0;VDb(h,g);if((a|0)!=(c|0)){f[a>>2]=f[c>>2];$Db(g,i)|0}if((k|0)!=(c|0)){f[c>>2]=f[k>>2];$Db(i,h)|0}if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);k=j+4|0;u=l;return k|0}function MJa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0;k=u;u=u+16|0;j=k;e=a+32|0;JJa(a,a+16|0,e,d)|0;d=a+48|0;if((d|0)==(c|0)){u=k;return}h=j+4|0;i=h+11|0;g=d;d=e;while(1){e=f[g>>2]|0;if((e|0)<(f[d>>2]|0)){f[j>>2]=e;VDb(h,g+4|0);e=g;while(1){f[e>>2]=f[d>>2];$Db(e+4|0,d+4|0)|0;if((d|0)==(a|0)){d=a;break}e=d+-16|0;if((f[j>>2]|0)<(f[e>>2]|0)){l=d;d=e;e=l}else break}if((d|0)!=(j|0)){f[d>>2]=f[j>>2];$Db(d+4|0,h)|0}if((b[i>>0]|0)<0)NDb(f[h>>2]|0)}d=g+16|0;if((d|0)==(c|0))break;else{l=g;g=d;d=l}}u=k;return}function NJa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=u;u=u+16|0;l=m;switch(c-a>>4|0){case 2:{g=c+-16|0;d=f[a>>2]|0;if((f[g>>2]|0)>=(d|0)){l=1;u=m;return l|0}f[l>>2]=d;d=l+4|0;e=a+4|0;VDb(d,e);if((g|0)!=(a|0)){f[a>>2]=f[g>>2];$Db(e,c+-12|0)|0}if((l|0)!=(g|0)){f[g>>2]=f[l>>2];$Db(c+-12|0,d)|0}if((b[d+11>>0]|0)<0)NDb(f[d>>2]|0);l=1;u=m;return l|0}case 3:{JJa(a,a+16|0,c+-16|0,d)|0;l=1;u=m;return l|0}case 4:{KJa(a,a+16|0,a+32|0,c+-16|0,d)|0;l=1;u=m;return l|0}case 5:{LJa(a,a+16|0,a+32|0,a+48|0,c+-16|0,d)|0;l=1;u=m;return l|0}case 1:case 0:{l=1;u=m;return l|0}default:{g=a+32|0;JJa(a,a+16|0,g,d)|0;d=a+48|0;if((d|0)==(c|0)){l=1;u=m;return l|0}i=l+4|0;j=i+11|0;e=0;while(1){h=f[d>>2]|0;if((h|0)<(f[g>>2]|0)){f[l>>2]=h;VDb(i,d+4|0);h=d;while(1){if((h|0)!=(g|0)){f[h>>2]=f[g>>2];$Db(h+4|0,g+4|0)|0}if((g|0)==(a|0)){g=a;break}h=g+-16|0;if((f[l>>2]|0)<(f[h>>2]|0)){n=g;g=h;h=n}else break}if((g|0)!=(l|0)){f[g>>2]=f[l>>2];$Db(g+4|0,i)|0}e=e+1|0;if((b[j>>0]|0)<0)NDb(f[i>>2]|0);if((e|0)==8)break}g=d+16|0;if((g|0)==(c|0)){d=1;k=28;break}else{n=d;d=g;g=n}}if((k|0)==28){u=m;return d|0}n=(d+16|0)==(c|0);u=m;return n|0}}return 0}function OJa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0;i=u;u=u+32|0;g=i;BCa(g);f[g>>2]=126936;h=g+12|0;VDb(h,d);f[g+24>>2]=e;f[g>>2]=127196;zHa(a,c,g,32);f[g>>2]=126936;if((b[h+11>>0]|0)>=0){V4(g);u=i;return}NDb(f[h>>2]|0);V4(g);u=i;return}function PJa(a){a=a|0;var c=0;f[a>>2]=126936;c=a+12|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);V4(a);NDb(a);return}function QJa(a,b,c){a=a|0;b=b|0;c=c|0;al[f[(f[c>>2]|0)+216>>2]&255](a,c,b+12|0,f[b+24>>2]|0);return}function RJa(a,b){a=a|0;b=b|0;a=f[b+16>>2]|0;if(!a){b=0;return b|0}b=(bFb(a,58336,63208,0)|0)!=0;return b|0}function SJa(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,63208,0)|0)!=0;return b|0}function TJa(a,b,c){a=a|0;b=b|0;c=c|0;a=LDb(28)|0;BCa(a);f[a>>2]=126936;VDb(a+12|0,b);f[a+24>>2]=c;f[a>>2]=127196;return a|0}function UJa(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|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,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;B=u;u=u+80|0;w=B;z=B+60|0;x=B+40|0;y=B+28|0;s=B+16|0;f[z>>2]=0;A=z+4|0;f[A>>2]=0;o=z+8|0;f[o>>2]=0;n=c+60|0;f[x>>2]=c+72;p=x+4|0;f[p>>2]=n;f[x+12>>2]=0;f[x+16>>2]=0;t=x+12|0;f[x+8>>2]=t;v=a+4|0;q=v+11|0;while(1){sk[f[(f[n>>2]|0)+8>>2]&2047](n)|0;l=f[x>>2]|0;h=f[l>>2]|0;l=f[l+4>>2]|0;a:do if((h|0)==(l|0))h=0;else{m=f[t>>2]|0;if(!m){h=f[h>>2]|0;break}k=h;while(1){h=f[k>>2]|0;i=t;j=m;do{C=(f[j+16>>2]|0)>>>0<h>>>0;i=C?i:j;j=f[(C?j+4|0:j)>>2]|0}while((j|0)!=0);if((i|0)==(t|0))break a;k=k+4|0;if(h>>>0<(f[i+16>>2]|0)>>>0)break a;if((k|0)==(l|0)){h=0;break}}}while(0);sk[f[(f[n>>2]|0)+12>>2]&2047](n)|0;if(!h){r=28;break}n=f[p>>2]|0;sk[f[(f[n>>2]|0)+8>>2]&2047](n)|0;l=f[x>>2]|0;h=f[l>>2]|0;l=f[l+4>>2]|0;b:do if((h|0)==(l|0))h=0;else{m=f[t>>2]|0;if(!m){h=f[h>>2]|0;break}k=h;while(1){h=f[k>>2]|0;i=t;j=m;do{C=(f[j+16>>2]|0)>>>0<h>>>0;i=C?i:j;j=f[(C?j+4|0:j)>>2]|0}while((j|0)!=0);if((i|0)==(t|0))break b;k=k+4|0;if(h>>>0<(f[i+16>>2]|0)>>>0)break b;if((k|0)==(l|0)){h=0;break}}}while(0);sk[f[(f[n>>2]|0)+12>>2]&2047](n)|0;cl[f[(f[h>>2]|0)+236>>2]&63](a,h,d,e,g);h=f[a>>2]|0;if((h|0)==3)break;i=f[A>>2]|0;if((i|0)==(f[o>>2]|0))HJa(z,a);else{f[i>>2]=h;VDb(i+4|0,v);f[A>>2]=(f[A>>2]|0)+16}if((b[q>>0]|0)<0)NDb(f[v>>2]|0);JHa(x);n=f[p>>2]|0}if((r|0)==28){LHa(w,e);MHa(y,c,w);if((b[w+11>>0]|0)<0)NDb(f[w>>2]|0);c:do if((NHa(c,y)|0)==2)while(1){n=f[p>>2]|0;sk[f[(f[n>>2]|0)+8>>2]&2047](n)|0;l=f[x>>2]|0;h=f[l>>2]|0;l=f[l+4>>2]|0;d:do if((h|0)==(l|0))h=0;else{m=f[t>>2]|0;if(!m){h=f[h>>2]|0;break}k=h;while(1){h=f[k>>2]|0;i=t;j=m;do{C=(f[j+16>>2]|0)>>>0<h>>>0;i=C?i:j;j=f[(C?j+4|0:j)>>2]|0}while((j|0)!=0);if((i|0)==(t|0))break d;k=k+4|0;if(h>>>0<(f[i+16>>2]|0)>>>0)break d;if((k|0)==(l|0)){h=0;break}}}while(0);sk[f[(f[n>>2]|0)+12>>2]&2047](n)|0;if(!h){r=58;break c}n=f[p>>2]|0;sk[f[(f[n>>2]|0)+8>>2]&2047](n)|0;l=f[x>>2]|0;h=f[l>>2]|0;l=f[l+4>>2]|0;e:do if((h|0)==(l|0))h=0;else{m=f[t>>2]|0;if(!m){h=f[h>>2]|0;break}k=h;while(1){h=f[k>>2]|0;i=t;j=m;do{C=(f[j+16>>2]|0)>>>0<h>>>0;i=C?i:j;j=f[(C?j+4|0:j)>>2]|0}while((j|0)!=0);if((i|0)==(t|0))break e;k=k+4|0;if(h>>>0<(f[i+16>>2]|0)>>>0)break e;if((k|0)==(l|0)){h=0;break}}}while(0);sk[f[(f[n>>2]|0)+12>>2]&2047](n)|0;cl[f[(f[h>>2]|0)+236>>2]&63](a,h,d,e,g);h=f[a>>2]|0;if((h|0)==3)break c;i=f[A>>2]|0;if((i|0)==(f[o>>2]|0))HJa(z,a);else{f[i>>2]=h;VDb(i+4|0,v);f[A>>2]=(f[A>>2]|0)+16}if((b[q>>0]|0)<0)NDb(f[v>>2]|0);JHa(x)}else r=58;while(0);do if((r|0)==58){h=f[z>>2]|0;i=f[A>>2]|0;if((h|0)!=(i|0)){IJa(h,i,w);C=f[A>>2]|0;f[w>>2]=f[C+-16>>2];h=w+4|0;VDb(h,C+-12|0);f[a>>2]=f[w>>2];VDb(v,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);break}JEb(s,229023,e);C=jEb(s,222229)|0;f[w>>2]=f[C>>2];f[w+4>>2]=f[C+4>>2];f[w+8>>2]=f[C+8>>2];f[C>>2]=0;f[C+4>>2]=0;f[C+8>>2]=0;f[a>>2]=2;VDb(v,w);if((b[w+11>>0]|0)<0)NDb(f[w>>2]|0);if((b[s+11>>0]|0)<0)NDb(f[s>>2]|0)}while(0);if((b[y+11>>0]|0)<0)NDb(f[y>>2]|0)}SHa(x+8|0,f[t>>2]|0);j=f[z>>2]|0;if(!j){u=B;return}h=f[A>>2]|0;if((h|0)==(j|0))h=j;else{do{i=h+-12|0;h=h+-16|0;if((b[i+11>>0]|0)<0)NDb(f[i>>2]|0)}while((h|0)!=(j|0));h=f[z>>2]|0}f[A>>2]=j;NDb(h);u=B;return}function VJa(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|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,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;B=u;u=u+80|0;w=B;z=B+60|0;x=B+40|0;y=B+28|0;s=B+16|0;f[z>>2]=0;A=z+4|0;f[A>>2]=0;o=z+8|0;f[o>>2]=0;n=c+60|0;f[x>>2]=c+72;p=x+4|0;f[p>>2]=n;f[x+12>>2]=0;f[x+16>>2]=0;t=x+12|0;f[x+8>>2]=t;v=a+4|0;q=v+11|0;while(1){sk[f[(f[n>>2]|0)+8>>2]&2047](n)|0;l=f[x>>2]|0;h=f[l>>2]|0;l=f[l+4>>2]|0;a:do if((h|0)==(l|0))h=0;else{m=f[t>>2]|0;if(!m){h=f[h>>2]|0;break}k=h;while(1){h=f[k>>2]|0;i=t;j=m;do{C=(f[j+16>>2]|0)>>>0<h>>>0;i=C?i:j;j=f[(C?j+4|0:j)>>2]|0}while((j|0)!=0);if((i|0)==(t|0))break a;k=k+4|0;if(h>>>0<(f[i+16>>2]|0)>>>0)break a;if((k|0)==(l|0)){h=0;break}}}while(0);sk[f[(f[n>>2]|0)+12>>2]&2047](n)|0;if(!h){r=28;break}n=f[p>>2]|0;sk[f[(f[n>>2]|0)+8>>2]&2047](n)|0;l=f[x>>2]|0;h=f[l>>2]|0;l=f[l+4>>2]|0;b:do if((h|0)==(l|0))h=0;else{m=f[t>>2]|0;if(!m){h=f[h>>2]|0;break}k=h;while(1){h=f[k>>2]|0;i=t;j=m;do{C=(f[j+16>>2]|0)>>>0<h>>>0;i=C?i:j;j=f[(C?j+4|0:j)>>2]|0}while((j|0)!=0);if((i|0)==(t|0))break b;k=k+4|0;if(h>>>0<(f[i+16>>2]|0)>>>0)break b;if((k|0)==(l|0)){h=0;break}}}while(0);sk[f[(f[n>>2]|0)+12>>2]&2047](n)|0;cl[f[(f[h>>2]|0)+232>>2]&63](a,h,d,e,g);h=f[a>>2]|0;if((h|0)==3)break;i=f[A>>2]|0;if((i|0)==(f[o>>2]|0))HJa(z,a);else{f[i>>2]=h;VDb(i+4|0,v);f[A>>2]=(f[A>>2]|0)+16}if((b[q>>0]|0)<0)NDb(f[v>>2]|0);JHa(x);n=f[p>>2]|0}if((r|0)==28){LHa(w,e);MHa(y,c,w);if((b[w+11>>0]|0)<0)NDb(f[w>>2]|0);c:do if((NHa(c,y)|0)==2)while(1){n=f[p>>2]|0;sk[f[(f[n>>2]|0)+8>>2]&2047](n)|0;l=f[x>>2]|0;h=f[l>>2]|0;l=f[l+4>>2]|0;d:do if((h|0)==(l|0))h=0;else{m=f[t>>2]|0;if(!m){h=f[h>>2]|0;break}k=h;while(1){h=f[k>>2]|0;i=t;j=m;do{C=(f[j+16>>2]|0)>>>0<h>>>0;i=C?i:j;j=f[(C?j+4|0:j)>>2]|0}while((j|0)!=0);if((i|0)==(t|0))break d;k=k+4|0;if(h>>>0<(f[i+16>>2]|0)>>>0)break d;if((k|0)==(l|0)){h=0;break}}}while(0);sk[f[(f[n>>2]|0)+12>>2]&2047](n)|0;if(!h){r=58;break c}n=f[p>>2]|0;sk[f[(f[n>>2]|0)+8>>2]&2047](n)|0;l=f[x>>2]|0;h=f[l>>2]|0;l=f[l+4>>2]|0;e:do if((h|0)==(l|0))h=0;else{m=f[t>>2]|0;if(!m){h=f[h>>2]|0;break}k=h;while(1){h=f[k>>2]|0;i=t;j=m;do{C=(f[j+16>>2]|0)>>>0<h>>>0;i=C?i:j;j=f[(C?j+4|0:j)>>2]|0}while((j|0)!=0);if((i|0)==(t|0))break e;k=k+4|0;if(h>>>0<(f[i+16>>2]|0)>>>0)break e;if((k|0)==(l|0)){h=0;break}}}while(0);sk[f[(f[n>>2]|0)+12>>2]&2047](n)|0;cl[f[(f[h>>2]|0)+232>>2]&63](a,h,d,e,g);h=f[a>>2]|0;if((h|0)==3)break c;i=f[A>>2]|0;if((i|0)==(f[o>>2]|0))HJa(z,a);else{f[i>>2]=h;VDb(i+4|0,v);f[A>>2]=(f[A>>2]|0)+16}if((b[q>>0]|0)<0)NDb(f[v>>2]|0);JHa(x)}else r=58;while(0);do if((r|0)==58){h=f[z>>2]|0;i=f[A>>2]|0;if((h|0)!=(i|0)){IJa(h,i,w);C=f[A>>2]|0;f[w>>2]=f[C+-16>>2];h=w+4|0;VDb(h,C+-12|0);f[a>>2]=f[w>>2];VDb(v,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);break}JEb(s,229136,e);C=jEb(s,222229)|0;f[w>>2]=f[C>>2];f[w+4>>2]=f[C+4>>2];f[w+8>>2]=f[C+8>>2];f[C>>2]=0;f[C+4>>2]=0;f[C+8>>2]=0;f[a>>2]=2;VDb(v,w);if((b[w+11>>0]|0)<0)NDb(f[w>>2]|0);if((b[s+11>>0]|0)<0)NDb(f[s>>2]|0)}while(0);if((b[y+11>>0]|0)<0)NDb(f[y>>2]|0)}SHa(x+8|0,f[t>>2]|0);j=f[z>>2]|0;if(!j){u=B;return}h=f[A>>2]|0;if((h|0)==(j|0))h=j;else{do{i=h+-12|0;h=h+-16|0;if((b[i+11>>0]|0)<0)NDb(f[i>>2]|0)}while((h|0)!=(j|0));h=f[z>>2]|0}f[A>>2]=j;NDb(h);u=B;return}function WJa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0;i=u;u=u+32|0;g=i;BCa(g);f[g>>2]=126936;h=g+12|0;VDb(h,d);f[g+24>>2]=e;f[g>>2]=127232;zHa(a,c,g,4);f[g>>2]=126936;if((b[h+11>>0]|0)>=0){V4(g);u=i;return}NDb(f[h>>2]|0);V4(g);u=i;return}function XJa(a){a=a|0;var c=0;f[a>>2]=126936;c=a+12|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);V4(a);NDb(a);return}function YJa(a,b,c){a=a|0;b=b|0;c=c|0;al[f[(f[c>>2]|0)+208>>2]&255](a,c,b+12|0,f[b+24>>2]|0);return}function ZJa(a,b){a=a|0;b=b|0;a=f[b+16>>2]|0;if(!a){b=0;return b|0}b=(bFb(a,58336,63256,0)|0)!=0;return b|0}function _Ja(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,63256,0)|0)!=0;return b|0}function $Ja(a,b,c){a=a|0;b=b|0;c=c|0;a=LDb(28)|0;BCa(a);f[a>>2]=126936;VDb(a+12|0,b);f[a+24>>2]=c;f[a>>2]=127232;return a|0}function aKa(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0;m=u;u=u+32|0;k=m;f[a>>2]=1;i=a+4|0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;if((e|0)!=0?(h=f[e+116>>2]|0,(h|0)!=0):0){al[f[(f[h>>2]|0)+4>>2]&255](k,h,d,e);if((k|0)!=(a|0)){f[a>>2]=f[k>>2];$Db(i,k+4|0)|0;d=a+16|0;i=f[d>>2]|0;h=k+16|0;j=f[h>>2]|0;if((i|0)!=(j|0)){f[d>>2]=j;if(j|0){l=j+8|0;f[l>>2]=(f[l>>2]|0)+1}if((i|0)!=0?(j=i+8|0,l=f[j>>2]|0,f[j>>2]=l-1,(l|0)==1):0){X4(i,1,1);l=11}else l=11}else{d=h;h=j}}else{h=k+16|0;l=11}if((l|0)==11){d=h;h=f[h>>2]|0}if(h|0?(i=h+8|0,j=f[i>>2]|0,f[i>>2]=j-1,(j|0)==1):0)X4(h,1,1);f[d>>2]=0;h=k+4|0;if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0)}else l=18;do if((l|0)==18){h=f[c+48>>2]|0;if(!h){bKa(k,c,d,e);if((k|0)!=(a|0)){f[a>>2]=f[k>>2];$Db(i,k+4|0)|0;d=a+16|0;i=f[d>>2]|0;h=k+16|0;j=f[h>>2]|0;if((i|0)!=(j|0)){f[d>>2]=j;if(j|0){l=j+8|0;f[l>>2]=(f[l>>2]|0)+1}if((i|0)!=0?(j=i+8|0,l=f[j>>2]|0,f[j>>2]=l-1,(l|0)==1):0){X4(i,1,1);l=42}else l=42}else{d=h;h=j}}else{h=k+16|0;l=42}if((l|0)==42){d=h;h=f[h>>2]|0}if(h|0?(j=h+8|0,l=f[j>>2]|0,f[j>>2]=l-1,(l|0)==1):0)X4(h,1,1);f[d>>2]=0;h=k+4|0;if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);break}else{al[f[(f[h>>2]|0)+4>>2]&255](k,h,d,e);if((k|0)!=(a|0)){f[a>>2]=f[k>>2];$Db(i,k+4|0)|0;d=a+16|0;i=f[d>>2]|0;h=k+16|0;j=f[h>>2]|0;if((i|0)!=(j|0)){f[d>>2]=j;if(j|0){l=j+8|0;f[l>>2]=(f[l>>2]|0)+1}if((i|0)!=0?(j=i+8|0,l=f[j>>2]|0,f[j>>2]=l-1,(l|0)==1):0){X4(i,1,1);l=27}else l=27}else{d=h;h=j}}else{h=k+16|0;l=27}if((l|0)==27){d=h;h=f[h>>2]|0}if(h|0?(j=h+8|0,l=f[j>>2]|0,f[j>>2]=l-1,(l|0)==1):0)X4(h,1,1);f[d>>2]=0;h=k+4|0;if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);break}}while(0);if(!g){u=m;return}yHa(c,a,e);u=m;return}function bKa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0;i=u;u=u+32|0;g=i;BCa(g);f[g>>2]=126936;h=g+12|0;VDb(h,d);f[g+24>>2]=e;f[g>>2]=127268;zHa(a,c,g,16);f[g>>2]=126936;if((b[h+11>>0]|0)>=0){V4(g);u=i;return}NDb(f[h>>2]|0);V4(g);u=i;return}function cKa(a){a=a|0;var c=0;f[a>>2]=126936;c=a+12|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);V4(a);NDb(a);return}function dKa(a,b,c){a=a|0;b=b|0;c=c|0;al[f[(f[c>>2]|0)+200>>2]&255](a,c,b+12|0,f[b+24>>2]|0);return}function eKa(a,b){a=a|0;b=b|0;return (f[b+16>>2]|0)!=0|0}function fKa(a,b){a=a|0;b=b|0;return (b|0)!=0|0}function gKa(a,b,c){a=a|0;b=b|0;c=c|0;a=LDb(28)|0;BCa(a);f[a>>2]=126936;VDb(a+12|0,b);f[a+24>>2]=c;f[a>>2]=127268;return a|0}function hKa(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|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,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;B=u;u=u+80|0;w=B;z=B+60|0;x=B+40|0;y=B+28|0;s=B+16|0;f[z>>2]=0;A=z+4|0;f[A>>2]=0;o=z+8|0;f[o>>2]=0;n=c+60|0;f[x>>2]=c+72;p=x+4|0;f[p>>2]=n;f[x+12>>2]=0;f[x+16>>2]=0;t=x+12|0;f[x+8>>2]=t;v=a+4|0;q=v+11|0;while(1){sk[f[(f[n>>2]|0)+8>>2]&2047](n)|0;l=f[x>>2]|0;h=f[l>>2]|0;l=f[l+4>>2]|0;a:do if((h|0)==(l|0))h=0;else{m=f[t>>2]|0;if(!m){h=f[h>>2]|0;break}k=h;while(1){h=f[k>>2]|0;i=t;j=m;do{C=(f[j+16>>2]|0)>>>0<h>>>0;i=C?i:j;j=f[(C?j+4|0:j)>>2]|0}while((j|0)!=0);if((i|0)==(t|0))break a;k=k+4|0;if(h>>>0<(f[i+16>>2]|0)>>>0)break a;if((k|0)==(l|0)){h=0;break}}}while(0);sk[f[(f[n>>2]|0)+12>>2]&2047](n)|0;if(!h){r=28;break}n=f[p>>2]|0;sk[f[(f[n>>2]|0)+8>>2]&2047](n)|0;l=f[x>>2]|0;h=f[l>>2]|0;l=f[l+4>>2]|0;b:do if((h|0)==(l|0))h=0;else{m=f[t>>2]|0;if(!m){h=f[h>>2]|0;break}k=h;while(1){h=f[k>>2]|0;i=t;j=m;do{C=(f[j+16>>2]|0)>>>0<h>>>0;i=C?i:j;j=f[(C?j+4|0:j)>>2]|0}while((j|0)!=0);if((i|0)==(t|0))break b;k=k+4|0;if(h>>>0<(f[i+16>>2]|0)>>>0)break b;if((k|0)==(l|0)){h=0;break}}}while(0);sk[f[(f[n>>2]|0)+12>>2]&2047](n)|0;cl[f[(f[h>>2]|0)+228>>2]&63](a,h,d,e,g);h=f[a>>2]|0;if((h|0)==3)break;i=f[A>>2]|0;if((i|0)==(f[o>>2]|0))HJa(z,a);else{f[i>>2]=h;VDb(i+4|0,v);f[A>>2]=(f[A>>2]|0)+16}if((b[q>>0]|0)<0)NDb(f[v>>2]|0);JHa(x);n=f[p>>2]|0}if((r|0)==28){LHa(w,e);MHa(y,c,w);if((b[w+11>>0]|0)<0)NDb(f[w>>2]|0);c:do if((NHa(c,y)|0)==2)while(1){n=f[p>>2]|0;sk[f[(f[n>>2]|0)+8>>2]&2047](n)|0;l=f[x>>2]|0;h=f[l>>2]|0;l=f[l+4>>2]|0;d:do if((h|0)==(l|0))h=0;else{m=f[t>>2]|0;if(!m){h=f[h>>2]|0;break}k=h;while(1){h=f[k>>2]|0;i=t;j=m;do{C=(f[j+16>>2]|0)>>>0<h>>>0;i=C?i:j;j=f[(C?j+4|0:j)>>2]|0}while((j|0)!=0);if((i|0)==(t|0))break d;k=k+4|0;if(h>>>0<(f[i+16>>2]|0)>>>0)break d;if((k|0)==(l|0)){h=0;break}}}while(0);sk[f[(f[n>>2]|0)+12>>2]&2047](n)|0;if(!h){r=58;break c}n=f[p>>2]|0;sk[f[(f[n>>2]|0)+8>>2]&2047](n)|0;l=f[x>>2]|0;h=f[l>>2]|0;l=f[l+4>>2]|0;e:do if((h|0)==(l|0))h=0;else{m=f[t>>2]|0;if(!m){h=f[h>>2]|0;break}k=h;while(1){h=f[k>>2]|0;i=t;j=m;do{C=(f[j+16>>2]|0)>>>0<h>>>0;i=C?i:j;j=f[(C?j+4|0:j)>>2]|0}while((j|0)!=0);if((i|0)==(t|0))break e;k=k+4|0;if(h>>>0<(f[i+16>>2]|0)>>>0)break e;if((k|0)==(l|0)){h=0;break}}}while(0);sk[f[(f[n>>2]|0)+12>>2]&2047](n)|0;cl[f[(f[h>>2]|0)+228>>2]&63](a,h,d,e,g);h=f[a>>2]|0;if((h|0)==3)break c;i=f[A>>2]|0;if((i|0)==(f[o>>2]|0))HJa(z,a);else{f[i>>2]=h;VDb(i+4|0,v);f[A>>2]=(f[A>>2]|0)+16}if((b[q>>0]|0)<0)NDb(f[v>>2]|0);JHa(x)}else r=58;while(0);do if((r|0)==58){h=f[z>>2]|0;i=f[A>>2]|0;if((h|0)!=(i|0)){IJa(h,i,w);C=f[A>>2]|0;f[w>>2]=f[C+-16>>2];h=w+4|0;VDb(h,C+-12|0);f[a>>2]=f[w>>2];VDb(v,h);if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);break}JEb(s,229398,e);C=jEb(s,222229)|0;f[w>>2]=f[C>>2];f[w+4>>2]=f[C+4>>2];f[w+8>>2]=f[C+8>>2];f[C>>2]=0;f[C+4>>2]=0;f[C+8>>2]=0;f[a>>2]=2;VDb(v,w);if((b[w+11>>0]|0)<0)NDb(f[w>>2]|0);if((b[s+11>>0]|0)<0)NDb(f[s>>2]|0)}while(0);if((b[y+11>>0]|0)<0)NDb(f[y>>2]|0)}SHa(x+8|0,f[t>>2]|0);j=f[z>>2]|0;if(!j){u=B;return}h=f[A>>2]|0;if((h|0)==(j|0))h=j;else{do{i=h+-12|0;h=h+-16|0;if((b[i+11>>0]|0)<0)NDb(f[i>>2]|0)}while((h|0)!=(j|0));h=f[z>>2]|0}f[A>>2]=j;NDb(h);u=B;return}function iKa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0;i=u;u=u+32|0;g=i;BCa(g);f[g>>2]=126936;h=g+12|0;VDb(h,d);f[g+24>>2]=e;f[g>>2]=127304;zHa(a,c,g,2);f[g>>2]=126936;if((b[h+11>>0]|0)>=0){V4(g);u=i;return}NDb(f[h>>2]|0);V4(g);u=i;return}function jKa(a){a=a|0;var c=0;f[a>>2]=126936;c=a+12|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);V4(a);NDb(a);return}function kKa(a,b,c){a=a|0;b=b|0;c=c|0;al[f[(f[c>>2]|0)+204>>2]&255](a,c,b+12|0,f[b+24>>2]|0);return}function lKa(a,b){a=a|0;b=b|0;a=f[b+16>>2]|0;if(!a){b=0;return b|0}b=(bFb(a,58336,59480,0)|0)!=0;return b|0}function mKa(a,b){a=a|0;b=b|0;if(!b){b=0;return b|0}b=(bFb(b,58336,59480,0)|0)!=0;return b|0}function nKa(a,b,c){a=a|0;b=b|0;c=c|0;a=LDb(28)|0;BCa(a);f[a>>2]=126936;VDb(a+12|0,b);f[a+24>>2]=c;f[a>>2]=127304;return a|0}function oKa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0;h=u;u=u+16|0;e=h;d=f[a+44>>2]|0;a=a+48|0;if((d|0)==(f[a>>2]|0)){g=0;u=h;return g|0}while(1){if(pKa(f[d>>2]|0,c)|0)break;d=d+4|0;if((d|0)==(f[a>>2]|0)){d=0;g=7;break}}if((g|0)==7){u=h;return d|0}if(!(S0(4)|0)){g=1;u=h;return g|0}d=Nv(Mv(4)|0,229512,21)|0;g=b[c+11>>0]|0;a=g<<24>>24<0;g=Nv(d,a?f[c>>2]|0:c,a?f[c+4>>2]|0:g&255)|0;Ktb(e,g+(f[(f[g>>2]|0)+-12>>2]|0)|0);c=Bvb(e,295164)|0;c=wk[f[(f[c>>2]|0)+28>>2]&1023](c,10)|0;Cvb(e);rub(g,c)|0;Rtb(g)|0;g=1;u=h;return g|0}function pKa(a,c){a=a|0;c=c|0;var d=0,e=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;t=u;u=u+16|0;s=t;l=t+12|0;if(S0(4)|0){h=Nv(Mv(4)|0,229534,17)|0;j=a+12|0;i=b[j+11>>0]|0;k=i<<24>>24<0;i=Nv(Nv(h,k?f[j>>2]|0:j,k?f[a+16>>2]|0:i&255)|0,229552,21)|0;k=b[c+11>>0]|0;j=k<<24>>24<0;k=Nv(Nv(i,j?f[c>>2]|0:c,j?f[c+4>>2]|0:k&255)|0,239531,1)|0;Ktb(s,k+(f[(f[k>>2]|0)+-12>>2]|0)|0);j=Bvb(s,295164)|0;j=wk[f[(f[j>>2]|0)+28>>2]&1023](j,10)|0;Cvb(s);rub(k,j)|0;Rtb(k)|0}h=a+32|0;i=h+11|0;d=b[i>>0]|0;j=d<<24>>24<0;if(j)e=f[a+36>>2]|0;else e=d&255;k=b[c+11>>0]|0;if(e>>>0>=(k<<24>>24<0?f[c+4>>2]|0:k&255)>>>0){s=0;u=t;return s|0}if(j){k=a+36|0;g=f[k>>2]|0;d=d&255;e=g}else{g=d&255;e=a+36|0;d=g;k=e;e=f[e>>2]|0}if(uEb(c,0,g,j?f[h>>2]|0:h,j?e:d)|0){s=0;u=t;return s|0}d=b[i>>0]|0;e=d<<24>>24<0;if(e)g=f[k>>2]|0;else g=d&255;if(!g)d=0;else{if(e)d=f[k>>2]|0;else d=d&255;d=d+1|0}ZDb(s,c,d,-1,l);d=f[a+48>>2]|0;a:do if((d|0)!=0?(m=f[d+36>>2]|0,(m|0)!=0):0){c=b[s+11>>0]|0;l=c<<24>>24<0;c=l?f[s+4>>2]|0:c&255;l=l?f[s>>2]|0:s;d=m;while(1){e=d+16|0;h=b[e+11>>0]|0;g=h<<24>>24<0;h=g?f[d+20>>2]|0:h&255;k=h>>>0<c>>>0;j=k?h:c;i=(j|0)==0;if(!i?(n=g?f[e>>2]|0:e,o=ipb(l,n,j)|0,(o|0)!=0):0)if((o|0)<0)g=26;else{e=n;g=29}else if(c>>>0>=h>>>0)if(i)g=30;else{e=g?f[e>>2]|0:e;g=29}else g=26;if((g|0)==26)g=0;else if((g|0)==29){g=0;e=ipb(e,l,j)|0;if(e)if((e|0)<0)g=32;else{d=1;break a}else g=30}if((g|0)==30){g=0;if(k)g=32;else{d=1;break a}}if((g|0)==32)d=d+4|0;d=f[d>>2]|0;if(!d){g=34;break}}}else g=34;while(0);b:do if((g|0)==34){d=f[a+52>>2]|0;if((d|0)!=0?(p=f[d+36>>2]|0,(p|0)!=0):0){c=b[s+11>>0]|0;l=c<<24>>24<0;c=l?f[s+4>>2]|0:c&255;l=l?f[s>>2]|0:s;d=p;while(1){e=d+16|0;h=b[e+11>>0]|0;g=h<<24>>24<0;h=g?f[d+20>>2]|0:h&255;k=h>>>0<c>>>0;j=k?h:c;i=(j|0)==0;if(!i?(q=g?f[e>>2]|0:e,r=ipb(l,q,j)|0,(r|0)!=0):0)if((r|0)<0)g=41;else{e=q;g=44}else if(c>>>0>=h>>>0)if(i)g=45;else{e=g?f[e>>2]|0:e;g=44}else g=41;if((g|0)==41)g=0;else if((g|0)==44){e=ipb(e,l,j)|0;if(e)if((e|0)<0)g=47;else{d=1;break b}else g=45}if((g|0)==45)if(k)g=47;else{d=1;break b}if((g|0)==47)d=d+4|0;d=f[d>>2]|0;if(!d){d=0;break}}}else d=0}while(0);if((b[s+11>>0]|0)<0)NDb(f[s>>2]|0);s=d;u=t;return s|0}function qKa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0;d=b[c+11>>0]|0;i=d<<24>>24<0;e=i?f[c>>2]|0:c;d=i?f[c+4>>2]|0:d&255;i=e+d|0;g=i;h=e;a:do if((d|0)>=3){while(1){d=d+-2|0;if(!d)break a;d=epb(e,58,d)|0;if(!d)break a;if(!(ipb(d,222122,3)|0))break;e=d+1|0;d=g-e|0;if((d|0)<3)break a}g=d-h|0;if(!((d|0)==(i|0)|(g|0)==-1)){d=g+3|0;e=sEb(c,47,d)|0;if((e|0)==-1){ZDb(a,c,d,-1,c);return}else{ZDb(a,c,d,-3-g+e|0,c);return}}}while(0);f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;return}function rKa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0;d=b[c+11>>0]|0;i=d<<24>>24<0;e=i?f[c>>2]|0:c;d=i?f[c+4>>2]|0:d&255;i=e+d|0;g=i;h=e;a:do if((d|0)>=3){while(1){d=d+-2|0;if(!d)break a;e=epb(e,58,d)|0;if(!e)break a;if(!(ipb(e,222122,3)|0))break;e=e+1|0;d=g-e|0;if((d|0)<3)break a}d=e-h|0;if(!((e|0)==(i|0)|(d|0)==-1)){d=sEb(c,47,d+3|0)|0;if((d|0)==-1){f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;return}else{ZDb(a,c,d+1|0,-1,c);return}}}while(0);VDb(a,c);return}function sKa(a){a=a|0;var b=0,c=0,d=0,e=0,g=0;b=a+8|0;if(!(f[b>>2]|0))return;c=f[a+4>>2]|0;d=(f[a>>2]|0)+4|0;e=f[c>>2]|0;f[e+4>>2]=f[d>>2];f[f[d>>2]>>2]=e;f[b>>2]=0;if((c|0)==(a|0))return;do{b=c;c=f[c+4>>2]|0;d=f[b+8>>2]|0;if(d|0?(g=d+8|0,e=f[g>>2]|0,f[g>>2]=e-1,(e|0)==1):0)X4(d,1,1);NDb(b)}while((c|0)!=(a|0));return}function tKa(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f[a>>2]=127064;SIa(a);c=a+244|0;d=f[c>>2]|0;if(d|0?(g=d+8|0,h=f[g>>2]|0,f[g>>2]=h-1,(h|0)==1):0)X4(d,1,1);f[c>>2]=0;c=a+240|0;d=f[c>>2]|0;if(d|0?(g=d+8|0,h=f[g>>2]|0,f[g>>2]=h-1,(h|0)==1):0)X4(d,1,1);f[c>>2]=0;c=a+236|0;d=f[c>>2]|0;if(d|0?(e=d+(f[(f[d>>2]|0)+-12>>2]|0)|0,g=e+8|0,h=f[g>>2]|0,f[g>>2]=h-1,(h|0)==1):0)X4(e,1,1);f[c>>2]=0;d=a+224|0;e=f[d>>2]|0;if(e|0){g=a+228|0;c=f[g>>2]|0;if((c|0)==(e|0))c=e;else{do{c=c+-12|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0)}while((c|0)!=(e|0));c=f[d>>2]|0}f[g>>2]=e;NDb(c)}c=a+212|0;d=f[c>>2]|0;if(d|0?(g=d+8|0,h=f[g>>2]|0,f[g>>2]=h-1,(h|0)==1):0)X4(d,1,1);f[c>>2]=0;g=a+188|0;GHa(g);d=a+192|0;c=f[d>>2]|0;h=a+196|0;e=f[h>>2]|0;if((c|0)!=(e|0)){do{NDb(f[c>>2]|0);c=c+4|0}while((c|0)!=(e|0));c=f[d>>2]|0;d=f[h>>2]|0;if((d|0)!=(c|0))f[h>>2]=d+(~((d+-4-c|0)>>>2)<<2)}c=f[g>>2]|0;if(c|0)NDb(c);g=a+164|0;GHa(g);d=a+168|0;c=f[d>>2]|0;h=a+172|0;e=f[h>>2]|0;if((c|0)!=(e|0)){do{NDb(f[c>>2]|0);c=c+4|0}while((c|0)!=(e|0));c=f[d>>2]|0;d=f[h>>2]|0;if((d|0)!=(c|0))f[h>>2]=d+(~((d+-4-c|0)>>>2)<<2)}c=f[g>>2]|0;if(c|0)NDb(c);c=a+160|0;d=f[c>>2]|0;if(d|0?(g=d+8|0,h=f[g>>2]|0,f[g>>2]=h-1,(h|0)==1):0)X4(d,1,1);f[c>>2]=0;bv(a+148|0,f[a+152>>2]|0);bv(a+136|0,f[a+140>>2]|0);TIa(a+120|0,f[a+124>>2]|0);d8(a+108|0);e=a+96|0;h=f[e>>2]|0;if(h|0){g=a+100|0;c=f[g>>2]|0;if((c|0)==(h|0))c=h;else{do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(n=d+8|0,m=f[n>>2]|0,f[n>>2]=m-1,(m|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(h|0));c=f[e>>2]|0}f[g>>2]=h;NDb(c)}e=a+84|0;g=f[e>>2]|0;if(g|0){h=a+88|0;c=f[h>>2]|0;if((c|0)==(g|0))c=g;else{do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(m=d+8|0,n=f[m>>2]|0,f[m>>2]=n-1,(n|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(g|0));c=f[e>>2]|0}f[h>>2]=g;NDb(c)}e=a+72|0;g=f[e>>2]|0;if(g|0){h=a+76|0;c=f[h>>2]|0;if((c|0)==(g|0))c=g;else{do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(m=d+8|0,n=f[m>>2]|0,f[m>>2]=n-1,(n|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(g|0));c=f[e>>2]|0}f[h>>2]=g;NDb(c)}d8(a+60|0);c=a+56|0;d=f[c>>2]|0;if(d|0?(i=d+(f[(f[d>>2]|0)+-12>>2]|0)|0,m=i+8|0,n=f[m>>2]|0,f[m>>2]=n-1,(n|0)==1):0)X4(i,1,1);f[c>>2]=0;c=a+52|0;d=f[c>>2]|0;if(d|0?(j=d+(f[(f[d>>2]|0)+-12>>2]|0)|0,m=j+8|0,n=f[m>>2]|0,f[m>>2]=n-1,(n|0)==1):0)X4(j,1,1);f[c>>2]=0;c=a+48|0;d=f[c>>2]|0;if(d|0?(k=d+(f[(f[d>>2]|0)+-12>>2]|0)|0,m=k+8|0,n=f[m>>2]|0,f[m>>2]=n-1,(n|0)==1):0)X4(k,1,1);f[c>>2]=0;c=a+44|0;d=f[c>>2]|0;if(d|0?(l=d+(f[(f[d>>2]|0)+-12>>2]|0)|0,m=l+8|0,n=f[m>>2]|0,f[m>>2]=n-1,(n|0)==1):0)X4(l,1,1);f[c>>2]=0;Iy(a+32|0,f[a+36>>2]|0);c=a+24|0;d=f[c>>2]|0;if(d|0?(m=d+8|0,n=f[m>>2]|0,f[m>>2]=n-1,(n|0)==1):0)X4(d,1,1);f[c>>2]=0;c=a+20|0;d=f[c>>2]|0;do if(d|0){m=d+8|0;n=f[m>>2]|0;f[m>>2]=n-1;if((n|0)!=1)break;X4(d,1,1)}while(0);f[c>>2]=0;d=a+16|0;c=f[d>>2]|0;if(!c){f[d>>2]=0;V4(a);return}c=c+(f[(f[c>>2]|0)+-12>>2]|0)|0;m=c+8|0;n=f[m>>2]|0;f[m>>2]=n-1;if((n|0)!=1){f[d>>2]=0;V4(a);return}X4(c,1,1);f[d>>2]=0;V4(a);return}function uKa(a){a=a|0;tKa(a);NDb(a);return}function vKa(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(b|0?(d=b+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(b,1,1);f[a>>2]=0;return}function wKa(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(b|0?(d=b+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(b,1,1);f[a>>2]=0;return}function xKa(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(!b){f[a>>2]=0;return}b=b+(f[(f[b>>2]|0)+-12>>2]|0)|0;d=b+8|0;c=f[d>>2]|0;f[d>>2]=c-1;if((c|0)!=1){f[a>>2]=0;return}X4(b,1,1);f[a>>2]=0;return}function yKa(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(b|0?(d=b+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(b,1,1);f[a>>2]=0;return}function zKa(a){a=a|0;var b=0,c=0,d=0,e=0;GHa(a);c=a+4|0;b=f[c>>2]|0;e=a+8|0;d=f[e>>2]|0;if((b|0)!=(d|0)){do{NDb(f[b>>2]|0);b=b+4|0}while((b|0)!=(d|0));b=f[c>>2]|0;c=f[e>>2]|0;if((c|0)!=(b|0))f[e>>2]=c+(~((c+-4-b|0)>>>2)<<2)}b=f[a>>2]|0;if(!b)return;NDb(b);return}function AKa(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(b|0?(d=b+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(b,1,1);f[a>>2]=0;return}function BKa(a){a=a|0;bv(a,f[a+4>>2]|0);return}function CKa(a){a=a|0;TIa(a,f[a+4>>2]|0);return}function DKa(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;d=f[a>>2]|0;if(!d)return;e=a+4|0;b=f[e>>2]|0;if((b|0)==(d|0))b=d;else{do{b=b+-4|0;c=f[b>>2]|0;if(c|0?(h=c+8|0,g=f[h>>2]|0,f[h>>2]=g-1,(g|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(d|0));b=f[a>>2]|0}f[e>>2]=d;NDb(b);return}function EKa(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;d=f[a>>2]|0;if(!d)return;e=a+4|0;b=f[e>>2]|0;if((b|0)==(d|0))b=d;else{do{b=b+-4|0;c=f[b>>2]|0;if(c|0?(h=c+8|0,g=f[h>>2]|0,f[h>>2]=g-1,(g|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(d|0));b=f[a>>2]|0}f[e>>2]=d;NDb(b);return}function FKa(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;d=f[a>>2]|0;if(!d)return;e=a+4|0;b=f[e>>2]|0;if((b|0)==(d|0))b=d;else{do{b=b+-4|0;c=f[b>>2]|0;if(c|0?(h=c+8|0,g=f[h>>2]|0,f[h>>2]=g-1,(g|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(d|0));b=f[a>>2]|0}f[e>>2]=d;NDb(b);return}function GKa(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(!b){f[a>>2]=0;return}b=b+(f[(f[b>>2]|0)+-12>>2]|0)|0;d=b+8|0;c=f[d>>2]|0;f[d>>2]=c-1;if((c|0)!=1){f[a>>2]=0;return}X4(b,1,1);f[a>>2]=0;return}function HKa(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(!b){f[a>>2]=0;return}b=b+(f[(f[b>>2]|0)+-12>>2]|0)|0;d=b+8|0;c=f[d>>2]|0;f[d>>2]=c-1;if((c|0)!=1){f[a>>2]=0;return}X4(b,1,1);f[a>>2]=0;return}function IKa(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(!b){f[a>>2]=0;return}b=b+(f[(f[b>>2]|0)+-12>>2]|0)|0;d=b+8|0;c=f[d>>2]|0;f[d>>2]=c-1;if((c|0)!=1){f[a>>2]=0;return}X4(b,1,1);f[a>>2]=0;return}function JKa(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(!b){f[a>>2]=0;return}b=b+(f[(f[b>>2]|0)+-12>>2]|0)|0;d=b+8|0;c=f[d>>2]|0;f[d>>2]=c-1;if((c|0)!=1){f[a>>2]=0;return}X4(b,1,1);f[a>>2]=0;return}function KKa(a){a=a|0;Iy(a,f[a+4>>2]|0);return}function LKa(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(b|0?(d=b+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(b,1,1);f[a>>2]=0;return}function MKa(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(b|0?(d=b+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(b,1,1);f[a>>2]=0;return}function NKa(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(!b){f[a>>2]=0;return}b=b+(f[(f[b>>2]|0)+-12>>2]|0)|0;d=b+8|0;c=f[d>>2]|0;f[d>>2]=c-1;if((c|0)!=1){f[a>>2]=0;return}X4(b,1,1);f[a>>2]=0;return}function OKa(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f[a>>2]=127340;TKa(a)|0;l=a+56|0;d=f[l>>2]|0;m=a+60|0;b=f[m>>2]|0;if((b|0)!=(d|0))do{b=b+-4|0;c=f[b>>2]|0;if(c|0?(i=c+8|0,k=f[i>>2]|0,f[i>>2]=k-1,(k|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(d|0));f[m>>2]=d;k=a+88|0;b=f[k>>2]|0;if(b|0?(f[k>>2]=0,h=b+8|0,i=f[h>>2]|0,f[h>>2]=i-1,(i|0)==1):0)X4(b,1,1);i=a+92|0;b=f[i>>2]|0;if(b|0?(f[i>>2]=0,e=b+8|0,h=f[e>>2]|0,f[e>>2]=h-1,(h|0)==1):0)X4(b,1,1);h=a+96|0;b=f[h>>2]|0;if(b|0?(f[h>>2]=0,d=b+8|0,e=f[d>>2]|0,f[d>>2]=e-1,(e|0)==1):0)X4(b,1,1);e=a+100|0;b=f[e>>2]|0;if(b|0?(f[e>>2]=0,c=b+8|0,d=f[c>>2]|0,f[c>>2]=d-1,(d|0)==1):0)X4(b,1,1);d=a+132|0;b=f[d>>2]|0;if(b|0?(f[d>>2]=0,g=b+(f[(f[b>>2]|0)+-12>>2]|0)|0,b=g+8|0,c=f[b>>2]|0,f[b>>2]=c-1,(c|0)==1):0)X4(g,1,1);b=a+164|0;c=f[b>>2]|0;if(c|0?(n=c+8|0,g=f[n>>2]|0,f[n>>2]=g-1,(g|0)==1):0)X4(c,1,1);f[b>>2]=0;b=f[d>>2]|0;if(b|0?(j=b+(f[(f[b>>2]|0)+-12>>2]|0)|0,g=j+8|0,n=f[g>>2]|0,f[g>>2]=n-1,(n|0)==1):0)X4(j,1,1);f[d>>2]=0;b=a+120|0;c=f[b>>2]|0;if(c|0?(j=c+8|0,n=f[j>>2]|0,f[j>>2]=n-1,(n|0)==1):0)X4(c,1,1);f[b>>2]=0;b=f[e>>2]|0;if(b|0?(j=b+8|0,n=f[j>>2]|0,f[j>>2]=n-1,(n|0)==1):0)X4(b,1,1);f[e>>2]=0;b=f[h>>2]|0;if(b|0?(j=b+8|0,n=f[j>>2]|0,f[j>>2]=n-1,(n|0)==1):0)X4(b,1,1);f[h>>2]=0;b=f[i>>2]|0;if(b|0?(j=b+8|0,n=f[j>>2]|0,f[j>>2]=n-1,(n|0)==1):0)X4(b,1,1);f[i>>2]=0;b=f[k>>2]|0;if(b|0?(j=b+8|0,n=f[j>>2]|0,f[j>>2]=n-1,(n|0)==1):0)X4(b,1,1);f[k>>2]=0;d8(a+72|0);d=f[l>>2]|0;if(!d){m=a+40|0;n=a+44|0;n=f[n>>2]|0;VA(m,n);n=a+24|0;d8(n);n=a+12|0;d8(n);V4(a);return}b=f[m>>2]|0;if((b|0)==(d|0))b=d;else{do{b=b+-4|0;c=f[b>>2]|0;if(c|0?(k=c+8|0,n=f[k>>2]|0,f[k>>2]=n-1,(n|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(d|0));b=f[l>>2]|0}f[m>>2]=d;NDb(b);m=a+40|0;n=a+44|0;n=f[n>>2]|0;VA(m,n);n=a+24|0;d8(n);n=a+12|0;d8(n);V4(a);return}function PKa(a){a=a|0;OKa(a);NDb(a);return}function QKa(a,c,d,e,g,h,i){a=a|0;c=c|0;d=d|0;e=+e;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,o=0,q=0.0,r=0,s=0,t=0,v=0,w=0,x=0,y=0;x=u;u=u+16|0;w=x;if((i|0)!=0?(j=bFb(i,63152,74616,0)|0,(j|0)!=0):0)v=j;else{v=(aHa(0)|0)+160|0;v=f[v>>2]|0}if(!(b[a+53>>0]|0)){u=x;return}j=d+4|0;i=f[j>>2]|0;if((f[d>>2]|0)==(i|0)){if(!(S0(3)|0)){u=x;return}a=Nv(Mv(3)|0,230455,104)|0;Ktb(w,a+(f[(f[a>>2]|0)+-12>>2]|0)|0);v=Bvb(w,295164)|0;v=wk[f[(f[v>>2]|0)+28>>2]&1023](v,10)|0;Cvb(w);rub(a,v)|0;Rtb(a)|0;u=x;return}t=f[i+-4>>2]|0;t=sk[f[(f[t>>2]|0)+172>>2]&2047](t)|0;if(!t){if(!(S0(3)|0)){u=x;return}a=Nv(Mv(3)|0,230560,133)|0;Ktb(w,a+(f[(f[a>>2]|0)+-12>>2]|0)|0);v=Bvb(w,295164)|0;v=wk[f[(f[v>>2]|0)+28>>2]&1023](v,10)|0;Cvb(w);rub(a,v)|0;Rtb(a)|0;u=x;return}j=f[j>>2]|0;if((j|0)==(f[d>>2]|0))s=0;else{i=0;do{j=j+-4|0;s=f[j>>2]|0;if(sk[f[(f[s>>2]|0)+204>>2]&2047](s)|0)i=f[j>>2]|0}while((j|0)!=(f[d>>2]|0));s=i}if(!g){r=f[a+84>>2]|0;q=0.0}else{r=f[g+12>>2]|0;q=+p[g+16>>3]}i=f[h>>2]|0;if((i|0)!=0?(k=bFb(i,63152,75416,0)|0,(k|0)!=0):0){g=a+24|0;sk[f[(f[g>>2]|0)+8>>2]&2047](g)|0;i=k+12|0;o=(b[i>>0]|0)==0;j=S0(4)|0;do if(o)if(j){d=Nv(Mv(4)|0,230694,85)|0;Ktb(w,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);i=Bvb(w,295164)|0;i=wk[f[(f[i>>2]|0)+28>>2]&1023](i,10)|0;Cvb(w);rub(d,i)|0;Rtb(d)|0;d=0;i=0;j=0}else{d=0;i=0;j=0}else{if(j){d=Nv(Mv(4)|0,230780,31)|0;o=b[c+11>>0]|0;m=o<<24>>24<0;o=Nv(Nv(d,m?f[c>>2]|0:c,m?f[c+4>>2]|0:o&255)|0,230812,28)|0;Ktb(w,o+(f[(f[o>>2]|0)+-12>>2]|0)|0);m=Bvb(w,295164)|0;m=wk[f[(f[m>>2]|0)+28>>2]&1023](m,10)|0;Cvb(w);rub(o,m)|0;Rtb(o)|0}b[i>>0]=1;i=k+44|0;f[i>>2]=r;j=k+48|0;p[j>>3]=q;d=k+56|0;n[d>>2]=e;o=k+60|0;f[o>>2]=(f[o>>2]|0)+1;if((f[(f[h>>2]|0)+8>>2]|0)==1){if(S0(4)|0){y=Nv(Mv(4)|0,230780,31)|0;o=b[c+11>>0]|0;m=o<<24>>24<0;o=Nv(Nv(y,m?f[c>>2]|0:c,m?f[c+4>>2]|0:o&255)|0,230841,25)|0;Ktb(w,o+(f[(f[o>>2]|0)+-12>>2]|0)|0);m=Bvb(w,295164)|0;m=wk[f[(f[m>>2]|0)+28>>2]&1023](m,10)|0;Cvb(w);rub(o,m)|0;Rtb(o)|0}f[i>>2]=r;p[j>>3]=q;n[d>>2]=e;i=DCa(t)|0;j=k+72|0;d=f[j>>2]|0;if((d|0)!=(i|0)){f[j>>2]=i;if(i|0){y=i+8|0;f[y>>2]=(f[y>>2]|0)+1}if(d|0?(o=d+8|0,y=f[o>>2]|0,f[o>>2]=y-1,(y|0)==1):0)X4(d,1,1);i=f[j>>2]|0}if(!i)i=0;else i=(f[i+24>>2]|0)==0?0:t;f[k+76>>2]=i;j=k+64|0;if(!s)i=0;else i=DCa(s)|0;d=f[j>>2]|0;if((d|0)!=(i|0)){f[j>>2]=i;if(i|0){y=i+8|0;f[y>>2]=(f[y>>2]|0)+1}do if(d|0){o=d+8|0;y=f[o>>2]|0;f[o>>2]=y-1;if((y|0)!=1)break;X4(d,1,1)}while(0);i=f[j>>2]|0}if(!i)i=0;else i=(f[i+24>>2]|0)==0?0:s;f[k+68>>2]=i;i=k+84|0;j=f[i>>2]|0;do if((j|0)!=(v|0)){f[i>>2]=v;if(v|0){y=v+8|0;f[y>>2]=(f[y>>2]|0)+1}if(!j)break;o=j+8|0;y=f[o>>2]|0;f[o>>2]=y-1;if((y|0)!=1)break;X4(j,1,1)}while(0);i=k+88|0;j=f[i>>2]|0;if(!j){d=1;i=k;j=1;break}f[i>>2]=0;o=j+8|0;y=f[o>>2]|0;f[o>>2]=y-1;if((y|0)!=1){d=1;i=k;j=1;break}X4(j,1,1);d=1;i=k;j=1}else{d=0;i=k;j=1}}while(0);sk[f[(f[g>>2]|0)+12>>2]&2047](g)|0;if(d){o=f[a+88>>2]|0;y=o+28|0;sk[f[(f[y>>2]|0)+8>>2]&2047](y)|0;cHa(o,i);sk[f[(f[y>>2]|0)+12>>2]&2047](y)|0}if(!j)l=61}else l=61;if((l|0)==61){if(S0(4)|0){m=Nv(Mv(4)|0,230867,34)|0;y=b[c+11>>0]|0;o=y<<24>>24<0;y=Nv(Nv(m,o?f[c>>2]|0:c,o?f[c+4>>2]|0:y&255)|0,239531,1)|0;Ktb(w,y+(f[(f[y>>2]|0)+-12>>2]|0)|0);o=Bvb(w,295164)|0;o=wk[f[(f[o>>2]|0)+28>>2]&1023](o,10)|0;Cvb(w);rub(y,o)|0;Rtb(y)|0}l=a+88|0;m=(f[l>>2]|0)+28|0;sk[f[(f[m>>2]|0)+8>>2]&2047](m)|0;y=f[h>>2]|0;if(!((y|0)!=0?(f[y+8>>2]|0)!=1:0)){o=LDb(104)|0;CCa(o,1);f[o>>2]=127972;d=o+12|0;b[d>>0]=0;g=o+16|0;i=g;j=i+84|0;do{f[i>>2]=0;i=i+4|0}while((i|0)<(j|0));b[g+84>>0]=0;k=o+8|0;f[k>>2]=(f[k>>2]|0)+1;i=f[h>>2]|0;if(((i|0)!=(o|0)?(f[h>>2]=o,f[k>>2]=(f[k>>2]|0)+1,i|0):0)?(h=i+8|0,y=f[h>>2]|0,f[h>>2]=y-1,(y|0)==1):0)X4(i,1,1);b[d>>0]=1;$Db(g,c)|0;f[o+28>>2]=r;p[o+32>>3]=q;n[o+40>>2]=e;f[o+44>>2]=r;p[o+48>>3]=q;n[o+56>>2]=e;i=DCa(t)|0;j=o+72|0;d=f[j>>2]|0;if((d|0)!=(i|0)){f[j>>2]=i;if(i|0){y=i+8|0;f[y>>2]=(f[y>>2]|0)+1}if(d|0?(h=d+8|0,y=f[h>>2]|0,f[h>>2]=y-1,(y|0)==1):0)X4(d,1,1);i=f[j>>2]|0}if(!i)i=0;else i=(f[i+24>>2]|0)==0?0:t;f[o+76>>2]=i;j=o+64|0;if(!s)i=0;else i=DCa(s)|0;d=f[j>>2]|0;if((d|0)!=(i|0)){f[j>>2]=i;if(i|0){y=i+8|0;f[y>>2]=(f[y>>2]|0)+1}do if(d|0){t=d+8|0;y=f[t>>2]|0;f[t>>2]=y-1;if((y|0)!=1)break;X4(d,1,1)}while(0);i=f[j>>2]|0}if(!i)i=0;else i=(f[i+24>>2]|0)==0?0:s;f[o+68>>2]=i;i=o+84|0;j=f[i>>2]|0;do if((j|0)!=(v|0)){f[i>>2]=v;if(v|0){y=v+8|0;f[y>>2]=(f[y>>2]|0)+1}if(!j)break;v=j+8|0;y=f[v>>2]|0;f[v>>2]=y-1;if((y|0)!=1)break;X4(j,1,1)}while(0);i=o+88|0;j=f[i>>2]|0;do if(j|0){f[i>>2]=0;v=j+8|0;y=f[v>>2]|0;f[v>>2]=y-1;if((y|0)!=1)break;X4(j,1,1)}while(0);cHa(f[l>>2]|0,o);y=f[k>>2]|0;f[k>>2]=y-1;if((y|0)==1)X4(o,1,1)}sk[f[(f[m>>2]|0)+12>>2]&2047](m)|0}g=a+36|0;if(b[g>>0]|0){u=x;return}l=a+12|0;sk[f[(f[l>>2]|0)+8>>2]&2047](l)|0;if(!(b[g>>0]|0)){if(S0(4)|0){y=Nv(Mv(4)|0,230339,28)|0;Ktb(w,y+(f[(f[y>>2]|0)+-12>>2]|0)|0);v=Bvb(w,295164)|0;v=wk[f[(f[v>>2]|0)+28>>2]&1023](v,10)|0;Cvb(w);rub(y,v)|0;Rtb(y)|0}d=a+56|0;i=f[d>>2]|0;k=a+60|0;j=f[k>>2]|0;if((i|0)==(j|0)){j=Wx()|0;j=f[(f[j>>2]|0)+96>>2]|0;i=Wx()|0;wLa(a,j,f[(f[i>>2]|0)+100>>2]|0);i=f[d>>2]|0;j=f[k>>2]|0}b[g>>0]=1;b[a+52>>0]=0;if((i|0)!=(j|0))do{pGa((f[i>>2]|0)+12|0)|0;i=i+4|0}while((i|0)!=(f[k>>2]|0))}sk[f[(f[l>>2]|0)+12>>2]&2047](l)|0;u=x;return}function RKa(a){a=a|0;return 230441}function SKa(a){a=a|0;var b=0;b=LDb(168)|0;tLa(b,a);return b|0}function TKa(a){a=a|0;var c=0,d=0,e=0,g=0,h=0;g=a+56|0;c=f[g>>2]|0;h=a+60|0;if((c|0)!=(f[h>>2]|0))do{f[(f[c>>2]|0)+20>>2]=1;c=c+4|0}while((c|0)!=(f[h>>2]|0));e=f[(f[a+88>>2]|0)+44>>2]|0;c=e+4|0;sk[f[(f[c>>2]|0)+8>>2]&2047](c)|0;d=e+24|0;if(!(b[d>>0]|0)){b[d>>0]=1;rua(e+16|0)|0}sk[f[(f[c>>2]|0)+12>>2]&2047](c)|0;c=f[(f[a+92>>2]|0)+44>>2]|0;d=c+4|0;sk[f[(f[d>>2]|0)+8>>2]&2047](d)|0;e=c+24|0;if(!(b[e>>0]|0)){b[e>>0]=1;rua(c+16|0)|0}sk[f[(f[d>>2]|0)+12>>2]&2047](d)|0;c=f[g>>2]|0;if((c|0)==(f[h>>2]|0)){h=a+52|0;b[h>>0]=1;h=a+36|0;b[h>>0]=0;return 0}do{g=f[c>>2]|0;sk[f[(f[g>>2]|0)+12>>2]&2047](g)|0;c=c+4|0}while((c|0)!=(f[h>>2]|0));h=a+52|0;b[h>>0]=1;h=a+36|0;b[h>>0]=0;return 0}function UKa(a){a=a|0;var b=0;b=f[a+56>>2]|0;a=a+60|0;if((b|0)==(f[a>>2]|0)){a=0;return a|0}while(1){if(mGa((f[b>>2]|0)+12|0)|0){b=1;a=5;break}b=b+4|0;if((b|0)==(f[a>>2]|0)){b=0;a=5;break}}if((a|0)==5)return b|0;return 0}function VKa(a){a=a|0;sLa(f[a+88>>2]|0);sLa(f[a+92>>2]|0);sLa(f[a+96>>2]|0);sLa(f[a+100>>2]|0);a=f[a+120>>2]|0;Nk[f[(f[a>>2]|0)+16>>2]&2047](a);return}function WKa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0;i=u;u=u+16|0;d=i+12|0;c=i+8|0;e=i+4|0;g=i;h=a+40|0;if((h|0)!=(b|0)){f[e>>2]=f[b>>2];f[g>>2]=b+4;f[c>>2]=f[e>>2];f[d>>2]=f[g>>2];t1(h,c,d)}c=f[a+56>>2]|0;d=a+60|0;if((c|0)==(f[d>>2]|0)){u=i;return}do{lGa((f[c>>2]|0)+12|0,h)|0;c=c+4|0}while((c|0)!=(f[d>>2]|0));u=i;return}function XKa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0;k=u;u=u+16|0;h=k;if(S0(4)|0){g=Nv(Mv(4)|0,230303,35)|0;j=b[d+11>>0]|0;i=j<<24>>24<0;j=Nv(g,i?f[d>>2]|0:d,i?f[d+4>>2]|0:j&255)|0;Ktb(h,j+(f[(f[j>>2]|0)+-12>>2]|0)|0);i=Bvb(h,295164)|0;i=wk[f[(f[i>>2]|0)+28>>2]&1023](i,10)|0;Cvb(h);rub(j,i)|0;Rtb(j)|0}e=a+56|0;g=a+60|0;i=(f[g>>2]|0)-(f[e>>2]|0)>>2;l=LDb(48)|0;BCa(l);j=l+12|0;cGa(j);f[l>>2]=126060;f[j>>2]=126088;f[l+20>>2]=0;b[l+24>>0]=0;f[l+28>>2]=a;f[l+32>>2]=c;VDb(l+36|0,d);lGa(j,a+40|0)|0;f[h>>2]=l;c=l+8|0;f[c>>2]=(f[c>>2]|0)+1;c=f[g>>2]|0;if(c>>>0<(f[a+64>>2]|0)>>>0){d=f[h>>2]|0;f[c>>2]=d;if(d){c=d+8|0;f[c>>2]=(f[c>>2]|0)+1;c=f[g>>2]|0}f[g>>2]=c+4}else rLa(e,h);c=f[h>>2]|0;if(c|0?(g=c+8|0,l=f[g>>2]|0,f[g>>2]=l-1,(l|0)==1):0)X4(c,1,1);if(!(b[a+36>>0]|0)){u=k;return i|0}if(S0(4)|0){l=Nv(Mv(4)|0,230339,28)|0;Ktb(h,l+(f[(f[l>>2]|0)+-12>>2]|0)|0);a=Bvb(h,295164)|0;a=wk[f[(f[a>>2]|0)+28>>2]&1023](a,10)|0;Cvb(h);rub(l,a)|0;Rtb(l)|0}pGa(j)|0;u=k;return i|0}function YKa(a,b){a=a|0;b=b|0;if(!b)return;qLa(f[a+96>>2]|0)|0;f[a+84>>2]=f[b+12>>2];return}function ZKa(a){a=a|0;return}function _Ka(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;e=u;u=u+96|0;d=e;if(!b){u=e;return}g=f[a+120>>2]|0;a=d+64|0;BCa(a);f[a>>2]=88164;h=d+76|0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;f[d+88>>2]=2;f[d+92>>2]=0;C1(d,127408,2);f[d>>2]=127432;f[a>>2]=127800;f[d+56>>2]=g;f[d+60>>2]=c;Vk[f[(f[b>>2]|0)+212>>2]&1023](b,d);qC(d,127408);ow(a);u=e;return}function $Ka(a,b){a=a|0;b=b|0;Vk[f[(f[a>>2]|0)+60>>2]&1023](a,b);bLa(a,b);return}function aLa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0.0,i=0,j=0.0,k=0,l=0,m=0,n=0,o=0.0,q=0,r=0,s=0,t=0.0,v=0,w=0,x=0,y=0,z=0,A=0;z=u;u=u+16|0;x=z+12|0;y=z;k=c+12|0;if(!(f[k>>2]|0)){u=z;return}v=fDa(eDa()|0)|0;w=H;s=a+120|0;g=f[s>>2]|0;g=sk[f[(f[g>>2]|0)+20>>2]&2047](g)|0;l=fDa(eDa()|0)|0;m=H;e=eDa()|0;if(m>>>0>w>>>0|(m|0)==(w|0)&l>>>0>v>>>0){r=ZFb(l|0,m|0,v|0,w|0)|0;h=+p[e+8>>3]*(+(r>>>0)+4294967296.0*+(H>>>0))}else{r=ZFb(v|0,w|0,l|0,m|0)|0;h=-(+p[e+8>>3]*(+(r>>>0)+4294967296.0*+(H>>>0)))}t=h*1.0e3;p[36012]=+p[36012]+1.0;p[36013]=t+ +p[36013];if(+p[36014]<t)p[36014]=t;i=a+124|0;e=f[i>>2]|0;if(g>>>0<=e>>>0){u=z;return}e=g-e|0;f[y>>2]=y;q=y+4|0;f[q>>2]=y;r=y+8|0;f[r>>2]=0;h=+p[c+16>>3]+-.1;g=(f[k>>2]|0)+-1|0;if((e|0)>0){n=f[s>>2]|0;Yk[f[(f[n>>2]|0)+24>>2]&1](n,e,h,g,y,0)}e=f[s>>2]|0;e=sk[f[(f[e>>2]|0)+20>>2]&2047](e)|0;e=e-(f[i>>2]|0)|0;if((e|0)>0){n=f[s>>2]|0;Yk[f[(f[n>>2]|0)+24>>2]&1](n,e,h,g,y,1)}k=fDa(eDa()|0)|0;n=H;e=eDa()|0;if(n>>>0>m>>>0|(n|0)==(m|0)&k>>>0>l>>>0){m=ZFb(k|0,n|0,l|0,m|0)|0;h=+p[e+8>>3]*(+(m>>>0)+4294967296.0*+(H>>>0))}else{m=ZFb(l|0,m|0,k|0,n|0)|0;h=-(+p[e+8>>3]*(+(m>>>0)+4294967296.0*+(H>>>0)))}o=h*1.0e3;p[36015]=+p[36015]+1.0;p[36016]=o+ +p[36016];if(+p[36017]<o)p[36017]=o;do if(f[r>>2]|0){if(b[a+116>>0]|0){g=a+88|0;e=(f[g>>2]|0)+28|0;sk[f[(f[e>>2]|0)+8>>2]&2047](e)|0;g=f[g>>2]|0;c=g+72|0;i=f[r>>2]|0;if(i|0){l=f[q>>2]|0;m=f[y>>2]|0;a=m+4|0;A=f[l>>2]|0;f[A+4>>2]=f[a>>2];f[f[a>>2]>>2]=A;A=f[c>>2]|0;f[A+4>>2]=l;f[l>>2]=A;f[c>>2]=m;f[a>>2]=c;a=g+80|0;f[a>>2]=(f[a>>2]|0)+i;f[r>>2]=0}Nk[f[(f[g>>2]|0)+12>>2]&2047](g);sk[f[(f[e>>2]|0)+12>>2]&2047](e)|0;break}e=f[q>>2]|0;A=(f[y>>2]|0)+4|0;a=f[e>>2]|0;f[a+4>>2]=f[A>>2];f[f[A>>2]>>2]=a;f[r>>2]=0;if((e|0)!=(y|0))do{g=e;e=f[e+4>>2]|0;c=f[g+8>>2]|0;if(c|0?(a=c+8|0,A=f[a>>2]|0,f[a>>2]=A-1,(A|0)==1):0)X4(c,1,1);NDb(g)}while((e|0)!=(y|0))}while(0);c=fDa(eDa()|0)|0;i=H;e=eDa()|0;if(i>>>0>n>>>0|(i|0)==(n|0)&c>>>0>k>>>0){A=ZFb(c|0,i|0,k|0,n|0)|0;h=+p[e+8>>3]*(+(A>>>0)+4294967296.0*+(H>>>0))}else{A=ZFb(k|0,n|0,c|0,i|0)|0;h=-(+p[e+8>>3]*(+(A>>>0)+4294967296.0*+(H>>>0)))}j=h*1.0e3;p[36018]=+p[36018]+1.0;p[36019]=j+ +p[36019];if(+p[36020]<j)p[36020]=j;if(S0(4)|0){e=Nv(Mv(4)|0,229917,7)|0;g=f[s>>2]|0;g=Nv(jub(e,sk[f[(f[g>>2]|0)+20>>2]&2047](g)|0)|0,229925,11)|0;e=eDa()|0;if(i>>>0>w>>>0|(i|0)==(w|0)&c>>>0>v>>>0){A=ZFb(c|0,i|0,v|0,w|0)|0;h=+p[e+8>>3]*(+(A>>>0)+4294967296.0*+(H>>>0))}else{A=ZFb(v|0,w|0,c|0,i|0)|0;h=-(+p[e+8>>3]*(+(A>>>0)+4294967296.0*+(H>>>0)))}A=Nv(pub(Nv(pub(g,h*1.0e3)|0,229937,3)|0,t)|0,229941,5)|0;A=Nv(pub(A,+p[36013]/+p[36012])|0,229947,7)|0;A=Nv(pub(Nv(pub(A,+p[36014])|0,229955,3)|0,o)|0,229941,5)|0;A=Nv(pub(A,+p[36016]/+p[36015])|0,229947,7)|0;A=Nv(pub(Nv(pub(A,+p[36017])|0,229959,3)|0,j)|0,229941,5)|0;A=Nv(pub(A,+p[36019]/+p[36018])|0,229947,7)|0;A=pub(A,+p[36020])|0;Ktb(x,A+(f[(f[A>>2]|0)+-12>>2]|0)|0);w=Bvb(x,295164)|0;w=wk[f[(f[w>>2]|0)+28>>2]&1023](w,10)|0;Cvb(x);rub(A,w)|0;Rtb(A)|0}if(f[r>>2]|0?(d=f[q>>2]|0,A=(f[y>>2]|0)+4|0,x=f[d>>2]|0,f[x+4>>2]=f[A>>2],f[f[A>>2]>>2]=x,f[r>>2]=0,(d|0)!=(y|0)):0)do{e=d;d=f[d+4>>2]|0;g=f[e+8>>2]|0;if(g|0?(x=g+8|0,A=f[x>>2]|0,f[x>>2]=A-1,(A|0)==1):0)X4(g,1,1);NDb(e)}while((d|0)!=(y|0));u=z;return}function bLa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0.0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=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,I=0,J=0,K=0;J=u;u=u+32|0;G=J+16|0;I=J;z=J+12|0;A=+p[c+16>>3];w=f[c+12>>2]|0;C=fDa(eDa()|0)|0;D=H;f[I>>2]=I;E=I+4|0;f[E>>2]=I;F=I+8|0;f[F>>2]=0;c=f[a+100>>2]|0;i=c+28|0;sk[f[(f[i>>2]|0)+8>>2]&2047](i)|0;e=c+16|0;s=c+24|0;h=f[s>>2]|0;v=f[F>>2]|0;f[s>>2]=v;f[F>>2]=h;s=e;r=f[s>>2]|0;s=f[s+4>>2]|0;q=I;d=f[q+4>>2]|0;t=e;f[t>>2]=f[q>>2];f[t+4>>2]=d;t=I;f[t>>2]=r;f[t+4>>2]=s;if(!v){f[e>>2]=e;c=c+20|0}else{f[d>>2]=e;c=(f[e>>2]|0)+4|0}f[c>>2]=e;if(!h){f[I>>2]=I;c=E}else{f[f[E>>2]>>2]=I;c=(f[I>>2]|0)+4|0}f[c>>2]=I;sk[f[(f[i>>2]|0)+12>>2]&2047](i)|0;t=fDa(eDa()|0)|0;v=H;c=f[E>>2]|0;d=c;if((I|0)!=(d|0)){m=a+120|0;n=a+136|0;o=a+144|0;q=G+4|0;r=a+152|0;s=a+160|0;l=d;do{k=f[c+8>>2]|0;f[z>>2]=0;if((b[k+100>>0]|0)==0?OFa(k+72|0,z)|0:0){j=(aHa(0)|0)+236|0;if(f[j>>2]|0){e=(aHa(0)|0)+236|0;e=f[e>>2]|0;i=f[k+80>>2]|0;j=e+116|0;f[j>>2]=0;Vk[f[(f[i>>2]|0)+212>>2]&1023](i,e);i=e+80|0;h=e+84|0;cLa(i,f[h>>2]|0);f[e+88>>2]=0;f[i>>2]=h;f[h>>2]=0;h=e+92|0;i=e+96|0;dLa(h,f[i>>2]|0);f[e+100>>2]=0;f[h>>2]=i;f[i>>2]=0;f[j>>2]=0}c=f[z>>2]|0;do if(c){e=bFb(c,58752,61664,0)|0;if(e|0){c=sk[f[(f[e>>2]|0)+248>>2]&2047](e)|0;N4(e,c);d=e+200|0;p[(f[d>>2]|0)+(c<<6)+40>>3]=A;c=sk[f[(f[e>>2]|0)+248>>2]&2047](e)|0;N4(e,c);f[(f[d>>2]|0)+(c<<6)+48>>2]=w;c=sk[f[(f[e>>2]|0)+248>>2]&2047](e)|0;c=(f[d>>2]|0)+(c<<6)+56|0;d=f[c>>2]|0;if(!d){c=1;break}f[c>>2]=0;i=d+8|0;j=f[i>>2]|0;f[i>>2]=j-1;if((j|0)!=1){c=1;break}X4(d,1,1);c=1;break}c=bFb(c,58752,61856,0)|0;if(((c|0)!=0?(x=sk[f[(f[c>>2]|0)+248>>2]&2047](c)|0,x=(f[c+136>>2]|0)+(x<<4)+12|0,y=f[x>>2]|0,(y|0)!=0):0)?(f[x>>2]=0,i=y+8|0,j=f[i>>2]|0,f[i>>2]=j-1,(j|0)==1):0){X4(y,1,1);e=0;c=0}else{e=0;c=0}}else{e=0;c=0}while(0);i=f[z>>2]|0;j=k+80|0;wk[f[(f[i>>2]|0)+228>>2]&1023](i,f[j>>2]|0)|0;if(c){h=f[m>>2]|0;i=f[(f[h>>2]|0)+36>>2]|0;f[G>>2]=0;c=DCa(e)|0;d=f[G>>2]|0;if((d|0)!=(c|0)){f[G>>2]=c;if(c|0){c=c+8|0;f[c>>2]=(f[c>>2]|0)+1}if(d|0?(K=d+8|0,c=f[K>>2]|0,f[K>>2]=c-1,(c|0)==1):0)X4(d,1,1);c=f[G>>2]|0}if(!c)c=0;else c=(f[c+24>>2]|0)==0?0:e;f[q>>2]=c;d=wk[i&1023](h,G)|0;c=f[G>>2]|0;if(c|0?(i=c+8|0,K=f[i>>2]|0,f[i>>2]=K-1,(K|0)==1):0)X4(c,1,1);c=f[(f[a>>2]|0)+52>>2]|0;if(d)B=39;else Zk[c&511](a,e,w)}else{c=f[(f[a>>2]|0)+52>>2]|0;B=39}if((B|0)==39){B=0;Zk[c&511](a,f[j>>2]|0,w)}c=k+88|0;if(f[c>>2]|0?(K=(aHa(0)|0)+212|0,f[K>>2]|0):0){K=(aHa(0)|0)+212|0;eLa(f[K>>2]|0,f[c>>2]|0)}g=A-+p[k+32>>3];if(g<+p[n>>3])p[n>>3]=g;if(g>+p[o>>3])p[o>>3]=g;p[r>>3]=g+ +p[r>>3];f[s>>2]=(f[s>>2]|0)+1}else B=48;if((B|0)==48?(B=0,S0(4)|0):0){K=Nv(Mv(4)|0,229963,94)|0;Ktb(G,K+(f[(f[K>>2]|0)+-12>>2]|0)|0);j=Bvb(G,295164)|0;j=wk[f[(f[j>>2]|0)+28>>2]&1023](j,10)|0;Cvb(G);rub(K,j)|0;Rtb(K)|0}c=k+80|0;d=f[c>>2]|0;if(d|0?(f[c>>2]=0,k=d+8|0,K=f[k>>2]|0,f[k>>2]=K-1,(K|0)==1):0)X4(d,1,1);c=f[z>>2]|0;if(c|0?(k=c+8|0,K=f[k>>2]|0,f[k>>2]=K-1,(K|0)==1):0)X4(c,1,1);c=f[l+4>>2]|0;l=c}while((I|0)!=(l|0))}e=fDa(eDa()|0)|0;h=H;if(!(f[F>>2]|0)){u=J;return}if(S0(4)|0){d=Nv(Mv(4)|0,230058,45)|0;c=eDa()|0;if(v>>>0>D>>>0|(v|0)==(D|0)&t>>>0>C>>>0){K=ZFb(t|0,v|0,C|0,D|0)|0;g=+p[c+8>>3]*(+(K>>>0)+4294967296.0*+(H>>>0))}else{K=ZFb(C|0,D|0,t|0,v|0)|0;g=-(+p[c+8>>3]*(+(K>>>0)+4294967296.0*+(H>>>0)))}d=Nv(pub(d,g*1.0e3)|0,230104,4)|0;c=eDa()|0;if(h>>>0>v>>>0|(h|0)==(v|0)&e>>>0>t>>>0){K=ZFb(e|0,h|0,t|0,v|0)|0;g=+p[c+8>>3]*(+(K>>>0)+4294967296.0*+(H>>>0))}else{K=ZFb(t|0,v|0,e|0,h|0)|0;g=-(+p[c+8>>3]*(+(K>>>0)+4294967296.0*+(H>>>0)))}K=Nv(Nv(pub(d,g*1.0e3)|0,230109,2)|0,230112,9)|0;K=lub(K,f[F>>2]|0)|0;Ktb(G,K+(f[(f[K>>2]|0)+-12>>2]|0)|0);D=Bvb(G,295164)|0;D=wk[f[(f[D>>2]|0)+28>>2]&1023](D,10)|0;Cvb(G);rub(K,D)|0;Rtb(K)|0;Ktb(G,K+(f[(f[K>>2]|0)+-12>>2]|0)|0);D=Bvb(G,295164)|0;D=wk[f[(f[D>>2]|0)+28>>2]&1023](D,10)|0;Cvb(G);rub(K,D)|0;Rtb(K)|0}if(!(f[F>>2]|0)){u=J;return}c=f[E>>2]|0;K=(f[I>>2]|0)+4|0;G=f[c>>2]|0;f[G+4>>2]=f[K>>2];f[f[K>>2]>>2]=G;f[F>>2]=0;if((c|0)==(I|0)){u=J;return}do{d=c;c=f[c+4>>2]|0;e=f[d+8>>2]|0;if(e|0?(G=e+8|0,K=f[G>>2]|0,f[G>>2]=K-1,(K|0)==1):0)X4(e,1,1);NDb(d)}while((c|0)!=(I|0));u=J;return}function cLa(a,b){a=a|0;b=b|0;if(!b)return;else{cLa(a,f[b>>2]|0);cLa(a,f[b+4>>2]|0);NDb(b);return}}function dLa(a,b){a=a|0;b=b|0;if(!b)return;else{dLa(a,f[b>>2]|0);dLa(a,f[b+4>>2]|0);NDb(b);return}}function eLa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;l=u;u=u+16|0;h=l+4|0;i=l;if((b|0)==(a|0)){u=l;return}j=a+24|0;sk[f[(f[j>>2]|0)+8>>2]&2047](j)|0;k=b+24|0;sk[f[(f[k>>2]|0)+8>>2]&2047](k)|0;if(S0(5)|0){g=Nv(Mv(5)|0,230122,38)|0;g=lub(g,f[b+20>>2]|0)|0;Ktb(h,g+(f[(f[g>>2]|0)+-12>>2]|0)|0);e=Bvb(h,295164)|0;e=wk[f[(f[e>>2]|0)+28>>2]&1023](e,10)|0;Cvb(h);rub(g,e)|0;Rtb(g)|0}c=f[b+12>>2]|0;e=b+16|0;if((c|0)!=(e|0)){g=a+16|0;d=a+12|0;while(1){b=c+16|0;f[i>>2]=g;f[h>>2]=f[i>>2];fLa(d,h,b,b)|0;b=f[c+4>>2]|0;if(!b){a=c+8|0;b=f[a>>2]|0;if((f[b>>2]|0)!=(c|0))do{c=f[a>>2]|0;a=c+8|0;b=f[a>>2]|0}while((f[b>>2]|0)!=(c|0))}else while(1){a=f[b>>2]|0;if(!a)break;else b=a}if((b|0)==(e|0))break;else c=b}}sk[f[(f[k>>2]|0)+12>>2]&2047](k)|0;sk[f[(f[j>>2]|0)+12>>2]&2047](j)|0;u=l;return}function fLa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;h=u;u=u+16|0;e=h+12|0;g=h+8|0;i=h;f[i>>2]=f[b>>2];f[e>>2]=f[i>>2];e=gLa(a,e,g,h+4|0,c)|0;b=f[e>>2]|0;if(b|0){i=b;u=h;return i|0}c=LDb(48)|0;VDb(c+16|0,d);b=f[d+12>>2]|0;f[c+28>>2]=b;if(b|0){i=b+8|0;f[i>>2]=(f[i>>2]|0)+1}b=f[d+16>>2]|0;f[c+32>>2]=b;if(b|0){i=b+8|0;f[i>>2]=(f[i>>2]|0)+1}p[c+40>>3]=+p[d+24>>3];b=f[g>>2]|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=b;f[e>>2]=c;b=f[f[a>>2]>>2]|0;if(!b)b=c;else{f[a>>2]=b;b=f[e>>2]|0}Aq(f[a+4>>2]|0,b);i=a+8|0;f[i>>2]=(f[i>>2]|0)+1;i=c;u=h;return i|0}function gLa(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0;i=a+4|0;h=f[b>>2]|0;b=h;if((h|0)!=(i|0)?(g=h+16|0,!(EHa(0,e,g)|0)):0){if(!(EHa(0,g,e)|0)){f[c>>2]=b;f[d>>2]=b;c=d;return c|0}d=f[h+4>>2]|0;if(!d){g=h+8|0;d=f[g>>2]|0;if((f[d>>2]|0)!=(h|0))do{j=f[g>>2]|0;g=j+8|0;d=f[g>>2]|0}while((f[d>>2]|0)!=(j|0))}else while(1){g=f[d>>2]|0;if(!g)break;else d=g}if((d|0)!=(i|0)?!(EHa(0,e,d+16|0)|0):0){b=f[i>>2]|0;if(!b){f[c>>2]=i;j=i;return j|0}g=a+4|0;while(1){d=b+16|0;if(EHa(0,e,d)|0){d=f[b>>2]|0;if(!d){a=42;break}else{g=b;b=d}}else{if(!(EHa(0,d,e)|0)){a=46;break}g=b+4|0;d=f[g>>2]|0;if(!d){a=45;break}else b=d}}if((a|0)==42){f[c>>2]=b;j=b;return j|0}else if((a|0)==45){f[c>>2]=b;j=g;return j|0}else if((a|0)==46){f[c>>2]=b;j=g;return j|0}}if(!(f[h+4>>2]|0)){f[c>>2]=b;j=h+4|0;return j|0}else{f[c>>2]=d;j=d;return j|0}}g=f[h>>2]|0;if((f[a>>2]|0)!=(h|0)){if(!g){b=h;do{j=b;b=f[b+8>>2]|0}while((f[b>>2]|0)==(j|0))}else{b=g;while(1){d=f[b+4>>2]|0;if(!d)break;else b=d}}if(!(EHa(0,b+16|0,e)|0)){b=f[i>>2]|0;if(!b){f[c>>2]=i;j=i;return j|0}g=a+4|0;while(1){d=b+16|0;if(EHa(0,e,d)|0){d=f[b>>2]|0;if(!d){a=18;break}else{g=b;b=d}}else{if(!(EHa(0,d,e)|0)){a=22;break}g=b+4|0;d=f[g>>2]|0;if(!d){a=21;break}else b=d}}if((a|0)==18){f[c>>2]=b;j=b;return j|0}else if((a|0)==21){f[c>>2]=b;j=g;return j|0}else if((a|0)==22){f[c>>2]=b;j=g;return j|0}}}if(!g){f[c>>2]=h;j=h;return j|0}else{f[c>>2]=b;j=b+4|0;return j|0}return 0}function hLa(a){a=a|0;qC(a,127408);ow(a+64|0);return}function iLa(a){a=a|0;qC(a,127408);ow(a+64|0);NDb(a);return}function jLa(a){a=a|0;return 221360}function kLa(a){a=a|0;return 230161}function lLa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0;g=u;u=u+16|0;e=g;f[b+188>>2]=f[a+60>>2];f[e>>2]=0;d=DCa(b)|0;if((d|0)!=0?(f[e>>2]=d,c=d+8|0,f[c>>2]=(f[c>>2]|0)+1,c=f[e>>2]|0,(c|0)!=0):0)c=(f[c+24>>2]|0)==0?0:b;else c=0;f[e+4>>2]=c;d=f[a+56>>2]|0;Vk[f[(f[d>>2]|0)+32>>2]&1023](d,e);switch(f[a+16>>2]|0){case 1:{Vk[f[(f[b>>2]|0)+216>>2]&1023](b,a);break}case 0:break;default:Vk[f[(f[b>>2]|0)+220>>2]&1023](b,a)}c=f[e>>2]|0;if(!c){u=g;return}b=c+8|0;e=f[b>>2]|0;f[b>>2]=e-1;if((e|0)!=1){u=g;return}X4(c,1,1);u=g;return}function mLa(a){a=a|0;a=a+(f[(f[a>>2]|0)+-16>>2]|0)|0;qC(a,127408);ow(a+64|0);return}function nLa(a){a=a|0;a=a+(f[(f[a>>2]|0)+-16>>2]|0)|0;qC(a,127408);ow(a+64|0);NDb(a);return}function oLa(a){a=a|0;return 221360}function pLa(a){a=a|0;return 230161}function qLa(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;p=u;u=u+16|0;i=p;m=a+28|0;sk[f[(f[m>>2]|0)+8>>2]&2047](m)|0;n=a+12|0;o=f[(f[n>>2]|0)+84>>2]|0;j=a+40|0;if((f[j>>2]|0)==(o|0)){o=a+24|0;o=f[o>>2]|0;n=f[m>>2]|0;n=n+12|0;n=f[n>>2]|0;sk[n&2047](m)|0;o=(o|0)==0;u=p;return o|0}c=f[a+20>>2]|0;k=a+16|0;d=c;if((k|0)!=(d|0)){l=a+24|0;do{h=(f[n>>2]|0)+24|0;sk[f[(f[h>>2]|0)+8>>2]&2047](h)|0;e=c+8|0;g=f[e>>2]|0;if((b[g+12>>0]|0)!=0?(o-(f[g+44>>2]|0)|0)>>>0<2:0)c=f[d+4>>2]|0;else{MGa(a,g);if(S0(4)|0){g=Nv(Mv(4)|0,230230,72)|0;g=qub(g,f[e>>2]|0)|0;Ktb(i,g+(f[(f[g>>2]|0)+-12>>2]|0)|0);e=Bvb(i,295164)|0;e=wk[f[(f[e>>2]|0)+28>>2]&1023](e,10)|0;Cvb(i);rub(g,e)|0;Rtb(g)|0}g=d+4|0;e=f[g>>2]|0;q=f[d>>2]|0;f[q+4>>2]=e;f[f[g>>2]>>2]=q;f[l>>2]=(f[l>>2]|0)+-1;d=f[d+8>>2]|0;if(d|0?(g=d+8|0,q=f[g>>2]|0,f[g>>2]=q-1,(q|0)==1):0)X4(d,1,1);NDb(c);c=e}sk[f[(f[h>>2]|0)+12>>2]&2047](h)|0;d=c}while((k|0)!=(d|0))}f[j>>2]=o;Nk[f[(f[a>>2]|0)+12>>2]&2047](a);q=a+24|0;q=f[q>>2]|0;o=f[m>>2]|0;o=o+12|0;o=f[o>>2]|0;sk[o&2047](m)|0;q=(q|0)==0;u=p;return q|0}function rLa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=a+4|0;c=f[m>>2]|0;d=f[a>>2]|0;i=c-d>>2;e=i+1|0;g=d;if(e>>>0>1073741823)KEb(a);l=a+8|0;j=(f[l>>2]|0)-d|0;k=j>>1;e=j>>2>>>0<536870911?(k>>>0<e>>>0?e:k):1073741823;do if(e)if(e>>>0>1073741823){m=mb(8)|0;RDb(m,238482);f[m>>2]=144484;qb(m|0,84192,1464)}else{j=LDb(e<<2)|0;break}else j=0;while(0);d=j+(i<<2)|0;k=j+(e<<2)|0;e=f[b>>2]|0;f[d>>2]=e;if(e){g=e+8|0;f[g>>2]=(f[g>>2]|0)+1;g=f[a>>2]|0;c=f[m>>2]|0}h=d+4|0;e=g;if((c|0)==(g|0))b=e;else{b=i+-1-((c+-4-e|0)>>>2)|0;while(1){c=c+-4|0;e=f[c>>2]|0;f[d+-4>>2]=e;if(e|0){i=e+8|0;f[i>>2]=(f[i>>2]|0)+1}if((c|0)==(g|0))break;else d=d+-4|0}d=j+(b<<2)|0;b=f[a>>2]|0;c=f[m>>2]|0}f[a>>2]=d;f[m>>2]=h;f[l>>2]=k;e=b;if((c|0)!=(e|0))do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(l=d+8|0,m=f[l>>2]|0,f[l>>2]=m-1,(m|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(e|0));if(!b)return;NDb(b);return}function sLa(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0;h=a+28|0;sk[f[(f[h>>2]|0)+8>>2]&2047](h)|0;i=a+16|0;g=a+20|0;c=f[g>>2]|0;d=c;if((i|0)!=(d|0)){e=a+12|0;do{j=(f[e>>2]|0)+24|0;sk[f[(f[j>>2]|0)+8>>2]&2047](j)|0;MGa(a,f[c+8>>2]|0);sk[f[(f[j>>2]|0)+12>>2]&2047](j)|0;c=f[d+4>>2]|0;d=c}while((i|0)!=(d|0))}c=a+24|0;if(f[c>>2]|0?(b=f[g>>2]|0,j=(f[i>>2]|0)+4|0,g=f[b>>2]|0,f[g+4>>2]=f[j>>2],f[f[j>>2]>>2]=g,f[c>>2]=0,(b|0)!=(i|0)):0)do{c=b;b=f[b+4>>2]|0;d=f[c+8>>2]|0;if(d|0?(g=d+8|0,j=f[g>>2]|0,f[g>>2]=j-1,(j|0)==1):0)X4(d,1,1);NDb(c)}while((b|0)!=(i|0));f[a+40>>2]=f[(f[a+12>>2]|0)+84>>2];Nk[f[(f[a>>2]|0)+12>>2]&2047](a);sk[f[(f[h>>2]|0)+12>>2]&2047](h)|0;return}function tLa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0;t=u;u=u+16|0;q=t;CCa(a,1);f[a>>2]=127340;yGa(a+12|0,0);yGa(a+24|0,0);f[a+44>>2]=0;f[a+48>>2]=0;f[a+40>>2]=a+44;r=a+56|0;f[r>>2]=0;n=a+60|0;f[n>>2]=0;o=a+64|0;f[o>>2]=0;yGa(a+72|0,0);d=a+84|0;f[d>>2]=0;j=a+88|0;k=a+92|0;l=a+96|0;m=a+100|0;s=a+120|0;f[s>>2]=0;f[a+132>>2]=0;e=a+164|0;f[e>>2]=0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;g=LDb(32)|0;BCa(g);h=g+12|0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;f[g+24>>2]=2;f[g+28>>2]=0;f[g>>2]=125468;h=f[e>>2]|0;if(((h|0)!=(g|0)?(f[e>>2]=g,i=g+8|0,f[i>>2]=(f[i>>2]|0)+1,h|0):0)?(g=h+8|0,i=f[g>>2]|0,f[g>>2]=i-1,(i|0)==1):0)X4(h,1,1);xO(f[e>>2]|0,230368);b[a+36>>0]=0;b[a+52>>0]=0;b[a+53>>0]=1;b[a+54>>0]=0;f[a+68>>2]=0;f[d>>2]=0;f[a+104>>2]=f[c+104>>2];b[a+108>>0]=b[c+108>>0]|0;b[a+109>>0]=b[c+109>>0]|0;b[a+110>>0]=b[c+110>>0]|0;b[a+111>>0]=b[c+111>>0]|0;f[a+112>>2]=f[c+112>>2];b[a+116>>0]=b[c+116>>0]|0;f[a+124>>2]=f[c+124>>2];b[a+128>>0]=b[c+128>>0]|0;e=LDb(84)|0;f[q>>2]=0;f[q+4>>2]=0;f[q+8>>2]=0;d=LDb(32)|0;f[q>>2]=d;f[q+8>>2]=-2147483616;f[q+4>>2]=16;g=d;h=230407;i=g+16|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[d+16>>0]=0;uLa(e,a,q);d=f[j>>2]|0;if(((d|0)!=(e|0)?(f[j>>2]=e,j=e+8|0,f[j>>2]=(f[j>>2]|0)+1,d|0):0)?(i=d+8|0,j=f[i>>2]|0,f[i>>2]=j-1,(j|0)==1):0)X4(d,1,1);if((b[q+11>>0]|0)<0)NDb(f[q>>2]|0);e=LDb(84)|0;f[q>>2]=0;f[q+4>>2]=0;f[q+8>>2]=0;d=LDb(32)|0;f[q>>2]=d;f[q+8>>2]=-2147483616;f[q+4>>2]=16;g=d;h=230424;i=g+16|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[d+16>>0]=0;uLa(e,a,q);d=f[k>>2]|0;if(((d|0)!=(e|0)?(f[k>>2]=e,k=e+8|0,f[k>>2]=(f[k>>2]|0)+1,d|0):0)?(j=d+8|0,k=f[j>>2]|0,f[j>>2]=k-1,(k|0)==1):0)X4(d,1,1);if((b[q+11>>0]|0)<0)NDb(f[q>>2]|0);d=LDb(44)|0;vLa(d,a);e=f[l>>2]|0;if(((e|0)!=(d|0)?(f[l>>2]=d,l=d+8|0,f[l>>2]=(f[l>>2]|0)+1,e|0):0)?(k=e+8|0,l=f[k>>2]|0,f[k>>2]=l-1,(l|0)==1):0)X4(e,1,1);d=LDb(44)|0;vLa(d,a);e=f[m>>2]|0;if(((e|0)!=(d|0)?(f[m>>2]=d,m=d+8|0,f[m>>2]=(f[m>>2]|0)+1,e|0):0)?(l=e+8|0,m=f[l>>2]|0,f[l>>2]=m-1,(m|0)==1):0)X4(e,1,1);d=f[c+56>>2]|0;h=c+60|0;if((d|0)!=(f[h>>2]|0))do{e=LDb(48)|0;m=f[d>>2]|0;BCa(e);l=e+12|0;cGa(l);f[e>>2]=126060;f[l>>2]=126088;f[e+20>>2]=0;b[e+24>>0]=0;f[e+28>>2]=a;f[e+32>>2]=f[m+32>>2];VDb(e+36|0,m+36|0);f[q>>2]=e;e=e+8|0;f[e>>2]=(f[e>>2]|0)+1;e=f[n>>2]|0;if(e>>>0<(f[o>>2]|0)>>>0){g=f[q>>2]|0;f[e>>2]=g;if(g){e=g+8|0;f[e>>2]=(f[e>>2]|0)+1;e=f[n>>2]|0}f[n>>2]=e+4}else rLa(r,q);e=f[q>>2]|0;if(e|0?(l=e+8|0,m=f[l>>2]|0,f[l>>2]=m-1,(m|0)==1):0)X4(e,1,1);d=d+4|0}while((d|0)!=(f[h>>2]|0));Vk[f[(f[a>>2]|0)+36>>2]&1023](a,c+40|0);d=f[c+120>>2]|0;d=sk[f[(f[d>>2]|0)+12>>2]&2047](d)|0;e=f[s>>2]|0;if((e|0)==(d|0)){c2(100);s=a+136|0;p[s>>3]=1797693134862315708145274.0e284;s=a+144|0;p[s>>3]=-1797693134862315708145274.0e284;s=a+152|0;p[s>>3]=0.0;s=a+160|0;f[s>>2]=0;u=t;return}f[s>>2]=d;if(d|0){s=d+8|0;f[s>>2]=(f[s>>2]|0)+1}if(!e){c2(100);s=a+136|0;p[s>>3]=1797693134862315708145274.0e284;s=a+144|0;p[s>>3]=-1797693134862315708145274.0e284;s=a+152|0;p[s>>3]=0.0;s=a+160|0;f[s>>2]=0;u=t;return}r=e+8|0;s=f[r>>2]|0;f[r>>2]=s-1;if((s|0)!=1){c2(100);s=a+136|0;p[s>>3]=1797693134862315708145274.0e284;s=a+144|0;p[s>>3]=-1797693134862315708145274.0e284;s=a+152|0;p[s>>3]=0.0;s=a+160|0;f[s>>2]=0;u=t;return}X4(e,1,1);c2(100);s=a+136|0;p[s>>3]=1797693134862315708145274.0e284;s=a+144|0;p[s>>3]=-1797693134862315708145274.0e284;s=a+152|0;p[s>>3]=0.0;s=a+160|0;f[s>>2]=0;u=t;return}function uLa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0;vLa(a,c);f[a>>2]=126036;e=a+44|0;f[e>>2]=0;VDb(a+48|0,d);yGa(a+60|0,0);c=a+72|0;f[c>>2]=c;f[a+76>>2]=c;f[a+80>>2]=0;a=LDb(40)|0;c=a+28|0;CCa(c,1);yGa(a+4|0,0);xGa(a+16|0);b[a+24>>0]=0;f[a>>2]=104668;f[c>>2]=104692;c=f[e>>2]|0;if((c|0)==(a|0))return;f[e>>2]=a;e=a+36|0;f[e>>2]=(f[e>>2]|0)+1;if(!c)return;c=c+(f[(f[c>>2]|0)+-12>>2]|0)|0;d=c+8|0;e=f[d>>2]|0;f[d>>2]=e-1;if((e|0)!=1)return;X4(c,1,1);return}function vLa(a,b){a=a|0;b=b|0;BCa(a);f[a>>2]=126012;f[a+12>>2]=b;b=a+16|0;f[b>>2]=b;f[a+20>>2]=b;f[a+24>>2]=0;yGa(a+28|0,0);f[a+40>>2]=-1;return}function wLa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=u;u=u+16|0;o=p;h=f[a+56>>2]|0;i=a+60|0;e=f[i>>2]|0;if((e|0)!=(h|0))do{e=e+-4|0;g=f[e>>2]|0;if(g|0?(m=g+8|0,n=f[m>>2]|0,f[m>>2]=n-1,(n|0)==1):0)X4(g,1,1);f[e>>2]=0}while((e|0)!=(h|0));f[i>>2]=h;k=c>>>0>d>>>0?c-d|0:1;e=(k|0)!=0;if(!d){if(!e){u=p;return}g=o+8|0;c=o+4|0;h=o+11|0;e=0;do{i=f[(f[a>>2]|0)+40>>2]|0;j=LDb(32)|0;f[o>>2]=j;f[g>>2]=-2147483616;f[c>>2]=19;l=j;m=230902;n=l+19|0;do{b[l>>0]=b[m>>0]|0;l=l+1|0;m=m+1|0}while((l|0)<(n|0));b[j+19>>0]=0;xk[i&255](a,0,o)|0;if((b[h>>0]|0)<0)NDb(f[o>>2]|0);e=e+1|0}while(e>>>0<k>>>0);u=p;return}if(e){g=o+8|0;c=o+4|0;h=o+11|0;e=0;do{i=f[(f[a>>2]|0)+40>>2]|0;j=LDb(16)|0;f[o>>2]=j;f[g>>2]=-2147483632;f[c>>2]=15;l=j;m=230922;n=l+15|0;do{b[l>>0]=b[m>>0]|0;l=l+1|0;m=m+1|0}while((l|0)<(n|0));b[j+15>>0]=0;xk[i&255](a,1,o)|0;if((b[h>>0]|0)<0)NDb(f[o>>2]|0);e=e+1|0}while(e>>>0<k>>>0)}g=o+8|0;c=o+4|0;h=o+11|0;e=0;do{i=f[(f[a>>2]|0)+40>>2]|0;j=LDb(32)|0;f[o>>2]=j;f[g>>2]=-2147483616;f[c>>2]=16;l=j;m=230938;n=l+16|0;do{b[l>>0]=b[m>>0]|0;l=l+1|0;m=m+1|0}while((l|0)<(n|0));b[j+16>>0]=0;xk[i&255](a,2,o)|0;if((b[h>>0]|0)<0)NDb(f[o>>2]|0);e=e+1|0}while(e>>>0<d>>>0);u=p;return}function xLa(a){a=a|0;var c=0,d=0,e=0,g=0;f[a>>2]=127972;c=a+92|0;d=f[c>>2]|0;if(d|0?(g=d+8|0,e=f[g>>2]|0,f[g>>2]=e-1,(e|0)==1):0)X4(d,1,1);f[c>>2]=0;c=a+88|0;d=f[c>>2]|0;if(d|0?(e=d+8|0,g=f[e>>2]|0,f[e>>2]=g-1,(g|0)==1):0)X4(d,1,1);f[c>>2]=0;c=a+84|0;d=f[c>>2]|0;if(d|0?(e=d+8|0,g=f[e>>2]|0,f[e>>2]=g-1,(g|0)==1):0)X4(d,1,1);f[c>>2]=0;c=a+80|0;d=f[c>>2]|0;if(d|0?(e=d+8|0,g=f[e>>2]|0,f[e>>2]=g-1,(g|0)==1):0)X4(d,1,1);f[c>>2]=0;c=a+72|0;d=f[c>>2]|0;if(d|0?(e=d+8|0,g=f[e>>2]|0,f[e>>2]=g-1,(g|0)==1):0)X4(d,1,1);f[c>>2]=0;c=a+64|0;d=f[c>>2]|0;if(d|0?(e=d+8|0,g=f[e>>2]|0,f[e>>2]=g-1,(g|0)==1):0)X4(d,1,1);f[c>>2]=0;c=a+16|0;if((b[c+11>>0]|0)>=0){V4(a);return}NDb(f[c>>2]|0);V4(a);return}function yLa(a){a=a|0;xLa(a);NDb(a);return}function zLa(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(!b){f[a>>2]=0;return}b=b+(f[(f[b>>2]|0)+-12>>2]|0)|0;d=b+8|0;c=f[d>>2]|0;f[d>>2]=c-1;if((c|0)!=1){f[a>>2]=0;return}X4(b,1,1);f[a>>2]=0;return}function ALa(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(b|0?(d=b+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(b,1,1);f[a>>2]=0;return}function BLa(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(b|0?(d=b+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(b,1,1);f[a>>2]=0;return}function CLa(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(b|0?(d=b+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(b,1,1);f[a>>2]=0;return}function DLa(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;d=f[a>>2]|0;if(!d)return;e=a+4|0;b=f[e>>2]|0;if((b|0)==(d|0))b=d;else{do{b=b+-4|0;c=f[b>>2]|0;if(c|0?(h=c+8|0,g=f[h>>2]|0,f[h>>2]=g-1,(g|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(d|0));b=f[a>>2]|0}f[e>>2]=d;NDb(b);return}function ELa(a){a=a|0;var b=0;f[a>>2]=13196;b=a+108|0;f[b>>2]=13216;HCa(a+8|0);jtb(a,128032);rsb(b);return}function FLa(a){a=a|0;var b=0;f[a>>2]=13196;b=a+108|0;f[b>>2]=13216;HCa(a+8|0);jtb(a,128032);rsb(b);NDb(a);return}function GLa(a){a=a|0;var b=0;b=a+(f[(f[a>>2]|0)+-12>>2]|0)|0;f[b>>2]=13196;a=b+108|0;f[a>>2]=13216;HCa(b+8|0);jtb(b,128032);rsb(a);return}function HLa(a){a=a|0;var b=0;a=a+(f[(f[a>>2]|0)+-12>>2]|0)|0;f[a>>2]=13196;b=a+108|0;f[b>>2]=13216;HCa(a+8|0);jtb(a,128032);rsb(b);NDb(a);return}function ILa(a){a=a|0;var b=0;f[a>>2]=13244;b=a+104|0;f[b>>2]=13264;HCa(a+4|0);ttb(a,128096);rsb(b);return}function JLa(a){a=a|0;var b=0;f[a>>2]=13244;b=a+104|0;f[b>>2]=13264;HCa(a+4|0);ttb(a,128096);rsb(b);NDb(a);return}function KLa(a){a=a|0;var b=0;b=a+(f[(f[a>>2]|0)+-12>>2]|0)|0;f[b>>2]=13244;a=b+104|0;f[a>>2]=13264;HCa(b+4|0);ttb(b,128096);rsb(a);return}function LLa(a){a=a|0;var b=0;a=a+(f[(f[a>>2]|0)+-12>>2]|0)|0;f[a>>2]=13244;b=a+104|0;f[b>>2]=13264;HCa(a+4|0);ttb(a,128096);rsb(b);NDb(a);return}function MLa(a){a=a|0;var b=0;f[a>>2]=13244;b=a+104|0;f[b>>2]=13264;HCa(a+4|0);ttb(a,128116);rsb(b);return}function NLa(a){a=a|0;var b=0;f[a>>2]=13244;b=a+104|0;f[b>>2]=13264;HCa(a+4|0);ttb(a,128116);rsb(b);NDb(a);return}function OLa(a){a=a|0;var b=0;b=a+(f[(f[a>>2]|0)+-12>>2]|0)|0;f[b>>2]=13244;a=b+104|0;f[a>>2]=13264;HCa(b+4|0);ttb(b,128116);rsb(a);return}function PLa(a){a=a|0;var b=0;a=a+(f[(f[a>>2]|0)+-12>>2]|0)|0;f[a>>2]=13244;b=a+104|0;f[b>>2]=13264;HCa(a+4|0);ttb(a,128116);rsb(b);NDb(a);return}function QLa(a){a=a|0;var c=0,d=0;f[a>>2]=128136;c=a+12|0;f[c>>2]=128164;d=a+32|0;if((b[d+11>>0]|0)<0)NDb(f[d>>2]|0);cua(c);V4(a);return}function RLa(a){a=a|0;var c=0,d=0;f[a>>2]=128136;c=a+12|0;f[c>>2]=128164;d=a+32|0;if((b[d+11>>0]|0)<0)NDb(f[d>>2]|0);cua(c);V4(a);NDb(a);return}function SLa(a){a=a|0;var c=0,d=0,e=0;e=a+12|0;if(!(mGa(e)|0))return 0;b[a+20>>0]=1;switch(f[a+24>>2]|0){case 0:{a=f[(f[(f[a+28>>2]|0)+44>>2]|0)+36>>2]|0;c=a+4|0;sk[f[(f[c>>2]|0)+8>>2]&2047](c)|0;d=a+24|0;if(!(b[d>>0]|0)){b[d>>0]=1;rua(a+16|0)|0}sk[f[(f[c>>2]|0)+12>>2]&2047](c)|0;break}case 1:{a=f[(f[(f[a+28>>2]|0)+44>>2]|0)+36>>2]|0;c=a+4|0;sk[f[(f[c>>2]|0)+8>>2]&2047](c)|0;d=a+24|0;if(!(b[d>>0]|0)){b[d>>0]=1;rua(a+16|0)|0}sk[f[(f[c>>2]|0)+12>>2]&2047](c)|0;break}case 2:{a=f[(f[(f[a+28>>2]|0)+44>>2]|0)+36>>2]|0;c=a+4|0;sk[f[(f[c>>2]|0)+8>>2]&2047](c)|0;d=a+24|0;if(!(b[d>>0]|0)){b[d>>0]=1;rua(a+16|0)|0}sk[f[(f[c>>2]|0)+12>>2]&2047](c)|0;break}default:{}}iGa(e)|0;return 0}function TLa(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=u;u=u+16|0;l=q+4|0;m=q;if(S0(4)|0){k=qub(Nv(Mv(4)|0,231148,31)|0,a)|0;Ktb(l,k+(f[(f[k>>2]|0)+-12>>2]|0)|0);j=Bvb(l,295164)|0;j=wk[f[(f[j>>2]|0)+28>>2]&1023](j,10)|0;Cvb(l);rub(k,j)|0;Rtb(k)|0}switch(f[a+24>>2]|0){case 0:{c=a+28|0;d=f[(f[c>>2]|0)+44>>2]|0;if(!d)d=0;else{k=d+8|0;f[k>>2]=(f[k>>2]|0)+1}break}case 1:{c=a+28|0;d=f[(f[c>>2]|0)+44>>2]|0;if(!d)d=0;else{k=d+8|0;f[k>>2]=(f[k>>2]|0)+1}break}case 2:{c=a+28|0;d=f[(f[c>>2]|0)+44>>2]|0;if(!d)d=0;else{k=d+8|0;f[k>>2]=(f[k>>2]|0)+1}break}default:{c=a+28|0;d=0}}j=d+36|0;k=a+12|0;i=a+20|0;do{a=f[j>>2]|0;e=a+4|0;sk[f[(f[e>>2]|0)+8>>2]&2047](e)|0;if(!(b[a+24>>0]|0))oua(a+16|0,e)|0;sk[f[(f[e>>2]|0)+12>>2]&2047](e)|0;f[l>>2]=0;YLa(d,l);a=f[l>>2]|0;if(a|0){ZLa(m,a+24|0,f[a+60>>2]|0);a=f[m>>2]|0;do if(a|0){e=f[l>>2]|0;h=f[e+40>>2]|0;do if((((h|0)!=0?(f[h+24>>2]|0)!=0:0)?(n=f[e+44>>2]|0,(n|0)!=0):0)?(o=bFb(n,58336,60768,0)|0,(o|0)!=0):0){e=f[e+48>>2]|0;if((e|0)>-1){c4(o,e,a);break}else{d4(o,a);break}}else p=23;while(0);if((p|0)==23){p=0;e=e+52|0;g=f[e>>2]|0;if(((g|0)!=(a|0)?(f[e>>2]=a,h=a+8|0,f[h>>2]=(f[h>>2]|0)+1,g|0):0)?(e=g+8|0,h=f[e>>2]|0,f[e>>2]=h-1,(h|0)==1):0)X4(g,1,1);h=(f[(f[c>>2]|0)+60>>2]|0)+24|0;sk[f[(f[h>>2]|0)+8>>2]&2047](h)|0;e=f[(f[c>>2]|0)+60>>2]|0;g=e+16|0;a=f[g>>2]|0;if((a|0)==(f[e+20>>2]|0))_La(e+12|0,l);else{e=f[l>>2]|0;f[a>>2]=e;if(e){a=e+8|0;f[a>>2]=(f[a>>2]|0)+1;a=f[g>>2]|0}f[g>>2]=a+4}sk[f[(f[h>>2]|0)+12>>2]&2047](h)|0;a=f[m>>2]|0;if(!a)break}g=a+8|0;h=f[g>>2]|0;f[g>>2]=h-1;if((h|0)==1)X4(a,1,1)}while(0)}a=f[l>>2]|0;if(a|0?(g=a+8|0,h=f[g>>2]|0,f[g>>2]=h-1,(h|0)==1):0)X4(a,1,1);if(qGa(k)|0)break}while(!(b[i>>0]|0));if(S0(4)|0){p=Nv(Mv(4)|0,231180,31)|0;Ktb(l,p+(f[(f[p>>2]|0)+-12>>2]|0)|0);o=Bvb(l,295164)|0;o=wk[f[(f[o>>2]|0)+28>>2]&1023](o,10)|0;Cvb(l);rub(p,o)|0;Rtb(p)|0}if(!d){u=q;return}o=d+8|0;p=f[o>>2]|0;f[o>>2]=p-1;if((p|0)!=1){u=q;return}X4(d,1,1);u=q;return}function ULa(a){a=a|0;var c=0,d=0;a=a+-12|0;f[a>>2]=128136;c=a+12|0;f[c>>2]=128164;d=a+32|0;if((b[d+11>>0]|0)<0)NDb(f[d>>2]|0);cua(c);V4(a);return}function VLa(a){a=a|0;var c=0,d=0;a=a+-12|0;f[a>>2]=128136;c=a+12|0;f[c>>2]=128164;d=a+32|0;if((b[d+11>>0]|0)<0)NDb(f[d>>2]|0);cua(c);V4(a);NDb(a);return}function WLa(a){a=a|0;SLa(a+-12|0)|0;return 0}function XLa(a){a=a|0;TLa(a+-12|0);return}function YLa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=u;u=u+16|0;e=n;m=a+24|0;sk[f[(f[m>>2]|0)+8>>2]&2047](m)|0;i=a+12|0;g=f[i>>2]|0;k=a+16|0;d=f[k>>2]|0;if((g|0)==(d|0)){l=f[m>>2]|0;l=l+12|0;l=f[l>>2]|0;sk[l&2047](m)|0;u=n;return}l=a+12|0;$La(g,d,e);if(S0(4)|0){g=Nv(Mv(4)|0,231232,45)|0;g=lub(g,(f[k>>2]|0)-(f[i>>2]|0)>>2)|0;Ktb(e,g+(f[(f[g>>2]|0)+-12>>2]|0)|0);d=Bvb(e,295164)|0;d=wk[f[(f[d>>2]|0)+28>>2]&1023](d,10)|0;Cvb(e);rub(g,d)|0;Rtb(g)|0}d=f[c>>2]|0;e=f[f[i>>2]>>2]|0;if((d|0)!=(e|0)){f[c>>2]=e;if(e|0){g=e+8|0;f[g>>2]=(f[g>>2]|0)+1}if(d|0?(e=d+8|0,g=f[e>>2]|0,f[e>>2]=g-1,(g|0)==1):0)X4(d,1,1)}f[(f[c>>2]|0)+56>>2]=0;e=f[i>>2]|0;d=e+4|0;i=f[k>>2]|0;if((d|0)!=(i|0)){do{g=f[e>>2]|0;c=f[d>>2]|0;if((g|0)!=(c|0)){f[e>>2]=c;if(c|0){c=c+8|0;f[c>>2]=(f[c>>2]|0)+1}if(g|0?(o=g+8|0,c=f[o>>2]|0,f[o>>2]=c-1,(c|0)==1):0)X4(g,1,1)}d=d+4|0;e=e+4|0}while((d|0)!=(i|0));d=f[k>>2]|0;if((d|0)==(e|0))d=e;else{g=e;j=20}}else{g=e;j=20}if((j|0)==20){do{d=d+-4|0;e=f[d>>2]|0;if(e|0?(j=e+8|0,o=f[j>>2]|0,f[j>>2]=o-1,(o|0)==1):0)X4(e,1,1);f[d>>2]=0}while((d|0)!=(g|0));d=g}f[k>>2]=d;g=f[a+36>>2]|0;c=g+4|0;if((f[l>>2]|0)==(d|0))d=0;else d=(b[(f[a+40>>2]|0)+26>>0]|0)==0;e=g+24|0;if((d&1|0)==(h[e>>0]|0)){o=f[m>>2]|0;o=o+12|0;o=f[o>>2]|0;sk[o&2047](m)|0;u=n;return}sk[f[(f[c>>2]|0)+8>>2]&2047](c)|0;if(!d){b[e>>0]=0;sk[f[(f[c>>2]|0)+12>>2]&2047](c)|0;o=f[m>>2]|0;o=o+12|0;o=f[o>>2]|0;sk[o&2047](m)|0;u=n;return}if(!(b[e>>0]|0)){b[e>>0]=1;rua(g+16|0)|0}sk[f[(f[c>>2]|0)+12>>2]&2047](c)|0;o=f[m>>2]|0;o=o+12|0;o=f[o>>2]|0;sk[o&2047](m)|0;u=n;return}function ZLa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=u;u=u+48|0;j=m+32|0;l=m+12|0;k=m;h=aHa(0)|0;if((d|0)!=0?(e=f[d+116>>2]|0,(e|0)!=0):0)al[f[(f[e>>2]|0)+8>>2]&255](l,e,c,d);else g=4;do if((g|0)==4){e=f[h+48>>2]|0;if(!e){iKa(l,h,c,d);break}else{al[f[(f[e>>2]|0)+8>>2]&255](l,e,c,d);break}}while(0);g=l+16|0;e=f[g>>2]|0;if((e|0)!=0?(i=bFb(e,58336,59480,0)|0,(i|0)!=0):0){f[a>>2]=i;k=i+8|0;f[k>>2]=(f[k>>2]|0)+1}else{if(((f[l>>2]|1|0)!=5?S0(2)|0:0)?(h=Nv(Mv(2)|0,231212,19)|0,d=b[c+11>>0]|0,i=d<<24>>24<0,d=Nv(Nv(h,i?f[c>>2]|0:c,i?f[c+4>>2]|0:d&255)|0,228802,2)|0,fHa(k,l),i=k+11|0,c=b[i>>0]|0,h=c<<24>>24<0,c=Nv(d,h?f[k>>2]|0:k,h?f[k+4>>2]|0:c&255)|0,Ktb(j,c+(f[(f[c>>2]|0)+-12>>2]|0)|0),h=Bvb(j,295164)|0,h=wk[f[(f[h>>2]|0)+28>>2]&1023](h,10)|0,Cvb(j),rub(c,h)|0,Rtb(c)|0,(b[i>>0]|0)<0):0)NDb(f[k>>2]|0);f[a>>2]=0}e=f[g>>2]|0;if(e|0?(j=e+8|0,k=f[j>>2]|0,f[j>>2]=k-1,(k|0)==1):0)X4(e,1,1);f[g>>2]=0;e=l+4|0;if((b[e+11>>0]|0)>=0){u=m;return}NDb(f[e>>2]|0);u=m;return}function _La(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=a+4|0;c=f[m>>2]|0;d=f[a>>2]|0;i=c-d>>2;e=i+1|0;g=d;if(e>>>0>1073741823)KEb(a);l=a+8|0;j=(f[l>>2]|0)-d|0;k=j>>1;e=j>>2>>>0<536870911?(k>>>0<e>>>0?e:k):1073741823;do if(e)if(e>>>0>1073741823){m=mb(8)|0;RDb(m,238482);f[m>>2]=144484;qb(m|0,84192,1464)}else{j=LDb(e<<2)|0;break}else j=0;while(0);d=j+(i<<2)|0;k=j+(e<<2)|0;e=f[b>>2]|0;f[d>>2]=e;if(e){g=e+8|0;f[g>>2]=(f[g>>2]|0)+1;g=f[a>>2]|0;c=f[m>>2]|0}h=d+4|0;e=g;if((c|0)==(g|0))b=e;else{b=i+-1-((c+-4-e|0)>>>2)|0;while(1){c=c+-4|0;e=f[c>>2]|0;f[d+-4>>2]=e;if(e|0){i=e+8|0;f[i>>2]=(f[i>>2]|0)+1}if((c|0)==(g|0))break;else d=d+-4|0}d=j+(b<<2)|0;b=f[a>>2]|0;c=f[m>>2]|0}f[a>>2]=d;f[m>>2]=h;f[l>>2]=k;e=b;if((c|0)!=(e|0))do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(l=d+8|0,m=f[l>>2]|0,f[l>>2]=m-1,(m|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(e|0));if(!b)return;NDb(b);return}function $La(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0.0,g=0,h=0,i=0,j=0.0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0,u=0.0;a:while(1){n=b;g=b+-4|0;o=b+-8|0;q=b;t=a;b:while(1){a=n-t|0;d=a>>2;switch(d|0){case 2:{k=4;break a}case 3:{k=6;break a}case 4:{k=14;break a}case 5:{k=26;break a}case 1:case 0:{k=79;break a}default:{}}if((a|0)<28){k=28;break a}m=t+(((d|0)/2|0)<<2)|0;do if((a|0)<=3996){d=f[m>>2]|0;j=+p[d+16>>3];i=f[t>>2]|0;e=+p[i+16>>3];h=f[g>>2]|0;a=+p[h+16>>3]<j;if(!(j<e)){if(!a){a=0;d=m;l=t;break}f[m>>2]=h;f[g>>2]=d;a=f[m>>2]|0;d=f[t>>2]|0;if(!(+p[a+16>>3]<+p[d+16>>3])){a=1;d=m;l=t;break}f[t>>2]=a;f[m>>2]=d;a=2;d=m;l=t;break}if(a){f[t>>2]=h;f[g>>2]=i;a=1;d=m;l=t;break}f[t>>2]=d;f[m>>2]=i;a=f[g>>2]|0;if(+p[a+16>>3]<e){f[m>>2]=a;f[g>>2]=i;a=2;d=m;l=t}else{a=1;d=m;l=t}}else{a=(d|0)/4|0;a=aMa(t,t+(a<<2)|0,m,m+(a<<2)|0,g,c)|0;d=m;l=t}while(0);i=f[l>>2]|0;j=+p[i+16>>3];e=+p[(f[d>>2]|0)+16>>3];if(j<e)d=g;else{if((t|0)==(o|0)){k=43;break}d=o;while(1){h=f[d>>2]|0;if(+p[h+16>>3]<e)break;d=d+-4|0;if((t|0)==(d|0)){k=43;break b}}f[t>>2]=h;f[d>>2]=i;a=a+1|0}h=t+4|0;c:do if(h>>>0<d>>>0)while(1){e=+p[(f[m>>2]|0)+16>>3];while(1){i=f[h>>2]|0;l=h+4|0;if(+p[i+16>>3]<e)h=l;else break}do{d=d+-4|0;k=f[d>>2]|0}while(!(+p[k+16>>3]<e));if(h>>>0>d>>>0){d=m;break c}f[h>>2]=k;f[d>>2]=i;m=(m|0)==(h|0)?d:m;h=l;a=a+1|0}else d=m;while(0);if((h|0)!=(d|0)?(r=f[d>>2]|0,s=f[h>>2]|0,+p[r+16>>3]<+p[s+16>>3]):0){f[h>>2]=r;f[d>>2]=s;a=a+1|0}if(!a){i=cMa(t,h,c)|0;a=h+4|0;if(cMa(a,b,c)|0){k=72;break}if(i){d=2;k=77;break}}m=h;if((m-t|0)>=(q-m|0)){k=76;break}$La(t,h,c);t=h+4|0}d:do if((k|0)==43){a=t+4|0;t=f[g>>2]|0;h=t;if(!(j<+p[t+16>>3])){if((a|0)==(g|0)){k=79;break a}while(1){d=f[a>>2]|0;if(j<+p[d+16>>3])break;a=a+4|0;if((a|0)==(g|0)){k=79;break a}}f[a>>2]=h;f[g>>2]=d;a=a+4|0}if((a|0)==(g|0)){k=79;break a}while(1){e=+p[(f[l>>2]|0)+16>>3];while(1){d=f[a>>2]|0;i=a+4|0;if(e<+p[d+16>>3])break;else a=i}do{g=g+-4|0;h=f[g>>2]|0}while(e<+p[h+16>>3]);if(a>>>0>=g>>>0){d=4;k=77;break d}f[a>>2]=h;f[g>>2]=d;a=i}}else if((k|0)==72){d=i?1:2;a=t;b=i?b:h;k=77}else if((k|0)==76){k=0;$La(h+4|0,b,c);a=t;b=h}while(0);if((k|0)==77)switch(d&7){case 2:case 4:case 0:break;default:{k=79;break a}}}if((k|0)==4){a=b+-4|0;b=f[a>>2]|0;d=f[t>>2]|0;if(!(+p[b+16>>3]<+p[d+16>>3]))return;f[t>>2]=b;f[a>>2]=d;return}else if((k|0)==6){i=t+4|0;g=b+-4|0;b=f[i>>2]|0;j=+p[b+16>>3];h=f[t>>2]|0;e=+p[h+16>>3];d=f[g>>2]|0;a=+p[d+16>>3]<j;if(!(j<e)){if(!a)return;f[i>>2]=d;f[g>>2]=b;a=f[i>>2]|0;b=f[t>>2]|0;if(!(+p[a+16>>3]<+p[b+16>>3]))return;f[t>>2]=a;f[i>>2]=b;return}if(a){f[t>>2]=d;f[g>>2]=h;return}f[t>>2]=b;f[i>>2]=h;a=f[g>>2]|0;if(!(+p[a+16>>3]<e))return;f[i>>2]=a;f[g>>2]=h;return}else if((k|0)==14){n=t+4|0;m=t+8|0;l=b+-4|0;b=f[n>>2]|0;d=b+16|0;u=+p[d>>3];k=f[t>>2]|0;a=k+16|0;e=+p[a>>3];i=f[m>>2]|0;g=i+16|0;j=+p[g>>3];h=j<u;do if(u<e){if(h){f[t>>2]=i;f[m>>2]=k;d=a;b=k;break}f[t>>2]=b;f[n>>2]=k;if(j<e){f[n>>2]=i;f[m>>2]=k;d=a;b=k}else{d=g;b=i}}else if(h){f[n>>2]=i;f[m>>2]=b;if(j<e){f[t>>2]=i;f[n>>2]=k}}else{d=g;b=i}while(0);a=f[l>>2]|0;if(!(+p[a+16>>3]<+p[d>>3]))return;f[m>>2]=a;f[l>>2]=b;a=f[m>>2]|0;e=+p[a+16>>3];b=f[n>>2]|0;if(!(e<+p[b+16>>3]))return;d=a;f[n>>2]=d;f[m>>2]=b;a=f[t>>2]|0;if(!(e<+p[a+16>>3]))return;f[t>>2]=d;f[n>>2]=a;return}else if((k|0)==26){aMa(t,t+4|0,t+8|0,t+12|0,b+-4|0,c)|0;return}else if((k|0)==28){bMa(t,b,c);return}else if((k|0)==79)return}function aMa(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0.0,l=0,m=0,n=0,o=0,q=0.0;m=f[b>>2]|0;l=m+16|0;q=+p[l>>3];n=f[a>>2]|0;i=n+16|0;k=+p[i>>3];h=f[c>>2]|0;j=h+16|0;g=+p[j>>3]<q;do if(q<k){if(g){f[a>>2]=h;f[c>>2]=n;o=1;h=n;break}f[a>>2]=m;f[b>>2]=n;h=f[c>>2]|0;g=h+16|0;if(+p[g>>3]<k){f[b>>2]=h;f[c>>2]=n;o=2;h=n}else{o=1;i=g}}else if(g){f[b>>2]=h;f[c>>2]=m;g=f[b>>2]|0;h=f[a>>2]|0;if(+p[g+16>>3]<+p[h+16>>3]){f[a>>2]=g;f[b>>2]=h;h=f[c>>2]|0;o=2;i=h+16|0}else{o=1;i=l;h=m}}else{o=0;i=j}while(0);g=f[d>>2]|0;if(+p[g+16>>3]<+p[i>>3]){f[c>>2]=g;f[d>>2]=h;g=o+1|0;h=f[c>>2]|0;i=f[b>>2]|0;if(+p[h+16>>3]<+p[i+16>>3]){f[b>>2]=h;f[c>>2]=i;g=f[b>>2]|0;h=f[a>>2]|0;if(+p[g+16>>3]<+p[h+16>>3]){f[a>>2]=g;f[b>>2]=h;i=o+3|0}else i=o+2|0}else i=g}else i=o;g=f[e>>2]|0;h=f[d>>2]|0;if(!(+p[g+16>>3]<+p[h+16>>3])){b=i;return b|0}f[d>>2]=g;f[e>>2]=h;g=f[d>>2]|0;h=f[c>>2]|0;if(!(+p[g+16>>3]<+p[h+16>>3])){b=i+1|0;return b|0}f[c>>2]=g;f[d>>2]=h;g=f[c>>2]|0;h=f[b>>2]|0;if(!(+p[g+16>>3]<+p[h+16>>3])){b=i+2|0;return b|0}f[b>>2]=g;f[c>>2]=h;g=f[b>>2]|0;h=f[a>>2]|0;if(!(+p[g+16>>3]<+p[h+16>>3])){b=i+3|0;return b|0}f[a>>2]=g;f[b>>2]=h;b=i+4|0;return b|0}function bMa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,n=0,o=0,q=0.0;n=a+8|0;k=a+4|0;l=f[k>>2]|0;q=+p[l+16>>3];m=f[a>>2]|0;h=+p[m+16>>3];d=f[n>>2]|0;i=+p[d+16>>3];c=i<q;e=l;g=d;j=m;do if(q<h){if(c){f[a>>2]=g;f[n>>2]=j;d=m;break}f[a>>2]=e;f[k>>2]=j;if(i<h){f[k>>2]=g;f[n>>2]=j;d=m}}else if(c){f[k>>2]=g;f[n>>2]=e;if(i<h){f[a>>2]=g;f[k>>2]=j;d=l}else d=l}while(0);c=a+12|0;if((c|0)==(b|0))return;m=c;c=n;while(1){k=f[m>>2]|0;j=k+16|0;if(+p[j>>3]<+p[d+16>>3]){l=(k|0)==0;if(!l){d=k+8|0;f[d>>2]=(f[d>>2]|0)+1;d=f[c>>2]|0}g=m;while(1){e=f[g>>2]|0;if((e|0)!=(d|0)){f[g>>2]=d;if(d|0){n=d+8|0;f[n>>2]=(f[n>>2]|0)+1}if(e|0?(g=e+8|0,n=f[g>>2]|0,f[g>>2]=n-1,(n|0)==1):0)X4(e,1,1)}if((c|0)==(a|0)){c=a;break}e=c+-4|0;d=f[e>>2]|0;if(!(+p[j>>3]<+p[d+16>>3])){o=24;break}else{g=c;c=e}}if((o|0)==24)o=0;d=f[c>>2]|0;if((d|0)!=(k|0)){f[c>>2]=k;if(!l){n=k+8|0;f[n>>2]=(f[n>>2]|0)+1}if(d|0?(j=d+8|0,n=f[j>>2]|0,f[j>>2]=n-1,(n|0)==1):0)X4(d,1,1)}if(!l?(l=k+8|0,n=f[l>>2]|0,f[l>>2]=n-1,(n|0)==1):0)X4(k,1,1)}c=m+4|0;if((c|0)==(b|0))break;d=f[m>>2]|0;n=m;m=c;c=n}return}function cMa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0.0,h=0,i=0,j=0,k=0.0,l=0,m=0,n=0,o=0,q=0.0;switch(b-a>>2|0){case 2:{d=b+-4|0;e=f[d>>2]|0;c=f[a>>2]|0;if(!(+p[e+16>>3]<+p[c+16>>3])){a=1;return a|0}f[a>>2]=e;f[d>>2]=c;a=1;return a|0}case 3:{j=a+4|0;h=b+-4|0;d=f[j>>2]|0;k=+p[d+16>>3];i=f[a>>2]|0;g=+p[i+16>>3];e=f[h>>2]|0;c=+p[e+16>>3]<k;if(!(k<g)){if(!c){a=1;return a|0}f[j>>2]=e;f[h>>2]=d;c=f[j>>2]|0;d=f[a>>2]|0;if(!(+p[c+16>>3]<+p[d+16>>3])){a=1;return a|0}f[a>>2]=c;f[j>>2]=d;a=1;return a|0}if(c){f[a>>2]=e;f[h>>2]=i;a=1;return a|0}f[a>>2]=d;f[j>>2]=i;c=f[h>>2]|0;if(!(+p[c+16>>3]<g)){a=1;return a|0}f[j>>2]=c;f[h>>2]=i;a=1;return a|0}case 4:{o=a+4|0;n=a+8|0;m=b+-4|0;d=f[o>>2]|0;e=d+16|0;q=+p[e>>3];l=f[a>>2]|0;c=l+16|0;g=+p[c>>3];j=f[n>>2]|0;h=j+16|0;k=+p[h>>3];i=k<q;do if(q<g){if(i){f[a>>2]=j;f[n>>2]=l;e=c;d=l;break}f[a>>2]=d;f[o>>2]=l;if(k<g){f[o>>2]=j;f[n>>2]=l;e=c;d=l}else{e=h;d=j}}else if(i){f[o>>2]=j;f[n>>2]=d;if(k<g){f[a>>2]=j;f[o>>2]=l}}else{e=h;d=j}while(0);c=f[m>>2]|0;if(!(+p[c+16>>3]<+p[e>>3])){a=1;return a|0}f[n>>2]=c;f[m>>2]=d;c=f[n>>2]|0;g=+p[c+16>>3];d=f[o>>2]|0;if(!(g<+p[d+16>>3])){a=1;return a|0}e=c;f[o>>2]=e;f[n>>2]=d;c=f[a>>2]|0;if(!(g<+p[c+16>>3])){a=1;return a|0}f[a>>2]=e;f[o>>2]=c;a=1;return a|0}case 5:{aMa(a,a+4|0,a+8|0,a+12|0,b+-4|0,c)|0;a=1;return a|0}case 1:case 0:{a=1;return a|0}default:{d=a+8|0;l=a+4|0;m=f[l>>2]|0;q=+p[m+16>>3];n=f[a>>2]|0;k=+p[n+16>>3];e=f[d>>2]|0;g=+p[e+16>>3];c=g<q;h=m;i=e;j=n;do if(q<k){if(c){f[a>>2]=i;f[d>>2]=j;e=n;break}f[a>>2]=h;f[l>>2]=j;if(g<k){f[l>>2]=i;f[d>>2]=j;e=n}}else if(c){f[l>>2]=i;f[d>>2]=h;if(g<k){f[a>>2]=i;f[l>>2]=j;e=m}else e=m}while(0);c=a+12|0;if((c|0)==(b|0)){a=1;return a|0}n=c;c=0;while(1){l=f[n>>2]|0;j=l+16|0;if(+p[j>>3]<+p[e+16>>3]){m=(l|0)==0;if(!m){e=l+8|0;f[e>>2]=(f[e>>2]|0)+1;e=f[d>>2]|0}i=n;while(1){h=f[i>>2]|0;if((h|0)!=(e|0)){f[i>>2]=e;if(e|0){i=e+8|0;f[i>>2]=(f[i>>2]|0)+1}if(h|0?(e=h+8|0,i=f[e>>2]|0,f[e>>2]=i-1,(i|0)==1):0)X4(h,1,1)}if((d|0)==(a|0)){d=a;break}h=d+-4|0;e=f[h>>2]|0;if(!(+p[j>>3]<+p[e+16>>3])){o=47;break}else{i=d;d=h}}if((o|0)==47)o=0;e=f[d>>2]|0;if((e|0)!=(l|0)){f[d>>2]=l;if(!m){j=l+8|0;f[j>>2]=(f[j>>2]|0)+1}if(e|0?(i=e+8|0,j=f[i>>2]|0,f[i>>2]=j-1,(j|0)==1):0)X4(e,1,1)}c=c+1|0;d=(c|0)==8;if(!m?(j=l+8|0,m=f[j>>2]|0,f[j>>2]=m-1,(m|0)==1):0)X4(l,1,1);if(d)break}d=n+4|0;if((d|0)==(b|0)){c=1;o=61;break}e=f[n>>2]|0;m=n;n=d;d=m}if((o|0)==61)return c|0;a=(n+4|0)==(b|0);return a|0}}return 0}function dMa(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;f[a>>2]=128192;qMa(a)|0;b=a+60|0;c=f[b>>2]|0;if(c|0?(e=c+8|0,g=f[e>>2]|0,f[e>>2]=g-1,(g|0)==1):0)X4(c,1,1);f[b>>2]=0;d=a+48|0;g=f[d>>2]|0;if(g|0){e=a+52|0;b=f[e>>2]|0;if((b|0)==(g|0))b=g;else{do{b=b+-4|0;c=f[b>>2]|0;if(c|0?(i=c+8|0,h=f[i>>2]|0,f[i>>2]=h-1,(h|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(g|0));b=f[d>>2]|0}f[e>>2]=g;NDb(b)}b=a+44|0;c=f[b>>2]|0;if(c|0?(h=c+8|0,i=f[h>>2]|0,f[h>>2]=i-1,(i|0)==1):0)X4(c,1,1);f[b>>2]=0;d8(a+32|0);d8(a+12|0);V4(a);return}function eMa(a){a=a|0;dMa(a);NDb(a);return}function fMa(a){a=a|0;return +(+p[a+64>>3])}function gMa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(!d)b=0;else b=bFb(d,63152,74616,0)|0;ZLa(a,c,b);return}function hMa(a,c,d,e,g,h,i,j){a=a|0;c=c|0;d=d|0;e=e|0;g=+g;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0;if(!((j|0)!=0?(l=bFb(j,63152,74616,0)|0,(l|0)!=0):0)){l=(aHa(0)|0)+160|0;l=f[l>>2]|0}h=f[i>>2]|0;if((h|0?bFb(h,63152,75624,0)|0:0)?(f[h+8>>2]|0)>1:0)return;r=LDb(64)|0;CCa(r,1);f[r>>2]=128240;n=r+48|0;h=r+12|0;j=h+36|0;do{f[h>>2]=0;h=h+4|0}while((h|0)<(j|0));f[n>>2]=-1;f[r+52>>2]=0;m=r+56|0;f[m>>2]=0;o=r+60|0;f[o>>2]=0;q=r+8|0;f[q>>2]=(f[q>>2]|0)+1;p[r+16>>3]=g;$Db(r+24|0,c)|0;j=r+40|0;if(!d)h=0;else h=DCa(d)|0;c=f[j>>2]|0;if((c|0)!=(h|0)){f[j>>2]=h;if(h|0){h=h+8|0;f[h>>2]=(f[h>>2]|0)+1}if(c|0?(t=c+8|0,h=f[t>>2]|0,f[t>>2]=h-1,(h|0)==1):0)X4(c,1,1);h=f[j>>2]|0}if(!h)h=0;else h=(f[h+24>>2]|0)==0?0:d;f[r+44>>2]=h;f[n>>2]=e;j=a+44|0;f[m>>2]=f[j>>2];h=f[o>>2]|0;if((h|0)!=(l|0)){f[o>>2]=l;if(l|0){t=l+8|0;f[t>>2]=(f[t>>2]|0)+1}if(h|0?(e=h+8|0,t=f[e>>2]|0,f[e>>2]=t-1,(t|0)==1):0)X4(h,1,1)}h=f[i>>2]|0;if(((h|0)!=(r|0)?(f[i>>2]=r,f[q>>2]=(f[q>>2]|0)+1,h|0):0)?(i=h+8|0,t=f[i>>2]|0,f[i>>2]=t-1,(t|0)==1):0)X4(h,1,1);mMa(f[j>>2]|0,r);h=a+24|0;if(!(b[h>>0]|0)){j=a+12|0;sk[f[(f[j>>2]|0)+8>>2]&2047](j)|0;if((b[h>>0]|0)==0?(b[h>>0]=1,b[a+25>>0]=0,k=f[a+48>>2]|0,s=a+52|0,(k|0)!=(f[s>>2]|0)):0)do{pGa((f[k>>2]|0)+12|0)|0;k=k+4|0}while((k|0)!=(f[s>>2]|0));sk[f[(f[j>>2]|0)+12>>2]&2047](j)|0}t=f[q>>2]|0;f[q>>2]=t-1;if((t|0)!=1)return;X4(r,1,1);return}function iMa(a){a=a|0;a=f[a+60>>2]|0;return (f[a+12>>2]|0)!=(f[a+16>>2]|0)|0}function jMa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;j=u;u=u+16|0;d=j;a=a+60|0;i=(f[a>>2]|0)+24|0;sk[f[(f[i>>2]|0)+8>>2]&2047](i)|0;b=f[a>>2]|0;c=f[b+12>>2]|0;b=b+16|0;if((c|0)==(f[b>>2]|0)){h=b;g=c;f[h>>2]=g;h=f[i>>2]|0;h=h+12|0;h=f[h>>2]|0;sk[h&2047](i)|0;u=j;return}do{b=f[c>>2]|0;k=f[b+40>>2]|0;if((((k|0)!=0?(f[k+24>>2]|0)!=0:0)?(e=f[b+44>>2]|0,(e|0)!=0):0)?(g=bFb(e,58336,63560,0)|0,(g|0)!=0):0){k=f[b+48>>2]|0;Zk[f[(f[g>>2]|0)+232>>2]&511](g,(k|0)>0?k:0,f[b+52>>2]|0)}else h=15;if((h|0)==15?(h=0,S0(3)|0):0){k=Nv(Mv(3)|0,231312,86)|0;Ktb(d,k+(f[(f[k>>2]|0)+-12>>2]|0)|0);b=Bvb(d,295164)|0;b=wk[f[(f[b>>2]|0)+28>>2]&1023](b,10)|0;Cvb(d);rub(k,b)|0;Rtb(k)|0}c=c+4|0;b=f[a>>2]|0}while((c|0)!=(f[b+16>>2]|0));a=b+16|0;b=f[b+12>>2]|0;if((c|0)==(b|0)){k=a;h=b;f[k>>2]=h;k=f[i>>2]|0;k=k+12|0;k=f[k>>2]|0;sk[k&2047](i)|0;u=j;return}do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(h=d+8|0,k=f[h>>2]|0,f[h>>2]=k-1,(k|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(b|0));f[a>>2]=b;k=f[i>>2]|0;k=k+12|0;k=f[k>>2]|0;sk[k&2047](i)|0;u=j;return}function kMa(a,b){a=a|0;b=b|0;if(!b)return;f[a+28>>2]=f[b+12>>2];return}function lMa(a){a=a|0;return}function mMa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0;l=u;u=u+16|0;g=l;k=a+24|0;sk[f[(f[k>>2]|0)+8>>2]&2047](k)|0;i=a+12|0;f[g>>2]=c;if(c|0){j=c+8|0;f[j>>2]=(f[j>>2]|0)+1}j=a+16|0;d=f[j>>2]|0;if(d>>>0<(f[a+20>>2]|0)>>>0){e=f[g>>2]|0;f[d>>2]=e;if(e){d=e+8|0;f[d>>2]=(f[d>>2]|0)+1;d=f[j>>2]|0}f[j>>2]=d+4}else nMa(i,g);d=f[g>>2]|0;if(d|0?(m=d+8|0,e=f[m>>2]|0,f[m>>2]=e-1,(e|0)==1):0)X4(d,1,1);f[c+56>>2]=a;if(S0(4)|0){n=Nv(Mv(4)|0,231399,27)|0;d=c+24|0;m=b[d+11>>0]|0;e=m<<24>>24<0;m=Nv(Nv(n,e?f[d>>2]|0:d,e?f[c+28>>2]|0:m&255)|0,231427,10)|0;m=lub(m,(f[j>>2]|0)-(f[i>>2]|0)>>2)|0;Ktb(g,m+(f[(f[m>>2]|0)+-12>>2]|0)|0);i=Bvb(g,295164)|0;i=wk[f[(f[i>>2]|0)+28>>2]&1023](i,10)|0;Cvb(g);rub(m,i)|0;Rtb(m)|0}c=f[a+36>>2]|0;g=c+4|0;if((f[a+12>>2]|0)==(f[j>>2]|0))d=0;else d=(b[(f[a+40>>2]|0)+26>>0]|0)==0;e=c+24|0;if((d&1|0)==(h[e>>0]|0)){n=f[k>>2]|0;n=n+12|0;n=f[n>>2]|0;sk[n&2047](k)|0;u=l;return}sk[f[(f[g>>2]|0)+8>>2]&2047](g)|0;if(!d){b[e>>0]=0;sk[f[(f[g>>2]|0)+12>>2]&2047](g)|0;n=f[k>>2]|0;n=n+12|0;n=f[n>>2]|0;sk[n&2047](k)|0;u=l;return}if(!(b[e>>0]|0)){b[e>>0]=1;rua(c+16|0)|0}sk[f[(f[g>>2]|0)+12>>2]&2047](g)|0;n=f[k>>2]|0;n=n+12|0;n=f[n>>2]|0;sk[n&2047](k)|0;u=l;return}function nMa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=a+4|0;c=f[m>>2]|0;d=f[a>>2]|0;i=c-d>>2;e=i+1|0;g=d;if(e>>>0>1073741823)KEb(a);l=a+8|0;j=(f[l>>2]|0)-d|0;k=j>>1;e=j>>2>>>0<536870911?(k>>>0<e>>>0?e:k):1073741823;do if(e)if(e>>>0>1073741823){m=mb(8)|0;RDb(m,238482);f[m>>2]=144484;qb(m|0,84192,1464)}else{j=LDb(e<<2)|0;break}else j=0;while(0);d=j+(i<<2)|0;k=j+(e<<2)|0;e=f[b>>2]|0;f[d>>2]=e;if(e){g=e+8|0;f[g>>2]=(f[g>>2]|0)+1;g=f[a>>2]|0;c=f[m>>2]|0}h=d+4|0;e=g;if((c|0)==(g|0))b=e;else{b=i+-1-((c+-4-e|0)>>>2)|0;while(1){c=c+-4|0;e=f[c>>2]|0;f[d+-4>>2]=e;if(e|0){i=e+8|0;f[i>>2]=(f[i>>2]|0)+1}if((c|0)==(g|0))break;else d=d+-4|0}d=j+(b<<2)|0;b=f[a>>2]|0;c=f[m>>2]|0}f[a>>2]=d;f[m>>2]=h;f[l>>2]=k;e=b;if((c|0)!=(e|0))do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(l=d+8|0,m=f[l>>2]|0,f[l>>2]=m-1,(m|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(e|0));if(!b)return;NDb(b);return}function oMa(a){a=a|0;var c=0,d=0,e=0,g=0;f[a>>2]=128240;c=a+60|0;d=f[c>>2]|0;if(d|0?(g=d+8|0,e=f[g>>2]|0,f[g>>2]=e-1,(e|0)==1):0)X4(d,1,1);f[c>>2]=0;c=a+52|0;d=f[c>>2]|0;if(d|0?(e=d+8|0,g=f[e>>2]|0,f[e>>2]=g-1,(g|0)==1):0)X4(d,1,1);f[c>>2]=0;c=a+40|0;d=f[c>>2]|0;if(d|0?(e=d+8|0,g=f[e>>2]|0,f[e>>2]=g-1,(g|0)==1):0)X4(d,1,1);f[c>>2]=0;c=a+36|0;d=f[c>>2]|0;if(d|0?(e=d+8|0,g=f[e>>2]|0,f[e>>2]=g-1,(g|0)==1):0)X4(d,1,1);f[c>>2]=0;c=a+24|0;if((b[c+11>>0]|0)>=0){V4(a);return}NDb(f[c>>2]|0);V4(a);return}function pMa(a){a=a|0;oMa(a);NDb(a);return}function qMa(a){a=a|0;var c=0,d=0,e=0,g=0,h=0;g=a+48|0;c=f[g>>2]|0;h=a+52|0;d=f[h>>2]|0;if((c|0)!=(d|0))do{b[(f[c>>2]|0)+20>>0]=1;c=c+4|0}while((c|0)!=(d|0));e=f[(f[a+44>>2]|0)+36>>2]|0;c=e+4|0;sk[f[(f[c>>2]|0)+8>>2]&2047](c)|0;d=e+24|0;if(!(b[d>>0]|0)){b[d>>0]=1;rua(e+16|0)|0}sk[f[(f[c>>2]|0)+12>>2]&2047](c)|0;c=f[g>>2]|0;if((c|0)==(f[h>>2]|0)){h=a+25|0;b[h>>0]=1;h=a+24|0;b[h>>0]=0;return 0}do{g=f[c>>2]|0;sk[f[(f[g>>2]|0)+12>>2]&2047](g)|0;c=c+4|0}while((c|0)!=(f[h>>2]|0));h=a+25|0;b[h>>0]=1;h=a+24|0;b[h>>0]=0;return 0}function rMa(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(b|0?(d=b+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(b,1,1);f[a>>2]=0;return}function sMa(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;d=f[a>>2]|0;if(!d)return;e=a+4|0;b=f[e>>2]|0;if((b|0)==(d|0))b=d;else{do{b=b+-4|0;c=f[b>>2]|0;if(c|0?(h=c+8|0,g=f[h>>2]|0,f[h>>2]=g-1,(g|0)==1):0)X4(c,1,1);f[b>>2]=0}while((b|0)!=(d|0));b=f[a>>2]|0}f[e>>2]=d;NDb(b);return}function tMa(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(b|0?(d=b+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(b,1,1);f[a>>2]=0;return}function uMa(a){a=a|0;var c=0,d=0,e=0,g=0;f[a>>2]=128260;c=f[a+128>>2]|0;if(c|0)Nk[f[(f[c>>2]|0)+4>>2]&2047](c);c=a+124|0;d=f[c>>2]|0;if(d|0?(e=d+8|0,g=f[e>>2]|0,f[e>>2]=g-1,(g|0)==1):0)X4(d,1,1);f[c>>2]=0;c=a+120|0;d=f[c>>2]|0;if(d|0?(e=d+8|0,g=f[e>>2]|0,f[e>>2]=g-1,(g|0)==1):0)X4(d,1,1);f[c>>2]=0;c=a+116|0;d=f[c>>2]|0;if(d|0?(e=d+8|0,g=f[e>>2]|0,f[e>>2]=g-1,(g|0)==1):0)X4(d,1,1);f[c>>2]=0;c=a+112|0;d=f[c>>2]|0;if(d|0?(e=d+8|0,g=f[e>>2]|0,f[e>>2]=g-1,(g|0)==1):0)X4(d,1,1);f[c>>2]=0;d=a+100|0;e=f[d>>2]|0;if(e|0){g=a+104|0;c=f[g>>2]|0;if((c|0)==(e|0))c=e;else{do{c=c+-12|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0)}while((c|0)!=(e|0));c=f[d>>2]|0}f[g>>2]=e;NDb(c)}gJa(a+80|0,f[a+84>>2]|0);wMa(a+68|0,f[a+72>>2]|0);xMa(a+56|0,f[a+60>>2]|0);c=a+40|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);c=a+24|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);c=a+4|0;if((b[c+11>>0]|0)>=0)return;NDb(f[c>>2]|0);return}function vMa(a){a=a|0;uMa(a);NDb(a);return}function wMa(a,b){a=a|0;b=b|0;var c=0,d=0;if(!b)return;wMa(a,f[b>>2]|0);wMa(a,f[b+4>>2]|0);a=f[b+20>>2]|0;if(a|0?(d=a+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(a,1,1);NDb(b);return}function xMa(a,b){a=a|0;b=b|0;var c=0,d=0;if(!b)return;xMa(a,f[b>>2]|0);xMa(a,f[b+4>>2]|0);a=f[b+20>>2]|0;if(a|0?(d=a+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(a,1,1);NDb(b);return}function yMa(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;i=u;u=u+16|0;e=i+4|0;g=i;f[a>>2]=128276;if(!(aHa(0)|0))b=a+4|0;else{h=(aHa(0)|0)+240|0;h=f[h>>2]|0;b=a+4|0;a=f[b>>2]|0;if(!a){h=b;f[h>>2]=0;u=i;return}c=h+12|0;sk[f[(f[c>>2]|0)+8>>2]&2047](c)|0;d=h+24|0;a=AMa(d,a+28|0)|0;if((a|0)!=(h+28|0)){f[g>>2]=a;f[e>>2]=f[g>>2];BMa(d,e)|0}sk[f[(f[c>>2]|0)+12>>2]&2047](c)|0}a=f[b>>2]|0;if(!a){h=b;f[h>>2]=0;u=i;return}g=a+8|0;h=f[g>>2]|0;f[g>>2]=h-1;if((h|0)!=1){h=b;f[h>>2]=0;u=i;return}X4(a,1,1);h=b;f[h>>2]=0;u=i;return}function zMa(a){a=a|0;yMa(a);NDb(a);return}function AMa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=a+4|0;d=f[m>>2]|0;do if(d|0){l=b[c+11>>0]|0;k=l<<24>>24<0;l=k?f[c+4>>2]|0:l&255;k=k?f[c>>2]|0:c;a=m;do{e=d+16|0;h=b[e+11>>0]|0;g=h<<24>>24<0;h=g?f[d+20>>2]|0:h&255;i=l>>>0<h>>>0;c=i?l:h;if((c|0)!=0?(j=ipb(g?f[e>>2]|0:e,k,c)|0,(j|0)!=0):0)c=j;else c=h>>>0<l>>>0?-1:i&1;i=(c|0)<0;a=i?a:d;d=f[(i?d+4|0:d)>>2]|0}while((d|0)!=0);if((a|0)!=(m|0)){d=a+16|0;g=b[d+11>>0]|0;e=g<<24>>24<0;g=e?f[a+20>>2]|0:g&255;c=g>>>0<l>>>0?g:l;if(c|0?(n=ipb(k,e?f[d>>2]|0:d,c)|0,n|0):0){if((n|0)<0)break;return a|0}if(l>>>0>=g>>>0){n=a;return n|0}}}while(0);n=m;return n|0}function BMa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0;g=f[c>>2]|0;c=f[g+4>>2]|0;if(!c){d=g+8|0;c=f[d>>2]|0;if((f[c>>2]|0)!=(g|0))do{e=f[d>>2]|0;d=e+8|0;c=f[d>>2]|0}while((f[c>>2]|0)!=(e|0))}else while(1){d=f[c>>2]|0;if(!d)break;else c=d}if((f[a>>2]|0)==(g|0))f[a>>2]=c;d=a+8|0;f[d>>2]=(f[d>>2]|0)+-1;nB(f[a+4>>2]|0,g);d=g+16|0;a=g+28|0;e=f[a>>2]|0;if(e|0?(i=e+8|0,h=f[i>>2]|0,f[i>>2]=h-1,(h|0)==1):0)X4(e,1,1);f[a>>2]=0;if((b[d+11>>0]|0)>=0){NDb(g);return c|0}NDb(f[d>>2]|0);NDb(g);return c|0}function CMa(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(b|0?(d=b+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(b,1,1);f[a>>2]=0;return}function DMa(a){a=a|0;var c=0,d=0,e=0,g=0;f[a>>2]=128292;c=a+300|0;d=f[c>>2]|0;if(d|0?(e=d+8|0,g=f[e>>2]|0,f[e>>2]=g-1,(g|0)==1):0)X4(d,1,1);f[c>>2]=0;c=a+296|0;d=f[c>>2]|0;if(d|0?(e=d+8|0,g=f[e>>2]|0,f[e>>2]=g-1,(g|0)==1):0)X4(d,1,1);f[c>>2]=0;c=a+292|0;d=f[c>>2]|0;if(d|0?(e=d+8|0,g=f[e>>2]|0,f[e>>2]=g-1,(g|0)==1):0)X4(d,1,1);f[c>>2]=0;c=a+148|0;f[c>>2]=103852;d=a+212|0;f[d>>2]=103892;f[a+156>>2]=103872;e=a+160|0;f[e>>2]=87888;g=a+192|0;if((b[g+11>>0]|0)<0)NDb(f[g>>2]|0);xsb(e);Ftb(c,103904);rsb(d);c=a+136|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);c=a+124|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);d=a+112|0;e=f[d>>2]|0;if(e|0){g=a+116|0;c=f[g>>2]|0;if((c|0)==(e|0))c=e;else{do{c=c+-12|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0)}while((c|0)!=(e|0));c=f[d>>2]|0}f[g>>2]=e;NDb(c)}bv(a+100|0,f[a+104>>2]|0);gJa(a+80|0,f[a+84>>2]|0);WAa(a+68|0,f[a+72>>2]|0);NAa(a+56|0,f[a+60>>2]|0);c=a+40|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);c=a+24|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);c=a+4|0;if((b[c+11>>0]|0)>=0)return;NDb(f[c>>2]|0);return}function EMa(a){a=a|0;DMa(a);NDb(a);return}function FMa(a){a=a|0;var b=0,c=0,d=0,e=0;f[a>>2]=128308;b=a+588|0;c=f[b>>2]|0;if(c|0?(e=c+8|0,d=f[e>>2]|0,f[e>>2]=d-1,(d|0)==1):0)X4(c,1,1);f[b>>2]=0;$x(a+576|0,f[a+580>>2]|0);yNa(a);return}function GMa(a){a=a|0;var b=0,c=0,d=0,e=0;f[a>>2]=128308;b=a+588|0;c=f[b>>2]|0;if(c|0?(e=c+8|0,d=f[e>>2]|0,f[e>>2]=d-1,(d|0)==1):0)X4(c,1,1);f[b>>2]=0;$x(a+576|0,f[a+580>>2]|0);yNa(a);NDb(a);return}function HMa(a){a=a|0;if(f[a+568>>2]|0){a=0;return a|0}a=(b[a+12>>0]|0)!=0;return a|0}function IMa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=u;u=u+16|0;d=c;e=(aHa(0)|0)+244|0;e=f[e>>2]|0;f[d>>2]=128408;f[d+4>>2]=b;b=uNa(e,d,a)|0;u=c;return b|0}function JMa(a,b){a=a|0;b=b|0;var c=0;c=(aHa(0)|0)+244|0;return uNa(f[c>>2]|0,b,a)|0}function KMa(a){a=a|0;var b=0;b=(aHa(0)|0)+244|0;return tNa(f[b>>2]|0,a)|0}function LMa(a){a=a|0;var b=0;b=(aHa(0)|0)+244|0;return sNa(f[b>>2]|0,a)|0}function MMa(a){a=a|0;var b=0;b=(aHa(0)|0)+244|0;return rNa(f[b>>2]|0,a)|0}function NMa(a){a=a|0;var b=0;b=(aHa(0)|0)+244|0;return qNa(f[b>>2]|0,a)|0}function OMa(a){a=a|0;var b=0;b=(aHa(0)|0)+244|0;return pNa(f[b>>2]|0,a)|0}function PMa(a){a=a|0;var b=0;b=(aHa(0)|0)+244|0;return oNa(f[b>>2]|0,a)|0}function QMa(a){a=a|0;var b=0;b=(aHa(0)|0)+244|0;return aNa(f[b>>2]|0,a)|0}function RMa(a,b,c){a=a|0;b=b|0;c=c|0;$Ma(a,c,f[b+588>>2]|0);return}function SMa(a,b,c){a=a|0;b=b|0;c=c|0;ZLa(a,c,f[b+588>>2]|0);return}function TMa(a,b,c){a=a|0;b=b|0;c=c|0;_Ma(a,c,f[b+588>>2]|0);return}function UMa(a,b,c){a=a|0;b=b|0;c=c|0;ZMa(a,c,f[b+588>>2]|0);return}function VMa(a,b){a=a|0;b=b|0;b=rfa(a+576|0,b)|0;if((b|0)==(a+580|0)){a=0;return a|0}a=f[b+28>>2]|0;return a|0}function WMa(a,b,c){a=a|0;b=b|0;c=c|0;a=XMa(a+576|0,b)|0;b=f[a>>2]|0;if((b|0)==(c|0))return;f[a>>2]=c;if(c|0){c=c+8|0;f[c>>2]=(f[c>>2]|0)+1}if(!b)return;a=b+8|0;c=f[a>>2]|0;f[a>>2]=c-1;if((c|0)!=1)return;X4(b,1,1);return}function XMa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;h=u;u=u+16|0;d=h;e=YMa(a,d,b)|0;c=f[e>>2]|0;if(c|0){a=c;a=a+28|0;u=h;return a|0}g=LDb(32)|0;VDb(g+16|0,b);f[g+28>>2]=0;c=f[d>>2]|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=c;f[e>>2]=g;c=f[f[a>>2]>>2]|0;if(!c)c=g;else{f[a>>2]=c;c=f[e>>2]|0}Aq(f[a+4>>2]|0,c);a=a+8|0;f[a>>2]=(f[a>>2]|0)+1;a=g;a=a+28|0;u=h;return a|0}function YMa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;e=a+4|0;h=f[e>>2]|0;if(!h){f[c>>2]=e;o=e;return o|0}m=b[d+11>>0]|0;l=m<<24>>24<0;m=l?f[d+4>>2]|0:m&255;l=l?f[d>>2]|0:d;g=a+4|0;e=h;while(1){d=e+16|0;h=b[d+11>>0]|0;a=h<<24>>24<0;h=a?f[e+20>>2]|0:h&255;k=h>>>0<m>>>0;j=k?h:m;i=(j|0)==0;if(!i?(n=a?f[d>>2]|0:d,o=ipb(l,n,j)|0,(o|0)!=0):0)if((o|0)<0)a=7;else{d=n;a=11}else if(m>>>0>=h>>>0)if(i)a=12;else{d=a?f[d>>2]|0:d;a=11}else a=7;if((a|0)==7){a=0;d=f[e>>2]|0;if(!d){a=8;break}else{g=e;e=d}}else if((a|0)==11){d=ipb(d,l,j)|0;if(d)if((d|0)<0)a=14;else{a=16;break}else a=12}if((a|0)==12)if(k)a=14;else{a=16;break}if((a|0)==14){d=e+4|0;a=f[d>>2]|0;if(!a){a=15;break}else{g=d;e=a}}}if((a|0)==8){f[c>>2]=e;o=e;return o|0}else if((a|0)==15){f[c>>2]=e;o=d;return o|0}else if((a|0)==16){f[c>>2]=e;o=g;return o|0}return 0}function ZMa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=u;u=u+48|0;j=m+32|0;l=m+12|0;k=m;h=aHa(0)|0;if((d|0)!=0?(e=f[d+116>>2]|0,(e|0)!=0):0)al[f[(f[e>>2]|0)+20>>2]&255](l,e,c,d);else g=4;do if((g|0)==4){e=f[h+48>>2]|0;if(!e){OJa(l,h,c,d);break}else{al[f[(f[e>>2]|0)+20>>2]&255](l,e,c,d);break}}while(0);g=l+16|0;e=f[g>>2]|0;if((e|0)!=0?(i=bFb(e,58336,63208,0)|0,(i|0)!=0):0){f[a>>2]=i;k=i+8|0;f[k>>2]=(f[k>>2]|0)+1}else{if(((f[l>>2]|1|0)!=5?S0(2)|0:0)?(h=Nv(Mv(2)|0,231212,19)|0,d=b[c+11>>0]|0,i=d<<24>>24<0,d=Nv(Nv(h,i?f[c>>2]|0:c,i?f[c+4>>2]|0:d&255)|0,228802,2)|0,fHa(k,l),i=k+11|0,c=b[i>>0]|0,h=c<<24>>24<0,c=Nv(d,h?f[k>>2]|0:k,h?f[k+4>>2]|0:c&255)|0,Ktb(j,c+(f[(f[c>>2]|0)+-12>>2]|0)|0),h=Bvb(j,295164)|0,h=wk[f[(f[h>>2]|0)+28>>2]&1023](h,10)|0,Cvb(j),rub(c,h)|0,Rtb(c)|0,(b[i>>0]|0)<0):0)NDb(f[k>>2]|0);f[a>>2]=0}e=f[g>>2]|0;if(e|0?(j=e+8|0,k=f[j>>2]|0,f[j>>2]=k-1,(k|0)==1):0)X4(e,1,1);f[g>>2]=0;e=l+4|0;if((b[e+11>>0]|0)>=0){u=m;return}NDb(f[e>>2]|0);u=m;return}function _Ma(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0;k=u;u=u+48|0;g=k+32|0;j=k+12|0;h=k;eHa(j,aHa(0)|0,c,d,1);i=j+16|0;d=f[i>>2]|0;if((d|0)!=0?(e=bFb(d,58336,58720,0)|0,(e|0)!=0):0){f[a>>2]=e;h=e+8|0;f[h>>2]=(f[h>>2]|0)+1}else{if(((f[j>>2]|1|0)!=5?S0(2)|0:0)?(d=Nv(Mv(2)|0,231212,19)|0,l=b[c+11>>0]|0,e=l<<24>>24<0,l=Nv(Nv(d,e?f[c>>2]|0:c,e?f[c+4>>2]|0:l&255)|0,228802,2)|0,fHa(h,j),e=h+11|0,c=b[e>>0]|0,d=c<<24>>24<0,c=Nv(l,d?f[h>>2]|0:h,d?f[h+4>>2]|0:c&255)|0,Ktb(g,c+(f[(f[c>>2]|0)+-12>>2]|0)|0),d=Bvb(g,295164)|0,d=wk[f[(f[d>>2]|0)+28>>2]&1023](d,10)|0,Cvb(g),rub(c,d)|0,Rtb(c)|0,(b[e>>0]|0)<0):0)NDb(f[h>>2]|0);f[a>>2]=0}d=f[i>>2]|0;if(d|0?(h=d+8|0,l=f[h>>2]|0,f[h>>2]=l-1,(l|0)==1):0)X4(d,1,1);f[i>>2]=0;d=j+4|0;if((b[d+11>>0]|0)>=0){u=k;return}NDb(f[d>>2]|0);u=k;return}function $Ma(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0;j=u;u=u+48|0;e=j+32|0;i=j+12|0;g=j;aKa(i,aHa(0)|0,c,d,1);h=i+16|0;d=f[h>>2]|0;if(!d){if(((f[i>>2]|1|0)!=5?S0(2)|0:0)?(k=Nv(Mv(2)|0,231212,19)|0,l=b[c+11>>0]|0,d=l<<24>>24<0,l=Nv(Nv(k,d?f[c>>2]|0:c,d?f[c+4>>2]|0:l&255)|0,228802,2)|0,fHa(g,i),c=g+11|0,d=b[c>>0]|0,k=d<<24>>24<0,d=Nv(l,k?f[g>>2]|0:g,k?f[g+4>>2]|0:d&255)|0,Ktb(e,d+(f[(f[d>>2]|0)+-12>>2]|0)|0),k=Bvb(e,295164)|0,k=wk[f[(f[k>>2]|0)+28>>2]&1023](k,10)|0,Cvb(e),rub(d,k)|0,Rtb(d)|0,(b[c>>0]|0)<0):0)NDb(f[g>>2]|0);f[a>>2]=0}else{f[a>>2]=d;l=d+8|0;f[l>>2]=(f[l>>2]|0)+1}d=f[h>>2]|0;if(d|0?(k=d+8|0,l=f[k>>2]|0,f[k>>2]=l-1,(l|0)==1):0)X4(d,1,1);f[h>>2]=0;d=i+4|0;if((b[d+11>>0]|0)>=0){u=j;return}NDb(f[d>>2]|0);u=j;return}function aNa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;k=u;u=u+16|0;j=k;g=bNa(c,0)|0;h=g+16|0;d=f[h>>2]|0;if((d|0)==7){d=f[g+12>>2]|0;if(d|0){e=cNa(d,(b[g+20>>0]|0)!=0)|0;f[h>>2]=e;i=4}}else{e=d;i=4}if(((i|0)==4?(e|0)==3:0)?(kpb(f[g+12>>2]|0,231611)|0)==0:0){h=(bNa(c,1)|0)+8|0;if(!(f[h>>2]|0)){j=0;u=k;return j|0}e=f[(f[c>>2]|0)+64>>2]|0;a=bNa(c,1)|0;a=(f[a+8>>2]|0)==0?0:f[a+12>>2]|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;g=Zob(a)|0;if(g>>>0>4294967279)TDb(j);if(g>>>0<11){b[j+11>>0]=g;if(!g)d=j;else{d=j;i=12}}else{i=g+16&-16;d=LDb(i)|0;f[j>>2]=d;f[j+8>>2]=i|-2147483648;f[j+4>>2]=g;i=12}if((i|0)==12)gGb(d|0,a|0,g|0)|0;b[d+g>>0]=0;d=wk[e&1023](c,j)|0;if(!d)d=0;else d=bFb(d,58336,63208,0)|0;if((b[j+11>>0]|0)<0)NDb(f[j>>2]|0);if(!d){j=0;u=k;return j|0}dNa(c,2)|0;j=d;u=k;return j|0}d=eNa(a,a+84|0,c)|0;if(!d){j=0;u=k;return j|0}a=bFb(d,58336,63208,0)|0;if(a|0){j=a;u=k;return j|0}c=d+8|0;j=f[c>>2]|0;f[c>>2]=j-1;if((j|0)!=1){j=0;u=k;return j|0}X4(d,1,1);j=0;u=k;return j|0}function bNa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;if((c|0)<0){f[a+556>>2]=f[a+16>>2];k=a+532|0;return k|0}k=a+568|0;e=f[k>>2]|0;if((e|0)>(c|0)){k=f[(f[a+564>>2]|0)+(c<<2)>>2]|0;return k|0}j=a+572|0;d=f[j>>2]|0;if((d|0)<=(c|0)){i=d<<1;i=(i|0)>10?i:10;while(1)if((e|0)<(i|0))break;else i=i<<1;h=MDb(i>>>0>1073741823?-1:i<<2)|0;if((d|0)>0){g=a+564|0;e=0;do{f[h+(e<<2)>>2]=f[(f[g>>2]|0)+(e<<2)>>2];e=e+1|0}while((e|0)!=(d|0))}else d=0;if(d>>>0<i>>>0){g=d<<2;iGb(h+g|0,0,(i<<2)-g|0)|0}d=a+564|0;e=f[d>>2]|0;if(e|0)ODb(e);f[d>>2]=h;f[j>>2]=i}h=a+4|0;i=a+12|0;a:do if(!(b[i>>0]|0)){j=a+564|0;do{e=f[k>>2]|0;if((e|0)>(c|0))break a;g=(f[j>>2]|0)+(e<<2)|0;d=f[g>>2]|0;if(!d){d=LDb(28)|0;f[d>>2]=128388;f[d+4>>2]=256;f[d+8>>2]=0;f[d+12>>2]=0;f[d+16>>2]=7;b[d+20>>0]=0;f[d+24>>2]=0;f[g>>2]=d;d=f[(f[j>>2]|0)+(e<<2)>>2]|0}if(jNa(h,d)|0)f[k>>2]=(f[k>>2]|0)+1}while(!(b[i>>0]|0))}while(0);if((f[k>>2]|0)>(c|0)){k=f[(f[a+564>>2]|0)+(c<<2)>>2]|0;return k|0}else{f[a+556>>2]=f[a+16>>2];k=a+532|0;return k|0}return 0}function cNa(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if(!a){j=6;return j|0}j=b[a>>0]|0;d=j<<24>>24==0;if(d|c){j=d?6:2;return j|0}a:do if(!(lpb(a,231689,2)|0)){d=a+2|0;c=b[d>>0]|0;if(!(c<<24>>24)){j=5;return j|0}while(1){if((c+-48&255)>=10)switch(c<<24>>24){case 65:case 66:case 67:case 68:case 69:case 70:case 97:case 98:case 99:case 100:case 101:case 102:break;default:break a}d=d+1|0;c=b[d>>0]|0;if(!(c<<24>>24)){c=5;break}}return c|0}while(0);h=0;g=1;c=0;e=0;f=0;i=j;b:while(1){c:do switch(i<<24>>24){case 45:case 43:{f=f^1;d=f;g=g&f;f=1;break}default:{if((i+-48&255)<10){h=h+1|0;d=1;break c}switch(i<<24>>24){case 46:{d=e^1;g=0;e=1;break c}case 69:case 101:{k=(h|0)==0;i=c|k;h=i?h:0;d=i^1;g=0;c=c|k^1;e=e&i;f=f&i;break c}default:{e=15;break b}}}}while(0);a=a+1|0;i=b[a>>0]|0;if(!(d&i<<24>>24!=0)){e=19;break}}if((e|0)==15){d=0;c=(h|0)>0}else if((e|0)==19){c=(h|0)>0;if(g&c){k=5;return k|0}}return (d&c?4:j<<24>>24==123?0:j<<24>>24==125?1:3)|0}function dNa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;k=a+568|0;j=f[k>>2]|0;if((j|0)<(c|0)){d=a+4|0;e=a+12|0;a:do if((b[e>>0]|0)==0&(j|0)<(c|0))do{jNa(d,0)|0;if(b[e>>0]|0)break a;c=c+-1|0}while((c|0)>(f[k>>2]|0));while(0);f[k>>2]=0;return a|0}if((c|0)<=0)return a|0;h=MDb(c>>>0>1073741823?-1:c<<2)|0;i=a+564|0;g=f[i>>2]|0;e=0;do{f[h+(e<<2)>>2]=f[g+(e<<2)>>2];e=e+1|0}while((e|0)!=(c|0));if((j|0)>(c|0)?(f[g>>2]=f[g+(c<<2)>>2],d=c+1|0,(d|0)!=(j|0)):0)do{g=f[i>>2]|0;f[g+(d-c<<2)>>2]=f[g+(d<<2)>>2];d=d+1|0}while((d|0)!=(j|0));e=j-c|0;f[k>>2]=e;d=0;do{f[(f[i>>2]|0)+(d+e<<2)>>2]=f[h+(d<<2)>>2];d=d+1|0}while((d|0)!=(c|0));ODb(h);return a|0}function eNa(a,c,d){a=a|0;c=c|0;d=d|0;var e=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,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=u;u=u+48|0;D=G+36|0;E=G+24|0;B=G+12|0;C=G;g=bNa(d,0)|0;if(!(f[g+8>>2]|0)){F=0;u=G;return F|0}i=f[g+12>>2]|0;if(!i){F=0;u=G;return F|0};f[E>>2]=0;f[E+4>>2]=0;f[E+8>>2]=0;j=Zob(i)|0;if(j>>>0>4294967279)TDb(E);if(j>>>0<11){b[E+11>>0]=j;if(!j)g=E;else{g=E;F=8}}else{F=j+16&-16;g=LDb(F)|0;f[E>>2]=g;f[E+8>>2]=F|-2147483648;f[E+4>>2]=j;F=8}if((F|0)==8)gGb(g|0,i|0,j|0)|0;b[g+j>>0]=0;g=fNa(c,E)|0;do if((g|0)==(c+4|0)){e=bNa(d,0)|0;e=(f[e+8>>2]|0)==0?0:f[e+12>>2]|0;f[D>>2]=0;f[D+4>>2]=0;f[D+8>>2]=0;j=Zob(e)|0;if(j>>>0>4294967279)TDb(D);if(j>>>0<11){i=D+11|0;b[i>>0]=j;if(!j){g=D;k=i}else{g=D;F=15}}else{i=j+16&-16;g=LDb(i)|0;f[D>>2]=g;f[D+8>>2]=i|-2147483648;f[D+4>>2]=j;i=D+11|0;F=15}if((F|0)==15){gGb(g|0,e|0,j|0)|0;k=i}b[g+j>>0]=0;e=b[k>>0]|0;j=e<<24>>24<0;i=j?f[D>>2]|0:D;e=j?f[D+4>>2]|0:e&255;j=i+e|0;a:do if((e|0)>=2){while(1){e=e+-1|0;if((b[i+e>>0]|0)==58){g=i+e|0;if((b[g+-1>>0]|0)==58)break;if((e|0)==1){e=0;F=39;break a}}else if((e|0)==1){e=0;F=39;break a}}A=g+-1|0;e=A-i|0;if(!((A|0)==(j|0)|(e|0)==-1)){ZDb(B,D,0,e,C);f[C>>2]=C;i=C+4|0;f[i>>2]=C;j=C+8|0;f[j>>2]=0;b:do if(gNa(0,B,C)|0?(l=f[i>>2]|0,m=l,(C|0)!=(m|0)):0){g=l;e=m;while(1){if((NHa(aHa(0)|0,g+8|0)|0)==2)break;g=f[e+4>>2]|0;e=g;if((C|0)==(e|0)){g=0;e=0;break b}}g=1;e=eNa(a,c,d)|0}else{g=0;e=0}while(0);if(f[j>>2]|0?(h=f[i>>2]|0,d=(f[C>>2]|0)+4|0,A=f[h>>2]|0,f[A+4>>2]=f[d>>2],f[f[d>>2]>>2]=A,f[j>>2]=0,(h|0)!=(C|0)):0)do{i=h;h=f[h+4>>2]|0;j=i+8|0;if((b[j+11>>0]|0)<0)NDb(f[j>>2]|0);NDb(i)}while((h|0)!=(C|0));if((b[B+11>>0]|0)<0)NDb(f[B>>2]|0);if(!g)F=39}else{e=0;F=39}}else{e=0;F=39}while(0);if((F|0)==39)g=0;if((b[k>>0]|0)<0)NDb(f[D>>2]|0);if(!g)F=103}else{z=bNa(d,1)|0;if((f[z+8>>2]|0)==1?(b[f[z+12>>2]>>0]|0)==123:0){h=f[g+28>>2]|0;g=f[h+12>>2]|0;if(!g){if(!(S0(2)|0)){e=0;break}C=Nv(Mv(2)|0,231615,6)|0;e=bNa(d,0)|0;e=(f[e+8>>2]|0)==0?0:f[e+12>>2]|0;e=Nv(Nv(C,e,Zob(e)|0)|0,231622,41)|0;Ktb(D,e+(f[(f[e>>2]|0)+-12>>2]|0)|0);C=Bvb(D,295164)|0;C=wk[f[(f[C>>2]|0)+28>>2]&1023](C,10)|0;Cvb(D);rub(e,C)|0;Rtb(e)|0;e=0;break}z=(bNa(d,0)|0)+24|0;z=f[z>>2]|0;dNa(d,2)|0;x=sk[f[(f[g>>2]|0)+12>>2]&2047](g)|0;y=h+28|0;v=h+32|0;w=a+12|0;c=a+16|0;a=D+11|0;n=D+4|0;o=C+4|0;p=C+8|0;q=B+11|0;r=D+11|0;s=D+8|0;t=D+4|0;while(1){if(sk[f[(f[d>>2]|0)+8>>2]&2047](d)|0){F=102;break}m=(bNa(d,0)|0)+24|0;if((f[m>>2]|0)<=(z|0)){F=102;break}i=bNa(d,0)|0;h=i+16|0;g=f[h>>2]|0;if((g|0)==7){g=f[i+12>>2]|0;if(!g)g=0;else{g=cNa(g,(b[i+20>>0]|0)!=0)|0;f[h>>2]=g;F=54}}else F=54;if((F|0)==54){F=0;if(((g|0)==3?(kpb(f[i+12>>2]|0,231664)|0)==0:0)?(m=(bNa(d,1)|0)+8|0,(f[m>>2]|0)!=0):0){i=f[(f[d>>2]|0)+68>>2]|0;h=bNa(d,1)|0;h=(f[h+8>>2]|0)==0?0:f[h+12>>2]|0;f[D>>2]=0;f[D+4>>2]=0;f[D+8>>2]=0;j=Zob(h)|0;if(j>>>0>4294967279){F=58;break}if(j>>>0<11){b[r>>0]=j;if(!j)g=D;else{g=D;F=62}}else{F=j+16&-16;g=LDb(F)|0;f[D>>2]=g;f[s>>2]=F|-2147483648;f[t>>2]=j;F=62}if((F|0)==62){F=0;gGb(g|0,h|0,j|0)|0}b[g+j>>0]=0;Zk[i&511](d,D,x);if((b[r>>0]|0)<0)NDb(f[D>>2]|0);dNa(d,2)|0;g=1}else g=0}h=f[y>>2]|0;if((h|0)!=(f[v>>2]|0)){m=h;do{h=fNa(w,m)|0;if((h|0)==(c|0)){VDb(D,m);i=b[a>>0]|0;h=i<<24>>24<0;k=h?f[D>>2]|0:D;h=h?f[n>>2]|0:i&255;l=k+h|0;c:do if((h|0)<2)h=c;else{while(1){h=h+-1|0;if((b[k+h>>0]|0)==58){j=k+h|0;if((b[j+-1>>0]|0)==58)break;if((h|0)==1){h=c;break c}}else if((h|0)==1){h=c;break c}}j=j+-1|0;h=j-k|0;if((j|0)==(l|0)|(h|0)==-1){h=c;break}ZDb(B,D,0,h,C);f[C>>2]=C;f[o>>2]=C;f[p>>2]=0;do if(gNa(0,B,C)|0){h=f[o>>2]|0;i=h;if((C|0)==(i|0)){h=c;break}j=h;do{if((NHa(aHa(0)|0,j+8|0)|0)==2)h=fNa(w,m)|0;else h=c;j=f[i+4>>2]|0;i=j}while(!((h|0)!=(c|0)|(C|0)==(i|0)))}else h=c;while(0);do if(f[p>>2]|0){i=f[o>>2]|0;l=(f[C>>2]|0)+4|0;k=f[i>>2]|0;f[k+4>>2]=f[l>>2];f[f[l>>2]>>2]=k;f[p>>2]=0;if((i|0)==(C|0))break;do{j=i;i=f[i+4>>2]|0;k=j+8|0;if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);NDb(j)}while((i|0)!=(C|0))}while(0);if((b[q>>0]|0)<0)NDb(f[B>>2]|0);i=b[a>>0]|0}while(0);if(i<<24>>24<0)NDb(f[D>>2]|0)}if((h|0)!=(c|0)?(A=f[(f[h+28>>2]|0)+40>>2]|0,(A|0)!=0):0)g=g|(wk[A&1023](x,d)|0);m=m+12|0}while((m|0)!=(f[v>>2]|0))}if(!g)hNa(d)}if((F|0)==58)TDb(D);else if((F|0)==102){dNa(d,1)|0;e=x;break}}else F=103}while(0);if((F|0)==103)e=0;if((b[E+11>>0]|0)<0)NDb(f[E>>2]|0);F=e;u=G;return F|0}function fNa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=a+4|0;d=f[m>>2]|0;do if(d|0){l=b[c+11>>0]|0;k=l<<24>>24<0;l=k?f[c+4>>2]|0:l&255;k=k?f[c>>2]|0:c;a=m;do{e=d+16|0;h=b[e+11>>0]|0;g=h<<24>>24<0;h=g?f[d+20>>2]|0:h&255;i=l>>>0<h>>>0;c=i?l:h;if((c|0)!=0?(j=ipb(g?f[e>>2]|0:e,k,c)|0,(j|0)!=0):0)c=j;else c=h>>>0<l>>>0?-1:i&1;i=(c|0)<0;a=i?a:d;d=f[(i?d+4|0:d)>>2]|0}while((d|0)!=0);if((a|0)!=(m|0)){d=a+16|0;g=b[d+11>>0]|0;e=g<<24>>24<0;g=e?f[a+20>>2]|0:g&255;c=g>>>0<l>>>0?g:l;if(c|0?(n=ipb(k,e?f[d>>2]|0:d,c)|0,n|0):0){if((n|0)<0)break;return a|0}if(l>>>0>=g>>>0){n=a;return n|0}}}while(0);n=m;return n|0}function gNa(a,c,d){a=a|0;c=c|0;d=d|0;var e=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=u;u=u+48|0;q=r+36|0;g=r+24|0;h=r+12|0;i=r;n=d+8|0;p=f[n>>2]|0;aHa(0)|0;iNa(q,0,c);o=q+11|0;l=b[o>>0]|0;m=q+4|0;if((l<<24>>24<0?f[m>>2]|0:l&255)|0){l=LDb(20)|0;f[l>>2]=0;VDb(l+8|0,q);f[l+4>>2]=d;k=f[d>>2]|0;f[l>>2]=k;f[k+4>>2]=l;f[d>>2]=l;f[n>>2]=(f[n>>2]|0)+1}a=aHa(0)|0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;e=LDb(16)|0;f[i>>2]=e;f[i+8>>2]=-2147483632;f[i+4>>2]=11;j=e;k=231673;l=j+11|0;do{b[j>>0]=b[k>>0]|0;j=j+1|0;k=k+1|0}while((j|0)<(l|0));b[e+11>>0]=0;l=b[c+11>>0]|0;k=l<<24>>24<0;l=iEb(i,k?f[c>>2]|0:c,k?f[c+4>>2]|0:l&255)|0;f[h>>2]=f[l>>2];f[h+4>>2]=f[l+4>>2];f[h+8>>2]=f[l+8>>2];f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;MHa(g,a,h);if((b[o>>0]|0)<0){b[f[q>>2]>>0]=0;f[m>>2]=0}else{b[q>>0]=0;b[o>>0]=0}dEb(q,0);f[q>>2]=f[g>>2];f[q+4>>2]=f[g+4>>2];f[q+8>>2]=f[g+8>>2];f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;if((b[h+11>>0]|0)<0)NDb(f[h>>2]|0);if((b[i+11>>0]|0)<0)NDb(f[i>>2]|0);l=b[o>>0]|0;if((l<<24>>24<0?f[m>>2]|0:l&255)|0){l=LDb(20)|0;f[l>>2]=0;VDb(l+8|0,q);f[l+4>>2]=d;k=f[d>>2]|0;f[l>>2]=k;f[k+4>>2]=l;f[d>>2]=l;f[n>>2]=(f[n>>2]|0)+1}MHa(g,aHa(0)|0,c);if((b[o>>0]|0)<0){b[f[q>>2]>>0]=0;f[m>>2]=0}else{b[q>>0]=0;b[o>>0]=0}dEb(q,0);f[q>>2]=f[g>>2];f[q+4>>2]=f[g+4>>2];f[q+8>>2]=f[g+8>>2];e=b[o>>0]|0;if(!((e<<24>>24<0?f[m>>2]|0:e&255)|0))a=f[n>>2]|0;else{a=LDb(20)|0;f[a>>2]=0;VDb(a+8|0,q);f[a+4>>2]=d;e=f[d>>2]|0;f[a>>2]=e;f[e+4>>2]=a;f[d>>2]=a;a=(f[n>>2]|0)+1|0;f[n>>2]=a;e=b[o>>0]|0}a=(a|0)!=(p|0);if(e<<24>>24>=0){u=r;return a|0}NDb(f[q>>2]|0);u=r;return a|0}function hNa(a){a=a|0;var c=0,d=0;c=bNa(a,0)|0;if((f[c+8>>2]|0)==1?(b[f[c+12>>2]>>0]|0)==123:0){c=(bNa(a,0)|0)+24|0;c=f[c>>2]|0;a:do if(!(sk[f[(f[a>>2]|0)+8>>2]&2047](a)|0))do{d=(bNa(a,0)|0)+24|0;if((f[d>>2]|0)<(c|0))break a;dNa(a,1)|0}while(!(sk[f[(f[a>>2]|0)+8>>2]&2047](a)|0));while(0);dNa(a,1)|0;return}dNa(a,1)|0;return}function iNa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0;g=u;u=u+32|0;c=g+12|0;e=g;JEb(e,231685,d);d=jEb(e,295620)|0;f[c>>2]=f[d>>2];f[c+4>>2]=f[d+4>>2];f[c+8>>2]=f[d+8>>2];f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;d=jEb(c,222509)|0;f[a>>2]=f[d>>2];f[a+4>>2]=f[d+4>>2];f[a+8>>2]=f[d+8>>2];f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);if((b[e+11>>0]|0)>=0){u=g;return}NDb(f[e>>2]|0);u=g;return}function jNa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0;i=(c|0)!=0;if(i){f[c+8>>2]=0;d=f[c+12>>2]|0;if(d|0)b[d>>0]=0;b[c+20>>0]=0;f[c+24>>2]=0}if(sk[f[(f[a>>2]|0)+12>>2]&2047](a)|0){i=0;return i|0}h=a+4|0;d=aub(f[h>>2]|0)|0;a:do if((d|0)!=-1){while(1){e=f[h>>2]|0;if(!(b[a+16+d>>0]|0))break;$tb(e,1,-1)|0;d=aub(f[h>>2]|0)|0;if((d|0)==-1)break a}d=aub(e)|0;switch(d|0){case -1:{b[a+8>>0]=1;if(!i){i=0;return i|0}f[c+24>>2]=f[a+12>>2];i=(f[c+8>>2]|0)!=0;return i|0}case 34:{b:do if(i){b[c+20>>0]=1;f[c+16>>2]=7;f[c+24>>2]=f[a+12>>2];$tb(f[h>>2]|0,1,-1)|0;e=0;while(1){d=aub(f[h>>2]|0)|0;c:do switch(d|0){case -1:break b;case 92:{d=f[h>>2]|0;if(e){d=_tb(d)|0;kNa(c,(d|0)==-1?92:d&255);d=0;break c}else{$tb(d,1,-1)|0;d=1;break c}}case 34:{d=f[h>>2]|0;if(!e){g=35;break b}d=_tb(d)|0;kNa(c,(d|0)==-1?34:d&255);d=0;break}default:{if(e)kNa(c,92);e=_tb(f[h>>2]|0)|0;kNa(c,((e|0)==-1?d:e)&255);d=0}}while(0);e=d}}else{$tb(f[h>>2]|0,1,-1)|0;e=0;while(1){d:do switch(aub(f[h>>2]|0)|0){case -1:break b;case 92:{d=f[h>>2]|0;if(e){_tb(d)|0;d=0;break d}else{$tb(d,1,-1)|0;d=1;break d}}case 34:{d=f[h>>2]|0;if(!e){g=35;break b}_tb(d)|0;d=0;break}default:{_tb(f[h>>2]|0)|0;d=0}}while(0);e=d}}while(0);if((g|0)==35){$tb(d,1,-1)|0;return i|0}b[a+8>>0]=1;if(!i){i=0;return i|0}i=(f[c+8>>2]|0)!=0;return i|0}case 39:{if(i){b[c+20>>0]=1;f[c+16>>2]=7;f[c+24>>2]=f[a+12>>2]}$tb(f[h>>2]|0,1,-1)|0;d=aub(f[h>>2]|0)|0;e:do if((d|0)!=-1){f:do if(i){g=0;e=d;while(1){do if(g|(e|0)!=92){if((e|0)==39){d=f[h>>2]|0;if(!g)break f;d=_tb(d)|0;kNa(c,(d|0)==-1?39:d&255);d=0;break}if(g)kNa(c,92);d=_tb(f[h>>2]|0)|0;kNa(c,((d|0)==-1?e:d)&255);d=0}else{$tb(f[h>>2]|0,1,-1)|0;d=1}while(0);e=aub(f[h>>2]|0)|0;if((e|0)==-1)break e;else g=d}}else{e=0;g=d;while(1){do if(e|(g|0)!=92){d=f[h>>2]|0;if((g|0)!=39){_tb(d)|0;d=0;break}if(!e)break f;_tb(d)|0;d=0}else{$tb(f[h>>2]|0,1,-1)|0;d=1}while(0);g=aub(f[h>>2]|0)|0;if((g|0)==-1)break e;else e=d}}while(0);$tb(d,1,-1)|0;return i|0}while(0);b[a+8>>0]=1;if(!i){i=0;return i|0}i=(f[c+8>>2]|0)!=0;return i|0}default:{if(b[a+272+d>>0]|0){d=(_tb(f[h>>2]|0)|0)&255;if(i)kNa(c,d);switch(d<<24>>24){case 123:{d=1;g=68;break}case 125:{d=-1;g=68;break}default:{}}if((g|0)==68){h=a+12|0;f[h>>2]=(f[h>>2]|0)+d}if(!i){i=0;return i|0}f[c+24>>2]=f[a+12>>2];i=(f[c+8>>2]|0)!=0;return i|0}if(i)f[c+24>>2]=f[a+12>>2];d=aub(f[h>>2]|0)|0;g:do if((d|0)!=-1){h:do if(i)while(1){e=d<<24>>24;if(b[a+16+e>>0]|0){g=83;break h}if(b[a+272+e>>0]|0){g=86;break h}g=_tb(f[h>>2]|0)|0;kNa(c,((g|0)==-1?d:g)&255);d=aub(f[h>>2]|0)|0;if((d|0)==-1)break g}else while(1){d=d<<24>>24;if(b[a+16+d>>0]|0){g=83;break h}if(b[a+272+d>>0]|0){g=86;break h}_tb(f[h>>2]|0)|0;d=aub(f[h>>2]|0)|0;if((d|0)==-1)break g}while(0);if((g|0)==83){$tb(f[h>>2]|0,1,-1)|0;if(!i){i=0;return i|0}i=(f[c+8>>2]|0)!=0;return i|0}else if((g|0)==86){if(!i){i=0;return i|0}i=(f[c+8>>2]|0)!=0;return i|0}}while(0);b[a+8>>0]=1;if(!i){i=0;return i|0}i=(f[c+8>>2]|0)!=0;return i|0}}}while(0);b[a+8>>0]=1;i=0;return i|0}function kNa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;j=a+12|0;d=f[j>>2]|0;if(d){h=a+8|0;i=f[h>>2]|0;g=a+4|0;e=f[g>>2]|0;if((i|0)<(e+-1|0)){g=h;e=i}else{if((e|0)<256){f[g>>2]=256;e=256}if((i|0)>=(e+-1|0)){do e=e<<1;while((i|0)>=(e+-1|0));f[g>>2]=e}g=MDb((e|0)>-1?e:-1)|0;f[j>>2]=g;iGb(g|0,0,e|0)|0;gpb(g,d,i)|0;ODb(d);g=h;e=f[h>>2]|0;d=f[j>>2]|0}}else{e=a+4|0;d=f[e>>2]|0;if((d|0)<256){f[e>>2]=256;d=256}i=MDb(d)|0;f[j>>2]=i;iGb(i|0,0,d|0)|0;g=a+8|0;f[g>>2]=0;e=0;d=i}f[g>>2]=e+1;b[d+e>>0]=c;b[(f[j>>2]|0)+(f[g>>2]|0)>>0]=0;f[a+16>>2]=7;return}function lNa(a){a=a|0;var c=0,d=0;f[a>>2]=128388;c=a+12|0;d=f[c>>2]|0;if(d|0)ODb(d);f[a+4>>2]=256;f[a+8>>2]=0;f[c>>2]=0;f[a+16>>2]=7;b[a+20>>0]=0;f[a+24>>2]=0;return}function mNa(a){a=a|0;var b=0;f[a>>2]=128388;b=f[a+12>>2]|0;if(!b){NDb(a);return}ODb(b);NDb(a);return}function nNa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;if((a|0)==(c|0))return a|0;k=a+12|0;d=f[k>>2]|0;if(d|0)ODb(d);g=a+4|0;f[g>>2]=256;h=a+8|0;f[h>>2]=0;f[k>>2]=0;i=a+16|0;f[i>>2]=7;j=a+20|0;b[j>>0]=0;d=a+24|0;f[d>>2]=0;e=c+12|0;if(!(f[e>>2]|0)){f[g>>2]=0;f[h>>2]=0;f[k>>2]=0}else{l=f[c+4>>2]|0;f[g>>2]=l;f[h>>2]=f[c+8>>2];h=MDb((l|0)>-1?l:-1)|0;f[k>>2]=h;gpb(h,f[e>>2]|0,l)|0}f[i>>2]=f[c+16>>2];b[j>>0]=b[c+20>>0]|0;f[d>>2]=f[c+24>>2];return a|0}function oNa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;k=u;u=u+16|0;j=k;g=bNa(c,0)|0;h=g+16|0;d=f[h>>2]|0;if((d|0)==7){d=f[g+12>>2]|0;if(d|0){e=cNa(d,(b[g+20>>0]|0)!=0)|0;f[h>>2]=e;i=4}}else{e=d;i=4}if(((i|0)==4?(e|0)==3:0)?(kpb(f[g+12>>2]|0,231611)|0)==0:0){h=(bNa(c,1)|0)+8|0;if(!(f[h>>2]|0)){j=0;u=k;return j|0}e=f[(f[c>>2]|0)+64>>2]|0;a=bNa(c,1)|0;a=(f[a+8>>2]|0)==0?0:f[a+12>>2]|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;g=Zob(a)|0;if(g>>>0>4294967279)TDb(j);if(g>>>0<11){b[j+11>>0]=g;if(!g)d=j;else{d=j;i=12}}else{i=g+16&-16;d=LDb(i)|0;f[j>>2]=d;f[j+8>>2]=i|-2147483648;f[j+4>>2]=g;i=12}if((i|0)==12)gGb(d|0,a|0,g|0)|0;b[d+g>>0]=0;d=wk[e&1023](c,j)|0;if(!d)d=0;else d=bFb(d,58336,58720,0)|0;if((b[j+11>>0]|0)<0)NDb(f[j>>2]|0);if(!d){j=0;u=k;return j|0}dNa(c,2)|0;j=d;u=k;return j|0}d=eNa(a,a+72|0,c)|0;if(!d){j=0;u=k;return j|0}a=bFb(d,58336,58720,0)|0;if(a|0){j=a;u=k;return j|0}c=d+8|0;j=f[c>>2]|0;f[c>>2]=j-1;if((j|0)!=1){j=0;u=k;return j|0}X4(d,1,1);j=0;u=k;return j|0}function pNa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;k=u;u=u+16|0;j=k;g=bNa(c,0)|0;h=g+16|0;d=f[h>>2]|0;if((d|0)==7){d=f[g+12>>2]|0;if(d|0){e=cNa(d,(b[g+20>>0]|0)!=0)|0;f[h>>2]=e;i=4}}else{e=d;i=4}if(((i|0)==4?(e|0)==3:0)?(kpb(f[g+12>>2]|0,231611)|0)==0:0){h=(bNa(c,1)|0)+8|0;if(!(f[h>>2]|0)){j=0;u=k;return j|0}e=f[(f[c>>2]|0)+64>>2]|0;a=bNa(c,1)|0;a=(f[a+8>>2]|0)==0?0:f[a+12>>2]|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;g=Zob(a)|0;if(g>>>0>4294967279)TDb(j);if(g>>>0<11){b[j+11>>0]=g;if(!g)d=j;else{d=j;i=12}}else{i=g+16&-16;d=LDb(i)|0;f[j>>2]=d;f[j+8>>2]=i|-2147483648;f[j+4>>2]=g;i=12}if((i|0)==12)gGb(d|0,a|0,g|0)|0;b[d+g>>0]=0;d=wk[e&1023](c,j)|0;if(!d)d=0;else d=bFb(d,58336,63720,0)|0;if((b[j+11>>0]|0)<0)NDb(f[j>>2]|0);if(!d){j=0;u=k;return j|0}dNa(c,2)|0;j=d;u=k;return j|0}d=eNa(a,a+60|0,c)|0;if(!d){j=0;u=k;return j|0}j=bFb(d,58336,63720,0)|0;u=k;return j|0}function qNa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;k=u;u=u+16|0;j=k;g=bNa(c,0)|0;h=g+16|0;d=f[h>>2]|0;if((d|0)==7){d=f[g+12>>2]|0;if(d|0){e=cNa(d,(b[g+20>>0]|0)!=0)|0;f[h>>2]=e;i=4}}else{e=d;i=4}if(((i|0)==4?(e|0)==3:0)?(kpb(f[g+12>>2]|0,231611)|0)==0:0){h=(bNa(c,1)|0)+8|0;if(!(f[h>>2]|0)){j=0;u=k;return j|0}e=f[(f[c>>2]|0)+64>>2]|0;a=bNa(c,1)|0;a=(f[a+8>>2]|0)==0?0:f[a+12>>2]|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;g=Zob(a)|0;if(g>>>0>4294967279)TDb(j);if(g>>>0<11){b[j+11>>0]=g;if(!g)d=j;else{d=j;i=12}}else{i=g+16&-16;d=LDb(i)|0;f[j>>2]=d;f[j+8>>2]=i|-2147483648;f[j+4>>2]=g;i=12}if((i|0)==12)gGb(d|0,a|0,g|0)|0;b[d+g>>0]=0;d=wk[e&1023](c,j)|0;if(!d)d=0;else d=bFb(d,58336,58352,0)|0;if((b[j+11>>0]|0)<0)NDb(f[j>>2]|0);if(!d){j=0;u=k;return j|0}dNa(c,2)|0;j=d;u=k;return j|0}d=eNa(a,a+48|0,c)|0;if(!d){j=0;u=k;return j|0}j=bFb(d,58336,58352,0)|0;u=k;return j|0}function rNa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;k=u;u=u+16|0;j=k;g=bNa(c,0)|0;h=g+16|0;d=f[h>>2]|0;if((d|0)==7){d=f[g+12>>2]|0;if(d|0){e=cNa(d,(b[g+20>>0]|0)!=0)|0;f[h>>2]=e;i=4}}else{e=d;i=4}if(((i|0)==4?(e|0)==3:0)?(kpb(f[g+12>>2]|0,231611)|0)==0:0){h=(bNa(c,1)|0)+8|0;if(!(f[h>>2]|0)){j=0;u=k;return j|0}e=f[(f[c>>2]|0)+64>>2]|0;a=bNa(c,1)|0;a=(f[a+8>>2]|0)==0?0:f[a+12>>2]|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;g=Zob(a)|0;if(g>>>0>4294967279)TDb(j);if(g>>>0<11){b[j+11>>0]=g;if(!g)d=j;else{d=j;i=12}}else{i=g+16&-16;d=LDb(i)|0;f[j>>2]=d;f[j+8>>2]=i|-2147483648;f[j+4>>2]=g;i=12}if((i|0)==12)gGb(d|0,a|0,g|0)|0;b[d+g>>0]=0;d=wk[e&1023](c,j)|0;if(!d)d=0;else d=bFb(d,58336,59496,0)|0;if((b[j+11>>0]|0)<0)NDb(f[j>>2]|0);if(!d){j=0;u=k;return j|0}dNa(c,2)|0;j=d;u=k;return j|0}d=eNa(a,a+36|0,c)|0;if(!d){j=0;u=k;return j|0}a=bFb(d,58336,59496,0)|0;if(a|0){j=a;u=k;return j|0}c=d+8|0;j=f[c>>2]|0;f[c>>2]=j-1;if((j|0)!=1){j=0;u=k;return j|0}X4(d,1,1);j=0;u=k;return j|0}function sNa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;k=u;u=u+16|0;j=k;g=bNa(c,0)|0;h=g+16|0;d=f[h>>2]|0;if((d|0)==7){d=f[g+12>>2]|0;if(d|0){e=cNa(d,(b[g+20>>0]|0)!=0)|0;f[h>>2]=e;i=4}}else{e=d;i=4}if(((i|0)==4?(e|0)==3:0)?(kpb(f[g+12>>2]|0,231611)|0)==0:0){h=(bNa(c,1)|0)+8|0;if(!(f[h>>2]|0)){j=0;u=k;return j|0}e=f[(f[c>>2]|0)+64>>2]|0;a=bNa(c,1)|0;a=(f[a+8>>2]|0)==0?0:f[a+12>>2]|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;g=Zob(a)|0;if(g>>>0>4294967279)TDb(j);if(g>>>0<11){b[j+11>>0]=g;if(!g)d=j;else{d=j;i=12}}else{i=g+16&-16;d=LDb(i)|0;f[j>>2]=d;f[j+8>>2]=i|-2147483648;f[j+4>>2]=g;i=12}if((i|0)==12)gGb(d|0,a|0,g|0)|0;b[d+g>>0]=0;d=wk[e&1023](c,j)|0;if(!d)d=0;else d=bFb(d,58336,59480,0)|0;if((b[j+11>>0]|0)<0)NDb(f[j>>2]|0);if(!d){j=0;u=k;return j|0}dNa(c,2)|0;j=d;u=k;return j|0}d=eNa(a,a+24|0,c)|0;if(!d){j=0;u=k;return j|0}a=bFb(d,58336,59480,0)|0;if(a|0){j=a;u=k;return j|0}c=d+8|0;j=f[c>>2]|0;f[c>>2]=j-1;if((j|0)!=1){j=0;u=k;return j|0}X4(d,1,1);j=0;u=k;return j|0}function tNa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;k=u;u=u+16|0;j=k;g=bNa(c,0)|0;h=g+16|0;d=f[h>>2]|0;if((d|0)==7){d=f[g+12>>2]|0;if(d|0){e=cNa(d,(b[g+20>>0]|0)!=0)|0;f[h>>2]=e;i=4}}else{e=d;i=4}if(((i|0)==4?(e|0)==3:0)?(kpb(f[g+12>>2]|0,231611)|0)==0:0){h=(bNa(c,1)|0)+8|0;if(!(f[h>>2]|0)){j=0;u=k;return j|0}e=f[(f[c>>2]|0)+64>>2]|0;a=bNa(c,1)|0;a=(f[a+8>>2]|0)==0?0:f[a+12>>2]|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;g=Zob(a)|0;if(g>>>0>4294967279)TDb(j);if(g>>>0<11){b[j+11>>0]=g;if(!g)d=j;else{d=j;i=12}}else{i=g+16&-16;d=LDb(i)|0;f[j>>2]=d;f[j+8>>2]=i|-2147483648;f[j+4>>2]=g;i=12}if((i|0)==12)gGb(d|0,a|0,g|0)|0;b[d+g>>0]=0;d=wk[e&1023](c,j)|0;if((b[j+11>>0]|0)<0)NDb(f[j>>2]|0);if(!d){j=0;u=k;return j|0}dNa(c,2)|0;j=d;u=k;return j|0}j=eNa(a,a+12|0,c)|0;u=k;return j|0}function uNa(a,c,d){a=a|0;c=c|0;d=d|0;var e=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,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=u;u=u+48|0;C=F+36|0;D=F+24|0;A=F+12|0;B=F;e=bNa(d,0)|0;if(!(f[e+8>>2]|0)){E=0;u=F;return E|0}l=f[e+12>>2]|0;if(!l){E=0;u=F;return E|0}j=bNa(d,0)|0;g=j+16|0;e=f[g>>2]|0;if((e|0)==7){e=f[j+12>>2]|0;if(!e)e=0;else{e=cNa(e,(b[j+20>>0]|0)!=0)|0;f[g>>2]=e;E=6}}else E=6;if((E|0)==6)if((e|0)==3?(kpb(f[j+12>>2]|0,231611)|0)==0:0){y=(bNa(d,1)|0)+8|0;if(!(f[y>>2]|0)){E=0;u=F;return E|0}j=f[(f[d>>2]|0)+64>>2]|0;g=bNa(d,1)|0;g=(f[g+8>>2]|0)==0?0:f[g+12>>2]|0;f[C>>2]=0;f[C+4>>2]=0;f[C+8>>2]=0;k=Zob(g)|0;if(k>>>0>4294967279)TDb(C);if(k>>>0<11){b[C+11>>0]=k;if(!k)e=C;else{e=C;E=14}}else{E=k+16&-16;e=LDb(E)|0;f[C>>2]=e;f[C+8>>2]=E|-2147483648;f[C+4>>2]=k;E=14}if((E|0)==14)gGb(e|0,g|0,k|0)|0;b[e+k>>0]=0;e=wk[j&1023](d,C)|0;if((b[C+11>>0]|0)<0)NDb(f[C>>2]|0);if(e){if(wk[f[(f[c>>2]|0)+8>>2]&1023](c,e)|0){dNa(d,2)|0;E=e;u=F;return E|0}}else e=0}else e=0;f[D>>2]=0;f[D+4>>2]=0;f[D+8>>2]=0;j=Zob(l)|0;if(j>>>0>4294967279)TDb(D);if(j>>>0<11){b[D+11>>0]=j;if(!j)g=D;else{g=D;E=25}}else{E=j+16&-16;g=LDb(E)|0;f[D>>2]=g;f[D+8>>2]=E|-2147483648;f[D+4>>2]=j;E=25}if((E|0)==25)gGb(g|0,l|0,j|0)|0;b[g+j>>0]=0;x=a+12|0;g=fNa(x,D)|0;y=a+16|0;do if((g|0)==(y|0)){g=bNa(d,0)|0;g=(f[g+8>>2]|0)==0?0:f[g+12>>2]|0;f[C>>2]=0;f[C+4>>2]=0;f[C+8>>2]=0;l=Zob(g)|0;if(l>>>0>4294967279)TDb(C);if(l>>>0<11){k=C+11|0;b[k>>0]=l;if(!l)j=C;else{j=C;E=32}}else{k=l+16&-16;j=LDb(k)|0;f[C>>2]=j;f[C+8>>2]=k|-2147483648;f[C+4>>2]=l;k=C+11|0;E=32}if((E|0)==32)gGb(j|0,g|0,l|0)|0;b[j+l>>0]=0;g=b[k>>0]|0;m=g<<24>>24<0;l=m?f[C>>2]|0:C;g=m?f[C+4>>2]|0:g&255;m=l+g|0;a:do if((g|0)>=2){while(1){g=g+-1|0;if((b[l+g>>0]|0)==58){j=l+g|0;if((b[j+-1>>0]|0)==58)break;if((g|0)==1){E=56;break a}}else if((g|0)==1){E=56;break a}}z=j+-1|0;g=z-l|0;if(!((z|0)==(m|0)|(g|0)==-1)){ZDb(A,C,0,g,B);f[B>>2]=B;j=B+4|0;f[j>>2]=B;l=B+8|0;f[l>>2]=0;b:do if(gNa(0,A,B)|0?(i=f[j>>2]|0,n=i,(B|0)!=(n|0)):0){g=n;while(1){if((NHa(aHa(0)|0,i+8|0)|0)==2)break;i=f[g+4>>2]|0;g=i;if((B|0)==(g|0)){g=0;break b}}g=1;e=uNa(a,c,d)|0}else g=0;while(0);if(f[l>>2]|0?(h=f[j>>2]|0,d=(f[B>>2]|0)+4|0,z=f[h>>2]|0,f[z+4>>2]=f[d>>2],f[f[d>>2]>>2]=z,f[l>>2]=0,(h|0)!=(B|0)):0)do{i=h;h=f[h+4>>2]|0;j=i+8|0;if((b[j+11>>0]|0)<0)NDb(f[j>>2]|0);NDb(i)}while((h|0)!=(B|0));if((b[A+11>>0]|0)<0)NDb(f[A>>2]|0);if(!g)E=56}else E=56}else E=56;while(0);if((E|0)==56)g=0;if((b[k>>0]|0)<0)NDb(f[C>>2]|0);if(!g)E=121;else z=e}else{w=bNa(d,1)|0;if((f[w+8>>2]|0)==1?(b[f[w+12>>2]>>0]|0)==123:0){g=f[g+28>>2]|0;e=f[g+12>>2]|0;if(!e){if(!(S0(2)|0)){z=0;break}B=Nv(Mv(2)|0,231615,6)|0;z=bNa(d,0)|0;z=(f[z+8>>2]|0)==0?0:f[z+12>>2]|0;z=Nv(Nv(B,z,Zob(z)|0)|0,231622,41)|0;Ktb(C,z+(f[(f[z>>2]|0)+-12>>2]|0)|0);B=Bvb(C,295164)|0;B=wk[f[(f[B>>2]|0)+28>>2]&1023](B,10)|0;Cvb(C);rub(z,B)|0;Rtb(z)|0;z=0;break}if(wk[f[(f[c>>2]|0)+8>>2]&1023](c,e)|0){w=(bNa(d,0)|0)+24|0;w=f[w>>2]|0;dNa(d,2)|0;t=sk[f[(f[e>>2]|0)+12>>2]&2047](e)|0;v=g+28|0;m=g+32|0;n=C+11|0;a=C+4|0;c=B+4|0;o=B+8|0;p=A+11|0;q=C+11|0;r=C+8|0;s=C+4|0;while(1){if(sk[f[(f[d>>2]|0)+8>>2]&2047](d)|0){E=120;break}l=(bNa(d,0)|0)+24|0;if((f[l>>2]|0)<=(w|0)){E=120;break}h=bNa(d,0)|0;g=h+16|0;e=f[g>>2]|0;if((e|0)==7){e=f[h+12>>2]|0;if(!e)e=0;else{e=cNa(e,(b[h+20>>0]|0)!=0)|0;f[g>>2]=e;E=72}}else E=72;if((E|0)==72){E=0;if(((e|0)==3?(kpb(f[h+12>>2]|0,231664)|0)==0:0)?(l=(bNa(d,1)|0)+8|0,(f[l>>2]|0)!=0):0){h=f[(f[d>>2]|0)+68>>2]|0;g=bNa(d,1)|0;g=(f[g+8>>2]|0)==0?0:f[g+12>>2]|0;f[C>>2]=0;f[C+4>>2]=0;f[C+8>>2]=0;i=Zob(g)|0;if(i>>>0>4294967279){E=76;break}if(i>>>0<11){b[q>>0]=i;if(!i)e=C;else{e=C;E=80}}else{E=i+16&-16;e=LDb(E)|0;f[C>>2]=e;f[r>>2]=E|-2147483648;f[s>>2]=i;E=80}if((E|0)==80){E=0;gGb(e|0,g|0,i|0)|0}b[e+i>>0]=0;Zk[h&511](d,C,t);if((b[q>>0]|0)<0)NDb(f[C>>2]|0);dNa(d,2)|0;e=1}else e=0}g=f[v>>2]|0;if((g|0)!=(f[m>>2]|0)){l=g;do{g=fNa(x,l)|0;if((g|0)==(y|0)){VDb(C,l);h=b[n>>0]|0;g=h<<24>>24<0;j=g?f[C>>2]|0:C;g=g?f[a>>2]|0:h&255;k=j+g|0;c:do if((g|0)<2)g=y;else{while(1){g=g+-1|0;if((b[j+g>>0]|0)==58){i=j+g|0;if((b[i+-1>>0]|0)==58)break;if((g|0)==1){g=y;break c}}else if((g|0)==1){g=y;break c}}i=i+-1|0;g=i-j|0;if((i|0)==(k|0)|(g|0)==-1){g=y;break}ZDb(A,C,0,g,B);f[B>>2]=B;f[c>>2]=B;f[o>>2]=0;do if(gNa(0,A,B)|0){g=f[c>>2]|0;h=g;if((B|0)==(h|0)){g=y;break}i=g;do{if((NHa(aHa(0)|0,i+8|0)|0)==2)g=fNa(x,l)|0;else g=y;i=f[h+4>>2]|0;h=i}while(!((g|0)!=(y|0)|(B|0)==(h|0)))}else g=y;while(0);do if(f[o>>2]|0){h=f[c>>2]|0;k=(f[B>>2]|0)+4|0;j=f[h>>2]|0;f[j+4>>2]=f[k>>2];f[f[k>>2]>>2]=j;f[o>>2]=0;if((h|0)==(B|0))break;do{i=h;h=f[h+4>>2]|0;j=i+8|0;if((b[j+11>>0]|0)<0)NDb(f[j>>2]|0);NDb(i)}while((h|0)!=(B|0))}while(0);if((b[p>>0]|0)<0)NDb(f[A>>2]|0);h=b[n>>0]|0}while(0);if(h<<24>>24<0)NDb(f[C>>2]|0)}do if((g|0)!=(y|0)){g=f[(f[g+28>>2]|0)+40>>2]|0;if(!g)break;e=e|(wk[g&1023](t,d)|0)}while(0);l=l+12|0}while((l|0)!=(f[m>>2]|0))}if(!e)hNa(d)}if((E|0)==76)TDb(C);else if((E|0)==120){dNa(d,1)|0;z=t;break}}else z=0}else E=121}while(0);if((E|0)==121)z=0;if((b[D+11>>0]|0)<0)NDb(f[D>>2]|0);E=z;u=F;return E|0}function vNa(a){a=a|0;return}function wNa(a){a=a|0;NDb(a);return}function xNa(a,b){a=a|0;b=b|0;a=f[a+4>>2]|0;return wk[f[(f[a>>2]|0)+20>>2]&1023](a,b)|0}function yNa(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0;f[a>>2]=128428;j=a+560|0;c=f[j>>2]|0;if(c|0)Nk[f[(f[c>>2]|0)+4>>2]&2047](c);i=a+564|0;c=f[i>>2]|0;do if(c|0){h=a+572|0;d=f[h>>2]|0;if((d|0)>0){g=0;do{c=c+(g<<2)|0;e=f[c>>2]|0;if(e){Nk[f[(f[e>>2]|0)+4>>2]&2047](e);c=(f[i>>2]|0)+(g<<2)|0;d=f[h>>2]|0}f[c>>2]=0;g=g+1|0;c=f[i>>2]|0}while((g|0)<(d|0));if(!c)break}ODb(c)}while(0);f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[a+532>>2]=128388;c=a+544|0;d=f[c>>2]|0;if(d|0)ODb(d);f[a+536>>2]=256;f[a+540>>2]=0;f[c>>2]=0;f[a+548>>2]=7;b[a+552>>0]=0;f[a+556>>2]=0;f[a+4>>2]=128448;f[a+8>>2]=0;b[a+12>>0]=1;iGb(a+16|0,0,260)|0;b[a+52>>0]=1;b[a+29>>0]=1;b[a+30>>0]=1;b[a+33>>0]=1;iGb(a+276|0,0,256)|0;b[a+399>>0]=1;b[a+401>>0]=1;b[a+310>>0]=1;b[a+315>>0]=1;return}function zNa(a){a=a|0;f[a>>2]=128448;f[a+4>>2]=0;b[a+8>>0]=1;iGb(a+12|0,0,260)|0;b[a+48>>0]=1;b[a+25>>0]=1;b[a+26>>0]=1;b[a+29>>0]=1;iGb(a+272|0,0,256)|0;b[a+395>>0]=1;b[a+397>>0]=1;b[a+306>>0]=1;b[a+311>>0]=1;return}function ANa(a){a=a|0;NDb(a);return}function BNa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0;if((a|0)==(c|0))return a|0;g=a+4|0;f[g>>2]=0;e=a+8|0;b[e>>0]=1;d=a+12|0;iGb(d|0,0,260)|0;b[a+48>>0]=1;b[a+25>>0]=1;b[a+26>>0]=1;b[a+29>>0]=1;iGb(a+272|0,0,256)|0;b[a+395>>0]=1;b[a+397>>0]=1;b[a+306>>0]=1;b[a+311>>0]=1;f[g>>2]=f[c+4>>2];b[e>>0]=b[c+8>>0]|0;f[d>>2]=f[c+12>>2];d=0;do{b[a+16+d>>0]=b[c+16+d>>0]|0;d=d+1|0}while((d|0)!=256);d=0;do{b[a+272+d>>0]=b[c+272+d>>0]|0;d=d+1|0}while((d|0)!=256);return a|0}function CNa(a){a=a|0;return (b[a+8>>0]|0)!=0|0}function DNa(a){a=a|0;yNa(a);NDb(a);return}function ENa(a){a=a|0;RNa(a,128540);rsb(a+180|0);return}function FNa(a){a=a|0;RNa(a,128540);rsb(a+180|0);NDb(a);return}function GNa(a,b){a=a|0;b=b|0;var c=0;c=(aHa(0)|0)+244|0;return UNa(f[c>>2]|0,b,a)|0}function HNa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0;h=u;u=u+16|0;e=h;g=a+108|0;if((f[g>>2]|0)>0){d=0;do{b[e>>0]=32;Nv(a,e,1)|0;d=d+1|0}while((d|0)<(f[g>>2]|0))}g=b[c+11>>0]|0;d=g<<24>>24<0;g=Nv(Nv(a,d?f[c>>2]|0:c,d?f[c+4>>2]|0:g&255)|0,232030,2)|0;Ktb(e,g+(f[(f[g>>2]|0)+-12>>2]|0)|0);c=Bvb(e,295164)|0;c=wk[f[(f[c>>2]|0)+28>>2]&1023](c,10)|0;Cvb(e);rub(g,c)|0;Rtb(g)|0;u=h;return}function INa(a){a=a|0;var c=0,d=0,e=0,g=0;g=u;u=u+16|0;d=g;e=a+108|0;if((f[e>>2]|0)>0){c=0;do{b[d>>0]=32;Nv(a,d,1)|0;c=c+1|0}while((c|0)<(f[e>>2]|0))}e=Nv(a,232028,1)|0;Ktb(d,e+(f[(f[e>>2]|0)+-12>>2]|0)|0);a=Bvb(d,295164)|0;a=wk[f[(f[a>>2]|0)+28>>2]&1023](a,10)|0;Cvb(d);rub(e,a)|0;Rtb(e)|0;u=g;return}function JNa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0;h=u;u=u+16|0;e=h;g=a+108|0;if((f[g>>2]|0)>0){d=0;do{b[e>>0]=32;Nv(a,e,1)|0;d=d+1|0}while((d|0)<(f[g>>2]|0))}d=Nv(a,232023,4)|0;g=b[c+11>>0]|0;a=g<<24>>24<0;g=Nv(d,a?f[c>>2]|0:c,a?f[c+4>>2]|0:g&255)|0;Ktb(e,g+(f[(f[g>>2]|0)+-12>>2]|0)|0);c=Bvb(e,295164)|0;c=wk[f[(f[c>>2]|0)+28>>2]&1023](c,10)|0;Cvb(e);rub(g,c)|0;Rtb(g)|0;u=h;return}function KNa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0;h=u;u=u+16|0;e=h;g=a+108|0;if((f[g>>2]|0)>0){d=0;do{b[e>>0]=32;Nv(a,e,1)|0;d=d+1|0}while((d|0)<(f[g>>2]|0))}d=Nv(a,232013,9)|0;g=b[c+11>>0]|0;a=g<<24>>24<0;g=Nv(d,a?f[c>>2]|0:c,a?f[c+4>>2]|0:g&255)|0;Ktb(e,g+(f[(f[g>>2]|0)+-12>>2]|0)|0);c=Bvb(e,295164)|0;c=wk[f[(f[c>>2]|0)+28>>2]&1023](c,10)|0;Cvb(e);rub(g,c)|0;Rtb(g)|0;u=h;return}function LNa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0;e=u;u=u+16|0;d=e;switch(f[b+144>>2]|0){case 1:{if(S0(2)|0){b=Nv(Mv(2)|0,231865,71)|0;Ktb(d,b+(f[(f[b>>2]|0)+-12>>2]|0)|0);g=Bvb(d,295164)|0;g=wk[f[(f[g>>2]|0)+28>>2]&1023](g,10)|0;Cvb(d);rub(b,g)|0;Rtb(b)|0}VDb(a,c);u=e;return}case 2:{if(S0(2)|0){g=Nv(Mv(2)|0,231937,75)|0;Ktb(d,g+(f[(f[g>>2]|0)+-12>>2]|0)|0);b=Bvb(d,295164)|0;b=wk[f[(f[b>>2]|0)+28>>2]&1023](b,10)|0;Cvb(d);rub(g,b)|0;Rtb(g)|0}VDb(a,c);u=e;return}case 3:{fIa(a,c);u=e;return}default:{VDb(a,c);u=e;return}}}function MNa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=u;u=u+160|0;h=j+136|0;i=j;TNa(a,c+132|0);d=c+152|0;if(!(f[d>>2]|0)){jEb(a,231860)|0;i=f[d>>2]|0;i=i+1|0;f[d>>2]=i;u=j;return}e=i+56|0;g=i+4|0;f[i>>2]=62964;f[e>>2]=62984;Itb(i+56|0,g);f[i+128>>2]=0;f[i+132>>2]=-1;f[i>>2]=104612;f[e>>2]=104632;Otb(g);f[g>>2]=87888;c=i+36|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;f[i+52>>2]=16;b[h>>0]=95;k=Nv(i,h,1)|0;jub(k,f[d>>2]|0)|0;HZ(h,g);k=h+11|0;l=b[k>>0]|0;m=l<<24>>24<0;iEb(a,m?f[h>>2]|0:h,m?f[h+4>>2]|0:l&255)|0;if((b[k>>0]|0)<0)NDb(f[h>>2]|0);f[i>>2]=104612;f[e>>2]=104632;f[g>>2]=87888;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);xsb(g);ttb(i,104644);rsb(e);jEb(a,231860)|0;m=f[d>>2]|0;m=m+1|0;f[d>>2]=m;u=j;return}function NNa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=u;u=u+160|0;h=j+136|0;i=j;TNa(a,c+132|0);d=c+160|0;if(!(f[d>>2]|0)){jEb(a,231854)|0;i=f[d>>2]|0;i=i+1|0;f[d>>2]=i;u=j;return}e=i+56|0;g=i+4|0;f[i>>2]=62964;f[e>>2]=62984;Itb(i+56|0,g);f[i+128>>2]=0;f[i+132>>2]=-1;f[i>>2]=104612;f[e>>2]=104632;Otb(g);f[g>>2]=87888;c=i+36|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;f[i+52>>2]=16;b[h>>0]=95;k=Nv(i,h,1)|0;jub(k,f[d>>2]|0)|0;HZ(h,g);k=h+11|0;l=b[k>>0]|0;m=l<<24>>24<0;iEb(a,m?f[h>>2]|0:h,m?f[h+4>>2]|0:l&255)|0;if((b[k>>0]|0)<0)NDb(f[h>>2]|0);f[i>>2]=104612;f[e>>2]=104632;f[g>>2]=87888;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);xsb(g);ttb(i,104644);rsb(e);jEb(a,231854)|0;m=f[d>>2]|0;m=m+1|0;f[d>>2]=m;u=j;return}function ONa(a){a=a|0;var c=0;f[a+108>>2]=0;f[a+112>>2]=2;f[a+116>>2]=10;f[a+144>>2]=0;b[a+148>>0]=0;f[a+152>>2]=0;b[a+156>>0]=0;f[a+160>>2]=0;c=a+164|0;b[c>>0]=0;a=Th(231822)|0;if(!a)return;a=(kpb(a,231851)|0)==0&1;b[c>>0]=a;return}function PNa(a){a=a|0;a=a+(f[(f[a>>2]|0)+-12>>2]|0)|0;RNa(a,128540);rsb(a+180|0);return}function QNa(a){a=a|0;a=a+(f[(f[a>>2]|0)+-12>>2]|0)|0;RNa(a,128540);rsb(a+180|0);NDb(a);return}function RNa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0;d=f[c>>2]|0;f[a>>2]=d;f[a+(f[d+-12>>2]|0)>>2]=f[c+28>>2];uDa(a+168|0,f[a+172>>2]|0);d=a+132|0;if((b[d+11>>0]|0)<0)NDb(f[d>>2]|0);SNa(a+120|0,f[a+124>>2]|0);d=a+104|0;e=f[d>>2]|0;if(e|0?(h=e+8|0,g=f[h>>2]|0,f[h>>2]=g-1,(g|0)==1):0)X4(e,1,1);f[d>>2]=0;h=f[c+8>>2]|0;f[a>>2]=h;f[a+(f[h+-12>>2]|0)>>2]=f[c+20>>2];HCa(a+4|0);ttb(a,c+12|0);return}function SNa(a,c){a=a|0;c=c|0;if(!c)return;SNa(a,f[c>>2]|0);SNa(a,f[c+4>>2]|0);a=c+20|0;if((b[a+11>>0]|0)<0)NDb(f[a>>2]|0);NDb(c);return}function TNa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,j=0;g=tEb(c,46,-1)|0;e=b[c+11>>0]|0;i=e<<24>>24<0;d=i?f[c>>2]|0:c;e=i?f[c+4>>2]|0:e&255;a:do if(!e)e=-1;else{e=d+e|0;while(1){e=e+-1|0;if(epb(222487,h[e>>0]|0,2)|0)break;if((e|0)==(d|0)){e=-1;break a}}e=e-d|0}while(0);if((g|0)!=-1?!((e|0)!=-1&g>>>0<e>>>0):0){i=d+g|0;e=d;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;if(g>>>0>4294967279)TDb(a);if(g>>>0<11){b[a+11>>0]=g;if(g)j=14}else{c=g+16&-16;j=LDb(c)|0;f[a>>2]=j;f[a+8>>2]=c|-2147483648;f[a+4>>2]=g;a=j;j=14}if((j|0)==14){c=i+(0-e)|0;e=a;while(1){b[e>>0]=b[d>>0]|0;d=d+1|0;if((d|0)==(i|0))break;else e=e+1|0}a=a+c|0}b[a>>0]=0;return}VDb(a,c);return}function UNa(a,c,d){a=a|0;c=c|0;d=d|0;var e=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,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=u;u=u+336|0;q=E+256|0;x=E;B=E+312|0;C=E+300|0;D=E+288|0;z=E+276|0;A=E+264|0;p=c+8|0;if((f[p>>2]|0)>1?(f[x>>2]=0,f[x+4>>2]=0,f[x+8>>2]=0,h=d+124|0,e=f[h>>2]|0,e|0):0){g=h;do{w=(f[e+16>>2]|0)>>>0<c>>>0;g=w?g:e;e=f[(w?e+4|0:e)>>2]|0}while((e|0)!=0);if((g|0)!=(h|0)?(f[g+16>>2]|0)>>>0<=c>>>0:0){$Db(x,g+20|0)|0;Vk[f[(f[d>>2]|0)+20>>2]&1023](d,x);if((b[x+11>>0]|0)<0)NDb(f[x>>2]|0);D=1;u=E;return D|0}}g=sk[f[(f[c>>2]|0)+28>>2]&2047](c)|0;f[B>>2]=0;f[B+4>>2]=0;f[B+8>>2]=0;h=Zob(g)|0;if(h>>>0>4294967279)TDb(B);if(h>>>0<11){b[B+11>>0]=h;if(!h)e=B;else{e=B;r=14}}else{r=h+16&-16;e=LDb(r)|0;f[B>>2]=e;f[B+8>>2]=r|-2147483648;f[B+4>>2]=h;r=14}if((r|0)==14)gGb(e|0,g|0,h|0)|0;b[e+h>>0]=0;g=sk[f[(f[c>>2]|0)+24>>2]&2047](c)|0;f[C>>2]=0;f[C+4>>2]=0;f[C+8>>2]=0;h=Zob(g)|0;if(h>>>0>4294967279)TDb(C);if(h>>>0<11){b[C+11>>0]=h;if(!h)e=C;else{e=C;r=20}}else{r=h+16&-16;e=LDb(r)|0;f[C>>2]=e;f[C+8>>2]=r|-2147483648;f[C+4>>2]=h;r=20}if((r|0)==20)gGb(e|0,g|0,h|0)|0;b[e+h>>0]=0;yY(x,C,232033);w=B+11|0;v=b[w>>0]|0;t=v<<24>>24<0;v=iEb(x,t?f[B>>2]|0:B,t?f[B+4>>2]|0:v&255)|0;f[D>>2]=f[v>>2];f[D+4>>2]=f[v+4>>2];f[D+8>>2]=f[v+8>>2];f[v>>2]=0;f[v+4>>2]=0;f[v+8>>2]=0;if((b[x+11>>0]|0)<0)NDb(f[x>>2]|0);h=a+96|0;j=fNa(h,D)|0;m=a+100|0;if((j|0)==(m|0)){f[x>>2]=x;i=x+4|0;f[i>>2]=x;l=x+8|0;f[l>>2]=0;a:do if(gNa(0,C,x)|0?(k=f[i>>2]|0,n=k,(x|0)!=(n|0)):0){g=k;e=n;while(1){if((NHa(aHa(0)|0,g+8|0)|0)==2)break;g=f[e+4>>2]|0;e=g;if((x|0)==(e|0)){r=30;break a}}k=0;e=UNa(a,c,d)|0}else r=30;while(0);if((r|0)==30){k=1;e=1;j=fNa(h,B)|0}if(f[l>>2]|0?(o=f[i>>2]|0,v=(f[x>>2]|0)+4|0,t=f[o>>2]|0,f[t+4>>2]=f[v>>2],f[f[v>>2]>>2]=t,f[l>>2]=0,(o|0)!=(x|0)):0){g=o;do{h=g;g=f[g+4>>2]|0;i=h+8|0;if((b[i+11>>0]|0)<0)NDb(f[i>>2]|0);NDb(h)}while((g|0)!=(x|0))}if(k){e=j;r=38}}else{e=j;r=38}if((r|0)==38)if((e|0)==(m|0))e=0;else{m=f[e+28>>2]|0;v=b[C+11>>0]|0;if(((v<<24>>24<0?f[C+4>>2]|0:v&255)|0)==3?(uEb(C,0,-1,241076,3)|0)==0:0)Vk[f[(f[d>>2]|0)+12>>2]&1023](d,m+16|0);else r=42;b:do if((r|0)==42){k=m+16|0;l=k+11|0;e=b[l>>0]|0;if(e<<24>>24<0){g=f[k>>2]|0;e=f[m+20>>2]|0}else{g=k;e=e&255}h=g+e|0;i=h;j=g;c:do if((e|0)>=2){while(1){e=e+-1|0;if(!e){r=52;break c}g=epb(g,58,e)|0;if(!g){r=52;break c}if(!(ipb(g,232033,2)|0))break;g=g+1|0;e=i-g|0;if((e|0)<2){r=52;break c}}if((g|0)!=(h|0)){e=f[(f[d>>2]|0)+12>>2]|0;if((g-j|0)!=-1){Vk[e&1023](d,k);break b}}else r=52}else r=52;while(0);if((r|0)==52)e=f[(f[d>>2]|0)+12>>2]|0;yY(z,C,232033);v=b[l>>0]|0;t=v<<24>>24<0;v=iEb(z,t?f[k>>2]|0:k,t?f[m+20>>2]|0:v&255)|0;f[x>>2]=f[v>>2];f[x+4>>2]=f[v+4>>2];f[x+8>>2]=f[v+8>>2];f[v>>2]=0;f[v+4>>2]=0;f[v+8>>2]=0;Vk[e&1023](d,x);if((b[x+11>>0]|0)<0)NDb(f[x>>2]|0);if((b[z+11>>0]|0)<0)NDb(f[z>>2]|0)}while(0);t=d+112|0;v=d+108|0;f[v>>2]=(f[v>>2]|0)+(f[t>>2]|0);if((f[p>>2]|0)>1){f[z>>2]=0;f[z+4>>2]=0;f[z+8>>2]=0;k=sk[f[(f[c>>2]|0)+28>>2]&2047](c)|0;l=d+128|0;j=f[l>>2]|0;f[q>>2]=k;f[q+4>>2]=j;_pb(x,232036,q)|0;eEb(z,x)|0;j=c;k=d+120|0;g=d+124|0;e=f[g>>2]|0;do if(e){h=d+124|0;while(1){g=f[e+16>>2]|0;if(g>>>0>c>>>0){g=f[e>>2]|0;if(!g){r=65;break}else{h=e;e=g}}else{if(g>>>0>=c>>>0){r=69;break}h=e+4|0;g=f[h>>2]|0;if(!g){r=68;break}else e=g}}if((r|0)==65){i=e;h=e;break}else if((r|0)==68){i=e;break}else if((r|0)==69){i=e;break}}else{i=g;h=g}while(0);e=f[h>>2]|0;if(!e){e=LDb(32)|0;f[e+16>>2]=j;g=e+20|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=i;f[h>>2]=e;g=f[f[k>>2]>>2]|0;if(!g)g=e;else{f[k>>2]=g;g=f[h>>2]|0}Aq(f[d+124>>2]|0,g);f[l>>2]=(f[l>>2]|0)+1}$Db(e+20|0,z)|0;Vk[f[(f[d>>2]|0)+24>>2]&1023](d,z);if((b[z+11>>0]|0)<0)NDb(f[z>>2]|0)}e=f[m+28>>2]|0;r=m+32|0;if((e|0)!=(f[r>>2]|0)){s=a+12|0;l=a+16|0;m=x+11|0;n=x+4|0;o=A+4|0;p=A+8|0;q=z+11|0;k=e;do{e=fNa(s,k)|0;if((e|0)==(l|0)){VDb(x,k);g=b[m>>0]|0;e=g<<24>>24<0;i=e?f[x>>2]|0:x;e=e?f[n>>2]|0:g&255;j=i+e|0;d:do if((e|0)>=2){while(1){e=e+-1|0;if((b[i+e>>0]|0)==58){h=i+e|0;if((b[h+-1>>0]|0)==58)break;if((e|0)==1){e=l;break d}}else if((e|0)==1){e=l;break d}}a=h+-1|0;e=a-i|0;if(!((a|0)==(j|0)|(e|0)==-1)){ZDb(z,x,0,e,A);f[A>>2]=A;f[o>>2]=A;f[p>>2]=0;do if(gNa(0,z,A)|0){e=f[o>>2]|0;g=e;if((A|0)==(g|0)){e=l;break}h=e;do{if((NHa(aHa(0)|0,h+8|0)|0)==2)e=fNa(s,k)|0;else e=l;h=f[g+4>>2]|0;g=h}while(!((e|0)!=(l|0)|(A|0)==(g|0)))}else e=l;while(0);do if(f[p>>2]|0){g=f[o>>2]|0;a=(f[A>>2]|0)+4|0;j=f[g>>2]|0;f[j+4>>2]=f[a>>2];f[f[a>>2]>>2]=j;f[p>>2]=0;if((g|0)==(A|0))break;do{h=g;g=f[g+4>>2]|0;i=h+8|0;if((b[i+11>>0]|0)<0)NDb(f[i>>2]|0);NDb(h)}while((g|0)!=(A|0))}while(0);if((b[q>>0]|0)<0)NDb(f[z>>2]|0);g=b[m>>0]|0}else e=l}else e=l;while(0);if(g<<24>>24<0)NDb(f[x>>2]|0)}if((e|0)!=(l|0)?(y=f[(f[e+28>>2]|0)+44>>2]|0,y|0):0)wk[y&1023](c,d)|0;k=k+12|0}while((k|0)!=(f[r>>2]|0))}e=(f[v>>2]|0)-(f[t>>2]|0)|0;f[v>>2]=(e|0)>0?e:0;Nk[f[(f[d>>2]|0)+16>>2]&2047](d);e=1}if((b[D+11>>0]|0)<0)NDb(f[D>>2]|0);if((b[C+11>>0]|0)<0)NDb(f[C>>2]|0);if((b[w>>0]|0)<0)NDb(f[B>>2]|0);D=e;u=E;return D|0}function VNa(){var a=0,c=0,d=0,e=0,g=0,h=0,i=0;g=u;u=u+32|0;c=g+12|0;d=g;n[72556]=1.0;n[72557]=0.0;n[72558]=0.0;n[72559]=0.0;n[72560]=1.0;n[72561]=0.0;n[72562]=0.0;n[72563]=0.0;n[72564]=1.0;a=LDb(32)|0;f[c>>2]=a;f[c+8>>2]=-2147483616;f[c+4>>2]=27;e=a;h=232058;i=e+27|0;do{b[e>>0]=b[h>>0]|0;e=e+1|0;h=h+1|0}while((e|0)<(i|0));b[a+27>>0]=0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;a=LDb(80)|0;f[d>>2]=a;f[d+8>>2]=-2147483568;f[d+4>>2]=65;e=a;h=232086;i=e+65|0;do{b[e>>0]=b[h>>0]|0;e=e+1|0;h=h+1|0}while((e|0)<(i|0));b[a+65>>0]=0;pV(oV()|0,2,c,d);if((b[d+11>>0]|0)<0)NDb(f[d>>2]|0);if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);a=LDb(48)|0;f[c>>2]=a;f[c+8>>2]=-2147483600;f[c+4>>2]=34;e=a;h=232152;i=e+34|0;do{b[e>>0]=b[h>>0]|0;e=e+1|0;h=h+1|0}while((e|0)<(i|0));b[a+34>>0]=0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;i=LDb(144)|0;f[d>>2]=i;f[d+8>>2]=-2147483504;f[d+4>>2]=141;gGb(i|0,232187,141)|0;b[i+141>>0]=0;pV(oV()|0,2,c,d);if((b[d+11>>0]|0)<0)NDb(f[d>>2]|0);if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);a=LDb(48)|0;f[c>>2]=a;f[c+8>>2]=-2147483600;f[c+4>>2]=34;e=a;h=232329;i=e+34|0;do{b[e>>0]=b[h>>0]|0;e=e+1|0;h=h+1|0}while((e|0)<(i|0));b[a+34>>0]=0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;a=LDb(80)|0;f[d>>2]=a;f[d+8>>2]=-2147483568;f[d+4>>2]=67;e=a;h=232364;i=e+67|0;do{b[e>>0]=b[h>>0]|0;e=e+1|0;h=h+1|0}while((e|0)<(i|0));b[a+67>>0]=0;pV(oV()|0,2,c,d);if((b[d+11>>0]|0)<0)NDb(f[d>>2]|0);if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);a=LDb(32)|0;f[c>>2]=a;f[c+8>>2]=-2147483616;f[c+4>>2]=22;e=a;h=232432;i=e+22|0;do{b[e>>0]=b[h>>0]|0;e=e+1|0;h=h+1|0}while((e|0)<(i|0));b[a+22>>0]=0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;a=LDb(64)|0;f[d>>2]=a;f[d+8>>2]=-2147483584;f[d+4>>2]=54;e=a;h=232455;i=e+54|0;do{b[e>>0]=b[h>>0]|0;e=e+1|0;h=h+1|0}while((e|0)<(i|0));b[a+54>>0]=0;pV(oV()|0,2,c,d);if((b[d+11>>0]|0)<0)NDb(f[d>>2]|0);if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);a=LDb(48)|0;f[c>>2]=a;f[c+8>>2]=-2147483600;f[c+4>>2]=33;e=a;h=232510;i=e+33|0;do{b[e>>0]=b[h>>0]|0;e=e+1|0;h=h+1|0}while((e|0)<(i|0));b[a+33>>0]=0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;a=LDb(96)|0;f[d>>2]=a;f[d+8>>2]=-2147483552;f[d+4>>2]=87;e=a;h=232544;i=e+87|0;do{b[e>>0]=b[h>>0]|0;e=e+1|0;h=h+1|0}while((e|0)<(i|0));b[a+87>>0]=0;pV(oV()|0,2,c,d);if((b[d+11>>0]|0)<0)NDb(f[d>>2]|0);if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);WNa()|0;f[72565]=0;f[72566]=0;f[72567]=0;a=LDb(32)|0;f[c>>2]=a;f[c+8>>2]=-2147483616;f[c+4>>2]=29;e=a;h=232632;i=e+29|0;do{b[e>>0]=b[h>>0]|0;e=e+1|0;h=h+1|0}while((e|0)<(i|0));b[a+29>>0]=0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;a=LDb(32)|0;f[d>>2]=a;f[d+8>>2]=-2147483616;f[d+4>>2]=28;e=a;h=232662;i=e+28|0;do{b[e>>0]=b[h>>0]|0;e=e+1|0;h=h+1|0}while((e|0)<(i|0));b[a+28>>0]=0;pV(oV()|0,2,c,d);if((b[d+11>>0]|0)<0)NDb(f[d>>2]|0);if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);a=LDb(48)|0;f[c>>2]=a;f[c+8>>2]=-2147483600;f[c+4>>2]=32;e=a;h=232691;i=e+32|0;do{b[e>>0]=b[h>>0]|0;e=e+1|0;h=h+1|0}while((e|0)<(i|0));b[a+32>>0]=0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;a=LDb(48)|0;f[d>>2]=a;f[d+8>>2]=-2147483600;f[d+4>>2]=37;e=a;h=232724;i=e+37|0;do{b[e>>0]=b[h>>0]|0;e=e+1|0;h=h+1|0}while((e|0)<(i|0));b[a+37>>0]=0;pV(oV()|0,2,c,d);if((b[d+11>>0]|0)<0)NDb(f[d>>2]|0);if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);a=LDb(32)|0;f[c>>2]=a;f[c+8>>2]=-2147483616;f[c+4>>2]=24;e=a;h=232762;i=e+24|0;do{b[e>>0]=b[h>>0]|0;e=e+1|0;h=h+1|0}while((e|0)<(i|0));b[a+24>>0]=0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;a=LDb(80)|0;f[d>>2]=a;f[d+8>>2]=-2147483568;f[d+4>>2]=74;e=a;h=232787;i=e+74|0;do{b[e>>0]=b[h>>0]|0;e=e+1|0;h=h+1|0}while((e|0)<(i|0));b[a+74>>0]=0;pV(oV()|0,2,c,d);if((b[d+11>>0]|0)<0)NDb(f[d>>2]|0);if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);aHa(0)|0;XNa(295609);a=LDb(32)|0;f[c>>2]=a;f[c+8>>2]=-2147483616;f[c+4>>2]=28;e=a;h=231822;i=e+28|0;do{b[e>>0]=b[h>>0]|0;e=e+1|0;h=h+1|0}while((e|0)<(i|0));b[a+28>>0]=0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;i=d+11|0;b[i>>0]=8;h=d;f[h>>2]=2082491983;f[h+4>>2]=1179012896;b[d+8>>0]=0;pV(oV()|0,2,c,d);if((b[i>>0]|0)<0)NDb(f[d>>2]|0);if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);f[72569]=0;f[72570]=0;f[72568]=290276;f[72572]=0;f[72573]=0;f[72571]=290288;aJa(290272,232862,0);aJa(290272,232871,1);aJa(290272,232884,2);aJa(290272,232907,3);aJa(290272,232926,4);a=LDb(16)|0;f[c>>2]=a;f[c+8>>2]=-2147483632;f[c+4>>2]=13;e=a;h=232942;i=e+13|0;do{b[e>>0]=b[h>>0]|0;e=e+1|0;h=h+1|0}while((e|0)<(i|0));b[a+13>>0]=0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;a=LDb(64)|0;f[d>>2]=a;f[d+8>>2]=-2147483584;f[d+4>>2]=49;e=a;h=232956;i=e+49|0;do{b[e>>0]=b[h>>0]|0;e=e+1|0;h=h+1|0}while((e|0)<(i|0));b[a+49>>0]=0;_Na(290296,6,c,d,1483);if((b[d+11>>0]|0)<0)NDb(f[d>>2]|0);if((b[c+11>>0]|0)>=0){u=g;return}NDb(f[c>>2]|0);u=g;return}function WNa(){var a=0;if(b[288168]|0)return 290304;if(!(PFb(288168)|0))return 290304;a=LDb(168)|0;nWa(a);f[72576]=a;a=a+8|0;f[a>>2]=(f[a>>2]|0)+1;return 290304}function XNa(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0;i=u;u=u+16|0;g=i+4|0;h=i;e=Wx()|0;if(!(b[(f[e>>2]|0)+212>>0]|0)){u=i;return}if(S0(4)|0){e=Nv(Mv(4)|0,235502,75)|0;Ktb(g,e+(f[(f[e>>2]|0)+-12>>2]|0)|0);d=Bvb(g,295164)|0;d=wk[f[(f[d>>2]|0)+28>>2]&1023](d,10)|0;Cvb(g);rub(e,d)|0;Rtb(e)|0}a=Wx()|0;a=f[(f[a>>2]|0)+216>>2]|0;e=Wx()|0;if((a|0)==(f[(f[e>>2]|0)+220>>2]|0)){u=i;return}do{c=(aHa(0)|0)+160|0;ZMa(h,a,f[c>>2]|0);c=f[h>>2]|0;if(c|0){if(S0(4)|0){j=Nv(Mv(4)|0,235578,15)|0;e=b[a+11>>0]|0;d=e<<24>>24<0;e=Nv(j,d?f[a>>2]|0:a,d?f[a+4>>2]|0:e&255)|0;Ktb(g,e+(f[(f[e>>2]|0)+-12>>2]|0)|0);d=Bvb(g,295164)|0;d=wk[f[(f[d>>2]|0)+28>>2]&1023](d,10)|0;Cvb(g);rub(e,d)|0;Rtb(e)|0}d=Wx()|0;d=XMa((f[d>>2]|0)+256|0,a)|0;e=f[d>>2]|0;if(((e|0)!=(c|0)?(f[d>>2]=c,j=c+8|0,f[j>>2]=(f[j>>2]|0)+1,e|0):0)?(d=e+8|0,j=f[d>>2]|0,f[d>>2]=j-1,(j|0)==1):0)X4(e,1,1);c=f[h>>2]|0;if(c|0?(e=c+8|0,j=f[e>>2]|0,f[e>>2]=j-1,(j|0)==1):0)X4(c,1,1)}a=a+12|0;j=Wx()|0}while((a|0)!=(f[(f[j>>2]|0)+220>>2]|0));u=i;return}function YNa(){var a=0;a=LDb(280)|0;q2(a);return a|0}function ZNa(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=u;u=u+16|0;i=n;m=a+112|0;c=f[m>>2]|0;f[m>>2]=154;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;d=i+11|0;b[d>>0]=9;e=i;g=246516;h=e+9|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[i+9>>0]=0;hOa(a,i);if((b[d>>0]|0)<0)NDb(f[i>>2]|0);f[m>>2]=c;d=LDb(72)|0;BCa(d);f[d+12>>2]=0;f[d+16>>2]=2147483647;f[d+20>>2]=7;f[d+24>>2]=2;f[d+28>>2]=4;f[d>>2]=128600;e=d+32|0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;c=LDb(32)|0;f[e>>2]=c;f[d+40>>2]=-2147483616;f[d+36>>2]=16;e=c;g=233086;h=e+16|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[c+16>>0]=0;f[d+44>>2]=1056;f[d+48>>2]=0;f[d+52>>2]=1057;f[d+56>>2]=0;f[d+60>>2]=801;f[d+64>>2]=0;f[d+68>>2]=0;kOa(a,d,50);l=LDb(48)|0;oOa(l,233103,1058,468,469);kOa(a,l,1);l=LDb(48)|0;oOa(l,233114,1059,470,471);kOa(a,l,1);l=LDb(48)|0;oOa(l,233125,1060,472,473);kOa(a,l,1);l=LDb(48)|0;oOa(l,233135,1061,474,475);kOa(a,l,1);l=LDb(48)|0;oOa(l,233154,1062,476,477);kOa(a,l,1);l=LDb(48)|0;oOa(l,233167,1063,478,479);kOa(a,l,1);l=LDb(48)|0;oOa(l,233180,1064,480,481);kOa(a,l,1);l=LDb(48)|0;oOa(l,233197,1065,482,483);kOa(a,l,1);l=f[m>>2]|0;f[m>>2]=112;b[i+11>>0]=10;e=i;g=233103;h=e+10|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[i+10>>0]=0;j=a+52|0;c=f[j>>2]|0;k=a+56|0;if((c|0)==(f[k>>2]|0))d=c;else while(1){g=f[c>>2]|0;g=sk[f[(f[g>>2]|0)+28>>2]&2047](g)|0;d=b[g+11>>0]|0;e=d<<24>>24<0;d=d&255;a:do if(((e?f[g+4>>2]|0:d)|0)==10){h=f[g>>2]|0;b:do if(e){if(ipb(h,i,10)|0)break a}else{if((f[i>>2]&255)<<24>>24!=(h&255)<<24>>24)break a;e=i;while(1){d=d+-1|0;g=g+1|0;if(!d)break b;e=e+1|0;if((b[g>>0]|0)!=(b[e>>0]|0))break a}}while(0);f[(f[c>>2]|0)+16>>2]=(f[m>>2]|0)+-1}while(0);c=c+4|0;if((c|0)==(f[k>>2]|0)){d=c;break}}c=f[j>>2]|0;b[i+11>>0]=10;e=i;g=233114;h=e+10|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[i+10>>0]=0;if((c|0)==(d|0))c=d;else do{g=f[c>>2]|0;g=sk[f[(f[g>>2]|0)+28>>2]&2047](g)|0;d=b[g+11>>0]|0;e=d<<24>>24<0;d=d&255;c:do if(((e?f[g+4>>2]|0:d)|0)==10){h=f[g>>2]|0;d:do if(e){if(ipb(h,i,10)|0)break c}else{if((f[i>>2]&255)<<24>>24!=(h&255)<<24>>24)break c;e=i;while(1){d=d+-1|0;g=g+1|0;if(!d)break d;e=e+1|0;if((b[g>>0]|0)!=(b[e>>0]|0))break c}}while(0);f[(f[c>>2]|0)+16>>2]=(f[m>>2]|0)+-1}while(0);c=c+4|0}while((c|0)!=(f[k>>2]|0));d=f[j>>2]|0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;b[i+11>>0]=9;e=i;g=233125;h=e+9|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[i+9>>0]=0;if((d|0)!=(c|0)){c=d;do{g=f[c>>2]|0;g=sk[f[(f[g>>2]|0)+28>>2]&2047](g)|0;d=b[g+11>>0]|0;e=d<<24>>24<0;d=d&255;e:do if(((e?f[g+4>>2]|0:d)|0)==9){h=f[g>>2]|0;f:do if(e){if(ipb(h,i,9)|0)break e}else{if((f[i>>2]&255)<<24>>24!=(h&255)<<24>>24)break e;e=i;while(1){d=d+-1|0;g=g+1|0;if(!d)break f;e=e+1|0;if((b[g>>0]|0)!=(b[e>>0]|0))break e}}while(0);f[(f[c>>2]|0)+16>>2]=(f[m>>2]|0)+-1}while(0);c=c+4|0}while((c|0)!=(f[k>>2]|0))}i=LDb(32)|0;e=i;g=233135;h=e+18|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[i+18>>0]=0;d=f[j>>2]|0;if((d|0)!=(c|0))do{g=f[d>>2]|0;g=sk[f[(f[g>>2]|0)+28>>2]&2047](g)|0;c=b[g+11>>0]|0;e=c<<24>>24<0;c=c&255;g:do if(((e?f[g+4>>2]|0:c)|0)==18){h=f[g>>2]|0;h:do if(e){if(ipb(h,i,18)|0)break g}else{if((b[i>>0]|0)!=(h&255)<<24>>24)break g;e=i;while(1){c=c+-1|0;g=g+1|0;if(!c)break h;e=e+1|0;if((b[g>>0]|0)!=(b[e>>0]|0))break g}}while(0);f[(f[d>>2]|0)+16>>2]=(f[m>>2]|0)+-1}while(0);d=d+4|0}while((d|0)!=(f[k>>2]|0));NDb(i);i=LDb(16)|0;e=i;g=233154;h=e+12|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[i+12>>0]=0;c=f[j>>2]|0;if((c|0)!=(f[k>>2]|0))do{g=f[c>>2]|0;g=sk[f[(f[g>>2]|0)+28>>2]&2047](g)|0;d=b[g+11>>0]|0;e=d<<24>>24<0;d=d&255;i:do if(((e?f[g+4>>2]|0:d)|0)==12){h=f[g>>2]|0;j:do if(e){if(ipb(h,i,12)|0)break i}else{if((b[i>>0]|0)!=(h&255)<<24>>24)break i;e=i;while(1){d=d+-1|0;g=g+1|0;if(!d)break j;e=e+1|0;if((b[g>>0]|0)!=(b[e>>0]|0))break i}}while(0);f[(f[c>>2]|0)+16>>2]=(f[m>>2]|0)+-1}while(0);c=c+4|0}while((c|0)!=(f[k>>2]|0));NDb(i);i=LDb(16)|0;e=i;g=233167;h=e+12|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[i+12>>0]=0;c=f[j>>2]|0;if((c|0)!=(f[k>>2]|0))do{g=f[c>>2]|0;g=sk[f[(f[g>>2]|0)+28>>2]&2047](g)|0;d=b[g+11>>0]|0;e=d<<24>>24<0;d=d&255;k:do if(((e?f[g+4>>2]|0:d)|0)==12){h=f[g>>2]|0;l:do if(e){if(ipb(h,i,12)|0)break k}else{if((b[i>>0]|0)!=(h&255)<<24>>24)break k;e=i;while(1){d=d+-1|0;g=g+1|0;if(!d)break l;e=e+1|0;if((b[g>>0]|0)!=(b[e>>0]|0))break k}}while(0);f[(f[c>>2]|0)+16>>2]=(f[m>>2]|0)+-1}while(0);c=c+4|0}while((c|0)!=(f[k>>2]|0));NDb(i);i=LDb(32)|0;e=i;g=233180;h=e+16|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[i+16>>0]=0;c=f[j>>2]|0;if((c|0)!=(f[k>>2]|0))do{g=f[c>>2]|0;g=sk[f[(f[g>>2]|0)+28>>2]&2047](g)|0;d=b[g+11>>0]|0;e=d<<24>>24<0;d=d&255;m:do if(((e?f[g+4>>2]|0:d)|0)==16){h=f[g>>2]|0;n:do if(e){if(ipb(h,i,16)|0)break m}else{if((b[i>>0]|0)!=(h&255)<<24>>24)break m;e=i;while(1){d=d+-1|0;g=g+1|0;if(!d)break n;e=e+1|0;if((b[g>>0]|0)!=(b[e>>0]|0))break m}}while(0);f[(f[c>>2]|0)+16>>2]=(f[m>>2]|0)+-1}while(0);c=c+4|0}while((c|0)!=(f[k>>2]|0));NDb(i);i=LDb(16)|0;e=i;g=233197;h=e+12|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[i+12>>0]=0;c=f[j>>2]|0;if((c|0)!=(f[k>>2]|0))do{g=f[c>>2]|0;g=sk[f[(f[g>>2]|0)+28>>2]&2047](g)|0;d=b[g+11>>0]|0;e=d<<24>>24<0;d=d&255;o:do if(((e?f[g+4>>2]|0:d)|0)==12){h=f[g>>2]|0;p:do if(e){if(ipb(h,i,12)|0)break o}else{if((b[i>>0]|0)!=(h&255)<<24>>24)break o;e=i;while(1){d=d+-1|0;g=g+1|0;if(!d)break p;e=e+1|0;if((b[g>>0]|0)!=(b[e>>0]|0))break o}}while(0);f[(f[c>>2]|0)+16>>2]=(f[m>>2]|0)+-1}while(0);c=c+4|0}while((c|0)!=(f[k>>2]|0));NDb(i);c=LDb(56)|0;KOa(c,233210,0);f[c>>2]=128680;f[c+40>>2]=1066;f[c+44>>2]=0;f[c+48>>2]=802;f[c+52>>2]=0;f[c+20>>2]=7;kOa(a,c,2);c=LDb(56)|0;KOa(c,233222,0);f[c>>2]=128680;f[c+40>>2]=1067;f[c+44>>2]=0;f[c+48>>2]=803;f[c+52>>2]=0;f[c+20>>2]=7;kOa(a,c,2);c=LDb(56)|0;KOa(c,233234,0);f[c>>2]=128680;f[c+40>>2]=1068;f[c+44>>2]=0;f[c+48>>2]=804;f[c+52>>2]=0;f[c+20>>2]=7;kOa(a,c,2);c=LDb(56)|0;KOa(c,233245,0);f[c>>2]=128680;f[c+40>>2]=1069;f[c+44>>2]=0;f[c+48>>2]=805;f[c+52>>2]=0;f[c+20>>2]=7;kOa(a,c,2);c=LDb(56)|0;KOa(c,233265,0);f[c>>2]=128680;f[c+40>>2]=1070;f[c+44>>2]=0;f[c+48>>2]=806;f[c+52>>2]=0;f[c+20>>2]=7;kOa(a,c,2);c=LDb(72)|0;BCa(c);f[c+12>>2]=0;f[c+16>>2]=2147483647;f[c+20>>2]=7;f[c+24>>2]=2;f[c+28>>2]=4;f[c>>2]=128724;e=c+32|0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;d=LDb(32)|0;f[e>>2]=d;f[c+40>>2]=-2147483616;f[c+36>>2]=17;e=d;g=233279;h=e+17|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[d+17>>0]=0;f[c+44>>2]=1071;f[c+48>>2]=0;f[c+52>>2]=1072;f[c+56>>2]=0;f[c+60>>2]=807;f[c+64>>2]=0;f[c+68>>2]=0;kOa(a,c,50);c=LDb(72)|0;BCa(c);f[c+12>>2]=0;f[c+16>>2]=2147483647;f[c+20>>2]=7;f[c+24>>2]=2;f[c+28>>2]=4;f[c>>2]=128724;e=c+32|0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;d=LDb(32)|0;f[e>>2]=d;f[c+40>>2]=-2147483616;f[c+36>>2]=21;e=d;g=233297;h=e+21|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[d+21>>0]=0;f[c+44>>2]=1073;f[c+48>>2]=0;f[c+52>>2]=1074;f[c+56>>2]=0;f[c+60>>2]=808;f[c+64>>2]=0;f[c+68>>2]=0;kOa(a,c,50);f[m>>2]=l;u=n;return}function _Na(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0;f[a>>2]=128276;g=a+4|0;f[g>>2]=0;h=LDb(120)|0;$Na(h,b,c,d);a=f[g>>2]|0;if(((a|0)!=(h|0)?(f[g>>2]=h,h=h+8|0,f[h>>2]=(f[h>>2]|0)+1,a|0):0)?(d=a+8|0,h=f[d>>2]|0,f[d>>2]=h-1,(h|0)==1):0)X4(a,1,1);if(e|0)Nk[e&2047](f[g>>2]|0);if(!(aHa(0)|0))return;e=(aHa(0)|0)+240|0;aOa(f[e>>2]|0,f[g>>2]|0);return}function $Na(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0;BCa(a);f[a>>2]=128580;f[a+12>>2]=c;g=a+16|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;VDb(a+28|0,d);g=a+40|0;f[g>>2]=g;f[a+44>>2]=g;c=a+100|0;f[a+104>>2]=0;f[a+108>>2]=0;d=a+104|0;h=a+48|0;i=h+52|0;do{f[h>>2]=0;h=h+4|0}while((h|0)<(i|0));f[c>>2]=d;f[a+112>>2]=0;b[a+116>>0]=0;dOa(e,g,32);return}function aOa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;i=u;u=u+16|0;d=i;if(!c){u=i;return}h=a+12|0;sk[f[(f[h>>2]|0)+8>>2]&2047](h)|0;e=a+24|0;g=c+28|0;if((AMa(e,g)|0)!=(a+28|0)?S0(2)|0:0){k=Nv(Mv(2)|0,233006,37)|0;a=b[g+11>>0]|0;j=a<<24>>24<0;a=Nv(Nv(k,j?f[g>>2]|0:g,j?f[c+32>>2]|0:a&255)|0,233044,17)|0;Ktb(d,a+(f[(f[a>>2]|0)+-12>>2]|0)|0);j=Bvb(d,295164)|0;j=wk[f[(f[j>>2]|0)+28>>2]&1023](j,10)|0;Cvb(d);rub(a,j)|0;Rtb(a)|0}a=bOa(e,g)|0;d=f[a>>2]|0;if(((d|0)!=(c|0)?(f[a>>2]=c,k=c+8|0,f[k>>2]=(f[k>>2]|0)+1,d|0):0)?(j=d+8|0,k=f[j>>2]|0,f[j>>2]=k-1,(k|0)==1):0)X4(d,1,1);sk[f[(f[h>>2]|0)+12>>2]&2047](h)|0;u=i;return}function bOa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;h=u;u=u+16|0;d=h;e=cOa(a,d,b)|0;c=f[e>>2]|0;if(c|0){a=c;a=a+28|0;u=h;return a|0}g=LDb(32)|0;VDb(g+16|0,b);f[g+28>>2]=0;c=f[d>>2]|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=c;f[e>>2]=g;c=f[f[a>>2]>>2]|0;if(!c)c=g;else{f[a>>2]=c;c=f[e>>2]|0}Aq(f[a+4>>2]|0,c);a=a+8|0;f[a>>2]=(f[a>>2]|0)+1;a=g;a=a+28|0;u=h;return a|0}function cOa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;e=a+4|0;h=f[e>>2]|0;if(!h){f[c>>2]=e;o=e;return o|0}m=b[d+11>>0]|0;l=m<<24>>24<0;m=l?f[d+4>>2]|0:m&255;l=l?f[d>>2]|0:d;g=a+4|0;e=h;while(1){d=e+16|0;h=b[d+11>>0]|0;a=h<<24>>24<0;h=a?f[e+20>>2]|0:h&255;k=h>>>0<m>>>0;j=k?h:m;i=(j|0)==0;if(!i?(n=a?f[d>>2]|0:d,o=ipb(l,n,j)|0,(o|0)!=0):0)if((o|0)<0)a=7;else{d=n;a=11}else if(m>>>0>=h>>>0)if(i)a=12;else{d=a?f[d>>2]|0:d;a=11}else a=7;if((a|0)==7){a=0;d=f[e>>2]|0;if(!d){a=8;break}else{g=e;e=d}}else if((a|0)==11){d=ipb(d,l,j)|0;if(d)if((d|0)<0)a=14;else{a=16;break}else a=12}if((a|0)==12)if(k)a=14;else{a=16;break}if((a|0)==14){d=e+4|0;a=f[d>>2]|0;if(!a){a=15;break}else{g=d;e=a}}}if((a|0)==8){f[c>>2]=e;o=e;return o|0}else if((a|0)==15){f[c>>2]=e;o=d;return o|0}else if((a|0)==16){f[c>>2]=e;o=g;return o|0}return 0}function dOa(a,c,d){a=a|0;c=c|0;d=d|0;var e=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,v=0,w=0,x=0,y=0,z=0,A=0,B=0;A=u;u=u+48|0;v=A;w=A+32|0;x=A+44|0;y=A+20|0;z=a+11|0;e=b[z>>0]|0;s=e<<24>>24<0;t=a+4|0;i=s?f[a>>2]|0:a;e=s?f[t>>2]|0:e&255;if(!e){u=A;return}g=i+e|0;e=i;while(1){if((b[e>>0]|0)!=d<<24>>24)break;h=e+1|0;if((h|0)==(g|0)){j=22;break}else e=h}if((j|0)==22){u=A;return}e=e-i|0;if((e|0)==-1){u=A;return}o=v+4|0;p=v+8|0;k=v+4|0;l=v+8|0;q=c+8|0;r=p+11|0;m=l+11|0;s=y+11|0;n=w+11|0;a:while(1){h=sEb(a,d,e)|0;if((h|0)==-1){j=16;break}ZDb(w,a,e,h-e|0,x);f[v>>2]=0;f[k>>2]=2147483647;VDb(l,w);j=LDb(28)|0;B=v;g=f[B+4>>2]|0;i=j+8|0;f[i>>2]=f[B>>2];f[i+4>>2]=g;i=j+16|0;f[i>>2]=f[l>>2];f[i+4>>2]=f[l+4>>2];f[i+8>>2]=f[l+8>>2];f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;f[j+4>>2]=c;i=f[c>>2]|0;f[j>>2]=i;f[i+4>>2]=j;f[c>>2]=j;f[q>>2]=(f[q>>2]|0)+1;if((b[m>>0]|0)<0)NDb(f[l>>2]|0);if((b[n>>0]|0)<0)NDb(f[w>>2]|0);g=b[z>>0]|0;B=g<<24>>24<0;j=B?f[a>>2]|0:a;g=B?f[t>>2]|0:g&255;if(g>>>0<=h>>>0){j=22;break}i=j+g|0;g=j+h|0;while(1){if((b[g>>0]|0)!=d<<24>>24)break;g=g+1|0;if((g|0)==(i|0)){j=22;break a}}g=g-j|0;if((g|0)==-1){j=22;break}else e=g}if((j|0)==16){B=b[z>>0]|0;ZDb(y,a,e,(B<<24>>24<0?f[t>>2]|0:B&255)-e|0,x);f[v>>2]=0;f[o>>2]=2147483647;VDb(p,y);B=LDb(28)|0;w=v;x=f[w+4>>2]|0;z=B+8|0;f[z>>2]=f[w>>2];f[z+4>>2]=x;z=B+16|0;f[z>>2]=f[p>>2];f[z+4>>2]=f[p+4>>2];f[z+8>>2]=f[p+8>>2];f[p>>2]=0;f[p+4>>2]=0;f[p+8>>2]=0;f[B+4>>2]=c;z=f[c>>2]|0;f[B>>2]=z;f[z+4>>2]=B;f[c>>2]=B;f[q>>2]=(f[q>>2]|0)+1;if((b[r>>0]|0)<0)NDb(f[p>>2]|0);if((b[s>>0]|0)<0)NDb(f[y>>2]|0);u=A;return}else if((j|0)==22){u=A;return}}function eOa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0;if(!c)return;eOa(a,f[c>>2]|0);eOa(a,f[c+4>>2]|0);a=c+16|0;d=c+28|0;e=f[d>>2]|0;if(e|0?(h=e+8|0,g=f[h>>2]|0,f[h>>2]=g-1,(g|0)==1):0)X4(e,1,1);f[d>>2]=0;if((b[a+11>>0]|0)<0)NDb(f[a>>2]|0);NDb(c);return}function fOa(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;f[a>>2]=128580;eOa(a+100|0,f[a+104>>2]|0);e=a+88|0;g=f[e>>2]|0;if(g|0){h=a+92|0;c=f[h>>2]|0;if((c|0)==(g|0))c=g;else{do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(k=d+8|0,j=f[k>>2]|0,f[k>>2]=j-1,(j|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(g|0));c=f[e>>2]|0}f[h>>2]=g;NDb(c)}c=f[a+76>>2]|0;if(c|0){f[a+80>>2]=c;NDb(c)}e=a+64|0;g=f[e>>2]|0;if(g|0){h=a+68|0;c=f[h>>2]|0;if((c|0)==(g|0))c=g;else{do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(j=d+8|0,k=f[j>>2]|0,f[j>>2]=k-1,(k|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(g|0));c=f[e>>2]|0}f[h>>2]=g;NDb(c)}e=a+52|0;g=f[e>>2]|0;if(g|0){h=a+56|0;c=f[h>>2]|0;if((c|0)==(g|0))c=g;else{do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(j=d+8|0,k=f[j>>2]|0,f[j>>2]=k-1,(k|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(g|0));c=f[e>>2]|0}f[h>>2]=g;NDb(c)}g=a+40|0;c=a+48|0;if(f[c>>2]|0?(i=f[a+44>>2]|0,k=(f[g>>2]|0)+4|0,j=f[i>>2]|0,f[j+4>>2]=f[k>>2],f[f[k>>2]>>2]=j,f[c>>2]=0,(i|0)!=(g|0)):0){c=i;do{d=c;c=f[c+4>>2]|0;e=d+16|0;if((b[e+11>>0]|0)<0)NDb(f[e>>2]|0);NDb(d)}while((c|0)!=(g|0))}c=a+28|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);c=a+16|0;if((b[c+11>>0]|0)>=0){V4(a);return}NDb(f[c>>2]|0);V4(a);return}function gOa(a){a=a|0;fOa(a);NDb(a);return}function hOa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=u;u=u+16|0;o=q;d=f[a+44>>2]|0;p=a+40|0;e=d;a:do if((p|0)!=(e|0)){l=b[c+11>>0]|0;m=l<<24>>24<0;l=m?f[c+4>>2]|0:l&255;m=m?f[c>>2]|0:c;n=(l|0)==0;b:while(1){k=d;i=k+16|0;g=b[i+11>>0]|0;h=g<<24>>24<0;g=g&255;do if(((h?f[k+20>>2]|0:g)|0)==(l|0)){k=f[i>>2]|0;j=h?k:i;k=k&255;if(h){if(n)break b;if(!(ipb(j,m,l)|0))break b;else break}if(n)break b;if((b[m>>0]|0)==k<<24>>24){h=m;do{g=g+-1|0;i=i+1|0;if(!g)break b;h=h+1|0}while((b[i>>0]|0)==(b[h>>0]|0))}}while(0);d=f[e+4>>2]|0;e=d;if((p|0)==(e|0))break a}f[d+8>>2]=f[a+112>>2];u=q;return}while(0);if(!(S0(2)|0)){u=q;return}p=Nv(Mv(2)|0,235419,56)|0;l=b[c+11>>0]|0;m=l<<24>>24<0;l=Nv(Nv(p,m?f[c>>2]|0:c,m?f[c+4>>2]|0:l&255)|0,235476,25)|0;m=a+28|0;p=b[m+11>>0]|0;n=p<<24>>24<0;p=Nv(l,n?f[m>>2]|0:m,n?f[a+32>>2]|0:p&255)|0;Ktb(o,p+(f[(f[p>>2]|0)+-12>>2]|0)|0);n=Bvb(o,295164)|0;n=wk[f[(f[n>>2]|0)+28>>2]&1023](n,10)|0;Cvb(o);rub(p,n)|0;Rtb(p)|0;u=q;return}function iOa(a){a=a|0;return a+220|0}function jOa(a){a=a|0;return a+220|0}function kOa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0;i=u;u=u+16|0;h=i;g=i+4|0;f[h>>2]=c;f[b+12>>2]=f[a+112>>2];d=a+52|0;f[g>>2]=b;if(b|0){e=b+8|0;f[e>>2]=(f[e>>2]|0)+1}e=a+56|0;c=f[e>>2]|0;if(c>>>0<(f[a+60>>2]|0)>>>0){b=f[g>>2]|0;f[c>>2]=b;if(b){c=b+8|0;f[c>>2]=(f[c>>2]|0)+1;c=f[e>>2]|0}f[e>>2]=c+4}else RVa(d,g);c=f[g>>2]|0;if(c|0?(e=c+8|0,g=f[e>>2]|0,f[e>>2]=g-1,(g|0)==1):0)X4(c,1,1);c=a+80|0;b=f[c>>2]|0;if((b|0)==(f[a+84>>2]|0)){WPa(a+76|0,h);u=i;return}else{f[b>>2]=f[h>>2];f[c>>2]=b+4;u=i;return}}function lOa(a){a=a|0;return (f[a+232>>2]|0)!=0|0}function mOa(a,b){a=a|0;b=b|0;var c=0,d=0;c=a+112|0;d=f[c>>2]|0;Vk[f[(f[d>>2]|0)+84>>2]&1023](d,a+24|0);gX(a);AA(b,LVa(a)|0);b=f[c>>2]|0;Vk[f[(f[b>>2]|0)+84>>2]&1023](b,a+40|0);gX(a);return 1}function nOa(a,b){a=a|0;b=b|0;var c=0,d=0;c=a+292|0;d=f[c>>2]|0;Vk[f[(f[d>>2]|0)+88>>2]&1023](d,a+24|0);d=f[c>>2]|0;Vk[f[(f[d>>2]|0)+72>>2]&1023](d,1049);KVa(a,f[b+232>>2]|0);b=f[c>>2]|0;Vk[f[(f[b>>2]|0)+88>>2]&1023](b,a+40|0);b=f[c>>2]|0;Vk[f[(f[b>>2]|0)+72>>2]&1023](b,1049);return 1}function oOa(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0;BCa(a);f[a+12>>2]=0;f[a+16>>2]=2147483647;f[a+20>>2]=1;f[a>>2]=131860;h=a+24|0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;i=Zob(c)|0;if(i>>>0>4294967279)TDb(h);if(i>>>0<11){b[h+11>>0]=i;if(i)j=6}else{k=i+16&-16;j=LDb(k)|0;f[h>>2]=j;f[a+32>>2]=k|-2147483648;f[a+28>>2]=i;h=j;j=6}if((j|0)==6)gGb(h|0,c|0,i|0)|0;b[h+i>>0]=0;f[a+36>>2]=d;f[a+40>>2]=e;f[a+44>>2]=g;return}function pOa(a){a=a|0;return (f[a+236>>2]|0)!=0|0}function qOa(a,b){a=a|0;b=b|0;var c=0,d=0;c=a+112|0;d=f[c>>2]|0;Vk[f[(f[d>>2]|0)+84>>2]&1023](d,a+24|0);gX(a);s2(b,LVa(a)|0,-1);b=f[c>>2]|0;Vk[f[(f[b>>2]|0)+84>>2]&1023](b,a+40|0);gX(a);return 1}function rOa(a,b){a=a|0;b=b|0;var c=0,d=0;c=a+292|0;d=f[c>>2]|0;Vk[f[(f[d>>2]|0)+88>>2]&1023](d,a+24|0);d=f[c>>2]|0;Vk[f[(f[d>>2]|0)+72>>2]&1023](d,1049);KVa(a,f[b+236>>2]|0);b=f[c>>2]|0;Vk[f[(f[b>>2]|0)+88>>2]&1023](b,a+40|0);b=f[c>>2]|0;Vk[f[(f[b>>2]|0)+72>>2]&1023](b,1049);return 1}function sOa(a){a=a|0;return (f[a+240>>2]|0)!=0|0}function tOa(a,b){a=a|0;b=b|0;var c=0,d=0;c=a+112|0;d=f[c>>2]|0;Vk[f[(f[d>>2]|0)+84>>2]&1023](d,a+24|0);gX(a);t2(b,LVa(a)|0,-1);b=f[c>>2]|0;Vk[f[(f[b>>2]|0)+84>>2]&1023](b,a+40|0);gX(a);return 1}function uOa(a,b){a=a|0;b=b|0;var c=0,d=0;c=a+292|0;d=f[c>>2]|0;Vk[f[(f[d>>2]|0)+88>>2]&1023](d,a+24|0);d=f[c>>2]|0;Vk[f[(f[d>>2]|0)+72>>2]&1023](d,1049);KVa(a,f[b+240>>2]|0);b=f[c>>2]|0;Vk[f[(f[b>>2]|0)+88>>2]&1023](b,a+40|0);b=f[c>>2]|0;Vk[f[(f[b>>2]|0)+72>>2]&1023](b,1049);return 1}function vOa(a){a=a|0;return (f[a+244>>2]|0)!=0|0}function wOa(a,b){a=a|0;b=b|0;var c=0,d=0;c=a+112|0;d=f[c>>2]|0;Vk[f[(f[d>>2]|0)+84>>2]&1023](d,a+24|0);gX(a);u2(b,LVa(a)|0,-1);b=f[c>>2]|0;Vk[f[(f[b>>2]|0)+84>>2]&1023](b,a+40|0);gX(a);return 1}function xOa(a,b){a=a|0;b=b|0;var c=0,d=0;c=a+292|0;d=f[c>>2]|0;Vk[f[(f[d>>2]|0)+88>>2]&1023](d,a+24|0);d=f[c>>2]|0;Vk[f[(f[d>>2]|0)+72>>2]&1023](d,1049);KVa(a,f[b+244>>2]|0);b=f[c>>2]|0;Vk[f[(f[b>>2]|0)+88>>2]&1023](b,a+40|0);b=f[c>>2]|0;Vk[f[(f[b>>2]|0)+72>>2]&1023](b,1049);return 1}function yOa(a){a=a|0;return (f[a+248>>2]|0)!=0|0}function zOa(a,b){a=a|0;b=b|0;var c=0,d=0;c=a+112|0;d=f[c>>2]|0;Vk[f[(f[d>>2]|0)+84>>2]&1023](d,a+24|0);gX(a);v2(b,LVa(a)|0,-1);b=f[c>>2]|0;Vk[f[(f[b>>2]|0)+84>>2]&1023](b,a+40|0);gX(a);return 1}function AOa(a,b){a=a|0;b=b|0;var c=0,d=0;c=a+292|0;d=f[c>>2]|0;Vk[f[(f[d>>2]|0)+88>>2]&1023](d,a+24|0);d=f[c>>2]|0;Vk[f[(f[d>>2]|0)+72>>2]&1023](d,1049);KVa(a,f[b+248>>2]|0);b=f[c>>2]|0;Vk[f[(f[b>>2]|0)+88>>2]&1023](b,a+40|0);b=f[c>>2]|0;Vk[f[(f[b>>2]|0)+72>>2]&1023](b,1049);return 1}function BOa(a){a=a|0;return (f[a+256>>2]|0)!=(f[a+252>>2]|0)|0}function COa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;j=u;u=u+16|0;g=j;i=a+112|0;h=f[i>>2]|0;Vk[f[(f[h>>2]|0)+44>>2]&1023](h,g);gX(a);g=f[g>>2]|0;h=a+24|0;e=f[i>>2]|0;Vk[f[(f[e>>2]|0)+84>>2]&1023](e,h);gX(a);if(!g){h=a+40|0;i=f[i>>2]|0;g=f[i>>2]|0;g=g+84|0;g=f[g>>2]|0;Vk[g&1023](i,h);gX(a);u=j;return 1}e=a+4|0;c=a+40|0;d=0;do{eEb(e,235105)|0;k=f[i>>2]|0;Vk[f[(f[k>>2]|0)+80>>2]&1023](k,e);gX(a);k=f[i>>2]|0;Vk[f[(f[k>>2]|0)+84>>2]&1023](k,h);gX(a);CA(b,d,LVa(a)|0,-1);k=f[i>>2]|0;Vk[f[(f[k>>2]|0)+84>>2]&1023](k,c);gX(a);d=d+1|0}while((d|0)!=(g|0));k=f[i>>2]|0;i=f[k>>2]|0;i=i+84|0;i=f[i>>2]|0;Vk[i&1023](k,c);gX(a);u=j;return 1}function DOa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0;c=b+252|0;g=b+256|0;h=a+292|0;d=f[h>>2]|0;Vk[f[(f[d>>2]|0)+40>>2]&1023](d,(f[g>>2]|0)-(f[c>>2]|0)>>2);d=a+24|0;e=f[h>>2]|0;Vk[f[(f[e>>2]|0)+88>>2]&1023](e,d);e=f[h>>2]|0;Vk[f[(f[e>>2]|0)+72>>2]&1023](e,1049);c=f[c>>2]|0;if((c|0)==(f[g>>2]|0)){a=a+40|0;g=f[h>>2]|0;e=f[g>>2]|0;e=e+88|0;e=f[e>>2]|0;Vk[e&1023](g,a);h=f[h>>2]|0;a=f[h>>2]|0;a=a+72|0;a=f[a>>2]|0;Vk[a&1023](h,1049);return 1}e=a+4|0;b=a+40|0;do{eEb(e,235105)|0;i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+84>>2]&1023](i,e);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+88>>2]&1023](i,d);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+72>>2]&1023](i,1049);KVa(a,f[c>>2]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+88>>2]&1023](i,b);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+72>>2]&1023](i,1049);c=c+4|0}while((c|0)!=(f[g>>2]|0));i=f[h>>2]|0;a=f[i>>2]|0;a=a+88|0;a=f[a>>2]|0;Vk[a&1023](i,b);i=f[h>>2]|0;h=f[i>>2]|0;h=h+72|0;h=f[h>>2]|0;Vk[h&1023](i,1049);return 1}function EOa(a){a=a|0;return (f[a+268>>2]|0)!=(f[a+264>>2]|0)|0}function FOa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;j=u;u=u+16|0;g=j;i=a+112|0;h=f[i>>2]|0;Vk[f[(f[h>>2]|0)+44>>2]&1023](h,g);gX(a);g=f[g>>2]|0;h=a+24|0;e=f[i>>2]|0;Vk[f[(f[e>>2]|0)+84>>2]&1023](e,h);gX(a);if(!g){h=a+40|0;i=f[i>>2]|0;g=f[i>>2]|0;g=g+84|0;g=f[g>>2]|0;Vk[g&1023](i,h);gX(a);u=j;return 1}e=a+4|0;c=a+40|0;d=0;do{eEb(e,235105)|0;k=f[i>>2]|0;Vk[f[(f[k>>2]|0)+80>>2]&1023](k,e);gX(a);k=f[i>>2]|0;Vk[f[(f[k>>2]|0)+84>>2]&1023](k,h);gX(a);DA(b,d,LVa(a)|0,-1);k=f[i>>2]|0;Vk[f[(f[k>>2]|0)+84>>2]&1023](k,c);gX(a);d=d+1|0}while((d|0)!=(g|0));k=f[i>>2]|0;i=f[k>>2]|0;i=i+84|0;i=f[i>>2]|0;Vk[i&1023](k,c);gX(a);u=j;return 1}function GOa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0;c=b+264|0;g=b+268|0;h=a+292|0;d=f[h>>2]|0;Vk[f[(f[d>>2]|0)+40>>2]&1023](d,(f[g>>2]|0)-(f[c>>2]|0)>>2);d=a+24|0;e=f[h>>2]|0;Vk[f[(f[e>>2]|0)+88>>2]&1023](e,d);e=f[h>>2]|0;Vk[f[(f[e>>2]|0)+72>>2]&1023](e,1049);c=f[c>>2]|0;if((c|0)==(f[g>>2]|0)){a=a+40|0;g=f[h>>2]|0;e=f[g>>2]|0;e=e+88|0;e=f[e>>2]|0;Vk[e&1023](g,a);h=f[h>>2]|0;a=f[h>>2]|0;a=a+72|0;a=f[a>>2]|0;Vk[a&1023](h,1049);return 1}e=a+4|0;b=a+40|0;do{eEb(e,235105)|0;i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+84>>2]&1023](i,e);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+88>>2]&1023](i,d);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+72>>2]&1023](i,1049);KVa(a,f[c>>2]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+88>>2]&1023](i,b);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+72>>2]&1023](i,1049);c=c+4|0}while((c|0)!=(f[g>>2]|0));i=f[h>>2]|0;a=f[i>>2]|0;a=a+88|0;a=f[a>>2]|0;Vk[a&1023](i,b);i=f[h>>2]|0;h=f[i>>2]|0;h=h+72|0;h=f[h>>2]|0;Vk[h&1023](i,1049);return 1}function HOa(a){a=a|0;return 0}function IOa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0;e=u;u=u+16|0;c=e;b[c>>0]=0;d=a+112|0;g=f[d>>2]|0;if(sk[f[(f[g>>2]|0)+12>>2]&2047](g)|0){u=e;return 1}g=f[d>>2]|0;Vk[f[(f[g>>2]|0)+16>>2]&1023](g,c);gX(a);u=e;return 1}function JOa(a,b){a=a|0;b=b|0;return 1}function KOa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;BCa(a);f[a+12>>2]=0;f[a+16>>2]=2147483647;f[a+20>>2]=1;f[a>>2]=131816;e=a+24|0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;g=Zob(c)|0;if(g>>>0>4294967279)TDb(e);if(g>>>0<11){b[e+11>>0]=g;if(!g){c=e;g=c+g|0;b[g>>0]=0;g=a+36|0;f[g>>2]=d;return}}else{i=g+16&-16;h=LDb(i)|0;f[e>>2]=h;f[a+32>>2]=i|-2147483648;f[a+28>>2]=g;e=h}gGb(e|0,c|0,g|0)|0;i=e;i=i+g|0;b[i>>0]=0;i=a+36|0;f[i>>2]=d;return}function LOa(a){a=a|0;return f[a+232>>2]|0}function MOa(a){a=a|0;return f[a+236>>2]|0}function NOa(a,b){a=a|0;b=b|0;s2(a,b,-1);return}function OOa(a){a=a|0;return f[a+240>>2]|0}function POa(a,b){a=a|0;b=b|0;t2(a,b,-1);return}function QOa(a){a=a|0;return f[a+244>>2]|0}function ROa(a,b){a=a|0;b=b|0;u2(a,b,-1);return}function SOa(a){a=a|0;return f[a+248>>2]|0}function TOa(a,b){a=a|0;b=b|0;v2(a,b,-1);return}function UOa(a){a=a|0;return a+252|0}function VOa(a){a=a|0;return a+252|0}function WOa(a){a=a|0;return a+264|0}function XOa(a){a=a|0;return a+264|0}function YOa(a){a=a|0;var c=0;f[a>>2]=128724;c=a+32|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);V4(a);return}function ZOa(a){a=a|0;var c=0;f[a>>2]=128724;c=a+32|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);V4(a);NDb(a);return}function _Oa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=u;u=u+32|0;i=n+16|0;l=n+4|0;j=n;f[i>>2]=0;f[l>>2]=0;m=l+4|0;f[m>>2]=0;k=l+8|0;f[k>>2]=0;h=b+112|0;g=f[h>>2]|0;if(sk[f[(f[g>>2]|0)+12>>2]&2047](g)|0){h=f[h>>2]|0;Vk[f[(f[h>>2]|0)+44>>2]&1023](h,i);gX(b);mPa(l,f[i>>2]|0);if(f[i>>2]|0){g=0;do{f[j>>2]=0;ZPa(b,j)|0;d=f[m>>2]|0;if((d|0)==(f[k>>2]|0))lPa(l,j);else{e=f[j>>2]|0;f[d>>2]=e;if(e){d=e+8|0;f[d>>2]=(f[d>>2]|0)+1;d=f[m>>2]|0}f[m>>2]=d+4}d=f[j>>2]|0;if(d|0?(e=d+8|0,h=f[e>>2]|0,f[e>>2]=h-1,(h|0)==1):0)X4(d,1,1);g=g+1|0;d=f[i>>2]|0}while(g>>>0<d>>>0);if(d|0){d=f[a+60>>2]|0;a=f[a+64>>2]|0;e=c+(a>>1)|0;if(a&1)d=f[(f[e>>2]|0)+d>>2]|0;Vk[d&1023](e,l)}}}else{g=f[h>>2]|0;if((wk[f[(f[g>>2]|0)+96>>2]&1023](g,a+32|0)|0?(g=f[h>>2]|0,Vk[f[(f[g>>2]|0)+44>>2]&1023](g,i),gX(b),mPa(l,f[i>>2]|0),f[i>>2]|0):0)?(g=f[h>>2]|0,Vk[f[(f[g>>2]|0)+84>>2]&1023](g,b+24|0),gX(b),f[i>>2]|0):0){g=0;do{f[j>>2]=0;ZPa(b,j)|0;d=f[m>>2]|0;if((d|0)==(f[k>>2]|0))lPa(l,j);else{e=f[j>>2]|0;f[d>>2]=e;if(e){d=e+8|0;f[d>>2]=(f[d>>2]|0)+1;d=f[m>>2]|0}f[m>>2]=d+4}d=f[j>>2]|0;if(d|0?(o=d+8|0,e=f[o>>2]|0,f[o>>2]=e-1,(e|0)==1):0)X4(d,1,1);g=g+1|0;d=f[i>>2]|0}while(g>>>0<d>>>0);if(d|0){d=f[h>>2]|0;Vk[f[(f[d>>2]|0)+84>>2]&1023](d,b+40|0);gX(b);d=f[a+60>>2]|0;o=f[a+64>>2]|0;e=c+(o>>1)|0;if(o&1)d=f[(f[e>>2]|0)+d>>2]|0;Vk[d&1023](e,l)}}}g=f[l>>2]|0;if(!g){u=n;return 1}d=f[m>>2]|0;if((d|0)==(g|0))d=g;else{do{d=d+-4|0;e=f[d>>2]|0;if(e|0?(c=e+8|0,o=f[c>>2]|0,f[c>>2]=o-1,(o|0)==1):0)X4(e,1,1);f[d>>2]=0}while((d|0)!=(g|0));d=f[l>>2]|0}f[m>>2]=g;NDb(d);u=n;return 1}function $Oa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0;e=f[a+44>>2]|0;j=f[a+48>>2]|0;d=d+(j>>1)|0;if(j&1)e=f[(f[d>>2]|0)+e>>2]|0;h=sk[e&2047](d)|0;j=h+4|0;e=(f[j>>2]|0)-(f[h>>2]|0)|0;g=e>>2;i=c+292|0;d=f[i>>2]|0;if(sk[f[(f[d>>2]|0)+12>>2]&2047](d)|0){e=f[i>>2]|0;Vk[f[(f[e>>2]|0)+40>>2]&1023](e,g);e=f[h>>2]|0;if((e|0)==(f[j>>2]|0))return 1;g=c+304|0;do{d=f[e>>2]|0;if((f[g>>2]|0)>111)nPa(c,d);else oPa(c,d);e=e+4|0}while((e|0)!=(f[j>>2]|0));return 1}if(!e)return 1;d=c+4|0;e=a+32|0;if((b[e+11>>0]|0)<0)e=f[e>>2]|0;eEb(d,e)|0;e=f[i>>2]|0;Vk[f[(f[e>>2]|0)+84>>2]&1023](e,d);e=f[i>>2]|0;Vk[f[(f[e>>2]|0)+40>>2]&1023](e,g);e=f[i>>2]|0;Vk[f[(f[e>>2]|0)+88>>2]&1023](e,c+24|0);e=f[i>>2]|0;Vk[f[(f[e>>2]|0)+72>>2]&1023](e,1049);a=a+68|0;e=f[a>>2]|0;a:do switch(e|0){case 0:{e=f[h>>2]|0;if((e|0)!=(f[j>>2]|0)){g=c+304|0;do{d=f[e>>2]|0;if((f[g>>2]|0)>111)nPa(c,d);else oPa(c,d);e=e+4|0}while((e|0)!=(f[j>>2]|0))}break}case 1:{e=f[h>>2]|0;if((e|0)!=(f[j>>2]|0)){g=c+304|0;do{d=f[e>>2]|0;if((f[g>>2]|0)>111)nPa(c,d);else oPa(c,d);a=f[i>>2]|0;Vk[f[(f[a>>2]|0)+72>>2]&1023](a,1049);e=e+4|0}while((e|0)!=(f[j>>2]|0))}break}default:{d=f[h>>2]|0;if((d|0)!=(f[j>>2]|0)){h=c+304|0;e=e+-1|0;do{g=f[d>>2]|0;if((f[h>>2]|0)>111)nPa(c,g);else oPa(c,g);if(!e){e=f[i>>2]|0;Vk[f[(f[e>>2]|0)+72>>2]&1023](e,1049);e=f[a>>2]|0}d=d+4|0;e=e+-1|0}while((d|0)!=(f[j>>2]|0));if((e|0)==(f[a>>2]|0))break a}j=f[i>>2]|0;Vk[f[(f[j>>2]|0)+72>>2]&1023](j,1049)}}while(0);j=f[i>>2]|0;Vk[f[(f[j>>2]|0)+88>>2]&1023](j,c+40|0);c=f[i>>2]|0;Vk[f[(f[c>>2]|0)+72>>2]&1023](c,1049);return 1}function aPa(a){a=a|0;return a+32|0}function bPa(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[a+44>>2]|0;d=f[a+48>>2]|0;a=b+(d>>1)|0;if(d&1)c=f[(f[a>>2]|0)+c>>2]|0;d=sk[c&2047](a)|0;return (f[d+4>>2]|0)-(f[d>>2]|0)>>2|0}function cPa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0;d=f[a+52>>2]|0;g=f[a+56>>2]|0;a=b+(g>>1)|0;if(g&1)d=f[(f[a>>2]|0)+d>>2]|0;a=sk[d&2047](a)|0;g=a+4|0;d=f[g>>2]|0;b=f[a>>2]|0;e=d-b>>2;if(e>>>0<c>>>0){KA(a,c-e|0);return}if(e>>>0<=c>>>0)return;b=b+(c<<2)|0;if((b|0)!=(d|0))do{d=d+-4|0;a=f[d>>2]|0;if(a|0?(e=a+8|0,c=f[e>>2]|0,f[e>>2]=c-1,(c|0)==1):0)X4(a,1,1);f[d>>2]=0}while((d|0)!=(b|0));f[g>>2]=b;return}function dPa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=f[a+52>>2]|0;e=f[a+56>>2]|0;a=b+(e>>1)|0;if(e&1)d=f[(f[a>>2]|0)+d>>2]|0;mPa(sk[d&2047](a)|0,c);return}function ePa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0;c=f[a+52>>2]|0;d=f[a+56>>2]|0;a=b+(d>>1)|0;if(d&1)c=f[(f[a>>2]|0)+c>>2]|0;d=sk[c&2047](a)|0;b=f[d>>2]|0;d=d+4|0;c=f[d>>2]|0;if((c|0)==(b|0)){f[d>>2]=b;return}do{c=c+-4|0;a=f[c>>2]|0;if(a|0?(g=a+8|0,e=f[g>>2]|0,f[g>>2]=e-1,(e|0)==1):0)X4(a,1,1);f[c>>2]=0}while((c|0)!=(b|0));f[d>>2]=b;return}function fPa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=f[a+52>>2]|0;e=f[a+56>>2]|0;a=b+(e>>1)|0;if(e&1)d=f[(f[a>>2]|0)+d>>2]|0;a=sk[d&2047](a)|0;b=a+4|0;d=f[b>>2]|0;if((d|0)==(f[a+8>>2]|0)){lPa(a,c);return}a=f[c>>2]|0;f[d>>2]=a;if(a){d=a+8|0;f[d>>2]=(f[d>>2]|0)+1;d=f[b>>2]|0}f[b>>2]=d+4;return}function gPa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=u;u=u+16|0;j=l+4|0;k=l;e=f[a+52>>2]|0;i=f[a+56>>2]|0;a=b+(i>>1)|0;if(i&1)e=f[(f[a>>2]|0)+e>>2]|0;h=sk[e&2047](a)|0;i=h+4|0;e=f[i>>2]|0;a=f[h>>2]|0;b=e-a>>2;do if(b>>>0<=c>>>0){g=c+1|0;if(g>>>0>b>>>0){KA(h,g-b|0);break}if(g>>>0<b>>>0){b=a+(g<<2)|0;if((b|0)!=(e|0))do{e=e+-4|0;a=f[e>>2]|0;if(a|0?(m=a+8|0,g=f[m>>2]|0,f[m>>2]=g-1,(g|0)==1):0)X4(a,1,1);f[e>>2]=0}while((e|0)!=(b|0));f[i>>2]=b}}while(0);f[k>>2]=(f[h>>2]|0)+(c<<2);f[j>>2]=f[k>>2];kPa(h,j,d)|0;u=l;return}function hPa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0;e=f[a+52>>2]|0;i=f[a+56>>2]|0;a=b+(i>>1)|0;if(i&1)e=f[(f[a>>2]|0)+e>>2]|0;h=sk[e&2047](a)|0;i=h+4|0;e=f[i>>2]|0;a=f[h>>2]|0;b=e-a>>2;do if(b>>>0<=c>>>0){g=c+1|0;if(g>>>0>b>>>0){KA(h,g-b|0);break}if(g>>>0<b>>>0){b=a+(g<<2)|0;if((b|0)!=(e|0))do{e=e+-4|0;a=f[e>>2]|0;if(a|0?(j=a+8|0,g=f[j>>2]|0,f[j>>2]=g-1,(g|0)==1):0)X4(a,1,1);f[e>>2]=0}while((e|0)!=(b|0));f[i>>2]=b}}while(0);a=(f[h>>2]|0)+(c<<2)|0;b=f[a>>2]|0;e=f[d>>2]|0;if((b|0)==(e|0))return;f[a>>2]=e;if(e|0){j=e+8|0;f[j>>2]=(f[j>>2]|0)+1}if(!b)return;d=b+8|0;j=f[d>>2]|0;f[d>>2]=j-1;if((j|0)!=1)return;X4(b,1,1);return}function iPa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=f[a+52>>2]|0;e=f[a+56>>2]|0;a=b+(e>>1)|0;if(e&1)d=f[(f[a>>2]|0)+d>>2]|0;b=sk[d&2047](a)|0;e=f[b>>2]|0;return ((f[b+4>>2]|0)-e>>2>>>0>c>>>0?e+(c<<2)|0:0)|0}function jPa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=f[a+44>>2]|0;e=f[a+48>>2]|0;a=b+(e>>1)|0;if(e&1)d=f[(f[a>>2]|0)+d>>2]|0;b=sk[d&2047](a)|0;e=f[b>>2]|0;return ((f[b+4>>2]|0)-e>>2>>>0>c>>>0?e+(c<<2)|0:0)|0}function kPa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=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;m=f[a>>2]|0;o=m;j=(f[b>>2]|0)-o|0;n=j>>2;q=m+(n<<2)|0;r=a+4|0;b=f[r>>2]|0;p=a+8|0;l=f[p>>2]|0;d=b;e=l;if(b>>>0<l>>>0){if((q|0)==(b|0)){c=f[c>>2]|0;f[q>>2]=c;if(!c)c=q;else{c=c+8|0;f[c>>2]=(f[c>>2]|0)+1;c=f[r>>2]|0}f[r>>2]=c+4;r=q;return r|0}i=d-(q+4)|0;g=q+(i>>2<<2)|0;if(g>>>0<b>>>0){h=g;d=b;do{e=f[h>>2]|0;f[d>>2]=e;if(e){d=e+8|0;f[d>>2]=(f[d>>2]|0)+1;d=f[r>>2]|0}h=h+4|0;d=d+4|0;f[r>>2]=d}while(h>>>0<b>>>0)}if(i|0)do{g=g+-4|0;b=b+-4|0;d=f[b>>2]|0;e=f[g>>2]|0;if((d|0)!=(e|0)){f[b>>2]=e;if(e|0){a=e+8|0;f[a>>2]=(f[a>>2]|0)+1}if(d|0?(p=d+8|0,a=f[p>>2]|0,f[p>>2]=a-1,(a|0)==1):0)X4(d,1,1)}}while((g|0)!=(q|0));if(q>>>0<=c>>>0)c=(f[r>>2]|0)>>>0>c>>>0?c+4|0:c;b=f[q>>2]|0;c=f[c>>2]|0;if((b|0)==(c|0)){r=q;return r|0}f[q>>2]=c;if(c|0){r=c+8|0;f[r>>2]=(f[r>>2]|0)+1}if(!b){r=q;return r|0}a=b+8|0;r=f[a>>2]|0;f[a>>2]=r-1;if((r|0)!=1){r=q;return r|0}X4(b,1,1);r=q;return r|0}b=(d-o>>2)+1|0;if(b>>>0>1073741823)KEb(a);d=e-o|0;g=d>>1;g=d>>2>>>0<536870911?(g>>>0<b>>>0?b:g):1073741823;b=j>>2;d=(g|0)==0;do if(!d)if(g>>>0>1073741823){r=mb(8)|0;RDb(r,238482);f[r>>2]=144484;qb(r|0,84192,1464)}else{l=LDb(g<<2)|0;k=l;break}else{k=0;l=0}while(0);h=l+(b<<2)|0;e=h;i=l+(g<<2)|0;do if((b|0)==(g|0)){if((j|0)>0){k=h+(((g+1|0)/-2|0)<<2)|0;j=k;break}d=d?1:g<<2>>1;b=d>>>2;do if(d)if(d>>>0>1073741823){r=mb(8)|0;RDb(r,238482);f[r>>2]=144484;qb(r|0,84192,1464)}else{e=LDb(d<<2)|0;break}else e=0;while(0);g=e+(b<<2)|0;b=g;d=e+(d<<2)|0;if(!l){j=b;k=g;i=d}else{NDb(k);j=b;k=g;i=d}}else{j=e;k=h}while(0);c=f[c>>2]|0;f[k>>2]=c;if(c|0){l=c+8|0;f[l>>2]=(f[l>>2]|0)+1}e=k+4|0;l=j;h=f[a>>2]|0;if((h|0)==(q|0)){b=l;h=j}else{b=~((m+(n+-1<<2)-h|0)>>>2);c=q;d=l;while(1){c=c+-4|0;g=f[c>>2]|0;f[d+-4>>2]=g;if(g|0){m=g+8|0;f[m>>2]=(f[m>>2]|0)+1}if((c|0)==(h|0))break;else d=d+-4|0}h=l+(b<<2)|0;b=h}g=f[r>>2]|0;if((g|0)==(q|0))c=q;else{d=((g+(~n<<2)-o|0)>>>2)+2|0;b=q;while(1){c=f[b>>2]|0;f[e>>2]=c;if(c|0){q=c+8|0;f[q>>2]=(f[q>>2]|0)+1}b=b+4|0;if((b|0)==(g|0))break;else e=e+4|0}e=k+(d<<2)|0;b=h;c=f[r>>2]|0}d=f[a>>2]|0;f[a>>2]=b;f[r>>2]=e;f[p>>2]=i;if((c|0)!=(d|0))do{c=c+-4|0;b=f[c>>2]|0;if(b|0?(q=b+8|0,r=f[q>>2]|0,f[q>>2]=r-1,(r|0)==1):0)X4(b,1,1);f[c>>2]=0}while((c|0)!=(d|0));if(!d){r=l;return r|0}NDb(d);r=l;return r|0}function lPa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=a+4|0;c=f[m>>2]|0;d=f[a>>2]|0;i=c-d>>2;e=i+1|0;g=d;if(e>>>0>1073741823)KEb(a);l=a+8|0;j=(f[l>>2]|0)-d|0;k=j>>1;e=j>>2>>>0<536870911?(k>>>0<e>>>0?e:k):1073741823;do if(e)if(e>>>0>1073741823){m=mb(8)|0;RDb(m,238482);f[m>>2]=144484;qb(m|0,84192,1464)}else{j=LDb(e<<2)|0;break}else j=0;while(0);d=j+(i<<2)|0;k=j+(e<<2)|0;e=f[b>>2]|0;f[d>>2]=e;if(e){g=e+8|0;f[g>>2]=(f[g>>2]|0)+1;g=f[a>>2]|0;c=f[m>>2]|0}h=d+4|0;e=g;if((c|0)==(g|0))b=e;else{b=i+-1-((c+-4-e|0)>>>2)|0;while(1){c=c+-4|0;e=f[c>>2]|0;f[d+-4>>2]=e;if(e|0){i=e+8|0;f[i>>2]=(f[i>>2]|0)+1}if((c|0)==(g|0))break;else d=d+-4|0}d=j+(b<<2)|0;b=f[a>>2]|0;c=f[m>>2]|0}f[a>>2]=d;f[m>>2]=h;f[l>>2]=k;e=b;if((c|0)!=(e|0))do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(l=d+8|0,m=f[l>>2]|0,f[l>>2]=m-1,(m|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(e|0));if(!b)return;NDb(b);return}function mPa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=a+8|0;c=f[a>>2]|0;i=c;if((f[l>>2]|0)-c>>2>>>0>=b>>>0)return;m=a+4|0;if(b>>>0>1073741823){m=mb(8)|0;RDb(m,238482);f[m>>2]=144484;qb(m|0,84192,1464)}d=f[m>>2]|0;e=d-c|0;g=LDb(b<<2)|0;h=g+(e>>2<<2)|0;k=h;j=g+(b<<2)|0;if((d|0)!=(i|0)){g=g+(e+-4-(d+-4+(0-c)&-4))|0;c=h;while(1){d=d+-4|0;b=f[d>>2]|0;f[c+-4>>2]=b;if(b|0){h=b+8|0;f[h>>2]=(f[h>>2]|0)+1}if((d|0)==(i|0))break;else c=c+-4|0}c=f[a>>2]|0;b=f[m>>2]|0;e=c;f[a>>2]=g;f[m>>2]=k;f[l>>2]=j;if((b|0)!=(e|0))do{b=b+-4|0;d=f[b>>2]|0;if(d|0?(l=d+8|0,m=f[l>>2]|0,f[l>>2]=m-1,(m|0)==1):0)X4(d,1,1);f[b>>2]=0}while((b|0)!=(e|0))}else{f[a>>2]=k;f[m>>2]=k;f[l>>2]=j}if(!c)return;NDb(c);return}function nPa(a,c){a=a|0;c=c|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=u;u=u+48|0;k=m+24|0;l=m+12|0;j=m;if(!c){f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;l=k+11|0;b[l>>0]=4;f[k>>2]=1280070990;b[k+4>>0]=0;c=a+292|0;a=f[c>>2]|0;Vk[f[(f[a>>2]|0)+68>>2]&1023](a,k);c=f[c>>2]|0;Vk[f[(f[c>>2]|0)+72>>2]&1023](c,1049);if((b[l>>0]|0)<0)NDb(f[k>>2]|0);u=m;return}g=sk[f[(f[c>>2]|0)+24>>2]&2047](c)|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;h=Zob(g)|0;if(h>>>0>4294967279)TDb(k);if(h>>>0<11){b[k+11>>0]=h;if(!h)e=k;else{e=k;i=10}}else{i=h+16&-16;e=LDb(i)|0;f[k>>2]=e;f[k+8>>2]=i|-2147483648;f[k+4>>2]=h;i=10}if((i|0)==10)gGb(e|0,g|0,h|0)|0;b[e+h>>0]=0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;e=j+11|0;b[e>>0]=2;d[j>>1]=14906;b[j+2>>0]=0;i=jEb(j,sk[f[(f[c>>2]|0)+28>>2]&2047](c)|0)|0;f[l>>2]=f[i>>2];f[l+4>>2]=f[i+4>>2];f[l+8>>2]=f[i+8>>2];f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;i=l+11|0;h=b[i>>0]|0;g=h<<24>>24<0;iEb(k,g?f[l>>2]|0:l,g?f[l+4>>2]|0:h&255)|0;if((b[i>>0]|0)<0)NDb(f[l>>2]|0);if((b[e>>0]|0)<0)NDb(f[j>>2]|0);b[l>>0]=0;j=RPa(a,c,l)|0;e=a+292|0;i=f[e>>2]|0;Vk[f[(f[i>>2]|0)+68>>2]&1023](i,k);i=f[e>>2]|0;Vk[f[(f[i>>2]|0)+88>>2]&1023](i,a+24|0);i=f[e>>2]|0;Vk[f[(f[i>>2]|0)+72>>2]&1023](i,1049);i=a+4|0;eEb(i,231664)|0;h=f[e>>2]|0;Vk[f[(f[h>>2]|0)+84>>2]&1023](h,i);i=f[e>>2]|0;Vk[f[(f[i>>2]|0)+40>>2]&1023](i,j);j=f[e>>2]|0;Vk[f[(f[j>>2]|0)+72>>2]&1023](j,1049);if(!(f[a+296>>2]|0)){if(b[l>>0]|0)SPa(a,c);l=f[e>>2]|0;Vk[f[(f[l>>2]|0)+88>>2]&1023](l,a+40|0);l=f[e>>2]|0;Vk[f[(f[l>>2]|0)+72>>2]&1023](l,1049)}if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);u=m;return}function oPa(a,c){a=a|0;c=c|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0;l=u;u=u+32|0;e=l+20|0;j=l;if(!c){u=l;return}b[e>>0]=0;i=pPa(a,c,e)|0;h=a+4|0;eEb(h,233319)|0;k=a+292|0;g=f[k>>2]|0;Vk[f[(f[g>>2]|0)+84>>2]&1023](g,h);h=f[k>>2]|0;Vk[f[(f[h>>2]|0)+40>>2]&1023](h,i);a:do if(!(b[e>>0]|0)){a=f[k>>2]|0;Vk[f[(f[a>>2]|0)+72>>2]&1023](a,1049)}else do switch(f[c+52>>2]|0){case 1:{f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;e=j+11|0;b[e>>0]=9;g=j;h=225688;i=g+9|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[j+9>>0]=0;f[j+12>>2]=0;b[j+16>>0]=1;k=f[k>>2]|0;Vk[f[(f[k>>2]|0)+84>>2]&1023](k,j);if((b[e>>0]|0)<0)NDb(f[j>>2]|0);qPa(a,c,sk[f[(f[c>>2]|0)+216>>2]&2047](c)|0,4);break a}case 4:{f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;e=j+11|0;b[e>>0]=9;g=j;h=225688;i=g+9|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[j+9>>0]=0;f[j+12>>2]=1;b[j+16>>0]=1;k=f[k>>2]|0;Vk[f[(f[k>>2]|0)+84>>2]&1023](k,j);if((b[e>>0]|0)<0)NDb(f[j>>2]|0);rPa(a,c,sk[f[(f[c>>2]|0)+216>>2]&2047](c)|0,4);break a}case 2:{f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;e=j+11|0;b[e>>0]=9;g=j;h=225688;i=g+9|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[j+9>>0]=0;f[j+12>>2]=2;b[j+16>>0]=1;k=f[k>>2]|0;Vk[f[(f[k>>2]|0)+84>>2]&1023](k,j);if((b[e>>0]|0)<0)NDb(f[j>>2]|0);sPa(a,c,sk[f[(f[c>>2]|0)+216>>2]&2047](c)|0,4);break a}case 5:{f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;e=j+11|0;b[e>>0]=9;g=j;h=225688;i=g+9|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[j+9>>0]=0;f[j+12>>2]=3;b[j+16>>0]=1;k=f[k>>2]|0;Vk[f[(f[k>>2]|0)+84>>2]&1023](k,j);if((b[e>>0]|0)<0)NDb(f[j>>2]|0);tPa(a,c,sk[f[(f[c>>2]|0)+216>>2]&2047](c)|0,4);break a}case 3:{f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;e=j+11|0;b[e>>0]=9;g=j;h=225688;i=g+9|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[j+9>>0]=0;f[j+12>>2]=4;b[j+16>>0]=1;k=f[k>>2]|0;Vk[f[(f[k>>2]|0)+84>>2]&1023](k,j);if((b[e>>0]|0)<0)NDb(f[j>>2]|0);uPa(a,c,sk[f[(f[c>>2]|0)+216>>2]&2047](c)|0,4);break a}case 6:{f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;e=j+11|0;b[e>>0]=9;g=j;h=225688;i=g+9|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[j+9>>0]=0;f[j+12>>2]=5;b[j+16>>0]=1;k=f[k>>2]|0;Vk[f[(f[k>>2]|0)+84>>2]&1023](k,j);if((b[e>>0]|0)<0)NDb(f[j>>2]|0);vPa(a,c,sk[f[(f[c>>2]|0)+216>>2]&2047](c)|0,4);break a}case 7:{f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;e=j+11|0;b[e>>0]=9;g=j;h=225688;i=g+9|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[j+9>>0]=0;f[j+12>>2]=6;b[j+16>>0]=1;k=f[k>>2]|0;Vk[f[(f[k>>2]|0)+84>>2]&1023](k,j);if((b[e>>0]|0)<0)NDb(f[j>>2]|0);wPa(a,c,sk[f[(f[c>>2]|0)+216>>2]&2047](c)|0,4);break a}case 8:{f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;e=j+11|0;b[e>>0]=9;g=j;h=225688;i=g+9|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[j+9>>0]=0;f[j+12>>2]=7;b[j+16>>0]=1;k=f[k>>2]|0;Vk[f[(f[k>>2]|0)+84>>2]&1023](k,j);if((b[e>>0]|0)<0)NDb(f[j>>2]|0);xPa(a,c,sk[f[(f[c>>2]|0)+216>>2]&2047](c)|0,4);break a}case 9:{f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;e=j+11|0;b[e>>0]=9;g=j;h=225688;i=g+9|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[j+9>>0]=0;f[j+12>>2]=8;b[j+16>>0]=1;i=f[k>>2]|0;Vk[f[(f[i>>2]|0)+84>>2]&1023](i,j);if((b[e>>0]|0)<0)NDb(f[j>>2]|0);h=sk[f[(f[c>>2]|0)+216>>2]&2047](c)|0;j=f[k>>2]|0;Vk[f[(f[j>>2]|0)+36>>2]&1023](j,h);j=f[k>>2]|0;Vk[f[(f[j>>2]|0)+88>>2]&1023](j,a+24|0);j=f[k>>2]|0;Vk[f[(f[j>>2]|0)+72>>2]&1023](j,1049);if((h|0)>0){g=c+76|0;e=0;do{c=f[g>>2]|0;j=f[k>>2]|0;Vk[f[(f[j>>2]|0)+20>>2]&1023](j,b[c+(e<<1)>>0]|0);j=f[k>>2]|0;Vk[f[(f[j>>2]|0)+20>>2]&1023](j,b[c+(e<<1)+1>>0]|0);c=f[k>>2]|0;Vk[f[(f[c>>2]|0)+72>>2]&1023](c,1049);e=e+1|0}while((e|0)!=(h|0))}c=f[k>>2]|0;Vk[f[(f[c>>2]|0)+88>>2]&1023](c,a+40|0);a=f[k>>2]|0;Vk[f[(f[a>>2]|0)+72>>2]&1023](a,1049);break a}case 10:{f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;e=j+11|0;b[e>>0]=9;g=j;h=225688;i=g+9|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[j+9>>0]=0;f[j+12>>2]=9;b[j+16>>0]=1;k=f[k>>2]|0;Vk[f[(f[k>>2]|0)+84>>2]&1023](k,j);if((b[e>>0]|0)<0)NDb(f[j>>2]|0);yPa(a,c,sk[f[(f[c>>2]|0)+216>>2]&2047](c)|0,1);break a}case 11:{f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;e=j+11|0;b[e>>0]=9;g=j;h=225688;i=g+9|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[j+9>>0]=0;f[j+12>>2]=10;b[j+16>>0]=1;k=f[k>>2]|0;Vk[f[(f[k>>2]|0)+84>>2]&1023](k,j);if((b[e>>0]|0)<0)NDb(f[j>>2]|0);zPa(a,c,sk[f[(f[c>>2]|0)+216>>2]&2047](c)|0,1);break a}case 18:{f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;e=j+11|0;b[e>>0]=9;g=j;h=225688;i=g+9|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[j+9>>0]=0;f[j+12>>2]=21;b[j+16>>0]=1;i=f[k>>2]|0;Vk[f[(f[i>>2]|0)+84>>2]&1023](i,j);if((b[e>>0]|0)<0)NDb(f[j>>2]|0);h=sk[f[(f[c>>2]|0)+216>>2]&2047](c)|0;j=f[k>>2]|0;Vk[f[(f[j>>2]|0)+36>>2]&1023](j,h);j=f[k>>2]|0;Vk[f[(f[j>>2]|0)+88>>2]&1023](j,a+24|0);j=f[k>>2]|0;Vk[f[(f[j>>2]|0)+72>>2]&1023](j,1049);if((h|0)>0){g=c+76|0;e=0;do{c=f[g>>2]|0;j=f[k>>2]|0;Vk[f[(f[j>>2]|0)+24>>2]&1023](j,b[c+(e<<1)>>0]|0);j=f[k>>2]|0;Vk[f[(f[j>>2]|0)+24>>2]&1023](j,b[c+(e<<1)+1>>0]|0);c=f[k>>2]|0;Vk[f[(f[c>>2]|0)+72>>2]&1023](c,1049);e=e+1|0}while((e|0)!=(h|0))}c=f[k>>2]|0;Vk[f[(f[c>>2]|0)+88>>2]&1023](c,a+40|0);a=f[k>>2]|0;Vk[f[(f[a>>2]|0)+72>>2]&1023](a,1049);break a}case 19:{f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;e=j+11|0;b[e>>0]=9;g=j;h=225688;i=g+9|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[j+9>>0]=0;f[j+12>>2]=22;b[j+16>>0]=1;k=f[k>>2]|0;Vk[f[(f[k>>2]|0)+84>>2]&1023](k,j);if((b[e>>0]|0)<0)NDb(f[j>>2]|0);APa(a,c,sk[f[(f[c>>2]|0)+216>>2]&2047](c)|0,1);break a}case 20:{f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;e=j+11|0;b[e>>0]=9;g=j;h=225688;i=g+9|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[j+9>>0]=0;f[j+12>>2]=11;b[j+16>>0]=1;k=f[k>>2]|0;Vk[f[(f[k>>2]|0)+84>>2]&1023](k,j);if((b[e>>0]|0)<0)NDb(f[j>>2]|0);BPa(a,c,sk[f[(f[c>>2]|0)+216>>2]&2047](c)|0,1);break a}case 12:{f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;e=j+11|0;b[e>>0]=9;g=j;h=225688;i=g+9|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[j+9>>0]=0;f[j+12>>2]=12;b[j+16>>0]=1;i=f[k>>2]|0;Vk[f[(f[i>>2]|0)+84>>2]&1023](i,j);if((b[e>>0]|0)<0)NDb(f[j>>2]|0);h=sk[f[(f[c>>2]|0)+216>>2]&2047](c)|0;j=f[k>>2]|0;Vk[f[(f[j>>2]|0)+36>>2]&1023](j,h);j=f[k>>2]|0;Vk[f[(f[j>>2]|0)+88>>2]&1023](j,a+24|0);j=f[k>>2]|0;Vk[f[(f[j>>2]|0)+72>>2]&1023](j,1049);if((h|0)>0){g=c+76|0;e=0;do{c=f[g>>2]|0;j=f[k>>2]|0;Vk[f[(f[j>>2]|0)+28>>2]&1023](j,d[c+(e<<2)>>1]|0);j=f[k>>2]|0;Vk[f[(f[j>>2]|0)+28>>2]&1023](j,d[c+(e<<2)+2>>1]|0);c=f[k>>2]|0;Vk[f[(f[c>>2]|0)+72>>2]&1023](c,1049);e=e+1|0}while((e|0)!=(h|0))}c=f[k>>2]|0;Vk[f[(f[c>>2]|0)+88>>2]&1023](c,a+40|0);a=f[k>>2]|0;Vk[f[(f[a>>2]|0)+72>>2]&1023](a,1049);break a}case 13:{f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;e=j+11|0;b[e>>0]=9;g=j;h=225688;i=g+9|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[j+9>>0]=0;f[j+12>>2]=13;b[j+16>>0]=1;k=f[k>>2]|0;Vk[f[(f[k>>2]|0)+84>>2]&1023](k,j);if((b[e>>0]|0)<0)NDb(f[j>>2]|0);CPa(a,c,sk[f[(f[c>>2]|0)+216>>2]&2047](c)|0,1);break a}case 14:{f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;e=j+11|0;b[e>>0]=9;g=j;h=225688;i=g+9|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[j+9>>0]=0;f[j+12>>2]=14;b[j+16>>0]=1;k=f[k>>2]|0;Vk[f[(f[k>>2]|0)+84>>2]&1023](k,j);if((b[e>>0]|0)<0)NDb(f[j>>2]|0);DPa(a,c,sk[f[(f[c>>2]|0)+216>>2]&2047](c)|0,1);break a}case 21:{f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;e=j+11|0;b[e>>0]=9;g=j;h=225688;i=g+9|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[j+9>>0]=0;f[j+12>>2]=23;b[j+16>>0]=1;i=f[k>>2]|0;Vk[f[(f[i>>2]|0)+84>>2]&1023](i,j);if((b[e>>0]|0)<0)NDb(f[j>>2]|0);h=sk[f[(f[c>>2]|0)+216>>2]&2047](c)|0;j=f[k>>2]|0;Vk[f[(f[j>>2]|0)+36>>2]&1023](j,h);j=f[k>>2]|0;Vk[f[(f[j>>2]|0)+88>>2]&1023](j,a+24|0);j=f[k>>2]|0;Vk[f[(f[j>>2]|0)+72>>2]&1023](j,1049);if((h|0)>0){g=c+76|0;e=0;do{c=f[g>>2]|0;j=f[k>>2]|0;Vk[f[(f[j>>2]|0)+32>>2]&1023](j,d[c+(e<<2)>>1]|0);j=f[k>>2]|0;Vk[f[(f[j>>2]|0)+32>>2]&1023](j,d[c+(e<<2)+2>>1]|0);c=f[k>>2]|0;Vk[f[(f[c>>2]|0)+72>>2]&1023](c,1049);e=e+1|0}while((e|0)!=(h|0))}c=f[k>>2]|0;Vk[f[(f[c>>2]|0)+88>>2]&1023](c,a+40|0);a=f[k>>2]|0;Vk[f[(f[a>>2]|0)+72>>2]&1023](a,1049);break a}case 22:{f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;e=j+11|0;b[e>>0]=9;g=j;h=225688;i=g+9|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[j+9>>0]=0;f[j+12>>2]=24;b[j+16>>0]=1;k=f[k>>2]|0;Vk[f[(f[k>>2]|0)+84>>2]&1023](k,j);if((b[e>>0]|0)<0)NDb(f[j>>2]|0);EPa(a,c,sk[f[(f[c>>2]|0)+216>>2]&2047](c)|0,1);break a}case 23:{f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;e=j+11|0;b[e>>0]=9;g=j;h=225688;i=g+9|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[j+9>>0]=0;f[j+12>>2]=25;b[j+16>>0]=1;k=f[k>>2]|0;Vk[f[(f[k>>2]|0)+84>>2]&1023](k,j);if((b[e>>0]|0)<0)NDb(f[j>>2]|0);FPa(a,c,sk[f[(f[c>>2]|0)+216>>2]&2047](c)|0,1);break a}case 27:{f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;e=j+11|0;b[e>>0]=9;g=j;h=225688;i=g+9|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[j+9>>0]=0;f[j+12>>2]=15;b[j+16>>0]=1;i=f[k>>2]|0;Vk[f[(f[i>>2]|0)+84>>2]&1023](i,j);if((b[e>>0]|0)<0)NDb(f[j>>2]|0);h=sk[f[(f[c>>2]|0)+216>>2]&2047](c)|0;j=f[k>>2]|0;Vk[f[(f[j>>2]|0)+36>>2]&1023](j,h);j=f[k>>2]|0;Vk[f[(f[j>>2]|0)+88>>2]&1023](j,a+24|0);j=f[k>>2]|0;Vk[f[(f[j>>2]|0)+72>>2]&1023](j,1049);if((h|0)>0){g=c+76|0;e=0;do{c=f[g>>2]|0;j=f[k>>2]|0;Ok[f[(f[j>>2]|0)+60>>2]&31](j,+n[c+(e<<3)>>2]);j=f[k>>2]|0;Ok[f[(f[j>>2]|0)+60>>2]&31](j,+n[c+(e<<3)+4>>2]);c=f[k>>2]|0;Vk[f[(f[c>>2]|0)+72>>2]&1023](c,1049);e=e+1|0}while((e|0)!=(h|0))}c=f[k>>2]|0;Vk[f[(f[c>>2]|0)+88>>2]&1023](c,a+40|0);a=f[k>>2]|0;Vk[f[(f[a>>2]|0)+72>>2]&1023](a,1049);break a}case 28:{f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;e=j+11|0;b[e>>0]=9;g=j;h=225688;i=g+9|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[j+9>>0]=0;f[j+12>>2]=16;b[j+16>>0]=1;k=f[k>>2]|0;Vk[f[(f[k>>2]|0)+84>>2]&1023](k,j);if((b[e>>0]|0)<0)NDb(f[j>>2]|0);GPa(a,c,sk[f[(f[c>>2]|0)+216>>2]&2047](c)|0,1);break a}case 29:{f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;e=j+11|0;b[e>>0]=9;g=j;h=225688;i=g+9|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[j+9>>0]=0;f[j+12>>2]=17;b[j+16>>0]=1;k=f[k>>2]|0;Vk[f[(f[k>>2]|0)+84>>2]&1023](k,j);if((b[e>>0]|0)<0)NDb(f[j>>2]|0);HPa(a,c,sk[f[(f[c>>2]|0)+216>>2]&2047](c)|0,1);break a}case 30:{f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;e=j+11|0;b[e>>0]=9;g=j;h=225688;i=g+9|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[j+9>>0]=0;f[j+12>>2]=18;b[j+16>>0]=1;i=f[k>>2]|0;Vk[f[(f[i>>2]|0)+84>>2]&1023](i,j);if((b[e>>0]|0)<0)NDb(f[j>>2]|0);h=sk[f[(f[c>>2]|0)+216>>2]&2047](c)|0;j=f[k>>2]|0;Vk[f[(f[j>>2]|0)+36>>2]&1023](j,h);j=f[k>>2]|0;Vk[f[(f[j>>2]|0)+88>>2]&1023](j,a+24|0);j=f[k>>2]|0;Vk[f[(f[j>>2]|0)+72>>2]&1023](j,1049);if((h|0)>0){g=c+76|0;e=0;do{c=f[g>>2]|0;j=f[k>>2]|0;Ok[f[(f[j>>2]|0)+64>>2]&31](j,+p[c+(e<<4)>>3]);j=f[k>>2]|0;Ok[f[(f[j>>2]|0)+64>>2]&31](j,+p[c+(e<<4)+8>>3]);c=f[k>>2]|0;Vk[f[(f[c>>2]|0)+72>>2]&1023](c,1049);e=e+1|0}while((e|0)!=(h|0))}c=f[k>>2]|0;Vk[f[(f[c>>2]|0)+88>>2]&1023](c,a+40|0);a=f[k>>2]|0;Vk[f[(f[a>>2]|0)+72>>2]&1023](a,1049);break a}case 31:{f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;e=j+11|0;b[e>>0]=9;g=j;h=225688;i=g+9|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[j+9>>0]=0;f[j+12>>2]=19;b[j+16>>0]=1;k=f[k>>2]|0;Vk[f[(f[k>>2]|0)+84>>2]&1023](k,j);if((b[e>>0]|0)<0)NDb(f[j>>2]|0);IPa(a,c,sk[f[(f[c>>2]|0)+216>>2]&2047](c)|0,1);break a}case 32:{f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;e=j+11|0;b[e>>0]=9;g=j;h=225688;i=g+9|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[j+9>>0]=0;f[j+12>>2]=20;b[j+16>>0]=1;k=f[k>>2]|0;Vk[f[(f[k>>2]|0)+84>>2]&1023](k,j);if((b[e>>0]|0)<0)NDb(f[j>>2]|0);JPa(a,c,sk[f[(f[c>>2]|0)+216>>2]&2047](c)|0,1);break a}case 15:{f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;e=j+11|0;b[e>>0]=9;g=j;h=225688;i=g+9|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[j+9>>0]=0;f[j+12>>2]=26;b[j+16>>0]=1;i=f[k>>2]|0;Vk[f[(f[i>>2]|0)+84>>2]&1023](i,j);if((b[e>>0]|0)<0)NDb(f[j>>2]|0);h=sk[f[(f[c>>2]|0)+216>>2]&2047](c)|0;j=f[k>>2]|0;Vk[f[(f[j>>2]|0)+36>>2]&1023](j,h);j=f[k>>2]|0;Vk[f[(f[j>>2]|0)+88>>2]&1023](j,a+24|0);j=f[k>>2]|0;Vk[f[(f[j>>2]|0)+72>>2]&1023](j,1049);if((h|0)>0){g=c+76|0;e=0;do{c=f[g>>2]|0;j=f[k>>2]|0;Vk[f[(f[j>>2]|0)+36>>2]&1023](j,f[c+(e<<3)>>2]|0);j=f[k>>2]|0;Vk[f[(f[j>>2]|0)+36>>2]&1023](j,f[c+(e<<3)+4>>2]|0);c=f[k>>2]|0;Vk[f[(f[c>>2]|0)+72>>2]&1023](c,1049);e=e+1|0}while((e|0)!=(h|0))}c=f[k>>2]|0;Vk[f[(f[c>>2]|0)+88>>2]&1023](c,a+40|0);a=f[k>>2]|0;Vk[f[(f[a>>2]|0)+72>>2]&1023](a,1049);break a}case 16:{f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;e=j+11|0;b[e>>0]=9;g=j;h=225688;i=g+9|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[j+9>>0]=0;f[j+12>>2]=27;b[j+16>>0]=1;k=f[k>>2]|0;Vk[f[(f[k>>2]|0)+84>>2]&1023](k,j);if((b[e>>0]|0)<0)NDb(f[j>>2]|0);KPa(a,c,sk[f[(f[c>>2]|0)+216>>2]&2047](c)|0,1);break a}case 17:{f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;e=j+11|0;b[e>>0]=9;g=j;h=225688;i=g+9|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[j+9>>0]=0;f[j+12>>2]=28;b[j+16>>0]=1;k=f[k>>2]|0;Vk[f[(f[k>>2]|0)+84>>2]&1023](k,j);if((b[e>>0]|0)<0)NDb(f[j>>2]|0);LPa(a,c,sk[f[(f[c>>2]|0)+216>>2]&2047](c)|0,1);break a}case 24:{f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;e=j+11|0;b[e>>0]=9;g=j;h=225688;i=g+9|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[j+9>>0]=0;f[j+12>>2]=29;b[j+16>>0]=1;i=f[k>>2]|0;Vk[f[(f[i>>2]|0)+84>>2]&1023](i,j);if((b[e>>0]|0)<0)NDb(f[j>>2]|0);h=sk[f[(f[c>>2]|0)+216>>2]&2047](c)|0;j=f[k>>2]|0;Vk[f[(f[j>>2]|0)+36>>2]&1023](j,h);j=f[k>>2]|0;Vk[f[(f[j>>2]|0)+88>>2]&1023](j,a+24|0);j=f[k>>2]|0;Vk[f[(f[j>>2]|0)+72>>2]&1023](j,1049);if((h|0)>0){g=c+76|0;e=0;do{c=f[g>>2]|0;j=f[k>>2]|0;Vk[f[(f[j>>2]|0)+40>>2]&1023](j,f[c+(e<<3)>>2]|0);j=f[k>>2]|0;Vk[f[(f[j>>2]|0)+40>>2]&1023](j,f[c+(e<<3)+4>>2]|0);c=f[k>>2]|0;Vk[f[(f[c>>2]|0)+72>>2]&1023](c,1049);e=e+1|0}while((e|0)!=(h|0))}c=f[k>>2]|0;Vk[f[(f[c>>2]|0)+88>>2]&1023](c,a+40|0);a=f[k>>2]|0;Vk[f[(f[a>>2]|0)+72>>2]&1023](a,1049);break a}case 25:{f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;e=j+11|0;b[e>>0]=9;g=j;h=225688;i=g+9|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[j+9>>0]=0;f[j+12>>2]=30;b[j+16>>0]=1;k=f[k>>2]|0;Vk[f[(f[k>>2]|0)+84>>2]&1023](k,j);if((b[e>>0]|0)<0)NDb(f[j>>2]|0);MPa(a,c,sk[f[(f[c>>2]|0)+216>>2]&2047](c)|0,1);break a}case 26:{f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;e=j+11|0;b[e>>0]=9;g=j;h=225688;i=g+9|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[j+9>>0]=0;f[j+12>>2]=31;b[j+16>>0]=1;k=f[k>>2]|0;Vk[f[(f[k>>2]|0)+84>>2]&1023](k,j);if((b[e>>0]|0)<0)NDb(f[j>>2]|0);NPa(a,c,sk[f[(f[c>>2]|0)+216>>2]&2047](c)|0,1);break a}default:{e=LDb(64)|0;f[j>>2]=e;f[j+8>>2]=-2147483584;f[j+4>>2]=51;g=e;h=233327;i=g+51|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[e+51>>0]=0;h=LDb(36)|0;OPa(h,a+112|0,j);e=a+296|0;g=f[e>>2]|0;if(((g|0)!=(h|0)?(f[e>>2]=h,a=h+8|0,f[a>>2]=(f[a>>2]|0)+1,g|0):0)?(k=g+8|0,a=f[k>>2]|0,f[k>>2]=a-1,(a|0)==1):0)X4(g,1,1);if((b[j+11>>0]|0)<0)NDb(f[j>>2]|0);break a}}while(0);while(0);u=l;return}function pPa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=c;m=a+56|0;h=a+60|0;i=f[h>>2]|0;do if(i){e=h;g=i;do{k=(f[g+16>>2]|0)>>>0<c>>>0;e=k?e:g;g=f[(k?g+4|0:g)>>2]|0}while((g|0)!=0);if((e|0)!=(h|0)?(f[e+16>>2]|0)>>>0<=c>>>0:0){b[d>>0]=0;d=f[e+20>>2]|0;return d|0}k=a+64|0;j=(f[k>>2]|0)+1|0;h=a+60|0;e=i;while(1){g=f[e+16>>2]|0;if(g>>>0>c>>>0){g=f[e>>2]|0;if(!g){g=9;break}else{h=e;e=g}}else{if(g>>>0>=c>>>0){g=13;break}h=e+4|0;g=f[h>>2]|0;if(!g){g=12;break}else e=g}}if((g|0)==9){c=e;h=e;i=k;break}else if((g|0)==12){c=e;i=k;break}else if((g|0)==13){c=e;i=k;break}}else{j=a+64|0;c=h;i=j;j=(f[j>>2]|0)+1|0}while(0);e=f[h>>2]|0;if(!e){e=LDb(24)|0;f[e+16>>2]=l;f[e+20>>2]=0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=c;f[h>>2]=e;g=f[f[m>>2]>>2]|0;if(!g)g=e;else{f[m>>2]=g;g=f[h>>2]|0}Aq(f[a+60>>2]|0,g);f[i>>2]=(f[i>>2]|0)+1}f[e+20>>2]=j;b[d>>0]=1;d=j;return d|0}function qPa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0;h=a+292|0;g=f[h>>2]|0;Vk[f[(f[g>>2]|0)+36>>2]&1023](g,d);g=f[h>>2]|0;Vk[f[(f[g>>2]|0)+88>>2]&1023](g,a+24|0);if(e>>>0<=1){e=f[h>>2]|0;Vk[f[(f[e>>2]|0)+72>>2]&1023](e,1049);if((d|0)>0){g=c+76|0;c=0;do{e=f[h>>2]|0;Vk[f[(f[e>>2]|0)+20>>2]&1023](e,b[(f[g>>2]|0)+c>>0]|0);e=f[h>>2]|0;Vk[f[(f[e>>2]|0)+72>>2]&1023](e,1049);c=c+1|0}while((c|0)!=(d|0))}}else{if((d|0)>0){g=c+76|0;c=0;do{if(!((c>>>0)%(e>>>0)|0)){i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+72>>2]&1023](i,1049);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+20>>2]&1023](i,b[(f[g>>2]|0)+c>>0]|0)}else{i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+20>>2]&1023](i,b[(f[g>>2]|0)+c>>0]|0)}c=c+1|0}while((c|0)!=(d|0))}i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+72>>2]&1023](i,1049)}i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+88>>2]&1023](i,a+40|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+72>>2]&1023](i,1049);return}function rPa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0;h=a+292|0;g=f[h>>2]|0;Vk[f[(f[g>>2]|0)+36>>2]&1023](g,d);g=f[h>>2]|0;Vk[f[(f[g>>2]|0)+88>>2]&1023](g,a+24|0);if(e>>>0<=1){e=f[h>>2]|0;Vk[f[(f[e>>2]|0)+72>>2]&1023](e,1049);if((d|0)>0){g=c+76|0;c=0;do{e=f[h>>2]|0;Vk[f[(f[e>>2]|0)+24>>2]&1023](e,b[(f[g>>2]|0)+c>>0]|0);e=f[h>>2]|0;Vk[f[(f[e>>2]|0)+72>>2]&1023](e,1049);c=c+1|0}while((c|0)!=(d|0))}}else{if((d|0)>0){g=c+76|0;c=0;do{if(!((c>>>0)%(e>>>0)|0)){i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+72>>2]&1023](i,1049);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+24>>2]&1023](i,b[(f[g>>2]|0)+c>>0]|0)}else{i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+24>>2]&1023](i,b[(f[g>>2]|0)+c>>0]|0)}c=c+1|0}while((c|0)!=(d|0))}i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+72>>2]&1023](i,1049)}i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+88>>2]&1023](i,a+40|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+72>>2]&1023](i,1049);return}function sPa(a,b,c,e){a=a|0;b=b|0;c=c|0;e=e|0;var g=0,h=0,i=0;h=a+292|0;g=f[h>>2]|0;Vk[f[(f[g>>2]|0)+36>>2]&1023](g,c);g=f[h>>2]|0;Vk[f[(f[g>>2]|0)+88>>2]&1023](g,a+24|0);if(e>>>0<=1){e=f[h>>2]|0;Vk[f[(f[e>>2]|0)+72>>2]&1023](e,1049);if((c|0)>0){g=b+76|0;b=0;do{e=f[h>>2]|0;Vk[f[(f[e>>2]|0)+28>>2]&1023](e,d[(f[g>>2]|0)+(b<<1)>>1]|0);e=f[h>>2]|0;Vk[f[(f[e>>2]|0)+72>>2]&1023](e,1049);b=b+1|0}while((b|0)!=(c|0))}}else{if((c|0)>0){g=b+76|0;b=0;do{if(!((b>>>0)%(e>>>0)|0)){i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+72>>2]&1023](i,1049);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+28>>2]&1023](i,d[(f[g>>2]|0)+(b<<1)>>1]|0)}else{i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+28>>2]&1023](i,d[(f[g>>2]|0)+(b<<1)>>1]|0)}b=b+1|0}while((b|0)!=(c|0))}i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+72>>2]&1023](i,1049)}i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+88>>2]&1023](i,a+40|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+72>>2]&1023](i,1049);return}function tPa(a,b,c,e){a=a|0;b=b|0;c=c|0;e=e|0;var g=0,h=0,i=0;h=a+292|0;g=f[h>>2]|0;Vk[f[(f[g>>2]|0)+36>>2]&1023](g,c);g=f[h>>2]|0;Vk[f[(f[g>>2]|0)+88>>2]&1023](g,a+24|0);if(e>>>0<=1){e=f[h>>2]|0;Vk[f[(f[e>>2]|0)+72>>2]&1023](e,1049);if((c|0)>0){g=b+76|0;b=0;do{e=f[h>>2]|0;Vk[f[(f[e>>2]|0)+32>>2]&1023](e,d[(f[g>>2]|0)+(b<<1)>>1]|0);e=f[h>>2]|0;Vk[f[(f[e>>2]|0)+72>>2]&1023](e,1049);b=b+1|0}while((b|0)!=(c|0))}}else{if((c|0)>0){g=b+76|0;b=0;do{if(!((b>>>0)%(e>>>0)|0)){i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+72>>2]&1023](i,1049);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+32>>2]&1023](i,d[(f[g>>2]|0)+(b<<1)>>1]|0)}else{i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+32>>2]&1023](i,d[(f[g>>2]|0)+(b<<1)>>1]|0)}b=b+1|0}while((b|0)!=(c|0))}i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+72>>2]&1023](i,1049)}i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+88>>2]&1023](i,a+40|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+72>>2]&1023](i,1049);return}function uPa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0;g=a+292|0;e=f[g>>2]|0;Vk[f[(f[e>>2]|0)+36>>2]&1023](e,c);e=f[g>>2]|0;Vk[f[(f[e>>2]|0)+88>>2]&1023](e,a+24|0);if(d>>>0<=1){d=f[g>>2]|0;Vk[f[(f[d>>2]|0)+72>>2]&1023](d,1049);if((c|0)>0){e=b+76|0;b=0;do{d=f[g>>2]|0;Vk[f[(f[d>>2]|0)+36>>2]&1023](d,f[(f[e>>2]|0)+(b<<2)>>2]|0);d=f[g>>2]|0;Vk[f[(f[d>>2]|0)+72>>2]&1023](d,1049);b=b+1|0}while((b|0)!=(c|0))}}else{if((c|0)>0){e=b+76|0;b=0;do{if(!((b>>>0)%(d>>>0)|0)){h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+72>>2]&1023](h,1049);h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+36>>2]&1023](h,f[(f[e>>2]|0)+(b<<2)>>2]|0)}else{h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+36>>2]&1023](h,f[(f[e>>2]|0)+(b<<2)>>2]|0)}b=b+1|0}while((b|0)!=(c|0))}h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+72>>2]&1023](h,1049)}h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+88>>2]&1023](h,a+40|0);h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+72>>2]&1023](h,1049);return}function vPa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0;g=a+292|0;e=f[g>>2]|0;Vk[f[(f[e>>2]|0)+36>>2]&1023](e,c);e=f[g>>2]|0;Vk[f[(f[e>>2]|0)+88>>2]&1023](e,a+24|0);if(d>>>0<=1){d=f[g>>2]|0;Vk[f[(f[d>>2]|0)+72>>2]&1023](d,1049);if((c|0)>0){e=b+76|0;b=0;do{d=f[g>>2]|0;Vk[f[(f[d>>2]|0)+40>>2]&1023](d,f[(f[e>>2]|0)+(b<<2)>>2]|0);d=f[g>>2]|0;Vk[f[(f[d>>2]|0)+72>>2]&1023](d,1049);b=b+1|0}while((b|0)!=(c|0))}}else{if((c|0)>0){e=b+76|0;b=0;do{if(!((b>>>0)%(d>>>0)|0)){h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+72>>2]&1023](h,1049);h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+40>>2]&1023](h,f[(f[e>>2]|0)+(b<<2)>>2]|0)}else{h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+40>>2]&1023](h,f[(f[e>>2]|0)+(b<<2)>>2]|0)}b=b+1|0}while((b|0)!=(c|0))}h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+72>>2]&1023](h,1049)}h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+88>>2]&1023](h,a+40|0);h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+72>>2]&1023](h,1049);return}function wPa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0;g=a+292|0;e=f[g>>2]|0;Vk[f[(f[e>>2]|0)+36>>2]&1023](e,c);e=f[g>>2]|0;Vk[f[(f[e>>2]|0)+88>>2]&1023](e,a+24|0);if(d>>>0<=1){d=f[g>>2]|0;Vk[f[(f[d>>2]|0)+72>>2]&1023](d,1049);if((c|0)>0){e=b+76|0;b=0;do{d=f[g>>2]|0;Ok[f[(f[d>>2]|0)+60>>2]&31](d,+n[(f[e>>2]|0)+(b<<2)>>2]);d=f[g>>2]|0;Vk[f[(f[d>>2]|0)+72>>2]&1023](d,1049);b=b+1|0}while((b|0)!=(c|0))}}else{if((c|0)>0){e=b+76|0;b=0;do{if(!((b>>>0)%(d>>>0)|0)){h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+72>>2]&1023](h,1049);h=f[g>>2]|0;Ok[f[(f[h>>2]|0)+60>>2]&31](h,+n[(f[e>>2]|0)+(b<<2)>>2])}else{h=f[g>>2]|0;Ok[f[(f[h>>2]|0)+60>>2]&31](h,+n[(f[e>>2]|0)+(b<<2)>>2])}b=b+1|0}while((b|0)!=(c|0))}h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+72>>2]&1023](h,1049)}h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+88>>2]&1023](h,a+40|0);h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+72>>2]&1023](h,1049);return}function xPa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0;g=a+292|0;e=f[g>>2]|0;Vk[f[(f[e>>2]|0)+36>>2]&1023](e,c);e=f[g>>2]|0;Vk[f[(f[e>>2]|0)+88>>2]&1023](e,a+24|0);if(d>>>0<=1){d=f[g>>2]|0;Vk[f[(f[d>>2]|0)+72>>2]&1023](d,1049);if((c|0)>0){e=b+76|0;b=0;do{d=f[g>>2]|0;Ok[f[(f[d>>2]|0)+64>>2]&31](d,+p[(f[e>>2]|0)+(b<<3)>>3]);d=f[g>>2]|0;Vk[f[(f[d>>2]|0)+72>>2]&1023](d,1049);b=b+1|0}while((b|0)!=(c|0))}}else{if((c|0)>0){e=b+76|0;b=0;do{if(!((b>>>0)%(d>>>0)|0)){h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+72>>2]&1023](h,1049);h=f[g>>2]|0;Ok[f[(f[h>>2]|0)+64>>2]&31](h,+p[(f[e>>2]|0)+(b<<3)>>3])}else{h=f[g>>2]|0;Ok[f[(f[h>>2]|0)+64>>2]&31](h,+p[(f[e>>2]|0)+(b<<3)>>3])}b=b+1|0}while((b|0)!=(c|0))}h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+72>>2]&1023](h,1049)}h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+88>>2]&1023](h,a+40|0);h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+72>>2]&1023](h,1049);return}function yPa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0;h=a+292|0;g=f[h>>2]|0;Vk[f[(f[g>>2]|0)+36>>2]&1023](g,d);g=f[h>>2]|0;Vk[f[(f[g>>2]|0)+88>>2]&1023](g,a+24|0);if(e>>>0<=1){e=f[h>>2]|0;Vk[f[(f[e>>2]|0)+72>>2]&1023](e,1049);if((d|0)<=0){d=a+40|0;a=f[h>>2]|0;e=f[a>>2]|0;e=e+88|0;e=f[e>>2]|0;Vk[e&1023](a,d);h=f[h>>2]|0;d=f[h>>2]|0;d=d+72|0;d=f[d>>2]|0;Vk[d&1023](h,1049);return}g=c+76|0;c=0;do{e=f[g>>2]|0;i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+20>>2]&1023](i,b[e+(c*3|0)>>0]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+20>>2]&1023](i,b[e+(c*3|0)+1>>0]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+20>>2]&1023](i,b[e+(c*3|0)+2>>0]|0);e=f[h>>2]|0;Vk[f[(f[e>>2]|0)+72>>2]&1023](e,1049);c=c+1|0}while((c|0)!=(d|0));i=a+40|0;d=f[h>>2]|0;a=f[d>>2]|0;a=a+88|0;a=f[a>>2]|0;Vk[a&1023](d,i);i=f[h>>2]|0;h=f[i>>2]|0;h=h+72|0;h=f[h>>2]|0;Vk[h&1023](i,1049);return}if((d|0)>0){g=c+76|0;c=0;do{if(!((c>>>0)%(e>>>0)|0)){i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+72>>2]&1023](i,1049);i=f[g>>2]|0;j=f[h>>2]|0;Vk[f[(f[j>>2]|0)+20>>2]&1023](j,b[i+(c*3|0)>>0]|0);j=f[h>>2]|0;Vk[f[(f[j>>2]|0)+20>>2]&1023](j,b[i+(c*3|0)+1>>0]|0);j=f[h>>2]|0;Vk[f[(f[j>>2]|0)+20>>2]&1023](j,b[i+(c*3|0)+2>>0]|0)}else{j=f[g>>2]|0;i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+20>>2]&1023](i,b[j+(c*3|0)>>0]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+20>>2]&1023](i,b[j+(c*3|0)+1>>0]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+20>>2]&1023](i,b[j+(c*3|0)+2>>0]|0)}c=c+1|0}while((c|0)!=(d|0))}j=f[h>>2]|0;Vk[f[(f[j>>2]|0)+72>>2]&1023](j,1049);j=a+40|0;i=f[h>>2]|0;d=f[i>>2]|0;d=d+88|0;d=f[d>>2]|0;Vk[d&1023](i,j);j=f[h>>2]|0;i=f[j>>2]|0;i=i+72|0;i=f[i>>2]|0;Vk[i&1023](j,1049);return}function zPa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0;h=a+292|0;g=f[h>>2]|0;Vk[f[(f[g>>2]|0)+36>>2]&1023](g,d);g=f[h>>2]|0;Vk[f[(f[g>>2]|0)+88>>2]&1023](g,a+24|0);if(e>>>0<=1){e=f[h>>2]|0;Vk[f[(f[e>>2]|0)+72>>2]&1023](e,1049);if((d|0)<=0){d=a+40|0;a=f[h>>2]|0;e=f[a>>2]|0;e=e+88|0;e=f[e>>2]|0;Vk[e&1023](a,d);h=f[h>>2]|0;d=f[h>>2]|0;d=d+72|0;d=f[d>>2]|0;Vk[d&1023](h,1049);return}g=c+76|0;c=0;do{e=f[g>>2]|0;i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+20>>2]&1023](i,b[e+(c<<2)>>0]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+20>>2]&1023](i,b[e+(c<<2)+1>>0]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+20>>2]&1023](i,b[e+(c<<2)+2>>0]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+20>>2]&1023](i,b[e+(c<<2)+3>>0]|0);e=f[h>>2]|0;Vk[f[(f[e>>2]|0)+72>>2]&1023](e,1049);c=c+1|0}while((c|0)!=(d|0));i=a+40|0;d=f[h>>2]|0;a=f[d>>2]|0;a=a+88|0;a=f[a>>2]|0;Vk[a&1023](d,i);i=f[h>>2]|0;h=f[i>>2]|0;h=h+72|0;h=f[h>>2]|0;Vk[h&1023](i,1049);return}if((d|0)>0){g=c+76|0;c=0;do{if(!((c>>>0)%(e>>>0)|0)){i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+72>>2]&1023](i,1049);i=f[g>>2]|0;j=f[h>>2]|0;Vk[f[(f[j>>2]|0)+20>>2]&1023](j,b[i+(c<<2)>>0]|0);j=f[h>>2]|0;Vk[f[(f[j>>2]|0)+20>>2]&1023](j,b[i+(c<<2)+1>>0]|0);j=f[h>>2]|0;Vk[f[(f[j>>2]|0)+20>>2]&1023](j,b[i+(c<<2)+2>>0]|0);j=f[h>>2]|0;Vk[f[(f[j>>2]|0)+20>>2]&1023](j,b[i+(c<<2)+3>>0]|0)}else{j=f[g>>2]|0;i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+20>>2]&1023](i,b[j+(c<<2)>>0]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+20>>2]&1023](i,b[j+(c<<2)+1>>0]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+20>>2]&1023](i,b[j+(c<<2)+2>>0]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+20>>2]&1023](i,b[j+(c<<2)+3>>0]|0)}c=c+1|0}while((c|0)!=(d|0))}j=f[h>>2]|0;Vk[f[(f[j>>2]|0)+72>>2]&1023](j,1049);j=a+40|0;i=f[h>>2]|0;d=f[i>>2]|0;d=d+88|0;d=f[d>>2]|0;Vk[d&1023](i,j);j=f[h>>2]|0;i=f[j>>2]|0;i=i+72|0;i=f[i>>2]|0;Vk[i&1023](j,1049);return}function APa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0;h=a+292|0;g=f[h>>2]|0;Vk[f[(f[g>>2]|0)+36>>2]&1023](g,d);g=f[h>>2]|0;Vk[f[(f[g>>2]|0)+88>>2]&1023](g,a+24|0);if(e>>>0<=1){e=f[h>>2]|0;Vk[f[(f[e>>2]|0)+72>>2]&1023](e,1049);if((d|0)<=0){d=a+40|0;a=f[h>>2]|0;e=f[a>>2]|0;e=e+88|0;e=f[e>>2]|0;Vk[e&1023](a,d);h=f[h>>2]|0;d=f[h>>2]|0;d=d+72|0;d=f[d>>2]|0;Vk[d&1023](h,1049);return}g=c+76|0;c=0;do{e=f[g>>2]|0;i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+24>>2]&1023](i,b[e+(c*3|0)>>0]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+24>>2]&1023](i,b[e+(c*3|0)+1>>0]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+24>>2]&1023](i,b[e+(c*3|0)+2>>0]|0);e=f[h>>2]|0;Vk[f[(f[e>>2]|0)+72>>2]&1023](e,1049);c=c+1|0}while((c|0)!=(d|0));i=a+40|0;d=f[h>>2]|0;a=f[d>>2]|0;a=a+88|0;a=f[a>>2]|0;Vk[a&1023](d,i);i=f[h>>2]|0;h=f[i>>2]|0;h=h+72|0;h=f[h>>2]|0;Vk[h&1023](i,1049);return}if((d|0)>0){g=c+76|0;c=0;do{if(!((c>>>0)%(e>>>0)|0)){i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+72>>2]&1023](i,1049);i=f[g>>2]|0;j=f[h>>2]|0;Vk[f[(f[j>>2]|0)+24>>2]&1023](j,b[i+(c*3|0)>>0]|0);j=f[h>>2]|0;Vk[f[(f[j>>2]|0)+24>>2]&1023](j,b[i+(c*3|0)+1>>0]|0);j=f[h>>2]|0;Vk[f[(f[j>>2]|0)+24>>2]&1023](j,b[i+(c*3|0)+2>>0]|0)}else{j=f[g>>2]|0;i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+24>>2]&1023](i,b[j+(c*3|0)>>0]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+24>>2]&1023](i,b[j+(c*3|0)+1>>0]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+24>>2]&1023](i,b[j+(c*3|0)+2>>0]|0)}c=c+1|0}while((c|0)!=(d|0))}j=f[h>>2]|0;Vk[f[(f[j>>2]|0)+72>>2]&1023](j,1049);j=a+40|0;i=f[h>>2]|0;d=f[i>>2]|0;d=d+88|0;d=f[d>>2]|0;Vk[d&1023](i,j);j=f[h>>2]|0;i=f[j>>2]|0;i=i+72|0;i=f[i>>2]|0;Vk[i&1023](j,1049);return}function BPa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0;h=a+292|0;g=f[h>>2]|0;Vk[f[(f[g>>2]|0)+36>>2]&1023](g,d);g=f[h>>2]|0;Vk[f[(f[g>>2]|0)+88>>2]&1023](g,a+24|0);if(e>>>0<=1){e=f[h>>2]|0;Vk[f[(f[e>>2]|0)+72>>2]&1023](e,1049);if((d|0)<=0){d=a+40|0;a=f[h>>2]|0;e=f[a>>2]|0;e=e+88|0;e=f[e>>2]|0;Vk[e&1023](a,d);h=f[h>>2]|0;d=f[h>>2]|0;d=d+72|0;d=f[d>>2]|0;Vk[d&1023](h,1049);return}g=c+76|0;c=0;do{e=f[g>>2]|0;i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+24>>2]&1023](i,b[e+(c<<2)>>0]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+24>>2]&1023](i,b[e+(c<<2)+1>>0]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+24>>2]&1023](i,b[e+(c<<2)+2>>0]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+24>>2]&1023](i,b[e+(c<<2)+3>>0]|0);e=f[h>>2]|0;Vk[f[(f[e>>2]|0)+72>>2]&1023](e,1049);c=c+1|0}while((c|0)!=(d|0));i=a+40|0;d=f[h>>2]|0;a=f[d>>2]|0;a=a+88|0;a=f[a>>2]|0;Vk[a&1023](d,i);i=f[h>>2]|0;h=f[i>>2]|0;h=h+72|0;h=f[h>>2]|0;Vk[h&1023](i,1049);return}if((d|0)>0){g=c+76|0;c=0;do{if(!((c>>>0)%(e>>>0)|0)){i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+72>>2]&1023](i,1049);i=f[g>>2]|0;j=f[h>>2]|0;Vk[f[(f[j>>2]|0)+24>>2]&1023](j,b[i+(c<<2)>>0]|0);j=f[h>>2]|0;Vk[f[(f[j>>2]|0)+24>>2]&1023](j,b[i+(c<<2)+1>>0]|0);j=f[h>>2]|0;Vk[f[(f[j>>2]|0)+24>>2]&1023](j,b[i+(c<<2)+2>>0]|0);j=f[h>>2]|0;Vk[f[(f[j>>2]|0)+24>>2]&1023](j,b[i+(c<<2)+3>>0]|0)}else{j=f[g>>2]|0;i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+24>>2]&1023](i,b[j+(c<<2)>>0]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+24>>2]&1023](i,b[j+(c<<2)+1>>0]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+24>>2]&1023](i,b[j+(c<<2)+2>>0]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+24>>2]&1023](i,b[j+(c<<2)+3>>0]|0)}c=c+1|0}while((c|0)!=(d|0))}j=f[h>>2]|0;Vk[f[(f[j>>2]|0)+72>>2]&1023](j,1049);j=a+40|0;i=f[h>>2]|0;d=f[i>>2]|0;d=d+88|0;d=f[d>>2]|0;Vk[d&1023](i,j);j=f[h>>2]|0;i=f[j>>2]|0;i=i+72|0;i=f[i>>2]|0;Vk[i&1023](j,1049);return}function CPa(a,b,c,e){a=a|0;b=b|0;c=c|0;e=e|0;var g=0,h=0,i=0,j=0;h=a+292|0;g=f[h>>2]|0;Vk[f[(f[g>>2]|0)+36>>2]&1023](g,c);g=f[h>>2]|0;Vk[f[(f[g>>2]|0)+88>>2]&1023](g,a+24|0);if(e>>>0<=1){e=f[h>>2]|0;Vk[f[(f[e>>2]|0)+72>>2]&1023](e,1049);if((c|0)<=0){c=a+40|0;a=f[h>>2]|0;e=f[a>>2]|0;e=e+88|0;e=f[e>>2]|0;Vk[e&1023](a,c);h=f[h>>2]|0;c=f[h>>2]|0;c=c+72|0;c=f[c>>2]|0;Vk[c&1023](h,1049);return}g=b+76|0;b=0;do{e=f[g>>2]|0;i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+28>>2]&1023](i,d[e+(b*6|0)>>1]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+28>>2]&1023](i,d[e+(b*6|0)+2>>1]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+28>>2]&1023](i,d[e+(b*6|0)+4>>1]|0);e=f[h>>2]|0;Vk[f[(f[e>>2]|0)+72>>2]&1023](e,1049);b=b+1|0}while((b|0)!=(c|0));i=a+40|0;c=f[h>>2]|0;a=f[c>>2]|0;a=a+88|0;a=f[a>>2]|0;Vk[a&1023](c,i);i=f[h>>2]|0;h=f[i>>2]|0;h=h+72|0;h=f[h>>2]|0;Vk[h&1023](i,1049);return}if((c|0)>0){g=b+76|0;b=0;do{if(!((b>>>0)%(e>>>0)|0)){i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+72>>2]&1023](i,1049);i=f[g>>2]|0;j=f[h>>2]|0;Vk[f[(f[j>>2]|0)+28>>2]&1023](j,d[i+(b*6|0)>>1]|0);j=f[h>>2]|0;Vk[f[(f[j>>2]|0)+28>>2]&1023](j,d[i+(b*6|0)+2>>1]|0);j=f[h>>2]|0;Vk[f[(f[j>>2]|0)+28>>2]&1023](j,d[i+(b*6|0)+4>>1]|0)}else{j=f[g>>2]|0;i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+28>>2]&1023](i,d[j+(b*6|0)>>1]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+28>>2]&1023](i,d[j+(b*6|0)+2>>1]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+28>>2]&1023](i,d[j+(b*6|0)+4>>1]|0)}b=b+1|0}while((b|0)!=(c|0))}j=f[h>>2]|0;Vk[f[(f[j>>2]|0)+72>>2]&1023](j,1049);j=a+40|0;i=f[h>>2]|0;c=f[i>>2]|0;c=c+88|0;c=f[c>>2]|0;Vk[c&1023](i,j);j=f[h>>2]|0;i=f[j>>2]|0;i=i+72|0;i=f[i>>2]|0;Vk[i&1023](j,1049);return}function DPa(a,b,c,e){a=a|0;b=b|0;c=c|0;e=e|0;var g=0,h=0,i=0,j=0;h=a+292|0;g=f[h>>2]|0;Vk[f[(f[g>>2]|0)+36>>2]&1023](g,c);g=f[h>>2]|0;Vk[f[(f[g>>2]|0)+88>>2]&1023](g,a+24|0);if(e>>>0<=1){e=f[h>>2]|0;Vk[f[(f[e>>2]|0)+72>>2]&1023](e,1049);if((c|0)<=0){c=a+40|0;a=f[h>>2]|0;e=f[a>>2]|0;e=e+88|0;e=f[e>>2]|0;Vk[e&1023](a,c);h=f[h>>2]|0;c=f[h>>2]|0;c=c+72|0;c=f[c>>2]|0;Vk[c&1023](h,1049);return}g=b+76|0;b=0;do{e=f[g>>2]|0;i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+28>>2]&1023](i,d[e+(b<<3)>>1]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+28>>2]&1023](i,d[e+(b<<3)+2>>1]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+28>>2]&1023](i,d[e+(b<<3)+4>>1]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+28>>2]&1023](i,d[e+(b<<3)+6>>1]|0);e=f[h>>2]|0;Vk[f[(f[e>>2]|0)+72>>2]&1023](e,1049);b=b+1|0}while((b|0)!=(c|0));i=a+40|0;c=f[h>>2]|0;a=f[c>>2]|0;a=a+88|0;a=f[a>>2]|0;Vk[a&1023](c,i);i=f[h>>2]|0;h=f[i>>2]|0;h=h+72|0;h=f[h>>2]|0;Vk[h&1023](i,1049);return}if((c|0)>0){g=b+76|0;b=0;do{if(!((b>>>0)%(e>>>0)|0)){i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+72>>2]&1023](i,1049);i=f[g>>2]|0;j=f[h>>2]|0;Vk[f[(f[j>>2]|0)+28>>2]&1023](j,d[i+(b<<3)>>1]|0);j=f[h>>2]|0;Vk[f[(f[j>>2]|0)+28>>2]&1023](j,d[i+(b<<3)+2>>1]|0);j=f[h>>2]|0;Vk[f[(f[j>>2]|0)+28>>2]&1023](j,d[i+(b<<3)+4>>1]|0);j=f[h>>2]|0;Vk[f[(f[j>>2]|0)+28>>2]&1023](j,d[i+(b<<3)+6>>1]|0)}else{j=f[g>>2]|0;i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+28>>2]&1023](i,d[j+(b<<3)>>1]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+28>>2]&1023](i,d[j+(b<<3)+2>>1]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+28>>2]&1023](i,d[j+(b<<3)+4>>1]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+28>>2]&1023](i,d[j+(b<<3)+6>>1]|0)}b=b+1|0}while((b|0)!=(c|0))}j=f[h>>2]|0;Vk[f[(f[j>>2]|0)+72>>2]&1023](j,1049);j=a+40|0;i=f[h>>2]|0;c=f[i>>2]|0;c=c+88|0;c=f[c>>2]|0;Vk[c&1023](i,j);j=f[h>>2]|0;i=f[j>>2]|0;i=i+72|0;i=f[i>>2]|0;Vk[i&1023](j,1049);return}function EPa(a,b,c,e){a=a|0;b=b|0;c=c|0;e=e|0;var g=0,h=0,i=0,j=0;h=a+292|0;g=f[h>>2]|0;Vk[f[(f[g>>2]|0)+36>>2]&1023](g,c);g=f[h>>2]|0;Vk[f[(f[g>>2]|0)+88>>2]&1023](g,a+24|0);if(e>>>0<=1){e=f[h>>2]|0;Vk[f[(f[e>>2]|0)+72>>2]&1023](e,1049);if((c|0)<=0){c=a+40|0;a=f[h>>2]|0;e=f[a>>2]|0;e=e+88|0;e=f[e>>2]|0;Vk[e&1023](a,c);h=f[h>>2]|0;c=f[h>>2]|0;c=c+72|0;c=f[c>>2]|0;Vk[c&1023](h,1049);return}g=b+76|0;b=0;do{e=f[g>>2]|0;i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+32>>2]&1023](i,d[e+(b*6|0)>>1]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+32>>2]&1023](i,d[e+(b*6|0)+2>>1]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+32>>2]&1023](i,d[e+(b*6|0)+4>>1]|0);e=f[h>>2]|0;Vk[f[(f[e>>2]|0)+72>>2]&1023](e,1049);b=b+1|0}while((b|0)!=(c|0));i=a+40|0;c=f[h>>2]|0;a=f[c>>2]|0;a=a+88|0;a=f[a>>2]|0;Vk[a&1023](c,i);i=f[h>>2]|0;h=f[i>>2]|0;h=h+72|0;h=f[h>>2]|0;Vk[h&1023](i,1049);return}if((c|0)>0){g=b+76|0;b=0;do{if(!((b>>>0)%(e>>>0)|0)){i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+72>>2]&1023](i,1049);i=f[g>>2]|0;j=f[h>>2]|0;Vk[f[(f[j>>2]|0)+32>>2]&1023](j,d[i+(b*6|0)>>1]|0);j=f[h>>2]|0;Vk[f[(f[j>>2]|0)+32>>2]&1023](j,d[i+(b*6|0)+2>>1]|0);j=f[h>>2]|0;Vk[f[(f[j>>2]|0)+32>>2]&1023](j,d[i+(b*6|0)+4>>1]|0)}else{j=f[g>>2]|0;i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+32>>2]&1023](i,d[j+(b*6|0)>>1]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+32>>2]&1023](i,d[j+(b*6|0)+2>>1]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+32>>2]&1023](i,d[j+(b*6|0)+4>>1]|0)}b=b+1|0}while((b|0)!=(c|0))}j=f[h>>2]|0;Vk[f[(f[j>>2]|0)+72>>2]&1023](j,1049);j=a+40|0;i=f[h>>2]|0;c=f[i>>2]|0;c=c+88|0;c=f[c>>2]|0;Vk[c&1023](i,j);j=f[h>>2]|0;i=f[j>>2]|0;i=i+72|0;i=f[i>>2]|0;Vk[i&1023](j,1049);return}function FPa(a,b,c,e){a=a|0;b=b|0;c=c|0;e=e|0;var g=0,h=0,i=0,j=0;h=a+292|0;g=f[h>>2]|0;Vk[f[(f[g>>2]|0)+36>>2]&1023](g,c);g=f[h>>2]|0;Vk[f[(f[g>>2]|0)+88>>2]&1023](g,a+24|0);if(e>>>0<=1){e=f[h>>2]|0;Vk[f[(f[e>>2]|0)+72>>2]&1023](e,1049);if((c|0)<=0){c=a+40|0;a=f[h>>2]|0;e=f[a>>2]|0;e=e+88|0;e=f[e>>2]|0;Vk[e&1023](a,c);h=f[h>>2]|0;c=f[h>>2]|0;c=c+72|0;c=f[c>>2]|0;Vk[c&1023](h,1049);return}g=b+76|0;b=0;do{e=f[g>>2]|0;i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+32>>2]&1023](i,d[e+(b<<3)>>1]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+32>>2]&1023](i,d[e+(b<<3)+2>>1]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+32>>2]&1023](i,d[e+(b<<3)+4>>1]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+32>>2]&1023](i,d[e+(b<<3)+6>>1]|0);e=f[h>>2]|0;Vk[f[(f[e>>2]|0)+72>>2]&1023](e,1049);b=b+1|0}while((b|0)!=(c|0));i=a+40|0;c=f[h>>2]|0;a=f[c>>2]|0;a=a+88|0;a=f[a>>2]|0;Vk[a&1023](c,i);i=f[h>>2]|0;h=f[i>>2]|0;h=h+72|0;h=f[h>>2]|0;Vk[h&1023](i,1049);return}if((c|0)>0){g=b+76|0;b=0;do{if(!((b>>>0)%(e>>>0)|0)){i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+72>>2]&1023](i,1049);i=f[g>>2]|0;j=f[h>>2]|0;Vk[f[(f[j>>2]|0)+32>>2]&1023](j,d[i+(b<<3)>>1]|0);j=f[h>>2]|0;Vk[f[(f[j>>2]|0)+32>>2]&1023](j,d[i+(b<<3)+2>>1]|0);j=f[h>>2]|0;Vk[f[(f[j>>2]|0)+32>>2]&1023](j,d[i+(b<<3)+4>>1]|0);j=f[h>>2]|0;Vk[f[(f[j>>2]|0)+32>>2]&1023](j,d[i+(b<<3)+6>>1]|0)}else{j=f[g>>2]|0;i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+32>>2]&1023](i,d[j+(b<<3)>>1]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+32>>2]&1023](i,d[j+(b<<3)+2>>1]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+32>>2]&1023](i,d[j+(b<<3)+4>>1]|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+32>>2]&1023](i,d[j+(b<<3)+6>>1]|0)}b=b+1|0}while((b|0)!=(c|0))}j=f[h>>2]|0;Vk[f[(f[j>>2]|0)+72>>2]&1023](j,1049);j=a+40|0;i=f[h>>2]|0;c=f[i>>2]|0;c=c+88|0;c=f[c>>2]|0;Vk[c&1023](i,j);j=f[h>>2]|0;i=f[j>>2]|0;i=i+72|0;i=f[i>>2]|0;Vk[i&1023](j,1049);return}function GPa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;g=a+292|0;e=f[g>>2]|0;Vk[f[(f[e>>2]|0)+36>>2]&1023](e,c);e=f[g>>2]|0;Vk[f[(f[e>>2]|0)+88>>2]&1023](e,a+24|0);if(d>>>0<=1){d=f[g>>2]|0;Vk[f[(f[d>>2]|0)+72>>2]&1023](d,1049);if((c|0)<=0){c=a+40|0;a=f[g>>2]|0;d=f[a>>2]|0;d=d+88|0;d=f[d>>2]|0;Vk[d&1023](a,c);g=f[g>>2]|0;c=f[g>>2]|0;c=c+72|0;c=f[c>>2]|0;Vk[c&1023](g,1049);return}e=b+76|0;b=0;do{d=f[e>>2]|0;h=f[g>>2]|0;Ok[f[(f[h>>2]|0)+60>>2]&31](h,+n[d+(b*12|0)>>2]);h=f[g>>2]|0;Ok[f[(f[h>>2]|0)+60>>2]&31](h,+n[d+(b*12|0)+4>>2]);h=f[g>>2]|0;Ok[f[(f[h>>2]|0)+60>>2]&31](h,+n[d+(b*12|0)+8>>2]);d=f[g>>2]|0;Vk[f[(f[d>>2]|0)+72>>2]&1023](d,1049);b=b+1|0}while((b|0)!=(c|0));h=a+40|0;c=f[g>>2]|0;a=f[c>>2]|0;a=a+88|0;a=f[a>>2]|0;Vk[a&1023](c,h);h=f[g>>2]|0;g=f[h>>2]|0;g=g+72|0;g=f[g>>2]|0;Vk[g&1023](h,1049);return}if((c|0)>0){e=b+76|0;b=0;do{if(!((b>>>0)%(d>>>0)|0)){h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+72>>2]&1023](h,1049);h=f[e>>2]|0;i=f[g>>2]|0;Ok[f[(f[i>>2]|0)+60>>2]&31](i,+n[h+(b*12|0)>>2]);i=f[g>>2]|0;Ok[f[(f[i>>2]|0)+60>>2]&31](i,+n[h+(b*12|0)+4>>2]);i=f[g>>2]|0;Ok[f[(f[i>>2]|0)+60>>2]&31](i,+n[h+(b*12|0)+8>>2])}else{i=f[e>>2]|0;h=f[g>>2]|0;Ok[f[(f[h>>2]|0)+60>>2]&31](h,+n[i+(b*12|0)>>2]);h=f[g>>2]|0;Ok[f[(f[h>>2]|0)+60>>2]&31](h,+n[i+(b*12|0)+4>>2]);h=f[g>>2]|0;Ok[f[(f[h>>2]|0)+60>>2]&31](h,+n[i+(b*12|0)+8>>2])}b=b+1|0}while((b|0)!=(c|0))}i=f[g>>2]|0;Vk[f[(f[i>>2]|0)+72>>2]&1023](i,1049);i=a+40|0;h=f[g>>2]|0;c=f[h>>2]|0;c=c+88|0;c=f[c>>2]|0;Vk[c&1023](h,i);i=f[g>>2]|0;h=f[i>>2]|0;h=h+72|0;h=f[h>>2]|0;Vk[h&1023](i,1049);return}function HPa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;g=a+292|0;e=f[g>>2]|0;Vk[f[(f[e>>2]|0)+36>>2]&1023](e,c);e=f[g>>2]|0;Vk[f[(f[e>>2]|0)+88>>2]&1023](e,a+24|0);if(d>>>0<=1){d=f[g>>2]|0;Vk[f[(f[d>>2]|0)+72>>2]&1023](d,1049);if((c|0)<=0){c=a+40|0;a=f[g>>2]|0;d=f[a>>2]|0;d=d+88|0;d=f[d>>2]|0;Vk[d&1023](a,c);g=f[g>>2]|0;c=f[g>>2]|0;c=c+72|0;c=f[c>>2]|0;Vk[c&1023](g,1049);return}e=b+76|0;b=0;do{d=f[e>>2]|0;h=f[g>>2]|0;Ok[f[(f[h>>2]|0)+60>>2]&31](h,+n[d+(b<<4)>>2]);h=f[g>>2]|0;Ok[f[(f[h>>2]|0)+60>>2]&31](h,+n[d+(b<<4)+4>>2]);h=f[g>>2]|0;Ok[f[(f[h>>2]|0)+60>>2]&31](h,+n[d+(b<<4)+8>>2]);h=f[g>>2]|0;Ok[f[(f[h>>2]|0)+60>>2]&31](h,+n[d+(b<<4)+12>>2]);d=f[g>>2]|0;Vk[f[(f[d>>2]|0)+72>>2]&1023](d,1049);b=b+1|0}while((b|0)!=(c|0));h=a+40|0;c=f[g>>2]|0;a=f[c>>2]|0;a=a+88|0;a=f[a>>2]|0;Vk[a&1023](c,h);h=f[g>>2]|0;g=f[h>>2]|0;g=g+72|0;g=f[g>>2]|0;Vk[g&1023](h,1049);return}if((c|0)>0){e=b+76|0;b=0;do{if(!((b>>>0)%(d>>>0)|0)){h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+72>>2]&1023](h,1049);h=f[e>>2]|0;i=f[g>>2]|0;Ok[f[(f[i>>2]|0)+60>>2]&31](i,+n[h+(b<<4)>>2]);i=f[g>>2]|0;Ok[f[(f[i>>2]|0)+60>>2]&31](i,+n[h+(b<<4)+4>>2]);i=f[g>>2]|0;Ok[f[(f[i>>2]|0)+60>>2]&31](i,+n[h+(b<<4)+8>>2]);i=f[g>>2]|0;Ok[f[(f[i>>2]|0)+60>>2]&31](i,+n[h+(b<<4)+12>>2])}else{i=f[e>>2]|0;h=f[g>>2]|0;Ok[f[(f[h>>2]|0)+60>>2]&31](h,+n[i+(b<<4)>>2]);h=f[g>>2]|0;Ok[f[(f[h>>2]|0)+60>>2]&31](h,+n[i+(b<<4)+4>>2]);h=f[g>>2]|0;Ok[f[(f[h>>2]|0)+60>>2]&31](h,+n[i+(b<<4)+8>>2]);h=f[g>>2]|0;Ok[f[(f[h>>2]|0)+60>>2]&31](h,+n[i+(b<<4)+12>>2])}b=b+1|0}while((b|0)!=(c|0))}i=f[g>>2]|0;Vk[f[(f[i>>2]|0)+72>>2]&1023](i,1049);i=a+40|0;h=f[g>>2]|0;c=f[h>>2]|0;c=c+88|0;c=f[c>>2]|0;Vk[c&1023](h,i);i=f[g>>2]|0;h=f[i>>2]|0;h=h+72|0;h=f[h>>2]|0;Vk[h&1023](i,1049);return}function IPa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;g=a+292|0;e=f[g>>2]|0;Vk[f[(f[e>>2]|0)+36>>2]&1023](e,c);e=f[g>>2]|0;Vk[f[(f[e>>2]|0)+88>>2]&1023](e,a+24|0);if(d>>>0<=1){d=f[g>>2]|0;Vk[f[(f[d>>2]|0)+72>>2]&1023](d,1049);if((c|0)<=0){c=a+40|0;a=f[g>>2]|0;d=f[a>>2]|0;d=d+88|0;d=f[d>>2]|0;Vk[d&1023](a,c);g=f[g>>2]|0;c=f[g>>2]|0;c=c+72|0;c=f[c>>2]|0;Vk[c&1023](g,1049);return}e=b+76|0;b=0;do{d=f[e>>2]|0;h=f[g>>2]|0;Ok[f[(f[h>>2]|0)+64>>2]&31](h,+p[d+(b*24|0)>>3]);h=f[g>>2]|0;Ok[f[(f[h>>2]|0)+64>>2]&31](h,+p[d+(b*24|0)+8>>3]);h=f[g>>2]|0;Ok[f[(f[h>>2]|0)+64>>2]&31](h,+p[d+(b*24|0)+16>>3]);d=f[g>>2]|0;Vk[f[(f[d>>2]|0)+72>>2]&1023](d,1049);b=b+1|0}while((b|0)!=(c|0));h=a+40|0;c=f[g>>2]|0;a=f[c>>2]|0;a=a+88|0;a=f[a>>2]|0;Vk[a&1023](c,h);h=f[g>>2]|0;g=f[h>>2]|0;g=g+72|0;g=f[g>>2]|0;Vk[g&1023](h,1049);return}if((c|0)>0){e=b+76|0;b=0;do{if(!((b>>>0)%(d>>>0)|0)){h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+72>>2]&1023](h,1049);h=f[e>>2]|0;i=f[g>>2]|0;Ok[f[(f[i>>2]|0)+64>>2]&31](i,+p[h+(b*24|0)>>3]);i=f[g>>2]|0;Ok[f[(f[i>>2]|0)+64>>2]&31](i,+p[h+(b*24|0)+8>>3]);i=f[g>>2]|0;Ok[f[(f[i>>2]|0)+64>>2]&31](i,+p[h+(b*24|0)+16>>3])}else{i=f[e>>2]|0;h=f[g>>2]|0;Ok[f[(f[h>>2]|0)+64>>2]&31](h,+p[i+(b*24|0)>>3]);h=f[g>>2]|0;Ok[f[(f[h>>2]|0)+64>>2]&31](h,+p[i+(b*24|0)+8>>3]);h=f[g>>2]|0;Ok[f[(f[h>>2]|0)+64>>2]&31](h,+p[i+(b*24|0)+16>>3])}b=b+1|0}while((b|0)!=(c|0))}i=f[g>>2]|0;Vk[f[(f[i>>2]|0)+72>>2]&1023](i,1049);i=a+40|0;h=f[g>>2]|0;c=f[h>>2]|0;c=c+88|0;c=f[c>>2]|0;Vk[c&1023](h,i);i=f[g>>2]|0;h=f[i>>2]|0;h=h+72|0;h=f[h>>2]|0;Vk[h&1023](i,1049);return}function JPa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;g=a+292|0;e=f[g>>2]|0;Vk[f[(f[e>>2]|0)+36>>2]&1023](e,c);e=f[g>>2]|0;Vk[f[(f[e>>2]|0)+88>>2]&1023](e,a+24|0);if(d>>>0<=1){d=f[g>>2]|0;Vk[f[(f[d>>2]|0)+72>>2]&1023](d,1049);if((c|0)<=0){c=a+40|0;a=f[g>>2]|0;d=f[a>>2]|0;d=d+88|0;d=f[d>>2]|0;Vk[d&1023](a,c);g=f[g>>2]|0;c=f[g>>2]|0;c=c+72|0;c=f[c>>2]|0;Vk[c&1023](g,1049);return}e=b+76|0;b=0;do{d=f[e>>2]|0;h=f[g>>2]|0;Ok[f[(f[h>>2]|0)+64>>2]&31](h,+p[d+(b<<5)>>3]);h=f[g>>2]|0;Ok[f[(f[h>>2]|0)+64>>2]&31](h,+p[d+(b<<5)+8>>3]);h=f[g>>2]|0;Ok[f[(f[h>>2]|0)+64>>2]&31](h,+p[d+(b<<5)+16>>3]);h=f[g>>2]|0;Ok[f[(f[h>>2]|0)+64>>2]&31](h,+p[d+(b<<5)+24>>3]);d=f[g>>2]|0;Vk[f[(f[d>>2]|0)+72>>2]&1023](d,1049);b=b+1|0}while((b|0)!=(c|0));h=a+40|0;c=f[g>>2]|0;a=f[c>>2]|0;a=a+88|0;a=f[a>>2]|0;Vk[a&1023](c,h);h=f[g>>2]|0;g=f[h>>2]|0;g=g+72|0;g=f[g>>2]|0;Vk[g&1023](h,1049);return}if((c|0)>0){e=b+76|0;b=0;do{if(!((b>>>0)%(d>>>0)|0)){h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+72>>2]&1023](h,1049);h=f[e>>2]|0;i=f[g>>2]|0;Ok[f[(f[i>>2]|0)+64>>2]&31](i,+p[h+(b<<5)>>3]);i=f[g>>2]|0;Ok[f[(f[i>>2]|0)+64>>2]&31](i,+p[h+(b<<5)+8>>3]);i=f[g>>2]|0;Ok[f[(f[i>>2]|0)+64>>2]&31](i,+p[h+(b<<5)+16>>3]);i=f[g>>2]|0;Ok[f[(f[i>>2]|0)+64>>2]&31](i,+p[h+(b<<5)+24>>3])}else{i=f[e>>2]|0;h=f[g>>2]|0;Ok[f[(f[h>>2]|0)+64>>2]&31](h,+p[i+(b<<5)>>3]);h=f[g>>2]|0;Ok[f[(f[h>>2]|0)+64>>2]&31](h,+p[i+(b<<5)+8>>3]);h=f[g>>2]|0;Ok[f[(f[h>>2]|0)+64>>2]&31](h,+p[i+(b<<5)+16>>3]);h=f[g>>2]|0;Ok[f[(f[h>>2]|0)+64>>2]&31](h,+p[i+(b<<5)+24>>3])}b=b+1|0}while((b|0)!=(c|0))}i=f[g>>2]|0;Vk[f[(f[i>>2]|0)+72>>2]&1023](i,1049);i=a+40|0;h=f[g>>2]|0;c=f[h>>2]|0;c=c+88|0;c=f[c>>2]|0;Vk[c&1023](h,i);i=f[g>>2]|0;h=f[i>>2]|0;h=h+72|0;h=f[h>>2]|0;Vk[h&1023](i,1049);return}function KPa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;g=a+292|0;e=f[g>>2]|0;Vk[f[(f[e>>2]|0)+36>>2]&1023](e,c);e=f[g>>2]|0;Vk[f[(f[e>>2]|0)+88>>2]&1023](e,a+24|0);if(d>>>0<=1){d=f[g>>2]|0;Vk[f[(f[d>>2]|0)+72>>2]&1023](d,1049);if((c|0)<=0){c=a+40|0;a=f[g>>2]|0;d=f[a>>2]|0;d=d+88|0;d=f[d>>2]|0;Vk[d&1023](a,c);g=f[g>>2]|0;c=f[g>>2]|0;c=c+72|0;c=f[c>>2]|0;Vk[c&1023](g,1049);return}e=b+76|0;b=0;do{d=f[e>>2]|0;h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+36>>2]&1023](h,f[d+(b*12|0)>>2]|0);h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+36>>2]&1023](h,f[d+(b*12|0)+4>>2]|0);h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+36>>2]&1023](h,f[d+(b*12|0)+8>>2]|0);d=f[g>>2]|0;Vk[f[(f[d>>2]|0)+72>>2]&1023](d,1049);b=b+1|0}while((b|0)!=(c|0));h=a+40|0;c=f[g>>2]|0;a=f[c>>2]|0;a=a+88|0;a=f[a>>2]|0;Vk[a&1023](c,h);h=f[g>>2]|0;g=f[h>>2]|0;g=g+72|0;g=f[g>>2]|0;Vk[g&1023](h,1049);return}if((c|0)>0){e=b+76|0;b=0;do{if(!((b>>>0)%(d>>>0)|0)){h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+72>>2]&1023](h,1049);h=f[e>>2]|0;i=f[g>>2]|0;Vk[f[(f[i>>2]|0)+36>>2]&1023](i,f[h+(b*12|0)>>2]|0);i=f[g>>2]|0;Vk[f[(f[i>>2]|0)+36>>2]&1023](i,f[h+(b*12|0)+4>>2]|0);i=f[g>>2]|0;Vk[f[(f[i>>2]|0)+36>>2]&1023](i,f[h+(b*12|0)+8>>2]|0)}else{i=f[e>>2]|0;h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+36>>2]&1023](h,f[i+(b*12|0)>>2]|0);h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+36>>2]&1023](h,f[i+(b*12|0)+4>>2]|0);h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+36>>2]&1023](h,f[i+(b*12|0)+8>>2]|0)}b=b+1|0}while((b|0)!=(c|0))}i=f[g>>2]|0;Vk[f[(f[i>>2]|0)+72>>2]&1023](i,1049);i=a+40|0;h=f[g>>2]|0;c=f[h>>2]|0;c=c+88|0;c=f[c>>2]|0;Vk[c&1023](h,i);i=f[g>>2]|0;h=f[i>>2]|0;h=h+72|0;h=f[h>>2]|0;Vk[h&1023](i,1049);return}function LPa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;g=a+292|0;e=f[g>>2]|0;Vk[f[(f[e>>2]|0)+36>>2]&1023](e,c);e=f[g>>2]|0;Vk[f[(f[e>>2]|0)+88>>2]&1023](e,a+24|0);if(d>>>0<=1){d=f[g>>2]|0;Vk[f[(f[d>>2]|0)+72>>2]&1023](d,1049);if((c|0)<=0){c=a+40|0;a=f[g>>2]|0;d=f[a>>2]|0;d=d+88|0;d=f[d>>2]|0;Vk[d&1023](a,c);g=f[g>>2]|0;c=f[g>>2]|0;c=c+72|0;c=f[c>>2]|0;Vk[c&1023](g,1049);return}e=b+76|0;b=0;do{d=f[e>>2]|0;h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+36>>2]&1023](h,f[d+(b<<4)>>2]|0);h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+36>>2]&1023](h,f[d+(b<<4)+4>>2]|0);h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+36>>2]&1023](h,f[d+(b<<4)+8>>2]|0);h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+36>>2]&1023](h,f[d+(b<<4)+12>>2]|0);d=f[g>>2]|0;Vk[f[(f[d>>2]|0)+72>>2]&1023](d,1049);b=b+1|0}while((b|0)!=(c|0));h=a+40|0;c=f[g>>2]|0;a=f[c>>2]|0;a=a+88|0;a=f[a>>2]|0;Vk[a&1023](c,h);h=f[g>>2]|0;g=f[h>>2]|0;g=g+72|0;g=f[g>>2]|0;Vk[g&1023](h,1049);return}if((c|0)>0){e=b+76|0;b=0;do{if(!((b>>>0)%(d>>>0)|0)){h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+72>>2]&1023](h,1049);h=f[e>>2]|0;i=f[g>>2]|0;Vk[f[(f[i>>2]|0)+36>>2]&1023](i,f[h+(b<<4)>>2]|0);i=f[g>>2]|0;Vk[f[(f[i>>2]|0)+36>>2]&1023](i,f[h+(b<<4)+4>>2]|0);i=f[g>>2]|0;Vk[f[(f[i>>2]|0)+36>>2]&1023](i,f[h+(b<<4)+8>>2]|0);i=f[g>>2]|0;Vk[f[(f[i>>2]|0)+36>>2]&1023](i,f[h+(b<<4)+12>>2]|0)}else{i=f[e>>2]|0;h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+36>>2]&1023](h,f[i+(b<<4)>>2]|0);h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+36>>2]&1023](h,f[i+(b<<4)+4>>2]|0);h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+36>>2]&1023](h,f[i+(b<<4)+8>>2]|0);h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+36>>2]&1023](h,f[i+(b<<4)+12>>2]|0)}b=b+1|0}while((b|0)!=(c|0))}i=f[g>>2]|0;Vk[f[(f[i>>2]|0)+72>>2]&1023](i,1049);i=a+40|0;h=f[g>>2]|0;c=f[h>>2]|0;c=c+88|0;c=f[c>>2]|0;Vk[c&1023](h,i);i=f[g>>2]|0;h=f[i>>2]|0;h=h+72|0;h=f[h>>2]|0;Vk[h&1023](i,1049);return}function MPa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;g=a+292|0;e=f[g>>2]|0;Vk[f[(f[e>>2]|0)+36>>2]&1023](e,c);e=f[g>>2]|0;Vk[f[(f[e>>2]|0)+88>>2]&1023](e,a+24|0);if(d>>>0<=1){d=f[g>>2]|0;Vk[f[(f[d>>2]|0)+72>>2]&1023](d,1049);if((c|0)<=0){c=a+40|0;a=f[g>>2]|0;d=f[a>>2]|0;d=d+88|0;d=f[d>>2]|0;Vk[d&1023](a,c);g=f[g>>2]|0;c=f[g>>2]|0;c=c+72|0;c=f[c>>2]|0;Vk[c&1023](g,1049);return}e=b+76|0;b=0;do{d=f[e>>2]|0;h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+40>>2]&1023](h,f[d+(b*12|0)>>2]|0);h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+40>>2]&1023](h,f[d+(b*12|0)+4>>2]|0);h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+40>>2]&1023](h,f[d+(b*12|0)+8>>2]|0);d=f[g>>2]|0;Vk[f[(f[d>>2]|0)+72>>2]&1023](d,1049);b=b+1|0}while((b|0)!=(c|0));h=a+40|0;c=f[g>>2]|0;a=f[c>>2]|0;a=a+88|0;a=f[a>>2]|0;Vk[a&1023](c,h);h=f[g>>2]|0;g=f[h>>2]|0;g=g+72|0;g=f[g>>2]|0;Vk[g&1023](h,1049);return}if((c|0)>0){e=b+76|0;b=0;do{if(!((b>>>0)%(d>>>0)|0)){h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+72>>2]&1023](h,1049);h=f[e>>2]|0;i=f[g>>2]|0;Vk[f[(f[i>>2]|0)+40>>2]&1023](i,f[h+(b*12|0)>>2]|0);i=f[g>>2]|0;Vk[f[(f[i>>2]|0)+40>>2]&1023](i,f[h+(b*12|0)+4>>2]|0);i=f[g>>2]|0;Vk[f[(f[i>>2]|0)+40>>2]&1023](i,f[h+(b*12|0)+8>>2]|0)}else{i=f[e>>2]|0;h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+40>>2]&1023](h,f[i+(b*12|0)>>2]|0);h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+40>>2]&1023](h,f[i+(b*12|0)+4>>2]|0);h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+40>>2]&1023](h,f[i+(b*12|0)+8>>2]|0)}b=b+1|0}while((b|0)!=(c|0))}i=f[g>>2]|0;Vk[f[(f[i>>2]|0)+72>>2]&1023](i,1049);i=a+40|0;h=f[g>>2]|0;c=f[h>>2]|0;c=c+88|0;c=f[c>>2]|0;Vk[c&1023](h,i);i=f[g>>2]|0;h=f[i>>2]|0;h=h+72|0;h=f[h>>2]|0;Vk[h&1023](i,1049);return}function NPa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;g=a+292|0;e=f[g>>2]|0;Vk[f[(f[e>>2]|0)+36>>2]&1023](e,c);e=f[g>>2]|0;Vk[f[(f[e>>2]|0)+88>>2]&1023](e,a+24|0);if(d>>>0<=1){d=f[g>>2]|0;Vk[f[(f[d>>2]|0)+72>>2]&1023](d,1049);if((c|0)<=0){c=a+40|0;a=f[g>>2]|0;d=f[a>>2]|0;d=d+88|0;d=f[d>>2]|0;Vk[d&1023](a,c);g=f[g>>2]|0;c=f[g>>2]|0;c=c+72|0;c=f[c>>2]|0;Vk[c&1023](g,1049);return}e=b+76|0;b=0;do{d=f[e>>2]|0;h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+40>>2]&1023](h,f[d+(b<<4)>>2]|0);h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+40>>2]&1023](h,f[d+(b<<4)+4>>2]|0);h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+40>>2]&1023](h,f[d+(b<<4)+8>>2]|0);h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+40>>2]&1023](h,f[d+(b<<4)+12>>2]|0);d=f[g>>2]|0;Vk[f[(f[d>>2]|0)+72>>2]&1023](d,1049);b=b+1|0}while((b|0)!=(c|0));h=a+40|0;c=f[g>>2]|0;a=f[c>>2]|0;a=a+88|0;a=f[a>>2]|0;Vk[a&1023](c,h);h=f[g>>2]|0;g=f[h>>2]|0;g=g+72|0;g=f[g>>2]|0;Vk[g&1023](h,1049);return}if((c|0)>0){e=b+76|0;b=0;do{if(!((b>>>0)%(d>>>0)|0)){h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+72>>2]&1023](h,1049);h=f[e>>2]|0;i=f[g>>2]|0;Vk[f[(f[i>>2]|0)+40>>2]&1023](i,f[h+(b<<4)>>2]|0);i=f[g>>2]|0;Vk[f[(f[i>>2]|0)+40>>2]&1023](i,f[h+(b<<4)+4>>2]|0);i=f[g>>2]|0;Vk[f[(f[i>>2]|0)+40>>2]&1023](i,f[h+(b<<4)+8>>2]|0);i=f[g>>2]|0;Vk[f[(f[i>>2]|0)+40>>2]&1023](i,f[h+(b<<4)+12>>2]|0)}else{i=f[e>>2]|0;h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+40>>2]&1023](h,f[i+(b<<4)>>2]|0);h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+40>>2]&1023](h,f[i+(b<<4)+4>>2]|0);h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+40>>2]&1023](h,f[i+(b<<4)+8>>2]|0);h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+40>>2]&1023](h,f[i+(b<<4)+12>>2]|0)}b=b+1|0}while((b|0)!=(c|0))}i=f[g>>2]|0;Vk[f[(f[i>>2]|0)+72>>2]&1023](i,1049);i=a+40|0;h=f[g>>2]|0;c=f[h>>2]|0;c=c+88|0;c=f[c>>2]|0;Vk[c&1023](h,i);i=f[g>>2]|0;h=f[i>>2]|0;h=h+72|0;h=f[h>>2]|0;Vk[h&1023](i,1049);return}function OPa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0;BCa(a);f[a>>2]=128804;g=a+12|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;VDb(a+24|0,d);e=c+4|0;a=f[c>>2]|0;if((f[e>>2]|0)==(a|0))return;d=0;do{i=a;k=i+(d*12|0)|0;h=b[k+11>>0]|0;j=h<<24>>24<0;iEb(g,j?f[k>>2]|0:k,j?f[i+(d*12|0)+4>>2]|0:h&255)|0;jEb(g,239529)|0;d=d+1|0;a=f[c>>2]|0}while(d>>>0<(((f[e>>2]|0)-a|0)/12|0)>>>0);return}function PPa(a){a=a|0;var c=0;f[a>>2]=128804;c=a+24|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);c=a+12|0;if((b[c+11>>0]|0)>=0){V4(a);return}NDb(f[c>>2]|0);V4(a);return}function QPa(a){a=a|0;var c=0;f[a>>2]=128804;c=a+24|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);c=a+12|0;if((b[c+11>>0]|0)>=0){V4(a);NDb(a);return}NDb(f[c>>2]|0);V4(a);NDb(a);return}function RPa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=c;m=a+68|0;h=a+72|0;i=f[h>>2]|0;do if(i){e=h;g=i;do{k=(f[g+16>>2]|0)>>>0<c>>>0;e=k?e:g;g=f[(k?g+4|0:g)>>2]|0}while((g|0)!=0);if((e|0)!=(h|0)?(f[e+16>>2]|0)>>>0<=c>>>0:0){b[d>>0]=0;d=f[e+20>>2]|0;return d|0}k=a+76|0;j=(f[k>>2]|0)+1|0;h=a+72|0;e=i;while(1){g=f[e+16>>2]|0;if(g>>>0>c>>>0){g=f[e>>2]|0;if(!g){g=9;break}else{h=e;e=g}}else{if(g>>>0>=c>>>0){g=13;break}h=e+4|0;g=f[h>>2]|0;if(!g){g=12;break}else e=g}}if((g|0)==9){c=e;h=e;i=k;break}else if((g|0)==12){c=e;i=k;break}else if((g|0)==13){c=e;i=k;break}}else{j=a+76|0;c=h;i=j;j=(f[j>>2]|0)+1|0}while(0);e=f[h>>2]|0;if(!e){e=LDb(24)|0;f[e+16>>2]=l;f[e+20>>2]=0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=c;f[h>>2]=e;g=f[f[m>>2]>>2]|0;if(!g)g=e;else{f[m>>2]=g;g=f[h>>2]|0}Aq(f[a+72>>2]|0,g);f[i>>2]=(f[i>>2]|0)+1}f[e+20>>2]=j;b[d>>0]=1;d=j;return d|0}function SPa(a,c){a=a|0;c=c|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=u;u=u+48|0;j=m+24|0;k=m+12|0;l=m;g=sk[f[(f[c>>2]|0)+24>>2]&2047](c)|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;h=Zob(g)|0;if(h>>>0>4294967279)TDb(j);if(h>>>0<11){b[j+11>>0]=h;if(!h)e=j;else{e=j;i=6}}else{i=h+16&-16;e=LDb(i)|0;f[j>>2]=e;f[j+8>>2]=i|-2147483648;f[j+4>>2]=h;i=6}if((i|0)==6)gGb(e|0,g|0,h|0)|0;b[e+h>>0]=0;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;e=l+11|0;b[e>>0]=2;d[l>>1]=14906;b[l+2>>0]=0;i=jEb(l,sk[f[(f[c>>2]|0)+28>>2]&2047](c)|0)|0;f[k>>2]=f[i>>2];f[k+4>>2]=f[i+4>>2];f[k+8>>2]=f[i+8>>2];f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;i=k+11|0;h=b[i>>0]|0;g=h<<24>>24<0;iEb(j,g?f[k>>2]|0:k,g?f[k+4>>2]|0:h&255)|0;if((b[i>>0]|0)<0)NDb(f[k>>2]|0);if((b[e>>0]|0)<0)NDb(f[l>>2]|0);TPa(a,c,j);if((b[j+11>>0]|0)>=0){u=m;return}NDb(f[j>>2]|0);u=m;return}function TPa(a,c,d){a=a|0;c=c|0;d=d|0;var e=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,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;Q=u;u=u+192|0;M=Q+172|0;N=Q+160|0;O=Q+16|0;P=Q;g=(aHa(0)|0)+240|0;g=UPa(f[g>>2]|0,d)|0;if(!g){if(!(S0(2)|0)){u=Q;return}N=Nv(Mv(2)|0,233405,55)|0;P=b[d+11>>0]|0;O=P<<24>>24<0;P=Nv(N,O?f[d>>2]|0:d,O?f[d+4>>2]|0:P&255)|0;Ktb(M,P+(f[(f[P>>2]|0)+-12>>2]|0)|0);O=Bvb(M,295164)|0;O=wk[f[(f[O>>2]|0)+28>>2]&1023](O,10)|0;Cvb(M);rub(P,O)|0;Rtb(P)|0;u=Q;return}d=g+16|0;L=b[d+11>>0]|0;if((L<<24>>24<0?f[g+20>>2]|0:L&255)|0){d=VPa(a+80|0,d)|0;if((d|0)==(a+84|0))L=0;else{d=d+28|0;e=8}}else{d=a+304|0;e=8}if((e|0)==8)L=f[d>>2]|0;d=f[g+44>>2]|0;n=g+40|0;e=d;if((n|0)==(e|0)){u=Q;return}o=a+96|0;p=a+116|0;q=a+120|0;r=a+100|0;s=a+104|0;t=a+112|0;v=a+296|0;w=M+4|0;x=M+8|0;y=N+4|0;z=N+8|0;A=O+64|0;B=O+8|0;C=O+12|0;D=O+4|0;E=O+64|0;F=O+136|0;G=O+140|0;H=O+44|0;I=O+60|0;J=O+8|0;K=H+11|0;a:while(1){do if((f[d+8>>2]|0)<=(L|0)?(L|0)<=(f[d+12>>2]|0):0){l=d+16|0;m=(aHa(0)|0)+240|0;m=UPa(f[m>>2]|0,l)|0;if(!m){if(!(S0(2)|0))break;j=Nv(Mv(2)|0,233461,58)|0;m=b[l+11>>0]|0;k=m<<24>>24<0;m=Nv(j,k?f[l>>2]|0:l,k?f[d+20>>2]|0:m&255)|0;Ktb(M,m+(f[(f[m>>2]|0)+-12>>2]|0)|0);l=Bvb(M,295164)|0;l=wk[f[(f[l>>2]|0)+28>>2]&1023](l,10)|0;Cvb(M);rub(m,l)|0;Rtb(m)|0;break}if(b[o>>0]|0?(Cm(r,l)|0)==(s|0):0){f[M>>2]=0;f[w>>2]=0;f[x>>2]=0;f[N>>2]=0;f[y>>2]=0;f[z>>2]=0;d=f[m+52>>2]|0;j=m+80|0;k=m+56|0;if((d|0)==(f[k>>2]|0)){g=0;h=0;i=0;j=0;d=0}else{i=f[m+76>>2]|0;while(1){if((i|0)==(f[j>>2]|0))break;g=f[d>>2]|0;do if(f[g+20>>2]&1|0){g=sk[f[(f[g>>2]|0)+28>>2]&2047](g)|0;h=f[w>>2]|0;if((h|0)==(f[x>>2]|0))cv(M,g);else{VDb(h,g);f[w>>2]=(f[w>>2]|0)+12}g=f[y>>2]|0;if((g|0)==(f[z>>2]|0)){WPa(N,i);break}else{f[g>>2]=f[i>>2];f[y>>2]=g+4;break}}while(0);d=d+4|0;if((d|0)==(f[k>>2]|0))break;else i=i+4|0}d=f[N>>2]|0;g=f[M>>2]|0;h=f[w>>2]|0;i=d;j=f[y>>2]|0}k=(h-g|0)/12|0;g=j-i>>2;g=k>>>0<g>>>0?k:g;if(g){f[B>>2]=103872;f[O>>2]=62700;f[A>>2]=62720;f[D>>2]=0;Itb(E,C);f[F>>2]=0;f[G>>2]=-1;f[O>>2]=103852;f[A>>2]=103892;f[B>>2]=103872;Otb(C);f[C>>2]=87888;f[H>>2]=0;f[H+4>>2]=0;f[H+8>>2]=0;f[H+12>>2]=0;f[I>>2]=24;d=0;do{j=f[M>>2]|0;h=j+(d*12|0)|0;k=b[h+11>>0]|0;i=k<<24>>24<0;k=Nv(Nv(J,i?f[h>>2]|0:h,i?f[j+(d*12|0)+4>>2]|0:k&255)|0,233520,1)|0;Nv(iub(k,f[(f[N>>2]|0)+(d<<2)>>2]|0)|0,239529,1)|0;d=d+1|0}while(d>>>0<g>>>0);HZ(P,C);d=Ju(r,l)|0;g=d+11|0;if((b[g>>0]|0)<0){b[f[d>>2]>>0]=0;f[d+4>>2]=0}else{b[d>>0]=0;b[g>>0]=0}dEb(d,0);f[d>>2]=f[P>>2];f[d+4>>2]=f[P+4>>2];f[d+8>>2]=f[P+8>>2];l=b[K>>0]|0;f[O>>2]=103852;f[A>>2]=103892;f[J>>2]=103872;f[C>>2]=87888;if(l<<24>>24<0)NDb(f[H>>2]|0);xsb(C);Ftb(O,103904);rsb(A);d=f[N>>2]|0}if(d|0){f[y>>2]=d;NDb(d)}g=f[M>>2]|0;if(g|0){d=f[w>>2]|0;if((d|0)==(g|0))d=g;else{do{d=d+-12|0;if((b[d+11>>0]|0)<0)NDb(f[d>>2]|0)}while((d|0)!=(g|0));d=f[M>>2]|0}f[w>>2]=g;NDb(d)}}d=m+28|0;g=f[p>>2]|0;if((g|0)==(f[q>>2]|0))cv(t,d);else{VDb(g,d);f[p>>2]=(f[p>>2]|0)+12}XPa(m,a,c)|0;if(f[v>>2]|0){e=58;break a}d=(f[p>>2]|0)+-12|0;if((b[d+11>>0]|0)<0)NDb(f[d>>2]|0);f[p>>2]=d}while(0);d=f[e+4>>2]|0;e=d;if((n|0)==(e|0)){e=58;break}}if((e|0)==58){u=Q;return}}function UPa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=u;u=u+64|0;m=q+48|0;n=q+36|0;o=q+24|0;l=q+12|0;k=q;p=a+12|0;sk[f[(f[p>>2]|0)+8>>2]&2047](p)|0;d=AMa(a+24|0,c)|0;if((d|0)!=(a+28|0)){o=f[d+28>>2]|0;n=f[p>>2]|0;n=n+12|0;n=f[n>>2]|0;sk[n&2047](p)|0;u=q;return o|0}d=b[c+11>>0]|0;i=d<<24>>24<0;h=i?f[c>>2]|0:c;d=i?f[c+4>>2]|0:d&255;i=h+d|0;if((d|0)<2){o=0;n=f[p>>2]|0;n=n+12|0;n=f[n>>2]|0;sk[n&2047](p)|0;u=q;return o|0}while(1){d=d+-1|0;if((b[h+d>>0]|0)==58){e=h+d|0;if((b[e+-1>>0]|0)==58){g=10;break}if((d|0)==1){d=0;g=33;break}}else if((d|0)==1){d=0;g=33;break}}if((g|0)==10){j=e+-1|0;d=j-h|0;if((j|0)==(i|0)|(d|0)==-1){o=0;n=f[p>>2]|0;n=n+12|0;n=f[n>>2]|0;sk[n&2047](p)|0;u=q;return o|0}ZDb(m,c,0,d,n);aHa(0)|0;iNa(n,0,m);if((NHa(aHa(0)|0,n)|0)==2)d=UPa(a,c)|0;else d=0;j=aHa(0)|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;e=LDb(16)|0;f[k>>2]=e;f[k+8>>2]=-2147483632;f[k+4>>2]=12;g=e;h=233570;i=g+12|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[e+12>>0]=0;g=m+11|0;i=b[g>>0]|0;h=i<<24>>24<0;i=iEb(k,h?f[m>>2]|0:m,h?f[m+4>>2]|0:i&255)|0;f[l>>2]=f[i>>2];f[l+4>>2]=f[i+4>>2];f[l+8>>2]=f[i+8>>2];f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;MHa(o,j,l);if((b[l+11>>0]|0)<0)NDb(f[l>>2]|0);if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);if((NHa(aHa(0)|0,o)|0)==2)d=UPa(a,c)|0;MHa(l,aHa(0)|0,m);e=o+11|0;if((b[e>>0]|0)<0){b[f[o>>2]>>0]=0;f[o+4>>2]=0}else{b[o>>0]=0;b[e>>0]=0}dEb(o,0);f[o>>2]=f[l>>2];f[o+4>>2]=f[l+4>>2];f[o+8>>2]=f[l+8>>2];if((NHa(aHa(0)|0,o)|0)==2)d=UPa(a,c)|0;if(d|0)YPa(d);if((b[e>>0]|0)<0)NDb(f[o>>2]|0);if((b[n+11>>0]|0)<0)NDb(f[n>>2]|0);if((b[g>>0]|0)<0)NDb(f[m>>2]|0);o=d;n=f[p>>2]|0;n=n+12|0;n=f[n>>2]|0;sk[n&2047](p)|0;u=q;return o|0}else if((g|0)==33){o=f[p>>2]|0;o=o+12|0;o=f[o>>2]|0;sk[o&2047](p)|0;u=q;return d|0}return 0}function VPa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=a+4|0;d=f[m>>2]|0;do if(d|0){l=b[c+11>>0]|0;k=l<<24>>24<0;l=k?f[c+4>>2]|0:l&255;k=k?f[c>>2]|0:c;a=m;do{e=d+16|0;h=b[e+11>>0]|0;g=h<<24>>24<0;h=g?f[d+20>>2]|0:h&255;i=l>>>0<h>>>0;c=i?l:h;if((c|0)!=0?(j=ipb(g?f[e>>2]|0:e,k,c)|0,(j|0)!=0):0)c=j;else c=h>>>0<l>>>0?-1:i&1;i=(c|0)<0;a=i?a:d;d=f[(i?d+4|0:d)>>2]|0}while((d|0)!=0);if((a|0)!=(m|0)){d=a+16|0;g=b[d+11>>0]|0;e=g<<24>>24<0;g=e?f[a+20>>2]|0:g&255;c=g>>>0<l>>>0?g:l;if(c|0?(n=ipb(k,e?f[d>>2]|0:d,c)|0,n|0):0){if((n|0)<0)break;return a|0}if(l>>>0>=g>>>0){n=a;return n|0}}}while(0);n=m;return n|0}function WPa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;i=a+4|0;j=f[a>>2]|0;k=(f[i>>2]|0)-j|0;g=k>>2;c=g+1|0;if(c>>>0>1073741823)KEb(a);l=a+8|0;e=(f[l>>2]|0)-j|0;h=e>>1;h=e>>2>>>0<536870911?(h>>>0<c>>>0?c:h):1073741823;do if(h)if(h>>>0>1073741823){l=mb(8)|0;RDb(l,238482);f[l>>2]=144484;qb(l|0,84192,1464)}else{e=LDb(h<<2)|0;d=e;break}else{d=0;e=0}while(0);c=d+(g<<2)|0;f[c>>2]=f[b>>2];if((k|0)>0)gGb(e|0,j|0,k|0)|0;f[a>>2]=d;f[i>>2]=c+4;f[l>>2]=d+(h<<2);if(!j)return;NDb(j);return}function XPa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;n=u;u=u+16|0;m=n;e=a+16|0;l=b[e+11>>0]|0;if((l<<24>>24<0?f[a+20>>2]|0:l&255)|0){e=VPa(c+80|0,e)|0;if((e|0)==(c+84|0))i=0;else i=f[e+28>>2]|0}else i=f[c+304>>2]|0;g=f[a+52>>2]|0;j=a+56|0;if((g|0)==(f[j>>2]|0)){m=1;u=n;return m|0}k=a+28|0;l=k+11|0;h=a+32|0;e=1;do{a=f[g>>2]|0;if((((f[a+12>>2]|0)<=(i|0)?(i|0)<=(f[a+16>>2]|0):0)?(f[a+20>>2]&1|0)!=0:0)?!(xk[f[(f[a>>2]|0)+24>>2]&255](a,c,d)|0):0)if(S0(2)|0){e=Nv(Mv(2)|0,233522,47)|0;p=b[l>>0]|0;a=p<<24>>24<0;p=Nv(Nv(e,a?f[k>>2]|0:k,a?f[h>>2]|0:p&255)|0,232033,2)|0;a=f[g>>2]|0;a=sk[f[(f[a>>2]|0)+28>>2]&2047](a)|0;e=b[a+11>>0]|0;o=e<<24>>24<0;e=Nv(p,o?f[a>>2]|0:a,o?f[a+4>>2]|0:e&255)|0;Ktb(m,e+(f[(f[e>>2]|0)+-12>>2]|0)|0);a=Bvb(m,295164)|0;a=wk[f[(f[a>>2]|0)+28>>2]&1023](a,10)|0;Cvb(m);rub(e,a)|0;Rtb(e)|0;e=0}else e=0;g=g+4|0}while((g|0)!=(f[j>>2]|0));u=n;return e|0}function YPa(a){a=a|0;var c=0,d=0,e=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;z=a+116|0;if(b[z>>0]|0)return;C=a+44|0;c=f[C>>2]|0;D=a+40|0;d=c;if((D|0)!=(d|0))do{x=(aHa(0)|0)+240|0;c=UPa(f[x>>2]|0,c+16|0)|0;if((c|0)!=0&(c|0)!=(a|0)?(y=f[c+44>>2]|0,A=c+40|0,B=y,(A|0)!=(B|0)):0){u=f[C>>2]|0;v=u;w=(D|0)==(v|0);c=y;x=B;do{if(!w){s=c;o=s+8|0;p=s+16|0;q=p+11|0;r=s+20|0;s=s+12|0;c=u;t=v;do{n=c+8|0;h=c+16|0;g=b[h+11>>0]|0;k=g<<24>>24<0;g=g&255;l=k?f[c+20>>2]|0:g;m=b[q>>0]|0;e=m<<24>>24<0;a:do if((l|0)==((e?f[r>>2]|0:m&255)|0)){j=f[h>>2]|0;m=k?j:h;e=e?f[p>>2]|0:p;i=(l|0)==0;j=j&255;b:do if(k){if(!i?ipb(m,e,l)|0:0)break a}else if(!i){if((b[e>>0]|0)!=j<<24>>24)break a;while(1){g=g+-1|0;h=h+1|0;if(!g)break b;e=e+1|0;if((b[h>>0]|0)!=(b[e>>0]|0))break a}}while(0);f[n>>2]=f[((f[n>>2]|0)>(f[o>>2]|0)?n:o)>>2];m=c+12|0;f[m>>2]=f[((f[m>>2]|0)<(f[s>>2]|0)?n:o)+4>>2]}while(0);c=f[t+4>>2]|0;t=c}while((D|0)!=(t|0))}c=f[x+4>>2]|0;x=c}while((A|0)!=(x|0))}c=f[d+4>>2]|0;d=c}while((D|0)!=(d|0));b[z>>0]=1;return}function ZPa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;g=u;u=u+16|0;e=g;if((f[a+92>>2]|0)<=111){$Pa(e,a);c=f[b>>2]|0;d=f[e>>2]|0;if((c|0)!=(d|0)){f[b>>2]=d;if(d|0){b=d+8|0;f[b>>2]=(f[b>>2]|0)+1}if(c|0?(d=c+8|0,b=f[d>>2]|0,f[d>>2]=b-1,(b|0)==1):0)X4(c,1,1);c=f[e>>2]|0}if(c|0?(e=c+8|0,b=f[e>>2]|0,f[e>>2]=b-1,(b|0)==1):0)X4(c,1,1);u=g;return a|0}_Pa(e,a,0);d=f[e>>2]|0;do if(d){c=bFb(d,58336,58600,0)|0;if(c){d=c+8|0;f[d>>2]=(f[d>>2]|0)+1;d=f[e>>2]|0;if(!d)break}else c=0;h=d+8|0;e=f[h>>2]|0;f[h>>2]=e-1;if((e|0)==1)X4(d,1,1)}else c=0;while(0);d=f[b>>2]|0;if((d|0)!=(c|0)){f[b>>2]=c;if(c|0){h=c+8|0;f[h>>2]=(f[h>>2]|0)+1}if(d|0?(b=d+8|0,h=f[b>>2]|0,f[b>>2]=h-1,(h|0)==1):0)X4(d,1,1)}if(!c){u=g;return a|0}b=c+8|0;h=f[b>>2]|0;f[b>>2]=h-1;if((h|0)!=1){u=g;return a|0}X4(c,1,1);u=g;return a|0}function _Pa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=u;u=u+32|0;n=o+8|0;g=o+4|0;l=o;f[n>>2]=0;f[n+4>>2]=0;f[n+8>>2]=0;f[g>>2]=0;j=c+112|0;m=f[j>>2]|0;Vk[f[(f[m>>2]|0)+64>>2]&1023](m,n);gX(c);m=n+11|0;i=b[m>>0]|0;if(((i<<24>>24<0?f[n+4>>2]|0:i&255)|0)==4?(uEb(n,0,-1,234705,4)|0)==0:0)f[a>>2]=0;else e=4;do if((e|0)==4){i=f[j>>2]|0;Vk[f[(f[i>>2]|0)+84>>2]&1023](i,c+24|0);gX(c);i=c+4|0;eEb(i,231664)|0;h=f[j>>2]|0;Vk[f[(f[h>>2]|0)+80>>2]&1023](h,i);gX(c);i=f[j>>2]|0;Vk[f[(f[i>>2]|0)+44>>2]&1023](i,g);gX(c);if(f[c+116>>2]|0){f[a>>2]=0;break}i=c+72|0;e=f[i>>2]|0;h=f[g>>2]|0;if(e|0){g=i;do{p=(f[e+16>>2]|0)>>>0<h>>>0;g=p?g:e;e=f[(p?e+4|0:e)>>2]|0}while((e|0)!=0);if((g|0)!=(i|0)?h>>>0>=(f[g+16>>2]|0)>>>0:0){e=f[j>>2]|0;Nk[f[(f[e>>2]|0)+100>>2]&2047](e);e=f[g+20>>2]|0;f[a>>2]=e;if(!e)break;p=e+8|0;f[p>>2]=(f[p>>2]|0)+1;break}}AVa(l,c,n,h,d);e=f[j>>2]|0;Nk[f[(f[e>>2]|0)+100>>2]&2047](e);e=f[l>>2]|0;f[a>>2]=e;if((e|0?(k=e+8|0,f[k>>2]=(f[k>>2]|0)+1,k=f[l>>2]|0,k|0):0)?(a=k+8|0,p=f[a>>2]|0,f[a>>2]=p-1,(p|0)==1):0)X4(k,1,1)}while(0);if((b[m>>0]|0)>=0){u=o;return}NDb(f[n>>2]|0);u=o;return}function $Pa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=u;u=u+48|0;l=p+32|0;o=p+12|0;j=p;f[l>>2]=0;m=c+4|0;eEb(m,233319)|0;i=c+112|0;k=f[i>>2]|0;Vk[f[(f[k>>2]|0)+80>>2]&1023](k,m);gX(c);m=f[i>>2]|0;Vk[f[(f[m>>2]|0)+44>>2]&1023](m,l);gX(c);m=c+56|0;k=c+60|0;d=f[k>>2]|0;if(d|0){g=f[l>>2]|0;e=k;do{n=(f[d+16>>2]|0)>>>0<g>>>0;e=n?e:d;d=f[(n?d+4|0:d)>>2]|0}while((d|0)!=0);if((e|0)!=(k|0)?g>>>0>=(f[e+16>>2]|0)>>>0:0){d=f[e+20>>2]|0;f[a>>2]=d;if(d|0){a=d+8|0;f[a>>2]=(f[a>>2]|0)+1}u=p;return}};f[o>>2]=0;f[o+4>>2]=0;f[o+8>>2]=0;n=o+11|0;b[n>>0]=9;e=o;g=225688;h=e+9|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[o+9>>0]=0;h=o+12|0;f[h>>2]=0;b[o+16>>0]=1;i=f[i>>2]|0;Vk[f[(f[i>>2]|0)+80>>2]&1023](i,o);gX(c);do switch(f[h>>2]|0){case 0:{i=LDb(88)|0;CCa(i,1);j=i+12|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[i+24>>2]=2;j=i+28|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;f[i+52>>2]=1;f[i+56>>2]=1;f[i+60>>2]=5120;f[i+64>>2]=-1;b[i+68>>0]=0;b[i+69>>0]=0;f[i+76>>2]=0;f[i+80>>2]=0;f[i+84>>2]=0;f[i>>2]=122716;f[i+72>>2]=122960;aQa(c,i,1,1);j=i+8|0;f[j>>2]=(f[j>>2]|0)+1;break}case 1:{i=LDb(88)|0;CCa(i,1);j=i+12|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[i+24>>2]=2;j=i+28|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;f[i+52>>2]=4;f[i+56>>2]=1;f[i+60>>2]=5121;f[i+64>>2]=-1;b[i+68>>0]=0;b[i+69>>0]=0;f[i+76>>2]=0;f[i+80>>2]=0;f[i+84>>2]=0;f[i>>2]=122164;f[i+72>>2]=122408;bQa(c,i,1,1);j=i+8|0;f[j>>2]=(f[j>>2]|0)+1;break}case 2:{i=LDb(88)|0;CCa(i,1);j=i+12|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[i+24>>2]=2;j=i+28|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;f[i+52>>2]=2;f[i+56>>2]=1;f[i+60>>2]=5122;f[i+64>>2]=-1;b[i+68>>0]=0;b[i+69>>0]=0;f[i+76>>2]=0;f[i+80>>2]=0;f[i+84>>2]=0;f[i>>2]=122440;f[i+72>>2]=122684;cQa(c,i,1,2);j=i+8|0;f[j>>2]=(f[j>>2]|0)+1;break}case 3:{i=LDb(88)|0;CCa(i,1);j=i+12|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[i+24>>2]=2;j=i+28|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;f[i+52>>2]=5;f[i+56>>2]=1;f[i+60>>2]=5123;f[i+64>>2]=-1;b[i+68>>0]=0;b[i+69>>0]=0;f[i+76>>2]=0;f[i+80>>2]=0;f[i+84>>2]=0;f[i>>2]=121904;f[i+72>>2]=122148;dQa(c,i,1,2);j=i+8|0;f[j>>2]=(f[j>>2]|0)+1;break}case 4:{i=LDb(88)|0;CCa(i,1);j=i+12|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[i+24>>2]=2;j=i+28|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;f[i+52>>2]=3;f[i+56>>2]=1;f[i+60>>2]=5124;f[i+64>>2]=-1;b[i+68>>0]=0;b[i+69>>0]=0;f[i+76>>2]=0;f[i+80>>2]=0;f[i+84>>2]=0;f[i>>2]=109356;f[i+72>>2]=109600;eQa(c,i,1,4);j=i+8|0;f[j>>2]=(f[j>>2]|0)+1;break}case 5:{i=LDb(88)|0;CCa(i,1);j=i+12|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[i+24>>2]=2;j=i+28|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;f[i+52>>2]=6;f[i+56>>2]=1;f[i+60>>2]=5125;f[i+64>>2]=-1;b[i+68>>0]=0;b[i+69>>0]=0;f[i+76>>2]=0;f[i+80>>2]=0;f[i+84>>2]=0;f[i>>2]=109096;f[i+72>>2]=109340;fQa(c,i,1,4);j=i+8|0;f[j>>2]=(f[j>>2]|0)+1;break}case 6:{i=LDb(88)|0;CCa(i,1);j=i+12|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[i+24>>2]=2;j=i+28|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;f[i+52>>2]=7;f[i+56>>2]=1;f[i+60>>2]=5126;f[i+64>>2]=-1;b[i+68>>0]=0;b[i+69>>0]=0;f[i+76>>2]=0;f[i+80>>2]=0;f[i+84>>2]=0;f[i>>2]=105740;f[i+72>>2]=105980;gQa(c,i,1,4);j=i+8|0;f[j>>2]=(f[j>>2]|0)+1;break}case 7:{i=LDb(88)|0;CCa(i,1);j=i+12|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[i+24>>2]=2;j=i+28|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;f[i+52>>2]=8;f[i+56>>2]=1;f[i+60>>2]=5130;f[i+64>>2]=-1;b[i+68>>0]=0;b[i+69>>0]=0;f[i+76>>2]=0;f[i+80>>2]=0;f[i+84>>2]=0;f[i>>2]=109632;f[i+72>>2]=109872;hQa(c,i,1,8);j=i+8|0;f[j>>2]=(f[j>>2]|0)+1;break}case 8:{i=LDb(88)|0;CCa(i,1);j=i+12|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[i+24>>2]=2;j=i+28|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;f[i+52>>2]=9;f[i+56>>2]=2;f[i+60>>2]=5120;f[i+64>>2]=-1;b[i+68>>0]=0;b[i+69>>0]=0;f[i+76>>2]=0;f[i+80>>2]=0;f[i+84>>2]=0;f[i>>2]=121648;f[i+72>>2]=121888;iQa(c,i,2,1);j=i+8|0;f[j>>2]=(f[j>>2]|0)+1;break}case 9:{i=LDb(88)|0;CCa(i,1);j=i+12|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[i+24>>2]=2;j=i+28|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;f[i+52>>2]=10;f[i+56>>2]=3;f[i+60>>2]=5120;f[i+64>>2]=-1;b[i+68>>0]=0;b[i+69>>0]=0;f[i+76>>2]=0;f[i+80>>2]=0;f[i+84>>2]=0;f[i>>2]=121376;f[i+72>>2]=121616;jQa(c,i,3,1);j=i+8|0;f[j>>2]=(f[j>>2]|0)+1;break}case 10:{i=LDb(88)|0;CCa(i,1);j=i+12|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[i+24>>2]=2;j=i+28|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;f[i+52>>2]=11;f[i+56>>2]=4;f[i+60>>2]=5120;f[i+64>>2]=-1;b[i+68>>0]=0;b[i+69>>0]=0;f[i+76>>2]=0;f[i+80>>2]=0;f[i+84>>2]=0;f[i>>2]=121104;f[i+72>>2]=121344;kQa(c,i,4,1);j=i+8|0;f[j>>2]=(f[j>>2]|0)+1;break}case 21:{i=LDb(88)|0;CCa(i,1);j=i+12|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[i+24>>2]=2;j=i+28|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;f[i+52>>2]=18;f[i+56>>2]=2;f[i+60>>2]=5121;f[i+64>>2]=-1;b[i+68>>0]=0;b[i+69>>0]=0;f[i+76>>2]=0;f[i+80>>2]=0;f[i+84>>2]=0;f[i>>2]=128824;f[i+72>>2]=129064;lQa(c,i,2,1);j=i+8|0;f[j>>2]=(f[j>>2]|0)+1;break}case 22:{i=LDb(88)|0;CCa(i,1);j=i+12|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[i+24>>2]=2;j=i+28|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;f[i+52>>2]=19;f[i+56>>2]=3;f[i+60>>2]=5121;f[i+64>>2]=-1;b[i+68>>0]=0;b[i+69>>0]=0;f[i+76>>2]=0;f[i+80>>2]=0;f[i+84>>2]=0;f[i>>2]=129080;f[i+72>>2]=129320;mQa(c,i,3,1);j=i+8|0;f[j>>2]=(f[j>>2]|0)+1;break}case 11:{i=LDb(88)|0;CCa(i,1);j=i+12|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[i+24>>2]=2;j=i+28|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;f[i+52>>2]=20;f[i+56>>2]=4;f[i+60>>2]=5121;f[i+64>>2]=-1;b[i+68>>0]=0;b[i+69>>0]=0;f[i+76>>2]=0;f[i+80>>2]=0;f[i+84>>2]=0;f[i>>2]=120016;f[i+72>>2]=120256;nQa(c,i,4,1);j=i+8|0;f[j>>2]=(f[j>>2]|0)+1;break}case 12:{i=LDb(88)|0;CCa(i,1);j=i+12|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[i+24>>2]=2;j=i+28|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;f[i+52>>2]=12;f[i+56>>2]=2;f[i+60>>2]=5122;f[i+64>>2]=-1;b[i+68>>0]=0;b[i+69>>0]=0;f[i+76>>2]=0;f[i+80>>2]=0;f[i+84>>2]=0;f[i>>2]=120832;f[i+72>>2]=121072;oQa(c,i,2,2);j=i+8|0;f[j>>2]=(f[j>>2]|0)+1;break}case 13:{i=LDb(88)|0;CCa(i,1);j=i+12|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[i+24>>2]=2;j=i+28|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;f[i+52>>2]=13;f[i+56>>2]=3;f[i+60>>2]=5122;f[i+64>>2]=-1;b[i+68>>0]=0;b[i+69>>0]=0;f[i+76>>2]=0;f[i+80>>2]=0;f[i+84>>2]=0;f[i>>2]=120560;f[i+72>>2]=120800;pQa(c,i,3,2);j=i+8|0;f[j>>2]=(f[j>>2]|0)+1;break}case 14:{i=LDb(88)|0;CCa(i,1);j=i+12|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[i+24>>2]=2;j=i+28|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;f[i+52>>2]=14;f[i+56>>2]=4;f[i+60>>2]=5122;f[i+64>>2]=-1;b[i+68>>0]=0;b[i+69>>0]=0;f[i+76>>2]=0;f[i+80>>2]=0;f[i+84>>2]=0;f[i>>2]=120288;f[i+72>>2]=120528;qQa(c,i,4,2);j=i+8|0;f[j>>2]=(f[j>>2]|0)+1;break}case 23:{i=LDb(88)|0;CCa(i,1);j=i+12|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[i+24>>2]=2;j=i+28|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;f[i+52>>2]=21;f[i+56>>2]=2;f[i+60>>2]=5123;f[i+64>>2]=-1;b[i+68>>0]=0;b[i+69>>0]=0;f[i+76>>2]=0;f[i+80>>2]=0;f[i+84>>2]=0;f[i>>2]=129336;f[i+72>>2]=129576;rQa(c,i,2,2);j=i+8|0;f[j>>2]=(f[j>>2]|0)+1;break}case 24:{i=LDb(88)|0;CCa(i,1);j=i+12|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[i+24>>2]=2;j=i+28|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;f[i+52>>2]=22;f[i+56>>2]=3;f[i+60>>2]=5123;f[i+64>>2]=-1;b[i+68>>0]=0;b[i+69>>0]=0;f[i+76>>2]=0;f[i+80>>2]=0;f[i+84>>2]=0;f[i>>2]=129592;f[i+72>>2]=129832;sQa(c,i,3,2);j=i+8|0;f[j>>2]=(f[j>>2]|0)+1;break}case 25:{i=LDb(88)|0;CCa(i,1);j=i+12|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[i+24>>2]=2;j=i+28|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;f[i+52>>2]=23;f[i+56>>2]=4;f[i+60>>2]=5123;f[i+64>>2]=-1;b[i+68>>0]=0;b[i+69>>0]=0;f[i+76>>2]=0;f[i+80>>2]=0;f[i+84>>2]=0;f[i>>2]=129848;f[i+72>>2]=130088;tQa(c,i,4,2);j=i+8|0;f[j>>2]=(f[j>>2]|0)+1;break}case 15:{i=LDb(88)|0;CCa(i,1);j=i+12|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[i+24>>2]=2;j=i+28|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;f[i+52>>2]=27;f[i+56>>2]=2;f[i+60>>2]=5126;f[i+64>>2]=-1;b[i+68>>0]=0;b[i+69>>0]=0;f[i+76>>2]=0;f[i+80>>2]=0;f[i+84>>2]=0;f[i>>2]=104748;f[i+72>>2]=104988;uQa(c,i,2,4);j=i+8|0;f[j>>2]=(f[j>>2]|0)+1;break}case 16:{i=LDb(88)|0;CCa(i,1);j=i+12|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[i+24>>2]=2;j=i+28|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;f[i+52>>2]=28;f[i+56>>2]=3;f[i+60>>2]=5126;f[i+64>>2]=-1;b[i+68>>0]=0;b[i+69>>0]=0;f[i+76>>2]=0;f[i+80>>2]=0;f[i+84>>2]=0;f[i>>2]=97720;f[i+72>>2]=97960;vQa(c,i,3,4);j=i+8|0;f[j>>2]=(f[j>>2]|0)+1;break}case 17:{i=LDb(88)|0;CCa(i,1);j=i+12|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[i+24>>2]=2;j=i+28|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;f[i+52>>2]=29;f[i+56>>2]=4;f[i+60>>2]=5126;f[i+64>>2]=-1;b[i+68>>0]=0;b[i+69>>0]=0;f[i+76>>2]=0;f[i+80>>2]=0;f[i+84>>2]=0;f[i>>2]=96996;f[i+72>>2]=97236;wQa(c,i,4,4);j=i+8|0;f[j>>2]=(f[j>>2]|0)+1;break}case 18:{i=LDb(88)|0;CCa(i,1);j=i+12|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[i+24>>2]=2;j=i+28|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;f[i+52>>2]=30;f[i+56>>2]=2;f[i+60>>2]=5130;f[i+64>>2]=-1;b[i+68>>0]=0;b[i+69>>0]=0;f[i+76>>2]=0;f[i+80>>2]=0;f[i+84>>2]=0;f[i>>2]=119744;f[i+72>>2]=119984;xQa(c,i,2,8);j=i+8|0;f[j>>2]=(f[j>>2]|0)+1;break}case 19:{i=LDb(88)|0;CCa(i,1);j=i+12|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[i+24>>2]=2;j=i+28|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;f[i+52>>2]=31;f[i+56>>2]=3;f[i+60>>2]=5130;f[i+64>>2]=-1;b[i+68>>0]=0;b[i+69>>0]=0;f[i+76>>2]=0;f[i+80>>2]=0;f[i+84>>2]=0;f[i>>2]=119472;f[i+72>>2]=119712;yQa(c,i,3,8);j=i+8|0;f[j>>2]=(f[j>>2]|0)+1;break}case 20:{i=LDb(88)|0;CCa(i,1);j=i+12|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[i+24>>2]=2;j=i+28|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;f[i+52>>2]=32;f[i+56>>2]=4;f[i+60>>2]=5130;f[i+64>>2]=-1;b[i+68>>0]=0;b[i+69>>0]=0;f[i+76>>2]=0;f[i+80>>2]=0;f[i+84>>2]=0;f[i>>2]=119200;f[i+72>>2]=119440;zQa(c,i,4,8);j=i+8|0;f[j>>2]=(f[j>>2]|0)+1;break}case 26:{i=LDb(88)|0;CCa(i,1);j=i+12|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[i+24>>2]=2;j=i+28|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;f[i+52>>2]=15;f[i+56>>2]=2;f[i+60>>2]=5124;f[i+64>>2]=-1;b[i+68>>0]=0;b[i+69>>0]=0;f[i+76>>2]=0;f[i+80>>2]=0;f[i+84>>2]=0;f[i>>2]=130104;f[i+72>>2]=130344;AQa(c,i,2,4);j=i+8|0;f[j>>2]=(f[j>>2]|0)+1;break}case 27:{i=LDb(88)|0;CCa(i,1);j=i+12|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[i+24>>2]=2;j=i+28|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;f[i+52>>2]=16;f[i+56>>2]=3;f[i+60>>2]=5124;f[i+64>>2]=-1;b[i+68>>0]=0;b[i+69>>0]=0;f[i+76>>2]=0;f[i+80>>2]=0;f[i+84>>2]=0;f[i>>2]=130360;f[i+72>>2]=130600;BQa(c,i,3,4);j=i+8|0;f[j>>2]=(f[j>>2]|0)+1;break}case 28:{i=LDb(88)|0;CCa(i,1);j=i+12|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[i+24>>2]=2;j=i+28|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;f[i+52>>2]=17;f[i+56>>2]=4;f[i+60>>2]=5124;f[i+64>>2]=-1;b[i+68>>0]=0;b[i+69>>0]=0;f[i+76>>2]=0;f[i+80>>2]=0;f[i+84>>2]=0;f[i>>2]=130616;f[i+72>>2]=130856;CQa(c,i,4,4);j=i+8|0;f[j>>2]=(f[j>>2]|0)+1;break}case 29:{i=LDb(88)|0;CCa(i,1);j=i+12|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[i+24>>2]=2;j=i+28|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;f[i+52>>2]=24;f[i+56>>2]=2;f[i+60>>2]=5125;f[i+64>>2]=-1;b[i+68>>0]=0;b[i+69>>0]=0;f[i+76>>2]=0;f[i+80>>2]=0;f[i+84>>2]=0;f[i>>2]=130872;f[i+72>>2]=131112;DQa(c,i,2,4);j=i+8|0;f[j>>2]=(f[j>>2]|0)+1;break}case 30:{i=LDb(88)|0;CCa(i,1);j=i+12|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[i+24>>2]=2;j=i+28|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;f[i+52>>2]=25;f[i+56>>2]=3;f[i+60>>2]=5125;f[i+64>>2]=-1;b[i+68>>0]=0;b[i+69>>0]=0;f[i+76>>2]=0;f[i+80>>2]=0;f[i+84>>2]=0;f[i>>2]=131128;f[i+72>>2]=131368;EQa(c,i,3,4);j=i+8|0;f[j>>2]=(f[j>>2]|0)+1;break}case 31:{i=LDb(88)|0;CCa(i,1);j=i+12|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[i+24>>2]=2;j=i+28|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;f[i+52>>2]=26;f[i+56>>2]=4;f[i+60>>2]=5125;f[i+64>>2]=-1;b[i+68>>0]=0;b[i+69>>0]=0;f[i+76>>2]=0;f[i+80>>2]=0;f[i+84>>2]=0;f[i>>2]=131384;f[i+72>>2]=131624;FQa(c,i,4,4);j=i+8|0;f[j>>2]=(f[j>>2]|0)+1;break}default:{f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;d=LDb(64)|0;f[j>>2]=d;f[j+8>>2]=-2147483584;f[j+4>>2]=49;e=d;g=233583;h=e+49|0;do{b[e>>0]=b[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));b[d+49>>0]=0;d=LDb(36)|0;hX(d,c+100|0,j);e=c+116|0;g=f[e>>2]|0;if(((g|0)!=(d|0)?(f[e>>2]=d,i=d+8|0,f[i>>2]=(f[i>>2]|0)+1,g|0):0)?(h=g+8|0,i=f[h>>2]|0,f[h>>2]=i-1,(i|0)==1):0)X4(g,1,1);if((b[j+11>>0]|0)<0)NDb(f[j>>2]|0);i=0}}while(0);if(!(f[c+116>>2]|0)){d=f[k>>2]|0;do if(d){h=f[l>>2]|0;g=c+60|0;while(1){e=f[d+16>>2]|0;if(h>>>0<e>>>0){e=f[d>>2]|0;if(!e){e=54;break}else{g=d;d=e}}else{if(e>>>0>=h>>>0){e=58;break}g=d+4|0;e=f[g>>2]|0;if(!e){e=57;break}else d=e}}if((e|0)==54){h=d;g=d;break}else if((e|0)==57){h=d;break}else if((e|0)==58){h=d;break}}else{h=k;g=k}while(0);d=f[g>>2]|0;if(!d){d=LDb(24)|0;f[d+16>>2]=f[l>>2];f[d+20>>2]=0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=h;f[g>>2]=d;e=f[f[m>>2]>>2]|0;if(!e)e=d;else{f[m>>2]=e;e=f[g>>2]|0}Aq(f[c+60>>2]|0,e);c=c+64|0;f[c>>2]=(f[c>>2]|0)+1}d=d+20|0;e=f[d>>2]|0;if((e|0)!=(i|0)){f[d>>2]=i;if(i|0){c=i+8|0;f[c>>2]=(f[c>>2]|0)+1}if(e|0?(m=e+8|0,c=f[m>>2]|0,f[m>>2]=c-1,(c|0)==1):0)X4(e,1,1)}f[a>>2]=i;if(i|0){a=i+8|0;f[a>>2]=(f[a>>2]|0)+1}}else f[a>>2]=0;if((b[n>>0]|0)<0)NDb(f[o>>2]|0);if(!i){u=p;return}o=i+8|0;a=f[o>>2]|0;f[o>>2]=a-1;if((a|0)!=1){u=p;return}X4(i,1,1);u=p;return}function aQa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=u;u=u+16|0;m=o;l=o+4|0;f[m>>2]=0;n=a+112|0;g=f[n>>2]|0;Vk[f[(f[g>>2]|0)+40>>2]&1023](g,m);gX(a);g=f[n>>2]|0;Vk[f[(f[g>>2]|0)+84>>2]&1023](g,a+24|0);gX(a);g=f[m>>2]|0;a:do if(g|0){b[l>>0]=0;h=c+76|0;i=c+80|0;k=f[h>>2]|0;j=(f[i>>2]|0)-k|0;if(g>>>0<=j>>>0){if(g>>>0<j>>>0)f[i>>2]=k+g}else JAa(h,g-j|0,l);l=f[n>>2]|0;if(!(sk[f[(f[l>>2]|0)+12>>2]&2047](l)|0)){if((f[m>>2]|0)<=0)break;g=c+76|0;c=0;while(1){e=f[n>>2]|0;Vk[f[(f[e>>2]|0)+24>>2]&1023](e,(f[g>>2]|0)+c|0);gX(a);c=c+1|0;if((c|0)>=(f[m>>2]|0))break a}}h=f[c+76>>2]|0;l=f[m>>2]|0;c=f[n>>2]|0;m=W(e,d)|0;g=W(l,m)|0;if(g|0?(Zk[f[(f[c>>2]|0)+88>>2]&511](c,h,g),!((d|0)==0|(l|0)!=0&(e>>>0>1&(f[c+20>>2]|0)!=0)^1)):0){k=0;while(1){i=0;j=h;do{g=j;j=j+e|0;c=j+-1|0;if(c>>>0>g>>>0)do{p=b[g>>0]|0;b[g>>0]=b[c>>0]|0;g=g+1|0;b[c>>0]=p;c=c+-1|0}while(g>>>0<c>>>0);i=i+1|0}while((i|0)!=(d|0));k=k+1|0;if((k|0)==(l|0))break;else h=h+m|0}}gX(a)}while(0);p=f[n>>2]|0;Vk[f[(f[p>>2]|0)+84>>2]&1023](p,a+40|0);gX(a);u=o;return}function bQa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=u;u=u+16|0;m=o;l=o+4|0;f[m>>2]=0;n=a+112|0;g=f[n>>2]|0;Vk[f[(f[g>>2]|0)+40>>2]&1023](g,m);gX(a);g=f[n>>2]|0;Vk[f[(f[g>>2]|0)+84>>2]&1023](g,a+24|0);gX(a);g=f[m>>2]|0;a:do if(g|0){b[l>>0]=0;h=c+76|0;i=c+80|0;k=f[h>>2]|0;j=(f[i>>2]|0)-k|0;if(g>>>0<=j>>>0){if(g>>>0<j>>>0)f[i>>2]=k+g}else pR(h,g-j|0,l);l=f[n>>2]|0;if(!(sk[f[(f[l>>2]|0)+12>>2]&2047](l)|0)){if((f[m>>2]|0)<=0)break;g=c+76|0;c=0;while(1){e=f[n>>2]|0;Vk[f[(f[e>>2]|0)+28>>2]&1023](e,(f[g>>2]|0)+c|0);gX(a);c=c+1|0;if((c|0)>=(f[m>>2]|0))break a}}h=f[c+76>>2]|0;l=f[m>>2]|0;c=f[n>>2]|0;m=W(e,d)|0;g=W(l,m)|0;if(g|0?(Zk[f[(f[c>>2]|0)+88>>2]&511](c,h,g),!((d|0)==0|(l|0)!=0&(e>>>0>1&(f[c+20>>2]|0)!=0)^1)):0){k=0;while(1){i=0;j=h;do{g=j;j=j+e|0;c=j+-1|0;if(c>>>0>g>>>0)do{p=b[g>>0]|0;b[g>>0]=b[c>>0]|0;g=g+1|0;b[c>>0]=p;c=c+-1|0}while(g>>>0<c>>>0);i=i+1|0}while((i|0)!=(d|0));k=k+1|0;if((k|0)==(l|0))break;else h=h+m|0}}gX(a)}while(0);p=f[n>>2]|0;Vk[f[(f[p>>2]|0)+84>>2]&1023](p,a+40|0);gX(a);u=o;return}function cQa(a,c,e,g){a=a|0;c=c|0;e=e|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;p=u;u=u+16|0;n=p;m=p+4|0;f[n>>2]=0;o=a+112|0;h=f[o>>2]|0;Vk[f[(f[h>>2]|0)+40>>2]&1023](h,n);gX(a);h=f[o>>2]|0;Vk[f[(f[h>>2]|0)+84>>2]&1023](h,a+24|0);gX(a);h=f[n>>2]|0;a:do if(h|0){d[m>>1]=0;i=c+76|0;j=c+80|0;k=f[i>>2]|0;l=(f[j>>2]|0)-k>>1;if(h>>>0<=l>>>0){if(h>>>0<l>>>0)f[j>>2]=k+(h<<1)}else kAa(i,h-l|0,m);m=f[o>>2]|0;if(!(sk[f[(f[m>>2]|0)+12>>2]&2047](m)|0)){if((f[n>>2]|0)<=0)break;h=c+76|0;c=0;while(1){g=f[o>>2]|0;Vk[f[(f[g>>2]|0)+32>>2]&1023](g,(f[h>>2]|0)+(c<<1)|0);gX(a);c=c+1|0;if((c|0)>=(f[n>>2]|0))break a}}i=f[c+76>>2]|0;m=f[n>>2]|0;c=f[o>>2]|0;n=W(g,e)|0;h=W(m,n)|0;if(h|0?(Zk[f[(f[c>>2]|0)+88>>2]&511](c,i,h),!((e|0)==0|(m|0)!=0&(g>>>0>1&(f[c+20>>2]|0)!=0)^1)):0){l=0;while(1){j=0;k=i;do{h=k;k=k+g|0;c=k+-1|0;if(c>>>0>h>>>0)do{q=b[h>>0]|0;b[h>>0]=b[c>>0]|0;h=h+1|0;b[c>>0]=q;c=c+-1|0}while(h>>>0<c>>>0);j=j+1|0}while((j|0)!=(e|0));l=l+1|0;if((l|0)==(m|0))break;else i=i+n|0}}gX(a)}while(0);q=f[o>>2]|0;Vk[f[(f[q>>2]|0)+84>>2]&1023](q,a+40|0);gX(a);u=p;return}function dQa(a,c,e,g){a=a|0;c=c|0;e=e|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;p=u;u=u+16|0;n=p;m=p+4|0;f[n>>2]=0;o=a+112|0;h=f[o>>2]|0;Vk[f[(f[h>>2]|0)+40>>2]&1023](h,n);gX(a);h=f[o>>2]|0;Vk[f[(f[h>>2]|0)+84>>2]&1023](h,a+24|0);gX(a);h=f[n>>2]|0;a:do if(h|0){d[m>>1]=0;i=c+76|0;j=c+80|0;k=f[i>>2]|0;l=(f[j>>2]|0)-k>>1;if(h>>>0<=l>>>0){if(h>>>0<l>>>0)f[j>>2]=k+(h<<1)}else WP(i,h-l|0,m);m=f[o>>2]|0;if(!(sk[f[(f[m>>2]|0)+12>>2]&2047](m)|0)){if((f[n>>2]|0)<=0)break;h=c+76|0;c=0;while(1){g=f[o>>2]|0;Vk[f[(f[g>>2]|0)+36>>2]&1023](g,(f[h>>2]|0)+(c<<1)|0);gX(a);c=c+1|0;if((c|0)>=(f[n>>2]|0))break a}}i=f[c+76>>2]|0;m=f[n>>2]|0;c=f[o>>2]|0;n=W(g,e)|0;h=W(m,n)|0;if(h|0?(Zk[f[(f[c>>2]|0)+88>>2]&511](c,i,h),!((e|0)==0|(m|0)!=0&(g>>>0>1&(f[c+20>>2]|0)!=0)^1)):0){l=0;while(1){j=0;k=i;do{h=k;k=k+g|0;c=k+-1|0;if(c>>>0>h>>>0)do{q=b[h>>0]|0;b[h>>0]=b[c>>0]|0;h=h+1|0;b[c>>0]=q;c=c+-1|0}while(h>>>0<c>>>0);j=j+1|0}while((j|0)!=(e|0));l=l+1|0;if((l|0)==(m|0))break;else i=i+n|0}}gX(a)}while(0);q=f[o>>2]|0;Vk[f[(f[q>>2]|0)+84>>2]&1023](q,a+40|0);gX(a);u=p;return}function eQa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=u;u=u+16|0;m=o+4|0;l=o;f[m>>2]=0;n=a+112|0;g=f[n>>2]|0;Vk[f[(f[g>>2]|0)+40>>2]&1023](g,m);gX(a);g=f[n>>2]|0;Vk[f[(f[g>>2]|0)+84>>2]&1023](g,a+24|0);gX(a);g=f[m>>2]|0;a:do if(g|0){f[l>>2]=0;h=c+76|0;i=c+80|0;j=f[h>>2]|0;k=(f[i>>2]|0)-j>>2;if(g>>>0<=k>>>0){if(g>>>0<k>>>0)f[i>>2]=j+(g<<2)}else Ky(h,g-k|0,l);l=f[n>>2]|0;if(!(sk[f[(f[l>>2]|0)+12>>2]&2047](l)|0)){if((f[m>>2]|0)<=0)break;g=c+76|0;c=0;while(1){e=f[n>>2]|0;Vk[f[(f[e>>2]|0)+40>>2]&1023](e,(f[g>>2]|0)+(c<<2)|0);gX(a);c=c+1|0;if((c|0)>=(f[m>>2]|0))break a}}h=f[c+76>>2]|0;l=f[m>>2]|0;c=f[n>>2]|0;m=W(e,d)|0;g=W(l,m)|0;if(g|0?(Zk[f[(f[c>>2]|0)+88>>2]&511](c,h,g),!((d|0)==0|(l|0)!=0&(e>>>0>1&(f[c+20>>2]|0)!=0)^1)):0){k=0;while(1){i=0;j=h;do{g=j;j=j+e|0;c=j+-1|0;if(c>>>0>g>>>0)do{p=b[g>>0]|0;b[g>>0]=b[c>>0]|0;g=g+1|0;b[c>>0]=p;c=c+-1|0}while(g>>>0<c>>>0);i=i+1|0}while((i|0)!=(d|0));k=k+1|0;if((k|0)==(l|0))break;else h=h+m|0}}gX(a)}while(0);p=f[n>>2]|0;Vk[f[(f[p>>2]|0)+84>>2]&1023](p,a+40|0);gX(a);u=o;return}function fQa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=u;u=u+16|0;m=o+4|0;l=o;f[m>>2]=0;n=a+112|0;g=f[n>>2]|0;Vk[f[(f[g>>2]|0)+40>>2]&1023](g,m);gX(a);g=f[n>>2]|0;Vk[f[(f[g>>2]|0)+84>>2]&1023](g,a+24|0);gX(a);g=f[m>>2]|0;a:do if(g|0){f[l>>2]=0;h=c+76|0;i=c+80|0;j=f[h>>2]|0;k=(f[i>>2]|0)-j>>2;if(g>>>0<=k>>>0){if(g>>>0<k>>>0)f[i>>2]=j+(g<<2)}else Cy(h,g-k|0,l);l=f[n>>2]|0;if(!(sk[f[(f[l>>2]|0)+12>>2]&2047](l)|0)){if((f[m>>2]|0)<=0)break;g=c+76|0;c=0;while(1){e=f[n>>2]|0;Vk[f[(f[e>>2]|0)+44>>2]&1023](e,(f[g>>2]|0)+(c<<2)|0);gX(a);c=c+1|0;if((c|0)>=(f[m>>2]|0))break a}}h=f[c+76>>2]|0;l=f[m>>2]|0;c=f[n>>2]|0;m=W(e,d)|0;g=W(l,m)|0;if(g|0?(Zk[f[(f[c>>2]|0)+88>>2]&511](c,h,g),!((d|0)==0|(l|0)!=0&(e>>>0>1&(f[c+20>>2]|0)!=0)^1)):0){k=0;while(1){i=0;j=h;do{g=j;j=j+e|0;c=j+-1|0;if(c>>>0>g>>>0)do{p=b[g>>0]|0;b[g>>0]=b[c>>0]|0;g=g+1|0;b[c>>0]=p;c=c+-1|0}while(g>>>0<c>>>0);i=i+1|0}while((i|0)!=(d|0));k=k+1|0;if((k|0)==(l|0))break;else h=h+m|0}}gX(a)}while(0);p=f[n>>2]|0;Vk[f[(f[p>>2]|0)+84>>2]&1023](p,a+40|0);gX(a);u=o;return}function gQa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0;p=u;u=u+16|0;m=p+4|0;l=p;f[m>>2]=0;o=a+112|0;g=f[o>>2]|0;Vk[f[(f[g>>2]|0)+40>>2]&1023](g,m);gX(a);g=f[o>>2]|0;Vk[f[(f[g>>2]|0)+84>>2]&1023](g,a+24|0);gX(a);g=f[m>>2]|0;a:do if(g|0){n[l>>2]=0.0;h=c+76|0;i=c+80|0;j=f[h>>2]|0;k=(f[i>>2]|0)-j>>2;if(g>>>0<=k>>>0){if(g>>>0<k>>>0)f[i>>2]=j+(g<<2)}else V6(h,g-k|0,l);l=f[o>>2]|0;if(!(sk[f[(f[l>>2]|0)+12>>2]&2047](l)|0)){if((f[m>>2]|0)<=0)break;g=c+76|0;c=0;while(1){e=f[o>>2]|0;Vk[f[(f[e>>2]|0)+56>>2]&1023](e,(f[g>>2]|0)+(c<<2)|0);gX(a);c=c+1|0;if((c|0)>=(f[m>>2]|0))break a}}h=f[c+76>>2]|0;l=f[m>>2]|0;c=f[o>>2]|0;m=W(e,d)|0;g=W(l,m)|0;if(g|0?(Zk[f[(f[c>>2]|0)+88>>2]&511](c,h,g),!((d|0)==0|(l|0)!=0&(e>>>0>1&(f[c+20>>2]|0)!=0)^1)):0){k=0;while(1){i=0;j=h;do{g=j;j=j+e|0;c=j+-1|0;if(c>>>0>g>>>0)do{q=b[g>>0]|0;b[g>>0]=b[c>>0]|0;g=g+1|0;b[c>>0]=q;c=c+-1|0}while(g>>>0<c>>>0);i=i+1|0}while((i|0)!=(d|0));k=k+1|0;if((k|0)==(l|0))break;else h=h+m|0}}gX(a)}while(0);q=f[o>>2]|0;Vk[f[(f[q>>2]|0)+84>>2]&1023](q,a+40|0);gX(a);u=p;return}function hQa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0;o=u;u=u+16|0;m=o+8|0;l=o;f[m>>2]=0;n=a+112|0;g=f[n>>2]|0;Vk[f[(f[g>>2]|0)+40>>2]&1023](g,m);gX(a);g=f[n>>2]|0;Vk[f[(f[g>>2]|0)+84>>2]&1023](g,a+24|0);gX(a);g=f[m>>2]|0;a:do if(g|0){p[l>>3]=0.0;h=c+76|0;i=c+80|0;j=f[h>>2]|0;k=(f[i>>2]|0)-j>>3;if(g>>>0<=k>>>0){if(g>>>0<k>>>0)f[i>>2]=j+(g<<3)}else bea(h,g-k|0,l);l=f[n>>2]|0;if(!(sk[f[(f[l>>2]|0)+12>>2]&2047](l)|0)){if((f[m>>2]|0)<=0)break;g=c+76|0;c=0;while(1){e=f[n>>2]|0;Vk[f[(f[e>>2]|0)+60>>2]&1023](e,(f[g>>2]|0)+(c<<3)|0);gX(a);c=c+1|0;if((c|0)>=(f[m>>2]|0))break a}}h=f[c+76>>2]|0;l=f[m>>2]|0;c=f[n>>2]|0;m=W(e,d)|0;g=W(l,m)|0;if(g|0?(Zk[f[(f[c>>2]|0)+88>>2]&511](c,h,g),!((d|0)==0|(l|0)!=0&(e>>>0>1&(f[c+20>>2]|0)!=0)^1)):0){k=0;while(1){i=0;j=h;do{g=j;j=j+e|0;c=j+-1|0;if(c>>>0>g>>>0)do{q=b[g>>0]|0;b[g>>0]=b[c>>0]|0;g=g+1|0;b[c>>0]=q;c=c+-1|0}while(g>>>0<c>>>0);i=i+1|0}while((i|0)!=(d|0));k=k+1|0;if((k|0)==(l|0))break;else h=h+m|0}}gX(a)}while(0);q=f[n>>2]|0;Vk[f[(f[q>>2]|0)+84>>2]&1023](q,a+40|0);gX(a);u=o;return}function iQa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=u;u=u+16|0;l=p+6|0;m=p+4|0;n=p;f[n>>2]=0;o=a+112|0;g=f[o>>2]|0;Vk[f[(f[g>>2]|0)+40>>2]&1023](g,n);gX(a);g=f[o>>2]|0;Vk[f[(f[g>>2]|0)+84>>2]&1023](g,a+24|0);gX(a);g=f[n>>2]|0;a:do if(g|0){b[l>>0]=0;b[l+1>>0]=0;h=c+76|0;i=c+80|0;j=f[h>>2]|0;k=(f[i>>2]|0)-j>>1;if(g>>>0<=k>>>0){if(g>>>0<k>>>0)f[i>>2]=j+(g<<1)}else Zya(h,g-k|0,l);k=f[o>>2]|0;if(!(sk[f[(f[k>>2]|0)+12>>2]&2047](k)|0)){if((f[n>>2]|0)<=0)break;g=c+76|0;c=0;while(1){e=f[g>>2]|0;d=f[o>>2]|0;Vk[f[(f[d>>2]|0)+20>>2]&1023](d,l);gX(a);d=f[o>>2]|0;Vk[f[(f[d>>2]|0)+20>>2]&1023](d,m);gX(a);d=b[m>>0]|0;b[e+(c<<1)>>0]=b[l>>0]|0;b[e+(c<<1)+1>>0]=d;c=c+1|0;if((c|0)>=(f[n>>2]|0))break a}}h=f[c+76>>2]|0;l=f[n>>2]|0;c=f[o>>2]|0;m=W(e,d)|0;g=W(l,m)|0;if(g|0?(Zk[f[(f[c>>2]|0)+88>>2]&511](c,h,g),!((d|0)==0|(l|0)!=0&(e>>>0>1&(f[c+20>>2]|0)!=0)^1)):0){k=0;while(1){i=0;j=h;do{g=j;j=j+e|0;c=j+-1|0;if(c>>>0>g>>>0)do{n=b[g>>0]|0;b[g>>0]=b[c>>0]|0;g=g+1|0;b[c>>0]=n;c=c+-1|0}while(g>>>0<c>>>0);i=i+1|0}while((i|0)!=(d|0));k=k+1|0;if((k|0)==(l|0))break;else h=h+m|0}}gX(a)}while(0);o=f[o>>2]|0;Vk[f[(f[o>>2]|0)+84>>2]&1023](o,a+40|0);gX(a);u=p;return}function jQa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=u;u=u+16|0;l=q+6|0;m=q+5|0;n=q+4|0;o=q;f[o>>2]=0;p=a+112|0;g=f[p>>2]|0;Vk[f[(f[g>>2]|0)+40>>2]&1023](g,o);gX(a);g=f[p>>2]|0;Vk[f[(f[g>>2]|0)+84>>2]&1023](g,a+24|0);gX(a);g=f[o>>2]|0;if(!g){e=a+40|0;p=f[p>>2]|0;d=f[p>>2]|0;d=d+84|0;d=f[d>>2]|0;Vk[d&1023](p,e);gX(a);u=q;return}b[l>>0]=0;b[l+1>>0]=0;b[l+2>>0]=0;h=c+76|0;i=c+80|0;j=f[h>>2]|0;k=((f[i>>2]|0)-j|0)/3|0;if(g>>>0<=k>>>0){if(g>>>0<k>>>0)f[i>>2]=j+(g*3|0)}else Bya(h,g-k|0,l);k=f[p>>2]|0;if(!(sk[f[(f[k>>2]|0)+12>>2]&2047](k)|0)){if((f[o>>2]|0)<=0){e=a+40|0;p=f[p>>2]|0;d=f[p>>2]|0;d=d+84|0;d=f[d>>2]|0;Vk[d&1023](p,e);gX(a);u=q;return}g=c+76|0;c=0;do{e=f[g>>2]|0;k=f[p>>2]|0;Vk[f[(f[k>>2]|0)+20>>2]&1023](k,l);gX(a);k=f[p>>2]|0;Vk[f[(f[k>>2]|0)+20>>2]&1023](k,m);gX(a);k=f[p>>2]|0;Vk[f[(f[k>>2]|0)+20>>2]&1023](k,n);gX(a);k=b[m>>0]|0;d=b[n>>0]|0;b[e+(c*3|0)>>0]=b[l>>0]|0;b[e+(c*3|0)+1>>0]=k;b[e+(c*3|0)+2>>0]=d;c=c+1|0}while((c|0)<(f[o>>2]|0));e=a+40|0;p=f[p>>2]|0;d=f[p>>2]|0;d=d+84|0;d=f[d>>2]|0;Vk[d&1023](p,e);gX(a);u=q;return}h=f[c+76>>2]|0;l=f[o>>2]|0;c=f[p>>2]|0;m=W(e,d)|0;g=W(l,m)|0;if(g|0?(Zk[f[(f[c>>2]|0)+88>>2]&511](c,h,g),!((d|0)==0|(l|0)!=0&(e>>>0>1&(f[c+20>>2]|0)!=0)^1)):0){k=0;while(1){i=0;j=h;do{g=j;j=j+e|0;c=j+-1|0;if(c>>>0>g>>>0)do{o=b[g>>0]|0;b[g>>0]=b[c>>0]|0;g=g+1|0;b[c>>0]=o;c=c+-1|0}while(g>>>0<c>>>0);i=i+1|0}while((i|0)!=(d|0));k=k+1|0;if((k|0)==(l|0))break;else h=h+m|0}}gX(a);e=a+40|0;p=f[p>>2]|0;d=f[p>>2]|0;d=d+84|0;d=f[d>>2]|0;Vk[d&1023](p,e);gX(a);u=q;return}function kQa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|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;r=u;u=u+16|0;l=r+4|0;m=r+10|0;n=r+9|0;o=r+8|0;p=r;f[p>>2]=0;q=a+112|0;g=f[q>>2]|0;Vk[f[(f[g>>2]|0)+40>>2]&1023](g,p);gX(a);g=f[q>>2]|0;Vk[f[(f[g>>2]|0)+84>>2]&1023](g,a+24|0);gX(a);g=f[p>>2]|0;if(!g){e=a+40|0;q=f[q>>2]|0;d=f[q>>2]|0;d=d+84|0;d=f[d>>2]|0;Vk[d&1023](q,e);gX(a);u=r;return}f[l>>2]=0;h=c+76|0;i=c+80|0;j=f[h>>2]|0;k=(f[i>>2]|0)-j>>2;if(g>>>0<=k>>>0){if(g>>>0<k>>>0)f[i>>2]=j+(g<<2)}else dya(h,g-k|0,l);k=f[q>>2]|0;if(!(sk[f[(f[k>>2]|0)+12>>2]&2047](k)|0)){if((f[p>>2]|0)<=0){e=a+40|0;q=f[q>>2]|0;d=f[q>>2]|0;d=d+84|0;d=f[d>>2]|0;Vk[d&1023](q,e);gX(a);u=r;return}g=c+76|0;c=0;do{e=f[g>>2]|0;j=f[q>>2]|0;Vk[f[(f[j>>2]|0)+20>>2]&1023](j,l);gX(a);j=f[q>>2]|0;Vk[f[(f[j>>2]|0)+20>>2]&1023](j,m);gX(a);j=f[q>>2]|0;Vk[f[(f[j>>2]|0)+20>>2]&1023](j,n);gX(a);j=f[q>>2]|0;Vk[f[(f[j>>2]|0)+20>>2]&1023](j,o);gX(a);j=b[m>>0]|0;k=b[n>>0]|0;d=b[o>>0]|0;b[e+(c<<2)>>0]=b[l>>0]|0;b[e+(c<<2)+1>>0]=j;b[e+(c<<2)+2>>0]=k;b[e+(c<<2)+3>>0]=d;c=c+1|0}while((c|0)<(f[p>>2]|0));e=a+40|0;q=f[q>>2]|0;d=f[q>>2]|0;d=d+84|0;d=f[d>>2]|0;Vk[d&1023](q,e);gX(a);u=r;return}h=f[c+76>>2]|0;l=f[p>>2]|0;c=f[q>>2]|0;m=W(e,d)|0;g=W(l,m)|0;if(g|0?(Zk[f[(f[c>>2]|0)+88>>2]&511](c,h,g),!((d|0)==0|(l|0)!=0&(e>>>0>1&(f[c+20>>2]|0)!=0)^1)):0){k=0;while(1){i=0;j=h;do{g=j;j=j+e|0;c=j+-1|0;if(c>>>0>g>>>0)do{p=b[g>>0]|0;b[g>>0]=b[c>>0]|0;g=g+1|0;b[c>>0]=p;c=c+-1|0}while(g>>>0<c>>>0);i=i+1|0}while((i|0)!=(d|0));k=k+1|0;if((k|0)==(l|0))break;else h=h+m|0}}gX(a);e=a+40|0;q=f[q>>2]|0;d=f[q>>2]|0;d=d+84|0;d=f[d>>2]|0;Vk[d&1023](q,e);gX(a);u=r;return}function lQa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=u;u=u+16|0;l=p+6|0;m=p+4|0;n=p;f[n>>2]=0;o=a+112|0;g=f[o>>2]|0;Vk[f[(f[g>>2]|0)+40>>2]&1023](g,n);gX(a);g=f[o>>2]|0;Vk[f[(f[g>>2]|0)+84>>2]&1023](g,a+24|0);gX(a);g=f[n>>2]|0;a:do if(g|0){b[l>>0]=0;b[l+1>>0]=0;h=c+76|0;i=c+80|0;j=f[h>>2]|0;k=(f[i>>2]|0)-j>>1;if(g>>>0<=k>>>0){if(g>>>0<k>>>0)f[i>>2]=j+(g<<1)}else cVa(h,g-k|0,l);k=f[o>>2]|0;if(!(sk[f[(f[k>>2]|0)+12>>2]&2047](k)|0)){if((f[n>>2]|0)<=0)break;g=c+76|0;c=0;while(1){e=f[g>>2]|0;d=f[o>>2]|0;Vk[f[(f[d>>2]|0)+28>>2]&1023](d,l);gX(a);d=f[o>>2]|0;Vk[f[(f[d>>2]|0)+28>>2]&1023](d,m);gX(a);d=b[m>>0]|0;b[e+(c<<1)>>0]=b[l>>0]|0;b[e+(c<<1)+1>>0]=d;c=c+1|0;if((c|0)>=(f[n>>2]|0))break a}}h=f[c+76>>2]|0;l=f[n>>2]|0;c=f[o>>2]|0;m=W(e,d)|0;g=W(l,m)|0;if(g|0?(Zk[f[(f[c>>2]|0)+88>>2]&511](c,h,g),!((d|0)==0|(l|0)!=0&(e>>>0>1&(f[c+20>>2]|0)!=0)^1)):0){k=0;while(1){i=0;j=h;do{g=j;j=j+e|0;c=j+-1|0;if(c>>>0>g>>>0)do{n=b[g>>0]|0;b[g>>0]=b[c>>0]|0;g=g+1|0;b[c>>0]=n;c=c+-1|0}while(g>>>0<c>>>0);i=i+1|0}while((i|0)!=(d|0));k=k+1|0;if((k|0)==(l|0))break;else h=h+m|0}}gX(a)}while(0);o=f[o>>2]|0;Vk[f[(f[o>>2]|0)+84>>2]&1023](o,a+40|0);gX(a);u=p;return}function mQa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=u;u=u+16|0;l=q+6|0;m=q+5|0;n=q+4|0;o=q;f[o>>2]=0;p=a+112|0;g=f[p>>2]|0;Vk[f[(f[g>>2]|0)+40>>2]&1023](g,o);gX(a);g=f[p>>2]|0;Vk[f[(f[g>>2]|0)+84>>2]&1023](g,a+24|0);gX(a);g=f[o>>2]|0;if(!g){e=a+40|0;p=f[p>>2]|0;d=f[p>>2]|0;d=d+84|0;d=f[d>>2]|0;Vk[d&1023](p,e);gX(a);u=q;return}b[l>>0]=0;b[l+1>>0]=0;b[l+2>>0]=0;h=c+76|0;i=c+80|0;j=f[h>>2]|0;k=((f[i>>2]|0)-j|0)/3|0;if(g>>>0<=k>>>0){if(g>>>0<k>>>0)f[i>>2]=j+(g*3|0)}else GUa(h,g-k|0,l);k=f[p>>2]|0;if(!(sk[f[(f[k>>2]|0)+12>>2]&2047](k)|0)){if((f[o>>2]|0)<=0){e=a+40|0;p=f[p>>2]|0;d=f[p>>2]|0;d=d+84|0;d=f[d>>2]|0;Vk[d&1023](p,e);gX(a);u=q;return}g=c+76|0;c=0;do{e=f[g>>2]|0;k=f[p>>2]|0;Vk[f[(f[k>>2]|0)+28>>2]&1023](k,l);gX(a);k=f[p>>2]|0;Vk[f[(f[k>>2]|0)+28>>2]&1023](k,m);gX(a);k=f[p>>2]|0;Vk[f[(f[k>>2]|0)+28>>2]&1023](k,n);gX(a);k=b[m>>0]|0;d=b[n>>0]|0;b[e+(c*3|0)>>0]=b[l>>0]|0;b[e+(c*3|0)+1>>0]=k;b[e+(c*3|0)+2>>0]=d;c=c+1|0}while((c|0)<(f[o>>2]|0));e=a+40|0;p=f[p>>2]|0;d=f[p>>2]|0;d=d+84|0;d=f[d>>2]|0;Vk[d&1023](p,e);gX(a);u=q;return}h=f[c+76>>2]|0;l=f[o>>2]|0;c=f[p>>2]|0;m=W(e,d)|0;g=W(l,m)|0;if(g|0?(Zk[f[(f[c>>2]|0)+88>>2]&511](c,h,g),!((d|0)==0|(l|0)!=0&(e>>>0>1&(f[c+20>>2]|0)!=0)^1)):0){k=0;while(1){i=0;j=h;do{g=j;j=j+e|0;c=j+-1|0;if(c>>>0>g>>>0)do{o=b[g>>0]|0;b[g>>0]=b[c>>0]|0;g=g+1|0;b[c>>0]=o;c=c+-1|0}while(g>>>0<c>>>0);i=i+1|0}while((i|0)!=(d|0));k=k+1|0;if((k|0)==(l|0))break;else h=h+m|0}}gX(a);e=a+40|0;p=f[p>>2]|0;d=f[p>>2]|0;d=d+84|0;d=f[d>>2]|0;Vk[d&1023](p,e);gX(a);u=q;return}function nQa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|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;r=u;u=u+16|0;l=r+4|0;m=r+10|0;n=r+9|0;o=r+8|0;p=r;f[p>>2]=0;q=a+112|0;g=f[q>>2]|0;Vk[f[(f[g>>2]|0)+40>>2]&1023](g,p);gX(a);g=f[q>>2]|0;Vk[f[(f[g>>2]|0)+84>>2]&1023](g,a+24|0);gX(a);g=f[p>>2]|0;if(!g){e=a+40|0;q=f[q>>2]|0;d=f[q>>2]|0;d=d+84|0;d=f[d>>2]|0;Vk[d&1023](q,e);gX(a);u=r;return}f[l>>2]=0;h=c+76|0;i=c+80|0;j=f[h>>2]|0;k=(f[i>>2]|0)-j>>2;if(g>>>0<=k>>>0){if(g>>>0<k>>>0)f[i>>2]=j+(g<<2)}else pwa(h,g-k|0,l);k=f[q>>2]|0;if(!(sk[f[(f[k>>2]|0)+12>>2]&2047](k)|0)){if((f[p>>2]|0)<=0){e=a+40|0;q=f[q>>2]|0;d=f[q>>2]|0;d=d+84|0;d=f[d>>2]|0;Vk[d&1023](q,e);gX(a);u=r;return}g=c+76|0;c=0;do{e=f[g>>2]|0;j=f[q>>2]|0;Vk[f[(f[j>>2]|0)+28>>2]&1023](j,l);gX(a);j=f[q>>2]|0;Vk[f[(f[j>>2]|0)+28>>2]&1023](j,m);gX(a);j=f[q>>2]|0;Vk[f[(f[j>>2]|0)+28>>2]&1023](j,n);gX(a);j=f[q>>2]|0;Vk[f[(f[j>>2]|0)+28>>2]&1023](j,o);gX(a);j=b[m>>0]|0;k=b[n>>0]|0;d=b[o>>0]|0;b[e+(c<<2)>>0]=b[l>>0]|0;b[e+(c<<2)+1>>0]=j;b[e+(c<<2)+2>>0]=k;b[e+(c<<2)+3>>0]=d;c=c+1|0}while((c|0)<(f[p>>2]|0));e=a+40|0;q=f[q>>2]|0;d=f[q>>2]|0;d=d+84|0;d=f[d>>2]|0;Vk[d&1023](q,e);gX(a);u=r;return}h=f[c+76>>2]|0;l=f[p>>2]|0;c=f[q>>2]|0;m=W(e,d)|0;g=W(l,m)|0;if(g|0?(Zk[f[(f[c>>2]|0)+88>>2]&511](c,h,g),!((d|0)==0|(l|0)!=0&(e>>>0>1&(f[c+20>>2]|0)!=0)^1)):0){k=0;while(1){i=0;j=h;do{g=j;j=j+e|0;c=j+-1|0;if(c>>>0>g>>>0)do{p=b[g>>0]|0;b[g>>0]=b[c>>0]|0;g=g+1|0;b[c>>0]=p;c=c+-1|0}while(g>>>0<c>>>0);i=i+1|0}while((i|0)!=(d|0));k=k+1|0;if((k|0)==(l|0))break;else h=h+m|0}}gX(a);e=a+40|0;q=f[q>>2]|0;d=f[q>>2]|0;d=d+84|0;d=f[d>>2]|0;Vk[d&1023](q,e);gX(a);u=r;return}function oQa(a,c,e,g){a=a|0;c=c|0;e=e|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;p=u;u=u+16|0;n=p;m=p+4|0;f[n>>2]=0;o=a+112|0;h=f[o>>2]|0;Vk[f[(f[h>>2]|0)+40>>2]&1023](h,n);gX(a);h=f[o>>2]|0;Vk[f[(f[h>>2]|0)+84>>2]&1023](h,a+24|0);gX(a);h=f[n>>2]|0;a:do if(h|0){d[m>>1]=0;d[m+2>>1]=0;i=c+76|0;j=c+80|0;k=f[i>>2]|0;l=(f[j>>2]|0)-k>>2;if(h>>>0<=l>>>0){if(h>>>0<l>>>0)f[j>>2]=k+(h<<2)}else Hxa(i,h-l|0,m);m=f[o>>2]|0;if(!(sk[f[(f[m>>2]|0)+12>>2]&2047](m)|0)){if((f[n>>2]|0)<=0)break;h=c+76|0;c=0;while(1){g=f[h>>2]|0;e=f[o>>2]|0;Vk[f[(f[e>>2]|0)+32>>2]&1023](e,g+(c<<2)|0);gX(a);e=f[o>>2]|0;Vk[f[(f[e>>2]|0)+32>>2]&1023](e,g+(c<<2)+2|0);gX(a);c=c+1|0;if((c|0)>=(f[n>>2]|0))break a}}i=f[c+76>>2]|0;m=f[n>>2]|0;c=f[o>>2]|0;n=W(g,e)|0;h=W(m,n)|0;if(h|0?(Zk[f[(f[c>>2]|0)+88>>2]&511](c,i,h),!((e|0)==0|(m|0)!=0&(g>>>0>1&(f[c+20>>2]|0)!=0)^1)):0){l=0;while(1){j=0;k=i;do{h=k;k=k+g|0;c=k+-1|0;if(c>>>0>h>>>0)do{q=b[h>>0]|0;b[h>>0]=b[c>>0]|0;h=h+1|0;b[c>>0]=q;c=c+-1|0}while(h>>>0<c>>>0);j=j+1|0}while((j|0)!=(e|0));l=l+1|0;if((l|0)==(m|0))break;else i=i+n|0}}gX(a)}while(0);q=f[o>>2]|0;Vk[f[(f[q>>2]|0)+84>>2]&1023](q,a+40|0);gX(a);u=p;return}function pQa(a,c,e,g){a=a|0;c=c|0;e=e|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;p=u;u=u+16|0;n=p;m=p+4|0;f[n>>2]=0;o=a+112|0;h=f[o>>2]|0;Vk[f[(f[h>>2]|0)+40>>2]&1023](h,n);gX(a);h=f[o>>2]|0;Vk[f[(f[h>>2]|0)+84>>2]&1023](h,a+24|0);gX(a);h=f[n>>2]|0;a:do if(h|0){d[m>>1]=0;d[m+2>>1]=0;d[m+4>>1]=0;i=c+76|0;j=c+80|0;k=f[i>>2]|0;l=((f[j>>2]|0)-k|0)/6|0;if(h>>>0<=l>>>0){if(h>>>0<l>>>0)f[j>>2]=k+(h*6|0)}else jxa(i,h-l|0,m);m=f[o>>2]|0;if(!(sk[f[(f[m>>2]|0)+12>>2]&2047](m)|0)){if((f[n>>2]|0)<=0)break;h=c+76|0;c=0;while(1){g=f[h>>2]|0;e=f[o>>2]|0;Vk[f[(f[e>>2]|0)+32>>2]&1023](e,g+(c*6|0)|0);gX(a);e=f[o>>2]|0;Vk[f[(f[e>>2]|0)+32>>2]&1023](e,g+(c*6|0)+2|0);gX(a);e=f[o>>2]|0;Vk[f[(f[e>>2]|0)+32>>2]&1023](e,g+(c*6|0)+4|0);gX(a);c=c+1|0;if((c|0)>=(f[n>>2]|0))break a}}i=f[c+76>>2]|0;m=f[n>>2]|0;c=f[o>>2]|0;n=W(g,e)|0;h=W(m,n)|0;if(h|0?(Zk[f[(f[c>>2]|0)+88>>2]&511](c,i,h),!((e|0)==0|(m|0)!=0&(g>>>0>1&(f[c+20>>2]|0)!=0)^1)):0){l=0;while(1){j=0;k=i;do{h=k;k=k+g|0;c=k+-1|0;if(c>>>0>h>>>0)do{q=b[h>>0]|0;b[h>>0]=b[c>>0]|0;h=h+1|0;b[c>>0]=q;c=c+-1|0}while(h>>>0<c>>>0);j=j+1|0}while((j|0)!=(e|0));l=l+1|0;if((l|0)==(m|0))break;else i=i+n|0}}gX(a)}while(0);q=f[o>>2]|0;Vk[f[(f[q>>2]|0)+84>>2]&1023](q,a+40|0);gX(a);u=p;return}function qQa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=u;u=u+16|0;m=o+8|0;l=o;f[m>>2]=0;n=a+112|0;g=f[n>>2]|0;Vk[f[(f[g>>2]|0)+40>>2]&1023](g,m);gX(a);g=f[n>>2]|0;Vk[f[(f[g>>2]|0)+84>>2]&1023](g,a+24|0);gX(a);g=f[m>>2]|0;if(!g){e=a+40|0;n=f[n>>2]|0;d=f[n>>2]|0;d=d+84|0;d=f[d>>2]|0;Vk[d&1023](n,e);gX(a);u=o;return}h=l;f[h>>2]=0;f[h+4>>2]=0;h=c+76|0;i=c+80|0;j=f[h>>2]|0;k=(f[i>>2]|0)-j>>3;if(g>>>0<=k>>>0){if(g>>>0<k>>>0)f[i>>2]=j+(g<<3)}else Nwa(h,g-k|0,l);l=f[n>>2]|0;if(!(sk[f[(f[l>>2]|0)+12>>2]&2047](l)|0)){if((f[m>>2]|0)<=0){e=a+40|0;n=f[n>>2]|0;d=f[n>>2]|0;d=d+84|0;d=f[d>>2]|0;Vk[d&1023](n,e);gX(a);u=o;return}g=c+76|0;c=0;do{e=f[g>>2]|0;d=f[n>>2]|0;Vk[f[(f[d>>2]|0)+32>>2]&1023](d,e+(c<<3)|0);gX(a);d=f[n>>2]|0;Vk[f[(f[d>>2]|0)+32>>2]&1023](d,e+(c<<3)+2|0);gX(a);d=f[n>>2]|0;Vk[f[(f[d>>2]|0)+32>>2]&1023](d,e+(c<<3)+4|0);gX(a);d=f[n>>2]|0;Vk[f[(f[d>>2]|0)+32>>2]&1023](d,e+(c<<3)+6|0);gX(a);c=c+1|0}while((c|0)<(f[m>>2]|0));e=a+40|0;n=f[n>>2]|0;d=f[n>>2]|0;d=d+84|0;d=f[d>>2]|0;Vk[d&1023](n,e);gX(a);u=o;return}h=f[c+76>>2]|0;l=f[m>>2]|0;c=f[n>>2]|0;m=W(e,d)|0;g=W(l,m)|0;if(g|0?(Zk[f[(f[c>>2]|0)+88>>2]&511](c,h,g),!((d|0)==0|(l|0)!=0&(e>>>0>1&(f[c+20>>2]|0)!=0)^1)):0){k=0;while(1){i=0;j=h;do{g=j;j=j+e|0;c=j+-1|0;if(c>>>0>g>>>0)do{p=b[g>>0]|0;b[g>>0]=b[c>>0]|0;g=g+1|0;b[c>>0]=p;c=c+-1|0}while(g>>>0<c>>>0);i=i+1|0}while((i|0)!=(d|0));k=k+1|0;if((k|0)==(l|0))break;else h=h+m|0}}gX(a);p=a+40|0;n=f[n>>2]|0;e=f[n>>2]|0;e=e+84|0;e=f[e>>2]|0;Vk[e&1023](n,p);gX(a);u=o;return}function rQa(a,c,e,g){a=a|0;c=c|0;e=e|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;p=u;u=u+16|0;n=p;m=p+4|0;f[n>>2]=0;o=a+112|0;h=f[o>>2]|0;Vk[f[(f[h>>2]|0)+40>>2]&1023](h,n);gX(a);h=f[o>>2]|0;Vk[f[(f[h>>2]|0)+84>>2]&1023](h,a+24|0);gX(a);h=f[n>>2]|0;a:do if(h|0){d[m>>1]=0;d[m+2>>1]=0;i=c+76|0;j=c+80|0;k=f[i>>2]|0;l=(f[j>>2]|0)-k>>2;if(h>>>0<=l>>>0){if(h>>>0<l>>>0)f[j>>2]=k+(h<<2)}else iUa(i,h-l|0,m);m=f[o>>2]|0;if(!(sk[f[(f[m>>2]|0)+12>>2]&2047](m)|0)){if((f[n>>2]|0)<=0)break;h=c+76|0;c=0;while(1){g=f[h>>2]|0;e=f[o>>2]|0;Vk[f[(f[e>>2]|0)+36>>2]&1023](e,g+(c<<2)|0);gX(a);e=f[o>>2]|0;Vk[f[(f[e>>2]|0)+36>>2]&1023](e,g+(c<<2)+2|0);gX(a);c=c+1|0;if((c|0)>=(f[n>>2]|0))break a}}i=f[c+76>>2]|0;m=f[n>>2]|0;c=f[o>>2]|0;n=W(g,e)|0;h=W(m,n)|0;if(h|0?(Zk[f[(f[c>>2]|0)+88>>2]&511](c,i,h),!((e|0)==0|(m|0)!=0&(g>>>0>1&(f[c+20>>2]|0)!=0)^1)):0){l=0;while(1){j=0;k=i;do{h=k;k=k+g|0;c=k+-1|0;if(c>>>0>h>>>0)do{q=b[h>>0]|0;b[h>>0]=b[c>>0]|0;h=h+1|0;b[c>>0]=q;c=c+-1|0}while(h>>>0<c>>>0);j=j+1|0}while((j|0)!=(e|0));l=l+1|0;if((l|0)==(m|0))break;else i=i+n|0}}gX(a)}while(0);q=f[o>>2]|0;Vk[f[(f[q>>2]|0)+84>>2]&1023](q,a+40|0);gX(a);u=p;return}function sQa(a,c,e,g){a=a|0;c=c|0;e=e|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;p=u;u=u+16|0;n=p;m=p+4|0;f[n>>2]=0;o=a+112|0;h=f[o>>2]|0;Vk[f[(f[h>>2]|0)+40>>2]&1023](h,n);gX(a);h=f[o>>2]|0;Vk[f[(f[h>>2]|0)+84>>2]&1023](h,a+24|0);gX(a);h=f[n>>2]|0;a:do if(h|0){d[m>>1]=0;d[m+2>>1]=0;d[m+4>>1]=0;i=c+76|0;j=c+80|0;k=f[i>>2]|0;l=((f[j>>2]|0)-k|0)/6|0;if(h>>>0<=l>>>0){if(h>>>0<l>>>0)f[j>>2]=k+(h*6|0)}else MTa(i,h-l|0,m);m=f[o>>2]|0;if(!(sk[f[(f[m>>2]|0)+12>>2]&2047](m)|0)){if((f[n>>2]|0)<=0)break;h=c+76|0;c=0;while(1){g=f[h>>2]|0;e=f[o>>2]|0;Vk[f[(f[e>>2]|0)+36>>2]&1023](e,g+(c*6|0)|0);gX(a);e=f[o>>2]|0;Vk[f[(f[e>>2]|0)+36>>2]&1023](e,g+(c*6|0)+2|0);gX(a);e=f[o>>2]|0;Vk[f[(f[e>>2]|0)+36>>2]&1023](e,g+(c*6|0)+4|0);gX(a);c=c+1|0;if((c|0)>=(f[n>>2]|0))break a}}i=f[c+76>>2]|0;m=f[n>>2]|0;c=f[o>>2]|0;n=W(g,e)|0;h=W(m,n)|0;if(h|0?(Zk[f[(f[c>>2]|0)+88>>2]&511](c,i,h),!((e|0)==0|(m|0)!=0&(g>>>0>1&(f[c+20>>2]|0)!=0)^1)):0){l=0;while(1){j=0;k=i;do{h=k;k=k+g|0;c=k+-1|0;if(c>>>0>h>>>0)do{q=b[h>>0]|0;b[h>>0]=b[c>>0]|0;h=h+1|0;b[c>>0]=q;c=c+-1|0}while(h>>>0<c>>>0);j=j+1|0}while((j|0)!=(e|0));l=l+1|0;if((l|0)==(m|0))break;else i=i+n|0}}gX(a)}while(0);q=f[o>>2]|0;Vk[f[(f[q>>2]|0)+84>>2]&1023](q,a+40|0);gX(a);u=p;return}function tQa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=u;u=u+16|0;m=o+8|0;l=o;f[m>>2]=0;n=a+112|0;g=f[n>>2]|0;Vk[f[(f[g>>2]|0)+40>>2]&1023](g,m);gX(a);g=f[n>>2]|0;Vk[f[(f[g>>2]|0)+84>>2]&1023](g,a+24|0);gX(a);g=f[m>>2]|0;if(!g){e=a+40|0;n=f[n>>2]|0;d=f[n>>2]|0;d=d+84|0;d=f[d>>2]|0;Vk[d&1023](n,e);gX(a);u=o;return}h=l;f[h>>2]=0;f[h+4>>2]=0;h=c+76|0;i=c+80|0;j=f[h>>2]|0;k=(f[i>>2]|0)-j>>3;if(g>>>0<=k>>>0){if(g>>>0<k>>>0)f[i>>2]=j+(g<<3)}else oTa(h,g-k|0,l);l=f[n>>2]|0;if(!(sk[f[(f[l>>2]|0)+12>>2]&2047](l)|0)){if((f[m>>2]|0)<=0){e=a+40|0;n=f[n>>2]|0;d=f[n>>2]|0;d=d+84|0;d=f[d>>2]|0;Vk[d&1023](n,e);gX(a);u=o;return}g=c+76|0;c=0;do{e=f[g>>2]|0;d=f[n>>2]|0;Vk[f[(f[d>>2]|0)+36>>2]&1023](d,e+(c<<3)|0);gX(a);d=f[n>>2]|0;Vk[f[(f[d>>2]|0)+36>>2]&1023](d,e+(c<<3)+2|0);gX(a);d=f[n>>2]|0;Vk[f[(f[d>>2]|0)+36>>2]&1023](d,e+(c<<3)+4|0);gX(a);d=f[n>>2]|0;Vk[f[(f[d>>2]|0)+36>>2]&1023](d,e+(c<<3)+6|0);gX(a);c=c+1|0}while((c|0)<(f[m>>2]|0));e=a+40|0;n=f[n>>2]|0;d=f[n>>2]|0;d=d+84|0;d=f[d>>2]|0;Vk[d&1023](n,e);gX(a);u=o;return}h=f[c+76>>2]|0;l=f[m>>2]|0;c=f[n>>2]|0;m=W(e,d)|0;g=W(l,m)|0;if(g|0?(Zk[f[(f[c>>2]|0)+88>>2]&511](c,h,g),!((d|0)==0|(l|0)!=0&(e>>>0>1&(f[c+20>>2]|0)!=0)^1)):0){k=0;while(1){i=0;j=h;do{g=j;j=j+e|0;c=j+-1|0;if(c>>>0>g>>>0)do{p=b[g>>0]|0;b[g>>0]=b[c>>0]|0;g=g+1|0;b[c>>0]=p;c=c+-1|0}while(g>>>0<c>>>0);i=i+1|0}while((i|0)!=(d|0));k=k+1|0;if((k|0)==(l|0))break;else h=h+m|0}}gX(a);p=a+40|0;n=f[n>>2]|0;e=f[n>>2]|0;e=e+84|0;e=f[e>>2]|0;Vk[e&1023](n,p);gX(a);u=o;return}function uQa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0;p=u;u=u+16|0;m=p+8|0;l=p;f[m>>2]=0;o=a+112|0;g=f[o>>2]|0;Vk[f[(f[g>>2]|0)+40>>2]&1023](g,m);gX(a);g=f[o>>2]|0;Vk[f[(f[g>>2]|0)+84>>2]&1023](g,a+24|0);gX(a);g=f[m>>2]|0;a:do if(g|0){n[l>>2]=0.0;n[l+4>>2]=0.0;h=c+76|0;i=c+80|0;j=f[h>>2]|0;k=(f[i>>2]|0)-j>>3;if(g>>>0<=k>>>0){if(g>>>0<k>>>0)f[i>>2]=j+(g<<3)}else Y2(h,g-k|0,l);l=f[o>>2]|0;if(!(sk[f[(f[l>>2]|0)+12>>2]&2047](l)|0)){if((f[m>>2]|0)<=0)break;g=c+76|0;c=0;while(1){e=f[g>>2]|0;d=f[o>>2]|0;Vk[f[(f[d>>2]|0)+56>>2]&1023](d,e+(c<<3)|0);gX(a);d=f[o>>2]|0;Vk[f[(f[d>>2]|0)+56>>2]&1023](d,e+(c<<3)+4|0);gX(a);c=c+1|0;if((c|0)>=(f[m>>2]|0))break a}}h=f[c+76>>2]|0;l=f[m>>2]|0;c=f[o>>2]|0;m=W(e,d)|0;g=W(l,m)|0;if(g|0?(Zk[f[(f[c>>2]|0)+88>>2]&511](c,h,g),!((d|0)==0|(l|0)!=0&(e>>>0>1&(f[c+20>>2]|0)!=0)^1)):0){k=0;while(1){i=0;j=h;do{g=j;j=j+e|0;c=j+-1|0;if(c>>>0>g>>>0)do{q=b[g>>0]|0;b[g>>0]=b[c>>0]|0;g=g+1|0;b[c>>0]=q;c=c+-1|0}while(g>>>0<c>>>0);i=i+1|0}while((i|0)!=(d|0));k=k+1|0;if((k|0)==(l|0))break;else h=h+m|0}}gX(a)}while(0);q=f[o>>2]|0;Vk[f[(f[q>>2]|0)+84>>2]&1023](q,a+40|0);gX(a);u=p;return}function vQa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0;p=u;u=u+16|0;m=p+12|0;l=p;f[m>>2]=0;o=a+112|0;g=f[o>>2]|0;Vk[f[(f[g>>2]|0)+40>>2]&1023](g,m);gX(a);g=f[o>>2]|0;Vk[f[(f[g>>2]|0)+84>>2]&1023](g,a+24|0);gX(a);g=f[m>>2]|0;a:do if(g|0){n[l>>2]=0.0;n[l+4>>2]=0.0;n[l+8>>2]=0.0;h=c+76|0;i=c+80|0;j=f[h>>2]|0;k=((f[i>>2]|0)-j|0)/12|0;if(g>>>0<=k>>>0){if(g>>>0<k>>>0)f[i>>2]=j+(g*12|0)}else dQ(h,g-k|0,l);l=f[o>>2]|0;if(!(sk[f[(f[l>>2]|0)+12>>2]&2047](l)|0)){if((f[m>>2]|0)<=0)break;g=c+76|0;c=0;while(1){e=f[g>>2]|0;d=f[o>>2]|0;Vk[f[(f[d>>2]|0)+56>>2]&1023](d,e+(c*12|0)|0);gX(a);d=f[o>>2]|0;Vk[f[(f[d>>2]|0)+56>>2]&1023](d,e+(c*12|0)+4|0);gX(a);d=f[o>>2]|0;Vk[f[(f[d>>2]|0)+56>>2]&1023](d,e+(c*12|0)+8|0);gX(a);c=c+1|0;if((c|0)>=(f[m>>2]|0))break a}}h=f[c+76>>2]|0;l=f[m>>2]|0;c=f[o>>2]|0;m=W(e,d)|0;g=W(l,m)|0;if(g|0?(Zk[f[(f[c>>2]|0)+88>>2]&511](c,h,g),!((d|0)==0|(l|0)!=0&(e>>>0>1&(f[c+20>>2]|0)!=0)^1)):0){k=0;while(1){i=0;j=h;do{g=j;j=j+e|0;c=j+-1|0;if(c>>>0>g>>>0)do{q=b[g>>0]|0;b[g>>0]=b[c>>0]|0;g=g+1|0;b[c>>0]=q;c=c+-1|0}while(g>>>0<c>>>0);i=i+1|0}while((i|0)!=(d|0));k=k+1|0;if((k|0)==(l|0))break;else h=h+m|0}}gX(a)}while(0);q=f[o>>2]|0;Vk[f[(f[q>>2]|0)+84>>2]&1023](q,a+40|0);gX(a);u=p;return}function wQa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=u;u=u+32|0;m=o+16|0;l=o;f[m>>2]=0;n=a+112|0;g=f[n>>2]|0;Vk[f[(f[g>>2]|0)+40>>2]&1023](g,m);gX(a);g=f[n>>2]|0;Vk[f[(f[g>>2]|0)+84>>2]&1023](g,a+24|0);gX(a);g=f[m>>2]|0;if(!g){e=a+40|0;n=f[n>>2]|0;d=f[n>>2]|0;d=d+84|0;d=f[d>>2]|0;Vk[d&1023](n,e);gX(a);u=o;return};f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;f[l+12>>2]=0;h=c+76|0;i=c+80|0;j=f[h>>2]|0;k=(f[i>>2]|0)-j>>4;if(g>>>0<=k>>>0){if(g>>>0<k>>>0)f[i>>2]=j+(g<<4)}else iP(h,g-k|0,l);l=f[n>>2]|0;if(!(sk[f[(f[l>>2]|0)+12>>2]&2047](l)|0)){if((f[m>>2]|0)<=0){e=a+40|0;n=f[n>>2]|0;d=f[n>>2]|0;d=d+84|0;d=f[d>>2]|0;Vk[d&1023](n,e);gX(a);u=o;return}g=c+76|0;c=0;do{e=f[g>>2]|0;d=f[n>>2]|0;Vk[f[(f[d>>2]|0)+56>>2]&1023](d,e+(c<<4)|0);gX(a);d=f[n>>2]|0;Vk[f[(f[d>>2]|0)+56>>2]&1023](d,e+(c<<4)+4|0);gX(a);d=f[n>>2]|0;Vk[f[(f[d>>2]|0)+56>>2]&1023](d,e+(c<<4)+8|0);gX(a);d=f[n>>2]|0;Vk[f[(f[d>>2]|0)+56>>2]&1023](d,e+(c<<4)+12|0);gX(a);c=c+1|0}while((c|0)<(f[m>>2]|0));e=a+40|0;n=f[n>>2]|0;d=f[n>>2]|0;d=d+84|0;d=f[d>>2]|0;Vk[d&1023](n,e);gX(a);u=o;return}h=f[c+76>>2]|0;l=f[m>>2]|0;c=f[n>>2]|0;m=W(e,d)|0;g=W(l,m)|0;if(g|0?(Zk[f[(f[c>>2]|0)+88>>2]&511](c,h,g),!((d|0)==0|(l|0)!=0&(e>>>0>1&(f[c+20>>2]|0)!=0)^1)):0){k=0;while(1){i=0;j=h;do{g=j;j=j+e|0;c=j+-1|0;if(c>>>0>g>>>0)do{p=b[g>>0]|0;b[g>>0]=b[c>>0]|0;g=g+1|0;b[c>>0]=p;c=c+-1|0}while(g>>>0<c>>>0);i=i+1|0}while((i|0)!=(d|0));k=k+1|0;if((k|0)==(l|0))break;else h=h+m|0}}gX(a);p=a+40|0;n=f[n>>2]|0;e=f[n>>2]|0;e=e+84|0;e=f[e>>2]|0;Vk[e&1023](n,p);gX(a);u=o;return}function xQa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=u;u=u+32|0;m=o+16|0;l=o;f[m>>2]=0;n=a+112|0;g=f[n>>2]|0;Vk[f[(f[g>>2]|0)+40>>2]&1023](g,m);gX(a);g=f[n>>2]|0;Vk[f[(f[g>>2]|0)+84>>2]&1023](g,a+24|0);gX(a);g=f[m>>2]|0;a:do if(g|0){f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;f[l+12>>2]=0;h=c+76|0;i=c+80|0;j=f[h>>2]|0;k=(f[i>>2]|0)-j>>4;if(g>>>0<=k>>>0){if(g>>>0<k>>>0)f[i>>2]=j+(g<<4)}else Tva(h,g-k|0,l);l=f[n>>2]|0;if(!(sk[f[(f[l>>2]|0)+12>>2]&2047](l)|0)){if((f[m>>2]|0)<=0)break;g=c+76|0;c=0;while(1){e=f[g>>2]|0;d=f[n>>2]|0;Vk[f[(f[d>>2]|0)+60>>2]&1023](d,e+(c<<4)|0);gX(a);d=f[n>>2]|0;Vk[f[(f[d>>2]|0)+60>>2]&1023](d,e+(c<<4)+8|0);gX(a);c=c+1|0;if((c|0)>=(f[m>>2]|0))break a}}h=f[c+76>>2]|0;l=f[m>>2]|0;c=f[n>>2]|0;m=W(e,d)|0;g=W(l,m)|0;if(g|0?(Zk[f[(f[c>>2]|0)+88>>2]&511](c,h,g),!((d|0)==0|(l|0)!=0&(e>>>0>1&(f[c+20>>2]|0)!=0)^1)):0){k=0;while(1){i=0;j=h;do{g=j;j=j+e|0;c=j+-1|0;if(c>>>0>g>>>0)do{p=b[g>>0]|0;b[g>>0]=b[c>>0]|0;g=g+1|0;b[c>>0]=p;c=c+-1|0}while(g>>>0<c>>>0);i=i+1|0}while((i|0)!=(d|0));k=k+1|0;if((k|0)==(l|0))break;else h=h+m|0}}gX(a)}while(0);p=f[n>>2]|0;Vk[f[(f[p>>2]|0)+84>>2]&1023](p,a+40|0);gX(a);u=o;return}function yQa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=u;u=u+32|0;m=o+24|0;l=o;f[m>>2]=0;n=a+112|0;g=f[n>>2]|0;Vk[f[(f[g>>2]|0)+40>>2]&1023](g,m);gX(a);g=f[n>>2]|0;Vk[f[(f[g>>2]|0)+84>>2]&1023](g,a+24|0);gX(a);g=f[m>>2]|0;a:do if(g|0){f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;f[l+12>>2]=0;f[l+16>>2]=0;f[l+20>>2]=0;h=c+76|0;i=c+80|0;j=f[h>>2]|0;k=((f[i>>2]|0)-j|0)/24|0;if(g>>>0<=k>>>0){if(g>>>0<k>>>0)f[i>>2]=j+(g*24|0)}else vva(h,g-k|0,l);l=f[n>>2]|0;if(!(sk[f[(f[l>>2]|0)+12>>2]&2047](l)|0)){if((f[m>>2]|0)<=0)break;g=c+76|0;c=0;while(1){e=f[g>>2]|0;d=f[n>>2]|0;Vk[f[(f[d>>2]|0)+60>>2]&1023](d,e+(c*24|0)|0);gX(a);d=f[n>>2]|0;Vk[f[(f[d>>2]|0)+60>>2]&1023](d,e+(c*24|0)+8|0);gX(a);d=f[n>>2]|0;Vk[f[(f[d>>2]|0)+60>>2]&1023](d,e+(c*24|0)+16|0);gX(a);c=c+1|0;if((c|0)>=(f[m>>2]|0))break a}}h=f[c+76>>2]|0;l=f[m>>2]|0;c=f[n>>2]|0;m=W(e,d)|0;g=W(l,m)|0;if(g|0?(Zk[f[(f[c>>2]|0)+88>>2]&511](c,h,g),!((d|0)==0|(l|0)!=0&(e>>>0>1&(f[c+20>>2]|0)!=0)^1)):0){k=0;while(1){i=0;j=h;do{g=j;j=j+e|0;c=j+-1|0;if(c>>>0>g>>>0)do{p=b[g>>0]|0;b[g>>0]=b[c>>0]|0;g=g+1|0;b[c>>0]=p;c=c+-1|0}while(g>>>0<c>>>0);i=i+1|0}while((i|0)!=(d|0));k=k+1|0;if((k|0)==(l|0))break;else h=h+m|0}}gX(a)}while(0);p=f[n>>2]|0;Vk[f[(f[p>>2]|0)+84>>2]&1023](p,a+40|0);gX(a);u=o;return}function zQa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=u;u=u+48|0;m=o+32|0;l=o;f[m>>2]=0;n=a+112|0;g=f[n>>2]|0;Vk[f[(f[g>>2]|0)+40>>2]&1023](g,m);gX(a);g=f[n>>2]|0;Vk[f[(f[g>>2]|0)+84>>2]&1023](g,a+24|0);gX(a);g=f[m>>2]|0;if(!g){e=a+40|0;n=f[n>>2]|0;d=f[n>>2]|0;d=d+84|0;d=f[d>>2]|0;Vk[d&1023](n,e);gX(a);u=o;return};f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;f[l+12>>2]=0;f[l+16>>2]=0;f[l+20>>2]=0;f[l+24>>2]=0;f[l+28>>2]=0;h=c+76|0;i=c+80|0;j=f[h>>2]|0;k=(f[i>>2]|0)-j>>5;if(g>>>0<=k>>>0){if(g>>>0<k>>>0)f[i>>2]=j+(g<<5)}else Zua(h,g-k|0,l);l=f[n>>2]|0;if(!(sk[f[(f[l>>2]|0)+12>>2]&2047](l)|0)){if((f[m>>2]|0)<=0){e=a+40|0;n=f[n>>2]|0;d=f[n>>2]|0;d=d+84|0;d=f[d>>2]|0;Vk[d&1023](n,e);gX(a);u=o;return}g=c+76|0;c=0;do{e=f[g>>2]|0;d=f[n>>2]|0;Vk[f[(f[d>>2]|0)+60>>2]&1023](d,e+(c<<5)|0);gX(a);d=f[n>>2]|0;Vk[f[(f[d>>2]|0)+60>>2]&1023](d,e+(c<<5)+8|0);gX(a);d=f[n>>2]|0;Vk[f[(f[d>>2]|0)+60>>2]&1023](d,e+(c<<5)+16|0);gX(a);d=f[n>>2]|0;Vk[f[(f[d>>2]|0)+60>>2]&1023](d,e+(c<<5)+24|0);gX(a);c=c+1|0}while((c|0)<(f[m>>2]|0));e=a+40|0;n=f[n>>2]|0;d=f[n>>2]|0;d=d+84|0;d=f[d>>2]|0;Vk[d&1023](n,e);gX(a);u=o;return}h=f[c+76>>2]|0;l=f[m>>2]|0;c=f[n>>2]|0;m=W(e,d)|0;g=W(l,m)|0;if(g|0?(Zk[f[(f[c>>2]|0)+88>>2]&511](c,h,g),!((d|0)==0|(l|0)!=0&(e>>>0>1&(f[c+20>>2]|0)!=0)^1)):0){k=0;while(1){i=0;j=h;do{g=j;j=j+e|0;c=j+-1|0;if(c>>>0>g>>>0)do{p=b[g>>0]|0;b[g>>0]=b[c>>0]|0;g=g+1|0;b[c>>0]=p;c=c+-1|0}while(g>>>0<c>>>0);i=i+1|0}while((i|0)!=(d|0));k=k+1|0;if((k|0)==(l|0))break;else h=h+m|0}}gX(a);p=a+40|0;n=f[n>>2]|0;e=f[n>>2]|0;e=e+84|0;e=f[e>>2]|0;Vk[e&1023](n,p);gX(a);u=o;return}function AQa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=u;u=u+16|0;m=o+8|0;l=o;f[m>>2]=0;n=a+112|0;g=f[n>>2]|0;Vk[f[(f[g>>2]|0)+40>>2]&1023](g,m);gX(a);g=f[n>>2]|0;Vk[f[(f[g>>2]|0)+84>>2]&1023](g,a+24|0);gX(a);g=f[m>>2]|0;a:do if(g|0){f[l>>2]=0;f[l+4>>2]=0;h=c+76|0;i=c+80|0;j=f[h>>2]|0;k=(f[i>>2]|0)-j>>3;if(g>>>0<=k>>>0){if(g>>>0<k>>>0)f[i>>2]=j+(g<<3)}else SSa(h,g-k|0,l);l=f[n>>2]|0;if(!(sk[f[(f[l>>2]|0)+12>>2]&2047](l)|0)){if((f[m>>2]|0)<=0)break;g=c+76|0;c=0;while(1){e=f[g>>2]|0;d=f[n>>2]|0;Vk[f[(f[d>>2]|0)+40>>2]&1023](d,e+(c<<3)|0);gX(a);d=f[n>>2]|0;Vk[f[(f[d>>2]|0)+40>>2]&1023](d,e+(c<<3)+4|0);gX(a);c=c+1|0;if((c|0)>=(f[m>>2]|0))break a}}h=f[c+76>>2]|0;l=f[m>>2]|0;c=f[n>>2]|0;m=W(e,d)|0;g=W(l,m)|0;if(g|0?(Zk[f[(f[c>>2]|0)+88>>2]&511](c,h,g),!((d|0)==0|(l|0)!=0&(e>>>0>1&(f[c+20>>2]|0)!=0)^1)):0){k=0;while(1){i=0;j=h;do{g=j;j=j+e|0;c=j+-1|0;if(c>>>0>g>>>0)do{p=b[g>>0]|0;b[g>>0]=b[c>>0]|0;g=g+1|0;b[c>>0]=p;c=c+-1|0}while(g>>>0<c>>>0);i=i+1|0}while((i|0)!=(d|0));k=k+1|0;if((k|0)==(l|0))break;else h=h+m|0}}gX(a)}while(0);p=f[n>>2]|0;Vk[f[(f[p>>2]|0)+84>>2]&1023](p,a+40|0);gX(a);u=o;return}function BQa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=u;u=u+16|0;m=o+12|0;l=o;f[m>>2]=0;n=a+112|0;g=f[n>>2]|0;Vk[f[(f[g>>2]|0)+40>>2]&1023](g,m);gX(a);g=f[n>>2]|0;Vk[f[(f[g>>2]|0)+84>>2]&1023](g,a+24|0);gX(a);g=f[m>>2]|0;a:do if(g|0){f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;h=c+76|0;i=c+80|0;j=f[h>>2]|0;k=((f[i>>2]|0)-j|0)/12|0;if(g>>>0<=k>>>0){if(g>>>0<k>>>0)f[i>>2]=j+(g*12|0)}else uSa(h,g-k|0,l);l=f[n>>2]|0;if(!(sk[f[(f[l>>2]|0)+12>>2]&2047](l)|0)){if((f[m>>2]|0)<=0)break;g=c+76|0;c=0;while(1){e=f[g>>2]|0;d=f[n>>2]|0;Vk[f[(f[d>>2]|0)+40>>2]&1023](d,e+(c*12|0)|0);gX(a);d=f[n>>2]|0;Vk[f[(f[d>>2]|0)+40>>2]&1023](d,e+(c*12|0)+4|0);gX(a);d=f[n>>2]|0;Vk[f[(f[d>>2]|0)+40>>2]&1023](d,e+(c*12|0)+8|0);gX(a);c=c+1|0;if((c|0)>=(f[m>>2]|0))break a}}h=f[c+76>>2]|0;l=f[m>>2]|0;c=f[n>>2]|0;m=W(e,d)|0;g=W(l,m)|0;if(g|0?(Zk[f[(f[c>>2]|0)+88>>2]&511](c,h,g),!((d|0)==0|(l|0)!=0&(e>>>0>1&(f[c+20>>2]|0)!=0)^1)):0){k=0;while(1){i=0;j=h;do{g=j;j=j+e|0;c=j+-1|0;if(c>>>0>g>>>0)do{p=b[g>>0]|0;b[g>>0]=b[c>>0]|0;g=g+1|0;b[c>>0]=p;c=c+-1|0}while(g>>>0<c>>>0);i=i+1|0}while((i|0)!=(d|0));k=k+1|0;if((k|0)==(l|0))break;else h=h+m|0}}gX(a)}while(0);p=f[n>>2]|0;Vk[f[(f[p>>2]|0)+84>>2]&1023](p,a+40|0);gX(a);u=o;return}function CQa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=u;u=u+32|0;m=o+16|0;l=o;f[m>>2]=0;n=a+112|0;g=f[n>>2]|0;Vk[f[(f[g>>2]|0)+40>>2]&1023](g,m);gX(a);g=f[n>>2]|0;Vk[f[(f[g>>2]|0)+84>>2]&1023](g,a+24|0);gX(a);g=f[m>>2]|0;if(!g){e=a+40|0;n=f[n>>2]|0;d=f[n>>2]|0;d=d+84|0;d=f[d>>2]|0;Vk[d&1023](n,e);gX(a);u=o;return};f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;f[l+12>>2]=0;h=c+76|0;i=c+80|0;j=f[h>>2]|0;k=(f[i>>2]|0)-j>>4;if(g>>>0<=k>>>0){if(g>>>0<k>>>0)f[i>>2]=j+(g<<4)}else YRa(h,g-k|0,l);l=f[n>>2]|0;if(!(sk[f[(f[l>>2]|0)+12>>2]&2047](l)|0)){if((f[m>>2]|0)<=0){e=a+40|0;n=f[n>>2]|0;d=f[n>>2]|0;d=d+84|0;d=f[d>>2]|0;Vk[d&1023](n,e);gX(a);u=o;return}g=c+76|0;c=0;do{e=f[g>>2]|0;d=f[n>>2]|0;Vk[f[(f[d>>2]|0)+40>>2]&1023](d,e+(c<<4)|0);gX(a);d=f[n>>2]|0;Vk[f[(f[d>>2]|0)+40>>2]&1023](d,e+(c<<4)+4|0);gX(a);d=f[n>>2]|0;Vk[f[(f[d>>2]|0)+40>>2]&1023](d,e+(c<<4)+8|0);gX(a);d=f[n>>2]|0;Vk[f[(f[d>>2]|0)+40>>2]&1023](d,e+(c<<4)+12|0);gX(a);c=c+1|0}while((c|0)<(f[m>>2]|0));e=a+40|0;n=f[n>>2]|0;d=f[n>>2]|0;d=d+84|0;d=f[d>>2]|0;Vk[d&1023](n,e);gX(a);u=o;return}h=f[c+76>>2]|0;l=f[m>>2]|0;c=f[n>>2]|0;m=W(e,d)|0;g=W(l,m)|0;if(g|0?(Zk[f[(f[c>>2]|0)+88>>2]&511](c,h,g),!((d|0)==0|(l|0)!=0&(e>>>0>1&(f[c+20>>2]|0)!=0)^1)):0){k=0;while(1){i=0;j=h;do{g=j;j=j+e|0;c=j+-1|0;if(c>>>0>g>>>0)do{p=b[g>>0]|0;b[g>>0]=b[c>>0]|0;g=g+1|0;b[c>>0]=p;c=c+-1|0}while(g>>>0<c>>>0);i=i+1|0}while((i|0)!=(d|0));k=k+1|0;if((k|0)==(l|0))break;else h=h+m|0}}gX(a);p=a+40|0;n=f[n>>2]|0;e=f[n>>2]|0;e=e+84|0;e=f[e>>2]|0;Vk[e&1023](n,p);gX(a);u=o;return}function DQa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=u;u=u+16|0;m=o+8|0;l=o;f[m>>2]=0;n=a+112|0;g=f[n>>2]|0;Vk[f[(f[g>>2]|0)+40>>2]&1023](g,m);gX(a);g=f[n>>2]|0;Vk[f[(f[g>>2]|0)+84>>2]&1023](g,a+24|0);gX(a);g=f[m>>2]|0;a:do if(g|0){f[l>>2]=0;f[l+4>>2]=0;h=c+76|0;i=c+80|0;j=f[h>>2]|0;k=(f[i>>2]|0)-j>>3;if(g>>>0<=k>>>0){if(g>>>0<k>>>0)f[i>>2]=j+(g<<3)}else ARa(h,g-k|0,l);l=f[n>>2]|0;if(!(sk[f[(f[l>>2]|0)+12>>2]&2047](l)|0)){if((f[m>>2]|0)<=0)break;g=c+76|0;c=0;while(1){e=f[g>>2]|0;d=f[n>>2]|0;Vk[f[(f[d>>2]|0)+44>>2]&1023](d,e+(c<<3)|0);gX(a);d=f[n>>2]|0;Vk[f[(f[d>>2]|0)+44>>2]&1023](d,e+(c<<3)+4|0);gX(a);c=c+1|0;if((c|0)>=(f[m>>2]|0))break a}}h=f[c+76>>2]|0;l=f[m>>2]|0;c=f[n>>2]|0;m=W(e,d)|0;g=W(l,m)|0;if(g|0?(Zk[f[(f[c>>2]|0)+88>>2]&511](c,h,g),!((d|0)==0|(l|0)!=0&(e>>>0>1&(f[c+20>>2]|0)!=0)^1)):0){k=0;while(1){i=0;j=h;do{g=j;j=j+e|0;c=j+-1|0;if(c>>>0>g>>>0)do{p=b[g>>0]|0;b[g>>0]=b[c>>0]|0;g=g+1|0;b[c>>0]=p;c=c+-1|0}while(g>>>0<c>>>0);i=i+1|0}while((i|0)!=(d|0));k=k+1|0;if((k|0)==(l|0))break;else h=h+m|0}}gX(a)}while(0);p=f[n>>2]|0;Vk[f[(f[p>>2]|0)+84>>2]&1023](p,a+40|0);gX(a);u=o;return}function EQa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=u;u=u+16|0;m=o+12|0;l=o;f[m>>2]=0;n=a+112|0;g=f[n>>2]|0;Vk[f[(f[g>>2]|0)+40>>2]&1023](g,m);gX(a);g=f[n>>2]|0;Vk[f[(f[g>>2]|0)+84>>2]&1023](g,a+24|0);gX(a);g=f[m>>2]|0;a:do if(g|0){f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;h=c+76|0;i=c+80|0;j=f[h>>2]|0;k=((f[i>>2]|0)-j|0)/12|0;if(g>>>0<=k>>>0){if(g>>>0<k>>>0)f[i>>2]=j+(g*12|0)}else cRa(h,g-k|0,l);l=f[n>>2]|0;if(!(sk[f[(f[l>>2]|0)+12>>2]&2047](l)|0)){if((f[m>>2]|0)<=0)break;g=c+76|0;c=0;while(1){e=f[g>>2]|0;d=f[n>>2]|0;Vk[f[(f[d>>2]|0)+44>>2]&1023](d,e+(c*12|0)|0);gX(a);d=f[n>>2]|0;Vk[f[(f[d>>2]|0)+44>>2]&1023](d,e+(c*12|0)+4|0);gX(a);d=f[n>>2]|0;Vk[f[(f[d>>2]|0)+44>>2]&1023](d,e+(c*12|0)+8|0);gX(a);c=c+1|0;if((c|0)>=(f[m>>2]|0))break a}}h=f[c+76>>2]|0;l=f[m>>2]|0;c=f[n>>2]|0;m=W(e,d)|0;g=W(l,m)|0;if(g|0?(Zk[f[(f[c>>2]|0)+88>>2]&511](c,h,g),!((d|0)==0|(l|0)!=0&(e>>>0>1&(f[c+20>>2]|0)!=0)^1)):0){k=0;while(1){i=0;j=h;do{g=j;j=j+e|0;c=j+-1|0;if(c>>>0>g>>>0)do{p=b[g>>0]|0;b[g>>0]=b[c>>0]|0;g=g+1|0;b[c>>0]=p;c=c+-1|0}while(g>>>0<c>>>0);i=i+1|0}while((i|0)!=(d|0));k=k+1|0;if((k|0)==(l|0))break;else h=h+m|0}}gX(a)}while(0);p=f[n>>2]|0;Vk[f[(f[p>>2]|0)+84>>2]&1023](p,a+40|0);gX(a);u=o;return}function FQa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=u;u=u+32|0;m=o+16|0;l=o;f[m>>2]=0;n=a+112|0;g=f[n>>2]|0;Vk[f[(f[g>>2]|0)+40>>2]&1023](g,m);gX(a);g=f[n>>2]|0;Vk[f[(f[g>>2]|0)+84>>2]&1023](g,a+24|0);gX(a);g=f[m>>2]|0;if(!g){e=a+40|0;n=f[n>>2]|0;d=f[n>>2]|0;d=d+84|0;d=f[d>>2]|0;Vk[d&1023](n,e);gX(a);u=o;return};f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;f[l+12>>2]=0;h=c+76|0;i=c+80|0;j=f[h>>2]|0;k=(f[i>>2]|0)-j>>4;if(g>>>0<=k>>>0){if(g>>>0<k>>>0)f[i>>2]=j+(g<<4)}else GQa(h,g-k|0,l);l=f[n>>2]|0;if(!(sk[f[(f[l>>2]|0)+12>>2]&2047](l)|0)){if((f[m>>2]|0)<=0){e=a+40|0;n=f[n>>2]|0;d=f[n>>2]|0;d=d+84|0;d=f[d>>2]|0;Vk[d&1023](n,e);gX(a);u=o;return}g=c+76|0;c=0;do{e=f[g>>2]|0;d=f[n>>2]|0;Vk[f[(f[d>>2]|0)+44>>2]&1023](d,e+(c<<4)|0);gX(a);d=f[n>>2]|0;Vk[f[(f[d>>2]|0)+44>>2]&1023](d,e+(c<<4)+4|0);gX(a);d=f[n>>2]|0;Vk[f[(f[d>>2]|0)+44>>2]&1023](d,e+(c<<4)+8|0);gX(a);d=f[n>>2]|0;Vk[f[(f[d>>2]|0)+44>>2]&1023](d,e+(c<<4)+12|0);gX(a);c=c+1|0}while((c|0)<(f[m>>2]|0));e=a+40|0;n=f[n>>2]|0;d=f[n>>2]|0;d=d+84|0;d=f[d>>2]|0;Vk[d&1023](n,e);gX(a);u=o;return}h=f[c+76>>2]|0;l=f[m>>2]|0;c=f[n>>2]|0;m=W(e,d)|0;g=W(l,m)|0;if(g|0?(Zk[f[(f[c>>2]|0)+88>>2]&511](c,h,g),!((d|0)==0|(l|0)!=0&(e>>>0>1&(f[c+20>>2]|0)!=0)^1)):0){k=0;while(1){i=0;j=h;do{g=j;j=j+e|0;c=j+-1|0;if(c>>>0>g>>>0)do{p=b[g>>0]|0;b[g>>0]=b[c>>0]|0;g=g+1|0;b[c>>0]=p;c=c+-1|0}while(g>>>0<c>>>0);i=i+1|0}while((i|0)!=(d|0));k=k+1|0;if((k|0)==(l|0))break;else h=h+m|0}}gX(a);p=a+40|0;n=f[n>>2]|0;e=f[n>>2]|0;e=e+84|0;e=f[e>>2]|0;Vk[e&1023](n,p);gX(a);u=o;return}function GQa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;k=a+8|0;g=f[k>>2]|0;l=a+4|0;d=f[l>>2]|0;if(g-d>>4>>>0>=b>>>0){do{f[d>>2]=f[c>>2];f[d+4>>2]=f[c+4>>2];f[d+8>>2]=f[c+8>>2];f[d+12>>2]=f[c+12>>2];d=(f[l>>2]|0)+16|0;f[l>>2]=d;b=b+-1|0}while((b|0)!=0);return}e=f[a>>2]|0;h=d-e>>4;j=h+b|0;if(j>>>0>268435455)KEb(a);i=g-e|0;d=i>>3;d=i>>4>>>0<134217727?(d>>>0<j>>>0?j:d):268435455;do if(d)if(d>>>0>268435455){l=mb(8)|0;RDb(l,238482);f[l>>2]=144484;qb(l|0,84192,1464)}else{i=LDb(d<<4)|0;break}else i=0;while(0);g=i+(h<<4)|0;h=i+(d<<4)|0;d=g;while(1){f[d>>2]=f[c>>2];f[d+4>>2]=f[c+4>>2];f[d+8>>2]=f[c+8>>2];f[d+12>>2]=f[c+12>>2];b=b+-1|0;if(!b)break;else d=d+16|0}b=f[a>>2]|0;e=(f[l>>2]|0)-b|0;d=g+(0-(e>>4)<<4)|0;if((e|0)>0)gGb(d|0,b|0,e|0)|0;f[a>>2]=d;f[l>>2]=i+(j<<4);f[k>>2]=h;if(!b)return;NDb(b);return}function HQa(a){a=a|0;var b=0;f[a+72>>2]=131640;b=f[a+76>>2]|0;if(!b){xx(a);return}f[a+80>>2]=b;NDb(b);xx(a);return}function IQa(a){a=a|0;var b=0;f[a+72>>2]=131640;b=f[a+76>>2]|0;if(b|0){f[a+80>>2]=b;NDb(b)}xx(a);NDb(a);return}function JQa(a){a=a|0;var c=0;a=LDb(88)|0;CCa(a,1);c=a+12|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[a+24>>2]=2;c=a+28|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;f[c+16>>2]=0;f[c+20>>2]=0;f[a+52>>2]=26;f[a+56>>2]=4;f[a+60>>2]=5125;f[a+64>>2]=-1;b[a+68>>0]=0;b[a+69>>0]=0;f[a+76>>2]=0;f[a+80>>2]=0;f[a+84>>2]=0;f[a>>2]=131384;f[a+72>>2]=131624;return a|0}function KQa(a,b){a=a|0;b=b|0;var c=0;c=LDb(88)|0;bRa(c,a,b);return c|0}function LQa(a){a=a|0;var b=0;b=f[a+76>>2]|0;return ((b|0)==(f[a+80>>2]|0)?0:b)|0}function MQa(a){a=a|0;return (f[a+80>>2]|0)-(f[a+76>>2]|0)|0}function NQa(a,b){a=a|0;b=b|0;Vk[f[(f[b>>2]|0)+112>>2]&1023](b,a);return}function OQa(a,b){a=a|0;b=b|0;Vk[f[(f[b>>2]|0)+112>>2]&1023](b,a);return}function PQa(a,b,c){a=a|0;b=b|0;c=c|0;Vk[f[(f[c>>2]|0)+108>>2]&1023](c,(f[a+76>>2]|0)+(b<<4)|0);return}function QQa(a,b,c){a=a|0;b=b|0;c=c|0;Vk[f[(f[c>>2]|0)+108>>2]&1023](c,(f[a+76>>2]|0)+(b<<4)|0);return}function RQa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=f[a+76>>2]|0;a=f[e+(b<<4)>>2]|0;d=f[e+(c<<4)>>2]|0;if(a>>>0<d>>>0){c=-1;return c|0}if(a>>>0<=d>>>0){a=f[e+(b<<4)+4>>2]|0;d=f[e+(c<<4)+4>>2]|0;if(a>>>0<d>>>0){c=-1;return c|0}if(a>>>0<=d>>>0){a=f[e+(b<<4)+8>>2]|0;d=f[e+(c<<4)+8>>2]|0;if(a>>>0<d>>>0){c=-1;return c|0}if(a>>>0<=d>>>0?(f[e+(b<<4)+12>>2]|0)>>>0<(f[e+(c<<4)+12>>2]|0)>>>0:0){c=-1;return c|0}}a=f[e+(c<<4)+4>>2]|0;d=f[e+(b<<4)+4>>2]|0;if(a>>>0>=d>>>0){if(a>>>0>d>>>0){c=0;return c|0}a=f[e+(c<<4)+8>>2]|0;d=f[e+(b<<4)+8>>2]|0;if(a>>>0>=d>>>0){if(a>>>0>d>>>0){c=0;return c|0}if((f[e+(c<<4)+12>>2]|0)>>>0>=(f[e+(b<<4)+12>>2]|0)>>>0){c=0;return c|0}}}}c=1;return c|0}function SQa(a){a=a|0;return 16}function TQa(a,b){a=a|0;b=b|0;var c=0;c=f[a+76>>2]|0;return ((c|0)==(f[a+80>>2]|0)?0:c+(b<<4)|0)|0}function UQa(a){a=a|0;return (f[a+80>>2]|0)-(f[a+76>>2]|0)>>4|0}function VQa(a,b){a=a|0;b=b|0;aRa(a+76|0,b);return}function WQa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;h=u;u=u+16|0;e=h;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;f[e+12>>2]=0;g=a+76|0;a=a+80|0;c=f[g>>2]|0;d=(f[a>>2]|0)-c>>4;if(d>>>0<b>>>0){GQa(g,b-d|0,e);u=h;return}if(d>>>0<=b>>>0){u=h;return}f[a>>2]=c+(b<<4);u=h;return}function XQa(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=u;u=u+16|0;g=o;f[g>>2]=131640;h=g+4|0;i=a+76|0;f[h>>2]=0;j=g+8|0;f[j>>2]=0;k=g+12|0;f[k>>2]=0;l=a+80|0;m=f[l>>2]|0;n=f[i>>2]|0;e=m-n|0;b=e>>4;if(e){if(b>>>0>268435455)KEb(h);c=LDb(e)|0;f[j>>2]=c;f[h>>2]=c;b=c+(b<<4)|0;f[k>>2]=b;d=c;if((e|0)>0){p=c+(e>>>4<<4)|0;gGb(c|0,n|0,e|0)|0;f[j>>2]=p;e=d;c=p}else{e=d;c=d}}else{e=0;c=0;b=0}f[h>>2]=n;f[i>>2]=e;f[j>>2]=m;f[l>>2]=c;p=a+84|0;f[k>>2]=f[p>>2];f[p>>2]=b;f[g>>2]=131640;if(!n){u=o;return}f[j>>2]=n;NDb(n);u=o;return}function YQa(a){a=a|0;var b=0;a=a+-72|0;f[a+72>>2]=131640;b=f[a+76>>2]|0;if(!b){xx(a);return}f[a+80>>2]=b;NDb(b);xx(a);return}function ZQa(a){a=a|0;var b=0;a=a+-72|0;f[a+72>>2]=131640;b=f[a+76>>2]|0;if(b|0){f[a+80>>2]=b;NDb(b)}xx(a);NDb(a);return}function _Qa(a){a=a|0;var b=0;f[a>>2]=131640;b=f[a+4>>2]|0;if(!b)return;f[a+8>>2]=b;NDb(b);return}function $Qa(a){a=a|0;var b=0;f[a>>2]=131640;b=f[a+4>>2]|0;if(!b){NDb(a);return}f[a+8>>2]=b;NDb(b);NDb(a);return}function aRa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;e=a+8|0;g=f[a>>2]|0;if((f[e>>2]|0)-g>>4>>>0>=b>>>0)return;h=a+4|0;if(b>>>0>268435455){h=mb(8)|0;RDb(h,238482);f[h>>2]=144484;qb(h|0,84192,1464)}c=(f[h>>2]|0)-g|0;d=LDb(b<<4)|0;if((c|0)>0)gGb(d|0,g|0,c|0)|0;f[a>>2]=d;f[h>>2]=d+(c>>4<<4);f[e>>2]=d+(b<<4);if(!g)return;NDb(g);return}function bRa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0;nw(a,c,d);f[a>>2]=88884;f[a+32>>2]=0;f[a+36>>2]=0;f[a+40>>2]=0;d=f[c+44>>2]|0;f[a+44>>2]=d;if(d|0){l=d+(f[(f[d>>2]|0)+-12>>2]|0)+8|0;f[l>>2]=(f[l>>2]|0)+1}f[a+48>>2]=0;f[a>>2]=97480;f[a+52>>2]=f[c+52>>2];f[a+56>>2]=f[c+56>>2];f[a+60>>2]=f[c+60>>2];f[a+64>>2]=f[c+64>>2];b[a+68>>0]=b[c+68>>0]|0;b[a+69>>0]=b[c+69>>0]|0;k=a+72|0;f[k>>2]=131640;e=a+76|0;g=c+76|0;f[e>>2]=0;l=a+80|0;f[l>>2]=0;h=a+84|0;f[h>>2]=0;i=c+80|0;d=(f[i>>2]|0)-(f[g>>2]|0)|0;c=d>>4;if(!d){f[a>>2]=131384;f[k>>2]=131624;return}if(c>>>0>268435455)KEb(e);j=LDb(d)|0;f[l>>2]=j;f[e>>2]=j;f[h>>2]=j+(c<<4);c=f[g>>2]|0;d=(f[i>>2]|0)-c|0;if((d|0)<=0){f[a>>2]=131384;f[k>>2]=131624;return}gGb(j|0,c|0,d|0)|0;f[l>>2]=j+(d>>>4<<4);f[a>>2]=131384;f[k>>2]=131624;return}function cRa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;k=a+8|0;g=f[k>>2]|0;l=a+4|0;d=f[l>>2]|0;if(((g-d|0)/12|0)>>>0>=b>>>0){do{f[d>>2]=f[c>>2];f[d+4>>2]=f[c+4>>2];f[d+8>>2]=f[c+8>>2];d=(f[l>>2]|0)+12|0;f[l>>2]=d;b=b+-1|0}while((b|0)!=0);return}e=f[a>>2]|0;h=(d-e|0)/12|0;j=h+b|0;if(j>>>0>357913941)KEb(a);i=(g-e|0)/12|0;d=i<<1;d=i>>>0<178956970?(d>>>0<j>>>0?j:d):357913941;do if(d)if(d>>>0>357913941){l=mb(8)|0;RDb(l,238482);f[l>>2]=144484;qb(l|0,84192,1464)}else{i=LDb(d*12|0)|0;break}else i=0;while(0);g=i+(h*12|0)|0;h=i+(d*12|0)|0;d=g;while(1){f[d>>2]=f[c>>2];f[d+4>>2]=f[c+4>>2];f[d+8>>2]=f[c+8>>2];b=b+-1|0;if(!b)break;else d=d+12|0}b=f[a>>2]|0;e=(f[l>>2]|0)-b|0;d=g+(((e|0)/-12|0)*12|0)|0;if((e|0)>0)gGb(d|0,b|0,e|0)|0;f[a>>2]=d;f[l>>2]=i+(j*12|0);f[k>>2]=h;if(!b)return;NDb(b);return}function dRa(a){a=a|0;var b=0;f[a+72>>2]=131656;b=f[a+76>>2]|0;if(!b){xx(a);return}f[a+80>>2]=b;NDb(b);xx(a);return}function eRa(a){a=a|0;var b=0;f[a+72>>2]=131656;b=f[a+76>>2]|0;if(b|0){f[a+80>>2]=b;NDb(b)}xx(a);NDb(a);return}function fRa(a){a=a|0;var c=0;a=LDb(88)|0;CCa(a,1);c=a+12|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[a+24>>2]=2;c=a+28|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;f[c+16>>2]=0;f[c+20>>2]=0;f[a+52>>2]=25;f[a+56>>2]=3;f[a+60>>2]=5125;f[a+64>>2]=-1;b[a+68>>0]=0;b[a+69>>0]=0;f[a+76>>2]=0;f[a+80>>2]=0;f[a+84>>2]=0;f[a>>2]=131128;f[a+72>>2]=131368;return a|0}function gRa(a,b){a=a|0;b=b|0;var c=0;c=LDb(88)|0;zRa(c,a,b);return c|0}function hRa(a){a=a|0;var b=0;b=f[a+76>>2]|0;return ((b|0)==(f[a+80>>2]|0)?0:b)|0}function iRa(a){a=a|0;return (f[a+80>>2]|0)-(f[a+76>>2]|0)|0}function jRa(a,b){a=a|0;b=b|0;Vk[f[(f[b>>2]|0)+108>>2]&1023](b,a);return}function kRa(a,b){a=a|0;b=b|0;Vk[f[(f[b>>2]|0)+108>>2]&1023](b,a);return}function lRa(a,b,c){a=a|0;b=b|0;c=c|0;Vk[f[(f[c>>2]|0)+104>>2]&1023](c,(f[a+76>>2]|0)+(b*12|0)|0);return}function mRa(a,b,c){a=a|0;b=b|0;c=c|0;Vk[f[(f[c>>2]|0)+104>>2]&1023](c,(f[a+76>>2]|0)+(b*12|0)|0);return}function nRa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=f[a+76>>2]|0;a=f[e+(b*12|0)>>2]|0;d=f[e+(c*12|0)>>2]|0;if(a>>>0<d>>>0){c=-1;return c|0}if(a>>>0<=d>>>0){a=f[e+(b*12|0)+4>>2]|0;d=f[e+(c*12|0)+4>>2]|0;if(a>>>0<d>>>0){c=-1;return c|0}if(a>>>0<=d>>>0?(f[e+(b*12|0)+8>>2]|0)>>>0<(f[e+(c*12|0)+8>>2]|0)>>>0:0){c=-1;return c|0}a=f[e+(c*12|0)+4>>2]|0;d=f[e+(b*12|0)+4>>2]|0;if(a>>>0>=d>>>0){if(a>>>0>d>>>0){c=0;return c|0}if((f[e+(c*12|0)+8>>2]|0)>>>0>=(f[e+(b*12|0)+8>>2]|0)>>>0){c=0;return c|0}}}c=1;return c|0}function oRa(a){a=a|0;return 12}function pRa(a,b){a=a|0;b=b|0;var c=0;c=f[a+76>>2]|0;return ((c|0)==(f[a+80>>2]|0)?0:c+(b*12|0)|0)|0}function qRa(a){a=a|0;return ((f[a+80>>2]|0)-(f[a+76>>2]|0)|0)/12|0|0}function rRa(a,b){a=a|0;b=b|0;yRa(a+76|0,b);return}function sRa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;h=u;u=u+16|0;e=h;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;g=a+76|0;c=a+80|0;d=f[g>>2]|0;a=((f[c>>2]|0)-d|0)/12|0;if(a>>>0<b>>>0){cRa(g,b-a|0,e);u=h;return}if(a>>>0<=b>>>0){u=h;return}f[c>>2]=d+(b*12|0);u=h;return}function tRa(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=u;u=u+16|0;g=o;f[g>>2]=131656;h=g+4|0;i=a+76|0;f[h>>2]=0;j=g+8|0;f[j>>2]=0;k=g+12|0;f[k>>2]=0;l=a+80|0;m=f[l>>2]|0;n=f[i>>2]|0;e=m-n|0;b=(e|0)/12|0;if(e){if(b>>>0>357913941)KEb(h);c=LDb(e)|0;f[j>>2]=c;f[h>>2]=c;b=c+(b*12|0)|0;f[k>>2]=b;d=c;if((e|0)>0){gGb(c|0,n|0,e|0)|0;c=c+(((e>>>0)/12|0)*12|0)|0;f[j>>2]=c;e=d}else{e=d;c=d}}else{e=0;c=0;b=0}f[h>>2]=n;f[i>>2]=e;f[j>>2]=m;f[l>>2]=c;m=a+84|0;f[k>>2]=f[m>>2];f[m>>2]=b;f[g>>2]=131656;if(!n){u=o;return}f[j>>2]=n;NDb(n);u=o;return}function uRa(a){a=a|0;var b=0;a=a+-72|0;f[a+72>>2]=131656;b=f[a+76>>2]|0;if(!b){xx(a);return}f[a+80>>2]=b;NDb(b);xx(a);return}function vRa(a){a=a|0;var b=0;a=a+-72|0;f[a+72>>2]=131656;b=f[a+76>>2]|0;if(b|0){f[a+80>>2]=b;NDb(b)}xx(a);NDb(a);return}function wRa(a){a=a|0;var b=0;f[a>>2]=131656;b=f[a+4>>2]|0;if(!b)return;f[a+8>>2]=b;NDb(b);return}function xRa(a){a=a|0;var b=0;f[a>>2]=131656;b=f[a+4>>2]|0;if(!b){NDb(a);return}f[a+8>>2]=b;NDb(b);NDb(a);return}function yRa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0;g=a+8|0;i=f[a>>2]|0;if((((f[g>>2]|0)-i|0)/12|0)>>>0>=b>>>0)return;j=a+4|0;if(b>>>0>357913941){j=mb(8)|0;RDb(j,238482);f[j>>2]=144484;qb(j|0,84192,1464)}c=(f[j>>2]|0)-i|0;d=LDb(b*12|0)|0;e=d+(((c|0)/12|0)*12|0)|0;h=e+(((c|0)/-12|0)*12|0)|0;if((c|0)>0)gGb(h|0,i|0,c|0)|0;f[a>>2]=h;f[j>>2]=e;f[g>>2]=d+(b*12|0);if(!i)return;NDb(i);return}function zRa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0;nw(a,c,d);f[a>>2]=88884;f[a+32>>2]=0;f[a+36>>2]=0;f[a+40>>2]=0;d=f[c+44>>2]|0;f[a+44>>2]=d;if(d|0){l=d+(f[(f[d>>2]|0)+-12>>2]|0)+8|0;f[l>>2]=(f[l>>2]|0)+1}f[a+48>>2]=0;f[a>>2]=97480;f[a+52>>2]=f[c+52>>2];f[a+56>>2]=f[c+56>>2];f[a+60>>2]=f[c+60>>2];f[a+64>>2]=f[c+64>>2];b[a+68>>0]=b[c+68>>0]|0;b[a+69>>0]=b[c+69>>0]|0;k=a+72|0;f[k>>2]=131656;e=a+76|0;g=c+76|0;f[e>>2]=0;l=a+80|0;f[l>>2]=0;h=a+84|0;f[h>>2]=0;i=c+80|0;d=(f[i>>2]|0)-(f[g>>2]|0)|0;c=(d|0)/12|0;if(!d){f[a>>2]=131128;f[k>>2]=131368;return}if(c>>>0>357913941)KEb(e);j=LDb(d)|0;f[l>>2]=j;f[e>>2]=j;f[h>>2]=j+(c*12|0);c=f[g>>2]|0;d=(f[i>>2]|0)-c|0;if((d|0)<=0){f[a>>2]=131128;f[k>>2]=131368;return}gGb(j|0,c|0,d|0)|0;f[l>>2]=j+(((d>>>0)/12|0)*12|0);f[a>>2]=131128;f[k>>2]=131368;return}function ARa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;k=a+8|0;g=f[k>>2]|0;l=a+4|0;d=f[l>>2]|0;if(g-d>>3>>>0>=b>>>0){do{j=c;a=f[j+4>>2]|0;k=d;f[k>>2]=f[j>>2];f[k+4>>2]=a;d=(f[l>>2]|0)+8|0;f[l>>2]=d;b=b+-1|0}while((b|0)!=0);return}e=f[a>>2]|0;h=d-e>>3;j=h+b|0;if(j>>>0>536870911)KEb(a);i=g-e|0;d=i>>2;d=i>>3>>>0<268435455?(d>>>0<j>>>0?j:d):536870911;do if(d)if(d>>>0>536870911){l=mb(8)|0;RDb(l,238482);f[l>>2]=144484;qb(l|0,84192,1464)}else{i=LDb(d<<3)|0;break}else i=0;while(0);g=i+(h<<3)|0;h=i+(d<<3)|0;d=g;while(1){n=c;m=f[n+4>>2]|0;e=d;f[e>>2]=f[n>>2];f[e+4>>2]=m;b=b+-1|0;if(!b)break;else d=d+8|0}b=f[a>>2]|0;e=(f[l>>2]|0)-b|0;d=g+(0-(e>>3)<<3)|0;if((e|0)>0)gGb(d|0,b|0,e|0)|0;f[a>>2]=d;f[l>>2]=i+(j<<3);f[k>>2]=h;if(!b)return;NDb(b);return}function BRa(a){a=a|0;var b=0;f[a+72>>2]=131672;b=f[a+76>>2]|0;if(!b){xx(a);return}f[a+80>>2]=b;NDb(b);xx(a);return}function CRa(a){a=a|0;var b=0;f[a+72>>2]=131672;b=f[a+76>>2]|0;if(b|0){f[a+80>>2]=b;NDb(b)}xx(a);NDb(a);return}function DRa(a){a=a|0;var c=0;a=LDb(88)|0;CCa(a,1);c=a+12|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[a+24>>2]=2;c=a+28|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;f[c+16>>2]=0;f[c+20>>2]=0;f[a+52>>2]=24;f[a+56>>2]=2;f[a+60>>2]=5125;f[a+64>>2]=-1;b[a+68>>0]=0;b[a+69>>0]=0;f[a+76>>2]=0;f[a+80>>2]=0;f[a+84>>2]=0;f[a>>2]=130872;f[a+72>>2]=131112;return a|0}function ERa(a,b){a=a|0;b=b|0;var c=0;c=LDb(88)|0;XRa(c,a,b);return c|0}function FRa(a){a=a|0;var b=0;b=f[a+76>>2]|0;return ((b|0)==(f[a+80>>2]|0)?0:b)|0}function GRa(a){a=a|0;return (f[a+80>>2]|0)-(f[a+76>>2]|0)|0}function HRa(a,b){a=a|0;b=b|0;Vk[f[(f[b>>2]|0)+104>>2]&1023](b,a);return}function IRa(a,b){a=a|0;b=b|0;Vk[f[(f[b>>2]|0)+104>>2]&1023](b,a);return}function JRa(a,b,c){a=a|0;b=b|0;c=c|0;Vk[f[(f[c>>2]|0)+100>>2]&1023](c,(f[a+76>>2]|0)+(b<<3)|0);return}function KRa(a,b,c){a=a|0;b=b|0;c=c|0;Vk[f[(f[c>>2]|0)+100>>2]&1023](c,(f[a+76>>2]|0)+(b<<3)|0);return}function LRa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;a=f[a+76>>2]|0;d=f[a+(b<<3)>>2]|0;e=f[a+(c<<3)>>2]|0;if(d>>>0<e>>>0){c=-1;return c|0}if(d>>>0<=e>>>0){if((f[a+(b<<3)+4>>2]|0)>>>0<(f[a+(c<<3)+4>>2]|0)>>>0){c=-1;return c|0}if((f[a+(c<<3)+4>>2]|0)>>>0>=(f[a+(b<<3)+4>>2]|0)>>>0){c=0;return c|0}}c=1;return c|0}function MRa(a){a=a|0;return 8}function NRa(a,b){a=a|0;b=b|0;var c=0;c=f[a+76>>2]|0;return ((c|0)==(f[a+80>>2]|0)?0:c+(b<<3)|0)|0}function ORa(a){a=a|0;return (f[a+80>>2]|0)-(f[a+76>>2]|0)>>3|0}function PRa(a,b){a=a|0;b=b|0;WRa(a+76|0,b);return}function QRa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;h=u;u=u+16|0;e=h;f[e>>2]=0;f[e+4>>2]=0;g=a+76|0;a=a+80|0;c=f[g>>2]|0;d=(f[a>>2]|0)-c>>3;if(d>>>0<b>>>0){ARa(g,b-d|0,e);u=h;return}if(d>>>0<=b>>>0){u=h;return}f[a>>2]=c+(b<<3);u=h;return}function RRa(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=u;u=u+16|0;g=o;f[g>>2]=131672;h=g+4|0;i=a+76|0;f[h>>2]=0;j=g+8|0;f[j>>2]=0;k=g+12|0;f[k>>2]=0;l=a+80|0;m=f[l>>2]|0;n=f[i>>2]|0;e=m-n|0;b=e>>3;if(e){if(b>>>0>536870911)KEb(h);c=LDb(e)|0;f[j>>2]=c;f[h>>2]=c;b=c+(b<<3)|0;f[k>>2]=b;d=c;if((e|0)>0){p=c+(e>>>3<<3)|0;gGb(c|0,n|0,e|0)|0;f[j>>2]=p;e=d;c=p}else{e=d;c=d}}else{e=0;c=0;b=0}f[h>>2]=n;f[i>>2]=e;f[j>>2]=m;f[l>>2]=c;p=a+84|0;f[k>>2]=f[p>>2];f[p>>2]=b;f[g>>2]=131672;if(!n){u=o;return}f[j>>2]=n;NDb(n);u=o;return}function SRa(a){a=a|0;var b=0;a=a+-72|0;f[a+72>>2]=131672;b=f[a+76>>2]|0;if(!b){xx(a);return}f[a+80>>2]=b;NDb(b);xx(a);return}function TRa(a){a=a|0;var b=0;a=a+-72|0;f[a+72>>2]=131672;b=f[a+76>>2]|0;if(b|0){f[a+80>>2]=b;NDb(b)}xx(a);NDb(a);return}function URa(a){a=a|0;var b=0;f[a>>2]=131672;b=f[a+4>>2]|0;if(!b)return;f[a+8>>2]=b;NDb(b);return}function VRa(a){a=a|0;var b=0;f[a>>2]=131672;b=f[a+4>>2]|0;if(!b){NDb(a);return}f[a+8>>2]=b;NDb(b);NDb(a);return}function WRa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;e=a+8|0;g=f[a>>2]|0;if((f[e>>2]|0)-g>>3>>>0>=b>>>0)return;h=a+4|0;if(b>>>0>536870911){h=mb(8)|0;RDb(h,238482);f[h>>2]=144484;qb(h|0,84192,1464)}c=(f[h>>2]|0)-g|0;d=LDb(b<<3)|0;if((c|0)>0)gGb(d|0,g|0,c|0)|0;f[a>>2]=d;f[h>>2]=d+(c>>3<<3);f[e>>2]=d+(b<<3);if(!g)return;NDb(g);return}function XRa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0;nw(a,c,d);f[a>>2]=88884;f[a+32>>2]=0;f[a+36>>2]=0;f[a+40>>2]=0;d=f[c+44>>2]|0;f[a+44>>2]=d;if(d|0){l=d+(f[(f[d>>2]|0)+-12>>2]|0)+8|0;f[l>>2]=(f[l>>2]|0)+1}f[a+48>>2]=0;f[a>>2]=97480;f[a+52>>2]=f[c+52>>2];f[a+56>>2]=f[c+56>>2];f[a+60>>2]=f[c+60>>2];f[a+64>>2]=f[c+64>>2];b[a+68>>0]=b[c+68>>0]|0;b[a+69>>0]=b[c+69>>0]|0;k=a+72|0;f[k>>2]=131672;e=a+76|0;g=c+76|0;f[e>>2]=0;l=a+80|0;f[l>>2]=0;h=a+84|0;f[h>>2]=0;i=c+80|0;d=(f[i>>2]|0)-(f[g>>2]|0)|0;c=d>>3;if(!d){f[a>>2]=130872;f[k>>2]=131112;return}if(c>>>0>536870911)KEb(e);j=LDb(d)|0;f[l>>2]=j;f[e>>2]=j;f[h>>2]=j+(c<<3);c=f[g>>2]|0;d=(f[i>>2]|0)-c|0;if((d|0)<=0){f[a>>2]=130872;f[k>>2]=131112;return}gGb(j|0,c|0,d|0)|0;f[l>>2]=j+(d>>>3<<3);f[a>>2]=130872;f[k>>2]=131112;return}function YRa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;k=a+8|0;g=f[k>>2]|0;l=a+4|0;d=f[l>>2]|0;if(g-d>>4>>>0>=b>>>0){do{f[d>>2]=f[c>>2];f[d+4>>2]=f[c+4>>2];f[d+8>>2]=f[c+8>>2];f[d+12>>2]=f[c+12>>2];d=(f[l>>2]|0)+16|0;f[l>>2]=d;b=b+-1|0}while((b|0)!=0);return}e=f[a>>2]|0;h=d-e>>4;j=h+b|0;if(j>>>0>268435455)KEb(a);i=g-e|0;d=i>>3;d=i>>4>>>0<134217727?(d>>>0<j>>>0?j:d):268435455;do if(d)if(d>>>0>268435455){l=mb(8)|0;RDb(l,238482);f[l>>2]=144484;qb(l|0,84192,1464)}else{i=LDb(d<<4)|0;break}else i=0;while(0);g=i+(h<<4)|0;h=i+(d<<4)|0;d=g;while(1){f[d>>2]=f[c>>2];f[d+4>>2]=f[c+4>>2];f[d+8>>2]=f[c+8>>2];f[d+12>>2]=f[c+12>>2];b=b+-1|0;if(!b)break;else d=d+16|0}b=f[a>>2]|0;e=(f[l>>2]|0)-b|0;d=g+(0-(e>>4)<<4)|0;if((e|0)>0)gGb(d|0,b|0,e|0)|0;f[a>>2]=d;f[l>>2]=i+(j<<4);f[k>>2]=h;if(!b)return;NDb(b);return}function ZRa(a){a=a|0;var b=0;f[a+72>>2]=131688;b=f[a+76>>2]|0;if(!b){xx(a);return}f[a+80>>2]=b;NDb(b);xx(a);return}function _Ra(a){a=a|0;var b=0;f[a+72>>2]=131688;b=f[a+76>>2]|0;if(b|0){f[a+80>>2]=b;NDb(b)}xx(a);NDb(a);return}function $Ra(a){a=a|0;var c=0;a=LDb(88)|0;CCa(a,1);c=a+12|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[a+24>>2]=2;c=a+28|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;f[c+16>>2]=0;f[c+20>>2]=0;f[a+52>>2]=17;f[a+56>>2]=4;f[a+60>>2]=5124;f[a+64>>2]=-1;b[a+68>>0]=0;b[a+69>>0]=0;f[a+76>>2]=0;f[a+80>>2]=0;f[a+84>>2]=0;f[a>>2]=130616;f[a+72>>2]=130856;return a|0}function aSa(a,b){a=a|0;b=b|0;var c=0;c=LDb(88)|0;tSa(c,a,b);return c|0}function bSa(a){a=a|0;var b=0;b=f[a+76>>2]|0;return ((b|0)==(f[a+80>>2]|0)?0:b)|0}function cSa(a){a=a|0;return (f[a+80>>2]|0)-(f[a+76>>2]|0)|0}function dSa(a,b){a=a|0;b=b|0;Vk[f[(f[b>>2]|0)+76>>2]&1023](b,a);return}function eSa(a,b){a=a|0;b=b|0;Vk[f[(f[b>>2]|0)+76>>2]&1023](b,a);return}function fSa(a,b,c){a=a|0;b=b|0;c=c|0;Vk[f[(f[c>>2]|0)+72>>2]&1023](c,(f[a+76>>2]|0)+(b<<4)|0);return}function gSa(a,b,c){a=a|0;b=b|0;c=c|0;Vk[f[(f[c>>2]|0)+72>>2]&1023](c,(f[a+76>>2]|0)+(b<<4)|0);return}function hSa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=f[a+76>>2]|0;a=f[e+(b<<4)>>2]|0;d=f[e+(c<<4)>>2]|0;if((a|0)<(d|0)){c=-1;return c|0}if((a|0)<=(d|0)){a=f[e+(b<<4)+4>>2]|0;d=f[e+(c<<4)+4>>2]|0;if((a|0)<(d|0)){c=-1;return c|0}if((a|0)<=(d|0)){a=f[e+(b<<4)+8>>2]|0;d=f[e+(c<<4)+8>>2]|0;if((a|0)<(d|0)){c=-1;return c|0}if((a|0)<=(d|0)?(f[e+(b<<4)+12>>2]|0)<(f[e+(c<<4)+12>>2]|0):0){c=-1;return c|0}}a=f[e+(c<<4)+4>>2]|0;d=f[e+(b<<4)+4>>2]|0;if((a|0)>=(d|0)){if((a|0)>(d|0)){c=0;return c|0}a=f[e+(c<<4)+8>>2]|0;d=f[e+(b<<4)+8>>2]|0;if((a|0)>=(d|0)){if((a|0)>(d|0)){c=0;return c|0}if((f[e+(c<<4)+12>>2]|0)>=(f[e+(b<<4)+12>>2]|0)){c=0;return c|0}}}}c=1;return c|0}function iSa(a){a=a|0;return 16}function jSa(a,b){a=a|0;b=b|0;var c=0;c=f[a+76>>2]|0;return ((c|0)==(f[a+80>>2]|0)?0:c+(b<<4)|0)|0}function kSa(a){a=a|0;return (f[a+80>>2]|0)-(f[a+76>>2]|0)>>4|0}function lSa(a,b){a=a|0;b=b|0;sSa(a+76|0,b);return}function mSa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;h=u;u=u+16|0;e=h;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;f[e+12>>2]=0;g=a+76|0;a=a+80|0;c=f[g>>2]|0;d=(f[a>>2]|0)-c>>4;if(d>>>0<b>>>0){YRa(g,b-d|0,e);u=h;return}if(d>>>0<=b>>>0){u=h;return}f[a>>2]=c+(b<<4);u=h;return}function nSa(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=u;u=u+16|0;g=o;f[g>>2]=131688;h=g+4|0;i=a+76|0;f[h>>2]=0;j=g+8|0;f[j>>2]=0;k=g+12|0;f[k>>2]=0;l=a+80|0;m=f[l>>2]|0;n=f[i>>2]|0;e=m-n|0;b=e>>4;if(e){if(b>>>0>268435455)KEb(h);c=LDb(e)|0;f[j>>2]=c;f[h>>2]=c;b=c+(b<<4)|0;f[k>>2]=b;d=c;if((e|0)>0){p=c+(e>>>4<<4)|0;gGb(c|0,n|0,e|0)|0;f[j>>2]=p;e=d;c=p}else{e=d;c=d}}else{e=0;c=0;b=0}f[h>>2]=n;f[i>>2]=e;f[j>>2]=m;f[l>>2]=c;p=a+84|0;f[k>>2]=f[p>>2];f[p>>2]=b;f[g>>2]=131688;if(!n){u=o;return}f[j>>2]=n;NDb(n);u=o;return}function oSa(a){a=a|0;var b=0;a=a+-72|0;f[a+72>>2]=131688;b=f[a+76>>2]|0;if(!b){xx(a);return}f[a+80>>2]=b;NDb(b);xx(a);return}function pSa(a){a=a|0;var b=0;a=a+-72|0;f[a+72>>2]=131688;b=f[a+76>>2]|0;if(b|0){f[a+80>>2]=b;NDb(b)}xx(a);NDb(a);return}function qSa(a){a=a|0;var b=0;f[a>>2]=131688;b=f[a+4>>2]|0;if(!b)return;f[a+8>>2]=b;NDb(b);return}function rSa(a){a=a|0;var b=0;f[a>>2]=131688;b=f[a+4>>2]|0;if(!b){NDb(a);return}f[a+8>>2]=b;NDb(b);NDb(a);return}function sSa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;e=a+8|0;g=f[a>>2]|0;if((f[e>>2]|0)-g>>4>>>0>=b>>>0)return;h=a+4|0;if(b>>>0>268435455){h=mb(8)|0;RDb(h,238482);f[h>>2]=144484;qb(h|0,84192,1464)}c=(f[h>>2]|0)-g|0;d=LDb(b<<4)|0;if((c|0)>0)gGb(d|0,g|0,c|0)|0;f[a>>2]=d;f[h>>2]=d+(c>>4<<4);f[e>>2]=d+(b<<4);if(!g)return;NDb(g);return}function tSa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0;nw(a,c,d);f[a>>2]=88884;f[a+32>>2]=0;f[a+36>>2]=0;f[a+40>>2]=0;d=f[c+44>>2]|0;f[a+44>>2]=d;if(d|0){l=d+(f[(f[d>>2]|0)+-12>>2]|0)+8|0;f[l>>2]=(f[l>>2]|0)+1}f[a+48>>2]=0;f[a>>2]=97480;f[a+52>>2]=f[c+52>>2];f[a+56>>2]=f[c+56>>2];f[a+60>>2]=f[c+60>>2];f[a+64>>2]=f[c+64>>2];b[a+68>>0]=b[c+68>>0]|0;b[a+69>>0]=b[c+69>>0]|0;k=a+72|0;f[k>>2]=131688;e=a+76|0;g=c+76|0;f[e>>2]=0;l=a+80|0;f[l>>2]=0;h=a+84|0;f[h>>2]=0;i=c+80|0;d=(f[i>>2]|0)-(f[g>>2]|0)|0;c=d>>4;if(!d){f[a>>2]=130616;f[k>>2]=130856;return}if(c>>>0>268435455)KEb(e);j=LDb(d)|0;f[l>>2]=j;f[e>>2]=j;f[h>>2]=j+(c<<4);c=f[g>>2]|0;d=(f[i>>2]|0)-c|0;if((d|0)<=0){f[a>>2]=130616;f[k>>2]=130856;return}gGb(j|0,c|0,d|0)|0;f[l>>2]=j+(d>>>4<<4);f[a>>2]=130616;f[k>>2]=130856;return}function uSa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;k=a+8|0;g=f[k>>2]|0;l=a+4|0;d=f[l>>2]|0;if(((g-d|0)/12|0)>>>0>=b>>>0){do{f[d>>2]=f[c>>2];f[d+4>>2]=f[c+4>>2];f[d+8>>2]=f[c+8>>2];d=(f[l>>2]|0)+12|0;f[l>>2]=d;b=b+-1|0}while((b|0)!=0);return}e=f[a>>2]|0;h=(d-e|0)/12|0;j=h+b|0;if(j>>>0>357913941)KEb(a);i=(g-e|0)/12|0;d=i<<1;d=i>>>0<178956970?(d>>>0<j>>>0?j:d):357913941;do if(d)if(d>>>0>357913941){l=mb(8)|0;RDb(l,238482);f[l>>2]=144484;qb(l|0,84192,1464)}else{i=LDb(d*12|0)|0;break}else i=0;while(0);g=i+(h*12|0)|0;h=i+(d*12|0)|0;d=g;while(1){f[d>>2]=f[c>>2];f[d+4>>2]=f[c+4>>2];f[d+8>>2]=f[c+8>>2];b=b+-1|0;if(!b)break;else d=d+12|0}b=f[a>>2]|0;e=(f[l>>2]|0)-b|0;d=g+(((e|0)/-12|0)*12|0)|0;if((e|0)>0)gGb(d|0,b|0,e|0)|0;f[a>>2]=d;f[l>>2]=i+(j*12|0);f[k>>2]=h;if(!b)return;NDb(b);return}function vSa(a){a=a|0;var b=0;f[a+72>>2]=131704;b=f[a+76>>2]|0;if(!b){xx(a);return}f[a+80>>2]=b;NDb(b);xx(a);return}function wSa(a){a=a|0;var b=0;f[a+72>>2]=131704;b=f[a+76>>2]|0;if(b|0){f[a+80>>2]=b;NDb(b)}xx(a);NDb(a);return}function xSa(a){a=a|0;var c=0;a=LDb(88)|0;CCa(a,1);c=a+12|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[a+24>>2]=2;c=a+28|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;f[c+16>>2]=0;f[c+20>>2]=0;f[a+52>>2]=16;f[a+56>>2]=3;f[a+60>>2]=5124;f[a+64>>2]=-1;b[a+68>>0]=0;b[a+69>>0]=0;f[a+76>>2]=0;f[a+80>>2]=0;f[a+84>>2]=0;f[a>>2]=130360;f[a+72>>2]=130600;return a|0}function ySa(a,b){a=a|0;b=b|0;var c=0;c=LDb(88)|0;RSa(c,a,b);return c|0}function zSa(a){a=a|0;var b=0;b=f[a+76>>2]|0;return ((b|0)==(f[a+80>>2]|0)?0:b)|0}function ASa(a){a=a|0;return (f[a+80>>2]|0)-(f[a+76>>2]|0)|0}function BSa(a,b){a=a|0;b=b|0;Vk[f[(f[b>>2]|0)+72>>2]&1023](b,a);return}function CSa(a,b){a=a|0;b=b|0;Vk[f[(f[b>>2]|0)+72>>2]&1023](b,a);return}function DSa(a,b,c){a=a|0;b=b|0;c=c|0;Vk[f[(f[c>>2]|0)+68>>2]&1023](c,(f[a+76>>2]|0)+(b*12|0)|0);return}function ESa(a,b,c){a=a|0;b=b|0;c=c|0;Vk[f[(f[c>>2]|0)+68>>2]&1023](c,(f[a+76>>2]|0)+(b*12|0)|0);return}function FSa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=f[a+76>>2]|0;a=f[e+(b*12|0)>>2]|0;d=f[e+(c*12|0)>>2]|0;if((a|0)<(d|0)){c=-1;return c|0}if((a|0)<=(d|0)){a=f[e+(b*12|0)+4>>2]|0;d=f[e+(c*12|0)+4>>2]|0;if((a|0)<(d|0)){c=-1;return c|0}if((a|0)<=(d|0)?(f[e+(b*12|0)+8>>2]|0)<(f[e+(c*12|0)+8>>2]|0):0){c=-1;return c|0}a=f[e+(c*12|0)+4>>2]|0;d=f[e+(b*12|0)+4>>2]|0;if((a|0)>=(d|0)){if((a|0)>(d|0)){c=0;return c|0}if((f[e+(c*12|0)+8>>2]|0)>=(f[e+(b*12|0)+8>>2]|0)){c=0;return c|0}}}c=1;return c|0}function GSa(a){a=a|0;return 12}function HSa(a,b){a=a|0;b=b|0;var c=0;c=f[a+76>>2]|0;return ((c|0)==(f[a+80>>2]|0)?0:c+(b*12|0)|0)|0}function ISa(a){a=a|0;return ((f[a+80>>2]|0)-(f[a+76>>2]|0)|0)/12|0|0}function JSa(a,b){a=a|0;b=b|0;QSa(a+76|0,b);return}function KSa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;h=u;u=u+16|0;e=h;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;g=a+76|0;c=a+80|0;d=f[g>>2]|0;a=((f[c>>2]|0)-d|0)/12|0;if(a>>>0<b>>>0){uSa(g,b-a|0,e);u=h;return}if(a>>>0<=b>>>0){u=h;return}f[c>>2]=d+(b*12|0);u=h;return}function LSa(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=u;u=u+16|0;g=o;f[g>>2]=131704;h=g+4|0;i=a+76|0;f[h>>2]=0;j=g+8|0;f[j>>2]=0;k=g+12|0;f[k>>2]=0;l=a+80|0;m=f[l>>2]|0;n=f[i>>2]|0;e=m-n|0;b=(e|0)/12|0;if(e){if(b>>>0>357913941)KEb(h);c=LDb(e)|0;f[j>>2]=c;f[h>>2]=c;b=c+(b*12|0)|0;f[k>>2]=b;d=c;if((e|0)>0){gGb(c|0,n|0,e|0)|0;c=c+(((e>>>0)/12|0)*12|0)|0;f[j>>2]=c;e=d}else{e=d;c=d}}else{e=0;c=0;b=0}f[h>>2]=n;f[i>>2]=e;f[j>>2]=m;f[l>>2]=c;m=a+84|0;f[k>>2]=f[m>>2];f[m>>2]=b;f[g>>2]=131704;if(!n){u=o;return}f[j>>2]=n;NDb(n);u=o;return}function MSa(a){a=a|0;var b=0;a=a+-72|0;f[a+72>>2]=131704;b=f[a+76>>2]|0;if(!b){xx(a);return}f[a+80>>2]=b;NDb(b);xx(a);return}function NSa(a){a=a|0;var b=0;a=a+-72|0;f[a+72>>2]=131704;b=f[a+76>>2]|0;if(b|0){f[a+80>>2]=b;NDb(b)}xx(a);NDb(a);return}function OSa(a){a=a|0;var b=0;f[a>>2]=131704;b=f[a+4>>2]|0;if(!b)return;f[a+8>>2]=b;NDb(b);return}function PSa(a){a=a|0;var b=0;f[a>>2]=131704;b=f[a+4>>2]|0;if(!b){NDb(a);return}f[a+8>>2]=b;NDb(b);NDb(a);return}function QSa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0;g=a+8|0;i=f[a>>2]|0;if((((f[g>>2]|0)-i|0)/12|0)>>>0>=b>>>0)return;j=a+4|0;if(b>>>0>357913941){j=mb(8)|0;RDb(j,238482);f[j>>2]=144484;qb(j|0,84192,1464)}c=(f[j>>2]|0)-i|0;d=LDb(b*12|0)|0;e=d+(((c|0)/12|0)*12|0)|0;h=e+(((c|0)/-12|0)*12|0)|0;if((c|0)>0)gGb(h|0,i|0,c|0)|0;f[a>>2]=h;f[j>>2]=e;f[g>>2]=d+(b*12|0);if(!i)return;NDb(i);return}function RSa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0;nw(a,c,d);f[a>>2]=88884;f[a+32>>2]=0;f[a+36>>2]=0;f[a+40>>2]=0;d=f[c+44>>2]|0;f[a+44>>2]=d;if(d|0){l=d+(f[(f[d>>2]|0)+-12>>2]|0)+8|0;f[l>>2]=(f[l>>2]|0)+1}f[a+48>>2]=0;f[a>>2]=97480;f[a+52>>2]=f[c+52>>2];f[a+56>>2]=f[c+56>>2];f[a+60>>2]=f[c+60>>2];f[a+64>>2]=f[c+64>>2];b[a+68>>0]=b[c+68>>0]|0;b[a+69>>0]=b[c+69>>0]|0;k=a+72|0;f[k>>2]=131704;e=a+76|0;g=c+76|0;f[e>>2]=0;l=a+80|0;f[l>>2]=0;h=a+84|0;f[h>>2]=0;i=c+80|0;d=(f[i>>2]|0)-(f[g>>2]|0)|0;c=(d|0)/12|0;if(!d){f[a>>2]=130360;f[k>>2]=130600;return}if(c>>>0>357913941)KEb(e);j=LDb(d)|0;f[l>>2]=j;f[e>>2]=j;f[h>>2]=j+(c*12|0);c=f[g>>2]|0;d=(f[i>>2]|0)-c|0;if((d|0)<=0){f[a>>2]=130360;f[k>>2]=130600;return}gGb(j|0,c|0,d|0)|0;f[l>>2]=j+(((d>>>0)/12|0)*12|0);f[a>>2]=130360;f[k>>2]=130600;return}function SSa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;k=a+8|0;g=f[k>>2]|0;l=a+4|0;d=f[l>>2]|0;if(g-d>>3>>>0>=b>>>0){do{j=c;a=f[j+4>>2]|0;k=d;f[k>>2]=f[j>>2];f[k+4>>2]=a;d=(f[l>>2]|0)+8|0;f[l>>2]=d;b=b+-1|0}while((b|0)!=0);return}e=f[a>>2]|0;h=d-e>>3;j=h+b|0;if(j>>>0>536870911)KEb(a);i=g-e|0;d=i>>2;d=i>>3>>>0<268435455?(d>>>0<j>>>0?j:d):536870911;do if(d)if(d>>>0>536870911){l=mb(8)|0;RDb(l,238482);f[l>>2]=144484;qb(l|0,84192,1464)}else{i=LDb(d<<3)|0;break}else i=0;while(0);g=i+(h<<3)|0;h=i+(d<<3)|0;d=g;while(1){n=c;m=f[n+4>>2]|0;e=d;f[e>>2]=f[n>>2];f[e+4>>2]=m;b=b+-1|0;if(!b)break;else d=d+8|0}b=f[a>>2]|0;e=(f[l>>2]|0)-b|0;d=g+(0-(e>>3)<<3)|0;if((e|0)>0)gGb(d|0,b|0,e|0)|0;f[a>>2]=d;f[l>>2]=i+(j<<3);f[k>>2]=h;if(!b)return;NDb(b);return}function TSa(a){a=a|0;var b=0;f[a+72>>2]=131720;b=f[a+76>>2]|0;if(!b){xx(a);return}f[a+80>>2]=b;NDb(b);xx(a);return}function USa(a){a=a|0;var b=0;f[a+72>>2]=131720;b=f[a+76>>2]|0;if(b|0){f[a+80>>2]=b;NDb(b)}xx(a);NDb(a);return}function VSa(a){a=a|0;var c=0;a=LDb(88)|0;CCa(a,1);c=a+12|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[a+24>>2]=2;c=a+28|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;f[c+16>>2]=0;f[c+20>>2]=0;f[a+52>>2]=15;f[a+56>>2]=2;f[a+60>>2]=5124;f[a+64>>2]=-1;b[a+68>>0]=0;b[a+69>>0]=0;f[a+76>>2]=0;f[a+80>>2]=0;f[a+84>>2]=0;f[a>>2]=130104;f[a+72>>2]=130344;return a|0}function WSa(a,b){a=a|0;b=b|0;var c=0;c=LDb(88)|0;nTa(c,a,b);return c|0}function XSa(a){a=a|0;var b=0;b=f[a+76>>2]|0;return ((b|0)==(f[a+80>>2]|0)?0:b)|0}function YSa(a){a=a|0;return (f[a+80>>2]|0)-(f[a+76>>2]|0)|0}function ZSa(a,b){a=a|0;b=b|0;Vk[f[(f[b>>2]|0)+68>>2]&1023](b,a);return}function _Sa(a,b){a=a|0;b=b|0;Vk[f[(f[b>>2]|0)+68>>2]&1023](b,a);return}function $Sa(a,b,c){a=a|0;b=b|0;c=c|0;Vk[f[(f[c>>2]|0)+64>>2]&1023](c,(f[a+76>>2]|0)+(b<<3)|0);return}function aTa(a,b,c){a=a|0;b=b|0;c=c|0;Vk[f[(f[c>>2]|0)+64>>2]&1023](c,(f[a+76>>2]|0)+(b<<3)|0);return}function bTa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;a=f[a+76>>2]|0;d=f[a+(b<<3)>>2]|0;e=f[a+(c<<3)>>2]|0;if((d|0)<(e|0)){c=-1;return c|0}if((d|0)<=(e|0)){if((f[a+(b<<3)+4>>2]|0)<(f[a+(c<<3)+4>>2]|0)){c=-1;return c|0}if((f[a+(c<<3)+4>>2]|0)>=(f[a+(b<<3)+4>>2]|0)){c=0;return c|0}}c=1;return c|0}function cTa(a){a=a|0;return 8}function dTa(a,b){a=a|0;b=b|0;var c=0;c=f[a+76>>2]|0;return ((c|0)==(f[a+80>>2]|0)?0:c+(b<<3)|0)|0}function eTa(a){a=a|0;return (f[a+80>>2]|0)-(f[a+76>>2]|0)>>3|0}function fTa(a,b){a=a|0;b=b|0;mTa(a+76|0,b);return}function gTa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;h=u;u=u+16|0;e=h;f[e>>2]=0;f[e+4>>2]=0;g=a+76|0;a=a+80|0;c=f[g>>2]|0;d=(f[a>>2]|0)-c>>3;if(d>>>0<b>>>0){SSa(g,b-d|0,e);u=h;return}if(d>>>0<=b>>>0){u=h;return}f[a>>2]=c+(b<<3);u=h;return}function hTa(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=u;u=u+16|0;g=o;f[g>>2]=131720;h=g+4|0;i=a+76|0;f[h>>2]=0;j=g+8|0;f[j>>2]=0;k=g+12|0;f[k>>2]=0;l=a+80|0;m=f[l>>2]|0;n=f[i>>2]|0;e=m-n|0;b=e>>3;if(e){if(b>>>0>536870911)KEb(h);c=LDb(e)|0;f[j>>2]=c;f[h>>2]=c;b=c+(b<<3)|0;f[k>>2]=b;d=c;if((e|0)>0){p=c+(e>>>3<<3)|0;gGb(c|0,n|0,e|0)|0;f[j>>2]=p;e=d;c=p}else{e=d;c=d}}else{e=0;c=0;b=0}f[h>>2]=n;f[i>>2]=e;f[j>>2]=m;f[l>>2]=c;p=a+84|0;f[k>>2]=f[p>>2];f[p>>2]=b;f[g>>2]=131720;if(!n){u=o;return}f[j>>2]=n;NDb(n);u=o;return}function iTa(a){a=a|0;var b=0;a=a+-72|0;f[a+72>>2]=131720;b=f[a+76>>2]|0;if(!b){xx(a);return}f[a+80>>2]=b;NDb(b);xx(a);return}function jTa(a){a=a|0;var b=0;a=a+-72|0;f[a+72>>2]=131720;b=f[a+76>>2]|0;if(b|0){f[a+80>>2]=b;NDb(b)}xx(a);NDb(a);return}function kTa(a){a=a|0;var b=0;f[a>>2]=131720;b=f[a+4>>2]|0;if(!b)return;f[a+8>>2]=b;NDb(b);return}function lTa(a){a=a|0;var b=0;f[a>>2]=131720;b=f[a+4>>2]|0;if(!b){NDb(a);return}f[a+8>>2]=b;NDb(b);NDb(a);return}function mTa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;e=a+8|0;g=f[a>>2]|0;if((f[e>>2]|0)-g>>3>>>0>=b>>>0)return;h=a+4|0;if(b>>>0>536870911){h=mb(8)|0;RDb(h,238482);f[h>>2]=144484;qb(h|0,84192,1464)}c=(f[h>>2]|0)-g|0;d=LDb(b<<3)|0;if((c|0)>0)gGb(d|0,g|0,c|0)|0;f[a>>2]=d;f[h>>2]=d+(c>>3<<3);f[e>>2]=d+(b<<3);if(!g)return;NDb(g);return}function nTa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0;nw(a,c,d);f[a>>2]=88884;f[a+32>>2]=0;f[a+36>>2]=0;f[a+40>>2]=0;d=f[c+44>>2]|0;f[a+44>>2]=d;if(d|0){l=d+(f[(f[d>>2]|0)+-12>>2]|0)+8|0;f[l>>2]=(f[l>>2]|0)+1}f[a+48>>2]=0;f[a>>2]=97480;f[a+52>>2]=f[c+52>>2];f[a+56>>2]=f[c+56>>2];f[a+60>>2]=f[c+60>>2];f[a+64>>2]=f[c+64>>2];b[a+68>>0]=b[c+68>>0]|0;b[a+69>>0]=b[c+69>>0]|0;k=a+72|0;f[k>>2]=131720;e=a+76|0;g=c+76|0;f[e>>2]=0;l=a+80|0;f[l>>2]=0;h=a+84|0;f[h>>2]=0;i=c+80|0;d=(f[i>>2]|0)-(f[g>>2]|0)|0;c=d>>3;if(!d){f[a>>2]=130104;f[k>>2]=130344;return}if(c>>>0>536870911)KEb(e);j=LDb(d)|0;f[l>>2]=j;f[e>>2]=j;f[h>>2]=j+(c<<3);c=f[g>>2]|0;d=(f[i>>2]|0)-c|0;if((d|0)<=0){f[a>>2]=130104;f[k>>2]=130344;return}gGb(j|0,c|0,d|0)|0;f[l>>2]=j+(d>>>3<<3);f[a>>2]=130104;f[k>>2]=130344;return}function oTa(a,b,c){a=a|0;b=b|0;c=c|0;var e=0,g=0,h=0,i=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;m=a+8|0;h=f[m>>2]|0;n=a+4|0;e=f[n>>2]|0;if(h-e>>3>>>0>=b>>>0){do{a=c;k=a;k=j[k>>1]|j[k+2>>1]<<16;a=a+4|0;a=j[a>>1]|j[a+2>>1]<<16;m=e;l=m;d[l>>1]=k;d[l+2>>1]=k>>>16;m=m+4|0;d[m>>1]=a;d[m+2>>1]=a>>>16;e=(f[n>>2]|0)+8|0;f[n>>2]=e;b=b+-1|0}while((b|0)!=0);return}g=f[a>>2]|0;i=e-g>>3;l=i+b|0;if(l>>>0>536870911)KEb(a);k=h-g|0;e=k>>2;e=k>>3>>>0<268435455?(e>>>0<l>>>0?l:e):536870911;do if(e)if(e>>>0>536870911){n=mb(8)|0;RDb(n,238482);f[n>>2]=144484;qb(n|0,84192,1464)}else{k=LDb(e<<3)|0;break}else k=0;while(0);h=k+(i<<3)|0;i=k+(e<<3)|0;e=h;while(1){o=c;q=o;q=j[q>>1]|j[q+2>>1]<<16;o=o+4|0;o=j[o>>1]|j[o+2>>1]<<16;g=e;p=g;d[p>>1]=q;d[p+2>>1]=q>>>16;g=g+4|0;d[g>>1]=o;d[g+2>>1]=o>>>16;b=b+-1|0;if(!b)break;else e=e+8|0}b=f[a>>2]|0;g=(f[n>>2]|0)-b|0;e=h+(0-(g>>3)<<3)|0;if((g|0)>0)gGb(e|0,b|0,g|0)|0;f[a>>2]=e;f[n>>2]=k+(l<<3);f[m>>2]=i;if(!b)return;NDb(b);return}function pTa(a){a=a|0;var b=0;f[a+72>>2]=131736;b=f[a+76>>2]|0;if(!b){xx(a);return}f[a+80>>2]=b;NDb(b);xx(a);return}function qTa(a){a=a|0;var b=0;f[a+72>>2]=131736;b=f[a+76>>2]|0;if(b|0){f[a+80>>2]=b;NDb(b)}xx(a);NDb(a);return}function rTa(a){a=a|0;var c=0;a=LDb(88)|0;CCa(a,1);c=a+12|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[a+24>>2]=2;c=a+28|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;f[c+16>>2]=0;f[c+20>>2]=0;f[a+52>>2]=23;f[a+56>>2]=4;f[a+60>>2]=5123;f[a+64>>2]=-1;b[a+68>>0]=0;b[a+69>>0]=0;f[a+76>>2]=0;f[a+80>>2]=0;f[a+84>>2]=0;f[a>>2]=129848;f[a+72>>2]=130088;return a|0}function sTa(a,b){a=a|0;b=b|0;var c=0;c=LDb(88)|0;LTa(c,a,b);return c|0}function tTa(a){a=a|0;var b=0;b=f[a+76>>2]|0;return ((b|0)==(f[a+80>>2]|0)?0:b)|0}function uTa(a){a=a|0;return (f[a+80>>2]|0)-(f[a+76>>2]|0)|0}function vTa(a,b){a=a|0;b=b|0;Vk[f[(f[b>>2]|0)+100>>2]&1023](b,a);return}function wTa(a,b){a=a|0;b=b|0;Vk[f[(f[b>>2]|0)+100>>2]&1023](b,a);return}function xTa(a,b,c){a=a|0;b=b|0;c=c|0;Vk[f[(f[c>>2]|0)+96>>2]&1023](c,(f[a+76>>2]|0)+(b<<3)|0);return}function yTa(a,b,c){a=a|0;b=b|0;c=c|0;Vk[f[(f[c>>2]|0)+96>>2]&1023](c,(f[a+76>>2]|0)+(b<<3)|0);return}function zTa(a,b,c){a=a|0;b=b|0;c=c|0;var e=0,g=0;g=f[a+76>>2]|0;a=d[g+(b<<3)>>1]|0;e=d[g+(c<<3)>>1]|0;if((a&65535)<(e&65535)){c=-1;return c|0}if((a&65535)<=(e&65535)){a=d[g+(b<<3)+2>>1]|0;e=d[g+(c<<3)+2>>1]|0;if((a&65535)<(e&65535)){c=-1;return c|0}if((a&65535)<=(e&65535)){a=d[g+(b<<3)+4>>1]|0;e=d[g+(c<<3)+4>>1]|0;if((a&65535)<(e&65535)){c=-1;return c|0}if((a&65535)<=(e&65535)?(j[g+(b<<3)+6>>1]|0)<(j[g+(c<<3)+6>>1]|0):0){c=-1;return c|0}}a=d[g+(c<<3)+2>>1]|0;e=d[g+(b<<3)+2>>1]|0;if((a&65535)>=(e&65535)){if((a&65535)>(e&65535)){c=0;return c|0}a=d[g+(c<<3)+4>>1]|0;e=d[g+(b<<3)+4>>1]|0;if((a&65535)>=(e&65535)){if((a&65535)>(e&65535)){c=0;return c|0}if((j[g+(c<<3)+6>>1]|0)>=(j[g+(b<<3)+6>>1]|0)){c=0;return c|0}}}}c=1;return c|0}function ATa(a){a=a|0;return 8}function BTa(a,b){a=a|0;b=b|0;var c=0;c=f[a+76>>2]|0;return ((c|0)==(f[a+80>>2]|0)?0:c+(b<<3)|0)|0}function CTa(a){a=a|0;return (f[a+80>>2]|0)-(f[a+76>>2]|0)>>3|0}function DTa(a,b){a=a|0;b=b|0;KTa(a+76|0,b);return}function ETa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;h=u;u=u+16|0;e=h;g=e;f[g>>2]=0;f[g+4>>2]=0;g=a+76|0;d=a+80|0;a=f[g>>2]|0;c=(f[d>>2]|0)-a>>3;if(c>>>0<b>>>0){oTa(g,b-c|0,e);u=h;return}if(c>>>0<=b>>>0){u=h;return}f[d>>2]=a+(b<<3);u=h;return}function FTa(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=u;u=u+16|0;g=o;f[g>>2]=131736;h=g+4|0;i=a+76|0;f[h>>2]=0;j=g+8|0;f[j>>2]=0;k=g+12|0;f[k>>2]=0;l=a+80|0;m=f[l>>2]|0;n=f[i>>2]|0;e=m-n|0;b=e>>3;if(e){if(b>>>0>536870911)KEb(h);c=LDb(e)|0;f[j>>2]=c;f[h>>2]=c;b=c+(b<<3)|0;f[k>>2]=b;d=c;if((e|0)>0){p=c+(e>>>3<<3)|0;gGb(c|0,n|0,e|0)|0;f[j>>2]=p;e=d;c=p}else{e=d;c=d}}else{e=0;c=0;b=0}f[h>>2]=n;f[i>>2]=e;f[j>>2]=m;f[l>>2]=c;p=a+84|0;f[k>>2]=f[p>>2];f[p>>2]=b;f[g>>2]=131736;if(!n){u=o;return}f[j>>2]=n;NDb(n);u=o;return}function GTa(a){a=a|0;var b=0;a=a+-72|0;f[a+72>>2]=131736;b=f[a+76>>2]|0;if(!b){xx(a);return}f[a+80>>2]=b;NDb(b);xx(a);return}function HTa(a){a=a|0;var b=0;a=a+-72|0;f[a+72>>2]=131736;b=f[a+76>>2]|0;if(b|0){f[a+80>>2]=b;NDb(b)}xx(a);NDb(a);return}function ITa(a){a=a|0;var b=0;f[a>>2]=131736;b=f[a+4>>2]|0;if(!b)return;f[a+8>>2]=b;NDb(b);return}function JTa(a){a=a|0;var b=0;f[a>>2]=131736;b=f[a+4>>2]|0;if(!b){NDb(a);return}f[a+8>>2]=b;NDb(b);NDb(a);return}function KTa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;e=a+8|0;g=f[a>>2]|0;if((f[e>>2]|0)-g>>3>>>0>=b>>>0)return;h=a+4|0;if(b>>>0>536870911){h=mb(8)|0;RDb(h,238482);f[h>>2]=144484;qb(h|0,84192,1464)}c=(f[h>>2]|0)-g|0;d=LDb(b<<3)|0;if((c|0)>0)gGb(d|0,g|0,c|0)|0;f[a>>2]=d;f[h>>2]=d+(c>>3<<3);f[e>>2]=d+(b<<3);if(!g)return;NDb(g);return}function LTa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0;nw(a,c,d);f[a>>2]=88884;f[a+32>>2]=0;f[a+36>>2]=0;f[a+40>>2]=0;d=f[c+44>>2]|0;f[a+44>>2]=d;if(d|0){l=d+(f[(f[d>>2]|0)+-12>>2]|0)+8|0;f[l>>2]=(f[l>>2]|0)+1}f[a+48>>2]=0;f[a>>2]=97480;f[a+52>>2]=f[c+52>>2];f[a+56>>2]=f[c+56>>2];f[a+60>>2]=f[c+60>>2];f[a+64>>2]=f[c+64>>2];b[a+68>>0]=b[c+68>>0]|0;b[a+69>>0]=b[c+69>>0]|0;k=a+72|0;f[k>>2]=131736;e=a+76|0;g=c+76|0;f[e>>2]=0;l=a+80|0;f[l>>2]=0;h=a+84|0;f[h>>2]=0;i=c+80|0;d=(f[i>>2]|0)-(f[g>>2]|0)|0;c=d>>3;if(!d){f[a>>2]=129848;f[k>>2]=130088;return}if(c>>>0>536870911)KEb(e);j=LDb(d)|0;f[l>>2]=j;f[e>>2]=j;f[h>>2]=j+(c<<3);c=f[g>>2]|0;d=(f[i>>2]|0)-c|0;if((d|0)<=0){f[a>>2]=129848;f[k>>2]=130088;return}gGb(j|0,c|0,d|0)|0;f[l>>2]=j+(d>>>3<<3);f[a>>2]=129848;f[k>>2]=130088;return}function MTa(a,b,c){a=a|0;b=b|0;c=c|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=a+8|0;h=f[l>>2]|0;m=a+4|0;e=f[m>>2]|0;if(((h-e|0)/6|0)>>>0>=b>>>0){do{d[e>>1]=d[c>>1]|0;d[e+2>>1]=d[c+2>>1]|0;d[e+4>>1]=d[c+4>>1]|0;e=(f[m>>2]|0)+6|0;f[m>>2]=e;b=b+-1|0}while((b|0)!=0);return}g=f[a>>2]|0;i=(e-g|0)/6|0;k=i+b|0;if(k>>>0>715827882)KEb(a);j=(h-g|0)/6|0;e=j<<1;e=j>>>0<357913941?(e>>>0<k>>>0?k:e):715827882;do if(e)if(e>>>0>715827882){m=mb(8)|0;RDb(m,238482);f[m>>2]=144484;qb(m|0,84192,1464)}else{j=LDb(e*6|0)|0;break}else j=0;while(0);h=j+(i*6|0)|0;i=j+(e*6|0)|0;e=h;while(1){d[e>>1]=d[c>>1]|0;d[e+2>>1]=d[c+2>>1]|0;d[e+4>>1]=d[c+4>>1]|0;b=b+-1|0;if(!b)break;else e=e+6|0}b=f[a>>2]|0;g=(f[m>>2]|0)-b|0;e=h+(((g|0)/-6|0)*6|0)|0;if((g|0)>0)gGb(e|0,b|0,g|0)|0;f[a>>2]=e;f[m>>2]=j+(k*6|0);f[l>>2]=i;if(!b)return;NDb(b);return}function NTa(a){a=a|0;var b=0;f[a+72>>2]=131752;b=f[a+76>>2]|0;if(!b){xx(a);return}f[a+80>>2]=b;NDb(b);xx(a);return}function OTa(a){a=a|0;var b=0;f[a+72>>2]=131752;b=f[a+76>>2]|0;if(b|0){f[a+80>>2]=b;NDb(b)}xx(a);NDb(a);return}function PTa(a){a=a|0;var c=0;a=LDb(88)|0;CCa(a,1);c=a+12|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[a+24>>2]=2;c=a+28|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;f[c+16>>2]=0;f[c+20>>2]=0;f[a+52>>2]=22;f[a+56>>2]=3;f[a+60>>2]=5123;f[a+64>>2]=-1;b[a+68>>0]=0;b[a+69>>0]=0;f[a+76>>2]=0;f[a+80>>2]=0;f[a+84>>2]=0;f[a>>2]=129592;f[a+72>>2]=129832;return a|0}function QTa(a,b){a=a|0;b=b|0;var c=0;c=LDb(88)|0;hUa(c,a,b);return c|0}function RTa(a){a=a|0;var b=0;b=f[a+76>>2]|0;return ((b|0)==(f[a+80>>2]|0)?0:b)|0}function STa(a){a=a|0;return (f[a+80>>2]|0)-(f[a+76>>2]|0)|0}function TTa(a,b){a=a|0;b=b|0;Vk[f[(f[b>>2]|0)+96>>2]&1023](b,a);return}function UTa(a,b){a=a|0;b=b|0;Vk[f[(f[b>>2]|0)+96>>2]&1023](b,a);return}function VTa(a,b,c){a=a|0;b=b|0;c=c|0;Vk[f[(f[c>>2]|0)+92>>2]&1023](c,(f[a+76>>2]|0)+(b*6|0)|0);return}function WTa(a,b,c){a=a|0;b=b|0;c=c|0;Vk[f[(f[c>>2]|0)+92>>2]&1023](c,(f[a+76>>2]|0)+(b*6|0)|0);return}function XTa(a,b,c){a=a|0;b=b|0;c=c|0;var e=0,g=0;g=f[a+76>>2]|0;a=d[g+(b*6|0)>>1]|0;e=d[g+(c*6|0)>>1]|0;if((a&65535)<(e&65535)){c=-1;return c|0}if((a&65535)<=(e&65535)){a=d[g+(b*6|0)+2>>1]|0;e=d[g+(c*6|0)+2>>1]|0;if((a&65535)<(e&65535)){c=-1;return c|0}if((a&65535)<=(e&65535)?(j[g+(b*6|0)+4>>1]|0)<(j[g+(c*6|0)+4>>1]|0):0){c=-1;return c|0}a=d[g+(c*6|0)+2>>1]|0;e=d[g+(b*6|0)+2>>1]|0;if((a&65535)>=(e&65535)){if((a&65535)>(e&65535)){c=0;return c|0}if((j[g+(c*6|0)+4>>1]|0)>=(j[g+(b*6|0)+4>>1]|0)){c=0;return c|0}}}c=1;return c|0}function YTa(a){a=a|0;return 6}function ZTa(a,b){a=a|0;b=b|0;var c=0;c=f[a+76>>2]|0;return ((c|0)==(f[a+80>>2]|0)?0:c+(b*6|0)|0)|0}function _Ta(a){a=a|0;return ((f[a+80>>2]|0)-(f[a+76>>2]|0)|0)/6|0|0}function $Ta(a,b){a=a|0;b=b|0;gUa(a+76|0,b);return}function aUa(a,b){a=a|0;b=b|0;var c=0,e=0,g=0,h=0,i=0;i=u;u=u+16|0;g=i;d[g>>1]=0;d[g+2>>1]=0;d[g+4>>1]=0;h=a+76|0;c=a+80|0;e=f[h>>2]|0;a=((f[c>>2]|0)-e|0)/6|0;if(a>>>0<b>>>0){MTa(h,b-a|0,g);u=i;return}if(a>>>0<=b>>>0){u=i;return}f[c>>2]=e+(b*6|0);u=i;return}function bUa(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=u;u=u+16|0;g=o;f[g>>2]=131752;h=g+4|0;i=a+76|0;f[h>>2]=0;j=g+8|0;f[j>>2]=0;k=g+12|0;f[k>>2]=0;l=a+80|0;m=f[l>>2]|0;n=f[i>>2]|0;e=m-n|0;b=(e|0)/6|0;if(e){if(b>>>0>715827882)KEb(h);c=LDb(e)|0;f[j>>2]=c;f[h>>2]=c;b=c+(b*6|0)|0;f[k>>2]=b;d=c;if((e|0)>0){gGb(c|0,n|0,e|0)|0;c=c+(((e>>>0)/6|0)*6|0)|0;f[j>>2]=c;e=d}else{e=d;c=d}}else{e=0;c=0;b=0}f[h>>2]=n;f[i>>2]=e;f[j>>2]=m;f[l>>2]=c;m=a+84|0;f[k>>2]=f[m>>2];f[m>>2]=b;f[g>>2]=131752;if(!n){u=o;return}f[j>>2]=n;NDb(n);u=o;return}function cUa(a){a=a|0;var b=0;a=a+-72|0;f[a+72>>2]=131752;b=f[a+76>>2]|0;if(!b){xx(a);return}f[a+80>>2]=b;NDb(b);xx(a);return}function dUa(a){a=a|0;var b=0;a=a+-72|0;f[a+72>>2]=131752;b=f[a+76>>2]|0;if(b|0){f[a+80>>2]=b;NDb(b)}xx(a);NDb(a);return}function eUa(a){a=a|0;var b=0;f[a>>2]=131752;b=f[a+4>>2]|0;if(!b)return;f[a+8>>2]=b;NDb(b);return}function fUa(a){a=a|0;var b=0;f[a>>2]=131752;b=f[a+4>>2]|0;if(!b){NDb(a);return}f[a+8>>2]=b;NDb(b);NDb(a);return}function gUa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0;g=a+8|0;i=f[a>>2]|0;if((((f[g>>2]|0)-i|0)/6|0)>>>0>=b>>>0)return;j=a+4|0;if(b>>>0>715827882){j=mb(8)|0;RDb(j,238482);f[j>>2]=144484;qb(j|0,84192,1464)}c=(f[j>>2]|0)-i|0;d=LDb(b*6|0)|0;e=d+(((c|0)/6|0)*6|0)|0;h=e+(((c|0)/-6|0)*6|0)|0;if((c|0)>0)gGb(h|0,i|0,c|0)|0;f[a>>2]=h;f[j>>2]=e;f[g>>2]=d+(b*6|0);if(!i)return;NDb(i);return}function hUa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0;nw(a,c,d);f[a>>2]=88884;f[a+32>>2]=0;f[a+36>>2]=0;f[a+40>>2]=0;d=f[c+44>>2]|0;f[a+44>>2]=d;if(d|0){l=d+(f[(f[d>>2]|0)+-12>>2]|0)+8|0;f[l>>2]=(f[l>>2]|0)+1}f[a+48>>2]=0;f[a>>2]=97480;f[a+52>>2]=f[c+52>>2];f[a+56>>2]=f[c+56>>2];f[a+60>>2]=f[c+60>>2];f[a+64>>2]=f[c+64>>2];b[a+68>>0]=b[c+68>>0]|0;b[a+69>>0]=b[c+69>>0]|0;k=a+72|0;f[k>>2]=131752;e=a+76|0;g=c+76|0;f[e>>2]=0;l=a+80|0;f[l>>2]=0;h=a+84|0;f[h>>2]=0;i=c+80|0;d=(f[i>>2]|0)-(f[g>>2]|0)|0;c=(d|0)/6|0;if(!d){f[a>>2]=129592;f[k>>2]=129832;return}if(c>>>0>715827882)KEb(e);j=LDb(d)|0;f[l>>2]=j;f[e>>2]=j;f[h>>2]=j+(c*6|0);c=f[g>>2]|0;d=(f[i>>2]|0)-c|0;if((d|0)<=0){f[a>>2]=129592;f[k>>2]=129832;return}gGb(j|0,c|0,d|0)|0;f[l>>2]=j+(((d>>>0)/6|0)*6|0);f[a>>2]=129592;f[k>>2]=129832;return}function iUa(a,b,c){a=a|0;b=b|0;c=c|0;var e=0,g=0,h=0,i=0,k=0,l=0,m=0,n=0;m=a+8|0;h=f[m>>2]|0;n=a+4|0;e=f[n>>2]|0;if(h-e>>2>>>0>=b>>>0){do{m=j[c>>1]|j[c+2>>1]<<16;d[e>>1]=m;d[e+2>>1]=m>>>16;e=(f[n>>2]|0)+4|0;f[n>>2]=e;b=b+-1|0}while((b|0)!=0);return}g=f[a>>2]|0;i=e-g>>2;l=i+b|0;if(l>>>0>1073741823)KEb(a);k=h-g|0;e=k>>1;e=k>>2>>>0<536870911?(e>>>0<l>>>0?l:e):1073741823;do if(e)if(e>>>0>1073741823){n=mb(8)|0;RDb(n,238482);f[n>>2]=144484;qb(n|0,84192,1464)}else{k=LDb(e<<2)|0;break}else k=0;while(0);h=k+(i<<2)|0;i=k+(e<<2)|0;e=h;while(1){g=j[c>>1]|j[c+2>>1]<<16;d[e>>1]=g;d[e+2>>1]=g>>>16;b=b+-1|0;if(!b)break;else e=e+4|0}b=f[a>>2]|0;g=(f[n>>2]|0)-b|0;e=h+(0-(g>>2)<<2)|0;if((g|0)>0)gGb(e|0,b|0,g|0)|0;f[a>>2]=e;f[n>>2]=k+(l<<2);f[m>>2]=i;if(!b)return;NDb(b);return}function jUa(a){a=a|0;var b=0;f[a+72>>2]=131768;b=f[a+76>>2]|0;if(!b){xx(a);return}f[a+80>>2]=b;NDb(b);xx(a);return}function kUa(a){a=a|0;var b=0;f[a+72>>2]=131768;b=f[a+76>>2]|0;if(b|0){f[a+80>>2]=b;NDb(b)}xx(a);NDb(a);return}function lUa(a){a=a|0;var c=0;a=LDb(88)|0;CCa(a,1);c=a+12|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[a+24>>2]=2;c=a+28|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;f[c+16>>2]=0;f[c+20>>2]=0;f[a+52>>2]=21;f[a+56>>2]=2;f[a+60>>2]=5123;f[a+64>>2]=-1;b[a+68>>0]=0;b[a+69>>0]=0;f[a+76>>2]=0;f[a+80>>2]=0;f[a+84>>2]=0;f[a>>2]=129336;f[a+72>>2]=129576;return a|0}function mUa(a,b){a=a|0;b=b|0;var c=0;c=LDb(88)|0;FUa(c,a,b);return c|0}function nUa(a){a=a|0;var b=0;b=f[a+76>>2]|0;return ((b|0)==(f[a+80>>2]|0)?0:b)|0}function oUa(a){a=a|0;return (f[a+80>>2]|0)-(f[a+76>>2]|0)|0}function pUa(a,b){a=a|0;b=b|0;Vk[f[(f[b>>2]|0)+92>>2]&1023](b,a);return}function qUa(a,b){a=a|0;b=b|0;Vk[f[(f[b>>2]|0)+92>>2]&1023](b,a);return}function rUa(a,b,c){a=a|0;b=b|0;c=c|0;Vk[f[(f[c>>2]|0)+88>>2]&1023](c,(f[a+76>>2]|0)+(b<<2)|0);return}function sUa(a,b,c){a=a|0;b=b|0;c=c|0;Vk[f[(f[c>>2]|0)+88>>2]&1023](c,(f[a+76>>2]|0)+(b<<2)|0);return}function tUa(a,b,c){a=a|0;b=b|0;c=c|0;var e=0,g=0;a=f[a+76>>2]|0;e=d[a+(b<<2)>>1]|0;g=d[a+(c<<2)>>1]|0;if((e&65535)<(g&65535)){c=-1;return c|0}if((e&65535)<=(g&65535)){if((j[a+(b<<2)+2>>1]|0)<(j[a+(c<<2)+2>>1]|0)){c=-1;return c|0}if((j[a+(c<<2)+2>>1]|0)>=(j[a+(b<<2)+2>>1]|0)){c=0;return c|0}}c=1;return c|0}function uUa(a){a=a|0;return 4}function vUa(a,b){a=a|0;b=b|0;var c=0;c=f[a+76>>2]|0;return ((c|0)==(f[a+80>>2]|0)?0:c+(b<<2)|0)|0}function wUa(a){a=a|0;return (f[a+80>>2]|0)-(f[a+76>>2]|0)>>2|0}function xUa(a,b){a=a|0;b=b|0;EUa(a+76|0,b);return}function yUa(a,b){a=a|0;b=b|0;var c=0,e=0,g=0,h=0,i=0;i=u;u=u+16|0;g=i;d[g>>1]=0;d[g+2>>1]=0;h=a+76|0;a=a+80|0;c=f[h>>2]|0;e=(f[a>>2]|0)-c>>2;if(e>>>0<b>>>0){iUa(h,b-e|0,g);u=i;return}if(e>>>0<=b>>>0){u=i;return}f[a>>2]=c+(b<<2);u=i;return}function zUa(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=u;u=u+16|0;g=o;f[g>>2]=131768;h=g+4|0;i=a+76|0;f[h>>2]=0;j=g+8|0;f[j>>2]=0;k=g+12|0;f[k>>2]=0;l=a+80|0;m=f[l>>2]|0;n=f[i>>2]|0;e=m-n|0;b=e>>2;if(e){if(b>>>0>1073741823)KEb(h);c=LDb(e)|0;f[j>>2]=c;f[h>>2]=c;b=c+(b<<2)|0;f[k>>2]=b;d=c;if((e|0)>0){p=c+(e>>>2<<2)|0;gGb(c|0,n|0,e|0)|0;f[j>>2]=p;e=d;c=p}else{e=d;c=d}}else{e=0;c=0;b=0}f[h>>2]=n;f[i>>2]=e;f[j>>2]=m;f[l>>2]=c;p=a+84|0;f[k>>2]=f[p>>2];f[p>>2]=b;f[g>>2]=131768;if(!n){u=o;return}f[j>>2]=n;NDb(n);u=o;return}function AUa(a){a=a|0;var b=0;a=a+-72|0;f[a+72>>2]=131768;b=f[a+76>>2]|0;if(!b){xx(a);return}f[a+80>>2]=b;NDb(b);xx(a);return}function BUa(a){a=a|0;var b=0;a=a+-72|0;f[a+72>>2]=131768;b=f[a+76>>2]|0;if(b|0){f[a+80>>2]=b;NDb(b)}xx(a);NDb(a);return}function CUa(a){a=a|0;var b=0;f[a>>2]=131768;b=f[a+4>>2]|0;if(!b)return;f[a+8>>2]=b;NDb(b);return}function DUa(a){a=a|0;var b=0;f[a>>2]=131768;b=f[a+4>>2]|0;if(!b){NDb(a);return}f[a+8>>2]=b;NDb(b);NDb(a);return}function EUa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;e=a+8|0;g=f[a>>2]|0;if((f[e>>2]|0)-g>>2>>>0>=b>>>0)return;h=a+4|0;if(b>>>0>1073741823){h=mb(8)|0;RDb(h,238482);f[h>>2]=144484;qb(h|0,84192,1464)}c=(f[h>>2]|0)-g|0;d=LDb(b<<2)|0;if((c|0)>0)gGb(d|0,g|0,c|0)|0;f[a>>2]=d;f[h>>2]=d+(c>>2<<2);f[e>>2]=d+(b<<2);if(!g)return;NDb(g);return}function FUa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0;nw(a,c,d);f[a>>2]=88884;f[a+32>>2]=0;f[a+36>>2]=0;f[a+40>>2]=0;d=f[c+44>>2]|0;f[a+44>>2]=d;if(d|0){l=d+(f[(f[d>>2]|0)+-12>>2]|0)+8|0;f[l>>2]=(f[l>>2]|0)+1}f[a+48>>2]=0;f[a>>2]=97480;f[a+52>>2]=f[c+52>>2];f[a+56>>2]=f[c+56>>2];f[a+60>>2]=f[c+60>>2];f[a+64>>2]=f[c+64>>2];b[a+68>>0]=b[c+68>>0]|0;b[a+69>>0]=b[c+69>>0]|0;k=a+72|0;f[k>>2]=131768;e=a+76|0;g=c+76|0;f[e>>2]=0;l=a+80|0;f[l>>2]=0;h=a+84|0;f[h>>2]=0;i=c+80|0;d=(f[i>>2]|0)-(f[g>>2]|0)|0;c=d>>2;if(!d){f[a>>2]=129336;f[k>>2]=129576;return}if(c>>>0>1073741823)KEb(e);j=LDb(d)|0;f[l>>2]=j;f[e>>2]=j;f[h>>2]=j+(c<<2);c=f[g>>2]|0;d=(f[i>>2]|0)-c|0;if((d|0)<=0){f[a>>2]=129336;f[k>>2]=129576;return}gGb(j|0,c|0,d|0)|0;f[l>>2]=j+(d>>>2<<2);f[a>>2]=129336;f[k>>2]=129576;return}function GUa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=a+8|0;h=f[l>>2]|0;m=a+4|0;e=f[m>>2]|0;if(((h-e|0)/3|0)>>>0>=c>>>0){do{b[e>>0]=b[d>>0]|0;b[e+1>>0]=b[d+1>>0]|0;b[e+2>>0]=b[d+2>>0]|0;e=(f[m>>2]|0)+3|0;f[m>>2]=e;c=c+-1|0}while((c|0)!=0);return}g=f[a>>2]|0;i=(e-g|0)/3|0;k=i+c|0;if(k>>>0>1431655765)KEb(a);j=(h-g|0)/3|0;e=j<<1;e=j>>>0<715827882?(e>>>0<k>>>0?k:e):1431655765;do if(e)if(e>>>0>1431655765){m=mb(8)|0;RDb(m,238482);f[m>>2]=144484;qb(m|0,84192,1464)}else{j=LDb(e*3|0)|0;break}else j=0;while(0);h=j+(i*3|0)|0;i=j+(e*3|0)|0;e=h;while(1){b[e>>0]=b[d>>0]|0;b[e+1>>0]=b[d+1>>0]|0;b[e+2>>0]=b[d+2>>0]|0;c=c+-1|0;if(!c)break;else e=e+3|0}c=f[a>>2]|0;g=(f[m>>2]|0)-c|0;e=h+(((g|0)/-3|0)*3|0)|0;if((g|0)>0)gGb(e|0,c|0,g|0)|0;f[a>>2]=e;f[m>>2]=j+(k*3|0);f[l>>2]=i;if(!c)return;NDb(c);return}function HUa(a){a=a|0;var b=0;f[a+72>>2]=131784;b=f[a+76>>2]|0;if(!b){xx(a);return}f[a+80>>2]=b;NDb(b);xx(a);return}function IUa(a){a=a|0;var b=0;f[a+72>>2]=131784;b=f[a+76>>2]|0;if(b|0){f[a+80>>2]=b;NDb(b)}xx(a);NDb(a);return}function JUa(a){a=a|0;var c=0;a=LDb(88)|0;CCa(a,1);c=a+12|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[a+24>>2]=2;c=a+28|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;f[c+16>>2]=0;f[c+20>>2]=0;f[a+52>>2]=19;f[a+56>>2]=3;f[a+60>>2]=5121;f[a+64>>2]=-1;b[a+68>>0]=0;b[a+69>>0]=0;f[a+76>>2]=0;f[a+80>>2]=0;f[a+84>>2]=0;f[a>>2]=129080;f[a+72>>2]=129320;return a|0}function KUa(a,b){a=a|0;b=b|0;var c=0;c=LDb(88)|0;bVa(c,a,b);return c|0}function LUa(a){a=a|0;var b=0;b=f[a+76>>2]|0;return ((b|0)==(f[a+80>>2]|0)?0:b)|0}function MUa(a){a=a|0;return (f[a+80>>2]|0)-(f[a+76>>2]|0)|0}function NUa(a,b){a=a|0;b=b|0;Vk[f[(f[b>>2]|0)+84>>2]&1023](b,a);return}function OUa(a,b){a=a|0;b=b|0;Vk[f[(f[b>>2]|0)+84>>2]&1023](b,a);return}function PUa(a,b,c){a=a|0;b=b|0;c=c|0;Vk[f[(f[c>>2]|0)+80>>2]&1023](c,(f[a+76>>2]|0)+(b*3|0)|0);return}function QUa(a,b,c){a=a|0;b=b|0;c=c|0;Vk[f[(f[c>>2]|0)+80>>2]&1023](c,(f[a+76>>2]|0)+(b*3|0)|0);return}function RUa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0;g=f[a+76>>2]|0;a=b[g+(c*3|0)>>0]|0;e=b[g+(d*3|0)>>0]|0;if((a&255)<(e&255)){d=-1;return d|0}if((a&255)<=(e&255)){a=b[g+(c*3|0)+1>>0]|0;e=b[g+(d*3|0)+1>>0]|0;if((a&255)<(e&255)){d=-1;return d|0}if((a&255)<=(e&255)?(h[g+(c*3|0)+2>>0]|0)<(h[g+(d*3|0)+2>>0]|0):0){d=-1;return d|0}a=b[g+(d*3|0)+1>>0]|0;e=b[g+(c*3|0)+1>>0]|0;if((a&255)>=(e&255)){if((a&255)>(e&255)){d=0;return d|0}if((h[g+(d*3|0)+2>>0]|0)>=(h[g+(c*3|0)+2>>0]|0)){d=0;return d|0}}}d=1;return d|0}function SUa(a){a=a|0;return 3}function TUa(a,b){a=a|0;b=b|0;var c=0;c=f[a+76>>2]|0;return ((c|0)==(f[a+80>>2]|0)?0:c+(b*3|0)|0)|0}function UUa(a){a=a|0;return ((f[a+80>>2]|0)-(f[a+76>>2]|0)|0)/3|0|0}function VUa(a,b){a=a|0;b=b|0;aVa(a+76|0,b);return}function WUa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0;i=u;u=u+16|0;g=i;b[g>>0]=0;b[g+1>>0]=0;b[g+2>>0]=0;h=a+76|0;d=a+80|0;e=f[h>>2]|0;a=((f[d>>2]|0)-e|0)/3|0;if(a>>>0<c>>>0){GUa(h,c-a|0,g);u=i;return}if(a>>>0<=c>>>0){u=i;return}f[d>>2]=e+(c*3|0);u=i;return}function XUa(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=u;u=u+16|0;g=p;f[g>>2]=131784;i=g+4|0;j=a+76|0;f[i>>2]=0;k=g+8|0;f[k>>2]=0;l=g+12|0;f[l>>2]=0;m=a+80|0;n=f[m>>2]|0;o=f[j>>2]|0;e=n-o|0;b=(e|0)/3|0;h=o;if(e){if(b>>>0>1431655765)KEb(i);c=LDb(e)|0;f[k>>2]=c;f[i>>2]=c;b=c+(b*3|0)|0;f[l>>2]=b;d=c;if((e|0)>0){gGb(c|0,h|0,e|0)|0;c=c+(((e>>>0)/3|0)*3|0)|0;f[k>>2]=c;e=d}else{e=d;c=d}}else{e=0;c=0;b=0}f[i>>2]=o;f[j>>2]=e;f[k>>2]=n;f[m>>2]=c;n=a+84|0;f[l>>2]=f[n>>2];f[n>>2]=b;f[g>>2]=131784;if(!o){u=p;return}f[k>>2]=o;NDb(h);u=p;return}function YUa(a){a=a|0;var b=0;a=a+-72|0;f[a+72>>2]=131784;b=f[a+76>>2]|0;if(!b){xx(a);return}f[a+80>>2]=b;NDb(b);xx(a);return}function ZUa(a){a=a|0;var b=0;a=a+-72|0;f[a+72>>2]=131784;b=f[a+76>>2]|0;if(b|0){f[a+80>>2]=b;NDb(b)}xx(a);NDb(a);return}function _Ua(a){a=a|0;var b=0;f[a>>2]=131784;b=f[a+4>>2]|0;if(!b)return;f[a+8>>2]=b;NDb(b);return}function $Ua(a){a=a|0;var b=0;f[a>>2]=131784;b=f[a+4>>2]|0;if(!b){NDb(a);return}f[a+8>>2]=b;NDb(b);NDb(a);return}function aVa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;g=a+8|0;i=f[a>>2]|0;j=i;if((((f[g>>2]|0)-i|0)/3|0)>>>0>=b>>>0)return;k=a+4|0;if(b>>>0>1431655765){k=mb(8)|0;RDb(k,238482);f[k>>2]=144484;qb(k|0,84192,1464)}c=(f[k>>2]|0)-i|0;d=LDb(b*3|0)|0;e=d+(((c|0)/3|0)*3|0)|0;h=e+(((c|0)/-3|0)*3|0)|0;if((c|0)>0)gGb(h|0,j|0,c|0)|0;f[a>>2]=h;f[k>>2]=e;f[g>>2]=d+(b*3|0);if(!i)return;NDb(j);return}function bVa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0;nw(a,c,d);f[a>>2]=88884;f[a+32>>2]=0;f[a+36>>2]=0;f[a+40>>2]=0;d=f[c+44>>2]|0;f[a+44>>2]=d;if(d|0){l=d+(f[(f[d>>2]|0)+-12>>2]|0)+8|0;f[l>>2]=(f[l>>2]|0)+1}f[a+48>>2]=0;f[a>>2]=97480;f[a+52>>2]=f[c+52>>2];f[a+56>>2]=f[c+56>>2];f[a+60>>2]=f[c+60>>2];f[a+64>>2]=f[c+64>>2];b[a+68>>0]=b[c+68>>0]|0;b[a+69>>0]=b[c+69>>0]|0;k=a+72|0;f[k>>2]=131784;e=a+76|0;g=c+76|0;f[e>>2]=0;l=a+80|0;f[l>>2]=0;h=a+84|0;f[h>>2]=0;i=c+80|0;d=(f[i>>2]|0)-(f[g>>2]|0)|0;c=(d|0)/3|0;if(!d){f[a>>2]=129080;f[k>>2]=129320;return}if(c>>>0>1431655765)KEb(e);j=LDb(d)|0;f[l>>2]=j;f[e>>2]=j;f[h>>2]=j+(c*3|0);c=f[g>>2]|0;d=(f[i>>2]|0)-c|0;if((d|0)<=0){f[a>>2]=129080;f[k>>2]=129320;return}gGb(j|0,c|0,d|0)|0;f[l>>2]=j+(((d>>>0)/3|0)*3|0);f[a>>2]=129080;f[k>>2]=129320;return}function cVa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0;m=a+8|0;i=f[m>>2]|0;n=a+4|0;e=f[n>>2]|0;if(i-e>>1>>>0>=c>>>0){do{m=h[d>>0]|h[d+1>>0]<<8;b[e>>0]=m;b[e+1>>0]=m>>8;e=(f[n>>2]|0)+2|0;f[n>>2]=e;c=c+-1|0}while((c|0)!=0);return}g=f[a>>2]|0;j=e-g>>1;l=j+c|0;if((l|0)<0)KEb(a);e=i-g|0;e=e>>1>>>0<1073741823?(e>>>0<l>>>0?l:e):2147483647;do if(e)if((e|0)<0){n=mb(8)|0;RDb(n,238482);f[n>>2]=144484;qb(n|0,84192,1464)}else{k=LDb(e<<1)|0;break}else k=0;while(0);i=k+(j<<1)|0;j=k+(e<<1)|0;e=i;while(1){g=h[d>>0]|h[d+1>>0]<<8;b[e>>0]=g;b[e+1>>0]=g>>8;c=c+-1|0;if(!c)break;else e=e+2|0}c=f[a>>2]|0;g=(f[n>>2]|0)-c|0;e=i+(0-(g>>1)<<1)|0;if((g|0)>0)gGb(e|0,c|0,g|0)|0;f[a>>2]=e;f[n>>2]=k+(l<<1);f[m>>2]=j;if(!c)return;NDb(c);return}function dVa(a){a=a|0;var b=0;f[a+72>>2]=131800;b=f[a+76>>2]|0;if(!b){xx(a);return}f[a+80>>2]=b;NDb(b);xx(a);return}function eVa(a){a=a|0;var b=0;f[a+72>>2]=131800;b=f[a+76>>2]|0;if(b|0){f[a+80>>2]=b;NDb(b)}xx(a);NDb(a);return}function fVa(a){a=a|0;var c=0;a=LDb(88)|0;CCa(a,1);c=a+12|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[a+24>>2]=2;c=a+28|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;f[c+16>>2]=0;f[c+20>>2]=0;f[a+52>>2]=18;f[a+56>>2]=2;f[a+60>>2]=5121;f[a+64>>2]=-1;b[a+68>>0]=0;b[a+69>>0]=0;f[a+76>>2]=0;f[a+80>>2]=0;f[a+84>>2]=0;f[a>>2]=128824;f[a+72>>2]=129064;return a|0}function gVa(a,b){a=a|0;b=b|0;var c=0;c=LDb(88)|0;zVa(c,a,b);return c|0}function hVa(a){a=a|0;var b=0;b=f[a+76>>2]|0;return ((b|0)==(f[a+80>>2]|0)?0:b)|0}function iVa(a){a=a|0;return (f[a+80>>2]|0)-(f[a+76>>2]|0)|0}function jVa(a,b){a=a|0;b=b|0;Vk[f[(f[b>>2]|0)+80>>2]&1023](b,a);return}function kVa(a,b){a=a|0;b=b|0;Vk[f[(f[b>>2]|0)+80>>2]&1023](b,a);return}function lVa(a,b,c){a=a|0;b=b|0;c=c|0;Vk[f[(f[c>>2]|0)+76>>2]&1023](c,(f[a+76>>2]|0)+(b<<1)|0);return}function mVa(a,b,c){a=a|0;b=b|0;c=c|0;Vk[f[(f[c>>2]|0)+76>>2]&1023](c,(f[a+76>>2]|0)+(b<<1)|0);return}function nVa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0;a=f[a+76>>2]|0;e=b[a+(c<<1)>>0]|0;g=b[a+(d<<1)>>0]|0;if((e&255)<(g&255)){d=-1;return d|0}if((e&255)<=(g&255)){if((h[a+(c<<1)+1>>0]|0)<(h[a+(d<<1)+1>>0]|0)){d=-1;return d|0}if((h[a+(d<<1)+1>>0]|0)>=(h[a+(c<<1)+1>>0]|0)){d=0;return d|0}}d=1;return d|0}function oVa(a){a=a|0;return 2}function pVa(a,b){a=a|0;b=b|0;var c=0;c=f[a+76>>2]|0;return ((c|0)==(f[a+80>>2]|0)?0:c+(b<<1)|0)|0}function qVa(a){a=a|0;return (f[a+80>>2]|0)-(f[a+76>>2]|0)>>1|0}function rVa(a,b){a=a|0;b=b|0;yVa(a+76|0,b);return}function sVa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0;i=u;u=u+16|0;g=i;b[g>>0]=0;b[g+1>>0]=0;h=a+76|0;a=a+80|0;d=f[h>>2]|0;e=(f[a>>2]|0)-d>>1;if(e>>>0<c>>>0){cVa(h,c-e|0,g);u=i;return}if(e>>>0<=c>>>0){u=i;return}f[a>>2]=d+(c<<1);u=i;return}function tVa(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=u;u=u+16|0;b=q;f[b>>2]=131800;e=b+4|0;j=a+76|0;f[e>>2]=0;k=b+8|0;f[k>>2]=0;l=b+12|0;f[l>>2]=0;m=a+80|0;n=f[m>>2]|0;o=f[j>>2]|0;p=n-o|0;c=p>>1;d=o;do if(p)if((p|0)<0)KEb(e);else{g=LDb(p)|0;f[e>>2]=g;i=g+(c<<1)|0;f[l>>2]=i;h=g+(p>>>1<<1)|0;gGb(g|0,d|0,p|0)|0;f[k>>2]=h;break}else{g=0;h=0;i=0}while(0);f[e>>2]=o;f[j>>2]=g;f[k>>2]=n;f[m>>2]=h;p=a+84|0;f[l>>2]=f[p>>2];f[p>>2]=i;f[b>>2]=131800;if(!o){u=q;return}f[k>>2]=o;NDb(d);u=q;return}function uVa(a){a=a|0;var b=0;a=a+-72|0;f[a+72>>2]=131800;b=f[a+76>>2]|0;if(!b){xx(a);return}f[a+80>>2]=b;NDb(b);xx(a);return}function vVa(a){a=a|0;var b=0;a=a+-72|0;f[a+72>>2]=131800;b=f[a+76>>2]|0;if(b|0){f[a+80>>2]=b;NDb(b)}xx(a);NDb(a);return}function wVa(a){a=a|0;var b=0;f[a>>2]=131800;b=f[a+4>>2]|0;if(!b)return;f[a+8>>2]=b;NDb(b);return}function xVa(a){a=a|0;var b=0;f[a>>2]=131800;b=f[a+4>>2]|0;if(!b){NDb(a);return}f[a+8>>2]=b;NDb(b);NDb(a);return}function yVa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0;e=a+8|0;g=f[a>>2]|0;h=g;if((f[e>>2]|0)-g>>1>>>0>=b>>>0)return;i=a+4|0;if((b|0)<0){i=mb(8)|0;RDb(i,238482);f[i>>2]=144484;qb(i|0,84192,1464)}c=(f[i>>2]|0)-g|0;d=LDb(b<<1)|0;if((c|0)>0)gGb(d|0,h|0,c|0)|0;f[a>>2]=d;f[i>>2]=d+(c>>1<<1);f[e>>2]=d+(b<<1);if(!g)return;NDb(h);return}function zVa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0;nw(a,c,d);f[a>>2]=88884;f[a+32>>2]=0;f[a+36>>2]=0;f[a+40>>2]=0;d=f[c+44>>2]|0;f[a+44>>2]=d;if(d|0){l=d+(f[(f[d>>2]|0)+-12>>2]|0)+8|0;f[l>>2]=(f[l>>2]|0)+1}f[a+48>>2]=0;f[a>>2]=97480;f[a+52>>2]=f[c+52>>2];f[a+56>>2]=f[c+56>>2];f[a+60>>2]=f[c+60>>2];f[a+64>>2]=f[c+64>>2];b[a+68>>0]=b[c+68>>0]|0;b[a+69>>0]=b[c+69>>0]|0;k=a+72|0;f[k>>2]=131800;e=a+76|0;g=c+76|0;f[e>>2]=0;l=a+80|0;f[l>>2]=0;h=a+84|0;f[h>>2]=0;i=c+80|0;d=(f[i>>2]|0)-(f[g>>2]|0)|0;if(!d){f[a>>2]=128824;f[k>>2]=129064;return}if((d|0)<0)KEb(e);j=LDb(d)|0;f[l>>2]=j;f[e>>2]=j;f[h>>2]=j+(d>>1<<1);c=f[g>>2]|0;d=(f[i>>2]|0)-c|0;if((d|0)<=0){f[a>>2]=128824;f[k>>2]=129064;return}gGb(j|0,c|0,d|0)|0;f[l>>2]=j+(d>>>1<<1);f[a>>2]=128824;f[k>>2]=129064;return}function AVa(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|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,v=0;v=u;u=u+16|0;t=v;k=(aHa(0)|0)+240|0;k=UPa(f[k>>2]|0,d)|0;if(!k){if(S0(2)|0){r=Nv(Mv(2)|0,234710,53)|0;s=b[d+11>>0]|0;c=s<<24>>24<0;s=Nv(r,c?f[d>>2]|0:d,c?f[d+4>>2]|0:s&255)|0;Ktb(t,s+(f[(f[s>>2]|0)+-12>>2]|0)|0);c=Bvb(t,295164)|0;c=wk[f[(f[c>>2]|0)+28>>2]&1023](c,10)|0;Cvb(t);rub(s,c)|0;Rtb(s)|0}f[a>>2]=0;u=v;return}d=k+16|0;q=b[d+11>>0]|0;if((q<<24>>24<0?f[k+20>>2]|0:q&255)|0){d=VPa(c+80|0,d)|0;if((d|0)==(c+84|0))q=0;else{d=d+28|0;r=9}}else{d=c+92|0;r=9}if((r|0)==9)q=f[d>>2]|0;if(!g){d=rk[f[k+12>>2]&15]()|0;if(!d){o=1;p=0}else r=12}else{d=g;r=12}if((r|0)==12){o=d+8|0;f[o>>2]=(f[o>>2]|0)+1;o=0;p=d}j=c+68|0;g=c+72|0;d=f[g>>2]|0;do if(d){h=c+72|0;while(1){g=f[d+16>>2]|0;if(g>>>0>e>>>0){g=f[d>>2]|0;if(!g){r=17;break}else{h=d;d=g}}else{if(g>>>0>=e>>>0){r=21;break}h=d+4|0;g=f[h>>2]|0;if(!g){r=20;break}else d=g}}if((r|0)==17){i=d;h=d;break}else if((r|0)==20){i=d;break}else if((r|0)==21){i=d;break}}else{i=g;h=g}while(0);d=f[h>>2]|0;if(!d){d=LDb(24)|0;f[d+16>>2]=e;f[d+20>>2]=0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=i;f[h>>2]=d;g=f[f[j>>2]>>2]|0;if(!g)g=d;else{f[j>>2]=g;g=f[h>>2]|0}Aq(f[c+72>>2]|0,g);l=c+76|0;f[l>>2]=(f[l>>2]|0)+1}d=d+20|0;g=f[d>>2]|0;if((g|0)!=(p|0)){f[d>>2]=p;if(!o){l=p+8|0;f[l>>2]=(f[l>>2]|0)+1}if(g|0?(e=g+8|0,l=f[e>>2]|0,f[e>>2]=l-1,(l|0)==1):0)X4(g,1,1)}a:do if((p|0)!=0?(m=f[k+44>>2]|0,s=k+40|0,n=m,(s|0)!=(n|0)):0){j=c+104|0;e=c+108|0;k=c+100|0;l=c+116|0;d=m;i=n;b:while(1){if((f[d+8>>2]|0)<=(q|0)?(q|0)<=(f[d+12>>2]|0):0){h=(aHa(0)|0)+240|0;g=d+16|0;h=UPa(f[h>>2]|0,g)|0;do if(!h)if(S0(2)|0){h=Nv(Mv(2)|0,234764,56)|0;n=b[g+11>>0]|0;m=n<<24>>24<0;d=Nv(h,m?f[g>>2]|0:g,m?f[d+20>>2]|0:n&255)|0;Ktb(t,d+(f[(f[d>>2]|0)+-12>>2]|0)|0);n=Bvb(t,295164)|0;n=wk[f[(f[n>>2]|0)+28>>2]&1023](n,10)|0;Cvb(t);rub(d,n)|0;Rtb(d)|0;d=4}else d=4;else{d=h+28|0;g=f[j>>2]|0;if((g|0)==(f[e>>2]|0))cv(k,d);else{VDb(g,d);f[j>>2]=(f[j>>2]|0)+12}BVa(h,c,p)|0;if(f[l>>2]|0){f[a>>2]=0;d=1;break}d=(f[j>>2]|0)+-12|0;if((b[d+11>>0]|0)<0)NDb(f[d>>2]|0);f[j>>2]=d;d=0}while(0);switch(d&7){case 4:case 0:break;default:break b}}d=f[i+4>>2]|0;i=d;if((s|0)==(i|0)){r=53;break a}}if(d)if(o){u=v;return}else{d=p+8|0;break}else r=53}else r=53;while(0);do if((r|0)==53){f[a>>2]=p;if(o){u=v;return}else{d=p+8|0;f[d>>2]=(f[d>>2]|0)+1;break}}while(0);t=f[d>>2]|0;f[d>>2]=t-1;if((t|0)!=1){u=v;return}X4(p,1,1);u=v;return}function BVa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;o=u;u=u+16|0;n=o;e=a+16|0;m=b[e+11>>0]|0;if((m<<24>>24<0?f[a+20>>2]|0:m&255)|0){e=VPa(c+80|0,e)|0;if((e|0)==(c+84|0))i=0;else i=f[e+28>>2]|0}else i=f[c+92>>2]|0;e=f[a+52>>2]|0;j=a+56|0;if((e|0)==(f[j>>2]|0))h=1;else{k=a+28|0;l=k+11|0;m=a+32|0;h=1;do{g=f[e>>2]|0;if((((f[g+12>>2]|0)<=(i|0)?(i|0)<=(f[g+16>>2]|0):0)?(f[g+20>>2]&1|0)!=0:0)?!(xk[f[(f[g>>2]|0)+20>>2]&255](g,c,d)|0):0)if(S0(2)|0){h=Nv(Mv(2)|0,234821,46)|0;q=b[l>>0]|0;g=q<<24>>24<0;q=Nv(Nv(h,g?f[k>>2]|0:k,g?f[m>>2]|0:q&255)|0,232033,2)|0;g=f[e>>2]|0;g=sk[f[(f[g>>2]|0)+28>>2]&2047](g)|0;h=b[g+11>>0]|0;p=h<<24>>24<0;h=Nv(q,p?f[g>>2]|0:g,p?f[g+4>>2]|0:h&255)|0;Ktb(n,h+(f[(f[h>>2]|0)+-12>>2]|0)|0);g=Bvb(n,295164)|0;g=wk[f[(f[g>>2]|0)+28>>2]&1023](g,10)|0;Cvb(n);rub(h,g)|0;Rtb(h)|0;h=0}else h=0;e=e+4|0}while((e|0)!=(f[j>>2]|0))}e=f[a+88>>2]|0;g=a+92|0;if((e|0)==(f[g>>2]|0)){u=o;return h|0}do{q=f[e>>2]|0;Zk[f[(f[q>>2]|0)+12>>2]&511](q,c,d);e=e+4|0}while((e|0)!=(f[g>>2]|0));u=o;return h|0}function CVa(a){a=a|0;var c=0;f[a>>2]=131816;c=a+24|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);V4(a);return}function DVa(a){a=a|0;var c=0;f[a>>2]=131816;c=a+24|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);V4(a);NDb(a);return}function EVa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=f[a+48>>2]|0;a=f[a+52>>2]|0;e=b+(a>>1)|0;if(!(a&1))b=d;else b=f[(f[e>>2]|0)+d>>2]|0;a=f[c>>2]|0;if(!a){c=0;Vk[b&1023](e,c);return 1}c=bFb(a,58336,58600,0)|0;Vk[b&1023](e,c);return 1}function FVa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=f[a+40>>2]|0;e=f[a+44>>2]|0;a=b+(e>>1)|0;if(e&1)d=f[(f[a>>2]|0)+d>>2]|0;e=sk[d&2047](a)|0;f[c>>2]=e;return 1}function GVa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0;j=u;u=u+16|0;g=j;e=j+4|0;b[e>>0]=0;i=c+112|0;h=f[i>>2]|0;if(sk[f[(f[h>>2]|0)+12>>2]&2047](h)|0){i=f[i>>2]|0;Vk[f[(f[i>>2]|0)+16>>2]&1023](i,e);gX(c);if(!(b[e>>0]|0)){u=j;return 1}_Pa(g,c,0);e=f[g>>2]|0;do if(e){h=bFb(e,58336,58600,0)|0;if(h){e=h+8|0;f[e>>2]=(f[e>>2]|0)+1;e=f[g>>2]|0;if(!e)break}else h=0;c=e+8|0;i=f[c>>2]|0;f[c>>2]=i-1;if((i|0)==1)X4(e,1,1)}else h=0;while(0);e=f[a+48>>2]|0;a=f[a+52>>2]|0;g=d+(a>>1)|0;if(a&1)e=f[(f[g>>2]|0)+e>>2]|0;Vk[e&1023](g,h);if(!h){u=j;return 1}a=h+8|0;d=f[a>>2]|0;f[a>>2]=d-1;if((d|0)!=1){u=j;return 1}X4(h,1,1);u=j;return 1}h=f[i>>2]|0;if(!(wk[f[(f[h>>2]|0)+96>>2]&1023](h,a+24|0)|0)){u=j;return 1}h=f[i>>2]|0;Vk[f[(f[h>>2]|0)+16>>2]&1023](h,e);gX(c);if(!(b[e>>0]|0)){u=j;return 1}e=f[i>>2]|0;Vk[f[(f[e>>2]|0)+84>>2]&1023](e,c+24|0);gX(c);_Pa(g,c,0);e=f[g>>2]|0;do if(e){h=bFb(e,58336,58600,0)|0;if(h){e=h+8|0;f[e>>2]=(f[e>>2]|0)+1;e=f[g>>2]|0;if(!e)break}else h=0;k=e+8|0;g=f[k>>2]|0;f[k>>2]=g-1;if((g|0)==1)X4(e,1,1)}else h=0;while(0);e=f[a+48>>2]|0;k=f[a+52>>2]|0;g=d+(k>>1)|0;if(k&1)e=f[(f[g>>2]|0)+e>>2]|0;Vk[e&1023](g,h);k=f[i>>2]|0;Vk[f[(f[k>>2]|0)+84>>2]&1023](k,c+40|0);gX(c);if(!h){u=j;return 1}d=h+8|0;k=f[d>>2]|0;f[d>>2]=k-1;if((k|0)!=1){u=j;return 1}X4(h,1,1);u=j;return 1}function HVa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;e=f[a+40>>2]|0;i=f[a+44>>2]|0;d=d+(i>>1)|0;if(i&1)e=f[(f[d>>2]|0)+e>>2]|0;d=sk[e&2047](d)|0;g=(d|0)!=0;h=c+292|0;i=f[h>>2]|0;if(sk[f[(f[i>>2]|0)+12>>2]&2047](i)|0){a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+16>>2]&1023](a,g);if(!g)return 1;nPa(c,d);return 1}if((f[a+36>>2]|0)==(d|0))return 1;i=c+4|0;e=a+24|0;if((b[e+11>>0]|0)<0)e=f[e>>2]|0;eEb(i,e)|0;a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+84>>2]&1023](a,i);a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+16>>2]&1023](a,g);if(g){a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+88>>2]&1023](a,c+24|0);a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+72>>2]&1023](a,1049);nPa(c,d);a=f[h>>2]|0;Vk[f[(f[a>>2]|0)+88>>2]&1023](a,c+40|0)}c=f[h>>2]|0;Vk[f[(f[c>>2]|0)+72>>2]&1023](c,1049);return 1}function IVa(a){a=a|0;return a+24|0}function JVa(a){a=a|0;Ni()}function KVa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,i=0,j=0;d=a+4|0;eEb(d,235110)|0;e=a+292|0;g=f[e>>2]|0;Vk[f[(f[g>>2]|0)+84>>2]&1023](g,d);g=(b|0)!=0;c=f[e>>2]|0;Vk[f[(f[c>>2]|0)+16>>2]&1023](c,g);if(g){if((f[a+304>>2]|0)>111){nPa(a,b);c=b}else{oPa(a,b);c=b}c=sk[f[(f[b>>2]|0)+152>>2]&2047](c)|0;if(!c)c=0;else c=bFb(c,63152,58768,0)|0}else{c=f[e>>2]|0;Vk[f[(f[c>>2]|0)+72>>2]&1023](c,1049);c=0}eEb(d,235116)|0;i=f[e>>2]|0;Vk[f[(f[i>>2]|0)+84>>2]&1023](i,d);i=(c|0)!=0;j=f[e>>2]|0;Vk[f[(f[j>>2]|0)+16>>2]&1023](j,i);do if(i)if((f[a+304>>2]|0)>111){nPa(a,c);break}else{oPa(a,c);break}else{j=f[e>>2]|0;Vk[f[(f[j>>2]|0)+72>>2]&1023](j,1049)}while(0);eEb(d,235124)|0;j=f[e>>2]|0;Vk[f[(f[j>>2]|0)+84>>2]&1023](j,d);if(!b)c=0;else c=f[b+64>>2]|0;j=f[e>>2]|0;if(sk[f[(f[j>>2]|0)+12>>2]&2047](j)|0){j=f[e>>2]|0;Vk[f[(f[j>>2]|0)+36>>2]&1023](j,c)}else{j=PZ(290272,c)|0;i=f[e>>2]|0;Vk[f[(f[i>>2]|0)+68>>2]&1023](i,j)}j=f[e>>2]|0;Vk[f[(f[j>>2]|0)+72>>2]&1023](j,1049);eEb(d,235132)|0;j=f[e>>2]|0;Vk[f[(f[j>>2]|0)+84>>2]&1023](j,d);if(!g){j=0;i=f[e>>2]|0;g=f[i>>2]|0;g=g+36|0;g=f[g>>2]|0;Vk[g&1023](i,j);j=f[e>>2]|0;i=f[j>>2]|0;i=i+72|0;i=f[i>>2]|0;Vk[i&1023](j,1049);return}j=h[b+68>>0]|0;i=f[e>>2]|0;g=f[i>>2]|0;g=g+36|0;g=f[g>>2]|0;Vk[g&1023](i,j);j=f[e>>2]|0;i=f[j>>2]|0;i=i+72|0;i=f[i>>2]|0;Vk[i&1023](j,1049);return}function LVa(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=u;u=u+32|0;i=l+12|0;h=l;d=l+17|0;g=l+16|0;b[d>>0]=0;j=a+4|0;eEb(j,235110)|0;k=a+112|0;c=f[k>>2]|0;Vk[f[(f[c>>2]|0)+80>>2]&1023](c,j);gX(a);c=f[k>>2]|0;Vk[f[(f[c>>2]|0)+16>>2]&1023](c,d);gX(a);if(!(b[d>>0]|0))d=0;else{$Pa(i,a);c=f[i>>2]|0;if(c){d=c+8|0;f[d>>2]=(f[d>>2]|0)+1;d=f[i>>2]|0;if((d|0)!=0?(n=d+8|0,m=f[n>>2]|0,f[n>>2]=m-1,(m|0)==1):0)X4(d,1,1)}else c=0;d=c}b[g>>0]=0;eEb(j,235116)|0;n=f[k>>2]|0;Vk[f[(f[n>>2]|0)+80>>2]&1023](n,j);gX(a);n=f[k>>2]|0;Vk[f[(f[n>>2]|0)+16>>2]&1023](n,g);gX(a);if(b[g>>0]|0?($Pa(i,a),e=f[i>>2]|0,e|0):0){c=bFb(e,58600,58768,0)|0;if(c|0){n=c+8|0;f[n>>2]=(f[n>>2]|0)+1;if(d|0)Vk[f[(f[d>>2]|0)+144>>2]&1023](d,c);m=c+8|0;n=f[m>>2]|0;f[m>>2]=n-1;if((n|0)==1)X4(c,1,1)}c=f[i>>2]|0;if(c|0?(m=c+8|0,n=f[m>>2]|0,f[m>>2]=n-1,(n|0)==1):0)X4(c,1,1)}eEb(j,235124)|0;n=f[k>>2]|0;Vk[f[(f[n>>2]|0)+80>>2]&1023](n,j);gX(a);n=f[k>>2]|0;if(!(sk[f[(f[n>>2]|0)+12>>2]&2047](n)|0)){f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;n=f[k>>2]|0;Vk[f[(f[n>>2]|0)+64>>2]&1023](n,h);gX(a);n=h+11|0;m=U_(290272,(b[n>>0]|0)<0?f[h>>2]|0:h)|0;f[i>>2]=m;if((b[n>>0]|0)<0)NDb(f[h>>2]|0)}else{n=f[k>>2]|0;Vk[f[(f[n>>2]|0)+40>>2]&1023](n,i);gX(a)}c=(d|0)!=0;if(c)f[d+64>>2]=f[i>>2];f[i>>2]=0;eEb(j,235132)|0;n=f[k>>2]|0;Vk[f[(f[n>>2]|0)+80>>2]&1023](n,j);gX(a);n=f[k>>2]|0;Vk[f[(f[n>>2]|0)+40>>2]&1023](n,i);gX(a);if(!c){u=l;return d|0}b[d+68>>0]=(f[i>>2]|0)!=0&1;ECa(d)|0;u=l;return d|0}function MVa(a){a=a|0;var c=0;f[a>>2]=131860;c=a+24|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);V4(a);return}function NVa(a){a=a|0;var c=0;f[a>>2]=131860;c=a+24|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);V4(a);NDb(a);return}function OVa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;h=u;u=u+16|0;e=h;g=c+112|0;i=f[g>>2]|0;if(sk[f[(f[i>>2]|0)+12>>2]&2047](i)|0){b[e>>0]=0;i=f[g>>2]|0;Vk[f[(f[i>>2]|0)+16>>2]&1023](i,e);gX(c);if(!(b[e>>0]|0)){i=1;u=h;return i|0}}else{i=f[g>>2]|0;if(!(wk[f[(f[i>>2]|0)+96>>2]&1023](i,a+24|0)|0)){i=1;u=h;return i|0}}i=wk[f[a+40>>2]&1023](c,d)|0;u=h;return i|0}function PVa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0;e=sk[f[a+36>>2]&2047](d)|0;h=c+292|0;g=f[h>>2]|0;if(sk[f[(f[g>>2]|0)+12>>2]&2047](g)|0){h=f[h>>2]|0;Vk[f[(f[h>>2]|0)+16>>2]&1023](h,e);if(!e){h=1;return h|0}}else{if(!e){h=1;return h|0}g=c+4|0;e=a+24|0;if((b[e+11>>0]|0)<0)e=f[e>>2]|0;eEb(g,e)|0;h=f[h>>2]|0;Vk[f[(f[h>>2]|0)+84>>2]&1023](h,g)}h=wk[f[a+44>>2]&1023](c,d)|0;return h|0}function QVa(a){a=a|0;return a+24|0}function RVa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=a+4|0;c=f[m>>2]|0;d=f[a>>2]|0;i=c-d>>2;e=i+1|0;g=d;if(e>>>0>1073741823)KEb(a);l=a+8|0;j=(f[l>>2]|0)-d|0;k=j>>1;e=j>>2>>>0<536870911?(k>>>0<e>>>0?e:k):1073741823;do if(e)if(e>>>0>1073741823){m=mb(8)|0;RDb(m,238482);f[m>>2]=144484;qb(m|0,84192,1464)}else{j=LDb(e<<2)|0;break}else j=0;while(0);d=j+(i<<2)|0;k=j+(e<<2)|0;e=f[b>>2]|0;f[d>>2]=e;if(e){g=e+8|0;f[g>>2]=(f[g>>2]|0)+1;g=f[a>>2]|0;c=f[m>>2]|0}h=d+4|0;e=g;if((c|0)==(g|0))b=e;else{b=i+-1-((c+-4-e|0)>>>2)|0;while(1){c=c+-4|0;e=f[c>>2]|0;f[d+-4>>2]=e;if(e|0){i=e+8|0;f[i>>2]=(f[i>>2]|0)+1}if((c|0)==(g|0))break;else d=d+-4|0}d=j+(b<<2)|0;b=f[a>>2]|0;c=f[m>>2]|0}f[a>>2]=d;f[m>>2]=h;f[l>>2]=k;e=b;if((c|0)!=(e|0))do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(l=d+8|0,m=f[l>>2]|0,f[l>>2]=m-1,(m|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(e|0));if(!b)return;NDb(b);return}function SVa(a){a=a|0;var c=0;f[a>>2]=128600;c=a+32|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);V4(a);return}function TVa(a){a=a|0;var c=0;f[a>>2]=128600;c=a+32|0;if((b[c+11>>0]|0)<0)NDb(f[c>>2]|0);V4(a);NDb(a);return}function UVa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=u;u=u+32|0;i=n+16|0;l=n+4|0;j=n;f[i>>2]=0;f[l>>2]=0;m=l+4|0;f[m>>2]=0;k=l+8|0;f[k>>2]=0;h=b+112|0;g=f[h>>2]|0;if(sk[f[(f[g>>2]|0)+12>>2]&2047](g)|0){h=f[h>>2]|0;Vk[f[(f[h>>2]|0)+44>>2]&1023](h,i);gX(b);OAa(l,f[i>>2]|0);if(f[i>>2]|0){g=0;do{f[j>>2]=0;lWa(b,j)|0;d=f[m>>2]|0;if((d|0)==(f[k>>2]|0))PAa(l,j);else{e=f[j>>2]|0;f[d>>2]=e;if(e){d=e+8|0;f[d>>2]=(f[d>>2]|0)+1;d=f[m>>2]|0}f[m>>2]=d+4}d=f[j>>2]|0;if(d|0?(e=d+8|0,h=f[e>>2]|0,f[e>>2]=h-1,(h|0)==1):0)X4(d,1,1);g=g+1|0;d=f[i>>2]|0}while(g>>>0<d>>>0);if(d|0){d=f[a+60>>2]|0;a=f[a+64>>2]|0;e=c+(a>>1)|0;if(a&1)d=f[(f[e>>2]|0)+d>>2]|0;Vk[d&1023](e,l)}}}else{g=f[h>>2]|0;if((wk[f[(f[g>>2]|0)+96>>2]&1023](g,a+32|0)|0?(g=f[h>>2]|0,Vk[f[(f[g>>2]|0)+44>>2]&1023](g,i),gX(b),OAa(l,f[i>>2]|0),f[i>>2]|0):0)?(g=f[h>>2]|0,Vk[f[(f[g>>2]|0)+84>>2]&1023](g,b+24|0),gX(b),f[i>>2]|0):0){g=0;do{f[j>>2]=0;lWa(b,j)|0;d=f[m>>2]|0;if((d|0)==(f[k>>2]|0))PAa(l,j);else{e=f[j>>2]|0;f[d>>2]=e;if(e){d=e+8|0;f[d>>2]=(f[d>>2]|0)+1;d=f[m>>2]|0}f[m>>2]=d+4}d=f[j>>2]|0;if(d|0?(o=d+8|0,e=f[o>>2]|0,f[o>>2]=e-1,(e|0)==1):0)X4(d,1,1);g=g+1|0;d=f[i>>2]|0}while(g>>>0<d>>>0);if(d|0){d=f[h>>2]|0;Vk[f[(f[d>>2]|0)+84>>2]&1023](d,b+40|0);gX(b);d=f[a+60>>2]|0;o=f[a+64>>2]|0;e=c+(o>>1)|0;if(o&1)d=f[(f[e>>2]|0)+d>>2]|0;Vk[d&1023](e,l)}}}g=f[l>>2]|0;if(!g){u=n;return 1}d=f[m>>2]|0;if((d|0)==(g|0))d=g;else{do{d=d+-4|0;e=f[d>>2]|0;if(e|0?(c=e+8|0,o=f[c>>2]|0,f[c>>2]=o-1,(o|0)==1):0)X4(e,1,1);f[d>>2]=0}while((d|0)!=(g|0));d=f[l>>2]|0}f[m>>2]=g;NDb(d);u=n;return 1}function VVa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0;e=f[a+44>>2]|0;j=f[a+48>>2]|0;d=d+(j>>1)|0;if(j&1)e=f[(f[d>>2]|0)+e>>2]|0;h=sk[e&2047](d)|0;j=h+4|0;e=(f[j>>2]|0)-(f[h>>2]|0)|0;g=e>>2;i=c+292|0;d=f[i>>2]|0;if(sk[f[(f[d>>2]|0)+12>>2]&2047](d)|0){e=f[i>>2]|0;Vk[f[(f[e>>2]|0)+40>>2]&1023](e,g);e=f[h>>2]|0;if((e|0)==(f[j>>2]|0))return 1;g=c+304|0;do{d=f[e>>2]|0;if((f[g>>2]|0)>111)nPa(c,d);else gWa(c,d);e=e+4|0}while((e|0)!=(f[j>>2]|0));return 1}if(!e)return 1;d=c+4|0;e=a+32|0;if((b[e+11>>0]|0)<0)e=f[e>>2]|0;eEb(d,e)|0;e=f[i>>2]|0;Vk[f[(f[e>>2]|0)+84>>2]&1023](e,d);e=f[i>>2]|0;Vk[f[(f[e>>2]|0)+40>>2]&1023](e,g);e=f[i>>2]|0;Vk[f[(f[e>>2]|0)+88>>2]&1023](e,c+24|0);e=f[i>>2]|0;Vk[f[(f[e>>2]|0)+72>>2]&1023](e,1049);a=a+68|0;e=f[a>>2]|0;a:do switch(e|0){case 0:{e=f[h>>2]|0;if((e|0)!=(f[j>>2]|0)){g=c+304|0;do{d=f[e>>2]|0;if((f[g>>2]|0)>111)nPa(c,d);else gWa(c,d);e=e+4|0}while((e|0)!=(f[j>>2]|0))}break}case 1:{e=f[h>>2]|0;if((e|0)!=(f[j>>2]|0)){g=c+304|0;do{d=f[e>>2]|0;if((f[g>>2]|0)>111)nPa(c,d);else gWa(c,d);a=f[i>>2]|0;Vk[f[(f[a>>2]|0)+72>>2]&1023](a,1049);e=e+4|0}while((e|0)!=(f[j>>2]|0))}break}default:{d=f[h>>2]|0;if((d|0)!=(f[j>>2]|0)){h=c+304|0;e=e+-1|0;do{g=f[d>>2]|0;if((f[h>>2]|0)>111)nPa(c,g);else gWa(c,g);if(!e){e=f[i>>2]|0;Vk[f[(f[e>>2]|0)+72>>2]&1023](e,1049);e=f[a>>2]|0}d=d+4|0;e=e+-1|0}while((d|0)!=(f[j>>2]|0));if((e|0)==(f[a>>2]|0))break a}j=f[i>>2]|0;Vk[f[(f[j>>2]|0)+72>>2]&1023](j,1049)}}while(0);j=f[i>>2]|0;Vk[f[(f[j>>2]|0)+88>>2]&1023](j,c+40|0);c=f[i>>2]|0;Vk[f[(f[c>>2]|0)+72>>2]&1023](c,1049);return 1}function WVa(a){a=a|0;return a+32|0}function XVa(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[a+44>>2]|0;d=f[a+48>>2]|0;a=b+(d>>1)|0;if(d&1)c=f[(f[a>>2]|0)+c>>2]|0;d=sk[c&2047](a)|0;return (f[d+4>>2]|0)-(f[d>>2]|0)>>2|0}function YVa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0;d=f[a+52>>2]|0;g=f[a+56>>2]|0;a=b+(g>>1)|0;if(g&1)d=f[(f[a>>2]|0)+d>>2]|0;a=sk[d&2047](a)|0;g=a+4|0;d=f[g>>2]|0;b=f[a>>2]|0;e=d-b>>2;if(e>>>0<c>>>0){eWa(a,c-e|0);return}if(e>>>0<=c>>>0)return;b=b+(c<<2)|0;if((b|0)!=(d|0))do{d=d+-4|0;a=f[d>>2]|0;if(a|0?(e=a+8|0,c=f[e>>2]|0,f[e>>2]=c-1,(c|0)==1):0)X4(a,1,1);f[d>>2]=0}while((d|0)!=(b|0));f[g>>2]=b;return}function ZVa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=f[a+52>>2]|0;e=f[a+56>>2]|0;a=b+(e>>1)|0;if(e&1)d=f[(f[a>>2]|0)+d>>2]|0;OAa(sk[d&2047](a)|0,c);return}function _Va(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0;c=f[a+52>>2]|0;d=f[a+56>>2]|0;a=b+(d>>1)|0;if(d&1)c=f[(f[a>>2]|0)+c>>2]|0;d=sk[c&2047](a)|0;b=f[d>>2]|0;d=d+4|0;c=f[d>>2]|0;if((c|0)==(b|0)){f[d>>2]=b;return}do{c=c+-4|0;a=f[c>>2]|0;if(a|0?(g=a+8|0,e=f[g>>2]|0,f[g>>2]=e-1,(e|0)==1):0)X4(a,1,1);f[c>>2]=0}while((c|0)!=(b|0));f[d>>2]=b;return}function $Va(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=f[a+52>>2]|0;e=f[a+56>>2]|0;a=b+(e>>1)|0;if(e&1)d=f[(f[a>>2]|0)+d>>2]|0;a=sk[d&2047](a)|0;b=a+4|0;d=f[b>>2]|0;if((d|0)==(f[a+8>>2]|0)){PAa(a,c);return}a=f[c>>2]|0;f[d>>2]=a;if(a){d=a+8|0;f[d>>2]=(f[d>>2]|0)+1;d=f[b>>2]|0}f[b>>2]=d+4;return}function aWa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=u;u=u+16|0;j=l+4|0;k=l;e=f[a+52>>2]|0;i=f[a+56>>2]|0;a=b+(i>>1)|0;if(i&1)e=f[(f[a>>2]|0)+e>>2]|0;h=sk[e&2047](a)|0;i=h+4|0;e=f[i>>2]|0;a=f[h>>2]|0;b=e-a>>2;do if(b>>>0<=c>>>0){g=c+1|0;if(g>>>0>b>>>0){eWa(h,g-b|0);break}if(g>>>0<b>>>0){b=a+(g<<2)|0;if((b|0)!=(e|0))do{e=e+-4|0;a=f[e>>2]|0;if(a|0?(m=a+8|0,g=f[m>>2]|0,f[m>>2]=g-1,(g|0)==1):0)X4(a,1,1);f[e>>2]=0}while((e|0)!=(b|0));f[i>>2]=b}}while(0);f[k>>2]=(f[h>>2]|0)+(c<<2);f[j>>2]=f[k>>2];fWa(h,j,d)|0;u=l;return}function bWa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0;e=f[a+52>>2]|0;i=f[a+56>>2]|0;a=b+(i>>1)|0;if(i&1)e=f[(f[a>>2]|0)+e>>2]|0;h=sk[e&2047](a)|0;i=h+4|0;e=f[i>>2]|0;a=f[h>>2]|0;b=e-a>>2;do if(b>>>0<=c>>>0){g=c+1|0;if(g>>>0>b>>>0){eWa(h,g-b|0);break}if(g>>>0<b>>>0){b=a+(g<<2)|0;if((b|0)!=(e|0))do{e=e+-4|0;a=f[e>>2]|0;if(a|0?(j=a+8|0,g=f[j>>2]|0,f[j>>2]=g-1,(g|0)==1):0)X4(a,1,1);f[e>>2]=0}while((e|0)!=(b|0));f[i>>2]=b}}while(0);a=(f[h>>2]|0)+(c<<2)|0;b=f[a>>2]|0;e=f[d>>2]|0;if((b|0)==(e|0))return;f[a>>2]=e;if(e|0){j=e+8|0;f[j>>2]=(f[j>>2]|0)+1}if(!b)return;d=b+8|0;j=f[d>>2]|0;f[d>>2]=j-1;if((j|0)!=1)return;X4(b,1,1);return}function cWa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=f[a+52>>2]|0;e=f[a+56>>2]|0;a=b+(e>>1)|0;if(e&1)d=f[(f[a>>2]|0)+d>>2]|0;b=sk[d&2047](a)|0;e=f[b>>2]|0;return ((f[b+4>>2]|0)-e>>2>>>0>c>>>0?e+(c<<2)|0:0)|0}function dWa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=f[a+44>>2]|0;e=f[a+48>>2]|0;a=b+(e>>1)|0;if(e&1)d=f[(f[a>>2]|0)+d>>2]|0;b=sk[d&2047](a)|0;e=f[b>>2]|0;return ((f[b+4>>2]|0)-e>>2>>>0>c>>>0?e+(c<<2)|0:0)|0}function eWa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=a+8|0;e=f[m>>2]|0;n=a+4|0;d=f[n>>2]|0;c=d;if(e-d>>2>>>0>=b>>>0){iGb(d|0,0,b<<2|0)|0;f[n>>2]=c+(b<<2);return}j=f[a>>2]|0;h=d-j>>2;d=h+b|0;g=j;if(d>>>0>1073741823)KEb(a);l=e-j|0;e=l>>1;e=l>>2>>>0<536870911?(e>>>0<d>>>0?d:e):1073741823;do if(e)if(e>>>0>1073741823){n=mb(8)|0;RDb(n,238482);f[n>>2]=144484;qb(n|0,84192,1464)}else{i=LDb(e<<2)|0;break}else i=0;while(0);d=i+(h<<2)|0;l=i+(e<<2)|0;iGb(d|0,0,b<<2|0)|0;k=d+(b<<2)|0;if((c|0)==(g|0))e=j;else{b=h+-1-((c+-4+(0-j)|0)>>>2)|0;while(1){c=c+-4|0;e=f[c>>2]|0;f[d+-4>>2]=e;if(e|0){j=e+8|0;f[j>>2]=(f[j>>2]|0)+1}if((c|0)==(g|0))break;else d=d+-4|0}e=f[a>>2]|0;d=i+(b<<2)|0;g=e;c=f[n>>2]|0}f[a>>2]=d;f[n>>2]=k;f[m>>2]=l;if((c|0)!=(g|0))do{c=c+-4|0;d=f[c>>2]|0;if(d|0?(m=d+8|0,n=f[m>>2]|0,f[m>>2]=n-1,(n|0)==1):0)X4(d,1,1);f[c>>2]=0}while((c|0)!=(g|0));if(!e)return;NDb(e);return}function fWa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=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;m=f[a>>2]|0;o=m;j=(f[b>>2]|0)-o|0;n=j>>2;q=m+(n<<2)|0;r=a+4|0;b=f[r>>2]|0;p=a+8|0;l=f[p>>2]|0;d=b;e=l;if(b>>>0<l>>>0){if((q|0)==(b|0)){c=f[c>>2]|0;f[q>>2]=c;if(!c)c=q;else{c=c+8|0;f[c>>2]=(f[c>>2]|0)+1;c=f[r>>2]|0}f[r>>2]=c+4;r=q;return r|0}i=d-(q+4)|0;g=q+(i>>2<<2)|0;if(g>>>0<b>>>0){h=g;d=b;do{e=f[h>>2]|0;f[d>>2]=e;if(e){d=e+8|0;f[d>>2]=(f[d>>2]|0)+1;d=f[r>>2]|0}h=h+4|0;d=d+4|0;f[r>>2]=d}while(h>>>0<b>>>0)}if(i|0)do{g=g+-4|0;b=b+-4|0;d=f[b>>2]|0;e=f[g>>2]|0;if((d|0)!=(e|0)){f[b>>2]=e;if(e|0){a=e+8|0;f[a>>2]=(f[a>>2]|0)+1}if(d|0?(p=d+8|0,a=f[p>>2]|0,f[p>>2]=a-1,(a|0)==1):0)X4(d,1,1)}}while((g|0)!=(q|0));if(q>>>0<=c>>>0)c=(f[r>>2]|0)>>>0>c>>>0?c+4|0:c;b=f[q>>2]|0;c=f[c>>2]|0;if((b|0)==(c|0)){r=q;return r|0}f[q>>2]=c;if(c|0){r=c+8|0;f[r>>2]=(f[r>>2]|0)+1}if(!b){r=q;return r|0}a=b+8|0;r=f[a>>2]|0;f[a>>2]=r-1;if((r|0)!=1){r=q;return r|0}X4(b,1,1);r=q;return r|0}b=(d-o>>2)+1|0;if(b>>>0>1073741823)KEb(a);d=e-o|0;g=d>>1;g=d>>2>>>0<536870911?(g>>>0<b>>>0?b:g):1073741823;b=j>>2;d=(g|0)==0;do if(!d)if(g>>>0>1073741823){r=mb(8)|0;RDb(r,238482);f[r>>2]=144484;qb(r|0,84192,1464)}else{l=LDb(g<<2)|0;k=l;break}else{k=0;l=0}while(0);h=l+(b<<2)|0;e=h;i=l+(g<<2)|0;do if((b|0)==(g|0)){if((j|0)>0){k=h+(((g+1|0)/-2|0)<<2)|0;j=k;break}d=d?1:g<<2>>1;b=d>>>2;do if(d)if(d>>>0>1073741823){r=mb(8)|0;RDb(r,238482);f[r>>2]=144484;qb(r|0,84192,1464)}else{e=LDb(d<<2)|0;break}else e=0;while(0);g=e+(b<<2)|0;b=g;d=e+(d<<2)|0;if(!l){j=b;k=g;i=d}else{NDb(k);j=b;k=g;i=d}}else{j=e;k=h}while(0);c=f[c>>2]|0;f[k>>2]=c;if(c|0){l=c+8|0;f[l>>2]=(f[l>>2]|0)+1}e=k+4|0;l=j;h=f[a>>2]|0;if((h|0)==(q|0)){b=l;h=j}else{b=~((m+(n+-1<<2)-h|0)>>>2);c=q;d=l;while(1){c=c+-4|0;g=f[c>>2]|0;f[d+-4>>2]=g;if(g|0){m=g+8|0;f[m>>2]=(f[m>>2]|0)+1}if((c|0)==(h|0))break;else d=d+-4|0}h=l+(b<<2)|0;b=h}g=f[r>>2]|0;if((g|0)==(q|0))c=q;else{d=((g+(~n<<2)-o|0)>>>2)+2|0;b=q;while(1){c=f[b>>2]|0;f[e>>2]=c;if(c|0){q=c+8|0;f[q>>2]=(f[q>>2]|0)+1}b=b+4|0;if((b|0)==(g|0))break;else e=e+4|0}e=k+(d<<2)|0;b=h;c=f[r>>2]|0}d=f[a>>2]|0;f[a>>2]=b;f[r>>2]=e;f[p>>2]=i;if((c|0)!=(d|0))do{c=c+-4|0;b=f[c>>2]|0;if(b|0?(q=b+8|0,r=f[q>>2]|0,f[q>>2]=r-1,(r|0)==1):0)X4(b,1,1);f[c>>2]=0}while((c|0)!=(d|0));if(!d){r=l;return r|0}NDb(d);r=l;return r|0}function gWa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;l=u;u=u+32|0;k=l;if(!c){u=l;return}switch(f[c+52>>2]|0){case 1:{d=LDb(16)|0;f[k>>2]=d;f[k+8>>2]=-2147483632;f[k+4>>2]=13;h=d;i=226057;j=h+13|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[d+13>>0]=0;f[k+12>>2]=50;b[k+16>>0]=1;d=a+292|0;j=f[d>>2]|0;Vk[f[(f[j>>2]|0)+84>>2]&1023](j,k);if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);e=f[c+60>>2]|0;g=LDb(16)|0;f[k>>2]=g;f[k+8>>2]=-2147483632;f[k+4>>2]=13;h=g;i=226057;j=h+13|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[g+13>>0]=0;f[k+12>>2]=e;b[k+16>>0]=1;j=f[d>>2]|0;Vk[f[(f[j>>2]|0)+84>>2]&1023](j,k);if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);if((f[a+304>>2]|0)>96){k=f[d>>2]|0;Vk[f[(f[k>>2]|0)+36>>2]&1023](k,f[c+56>>2]|0)}k=f[d>>2]|0;Vk[f[(f[k>>2]|0)+36>>2]&1023](k,f[c+64>>2]|0);k=f[d>>2]|0;Vk[f[(f[k>>2]|0)+36>>2]&1023](k,f[c+68>>2]|0);k=f[d>>2]|0;Vk[f[(f[k>>2]|0)+72>>2]&1023](k,1049);u=l;return}case 2:{d=LDb(16)|0;f[k>>2]=d;f[k+8>>2]=-2147483632;f[k+4>>2]=13;h=d;i=226057;j=h+13|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[d+13>>0]=0;f[k+12>>2]=51;b[k+16>>0]=1;d=a+292|0;j=f[d>>2]|0;Vk[f[(f[j>>2]|0)+84>>2]&1023](j,k);if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);e=f[c+60>>2]|0;g=LDb(16)|0;f[k>>2]=g;f[k+8>>2]=-2147483632;f[k+4>>2]=13;h=g;i=226057;j=h+13|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[g+13>>0]=0;f[k+12>>2]=e;b[k+16>>0]=1;j=f[d>>2]|0;Vk[f[(f[j>>2]|0)+84>>2]&1023](j,k);if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);if((f[a+304>>2]|0)>96){k=f[d>>2]|0;Vk[f[(f[k>>2]|0)+36>>2]&1023](k,f[c+56>>2]|0)}k=f[d>>2]|0;Vk[f[(f[k>>2]|0)+36>>2]&1023](k,f[c+80>>2]|0);hWa(a,c,(f[c+72>>2]|0)-(f[c+68>>2]|0)>>2,4);u=l;return}case 3:{d=LDb(16)|0;f[k>>2]=d;f[k+8>>2]=-2147483632;f[k+4>>2]=13;h=d;i=226057;j=h+13|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[d+13>>0]=0;f[k+12>>2]=52;b[k+16>>0]=1;d=a+292|0;j=f[d>>2]|0;Vk[f[(f[j>>2]|0)+84>>2]&1023](j,k);if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);e=f[c+60>>2]|0;g=LDb(16)|0;f[k>>2]=g;f[k+8>>2]=-2147483632;f[k+4>>2]=13;h=g;i=226057;j=h+13|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[g+13>>0]=0;f[k+12>>2]=e;b[k+16>>0]=1;j=f[d>>2]|0;Vk[f[(f[j>>2]|0)+84>>2]&1023](j,k);if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);if((f[a+304>>2]|0)>96){k=f[d>>2]|0;Vk[f[(f[k>>2]|0)+36>>2]&1023](k,f[c+56>>2]|0)}iWa(a,c,(f[c+72>>2]|0)-(f[c+68>>2]|0)|0,4);u=l;return}case 4:{d=LDb(16)|0;f[k>>2]=d;f[k+8>>2]=-2147483632;f[k+4>>2]=13;h=d;i=226057;j=h+13|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[d+13>>0]=0;f[k+12>>2]=53;b[k+16>>0]=1;d=a+292|0;j=f[d>>2]|0;Vk[f[(f[j>>2]|0)+84>>2]&1023](j,k);if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);e=f[c+60>>2]|0;g=LDb(16)|0;f[k>>2]=g;f[k+8>>2]=-2147483632;f[k+4>>2]=13;h=g;i=226057;j=h+13|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[g+13>>0]=0;f[k+12>>2]=e;b[k+16>>0]=1;j=f[d>>2]|0;Vk[f[(f[j>>2]|0)+84>>2]&1023](j,k);if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);if((f[a+304>>2]|0)>96){k=f[d>>2]|0;Vk[f[(f[k>>2]|0)+36>>2]&1023](k,f[c+56>>2]|0)}jWa(a,c,(f[c+72>>2]|0)-(f[c+68>>2]|0)>>1,4);u=l;return}case 5:{d=LDb(16)|0;f[k>>2]=d;f[k+8>>2]=-2147483632;f[k+4>>2]=13;h=d;i=226057;j=h+13|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[d+13>>0]=0;f[k+12>>2]=54;b[k+16>>0]=1;d=a+292|0;j=f[d>>2]|0;Vk[f[(f[j>>2]|0)+84>>2]&1023](j,k);if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);e=f[c+60>>2]|0;g=LDb(16)|0;f[k>>2]=g;f[k+8>>2]=-2147483632;f[k+4>>2]=13;h=g;i=226057;j=h+13|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[g+13>>0]=0;f[k+12>>2]=e;b[k+16>>0]=1;j=f[d>>2]|0;Vk[f[(f[j>>2]|0)+84>>2]&1023](j,k);if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);if((f[a+304>>2]|0)>96){k=f[d>>2]|0;Vk[f[(f[k>>2]|0)+36>>2]&1023](k,f[c+56>>2]|0)}kWa(a,c,(f[c+72>>2]|0)-(f[c+68>>2]|0)>>2,4);u=l;return}default:{d=LDb(64)|0;f[k>>2]=d;f[k+8>>2]=-2147483584;f[k+4>>2]=62;h=d;i=235184;j=h+62|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[d+62>>0]=0;g=LDb(36)|0;OPa(g,a+112|0,k);d=a+296|0;e=f[d>>2]|0;if(((e|0)!=(g|0)?(f[d>>2]=g,a=g+8|0,f[a>>2]=(f[a>>2]|0)+1,e|0):0)?(j=e+8|0,a=f[j>>2]|0,f[j>>2]=a-1,(a|0)==1):0)X4(e,1,1);if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);u=l;return}}}function hWa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0;g=a+292|0;e=f[g>>2]|0;Vk[f[(f[e>>2]|0)+36>>2]&1023](e,c);e=f[g>>2]|0;Vk[f[(f[e>>2]|0)+88>>2]&1023](e,a+24|0);if(d>>>0<=1){d=f[g>>2]|0;Vk[f[(f[d>>2]|0)+72>>2]&1023](d,1049);if((c|0)>0){e=b+68|0;b=0;do{d=f[g>>2]|0;Vk[f[(f[d>>2]|0)+36>>2]&1023](d,f[(f[e>>2]|0)+(b<<2)>>2]|0);d=f[g>>2]|0;Vk[f[(f[d>>2]|0)+72>>2]&1023](d,1049);b=b+1|0}while((b|0)!=(c|0))}}else{if((c|0)>0){e=b+68|0;b=0;do{if(!((b>>>0)%(d>>>0)|0)){h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+72>>2]&1023](h,1049);h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+36>>2]&1023](h,f[(f[e>>2]|0)+(b<<2)>>2]|0)}else{h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+36>>2]&1023](h,f[(f[e>>2]|0)+(b<<2)>>2]|0)}b=b+1|0}while((b|0)!=(c|0))}h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+72>>2]&1023](h,1049)}h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+88>>2]&1023](h,a+40|0);h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+72>>2]&1023](h,1049);return}function iWa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0;h=a+292|0;g=f[h>>2]|0;Vk[f[(f[g>>2]|0)+36>>2]&1023](g,d);g=f[h>>2]|0;Vk[f[(f[g>>2]|0)+88>>2]&1023](g,a+24|0);if(e>>>0<=1){e=f[h>>2]|0;Vk[f[(f[e>>2]|0)+72>>2]&1023](e,1049);if((d|0)>0){g=c+68|0;c=0;do{e=f[h>>2]|0;Vk[f[(f[e>>2]|0)+24>>2]&1023](e,b[(f[g>>2]|0)+c>>0]|0);e=f[h>>2]|0;Vk[f[(f[e>>2]|0)+72>>2]&1023](e,1049);c=c+1|0}while((c|0)!=(d|0))}}else{if((d|0)>0){g=c+68|0;c=0;do{if(!((c>>>0)%(e>>>0)|0)){i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+72>>2]&1023](i,1049);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+24>>2]&1023](i,b[(f[g>>2]|0)+c>>0]|0)}else{i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+24>>2]&1023](i,b[(f[g>>2]|0)+c>>0]|0)}c=c+1|0}while((c|0)!=(d|0))}i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+72>>2]&1023](i,1049)}i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+88>>2]&1023](i,a+40|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+72>>2]&1023](i,1049);return}function jWa(a,b,c,e){a=a|0;b=b|0;c=c|0;e=e|0;var g=0,h=0,i=0;h=a+292|0;g=f[h>>2]|0;Vk[f[(f[g>>2]|0)+36>>2]&1023](g,c);g=f[h>>2]|0;Vk[f[(f[g>>2]|0)+88>>2]&1023](g,a+24|0);if(e>>>0<=1){e=f[h>>2]|0;Vk[f[(f[e>>2]|0)+72>>2]&1023](e,1049);if((c|0)>0){g=b+68|0;b=0;do{e=f[h>>2]|0;Vk[f[(f[e>>2]|0)+32>>2]&1023](e,d[(f[g>>2]|0)+(b<<1)>>1]|0);e=f[h>>2]|0;Vk[f[(f[e>>2]|0)+72>>2]&1023](e,1049);b=b+1|0}while((b|0)!=(c|0))}}else{if((c|0)>0){g=b+68|0;b=0;do{if(!((b>>>0)%(e>>>0)|0)){i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+72>>2]&1023](i,1049);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+32>>2]&1023](i,d[(f[g>>2]|0)+(b<<1)>>1]|0)}else{i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+32>>2]&1023](i,d[(f[g>>2]|0)+(b<<1)>>1]|0)}b=b+1|0}while((b|0)!=(c|0))}i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+72>>2]&1023](i,1049)}i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+88>>2]&1023](i,a+40|0);i=f[h>>2]|0;Vk[f[(f[i>>2]|0)+72>>2]&1023](i,1049);return}function kWa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0;g=a+292|0;e=f[g>>2]|0;Vk[f[(f[e>>2]|0)+36>>2]&1023](e,c);e=f[g>>2]|0;Vk[f[(f[e>>2]|0)+88>>2]&1023](e,a+24|0);if(d>>>0<=1){d=f[g>>2]|0;Vk[f[(f[d>>2]|0)+72>>2]&1023](d,1049);if((c|0)>0){e=b+68|0;b=0;do{d=f[g>>2]|0;Vk[f[(f[d>>2]|0)+40>>2]&1023](d,f[(f[e>>2]|0)+(b<<2)>>2]|0);d=f[g>>2]|0;Vk[f[(f[d>>2]|0)+72>>2]&1023](d,1049);b=b+1|0}while((b|0)!=(c|0))}}else{if((c|0)>0){e=b+68|0;b=0;do{if(!((b>>>0)%(d>>>0)|0)){h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+72>>2]&1023](h,1049);h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+40>>2]&1023](h,f[(f[e>>2]|0)+(b<<2)>>2]|0)}else{h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+40>>2]&1023](h,f[(f[e>>2]|0)+(b<<2)>>2]|0)}b=b+1|0}while((b|0)!=(c|0))}h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+72>>2]&1023](h,1049)}h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+88>>2]&1023](h,a+40|0);h=f[g>>2]|0;Vk[f[(f[h>>2]|0)+72>>2]&1023](h,1049);return}function lWa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;g=u;u=u+16|0;e=g;if((f[a+92>>2]|0)<=111){mWa(e,a);c=f[b>>2]|0;d=f[e>>2]|0;if((c|0)!=(d|0)){f[b>>2]=d;if(d|0){b=d+8|0;f[b>>2]=(f[b>>2]|0)+1}if(c|0?(d=c+8|0,b=f[d>>2]|0,f[d>>2]=b-1,(b|0)==1):0)X4(c,1,1);c=f[e>>2]|0}if(c|0?(e=c+8|0,b=f[e>>2]|0,f[e>>2]=b-1,(b|0)==1):0)X4(c,1,1);u=g;return a|0}_Pa(e,a,0);d=f[e>>2]|0;do if(d){c=bFb(d,58336,59464,0)|0;if(c){d=c+8|0;f[d>>2]=(f[d>>2]|0)+1;d=f[e>>2]|0;if(!d)break}else c=0;h=d+8|0;e=f[h>>2]|0;f[h>>2]=e-1;if((e|0)==1)X4(d,1,1)}else c=0;while(0);d=f[b>>2]|0;if((d|0)!=(c|0)){f[b>>2]=c;if(c|0){h=c+8|0;f[h>>2]=(f[h>>2]|0)+1}if(d|0?(b=d+8|0,h=f[b>>2]|0,f[b>>2]=h-1,(h|0)==1):0)X4(d,1,1)}if(!c){u=g;return a|0}b=c+8|0;h=f[b>>2]|0;f[b>>2]=h-1;if((h|0)!=1){u=g;return a|0}X4(c,1,1);u=g;return a|0}function mWa(a,c){a=a|0;c=c|0;var e=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,v=0,w=0,x=0,y=0;y=u;u=u+64|0;w=y+44|0;x=y+24|0;t=y+20|0;s=y+8|0;v=y+4|0;m=y;f[w>>2]=0;f[w+4>>2]=0;f[w+8>>2]=0;e=LDb(16)|0;f[w>>2]=e;f[w+8>>2]=-2147483632;f[w+4>>2]=13;h=e;i=226057;j=h+13|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[e+13>>0]=0;g=w+12|0;f[g>>2]=0;b[w+16>>0]=1;f[x>>2]=0;f[x+4>>2]=0;f[x+8>>2]=0;e=LDb(16)|0;f[x>>2]=e;f[x+8>>2]=-2147483632;f[x+4>>2]=13;h=e;i=226057;j=h+13|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[e+13>>0]=0;h=x+12|0;f[h>>2]=0;b[x+16>>0]=1;f[t>>2]=0;r=c+112|0;q=f[r>>2]|0;Vk[f[(f[q>>2]|0)+80>>2]&1023](q,w);gX(c);q=f[r>>2]|0;Vk[f[(f[q>>2]|0)+80>>2]&1023](q,x);gX(c);if((f[c+92>>2]|0)>96){q=f[r>>2]|0;Vk[f[(f[q>>2]|0)+44>>2]&1023](q,t);gX(c)}switch(f[g>>2]|0){case 50:{f[s>>2]=0;f[v>>2]=0;e=f[r>>2]|0;Vk[f[(f[e>>2]|0)+40>>2]&1023](e,s);gX(c);e=f[r>>2]|0;Vk[f[(f[e>>2]|0)+40>>2]&1023](e,v);gX(c);e=LDb(72)|0;q=f[h>>2]|0;r=f[s>>2]|0;s=f[v>>2]|0;CCa(e,1);v=e+12|0;f[v>>2]=0;f[v+4>>2]=0;f[v+8>>2]=0;f[e+24>>2]=2;v=e+28|0;f[v>>2]=0;f[v+4>>2]=0;f[v+8>>2]=0;f[v+12>>2]=0;f[v+16>>2]=0;f[v+20>>2]=0;f[e+52>>2]=1;v=e+56|0;f[v>>2]=0;f[e+60>>2]=q;f[e>>2]=101028;f[e+64>>2]=r;f[e+68>>2]=s;s=e+8|0;f[s>>2]=(f[s>>2]|0)+1;f[v>>2]=f[t>>2];break}case 51:{f[s>>2]=0;f[v>>2]=0;f[m>>2]=0;e=f[r>>2]|0;Vk[f[(f[e>>2]|0)+40>>2]&1023](e,s);gX(c);e=f[r>>2]|0;Vk[f[(f[e>>2]|0)+44>>2]&1023](e,m);gX(c);e=f[r>>2]|0;Vk[f[(f[e>>2]|0)+84>>2]&1023](e,c+24|0);gX(c);e=LDb(84)|0;j=f[h>>2]|0;s=f[s>>2]|0;CCa(e,1);i=e+12|0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[e+24>>2]=2;i=e+28|0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;f[e+52>>2]=2;i=e+56|0;f[i>>2]=0;f[e+60>>2]=j;j=e+68|0;f[j>>2]=0;k=e+72|0;f[k>>2]=0;l=e+76|0;f[l>>2]=0;f[e>>2]=101268;f[e+64>>2]=101508;f[e+80>>2]=s;if(f[m>>2]|0){g=0;do{h=f[r>>2]|0;Vk[f[(f[h>>2]|0)+40>>2]&1023](h,v);gX(c);h=f[k>>2]|0;if((h|0)==(f[l>>2]|0))Q4(j,v);else{f[h>>2]=f[v>>2];f[k>>2]=h+4}g=g+1|0}while(g>>>0<(f[m>>2]|0)>>>0)}v=f[r>>2]|0;Vk[f[(f[v>>2]|0)+84>>2]&1023](v,c+40|0);gX(c);v=e+8|0;f[v>>2]=(f[v>>2]|0)+1;f[i>>2]=f[t>>2];break}case 52:{e=LDb(80)|0;n=f[h>>2]|0;CCa(e,1);m=e+12|0;f[m>>2]=0;f[m+4>>2]=0;f[m+8>>2]=0;f[e+24>>2]=2;m=e+28|0;f[m>>2]=0;f[m+4>>2]=0;f[m+8>>2]=0;f[m+12>>2]=0;f[m+16>>2]=0;f[m+20>>2]=0;f[e+52>>2]=3;m=e+56|0;f[m>>2]=0;f[e+60>>2]=n;n=e+68|0;f[n>>2]=0;o=e+72|0;f[o>>2]=0;p=e+76|0;f[p>>2]=0;f[e>>2]=98224;f[e+64>>2]=98488;f[s>>2]=0;b[v>>0]=0;q=f[r>>2]|0;Vk[f[(f[q>>2]|0)+44>>2]&1023](q,s);gX(c);q=f[r>>2]|0;Vk[f[(f[q>>2]|0)+84>>2]&1023](q,c+24|0);gX(c);a:do if(f[s>>2]|0){l=0;while(1){g=f[r>>2]|0;Vk[f[(f[g>>2]|0)+28>>2]&1023](g,v);gX(c);g=f[o>>2]|0;q=f[p>>2]|0;h=q;if((g|0)==(q|0)){q=f[n>>2]|0;j=g-q|0;g=j+1|0;k=q;if((g|0)<0)break;h=h-q|0;i=h<<1;i=h>>>0<1073741823?(i>>>0<g>>>0?g:i):2147483647;if(!i)h=0;else h=LDb(i)|0;g=h+j|0;b[g>>0]=b[v>>0]|0;if((j|0)>0)gGb(h|0,k|0,j|0)|0;f[n>>2]=h;f[o>>2]=g+1;f[p>>2]=h+i;if(q|0)NDb(k)}else{b[g>>0]=b[v>>0]|0;f[o>>2]=(f[o>>2]|0)+1}l=l+1|0;if(l>>>0>=(f[s>>2]|0)>>>0)break a}KEb(n)}while(0);v=f[r>>2]|0;Vk[f[(f[v>>2]|0)+84>>2]&1023](v,c+40|0);gX(c);v=e+8|0;f[v>>2]=(f[v>>2]|0)+1;f[m>>2]=f[t>>2];break}case 53:{e=LDb(80)|0;i=f[h>>2]|0;CCa(e,1);h=e+12|0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;f[e+24>>2]=2;h=e+28|0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;f[h+12>>2]=0;f[h+16>>2]=0;f[h+20>>2]=0;f[e+52>>2]=4;h=e+56|0;f[h>>2]=0;f[e+60>>2]=i;i=e+68|0;f[i>>2]=0;j=e+72|0;f[j>>2]=0;k=e+76|0;f[k>>2]=0;f[e>>2]=96716;f[e+64>>2]=96980;f[s>>2]=0;d[v>>1]=0;q=f[r>>2]|0;Vk[f[(f[q>>2]|0)+44>>2]&1023](q,s);gX(c);q=f[r>>2]|0;Vk[f[(f[q>>2]|0)+84>>2]&1023](q,c+24|0);gX(c);if(f[s>>2]|0){g=0;do{l=f[r>>2]|0;Vk[f[(f[l>>2]|0)+36>>2]&1023](l,v);gX(c);l=f[j>>2]|0;if((l|0)==(f[k>>2]|0))UP(i,v);else{d[l>>1]=d[v>>1]|0;f[j>>2]=l+2}g=g+1|0}while(g>>>0<(f[s>>2]|0)>>>0)}v=f[r>>2]|0;Vk[f[(f[v>>2]|0)+84>>2]&1023](v,c+40|0);gX(c);v=e+8|0;f[v>>2]=(f[v>>2]|0)+1;f[h>>2]=f[t>>2];break}case 54:{e=LDb(80)|0;i=f[h>>2]|0;CCa(e,1);h=e+12|0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;f[e+24>>2]=2;h=e+28|0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;f[h+12>>2]=0;f[h+16>>2]=0;f[h+20>>2]=0;f[e+52>>2]=5;h=e+56|0;f[h>>2]=0;f[e+60>>2]=i;i=e+68|0;f[i>>2]=0;j=e+72|0;f[j>>2]=0;k=e+76|0;f[k>>2]=0;f[e>>2]=98520;f[e+64>>2]=98784;f[s>>2]=0;f[v>>2]=0;q=f[r>>2]|0;Vk[f[(f[q>>2]|0)+44>>2]&1023](q,s);gX(c);q=f[r>>2]|0;Vk[f[(f[q>>2]|0)+84>>2]&1023](q,c+24|0);gX(c);if(f[s>>2]|0){g=0;do{l=f[r>>2]|0;Vk[f[(f[l>>2]|0)+44>>2]&1023](l,v);gX(c);l=f[j>>2]|0;if((l|0)==(f[k>>2]|0))JD(i,v);else{f[l>>2]=f[v>>2];f[j>>2]=l+4}g=g+1|0}while(g>>>0<(f[s>>2]|0)>>>0)}v=f[r>>2]|0;Vk[f[(f[v>>2]|0)+84>>2]&1023](v,c+40|0);gX(c);v=e+8|0;f[v>>2]=(f[v>>2]|0)+1;f[h>>2]=f[t>>2];break}default:{f[s>>2]=0;f[s+4>>2]=0;f[s+8>>2]=0;e=LDb(64)|0;f[s>>2]=e;f[s+8>>2]=-2147483584;f[s+4>>2]=56;h=e;i=235247;j=h+56|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[e+56>>0]=0;e=LDb(36)|0;hX(e,c+100|0,s);g=c+116|0;h=f[g>>2]|0;if(((h|0)!=(e|0)?(f[g>>2]=e,v=e+8|0,f[v>>2]=(f[v>>2]|0)+1,h|0):0)?(t=h+8|0,v=f[t>>2]|0,f[t>>2]=v-1,(v|0)==1):0)X4(h,1,1);if((b[s+11>>0]|0)<0)NDb(f[s>>2]|0);e=0}}if(!(f[c+116>>2]|0)){f[a>>2]=e;if(e|0){c=e+8|0;f[c>>2]=(f[c>>2]|0)+1}}else f[a>>2]=0;if((b[x+11>>0]|0)<0)NDb(f[x>>2]|0);if((b[w+11>>0]|0)<0)NDb(f[w>>2]|0);if(!e){u=y;return}w=e+8|0;x=f[w>>2]|0;f[w>>2]=x-1;if((x|0)!=1){u=y;return}X4(e,1,1);u=y;return}function nWa(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,q=0,r=0,s=0;s=u;u=u+16|0;k=s;CCa(a,1);f[a>>2]=127340;yGa(a+12|0,0);yGa(a+24|0,0);f[a+44>>2]=0;f[a+48>>2]=0;f[a+40>>2]=a+44;f[a+56>>2]=0;q=a+60|0;f[q>>2]=0;f[a+64>>2]=0;yGa(a+72|0,0);e=a+84|0;f[e>>2]=0;j=a+88|0;l=a+92|0;m=a+96|0;o=a+100|0;r=a+120|0;f[r>>2]=0;f[a+132>>2]=0;f[a+164>>2]=0;b[a+36>>0]=0;b[a+52>>0]=0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;b[a+53>>0]=1;b[a+54>>0]=0;f[a+68>>2]=0;f[e>>2]=0;e=a+104|0;f[e>>2]=0;d=Th(235594)|0;if(!d){d=Th(235622)|0;if(d|0)g=3}else g=3;do if((g|0)==3){if(!(kpb(d,235650)|0)){f[e>>2]=0;break}if(kpb(d,235662)|0?kpb(d,235674)|0:0){if(!(kpb(d,235677)|0)){f[e>>2]=2;break}if(kpb(d,235681)|0?kpb(d,235694)|0:0)break;f[e>>2]=3;break}f[e>>2]=1}while(0);e=a+108|0;b[e>>0]=0;d=Th(235697)|0;if(d|0){if(((kpb(d,235722)|0)!=0?(kpb(d,235726)|0)!=0:0)?(kpb(d,235730)|0)!=0:0)d=(kpb(d,231851)|0)==0;else d=1;b[e>>0]=d&1;if(S0(3)|0){i=Nv(Mv(3)|0,235733,32)|0;i=fub(i,(b[e>>0]|0)!=0)|0;Ktb(k,i+(f[(f[i>>2]|0)+-12>>2]|0)|0);h=Bvb(k,295164)|0;h=wk[f[(f[h>>2]|0)+28>>2]&1023](h,10)|0;Cvb(k);rub(i,h)|0;Rtb(i)|0}}b[a+109>>0]=1;b[a+110>>0]=0;b[a+111>>0]=0;n[a+112>>2]=1.0;e=a+116|0;b[e>>0]=1;d=Th(235766)|0;if(d|0){if(((kpb(d,235722)|0)!=0?(kpb(d,235726)|0)!=0:0)?(kpb(d,235730)|0)!=0:0)d=(kpb(d,231851)|0)==0;else d=1;b[e>>0]=d&1}d=a+124|0;f[d>>2]=300;e=Th(235796)|0;if(e|0?(i=$pb(e)|0,f[d>>2]=i,S0(3)|0):0){i=Nv(Mv(3)|0,235813,32)|0;i=jub(i,f[d>>2]|0)|0;Ktb(k,i+(f[(f[i>>2]|0)+-12>>2]|0)|0);h=Bvb(k,295164)|0;h=wk[f[(f[h>>2]|0)+28>>2]&1023](h,10)|0;Cvb(k);rub(i,h)|0;Rtb(i)|0}e=a+128|0;b[e>>0]=1;d=Th(235846)|0;if(d|0){if(((kpb(d,235722)|0)!=0?(kpb(d,235726)|0)!=0:0)?(kpb(d,235730)|0)!=0:0)d=(kpb(d,231851)|0)==0;else d=1;b[e>>0]=d&1}p[a+136>>3]=1797693134862315708145274.0e284;p[a+144>>3]=-1797693134862315708145274.0e284;p[a+152>>3]=0.0;f[a+160>>2]=0;e=LDb(84)|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;d=LDb(32)|0;f[k>>2]=d;f[k+8>>2]=-2147483616;f[k+4>>2]=16;g=d;h=230407;i=g+16|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[d+16>>0]=0;uLa(e,a,k);d=f[j>>2]|0;if(((d|0)!=(e|0)?(f[j>>2]=e,j=e+8|0,f[j>>2]=(f[j>>2]|0)+1,d|0):0)?(i=d+8|0,j=f[i>>2]|0,f[i>>2]=j-1,(j|0)==1):0)X4(d,1,1);if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);e=LDb(84)|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;d=LDb(32)|0;f[k>>2]=d;f[k+8>>2]=-2147483616;f[k+4>>2]=16;g=d;h=230424;i=g+16|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[d+16>>0]=0;uLa(e,a,k);d=f[l>>2]|0;if(((d|0)!=(e|0)?(f[l>>2]=e,l=e+8|0,f[l>>2]=(f[l>>2]|0)+1,d|0):0)?(j=d+8|0,l=f[j>>2]|0,f[j>>2]=l-1,(l|0)==1):0)X4(d,1,1);if((b[k+11>>0]|0)<0)NDb(f[k>>2]|0);d=LDb(44)|0;vLa(d,a);e=f[m>>2]|0;if(((e|0)!=(d|0)?(f[m>>2]=d,m=d+8|0,f[m>>2]=(f[m>>2]|0)+1,e|0):0)?(l=e+8|0,m=f[l>>2]|0,f[l>>2]=m-1,(m|0)==1):0)X4(e,1,1);d=LDb(44)|0;vLa(d,a);e=f[o>>2]|0;if(((e|0)!=(d|0)?(f[o>>2]=d,o=d+8|0,f[o>>2]=(f[o>>2]|0)+1,e|0):0)?(m=e+8|0,o=f[m>>2]|0,f[m>>2]=o-1,(o|0)==1):0)X4(e,1,1);d=Th(235865)|0;a:do if(d|0){if(!(kpb(d,235893)|0)){c=f[a+56>>2]|0;if((c|0)==(f[q>>2]|0))break;while(1){c=c+4|0;if((c|0)==(f[q>>2]|0))break a}}if(!(kpb(d,235901)|0)){c=f[a+56>>2]|0;if((c|0)==(f[q>>2]|0))break;while(1){c=c+4|0;if((c|0)==(f[q>>2]|0))break a}}if(!(kpb(d,235905)|0)){c=f[a+56>>2]|0;if((c|0)==(f[q>>2]|0))break;while(1){c=c+4|0;if((c|0)==(f[q>>2]|0))break a}}if(!(kpb(d,235909)|0)){c=f[a+56>>2]|0;if((c|0)==(f[q>>2]|0))break;while(1){c=c+4|0;if((c|0)==(f[q>>2]|0))break a}}if(!(kpb(d,235917)|0)){c=f[a+56>>2]|0;if((c|0)==(f[q>>2]|0))break;while(1){c=c+4|0;if((c|0)==(f[q>>2]|0))break a}}if((kpb(d,235922)|0)==0?(c=f[a+56>>2]|0,(c|0)!=(f[q>>2]|0)):0)do c=c+4|0;while((c|0)!=(f[q>>2]|0))}while(0);c=LDb(24)|0;BCa(c);f[c>>2]=131904;d=c+16|0;f[d>>2]=0;f[c+20>>2]=0;f[c+12>>2]=d;d=f[r>>2]|0;if((d|0)==(c|0)){u=s;return}f[r>>2]=c;r=c+8|0;f[r>>2]=(f[r>>2]|0)+1;if(!d){u=s;return}q=d+8|0;r=f[q>>2]|0;f[q>>2]=r-1;if((r|0)!=1){u=s;return}X4(d,1,1);u=s;return}function oWa(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;if(b|0?(d=b+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(b,1,1);f[a>>2]=0;return}function pWa(a){a=a|0;f[a>>2]=131904;MWa(a+12|0,f[a+16>>2]|0);V4(a);return}function qWa(a){a=a|0;f[a>>2]=131904;MWa(a+12|0,f[a+16>>2]|0);V4(a);NDb(a);return}function rWa(a){a=a|0;var b=0;a=LDb(24)|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;f[a+16>>2]=0;f[a+20>>2]=0;BCa(a);f[a>>2]=131904;b=a+16|0;f[b>>2]=0;f[a+20>>2]=0;f[a+12>>2]=b;return a|0}function sWa(a){a=a|0;var b=0,c=0;c=a+12|0;b=a+16|0;MWa(c,f[b>>2]|0);f[a+20>>2]=0;f[c>>2]=b;f[b>>2]=0;return}function tWa(a){a=a|0;return f[a+20>>2]|0}function uWa(a,b,c,d,e,g){a=a|0;b=b|0;c=+c;d=d|0;e=e|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,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;I=u;u=u+144|0;A=I+128|0;D=I+124|0;E=I+120|0;F=I+20|0;G=I+8|0;B=I;C=a+12|0;h=f[C>>2]|0;m=a+16|0;if(!((h|0)!=(m|0)&(b|0)>0)){u=I;return}n=F+68|0;o=F+80|0;p=F+92|0;q=F+96|0;r=F+60|0;s=F+64|0;t=F+60|0;v=F+56|0;w=G+4|0;x=G+8|0;y=e+8|0;z=F+56|0;a=b;l=h;while(1){f[E>>2]=0;do if(AWa(l+16|0,E)|0){if(!((f[(f[E>>2]|0)+188>>2]|0)>>>0>d>>>0^g)){BCa(n);f[n>>2]=88164;f[o>>2]=0;f[o+4>>2]=0;f[o+8>>2]=0;f[p>>2]=2;f[q>>2]=0;C1(F,131948,2);f[F>>2]=131972;f[n>>2]=132340;f[r>>2]=0;f[s>>2]=0;f[v>>2]=t;f[G>>2]=0;f[w>>2]=0;f[x>>2]=0;h=f[E>>2]|0;vk[f[(f[h>>2]|0)+272>>2]&0](h,c,d,G)|0;h=f[w>>2]|0;b=f[G>>2]|0;if((h|0)==(b|0))i=b;else{i=0;do{h=f[b+(i<<2)>>2]|0;Vk[f[(f[h>>2]|0)+212>>2]&1023](h,F);i=i+1|0;h=f[w>>2]|0;b=f[G>>2]|0}while(i>>>0<h-b>>2>>>0);i=b}b=f[v>>2]|0;if((b|0)==(t|0))b=i;else{do{BWa(B,b+16|0);h=f[m>>2]|0;if(h){j=f[B>>2]|0;i=m;do{k=(f[h+16>>2]|0)>>>0<j>>>0;i=k?i:h;h=f[(k?h+4|0:h)>>2]|0}while((h|0)!=0);if((i|0)!=(m|0)?j>>>0>=(f[i+16>>2]|0)>>>0:0){f[D>>2]=i;f[A>>2]=f[D>>2];zWa(C,A)|0;a=a+-1|0}else H=17}else H=17;if((H|0)==17)H=0;h=f[B>>2]|0;if(h|0?(j=h+8|0,k=f[j>>2]|0,f[j>>2]=k-1,(k|0)==1):0)X4(h,1,1);h=f[b+4>>2]|0;if(!h){h=b+8|0;i=f[h>>2]|0;if((f[i>>2]|0)==(b|0))b=i;else do{k=f[h>>2]|0;h=k+8|0;b=f[h>>2]|0}while((f[b>>2]|0)!=(k|0))}else{b=h;while(1){h=f[b>>2]|0;if(!h)break;else b=h}}}while((b|0)!=(t|0));b=f[G>>2]|0;h=f[w>>2]|0}if((b|0)==(h|0))i=b;else{do{k=f[b>>2]|0;i=(k|0)==0;if(!i){j=k+8|0;f[j>>2]=(f[j>>2]|0)+1}j=LDb(12)|0;f[j>>2]=0;f[j+8>>2]=k;if(!i){J=k+8|0;f[J>>2]=(f[J>>2]|0)+1}f[j+4>>2]=e;J=f[e>>2]|0;f[j>>2]=J;f[J+4>>2]=j;f[e>>2]=j;f[y>>2]=(f[y>>2]|0)+1;if(!i?(j=k+8|0,J=f[j>>2]|0,f[j>>2]=J-1,(J|0)==1):0)X4(k,1,1);b=b+4|0}while((b|0)!=(h|0));i=f[G>>2]|0}if(i|0){b=f[w>>2]|0;if((b|0)==(i|0))b=i;else{do{b=b+-4|0;h=f[b>>2]|0;if(h|0?(k=h+8|0,J=f[k>>2]|0,f[k>>2]=J-1,(J|0)==1):0)X4(h,1,1);f[b>>2]=0}while((b|0)!=(i|0));b=f[G>>2]|0}f[w>>2]=i;NDb(b)}f[F>>2]=131972;f[n>>2]=132340;CWa(z,f[t>>2]|0);qC(F,131948);ow(n)}b=f[l+4>>2]|0;if(!b){h=l+8|0;b=f[h>>2]|0;if((f[b>>2]|0)==(l|0))break;do{J=f[h>>2]|0;h=J+8|0;b=f[h>>2]|0}while((f[b>>2]|0)!=(J|0))}else{while(1){h=f[b>>2]|0;if(!h)break;else b=h}break}}else{b=f[l+4>>2]|0;if(!b){h=l+8|0;b=f[h>>2]|0;if((f[b>>2]|0)!=(l|0))do{J=f[h>>2]|0;h=J+8|0;b=f[h>>2]|0}while((f[b>>2]|0)!=(J|0))}else while(1){h=f[b>>2]|0;if(!h)break;else b=h}f[D>>2]=l;f[A>>2]=f[D>>2];zWa(C,A)|0;a=a+-1|0;if(S0(4)|0){J=Nv(Mv(4)|0,236025,91)|0;Ktb(A,J+(f[(f[J>>2]|0)+-12>>2]|0)|0);l=Bvb(A,295164)|0;l=wk[f[(f[l>>2]|0)+28>>2]&1023](l,10)|0;Cvb(A);rub(J,l)|0;Rtb(J)|0}}while(0);h=f[E>>2]|0;if(h|0?(l=h+8|0,J=f[l>>2]|0,f[l>>2]=J-1,(J|0)==1):0)X4(h,1,1);if((b|0)!=(m|0)&(a|0)>0)l=b;else break}u=I;return}function vWa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=u;u=u+16|0;i=l+12|0;j=l+8|0;k=l;c=f[b>>2]|0;g=b+4|0;if((c|0)==(f[g>>2]|0)){u=l;return}h=a+16|0;e=a+12|0;do{b=f[c>>2]|0;if(!b)b=0;else b=bFb(b,58720,61664,0)|0;yWa(k,b);b=f[h>>2]|0;if(b|0){d=f[k>>2]|0;a=h;do{m=(f[b+16>>2]|0)>>>0<d>>>0;a=m?a:b;b=f[(m?b+4|0:b)>>2]|0}while((b|0)!=0);if((a|0)!=(h|0)?d>>>0>=(f[a+16>>2]|0)>>>0:0){if(S0(4)|0){m=Nv(Mv(4)|0,235992,32)|0;Ktb(i,m+(f[(f[m>>2]|0)+-12>>2]|0)|0);d=Bvb(i,295164)|0;d=wk[f[(f[d>>2]|0)+28>>2]&1023](d,10)|0;Cvb(i);rub(m,d)|0;Rtb(m)|0}f[j>>2]=a;f[i>>2]=f[j>>2];zWa(e,i)|0}}b=f[k>>2]|0;if(b|0?(d=b+8|0,m=f[d>>2]|0,f[d>>2]=m-1,(m|0)==1):0)X4(b,1,1);c=c+4|0}while((c|0)!=(f[g>>2]|0));u=l;return}function wWa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;k=u;u=u+16|0;g=k;j=a+12|0;d=a+16|0;c=f[d>>2]|0;do if(c){i=f[b>>2]|0;d=c;do{e=f[d+16>>2]|0;if(i>>>0>=e>>>0){if(e>>>0>=i>>>0){h=8;break}d=d+4|0}d=f[d>>2]|0}while((d|0)!=0);if((h|0)==8){if(!(S0(3)|0)){u=k;return}d=Nv(Mv(3)|0,235926,46)|0;a=f[b>>2]|0;if((a|0)!=0?(f[a+24>>2]|0)!=0:0)c=f[b+4>>2]|0;else c=0;a=Nv(qub(d,c)|0,235973,18)|0;Ktb(g,a+(f[(f[a>>2]|0)+-12>>2]|0)|0);j=Bvb(g,295164)|0;j=wk[f[(f[j>>2]|0)+28>>2]&1023](j,10)|0;Cvb(g);rub(a,j)|0;Rtb(a)|0;u=k;return}e=a+16|0;while(1){d=f[c+16>>2]|0;if(i>>>0<d>>>0){d=f[c>>2]|0;if(!d){h=16;break}else{e=c;c=d}}else{if(d>>>0>=i>>>0){h=20;break}e=c+4|0;d=f[e>>2]|0;if(!d){h=19;break}else c=d}}if((h|0)==16){g=c;e=c;break}else if((h|0)==19){g=c;break}else if((h|0)==20){g=c;break}}else{g=d;e=d}while(0);if(f[e>>2]|0){u=k;return}c=LDb(24)|0;d=f[b>>2]|0;f[c+16>>2]=d;if(d|0){i=d+8|0;f[i>>2]=(f[i>>2]|0)+1}f[c+20>>2]=f[b+4>>2];f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=g;f[e>>2]=c;d=f[f[j>>2]>>2]|0;if(d){f[j>>2]=d;c=f[e>>2]|0}Aq(f[a+16>>2]|0,c);a=a+20|0;f[a>>2]=(f[a>>2]|0)+1;u=k;return}function xWa(a,b){a=a|0;b=b|0;var c=0;a=f[a+16>>2]|0;if(!a){c=0;return c|0}c=f[b>>2]|0;while(1){b=f[a+16>>2]|0;if(c>>>0>=b>>>0){if(b>>>0>=c>>>0){a=1;b=8;break}a=a+4|0}a=f[a>>2]|0;if(!a){a=0;b=8;break}}if((b|0)==8)return a|0;return 0}function yWa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;f[a>>2]=0;if(!b){d=0;b=a+4|0;f[b>>2]=d;return}c=DCa(b)|0;d=f[a>>2]|0;if((d|0)!=(c|0)){f[a>>2]=c;if(c|0){c=c+8|0;f[c>>2]=(f[c>>2]|0)+1}if(d|0?(e=d+8|0,c=f[e>>2]|0,f[e>>2]=c-1,(c|0)==1):0)X4(d,1,1);c=f[a>>2]|0}if(!c){b=0;e=a+4|0;f[e>>2]=b;return}b=(f[c+24>>2]|0)==0?0:b;e=a+4|0;f[e>>2]=b;return}function zWa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;d=f[b>>2]|0;b=f[d+4>>2]|0;if(!b){b=d+8|0;c=f[b>>2]|0;if((f[c>>2]|0)!=(d|0))do{e=f[b>>2]|0;b=e+8|0;c=f[b>>2]|0}while((f[c>>2]|0)!=(e|0))}else{while(1){c=f[b>>2]|0;if(!c)break;else b=c}c=b}if((f[a>>2]|0)==(d|0))f[a>>2]=c;b=a+8|0;f[b>>2]=(f[b>>2]|0)+-1;nB(f[a+4>>2]|0,d);b=f[d+16>>2]|0;if(!b){NDb(d);return c|0}a=b+8|0;e=f[a>>2]|0;f[a>>2]=e-1;if((e|0)!=1){NDb(d);return c|0}X4(b,1,1);NDb(d);return c|0}function AWa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=f[a>>2]|0;if(!c){c=f[b>>2]|0;if(!c){b=0;return b|0}f[b>>2]=0;d=c+8|0;b=f[d>>2]|0;f[d>>2]=b-1;if((b|0)!=1){b=0;return b|0}X4(c,1,1);b=0;return b|0}d=x4(c)|0;if(!d){c=f[b>>2]|0;if(!c){b=0;return b|0}f[b>>2]=0;d=c+8|0;b=f[d>>2]|0;f[d>>2]=b-1;if((b|0)!=1){b=0;return b|0}X4(c,1,1);b=0;return b|0}c=f[a+4>>2]|0;a=f[b>>2]|0;if((a|0)!=(c|0)){f[b>>2]=c;if(c|0){c=c+8|0;f[c>>2]=(f[c>>2]|0)+1}if(a|0?(e=a+8|0,c=f[e>>2]|0,f[e>>2]=c-1,(c|0)==1):0)X4(a,1,1)}ECa(d)|0;e=(f[b>>2]|0)!=0;return e|0}function BWa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;f[a>>2]=0;c=f[b>>2]|0;if(!c){d=0;b=a+4|0;f[b>>2]=d;return}c=DCa(c)|0;d=f[a>>2]|0;if((d|0)!=(c|0)){f[a>>2]=c;if(c|0){c=c+8|0;f[c>>2]=(f[c>>2]|0)+1}if(d|0?(e=d+8|0,c=f[e>>2]|0,f[e>>2]=c-1,(c|0)==1):0)X4(d,1,1);c=f[a>>2]|0}if(!c){b=0;e=a+4|0;f[e>>2]=b;return}b=(f[c+24>>2]|0)==0?0:f[b>>2]|0;e=a+4|0;f[e>>2]=b;return}function CWa(a,b){a=a|0;b=b|0;var c=0,d=0;if(!b)return;CWa(a,f[b>>2]|0);CWa(a,f[b+4>>2]|0);a=f[b+16>>2]|0;if(a|0?(d=a+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(a,1,1);NDb(b);return}function DWa(a){a=a|0;var b=0;f[a>>2]=131972;b=a+68|0;f[b>>2]=132340;CWa(a+56|0,f[a+60>>2]|0);qC(a,131948);ow(b);return}function EWa(a){a=a|0;var b=0;f[a>>2]=131972;b=a+68|0;f[b>>2]=132340;CWa(a+56|0,f[a+60>>2]|0);qC(a,131948);ow(b);NDb(a);return}function FWa(a){a=a|0;return 221360}function GWa(a){a=a|0;return 236117}function HWa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;i=a+56|0;j=c+8|0;f[j>>2]=(f[j>>2]|0)+1;e=a+60|0;d=f[e>>2]|0;do if(d){g=a+60|0;while(1){e=f[d+16>>2]|0;if(e>>>0>c>>>0){e=f[d>>2]|0;if(!e){e=5;break}else{g=d;d=e}}else{if(e>>>0>=c>>>0){e=9;break}g=d+4|0;e=f[g>>2]|0;if(!e){e=8;break}else d=e}}if((e|0)==5){h=d;g=d;break}else if((e|0)==8){h=d;break}else if((e|0)==9){h=d;break}}else{h=e;g=e}while(0);if(!(f[g>>2]|0)){d=LDb(20)|0;f[d+16>>2]=c;f[j>>2]=(f[j>>2]|0)+1;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=h;f[g>>2]=d;e=f[f[i>>2]>>2]|0;if(e){f[i>>2]=e;d=f[g>>2]|0}Aq(f[a+60>>2]|0,d);i=a+64|0;f[i>>2]=(f[i>>2]|0)+1}i=f[j>>2]|0;f[j>>2]=i-1;if((i|0)==1)X4(c,1,1);g=f[c+200>>2]|0;j=(f[c+204>>2]|0)-g|0;e=j>>6;if(j|0){d=0;do{h=f[g+(d<<6)+56>>2]|0;if(h|0?(k=bFb(h,63152,75416,0)|0,k|0):0)b[k+100>>0]=1;d=d+1|0}while(d>>>0<e>>>0)}switch(f[a+16>>2]|0){case 1:{Vk[f[(f[c>>2]|0)+216>>2]&1023](c,a);return}case 0:return;default:{Vk[f[(f[c>>2]|0)+220>>2]&1023](c,a);return}}}function IWa(a){a=a|0;var b=0;b=a+(f[(f[a>>2]|0)+-16>>2]|0)|0;f[b>>2]=131972;a=b+68|0;f[a>>2]=132340;CWa(b+56|0,f[b+60>>2]|0);qC(b,131948);ow(a);return}function JWa(a){a=a|0;var b=0;a=a+(f[(f[a>>2]|0)+-16>>2]|0)|0;f[a>>2]=131972;b=a+68|0;f[b>>2]=132340;CWa(a+56|0,f[a+60>>2]|0);qC(a,131948);ow(b);NDb(a);return}function KWa(a){a=a|0;return 221360}function LWa(a){a=a|0;return 236117}function MWa(a,b){a=a|0;b=b|0;var c=0,d=0;if(!b)return;MWa(a,f[b>>2]|0);MWa(a,f[b+4>>2]|0);a=f[b+16>>2]|0;if(a|0?(d=a+8|0,c=f[d>>2]|0,f[d>>2]=c-1,(c|0)==1):0)X4(a,1,1);NDb(b);return}function NWa(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q,r){a=a|0;b=+b;c=+c;d=+d;e=+e;f=+f;g=+g;h=+h;i=+i;j=+j;k=+k;l=+l;m=+m;n=+n;o=+o;q=+q;r=+r;p[a>>3]=b;p[a+8>>3]=c;p[a+16>>3]=d;p[a+24>>3]=e;p[a+32>>3]=f;p[a+40>>3]=g;p[a+48>>3]=h;p[a+56>>3]=i;p[a+64>>3]=j;p[a+72>>3]=k;p[a+80>>3]=l;p[a+88>>3]=m;p[a+96>>3]=n;p[a+104>>3]=o;p[a+112>>3]=q;p[a+120>>3]=r;return}function OWa(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0,g=0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,n=0.0,o=0.0,q=0;m=u;u=u+32|0;j=m;k=a+24|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;f[a+16>>2]=0;f[a+20>>2]=0;p[k>>3]=1.0;o=+p[b>>3];i=o+1.0;n=+p[b+40>>3];d=+p[b+80>>3];c=i+n+d;p[j>>3]=c;i=i-n-d;p[j+8>>3]=i;o=1.0-o;h=o+n-d;p[j+16>>3]=h;d=o-n+d;p[j+24>>3]=d;l=i>c&1;l=h>+p[j+(l<<3)>>3]?2:l;l=d>+p[j+(l<<3)>>3]?3:l;e=b+32|0;g=b+64|0;switch(l&3){case 0:{p[k>>3]=c;i=+p[b+48>>3]-+p[b+72>>3];p[a>>3]=i;h=+p[g>>3]-+p[b+16>>3];g=a+8|0;p[g>>3]=h;d=+p[b+8>>3]-+p[e>>3];e=a+16|0;p[e>>3]=d;b=g;break}case 1:{c=+p[b+48>>3]-+p[b+72>>3];p[k>>3]=c;p[a>>3]=i;h=+p[b+8>>3]+ +p[e>>3];q=a+8|0;p[q>>3]=h;d=+p[g>>3]+ +p[b+16>>3];e=a+16|0;p[e>>3]=d;b=q;break}case 2:{c=+p[g>>3]-+p[b+16>>3];p[k>>3]=c;i=+p[b+8>>3]+ +p[e>>3];p[a>>3]=i;q=a+8|0;p[q>>3]=h;d=+p[b+48>>3]+ +p[b+72>>3];e=a+16|0;p[e>>3]=d;b=q;break}default:{c=+p[b+8>>3]-+p[e>>3];p[k>>3]=c;i=+p[g>>3]+ +p[b+16>>3];p[a>>3]=i;h=+p[b+48>>3]+ +p[b+72>>3];b=a+8|0;p[b>>3]=h;e=a+16|0;p[e>>3]=d}}o=+K(+(.25/+p[j+(l<<3)>>3]));p[k>>3]=c*o;p[a>>3]=o*i;p[b>>3]=o*h;p[e>>3]=o*d;u=m;return}function PWa(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;c=+p[a>>3];d=+p[b>>3];do if(!(c<d))if(!(d<c)){c=+p[a+8>>3];d=+p[b+8>>3];if(!(c<d))if(!(d<c)){c=+p[a+16>>3];d=+p[b+16>>3];if(!(c<d))if(!(d<c)){c=+p[a+24>>3];d=+p[b+24>>3];if(!(c<d))if(!(d<c)){c=+p[a+32>>3];d=+p[b+32>>3];if(!(c<d))if(!(d<c)){c=+p[a+40>>3];d=+p[b+40>>3];if(!(c<d))if(!(d<c)){c=+p[a+48>>3];d=+p[b+48>>3];if(!(c<d))if(!(d<c)){c=+p[a+56>>3];d=+p[b+56>>3];if(!(c<d))if(!(d<c)){c=+p[a+64>>3];d=+p[b+64>>3];if(!(c<d))if(!(d<c)){c=+p[a+72>>3];d=+p[b+72>>3];if(c<d)a=-1;else{if(d<c){a=1;break}c=+p[a+80>>3];d=+p[b+80>>3];if(c<d){a=-1;break}if(d<c){a=1;break}c=+p[a+88>>3];d=+p[b+88>>3];if(c<d){a=-1;break}if(d<c){a=1;break}c=+p[a+96>>3];d=+p[b+96>>3];if(c<d){a=-1;break}if(d<c){a=1;break}c=+p[a+104>>3];d=+p[b+104>>3];if(c<d){a=-1;break}if(d<c){a=1;break}c=+p[a+112>>3];d=+p[b+112>>3];if(c<d){a=-1;break}if(d<c){a=1;break}d=+p[a+120>>3];c=+p[b+120>>3];if(d<c){a=-1;break}if(c<d){a=1;break}a=0}}else a=1;else a=-1}else a=1;else a=-1}else a=1;else a=-1}else a=1;else a=-1}else a=1;else a=-1}else a=1;else a=-1}else a=1;else a=-1}else a=1;else a=-1}else a=1;else a=-1;while(0);return a|0}function QWa(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;p[a+96>>3]=b;p[a+104>>3]=c;p[a+112>>3]=d;return}function RWa(a,b){a=a|0;b=b|0;p[a+96>>3]=+p[b>>3];p[a+104>>3]=+p[b+8>>3];p[a+112>>3]=+p[b+16>>3];return}function SWa(a){a=a|0;var b=0;p[a>>3]=1.0;b=a+8|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[b+12>>2]=0;f[b+16>>2]=0;f[b+20>>2]=0;f[b+24>>2]=0;f[b+28>>2]=0;p[a+40>>3]=1.0;b=a+48|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[b+12>>2]=0;f[b+16>>2]=0;f[b+20>>2]=0;f[b+24>>2]=0;f[b+28>>2]=0;p[a+80>>3]=1.0;b=a+88|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[b+12>>2]=0;f[b+16>>2]=0;f[b+20>>2]=0;f[b+24>>2]=0;f[b+28>>2]=0;p[a+120>>3]=1.0;return}function TWa(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;var e=0;p[a>>3]=b;e=a+8|0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;f[e+12>>2]=0;f[e+16>>2]=0;f[e+20>>2]=0;f[e+24>>2]=0;f[e+28>>2]=0;p[a+40>>3]=c;e=a+48|0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;f[e+12>>2]=0;f[e+16>>2]=0;f[e+20>>2]=0;f[e+24>>2]=0;f[e+28>>2]=0;p[a+80>>3]=d;e=a+88|0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;f[e+12>>2]=0;f[e+16>>2]=0;f[e+20>>2]=0;f[e+24>>2]=0;f[e+28>>2]=0;p[a+120>>3]=1.0;return}function UWa(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;var e=0;p[a>>3]=1.0;e=a+8|0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;f[e+12>>2]=0;f[e+16>>2]=0;f[e+20>>2]=0;f[e+24>>2]=0;f[e+28>>2]=0;p[a+40>>3]=1.0;e=a+48|0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;f[e+12>>2]=0;f[e+16>>2]=0;f[e+20>>2]=0;f[e+24>>2]=0;f[e+28>>2]=0;p[a+80>>3]=1.0;p[a+88>>3]=0.0;p[a+96>>3]=b;p[a+104>>3]=c;p[a+112>>3]=d;p[a+120>>3]=1.0;return}function VWa(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0,g=0.0,h=0,i=0,j=0,k=0,l=0.0,m=0,n=0.0,o=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0;p[a>>3]=1.0;h=a+8|0;i=a+40|0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;f[h+12>>2]=0;f[h+16>>2]=0;f[h+20>>2]=0;f[h+24>>2]=0;f[h+28>>2]=0;p[i>>3]=1.0;j=a+48|0;k=a+80|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;f[j+24>>2]=0;f[j+28>>2]=0;p[k>>3]=1.0;m=a+88|0;f[m>>2]=0;f[m+4>>2]=0;f[m+8>>2]=0;f[m+12>>2]=0;f[m+16>>2]=0;f[m+20>>2]=0;f[m+24>>2]=0;f[m+28>>2]=0;p[a+120>>3]=1.0;l=+p[b>>3];e=+p[b+8>>3];g=+p[b+16>>3];c=+p[b+24>>3];d=l*l+e*e+g*g+c*c;if(+J(+d)<=2.2250738585072014e-308){l=0.0;g=0.0;e=0.0;d=0.0;c=0.0;n=0.0;o=0.0;q=0.0;r=0.0;p[a>>3]=r;m=a+32|0;p[m>>3]=q;m=a+64|0;p[m>>3]=o;p[h>>3]=n;p[i>>3]=c;m=a+72|0;p[m>>3]=d;m=a+16|0;p[m>>3]=e;p[j>>3]=g;p[k>>3]=l;return}d=d!=1.0?2.0/d:2.0;n=l*d;r=e*d;d=g*d;w=l*n;u=l*r;v=l*d;t=e*r;l=e*d;s=g*d;n=c*n;e=c*r;d=c*d;r=1.0-(w+t);q=l+n;o=v-e;n=l-n;l=1.0-(w+s);g=u+d;e=v+e;d=u-d;c=1.0-(t+s);p[a>>3]=c;m=a+32|0;p[m>>3]=d;m=a+64|0;p[m>>3]=e;p[h>>3]=g;p[i>>3]=l;m=a+72|0;p[m>>3]=n;m=a+16|0;p[m>>3]=o;p[j>>3]=q;p[k>>3]=r;return}function WWa(a,b,c){a=a|0;b=b|0;c=c|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,q=0,r=0,s=0,t=0,u=0,v=0,w=0;if((b|0)==(a|0)){XWa(b,c);return}if((c|0)==(a|0)){YWa(a,b);return}else{f=b+8|0;v=c+32|0;h=b+16|0;u=c+64|0;j=b+24|0;t=c+96|0;p[a>>3]=+p[b>>3]*+p[c>>3]+ +p[f>>3]*+p[v>>3]+ +p[h>>3]*+p[u>>3]+ +p[j>>3]*+p[t>>3];s=c+8|0;r=c+40|0;q=c+72|0;o=c+104|0;p[a+8>>3]=+p[b>>3]*+p[s>>3]+ +p[f>>3]*+p[r>>3]+ +p[h>>3]*+p[q>>3]+ +p[j>>3]*+p[o>>3];n=c+16|0;m=c+48|0;l=c+80|0;k=c+112|0;p[a+16>>3]=+p[b>>3]*+p[n>>3]+ +p[f>>3]*+p[m>>3]+ +p[h>>3]*+p[l>>3]+ +p[j>>3]*+p[k>>3];i=c+24|0;g=c+56|0;e=c+88|0;d=c+120|0;p[a+24>>3]=+p[b>>3]*+p[i>>3]+ +p[f>>3]*+p[g>>3]+ +p[h>>3]*+p[e>>3]+ +p[j>>3]*+p[d>>3];j=b+32|0;h=b+40|0;f=b+48|0;w=b+56|0;p[a+32>>3]=+p[j>>3]*+p[c>>3]+ +p[h>>3]*+p[v>>3]+ +p[f>>3]*+p[u>>3]+ +p[w>>3]*+p[t>>3];p[a+40>>3]=+p[j>>3]*+p[s>>3]+ +p[h>>3]*+p[r>>3]+ +p[f>>3]*+p[q>>3]+ +p[w>>3]*+p[o>>3];p[a+48>>3]=+p[j>>3]*+p[n>>3]+ +p[h>>3]*+p[m>>3]+ +p[f>>3]*+p[l>>3]+ +p[w>>3]*+p[k>>3];p[a+56>>3]=+p[j>>3]*+p[i>>3]+ +p[h>>3]*+p[g>>3]+ +p[f>>3]*+p[e>>3]+ +p[w>>3]*+p[d>>3];w=b+64|0;f=b+72|0;h=b+80|0;j=b+88|0;p[a+64>>3]=+p[w>>3]*+p[c>>3]+ +p[f>>3]*+p[v>>3]+ +p[h>>3]*+p[u>>3]+ +p[j>>3]*+p[t>>3];p[a+72>>3]=+p[w>>3]*+p[s>>3]+ +p[f>>3]*+p[r>>3]+ +p[h>>3]*+p[q>>3]+ +p[j>>3]*+p[o>>3];p[a+80>>3]=+p[w>>3]*+p[n>>3]+ +p[f>>3]*+p[m>>3]+ +p[h>>3]*+p[l>>3]+ +p[j>>3]*+p[k>>3];p[a+88>>3]=+p[w>>3]*+p[i>>3]+ +p[f>>3]*+p[g>>3]+ +p[h>>3]*+p[e>>3]+ +p[j>>3]*+p[d>>3];j=b+96|0;h=b+104|0;f=b+112|0;b=b+120|0;p[a+96>>3]=+p[j>>3]*+p[c>>3]+ +p[h>>3]*+p[v>>3]+ +p[f>>3]*+p[u>>3]+ +p[b>>3]*+p[t>>3];p[a+104>>3]=+p[j>>3]*+p[s>>3]+ +p[h>>3]*+p[r>>3]+ +p[f>>3]*+p[q>>3]+ +p[b>>3]*+p[o>>3];p[a+112>>3]=+p[j>>3]*+p[n>>3]+ +p[h>>3]*+p[m>>3]+ +p[f>>3]*+p[l>>3]+ +p[b>>3]*+p[k>>3];p[a+120>>3]=+p[j>>3]*+p[i>>3]+ +p[h>>3]*+p[g>>3]+ +p[f>>3]*+p[e>>3]+ +p[b>>3]*+p[d>>3];return}}function XWa(a,b){a=a|0;b=b|0;var c=0.0,d=0,e=0.0,f=0,g=0.0,h=0,i=0,j=0.0,k=0,l=0.0,m=0,n=0.0,o=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;m=b+32|0;k=b+64|0;i=b+96|0;B=b+8|0;A=b+40|0;z=b+72|0;y=b+104|0;x=b+16|0;w=b+48|0;v=b+80|0;u=b+112|0;t=b+24|0;s=b+56|0;r=b+88|0;q=b+120|0;c=+p[a>>3];d=a+8|0;e=+p[d>>3];f=a+16|0;g=+p[f>>3];h=a+24|0;j=+p[h>>3];l=c*+p[B>>3]+e*+p[A>>3]+g*+p[z>>3]+j*+p[y>>3];n=c*+p[x>>3]+e*+p[w>>3]+g*+p[v>>3]+j*+p[u>>3];o=c*+p[t>>3]+e*+p[s>>3]+g*+p[r>>3]+j*+p[q>>3];p[a>>3]=c*+p[b>>3]+e*+p[m>>3]+g*+p[k>>3]+j*+p[i>>3];p[d>>3]=l;p[f>>3]=n;p[h>>3]=o;h=a+32|0;o=+p[h>>3];f=a+40|0;n=+p[f>>3];d=a+48|0;l=+p[d>>3];C=a+56|0;j=+p[C>>3];g=o*+p[B>>3]+n*+p[A>>3]+l*+p[z>>3]+j*+p[y>>3];e=o*+p[x>>3]+n*+p[w>>3]+l*+p[v>>3]+j*+p[u>>3];c=o*+p[t>>3]+n*+p[s>>3]+l*+p[r>>3]+j*+p[q>>3];p[h>>3]=o*+p[b>>3]+n*+p[m>>3]+l*+p[k>>3]+j*+p[i>>3];p[f>>3]=g;p[d>>3]=e;p[C>>3]=c;C=a+64|0;c=+p[C>>3];d=a+72|0;e=+p[d>>3];f=a+80|0;g=+p[f>>3];h=a+88|0;j=+p[h>>3];l=c*+p[B>>3]+e*+p[A>>3]+g*+p[z>>3]+j*+p[y>>3];n=c*+p[x>>3]+e*+p[w>>3]+g*+p[v>>3]+j*+p[u>>3];o=c*+p[t>>3]+e*+p[s>>3]+g*+p[r>>3]+j*+p[q>>3];p[C>>3]=c*+p[b>>3]+e*+p[m>>3]+g*+p[k>>3]+j*+p[i>>3];p[d>>3]=l;p[f>>3]=n;p[h>>3]=o;h=a+96|0;o=+p[h>>3];f=a+104|0;n=+p[f>>3];d=a+112|0;l=+p[d>>3];a=a+120|0;j=+p[a>>3];g=o*+p[B>>3]+n*+p[A>>3]+l*+p[z>>3]+j*+p[y>>3];e=o*+p[x>>3]+n*+p[w>>3]+l*+p[v>>3]+j*+p[u>>3];c=o*+p[t>>3]+n*+p[s>>3]+l*+p[r>>3]+j*+p[q>>3];p[h>>3]=o*+p[b>>3]+n*+p[m>>3]+l*+p[k>>3]+j*+p[i>>3];p[f>>3]=g;p[d>>3]=e;p[a>>3]=c;return}function YWa(a,b){a=a|0;b=b|0;var c=0.0,d=0,e=0.0,f=0,g=0.0,h=0,i=0.0,j=0,k=0.0,l=0,m=0.0,n=0,o=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;n=b+8|0;l=b+16|0;j=b+24|0;B=b+32|0;A=b+40|0;z=b+48|0;y=b+56|0;x=b+64|0;w=b+72|0;v=b+80|0;u=b+88|0;t=b+96|0;s=b+104|0;r=b+112|0;q=b+120|0;c=+p[a>>3];d=a+32|0;e=+p[d>>3];f=a+64|0;g=+p[f>>3];h=a+96|0;i=+p[h>>3];k=c*+p[B>>3]+e*+p[A>>3]+g*+p[z>>3]+i*+p[y>>3];m=c*+p[x>>3]+e*+p[w>>3]+g*+p[v>>3]+i*+p[u>>3];o=c*+p[t>>3]+e*+p[s>>3]+g*+p[r>>3]+i*+p[q>>3];p[a>>3]=+p[b>>3]*c+ +p[n>>3]*e+ +p[l>>3]*g+ +p[j>>3]*i;p[d>>3]=k;p[f>>3]=m;p[h>>3]=o;h=a+8|0;o=+p[h>>3];f=a+40|0;m=+p[f>>3];d=a+72|0;k=+p[d>>3];C=a+104|0;i=+p[C>>3];g=o*+p[B>>3]+m*+p[A>>3]+k*+p[z>>3]+i*+p[y>>3];e=o*+p[x>>3]+m*+p[w>>3]+k*+p[v>>3]+i*+p[u>>3];c=o*+p[t>>3]+m*+p[s>>3]+k*+p[r>>3]+i*+p[q>>3];p[h>>3]=+p[b>>3]*o+ +p[n>>3]*m+ +p[l>>3]*k+ +p[j>>3]*i;p[f>>3]=g;p[d>>3]=e;p[C>>3]=c;C=a+16|0;c=+p[C>>3];d=a+48|0;e=+p[d>>3];f=a+80|0;g=+p[f>>3];h=a+112|0;i=+p[h>>3];k=c*+p[B>>3]+e*+p[A>>3]+g*+p[z>>3]+i*+p[y>>3];m=c*+p[x>>3]+e*+p[w>>3]+g*+p[v>>3]+i*+p[u>>3];o=c*+p[t>>3]+e*+p[s>>3]+g*+p[r>>3]+i*+p[q>>3];p[C>>3]=+p[b>>3]*c+ +p[n>>3]*e+ +p[l>>3]*g+ +p[j>>3]*i;p[d>>3]=k;p[f>>3]=m;p[h>>3]=o;h=a+24|0;o=+p[h>>3];f=a+56|0;m=+p[f>>3];d=a+88|0;k=+p[d>>3];a=a+120|0;i=+p[a>>3];g=o*+p[B>>3]+m*+p[A>>3]+k*+p[z>>3]+i*+p[y>>3];e=o*+p[x>>3]+m*+p[w>>3]+k*+p[v>>3]+i*+p[u>>3];c=o*+p[t>>3]+m*+p[s>>3]+k*+p[r>>3]+i*+p[q>>3];p[h>>3]=+p[b>>3]*o+ +p[n>>3]*m+ +p[l>>3]*k+ +p[j>>3]*i;p[f>>3]=g;p[d>>3]=e;p[a>>3]=c;return}function ZWa(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0,g=0.0,h=0,i=0,j=0.0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,q=0.0,r=0,s=0.0,t=0.0,v=0.0;r=u;u=u+128|0;k=r;if((b|0)==(a|0)){p[k>>3]=+p[b>>3];p[k+8>>3]=+p[b+8>>3];p[k+16>>3]=+p[b+16>>3];p[k+24>>3]=+p[b+24>>3];p[k+32>>3]=+p[b+32>>3];p[k+40>>3]=+p[b+40>>3];p[k+48>>3]=+p[b+48>>3];p[k+56>>3]=+p[b+56>>3];p[k+64>>3]=+p[b+64>>3];p[k+72>>3]=+p[b+72>>3];p[k+80>>3]=+p[b+80>>3];p[k+88>>3]=+p[b+88>>3];p[k+96>>3]=+p[b+96>>3];p[k+104>>3]=+p[b+104>>3];p[k+112>>3]=+p[b+112>>3];p[k+120>>3]=+p[b+120>>3];ZWa(b,k)|0;u=r;return 1}s=+p[b>>3];j=+p[b+8>>3];d=+p[b+16>>3];g=+p[b+32>>3];t=+p[b+40>>3];c=+p[b+48>>3];v=+p[b+64>>3];e=+p[b+72>>3];q=+p[b+80>>3];l=t*q-c*e;m=d*e-j*q;o=j*c-d*t;n=1.0/(v*o+(s*l+g*m));s=s*n;g=g*n;v=v*n;l=l*n;p[a>>3]=l;m=m*n;p[a+8>>3]=m;n=o*n;p[a+16>>3]=n;p[a+24>>3]=0.0;o=c*v-q*g;p[a+32>>3]=o;q=q*s-d*v;p[a+40>>3]=q;c=d*g-c*s;p[a+48>>3]=c;p[a+56>>3]=0.0;d=e*g-t*v;p[a+64>>3]=d;e=j*v-e*s;p[a+72>>3]=e;g=t*s-j*g;p[a+80>>3]=g;p[a+88>>3]=0.0;h=a+96|0;p[a+120>>3]=1.0;i=b+96|0;j=+p[b+120>>3];s=j+-1.0;if(s*s>1.0e-06){f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;f[h+12>>2]=0;f[h+16>>2]=0;f[h+20>>2]=0;v=+p[b+24>>3];t=+p[b+56>>3];s=+p[b+88>>3];m=l*v+m*t+n*s;n=o*v+q*t+c*s;o=d*v+e*t+g*s;q=+p[i>>3];s=+p[b+104>>3];t=+p[b+112>>3];v=1.0/(j-(q*m+s*n+o*t));q=q*v;s=s*v;t=t*v;p[k>>3]=m*q+1.0;p[k+8>>3]=m*s;p[k+16>>3]=m*t;p[k+24>>3]=-(m*v);p[k+32>>3]=n*q;p[k+40>>3]=n*s+1.0;p[k+48>>3]=n*t;p[k+56>>3]=-(n*v);p[k+64>>3]=o*q;p[k+72>>3]=o*s;p[k+80>>3]=o*t+1.0;p[k+88>>3]=-(o*v);p[k+96>>3]=-q;p[k+104>>3]=-s;p[k+112>>3]=-t;p[k+120>>3]=v;YWa(a,k);u=r;return 1}else{s=+p[i>>3];t=+p[b+104>>3];v=+p[b+112>>3];p[h>>3]=-(l*s+o*t+d*v);p[a+104>>3]=-(m*s+q*t+e*v);p[a+112>>3]=-(n*s+c*t+g*v);u=r;return 1}return 0}function _Wa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0.0,g=0,h=0,i=0,j=0.0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=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;aa=u;u=u+160|0;$=aa+32|0;_=aa+16|0;W=aa;if((b|0)==(a|0)){p[$>>3]=+p[b>>3];p[$+8>>3]=+p[b+8>>3];p[$+16>>3]=+p[b+16>>3];p[$+24>>3]=+p[b+24>>3];p[$+32>>3]=+p[b+32>>3];p[$+40>>3]=+p[b+40>>3];p[$+48>>3]=+p[b+48>>3];p[$+56>>3]=+p[b+56>>3];p[$+64>>3]=+p[b+64>>3];p[$+72>>3]=+p[b+72>>3];p[$+80>>3]=+p[b+80>>3];p[$+88>>3]=+p[b+88>>3];p[$+96>>3]=+p[b+96>>3];p[$+104>>3]=+p[b+104>>3];p[$+112>>3]=+p[b+112>>3];p[$+120>>3]=+p[b+120>>3];a=_Wa(b,$)|0;u=aa;return a|0}p[a>>3]=+p[b>>3];X=a+8|0;p[X>>3]=+p[b+8>>3];Y=a+16|0;p[Y>>3]=+p[b+16>>3];Z=a+24|0;p[Z>>3]=+p[b+24>>3];p[a+32>>3]=+p[b+32>>3];p[a+40>>3]=+p[b+40>>3];p[a+48>>3]=+p[b+48>>3];p[a+56>>3]=+p[b+56>>3];p[a+64>>3]=+p[b+64>>3];p[a+72>>3]=+p[b+72>>3];p[a+80>>3]=+p[b+80>>3];p[a+88>>3]=+p[b+88>>3];p[a+96>>3]=+p[b+96>>3];p[a+104>>3]=+p[b+104>>3];p[a+112>>3]=+p[b+112>>3];p[a+120>>3]=+p[b+120>>3];f[W>>2]=0;f[W+4>>2]=0;f[W+8>>2]=0;f[W+12>>2]=0;l=W+4|0;m=W+8|0;n=W+12|0;U=a+32|0;o=W+4|0;q=a+96|0;r=a+64|0;s=a+40|0;t=W+8|0;v=a+32|0;w=a+40|0;x=a+48|0;y=a+56|0;z=a+96|0;A=a+104|0;B=a+112|0;C=a+120|0;D=a+64|0;E=a+72|0;F=a+80|0;G=a+88|0;H=a+104|0;I=a+72|0;J=W+8|0;K=W+12|0;L=a+112|0;M=a+80|0;N=a+48|0;O=W+12|0;P=a+120|0;Q=W+12|0;R=a+56|0;S=W+12|0;T=a+88|0;b=0;d=0;c=0;k=0;a:while(1){b:do switch(k|0){case 1:{e=0.0;i=f[l>>2]|0;break}case 0:{e=+p[a>>3];e=e>=0.0?e:-e;g=!(e>=0.0);c=g?c:0;d=g?d:0;e=g?0.0:e;g=f[o>>2]|0;switch(g|0){case 0:{j=+p[X>>3];j=j>=0.0?j:-j;if(j>=e){e=j;d=0;c=1}break}case 1:break;default:{b=0;break a}}switch(f[t>>2]|0){case 0:{j=+p[Y>>3];j=j>=0.0?j:-j;if(j>=e){e=j;d=0;c=2}break}case 1:break;default:{b=0;break a}}switch(f[K>>2]|0){case 1:{i=g;break b}case 0:break;default:{b=0;break a}}j=+p[Z>>3];j=j>=0.0?j:-j;if(!(j>=e))i=g;else{e=j;d=0;c=3;i=g}break}default:{b=0;break a}}while(0);c:do if((i|0)!=1){switch(k|0){case 0:{j=+p[U>>3];j=j>=0.0?j:-j;if(j>=e){e=j;d=1;c=0}break}case 1:break;default:{b=0;break a}}if(i|0){b=0;break a}j=+p[s>>3];j=j>=0.0?j:-j;g=!(j>=e);c=g?c:1;d=g?d:1;e=g?e:j;g=f[J>>2]|0;switch(g|0){case 0:{j=+p[N>>3];j=j>=0.0?j:-j;if(j>=e){e=j;d=1;c=2}break}case 1:break;default:{b=0;break a}}switch(f[O>>2]|0){case 1:{h=g;break c}case 0:break;default:{b=0;break a}}j=+p[R>>3];j=j>=0.0?j:-j;if(!(j>=e))h=g;else{e=j;d=1;c=3;h=g}}else h=f[m>>2]|0;while(0);d:do if((h|0)==1){g=f[n>>2]|0;if((g|0)==1)V=65;else V=53}else{switch(k|0){case 0:{j=+p[r>>3];j=j>=0.0?j:-j;if(j>=e){e=j;d=2;c=0}break}case 1:break;default:{b=0;break a}}switch(i|0){case 0:{j=+p[I>>3];j=j>=0.0?j:-j;if(j>=e){e=j;d=2;c=1}break}case 1:break;default:{b=0;break a}}if(h|0){b=0;break a}j=+p[M>>3];j=j>=0.0?j:-j;g=!(j>=e);c=g?c:2;d=g?d:2;e=g?e:j;switch(f[Q>>2]|0){case 1:{V=65;break d}case 0:break;default:{b=0;break a}}j=+p[T>>3];j=j>=0.0?j:-j;if(!(j>=e)){g=0;V=53}else{e=j;d=2;c=3;g=0;V=53}}while(0);if((V|0)==53){V=0;switch(k|0){case 0:{j=+p[q>>3];j=j>=0.0?j:-j;if(j>=e){e=j;d=3;c=0}break}case 1:break;default:{b=0;break a}}switch(i|0){case 0:{j=+p[H>>3];j=j>=0.0?j:-j;if(!(j>=e))j=e;else{d=3;c=1}break}case 1:{j=e;break}default:{b=0;break a}}switch(h|0){case 0:{e=+p[L>>3];e=e>=0.0?e:-e;if(!(e>=j))e=j;else{d=3;c=2}break}case 1:{e=j;break}default:{b=0;break a}}if(g|0){b=0;break}j=+p[P>>3];if(!((j>=0.0?j:-j)>=e))V=65;else{f[S>>2]=(f[S>>2]|0)+1;k=3;c=3}}if((V|0)==65){V=0;k=W+(c<<2)|0;f[k>>2]=(f[k>>2]|0)+1;if((d|0)==(c|0))k=d;else{k=a+(d<<5)|0;j=+p[k>>3];i=a+(c<<5)|0;p[k>>3]=+p[i>>3];p[i>>3]=j;i=a+(d<<5)+8|0;j=+p[i>>3];k=a+(c<<5)+8|0;p[i>>3]=+p[k>>3];p[k>>3]=j;k=a+(d<<5)+16|0;j=+p[k>>3];i=a+(c<<5)+16|0;p[k>>3]=+p[i>>3];p[i>>3]=j;i=a+(d<<5)+24|0;j=+p[i>>3];k=a+(c<<5)+24|0;p[i>>3]=+p[k>>3];p[k>>3]=j;k=d}}f[_+(b<<2)>>2]=k;f[$+(b<<2)>>2]=c;d=a+(c<<5)+(c<<3)|0;e=+p[d>>3];if(e==0.0){b=0;break}j=1.0/e;p[d>>3]=1.0;d=a+(c<<5)|0;p[d>>3]=j*+p[d>>3];g=a+(c<<5)+8|0;p[g>>3]=j*+p[g>>3];h=a+(c<<5)+16|0;p[h>>3]=j*+p[h>>3];i=a+(c<<5)+24|0;p[i>>3]=j*+p[i>>3];if((c|0)!=0?(V=a+(c<<3)|0,j=+p[V>>3],p[V>>3]=0.0,p[a>>3]=+p[a>>3]-j*+p[d>>3],p[X>>3]=+p[X>>3]-j*+p[g>>3],p[Y>>3]=+p[Y>>3]-j*+p[h>>3],p[Z>>3]=+p[Z>>3]-j*+p[i>>3],(c|0)==1):0)V=67;else{V=a+32+(c<<3)|0;j=+p[V>>3];p[V>>3]=0.0;p[v>>3]=+p[v>>3]-j*+p[d>>3];p[w>>3]=+p[w>>3]-j*+p[g>>3];p[x>>3]=+p[x>>3]-j*+p[h>>3];p[y>>3]=+p[y>>3]-j*+p[i>>3];if((c|0)==2)V=68;else V=67}if((V|0)==67?(V=0,ba=a+64+(c<<3)|0,j=+p[ba>>3],p[ba>>3]=0.0,p[D>>3]=+p[D>>3]-j*+p[d>>3],p[E>>3]=+p[E>>3]-j*+p[g>>3],p[F>>3]=+p[F>>3]-j*+p[h>>3],p[G>>3]=+p[G>>3]-j*+p[i>>3],(c|0)!=3):0)V=68;if((V|0)==68){V=0;ba=a+96+(c<<3)|0;j=+p[ba>>3];p[ba>>3]=0.0;p[z>>3]=+p[z>>3]-j*+p[d>>3];p[A>>3]=+p[A>>3]-j*+p[g>>3];p[B>>3]=+p[B>>3]-j*+p[h>>3];p[C>>3]=+p[C>>3]-j*+p[i>>3]}b=b+1|0;if(b>>>0>=4){V=13;break}d=k;k=f[W>>2]|0}if((V|0)==13){b=f[_+12>>2]|0;c=f[$+12>>2]|0;if((b|0)!=(c|0)){ba=a+(b<<3)|0;j=+p[ba>>3];Z=a+(c<<3)|0;p[ba>>3]=+p[Z>>3];p[Z>>3]=j;Z=a+32+(b<<3)|0;j=+p[Z>>3];ba=a+32+(c<<3)|0;p[Z>>3]=+p[ba>>3];p[ba>>3]=j;ba=a+64+(b<<3)|0;j=+p[ba>>3];Z=a+64+(c<<3)|0;p[ba>>3]=+p[Z>>3];p[Z>>3]=j;Z=a+96+(b<<3)|0;j=+p[Z>>3];ba=a+96+(c<<3)|0;p[Z>>3]=+p[ba>>3];p[ba>>3]=j}b=f[_+8>>2]|0;c=f[$+8>>2]|0;if((b|0)!=(c|0)){ba=a+(b<<3)|0;j=+p[ba>>3];Z=a+(c<<3)|0;p[ba>>3]=+p[Z>>3];p[Z>>3]=j;Z=a+32+(b<<3)|0;j=+p[Z>>3];ba=a+32+(c<<3)|0;p[Z>>3]=+p[ba>>3];p[ba>>3]=j;ba=a+64+(b<<3)|0;j=+p[ba>>3];Z=a+64+(c<<3)|0;p[ba>>3]=+p[Z>>3];p[Z>>3]=j;Z=a+96+(b<<3)|0;j=+p[Z>>3];ba=a+96+(c<<3)|0;p[Z>>3]=+p[ba>>3];p[ba>>3]=j}b=f[_+4>>2]|0;c=f[$+4>>2]|0;if((b|0)!=(c|0)){ba=a+(b<<3)|0;j=+p[ba>>3];Z=a+(c<<3)|0;p[ba>>3]=+p[Z>>3];p[Z>>3]=j;Z=a+32+(b<<3)|0;j=+p[Z>>3];ba=a+32+(c<<3)|0;p[Z>>3]=+p[ba>>3];p[ba>>3]=j;ba=a+64+(b<<3)|0;j=+p[ba>>3];Z=a+64+(c<<3)|0;p[ba>>3]=+p[Z>>3];p[Z>>3]=j;Z=a+96+(b<<3)|0;j=+p[Z>>3];ba=a+96+(c<<3)|0;p[Z>>3]=+p[ba>>3];p[ba>>3]=j}c=f[_>>2]|0;b=f[$>>2]|0;if((c|0)==(b|0))b=1;else{$=a+(c<<3)|0;j=+p[$>>3];ba=a+(b<<3)|0;p[$>>3]=+p[ba>>3];p[ba>>3]=j;ba=a+32+(c<<3)|0;j=+p[ba>>3];$=a+32+(b<<3)|0;p[ba>>3]=+p[$>>3];p[$>>3]=j;$=a+64+(c<<3)|0;j=+p[$>>3];ba=a+64+(b<<3)|0;p[$>>3]=+p[ba>>3];p[ba>>3]=j;ba=a+96+(c<<3)|0;j=+p[ba>>3];b=a+96+(b<<3)|0;p[ba>>3]=+p[b>>3];p[b>>3]=j;b=1}}ba=b;u=aa;return ba|0}function $Wa(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;var h=0,i=0;if(+p[a+24>>3]!=0.0){g=0;return g|0}if(+p[a+56>>3]!=0.0){g=0;return g|0}if(+p[a+88>>3]!=0.0){g=0;return g|0}if(+p[a+120>>3]!=1.0){g=0;return g|0}i=a+112|0;h=a+80|0;p[f>>3]=(+p[i>>3]+1.0)/+p[h>>3];p[g>>3]=(+p[i>>3]+-1.0)/+p[h>>3];f=a+96|0;p[b>>3]=-(+p[f>>3]+1.0)/+p[a>>3];p[c>>3]=(1.0-+p[f>>3])/+p[a>>3];f=a+104|0;g=a+40|0;p[d>>3]=-(+p[f>>3]+1.0)/+p[g>>3];p[e>>3]=(1.0-+p[f>>3])/+p[g>>3];g=1;return g|0}function aXa(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;var h=0.0,i=0.0,j=0.0,k=0;if(+p[a+24>>3]!=0.0){g=0;return g|0}if(+p[a+56>>3]!=0.0){g=0;return g|0}if(+p[a+88>>3]!=-1.0){g=0;return g|0}if(+p[a+120>>3]!=0.0){g=0;return g|0}i=+p[a+112>>3];h=+p[a+80>>3];j=i/(h+-1.0);k=a+64|0;p[b>>3]=j*(+p[k>>3]+-1.0)/+p[a>>3];p[c>>3]=j*(+p[k>>3]+1.0)/+p[a>>3];b=a+72|0;c=a+40|0;p[e>>3]=j*(+p[b>>3]+1.0)/+p[c>>3];p[d>>3]=j*(+p[b>>3]+-1.0)/+p[c>>3];p[f>>3]=j;p[g>>3]=i/(h+1.0);g=1;return g|0}function bXa(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;var g=0.0,h=0.0,i=0.0,j=0.0,k=0;g=+O(+(b*.5*3.141592653589793/180.0));c=g*c*d;g=g*d;h=c+c;i=g+g;if(+J(+e)>1797693134862315708145274.0e284){j=-1.0;b=d*-2.0}else{b=e-d;j=-(d+e)/b;b=e*-2.0*d/b}d=d*2.0;p[a>>3]=d/h;k=a+8|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;f[k+12>>2]=0;f[k+16>>2]=0;f[k+20>>2]=0;f[k+24>>2]=0;f[k+28>>2]=0;p[a+40>>3]=d/i;k=a+48|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;f[k+12>>2]=0;p[a+64>>3]=(c-c)/h;p[a+72>>3]=(g-g)/i;p[a+80>>3]=j;p[a+88>>3]=-1.0;k=a+96|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;f[k+12>>2]=0;p[a+112>>3]=b;p[a+120>>3]=0.0;return}function cXa(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0;if(((!(+p[a+24>>3]!=0.0)?!(+p[a+56>>3]!=0.0):0)?!(+p[a+88>>3]!=-1.0):0)?!(+p[a+120>>3]!=0.0):0){h=+p[a+112>>3];g=+p[a+80>>3];f=h/(g+-1.0);l=+p[a+64>>3];k=+p[a>>3];m=+p[a+72>>3];i=+p[a+40>>3];j=f*(m+1.0)/i;i=f*(m+-1.0)/i;m=(+R(+(j/f))-+R(+(i/f)))*180.0/3.141592653589793;p[b>>3]=m;p[c>>3]=(f*(l+1.0)/k-f*(l+-1.0)/k)/(j-i);a=1;g=h/(g+1.0)}else{a=0;f=0.0;g=0.0}p[d>>3]=f;p[e>>3]=g;return a|0}function dXa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;e=a+8|0;g=f[a>>2]|0;if((f[e>>2]|0)-g>>4>>>0>=b>>>0)return;h=a+4|0;if(b>>>0>268435455){h=mb(8)|0;RDb(h,238482);f[h>>2]=144484;qb(h|0,84192,1464)}c=(f[h>>2]|0)-g|0;d=LDb(b<<4)|0;if((c|0)>0)gGb(d|0,g|0,c|0)|0;f[a>>2]=d;f[h>>2]=d+(c>>4<<4);f[e>>2]=d+(b<<4);if(!g)return;NDb(g);return}function eXa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;i=a+4|0;j=f[a>>2]|0;k=(f[i>>2]|0)-j|0;g=k>>4;c=g+1|0;if(c>>>0>268435455)KEb(a);l=a+8|0;e=(f[l>>2]|0)-j|0;h=e>>3;h=e>>4>>>0<134217727?(h>>>0<c>>>0?c:h):268435455;do if(h)if(h>>>0>268435455){l=mb(8)|0;RDb(l,238482);f[l>>2]=144484;qb(l|0,84192,1464)}else{e=LDb(h<<4)|0;d=e;break}else{d=0;e=0}while(0);c=d+(g<<4)|0;f[c>>2]=f[b>>2];f[c+4>>2]=f[b+4>>2];f[c+8>>2]=f[b+8>>2];f[c+12>>2]=f[b+12>>2];if((k|0)>0)gGb(e|0,j|0,k|0)|0;f[a>>2]=d;f[i>>2]=c+16;f[l>>2]=d+(h<<4);if(!j)return;NDb(j);return}function fXa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0.0,j=0,k=0,l=0,m=0,o=0.0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0.0,E=0.0;C=u;u=u+32|0;A=C+16|0;y=C;f[A>>2]=0;B=A+4|0;f[B>>2]=0;m=A+8|0;f[m>>2]=0;z=b+4|0;W6(A,(f[z>>2]|0)-(f[b>>2]|0)>>4);g=f[b>>2]|0;e=f[z>>2]|0;if((g|0)==(e|0)){a=g;e=g}else{j=a+8|0;k=a+16|0;l=a+24|0;do{i=+p[l>>3]+(+p[a>>3]*+n[g+4>>2]+ +p[j>>3]*+n[g+8>>2]+ +p[k>>3]*+n[g+12>>2]);n[y>>2]=i;h=f[B>>2]|0;if(h>>>0<(f[m>>2]|0)>>>0){n[h>>2]=i;f[B>>2]=h+4}else{gXa(A,y);e=f[z>>2]|0}g=g+16|0}while((g|0)!=(e|0));e=f[b>>2]|0;a=e}h=f[c>>2]|0;x=c+4|0;f[x>>2]=h;e=(f[z>>2]|0)-e|0;if(!e){g=h;e=h}else{w=c+8|0;q=y+4|0;s=y+8|0;t=y+12|0;m=y+4|0;r=y+8|0;v=y+12|0;l=0;e=e>>4;do{k=l;l=l+1|0;j=(l>>>0)%(e>>>0)|0;e=f[A>>2]|0;o=+n[e+(k<<2)>>2];if(!(o>=0.0)){i=+n[e+(j<<2)>>2];if(i>0.0){E=i/(i-o);o=1.0-E;D=E*+n[a+(k<<4)+4>>2]+o*+n[a+(j<<4)+4>>2];i=E*+n[a+(k<<4)+8>>2]+o*+n[a+(j<<4)+8>>2];o=E*+n[a+(k<<4)+12>>2]+o*+n[a+(j<<4)+12>>2];f[y>>2]=f[a+(j<<4)>>2]&f[a+(k<<4)>>2]|d;n[q>>2]=D;n[s>>2]=i;n[t>>2]=o;e=f[x>>2]|0;if(e>>>0<(f[w>>2]|0)>>>0){f[e>>2]=f[y>>2];f[e+4>>2]=f[y+4>>2];f[e+8>>2]=f[y+8>>2];f[e+12>>2]=f[y+12>>2];f[x>>2]=(f[x>>2]|0)+16}else eXa(c,y)}}else{g=a+(k<<4)|0;h=f[x>>2]|0;if((h|0)==(f[w>>2]|0)){hXa(c,g);e=f[A>>2]|0}else{f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];f[x>>2]=(f[x>>2]|0)+16}i=+n[e+(j<<2)>>2];if(i<0.0){a=f[b>>2]|0;i=i/(i-+n[e+(k<<2)>>2]);E=1.0-i;o=+n[a+(k<<4)+4>>2]*i+E*+n[a+(j<<4)+4>>2];D=i*+n[a+(k<<4)+8>>2]+E*+n[a+(j<<4)+8>>2];E=i*+n[a+(k<<4)+12>>2]+E*+n[a+(j<<4)+12>>2];f[y>>2]=f[a+(j<<4)>>2]&f[a+(k<<4)>>2]|d;n[m>>2]=o;n[r>>2]=D;n[v>>2]=E;e=f[x>>2]|0;if(e>>>0<(f[w>>2]|0)>>>0){f[e>>2]=f[y>>2];f[e+4>>2]=f[y+4>>2];f[e+8>>2]=f[y+8>>2];f[e+12>>2]=f[y+12>>2];f[x>>2]=(f[x>>2]|0)+16}else eXa(c,y)}}a=f[b>>2]|0;e=(f[z>>2]|0)-a>>4}while(l>>>0<e>>>0);g=f[c>>2]|0;e=f[x>>2]|0}g=e-g>>4;e=f[A>>2]|0;if(!e){u=C;return g|0}f[B>>2]=e;NDb(e);u=C;return g|0}function gXa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;i=a+4|0;j=f[a>>2]|0;k=(f[i>>2]|0)-j|0;g=k>>2;c=g+1|0;if(c>>>0>1073741823)KEb(a);l=a+8|0;e=(f[l>>2]|0)-j|0;h=e>>1;h=e>>2>>>0<536870911?(h>>>0<c>>>0?c:h):1073741823;do if(h)if(h>>>0>1073741823){l=mb(8)|0;RDb(l,238482);f[l>>2]=144484;qb(l|0,84192,1464)}else{e=LDb(h<<2)|0;d=e;break}else{d=0;e=0}while(0);c=d+(g<<2)|0;f[c>>2]=f[b>>2];if((k|0)>0)gGb(e|0,j|0,k|0)|0;f[a>>2]=d;f[i>>2]=c+4;f[l>>2]=d+(h<<2);if(!j)return;NDb(j);return}function hXa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;i=a+4|0;j=f[a>>2]|0;k=(f[i>>2]|0)-j|0;g=k>>4;c=g+1|0;if(c>>>0>268435455)KEb(a);l=a+8|0;e=(f[l>>2]|0)-j|0;h=e>>3;h=e>>4>>>0<134217727?(h>>>0<c>>>0?c:h):268435455;do if(h)if(h>>>0>268435455){l=mb(8)|0;RDb(l,238482);f[l>>2]=144484;qb(l|0,84192,1464)}else{e=LDb(h<<4)|0;d=e;break}else{d=0;e=0}while(0);c=d+(g<<4)|0;f[c>>2]=f[b>>2];f[c+4>>2]=f[b+4>>2];f[c+8>>2]=f[b+8>>2];f[c+12>>2]=f[b+12>>2];if((k|0)>0)gGb(e|0,j|0,k|0)|0;f[a>>2]=d;f[i>>2]=c+16;f[l>>2]=d+(h<<4);if(!j)return;NDb(j);return}function iXa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=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,v=0;v=u;u=u+32|0;g=v+16|0;r=v;f[r>>2]=0;s=r+4|0;f[s>>2]=0;q=r+8|0;f[q>>2]=0;h=b+4|0;dXa(r,((f[h>>2]|0)-(f[b>>2]|0)|0)/12|0);b=f[b>>2]|0;if((b|0)!=(f[h>>2]|0)){e=g+4|0;do{f[g>>2]=0;f[e>>2]=f[b>>2];f[e+4>>2]=f[b+4>>2];f[e+8>>2]=f[b+8>>2];d=f[s>>2]|0;if(d>>>0<(f[q>>2]|0)>>>0){f[d>>2]=f[g>>2];f[d+4>>2]=f[g+4>>2];f[d+8>>2]=f[g+8>>2];f[d+12>>2]=f[g+12>>2];f[s>>2]=d+16}else eXa(r,g);b=b+12|0}while((b|0)!=(f[h>>2]|0))}b=f[a>>2]|0;h=a+4|0;a:do if((b|0)==(f[h>>2]|0)){h=c+4|0;e=c+8|0;m=c;n=s;a=h;k=q;j=e;b=f[c>>2]|0;i=f[r>>2]|0;h=f[h>>2]|0;g=f[s>>2]|0;e=f[e>>2]|0;d=f[q>>2]|0;t=12}else{a=c+4|0;j=c+8|0;g=1;e=b;while(1){if(!(fXa(e,r,c,g)|0))break;b=f[r>>2]|0;i=f[c>>2]|0;f[r>>2]=i;f[c>>2]=b;l=f[s>>2]|0;o=f[a>>2]|0;f[s>>2]=o;f[a>>2]=l;p=f[q>>2]|0;d=f[j>>2]|0;f[q>>2]=d;f[j>>2]=p;e=e+40|0;if((e|0)==(f[h>>2]|0)){m=c;n=s;k=q;h=l;g=o;e=p;t=12;break a}else g=g<<1}d=0;b=f[r>>2]|0}while(0);if((t|0)==12){f[r>>2]=b;f[m>>2]=i;f[n>>2]=h;f[a>>2]=g;f[k>>2]=e;f[j>>2]=d;d=g-i>>4}if(!b){u=v;return d|0}f[s>>2]=b;NDb(b);u=v;return d|0}function jXa(a,b){a=a|0;b=b|0;var c=0.0,d=0,e=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,o=0.0,q=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;d=f[a>>2]|0;q=a+4|0;if((d|0)==(f[q>>2]|0))return;e=+p[b+24>>3];g=+p[b+56>>3];h=+p[b+88>>3];i=+p[b+120>>3];j=+p[b>>3];k=+p[b+32>>3];l=+p[b+64>>3];m=+p[b+96>>3];o=+p[b+8>>3];r=+p[b+40>>3];s=+p[b+72>>3];t=+p[b+104>>3];u=+p[b+16>>3];v=+p[b+48>>3];w=+p[b+80>>3];c=+p[b+112>>3];a=d;do{B=a+4|0;z=+n[B>>2];b=a+8|0;y=+n[b>>2];d=a+12|0;x=+n[d>>2];A=1.0/(i+(e*z+g*y+h*x));n[B>>2]=A*(m+(j*z+k*y+l*x));n[b>>2]=A*(t+(o*z+r*y+s*x));n[d>>2]=A*(c+(u*z+v*y+w*x));a=a+16|0}while((a|0)!=(f[q>>2]|0));return}function kXa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,q=0,r=0,s=0,t=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,J=0.0,K=0.0;E=u;u=u+16|0;D=E;d=f[a>>2]|0;A=a+4|0;if((d|0)==(f[A>>2]|0)){u=E;return}B=c+24|0;C=c+56|0;i=c+88|0;j=c+120|0;k=c+32|0;l=c+64|0;m=c+96|0;o=c+8|0;q=c+40|0;r=c+72|0;s=c+104|0;t=c+16|0;v=c+48|0;w=c+80|0;x=c+112|0;e=D+4|0;g=D+8|0;h=D+12|0;y=b+4|0;z=b+8|0;a=d;do{J=+n[a+4>>2];I=+n[a+8>>2];F=+n[a+12>>2];K=1.0/(+p[j>>3]+(+p[B>>3]*J+ +p[C>>3]*I+ +p[i>>3]*F));H=K*(+p[m>>3]+(+p[c>>3]*J+ +p[k>>3]*I+ +p[l>>3]*F));G=K*(+p[s>>3]+(+p[o>>3]*J+ +p[q>>3]*I+ +p[r>>3]*F));F=K*(+p[x>>3]+(+p[t>>3]*J+ +p[v>>3]*I+ +p[w>>3]*F));f[D>>2]=f[a>>2];n[e>>2]=H;n[g>>2]=G;n[h>>2]=F;d=f[y>>2]|0;if(d>>>0<(f[z>>2]|0)>>>0){f[d>>2]=f[D>>2];f[d+4>>2]=f[D+4>>2];f[d+8>>2]=f[D+8>>2];f[d+12>>2]=f[D+12>>2];f[y>>2]=(f[y>>2]|0)+16}else eXa(b,D);a=a+16|0}while((a|0)!=(f[A>>2]|0));u=E;return}function lXa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0.0,j=0,k=0.0,l=0.0,m=0.0,o=0.0,q=0.0,r=0.0,s=0.0,t=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;E=u;u=u+48|0;C=E;D=a+4|0;e=f[D>>2]|0;d=f[a>>2]|0;g=e-d|0;if(!g){u=E;return}v=C+8|0;w=C+16|0;x=C+24|0;y=C+32|0;z=C+36|0;A=c+4|0;B=c+8|0;t=0;g=g>>4;do{j=d;h=t;t=t+1|0;g=(t>>>0)%(g>>>0)|0;if(!(f[j+(g<<4)>>2]&f[j+(h<<4)>>2])){q=+n[j+(h<<4)+4>>2];r=+n[j+(h<<4)+8>>2];s=+n[j+(h<<4)+12>>2];k=+n[j+(g<<4)+4>>2];o=+n[j+(g<<4)+8>>2];l=+n[j+(g<<4)+12>>2];j=f[b>>2]|0;F=k-q;m=o-r;G=l-s;k=+n[j+(h<<4)+4>>2]-k;o=+n[j+(h<<4)+8>>2]-o;l=+n[j+(h<<4)+12>>2]-l;i=m*l-G*o;l=G*k-F*l;k=F*o-m*k;m=+K(+(k*k+(i*i+l*l)));if(m>1.0e-06){o=i/m;k=k/m;i=l/m}else{o=0.0;k=0.0;i=0.0}p[C>>3]=o;p[v>>3]=i;p[w>>3]=k;p[x>>3]=-(o*q+i*r+k*s);h=o>=0.0&1;g=(i>=0.0?2:0)|h|(k>=0.0?4:0);f[y>>2]=g;f[z>>2]=g^7;g=f[A>>2]|0;if(g>>>0<(f[B>>2]|0)>>>0){p[g>>3]=o;F=+p[v>>3];p[g+8>>3]=F;G=+p[w>>3];p[g+16>>3]=G;p[g+24>>3]=+p[x>>3];j=(F>=0.0?2:0)|h|(G>=0.0?4:0);f[g+32>>2]=j;f[g+36>>2]=j^7;f[A>>2]=g+40}else{oE(c,C);e=f[D>>2]|0;d=f[a>>2]|0}}g=e-d>>4}while(t>>>0<g>>>0);u=E;return}function mXa(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0;b=f[b>>2]|0;j=+n[b+36>>2];k=+n[b+40>>2];i=+n[b+44>>2];d=+n[b+20>>2];e=+n[b+24>>2];g=+n[b+28>>2];l=d-j;h=e-k;m=g-i;d=+n[b+4>>2]-d;e=+n[b+8>>2]-e;g=+n[b+12>>2]-g;c=h*g-m*e;g=m*d-l*g;d=l*e-h*d;h=+K(+(d*d+(c*c+g*g)));if(h>1.0e-06){e=c/h;d=d/h;c=g/h}else{e=0.0;d=0.0;c=0.0}p[a>>3]=e;p[a+8>>3]=c;p[a+16>>3]=d;p[a+24>>3]=-(e*j+c*k+d*i);b=(c>=0.0?2:0)|e>=0.0|(d>=0.0?4:0);f[a+32>>2]=b;f[a+36>>2]=b^7;return}function nXa(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,o=0,p=0.0,q=0.0,r=0.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,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,K=0.0,L=0.0,M=0.0;s=f[a>>2]|0;p=+n[s+4>>2];q=+n[s+8>>2];r=+n[s+12>>2];o=f[b>>2]|0;k=+n[o+4>>2];l=+n[o+8>>2];m=+n[o+12>>2];a=((f[a+4>>2]|0)-s>>4)+-1|0;if(a>>>0<=1){r=0.0;return +r}c=0.0;b=1;d=+n[s+20>>2];e=+n[s+24>>2];g=+n[s+28>>2];h=+n[o+20>>2];i=+n[o+24>>2];j=+n[o+28>>2];do{b=b+1|0;C=d;d=+n[s+(b<<4)+4>>2];B=C-d;y=e;e=+n[s+(b<<4)+8>>2];D=y-e;E=g;g=+n[s+(b<<4)+12>>2];u=E-g;x=p-C;A=q-y;F=r-E;F=+J(+((m-E)*(B*A-x*D)+((k-C)*(D*F-A*u)+(l-y)*(x*u-B*F))));B=h;h=+n[o+(b<<4)+4>>2];u=B-h;x=i;i=+n[o+(b<<4)+8>>2];A=x-i;D=j;j=+n[o+(b<<4)+12>>2];v=D-j;w=k-B;z=l-x;t=m-D;H=h-C;M=i-y;I=j-E;K=k-h;L=l-i;G=m-j;c=c+(+J(+((H*L-K*M)*(g-j)+((d-h)*(M*G-L*I)+(e-i)*(K*I-H*G))))+(F+ +J(+((E-D)*(u*z-w*A)+((C-B)*(A*t-z*v)+(y-x)*(w*v-u*t))))))}while(b>>>0<a>>>0);return +c}function oXa(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0.0,h=0,i=0,j=0,k=0.0,l=0.0,m=0.0,o=0.0,q=0.0,r=0.0,s=0.0,t=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,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,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0.0,ua=0.0,va=0.0,wa=0.0;sa=u;u=u+432|0;oa=sa+208|0;pa=sa+80|0;ra=sa+408|0;qa=sa+396|0;F=sa+40|0;la=sa+384|0;ma=sa+336|0;na=sa;j=f[d+280>>2]|0;h=d+296|0;i=f[((f[d+112>>2]|0)==0?h:d+96|0)>>2]|0;h=f[((f[d+92>>2]|0)==0?h:d+76|0)>>2]|0;e=a+4|0;if((e|0)!=(b|0))cE(e,f[b>>2]|0,f[b+4>>2]|0);e=a+16|0;b=f[e>>2]|0;if((b|0)!=(h|0)){f[e>>2]=h;if(h|0){ka=h+8|0;f[ka>>2]=(f[ka>>2]|0)+1}if(b|0?(ja=b+8|0,ka=f[ja>>2]|0,f[ja>>2]=ka-1,(ka|0)==1):0)X4(b,1,1)}n[a>>2]=0.0;p[oa>>3]=1.0;fa=oa+8|0;ga=oa+40|0;f[fa>>2]=0;f[fa+4>>2]=0;f[fa+8>>2]=0;f[fa+12>>2]=0;f[fa+16>>2]=0;f[fa+20>>2]=0;f[fa+24>>2]=0;f[fa+28>>2]=0;p[ga>>3]=1.0;ha=oa+48|0;ia=oa+80|0;f[ha>>2]=0;f[ha+4>>2]=0;f[ha+8>>2]=0;f[ha+12>>2]=0;f[ha+16>>2]=0;f[ha+20>>2]=0;f[ha+24>>2]=0;f[ha+28>>2]=0;p[ia>>3]=1.0;ja=oa+88|0;ka=oa+120|0;f[ja>>2]=0;f[ja+4>>2]=0;f[ja+8>>2]=0;f[ja+12>>2]=0;f[ja+16>>2]=0;f[ja+20>>2]=0;f[ja+24>>2]=0;f[ja+28>>2]=0;p[ka>>3]=1.0;b=h+32|0;if(((+p[h+56>>3]==0.0?+p[h+88>>3]==0.0:0)?+p[h+120>>3]==0.0:0)?+p[h+152>>3]==1.0:0)ZWa(oa,b)|0;else _Wa(oa,b)|0;e=d+284|0;g=+n[e>>2];if(g<0.0){Y1(d);g=+n[e>>2]}da=i+32|0;p[pa>>3]=1.0;ea=pa+8|0;f[ea>>2]=0;f[ea+4>>2]=0;f[ea+8>>2]=0;f[ea+12>>2]=0;f[ea+16>>2]=0;f[ea+20>>2]=0;f[ea+24>>2]=0;f[ea+28>>2]=0;p[pa+40>>3]=1.0;ea=pa+48|0;f[ea>>2]=0;f[ea+4>>2]=0;f[ea+8>>2]=0;f[ea+12>>2]=0;f[ea+16>>2]=0;f[ea+20>>2]=0;f[ea+24>>2]=0;f[ea+28>>2]=0;p[pa+80>>3]=1.0;ea=pa+88|0;f[ea>>2]=0;f[ea+4>>2]=0;f[ea+8>>2]=0;f[ea+12>>2]=0;f[ea+16>>2]=0;f[ea+20>>2]=0;f[ea+24>>2]=0;f[ea+28>>2]=0;p[pa+120>>3]=1.0;WWa(pa,da,b);f[ra>>2]=0;ea=ra+4|0;f[ea>>2]=0;f[ra+8>>2]=0;ba=j+40|0;if((iXa(ba,c+32|0,ra)|0)>>>0>2){f[qa>>2]=0;ca=qa+4|0;f[ca>>2]=0;f[qa+8>>2]=0;dXa(qa,(f[ea>>2]|0)-(f[ra>>2]|0)>>4);kXa(ra,qa,pa);h=f[qa>>2]|0;b=f[ca>>2]|0;if((h|0)!=(b|0)){e=h;do{n[e+12>>2]=1.0;e=e+16|0}while((e|0)!=(b|0));C=+p[oa+24>>3];k=+p[oa+56>>3];l=+p[ja>>3];m=+p[ka>>3];o=+p[oa>>3];q=+p[oa+32>>3];r=+p[oa+64>>3];s=+p[oa+96>>3];t=+p[fa>>3];v=+p[ga>>3];w=+p[oa+72>>3];x=+p[oa+104>>3];y=+p[oa+16>>3];z=+p[ha>>3];A=+p[ia>>3];B=+p[oa+112>>3];e=h;do{_=e+4|0;wa=+n[_>>2];$=e+8|0;va=+n[$>>2];aa=e+12|0;ua=+n[aa>>2];ta=1.0/(m+(C*wa+k*va+l*ua));n[_>>2]=(s+(o*wa+q*va+r*ua))*ta;n[$>>2]=(x+(t*wa+v*va+w*ua))*ta;n[aa>>2]=(B+(y*wa+z*va+A*ua))*ta;e=e+16|0}while((e|0)!=(f[ca>>2]|0))}jXa(ra,da);i=a+56|0;lN(i,(f[ea>>2]|0)-(f[ra>>2]|0)>>4);e=f[ra>>2]|0;if((e|0)!=(f[ea>>2]|0)){d=a+60|0;j=a+64|0;do{b=e+4|0;h=f[d>>2]|0;if((h|0)==(f[j>>2]|0))rC(i,b);else{f[h>>2]=f[b>>2];f[h+4>>2]=f[b+4>>2];f[h+8>>2]=f[b+8>>2];f[d>>2]=(f[d>>2]|0)+12}e=e+16|0}while((e|0)!=(f[ea>>2]|0))}mXa(F,ra);d=a+44|0;E=a+48|0;e=f[E>>2]|0;if((e|0)==(f[a+52>>2]|0)){E1(d,F);b=f[E>>2]|0}else{va=+p[F>>3];p[e>>3]=va;ua=+p[F+8>>3];p[e+8>>3]=ua;wa=+p[F+16>>3];p[e+16>>3]=wa;p[e+24>>3]=+p[F+24>>3];b=(ua>=0.0?2:0)|va>=0.0|(wa>=0.0?4:0);f[e+32>>2]=b;f[e+36>>2]=b^7;b=e+40|0;f[E>>2]=b}D=a+40|0;f[D>>2]=0;e=f[d>>2]|0;if((b|0)!=(e|0)){b=(b-e|0)/40|0;e=0;h=0;do{h=h<<1|1;e=e+1|0}while(e>>>0<b>>>0);f[D>>2]=h}j=a+36|0;i=a+20|0;do if(f[j>>2]|0){e=a+28|0;b=f[e>>2]|0;if((b|0)==(f[a+32>>2]|0)){JD(a+24|0,i);break}else{f[b>>2]=f[i>>2];f[e>>2]=b+4;break}}while(0);f[i>>2]=f[D>>2];f[j>>2]=(f[j>>2]|0)+1;lXa(ra,qa,d);f[D>>2]=0;b=f[E>>2]|0;e=f[d>>2]|0;if((b|0)!=(e|0)){b=(b-e|0)/40|0;e=0;h=0;do{h=h<<1|1;e=e+1|0}while(e>>>0<b>>>0);f[D>>2]=h}do if(f[j>>2]|0){e=a+28|0;b=f[e>>2]|0;if((b|0)==(f[a+32>>2]|0)){JD(a+24|0,i);break}else{f[b>>2]=f[i>>2];f[e>>2]=b+4;break}}while(0);f[i>>2]=f[D>>2];f[j>>2]=(f[j>>2]|0)+1;if(+p[F+24>>3]>0.0?(G=f[a+44>>2]|0,H=f[E>>2]|0,(G|0)!=(H|0)):0){e=G;do{va=+p[e>>3];p[e>>3]=-va;aa=e+8|0;ua=+p[aa>>3];p[aa>>3]=-ua;aa=e+16|0;wa=+p[aa>>3];p[aa>>3]=-wa;aa=e+24|0;p[aa>>3]=-+p[aa>>3];aa=(ua<=-0.0?2:0)|va<=-0.0|(wa<=-0.0?4:0);f[e+32>>2]=aa;f[e+36>>2]=aa^7;e=e+40|0}while((e|0)!=(H|0))}wa=+nXa(ra,qa)/g;n[a>>2]=wa;e=f[c+44>>2]|0;F=c+48|0;if((e|0)!=(f[F>>2]|0)){G=la+4|0;H=la+8|0;c=ma+16|0;I=a+72|0;J=a+76|0;K=ma+36|0;L=a+68|0;M=ma+24|0;N=ma+40|0;O=ma+4|0;P=ma+28|0;Q=ma+4|0;R=ma+8|0;S=ma+8|0;T=oa+24|0;U=oa+56|0;V=oa+32|0;W=oa+64|0;X=oa+96|0;Y=oa+72|0;Z=oa+104|0;_=oa+16|0;$=oa+112|0;aa=na+24|0;do{f[la>>2]=0;f[G>>2]=0;f[H>>2]=0;if((iXa(ba,e,la)|0)>>>0>2){b=ma;h=b+48|0;do{f[b>>2]=0;b=b+4|0}while((b|0)<(h|0));f[c>>2]=1;b=f[I>>2]|0;if(b>>>0<(f[J>>2]|0)>>>0){GD(b,ma);f[I>>2]=(f[I>>2]|0)+48}else pXa(L,ma);b=f[K>>2]|0;if(b|0){f[N>>2]=b;NDb(b)}b=f[M>>2]|0;if(b|0){f[P>>2]=b;NDb(b)}b=f[O>>2]|0;if(b|0){f[S>>2]=b;NDb(b)}E=f[I>>2]|0;f[ma>>2]=0;f[Q>>2]=0;f[R>>2]=0;dXa(ma,(f[G>>2]|0)-(f[la>>2]|0)>>4);kXa(la,ma,pa);i=f[ma>>2]|0;h=f[Q>>2]|0;if((i|0)!=(h|0)){b=i;do{n[b+12>>2]=1.0;b=b+16|0}while((b|0)!=(h|0));k=+p[T>>3];l=+p[U>>3];m=+p[ja>>3];o=+p[ka>>3];q=+p[oa>>3];r=+p[V>>3];s=+p[W>>3];t=+p[X>>3];v=+p[fa>>3];w=+p[ga>>3];x=+p[Y>>3];y=+p[Z>>3];z=+p[_>>3];A=+p[ha>>3];B=+p[ia>>3];C=+p[$>>3];b=i;do{d=b+4|0;ta=+n[d>>2];j=b+8|0;ua=+n[j>>2];D=b+12|0;va=+n[D>>2];wa=1.0/(o+(k*ta+l*ua+m*va));n[d>>2]=(t+(q*ta+r*ua+s*va))*wa;n[j>>2]=(y+(v*ta+w*ua+x*va))*wa;n[D>>2]=(C+(z*ta+A*ua+B*va))*wa;b=b+16|0}while((b|0)!=(f[Q>>2]|0))}jXa(la,da);d=E+-12|0;lN(d,(f[G>>2]|0)-(f[la>>2]|0)>>4);b=f[la>>2]|0;if((b|0)!=(f[G>>2]|0)){j=E+-8|0;D=E+-4|0;do{h=b+4|0;i=f[j>>2]|0;if((i|0)==(f[D>>2]|0))rC(d,h);else{f[i>>2]=f[h>>2];f[i+4>>2]=f[h+4>>2];f[i+8>>2]=f[h+8>>2];f[j>>2]=(f[j>>2]|0)+12}b=b+16|0}while((b|0)!=(f[G>>2]|0))}mXa(na,la);h=E+-24|0;lXa(la,ma,h);j=E+-28|0;f[j>>2]=0;D=E+-20|0;b=f[D>>2]|0;h=f[h>> |