diff --git a/discord.indev.js b/discord.indev.js index d55049aa..e7b69a0e 100644 --- a/discord.indev.js +++ b/discord.indev.js @@ -61,7 +61,7 @@ /******/ __webpack_require__.p = ""; /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 281); +/******/ return __webpack_require__(__webpack_require__.s = 340); /******/ }) /************************************************************************/ /******/ ([ @@ -79,9 +79,9 @@ 'use strict' -var base64 = __webpack_require__(148) -var ieee754 = __webpack_require__(198) -var isArray = __webpack_require__(102) +var base64 = __webpack_require__(150) +var ieee754 = __webpack_require__(200) +var isArray = __webpack_require__(106) exports.Buffer = Buffer exports.SlowBuffer = SlowBuffer @@ -1859,42 +1859,13 @@ function isnan (val) { return val !== val // eslint-disable-line no-self-compare } -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer, __webpack_require__(16))) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer, __webpack_require__(19))) /***/ }, /* 1 */ -/***/ function(module, exports) { - -if (typeof Object.create === 'function') { - // implementation from standard node.js 'util' module - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }); - }; -} else { - // old school shim for old browsers - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - var TempCtor = function () {} - TempCtor.prototype = superCtor.prototype - ctor.prototype = new TempCtor() - ctor.prototype.constructor = ctor - } -} - - -/***/ }, -/* 2 */ /***/ function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(process) {exports.Package = __webpack_require__(61); +/* WEBPACK VAR INJECTION */(function(process) {exports.Package = __webpack_require__(64); /** * Options for a Client. @@ -2204,12 +2175,87 @@ for (const key in PermissionFlags) _ALL_PERMISSIONS |= PermissionFlags[key]; exports.ALL_PERMISSIONS = _ALL_PERMISSIONS; exports.DEFAULT_PERMISSIONS = 104324097; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(8))) + +/***/ }, +/* 2 */ +/***/ function(module, exports) { + +if (typeof Object.create === 'function') { + // implementation from standard node.js 'util' module + module.exports = function inherits(ctor, superCtor) { + ctor.super_ = superCtor + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); + }; +} else { + // old school shim for old browsers + module.exports = function inherits(ctor, superCtor) { + ctor.super_ = superCtor + var TempCtor = function () {} + TempCtor.prototype = superCtor.prototype + ctor.prototype = new TempCtor() + ctor.prototype.constructor = ctor + } +} + /***/ }, /* 3 */ /***/ function(module, exports) { +class AbstractHandler { + constructor(packetManager) { + this.packetManager = packetManager; + } + + handle(packet) { + return packet; + } +} + +module.exports = AbstractHandler; + + +/***/ }, +/* 4 */ +/***/ function(module, exports) { + +/* + +ABOUT ACTIONS + +Actions are similar to WebSocket Packet Handlers, but since introducing +the REST API methods, in order to prevent rewriting code to handle data, +"actions" have been introduced. They're basically what Packet Handlers +used to be but they're strictly for manipulating data and making sure +that WebSocket events don't clash with REST methods. + +*/ + +class GenericAction { + constructor(client) { + this.client = client; + } + + handle(data) { + return data; + } +} + +module.exports = GenericAction; + + +/***/ }, +/* 5 */ +/***/ function(module, exports) { + // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a @@ -2515,7 +2561,347 @@ function isUndefined(arg) { /***/ }, -/* 4 */ +/* 6 */ +/***/ function(module, exports) { + +/** + * A Map with additional utility methods. This is used throughout discord.js rather than Arrays for anything that has + * an ID, for significantly improved performance and ease-of-use. + * @extends {Map} + */ +class Collection extends Map { + constructor(iterable) { + super(iterable); + + /** + * Cached array for the `array()` method - will be reset to `null` whenever `set()` or `delete()` are called. + * @type {?Array} + * @private + */ + this._array = null; + + /** + * Cached array for the `keyArray()` method - will be reset to `null` whenever `set()` or `delete()` are called. + * @type {?Array} + * @private + */ + this._keyArray = null; + } + + set(key, val) { + super.set(key, val); + this._array = null; + this._keyArray = null; + } + + delete(key) { + super.delete(key); + this._array = null; + this._keyArray = null; + } + + /** + * Creates an ordered array of the values of this collection, and caches it internally. The array will only be + * reconstructed if an item is added to or removed from the collection, or if you change the length of the array + * itself. If you don't want this caching behaviour, use `Array.from(collection.values())` instead. + * @returns {Array} + */ + array() { + if (!this._array || this._array.length !== this.size) this._array = Array.from(this.values()); + return this._array; + } + + /** + * Creates an ordered array of the keys of this collection, and caches it internally. The array will only be + * reconstructed if an item is added to or removed from the collection, or if you change the length of the array + * itself. If you don't want this caching behaviour, use `Array.from(collection.keys())` instead. + * @returns {Array} + */ + keyArray() { + if (!this._keyArray || this._keyArray.length !== this.size) this._keyArray = Array.from(this.keys()); + return this._keyArray; + } + + /** + * Obtains the first item in this collection. + * @returns {*} + */ + first() { + return this.values().next().value; + } + + /** + * Obtains the first key in this collection. + * @returns {*} + */ + firstKey() { + return this.keys().next().value; + } + + /** + * Obtains the last item in this collection. This relies on the `array()` method, and thus the caching mechanism + * applies here as well. + * @returns {*} + */ + last() { + const arr = this.array(); + return arr[arr.length - 1]; + } + + /** + * Obtains the last key in this collection. This relies on the `keyArray()` method, and thus the caching mechanism + * applies here as well. + * @returns {*} + */ + lastKey() { + const arr = this.keyArray(); + return arr[arr.length - 1]; + } + + /** + * Obtains a random item from this collection. This relies on the `array()` method, and thus the caching mechanism + * applies here as well. + * @returns {*} + */ + random() { + const arr = this.array(); + return arr[Math.floor(Math.random() * arr.length)]; + } + + /** + * Obtains a random key from this collection. This relies on the `keyArray()` method, and thus the caching mechanism + * applies here as well. + * @returns {*} + */ + randomKey() { + const arr = this.keyArray(); + return arr[Math.floor(Math.random() * arr.length)]; + } + + /** + * Searches for all items where their specified property's value is identical to the given value + * (`item[prop] === value`). + * @param {string} prop The property to test against + * @param {*} value The expected value + * @returns {Array} + * @example + * collection.findAll('username', 'Bob'); + */ + findAll(prop, value) { + if (typeof prop !== 'string') throw new TypeError('Key must be a string.'); + if (typeof value === 'undefined') throw new Error('Value must be specified.'); + const results = []; + for (const item of this.values()) { + if (item[prop] === value) results.push(item); + } + return results; + } + + /** + * Searches for a single item where its specified property's value is identical to the given value + * (`item[prop] === value`), or the given function returns a truthy value. In the latter case, this is identical to + * [Array.find()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find). + * Do not use this to obtain an item by its ID. Instead, use `collection.get(id)`. See + * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/get) for details. + * @param {string|Function} propOrFn The property to test against, or the function to test with + * @param {*} [value] The expected value - only applicable and required if using a property for the first argument + * @returns {*} + * @example + * collection.find('username', 'Bob'); + * @example + * collection.find(val => val.username === 'Bob'); + */ + find(propOrFn, value) { + if (typeof propOrFn === 'string') { + if (typeof value === 'undefined') throw new Error('Value must be specified.'); + if (propOrFn === 'id') throw new RangeError('Don\'t use .find() with IDs. Instead, use .get(id).'); + for (const item of this.values()) { + if (item[propOrFn] === value) return item; + } + return null; + } else if (typeof propOrFn === 'function') { + for (const [key, val] of this) { + if (propOrFn(val, key, this)) return val; + } + return null; + } else { + throw new Error('First argument must be a property string or a function.'); + } + } + + /* eslint-disable max-len */ + /** + * Searches for the key of a single item where its specified property's value is identical to the given value + * (`item[prop] === value`), or the given function returns a truthy value. In the latter case, this is identical to + * [Array.findIndex()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex). + * @param {string|Function} propOrFn The property to test against, or the function to test with + * @param {*} [value] The expected value - only applicable and required if using a property for the first argument + * @returns {*} + * @example + * collection.findKey('username', 'Bob'); + * @example + * collection.findKey(val => val.username === 'Bob'); + */ + /* eslint-enable max-len */ + findKey(propOrFn, value) { + if (typeof propOrFn === 'string') { + if (typeof value === 'undefined') throw new Error('Value must be specified.'); + for (const [key, val] of this) { + if (val[propOrFn] === value) return key; + } + return null; + } else if (typeof propOrFn === 'function') { + for (const [key, val] of this) { + if (propOrFn(val, key, this)) return key; + } + return null; + } else { + throw new Error('First argument must be a property string or a function.'); + } + } + + /** + * Searches for the existence of a single item where its specified property's value is identical to the given value + * (`item[prop] === value`). + * Do not use this to check for an item by its ID. Instead, use `collection.has(id)`. See + * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/has) for details. + * @param {string} prop The property to test against + * @param {*} value The expected value + * @returns {boolean} + * @example + * if (collection.exists('username', 'Bob')) { + * console.log('user here!'); + * } + */ + exists(prop, value) { + if (prop === 'id') throw new RangeError('Don\'t use .exists() with IDs. Instead, use .has(id).'); + return Boolean(this.find(prop, value)); + } + + /** + * Identical to + * [Array.filter()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter), + * but returns a Collection instead of an Array. + * @param {Function} fn Function used to test (should return a boolean) + * @param {Object} [thisArg] Value to use as `this` when executing function + * @returns {Collection} + */ + filter(fn, thisArg) { + if (thisArg) fn = fn.bind(thisArg); + const results = new Collection(); + for (const [key, val] of this) { + if (fn(val, key, this)) results.set(key, val); + } + return results; + } + + /** + * Identical to + * [Array.filter()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter). + * @param {Function} fn Function used to test (should return a boolean) + * @param {Object} [thisArg] Value to use as `this` when executing function + * @returns {Array} + */ + filterArray(fn, thisArg) { + if (thisArg) fn = fn.bind(thisArg); + const results = []; + for (const [key, val] of this) { + if (fn(val, key, this)) results.push(val); + } + return results; + } + + /** + * Identical to + * [Array.map()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map). + * @param {Function} fn Function that produces an element of the new array, taking three arguments + * @param {*} [thisArg] Value to use as `this` when executing function + * @returns {Array} + */ + map(fn, thisArg) { + if (thisArg) fn = fn.bind(thisArg); + const arr = new Array(this.size); + let i = 0; + for (const [key, val] of this) arr[i++] = fn(val, key, this); + return arr; + } + + /** + * Identical to + * [Array.some()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some). + * @param {Function} fn Function used to test (should return a boolean) + * @param {Object} [thisArg] Value to use as `this` when executing function + * @returns {boolean} + */ + some(fn, thisArg) { + if (thisArg) fn = fn.bind(thisArg); + for (const [key, val] of this) { + if (fn(val, key, this)) return true; + } + return false; + } + + /** + * Identical to + * [Array.every()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every). + * @param {Function} fn Function used to test (should return a boolean) + * @param {Object} [thisArg] Value to use as `this` when executing function + * @returns {boolean} + */ + every(fn, thisArg) { + if (thisArg) fn = fn.bind(thisArg); + for (const [key, val] of this) { + if (!fn(val, key, this)) return false; + } + return true; + } + + /** + * Identical to + * [Array.reduce()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce). + * @param {Function} fn Function used to reduce + * @param {*} [startVal] The starting value + * @returns {*} + */ + reduce(fn, startVal) { + let currentVal = startVal; + for (const [key, val] of this) currentVal = fn(currentVal, val, key, this); + return currentVal; + } + + /** + * Combines this collection with others into a new collection. None of the source collections are modified. + * @param {Collection} collections Collections to merge (infinite/rest argument, not an array) + * @returns {Collection} + * @example const newColl = someColl.concat(someOtherColl, anotherColl, ohBoyAColl); + */ + concat(...collections) { + const newColl = new this.constructor(); + for (const [key, val] of this) newColl.set(key, val); + for (const coll of collections) { + for (const [key, val] of coll) newColl.set(key, val); + } + return newColl; + } + + /** + * Calls the `delete()` method on all items that have it. + * @returns {Promise[]} + */ + deleteAll() { + const returns = []; + for (const item of this.values()) { + if (item.delete) returns.push(item.delete()); + } + return returns; + } +} + +module.exports = Collection; + + +/***/ }, +/* 7 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(module) {(function (module, exports) { @@ -5946,10 +6332,10 @@ function isUndefined(arg) { }; })(typeof module === 'undefined' || module, this); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(117)(module))) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(121)(module))) /***/ }, -/* 5 */ +/* 8 */ /***/ function(module, exports) { // shim for using process in browser @@ -6135,347 +6521,7 @@ process.umask = function() { return 0; }; /***/ }, -/* 6 */ -/***/ function(module, exports) { - -/** - * A Map with additional utility methods. This is used throughout discord.js rather than Arrays for anything that has - * an ID, for significantly improved performance and ease-of-use. - * @extends {Map} - */ -class Collection extends Map { - constructor(iterable) { - super(iterable); - - /** - * Cached array for the `array()` method - will be reset to `null` whenever `set()` or `delete()` are called. - * @type {?Array} - * @private - */ - this._array = null; - - /** - * Cached array for the `keyArray()` method - will be reset to `null` whenever `set()` or `delete()` are called. - * @type {?Array} - * @private - */ - this._keyArray = null; - } - - set(key, val) { - super.set(key, val); - this._array = null; - this._keyArray = null; - } - - delete(key) { - super.delete(key); - this._array = null; - this._keyArray = null; - } - - /** - * Creates an ordered array of the values of this collection, and caches it internally. The array will only be - * reconstructed if an item is added to or removed from the collection, or if you change the length of the array - * itself. If you don't want this caching behaviour, use `Array.from(collection.values())` instead. - * @returns {Array} - */ - array() { - if (!this._array || this._array.length !== this.size) this._array = Array.from(this.values()); - return this._array; - } - - /** - * Creates an ordered array of the keys of this collection, and caches it internally. The array will only be - * reconstructed if an item is added to or removed from the collection, or if you change the length of the array - * itself. If you don't want this caching behaviour, use `Array.from(collection.keys())` instead. - * @returns {Array} - */ - keyArray() { - if (!this._keyArray || this._keyArray.length !== this.size) this._keyArray = Array.from(this.keys()); - return this._keyArray; - } - - /** - * Obtains the first item in this collection. - * @returns {*} - */ - first() { - return this.values().next().value; - } - - /** - * Obtains the first key in this collection. - * @returns {*} - */ - firstKey() { - return this.keys().next().value; - } - - /** - * Obtains the last item in this collection. This relies on the `array()` method, and thus the caching mechanism - * applies here as well. - * @returns {*} - */ - last() { - const arr = this.array(); - return arr[arr.length - 1]; - } - - /** - * Obtains the last key in this collection. This relies on the `keyArray()` method, and thus the caching mechanism - * applies here as well. - * @returns {*} - */ - lastKey() { - const arr = this.keyArray(); - return arr[arr.length - 1]; - } - - /** - * Obtains a random item from this collection. This relies on the `array()` method, and thus the caching mechanism - * applies here as well. - * @returns {*} - */ - random() { - const arr = this.array(); - return arr[Math.floor(Math.random() * arr.length)]; - } - - /** - * Obtains a random key from this collection. This relies on the `keyArray()` method, and thus the caching mechanism - * applies here as well. - * @returns {*} - */ - randomKey() { - const arr = this.keyArray(); - return arr[Math.floor(Math.random() * arr.length)]; - } - - /** - * Searches for all items where their specified property's value is identical to the given value - * (`item[prop] === value`). - * @param {string} prop The property to test against - * @param {*} value The expected value - * @returns {Array} - * @example - * collection.findAll('username', 'Bob'); - */ - findAll(prop, value) { - if (typeof prop !== 'string') throw new TypeError('Key must be a string.'); - if (typeof value === 'undefined') throw new Error('Value must be specified.'); - const results = []; - for (const item of this.values()) { - if (item[prop] === value) results.push(item); - } - return results; - } - - /** - * Searches for a single item where its specified property's value is identical to the given value - * (`item[prop] === value`), or the given function returns a truthy value. In the latter case, this is identical to - * [Array.find()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find). - * Do not use this to obtain an item by its ID. Instead, use `collection.get(id)`. See - * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/get) for details. - * @param {string|Function} propOrFn The property to test against, or the function to test with - * @param {*} [value] The expected value - only applicable and required if using a property for the first argument - * @returns {*} - * @example - * collection.find('username', 'Bob'); - * @example - * collection.find(val => val.username === 'Bob'); - */ - find(propOrFn, value) { - if (typeof propOrFn === 'string') { - if (typeof value === 'undefined') throw new Error('Value must be specified.'); - if (propOrFn === 'id') throw new RangeError('Don\'t use .find() with IDs. Instead, use .get(id).'); - for (const item of this.values()) { - if (item[propOrFn] === value) return item; - } - return null; - } else if (typeof propOrFn === 'function') { - for (const [key, val] of this) { - if (propOrFn(val, key, this)) return val; - } - return null; - } else { - throw new Error('First argument must be a property string or a function.'); - } - } - - /* eslint-disable max-len */ - /** - * Searches for the key of a single item where its specified property's value is identical to the given value - * (`item[prop] === value`), or the given function returns a truthy value. In the latter case, this is identical to - * [Array.findIndex()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex). - * @param {string|Function} propOrFn The property to test against, or the function to test with - * @param {*} [value] The expected value - only applicable and required if using a property for the first argument - * @returns {*} - * @example - * collection.findKey('username', 'Bob'); - * @example - * collection.findKey(val => val.username === 'Bob'); - */ - /* eslint-enable max-len */ - findKey(propOrFn, value) { - if (typeof propOrFn === 'string') { - if (typeof value === 'undefined') throw new Error('Value must be specified.'); - for (const [key, val] of this) { - if (val[propOrFn] === value) return key; - } - return null; - } else if (typeof propOrFn === 'function') { - for (const [key, val] of this) { - if (propOrFn(val, key, this)) return key; - } - return null; - } else { - throw new Error('First argument must be a property string or a function.'); - } - } - - /** - * Searches for the existence of a single item where its specified property's value is identical to the given value - * (`item[prop] === value`). - * Do not use this to check for an item by its ID. Instead, use `collection.has(id)`. See - * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/has) for details. - * @param {string} prop The property to test against - * @param {*} value The expected value - * @returns {boolean} - * @example - * if (collection.exists('username', 'Bob')) { - * console.log('user here!'); - * } - */ - exists(prop, value) { - if (prop === 'id') throw new RangeError('Don\'t use .exists() with IDs. Instead, use .has(id).'); - return Boolean(this.find(prop, value)); - } - - /** - * Identical to - * [Array.filter()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter), - * but returns a Collection instead of an Array. - * @param {Function} fn Function used to test (should return a boolean) - * @param {Object} [thisArg] Value to use as `this` when executing function - * @returns {Collection} - */ - filter(fn, thisArg) { - if (thisArg) fn = fn.bind(thisArg); - const results = new Collection(); - for (const [key, val] of this) { - if (fn(val, key, this)) results.set(key, val); - } - return results; - } - - /** - * Identical to - * [Array.filter()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter). - * @param {Function} fn Function used to test (should return a boolean) - * @param {Object} [thisArg] Value to use as `this` when executing function - * @returns {Array} - */ - filterArray(fn, thisArg) { - if (thisArg) fn = fn.bind(thisArg); - const results = []; - for (const [key, val] of this) { - if (fn(val, key, this)) results.push(val); - } - return results; - } - - /** - * Identical to - * [Array.map()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map). - * @param {Function} fn Function that produces an element of the new array, taking three arguments - * @param {*} [thisArg] Value to use as `this` when executing function - * @returns {Array} - */ - map(fn, thisArg) { - if (thisArg) fn = fn.bind(thisArg); - const arr = new Array(this.size); - let i = 0; - for (const [key, val] of this) arr[i++] = fn(val, key, this); - return arr; - } - - /** - * Identical to - * [Array.some()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some). - * @param {Function} fn Function used to test (should return a boolean) - * @param {Object} [thisArg] Value to use as `this` when executing function - * @returns {boolean} - */ - some(fn, thisArg) { - if (thisArg) fn = fn.bind(thisArg); - for (const [key, val] of this) { - if (fn(val, key, this)) return true; - } - return false; - } - - /** - * Identical to - * [Array.every()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every). - * @param {Function} fn Function used to test (should return a boolean) - * @param {Object} [thisArg] Value to use as `this` when executing function - * @returns {boolean} - */ - every(fn, thisArg) { - if (thisArg) fn = fn.bind(thisArg); - for (const [key, val] of this) { - if (!fn(val, key, this)) return false; - } - return true; - } - - /** - * Identical to - * [Array.reduce()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce). - * @param {Function} fn Function used to reduce - * @param {*} [startVal] The starting value - * @returns {*} - */ - reduce(fn, startVal) { - let currentVal = startVal; - for (const [key, val] of this) currentVal = fn(currentVal, val, key, this); - return currentVal; - } - - /** - * Combines this collection with others into a new collection. None of the source collections are modified. - * @param {Collection} collections Collections to merge (infinite/rest argument, not an array) - * @returns {Collection} - * @example const newColl = someColl.concat(someOtherColl, anotherColl, ohBoyAColl); - */ - concat(...collections) { - const newColl = new this.constructor(); - for (const [key, val] of this) newColl.set(key, val); - for (const coll of collections) { - for (const [key, val] of coll) newColl.set(key, val); - } - return newColl; - } - - /** - * Calls the `delete()` method on all items that have it. - * @returns {Promise[]} - */ - deleteAll() { - const returns = []; - for (const item of this.values()) { - if (item.delete) returns.push(item.delete()); - } - return returns; - } -} - -module.exports = Collection; - - -/***/ }, -/* 7 */ +/* 9 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -6483,20 +6529,20 @@ module.exports = Collection; var elliptic = exports; -elliptic.version = __webpack_require__(201).version; -elliptic.utils = __webpack_require__(190); -elliptic.rand = __webpack_require__(86); -elliptic.hmacDRBG = __webpack_require__(188); -elliptic.curve = __webpack_require__(36); -elliptic.curves = __webpack_require__(181); +elliptic.version = __webpack_require__(203).version; +elliptic.utils = __webpack_require__(192); +elliptic.rand = __webpack_require__(90); +elliptic.hmacDRBG = __webpack_require__(190); +elliptic.curve = __webpack_require__(40); +elliptic.curves = __webpack_require__(183); // Protocols -elliptic.ec = __webpack_require__(182); -elliptic.eddsa = __webpack_require__(185); +elliptic.ec = __webpack_require__(184); +elliptic.eddsa = __webpack_require__(187); /***/ }, -/* 8 */ +/* 10 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(global, process) {// Copyright Joyent, Inc. and other Node contributors. @@ -7024,7 +7070,7 @@ function isPrimitive(arg) { } exports.isPrimitive = isPrimitive; -exports.isBuffer = __webpack_require__(234); +exports.isBuffer = __webpack_require__(236); function objectToString(o) { return Object.prototype.toString.call(o); @@ -7068,7 +7114,7 @@ exports.log = function() { * prototype. * @param {function} superCtor Constructor function to inherit prototype from. */ -exports.inherits = __webpack_require__(233); +exports.inherits = __webpack_require__(235); exports._extend = function(origin, add) { // Don't do anything if add isn't an object @@ -7086,10 +7132,10 @@ function hasOwnProperty(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(16), __webpack_require__(5))) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(19), __webpack_require__(8))) /***/ }, -/* 9 */ +/* 11 */ /***/ function(module, exports, __webpack_require__) { // Copyright Joyent, Inc. and other Node contributors. @@ -7115,15 +7161,15 @@ function hasOwnProperty(obj, prop) { module.exports = Stream; -var EE = __webpack_require__(3).EventEmitter; -var inherits = __webpack_require__(1); +var EE = __webpack_require__(5).EventEmitter; +var inherits = __webpack_require__(2); inherits(Stream, EE); -Stream.Readable = __webpack_require__(225); -Stream.Writable = __webpack_require__(226); -Stream.Duplex = __webpack_require__(222); -Stream.Transform = __webpack_require__(114); -Stream.PassThrough = __webpack_require__(224); +Stream.Readable = __webpack_require__(227); +Stream.Writable = __webpack_require__(228); +Stream.Duplex = __webpack_require__(224); +Stream.Transform = __webpack_require__(118); +Stream.PassThrough = __webpack_require__(226); // Backwards-compat with node 0.4.x Stream.Stream = Stream; @@ -7222,18 +7268,29 @@ Stream.prototype.pipe = function(dest, options) { /***/ }, -/* 10 */ +/* 12 */ /***/ function(module, exports) { /***/ }, -/* 11 */ +/* 13 */ +/***/ function(module, exports) { + +module.exports = function cloneObject(obj) { + const cloned = Object.create(obj); + Object.assign(cloned, obj); + return cloned; +}; + + +/***/ }, +/* 14 */ /***/ function(module, exports, __webpack_require__) { -const TextBasedChannel = __webpack_require__(28); -const Constants = __webpack_require__(2); -const Presence = __webpack_require__(12).Presence; +const TextBasedChannel = __webpack_require__(31); +const Constants = __webpack_require__(1); +const Presence = __webpack_require__(15).Presence; /** * Represents a user on Discord. @@ -7474,7 +7531,7 @@ module.exports = User; /***/ }, -/* 12 */ +/* 15 */ /***/ function(module, exports) { /** @@ -7572,16 +7629,16 @@ exports.Game = Game; /***/ }, -/* 13 */ +/* 16 */ /***/ function(module, exports, __webpack_require__) { var hash = exports; -hash.utils = __webpack_require__(195); -hash.common = __webpack_require__(191); -hash.sha = __webpack_require__(194); -hash.ripemd = __webpack_require__(193); -hash.hmac = __webpack_require__(192); +hash.utils = __webpack_require__(197); +hash.common = __webpack_require__(193); +hash.sha = __webpack_require__(196); +hash.ripemd = __webpack_require__(195); +hash.hmac = __webpack_require__(194); // Proxy hash functions to the main object hash.sha1 = hash.sha.sha1; @@ -7593,7 +7650,7 @@ hash.ripemd160 = hash.ripemd.ripemd160; /***/ }, -/* 14 */ +/* 17 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {// Copyright Joyent, Inc. and other Node contributors. @@ -7821,10 +7878,10 @@ var substr = 'ab'.substr(-1) === 'b' } ; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(8))) /***/ }, -/* 15 */ +/* 18 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -7848,16 +7905,16 @@ var objectKeys = Object.keys || function (obj) { module.exports = Duplex; /**/ -var processNextTick = __webpack_require__(53); +var processNextTick = __webpack_require__(56); /**/ /**/ -var util = __webpack_require__(25); -util.inherits = __webpack_require__(1); +var util = __webpack_require__(28); +util.inherits = __webpack_require__(2); /**/ -var Readable = __webpack_require__(113); -var Writable = __webpack_require__(55); +var Readable = __webpack_require__(117); +var Writable = __webpack_require__(58); util.inherits(Duplex, Readable); @@ -7905,7 +7962,7 @@ function forEach(xs, f) { } /***/ }, -/* 16 */ +/* 19 */ /***/ function(module, exports) { var g; @@ -7929,440 +7986,11 @@ try { module.exports = g; -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(Buffer) {var Transform = __webpack_require__(9).Transform -var inherits = __webpack_require__(1) -var StringDecoder = __webpack_require__(56).StringDecoder -module.exports = CipherBase -inherits(CipherBase, Transform) -function CipherBase (hashMode) { - Transform.call(this) - this.hashMode = typeof hashMode === 'string' - if (this.hashMode) { - this[hashMode] = this._finalOrDigest - } else { - this.final = this._finalOrDigest - } - this._decoder = null - this._encoding = null -} -CipherBase.prototype.update = function (data, inputEnc, outputEnc) { - if (typeof data === 'string') { - data = new Buffer(data, inputEnc) - } - var outData = this._update(data) - if (this.hashMode) { - return this - } - if (outputEnc) { - outData = this._toString(outData, outputEnc) - } - return outData -} - -CipherBase.prototype.setAutoPadding = function () {} - -CipherBase.prototype.getAuthTag = function () { - throw new Error('trying to get auth tag in unsupported state') -} - -CipherBase.prototype.setAuthTag = function () { - throw new Error('trying to set auth tag in unsupported state') -} - -CipherBase.prototype.setAAD = function () { - throw new Error('trying to set aad in unsupported state') -} - -CipherBase.prototype._transform = function (data, _, next) { - var err - try { - if (this.hashMode) { - this._update(data) - } else { - this.push(this._update(data)) - } - } catch (e) { - err = e - } finally { - next(err) - } -} -CipherBase.prototype._flush = function (done) { - var err - try { - this.push(this._final()) - } catch (e) { - err = e - } finally { - done(err) - } -} -CipherBase.prototype._finalOrDigest = function (outputEnc) { - var outData = this._final() || new Buffer('') - if (outputEnc) { - outData = this._toString(outData, outputEnc, true) - } - return outData -} - -CipherBase.prototype._toString = function (value, enc, fin) { - if (!this._decoder) { - this._decoder = new StringDecoder(enc) - this._encoding = enc - } - if (this._encoding !== enc) { - throw new Error('can\'t switch encodings') - } - var out = this._decoder.write(value) - if (fin) { - out += this._decoder.end() - } - return out -} - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) - -/***/ }, -/* 18 */ -/***/ function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(Buffer) {'use strict'; -var inherits = __webpack_require__(1) -var md5 = __webpack_require__(98) -var rmd160 = __webpack_require__(164) -var sha = __webpack_require__(165) - -var Base = __webpack_require__(17) - -function HashNoConstructor(hash) { - Base.call(this, 'digest') - - this._hash = hash - this.buffers = [] -} - -inherits(HashNoConstructor, Base) - -HashNoConstructor.prototype._update = function (data) { - this.buffers.push(data) -} - -HashNoConstructor.prototype._final = function () { - var buf = Buffer.concat(this.buffers) - var r = this._hash(buf) - this.buffers = null - - return r -} - -function Hash(hash) { - Base.call(this, 'digest') - - this._hash = hash -} - -inherits(Hash, Base) - -Hash.prototype._update = function (data) { - this._hash.update(data) -} - -Hash.prototype._final = function () { - return this._hash.digest() -} - -module.exports = function createHash (alg) { - alg = alg.toLowerCase() - if ('md5' === alg) return new HashNoConstructor(md5) - if ('rmd160' === alg || 'ripemd160' === alg) return new HashNoConstructor(rmd160) - - return new Hash(sha(alg)) -} - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) - -/***/ }, -/* 19 */ -/***/ function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(Buffer) {// prototype class for hash functions -function Hash (blockSize, finalSize) { - this._block = new Buffer(blockSize) - this._finalSize = finalSize - this._blockSize = blockSize - this._len = 0 - this._s = 0 -} - -Hash.prototype.update = function (data, enc) { - if (typeof data === 'string') { - enc = enc || 'utf8' - data = new Buffer(data, enc) - } - - var l = this._len += data.length - var s = this._s || 0 - var f = 0 - var buffer = this._block - - while (s < l) { - var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize)) - var ch = (t - f) - - for (var i = 0; i < ch; i++) { - buffer[(s % this._blockSize) + i] = data[i + f] - } - - s += ch - f += ch - - if ((s % this._blockSize) === 0) { - this._update(buffer) - } - } - this._s = s - - return this -} - -Hash.prototype.digest = function (enc) { - // Suppose the length of the message M, in bits, is l - var l = this._len * 8 - - // Append the bit 1 to the end of the message - this._block[this._len % this._blockSize] = 0x80 - - // and then k zero bits, where k is the smallest non-negative solution to the equation (l + 1 + k) === finalSize mod blockSize - this._block.fill(0, this._len % this._blockSize + 1) - - if (l % (this._blockSize * 8) >= this._finalSize * 8) { - this._update(this._block) - this._block.fill(0) - } - - // to this append the block which is equal to the number l written in binary - // TODO: handle case where l is > Math.pow(2, 29) - this._block.writeInt32BE(l, this._blockSize - 4) - - var hash = this._update(this._block) || this._hash() - - return enc ? hash.toString(enc) : hash -} - -Hash.prototype._update = function () { - throw new Error('_update must be implemented by subclass') -} - -module.exports = Hash - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) - /***/ }, /* 20 */ -/***/ function(module, exports) { - -/** - * Represents any channel on Discord - */ -class Channel { - constructor(client, data) { - /** - * The client that instantiated the Channel - * @type {Client} - */ - this.client = client; - Object.defineProperty(this, 'client', { enumerable: false, configurable: false }); - - /** - * The type of the channel, either: - * * `dm` - a DM channel - * * `group` - a Group DM channel - * * `text` - a guild text channel - * * `voice` - a guild voice channel - * @type {string} - */ - this.type = null; - - if (data) this.setup(data); - } - - setup(data) { - /** - * The unique ID of the channel - * @type {string} - */ - this.id = data.id; - } - - /** - * The timestamp the channel was created at - * @type {number} - * @readonly - */ - get createdTimestamp() { - return (this.id / 4194304) + 1420070400000; - } - - /** - * The time the channel was created - * @type {Date} - * @readonly - */ - get createdAt() { - return new Date(this.createdTimestamp); - } - - /** - * Deletes the channel - * @returns {Promise} - * @example - * // delete the channel - * channel.delete() - * .then() // success - * .catch(console.error); // log error - */ - delete() { - return this.client.rest.methods.deleteChannel(this); - } -} - -module.exports = Channel; - - -/***/ }, -/* 21 */ /***/ function(module, exports, __webpack_require__) { -const Constants = __webpack_require__(2); -const Collection = __webpack_require__(6); - -/** - * Represents a custom emoji - */ -class Emoji { - constructor(guild, data) { - /** - * The Client that instantiated this object - * @type {Client} - */ - this.client = guild.client; - Object.defineProperty(this, 'client', { enumerable: false, configurable: false }); - - /** - * The guild this emoji is part of - * @type {Guild} - */ - this.guild = guild; - - this.setup(data); - } - - setup(data) { - /** - * The ID of the emoji - * @type {string} - */ - this.id = data.id; - - /** - * The name of the emoji - * @type {string} - */ - this.name = data.name; - - /** - * Whether or not this emoji requires colons surrounding it - * @type {boolean} - */ - this.requiresColons = data.require_colons; - - /** - * Whether this emoji is managed by an external service - * @type {boolean} - */ - this.managed = data.managed; - - this._roles = data.roles; - } - - /** - * The timestamp the emoji was created at - * @type {number} - * @readonly - */ - get createdTimestamp() { - return (this.id / 4194304) + 1420070400000; - } - - /** - * The time the emoji was created - * @type {Date} - * @readonly - */ - get createdAt() { - return new Date(this.createdTimestamp); - } - - /** - * A collection of roles this emoji is active for (empty if all), mapped by role ID. - * @type {Collection} - * @readonly - */ - get roles() { - const roles = new Collection(); - for (const role of this._roles) { - if (this.guild.roles.has(role)) roles.set(role, this.guild.roles.get(role)); - } - return roles; - } - - /** - * The URL to the emoji file - * @type {string} - * @readonly - */ - get url() { - return `${Constants.Endpoints.CDN}/emojis/${this.id}.png`; - } - - /** - * When concatenated with a string, this automatically returns the emoji mention rather than the object. - * @returns {string} - * @example - * // send an emoji: - * const emoji = guild.emojis.first(); - * msg.reply(`Hello! ${emoji}`); - */ - toString() { - return this.requiresColons ? `<:${this.name}:${this.id}>` : this.name; - } - - /** - * The identifier of this emoji, used for message reactions - * @readonly - * @type {string} - */ - get identifier() { - if (this.id) { - return `${this.name}:${this.id}`; - } - return encodeURIComponent(this.name); - } -} - -module.exports = Emoji; - - -/***/ }, -/* 22 */ -/***/ function(module, exports, __webpack_require__) { - -const Constants = __webpack_require__(2); +const Constants = __webpack_require__(1); /** * Represents a role on Discord @@ -8703,20 +8331,449 @@ class Role { module.exports = Role; +/***/ }, +/* 21 */ +/***/ function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(Buffer) {var Transform = __webpack_require__(11).Transform +var inherits = __webpack_require__(2) +var StringDecoder = __webpack_require__(59).StringDecoder +module.exports = CipherBase +inherits(CipherBase, Transform) +function CipherBase (hashMode) { + Transform.call(this) + this.hashMode = typeof hashMode === 'string' + if (this.hashMode) { + this[hashMode] = this._finalOrDigest + } else { + this.final = this._finalOrDigest + } + this._decoder = null + this._encoding = null +} +CipherBase.prototype.update = function (data, inputEnc, outputEnc) { + if (typeof data === 'string') { + data = new Buffer(data, inputEnc) + } + var outData = this._update(data) + if (this.hashMode) { + return this + } + if (outputEnc) { + outData = this._toString(outData, outputEnc) + } + return outData +} + +CipherBase.prototype.setAutoPadding = function () {} + +CipherBase.prototype.getAuthTag = function () { + throw new Error('trying to get auth tag in unsupported state') +} + +CipherBase.prototype.setAuthTag = function () { + throw new Error('trying to set auth tag in unsupported state') +} + +CipherBase.prototype.setAAD = function () { + throw new Error('trying to set aad in unsupported state') +} + +CipherBase.prototype._transform = function (data, _, next) { + var err + try { + if (this.hashMode) { + this._update(data) + } else { + this.push(this._update(data)) + } + } catch (e) { + err = e + } finally { + next(err) + } +} +CipherBase.prototype._flush = function (done) { + var err + try { + this.push(this._final()) + } catch (e) { + err = e + } finally { + done(err) + } +} +CipherBase.prototype._finalOrDigest = function (outputEnc) { + var outData = this._final() || new Buffer('') + if (outputEnc) { + outData = this._toString(outData, outputEnc, true) + } + return outData +} + +CipherBase.prototype._toString = function (value, enc, fin) { + if (!this._decoder) { + this._decoder = new StringDecoder(enc) + this._encoding = enc + } + if (this._encoding !== enc) { + throw new Error('can\'t switch encodings') + } + var out = this._decoder.write(value) + if (fin) { + out += this._decoder.end() + } + return out +} + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) + +/***/ }, +/* 22 */ +/***/ function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(Buffer) {'use strict'; +var inherits = __webpack_require__(2) +var md5 = __webpack_require__(102) +var rmd160 = __webpack_require__(166) +var sha = __webpack_require__(167) + +var Base = __webpack_require__(21) + +function HashNoConstructor(hash) { + Base.call(this, 'digest') + + this._hash = hash + this.buffers = [] +} + +inherits(HashNoConstructor, Base) + +HashNoConstructor.prototype._update = function (data) { + this.buffers.push(data) +} + +HashNoConstructor.prototype._final = function () { + var buf = Buffer.concat(this.buffers) + var r = this._hash(buf) + this.buffers = null + + return r +} + +function Hash(hash) { + Base.call(this, 'digest') + + this._hash = hash +} + +inherits(Hash, Base) + +Hash.prototype._update = function (data) { + this._hash.update(data) +} + +Hash.prototype._final = function () { + return this._hash.digest() +} + +module.exports = function createHash (alg) { + alg = alg.toLowerCase() + if ('md5' === alg) return new HashNoConstructor(md5) + if ('rmd160' === alg || 'ripemd160' === alg) return new HashNoConstructor(rmd160) + + return new Hash(sha(alg)) +} + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) + /***/ }, /* 23 */ /***/ function(module, exports, __webpack_require__) { +/* WEBPACK VAR INJECTION */(function(Buffer) {// prototype class for hash functions +function Hash (blockSize, finalSize) { + this._block = new Buffer(blockSize) + this._finalSize = finalSize + this._blockSize = blockSize + this._len = 0 + this._s = 0 +} + +Hash.prototype.update = function (data, enc) { + if (typeof data === 'string') { + enc = enc || 'utf8' + data = new Buffer(data, enc) + } + + var l = this._len += data.length + var s = this._s || 0 + var f = 0 + var buffer = this._block + + while (s < l) { + var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize)) + var ch = (t - f) + + for (var i = 0; i < ch; i++) { + buffer[(s % this._blockSize) + i] = data[i + f] + } + + s += ch + f += ch + + if ((s % this._blockSize) === 0) { + this._update(buffer) + } + } + this._s = s + + return this +} + +Hash.prototype.digest = function (enc) { + // Suppose the length of the message M, in bits, is l + var l = this._len * 8 + + // Append the bit 1 to the end of the message + this._block[this._len % this._blockSize] = 0x80 + + // and then k zero bits, where k is the smallest non-negative solution to the equation (l + 1 + k) === finalSize mod blockSize + this._block.fill(0, this._len % this._blockSize + 1) + + if (l % (this._blockSize * 8) >= this._finalSize * 8) { + this._update(this._block) + this._block.fill(0) + } + + // to this append the block which is equal to the number l written in binary + // TODO: handle case where l is > Math.pow(2, 29) + this._block.writeInt32BE(l, this._blockSize - 4) + + var hash = this._update(this._block) || this._hash() + + return enc ? hash.toString(enc) : hash +} + +Hash.prototype._update = function () { + throw new Error('_update must be implemented by subclass') +} + +module.exports = Hash + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) + +/***/ }, +/* 24 */ +/***/ function(module, exports) { + +/** + * Represents any channel on Discord + */ +class Channel { + constructor(client, data) { + /** + * The client that instantiated the Channel + * @type {Client} + */ + this.client = client; + Object.defineProperty(this, 'client', { enumerable: false, configurable: false }); + + /** + * The type of the channel, either: + * * `dm` - a DM channel + * * `group` - a Group DM channel + * * `text` - a guild text channel + * * `voice` - a guild voice channel + * @type {string} + */ + this.type = null; + + if (data) this.setup(data); + } + + setup(data) { + /** + * The unique ID of the channel + * @type {string} + */ + this.id = data.id; + } + + /** + * The timestamp the channel was created at + * @type {number} + * @readonly + */ + get createdTimestamp() { + return (this.id / 4194304) + 1420070400000; + } + + /** + * The time the channel was created + * @type {Date} + * @readonly + */ + get createdAt() { + return new Date(this.createdTimestamp); + } + + /** + * Deletes the channel + * @returns {Promise} + * @example + * // delete the channel + * channel.delete() + * .then() // success + * .catch(console.error); // log error + */ + delete() { + return this.client.rest.methods.deleteChannel(this); + } +} + +module.exports = Channel; + + +/***/ }, +/* 25 */ +/***/ function(module, exports, __webpack_require__) { + +const Constants = __webpack_require__(1); +const Collection = __webpack_require__(6); + +/** + * Represents a custom emoji + */ +class Emoji { + constructor(guild, data) { + /** + * The Client that instantiated this object + * @type {Client} + */ + this.client = guild.client; + Object.defineProperty(this, 'client', { enumerable: false, configurable: false }); + + /** + * The guild this emoji is part of + * @type {Guild} + */ + this.guild = guild; + + this.setup(data); + } + + setup(data) { + /** + * The ID of the emoji + * @type {string} + */ + this.id = data.id; + + /** + * The name of the emoji + * @type {string} + */ + this.name = data.name; + + /** + * Whether or not this emoji requires colons surrounding it + * @type {boolean} + */ + this.requiresColons = data.require_colons; + + /** + * Whether this emoji is managed by an external service + * @type {boolean} + */ + this.managed = data.managed; + + this._roles = data.roles; + } + + /** + * The timestamp the emoji was created at + * @type {number} + * @readonly + */ + get createdTimestamp() { + return (this.id / 4194304) + 1420070400000; + } + + /** + * The time the emoji was created + * @type {Date} + * @readonly + */ + get createdAt() { + return new Date(this.createdTimestamp); + } + + /** + * A collection of roles this emoji is active for (empty if all), mapped by role ID. + * @type {Collection} + * @readonly + */ + get roles() { + const roles = new Collection(); + for (const role of this._roles) { + if (this.guild.roles.has(role)) roles.set(role, this.guild.roles.get(role)); + } + return roles; + } + + /** + * The URL to the emoji file + * @type {string} + * @readonly + */ + get url() { + return `${Constants.Endpoints.CDN}/emojis/${this.id}.png`; + } + + /** + * When concatenated with a string, this automatically returns the emoji mention rather than the object. + * @returns {string} + * @example + * // send an emoji: + * const emoji = guild.emojis.first(); + * msg.reply(`Hello! ${emoji}`); + */ + toString() { + return this.requiresColons ? `<:${this.name}:${this.id}>` : this.name; + } + + /** + * The identifier of this emoji, used for message reactions + * @readonly + * @type {string} + */ + get identifier() { + if (this.id) { + return `${this.name}:${this.id}`; + } + return encodeURIComponent(this.name); + } +} + +module.exports = Emoji; + + +/***/ }, +/* 26 */ +/***/ function(module, exports, __webpack_require__) { + var base = exports; -base.Reporter = __webpack_require__(141).Reporter; -base.DecoderBuffer = __webpack_require__(80).DecoderBuffer; -base.EncoderBuffer = __webpack_require__(80).EncoderBuffer; -base.Node = __webpack_require__(140); +base.Reporter = __webpack_require__(143).Reporter; +base.DecoderBuffer = __webpack_require__(84).DecoderBuffer; +base.EncoderBuffer = __webpack_require__(84).EncoderBuffer; +base.Node = __webpack_require__(142); /***/ }, -/* 24 */ +/* 27 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(Buffer) {module.exports = function xor (a, b) { @@ -8733,7 +8790,7 @@ base.Node = __webpack_require__(140); /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 25 */ +/* 28 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(Buffer) {// Copyright Joyent, Inc. and other Node contributors. @@ -8847,7 +8904,7 @@ function objectToString(o) { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 26 */ +/* 29 */ /***/ function(module, exports) { module.exports = assert; @@ -8864,7 +8921,7 @@ assert.equal = function assertEqual(l, r, msg) { /***/ }, -/* 27 */ +/* 30 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -8905,17 +8962,17 @@ function randomBytes (size, cb) { return bytes } -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(16), __webpack_require__(0).Buffer, __webpack_require__(5))) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(19), __webpack_require__(0).Buffer, __webpack_require__(8))) /***/ }, -/* 28 */ +/* 31 */ /***/ function(module, exports, __webpack_require__) { -const path = __webpack_require__(14); -const Message = __webpack_require__(44); -const MessageCollector = __webpack_require__(69); +const path = __webpack_require__(17); +const Message = __webpack_require__(34); +const MessageCollector = __webpack_require__(73); const Collection = __webpack_require__(6); -const escapeMarkdown = __webpack_require__(31); +const escapeMarkdown = __webpack_require__(35); /** * Interface for classes that have text-channel-like features @@ -9263,16 +9320,16 @@ function applyProp(structure, prop) { /***/ }, -/* 29 */ +/* 32 */ /***/ function(module, exports, __webpack_require__) { -const Channel = __webpack_require__(20); -const Role = __webpack_require__(22); -const PermissionOverwrites = __webpack_require__(75); -const EvaluatedPermissions = __webpack_require__(42); -const Constants = __webpack_require__(2); +const Channel = __webpack_require__(24); +const Role = __webpack_require__(20); +const PermissionOverwrites = __webpack_require__(79); +const EvaluatedPermissions = __webpack_require__(46); +const Constants = __webpack_require__(1); const Collection = __webpack_require__(6); -const arraysEqual = __webpack_require__(60); +const arraysEqual = __webpack_require__(63); /** * Represents a guild channel (i.e. text channels and voice channels) @@ -9561,15 +9618,15 @@ module.exports = GuildChannel; /***/ }, -/* 30 */ +/* 33 */ /***/ function(module, exports, __webpack_require__) { -const TextBasedChannel = __webpack_require__(28); -const Role = __webpack_require__(22); -const EvaluatedPermissions = __webpack_require__(42); -const Constants = __webpack_require__(2); +const TextBasedChannel = __webpack_require__(31); +const Role = __webpack_require__(20); +const EvaluatedPermissions = __webpack_require__(46); +const Constants = __webpack_require__(1); const Collection = __webpack_require__(6); -const Presence = __webpack_require__(12).Presence; +const Presence = __webpack_require__(15).Presence; /** * Represents a member of a guild on Discord @@ -9990,7 +10047,548 @@ module.exports = GuildMember; /***/ }, -/* 31 */ +/* 34 */ +/***/ function(module, exports, __webpack_require__) { + +const Attachment = __webpack_require__(72); +const Embed = __webpack_require__(74); +const Collection = __webpack_require__(6); +const Constants = __webpack_require__(1); +const escapeMarkdown = __webpack_require__(35); +const MessageReaction = __webpack_require__(75); + +/** + * Represents a message on Discord + */ +class Message { + constructor(channel, data, client) { + /** + * The Client that instantiated the Message + * @type {Client} + */ + this.client = client; + Object.defineProperty(this, 'client', { enumerable: false, configurable: false }); + + /** + * The channel that the message was sent in + * @type {TextChannel|DMChannel|GroupDMChannel} + */ + this.channel = channel; + + if (data) this.setup(data); + } + + setup(data) { // eslint-disable-line complexity + /** + * The ID of the message (unique in the channel it was sent) + * @type {string} + */ + this.id = data.id; + + /** + * The type of the message + * @type {string} + */ + this.type = Constants.MessageTypes[data.type]; + + /** + * The content of the message + * @type {string} + */ + this.content = data.content; + + /** + * The author of the message + * @type {User} + */ + this.author = this.client.dataManager.newUser(data.author); + + /** + * Represents the author of the message as a guild member. Only available if the message comes from a guild + * where the author is still a member. + * @type {GuildMember} + */ + this.member = this.guild ? this.guild.member(this.author) || null : null; + + /** + * Whether or not this message is pinned + * @type {boolean} + */ + this.pinned = data.pinned; + + /** + * Whether or not the message was Text-To-Speech + * @type {boolean} + */ + this.tts = data.tts; + + /** + * A random number used for checking message delivery + * @type {string} + */ + this.nonce = data.nonce; + + /** + * Whether or not this message was sent by Discord, not actually a user (e.g. pin notifications) + * @type {boolean} + */ + this.system = data.type === 6; + + /** + * A list of embeds in the message - e.g. YouTube Player + * @type {MessageEmbed[]} + */ + this.embeds = data.embeds.map(e => new Embed(this, e)); + + /** + * A collection of attachments in the message - e.g. Pictures - mapped by their ID. + * @type {Collection} + */ + this.attachments = new Collection(); + for (const attachment of data.attachments) this.attachments.set(attachment.id, new Attachment(this, attachment)); + + /** + * The timestamp the message was sent at + * @type {number} + */ + this.createdTimestamp = new Date(data.timestamp).getTime(); + + /** + * The timestamp the message was last edited at (if applicable) + * @type {?number} + */ + this.editedTimestamp = data.edited_timestamp ? new Date(data.edited_timestamp).getTime() : null; + + /** + * An object containing a further users, roles or channels collections + * @type {Object} + * @property {Collection} mentions.users Mentioned users, maps their ID to the user object. + * @property {Collection} mentions.roles Mentioned roles, maps their ID to the role object. + * @property {Collection} mentions.channels Mentioned channels, + * maps their ID to the channel object. + * @property {boolean} mentions.everyone Whether or not @everyone was mentioned. + */ + this.mentions = { + users: new Collection(), + roles: new Collection(), + channels: new Collection(), + everyone: data.mention_everyone, + }; + + for (const mention of data.mentions) { + let user = this.client.users.get(mention.id); + if (user) { + this.mentions.users.set(user.id, user); + } else { + user = this.client.dataManager.newUser(mention); + this.mentions.users.set(user.id, user); + } + } + + if (data.mention_roles) { + for (const mention of data.mention_roles) { + const role = this.channel.guild.roles.get(mention); + if (role) this.mentions.roles.set(role.id, role); + } + } + + if (this.channel.guild) { + const channMentionsRaw = data.content.match(/<#([0-9]{14,20})>/g) || []; + for (const raw of channMentionsRaw) { + const chan = this.channel.guild.channels.get(raw.match(/([0-9]{14,20})/g)[0]); + if (chan) this.mentions.channels.set(chan.id, chan); + } + } + + this._edits = []; + + /** + * A collection of reactions to this message, mapped by the reaction "id". + * @type {Collection} + */ + this.reactions = new Collection(); + + if (data.reactions && data.reactions.length > 0) { + for (const reaction of data.reactions) { + const id = reaction.emoji.id ? `${reaction.emoji.name}:${reaction.emoji.id}` : reaction.emoji.name; + this.reactions.set(id, new MessageReaction(this, reaction.emoji, reaction.count, reaction.me)); + } + } + } + + patch(data) { // eslint-disable-line complexity + if (data.author) { + this.author = this.client.users.get(data.author.id); + if (this.guild) this.member = this.guild.member(this.author); + } + if (data.content) this.content = data.content; + if (data.timestamp) this.createdTimestamp = new Date(data.timestamp).getTime(); + if (data.edited_timestamp) { + this.editedTimestamp = data.edited_timestamp ? new Date(data.edited_timestamp).getTime() : null; + } + if ('tts' in data) this.tts = data.tts; + if ('mention_everyone' in data) this.mentions.everyone = data.mention_everyone; + if (data.nonce) this.nonce = data.nonce; + if (data.embeds) this.embeds = data.embeds.map(e => new Embed(this, e)); + if (data.type > -1) { + this.system = false; + if (data.type === 6) this.system = true; + } + if (data.attachments) { + this.attachments = new Collection(); + for (const attachment of data.attachments) { + this.attachments.set(attachment.id, new Attachment(this, attachment)); + } + } + if (data.mentions) { + for (const mention of data.mentions) { + let user = this.client.users.get(mention.id); + if (user) { + this.mentions.users.set(user.id, user); + } else { + user = this.client.dataManager.newUser(mention); + this.mentions.users.set(user.id, user); + } + } + } + if (data.mention_roles) { + for (const mention of data.mention_roles) { + const role = this.channel.guild.roles.get(mention); + if (role) this.mentions.roles.set(role.id, role); + } + } + if (data.id) this.id = data.id; + if (this.channel.guild && data.content) { + const channMentionsRaw = data.content.match(/<#([0-9]{14,20})>/g) || []; + for (const raw of channMentionsRaw) { + const chan = this.channel.guild.channels.get(raw.match(/([0-9]{14,20})/g)[0]); + if (chan) this.mentions.channels.set(chan.id, chan); + } + } + if (data.reactions) { + this.reactions = new Collection(); + if (data.reactions.length > 0) { + for (const reaction of data.reactions) { + const id = reaction.emoji.id ? `${reaction.emoji.name}:${reaction.emoji.id}` : reaction.emoji.name; + this.reactions.set(id, new MessageReaction(this, data.emoji, data.count, data.me)); + } + } + } + } + + /** + * The time the message was sent + * @type {Date} + * @readonly + */ + get createdAt() { + return new Date(this.createdTimestamp); + } + + /** + * The time the message was last edited at (if applicable) + * @type {?Date} + * @readonly + */ + get editedAt() { + return this.editedTimestamp ? new Date(this.editedTimestamp) : null; + } + + /** + * The guild the message was sent in (if in a guild channel) + * @type {?Guild} + * @readonly + */ + get guild() { + return this.channel.guild || null; + } + + /** + * The message contents with all mentions replaced by the equivalent text. If mentions cannot be resolved to a name, + * the relevant mention in the message content will not be converted. + * @type {string} + * @readonly + */ + get cleanContent() { + return this.content + .replace(/@(everyone|here)/g, '@\u200b$1') + .replace(/<@!?[0-9]+>/g, (input) => { + const id = input.replace(/<|!|>|@/g, ''); + if (this.channel.type === 'dm' || this.channel.type === 'group') { + return this.client.users.has(id) ? `@${this.client.users.get(id).username}` : input; + } + + const member = this.channel.guild.members.get(id); + if (member) { + if (member.nickname) return `@${member.nickname}`; + return `@${member.user.username}`; + } else { + const user = this.client.users.get(id); + if (user) return `@${user.username}`; + return input; + } + }) + .replace(/<#[0-9]+>/g, (input) => { + const channel = this.client.channels.get(input.replace(/<|#|>/g, '')); + if (channel) return `#${channel.name}`; + return input; + }) + .replace(/<@&[0-9]+>/g, (input) => { + if (this.channel.type === 'dm' || this.channel.type === 'group') return input; + const role = this.guild.roles.get(input.replace(/<|@|>|&/g, '')); + if (role) return `@${role.name}`; + return input; + }); + } + + /** + * An array of cached versions of the message, including the current version. + * Sorted from latest (first) to oldest (last). + * @type {Message[]} + * @readonly + */ + get edits() { + return this._edits.slice().unshift(this); + } + + /** + * Whether the message is editable by the client user. + * @type {boolean} + * @readonly + */ + get editable() { + return this.author.id === this.client.user.id; + } + + /** + * Whether the message is deletable by the client user. + * @type {boolean} + * @readonly + */ + get deletable() { + return this.author.id === this.client.user.id || (this.guild && + this.channel.permissionsFor(this.client.user).hasPermission(Constants.PermissionFlags.MANAGE_MESSAGES) + ); + } + + /** + * Whether the message is pinnable by the client user. + * @type {boolean} + * @readonly + */ + get pinnable() { + return !this.guild || + this.channel.permissionsFor(this.client.user).hasPermission(Constants.PermissionFlags.MANAGE_MESSAGES); + } + + /** + * Whether or not a user, channel or role is mentioned in this message. + * @param {GuildChannel|User|Role|string} data either a guild channel, user or a role object, or a string representing + * the ID of any of these. + * @returns {boolean} + */ + isMentioned(data) { + data = data && data.id ? data.id : data; + return this.mentions.users.has(data) || this.mentions.channels.has(data) || this.mentions.roles.has(data); + } + + /** + * Options that can be passed into editMessage + * @typedef {Object} MessageEditOptions + * @property {Object} [embed] An embed to be added/edited + */ + + /** + * Edit the content of the message + * @param {StringResolvable} content The new content for the message + * @param {MessageEditOptions} [options={}] The options to provide + * @returns {Promise} + * @example + * // update the content of a message + * message.edit('This is my new content!') + * .then(msg => console.log(`Updated the content of a message from ${msg.author}`)) + * .catch(console.error); + */ + edit(content, options = {}) { + return this.client.rest.methods.updateMessage(this, content, options); + } + + /** + * Edit the content of the message, with a code block + * @param {string} lang Language for the code block + * @param {StringResolvable} content The new content for the message + * @returns {Promise} + */ + editCode(lang, content) { + content = escapeMarkdown(this.client.resolver.resolveString(content), true); + return this.edit(`\`\`\`${lang || ''}\n${content}\n\`\`\``); + } + + /** + * Pins this message to the channel's pinned messages + * @returns {Promise} + */ + pin() { + return this.client.rest.methods.pinMessage(this); + } + + /** + * Unpins this message from the channel's pinned messages + * @returns {Promise} + */ + unpin() { + return this.client.rest.methods.unpinMessage(this); + } + + /** + * Add a reaction to the message + * @param {string|Emoji|ReactionEmoji} emoji Emoji to react with + * @returns {Promise} + */ + react(emoji) { + emoji = this.client.resolver.resolveEmojiIdentifier(emoji); + if (!emoji) throw new TypeError('Emoji must be a string or Emoji/ReactionEmoji'); + + return this.client.rest.methods.addMessageReaction(this, emoji); + } + + /** + * Remove all reactions from a message + * @returns {Promise} + */ + clearReactions() { + return this.client.rest.methods.removeMessageReactions(this); + } + + /** + * Deletes the message + * @param {number} [timeout=0] How long to wait to delete the message in milliseconds + * @returns {Promise} + * @example + * // delete a message + * message.delete() + * .then(msg => console.log(`Deleted message from ${msg.author}`)) + * .catch(console.error); + */ + delete(timeout = 0) { + if (timeout <= 0) { + return this.client.rest.methods.deleteMessage(this); + } else { + return new Promise(resolve => { + this.client.setTimeout(() => { + resolve(this.delete()); + }, timeout); + }); + } + } + + /** + * Reply to the message + * @param {StringResolvable} content The content for the message + * @param {MessageOptions} [options = {}] The options to provide + * @returns {Promise} + * @example + * // reply to a message + * message.reply('Hey, I\'m a reply!') + * .then(msg => console.log(`Sent a reply to ${msg.author}`)) + * .catch(console.error); + */ + reply(content, options = {}) { + content = this.client.resolver.resolveString(content); + const prepend = this.guild ? `${this.author}, ` : ''; + content = `${prepend}${content}`; + + if (options.split) { + if (typeof options.split !== 'object') options.split = {}; + if (!options.split.prepend) options.split.prepend = prepend; + } + + return this.client.rest.methods.sendMessage(this.channel, content, options); + } + + /** + * Used mainly internally. Whether two messages are identical in properties. If you want to compare messages + * without checking all the properties, use `message.id === message2.id`, which is much more efficient. This + * method allows you to see if there are differences in content, embeds, attachments, nonce and tts properties. + * @param {Message} message The message to compare it to + * @param {Object} rawData Raw data passed through the WebSocket about this message + * @returns {boolean} + */ + equals(message, rawData) { + if (!message) return false; + const embedUpdate = !message.author && !message.attachments; + if (embedUpdate) return this.id === message.id && this.embeds.length === message.embeds.length; + + let equal = this.id === message.id && + this.author.id === message.author.id && + this.content === message.content && + this.tts === message.tts && + this.nonce === message.nonce && + this.embeds.length === message.embeds.length && + this.attachments.length === message.attachments.length; + + if (equal && rawData) { + equal = this.mentions.everyone === message.mentions.everyone && + this.createdTimestamp === new Date(rawData.timestamp).getTime() && + this.editedTimestamp === new Date(rawData.edited_timestamp).getTime(); + } + + return equal; + } + + /** + * When concatenated with a string, this automatically concatenates the message's content instead of the object. + * @returns {string} + * @example + * // logs: Message: This is a message! + * console.log(`Message: ${message}`); + */ + toString() { + return this.content; + } + + _addReaction(emoji, user) { + const emojiID = emoji.id ? `${emoji.name}:${emoji.id}` : emoji.name; + let reaction; + if (this.reactions.has(emojiID)) { + reaction = this.reactions.get(emojiID); + if (!reaction.me) reaction.me = user.id === this.client.user.id; + } else { + reaction = new MessageReaction(this, emoji, 0, user.id === this.client.user.id); + this.reactions.set(emojiID, reaction); + } + if (!reaction.users.has(user.id)) { + reaction.users.set(user.id, user); + reaction.count++; + return reaction; + } + return null; + } + + _removeReaction(emoji, user) { + const emojiID = emoji.id || emoji; + if (this.reactions.has(emojiID)) { + const reaction = this.reactions.get(emojiID); + if (reaction.users.has(user.id)) { + reaction.users.delete(user.id); + reaction.count--; + if (user.id === this.client.user.id) reaction.me = false; + return reaction; + } + } + return null; + } + + _clearReactions() { + this.reactions.clear(); + } +} + +module.exports = Message; + + +/***/ }, +/* 35 */ /***/ function(module, exports) { module.exports = function escapeMarkdown(text, onlyCodeBlock = false, onlyInlineCode = false) { @@ -10001,22 +10599,22 @@ module.exports = function escapeMarkdown(text, onlyCodeBlock = false, onlyInline /***/ }, -/* 32 */ +/* 36 */ /***/ function(module, exports, __webpack_require__) { var asn1 = exports; -asn1.bignum = __webpack_require__(4); +asn1.bignum = __webpack_require__(7); -asn1.define = __webpack_require__(139).define; -asn1.base = __webpack_require__(23); -asn1.constants = __webpack_require__(81); -asn1.decoders = __webpack_require__(143); -asn1.encoders = __webpack_require__(145); +asn1.define = __webpack_require__(141).define; +asn1.base = __webpack_require__(26); +asn1.constants = __webpack_require__(85); +asn1.decoders = __webpack_require__(145); +asn1.encoders = __webpack_require__(147); /***/ }, -/* 33 */ +/* 37 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(Buffer) {// based on the aes implimentation in triple sec @@ -10200,7 +10798,7 @@ exports.AES = AES /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 34 */ +/* 38 */ /***/ function(module, exports) { exports['aes-128-ecb'] = { @@ -10377,10 +10975,10 @@ exports['aes-256-gcm'] = { /***/ }, -/* 35 */ +/* 39 */ /***/ function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(Buffer) {var xor = __webpack_require__(24) +/* WEBPACK VAR INJECTION */(function(Buffer) {var xor = __webpack_require__(27) function incr32 (iv) { var len = iv.length @@ -10415,7 +11013,7 @@ exports.encrypt = function (self, chunk) { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 36 */ +/* 40 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -10423,17 +11021,17 @@ exports.encrypt = function (self, chunk) { var curve = exports; -curve.base = __webpack_require__(177); -curve.short = __webpack_require__(180); -curve.mont = __webpack_require__(179); -curve.edwards = __webpack_require__(178); +curve.base = __webpack_require__(179); +curve.short = __webpack_require__(182); +curve.mont = __webpack_require__(181); +curve.edwards = __webpack_require__(180); /***/ }, -/* 37 */ +/* 41 */ /***/ function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(Buffer) {var md5 = __webpack_require__(98) +/* WEBPACK VAR INJECTION */(function(Buffer) {var md5 = __webpack_require__(102) module.exports = EVP_BytesToKey function EVP_BytesToKey (password, salt, keyLen, ivLen) { if (!Buffer.isBuffer(password)) { @@ -10505,7 +11103,7 @@ function EVP_BytesToKey (password, salt, keyLen, ivLen) { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 38 */ +/* 42 */ /***/ function(module, exports) { "use strict"; @@ -10614,14 +11212,14 @@ exports.setTyped(TYPED_OK); /***/ }, -/* 39 */ +/* 43 */ /***/ function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(Buffer) {var asn1 = __webpack_require__(212) -var aesid = __webpack_require__(202) -var fixProc = __webpack_require__(213) -var ciphers = __webpack_require__(47) -var compat = __webpack_require__(108) +/* WEBPACK VAR INJECTION */(function(Buffer) {var asn1 = __webpack_require__(214) +var aesid = __webpack_require__(204) +var fixProc = __webpack_require__(215) +var ciphers = __webpack_require__(50) +var compat = __webpack_require__(112) module.exports = parseKeys function parseKeys (buffer) { @@ -10722,11 +11320,11 @@ function decrypt (data, password) { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 40 */ +/* 44 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(Buffer) { -var zlib = __webpack_require__(97); +var zlib = __webpack_require__(101); var AVAILABLE_WINDOW_BITS = [8, 9, 10, 11, 12, 13, 14, 15]; var DEFAULT_WINDOW_BITS = 15; @@ -11066,7 +11664,7 @@ module.exports = PerMessageDeflate; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 41 */ +/* 45 */ /***/ function(module, exports) { module.exports = function merge(def, given) { @@ -11084,10 +11682,10 @@ module.exports = function merge(def, given) { /***/ }, -/* 42 */ +/* 46 */ /***/ function(module, exports, __webpack_require__) { -const Constants = __webpack_require__(2); +const Constants = __webpack_require__(1); /** * The final evaluated permissions for a member in a channel @@ -11157,18 +11755,18 @@ module.exports = EvaluatedPermissions; /***/ }, -/* 43 */ +/* 47 */ /***/ function(module, exports, __webpack_require__) { -const User = __webpack_require__(11); -const Role = __webpack_require__(22); -const Emoji = __webpack_require__(21); -const Presence = __webpack_require__(12).Presence; -const GuildMember = __webpack_require__(30); -const Constants = __webpack_require__(2); +const User = __webpack_require__(14); +const Role = __webpack_require__(20); +const Emoji = __webpack_require__(25); +const Presence = __webpack_require__(15).Presence; +const GuildMember = __webpack_require__(33); +const Constants = __webpack_require__(1); const Collection = __webpack_require__(6); -const cloneObject = __webpack_require__(130); -const arraysEqual = __webpack_require__(60); +const cloneObject = __webpack_require__(13); +const arraysEqual = __webpack_require__(63); /** * Represents a guild (or a server) on Discord. @@ -11978,548 +12576,7 @@ module.exports = Guild; /***/ }, -/* 44 */ -/***/ function(module, exports, __webpack_require__) { - -const Attachment = __webpack_require__(68); -const Embed = __webpack_require__(70); -const Collection = __webpack_require__(6); -const Constants = __webpack_require__(2); -const escapeMarkdown = __webpack_require__(31); -const MessageReaction = __webpack_require__(71); - -/** - * Represents a message on Discord - */ -class Message { - constructor(channel, data, client) { - /** - * The Client that instantiated the Message - * @type {Client} - */ - this.client = client; - Object.defineProperty(this, 'client', { enumerable: false, configurable: false }); - - /** - * The channel that the message was sent in - * @type {TextChannel|DMChannel|GroupDMChannel} - */ - this.channel = channel; - - if (data) this.setup(data); - } - - setup(data) { // eslint-disable-line complexity - /** - * The ID of the message (unique in the channel it was sent) - * @type {string} - */ - this.id = data.id; - - /** - * The type of the message - * @type {string} - */ - this.type = Constants.MessageTypes[data.type]; - - /** - * The content of the message - * @type {string} - */ - this.content = data.content; - - /** - * The author of the message - * @type {User} - */ - this.author = this.client.dataManager.newUser(data.author); - - /** - * Represents the author of the message as a guild member. Only available if the message comes from a guild - * where the author is still a member. - * @type {GuildMember} - */ - this.member = this.guild ? this.guild.member(this.author) || null : null; - - /** - * Whether or not this message is pinned - * @type {boolean} - */ - this.pinned = data.pinned; - - /** - * Whether or not the message was Text-To-Speech - * @type {boolean} - */ - this.tts = data.tts; - - /** - * A random number used for checking message delivery - * @type {string} - */ - this.nonce = data.nonce; - - /** - * Whether or not this message was sent by Discord, not actually a user (e.g. pin notifications) - * @type {boolean} - */ - this.system = data.type === 6; - - /** - * A list of embeds in the message - e.g. YouTube Player - * @type {MessageEmbed[]} - */ - this.embeds = data.embeds.map(e => new Embed(this, e)); - - /** - * A collection of attachments in the message - e.g. Pictures - mapped by their ID. - * @type {Collection} - */ - this.attachments = new Collection(); - for (const attachment of data.attachments) this.attachments.set(attachment.id, new Attachment(this, attachment)); - - /** - * The timestamp the message was sent at - * @type {number} - */ - this.createdTimestamp = new Date(data.timestamp).getTime(); - - /** - * The timestamp the message was last edited at (if applicable) - * @type {?number} - */ - this.editedTimestamp = data.edited_timestamp ? new Date(data.edited_timestamp).getTime() : null; - - /** - * An object containing a further users, roles or channels collections - * @type {Object} - * @property {Collection} mentions.users Mentioned users, maps their ID to the user object. - * @property {Collection} mentions.roles Mentioned roles, maps their ID to the role object. - * @property {Collection} mentions.channels Mentioned channels, - * maps their ID to the channel object. - * @property {boolean} mentions.everyone Whether or not @everyone was mentioned. - */ - this.mentions = { - users: new Collection(), - roles: new Collection(), - channels: new Collection(), - everyone: data.mention_everyone, - }; - - for (const mention of data.mentions) { - let user = this.client.users.get(mention.id); - if (user) { - this.mentions.users.set(user.id, user); - } else { - user = this.client.dataManager.newUser(mention); - this.mentions.users.set(user.id, user); - } - } - - if (data.mention_roles) { - for (const mention of data.mention_roles) { - const role = this.channel.guild.roles.get(mention); - if (role) this.mentions.roles.set(role.id, role); - } - } - - if (this.channel.guild) { - const channMentionsRaw = data.content.match(/<#([0-9]{14,20})>/g) || []; - for (const raw of channMentionsRaw) { - const chan = this.channel.guild.channels.get(raw.match(/([0-9]{14,20})/g)[0]); - if (chan) this.mentions.channels.set(chan.id, chan); - } - } - - this._edits = []; - - /** - * A collection of reactions to this message, mapped by the reaction "id". - * @type {Collection} - */ - this.reactions = new Collection(); - - if (data.reactions && data.reactions.length > 0) { - for (const reaction of data.reactions) { - const id = reaction.emoji.id ? `${reaction.emoji.name}:${reaction.emoji.id}` : reaction.emoji.name; - this.reactions.set(id, new MessageReaction(this, reaction.emoji, reaction.count, reaction.me)); - } - } - } - - patch(data) { // eslint-disable-line complexity - if (data.author) { - this.author = this.client.users.get(data.author.id); - if (this.guild) this.member = this.guild.member(this.author); - } - if (data.content) this.content = data.content; - if (data.timestamp) this.createdTimestamp = new Date(data.timestamp).getTime(); - if (data.edited_timestamp) { - this.editedTimestamp = data.edited_timestamp ? new Date(data.edited_timestamp).getTime() : null; - } - if ('tts' in data) this.tts = data.tts; - if ('mention_everyone' in data) this.mentions.everyone = data.mention_everyone; - if (data.nonce) this.nonce = data.nonce; - if (data.embeds) this.embeds = data.embeds.map(e => new Embed(this, e)); - if (data.type > -1) { - this.system = false; - if (data.type === 6) this.system = true; - } - if (data.attachments) { - this.attachments = new Collection(); - for (const attachment of data.attachments) { - this.attachments.set(attachment.id, new Attachment(this, attachment)); - } - } - if (data.mentions) { - for (const mention of data.mentions) { - let user = this.client.users.get(mention.id); - if (user) { - this.mentions.users.set(user.id, user); - } else { - user = this.client.dataManager.newUser(mention); - this.mentions.users.set(user.id, user); - } - } - } - if (data.mention_roles) { - for (const mention of data.mention_roles) { - const role = this.channel.guild.roles.get(mention); - if (role) this.mentions.roles.set(role.id, role); - } - } - if (data.id) this.id = data.id; - if (this.channel.guild && data.content) { - const channMentionsRaw = data.content.match(/<#([0-9]{14,20})>/g) || []; - for (const raw of channMentionsRaw) { - const chan = this.channel.guild.channels.get(raw.match(/([0-9]{14,20})/g)[0]); - if (chan) this.mentions.channels.set(chan.id, chan); - } - } - if (data.reactions) { - this.reactions = new Collection(); - if (data.reactions.length > 0) { - for (const reaction of data.reactions) { - const id = reaction.emoji.id ? `${reaction.emoji.name}:${reaction.emoji.id}` : reaction.emoji.name; - this.reactions.set(id, new MessageReaction(this, data.emoji, data.count, data.me)); - } - } - } - } - - /** - * The time the message was sent - * @type {Date} - * @readonly - */ - get createdAt() { - return new Date(this.createdTimestamp); - } - - /** - * The time the message was last edited at (if applicable) - * @type {?Date} - * @readonly - */ - get editedAt() { - return this.editedTimestamp ? new Date(this.editedTimestamp) : null; - } - - /** - * The guild the message was sent in (if in a guild channel) - * @type {?Guild} - * @readonly - */ - get guild() { - return this.channel.guild || null; - } - - /** - * The message contents with all mentions replaced by the equivalent text. If mentions cannot be resolved to a name, - * the relevant mention in the message content will not be converted. - * @type {string} - * @readonly - */ - get cleanContent() { - return this.content - .replace(/@(everyone|here)/g, '@\u200b$1') - .replace(/<@!?[0-9]+>/g, (input) => { - const id = input.replace(/<|!|>|@/g, ''); - if (this.channel.type === 'dm' || this.channel.type === 'group') { - return this.client.users.has(id) ? `@${this.client.users.get(id).username}` : input; - } - - const member = this.channel.guild.members.get(id); - if (member) { - if (member.nickname) return `@${member.nickname}`; - return `@${member.user.username}`; - } else { - const user = this.client.users.get(id); - if (user) return `@${user.username}`; - return input; - } - }) - .replace(/<#[0-9]+>/g, (input) => { - const channel = this.client.channels.get(input.replace(/<|#|>/g, '')); - if (channel) return `#${channel.name}`; - return input; - }) - .replace(/<@&[0-9]+>/g, (input) => { - if (this.channel.type === 'dm' || this.channel.type === 'group') return input; - const role = this.guild.roles.get(input.replace(/<|@|>|&/g, '')); - if (role) return `@${role.name}`; - return input; - }); - } - - /** - * An array of cached versions of the message, including the current version. - * Sorted from latest (first) to oldest (last). - * @type {Message[]} - * @readonly - */ - get edits() { - return this._edits.slice().unshift(this); - } - - /** - * Whether the message is editable by the client user. - * @type {boolean} - * @readonly - */ - get editable() { - return this.author.id === this.client.user.id; - } - - /** - * Whether the message is deletable by the client user. - * @type {boolean} - * @readonly - */ - get deletable() { - return this.author.id === this.client.user.id || (this.guild && - this.channel.permissionsFor(this.client.user).hasPermission(Constants.PermissionFlags.MANAGE_MESSAGES) - ); - } - - /** - * Whether the message is pinnable by the client user. - * @type {boolean} - * @readonly - */ - get pinnable() { - return !this.guild || - this.channel.permissionsFor(this.client.user).hasPermission(Constants.PermissionFlags.MANAGE_MESSAGES); - } - - /** - * Whether or not a user, channel or role is mentioned in this message. - * @param {GuildChannel|User|Role|string} data either a guild channel, user or a role object, or a string representing - * the ID of any of these. - * @returns {boolean} - */ - isMentioned(data) { - data = data && data.id ? data.id : data; - return this.mentions.users.has(data) || this.mentions.channels.has(data) || this.mentions.roles.has(data); - } - - /** - * Options that can be passed into editMessage - * @typedef {Object} MessageEditOptions - * @property {Object} [embed] An embed to be added/edited - */ - - /** - * Edit the content of the message - * @param {StringResolvable} content The new content for the message - * @param {MessageEditOptions} [options={}] The options to provide - * @returns {Promise} - * @example - * // update the content of a message - * message.edit('This is my new content!') - * .then(msg => console.log(`Updated the content of a message from ${msg.author}`)) - * .catch(console.error); - */ - edit(content, options = {}) { - return this.client.rest.methods.updateMessage(this, content, options); - } - - /** - * Edit the content of the message, with a code block - * @param {string} lang Language for the code block - * @param {StringResolvable} content The new content for the message - * @returns {Promise} - */ - editCode(lang, content) { - content = escapeMarkdown(this.client.resolver.resolveString(content), true); - return this.edit(`\`\`\`${lang || ''}\n${content}\n\`\`\``); - } - - /** - * Pins this message to the channel's pinned messages - * @returns {Promise} - */ - pin() { - return this.client.rest.methods.pinMessage(this); - } - - /** - * Unpins this message from the channel's pinned messages - * @returns {Promise} - */ - unpin() { - return this.client.rest.methods.unpinMessage(this); - } - - /** - * Add a reaction to the message - * @param {string|Emoji|ReactionEmoji} emoji Emoji to react with - * @returns {Promise} - */ - react(emoji) { - emoji = this.client.resolver.resolveEmojiIdentifier(emoji); - if (!emoji) throw new TypeError('Emoji must be a string or Emoji/ReactionEmoji'); - - return this.client.rest.methods.addMessageReaction(this, emoji); - } - - /** - * Remove all reactions from a message - * @returns {Promise} - */ - clearReactions() { - return this.client.rest.methods.removeMessageReactions(this); - } - - /** - * Deletes the message - * @param {number} [timeout=0] How long to wait to delete the message in milliseconds - * @returns {Promise} - * @example - * // delete a message - * message.delete() - * .then(msg => console.log(`Deleted message from ${msg.author}`)) - * .catch(console.error); - */ - delete(timeout = 0) { - if (timeout <= 0) { - return this.client.rest.methods.deleteMessage(this); - } else { - return new Promise(resolve => { - this.client.setTimeout(() => { - resolve(this.delete()); - }, timeout); - }); - } - } - - /** - * Reply to the message - * @param {StringResolvable} content The content for the message - * @param {MessageOptions} [options = {}] The options to provide - * @returns {Promise} - * @example - * // reply to a message - * message.reply('Hey, I\'m a reply!') - * .then(msg => console.log(`Sent a reply to ${msg.author}`)) - * .catch(console.error); - */ - reply(content, options = {}) { - content = this.client.resolver.resolveString(content); - const prepend = this.guild ? `${this.author}, ` : ''; - content = `${prepend}${content}`; - - if (options.split) { - if (typeof options.split !== 'object') options.split = {}; - if (!options.split.prepend) options.split.prepend = prepend; - } - - return this.client.rest.methods.sendMessage(this.channel, content, options); - } - - /** - * Used mainly internally. Whether two messages are identical in properties. If you want to compare messages - * without checking all the properties, use `message.id === message2.id`, which is much more efficient. This - * method allows you to see if there are differences in content, embeds, attachments, nonce and tts properties. - * @param {Message} message The message to compare it to - * @param {Object} rawData Raw data passed through the WebSocket about this message - * @returns {boolean} - */ - equals(message, rawData) { - if (!message) return false; - const embedUpdate = !message.author && !message.attachments; - if (embedUpdate) return this.id === message.id && this.embeds.length === message.embeds.length; - - let equal = this.id === message.id && - this.author.id === message.author.id && - this.content === message.content && - this.tts === message.tts && - this.nonce === message.nonce && - this.embeds.length === message.embeds.length && - this.attachments.length === message.attachments.length; - - if (equal && rawData) { - equal = this.mentions.everyone === message.mentions.everyone && - this.createdTimestamp === new Date(rawData.timestamp).getTime() && - this.editedTimestamp === new Date(rawData.edited_timestamp).getTime(); - } - - return equal; - } - - /** - * When concatenated with a string, this automatically concatenates the message's content instead of the object. - * @returns {string} - * @example - * // logs: Message: This is a message! - * console.log(`Message: ${message}`); - */ - toString() { - return this.content; - } - - _addReaction(emoji, user) { - const emojiID = emoji.id ? `${emoji.name}:${emoji.id}` : emoji.name; - let reaction; - if (this.reactions.has(emojiID)) { - reaction = this.reactions.get(emojiID); - if (!reaction.me) reaction.me = user.id === this.client.user.id; - } else { - reaction = new MessageReaction(this, emoji, 0, user.id === this.client.user.id); - this.reactions.set(emojiID, reaction); - } - if (!reaction.users.has(user.id)) { - reaction.users.set(user.id, user); - reaction.count++; - return reaction; - } - return null; - } - - _removeReaction(emoji, user) { - const emojiID = emoji.id || emoji; - if (this.reactions.has(emojiID)) { - const reaction = this.reactions.get(emojiID); - if (reaction.users.has(user.id)) { - reaction.users.delete(user.id); - reaction.count--; - if (user.id === this.client.user.id) reaction.me = false; - return reaction; - } - } - return null; - } - - _clearReactions() { - this.reactions.clear(); - } -} - -module.exports = Message; - - -/***/ }, -/* 45 */ +/* 48 */ /***/ function(module, exports) { /** @@ -12574,11 +12631,11 @@ module.exports = ReactionEmoji; /***/ }, -/* 46 */ +/* 49 */ /***/ function(module, exports, __webpack_require__) { -const path = __webpack_require__(14); -const escapeMarkdown = __webpack_require__(31); +const path = __webpack_require__(17); +const escapeMarkdown = __webpack_require__(35); /** * Represents a webhook @@ -12779,16 +12836,16 @@ module.exports = Webhook; /***/ }, -/* 47 */ +/* 50 */ /***/ function(module, exports, __webpack_require__) { -var ciphers = __webpack_require__(150) +var ciphers = __webpack_require__(152) exports.createCipher = exports.Cipher = ciphers.createCipher exports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv -var deciphers = __webpack_require__(149) +var deciphers = __webpack_require__(151) exports.createDecipher = exports.Decipher = deciphers.createDecipher exports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv -var modes = __webpack_require__(34) +var modes = __webpack_require__(38) function getCiphers () { return Object.keys(modes) } @@ -12796,11 +12853,11 @@ exports.listCiphers = exports.getCiphers = getCiphers /***/ }, -/* 48 */ +/* 51 */ /***/ function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(Buffer) {var bn = __webpack_require__(4); -var randomBytes = __webpack_require__(27); +/* WEBPACK VAR INJECTION */(function(Buffer) {var bn = __webpack_require__(7); +var randomBytes = __webpack_require__(30); module.exports = crt; function blind(priv) { var r = getr(priv); @@ -12843,7 +12900,7 @@ function getr(priv) { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 49 */ +/* 52 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -12956,18 +13013,18 @@ exports.allocUnsafeSlow = function allocUnsafeSlow(size) { return new SlowBuffer(size); } -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(16))) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(19))) /***/ }, -/* 50 */ +/* 53 */ /***/ function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(Buffer) {'use strict'; -var createHash = __webpack_require__(18); -var inherits = __webpack_require__(1) +var createHash = __webpack_require__(22); +var inherits = __webpack_require__(2) -var Transform = __webpack_require__(9).Transform +var Transform = __webpack_require__(11).Transform var ZEROS = new Buffer(128) ZEROS.fill(0) @@ -13035,27 +13092,27 @@ module.exports = function createHmac(alg, key) { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 51 */ +/* 54 */ /***/ function(module, exports, __webpack_require__) { "use strict"; 'use strict'; -exports.utils = __webpack_require__(174); -exports.Cipher = __webpack_require__(171); -exports.DES = __webpack_require__(172); -exports.CBC = __webpack_require__(170); -exports.EDE = __webpack_require__(173); +exports.utils = __webpack_require__(176); +exports.Cipher = __webpack_require__(173); +exports.DES = __webpack_require__(174); +exports.CBC = __webpack_require__(172); +exports.EDE = __webpack_require__(175); /***/ }, -/* 52 */ +/* 55 */ /***/ function(module, exports, __webpack_require__) { var http = module.exports; -var EventEmitter = __webpack_require__(3).EventEmitter; -var Request = __webpack_require__(196); -var url = __webpack_require__(59) +var EventEmitter = __webpack_require__(5).EventEmitter; +var Request = __webpack_require__(198); +var url = __webpack_require__(62) http.request = function (params, cb) { if (typeof params === 'string') { @@ -13199,7 +13256,7 @@ http.STATUS_CODES = { }; /***/ }, -/* 53 */ +/* 56 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -13247,10 +13304,10 @@ function nextTick(fn, arg1, arg2, arg3) { } } -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(8))) /***/ }, -/* 54 */ +/* 57 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -13300,11 +13357,11 @@ function nextTick(fn, arg1, arg2, arg3) { module.exports = Transform; -var Duplex = __webpack_require__(15); +var Duplex = __webpack_require__(18); /**/ -var util = __webpack_require__(25); -util.inherits = __webpack_require__(1); +var util = __webpack_require__(28); +util.inherits = __webpack_require__(2); /**/ util.inherits(Transform, Duplex); @@ -13436,7 +13493,7 @@ function done(stream, er) { } /***/ }, -/* 55 */ +/* 58 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -13449,7 +13506,7 @@ function done(stream, er) { module.exports = Writable; /**/ -var processNextTick = __webpack_require__(53); +var processNextTick = __webpack_require__(56); /**/ /**/ @@ -13459,13 +13516,13 @@ var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version. Writable.WritableState = WritableState; /**/ -var util = __webpack_require__(25); -util.inherits = __webpack_require__(1); +var util = __webpack_require__(28); +util.inherits = __webpack_require__(2); /**/ /**/ var internalUtil = { - deprecate: __webpack_require__(232) + deprecate: __webpack_require__(234) }; /**/ @@ -13473,16 +13530,16 @@ var internalUtil = { var Stream; (function () { try { - Stream = __webpack_require__(9); + Stream = __webpack_require__(11); } catch (_) {} finally { - if (!Stream) Stream = __webpack_require__(3).EventEmitter; + if (!Stream) Stream = __webpack_require__(5).EventEmitter; } })(); /**/ var Buffer = __webpack_require__(0).Buffer; /**/ -var bufferShim = __webpack_require__(49); +var bufferShim = __webpack_require__(52); /**/ util.inherits(Writable, Stream); @@ -13498,7 +13555,7 @@ function WriteReq(chunk, encoding, cb) { var Duplex; function WritableState(options, stream) { - Duplex = Duplex || __webpack_require__(15); + Duplex = Duplex || __webpack_require__(18); options = options || {}; @@ -13614,7 +13671,7 @@ WritableState.prototype.getBuffer = function writableStateGetBuffer() { var Duplex; function Writable(options) { - Duplex = Duplex || __webpack_require__(15); + Duplex = Duplex || __webpack_require__(18); // Writable ctor is applied to Duplexes, though they're not // instanceof Writable, they're instanceof Readable. @@ -13966,10 +14023,10 @@ function CorkedRequest(state) { } }; } -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5), __webpack_require__(58).setImmediate)) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(8), __webpack_require__(61).setImmediate)) /***/ }, -/* 56 */ +/* 59 */ /***/ function(module, exports, __webpack_require__) { // Copyright Joyent, Inc. and other Node contributors. @@ -14196,7 +14253,7 @@ function base64DetectIncompleteChar(buffer) { /***/ }, -/* 57 */ +/* 60 */ /***/ function(module, exports, __webpack_require__) { /** @@ -14213,9 +14270,9 @@ if (typeof window !== 'undefined') { // Browser window root = this; } -var Emitter = __webpack_require__(161); -var RequestBase = __webpack_require__(227); -var isObject = __webpack_require__(115); +var Emitter = __webpack_require__(163); +var RequestBase = __webpack_require__(229); +var isObject = __webpack_require__(119); /** * Noop. @@ -14227,7 +14284,7 @@ function noop(){}; * Expose `request`. */ -var request = module.exports = __webpack_require__(228).bind(null, Request); +var request = module.exports = __webpack_require__(230).bind(null, Request); /** * Determine XHR. @@ -15216,10 +15273,10 @@ request.put = function(url, data, fn){ /***/ }, -/* 58 */ +/* 61 */ /***/ function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(setImmediate, clearImmediate) {var nextTick = __webpack_require__(5).nextTick; +/* WEBPACK VAR INJECTION */(function(setImmediate, clearImmediate) {var nextTick = __webpack_require__(8).nextTick; var apply = Function.prototype.apply; var slice = Array.prototype.slice; var immediateIds = {}; @@ -15295,10 +15352,10 @@ exports.setImmediate = typeof setImmediate === "function" ? setImmediate : funct exports.clearImmediate = typeof clearImmediate === "function" ? clearImmediate : function(id) { delete immediateIds[id]; }; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(58).setImmediate, __webpack_require__(58).clearImmediate)) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(61).setImmediate, __webpack_require__(61).clearImmediate)) /***/ }, -/* 59 */ +/* 62 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -15325,8 +15382,8 @@ exports.clearImmediate = typeof clearImmediate === "function" ? clearImmediate : 'use strict'; -var punycode = __webpack_require__(218); -var util = __webpack_require__(239); +var punycode = __webpack_require__(220); +var util = __webpack_require__(241); exports.parse = urlParse; exports.resolve = urlResolve; @@ -15401,7 +15458,7 @@ var protocolPattern = /^([a-z0-9.+-]+:)/i, 'gopher:': true, 'file:': true }, - querystring = __webpack_require__(221); + querystring = __webpack_require__(223); function urlParse(url, parseQueryString, slashesDenoteHost) { if (url && util.isObject(url) && url instanceof Url) return url; @@ -16037,7 +16094,7 @@ Url.prototype.parseHost = function() { /***/ }, -/* 60 */ +/* 63 */ /***/ function(module, exports) { module.exports = function arraysEqual(a, b) { @@ -16057,7 +16114,7 @@ module.exports = function arraysEqual(a, b) { /***/ }, -/* 61 */ +/* 64 */ /***/ function(module, exports) { module.exports = { @@ -16116,13 +16173,13 @@ module.exports = { }; /***/ }, -/* 62 */ +/* 65 */ /***/ function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(process) {const childProcess = __webpack_require__(10); -const path = __webpack_require__(14); -const makeError = __webpack_require__(132); -const makePlainError = __webpack_require__(133); +/* WEBPACK VAR INJECTION */(function(process) {const childProcess = __webpack_require__(12); +const path = __webpack_require__(17); +const makeError = __webpack_require__(135); +const makePlainError = __webpack_require__(136); /** * Represents a Shard spawned by the ShardingManager. @@ -16278,14 +16335,14 @@ class Shard { module.exports = Shard; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(8))) /***/ }, -/* 63 */ +/* 66 */ /***/ function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(process) {const makeError = __webpack_require__(132); -const makePlainError = __webpack_require__(133); +/* WEBPACK VAR INJECTION */(function(process) {const makeError = __webpack_require__(135); +const makePlainError = __webpack_require__(136); /** * Helper class for sharded clients spawned as a child process, such as from a ShardingManager @@ -16427,14 +16484,14 @@ class ShardClientUtil { module.exports = ShardClientUtil; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(8))) /***/ }, -/* 64 */ +/* 67 */ /***/ function(module, exports, __webpack_require__) { -const User = __webpack_require__(11); -const OAuth2Application = __webpack_require__(72); +const User = __webpack_require__(14); +const OAuth2Application = __webpack_require__(76); /** * Represents the client's OAuth2 Application @@ -16462,11 +16519,256 @@ module.exports = ClientOAuth2Application; /***/ }, -/* 65 */ +/* 68 */ /***/ function(module, exports, __webpack_require__) { -const Channel = __webpack_require__(20); -const TextBasedChannel = __webpack_require__(28); +const User = __webpack_require__(14); +const Collection = __webpack_require__(6); + +/** + * Represents the logged in client's Discord user + * @extends {User} + */ +class ClientUser extends User { + setup(data) { + super.setup(data); + + /** + * Whether or not this account has been verified + * @type {boolean} + */ + this.verified = data.verified; + + /** + * The email of this account + * @type {string} + */ + this.email = data.email; + this.localPresence = {}; + this._typing = new Map(); + + /** + * A Collection of friends for the logged in user. + * This is only filled when using a user account. + * @type {Collection} + */ + this.friends = new Collection(); + + /** + * A Collection of blocked users for the logged in user. + * This is only filled when using a user account. + * @type {Collection} + */ + this.blocked = new Collection(); + + /** + * A Collection of notes for the logged in user. + * This is only filled when using a user account. + * @type {Collection} + */ + this.notes = new Collection(); + } + + edit(data) { + return this.client.rest.methods.updateCurrentUser(data); + } + + /** + * Set the username of the logged in Client. + * Changing usernames in Discord is heavily rate limited, with only 2 requests + * every hour. Use this sparingly! + * @param {string} username The new username + * @returns {Promise} + * @example + * // set username + * client.user.setUsername('discordjs') + * .then(user => console.log(`My new username is ${user.username}`)) + * .catch(console.error); + */ + setUsername(username) { + return this.client.rest.methods.updateCurrentUser({ username }); + } + + /** + * If this user is a "self bot" or logged in using a normal user's details (which should be avoided), you can set the + * email here. + * @param {string} email The new email + * @returns {Promise} + * @example + * // set email + * client.user.setEmail('bob@gmail.com') + * .then(user => console.log(`My new email is ${user.email}`)) + * .catch(console.error); + */ + setEmail(email) { + return this.client.rest.methods.updateCurrentUser({ email }); + } + + /** + * If this user is a "self bot" or logged in using a normal user's details (which should be avoided), you can set the + * password here. + * @param {string} password The new password + * @returns {Promise} + * @example + * // set password + * client.user.setPassword('password123') + * .then(user => console.log('New password set!')) + * .catch(console.error); + */ + setPassword(password) { + return this.client.rest.methods.updateCurrentUser({ password }); + } + + /** + * Set the avatar of the logged in Client. + * @param {BufferResolvable|Base64Resolvable} avatar The new avatar + * @returns {Promise} + * @example + * // set avatar + * client.user.setAvatar('./avatar.png') + * .then(user => console.log(`New avatar set!`)) + * .catch(console.error); + */ + setAvatar(avatar) { + if (avatar.startsWith('data:')) { + return this.client.rest.methods.updateCurrentUser({ avatar }); + } else { + return this.client.resolver.resolveBuffer(avatar).then(data => + this.client.rest.methods.updateCurrentUser({ avatar: data }) + ); + } + } + + /** + * Set the status of the logged in user. + * @param {string} status can be `online`, `idle`, `invisible` or `dnd` (do not disturb) + * @returns {Promise} + */ + setStatus(status) { + return this.setPresence({ status }); + } + + /** + * Set the current game of the logged in user. + * @param {string} game the game being played + * @param {string} [streamingURL] an optional URL to a twitch stream, if one is available. + * @returns {Promise} + */ + setGame(game, streamingURL) { + return this.setPresence({ game: { + name: game, + url: streamingURL, + } }); + } + + /** + * Set/remove the AFK flag for the current user. + * @param {boolean} afk whether or not the user is AFK. + * @returns {Promise} + */ + setAFK(afk) { + return this.setPresence({ afk }); + } + + /** + * Send a friend request + * This is only available when using a user account. + * @param {UserResolvable} user The user to send the friend request to. + * @returns {Promise} The user the friend request was sent to. + */ + addFriend(user) { + user = this.client.resolver.resolveUser(user); + return this.client.rest.methods.addFriend(user); + } + + /** + * Remove a friend + * This is only available when using a user account. + * @param {UserResolvable} user The user to remove from your friends + * @returns {Promise} The user that was removed + */ + removeFriend(user) { + user = this.client.resolver.resolveUser(user); + return this.client.rest.methods.removeFriend(user); + } + + /** + * Creates a guild + * This is only available when using a user account. + * @param {string} name The name of the guild + * @param {string} region The region for the server + * @param {BufferResolvable|Base64Resolvable} [icon=null] The icon for the guild + * @returns {Promise} The guild that was created + */ + createGuild(name, region, icon = null) { + if (!icon) return this.client.rest.methods.createGuild({ name, icon, region }); + if (icon.startsWith('data:')) { + return this.client.rest.methods.createGuild({ name, icon, region }); + } else { + return this.client.resolver.resolveBuffer(icon).then(data => + this.client.rest.methods.createGuild({ name, icon: data, region }) + ); + } + } + + /** + * Set the full presence of the current user. + * @param {Object} data the data to provide + * @returns {Promise} + */ + setPresence(data) { + // {"op":3,"d":{"status":"dnd","since":0,"game":null,"afk":false}} + return new Promise(resolve => { + let status = this.localPresence.status || this.presence.status; + let game = this.localPresence.game; + let afk = this.localPresence.afk || this.presence.afk; + + if (!game && this.presence.game) { + game = { + name: this.presence.game.name, + type: this.presence.game.type, + url: this.presence.game.url, + }; + } + + if (data.status) { + if (typeof data.status !== 'string') throw new TypeError('Status must be a string'); + status = data.status; + } + + if (data.game) { + game = data.game; + if (game.url) game.type = 1; + } + + if (typeof data.afk !== 'undefined') afk = data.afk; + afk = Boolean(afk); + + this.localPresence = { status, game, afk }; + this.localPresence.since = 0; + this.localPresence.game = this.localPresence.game || null; + + this.client.ws.send({ + op: 3, + d: this.localPresence, + }); + + this.client._setPresence(this.id, this.localPresence); + + resolve(this); + }); + } +} + +module.exports = ClientUser; + + +/***/ }, +/* 69 */ +/***/ function(module, exports, __webpack_require__) { + +const Channel = __webpack_require__(24); +const TextBasedChannel = __webpack_require__(31); const Collection = __webpack_require__(6); /** @@ -16527,13 +16829,13 @@ module.exports = DMChannel; /***/ }, -/* 66 */ +/* 70 */ /***/ function(module, exports, __webpack_require__) { -const Channel = __webpack_require__(20); -const TextBasedChannel = __webpack_require__(28); +const Channel = __webpack_require__(24); +const TextBasedChannel = __webpack_require__(31); const Collection = __webpack_require__(6); -const arraysEqual = __webpack_require__(60); +const arraysEqual = __webpack_require__(63); /* { type: 3, @@ -16679,12 +16981,12 @@ module.exports = GroupDMChannel; /***/ }, -/* 67 */ +/* 71 */ /***/ function(module, exports, __webpack_require__) { -const PartialGuild = __webpack_require__(73); -const PartialGuildChannel = __webpack_require__(74); -const Constants = __webpack_require__(2); +const PartialGuild = __webpack_require__(77); +const PartialGuildChannel = __webpack_require__(78); +const Constants = __webpack_require__(1); /* { max_age: 86400, @@ -16843,7 +17145,7 @@ module.exports = Invite; /***/ }, -/* 68 */ +/* 72 */ /***/ function(module, exports) { /** @@ -16916,10 +17218,10 @@ module.exports = MessageAttachment; /***/ }, -/* 69 */ +/* 73 */ /***/ function(module, exports, __webpack_require__) { -const EventEmitter = __webpack_require__(3).EventEmitter; +const EventEmitter = __webpack_require__(5).EventEmitter; const Collection = __webpack_require__(6); /** @@ -17073,7 +17375,7 @@ module.exports = MessageCollector; /***/ }, -/* 70 */ +/* 74 */ /***/ function(module, exports) { /** @@ -17348,12 +17650,12 @@ module.exports = MessageEmbed; /***/ }, -/* 71 */ +/* 75 */ /***/ function(module, exports, __webpack_require__) { const Collection = __webpack_require__(6); -const Emoji = __webpack_require__(21); -const ReactionEmoji = __webpack_require__(45); +const Emoji = __webpack_require__(25); +const ReactionEmoji = __webpack_require__(48); /** * Represents a reaction to a message @@ -17447,7 +17749,7 @@ module.exports = MessageReaction; /***/ }, -/* 72 */ +/* 76 */ /***/ function(module, exports) { /** @@ -17534,7 +17836,7 @@ module.exports = OAuth2Application; /***/ }, -/* 73 */ +/* 77 */ /***/ function(module, exports) { /* @@ -17590,10 +17892,10 @@ module.exports = PartialGuild; /***/ }, -/* 74 */ +/* 78 */ /***/ function(module, exports, __webpack_require__) { -const Constants = __webpack_require__(2); +const Constants = __webpack_require__(1); /* { type: 0, id: '123123', name: 'heavy-testing' } } @@ -17639,7 +17941,7 @@ module.exports = PartialGuildChannel; /***/ }, -/* 75 */ +/* 79 */ /***/ function(module, exports) { /** @@ -17686,11 +17988,11 @@ module.exports = PermissionOverwrites; /***/ }, -/* 76 */ +/* 80 */ /***/ function(module, exports, __webpack_require__) { -const GuildChannel = __webpack_require__(29); -const TextBasedChannel = __webpack_require__(28); +const GuildChannel = __webpack_require__(32); +const TextBasedChannel = __webpack_require__(31); const Collection = __webpack_require__(6); /** @@ -17787,10 +18089,10 @@ module.exports = TextChannel; /***/ }, -/* 77 */ +/* 81 */ /***/ function(module, exports, __webpack_require__) { -const GuildChannel = __webpack_require__(29); +const GuildChannel = __webpack_require__(32); const Collection = __webpack_require__(6); /** @@ -17910,11 +18212,11 @@ module.exports = VoiceChannel; /***/ }, -/* 78 */ +/* 82 */ /***/ function(module, exports, __webpack_require__) { -const superagent = __webpack_require__(57); -const botGateway = __webpack_require__(2).Endpoints.botGateway; +const superagent = __webpack_require__(60); +const botGateway = __webpack_require__(1).Endpoints.botGateway; /** * Gets the recommended shard count from Discord @@ -17935,7 +18237,7 @@ module.exports = function fetchRecommendedShards(token) { /***/ }, -/* 79 */ +/* 83 */ /***/ function(module, exports) { module.exports = function splitMessage(text, { maxLength = 1950, char = '\n', prepend = '', append = '' } = {}) { @@ -17957,11 +18259,11 @@ module.exports = function splitMessage(text, { maxLength = 1950, char = '\n', pr /***/ }, -/* 80 */ +/* 84 */ /***/ function(module, exports, __webpack_require__) { -var inherits = __webpack_require__(1); -var Reporter = __webpack_require__(23).Reporter; +var inherits = __webpack_require__(2); +var Reporter = __webpack_require__(26).Reporter; var Buffer = __webpack_require__(0).Buffer; function DecoderBuffer(base, options) { @@ -18079,7 +18381,7 @@ EncoderBuffer.prototype.join = function join(out, offset) { /***/ }, -/* 81 */ +/* 85 */ /***/ function(module, exports, __webpack_require__) { var constants = exports; @@ -18100,16 +18402,16 @@ constants._reverse = function reverse(map) { return res; }; -constants.der = __webpack_require__(142); +constants.der = __webpack_require__(144); /***/ }, -/* 82 */ +/* 86 */ /***/ function(module, exports, __webpack_require__) { -var inherits = __webpack_require__(1); +var inherits = __webpack_require__(2); -var asn1 = __webpack_require__(32); +var asn1 = __webpack_require__(36); var base = asn1.base; var bignum = asn1.bignum; @@ -18434,13 +18736,13 @@ function derDecodeLen(buf, primitive, fail) { /***/ }, -/* 83 */ +/* 87 */ /***/ function(module, exports, __webpack_require__) { -var inherits = __webpack_require__(1); +var inherits = __webpack_require__(2); var Buffer = __webpack_require__(0).Buffer; -var asn1 = __webpack_require__(32); +var asn1 = __webpack_require__(36); var base = asn1.base; // Import DER constants @@ -18735,7 +19037,7 @@ function encodeTag(tag, primitive, cls, reporter) { /***/ }, -/* 84 */ +/* 88 */ /***/ function(module, exports) { function webpackEmptyContext(req) { @@ -18744,11 +19046,11 @@ function webpackEmptyContext(req) { webpackEmptyContext.keys = function() { return []; }; webpackEmptyContext.resolve = webpackEmptyContext; module.exports = webpackEmptyContext; -webpackEmptyContext.id = 84; +webpackEmptyContext.id = 88; /***/ }, -/* 85 */ +/* 89 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process, __filename) { @@ -18756,8 +19058,8 @@ webpackEmptyContext.id = 84; * Module dependencies. */ -var fs = __webpack_require__(10) - , path = __webpack_require__(14) +var fs = __webpack_require__(12) + , path = __webpack_require__(17) , join = path.join , dirname = path.dirname , exists = fs.existsSync || path.existsSync @@ -18918,10 +19220,10 @@ exports.getRoot = function getRoot (file) { } } -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5), "/index.js")) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(8), "/index.js")) /***/ }, -/* 86 */ +/* 90 */ /***/ function(module, exports, __webpack_require__) { var r; @@ -18966,7 +19268,7 @@ if (typeof window === 'object') { } else { // Node.js or Web worker try { - var crypto = __webpack_require__(278); + var crypto = __webpack_require__(337); Rand.prototype._rand = function _rand(n) { return crypto.randomBytes(n); @@ -18984,14 +19286,14 @@ if (typeof window === 'object') { /***/ }, -/* 87 */ +/* 91 */ /***/ function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(Buffer) {var aes = __webpack_require__(33) -var Transform = __webpack_require__(17) -var inherits = __webpack_require__(1) -var GHASH = __webpack_require__(151) -var xor = __webpack_require__(24) +/* WEBPACK VAR INJECTION */(function(Buffer) {var aes = __webpack_require__(37) +var Transform = __webpack_require__(21) +var inherits = __webpack_require__(2) +var GHASH = __webpack_require__(153) +var xor = __webpack_require__(27) inherits(StreamCipher, Transform) module.exports = StreamCipher @@ -19088,10 +19390,10 @@ function xorTest (a, b) { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 88 */ +/* 92 */ /***/ function(module, exports, __webpack_require__) { -var xor = __webpack_require__(24) +var xor = __webpack_require__(27) exports.encrypt = function (self, block) { var data = xor(block, self._prev) @@ -19111,10 +19413,10 @@ exports.decrypt = function (self, block) { /***/ }, -/* 89 */ +/* 93 */ /***/ function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(Buffer) {var xor = __webpack_require__(24) +/* WEBPACK VAR INJECTION */(function(Buffer) {var xor = __webpack_require__(27) exports.encrypt = function (self, data, decrypt) { var out = new Buffer('') @@ -19149,7 +19451,7 @@ function encryptStart (self, data, decrypt) { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 90 */ +/* 94 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(Buffer) {function encryptByte (self, byteParam, decrypt) { @@ -19190,7 +19492,7 @@ function shiftIn (buffer, value) { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 91 */ +/* 95 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(Buffer) {function encryptByte (self, byteParam, decrypt) { @@ -19212,7 +19514,7 @@ exports.encrypt = function (self, chunk, decrypt) { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 92 */ +/* 96 */ /***/ function(module, exports) { exports.encrypt = function (self, block) { @@ -19224,10 +19526,10 @@ exports.decrypt = function (self, block) { /***/ }, -/* 93 */ +/* 97 */ /***/ function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(Buffer) {var xor = __webpack_require__(24) +/* WEBPACK VAR INJECTION */(function(Buffer) {var xor = __webpack_require__(27) function getBlock (self) { self._prev = self._cipher.encryptBlock(self._prev) @@ -19247,12 +19549,12 @@ exports.encrypt = function (self, chunk) { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 94 */ +/* 98 */ /***/ function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(Buffer) {var aes = __webpack_require__(33) -var Transform = __webpack_require__(17) -var inherits = __webpack_require__(1) +/* WEBPACK VAR INJECTION */(function(Buffer) {var aes = __webpack_require__(37) +var Transform = __webpack_require__(21) +var inherits = __webpack_require__(2) inherits(StreamCipher, Transform) module.exports = StreamCipher @@ -19279,7 +19581,7 @@ StreamCipher.prototype._final = function () { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 95 */ +/* 99 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -19359,7 +19661,7 @@ exports['RSA-MD5'] = exports.md5WithRSAEncryption = { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 96 */ +/* 100 */ /***/ function(module, exports) { "use strict"; @@ -19378,7 +19680,7 @@ exports['1.3.132.0.35'] = 'p521' /***/ }, -/* 97 */ +/* 101 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(Buffer, process) {// Copyright Joyent, Inc. and other Node contributors. @@ -19402,11 +19704,11 @@ exports['1.3.132.0.35'] = 'p521' // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. -var Transform = __webpack_require__(114); +var Transform = __webpack_require__(118); -var binding = __webpack_require__(158); -var util = __webpack_require__(8); -var assert = __webpack_require__(147).ok; +var binding = __webpack_require__(160); +var util = __webpack_require__(10); +var assert = __webpack_require__(149).ok; // zlib doesn't provide these, so kludge them in following the same // const naming scheme zlib uses. @@ -19992,10 +20294,10 @@ util.inherits(DeflateRaw, Zlib); util.inherits(InflateRaw, Zlib); util.inherits(Unzip, Zlib); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer, __webpack_require__(5))) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer, __webpack_require__(8))) /***/ }, -/* 98 */ +/* 102 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -20009,7 +20311,7 @@ util.inherits(Unzip, Zlib); * See http://pajhome.org.uk/crypt/md5 for more info. */ -var helpers = __webpack_require__(163); +var helpers = __webpack_require__(165); /* * Calculate the MD5 of an array of little-endian words, and a bit length @@ -20157,7 +20459,7 @@ module.exports = function md5(buf) { }; /***/ }, -/* 99 */ +/* 103 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(Buffer) {/** @@ -20168,8 +20470,8 @@ module.exports = function md5(buf) { * */ -var inherits = __webpack_require__(1) -var Hash = __webpack_require__(19) +var inherits = __webpack_require__(2) +var Hash = __webpack_require__(23) var K = [ 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5, @@ -20298,11 +20600,11 @@ module.exports = Sha256 /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 100 */ +/* 104 */ /***/ function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(Buffer) {var inherits = __webpack_require__(1) -var Hash = __webpack_require__(19) +/* WEBPACK VAR INJECTION */(function(Buffer) {var inherits = __webpack_require__(2) +var Hash = __webpack_require__(23) var K = [ 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd, @@ -20564,16 +20866,16 @@ module.exports = Sha512 /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 101 */ +/* 105 */ /***/ function(module, exports, __webpack_require__) { -var randomBytes = __webpack_require__(27); +var randomBytes = __webpack_require__(30); module.exports = findPrime; findPrime.simpleSieve = simpleSieve; findPrime.fermatTest = fermatTest; -var BN = __webpack_require__(4); +var BN = __webpack_require__(7); var TWENTYFOUR = new BN(24); -var MillerRabin = __webpack_require__(103); +var MillerRabin = __webpack_require__(107); var millerRabin = new MillerRabin(); var ONE = new BN(1); var TWO = new BN(2); @@ -20675,7 +20977,7 @@ function findPrime(bits, gen) { /***/ }, -/* 102 */ +/* 106 */ /***/ function(module, exports) { var toString = {}.toString; @@ -20686,11 +20988,11 @@ module.exports = Array.isArray || function (arr) { /***/ }, -/* 103 */ +/* 107 */ /***/ function(module, exports, __webpack_require__) { -var bn = __webpack_require__(4); -var brorand = __webpack_require__(86); +var bn = __webpack_require__(7); +var brorand = __webpack_require__(90); function MillerRabin(rand) { this.rand = rand || new brorand.Rand(); @@ -20805,7 +21107,7 @@ MillerRabin.prototype.getDivisor = function getDivisor(n, k) { /***/ }, -/* 104 */ +/* 108 */ /***/ function(module, exports, __webpack_require__) { /*! @@ -20813,7 +21115,7 @@ MillerRabin.prototype.getDivisor = function getDivisor(n, k) { * MIT Licensed */ -var fs = __webpack_require__(10); +var fs = __webpack_require__(12); function Options(defaults) { var internalValues = {}; @@ -20897,7 +21199,7 @@ module.exports = Options; /***/ }, -/* 105 */ +/* 109 */ /***/ function(module, exports) { "use strict"; @@ -20936,7 +21238,7 @@ module.exports = adler32; /***/ }, -/* 106 */ +/* 110 */ /***/ function(module, exports) { "use strict"; @@ -20984,7 +21286,7 @@ module.exports = crc32; /***/ }, -/* 107 */ +/* 111 */ /***/ function(module, exports) { "use strict"; @@ -21004,11 +21306,11 @@ module.exports = { /***/ }, -/* 108 */ +/* 112 */ /***/ function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(process, Buffer) {var createHmac = __webpack_require__(50) -var checkParameters = __webpack_require__(214) +/* WEBPACK VAR INJECTION */(function(process, Buffer) {var createHmac = __webpack_require__(53) +var checkParameters = __webpack_require__(216) exports.pbkdf2 = function (password, salt, iterations, keylen, digest, callback) { if (typeof digest === 'function') { @@ -21076,13 +21378,13 @@ exports.pbkdf2Sync = function (password, salt, iterations, keylen, digest) { return DK } -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5), __webpack_require__(0).Buffer)) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(8), __webpack_require__(0).Buffer)) /***/ }, -/* 109 */ +/* 113 */ /***/ function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(Buffer) {var createHash = __webpack_require__(18); +/* WEBPACK VAR INJECTION */(function(Buffer) {var createHash = __webpack_require__(22); module.exports = function (seed, len) { var t = new Buffer(''); var i = 0, c; @@ -21101,10 +21403,10 @@ function i2ops(c) { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 110 */ +/* 114 */ /***/ function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(Buffer) {var bn = __webpack_require__(4); +/* WEBPACK VAR INJECTION */(function(Buffer) {var bn = __webpack_require__(7); function withPublic(paddedMsg, key) { return new Buffer(paddedMsg .toRed(bn.mont(key.modulus)) @@ -21117,7 +21419,7 @@ module.exports = withPublic; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 111 */ +/* 115 */ /***/ function(module, exports) { module.exports = function xor(a, b) { @@ -21130,7 +21432,7 @@ module.exports = function xor(a, b) { }; /***/ }, -/* 112 */ +/* 116 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -21142,11 +21444,11 @@ module.exports = function xor(a, b) { module.exports = PassThrough; -var Transform = __webpack_require__(54); +var Transform = __webpack_require__(57); /**/ -var util = __webpack_require__(25); -util.inherits = __webpack_require__(1); +var util = __webpack_require__(28); +util.inherits = __webpack_require__(2); /**/ util.inherits(PassThrough, Transform); @@ -21162,7 +21464,7 @@ PassThrough.prototype._transform = function (chunk, encoding, cb) { }; /***/ }, -/* 113 */ +/* 117 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -21171,17 +21473,17 @@ PassThrough.prototype._transform = function (chunk, encoding, cb) { module.exports = Readable; /**/ -var processNextTick = __webpack_require__(53); +var processNextTick = __webpack_require__(56); /**/ /**/ -var isArray = __webpack_require__(102); +var isArray = __webpack_require__(106); /**/ Readable.ReadableState = ReadableState; /**/ -var EE = __webpack_require__(3).EventEmitter; +var EE = __webpack_require__(5).EventEmitter; var EElistenerCount = function (emitter, type) { return emitter.listeners(type).length; @@ -21192,25 +21494,25 @@ var EElistenerCount = function (emitter, type) { var Stream; (function () { try { - Stream = __webpack_require__(9); + Stream = __webpack_require__(11); } catch (_) {} finally { - if (!Stream) Stream = __webpack_require__(3).EventEmitter; + if (!Stream) Stream = __webpack_require__(5).EventEmitter; } })(); /**/ var Buffer = __webpack_require__(0).Buffer; /**/ -var bufferShim = __webpack_require__(49); +var bufferShim = __webpack_require__(52); /**/ /**/ -var util = __webpack_require__(25); -util.inherits = __webpack_require__(1); +var util = __webpack_require__(28); +util.inherits = __webpack_require__(2); /**/ /**/ -var debugUtil = __webpack_require__(279); +var debugUtil = __webpack_require__(338); var debug = void 0; if (debugUtil && debugUtil.debuglog) { debug = debugUtil.debuglog('stream'); @@ -21219,7 +21521,7 @@ if (debugUtil && debugUtil.debuglog) { } /**/ -var BufferList = __webpack_require__(223); +var BufferList = __webpack_require__(225); var StringDecoder; util.inherits(Readable, Stream); @@ -21238,7 +21540,7 @@ function prependListener(emitter, event, fn) { var Duplex; function ReadableState(options, stream) { - Duplex = Duplex || __webpack_require__(15); + Duplex = Duplex || __webpack_require__(18); options = options || {}; @@ -21300,7 +21602,7 @@ function ReadableState(options, stream) { this.decoder = null; this.encoding = null; if (options.encoding) { - if (!StringDecoder) StringDecoder = __webpack_require__(56).StringDecoder; + if (!StringDecoder) StringDecoder = __webpack_require__(59).StringDecoder; this.decoder = new StringDecoder(options.encoding); this.encoding = options.encoding; } @@ -21308,7 +21610,7 @@ function ReadableState(options, stream) { var Duplex; function Readable(options) { - Duplex = Duplex || __webpack_require__(15); + Duplex = Duplex || __webpack_require__(18); if (!(this instanceof Readable)) return new Readable(options); @@ -21411,7 +21713,7 @@ function needMoreData(state) { // backwards compatibility. Readable.prototype.setEncoding = function (enc) { - if (!StringDecoder) StringDecoder = __webpack_require__(56).StringDecoder; + if (!StringDecoder) StringDecoder = __webpack_require__(59).StringDecoder; this._readableState.decoder = new StringDecoder(enc); this._readableState.encoding = enc; return this; @@ -22103,17 +22405,17 @@ function indexOf(xs, x) { } return -1; } -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(8))) /***/ }, -/* 114 */ +/* 118 */ /***/ function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(54) +module.exports = __webpack_require__(57) /***/ }, -/* 115 */ +/* 119 */ /***/ function(module, exports) { /** @@ -22132,7 +22434,7 @@ module.exports = isObject; /***/ }, -/* 116 */ +/* 120 */ /***/ function(module, exports, __webpack_require__) { (function(nacl) { @@ -24511,7 +24813,7 @@ nacl.setPRNG = function(fn) { }); } else if (true) { // Node.js. - crypto = __webpack_require__(280); + crypto = __webpack_require__(339); if (crypto && crypto.randomBytes) { nacl.setPRNG(function(x, n) { var i, v = crypto.randomBytes(n); @@ -24526,7 +24828,7 @@ nacl.setPRNG = function(fn) { /***/ }, -/* 117 */ +/* 121 */ /***/ function(module, exports) { module.exports = function(module) { @@ -24552,26 +24854,26 @@ module.exports = function(module) { /***/ }, -/* 118 */ +/* 122 */ /***/ function(module, exports, __webpack_require__) { "use strict"; 'use strict' -exports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = __webpack_require__(27) -exports.createHash = exports.Hash = __webpack_require__(18) -exports.createHmac = exports.Hmac = __webpack_require__(50) +exports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = __webpack_require__(30) +exports.createHash = exports.Hash = __webpack_require__(22) +exports.createHmac = exports.Hmac = __webpack_require__(53) -var hashes = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'].concat(Object.keys(__webpack_require__(95))) +var hashes = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'].concat(Object.keys(__webpack_require__(99))) exports.getHashes = function () { return hashes } -var p = __webpack_require__(108) +var p = __webpack_require__(112) exports.pbkdf2 = p.pbkdf2 exports.pbkdf2Sync = p.pbkdf2Sync -var aes = __webpack_require__(152) +var aes = __webpack_require__(154) ;[ 'Cipher', 'createCipher', @@ -24587,7 +24889,7 @@ var aes = __webpack_require__(152) exports[key] = aes[key] }) -var dh = __webpack_require__(175) +var dh = __webpack_require__(177) ;[ 'DiffieHellmanGroup', 'createDiffieHellmanGroup', @@ -24598,7 +24900,7 @@ var dh = __webpack_require__(175) exports[key] = dh[key] }) -var sign = __webpack_require__(155) +var sign = __webpack_require__(157) ;[ 'createSign', 'Sign', @@ -24608,9 +24910,9 @@ var sign = __webpack_require__(155) exports[key] = sign[key] }) -exports.createECDH = __webpack_require__(162) +exports.createECDH = __webpack_require__(164) -var publicEncrypt = __webpack_require__(215) +var publicEncrypt = __webpack_require__(217) ;[ 'publicEncrypt', @@ -24636,7 +24938,7 @@ var publicEncrypt = __webpack_require__(215) /***/ }, -/* 119 */ +/* 123 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -24648,11 +24950,11 @@ var publicEncrypt = __webpack_require__(215) * MIT Licensed */ -var WS = module.exports = __webpack_require__(125); +var WS = module.exports = __webpack_require__(129); -WS.Server = __webpack_require__(246); -WS.Sender = __webpack_require__(124); -WS.Receiver = __webpack_require__(123); +WS.Server = __webpack_require__(248); +WS.Sender = __webpack_require__(128); +WS.Receiver = __webpack_require__(127); /** * Create a new WebSocket server. @@ -24692,7 +24994,7 @@ WS.connect = WS.createConnection = function connect(address, fn) { /***/ }, -/* 120 */ +/* 124 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -24705,14 +25007,14 @@ WS.connect = WS.createConnection = function connect(address, fn) { */ try { - module.exports = __webpack_require__(160); + module.exports = __webpack_require__(162); } catch (e) { - module.exports = __webpack_require__(241); + module.exports = __webpack_require__(243); } /***/ }, -/* 121 */ +/* 125 */ /***/ function(module, exports) { /*! @@ -24741,11 +25043,11 @@ module.exports = { }; /***/ }, -/* 122 */ +/* 126 */ /***/ function(module, exports, __webpack_require__) { -var util = __webpack_require__(8); +var util = __webpack_require__(10); /** * Module exports. @@ -24817,7 +25119,7 @@ function format(value) { /***/ }, -/* 123 */ +/* 127 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(Buffer) {/*! @@ -24826,12 +25128,12 @@ function format(value) { * MIT Licensed */ -var util = __webpack_require__(8) - , Validation = __webpack_require__(245).Validation - , ErrorCodes = __webpack_require__(121) - , BufferPool = __webpack_require__(240) - , bufferUtil = __webpack_require__(120).BufferUtil - , PerMessageDeflate = __webpack_require__(40); +var util = __webpack_require__(10) + , Validation = __webpack_require__(247).Validation + , ErrorCodes = __webpack_require__(125) + , BufferPool = __webpack_require__(242) + , bufferUtil = __webpack_require__(124).BufferUtil + , PerMessageDeflate = __webpack_require__(44); /** * HyBi Receiver implementation @@ -25617,7 +25919,7 @@ var opcodes = { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 124 */ +/* 128 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(Buffer) {/*! @@ -25626,12 +25928,12 @@ var opcodes = { * MIT Licensed */ -var events = __webpack_require__(3) - , util = __webpack_require__(8) +var events = __webpack_require__(5) + , util = __webpack_require__(10) , EventEmitter = events.EventEmitter - , ErrorCodes = __webpack_require__(121) - , bufferUtil = __webpack_require__(120).BufferUtil - , PerMessageDeflate = __webpack_require__(40); + , ErrorCodes = __webpack_require__(125) + , bufferUtil = __webpack_require__(124).BufferUtil + , PerMessageDeflate = __webpack_require__(44); /** * HyBi Sender implementation @@ -25948,7 +26250,7 @@ function getRandomMask() { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 125 */ +/* 129 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -25960,21 +26262,21 @@ function getRandomMask() { * MIT Licensed */ -var url = __webpack_require__(59) - , util = __webpack_require__(8) - , http = __webpack_require__(52) - , https = __webpack_require__(236) - , crypto = __webpack_require__(118) - , stream = __webpack_require__(9) - , Ultron = __webpack_require__(229) - , Options = __webpack_require__(104) - , Sender = __webpack_require__(124) - , Receiver = __webpack_require__(123) - , SenderHixie = __webpack_require__(243) - , ReceiverHixie = __webpack_require__(242) - , Extensions = __webpack_require__(122) - , PerMessageDeflate = __webpack_require__(40) - , EventEmitter = __webpack_require__(3).EventEmitter; +var url = __webpack_require__(62) + , util = __webpack_require__(10) + , http = __webpack_require__(55) + , https = __webpack_require__(238) + , crypto = __webpack_require__(122) + , stream = __webpack_require__(11) + , Ultron = __webpack_require__(231) + , Options = __webpack_require__(108) + , Sender = __webpack_require__(128) + , Receiver = __webpack_require__(127) + , SenderHixie = __webpack_require__(245) + , ReceiverHixie = __webpack_require__(244) + , Extensions = __webpack_require__(126) + , PerMessageDeflate = __webpack_require__(44) + , EventEmitter = __webpack_require__(5).EventEmitter; /** * Constants @@ -26940,25 +27242,25 @@ function cleanupWebsocketResources(error) { delete this._queue; } -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer, __webpack_require__(5))) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer, __webpack_require__(8))) /***/ }, -/* 126 */ +/* 130 */ /***/ function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(Buffer) {const path = __webpack_require__(14); -const fs = __webpack_require__(10); -const request = __webpack_require__(57); +/* WEBPACK VAR INJECTION */(function(Buffer) {const path = __webpack_require__(17); +const fs = __webpack_require__(12); +const request = __webpack_require__(60); -const Constants = __webpack_require__(2); -const convertArrayBuffer = __webpack_require__(131); -const User = __webpack_require__(11); -const Message = __webpack_require__(44); -const Guild = __webpack_require__(43); -const Channel = __webpack_require__(20); -const GuildMember = __webpack_require__(30); -const Emoji = __webpack_require__(21); -const ReactionEmoji = __webpack_require__(45); +const Constants = __webpack_require__(1); +const convertArrayBuffer = __webpack_require__(134); +const User = __webpack_require__(14); +const Message = __webpack_require__(34); +const Guild = __webpack_require__(47); +const Channel = __webpack_require__(24); +const GuildMember = __webpack_require__(33); +const Emoji = __webpack_require__(25); +const ReactionEmoji = __webpack_require__(48); /** * The DataResolver identifies different objects and tries to resolve a specific piece of information from them, e.g. @@ -27245,15 +27547,15 @@ module.exports = ClientDataResolver; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 127 */ +/* 131 */ /***/ function(module, exports, __webpack_require__) { -const UserAgentManager = __webpack_require__(256); -const RESTMethods = __webpack_require__(253); -const SequentialRequestHandler = __webpack_require__(255); -const BurstRequestHandler = __webpack_require__(254); -const APIRequest = __webpack_require__(252); -const Constants = __webpack_require__(2); +const UserAgentManager = __webpack_require__(283); +const RESTMethods = __webpack_require__(280); +const SequentialRequestHandler = __webpack_require__(282); +const BurstRequestHandler = __webpack_require__(281); +const APIRequest = __webpack_require__(279); +const Constants = __webpack_require__(1); class RESTManager { constructor(client) { @@ -27302,7 +27604,7 @@ module.exports = RESTManager; /***/ }, -/* 128 */ +/* 132 */ /***/ function(module, exports) { /** @@ -27359,7 +27661,7 @@ module.exports = RequestHandler; /***/ }, -/* 129 */ +/* 133 */ /***/ function(module, exports) { class BaseOpus { @@ -27380,18 +27682,7 @@ module.exports = BaseOpus; /***/ }, -/* 130 */ -/***/ function(module, exports) { - -module.exports = function cloneObject(obj) { - const cloned = Object.create(obj); - Object.assign(cloned, obj); - return cloned; -}; - - -/***/ }, -/* 131 */ +/* 134 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(Buffer) {function arrayBufferToBuffer(ab) { @@ -27416,7 +27707,7 @@ module.exports = function convertArrayBuffer(x) { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 132 */ +/* 135 */ /***/ function(module, exports) { module.exports = function makeError(obj) { @@ -27428,7 +27719,7 @@ module.exports = function makeError(obj) { /***/ }, -/* 133 */ +/* 136 */ /***/ function(module, exports) { module.exports = function makePlainError(err) { @@ -27441,22 +27732,22 @@ module.exports = function makePlainError(err) { /***/ }, -/* 134 */ +/* 137 */ /***/ function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(process) {const EventEmitter = __webpack_require__(3).EventEmitter; -const mergeDefault = __webpack_require__(41); -const Constants = __webpack_require__(2); -const RESTManager = __webpack_require__(127); -const ClientDataManager = __webpack_require__(248); -const ClientManager = __webpack_require__(249); -const ClientDataResolver = __webpack_require__(126); -const ClientVoiceManager = __webpack_require__(257); -const WebSocketManager = __webpack_require__(272); -const ActionsManager = __webpack_require__(251); +/* WEBPACK VAR INJECTION */(function(process) {const EventEmitter = __webpack_require__(5).EventEmitter; +const mergeDefault = __webpack_require__(45); +const Constants = __webpack_require__(1); +const RESTManager = __webpack_require__(131); +const ClientDataManager = __webpack_require__(250); +const ClientManager = __webpack_require__(251); +const ClientDataResolver = __webpack_require__(130); +const ClientVoiceManager = __webpack_require__(284); +const WebSocketManager = __webpack_require__(299); +const ActionsManager = __webpack_require__(252); const Collection = __webpack_require__(6); -const Presence = __webpack_require__(12).Presence; -const ShardClientUtil = __webpack_require__(63); +const Presence = __webpack_require__(15).Presence; +const ShardClientUtil = __webpack_require__(66); /** * The starting point for making a Discord Bot. @@ -27894,17 +28185,17 @@ module.exports = Client; * @param {string} The debug information */ -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(8))) /***/ }, -/* 135 */ +/* 138 */ /***/ function(module, exports, __webpack_require__) { -const Webhook = __webpack_require__(46); -const RESTManager = __webpack_require__(127); -const ClientDataResolver = __webpack_require__(126); -const mergeDefault = __webpack_require__(41); -const Constants = __webpack_require__(2); +const Webhook = __webpack_require__(49); +const RESTManager = __webpack_require__(131); +const ClientDataResolver = __webpack_require__(130); +const mergeDefault = __webpack_require__(45); +const Constants = __webpack_require__(1); /** * The Webhook Client @@ -27949,16 +28240,16 @@ module.exports = WebhookClient; /***/ }, -/* 136 */ +/* 139 */ /***/ function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(process) {const path = __webpack_require__(14); -const fs = __webpack_require__(10); -const EventEmitter = __webpack_require__(3).EventEmitter; -const mergeDefault = __webpack_require__(41); -const Shard = __webpack_require__(62); +/* WEBPACK VAR INJECTION */(function(process) {const path = __webpack_require__(17); +const fs = __webpack_require__(12); +const EventEmitter = __webpack_require__(5).EventEmitter; +const mergeDefault = __webpack_require__(45); +const Shard = __webpack_require__(65); const Collection = __webpack_require__(6); -const fetchRecommendedShards = __webpack_require__(78); +const fetchRecommendedShards = __webpack_require__(82); /** * This is a utility class that can be used to help you spawn shards of your Client. Each shard is completely separate @@ -28146,255 +28437,10 @@ class ShardingManager extends EventEmitter { module.exports = ShardingManager; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(8))) /***/ }, -/* 137 */ -/***/ function(module, exports, __webpack_require__) { - -const User = __webpack_require__(11); -const Collection = __webpack_require__(6); - -/** - * Represents the logged in client's Discord user - * @extends {User} - */ -class ClientUser extends User { - setup(data) { - super.setup(data); - - /** - * Whether or not this account has been verified - * @type {boolean} - */ - this.verified = data.verified; - - /** - * The email of this account - * @type {string} - */ - this.email = data.email; - this.localPresence = {}; - this._typing = new Map(); - - /** - * A Collection of friends for the logged in user. - * This is only filled when using a user account. - * @type {Collection} - */ - this.friends = new Collection(); - - /** - * A Collection of blocked users for the logged in user. - * This is only filled when using a user account. - * @type {Collection} - */ - this.blocked = new Collection(); - - /** - * A Collection of notes for the logged in user. - * This is only filled when using a user account. - * @type {Collection} - */ - this.notes = new Collection(); - } - - edit(data) { - return this.client.rest.methods.updateCurrentUser(data); - } - - /** - * Set the username of the logged in Client. - * Changing usernames in Discord is heavily rate limited, with only 2 requests - * every hour. Use this sparingly! - * @param {string} username The new username - * @returns {Promise} - * @example - * // set username - * client.user.setUsername('discordjs') - * .then(user => console.log(`My new username is ${user.username}`)) - * .catch(console.error); - */ - setUsername(username) { - return this.client.rest.methods.updateCurrentUser({ username }); - } - - /** - * If this user is a "self bot" or logged in using a normal user's details (which should be avoided), you can set the - * email here. - * @param {string} email The new email - * @returns {Promise} - * @example - * // set email - * client.user.setEmail('bob@gmail.com') - * .then(user => console.log(`My new email is ${user.email}`)) - * .catch(console.error); - */ - setEmail(email) { - return this.client.rest.methods.updateCurrentUser({ email }); - } - - /** - * If this user is a "self bot" or logged in using a normal user's details (which should be avoided), you can set the - * password here. - * @param {string} password The new password - * @returns {Promise} - * @example - * // set password - * client.user.setPassword('password123') - * .then(user => console.log('New password set!')) - * .catch(console.error); - */ - setPassword(password) { - return this.client.rest.methods.updateCurrentUser({ password }); - } - - /** - * Set the avatar of the logged in Client. - * @param {BufferResolvable|Base64Resolvable} avatar The new avatar - * @returns {Promise} - * @example - * // set avatar - * client.user.setAvatar('./avatar.png') - * .then(user => console.log(`New avatar set!`)) - * .catch(console.error); - */ - setAvatar(avatar) { - if (avatar.startsWith('data:')) { - return this.client.rest.methods.updateCurrentUser({ avatar }); - } else { - return this.client.resolver.resolveBuffer(avatar).then(data => - this.client.rest.methods.updateCurrentUser({ avatar: data }) - ); - } - } - - /** - * Set the status of the logged in user. - * @param {string} status can be `online`, `idle`, `invisible` or `dnd` (do not disturb) - * @returns {Promise} - */ - setStatus(status) { - return this.setPresence({ status }); - } - - /** - * Set the current game of the logged in user. - * @param {string} game the game being played - * @param {string} [streamingURL] an optional URL to a twitch stream, if one is available. - * @returns {Promise} - */ - setGame(game, streamingURL) { - return this.setPresence({ game: { - name: game, - url: streamingURL, - } }); - } - - /** - * Set/remove the AFK flag for the current user. - * @param {boolean} afk whether or not the user is AFK. - * @returns {Promise} - */ - setAFK(afk) { - return this.setPresence({ afk }); - } - - /** - * Send a friend request - * This is only available when using a user account. - * @param {UserResolvable} user The user to send the friend request to. - * @returns {Promise} The user the friend request was sent to. - */ - addFriend(user) { - user = this.client.resolver.resolveUser(user); - return this.client.rest.methods.addFriend(user); - } - - /** - * Remove a friend - * This is only available when using a user account. - * @param {UserResolvable} user The user to remove from your friends - * @returns {Promise} The user that was removed - */ - removeFriend(user) { - user = this.client.resolver.resolveUser(user); - return this.client.rest.methods.removeFriend(user); - } - - /** - * Creates a guild - * This is only available when using a user account. - * @param {string} name The name of the guild - * @param {string} region The region for the server - * @param {BufferResolvable|Base64Resolvable} [icon=null] The icon for the guild - * @returns {Promise} The guild that was created - */ - createGuild(name, region, icon = null) { - if (!icon) return this.client.rest.methods.createGuild({ name, icon, region }); - if (icon.startsWith('data:')) { - return this.client.rest.methods.createGuild({ name, icon, region }); - } else { - return this.client.resolver.resolveBuffer(icon).then(data => - this.client.rest.methods.createGuild({ name, icon: data, region }) - ); - } - } - - /** - * Set the full presence of the current user. - * @param {Object} data the data to provide - * @returns {Promise} - */ - setPresence(data) { - // {"op":3,"d":{"status":"dnd","since":0,"game":null,"afk":false}} - return new Promise(resolve => { - let status = this.localPresence.status || this.presence.status; - let game = this.localPresence.game; - let afk = this.localPresence.afk || this.presence.afk; - - if (!game && this.presence.game) { - game = { - name: this.presence.game.name, - type: this.presence.game.type, - url: this.presence.game.url, - }; - } - - if (data.status) { - if (typeof data.status !== 'string') throw new TypeError('Status must be a string'); - status = data.status; - } - - if (data.game) { - game = data.game; - if (game.url) game.type = 1; - } - - if (typeof data.afk !== 'undefined') afk = data.afk; - afk = Boolean(afk); - - this.localPresence = { status, game, afk }; - this.localPresence.since = 0; - this.localPresence.game = this.localPresence.game || null; - - this.client.ws.send({ - op: 3, - d: this.localPresence, - }); - - this.client._setPresence(this.id, this.localPresence); - - resolve(this); - }); - } -} - -module.exports = ClientUser; - - -/***/ }, -/* 138 */ +/* 140 */ /***/ function(module, exports, __webpack_require__) { ;(function () { @@ -28460,11 +28506,11 @@ module.exports = ClientUser; /***/ }, -/* 139 */ +/* 141 */ /***/ function(module, exports, __webpack_require__) { -var asn1 = __webpack_require__(32); -var inherits = __webpack_require__(1); +var asn1 = __webpack_require__(36); +var inherits = __webpack_require__(2); var api = exports; @@ -28483,7 +28529,7 @@ function Entity(name, body) { Entity.prototype._createNamed = function createNamed(base) { var named; try { - named = __webpack_require__(235).runInThisContext( + named = __webpack_require__(237).runInThisContext( '(function ' + this.name + '(entity) {\n' + ' this._initNamed(entity);\n' + '})' @@ -28527,13 +28573,13 @@ Entity.prototype.encode = function encode(data, enc, /* internal */ reporter) { /***/ }, -/* 140 */ +/* 142 */ /***/ function(module, exports, __webpack_require__) { -var Reporter = __webpack_require__(23).Reporter; -var EncoderBuffer = __webpack_require__(23).EncoderBuffer; -var DecoderBuffer = __webpack_require__(23).DecoderBuffer; -var assert = __webpack_require__(26); +var Reporter = __webpack_require__(26).Reporter; +var EncoderBuffer = __webpack_require__(26).EncoderBuffer; +var DecoderBuffer = __webpack_require__(26).DecoderBuffer; +var assert = __webpack_require__(29); // Supported tags var tags = [ @@ -29167,10 +29213,10 @@ Node.prototype._isPrintstr = function isPrintstr(str) { /***/ }, -/* 141 */ +/* 143 */ /***/ function(module, exports, __webpack_require__) { -var inherits = __webpack_require__(1); +var inherits = __webpack_require__(2); function Reporter(options) { this._reporterState = { @@ -29294,10 +29340,10 @@ ReporterError.prototype.rethrow = function rethrow(msg) { /***/ }, -/* 142 */ +/* 144 */ /***/ function(module, exports, __webpack_require__) { -var constants = __webpack_require__(81); +var constants = __webpack_require__(85); exports.tagClass = { 0: 'universal', @@ -29342,23 +29388,23 @@ exports.tagByName = constants._reverse(exports.tag); /***/ }, -/* 143 */ +/* 145 */ /***/ function(module, exports, __webpack_require__) { var decoders = exports; -decoders.der = __webpack_require__(82); -decoders.pem = __webpack_require__(144); +decoders.der = __webpack_require__(86); +decoders.pem = __webpack_require__(146); /***/ }, -/* 144 */ +/* 146 */ /***/ function(module, exports, __webpack_require__) { -var inherits = __webpack_require__(1); +var inherits = __webpack_require__(2); var Buffer = __webpack_require__(0).Buffer; -var DERDecoder = __webpack_require__(82); +var DERDecoder = __webpack_require__(86); function PEMDecoder(entity) { DERDecoder.call(this, entity); @@ -29407,22 +29453,22 @@ PEMDecoder.prototype.decode = function decode(data, options) { /***/ }, -/* 145 */ +/* 147 */ /***/ function(module, exports, __webpack_require__) { var encoders = exports; -encoders.der = __webpack_require__(83); -encoders.pem = __webpack_require__(146); +encoders.der = __webpack_require__(87); +encoders.pem = __webpack_require__(148); /***/ }, -/* 146 */ +/* 148 */ /***/ function(module, exports, __webpack_require__) { -var inherits = __webpack_require__(1); +var inherits = __webpack_require__(2); -var DEREncoder = __webpack_require__(83); +var DEREncoder = __webpack_require__(87); function PEMEncoder(entity) { DEREncoder.call(this, entity); @@ -29444,7 +29490,7 @@ PEMEncoder.prototype.encode = function encode(data, options) { /***/ }, -/* 147 */ +/* 149 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -29516,7 +29562,7 @@ function isBuffer(b) { // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -var util = __webpack_require__(8); +var util = __webpack_require__(10); var hasOwn = Object.prototype.hasOwnProperty; var pSlice = Array.prototype.slice; var functionsHaveNames = (function () { @@ -29939,10 +29985,10 @@ var objectKeys = Object.keys || function (obj) { return keys; }; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(16))) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(19))) /***/ }, -/* 148 */ +/* 150 */ /***/ function(module, exports) { "use strict"; @@ -30063,16 +30109,16 @@ function fromByteArray (uint8) { /***/ }, -/* 149 */ +/* 151 */ /***/ function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(Buffer) {var aes = __webpack_require__(33) -var Transform = __webpack_require__(17) -var inherits = __webpack_require__(1) -var modes = __webpack_require__(34) -var StreamCipher = __webpack_require__(94) -var AuthCipher = __webpack_require__(87) -var ebtk = __webpack_require__(37) +/* WEBPACK VAR INJECTION */(function(Buffer) {var aes = __webpack_require__(37) +var Transform = __webpack_require__(21) +var inherits = __webpack_require__(2) +var modes = __webpack_require__(38) +var StreamCipher = __webpack_require__(98) +var AuthCipher = __webpack_require__(91) +var ebtk = __webpack_require__(41) inherits(Decipher, Transform) function Decipher (mode, key, iv) { @@ -30158,14 +30204,14 @@ function unpad (last) { } var modelist = { - ECB: __webpack_require__(92), - CBC: __webpack_require__(88), - CFB: __webpack_require__(89), - CFB8: __webpack_require__(91), - CFB1: __webpack_require__(90), - OFB: __webpack_require__(93), - CTR: __webpack_require__(35), - GCM: __webpack_require__(35) + ECB: __webpack_require__(96), + CBC: __webpack_require__(92), + CFB: __webpack_require__(93), + CFB8: __webpack_require__(95), + CFB1: __webpack_require__(94), + OFB: __webpack_require__(97), + CTR: __webpack_require__(39), + GCM: __webpack_require__(39) } function createDecipheriv (suite, password, iv) { @@ -30207,16 +30253,16 @@ exports.createDecipheriv = createDecipheriv /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 150 */ +/* 152 */ /***/ function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(Buffer) {var aes = __webpack_require__(33) -var Transform = __webpack_require__(17) -var inherits = __webpack_require__(1) -var modes = __webpack_require__(34) -var ebtk = __webpack_require__(37) -var StreamCipher = __webpack_require__(94) -var AuthCipher = __webpack_require__(87) +/* WEBPACK VAR INJECTION */(function(Buffer) {var aes = __webpack_require__(37) +var Transform = __webpack_require__(21) +var inherits = __webpack_require__(2) +var modes = __webpack_require__(38) +var ebtk = __webpack_require__(41) +var StreamCipher = __webpack_require__(98) +var AuthCipher = __webpack_require__(91) inherits(Cipher, Transform) function Cipher (mode, key, iv) { if (!(this instanceof Cipher)) { @@ -30287,14 +30333,14 @@ Splitter.prototype.flush = function () { return out } var modelist = { - ECB: __webpack_require__(92), - CBC: __webpack_require__(88), - CFB: __webpack_require__(89), - CFB8: __webpack_require__(91), - CFB1: __webpack_require__(90), - OFB: __webpack_require__(93), - CTR: __webpack_require__(35), - GCM: __webpack_require__(35) + ECB: __webpack_require__(96), + CBC: __webpack_require__(92), + CFB: __webpack_require__(93), + CFB8: __webpack_require__(95), + CFB1: __webpack_require__(94), + OFB: __webpack_require__(97), + CTR: __webpack_require__(39), + GCM: __webpack_require__(39) } function createCipheriv (suite, password, iv) { @@ -30336,7 +30382,7 @@ exports.createCipher = createCipher /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 151 */ +/* 153 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(Buffer) {var zeros = new Buffer(16) @@ -30441,14 +30487,14 @@ function xor (a, b) { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 152 */ +/* 154 */ /***/ function(module, exports, __webpack_require__) { -var ebtk = __webpack_require__(37) -var aes = __webpack_require__(47) -var DES = __webpack_require__(153) -var desModes = __webpack_require__(154) -var aesModes = __webpack_require__(34) +var ebtk = __webpack_require__(41) +var aes = __webpack_require__(50) +var DES = __webpack_require__(155) +var desModes = __webpack_require__(156) +var aesModes = __webpack_require__(38) function createCipher (suite, password) { var keyLen, ivLen suite = suite.toLowerCase() @@ -30520,12 +30566,12 @@ exports.listCiphers = exports.getCiphers = getCiphers /***/ }, -/* 153 */ +/* 155 */ /***/ function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(Buffer) {var CipherBase = __webpack_require__(17) -var des = __webpack_require__(51) -var inherits = __webpack_require__(1) +/* WEBPACK VAR INJECTION */(function(Buffer) {var CipherBase = __webpack_require__(21) +var des = __webpack_require__(54) +var inherits = __webpack_require__(2) var modes = { 'des-ede3-cbc': des.CBC.instantiate(des.EDE), @@ -30570,7 +30616,7 @@ DES.prototype._final = function () { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 154 */ +/* 156 */ /***/ function(module, exports) { exports['des-ecb'] = { @@ -30600,15 +30646,15 @@ exports['des-ede'] = { /***/ }, -/* 155 */ +/* 157 */ /***/ function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(Buffer) {var _algos = __webpack_require__(95) -var createHash = __webpack_require__(18) -var inherits = __webpack_require__(1) -var sign = __webpack_require__(156) -var stream = __webpack_require__(9) -var verify = __webpack_require__(157) +/* WEBPACK VAR INJECTION */(function(Buffer) {var _algos = __webpack_require__(99) +var createHash = __webpack_require__(22) +var inherits = __webpack_require__(2) +var sign = __webpack_require__(158) +var stream = __webpack_require__(11) +var verify = __webpack_require__(159) var algos = {} Object.keys(_algos).forEach(function (key) { @@ -30710,17 +30756,17 @@ module.exports = { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 156 */ +/* 158 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(Buffer) {// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js -var createHmac = __webpack_require__(50) -var crt = __webpack_require__(48) -var curves = __webpack_require__(96) -var elliptic = __webpack_require__(7) -var parseKeys = __webpack_require__(39) +var createHmac = __webpack_require__(53) +var crt = __webpack_require__(51) +var curves = __webpack_require__(100) +var elliptic = __webpack_require__(9) +var parseKeys = __webpack_require__(43) -var BN = __webpack_require__(4) +var BN = __webpack_require__(7) var EC = elliptic.ec function sign (hash, key, hashType, signType) { @@ -30902,15 +30948,15 @@ module.exports.makeKey = makeKey /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 157 */ +/* 159 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(Buffer) {// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js -var curves = __webpack_require__(96) -var elliptic = __webpack_require__(7) -var parseKeys = __webpack_require__(39) +var curves = __webpack_require__(100) +var elliptic = __webpack_require__(9) +var parseKeys = __webpack_require__(43) -var BN = __webpack_require__(4) +var BN = __webpack_require__(7) var EC = elliptic.ec function verify (sig, hash, key, signType) { @@ -31012,14 +31058,14 @@ module.exports = verify /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 158 */ +/* 160 */ /***/ function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(process, Buffer) {var msg = __webpack_require__(107); -var zstream = __webpack_require__(211); -var zlib_deflate = __webpack_require__(206); -var zlib_inflate = __webpack_require__(208); -var constants = __webpack_require__(205); +/* WEBPACK VAR INJECTION */(function(process, Buffer) {var msg = __webpack_require__(111); +var zstream = __webpack_require__(213); +var zlib_deflate = __webpack_require__(208); +var zlib_inflate = __webpack_require__(210); +var constants = __webpack_require__(207); for (var key in constants) { exports[key] = constants[key]; @@ -31252,10 +31298,10 @@ Zlib.prototype._error = function(status) { exports.Zlib = Zlib; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5), __webpack_require__(0).Buffer)) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(8), __webpack_require__(0).Buffer)) /***/ }, -/* 159 */ +/* 161 */ /***/ function(module, exports) { "use strict"; @@ -31319,21 +31365,21 @@ module.exports.BufferUtil = { /***/ }, -/* 160 */ +/* 162 */ /***/ function(module, exports, __webpack_require__) { "use strict"; 'use strict'; try { - module.exports = __webpack_require__(85)('bufferutil'); + module.exports = __webpack_require__(89)('bufferutil'); } catch (e) { - module.exports = __webpack_require__(159); + module.exports = __webpack_require__(161); } /***/ }, -/* 161 */ +/* 163 */ /***/ function(module, exports, __webpack_require__) { @@ -31502,11 +31548,11 @@ Emitter.prototype.hasListeners = function(event){ /***/ }, -/* 162 */ +/* 164 */ /***/ function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(Buffer) {var elliptic = __webpack_require__(7); -var BN = __webpack_require__(4); +/* WEBPACK VAR INJECTION */(function(Buffer) {var elliptic = __webpack_require__(9); +var BN = __webpack_require__(7); module.exports = function createECDH(curve) { return new ECDH(curve); @@ -31631,7 +31677,7 @@ function formatReturnValue(bn, enc, len) { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 163 */ +/* 165 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -31672,7 +31718,7 @@ exports.hash = hash; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 164 */ +/* 166 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(Buffer) {/* @@ -31889,7 +31935,7 @@ module.exports = ripemd160 /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 165 */ +/* 167 */ /***/ function(module, exports, __webpack_require__) { var exports = module.exports = function SHA (algorithm) { @@ -31901,16 +31947,16 @@ var exports = module.exports = function SHA (algorithm) { return new Algorithm() } -exports.sha = __webpack_require__(166) -exports.sha1 = __webpack_require__(167) -exports.sha224 = __webpack_require__(168) -exports.sha256 = __webpack_require__(99) -exports.sha384 = __webpack_require__(169) -exports.sha512 = __webpack_require__(100) +exports.sha = __webpack_require__(168) +exports.sha1 = __webpack_require__(169) +exports.sha224 = __webpack_require__(170) +exports.sha256 = __webpack_require__(103) +exports.sha384 = __webpack_require__(171) +exports.sha512 = __webpack_require__(104) /***/ }, -/* 166 */ +/* 168 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(Buffer) {/* @@ -31921,8 +31967,8 @@ exports.sha512 = __webpack_require__(100) * operation was added. */ -var inherits = __webpack_require__(1) -var Hash = __webpack_require__(19) +var inherits = __webpack_require__(2) +var Hash = __webpack_require__(23) var K = [ 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0 @@ -32010,7 +32056,7 @@ module.exports = Sha /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 167 */ +/* 169 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(Buffer) {/* @@ -32022,8 +32068,8 @@ module.exports = Sha * See http://pajhome.org.uk/crypt/md5 for details. */ -var inherits = __webpack_require__(1) -var Hash = __webpack_require__(19) +var inherits = __webpack_require__(2) +var Hash = __webpack_require__(23) var K = [ 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0 @@ -32115,7 +32161,7 @@ module.exports = Sha1 /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 168 */ +/* 170 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(Buffer) {/** @@ -32126,9 +32172,9 @@ module.exports = Sha1 * */ -var inherits = __webpack_require__(1) -var Sha256 = __webpack_require__(99) -var Hash = __webpack_require__(19) +var inherits = __webpack_require__(2) +var Sha256 = __webpack_require__(103) +var Hash = __webpack_require__(23) var W = new Array(64) @@ -32174,12 +32220,12 @@ module.exports = Sha224 /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 169 */ +/* 171 */ /***/ function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(Buffer) {var inherits = __webpack_require__(1) -var SHA512 = __webpack_require__(100) -var Hash = __webpack_require__(19) +/* WEBPACK VAR INJECTION */(function(Buffer) {var inherits = __webpack_require__(2) +var SHA512 = __webpack_require__(104) +var Hash = __webpack_require__(23) var W = new Array(160) @@ -32237,14 +32283,14 @@ module.exports = Sha384 /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 170 */ +/* 172 */ /***/ function(module, exports, __webpack_require__) { "use strict"; 'use strict'; -var assert = __webpack_require__(26); -var inherits = __webpack_require__(1); +var assert = __webpack_require__(29); +var inherits = __webpack_require__(2); var proto = {}; @@ -32309,13 +32355,13 @@ proto._update = function _update(inp, inOff, out, outOff) { /***/ }, -/* 171 */ +/* 173 */ /***/ function(module, exports, __webpack_require__) { "use strict"; 'use strict'; -var assert = __webpack_require__(26); +var assert = __webpack_require__(29); function Cipher(options) { this.options = options; @@ -32457,16 +32503,16 @@ Cipher.prototype._finalDecrypt = function _finalDecrypt() { /***/ }, -/* 172 */ +/* 174 */ /***/ function(module, exports, __webpack_require__) { "use strict"; 'use strict'; -var assert = __webpack_require__(26); -var inherits = __webpack_require__(1); +var assert = __webpack_require__(29); +var inherits = __webpack_require__(2); -var des = __webpack_require__(51); +var des = __webpack_require__(54); var utils = des.utils; var Cipher = des.Cipher; @@ -32607,16 +32653,16 @@ DES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) { /***/ }, -/* 173 */ +/* 175 */ /***/ function(module, exports, __webpack_require__) { "use strict"; 'use strict'; -var assert = __webpack_require__(26); -var inherits = __webpack_require__(1); +var assert = __webpack_require__(29); +var inherits = __webpack_require__(2); -var des = __webpack_require__(51); +var des = __webpack_require__(54); var Cipher = des.Cipher; var DES = des.DES; @@ -32669,7 +32715,7 @@ EDE.prototype._unpad = DES.prototype._unpad; /***/ }, -/* 174 */ +/* 176 */ /***/ function(module, exports) { "use strict"; @@ -32932,13 +32978,13 @@ exports.padSplit = function padSplit(num, size, group) { /***/ }, -/* 175 */ +/* 177 */ /***/ function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(Buffer) {var generatePrime = __webpack_require__(101) -var primes = __webpack_require__(200) +/* WEBPACK VAR INJECTION */(function(Buffer) {var generatePrime = __webpack_require__(105) +var primes = __webpack_require__(202) -var DH = __webpack_require__(176) +var DH = __webpack_require__(178) function getDiffieHellman (mod) { var prime = new Buffer(primes[mod].prime, 'hex') @@ -32981,19 +33027,19 @@ exports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 176 */ +/* 178 */ /***/ function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(Buffer) {var BN = __webpack_require__(4); -var MillerRabin = __webpack_require__(103); +/* WEBPACK VAR INJECTION */(function(Buffer) {var BN = __webpack_require__(7); +var MillerRabin = __webpack_require__(107); var millerRabin = new MillerRabin(); var TWENTYFOUR = new BN(24); var ELEVEN = new BN(11); var TEN = new BN(10); var THREE = new BN(3); var SEVEN = new BN(7); -var primes = __webpack_require__(101); -var randomBytes = __webpack_require__(27); +var primes = __webpack_require__(105); +var randomBytes = __webpack_require__(30); module.exports = DH; function setPublicKey(pub, enc) { @@ -33152,14 +33198,14 @@ function formatReturnValue(bn, enc) { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 177 */ +/* 179 */ /***/ function(module, exports, __webpack_require__) { "use strict"; 'use strict'; -var BN = __webpack_require__(4); -var elliptic = __webpack_require__(7); +var BN = __webpack_require__(7); +var elliptic = __webpack_require__(9); var utils = elliptic.utils; var getNAF = utils.getNAF; var getJSF = utils.getJSF; @@ -33534,16 +33580,16 @@ BasePoint.prototype.dblp = function dblp(k) { /***/ }, -/* 178 */ +/* 180 */ /***/ function(module, exports, __webpack_require__) { "use strict"; 'use strict'; -var curve = __webpack_require__(36); -var elliptic = __webpack_require__(7); -var BN = __webpack_require__(4); -var inherits = __webpack_require__(1); +var curve = __webpack_require__(40); +var elliptic = __webpack_require__(9); +var BN = __webpack_require__(7); +var inherits = __webpack_require__(2); var Base = curve.base; var assert = elliptic.utils.assert; @@ -33974,18 +34020,18 @@ Point.prototype.mixedAdd = Point.prototype.add; /***/ }, -/* 179 */ +/* 181 */ /***/ function(module, exports, __webpack_require__) { "use strict"; 'use strict'; -var curve = __webpack_require__(36); -var BN = __webpack_require__(4); -var inherits = __webpack_require__(1); +var curve = __webpack_require__(40); +var BN = __webpack_require__(7); +var inherits = __webpack_require__(2); var Base = curve.base; -var elliptic = __webpack_require__(7); +var elliptic = __webpack_require__(9); var utils = elliptic.utils; function MontCurve(conf) { @@ -34161,16 +34207,16 @@ Point.prototype.getX = function getX() { /***/ }, -/* 180 */ +/* 182 */ /***/ function(module, exports, __webpack_require__) { "use strict"; 'use strict'; -var curve = __webpack_require__(36); -var elliptic = __webpack_require__(7); -var BN = __webpack_require__(4); -var inherits = __webpack_require__(1); +var curve = __webpack_require__(40); +var elliptic = __webpack_require__(9); +var BN = __webpack_require__(7); +var inherits = __webpack_require__(2); var Base = curve.base; var assert = elliptic.utils.assert; @@ -35106,7 +35152,7 @@ JPoint.prototype.isInfinity = function isInfinity() { /***/ }, -/* 181 */ +/* 183 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -35114,8 +35160,8 @@ JPoint.prototype.isInfinity = function isInfinity() { var curves = exports; -var hash = __webpack_require__(13); -var elliptic = __webpack_require__(7); +var hash = __webpack_require__(16); +var elliptic = __webpack_require__(9); var assert = elliptic.utils.assert; @@ -35279,7 +35325,7 @@ defineCurve('ed25519', { var pre; try { - pre = __webpack_require__(189); + pre = __webpack_require__(191); } catch (e) { pre = undefined; } @@ -35318,19 +35364,19 @@ defineCurve('secp256k1', { /***/ }, -/* 182 */ +/* 184 */ /***/ function(module, exports, __webpack_require__) { "use strict"; 'use strict'; -var BN = __webpack_require__(4); -var elliptic = __webpack_require__(7); +var BN = __webpack_require__(7); +var elliptic = __webpack_require__(9); var utils = elliptic.utils; var assert = utils.assert; -var KeyPair = __webpack_require__(183); -var Signature = __webpack_require__(184); +var KeyPair = __webpack_require__(185); +var Signature = __webpack_require__(186); function EC(options) { if (!(this instanceof EC)) @@ -35562,13 +35608,13 @@ EC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) { /***/ }, -/* 183 */ +/* 185 */ /***/ function(module, exports, __webpack_require__) { "use strict"; 'use strict'; -var BN = __webpack_require__(4); +var BN = __webpack_require__(7); function KeyPair(ec, options) { this.ec = ec; @@ -35676,15 +35722,15 @@ KeyPair.prototype.inspect = function inspect() { /***/ }, -/* 184 */ +/* 186 */ /***/ function(module, exports, __webpack_require__) { "use strict"; 'use strict'; -var BN = __webpack_require__(4); +var BN = __webpack_require__(7); -var elliptic = __webpack_require__(7); +var elliptic = __webpack_require__(9); var utils = elliptic.utils; var assert = utils.assert; @@ -35818,19 +35864,19 @@ Signature.prototype.toDER = function toDER(enc) { /***/ }, -/* 185 */ +/* 187 */ /***/ function(module, exports, __webpack_require__) { "use strict"; 'use strict'; -var hash = __webpack_require__(13); -var elliptic = __webpack_require__(7); +var hash = __webpack_require__(16); +var elliptic = __webpack_require__(9); var utils = elliptic.utils; var assert = utils.assert; var parseBytes = utils.parseBytes; -var KeyPair = __webpack_require__(186); -var Signature = __webpack_require__(187); +var KeyPair = __webpack_require__(188); +var Signature = __webpack_require__(189); function EDDSA(curve) { assert(curve === 'ed25519', 'only tested with ed25519 so far'); @@ -35943,13 +35989,13 @@ EDDSA.prototype.isPoint = function isPoint(val) { /***/ }, -/* 186 */ +/* 188 */ /***/ function(module, exports, __webpack_require__) { "use strict"; 'use strict'; -var elliptic = __webpack_require__(7); +var elliptic = __webpack_require__(9); var utils = elliptic.utils; var assert = utils.assert; var parseBytes = utils.parseBytes; @@ -36046,14 +36092,14 @@ module.exports = KeyPair; /***/ }, -/* 187 */ +/* 189 */ /***/ function(module, exports, __webpack_require__) { "use strict"; 'use strict'; -var BN = __webpack_require__(4); -var elliptic = __webpack_require__(7); +var BN = __webpack_require__(7); +var elliptic = __webpack_require__(9); var utils = elliptic.utils; var assert = utils.assert; var cachedProperty = utils.cachedProperty; @@ -36119,14 +36165,14 @@ module.exports = Signature; /***/ }, -/* 188 */ +/* 190 */ /***/ function(module, exports, __webpack_require__) { "use strict"; 'use strict'; -var hash = __webpack_require__(13); -var elliptic = __webpack_require__(7); +var hash = __webpack_require__(16); +var elliptic = __webpack_require__(9); var utils = elliptic.utils; var assert = utils.assert; @@ -36240,7 +36286,7 @@ HmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) { /***/ }, -/* 189 */ +/* 191 */ /***/ function(module, exports) { module.exports = { @@ -37026,14 +37072,14 @@ module.exports = { /***/ }, -/* 190 */ +/* 192 */ /***/ function(module, exports, __webpack_require__) { "use strict"; 'use strict'; var utils = exports; -var BN = __webpack_require__(4); +var BN = __webpack_require__(7); utils.assert = function assert(val, msg) { if (!val) @@ -37205,10 +37251,10 @@ utils.intFromLE = intFromLE; /***/ }, -/* 191 */ +/* 193 */ /***/ function(module, exports, __webpack_require__) { -var hash = __webpack_require__(13); +var hash = __webpack_require__(16); var utils = hash.utils; var assert = utils.assert; @@ -37302,12 +37348,12 @@ BlockHash.prototype._pad = function pad() { /***/ }, -/* 192 */ +/* 194 */ /***/ function(module, exports, __webpack_require__) { var hmac = exports; -var hash = __webpack_require__(13); +var hash = __webpack_require__(16); var utils = hash.utils; var assert = utils.assert; @@ -37356,10 +37402,10 @@ Hmac.prototype.digest = function digest(enc) { /***/ }, -/* 193 */ +/* 195 */ /***/ function(module, exports, __webpack_require__) { -var hash = __webpack_require__(13); +var hash = __webpack_require__(16); var utils = hash.utils; var rotl32 = utils.rotl32; @@ -37506,10 +37552,10 @@ var sh = [ /***/ }, -/* 194 */ +/* 196 */ /***/ function(module, exports, __webpack_require__) { -var hash = __webpack_require__(13); +var hash = __webpack_require__(16); var utils = hash.utils; var assert = utils.assert; @@ -38076,11 +38122,11 @@ function g1_512_lo(xh, xl) { /***/ }, -/* 195 */ +/* 197 */ /***/ function(module, exports, __webpack_require__) { var utils = exports; -var inherits = __webpack_require__(1); +var inherits = __webpack_require__(2); function toArray(msg, enc) { if (Array.isArray(msg)) @@ -38339,13 +38385,13 @@ exports.shr64_lo = shr64_lo; /***/ }, -/* 196 */ +/* 198 */ /***/ function(module, exports, __webpack_require__) { -var Stream = __webpack_require__(9); -var Response = __webpack_require__(197); -var Base64 = __webpack_require__(138); -var inherits = __webpack_require__(1); +var Stream = __webpack_require__(11); +var Response = __webpack_require__(199); +var Base64 = __webpack_require__(140); +var inherits = __webpack_require__(2); var Request = module.exports = function (xhr, params) { var self = this; @@ -38554,11 +38600,11 @@ var isXHR2Compatible = function (obj) { /***/ }, -/* 197 */ +/* 199 */ /***/ function(module, exports, __webpack_require__) { -var Stream = __webpack_require__(9); -var util = __webpack_require__(8); +var Stream = __webpack_require__(11); +var util = __webpack_require__(10); var Response = module.exports = function (res) { this.offset = 0; @@ -38680,7 +38726,7 @@ var isArray = Array.isArray || function (xs) { /***/ }, -/* 198 */ +/* 200 */ /***/ function(module, exports) { exports.read = function (buffer, offset, isLE, mLen, nBytes) { @@ -38770,7 +38816,7 @@ exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { /***/ }, -/* 199 */ +/* 201 */ /***/ function(module, exports) { @@ -38785,7 +38831,7 @@ module.exports = function(arr, obj){ }; /***/ }, -/* 200 */ +/* 202 */ /***/ function(module, exports) { module.exports = { @@ -38824,7 +38870,7 @@ module.exports = { }; /***/ }, -/* 201 */ +/* 203 */ /***/ function(module, exports) { module.exports = { @@ -38947,7 +38993,7 @@ module.exports = { }; /***/ }, -/* 202 */ +/* 204 */ /***/ function(module, exports) { module.exports = { @@ -38966,10 +39012,10 @@ module.exports = { }; /***/ }, -/* 203 */ +/* 205 */ /***/ function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(process, __dirname) {var Module;if(!Module)Module=(typeof Module!=="undefined"?Module:null)||{};var moduleOverrides={};for(var key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;if(Module["ENVIRONMENT"]){if(Module["ENVIRONMENT"]==="WEB"){ENVIRONMENT_IS_WEB=true}else if(Module["ENVIRONMENT"]==="WORKER"){ENVIRONMENT_IS_WORKER=true}else if(Module["ENVIRONMENT"]==="NODE"){ENVIRONMENT_IS_NODE=true}else if(Module["ENVIRONMENT"]==="SHELL"){ENVIRONMENT_IS_SHELL=true}else{throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.")}}else{ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&"function"==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER}if(ENVIRONMENT_IS_NODE){if(!Module["print"])Module["print"]=console.log;if(!Module["printErr"])Module["printErr"]=console.warn;var nodeFS;var nodePath;Module["read"]=function read(filename,binary){if(!nodeFS)nodeFS=__webpack_require__(10);if(!nodePath)nodePath=__webpack_require__(14);filename=nodePath["normalize"](filename);var ret=nodeFS["readFileSync"](filename);if(!ret&&filename!=nodePath["resolve"](filename)){filename=path.join(__dirname,"..","src",filename);ret=nodeFS["readFileSync"](filename)}if(ret&&!binary)ret=ret.toString();return ret};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};Module["load"]=function load(f){globalEval(read(f))};if(!Module["thisProgram"]){if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}else{Module["thisProgram"]="unknown-program"}}Module["arguments"]=process["argv"].slice(2);if(true){module["exports"]=Module}Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function read(){throw"no read() available (jsc?)"}}Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}var data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};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)}else{onerror()}};xhr.onerror=onerror;xhr.send(null)};if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof console!=="undefined"){if(!Module["print"])Module["print"]=function print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function printErr(x){console.warn(x)}}else{var TRY_USE_DUMP=false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?(function(x){dump(x)}):(function(x){})}if(ENVIRONMENT_IS_WORKER){Module["load"]=importScripts}if(typeof Module["setWindowTitle"]==="undefined"){Module["setWindowTitle"]=(function(title){document.title=title})}}else{throw"Unknown runtime environment. Where are we?"}function globalEval(x){eval.call(null,x)}if(!Module["load"]&&Module["read"]){Module["load"]=function load(f){globalEval(Module["read"](f))}}if(!Module["print"]){Module["print"]=(function(){})}if(!Module["printErr"]){Module["printErr"]=Module["print"]}if(!Module["arguments"]){Module["arguments"]=[]}if(!Module["thisProgram"]){Module["thisProgram"]="./this.program"}Module.print=Module["print"];Module.printErr=Module["printErr"];Module["preRun"]=[];Module["postRun"]=[];for(var key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var Runtime={setTempRet0:(function(value){tempRet0=value}),getTempRet0:(function(){return tempRet0}),stackSave:(function(){return STACKTOP}),stackRestore:(function(stackTop){STACKTOP=stackTop}),getNativeTypeSize:(function(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return Runtime.QUANTUM_SIZE}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}),getNativeFieldSize:(function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)}),STACK_ALIGN:16,prepVararg:(function(ptr,type){if(type==="double"||type==="i64"){if(ptr&7){assert((ptr&7)===4);ptr+=4}}else{assert((ptr&3)===0)}return ptr}),getAlignSize:(function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)}),dynCall:(function(sig,ptr,args){if(args&&args.length){if(!args.splice)args=Array.prototype.slice.call(args);args.splice(0,0,ptr);return Module["dynCall_"+sig].apply(null,args)}else{return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i=TOTAL_MEMORY){var success=enlargeMemory();if(!success){DYNAMICTOP=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];if(!func){try{func=eval("_"+ident)}catch(e){}}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var ccall;((function(){var JSfuncs={"stackSave":(function(){Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore()}),"arrayToC":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=Runtime.stackAlloc((str.length<<2)+1);writeStringToMemory(str,ret)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}Module["setValue"]=setValue;function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;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:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var ptr=ret,stop;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr>2]=0}stop=ret+size;while(ptr>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}function UTF8ArrayToString(u8Array,idx){var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}function demangle(func){var hasLibcxxabi=!!Module["___cxa_demangle"];if(hasLibcxxabi){try{var buf=_malloc(func.length);writeStringToMemory(func.substr(1),buf);var status=_malloc(4);var ret=Module["___cxa_demangle"](buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){return func}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}}Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling");return func}function demangleAll(text){return text.replace(/__Z[\w\d_]+/g,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){return demangleAll(jsStackTrace())}var PAGE_SIZE=4096;function alignMemoryPage(x){if(x%4096>0){x+=4096-x%4096}return x}var HEAP;var buffer;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;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=0,STATICTOP=0,staticSealed=false;var STACK_BASE=0,STACKTOP=0,STACK_MAX=0;var DYNAMIC_BASE=0,DYNAMICTOP=0;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;var totalMemory=64*1024;while(totalMemory0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Runtime.dynCall("v",func)}else{Runtime.dynCall("vi",func,[callback.arg])}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}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 writeStringToMemory(string,buffer,dontAddNull){var array=intArrayFromString(string,dontAddNull);var i=0;while(i>0]=chr;i=i+1}}function writeArrayToMemory(array,buffer){for(var i=0;i>0]=array[i]}}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math["imul"];if(!Math["clz32"])Math["clz32"]=(function(x){x=x>>>0;for(var i=0;i<32;i++){if(x&1<<31-i)return i}return 32});Math.clz32=Math["clz32"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_min=Math.min;var Math_clz32=Math.clz32;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;Module["preloadedImages"]={};Module["preloadedAudios"]={};var ASM_CONSTS=[];STATIC_BASE=8;STATICTOP=STATIC_BASE+35488;__ATINIT__.push({func:(function(){__GLOBAL__sub_I_opusscript_encoder_cpp()})},{func:(function(){__GLOBAL__sub_I_bind_cpp()})});allocate([32,90,0,0,152,108,0,0,160,90,0,0,172,108,0,0,0,0,0,0,8,0,0,0,160,90,0,0,193,108,0,0,1,0,0,0,8,0,0,0,188,90,0,0,7,130,0,0,0,0,0,0,1,0,0,0,72,0,0,0,0,0,0,0,32,90,0,0,70,130,0,0,188,90,0,0,120,130,0,0,0,0,0,0,1,0,0,0,72,0,0,0,0,0,0,0,188,90,0,0,216,130,0,0,0,0,0,0,1,0,0,0,72,0,0,0,0,0,0,0,32,90,0,0,36,131,0,0,32,90,0,0,71,131,0,0,32,90,0,0,132,131,0,0,32,90,0,0,200,131,0,0,32,90,0,0,14,132,0,0,32,90,0,0,76,132,0,0,32,90,0,0,147,132,0,0,32,90,0,0,207,132,0,0,32,90,0,0,20,133,0,0,32,90,0,0,81,133,0,0,32,90,0,0,94,134,0,0,32,90,0,0,156,134,0,0,32,90,0,0,219,134,0,0,32,90,0,0,148,135,0,0,72,90,0,0,114,135,0,0,16,1,0,0,0,0,0,0,72,90,0,0,31,135,0,0,240,0,0,0,0,0,0,0,72,90,0,0,68,135,0,0,32,1,0,0,0,0,0,0,32,90,0,0,101,135,0,0,72,90,0,0,161,135,0,0,232,0,0,0,0,0,0,0,72,90,0,0,225,135,0,0,16,1,0,0,0,0,0,0,72,90,0,0,189,135,0,0,56,1,0,0,0,0,0,0,72,90,0,0,3,136,0,0,16,1,0,0,0,0,0,0,132,90,0,0,43,136,0,0,132,90,0,0,45,136,0,0,132,90,0,0,48,136,0,0,132,90,0,0,50,136,0,0,132,90,0,0,52,136,0,0,132,90,0,0,54,136,0,0,132,90,0,0,56,136,0,0,132,90,0,0,58,136,0,0,132,90,0,0,60,136,0,0,132,90,0,0,62,136,0,0,132,90,0,0,64,136,0,0,132,90,0,0,66,136,0,0,132,90,0,0,68,136,0,0,132,90,0,0,70,136,0,0,72,90,0,0,72,136,0,0,240,0,0,0,0,0,0,0,16,0,0,0,168,1,0,0,168,1,0,0,168,1,0,0,168,1,0,0,16,0,0,0,168,1,0,0,168,1,0,0,168,1,0,0,168,1,0,0,168,1,0,0,16,0,0,0,168,1,0,0,168,1,0,0,168,1,0,0,0,0,157,62,0,64,94,62,0,192,4,62,0,128,237,62,0,64,137,62,0,0,0,0,0,192,76,63,0,0,205,61,0,0,0,0,34,109,0,0,42,109,0,0,59,109,0,0,76,109,0,0,91,109,0,0,108,109,0,0,132,109,0,0,146,109,0,0,16,39,0,0,232,3,0,0,248,42,0,0,232,3,0,0,188,52,0,0,232,3,0,0,176,54,0,0,208,7,0,0,224,46,0,0,232,3,0,0,176,54,0,0,232,3,0,0,128,62,0,0,232,3,0,0,32,78,0,0,232,3,0,0,240,85,0,0,232,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,46,0,0,16,39,0,0,16,39,0,0,248,42,0,0,248,42,0,0,128,62,0,0,188,52,0,0,188,52,0,0,152,58,0,0,152,58,0,0,32,78,0,0,128,62,0,0,128,62,0,0,80,70,0,0,80,70,0,0,192,93,0,0,80,70,0,0,80,70,0,0,8,82,0,0,8,82,0,0,0,125,0,0,240,85,0,0,240,85,0,0,96,109,0,0,96,109,0,0,0,250,0,0,112,148,0,0,112,148,0,0,80,195,0,0,80,195,0,0,230,90,52,56,119,78,51,57,211,217,201,57,146,145,51,58,204,96,140,58,97,251,201,58,153,126,9,59,203,128,51,59,213,37,99,59,119,46,140,59,168,138,169,59,69,184,201,59,135,166,236,59,232,46,9,60,174,102,29,60,247,2,51,60,147,255,73,60,79,88,98,60,94,17,124,60,46,145,139,60,189,199,153,60,92,172,168,60,243,60,184,60,129,121,200,60,238,95,217,60,57,240,234,60,99,42,253,60,53,7,8,61,16,204,17,61,205,228,27,61,97,80,38,61,203,14,49,61,0,31,60,61,254,128,71,61,198,52,83,61,63,56,95,61,105,139,107,61,69,46,120,61,105,144,130,61,123,48,137,61,224,247,143,61,138,229,150,61,123,249,157,61,177,51,165,61,33,147,172,61,80,24,180,61,51,194,187,61,79,145,195,61,18,132,203,61,2,155,211,61,31,214,219,61,215,51,228,61,175,180,236,61,33,88,245,61,168,29,254,61,161,130,3,62,242,6,8,62,199,155,12,62,221,64,17,62,52,246,21,62,69,187,26,62,17,144,31,62,84,116,36,62,203,103,41,62,51,106,46,62,141,123,51,62,82,155,56,62,197,201,61,62,28,6,67,62,89,80,72,62,122,168,77,62,183,13,83,62,82,128,88,62,8,0,94,62,84,140,99,62,242,36,105,62,37,202,110,62,36,123,116,62,172,55,122,62,0,0,128,62,171,233,130,62,249,216,133,62,133,205,136,62,80,199,139,62,55,198,142,62,247,201,145,62,179,210,148,62,38,224,151,62,15,242,154,62,108,8,158,62,28,35,161,62,255,65,164,62,208,100,167,62,177,139,170,62,28,182,173,62,84,228,176,62,211,21,180,62,186,74,183,62,232,130,186,62,249,189,189,62,13,252,192,62,226,60,196,62,86,128,199,62,71,198,202,62,149,14,206,62,251,88,209,62,122,165,212,62,241,243,215,62,28,68,219,62,217,149,222,62,8,233,225,62,167,61,229,62,83,147,232,62,12,234,235,62,175,65,239,62,28,154,242,62,14,243,245,62,136,76,249,62,34,166,252,62,0,0,0,63,239,172,1,63,188,89,3,63,121,6,5,63,242,178,6,63,41,95,8,63,250,10,10,63,86,182,11,63,44,97,13,63,124,11,15,63,19,181,16,63,242,93,18,63,8,6,20,63,67,173,21,63,130,83,23,63,182,248,24,63,220,156,26,63,213,63,28,63,143,225,29,63,249,129,31,63,4,33,33,63,140,190,34,63,163,90,36,63,23,245,37,63,214,141,39,63,242,36,41,63,40,186,42,63,152,77,44,63,1,223,45,63,114,110,47,63,202,251,48,63,249,134,50,63,237,15,52,63,167,150,53,63,4,27,55,63,229,156,56,63,88,28,58,63,61,153,59,63,131,19,61,63,42,139,62,63,0,0,64,63,21,114,65,63,55,225,66,63,119,77,68,63,195,182,69,63,235,28,71,63,254,127,72,63,236,223,73,63,146,60,75,63,225,149,76,63,234,235,77,63,121,62,79,63,143,141,80,63,43,217,81,63,29,33,83,63,115,101,84,63,13,166,85,63,235,226,86,63,252,27,88,63,47,81,89,63,115,130,90,63,201,175,91,63,14,217,92,63,67,254,93,63,88,31,95,63,75,60,96,63,252,84,97,63,106,105,98,63,133,121,99,63,60,133,100,63,160,140,101,63,126,143,102,63,214,141,103,63,186,135,104,63,246,124,105,63,156,109,106,63,138,89,107,63,209,64,108,63,79,35,109,63,4,1,110,63,241,217,110,63,243,173,111,63,28,125,112,63,73,71,113,63,124,12,114,63,180,204,114,63,240,135,115,63,16,62,116,63,19,239,116,63,250,154,117,63,179,65,118,63,63,227,118,63,141,127,119,63,173,22,120,63,126,168,120,63,1,53,121,63,52,188,121,63,24,62,122,63,157,186,122,63,194,49,123,63,119,163,123,63,187,15,124,63,159,118,124,63,2,216,124,63,244,51,125,63,101,138,125,63,68,219,125,63,179,38,126,63,143,108,126,63,235,172,126,63,163,231,126,63,218,28,127,63,127,76,127,63,129,118,127,63,2,155,127,63,208,185,127,63,28,211,127,63,197,230,127,63,203,244,127,63,47,253,127,63,0,0,128,63,2,0,0,0,4,0,0,0,6,0,0,0,8,0,0,0,10,0,0,0,12,0,0,0,14,0,0,0,16,0,0,0,20,0,0,0,24,0,0,0,28,0,0,0,32,0,0,0,40,0,0,0,48,0,0,0,56,0,0,0,68,0,0,0,80,0,0,0,96,0,0,0,120,0,0,0,1,0,0,0,2,0,0,0,4,0,0,0,6,0,0,0,8,0,0,0,10,0,0,0,12,0,0,0,14,0,0,0,16,0,0,0,20,0,0,0,24,0,0,0,28,0,0,0,32,0,0,0,40,0,0,0,48,0,0,0,56,0,0,0,68,0,0,0,80,0,0,0,96,0,0,0,120,0,0,0,160,0,0,0,200,0,0,0,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,208,37,180,62,151,57,173,62,9,165,159,62,250,237,139,62,205,172,101,62,248,169,42,62,52,48,210,61,90,241,13,61,90,241,13,189,52,48,210,189,248,169,42,190,205,172,101,190,250,237,139,190,9,165,159,190,151,57,173,190,208,37,180,190,135,138,177,62,27,131,150,62,96,35,73,62,196,66,141,61,196,66,141,189,96,35,73,190,27,131,150,190,135,138,177,190,135,138,177,190,27,131,150,190,96,35,73,190,196,66,141,189,196,66,141,61,96,35,73,62,27,131,150,62,135,138,177,62,151,57,173,62,205,172,101,62,90,241,13,61,248,169,42,190,9,165,159,190,208,37,180,190,250,237,139,190,52,48,210,189,52,48,210,61,250,237,139,62,208,37,180,62,9,165,159,62,248,169,42,62,90,241,13,189,205,172,101,190,151,57,173,190,125,61,167,62,210,139,10,62,210,139,10,190,125,61,167,190,125,61,167,190,210,139,10,190,210,139,10,62,125,61,167,62,125,61,167,62,210,139,10,62,210,139,10,190,125,61,167,190,125,61,167,190,210,139,10,190,210,139,10,62,125,61,167,62,9,165,159,62,90,241,13,61,250,237,139,190,151,57,173,190,52,48,210,189,205,172,101,62,208,37,180,62,248,169,42,62,248,169,42,190,208,37,180,190,205,172,101,190,52,48,210,61,151,57,173,62,250,237,139,62,90,241,13,189,9,165,159,190,27,131,150,62,196,66,141,189,135,138,177,190,96,35,73,190,96,35,73,62,135,138,177,62,196,66,141,61,27,131,150,190,27,131,150,190,196,66,141,61,135,138,177,62,96,35,73,62,96,35,73,190,135,138,177,190,196,66,141,189,27,131,150,62,250,237,139,62,248,169,42,190,151,57,173,190,90,241,13,61,208,37,180,62,52,48,210,61,9,165,159,190,205,172,101,190,205,172,101,62,9,165,159,62,52,48,210,189,208,37,180,190,90,241,13,189,151,57,173,62,248,169,42,62,250,237,139,190,22,235,181,64,30,107,94,64,35,164,226,63,185,197,204,63,91,124,113,64,184,115,10,64,116,96,161,63,136,245,142,63,19,155,245,63,0,0,0,0,5,193,35,61,233,125,163,61,37,150,244,61,226,116,34,62,172,28,74,62,221,37,113,62,52,186,139,62,180,119,158,62,228,191,176,62,173,136,194,62,37,201,211,62,24,122,228,62,24,149,244,62,200,10,2,63,28,124,9,63,73,157,16,63,202,109,23,63,192,237,29,63,159,29,36,63,84,254,41,63,46,145,47,63,224,215,52,63,99,212,57,63,240,136,62,63,211,247,66,63,171,35,71,63,23,15,75,63,216,188,78,63,173,47,82,63,106,106,85,63,206,111,88,63,154,66,91,63,142,229,93,63,75,91,96,63,110,166,98,63,100,201,100,63,155,198,102,63,111,160,104,63,247,88,106,63,128,242,107,63,223,110,109,63,11,208,110,63,202,23,112,63,224,71,113,63,225,97,114,63,77,103,115,63,150,89,116,63,12,58,117,63,255,9,118,63,138,202,118,63,187,124,119,63,192,33,120,63,98,186,120,63,157,71,121,63,75,202,121,63,36,67,122,63,242,178,122,63,59,26,123,63,200,121,123,63,32,210,123,63,200,35,124,63,55,111,124,63,242,180,124,63,94,245,124,63,224,48,125,63,236,103,125,63,183,154,125,63,180,201,125,63,6,245,125,63,17,29,126,63,24,66,126,63,78,100,126,63,211,131,126,63,253,160,126,63,237,187,126,63,195,212,126,63,179,235,126,63,239,0,127,63,135,20,127,63,141,38,127,63,67,55,127,63,170,70,127,63,227,84,127,63,15,98,127,63,47,110,127,63,100,121,127,63,190,131,127,63,63,141,127,63,24,150,127,63,56,158,127,63,194,165,127,63,163,172,127,63,16,179,127,63,245,184,127,63,119,190,127,63,114,195,127,63,25,200,127,63,108,204,127,63,91,208,127,63,6,212,127,63,111,215,127,63,131,218,127,63,102,221,127,63,21,224,127,63,130,226,127,63,205,228,127,63,230,230,127,63,205,232,127,63,146,234,127,63,70,236,127,63,200,237,127,63,40,239,127,63,120,240,127,63,166,241,127,63,195,242,127,63,191,243,127,63,186,244,127,63,148,245,127,63,94,246,127,63,39,247,127,63,207,247,127,63,119,248,127,63,253,248,127,63,148,249,127,63,9,250,127,63,127,250,127,63,244,250,127,63,89,251,127,63,173,251,127,63,1,252,127,63,84,252,127,63,152,252,127,63,219,252,127,63,30,253,127,63,80,253,127,63,130,253,127,63,181,253,127,63,231,253,127,63,9,254,127,63,59,254,127,63,93,254,127,63,126,254,127,63,143,254,127,63,176,254,127,63,210,254,127,63,227,254,127,63,244,254,127,63,21,255,127,63,38,255,127,63,55,255,127,63,71,255,127,63,88,255,127,63,88,255,127,63,105,255,127,63,122,255,127,63,122,255,127,63,139,255,127,63,155,255,127,63,155,255,127,63,155,255,127,63,172,255,127,63,172,255,127,63,189,255,127,63,189,255,127,63,189,255,127,63,206,255,127,63,206,255,127,63,206,255,127,63,206,255,127,63,206,255,127,63,222,255,127,63,222,255,127,63,222,255,127,63,222,255,127,63,222,255,127,63,222,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,92,201,154,191,92,181,225,188,29,102,249,60,41,7,147,189,76,199,183,189,254,214,206,61,107,200,73,189,213,203,143,61,162,63,153,60,131,208,139,59,7,3,132,61,170,154,224,189,251,30,245,189,156,141,17,188,11,14,47,62,98,192,50,62,25,231,135,190,14,59,130,189,104,203,145,190,133,66,136,191,57,185,79,62,205,228,19,64,254,212,48,192,107,127,215,190,71,229,50,63,144,218,206,64,190,165,135,61,26,70,155,61,241,153,81,61,23,176,46,61,228,249,236,61,194,18,135,190,137,197,57,188,107,74,66,190,44,114,190,189,15,94,147,190,234,136,189,61,164,240,234,60,161,171,163,188,103,180,69,190,98,101,132,62,179,149,151,60,242,210,237,61,140,77,203,61,221,29,0,188,97,51,136,190,116,69,145,62,227,199,40,65,110,133,40,191,198,53,86,63,106,222,81,65,36,209,160,192,56,103,140,191,137,42,151,189,64,184,167,60,103,126,53,60,37,104,2,187,152,220,139,59,239,146,24,62,41,174,154,61,238,207,229,61,197,96,84,189,236,162,232,60,105,97,197,60,53,77,78,189,26,24,25,190,227,199,8,190,182,159,12,190,150,33,238,61,117,202,115,62,250,97,164,61,125,168,30,61,218,27,188,61,180,142,129,64,129,149,79,64,2,43,55,191,225,93,2,65,218,44,239,193,246,40,148,63,255,147,255,189,102,233,185,60,124,187,64,189,90,0,9,189,207,206,19,61,20,106,55,61,121,110,41,187,165,84,157,188,137,151,231,189,90,72,224,61,75,81,51,189,51,156,28,61,194,238,34,188,128,99,31,190,82,12,48,62,141,123,99,190,91,8,6,191,166,34,58,189,54,144,14,191,23,244,66,63,23,217,44,192,69,13,98,191,113,29,99,63,107,15,63,63,168,25,186,190,127,137,184,62,66,91,14,61,15,97,124,188,56,153,225,59,58,135,27,188,169,33,128,61,86,182,79,189,178,164,23,61,110,10,117,60,67,86,119,61,71,94,145,189,118,138,21,189,47,196,202,61,104,185,34,189,150,10,146,62,113,231,2,62,77,45,27,190,59,29,136,62,111,117,170,189,14,67,85,61,140,214,101,63,202,224,224,62,144,131,64,192,163,1,248,63,103,68,209,190,54,172,153,62,227,194,181,191,69,74,243,61,178,70,61,189,146,230,79,61,22,83,196,188,77,235,128,189,165,98,8,188,160,53,223,189,183,222,5,189,46,143,213,61,96,168,136,189,8,242,66,61,75,175,141,61,63,127,107,189,121,33,13,190,10,242,83,190,129,236,37,190,88,114,85,190,45,39,17,62,57,41,148,190,154,153,73,191,163,146,186,61,240,50,51,62,10,46,2,192,198,80,68,64,133,124,156,63,95,210,6,64,48,139,159,61,171,63,98,190,60,106,12,62,216,26,128,189,100,118,150,189,195,14,51,62,84,195,14,190,131,32,198,61,103,30,170,61,167,7,101,190,13,250,210,61,147,139,209,189,146,6,103,62,123,20,30,62,83,93,64,62,22,226,15,188,77,188,3,62,60,50,190,190,86,68,245,190,73,76,32,62,106,48,141,63,196,124,161,191,19,13,178,61,28,181,18,190,57,185,11,64,18,218,56,192,38,27,207,61,119,219,157,190,203,101,99,62,140,44,105,190,51,31,12,188,188,93,47,60,26,189,253,59,149,207,151,188,8,181,250,60,252,55,111,190,62,86,165,61,13,54,245,188,175,150,27,62,31,19,137,190,22,143,70,61,87,93,7,62,150,148,107,190,235,59,183,62,168,114,154,61,167,149,226,61,103,155,163,191,174,216,83,64,156,192,84,63,188,118,89,190,203,161,165,193,252,24,147,191,62,46,0,61,22,207,170,188,109,194,3,188,13,228,52,60,76,23,226,60,94,191,253,58,3,71,93,188,3,132,201,187,99,6,79,61,150,27,49,188,190,138,88,58,58,177,199,188,119,103,165,190,169,211,139,61,238,8,15,191,175,7,211,189,41,34,51,62,108,152,1,190,136,13,214,189,43,79,216,62,52,234,139,189,171,91,185,191,106,189,51,63,173,78,54,63,236,24,215,190,201,60,38,64,232,221,243,188,27,145,57,189,185,75,7,189,85,29,13,189,165,90,213,188,35,17,122,189,144,195,187,61,245,244,209,60,72,108,215,189,184,241,157,61,150,18,184,189,131,161,62,190,154,92,164,190,4,27,103,190,120,11,52,62,56,129,129,62,107,40,61,63,2,212,26,64,153,129,234,61,4,200,160,190,198,164,27,63,129,178,221,63,87,38,6,192,164,253,27,191,240,80,152,63,51,53,233,61,233,239,53,190,169,237,160,189,98,49,178,190,76,105,194,189,155,132,156,188,254,240,171,62,96,4,109,189,194,104,6,62,43,18,243,189,64,75,7,190,254,95,117,190,119,167,65,58,2,102,62,190,146,232,5,190,239,116,223,190,94,16,17,190,187,191,16,61,20,198,91,189,132,137,197,189,111,45,99,62,109,168,248,63,76,137,228,191,91,211,116,64,35,190,111,64,182,185,23,64,227,170,182,191,215,183,61,61,62,230,104,189,170,229,88,61,29,114,211,189,226,147,174,190,198,194,208,61,79,145,79,191,195,98,52,62,3,119,240,62,144,222,203,60,19,213,219,189,99,71,19,190,169,61,59,189,229,122,71,63,75,144,17,190,9,129,33,61,106,161,36,62,200,38,53,191,91,181,27,191,126,24,137,63,124,155,162,191,249,189,17,64,54,205,203,64,10,20,5,63,165,73,85,192,70,122,1,190,179,80,193,189,15,198,217,60,14,62,126,61,52,147,57,60,169,249,130,190,29,176,150,189,125,219,130,189,206,112,195,189,88,226,81,190,21,24,149,59,62,81,99,61,5,105,38,190,235,230,18,191,183,124,132,62,140,185,75,62,61,164,179,60,75,230,192,190,43,50,2,191,22,24,157,189,25,142,39,191,248,165,143,64,103,237,88,64,227,25,22,192,193,57,49,193,167,116,139,64,15,127,213,63,227,129,82,189,253,114,140,189,204,192,55,188,190,157,243,57,254,123,112,190,116,92,173,190,227,167,17,190,212,126,43,190,24,177,15,190,150,176,214,189,48,100,213,189,144,204,52,60,123,190,230,189,57,165,178,61,42,224,46,190,69,155,179,189,224,157,252,61,43,133,32,190,158,208,75,62,116,208,101,189,126,54,102,63,242,249,167,61,143,194,165,191,164,231,241,60,55,166,17,64,235,228,112,191,169,2,36,188,156,111,228,189,154,93,7,190,171,9,226,189,126,29,24,61,207,152,147,188,19,0,45,188,234,106,161,60,33,229,39,61,192,163,92,189,78,155,209,189,224,208,64,189,139,78,54,62,105,25,137,190,231,167,216,189,95,207,215,189,194,73,127,61,52,190,47,189,194,195,52,62,247,234,35,190,168,58,18,192,101,141,246,191,116,98,95,62,180,188,26,65,146,116,83,64,160,55,225,191,122,200,4,62,228,73,242,61,246,36,16,62,235,223,138,61,12,62,77,59,137,205,108,188,56,33,254,188,96,209,200,188,25,60,12,62,132,189,25,62,45,11,230,61,121,161,154,189,35,221,143,190,130,83,127,190,19,129,46,191,240,31,1,61,12,6,151,62,139,187,38,61,202,197,144,62,4,57,176,190,69,129,234,192,30,81,97,190,142,119,15,191,191,154,239,191,3,62,227,192,179,210,8,65,196,66,5,64,192,93,118,62,189,24,162,63,174,156,253,60,179,152,140,191,122,142,92,63,186,189,196,191,106,106,137,63,198,138,140,64,99,180,38,192,82,12,192,62,126,200,251,61,169,231,85,59,40,244,70,63,137,7,2,192,108,206,113,191,82,242,128,64,216,127,133,190,63,111,14,63,148,220,97,190,2,183,226,191,40,212,91,191,230,150,194,191,215,190,72,191,25,32,177,62,201,21,72,189,50,146,165,190,160,168,64,191,202,112,4,63,170,96,96,63,69,100,184,191,174,185,195,190,108,236,198,191,0,0,128,63,0,0,0,64,0,0,64,64,0,0,128,64,0,0,160,64,0,0,192,64,0,0,224,64,0,0,0,65,0,0,128,65,0,0,192,65,0,0,16,66,0,0,48,66,0,0,72,66,0,0,96,66,0,0,120,66,0,0,134,66,0,0,144,66,0,0,158,66,0,0,176,66,0,0,212,66,0,0,6,67,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,64,64,0,0,64,64,0,0,128,64,0,0,160,64,0,0,192,64,0,0,0,65,0,0,0,65,149,139,0,0,55,152,0,0,255,165,0,0,4,181,0,0,103,197,0,0,69,215,0,0,193,234,0,0,255,255,0,0,128,187,0,0,120,0,0,0,21,0,0,0,21,0,0,0,0,154,89,63,0,0,0,0,0,0,128,63,0,0,128,63,220,90,0,0,3,0,0,0,8,0,0,0,120,0,0,0,11,0,0,0,58,110,0,0,8,91,0,0,36,21,0,0,128,7,0,0,3,0,0,0,4,23,0,0,60,38,0,0,116,38,0,0,172,38,0,0,228,38,0,0,136,1,0,0,58,98,0,0,33,111,0,0,169,112,0,0,106,28,141,56,82,187,30,58,8,105,220,58,130,237,87,59,137,99,178,59,3,42,5,60,48,220,57,60,180,62,119,60,28,163,158,60,209,242,197,60,254,134,241,60,155,171,16,61,5,173,42,61,132,194,70,61,83,230,100,61,17,137,130,61,135,159,147,61,203,178,165,61,209,190,184,61,58,191,204,61,84,175,225,61,20,138,247,61,14,37,7,62,217,244,18,62,95,49,31,62,104,215,43,62,138,227,56,62,48,82,70,62,148,31,84,62,191,71,98,62,142,198,112,62,176,151,127,62,82,91,135,62,96,15,143,62,152,229,150,62,121,219,158,62,112,238,166,62,216,27,175,62,251,96,183,62,17,187,191,62,70,39,200,62,183,162,208,62,120,42,217,62,148,187,225,62,12,83,234,62,222,237,242,62,6,137,251,62,190,16,2,63,31,90,6,63,36,159,10,63,80,222,14,63,43,22,19,63,65,69,23,63,37,106,27,63,115,131,31,63,206,143,35,63,230,141,39,63,116,124,43,63,63,90,47,63,25,38,51,63,231,222,54,63,153,131,58,63,51,19,62,63,197,140,65,63,119,239,68,63,127,58,72,63,39,109,75,63,206,134,78,63,229,134,81,63,241,108,84,63,142,56,87,63,105,233,89,63,69,127,92,63,250,249,94,63,115,89,97,63,175,157,99,63,193,198,101,63,207,212,103,63,17,200,105,63,210,160,107,63,110,95,109,63,80,4,111,63,244,143,112,63,230,2,114,63,189,93,115,63,31,161,116,63,191,205,117,63,87,228,118,63,176,229,119,63,151,210,120,63,227,171,121,63,115,114,122,63,39,39,123,63,231,202,123,63,157,94,124,63,53,227,124,63,156,89,125,63,189,194,125,63,134,31,126,63,222,112,126,63,171,183,126,63,207,244,126,63,38,41,127,63,134,85,127,63,190,122,127,63,150,153,127,63,204,178,127,63,20,199,127,63,28,215,127,63,130,227,127,63,221,236,127,63,182,243,127,63,138,248,127,63,200,251,127,63,214,253,127,63,7,255,127,63,165,255,127,63,232,255,127,63,253,255,127,63,0,0,128,63,224,1,0,0,135,136,8,59,255,255,255,255,5,0,96,0,3,0,32,0,4,0,8,0,2,0,4,0,4,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,50,91,0,0,60,23,0,0,0,0,0,0,0,0,128,63,0,0,0,128,99,250,127,63,191,117,86,188,139,233,127,63,10,113,214,188,121,205,127,63,231,206,32,189,47,166,127,63,58,94,86,189,175,115,127,63,19,242,133,189,249,53,127,63,42,175,160,189,18,237,126,63,51,101,187,189,253,152,126,63,4,19,214,189,188,57,126,63,115,183,240,189,85,207,125,63,168,168,5,190,203,89,125,63,187,239,18,190,37,217,124,63,92,48,32,190,103,77,124,63,245,105,45,190,152,182,123,63,243,155,58,190,190,20,123,63,194,197,71,190,226,103,122,63,205,230,84,190,9,176,121,63,130,254,97,190,60,237,120,63,77,12,111,190,132,31,120,63,156,15,124,190,234,70,119,63,238,131,132,190,119,99,118,63,62,250,138,190,54,117,117,63,117,106,145,190,48,124,116,63,76,212,151,190,113,120,115,63,122,55,158,190,3,106,114,63,183,147,164,190,244,80,113,63,188,232,170,190,79,45,112,63,65,54,177,190,33,255,110,63,1,124,183,190,118,198,109,63,180,185,189,190,94,131,108,63,21,239,195,190,231,53,107,63,222,27,202,190,30,222,105,63,201,63,208,190,18,124,104,63,146,90,214,190,212,15,103,63,243,107,220,190,116,153,101,63,170,115,226,190,1,25,100,63,113,113,232,190,141,142,98,63,7,101,238,190,40,250,96,63,39,78,244,190,230,91,95,63,144,44,250,190,215,179,93,63,0,0,0,191,15,2,92,63,27,228,2,191,160,70,90,63,119,194,5,191,158,129,88,63,246,154,8,191,29,179,86,63,119,109,11,191,49,219,84,63,218,57,14,191,239,249,82,63,0,0,17,191,108,15,81,63,202,191,19,191,189,27,79,63,24,121,22,191,248,30,77,63,205,43,25,191,52,25,75,63,202,215,27,191,136,10,73,63,241,124,30,191,10,243,70,63,36,27,33,191,209,210,68,63,70,178,35,191,247,169,66,63,58,66,38,191,147,120,64,63,227,202,40,191,189,62,62,63,37,76,43,191,143,252,59,63,227,197,45,191,34,178,57,63,1,56,48,191,144,95,55,63,101,162,50,191,243,4,53,63,243,4,53,191,101,162,50,63,144,95,55,191,1,56,48,63,34,178,57,191,227,197,45,63,143,252,59,191,37,76,43,63,189,62,62,191,227,202,40,63,147,120,64,191,58,66,38,63,247,169,66,191,70,178,35,63,209,210,68,191,36,27,33,63,10,243,70,191,241,124,30,63,136,10,73,191,202,215,27,63,52,25,75,191,205,43,25,63,248,30,77,191,24,121,22,63,189,27,79,191,202,191,19,63,108,15,81,191,0,0,17,63,239,249,82,191,218,57,14,63,49,219,84,191,119,109,11,63,29,179,86,191,246,154,8,63,158,129,88,191,119,194,5,63,160,70,90,191,27,228,2,63,15,2,92,191,0,0,0,63,215,179,93,191,144,44,250,62,230,91,95,191,39,78,244,62,40,250,96,191,7,101,238,62,141,142,98,191,113,113,232,62,1,25,100,191,170,115,226,62,116,153,101,191,243,107,220,62,212,15,103,191,146,90,214,62,18,124,104,191,201,63,208,62,30,222,105,191,222,27,202,62,231,53,107,191,21,239,195,62,94,131,108,191,180,185,189,62,118,198,109,191,1,124,183,62,33,255,110,191,65,54,177,62,79,45,112,191,188,232,170,62,244,80,113,191,183,147,164,62,3,106,114,191,122,55,158,62,113,120,115,191,76,212,151,62,48,124,116,191,117,106,145,62,54,117,117,191,62,250,138,62,119,99,118,191,238,131,132,62,234,70,119,191,156,15,124,62,132,31,120,191,77,12,111,62,60,237,120,191,130,254,97,62,9,176,121,191,205,230,84,62,226,103,122,191,194,197,71,62,190,20,123,191,243,155,58,62,152,182,123,191,245,105,45,62,103,77,124,191,92,48,32,62,37,217,124,191,187,239,18,62,203,89,125,191,168,168,5,62,85,207,125,191,115,183,240,61,188,57,126,191,4,19,214,61,253,152,126,191,51,101,187,61,18,237,126,191,42,175,160,61,249,53,127,191,19,242,133,61,175,115,127,191,58,94,86,61,47,166,127,191,231,206,32,61,121,205,127,191,10,113,214,60,139,233,127,191,191,117,86,60,99,250,127,191,0,48,141,36,0,0,128,191,191,117,86,188,99,250,127,191,10,113,214,188,139,233,127,191,231,206,32,189,121,205,127,191,58,94,86,189,47,166,127,191,19,242,133,189,175,115,127,191,42,175,160,189,249,53,127,191,51,101,187,189,18,237,126,191,4,19,214,189,253,152,126,191,115,183,240,189,188,57,126,191,168,168,5,190,85,207,125,191,187,239,18,190,203,89,125,191,92,48,32,190,37,217,124,191,245,105,45,190,103,77,124,191,243,155,58,190,152,182,123,191,194,197,71,190,190,20,123,191,205,230,84,190,226,103,122,191,130,254,97,190,9,176,121,191,77,12,111,190,60,237,120,191,156,15,124,190,132,31,120,191,238,131,132,190,234,70,119,191,62,250,138,190,119,99,118,191,117,106,145,190,54,117,117,191,76,212,151,190,48,124,116,191,122,55,158,190,113,120,115,191,183,147,164,190,3,106,114,191,188,232,170,190,244,80,113,191,65,54,177,190,79,45,112,191,1,124,183,190,33,255,110,191,180,185,189,190,118,198,109,191,21,239,195,190,94,131,108,191,222,27,202,190,231,53,107,191,201,63,208,190,30,222,105,191,146,90,214,190,18,124,104,191,243,107,220,190,212,15,103,191,170,115,226,190,116,153,101,191,113,113,232,190,1,25,100,191,7,101,238,190,141,142,98,191,39,78,244,190,40,250,96,191,144,44,250,190,230,91,95,191,0,0,0,191,215,179,93,191,27,228,2,191,15,2,92,191,119,194,5,191,160,70,90,191,246,154,8,191,158,129,88,191,119,109,11,191,29,179,86,191,218,57,14,191,49,219,84,191,0,0,17,191,239,249,82,191,202,191,19,191,108,15,81,191,24,121,22,191,189,27,79,191,205,43,25,191,248,30,77,191,202,215,27,191,52,25,75,191,241,124,30,191,136,10,73,191,36,27,33,191,10,243,70,191,70,178,35,191,209,210,68,191,58,66,38,191,247,169,66,191,227,202,40,191,147,120,64,191,37,76,43,191,189,62,62,191,227,197,45,191,143,252,59,191,1,56,48,191,34,178,57,191,101,162,50,191,144,95,55,191,243,4,53,191,243,4,53,191,144,95,55,191,101,162,50,191,34,178,57,191,1,56,48,191,143,252,59,191,227,197,45,191,189,62,62,191,37,76,43,191,147,120,64,191,227,202,40,191,247,169,66,191,58,66,38,191,209,210,68,191,70,178,35,191,10,243,70,191,36,27,33,191,136,10,73,191,241,124,30,191,52,25,75,191,202,215,27,191,248,30,77,191,205,43,25,191,189,27,79,191,24,121,22,191,108,15,81,191,202,191,19,191,239,249,82,191,0,0,17,191,49,219,84,191,218,57,14,191,29,179,86,191,119,109,11,191,158,129,88,191,246,154,8,191,160,70,90,191,119,194,5,191,15,2,92,191,27,228,2,191,215,179,93,191,0,0,0,191,230,91,95,191,144,44,250,190,40,250,96,191,39,78,244,190,141,142,98,191,7,101,238,190,1,25,100,191,113,113,232,190,116,153,101,191,170,115,226,190,212,15,103,191,243,107,220,190,18,124,104,191,146,90,214,190,30,222,105,191,201,63,208,190,231,53,107,191,222,27,202,190,94,131,108,191,21,239,195,190,118,198,109,191,180,185,189,190,33,255,110,191,1,124,183,190,79,45,112,191,65,54,177,190,244,80,113,191,188,232,170,190,3,106,114,191,183,147,164,190,113,120,115,191,122,55,158,190,48,124,116,191,76,212,151,190,54,117,117,191,117,106,145,190,119,99,118,191,62,250,138,190,234,70,119,191,238,131,132,190,132,31,120,191,156,15,124,190,60,237,120,191,77,12,111,190,9,176,121,191,130,254,97,190,226,103,122,191,205,230,84,190,190,20,123,191,194,197,71,190,152,182,123,191,243,155,58,190,103,77,124,191,245,105,45,190,37,217,124,191,92,48,32,190,203,89,125,191,187,239,18,190,85,207,125,191,168,168,5,190,188,57,126,191,115,183,240,189,253,152,126,191,4,19,214,189,18,237,126,191,51,101,187,189,249,53,127,191,42,175,160,189,175,115,127,191,19,242,133,189,47,166,127,191,58,94,86,189,121,205,127,191,231,206,32,189,139,233,127,191,10,113,214,188,99,250,127,191,191,117,86,188,0,0,128,191,0,48,13,165,99,250,127,191,191,117,86,60,139,233,127,191,10,113,214,60,121,205,127,191,231,206,32,61,47,166,127,191,58,94,86,61,175,115,127,191,19,242,133,61,249,53,127,191,42,175,160,61,18,237,126,191,51,101,187,61,253,152,126,191,4,19,214,61,188,57,126,191,115,183,240,61,85,207,125,191,168,168,5,62,203,89,125,191,187,239,18,62,37,217,124,191,92,48,32,62,103,77,124,191,245,105,45,62,152,182,123,191,243,155,58,62,190,20,123,191,194,197,71,62,226,103,122,191,205,230,84,62,9,176,121,191,130,254,97,62,60,237,120,191,77,12,111,62,132,31,120,191,156,15,124,62,234,70,119,191,238,131,132,62,119,99,118,191,62,250,138,62,54,117,117,191,117,106,145,62,48,124,116,191,76,212,151,62,113,120,115,191,122,55,158,62,3,106,114,191,183,147,164,62,244,80,113,191,188,232,170,62,79,45,112,191,65,54,177,62,33,255,110,191,1,124,183,62,118,198,109,191,180,185,189,62,94,131,108,191,21,239,195,62,231,53,107,191,222,27,202,62,30,222,105,191,201,63,208,62,18,124,104,191,146,90,214,62,212,15,103,191,243,107,220,62,116,153,101,191,170,115,226,62,1,25,100,191,113,113,232,62,141,142,98,191,7,101,238,62,40,250,96,191,39,78,244,62,230,91,95,191,144,44,250,62,215,179,93,191,0,0,0,63,15,2,92,191,27,228,2,63,160,70,90,191,119,194,5,63,158,129,88,191,246,154,8,63,29,179,86,191,119,109,11,63,49,219,84,191,218,57,14,63,239,249,82,191,0,0,17,63,108,15,81,191,202,191,19,63,189,27,79,191,24,121,22,63,248,30,77,191,205,43,25,63,52,25,75,191,202,215,27,63,136,10,73,191,241,124,30,63,10,243,70,191,36,27,33,63,209,210,68,191,70,178,35,63,247,169,66,191,58,66,38,63,147,120,64,191,227,202,40,63,189,62,62,191,37,76,43,63,143,252,59,191,227,197,45,63,34,178,57,191,1,56,48,63,144,95,55,191,101,162,50,63,243,4,53,191,243,4,53,63,101,162,50,191,144,95,55,63,1,56,48,191,34,178,57,63,227,197,45,191,143,252,59,63,37,76,43,191,189,62,62,63,227,202,40,191,147,120,64,63,58,66,38,191,247,169,66,63,70,178,35,191,209,210,68,63,36,27,33,191,10,243,70,63,241,124,30,191,136,10,73,63,202,215,27,191,52,25,75,63,205,43,25,191,248,30,77,63,24,121,22,191,189,27,79,63,202,191,19,191,108,15,81,63,0,0,17,191,239,249,82,63,218,57,14,191,49,219,84,63,119,109,11,191,29,179,86,63,246,154,8,191,158,129,88,63,119,194,5,191,160,70,90,63,27,228,2,191,15,2,92,63,0,0,0,191,215,179,93,63,144,44,250,190,230,91,95,63,39,78,244,190,40,250,96,63,7,101,238,190,141,142,98,63,113,113,232,190,1,25,100,63,170,115,226,190,116,153,101,63,243,107,220,190,212,15,103,63,146,90,214,190,18,124,104,63,201,63,208,190,30,222,105,63,222,27,202,190,231,53,107,63,21,239,195,190,94,131,108,63,180,185,189,190,118,198,109,63,1,124,183,190,33,255,110,63,65,54,177,190,79,45,112,63,188,232,170,190,244,80,113,63,183,147,164,190,3,106,114,63,122,55,158,190,113,120,115,63,76,212,151,190,48,124,116,63,117,106,145,190,54,117,117,63,62,250,138,190,119,99,118,63,238,131,132,190,234,70,119,63,156,15,124,190,132,31,120,63,77,12,111,190,60,237,120,63,130,254,97,190,9,176,121,63,205,230,84,190,226,103,122,63,194,197,71,190,190,20,123,63,243,155,58,190,152,182,123,63,245,105,45,190,103,77,124,63,92,48,32,190,37,217,124,63,187,239,18,190,203,89,125,63,168,168,5,190,85,207,125,63,115,183,240,189,188,57,126,63,4,19,214,189,253,152,126,63,51,101,187,189,18,237,126,63,42,175,160,189,249,53,127,63,19,242,133,189,175,115,127,63,58,94,86,189,47,166,127,63,231,206,32,189,121,205,127,63,10,113,214,188,139,233,127,63,191,117,86,188,99,250,127,63,0,200,83,165,0,0,128,63,191,117,86,60,99,250,127,63,10,113,214,60,139,233,127,63,231,206,32,61,121,205,127,63,58,94,86,61,47,166,127,63,19,242,133,61,175,115,127,63,42,175,160,61,249,53,127,63,51,101,187,61,18,237,126,63,4,19,214,61,253,152,126,63,115,183,240,61,188,57,126,63,168,168,5,62,85,207,125,63,187,239,18,62,203,89,125,63,92,48,32,62,37,217,124,63,245,105,45,62,103,77,124,63,243,155,58,62,152,182,123,63,194,197,71,62,190,20,123,63,205,230,84,62,226,103,122,63,130,254,97,62,9,176,121,63,77,12,111,62,60,237,120,63,156,15,124,62,132,31,120,63,238,131,132,62,234,70,119,63,62,250,138,62,119,99,118,63,117,106,145,62,54,117,117,63,76,212,151,62,48,124,116,63,122,55,158,62,113,120,115,63,183,147,164,62,3,106,114,63,188,232,170,62,244,80,113,63,65,54,177,62,79,45,112,63,1,124,183,62,33,255,110,63,180,185,189,62,118,198,109,63,21,239,195,62,94,131,108,63,222,27,202,62,231,53,107,63,201,63,208,62,30,222,105,63,146,90,214,62,18,124,104,63,243,107,220,62,212,15,103,63,170,115,226,62,116,153,101,63,113,113,232,62,1,25,100,63,7,101,238,62,141,142,98,63,39,78,244,62,40,250,96,63,144,44,250,62,230,91,95,63,0,0,0,63,215,179,93,63,27,228,2,63,15,2,92,63,119,194,5,63,160,70,90,63,246,154,8,63,158,129,88,63,119,109,11,63,29,179,86,63,218,57,14,63,49,219,84,63,0,0,17,63,239,249,82,63,202,191,19,63,108,15,81,63,24,121,22,63,189,27,79,63,205,43,25,63,248,30,77,63,202,215,27,63,52,25,75,63,241,124,30,63,136,10,73,63,36,27,33,63,10,243,70,63,70,178,35,63,209,210,68,63,58,66,38,63,247,169,66,63,227,202,40,63,147,120,64,63,37,76,43,63,189,62,62,63,227,197,45,63,143,252,59,63,1,56,48,63,34,178,57,63,101,162,50,63,144,95,55,63,243,4,53,63,243,4,53,63,144,95,55,63,101,162,50,63,34,178,57,63,1,56,48,63,143,252,59,63,227,197,45,63,189,62,62,63,37,76,43,63,147,120,64,63,227,202,40,63,247,169,66,63,58,66,38,63,209,210,68,63,70,178,35,63,10,243,70,63,36,27,33,63,136,10,73,63,241,124,30,63,52,25,75,63,202,215,27,63,248,30,77,63,205,43,25,63,189,27,79,63,24,121,22,63,108,15,81,63,202,191,19,63,239,249,82,63,0,0,17,63,49,219,84,63,218,57,14,63,29,179,86,63,119,109,11,63,158,129,88,63,246,154,8,63,160,70,90,63,119,194,5,63,15,2,92,63,27,228,2,63,215,179,93,63,0,0,0,63,230,91,95,63,144,44,250,62,40,250,96,63,39,78,244,62,141,142,98,63,7,101,238,62,1,25,100,63,113,113,232,62,116,153,101,63,170,115,226,62,212,15,103,63,243,107,220,62,18,124,104,63,146,90,214,62,30,222,105,63,201,63,208,62,231,53,107,63,222,27,202,62,94,131,108,63,21,239,195,62,118,198,109,63,180,185,189,62,33,255,110,63,1,124,183,62,79,45,112,63,65,54,177,62,244,80,113,63,188,232,170,62,3,106,114,63,183,147,164,62,113,120,115,63,122,55,158,62,48,124,116,63,76,212,151,62,54,117,117,63,117,106,145,62,119,99,118,63,62,250,138,62,234,70,119,63,238,131,132,62,132,31,120,63,156,15,124,62,60,237,120,63,77,12,111,62,9,176,121,63,130,254,97,62,226,103,122,63,205,230,84,62,190,20,123,63,194,197,71,62,152,182,123,63,243,155,58,62,103,77,124,63,245,105,45,62,37,217,124,63,92,48,32,62,203,89,125,63,187,239,18,62,85,207,125,63,168,168,5,62,188,57,126,63,115,183,240,61,253,152,126,63,4,19,214,61,18,237,126,63,51,101,187,61,249,53,127,63,42,175,160,61,175,115,127,63,19,242,133,61,47,166,127,63,58,94,86,61,121,205,127,63,231,206,32,61,139,233,127,63,10,113,214,60,99,250,127,63,191,117,86,60,240,0,0,0,137,136,136,59,1,0,0,0,5,0,48,0,3,0,16,0,4,0,4,0,4,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,242,94,0,0,60,23,0,0,0,0,0,0,120,0,0,0,136,136,8,60,2,0,0,0,5,0,24,0,3,0,8,0,2,0,4,0,4,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,210,96,0,0,60,23,0,0,0,0,0,0,60,0,0,0,137,136,136,60,3,0,0,0,5,0,12,0,3,0,4,0,4,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,194,97,0,0,60,23,0,0,0,0,0,0,255,255,127,63,142,255,127,63,106,254,127,63,147,252,127,63,7,250,127,63,200,246,127,63,214,242,127,63,48,238,127,63,214,232,127,63,200,226,127,63,7,220,127,63,147,212,127,63,107,204,127,63,143,195,127,63,0,186,127,63,189,175,127,63,199,164,127,63,29,153,127,63,192,140,127,63,176,127,127,63,236,113,127,63,118,99,127,63,75,84,127,63,110,68,127,63,222,51,127,63,154,34,127,63,163,16,127,63,250,253,126,63,157,234,126,63,141,214,126,63,203,193,126,63,86,172,126,63,46,150,126,63,83,127,126,63,198,103,126,63,134,79,126,63,148,54,126,63,239,28,126,63,152,2,126,63,143,231,125,63,211,203,125,63,102,175,125,63,70,146,125,63,116,116,125,63,241,85,125,63,188,54,125,63,213,22,125,63,60,246,124,63,242,212,124,63,246,178,124,63,73,144,124,63,235,108,124,63,219,72,124,63,27,36,124,63,169,254,123,63,135,216,123,63,180,177,123,63,48,138,123,63,252,97,123,63,23,57,123,63,130,15,123,63,61,229,122,63,72,186,122,63,162,142,122,63,77,98,122,63,72,53,122,63,148,7,122,63,48,217,121,63,29,170,121,63,90,122,121,63,233,73,121,63,200,24,121,63,249,230,120,63],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);allocate([123,180,120,63,78,129,120,63,115,77,120,63,234,24,120,63,178,227,119,63,205,173,119,63,58,119,119,63,249,63,119,63,10,8,119,63,110,207,118,63,37,150,118,63,47,92,118,63,140,33,118,63,60,230,117,63,64,170,117,63,151,109,117,63,66,48,117,63,65,242,116,63,148,179,116,63,59,116,116,63,55,52,116,63,135,243,115,63,44,178,115,63,38,112,115,63,118,45,115,63,26,234,114,63,20,166,114,63,100,97,114,63,10,28,114,63,5,214,113,63,87,143,113,63,0,72,113,63,255,255,112,63,85,183,112,63,2,110,112,63,6,36,112,63,98,217,111,63,21,142,111,63,32,66,111,63,132,245,110,63,63,168,110,63,83,90,110,63,192,11,110,63,134,188,109,63,165,108,109,63,29,28,109,63,239,202,108,63,27,121,108,63,161,38,108,63,128,211,107,63,187,127,107,63,80,43,107,63,64,214,106,63,140,128,106,63,50,42,106,63,53,211,105,63,147,123,105,63,77,35,105,63,100,202,104,63,216,112,104,63,168,22,104,63,213,187,103,63,96,96,103,63,72,4,103,63,143,167,102,63,51,74,102,63,54,236,101,63,151,141,101,63,87,46,101,63,119,206,100,63,245,109,100,63,212,12,100,63,18,171,99,63,177,72,99,63,176,229,98,63,16,130,98,63,209,29,98,63,243,184,97,63,119,83,97,63,92,237,96,63,164,134,96,63,78,31,96,63,91,183,95,63,203,78,95,63,158,229,94,63,213,123,94,63,112,17,94,63,110,166,93,63,210,58,93,63,154,206,92,63,198,97,92,63,89,244,91,63,81,134,91,63,174,23,91,63,114,168,90,63,157,56,90,63,46,200,89,63,39,87,89,63,135,229,88,63,79,115,88,63,127,0,88,63,23,141,87,63,24,25,87,63,130,164,86,63,86,47,86,63,147,185,85,63,58,67,85,63,75,204,84,63,199,84,84,63,174,220,83,63,1,100,83,63,191,234,82,63,233,112,82,63,127,246,81,63,130,123,81,63,242,255,80,63,207,131,80,63,26,7,80,63,210,137,79,63,250,11,79,63,144,141,78,63,148,14,78,63,9,143,77,63,237,14,77,63,65,142,76,63,5,13,76,63,59,139,75,63,225,8,75,63,249,133,74,63,131,2,74,63,127,126,73,63,238,249,72,63,207,116,72,63,36,239,71,63,237,104,71,63,41,226,70,63,218,90,70,63,0,211,69,63,155,74,69,63,172,193,68,63,50,56,68,63,47,174,67,63,162,35,67,63,141,152,66,63,239,12,66,63,200,128,65,63,26,244,64,63,229,102,64,63,40,217,63,63,229,74,63,63,27,188,62,63,204,44,62,63,247,156,61,63,157,12,61,63,190,123,60,63,92,234,59,63,117,88,59,63,10,198,58,63,29,51,58,63,173,159,57,63,187,11,57,63,71,119,56,63,81,226,55,63,218,76,55,63,227,182,54,63,107,32,54,63,116,137,53,63,253,241,52,63,7,90,52,63,147,193,51,63,160,40,51,63,48,143,50,63,66,245,49,63,216,90,49,63,241,191,48,63,142,36,48,63,175,136,47,63,85,236,46,63,129,79,46,63,50,178,45,63,105,20,45,63,39,118,44,63,107,215,43,63,55,56,43,63,139,152,42,63,103,248,41,63,204,87,41,63,186,182,40,63,50,21,40,63,51,115,39,63,191,208,38,63,214,45,38,63,121,138,37,63,167,230,36,63,97,66,36,63,169,157,35,63,125,248,34,63,223,82,34,63,207,172,33,63,77,6,33,63,91,95,32,63,248,183,31,63,37,16,31,63,226,103,30,63,48,191,29,63,16,22,29,63,129,108,28,63,132,194,27,63,26,24,27,63,67,109,26,63,0,194,25,63,81,22,25,63,54,106,24,63,177,189,23,63,193,16,23,63,103,99,22,63,163,181,21,63,118,7,21,63,225,88,20,63,228,169,19,63,127,250,18,63,179,74,18,63,128,154,17,63,231,233,16,63,232,56,16,63,132,135,15,63,187,213,14,63,142,35,14,63,254,112,13,63,10,190,12,63,179,10,12,63,250,86,11,63,223,162,10,63,99,238,9,63,134,57,9,63,73,132,8,63,172,206,7,63,175,24,7,63,84,98,6,63,155,171,5,63,131,244,4,63,15,61,4,63,61,133,3,63,15,205,2,63,134,20,2,63,161,91,1,63,97,162,0,63,143,209,255,62,167,93,254,62,14,233,252,62,194,115,251,62,198,253,249,62,27,135,248,62,193,15,247,62,186,151,245,62,6,31,244,62,168,165,242,62,158,43,241,62,236,176,239,62,145,53,238,62,144,185,236,62,232,60,235,62,154,191,233,62,169,65,232,62,21,195,230,62,223,67,229,62,8,196,227,62,145,67,226,62,124,194,224,62,200,64,223,62,120,190,221,62,140,59,220,62,6,184,218,62,230,51,217,62,46,175,215,62,223,41,214,62,249,163,212,62,125,29,211,62,110,150,209,62,204,14,208,62,151,134,206,62,210,253,204,62,125,116,203,62,153,234,201,62,39,96,200,62,40,213,198,62,159,73,197,62,138,189,195,62,236,48,194,62,198,163,192,62,25,22,191,62,230,135,189,62,45,249,187,62,241,105,186,62,50,218,184,62,241,73,183,62,47,185,181,62,238,39,180,62,47,150,178,62,242,3,177,62,57,113,175,62,4,222,173,62,86,74,172,62,47,182,170,62,144,33,169,62,122,140,167,62,239,246,165,62,239,96,164,62,124,202,162,62,151,51,161,62,64,156,159,62,122,4,158,62,68,108,156,62,161,211,154,62,145,58,153,62,22,161,151,62,48,7,150,62,225,108,148,62,41,210,146,62,11,55,145,62,135,155,143,62,158,255,141,62,81,99,140,62,162,198,138,62,145,41,137,62,32,140,135,62,80,238,133,62,34,80,132,62,151,177,130,62,176,18,129,62,222,230,126,62,169,167,123,62,195,103,120,62,47,39,117,62,238,229,113,62,4,164,110,62,115,97,107,62,60,30,104,62,98,218,100,62,232,149,97,62,207,80,94,62,26,11,91,62,204,196,87,62,230,125,84,62,107,54,81,62,93,238,77,62,191,165,74,62,146,92,71,62,218,18,68,62,151,200,64,62,206,125,61,62,128,50,58,62,174,230,54,62,93,154,51,62,141,77,48,62,66,0,45,62,125,178,41,62,66,100,38,62,145,21,35,62,110,198,31,62,219,118,28,62,218,38,25,62,109,214,21,62,152,133,18,62,91,52,15,62,186,226,11,62,183,144,8,62,84,62,5,62,148,235,1,62,240,48,253,61,6,138,246,61,113,226,239,61,51,58,233,61,79,145,226,61,207,231,219,61,181,61,213,61,3,147,206,61,192,231,199,61,242,59,193,61,156,143,186,61,195,226,179,61,108,53,173,61,155,135,166,61,85,217,159,61,159,42,153,61,126,123,146,61,246,203,139,61,11,28,133,61,135,215,124,61,70,118,111,61,93,20,98,61,214,177,84,61,185,78,71,61,16,235,57,61,229,134,44,61,64,34,31,61,44,189,17,61,178,87,4,61,181,227,237,60,96,23,211,60,118,74,184,60,11,125,157,60,50,175,130,60,250,193,79,60,254,36,26,60,42,15,201,59,153,167,59,59,46,125,214,185,210,70,113,187,171,222,227,187,166,140,39,188,129,41,93,188,225,98,137,188,160,48,164,188,236,253,190,188,179,202,217,188,224,150,244,188,49,177,7,189,147,22,21,189,140,123,34,189,19,224,47,189,30,68,61,189,165,167,74,189,157,10,88,189,254,108,101,189,190,206,114,189,234,23,128,189,27,200,134,189,237,119,141,189,92,39,148,189,99,214,154,189,253,132,161,189,38,51,168,189,217,224,174,189,17,142,181,189,202,58,188,189,254,230,194,189,170,146,201,189,200,61,208,189,84,232,214,189,74,146,221,189,164,59,228,189,93,228,234,189,114,140,241,189,221,51,248,189,154,218,254,189,82,192,2,190,252,18,6,190,71,101,9,190,50,183,12,190,186,8,16,190,221,89,19,190,152,170,22,190,234,250,25,190,208,74,29,190,71,154,32,190,78,233,35,190,225,55,39,190,0,134,42,190,166,211,45,190,211,32,49,190,131,109,52,190,181,185,55,190,101,5,59,190,147,80,62,190,58,155,65,190,90,229,68,190,240,46,72,190,249,119,75,190,116,192,78,190,93,8,82,190,179,79,85,190,115,150,88,190,156,220,91,190,42,34,95,190,27,103,98,190,109,171,101,190,31,239,104,190,44,50,108,190,148,116,111,190,84,182,114,190,106,247,117,190,211,55,121,190,141,119,124,190,150,182,127,190,117,122,129,190,69,25,131,190,185,183,132,190,208,85,134,190,136,243,135,190,225,144,137,190,218,45,139,190,112,202,140,190,164,102,142,190,116,2,144,190,223,157,145,190,228,56,147,190,129,211,148,190,182,109,150,190,129,7,152,190,226,160,153,190,215,57,155,190,95,210,156,190,121,106,158,190,35,2,160,190,94,153,161,190,38,48,163,190,125,198,164,190,96,92,166,190,206,241,167,190,198,134,169,190,71,27,171,190,80,175,172,190,224,66,174,190,245,213,175,190,143,104,177,190,173,250,178,190,77,140,180,190,110,29,182,190,16,174,183,190,48,62,185,190,207,205,186,190,234,92,188,190,130,235,189,190,148,121,191,190,31,7,193,190,35,148,194,190,159,32,196,190,145,172,197,190,248,55,199,190,211,194,200,190,34,77,202,190,226,214,203,190,19,96,205,190,181,232,206,190,197,112,208,190,66,248,209,190,45,127,211,190,131,5,213,190,67,139,214,190,109,16,216,190,255,148,217,190,249,24,219,190,89,156,220,190,29,31,222,190,70,161,223,190,211,34,225,190,193,163,226,190,16,36,228,190,190,163,229,190,204,34,231,190,56,161,232,190,0,31,234,190,36,156,235,190,162,24,237,190,122,148,238,190,171,15,240,190,51,138,241,190,18,4,243,190,70,125,244,190,207,245,245,190,170,109,247,190,217,228,248,190,88,91,250,190,40,209,251,190,71,70,253,190,181,186,254,190,56,23,0,191,187,208,0,191,228,137,1,191,178,66,2,191,37,251,2,191,59,179,3,191,246,106,4,191,83,34,5,191,83,217,5,191,245,143,6,191,56,70,7,191,29,252,7,191,162,177,8,191,199,102,9,191,140,27,10,191,240,207,10,191,243,131,11,191,147,55,12,191,209,234,12,191,172,157,13,191,36,80,14,191,56,2,15,191,232,179,15,191,50,101,16,191,24,22,17,191,151,198,17,191,176,118,18,191,99,38,19,191,174,213,19,191,145,132,20,191,13,51,21,191,31,225,21,191,200,142,22,191,8,60,23,191,221,232,23,191,72,149,24,191,72,65,25,191,220,236,25,191,4,152,26,191,192,66,27,191,15,237,27,191,240,150,28,191,99,64,29,191,104,233,29,191,254,145,30,191,37,58,31,191,220,225,31,191,35,137,32,191,250,47,33,191,95,214,33,191,82,124,34,191,212,33,35,191,227,198,35,191,127,107,36,191,167,15,37,191,92,179,37,191,157,86,38,191,104,249,38,191,191,155,39,191,160,61,40,191,11,223,40,191,255,127,41,191,125,32,42,191,131,192,42,191,17,96,43,191,39,255,43,191,196,157,44,191,232,59,45,191,146,217,45,191,195,118,46,191,121,19,47,191,180,175,47,191,115,75,48,191,183,230,48,191,127,129,49,191,203,27,50,191,153,181,50,191,234,78,51,191,189,231,51,191,18,128,52,191,232,23,53,191,63,175,53,191,22,70,54,191,110,220,54,191,69,114,55,191,156,7,56,191,113,156,56,191,197,48,57,191,150,196,57,191,230,87,58,191,178,234,58,191,252,124,59,191,194,14,60,191,3,160,60,191,193,48,61,191,250,192,61,191,173,80,62,191,219,223,62,191,131,110,63,191,165,252,63,191,64,138,64,191,83,23,65,191,224,163,65,191,228,47,66,191,96,187,66,191,83,70,67,191,190,208,67,191,158,90,68,191,246,227,68,191,194,108,69,191,5,245,69,191,188,124,70,191,232,3,71,191,137,138,71,191,157,16,72,191,37,150,72,191,32,27,73,191,142,159,73,191,111,35,74,191,193,166,74,191,134,41,75,191,188,171,75,191,99,45,76,191,122,174,76,191,2,47,77,191,250,174,77,191,98,46,78,191,57,173,78,191,126,43,79,191,51,169,79,191,85,38,80,191,230,162,80,191,228,30,81,191,80,154,81,191,40,21,82,191,109,143,82,191,30,9,83,191,59,130,83,191,195,250,83,191,183,114,84,191,22,234,84,191,223,96,85,191,18,215,85,191,176,76,86,191,183,193,86,191,39,54,87,191,0,170,87,191,66,29,88,191,236,143,88,191,254,1,89,191,120,115,89,191,89,228,89,191,162,84,90,191,81,196,90,191,102,51,91,191,226,161,91,191,195,15,92,191,10,125,92,191,183,233,92,191,200,85,93,191,62,193,93,191,24,44,94,191,87,150,94,191,249,255,94,191,255,104,95,191,104,209,95,191,51,57,96,191,98,160,96,191,243,6,97,191,229,108,97,191,58,210,97,191,240,54,98,191,8,155,98,191,128,254,98,191,89,97,99,191,146,195,99,191,44,37,100,191,37,134,100,191,126,230,100,191,55,70,101,191,78,165,101,191,197,3,102,191,154,97,102,191,205,190,102,191,94,27,103,191,77,119,103,191,154,210,103,191,68,45,104,191,75,135,104,191,174,224,104,191,111,57,105,191,139,145,105,191,4,233,105,191,217,63,106,191,9,150,106,191,148,235,106,191,123,64,107,191,188,148,107,191,89,232,107,191,79,59,108,191,160,141,108,191,75,223,108,191,79,48,109,191,173,128,109,191,101,208,109,191,117,31,110,191,223,109,110,191,161,187,110,191,187,8,111,191,46,85,111,191,248,160,111,191,27,236,111,191,149,54,112,191,103,128,112,191,144,201,112,191,15,18,113,191,230,89,113,191,19,161,113,191,151,231,113,191,113,45,114,191,160,114,114,191,38,183,114,191,1,251,114,191,50,62,115,191,184,128,115,191,148,194,115,191,196,3,116,191,73,68,116,191,34,132,116,191,80,195,116,191,210,1,117,191,168,63,117,191,210,124,117,191,80,185,117,191,33,245,117,191,69,48,118,191,189,106,118,191,136,164,118,191,166,221,118,191,22,22,119,191,217,77,119,191,239,132,119,191,87,187,119,191,17,241,119,191,29,38,120,191,122,90,120,191,42,142,120,191,43,193,120,191,125,243,120,191,33,37,121,191,22,86,121,191,92,134,121,191,242,181,121,191,218,228,121,191,18,19,122,191,154,64,122,191,115,109,122,191,157,153,122,191,22,197,122,191,223,239,122,191,248,25,123,191,97,67,123,191,26,108,123,191,34,148,123,191,122,187,123,191,32,226,123,191,23,8,124,191,92,45,124,191,240,81,124,191,211,117,124,191,5,153,124,191,134,187,124,191,85,221,124,191,115,254,124,191,223,30,125,191,154,62,125,191,163,93,125,191,250,123,125,191,159,153,125,191,146,182,125,191,211,210,125,191,98,238,125,191,63,9,126,191,105,35,126,191,225,60,126,191,167,85,126,191,186,109,126,191,27,133,126,191,201,155,126,191,196,177,126,191,13,199,126,191,162,219,126,191,133,239,126,191,181,2,127,191,50,21,127,191,252,38,127,191,19,56,127,191,118,72,127,191,39,88,127,191,36,103,127,191,110,117,127,191,5,131,127,191,232,143,127,191,25,156,127,191,149,167,127,191,95,178,127,191,116,188,127,191,215,197,127,191,133,206,127,191,129,214,127,191,200,221,127,191,93,228,127,191,61,234,127,191,106,239,127,191,227,243,127,191,169,247,127,191,187,250,127,191,25,253,127,191,196,254,127,191,187,255,127,191,250,255,127,63,57,254,127,63,169,249,127,63,75,242,127,63,30,232,127,63,35,219,127,63,89,203,127,63,193,184,127,63,91,163,127,63,40,139,127,63,39,112,127,63,90,82,127,63,191,49,127,63,88,14,127,63,37,232,126,63,38,191,126,63,92,147,126,63,200,100,126,63,105,51,126,63,65,255,125,63,79,200,125,63,150,142,125,63,20,82,125,63,203,18,125,63,188,208,124,63,231,139,124,63,77,68,124,63,239,249,123,63,205,172,123,63,233,92,123,63,67,10,123,63,221,180,122,63,182,92,122,63,209,1,122,63,46,164,121,63,206,67,121,63,178,224,120,63,220,122,120,63,76,18,120,63,4,167,119,63,4,57,119,63,79,200,118,63,228,84,118,63,198,222,117,63,246,101,117,63,117,234,116,63,68,108,116,63,101,235,115,63,218,103,115,63,163,225,114,63,194,88,114,63,57,205,113,63,9,63,113,63,52,174,112,63,187,26,112,63,160,132,111,63,228,235,110,63,138,80,110,63,147,178,109,63,1,18,109,63,213,110,108,63,17,201,107,63,183,32,107,63,201,117,106,63,73,200,105,63,57,24,105,63,155,101,104,63,111,176,103,63,186,248,102,63,124,62,102,63,184,129,101,63,111,194,100,63,164,0,100,63,90,60,99,63,145,117,98,63,76,172,97,63,142,224,96,63,89,18,96,63,174,65,95,63,145,110,94,63,3,153,93,63,8,193,92,63,160,230,91,63,207,9,91,63,152,42,90,63,251,72,89,63,253,100,88,63,159,126,87,63,229,149,86,63,208,170,85,63,99,189,84,63,161,205,83,63,140,219,82,63,39,231,81,63,117,240,80,63,121,247,79,63,52,252,78,63,171,254,77,63,223,254,76,63,212,252,75,63,140,248,74,63,10,242,73,63,82,233,72,63,101,222,71,63,71,209,70,63,251,193,69,63,132,176,68,63,229,156,67,63,32,135,66,63,58,111,65,63,52,85,64,63,19,57,63,63,216,26,62,63,136,250,60,63,38,216,59,63,180,179,58,63,54,141,57,63,175,100,56,63,34,58,55,63,147,13,54,63,5,223,52,63,124,174,51,63,249,123,50,63,130,71,49,63,25,17,48,63,194,216,46,63,127,158,45,63,86,98,44,63,72,36,43,63,90,228,41,63,144,162,40,63,235,94,39,63,113,25,38,63,37,210,36,63,9,137,35,63,35,62,34,63,117,241,32,63,4,163,31,63,210,82,30,63,228,0,29,63,61,173,27,63,225,87,26,63,211,0,25,63,25,168,23,63,180,77,22,63,170,241,20,63,253,147,19,63,178,52,18,63,204,211,16,63,80,113,15,63,66,13,14,63,164,167,12,63,124,64,11,63,205,215,9,63,154,109,8,63,233,1,7,63,189,148,5,63,25,38,4,63,3,182,2,63,126,68,1,63,28,163,255,62,110,186,252,62,250,206,249,62,202,224,246,62,228,239,243,62,81,252,240,62,26,6,238,62,71,13,235,62,224,17,232,62,237,19,229,62,119,19,226,62,135,16,223,62,36,11,220,62,88,3,217,62,42,249,213,62,164,236,210,62,205,221,207,62,175,204,204,62,82,185,201,62,191,163,198,62,254,139,195,62,24,114,192,62,22,86,189,62,0,56,186,62,224,23,183,62,189,245,179,62,161,209,176,62,149,171,173,62,162,131,170,62,207,89,167,62,39,46,164,62,178,0,161,62,121,209,157,62,133,160,154,62,223,109,151,62,143,57,148,62,160,3,145,62,26,204,141,62,5,147,138,62,107,88,135,62,86,28,132,62,205,222,128,62,182,63,123,62,16,191,116,62,187,59,110,62,201,181,103,62,77,45,97,62,89,162,90,62,255,20,84,62,81,133,77,62,99,243,70,62,70,95,64,62,13,201,57,62,202,48,51,62,144,150,44,62,114,250,37,62,130,92,31,62,210,188,24,62,118,27,18,62,127,120,11,62,1,212,4,62,29,92,252,61,114,13,239,61,41,188,225,61,102,104,212,61,78,18,199,61,8,186,185,61,184,95,172,61,132,3,159,61,146,165,145,61,7,70,132,61,18,202,109,61,122,5,83,61,145,62,56,61,164,117,29,61,252,170,2,61,202,189,207,60,86,35,154,60,97,14,73,60,197,167,187,59,61,122,86,186,9,70,241,187,18,221,99,188,80,138,167,188,65,36,221,188,227,93,9,189,35,40,36,189,150,240,62,189,242,182,89,189,234,122,116,189,26,158,135,189,66,253,148,189,200,90,162,189,134,182,175,189,87,16,189,189,22,104,202,189,155,189,215,189,195,16,229,189,105,97,242,189,101,175,255,189,74,125,6,190,104,33,13,190,250,195,19,190,237,100,26,190,46,4,33,190,172,161,39,190,83,61,46,190,16,215,52,190,210,110,59,190,134,4,66,190,25,152,72,190,121,41,79,190,148,184,85,190,86,69,92,190,174,207,98,190,137,87,105,190,214,220,111,190,128,95,118,190,120,223,124,190,84,174,129,190,129,235,132,190,56,39,136,190,114,97,139,190,36,154,142,190,69,209,145,190,205,6,149,190,179,58,152,190,238,108,155,190,116,157,158,190,61,204,161,190,64,249,164,190,115,36,168,190,207,77,171,190,73,117,174,190,218,154,177,190,120,190,180,190,27,224,183,190,186,255,186,190,75,29,190,190,199,56,193,190,37,82,196,190,91,105,199,190,97,126,202,190,48,145,205,190,188,161,208,190,0,176,211,190,241,187,214,190,135,197,217,190,186,204,220,190,129,209,223,190,211,211,226,190,169,211,229,190,250,208,232,190,189,203,235,190,234,195,238,190,120,185,241,190,96,172,244,190,154,156,247,190,28,138,250,190,223,116,253,190,109,46,0,191,3,161,1,191,45,18,3,191,230,129,4,191,44,240,5,191,250,92,7,191,76,200,8,191,30,50,10,191,108,154,11,191,50,1,13,191,108,102,14,191,23,202,15,191,45,44,17,191,172,140,18,191,144,235,19,191,213,72,21,191,118,164,22,191,113,254,23,191,192,86,25,191,98,173,26,191,81,2,28,191,138,85,29,191,9,167,30,191,203,246,31,191,204,68,33,191,9,145,34,191,124,219,35,191,36,36,37,191,253,106,38,191,2,176,39,191,48,243,40,191,132,52,42,191,250,115,43,191,143,177,44,191,63,237,45,191,7,39,47,191,227,94,48,191,208,148,49,191,202,200,50,191,206,250,51,191,218,42,53,191,232,88,54,191,247,132,55,191,2,175,56,191,7,215,57,191,3,253,58,191,241,32,60,191,207,66,61,191,154,98,62,191,79,128,63,191,233,155,64,191,104,181,65,191,198,204,66,191,1,226,67,191,23,245,68,191,3,6,70,191,196,20,71,191,86,33,72,191,182,43,73,191,225,51,74,191,212,57,75,191,141,61,76,191,9,63,77,191,68,62,78,191,61,59,79,191,240,53,80,191,90,46,81,191,121,36,82,191,74,24,83,191,202,9,84,191,247,248,84,191,206,229,85,191,77,208,86,191,112,184,87,191,55,158,88,191,156,129,89,191,160,98,90,191,62,65,91,191,117,29,92,191,65,247,92,191,162,206,93,191,148,163,94,191,20,118,95,191,34,70,96,191,186,19,97,191,217,222,97,191,127,167,98,191,169,109,99,191,84,49,100,191,126,242,100,191,38,177,101,191,73,109,102,191,229,38,103,191,248,221,103,191,128,146,104,191,123,68,105,191,232,243,105,191,195,160,106,191,12,75,107,191,192,242,107,191,222,151,108,191,100,58,109,191,80,218,109,191,160,119,110,191,83,18,111,191,102,170,111,191,217,63,112,191,169,210,112,191,213,98,113,191,91,240,113,191,58,123,114,191,113,3,115,191,253,136,115,191,222,11,116,191,17,140,116,191,150,9,117,191,107,132,117,191,143,252,117,191,0,114,118,191,189,228,118,191,198,84,119,191,24,194,119,191,178,44,120,191,147,148,120,191,187,249,120,191,40,92,121,191,217,187,121,191,205,24,122,191,2,115,122,191,121,202,122,191,47,31,123,191,36,113,123,191,88,192,123,191,201,12,124,191,118,86,124,191,95,157,124,191,130,225,124,191,224,34,125,191,119,97,125,191,71,157,125,191,79,214,125,191,142,12,126,191,4,64,126,191,176,112,126,191,146,158,126,191,169,201,126,191,245,241,126,191,117,23,127,191,41,58,127,191,16,90,127,191,43,119,127,191,120,145,127,191,248,168,127,191,170,189,127,191,143,207,127,191,165,222,127,191,237,234,127,191,102,244,127,191,17,251,127,191,237,254,127,191,234,255,127,63,229,248,127,63,166,230,127,63,45,201,127,63,124,160,127,63,149,108,127,63,121,45,127,63,44,227,126,63,177,141,126,63,11,45,126,63,63,193,125,63,82,74,125,63,72,200,124,63,40,59,124,63,247,162,123,63,189,255,122,63,128,81,122,63,72,152,121,63,30,212,120,63,9,5,120,63,19,43,119,63,70,70,118,63,172,86,117,63,78,92,116,63,56,87,115,63,118,71,114,63,19,45,113,63,28,8,112,63,158,216,110,63,165,158,109,63,64,90,108,63,126,11,107,63,107,178,105,63,25,79,104,63,150,225,102,63,242,105,101,63,62,232,99,63,139,92,98,63,234,198,96,63,109,39,95,63,38,126,93,63,40,203,91,63,133,14,90,63,83,72,88,63,163,120,86,63,139,159,84,63,32,189,82,63,118,209,80,63,163,220,78,63,189,222,76,63,219,215,74,63,19,200,72,63,124,175,70,63,46,142,68,63,65,100,66,63,206,49,64,63,236,246,61,63,180,179,59,63,66,104,57,63,173,20,55,63,16,185,52,63,134,85,50,63,41,234,47,63,21,119,45,63,101,252,42,63,53,122,40,63,161,240,37,63,198,95,35,63,192,199,32,63,172,40,30,63,169,130,27,63,212,213,24,63,74,34,22,63,42,104,19,63,147,167,16,63,164,224,13,63,123,19,11,63,57,64,8,63,253,102,5,63,231,135,2,63,45,70,255,62,91,113,249,62,151,145,243,62,36,167,237,62,69,178,231,62,60,179,225,62,76,170,219,62,186,151,213,62,201,123,207,62,190,86,201,62,223,40,195,62,112,242,188,62,183,179,182,62,251,108,176,62,129,30,170,62,146,200,163,62,115,107,157,62,108,7,151,62,197,156,144,62,199,43,138,62,185,180,131,62,199,111,122,62,33,107,109,62,17,92,96,62,41,67,83,62,253,32,70,62,32,246,56,62,38,195,43,62,164,136,30,62,45,71,17,62,87,255,3,62,110,99,237,61,194,189,210,61,218,14,184,61,222,87,157,61,251,153,130,61,188,172,79,61,101,28,26,61,153,10,201,60,42,167,59,60,193,120,214,186,45,68,113,188,87,215,227,188,76,129,39,189,148,15,93,189,21,74,137,189,90,6,164,189,109,187,190,189,34,104,217,189,78,11,244,189,227,81,7,190,47,152,20,190,247,215,33,190,165,16,47,190,166,65,60,190,100,106,73,190,77,138,86,190,205,160,99,190,80,173,112,190,69,175,125,190,13,83,133,190,158,200,139,190,13,56,146,190,18,161,152,190,102,3,159,190,191,94,165,190,216,178,171,190,105,255,177,190,43,68,184,190,216,128,190,190,42,181,196,190,219,224,202,190,165,3,209,190,69,29,215,190,117,45,221,190,241,51,227,190,118,48,233,190,192,34,239,190,141,10,245,190,155,231,250,190,211,92,0,191,56,64,3,191,219,29,6,191,155,245,8,191,90,199,11,191,247,146,14,191,84,88,17,191,80,23,20,191,205,207,22,191,172,129,25,191,208,44,28,191,26,209,30,191,109,110,33,191,171,4,36,191,183,147,38,191,116,27,41,191,199,155,43,191,147,20,46,191,187,133,48,191,38,239,50,191,183,80,53,191,85,170,55,191,227,251,57,191,74,69,60,191,110,134,62,191,55,191,64,191,139,239,66,191,83,23,69,191,117,54,71,191,218,76,73,191,107,90,75,191,16,95,77,191,179,90,79,191,62,77,81,191,154,54,83,191,179,22,85,191,114,237,86,191,197,186,88,191,149,126,90,191,208,56,92,191,98,233,93,191,56,144,95,191,64,45,97,191,103,192,98,191,156,73,100,191,206,200,101,191,235,61,103,191,227,168,104,191,167,9,106,191,39,96,107,191,84,172,108,191,31,238,109,191,122,37,111,191,88,82,112,191,171,116,113,191,103,140,114,191,127,153,115,191,231,155,116,191,149,147,117,191,126,128,118,191,150,98,119,191,212,57,120,191,47,6,121,191,158,199,121,191,23,126,122,191,148,41,123,191,13,202,123,191,122,95,124,191,213,233,124,191,24,105,125,191,62,221,125,191,64,70,126,191,28,164,126,191,204,246,126,191,77,62,127,191,156,122,127,191,182,171,127,191,153,209,127,191,67,236,127,191,180,251,127,191,166,255,127,63,148,227,127,63,156,154,127,63,204,36,127,63,56,130,126,63,253,178,125,63,63,183,124,63,42,143,123,63,243,58,122,63,212,186,120,63,17,15,119,63,246,55,117,63,213,53,115,63,8,9,113,63,241,177,110,63,249,48,108,63,144,134,105,63,47,179,102,63,83,183,99,63,132,147,96,63,78,72,93,63,69,214,89,63,3,62,86,63,43,128,82,63,101,157,78,63,94,150,74,63,204,107,70,63,106,30,66,63,249,174,61,63,64,30,57,63,13,109,52,63,50,156,47,63,135,172,42,63,235,158,37,63,63,116,32,63,109,45,27,63,97,203,21,63,13,79,16,63,104,185,10,63,107,11,5,63,46,140,254,62,221,212,242,62,241,242,230,62,127,232,218,62,166,183,206,62,136,98,194,62,78,235,181,62,42,84,169,62,81,159,156,62,253,206,143,62,109,229,130,62,206,201,107,62,98,159,81,62,48,80,55,62,211,224,28,62,241,85,2,62,98,104,207,61,124,0,154,61,36,251,72,61,27,164,187,60,243,119,86,187,100,61,241,188,187,192,99,189,103,93,167,189,20,189,220,189,3,251,8,190,115,127,35,190,52,231,61,190,164,45,88,190,38,78,114,190,18,34,134,190,137,5,147,190,52,207,159,190,213,124,172,190,51,12,185,190,26,123,197,190,91,199,209,190,205,238,221,190,80,239,233,190,199,198,245,190,144,185,0,191,38,121,6,191,36,33,12,191,141,176,17,191,102,38,23,191,186,129,28,191,152,193,33,191,21,229,38,191,74,235,43,191,86,211,48,191,91,156,53,191,131,69,58,191,253,205,62,191,252,52,67,191,188,121,71,191,125,155,75,191,132,153,79,191,31,115,83,191,161,39,87,191,99,182,90,191,198,30,94,191,48,96,97,191,15,122,100,191,216,107,103,191,7,53,106,191,31,213,108,191,169,75,111,191,55,152,113,191,98,186,115,191,201,177,117,191,22,126,119,191,246,30,121,191,33,148,122,191,85,221,123,191,89,250,124,191,250,234,125,191,14,175,126,191,116,70,127,191,15,177,127,191,206,238,127,191,0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,3,0,0,0,2,0,0,0,5,0,0,0,2,0,0,0,3,0,0,0,2,0,0,0,3,0,0,0,2,0,0,0,5,0,0,0,2,0,0,0,3,0,0,0,2,0,0,0,0,0,206,64,0,0,200,64,0,0,184,64,0,0,170,64,0,0,162,64,0,0,154,64,0,0,144,64,0,0,140,64,0,0,156,64,0,0,150,64,0,0,146,64,0,0,142,64,0,0,156,64,0,0,148,64,0,0,138,64,0,0,144,64,0,0,140,64,0,0,148,64,0,0,152,64,0,0,142,64,0,0,112,64,0,0,112,64,0,0,112,64,0,0,112,64,0,0,112,64,0,134,107,63,0,20,46,63,0,112,189,62,0,208,76,62,0,0,102,63,0,0,76,63,0,0,38,63,0,0,0,63,15,0,0,0,10,0,0,0,5,0,0,0,6,0,0,0,4,0,0,0,3,0,0,0,0,115,0,0,8,115,0,0,24,115,0,0,56,115,0,0,64,115,0,0,80,115,0,0,112,115,0,0,152,115,0,0,232,115,0,0,136,116,0,0,144,116,0,0,160,116,0,0,0,0,0,0,64,31,0,0,184,36,0,0,236,44,0,0,188,52,0,0,92,68,0,0,168,97,0,0,128,56,1,0,0,0,0,0,40,35,0,0,224,46,0,0,164,56,0,0,68,72,0,0,180,95,0,0,172,138,0,0,128,56,1,0,0,0,0,0,4,41,0,0,176,54,0,0,104,66,0,0,252,83,0,0,84,111,0,0,16,164,0,0,128,56,1,0,222,116,0,0,225,116,0,0,10,103,242,14,86,205,228,29,10,103,242,14,117,82,130,12,89,154,4,25,117,82,130,12,70,17,49,10,237,3,98,20,70,17,49,10,218,2,215,7,249,198,173,15,218,2,215,7,34,182,82,5,218,250,164,10,34,182,82,5,70,243,46,30,43,227,75,14,31,102,128,24,28,44,29,10,218,97,72,18,237,156,244,6,236,48,19,11,227,144,165,4,237,164,29,2,10,223,107,3,1,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,6,0,0,0,1,0,0,0,5,0,0,0,2,0,0,0,15,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,12,0,0,0,3,0,0,0,11,0,0,0,4,0,0,0,14,0,0,0,1,0,0,0,9,0,0,0,6,0,0,0,13,0,0,0,2,0,0,0,10,0,0,0,5,0,0,0,144,69,0,0,80,72,0,0,12,75,0,0,196,77,0,0,120,80,0,0,40,83,0,0,212,85,0,0,60,87,0,0,248,87,0,0,108,88,0,0,184,88,0,0,240,88,0,0,16,89,0,0,40,89,0,0,52,89,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,3,0,0,0,5,0,0,0,7,0,0,0,9,0,0,0,11,0,0,0,13,0,0,0,15,0,0,0,17,0,0,0,19,0,0,0,21,0,0,0,23,0,0,0,25,0,0,0,27,0,0,0,29,0,0,0,31,0,0,0,33,0,0,0,35,0,0,0,37,0,0,0,39,0,0,0,41,0,0,0,43,0,0,0,45,0,0,0,47,0,0,0,49,0,0,0,51,0,0,0,53,0,0,0,55,0,0,0,57,0,0,0,59,0,0,0,61,0,0,0,63,0,0,0,65,0,0,0,67,0,0,0,69,0,0,0,71,0,0,0,73,0,0,0,75,0,0,0,77,0,0,0,79,0,0,0,81,0,0,0,83,0,0,0,85,0,0,0,87,0,0,0,89,0,0,0,91,0,0,0,93,0,0,0,95,0,0,0,97,0,0,0,99,0,0,0,101,0,0,0,103,0,0,0,105,0,0,0,107,0,0,0,109,0,0,0,111,0,0,0,113,0,0,0,115,0,0,0,117,0,0,0,119,0,0,0,121,0,0,0,123,0,0,0,125,0,0,0,127,0,0,0,129,0,0,0,131,0,0,0,133,0,0,0,135,0,0,0,137,0,0,0,139,0,0,0,141,0,0,0,143,0,0,0,145,0,0,0,147,0,0,0,149,0,0,0,151,0,0,0,153,0,0,0,155,0,0,0,157,0,0,0,159,0,0,0,161,0,0,0,163,0,0,0,165,0,0,0,167,0,0,0,169,0,0,0,171,0,0,0,173,0,0,0,175,0,0,0,177,0,0,0,179,0,0,0,181,0,0,0,183,0,0,0,185,0,0,0,187,0,0,0,189,0,0,0,191,0,0,0,193,0,0,0,195,0,0,0,197,0,0,0,199,0,0,0,201,0,0,0,203,0,0,0,205,0,0,0,207,0,0,0,209,0,0,0,211,0,0,0,213,0,0,0,215,0,0,0,217,0,0,0,219,0,0,0,221,0,0,0,223,0,0,0,225,0,0,0,227,0,0,0,229,0,0,0,231,0,0,0,233,0,0,0,235,0,0,0,237,0,0,0,239,0,0,0,241,0,0,0,243,0,0,0,245,0,0,0,247,0,0,0,249,0,0,0,251,0,0,0,253,0,0,0,255,0,0,0,1,1,0,0,3,1,0,0,5,1,0,0,7,1,0,0,9,1,0,0,11,1,0,0,13,1,0,0,15,1,0,0,17,1,0,0,19,1,0,0,21,1,0,0,23,1,0,0,25,1,0,0,27,1,0,0,29,1,0,0,31,1,0,0,33,1,0,0,35,1,0,0,37,1,0,0,39,1,0,0,41,1,0,0,43,1,0,0,45,1,0,0,47,1,0,0,49,1,0,0,51,1,0,0,53,1,0,0,55,1,0,0,57,1,0,0,59,1,0,0,61,1,0,0,63,1,0,0,65,1,0,0,67,1,0,0,69,1,0,0,71,1,0,0,73,1,0,0,75,1,0,0,77,1,0,0,79,1,0,0,81,1,0,0,83,1,0,0,85,1,0,0,87,1,0,0,89,1,0,0,91,1,0,0,93,1,0,0,95,1,0,0,13,0,0,0,25,0,0,0,41,0,0,0,61,0,0,0,85,0,0,0,113,0,0,0,145,0,0,0,181,0,0,0,221,0,0,0,9,1,0,0,57,1,0,0,109,1,0,0,165,1,0,0,225,1,0,0,33,2,0,0,101,2,0,0,173,2,0,0,249,2,0,0,73,3,0,0,157,3,0,0,245,3,0,0,81,4,0,0,177,4,0,0,21,5,0,0,125,5,0,0,233,5,0,0,89,6,0,0,205,6,0,0,69,7,0,0,193,7,0,0,65,8,0,0,197,8,0,0,77,9,0,0,217,9,0,0,105,10,0,0,253,10,0,0,149,11,0,0,49,12,0,0,209,12,0,0,117,13,0,0,29,14,0,0,201,14,0,0,121,15,0,0,45,16,0,0,229,16,0,0,161,17,0,0,97,18,0,0,37,19,0,0,237,19,0,0,185,20,0,0,137,21,0,0,93,22,0,0,53,23,0,0,17,24,0,0,241,24,0,0,213,25,0,0,189,26,0,0,169,27,0,0,153,28,0,0,141,29,0,0,133,30,0,0,129,31,0,0,129,32,0,0,133,33,0,0,141,34,0,0,153,35,0,0,169,36,0,0,189,37,0,0,213,38,0,0,241,39,0,0,17,41,0,0,53,42,0,0,93,43,0,0,137,44,0,0,185,45,0,0,237,46,0,0,37,48,0,0,97,49,0,0,161,50,0,0,229,51,0,0,45,53,0,0,121,54,0,0,201,55,0,0,29,57,0,0,117,58,0,0,209,59,0,0,49,61,0,0,149,62,0,0,253,63,0,0,105,65,0,0,217,66,0,0,77,68,0,0,197,69,0,0,65,71,0,0,193,72,0,0,69,74,0,0,205,75,0,0,89,77,0,0,233,78,0,0,125,80,0,0,21,82,0,0,177,83,0,0,81,85,0,0,245,86,0,0,157,88,0,0,73,90,0,0,249,91,0,0,173,93,0,0,101,95,0,0,33,97,0,0,225,98,0,0,165,100,0,0,109,102,0,0,57,104,0,0,9,106,0,0,221,107,0,0,181,109,0,0,145,111,0,0,113,113,0,0,85,115,0,0,61,117,0,0,41,119,0,0,25,121,0,0,13,123,0,0,5,125,0,0,1,127,0,0,1,129,0,0,5,131,0,0,13,133,0,0,25,135,0,0,41,137,0,0,61,139,0,0,85,141,0,0,113,143,0,0,145,145,0,0,181,147,0,0,221,149,0,0,9,152,0,0,57,154,0,0,109,156,0,0,165,158,0,0,225,160],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+10240);allocate([33,163,0,0,101,165,0,0,173,167,0,0,249,169,0,0,73,172,0,0,157,174,0,0,245,176,0,0,81,179,0,0,177,181,0,0,21,184,0,0,125,186,0,0,233,188,0,0,89,191,0,0,205,193,0,0,69,196,0,0,193,198,0,0,65,201,0,0,197,203,0,0,77,206,0,0,217,208,0,0,105,211,0,0,253,213,0,0,149,216,0,0,49,219,0,0,209,221,0,0,117,224,0,0,29,227,0,0,201,229,0,0,121,232,0,0,45,235,0,0,229,237,0,0,161,240,0,0,63,0,0,0,129,0,0,0,231,0,0,0,121,1,0,0,63,2,0,0,65,3,0,0,135,4,0,0,25,6,0,0,255,7,0,0,65,10,0,0,231,12,0,0,249,15,0,0,127,19,0,0,129,23,0,0,7,28,0,0,25,33,0,0,191,38,0,0,1,45,0,0,231,51,0,0,121,59,0,0,191,67,0,0,193,76,0,0,135,86,0,0,25,97,0,0,127,108,0,0,193,120,0,0,231,133,0,0,249,147,0,0,255,162,0,0,1,179,0,0,7,196,0,0,25,214,0,0,63,233,0,0,129,253,0,0,231,18,1,0,121,41,1,0,63,65,1,0,65,90,1,0,135,116,1,0,25,144,1,0,255,172,1,0,65,203,1,0,231,234,1,0,249,11,2,0,127,46,2,0,129,82,2,0,7,120,2,0,25,159,2,0,191,199,2,0,1,242,2,0,231,29,3,0,121,75,3,0,191,122,3,0,193,171,3,0,135,222,3,0,25,19,4,0,127,73,4,0,193,129,4,0,231,187,4,0,249,247,4,0,255,53,5,0,1,118,5,0,7,184,5,0,25,252,5,0,63,66,6,0,129,138,6,0,231,212,6,0,121,33,7,0,63,112,7,0,65,193,7,0,135,20,8,0,25,106,8,0,255,193,8,0,65,28,9,0,231,120,9,0,249,215,9,0,127,57,10,0,129,157,10,0,7,4,11,0,25,109,11,0,191,216,11,0,1,71,12,0,231,183,12,0,121,43,13,0,191,161,13,0,193,26,14,0,135,150,14,0,25,21,15,0,127,150,15,0,193,26,16,0,231,161,16,0,249,43,17,0,255,184,17,0,1,73,18,0,7,220,18,0,25,114,19,0,63,11,20,0,129,167,20,0,231,70,21,0,121,233,21,0,63,143,22,0,65,56,23,0,135,228,23,0,25,148,24,0,255,70,25,0,65,253,25,0,231,182,26,0,249,115,27,0,127,52,28,0,129,248,28,0,7,192,29,0,25,139,30,0,191,89,31,0,1,44,32,0,231,1,33,0,121,219,33,0,191,184,34,0,193,153,35,0,135,126,36,0,25,103,37,0,127,83,38,0,193,67,39,0,231,55,40,0,249,47,41,0,255,43,42,0,1,44,43,0,7,48,44,0,25,56,45,0,63,68,46,0,129,84,47,0,231,104,48,0,121,129,49,0,63,158,50,0,65,191,51,0,135,228,52,0,25,14,54,0,255,59,55,0,65,110,56,0,231,164,57,0,249,223,58,0,127,31,60,0,129,99,61,0,7,172,62,0,25,249,63,0,191,74,65,0,1,161,66,0,231,251,67,0,121,91,69,0,191,191,70,0,193,40,72,0,135,150,73,0,25,9,75,0,127,128,76,0,193,252,77,0,231,125,79,0,249,3,81,0,255,142,82,0,1,31,84,0,7,180,85,0,25,78,87,0,63,237,88,0,129,145,90,0,231,58,92,0,121,233,93,0,63,157,95,0,65,86,97,0,135,20,99,0,25,216,100,0,255,160,102,0,65,111,104,0,231,66,106,0,249,27,108,0,127,250,109,0,65,1,0,0,169,2,0,0,9,5,0,0,193,8,0,0,65,14,0,0,9,22,0,0,169,32,0,0,193,46,0,0,1,65,0,0,41,88,0,0,9,117,0,0,129,152,0,0,129,195,0,0,9,247,0,0,41,52,1,0,1,124,1,0,193,207,1,0,169,48,2,0,9,160,2,0,65,31,3,0,193,175,3,0,9,83,4,0,169,10,5,0,65,216,5,0,129,189,6,0,41,188,7,0,9,214,8,0,1,13,10,0,1,99,11,0,9,218,12,0,41,116,14,0,129,51,16,0,65,26,18,0,169,42,20,0,9,103,22,0,193,209,24,0,65,109,27,0,9,60,30,0,169,64,33,0,193,125,36,0,1,246,39,0,41,172,43,0,9,163,47,0,129,221,51,0,129,94,56,0,9,41,61,0,41,64,66,0,1,167,71,0,193,96,77,0,169,112,83,0,9,218,89,0,65,160,96,0,193,198,103,0,9,81,111,0,169,66,119,0,65,159,127,0,129,106,136,0,41,168,145,0,9,92,155,0,1,138,165,0,1,54,176,0,9,100,187,0,41,24,199,0,129,86,211,0,65,35,224,0,169,130,237,0,9,121,251,0,193,10,10,1,65,60,25,1,9,18,41,1,169,144,57,1,193,188,74,1,1,155,92,1,41,48,111,1,9,129,130,1,129,146,150,1,129,105,171,1,9,11,193,1,41,124,215,1,1,194,238,1,193,225,6,2,169,224,31,2,9,196,57,2,65,145,84,2,193,77,112,2,9,255,140,2,169,170,170,2,65,86,201,2,129,7,233,2,41,196,9,3,9,146,43,3,1,119,78,3,1,121,114,3,9,158,151,3,41,236,189,3,129,105,229,3,65,28,14,4,169,10,56,4,9,59,99,4,193,179,143,4,65,123,189,4,9,152,236,4,169,16,29,5,193,235,78,5,1,48,130,5,41,228,182,5,9,15,237,5,129,183,36,6,129,228,93,6,9,157,152,6,41,232,212,6,1,205,18,7,193,82,82,7,169,128,147,7,9,94,214,7,65,242,26,8,193,68,97,8,9,93,169,8,169,66,243,8,65,253,62,9,129,148,140,9,41,16,220,9,9,120,45,10,1,212,128,10,1,44,214,10,9,136,45,11,41,240,134,11,129,108,226,11,65,5,64,12,169,194,159,12,9,173,1,13,193,204,101,13,65,42,204,13,9,206,52,14,169,192,159,14,193,10,13,15,1,181,124,15,41,200,238,15,9,77,99,16,129,76,218,16,129,207,83,17,9,223,207,17,41,132,78,18,1,200,207,18,193,179,83,19,169,80,218,19,9,168,99,20,65,195,239,20,193,171,126,21,9,107,16,22,169,10,165,22,65,148,60,23,129,17,215,23,41,140,116,24,9,14,21,25,1,161,184,25,1,79,95,26,9,34,9,27,41,36,182,27,129,95,102,28,65,222,25,29,169,170,208,29,9,207,138,30,193,85,72,31,65,73,9,32,9,180,205,32,169,160,149,33,193,25,97,34,1,42,48,35,41,220,2,36,9,59,217,36,129,81,179,37,147,6,0,0,69,14,0,0,15,28,0,0,17,51,0,0,91,87,0,0,13,142,0,0,119,221,0,0,57,77,1,0,99,230,1,0,149,179,2,0,31,193,3,0,33,29,5,0,171,215,6,0,221,2,9,0,7,179,11,0,201,254,14,0,51,255,18,0,229,207,23,0,47,143,29,0,49,94,36,0,251,96,44,0,173,190,53,0,151,161,64,0,89,55,77,0,3,177,91,0,53,67,108,0,63,38,127,0,65,150,148,0,75,211,172,0,125,33,200,0,39,201,230,0,233,22,9,1,211,91,47,1,133,237,89,1,79,38,137,1,81,101,189,1,155,14,247,1,77,139,54,2,183,73,124,2,121,189,200,2,163,95,28,3,213,174,119,3,95,47,219,3,97,107,71,4,235,242,188,4,29,92,60,5,71,67,198,5,9,75,91,6,115,28,252,6,37,103,169,7,111,225,99,8,113,72,44,9,59,96,3,10,237,243,233,10,215,213,224,11,153,223,232,12,67,242,2,14,117,246,47,15,127,220,112,16,129,156,198,17,139,54,50,19,189,178,180,20,103,33,79,22,41,155,2,24,19,65,208,25,197,60,185,27,143,192,190,29,145,7,226,31,219,85,36,34,141,248,134,36,247,69,11,39,185,157,178,41,227,104,126,44,21,26,112,47,159,45,137,50,161,41,203,53,43,158,55,57,93,37,208,60,135,99,150,64,73,7,140,68,179,201,178,72,101,110,12,77,175,195,154,81,177,162,95,86,123,239,92,91,45,153,148,96,23,154,8,102,217,247,186,107,131,195,173,113,181,25,227,119,191,34,93,126,29,35,0,0,113,77,0,0,145,156,0,0,253,38,1,0,101,12,2,0,233,119,3,0,153,162,5,0,53,214,8,0,45,112,13,0,225,228,19,0,33,195,28,0,237,183,40,0,117,146,56,0,89,72,77,0,41,250,103,0,37,248,137,0,61,199,180,0,81,38,234,0,177,19,44,1,221,210,124,1,133,242,222,1,201,82,85,2,185,43,227,2,21,20,140,3,77,8,84,4,193,113,63,5,65,46,83,6,205,151,148,7,149,140,9,9,57,119,184,10,73,87,168,12,5,202,224,14,93,19,106,17,49,39,77,20,209,178,147,23,189,38,72,27,165,192,117,31,169,149,40,36,217,156,109,41,245,185,82,47,109,200,230,53,161,166,57,61,97,65,92,69,173,159,96,78,181,238,89,88,25,142,92,99,105,28,126,111,229,131,213,124,255,189,0,0,1,168,1,0,143,107,3,0,241,158,6,0,63,35,12,0,193,61,21,0,143,182,35,0,241,252,57,0,255,81,91,0,1,250,139,0,15,117,209,0,113,191,50,1,63,154,184,1,193,220,109,2,15,207,95,3,113,142,158,4,255,123,61,6,1,182,83,8,143,156,252,10,241,97,88,14,63,167,140,18,193,37,197,23,143,101,52,30,241,129,20,38,255,251,167,47,1,156,58,59,15,98,34,73,113,134,192,89,63,138,130,109,193,88,227,132,1,14,4,0,145,33,9,0,17,44,19,0,65,238,37,0,65,79,71,0,145,67,128,0,17,247,221,0,1,70,115,1,1,146,90,2,17,1,184,3,145,53,188,5,65,143,167,8,65,6,206,12,17,178,155,18,145,15,154,26,1,26,118,37,1,76,7,52,145,158,87,71,17,157,172,96,65,166,145,129,35,81,22,0,197,158,50,0,23,185,107,0,153,246,216,0,107,137,160,1,13,196,254,2,31,1,80,5,33,217,29,9,51,108,48,15,213,162,164,24,167,103,8,39,41,253,125,60,123,181,231,91,29,119,29,137,175,160,45,201,173,142,123,0,137,230,25,1,57,150,94,2,61,22,216,4,181,99,119,9,225,40,198,17,33,3,52,32,117,72,130,56,125,87,87,96,191,91,175,2,129,216,39,6,247,132,94,13,233,254,173,27,127,139,235,54,129,183,229,104,23,3,156,193,193,12,255,14,57,106,133,34,25,238,145,75,129,120,43,158,51,225,9,84,32,0,10,0,20,46,100,1,221,121,0,0,188,100,0,0,29,123,0,0,93,123,0,0,111,123,0,0,15,124,0,0,87,124,0,0,60,103,0,0,32,0,16,0,102,38,171,1,159,124,0,0,82,103,0,0,159,126,0,0,223,126,0,0,253,126,0,0,253,127,0,0,69,128,0,0,82,107,0,0,48,117,0,0,112,23,0,0,32,209,255,255,32,209,255,255,0,64,0,0,108,34,0,0,66,15,0,0,18,6,0,0,77,2,0,0,219,0,0,0,237,0,0,0,153,0,0,0,73,0,0,0,30,0,0,0,12,0,0,0,7,0,0,0,0,64,0,0,147,93,0,0,189,112,0,0,237,121,0,0,178,125,0,0,36,127,0,0,0,0,0,0,240,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,5,0,0,0,3,0,0,0,4,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,40,1,0,0,6,0,0,0,7,0,0,0,1,0,0,0,0,0,0,0,88,1,0,0,1,0,0,0,8,0,0,0,3,0,0,0,4,0,0,0,2,0,0,0,0,0,0,0,72,1,0,0,1,0,0,0,9,0,0,0,3,0,0,0,4,0,0,0,3,0,0,0,0,0,0,0,216,1,0,0,1,0,0,0,10,0,0,0,3,0,0,0,4,0,0,0,1,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,0,0,1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,10,0,12,0,14,0,16,0,20,0,24,0,28,0,34,0,40,0,48,0,60,0,78,0,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,8,0,8,0,8,0,16,0,16,0,16,0,21,0,21,0,24,0,29,0,34,0,36,0,0,0,96,0,192,0,32,1,128,1,32,0,128,0,224,0,64,1,160,1,64,0,160,0,0,1,96,1,192,1,8,0,104,0,200,0,40,1,136,1,40,0,136,0,232,0,72,1,168,1,72,0,168,0,8,1,104,1,200,1,16,0,112,0,208,0,48,1,144,1,48,0,144,0,240,0,80,1,176,1,80,0,176,0,16,1,112,1,208,1,24,0,120,0,216,0,56,1,152,1,56,0,152,0,248,0,88,1,184,1,88,0,184,0,24,1,120,1,216,1,4,0,100,0,196,0,36,1,132,1,36,0,132,0,228,0,68,1,164,1,68,0,164,0,4,1,100,1,196,1,12,0,108,0,204,0,44,1,140,1,44,0,140,0,236,0,76,1,172,1,76,0,172,0,12,1,108,1,204,1,20,0,116,0,212,0,52,1,148,1,52,0,148,0,244,0,84,1,180,1,84,0,180,0,20,1,116,1,212,1,28,0,124,0,220,0,60,1,156,1,60,0,156,0,252,0,92,1,188,1,92,0,188,0,28,1,124,1,220,1,1,0,97,0,193,0,33,1,129,1,33,0,129,0,225,0,65,1,161,1,65,0,161,0,1,1,97,1,193,1,9,0,105,0,201,0,41,1,137,1,41,0,137,0,233,0,73,1,169,1,73,0,169,0,9,1,105,1,201,1,17,0,113,0,209,0,49,1,145,1,49,0,145,0,241,0,81,1,177,1,81,0,177,0,17,1,113,1,209,1,25,0,121,0,217,0,57,1,153,1,57,0,153,0,249,0,89,1,185,1,89,0,185,0,25,1,121,1,217,1,5,0,101,0,197,0,37,1,133,1,37,0,133,0,229,0,69,1,165,1,69,0,165,0,5,1,101,1,197,1,13,0,109,0,205,0,45,1,141,1,45,0,141,0,237,0,77,1,173,1,77,0,173,0,13,1,109,1,205,1,21,0,117,0,213,0,53,1,149,1,53,0,149,0,245,0,85,1,181,1,85,0,181,0,21,1,117,1,213,1,29,0,125,0,221,0,61,1,157,1,61,0,157,0,253,0,93,1,189,1,93,0,189,0,29,1,125,1,221,1,2,0,98,0,194,0,34,1,130,1,34,0,130,0,226,0,66,1,162,1,66,0,162,0,2,1,98,1,194,1,10,0,106,0,202,0,42,1,138,1,42,0,138,0,234,0,74,1,170,1,74,0,170,0,10,1,106,1,202,1,18,0,114,0,210,0,50,1,146,1,50,0,146,0,242,0,82,1,178,1,82,0,178,0,18,1,114,1,210,1,26,0,122,0,218,0,58,1,154,1,58,0,154,0,250,0,90,1,186,1,90,0,186,0,26,1,122,1,218,1,6,0,102,0,198,0,38,1,134,1,38,0,134,0,230,0,70,1,166,1,70,0,166,0,6,1,102,1,198,1,14,0,110,0,206,0,46,1,142,1,46,0,142,0,238,0,78,1,174,1,78,0,174,0,14,1,110,1,206,1,22,0,118,0,214,0,54,1,150,1,54,0,150,0,246,0,86,1,182,1,86,0,182,0,22,1,118,1,214,1,30,0,126,0,222,0,62,1,158,1,62,0,158,0,254,0,94,1,190,1,94,0,190,0,30,1,126,1,222,1,3,0,99,0,195,0,35,1,131,1,35,0,131,0,227,0,67,1,163,1,67,0,163,0,3,1,99,1,195,1,11,0,107,0,203,0,43,1,139,1,43,0,139,0,235,0,75,1,171,1,75,0,171,0,11,1,107,1,203,1,19,0,115,0,211,0,51,1,147,1,51,0,147,0,243,0,83,1,179,1,83,0,179,0,19,1,115,1,211,1,27,0,123,0,219,0,59,1,155,1,59,0,155,0,251,0,91,1,187,1,91,0,187,0,27,1,123,1,219,1,7,0,103,0,199,0,39,1,135,1,39,0,135,0,231,0,71,1,167,1,71,0,167,0,7,1,103,1,199,1,15,0,111,0,207,0,47,1,143,1,47,0,143,0,239,0,79,1,175,1,79,0,175,0,15,1,111,1,207,1,23,0,119,0,215,0,55,1,151,1,55,0,151,0,247,0,87,1,183,1,87,0,183,0,23,1,119,1,215,1,31,0,127,0,223,0,63,1,159,1,63,0,159,0,255,0,95,1,191,1,95,0,191,0,31,1,127,1,223,1,0,0,48,0,96,0,144,0,192,0,16,0,64,0,112,0,160,0,208,0,32,0,80,0,128,0,176,0,224,0,4,0,52,0,100,0,148,0,196,0,20,0,68,0,116,0,164,0,212,0,36,0,84,0,132,0,180,0,228,0,8,0,56,0,104,0,152,0,200,0,24,0,72,0,120,0,168,0,216,0,40,0,88,0,136,0,184,0,232,0,12,0,60,0,108,0,156,0,204,0,28,0,76,0,124,0,172,0,220,0,44,0,92,0,140,0,188,0,236,0,1,0,49,0,97,0,145,0,193,0,17,0,65,0,113,0,161,0,209,0,33,0,81,0,129,0,177,0,225,0,5,0,53,0,101,0,149,0,197,0,21,0,69,0,117,0,165,0,213,0,37,0,85,0,133,0,181,0,229,0,9,0,57,0,105,0,153,0,201,0,25,0,73,0,121,0,169,0,217,0,41,0,89,0,137,0,185,0,233,0,13,0,61,0,109,0,157,0,205,0,29,0,77,0,125,0,173,0,221,0,45,0,93,0,141,0,189,0,237,0,2,0,50,0,98,0,146,0,194,0,18,0,66,0,114,0,162,0,210,0,34,0,82,0,130,0,178,0,226,0,6,0,54,0,102,0,150,0,198,0,22,0,70,0,118,0,166,0,214,0,38,0,86,0,134,0,182,0,230,0,10,0,58,0,106,0,154,0,202,0,26,0,74,0,122,0,170,0,218,0,42,0,90,0,138,0,186,0,234,0,14,0,62,0,110,0,158,0,206,0,30,0,78,0,126,0,174,0,222,0,46,0,94,0,142,0,190,0,238,0,3,0,51,0,99,0,147,0,195,0,19,0,67,0,115,0,163,0,211,0,35,0,83,0,131,0,179,0,227,0,7,0,55,0,103,0,151,0,199,0,23,0,71,0,119,0,167,0,215,0,39,0,87,0,135,0,183,0,231,0,11,0,59,0,107,0,155,0,203,0,27,0,75,0,123,0,171,0,219,0,43,0,91,0,139,0,187,0,235,0,15,0,63,0,111,0,159,0,207,0,31,0,79,0,127,0,175,0,223,0,47,0,95,0,143,0,191,0,239,0,0,0,24,0,48,0,72,0,96,0,8,0,32,0,56,0,80,0,104,0,16,0,40,0,64,0,88,0,112,0,4,0,28,0,52,0,76,0,100,0,12,0,36,0,60,0,84,0,108,0,20,0,44,0,68,0,92,0,116,0,1,0,25,0,49,0,73,0,97,0,9,0,33,0,57,0,81,0,105,0,17,0,41,0,65,0,89,0,113,0,5,0,29,0,53,0,77,0,101,0,13,0,37,0,61,0,85,0,109,0,21,0,45,0,69,0,93,0,117,0,2,0,26,0,50,0,74,0,98,0,10,0,34,0,58,0,82,0,106,0,18,0,42,0,66,0,90,0,114,0,6,0,30,0,54,0,78,0,102,0,14,0,38,0,62,0,86,0,110,0,22,0,46,0,70,0,94,0,118,0,3,0,27,0,51,0,75,0,99,0,11,0,35,0,59,0,83,0,107,0,19,0,43,0,67,0,91,0,115,0,7,0,31,0,55,0,79,0,103,0,15,0,39,0,63,0,87,0,111,0,23,0,47,0,71,0,95,0,119,0,0,0,12,0,24,0,36,0,48,0,4,0,16,0,28,0,40,0,52,0,8,0,20,0,32,0,44,0,56,0,1,0,13,0,25,0,37,0,49,0,5,0,17,0,29,0,41,0,53,0,9,0,21,0,33,0,45,0,57,0,2,0,14,0,26,0,38,0,50,0,6,0,18,0,30,0,42,0,54,0,10,0,22,0,34,0,46,0,58,0,3,0,15,0,27,0,39,0,51,0,7,0,19,0,31,0,43,0,55,0,11,0,23,0,35,0,47,0,59,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,41,0,41,0,41,0,82,0,82,0,123,0,164,0,200,0,222,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,0,41,0,41,0,41,0,123,0,123,0,123,0,164,0,164,0,240,0,10,1,27,1,39,1,41,0,41,0,41,0,41,0,41,0,41,0,41,0,41,0,123,0,123,0,123,0,123,0,240,0,240,0,240,0,10,1,10,1,49,1,62,1,72,1,80,1,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,240,0,240,0,240,0,240,0,49,1,49,1,49,1,62,1,62,1,87,1,95,1,102,1,108,1,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,49,1,49,1,49,1,49,1,87,1,87,1,87,1,95,1,95,1,114,1,120,1,126,1,131,1,18,0,29,0,38,0,40,0,46,0,52,0,62,0,84,0,92,202,190,216,182,223,154,226,156,230,120,236,122,244,204,252,52,3,134,11,136,19,100,25,102,29,74,32,66,39,164,53,100,0,240,0,32,0,100,0,205,60,0,48,0,32,42,175,213,201,207,255,64,0,17,0,99,255,97,1,16,254,163,0,39,43,189,86,217,255,6,0,91,0,86,255,186,0,23,0,128,252,192,24,216,77,237,255,220,255,102,0,167,255,232,255,72,1,73,252,8,10,37,62,135,199,61,201,64,0,128,0,134,255,36,0,54,1,0,253,72,2,51,36,69,69,12,0,128,0,18,0,114,255,32,1,139,255,159,252,27,16,123,56,104,2,13,200,246,255,39,0,58,0,210,255,172,255,120,0,184,0,197,254,227,253,4,5,4,21,64,35,230,62,198,196,243,255,0,0,20,0,26,0,5,0,225,255,213,255,252,255,65,0,90,0,7,0,99,255,8,255,212,255,81,2,47,6,52,10,199,12,228,87,5,197,3,0,242,255,236,255,241,255,2,0,25,0,37,0,25,0,240,255,185,255,149,255,177,255,50,0,36,1,111,2,214,3,8,5,184,5,148,107,103,196,17,0,12,0,8,0,1,0,246,255,234,255,226,255,224,255,234,255,3,0,44,0,100,0,168,0,243,0,61,1,125,1,173,1,199,1,189,0,168,253,105,2,103,119,117,0,97,255,210,251,8,116,52,0,221,0,168,246,116,110,252,255,17,2,234,242,229,102,208,255,246,2,140,240,165,93,176,255,137,3,117,239,6,83,157,255,204,3,130,239,102,71,149,255,199,3,139,240,39,59,153,255,128,3,97,242,174,46,165,255,5,3,207,244,94,34,185,255,99,2,161,247,152,22,210,255,169,1,161,250,180,11,0,64,202,69,27,76,255,82,130,90,179,98,162,107,96,117,184,126,154,121,154,121,102,102,184,126,51,115,81,11,10,9,10,9,10,9,239,8,239,8,10,9,252,8,23,9,239,8,72,11,20,10,90,9,63,9,10,9,226,8,226,8,226,8,226,8,146,8,183,9,36,9,36,9,10,9,10,9,10,9,36,9,36,9,63,9,50,9,144,12,206,10,36,9,36,9,10,9,226,8,173,8,159,8,213,8,146,8,156,9,170,9,63,9,90,9,90,9,90,9,90,9,63,9,103,9,10,9,151,13,240,11,79,8,159,8,226,8,226,8,226,8,239,8,10,9,213,8,210,12,69,12,20,10,90,9,199,8,173,8,159,8,146,8,146,8,66,8,0,16,5,15,173,8,60,10,60,10,103,9,10,9,90,9,63,9,26,8,106,12,172,12,63,9,173,8,249,9,130,9,36,9,10,9,119,8,173,8,10,13,160,13,166,10,146,8,213,8,156,9,50,9,63,9,159,8,53,8,50,9,116,9,23,9,63,9,90,9,116,9,116,9,116,9,156,9,63,9,195,14,45,14,130,9,223,9,63,9,226,8,226,8,252,8,159,8,0,8,182,12,153,12,153,10,30,11,143,9,23,9,252,8,252,8,226,8,79,8,191,12,228,12,193,10,246,10,143,9,213,8,213,8,199,8,79,8,53,8,57,11,165,11,73,10,63,9,103,9,50,9,146,8,199,8,199,8,66,8,153,12,125,12,73,10,20,10,226,8,133,8,199,8,173,8,173,8,93,8,106,12,238,12,180,10,103,9,226,8,226,8,226,8,239,8,146,8,66,8,69,12,200,12,156,9,13,8,239,8,196,9,63,9,183,9,130,9,133,8,179,13,210,12,10,9,140,10,87,10,170,9,63,9,90,9,36,9,79,8,95,13,207,13,222,11,240,11,252,8,158,7,173,8,226,8,226,8,226,8,76,13,38,13,39,8,127,10,57,11,50,9,116,9,226,8,170,9,236,9,176,14,160,13,158,7,100,10,81,11,223,9,90,9,63,9,156,9,213,8,212,11,200,12,180,10,72,11,180,10,106,8,79,8,239,8,186,8,199,8,111,14,73,14,233,7,177,7,100,10,140,10,20,10,196,9,23,9,63,9,135,12,85,13,50,9,26,8,72,11,72,11,36,9,183,9,199,8,119,8,10,13,38,13,30,11,220,10,23,9,106,8,226,8,239,8,66,8,13,8,23,9,252,8,133,8,119,8,133,8,63,9,73,10,140,10,140,10,249,9,103,9,130,9,173,8,213,8,173,8,173,8,36,9,116,9,47,10,140,10,222,11,172,12,246,10,72,11,170,9,26,8,252,8,10,9,50,9,76,9,173,8,106,8,79,8,239,8,196,9,233,10,233,10,60,10,20,10,63,9,92,14,129,14,186,8,46,7,133,8,193,10,166,10,113,10,209,9,159,8,233,10,88,12,166,10,249,9,30,11,209,9,133,8,90,9,173,8,133,8,250,0,3,0,6,0,3,0,3,0,3,0,4,0,3,0,3,0,3,0,205,1,73,14,109,11,109,11,109,11,109,11,109,11,109,11,109,11,109,11,109,11,109,11,109,11,147,11,147,11,109,11,30,11,144,12,13,12,156,11,240,11,240,11,194,11,194,11,194,11,147,11,147,11,194,11,156,11,72,11,30,11,30,11,166,10,80,15,174,15,165,11,135,12,135,12,118,11,240,11,30,11,50,12,172,12,109,11,30,11,60,10,249,9,220,10,109,11,188,13,125,12,194,11,31,12,203,11,72,11,109,11,109,11,109,11,109,11,72,11,72,11,72,11,72,11,72,11,193,10,190,19,190,19,118,11,245,13,57,13,240,11,13,12,233,10,88,12,88,12,156,11,30,11,209,9,236,9,193,10,72,11,76,17,53,16,140,10,193,10,156,11,194,11,109,11,30,11,165,11,203,11,109,11,109,11,109,11,109,11,72,11,166,10,36,14,203,11,156,11,240,11,240,11,57,11,246,10,240,11,144,12,231,11,165,11,219,12,219,12,165,11,238,12,175,11,107,20,150,19,236,9,10,13,198,13,57,13,125,12,22,12,48,13,165,11,140,10,87,10,127,10,233,10,30,11,113,10,217,19,54,20,7,18,76,17,156,9,81,11,231,11,135,12,97,12,127,10,180,10,72,11,30,11,233,10,30,11,140,10,50,12,72,11,147,11,109,11,109,11,109,11,109,11,147,11,147,11,147,11,147,11,109,11,109,11,147,11,147,11,147,11,106,16,135,12,165,11,31,12,194,11,72,11,72,11,109,11,156,11,57,11,100,11,203,11,156,11,194,11,125,12,57,11,176,14,176,14,172,12,31,12,165,11,72,11,109,11,72,11,156,11,118,11,233,10,233,10,30,11,72,11,72,11,100,10,14,15,174,15,135,12,50,12,172,12,118,11,231,11,147,11,147,11,13,12,30,11,233,10,233,10,233,10,233,10,20,10,5,15,240,15,29,13,188,13,22,12,180,10,194,11,118,11,50,12,13,12,30,11,30,11,87,10,87,10,30,11,246,10,27,20,30,19,153,12,5,15,113,13,97,12,81,11,85,13,123,13,140,10,20,10,113,10,180,10,30,11,246,10,193,10,13,16,205,14,219,12,88,12,109,11,72,11,72,11,109,11,233,10,180,10,233,10,180,10,233,10,30,11,72,11,246,10,217,19,190,19,231,11,217,13,172,12,240,11,13,12,128,11,31,12,81,11,180,10,180,10,180,10,30,11,233,10,60,10,213,16,213,16,44,11,223,9,135,12,48,13,48,13,3,12,3,12,48,13,240,11,30,11,87,10,20,10,166,10,193,10,240,11,100,11,246,10,72,11,180,10,127,10,81,11,31,12,78,12,78,12,144,12,97,12,240,11,194,11,147,11,30,11,23,17,42,15,109,11,72,11,30,11,72,11,30,11,30,11,72,11,72,11,72,11,30,11,72,11,109,11,72,11,30,11,165,11,100,11,100,11,165,11,165,11,240,11,50,12,144,12,78,12,240,11,194,11,156,11,156,11,156,11,109,11,180,10,133,16,53,16,238,12,19,13,109,11,147,11,72,11,165,11,165,11,30,11,233,10,180,10,30,11,30,11,30,11,233,10,240,15,174,15,31,12,194,11,109,11,109,11,109,11,72,11,109,11,109,11,30,11,30,11,30,11,233,10,72,11,220,10,7,18,223,17,97,12,113,13,135,12,165,11,81,11,222,11,50,12,180,10,127,10,127,10,127,10,180,10,233,10,140,10,53,16,173,16,205,14,73,14,166,10,220,10,72,11,72,11,194,11,156,11,109,11,30,11,127,10,127,10,233,10,72,11,119,16,226,13,193,10,30,11,30,11,72,11,72,11,72,11,109,11,109,11,72,11,109,11,109,11,109,11,147,11,72,11,54,20,57,19,213,8,104,13,205,14,151,13,19,13,30,11,238,12,151,13,78,12,81,11,156,9,183,9,193,10,109,11,123,13,101,14,50,12,125,12,29,13,231,11,135,12,135,12,165,11,144,12,13,12,109,11,109,11,127,10,236,9,130,9,165,11,194,11,233,10,233,10,180,10,233,10,30,11,156,11,240,11,31,12,78,12,78,12,78,12,31,12,194,11,194,11,128,11,57,11,127,10,166,10,220,10,194,11,104,13,217,13,29,13,172,12,240,11,194,11,147,11,109,11,72,11,30,11,203,11,128,11,81,11,194,11,194,11,156,11,203,11,31,12,240,11,240,11,194,11,72,11,30,11,109,11,109,11,72,11,80,15,127,15,194,11,125,12,29,13,144,12,219,12,219,12,151,13,120,14,113,13,166,10,133,8,156,9,20,10,47,10,100,0,3,0,40,0,3,0,3,0,3,0,5,0,14,0,14,0,10,0,11,0,3,0,8,0,9,0,7,0,3,0,91,1,0,32,254,31,246,31,234,31,216,31,194,31,168,31,136,31,98,31,58,31,10,31,216,30,160,30,98,30,34,30,220,29,144,29,66,29,238,28,150,28,58,28,216,27,114,27,10,27,156,26,42,26,180,25,58,25,188,24,60,24,182,23,46,23,160,22,16,22,126,21,232,20,78,20,176,19,16,19,110,18,200,17,30,17,116,16,198,15,22,15,100,14,174,13,248,12,64,12,132,11,200,10,10,10,74,9,138,8,198,7,2,7,62,6,120,5,178,4,234,3,34,3,90,2,146,1,202,0,0,0,54,255,110,254,166,253,222,252,22,252,78,251,136,250,194,249,254,248,58,248,118,247,182,246,246,245,56,245,124,244,192,243,8,243,82,242,156,241,234,240,58,240,140,239,226,238,56,238,146,237,240,236,80,236,178,235,24,235,130,234,240,233,96,233,210,232,74,232,196,231,68,231,198,230,76,230,214,229,100,229,246,228,142,228,40,228,198,227,106,227,18,227,190,226,112,226,36,226,222,225,158,225,96,225,40,225,246,224,198,224,158,224,120,224,88,224,62,224,40,224,22,224,10,224,2,224,0,224,79,112,117,115,83,99,114,105,112,116,72,97,110,100,108,101,114,0,95,101,110,99,111,100,101,0,95,100,101,99,111,100,101,0,49,55,79,112,117,115,83,99,114,105,112,116,72,97,110,100,108,101,114,0,80,49,55,79,112,117,115,83,99,114,105,112,116,72,97,110,100,108,101,114,0,80,75,49,55,79,112,117,115,83,99,114,105,112,116,72,97,110,100,108,101,114,0,105,105,0,118,0,118,105,0,105,105,105,105,105,0,105,105,105,105,105,105,105,0,105,105,105,105,105,105,0,0,255,0,255,0,255,0,255,0,255,0,254,1,0,1,255,0,254,0,253,2,0,1,255,0,254,0,253,3,0,1,255,117,110,107,110,111,119,110,32,101,114,114,111,114,0,115,117,99,99,101,115,115,0,105,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,98,117,102,102,101,114,32,116,111,111,32,115,109,97,108,108,0,105,110,116,101,114,110,97,108,32,101,114,114,111,114,0,99,111,114,114,117,112,116,101,100,32,115,116,114,101,97,109,0,114,101,113,117,101,115,116,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,105,110,118,97,108,105,100,32,115,116,97,116,101,0,109,101,109,111,114,121,32,97,108,108,111,99,97,116,105,111,110,32,102,97,105,108,101,100,0,255,255,156,110,86,70,59,51,45,40,37,33,31,28,26,25,23,22,21,20,19,18,17,16,16,15,15,14,13,13,12,12,12,12,11,11,11,10,10,10,9,9,9,9,9,9,8,8,8,8,8,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,25,23,2,0,126,124,119,109,87,41,19,9,4,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,90,80,75,69,63,56,49,40,34,29,20,18,10,0,0,0,0,0,0,0,0,110,100,90,84,78,71,65,58,51,45,39,32,26,20,12,0,0,0,0,0,0,118,110,103,93,86,80,75,70,65,59,53,47,40,31,23,15,4,0,0,0,0,126,119,112,104,95,89,83,78,72,66,60,54,47,39,32,25,17,12,1,0,0,134,127,120,114,103,97,91,85,78,72,66,60,54,47,41,35,29,23,16,10,1,144,137,130,124,113,107,101,95,88,82,76,70,64,57,51,45,39,33,26,15,1,152,145,138,132,123,117,111,105,98,92,86,80,74,67,61,55,49,43,36,20,1,162,155,148,142,133,127,121,115,108,102,96,90,84,77,71,65,59,53,46,30,1,172,165,158,152,143,137,131,125,118,112,106,100,94,87,81,75,69,63,56,45,20,200,200,200,200,200,200,200,200,198,193,188,183,178,173,168,163,158,153,148,129,104,40,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,40,15,23,28,31,34,36,38,39,41,42,43,44,45,46,47,47,49,50,51,52,53,54,55,55,57,58,59,60,61,62,63,63,65,66,67,68,69,70,71,71,40,20,33,41,48,53,57,61,64,66,69,71,73,75,76,78,80,82,85,87,89,91,92,94,96,98,101,103,105,107,108,110,112,114,117,119,121,123,124,126,128,40,23,39,51,60,67,73,79,83,87,91,94,97,100,102,105,107,111,115,118,121,124,126,129,131,135,139,142,145,148,150,153,155,159,163,166,169,172,174,177,179,35,28,49,65,78,89,99,107,114,120,126,132,136,141,145,149,153,159,165,171,176,180,185,189,192,199,205,211,216,220,225,229,232,239,245,251,21,33,58,79,97,112,125,137,148,157,166,174,182,189,195,201,207,217,227,235,243,251,17,35,63,86,106,123,139,152,165,177,187,197,206,214,222,230,237,250,25,31,55,75,91,105,117,128,138,146,154,161,168,174,180,185,190,200,208,215,222,229,235,240,245,255,16,36,65,89,110,128,144,159,173,185,196,207,217,226,234,242,250,11,41,74,103,128,151,172,191,209,225,241,255,9,43,79,110,138,163,186,207,227,246,12,39,71,99,123,144,164,182,198,214,228,241,253,9,44,81,113,142,168,192,214,235,255,7,49,90,127,160,191,220,247,6,51,95,134,170,203,234,7,47,87,123,155,184,212,237,6,52,97,137,174,208,240,5,57,106,151,192,231,5,59,111,158,202,243,5,55,103,147,187,224,5,60,113,161,206,248,4,65,122,175,224,4,67,127,182,234,224,224,224,224,224,224,224,224,160,160,160,160,185,185,185,178,178,168,134,61,37,224,224,224,224,224,224,224,224,240,240,240,240,207,207,207,198,198,183,144,66,40,160,160,160,160,160,160,160,160,185,185,185,185,193,193,193,183,183,172,138,64,38,240,240,240,240,240,240,240,240,207,207,207,207,204,204,204,193,193,180,143,66,40,185,185,185,185,185,185,185,185,193,193,193,193,193,193,193,183,183,172,138,65,39,207,207,207,207,207,207,207,207,204,204,204,204,201,201,201,188,188,176,141,66,40,193,193,193,193,193,193,193,193,193,193,193,193,194,194,194,184,184,173,139,65,39,204,204,204,204,204,204,204,204,201,201,201,201,198,198,198,187,187,175,140,66,40,72,127,65,129,66,128,65,128,64,128,62,128,64,128,64,128,92,78,92,79,92,78,90,79,116,41,115,40,114,40,132,26,132,26,145,17,161,12,176,10,177,11,24,179,48,138,54,135,54,132,53,134,56,133,55,132,55,132,61,114,70,96,74,88,75,88,87,74,89,66,91,67,100,59,108,50,120,40,122,37,97,43,78,50,83,78,84,81,88,75,86,74,87,71,90,73,93,74,93,74,109,40,114,36,117,34,117,34,143,17,145,18,146,19,162,12,165,10,178,7,189,6,190,8,177,9,23,178,54,115,63,102,66,98,69,99,74,89,71,91,73,91,78,89,86,80,92,66,93,64,102,59,103,60,104,60,117,52,123,44,138,35,133,31,97,38,77,45,61,90,93,60,105,42,107,41,110,45,116,38,113,38,112,38,124,26,132,27,136,19,140,20,155,14,159,16,158,18,170,13,177,10,187,8,192,6,175,9,159,10,21,178,59,110,71,86,75,85,84,83,91,66,88,73,87,72,92,75,98,72,105,58,107,54,115,52,114,55,112,56,129,51,132,40,150,33,140,29,98,35,77,42,42,121,96,66,108,43,111,40,117,44,123,32,120,36,119,33,127,33,134,34,139,21,147,23,152,20,158,25,154,26,166,21,173,16,184,13,184,10,150,13,139,15,22,178,63,114,74,82,84,83,92,82,103,62,96,72,96,67,101,73,107,72,113,55,118,52,125,52,118,52,117,55,135,49,137,39,157,32,145,29,97,33,77,40,2,1,0,0,8,13,16,19,21,23,24,26,27,28,29,30,31,32,32,33,34,34,35,36,36,37,37,224,112,44,15,3,2,1,0,254,237,192,132,70,23,4,0,255,252,226,155,61,11,2,0,250,245,234,203,71,50,42,38,35,33,31,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,179,99,0,71,56,43,30,21,12,6,0,199,165,144,124,109,96,84,71,61,51,42,32,23,15,8,0,241,225,211,199,187,175,164,153,142,132,123,114,105,96,88,80,72,64,57,50,44,38,33,29,24,20,16,12,9,5,2,0,15,131,138,138,155,155,173,173,69,93,115,118,131,138,141,138,150,150,155,150,155,160,166,160,131,128,134,141,141,141,145,145,145,150,155,155,155,155,160,160,160,160,166,166,173,173,182,192,182,192,192,192,205,192,205,224,4,6,24,7,5,0,0,2,0,0,12,28,41,13,252,247,15,42,25,14,1,254,62,41,247,246,37,65,252,3,250,4,66,7,248,16,14,38,253,33,13,22,39,23,12,255,36,64,27,250,249,10,55,43,17,1,1,8,1,1,6,245,74,53,247,244,55,76,244,8,253,3,93,27,252,26,39,59,3,248,2,0,77,11,9,248,22,44,250,7,40,9,26,3,9,249,20,101,249,4,3,248,42,26,0,241,33,68,2,23,254,55,46,254,15,3,255,21,16,41,250,27,61,39,5,245,42,88,4,1,254,60,65,6,252,255,251,73,56,1,247,19,94,29,247,0,12,99,6,4,8,237,102,46,243,3,2,13,3,2,9,235,84,72,238,245,46,104,234,8,18,38,48,23,0,240,70,83,235,11,5,245,117,22,248,250,23,117,244,3,3,248,95,28,4,246,15,77,60,241,255,4,124,2,252,3,38,84,24,231,2,13,42,13,31,21,252,56,46,255,255,35,79,243,19,249,65,88,247,242,20,4,81,49,227,20,0,75,3,239,5,247,44,92,248,1,253,22,69,31,250,95,41,244,5,39,67,16,252,1,0,250,120,55,220,243,44,122,4,232,81,5,11,3,7,2,0,9,10,88,46,2,90,87,93,91,82,98,109,120,118,12,113,115,117,119,99,59,87,111,63,111,112,80,126,124,125,124,129,121,126,23,132,127,127,127,126,127,122,133,130,134,101,118,119,145,126,86,124,120,123,119,170,173,107,109,8,16,32,249,247,246,245,244,234,210,202,201,200,197,174,82,59,56,55,54,46,22,12,11,10,9,7,0,64,0,203,150,0,215,195,166,125,110,82,0,120,0,128,64,0,232,158,10,0,230,0,243,221,192,181,0,171,85,0,192,128,64,0,205,154,102,51,0,213,171,128,85,43,0,224,192,160,128,96,64,32,0,100,40,16,7,3,1,0,253,250,244,233,212,182,150,131,120,110,98,85,72,60,49,40,32,25,19,15,13,11,9,8,7,6,5,4,3,2,1,0,210,208,206,203,199,193,183,168,142,104,74,52,37,27,20,14,10,6,4,2,0,223,201,183,167,152,138,124,111,98,88,79,70,62,56,50,44,39,35,31,27,24,21,18,16,14,12,10,8,6,4,3,2,1,0,188,176,155,138,119,97,67,43,26,10,0,165,119,80,61,47,35,27,20,14,9,4,0,113,63,0,125,51,26,18,15,12,11,10,9,8,7,6,5,4,3,2,1,0,198,105,45,22,15,12,11,10,9,8,7,6,5,4,3,2,1,0,213,162,116,83,59,43,32,24,18,15,12,9,7,6,5,3,2,0,239,187,116,59,28,16,11,10,9,8,7,6,5,4,3,2,1,0,250,229,188,135,86,51,30,19,13,10,8,6,5,4,3,2,1,0,249,235,213,185,156,128,103,83,66,53,42,33,26,21,17,13,10,0,254,249,235,206,164,118,77,46,27,16,10,7,5,4,3,2,1,0,255,253,249,239,220,191,156,119,85,57,37,23,15,10,6,4,2,0,255,253,251,246,237,223,203,179,152,124,98,75,55,40,29,21,15,0,255,254,253,247,220,162,106,67,42,28,18,12,9,6,4,3,2,0,31,57,107,160,205,205,255,255,255,255,255,255,255,255,255,255,255,255,69,47,67,111,166,205,255,255,255,255,255,255,255,255,255,255,255,255,82,74,79,95,109,128,145,160,173,205,205,205,224,255,255,224,255,224,125,74,59,69,97,141,182,255,255,255,255,255,255,255,255,255,255,255,173,115,85,73,76,92,115,145,173,205,224,224,255,255,255,255,255,255,166,134,113,102,101,102,107,118,125,138,145,155,166,182,192,192,205,150,224,182,134,101,83,79,85,97,120,145,173,205,224,255,255,255,255,255,255,224,192,150,120,101,92,89,93,102,118,134,160,182,192,224,224,224,255,224,224,182,155,134,118,109,104,102,106,111,118,131,145,160,173,131,241,190,178,132,87,74,41,14,0,223,193,157,140,106,57,39,18,0,131,74,141,79,80,138,95,104,134,95,99,91,125,93,76,123,115,123,128,0,214,42,0,235,128,21,0,244,184,72,11,0,248,214,128,42,7,0,248,225,170,80,25,5,0,251,236,198,126,54,18,3,0,250,238,211,159,82,35,15,5,0,250,231,203,168,128,88,53,25,6,0,252,238,216,185,148,108,71,40,18,4,0,253,243,225,199,166,128,90,57,31,13,3,0,254,246,233,212,183,147,109,73,44,23,10,2,0,255,250,240,223,198,166,128,90,58,33,16,6,1,0,255,251,244,231,210,181,146,110,75,46,25,12,5,1,0,255,253,248,238,221,196,164,128,92,60,35,18,8,3,1,0,255,253,249,242,229,208,180,146,110,76,48,27,14,7,3,1,0,129,0,207,50,0,236,129,20,0,245,185,72,10,0,249,213,129,42,6,0,250,226,169,87,27,4,0,251,233,194,130,62,20,4,0,250,236,207,160,99,47,17,3,0,255,240,217,182,131,81,41,11,1,0,255,254,233,201,159,107,61,20,2,1,0,255,249,233,206,170,128,86,50,23,7,1,0,255,250,238,217,186,148,108,70,39,18,6,1,0,255,252,243,226,200,166,128,90,56,30,13,4,1,0,255,252,245,231],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+20480);allocate([209,180,146,110,76,47,25,11,4,1,0,255,253,248,237,219,194,163,128,93,62,37,19,8,3,1,0,255,254,250,241,226,205,177,145,111,79,51,30,15,6,2,1,0,129,0,203,54,0,234,129,23,0,245,184,73,10,0,250,215,129,41,5,0,252,232,173,86,24,3,0,253,240,200,129,56,15,2,0,253,244,217,164,94,38,10,1,0,253,245,226,189,132,71,27,7,1,0,253,246,231,203,159,105,56,23,6,1,0,255,248,235,213,179,133,85,47,19,5,1,0,255,254,243,221,194,159,117,70,37,12,2,1,0,255,254,248,234,208,171,128,85,48,22,8,2,1,0,255,254,250,240,220,189,149,107,67,36,16,6,2,1,0,255,254,251,243,227,201,166,128,90,55,29,13,5,2,1,0,255,254,252,246,234,213,183,147,109,73,43,22,10,4,2,1,0,130,0,200,58,0,231,130,26,0,244,184,76,12,0,249,214,130,43,6,0,252,232,173,87,24,3,0,253,241,203,131,56,14,2,0,254,246,221,167,94,35,8,1,0,254,249,232,193,130,65,23,5,1,0,255,251,239,211,162,99,45,15,4,1,0,255,251,243,223,186,131,74,33,11,3,1,0,255,252,245,230,202,158,105,57,24,8,2,1,0,255,253,247,235,214,179,132,84,44,19,7,2,1,0,255,254,250,240,223,196,159,112,69,36,15,6,2,1,0,255,254,253,245,231,209,176,136,93,55,27,11,3,2,1,0,255,254,253,252,239,221,194,158,117,76,42,18,4,3,2,1,0,0,0,2,5,9,14,20,27,35,44,54,65,77,90,104,119,135,254,49,67,77,82,93,99,198,11,18,24,31,36,45,255,46,66,78,87,94,104,208,14,21,32,42,51,66,255,94,104,109,112,115,118,248,53,69,80,88,95,102,6,0,3,0,7,3,0,1,10,0,2,6,18,10,12,4,0,2,0,0,0,9,4,7,4,0,3,12,7,7,0,1,1,1,2,3,3,3,2,3,3,3,2,3,3,3,0,3,12,15,48,51,60,63,192,195,204,207,240,243,252,255,12,35,60,83,108,132,157,180,206,228,15,32,55,77,101,125,151,175,201,225,19,42,66,89,114,137,162,184,209,230,12,25,50,72,97,120,147,172,200,223,26,44,69,90,114,135,159,180,205,225,13,22,53,80,106,130,156,180,205,228,15,25,44,64,90,115,142,168,196,222,19,24,62,82,100,120,145,168,190,214,22,31,50,79,103,120,151,170,203,227,21,29,45,65,106,124,150,171,196,224,30,49,75,97,121,142,165,186,209,229,19,25,52,70,93,116,143,166,192,219,26,34,62,75,97,118,145,167,194,217,25,33,56,70,91,113,143,165,196,223,21,34,51,72,97,117,145,171,196,222,20,29,50,67,90,117,144,168,197,221,22,31,48,66,95,117,146,168,196,222,24,33,51,77,116,134,158,180,200,224,21,28,70,87,106,124,149,170,194,217,26,33,53,64,83,117,152,173,204,225,27,34,65,95,108,129,155,174,210,225,20,26,72,99,113,131,154,176,200,219,34,43,61,78,93,114,155,177,205,229,23,29,54,97,124,138,163,179,209,229,30,38,56,89,118,129,158,178,200,231,21,29,49,63,85,111,142,163,193,222,27,48,77,103,133,158,179,196,215,232,29,47,74,99,124,151,176,198,220,237,33,42,61,76,93,121,155,174,207,225,29,53,87,112,136,154,170,188,208,227,24,30,52,84,131,150,166,186,203,229,37,48,64,84,104,118,156,177,201,230,212,178,148,129,108,96,85,82,79,77,61,59,57,56,51,49,48,45,42,41,40,38,36,34,31,30,21,12,10,3,1,0,255,245,244,236,233,225,217,203,190,176,175,161,149,136,125,114,102,91,81,71,60,52,43,35,28,20,19,18,12,11,5,0,179,138,140,148,151,149,153,151,163,116,67,82,59,92,72,100,89,92,16,0,0,0,0,99,66,36,36,34,36,34,34,34,34,83,69,36,52,34,116,102,70,68,68,176,102,68,68,34,65,85,68,84,36,116,141,152,139,170,132,187,184,216,137,132,249,168,185,139,104,102,100,68,68,178,218,185,185,170,244,216,187,187,170,244,187,187,219,138,103,155,184,185,137,116,183,155,152,136,132,217,184,184,170,164,217,171,155,139,244,169,184,185,170,164,216,223,218,138,214,143,188,218,168,244,141,136,155,170,168,138,220,219,139,164,219,202,216,137,168,186,246,185,139,116,185,219,185,138,100,100,134,100,102,34,68,68,100,68,168,203,221,218,168,167,154,136,104,70,164,246,171,137,139,137,155,218,219,139,255,254,253,238,14,3,2,1,0,255,254,252,218,35,3,2,1,0,255,254,250,208,59,4,2,1,0,255,254,246,194,71,10,2,1,0,255,252,236,183,82,8,2,1,0,255,252,235,180,90,17,2,1,0,255,248,224,171,97,30,4,1,0,255,254,236,173,95,37,7,1,0,255,255,255,131,6,145,255,255,255,255,255,236,93,15,96,255,255,255,255,255,194,83,25,71,221,255,255,255,255,162,73,34,66,162,255,255,255,210,126,73,43,57,173,255,255,255,201,125,71,48,58,130,255,255,255,166,110,73,57,62,104,210,255,255,251,123,65,55,68,100,171,255,7,23,38,54,69,85,100,116,131,147,162,178,193,208,223,239,13,25,41,55,69,83,98,112,127,142,157,171,187,203,220,236,15,21,34,51,61,78,92,106,126,136,152,167,185,205,225,240,10,21,36,50,63,79,95,110,126,141,157,173,189,205,221,237,17,20,37,51,59,78,89,107,123,134,150,164,184,205,224,240,10,15,32,51,67,81,96,112,129,142,158,173,189,204,220,236,8,21,37,51,65,79,98,113,126,138,155,168,179,192,209,218,12,15,34,55,63,78,87,108,118,131,148,167,185,203,219,236,16,19,32,36,56,79,91,108,118,136,154,171,186,204,220,237,11,28,43,58,74,89,105,120,135,150,165,180,196,211,226,241,6,16,33,46,60,75,92,107,123,137,156,169,185,199,214,225,11,19,30,44,57,74,89,105,121,135,152,169,186,202,218,234,12,19,29,46,57,71,88,100,120,132,148,165,182,199,216,233,17,23,35,46,56,77,92,106,123,134,152,167,185,204,222,237,14,17,45,53,63,75,89,107,115,132,151,171,188,206,221,240,9,16,29,40,56,71,88,103,119,137,154,171,189,205,222,237,16,19,36,48,57,76,87,105,118,132,150,167,185,202,218,236,12,17,29,54,71,81,94,104,126,136,149,164,182,201,221,237,15,28,47,62,79,97,115,129,142,155,168,180,194,208,223,238,8,14,30,45,62,78,94,111,127,143,159,175,192,207,223,239,17,30,49,62,79,92,107,119,132,145,160,174,190,204,220,235,14,19,36,45,61,76,91,108,121,138,154,172,189,205,222,238,12,18,31,45,60,76,91,107,123,138,154,171,187,204,221,236,13,17,31,43,53,70,83,103,114,131,149,167,185,203,220,237,17,22,35,42,58,78,93,110,125,139,155,170,188,206,224,240,8,15,34,50,67,83,99,115,131,146,162,178,193,209,224,239,13,16,41,66,73,86,95,111,128,137,150,163,183,206,225,241,17,25,37,52,63,75,92,102,119,132,144,160,175,191,212,231,19,31,49,65,83,100,117,133,147,161,174,187,200,213,227,242,18,31,52,68,88,103,117,126,138,149,163,177,192,207,223,239,16,29,47,61,76,90,106,119,133,147,161,176,193,209,224,240,15,21,35,50,61,73,86,97,110,119,129,141,175,198,218,237,225,204,201,184,183,175,158,154,153,135,119,115,113,110,109,99,98,95,79,68,52,50,48,45,43,32,31,27,18,10,3,0,255,251,235,230,212,201,196,182,167,166,163,151,138,124,110,104,90,78,76,70,69,57,45,34,24,21,11,6,5,4,3,0,175,148,160,176,178,173,174,164,177,174,196,182,198,192,182,68,62,66,60,72,117,85,90,118,136,151,142,160,142,155,0,0,0,0,0,0,0,1,100,102,102,68,68,36,34,96,164,107,158,185,180,185,139,102,64,66,36,34,34,0,1,32,208,139,141,191,152,185,155,104,96,171,104,166,102,102,102,132,1,0,0,0,0,16,16,0,80,109,78,107,185,139,103,101,208,212,141,139,173,153,123,103,36,0,0,0,0,0,0,1,48,0,0,0,0,0,0,32,68,135,123,119,119,103,69,98,68,103,120,118,118,102,71,98,134,136,157,184,182,153,139,134,208,168,248,75,189,143,121,107,32,49,34,34,34,0,17,2,210,235,139,123,185,137,105,134,98,135,104,182,100,183,171,134,100,70,68,70,66,66,34,131,64,166,102,68,36,2,1,0,134,166,102,68,34,34,66,132,212,246,158,139,107,107,87,102,100,219,125,122,137,118,103,132,114,135,137,105,171,106,50,34,164,214,141,143,185,151,121,103,192,34,0,0,0,0,0,1,208,109,74,187,134,249,159,137,102,110,154,118,87,101,119,101,0,2,0,36,36,66,68,35,96,164,102,100,36,0,2,33,167,138,174,102,100,84,2,2,100,107,120,119,36,197,24,0,255,254,253,244,12,3,2,1,0,255,254,252,224,38,3,2,1,0,255,254,251,209,57,4,2,1,0,255,254,244,195,69,4,2,1,0,255,251,232,184,84,7,2,1,0,255,254,240,186,86,14,2,1,0,255,254,239,178,91,30,5,1,0,255,248,227,177,100,19,2,1,0,255,255,255,156,4,154,255,255,255,255,255,227,102,15,92,255,255,255,255,255,213,83,24,72,236,255,255,255,255,150,76,33,63,214,255,255,255,190,121,77,43,55,185,255,255,255,245,137,71,43,59,139,255,255,255,255,131,66,50,66,107,194,255,255,166,116,76,55,53,125,255,255,0,15,8,7,4,11,12,3,2,13,10,5,6,9,14,1,0,9,6,3,4,5,8,1,2,7,0,1,0,0,0,1,0,0,1,255,1,255,2,254,2,254,3,253,0,1,0,1,255,2,255,2,254,3,254,3,253,7,254,7,0,2,255,255,255,0,0,1,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,255,2,1,0,1,1,0,0,255,255,0,0,1,255,0,1,255,0,255,1,254,2,254,254,2,253,2,3,253,252,3,252,4,4,251,5,250,251,6,249,6,5,8,247,0,0,1,0,0,0,0,0,0,0,255,1,0,0,1,255,0,1,255,255,1,255,2,1,255,2,254,254,2,254,2,2,3,253,0,1,0,0,0,0,0,0,1,0,1,0,0,1,255,1,0,0,2,1,255,2,255,255,2,255,2,2,255,3,254,254,254,3,0,1,0,0,1,0,1,255,2,255,2,255,2,3,254,3,254,254,4,4,253,5,253,252,6,252,6,5,251,8,250,251,249,9,251,8,255,6,255,6,252,10,250,10,254,6,255,6,251,10,247,12,253,7,254,7,249,13,16,24,34,118,111,105,100,0,98,111,111,108,0,99,104,97,114,0,115,105,103,110,101,100,32,99,104,97,114,0,117,110,115,105,103,110,101,100,32,99,104,97,114,0,115,104,111,114,116,0,117,110,115,105,103,110,101,100,32,115,104,111,114,116,0,105,110,116,0,117,110,115,105,103,110,101,100,32,105,110,116,0,108,111,110,103,0,117,110,115,105,103,110,101,100,32,108,111,110,103,0,102,108,111,97,116,0,100,111,117,98,108,101,0,78,83,116,51,95,95,49,49,50,98,97,115,105,99,95,115,116,114,105,110,103,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,99,69,69,69,69,0,78,83,116,51,95,95,49,50,49,95,95,98,97,115,105,99,95,115,116,114,105,110,103,95,99,111,109,109,111,110,73,76,98,49,69,69,69,0,115,116,100,58,58,115,116,114,105,110,103,0,78,83,116,51,95,95,49,49,50,98,97,115,105,99,95,115,116,114,105,110,103,73,104,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,104,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,104,69,69,69,69,0,115,116,100,58,58,98,97,115,105,99,95,115,116,114,105,110,103,60,117,110,115,105,103,110,101,100,32,99,104,97,114,62,0,78,83,116,51,95,95,49,49,50,98,97,115,105,99,95,115,116,114,105,110,103,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,119,69,69,69,69,0,115,116,100,58,58,119,115,116,114,105,110,103,0,78,49,48,101,109,115,99,114,105,112,116,101,110,51,118,97,108,69,0,101,109,115,99,114,105,112,116,101,110,58,58,118,97,108,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,99,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,99,104,97,114,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,97,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,115,105,103,110,101,100,32,99,104,97,114,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,104,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,110,115,105,103,110,101,100,32,99,104,97,114,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,115,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,115,104,111,114,116,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,116,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,110,115,105,103,110,101,100,32,115,104,111,114,116,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,105,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,105,110,116,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,106,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,110,115,105,103,110,101,100,32,105,110,116,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,108,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,108,111,110,103,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,109,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,110,115,105,103,110,101,100,32,108,111,110,103,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,105,110,116,56,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,105,110,116,56,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,105,110,116,49,54,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,105,110,116,49,54,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,105,110,116,51,50,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,105,110,116,51,50,95,116,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,102,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,102,108,111,97,116,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,100,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,100,111,117,98,108,101,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,101,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,108,111,110,103,32,100,111,117,98,108,101,62,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,48,95,95,115,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,54,95,95,115,104,105,109,95,116,121,112,101,95,105,110,102,111,69,0,83,116,57,116,121,112,101,95,105,110,102,111,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,83,116,57,101,120,99,101,112,116,105,111,110,0,83,116,57,98,97,100,95,97,108,108,111,99,0,115,116,100,58,58,98,97,100,95,97,108,108,111,99,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,57,95,95,112,111,105,110,116,101,114,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,112,98,97,115,101,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,51,95,95,102,117,110,100,97,109,101,110,116,97,108,95,116,121,112,101,95,105,110,102,111,69,0,118,0,68,110,0,98,0,99,0,104,0,97,0,115,0,116,0,105,0,106,0,108,0,109,0,102,0,100,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,49,95,95,118,109,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+30720);var tempDoublePtr=STATICTOP;STATICTOP+=16;function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _sysconf(name){switch(name){case 30:return PAGE_SIZE;case 85:return totalMemory/PAGE_SIZE;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 79:return 0;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator==="object")return navigator["hardwareConcurrency"]||1;return 1}}___setErrNo(ERRNO_CODES.EINVAL);return-1}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return(new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n"))(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,(function(message){this.name=errorName;this.message=message;var stack=(new Error(message)).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}}));errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=(function(){if(this.message===undefined){return this.name}else{return this.name+": "+this.message}});return errorClass}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach((function(type){typeDependencies[type]=dependentTypes}));function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i0);info.refcount--;if(info.refcount===0){if(info.destructor){Runtime.dynCall("vi",info.destructor,[ptr])}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}}),clearRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0})};function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=ptr}EXCEPTIONS.clearRef(EXCEPTIONS.deAdjust(ptr));throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown){return(asm["setTempRet0"](0),0)|0}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(asm["setTempRet0"](0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module["___cxa_is_pointer_type"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i>2];info.adjusted=thrown;return(asm["setTempRet0"](typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(asm["setTempRet0"](throwntype),thrown)|0}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0};EXCEPTIONS.last=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1}else{__ZSt18uncaught_exceptionv.uncaught_exception++}throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}Module["_memset"]=_memset;function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+size)}}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":(function(wt){return!!wt}),"toWireType":(function(destructors,o){return o?trueValue:falseValue}),"argPackAdvance":8,"readValueFromPointer":(function(pointer){var heap;if(size===1){heap=HEAP8}else if(size===2){heap=HEAP16}else if(size===4){heap=HEAP32}else{throw new TypeError("Unknown boolean type size: "+name)}return this["fromWireType"](heap[pointer>>shift])}),destructorFunction:null})}function _abort(){Module["abort"]()}function _free(){}Module["_free"]=_free;function _malloc(bytes){var ptr=Runtime.dynamicAlloc(bytes+8);return ptr+8&4294967288}Module["_malloc"]=_malloc;function simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAPU32[pointer>>2])}function __embind_register_std_string(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":(function(value){var length=HEAPU32[value>>2];var a=new Array(length);for(var i=0;i>2]=length;for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+4+i]=charCode}if(destructors!==null){destructors.push(_free,ptr)}return ptr}),"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:(function(ptr){_free(ptr)})})}function __embind_register_std_wstring(rawType,charSize,name){name=readLatin1String(name);var getHeap,shift;if(charSize===2){getHeap=(function(){return HEAPU16});shift=1}else if(charSize===4){getHeap=(function(){return HEAPU32});shift=2}registerType(rawType,{name:name,"fromWireType":(function(value){var HEAP=getHeap();var length=HEAPU32[value>>2];var a=new Array(length);var start=value+4>>shift;for(var i=0;i>2]=length;var start=ptr+4>>shift;for(var i=0;i>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=(function(value){return value});if(minRange===0){var bitshift=32-8*size;fromWireType=(function(value){return value<>>bitshift})}registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":(function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}if(valuemaxRange){throw new TypeError('Passing a number "'+_embind_repr(value)+'" from JS side to C/C++ side to an argument of type "'+name+'", which is outside the valid range ['+minRange+", "+maxRange+"]!")}return value|0}),"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i>2;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 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 _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;function _llvm_stackrestore(p){var self=_llvm_stacksave;var ret=self.LLVM_SAVEDSTACKS[p];self.LLVM_SAVEDSTACKS.splice(p,1);Runtime.stackRestore(ret)}var _llvm_pow_f64=Math_pow;function _sbrk(bytes){var self=_sbrk;if(!self.called){DYNAMICTOP=alignMemoryPage(DYNAMICTOP);self.called=true;assert(Runtime.dynamicAlloc);self.alloc=Runtime.dynamicAlloc;Runtime.dynamicAlloc=(function(){abort("cannot dynamically allocate, sbrk now has control")})}var ret=DYNAMICTOP;if(bytes!=0){var success=self.alloc(bytes);if(!success)return-1>>>0}return ret}function _llvm_stacksave(){var self=_llvm_stacksave;if(!self.LLVM_SAVEDSTACKS){self.LLVM_SAVEDSTACKS=[]}self.LLVM_SAVEDSTACKS.push(Runtime.stackSave());return self.LLVM_SAVEDSTACKS.length-1}Module["_memmove"]=_memmove;function ___gxx_personality_v0(){}function heap32VectorToArray(count,firstElement){var array=[];for(var i=0;i>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=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>2]=ret}return ret}function _pthread_self(){return 0}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError("new_ called with constructor type "+typeof constructor+" which is not a function")}var dummy=createNamedFunction(constructor.name||"unknownFunctionName",(function(){}));dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var argsList="";var argsListWired="";for(var i=0;i0?", ":"")+argsListWired}var returns=argTypes[0].name!=="void";invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}else{Module["thisProgram"]="unknown-program"}}Module["arguments"]=process["argv"].slice(2);if(true){module["exports"]=Module}Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function read(){throw"no read() available (jsc?)"}}Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}var data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};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)}else{onerror()}};xhr.onerror=onerror;xhr.send(null)};if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof console!=="undefined"){if(!Module["print"])Module["print"]=function print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function printErr(x){console.warn(x)}}else{var TRY_USE_DUMP=false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?(function(x){dump(x)}):(function(x){})}if(ENVIRONMENT_IS_WORKER){Module["load"]=importScripts}if(typeof Module["setWindowTitle"]==="undefined"){Module["setWindowTitle"]=(function(title){document.title=title})}}else{throw"Unknown runtime environment. Where are we?"}function globalEval(x){eval.call(null,x)}if(!Module["load"]&&Module["read"]){Module["load"]=function load(f){globalEval(Module["read"](f))}}if(!Module["print"]){Module["print"]=(function(){})}if(!Module["printErr"]){Module["printErr"]=Module["print"]}if(!Module["arguments"]){Module["arguments"]=[]}if(!Module["thisProgram"]){Module["thisProgram"]="./this.program"}Module.print=Module["print"];Module.printErr=Module["printErr"];Module["preRun"]=[];Module["postRun"]=[];for(var key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var Runtime={setTempRet0:(function(value){tempRet0=value}),getTempRet0:(function(){return tempRet0}),stackSave:(function(){return STACKTOP}),stackRestore:(function(stackTop){STACKTOP=stackTop}),getNativeTypeSize:(function(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return Runtime.QUANTUM_SIZE}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}),getNativeFieldSize:(function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)}),STACK_ALIGN:16,prepVararg:(function(ptr,type){if(type==="double"||type==="i64"){if(ptr&7){assert((ptr&7)===4);ptr+=4}}else{assert((ptr&3)===0)}return ptr}),getAlignSize:(function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)}),dynCall:(function(sig,ptr,args){if(args&&args.length){if(!args.splice)args=Array.prototype.slice.call(args);args.splice(0,0,ptr);return Module["dynCall_"+sig].apply(null,args)}else{return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i=TOTAL_MEMORY){var success=enlargeMemory();if(!success){DYNAMICTOP=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];if(!func){try{func=eval("_"+ident)}catch(e){}}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var ccall;((function(){var JSfuncs={"stackSave":(function(){Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore()}),"arrayToC":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=Runtime.stackAlloc((str.length<<2)+1);writeStringToMemory(str,ret)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}Module["setValue"]=setValue;function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;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:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var ptr=ret,stop;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr>2]=0}stop=ret+size;while(ptr>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}function UTF8ArrayToString(u8Array,idx){var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}function demangle(func){var hasLibcxxabi=!!Module["___cxa_demangle"];if(hasLibcxxabi){try{var buf=_malloc(func.length);writeStringToMemory(func.substr(1),buf);var status=_malloc(4);var ret=Module["___cxa_demangle"](buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){return func}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}}Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling");return func}function demangleAll(text){return text.replace(/__Z[\w\d_]+/g,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){return demangleAll(jsStackTrace())}var PAGE_SIZE=4096;function alignMemoryPage(x){if(x%4096>0){x+=4096-x%4096}return x}var HEAP;var buffer;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;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=0,STATICTOP=0,staticSealed=false;var STACK_BASE=0,STACKTOP=0,STACK_MAX=0;var DYNAMIC_BASE=0,DYNAMICTOP=0;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;var totalMemory=64*1024;while(totalMemory0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Runtime.dynCall("v",func)}else{Runtime.dynCall("vi",func,[callback.arg])}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}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 writeStringToMemory(string,buffer,dontAddNull){var array=intArrayFromString(string,dontAddNull);var i=0;while(i>0]=chr;i=i+1}}function writeArrayToMemory(array,buffer){for(var i=0;i>0]=array[i]}}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math["imul"];if(!Math["clz32"])Math["clz32"]=(function(x){x=x>>>0;for(var i=0;i<32;i++){if(x&1<<31-i)return i}return 32});Math.clz32=Math["clz32"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_min=Math.min;var Math_clz32=Math.clz32;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;Module["preloadedImages"]={};Module["preloadedAudios"]={};var ASM_CONSTS=[];STATIC_BASE=8;STATICTOP=STATIC_BASE+35488;__ATINIT__.push({func:(function(){__GLOBAL__sub_I_opusscript_encoder_cpp()})},{func:(function(){__GLOBAL__sub_I_bind_cpp()})});allocate([32,90,0,0,152,108,0,0,160,90,0,0,172,108,0,0,0,0,0,0,8,0,0,0,160,90,0,0,193,108,0,0,1,0,0,0,8,0,0,0,188,90,0,0,7,130,0,0,0,0,0,0,1,0,0,0,72,0,0,0,0,0,0,0,32,90,0,0,70,130,0,0,188,90,0,0,120,130,0,0,0,0,0,0,1,0,0,0,72,0,0,0,0,0,0,0,188,90,0,0,216,130,0,0,0,0,0,0,1,0,0,0,72,0,0,0,0,0,0,0,32,90,0,0,36,131,0,0,32,90,0,0,71,131,0,0,32,90,0,0,132,131,0,0,32,90,0,0,200,131,0,0,32,90,0,0,14,132,0,0,32,90,0,0,76,132,0,0,32,90,0,0,147,132,0,0,32,90,0,0,207,132,0,0,32,90,0,0,20,133,0,0,32,90,0,0,81,133,0,0,32,90,0,0,94,134,0,0,32,90,0,0,156,134,0,0,32,90,0,0,219,134,0,0,32,90,0,0,148,135,0,0,72,90,0,0,114,135,0,0,16,1,0,0,0,0,0,0,72,90,0,0,31,135,0,0,240,0,0,0,0,0,0,0,72,90,0,0,68,135,0,0,32,1,0,0,0,0,0,0,32,90,0,0,101,135,0,0,72,90,0,0,161,135,0,0,232,0,0,0,0,0,0,0,72,90,0,0,225,135,0,0,16,1,0,0,0,0,0,0,72,90,0,0,189,135,0,0,56,1,0,0,0,0,0,0,72,90,0,0,3,136,0,0,16,1,0,0,0,0,0,0,132,90,0,0,43,136,0,0,132,90,0,0,45,136,0,0,132,90,0,0,48,136,0,0,132,90,0,0,50,136,0,0,132,90,0,0,52,136,0,0,132,90,0,0,54,136,0,0,132,90,0,0,56,136,0,0,132,90,0,0,58,136,0,0,132,90,0,0,60,136,0,0,132,90,0,0,62,136,0,0,132,90,0,0,64,136,0,0,132,90,0,0,66,136,0,0,132,90,0,0,68,136,0,0,132,90,0,0,70,136,0,0,72,90,0,0,72,136,0,0,240,0,0,0,0,0,0,0,16,0,0,0,168,1,0,0,168,1,0,0,168,1,0,0,168,1,0,0,16,0,0,0,168,1,0,0,168,1,0,0,168,1,0,0,168,1,0,0,168,1,0,0,16,0,0,0,168,1,0,0,168,1,0,0,168,1,0,0,0,0,157,62,0,64,94,62,0,192,4,62,0,128,237,62,0,64,137,62,0,0,0,0,0,192,76,63,0,0,205,61,0,0,0,0,34,109,0,0,42,109,0,0,59,109,0,0,76,109,0,0,91,109,0,0,108,109,0,0,132,109,0,0,146,109,0,0,16,39,0,0,232,3,0,0,248,42,0,0,232,3,0,0,188,52,0,0,232,3,0,0,176,54,0,0,208,7,0,0,224,46,0,0,232,3,0,0,176,54,0,0,232,3,0,0,128,62,0,0,232,3,0,0,32,78,0,0,232,3,0,0,240,85,0,0,232,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,46,0,0,16,39,0,0,16,39,0,0,248,42,0,0,248,42,0,0,128,62,0,0,188,52,0,0,188,52,0,0,152,58,0,0,152,58,0,0,32,78,0,0,128,62,0,0,128,62,0,0,80,70,0,0,80,70,0,0,192,93,0,0,80,70,0,0,80,70,0,0,8,82,0,0,8,82,0,0,0,125,0,0,240,85,0,0,240,85,0,0,96,109,0,0,96,109,0,0,0,250,0,0,112,148,0,0,112,148,0,0,80,195,0,0,80,195,0,0,230,90,52,56,119,78,51,57,211,217,201,57,146,145,51,58,204,96,140,58,97,251,201,58,153,126,9,59,203,128,51,59,213,37,99,59,119,46,140,59,168,138,169,59,69,184,201,59,135,166,236,59,232,46,9,60,174,102,29,60,247,2,51,60,147,255,73,60,79,88,98,60,94,17,124,60,46,145,139,60,189,199,153,60,92,172,168,60,243,60,184,60,129,121,200,60,238,95,217,60,57,240,234,60,99,42,253,60,53,7,8,61,16,204,17,61,205,228,27,61,97,80,38,61,203,14,49,61,0,31,60,61,254,128,71,61,198,52,83,61,63,56,95,61,105,139,107,61,69,46,120,61,105,144,130,61,123,48,137,61,224,247,143,61,138,229,150,61,123,249,157,61,177,51,165,61,33,147,172,61,80,24,180,61,51,194,187,61,79,145,195,61,18,132,203,61,2,155,211,61,31,214,219,61,215,51,228,61,175,180,236,61,33,88,245,61,168,29,254,61,161,130,3,62,242,6,8,62,199,155,12,62,221,64,17,62,52,246,21,62,69,187,26,62,17,144,31,62,84,116,36,62,203,103,41,62,51,106,46,62,141,123,51,62,82,155,56,62,197,201,61,62,28,6,67,62,89,80,72,62,122,168,77,62,183,13,83,62,82,128,88,62,8,0,94,62,84,140,99,62,242,36,105,62,37,202,110,62,36,123,116,62,172,55,122,62,0,0,128,62,171,233,130,62,249,216,133,62,133,205,136,62,80,199,139,62,55,198,142,62,247,201,145,62,179,210,148,62,38,224,151,62,15,242,154,62,108,8,158,62,28,35,161,62,255,65,164,62,208,100,167,62,177,139,170,62,28,182,173,62,84,228,176,62,211,21,180,62,186,74,183,62,232,130,186,62,249,189,189,62,13,252,192,62,226,60,196,62,86,128,199,62,71,198,202,62,149,14,206,62,251,88,209,62,122,165,212,62,241,243,215,62,28,68,219,62,217,149,222,62,8,233,225,62,167,61,229,62,83,147,232,62,12,234,235,62,175,65,239,62,28,154,242,62,14,243,245,62,136,76,249,62,34,166,252,62,0,0,0,63,239,172,1,63,188,89,3,63,121,6,5,63,242,178,6,63,41,95,8,63,250,10,10,63,86,182,11,63,44,97,13,63,124,11,15,63,19,181,16,63,242,93,18,63,8,6,20,63,67,173,21,63,130,83,23,63,182,248,24,63,220,156,26,63,213,63,28,63,143,225,29,63,249,129,31,63,4,33,33,63,140,190,34,63,163,90,36,63,23,245,37,63,214,141,39,63,242,36,41,63,40,186,42,63,152,77,44,63,1,223,45,63,114,110,47,63,202,251,48,63,249,134,50,63,237,15,52,63,167,150,53,63,4,27,55,63,229,156,56,63,88,28,58,63,61,153,59,63,131,19,61,63,42,139,62,63,0,0,64,63,21,114,65,63,55,225,66,63,119,77,68,63,195,182,69,63,235,28,71,63,254,127,72,63,236,223,73,63,146,60,75,63,225,149,76,63,234,235,77,63,121,62,79,63,143,141,80,63,43,217,81,63,29,33,83,63,115,101,84,63,13,166,85,63,235,226,86,63,252,27,88,63,47,81,89,63,115,130,90,63,201,175,91,63,14,217,92,63,67,254,93,63,88,31,95,63,75,60,96,63,252,84,97,63,106,105,98,63,133,121,99,63,60,133,100,63,160,140,101,63,126,143,102,63,214,141,103,63,186,135,104,63,246,124,105,63,156,109,106,63,138,89,107,63,209,64,108,63,79,35,109,63,4,1,110,63,241,217,110,63,243,173,111,63,28,125,112,63,73,71,113,63,124,12,114,63,180,204,114,63,240,135,115,63,16,62,116,63,19,239,116,63,250,154,117,63,179,65,118,63,63,227,118,63,141,127,119,63,173,22,120,63,126,168,120,63,1,53,121,63,52,188,121,63,24,62,122,63,157,186,122,63,194,49,123,63,119,163,123,63,187,15,124,63,159,118,124,63,2,216,124,63,244,51,125,63,101,138,125,63,68,219,125,63,179,38,126,63,143,108,126,63,235,172,126,63,163,231,126,63,218,28,127,63,127,76,127,63,129,118,127,63,2,155,127,63,208,185,127,63,28,211,127,63,197,230,127,63,203,244,127,63,47,253,127,63,0,0,128,63,2,0,0,0,4,0,0,0,6,0,0,0,8,0,0,0,10,0,0,0,12,0,0,0,14,0,0,0,16,0,0,0,20,0,0,0,24,0,0,0,28,0,0,0,32,0,0,0,40,0,0,0,48,0,0,0,56,0,0,0,68,0,0,0,80,0,0,0,96,0,0,0,120,0,0,0,1,0,0,0,2,0,0,0,4,0,0,0,6,0,0,0,8,0,0,0,10,0,0,0,12,0,0,0,14,0,0,0,16,0,0,0,20,0,0,0,24,0,0,0,28,0,0,0,32,0,0,0,40,0,0,0,48,0,0,0,56,0,0,0,68,0,0,0,80,0,0,0,96,0,0,0,120,0,0,0,160,0,0,0,200,0,0,0,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,208,37,180,62,151,57,173,62,9,165,159,62,250,237,139,62,205,172,101,62,248,169,42,62,52,48,210,61,90,241,13,61,90,241,13,189,52,48,210,189,248,169,42,190,205,172,101,190,250,237,139,190,9,165,159,190,151,57,173,190,208,37,180,190,135,138,177,62,27,131,150,62,96,35,73,62,196,66,141,61,196,66,141,189,96,35,73,190,27,131,150,190,135,138,177,190,135,138,177,190,27,131,150,190,96,35,73,190,196,66,141,189,196,66,141,61,96,35,73,62,27,131,150,62,135,138,177,62,151,57,173,62,205,172,101,62,90,241,13,61,248,169,42,190,9,165,159,190,208,37,180,190,250,237,139,190,52,48,210,189,52,48,210,61,250,237,139,62,208,37,180,62,9,165,159,62,248,169,42,62,90,241,13,189,205,172,101,190,151,57,173,190,125,61,167,62,210,139,10,62,210,139,10,190,125,61,167,190,125,61,167,190,210,139,10,190,210,139,10,62,125,61,167,62,125,61,167,62,210,139,10,62,210,139,10,190,125,61,167,190,125,61,167,190,210,139,10,190,210,139,10,62,125,61,167,62,9,165,159,62,90,241,13,61,250,237,139,190,151,57,173,190,52,48,210,189,205,172,101,62,208,37,180,62,248,169,42,62,248,169,42,190,208,37,180,190,205,172,101,190,52,48,210,61,151,57,173,62,250,237,139,62,90,241,13,189,9,165,159,190,27,131,150,62,196,66,141,189,135,138,177,190,96,35,73,190,96,35,73,62,135,138,177,62,196,66,141,61,27,131,150,190,27,131,150,190,196,66,141,61,135,138,177,62,96,35,73,62,96,35,73,190,135,138,177,190,196,66,141,189,27,131,150,62,250,237,139,62,248,169,42,190,151,57,173,190,90,241,13,61,208,37,180,62,52,48,210,61,9,165,159,190,205,172,101,190,205,172,101,62,9,165,159,62,52,48,210,189,208,37,180,190,90,241,13,189,151,57,173,62,248,169,42,62,250,237,139,190,22,235,181,64,30,107,94,64,35,164,226,63,185,197,204,63,91,124,113,64,184,115,10,64,116,96,161,63,136,245,142,63,19,155,245,63,0,0,0,0,5,193,35,61,233,125,163,61,37,150,244,61,226,116,34,62,172,28,74,62,221,37,113,62,52,186,139,62,180,119,158,62,228,191,176,62,173,136,194,62,37,201,211,62,24,122,228,62,24,149,244,62,200,10,2,63,28,124,9,63,73,157,16,63,202,109,23,63,192,237,29,63,159,29,36,63,84,254,41,63,46,145,47,63,224,215,52,63,99,212,57,63,240,136,62,63,211,247,66,63,171,35,71,63,23,15,75,63,216,188,78,63,173,47,82,63,106,106,85,63,206,111,88,63,154,66,91,63,142,229,93,63,75,91,96,63,110,166,98,63,100,201,100,63,155,198,102,63,111,160,104,63,247,88,106,63,128,242,107,63,223,110,109,63,11,208,110,63,202,23,112,63,224,71,113,63,225,97,114,63,77,103,115,63,150,89,116,63,12,58,117,63,255,9,118,63,138,202,118,63,187,124,119,63,192,33,120,63,98,186,120,63,157,71,121,63,75,202,121,63,36,67,122,63,242,178,122,63,59,26,123,63,200,121,123,63,32,210,123,63,200,35,124,63,55,111,124,63,242,180,124,63,94,245,124,63,224,48,125,63,236,103,125,63,183,154,125,63,180,201,125,63,6,245,125,63,17,29,126,63,24,66,126,63,78,100,126,63,211,131,126,63,253,160,126,63,237,187,126,63,195,212,126,63,179,235,126,63,239,0,127,63,135,20,127,63,141,38,127,63,67,55,127,63,170,70,127,63,227,84,127,63,15,98,127,63,47,110,127,63,100,121,127,63,190,131,127,63,63,141,127,63,24,150,127,63,56,158,127,63,194,165,127,63,163,172,127,63,16,179,127,63,245,184,127,63,119,190,127,63,114,195,127,63,25,200,127,63,108,204,127,63,91,208,127,63,6,212,127,63,111,215,127,63,131,218,127,63,102,221,127,63,21,224,127,63,130,226,127,63,205,228,127,63,230,230,127,63,205,232,127,63,146,234,127,63,70,236,127,63,200,237,127,63,40,239,127,63,120,240,127,63,166,241,127,63,195,242,127,63,191,243,127,63,186,244,127,63,148,245,127,63,94,246,127,63,39,247,127,63,207,247,127,63,119,248,127,63,253,248,127,63,148,249,127,63,9,250,127,63,127,250,127,63,244,250,127,63,89,251,127,63,173,251,127,63,1,252,127,63,84,252,127,63,152,252,127,63,219,252,127,63,30,253,127,63,80,253,127,63,130,253,127,63,181,253,127,63,231,253,127,63,9,254,127,63,59,254,127,63,93,254,127,63,126,254,127,63,143,254,127,63,176,254,127,63,210,254,127,63,227,254,127,63,244,254,127,63,21,255,127,63,38,255,127,63,55,255,127,63,71,255,127,63,88,255,127,63,88,255,127,63,105,255,127,63,122,255,127,63,122,255,127,63,139,255,127,63,155,255,127,63,155,255,127,63,155,255,127,63,172,255,127,63,172,255,127,63,189,255,127,63,189,255,127,63,189,255,127,63,206,255,127,63,206,255,127,63,206,255,127,63,206,255,127,63,206,255,127,63,222,255,127,63,222,255,127,63,222,255,127,63,222,255,127,63,222,255,127,63,222,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,92,201,154,191,92,181,225,188,29,102,249,60,41,7,147,189,76,199,183,189,254,214,206,61,107,200,73,189,213,203,143,61,162,63,153,60,131,208,139,59,7,3,132,61,170,154,224,189,251,30,245,189,156,141,17,188,11,14,47,62,98,192,50,62,25,231,135,190,14,59,130,189,104,203,145,190,133,66,136,191,57,185,79,62,205,228,19,64,254,212,48,192,107,127,215,190,71,229,50,63,144,218,206,64,190,165,135,61,26,70,155,61,241,153,81,61,23,176,46,61,228,249,236,61,194,18,135,190,137,197,57,188,107,74,66,190,44,114,190,189,15,94,147,190,234,136,189,61,164,240,234,60,161,171,163,188,103,180,69,190,98,101,132,62,179,149,151,60,242,210,237,61,140,77,203,61,221,29,0,188,97,51,136,190,116,69,145,62,227,199,40,65,110,133,40,191,198,53,86,63,106,222,81,65,36,209,160,192,56,103,140,191,137,42,151,189,64,184,167,60,103,126,53,60,37,104,2,187,152,220,139,59,239,146,24,62,41,174,154,61,238,207,229,61,197,96,84,189,236,162,232,60,105,97,197,60,53,77,78,189,26,24,25,190,227,199,8,190,182,159,12,190,150,33,238,61,117,202,115,62,250,97,164,61,125,168,30,61,218,27,188,61,180,142,129,64,129,149,79,64,2,43,55,191,225,93,2,65,218,44,239,193,246,40,148,63,255,147,255,189,102,233,185,60,124,187,64,189,90,0,9,189,207,206,19,61,20,106,55,61,121,110,41,187,165,84,157,188,137,151,231,189,90,72,224,61,75,81,51,189,51,156,28,61,194,238,34,188,128,99,31,190,82,12,48,62,141,123,99,190,91,8,6,191,166,34,58,189,54,144,14,191,23,244,66,63,23,217,44,192,69,13,98,191,113,29,99,63,107,15,63,63,168,25,186,190,127,137,184,62,66,91,14,61,15,97,124,188,56,153,225,59,58,135,27,188,169,33,128,61,86,182,79,189,178,164,23,61,110,10,117,60,67,86,119,61,71,94,145,189,118,138,21,189,47,196,202,61,104,185,34,189,150,10,146,62,113,231,2,62,77,45,27,190,59,29,136,62,111,117,170,189,14,67,85,61,140,214,101,63,202,224,224,62,144,131,64,192,163,1,248,63,103,68,209,190,54,172,153,62,227,194,181,191,69,74,243,61,178,70,61,189,146,230,79,61,22,83,196,188,77,235,128,189,165,98,8,188,160,53,223,189,183,222,5,189,46,143,213,61,96,168,136,189,8,242,66,61,75,175,141,61,63,127,107,189,121,33,13,190,10,242,83,190,129,236,37,190,88,114,85,190,45,39,17,62,57,41,148,190,154,153,73,191,163,146,186,61,240,50,51,62,10,46,2,192,198,80,68,64,133,124,156,63,95,210,6,64,48,139,159,61,171,63,98,190,60,106,12,62,216,26,128,189,100,118,150,189,195,14,51,62,84,195,14,190,131,32,198,61,103,30,170,61,167,7,101,190,13,250,210,61,147,139,209,189,146,6,103,62,123,20,30,62,83,93,64,62,22,226,15,188,77,188,3,62,60,50,190,190,86,68,245,190,73,76,32,62,106,48,141,63,196,124,161,191,19,13,178,61,28,181,18,190,57,185,11,64,18,218,56,192,38,27,207,61,119,219,157,190,203,101,99,62,140,44,105,190,51,31,12,188,188,93,47,60,26,189,253,59,149,207,151,188,8,181,250,60,252,55,111,190,62,86,165,61,13,54,245,188,175,150,27,62,31,19,137,190,22,143,70,61,87,93,7,62,150,148,107,190,235,59,183,62,168,114,154,61,167,149,226,61,103,155,163,191,174,216,83,64,156,192,84,63,188,118,89,190,203,161,165,193,252,24,147,191,62,46,0,61,22,207,170,188,109,194,3,188,13,228,52,60,76,23,226,60,94,191,253,58,3,71,93,188,3,132,201,187,99,6,79,61,150,27,49,188,190,138,88,58,58,177,199,188,119,103,165,190,169,211,139,61,238,8,15,191,175,7,211,189,41,34,51,62,108,152,1,190,136,13,214,189,43,79,216,62,52,234,139,189,171,91,185,191,106,189,51,63,173,78,54,63,236,24,215,190,201,60,38,64,232,221,243,188,27,145,57,189,185,75,7,189,85,29,13,189,165,90,213,188,35,17,122,189,144,195,187,61,245,244,209,60,72,108,215,189,184,241,157,61,150,18,184,189,131,161,62,190,154,92,164,190,4,27,103,190,120,11,52,62,56,129,129,62,107,40,61,63,2,212,26,64,153,129,234,61,4,200,160,190,198,164,27,63,129,178,221,63,87,38,6,192,164,253,27,191,240,80,152,63,51,53,233,61,233,239,53,190,169,237,160,189,98,49,178,190,76,105,194,189,155,132,156,188,254,240,171,62,96,4,109,189,194,104,6,62,43,18,243,189,64,75,7,190,254,95,117,190,119,167,65,58,2,102,62,190,146,232,5,190,239,116,223,190,94,16,17,190,187,191,16,61,20,198,91,189,132,137,197,189,111,45,99,62,109,168,248,63,76,137,228,191,91,211,116,64,35,190,111,64,182,185,23,64,227,170,182,191,215,183,61,61,62,230,104,189,170,229,88,61,29,114,211,189,226,147,174,190,198,194,208,61,79,145,79,191,195,98,52,62,3,119,240,62,144,222,203,60,19,213,219,189,99,71,19,190,169,61,59,189,229,122,71,63,75,144,17,190,9,129,33,61,106,161,36,62,200,38,53,191,91,181,27,191,126,24,137,63,124,155,162,191,249,189,17,64,54,205,203,64,10,20,5,63,165,73,85,192,70,122,1,190,179,80,193,189,15,198,217,60,14,62,126,61,52,147,57,60,169,249,130,190,29,176,150,189,125,219,130,189,206,112,195,189,88,226,81,190,21,24,149,59,62,81,99,61,5,105,38,190,235,230,18,191,183,124,132,62,140,185,75,62,61,164,179,60,75,230,192,190,43,50,2,191,22,24,157,189,25,142,39,191,248,165,143,64,103,237,88,64,227,25,22,192,193,57,49,193,167,116,139,64,15,127,213,63,227,129,82,189,253,114,140,189,204,192,55,188,190,157,243,57,254,123,112,190,116,92,173,190,227,167,17,190,212,126,43,190,24,177,15,190,150,176,214,189,48,100,213,189,144,204,52,60,123,190,230,189,57,165,178,61,42,224,46,190,69,155,179,189,224,157,252,61,43,133,32,190,158,208,75,62,116,208,101,189,126,54,102,63,242,249,167,61,143,194,165,191,164,231,241,60,55,166,17,64,235,228,112,191,169,2,36,188,156,111,228,189,154,93,7,190,171,9,226,189,126,29,24,61,207,152,147,188,19,0,45,188,234,106,161,60,33,229,39,61,192,163,92,189,78,155,209,189,224,208,64,189,139,78,54,62,105,25,137,190,231,167,216,189,95,207,215,189,194,73,127,61,52,190,47,189,194,195,52,62,247,234,35,190,168,58,18,192,101,141,246,191,116,98,95,62,180,188,26,65,146,116,83,64,160,55,225,191,122,200,4,62,228,73,242,61,246,36,16,62,235,223,138,61,12,62,77,59,137,205,108,188,56,33,254,188,96,209,200,188,25,60,12,62,132,189,25,62,45,11,230,61,121,161,154,189,35,221,143,190,130,83,127,190,19,129,46,191,240,31,1,61,12,6,151,62,139,187,38,61,202,197,144,62,4,57,176,190,69,129,234,192,30,81,97,190,142,119,15,191,191,154,239,191,3,62,227,192,179,210,8,65,196,66,5,64,192,93,118,62,189,24,162,63,174,156,253,60,179,152,140,191,122,142,92,63,186,189,196,191,106,106,137,63,198,138,140,64,99,180,38,192,82,12,192,62,126,200,251,61,169,231,85,59,40,244,70,63,137,7,2,192,108,206,113,191,82,242,128,64,216,127,133,190,63,111,14,63,148,220,97,190,2,183,226,191,40,212,91,191,230,150,194,191,215,190,72,191,25,32,177,62,201,21,72,189,50,146,165,190,160,168,64,191,202,112,4,63,170,96,96,63,69,100,184,191,174,185,195,190,108,236,198,191,0,0,128,63,0,0,0,64,0,0,64,64,0,0,128,64,0,0,160,64,0,0,192,64,0,0,224,64,0,0,0,65,0,0,128,65,0,0,192,65,0,0,16,66,0,0,48,66,0,0,72,66,0,0,96,66,0,0,120,66,0,0,134,66,0,0,144,66,0,0,158,66,0,0,176,66,0,0,212,66,0,0,6,67,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,64,64,0,0,64,64,0,0,128,64,0,0,160,64,0,0,192,64,0,0,0,65,0,0,0,65,149,139,0,0,55,152,0,0,255,165,0,0,4,181,0,0,103,197,0,0,69,215,0,0,193,234,0,0,255,255,0,0,128,187,0,0,120,0,0,0,21,0,0,0,21,0,0,0,0,154,89,63,0,0,0,0,0,0,128,63,0,0,128,63,220,90,0,0,3,0,0,0,8,0,0,0,120,0,0,0,11,0,0,0,58,110,0,0,8,91,0,0,36,21,0,0,128,7,0,0,3,0,0,0,4,23,0,0,60,38,0,0,116,38,0,0,172,38,0,0,228,38,0,0,136,1,0,0,58,98,0,0,33,111,0,0,169,112,0,0,106,28,141,56,82,187,30,58,8,105,220,58,130,237,87,59,137,99,178,59,3,42,5,60,48,220,57,60,180,62,119,60,28,163,158,60,209,242,197,60,254,134,241,60,155,171,16,61,5,173,42,61,132,194,70,61,83,230,100,61,17,137,130,61,135,159,147,61,203,178,165,61,209,190,184,61,58,191,204,61,84,175,225,61,20,138,247,61,14,37,7,62,217,244,18,62,95,49,31,62,104,215,43,62,138,227,56,62,48,82,70,62,148,31,84,62,191,71,98,62,142,198,112,62,176,151,127,62,82,91,135,62,96,15,143,62,152,229,150,62,121,219,158,62,112,238,166,62,216,27,175,62,251,96,183,62,17,187,191,62,70,39,200,62,183,162,208,62,120,42,217,62,148,187,225,62,12,83,234,62,222,237,242,62,6,137,251,62,190,16,2,63,31,90,6,63,36,159,10,63,80,222,14,63,43,22,19,63,65,69,23,63,37,106,27,63,115,131,31,63,206,143,35,63,230,141,39,63,116,124,43,63,63,90,47,63,25,38,51,63,231,222,54,63,153,131,58,63,51,19,62,63,197,140,65,63,119,239,68,63,127,58,72,63,39,109,75,63,206,134,78,63,229,134,81,63,241,108,84,63,142,56,87,63,105,233,89,63,69,127,92,63,250,249,94,63,115,89,97,63,175,157,99,63,193,198,101,63,207,212,103,63,17,200,105,63,210,160,107,63,110,95,109,63,80,4,111,63,244,143,112,63,230,2,114,63,189,93,115,63,31,161,116,63,191,205,117,63,87,228,118,63,176,229,119,63,151,210,120,63,227,171,121,63,115,114,122,63,39,39,123,63,231,202,123,63,157,94,124,63,53,227,124,63,156,89,125,63,189,194,125,63,134,31,126,63,222,112,126,63,171,183,126,63,207,244,126,63,38,41,127,63,134,85,127,63,190,122,127,63,150,153,127,63,204,178,127,63,20,199,127,63,28,215,127,63,130,227,127,63,221,236,127,63,182,243,127,63,138,248,127,63,200,251,127,63,214,253,127,63,7,255,127,63,165,255,127,63,232,255,127,63,253,255,127,63,0,0,128,63,224,1,0,0,135,136,8,59,255,255,255,255,5,0,96,0,3,0,32,0,4,0,8,0,2,0,4,0,4,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,50,91,0,0,60,23,0,0,0,0,0,0,0,0,128,63,0,0,0,128,99,250,127,63,191,117,86,188,139,233,127,63,10,113,214,188,121,205,127,63,231,206,32,189,47,166,127,63,58,94,86,189,175,115,127,63,19,242,133,189,249,53,127,63,42,175,160,189,18,237,126,63,51,101,187,189,253,152,126,63,4,19,214,189,188,57,126,63,115,183,240,189,85,207,125,63,168,168,5,190,203,89,125,63,187,239,18,190,37,217,124,63,92,48,32,190,103,77,124,63,245,105,45,190,152,182,123,63,243,155,58,190,190,20,123,63,194,197,71,190,226,103,122,63,205,230,84,190,9,176,121,63,130,254,97,190,60,237,120,63,77,12,111,190,132,31,120,63,156,15,124,190,234,70,119,63,238,131,132,190,119,99,118,63,62,250,138,190,54,117,117,63,117,106,145,190,48,124,116,63,76,212,151,190,113,120,115,63,122,55,158,190,3,106,114,63,183,147,164,190,244,80,113,63,188,232,170,190,79,45,112,63,65,54,177,190,33,255,110,63,1,124,183,190,118,198,109,63,180,185,189,190,94,131,108,63,21,239,195,190,231,53,107,63,222,27,202,190,30,222,105,63,201,63,208,190,18,124,104,63,146,90,214,190,212,15,103,63,243,107,220,190,116,153,101,63,170,115,226,190,1,25,100,63,113,113,232,190,141,142,98,63,7,101,238,190,40,250,96,63,39,78,244,190,230,91,95,63,144,44,250,190,215,179,93,63,0,0,0,191,15,2,92,63,27,228,2,191,160,70,90,63,119,194,5,191,158,129,88,63,246,154,8,191,29,179,86,63,119,109,11,191,49,219,84,63,218,57,14,191,239,249,82,63,0,0,17,191,108,15,81,63,202,191,19,191,189,27,79,63,24,121,22,191,248,30,77,63,205,43,25,191,52,25,75,63,202,215,27,191,136,10,73,63,241,124,30,191,10,243,70,63,36,27,33,191,209,210,68,63,70,178,35,191,247,169,66,63,58,66,38,191,147,120,64,63,227,202,40,191,189,62,62,63,37,76,43,191,143,252,59,63,227,197,45,191,34,178,57,63,1,56,48,191,144,95,55,63,101,162,50,191,243,4,53,63,243,4,53,191,101,162,50,63,144,95,55,191,1,56,48,63,34,178,57,191,227,197,45,63,143,252,59,191,37,76,43,63,189,62,62,191,227,202,40,63,147,120,64,191,58,66,38,63,247,169,66,191,70,178,35,63,209,210,68,191,36,27,33,63,10,243,70,191,241,124,30,63,136,10,73,191,202,215,27,63,52,25,75,191,205,43,25,63,248,30,77,191,24,121,22,63,189,27,79,191,202,191,19,63,108,15,81,191,0,0,17,63,239,249,82,191,218,57,14,63,49,219,84,191,119,109,11,63,29,179,86,191,246,154,8,63,158,129,88,191,119,194,5,63,160,70,90,191,27,228,2,63,15,2,92,191,0,0,0,63,215,179,93,191,144,44,250,62,230,91,95,191,39,78,244,62,40,250,96,191,7,101,238,62,141,142,98,191,113,113,232,62,1,25,100,191,170,115,226,62,116,153,101,191,243,107,220,62,212,15,103,191,146,90,214,62,18,124,104,191,201,63,208,62,30,222,105,191,222,27,202,62,231,53,107,191,21,239,195,62,94,131,108,191,180,185,189,62,118,198,109,191,1,124,183,62,33,255,110,191,65,54,177,62,79,45,112,191,188,232,170,62,244,80,113,191,183,147,164,62,3,106,114,191,122,55,158,62,113,120,115,191,76,212,151,62,48,124,116,191,117,106,145,62,54,117,117,191,62,250,138,62,119,99,118,191,238,131,132,62,234,70,119,191,156,15,124,62,132,31,120,191,77,12,111,62,60,237,120,191,130,254,97,62,9,176,121,191,205,230,84,62,226,103,122,191,194,197,71,62,190,20,123,191,243,155,58,62,152,182,123,191,245,105,45,62,103,77,124,191,92,48,32,62,37,217,124,191,187,239,18,62,203,89,125,191,168,168,5,62,85,207,125,191,115,183,240,61,188,57,126,191,4,19,214,61,253,152,126,191,51,101,187,61,18,237,126,191,42,175,160,61,249,53,127,191,19,242,133,61,175,115,127,191,58,94,86,61,47,166,127,191,231,206,32,61,121,205,127,191,10,113,214,60,139,233,127,191,191,117,86,60,99,250,127,191,0,48,141,36,0,0,128,191,191,117,86,188,99,250,127,191,10,113,214,188,139,233,127,191,231,206,32,189,121,205,127,191,58,94,86,189,47,166,127,191,19,242,133,189,175,115,127,191,42,175,160,189,249,53,127,191,51,101,187,189,18,237,126,191,4,19,214,189,253,152,126,191,115,183,240,189,188,57,126,191,168,168,5,190,85,207,125,191,187,239,18,190,203,89,125,191,92,48,32,190,37,217,124,191,245,105,45,190,103,77,124,191,243,155,58,190,152,182,123,191,194,197,71,190,190,20,123,191,205,230,84,190,226,103,122,191,130,254,97,190,9,176,121,191,77,12,111,190,60,237,120,191,156,15,124,190,132,31,120,191,238,131,132,190,234,70,119,191,62,250,138,190,119,99,118,191,117,106,145,190,54,117,117,191,76,212,151,190,48,124,116,191,122,55,158,190,113,120,115,191,183,147,164,190,3,106,114,191,188,232,170,190,244,80,113,191,65,54,177,190,79,45,112,191,1,124,183,190,33,255,110,191,180,185,189,190,118,198,109,191,21,239,195,190,94,131,108,191,222,27,202,190,231,53,107,191,201,63,208,190,30,222,105,191,146,90,214,190,18,124,104,191,243,107,220,190,212,15,103,191,170,115,226,190,116,153,101,191,113,113,232,190,1,25,100,191,7,101,238,190,141,142,98,191,39,78,244,190,40,250,96,191,144,44,250,190,230,91,95,191,0,0,0,191,215,179,93,191,27,228,2,191,15,2,92,191,119,194,5,191,160,70,90,191,246,154,8,191,158,129,88,191,119,109,11,191,29,179,86,191,218,57,14,191,49,219,84,191,0,0,17,191,239,249,82,191,202,191,19,191,108,15,81,191,24,121,22,191,189,27,79,191,205,43,25,191,248,30,77,191,202,215,27,191,52,25,75,191,241,124,30,191,136,10,73,191,36,27,33,191,10,243,70,191,70,178,35,191,209,210,68,191,58,66,38,191,247,169,66,191,227,202,40,191,147,120,64,191,37,76,43,191,189,62,62,191,227,197,45,191,143,252,59,191,1,56,48,191,34,178,57,191,101,162,50,191,144,95,55,191,243,4,53,191,243,4,53,191,144,95,55,191,101,162,50,191,34,178,57,191,1,56,48,191,143,252,59,191,227,197,45,191,189,62,62,191,37,76,43,191,147,120,64,191,227,202,40,191,247,169,66,191,58,66,38,191,209,210,68,191,70,178,35,191,10,243,70,191,36,27,33,191,136,10,73,191,241,124,30,191,52,25,75,191,202,215,27,191,248,30,77,191,205,43,25,191,189,27,79,191,24,121,22,191,108,15,81,191,202,191,19,191,239,249,82,191,0,0,17,191,49,219,84,191,218,57,14,191,29,179,86,191,119,109,11,191,158,129,88,191,246,154,8,191,160,70,90,191,119,194,5,191,15,2,92,191,27,228,2,191,215,179,93,191,0,0,0,191,230,91,95,191,144,44,250,190,40,250,96,191,39,78,244,190,141,142,98,191,7,101,238,190,1,25,100,191,113,113,232,190,116,153,101,191,170,115,226,190,212,15,103,191,243,107,220,190,18,124,104,191,146,90,214,190,30,222,105,191,201,63,208,190,231,53,107,191,222,27,202,190,94,131,108,191,21,239,195,190,118,198,109,191,180,185,189,190,33,255,110,191,1,124,183,190,79,45,112,191,65,54,177,190,244,80,113,191,188,232,170,190,3,106,114,191,183,147,164,190,113,120,115,191,122,55,158,190,48,124,116,191,76,212,151,190,54,117,117,191,117,106,145,190,119,99,118,191,62,250,138,190,234,70,119,191,238,131,132,190,132,31,120,191,156,15,124,190,60,237,120,191,77,12,111,190,9,176,121,191,130,254,97,190,226,103,122,191,205,230,84,190,190,20,123,191,194,197,71,190,152,182,123,191,243,155,58,190,103,77,124,191,245,105,45,190,37,217,124,191,92,48,32,190,203,89,125,191,187,239,18,190,85,207,125,191,168,168,5,190,188,57,126,191,115,183,240,189,253,152,126,191,4,19,214,189,18,237,126,191,51,101,187,189,249,53,127,191,42,175,160,189,175,115,127,191,19,242,133,189,47,166,127,191,58,94,86,189,121,205,127,191,231,206,32,189,139,233,127,191,10,113,214,188,99,250,127,191,191,117,86,188,0,0,128,191,0,48,13,165,99,250,127,191,191,117,86,60,139,233,127,191,10,113,214,60,121,205,127,191,231,206,32,61,47,166,127,191,58,94,86,61,175,115,127,191,19,242,133,61,249,53,127,191,42,175,160,61,18,237,126,191,51,101,187,61,253,152,126,191,4,19,214,61,188,57,126,191,115,183,240,61,85,207,125,191,168,168,5,62,203,89,125,191,187,239,18,62,37,217,124,191,92,48,32,62,103,77,124,191,245,105,45,62,152,182,123,191,243,155,58,62,190,20,123,191,194,197,71,62,226,103,122,191,205,230,84,62,9,176,121,191,130,254,97,62,60,237,120,191,77,12,111,62,132,31,120,191,156,15,124,62,234,70,119,191,238,131,132,62,119,99,118,191,62,250,138,62,54,117,117,191,117,106,145,62,48,124,116,191,76,212,151,62,113,120,115,191,122,55,158,62,3,106,114,191,183,147,164,62,244,80,113,191,188,232,170,62,79,45,112,191,65,54,177,62,33,255,110,191,1,124,183,62,118,198,109,191,180,185,189,62,94,131,108,191,21,239,195,62,231,53,107,191,222,27,202,62,30,222,105,191,201,63,208,62,18,124,104,191,146,90,214,62,212,15,103,191,243,107,220,62,116,153,101,191,170,115,226,62,1,25,100,191,113,113,232,62,141,142,98,191,7,101,238,62,40,250,96,191,39,78,244,62,230,91,95,191,144,44,250,62,215,179,93,191,0,0,0,63,15,2,92,191,27,228,2,63,160,70,90,191,119,194,5,63,158,129,88,191,246,154,8,63,29,179,86,191,119,109,11,63,49,219,84,191,218,57,14,63,239,249,82,191,0,0,17,63,108,15,81,191,202,191,19,63,189,27,79,191,24,121,22,63,248,30,77,191,205,43,25,63,52,25,75,191,202,215,27,63,136,10,73,191,241,124,30,63,10,243,70,191,36,27,33,63,209,210,68,191,70,178,35,63,247,169,66,191,58,66,38,63,147,120,64,191,227,202,40,63,189,62,62,191,37,76,43,63,143,252,59,191,227,197,45,63,34,178,57,191,1,56,48,63,144,95,55,191,101,162,50,63,243,4,53,191,243,4,53,63,101,162,50,191,144,95,55,63,1,56,48,191,34,178,57,63,227,197,45,191,143,252,59,63,37,76,43,191,189,62,62,63,227,202,40,191,147,120,64,63,58,66,38,191,247,169,66,63,70,178,35,191,209,210,68,63,36,27,33,191,10,243,70,63,241,124,30,191,136,10,73,63,202,215,27,191,52,25,75,63,205,43,25,191,248,30,77,63,24,121,22,191,189,27,79,63,202,191,19,191,108,15,81,63,0,0,17,191,239,249,82,63,218,57,14,191,49,219,84,63,119,109,11,191,29,179,86,63,246,154,8,191,158,129,88,63,119,194,5,191,160,70,90,63,27,228,2,191,15,2,92,63,0,0,0,191,215,179,93,63,144,44,250,190,230,91,95,63,39,78,244,190,40,250,96,63,7,101,238,190,141,142,98,63,113,113,232,190,1,25,100,63,170,115,226,190,116,153,101,63,243,107,220,190,212,15,103,63,146,90,214,190,18,124,104,63,201,63,208,190,30,222,105,63,222,27,202,190,231,53,107,63,21,239,195,190,94,131,108,63,180,185,189,190,118,198,109,63,1,124,183,190,33,255,110,63,65,54,177,190,79,45,112,63,188,232,170,190,244,80,113,63,183,147,164,190,3,106,114,63,122,55,158,190,113,120,115,63,76,212,151,190,48,124,116,63,117,106,145,190,54,117,117,63,62,250,138,190,119,99,118,63,238,131,132,190,234,70,119,63,156,15,124,190,132,31,120,63,77,12,111,190,60,237,120,63,130,254,97,190,9,176,121,63,205,230,84,190,226,103,122,63,194,197,71,190,190,20,123,63,243,155,58,190,152,182,123,63,245,105,45,190,103,77,124,63,92,48,32,190,37,217,124,63,187,239,18,190,203,89,125,63,168,168,5,190,85,207,125,63,115,183,240,189,188,57,126,63,4,19,214,189,253,152,126,63,51,101,187,189,18,237,126,63,42,175,160,189,249,53,127,63,19,242,133,189,175,115,127,63,58,94,86,189,47,166,127,63,231,206,32,189,121,205,127,63,10,113,214,188,139,233,127,63,191,117,86,188,99,250,127,63,0,200,83,165,0,0,128,63,191,117,86,60,99,250,127,63,10,113,214,60,139,233,127,63,231,206,32,61,121,205,127,63,58,94,86,61,47,166,127,63,19,242,133,61,175,115,127,63,42,175,160,61,249,53,127,63,51,101,187,61,18,237,126,63,4,19,214,61,253,152,126,63,115,183,240,61,188,57,126,63,168,168,5,62,85,207,125,63,187,239,18,62,203,89,125,63,92,48,32,62,37,217,124,63,245,105,45,62,103,77,124,63,243,155,58,62,152,182,123,63,194,197,71,62,190,20,123,63,205,230,84,62,226,103,122,63,130,254,97,62,9,176,121,63,77,12,111,62,60,237,120,63,156,15,124,62,132,31,120,63,238,131,132,62,234,70,119,63,62,250,138,62,119,99,118,63,117,106,145,62,54,117,117,63,76,212,151,62,48,124,116,63,122,55,158,62,113,120,115,63,183,147,164,62,3,106,114,63,188,232,170,62,244,80,113,63,65,54,177,62,79,45,112,63,1,124,183,62,33,255,110,63,180,185,189,62,118,198,109,63,21,239,195,62,94,131,108,63,222,27,202,62,231,53,107,63,201,63,208,62,30,222,105,63,146,90,214,62,18,124,104,63,243,107,220,62,212,15,103,63,170,115,226,62,116,153,101,63,113,113,232,62,1,25,100,63,7,101,238,62,141,142,98,63,39,78,244,62,40,250,96,63,144,44,250,62,230,91,95,63,0,0,0,63,215,179,93,63,27,228,2,63,15,2,92,63,119,194,5,63,160,70,90,63,246,154,8,63,158,129,88,63,119,109,11,63,29,179,86,63,218,57,14,63,49,219,84,63,0,0,17,63,239,249,82,63,202,191,19,63,108,15,81,63,24,121,22,63,189,27,79,63,205,43,25,63,248,30,77,63,202,215,27,63,52,25,75,63,241,124,30,63,136,10,73,63,36,27,33,63,10,243,70,63,70,178,35,63,209,210,68,63,58,66,38,63,247,169,66,63,227,202,40,63,147,120,64,63,37,76,43,63,189,62,62,63,227,197,45,63,143,252,59,63,1,56,48,63,34,178,57,63,101,162,50,63,144,95,55,63,243,4,53,63,243,4,53,63,144,95,55,63,101,162,50,63,34,178,57,63,1,56,48,63,143,252,59,63,227,197,45,63,189,62,62,63,37,76,43,63,147,120,64,63,227,202,40,63,247,169,66,63,58,66,38,63,209,210,68,63,70,178,35,63,10,243,70,63,36,27,33,63,136,10,73,63,241,124,30,63,52,25,75,63,202,215,27,63,248,30,77,63,205,43,25,63,189,27,79,63,24,121,22,63,108,15,81,63,202,191,19,63,239,249,82,63,0,0,17,63,49,219,84,63,218,57,14,63,29,179,86,63,119,109,11,63,158,129,88,63,246,154,8,63,160,70,90,63,119,194,5,63,15,2,92,63,27,228,2,63,215,179,93,63,0,0,0,63,230,91,95,63,144,44,250,62,40,250,96,63,39,78,244,62,141,142,98,63,7,101,238,62,1,25,100,63,113,113,232,62,116,153,101,63,170,115,226,62,212,15,103,63,243,107,220,62,18,124,104,63,146,90,214,62,30,222,105,63,201,63,208,62,231,53,107,63,222,27,202,62,94,131,108,63,21,239,195,62,118,198,109,63,180,185,189,62,33,255,110,63,1,124,183,62,79,45,112,63,65,54,177,62,244,80,113,63,188,232,170,62,3,106,114,63,183,147,164,62,113,120,115,63,122,55,158,62,48,124,116,63,76,212,151,62,54,117,117,63,117,106,145,62,119,99,118,63,62,250,138,62,234,70,119,63,238,131,132,62,132,31,120,63,156,15,124,62,60,237,120,63,77,12,111,62,9,176,121,63,130,254,97,62,226,103,122,63,205,230,84,62,190,20,123,63,194,197,71,62,152,182,123,63,243,155,58,62,103,77,124,63,245,105,45,62,37,217,124,63,92,48,32,62,203,89,125,63,187,239,18,62,85,207,125,63,168,168,5,62,188,57,126,63,115,183,240,61,253,152,126,63,4,19,214,61,18,237,126,63,51,101,187,61,249,53,127,63,42,175,160,61,175,115,127,63,19,242,133,61,47,166,127,63,58,94,86,61,121,205,127,63,231,206,32,61,139,233,127,63,10,113,214,60,99,250,127,63,191,117,86,60,240,0,0,0,137,136,136,59,1,0,0,0,5,0,48,0,3,0,16,0,4,0,4,0,4,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,242,94,0,0,60,23,0,0,0,0,0,0,120,0,0,0,136,136,8,60,2,0,0,0,5,0,24,0,3,0,8,0,2,0,4,0,4,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,210,96,0,0,60,23,0,0,0,0,0,0,60,0,0,0,137,136,136,60,3,0,0,0,5,0,12,0,3,0,4,0,4,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,194,97,0,0,60,23,0,0,0,0,0,0,255,255,127,63,142,255,127,63,106,254,127,63,147,252,127,63,7,250,127,63,200,246,127,63,214,242,127,63,48,238,127,63,214,232,127,63,200,226,127,63,7,220,127,63,147,212,127,63,107,204,127,63,143,195,127,63,0,186,127,63,189,175,127,63,199,164,127,63,29,153,127,63,192,140,127,63,176,127,127,63,236,113,127,63,118,99,127,63,75,84,127,63,110,68,127,63,222,51,127,63,154,34,127,63,163,16,127,63,250,253,126,63,157,234,126,63,141,214,126,63,203,193,126,63,86,172,126,63,46,150,126,63,83,127,126,63,198,103,126,63,134,79,126,63,148,54,126,63,239,28,126,63,152,2,126,63,143,231,125,63,211,203,125,63,102,175,125,63,70,146,125,63,116,116,125,63,241,85,125,63,188,54,125,63,213,22,125,63,60,246,124,63,242,212,124,63,246,178,124,63,73,144,124,63,235,108,124,63,219,72,124,63,27,36,124,63,169,254,123,63,135,216,123,63,180,177,123,63,48,138,123,63,252,97,123,63,23,57,123,63,130,15,123,63,61,229,122,63,72,186,122,63,162,142,122,63,77,98,122,63,72,53,122,63,148,7,122,63,48,217,121,63,29,170,121,63,90,122,121,63,233,73,121,63,200,24,121,63,249,230,120,63],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);allocate([123,180,120,63,78,129,120,63,115,77,120,63,234,24,120,63,178,227,119,63,205,173,119,63,58,119,119,63,249,63,119,63,10,8,119,63,110,207,118,63,37,150,118,63,47,92,118,63,140,33,118,63,60,230,117,63,64,170,117,63,151,109,117,63,66,48,117,63,65,242,116,63,148,179,116,63,59,116,116,63,55,52,116,63,135,243,115,63,44,178,115,63,38,112,115,63,118,45,115,63,26,234,114,63,20,166,114,63,100,97,114,63,10,28,114,63,5,214,113,63,87,143,113,63,0,72,113,63,255,255,112,63,85,183,112,63,2,110,112,63,6,36,112,63,98,217,111,63,21,142,111,63,32,66,111,63,132,245,110,63,63,168,110,63,83,90,110,63,192,11,110,63,134,188,109,63,165,108,109,63,29,28,109,63,239,202,108,63,27,121,108,63,161,38,108,63,128,211,107,63,187,127,107,63,80,43,107,63,64,214,106,63,140,128,106,63,50,42,106,63,53,211,105,63,147,123,105,63,77,35,105,63,100,202,104,63,216,112,104,63,168,22,104,63,213,187,103,63,96,96,103,63,72,4,103,63,143,167,102,63,51,74,102,63,54,236,101,63,151,141,101,63,87,46,101,63,119,206,100,63,245,109,100,63,212,12,100,63,18,171,99,63,177,72,99,63,176,229,98,63,16,130,98,63,209,29,98,63,243,184,97,63,119,83,97,63,92,237,96,63,164,134,96,63,78,31,96,63,91,183,95,63,203,78,95,63,158,229,94,63,213,123,94,63,112,17,94,63,110,166,93,63,210,58,93,63,154,206,92,63,198,97,92,63,89,244,91,63,81,134,91,63,174,23,91,63,114,168,90,63,157,56,90,63,46,200,89,63,39,87,89,63,135,229,88,63,79,115,88,63,127,0,88,63,23,141,87,63,24,25,87,63,130,164,86,63,86,47,86,63,147,185,85,63,58,67,85,63,75,204,84,63,199,84,84,63,174,220,83,63,1,100,83,63,191,234,82,63,233,112,82,63,127,246,81,63,130,123,81,63,242,255,80,63,207,131,80,63,26,7,80,63,210,137,79,63,250,11,79,63,144,141,78,63,148,14,78,63,9,143,77,63,237,14,77,63,65,142,76,63,5,13,76,63,59,139,75,63,225,8,75,63,249,133,74,63,131,2,74,63,127,126,73,63,238,249,72,63,207,116,72,63,36,239,71,63,237,104,71,63,41,226,70,63,218,90,70,63,0,211,69,63,155,74,69,63,172,193,68,63,50,56,68,63,47,174,67,63,162,35,67,63,141,152,66,63,239,12,66,63,200,128,65,63,26,244,64,63,229,102,64,63,40,217,63,63,229,74,63,63,27,188,62,63,204,44,62,63,247,156,61,63,157,12,61,63,190,123,60,63,92,234,59,63,117,88,59,63,10,198,58,63,29,51,58,63,173,159,57,63,187,11,57,63,71,119,56,63,81,226,55,63,218,76,55,63,227,182,54,63,107,32,54,63,116,137,53,63,253,241,52,63,7,90,52,63,147,193,51,63,160,40,51,63,48,143,50,63,66,245,49,63,216,90,49,63,241,191,48,63,142,36,48,63,175,136,47,63,85,236,46,63,129,79,46,63,50,178,45,63,105,20,45,63,39,118,44,63,107,215,43,63,55,56,43,63,139,152,42,63,103,248,41,63,204,87,41,63,186,182,40,63,50,21,40,63,51,115,39,63,191,208,38,63,214,45,38,63,121,138,37,63,167,230,36,63,97,66,36,63,169,157,35,63,125,248,34,63,223,82,34,63,207,172,33,63,77,6,33,63,91,95,32,63,248,183,31,63,37,16,31,63,226,103,30,63,48,191,29,63,16,22,29,63,129,108,28,63,132,194,27,63,26,24,27,63,67,109,26,63,0,194,25,63,81,22,25,63,54,106,24,63,177,189,23,63,193,16,23,63,103,99,22,63,163,181,21,63,118,7,21,63,225,88,20,63,228,169,19,63,127,250,18,63,179,74,18,63,128,154,17,63,231,233,16,63,232,56,16,63,132,135,15,63,187,213,14,63,142,35,14,63,254,112,13,63,10,190,12,63,179,10,12,63,250,86,11,63,223,162,10,63,99,238,9,63,134,57,9,63,73,132,8,63,172,206,7,63,175,24,7,63,84,98,6,63,155,171,5,63,131,244,4,63,15,61,4,63,61,133,3,63,15,205,2,63,134,20,2,63,161,91,1,63,97,162,0,63,143,209,255,62,167,93,254,62,14,233,252,62,194,115,251,62,198,253,249,62,27,135,248,62,193,15,247,62,186,151,245,62,6,31,244,62,168,165,242,62,158,43,241,62,236,176,239,62,145,53,238,62,144,185,236,62,232,60,235,62,154,191,233,62,169,65,232,62,21,195,230,62,223,67,229,62,8,196,227,62,145,67,226,62,124,194,224,62,200,64,223,62,120,190,221,62,140,59,220,62,6,184,218,62,230,51,217,62,46,175,215,62,223,41,214,62,249,163,212,62,125,29,211,62,110,150,209,62,204,14,208,62,151,134,206,62,210,253,204,62,125,116,203,62,153,234,201,62,39,96,200,62,40,213,198,62,159,73,197,62,138,189,195,62,236,48,194,62,198,163,192,62,25,22,191,62,230,135,189,62,45,249,187,62,241,105,186,62,50,218,184,62,241,73,183,62,47,185,181,62,238,39,180,62,47,150,178,62,242,3,177,62,57,113,175,62,4,222,173,62,86,74,172,62,47,182,170,62,144,33,169,62,122,140,167,62,239,246,165,62,239,96,164,62,124,202,162,62,151,51,161,62,64,156,159,62,122,4,158,62,68,108,156,62,161,211,154,62,145,58,153,62,22,161,151,62,48,7,150,62,225,108,148,62,41,210,146,62,11,55,145,62,135,155,143,62,158,255,141,62,81,99,140,62,162,198,138,62,145,41,137,62,32,140,135,62,80,238,133,62,34,80,132,62,151,177,130,62,176,18,129,62,222,230,126,62,169,167,123,62,195,103,120,62,47,39,117,62,238,229,113,62,4,164,110,62,115,97,107,62,60,30,104,62,98,218,100,62,232,149,97,62,207,80,94,62,26,11,91,62,204,196,87,62,230,125,84,62,107,54,81,62,93,238,77,62,191,165,74,62,146,92,71,62,218,18,68,62,151,200,64,62,206,125,61,62,128,50,58,62,174,230,54,62,93,154,51,62,141,77,48,62,66,0,45,62,125,178,41,62,66,100,38,62,145,21,35,62,110,198,31,62,219,118,28,62,218,38,25,62,109,214,21,62,152,133,18,62,91,52,15,62,186,226,11,62,183,144,8,62,84,62,5,62,148,235,1,62,240,48,253,61,6,138,246,61,113,226,239,61,51,58,233,61,79,145,226,61,207,231,219,61,181,61,213,61,3,147,206,61,192,231,199,61,242,59,193,61,156,143,186,61,195,226,179,61,108,53,173,61,155,135,166,61,85,217,159,61,159,42,153,61,126,123,146,61,246,203,139,61,11,28,133,61,135,215,124,61,70,118,111,61,93,20,98,61,214,177,84,61,185,78,71,61,16,235,57,61,229,134,44,61,64,34,31,61,44,189,17,61,178,87,4,61,181,227,237,60,96,23,211,60,118,74,184,60,11,125,157,60,50,175,130,60,250,193,79,60,254,36,26,60,42,15,201,59,153,167,59,59,46,125,214,185,210,70,113,187,171,222,227,187,166,140,39,188,129,41,93,188,225,98,137,188,160,48,164,188,236,253,190,188,179,202,217,188,224,150,244,188,49,177,7,189,147,22,21,189,140,123,34,189,19,224,47,189,30,68,61,189,165,167,74,189,157,10,88,189,254,108,101,189,190,206,114,189,234,23,128,189,27,200,134,189,237,119,141,189,92,39,148,189,99,214,154,189,253,132,161,189,38,51,168,189,217,224,174,189,17,142,181,189,202,58,188,189,254,230,194,189,170,146,201,189,200,61,208,189,84,232,214,189,74,146,221,189,164,59,228,189,93,228,234,189,114,140,241,189,221,51,248,189,154,218,254,189,82,192,2,190,252,18,6,190,71,101,9,190,50,183,12,190,186,8,16,190,221,89,19,190,152,170,22,190,234,250,25,190,208,74,29,190,71,154,32,190,78,233,35,190,225,55,39,190,0,134,42,190,166,211,45,190,211,32,49,190,131,109,52,190,181,185,55,190,101,5,59,190,147,80,62,190,58,155,65,190,90,229,68,190,240,46,72,190,249,119,75,190,116,192,78,190,93,8,82,190,179,79,85,190,115,150,88,190,156,220,91,190,42,34,95,190,27,103,98,190,109,171,101,190,31,239,104,190,44,50,108,190,148,116,111,190,84,182,114,190,106,247,117,190,211,55,121,190,141,119,124,190,150,182,127,190,117,122,129,190,69,25,131,190,185,183,132,190,208,85,134,190,136,243,135,190,225,144,137,190,218,45,139,190,112,202,140,190,164,102,142,190,116,2,144,190,223,157,145,190,228,56,147,190,129,211,148,190,182,109,150,190,129,7,152,190,226,160,153,190,215,57,155,190,95,210,156,190,121,106,158,190,35,2,160,190,94,153,161,190,38,48,163,190,125,198,164,190,96,92,166,190,206,241,167,190,198,134,169,190,71,27,171,190,80,175,172,190,224,66,174,190,245,213,175,190,143,104,177,190,173,250,178,190,77,140,180,190,110,29,182,190,16,174,183,190,48,62,185,190,207,205,186,190,234,92,188,190,130,235,189,190,148,121,191,190,31,7,193,190,35,148,194,190,159,32,196,190,145,172,197,190,248,55,199,190,211,194,200,190,34,77,202,190,226,214,203,190,19,96,205,190,181,232,206,190,197,112,208,190,66,248,209,190,45,127,211,190,131,5,213,190,67,139,214,190,109,16,216,190,255,148,217,190,249,24,219,190,89,156,220,190,29,31,222,190,70,161,223,190,211,34,225,190,193,163,226,190,16,36,228,190,190,163,229,190,204,34,231,190,56,161,232,190,0,31,234,190,36,156,235,190,162,24,237,190,122,148,238,190,171,15,240,190,51,138,241,190,18,4,243,190,70,125,244,190,207,245,245,190,170,109,247,190,217,228,248,190,88,91,250,190,40,209,251,190,71,70,253,190,181,186,254,190,56,23,0,191,187,208,0,191,228,137,1,191,178,66,2,191,37,251,2,191,59,179,3,191,246,106,4,191,83,34,5,191,83,217,5,191,245,143,6,191,56,70,7,191,29,252,7,191,162,177,8,191,199,102,9,191,140,27,10,191,240,207,10,191,243,131,11,191,147,55,12,191,209,234,12,191,172,157,13,191,36,80,14,191,56,2,15,191,232,179,15,191,50,101,16,191,24,22,17,191,151,198,17,191,176,118,18,191,99,38,19,191,174,213,19,191,145,132,20,191,13,51,21,191,31,225,21,191,200,142,22,191,8,60,23,191,221,232,23,191,72,149,24,191,72,65,25,191,220,236,25,191,4,152,26,191,192,66,27,191,15,237,27,191,240,150,28,191,99,64,29,191,104,233,29,191,254,145,30,191,37,58,31,191,220,225,31,191,35,137,32,191,250,47,33,191,95,214,33,191,82,124,34,191,212,33,35,191,227,198,35,191,127,107,36,191,167,15,37,191,92,179,37,191,157,86,38,191,104,249,38,191,191,155,39,191,160,61,40,191,11,223,40,191,255,127,41,191,125,32,42,191,131,192,42,191,17,96,43,191,39,255,43,191,196,157,44,191,232,59,45,191,146,217,45,191,195,118,46,191,121,19,47,191,180,175,47,191,115,75,48,191,183,230,48,191,127,129,49,191,203,27,50,191,153,181,50,191,234,78,51,191,189,231,51,191,18,128,52,191,232,23,53,191,63,175,53,191,22,70,54,191,110,220,54,191,69,114,55,191,156,7,56,191,113,156,56,191,197,48,57,191,150,196,57,191,230,87,58,191,178,234,58,191,252,124,59,191,194,14,60,191,3,160,60,191,193,48,61,191,250,192,61,191,173,80,62,191,219,223,62,191,131,110,63,191,165,252,63,191,64,138,64,191,83,23,65,191,224,163,65,191,228,47,66,191,96,187,66,191,83,70,67,191,190,208,67,191,158,90,68,191,246,227,68,191,194,108,69,191,5,245,69,191,188,124,70,191,232,3,71,191,137,138,71,191,157,16,72,191,37,150,72,191,32,27,73,191,142,159,73,191,111,35,74,191,193,166,74,191,134,41,75,191,188,171,75,191,99,45,76,191,122,174,76,191,2,47,77,191,250,174,77,191,98,46,78,191,57,173,78,191,126,43,79,191,51,169,79,191,85,38,80,191,230,162,80,191,228,30,81,191,80,154,81,191,40,21,82,191,109,143,82,191,30,9,83,191,59,130,83,191,195,250,83,191,183,114,84,191,22,234,84,191,223,96,85,191,18,215,85,191,176,76,86,191,183,193,86,191,39,54,87,191,0,170,87,191,66,29,88,191,236,143,88,191,254,1,89,191,120,115,89,191,89,228,89,191,162,84,90,191,81,196,90,191,102,51,91,191,226,161,91,191,195,15,92,191,10,125,92,191,183,233,92,191,200,85,93,191,62,193,93,191,24,44,94,191,87,150,94,191,249,255,94,191,255,104,95,191,104,209,95,191,51,57,96,191,98,160,96,191,243,6,97,191,229,108,97,191,58,210,97,191,240,54,98,191,8,155,98,191,128,254,98,191,89,97,99,191,146,195,99,191,44,37,100,191,37,134,100,191,126,230,100,191,55,70,101,191,78,165,101,191,197,3,102,191,154,97,102,191,205,190,102,191,94,27,103,191,77,119,103,191,154,210,103,191,68,45,104,191,75,135,104,191,174,224,104,191,111,57,105,191,139,145,105,191,4,233,105,191,217,63,106,191,9,150,106,191,148,235,106,191,123,64,107,191,188,148,107,191,89,232,107,191,79,59,108,191,160,141,108,191,75,223,108,191,79,48,109,191,173,128,109,191,101,208,109,191,117,31,110,191,223,109,110,191,161,187,110,191,187,8,111,191,46,85,111,191,248,160,111,191,27,236,111,191,149,54,112,191,103,128,112,191,144,201,112,191,15,18,113,191,230,89,113,191,19,161,113,191,151,231,113,191,113,45,114,191,160,114,114,191,38,183,114,191,1,251,114,191,50,62,115,191,184,128,115,191,148,194,115,191,196,3,116,191,73,68,116,191,34,132,116,191,80,195,116,191,210,1,117,191,168,63,117,191,210,124,117,191,80,185,117,191,33,245,117,191,69,48,118,191,189,106,118,191,136,164,118,191,166,221,118,191,22,22,119,191,217,77,119,191,239,132,119,191,87,187,119,191,17,241,119,191,29,38,120,191,122,90,120,191,42,142,120,191,43,193,120,191,125,243,120,191,33,37,121,191,22,86,121,191,92,134,121,191,242,181,121,191,218,228,121,191,18,19,122,191,154,64,122,191,115,109,122,191,157,153,122,191,22,197,122,191,223,239,122,191,248,25,123,191,97,67,123,191,26,108,123,191,34,148,123,191,122,187,123,191,32,226,123,191,23,8,124,191,92,45,124,191,240,81,124,191,211,117,124,191,5,153,124,191,134,187,124,191,85,221,124,191,115,254,124,191,223,30,125,191,154,62,125,191,163,93,125,191,250,123,125,191,159,153,125,191,146,182,125,191,211,210,125,191,98,238,125,191,63,9,126,191,105,35,126,191,225,60,126,191,167,85,126,191,186,109,126,191,27,133,126,191,201,155,126,191,196,177,126,191,13,199,126,191,162,219,126,191,133,239,126,191,181,2,127,191,50,21,127,191,252,38,127,191,19,56,127,191,118,72,127,191,39,88,127,191,36,103,127,191,110,117,127,191,5,131,127,191,232,143,127,191,25,156,127,191,149,167,127,191,95,178,127,191,116,188,127,191,215,197,127,191,133,206,127,191,129,214,127,191,200,221,127,191,93,228,127,191,61,234,127,191,106,239,127,191,227,243,127,191,169,247,127,191,187,250,127,191,25,253,127,191,196,254,127,191,187,255,127,191,250,255,127,63,57,254,127,63,169,249,127,63,75,242,127,63,30,232,127,63,35,219,127,63,89,203,127,63,193,184,127,63,91,163,127,63,40,139,127,63,39,112,127,63,90,82,127,63,191,49,127,63,88,14,127,63,37,232,126,63,38,191,126,63,92,147,126,63,200,100,126,63,105,51,126,63,65,255,125,63,79,200,125,63,150,142,125,63,20,82,125,63,203,18,125,63,188,208,124,63,231,139,124,63,77,68,124,63,239,249,123,63,205,172,123,63,233,92,123,63,67,10,123,63,221,180,122,63,182,92,122,63,209,1,122,63,46,164,121,63,206,67,121,63,178,224,120,63,220,122,120,63,76,18,120,63,4,167,119,63,4,57,119,63,79,200,118,63,228,84,118,63,198,222,117,63,246,101,117,63,117,234,116,63,68,108,116,63,101,235,115,63,218,103,115,63,163,225,114,63,194,88,114,63,57,205,113,63,9,63,113,63,52,174,112,63,187,26,112,63,160,132,111,63,228,235,110,63,138,80,110,63,147,178,109,63,1,18,109,63,213,110,108,63,17,201,107,63,183,32,107,63,201,117,106,63,73,200,105,63,57,24,105,63,155,101,104,63,111,176,103,63,186,248,102,63,124,62,102,63,184,129,101,63,111,194,100,63,164,0,100,63,90,60,99,63,145,117,98,63,76,172,97,63,142,224,96,63,89,18,96,63,174,65,95,63,145,110,94,63,3,153,93,63,8,193,92,63,160,230,91,63,207,9,91,63,152,42,90,63,251,72,89,63,253,100,88,63,159,126,87,63,229,149,86,63,208,170,85,63,99,189,84,63,161,205,83,63,140,219,82,63,39,231,81,63,117,240,80,63,121,247,79,63,52,252,78,63,171,254,77,63,223,254,76,63,212,252,75,63,140,248,74,63,10,242,73,63,82,233,72,63,101,222,71,63,71,209,70,63,251,193,69,63,132,176,68,63,229,156,67,63,32,135,66,63,58,111,65,63,52,85,64,63,19,57,63,63,216,26,62,63,136,250,60,63,38,216,59,63,180,179,58,63,54,141,57,63,175,100,56,63,34,58,55,63,147,13,54,63,5,223,52,63,124,174,51,63,249,123,50,63,130,71,49,63,25,17,48,63,194,216,46,63,127,158,45,63,86,98,44,63,72,36,43,63,90,228,41,63,144,162,40,63,235,94,39,63,113,25,38,63,37,210,36,63,9,137,35,63,35,62,34,63,117,241,32,63,4,163,31,63,210,82,30,63,228,0,29,63,61,173,27,63,225,87,26,63,211,0,25,63,25,168,23,63,180,77,22,63,170,241,20,63,253,147,19,63,178,52,18,63,204,211,16,63,80,113,15,63,66,13,14,63,164,167,12,63,124,64,11,63,205,215,9,63,154,109,8,63,233,1,7,63,189,148,5,63,25,38,4,63,3,182,2,63,126,68,1,63,28,163,255,62,110,186,252,62,250,206,249,62,202,224,246,62,228,239,243,62,81,252,240,62,26,6,238,62,71,13,235,62,224,17,232,62,237,19,229,62,119,19,226,62,135,16,223,62,36,11,220,62,88,3,217,62,42,249,213,62,164,236,210,62,205,221,207,62,175,204,204,62,82,185,201,62,191,163,198,62,254,139,195,62,24,114,192,62,22,86,189,62,0,56,186,62,224,23,183,62,189,245,179,62,161,209,176,62,149,171,173,62,162,131,170,62,207,89,167,62,39,46,164,62,178,0,161,62,121,209,157,62,133,160,154,62,223,109,151,62,143,57,148,62,160,3,145,62,26,204,141,62,5,147,138,62,107,88,135,62,86,28,132,62,205,222,128,62,182,63,123,62,16,191,116,62,187,59,110,62,201,181,103,62,77,45,97,62,89,162,90,62,255,20,84,62,81,133,77,62,99,243,70,62,70,95,64,62,13,201,57,62,202,48,51,62,144,150,44,62,114,250,37,62,130,92,31,62,210,188,24,62,118,27,18,62,127,120,11,62,1,212,4,62,29,92,252,61,114,13,239,61,41,188,225,61,102,104,212,61,78,18,199,61,8,186,185,61,184,95,172,61,132,3,159,61,146,165,145,61,7,70,132,61,18,202,109,61,122,5,83,61,145,62,56,61,164,117,29,61,252,170,2,61,202,189,207,60,86,35,154,60,97,14,73,60,197,167,187,59,61,122,86,186,9,70,241,187,18,221,99,188,80,138,167,188,65,36,221,188,227,93,9,189,35,40,36,189,150,240,62,189,242,182,89,189,234,122,116,189,26,158,135,189,66,253,148,189,200,90,162,189,134,182,175,189,87,16,189,189,22,104,202,189,155,189,215,189,195,16,229,189,105,97,242,189,101,175,255,189,74,125,6,190,104,33,13,190,250,195,19,190,237,100,26,190,46,4,33,190,172,161,39,190,83,61,46,190,16,215,52,190,210,110,59,190,134,4,66,190,25,152,72,190,121,41,79,190,148,184,85,190,86,69,92,190,174,207,98,190,137,87,105,190,214,220,111,190,128,95,118,190,120,223,124,190,84,174,129,190,129,235,132,190,56,39,136,190,114,97,139,190,36,154,142,190,69,209,145,190,205,6,149,190,179,58,152,190,238,108,155,190,116,157,158,190,61,204,161,190,64,249,164,190,115,36,168,190,207,77,171,190,73,117,174,190,218,154,177,190,120,190,180,190,27,224,183,190,186,255,186,190,75,29,190,190,199,56,193,190,37,82,196,190,91,105,199,190,97,126,202,190,48,145,205,190,188,161,208,190,0,176,211,190,241,187,214,190,135,197,217,190,186,204,220,190,129,209,223,190,211,211,226,190,169,211,229,190,250,208,232,190,189,203,235,190,234,195,238,190,120,185,241,190,96,172,244,190,154,156,247,190,28,138,250,190,223,116,253,190,109,46,0,191,3,161,1,191,45,18,3,191,230,129,4,191,44,240,5,191,250,92,7,191,76,200,8,191,30,50,10,191,108,154,11,191,50,1,13,191,108,102,14,191,23,202,15,191,45,44,17,191,172,140,18,191,144,235,19,191,213,72,21,191,118,164,22,191,113,254,23,191,192,86,25,191,98,173,26,191,81,2,28,191,138,85,29,191,9,167,30,191,203,246,31,191,204,68,33,191,9,145,34,191,124,219,35,191,36,36,37,191,253,106,38,191,2,176,39,191,48,243,40,191,132,52,42,191,250,115,43,191,143,177,44,191,63,237,45,191,7,39,47,191,227,94,48,191,208,148,49,191,202,200,50,191,206,250,51,191,218,42,53,191,232,88,54,191,247,132,55,191,2,175,56,191,7,215,57,191,3,253,58,191,241,32,60,191,207,66,61,191,154,98,62,191,79,128,63,191,233,155,64,191,104,181,65,191,198,204,66,191,1,226,67,191,23,245,68,191,3,6,70,191,196,20,71,191,86,33,72,191,182,43,73,191,225,51,74,191,212,57,75,191,141,61,76,191,9,63,77,191,68,62,78,191,61,59,79,191,240,53,80,191,90,46,81,191,121,36,82,191,74,24,83,191,202,9,84,191,247,248,84,191,206,229,85,191,77,208,86,191,112,184,87,191,55,158,88,191,156,129,89,191,160,98,90,191,62,65,91,191,117,29,92,191,65,247,92,191,162,206,93,191,148,163,94,191,20,118,95,191,34,70,96,191,186,19,97,191,217,222,97,191,127,167,98,191,169,109,99,191,84,49,100,191,126,242,100,191,38,177,101,191,73,109,102,191,229,38,103,191,248,221,103,191,128,146,104,191,123,68,105,191,232,243,105,191,195,160,106,191,12,75,107,191,192,242,107,191,222,151,108,191,100,58,109,191,80,218,109,191,160,119,110,191,83,18,111,191,102,170,111,191,217,63,112,191,169,210,112,191,213,98,113,191,91,240,113,191,58,123,114,191,113,3,115,191,253,136,115,191,222,11,116,191,17,140,116,191,150,9,117,191,107,132,117,191,143,252,117,191,0,114,118,191,189,228,118,191,198,84,119,191,24,194,119,191,178,44,120,191,147,148,120,191,187,249,120,191,40,92,121,191,217,187,121,191,205,24,122,191,2,115,122,191,121,202,122,191,47,31,123,191,36,113,123,191,88,192,123,191,201,12,124,191,118,86,124,191,95,157,124,191,130,225,124,191,224,34,125,191,119,97,125,191,71,157,125,191,79,214,125,191,142,12,126,191,4,64,126,191,176,112,126,191,146,158,126,191,169,201,126,191,245,241,126,191,117,23,127,191,41,58,127,191,16,90,127,191,43,119,127,191,120,145,127,191,248,168,127,191,170,189,127,191,143,207,127,191,165,222,127,191,237,234,127,191,102,244,127,191,17,251,127,191,237,254,127,191,234,255,127,63,229,248,127,63,166,230,127,63,45,201,127,63,124,160,127,63,149,108,127,63,121,45,127,63,44,227,126,63,177,141,126,63,11,45,126,63,63,193,125,63,82,74,125,63,72,200,124,63,40,59,124,63,247,162,123,63,189,255,122,63,128,81,122,63,72,152,121,63,30,212,120,63,9,5,120,63,19,43,119,63,70,70,118,63,172,86,117,63,78,92,116,63,56,87,115,63,118,71,114,63,19,45,113,63,28,8,112,63,158,216,110,63,165,158,109,63,64,90,108,63,126,11,107,63,107,178,105,63,25,79,104,63,150,225,102,63,242,105,101,63,62,232,99,63,139,92,98,63,234,198,96,63,109,39,95,63,38,126,93,63,40,203,91,63,133,14,90,63,83,72,88,63,163,120,86,63,139,159,84,63,32,189,82,63,118,209,80,63,163,220,78,63,189,222,76,63,219,215,74,63,19,200,72,63,124,175,70,63,46,142,68,63,65,100,66,63,206,49,64,63,236,246,61,63,180,179,59,63,66,104,57,63,173,20,55,63,16,185,52,63,134,85,50,63,41,234,47,63,21,119,45,63,101,252,42,63,53,122,40,63,161,240,37,63,198,95,35,63,192,199,32,63,172,40,30,63,169,130,27,63,212,213,24,63,74,34,22,63,42,104,19,63,147,167,16,63,164,224,13,63,123,19,11,63,57,64,8,63,253,102,5,63,231,135,2,63,45,70,255,62,91,113,249,62,151,145,243,62,36,167,237,62,69,178,231,62,60,179,225,62,76,170,219,62,186,151,213,62,201,123,207,62,190,86,201,62,223,40,195,62,112,242,188,62,183,179,182,62,251,108,176,62,129,30,170,62,146,200,163,62,115,107,157,62,108,7,151,62,197,156,144,62,199,43,138,62,185,180,131,62,199,111,122,62,33,107,109,62,17,92,96,62,41,67,83,62,253,32,70,62,32,246,56,62,38,195,43,62,164,136,30,62,45,71,17,62,87,255,3,62,110,99,237,61,194,189,210,61,218,14,184,61,222,87,157,61,251,153,130,61,188,172,79,61,101,28,26,61,153,10,201,60,42,167,59,60,193,120,214,186,45,68,113,188,87,215,227,188,76,129,39,189,148,15,93,189,21,74,137,189,90,6,164,189,109,187,190,189,34,104,217,189,78,11,244,189,227,81,7,190,47,152,20,190,247,215,33,190,165,16,47,190,166,65,60,190,100,106,73,190,77,138,86,190,205,160,99,190,80,173,112,190,69,175,125,190,13,83,133,190,158,200,139,190,13,56,146,190,18,161,152,190,102,3,159,190,191,94,165,190,216,178,171,190,105,255,177,190,43,68,184,190,216,128,190,190,42,181,196,190,219,224,202,190,165,3,209,190,69,29,215,190,117,45,221,190,241,51,227,190,118,48,233,190,192,34,239,190,141,10,245,190,155,231,250,190,211,92,0,191,56,64,3,191,219,29,6,191,155,245,8,191,90,199,11,191,247,146,14,191,84,88,17,191,80,23,20,191,205,207,22,191,172,129,25,191,208,44,28,191,26,209,30,191,109,110,33,191,171,4,36,191,183,147,38,191,116,27,41,191,199,155,43,191,147,20,46,191,187,133,48,191,38,239,50,191,183,80,53,191,85,170,55,191,227,251,57,191,74,69,60,191,110,134,62,191,55,191,64,191,139,239,66,191,83,23,69,191,117,54,71,191,218,76,73,191,107,90,75,191,16,95,77,191,179,90,79,191,62,77,81,191,154,54,83,191,179,22,85,191,114,237,86,191,197,186,88,191,149,126,90,191,208,56,92,191,98,233,93,191,56,144,95,191,64,45,97,191,103,192,98,191,156,73,100,191,206,200,101,191,235,61,103,191,227,168,104,191,167,9,106,191,39,96,107,191,84,172,108,191,31,238,109,191,122,37,111,191,88,82,112,191,171,116,113,191,103,140,114,191,127,153,115,191,231,155,116,191,149,147,117,191,126,128,118,191,150,98,119,191,212,57,120,191,47,6,121,191,158,199,121,191,23,126,122,191,148,41,123,191,13,202,123,191,122,95,124,191,213,233,124,191,24,105,125,191,62,221,125,191,64,70,126,191,28,164,126,191,204,246,126,191,77,62,127,191,156,122,127,191,182,171,127,191,153,209,127,191,67,236,127,191,180,251,127,191,166,255,127,63,148,227,127,63,156,154,127,63,204,36,127,63,56,130,126,63,253,178,125,63,63,183,124,63,42,143,123,63,243,58,122,63,212,186,120,63,17,15,119,63,246,55,117,63,213,53,115,63,8,9,113,63,241,177,110,63,249,48,108,63,144,134,105,63,47,179,102,63,83,183,99,63,132,147,96,63,78,72,93,63,69,214,89,63,3,62,86,63,43,128,82,63,101,157,78,63,94,150,74,63,204,107,70,63,106,30,66,63,249,174,61,63,64,30,57,63,13,109,52,63,50,156,47,63,135,172,42,63,235,158,37,63,63,116,32,63,109,45,27,63,97,203,21,63,13,79,16,63,104,185,10,63,107,11,5,63,46,140,254,62,221,212,242,62,241,242,230,62,127,232,218,62,166,183,206,62,136,98,194,62,78,235,181,62,42,84,169,62,81,159,156,62,253,206,143,62,109,229,130,62,206,201,107,62,98,159,81,62,48,80,55,62,211,224,28,62,241,85,2,62,98,104,207,61,124,0,154,61,36,251,72,61,27,164,187,60,243,119,86,187,100,61,241,188,187,192,99,189,103,93,167,189,20,189,220,189,3,251,8,190,115,127,35,190,52,231,61,190,164,45,88,190,38,78,114,190,18,34,134,190,137,5,147,190,52,207,159,190,213,124,172,190,51,12,185,190,26,123,197,190,91,199,209,190,205,238,221,190,80,239,233,190,199,198,245,190,144,185,0,191,38,121,6,191,36,33,12,191,141,176,17,191,102,38,23,191,186,129,28,191,152,193,33,191,21,229,38,191,74,235,43,191,86,211,48,191,91,156,53,191,131,69,58,191,253,205,62,191,252,52,67,191,188,121,71,191,125,155,75,191,132,153,79,191,31,115,83,191,161,39,87,191,99,182,90,191,198,30,94,191,48,96,97,191,15,122,100,191,216,107,103,191,7,53,106,191,31,213,108,191,169,75,111,191,55,152,113,191,98,186,115,191,201,177,117,191,22,126,119,191,246,30,121,191,33,148,122,191,85,221,123,191,89,250,124,191,250,234,125,191,14,175,126,191,116,70,127,191,15,177,127,191,206,238,127,191,0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,3,0,0,0,2,0,0,0,5,0,0,0,2,0,0,0,3,0,0,0,2,0,0,0,3,0,0,0,2,0,0,0,5,0,0,0,2,0,0,0,3,0,0,0,2,0,0,0,0,0,206,64,0,0,200,64,0,0,184,64,0,0,170,64,0,0,162,64,0,0,154,64,0,0,144,64,0,0,140,64,0,0,156,64,0,0,150,64,0,0,146,64,0,0,142,64,0,0,156,64,0,0,148,64,0,0,138,64,0,0,144,64,0,0,140,64,0,0,148,64,0,0,152,64,0,0,142,64,0,0,112,64,0,0,112,64,0,0,112,64,0,0,112,64,0,0,112,64,0,134,107,63,0,20,46,63,0,112,189,62,0,208,76,62,0,0,102,63,0,0,76,63,0,0,38,63,0,0,0,63,15,0,0,0,10,0,0,0,5,0,0,0,6,0,0,0,4,0,0,0,3,0,0,0,0,115,0,0,8,115,0,0,24,115,0,0,56,115,0,0,64,115,0,0,80,115,0,0,112,115,0,0,152,115,0,0,232,115,0,0,136,116,0,0,144,116,0,0,160,116,0,0,0,0,0,0,64,31,0,0,184,36,0,0,236,44,0,0,188,52,0,0,92,68,0,0,168,97,0,0,128,56,1,0,0,0,0,0,40,35,0,0,224,46,0,0,164,56,0,0,68,72,0,0,180,95,0,0,172,138,0,0,128,56,1,0,0,0,0,0,4,41,0,0,176,54,0,0,104,66,0,0,252,83,0,0,84,111,0,0,16,164,0,0,128,56,1,0,222,116,0,0,225,116,0,0,10,103,242,14,86,205,228,29,10,103,242,14,117,82,130,12,89,154,4,25,117,82,130,12,70,17,49,10,237,3,98,20,70,17,49,10,218,2,215,7,249,198,173,15,218,2,215,7,34,182,82,5,218,250,164,10,34,182,82,5,70,243,46,30,43,227,75,14,31,102,128,24,28,44,29,10,218,97,72,18,237,156,244,6,236,48,19,11,227,144,165,4,237,164,29,2,10,223,107,3,1,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,6,0,0,0,1,0,0,0,5,0,0,0,2,0,0,0,15,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,12,0,0,0,3,0,0,0,11,0,0,0,4,0,0,0,14,0,0,0,1,0,0,0,9,0,0,0,6,0,0,0,13,0,0,0,2,0,0,0,10,0,0,0,5,0,0,0,144,69,0,0,80,72,0,0,12,75,0,0,196,77,0,0,120,80,0,0,40,83,0,0,212,85,0,0,60,87,0,0,248,87,0,0,108,88,0,0,184,88,0,0,240,88,0,0,16,89,0,0,40,89,0,0,52,89,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,3,0,0,0,5,0,0,0,7,0,0,0,9,0,0,0,11,0,0,0,13,0,0,0,15,0,0,0,17,0,0,0,19,0,0,0,21,0,0,0,23,0,0,0,25,0,0,0,27,0,0,0,29,0,0,0,31,0,0,0,33,0,0,0,35,0,0,0,37,0,0,0,39,0,0,0,41,0,0,0,43,0,0,0,45,0,0,0,47,0,0,0,49,0,0,0,51,0,0,0,53,0,0,0,55,0,0,0,57,0,0,0,59,0,0,0,61,0,0,0,63,0,0,0,65,0,0,0,67,0,0,0,69,0,0,0,71,0,0,0,73,0,0,0,75,0,0,0,77,0,0,0,79,0,0,0,81,0,0,0,83,0,0,0,85,0,0,0,87,0,0,0,89,0,0,0,91,0,0,0,93,0,0,0,95,0,0,0,97,0,0,0,99,0,0,0,101,0,0,0,103,0,0,0,105,0,0,0,107,0,0,0,109,0,0,0,111,0,0,0,113,0,0,0,115,0,0,0,117,0,0,0,119,0,0,0,121,0,0,0,123,0,0,0,125,0,0,0,127,0,0,0,129,0,0,0,131,0,0,0,133,0,0,0,135,0,0,0,137,0,0,0,139,0,0,0,141,0,0,0,143,0,0,0,145,0,0,0,147,0,0,0,149,0,0,0,151,0,0,0,153,0,0,0,155,0,0,0,157,0,0,0,159,0,0,0,161,0,0,0,163,0,0,0,165,0,0,0,167,0,0,0,169,0,0,0,171,0,0,0,173,0,0,0,175,0,0,0,177,0,0,0,179,0,0,0,181,0,0,0,183,0,0,0,185,0,0,0,187,0,0,0,189,0,0,0,191,0,0,0,193,0,0,0,195,0,0,0,197,0,0,0,199,0,0,0,201,0,0,0,203,0,0,0,205,0,0,0,207,0,0,0,209,0,0,0,211,0,0,0,213,0,0,0,215,0,0,0,217,0,0,0,219,0,0,0,221,0,0,0,223,0,0,0,225,0,0,0,227,0,0,0,229,0,0,0,231,0,0,0,233,0,0,0,235,0,0,0,237,0,0,0,239,0,0,0,241,0,0,0,243,0,0,0,245,0,0,0,247,0,0,0,249,0,0,0,251,0,0,0,253,0,0,0,255,0,0,0,1,1,0,0,3,1,0,0,5,1,0,0,7,1,0,0,9,1,0,0,11,1,0,0,13,1,0,0,15,1,0,0,17,1,0,0,19,1,0,0,21,1,0,0,23,1,0,0,25,1,0,0,27,1,0,0,29,1,0,0,31,1,0,0,33,1,0,0,35,1,0,0,37,1,0,0,39,1,0,0,41,1,0,0,43,1,0,0,45,1,0,0,47,1,0,0,49,1,0,0,51,1,0,0,53,1,0,0,55,1,0,0,57,1,0,0,59,1,0,0,61,1,0,0,63,1,0,0,65,1,0,0,67,1,0,0,69,1,0,0,71,1,0,0,73,1,0,0,75,1,0,0,77,1,0,0,79,1,0,0,81,1,0,0,83,1,0,0,85,1,0,0,87,1,0,0,89,1,0,0,91,1,0,0,93,1,0,0,95,1,0,0,13,0,0,0,25,0,0,0,41,0,0,0,61,0,0,0,85,0,0,0,113,0,0,0,145,0,0,0,181,0,0,0,221,0,0,0,9,1,0,0,57,1,0,0,109,1,0,0,165,1,0,0,225,1,0,0,33,2,0,0,101,2,0,0,173,2,0,0,249,2,0,0,73,3,0,0,157,3,0,0,245,3,0,0,81,4,0,0,177,4,0,0,21,5,0,0,125,5,0,0,233,5,0,0,89,6,0,0,205,6,0,0,69,7,0,0,193,7,0,0,65,8,0,0,197,8,0,0,77,9,0,0,217,9,0,0,105,10,0,0,253,10,0,0,149,11,0,0,49,12,0,0,209,12,0,0,117,13,0,0,29,14,0,0,201,14,0,0,121,15,0,0,45,16,0,0,229,16,0,0,161,17,0,0,97,18,0,0,37,19,0,0,237,19,0,0,185,20,0,0,137,21,0,0,93,22,0,0,53,23,0,0,17,24,0,0,241,24,0,0,213,25,0,0,189,26,0,0,169,27,0,0,153,28,0,0,141,29,0,0,133,30,0,0,129,31,0,0,129,32,0,0,133,33,0,0,141,34,0,0,153,35,0,0,169,36,0,0,189,37,0,0,213,38,0,0,241,39,0,0,17,41,0,0,53,42,0,0,93,43,0,0,137,44,0,0,185,45,0,0,237,46,0,0,37,48,0,0,97,49,0,0,161,50,0,0,229,51,0,0,45,53,0,0,121,54,0,0,201,55,0,0,29,57,0,0,117,58,0,0,209,59,0,0,49,61,0,0,149,62,0,0,253,63,0,0,105,65,0,0,217,66,0,0,77,68,0,0,197,69,0,0,65,71,0,0,193,72,0,0,69,74,0,0,205,75,0,0,89,77,0,0,233,78,0,0,125,80,0,0,21,82,0,0,177,83,0,0,81,85,0,0,245,86,0,0,157,88,0,0,73,90,0,0,249,91,0,0,173,93,0,0,101,95,0,0,33,97,0,0,225,98,0,0,165,100,0,0,109,102,0,0,57,104,0,0,9,106,0,0,221,107,0,0,181,109,0,0,145,111,0,0,113,113,0,0,85,115,0,0,61,117,0,0,41,119,0,0,25,121,0,0,13,123,0,0,5,125,0,0,1,127,0,0,1,129,0,0,5,131,0,0,13,133,0,0,25,135,0,0,41,137,0,0,61,139,0,0,85,141,0,0,113,143,0,0,145,145,0,0,181,147,0,0,221,149,0,0,9,152,0,0,57,154,0,0,109,156,0,0,165,158,0,0,225,160],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+10240);allocate([33,163,0,0,101,165,0,0,173,167,0,0,249,169,0,0,73,172,0,0,157,174,0,0,245,176,0,0,81,179,0,0,177,181,0,0,21,184,0,0,125,186,0,0,233,188,0,0,89,191,0,0,205,193,0,0,69,196,0,0,193,198,0,0,65,201,0,0,197,203,0,0,77,206,0,0,217,208,0,0,105,211,0,0,253,213,0,0,149,216,0,0,49,219,0,0,209,221,0,0,117,224,0,0,29,227,0,0,201,229,0,0,121,232,0,0,45,235,0,0,229,237,0,0,161,240,0,0,63,0,0,0,129,0,0,0,231,0,0,0,121,1,0,0,63,2,0,0,65,3,0,0,135,4,0,0,25,6,0,0,255,7,0,0,65,10,0,0,231,12,0,0,249,15,0,0,127,19,0,0,129,23,0,0,7,28,0,0,25,33,0,0,191,38,0,0,1,45,0,0,231,51,0,0,121,59,0,0,191,67,0,0,193,76,0,0,135,86,0,0,25,97,0,0,127,108,0,0,193,120,0,0,231,133,0,0,249,147,0,0,255,162,0,0,1,179,0,0,7,196,0,0,25,214,0,0,63,233,0,0,129,253,0,0,231,18,1,0,121,41,1,0,63,65,1,0,65,90,1,0,135,116,1,0,25,144,1,0,255,172,1,0,65,203,1,0,231,234,1,0,249,11,2,0,127,46,2,0,129,82,2,0,7,120,2,0,25,159,2,0,191,199,2,0,1,242,2,0,231,29,3,0,121,75,3,0,191,122,3,0,193,171,3,0,135,222,3,0,25,19,4,0,127,73,4,0,193,129,4,0,231,187,4,0,249,247,4,0,255,53,5,0,1,118,5,0,7,184,5,0,25,252,5,0,63,66,6,0,129,138,6,0,231,212,6,0,121,33,7,0,63,112,7,0,65,193,7,0,135,20,8,0,25,106,8,0,255,193,8,0,65,28,9,0,231,120,9,0,249,215,9,0,127,57,10,0,129,157,10,0,7,4,11,0,25,109,11,0,191,216,11,0,1,71,12,0,231,183,12,0,121,43,13,0,191,161,13,0,193,26,14,0,135,150,14,0,25,21,15,0,127,150,15,0,193,26,16,0,231,161,16,0,249,43,17,0,255,184,17,0,1,73,18,0,7,220,18,0,25,114,19,0,63,11,20,0,129,167,20,0,231,70,21,0,121,233,21,0,63,143,22,0,65,56,23,0,135,228,23,0,25,148,24,0,255,70,25,0,65,253,25,0,231,182,26,0,249,115,27,0,127,52,28,0,129,248,28,0,7,192,29,0,25,139,30,0,191,89,31,0,1,44,32,0,231,1,33,0,121,219,33,0,191,184,34,0,193,153,35,0,135,126,36,0,25,103,37,0,127,83,38,0,193,67,39,0,231,55,40,0,249,47,41,0,255,43,42,0,1,44,43,0,7,48,44,0,25,56,45,0,63,68,46,0,129,84,47,0,231,104,48,0,121,129,49,0,63,158,50,0,65,191,51,0,135,228,52,0,25,14,54,0,255,59,55,0,65,110,56,0,231,164,57,0,249,223,58,0,127,31,60,0,129,99,61,0,7,172,62,0,25,249,63,0,191,74,65,0,1,161,66,0,231,251,67,0,121,91,69,0,191,191,70,0,193,40,72,0,135,150,73,0,25,9,75,0,127,128,76,0,193,252,77,0,231,125,79,0,249,3,81,0,255,142,82,0,1,31,84,0,7,180,85,0,25,78,87,0,63,237,88,0,129,145,90,0,231,58,92,0,121,233,93,0,63,157,95,0,65,86,97,0,135,20,99,0,25,216,100,0,255,160,102,0,65,111,104,0,231,66,106,0,249,27,108,0,127,250,109,0,65,1,0,0,169,2,0,0,9,5,0,0,193,8,0,0,65,14,0,0,9,22,0,0,169,32,0,0,193,46,0,0,1,65,0,0,41,88,0,0,9,117,0,0,129,152,0,0,129,195,0,0,9,247,0,0,41,52,1,0,1,124,1,0,193,207,1,0,169,48,2,0,9,160,2,0,65,31,3,0,193,175,3,0,9,83,4,0,169,10,5,0,65,216,5,0,129,189,6,0,41,188,7,0,9,214,8,0,1,13,10,0,1,99,11,0,9,218,12,0,41,116,14,0,129,51,16,0,65,26,18,0,169,42,20,0,9,103,22,0,193,209,24,0,65,109,27,0,9,60,30,0,169,64,33,0,193,125,36,0,1,246,39,0,41,172,43,0,9,163,47,0,129,221,51,0,129,94,56,0,9,41,61,0,41,64,66,0,1,167,71,0,193,96,77,0,169,112,83,0,9,218,89,0,65,160,96,0,193,198,103,0,9,81,111,0,169,66,119,0,65,159,127,0,129,106,136,0,41,168,145,0,9,92,155,0,1,138,165,0,1,54,176,0,9,100,187,0,41,24,199,0,129,86,211,0,65,35,224,0,169,130,237,0,9,121,251,0,193,10,10,1,65,60,25,1,9,18,41,1,169,144,57,1,193,188,74,1,1,155,92,1,41,48,111,1,9,129,130,1,129,146,150,1,129,105,171,1,9,11,193,1,41,124,215,1,1,194,238,1,193,225,6,2,169,224,31,2,9,196,57,2,65,145,84,2,193,77,112,2,9,255,140,2,169,170,170,2,65,86,201,2,129,7,233,2,41,196,9,3,9,146,43,3,1,119,78,3,1,121,114,3,9,158,151,3,41,236,189,3,129,105,229,3,65,28,14,4,169,10,56,4,9,59,99,4,193,179,143,4,65,123,189,4,9,152,236,4,169,16,29,5,193,235,78,5,1,48,130,5,41,228,182,5,9,15,237,5,129,183,36,6,129,228,93,6,9,157,152,6,41,232,212,6,1,205,18,7,193,82,82,7,169,128,147,7,9,94,214,7,65,242,26,8,193,68,97,8,9,93,169,8,169,66,243,8,65,253,62,9,129,148,140,9,41,16,220,9,9,120,45,10,1,212,128,10,1,44,214,10,9,136,45,11,41,240,134,11,129,108,226,11,65,5,64,12,169,194,159,12,9,173,1,13,193,204,101,13,65,42,204,13,9,206,52,14,169,192,159,14,193,10,13,15,1,181,124,15,41,200,238,15,9,77,99,16,129,76,218,16,129,207,83,17,9,223,207,17,41,132,78,18,1,200,207,18,193,179,83,19,169,80,218,19,9,168,99,20,65,195,239,20,193,171,126,21,9,107,16,22,169,10,165,22,65,148,60,23,129,17,215,23,41,140,116,24,9,14,21,25,1,161,184,25,1,79,95,26,9,34,9,27,41,36,182,27,129,95,102,28,65,222,25,29,169,170,208,29,9,207,138,30,193,85,72,31,65,73,9,32,9,180,205,32,169,160,149,33,193,25,97,34,1,42,48,35,41,220,2,36,9,59,217,36,129,81,179,37,147,6,0,0,69,14,0,0,15,28,0,0,17,51,0,0,91,87,0,0,13,142,0,0,119,221,0,0,57,77,1,0,99,230,1,0,149,179,2,0,31,193,3,0,33,29,5,0,171,215,6,0,221,2,9,0,7,179,11,0,201,254,14,0,51,255,18,0,229,207,23,0,47,143,29,0,49,94,36,0,251,96,44,0,173,190,53,0,151,161,64,0,89,55,77,0,3,177,91,0,53,67,108,0,63,38,127,0,65,150,148,0,75,211,172,0,125,33,200,0,39,201,230,0,233,22,9,1,211,91,47,1,133,237,89,1,79,38,137,1,81,101,189,1,155,14,247,1,77,139,54,2,183,73,124,2,121,189,200,2,163,95,28,3,213,174,119,3,95,47,219,3,97,107,71,4,235,242,188,4,29,92,60,5,71,67,198,5,9,75,91,6,115,28,252,6,37,103,169,7,111,225,99,8,113,72,44,9,59,96,3,10,237,243,233,10,215,213,224,11,153,223,232,12,67,242,2,14,117,246,47,15,127,220,112,16,129,156,198,17,139,54,50,19,189,178,180,20,103,33,79,22,41,155,2,24,19,65,208,25,197,60,185,27,143,192,190,29,145,7,226,31,219,85,36,34,141,248,134,36,247,69,11,39,185,157,178,41,227,104,126,44,21,26,112,47,159,45,137,50,161,41,203,53,43,158,55,57,93,37,208,60,135,99,150,64,73,7,140,68,179,201,178,72,101,110,12,77,175,195,154,81,177,162,95,86,123,239,92,91,45,153,148,96,23,154,8,102,217,247,186,107,131,195,173,113,181,25,227,119,191,34,93,126,29,35,0,0,113,77,0,0,145,156,0,0,253,38,1,0,101,12,2,0,233,119,3,0,153,162,5,0,53,214,8,0,45,112,13,0,225,228,19,0,33,195,28,0,237,183,40,0,117,146,56,0,89,72,77,0,41,250,103,0,37,248,137,0,61,199,180,0,81,38,234,0,177,19,44,1,221,210,124,1,133,242,222,1,201,82,85,2,185,43,227,2,21,20,140,3,77,8,84,4,193,113,63,5,65,46,83,6,205,151,148,7,149,140,9,9,57,119,184,10,73,87,168,12,5,202,224,14,93,19,106,17,49,39,77,20,209,178,147,23,189,38,72,27,165,192,117,31,169,149,40,36,217,156,109,41,245,185,82,47,109,200,230,53,161,166,57,61,97,65,92,69,173,159,96,78,181,238,89,88,25,142,92,99,105,28,126,111,229,131,213,124,255,189,0,0,1,168,1,0,143,107,3,0,241,158,6,0,63,35,12,0,193,61,21,0,143,182,35,0,241,252,57,0,255,81,91,0,1,250,139,0,15,117,209,0,113,191,50,1,63,154,184,1,193,220,109,2,15,207,95,3,113,142,158,4,255,123,61,6,1,182,83,8,143,156,252,10,241,97,88,14,63,167,140,18,193,37,197,23,143,101,52,30,241,129,20,38,255,251,167,47,1,156,58,59,15,98,34,73,113,134,192,89,63,138,130,109,193,88,227,132,1,14,4,0,145,33,9,0,17,44,19,0,65,238,37,0,65,79,71,0,145,67,128,0,17,247,221,0,1,70,115,1,1,146,90,2,17,1,184,3,145,53,188,5,65,143,167,8,65,6,206,12,17,178,155,18,145,15,154,26,1,26,118,37,1,76,7,52,145,158,87,71,17,157,172,96,65,166,145,129,35,81,22,0,197,158,50,0,23,185,107,0,153,246,216,0,107,137,160,1,13,196,254,2,31,1,80,5,33,217,29,9,51,108,48,15,213,162,164,24,167,103,8,39,41,253,125,60,123,181,231,91,29,119,29,137,175,160,45,201,173,142,123,0,137,230,25,1,57,150,94,2,61,22,216,4,181,99,119,9,225,40,198,17,33,3,52,32,117,72,130,56,125,87,87,96,191,91,175,2,129,216,39,6,247,132,94,13,233,254,173,27,127,139,235,54,129,183,229,104,23,3,156,193,193,12,255,14,57,106,133,34,25,238,145,75,129,120,43,158,51,225,9,84,32,0,10,0,20,46,100,1,221,121,0,0,188,100,0,0,29,123,0,0,93,123,0,0,111,123,0,0,15,124,0,0,87,124,0,0,60,103,0,0,32,0,16,0,102,38,171,1,159,124,0,0,82,103,0,0,159,126,0,0,223,126,0,0,253,126,0,0,253,127,0,0,69,128,0,0,82,107,0,0,48,117,0,0,112,23,0,0,32,209,255,255,32,209,255,255,0,64,0,0,108,34,0,0,66,15,0,0,18,6,0,0,77,2,0,0,219,0,0,0,237,0,0,0,153,0,0,0,73,0,0,0,30,0,0,0,12,0,0,0,7,0,0,0,0,64,0,0,147,93,0,0,189,112,0,0,237,121,0,0,178,125,0,0,36,127,0,0,0,0,0,0,240,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,5,0,0,0,3,0,0,0,4,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,40,1,0,0,6,0,0,0,7,0,0,0,1,0,0,0,0,0,0,0,88,1,0,0,1,0,0,0,8,0,0,0,3,0,0,0,4,0,0,0,2,0,0,0,0,0,0,0,72,1,0,0,1,0,0,0,9,0,0,0,3,0,0,0,4,0,0,0,3,0,0,0,0,0,0,0,216,1,0,0,1,0,0,0,10,0,0,0,3,0,0,0,4,0,0,0,1,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,0,0,1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,10,0,12,0,14,0,16,0,20,0,24,0,28,0,34,0,40,0,48,0,60,0,78,0,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,8,0,8,0,8,0,16,0,16,0,16,0,21,0,21,0,24,0,29,0,34,0,36,0,0,0,96,0,192,0,32,1,128,1,32,0,128,0,224,0,64,1,160,1,64,0,160,0,0,1,96,1,192,1,8,0,104,0,200,0,40,1,136,1,40,0,136,0,232,0,72,1,168,1,72,0,168,0,8,1,104,1,200,1,16,0,112,0,208,0,48,1,144,1,48,0,144,0,240,0,80,1,176,1,80,0,176,0,16,1,112,1,208,1,24,0,120,0,216,0,56,1,152,1,56,0,152,0,248,0,88,1,184,1,88,0,184,0,24,1,120,1,216,1,4,0,100,0,196,0,36,1,132,1,36,0,132,0,228,0,68,1,164,1,68,0,164,0,4,1,100,1,196,1,12,0,108,0,204,0,44,1,140,1,44,0,140,0,236,0,76,1,172,1,76,0,172,0,12,1,108,1,204,1,20,0,116,0,212,0,52,1,148,1,52,0,148,0,244,0,84,1,180,1,84,0,180,0,20,1,116,1,212,1,28,0,124,0,220,0,60,1,156,1,60,0,156,0,252,0,92,1,188,1,92,0,188,0,28,1,124,1,220,1,1,0,97,0,193,0,33,1,129,1,33,0,129,0,225,0,65,1,161,1,65,0,161,0,1,1,97,1,193,1,9,0,105,0,201,0,41,1,137,1,41,0,137,0,233,0,73,1,169,1,73,0,169,0,9,1,105,1,201,1,17,0,113,0,209,0,49,1,145,1,49,0,145,0,241,0,81,1,177,1,81,0,177,0,17,1,113,1,209,1,25,0,121,0,217,0,57,1,153,1,57,0,153,0,249,0,89,1,185,1,89,0,185,0,25,1,121,1,217,1,5,0,101,0,197,0,37,1,133,1,37,0,133,0,229,0,69,1,165,1,69,0,165,0,5,1,101,1,197,1,13,0,109,0,205,0,45,1,141,1,45,0,141,0,237,0,77,1,173,1,77,0,173,0,13,1,109,1,205,1,21,0,117,0,213,0,53,1,149,1,53,0,149,0,245,0,85,1,181,1,85,0,181,0,21,1,117,1,213,1,29,0,125,0,221,0,61,1,157,1,61,0,157,0,253,0,93,1,189,1,93,0,189,0,29,1,125,1,221,1,2,0,98,0,194,0,34,1,130,1,34,0,130,0,226,0,66,1,162,1,66,0,162,0,2,1,98,1,194,1,10,0,106,0,202,0,42,1,138,1,42,0,138,0,234,0,74,1,170,1,74,0,170,0,10,1,106,1,202,1,18,0,114,0,210,0,50,1,146,1,50,0,146,0,242,0,82,1,178,1,82,0,178,0,18,1,114,1,210,1,26,0,122,0,218,0,58,1,154,1,58,0,154,0,250,0,90,1,186,1,90,0,186,0,26,1,122,1,218,1,6,0,102,0,198,0,38,1,134,1,38,0,134,0,230,0,70,1,166,1,70,0,166,0,6,1,102,1,198,1,14,0,110,0,206,0,46,1,142,1,46,0,142,0,238,0,78,1,174,1,78,0,174,0,14,1,110,1,206,1,22,0,118,0,214,0,54,1,150,1,54,0,150,0,246,0,86,1,182,1,86,0,182,0,22,1,118,1,214,1,30,0,126,0,222,0,62,1,158,1,62,0,158,0,254,0,94,1,190,1,94,0,190,0,30,1,126,1,222,1,3,0,99,0,195,0,35,1,131,1,35,0,131,0,227,0,67,1,163,1,67,0,163,0,3,1,99,1,195,1,11,0,107,0,203,0,43,1,139,1,43,0,139,0,235,0,75,1,171,1,75,0,171,0,11,1,107,1,203,1,19,0,115,0,211,0,51,1,147,1,51,0,147,0,243,0,83,1,179,1,83,0,179,0,19,1,115,1,211,1,27,0,123,0,219,0,59,1,155,1,59,0,155,0,251,0,91,1,187,1,91,0,187,0,27,1,123,1,219,1,7,0,103,0,199,0,39,1,135,1,39,0,135,0,231,0,71,1,167,1,71,0,167,0,7,1,103,1,199,1,15,0,111,0,207,0,47,1,143,1,47,0,143,0,239,0,79,1,175,1,79,0,175,0,15,1,111,1,207,1,23,0,119,0,215,0,55,1,151,1,55,0,151,0,247,0,87,1,183,1,87,0,183,0,23,1,119,1,215,1,31,0,127,0,223,0,63,1,159,1,63,0,159,0,255,0,95,1,191,1,95,0,191,0,31,1,127,1,223,1,0,0,48,0,96,0,144,0,192,0,16,0,64,0,112,0,160,0,208,0,32,0,80,0,128,0,176,0,224,0,4,0,52,0,100,0,148,0,196,0,20,0,68,0,116,0,164,0,212,0,36,0,84,0,132,0,180,0,228,0,8,0,56,0,104,0,152,0,200,0,24,0,72,0,120,0,168,0,216,0,40,0,88,0,136,0,184,0,232,0,12,0,60,0,108,0,156,0,204,0,28,0,76,0,124,0,172,0,220,0,44,0,92,0,140,0,188,0,236,0,1,0,49,0,97,0,145,0,193,0,17,0,65,0,113,0,161,0,209,0,33,0,81,0,129,0,177,0,225,0,5,0,53,0,101,0,149,0,197,0,21,0,69,0,117,0,165,0,213,0,37,0,85,0,133,0,181,0,229,0,9,0,57,0,105,0,153,0,201,0,25,0,73,0,121,0,169,0,217,0,41,0,89,0,137,0,185,0,233,0,13,0,61,0,109,0,157,0,205,0,29,0,77,0,125,0,173,0,221,0,45,0,93,0,141,0,189,0,237,0,2,0,50,0,98,0,146,0,194,0,18,0,66,0,114,0,162,0,210,0,34,0,82,0,130,0,178,0,226,0,6,0,54,0,102,0,150,0,198,0,22,0,70,0,118,0,166,0,214,0,38,0,86,0,134,0,182,0,230,0,10,0,58,0,106,0,154,0,202,0,26,0,74,0,122,0,170,0,218,0,42,0,90,0,138,0,186,0,234,0,14,0,62,0,110,0,158,0,206,0,30,0,78,0,126,0,174,0,222,0,46,0,94,0,142,0,190,0,238,0,3,0,51,0,99,0,147,0,195,0,19,0,67,0,115,0,163,0,211,0,35,0,83,0,131,0,179,0,227,0,7,0,55,0,103,0,151,0,199,0,23,0,71,0,119,0,167,0,215,0,39,0,87,0,135,0,183,0,231,0,11,0,59,0,107,0,155,0,203,0,27,0,75,0,123,0,171,0,219,0,43,0,91,0,139,0,187,0,235,0,15,0,63,0,111,0,159,0,207,0,31,0,79,0,127,0,175,0,223,0,47,0,95,0,143,0,191,0,239,0,0,0,24,0,48,0,72,0,96,0,8,0,32,0,56,0,80,0,104,0,16,0,40,0,64,0,88,0,112,0,4,0,28,0,52,0,76,0,100,0,12,0,36,0,60,0,84,0,108,0,20,0,44,0,68,0,92,0,116,0,1,0,25,0,49,0,73,0,97,0,9,0,33,0,57,0,81,0,105,0,17,0,41,0,65,0,89,0,113,0,5,0,29,0,53,0,77,0,101,0,13,0,37,0,61,0,85,0,109,0,21,0,45,0,69,0,93,0,117,0,2,0,26,0,50,0,74,0,98,0,10,0,34,0,58,0,82,0,106,0,18,0,42,0,66,0,90,0,114,0,6,0,30,0,54,0,78,0,102,0,14,0,38,0,62,0,86,0,110,0,22,0,46,0,70,0,94,0,118,0,3,0,27,0,51,0,75,0,99,0,11,0,35,0,59,0,83,0,107,0,19,0,43,0,67,0,91,0,115,0,7,0,31,0,55,0,79,0,103,0,15,0,39,0,63,0,87,0,111,0,23,0,47,0,71,0,95,0,119,0,0,0,12,0,24,0,36,0,48,0,4,0,16,0,28,0,40,0,52,0,8,0,20,0,32,0,44,0,56,0,1,0,13,0,25,0,37,0,49,0,5,0,17,0,29,0,41,0,53,0,9,0,21,0,33,0,45,0,57,0,2,0,14,0,26,0,38,0,50,0,6,0,18,0,30,0,42,0,54,0,10,0,22,0,34,0,46,0,58,0,3,0,15,0,27,0,39,0,51,0,7,0,19,0,31,0,43,0,55,0,11,0,23,0,35,0,47,0,59,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,41,0,41,0,41,0,82,0,82,0,123,0,164,0,200,0,222,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,0,41,0,41,0,41,0,123,0,123,0,123,0,164,0,164,0,240,0,10,1,27,1,39,1,41,0,41,0,41,0,41,0,41,0,41,0,41,0,41,0,123,0,123,0,123,0,123,0,240,0,240,0,240,0,10,1,10,1,49,1,62,1,72,1,80,1,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,240,0,240,0,240,0,240,0,49,1,49,1,49,1,62,1,62,1,87,1,95,1,102,1,108,1,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,49,1,49,1,49,1,49,1,87,1,87,1,87,1,95,1,95,1,114,1,120,1,126,1,131,1,18,0,29,0,38,0,40,0,46,0,52,0,62,0,84,0,92,202,190,216,182,223,154,226,156,230,120,236,122,244,204,252,52,3,134,11,136,19,100,25,102,29,74,32,66,39,164,53,100,0,240,0,32,0,100,0,205,60,0,48,0,32,42,175,213,201,207,255,64,0,17,0,99,255,97,1,16,254,163,0,39,43,189,86,217,255,6,0,91,0,86,255,186,0,23,0,128,252,192,24,216,77,237,255,220,255,102,0,167,255,232,255,72,1,73,252,8,10,37,62,135,199,61,201,64,0,128,0,134,255,36,0,54,1,0,253,72,2,51,36,69,69,12,0,128,0,18,0,114,255,32,1,139,255,159,252,27,16,123,56,104,2,13,200,246,255,39,0,58,0,210,255,172,255,120,0,184,0,197,254,227,253,4,5,4,21,64,35,230,62,198,196,243,255,0,0,20,0,26,0,5,0,225,255,213,255,252,255,65,0,90,0,7,0,99,255,8,255,212,255,81,2,47,6,52,10,199,12,228,87,5,197,3,0,242,255,236,255,241,255,2,0,25,0,37,0,25,0,240,255,185,255,149,255,177,255,50,0,36,1,111,2,214,3,8,5,184,5,148,107,103,196,17,0,12,0,8,0,1,0,246,255,234,255,226,255,224,255,234,255,3,0,44,0,100,0,168,0,243,0,61,1,125,1,173,1,199,1,189,0,168,253,105,2,103,119,117,0,97,255,210,251,8,116,52,0,221,0,168,246,116,110,252,255,17,2,234,242,229,102,208,255,246,2,140,240,165,93,176,255,137,3,117,239,6,83,157,255,204,3,130,239,102,71,149,255,199,3,139,240,39,59,153,255,128,3,97,242,174,46,165,255,5,3,207,244,94,34,185,255,99,2,161,247,152,22,210,255,169,1,161,250,180,11,0,64,202,69,27,76,255,82,130,90,179,98,162,107,96,117,184,126,154,121,154,121,102,102,184,126,51,115,81,11,10,9,10,9,10,9,239,8,239,8,10,9,252,8,23,9,239,8,72,11,20,10,90,9,63,9,10,9,226,8,226,8,226,8,226,8,146,8,183,9,36,9,36,9,10,9,10,9,10,9,36,9,36,9,63,9,50,9,144,12,206,10,36,9,36,9,10,9,226,8,173,8,159,8,213,8,146,8,156,9,170,9,63,9,90,9,90,9,90,9,90,9,63,9,103,9,10,9,151,13,240,11,79,8,159,8,226,8,226,8,226,8,239,8,10,9,213,8,210,12,69,12,20,10,90,9,199,8,173,8,159,8,146,8,146,8,66,8,0,16,5,15,173,8,60,10,60,10,103,9,10,9,90,9,63,9,26,8,106,12,172,12,63,9,173,8,249,9,130,9,36,9,10,9,119,8,173,8,10,13,160,13,166,10,146,8,213,8,156,9,50,9,63,9,159,8,53,8,50,9,116,9,23,9,63,9,90,9,116,9,116,9,116,9,156,9,63,9,195,14,45,14,130,9,223,9,63,9,226,8,226,8,252,8,159,8,0,8,182,12,153,12,153,10,30,11,143,9,23,9,252,8,252,8,226,8,79,8,191,12,228,12,193,10,246,10,143,9,213,8,213,8,199,8,79,8,53,8,57,11,165,11,73,10,63,9,103,9,50,9,146,8,199,8,199,8,66,8,153,12,125,12,73,10,20,10,226,8,133,8,199,8,173,8,173,8,93,8,106,12,238,12,180,10,103,9,226,8,226,8,226,8,239,8,146,8,66,8,69,12,200,12,156,9,13,8,239,8,196,9,63,9,183,9,130,9,133,8,179,13,210,12,10,9,140,10,87,10,170,9,63,9,90,9,36,9,79,8,95,13,207,13,222,11,240,11,252,8,158,7,173,8,226,8,226,8,226,8,76,13,38,13,39,8,127,10,57,11,50,9,116,9,226,8,170,9,236,9,176,14,160,13,158,7,100,10,81,11,223,9,90,9,63,9,156,9,213,8,212,11,200,12,180,10,72,11,180,10,106,8,79,8,239,8,186,8,199,8,111,14,73,14,233,7,177,7,100,10,140,10,20,10,196,9,23,9,63,9,135,12,85,13,50,9,26,8,72,11,72,11,36,9,183,9,199,8,119,8,10,13,38,13,30,11,220,10,23,9,106,8,226,8,239,8,66,8,13,8,23,9,252,8,133,8,119,8,133,8,63,9,73,10,140,10,140,10,249,9,103,9,130,9,173,8,213,8,173,8,173,8,36,9,116,9,47,10,140,10,222,11,172,12,246,10,72,11,170,9,26,8,252,8,10,9,50,9,76,9,173,8,106,8,79,8,239,8,196,9,233,10,233,10,60,10,20,10,63,9,92,14,129,14,186,8,46,7,133,8,193,10,166,10,113,10,209,9,159,8,233,10,88,12,166,10,249,9,30,11,209,9,133,8,90,9,173,8,133,8,250,0,3,0,6,0,3,0,3,0,3,0,4,0,3,0,3,0,3,0,205,1,73,14,109,11,109,11,109,11,109,11,109,11,109,11,109,11,109,11,109,11,109,11,109,11,147,11,147,11,109,11,30,11,144,12,13,12,156,11,240,11,240,11,194,11,194,11,194,11,147,11,147,11,194,11,156,11,72,11,30,11,30,11,166,10,80,15,174,15,165,11,135,12,135,12,118,11,240,11,30,11,50,12,172,12,109,11,30,11,60,10,249,9,220,10,109,11,188,13,125,12,194,11,31,12,203,11,72,11,109,11,109,11,109,11,109,11,72,11,72,11,72,11,72,11,72,11,193,10,190,19,190,19,118,11,245,13,57,13,240,11,13,12,233,10,88,12,88,12,156,11,30,11,209,9,236,9,193,10,72,11,76,17,53,16,140,10,193,10,156,11,194,11,109,11,30,11,165,11,203,11,109,11,109,11,109,11,109,11,72,11,166,10,36,14,203,11,156,11,240,11,240,11,57,11,246,10,240,11,144,12,231,11,165,11,219,12,219,12,165,11,238,12,175,11,107,20,150,19,236,9,10,13,198,13,57,13,125,12,22,12,48,13,165,11,140,10,87,10,127,10,233,10,30,11,113,10,217,19,54,20,7,18,76,17,156,9,81,11,231,11,135,12,97,12,127,10,180,10,72,11,30,11,233,10,30,11,140,10,50,12,72,11,147,11,109,11,109,11,109,11,109,11,147,11,147,11,147,11,147,11,109,11,109,11,147,11,147,11,147,11,106,16,135,12,165,11,31,12,194,11,72,11,72,11,109,11,156,11,57,11,100,11,203,11,156,11,194,11,125,12,57,11,176,14,176,14,172,12,31,12,165,11,72,11,109,11,72,11,156,11,118,11,233,10,233,10,30,11,72,11,72,11,100,10,14,15,174,15,135,12,50,12,172,12,118,11,231,11,147,11,147,11,13,12,30,11,233,10,233,10,233,10,233,10,20,10,5,15,240,15,29,13,188,13,22,12,180,10,194,11,118,11,50,12,13,12,30,11,30,11,87,10,87,10,30,11,246,10,27,20,30,19,153,12,5,15,113,13,97,12,81,11,85,13,123,13,140,10,20,10,113,10,180,10,30,11,246,10,193,10,13,16,205,14,219,12,88,12,109,11,72,11,72,11,109,11,233,10,180,10,233,10,180,10,233,10,30,11,72,11,246,10,217,19,190,19,231,11,217,13,172,12,240,11,13,12,128,11,31,12,81,11,180,10,180,10,180,10,30,11,233,10,60,10,213,16,213,16,44,11,223,9,135,12,48,13,48,13,3,12,3,12,48,13,240,11,30,11,87,10,20,10,166,10,193,10,240,11,100,11,246,10,72,11,180,10,127,10,81,11,31,12,78,12,78,12,144,12,97,12,240,11,194,11,147,11,30,11,23,17,42,15,109,11,72,11,30,11,72,11,30,11,30,11,72,11,72,11,72,11,30,11,72,11,109,11,72,11,30,11,165,11,100,11,100,11,165,11,165,11,240,11,50,12,144,12,78,12,240,11,194,11,156,11,156,11,156,11,109,11,180,10,133,16,53,16,238,12,19,13,109,11,147,11,72,11,165,11,165,11,30,11,233,10,180,10,30,11,30,11,30,11,233,10,240,15,174,15,31,12,194,11,109,11,109,11,109,11,72,11,109,11,109,11,30,11,30,11,30,11,233,10,72,11,220,10,7,18,223,17,97,12,113,13,135,12,165,11,81,11,222,11,50,12,180,10,127,10,127,10,127,10,180,10,233,10,140,10,53,16,173,16,205,14,73,14,166,10,220,10,72,11,72,11,194,11,156,11,109,11,30,11,127,10,127,10,233,10,72,11,119,16,226,13,193,10,30,11,30,11,72,11,72,11,72,11,109,11,109,11,72,11,109,11,109,11,109,11,147,11,72,11,54,20,57,19,213,8,104,13,205,14,151,13,19,13,30,11,238,12,151,13,78,12,81,11,156,9,183,9,193,10,109,11,123,13,101,14,50,12,125,12,29,13,231,11,135,12,135,12,165,11,144,12,13,12,109,11,109,11,127,10,236,9,130,9,165,11,194,11,233,10,233,10,180,10,233,10,30,11,156,11,240,11,31,12,78,12,78,12,78,12,31,12,194,11,194,11,128,11,57,11,127,10,166,10,220,10,194,11,104,13,217,13,29,13,172,12,240,11,194,11,147,11,109,11,72,11,30,11,203,11,128,11,81,11,194,11,194,11,156,11,203,11,31,12,240,11,240,11,194,11,72,11,30,11,109,11,109,11,72,11,80,15,127,15,194,11,125,12,29,13,144,12,219,12,219,12,151,13,120,14,113,13,166,10,133,8,156,9,20,10,47,10,100,0,3,0,40,0,3,0,3,0,3,0,5,0,14,0,14,0,10,0,11,0,3,0,8,0,9,0,7,0,3,0,91,1,0,32,254,31,246,31,234,31,216,31,194,31,168,31,136,31,98,31,58,31,10,31,216,30,160,30,98,30,34,30,220,29,144,29,66,29,238,28,150,28,58,28,216,27,114,27,10,27,156,26,42,26,180,25,58,25,188,24,60,24,182,23,46,23,160,22,16,22,126,21,232,20,78,20,176,19,16,19,110,18,200,17,30,17,116,16,198,15,22,15,100,14,174,13,248,12,64,12,132,11,200,10,10,10,74,9,138,8,198,7,2,7,62,6,120,5,178,4,234,3,34,3,90,2,146,1,202,0,0,0,54,255,110,254,166,253,222,252,22,252,78,251,136,250,194,249,254,248,58,248,118,247,182,246,246,245,56,245,124,244,192,243,8,243,82,242,156,241,234,240,58,240,140,239,226,238,56,238,146,237,240,236,80,236,178,235,24,235,130,234,240,233,96,233,210,232,74,232,196,231,68,231,198,230,76,230,214,229,100,229,246,228,142,228,40,228,198,227,106,227,18,227,190,226,112,226,36,226,222,225,158,225,96,225,40,225,246,224,198,224,158,224,120,224,88,224,62,224,40,224,22,224,10,224,2,224,0,224,79,112,117,115,83,99,114,105,112,116,72,97,110,100,108,101,114,0,95,101,110,99,111,100,101,0,95,100,101,99,111,100,101,0,49,55,79,112,117,115,83,99,114,105,112,116,72,97,110,100,108,101,114,0,80,49,55,79,112,117,115,83,99,114,105,112,116,72,97,110,100,108,101,114,0,80,75,49,55,79,112,117,115,83,99,114,105,112,116,72,97,110,100,108,101,114,0,105,105,0,118,0,118,105,0,105,105,105,105,105,0,105,105,105,105,105,105,105,0,105,105,105,105,105,105,0,0,255,0,255,0,255,0,255,0,255,0,254,1,0,1,255,0,254,0,253,2,0,1,255,0,254,0,253,3,0,1,255,117,110,107,110,111,119,110,32,101,114,114,111,114,0,115,117,99,99,101,115,115,0,105,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,98,117,102,102,101,114,32,116,111,111,32,115,109,97,108,108,0,105,110,116,101,114,110,97,108,32,101,114,114,111,114,0,99,111,114,114,117,112,116,101,100,32,115,116,114,101,97,109,0,114,101,113,117,101,115,116,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,105,110,118,97,108,105,100,32,115,116,97,116,101,0,109,101,109,111,114,121,32,97,108,108,111,99,97,116,105,111,110,32,102,97,105,108,101,100,0,255,255,156,110,86,70,59,51,45,40,37,33,31,28,26,25,23,22,21,20,19,18,17,16,16,15,15,14,13,13,12,12,12,12,11,11,11,10,10,10,9,9,9,9,9,9,8,8,8,8,8,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,25,23,2,0,126,124,119,109,87,41,19,9,4,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,90,80,75,69,63,56,49,40,34,29,20,18,10,0,0,0,0,0,0,0,0,110,100,90,84,78,71,65,58,51,45,39,32,26,20,12,0,0,0,0,0,0,118,110,103,93,86,80,75,70,65,59,53,47,40,31,23,15,4,0,0,0,0,126,119,112,104,95,89,83,78,72,66,60,54,47,39,32,25,17,12,1,0,0,134,127,120,114,103,97,91,85,78,72,66,60,54,47,41,35,29,23,16,10,1,144,137,130,124,113,107,101,95,88,82,76,70,64,57,51,45,39,33,26,15,1,152,145,138,132,123,117,111,105,98,92,86,80,74,67,61,55,49,43,36,20,1,162,155,148,142,133,127,121,115,108,102,96,90,84,77,71,65,59,53,46,30,1,172,165,158,152,143,137,131,125,118,112,106,100,94,87,81,75,69,63,56,45,20,200,200,200,200,200,200,200,200,198,193,188,183,178,173,168,163,158,153,148,129,104,40,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,40,15,23,28,31,34,36,38,39,41,42,43,44,45,46,47,47,49,50,51,52,53,54,55,55,57,58,59,60,61,62,63,63,65,66,67,68,69,70,71,71,40,20,33,41,48,53,57,61,64,66,69,71,73,75,76,78,80,82,85,87,89,91,92,94,96,98,101,103,105,107,108,110,112,114,117,119,121,123,124,126,128,40,23,39,51,60,67,73,79,83,87,91,94,97,100,102,105,107,111,115,118,121,124,126,129,131,135,139,142,145,148,150,153,155,159,163,166,169,172,174,177,179,35,28,49,65,78,89,99,107,114,120,126,132,136,141,145,149,153,159,165,171,176,180,185,189,192,199,205,211,216,220,225,229,232,239,245,251,21,33,58,79,97,112,125,137,148,157,166,174,182,189,195,201,207,217,227,235,243,251,17,35,63,86,106,123,139,152,165,177,187,197,206,214,222,230,237,250,25,31,55,75,91,105,117,128,138,146,154,161,168,174,180,185,190,200,208,215,222,229,235,240,245,255,16,36,65,89,110,128,144,159,173,185,196,207,217,226,234,242,250,11,41,74,103,128,151,172,191,209,225,241,255,9,43,79,110,138,163,186,207,227,246,12,39,71,99,123,144,164,182,198,214,228,241,253,9,44,81,113,142,168,192,214,235,255,7,49,90,127,160,191,220,247,6,51,95,134,170,203,234,7,47,87,123,155,184,212,237,6,52,97,137,174,208,240,5,57,106,151,192,231,5,59,111,158,202,243,5,55,103,147,187,224,5,60,113,161,206,248,4,65,122,175,224,4,67,127,182,234,224,224,224,224,224,224,224,224,160,160,160,160,185,185,185,178,178,168,134,61,37,224,224,224,224,224,224,224,224,240,240,240,240,207,207,207,198,198,183,144,66,40,160,160,160,160,160,160,160,160,185,185,185,185,193,193,193,183,183,172,138,64,38,240,240,240,240,240,240,240,240,207,207,207,207,204,204,204,193,193,180,143,66,40,185,185,185,185,185,185,185,185,193,193,193,193,193,193,193,183,183,172,138,65,39,207,207,207,207,207,207,207,207,204,204,204,204,201,201,201,188,188,176,141,66,40,193,193,193,193,193,193,193,193,193,193,193,193,194,194,194,184,184,173,139,65,39,204,204,204,204,204,204,204,204,201,201,201,201,198,198,198,187,187,175,140,66,40,72,127,65,129,66,128,65,128,64,128,62,128,64,128,64,128,92,78,92,79,92,78,90,79,116,41,115,40,114,40,132,26,132,26,145,17,161,12,176,10,177,11,24,179,48,138,54,135,54,132,53,134,56,133,55,132,55,132,61,114,70,96,74,88,75,88,87,74,89,66,91,67,100,59,108,50,120,40,122,37,97,43,78,50,83,78,84,81,88,75,86,74,87,71,90,73,93,74,93,74,109,40,114,36,117,34,117,34,143,17,145,18,146,19,162,12,165,10,178,7,189,6,190,8,177,9,23,178,54,115,63,102,66,98,69,99,74,89,71,91,73,91,78,89,86,80,92,66,93,64,102,59,103,60,104,60,117,52,123,44,138,35,133,31,97,38,77,45,61,90,93,60,105,42,107,41,110,45,116,38,113,38,112,38,124,26,132,27,136,19,140,20,155,14,159,16,158,18,170,13,177,10,187,8,192,6,175,9,159,10,21,178,59,110,71,86,75,85,84,83,91,66,88,73,87,72,92,75,98,72,105,58,107,54,115,52,114,55,112,56,129,51,132,40,150,33,140,29,98,35,77,42,42,121,96,66,108,43,111,40,117,44,123,32,120,36,119,33,127,33,134,34,139,21,147,23,152,20,158,25,154,26,166,21,173,16,184,13,184,10,150,13,139,15,22,178,63,114,74,82,84,83,92,82,103,62,96,72,96,67,101,73,107,72,113,55,118,52,125,52,118,52,117,55,135,49,137,39,157,32,145,29,97,33,77,40,2,1,0,0,8,13,16,19,21,23,24,26,27,28,29,30,31,32,32,33,34,34,35,36,36,37,37,224,112,44,15,3,2,1,0,254,237,192,132,70,23,4,0,255,252,226,155,61,11,2,0,250,245,234,203,71,50,42,38,35,33,31,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,179,99,0,71,56,43,30,21,12,6,0,199,165,144,124,109,96,84,71,61,51,42,32,23,15,8,0,241,225,211,199,187,175,164,153,142,132,123,114,105,96,88,80,72,64,57,50,44,38,33,29,24,20,16,12,9,5,2,0,15,131,138,138,155,155,173,173,69,93,115,118,131,138,141,138,150,150,155,150,155,160,166,160,131,128,134,141,141,141,145,145,145,150,155,155,155,155,160,160,160,160,166,166,173,173,182,192,182,192,192,192,205,192,205,224,4,6,24,7,5,0,0,2,0,0,12,28,41,13,252,247,15,42,25,14,1,254,62,41,247,246,37,65,252,3,250,4,66,7,248,16,14,38,253,33,13,22,39,23,12,255,36,64,27,250,249,10,55,43,17,1,1,8,1,1,6,245,74,53,247,244,55,76,244,8,253,3,93,27,252,26,39,59,3,248,2,0,77,11,9,248,22,44,250,7,40,9,26,3,9,249,20,101,249,4,3,248,42,26,0,241,33,68,2,23,254,55,46,254,15,3,255,21,16,41,250,27,61,39,5,245,42,88,4,1,254,60,65,6,252,255,251,73,56,1,247,19,94,29,247,0,12,99,6,4,8,237,102,46,243,3,2,13,3,2,9,235,84,72,238,245,46,104,234,8,18,38,48,23,0,240,70,83,235,11,5,245,117,22,248,250,23,117,244,3,3,248,95,28,4,246,15,77,60,241,255,4,124,2,252,3,38,84,24,231,2,13,42,13,31,21,252,56,46,255,255,35,79,243,19,249,65,88,247,242,20,4,81,49,227,20,0,75,3,239,5,247,44,92,248,1,253,22,69,31,250,95,41,244,5,39,67,16,252,1,0,250,120,55,220,243,44,122,4,232,81,5,11,3,7,2,0,9,10,88,46,2,90,87,93,91,82,98,109,120,118,12,113,115,117,119,99,59,87,111,63,111,112,80,126,124,125,124,129,121,126,23,132,127,127,127,126,127,122,133,130,134,101,118,119,145,126,86,124,120,123,119,170,173,107,109,8,16,32,249,247,246,245,244,234,210,202,201,200,197,174,82,59,56,55,54,46,22,12,11,10,9,7,0,64,0,203,150,0,215,195,166,125,110,82,0,120,0,128,64,0,232,158,10,0,230,0,243,221,192,181,0,171,85,0,192,128,64,0,205,154,102,51,0,213,171,128,85,43,0,224,192,160,128,96,64,32,0,100,40,16,7,3,1,0,253,250,244,233,212,182,150,131,120,110,98,85,72,60,49,40,32,25,19,15,13,11,9,8,7,6,5,4,3,2,1,0,210,208,206,203,199,193,183,168,142,104,74,52,37,27,20,14,10,6,4,2,0,223,201,183,167,152,138,124,111,98,88,79,70,62,56,50,44,39,35,31,27,24,21,18,16,14,12,10,8,6,4,3,2,1,0,188,176,155,138,119,97,67,43,26,10,0,165,119,80,61,47,35,27,20,14,9,4,0,113,63,0,125,51,26,18,15,12,11,10,9,8,7,6,5,4,3,2,1,0,198,105,45,22,15,12,11,10,9,8,7,6,5,4,3,2,1,0,213,162,116,83,59,43,32,24,18,15,12,9,7,6,5,3,2,0,239,187,116,59,28,16,11,10,9,8,7,6,5,4,3,2,1,0,250,229,188,135,86,51,30,19,13,10,8,6,5,4,3,2,1,0,249,235,213,185,156,128,103,83,66,53,42,33,26,21,17,13,10,0,254,249,235,206,164,118,77,46,27,16,10,7,5,4,3,2,1,0,255,253,249,239,220,191,156,119,85,57,37,23,15,10,6,4,2,0,255,253,251,246,237,223,203,179,152,124,98,75,55,40,29,21,15,0,255,254,253,247,220,162,106,67,42,28,18,12,9,6,4,3,2,0,31,57,107,160,205,205,255,255,255,255,255,255,255,255,255,255,255,255,69,47,67,111,166,205,255,255,255,255,255,255,255,255,255,255,255,255,82,74,79,95,109,128,145,160,173,205,205,205,224,255,255,224,255,224,125,74,59,69,97,141,182,255,255,255,255,255,255,255,255,255,255,255,173,115,85,73,76,92,115,145,173,205,224,224,255,255,255,255,255,255,166,134,113,102,101,102,107,118,125,138,145,155,166,182,192,192,205,150,224,182,134,101,83,79,85,97,120,145,173,205,224,255,255,255,255,255,255,224,192,150,120,101,92,89,93,102,118,134,160,182,192,224,224,224,255,224,224,182,155,134,118,109,104,102,106,111,118,131,145,160,173,131,241,190,178,132,87,74,41,14,0,223,193,157,140,106,57,39,18,0,131,74,141,79,80,138,95,104,134,95,99,91,125,93,76,123,115,123,128,0,214,42,0,235,128,21,0,244,184,72,11,0,248,214,128,42,7,0,248,225,170,80,25,5,0,251,236,198,126,54,18,3,0,250,238,211,159,82,35,15,5,0,250,231,203,168,128,88,53,25,6,0,252,238,216,185,148,108,71,40,18,4,0,253,243,225,199,166,128,90,57,31,13,3,0,254,246,233,212,183,147,109,73,44,23,10,2,0,255,250,240,223,198,166,128,90,58,33,16,6,1,0,255,251,244,231,210,181,146,110,75,46,25,12,5,1,0,255,253,248,238,221,196,164,128,92,60,35,18,8,3,1,0,255,253,249,242,229,208,180,146,110,76,48,27,14,7,3,1,0,129,0,207,50,0,236,129,20,0,245,185,72,10,0,249,213,129,42,6,0,250,226,169,87,27,4,0,251,233,194,130,62,20,4,0,250,236,207,160,99,47,17,3,0,255,240,217,182,131,81,41,11,1,0,255,254,233,201,159,107,61,20,2,1,0,255,249,233,206,170,128,86,50,23,7,1,0,255,250,238,217,186,148,108,70,39,18,6,1,0,255,252,243,226,200,166,128,90,56,30,13,4,1,0,255,252,245,231],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+20480);allocate([209,180,146,110,76,47,25,11,4,1,0,255,253,248,237,219,194,163,128,93,62,37,19,8,3,1,0,255,254,250,241,226,205,177,145,111,79,51,30,15,6,2,1,0,129,0,203,54,0,234,129,23,0,245,184,73,10,0,250,215,129,41,5,0,252,232,173,86,24,3,0,253,240,200,129,56,15,2,0,253,244,217,164,94,38,10,1,0,253,245,226,189,132,71,27,7,1,0,253,246,231,203,159,105,56,23,6,1,0,255,248,235,213,179,133,85,47,19,5,1,0,255,254,243,221,194,159,117,70,37,12,2,1,0,255,254,248,234,208,171,128,85,48,22,8,2,1,0,255,254,250,240,220,189,149,107,67,36,16,6,2,1,0,255,254,251,243,227,201,166,128,90,55,29,13,5,2,1,0,255,254,252,246,234,213,183,147,109,73,43,22,10,4,2,1,0,130,0,200,58,0,231,130,26,0,244,184,76,12,0,249,214,130,43,6,0,252,232,173,87,24,3,0,253,241,203,131,56,14,2,0,254,246,221,167,94,35,8,1,0,254,249,232,193,130,65,23,5,1,0,255,251,239,211,162,99,45,15,4,1,0,255,251,243,223,186,131,74,33,11,3,1,0,255,252,245,230,202,158,105,57,24,8,2,1,0,255,253,247,235,214,179,132,84,44,19,7,2,1,0,255,254,250,240,223,196,159,112,69,36,15,6,2,1,0,255,254,253,245,231,209,176,136,93,55,27,11,3,2,1,0,255,254,253,252,239,221,194,158,117,76,42,18,4,3,2,1,0,0,0,2,5,9,14,20,27,35,44,54,65,77,90,104,119,135,254,49,67,77,82,93,99,198,11,18,24,31,36,45,255,46,66,78,87,94,104,208,14,21,32,42,51,66,255,94,104,109,112,115,118,248,53,69,80,88,95,102,6,0,3,0,7,3,0,1,10,0,2,6,18,10,12,4,0,2,0,0,0,9,4,7,4,0,3,12,7,7,0,1,1,1,2,3,3,3,2,3,3,3,2,3,3,3,0,3,12,15,48,51,60,63,192,195,204,207,240,243,252,255,12,35,60,83,108,132,157,180,206,228,15,32,55,77,101,125,151,175,201,225,19,42,66,89,114,137,162,184,209,230,12,25,50,72,97,120,147,172,200,223,26,44,69,90,114,135,159,180,205,225,13,22,53,80,106,130,156,180,205,228,15,25,44,64,90,115,142,168,196,222,19,24,62,82,100,120,145,168,190,214,22,31,50,79,103,120,151,170,203,227,21,29,45,65,106,124,150,171,196,224,30,49,75,97,121,142,165,186,209,229,19,25,52,70,93,116,143,166,192,219,26,34,62,75,97,118,145,167,194,217,25,33,56,70,91,113,143,165,196,223,21,34,51,72,97,117,145,171,196,222,20,29,50,67,90,117,144,168,197,221,22,31,48,66,95,117,146,168,196,222,24,33,51,77,116,134,158,180,200,224,21,28,70,87,106,124,149,170,194,217,26,33,53,64,83,117,152,173,204,225,27,34,65,95,108,129,155,174,210,225,20,26,72,99,113,131,154,176,200,219,34,43,61,78,93,114,155,177,205,229,23,29,54,97,124,138,163,179,209,229,30,38,56,89,118,129,158,178,200,231,21,29,49,63,85,111,142,163,193,222,27,48,77,103,133,158,179,196,215,232,29,47,74,99,124,151,176,198,220,237,33,42,61,76,93,121,155,174,207,225,29,53,87,112,136,154,170,188,208,227,24,30,52,84,131,150,166,186,203,229,37,48,64,84,104,118,156,177,201,230,212,178,148,129,108,96,85,82,79,77,61,59,57,56,51,49,48,45,42,41,40,38,36,34,31,30,21,12,10,3,1,0,255,245,244,236,233,225,217,203,190,176,175,161,149,136,125,114,102,91,81,71,60,52,43,35,28,20,19,18,12,11,5,0,179,138,140,148,151,149,153,151,163,116,67,82,59,92,72,100,89,92,16,0,0,0,0,99,66,36,36,34,36,34,34,34,34,83,69,36,52,34,116,102,70,68,68,176,102,68,68,34,65,85,68,84,36,116,141,152,139,170,132,187,184,216,137,132,249,168,185,139,104,102,100,68,68,178,218,185,185,170,244,216,187,187,170,244,187,187,219,138,103,155,184,185,137,116,183,155,152,136,132,217,184,184,170,164,217,171,155,139,244,169,184,185,170,164,216,223,218,138,214,143,188,218,168,244,141,136,155,170,168,138,220,219,139,164,219,202,216,137,168,186,246,185,139,116,185,219,185,138,100,100,134,100,102,34,68,68,100,68,168,203,221,218,168,167,154,136,104,70,164,246,171,137,139,137,155,218,219,139,255,254,253,238,14,3,2,1,0,255,254,252,218,35,3,2,1,0,255,254,250,208,59,4,2,1,0,255,254,246,194,71,10,2,1,0,255,252,236,183,82,8,2,1,0,255,252,235,180,90,17,2,1,0,255,248,224,171,97,30,4,1,0,255,254,236,173,95,37,7,1,0,255,255,255,131,6,145,255,255,255,255,255,236,93,15,96,255,255,255,255,255,194,83,25,71,221,255,255,255,255,162,73,34,66,162,255,255,255,210,126,73,43,57,173,255,255,255,201,125,71,48,58,130,255,255,255,166,110,73,57,62,104,210,255,255,251,123,65,55,68,100,171,255,7,23,38,54,69,85,100,116,131,147,162,178,193,208,223,239,13,25,41,55,69,83,98,112,127,142,157,171,187,203,220,236,15,21,34,51,61,78,92,106,126,136,152,167,185,205,225,240,10,21,36,50,63,79,95,110,126,141,157,173,189,205,221,237,17,20,37,51,59,78,89,107,123,134,150,164,184,205,224,240,10,15,32,51,67,81,96,112,129,142,158,173,189,204,220,236,8,21,37,51,65,79,98,113,126,138,155,168,179,192,209,218,12,15,34,55,63,78,87,108,118,131,148,167,185,203,219,236,16,19,32,36,56,79,91,108,118,136,154,171,186,204,220,237,11,28,43,58,74,89,105,120,135,150,165,180,196,211,226,241,6,16,33,46,60,75,92,107,123,137,156,169,185,199,214,225,11,19,30,44,57,74,89,105,121,135,152,169,186,202,218,234,12,19,29,46,57,71,88,100,120,132,148,165,182,199,216,233,17,23,35,46,56,77,92,106,123,134,152,167,185,204,222,237,14,17,45,53,63,75,89,107,115,132,151,171,188,206,221,240,9,16,29,40,56,71,88,103,119,137,154,171,189,205,222,237,16,19,36,48,57,76,87,105,118,132,150,167,185,202,218,236,12,17,29,54,71,81,94,104,126,136,149,164,182,201,221,237,15,28,47,62,79,97,115,129,142,155,168,180,194,208,223,238,8,14,30,45,62,78,94,111,127,143,159,175,192,207,223,239,17,30,49,62,79,92,107,119,132,145,160,174,190,204,220,235,14,19,36,45,61,76,91,108,121,138,154,172,189,205,222,238,12,18,31,45,60,76,91,107,123,138,154,171,187,204,221,236,13,17,31,43,53,70,83,103,114,131,149,167,185,203,220,237,17,22,35,42,58,78,93,110,125,139,155,170,188,206,224,240,8,15,34,50,67,83,99,115,131,146,162,178,193,209,224,239,13,16,41,66,73,86,95,111,128,137,150,163,183,206,225,241,17,25,37,52,63,75,92,102,119,132,144,160,175,191,212,231,19,31,49,65,83,100,117,133,147,161,174,187,200,213,227,242,18,31,52,68,88,103,117,126,138,149,163,177,192,207,223,239,16,29,47,61,76,90,106,119,133,147,161,176,193,209,224,240,15,21,35,50,61,73,86,97,110,119,129,141,175,198,218,237,225,204,201,184,183,175,158,154,153,135,119,115,113,110,109,99,98,95,79,68,52,50,48,45,43,32,31,27,18,10,3,0,255,251,235,230,212,201,196,182,167,166,163,151,138,124,110,104,90,78,76,70,69,57,45,34,24,21,11,6,5,4,3,0,175,148,160,176,178,173,174,164,177,174,196,182,198,192,182,68,62,66,60,72,117,85,90,118,136,151,142,160,142,155,0,0,0,0,0,0,0,1,100,102,102,68,68,36,34,96,164,107,158,185,180,185,139,102,64,66,36,34,34,0,1,32,208,139,141,191,152,185,155,104,96,171,104,166,102,102,102,132,1,0,0,0,0,16,16,0,80,109,78,107,185,139,103,101,208,212,141,139,173,153,123,103,36,0,0,0,0,0,0,1,48,0,0,0,0,0,0,32,68,135,123,119,119,103,69,98,68,103,120,118,118,102,71,98,134,136,157,184,182,153,139,134,208,168,248,75,189,143,121,107,32,49,34,34,34,0,17,2,210,235,139,123,185,137,105,134,98,135,104,182,100,183,171,134,100,70,68,70,66,66,34,131,64,166,102,68,36,2,1,0,134,166,102,68,34,34,66,132,212,246,158,139,107,107,87,102,100,219,125,122,137,118,103,132,114,135,137,105,171,106,50,34,164,214,141,143,185,151,121,103,192,34,0,0,0,0,0,1,208,109,74,187,134,249,159,137,102,110,154,118,87,101,119,101,0,2,0,36,36,66,68,35,96,164,102,100,36,0,2,33,167,138,174,102,100,84,2,2,100,107,120,119,36,197,24,0,255,254,253,244,12,3,2,1,0,255,254,252,224,38,3,2,1,0,255,254,251,209,57,4,2,1,0,255,254,244,195,69,4,2,1,0,255,251,232,184,84,7,2,1,0,255,254,240,186,86,14,2,1,0,255,254,239,178,91,30,5,1,0,255,248,227,177,100,19,2,1,0,255,255,255,156,4,154,255,255,255,255,255,227,102,15,92,255,255,255,255,255,213,83,24,72,236,255,255,255,255,150,76,33,63,214,255,255,255,190,121,77,43,55,185,255,255,255,245,137,71,43,59,139,255,255,255,255,131,66,50,66,107,194,255,255,166,116,76,55,53,125,255,255,0,15,8,7,4,11,12,3,2,13,10,5,6,9,14,1,0,9,6,3,4,5,8,1,2,7,0,1,0,0,0,1,0,0,1,255,1,255,2,254,2,254,3,253,0,1,0,1,255,2,255,2,254,3,254,3,253,7,254,7,0,2,255,255,255,0,0,1,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,255,2,1,0,1,1,0,0,255,255,0,0,1,255,0,1,255,0,255,1,254,2,254,254,2,253,2,3,253,252,3,252,4,4,251,5,250,251,6,249,6,5,8,247,0,0,1,0,0,0,0,0,0,0,255,1,0,0,1,255,0,1,255,255,1,255,2,1,255,2,254,254,2,254,2,2,3,253,0,1,0,0,0,0,0,0,1,0,1,0,0,1,255,1,0,0,2,1,255,2,255,255,2,255,2,2,255,3,254,254,254,3,0,1,0,0,1,0,1,255,2,255,2,255,2,3,254,3,254,254,4,4,253,5,253,252,6,252,6,5,251,8,250,251,249,9,251,8,255,6,255,6,252,10,250,10,254,6,255,6,251,10,247,12,253,7,254,7,249,13,16,24,34,118,111,105,100,0,98,111,111,108,0,99,104,97,114,0,115,105,103,110,101,100,32,99,104,97,114,0,117,110,115,105,103,110,101,100,32,99,104,97,114,0,115,104,111,114,116,0,117,110,115,105,103,110,101,100,32,115,104,111,114,116,0,105,110,116,0,117,110,115,105,103,110,101,100,32,105,110,116,0,108,111,110,103,0,117,110,115,105,103,110,101,100,32,108,111,110,103,0,102,108,111,97,116,0,100,111,117,98,108,101,0,78,83,116,51,95,95,49,49,50,98,97,115,105,99,95,115,116,114,105,110,103,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,99,69,69,69,69,0,78,83,116,51,95,95,49,50,49,95,95,98,97,115,105,99,95,115,116,114,105,110,103,95,99,111,109,109,111,110,73,76,98,49,69,69,69,0,115,116,100,58,58,115,116,114,105,110,103,0,78,83,116,51,95,95,49,49,50,98,97,115,105,99,95,115,116,114,105,110,103,73,104,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,104,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,104,69,69,69,69,0,115,116,100,58,58,98,97,115,105,99,95,115,116,114,105,110,103,60,117,110,115,105,103,110,101,100,32,99,104,97,114,62,0,78,83,116,51,95,95,49,49,50,98,97,115,105,99,95,115,116,114,105,110,103,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,119,69,69,69,69,0,115,116,100,58,58,119,115,116,114,105,110,103,0,78,49,48,101,109,115,99,114,105,112,116,101,110,51,118,97,108,69,0,101,109,115,99,114,105,112,116,101,110,58,58,118,97,108,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,99,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,99,104,97,114,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,97,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,115,105,103,110,101,100,32,99,104,97,114,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,104,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,110,115,105,103,110,101,100,32,99,104,97,114,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,115,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,115,104,111,114,116,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,116,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,110,115,105,103,110,101,100,32,115,104,111,114,116,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,105,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,105,110,116,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,106,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,110,115,105,103,110,101,100,32,105,110,116,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,108,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,108,111,110,103,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,109,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,110,115,105,103,110,101,100,32,108,111,110,103,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,105,110,116,56,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,105,110,116,56,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,105,110,116,49,54,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,105,110,116,49,54,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,105,110,116,51,50,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,105,110,116,51,50,95,116,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,102,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,102,108,111,97,116,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,100,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,100,111,117,98,108,101,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,101,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,108,111,110,103,32,100,111,117,98,108,101,62,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,48,95,95,115,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,54,95,95,115,104,105,109,95,116,121,112,101,95,105,110,102,111,69,0,83,116,57,116,121,112,101,95,105,110,102,111,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,83,116,57,101,120,99,101,112,116,105,111,110,0,83,116,57,98,97,100,95,97,108,108,111,99,0,115,116,100,58,58,98,97,100,95,97,108,108,111,99,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,57,95,95,112,111,105,110,116,101,114,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,112,98,97,115,101,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,51,95,95,102,117,110,100,97,109,101,110,116,97,108,95,116,121,112,101,95,105,110,102,111,69,0,118,0,68,110,0,98,0,99,0,104,0,97,0,115,0,116,0,105,0,106,0,108,0,109,0,102,0,100,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,49,95,95,118,109,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+30720);var tempDoublePtr=STATICTOP;STATICTOP+=16;function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _sysconf(name){switch(name){case 30:return PAGE_SIZE;case 85:return totalMemory/PAGE_SIZE;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 79:return 0;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator==="object")return navigator["hardwareConcurrency"]||1;return 1}}___setErrNo(ERRNO_CODES.EINVAL);return-1}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return(new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n"))(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,(function(message){this.name=errorName;this.message=message;var stack=(new Error(message)).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}}));errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=(function(){if(this.message===undefined){return this.name}else{return this.name+": "+this.message}});return errorClass}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach((function(type){typeDependencies[type]=dependentTypes}));function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i0);info.refcount--;if(info.refcount===0){if(info.destructor){Runtime.dynCall("vi",info.destructor,[ptr])}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}}),clearRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0})};function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=ptr}EXCEPTIONS.clearRef(EXCEPTIONS.deAdjust(ptr));throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown){return(asm["setTempRet0"](0),0)|0}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(asm["setTempRet0"](0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module["___cxa_is_pointer_type"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i>2];info.adjusted=thrown;return(asm["setTempRet0"](typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(asm["setTempRet0"](throwntype),thrown)|0}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0};EXCEPTIONS.last=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1}else{__ZSt18uncaught_exceptionv.uncaught_exception++}throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}Module["_memset"]=_memset;function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+size)}}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":(function(wt){return!!wt}),"toWireType":(function(destructors,o){return o?trueValue:falseValue}),"argPackAdvance":8,"readValueFromPointer":(function(pointer){var heap;if(size===1){heap=HEAP8}else if(size===2){heap=HEAP16}else if(size===4){heap=HEAP32}else{throw new TypeError("Unknown boolean type size: "+name)}return this["fromWireType"](heap[pointer>>shift])}),destructorFunction:null})}function _abort(){Module["abort"]()}function _free(){}Module["_free"]=_free;function _malloc(bytes){var ptr=Runtime.dynamicAlloc(bytes+8);return ptr+8&4294967288}Module["_malloc"]=_malloc;function simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAPU32[pointer>>2])}function __embind_register_std_string(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":(function(value){var length=HEAPU32[value>>2];var a=new Array(length);for(var i=0;i>2]=length;for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+4+i]=charCode}if(destructors!==null){destructors.push(_free,ptr)}return ptr}),"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:(function(ptr){_free(ptr)})})}function __embind_register_std_wstring(rawType,charSize,name){name=readLatin1String(name);var getHeap,shift;if(charSize===2){getHeap=(function(){return HEAPU16});shift=1}else if(charSize===4){getHeap=(function(){return HEAPU32});shift=2}registerType(rawType,{name:name,"fromWireType":(function(value){var HEAP=getHeap();var length=HEAPU32[value>>2];var a=new Array(length);var start=value+4>>shift;for(var i=0;i>2]=length;var start=ptr+4>>shift;for(var i=0;i>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=(function(value){return value});if(minRange===0){var bitshift=32-8*size;fromWireType=(function(value){return value<>>bitshift})}registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":(function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}if(valuemaxRange){throw new TypeError('Passing a number "'+_embind_repr(value)+'" from JS side to C/C++ side to an argument of type "'+name+'", which is outside the valid range ['+minRange+", "+maxRange+"]!")}return value|0}),"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i>2;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 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 _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;function _llvm_stackrestore(p){var self=_llvm_stacksave;var ret=self.LLVM_SAVEDSTACKS[p];self.LLVM_SAVEDSTACKS.splice(p,1);Runtime.stackRestore(ret)}var _llvm_pow_f64=Math_pow;function _sbrk(bytes){var self=_sbrk;if(!self.called){DYNAMICTOP=alignMemoryPage(DYNAMICTOP);self.called=true;assert(Runtime.dynamicAlloc);self.alloc=Runtime.dynamicAlloc;Runtime.dynamicAlloc=(function(){abort("cannot dynamically allocate, sbrk now has control")})}var ret=DYNAMICTOP;if(bytes!=0){var success=self.alloc(bytes);if(!success)return-1>>>0}return ret}function _llvm_stacksave(){var self=_llvm_stacksave;if(!self.LLVM_SAVEDSTACKS){self.LLVM_SAVEDSTACKS=[]}self.LLVM_SAVEDSTACKS.push(Runtime.stackSave());return self.LLVM_SAVEDSTACKS.length-1}Module["_memmove"]=_memmove;function ___gxx_personality_v0(){}function heap32VectorToArray(count,firstElement){var array=[];for(var i=0;i>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=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>2]=ret}return ret}function _pthread_self(){return 0}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError("new_ called with constructor type "+typeof constructor+" which is not a function")}var dummy=createNamedFunction(constructor.name||"unknownFunctionName",(function(){}));dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var argsList="";var argsListWired="";for(var i=0;i0?", ":"")+argsListWired}var returns=argTypes[0].name!=="void";invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i*/ -var bufferShim = __webpack_require__(49); +var bufferShim = __webpack_require__(52); /**/ module.exports = BufferList; @@ -45686,51 +45732,51 @@ BufferList.prototype.concat = function (n) { return ret; }; -/***/ }, -/* 224 */ -/***/ function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(112) - - -/***/ }, -/* 225 */ -/***/ function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(process) {var Stream = (function (){ - try { - return __webpack_require__(9); // hack to fix a circular dependency issue when used with browserify - } catch(_){} -}()); -exports = module.exports = __webpack_require__(113); -exports.Stream = Stream || exports; -exports.Readable = exports; -exports.Writable = __webpack_require__(55); -exports.Duplex = __webpack_require__(15); -exports.Transform = __webpack_require__(54); -exports.PassThrough = __webpack_require__(112); - -if (!process.browser && process.env.READABLE_STREAM === 'disable' && Stream) { - module.exports = Stream; -} - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) - /***/ }, /* 226 */ /***/ function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(55) +module.exports = __webpack_require__(116) /***/ }, /* 227 */ /***/ function(module, exports, __webpack_require__) { +/* WEBPACK VAR INJECTION */(function(process) {var Stream = (function (){ + try { + return __webpack_require__(11); // hack to fix a circular dependency issue when used with browserify + } catch(_){} +}()); +exports = module.exports = __webpack_require__(117); +exports.Stream = Stream || exports; +exports.Readable = exports; +exports.Writable = __webpack_require__(58); +exports.Duplex = __webpack_require__(18); +exports.Transform = __webpack_require__(57); +exports.PassThrough = __webpack_require__(116); + +if (!process.browser && process.env.READABLE_STREAM === 'disable' && Stream) { + module.exports = Stream; +} + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(8))) + +/***/ }, +/* 228 */ +/***/ function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__(58) + + +/***/ }, +/* 229 */ +/***/ function(module, exports, __webpack_require__) { + /** * Module of mixed-in functions shared between node and client code */ -var isObject = __webpack_require__(115); +var isObject = __webpack_require__(119); /** * Expose `RequestBase`. @@ -46120,7 +46166,7 @@ RequestBase.prototype.send = function(data){ /***/ }, -/* 228 */ +/* 230 */ /***/ function(module, exports) { // The node and browser modules expose versions of this with the @@ -46158,7 +46204,7 @@ module.exports = request; /***/ }, -/* 229 */ +/* 231 */ /***/ function(module, exports) { "use strict"; @@ -46294,7 +46340,7 @@ module.exports = Ultron; /***/ }, -/* 230 */ +/* 232 */ /***/ function(module, exports) { "use strict"; @@ -46314,21 +46360,21 @@ module.exports.Validation = { /***/ }, -/* 231 */ +/* 233 */ /***/ function(module, exports, __webpack_require__) { "use strict"; 'use strict'; try { - module.exports = __webpack_require__(85)('validation'); + module.exports = __webpack_require__(89)('validation'); } catch (e) { - module.exports = __webpack_require__(230); + module.exports = __webpack_require__(232); } /***/ }, -/* 232 */ +/* 234 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(global) { @@ -46399,10 +46445,10 @@ function config (name) { return String(val).toLowerCase() === 'true'; } -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(16))) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(19))) /***/ }, -/* 233 */ +/* 235 */ /***/ function(module, exports) { if (typeof Object.create === 'function') { @@ -46431,7 +46477,7 @@ if (typeof Object.create === 'function') { /***/ }, -/* 234 */ +/* 236 */ /***/ function(module, exports) { module.exports = function isBuffer(arg) { @@ -46442,10 +46488,10 @@ module.exports = function isBuffer(arg) { } /***/ }, -/* 235 */ +/* 237 */ /***/ function(module, exports, __webpack_require__) { -var indexOf = __webpack_require__(199); +var indexOf = __webpack_require__(201); var Object_keys = function (obj) { if (Object.keys) return Object.keys(obj) @@ -46586,10 +46632,10 @@ exports.createContext = Script.createContext = function (context) { /***/ }, -/* 236 */ +/* 238 */ /***/ function(module, exports, __webpack_require__) { -var http = __webpack_require__(52); +var http = __webpack_require__(55); var https = module.exports; @@ -46606,7 +46652,7 @@ https.request = function (params, cb) { /***/ }, -/* 237 */ +/* 239 */ /***/ function(module, exports) { exports.lookup = exports.resolve4 = @@ -46627,14 +46673,14 @@ function () { /***/ }, -/* 238 */ +/* 240 */ /***/ function(module, exports) { // todo /***/ }, -/* 239 */ +/* 241 */ /***/ function(module, exports) { "use strict"; @@ -46657,7 +46703,7 @@ module.exports = { /***/ }, -/* 240 */ +/* 242 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(Buffer) {/*! @@ -46666,7 +46712,7 @@ module.exports = { * MIT Licensed */ -var util = __webpack_require__(8); +var util = __webpack_require__(10); function BufferPool(initialSize, growStrategy, shrinkStrategy) { if (this instanceof BufferPool === false) { @@ -46727,7 +46773,7 @@ module.exports = BufferPool; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 241 */ +/* 243 */ /***/ function(module, exports) { /*! @@ -46780,7 +46826,7 @@ exports.BufferUtil = { /***/ }, -/* 242 */ +/* 244 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(Buffer) {/*! @@ -46789,7 +46835,7 @@ exports.BufferUtil = { * MIT Licensed */ -var util = __webpack_require__(8); +var util = __webpack_require__(10); /** * State constants @@ -46981,7 +47027,7 @@ function bufferIndex(buffer, byte) { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 243 */ +/* 245 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(Buffer) {/*! @@ -46990,8 +47036,8 @@ function bufferIndex(buffer, byte) { * MIT Licensed */ -var events = __webpack_require__(3) - , util = __webpack_require__(8) +var events = __webpack_require__(5) + , util = __webpack_require__(10) , EventEmitter = events.EventEmitter; /** @@ -47112,7 +47158,7 @@ Sender.prototype.error = function (reason) { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 244 */ +/* 246 */ /***/ function(module, exports) { /*! @@ -47129,7 +47175,7 @@ exports.Validation = { /***/ }, -/* 245 */ +/* 247 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -47142,14 +47188,14 @@ exports.Validation = { */ try { - module.exports = __webpack_require__(231); + module.exports = __webpack_require__(233); } catch (e) { - module.exports = __webpack_require__(244); + module.exports = __webpack_require__(246); } /***/ }, -/* 246 */ +/* 248 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(Buffer) {/*! @@ -47158,16 +47204,16 @@ try { * MIT Licensed */ -var util = __webpack_require__(8) - , events = __webpack_require__(3) - , http = __webpack_require__(52) - , crypto = __webpack_require__(118) - , Options = __webpack_require__(104) - , WebSocket = __webpack_require__(125) - , Extensions = __webpack_require__(122) - , PerMessageDeflate = __webpack_require__(40) - , tls = __webpack_require__(238) - , url = __webpack_require__(59); +var util = __webpack_require__(10) + , events = __webpack_require__(5) + , http = __webpack_require__(55) + , crypto = __webpack_require__(122) + , Options = __webpack_require__(108) + , WebSocket = __webpack_require__(129) + , Extensions = __webpack_require__(126) + , PerMessageDeflate = __webpack_require__(44) + , tls = __webpack_require__(240) + , url = __webpack_require__(62); /** * WebSocket Server implementation @@ -47710,7 +47756,7 @@ function abortConnection(socket, code, name) { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 247 */ +/* 249 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process, Buffer) {/** @license zlib.js 2012 - imaya [ https://github.com/imaya/zlib.js ] The MIT License */(function() {'use strict';function q(b){throw b;}var t=void 0,v=!0;var A="undefined"!==typeof Uint8Array&&"undefined"!==typeof Uint16Array&&"undefined"!==typeof Uint32Array&&"undefined"!==typeof DataView;function E(b,a){this.index="number"===typeof a?a:0;this.m=0;this.buffer=b instanceof(A?Uint8Array:Array)?b:new (A?Uint8Array:Array)(32768);2*this.buffer.length<=this.index&&q(Error("invalid index"));this.buffer.length<=this.index&&this.f()}E.prototype.f=function(){var b=this.buffer,a,c=b.length,d=new (A?Uint8Array:Array)(c<<1);if(A)d.set(b);else for(a=0;a this.deleted.delete(id), this.client.options.restWsBridgeTimeout); + } +} + +module.exports = ChannelDeleteAction; + + +/***/ }, +/* 255 */ +/***/ function(module, exports, __webpack_require__) { + +const Action = __webpack_require__(4); +const Constants = __webpack_require__(1); +const cloneObject = __webpack_require__(13); + +class ChannelUpdateAction extends Action { + handle(data) { + const client = this.client; + + const channel = client.channels.get(data.id); + if (channel) { + const oldChannel = cloneObject(channel); + channel.setup(data); + client.emit(Constants.Events.CHANNEL_UPDATE, oldChannel, channel); + return { + old: oldChannel, + updated: channel, + }; + } + + return { + old: null, + updated: null, + }; + } +} + +/** + * Emitted whenever a channel is updated - e.g. name change, topic change. + * @event Client#channelUpdate + * @param {Channel} oldChannel The channel before the update + * @param {Channel} newChannel The channel after the update + */ + +module.exports = ChannelUpdateAction; + + +/***/ }, +/* 256 */ +/***/ function(module, exports, __webpack_require__) { + +const Action = __webpack_require__(4); +const Constants = __webpack_require__(1); + +class GuildBanRemove extends Action { + handle(data) { + const client = this.client; + const guild = client.guilds.get(data.guild_id); + const user = client.dataManager.newUser(data.user); + if (guild && user) client.emit(Constants.Events.GUILD_BAN_REMOVE, guild, user); + } +} + +module.exports = GuildBanRemove; + + +/***/ }, +/* 257 */ +/***/ function(module, exports, __webpack_require__) { + +const Action = __webpack_require__(4); +const Constants = __webpack_require__(1); + +class GuildDeleteAction extends Action { + constructor(client) { + super(client); + this.deleted = new Map(); + } + + handle(data) { + const client = this.client; + + let guild = client.guilds.get(data.id); + if (guild) { + if (guild.available && data.unavailable) { + // guild is unavailable + guild.available = false; + client.emit(Constants.Events.GUILD_UNAVAILABLE, guild); + + // stops the GuildDelete packet thinking a guild was actually deleted, + // handles emitting of event itself + return { + guild: null, + }; + } + + // delete guild + client.guilds.delete(guild.id); + this.deleted.set(guild.id, guild); + this.scheduleForDeletion(guild.id); + } else { + guild = this.deleted.get(data.id) || null; + } + + return { + guild, + }; + } + + scheduleForDeletion(id) { + this.client.setTimeout(() => this.deleted.delete(id), this.client.options.restWsBridgeTimeout); + } +} + +/** + * Emitted whenever a guild becomes unavailable, likely due to a server outage. + * @event Client#guildUnavailable + * @param {Guild} guild The guild that has become unavailable. + */ + +module.exports = GuildDeleteAction; + + +/***/ }, +/* 258 */ +/***/ function(module, exports, __webpack_require__) { + +const Action = __webpack_require__(4); + +class EmojiCreateAction extends Action { + handle(data, guild) { + const client = this.client; + const emoji = client.dataManager.newEmoji(data, guild); + return { + emoji, + }; + } +} + +/** + * Emitted whenever an emoji is created + * @event Client#guildEmojiCreate + * @param {Emoji} emoji The emoji that was created. + */ +module.exports = EmojiCreateAction; + + +/***/ }, +/* 259 */ +/***/ function(module, exports, __webpack_require__) { + +const Action = __webpack_require__(4); + +class EmojiDeleteAction extends Action { + handle(data) { + const client = this.client; + client.dataManager.killEmoji(data); + return { + data, + }; + } +} + +/** + * Emitted whenever an emoji is deleted + * @event Client#guildEmojiDelete + * @param {Emoji} emoji The emoji that was deleted. + */ +module.exports = EmojiDeleteAction; + + +/***/ }, +/* 260 */ +/***/ function(module, exports, __webpack_require__) { + +const Action = __webpack_require__(4); + +class GuildEmojiUpdateAction extends Action { + handle(data, guild) { + const client = this.client; + for (let emoji of data.emojis) { + const already = guild.emojis.has(emoji.id); + if (already) { + client.dataManager.updateEmoji(guild.emojis.get(emoji.id), emoji); + } else { + emoji = client.dataManager.newEmoji(emoji, guild); + } + } + for (let emoji of guild.emojis) { + if (!data.emoijs.has(emoji.id)) client.dataManager.killEmoji(emoji); + } + return { + emojis: data.emojis, + }; + } +} + +/** + * Emitted whenever an emoji is updated + * @event Client#guildEmojiUpdate + * @param {Emoji} oldEmoji The old emoji + * @param {Emoji} newEmoji The new emoji + */ +module.exports = GuildEmojiUpdateAction; + + +/***/ }, +/* 261 */ +/***/ function(module, exports, __webpack_require__) { + +const Action = __webpack_require__(4); + +class GuildMemberGetAction extends Action { + handle(guild, data) { + const member = guild._addMember(data, false); + return { + member, + }; + } +} + +module.exports = GuildMemberGetAction; + + +/***/ }, +/* 262 */ +/***/ function(module, exports, __webpack_require__) { + +const Action = __webpack_require__(4); +const Constants = __webpack_require__(1); + +class GuildMemberRemoveAction extends Action { + constructor(client) { + super(client); + this.deleted = new Map(); + } + + handle(data) { + const client = this.client; + + const guild = client.guilds.get(data.guild_id); + if (guild) { + let member = guild.members.get(data.user.id); + if (member) { + guild.memberCount--; + guild._removeMember(member); + this.deleted.set(guild.id + data.user.id, member); + if (client.status === Constants.Status.READY) client.emit(Constants.Events.GUILD_MEMBER_REMOVE, member); + this.scheduleForDeletion(guild.id, data.user.id); + } else { + member = this.deleted.get(guild.id + data.user.id) || null; + } + + return { + guild, + member, + }; + } + + return { + guild, + member: null, + }; + } + + scheduleForDeletion(guildID, userID) { + this.client.setTimeout(() => this.deleted.delete(guildID + userID), this.client.options.restWsBridgeTimeout); + } +} + +/** + * Emitted whenever a member leaves a guild, or is kicked. + * @event Client#guildMemberRemove + * @param {GuildMember} member The member that has left/been kicked from the guild. + */ + +module.exports = GuildMemberRemoveAction; + + +/***/ }, +/* 263 */ +/***/ function(module, exports, __webpack_require__) { + +const Action = __webpack_require__(4); +const Constants = __webpack_require__(1); +const Role = __webpack_require__(20); + +class GuildRoleCreate extends Action { + handle(data) { + const client = this.client; + + const guild = client.guilds.get(data.guild_id); + if (guild) { + const already = guild.roles.has(data.role.id); + const role = new Role(guild, data.role); + guild.roles.set(role.id, role); + if (!already) client.emit(Constants.Events.GUILD_ROLE_CREATE, role); + return { + role, + }; + } + + return { + role: null, + }; + } +} + +/** + * Emitted whenever a role is created. + * @event Client#roleCreate + * @param {Role} role The role that was created. + */ + +module.exports = GuildRoleCreate; + + +/***/ }, +/* 264 */ +/***/ function(module, exports, __webpack_require__) { + +const Action = __webpack_require__(4); +const Constants = __webpack_require__(1); + +class GuildRoleDeleteAction extends Action { + constructor(client) { + super(client); + this.deleted = new Map(); + } + + handle(data) { + const client = this.client; + + const guild = client.guilds.get(data.guild_id); + if (guild) { + let role = guild.roles.get(data.role_id); + if (role) { + guild.roles.delete(data.role_id); + this.deleted.set(guild.id + data.role_id, role); + this.scheduleForDeletion(guild.id, data.role_id); + client.emit(Constants.Events.GUILD_ROLE_DELETE, role); + } else { + role = this.deleted.get(guild.id + data.role_id) || null; + } + + return { + role, + }; + } + + return { + role: null, + }; + } + + scheduleForDeletion(guildID, roleID) { + this.client.setTimeout(() => this.deleted.delete(guildID + roleID), this.client.options.restWsBridgeTimeout); + } +} + +/** + * Emitted whenever a guild role is deleted. + * @event Client#roleDelete + * @param {Role} role The role that was deleted. + */ + +module.exports = GuildRoleDeleteAction; + + +/***/ }, +/* 265 */ +/***/ function(module, exports, __webpack_require__) { + +const Action = __webpack_require__(4); +const Constants = __webpack_require__(1); +const cloneObject = __webpack_require__(13); + +class GuildRoleUpdateAction extends Action { + handle(data) { + const client = this.client; + + const guild = client.guilds.get(data.guild_id); + if (guild) { + const roleData = data.role; + let oldRole = null; + + const role = guild.roles.get(roleData.id); + if (role) { + oldRole = cloneObject(role); + role.setup(data.role); + client.emit(Constants.Events.GUILD_ROLE_UPDATE, oldRole, role); + } + + return { + old: oldRole, + updated: role, + }; + } + + return { + old: null, + updated: null, + }; + } +} + +/** + * Emitted whenever a guild role is updated. + * @event Client#roleUpdate + * @param {Role} oldRole The role before the update. + * @param {Role} newRole The role after the update. + */ + +module.exports = GuildRoleUpdateAction; + + +/***/ }, +/* 266 */ +/***/ function(module, exports, __webpack_require__) { + +const Action = __webpack_require__(4); + +class GuildRolesPositionUpdate extends Action { + handle(data) { + const client = this.client; + + const guild = client.guilds.get(data.guild_id); + if (guild) { + for (const partialRole of data.roles) { + const role = guild.roles.get(partialRole.id); + if (role) { + role.position = partialRole.position; + } + } + } + + return { + guild, + }; + } +} + +module.exports = GuildRolesPositionUpdate; + + +/***/ }, +/* 267 */ +/***/ function(module, exports, __webpack_require__) { + +const Action = __webpack_require__(4); + +class GuildSync extends Action { + handle(data) { + const client = this.client; + + const guild = client.guilds.get(data.id); + if (guild) { + data.presences = data.presences || []; + for (const presence of data.presences) { + guild._setPresence(presence.user.id, presence); + } + + data.members = data.members || []; + for (const syncMember of data.members) { + const member = guild.members.get(syncMember.user.id); + if (member) { + guild._updateMember(member, syncMember); + } else { + guild._addMember(syncMember); + } + } + } + } +} + +module.exports = GuildSync; + + +/***/ }, +/* 268 */ +/***/ function(module, exports, __webpack_require__) { + +const Action = __webpack_require__(4); +const Constants = __webpack_require__(1); +const cloneObject = __webpack_require__(13); + +class GuildUpdateAction extends Action { + handle(data) { + const client = this.client; + + const guild = client.guilds.get(data.id); + if (guild) { + const oldGuild = cloneObject(guild); + guild.setup(data); + client.emit(Constants.Events.GUILD_UPDATE, oldGuild, guild); + return { + old: oldGuild, + updated: guild, + }; + } + + return { + old: null, + updated: null, + }; + } +} + +/** + * Emitted whenever a guild is updated - e.g. name change. + * @event Client#guildUpdate + * @param {Guild} oldGuild The guild before the update. + * @param {Guild} newGuild The guild after the update. + */ + +module.exports = GuildUpdateAction; + + +/***/ }, +/* 269 */ +/***/ function(module, exports, __webpack_require__) { + +const Action = __webpack_require__(4); +const Message = __webpack_require__(34); + +class MessageCreateAction extends Action { + handle(data) { + const client = this.client; + + const channel = client.channels.get((data instanceof Array ? data[0] : data).channel_id); + if (channel) { + if (data instanceof Array) { + const messages = new Array(data.length); + for (let i = 0; i < data.length; i++) { + messages[i] = channel._cacheMessage(new Message(channel, data[i], client)); + } + channel.lastMessageID = messages[messages.length - 1].id; + return { + messages, + }; + } else { + const message = channel._cacheMessage(new Message(channel, data, client)); + channel.lastMessageID = data.id; + return { + message, + }; + } + } + + return { + message: null, + }; + } +} + +module.exports = MessageCreateAction; + + +/***/ }, +/* 270 */ +/***/ function(module, exports, __webpack_require__) { + +const Action = __webpack_require__(4); + +class MessageDeleteAction extends Action { + constructor(client) { + super(client); + this.deleted = new Map(); + } + + handle(data) { + const client = this.client; + + const channel = client.channels.get(data.channel_id); + if (channel) { + let message = channel.messages.get(data.id); + + if (message) { + channel.messages.delete(message.id); + this.deleted.set(channel.id + message.id, message); + this.scheduleForDeletion(channel.id, message.id); + } else { + message = this.deleted.get(channel.id + data.id) || null; + } + + return { + message, + }; + } + + return { + message: null, + }; + } + + scheduleForDeletion(channelID, messageID) { + this.client.setTimeout(() => this.deleted.delete(channelID + messageID), + this.client.options.restWsBridgeTimeout); + } +} + +module.exports = MessageDeleteAction; + + +/***/ }, +/* 271 */ +/***/ function(module, exports, __webpack_require__) { + +const Action = __webpack_require__(4); +const Collection = __webpack_require__(6); +const Constants = __webpack_require__(1); + +class MessageDeleteBulkAction extends Action { + handle(data) { + const client = this.client; + const channel = client.channels.get(data.channel_id); + + const ids = data.ids; + const messages = new Collection(); + for (const id of ids) { + const message = channel.messages.get(id); + if (message) messages.set(message.id, message); + } + + if (messages.size > 0) client.emit(Constants.Events.MESSAGE_BULK_DELETE, messages); + return { + messages, + }; + } +} + +module.exports = MessageDeleteBulkAction; + + +/***/ }, +/* 272 */ +/***/ function(module, exports, __webpack_require__) { + +const Action = __webpack_require__(4); +const Constants = __webpack_require__(1); + +/* +{ user_id: 'id', + message_id: 'id', + emoji: { name: '�', id: null }, + channel_id: 'id' } } +*/ + +class MessageReactionAdd extends Action { + handle(data) { + const user = this.client.users.get(data.user_id); + if (!user) return false; + + const channel = this.client.channels.get(data.channel_id); + if (!channel || channel.type === 'voice') return false; + + const message = channel.messages.get(data.message_id); + if (!message) return false; + + if (!data.emoji) return false; + + const reaction = message._addReaction(data.emoji, user); + + if (reaction) { + this.client.emit(Constants.Events.MESSAGE_REACTION_ADD, reaction, user); + } + + return { + message, + reaction, + user, + }; + } +} +/** + * Emitted whenever a reaction is added to a message. + * @event Client#messageReactionAdd + * @param {MessageReaction} messageReaction The reaction object. + * @param {User} user The user that applied the emoji or reaction emoji. + */ +module.exports = MessageReactionAdd; + + +/***/ }, +/* 273 */ +/***/ function(module, exports, __webpack_require__) { + +const Action = __webpack_require__(4); +const Constants = __webpack_require__(1); + +/* +{ user_id: 'id', + message_id: 'id', + emoji: { name: '�', id: null }, + channel_id: 'id' } } +*/ + +class MessageReactionRemove extends Action { + handle(data) { + const user = this.client.users.get(data.user_id); + if (!user) return false; + + const channel = this.client.channels.get(data.channel_id); + if (!channel || channel.type === 'voice') return false; + + const message = channel.messages.get(data.message_id); + if (!message) return false; + + if (!data.emoji) return false; + + const reaction = message._removeReaction(data.emoji, user); + + if (reaction) { + this.client.emit(Constants.Events.MESSAGE_REACTION_REMOVE, reaction, user); + } + + return { + message, + reaction, + user, + }; + } +} +/** + * Emitted whenever a reaction is removed from a message. + * @event Client#messageReactionRemove + * @param {MessageReaction} messageReaction The reaction object. + * @param {User} user The user that removed the emoji or reaction emoji. + */ +module.exports = MessageReactionRemove; + + +/***/ }, +/* 274 */ +/***/ function(module, exports, __webpack_require__) { + +const Action = __webpack_require__(4); +const Constants = __webpack_require__(1); + +class MessageReactionRemoveAll extends Action { + handle(data) { + const channel = this.client.channels.get(data.channel_id); + if (!channel || channel.type === 'voice') return false; + + const message = channel.messages.get(data.message_id); + if (!message) return false; + + message._clearReactions(); + this.client.emit(Constants.Events.MESSAGE_REACTION_REMOVE_ALL, message); + + return { + message, + }; + } +} +/** + * Emitted whenever all reactions are removed from a message. + * @event Client#messageReactionRemoveAll + * @param {MessageReaction} messageReaction The reaction object. + */ +module.exports = MessageReactionRemoveAll; + + +/***/ }, +/* 275 */ +/***/ function(module, exports, __webpack_require__) { + +const Action = __webpack_require__(4); +const Constants = __webpack_require__(1); +const cloneObject = __webpack_require__(13); + +class MessageUpdateAction extends Action { + handle(data) { + const client = this.client; + + const channel = client.channels.get(data.channel_id); + if (channel) { + const message = channel.messages.get(data.id); + if (message) { + const oldMessage = cloneObject(message); + message.patch(data); + message._edits.unshift(oldMessage); + client.emit(Constants.Events.MESSAGE_UPDATE, oldMessage, message); + return { + old: oldMessage, + updated: message, + }; + } + + return { + old: message, + updated: message, + }; + } + + return { + old: null, + updated: null, + }; + } +} + +/** + * Emitted whenever a message is updated - e.g. embed or content change. + * @event Client#messageUpdate + * @param {Message} oldMessage The message before the update. + * @param {Message} newMessage The message after the update. + */ + +module.exports = MessageUpdateAction; + + +/***/ }, +/* 276 */ +/***/ function(module, exports, __webpack_require__) { + +const Action = __webpack_require__(4); + +class UserGetAction extends Action { + handle(data) { + const client = this.client; + const user = client.dataManager.newUser(data); + return { + user, + }; + } +} + +module.exports = UserGetAction; + + +/***/ }, +/* 277 */ +/***/ function(module, exports, __webpack_require__) { + +const Action = __webpack_require__(4); +const Constants = __webpack_require__(1); + +class UserNoteUpdateAction extends Action { + handle(data) { + const client = this.client; + + const oldNote = client.user.notes.get(data.id); + const note = data.note.length ? data.note : null; + + client.user.notes.set(data.id, note); + + client.emit(Constants.Events.USER_NOTE_UPDATE, data.id, oldNote, note); + + return { + old: oldNote, + updated: note, + }; + } +} + +/** + * Emitted whenever a note is updated. + * @event Client#userNoteUpdate + * @param {User} user The user the note belongs to + * @param {string} oldNote The note content before the update + * @param {string} newNote The note content after the update + */ + +module.exports = UserNoteUpdateAction; + + +/***/ }, +/* 278 */ +/***/ function(module, exports, __webpack_require__) { + +const Action = __webpack_require__(4); +const Constants = __webpack_require__(1); +const cloneObject = __webpack_require__(13); + +class UserUpdateAction extends Action { + handle(data) { + const client = this.client; + + if (client.user) { + if (client.user.equals(data)) { + return { + old: client.user, + updated: client.user, + }; + } + + const oldUser = cloneObject(client.user); + client.user.patch(data); + client.emit(Constants.Events.USER_UPDATE, oldUser, client.user); + return { + old: oldUser, + updated: client.user, + }; + } + + return { + old: null, + updated: null, + }; + } +} + +module.exports = UserUpdateAction; + + +/***/ }, +/* 279 */ +/***/ function(module, exports, __webpack_require__) { + +const request = __webpack_require__(60); +const Constants = __webpack_require__(1); function getRoute(url) { let route = url.split('?')[0]; @@ -48100,21 +49087,21 @@ module.exports = APIRequest; /***/ }, -/* 253 */ +/* 280 */ /***/ function(module, exports, __webpack_require__) { -const Constants = __webpack_require__(2); +const Constants = __webpack_require__(1); const Collection = __webpack_require__(6); -const splitMessage = __webpack_require__(79); -const parseEmoji = __webpack_require__(277); +const splitMessage = __webpack_require__(83); +const parseEmoji = __webpack_require__(336); -const User = __webpack_require__(11); -const GuildMember = __webpack_require__(30); -const Role = __webpack_require__(22); -const Invite = __webpack_require__(67); -const Webhook = __webpack_require__(46); -const UserProfile = __webpack_require__(276); -const ClientOAuth2Application = __webpack_require__(64); +const User = __webpack_require__(14); +const GuildMember = __webpack_require__(33); +const Role = __webpack_require__(20); +const Invite = __webpack_require__(71); +const Webhook = __webpack_require__(49); +const UserProfile = __webpack_require__(335); +const ClientOAuth2Application = __webpack_require__(67); class RESTMethods { constructor(restManager) { @@ -48740,10 +49727,10 @@ module.exports = RESTMethods; /***/ }, -/* 254 */ +/* 281 */ /***/ function(module, exports, __webpack_require__) { -const RequestHandler = __webpack_require__(128); +const RequestHandler = __webpack_require__(132); class BurstRequestHandler extends RequestHandler { constructor(restManager, endpoint) { @@ -48816,10 +49803,10 @@ module.exports = BurstRequestHandler; /***/ }, -/* 255 */ +/* 282 */ /***/ function(module, exports, __webpack_require__) { -const RequestHandler = __webpack_require__(128); +const RequestHandler = __webpack_require__(132); /** * Handles API Requests sequentially, i.e. we wait until the current request is finished before moving onto @@ -48925,10 +49912,10 @@ module.exports = SequentialRequestHandler; /***/ }, -/* 256 */ +/* 283 */ /***/ function(module, exports, __webpack_require__) { -const Constants = __webpack_require__(2); +const Constants = __webpack_require__(1); class UserAgentManager { constructor(restManager) { @@ -48953,14 +49940,14 @@ module.exports = UserAgentManager; /***/ }, -/* 257 */ +/* 284 */ /***/ function(module, exports, __webpack_require__) { const Collection = __webpack_require__(6); -const mergeDefault = __webpack_require__(41); -const Constants = __webpack_require__(2); -const VoiceConnection = __webpack_require__(258); -const EventEmitter = __webpack_require__(3).EventEmitter; +const mergeDefault = __webpack_require__(45); +const Constants = __webpack_require__(1); +const VoiceConnection = __webpack_require__(285); +const EventEmitter = __webpack_require__(5).EventEmitter; /** * Manages all the voice stuff for the Client @@ -49205,16 +50192,16 @@ module.exports = ClientVoiceManager; /***/ }, -/* 258 */ +/* 285 */ /***/ function(module, exports, __webpack_require__) { -const VoiceWebSocket = __webpack_require__(260); -const VoiceUDP = __webpack_require__(259); -const Constants = __webpack_require__(2); -const AudioPlayer = __webpack_require__(268); -const VoiceReceiver = __webpack_require__(270); -const EventEmitter = __webpack_require__(3).EventEmitter; -const fs = __webpack_require__(10); +const VoiceWebSocket = __webpack_require__(287); +const VoiceUDP = __webpack_require__(286); +const Constants = __webpack_require__(1); +const AudioPlayer = __webpack_require__(295); +const VoiceReceiver = __webpack_require__(297); +const EventEmitter = __webpack_require__(5).EventEmitter; +const fs = __webpack_require__(12); /** * Represents a connection to a voice channel in Discord. @@ -49487,13 +50474,13 @@ module.exports = VoiceConnection; /***/ }, -/* 259 */ +/* 286 */ /***/ function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(Buffer) {const udp = __webpack_require__(10); -const dns = __webpack_require__(237); -const Constants = __webpack_require__(2); -const EventEmitter = __webpack_require__(3).EventEmitter; +/* WEBPACK VAR INJECTION */(function(Buffer) {const udp = __webpack_require__(12); +const dns = __webpack_require__(239); +const Constants = __webpack_require__(1); +const EventEmitter = __webpack_require__(5).EventEmitter; /** * Represents a UDP Client for a Voice Connection @@ -49639,13 +50626,13 @@ module.exports = VoiceConnectionUDPClient; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 260 */ +/* 287 */ /***/ function(module, exports, __webpack_require__) { -const WebSocket = __webpack_require__(119); -const Constants = __webpack_require__(2); -const SecretKey = __webpack_require__(271); -const EventEmitter = __webpack_require__(3).EventEmitter; +const WebSocket = __webpack_require__(123); +const Constants = __webpack_require__(1); +const SecretKey = __webpack_require__(298); +const EventEmitter = __webpack_require__(5).EventEmitter; /** * Represents a Voice Connection's WebSocket @@ -49888,11 +50875,11 @@ module.exports = VoiceWebSocket; /***/ }, -/* 261 */ +/* 288 */ /***/ function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(Buffer) {const EventEmitter = __webpack_require__(3).EventEmitter; -const NaCl = __webpack_require__(116); +/* WEBPACK VAR INJECTION */(function(Buffer) {const EventEmitter = __webpack_require__(5).EventEmitter; +const NaCl = __webpack_require__(120); const nonce = new Buffer(24); nonce.fill(0); @@ -50201,10 +51188,10 @@ module.exports = StreamDispatcher; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 262 */ +/* 289 */ /***/ function(module, exports, __webpack_require__) { -const OpusEngine = __webpack_require__(129); +const OpusEngine = __webpack_require__(133); let opus; @@ -50234,12 +51221,12 @@ module.exports = NodeOpusEngine; /***/ }, -/* 263 */ +/* 290 */ /***/ function(module, exports, __webpack_require__) { const list = [ - __webpack_require__(262), - __webpack_require__(264), + __webpack_require__(289), + __webpack_require__(291), ]; function fetch(Encoder) { @@ -50264,10 +51251,10 @@ exports.fetch = () => { /***/ }, -/* 264 */ +/* 291 */ /***/ function(module, exports, __webpack_require__) { -const OpusEngine = __webpack_require__(129); +const OpusEngine = __webpack_require__(133); let OpusScript; @@ -50275,7 +51262,7 @@ class NodeOpusEngine extends OpusEngine { constructor(player) { super(player); try { - OpusScript = __webpack_require__(204); + OpusScript = __webpack_require__(206); } catch (err) { throw err; } @@ -50297,10 +51284,10 @@ module.exports = NodeOpusEngine; /***/ }, -/* 265 */ +/* 292 */ /***/ function(module, exports, __webpack_require__) { -const EventEmitter = __webpack_require__(3).EventEmitter; +const EventEmitter = __webpack_require__(5).EventEmitter; class ConverterEngine extends EventEmitter { constructor(player) { @@ -50317,19 +51304,19 @@ module.exports = ConverterEngine; /***/ }, -/* 266 */ +/* 293 */ /***/ function(module, exports, __webpack_require__) { -exports.fetch = () => __webpack_require__(267); +exports.fetch = () => __webpack_require__(294); /***/ }, -/* 267 */ +/* 294 */ /***/ function(module, exports, __webpack_require__) { -const ConverterEngine = __webpack_require__(265); -const ChildProcess = __webpack_require__(10); -const EventEmitter = __webpack_require__(3).EventEmitter; +const ConverterEngine = __webpack_require__(292); +const ChildProcess = __webpack_require__(12); +const EventEmitter = __webpack_require__(5).EventEmitter; class PCMConversionProcess extends EventEmitter { constructor(process) { @@ -50409,13 +51396,13 @@ module.exports = FfmpegConverterEngine; /***/ }, -/* 268 */ +/* 295 */ /***/ function(module, exports, __webpack_require__) { -const PCMConverters = __webpack_require__(266); -const OpusEncoders = __webpack_require__(263); -const EventEmitter = __webpack_require__(3).EventEmitter; -const StreamDispatcher = __webpack_require__(261); +const PCMConverters = __webpack_require__(293); +const OpusEncoders = __webpack_require__(290); +const EventEmitter = __webpack_require__(5).EventEmitter; +const StreamDispatcher = __webpack_require__(288); /** * Represents the Audio Player of a Voice Connection @@ -50495,10 +51482,10 @@ module.exports = AudioPlayer; /***/ }, -/* 269 */ +/* 296 */ /***/ function(module, exports, __webpack_require__) { -const Readable = __webpack_require__(9).Readable; +const Readable = __webpack_require__(11).Readable; class VoiceReadable extends Readable { constructor() { @@ -50520,12 +51507,12 @@ module.exports = VoiceReadable; /***/ }, -/* 270 */ +/* 297 */ /***/ function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(Buffer) {const EventEmitter = __webpack_require__(3).EventEmitter; -const NaCl = __webpack_require__(116); -const Readable = __webpack_require__(269); +/* WEBPACK VAR INJECTION */(function(Buffer) {const EventEmitter = __webpack_require__(5).EventEmitter; +const NaCl = __webpack_require__(120); +const Readable = __webpack_require__(296); const nonce = new Buffer(24); nonce.fill(0); @@ -50681,7 +51668,7 @@ module.exports = VoiceReceiver; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0).Buffer)) /***/ }, -/* 271 */ +/* 298 */ /***/ function(module, exports) { /** @@ -50703,16 +51690,16 @@ module.exports = SecretKey; /***/ }, -/* 272 */ +/* 299 */ /***/ function(module, exports, __webpack_require__) { const browser = typeof window !== 'undefined'; -const WebSocket = browser ? window.WebSocket : __webpack_require__(119); // eslint-disable-line no-undef -const EventEmitter = __webpack_require__(3).EventEmitter; -const Constants = __webpack_require__(2); -const inflate = browser ? __webpack_require__(247).inflateSync : __webpack_require__(97).inflateSync; -const PacketManager = __webpack_require__(274); -const convertArrayBuffer = __webpack_require__(131); +const WebSocket = browser ? window.WebSocket : __webpack_require__(123); // eslint-disable-line no-undef +const EventEmitter = __webpack_require__(5).EventEmitter; +const Constants = __webpack_require__(1); +const inflate = browser ? __webpack_require__(249).inflateSync : __webpack_require__(101).inflateSync; +const PacketManager = __webpack_require__(300); +const convertArrayBuffer = __webpack_require__(134); /** * The WebSocket Manager of the Client @@ -51010,23 +51997,10 @@ module.exports = WebSocketManager; /***/ }, -/* 273 */ -/***/ function(module, exports) { - -function webpackEmptyContext(req) { - throw new Error("Cannot find module '" + req + "'."); -} -webpackEmptyContext.keys = function() { return []; }; -webpackEmptyContext.resolve = webpackEmptyContext; -module.exports = webpackEmptyContext; -webpackEmptyContext.id = 273; - - -/***/ }, -/* 274 */ +/* 300 */ /***/ function(module, exports, __webpack_require__) { -const Constants = __webpack_require__(2); +const Constants = __webpack_require__(1); const BeforeReadyWhitelist = [ Constants.WSEvents.READY, @@ -51043,47 +52017,46 @@ class WebSocketPacketManager { this.handlers = {}; this.queue = []; - this.register(Constants.WSEvents.READY, 'Ready'); - this.register(Constants.WSEvents.GUILD_CREATE, 'GuildCreate'); - this.register(Constants.WSEvents.GUILD_DELETE, 'GuildDelete'); - this.register(Constants.WSEvents.GUILD_UPDATE, 'GuildUpdate'); - this.register(Constants.WSEvents.GUILD_BAN_ADD, 'GuildBanAdd'); - this.register(Constants.WSEvents.GUILD_BAN_REMOVE, 'GuildBanRemove'); - this.register(Constants.WSEvents.GUILD_MEMBER_ADD, 'GuildMemberAdd'); - this.register(Constants.WSEvents.GUILD_MEMBER_REMOVE, 'GuildMemberRemove'); - this.register(Constants.WSEvents.GUILD_MEMBER_UPDATE, 'GuildMemberUpdate'); - this.register(Constants.WSEvents.GUILD_ROLE_CREATE, 'GuildRoleCreate'); - this.register(Constants.WSEvents.GUILD_ROLE_DELETE, 'GuildRoleDelete'); - this.register(Constants.WSEvents.GUILD_ROLE_UPDATE, 'GuildRoleUpdate'); - this.register(Constants.WSEvents.GUILD_MEMBERS_CHUNK, 'GuildMembersChunk'); - this.register(Constants.WSEvents.CHANNEL_CREATE, 'ChannelCreate'); - this.register(Constants.WSEvents.CHANNEL_DELETE, 'ChannelDelete'); - this.register(Constants.WSEvents.CHANNEL_UPDATE, 'ChannelUpdate'); - this.register(Constants.WSEvents.PRESENCE_UPDATE, 'PresenceUpdate'); - this.register(Constants.WSEvents.USER_UPDATE, 'UserUpdate'); - this.register(Constants.WSEvents.USER_NOTE_UPDATE, 'UserNoteUpdate'); - this.register(Constants.WSEvents.VOICE_STATE_UPDATE, 'VoiceStateUpdate'); - this.register(Constants.WSEvents.TYPING_START, 'TypingStart'); - this.register(Constants.WSEvents.MESSAGE_CREATE, 'MessageCreate'); - this.register(Constants.WSEvents.MESSAGE_DELETE, 'MessageDelete'); - this.register(Constants.WSEvents.MESSAGE_UPDATE, 'MessageUpdate'); - this.register(Constants.WSEvents.VOICE_SERVER_UPDATE, 'VoiceServerUpdate'); - this.register(Constants.WSEvents.MESSAGE_DELETE_BULK, 'MessageDeleteBulk'); - this.register(Constants.WSEvents.CHANNEL_PINS_UPDATE, 'ChannelPinsUpdate'); - this.register(Constants.WSEvents.GUILD_SYNC, 'GuildSync'); - this.register(Constants.WSEvents.RELATIONSHIP_ADD, 'RelationshipAdd'); - this.register(Constants.WSEvents.RELATIONSHIP_REMOVE, 'RelationshipRemove'); - this.register(Constants.WSEvents.MESSAGE_REACTION_ADD, 'MessageReactionAdd'); - this.register(Constants.WSEvents.MESSAGE_REACTION_REMOVE, 'MessageReactionRemove'); - this.register(Constants.WSEvents.MESSAGE_REACTION_REMOVE_ALL, 'MessageReactionRemoveAll'); + this.register(Constants.WSEvents.READY, __webpack_require__(326)); + this.register(Constants.WSEvents.GUILD_CREATE, __webpack_require__(307)); + this.register(Constants.WSEvents.GUILD_DELETE, __webpack_require__(308)); + this.register(Constants.WSEvents.GUILD_UPDATE, __webpack_require__(317)); + this.register(Constants.WSEvents.GUILD_BAN_ADD, __webpack_require__(305)); + this.register(Constants.WSEvents.GUILD_BAN_REMOVE, __webpack_require__(306)); + this.register(Constants.WSEvents.GUILD_MEMBER_ADD, __webpack_require__(309)); + this.register(Constants.WSEvents.GUILD_MEMBER_REMOVE, __webpack_require__(310)); + this.register(Constants.WSEvents.GUILD_MEMBER_UPDATE, __webpack_require__(311)); + this.register(Constants.WSEvents.GUILD_ROLE_CREATE, __webpack_require__(313)); + this.register(Constants.WSEvents.GUILD_ROLE_DELETE, __webpack_require__(314)); + this.register(Constants.WSEvents.GUILD_ROLE_UPDATE, __webpack_require__(315)); + this.register(Constants.WSEvents.GUILD_MEMBERS_CHUNK, __webpack_require__(312)); + this.register(Constants.WSEvents.CHANNEL_CREATE, __webpack_require__(301)); + this.register(Constants.WSEvents.CHANNEL_DELETE, __webpack_require__(302)); + this.register(Constants.WSEvents.CHANNEL_UPDATE, __webpack_require__(304)); + this.register(Constants.WSEvents.CHANNEL_PINS_UPDATE, __webpack_require__(303)); + this.register(Constants.WSEvents.PRESENCE_UPDATE, __webpack_require__(325)); + this.register(Constants.WSEvents.USER_UPDATE, __webpack_require__(331)); + this.register(Constants.WSEvents.USER_NOTE_UPDATE, __webpack_require__(330)); + this.register(Constants.WSEvents.VOICE_STATE_UPDATE, __webpack_require__(333)); + this.register(Constants.WSEvents.TYPING_START, __webpack_require__(329)); + this.register(Constants.WSEvents.MESSAGE_CREATE, __webpack_require__(318)); + this.register(Constants.WSEvents.MESSAGE_DELETE, __webpack_require__(319)); + this.register(Constants.WSEvents.MESSAGE_UPDATE, __webpack_require__(324)); + this.register(Constants.WSEvents.MESSAGE_DELETE_BULK, __webpack_require__(320)); + this.register(Constants.WSEvents.VOICE_SERVER_UPDATE, __webpack_require__(332)); + this.register(Constants.WSEvents.GUILD_SYNC, __webpack_require__(316)); + this.register(Constants.WSEvents.RELATIONSHIP_ADD, __webpack_require__(327)); + this.register(Constants.WSEvents.RELATIONSHIP_REMOVE, __webpack_require__(328)); + this.register(Constants.WSEvents.MESSAGE_REACTION_ADD, __webpack_require__(321)); + this.register(Constants.WSEvents.MESSAGE_REACTION_REMOVE, __webpack_require__(322)); + this.register(Constants.WSEvents.MESSAGE_REACTION_REMOVE_ALL, __webpack_require__(323)); } get client() { return this.ws.client; } - register(event, handle) { - const Handler = !(function webpackMissingModule() { var e = new Error("Cannot find module \".\""); e.code = 'MODULE_NOT_FOUND'; throw e; }()); + register(event, Handler) { this.handlers[event] = new Handler(this); } @@ -51138,7 +52111,934 @@ module.exports = WebSocketPacketManager; /***/ }, -/* 275 */ +/* 301 */ +/***/ function(module, exports, __webpack_require__) { + +const AbstractHandler = __webpack_require__(3); + +class ChannelCreateHandler extends AbstractHandler { + handle(packet) { + const client = this.packetManager.client; + const data = packet.d; + client.actions.ChannelCreate.handle(data); + } +} + +/** + * Emitted whenever a channel is created. + * @event Client#channelCreate + * @param {Channel} channel The channel that was created + */ + +module.exports = ChannelCreateHandler; + + +/***/ }, +/* 302 */ +/***/ function(module, exports, __webpack_require__) { + +const AbstractHandler = __webpack_require__(3); + +const Constants = __webpack_require__(1); + +class ChannelDeleteHandler extends AbstractHandler { + handle(packet) { + const client = this.packetManager.client; + const data = packet.d; + const response = client.actions.ChannelDelete.handle(data); + if (response.channel) client.emit(Constants.Events.CHANNEL_DELETE, response.channel); + } +} + +/** + * Emitted whenever a channel is deleted. + * @event Client#channelDelete + * @param {Channel} channel The channel that was deleted + */ + +module.exports = ChannelDeleteHandler; + + +/***/ }, +/* 303 */ +/***/ function(module, exports, __webpack_require__) { + +const AbstractHandler = __webpack_require__(3); +const Constants = __webpack_require__(1); + +/* +{ t: 'CHANNEL_PINS_UPDATE', + s: 666, + op: 0, + d: + { last_pin_timestamp: '2016-08-28T17:37:13.171774+00:00', + channel_id: '314866471639044027' } } +*/ + +class ChannelPinsUpdate extends AbstractHandler { + handle(packet) { + const client = this.packetManager.client; + const data = packet.d; + const channel = client.channels.get(data.channel_id); + const time = new Date(data.last_pin_timestamp); + if (channel && time) client.emit(Constants.Events.CHANNEL_PINS_UPDATE, channel, time); + } +} + +/** + * Emitted whenever the pins of a channel are updated. Due to the nature of the WebSocket event, not much information + * can be provided easily here - you need to manually check the pins yourself. + * @event Client#channelPinsUpdate + * @param {Channel} channel The channel that the pins update occured in + * @param {Date} time The time of the pins update + */ + +module.exports = ChannelPinsUpdate; + + +/***/ }, +/* 304 */ +/***/ function(module, exports, __webpack_require__) { + +const AbstractHandler = __webpack_require__(3); + +class ChannelUpdateHandler extends AbstractHandler { + handle(packet) { + const client = this.packetManager.client; + const data = packet.d; + client.actions.ChannelUpdate.handle(data); + } +} + +module.exports = ChannelUpdateHandler; + + +/***/ }, +/* 305 */ +/***/ function(module, exports, __webpack_require__) { + +// ##untested handler## + +const AbstractHandler = __webpack_require__(3); +const Constants = __webpack_require__(1); + +class GuildBanAddHandler extends AbstractHandler { + handle(packet) { + const client = this.packetManager.client; + const data = packet.d; + const guild = client.guilds.get(data.guild_id); + const user = client.users.get(data.user.id); + if (guild && user) client.emit(Constants.Events.GUILD_BAN_ADD, guild, user); + } +} + +/** + * Emitted whenever a member is banned from a guild. + * @event Client#guildBanAdd + * @param {Guild} guild The guild that the ban occurred in + * @param {User} user The user that was banned + */ + +module.exports = GuildBanAddHandler; + + +/***/ }, +/* 306 */ +/***/ function(module, exports, __webpack_require__) { + +// ##untested handler## + +const AbstractHandler = __webpack_require__(3); + +class GuildBanRemoveHandler extends AbstractHandler { + handle(packet) { + const client = this.packetManager.client; + const data = packet.d; + client.actions.GuildBanRemove.handle(data); + } +} + +/** + * Emitted whenever a member is unbanned from a guild. + * @event Client#guildBanRemove + * @param {Guild} guild The guild that the unban occurred in + * @param {User} user The user that was unbanned + */ + +module.exports = GuildBanRemoveHandler; + + +/***/ }, +/* 307 */ +/***/ function(module, exports, __webpack_require__) { + +const AbstractHandler = __webpack_require__(3); + +class GuildCreateHandler extends AbstractHandler { + handle(packet) { + const client = this.packetManager.client; + const data = packet.d; + + const guild = client.guilds.get(data.id); + if (guild) { + if (!guild.available && !data.unavailable) { + // a newly available guild + guild.setup(data); + this.packetManager.ws.checkIfReady(); + } + } else { + // a new guild + client.dataManager.newGuild(data); + } + } +} + +module.exports = GuildCreateHandler; + + +/***/ }, +/* 308 */ +/***/ function(module, exports, __webpack_require__) { + +const AbstractHandler = __webpack_require__(3); +const Constants = __webpack_require__(1); + +class GuildDeleteHandler extends AbstractHandler { + handle(packet) { + const client = this.packetManager.client; + const data = packet.d; + const response = client.actions.GuildDelete.handle(data); + if (response.guild) client.emit(Constants.Events.GUILD_DELETE, response.guild); + } +} + +/** + * Emitted whenever a guild is deleted/left. + * @event Client#guildDelete + * @param {Guild} guild The guild that was deleted + */ + +module.exports = GuildDeleteHandler; + + +/***/ }, +/* 309 */ +/***/ function(module, exports, __webpack_require__) { + +// ##untested handler## + +const AbstractHandler = __webpack_require__(3); + +class GuildMemberAddHandler extends AbstractHandler { + handle(packet) { + const client = this.packetManager.client; + const data = packet.d; + const guild = client.guilds.get(data.guild_id); + if (guild) { + guild.memberCount++; + guild._addMember(data); + } + } +} + +module.exports = GuildMemberAddHandler; + + +/***/ }, +/* 310 */ +/***/ function(module, exports, __webpack_require__) { + +// ##untested handler## + +const AbstractHandler = __webpack_require__(3); + +class GuildMemberRemoveHandler extends AbstractHandler { + handle(packet) { + const client = this.packetManager.client; + const data = packet.d; + client.actions.GuildMemberRemove.handle(data); + } +} + +module.exports = GuildMemberRemoveHandler; + + +/***/ }, +/* 311 */ +/***/ function(module, exports, __webpack_require__) { + +// ##untested handler## + +const AbstractHandler = __webpack_require__(3); + +class GuildMemberUpdateHandler extends AbstractHandler { + handle(packet) { + const client = this.packetManager.client; + const data = packet.d; + + const guild = client.guilds.get(data.guild_id); + if (guild) { + const member = guild.members.get(data.user.id); + if (member) guild._updateMember(member, data); + } + } +} + +module.exports = GuildMemberUpdateHandler; + + +/***/ }, +/* 312 */ +/***/ function(module, exports, __webpack_require__) { + +// ##untested## + +const AbstractHandler = __webpack_require__(3); +const Constants = __webpack_require__(1); + +class GuildMembersChunkHandler extends AbstractHandler { + handle(packet) { + const client = this.packetManager.client; + const data = packet.d; + const guild = client.guilds.get(data.guild_id); + const members = []; + + if (guild) { + for (const member of data.members) members.push(guild._addMember(member, false)); + } + + guild._checkChunks(); + client.emit(Constants.Events.GUILD_MEMBERS_CHUNK, members); + } +} + +/** + * Emitted whenever a chunk of guild members is received (all members come from the same guild) + * @event Client#guildMembersChunk + * @param {GuildMember[]} members The members in the chunk + */ + +module.exports = GuildMembersChunkHandler; + + +/***/ }, +/* 313 */ +/***/ function(module, exports, __webpack_require__) { + +const AbstractHandler = __webpack_require__(3); + +class GuildRoleCreateHandler extends AbstractHandler { + handle(packet) { + const client = this.packetManager.client; + const data = packet.d; + client.actions.GuildRoleCreate.handle(data); + } +} + +module.exports = GuildRoleCreateHandler; + + +/***/ }, +/* 314 */ +/***/ function(module, exports, __webpack_require__) { + +const AbstractHandler = __webpack_require__(3); + +class GuildRoleDeleteHandler extends AbstractHandler { + handle(packet) { + const client = this.packetManager.client; + const data = packet.d; + client.actions.GuildRoleDelete.handle(data); + } +} + +module.exports = GuildRoleDeleteHandler; + + +/***/ }, +/* 315 */ +/***/ function(module, exports, __webpack_require__) { + +const AbstractHandler = __webpack_require__(3); + +class GuildRoleUpdateHandler extends AbstractHandler { + handle(packet) { + const client = this.packetManager.client; + const data = packet.d; + client.actions.GuildRoleUpdate.handle(data); + } +} + +module.exports = GuildRoleUpdateHandler; + + +/***/ }, +/* 316 */ +/***/ function(module, exports, __webpack_require__) { + +const AbstractHandler = __webpack_require__(3); + +class GuildSyncHandler extends AbstractHandler { + handle(packet) { + const client = this.packetManager.client; + const data = packet.d; + client.actions.GuildSync.handle(data); + } +} + +module.exports = GuildSyncHandler; + + +/***/ }, +/* 317 */ +/***/ function(module, exports, __webpack_require__) { + +const AbstractHandler = __webpack_require__(3); + +class GuildUpdateHandler extends AbstractHandler { + handle(packet) { + const client = this.packetManager.client; + const data = packet.d; + client.actions.GuildUpdate.handle(data); + } +} + +module.exports = GuildUpdateHandler; + + +/***/ }, +/* 318 */ +/***/ function(module, exports, __webpack_require__) { + +const AbstractHandler = __webpack_require__(3); +const Constants = __webpack_require__(1); + +class MessageCreateHandler extends AbstractHandler { + handle(packet) { + const client = this.packetManager.client; + const data = packet.d; + const response = client.actions.MessageCreate.handle(data); + if (response.message) client.emit(Constants.Events.MESSAGE_CREATE, response.message); + } +} + +/** + * Emitted whenever a message is created + * @event Client#message + * @param {Message} message The created message + */ + +module.exports = MessageCreateHandler; + + +/***/ }, +/* 319 */ +/***/ function(module, exports, __webpack_require__) { + +const AbstractHandler = __webpack_require__(3); +const Constants = __webpack_require__(1); + +class MessageDeleteHandler extends AbstractHandler { + handle(packet) { + const client = this.packetManager.client; + const data = packet.d; + const response = client.actions.MessageDelete.handle(data); + if (response.message) client.emit(Constants.Events.MESSAGE_DELETE, response.message); + } +} + +/** + * Emitted whenever a message is deleted + * @event Client#messageDelete + * @param {Message} message The deleted message + */ + +module.exports = MessageDeleteHandler; + + +/***/ }, +/* 320 */ +/***/ function(module, exports, __webpack_require__) { + +const AbstractHandler = __webpack_require__(3); + +class MessageDeleteBulkHandler extends AbstractHandler { + handle(packet) { + const client = this.packetManager.client; + const data = packet.d; + client.actions.MessageDeleteBulk.handle(data); + } +} + +/** + * Emitted whenever messages are deleted in bulk + * @event Client#messageDeleteBulk + * @param {Collection} messages The deleted messages, mapped by their ID + */ + +module.exports = MessageDeleteBulkHandler; + + +/***/ }, +/* 321 */ +/***/ function(module, exports, __webpack_require__) { + +const AbstractHandler = __webpack_require__(3); + +class MessageReactionAddHandler extends AbstractHandler { + handle(packet) { + const client = this.packetManager.client; + const data = packet.d; + client.actions.MessageReactionAdd.handle(data); + } +} + +module.exports = MessageReactionAddHandler; + + +/***/ }, +/* 322 */ +/***/ function(module, exports, __webpack_require__) { + +const AbstractHandler = __webpack_require__(3); + +class MessageReactionRemove extends AbstractHandler { + handle(packet) { + const client = this.packetManager.client; + const data = packet.d; + client.actions.MessageReactionRemove.handle(data); + } +} + +module.exports = MessageReactionRemove; + + +/***/ }, +/* 323 */ +/***/ function(module, exports, __webpack_require__) { + +const AbstractHandler = __webpack_require__(3); + +class MessageReactionRemoveAll extends AbstractHandler { + handle(packet) { + const client = this.packetManager.client; + const data = packet.d; + client.actions.MessageReactionRemoveAll.handle(data); + } +} + +module.exports = MessageReactionRemoveAll; + + +/***/ }, +/* 324 */ +/***/ function(module, exports, __webpack_require__) { + +const AbstractHandler = __webpack_require__(3); + +class MessageUpdateHandler extends AbstractHandler { + handle(packet) { + const client = this.packetManager.client; + const data = packet.d; + client.actions.MessageUpdate.handle(data); + } +} + +module.exports = MessageUpdateHandler; + + +/***/ }, +/* 325 */ +/***/ function(module, exports, __webpack_require__) { + +const AbstractHandler = __webpack_require__(3); +const Constants = __webpack_require__(1); +const cloneObject = __webpack_require__(13); + +class PresenceUpdateHandler extends AbstractHandler { + handle(packet) { + const client = this.packetManager.client; + const data = packet.d; + let user = client.users.get(data.user.id); + const guild = client.guilds.get(data.guild_id); + + // step 1 + if (!user) { + if (data.user.username) { + user = client.dataManager.newUser(data.user); + } else { + return; + } + } + + const oldUser = cloneObject(user); + user.patch(data.user); + if (!user.equals(oldUser)) { + client.emit(Constants.Events.USER_UPDATE, oldUser, user); + } + + if (guild) { + let member = guild.members.get(user.id); + if (!member && data.status !== 'offline') { + member = guild._addMember({ + user, + roles: data.roles, + deaf: false, + mute: false, + }, false); + client.emit(Constants.Events.GUILD_MEMBER_AVAILABLE, member); + } + if (member) { + const oldMember = cloneObject(member); + if (member.presence) { + oldMember.frozenPresence = cloneObject(member.presence); + } + guild._setPresence(user.id, data); + client.emit(Constants.Events.PRESENCE_UPDATE, oldMember, member); + } else { + guild._setPresence(user.id, data); + } + } + } +} + +/** + * Emitted whenever a guild member's presence changes, or they change one of their details. + * @event Client#presenceUpdate + * @param {GuildMember} oldMember The member before the presence update + * @param {GuildMember} newMember The member after the presence update + */ + +/** + * Emitted whenever a user's details (e.g. username) are changed. + * @event Client#userUpdate + * @param {User} oldUser The user before the update + * @param {User} newUser The user after the update + */ + +/** + * Emitted whenever a member becomes available in a large guild + * @event Client#guildMemberAvailable + * @param {GuildMember} member The member that became available + */ + +module.exports = PresenceUpdateHandler; + + +/***/ }, +/* 326 */ +/***/ function(module, exports, __webpack_require__) { + +const AbstractHandler = __webpack_require__(3); + +const ClientUser = __webpack_require__(68); + +class ReadyHandler extends AbstractHandler { + handle(packet) { + const client = this.packetManager.client; + const data = packet.d; + + const clientUser = new ClientUser(client, data.user); + client.user = clientUser; + client.readyAt = new Date(); + client.users.set(clientUser.id, clientUser); + + for (const guild of data.guilds) client.dataManager.newGuild(guild); + for (const privateDM of data.private_channels) client.dataManager.newChannel(privateDM); + + for (const relation of data.relationships) { + const user = client.dataManager.newUser(relation.user); + if (relation.type === 1) { + client.user.friends.set(user.id, user); + } else if (relation.type === 2) { + client.user.blocked.set(user.id, user); + } + } + + data.presences = data.presences || []; + for (const presence of data.presences) { + client.dataManager.newUser(presence.user); + client._setPresence(presence.user.id, presence); + } + + if (data.notes) { + for (const user in data.notes) { + let note = data.notes[user]; + if (!note.length) note = null; + + client.user.notes.set(user, note); + } + } + + if (!client.user.bot && client.options.sync) client.setInterval(client.syncGuilds.bind(client), 30000); + client.once('ready', client.syncGuilds.bind(client)); + + if (!client.users.has('1')) { + client.dataManager.newUser({ + id: '1', + username: 'Clyde', + discriminator: '0000', + avatar: 'https://discordapp.com/assets/f78426a064bc9dd24847519259bc42af.png', + bot: true, + status: 'online', + game: null, + verified: true, + }); + } + + client.setTimeout(() => { + if (!client.ws.normalReady) client.ws._emitReady(false); + }, 1200 * data.guilds.length); + + this.packetManager.ws.sessionID = data.session_id; + this.packetManager.ws.checkIfReady(); + } +} + +module.exports = ReadyHandler; + + +/***/ }, +/* 327 */ +/***/ function(module, exports, __webpack_require__) { + +const AbstractHandler = __webpack_require__(3); + +class RelationshipAddHandler extends AbstractHandler { + handle(packet) { + const client = this.packetManager.client; + const data = packet.d; + if (data.type === 1) { + client.fetchUser(data.id).then(user => { + client.user.friends.set(user.id, user); + }); + } else if (data.type === 2) { + client.fetchUser(data.id).then(user => { + client.user.blocked.set(user.id, user); + }); + } + } +} + +module.exports = RelationshipAddHandler; + + +/***/ }, +/* 328 */ +/***/ function(module, exports, __webpack_require__) { + +const AbstractHandler = __webpack_require__(3); + +class RelationshipRemoveHandler extends AbstractHandler { + handle(packet) { + const client = this.packetManager.client; + const data = packet.d; + if (data.type === 2) { + if (client.user.blocked.has(data.id)) { + client.user.blocked.delete(data.id); + } + } else if (data.type === 1) { + if (client.user.friends.has(data.id)) { + client.user.friends.delete(data.id); + } + } + } +} + +module.exports = RelationshipRemoveHandler; + + +/***/ }, +/* 329 */ +/***/ function(module, exports, __webpack_require__) { + +const AbstractHandler = __webpack_require__(3); +const Constants = __webpack_require__(1); + +class TypingStartHandler extends AbstractHandler { + handle(packet) { + const client = this.packetManager.client; + const data = packet.d; + const channel = client.channels.get(data.channel_id); + const user = client.users.get(data.user_id); + const timestamp = new Date(data.timestamp * 1000); + + if (channel && user) { + if (channel.type === 'voice') { + client.emit(Constants.Events.WARN, `Discord sent a typing packet to voice channel ${channel.id}`); + return; + } + if (channel._typing.has(user.id)) { + const typing = channel._typing.get(user.id); + typing.lastTimestamp = timestamp; + typing.resetTimeout(tooLate(channel, user)); + } else { + channel._typing.set(user.id, new TypingData(client, timestamp, timestamp, tooLate(channel, user))); + client.emit(Constants.Events.TYPING_START, channel, user); + } + } + } +} + +class TypingData { + constructor(client, since, lastTimestamp, _timeout) { + this.client = client; + this.since = since; + this.lastTimestamp = lastTimestamp; + this._timeout = _timeout; + } + + resetTimeout(_timeout) { + this.client.clearTimeout(this._timeout); + this._timeout = _timeout; + } + + get elapsedTime() { + return Date.now() - this.since; + } +} + +function tooLate(channel, user) { + return channel.client.setTimeout(() => { + channel.client.emit(Constants.Events.TYPING_STOP, channel, user, channel._typing.get(user.id)); + channel._typing.delete(user.id); + }, 6000); +} + +/** + * Emitted whenever a user starts typing in a channel + * @event Client#typingStart + * @param {Channel} channel The channel the user started typing in + * @param {User} user The user that started typing + */ + +/** + * Emitted whenever a user stops typing in a channel + * @event Client#typingStop + * @param {Channel} channel The channel the user stopped typing in + * @param {User} user The user that stopped typing + */ + +module.exports = TypingStartHandler; + + +/***/ }, +/* 330 */ +/***/ function(module, exports, __webpack_require__) { + +const AbstractHandler = __webpack_require__(3); + +class UserNoteUpdateHandler extends AbstractHandler { + handle(packet) { + const client = this.packetManager.client; + const data = packet.d; + + client.actions.UserNoteUpdate.handle(data); + } +} + +module.exports = UserNoteUpdateHandler; + + +/***/ }, +/* 331 */ +/***/ function(module, exports, __webpack_require__) { + +const AbstractHandler = __webpack_require__(3); + +class UserUpdateHandler extends AbstractHandler { + handle(packet) { + const client = this.packetManager.client; + const data = packet.d; + client.actions.UserUpdate.handle(data); + } +} + +module.exports = UserUpdateHandler; + + +/***/ }, +/* 332 */ +/***/ function(module, exports, __webpack_require__) { + +const AbstractHandler = __webpack_require__(3); + +/* +{ + "token": "my_token", + "guild_id": "41771983423143937", + "endpoint": "smart.loyal.discord.gg" +} +*/ + +class VoiceServerUpdate extends AbstractHandler { + handle(packet) { + const client = this.packetManager.client; + const data = packet.d; + client.emit('self.voiceServer', data); + } +} + +module.exports = VoiceServerUpdate; + + +/***/ }, +/* 333 */ +/***/ function(module, exports, __webpack_require__) { + +const AbstractHandler = __webpack_require__(3); + +const Constants = __webpack_require__(1); +const cloneObject = __webpack_require__(13); + +class VoiceStateUpdateHandler extends AbstractHandler { + handle(packet) { + const client = this.packetManager.client; + const data = packet.d; + + const guild = client.guilds.get(data.guild_id); + if (guild) { + const member = guild.members.get(data.user_id); + if (member) { + const oldVoiceChannelMember = cloneObject(member); + if (member.voiceChannel && member.voiceChannel.id !== data.channel_id) { + member.voiceChannel.members.delete(oldVoiceChannelMember.id); + } + + // if the member left the voice channel, unset their speaking property + if (!data.channel_id) member.speaking = null; + + if (member.user.id === client.user.id && data.channel_id) { + client.emit('self.voiceStateUpdate', data); + } + + const newChannel = client.channels.get(data.channel_id); + if (newChannel) newChannel.members.set(member.user.id, member); + + member.serverMute = data.mute; + member.serverDeaf = data.deaf; + member.selfMute = data.self_mute; + member.selfDeaf = data.self_deaf; + member.voiceSessionID = data.session_id; + member.voiceChannelID = data.channel_id; + client.emit(Constants.Events.VOICE_STATE_UPDATE, oldVoiceChannelMember, member); + } + } + } +} + +/** + * Emitted whenever a user changes voice state - e.g. joins/leaves a channel, mutes/unmutes. + * @event Client#voiceStateUpdate + * @param {GuildMember} oldMember The member before the voice state update + * @param {GuildMember} newMember The member after the voice state update + */ + +module.exports = VoiceStateUpdateHandler; + + +/***/ }, +/* 334 */ /***/ function(module, exports) { /** @@ -51192,11 +53092,11 @@ module.exports = UserConnection; /***/ }, -/* 276 */ +/* 335 */ /***/ function(module, exports, __webpack_require__) { const Collection = __webpack_require__(6); -const UserConnection = __webpack_require__(275); +const UserConnection = __webpack_require__(334); /** * Represents a user's profile on Discord. @@ -51247,7 +53147,7 @@ module.exports = UserProfile; /***/ }, -/* 277 */ +/* 336 */ /***/ function(module, exports) { module.exports = function parseEmoji(text) { @@ -51267,69 +53167,69 @@ module.exports = function parseEmoji(text) { /***/ }, -/* 278 */ +/* 337 */ /***/ function(module, exports) { /* (ignored) */ /***/ }, -/* 279 */ +/* 338 */ /***/ function(module, exports) { /* (ignored) */ /***/ }, -/* 280 */ +/* 339 */ /***/ function(module, exports) { /* (ignored) */ /***/ }, -/* 281 */ +/* 340 */ /***/ function(module, exports, __webpack_require__) { module.exports = { - Client: __webpack_require__(134), - WebhookClient: __webpack_require__(135), - Shard: __webpack_require__(62), - ShardClientUtil: __webpack_require__(63), - ShardingManager: __webpack_require__(136), + Client: __webpack_require__(137), + WebhookClient: __webpack_require__(138), + Shard: __webpack_require__(65), + ShardClientUtil: __webpack_require__(66), + ShardingManager: __webpack_require__(139), Collection: __webpack_require__(6), - splitMessage: __webpack_require__(79), - escapeMarkdown: __webpack_require__(31), - fetchRecommendedShards: __webpack_require__(78), + splitMessage: __webpack_require__(83), + escapeMarkdown: __webpack_require__(35), + fetchRecommendedShards: __webpack_require__(82), - Channel: __webpack_require__(20), - ClientOAuth2Application: __webpack_require__(64), - ClientUser: __webpack_require__(137), - DMChannel: __webpack_require__(65), - Emoji: __webpack_require__(21), - EvaluatedPermissions: __webpack_require__(42), - Game: __webpack_require__(12).Game, - GroupDMChannel: __webpack_require__(66), - Guild: __webpack_require__(43), - GuildChannel: __webpack_require__(29), - GuildMember: __webpack_require__(30), - Invite: __webpack_require__(67), - Message: __webpack_require__(44), - MessageAttachment: __webpack_require__(68), - MessageCollector: __webpack_require__(69), - MessageEmbed: __webpack_require__(70), - MessageReaction: __webpack_require__(71), - OAuth2Application: __webpack_require__(72), - PartialGuild: __webpack_require__(73), - PartialGuildChannel: __webpack_require__(74), - PermissionOverwrites: __webpack_require__(75), - Presence: __webpack_require__(12).Presence, - ReactionEmoji: __webpack_require__(45), - Role: __webpack_require__(22), - TextChannel: __webpack_require__(76), - User: __webpack_require__(11), - VoiceChannel: __webpack_require__(77), - Webhook: __webpack_require__(46), + Channel: __webpack_require__(24), + ClientOAuth2Application: __webpack_require__(67), + ClientUser: __webpack_require__(68), + DMChannel: __webpack_require__(69), + Emoji: __webpack_require__(25), + EvaluatedPermissions: __webpack_require__(46), + Game: __webpack_require__(15).Game, + GroupDMChannel: __webpack_require__(70), + Guild: __webpack_require__(47), + GuildChannel: __webpack_require__(32), + GuildMember: __webpack_require__(33), + Invite: __webpack_require__(71), + Message: __webpack_require__(34), + MessageAttachment: __webpack_require__(72), + MessageCollector: __webpack_require__(73), + MessageEmbed: __webpack_require__(74), + MessageReaction: __webpack_require__(75), + OAuth2Application: __webpack_require__(76), + PartialGuild: __webpack_require__(77), + PartialGuildChannel: __webpack_require__(78), + PermissionOverwrites: __webpack_require__(79), + Presence: __webpack_require__(15).Presence, + ReactionEmoji: __webpack_require__(48), + Role: __webpack_require__(20), + TextChannel: __webpack_require__(80), + User: __webpack_require__(14), + VoiceChannel: __webpack_require__(81), + Webhook: __webpack_require__(49), - version: __webpack_require__(61).version, + version: __webpack_require__(64).version, }; if (typeof window !== 'undefined') window.Discord = module.exports; // eslint-disable-line no-undef diff --git a/discord.indev.min.js b/discord.indev.min.js index 5decaac8..da15dc13 100644 --- a/discord.indev.min.js +++ b/discord.indev.min.js @@ -1,65 +1,63 @@ -!function(e){function t(r){if(i[r])return i[r].exports;var n=i[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,t),n.l=!0,n.exports}var i={};return t.m=e,t.c=i,t.i=function(e){return e},t.d=function(e,t,i){Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:i})},t.n=function(e){var i=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(i,"a",i),i},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=281)}([function(e,t,i){"use strict";(function(e,r){function n(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}function s(){return e.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(t,i){if(s()=s())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s().toString(16)+" bytes");return 0|e}function m(t){return+t!=t&&(t=0),e.alloc(+t)}function w(t,i){if(e.isBuffer(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var r=t.length;if(0===r)return 0;for(var n=!1;;)switch(i){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return V(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return Z(t).length;default:if(n)return V(t).length;i=(""+i).toLowerCase(),n=!0}}function g(e,t,i){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===i||i>this.length)&&(i=this.length),i<=0)return"";if(i>>>=0,t>>>=0,i<=t)return"";for(e||(e="utf8");;)switch(e){case"hex":return O(this,t,i);case"utf8":case"utf-8":return x(this,t,i);case"ascii":return I(this,t,i);case"latin1":case"binary":return P(this,t,i);case"base64":return R(this,t,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return N(this,t,i);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function v(e,t,i){var r=e[t];e[t]=e[i],e[i]=r}function _(t,i,r,n,s){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=s?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(s)return-1;r=t.length-1}else if(r<0){if(!s)return-1;r=0}if("string"==typeof i&&(i=e.from(i,n)),e.isBuffer(i))return 0===i.length?-1:y(t,i,r,n,s);if("number"==typeof i)return i&=255,e.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?s?Uint8Array.prototype.indexOf.call(t,i,r):Uint8Array.prototype.lastIndexOf.call(t,i,r):y(t,[i],r,n,s);throw new TypeError("val must be string, number or Buffer")}function y(e,t,i,r,n){function s(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}var a=1,o=e.length,f=t.length;if(void 0!==r&&(r=String(r).toLowerCase(),"ucs2"===r||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,o/=2,f/=2,i/=2}var h;if(n){var c=-1;for(h=i;ho&&(i=o-f),h=i;h>=0;h--){for(var l=!0,u=0;un&&(r=n)):r=n;var s=t.length;if(s%2!==0)throw new TypeError("Invalid hex string");r>s/2&&(r=s/2);for(var a=0;a239?4:s>223?3:s>191?2:1;if(n+o<=i){var f,h,c,l;switch(o){case 1:s<128&&(a=s);break;case 2:f=e[n+1],128===(192&f)&&(l=(31&s)<<6|63&f,l>127&&(a=l));break;case 3:f=e[n+1],h=e[n+2],128===(192&f)&&128===(192&h)&&(l=(15&s)<<12|(63&f)<<6|63&h,l>2047&&(l<55296||l>57343)&&(a=l));break;case 4:f=e[n+1],h=e[n+2],c=e[n+3],128===(192&f)&&128===(192&h)&&128===(192&c)&&(l=(15&s)<<18|(63&f)<<12|(63&h)<<6|63&c,l>65535&&l<1114112&&(a=l))}}null===a?(a=65533,o=1):a>65535&&(a-=65536,r.push(a>>>10&1023|55296),a=56320|1023&a),r.push(a),n+=o}return C(r)}function C(e){var t=e.length;if(t<=ee)return String.fromCharCode.apply(String,e);for(var i="",r=0;rr)&&(i=r);for(var n="",s=t;si)throw new RangeError("Trying to access beyond buffer length")}function L(t,i,r,n,s,a){if(!e.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(i>s||it.length)throw new RangeError("Index out of range")}function B(e,t,i,r){t<0&&(t=65535+t+1);for(var n=0,s=Math.min(e.length-i,2);n>>8*(r?n:1-n)}function U(e,t,i,r){t<0&&(t=4294967295+t+1);for(var n=0,s=Math.min(e.length-i,4);n>>8*(r?n:3-n)&255}function j(e,t,i,r,n,s){if(i+r>e.length)throw new RangeError("Index out of range");if(i<0)throw new RangeError("Index out of range")}function F(e,t,i,r,n){return n||j(e,t,i,4,3.4028234663852886e38,-3.4028234663852886e38),J.write(e,t,i,r,23,4),i+4}function z(e,t,i,r,n){return n||j(e,t,i,8,1.7976931348623157e308,-1.7976931348623157e308),J.write(e,t,i,r,52,8),i+8}function q(e){if(e=H(e).replace(te,""),e.length<2)return"";for(;e.length%4!==0;)e+="=";return e}function H(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function G(e){return e<16?"0"+e.toString(16):e.toString(16)}function V(e,t){t=t||1/0;for(var i,r=e.length,n=null,s=[],a=0;a55295&&i<57344){if(!n){if(i>56319){(t-=3)>-1&&s.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&s.push(239,191,189);continue}n=i;continue}if(i<56320){(t-=3)>-1&&s.push(239,191,189),n=i;continue}i=(n-55296<<10|i-56320)+65536}else n&&(t-=3)>-1&&s.push(239,191,189);if(n=null,i<128){if((t-=1)<0)break;s.push(i)}else if(i<2048){if((t-=2)<0)break;s.push(i>>6|192,63&i|128)}else if(i<65536){if((t-=3)<0)break;s.push(i>>12|224,i>>6&63|128,63&i|128)}else{if(!(i<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;s.push(i>>18|240,i>>12&63|128,i>>6&63|128,63&i|128)}}return s}function W(e){for(var t=[],i=0;i>8,n=i%256,s.push(n),s.push(r);return s}function Z(e){return X.toByteArray(q(e))}function Y(e,t,i,r){for(var n=0;n=t.length||n>=e.length);++n)t[n+i]=e[n];return n}function $(e){return e!==e}var X=i(148),J=i(198),Q=i(102);t.Buffer=e,t.SlowBuffer=m,t.INSPECT_MAX_BYTES=50,e.TYPED_ARRAY_SUPPORT=void 0!==r.TYPED_ARRAY_SUPPORT?r.TYPED_ARRAY_SUPPORT:n(),t.kMaxLength=s(),e.poolSize=8192,e._augment=function(t){return t.__proto__=e.prototype,t},e.from=function(e,t,i){return o(null,e,t,i)},e.TYPED_ARRAY_SUPPORT&&(e.prototype.__proto__=Uint8Array.prototype,e.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&e[Symbol.species]===e&&Object.defineProperty(e,Symbol.species,{value:null,configurable:!0})),e.alloc=function(e,t,i){return h(null,e,t,i)},e.allocUnsafe=function(e){return c(null,e)},e.allocUnsafeSlow=function(e){return c(null,e)},e.isBuffer=function(e){return!(null==e||!e._isBuffer)},e.compare=function(t,i){if(!e.isBuffer(t)||!e.isBuffer(i))throw new TypeError("Arguments must be Buffers");if(t===i)return 0;for(var r=t.length,n=i.length,s=0,a=Math.min(r,n);s0&&(e=this.toString("hex",0,i).match(/.{2}/g).join(" "),this.length>i&&(e+=" ... ")),""},e.prototype.compare=function(t,i,r,n,s){if(!e.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===i&&(i=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===s&&(s=this.length),i<0||r>t.length||n<0||s>this.length)throw new RangeError("out of range index");if(n>=s&&i>=r)return 0;if(n>=s)return-1;if(i>=r)return 1;if(i>>>=0,r>>>=0,n>>>=0,s>>>=0,this===t)return 0;for(var a=s-n,o=r-i,f=Math.min(a,o),h=this.slice(n,s),c=t.slice(i,r),l=0;ln)&&(i=n),e.length>0&&(i<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var s=!1;;)switch(r){case"hex":return k(this,e,t,i);case"utf8":case"utf-8":return E(this,e,t,i);case"ascii":return A(this,e,t,i);case"latin1":case"binary":return S(this,e,t,i);case"base64":return M(this,e,t,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return T(this,e,t,i);default:if(s)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),s=!0}},e.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var ee=4096;e.prototype.slice=function(t,i){var r=this.length;t=~~t,i=void 0===i?r:~~i,t<0?(t+=r,t<0&&(t=0)):t>r&&(t=r),i<0?(i+=r,i<0&&(i=0)):i>r&&(i=r),i0&&(n*=256);)r+=this[e+--t]*n;return r},e.prototype.readUInt8=function(e,t){return t||D(e,1,this.length),this[e]},e.prototype.readUInt16LE=function(e,t){return t||D(e,2,this.length),this[e]|this[e+1]<<8},e.prototype.readUInt16BE=function(e,t){return t||D(e,2,this.length),this[e]<<8|this[e+1]},e.prototype.readUInt32LE=function(e,t){return t||D(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},e.prototype.readUInt32BE=function(e,t){return t||D(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},e.prototype.readIntLE=function(e,t,i){e|=0,t|=0,i||D(e,t,this.length);for(var r=this[e],n=1,s=0;++s=n&&(r-=Math.pow(2,8*t)),r},e.prototype.readIntBE=function(e,t,i){e|=0,t|=0,i||D(e,t,this.length);for(var r=t,n=1,s=this[e+--r];r>0&&(n*=256);)s+=this[e+--r]*n;return n*=128,s>=n&&(s-=Math.pow(2,8*t)),s},e.prototype.readInt8=function(e,t){return t||D(e,1,this.length),128&this[e]?(255-this[e]+1)*-1:this[e]},e.prototype.readInt16LE=function(e,t){t||D(e,2,this.length);var i=this[e]|this[e+1]<<8;return 32768&i?4294901760|i:i},e.prototype.readInt16BE=function(e,t){t||D(e,2,this.length);var i=this[e+1]|this[e]<<8;return 32768&i?4294901760|i:i},e.prototype.readInt32LE=function(e,t){return t||D(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},e.prototype.readInt32BE=function(e,t){return t||D(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},e.prototype.readFloatLE=function(e,t){return t||D(e,4,this.length),J.read(this,e,!0,23,4)},e.prototype.readFloatBE=function(e,t){return t||D(e,4,this.length),J.read(this,e,!1,23,4)},e.prototype.readDoubleLE=function(e,t){return t||D(e,8,this.length),J.read(this,e,!0,52,8)},e.prototype.readDoubleBE=function(e,t){return t||D(e,8,this.length),J.read(this,e,!1,52,8)},e.prototype.writeUIntLE=function(e,t,i,r){if(e=+e,t|=0,i|=0,!r){var n=Math.pow(2,8*i)-1;L(this,e,t,i,n,0)}var s=1,a=0;for(this[t]=255&e;++a=0&&(a*=256);)this[t+s]=e/a&255;return t+i},e.prototype.writeUInt8=function(t,i,r){return t=+t,i|=0,r||L(this,t,i,1,255,0),e.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[i]=255&t,i+1},e.prototype.writeUInt16LE=function(t,i,r){return t=+t,i|=0,r||L(this,t,i,2,65535,0),e.TYPED_ARRAY_SUPPORT?(this[i]=255&t,this[i+1]=t>>>8):B(this,t,i,!0),i+2},e.prototype.writeUInt16BE=function(t,i,r){return t=+t,i|=0,r||L(this,t,i,2,65535,0),e.TYPED_ARRAY_SUPPORT?(this[i]=t>>>8,this[i+1]=255&t):B(this,t,i,!1),i+2},e.prototype.writeUInt32LE=function(t,i,r){return t=+t,i|=0,r||L(this,t,i,4,4294967295,0),e.TYPED_ARRAY_SUPPORT?(this[i+3]=t>>>24,this[i+2]=t>>>16,this[i+1]=t>>>8,this[i]=255&t):U(this,t,i,!0),i+4},e.prototype.writeUInt32BE=function(t,i,r){return t=+t,i|=0,r||L(this,t,i,4,4294967295,0),e.TYPED_ARRAY_SUPPORT?(this[i]=t>>>24,this[i+1]=t>>>16,this[i+2]=t>>>8,this[i+3]=255&t):U(this,t,i,!1),i+4},e.prototype.writeIntLE=function(e,t,i,r){if(e=+e,t|=0,!r){var n=Math.pow(2,8*i-1);L(this,e,t,i,n-1,-n)}var s=0,a=1,o=0;for(this[t]=255&e;++s>0)-o&255;return t+i},e.prototype.writeIntBE=function(e,t,i,r){if(e=+e,t|=0,!r){var n=Math.pow(2,8*i-1);L(this,e,t,i,n-1,-n)}var s=i-1,a=1,o=0;for(this[t+s]=255&e;--s>=0&&(a*=256);)e<0&&0===o&&0!==this[t+s+1]&&(o=1),this[t+s]=(e/a>>0)-o&255;return t+i},e.prototype.writeInt8=function(t,i,r){return t=+t,i|=0,r||L(this,t,i,1,127,-128),e.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[i]=255&t,i+1},e.prototype.writeInt16LE=function(t,i,r){return t=+t,i|=0,r||L(this,t,i,2,32767,-32768),e.TYPED_ARRAY_SUPPORT?(this[i]=255&t,this[i+1]=t>>>8):B(this,t,i,!0),i+2},e.prototype.writeInt16BE=function(t,i,r){return t=+t,i|=0,r||L(this,t,i,2,32767,-32768),e.TYPED_ARRAY_SUPPORT?(this[i]=t>>>8,this[i+1]=255&t):B(this,t,i,!1),i+2},e.prototype.writeInt32LE=function(t,i,r){return t=+t,i|=0,r||L(this,t,i,4,2147483647,-2147483648),e.TYPED_ARRAY_SUPPORT?(this[i]=255&t,this[i+1]=t>>>8,this[i+2]=t>>>16,this[i+3]=t>>>24):U(this,t,i,!0),i+4},e.prototype.writeInt32BE=function(t,i,r){return t=+t,i|=0,r||L(this,t,i,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),e.TYPED_ARRAY_SUPPORT?(this[i]=t>>>24,this[i+1]=t>>>16,this[i+2]=t>>>8,this[i+3]=255&t):U(this,t,i,!1),i+4},e.prototype.writeFloatLE=function(e,t,i){return F(this,e,t,!0,i)},e.prototype.writeFloatBE=function(e,t,i){return F(this,e,t,!1,i)},e.prototype.writeDoubleLE=function(e,t,i){return z(this,e,t,!0,i)},e.prototype.writeDoubleBE=function(e,t,i){return z(this,e,t,!1,i)},e.prototype.copy=function(t,i,r,n){if(r||(r=0),n||0===n||(n=this.length),i>=t.length&&(i=t.length),i||(i=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-i=0;--s)t[s+i]=this[s+r];else if(a<1e3||!e.TYPED_ARRAY_SUPPORT)for(s=0;s>>=0,r=void 0===r?this.length:r>>>0,t||(t=0);var a;if("number"==typeof t)for(a=i;a`${n}/invite/${e}`,inviteLink:e=>`https://discord.gg/${e}`,CDN:"https://cdn.discordapp.com",user:e=>`${n}/users/${e}`,userChannels:e=>`${s.user(e)}/channels`,userProfile:e=>`${s.user(e)}/profile`,avatar:(e,t)=>"1"===e?t:`${s.user(e)}/avatars/${t}.jpg`,me:`${n}/users/@me`,meGuild:e=>`${s.me}/guilds/${e}`,relationships:e=>`${s.user(e)}/relationships`,note:e=>`${s.me}/notes/${e}`,guilds:`${n}/guilds`,guild:e=>`${s.guilds}/${e}`,guildIcon:(e,t)=>`${s.guild(e)}/icons/${t}.jpg`,guildPrune:e=>`${s.guild(e)}/prune`,guildEmbed:e=>`${s.guild(e)}/embed`,guildInvites:e=>`${s.guild(e)}/invites`,guildRoles:e=>`${s.guild(e)}/roles`,guildRole:(e,t)=>`${s.guildRoles(e)}/${t}`,guildBans:e=>`${s.guild(e)}/bans`,guildIntegrations:e=>`${s.guild(e)}/integrations`,guildMembers:e=>`${s.guild(e)}/members`,guildMember:(e,t)=>`${s.guildMembers(e)}/${t}`,stupidInconsistentGuildEndpoint:e=>`${s.guildMember(e,"@me")}/nick`,guildChannels:e=>`${s.guild(e)}/channels`,guildEmojis:e=>`${s.guild(e)}/emojis`,channels:`${n}/channels`,channel:e=>`${s.channels}/${e}`,channelMessages:e=>`${s.channel(e)}/messages`,channelInvites:e=>`${s.channel(e)}/invites`,channelTyping:e=>`${s.channel(e)}/typing`,channelPermissions:e=>`${s.channel(e)}/permissions`,channelMessage:(e,t)=>`${s.channelMessages(e)}/${t}`,channelWebhooks:e=>`${s.channel(e)}/webhooks`,messageReactions:(e,t)=>`${s.channelMessage(e,t)}/reactions`,messageReaction:(e,t,i,r)=>`${s.messageReactions(e,t)}/${i}`+`${r?`?limit=${r}`:""}`,selfMessageReaction:(e,t,i,r)=>`${s.messageReaction(e,t,i,r)}/@me`,userMessageReaction:(e,t,i,r,n)=>`${s.messageReaction(e,t,i,r)}/${n}`,webhook:(e,t)=>`${n}/webhooks/${e}${t?`/${t}`:""}`,myApplication:`${n}/oauth2/applications/@me`,getApp:e=>`${n}/oauth2/authorize?client_id=${e}`};t.Status={READY:0,CONNECTING:1,RECONNECTING:2,IDLE:3,NEARLY:4},t.ChannelTypes={text:0,DM:1,voice:2,groupDM:3},t.OPCodes={DISPATCH:0,HEARTBEAT:1,IDENTIFY:2,STATUS_UPDATE:3,VOICE_STATE_UPDATE:4,VOICE_GUILD_PING:5,RESUME:6,RECONNECT:7,REQUEST_GUILD_MEMBERS:8,INVALID_SESSION:9,HELLO:10,HEARTBEAT_ACK:11},t.VoiceOPCodes={IDENTIFY:0,SELECT_PROTOCOL:1,READY:2,HEARTBEAT:3,SESSION_DESCRIPTION:4,SPEAKING:5},t.Events={READY:"ready",GUILD_CREATE:"guildCreate",GUILD_DELETE:"guildDelete",GUILD_UPDATE:"guildUpdate",GUILD_UNAVAILABLE:"guildUnavailable",GUILD_AVAILABLE:"guildAvailable",GUILD_MEMBER_ADD:"guildMemberAdd",GUILD_MEMBER_REMOVE:"guildMemberRemove",GUILD_MEMBER_UPDATE:"guildMemberUpdate",GUILD_MEMBER_AVAILABLE:"guildMemberAvailable",GUILD_MEMBER_SPEAKING:"guildMemberSpeaking",GUILD_MEMBERS_CHUNK:"guildMembersChunk",GUILD_ROLE_CREATE:"roleCreate",GUILD_ROLE_DELETE:"roleDelete",GUILD_ROLE_UPDATE:"roleUpdate",GUILD_EMOJI_CREATE:"guildEmojiCreate",GUILD_EMOJI_DELETE:"guildEmojiDelete",GUILD_EMOJI_UPDATE:"guildEmojiUpdate",GUILD_BAN_ADD:"guildBanAdd",GUILD_BAN_REMOVE:"guildBanRemove",CHANNEL_CREATE:"channelCreate",CHANNEL_DELETE:"channelDelete",CHANNEL_UPDATE:"channelUpdate",CHANNEL_PINS_UPDATE:"channelPinsUpdate",MESSAGE_CREATE:"message",MESSAGE_DELETE:"messageDelete",MESSAGE_UPDATE:"messageUpdate",MESSAGE_BULK_DELETE:"messageDeleteBulk",MESSAGE_REACTION_ADD:"messageReactionAdd",MESSAGE_REACTION_REMOVE:"messageReactionRemove",MESSAGE_REACTION_REMOVE_ALL:"messageReactionRemoveAll",USER_UPDATE:"userUpdate",USER_NOTE_UPDATE:"userNoteUpdate",PRESENCE_UPDATE:"presenceUpdate",VOICE_STATE_UPDATE:"voiceStateUpdate",TYPING_START:"typingStart",TYPING_STOP:"typingStop",DISCONNECT:"disconnect",RECONNECTING:"reconnecting",ERROR:"error",WARN:"warn",DEBUG:"debug"},t.WSEvents={READY:"READY",GUILD_SYNC:"GUILD_SYNC",GUILD_CREATE:"GUILD_CREATE",GUILD_DELETE:"GUILD_DELETE",GUILD_UPDATE:"GUILD_UPDATE",GUILD_MEMBER_ADD:"GUILD_MEMBER_ADD",GUILD_MEMBER_REMOVE:"GUILD_MEMBER_REMOVE",GUILD_MEMBER_UPDATE:"GUILD_MEMBER_UPDATE",GUILD_MEMBERS_CHUNK:"GUILD_MEMBERS_CHUNK",GUILD_ROLE_CREATE:"GUILD_ROLE_CREATE",GUILD_ROLE_DELETE:"GUILD_ROLE_DELETE",GUILD_ROLE_UPDATE:"GUILD_ROLE_UPDATE",GUILD_BAN_ADD:"GUILD_BAN_ADD",GUILD_BAN_REMOVE:"GUILD_BAN_REMOVE",CHANNEL_CREATE:"CHANNEL_CREATE",CHANNEL_DELETE:"CHANNEL_DELETE",CHANNEL_UPDATE:"CHANNEL_UPDATE",CHANNEL_PINS_UPDATE:"CHANNEL_PINS_UPDATE",MESSAGE_CREATE:"MESSAGE_CREATE",MESSAGE_DELETE:"MESSAGE_DELETE",MESSAGE_UPDATE:"MESSAGE_UPDATE",MESSAGE_DELETE_BULK:"MESSAGE_DELETE_BULK",MESSAGE_REACTION_ADD:"MESSAGE_REACTION_ADD",MESSAGE_REACTION_REMOVE:"MESSAGE_REACTION_REMOVE",MESSAGE_REACTION_REMOVE_ALL:"MESSAGE_REACTION_REMOVE_ALL",USER_UPDATE:"USER_UPDATE",USER_NOTE_UPDATE:"USER_NOTE_UPDATE",PRESENCE_UPDATE:"PRESENCE_UPDATE",VOICE_STATE_UPDATE:"VOICE_STATE_UPDATE",TYPING_START:"TYPING_START",FRIEND_ADD:"RELATIONSHIP_ADD",FRIEND_REMOVE:"RELATIONSHIP_REMOVE",VOICE_SERVER_UPDATE:"VOICE_SERVER_UPDATE",RELATIONSHIP_ADD:"RELATIONSHIP_ADD",RELATIONSHIP_REMOVE:"RELATIONSHIP_REMOVE"},t.MessageTypes={0:"DEFAULT",1:"RECIPIENT_ADD",2:"RECIPIENT_REMOVE",3:"CALL",4:"CHANNEL_NAME_CHANGE",5:"CHANNEL_ICON_CHANGE",6:"PINS_ADD"};const a=t.PermissionFlags={CREATE_INSTANT_INVITE:1,KICK_MEMBERS:2,BAN_MEMBERS:4,ADMINISTRATOR:8,MANAGE_CHANNELS:16,MANAGE_GUILD:32,ADD_REACTIONS:64,READ_MESSAGES:1024,SEND_MESSAGES:2048,SEND_TTS_MESSAGES:4096,MANAGE_MESSAGES:8192,EMBED_LINKS:16384,ATTACH_FILES:32768,READ_MESSAGE_HISTORY:65536,MENTION_EVERYONE:1<<17,EXTERNAL_EMOJIS:1<<18,CONNECT:1<<20,SPEAK:1<<21,MUTE_MEMBERS:1<<22,DEAFEN_MEMBERS:1<<23,MOVE_MEMBERS:1<<24,USE_VAD:1<<25,CHANGE_NICKNAME:1<<26,MANAGE_NICKNAMES:1<<27,MANAGE_ROLES_OR_PERMISSIONS:1<<28,MANAGE_WEBHOOKS:1<<29,MANAGE_EMOJIS:1<<30};let o=0;for(const f in a)o|=a[f];t.ALL_PERMISSIONS=o,t.DEFAULT_PERMISSIONS=104324097}).call(t,i(5))},function(e,t){function i(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function r(e){return"function"==typeof e}function n(e){return"number"==typeof e}function s(e){return"object"==typeof e&&null!==e}function a(e){return void 0===e}e.exports=i,i.EventEmitter=i,i.prototype._events=void 0,i.prototype._maxListeners=void 0,i.defaultMaxListeners=10,i.prototype.setMaxListeners=function(e){if(!n(e)||e<0||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},i.prototype.emit=function(e){var t,i,n,o,f,h;if(this._events||(this._events={}),"error"===e&&(!this._events.error||s(this._events.error)&&!this._events.error.length)){if(t=arguments[1],t instanceof Error)throw t;var c=new Error('Uncaught, unspecified "error" event. ('+t+")");throw c.context=t,c}if(i=this._events[e],a(i))return!1;if(r(i))switch(arguments.length){case 1:i.call(this);break;case 2:i.call(this,arguments[1]);break;case 3:i.call(this,arguments[1],arguments[2]);break;default:o=Array.prototype.slice.call(arguments,1),i.apply(this,o)}else if(s(i))for(o=Array.prototype.slice.call(arguments,1),h=i.slice(),n=h.length,f=0;f0&&this._events[e].length>n&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace())),this},i.prototype.on=i.prototype.addListener,i.prototype.once=function(e,t){function i(){this.removeListener(e,i),n||(n=!0,t.apply(this,arguments))}if(!r(t))throw TypeError("listener must be a function");var n=!1;return i.listener=t,this.on(e,i),this},i.prototype.removeListener=function(e,t){var i,n,a,o;if(!r(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(i=this._events[e],a=i.length,n=-1,i===t||r(i.listener)&&i.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(s(i)){for(o=a;o-- >0;)if(i[o]===t||i[o].listener&&i[o].listener===t){n=o;break}if(n<0)return this;1===i.length?(i.length=0,delete this._events[e]):i.splice(n,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},i.prototype.removeAllListeners=function(e){var t,i;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(i=this._events[e],r(i))this.removeListener(e,i);else if(i)for(;i.length;)this.removeListener(e,i[i.length-1]);return delete this._events[e],this},i.prototype.listeners=function(e){var t;return t=this._events&&this._events[e]?r(this._events[e])?[this._events[e]]:this._events[e].slice():[]},i.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(r(t))return 1;if(t)return t.length}return 0},i.listenerCount=function(e,t){return e.listenerCount(t)}},function(e,t,i){(function(e){!function(e,t){"use strict";function r(e,t){if(!e)throw new Error(t||"Assertion failed")}function n(e,t){e.super_=t;var i=function(){};i.prototype=t.prototype,e.prototype=new i,e.prototype.constructor=e}function s(e,t,i){return s.isBN(e)?e:(this.negative=0,this.words=null,this.length=0,this.red=null,void(null!==e&&("le"!==t&&"be"!==t||(i=t,t=10),this._init(e||0,t||10,i||"be"))))}function a(e,t,i){for(var r=0,n=Math.min(e.length,i),s=t;s=49&&a<=54?a-49+10:a>=17&&a<=22?a-17+10:15&a}return r}function o(e,t,i,r){for(var n=0,s=Math.min(e.length,i),a=t;a=49?o-49+10:o>=17?o-17+10:o}return n}function f(e){for(var t=new Array(e.bitLength()),i=0;i>>n}return t}function h(e,t,i){i.negative=t.negative^e.negative; -var r=e.length+t.length|0;i.length=r,r=r-1|0;var n=0|e.words[0],s=0|t.words[0],a=n*s,o=67108863&a,f=a/67108864|0;i.words[0]=o;for(var h=1;h>>26,l=67108863&f,u=Math.min(h,t.length-1),d=Math.max(0,h-e.length+1);d<=u;d++){var p=h-d|0;n=0|e.words[p],s=0|t.words[d],a=n*s+l,c+=a/67108864|0,l=67108863&a}i.words[h]=0|l,f=0|c}return 0!==f?i.words[h]=0|f:i.length--,i.strip()}function c(e,t,i){i.negative=t.negative^e.negative,i.length=e.length+t.length;for(var r=0,n=0,s=0;s>>26)|0,n+=a>>>26,a&=67108863}i.words[s]=o,r=a,a=n}return 0!==r?i.words[s]=r:i.length--,i.strip()}function l(e,t,i){var r=new u;return r.mulp(e,t,i)}function u(e,t){this.x=e,this.y=t}function d(e,t){this.name=e,this.p=new s(t,16),this.n=this.p.bitLength(),this.k=new s(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function p(){d.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function b(){d.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function m(){d.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function w(){d.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function g(e){if("string"==typeof e){var t=s._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function v(e){g.call(this,e),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new s(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}"object"==typeof e?e.exports=s:t.BN=s,s.BN=s,s.wordSize=26;var _;try{_=i(0).Buffer}catch(e){}s.isBN=function(e){return e instanceof s||null!==e&&"object"==typeof e&&e.constructor.wordSize===s.wordSize&&Array.isArray(e.words)},s.max=function(e,t){return e.cmp(t)>0?e:t},s.min=function(e,t){return e.cmp(t)<0?e:t},s.prototype._init=function(e,t,i){if("number"==typeof e)return this._initNumber(e,t,i);if("object"==typeof e)return this._initArray(e,t,i);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36),e=e.toString().replace(/\s+/g,"");var n=0;"-"===e[0]&&n++,16===t?this._parseHex(e,n):this._parseBase(e,t,n),"-"===e[0]&&(this.negative=1),this.strip(),"le"===i&&this._initArray(this.toArray(),t,i)},s.prototype._initNumber=function(e,t,i){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(r(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===i&&this._initArray(this.toArray(),t,i)},s.prototype._initArray=function(e,t,i){if(r("number"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var n=0;n=0;n-=3)a=e[n]|e[n-1]<<8|e[n-2]<<16,this.words[s]|=a<>>26-o&67108863,o+=24,o>=26&&(o-=26,s++);else if("le"===i)for(n=0,s=0;n>>26-o&67108863,o+=24,o>=26&&(o-=26,s++);return this.strip()},s.prototype._parseHex=function(e,t){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var i=0;i=t;i-=6)n=a(e,i,i+6),this.words[r]|=n<>>26-s&4194303,s+=24,s>=26&&(s-=26,r++);i+6!==t&&(n=a(e,t,i+6),this.words[r]|=n<>>26-s&4194303),this.strip()},s.prototype._parseBase=function(e,t,i){this.words=[0],this.length=1;for(var r=0,n=1;n<=67108863;n*=t)r++;r--,n=n/t|0;for(var s=e.length-i,a=s%r,f=Math.min(s,s-a)+i,h=0,c=i;c1&&0===this.words[this.length-1];)this.length--;return this._normSign()},s.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},s.prototype.inspect=function(){return(this.red?""};var y=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],k=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],E=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];s.prototype.toString=function(e,t){e=e||10,t=0|t||1;var i;if(16===e||"hex"===e){i="";for(var n=0,s=0,a=0;a>>24-n&16777215,i=0!==s||a!==this.length-1?y[6-f.length]+f+i:f+i,n+=2,n>=26&&(n-=26,a--)}for(0!==s&&(i=s.toString(16)+i);i.length%t!==0;)i="0"+i;return 0!==this.negative&&(i="-"+i),i}if(e===(0|e)&&e>=2&&e<=36){var h=k[e],c=E[e];i="";var l=this.clone();for(l.negative=0;!l.isZero();){var u=l.modn(c).toString(e);l=l.idivn(c),i=l.isZero()?u+i:y[h-u.length]+u+i}for(this.isZero()&&(i="0"+i);i.length%t!==0;)i="0"+i;return 0!==this.negative&&(i="-"+i),i}r(!1,"Base should be between 2 and 36")},s.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},s.prototype.toJSON=function(){return this.toString(16)},s.prototype.toBuffer=function(e,t){return r("undefined"!=typeof _),this.toArrayLike(_,e,t)},s.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},s.prototype.toArrayLike=function(e,t,i){var n=this.byteLength(),s=i||Math.max(1,n);r(n<=s,"byte array longer than desired length"),r(s>0,"Requested array length <= 0"),this.strip();var a,o,f="le"===t,h=new e(s),c=this.clone();if(f){for(o=0;!c.isZero();o++)a=c.andln(255),c.iushrn(8),h[o]=a;for(;o=4096&&(i+=13,t>>>=13),t>=64&&(i+=7,t>>>=7),t>=8&&(i+=4,t>>>=4),t>=2&&(i+=2,t>>>=2),i+t},s.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,i=0;return 0===(8191&t)&&(i+=13,t>>>=13),0===(127&t)&&(i+=7,t>>>=7),0===(15&t)&&(i+=4,t>>>=4),0===(3&t)&&(i+=2,t>>>=2),0===(1&t)&&i++,i},s.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},s.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},s.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},s.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var i=0;ie.length?this.clone().iand(e):e.clone().iand(this)},s.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},s.prototype.iuxor=function(e){var t,i;this.length>e.length?(t=this,i=e):(t=e,i=this);for(var r=0;re.length?this.clone().ixor(e):e.clone().ixor(this)},s.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},s.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),i=e%26;this._expand(t),i>0&&t--;for(var n=0;n0&&(this.words[n]=~this.words[n]&67108863>>26-i),this.strip()},s.prototype.notn=function(e){return this.clone().inotn(e)},s.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var i=e/26|0,n=e%26;return this._expand(i+1),t?this.words[i]=this.words[i]|1<e.length?(i=this,r=e):(i=e,r=this);for(var n=0,s=0;s>>26;for(;0!==n&&s>>26;if(this.length=i.length,0!==n)this.words[this.length]=n,this.length++;else if(i!==this)for(;se.length?this.clone().iadd(e):e.clone().iadd(this)},s.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;var r,n;i>0?(r=this,n=e):(r=e,n=this);for(var s=0,a=0;a>26,this.words[a]=67108863&t;for(;0!==s&&a>26,this.words[a]=67108863&t;if(0===s&&a>>13,d=0|a[1],p=8191&d,b=d>>>13,m=0|a[2],w=8191&m,g=m>>>13,v=0|a[3],_=8191&v,y=v>>>13,k=0|a[4],E=8191&k,A=k>>>13,S=0|a[5],M=8191&S,T=S>>>13,R=0|a[6],x=8191&R,C=R>>>13,I=0|a[7],P=8191&I,O=I>>>13,N=0|a[8],D=8191&N,L=N>>>13,B=0|a[9],U=8191&B,j=B>>>13,F=0|o[0],z=8191&F,q=F>>>13,H=0|o[1],G=8191&H,V=H>>>13,W=0|o[2],K=8191&W,Z=W>>>13,Y=0|o[3],$=8191&Y,X=Y>>>13,J=0|o[4],Q=8191&J,ee=J>>>13,te=0|o[5],ie=8191&te,re=te>>>13,ne=0|o[6],se=8191&ne,ae=ne>>>13,oe=0|o[7],fe=8191&oe,he=oe>>>13,ce=0|o[8],le=8191&ce,ue=ce>>>13,de=0|o[9],pe=8191&de,be=de>>>13;i.negative=e.negative^t.negative,i.length=19,r=Math.imul(l,z),n=Math.imul(l,q),n=n+Math.imul(u,z)|0,s=Math.imul(u,q);var me=(h+r|0)+((8191&n)<<13)|0;h=(s+(n>>>13)|0)+(me>>>26)|0,me&=67108863,r=Math.imul(p,z),n=Math.imul(p,q),n=n+Math.imul(b,z)|0,s=Math.imul(b,q),r=r+Math.imul(l,G)|0,n=n+Math.imul(l,V)|0,n=n+Math.imul(u,G)|0,s=s+Math.imul(u,V)|0;var we=(h+r|0)+((8191&n)<<13)|0;h=(s+(n>>>13)|0)+(we>>>26)|0,we&=67108863,r=Math.imul(w,z),n=Math.imul(w,q),n=n+Math.imul(g,z)|0,s=Math.imul(g,q),r=r+Math.imul(p,G)|0,n=n+Math.imul(p,V)|0,n=n+Math.imul(b,G)|0,s=s+Math.imul(b,V)|0,r=r+Math.imul(l,K)|0,n=n+Math.imul(l,Z)|0,n=n+Math.imul(u,K)|0,s=s+Math.imul(u,Z)|0;var ge=(h+r|0)+((8191&n)<<13)|0;h=(s+(n>>>13)|0)+(ge>>>26)|0,ge&=67108863,r=Math.imul(_,z),n=Math.imul(_,q),n=n+Math.imul(y,z)|0,s=Math.imul(y,q),r=r+Math.imul(w,G)|0,n=n+Math.imul(w,V)|0,n=n+Math.imul(g,G)|0,s=s+Math.imul(g,V)|0,r=r+Math.imul(p,K)|0,n=n+Math.imul(p,Z)|0,n=n+Math.imul(b,K)|0,s=s+Math.imul(b,Z)|0,r=r+Math.imul(l,$)|0,n=n+Math.imul(l,X)|0,n=n+Math.imul(u,$)|0,s=s+Math.imul(u,X)|0;var ve=(h+r|0)+((8191&n)<<13)|0;h=(s+(n>>>13)|0)+(ve>>>26)|0,ve&=67108863,r=Math.imul(E,z),n=Math.imul(E,q),n=n+Math.imul(A,z)|0,s=Math.imul(A,q),r=r+Math.imul(_,G)|0,n=n+Math.imul(_,V)|0,n=n+Math.imul(y,G)|0,s=s+Math.imul(y,V)|0,r=r+Math.imul(w,K)|0,n=n+Math.imul(w,Z)|0,n=n+Math.imul(g,K)|0,s=s+Math.imul(g,Z)|0,r=r+Math.imul(p,$)|0,n=n+Math.imul(p,X)|0,n=n+Math.imul(b,$)|0,s=s+Math.imul(b,X)|0,r=r+Math.imul(l,Q)|0,n=n+Math.imul(l,ee)|0,n=n+Math.imul(u,Q)|0,s=s+Math.imul(u,ee)|0;var _e=(h+r|0)+((8191&n)<<13)|0;h=(s+(n>>>13)|0)+(_e>>>26)|0,_e&=67108863,r=Math.imul(M,z),n=Math.imul(M,q),n=n+Math.imul(T,z)|0,s=Math.imul(T,q),r=r+Math.imul(E,G)|0,n=n+Math.imul(E,V)|0,n=n+Math.imul(A,G)|0,s=s+Math.imul(A,V)|0,r=r+Math.imul(_,K)|0,n=n+Math.imul(_,Z)|0,n=n+Math.imul(y,K)|0,s=s+Math.imul(y,Z)|0,r=r+Math.imul(w,$)|0,n=n+Math.imul(w,X)|0,n=n+Math.imul(g,$)|0,s=s+Math.imul(g,X)|0,r=r+Math.imul(p,Q)|0,n=n+Math.imul(p,ee)|0,n=n+Math.imul(b,Q)|0,s=s+Math.imul(b,ee)|0,r=r+Math.imul(l,ie)|0,n=n+Math.imul(l,re)|0,n=n+Math.imul(u,ie)|0,s=s+Math.imul(u,re)|0;var ye=(h+r|0)+((8191&n)<<13)|0;h=(s+(n>>>13)|0)+(ye>>>26)|0,ye&=67108863,r=Math.imul(x,z),n=Math.imul(x,q),n=n+Math.imul(C,z)|0,s=Math.imul(C,q),r=r+Math.imul(M,G)|0,n=n+Math.imul(M,V)|0,n=n+Math.imul(T,G)|0,s=s+Math.imul(T,V)|0,r=r+Math.imul(E,K)|0,n=n+Math.imul(E,Z)|0,n=n+Math.imul(A,K)|0,s=s+Math.imul(A,Z)|0,r=r+Math.imul(_,$)|0,n=n+Math.imul(_,X)|0,n=n+Math.imul(y,$)|0,s=s+Math.imul(y,X)|0,r=r+Math.imul(w,Q)|0,n=n+Math.imul(w,ee)|0,n=n+Math.imul(g,Q)|0,s=s+Math.imul(g,ee)|0,r=r+Math.imul(p,ie)|0,n=n+Math.imul(p,re)|0,n=n+Math.imul(b,ie)|0,s=s+Math.imul(b,re)|0,r=r+Math.imul(l,se)|0,n=n+Math.imul(l,ae)|0,n=n+Math.imul(u,se)|0,s=s+Math.imul(u,ae)|0;var ke=(h+r|0)+((8191&n)<<13)|0;h=(s+(n>>>13)|0)+(ke>>>26)|0,ke&=67108863,r=Math.imul(P,z),n=Math.imul(P,q),n=n+Math.imul(O,z)|0,s=Math.imul(O,q),r=r+Math.imul(x,G)|0,n=n+Math.imul(x,V)|0,n=n+Math.imul(C,G)|0,s=s+Math.imul(C,V)|0,r=r+Math.imul(M,K)|0,n=n+Math.imul(M,Z)|0,n=n+Math.imul(T,K)|0,s=s+Math.imul(T,Z)|0,r=r+Math.imul(E,$)|0,n=n+Math.imul(E,X)|0,n=n+Math.imul(A,$)|0,s=s+Math.imul(A,X)|0,r=r+Math.imul(_,Q)|0,n=n+Math.imul(_,ee)|0,n=n+Math.imul(y,Q)|0,s=s+Math.imul(y,ee)|0,r=r+Math.imul(w,ie)|0,n=n+Math.imul(w,re)|0,n=n+Math.imul(g,ie)|0,s=s+Math.imul(g,re)|0,r=r+Math.imul(p,se)|0,n=n+Math.imul(p,ae)|0,n=n+Math.imul(b,se)|0,s=s+Math.imul(b,ae)|0,r=r+Math.imul(l,fe)|0,n=n+Math.imul(l,he)|0,n=n+Math.imul(u,fe)|0,s=s+Math.imul(u,he)|0;var Ee=(h+r|0)+((8191&n)<<13)|0;h=(s+(n>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,r=Math.imul(D,z),n=Math.imul(D,q),n=n+Math.imul(L,z)|0,s=Math.imul(L,q),r=r+Math.imul(P,G)|0,n=n+Math.imul(P,V)|0,n=n+Math.imul(O,G)|0,s=s+Math.imul(O,V)|0,r=r+Math.imul(x,K)|0,n=n+Math.imul(x,Z)|0,n=n+Math.imul(C,K)|0,s=s+Math.imul(C,Z)|0,r=r+Math.imul(M,$)|0,n=n+Math.imul(M,X)|0,n=n+Math.imul(T,$)|0,s=s+Math.imul(T,X)|0,r=r+Math.imul(E,Q)|0,n=n+Math.imul(E,ee)|0,n=n+Math.imul(A,Q)|0,s=s+Math.imul(A,ee)|0,r=r+Math.imul(_,ie)|0,n=n+Math.imul(_,re)|0,n=n+Math.imul(y,ie)|0,s=s+Math.imul(y,re)|0,r=r+Math.imul(w,se)|0,n=n+Math.imul(w,ae)|0,n=n+Math.imul(g,se)|0,s=s+Math.imul(g,ae)|0,r=r+Math.imul(p,fe)|0,n=n+Math.imul(p,he)|0,n=n+Math.imul(b,fe)|0,s=s+Math.imul(b,he)|0,r=r+Math.imul(l,le)|0,n=n+Math.imul(l,ue)|0,n=n+Math.imul(u,le)|0,s=s+Math.imul(u,ue)|0;var Ae=(h+r|0)+((8191&n)<<13)|0;h=(s+(n>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,r=Math.imul(U,z),n=Math.imul(U,q),n=n+Math.imul(j,z)|0,s=Math.imul(j,q),r=r+Math.imul(D,G)|0,n=n+Math.imul(D,V)|0,n=n+Math.imul(L,G)|0,s=s+Math.imul(L,V)|0,r=r+Math.imul(P,K)|0,n=n+Math.imul(P,Z)|0,n=n+Math.imul(O,K)|0,s=s+Math.imul(O,Z)|0,r=r+Math.imul(x,$)|0,n=n+Math.imul(x,X)|0,n=n+Math.imul(C,$)|0,s=s+Math.imul(C,X)|0,r=r+Math.imul(M,Q)|0,n=n+Math.imul(M,ee)|0,n=n+Math.imul(T,Q)|0,s=s+Math.imul(T,ee)|0,r=r+Math.imul(E,ie)|0,n=n+Math.imul(E,re)|0,n=n+Math.imul(A,ie)|0,s=s+Math.imul(A,re)|0,r=r+Math.imul(_,se)|0,n=n+Math.imul(_,ae)|0,n=n+Math.imul(y,se)|0,s=s+Math.imul(y,ae)|0,r=r+Math.imul(w,fe)|0,n=n+Math.imul(w,he)|0,n=n+Math.imul(g,fe)|0,s=s+Math.imul(g,he)|0,r=r+Math.imul(p,le)|0,n=n+Math.imul(p,ue)|0,n=n+Math.imul(b,le)|0,s=s+Math.imul(b,ue)|0,r=r+Math.imul(l,pe)|0,n=n+Math.imul(l,be)|0,n=n+Math.imul(u,pe)|0,s=s+Math.imul(u,be)|0;var Se=(h+r|0)+((8191&n)<<13)|0;h=(s+(n>>>13)|0)+(Se>>>26)|0,Se&=67108863,r=Math.imul(U,G),n=Math.imul(U,V),n=n+Math.imul(j,G)|0,s=Math.imul(j,V),r=r+Math.imul(D,K)|0,n=n+Math.imul(D,Z)|0,n=n+Math.imul(L,K)|0,s=s+Math.imul(L,Z)|0,r=r+Math.imul(P,$)|0,n=n+Math.imul(P,X)|0,n=n+Math.imul(O,$)|0,s=s+Math.imul(O,X)|0,r=r+Math.imul(x,Q)|0,n=n+Math.imul(x,ee)|0,n=n+Math.imul(C,Q)|0,s=s+Math.imul(C,ee)|0,r=r+Math.imul(M,ie)|0,n=n+Math.imul(M,re)|0,n=n+Math.imul(T,ie)|0,s=s+Math.imul(T,re)|0,r=r+Math.imul(E,se)|0,n=n+Math.imul(E,ae)|0,n=n+Math.imul(A,se)|0,s=s+Math.imul(A,ae)|0,r=r+Math.imul(_,fe)|0,n=n+Math.imul(_,he)|0,n=n+Math.imul(y,fe)|0,s=s+Math.imul(y,he)|0,r=r+Math.imul(w,le)|0,n=n+Math.imul(w,ue)|0,n=n+Math.imul(g,le)|0,s=s+Math.imul(g,ue)|0,r=r+Math.imul(p,pe)|0,n=n+Math.imul(p,be)|0,n=n+Math.imul(b,pe)|0,s=s+Math.imul(b,be)|0;var Me=(h+r|0)+((8191&n)<<13)|0;h=(s+(n>>>13)|0)+(Me>>>26)|0,Me&=67108863,r=Math.imul(U,K),n=Math.imul(U,Z),n=n+Math.imul(j,K)|0,s=Math.imul(j,Z),r=r+Math.imul(D,$)|0,n=n+Math.imul(D,X)|0,n=n+Math.imul(L,$)|0,s=s+Math.imul(L,X)|0,r=r+Math.imul(P,Q)|0,n=n+Math.imul(P,ee)|0,n=n+Math.imul(O,Q)|0,s=s+Math.imul(O,ee)|0,r=r+Math.imul(x,ie)|0,n=n+Math.imul(x,re)|0,n=n+Math.imul(C,ie)|0,s=s+Math.imul(C,re)|0,r=r+Math.imul(M,se)|0,n=n+Math.imul(M,ae)|0,n=n+Math.imul(T,se)|0,s=s+Math.imul(T,ae)|0,r=r+Math.imul(E,fe)|0,n=n+Math.imul(E,he)|0,n=n+Math.imul(A,fe)|0,s=s+Math.imul(A,he)|0,r=r+Math.imul(_,le)|0,n=n+Math.imul(_,ue)|0,n=n+Math.imul(y,le)|0,s=s+Math.imul(y,ue)|0,r=r+Math.imul(w,pe)|0,n=n+Math.imul(w,be)|0,n=n+Math.imul(g,pe)|0,s=s+Math.imul(g,be)|0;var Te=(h+r|0)+((8191&n)<<13)|0;h=(s+(n>>>13)|0)+(Te>>>26)|0,Te&=67108863,r=Math.imul(U,$),n=Math.imul(U,X),n=n+Math.imul(j,$)|0,s=Math.imul(j,X),r=r+Math.imul(D,Q)|0,n=n+Math.imul(D,ee)|0,n=n+Math.imul(L,Q)|0,s=s+Math.imul(L,ee)|0,r=r+Math.imul(P,ie)|0,n=n+Math.imul(P,re)|0,n=n+Math.imul(O,ie)|0,s=s+Math.imul(O,re)|0,r=r+Math.imul(x,se)|0,n=n+Math.imul(x,ae)|0,n=n+Math.imul(C,se)|0,s=s+Math.imul(C,ae)|0,r=r+Math.imul(M,fe)|0,n=n+Math.imul(M,he)|0,n=n+Math.imul(T,fe)|0,s=s+Math.imul(T,he)|0,r=r+Math.imul(E,le)|0,n=n+Math.imul(E,ue)|0,n=n+Math.imul(A,le)|0,s=s+Math.imul(A,ue)|0,r=r+Math.imul(_,pe)|0,n=n+Math.imul(_,be)|0,n=n+Math.imul(y,pe)|0,s=s+Math.imul(y,be)|0;var Re=(h+r|0)+((8191&n)<<13)|0;h=(s+(n>>>13)|0)+(Re>>>26)|0,Re&=67108863,r=Math.imul(U,Q),n=Math.imul(U,ee),n=n+Math.imul(j,Q)|0,s=Math.imul(j,ee),r=r+Math.imul(D,ie)|0,n=n+Math.imul(D,re)|0,n=n+Math.imul(L,ie)|0,s=s+Math.imul(L,re)|0,r=r+Math.imul(P,se)|0,n=n+Math.imul(P,ae)|0,n=n+Math.imul(O,se)|0,s=s+Math.imul(O,ae)|0,r=r+Math.imul(x,fe)|0,n=n+Math.imul(x,he)|0,n=n+Math.imul(C,fe)|0,s=s+Math.imul(C,he)|0,r=r+Math.imul(M,le)|0,n=n+Math.imul(M,ue)|0,n=n+Math.imul(T,le)|0,s=s+Math.imul(T,ue)|0,r=r+Math.imul(E,pe)|0,n=n+Math.imul(E,be)|0,n=n+Math.imul(A,pe)|0,s=s+Math.imul(A,be)|0;var xe=(h+r|0)+((8191&n)<<13)|0;h=(s+(n>>>13)|0)+(xe>>>26)|0,xe&=67108863,r=Math.imul(U,ie),n=Math.imul(U,re),n=n+Math.imul(j,ie)|0,s=Math.imul(j,re),r=r+Math.imul(D,se)|0,n=n+Math.imul(D,ae)|0,n=n+Math.imul(L,se)|0,s=s+Math.imul(L,ae)|0,r=r+Math.imul(P,fe)|0,n=n+Math.imul(P,he)|0,n=n+Math.imul(O,fe)|0,s=s+Math.imul(O,he)|0,r=r+Math.imul(x,le)|0,n=n+Math.imul(x,ue)|0,n=n+Math.imul(C,le)|0,s=s+Math.imul(C,ue)|0,r=r+Math.imul(M,pe)|0,n=n+Math.imul(M,be)|0,n=n+Math.imul(T,pe)|0,s=s+Math.imul(T,be)|0;var Ce=(h+r|0)+((8191&n)<<13)|0;h=(s+(n>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,r=Math.imul(U,se),n=Math.imul(U,ae),n=n+Math.imul(j,se)|0,s=Math.imul(j,ae),r=r+Math.imul(D,fe)|0,n=n+Math.imul(D,he)|0,n=n+Math.imul(L,fe)|0,s=s+Math.imul(L,he)|0,r=r+Math.imul(P,le)|0,n=n+Math.imul(P,ue)|0,n=n+Math.imul(O,le)|0,s=s+Math.imul(O,ue)|0,r=r+Math.imul(x,pe)|0,n=n+Math.imul(x,be)|0,n=n+Math.imul(C,pe)|0,s=s+Math.imul(C,be)|0;var Ie=(h+r|0)+((8191&n)<<13)|0;h=(s+(n>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,r=Math.imul(U,fe),n=Math.imul(U,he),n=n+Math.imul(j,fe)|0,s=Math.imul(j,he),r=r+Math.imul(D,le)|0,n=n+Math.imul(D,ue)|0,n=n+Math.imul(L,le)|0,s=s+Math.imul(L,ue)|0,r=r+Math.imul(P,pe)|0,n=n+Math.imul(P,be)|0,n=n+Math.imul(O,pe)|0,s=s+Math.imul(O,be)|0;var Pe=(h+r|0)+((8191&n)<<13)|0;h=(s+(n>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,r=Math.imul(U,le),n=Math.imul(U,ue),n=n+Math.imul(j,le)|0,s=Math.imul(j,ue),r=r+Math.imul(D,pe)|0,n=n+Math.imul(D,be)|0,n=n+Math.imul(L,pe)|0,s=s+Math.imul(L,be)|0;var Oe=(h+r|0)+((8191&n)<<13)|0;h=(s+(n>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,r=Math.imul(U,pe),n=Math.imul(U,be),n=n+Math.imul(j,pe)|0,s=Math.imul(j,be);var Ne=(h+r|0)+((8191&n)<<13)|0;return h=(s+(n>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,f[0]=me,f[1]=we,f[2]=ge,f[3]=ve,f[4]=_e,f[5]=ye,f[6]=ke,f[7]=Ee,f[8]=Ae,f[9]=Se,f[10]=Me,f[11]=Te,f[12]=Re,f[13]=xe,f[14]=Ce,f[15]=Ie,f[16]=Pe,f[17]=Oe,f[18]=Ne,0!==h&&(f[19]=h,i.length++),i};Math.imul||(A=h),s.prototype.mulTo=function(e,t){var i,r=this.length+e.length;return i=10===this.length&&10===e.length?A(this,e,t):r<63?h(this,e,t):r<1024?c(this,e,t):l(this,e,t)},u.prototype.makeRBT=function(e){for(var t=new Array(e),i=s.prototype._countBits(e)-1,r=0;r>=1;return r},u.prototype.permute=function(e,t,i,r,n,s){for(var a=0;a>>=1)n++;return 1<>>=13,i[2*a+1]=8191&s,s>>>=13;for(a=2*t;a>=26,t+=n/67108864|0,t+=s>>>26,this.words[i]=67108863&s}return 0!==t&&(this.words[i]=t,this.length++),this},s.prototype.muln=function(e){return this.clone().imuln(e)},s.prototype.sqr=function(){return this.mul(this)},s.prototype.isqr=function(){return this.imul(this.clone())},s.prototype.pow=function(e){var t=f(e);if(0===t.length)return new s(1);for(var i=this,r=0;r=0);var t,i=e%26,n=(e-i)/26,s=67108863>>>26-i<<26-i;if(0!==i){var a=0;for(t=0;t>>26-i}a&&(this.words[t]=a,this.length++)}if(0!==n){for(t=this.length-1;t>=0;t--)this.words[t+n]=this.words[t];for(t=0;t=0);var n;n=t?(t-t%26)/26:0;var s=e%26,a=Math.min((e-s)/26,this.length),o=67108863^67108863>>>s<a)for(this.length-=a,h=0;h=0&&(0!==c||h>=n);h--){var l=0|this.words[h];this.words[h]=c<<26-s|l>>>s,c=l&o}return f&&0!==c&&(f.words[f.length++]=c),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},s.prototype.ishrn=function(e,t,i){return r(0===this.negative),this.iushrn(e,t,i)},s.prototype.shln=function(e){return this.clone().ishln(e)},s.prototype.ushln=function(e){return this.clone().iushln(e)},s.prototype.shrn=function(e){return this.clone().ishrn(e)},s.prototype.ushrn=function(e){return this.clone().iushrn(e)},s.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,i=(e-t)/26,n=1<=0);var t=e%26,i=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=i)return this;if(0!==t&&i++,this.length=Math.min(i,this.length),0!==t){var n=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},s.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(f/67108864|0),this.words[n+i]=67108863&a}for(;n>26,this.words[n+i]=67108863&a;if(0===o)return this.strip();for(r(o===-1),o=0,n=0;n>26,this.words[n]=67108863&a;return this.negative=1,this.strip()},s.prototype._wordDiv=function(e,t){var i=this.length-e.length,r=this.clone(),n=e,a=0|n.words[n.length-1],o=this._countBits(a);i=26-o,0!==i&&(n=n.ushln(i),r.iushln(i),a=0|n.words[n.length-1]);var f,h=r.length-n.length;if("mod"!==t){f=new s(null),f.length=h+1,f.words=new Array(f.length);for(var c=0;c=0;u--){var d=67108864*(0|r.words[n.length+u])+(0|r.words[n.length+u-1]);for(d=Math.min(d/a|0,67108863),r._ishlnsubmul(n,d,u);0!==r.negative;)d--,r.negative=0,r._ishlnsubmul(n,1,u),r.isZero()||(r.negative^=1);f&&(f.words[u]=d)}return f&&f.strip(),r.strip(),"div"!==t&&0!==i&&r.iushrn(i),{div:f||null,mod:r}},s.prototype.divmod=function(e,t,i){if(r(!e.isZero()),this.isZero())return{div:new s(0),mod:new s(0)};var n,a,o;return 0!==this.negative&&0===e.negative?(o=this.neg().divmod(e,t),"mod"!==t&&(n=o.div.neg()),"div"!==t&&(a=o.mod.neg(),i&&0!==a.negative&&a.iadd(e)),{div:n,mod:a}):0===this.negative&&0!==e.negative?(o=this.divmod(e.neg(),t),"mod"!==t&&(n=o.div.neg()),{div:n,mod:o.mod}):0!==(this.negative&e.negative)?(o=this.neg().divmod(e.neg(),t),"div"!==t&&(a=o.mod.neg(),i&&0!==a.negative&&a.isub(e)),{div:o.div,mod:a}):e.length>this.length||this.cmp(e)<0?{div:new s(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new s(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new s(this.modn(e.words[0]))}:this._wordDiv(e,t)},s.prototype.div=function(e){return this.divmod(e,"div",!1).div},s.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},s.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},s.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var i=0!==t.div.negative?t.mod.isub(e):t.mod,r=e.ushrn(1),n=e.andln(1),s=i.cmp(r);return s<0||1===n&&0===s?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},s.prototype.modn=function(e){r(e<=67108863);for(var t=(1<<26)%e,i=0,n=this.length-1;n>=0;n--)i=(t*i+(0|this.words[n]))%e;return i},s.prototype.idivn=function(e){r(e<=67108863);for(var t=0,i=this.length-1;i>=0;i--){var n=(0|this.words[i])+67108864*t;this.words[i]=n/e|0,t=n%e}return this.strip()},s.prototype.divn=function(e){return this.clone().idivn(e)},s.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,i=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var n=new s(1),a=new s(0),o=new s(0),f=new s(1),h=0;t.isEven()&&i.isEven();)t.iushrn(1),i.iushrn(1),++h;for(var c=i.clone(),l=t.clone();!t.isZero();){for(var u=0,d=1;0===(t.words[0]&d)&&u<26;++u,d<<=1);if(u>0)for(t.iushrn(u);u-- >0;)(n.isOdd()||a.isOdd())&&(n.iadd(c),a.isub(l)),n.iushrn(1), -a.iushrn(1);for(var p=0,b=1;0===(i.words[0]&b)&&p<26;++p,b<<=1);if(p>0)for(i.iushrn(p);p-- >0;)(o.isOdd()||f.isOdd())&&(o.iadd(c),f.isub(l)),o.iushrn(1),f.iushrn(1);t.cmp(i)>=0?(t.isub(i),n.isub(o),a.isub(f)):(i.isub(t),o.isub(n),f.isub(a))}return{a:o,b:f,gcd:i.iushln(h)}},s.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,i=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var n=new s(1),a=new s(0),o=i.clone();t.cmpn(1)>0&&i.cmpn(1)>0;){for(var f=0,h=1;0===(t.words[0]&h)&&f<26;++f,h<<=1);if(f>0)for(t.iushrn(f);f-- >0;)n.isOdd()&&n.iadd(o),n.iushrn(1);for(var c=0,l=1;0===(i.words[0]&l)&&c<26;++c,l<<=1);if(c>0)for(i.iushrn(c);c-- >0;)a.isOdd()&&a.iadd(o),a.iushrn(1);t.cmp(i)>=0?(t.isub(i),n.isub(a)):(i.isub(t),a.isub(n))}var u;return u=0===t.cmpn(1)?n:a,u.cmpn(0)<0&&u.iadd(e),u},s.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),i=e.clone();t.negative=0,i.negative=0;for(var r=0;t.isEven()&&i.isEven();r++)t.iushrn(1),i.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;i.isEven();)i.iushrn(1);var n=t.cmp(i);if(n<0){var s=t;t=i,i=s}else if(0===n||0===i.cmpn(1))break;t.isub(i)}return i.iushln(r)},s.prototype.invm=function(e){return this.egcd(e).a.umod(e)},s.prototype.isEven=function(){return 0===(1&this.words[0])},s.prototype.isOdd=function(){return 1===(1&this.words[0])},s.prototype.andln=function(e){return this.words[0]&e},s.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,i=(e-t)/26,n=1<>>26,o&=67108863,this.words[a]=o}return 0!==s&&(this.words[a]=s,this.length++),this},s.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},s.prototype.cmpn=function(e){var t=e<0;if(0!==this.negative&&!t)return-1;if(0===this.negative&&t)return 1;this.strip();var i;if(this.length>1)i=1;else{t&&(e=-e),r(e<=67108863,"Number is too big");var n=0|this.words[0];i=n===e?0:ne.length)return 1;if(this.length=0;i--){var r=0|this.words[i],n=0|e.words[i];if(r!==n){rn&&(t=1);break}}return t},s.prototype.gtn=function(e){return 1===this.cmpn(e)},s.prototype.gt=function(e){return 1===this.cmp(e)},s.prototype.gten=function(e){return this.cmpn(e)>=0},s.prototype.gte=function(e){return this.cmp(e)>=0},s.prototype.ltn=function(e){return this.cmpn(e)===-1},s.prototype.lt=function(e){return this.cmp(e)===-1},s.prototype.lten=function(e){return this.cmpn(e)<=0},s.prototype.lte=function(e){return this.cmp(e)<=0},s.prototype.eqn=function(e){return 0===this.cmpn(e)},s.prototype.eq=function(e){return 0===this.cmp(e)},s.red=function(e){return new g(e)},s.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},s.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},s.prototype._forceRed=function(e){return this.red=e,this},s.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},s.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},s.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},s.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},s.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},s.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},s.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},s.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},s.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},s.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},s.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},s.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},s.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},s.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var S={k256:null,p224:null,p192:null,p25519:null};d.prototype._tmp=function(){var e=new s(null);return e.words=new Array(Math.ceil(this.n/13)),e},d.prototype.ireduce=function(e){var t,i=e;do this.split(i,this.tmp),i=this.imulK(i),i=i.iadd(this.tmp),t=i.bitLength();while(t>this.n);var r=t0?i.isub(this.p):i.strip(),i},d.prototype.split=function(e,t){e.iushrn(this.n,0,t)},d.prototype.imulK=function(e){return e.imul(this.k)},n(p,d),p.prototype.split=function(e,t){for(var i=4194303,r=Math.min(e.length,9),n=0;n>>22,s=a}s>>>=22,e.words[n-10]=s,0===s&&e.length>10?e.length-=10:e.length-=9},p.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,i=0;i>>=26,e.words[i]=n,t=r}return 0!==t&&(e.words[e.length++]=t),e},s._prime=function e(t){if(S[t])return S[t];var e;if("k256"===t)e=new p;else if("p224"===t)e=new b;else if("p192"===t)e=new m;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new w}return S[t]=e,e},g.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},g.prototype._verify2=function(e,t){r(0===(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},g.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},g.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},g.prototype.add=function(e,t){this._verify2(e,t);var i=e.add(t);return i.cmp(this.m)>=0&&i.isub(this.m),i._forceRed(this)},g.prototype.iadd=function(e,t){this._verify2(e,t);var i=e.iadd(t);return i.cmp(this.m)>=0&&i.isub(this.m),i},g.prototype.sub=function(e,t){this._verify2(e,t);var i=e.sub(t);return i.cmpn(0)<0&&i.iadd(this.m),i._forceRed(this)},g.prototype.isub=function(e,t){this._verify2(e,t);var i=e.isub(t);return i.cmpn(0)<0&&i.iadd(this.m),i},g.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},g.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},g.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},g.prototype.isqr=function(e){return this.imul(e,e.clone())},g.prototype.sqr=function(e){return this.mul(e,e)},g.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2===1),3===t){var i=this.m.add(new s(1)).iushrn(2);return this.pow(e,i)}for(var n=this.m.subn(1),a=0;!n.isZero()&&0===n.andln(1);)a++,n.iushrn(1);r(!n.isZero());var o=new s(1).toRed(this),f=o.redNeg(),h=this.m.subn(1).iushrn(1),c=this.m.bitLength();for(c=new s(2*c*c).toRed(this);0!==this.pow(c,h).cmp(f);)c.redIAdd(f);for(var l=this.pow(c,n),u=this.pow(e,n.addn(1).iushrn(1)),d=this.pow(e,n),p=a;0!==d.cmp(o);){for(var b=d,m=0;0!==b.cmp(o);m++)b=b.redSqr();r(m=0;n--){for(var c=t.words[n],l=h-1;l>=0;l--){var u=c>>l&1;a!==r[0]&&(a=this.sqr(a)),0!==u||0!==o?(o<<=1,o|=u,f++,(f===i||0===n&&0===l)&&(a=this.mul(a,r[o]),f=0,o=0)):f=0}h=26}return a},g.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},g.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},s.mont=function(e){return new v(e)},n(v,g),v.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},v.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},v.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var i=e.imul(t),r=i.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=i.isub(r).iushrn(this.shift),s=n;return n.cmp(this.m)>=0?s=n.isub(this.m):n.cmpn(0)<0&&(s=n.iadd(this.m)),s._forceRed(this)},v.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new s(0)._forceRed(this);var i=e.mul(t),r=i.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=i.isub(r).iushrn(this.shift),a=n;return n.cmp(this.m)>=0?a=n.isub(this.m):n.cmpn(0)<0&&(a=n.iadd(this.m)),a._forceRed(this)},v.prototype.invm=function(e){var t=this.imod(e._invmp(this.m).mul(this.r2));return t._forceRed(this)}}("undefined"==typeof e||e,this)}).call(t,i(117)(e))},function(e,t){function i(){throw new Error("setTimeout has not been defined")}function r(){throw new Error("clearTimeout has not been defined")}function n(e){if(c===setTimeout)return setTimeout(e,0);if((c===i||!c)&&setTimeout)return c=setTimeout,setTimeout(e,0);try{return c(e,0)}catch(t){try{return c.call(null,e,0)}catch(t){return c.call(this,e,0)}}}function s(e){if(l===clearTimeout)return clearTimeout(e);if((l===r||!l)&&clearTimeout)return l=clearTimeout,clearTimeout(e);try{return l(e)}catch(t){try{return l.call(null,e)}catch(t){return l.call(this,e)}}}function a(){b&&d&&(b=!1,d.length?p=d.concat(p):m=-1,p.length&&o())}function o(){if(!b){var e=n(a);b=!0;for(var t=p.length;t;){for(d=p,p=[];++m1)for(var i=1;i=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),b(i)?r.showHidden=i:i&&t._extend(r,i),y(r.showHidden)&&(r.showHidden=!1),y(r.depth)&&(r.depth=2),y(r.colors)&&(r.colors=!1),y(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=s),f(r,e,r.depth)}function s(e,t){var i=n.styles[t];return i?"["+n.colors[i][0]+"m"+e+"["+n.colors[i][1]+"m":e}function a(e,t){return e}function o(e){var t={};return e.forEach(function(e,i){t[e]=!0}),t}function f(e,i,r){if(e.customInspect&&i&&M(i.inspect)&&i.inspect!==t.inspect&&(!i.constructor||i.constructor.prototype!==i)){var n=i.inspect(r,e);return v(n)||(n=f(e,n,r)),n}var s=h(e,i);if(s)return s;var a=Object.keys(i),b=o(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(i)),S(i)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return c(i);if(0===a.length){if(M(i)){var m=i.name?": "+i.name:"";return e.stylize("[Function"+m+"]","special")}if(k(i))return e.stylize(RegExp.prototype.toString.call(i),"regexp");if(A(i))return e.stylize(Date.prototype.toString.call(i),"date");if(S(i))return c(i)}var w="",g=!1,_=["{","}"];if(p(i)&&(g=!0,_=["[","]"]),M(i)){var y=i.name?": "+i.name:"";w=" [Function"+y+"]"}if(k(i)&&(w=" "+RegExp.prototype.toString.call(i)),A(i)&&(w=" "+Date.prototype.toUTCString.call(i)),S(i)&&(w=" "+c(i)),0===a.length&&(!g||0==i.length))return _[0]+w+_[1];if(r<0)return k(i)?e.stylize(RegExp.prototype.toString.call(i),"regexp"):e.stylize("[Object]","special");e.seen.push(i);var E;return E=g?l(e,i,r,b,a):a.map(function(t){return u(e,i,r,b,t,g)}),e.seen.pop(),d(E,w,_)}function h(e,t){if(y(t))return e.stylize("undefined","undefined");if(v(t)){var i="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(i,"string")}return g(t)?e.stylize(""+t,"number"):b(t)?e.stylize(""+t,"boolean"):m(t)?e.stylize("null","null"):void 0}function c(e){return"["+Error.prototype.toString.call(e)+"]"}function l(e,t,i,r,n){for(var s=[],a=0,o=t.length;a-1&&(o=s?o.split("\n").map(function(e){return" "+e}).join("\n").substr(2):"\n"+o.split("\n").map(function(e){return" "+e}).join("\n"))):o=e.stylize("[Circular]","special")),y(a)){if(s&&n.match(/^\d+$/))return o;a=JSON.stringify(""+n),a.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+o}function d(e,t,i){var r=0,n=e.reduce(function(e,t){return r++,t.indexOf("\n")>=0&&r++,e+t.replace(/\u001b\[\d\d?m/g,"").length+1},0);return n>60?i[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+i[1]:i[0]+t+" "+e.join(", ")+" "+i[1]}function p(e){return Array.isArray(e)}function b(e){return"boolean"==typeof e}function m(e){return null===e}function w(e){return null==e}function g(e){return"number"==typeof e}function v(e){return"string"==typeof e}function _(e){return"symbol"==typeof e}function y(e){return void 0===e}function k(e){return E(e)&&"[object RegExp]"===R(e)}function E(e){return"object"==typeof e&&null!==e}function A(e){return E(e)&&"[object Date]"===R(e)}function S(e){return E(e)&&("[object Error]"===R(e)||e instanceof Error)}function M(e){return"function"==typeof e}function T(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||"undefined"==typeof e}function R(e){return Object.prototype.toString.call(e)}function x(e){return e<10?"0"+e.toString(10):e.toString(10)}function C(){var e=new Date,t=[x(e.getHours()),x(e.getMinutes()),x(e.getSeconds())].join(":");return[e.getDate(),D[e.getMonth()],t].join(" ")}function I(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var P=/%[sdj%]/g;t.format=function(e){if(!v(e)){for(var t=[],i=0;i=s)return e;switch(e){case"%s":return String(r[i++]);case"%d":return Number(r[i++]);case"%j":try{return JSON.stringify(r[i++])}catch(e){return"[Circular]"}default:return e}}),o=r[i];i`}sendMessage(){}sendTTSMessage(){}sendFile(){}sendCode(){}}r.applyToClass(a),e.exports=a},function(e,t){class i{constructor(e={}){this.status=e.status||"offline",this.game=e.game?new r(e.game):null}update(e){this.status=e.status||this.status,this.game=e.game?new r(e.game):null}equals(e){return e&&this.status===e.status&&this.game?this.game.equals(e.game):!e.game}}class r{constructor(e){this.name=e.name,this.type=e.type,this.url=e.url||null}get streaming(){return 1===this.type}equals(e){return e&&this.name===e.name&&this.type===e.type&&this.url===e.url}}t.Presence=i,t.Game=r},function(e,t,i){var r=t;r.utils=i(195),r.common=i(191),r.sha=i(194),r.ripemd=i(193),r.hmac=i(192),r.sha1=r.sha.sha1,r.sha256=r.sha.sha256,r.sha224=r.sha.sha224,r.sha384=r.sha.sha384,r.sha512=r.sha.sha512,r.ripemd160=r.ripemd.ripemd160},function(e,t,i){(function(e){function i(e,t){for(var i=0,r=e.length-1;r>=0;r--){var n=e[r];"."===n?e.splice(r,1):".."===n?(e.splice(r,1),i++):i&&(e.splice(r,1),i--)}if(t)for(;i--;i)e.unshift("..");return e}function r(e,t){if(e.filter)return e.filter(t);for(var i=[],r=0;r=-1&&!n;s--){var a=s>=0?arguments[s]:e.cwd();if("string"!=typeof a)throw new TypeError("Arguments to path.resolve must be strings");a&&(t=a+"/"+t,n="/"===a.charAt(0))}return t=i(r(t.split("/"),function(e){return!!e}),!n).join("/"),(n?"/":"")+t||"."},t.normalize=function(e){var n=t.isAbsolute(e),s="/"===a(e,-1);return e=i(r(e.split("/"),function(e){return!!e}),!n).join("/"),e||n||(e="."),e&&s&&(e+="/"),(n?"/":"")+e},t.isAbsolute=function(e){return"/"===e.charAt(0)},t.join=function(){var e=Array.prototype.slice.call(arguments,0);return t.normalize(r(e,function(e,t){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e}).join("/"))},t.relative=function(e,i){function r(e){for(var t=0;t=0&&""===e[i];i--);return t>i?[]:e.slice(t,i-t+1)}e=t.resolve(e).substr(1),i=t.resolve(i).substr(1);for(var n=r(e.split("/")),s=r(i.split("/")),a=Math.min(n.length,s.length),o=a,f=0;f=8*this._finalSize&&(this._update(this._block),this._block.fill(0)),this._block.writeInt32BE(t,this._blockSize-4);var i=this._update(this._block)||this._hash();return e?i.toString(e):i},i.prototype._update=function(){throw new Error("_update must be implemented by subclass")},e.exports=i}).call(t,i(0).Buffer)},function(e,t){class i{constructor(e,t){this.client=e,Object.defineProperty(this,"client",{enumerable:!1,configurable:!1}),this.type=null,t&&this.setup(t)}setup(e){this.id=e.id}get createdTimestamp(){return this.id/4194304+14200704e5}get createdAt(){return new Date(this.createdTimestamp)}delete(){return this.client.rest.methods.deleteChannel(this)}}e.exports=i},function(e,t,i){const r=i(2),n=i(6);class s{constructor(e,t){this.client=e.client,Object.defineProperty(this,"client",{enumerable:!1,configurable:!1}),this.guild=e,this.setup(t)}setup(e){this.id=e.id,this.name=e.name,this.requiresColons=e.require_colons,this.managed=e.managed,this._roles=e.roles}get createdTimestamp(){return this.id/4194304+14200704e5}get createdAt(){return new Date(this.createdTimestamp)}get roles(){const e=new n;for(const t of this._roles)this.guild.roles.has(t)&&e.set(t,this.guild.roles.get(t));return e}get url(){return`${r.Endpoints.CDN}/emojis/${this.id}.png`}toString(){return this.requiresColons?`<:${this.name}:${this.id}>`:this.name}get identifier(){return this.id?`${this.name}:${this.id}`:encodeURIComponent(this.name)}}e.exports=s},function(e,t,i){const r=i(2);class n{constructor(e,t){this.client=e.client,Object.defineProperty(this,"client",{enumerable:!1,configurable:!1}),this.guild=e,t&&this.setup(t)}setup(e){this.id=e.id,this.name=e.name,this.color=e.color,this.hoist=e.hoist,this.position=e.position,this.permissions=e.permissions,this.managed=e.managed,this.mentionable=e.mentionable}get createdTimestamp(){return this.id/4194304+14200704e5}get createdAt(){return new Date(this.createdTimestamp)}get hexColor(){let e=this.color.toString(16);for(;e.length<6;)e=`0${e}`;return`#${e}`}get members(){return this.guild.members.filter(e=>e.roles.has(this.id))}serialize(){const e={};for(const t in r.PermissionFlags)e[t]=this.hasPermission(t);return e}hasPermission(e,t=false){ -return e=this.client.resolver.resolvePermission(e),!t&&(this.permissions&r.PermissionFlags.ADMINISTRATOR)>0||(this.permissions&e)>0}hasPermissions(e,t=false){return e.every(e=>this.hasPermission(e,t))}comparePositionTo(e){return this.constructor.comparePositions(this,e)}edit(e){return this.client.rest.methods.updateGuildRole(this,e)}setName(e){return this.edit({name:e})}setColor(e){return this.edit({color:e})}setHoist(e){return this.edit({hoist:e})}setPosition(e){return this.guild.setRolePosition(this,e)}setPermissions(e){return this.edit({permissions:e})}setMentionable(e){return this.edit({mentionable:e})}delete(){return this.client.rest.methods.deleteGuildRole(this)}get editable(){if(this.managed)return!1;const e=this.guild.member(this.client.user);return!!e.hasPermission(r.PermissionFlags.MANAGE_ROLES_OR_PERMISSIONS)&&e.highestRole.comparePositionTo(this)>0}equals(e){return e&&this.id===e.id&&this.name===e.name&&this.color===e.color&&this.hoist===e.hoist&&this.position===e.position&&this.permissions===e.permissions&&this.managed===e.managed}toString(){return`<@&${this.id}>`}static comparePositions(e,t){return e.position===t.position?t.id-e.id:e.position-t.position}}e.exports=n},function(e,t,i){var r=t;r.Reporter=i(141).Reporter,r.DecoderBuffer=i(80).DecoderBuffer,r.EncoderBuffer=i(80).EncoderBuffer,r.Node=i(140)},function(e,t,i){(function(t){e.exports=function(e,i){for(var r=Math.min(e.length,i.length),n=new t(r),s=0;s65536)throw new Error("requested too many random bytes");var s=new t.Uint8Array(e);e>0&&a.getRandomValues(s);var o=new i(s.buffer);return"function"==typeof n?r.nextTick(function(){n(null,o)}):o}var a=t.crypto||t.msCrypto;a&&a.getRandomValues?e.exports=s:e.exports=n}).call(t,i(16),i(0).Buffer,i(5))},function(e,t,i){function r(e,t){Object.defineProperty(e.prototype,t,Object.getOwnPropertyDescriptor(h.prototype,t))}const n=i(14),s=i(44),a=i(69),o=i(6),f=i(31);class h{constructor(){this.messages=new o,this.lastMessageID=null}sendMessage(e,t={}){return this.client.rest.methods.sendMessage(this,e,t)}sendTTSMessage(e,t={}){return Object.assign(t,{tts:!0}),this.client.rest.methods.sendMessage(this,e,t)}sendFile(e,t,i,r={}){return t||(t="string"==typeof e?n.basename(e):e&&e.path?n.basename(e.path):"file.jpg"),this.client.resolver.resolveBuffer(e).then(e=>this.client.rest.methods.sendMessage(this,i,r,{file:e,name:t}))}sendCode(e,t,i={}){return i.split&&("object"!=typeof i.split&&(i.split={}),i.split.prepend||(i.split.prepend=`\`\`\`${e||""} +!function(e){function t(r){if(i[r])return i[r].exports;var n=i[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,t),n.l=!0,n.exports}var i={};return t.m=e,t.c=i,t.i=function(e){return e},t.d=function(e,t,i){Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:i})},t.n=function(e){var i=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(i,"a",i),i},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=340)}([function(e,t,i){"use strict";(function(e,r){function n(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}function s(){return e.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(t,i){if(s()=s())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s().toString(16)+" bytes");return 0|e}function m(t){return+t!=t&&(t=0),e.alloc(+t)}function w(t,i){if(e.isBuffer(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var r=t.length;if(0===r)return 0;for(var n=!1;;)switch(i){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return V(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return Y(t).length;default:if(n)return V(t).length;i=(""+i).toLowerCase(),n=!0}}function g(e,t,i){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===i||i>this.length)&&(i=this.length),i<=0)return"";if(i>>>=0,t>>>=0,i<=t)return"";for(e||(e="utf8");;)switch(e){case"hex":return O(this,t,i);case"utf8":case"utf-8":return R(this,t,i);case"ascii":return C(this,t,i);case"latin1":case"binary":return P(this,t,i);case"base64":return x(this,t,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return N(this,t,i);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function v(e,t,i){var r=e[t];e[t]=e[i],e[i]=r}function _(t,i,r,n,s){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=s?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(s)return-1;r=t.length-1}else if(r<0){if(!s)return-1;r=0}if("string"==typeof i&&(i=e.from(i,n)),e.isBuffer(i))return 0===i.length?-1:y(t,i,r,n,s);if("number"==typeof i)return i&=255,e.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?s?Uint8Array.prototype.indexOf.call(t,i,r):Uint8Array.prototype.lastIndexOf.call(t,i,r):y(t,[i],r,n,s);throw new TypeError("val must be string, number or Buffer")}function y(e,t,i,r,n){function s(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}var a=1,o=e.length,f=t.length;if(void 0!==r&&(r=String(r).toLowerCase(),"ucs2"===r||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,o/=2,f/=2,i/=2}var h;if(n){var c=-1;for(h=i;ho&&(i=o-f),h=i;h>=0;h--){for(var l=!0,u=0;un&&(r=n)):r=n;var s=t.length;if(s%2!==0)throw new TypeError("Invalid hex string");r>s/2&&(r=s/2);for(var a=0;a239?4:s>223?3:s>191?2:1;if(n+o<=i){var f,h,c,l;switch(o){case 1:s<128&&(a=s);break;case 2:f=e[n+1],128===(192&f)&&(l=(31&s)<<6|63&f,l>127&&(a=l));break;case 3:f=e[n+1],h=e[n+2],128===(192&f)&&128===(192&h)&&(l=(15&s)<<12|(63&f)<<6|63&h,l>2047&&(l<55296||l>57343)&&(a=l));break;case 4:f=e[n+1],h=e[n+2],c=e[n+3],128===(192&f)&&128===(192&h)&&128===(192&c)&&(l=(15&s)<<18|(63&f)<<12|(63&h)<<6|63&c,l>65535&&l<1114112&&(a=l))}}null===a?(a=65533,o=1):a>65535&&(a-=65536,r.push(a>>>10&1023|55296),a=56320|1023&a),r.push(a),n+=o}return I(r)}function I(e){var t=e.length;if(t<=ee)return String.fromCharCode.apply(String,e);for(var i="",r=0;rr)&&(i=r);for(var n="",s=t;si)throw new RangeError("Trying to access beyond buffer length")}function L(t,i,r,n,s,a){if(!e.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(i>s||it.length)throw new RangeError("Index out of range")}function B(e,t,i,r){t<0&&(t=65535+t+1);for(var n=0,s=Math.min(e.length-i,2);n>>8*(r?n:1-n)}function U(e,t,i,r){t<0&&(t=4294967295+t+1);for(var n=0,s=Math.min(e.length-i,4);n>>8*(r?n:3-n)&255}function j(e,t,i,r,n,s){if(i+r>e.length)throw new RangeError("Index out of range");if(i<0)throw new RangeError("Index out of range")}function F(e,t,i,r,n){return n||j(e,t,i,4,3.4028234663852886e38,-3.4028234663852886e38),J.write(e,t,i,r,23,4),i+4}function z(e,t,i,r,n){return n||j(e,t,i,8,1.7976931348623157e308,-1.7976931348623157e308),J.write(e,t,i,r,52,8),i+8}function q(e){if(e=H(e).replace(te,""),e.length<2)return"";for(;e.length%4!==0;)e+="=";return e}function H(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function G(e){return e<16?"0"+e.toString(16):e.toString(16)}function V(e,t){t=t||1/0;for(var i,r=e.length,n=null,s=[],a=0;a55295&&i<57344){if(!n){if(i>56319){(t-=3)>-1&&s.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&s.push(239,191,189);continue}n=i;continue}if(i<56320){(t-=3)>-1&&s.push(239,191,189),n=i;continue}i=(n-55296<<10|i-56320)+65536}else n&&(t-=3)>-1&&s.push(239,191,189);if(n=null,i<128){if((t-=1)<0)break;s.push(i)}else if(i<2048){if((t-=2)<0)break;s.push(i>>6|192,63&i|128)}else if(i<65536){if((t-=3)<0)break;s.push(i>>12|224,i>>6&63|128,63&i|128)}else{if(!(i<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;s.push(i>>18|240,i>>12&63|128,i>>6&63|128,63&i|128)}}return s}function W(e){for(var t=[],i=0;i>8,n=i%256,s.push(n),s.push(r);return s}function Y(e){return X.toByteArray(q(e))}function Z(e,t,i,r){for(var n=0;n=t.length||n>=e.length);++n)t[n+i]=e[n];return n}function $(e){return e!==e}var X=i(150),J=i(200),Q=i(106);t.Buffer=e,t.SlowBuffer=m,t.INSPECT_MAX_BYTES=50,e.TYPED_ARRAY_SUPPORT=void 0!==r.TYPED_ARRAY_SUPPORT?r.TYPED_ARRAY_SUPPORT:n(),t.kMaxLength=s(),e.poolSize=8192,e._augment=function(t){return t.__proto__=e.prototype,t},e.from=function(e,t,i){return o(null,e,t,i)},e.TYPED_ARRAY_SUPPORT&&(e.prototype.__proto__=Uint8Array.prototype,e.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&e[Symbol.species]===e&&Object.defineProperty(e,Symbol.species,{value:null,configurable:!0})),e.alloc=function(e,t,i){return h(null,e,t,i)},e.allocUnsafe=function(e){return c(null,e)},e.allocUnsafeSlow=function(e){return c(null,e)},e.isBuffer=function(e){return!(null==e||!e._isBuffer)},e.compare=function(t,i){if(!e.isBuffer(t)||!e.isBuffer(i))throw new TypeError("Arguments must be Buffers");if(t===i)return 0;for(var r=t.length,n=i.length,s=0,a=Math.min(r,n);s0&&(e=this.toString("hex",0,i).match(/.{2}/g).join(" "),this.length>i&&(e+=" ... ")),""},e.prototype.compare=function(t,i,r,n,s){if(!e.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===i&&(i=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===s&&(s=this.length),i<0||r>t.length||n<0||s>this.length)throw new RangeError("out of range index");if(n>=s&&i>=r)return 0;if(n>=s)return-1;if(i>=r)return 1;if(i>>>=0,r>>>=0,n>>>=0,s>>>=0,this===t)return 0;for(var a=s-n,o=r-i,f=Math.min(a,o),h=this.slice(n,s),c=t.slice(i,r),l=0;ln)&&(i=n),e.length>0&&(i<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var s=!1;;)switch(r){case"hex":return k(this,e,t,i);case"utf8":case"utf-8":return E(this,e,t,i);case"ascii":return A(this,e,t,i);case"latin1":case"binary":return S(this,e,t,i);case"base64":return M(this,e,t,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return T(this,e,t,i);default:if(s)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),s=!0}},e.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var ee=4096;e.prototype.slice=function(t,i){var r=this.length;t=~~t,i=void 0===i?r:~~i,t<0?(t+=r,t<0&&(t=0)):t>r&&(t=r),i<0?(i+=r,i<0&&(i=0)):i>r&&(i=r),i0&&(n*=256);)r+=this[e+--t]*n;return r},e.prototype.readUInt8=function(e,t){return t||D(e,1,this.length),this[e]},e.prototype.readUInt16LE=function(e,t){return t||D(e,2,this.length),this[e]|this[e+1]<<8},e.prototype.readUInt16BE=function(e,t){return t||D(e,2,this.length),this[e]<<8|this[e+1]},e.prototype.readUInt32LE=function(e,t){return t||D(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},e.prototype.readUInt32BE=function(e,t){return t||D(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},e.prototype.readIntLE=function(e,t,i){e|=0,t|=0,i||D(e,t,this.length);for(var r=this[e],n=1,s=0;++s=n&&(r-=Math.pow(2,8*t)),r},e.prototype.readIntBE=function(e,t,i){e|=0,t|=0,i||D(e,t,this.length);for(var r=t,n=1,s=this[e+--r];r>0&&(n*=256);)s+=this[e+--r]*n;return n*=128,s>=n&&(s-=Math.pow(2,8*t)),s},e.prototype.readInt8=function(e,t){return t||D(e,1,this.length),128&this[e]?(255-this[e]+1)*-1:this[e]},e.prototype.readInt16LE=function(e,t){t||D(e,2,this.length);var i=this[e]|this[e+1]<<8;return 32768&i?4294901760|i:i},e.prototype.readInt16BE=function(e,t){t||D(e,2,this.length);var i=this[e+1]|this[e]<<8;return 32768&i?4294901760|i:i},e.prototype.readInt32LE=function(e,t){return t||D(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},e.prototype.readInt32BE=function(e,t){return t||D(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},e.prototype.readFloatLE=function(e,t){return t||D(e,4,this.length),J.read(this,e,!0,23,4)},e.prototype.readFloatBE=function(e,t){return t||D(e,4,this.length),J.read(this,e,!1,23,4)},e.prototype.readDoubleLE=function(e,t){return t||D(e,8,this.length),J.read(this,e,!0,52,8)},e.prototype.readDoubleBE=function(e,t){return t||D(e,8,this.length),J.read(this,e,!1,52,8)},e.prototype.writeUIntLE=function(e,t,i,r){if(e=+e,t|=0,i|=0,!r){var n=Math.pow(2,8*i)-1;L(this,e,t,i,n,0)}var s=1,a=0;for(this[t]=255&e;++a=0&&(a*=256);)this[t+s]=e/a&255;return t+i},e.prototype.writeUInt8=function(t,i,r){return t=+t,i|=0,r||L(this,t,i,1,255,0),e.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[i]=255&t,i+1},e.prototype.writeUInt16LE=function(t,i,r){return t=+t,i|=0,r||L(this,t,i,2,65535,0),e.TYPED_ARRAY_SUPPORT?(this[i]=255&t,this[i+1]=t>>>8):B(this,t,i,!0),i+2},e.prototype.writeUInt16BE=function(t,i,r){return t=+t,i|=0,r||L(this,t,i,2,65535,0),e.TYPED_ARRAY_SUPPORT?(this[i]=t>>>8,this[i+1]=255&t):B(this,t,i,!1),i+2},e.prototype.writeUInt32LE=function(t,i,r){return t=+t,i|=0,r||L(this,t,i,4,4294967295,0),e.TYPED_ARRAY_SUPPORT?(this[i+3]=t>>>24,this[i+2]=t>>>16,this[i+1]=t>>>8,this[i]=255&t):U(this,t,i,!0),i+4},e.prototype.writeUInt32BE=function(t,i,r){return t=+t,i|=0,r||L(this,t,i,4,4294967295,0),e.TYPED_ARRAY_SUPPORT?(this[i]=t>>>24,this[i+1]=t>>>16,this[i+2]=t>>>8,this[i+3]=255&t):U(this,t,i,!1),i+4},e.prototype.writeIntLE=function(e,t,i,r){if(e=+e,t|=0,!r){var n=Math.pow(2,8*i-1);L(this,e,t,i,n-1,-n)}var s=0,a=1,o=0;for(this[t]=255&e;++s>0)-o&255;return t+i},e.prototype.writeIntBE=function(e,t,i,r){if(e=+e,t|=0,!r){var n=Math.pow(2,8*i-1);L(this,e,t,i,n-1,-n)}var s=i-1,a=1,o=0;for(this[t+s]=255&e;--s>=0&&(a*=256);)e<0&&0===o&&0!==this[t+s+1]&&(o=1),this[t+s]=(e/a>>0)-o&255;return t+i},e.prototype.writeInt8=function(t,i,r){return t=+t,i|=0,r||L(this,t,i,1,127,-128),e.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[i]=255&t,i+1},e.prototype.writeInt16LE=function(t,i,r){return t=+t,i|=0,r||L(this,t,i,2,32767,-32768),e.TYPED_ARRAY_SUPPORT?(this[i]=255&t,this[i+1]=t>>>8):B(this,t,i,!0),i+2},e.prototype.writeInt16BE=function(t,i,r){return t=+t,i|=0,r||L(this,t,i,2,32767,-32768),e.TYPED_ARRAY_SUPPORT?(this[i]=t>>>8,this[i+1]=255&t):B(this,t,i,!1),i+2},e.prototype.writeInt32LE=function(t,i,r){return t=+t,i|=0,r||L(this,t,i,4,2147483647,-2147483648),e.TYPED_ARRAY_SUPPORT?(this[i]=255&t,this[i+1]=t>>>8,this[i+2]=t>>>16,this[i+3]=t>>>24):U(this,t,i,!0),i+4},e.prototype.writeInt32BE=function(t,i,r){return t=+t,i|=0,r||L(this,t,i,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),e.TYPED_ARRAY_SUPPORT?(this[i]=t>>>24,this[i+1]=t>>>16,this[i+2]=t>>>8,this[i+3]=255&t):U(this,t,i,!1),i+4},e.prototype.writeFloatLE=function(e,t,i){return F(this,e,t,!0,i)},e.prototype.writeFloatBE=function(e,t,i){return F(this,e,t,!1,i)},e.prototype.writeDoubleLE=function(e,t,i){return z(this,e,t,!0,i)},e.prototype.writeDoubleBE=function(e,t,i){return z(this,e,t,!1,i)},e.prototype.copy=function(t,i,r,n){if(r||(r=0),n||0===n||(n=this.length),i>=t.length&&(i=t.length),i||(i=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-i=0;--s)t[s+i]=this[s+r];else if(a<1e3||!e.TYPED_ARRAY_SUPPORT)for(s=0;s>>=0,r=void 0===r?this.length:r>>>0,t||(t=0);var a;if("number"==typeof t)for(a=i;a`${n}/invite/${e}`,inviteLink:e=>`https://discord.gg/${e}`,CDN:"https://cdn.discordapp.com",user:e=>`${n}/users/${e}`,userChannels:e=>`${s.user(e)}/channels`,userProfile:e=>`${s.user(e)}/profile`,avatar:(e,t)=>"1"===e?t:`${s.user(e)}/avatars/${t}.jpg`,me:`${n}/users/@me`,meGuild:e=>`${s.me}/guilds/${e}`,relationships:e=>`${s.user(e)}/relationships`,note:e=>`${s.me}/notes/${e}`,guilds:`${n}/guilds`,guild:e=>`${s.guilds}/${e}`,guildIcon:(e,t)=>`${s.guild(e)}/icons/${t}.jpg`,guildPrune:e=>`${s.guild(e)}/prune`,guildEmbed:e=>`${s.guild(e)}/embed`,guildInvites:e=>`${s.guild(e)}/invites`,guildRoles:e=>`${s.guild(e)}/roles`,guildRole:(e,t)=>`${s.guildRoles(e)}/${t}`,guildBans:e=>`${s.guild(e)}/bans`,guildIntegrations:e=>`${s.guild(e)}/integrations`,guildMembers:e=>`${s.guild(e)}/members`,guildMember:(e,t)=>`${s.guildMembers(e)}/${t}`,stupidInconsistentGuildEndpoint:e=>`${s.guildMember(e,"@me")}/nick`,guildChannels:e=>`${s.guild(e)}/channels`,guildEmojis:e=>`${s.guild(e)}/emojis`,channels:`${n}/channels`,channel:e=>`${s.channels}/${e}`,channelMessages:e=>`${s.channel(e)}/messages`,channelInvites:e=>`${s.channel(e)}/invites`,channelTyping:e=>`${s.channel(e)}/typing`,channelPermissions:e=>`${s.channel(e)}/permissions`,channelMessage:(e,t)=>`${s.channelMessages(e)}/${t}`,channelWebhooks:e=>`${s.channel(e)}/webhooks`,messageReactions:(e,t)=>`${s.channelMessage(e,t)}/reactions`,messageReaction:(e,t,i,r)=>`${s.messageReactions(e,t)}/${i}`+`${r?`?limit=${r}`:""}`,selfMessageReaction:(e,t,i,r)=>`${s.messageReaction(e,t,i,r)}/@me`,userMessageReaction:(e,t,i,r,n)=>`${s.messageReaction(e,t,i,r)}/${n}`,webhook:(e,t)=>`${n}/webhooks/${e}${t?`/${t}`:""}`,myApplication:`${n}/oauth2/applications/@me`,getApp:e=>`${n}/oauth2/authorize?client_id=${e}`};t.Status={READY:0,CONNECTING:1,RECONNECTING:2,IDLE:3,NEARLY:4},t.ChannelTypes={text:0,DM:1,voice:2,groupDM:3},t.OPCodes={DISPATCH:0,HEARTBEAT:1,IDENTIFY:2,STATUS_UPDATE:3,VOICE_STATE_UPDATE:4,VOICE_GUILD_PING:5,RESUME:6,RECONNECT:7,REQUEST_GUILD_MEMBERS:8,INVALID_SESSION:9,HELLO:10,HEARTBEAT_ACK:11},t.VoiceOPCodes={IDENTIFY:0,SELECT_PROTOCOL:1,READY:2,HEARTBEAT:3,SESSION_DESCRIPTION:4,SPEAKING:5},t.Events={READY:"ready",GUILD_CREATE:"guildCreate",GUILD_DELETE:"guildDelete",GUILD_UPDATE:"guildUpdate",GUILD_UNAVAILABLE:"guildUnavailable",GUILD_AVAILABLE:"guildAvailable",GUILD_MEMBER_ADD:"guildMemberAdd",GUILD_MEMBER_REMOVE:"guildMemberRemove",GUILD_MEMBER_UPDATE:"guildMemberUpdate",GUILD_MEMBER_AVAILABLE:"guildMemberAvailable",GUILD_MEMBER_SPEAKING:"guildMemberSpeaking",GUILD_MEMBERS_CHUNK:"guildMembersChunk",GUILD_ROLE_CREATE:"roleCreate",GUILD_ROLE_DELETE:"roleDelete",GUILD_ROLE_UPDATE:"roleUpdate",GUILD_EMOJI_CREATE:"guildEmojiCreate",GUILD_EMOJI_DELETE:"guildEmojiDelete",GUILD_EMOJI_UPDATE:"guildEmojiUpdate",GUILD_BAN_ADD:"guildBanAdd",GUILD_BAN_REMOVE:"guildBanRemove",CHANNEL_CREATE:"channelCreate",CHANNEL_DELETE:"channelDelete",CHANNEL_UPDATE:"channelUpdate",CHANNEL_PINS_UPDATE:"channelPinsUpdate",MESSAGE_CREATE:"message",MESSAGE_DELETE:"messageDelete",MESSAGE_UPDATE:"messageUpdate",MESSAGE_BULK_DELETE:"messageDeleteBulk",MESSAGE_REACTION_ADD:"messageReactionAdd",MESSAGE_REACTION_REMOVE:"messageReactionRemove",MESSAGE_REACTION_REMOVE_ALL:"messageReactionRemoveAll",USER_UPDATE:"userUpdate",USER_NOTE_UPDATE:"userNoteUpdate",PRESENCE_UPDATE:"presenceUpdate",VOICE_STATE_UPDATE:"voiceStateUpdate",TYPING_START:"typingStart",TYPING_STOP:"typingStop",DISCONNECT:"disconnect",RECONNECTING:"reconnecting",ERROR:"error",WARN:"warn",DEBUG:"debug"},t.WSEvents={READY:"READY",GUILD_SYNC:"GUILD_SYNC",GUILD_CREATE:"GUILD_CREATE",GUILD_DELETE:"GUILD_DELETE",GUILD_UPDATE:"GUILD_UPDATE",GUILD_MEMBER_ADD:"GUILD_MEMBER_ADD",GUILD_MEMBER_REMOVE:"GUILD_MEMBER_REMOVE",GUILD_MEMBER_UPDATE:"GUILD_MEMBER_UPDATE",GUILD_MEMBERS_CHUNK:"GUILD_MEMBERS_CHUNK",GUILD_ROLE_CREATE:"GUILD_ROLE_CREATE",GUILD_ROLE_DELETE:"GUILD_ROLE_DELETE",GUILD_ROLE_UPDATE:"GUILD_ROLE_UPDATE",GUILD_BAN_ADD:"GUILD_BAN_ADD",GUILD_BAN_REMOVE:"GUILD_BAN_REMOVE",CHANNEL_CREATE:"CHANNEL_CREATE",CHANNEL_DELETE:"CHANNEL_DELETE",CHANNEL_UPDATE:"CHANNEL_UPDATE",CHANNEL_PINS_UPDATE:"CHANNEL_PINS_UPDATE",MESSAGE_CREATE:"MESSAGE_CREATE",MESSAGE_DELETE:"MESSAGE_DELETE",MESSAGE_UPDATE:"MESSAGE_UPDATE",MESSAGE_DELETE_BULK:"MESSAGE_DELETE_BULK",MESSAGE_REACTION_ADD:"MESSAGE_REACTION_ADD",MESSAGE_REACTION_REMOVE:"MESSAGE_REACTION_REMOVE",MESSAGE_REACTION_REMOVE_ALL:"MESSAGE_REACTION_REMOVE_ALL",USER_UPDATE:"USER_UPDATE",USER_NOTE_UPDATE:"USER_NOTE_UPDATE",PRESENCE_UPDATE:"PRESENCE_UPDATE",VOICE_STATE_UPDATE:"VOICE_STATE_UPDATE",TYPING_START:"TYPING_START",FRIEND_ADD:"RELATIONSHIP_ADD",FRIEND_REMOVE:"RELATIONSHIP_REMOVE",VOICE_SERVER_UPDATE:"VOICE_SERVER_UPDATE",RELATIONSHIP_ADD:"RELATIONSHIP_ADD",RELATIONSHIP_REMOVE:"RELATIONSHIP_REMOVE"},t.MessageTypes={0:"DEFAULT",1:"RECIPIENT_ADD",2:"RECIPIENT_REMOVE",3:"CALL",4:"CHANNEL_NAME_CHANGE",5:"CHANNEL_ICON_CHANGE",6:"PINS_ADD"};const a=t.PermissionFlags={CREATE_INSTANT_INVITE:1,KICK_MEMBERS:2,BAN_MEMBERS:4,ADMINISTRATOR:8,MANAGE_CHANNELS:16,MANAGE_GUILD:32,ADD_REACTIONS:64,READ_MESSAGES:1024,SEND_MESSAGES:2048,SEND_TTS_MESSAGES:4096,MANAGE_MESSAGES:8192,EMBED_LINKS:16384,ATTACH_FILES:32768,READ_MESSAGE_HISTORY:65536,MENTION_EVERYONE:1<<17,EXTERNAL_EMOJIS:1<<18,CONNECT:1<<20,SPEAK:1<<21,MUTE_MEMBERS:1<<22,DEAFEN_MEMBERS:1<<23,MOVE_MEMBERS:1<<24,USE_VAD:1<<25,CHANGE_NICKNAME:1<<26,MANAGE_NICKNAMES:1<<27,MANAGE_ROLES_OR_PERMISSIONS:1<<28,MANAGE_WEBHOOKS:1<<29,MANAGE_EMOJIS:1<<30};let o=0;for(const f in a)o|=a[f];t.ALL_PERMISSIONS=o,t.DEFAULT_PERMISSIONS=104324097}).call(t,i(8))},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var i=function(){};i.prototype=t.prototype,e.prototype=new i,e.prototype.constructor=e}},function(e,t){class i{constructor(e){this.packetManager=e}handle(e){return e}}e.exports=i},function(e,t){class i{constructor(e){this.client=e}handle(e){return e}}e.exports=i},function(e,t){function i(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function r(e){return"function"==typeof e}function n(e){return"number"==typeof e}function s(e){return"object"==typeof e&&null!==e}function a(e){return void 0===e}e.exports=i,i.EventEmitter=i,i.prototype._events=void 0,i.prototype._maxListeners=void 0,i.defaultMaxListeners=10,i.prototype.setMaxListeners=function(e){if(!n(e)||e<0||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},i.prototype.emit=function(e){var t,i,n,o,f,h;if(this._events||(this._events={}),"error"===e&&(!this._events.error||s(this._events.error)&&!this._events.error.length)){if(t=arguments[1],t instanceof Error)throw t;var c=new Error('Uncaught, unspecified "error" event. ('+t+")");throw c.context=t,c}if(i=this._events[e],a(i))return!1;if(r(i))switch(arguments.length){case 1:i.call(this);break;case 2:i.call(this,arguments[1]);break;case 3:i.call(this,arguments[1],arguments[2]);break;default:o=Array.prototype.slice.call(arguments,1),i.apply(this,o)}else if(s(i))for(o=Array.prototype.slice.call(arguments,1),h=i.slice(),n=h.length,f=0;f0&&this._events[e].length>n&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace())),this},i.prototype.on=i.prototype.addListener,i.prototype.once=function(e,t){function i(){this.removeListener(e,i),n||(n=!0,t.apply(this,arguments))}if(!r(t))throw TypeError("listener must be a function");var n=!1;return i.listener=t,this.on(e,i),this},i.prototype.removeListener=function(e,t){var i,n,a,o;if(!r(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(i=this._events[e],a=i.length,n=-1,i===t||r(i.listener)&&i.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(s(i)){for(o=a;o-- >0;)if(i[o]===t||i[o].listener&&i[o].listener===t){n=o;break}if(n<0)return this;1===i.length?(i.length=0,delete this._events[e]):i.splice(n,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},i.prototype.removeAllListeners=function(e){var t,i;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(i=this._events[e],r(i))this.removeListener(e,i);else if(i)for(;i.length;)this.removeListener(e,i[i.length-1]);return delete this._events[e],this},i.prototype.listeners=function(e){var t;return t=this._events&&this._events[e]?r(this._events[e])?[this._events[e]]:this._events[e].slice():[]},i.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(r(t))return 1;if(t)return t.length}return 0},i.listenerCount=function(e,t){return e.listenerCount(t)}},function(e,t){class i extends Map{constructor(e){super(e),this._array=null,this._keyArray=null}set(e,t){super.set(e,t),this._array=null,this._keyArray=null}delete(e){super.delete(e),this._array=null,this._keyArray=null}array(){return this._array&&this._array.length===this.size||(this._array=Array.from(this.values())),this._array}keyArray(){return this._keyArray&&this._keyArray.length===this.size||(this._keyArray=Array.from(this.keys())),this._keyArray}first(){return this.values().next().value}firstKey(){return this.keys().next().value}last(){const e=this.array();return e[e.length-1]}lastKey(){const e=this.keyArray();return e[e.length-1]}random(){const e=this.array();return e[Math.floor(Math.random()*e.length)]; +}randomKey(){const e=this.keyArray();return e[Math.floor(Math.random()*e.length)]}findAll(e,t){if("string"!=typeof e)throw new TypeError("Key must be a string.");if("undefined"==typeof t)throw new Error("Value must be specified.");const i=[];for(const r of this.values())r[e]===t&&i.push(r);return i}find(e,t){if("string"==typeof e){if("undefined"==typeof t)throw new Error("Value must be specified.");if("id"===e)throw new RangeError("Don't use .find() with IDs. Instead, use .get(id).");for(const i of this.values())if(i[e]===t)return i;return null}if("function"==typeof e){for(const[t,i]of this)if(e(i,t,this))return i;return null}throw new Error("First argument must be a property string or a function.")}findKey(e,t){if("string"==typeof e){if("undefined"==typeof t)throw new Error("Value must be specified.");for(const[i,r]of this)if(r[e]===t)return i;return null}if("function"==typeof e){for(const[t,i]of this)if(e(i,t,this))return t;return null}throw new Error("First argument must be a property string or a function.")}exists(e,t){if("id"===e)throw new RangeError("Don't use .exists() with IDs. Instead, use .has(id).");return Boolean(this.find(e,t))}filter(e,t){t&&(e=e.bind(t));const r=new i;for(const[n,s]of this)e(s,n,this)&&r.set(n,s);return r}filterArray(e,t){t&&(e=e.bind(t));const i=[];for(const[r,n]of this)e(n,r,this)&&i.push(n);return i}map(e,t){t&&(e=e.bind(t));const i=new Array(this.size);let r=0;for(const[n,s]of this)i[r++]=e(s,n,this);return i}some(e,t){t&&(e=e.bind(t));for(const[i,r]of this)if(e(r,i,this))return!0;return!1}every(e,t){t&&(e=e.bind(t));for(const[i,r]of this)if(!e(r,i,this))return!1;return!0}reduce(e,t){let i=t;for(const[r,n]of this)i=e(i,n,r,this);return i}concat(...e){const t=new this.constructor;for(const[i,r]of this)t.set(i,r);for(const n of e)for(const[i,r]of n)t.set(i,r);return t}deleteAll(){const e=[];for(const t of this.values())t.delete&&e.push(t.delete());return e}}e.exports=i},function(e,t,i){(function(e){!function(e,t){"use strict";function r(e,t){if(!e)throw new Error(t||"Assertion failed")}function n(e,t){e.super_=t;var i=function(){};i.prototype=t.prototype,e.prototype=new i,e.prototype.constructor=e}function s(e,t,i){return s.isBN(e)?e:(this.negative=0,this.words=null,this.length=0,this.red=null,void(null!==e&&("le"!==t&&"be"!==t||(i=t,t=10),this._init(e||0,t||10,i||"be"))))}function a(e,t,i){for(var r=0,n=Math.min(e.length,i),s=t;s=49&&a<=54?a-49+10:a>=17&&a<=22?a-17+10:15&a}return r}function o(e,t,i,r){for(var n=0,s=Math.min(e.length,i),a=t;a=49?o-49+10:o>=17?o-17+10:o}return n}function f(e){for(var t=new Array(e.bitLength()),i=0;i>>n}return t}function h(e,t,i){i.negative=t.negative^e.negative;var r=e.length+t.length|0;i.length=r,r=r-1|0;var n=0|e.words[0],s=0|t.words[0],a=n*s,o=67108863&a,f=a/67108864|0;i.words[0]=o;for(var h=1;h>>26,l=67108863&f,u=Math.min(h,t.length-1),d=Math.max(0,h-e.length+1);d<=u;d++){var p=h-d|0;n=0|e.words[p],s=0|t.words[d],a=n*s+l,c+=a/67108864|0,l=67108863&a}i.words[h]=0|l,f=0|c}return 0!==f?i.words[h]=0|f:i.length--,i.strip()}function c(e,t,i){i.negative=t.negative^e.negative,i.length=e.length+t.length;for(var r=0,n=0,s=0;s>>26)|0,n+=a>>>26,a&=67108863}i.words[s]=o,r=a,a=n}return 0!==r?i.words[s]=r:i.length--,i.strip()}function l(e,t,i){var r=new u;return r.mulp(e,t,i)}function u(e,t){this.x=e,this.y=t}function d(e,t){this.name=e,this.p=new s(t,16),this.n=this.p.bitLength(),this.k=new s(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function p(){d.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function b(){d.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function m(){d.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function w(){d.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function g(e){if("string"==typeof e){var t=s._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function v(e){g.call(this,e),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new s(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}"object"==typeof e?e.exports=s:t.BN=s,s.BN=s,s.wordSize=26;var _;try{_=i(0).Buffer}catch(e){}s.isBN=function(e){return e instanceof s||null!==e&&"object"==typeof e&&e.constructor.wordSize===s.wordSize&&Array.isArray(e.words)},s.max=function(e,t){return e.cmp(t)>0?e:t},s.min=function(e,t){return e.cmp(t)<0?e:t},s.prototype._init=function(e,t,i){if("number"==typeof e)return this._initNumber(e,t,i);if("object"==typeof e)return this._initArray(e,t,i);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36),e=e.toString().replace(/\s+/g,"");var n=0;"-"===e[0]&&n++,16===t?this._parseHex(e,n):this._parseBase(e,t,n),"-"===e[0]&&(this.negative=1),this.strip(),"le"===i&&this._initArray(this.toArray(),t,i)},s.prototype._initNumber=function(e,t,i){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(r(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===i&&this._initArray(this.toArray(),t,i)},s.prototype._initArray=function(e,t,i){if(r("number"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var n=0;n=0;n-=3)a=e[n]|e[n-1]<<8|e[n-2]<<16,this.words[s]|=a<>>26-o&67108863,o+=24,o>=26&&(o-=26,s++);else if("le"===i)for(n=0,s=0;n>>26-o&67108863,o+=24,o>=26&&(o-=26,s++);return this.strip()},s.prototype._parseHex=function(e,t){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var i=0;i=t;i-=6)n=a(e,i,i+6),this.words[r]|=n<>>26-s&4194303,s+=24,s>=26&&(s-=26,r++);i+6!==t&&(n=a(e,t,i+6),this.words[r]|=n<>>26-s&4194303),this.strip()},s.prototype._parseBase=function(e,t,i){this.words=[0],this.length=1;for(var r=0,n=1;n<=67108863;n*=t)r++;r--,n=n/t|0;for(var s=e.length-i,a=s%r,f=Math.min(s,s-a)+i,h=0,c=i;c1&&0===this.words[this.length-1];)this.length--;return this._normSign()},s.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},s.prototype.inspect=function(){return(this.red?""};var y=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],k=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],E=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];s.prototype.toString=function(e,t){e=e||10,t=0|t||1;var i;if(16===e||"hex"===e){i="";for(var n=0,s=0,a=0;a>>24-n&16777215,i=0!==s||a!==this.length-1?y[6-f.length]+f+i:f+i,n+=2,n>=26&&(n-=26,a--)}for(0!==s&&(i=s.toString(16)+i);i.length%t!==0;)i="0"+i;return 0!==this.negative&&(i="-"+i),i}if(e===(0|e)&&e>=2&&e<=36){var h=k[e],c=E[e];i="";var l=this.clone();for(l.negative=0;!l.isZero();){var u=l.modn(c).toString(e);l=l.idivn(c),i=l.isZero()?u+i:y[h-u.length]+u+i}for(this.isZero()&&(i="0"+i);i.length%t!==0;)i="0"+i;return 0!==this.negative&&(i="-"+i),i}r(!1,"Base should be between 2 and 36")},s.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},s.prototype.toJSON=function(){return this.toString(16)},s.prototype.toBuffer=function(e,t){return r("undefined"!=typeof _),this.toArrayLike(_,e,t)},s.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},s.prototype.toArrayLike=function(e,t,i){var n=this.byteLength(),s=i||Math.max(1,n);r(n<=s,"byte array longer than desired length"),r(s>0,"Requested array length <= 0"),this.strip();var a,o,f="le"===t,h=new e(s),c=this.clone();if(f){for(o=0;!c.isZero();o++)a=c.andln(255),c.iushrn(8),h[o]=a;for(;o=4096&&(i+=13,t>>>=13),t>=64&&(i+=7,t>>>=7),t>=8&&(i+=4,t>>>=4),t>=2&&(i+=2,t>>>=2),i+t},s.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,i=0;return 0===(8191&t)&&(i+=13,t>>>=13),0===(127&t)&&(i+=7,t>>>=7),0===(15&t)&&(i+=4,t>>>=4),0===(3&t)&&(i+=2,t>>>=2),0===(1&t)&&i++,i},s.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},s.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},s.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},s.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var i=0;ie.length?this.clone().iand(e):e.clone().iand(this)},s.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},s.prototype.iuxor=function(e){var t,i;this.length>e.length?(t=this,i=e):(t=e,i=this);for(var r=0;re.length?this.clone().ixor(e):e.clone().ixor(this)},s.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},s.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),i=e%26;this._expand(t),i>0&&t--;for(var n=0;n0&&(this.words[n]=~this.words[n]&67108863>>26-i),this.strip()},s.prototype.notn=function(e){return this.clone().inotn(e)},s.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var i=e/26|0,n=e%26;return this._expand(i+1),t?this.words[i]=this.words[i]|1<e.length?(i=this,r=e):(i=e,r=this);for(var n=0,s=0;s>>26;for(;0!==n&&s>>26;if(this.length=i.length,0!==n)this.words[this.length]=n,this.length++;else if(i!==this)for(;se.length?this.clone().iadd(e):e.clone().iadd(this)},s.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;var r,n;i>0?(r=this,n=e):(r=e,n=this);for(var s=0,a=0;a>26,this.words[a]=67108863&t;for(;0!==s&&a>26,this.words[a]=67108863&t;if(0===s&&a>>13,d=0|a[1],p=8191&d,b=d>>>13,m=0|a[2],w=8191&m,g=m>>>13,v=0|a[3],_=8191&v,y=v>>>13,k=0|a[4],E=8191&k,A=k>>>13,S=0|a[5],M=8191&S,T=S>>>13,x=0|a[6],R=8191&x,I=x>>>13,C=0|a[7],P=8191&C,O=C>>>13,N=0|a[8],D=8191&N,L=N>>>13,B=0|a[9],U=8191&B,j=B>>>13,F=0|o[0],z=8191&F,q=F>>>13,H=0|o[1],G=8191&H,V=H>>>13,W=0|o[2],K=8191&W,Y=W>>>13,Z=0|o[3],$=8191&Z,X=Z>>>13,J=0|o[4],Q=8191&J,ee=J>>>13,te=0|o[5],ie=8191&te,re=te>>>13,ne=0|o[6],se=8191&ne,ae=ne>>>13,oe=0|o[7],fe=8191&oe,he=oe>>>13,ce=0|o[8],le=8191&ce,ue=ce>>>13,de=0|o[9],pe=8191&de,be=de>>>13;i.negative=e.negative^t.negative,i.length=19,r=Math.imul(l,z),n=Math.imul(l,q),n=n+Math.imul(u,z)|0,s=Math.imul(u,q);var me=(h+r|0)+((8191&n)<<13)|0;h=(s+(n>>>13)|0)+(me>>>26)|0,me&=67108863,r=Math.imul(p,z),n=Math.imul(p,q),n=n+Math.imul(b,z)|0,s=Math.imul(b,q),r=r+Math.imul(l,G)|0,n=n+Math.imul(l,V)|0,n=n+Math.imul(u,G)|0,s=s+Math.imul(u,V)|0;var we=(h+r|0)+((8191&n)<<13)|0;h=(s+(n>>>13)|0)+(we>>>26)|0,we&=67108863,r=Math.imul(w,z),n=Math.imul(w,q),n=n+Math.imul(g,z)|0,s=Math.imul(g,q),r=r+Math.imul(p,G)|0,n=n+Math.imul(p,V)|0,n=n+Math.imul(b,G)|0,s=s+Math.imul(b,V)|0,r=r+Math.imul(l,K)|0,n=n+Math.imul(l,Y)|0,n=n+Math.imul(u,K)|0,s=s+Math.imul(u,Y)|0;var ge=(h+r|0)+((8191&n)<<13)|0;h=(s+(n>>>13)|0)+(ge>>>26)|0,ge&=67108863,r=Math.imul(_,z),n=Math.imul(_,q),n=n+Math.imul(y,z)|0,s=Math.imul(y,q),r=r+Math.imul(w,G)|0,n=n+Math.imul(w,V)|0,n=n+Math.imul(g,G)|0,s=s+Math.imul(g,V)|0,r=r+Math.imul(p,K)|0,n=n+Math.imul(p,Y)|0,n=n+Math.imul(b,K)|0,s=s+Math.imul(b,Y)|0,r=r+Math.imul(l,$)|0,n=n+Math.imul(l,X)|0,n=n+Math.imul(u,$)|0,s=s+Math.imul(u,X)|0;var ve=(h+r|0)+((8191&n)<<13)|0;h=(s+(n>>>13)|0)+(ve>>>26)|0,ve&=67108863,r=Math.imul(E,z),n=Math.imul(E,q),n=n+Math.imul(A,z)|0,s=Math.imul(A,q),r=r+Math.imul(_,G)|0,n=n+Math.imul(_,V)|0,n=n+Math.imul(y,G)|0,s=s+Math.imul(y,V)|0,r=r+Math.imul(w,K)|0,n=n+Math.imul(w,Y)|0,n=n+Math.imul(g,K)|0,s=s+Math.imul(g,Y)|0,r=r+Math.imul(p,$)|0,n=n+Math.imul(p,X)|0,n=n+Math.imul(b,$)|0,s=s+Math.imul(b,X)|0,r=r+Math.imul(l,Q)|0,n=n+Math.imul(l,ee)|0,n=n+Math.imul(u,Q)|0,s=s+Math.imul(u,ee)|0;var _e=(h+r|0)+((8191&n)<<13)|0;h=(s+(n>>>13)|0)+(_e>>>26)|0,_e&=67108863,r=Math.imul(M,z),n=Math.imul(M,q),n=n+Math.imul(T,z)|0,s=Math.imul(T,q),r=r+Math.imul(E,G)|0,n=n+Math.imul(E,V)|0,n=n+Math.imul(A,G)|0,s=s+Math.imul(A,V)|0,r=r+Math.imul(_,K)|0,n=n+Math.imul(_,Y)|0,n=n+Math.imul(y,K)|0,s=s+Math.imul(y,Y)|0,r=r+Math.imul(w,$)|0,n=n+Math.imul(w,X)|0,n=n+Math.imul(g,$)|0,s=s+Math.imul(g,X)|0,r=r+Math.imul(p,Q)|0,n=n+Math.imul(p,ee)|0,n=n+Math.imul(b,Q)|0,s=s+Math.imul(b,ee)|0,r=r+Math.imul(l,ie)|0,n=n+Math.imul(l,re)|0,n=n+Math.imul(u,ie)|0,s=s+Math.imul(u,re)|0;var ye=(h+r|0)+((8191&n)<<13)|0;h=(s+(n>>>13)|0)+(ye>>>26)|0,ye&=67108863,r=Math.imul(R,z),n=Math.imul(R,q),n=n+Math.imul(I,z)|0,s=Math.imul(I,q),r=r+Math.imul(M,G)|0,n=n+Math.imul(M,V)|0,n=n+Math.imul(T,G)|0,s=s+Math.imul(T,V)|0,r=r+Math.imul(E,K)|0,n=n+Math.imul(E,Y)|0,n=n+Math.imul(A,K)|0,s=s+Math.imul(A,Y)|0,r=r+Math.imul(_,$)|0,n=n+Math.imul(_,X)|0,n=n+Math.imul(y,$)|0,s=s+Math.imul(y,X)|0,r=r+Math.imul(w,Q)|0,n=n+Math.imul(w,ee)|0,n=n+Math.imul(g,Q)|0,s=s+Math.imul(g,ee)|0,r=r+Math.imul(p,ie)|0,n=n+Math.imul(p,re)|0,n=n+Math.imul(b,ie)|0,s=s+Math.imul(b,re)|0,r=r+Math.imul(l,se)|0,n=n+Math.imul(l,ae)|0,n=n+Math.imul(u,se)|0,s=s+Math.imul(u,ae)|0;var ke=(h+r|0)+((8191&n)<<13)|0;h=(s+(n>>>13)|0)+(ke>>>26)|0,ke&=67108863,r=Math.imul(P,z),n=Math.imul(P,q),n=n+Math.imul(O,z)|0,s=Math.imul(O,q),r=r+Math.imul(R,G)|0,n=n+Math.imul(R,V)|0,n=n+Math.imul(I,G)|0,s=s+Math.imul(I,V)|0,r=r+Math.imul(M,K)|0,n=n+Math.imul(M,Y)|0,n=n+Math.imul(T,K)|0,s=s+Math.imul(T,Y)|0,r=r+Math.imul(E,$)|0,n=n+Math.imul(E,X)|0,n=n+Math.imul(A,$)|0,s=s+Math.imul(A,X)|0,r=r+Math.imul(_,Q)|0,n=n+Math.imul(_,ee)|0,n=n+Math.imul(y,Q)|0,s=s+Math.imul(y,ee)|0,r=r+Math.imul(w,ie)|0,n=n+Math.imul(w,re)|0,n=n+Math.imul(g,ie)|0,s=s+Math.imul(g,re)|0,r=r+Math.imul(p,se)|0,n=n+Math.imul(p,ae)|0,n=n+Math.imul(b,se)|0,s=s+Math.imul(b,ae)|0,r=r+Math.imul(l,fe)|0,n=n+Math.imul(l,he)|0,n=n+Math.imul(u,fe)|0,s=s+Math.imul(u,he)|0;var Ee=(h+r|0)+((8191&n)<<13)|0;h=(s+(n>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,r=Math.imul(D,z),n=Math.imul(D,q),n=n+Math.imul(L,z)|0,s=Math.imul(L,q),r=r+Math.imul(P,G)|0,n=n+Math.imul(P,V)|0,n=n+Math.imul(O,G)|0,s=s+Math.imul(O,V)|0,r=r+Math.imul(R,K)|0,n=n+Math.imul(R,Y)|0,n=n+Math.imul(I,K)|0,s=s+Math.imul(I,Y)|0,r=r+Math.imul(M,$)|0,n=n+Math.imul(M,X)|0,n=n+Math.imul(T,$)|0,s=s+Math.imul(T,X)|0,r=r+Math.imul(E,Q)|0,n=n+Math.imul(E,ee)|0,n=n+Math.imul(A,Q)|0,s=s+Math.imul(A,ee)|0,r=r+Math.imul(_,ie)|0,n=n+Math.imul(_,re)|0,n=n+Math.imul(y,ie)|0,s=s+Math.imul(y,re)|0,r=r+Math.imul(w,se)|0,n=n+Math.imul(w,ae)|0,n=n+Math.imul(g,se)|0,s=s+Math.imul(g,ae)|0,r=r+Math.imul(p,fe)|0,n=n+Math.imul(p,he)|0,n=n+Math.imul(b,fe)|0,s=s+Math.imul(b,he)|0,r=r+Math.imul(l,le)|0,n=n+Math.imul(l,ue)|0,n=n+Math.imul(u,le)|0,s=s+Math.imul(u,ue)|0;var Ae=(h+r|0)+((8191&n)<<13)|0;h=(s+(n>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,r=Math.imul(U,z),n=Math.imul(U,q),n=n+Math.imul(j,z)|0,s=Math.imul(j,q),r=r+Math.imul(D,G)|0,n=n+Math.imul(D,V)|0,n=n+Math.imul(L,G)|0,s=s+Math.imul(L,V)|0,r=r+Math.imul(P,K)|0,n=n+Math.imul(P,Y)|0,n=n+Math.imul(O,K)|0,s=s+Math.imul(O,Y)|0,r=r+Math.imul(R,$)|0,n=n+Math.imul(R,X)|0,n=n+Math.imul(I,$)|0,s=s+Math.imul(I,X)|0,r=r+Math.imul(M,Q)|0,n=n+Math.imul(M,ee)|0,n=n+Math.imul(T,Q)|0,s=s+Math.imul(T,ee)|0,r=r+Math.imul(E,ie)|0,n=n+Math.imul(E,re)|0,n=n+Math.imul(A,ie)|0,s=s+Math.imul(A,re)|0,r=r+Math.imul(_,se)|0,n=n+Math.imul(_,ae)|0,n=n+Math.imul(y,se)|0,s=s+Math.imul(y,ae)|0,r=r+Math.imul(w,fe)|0,n=n+Math.imul(w,he)|0,n=n+Math.imul(g,fe)|0,s=s+Math.imul(g,he)|0,r=r+Math.imul(p,le)|0,n=n+Math.imul(p,ue)|0,n=n+Math.imul(b,le)|0,s=s+Math.imul(b,ue)|0,r=r+Math.imul(l,pe)|0,n=n+Math.imul(l,be)|0,n=n+Math.imul(u,pe)|0,s=s+Math.imul(u,be)|0;var Se=(h+r|0)+((8191&n)<<13)|0;h=(s+(n>>>13)|0)+(Se>>>26)|0,Se&=67108863,r=Math.imul(U,G),n=Math.imul(U,V),n=n+Math.imul(j,G)|0,s=Math.imul(j,V),r=r+Math.imul(D,K)|0,n=n+Math.imul(D,Y)|0,n=n+Math.imul(L,K)|0,s=s+Math.imul(L,Y)|0,r=r+Math.imul(P,$)|0,n=n+Math.imul(P,X)|0,n=n+Math.imul(O,$)|0,s=s+Math.imul(O,X)|0,r=r+Math.imul(R,Q)|0,n=n+Math.imul(R,ee)|0,n=n+Math.imul(I,Q)|0,s=s+Math.imul(I,ee)|0,r=r+Math.imul(M,ie)|0,n=n+Math.imul(M,re)|0,n=n+Math.imul(T,ie)|0,s=s+Math.imul(T,re)|0,r=r+Math.imul(E,se)|0,n=n+Math.imul(E,ae)|0,n=n+Math.imul(A,se)|0,s=s+Math.imul(A,ae)|0,r=r+Math.imul(_,fe)|0,n=n+Math.imul(_,he)|0,n=n+Math.imul(y,fe)|0,s=s+Math.imul(y,he)|0,r=r+Math.imul(w,le)|0,n=n+Math.imul(w,ue)|0,n=n+Math.imul(g,le)|0,s=s+Math.imul(g,ue)|0,r=r+Math.imul(p,pe)|0,n=n+Math.imul(p,be)|0,n=n+Math.imul(b,pe)|0,s=s+Math.imul(b,be)|0;var Me=(h+r|0)+((8191&n)<<13)|0;h=(s+(n>>>13)|0)+(Me>>>26)|0,Me&=67108863,r=Math.imul(U,K),n=Math.imul(U,Y),n=n+Math.imul(j,K)|0,s=Math.imul(j,Y),r=r+Math.imul(D,$)|0,n=n+Math.imul(D,X)|0,n=n+Math.imul(L,$)|0,s=s+Math.imul(L,X)|0,r=r+Math.imul(P,Q)|0,n=n+Math.imul(P,ee)|0,n=n+Math.imul(O,Q)|0,s=s+Math.imul(O,ee)|0,r=r+Math.imul(R,ie)|0,n=n+Math.imul(R,re)|0,n=n+Math.imul(I,ie)|0,s=s+Math.imul(I,re)|0,r=r+Math.imul(M,se)|0,n=n+Math.imul(M,ae)|0,n=n+Math.imul(T,se)|0,s=s+Math.imul(T,ae)|0,r=r+Math.imul(E,fe)|0,n=n+Math.imul(E,he)|0,n=n+Math.imul(A,fe)|0,s=s+Math.imul(A,he)|0,r=r+Math.imul(_,le)|0,n=n+Math.imul(_,ue)|0,n=n+Math.imul(y,le)|0,s=s+Math.imul(y,ue)|0,r=r+Math.imul(w,pe)|0,n=n+Math.imul(w,be)|0,n=n+Math.imul(g,pe)|0,s=s+Math.imul(g,be)|0;var Te=(h+r|0)+((8191&n)<<13)|0;h=(s+(n>>>13)|0)+(Te>>>26)|0,Te&=67108863,r=Math.imul(U,$),n=Math.imul(U,X),n=n+Math.imul(j,$)|0,s=Math.imul(j,X),r=r+Math.imul(D,Q)|0,n=n+Math.imul(D,ee)|0,n=n+Math.imul(L,Q)|0,s=s+Math.imul(L,ee)|0,r=r+Math.imul(P,ie)|0,n=n+Math.imul(P,re)|0,n=n+Math.imul(O,ie)|0,s=s+Math.imul(O,re)|0,r=r+Math.imul(R,se)|0,n=n+Math.imul(R,ae)|0,n=n+Math.imul(I,se)|0,s=s+Math.imul(I,ae)|0,r=r+Math.imul(M,fe)|0,n=n+Math.imul(M,he)|0,n=n+Math.imul(T,fe)|0,s=s+Math.imul(T,he)|0,r=r+Math.imul(E,le)|0,n=n+Math.imul(E,ue)|0,n=n+Math.imul(A,le)|0,s=s+Math.imul(A,ue)|0,r=r+Math.imul(_,pe)|0,n=n+Math.imul(_,be)|0,n=n+Math.imul(y,pe)|0,s=s+Math.imul(y,be)|0;var xe=(h+r|0)+((8191&n)<<13)|0;h=(s+(n>>>13)|0)+(xe>>>26)|0,xe&=67108863,r=Math.imul(U,Q),n=Math.imul(U,ee),n=n+Math.imul(j,Q)|0,s=Math.imul(j,ee),r=r+Math.imul(D,ie)|0,n=n+Math.imul(D,re)|0,n=n+Math.imul(L,ie)|0,s=s+Math.imul(L,re)|0,r=r+Math.imul(P,se)|0,n=n+Math.imul(P,ae)|0,n=n+Math.imul(O,se)|0,s=s+Math.imul(O,ae)|0,r=r+Math.imul(R,fe)|0,n=n+Math.imul(R,he)|0,n=n+Math.imul(I,fe)|0,s=s+Math.imul(I,he)|0,r=r+Math.imul(M,le)|0,n=n+Math.imul(M,ue)|0,n=n+Math.imul(T,le)|0,s=s+Math.imul(T,ue)|0,r=r+Math.imul(E,pe)|0,n=n+Math.imul(E,be)|0,n=n+Math.imul(A,pe)|0,s=s+Math.imul(A,be)|0;var Re=(h+r|0)+((8191&n)<<13)|0;h=(s+(n>>>13)|0)+(Re>>>26)|0,Re&=67108863,r=Math.imul(U,ie),n=Math.imul(U,re),n=n+Math.imul(j,ie)|0,s=Math.imul(j,re),r=r+Math.imul(D,se)|0,n=n+Math.imul(D,ae)|0,n=n+Math.imul(L,se)|0,s=s+Math.imul(L,ae)|0,r=r+Math.imul(P,fe)|0,n=n+Math.imul(P,he)|0,n=n+Math.imul(O,fe)|0,s=s+Math.imul(O,he)|0,r=r+Math.imul(R,le)|0,n=n+Math.imul(R,ue)|0,n=n+Math.imul(I,le)|0,s=s+Math.imul(I,ue)|0,r=r+Math.imul(M,pe)|0,n=n+Math.imul(M,be)|0,n=n+Math.imul(T,pe)|0,s=s+Math.imul(T,be)|0;var Ie=(h+r|0)+((8191&n)<<13)|0;h=(s+(n>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,r=Math.imul(U,se),n=Math.imul(U,ae),n=n+Math.imul(j,se)|0,s=Math.imul(j,ae),r=r+Math.imul(D,fe)|0,n=n+Math.imul(D,he)|0,n=n+Math.imul(L,fe)|0,s=s+Math.imul(L,he)|0,r=r+Math.imul(P,le)|0,n=n+Math.imul(P,ue)|0,n=n+Math.imul(O,le)|0,s=s+Math.imul(O,ue)|0,r=r+Math.imul(R,pe)|0,n=n+Math.imul(R,be)|0,n=n+Math.imul(I,pe)|0,s=s+Math.imul(I,be)|0;var Ce=(h+r|0)+((8191&n)<<13)|0;h=(s+(n>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,r=Math.imul(U,fe),n=Math.imul(U,he),n=n+Math.imul(j,fe)|0,s=Math.imul(j,he),r=r+Math.imul(D,le)|0,n=n+Math.imul(D,ue)|0,n=n+Math.imul(L,le)|0,s=s+Math.imul(L,ue)|0,r=r+Math.imul(P,pe)|0,n=n+Math.imul(P,be)|0,n=n+Math.imul(O,pe)|0,s=s+Math.imul(O,be)|0;var Pe=(h+r|0)+((8191&n)<<13)|0;h=(s+(n>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,r=Math.imul(U,le),n=Math.imul(U,ue),n=n+Math.imul(j,le)|0,s=Math.imul(j,ue),r=r+Math.imul(D,pe)|0,n=n+Math.imul(D,be)|0,n=n+Math.imul(L,pe)|0,s=s+Math.imul(L,be)|0;var Oe=(h+r|0)+((8191&n)<<13)|0;h=(s+(n>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,r=Math.imul(U,pe),n=Math.imul(U,be),n=n+Math.imul(j,pe)|0,s=Math.imul(j,be);var Ne=(h+r|0)+((8191&n)<<13)|0;return h=(s+(n>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,f[0]=me,f[1]=we,f[2]=ge,f[3]=ve,f[4]=_e,f[5]=ye,f[6]=ke,f[7]=Ee,f[8]=Ae,f[9]=Se,f[10]=Me,f[11]=Te,f[12]=xe,f[13]=Re,f[14]=Ie,f[15]=Ce,f[16]=Pe,f[17]=Oe,f[18]=Ne,0!==h&&(f[19]=h,i.length++),i};Math.imul||(A=h),s.prototype.mulTo=function(e,t){var i,r=this.length+e.length;return i=10===this.length&&10===e.length?A(this,e,t):r<63?h(this,e,t):r<1024?c(this,e,t):l(this,e,t)},u.prototype.makeRBT=function(e){for(var t=new Array(e),i=s.prototype._countBits(e)-1,r=0;r>=1;return r},u.prototype.permute=function(e,t,i,r,n,s){for(var a=0;a>>=1)n++;return 1<>>=13,i[2*a+1]=8191&s,s>>>=13;for(a=2*t;a>=26,t+=n/67108864|0,t+=s>>>26,this.words[i]=67108863&s}return 0!==t&&(this.words[i]=t,this.length++),this},s.prototype.muln=function(e){return this.clone().imuln(e)},s.prototype.sqr=function(){return this.mul(this)},s.prototype.isqr=function(){return this.imul(this.clone())},s.prototype.pow=function(e){var t=f(e);if(0===t.length)return new s(1);for(var i=this,r=0;r=0);var t,i=e%26,n=(e-i)/26,s=67108863>>>26-i<<26-i;if(0!==i){var a=0;for(t=0;t>>26-i}a&&(this.words[t]=a,this.length++)}if(0!==n){for(t=this.length-1;t>=0;t--)this.words[t+n]=this.words[t];for(t=0;t=0);var n;n=t?(t-t%26)/26:0;var s=e%26,a=Math.min((e-s)/26,this.length),o=67108863^67108863>>>s<a)for(this.length-=a,h=0;h=0&&(0!==c||h>=n);h--){var l=0|this.words[h];this.words[h]=c<<26-s|l>>>s,c=l&o}return f&&0!==c&&(f.words[f.length++]=c),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},s.prototype.ishrn=function(e,t,i){return r(0===this.negative),this.iushrn(e,t,i)},s.prototype.shln=function(e){return this.clone().ishln(e)},s.prototype.ushln=function(e){return this.clone().iushln(e)},s.prototype.shrn=function(e){return this.clone().ishrn(e)},s.prototype.ushrn=function(e){return this.clone().iushrn(e)},s.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,i=(e-t)/26,n=1<=0);var t=e%26,i=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=i)return this;if(0!==t&&i++,this.length=Math.min(i,this.length),0!==t){var n=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},s.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(f/67108864|0),this.words[n+i]=67108863&a}for(;n>26,this.words[n+i]=67108863&a;if(0===o)return this.strip();for(r(o===-1),o=0, +n=0;n>26,this.words[n]=67108863&a;return this.negative=1,this.strip()},s.prototype._wordDiv=function(e,t){var i=this.length-e.length,r=this.clone(),n=e,a=0|n.words[n.length-1],o=this._countBits(a);i=26-o,0!==i&&(n=n.ushln(i),r.iushln(i),a=0|n.words[n.length-1]);var f,h=r.length-n.length;if("mod"!==t){f=new s(null),f.length=h+1,f.words=new Array(f.length);for(var c=0;c=0;u--){var d=67108864*(0|r.words[n.length+u])+(0|r.words[n.length+u-1]);for(d=Math.min(d/a|0,67108863),r._ishlnsubmul(n,d,u);0!==r.negative;)d--,r.negative=0,r._ishlnsubmul(n,1,u),r.isZero()||(r.negative^=1);f&&(f.words[u]=d)}return f&&f.strip(),r.strip(),"div"!==t&&0!==i&&r.iushrn(i),{div:f||null,mod:r}},s.prototype.divmod=function(e,t,i){if(r(!e.isZero()),this.isZero())return{div:new s(0),mod:new s(0)};var n,a,o;return 0!==this.negative&&0===e.negative?(o=this.neg().divmod(e,t),"mod"!==t&&(n=o.div.neg()),"div"!==t&&(a=o.mod.neg(),i&&0!==a.negative&&a.iadd(e)),{div:n,mod:a}):0===this.negative&&0!==e.negative?(o=this.divmod(e.neg(),t),"mod"!==t&&(n=o.div.neg()),{div:n,mod:o.mod}):0!==(this.negative&e.negative)?(o=this.neg().divmod(e.neg(),t),"div"!==t&&(a=o.mod.neg(),i&&0!==a.negative&&a.isub(e)),{div:o.div,mod:a}):e.length>this.length||this.cmp(e)<0?{div:new s(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new s(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new s(this.modn(e.words[0]))}:this._wordDiv(e,t)},s.prototype.div=function(e){return this.divmod(e,"div",!1).div},s.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},s.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},s.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var i=0!==t.div.negative?t.mod.isub(e):t.mod,r=e.ushrn(1),n=e.andln(1),s=i.cmp(r);return s<0||1===n&&0===s?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},s.prototype.modn=function(e){r(e<=67108863);for(var t=(1<<26)%e,i=0,n=this.length-1;n>=0;n--)i=(t*i+(0|this.words[n]))%e;return i},s.prototype.idivn=function(e){r(e<=67108863);for(var t=0,i=this.length-1;i>=0;i--){var n=(0|this.words[i])+67108864*t;this.words[i]=n/e|0,t=n%e}return this.strip()},s.prototype.divn=function(e){return this.clone().idivn(e)},s.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,i=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var n=new s(1),a=new s(0),o=new s(0),f=new s(1),h=0;t.isEven()&&i.isEven();)t.iushrn(1),i.iushrn(1),++h;for(var c=i.clone(),l=t.clone();!t.isZero();){for(var u=0,d=1;0===(t.words[0]&d)&&u<26;++u,d<<=1);if(u>0)for(t.iushrn(u);u-- >0;)(n.isOdd()||a.isOdd())&&(n.iadd(c),a.isub(l)),n.iushrn(1),a.iushrn(1);for(var p=0,b=1;0===(i.words[0]&b)&&p<26;++p,b<<=1);if(p>0)for(i.iushrn(p);p-- >0;)(o.isOdd()||f.isOdd())&&(o.iadd(c),f.isub(l)),o.iushrn(1),f.iushrn(1);t.cmp(i)>=0?(t.isub(i),n.isub(o),a.isub(f)):(i.isub(t),o.isub(n),f.isub(a))}return{a:o,b:f,gcd:i.iushln(h)}},s.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,i=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var n=new s(1),a=new s(0),o=i.clone();t.cmpn(1)>0&&i.cmpn(1)>0;){for(var f=0,h=1;0===(t.words[0]&h)&&f<26;++f,h<<=1);if(f>0)for(t.iushrn(f);f-- >0;)n.isOdd()&&n.iadd(o),n.iushrn(1);for(var c=0,l=1;0===(i.words[0]&l)&&c<26;++c,l<<=1);if(c>0)for(i.iushrn(c);c-- >0;)a.isOdd()&&a.iadd(o),a.iushrn(1);t.cmp(i)>=0?(t.isub(i),n.isub(a)):(i.isub(t),a.isub(n))}var u;return u=0===t.cmpn(1)?n:a,u.cmpn(0)<0&&u.iadd(e),u},s.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),i=e.clone();t.negative=0,i.negative=0;for(var r=0;t.isEven()&&i.isEven();r++)t.iushrn(1),i.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;i.isEven();)i.iushrn(1);var n=t.cmp(i);if(n<0){var s=t;t=i,i=s}else if(0===n||0===i.cmpn(1))break;t.isub(i)}return i.iushln(r)},s.prototype.invm=function(e){return this.egcd(e).a.umod(e)},s.prototype.isEven=function(){return 0===(1&this.words[0])},s.prototype.isOdd=function(){return 1===(1&this.words[0])},s.prototype.andln=function(e){return this.words[0]&e},s.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,i=(e-t)/26,n=1<>>26,o&=67108863,this.words[a]=o}return 0!==s&&(this.words[a]=s,this.length++),this},s.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},s.prototype.cmpn=function(e){var t=e<0;if(0!==this.negative&&!t)return-1;if(0===this.negative&&t)return 1;this.strip();var i;if(this.length>1)i=1;else{t&&(e=-e),r(e<=67108863,"Number is too big");var n=0|this.words[0];i=n===e?0:ne.length)return 1;if(this.length=0;i--){var r=0|this.words[i],n=0|e.words[i];if(r!==n){rn&&(t=1);break}}return t},s.prototype.gtn=function(e){return 1===this.cmpn(e)},s.prototype.gt=function(e){return 1===this.cmp(e)},s.prototype.gten=function(e){return this.cmpn(e)>=0},s.prototype.gte=function(e){return this.cmp(e)>=0},s.prototype.ltn=function(e){return this.cmpn(e)===-1},s.prototype.lt=function(e){return this.cmp(e)===-1},s.prototype.lten=function(e){return this.cmpn(e)<=0},s.prototype.lte=function(e){return this.cmp(e)<=0},s.prototype.eqn=function(e){return 0===this.cmpn(e)},s.prototype.eq=function(e){return 0===this.cmp(e)},s.red=function(e){return new g(e)},s.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},s.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},s.prototype._forceRed=function(e){return this.red=e,this},s.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},s.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},s.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},s.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},s.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},s.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},s.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},s.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},s.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},s.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},s.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},s.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},s.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},s.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var S={k256:null,p224:null,p192:null,p25519:null};d.prototype._tmp=function(){var e=new s(null);return e.words=new Array(Math.ceil(this.n/13)),e},d.prototype.ireduce=function(e){var t,i=e;do this.split(i,this.tmp),i=this.imulK(i),i=i.iadd(this.tmp),t=i.bitLength();while(t>this.n);var r=t0?i.isub(this.p):i.strip(),i},d.prototype.split=function(e,t){e.iushrn(this.n,0,t)},d.prototype.imulK=function(e){return e.imul(this.k)},n(p,d),p.prototype.split=function(e,t){for(var i=4194303,r=Math.min(e.length,9),n=0;n>>22,s=a}s>>>=22,e.words[n-10]=s,0===s&&e.length>10?e.length-=10:e.length-=9},p.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,i=0;i>>=26,e.words[i]=n,t=r}return 0!==t&&(e.words[e.length++]=t),e},s._prime=function e(t){if(S[t])return S[t];var e;if("k256"===t)e=new p;else if("p224"===t)e=new b;else if("p192"===t)e=new m;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new w}return S[t]=e,e},g.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},g.prototype._verify2=function(e,t){r(0===(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},g.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},g.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},g.prototype.add=function(e,t){this._verify2(e,t);var i=e.add(t);return i.cmp(this.m)>=0&&i.isub(this.m),i._forceRed(this)},g.prototype.iadd=function(e,t){this._verify2(e,t);var i=e.iadd(t);return i.cmp(this.m)>=0&&i.isub(this.m),i},g.prototype.sub=function(e,t){this._verify2(e,t);var i=e.sub(t);return i.cmpn(0)<0&&i.iadd(this.m),i._forceRed(this)},g.prototype.isub=function(e,t){this._verify2(e,t);var i=e.isub(t);return i.cmpn(0)<0&&i.iadd(this.m),i},g.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},g.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},g.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},g.prototype.isqr=function(e){return this.imul(e,e.clone())},g.prototype.sqr=function(e){return this.mul(e,e)},g.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2===1),3===t){var i=this.m.add(new s(1)).iushrn(2);return this.pow(e,i)}for(var n=this.m.subn(1),a=0;!n.isZero()&&0===n.andln(1);)a++,n.iushrn(1);r(!n.isZero());var o=new s(1).toRed(this),f=o.redNeg(),h=this.m.subn(1).iushrn(1),c=this.m.bitLength();for(c=new s(2*c*c).toRed(this);0!==this.pow(c,h).cmp(f);)c.redIAdd(f);for(var l=this.pow(c,n),u=this.pow(e,n.addn(1).iushrn(1)),d=this.pow(e,n),p=a;0!==d.cmp(o);){for(var b=d,m=0;0!==b.cmp(o);m++)b=b.redSqr();r(m=0;n--){for(var c=t.words[n],l=h-1;l>=0;l--){var u=c>>l&1;a!==r[0]&&(a=this.sqr(a)),0!==u||0!==o?(o<<=1,o|=u,f++,(f===i||0===n&&0===l)&&(a=this.mul(a,r[o]),f=0,o=0)):f=0}h=26}return a},g.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},g.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},s.mont=function(e){return new v(e)},n(v,g),v.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},v.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},v.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var i=e.imul(t),r=i.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=i.isub(r).iushrn(this.shift),s=n;return n.cmp(this.m)>=0?s=n.isub(this.m):n.cmpn(0)<0&&(s=n.iadd(this.m)),s._forceRed(this)},v.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new s(0)._forceRed(this);var i=e.mul(t),r=i.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=i.isub(r).iushrn(this.shift),a=n;return n.cmp(this.m)>=0?a=n.isub(this.m):n.cmpn(0)<0&&(a=n.iadd(this.m)),a._forceRed(this)},v.prototype.invm=function(e){var t=this.imod(e._invmp(this.m).mul(this.r2));return t._forceRed(this)}}("undefined"==typeof e||e,this)}).call(t,i(121)(e))},function(e,t){function i(){throw new Error("setTimeout has not been defined")}function r(){throw new Error("clearTimeout has not been defined")}function n(e){if(c===setTimeout)return setTimeout(e,0);if((c===i||!c)&&setTimeout)return c=setTimeout,setTimeout(e,0);try{return c(e,0)}catch(t){try{return c.call(null,e,0)}catch(t){return c.call(this,e,0)}}}function s(e){if(l===clearTimeout)return clearTimeout(e);if((l===r||!l)&&clearTimeout)return l=clearTimeout,clearTimeout(e);try{return l(e)}catch(t){try{return l.call(null,e)}catch(t){return l.call(this,e)}}}function a(){b&&d&&(b=!1,d.length?p=d.concat(p):m=-1,p.length&&o())}function o(){if(!b){var e=n(a);b=!0;for(var t=p.length;t;){for(d=p,p=[];++m1)for(var i=1;i=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),b(i)?r.showHidden=i:i&&t._extend(r,i),y(r.showHidden)&&(r.showHidden=!1),y(r.depth)&&(r.depth=2),y(r.colors)&&(r.colors=!1),y(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=s),f(r,e,r.depth)}function s(e,t){var i=n.styles[t];return i?"["+n.colors[i][0]+"m"+e+"["+n.colors[i][1]+"m":e}function a(e,t){return e}function o(e){var t={};return e.forEach(function(e,i){t[e]=!0}),t}function f(e,i,r){if(e.customInspect&&i&&M(i.inspect)&&i.inspect!==t.inspect&&(!i.constructor||i.constructor.prototype!==i)){var n=i.inspect(r,e);return v(n)||(n=f(e,n,r)),n}var s=h(e,i);if(s)return s;var a=Object.keys(i),b=o(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(i)),S(i)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return c(i);if(0===a.length){if(M(i)){var m=i.name?": "+i.name:"";return e.stylize("[Function"+m+"]","special")}if(k(i))return e.stylize(RegExp.prototype.toString.call(i),"regexp");if(A(i))return e.stylize(Date.prototype.toString.call(i),"date");if(S(i))return c(i)}var w="",g=!1,_=["{","}"];if(p(i)&&(g=!0,_=["[","]"]),M(i)){var y=i.name?": "+i.name:"";w=" [Function"+y+"]"}if(k(i)&&(w=" "+RegExp.prototype.toString.call(i)),A(i)&&(w=" "+Date.prototype.toUTCString.call(i)),S(i)&&(w=" "+c(i)),0===a.length&&(!g||0==i.length))return _[0]+w+_[1];if(r<0)return k(i)?e.stylize(RegExp.prototype.toString.call(i),"regexp"):e.stylize("[Object]","special");e.seen.push(i);var E;return E=g?l(e,i,r,b,a):a.map(function(t){return u(e,i,r,b,t,g)}),e.seen.pop(),d(E,w,_)}function h(e,t){if(y(t))return e.stylize("undefined","undefined");if(v(t)){var i="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(i,"string")}return g(t)?e.stylize(""+t,"number"):b(t)?e.stylize(""+t,"boolean"):m(t)?e.stylize("null","null"):void 0}function c(e){return"["+Error.prototype.toString.call(e)+"]"}function l(e,t,i,r,n){for(var s=[],a=0,o=t.length;a-1&&(o=s?o.split("\n").map(function(e){return" "+e}).join("\n").substr(2):"\n"+o.split("\n").map(function(e){return" "+e}).join("\n"))):o=e.stylize("[Circular]","special")),y(a)){if(s&&n.match(/^\d+$/))return o;a=JSON.stringify(""+n),a.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+o}function d(e,t,i){var r=0,n=e.reduce(function(e,t){return r++,t.indexOf("\n")>=0&&r++,e+t.replace(/\u001b\[\d\d?m/g,"").length+1},0);return n>60?i[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+i[1]:i[0]+t+" "+e.join(", ")+" "+i[1]}function p(e){return Array.isArray(e)}function b(e){return"boolean"==typeof e}function m(e){return null===e}function w(e){return null==e}function g(e){return"number"==typeof e}function v(e){return"string"==typeof e}function _(e){return"symbol"==typeof e}function y(e){return void 0===e}function k(e){return E(e)&&"[object RegExp]"===x(e)}function E(e){return"object"==typeof e&&null!==e}function A(e){return E(e)&&"[object Date]"===x(e)}function S(e){return E(e)&&("[object Error]"===x(e)||e instanceof Error)}function M(e){return"function"==typeof e}function T(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||"undefined"==typeof e}function x(e){return Object.prototype.toString.call(e)}function R(e){return e<10?"0"+e.toString(10):e.toString(10)}function I(){var e=new Date,t=[R(e.getHours()),R(e.getMinutes()),R(e.getSeconds())].join(":");return[e.getDate(),D[e.getMonth()],t].join(" ")}function C(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var P=/%[sdj%]/g;t.format=function(e){if(!v(e)){for(var t=[],i=0;i=s)return e;switch(e){case"%s":return String(r[i++]);case"%d":return Number(r[i++]);case"%j":try{return JSON.stringify(r[i++])}catch(e){return"[Circular]"}default:return e}}),o=r[i];i`}sendMessage(){}sendTTSMessage(){}sendFile(){}sendCode(){}}r.applyToClass(a),e.exports=a},function(e,t){class i{constructor(e={}){this.status=e.status||"offline",this.game=e.game?new r(e.game):null}update(e){this.status=e.status||this.status,this.game=e.game?new r(e.game):null}equals(e){return e&&this.status===e.status&&this.game?this.game.equals(e.game):!e.game}}class r{constructor(e){this.name=e.name,this.type=e.type,this.url=e.url||null}get streaming(){return 1===this.type}equals(e){return e&&this.name===e.name&&this.type===e.type&&this.url===e.url}}t.Presence=i,t.Game=r},function(e,t,i){var r=t;r.utils=i(197),r.common=i(193),r.sha=i(196),r.ripemd=i(195),r.hmac=i(194),r.sha1=r.sha.sha1,r.sha256=r.sha.sha256,r.sha224=r.sha.sha224,r.sha384=r.sha.sha384,r.sha512=r.sha.sha512,r.ripemd160=r.ripemd.ripemd160},function(e,t,i){(function(e){function i(e,t){for(var i=0,r=e.length-1;r>=0;r--){var n=e[r];"."===n?e.splice(r,1):".."===n?(e.splice(r,1),i++):i&&(e.splice(r,1),i--)}if(t)for(;i--;i)e.unshift("..");return e}function r(e,t){if(e.filter)return e.filter(t);for(var i=[],r=0;r=-1&&!n;s--){var a=s>=0?arguments[s]:e.cwd();if("string"!=typeof a)throw new TypeError("Arguments to path.resolve must be strings");a&&(t=a+"/"+t,n="/"===a.charAt(0))}return t=i(r(t.split("/"),function(e){return!!e}),!n).join("/"),(n?"/":"")+t||"."},t.normalize=function(e){var n=t.isAbsolute(e),s="/"===a(e,-1);return e=i(r(e.split("/"),function(e){return!!e}),!n).join("/"),e||n||(e="."),e&&s&&(e+="/"),(n?"/":"")+e},t.isAbsolute=function(e){return"/"===e.charAt(0)},t.join=function(){var e=Array.prototype.slice.call(arguments,0);return t.normalize(r(e,function(e,t){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e}).join("/"))},t.relative=function(e,i){function r(e){for(var t=0;t=0&&""===e[i];i--);return t>i?[]:e.slice(t,i-t+1)}e=t.resolve(e).substr(1),i=t.resolve(i).substr(1);for(var n=r(e.split("/")),s=r(i.split("/")),a=Math.min(n.length,s.length),o=a,f=0;fe.roles.has(this.id))}serialize(){const e={};for(const t in r.PermissionFlags)e[t]=this.hasPermission(t);return e}hasPermission(e,t=false){return e=this.client.resolver.resolvePermission(e),!t&&(this.permissions&r.PermissionFlags.ADMINISTRATOR)>0||(this.permissions&e)>0}hasPermissions(e,t=false){return e.every(e=>this.hasPermission(e,t))}comparePositionTo(e){return this.constructor.comparePositions(this,e)}edit(e){return this.client.rest.methods.updateGuildRole(this,e)}setName(e){return this.edit({name:e})}setColor(e){return this.edit({color:e})}setHoist(e){return this.edit({hoist:e})}setPosition(e){return this.guild.setRolePosition(this,e)}setPermissions(e){return this.edit({permissions:e})}setMentionable(e){return this.edit({mentionable:e})}delete(){return this.client.rest.methods.deleteGuildRole(this)}get editable(){if(this.managed)return!1;const e=this.guild.member(this.client.user);return!!e.hasPermission(r.PermissionFlags.MANAGE_ROLES_OR_PERMISSIONS)&&e.highestRole.comparePositionTo(this)>0}equals(e){return e&&this.id===e.id&&this.name===e.name&&this.color===e.color&&this.hoist===e.hoist&&this.position===e.position&&this.permissions===e.permissions&&this.managed===e.managed}toString(){return`<@&${this.id}>`}static comparePositions(e,t){return e.position===t.position?t.id-e.id:e.position-t.position}}e.exports=n},function(e,t,i){(function(t){function r(e){n.call(this),this.hashMode="string"==typeof e,this.hashMode?this[e]=this._finalOrDigest:this.final=this._finalOrDigest,this._decoder=null,this._encoding=null}var n=i(11).Transform,s=i(2),a=i(59).StringDecoder;e.exports=r,s(r,n),r.prototype.update=function(e,i,r){"string"==typeof e&&(e=new t(e,i));var n=this._update(e);return this.hashMode?this:(r&&(n=this._toString(n,r)),n)},r.prototype.setAutoPadding=function(){},r.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},r.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},r.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},r.prototype._transform=function(e,t,i){var r;try{this.hashMode?this._update(e):this.push(this._update(e))}catch(e){r=e}finally{i(r)}},r.prototype._flush=function(e){var t;try{this.push(this._final())}catch(e){t=e}finally{e(t)}},r.prototype._finalOrDigest=function(e){var i=this._final()||new t("");return e&&(i=this._toString(i,e,!0)),i},r.prototype._toString=function(e,t,i){if(this._decoder||(this._decoder=new a(t),this._encoding=t),this._encoding!==t)throw new Error("can't switch encodings");var r=this._decoder.write(e);return i&&(r+=this._decoder.end()),r}}).call(t,i(0).Buffer)},function(e,t,i){"use strict";(function(t){function r(e){h.call(this,"digest"),this._hash=e,this.buffers=[]}function n(e){h.call(this,"digest"),this._hash=e}var s=i(2),a=i(102),o=i(166),f=i(167),h=i(21);s(r,h),r.prototype._update=function(e){this.buffers.push(e)},r.prototype._final=function(){var e=t.concat(this.buffers),i=this._hash(e);return this.buffers=null,i},s(n,h),n.prototype._update=function(e){this._hash.update(e)},n.prototype._final=function(){return this._hash.digest()},e.exports=function(e){return e=e.toLowerCase(),"md5"===e?new r(a):"rmd160"===e||"ripemd160"===e?new r(o):new n(f(e))}}).call(t,i(0).Buffer)},function(e,t,i){(function(t){function i(e,i){this._block=new t(e),this._finalSize=i,this._blockSize=e,this._len=0,this._s=0}i.prototype.update=function(e,i){"string"==typeof e&&(i=i||"utf8",e=new t(e,i));for(var r=this._len+=e.length,n=this._s||0,s=0,a=this._block;n=8*this._finalSize&&(this._update(this._block),this._block.fill(0)),this._block.writeInt32BE(t,this._blockSize-4);var i=this._update(this._block)||this._hash();return e?i.toString(e):i},i.prototype._update=function(){throw new Error("_update must be implemented by subclass")},e.exports=i}).call(t,i(0).Buffer)},function(e,t){class i{constructor(e,t){this.client=e,Object.defineProperty(this,"client",{enumerable:!1,configurable:!1}),this.type=null,t&&this.setup(t)}setup(e){this.id=e.id}get createdTimestamp(){return this.id/4194304+14200704e5}get createdAt(){return new Date(this.createdTimestamp)}delete(){return this.client.rest.methods.deleteChannel(this)}}e.exports=i},function(e,t,i){const r=i(1),n=i(6);class s{constructor(e,t){this.client=e.client,Object.defineProperty(this,"client",{enumerable:!1,configurable:!1}),this.guild=e,this.setup(t)}setup(e){this.id=e.id,this.name=e.name,this.requiresColons=e.require_colons,this.managed=e.managed,this._roles=e.roles}get createdTimestamp(){return this.id/4194304+14200704e5}get createdAt(){return new Date(this.createdTimestamp)}get roles(){const e=new n;for(const t of this._roles)this.guild.roles.has(t)&&e.set(t,this.guild.roles.get(t));return e}get url(){return`${r.Endpoints.CDN}/emojis/${this.id}.png`}toString(){return this.requiresColons?`<:${this.name}:${this.id}>`:this.name}get identifier(){return this.id?`${this.name}:${this.id}`:encodeURIComponent(this.name)}}e.exports=s},function(e,t,i){var r=t;r.Reporter=i(143).Reporter,r.DecoderBuffer=i(84).DecoderBuffer,r.EncoderBuffer=i(84).EncoderBuffer,r.Node=i(142)},function(e,t,i){(function(t){e.exports=function(e,i){for(var r=Math.min(e.length,i.length),n=new t(r),s=0;s65536)throw new Error("requested too many random bytes");var s=new t.Uint8Array(e);e>0&&a.getRandomValues(s);var o=new i(s.buffer);return"function"==typeof n?r.nextTick(function(){n(null,o)}):o}var a=t.crypto||t.msCrypto;a&&a.getRandomValues?e.exports=s:e.exports=n}).call(t,i(19),i(0).Buffer,i(8))},function(e,t,i){function r(e,t){Object.defineProperty(e.prototype,t,Object.getOwnPropertyDescriptor(h.prototype,t))}const n=i(17),s=i(34),a=i(73),o=i(6),f=i(35);class h{constructor(){this.messages=new o,this.lastMessageID=null}sendMessage(e,t={}){return this.client.rest.methods.sendMessage(this,e,t)}sendTTSMessage(e,t={}){return Object.assign(t,{tts:!0}),this.client.rest.methods.sendMessage(this,e,t)}sendFile(e,t,i,r={}){return t||(t="string"==typeof e?n.basename(e):e&&e.path?n.basename(e.path):"file.jpg"),this.client.resolver.resolveBuffer(e).then(e=>this.client.rest.methods.sendMessage(this,i,r,{file:e,name:t}))}sendCode(e,t,i={}){return i.split&&("object"!=typeof i.split&&(i.split={}),i.split.prepend||(i.split.prepend=`\`\`\`${e||""} `),i.split.append||(i.split.append="\n```")),t=f(this.client.resolver.resolveString(t),!0),this.sendMessage(`\`\`\`${e||""} ${t} -\`\`\``,i)}fetchMessage(e){return this.client.rest.methods.getChannelMessage(this,e).then(e=>{const t=e instanceof s?e:new s(this,e,this.client);return this._cacheMessage(t),t})}fetchMessages(e={}){return this.client.rest.methods.getChannelMessages(this,e).then(e=>{const t=new o;for(const i of e){const e=new s(this,i,this.client);t.set(i.id,e),this._cacheMessage(e)}return t})}fetchPinnedMessages(){return this.client.rest.methods.getChannelPinnedMessages(this).then(e=>{const t=new o;for(const i of e){const e=new s(this,i,this.client);t.set(i.id,e),this._cacheMessage(e)}return t})}startTyping(e){if("undefined"!=typeof e&&e<1)throw new RangeError("Count must be at least 1.");if(this.client.user._typing.has(this.id)){const t=this.client.user._typing.get(this.id);t.count=e||t.count+1}else this.client.user._typing.set(this.id,{count:e||1,interval:this.client.setInterval(()=>{this.client.rest.methods.sendTyping(this.id)},4e3)}),this.client.rest.methods.sendTyping(this.id)}stopTyping(e=false){if(this.client.user._typing.has(this.id)){const t=this.client.user._typing.get(this.id);t.count--,(t.count<=0||e)&&(this.client.clearInterval(t.interval),this.client.user._typing.delete(this.id))}}get typing(){return this.client.user._typing.has(this.id)}get typingCount(){return this.client.user._typing.has(this.id)?this.client.user._typing.get(this.id).count:0}createCollector(e,t={}){return new a(this,e,t)}awaitMessages(e,t={}){return new Promise((i,r)=>{const n=this.createCollector(e,t);n.on("end",(e,n)=>{t.errors&&t.errors.includes(n)?r(e):i(e)})})}bulkDelete(e){if(!isNaN(e))return this.fetchMessages({limit:e}).then(e=>this.bulkDelete(e));if(e instanceof Array||e instanceof o){const t=e instanceof o?e.keyArray():e.map(e=>e.id);return this.client.rest.methods.bulkDeleteMessages(this,t)}throw new TypeError("The messages must be an Array, Collection, or number.")}_cacheMessage(e){const t=this.client.options.messageCacheMaxSize;return 0===t?null:(this.messages.size>=t&&t>0&&this.messages.delete(this.messages.firstKey()),this.messages.set(e.id,e),e)}}t.applyToClass=((e,t=false)=>{const i=["sendMessage","sendTTSMessage","sendFile","sendCode"];t&&(i.push("_cacheMessage"),i.push("fetchMessages"),i.push("fetchMessage"),i.push("bulkDelete"),i.push("startTyping"),i.push("stopTyping"),i.push("typing"),i.push("typingCount"),i.push("fetchPinnedMessages"),i.push("createCollector"),i.push("awaitMessages"));for(const n of i)r(e,n)})},function(e,t,i){const r=i(20),n=i(22),s=i(75),a=i(42),o=i(2),f=i(6),h=i(60);class c extends r{constructor(e,t){super(e.client,t),this.guild=e}setup(e){if(super.setup(e),this.name=e.name,this.position=e.position,this.permissionOverwrites=new f,e.permission_overwrites)for(const t of e.permission_overwrites)this.permissionOverwrites.set(t.id,new s(this,t))}permissionsFor(e){if(e=this.client.resolver.resolveGuildMember(this.guild,e),!e)return null;if(e.id===this.guild.ownerID)return new a(e,o.ALL_PERMISSIONS);let t=0;const i=e.roles;for(const r of i.values())t|=r.permissions;const n=this.overwritesFor(e,!0,i);for(const s of n.role.concat(n.member))t&=~s.denyData,t|=s.allowData;const f=Boolean(t&o.PermissionFlags.ADMINISTRATOR);return f&&(t=o.ALL_PERMISSIONS),new a(e,t)}overwritesFor(e,t=false,i=null){if(t||(e=this.client.resolver.resolveGuildMember(this.guild,e)),!e)return[];i=i||e.roles;const r=[],n=[];for(const s of this.permissionOverwrites.values())s.id===e.id?n.push(s):i.has(s.id)&&r.push(s);return{role:r,member:n}}overwritePermissions(e,t){const i={allow:0,deny:0};if(e instanceof n)i.type="role";else if(this.guild.roles.has(e))e=this.guild.roles.get(e),i.type="role";else if(e=this.client.resolver.resolveUser(e),i.type="member",!e)return Promise.reject(new TypeError("Supplied parameter was neither a User nor a Role."));i.id=e.id;const r=this.permissionOverwrites.get(e.id);r&&(i.allow=r.allowData,i.deny=r.denyData);for(const s in t)t[s]===!0?(i.allow|=o.PermissionFlags[s]||0,i.deny&=~(o.PermissionFlags[s]||0)):t[s]===!1?(i.allow&=~(o.PermissionFlags[s]||0),i.deny|=o.PermissionFlags[s]||0):null===t[s]&&(i.allow&=~(o.PermissionFlags[s]||0),i.deny&=~(o.PermissionFlags[s]||0));return this.client.rest.methods.setChannelOverwrite(this,i)}edit(e){return this.client.rest.methods.updateChannel(this,e)}setName(e){return this.edit({name:e})}setPosition(e){return this.client.rest.methods.updateChannel(this,{position:e})}setTopic(e){return this.client.rest.methods.updateChannel(this,{topic:e})}createInvite(e={}){return this.client.rest.methods.createChannelInvite(this,e)}equals(e){let t=e&&this.id===e.id&&this.type===e.type&&this.topic===e.topic&&this.position===e.position&&this.name===e.name;if(t)if(this.permissionOverwrites&&e.permissionOverwrites){const i=this.permissionOverwrites.keyArray(),r=e.permissionOverwrites.keyArray();t=h(i,r)}else t=!this.permissionOverwrites&&!e.permissionOverwrites;return t}toString(){return`<#${this.id}>`}}e.exports=c},function(e,t,i){const r=i(28),n=i(22),s=i(42),a=i(2),o=i(6),f=i(12).Presence;class h{constructor(e,t){this.client=e.client,Object.defineProperty(this,"client",{enumerable:!1,configurable:!1}),this.guild=e,this.user={},this._roles=[],t&&this.setup(t)}setup(e){this.serverDeaf=e.deaf,this.serverMute=e.mute,this.selfMute=e.self_mute,this.selfDeaf=e.self_deaf,this.voiceSessionID=e.session_id,this.voiceChannelID=e.channel_id,this.speaking=!1,this.nickname=e.nick||null,this.joinedTimestamp=new Date(e.joined_at).getTime(),this.user=e.user,this._roles=e.roles}get joinedAt(){return new Date(this.joinedTimestamp)}get presence(){return this.frozenPresence||this.guild.presences.get(this.id)||new f}get roles(){const e=new o,t=this.guild.roles.get(this.guild.id);t&&e.set(t.id,t);for(const i of this._roles){const t=this.guild.roles.get(i);t&&e.set(t.id,t)}return e}get highestRole(){return this.roles.reduce((e,t)=>!e||t.comparePositionTo(e)>0?t:e)}get mute(){return this.selfMute||this.serverMute}get deaf(){return this.selfDeaf||this.serverDeaf}get voiceChannel(){return this.guild.channels.get(this.voiceChannelID)}get id(){return this.user.id}get permissions(){if(this.user.id===this.guild.ownerID)return new s(this,a.ALL_PERMISSIONS);let e=0;const t=this.roles;for(const i of t.values())e|=i.permissions;const r=Boolean(e&a.PermissionFlags.ADMINISTRATOR);return r&&(e=a.ALL_PERMISSIONS),new s(this,e)}get kickable(){if(this.user.id===this.guild.ownerID)return!1;if(this.user.id===this.client.user.id)return!1;const e=this.guild.member(this.client.user);return!!e.hasPermission(a.PermissionFlags.KICK_MEMBERS)&&e.highestRole.comparePositionTo(this.highestRole)>0}get bannable(){if(this.user.id===this.guild.ownerID)return!1;if(this.user.id===this.client.user.id)return!1;const e=this.guild.member(this.client.user);return!!e.hasPermission(a.PermissionFlags.BAN_MEMBERS)&&e.highestRole.comparePositionTo(this.highestRole)>0}permissionsIn(e){if(e=this.client.resolver.resolveChannel(e),!e||!e.guild)throw new Error("Could not resolve channel to a guild channel.");return e.permissionsFor(this)}hasPermission(e,t=false){return!t&&this.user.id===this.guild.ownerID||this.roles.some(i=>i.hasPermission(e,t))}hasPermissions(e,t=false){return!t&&this.user.id===this.guild.ownerID||e.every(e=>this.hasPermission(e,t))}missingPermissions(e,t=false){return e.filter(e=>!this.hasPermission(e,t))}edit(e){return this.client.rest.methods.updateGuildMember(this,e)}setMute(e){return this.edit({mute:e})}setDeaf(e){return this.edit({deaf:e})}setVoiceChannel(e){return this.edit({channel:e})}setRoles(e){return this.edit({roles:e})}addRole(e){return this.addRoles([e])}addRoles(e){let t;if(e instanceof o){t=this._roles.slice();for(const i of e.values())t.push(i.id)}else t=this._roles.concat(e);return this.edit({roles:t})}removeRole(e){return this.removeRoles([e])}removeRoles(e){const t=this._roles.slice();if(e instanceof o)for(const i of e.values()){const e=t.indexOf(i.id);e>=0&&t.splice(e,1)}else for(const i of e){const e=t.indexOf(i instanceof n?i.id:i);e>=0&&t.splice(e,1)}return this.edit({roles:t})}setNickname(e){return this.edit({nick:e})}deleteDM(){return this.client.rest.methods.deleteChannel(this)}kick(){return this.client.rest.methods.kickGuildMember(this.guild,this)}ban(e=0){return this.client.rest.methods.banGuildMember(this.guild,this,e)}toString(){return`<@${this.nickname?"!":""}${this.user.id}>`}sendMessage(){}sendTTSMessage(){}sendFile(){}sendCode(){}}r.applyToClass(h),e.exports=h},function(e,t){e.exports=function(e,t=false,i=false){return t?e.replace(/```/g,"`​``"):i?e.replace(/\\(`|\\)/g,"$1").replace(/(`|\\)/g,"\\$1"):e.replace(/\\(\*|_|`|~|\\)/g,"$1").replace(/(\*|_|`|~|\\)/g,"\\$1")}},function(e,t,i){var r=t;r.bignum=i(4),r.define=i(139).define,r.base=i(23),r.constants=i(81),r.decoders=i(143),r.encoders=i(145)},function(e,t,i){(function(e){function i(e){var t,i;return t=e>o||e<0?(i=Math.abs(e)%o,e<0?o-i:i):e}function r(e){for(var t=0;t>>8^255&i^99,this.SBOX[n]=i,this.INV_SBOX[i]=n,s=e[n],a=e[s],o=e[a],r=257*e[i]^16843008*i,this.SUB_MIX[0][n]=r<<24|r>>>8,this.SUB_MIX[1][n]=r<<16|r>>>16,this.SUB_MIX[2][n]=r<<8|r>>>24,this.SUB_MIX[3][n]=r,r=16843009*o^65537*a^257*s^16843008*n,this.INV_SUB_MIX[0][i]=r<<24|r>>>8,this.INV_SUB_MIX[1][i]=r<<16|r>>>16,this.INV_SUB_MIX[2][i]=r<<8|r>>>24,this.INV_SUB_MIX[3][i]=r,0===n?n=f=1:(n=s^e[e[e[o^s]]],f^=e[e[f]]);return!0};var f=new n;a.blockSize=16,a.prototype.blockSize=a.blockSize,a.keySize=32,a.prototype.keySize=a.keySize,a.prototype._doReset=function(){var e,t,i,r,n,s;for(i=this._key,t=i.length,this._nRounds=t+6,n=4*(this._nRounds+1),this._keySchedule=[],r=0;r>>24,s=f.SBOX[s>>>24]<<24|f.SBOX[s>>>16&255]<<16|f.SBOX[s>>>8&255]<<8|f.SBOX[255&s],s^=f.RCON[r/t|0]<<24):t>6&&r%t===4?s=f.SBOX[s>>>24]<<24|f.SBOX[s>>>16&255]<<16|f.SBOX[s>>>8&255]<<8|f.SBOX[255&s]:void 0,this._keySchedule[r-t]^s);for(this._invKeySchedule=[],e=0;e>>24]]^f.INV_SUB_MIX[1][f.SBOX[s>>>16&255]]^f.INV_SUB_MIX[2][f.SBOX[s>>>8&255]]^f.INV_SUB_MIX[3][f.SBOX[255&s]];return!0},a.prototype.encryptBlock=function(t){t=s(new e(t));var i=this._doCryptBlock(t,this._keySchedule,f.SUB_MIX,f.SBOX),r=new e(16);return r.writeUInt32BE(i[0],0),r.writeUInt32BE(i[1],4),r.writeUInt32BE(i[2],8),r.writeUInt32BE(i[3],12),r},a.prototype.decryptBlock=function(t){t=s(new e(t));var i=[t[3],t[1]];t[1]=i[0],t[3]=i[1];var r=this._doCryptBlock(t,this._invKeySchedule,f.INV_SUB_MIX,f.INV_SBOX),n=new e(16);return n.writeUInt32BE(r[0],0),n.writeUInt32BE(r[3],4),n.writeUInt32BE(r[2],8),n.writeUInt32BE(r[1],12),n},a.prototype.scrub=function(){r(this._keySchedule),r(this._invKeySchedule),r(this._key)},a.prototype._doCryptBlock=function(e,t,r,n){var s,a,o,f,h,c,l,u,d;a=e[0]^t[0],o=e[1]^t[1],f=e[2]^t[2],h=e[3]^t[3],s=4;for(var p=1;p>>24]^r[1][o>>>16&255]^r[2][f>>>8&255]^r[3][255&h]^t[s++],l=r[0][o>>>24]^r[1][f>>>16&255]^r[2][h>>>8&255]^r[3][255&a]^t[s++],u=r[0][f>>>24]^r[1][h>>>16&255]^r[2][a>>>8&255]^r[3][255&o]^t[s++],d=r[0][h>>>24]^r[1][a>>>16&255]^r[2][o>>>8&255]^r[3][255&f]^t[s++],a=c,o=l,f=u,h=d;return c=(n[a>>>24]<<24|n[o>>>16&255]<<16|n[f>>>8&255]<<8|n[255&h])^t[s++],l=(n[o>>>24]<<24|n[f>>>16&255]<<16|n[h>>>8&255]<<8|n[255&a])^t[s++],u=(n[f>>>24]<<24|n[h>>>16&255]<<16|n[a>>>8&255]<<8|n[255&o])^t[s++],d=(n[h>>>24]<<24|n[a>>>16&255]<<16|n[o>>>8&255]<<8|n[255&f])^t[s++],[i(c),i(l),i(u),i(d)]},t.AES=a}).call(t,i(0).Buffer)},function(e,t){t["aes-128-ecb"]={cipher:"AES",key:128,iv:0,mode:"ECB",type:"block"},t["aes-192-ecb"]={cipher:"AES",key:192,iv:0,mode:"ECB",type:"block"},t["aes-256-ecb"]={cipher:"AES",key:256,iv:0,mode:"ECB",type:"block"},t["aes-128-cbc"]={cipher:"AES",key:128,iv:16,mode:"CBC",type:"block"},t["aes-192-cbc"]={cipher:"AES",key:192,iv:16,mode:"CBC",type:"block"},t["aes-256-cbc"]={cipher:"AES",key:256,iv:16,mode:"CBC",type:"block"},t.aes128=t["aes-128-cbc"],t.aes192=t["aes-192-cbc"],t.aes256=t["aes-256-cbc"],t["aes-128-cfb"]={cipher:"AES",key:128,iv:16,mode:"CFB",type:"stream"},t["aes-192-cfb"]={cipher:"AES",key:192,iv:16,mode:"CFB",type:"stream"},t["aes-256-cfb"]={cipher:"AES",key:256,iv:16,mode:"CFB",type:"stream"},t["aes-128-cfb8"]={cipher:"AES",key:128,iv:16,mode:"CFB8",type:"stream"},t["aes-192-cfb8"]={cipher:"AES",key:192,iv:16,mode:"CFB8",type:"stream"},t["aes-256-cfb8"]={cipher:"AES",key:256,iv:16,mode:"CFB8",type:"stream"},t["aes-128-cfb1"]={cipher:"AES",key:128,iv:16,mode:"CFB1",type:"stream"},t["aes-192-cfb1"]={cipher:"AES",key:192,iv:16,mode:"CFB1",type:"stream"},t["aes-256-cfb1"]={cipher:"AES",key:256,iv:16,mode:"CFB1",type:"stream"},t["aes-128-ofb"]={cipher:"AES",key:128,iv:16,mode:"OFB",type:"stream"},t["aes-192-ofb"]={cipher:"AES",key:192,iv:16,mode:"OFB",type:"stream"},t["aes-256-ofb"]={cipher:"AES",key:256,iv:16,mode:"OFB",type:"stream"},t["aes-128-ctr"]={cipher:"AES",key:128,iv:16,mode:"CTR",type:"stream"},t["aes-192-ctr"]={cipher:"AES",key:192,iv:16,mode:"CTR",type:"stream"},t["aes-256-ctr"]={cipher:"AES",key:256,iv:16,mode:"CTR",type:"stream"},t["aes-128-gcm"]={cipher:"AES",key:128,iv:12,mode:"GCM",type:"auth"},t["aes-192-gcm"]={cipher:"AES",key:192,iv:12,mode:"GCM",type:"auth"},t["aes-256-gcm"]={cipher:"AES",key:256,iv:12,mode:"GCM",type:"auth"}},function(e,t,i){(function(e){function r(e){for(var t,i=e.length;i--;){if(t=e.readUInt8(i),255!==t){t++,e.writeUInt8(t,i);break}e.writeUInt8(0,i)}}function n(e){var t=e._cipher.encryptBlock(e._prev);return r(e._prev),t}var s=i(24);t.encrypt=function(t,i){for(;t._cache.length0&&d.push(a),d.push(e),i&&d.push(i),a=n(t.concat(d)),d=[],o=0,r>0)for(;;){if(0===r)break;if(o===a.length)break;c[f++]=a[o],r--,o++}if(s>0&&o!==a.length)for(;;){if(0===s)break;if(o===a.length)break;l[h++]=a[o],s--,o++}if(0===r&&0===s)break}for(o=0;oe.server_max_window_bits)&&("number"!=typeof this._options.clientMaxWindowBits||e.client_max_window_bits))return(this._options.serverNoContextTakeover||e.server_no_context_takeover)&&(t.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(t.client_no_context_takeover=!0),this._options.clientNoContextTakeover!==!1&&e.client_no_context_takeover&&(t.client_no_context_takeover=!0),"number"==typeof this._options.serverMaxWindowBits?t.server_max_window_bits=this._options.serverMaxWindowBits:"number"==typeof e.server_max_window_bits&&(t.server_max_window_bits=e.server_max_window_bits),"number"==typeof this._options.clientMaxWindowBits?t.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits!==!1&&"number"==typeof e.client_max_window_bits&&(t.client_max_window_bits=e.client_max_window_bits),!0},this);if(!i)throw new Error("Doesn't support the offered configuration");return t},r.prototype.acceptAsClient=function(e){var t=e[0];if(null!=this._options.clientNoContextTakeover&&this._options.clientNoContextTakeover===!1&&t.client_no_context_takeover)throw new Error('Invalid value for "client_no_context_takeover"');if(null!=this._options.clientMaxWindowBits){if(this._options.clientMaxWindowBits===!1&&t.client_max_window_bits)throw new Error('Invalid value for "client_max_window_bits"');if("number"==typeof this._options.clientMaxWindowBits&&(!t.client_max_window_bits||t.client_max_window_bits>this._options.clientMaxWindowBits))throw new Error('Invalid value for "client_max_window_bits"')}return t},r.prototype.normalizeParams=function(e){return e.map(function(e){return Object.keys(e).forEach(function(t){var i=e[t];if(i.length>1)throw new Error("Multiple extension parameters for "+t);switch(i=i[0],t){case"server_no_context_takeover":case"client_no_context_takeover":if(i!==!0)throw new Error("invalid extension parameter value for "+t+" ("+i+")");e[t]=!0;break;case"server_max_window_bits":case"client_max_window_bits":if("string"==typeof i&&(i=parseInt(i,10),!~s.indexOf(i)))throw new Error("invalid extension parameter value for "+t+" ("+i+")");if(!this._isServer&&i===!0)throw new Error("Missing extension parameter value for "+t);e[t]=i;break;default:throw new Error("Not defined extension parameter ("+t+")")}},this),e},this)},r.prototype.decompress=function(e,i,r){function s(e){f(),r(e)}function o(e){if(void 0!==l._maxPayload&&null!==l._maxPayload&&l._maxPayload>0&&(d+=e.length,d>l._maxPayload)){u=[],f();var t={type:1009};return void r(t)}u.push(e)}function f(){l._inflate&&(l._inflate.removeListener("error",s),l._inflate.removeListener("data",o),l._inflate.writeInProgress=!1,(i&&l.params[h+"_no_context_takeover"]||l._inflate.pendingClose)&&(l._inflate.close&&l._inflate.close(),l._inflate=null))}var h=this._isServer?"client":"server";if(!this._inflate){var c=this.params[h+"_max_window_bits"];this._inflate=n.createInflateRaw({windowBits:"number"==typeof c?c:a})}this._inflate.writeInProgress=!0;var l=this,u=[],d=0;this._inflate.on("error",s).on("data",o),this._inflate.write(e),i&&this._inflate.write(new t([0,0,255,255])),this._inflate.flush(function(){f(),r(null,t.concat(u))})},r.prototype.compress=function(e,i,r){function s(e){h(),r(e)}function f(e){d.push(e)}function h(){u._deflate&&(u._deflate.removeListener("error",s),u._deflate.removeListener("data",f),u._deflate.writeInProgress=!1,(i&&u.params[c+"_no_context_takeover"]||u._deflate.pendingClose)&&(u._deflate.close&&u._deflate.close(),u._deflate=null))}var c=this._isServer?"server":"client";if(!this._deflate){var l=this.params[c+"_max_window_bits"];this._deflate=n.createDeflateRaw({flush:n.Z_SYNC_FLUSH,windowBits:"number"==typeof l?l:a,memLevel:this._options.memLevel||o})}this._deflate.writeInProgress=!0;var u=this,d=[];this._deflate.on("error",s).on("data",f),this._deflate.write(e),this._deflate.flush(function(){h();var e=t.concat(d);i&&(e=e.slice(0,e.length-4)),r(null,e)})},e.exports=r}).call(t,i(0).Buffer)},function(e,t){e.exports=function e(t,i){if(!i)return t;for(const r in t)({}).hasOwnProperty.call(i,r)?i[r]===Object(i[r])&&(i[r]=e(t[r],i[r])):i[r]=t[r];return i}},function(e,t,i){const r=i(2);class n{constructor(e,t){this.member=e,this.raw=t}serialize(){const e={};for(const t in r.PermissionFlags)e[t]=this.hasPermission(t);return e}hasPermission(e,t=false){return e=this.member.client.resolver.resolvePermission(e),!t&&(this.raw&r.PermissionFlags.ADMINISTRATOR)>0||(this.raw&e)>0}hasPermissions(e,t=false){return e.every(e=>this.hasPermission(e,t))}missingPermissions(e,t=false){return e.filter(e=>!this.hasPermission(e,t))}}e.exports=n},function(e,t,i){const r=i(11),n=i(22),s=i(21),a=i(12).Presence,o=i(30),f=i(2),h=i(6),c=i(130),l=i(60);class u{constructor(e,t){this.client=e,Object.defineProperty(this,"client",{enumerable:!1,configurable:!1}),this.members=new h,this.channels=new h,this.roles=new h,t&&(t.unavailable?(this.available=!1,this.id=t.id):(this.available=!0,this.setup(t)))}setup(e){this.name=e.name,this.icon=e.icon,this.splash=e.splash,this.region=e.region,this.memberCount=e.member_count||this.memberCount,this.large=e.large||this.large,this.presences=new h,this.features=e.features,this.emojis=new h;for(const t of e.emojis)this.emojis.set(t.id,new s(this,t));if(this.afkTimeout=e.afk_timeout,this.afkChannelID=e.afk_channel_id,this.embedEnabled=e.embed_enabled,this.verificationLevel=e.verification_level,this.joinedTimestamp=e.joined_at?new Date(e.joined_at).getTime():this.joinedTimestamp,this.id=e.id,this.available=!e.unavailable,this.features=e.features||this.features||[],e.members){this.members.clear();for(const t of e.members)this._addMember(t,!1)}if(e.owner_id&&(this.ownerID=e.owner_id),e.channels){this.channels.clear();for(const t of e.channels)this.client.dataManager.newChannel(t,this)}if(e.roles){this.roles.clear();for(const t of e.roles){const e=new n(this,t);this.roles.set(e.id,e)}}if(e.presences)for(const i of e.presences)this._setPresence(i.user.id,i);if(this._rawVoiceStates=new h,e.voice_states)for(const r of e.voice_states){this._rawVoiceStates.set(r.user_id,r);const e=this.members.get(r.user_id);e&&(e.serverMute=r.mute,e.serverDeaf=r.deaf,e.selfMute=r.self_mute,e.selfDeaf=r.self_deaf,e.voiceSessionID=r.session_id,e.voiceChannelID=r.channel_id,this.channels.get(r.channel_id).members.set(e.user.id,e))}}get createdTimestamp(){return this.id/4194304+14200704e5}get createdAt(){return new Date(this.createdTimestamp)}get joinedAt(){return new Date(this.joinedTimestamp)}get iconURL(){return this.icon?f.Endpoints.guildIcon(this.id,this.icon):null}get owner(){return this.members.get(this.ownerID)}get voiceConnection(){return this.client.voice.connections.get(this.id)||null}get defaultChannel(){return this.channels.get(this.id)}member(e){return this.client.resolver.resolveGuildMember(this,e)}fetchBans(){return this.client.rest.methods.getGuildBans(this)}fetchInvites(){return this.client.rest.methods.getGuildInvites(this)}fetchWebhooks(){return this.client.rest.methods.getGuildWebhooks(this)}fetchMember(e){return this._fetchWaiter?Promise.reject(new Error("Already fetching guild members.")):(e=this.client.resolver.resolveUser(e),e?this.members.has(e.id)?Promise.resolve(this.members.get(e.id)):this.client.rest.methods.getGuildMember(this,e):Promise.reject(new Error("User is not cached. Use Client.fetchUser first.")))}fetchMembers(e=""){return new Promise((t,i)=>{if(this._fetchWaiter)throw new Error("Already fetching guild members in ${this.id}.");return this.memberCount===this.members.size?void t(this):(this._fetchWaiter=t,this.client.ws.send({op:f.OPCodes.REQUEST_GUILD_MEMBERS,d:{guild_id:this.id,query:e,limit:0}}),this._checkChunks(),void this.client.setTimeout(()=>i(new Error("Members didn't arrive in time.")),12e4))})}edit(e){return this.client.rest.methods.updateGuild(this,e)}setName(e){return this.edit({name:e})}setRegion(e){return this.edit({region:e})}setVerificationLevel(e){return this.edit({verificationLevel:e})}setAFKChannel(e){return this.edit({afkChannel:e})}setAFKTimeout(e){return this.edit({afkTimeout:e})}setIcon(e){return this.edit({icon:e})}setOwner(e){return this.edit({owner:e})}setSplash(e){return this.edit({splash:e})}ban(e,t=0){return this.client.rest.methods.banGuildMember(this,e,t)}unban(e){return this.client.rest.methods.unbanGuildMember(this,e)}pruneMembers(e,t=false){if("number"!=typeof e)throw new TypeError("Days must be a number.");return this.client.rest.methods.pruneGuildMembers(this,e,t)}sync(){this.client.user.bot||this.client.syncGuilds([this])}createChannel(e,t){return this.client.rest.methods.createChannel(this,e,t)}createRole(e){const t=this.client.rest.methods.createGuildRole(this);return e?t.then(t=>t.edit(e)):t}createEmoji(e,t){return new Promise(i=>{e.startsWith("data:")?i(this.client.rest.methods.createEmoji(this,e,t)):this.client.resolver.resolveBuffer(e).then(e=>i(this.client.rest.methods.createEmoji(this,e,t)))})}deleteEmoji(e){return e instanceof s||(e=this.emojis.get(e)),this.client.rest.methods.deleteEmoji(e)}leave(){return this.client.rest.methods.leaveGuild(this)}delete(){return this.client.rest.methods.deleteGuild(this)}setRolePosition(e,t){if(e instanceof n)e=e.id;else if("string"!=typeof e)return Promise.reject(new Error("Supplied role is not a role or string"));if(t=Number(t),isNaN(t))return Promise.reject(new Error("Supplied position is not a number"));const i=this.roles.array().map(i=>({id:i.id,position:i.id===e?t:i.positionnew n(this,e)),this.attachments=new s;for(const t of e.attachments)this.attachments.set(t.id,new r(this,t));this.createdTimestamp=new Date(e.timestamp).getTime(),this.editedTimestamp=e.edited_timestamp?new Date(e.edited_timestamp).getTime():null,this.mentions={users:new s,roles:new s,channels:new s,everyone:e.mention_everyone};for(const i of e.mentions){let e=this.client.users.get(i.id);e?this.mentions.users.set(e.id,e):(e=this.client.dataManager.newUser(i), -this.mentions.users.set(e.id,e))}if(e.mention_roles)for(const i of e.mention_roles){const e=this.channel.guild.roles.get(i);e&&this.mentions.roles.set(e.id,e)}if(this.channel.guild){const t=e.content.match(/<#([0-9]{14,20})>/g)||[];for(const i of t){const e=this.channel.guild.channels.get(i.match(/([0-9]{14,20})/g)[0]);e&&this.mentions.channels.set(e.id,e)}}if(this._edits=[],this.reactions=new s,e.reactions&&e.reactions.length>0)for(const o of e.reactions){const e=o.emoji.id?`${o.emoji.name}:${o.emoji.id}`:o.emoji.name;this.reactions.set(e,new f(this,o.emoji,o.count,o.me))}}patch(e){if(e.author&&(this.author=this.client.users.get(e.author.id),this.guild&&(this.member=this.guild.member(this.author))),e.content&&(this.content=e.content),e.timestamp&&(this.createdTimestamp=new Date(e.timestamp).getTime()),e.edited_timestamp&&(this.editedTimestamp=e.edited_timestamp?new Date(e.edited_timestamp).getTime():null),"tts"in e&&(this.tts=e.tts),"mention_everyone"in e&&(this.mentions.everyone=e.mention_everyone),e.nonce&&(this.nonce=e.nonce),e.embeds&&(this.embeds=e.embeds.map(e=>new n(this,e))),e.type>-1&&(this.system=!1,6===e.type&&(this.system=!0)),e.attachments){this.attachments=new s;for(const t of e.attachments)this.attachments.set(t.id,new r(this,t))}if(e.mentions)for(const t of e.mentions){let e=this.client.users.get(t.id);e?this.mentions.users.set(e.id,e):(e=this.client.dataManager.newUser(t),this.mentions.users.set(e.id,e))}if(e.mention_roles)for(const t of e.mention_roles){const e=this.channel.guild.roles.get(t);e&&this.mentions.roles.set(e.id,e)}if(e.id&&(this.id=e.id),this.channel.guild&&e.content){const t=e.content.match(/<#([0-9]{14,20})>/g)||[];for(const i of t){const e=this.channel.guild.channels.get(i.match(/([0-9]{14,20})/g)[0]);e&&this.mentions.channels.set(e.id,e)}}if(e.reactions&&(this.reactions=new s,e.reactions.length>0))for(const i of e.reactions){const t=i.emoji.id?`${i.emoji.name}:${i.emoji.id}`:i.emoji.name;this.reactions.set(t,new f(this,e.emoji,e.count,e.me))}}get createdAt(){return new Date(this.createdTimestamp)}get editedAt(){return this.editedTimestamp?new Date(this.editedTimestamp):null}get guild(){return this.channel.guild||null}get cleanContent(){return this.content.replace(/@(everyone|here)/g,"@​$1").replace(/<@!?[0-9]+>/g,e=>{const t=e.replace(/<|!|>|@/g,"");if("dm"===this.channel.type||"group"===this.channel.type)return this.client.users.has(t)?`@${this.client.users.get(t).username}`:e;const i=this.channel.guild.members.get(t);if(i)return i.nickname?`@${i.nickname}`:`@${i.user.username}`;{const i=this.client.users.get(t);return i?`@${i.username}`:e}}).replace(/<#[0-9]+>/g,e=>{const t=this.client.channels.get(e.replace(/<|#|>/g,""));return t?`#${t.name}`:e}).replace(/<@&[0-9]+>/g,e=>{if("dm"===this.channel.type||"group"===this.channel.type)return e;const t=this.guild.roles.get(e.replace(/<|@|>|&/g,""));return t?`@${t.name}`:e})}get edits(){return this._edits.slice().unshift(this)}get editable(){return this.author.id===this.client.user.id}get deletable(){return this.author.id===this.client.user.id||this.guild&&this.channel.permissionsFor(this.client.user).hasPermission(a.PermissionFlags.MANAGE_MESSAGES)}get pinnable(){return!this.guild||this.channel.permissionsFor(this.client.user).hasPermission(a.PermissionFlags.MANAGE_MESSAGES)}isMentioned(e){return e=e&&e.id?e.id:e,this.mentions.users.has(e)||this.mentions.channels.has(e)||this.mentions.roles.has(e)}edit(e,t={}){return this.client.rest.methods.updateMessage(this,e,t)}editCode(e,t){return t=o(this.client.resolver.resolveString(t),!0),this.edit(`\`\`\`${e||""} +\`\`\``,i)}fetchMessage(e){return this.client.rest.methods.getChannelMessage(this,e).then(e=>{const t=e instanceof s?e:new s(this,e,this.client);return this._cacheMessage(t),t})}fetchMessages(e={}){return this.client.rest.methods.getChannelMessages(this,e).then(e=>{const t=new o;for(const i of e){const e=new s(this,i,this.client);t.set(i.id,e),this._cacheMessage(e)}return t})}fetchPinnedMessages(){return this.client.rest.methods.getChannelPinnedMessages(this).then(e=>{const t=new o;for(const i of e){const e=new s(this,i,this.client);t.set(i.id,e),this._cacheMessage(e)}return t})}startTyping(e){if("undefined"!=typeof e&&e<1)throw new RangeError("Count must be at least 1.");if(this.client.user._typing.has(this.id)){const t=this.client.user._typing.get(this.id);t.count=e||t.count+1}else this.client.user._typing.set(this.id,{count:e||1,interval:this.client.setInterval(()=>{this.client.rest.methods.sendTyping(this.id)},4e3)}),this.client.rest.methods.sendTyping(this.id)}stopTyping(e=false){if(this.client.user._typing.has(this.id)){const t=this.client.user._typing.get(this.id);t.count--,(t.count<=0||e)&&(this.client.clearInterval(t.interval),this.client.user._typing.delete(this.id))}}get typing(){return this.client.user._typing.has(this.id)}get typingCount(){return this.client.user._typing.has(this.id)?this.client.user._typing.get(this.id).count:0}createCollector(e,t={}){return new a(this,e,t)}awaitMessages(e,t={}){return new Promise((i,r)=>{const n=this.createCollector(e,t);n.on("end",(e,n)=>{t.errors&&t.errors.includes(n)?r(e):i(e)})})}bulkDelete(e){if(!isNaN(e))return this.fetchMessages({limit:e}).then(e=>this.bulkDelete(e));if(e instanceof Array||e instanceof o){const t=e instanceof o?e.keyArray():e.map(e=>e.id);return this.client.rest.methods.bulkDeleteMessages(this,t)}throw new TypeError("The messages must be an Array, Collection, or number.")}_cacheMessage(e){const t=this.client.options.messageCacheMaxSize;return 0===t?null:(this.messages.size>=t&&t>0&&this.messages.delete(this.messages.firstKey()),this.messages.set(e.id,e),e)}}t.applyToClass=((e,t=false)=>{const i=["sendMessage","sendTTSMessage","sendFile","sendCode"];t&&(i.push("_cacheMessage"),i.push("fetchMessages"),i.push("fetchMessage"),i.push("bulkDelete"),i.push("startTyping"),i.push("stopTyping"),i.push("typing"),i.push("typingCount"),i.push("fetchPinnedMessages"),i.push("createCollector"),i.push("awaitMessages"));for(const n of i)r(e,n)})},function(e,t,i){const r=i(24),n=i(20),s=i(79),a=i(46),o=i(1),f=i(6),h=i(63);class c extends r{constructor(e,t){super(e.client,t),this.guild=e}setup(e){if(super.setup(e),this.name=e.name,this.position=e.position,this.permissionOverwrites=new f,e.permission_overwrites)for(const t of e.permission_overwrites)this.permissionOverwrites.set(t.id,new s(this,t))}permissionsFor(e){if(e=this.client.resolver.resolveGuildMember(this.guild,e),!e)return null;if(e.id===this.guild.ownerID)return new a(e,o.ALL_PERMISSIONS);let t=0;const i=e.roles;for(const r of i.values())t|=r.permissions;const n=this.overwritesFor(e,!0,i);for(const s of n.role.concat(n.member))t&=~s.denyData,t|=s.allowData;const f=Boolean(t&o.PermissionFlags.ADMINISTRATOR);return f&&(t=o.ALL_PERMISSIONS),new a(e,t)}overwritesFor(e,t=false,i=null){if(t||(e=this.client.resolver.resolveGuildMember(this.guild,e)),!e)return[];i=i||e.roles;const r=[],n=[];for(const s of this.permissionOverwrites.values())s.id===e.id?n.push(s):i.has(s.id)&&r.push(s);return{role:r,member:n}}overwritePermissions(e,t){const i={allow:0,deny:0};if(e instanceof n)i.type="role";else if(this.guild.roles.has(e))e=this.guild.roles.get(e),i.type="role";else if(e=this.client.resolver.resolveUser(e),i.type="member",!e)return Promise.reject(new TypeError("Supplied parameter was neither a User nor a Role."));i.id=e.id;const r=this.permissionOverwrites.get(e.id);r&&(i.allow=r.allowData,i.deny=r.denyData);for(const s in t)t[s]===!0?(i.allow|=o.PermissionFlags[s]||0,i.deny&=~(o.PermissionFlags[s]||0)):t[s]===!1?(i.allow&=~(o.PermissionFlags[s]||0),i.deny|=o.PermissionFlags[s]||0):null===t[s]&&(i.allow&=~(o.PermissionFlags[s]||0),i.deny&=~(o.PermissionFlags[s]||0));return this.client.rest.methods.setChannelOverwrite(this,i)}edit(e){return this.client.rest.methods.updateChannel(this,e)}setName(e){return this.edit({name:e})}setPosition(e){return this.client.rest.methods.updateChannel(this,{position:e})}setTopic(e){return this.client.rest.methods.updateChannel(this,{topic:e})}createInvite(e={}){return this.client.rest.methods.createChannelInvite(this,e)}equals(e){let t=e&&this.id===e.id&&this.type===e.type&&this.topic===e.topic&&this.position===e.position&&this.name===e.name;if(t)if(this.permissionOverwrites&&e.permissionOverwrites){const i=this.permissionOverwrites.keyArray(),r=e.permissionOverwrites.keyArray();t=h(i,r)}else t=!this.permissionOverwrites&&!e.permissionOverwrites;return t}toString(){return`<#${this.id}>`}}e.exports=c},function(e,t,i){const r=i(31),n=i(20),s=i(46),a=i(1),o=i(6),f=i(15).Presence;class h{constructor(e,t){this.client=e.client,Object.defineProperty(this,"client",{enumerable:!1,configurable:!1}),this.guild=e,this.user={},this._roles=[],t&&this.setup(t)}setup(e){this.serverDeaf=e.deaf,this.serverMute=e.mute,this.selfMute=e.self_mute,this.selfDeaf=e.self_deaf,this.voiceSessionID=e.session_id,this.voiceChannelID=e.channel_id,this.speaking=!1,this.nickname=e.nick||null,this.joinedTimestamp=new Date(e.joined_at).getTime(),this.user=e.user,this._roles=e.roles}get joinedAt(){return new Date(this.joinedTimestamp)}get presence(){return this.frozenPresence||this.guild.presences.get(this.id)||new f}get roles(){const e=new o,t=this.guild.roles.get(this.guild.id);t&&e.set(t.id,t);for(const i of this._roles){const t=this.guild.roles.get(i);t&&e.set(t.id,t)}return e}get highestRole(){return this.roles.reduce((e,t)=>!e||t.comparePositionTo(e)>0?t:e)}get mute(){return this.selfMute||this.serverMute}get deaf(){return this.selfDeaf||this.serverDeaf}get voiceChannel(){return this.guild.channels.get(this.voiceChannelID)}get id(){return this.user.id}get permissions(){if(this.user.id===this.guild.ownerID)return new s(this,a.ALL_PERMISSIONS);let e=0;const t=this.roles;for(const i of t.values())e|=i.permissions;const r=Boolean(e&a.PermissionFlags.ADMINISTRATOR);return r&&(e=a.ALL_PERMISSIONS),new s(this,e)}get kickable(){if(this.user.id===this.guild.ownerID)return!1;if(this.user.id===this.client.user.id)return!1;const e=this.guild.member(this.client.user);return!!e.hasPermission(a.PermissionFlags.KICK_MEMBERS)&&e.highestRole.comparePositionTo(this.highestRole)>0}get bannable(){if(this.user.id===this.guild.ownerID)return!1;if(this.user.id===this.client.user.id)return!1;const e=this.guild.member(this.client.user);return!!e.hasPermission(a.PermissionFlags.BAN_MEMBERS)&&e.highestRole.comparePositionTo(this.highestRole)>0}permissionsIn(e){if(e=this.client.resolver.resolveChannel(e),!e||!e.guild)throw new Error("Could not resolve channel to a guild channel.");return e.permissionsFor(this)}hasPermission(e,t=false){return!t&&this.user.id===this.guild.ownerID||this.roles.some(i=>i.hasPermission(e,t))}hasPermissions(e,t=false){return!t&&this.user.id===this.guild.ownerID||e.every(e=>this.hasPermission(e,t))}missingPermissions(e,t=false){return e.filter(e=>!this.hasPermission(e,t))}edit(e){return this.client.rest.methods.updateGuildMember(this,e)}setMute(e){return this.edit({mute:e})}setDeaf(e){return this.edit({deaf:e})}setVoiceChannel(e){return this.edit({channel:e})}setRoles(e){return this.edit({roles:e})}addRole(e){return this.addRoles([e])}addRoles(e){let t;if(e instanceof o){t=this._roles.slice();for(const i of e.values())t.push(i.id)}else t=this._roles.concat(e);return this.edit({roles:t})}removeRole(e){return this.removeRoles([e])}removeRoles(e){const t=this._roles.slice();if(e instanceof o)for(const i of e.values()){const e=t.indexOf(i.id);e>=0&&t.splice(e,1)}else for(const i of e){const e=t.indexOf(i instanceof n?i.id:i);e>=0&&t.splice(e,1)}return this.edit({roles:t})}setNickname(e){return this.edit({nick:e})}deleteDM(){return this.client.rest.methods.deleteChannel(this)}kick(){return this.client.rest.methods.kickGuildMember(this.guild,this)}ban(e=0){return this.client.rest.methods.banGuildMember(this.guild,this,e)}toString(){return`<@${this.nickname?"!":""}${this.user.id}>`}sendMessage(){}sendTTSMessage(){}sendFile(){}sendCode(){}}r.applyToClass(h),e.exports=h},function(e,t,i){const r=i(72),n=i(74),s=i(6),a=i(1),o=i(35),f=i(75);class h{constructor(e,t,i){this.client=i,Object.defineProperty(this,"client",{enumerable:!1,configurable:!1}),this.channel=e,t&&this.setup(t)}setup(e){this.id=e.id,this.type=a.MessageTypes[e.type],this.content=e.content,this.author=this.client.dataManager.newUser(e.author),this.member=this.guild?this.guild.member(this.author)||null:null,this.pinned=e.pinned,this.tts=e.tts,this.nonce=e.nonce,this.system=6===e.type,this.embeds=e.embeds.map(e=>new n(this,e)),this.attachments=new s;for(const t of e.attachments)this.attachments.set(t.id,new r(this,t));this.createdTimestamp=new Date(e.timestamp).getTime(),this.editedTimestamp=e.edited_timestamp?new Date(e.edited_timestamp).getTime():null,this.mentions={users:new s,roles:new s,channels:new s,everyone:e.mention_everyone};for(const i of e.mentions){let e=this.client.users.get(i.id);e?this.mentions.users.set(e.id,e):(e=this.client.dataManager.newUser(i),this.mentions.users.set(e.id,e))}if(e.mention_roles)for(const i of e.mention_roles){const e=this.channel.guild.roles.get(i);e&&this.mentions.roles.set(e.id,e)}if(this.channel.guild){const t=e.content.match(/<#([0-9]{14,20})>/g)||[];for(const i of t){const e=this.channel.guild.channels.get(i.match(/([0-9]{14,20})/g)[0]);e&&this.mentions.channels.set(e.id,e)}}if(this._edits=[],this.reactions=new s,e.reactions&&e.reactions.length>0)for(const o of e.reactions){const e=o.emoji.id?`${o.emoji.name}:${o.emoji.id}`:o.emoji.name;this.reactions.set(e,new f(this,o.emoji,o.count,o.me))}}patch(e){if(e.author&&(this.author=this.client.users.get(e.author.id),this.guild&&(this.member=this.guild.member(this.author))),e.content&&(this.content=e.content),e.timestamp&&(this.createdTimestamp=new Date(e.timestamp).getTime()),e.edited_timestamp&&(this.editedTimestamp=e.edited_timestamp?new Date(e.edited_timestamp).getTime():null),"tts"in e&&(this.tts=e.tts),"mention_everyone"in e&&(this.mentions.everyone=e.mention_everyone),e.nonce&&(this.nonce=e.nonce),e.embeds&&(this.embeds=e.embeds.map(e=>new n(this,e))),e.type>-1&&(this.system=!1,6===e.type&&(this.system=!0)),e.attachments){this.attachments=new s;for(const t of e.attachments)this.attachments.set(t.id,new r(this,t))}if(e.mentions)for(const t of e.mentions){let e=this.client.users.get(t.id);e?this.mentions.users.set(e.id,e):(e=this.client.dataManager.newUser(t),this.mentions.users.set(e.id,e))}if(e.mention_roles)for(const t of e.mention_roles){const e=this.channel.guild.roles.get(t);e&&this.mentions.roles.set(e.id,e)}if(e.id&&(this.id=e.id),this.channel.guild&&e.content){const t=e.content.match(/<#([0-9]{14,20})>/g)||[];for(const i of t){const e=this.channel.guild.channels.get(i.match(/([0-9]{14,20})/g)[0]);e&&this.mentions.channels.set(e.id,e)}}if(e.reactions&&(this.reactions=new s,e.reactions.length>0))for(const i of e.reactions){const t=i.emoji.id?`${i.emoji.name}:${i.emoji.id}`:i.emoji.name;this.reactions.set(t,new f(this,e.emoji,e.count,e.me))}}get createdAt(){return new Date(this.createdTimestamp)}get editedAt(){return this.editedTimestamp?new Date(this.editedTimestamp):null}get guild(){return this.channel.guild||null}get cleanContent(){return this.content.replace(/@(everyone|here)/g,"@​$1").replace(/<@!?[0-9]+>/g,e=>{const t=e.replace(/<|!|>|@/g,"");if("dm"===this.channel.type||"group"===this.channel.type)return this.client.users.has(t)?`@${this.client.users.get(t).username}`:e;const i=this.channel.guild.members.get(t);if(i)return i.nickname?`@${i.nickname}`:`@${i.user.username}`;{const i=this.client.users.get(t);return i?`@${i.username}`:e}}).replace(/<#[0-9]+>/g,e=>{const t=this.client.channels.get(e.replace(/<|#|>/g,""));return t?`#${t.name}`:e}).replace(/<@&[0-9]+>/g,e=>{if("dm"===this.channel.type||"group"===this.channel.type)return e;const t=this.guild.roles.get(e.replace(/<|@|>|&/g,""));return t?`@${t.name}`:e})}get edits(){return this._edits.slice().unshift(this)}get editable(){return this.author.id===this.client.user.id}get deletable(){return this.author.id===this.client.user.id||this.guild&&this.channel.permissionsFor(this.client.user).hasPermission(a.PermissionFlags.MANAGE_MESSAGES)}get pinnable(){return!this.guild||this.channel.permissionsFor(this.client.user).hasPermission(a.PermissionFlags.MANAGE_MESSAGES)}isMentioned(e){return e=e&&e.id?e.id:e,this.mentions.users.has(e)||this.mentions.channels.has(e)||this.mentions.roles.has(e)}edit(e,t={}){return this.client.rest.methods.updateMessage(this,e,t)}editCode(e,t){return t=o(this.client.resolver.resolveString(t),!0),this.edit(`\`\`\`${e||""} ${t} -\`\`\``)}pin(){return this.client.rest.methods.pinMessage(this)}unpin(){return this.client.rest.methods.unpinMessage(this)}react(e){if(e=this.client.resolver.resolveEmojiIdentifier(e),!e)throw new TypeError("Emoji must be a string or Emoji/ReactionEmoji");return this.client.rest.methods.addMessageReaction(this,e)}clearReactions(){return this.client.rest.methods.removeMessageReactions(this)}delete(e=0){return e<=0?this.client.rest.methods.deleteMessage(this):new Promise(t=>{this.client.setTimeout(()=>{t(this.delete())},e)})}reply(e,t={}){e=this.client.resolver.resolveString(e);const i=this.guild?`${this.author}, `:"";return e=`${i}${e}`,t.split&&("object"!=typeof t.split&&(t.split={}),t.split.prepend||(t.split.prepend=i)),this.client.rest.methods.sendMessage(this.channel,e,t)}equals(e,t){if(!e)return!1;const i=!e.author&&!e.attachments;if(i)return this.id===e.id&&this.embeds.length===e.embeds.length;let r=this.id===e.id&&this.author.id===e.author.id&&this.content===e.content&&this.tts===e.tts&&this.nonce===e.nonce&&this.embeds.length===e.embeds.length&&this.attachments.length===e.attachments.length;return r&&t&&(r=this.mentions.everyone===e.mentions.everyone&&this.createdTimestamp===new Date(t.timestamp).getTime()&&this.editedTimestamp===new Date(t.edited_timestamp).getTime()),r}toString(){return this.content}_addReaction(e,t){const i=e.id?`${e.name}:${e.id}`:e.name;let r;return this.reactions.has(i)?(r=this.reactions.get(i),r.me||(r.me=t.id===this.client.user.id)):(r=new f(this,e,0,t.id===this.client.user.id),this.reactions.set(i,r)),r.users.has(t.id)?null:(r.users.set(t.id,t),r.count++,r)}_removeReaction(e,t){const i=e.id||e;if(this.reactions.has(i)){const e=this.reactions.get(i);if(e.users.has(t.id))return e.users.delete(t.id),e.count--,t.id===this.client.user.id&&(e.me=!1),e}return null}_clearReactions(){this.reactions.clear()}}e.exports=h},function(e,t){class i{constructor(e,t,i){this.reaction=e,this.name=t,this.id=i}get identifier(){return this.id?`${this.name}:${this.id}`:encodeURIComponent(this.name)}toString(){return this.id?`<:${this.name}:${this.id}>`:this.name}}e.exports=i},function(e,t,i){const r=i(14),n=i(31);class s{constructor(e,t,i){e?(this.client=e,Object.defineProperty(this,"client",{enumerable:!1,configurable:!1}),t&&this.setup(t)):(this.id=t,this.token=i,this.client=this)}setup(e){this.name=e.name,this.token=e.token,this.avatar=e.avatar,this.id=e.id,this.guildID=e.guild_id,this.channelID=e.channel_id,e.user&&(this.owner=e.user)}sendMessage(e,t={}){return this.client.rest.methods.sendWebhookMessage(this,e,t)}sendSlackMessage(e){return this.client.rest.methods.sendSlackWebhookMessage(this,e)}sendTTSMessage(e,t={}){return Object.assign(t,{tts:!0}),this.client.rest.methods.sendWebhookMessage(this,e,t)}sendFile(e,t,i,n={}){return t||(t="string"==typeof e?r.basename(e):e&&e.path?r.basename(e.path):"file.jpg"),this.client.resolver.resolveBuffer(e).then(e=>this.client.rest.methods.sendWebhookMessage(this,i,n,{file:e,name:t}))}sendCode(e,t,i={}){return i.split&&("object"!=typeof i.split&&(i.split={}),i.split.prepend||(i.split.prepend=`\`\`\`${e||""} +\`\`\``)}pin(){return this.client.rest.methods.pinMessage(this)}unpin(){return this.client.rest.methods.unpinMessage(this)}react(e){if(e=this.client.resolver.resolveEmojiIdentifier(e),!e)throw new TypeError("Emoji must be a string or Emoji/ReactionEmoji");return this.client.rest.methods.addMessageReaction(this,e)}clearReactions(){return this.client.rest.methods.removeMessageReactions(this)}delete(e=0){return e<=0?this.client.rest.methods.deleteMessage(this):new Promise(t=>{this.client.setTimeout(()=>{t(this.delete())},e)})}reply(e,t={}){e=this.client.resolver.resolveString(e);const i=this.guild?`${this.author}, `:"";return e=`${i}${e}`,t.split&&("object"!=typeof t.split&&(t.split={}),t.split.prepend||(t.split.prepend=i)),this.client.rest.methods.sendMessage(this.channel,e,t)}equals(e,t){if(!e)return!1;const i=!e.author&&!e.attachments;if(i)return this.id===e.id&&this.embeds.length===e.embeds.length;let r=this.id===e.id&&this.author.id===e.author.id&&this.content===e.content&&this.tts===e.tts&&this.nonce===e.nonce&&this.embeds.length===e.embeds.length&&this.attachments.length===e.attachments.length;return r&&t&&(r=this.mentions.everyone===e.mentions.everyone&&this.createdTimestamp===new Date(t.timestamp).getTime()&&this.editedTimestamp===new Date(t.edited_timestamp).getTime()),r}toString(){return this.content}_addReaction(e,t){const i=e.id?`${e.name}:${e.id}`:e.name;let r;return this.reactions.has(i)?(r=this.reactions.get(i),r.me||(r.me=t.id===this.client.user.id)):(r=new f(this,e,0,t.id===this.client.user.id),this.reactions.set(i,r)),r.users.has(t.id)?null:(r.users.set(t.id,t),r.count++,r)}_removeReaction(e,t){const i=e.id||e;if(this.reactions.has(i)){const e=this.reactions.get(i);if(e.users.has(t.id))return e.users.delete(t.id),e.count--,t.id===this.client.user.id&&(e.me=!1),e}return null}_clearReactions(){this.reactions.clear()}}e.exports=h},function(e,t){e.exports=function(e,t=false,i=false){return t?e.replace(/```/g,"`​``"):i?e.replace(/\\(`|\\)/g,"$1").replace(/(`|\\)/g,"\\$1"):e.replace(/\\(\*|_|`|~|\\)/g,"$1").replace(/(\*|_|`|~|\\)/g,"\\$1")}},function(e,t,i){var r=t;r.bignum=i(7),r.define=i(141).define,r.base=i(26),r.constants=i(85),r.decoders=i(145),r.encoders=i(147)},function(e,t,i){(function(e){function i(e){var t,i;return t=e>o||e<0?(i=Math.abs(e)%o,e<0?o-i:i):e}function r(e){for(var t=0;t>>8^255&i^99,this.SBOX[n]=i,this.INV_SBOX[i]=n,s=e[n],a=e[s],o=e[a],r=257*e[i]^16843008*i,this.SUB_MIX[0][n]=r<<24|r>>>8,this.SUB_MIX[1][n]=r<<16|r>>>16,this.SUB_MIX[2][n]=r<<8|r>>>24,this.SUB_MIX[3][n]=r,r=16843009*o^65537*a^257*s^16843008*n,this.INV_SUB_MIX[0][i]=r<<24|r>>>8,this.INV_SUB_MIX[1][i]=r<<16|r>>>16,this.INV_SUB_MIX[2][i]=r<<8|r>>>24,this.INV_SUB_MIX[3][i]=r,0===n?n=f=1:(n=s^e[e[e[o^s]]],f^=e[e[f]]);return!0};var f=new n;a.blockSize=16,a.prototype.blockSize=a.blockSize,a.keySize=32,a.prototype.keySize=a.keySize,a.prototype._doReset=function(){var e,t,i,r,n,s;for(i=this._key,t=i.length,this._nRounds=t+6,n=4*(this._nRounds+1),this._keySchedule=[],r=0;r>>24,s=f.SBOX[s>>>24]<<24|f.SBOX[s>>>16&255]<<16|f.SBOX[s>>>8&255]<<8|f.SBOX[255&s],s^=f.RCON[r/t|0]<<24):t>6&&r%t===4?s=f.SBOX[s>>>24]<<24|f.SBOX[s>>>16&255]<<16|f.SBOX[s>>>8&255]<<8|f.SBOX[255&s]:void 0,this._keySchedule[r-t]^s);for(this._invKeySchedule=[],e=0;e>>24]]^f.INV_SUB_MIX[1][f.SBOX[s>>>16&255]]^f.INV_SUB_MIX[2][f.SBOX[s>>>8&255]]^f.INV_SUB_MIX[3][f.SBOX[255&s]];return!0},a.prototype.encryptBlock=function(t){t=s(new e(t));var i=this._doCryptBlock(t,this._keySchedule,f.SUB_MIX,f.SBOX),r=new e(16);return r.writeUInt32BE(i[0],0),r.writeUInt32BE(i[1],4),r.writeUInt32BE(i[2],8),r.writeUInt32BE(i[3],12),r},a.prototype.decryptBlock=function(t){t=s(new e(t));var i=[t[3],t[1]];t[1]=i[0],t[3]=i[1];var r=this._doCryptBlock(t,this._invKeySchedule,f.INV_SUB_MIX,f.INV_SBOX),n=new e(16);return n.writeUInt32BE(r[0],0),n.writeUInt32BE(r[3],4),n.writeUInt32BE(r[2],8),n.writeUInt32BE(r[1],12),n},a.prototype.scrub=function(){r(this._keySchedule),r(this._invKeySchedule),r(this._key)},a.prototype._doCryptBlock=function(e,t,r,n){var s,a,o,f,h,c,l,u,d;a=e[0]^t[0],o=e[1]^t[1],f=e[2]^t[2],h=e[3]^t[3],s=4;for(var p=1;p>>24]^r[1][o>>>16&255]^r[2][f>>>8&255]^r[3][255&h]^t[s++],l=r[0][o>>>24]^r[1][f>>>16&255]^r[2][h>>>8&255]^r[3][255&a]^t[s++],u=r[0][f>>>24]^r[1][h>>>16&255]^r[2][a>>>8&255]^r[3][255&o]^t[s++],d=r[0][h>>>24]^r[1][a>>>16&255]^r[2][o>>>8&255]^r[3][255&f]^t[s++],a=c,o=l,f=u,h=d;return c=(n[a>>>24]<<24|n[o>>>16&255]<<16|n[f>>>8&255]<<8|n[255&h])^t[s++],l=(n[o>>>24]<<24|n[f>>>16&255]<<16|n[h>>>8&255]<<8|n[255&a])^t[s++],u=(n[f>>>24]<<24|n[h>>>16&255]<<16|n[a>>>8&255]<<8|n[255&o])^t[s++],d=(n[h>>>24]<<24|n[a>>>16&255]<<16|n[o>>>8&255]<<8|n[255&f])^t[s++],[i(c),i(l),i(u),i(d)]},t.AES=a}).call(t,i(0).Buffer)},function(e,t){t["aes-128-ecb"]={cipher:"AES",key:128,iv:0,mode:"ECB",type:"block"},t["aes-192-ecb"]={cipher:"AES",key:192,iv:0,mode:"ECB",type:"block"},t["aes-256-ecb"]={cipher:"AES",key:256,iv:0,mode:"ECB",type:"block"},t["aes-128-cbc"]={cipher:"AES",key:128,iv:16,mode:"CBC",type:"block"},t["aes-192-cbc"]={cipher:"AES",key:192,iv:16,mode:"CBC",type:"block"},t["aes-256-cbc"]={cipher:"AES",key:256,iv:16,mode:"CBC",type:"block"},t.aes128=t["aes-128-cbc"],t.aes192=t["aes-192-cbc"],t.aes256=t["aes-256-cbc"],t["aes-128-cfb"]={cipher:"AES",key:128,iv:16,mode:"CFB",type:"stream"},t["aes-192-cfb"]={cipher:"AES",key:192,iv:16,mode:"CFB",type:"stream"},t["aes-256-cfb"]={cipher:"AES",key:256,iv:16,mode:"CFB",type:"stream"},t["aes-128-cfb8"]={cipher:"AES",key:128,iv:16,mode:"CFB8",type:"stream"},t["aes-192-cfb8"]={cipher:"AES",key:192,iv:16,mode:"CFB8",type:"stream"},t["aes-256-cfb8"]={cipher:"AES",key:256,iv:16,mode:"CFB8",type:"stream"},t["aes-128-cfb1"]={cipher:"AES",key:128,iv:16,mode:"CFB1",type:"stream"},t["aes-192-cfb1"]={cipher:"AES",key:192,iv:16,mode:"CFB1",type:"stream"},t["aes-256-cfb1"]={cipher:"AES",key:256,iv:16,mode:"CFB1",type:"stream"},t["aes-128-ofb"]={cipher:"AES",key:128,iv:16,mode:"OFB",type:"stream"},t["aes-192-ofb"]={cipher:"AES",key:192,iv:16,mode:"OFB",type:"stream"},t["aes-256-ofb"]={cipher:"AES",key:256,iv:16,mode:"OFB",type:"stream"},t["aes-128-ctr"]={cipher:"AES",key:128,iv:16,mode:"CTR",type:"stream"},t["aes-192-ctr"]={cipher:"AES",key:192,iv:16,mode:"CTR",type:"stream"},t["aes-256-ctr"]={cipher:"AES",key:256,iv:16,mode:"CTR",type:"stream"},t["aes-128-gcm"]={cipher:"AES",key:128,iv:12,mode:"GCM",type:"auth"},t["aes-192-gcm"]={cipher:"AES",key:192,iv:12,mode:"GCM",type:"auth"},t["aes-256-gcm"]={cipher:"AES",key:256,iv:12,mode:"GCM",type:"auth"}},function(e,t,i){(function(e){function r(e){for(var t,i=e.length;i--;){if(t=e.readUInt8(i),255!==t){t++,e.writeUInt8(t,i);break}e.writeUInt8(0,i)}}function n(e){var t=e._cipher.encryptBlock(e._prev);return r(e._prev),t}var s=i(27);t.encrypt=function(t,i){for(;t._cache.length0&&d.push(a),d.push(e),i&&d.push(i),a=n(t.concat(d)),d=[],o=0,r>0)for(;;){if(0===r)break;if(o===a.length)break;c[f++]=a[o],r--,o++}if(s>0&&o!==a.length)for(;;){if(0===s)break;if(o===a.length)break;l[h++]=a[o],s--,o++}if(0===r&&0===s)break}for(o=0;oe.server_max_window_bits)&&("number"!=typeof this._options.clientMaxWindowBits||e.client_max_window_bits))return(this._options.serverNoContextTakeover||e.server_no_context_takeover)&&(t.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(t.client_no_context_takeover=!0),this._options.clientNoContextTakeover!==!1&&e.client_no_context_takeover&&(t.client_no_context_takeover=!0),"number"==typeof this._options.serverMaxWindowBits?t.server_max_window_bits=this._options.serverMaxWindowBits:"number"==typeof e.server_max_window_bits&&(t.server_max_window_bits=e.server_max_window_bits),"number"==typeof this._options.clientMaxWindowBits?t.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits!==!1&&"number"==typeof e.client_max_window_bits&&(t.client_max_window_bits=e.client_max_window_bits),!0},this);if(!i)throw new Error("Doesn't support the offered configuration");return t},r.prototype.acceptAsClient=function(e){var t=e[0];if(null!=this._options.clientNoContextTakeover&&this._options.clientNoContextTakeover===!1&&t.client_no_context_takeover)throw new Error('Invalid value for "client_no_context_takeover"');if(null!=this._options.clientMaxWindowBits){if(this._options.clientMaxWindowBits===!1&&t.client_max_window_bits)throw new Error('Invalid value for "client_max_window_bits"');if("number"==typeof this._options.clientMaxWindowBits&&(!t.client_max_window_bits||t.client_max_window_bits>this._options.clientMaxWindowBits))throw new Error('Invalid value for "client_max_window_bits"')}return t},r.prototype.normalizeParams=function(e){return e.map(function(e){return Object.keys(e).forEach(function(t){var i=e[t];if(i.length>1)throw new Error("Multiple extension parameters for "+t);switch(i=i[0],t){case"server_no_context_takeover":case"client_no_context_takeover":if(i!==!0)throw new Error("invalid extension parameter value for "+t+" ("+i+")");e[t]=!0;break;case"server_max_window_bits":case"client_max_window_bits":if("string"==typeof i&&(i=parseInt(i,10),!~s.indexOf(i)))throw new Error("invalid extension parameter value for "+t+" ("+i+")");if(!this._isServer&&i===!0)throw new Error("Missing extension parameter value for "+t);e[t]=i;break;default:throw new Error("Not defined extension parameter ("+t+")")}},this),e},this)},r.prototype.decompress=function(e,i,r){function s(e){f(),r(e)}function o(e){if(void 0!==l._maxPayload&&null!==l._maxPayload&&l._maxPayload>0&&(d+=e.length,d>l._maxPayload)){u=[],f();var t={type:1009};return void r(t)}u.push(e)}function f(){l._inflate&&(l._inflate.removeListener("error",s),l._inflate.removeListener("data",o),l._inflate.writeInProgress=!1,(i&&l.params[h+"_no_context_takeover"]||l._inflate.pendingClose)&&(l._inflate.close&&l._inflate.close(),l._inflate=null))}var h=this._isServer?"client":"server";if(!this._inflate){var c=this.params[h+"_max_window_bits"];this._inflate=n.createInflateRaw({windowBits:"number"==typeof c?c:a})}this._inflate.writeInProgress=!0;var l=this,u=[],d=0;this._inflate.on("error",s).on("data",o),this._inflate.write(e),i&&this._inflate.write(new t([0,0,255,255])),this._inflate.flush(function(){f(),r(null,t.concat(u))})},r.prototype.compress=function(e,i,r){function s(e){h(),r(e)}function f(e){d.push(e)}function h(){u._deflate&&(u._deflate.removeListener("error",s),u._deflate.removeListener("data",f),u._deflate.writeInProgress=!1,(i&&u.params[c+"_no_context_takeover"]||u._deflate.pendingClose)&&(u._deflate.close&&u._deflate.close(),u._deflate=null))}var c=this._isServer?"server":"client";if(!this._deflate){var l=this.params[c+"_max_window_bits"];this._deflate=n.createDeflateRaw({flush:n.Z_SYNC_FLUSH,windowBits:"number"==typeof l?l:a,memLevel:this._options.memLevel||o})}this._deflate.writeInProgress=!0;var u=this,d=[];this._deflate.on("error",s).on("data",f),this._deflate.write(e),this._deflate.flush(function(){h();var e=t.concat(d);i&&(e=e.slice(0,e.length-4)),r(null,e)})},e.exports=r}).call(t,i(0).Buffer)},function(e,t){e.exports=function e(t,i){if(!i)return t;for(const r in t)({}).hasOwnProperty.call(i,r)?i[r]===Object(i[r])&&(i[r]=e(t[r],i[r])):i[r]=t[r];return i}},function(e,t,i){const r=i(1);class n{constructor(e,t){this.member=e,this.raw=t}serialize(){const e={};for(const t in r.PermissionFlags)e[t]=this.hasPermission(t);return e}hasPermission(e,t=false){return e=this.member.client.resolver.resolvePermission(e),!t&&(this.raw&r.PermissionFlags.ADMINISTRATOR)>0||(this.raw&e)>0}hasPermissions(e,t=false){return e.every(e=>this.hasPermission(e,t))}missingPermissions(e,t=false){return e.filter(e=>!this.hasPermission(e,t))}}e.exports=n},function(e,t,i){const r=i(14),n=i(20),s=i(25),a=i(15).Presence,o=i(33),f=i(1),h=i(6),c=i(13),l=i(63);class u{constructor(e,t){this.client=e,Object.defineProperty(this,"client",{enumerable:!1,configurable:!1}),this.members=new h,this.channels=new h,this.roles=new h,t&&(t.unavailable?(this.available=!1,this.id=t.id):(this.available=!0,this.setup(t)))}setup(e){this.name=e.name,this.icon=e.icon,this.splash=e.splash,this.region=e.region,this.memberCount=e.member_count||this.memberCount,this.large=e.large||this.large,this.presences=new h,this.features=e.features,this.emojis=new h;for(const t of e.emojis)this.emojis.set(t.id,new s(this,t));if(this.afkTimeout=e.afk_timeout,this.afkChannelID=e.afk_channel_id,this.embedEnabled=e.embed_enabled,this.verificationLevel=e.verification_level,this.joinedTimestamp=e.joined_at?new Date(e.joined_at).getTime():this.joinedTimestamp,this.id=e.id,this.available=!e.unavailable,this.features=e.features||this.features||[],e.members){this.members.clear();for(const t of e.members)this._addMember(t,!1)}if(e.owner_id&&(this.ownerID=e.owner_id),e.channels){this.channels.clear();for(const t of e.channels)this.client.dataManager.newChannel(t,this)}if(e.roles){this.roles.clear();for(const t of e.roles){const e=new n(this,t);this.roles.set(e.id,e)}}if(e.presences)for(const i of e.presences)this._setPresence(i.user.id,i);if(this._rawVoiceStates=new h,e.voice_states)for(const r of e.voice_states){this._rawVoiceStates.set(r.user_id,r);const e=this.members.get(r.user_id);e&&(e.serverMute=r.mute,e.serverDeaf=r.deaf,e.selfMute=r.self_mute,e.selfDeaf=r.self_deaf,e.voiceSessionID=r.session_id,e.voiceChannelID=r.channel_id,this.channels.get(r.channel_id).members.set(e.user.id,e))}}get createdTimestamp(){return this.id/4194304+14200704e5}get createdAt(){return new Date(this.createdTimestamp)}get joinedAt(){return new Date(this.joinedTimestamp)}get iconURL(){return this.icon?f.Endpoints.guildIcon(this.id,this.icon):null}get owner(){return this.members.get(this.ownerID)}get voiceConnection(){return this.client.voice.connections.get(this.id)||null}get defaultChannel(){return this.channels.get(this.id)}member(e){return this.client.resolver.resolveGuildMember(this,e)}fetchBans(){return this.client.rest.methods.getGuildBans(this)}fetchInvites(){return this.client.rest.methods.getGuildInvites(this)}fetchWebhooks(){return this.client.rest.methods.getGuildWebhooks(this)}fetchMember(e){return this._fetchWaiter?Promise.reject(new Error("Already fetching guild members.")):(e=this.client.resolver.resolveUser(e),e?this.members.has(e.id)?Promise.resolve(this.members.get(e.id)):this.client.rest.methods.getGuildMember(this,e):Promise.reject(new Error("User is not cached. Use Client.fetchUser first.")))}fetchMembers(e=""){return new Promise((t,i)=>{if(this._fetchWaiter)throw new Error("Already fetching guild members in ${this.id}.");return this.memberCount===this.members.size?void t(this):(this._fetchWaiter=t,this.client.ws.send({op:f.OPCodes.REQUEST_GUILD_MEMBERS,d:{guild_id:this.id,query:e,limit:0}}),this._checkChunks(),void this.client.setTimeout(()=>i(new Error("Members didn't arrive in time.")),12e4))})}edit(e){return this.client.rest.methods.updateGuild(this,e)}setName(e){return this.edit({name:e})}setRegion(e){return this.edit({region:e})}setVerificationLevel(e){return this.edit({verificationLevel:e})}setAFKChannel(e){return this.edit({afkChannel:e})}setAFKTimeout(e){return this.edit({afkTimeout:e})}setIcon(e){return this.edit({icon:e})}setOwner(e){return this.edit({owner:e})}setSplash(e){return this.edit({splash:e})}ban(e,t=0){return this.client.rest.methods.banGuildMember(this,e,t)}unban(e){return this.client.rest.methods.unbanGuildMember(this,e)}pruneMembers(e,t=false){if("number"!=typeof e)throw new TypeError("Days must be a number.");return this.client.rest.methods.pruneGuildMembers(this,e,t)}sync(){this.client.user.bot||this.client.syncGuilds([this])}createChannel(e,t){return this.client.rest.methods.createChannel(this,e,t)}createRole(e){const t=this.client.rest.methods.createGuildRole(this);return e?t.then(t=>t.edit(e)):t}createEmoji(e,t){return new Promise(i=>{e.startsWith("data:")?i(this.client.rest.methods.createEmoji(this,e,t)):this.client.resolver.resolveBuffer(e).then(e=>i(this.client.rest.methods.createEmoji(this,e,t)))})}deleteEmoji(e){return e instanceof s||(e=this.emojis.get(e)),this.client.rest.methods.deleteEmoji(e)}leave(){return this.client.rest.methods.leaveGuild(this)}delete(){return this.client.rest.methods.deleteGuild(this)}setRolePosition(e,t){if(e instanceof n)e=e.id;else if("string"!=typeof e)return Promise.reject(new Error("Supplied role is not a role or string"));if(t=Number(t),isNaN(t))return Promise.reject(new Error("Supplied position is not a number"));const i=this.roles.array().map(i=>({id:i.id,position:i.id===e?t:i.position`:this.name}}e.exports=i},function(e,t,i){const r=i(17),n=i(35);class s{constructor(e,t,i){e?(this.client=e,Object.defineProperty(this,"client",{enumerable:!1,configurable:!1}),t&&this.setup(t)):(this.id=t,this.token=i,this.client=this)}setup(e){this.name=e.name,this.token=e.token,this.avatar=e.avatar,this.id=e.id,this.guildID=e.guild_id,this.channelID=e.channel_id,e.user&&(this.owner=e.user)}sendMessage(e,t={}){return this.client.rest.methods.sendWebhookMessage(this,e,t)}sendSlackMessage(e){return this.client.rest.methods.sendSlackWebhookMessage(this,e)}sendTTSMessage(e,t={}){return Object.assign(t,{tts:!0}),this.client.rest.methods.sendWebhookMessage(this,e,t)}sendFile(e,t,i,n={}){return t||(t="string"==typeof e?r.basename(e):e&&e.path?r.basename(e.path):"file.jpg"),this.client.resolver.resolveBuffer(e).then(e=>this.client.rest.methods.sendWebhookMessage(this,i,n,{file:e,name:t}))}sendCode(e,t,i={}){return i.split&&("object"!=typeof i.split&&(i.split={}),i.split.prepend||(i.split.prepend=`\`\`\`${e||""} `),i.split.append||(i.split.append="\n```")),t=n(this.client.resolver.resolveString(t),!0),this.sendMessage(`\`\`\`${e||""} ${t} -\`\`\``,i)}edit(e=this.name,t){return t?this.client.resolver.resolveBuffer(t).then(t=>{const i=this.client.resolver.resolveBase64(t);return this.client.rest.methods.editWebhook(this,e,i)}):this.client.rest.methods.editWebhook(this,e).then(e=>{return this.setup(e),this})}delete(){return this.client.rest.methods.deleteWebhook(this)}}e.exports=s},function(e,t,i){function r(){return Object.keys(a)}var n=i(150);t.createCipher=t.Cipher=n.createCipher,t.createCipheriv=t.Cipheriv=n.createCipheriv;var s=i(149);t.createDecipher=t.Decipher=s.createDecipher,t.createDecipheriv=t.Decipheriv=s.createDecipheriv;var a=i(34);t.listCiphers=t.getCiphers=r},function(e,t,i){(function(t){function r(e){var t=s(e),i=t.toRed(a.mont(e.modulus)).redPow(new a(e.publicExponent)).fromRed();return{blinder:i,unblinder:t.invm(e.modulus)}}function n(e,i){var n=r(i),s=i.modulus.byteLength(),o=(a.mont(i.modulus),new a(e).mul(n.blinder).umod(i.modulus)),f=o.toRed(a.mont(i.prime1)),h=o.toRed(a.mont(i.prime2)),c=i.coefficient,l=i.prime1,u=i.prime2,d=f.redPow(i.exponent1),p=h.redPow(i.exponent2);d=d.fromRed(),p=p.fromRed();var b=d.isub(p).imul(c).umod(l);return b.imul(u),p.iadd(b),new t(p.imul(n.unblinder).umod(i.modulus).toArray(!1,s))}function s(e){for(var t=e.modulus.byteLength(),i=new a(o(t));i.cmp(e.modulus)>=0||!i.umod(e.prime1)||!i.umod(e.prime2);)i=new a(o(t));return i}var a=i(4),o=i(27);e.exports=n,n.getr=s}).call(t,i(0).Buffer)},function(e,t,i){"use strict";(function(e){var r=i(0),n=r.Buffer,s=r.SlowBuffer,a=r.kMaxLength||2147483647;t.alloc=function(e,t,i){if("function"==typeof n.alloc)return n.alloc(e,t,i);if("number"==typeof i)throw new TypeError("encoding must not be number");if("number"!=typeof e)throw new TypeError("size must be a number");if(e>a)throw new RangeError("size is too large");var r=i,s=t;void 0===s&&(r=void 0,s=0);var o=new n(e);if("string"==typeof s)for(var f=new n(s,r),h=f.length,c=-1;++ca)throw new RangeError("size is too large");return new n(e)},t.from=function(t,i,r){if("function"==typeof n.from&&(!e.Uint8Array||Uint8Array.from!==n.from))return n.from(t,i,r);if("number"==typeof t)throw new TypeError('"value" argument must not be a number');if("string"==typeof t)return new n(t,i);if("undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer){var s=i;if(1===arguments.length)return new n(t);"undefined"==typeof s&&(s=0);var a=r;if("undefined"==typeof a&&(a=t.byteLength-s),s>=t.byteLength)throw new RangeError("'offset' is out of bounds");if(a>t.byteLength-s)throw new RangeError("'length' is out of bounds");return new n(t.slice(s,s+a))}if(n.isBuffer(t)){var o=new n(t.length);return t.copy(o,0,0,t.length),o}if(t){if(Array.isArray(t)||"undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return new n(t);if("Buffer"===t.type&&Array.isArray(t.data))return new n(t.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")},t.allocUnsafeSlow=function(e){if("function"==typeof n.allocUnsafeSlow)return n.allocUnsafeSlow(e);if("number"!=typeof e)throw new TypeError("size must be a number");if(e>=a)throw new RangeError("size is too large");return new s(e)}}).call(t,i(16))},function(e,t,i){"use strict";(function(t){function r(e,i){a.call(this),e=e.toLowerCase(),"string"==typeof i&&(i=new t(i));var r="sha512"===e||"sha384"===e?128:64;this._alg=e,this._key=i,i.length>r?i=n(e).update(i).digest():i.length-1?r:A;o.WritableState=a;var M=i(25);M.inherits=i(1);var T,R={deprecate:i(232)};!function(){try{T=i(9)}catch(e){}finally{T||(T=i(3).EventEmitter)}}();var x=i(0).Buffer,C=i(49);M.inherits(o,T);var I;a.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(a.prototype,"buffer",{get:R.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.")})}catch(e){}}();var I;o.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},o.prototype.write=function(e,t,i){var r=this._writableState,s=!1;return"function"==typeof t&&(i=t,t=null),x.isBuffer(e)?t="buffer":t||(t=r.defaultEncoding),"function"!=typeof i&&(i=n),r.ended?f(this,i):h(this,r,e,i)&&(r.pendingcb++,s=l(this,r,e,t,i)),s},o.prototype.cork=function(){var e=this._writableState;e.corked++},o.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.finished||e.bufferProcessing||!e.bufferedRequest||g(this,e))},o.prototype.setDefaultEncoding=function(e){if("string"==typeof e&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},o.prototype._write=function(e,t,i){i(new Error("not implemented"))},o.prototype._writev=null,o.prototype.end=function(e,t,i){var r=this._writableState;"function"==typeof e?(i=e,e=null,t=null):"function"==typeof t&&(i=t,t=null),null!==e&&void 0!==e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||k(this,r,i)}}).call(t,i(5),i(58).setImmediate)},function(e,t,i){function r(e){if(e&&!f(e))throw new Error("Unknown encoding: "+e)}function n(e){return e.toString(this.encoding)}function s(e){this.charReceived=e.length%2,this.charLength=this.charReceived?2:0}function a(e){this.charReceived=e.length%3,this.charLength=this.charReceived?3:0}var o=i(0).Buffer,f=o.isEncoding||function(e){switch(e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}},h=t.StringDecoder=function(e){switch(this.encoding=(e||"utf8").toLowerCase().replace(/[-_]/,""),r(e),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=s;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=a;break;default:return void(this.write=n)}this.charBuffer=new o(6),this.charReceived=0,this.charLength=0};h.prototype.write=function(e){for(var t="";this.charLength;){var i=e.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:e.length;if(e.copy(this.charBuffer,this.charReceived,0,i),this.charReceived+=i,this.charReceived=55296&&r<=56319)){if(this.charReceived=this.charLength=0,0===e.length)return t;break}this.charLength+=this.surrogateSize,t=""}this.detectIncompleteChar(e);var n=e.length;this.charLength&&(e.copy(this.charBuffer,0,e.length-this.charReceived,n),n-=this.charReceived),t+=e.toString(this.encoding,0,n);var n=t.length-1,r=t.charCodeAt(n);if(r>=55296&&r<=56319){var s=this.surrogateSize;return this.charLength+=s,this.charReceived+=s,this.charBuffer.copy(this.charBuffer,s,0,s),e.copy(this.charBuffer,0,0,s),t.substring(0,n)}return t},h.prototype.detectIncompleteChar=function(e){for(var t=e.length>=3?3:e.length;t>0;t--){var i=e[e.length-t];if(1==t&&i>>5==6){this.charLength=2;break}if(t<=2&&i>>4==14){this.charLength=3;break}if(t<=3&&i>>3==30){this.charLength=4;break}}this.charReceived=t},h.prototype.end=function(e){var t="";if(e&&e.length&&(t=this.write(e)),this.charReceived){var i=this.charReceived,r=this.charBuffer,n=this.encoding;t+=r.slice(0,i).toString(n)}return t}},function(e,t,i){function r(){}function n(e){if(!w(e))return e;var t=[];for(var i in e)s(t,i,e[i]);return t.join("&")}function s(e,t,i){if(null!=i)if(Array.isArray(i))i.forEach(function(i){s(e,t,i)});else if(w(i))for(var r in i)s(e,t+"["+r+"]",i[r]);else e.push(encodeURIComponent(t)+"="+encodeURIComponent(i));else null===i&&e.push(encodeURIComponent(t))}function a(e){for(var t,i,r={},n=e.split("&"),s=0,a=n.length;s=300)&&(r=new Error(t.statusText||"Unsuccessful HTTP response"),r.original=e,r.response=t,r.status=t.status)}catch(e){r=e}r?i.callback(r,t):i.callback(null,t)})}function d(e,t){var i=g("DELETE",e);return t&&i.end(t),i}var p;"undefined"!=typeof window?p=window:"undefined"!=typeof self?p=self:(console.warn("Using browser-only version of superagent in non-browser environment"),p=this);var b=i(161),m=i(227),w=i(115),g=e.exports=i(228).bind(null,u);g.getXHR=function(){if(!(!p.XMLHttpRequest||p.location&&"file:"==p.location.protocol&&p.ActiveXObject))return new XMLHttpRequest;try{return new ActiveXObject("Microsoft.XMLHTTP")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP")}catch(e){}throw Error("Browser-only verison of superagent could not find XHR")};var v="".trim?function(e){return e.trim()}:function(e){return e.replace(/(^\s*|\s*$)/g,"")};g.serializeObject=n,g.parseString=a,g.types={html:"text/html",json:"application/json",xml:"application/xml",urlencoded:"application/x-www-form-urlencoded",form:"application/x-www-form-urlencoded","form-data":"application/x-www-form-urlencoded"},g.serialize={"application/x-www-form-urlencoded":n,"application/json":JSON.stringify},g.parse={"application/x-www-form-urlencoded":a,"application/json":JSON.parse},l.prototype.get=function(e){return this.header[e.toLowerCase()]},l.prototype._setHeaderProperties=function(e){var t=this.header["content-type"]||"";this.type=h(t);var i=c(t);for(var r in i)this[r]=i[r]},l.prototype._parseBody=function(e){var t=g.parse[this.type];return!t&&f(this.type)&&(t=g.parse["application/json"]),t&&e&&(e.length||e instanceof Object)?t(e):null},l.prototype._setStatusProperties=function(e){1223===e&&(e=204);var t=e/100|0;this.status=this.statusCode=e,this.statusType=t,this.info=1==t,this.ok=2==t,this.clientError=4==t,this.serverError=5==t,this.error=(4==t||5==t)&&this.toError(),this.accepted=202==e,this.noContent=204==e,this.badRequest=400==e,this.unauthorized=401==e,this.notAcceptable=406==e,this.notFound=404==e,this.forbidden=403==e},l.prototype.toError=function(){var e=this.req,t=e.method,i=e.url,r="cannot "+t+" "+i+" ("+this.status+")",n=new Error(r);return n.status=this.status,n.method=t,n.url=i,n},g.Response=l,b(u.prototype),m(u.prototype),u.prototype.type=function(e){return this.set("Content-Type",g.types[e]||e),this},u.prototype.responseType=function(e){return this._responseType=e,this},u.prototype.accept=function(e){return this.set("Accept",g.types[e]||e),this},u.prototype.auth=function(e,t,i){switch(i||(i={type:"basic"}),i.type){case"basic":var r=btoa(e+":"+t);this.set("Authorization","Basic "+r);break;case"auto":this.username=e,this.password=t}return this},u.prototype.query=function(e){return"string"!=typeof e&&(e=n(e)),e&&this._query.push(e),this},u.prototype.attach=function(e,t,i){if(this._data)throw Error("superagent can't mix .send() and .attach()");return this._getFormData().append(e,t,i||t.name),this},u.prototype._getFormData=function(){return this._formData||(this._formData=new p.FormData),this._formData},u.prototype.callback=function(e,t){var i=this._callback;this.clearTimeout(),e&&this.emit("error",e),i(e,t)},u.prototype.crossDomainError=function(){var e=new Error("Request has been terminated\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.");e.crossDomain=!0,e.status=this.status,e.method=this.method,e.url=this.url,this.callback(e)},u.prototype.buffer=u.prototype.ca=u.prototype.agent=function(){return console.warn("This is not supported in browser version of superagent"),this},u.prototype.pipe=u.prototype.write=function(){throw Error("Streaming is not supported in browser version of superagent")},u.prototype._timeoutError=function(){var e=this._timeout,t=new Error("timeout of "+e+"ms exceeded");t.timeout=e,this.callback(t)},u.prototype._appendQueryString=function(){var e=this._query.join("&");e&&(this.url+=~this.url.indexOf("?")?"&"+e:"?"+e)},u.prototype._isHost=function(e){return e&&"object"==typeof e&&!Array.isArray(e)&&"[object Object]"!==Object.prototype.toString.call(e)},u.prototype.end=function(e){var t=this,i=this.xhr=g.getXHR(),n=this._timeout,s=this._formData||this._data;this._callback=e||r,i.onreadystatechange=function(){if(4==i.readyState){var e;try{e=i.status}catch(t){e=0}if(0==e){if(t.timedout)return t._timeoutError();if(t._aborted)return;return t.crossDomainError()}t.emit("end")}};var a=function(e,i){i.total>0&&(i.percent=i.loaded/i.total*100),i.direction=e,t.emit("progress",i)};if(this.hasListeners("progress"))try{i.onprogress=a.bind(null,"download"),i.upload&&(i.upload.onprogress=a.bind(null,"upload"))}catch(e){}if(n&&!this._timer&&(this._timer=setTimeout(function(){t.timedout=!0,t.abort()},n)),this._appendQueryString(),this.username&&this.password?i.open(this.method,this.url,!0,this.username,this.password):i.open(this.method,this.url,!0),this._withCredentials&&(i.withCredentials=!0),"GET"!=this.method&&"HEAD"!=this.method&&"string"!=typeof s&&!this._isHost(s)){var o=this._header["content-type"],h=this._serializer||g.serialize[o?o.split(";")[0]:""];!h&&f(o)&&(h=g.serialize["application/json"]),h&&(s=h(s))}for(var c in this.header)null!=this.header[c]&&i.setRequestHeader(c,this.header[c]);return this._responseType&&(i.responseType=this._responseType),this.emit("request",this),i.send("undefined"!=typeof s?s:null),this},g.Request=u,g.get=function(e,t,i){var r=g("GET",e);return"function"==typeof t&&(i=t,t=null),t&&r.query(t),i&&r.end(i),r},g.head=function(e,t,i){var r=g("HEAD",e);return"function"==typeof t&&(i=t,t=null),t&&r.send(t),i&&r.end(i),r},g.options=function(e,t,i){var r=g("OPTIONS",e);return"function"==typeof t&&(i=t,t=null),t&&r.send(t),i&&r.end(i),r},g.del=d,g.delete=d,g.patch=function(e,t,i){var r=g("PATCH",e);return"function"==typeof t&&(i=t,t=null),t&&r.send(t),i&&r.end(i),r},g.post=function(e,t,i){var r=g("POST",e);return"function"==typeof t&&(i=t,t=null),t&&r.send(t),i&&r.end(i),r},g.put=function(e,t,i){var r=g("PUT",e);return"function"==typeof t&&(i=t,t=null),t&&r.send(t),i&&r.end(i),r}},function(e,t,i){(function(e,r){function n(e,t){this._id=e,this._clearFn=t}var s=i(5).nextTick,a=Function.prototype.apply,o=Array.prototype.slice,f={},h=0;t.setTimeout=function(){return new n(a.call(setTimeout,window,arguments),clearTimeout)},t.setInterval=function(){return new n(a.call(setInterval,window,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e.close()},n.prototype.unref=n.prototype.ref=function(){},n.prototype.close=function(){this._clearFn.call(window,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},t.setImmediate="function"==typeof e?e:function(e){var i=h++,r=!(arguments.length<2)&&o.call(arguments,1);return f[i]=!0,s(function(){f[i]&&(r?e.apply(null,r):e.call(null),t.clearImmediate(i))}),i},t.clearImmediate="function"==typeof r?r:function(e){delete f[e]}}).call(t,i(58).setImmediate,i(58).clearImmediate)},function(e,t,i){"use strict";function r(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}function n(e,t,i){if(e&&h.isObject(e)&&e instanceof r)return e;var n=new r;return n.parse(e,t,i),n}function s(e){return h.isString(e)&&(e=n(e)),e instanceof r?e.format():r.prototype.format.call(e)}function a(e,t){return n(e,!1,!0).resolve(t)}function o(e,t){return e?n(e,!1,!0).resolveObject(t):t}var f=i(218),h=i(239);t.parse=n,t.resolve=a,t.resolveObject=o,t.format=s,t.Url=r;var c=/^([a-z0-9.+-]+:)/i,l=/:[0-9]*$/,u=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,d=["<",">",'"',"`"," ","\r","\n","\t"],p=["{","}","|","\\","^","`"].concat(d),b=["'"].concat(p),m=["%","/","?",";","#"].concat(b),w=["/","?","#"],g=255,v=/^[+a-z0-9A-Z_-]{0,63}$/,_=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,y={javascript:!0,"javascript:":!0},k={javascript:!0,"javascript:":!0},E={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},A=i(221);r.prototype.parse=function(e,t,i){if(!h.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var r=e.indexOf("?"),n=r!==-1&&r127?"x":N[L];if(!D.match(v)){var U=P.slice(0,T),j=P.slice(T+1),F=N.match(_);F&&(U.push(F[1]),j.unshift(F[2])),j.length&&(o="/"+j.join(".")+o),this.hostname=U.join(".");break}}}this.hostname.length>g?this.hostname="":this.hostname=this.hostname.toLowerCase(),I||(this.hostname=f.toASCII(this.hostname));var z=this.port?":"+this.port:"",q=this.hostname||"";this.host=q+z,this.href+=this.host,I&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==o[0]&&(o="/"+o))}if(!y[p])for(var T=0,O=b.length;T0)&&i.host.split("@");S&&(i.auth=S.shift(),i.host=i.hostname=S.shift())}return i.search=e.search,i.query=e.query,h.isNull(i.pathname)&&h.isNull(i.search)||(i.path=(i.pathname?i.pathname:"")+(i.search?i.search:"")),i.href=i.format(),i}if(!y.length)return i.pathname=null,i.search?i.path="/"+i.search:i.path=null,i.href=i.format(),i;for(var M=y.slice(-1)[0],T=(i.host||e.host||y.length>1)&&("."===M||".."===M)||""===M,R=0,x=y.length;x>=0;x--)M=y[x],"."===M?y.splice(x,1):".."===M?(y.splice(x,1),R++):R&&(y.splice(x,1),R--);if(!v&&!_)for(;R--;R)y.unshift("..");!v||""===y[0]||y[0]&&"/"===y[0].charAt(0)||y.unshift(""),T&&"/"!==y.join("/").substr(-1)&&y.push("");var C=""===y[0]||y[0]&&"/"===y[0].charAt(0);if(A){i.hostname=i.host=C?"":y.length?y.shift():"";var S=!!(i.host&&i.host.indexOf("@")>0)&&i.host.split("@");S&&(i.auth=S.shift(),i.host=i.hostname=S.shift())}return v=v||i.host&&y.length,v&&!C&&y.unshift(""),y.length?i.pathname=y.join("/"):(i.pathname=null,i.path=null),h.isNull(i.pathname)&&h.isNull(i.search)||(i.path=(i.pathname?i.pathname:"")+(i.search?i.search:"")),i.auth=e.auth||i.auth,i.slashes=i.slashes||e.slashes,i.href=i.format(),i},r.prototype.parseHost=function(){var e=this.host,t=l.exec(e);t&&(t=t[0],":"!==t&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},function(e,t){e.exports=function(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(const i in e){const r=e[i],n=t.indexOf(r);n&&t.splice(n,1)}return 0===t.length}},function(e,t){e.exports={name:"discord.js",version:"10.0.1",description:"A powerful library for interacting with the Discord API",main:"./src/index",scripts:{test:"eslint src && node docs/generator test",docs:"node docs/generator","test-docs":"node docs/generator test",lint:"eslint src","web-dist":"npm install && node ./node_modules/parallel-webpack/bin/run.js"},repository:{type:"git",url:"git+https://github.com/hydrabolt/discord.js.git"},keywords:["discord","api","bot","client","node","discordapp"],author:"Amish Shah ",license:"Apache-2.0",bugs:{url:"https://github.com/hydrabolt/discord.js/issues"},homepage:"https://github.com/hydrabolt/discord.js#readme",dependencies:{superagent:"^3.0.0",tweetnacl:"^0.14.3",ws:"^1.1.1"},peerDependencies:{"node-opus":"^0.2.0",opusscript:"^0.0.1"},devDependencies:{bufferutil:"^1.2.1",eslint:"^3.10.0","jsdoc-to-markdown":"^2.0.0","json-loader":"^0.5.4","parallel-webpack":"^1.5.0","uglify-js":"github:mishoo/UglifyJS2#harmony","utf-8-validate":"^1.2.1",webpack:"2.1.0-beta.27",zlibjs:"github:imaya/zlib.js"},engines:{node:">=6.0.0"}}},function(e,t,i){(function(t){const r=i(10),n=i(14),s=i(132),a=i(133);class o{constructor(e,i,s=[]){this.manager=e,this.id=i,this.env=Object.assign({},t.env,{SHARD_ID:this.id,SHARD_COUNT:this.manager.totalShards,CLIENT_TOKEN:this.manager.token}),this.process=r.fork(n.resolve(this.manager.file),s,{env:this.env}),this.process.on("message",this._handleMessage.bind(this)),this.process.once("exit",()=>{this.manager.respawn&&this.manager.createShard(this.id)}),this._evals=new Map,this._fetches=new Map}send(e){return new Promise((t,i)=>{const r=this.process.send(e,e=>{e?i(e):t(this)});if(!r)throw new Error("Failed to send message to shard's process.")})}fetchClientValue(e){if(this._fetches.has(e))return this._fetches.get(e);const t=new Promise((t,i)=>{const r=i=>{i&&i._fetchProp===e&&(this.process.removeListener("message",r),this._fetches.delete(e),t(i._result))};this.process.on("message",r),this.send({_fetchProp:e}).catch(t=>{this.process.removeListener("message",r),this._fetches.delete(e),i(t)})});return this._fetches.set(e,t),t}eval(e){if(this._evals.has(e))return this._evals.get(e);const t=new Promise((t,i)=>{const r=n=>{n&&n._eval===e&&(this.process.removeListener("message",r),this._evals.delete(e),n._error?i(s(n._error)):t(n._result))};this.process.on("message",r),this.send({_eval:e}).catch(t=>{this.process.removeListener("message",r),this._evals.delete(e),i(t)})});return this._evals.set(e,t),t}_handleMessage(e){if(e){if(e._sFetchProp)return void this.manager.fetchClientValues(e._sFetchProp).then(t=>this.send({_sFetchProp:e._sFetchProp,_result:t}),t=>this.send({_sFetchProp:e._sFetchProp,_error:a(t)}));if(e._sEval)return void this.manager.broadcastEval(e._sEval).then(t=>this.send({_sEval:e._sEval,_result:t}),t=>this.send({_sEval:e._sEval,_error:a(t)}))}this.manager.emit("message",this,e)}}e.exports=o}).call(t,i(5))},function(e,t,i){(function(t){const r=i(132),n=i(133);class s{constructor(e){this.client=e,t.on("message",this._handleMessage.bind(this))}get id(){return this.client.options.shardId}get count(){return this.client.options.shardCount}send(e){return new Promise((i,r)=>{const n=t.send(e,e=>{e?r(e):i()});if(!n)throw new Error("Failed to send message to master process.")})}fetchClientValues(e){return new Promise((i,n)=>{const s=a=>{a&&a._sFetchProp===e&&(t.removeListener("message",s),a._error?n(r(a._error)):i(a._result))};t.on("message",s),this.send({_sFetchProp:e}).catch(e=>{t.removeListener("message",s),n(e)})})}broadcastEval(e){return new Promise((i,n)=>{const s=a=>{a&&a._sEval===e&&(t.removeListener("message",s),a._error?n(r(a._error)):i(a._result))};t.on("message",s),this.send({_sEval:e}).catch(e=>{t.removeListener("message",s),n(e)})})}_handleMessage(e){if(e)if(e._fetchProp){const t=e._fetchProp.split(".");let i=this.client;for(const r of t)i=i[r];this._respond("fetchProp",{_fetchProp:e._fetchProp,_result:i})}else if(e._eval)try{this._respond("eval",{_eval:e._eval,_result:this.client._eval(e._eval)})}catch(t){this._respond("eval",{_eval:e._eval,_error:n(t)})}}_respond(e,t){this.send(t).catch(t=>this.client.emit("error",`Error when sending ${e} response to master process: ${t}`))}static singleton(e){return this._singleton?e.emit("error","Multiple clients created in child process; only the first will handle sharding helpers."):this._singleton=new this(e),this._singleton}}e.exports=s}).call(t,i(5))},function(e,t,i){const r=i(11),n=i(72);class s extends n{setup(e){super.setup(e),this.flags=e.flags,this.owner=new r(this.client,e.owner)}}e.exports=s},function(e,t,i){const r=i(20),n=i(28),s=i(6);class a extends r{constructor(e,t){super(e,t),this.type="dm",this.messages=new s,this._typing=new Map}setup(e){super.setup(e),this.recipient=this.client.dataManager.newUser(e.recipients[0]),this.lastMessageID=e.last_message_id}toString(){return this.recipient.toString()}sendMessage(){}sendTTSMessage(){}sendFile(){}sendCode(){}fetchMessage(){}fetchMessages(){}fetchPinnedMessages(){}startTyping(){}stopTyping(){}get typing(){}get typingCount(){}createCollector(){}awaitMessages(){}bulkDelete(){}_cacheMessage(){}}n.applyToClass(a,!0),e.exports=a},function(e,t,i){const r=i(20),n=i(28),s=i(6),a=i(60);class o extends r{constructor(e,t){super(e,t),this.type="group",this.messages=new s,this._typing=new Map}setup(e){if(super.setup(e),this.name=e.name,this.icon=e.icon,this.ownerID=e.owner_id,this.recipients||(this.recipients=new s),e.recipients)for(const t of e.recipients){const e=this.client.dataManager.newUser(t);this.recipients.set(e.id,e)}this.lastMessageID=e.last_message_id}get owner(){return this.client.users.get(this.ownerID)}equals(e){const t=e&&this.id===e.id&&this.name===e.name&&this.icon===e.icon&&this.ownerID===e.ownerID;if(t){const t=this.recipients.keyArray(),i=e.recipients.keyArray();return a(t,i)}return t}toString(){return this.name}sendMessage(){}sendTTSMessage(){}sendFile(){}sendCode(){}fetchMessage(){}fetchMessages(){}fetchPinnedMessages(){}startTyping(){}stopTyping(){}get typing(){}get typingCount(){}createCollector(){}awaitMessages(){}bulkDelete(){}_cacheMessage(){}}n.applyToClass(o,!0),e.exports=o},function(e,t,i){const r=i(73),n=i(74),s=i(2);class a{constructor(e,t){this.client=e,Object.defineProperty(this,"client",{enumerable:!1,configurable:!1}),this.setup(t)}setup(e){this.guild=this.client.guilds.get(e.guild.id)||new r(this.client,e.guild),this.code=e.code,this.temporary=e.temporary,this.maxAge=e.max_age,this.uses=e.uses,this.maxUses=e.max_uses,e.inviter&&(this.inviter=this.client.dataManager.newUser(e.inviter)),this.channel=this.client.channels.get(e.channel.id)||new n(this.client,e.channel),this.createdTimestamp=new Date(e.created_at).getTime()}get createdAt(){return new Date(this.createdTimestamp)}get expiresTimestamp(){return this.createdTimestamp+1e3*this.maxAge}get expiresAt(){return new Date(this.expiresTimestamp)}get url(){return s.Endpoints.inviteLink(this.code)}delete(){return this.client.rest.methods.deleteInvite(this)}toString(){return this.url}}e.exports=a},function(e,t){class i{constructor(e,t){this.client=e.client,Object.defineProperty(this,"client",{enumerable:!1,configurable:!1}),this.message=e,this.setup(t)}setup(e){this.id=e.id,this.filename=e.filename,this.filesize=e.size,this.url=e.url,this.proxyURL=e.proxy_url,this.height=e.height,this.width=e.width}}e.exports=i},function(e,t,i){const r=i(3).EventEmitter,n=i(6);class s extends r{constructor(e,t,i={}){super(),this.channel=e,this.filter=t,this.options=i,this.ended=!1,this.collected=new n,this.listener=(e=>this.verify(e)),this.channel.client.on("message",this.listener),i.time&&this.channel.client.setTimeout(()=>this.stop("time"),i.time)}verify(e){return(!this.channel||this.channel.id===e.channel.id)&&(!!this.filter(e,this)&&(this.collected.set(e.id,e),this.emit("message",e,this),this.collected.size>=this.options.maxMatches?this.stop("matchesLimit"):this.options.max&&this.collected.size===this.options.max&&this.stop("limit"),!0))}get next(){return new Promise((e,t)=>{if(this.ended)return void t(this.collected);const i=()=>{this.removeListener("message",r),this.removeListener("end",n)},r=(...t)=>{i(),e(...t)},n=(...e)=>{i(),t(...e)};this.once("message",r),this.once("end",n)})}stop(e="user"){this.ended||(this.ended=!0,this.channel.client.removeListener("message",this.listener),this.emit("end",this.collected,e))}}e.exports=s},function(e,t){class i{constructor(e,t){this.client=e.client,Object.defineProperty(this,"client",{enumerable:!1,configurable:!1}),this.message=e,this.setup(t)}setup(e){if(this.title=e.title,this.type=e.type,this.description=e.description,this.url=e.url,this.fields=[],e.fields)for(const t of e.fields)this.fields.push(new a(this,t));this.createdTimestamp=e.timestamp,this.thumbnail=e.thumbnail?new r(this,e.thumbnail):null,this.author=e.author?new s(this,e.author):null,this.provider=e.provider?new n(this,e.provider):null,this.footer=e.footer?new o(this,e.footer):null}get createdAt(){return new Date(this.createdTimestamp)}}class r{constructor(e,t){this.embed=e,this.setup(t)}setup(e){this.url=e.url,this.proxyURL=e.proxy_url,this.height=e.height,this.width=e.width}}class n{constructor(e,t){this.embed=e,this.setup(t)}setup(e){this.name=e.name,this.url=e.url}}class s{constructor(e,t){this.embed=e,this.setup(t)}setup(e){this.name=e.name,this.url=e.url}}class a{constructor(e,t){this.embed=e,this.setup(t)}setup(e){this.name=e.name,this.value=e.value,this.inline=e.inline}}class o{constructor(e,t){this.embed=e,this.setup(t)}setup(e){this.text=e.text,this.iconUrl=e.icon_url,this.proxyIconUrl=e.proxy_icon_url}}i.Thumbnail=r,i.Provider=n,i.Author=s,i.Field=a,i.Footer=o,e.exports=i},function(e,t,i){const r=i(6),n=i(21),s=i(45);class a{constructor(e,t,i,n){this.message=e,this.me=n,this.count=i||0,this.users=new r,this._emoji=new s(this,t.name,t.id)}get emoji(){if(this._emoji instanceof n)return this._emoji;if(this._emoji.id){const e=this.message.client.emojis;if(e.has(this._emoji.id)){const t=e.get(this._emoji.id);return this._emoji=t,t}}return this._emoji}remove(e=this.message.client.user){const t=this.message;return e=this.message.client.resolver.resolveUserID(e),e?t.client.rest.methods.removeMessageReaction(t,this.emoji.identifier,e):Promise.reject("Couldn't resolve the user ID to remove from the reaction.")}fetchUsers(e=100){const t=this.message;return t.client.rest.methods.getMessageReactionUsers(t,this.emoji.identifier,e).then(e=>{this.users=new r;for(const t of e){const e=this.message.client.dataManager.newUser(t);this.users.set(e.id,e)}return this.count=this.users.size,e})}}e.exports=a},function(e,t){class i{constructor(e,t){this.client=e,Object.defineProperty(this,"client",{enumerable:!1,configurable:!1}),this.setup(t)}setup(e){this.id=e.id,this.name=e.name,this.description=e.description,this.icon=e.icon,this.iconURL=`https://cdn.discordapp.com/app-icons/${this.id}/${this.icon}.jpg`,this.rpcOrigins=e.rpc_origins}get createdTimestamp(){return this.id/4194304+14200704e5}get createdAt(){return new Date(this.createdTimestamp)}toString(){return this.name}}e.exports=i},function(e,t){class i{constructor(e,t){this.client=e,Object.defineProperty(this,"client",{enumerable:!1,configurable:!1}),this.setup(t)}setup(e){this.id=e.id,this.name=e.name,this.icon=e.icon,this.splash=e.splash}}e.exports=i},function(e,t,i){const r=i(2);class n{constructor(e,t){this.client=e,Object.defineProperty(this,"client",{enumerable:!1,configurable:!1}),this.setup(t)}setup(e){this.id=e.id,this.name=e.name,this.type=r.ChannelTypes.text===e.type?"text":"voice"}}e.exports=n},function(e,t){class i{constructor(e,t){this.channel=e,t&&this.setup(t)}setup(e){this.id=e.id,this.type=e.type,this.denyData=e.deny,this.allowData=e.allow}delete(){return this.channel.client.rest.methods.deletePermissionOverwrites(this)}}e.exports=i},function(e,t,i){const r=i(29),n=i(28),s=i(6);class a extends r{constructor(e,t){super(e,t),this.type="text",this.messages=new s,this._typing=new Map}setup(e){super.setup(e),this.topic=e.topic,this.lastMessageID=e.last_message_id}get members(){const e=new s;for(const t of this.guild.members.values())this.permissionsFor(t).hasPermission("READ_MESSAGES")&&e.set(t.id,t);return e}fetchWebhooks(){return this.client.rest.methods.getChannelWebhooks(this)}createWebhook(e,t){return new Promise(i=>{t.startsWith("data:")?i(this.client.rest.methods.createWebhook(this,e,t)):this.client.resolver.resolveBuffer(t).then(t=>i(this.client.rest.methods.createWebhook(this,e,t)))})}sendMessage(){}sendTTSMessage(){}sendFile(){}sendCode(){}fetchMessage(){}fetchMessages(){}fetchPinnedMessages(){}startTyping(){}stopTyping(){}get typing(){}get typingCount(){}createCollector(){}awaitMessages(){}bulkDelete(){}_cacheMessage(){}}n.applyToClass(a,!0),e.exports=a},function(e,t,i){const r=i(29),n=i(6);class s extends r{constructor(e,t){super(e,t),this.members=new n,this.type="voice"}setup(e){super.setup(e),this.bitrate=e.bitrate,this.userLimit=e.user_limit}get connection(){const e=this.guild.voiceConnection;return e&&e.channel.id===this.id?e:null}get joinable(){return this.permissionsFor(this.client.user).hasPermission("CONNECT")}get speakable(){return this.permissionsFor(this.client.user).hasPermission("SPEAK")}setBitrate(e){return this.edit({bitrate:e})}setUserLimit(e){return this.edit({userLimit:e})}join(){return this.client.voice.joinChannel(this)}leave(){const e=this.client.voice.connections.get(this.guild.id);e&&e.channel.id===this.id&&e.disconnect()}}e.exports=s},function(e,t,i){const r=i(57),n=i(2).Endpoints.botGateway;e.exports=function(e){return new Promise((t,i)=>{if(!e)throw new Error("A token must be provided.");r.get(n).set("Authorization",`Bot ${e.replace(/^Bot\s*/i,"")}`).end((e,r)=>{e&&i(e),t(r.body.shards)})})}},function(e,t){e.exports=function(e,{maxLength=1950,char="\n",prepend="",append=""}={}){if(e.length<=maxLength)return e;const t=e.split(char);if(1===t.length)throw new Error("Message exceeds the max length and contains no split characters.");const i=[""];let r=0;for(let n=0;nmaxLength&&(i[r]+=append,i.push(prepend),r++),i[r]+=(i[r].length>0&&i[r]!==prepend?char:"")+t[n];return i}},function(e,t,i){function r(e,t){return a.call(this,t),o.isBuffer(e)?(this.base=e,this.offset=0,void(this.length=e.length)):void this.error("Input not Buffer")}function n(e,t){if(Array.isArray(e))this.length=0,this.value=e.map(function(e){return e instanceof n||(e=new n(e,t)),this.length+=e.length,e},this);else if("number"==typeof e){if(!(0<=e&&e<=255))return t.error("non-byte EncoderBuffer value");this.value=e,this.length=1}else if("string"==typeof e)this.value=e,this.length=o.byteLength(e);else{if(!o.isBuffer(e))return t.error("Unsupported type: "+typeof e);this.value=e,this.length=e.length}}var s=i(1),a=i(23).Reporter,o=i(0).Buffer;s(r,a),t.DecoderBuffer=r,r.prototype.save=function(){return{offset:this.offset,reporter:a.prototype.save.call(this)}},r.prototype.restore=function(e){var t=new r(this.base);return t.offset=e.offset,t.length=this.offset,this.offset=e.offset,a.prototype.restore.call(this,e.reporter),t},r.prototype.isEmpty=function(){return this.offset===this.length},r.prototype.readUInt8=function(e){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(e||"DecoderBuffer overrun")},r.prototype.skip=function(e,t){if(!(this.offset+e<=this.length))return this.error(t||"DecoderBuffer overrun");var i=new r(this.base);return i._reporterState=this._reporterState,i.offset=this.offset,i.length=this.offset+e,this.offset+=e,i},r.prototype.raw=function(e){return this.base.slice(e?e.offset:this.offset,this.length)},t.EncoderBuffer=n,n.prototype.join=function(e,t){return e||(e=new o(this.length)),t||(t=0),0===this.length?e:(Array.isArray(this.value)?this.value.forEach(function(i){i.join(e,t),t+=i.length}):("number"==typeof this.value?e[t]=this.value:"string"==typeof this.value?e.write(this.value,t):o.isBuffer(this.value)&&this.value.copy(e,t),t+=this.length),e)}},function(e,t,i){var r=t;r._reverse=function(e){var t={};return Object.keys(e).forEach(function(i){(0|i)==i&&(i|=0);var r=e[i];t[r]=i}),t},r.der=i(142)},function(e,t,i){function r(e){this.enc="der",this.name=e.name,this.entity=e,this.tree=new n,this.tree._init(e.body)}function n(e){h.Node.call(this,"der",e)}function s(e,t){var i=e.readUInt8(t);if(e.isError(i))return i;var r=l.tagClass[i>>6],n=0===(32&i);if(31===(31&i)){var s=i;for(i=0;128===(128&s);){if(s=e.readUInt8(t),e.isError(s))return s;i<<=7,i|=127&s}}else i&=31;var a=l.tag[i];return{cls:r,primitive:n,tag:i,tagStr:a}}function a(e,t,i){var r=e.readUInt8(i);if(e.isError(r))return r;if(!t&&128===r)return null;if(0===(128&r))return r;var n=127&r;if(n>=4)return e.error("length octect is too long");r=0;for(var s=0;s=31?r.error("Multi-octet tag encoding unsupported"):(t||(n|=32),n|=l.tagClassByName[i||"universal"]<<6)}var o=i(1),f=i(0).Buffer,h=i(32),c=h.base,l=h.constants.der;e.exports=r,r.prototype.encode=function(e,t){return this.tree._encode(e,t).join()},o(n,c.Node),n.prototype._encodeComposite=function(e,t,i,r){var n=a(e,t,i,this.reporter);if(r.length<128){var s=new f(2);return s[0]=n,s[1]=r.length,this._createEncoderBuffer([s,r])}for(var o=1,h=r.length;h>=256;h>>=8)o++;var s=new f(2+o);s[0]=n,s[1]=128|o;for(var h=1+o,c=r.length;c>0;h--,c>>=8)s[h]=255&c;return this._createEncoderBuffer([s,r])},n.prototype._encodeStr=function(e,t){if("bitstr"===t)return this._createEncoderBuffer([0|e.unused,e.data]);if("bmpstr"===t){for(var i=new f(2*e.length),r=0;r=40)return this.reporter.error("Second objid identifier OOB");e.splice(0,2,40*e[0]+e[1])}for(var n=0,r=0;r=128;s>>=7)n++}for(var a=new f(n),o=a.length-1,r=e.length-1;r>=0;r--){var s=e[r];for(a[o--]=127&s;(s>>=7)>0;)a[o--]=128|127&s}return this._createEncoderBuffer(a)},n.prototype._encodeTime=function(e,t){var i,r=new Date(e);return"gentime"===t?i=[s(r.getFullYear()),s(r.getUTCMonth()+1),s(r.getUTCDate()),s(r.getUTCHours()),s(r.getUTCMinutes()),s(r.getUTCSeconds()),"Z"].join(""):"utctime"===t?i=[s(r.getFullYear()%100),s(r.getUTCMonth()+1),s(r.getUTCDate()),s(r.getUTCHours()),s(r.getUTCMinutes()),s(r.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+t+" time is not supported yet"),this._encodeStr(i,"octstr")},n.prototype._encodeNull=function(){return this._createEncoderBuffer("")},n.prototype._encodeInt=function(e,t){if("string"==typeof e){if(!t)return this.reporter.error("String int or enum given, but no values map");if(!t.hasOwnProperty(e))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(e));e=t[e]}if("number"!=typeof e&&!f.isBuffer(e)){var i=e.toArray();!e.sign&&128&i[0]&&i.unshift(0),e=new f(i)}if(f.isBuffer(e)){var r=e.length;0===e.length&&r++;var n=new f(r);return e.copy(n),0===e.length&&(n[0]=0),this._createEncoderBuffer(n)}if(e<128)return this._createEncoderBuffer(e);if(e<256)return this._createEncoderBuffer([0,e]);for(var r=1,s=e;s>=256;s>>=8)r++;for(var n=new Array(r),s=n.length-1;s>=0;s--)n[s]=255&e,e>>=8;return 128&n[0]&&n.unshift(0),this._createEncoderBuffer(new f(n))},n.prototype._encodeBool=function(e){return this._createEncoderBuffer(e?255:0)},n.prototype._use=function(e,t){return"function"==typeof e&&(e=e(t)),e._getEncoder("der").tree},n.prototype._skipDefault=function(e,t,i){var r,n=this._baseState;if(null===n.default)return!1;var s=e.join();if(void 0===n.defaultBuffer&&(n.defaultBuffer=this._encodeValue(n.default,t,i).join()),s.length!==n.defaultBuffer.length)return!1;for(r=0;r>o%8,e._prev=r(e._prev,i?s:a);return h}function r(t,i){var r=t.length,n=-1,s=new e(t.length);for(t=e.concat([t,new e([i])]);++n>7;return s}t.encrypt=function(t,r,n){for(var s=r.length,a=new e(s),o=-1;++ot.Z_MAX_CHUNK))throw new Error("Invalid chunk size: "+i.chunkSize);if(i.windowBits&&(i.windowBitst.Z_MAX_WINDOWBITS))throw new Error("Invalid windowBits: "+i.windowBits);if(i.level&&(i.levelt.Z_MAX_LEVEL))throw new Error("Invalid compression level: "+i.level);if(i.memLevel&&(i.memLevelt.Z_MAX_MEMLEVEL))throw new Error("Invalid memLevel: "+i.memLevel);if(i.strategy&&i.strategy!=t.Z_FILTERED&&i.strategy!=t.Z_HUFFMAN_ONLY&&i.strategy!=t.Z_RLE&&i.strategy!=t.Z_FIXED&&i.strategy!=t.Z_DEFAULT_STRATEGY)throw new Error("Invalid strategy: "+i.strategy);if(i.dictionary&&!e.isBuffer(i.dictionary))throw new Error("Invalid dictionary: it should be a Buffer instance");this._binding=new b.Zlib(r);var n=this;this._hadError=!1,this._binding.onerror=function(e,i){n._binding=null,n._hadError=!0;var r=new Error(e);r.errno=i,r.code=t.codes[i],n.emit("error",r)};var s=t.Z_DEFAULT_COMPRESSION;"number"==typeof i.level&&(s=i.level);var a=t.Z_DEFAULT_STRATEGY;"number"==typeof i.strategy&&(a=i.strategy),this._binding.init(i.windowBits||t.Z_DEFAULT_WINDOWBITS,s,i.memLevel||t.Z_DEFAULT_MEMLEVEL,a,i.dictionary),this._buffer=new e(this._chunkSize),this._offset=0,this._closed=!1,this._level=s,this._strategy=a,this.once("end",this.close)}var p=i(114),b=i(158),m=i(8),w=i(147).ok;b.Z_MIN_WINDOWBITS=8,b.Z_MAX_WINDOWBITS=15,b.Z_DEFAULT_WINDOWBITS=15,b.Z_MIN_CHUNK=64,b.Z_MAX_CHUNK=1/0,b.Z_DEFAULT_CHUNK=16384,b.Z_MIN_MEMLEVEL=1,b.Z_MAX_MEMLEVEL=9,b.Z_DEFAULT_MEMLEVEL=8,b.Z_MIN_LEVEL=-1,b.Z_MAX_LEVEL=9,b.Z_DEFAULT_LEVEL=b.Z_DEFAULT_COMPRESSION,Object.keys(b).forEach(function(e){e.match(/^Z/)&&(t[e]=b[e])}),t.codes={Z_OK:b.Z_OK,Z_STREAM_END:b.Z_STREAM_END,Z_NEED_DICT:b.Z_NEED_DICT,Z_ERRNO:b.Z_ERRNO,Z_STREAM_ERROR:b.Z_STREAM_ERROR,Z_DATA_ERROR:b.Z_DATA_ERROR,Z_MEM_ERROR:b.Z_MEM_ERROR,Z_BUF_ERROR:b.Z_BUF_ERROR,Z_VERSION_ERROR:b.Z_VERSION_ERROR},Object.keys(t.codes).forEach(function(e){t.codes[t.codes[e]]=e}),t.Deflate=a,t.Inflate=o,t.Gzip=f,t.Gunzip=h,t.DeflateRaw=c,t.InflateRaw=l,t.Unzip=u,t.createDeflate=function(e){return new a(e)},t.createInflate=function(e){return new o(e)},t.createDeflateRaw=function(e){return new c(e)},t.createInflateRaw=function(e){return new l(e)},t.createGzip=function(e){return new f(e)},t.createGunzip=function(e){return new h(e)},t.createUnzip=function(e){return new u(e)},t.deflate=function(e,t,i){return"function"==typeof t&&(i=t,t={}),n(new a(t),e,i)},t.deflateSync=function(e,t){return s(new a(t),e)},t.gzip=function(e,t,i){return"function"==typeof t&&(i=t,t={}),n(new f(t),e,i)},t.gzipSync=function(e,t){return s(new f(t),e)},t.deflateRaw=function(e,t,i){return"function"==typeof t&&(i=t,t={}),n(new c(t),e,i)},t.deflateRawSync=function(e,t){return s(new c(t),e)},t.unzip=function(e,t,i){return"function"==typeof t&&(i=t,t={}),n(new u(t),e,i)},t.unzipSync=function(e,t){return s(new u(t),e)},t.inflate=function(e,t,i){return"function"==typeof t&&(i=t,t={}),n(new o(t),e,i)},t.inflateSync=function(e,t){return s(new o(t),e)},t.gunzip=function(e,t,i){return"function"==typeof t&&(i=t,t={}),n(new h(t),e,i)},t.gunzipSync=function(e,t){return s(new h(t),e)},t.inflateRaw=function(e,t,i){return"function"==typeof t&&(i=t,t={}),n(new l(t),e,i)},t.inflateRawSync=function(e,t){return s(new l(t),e)},m.inherits(d,p),d.prototype.params=function(e,i,n){if(et.Z_MAX_LEVEL)throw new RangeError("Invalid compression level: "+e);if(i!=t.Z_FILTERED&&i!=t.Z_HUFFMAN_ONLY&&i!=t.Z_RLE&&i!=t.Z_FIXED&&i!=t.Z_DEFAULT_STRATEGY)throw new TypeError("Invalid strategy: "+i);if(this._level!==e||this._strategy!==i){var s=this;this.flush(b.Z_SYNC_FLUSH,function(){s._binding.params(e,i),s._hadError||(s._level=e,s._strategy=i,n&&n())})}else r.nextTick(n)},d.prototype.reset=function(){return this._binding.reset()},d.prototype._flush=function(t){this._transform(new e(0),"",t)},d.prototype.flush=function(t,i){var n=this._writableState;if(("function"==typeof t||void 0===t&&!i)&&(i=t,t=b.Z_FULL_FLUSH),n.ended)i&&r.nextTick(i);else if(n.ending)i&&this.once("end",i);else if(n.needDrain){var s=this;this.once("drain",function(){s.flush(i)})}else this._flushFlag=t,this.write(new e(0),"",i)},d.prototype.close=function(e){if(e&&r.nextTick(e),!this._closed){this._closed=!0,this._binding.close();var t=this;r.nextTick(function(){t.emit("close")})}},d.prototype._transform=function(t,i,r){var n,s=this._writableState,a=s.ending||s.ended,o=a&&(!t||s.length===t.length);if(null===!t&&!e.isBuffer(t))return r(new Error("invalid input"));o?n=b.Z_FINISH:(n=this._flushFlag,t.length>=s.length&&(this._flushFlag=this._opts.flush||b.Z_NO_FLUSH));this._processChunk(t,n,r)},d.prototype._processChunk=function(t,i,r){function n(c,d){if(!f._hadError){var p=a-d;if(w(p>=0,"have should not go down"),p>0){var b=f._buffer.slice(f._offset,f._offset+p);f._offset+=p,h?f.push(b):(l.push(b),u+=b.length)}if((0===d||f._offset>=f._chunkSize)&&(a=f._chunkSize,f._offset=0,f._buffer=new e(f._chunkSize)),0===d){if(o+=s-c,s=c,!h)return!0;var m=f._binding.write(i,t,o,s,f._buffer,f._offset,f._chunkSize);return m.callback=n,void(m.buffer=t)}return!!h&&void r()}}var s=t&&t.length,a=this._chunkSize-this._offset,o=0,f=this,h="function"==typeof r;if(!h){var c,l=[],u=0;this.on("error",function(e){c=e});do var d=this._binding.writeSync(i,t,o,s,this._buffer,this._offset,a);while(!this._hadError&&n(d[0],d[1]));if(this._hadError)throw c;var p=e.concat(l,u);return this.close(),p}var b=this._binding.write(i,t,o,s,this._buffer,this._offset,a);b.buffer=t,b.callback=n},m.inherits(a,d),m.inherits(o,d),m.inherits(f,d),m.inherits(h,d),m.inherits(c,d),m.inherits(l,d),m.inherits(u,d)}).call(t,i(0).Buffer,i(5))},function(e,t,i){"use strict";function r(e,t){e[t>>5]|=128<>>9<<4)+14]=t;for(var i=1732584193,r=-271733879,n=-1732584194,c=271733878,l=0;l>16)+(t>>16)+(i>>16);return r<<16|65535&i}function c(e,t){return e<>>32-t}var l=i(163);e.exports=function(e){return l.hash(e,r,16)}},function(e,t,i){(function(t){function r(){this.init(),this._w=d,l.call(this,64,56)}function n(e,t,i){return i^e&(t^i)}function s(e,t,i){return e&t|i&(e|t)}function a(e){return(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10)}function o(e){return(e>>>6|e<<26)^(e>>>11|e<<21)^(e>>>25|e<<7)}function f(e){return(e>>>7|e<<25)^(e>>>18|e<<14)^e>>>3}function h(e){return(e>>>17|e<<15)^(e>>>19|e<<13)^e>>>10}var c=i(1),l=i(19),u=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],d=new Array(64);c(r,l),r.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},r.prototype._update=function(e){for(var t=this._w,i=0|this._a,r=0|this._b,c=0|this._c,l=0|this._d,d=0|this._e,p=0|this._f,b=0|this._g,m=0|this._h,w=0;w<16;++w)t[w]=e.readInt32BE(4*w);for(;w<64;++w)t[w]=h(t[w-2])+t[w-7]+f(t[w-15])+t[w-16]|0;for(var g=0;g<64;++g){var v=m+o(d)+n(d,p,b)+u[g]+t[g]|0,_=a(i)+s(i,r,c)|0;m=b,b=p,p=d,d=l+v|0,l=c,c=r,r=i,i=v+_|0}this._a=i+this._a|0,this._b=r+this._b|0,this._c=c+this._c|0,this._d=l+this._d|0,this._e=d+this._e|0,this._f=p+this._f|0,this._g=b+this._g|0,this._h=m+this._h|0},r.prototype._hash=function(){var e=new t(32);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e.writeInt32BE(this._h,28),e},e.exports=r}).call(t,i(0).Buffer)},function(e,t,i){(function(t){function r(){this.init(),this._w=m,p.call(this,128,112)}function n(e,t,i){return i^e&(t^i)}function s(e,t,i){return e&t|i&(e|t)}function a(e,t){return(e>>>28|t<<4)^(t>>>2|e<<30)^(t>>>7|e<<25)}function o(e,t){return(e>>>14|t<<18)^(e>>>18|t<<14)^(t>>>9|e<<23)}function f(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^e>>>7}function h(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^(e>>>7|t<<25)}function c(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^e>>>6}function l(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^(e>>>6|t<<26)}function u(e,t){return e>>>0>>0?1:0}var d=i(1),p=i(19),b=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],m=new Array(160);d(r,p),r.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},r.prototype._update=function(e){for(var t=this._w,i=0|this._ah,r=0|this._bh,d=0|this._ch,p=0|this._dh,m=0|this._eh,w=0|this._fh,g=0|this._gh,v=0|this._hh,_=0|this._al,y=0|this._bl,k=0|this._cl,E=0|this._dl,A=0|this._el,S=0|this._fl,M=0|this._gl,T=0|this._hl,R=0;R<32;R+=2)t[R]=e.readInt32BE(4*R),t[R+1]=e.readInt32BE(4*R+4);for(;R<160;R+=2){var x=t[R-30],C=t[R-30+1],I=f(x,C),P=h(C,x);x=t[R-4],C=t[R-4+1];var O=c(x,C),N=l(C,x),D=t[R-14],L=t[R-14+1],B=t[R-32],U=t[R-32+1],j=P+L|0,F=I+D+u(j,P)|0;j=j+N|0,F=F+O+u(j,N)|0,j=j+U|0,F=F+B+u(j,U)|0,t[R]=F,t[R+1]=j}for(var z=0;z<160;z+=2){F=t[z],j=t[z+1];var q=s(i,r,d),H=s(_,y,k),G=a(i,_),V=a(_,i),W=o(m,A),K=o(A,m),Z=b[z],Y=b[z+1],$=n(m,w,g),X=n(A,S,M),J=T+K|0,Q=v+W+u(J,T)|0;J=J+X|0,Q=Q+$+u(J,X)|0,J=J+Y|0,Q=Q+Z+u(J,Y)|0,J=J+j|0,Q=Q+F+u(J,j)|0;var ee=V+H|0,te=G+q+u(ee,V)|0;v=g,T=M,g=w,M=S,w=m,S=A,A=E+J|0,m=p+Q+u(A,E)|0,p=d,E=k,d=r,k=y,r=i,y=_,_=J+ee|0,i=Q+te+u(_,J)|0}this._al=this._al+_|0,this._bl=this._bl+y|0,this._cl=this._cl+k|0,this._dl=this._dl+E|0,this._el=this._el+A|0,this._fl=this._fl+S|0,this._gl=this._gl+M|0,this._hl=this._hl+T|0,this._ah=this._ah+i+u(this._al,_)|0,this._bh=this._bh+r+u(this._bl,y)|0,this._ch=this._ch+d+u(this._cl,k)|0,this._dh=this._dh+p+u(this._dl,E)|0,this._eh=this._eh+m+u(this._el,A)|0,this._fh=this._fh+w+u(this._fl,S)|0,this._gh=this._gh+g+u(this._gl,M)|0,this._hh=this._hh+v+u(this._hl,T)|0},r.prototype._hash=function(){function e(e,t,r){i.writeInt32BE(e,r),i.writeInt32BE(t,r+4)}var i=new t(64);return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),e(this._gh,this._gl,48),e(this._hh,this._hl,56),i},e.exports=r}).call(t,i(0).Buffer)},function(e,t,i){function r(){if(null!==v)return v;var e=1048576,t=[];t[0]=2;for(var i=1,r=3;re;)i.ishrn(1);if(i.isEven()&&i.iadd(u),i.testn(1)||i.iadd(d),t.cmp(d)){if(!t.cmp(p))for(;i.mod(b).cmp(m);)i.iadd(g)}else for(;i.mod(h).cmp(w);)i.iadd(g);if(r=i.shrn(1),n(r)&&n(i)&&s(r)&&s(i)&&l.test(r)&&l.test(i))return i}}var o=i(27);e.exports=a,a.simpleSieve=n,a.fermatTest=s;var f=i(4),h=new f(24),c=i(103),l=new c,u=new f(1),d=new f(2),p=new f(5),b=(new f(16),new f(8),new f(10)),m=new f(3),w=(new f(7),new f(11)),g=new f(4),v=(new f(12),null)},function(e,t){var i={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==i.call(e)}},function(e,t,i){function r(e){this.rand=e||new s.Rand}var n=i(4),s=i(86);e.exports=r,r.create=function(e){return new r(e)},r.prototype._rand=function(e){var t=e.bitLength(),i=this.rand.generate(Math.ceil(t/8));i[0]|=3;var r=7&t;return 0!==r&&(i[i.length-1]>>=7-r),new n(i)},r.prototype.test=function(e,t,i){var r=e.bitLength(),s=n.mont(e),a=new n(1).toRed(s);t||(t=Math.max(1,r/48|0));for(var o=e.subn(1),f=o.subn(1),h=0;!o.testn(h);h++);for(var c=e.shrn(h),l=o.toRed(s),u=!0;t>0;t--){var d=this._rand(f);i&&i(d);var p=d.toRed(s).redPow(c);if(0!==p.cmp(a)&&0!==p.cmp(l)){for(var b=1;b0;t--){var l=this._rand(o),u=e.gcd(l);if(0!==u.cmpn(1))return u;var d=l.toRed(r).redPow(h);if(0!==d.cmp(s)&&0!==d.cmp(c)){for(var p=1;p0)throw r.length>1?new Error("options "+r.slice(0,r.length-1).join(", ")+" and "+r[r.length-1]+" must be defined"):new Error("option "+r[0]+" must be defined")}return Object.keys(e).forEach(function(i){i in t&&(t[i]=e[i])}),this},this.copy=function(t){var r={};return Object.keys(e).forEach(function(e){t.indexOf(e)!==-1&&(r[e]=i[e])}),r},this.read=function(e,t){if("function"==typeof t){var i=this;n.readFile(e,function(e,r){if(e)return t(e);var n=JSON.parse(r);i.merge(n),t()})}else{var r=JSON.parse(n.readFileSync(e));this.merge(r)}return this},this.isDefined=function(e){return"undefined"!=typeof i[e]},this.isDefinedAndNonNull=function(e){return"undefined"!=typeof i[e]&&null!==i[e]},Object.freeze(i),Object.freeze(this)}/*! +\`\`\``,i)}edit(e=this.name,t){return t?this.client.resolver.resolveBuffer(t).then(t=>{const i=this.client.resolver.resolveBase64(t);return this.client.rest.methods.editWebhook(this,e,i)}):this.client.rest.methods.editWebhook(this,e).then(e=>{return this.setup(e),this})}delete(){return this.client.rest.methods.deleteWebhook(this)}}e.exports=s},function(e,t,i){function r(){return Object.keys(a)}var n=i(152);t.createCipher=t.Cipher=n.createCipher,t.createCipheriv=t.Cipheriv=n.createCipheriv;var s=i(151);t.createDecipher=t.Decipher=s.createDecipher,t.createDecipheriv=t.Decipheriv=s.createDecipheriv;var a=i(38);t.listCiphers=t.getCiphers=r},function(e,t,i){(function(t){function r(e){var t=s(e),i=t.toRed(a.mont(e.modulus)).redPow(new a(e.publicExponent)).fromRed();return{blinder:i,unblinder:t.invm(e.modulus)}}function n(e,i){var n=r(i),s=i.modulus.byteLength(),o=(a.mont(i.modulus),new a(e).mul(n.blinder).umod(i.modulus)),f=o.toRed(a.mont(i.prime1)),h=o.toRed(a.mont(i.prime2)),c=i.coefficient,l=i.prime1,u=i.prime2,d=f.redPow(i.exponent1),p=h.redPow(i.exponent2);d=d.fromRed(),p=p.fromRed();var b=d.isub(p).imul(c).umod(l);return b.imul(u),p.iadd(b),new t(p.imul(n.unblinder).umod(i.modulus).toArray(!1,s))}function s(e){for(var t=e.modulus.byteLength(),i=new a(o(t));i.cmp(e.modulus)>=0||!i.umod(e.prime1)||!i.umod(e.prime2);)i=new a(o(t));return i}var a=i(7),o=i(30);e.exports=n,n.getr=s}).call(t,i(0).Buffer)},function(e,t,i){"use strict";(function(e){var r=i(0),n=r.Buffer,s=r.SlowBuffer,a=r.kMaxLength||2147483647;t.alloc=function(e,t,i){if("function"==typeof n.alloc)return n.alloc(e,t,i);if("number"==typeof i)throw new TypeError("encoding must not be number");if("number"!=typeof e)throw new TypeError("size must be a number");if(e>a)throw new RangeError("size is too large");var r=i,s=t;void 0===s&&(r=void 0,s=0);var o=new n(e);if("string"==typeof s)for(var f=new n(s,r),h=f.length,c=-1;++ca)throw new RangeError("size is too large");return new n(e)},t.from=function(t,i,r){if("function"==typeof n.from&&(!e.Uint8Array||Uint8Array.from!==n.from))return n.from(t,i,r);if("number"==typeof t)throw new TypeError('"value" argument must not be a number');if("string"==typeof t)return new n(t,i);if("undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer){var s=i;if(1===arguments.length)return new n(t);"undefined"==typeof s&&(s=0);var a=r;if("undefined"==typeof a&&(a=t.byteLength-s),s>=t.byteLength)throw new RangeError("'offset' is out of bounds");if(a>t.byteLength-s)throw new RangeError("'length' is out of bounds");return new n(t.slice(s,s+a))}if(n.isBuffer(t)){var o=new n(t.length);return t.copy(o,0,0,t.length),o}if(t){if(Array.isArray(t)||"undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return new n(t);if("Buffer"===t.type&&Array.isArray(t.data))return new n(t.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")},t.allocUnsafeSlow=function(e){if("function"==typeof n.allocUnsafeSlow)return n.allocUnsafeSlow(e);if("number"!=typeof e)throw new TypeError("size must be a number");if(e>=a)throw new RangeError("size is too large");return new s(e)}}).call(t,i(19))},function(e,t,i){"use strict";(function(t){function r(e,i){a.call(this),e=e.toLowerCase(),"string"==typeof i&&(i=new t(i));var r="sha512"===e||"sha384"===e?128:64;this._alg=e,this._key=i,i.length>r?i=n(e).update(i).digest():i.length-1?r:A;o.WritableState=a;var M=i(28);M.inherits=i(2);var T,x={deprecate:i(234)};!function(){try{T=i(11)}catch(e){}finally{T||(T=i(5).EventEmitter)}}();var R=i(0).Buffer,I=i(52);M.inherits(o,T);var C;a.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(a.prototype,"buffer",{get:x.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.")})}catch(e){}}();var C;o.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},o.prototype.write=function(e,t,i){var r=this._writableState,s=!1;return"function"==typeof t&&(i=t,t=null),R.isBuffer(e)?t="buffer":t||(t=r.defaultEncoding),"function"!=typeof i&&(i=n),r.ended?f(this,i):h(this,r,e,i)&&(r.pendingcb++,s=l(this,r,e,t,i)),s},o.prototype.cork=function(){var e=this._writableState;e.corked++},o.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.finished||e.bufferProcessing||!e.bufferedRequest||g(this,e))},o.prototype.setDefaultEncoding=function(e){if("string"==typeof e&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},o.prototype._write=function(e,t,i){i(new Error("not implemented"))},o.prototype._writev=null,o.prototype.end=function(e,t,i){var r=this._writableState;"function"==typeof e?(i=e,e=null,t=null):"function"==typeof t&&(i=t,t=null),null!==e&&void 0!==e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||k(this,r,i)}}).call(t,i(8),i(61).setImmediate)},function(e,t,i){function r(e){if(e&&!f(e))throw new Error("Unknown encoding: "+e)}function n(e){return e.toString(this.encoding)}function s(e){this.charReceived=e.length%2,this.charLength=this.charReceived?2:0}function a(e){this.charReceived=e.length%3,this.charLength=this.charReceived?3:0}var o=i(0).Buffer,f=o.isEncoding||function(e){switch(e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}},h=t.StringDecoder=function(e){switch(this.encoding=(e||"utf8").toLowerCase().replace(/[-_]/,""),r(e),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=s;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=a;break;default:return void(this.write=n)}this.charBuffer=new o(6),this.charReceived=0,this.charLength=0};h.prototype.write=function(e){for(var t="";this.charLength;){var i=e.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:e.length;if(e.copy(this.charBuffer,this.charReceived,0,i),this.charReceived+=i,this.charReceived=55296&&r<=56319)){if(this.charReceived=this.charLength=0,0===e.length)return t;break}this.charLength+=this.surrogateSize,t=""}this.detectIncompleteChar(e);var n=e.length;this.charLength&&(e.copy(this.charBuffer,0,e.length-this.charReceived,n),n-=this.charReceived),t+=e.toString(this.encoding,0,n);var n=t.length-1,r=t.charCodeAt(n);if(r>=55296&&r<=56319){var s=this.surrogateSize;return this.charLength+=s,this.charReceived+=s,this.charBuffer.copy(this.charBuffer,s,0,s),e.copy(this.charBuffer,0,0,s),t.substring(0,n)}return t},h.prototype.detectIncompleteChar=function(e){for(var t=e.length>=3?3:e.length;t>0;t--){var i=e[e.length-t];if(1==t&&i>>5==6){this.charLength=2;break}if(t<=2&&i>>4==14){this.charLength=3;break}if(t<=3&&i>>3==30){this.charLength=4;break}}this.charReceived=t},h.prototype.end=function(e){var t="";if(e&&e.length&&(t=this.write(e)),this.charReceived){var i=this.charReceived,r=this.charBuffer,n=this.encoding;t+=r.slice(0,i).toString(n)}return t}},function(e,t,i){function r(){}function n(e){if(!w(e))return e;var t=[];for(var i in e)s(t,i,e[i]);return t.join("&")}function s(e,t,i){if(null!=i)if(Array.isArray(i))i.forEach(function(i){s(e,t,i)});else if(w(i))for(var r in i)s(e,t+"["+r+"]",i[r]);else e.push(encodeURIComponent(t)+"="+encodeURIComponent(i));else null===i&&e.push(encodeURIComponent(t))}function a(e){for(var t,i,r={},n=e.split("&"),s=0,a=n.length;s=300)&&(r=new Error(t.statusText||"Unsuccessful HTTP response"),r.original=e,r.response=t,r.status=t.status)}catch(e){r=e}r?i.callback(r,t):i.callback(null,t)})}function d(e,t){var i=g("DELETE",e);return t&&i.end(t),i}var p;"undefined"!=typeof window?p=window:"undefined"!=typeof self?p=self:(console.warn("Using browser-only version of superagent in non-browser environment"),p=this);var b=i(163),m=i(229),w=i(119),g=e.exports=i(230).bind(null,u);g.getXHR=function(){if(!(!p.XMLHttpRequest||p.location&&"file:"==p.location.protocol&&p.ActiveXObject))return new XMLHttpRequest;try{return new ActiveXObject("Microsoft.XMLHTTP")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP")}catch(e){}throw Error("Browser-only verison of superagent could not find XHR")};var v="".trim?function(e){return e.trim()}:function(e){return e.replace(/(^\s*|\s*$)/g,"")};g.serializeObject=n,g.parseString=a,g.types={html:"text/html",json:"application/json",xml:"application/xml",urlencoded:"application/x-www-form-urlencoded",form:"application/x-www-form-urlencoded","form-data":"application/x-www-form-urlencoded"},g.serialize={"application/x-www-form-urlencoded":n,"application/json":JSON.stringify},g.parse={"application/x-www-form-urlencoded":a,"application/json":JSON.parse},l.prototype.get=function(e){return this.header[e.toLowerCase()]},l.prototype._setHeaderProperties=function(e){var t=this.header["content-type"]||"";this.type=h(t);var i=c(t);for(var r in i)this[r]=i[r]},l.prototype._parseBody=function(e){var t=g.parse[this.type];return!t&&f(this.type)&&(t=g.parse["application/json"]),t&&e&&(e.length||e instanceof Object)?t(e):null},l.prototype._setStatusProperties=function(e){1223===e&&(e=204);var t=e/100|0;this.status=this.statusCode=e,this.statusType=t,this.info=1==t,this.ok=2==t,this.clientError=4==t,this.serverError=5==t,this.error=(4==t||5==t)&&this.toError(),this.accepted=202==e,this.noContent=204==e,this.badRequest=400==e,this.unauthorized=401==e,this.notAcceptable=406==e,this.notFound=404==e,this.forbidden=403==e},l.prototype.toError=function(){var e=this.req,t=e.method,i=e.url,r="cannot "+t+" "+i+" ("+this.status+")",n=new Error(r);return n.status=this.status,n.method=t,n.url=i,n},g.Response=l,b(u.prototype),m(u.prototype),u.prototype.type=function(e){return this.set("Content-Type",g.types[e]||e),this},u.prototype.responseType=function(e){return this._responseType=e,this},u.prototype.accept=function(e){return this.set("Accept",g.types[e]||e),this},u.prototype.auth=function(e,t,i){switch(i||(i={type:"basic"}),i.type){case"basic":var r=btoa(e+":"+t);this.set("Authorization","Basic "+r);break;case"auto":this.username=e,this.password=t}return this},u.prototype.query=function(e){return"string"!=typeof e&&(e=n(e)),e&&this._query.push(e),this},u.prototype.attach=function(e,t,i){if(this._data)throw Error("superagent can't mix .send() and .attach()");return this._getFormData().append(e,t,i||t.name),this},u.prototype._getFormData=function(){return this._formData||(this._formData=new p.FormData),this._formData},u.prototype.callback=function(e,t){var i=this._callback;this.clearTimeout(),e&&this.emit("error",e),i(e,t)},u.prototype.crossDomainError=function(){var e=new Error("Request has been terminated\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.");e.crossDomain=!0,e.status=this.status,e.method=this.method,e.url=this.url,this.callback(e)},u.prototype.buffer=u.prototype.ca=u.prototype.agent=function(){return console.warn("This is not supported in browser version of superagent"),this},u.prototype.pipe=u.prototype.write=function(){throw Error("Streaming is not supported in browser version of superagent")},u.prototype._timeoutError=function(){var e=this._timeout,t=new Error("timeout of "+e+"ms exceeded");t.timeout=e,this.callback(t)},u.prototype._appendQueryString=function(){var e=this._query.join("&");e&&(this.url+=~this.url.indexOf("?")?"&"+e:"?"+e)},u.prototype._isHost=function(e){return e&&"object"==typeof e&&!Array.isArray(e)&&"[object Object]"!==Object.prototype.toString.call(e)},u.prototype.end=function(e){var t=this,i=this.xhr=g.getXHR(),n=this._timeout,s=this._formData||this._data;this._callback=e||r,i.onreadystatechange=function(){if(4==i.readyState){var e;try{e=i.status}catch(t){e=0}if(0==e){if(t.timedout)return t._timeoutError();if(t._aborted)return;return t.crossDomainError()}t.emit("end")}};var a=function(e,i){i.total>0&&(i.percent=i.loaded/i.total*100),i.direction=e,t.emit("progress",i)};if(this.hasListeners("progress"))try{i.onprogress=a.bind(null,"download"),i.upload&&(i.upload.onprogress=a.bind(null,"upload"))}catch(e){}if(n&&!this._timer&&(this._timer=setTimeout(function(){t.timedout=!0,t.abort()},n)),this._appendQueryString(),this.username&&this.password?i.open(this.method,this.url,!0,this.username,this.password):i.open(this.method,this.url,!0),this._withCredentials&&(i.withCredentials=!0),"GET"!=this.method&&"HEAD"!=this.method&&"string"!=typeof s&&!this._isHost(s)){var o=this._header["content-type"],h=this._serializer||g.serialize[o?o.split(";")[0]:""];!h&&f(o)&&(h=g.serialize["application/json"]),h&&(s=h(s))}for(var c in this.header)null!=this.header[c]&&i.setRequestHeader(c,this.header[c]);return this._responseType&&(i.responseType=this._responseType),this.emit("request",this),i.send("undefined"!=typeof s?s:null),this},g.Request=u,g.get=function(e,t,i){var r=g("GET",e);return"function"==typeof t&&(i=t,t=null),t&&r.query(t),i&&r.end(i),r},g.head=function(e,t,i){var r=g("HEAD",e);return"function"==typeof t&&(i=t,t=null),t&&r.send(t),i&&r.end(i),r},g.options=function(e,t,i){var r=g("OPTIONS",e);return"function"==typeof t&&(i=t,t=null),t&&r.send(t),i&&r.end(i),r},g.del=d,g.delete=d,g.patch=function(e,t,i){var r=g("PATCH",e);return"function"==typeof t&&(i=t,t=null),t&&r.send(t),i&&r.end(i),r},g.post=function(e,t,i){var r=g("POST",e);return"function"==typeof t&&(i=t,t=null),t&&r.send(t),i&&r.end(i),r},g.put=function(e,t,i){var r=g("PUT",e);return"function"==typeof t&&(i=t,t=null),t&&r.send(t),i&&r.end(i),r}},function(e,t,i){(function(e,r){function n(e,t){this._id=e,this._clearFn=t}var s=i(8).nextTick,a=Function.prototype.apply,o=Array.prototype.slice,f={},h=0;t.setTimeout=function(){return new n(a.call(setTimeout,window,arguments),clearTimeout)},t.setInterval=function(){return new n(a.call(setInterval,window,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e.close()},n.prototype.unref=n.prototype.ref=function(){},n.prototype.close=function(){this._clearFn.call(window,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},t.setImmediate="function"==typeof e?e:function(e){var i=h++,r=!(arguments.length<2)&&o.call(arguments,1);return f[i]=!0,s(function(){f[i]&&(r?e.apply(null,r):e.call(null),t.clearImmediate(i))}),i},t.clearImmediate="function"==typeof r?r:function(e){delete f[e]}}).call(t,i(61).setImmediate,i(61).clearImmediate)},function(e,t,i){"use strict";function r(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}function n(e,t,i){if(e&&h.isObject(e)&&e instanceof r)return e;var n=new r;return n.parse(e,t,i),n}function s(e){return h.isString(e)&&(e=n(e)),e instanceof r?e.format():r.prototype.format.call(e)}function a(e,t){return n(e,!1,!0).resolve(t)}function o(e,t){return e?n(e,!1,!0).resolveObject(t):t}var f=i(220),h=i(241);t.parse=n,t.resolve=a,t.resolveObject=o,t.format=s,t.Url=r;var c=/^([a-z0-9.+-]+:)/i,l=/:[0-9]*$/,u=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,d=["<",">",'"',"`"," ","\r","\n","\t"],p=["{","}","|","\\","^","`"].concat(d),b=["'"].concat(p),m=["%","/","?",";","#"].concat(b),w=["/","?","#"],g=255,v=/^[+a-z0-9A-Z_-]{0,63}$/,_=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,y={javascript:!0,"javascript:":!0},k={javascript:!0,"javascript:":!0},E={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},A=i(223);r.prototype.parse=function(e,t,i){if(!h.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var r=e.indexOf("?"),n=r!==-1&&r127?"x":N[L];if(!D.match(v)){var U=P.slice(0,T),j=P.slice(T+1),F=N.match(_);F&&(U.push(F[1]),j.unshift(F[2])),j.length&&(o="/"+j.join(".")+o),this.hostname=U.join(".");break}}}this.hostname.length>g?this.hostname="":this.hostname=this.hostname.toLowerCase(),C||(this.hostname=f.toASCII(this.hostname));var z=this.port?":"+this.port:"",q=this.hostname||"";this.host=q+z,this.href+=this.host,C&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==o[0]&&(o="/"+o))}if(!y[p])for(var T=0,O=b.length;T0)&&i.host.split("@");S&&(i.auth=S.shift(),i.host=i.hostname=S.shift())}return i.search=e.search,i.query=e.query,h.isNull(i.pathname)&&h.isNull(i.search)||(i.path=(i.pathname?i.pathname:"")+(i.search?i.search:"")),i.href=i.format(),i}if(!y.length)return i.pathname=null,i.search?i.path="/"+i.search:i.path=null,i.href=i.format(),i;for(var M=y.slice(-1)[0],T=(i.host||e.host||y.length>1)&&("."===M||".."===M)||""===M,x=0,R=y.length;R>=0;R--)M=y[R],"."===M?y.splice(R,1):".."===M?(y.splice(R,1),x++):x&&(y.splice(R,1),x--);if(!v&&!_)for(;x--;x)y.unshift("..");!v||""===y[0]||y[0]&&"/"===y[0].charAt(0)||y.unshift(""),T&&"/"!==y.join("/").substr(-1)&&y.push("");var I=""===y[0]||y[0]&&"/"===y[0].charAt(0);if(A){i.hostname=i.host=I?"":y.length?y.shift():"";var S=!!(i.host&&i.host.indexOf("@")>0)&&i.host.split("@");S&&(i.auth=S.shift(),i.host=i.hostname=S.shift())}return v=v||i.host&&y.length,v&&!I&&y.unshift(""),y.length?i.pathname=y.join("/"):(i.pathname=null,i.path=null),h.isNull(i.pathname)&&h.isNull(i.search)||(i.path=(i.pathname?i.pathname:"")+(i.search?i.search:"")),i.auth=e.auth||i.auth,i.slashes=i.slashes||e.slashes,i.href=i.format(),i},r.prototype.parseHost=function(){var e=this.host,t=l.exec(e);t&&(t=t[0],":"!==t&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},function(e,t){e.exports=function(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(const i in e){const r=e[i],n=t.indexOf(r);n&&t.splice(n,1)}return 0===t.length}},function(e,t){e.exports={name:"discord.js",version:"10.0.1",description:"A powerful library for interacting with the Discord API",main:"./src/index",scripts:{test:"eslint src && node docs/generator test",docs:"node docs/generator","test-docs":"node docs/generator test",lint:"eslint src","web-dist":"npm install && node ./node_modules/parallel-webpack/bin/run.js"},repository:{type:"git",url:"git+https://github.com/hydrabolt/discord.js.git"},keywords:["discord","api","bot","client","node","discordapp"],author:"Amish Shah ",license:"Apache-2.0",bugs:{url:"https://github.com/hydrabolt/discord.js/issues"},homepage:"https://github.com/hydrabolt/discord.js#readme",dependencies:{superagent:"^3.0.0",tweetnacl:"^0.14.3",ws:"^1.1.1"},peerDependencies:{"node-opus":"^0.2.0",opusscript:"^0.0.1"},devDependencies:{bufferutil:"^1.2.1",eslint:"^3.10.0","jsdoc-to-markdown":"^2.0.0","json-loader":"^0.5.4","parallel-webpack":"^1.5.0","uglify-js":"github:mishoo/UglifyJS2#harmony","utf-8-validate":"^1.2.1",webpack:"2.1.0-beta.27",zlibjs:"github:imaya/zlib.js"},engines:{node:">=6.0.0"}}},function(e,t,i){(function(t){const r=i(12),n=i(17),s=i(135),a=i(136);class o{constructor(e,i,s=[]){this.manager=e,this.id=i,this.env=Object.assign({},t.env,{SHARD_ID:this.id,SHARD_COUNT:this.manager.totalShards,CLIENT_TOKEN:this.manager.token}),this.process=r.fork(n.resolve(this.manager.file),s,{env:this.env}),this.process.on("message",this._handleMessage.bind(this)),this.process.once("exit",()=>{this.manager.respawn&&this.manager.createShard(this.id)}),this._evals=new Map,this._fetches=new Map}send(e){return new Promise((t,i)=>{const r=this.process.send(e,e=>{e?i(e):t(this)});if(!r)throw new Error("Failed to send message to shard's process.")})}fetchClientValue(e){if(this._fetches.has(e))return this._fetches.get(e);const t=new Promise((t,i)=>{const r=i=>{i&&i._fetchProp===e&&(this.process.removeListener("message",r),this._fetches.delete(e),t(i._result))};this.process.on("message",r),this.send({_fetchProp:e}).catch(t=>{this.process.removeListener("message",r),this._fetches.delete(e),i(t)})});return this._fetches.set(e,t),t}eval(e){if(this._evals.has(e))return this._evals.get(e);const t=new Promise((t,i)=>{const r=n=>{n&&n._eval===e&&(this.process.removeListener("message",r),this._evals.delete(e),n._error?i(s(n._error)):t(n._result))};this.process.on("message",r),this.send({_eval:e}).catch(t=>{this.process.removeListener("message",r),this._evals.delete(e),i(t)})});return this._evals.set(e,t),t}_handleMessage(e){if(e){if(e._sFetchProp)return void this.manager.fetchClientValues(e._sFetchProp).then(t=>this.send({_sFetchProp:e._sFetchProp,_result:t}),t=>this.send({_sFetchProp:e._sFetchProp,_error:a(t)}));if(e._sEval)return void this.manager.broadcastEval(e._sEval).then(t=>this.send({_sEval:e._sEval,_result:t}),t=>this.send({_sEval:e._sEval,_error:a(t)}))}this.manager.emit("message",this,e)}}e.exports=o}).call(t,i(8))},function(e,t,i){(function(t){const r=i(135),n=i(136);class s{constructor(e){this.client=e,t.on("message",this._handleMessage.bind(this))}get id(){return this.client.options.shardId}get count(){return this.client.options.shardCount}send(e){return new Promise((i,r)=>{const n=t.send(e,e=>{e?r(e):i()});if(!n)throw new Error("Failed to send message to master process.")})}fetchClientValues(e){return new Promise((i,n)=>{const s=a=>{a&&a._sFetchProp===e&&(t.removeListener("message",s),a._error?n(r(a._error)):i(a._result))};t.on("message",s),this.send({_sFetchProp:e}).catch(e=>{t.removeListener("message",s),n(e)})})}broadcastEval(e){return new Promise((i,n)=>{const s=a=>{a&&a._sEval===e&&(t.removeListener("message",s),a._error?n(r(a._error)):i(a._result))};t.on("message",s),this.send({_sEval:e}).catch(e=>{t.removeListener("message",s),n(e)})})}_handleMessage(e){if(e)if(e._fetchProp){const t=e._fetchProp.split(".");let i=this.client;for(const r of t)i=i[r];this._respond("fetchProp",{_fetchProp:e._fetchProp,_result:i})}else if(e._eval)try{this._respond("eval",{_eval:e._eval,_result:this.client._eval(e._eval)})}catch(t){this._respond("eval",{_eval:e._eval,_error:n(t)})}}_respond(e,t){this.send(t).catch(t=>this.client.emit("error",`Error when sending ${e} response to master process: ${t}`))}static singleton(e){return this._singleton?e.emit("error","Multiple clients created in child process; only the first will handle sharding helpers."):this._singleton=new this(e),this._singleton}}e.exports=s}).call(t,i(8))},function(e,t,i){const r=i(14),n=i(76);class s extends n{setup(e){super.setup(e),this.flags=e.flags,this.owner=new r(this.client,e.owner)}}e.exports=s},function(e,t,i){const r=i(14),n=i(6);class s extends r{setup(e){super.setup(e),this.verified=e.verified,this.email=e.email,this.localPresence={},this._typing=new Map,this.friends=new n,this.blocked=new n,this.notes=new n}edit(e){return this.client.rest.methods.updateCurrentUser(e)}setUsername(e){return this.client.rest.methods.updateCurrentUser({username:e})}setEmail(e){return this.client.rest.methods.updateCurrentUser({email:e})}setPassword(e){return this.client.rest.methods.updateCurrentUser({password:e})}setAvatar(e){return e.startsWith("data:")?this.client.rest.methods.updateCurrentUser({avatar:e}):this.client.resolver.resolveBuffer(e).then(e=>this.client.rest.methods.updateCurrentUser({avatar:e}))}setStatus(e){return this.setPresence({status:e})}setGame(e,t){return this.setPresence({game:{name:e,url:t}})}setAFK(e){return this.setPresence({afk:e})}addFriend(e){return e=this.client.resolver.resolveUser(e),this.client.rest.methods.addFriend(e)}removeFriend(e){return e=this.client.resolver.resolveUser(e),this.client.rest.methods.removeFriend(e)}createGuild(e,t,i=null){return i?i.startsWith("data:")?this.client.rest.methods.createGuild({name:e,icon:i,region:t}):this.client.resolver.resolveBuffer(i).then(i=>this.client.rest.methods.createGuild({name:e,icon:i,region:t})):this.client.rest.methods.createGuild({name:e,icon:i,region:t})}setPresence(e){return new Promise(t=>{let i=this.localPresence.status||this.presence.status,r=this.localPresence.game,n=this.localPresence.afk||this.presence.afk;if(!r&&this.presence.game&&(r={name:this.presence.game.name,type:this.presence.game.type,url:this.presence.game.url}),e.status){if("string"!=typeof e.status)throw new TypeError("Status must be a string");i=e.status}e.game&&(r=e.game,r.url&&(r.type=1)),"undefined"!=typeof e.afk&&(n=e.afk),n=Boolean(n),this.localPresence={status:i,game:r,afk:n},this.localPresence.since=0,this.localPresence.game=this.localPresence.game||null,this.client.ws.send({op:3,d:this.localPresence}),this.client._setPresence(this.id,this.localPresence),t(this)})}}e.exports=s},function(e,t,i){const r=i(24),n=i(31),s=i(6);class a extends r{constructor(e,t){super(e,t),this.type="dm",this.messages=new s,this._typing=new Map}setup(e){super.setup(e),this.recipient=this.client.dataManager.newUser(e.recipients[0]),this.lastMessageID=e.last_message_id}toString(){return this.recipient.toString()}sendMessage(){}sendTTSMessage(){}sendFile(){}sendCode(){}fetchMessage(){}fetchMessages(){}fetchPinnedMessages(){}startTyping(){}stopTyping(){}get typing(){}get typingCount(){}createCollector(){}awaitMessages(){}bulkDelete(){}_cacheMessage(){}}n.applyToClass(a,!0),e.exports=a},function(e,t,i){const r=i(24),n=i(31),s=i(6),a=i(63);class o extends r{constructor(e,t){super(e,t),this.type="group",this.messages=new s,this._typing=new Map}setup(e){if(super.setup(e),this.name=e.name,this.icon=e.icon,this.ownerID=e.owner_id,this.recipients||(this.recipients=new s),e.recipients)for(const t of e.recipients){const e=this.client.dataManager.newUser(t);this.recipients.set(e.id,e)}this.lastMessageID=e.last_message_id}get owner(){return this.client.users.get(this.ownerID)}equals(e){const t=e&&this.id===e.id&&this.name===e.name&&this.icon===e.icon&&this.ownerID===e.ownerID;if(t){const t=this.recipients.keyArray(),i=e.recipients.keyArray();return a(t,i)}return t}toString(){return this.name}sendMessage(){}sendTTSMessage(){}sendFile(){}sendCode(){}fetchMessage(){}fetchMessages(){}fetchPinnedMessages(){}startTyping(){}stopTyping(){}get typing(){}get typingCount(){}createCollector(){}awaitMessages(){}bulkDelete(){}_cacheMessage(){}}n.applyToClass(o,!0),e.exports=o},function(e,t,i){const r=i(77),n=i(78),s=i(1);class a{constructor(e,t){this.client=e,Object.defineProperty(this,"client",{enumerable:!1,configurable:!1}),this.setup(t)}setup(e){this.guild=this.client.guilds.get(e.guild.id)||new r(this.client,e.guild),this.code=e.code,this.temporary=e.temporary,this.maxAge=e.max_age,this.uses=e.uses,this.maxUses=e.max_uses,e.inviter&&(this.inviter=this.client.dataManager.newUser(e.inviter)),this.channel=this.client.channels.get(e.channel.id)||new n(this.client,e.channel),this.createdTimestamp=new Date(e.created_at).getTime()}get createdAt(){return new Date(this.createdTimestamp)}get expiresTimestamp(){return this.createdTimestamp+1e3*this.maxAge}get expiresAt(){return new Date(this.expiresTimestamp)}get url(){return s.Endpoints.inviteLink(this.code)}delete(){return this.client.rest.methods.deleteInvite(this)}toString(){return this.url}}e.exports=a},function(e,t){class i{constructor(e,t){this.client=e.client,Object.defineProperty(this,"client",{enumerable:!1,configurable:!1}),this.message=e,this.setup(t)}setup(e){this.id=e.id,this.filename=e.filename,this.filesize=e.size,this.url=e.url,this.proxyURL=e.proxy_url,this.height=e.height,this.width=e.width}}e.exports=i},function(e,t,i){const r=i(5).EventEmitter,n=i(6);class s extends r{constructor(e,t,i={}){super(),this.channel=e,this.filter=t,this.options=i,this.ended=!1,this.collected=new n,this.listener=(e=>this.verify(e)),this.channel.client.on("message",this.listener),i.time&&this.channel.client.setTimeout(()=>this.stop("time"),i.time)}verify(e){return(!this.channel||this.channel.id===e.channel.id)&&(!!this.filter(e,this)&&(this.collected.set(e.id,e),this.emit("message",e,this),this.collected.size>=this.options.maxMatches?this.stop("matchesLimit"):this.options.max&&this.collected.size===this.options.max&&this.stop("limit"),!0))}get next(){return new Promise((e,t)=>{if(this.ended)return void t(this.collected);const i=()=>{this.removeListener("message",r),this.removeListener("end",n)},r=(...t)=>{i(),e(...t)},n=(...e)=>{i(),t(...e)};this.once("message",r),this.once("end",n)})}stop(e="user"){this.ended||(this.ended=!0,this.channel.client.removeListener("message",this.listener),this.emit("end",this.collected,e))}}e.exports=s},function(e,t){class i{constructor(e,t){this.client=e.client,Object.defineProperty(this,"client",{enumerable:!1,configurable:!1}),this.message=e,this.setup(t)}setup(e){if(this.title=e.title,this.type=e.type,this.description=e.description,this.url=e.url,this.fields=[],e.fields)for(const t of e.fields)this.fields.push(new a(this,t));this.createdTimestamp=e.timestamp,this.thumbnail=e.thumbnail?new r(this,e.thumbnail):null,this.author=e.author?new s(this,e.author):null,this.provider=e.provider?new n(this,e.provider):null,this.footer=e.footer?new o(this,e.footer):null}get createdAt(){return new Date(this.createdTimestamp)}}class r{constructor(e,t){this.embed=e,this.setup(t)}setup(e){this.url=e.url,this.proxyURL=e.proxy_url,this.height=e.height,this.width=e.width}}class n{constructor(e,t){this.embed=e,this.setup(t)}setup(e){this.name=e.name,this.url=e.url}}class s{constructor(e,t){this.embed=e,this.setup(t)}setup(e){this.name=e.name,this.url=e.url}}class a{constructor(e,t){this.embed=e,this.setup(t)}setup(e){this.name=e.name,this.value=e.value,this.inline=e.inline}}class o{constructor(e,t){this.embed=e,this.setup(t)}setup(e){this.text=e.text,this.iconUrl=e.icon_url,this.proxyIconUrl=e.proxy_icon_url}}i.Thumbnail=r,i.Provider=n,i.Author=s,i.Field=a,i.Footer=o,e.exports=i},function(e,t,i){const r=i(6),n=i(25),s=i(48);class a{constructor(e,t,i,n){this.message=e,this.me=n,this.count=i||0,this.users=new r,this._emoji=new s(this,t.name,t.id)}get emoji(){if(this._emoji instanceof n)return this._emoji;if(this._emoji.id){const e=this.message.client.emojis;if(e.has(this._emoji.id)){const t=e.get(this._emoji.id);return this._emoji=t,t}}return this._emoji}remove(e=this.message.client.user){const t=this.message;return e=this.message.client.resolver.resolveUserID(e),e?t.client.rest.methods.removeMessageReaction(t,this.emoji.identifier,e):Promise.reject("Couldn't resolve the user ID to remove from the reaction.")}fetchUsers(e=100){const t=this.message;return t.client.rest.methods.getMessageReactionUsers(t,this.emoji.identifier,e).then(e=>{this.users=new r;for(const t of e){const e=this.message.client.dataManager.newUser(t);this.users.set(e.id,e)}return this.count=this.users.size,e})}}e.exports=a},function(e,t){class i{constructor(e,t){this.client=e,Object.defineProperty(this,"client",{enumerable:!1,configurable:!1}),this.setup(t)}setup(e){this.id=e.id,this.name=e.name,this.description=e.description,this.icon=e.icon,this.iconURL=`https://cdn.discordapp.com/app-icons/${this.id}/${this.icon}.jpg`,this.rpcOrigins=e.rpc_origins}get createdTimestamp(){return this.id/4194304+14200704e5}get createdAt(){return new Date(this.createdTimestamp)}toString(){return this.name}}e.exports=i},function(e,t){class i{constructor(e,t){this.client=e,Object.defineProperty(this,"client",{enumerable:!1,configurable:!1}),this.setup(t)}setup(e){this.id=e.id,this.name=e.name,this.icon=e.icon,this.splash=e.splash}}e.exports=i},function(e,t,i){const r=i(1);class n{constructor(e,t){this.client=e,Object.defineProperty(this,"client",{enumerable:!1,configurable:!1}),this.setup(t)}setup(e){this.id=e.id,this.name=e.name,this.type=r.ChannelTypes.text===e.type?"text":"voice"}}e.exports=n},function(e,t){class i{constructor(e,t){this.channel=e,t&&this.setup(t)}setup(e){this.id=e.id,this.type=e.type,this.denyData=e.deny,this.allowData=e.allow}delete(){return this.channel.client.rest.methods.deletePermissionOverwrites(this)}}e.exports=i},function(e,t,i){const r=i(32),n=i(31),s=i(6);class a extends r{constructor(e,t){super(e,t),this.type="text",this.messages=new s,this._typing=new Map}setup(e){super.setup(e),this.topic=e.topic,this.lastMessageID=e.last_message_id}get members(){const e=new s;for(const t of this.guild.members.values())this.permissionsFor(t).hasPermission("READ_MESSAGES")&&e.set(t.id,t);return e}fetchWebhooks(){return this.client.rest.methods.getChannelWebhooks(this)}createWebhook(e,t){return new Promise(i=>{t.startsWith("data:")?i(this.client.rest.methods.createWebhook(this,e,t)):this.client.resolver.resolveBuffer(t).then(t=>i(this.client.rest.methods.createWebhook(this,e,t)))})}sendMessage(){}sendTTSMessage(){}sendFile(){}sendCode(){}fetchMessage(){}fetchMessages(){}fetchPinnedMessages(){}startTyping(){}stopTyping(){}get typing(){}get typingCount(){}createCollector(){}awaitMessages(){}bulkDelete(){}_cacheMessage(){}}n.applyToClass(a,!0),e.exports=a},function(e,t,i){const r=i(32),n=i(6);class s extends r{constructor(e,t){super(e,t),this.members=new n,this.type="voice"}setup(e){super.setup(e),this.bitrate=e.bitrate,this.userLimit=e.user_limit}get connection(){const e=this.guild.voiceConnection;return e&&e.channel.id===this.id?e:null}get joinable(){return this.permissionsFor(this.client.user).hasPermission("CONNECT")}get speakable(){return this.permissionsFor(this.client.user).hasPermission("SPEAK")}setBitrate(e){return this.edit({bitrate:e})}setUserLimit(e){return this.edit({userLimit:e})}join(){return this.client.voice.joinChannel(this)}leave(){const e=this.client.voice.connections.get(this.guild.id);e&&e.channel.id===this.id&&e.disconnect()}}e.exports=s},function(e,t,i){const r=i(60),n=i(1).Endpoints.botGateway;e.exports=function(e){return new Promise((t,i)=>{if(!e)throw new Error("A token must be provided.");r.get(n).set("Authorization",`Bot ${e.replace(/^Bot\s*/i,"")}`).end((e,r)=>{e&&i(e),t(r.body.shards)})})}},function(e,t){e.exports=function(e,{maxLength=1950,char="\n",prepend="",append=""}={}){if(e.length<=maxLength)return e;const t=e.split(char);if(1===t.length)throw new Error("Message exceeds the max length and contains no split characters.");const i=[""];let r=0;for(let n=0;nmaxLength&&(i[r]+=append,i.push(prepend),r++),i[r]+=(i[r].length>0&&i[r]!==prepend?char:"")+t[n];return i}},function(e,t,i){function r(e,t){return a.call(this,t),o.isBuffer(e)?(this.base=e,this.offset=0,void(this.length=e.length)):void this.error("Input not Buffer")}function n(e,t){if(Array.isArray(e))this.length=0,this.value=e.map(function(e){return e instanceof n||(e=new n(e,t)),this.length+=e.length,e},this);else if("number"==typeof e){if(!(0<=e&&e<=255))return t.error("non-byte EncoderBuffer value");this.value=e,this.length=1}else if("string"==typeof e)this.value=e,this.length=o.byteLength(e);else{if(!o.isBuffer(e))return t.error("Unsupported type: "+typeof e);this.value=e,this.length=e.length}}var s=i(2),a=i(26).Reporter,o=i(0).Buffer;s(r,a),t.DecoderBuffer=r,r.prototype.save=function(){return{offset:this.offset,reporter:a.prototype.save.call(this)}},r.prototype.restore=function(e){var t=new r(this.base);return t.offset=e.offset,t.length=this.offset,this.offset=e.offset,a.prototype.restore.call(this,e.reporter),t},r.prototype.isEmpty=function(){return this.offset===this.length},r.prototype.readUInt8=function(e){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(e||"DecoderBuffer overrun")},r.prototype.skip=function(e,t){if(!(this.offset+e<=this.length))return this.error(t||"DecoderBuffer overrun");var i=new r(this.base);return i._reporterState=this._reporterState,i.offset=this.offset,i.length=this.offset+e,this.offset+=e,i},r.prototype.raw=function(e){return this.base.slice(e?e.offset:this.offset,this.length)},t.EncoderBuffer=n,n.prototype.join=function(e,t){return e||(e=new o(this.length)),t||(t=0),0===this.length?e:(Array.isArray(this.value)?this.value.forEach(function(i){i.join(e,t),t+=i.length}):("number"==typeof this.value?e[t]=this.value:"string"==typeof this.value?e.write(this.value,t):o.isBuffer(this.value)&&this.value.copy(e,t),t+=this.length),e)}},function(e,t,i){var r=t;r._reverse=function(e){var t={};return Object.keys(e).forEach(function(i){(0|i)==i&&(i|=0);var r=e[i];t[r]=i}),t},r.der=i(144)},function(e,t,i){function r(e){this.enc="der",this.name=e.name,this.entity=e,this.tree=new n,this.tree._init(e.body)}function n(e){h.Node.call(this,"der",e)}function s(e,t){var i=e.readUInt8(t);if(e.isError(i))return i;var r=l.tagClass[i>>6],n=0===(32&i);if(31===(31&i)){var s=i;for(i=0;128===(128&s);){if(s=e.readUInt8(t),e.isError(s))return s;i<<=7,i|=127&s}}else i&=31;var a=l.tag[i];return{cls:r,primitive:n,tag:i,tagStr:a}}function a(e,t,i){var r=e.readUInt8(i);if(e.isError(r))return r;if(!t&&128===r)return null;if(0===(128&r))return r;var n=127&r;if(n>=4)return e.error("length octect is too long");r=0;for(var s=0;s=31?r.error("Multi-octet tag encoding unsupported"):(t||(n|=32),n|=l.tagClassByName[i||"universal"]<<6)}var o=i(2),f=i(0).Buffer,h=i(36),c=h.base,l=h.constants.der;e.exports=r,r.prototype.encode=function(e,t){return this.tree._encode(e,t).join()},o(n,c.Node),n.prototype._encodeComposite=function(e,t,i,r){var n=a(e,t,i,this.reporter);if(r.length<128){var s=new f(2);return s[0]=n,s[1]=r.length,this._createEncoderBuffer([s,r])}for(var o=1,h=r.length;h>=256;h>>=8)o++;var s=new f(2+o);s[0]=n,s[1]=128|o;for(var h=1+o,c=r.length;c>0;h--,c>>=8)s[h]=255&c;return this._createEncoderBuffer([s,r])},n.prototype._encodeStr=function(e,t){if("bitstr"===t)return this._createEncoderBuffer([0|e.unused,e.data]);if("bmpstr"===t){for(var i=new f(2*e.length),r=0;r=40)return this.reporter.error("Second objid identifier OOB");e.splice(0,2,40*e[0]+e[1])}for(var n=0,r=0;r=128;s>>=7)n++}for(var a=new f(n),o=a.length-1,r=e.length-1;r>=0;r--){var s=e[r];for(a[o--]=127&s;(s>>=7)>0;)a[o--]=128|127&s}return this._createEncoderBuffer(a)},n.prototype._encodeTime=function(e,t){var i,r=new Date(e);return"gentime"===t?i=[s(r.getFullYear()),s(r.getUTCMonth()+1),s(r.getUTCDate()),s(r.getUTCHours()),s(r.getUTCMinutes()),s(r.getUTCSeconds()),"Z"].join(""):"utctime"===t?i=[s(r.getFullYear()%100),s(r.getUTCMonth()+1),s(r.getUTCDate()),s(r.getUTCHours()),s(r.getUTCMinutes()),s(r.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+t+" time is not supported yet"),this._encodeStr(i,"octstr")},n.prototype._encodeNull=function(){return this._createEncoderBuffer("")},n.prototype._encodeInt=function(e,t){if("string"==typeof e){if(!t)return this.reporter.error("String int or enum given, but no values map");if(!t.hasOwnProperty(e))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(e));e=t[e]}if("number"!=typeof e&&!f.isBuffer(e)){var i=e.toArray();!e.sign&&128&i[0]&&i.unshift(0),e=new f(i)}if(f.isBuffer(e)){var r=e.length;0===e.length&&r++;var n=new f(r);return e.copy(n),0===e.length&&(n[0]=0),this._createEncoderBuffer(n)}if(e<128)return this._createEncoderBuffer(e);if(e<256)return this._createEncoderBuffer([0,e]);for(var r=1,s=e;s>=256;s>>=8)r++;for(var n=new Array(r),s=n.length-1;s>=0;s--)n[s]=255&e,e>>=8;return 128&n[0]&&n.unshift(0),this._createEncoderBuffer(new f(n))},n.prototype._encodeBool=function(e){return this._createEncoderBuffer(e?255:0)},n.prototype._use=function(e,t){return"function"==typeof e&&(e=e(t)),e._getEncoder("der").tree},n.prototype._skipDefault=function(e,t,i){var r,n=this._baseState;if(null===n.default)return!1;var s=e.join();if(void 0===n.defaultBuffer&&(n.defaultBuffer=this._encodeValue(n.default,t,i).join()),s.length!==n.defaultBuffer.length)return!1;for(r=0;r>o%8,e._prev=r(e._prev,i?s:a);return h}function r(t,i){var r=t.length,n=-1,s=new e(t.length);for(t=e.concat([t,new e([i])]);++n>7;return s}t.encrypt=function(t,r,n){for(var s=r.length,a=new e(s),o=-1;++ot.Z_MAX_CHUNK))throw new Error("Invalid chunk size: "+i.chunkSize);if(i.windowBits&&(i.windowBitst.Z_MAX_WINDOWBITS))throw new Error("Invalid windowBits: "+i.windowBits);if(i.level&&(i.levelt.Z_MAX_LEVEL))throw new Error("Invalid compression level: "+i.level);if(i.memLevel&&(i.memLevelt.Z_MAX_MEMLEVEL))throw new Error("Invalid memLevel: "+i.memLevel);if(i.strategy&&i.strategy!=t.Z_FILTERED&&i.strategy!=t.Z_HUFFMAN_ONLY&&i.strategy!=t.Z_RLE&&i.strategy!=t.Z_FIXED&&i.strategy!=t.Z_DEFAULT_STRATEGY)throw new Error("Invalid strategy: "+i.strategy);if(i.dictionary&&!e.isBuffer(i.dictionary))throw new Error("Invalid dictionary: it should be a Buffer instance");this._binding=new b.Zlib(r);var n=this;this._hadError=!1,this._binding.onerror=function(e,i){n._binding=null,n._hadError=!0;var r=new Error(e);r.errno=i,r.code=t.codes[i],n.emit("error",r)};var s=t.Z_DEFAULT_COMPRESSION;"number"==typeof i.level&&(s=i.level);var a=t.Z_DEFAULT_STRATEGY;"number"==typeof i.strategy&&(a=i.strategy),this._binding.init(i.windowBits||t.Z_DEFAULT_WINDOWBITS,s,i.memLevel||t.Z_DEFAULT_MEMLEVEL,a,i.dictionary),this._buffer=new e(this._chunkSize),this._offset=0,this._closed=!1,this._level=s,this._strategy=a,this.once("end",this.close)}var p=i(118),b=i(160),m=i(10),w=i(149).ok;b.Z_MIN_WINDOWBITS=8,b.Z_MAX_WINDOWBITS=15,b.Z_DEFAULT_WINDOWBITS=15,b.Z_MIN_CHUNK=64,b.Z_MAX_CHUNK=1/0,b.Z_DEFAULT_CHUNK=16384,b.Z_MIN_MEMLEVEL=1,b.Z_MAX_MEMLEVEL=9,b.Z_DEFAULT_MEMLEVEL=8,b.Z_MIN_LEVEL=-1,b.Z_MAX_LEVEL=9,b.Z_DEFAULT_LEVEL=b.Z_DEFAULT_COMPRESSION,Object.keys(b).forEach(function(e){e.match(/^Z/)&&(t[e]=b[e])}),t.codes={Z_OK:b.Z_OK,Z_STREAM_END:b.Z_STREAM_END,Z_NEED_DICT:b.Z_NEED_DICT,Z_ERRNO:b.Z_ERRNO,Z_STREAM_ERROR:b.Z_STREAM_ERROR,Z_DATA_ERROR:b.Z_DATA_ERROR,Z_MEM_ERROR:b.Z_MEM_ERROR,Z_BUF_ERROR:b.Z_BUF_ERROR,Z_VERSION_ERROR:b.Z_VERSION_ERROR},Object.keys(t.codes).forEach(function(e){t.codes[t.codes[e]]=e}),t.Deflate=a,t.Inflate=o,t.Gzip=f,t.Gunzip=h,t.DeflateRaw=c,t.InflateRaw=l,t.Unzip=u,t.createDeflate=function(e){return new a(e)},t.createInflate=function(e){return new o(e)},t.createDeflateRaw=function(e){return new c(e)},t.createInflateRaw=function(e){return new l(e)},t.createGzip=function(e){return new f(e)},t.createGunzip=function(e){return new h(e)},t.createUnzip=function(e){return new u(e)},t.deflate=function(e,t,i){return"function"==typeof t&&(i=t,t={}),n(new a(t),e,i)},t.deflateSync=function(e,t){return s(new a(t),e)},t.gzip=function(e,t,i){return"function"==typeof t&&(i=t,t={}),n(new f(t),e,i)},t.gzipSync=function(e,t){return s(new f(t),e)},t.deflateRaw=function(e,t,i){return"function"==typeof t&&(i=t,t={}),n(new c(t),e,i)},t.deflateRawSync=function(e,t){return s(new c(t),e)},t.unzip=function(e,t,i){return"function"==typeof t&&(i=t,t={}),n(new u(t),e,i)},t.unzipSync=function(e,t){return s(new u(t),e)},t.inflate=function(e,t,i){return"function"==typeof t&&(i=t,t={}),n(new o(t),e,i)},t.inflateSync=function(e,t){return s(new o(t),e)},t.gunzip=function(e,t,i){return"function"==typeof t&&(i=t,t={}),n(new h(t),e,i)},t.gunzipSync=function(e,t){return s(new h(t),e)},t.inflateRaw=function(e,t,i){return"function"==typeof t&&(i=t,t={}),n(new l(t),e,i)},t.inflateRawSync=function(e,t){return s(new l(t),e)},m.inherits(d,p),d.prototype.params=function(e,i,n){if(et.Z_MAX_LEVEL)throw new RangeError("Invalid compression level: "+e);if(i!=t.Z_FILTERED&&i!=t.Z_HUFFMAN_ONLY&&i!=t.Z_RLE&&i!=t.Z_FIXED&&i!=t.Z_DEFAULT_STRATEGY)throw new TypeError("Invalid strategy: "+i);if(this._level!==e||this._strategy!==i){var s=this;this.flush(b.Z_SYNC_FLUSH,function(){s._binding.params(e,i),s._hadError||(s._level=e,s._strategy=i,n&&n())})}else r.nextTick(n)},d.prototype.reset=function(){return this._binding.reset()},d.prototype._flush=function(t){this._transform(new e(0),"",t)},d.prototype.flush=function(t,i){var n=this._writableState;if(("function"==typeof t||void 0===t&&!i)&&(i=t,t=b.Z_FULL_FLUSH),n.ended)i&&r.nextTick(i);else if(n.ending)i&&this.once("end",i);else if(n.needDrain){var s=this;this.once("drain",function(){s.flush(i)})}else this._flushFlag=t,this.write(new e(0),"",i)},d.prototype.close=function(e){if(e&&r.nextTick(e),!this._closed){this._closed=!0,this._binding.close();var t=this;r.nextTick(function(){t.emit("close")})}},d.prototype._transform=function(t,i,r){var n,s=this._writableState,a=s.ending||s.ended,o=a&&(!t||s.length===t.length);if(null===!t&&!e.isBuffer(t))return r(new Error("invalid input"));o?n=b.Z_FINISH:(n=this._flushFlag,t.length>=s.length&&(this._flushFlag=this._opts.flush||b.Z_NO_FLUSH));this._processChunk(t,n,r)},d.prototype._processChunk=function(t,i,r){function n(c,d){if(!f._hadError){var p=a-d;if(w(p>=0,"have should not go down"),p>0){var b=f._buffer.slice(f._offset,f._offset+p);f._offset+=p,h?f.push(b):(l.push(b),u+=b.length)}if((0===d||f._offset>=f._chunkSize)&&(a=f._chunkSize,f._offset=0,f._buffer=new e(f._chunkSize)),0===d){if(o+=s-c,s=c,!h)return!0;var m=f._binding.write(i,t,o,s,f._buffer,f._offset,f._chunkSize);return m.callback=n,void(m.buffer=t)}return!!h&&void r()}}var s=t&&t.length,a=this._chunkSize-this._offset,o=0,f=this,h="function"==typeof r;if(!h){var c,l=[],u=0;this.on("error",function(e){c=e});do var d=this._binding.writeSync(i,t,o,s,this._buffer,this._offset,a);while(!this._hadError&&n(d[0],d[1]));if(this._hadError)throw c;var p=e.concat(l,u);return this.close(),p}var b=this._binding.write(i,t,o,s,this._buffer,this._offset,a);b.buffer=t,b.callback=n},m.inherits(a,d),m.inherits(o,d),m.inherits(f,d),m.inherits(h,d),m.inherits(c,d),m.inherits(l,d),m.inherits(u,d)}).call(t,i(0).Buffer,i(8))},function(e,t,i){"use strict";function r(e,t){e[t>>5]|=128<>>9<<4)+14]=t;for(var i=1732584193,r=-271733879,n=-1732584194,c=271733878,l=0;l>16)+(t>>16)+(i>>16);return r<<16|65535&i}function c(e,t){return e<>>32-t}var l=i(165);e.exports=function(e){return l.hash(e,r,16)}},function(e,t,i){(function(t){function r(){this.init(),this._w=d,l.call(this,64,56)}function n(e,t,i){return i^e&(t^i)}function s(e,t,i){return e&t|i&(e|t)}function a(e){return(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10)}function o(e){return(e>>>6|e<<26)^(e>>>11|e<<21)^(e>>>25|e<<7)}function f(e){return(e>>>7|e<<25)^(e>>>18|e<<14)^e>>>3}function h(e){return(e>>>17|e<<15)^(e>>>19|e<<13)^e>>>10}var c=i(2),l=i(23),u=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],d=new Array(64);c(r,l),r.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},r.prototype._update=function(e){for(var t=this._w,i=0|this._a,r=0|this._b,c=0|this._c,l=0|this._d,d=0|this._e,p=0|this._f,b=0|this._g,m=0|this._h,w=0;w<16;++w)t[w]=e.readInt32BE(4*w);for(;w<64;++w)t[w]=h(t[w-2])+t[w-7]+f(t[w-15])+t[w-16]|0;for(var g=0;g<64;++g){var v=m+o(d)+n(d,p,b)+u[g]+t[g]|0,_=a(i)+s(i,r,c)|0;m=b,b=p,p=d,d=l+v|0,l=c,c=r,r=i,i=v+_|0}this._a=i+this._a|0,this._b=r+this._b|0,this._c=c+this._c|0,this._d=l+this._d|0,this._e=d+this._e|0,this._f=p+this._f|0,this._g=b+this._g|0,this._h=m+this._h|0},r.prototype._hash=function(){var e=new t(32);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e.writeInt32BE(this._h,28),e},e.exports=r}).call(t,i(0).Buffer)},function(e,t,i){(function(t){function r(){this.init(),this._w=m,p.call(this,128,112)}function n(e,t,i){return i^e&(t^i)}function s(e,t,i){return e&t|i&(e|t)}function a(e,t){return(e>>>28|t<<4)^(t>>>2|e<<30)^(t>>>7|e<<25)}function o(e,t){return(e>>>14|t<<18)^(e>>>18|t<<14)^(t>>>9|e<<23)}function f(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^e>>>7}function h(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^(e>>>7|t<<25)}function c(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^e>>>6}function l(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^(e>>>6|t<<26)}function u(e,t){return e>>>0>>0?1:0}var d=i(2),p=i(23),b=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],m=new Array(160);d(r,p),r.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},r.prototype._update=function(e){for(var t=this._w,i=0|this._ah,r=0|this._bh,d=0|this._ch,p=0|this._dh,m=0|this._eh,w=0|this._fh,g=0|this._gh,v=0|this._hh,_=0|this._al,y=0|this._bl,k=0|this._cl,E=0|this._dl,A=0|this._el,S=0|this._fl,M=0|this._gl,T=0|this._hl,x=0;x<32;x+=2)t[x]=e.readInt32BE(4*x),t[x+1]=e.readInt32BE(4*x+4);for(;x<160;x+=2){var R=t[x-30],I=t[x-30+1],C=f(R,I),P=h(I,R);R=t[x-4],I=t[x-4+1];var O=c(R,I),N=l(I,R),D=t[x-14],L=t[x-14+1],B=t[x-32],U=t[x-32+1],j=P+L|0,F=C+D+u(j,P)|0;j=j+N|0,F=F+O+u(j,N)|0,j=j+U|0,F=F+B+u(j,U)|0,t[x]=F,t[x+1]=j}for(var z=0;z<160;z+=2){F=t[z],j=t[z+1];var q=s(i,r,d),H=s(_,y,k),G=a(i,_),V=a(_,i),W=o(m,A),K=o(A,m),Y=b[z],Z=b[z+1],$=n(m,w,g),X=n(A,S,M),J=T+K|0,Q=v+W+u(J,T)|0;J=J+X|0,Q=Q+$+u(J,X)|0,J=J+Z|0,Q=Q+Y+u(J,Z)|0,J=J+j|0,Q=Q+F+u(J,j)|0;var ee=V+H|0,te=G+q+u(ee,V)|0;v=g,T=M,g=w,M=S,w=m,S=A,A=E+J|0,m=p+Q+u(A,E)|0,p=d,E=k,d=r,k=y,r=i,y=_,_=J+ee|0,i=Q+te+u(_,J)|0}this._al=this._al+_|0,this._bl=this._bl+y|0,this._cl=this._cl+k|0,this._dl=this._dl+E|0,this._el=this._el+A|0,this._fl=this._fl+S|0,this._gl=this._gl+M|0,this._hl=this._hl+T|0,this._ah=this._ah+i+u(this._al,_)|0,this._bh=this._bh+r+u(this._bl,y)|0,this._ch=this._ch+d+u(this._cl,k)|0,this._dh=this._dh+p+u(this._dl,E)|0,this._eh=this._eh+m+u(this._el,A)|0,this._fh=this._fh+w+u(this._fl,S)|0,this._gh=this._gh+g+u(this._gl,M)|0,this._hh=this._hh+v+u(this._hl,T)|0},r.prototype._hash=function(){function e(e,t,r){i.writeInt32BE(e,r),i.writeInt32BE(t,r+4)}var i=new t(64);return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),e(this._gh,this._gl,48),e(this._hh,this._hl,56),i},e.exports=r}).call(t,i(0).Buffer)},function(e,t,i){function r(){if(null!==v)return v;var e=1048576,t=[];t[0]=2;for(var i=1,r=3;re;)i.ishrn(1);if(i.isEven()&&i.iadd(u),i.testn(1)||i.iadd(d),t.cmp(d)){if(!t.cmp(p))for(;i.mod(b).cmp(m);)i.iadd(g)}else for(;i.mod(h).cmp(w);)i.iadd(g);if(r=i.shrn(1),n(r)&&n(i)&&s(r)&&s(i)&&l.test(r)&&l.test(i))return i}}var o=i(30);e.exports=a,a.simpleSieve=n,a.fermatTest=s;var f=i(7),h=new f(24),c=i(107),l=new c,u=new f(1),d=new f(2),p=new f(5),b=(new f(16),new f(8),new f(10)),m=new f(3),w=(new f(7),new f(11)),g=new f(4),v=(new f(12),null)},function(e,t){var i={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==i.call(e)}},function(e,t,i){function r(e){this.rand=e||new s.Rand}var n=i(7),s=i(90);e.exports=r,r.create=function(e){return new r(e)},r.prototype._rand=function(e){var t=e.bitLength(),i=this.rand.generate(Math.ceil(t/8));i[0]|=3;var r=7&t;return 0!==r&&(i[i.length-1]>>=7-r),new n(i)},r.prototype.test=function(e,t,i){var r=e.bitLength(),s=n.mont(e),a=new n(1).toRed(s);t||(t=Math.max(1,r/48|0));for(var o=e.subn(1),f=o.subn(1),h=0;!o.testn(h);h++);for(var c=e.shrn(h),l=o.toRed(s),u=!0;t>0;t--){var d=this._rand(f);i&&i(d);var p=d.toRed(s).redPow(c);if(0!==p.cmp(a)&&0!==p.cmp(l)){for(var b=1;b0;t--){var l=this._rand(o),u=e.gcd(l);if(0!==u.cmpn(1))return u;var d=l.toRed(r).redPow(h);if(0!==d.cmp(s)&&0!==d.cmp(c)){for(var p=1;p0)throw r.length>1?new Error("options "+r.slice(0,r.length-1).join(", ")+" and "+r[r.length-1]+" must be defined"):new Error("option "+r[0]+" must be defined")}return Object.keys(e).forEach(function(i){i in t&&(t[i]=e[i])}),this},this.copy=function(t){var r={};return Object.keys(e).forEach(function(e){t.indexOf(e)!==-1&&(r[e]=i[e])}),r},this.read=function(e,t){if("function"==typeof t){var i=this;n.readFile(e,function(e,r){if(e)return t(e);var n=JSON.parse(r);i.merge(n),t()})}else{var r=JSON.parse(n.readFileSync(e));this.merge(r)}return this},this.isDefined=function(e){return"undefined"!=typeof i[e]},this.isDefinedAndNonNull=function(e){return"undefined"!=typeof i[e]&&null!==i[e]},Object.freeze(i),Object.freeze(this)}/*! * Copyright(c) 2011 Einar Otto Stangvik * MIT Licensed */ -var n=i(10);e.exports=r},function(e,t){"use strict";function i(e,t,i,r){for(var n=65535&e|0,s=e>>>16&65535|0,a=0;0!==i;){a=i>2e3?2e3:i,i-=a;do n=n+t[r++]|0,s=s+n|0;while(--a);n%=65521,s%=65521}return n|s<<16|0}e.exports=i},function(e,t){"use strict";function i(){for(var e,t=[],i=0;i<256;i++){e=i;for(var r=0;r<8;r++)e=1&e?3988292384^e>>>1:e>>>1;t[i]=e}return t}function r(e,t,i,r){var s=n,a=r+i;e^=-1;for(var o=r;o>>8^s[255&(e^t[o])];return e^-1}var n=i();e.exports=r},function(e,t){"use strict";e.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},function(e,t,i){(function(e,r){var n=i(50),s=i(214);t.pbkdf2=function(e,i,r,n,a,o){if("function"==typeof a&&(o=a,a=void 0),s(r,n),"function"!=typeof o)throw new Error("No callback provided to pbkdf2");setTimeout(function(){o(null,t.pbkdf2Sync(e,i,r,n,a))})};var a;if(e.browser)a="utf-8";else{var o=parseInt(e.version.split(".")[0].slice(1),10);a=o>=6?"utf-8":"binary"}t.pbkdf2Sync=function(e,t,i,o,f){r.isBuffer(e)||(e=new r(e,a)),r.isBuffer(t)||(t=new r(t,a)),s(i,o),f=f||"sha1";var h,c=1,l=new r(o),u=new r(t.length+4);t.copy(u,0,0,t.length);for(var d,p,b=1;b<=c;b++){u.writeUInt32BE(b,t.length);var m=n(f,e).update(u).digest();h||(h=m.length,p=new r(h),c=Math.ceil(o/h),d=o-(c-1)*h),m.copy(p,0,0,h);for(var w=1;w0)if(t.ended&&!n){var a=new Error("stream.push() after EOF");e.emit("error",a)}else if(t.endEmitted&&n){var f=new Error("stream.unshift() after end event");e.emit("error",f)}else{var h;!t.decoder||n||r||(i=t.decoder.write(i),h=!t.objectMode&&0===i.length),n||(t.reading=!1),h||(t.flowing&&0===t.length&&!t.sync?(e.emit("data",i),e.read(0)):(t.length+=t.objectMode?1:i.length,n?t.buffer.unshift(i):t.buffer.push(i),t.needReadable&&u(e))),p(e,t)}else n||(t.reading=!1);return o(t)}function o(e){return!e.ended&&(e.needReadable||e.length=z?e=z:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function h(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!==e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=f(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function c(e,t){var i=null;return O.isBuffer(t)||"string"==typeof t||null===t||void 0===t||e.objectMode||(i=new TypeError("Invalid non-string/buffer chunk")),i}function l(e,t){if(!t.ended){if(t.decoder){var i=t.decoder.end();i&&i.length&&(t.buffer.push(i),t.length+=t.objectMode?1:i.length)}t.ended=!0,u(e)}}function u(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(B("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?x(d,e):d(e))}function d(e){B("emit readable"),e.emit("readable"),_(e)}function p(e,t){t.readingMore||(t.readingMore=!0,x(b,e,t))}function b(e,t){for(var i=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(i=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):i=k(e,t.buffer,t.decoder),i}function k(e,t,i){var r;return es.length?s.length:e;if(n+=a===s.length?s:s.slice(0,e),e-=a,0===e){a===s.length?(++r,i.next?t.head=i.next:t.head=t.tail=null):(t.head=i,i.data=s.slice(a));break}++r}return t.length-=r,n}function A(e,t){var i=N.allocUnsafe(e),r=t.head,n=1;for(r.data.copy(i),e-=r.data.length;r=r.next;){var s=r.data,a=e>s.length?s.length:e;if(s.copy(i,i.length-e,0,a),e-=a,0===e){a===s.length?(++n,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=s.slice(a));break}++n}return t.length-=n,i}function S(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,x(M,t,e))}function M(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function T(e,t){for(var i=0,r=e.length;i=t.highWaterMark||t.ended))return B("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?S(this):u(this),null;if(e=h(e,t),0===e&&t.ended)return 0===t.length&&S(this),null;var r=t.needReadable;B("need readable",r),(0===t.length||t.length-e0?y(e,t):null,null===n?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),i!==e&&t.ended&&S(this)),null!==n&&this.emit("data",n),n},s.prototype._read=function(e){this.emit("error",new Error("not implemented"))},s.prototype.pipe=function(e,i){function n(e){B("onunpipe"),e===u&&a()}function s(){B("onend"),e.end()}function a(){B("cleanup"),e.removeListener("close",h),e.removeListener("finish",c),e.removeListener("drain",w),e.removeListener("error",f),e.removeListener("unpipe",n),u.removeListener("end",s),u.removeListener("end",a),u.removeListener("data",o),g=!0,!d.awaitDrain||e._writableState&&!e._writableState.needDrain||w()}function o(t){B("ondata"),v=!1;var i=e.write(t);!1!==i||v||((1===d.pipesCount&&d.pipes===e||d.pipesCount>1&&R(d.pipes,e)!==-1)&&!g&&(B("false write response, pause",u._readableState.awaitDrain),u._readableState.awaitDrain++,v=!0),u.pause())}function f(t){B("onerror",t),l(),e.removeListener("error",f),0===P(e,"error")&&e.emit("error",t)}function h(){e.removeListener("finish",c),l()}function c(){B("onfinish"),e.removeListener("close",h),l()}function l(){B("unpipe"),u.unpipe(e)}var u=this,d=this._readableState;switch(d.pipesCount){case 0:d.pipes=e;break;case 1:d.pipes=[d.pipes,e];break;default:d.pipes.push(e)}d.pipesCount+=1,B("pipe count=%d opts=%j",d.pipesCount,i);var p=(!i||i.end!==!1)&&e!==t.stdout&&e!==t.stderr,b=p?s:a;d.endEmitted?x(b):u.once("end",b),e.on("unpipe",n);var w=m(u);e.on("drain",w);var g=!1,v=!1;return u.on("data",o),r(e,"error",f),e.once("close",h),e.once("finish",c),e.emit("pipe",u),d.flowing||(B("pipe resume"),u.resume()),e},s.prototype.unpipe=function(e){var t=this._readableState;if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this),this);if(!e){var i=t.pipes,r=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var n=0;n>24&255,e[t+1]=i>>16&255,e[t+2]=i>>8&255,e[t+3]=255&i,e[t+4]=r>>24&255,e[t+5]=r>>16&255,e[t+6]=r>>8&255,e[t+7]=255&r}function r(e,t,i,r,n){var s,a=0;for(s=0;s>>8)-1}function n(e,t,i,n){return r(e,t,i,n,16)}function s(e,t,i,n){return r(e,t,i,n,32)}function a(e,t,i,r){for(var n,s=255&r[0]|(255&r[1])<<8|(255&r[2])<<16|(255&r[3])<<24,a=255&i[0]|(255&i[1])<<8|(255&i[2])<<16|(255&i[3])<<24,o=255&i[4]|(255&i[5])<<8|(255&i[6])<<16|(255&i[7])<<24,f=255&i[8]|(255&i[9])<<8|(255&i[10])<<16|(255&i[11])<<24,h=255&i[12]|(255&i[13])<<8|(255&i[14])<<16|(255&i[15])<<24,c=255&r[4]|(255&r[5])<<8|(255&r[6])<<16|(255&r[7])<<24,l=255&t[0]|(255&t[1])<<8|(255&t[2])<<16|(255&t[3])<<24,u=255&t[4]|(255&t[5])<<8|(255&t[6])<<16|(255&t[7])<<24,d=255&t[8]|(255&t[9])<<8|(255&t[10])<<16|(255&t[11])<<24,p=255&t[12]|(255&t[13])<<8|(255&t[14])<<16|(255&t[15])<<24,b=255&r[8]|(255&r[9])<<8|(255&r[10])<<16|(255&r[11])<<24,m=255&i[16]|(255&i[17])<<8|(255&i[18])<<16|(255&i[19])<<24,w=255&i[20]|(255&i[21])<<8|(255&i[22])<<16|(255&i[23])<<24,g=255&i[24]|(255&i[25])<<8|(255&i[26])<<16|(255&i[27])<<24,v=255&i[28]|(255&i[29])<<8|(255&i[30])<<16|(255&i[31])<<24,_=255&r[12]|(255&r[13])<<8|(255&r[14])<<16|(255&r[15])<<24,y=s,k=a,E=o,A=f,S=h,M=c,T=l,R=u,x=d,C=p,I=b,P=m,O=w,N=g,D=v,L=_,B=0;B<20;B+=2)n=y+O|0,S^=n<<7|n>>>25,n=S+y|0,x^=n<<9|n>>>23,n=x+S|0,O^=n<<13|n>>>19,n=O+x|0,y^=n<<18|n>>>14,n=M+k|0,C^=n<<7|n>>>25,n=C+M|0,N^=n<<9|n>>>23,n=N+C|0,k^=n<<13|n>>>19,n=k+N|0,M^=n<<18|n>>>14,n=I+T|0,D^=n<<7|n>>>25,n=D+I|0,E^=n<<9|n>>>23,n=E+D|0,T^=n<<13|n>>>19,n=T+E|0,I^=n<<18|n>>>14,n=L+P|0,A^=n<<7|n>>>25,n=A+L|0,R^=n<<9|n>>>23,n=R+A|0,P^=n<<13|n>>>19,n=P+R|0,L^=n<<18|n>>>14,n=y+A|0,k^=n<<7|n>>>25,n=k+y|0,E^=n<<9|n>>>23,n=E+k|0,A^=n<<13|n>>>19,n=A+E|0,y^=n<<18|n>>>14,n=M+S|0,T^=n<<7|n>>>25,n=T+M|0,R^=n<<9|n>>>23,n=R+T|0,S^=n<<13|n>>>19,n=S+R|0,M^=n<<18|n>>>14,n=I+C|0,P^=n<<7|n>>>25,n=P+I|0,x^=n<<9|n>>>23,n=x+P|0,C^=n<<13|n>>>19,n=C+x|0,I^=n<<18|n>>>14,n=L+D|0,O^=n<<7|n>>>25,n=O+L|0,N^=n<<9|n>>>23,n=N+O|0,D^=n<<13|n>>>19,n=D+N|0,L^=n<<18|n>>>14;y=y+s|0,k=k+a|0,E=E+o|0,A=A+f|0,S=S+h|0,M=M+c|0,T=T+l|0,R=R+u|0,x=x+d|0,C=C+p|0,I=I+b|0,P=P+m|0,O=O+w|0,N=N+g|0,D=D+v|0,L=L+_|0,e[0]=y>>>0&255,e[1]=y>>>8&255,e[2]=y>>>16&255,e[3]=y>>>24&255,e[4]=k>>>0&255,e[5]=k>>>8&255,e[6]=k>>>16&255,e[7]=k>>>24&255,e[8]=E>>>0&255,e[9]=E>>>8&255,e[10]=E>>>16&255,e[11]=E>>>24&255,e[12]=A>>>0&255,e[13]=A>>>8&255,e[14]=A>>>16&255,e[15]=A>>>24&255,e[16]=S>>>0&255,e[17]=S>>>8&255,e[18]=S>>>16&255,e[19]=S>>>24&255,e[20]=M>>>0&255,e[21]=M>>>8&255,e[22]=M>>>16&255,e[23]=M>>>24&255,e[24]=T>>>0&255,e[25]=T>>>8&255,e[26]=T>>>16&255,e[27]=T>>>24&255,e[28]=R>>>0&255,e[29]=R>>>8&255,e[30]=R>>>16&255,e[31]=R>>>24&255,e[32]=x>>>0&255,e[33]=x>>>8&255,e[34]=x>>>16&255,e[35]=x>>>24&255,e[36]=C>>>0&255,e[37]=C>>>8&255,e[38]=C>>>16&255,e[39]=C>>>24&255,e[40]=I>>>0&255,e[41]=I>>>8&255,e[42]=I>>>16&255,e[43]=I>>>24&255,e[44]=P>>>0&255,e[45]=P>>>8&255,e[46]=P>>>16&255,e[47]=P>>>24&255,e[48]=O>>>0&255,e[49]=O>>>8&255,e[50]=O>>>16&255,e[51]=O>>>24&255,e[52]=N>>>0&255,e[53]=N>>>8&255,e[54]=N>>>16&255,e[55]=N>>>24&255,e[56]=D>>>0&255,e[57]=D>>>8&255,e[58]=D>>>16&255,e[59]=D>>>24&255,e[60]=L>>>0&255,e[61]=L>>>8&255,e[62]=L>>>16&255,e[63]=L>>>24&255}function o(e,t,i,r){for(var n,s=255&r[0]|(255&r[1])<<8|(255&r[2])<<16|(255&r[3])<<24,a=255&i[0]|(255&i[1])<<8|(255&i[2])<<16|(255&i[3])<<24,o=255&i[4]|(255&i[5])<<8|(255&i[6])<<16|(255&i[7])<<24,f=255&i[8]|(255&i[9])<<8|(255&i[10])<<16|(255&i[11])<<24,h=255&i[12]|(255&i[13])<<8|(255&i[14])<<16|(255&i[15])<<24,c=255&r[4]|(255&r[5])<<8|(255&r[6])<<16|(255&r[7])<<24,l=255&t[0]|(255&t[1])<<8|(255&t[2])<<16|(255&t[3])<<24,u=255&t[4]|(255&t[5])<<8|(255&t[6])<<16|(255&t[7])<<24,d=255&t[8]|(255&t[9])<<8|(255&t[10])<<16|(255&t[11])<<24,p=255&t[12]|(255&t[13])<<8|(255&t[14])<<16|(255&t[15])<<24,b=255&r[8]|(255&r[9])<<8|(255&r[10])<<16|(255&r[11])<<24,m=255&i[16]|(255&i[17])<<8|(255&i[18])<<16|(255&i[19])<<24,w=255&i[20]|(255&i[21])<<8|(255&i[22])<<16|(255&i[23])<<24,g=255&i[24]|(255&i[25])<<8|(255&i[26])<<16|(255&i[27])<<24,v=255&i[28]|(255&i[29])<<8|(255&i[30])<<16|(255&i[31])<<24,_=255&r[12]|(255&r[13])<<8|(255&r[14])<<16|(255&r[15])<<24,y=s,k=a,E=o,A=f,S=h,M=c,T=l,R=u,x=d,C=p,I=b,P=m,O=w,N=g,D=v,L=_,B=0;B<20;B+=2)n=y+O|0,S^=n<<7|n>>>25,n=S+y|0,x^=n<<9|n>>>23,n=x+S|0,O^=n<<13|n>>>19,n=O+x|0,y^=n<<18|n>>>14,n=M+k|0,C^=n<<7|n>>>25,n=C+M|0,N^=n<<9|n>>>23,n=N+C|0,k^=n<<13|n>>>19,n=k+N|0,M^=n<<18|n>>>14,n=I+T|0,D^=n<<7|n>>>25,n=D+I|0,E^=n<<9|n>>>23,n=E+D|0,T^=n<<13|n>>>19,n=T+E|0,I^=n<<18|n>>>14,n=L+P|0,A^=n<<7|n>>>25,n=A+L|0,R^=n<<9|n>>>23,n=R+A|0,P^=n<<13|n>>>19,n=P+R|0,L^=n<<18|n>>>14,n=y+A|0,k^=n<<7|n>>>25,n=k+y|0,E^=n<<9|n>>>23,n=E+k|0,A^=n<<13|n>>>19,n=A+E|0,y^=n<<18|n>>>14,n=M+S|0,T^=n<<7|n>>>25,n=T+M|0,R^=n<<9|n>>>23,n=R+T|0,S^=n<<13|n>>>19,n=S+R|0,M^=n<<18|n>>>14,n=I+C|0,P^=n<<7|n>>>25,n=P+I|0,x^=n<<9|n>>>23,n=x+P|0,C^=n<<13|n>>>19,n=C+x|0,I^=n<<18|n>>>14,n=L+D|0,O^=n<<7|n>>>25,n=O+L|0,N^=n<<9|n>>>23,n=N+O|0,D^=n<<13|n>>>19,n=D+N|0,L^=n<<18|n>>>14;e[0]=y>>>0&255,e[1]=y>>>8&255,e[2]=y>>>16&255,e[3]=y>>>24&255,e[4]=M>>>0&255,e[5]=M>>>8&255,e[6]=M>>>16&255,e[7]=M>>>24&255,e[8]=I>>>0&255,e[9]=I>>>8&255,e[10]=I>>>16&255,e[11]=I>>>24&255,e[12]=L>>>0&255,e[13]=L>>>8&255,e[14]=L>>>16&255,e[15]=L>>>24&255,e[16]=T>>>0&255,e[17]=T>>>8&255,e[18]=T>>>16&255,e[19]=T>>>24&255,e[20]=R>>>0&255,e[21]=R>>>8&255,e[22]=R>>>16&255,e[23]=R>>>24&255,e[24]=x>>>0&255,e[25]=x>>>8&255,e[26]=x>>>16&255,e[27]=x>>>24&255,e[28]=C>>>0&255,e[29]=C>>>8&255,e[30]=C>>>16&255,e[31]=C>>>24&255}function f(e,t,i,r){a(e,t,i,r)}function h(e,t,i,r){o(e,t,i,r)}function c(e,t,i,r,n,s,a){var o,h,c=new Uint8Array(16),l=new Uint8Array(64);for(h=0;h<16;h++)c[h]=0;for(h=0;h<8;h++)c[h]=s[h];for(;n>=64;){for(f(l,c,a,ue),h=0;h<64;h++)e[t+h]=i[r+h]^l[h];for(o=1,h=8;h<16;h++)o=o+(255&c[h])|0,c[h]=255&o,o>>>=8;n-=64,t+=64,r+=64}if(n>0)for(f(l,c,a,ue),h=0;h=64;){for(f(h,o,n,ue),a=0;a<64;a++)e[t+a]=h[a];for(s=1,a=8;a<16;a++)s=s+(255&o[a])|0,o[a]=255&s,s>>>=8;i-=64,t+=64}if(i>0)for(f(h,o,n,ue),a=0;a>16&1),s[i-1]&=65535;s[15]=a[15]-32767-(s[14]>>16&1),n=s[15]>>16&1,s[14]&=65535,_(a,s,1-n)}for(i=0;i<16;i++)e[2*i]=255&a[i],e[2*i+1]=a[i]>>8}function k(e,t){var i=new Uint8Array(32),r=new Uint8Array(32);return y(i,e),y(r,t),s(i,0,r,0)}function E(e){var t=new Uint8Array(32);return y(t,e),1&t[0]}function A(e,t){var i;for(i=0;i<16;i++)e[i]=t[2*i]+(t[2*i+1]<<8);e[15]&=32767}function S(e,t,i){for(var r=0;r<16;r++)e[r]=t[r]+i[r]}function M(e,t,i){for(var r=0;r<16;r++)e[r]=t[r]-i[r]}function T(e,t,i){var r,n,s=0,a=0,o=0,f=0,h=0,c=0,l=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0,I=0,P=0,O=0,N=0,D=0,L=i[0],B=i[1],U=i[2],j=i[3],F=i[4],z=i[5],q=i[6],H=i[7],G=i[8],V=i[9],W=i[10],K=i[11],Z=i[12],Y=i[13],$=i[14],X=i[15];r=t[0],s+=r*L,a+=r*B,o+=r*U,f+=r*j,h+=r*F,c+=r*z,l+=r*q,u+=r*H,d+=r*G,p+=r*V,b+=r*W,m+=r*K,w+=r*Z,g+=r*Y,v+=r*$,_+=r*X,r=t[1],a+=r*L,o+=r*B,f+=r*U,h+=r*j,c+=r*F,l+=r*z,u+=r*q,d+=r*H,p+=r*G,b+=r*V,m+=r*W,w+=r*K,g+=r*Z,v+=r*Y,_+=r*$,y+=r*X,r=t[2],o+=r*L,f+=r*B,h+=r*U,c+=r*j,l+=r*F,u+=r*z,d+=r*q,p+=r*H,b+=r*G,m+=r*V,w+=r*W,g+=r*K,v+=r*Z,_+=r*Y,y+=r*$,k+=r*X,r=t[3],f+=r*L,h+=r*B,c+=r*U,l+=r*j,u+=r*F,d+=r*z,p+=r*q,b+=r*H,m+=r*G,w+=r*V,g+=r*W,v+=r*K,_+=r*Z,y+=r*Y,k+=r*$,E+=r*X,r=t[4],h+=r*L,c+=r*B,l+=r*U,u+=r*j,d+=r*F,p+=r*z,b+=r*q,m+=r*H,w+=r*G,g+=r*V,v+=r*W,_+=r*K,y+=r*Z,k+=r*Y,E+=r*$,A+=r*X,r=t[5],c+=r*L,l+=r*B,u+=r*U,d+=r*j,p+=r*F,b+=r*z,m+=r*q,w+=r*H,g+=r*G,v+=r*V,_+=r*W,y+=r*K,k+=r*Z,E+=r*Y,A+=r*$,S+=r*X,r=t[6],l+=r*L,u+=r*B,d+=r*U,p+=r*j,b+=r*F,m+=r*z,w+=r*q,g+=r*H,v+=r*G,_+=r*V,y+=r*W,k+=r*K,E+=r*Z,A+=r*Y,S+=r*$,M+=r*X,r=t[7],u+=r*L,d+=r*B,p+=r*U,b+=r*j,m+=r*F,w+=r*z,g+=r*q,v+=r*H,_+=r*G,y+=r*V,k+=r*W,E+=r*K,A+=r*Z,S+=r*Y,M+=r*$,T+=r*X,r=t[8],d+=r*L,p+=r*B,b+=r*U,m+=r*j,w+=r*F,g+=r*z,v+=r*q,_+=r*H,y+=r*G,k+=r*V,E+=r*W,A+=r*K,S+=r*Z,M+=r*Y,T+=r*$,R+=r*X,r=t[9],p+=r*L,b+=r*B,m+=r*U,w+=r*j,g+=r*F,v+=r*z,_+=r*q,y+=r*H,k+=r*G,E+=r*V,A+=r*W,S+=r*K,M+=r*Z,T+=r*Y,R+=r*$,x+=r*X,r=t[10],b+=r*L,m+=r*B,w+=r*U,g+=r*j,v+=r*F,_+=r*z,y+=r*q,k+=r*H,E+=r*G,A+=r*V,S+=r*W,M+=r*K,T+=r*Z,R+=r*Y,x+=r*$,C+=r*X,r=t[11],m+=r*L,w+=r*B,g+=r*U,v+=r*j,_+=r*F,y+=r*z,k+=r*q,E+=r*H,A+=r*G,S+=r*V,M+=r*W,T+=r*K;R+=r*Z;x+=r*Y,C+=r*$,I+=r*X,r=t[12],w+=r*L,g+=r*B,v+=r*U,_+=r*j,y+=r*F,k+=r*z,E+=r*q,A+=r*H,S+=r*G,M+=r*V,T+=r*W,R+=r*K,x+=r*Z,C+=r*Y,I+=r*$,P+=r*X,r=t[13],g+=r*L,v+=r*B,_+=r*U,y+=r*j,k+=r*F,E+=r*z,A+=r*q,S+=r*H,M+=r*G,T+=r*V,R+=r*W,x+=r*K,C+=r*Z,I+=r*Y,P+=r*$,O+=r*X,r=t[14],v+=r*L,_+=r*B,y+=r*U,k+=r*j,E+=r*F,A+=r*z,S+=r*q,M+=r*H,T+=r*G,R+=r*V,x+=r*W,C+=r*K,I+=r*Z,P+=r*Y,O+=r*$,N+=r*X,r=t[15],_+=r*L,y+=r*B,k+=r*U,E+=r*j,A+=r*F,S+=r*z,M+=r*q,T+=r*H,R+=r*G,x+=r*V,C+=r*W,I+=r*K,P+=r*Z,O+=r*Y,N+=r*$,D+=r*X,s+=38*y,a+=38*k,o+=38*E,f+=38*A,h+=38*S,c+=38*M,l+=38*T,u+=38*R,d+=38*x,p+=38*C,b+=38*I,m+=38*P,w+=38*O,g+=38*N,v+=38*D,n=1,r=s+n+65535,n=Math.floor(r/65536),s=r-65536*n,r=a+n+65535,n=Math.floor(r/65536),a=r-65536*n,r=o+n+65535,n=Math.floor(r/65536),o=r-65536*n,r=f+n+65535,n=Math.floor(r/65536),f=r-65536*n,r=h+n+65535,n=Math.floor(r/65536),h=r-65536*n,r=c+n+65535,n=Math.floor(r/65536),c=r-65536*n,r=l+n+65535,n=Math.floor(r/65536),l=r-65536*n,r=u+n+65535,n=Math.floor(r/65536),u=r-65536*n,r=d+n+65535,n=Math.floor(r/65536),d=r-65536*n,r=p+n+65535,n=Math.floor(r/65536),p=r-65536*n,r=b+n+65535,n=Math.floor(r/65536),b=r-65536*n,r=m+n+65535,n=Math.floor(r/65536),m=r-65536*n,r=w+n+65535,n=Math.floor(r/65536),w=r-65536*n,r=g+n+65535,n=Math.floor(r/65536),g=r-65536*n,r=v+n+65535,n=Math.floor(r/65536),v=r-65536*n,r=_+n+65535,n=Math.floor(r/65536),_=r-65536*n,s+=n-1+37*(n-1),n=1,r=s+n+65535,n=Math.floor(r/65536),s=r-65536*n,r=a+n+65535,n=Math.floor(r/65536),a=r-65536*n,r=o+n+65535,n=Math.floor(r/65536),o=r-65536*n,r=f+n+65535,n=Math.floor(r/65536),f=r-65536*n,r=h+n+65535,n=Math.floor(r/65536),h=r-65536*n,r=c+n+65535,n=Math.floor(r/65536),c=r-65536*n,r=l+n+65535,n=Math.floor(r/65536),l=r-65536*n,r=u+n+65535,n=Math.floor(r/65536),u=r-65536*n,r=d+n+65535,n=Math.floor(r/65536),d=r-65536*n,r=p+n+65535,n=Math.floor(r/65536),p=r-65536*n,r=b+n+65535,n=Math.floor(r/65536),b=r-65536*n,r=m+n+65535,n=Math.floor(r/65536),m=r-65536*n,r=w+n+65535,n=Math.floor(r/65536),w=r-65536*n,r=g+n+65535,n=Math.floor(r/65536),g=r-65536*n,r=v+n+65535,n=Math.floor(r/65536),v=r-65536*n,r=_+n+65535,n=Math.floor(r/65536),_=r-65536*n,s+=n-1+37*(n-1),e[0]=s,e[1]=a,e[2]=o,e[3]=f,e[4]=h,e[5]=c,e[6]=l,e[7]=u,e[8]=d,e[9]=p,e[10]=b,e[11]=m,e[12]=w,e[13]=g;e[14]=v;e[15]=_}function R(e,t){T(e,t,t)}function x(e,t){var i,r=ee();for(i=0;i<16;i++)r[i]=t[i];for(i=253;i>=0;i--)R(r,r),2!==i&&4!==i&&T(r,r,t);for(i=0;i<16;i++)e[i]=r[i]}function C(e,t){var i,r=ee();for(i=0;i<16;i++)r[i]=t[i];for(i=250;i>=0;i--)R(r,r),1!==i&&T(r,r,t);for(i=0;i<16;i++)e[i]=r[i]}function I(e,t,i){var r,n,s=new Uint8Array(32),a=new Float64Array(80),o=ee(),f=ee(),h=ee(),c=ee(),l=ee(),u=ee();for(n=0;n<31;n++)s[n]=t[n];for(s[31]=127&t[31]|64,s[0]&=248,A(a,i),n=0;n<16;n++)f[n]=a[n],c[n]=o[n]=h[n]=0;for(o[0]=c[0]=1,n=254;n>=0;--n)r=s[n>>>3]>>>(7&n)&1,_(o,f,r),_(h,c,r),S(l,o,h),M(o,o,h),S(h,f,c),M(f,f,c),R(c,l),R(u,o),T(o,h,o),T(h,f,l),S(l,o,h),M(o,o,h),R(f,o),M(h,c,u),T(o,h,ae),S(o,o,c),T(h,h,o),T(o,c,u),T(c,f,a),R(f,l),_(o,f,r),_(h,c,r);for(n=0;n<16;n++)a[n+16]=o[n],a[n+32]=h[n],a[n+48]=f[n],a[n+64]=c[n];var d=a.subarray(32),p=a.subarray(16);return x(d,d),T(p,p,d),y(e,p),0}function P(e,t){return I(e,t,re)}function O(e,t){return te(t,32),P(e,t)}function N(e,t,i){var r=new Uint8Array(32);return I(r,i,t),h(e,ie,r,ue)}function D(e,t,i,r,n,s){var a=new Uint8Array(32);return N(a,n,s),pe(e,t,i,r,a)}function L(e,t,i,r,n,s){var a=new Uint8Array(32);return N(a,n,s),be(e,t,i,r,a)}function B(e,t,i,r){for(var n,s,a,o,f,h,c,l,u,d,p,b,m,w,g,v,_,y,k,E,A,S,M,T,R,x,C=new Int32Array(16),I=new Int32Array(16),P=e[0],O=e[1],N=e[2],D=e[3],L=e[4],B=e[5],U=e[6],j=e[7],F=t[0],z=t[1],q=t[2],H=t[3],G=t[4],V=t[5],W=t[6],K=t[7],Z=0;r>=128;){for(k=0;k<16;k++)E=8*k+Z,C[k]=i[E+0]<<24|i[E+1]<<16|i[E+2]<<8|i[E+3],I[k]=i[E+4]<<24|i[E+5]<<16|i[E+6]<<8|i[E+7];for(k=0;k<80;k++)if(n=P,s=O,a=N,o=D,f=L,h=B,c=U,l=j,u=F,d=z,p=q,b=H,m=G,w=V,g=W,v=K,A=j,S=K,M=65535&S,T=S>>>16,R=65535&A,x=A>>>16,A=(L>>>14|G<<18)^(L>>>18|G<<14)^(G>>>9|L<<23),S=(G>>>14|L<<18)^(G>>>18|L<<14)^(L>>>9|G<<23),M+=65535&S,T+=S>>>16,R+=65535&A,x+=A>>>16,A=L&B^~L&U,S=G&V^~G&W,M+=65535&S,T+=S>>>16,R+=65535&A,x+=A>>>16,A=me[2*k],S=me[2*k+1],M+=65535&S,T+=S>>>16,R+=65535&A,x+=A>>>16,A=C[k%16],S=I[k%16],M+=65535&S,T+=S>>>16,R+=65535&A,x+=A>>>16,T+=M>>>16,R+=T>>>16,x+=R>>>16,_=65535&R|x<<16,y=65535&M|T<<16,A=_,S=y,M=65535&S,T=S>>>16,R=65535&A,x=A>>>16,A=(P>>>28|F<<4)^(F>>>2|P<<30)^(F>>>7|P<<25),S=(F>>>28|P<<4)^(P>>>2|F<<30)^(P>>>7|F<<25),M+=65535&S,T+=S>>>16,R+=65535&A,x+=A>>>16,A=P&O^P&N^O&N,S=F&z^F&q^z&q,M+=65535&S,T+=S>>>16,R+=65535&A,x+=A>>>16,T+=M>>>16,R+=T>>>16,x+=R>>>16,l=65535&R|x<<16,v=65535&M|T<<16,A=o,S=b,M=65535&S,T=S>>>16,R=65535&A,x=A>>>16,A=_,S=y,M+=65535&S,T+=S>>>16,R+=65535&A,x+=A>>>16,T+=M>>>16,R+=T>>>16,x+=R>>>16,o=65535&R|x<<16,b=65535&M|T<<16,O=n,N=s,D=a,L=o,B=f,U=h,j=c,P=l,z=u,q=d,H=p,G=b,V=m,W=w,K=g,F=v,k%16===15)for(E=0;E<16;E++)A=C[E],S=I[E],M=65535&S,T=S>>>16,R=65535&A,x=A>>>16,A=C[(E+9)%16],S=I[(E+9)%16],M+=65535&S,T+=S>>>16,R+=65535&A,x+=A>>>16,_=C[(E+1)%16],y=I[(E+1)%16],A=(_>>>1|y<<31)^(_>>>8|y<<24)^_>>>7,S=(y>>>1|_<<31)^(y>>>8|_<<24)^(y>>>7|_<<25),M+=65535&S,T+=S>>>16,R+=65535&A,x+=A>>>16,_=C[(E+14)%16],y=I[(E+14)%16],A=(_>>>19|y<<13)^(y>>>29|_<<3)^_>>>6,S=(y>>>19|_<<13)^(_>>>29|y<<3)^(y>>>6|_<<26),M+=65535&S,T+=S>>>16,R+=65535&A,x+=A>>>16,T+=M>>>16,R+=T>>>16,x+=R>>>16,C[E]=65535&R|x<<16,I[E]=65535&M|T<<16;A=P,S=F,M=65535&S,T=S>>>16,R=65535&A,x=A>>>16,A=e[0],S=t[0],M+=65535&S,T+=S>>>16,R+=65535&A,x+=A>>>16,T+=M>>>16,R+=T>>>16,x+=R>>>16,e[0]=P=65535&R|x<<16,t[0]=F=65535&M|T<<16,A=O,S=z,M=65535&S,T=S>>>16,R=65535&A,x=A>>>16,A=e[1],S=t[1],M+=65535&S,T+=S>>>16,R+=65535&A,x+=A>>>16,T+=M>>>16,R+=T>>>16,x+=R>>>16,e[1]=O=65535&R|x<<16,t[1]=z=65535&M|T<<16,A=N,S=q,M=65535&S,T=S>>>16,R=65535&A,x=A>>>16,A=e[2],S=t[2],M+=65535&S,T+=S>>>16,R+=65535&A,x+=A>>>16,T+=M>>>16,R+=T>>>16,x+=R>>>16,e[2]=N=65535&R|x<<16,t[2]=q=65535&M|T<<16,A=D,S=H,M=65535&S,T=S>>>16,R=65535&A,x=A>>>16,A=e[3],S=t[3],M+=65535&S,T+=S>>>16,R+=65535&A,x+=A>>>16,T+=M>>>16,R+=T>>>16,x+=R>>>16,e[3]=D=65535&R|x<<16,t[3]=H=65535&M|T<<16,A=L,S=G,M=65535&S,T=S>>>16,R=65535&A,x=A>>>16,A=e[4],S=t[4],M+=65535&S,T+=S>>>16,R+=65535&A,x+=A>>>16,T+=M>>>16,R+=T>>>16,x+=R>>>16,e[4]=L=65535&R|x<<16,t[4]=G=65535&M|T<<16,A=B,S=V,M=65535&S,T=S>>>16,R=65535&A,x=A>>>16,A=e[5],S=t[5],M+=65535&S,T+=S>>>16,R+=65535&A,x+=A>>>16,T+=M>>>16,R+=T>>>16,x+=R>>>16,e[5]=B=65535&R|x<<16,t[5]=V=65535&M|T<<16,A=U,S=W,M=65535&S,T=S>>>16,R=65535&A,x=A>>>16,A=e[6],S=t[6],M+=65535&S,T+=S>>>16,R+=65535&A,x+=A>>>16,T+=M>>>16,R+=T>>>16,x+=R>>>16,e[6]=U=65535&R|x<<16,t[6]=W=65535&M|T<<16,A=j,S=K,M=65535&S,T=S>>>16,R=65535&A,x=A>>>16,A=e[7],S=t[7],M+=65535&S,T+=S>>>16,R+=65535&A,x+=A>>>16,T+=M>>>16,R+=T>>>16,x+=R>>>16,e[7]=j=65535&R|x<<16,t[7]=K=65535&M|T<<16,Z+=128,r-=128}return r}function U(e,i,r){var n,s=new Int32Array(8),a=new Int32Array(8),o=new Uint8Array(256),f=r;for(s[0]=1779033703,s[1]=3144134277,s[2]=1013904242,s[3]=2773480762,s[4]=1359893119,s[5]=2600822924,s[6]=528734635,s[7]=1541459225,a[0]=4089235720,a[1]=2227873595,a[2]=4271175723,a[3]=1595750129,a[4]=2917565137,a[5]=725511199,a[6]=4215389547,a[7]=327033209,B(s,a,i,r),r%=128,n=0;n=0;--n)r=i[n/8|0]>>(7&n)&1,F(e,t,r),j(t,e),j(e,e),F(e,t,r)}function H(e,t){var i=[ee(),ee(),ee(),ee()];g(i[0],he),g(i[1],ce),g(i[2],se),T(i[3],he,ce),q(e,i,t)}function G(e,t,i){var r,n=new Uint8Array(64),s=[ee(),ee(),ee(),ee()];for(i||te(t,32),U(n,t,32),n[0]&=248,n[31]&=127,n[31]|=64,H(s,n),z(e,s),r=0;r<32;r++)t[r+32]=e[r];return 0}function V(e,t){var i,r,n,s;for(r=63;r>=32;--r){for(i=0,n=r-32,s=r-12;n>8,t[n]-=256*i;t[n]+=i,t[r]=0}for(i=0,n=0;n<32;n++)t[n]+=i-(t[31]>>4)*we[n],i=t[n]>>8,t[n]&=255;for(n=0;n<32;n++)t[n]-=i*we[n];for(r=0;r<32;r++)t[r+1]+=t[r]>>8,e[r]=255&t[r]}function W(e){var t,i=new Float64Array(64);for(t=0;t<64;t++)i[t]=e[t];for(t=0;t<64;t++)e[t]=0;V(e,i)}function K(e,t,i,r){var n,s,a=new Uint8Array(64),o=new Uint8Array(64),f=new Uint8Array(64),h=new Float64Array(64),c=[ee(),ee(),ee(),ee()];U(a,r,32),a[0]&=248,a[31]&=127,a[31]|=64;var l=i+64;for(n=0;n>7&&M(e[0],ne,e[0]),T(e[3],e[0],e[1]),0)}function Y(e,t,i,r){var n,a,o=new Uint8Array(32),f=new Uint8Array(64),h=[ee(),ee(),ee(),ee()],c=[ee(),ee(),ee(),ee()];if(a=-1,i<64)return-1;if(Z(c,r))return-1;for(n=0;n>>13|i<<3),r=255&e[4]|(255&e[5])<<8,this.r[2]=7939&(i>>>10|r<<6),n=255&e[6]|(255&e[7])<<8,this.r[3]=8191&(r>>>7|n<<9),s=255&e[8]|(255&e[9])<<8,this.r[4]=255&(n>>>4|s<<12),this.r[5]=s>>>1&8190,a=255&e[10]|(255&e[11])<<8,this.r[6]=8191&(s>>>14|a<<2),o=255&e[12]|(255&e[13])<<8,this.r[7]=8065&(a>>>11|o<<5),f=255&e[14]|(255&e[15])<<8,this.r[8]=8191&(o>>>8|f<<8),this.r[9]=f>>>5&127,this.pad[0]=255&e[16]|(255&e[17])<<8,this.pad[1]=255&e[18]|(255&e[19])<<8,this.pad[2]=255&e[20]|(255&e[21])<<8,this.pad[3]=255&e[22]|(255&e[23])<<8,this.pad[4]=255&e[24]|(255&e[25])<<8,this.pad[5]=255&e[26]|(255&e[27])<<8,this.pad[6]=255&e[28]|(255&e[29])<<8,this.pad[7]=255&e[30]|(255&e[31])<<8};de.prototype.blocks=function(e,t,i){for(var r,n,s,a,o,f,h,c,l,u,d,p,b,m,w,g,v,_,y,k=this.fin?0:2048,E=this.h[0],A=this.h[1],S=this.h[2],M=this.h[3],T=this.h[4],R=this.h[5],x=this.h[6],C=this.h[7],I=this.h[8],P=this.h[9],O=this.r[0],N=this.r[1],D=this.r[2],L=this.r[3],B=this.r[4],U=this.r[5],j=this.r[6],F=this.r[7],z=this.r[8],q=this.r[9];i>=16;)r=255&e[t+0]|(255&e[t+1])<<8,E+=8191&r,n=255&e[t+2]|(255&e[t+3])<<8,A+=8191&(r>>>13|n<<3),s=255&e[t+4]|(255&e[t+5])<<8,S+=8191&(n>>>10|s<<6),a=255&e[t+6]|(255&e[t+7])<<8,M+=8191&(s>>>7|a<<9),o=255&e[t+8]|(255&e[t+9])<<8,T+=8191&(a>>>4|o<<12),R+=o>>>1&8191,f=255&e[t+10]|(255&e[t+11])<<8,x+=8191&(o>>>14|f<<2),h=255&e[t+12]|(255&e[t+13])<<8,C+=8191&(f>>>11|h<<5),c=255&e[t+14]|(255&e[t+15])<<8,I+=8191&(h>>>8|c<<8),P+=c>>>5|k,l=0,u=l,u+=E*O,u+=A*(5*q),u+=S*(5*z),u+=M*(5*F),u+=T*(5*j),l=u>>>13,u&=8191,u+=R*(5*U),u+=x*(5*B),u+=C*(5*L),u+=I*(5*D),u+=P*(5*N),l+=u>>>13,u&=8191,d=l,d+=E*N,d+=A*O,d+=S*(5*q),d+=M*(5*z),d+=T*(5*F),l=d>>>13,d&=8191,d+=R*(5*j),d+=x*(5*U),d+=C*(5*B),d+=I*(5*L),d+=P*(5*D),l+=d>>>13,d&=8191,p=l,p+=E*D,p+=A*N,p+=S*O,p+=M*(5*q),p+=T*(5*z),l=p>>>13,p&=8191,p+=R*(5*F),p+=x*(5*j),p+=C*(5*U),p+=I*(5*B),p+=P*(5*L),l+=p>>>13,p&=8191,b=l,b+=E*L,b+=A*D,b+=S*N,b+=M*O,b+=T*(5*q),l=b>>>13,b&=8191,b+=R*(5*z),b+=x*(5*F),b+=C*(5*j),b+=I*(5*U),b+=P*(5*B),l+=b>>>13,b&=8191,m=l,m+=E*B,m+=A*L,m+=S*D,m+=M*N,m+=T*O,l=m>>>13,m&=8191,m+=R*(5*q),m+=x*(5*z),m+=C*(5*F),m+=I*(5*j),m+=P*(5*U),l+=m>>>13,m&=8191,w=l,w+=E*U,w+=A*B,w+=S*L,w+=M*D,w+=T*N,l=w>>>13,w&=8191,w+=R*O,w+=x*(5*q),w+=C*(5*z),w+=I*(5*F),w+=P*(5*j),l+=w>>>13,w&=8191,g=l,g+=E*j,g+=A*U,g+=S*B,g+=M*L,g+=T*D,l=g>>>13,g&=8191,g+=R*N,g+=x*O,g+=C*(5*q),g+=I*(5*z),g+=P*(5*F),l+=g>>>13,g&=8191,v=l,v+=E*F,v+=A*j,v+=S*U,v+=M*B,v+=T*L,l=v>>>13,v&=8191,v+=R*D,v+=x*N,v+=C*O,v+=I*(5*q),v+=P*(5*z),l+=v>>>13,v&=8191,_=l,_+=E*z,_+=A*F,_+=S*j,_+=M*U,_+=T*B,l=_>>>13,_&=8191,_+=R*L,_+=x*D,_+=C*N,_+=I*O,_+=P*(5*q),l+=_>>>13,_&=8191,y=l,y+=E*q,y+=A*z,y+=S*F,y+=M*j,y+=T*U,l=y>>>13,y&=8191,y+=R*B,y+=x*L,y+=C*D,y+=I*N,y+=P*O,l+=y>>>13,y&=8191,l=(l<<2)+l|0,l=l+u|0,u=8191&l,l>>>=13,d+=l,E=u,A=d,S=p,M=b,T=m,R=w,x=g,C=v,I=_,P=y,t+=16,i-=16;this.h[0]=E,this.h[1]=A,this.h[2]=S,this.h[3]=M,this.h[4]=T,this.h[5]=R,this.h[6]=x,this.h[7]=C,this.h[8]=I,this.h[9]=P},de.prototype.finish=function(e,t){var i,r,n,s,a=new Uint16Array(10);if(this.leftover){for(s=this.leftover,this.buffer[s++]=1;s<16;s++)this.buffer[s]=0;this.fin=1,this.blocks(this.buffer,0,16)}for(i=this.h[1]>>>13,this.h[1]&=8191,s=2;s<10;s++)this.h[s]+=i,i=this.h[s]>>>13,this.h[s]&=8191;for(this.h[0]+=5*i,i=this.h[0]>>>13,this.h[0]&=8191,this.h[1]+=i,i=this.h[1]>>>13,this.h[1]&=8191,this.h[2]+=i,a[0]=this.h[0]+5,i=a[0]>>>13,a[0]&=8191,s=1;s<10;s++)a[s]=this.h[s]+i,i=a[s]>>>13,a[s]&=8191;for(a[9]-=8192,r=(1^i)-1,s=0;s<10;s++)a[s]&=r;for(r=~r,s=0;s<10;s++)this.h[s]=this.h[s]&r|a[s];for(this.h[0]=65535&(this.h[0]|this.h[1]<<13),this.h[1]=65535&(this.h[1]>>>3|this.h[2]<<10),this.h[2]=65535&(this.h[2]>>>6|this.h[3]<<7),this.h[3]=65535&(this.h[3]>>>9|this.h[4]<<4),this.h[4]=65535&(this.h[4]>>>12|this.h[5]<<1|this.h[6]<<14),this.h[5]=65535&(this.h[6]>>>2|this.h[7]<<11),this.h[6]=65535&(this.h[7]>>>5|this.h[8]<<8),this.h[7]=65535&(this.h[8]>>>8|this.h[9]<<5),n=this.h[0]+this.pad[0],this.h[0]=65535&n,s=1;s<8;s++)n=(this.h[s]+this.pad[s]|0)+(n>>>16)|0,this.h[s]=65535&n;e[t+0]=this.h[0]>>>0&255,e[t+1]=this.h[0]>>>8&255,e[t+2]=this.h[1]>>>0&255,e[t+3]=this.h[1]>>>8&255,e[t+4]=this.h[2]>>>0&255,e[t+5]=this.h[2]>>>8&255,e[t+6]=this.h[3]>>>0&255,e[t+7]=this.h[3]>>>8&255,e[t+8]=this.h[4]>>>0&255,e[t+9]=this.h[4]>>>8&255,e[t+10]=this.h[5]>>>0&255,e[t+11]=this.h[5]>>>8&255,e[t+12]=this.h[6]>>>0&255,e[t+13]=this.h[6]>>>8&255,e[t+14]=this.h[7]>>>0&255,e[t+15]=this.h[7]>>>8&255},de.prototype.update=function(e,t,i){var r,n;if(this.leftover){for(n=16-this.leftover,n>i&&(n=i),r=0;r=16&&(n=i-i%16,this.blocks(e,t,n),t+=n,i-=n),i){for(r=0;r=0},e.sign.keyPair=function(){var e=new Uint8Array(Ie),t=new Uint8Array(Pe);return G(e,t),{publicKey:e,secretKey:t}},e.sign.keyPair.fromSecretKey=function(e){if(J(e),e.length!==Pe)throw new Error("bad secret key size");for(var t=new Uint8Array(Ie),i=0;i>>16&65535|0,a=0;0!==i;){a=i>2e3?2e3:i,i-=a;do n=n+t[r++]|0,s=s+n|0;while(--a);n%=65521,s%=65521}return n|s<<16|0}e.exports=i},function(e,t){"use strict";function i(){for(var e,t=[],i=0;i<256;i++){e=i;for(var r=0;r<8;r++)e=1&e?3988292384^e>>>1:e>>>1;t[i]=e}return t}function r(e,t,i,r){var s=n,a=r+i;e^=-1;for(var o=r;o>>8^s[255&(e^t[o])];return e^-1}var n=i();e.exports=r},function(e,t){"use strict";e.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},function(e,t,i){(function(e,r){var n=i(53),s=i(216);t.pbkdf2=function(e,i,r,n,a,o){if("function"==typeof a&&(o=a,a=void 0),s(r,n),"function"!=typeof o)throw new Error("No callback provided to pbkdf2");setTimeout(function(){o(null,t.pbkdf2Sync(e,i,r,n,a))})};var a;if(e.browser)a="utf-8";else{var o=parseInt(e.version.split(".")[0].slice(1),10);a=o>=6?"utf-8":"binary"}t.pbkdf2Sync=function(e,t,i,o,f){r.isBuffer(e)||(e=new r(e,a)),r.isBuffer(t)||(t=new r(t,a)),s(i,o),f=f||"sha1";var h,c=1,l=new r(o),u=new r(t.length+4);t.copy(u,0,0,t.length);for(var d,p,b=1;b<=c;b++){u.writeUInt32BE(b,t.length);var m=n(f,e).update(u).digest();h||(h=m.length,p=new r(h),c=Math.ceil(o/h),d=o-(c-1)*h),m.copy(p,0,0,h);for(var w=1;w0)if(t.ended&&!n){var a=new Error("stream.push() after EOF");e.emit("error",a)}else if(t.endEmitted&&n){var f=new Error("stream.unshift() after end event");e.emit("error",f)}else{var h;!t.decoder||n||r||(i=t.decoder.write(i),h=!t.objectMode&&0===i.length),n||(t.reading=!1),h||(t.flowing&&0===t.length&&!t.sync?(e.emit("data",i),e.read(0)):(t.length+=t.objectMode?1:i.length,n?t.buffer.unshift(i):t.buffer.push(i),t.needReadable&&u(e))),p(e,t)}else n||(t.reading=!1);return o(t)}function o(e){return!e.ended&&(e.needReadable||e.length=z?e=z:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function h(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!==e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=f(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function c(e,t){var i=null;return O.isBuffer(t)||"string"==typeof t||null===t||void 0===t||e.objectMode||(i=new TypeError("Invalid non-string/buffer chunk")),i}function l(e,t){if(!t.ended){if(t.decoder){var i=t.decoder.end();i&&i.length&&(t.buffer.push(i),t.length+=t.objectMode?1:i.length)}t.ended=!0,u(e)}}function u(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(B("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?R(d,e):d(e))}function d(e){B("emit readable"),e.emit("readable"),_(e)}function p(e,t){t.readingMore||(t.readingMore=!0,R(b,e,t))}function b(e,t){for(var i=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(i=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):i=k(e,t.buffer,t.decoder),i}function k(e,t,i){var r;return es.length?s.length:e;if(n+=a===s.length?s:s.slice(0,e),e-=a,0===e){a===s.length?(++r,i.next?t.head=i.next:t.head=t.tail=null):(t.head=i,i.data=s.slice(a));break}++r}return t.length-=r,n}function A(e,t){var i=N.allocUnsafe(e),r=t.head,n=1;for(r.data.copy(i),e-=r.data.length;r=r.next;){var s=r.data,a=e>s.length?s.length:e;if(s.copy(i,i.length-e,0,a),e-=a,0===e){a===s.length?(++n,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=s.slice(a));break}++n}return t.length-=n,i}function S(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,R(M,t,e))}function M(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function T(e,t){for(var i=0,r=e.length;i=t.highWaterMark||t.ended))return B("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?S(this):u(this),null;if(e=h(e,t),0===e&&t.ended)return 0===t.length&&S(this),null;var r=t.needReadable;B("need readable",r),(0===t.length||t.length-e0?y(e,t):null,null===n?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),i!==e&&t.ended&&S(this)),null!==n&&this.emit("data",n),n},s.prototype._read=function(e){this.emit("error",new Error("not implemented"))},s.prototype.pipe=function(e,i){function n(e){B("onunpipe"),e===u&&a()}function s(){B("onend"),e.end()}function a(){B("cleanup"),e.removeListener("close",h),e.removeListener("finish",c),e.removeListener("drain",w),e.removeListener("error",f),e.removeListener("unpipe",n),u.removeListener("end",s),u.removeListener("end",a),u.removeListener("data",o),g=!0,!d.awaitDrain||e._writableState&&!e._writableState.needDrain||w()}function o(t){B("ondata"),v=!1;var i=e.write(t);!1!==i||v||((1===d.pipesCount&&d.pipes===e||d.pipesCount>1&&x(d.pipes,e)!==-1)&&!g&&(B("false write response, pause",u._readableState.awaitDrain),u._readableState.awaitDrain++,v=!0),u.pause())}function f(t){B("onerror",t),l(),e.removeListener("error",f),0===P(e,"error")&&e.emit("error",t)}function h(){e.removeListener("finish",c),l()}function c(){B("onfinish"),e.removeListener("close",h),l()}function l(){B("unpipe"),u.unpipe(e)}var u=this,d=this._readableState;switch(d.pipesCount){case 0:d.pipes=e;break;case 1:d.pipes=[d.pipes,e];break;default:d.pipes.push(e)}d.pipesCount+=1,B("pipe count=%d opts=%j",d.pipesCount,i);var p=(!i||i.end!==!1)&&e!==t.stdout&&e!==t.stderr,b=p?s:a;d.endEmitted?R(b):u.once("end",b),e.on("unpipe",n);var w=m(u);e.on("drain",w);var g=!1,v=!1;return u.on("data",o),r(e,"error",f),e.once("close",h),e.once("finish",c),e.emit("pipe",u),d.flowing||(B("pipe resume"),u.resume()),e},s.prototype.unpipe=function(e){var t=this._readableState;if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this),this);if(!e){var i=t.pipes,r=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var n=0;n>24&255,e[t+1]=i>>16&255,e[t+2]=i>>8&255,e[t+3]=255&i,e[t+4]=r>>24&255,e[t+5]=r>>16&255,e[t+6]=r>>8&255,e[t+7]=255&r}function r(e,t,i,r,n){var s,a=0;for(s=0;s>>8)-1}function n(e,t,i,n){return r(e,t,i,n,16)}function s(e,t,i,n){return r(e,t,i,n,32)}function a(e,t,i,r){for(var n,s=255&r[0]|(255&r[1])<<8|(255&r[2])<<16|(255&r[3])<<24,a=255&i[0]|(255&i[1])<<8|(255&i[2])<<16|(255&i[3])<<24,o=255&i[4]|(255&i[5])<<8|(255&i[6])<<16|(255&i[7])<<24,f=255&i[8]|(255&i[9])<<8|(255&i[10])<<16|(255&i[11])<<24,h=255&i[12]|(255&i[13])<<8|(255&i[14])<<16|(255&i[15])<<24,c=255&r[4]|(255&r[5])<<8|(255&r[6])<<16|(255&r[7])<<24,l=255&t[0]|(255&t[1])<<8|(255&t[2])<<16|(255&t[3])<<24,u=255&t[4]|(255&t[5])<<8|(255&t[6])<<16|(255&t[7])<<24,d=255&t[8]|(255&t[9])<<8|(255&t[10])<<16|(255&t[11])<<24,p=255&t[12]|(255&t[13])<<8|(255&t[14])<<16|(255&t[15])<<24,b=255&r[8]|(255&r[9])<<8|(255&r[10])<<16|(255&r[11])<<24,m=255&i[16]|(255&i[17])<<8|(255&i[18])<<16|(255&i[19])<<24,w=255&i[20]|(255&i[21])<<8|(255&i[22])<<16|(255&i[23])<<24,g=255&i[24]|(255&i[25])<<8|(255&i[26])<<16|(255&i[27])<<24,v=255&i[28]|(255&i[29])<<8|(255&i[30])<<16|(255&i[31])<<24,_=255&r[12]|(255&r[13])<<8|(255&r[14])<<16|(255&r[15])<<24,y=s,k=a,E=o,A=f,S=h,M=c,T=l,x=u,R=d,I=p,C=b,P=m,O=w,N=g,D=v,L=_,B=0;B<20;B+=2)n=y+O|0,S^=n<<7|n>>>25,n=S+y|0,R^=n<<9|n>>>23,n=R+S|0,O^=n<<13|n>>>19,n=O+R|0,y^=n<<18|n>>>14,n=M+k|0,I^=n<<7|n>>>25,n=I+M|0,N^=n<<9|n>>>23,n=N+I|0,k^=n<<13|n>>>19,n=k+N|0,M^=n<<18|n>>>14,n=C+T|0,D^=n<<7|n>>>25,n=D+C|0,E^=n<<9|n>>>23,n=E+D|0,T^=n<<13|n>>>19,n=T+E|0,C^=n<<18|n>>>14,n=L+P|0,A^=n<<7|n>>>25,n=A+L|0,x^=n<<9|n>>>23,n=x+A|0,P^=n<<13|n>>>19,n=P+x|0,L^=n<<18|n>>>14,n=y+A|0,k^=n<<7|n>>>25,n=k+y|0,E^=n<<9|n>>>23,n=E+k|0,A^=n<<13|n>>>19,n=A+E|0,y^=n<<18|n>>>14,n=M+S|0,T^=n<<7|n>>>25,n=T+M|0,x^=n<<9|n>>>23,n=x+T|0,S^=n<<13|n>>>19,n=S+x|0,M^=n<<18|n>>>14,n=C+I|0,P^=n<<7|n>>>25,n=P+C|0,R^=n<<9|n>>>23,n=R+P|0,I^=n<<13|n>>>19,n=I+R|0,C^=n<<18|n>>>14,n=L+D|0,O^=n<<7|n>>>25,n=O+L|0,N^=n<<9|n>>>23,n=N+O|0,D^=n<<13|n>>>19,n=D+N|0,L^=n<<18|n>>>14;y=y+s|0,k=k+a|0,E=E+o|0,A=A+f|0,S=S+h|0,M=M+c|0,T=T+l|0,x=x+u|0,R=R+d|0,I=I+p|0,C=C+b|0,P=P+m|0,O=O+w|0,N=N+g|0,D=D+v|0,L=L+_|0,e[0]=y>>>0&255,e[1]=y>>>8&255,e[2]=y>>>16&255,e[3]=y>>>24&255,e[4]=k>>>0&255,e[5]=k>>>8&255,e[6]=k>>>16&255,e[7]=k>>>24&255,e[8]=E>>>0&255,e[9]=E>>>8&255,e[10]=E>>>16&255,e[11]=E>>>24&255,e[12]=A>>>0&255,e[13]=A>>>8&255,e[14]=A>>>16&255,e[15]=A>>>24&255,e[16]=S>>>0&255,e[17]=S>>>8&255,e[18]=S>>>16&255,e[19]=S>>>24&255,e[20]=M>>>0&255,e[21]=M>>>8&255,e[22]=M>>>16&255,e[23]=M>>>24&255,e[24]=T>>>0&255,e[25]=T>>>8&255,e[26]=T>>>16&255,e[27]=T>>>24&255,e[28]=x>>>0&255,e[29]=x>>>8&255,e[30]=x>>>16&255,e[31]=x>>>24&255,e[32]=R>>>0&255,e[33]=R>>>8&255,e[34]=R>>>16&255,e[35]=R>>>24&255,e[36]=I>>>0&255,e[37]=I>>>8&255,e[38]=I>>>16&255,e[39]=I>>>24&255,e[40]=C>>>0&255,e[41]=C>>>8&255,e[42]=C>>>16&255,e[43]=C>>>24&255,e[44]=P>>>0&255,e[45]=P>>>8&255,e[46]=P>>>16&255,e[47]=P>>>24&255,e[48]=O>>>0&255,e[49]=O>>>8&255,e[50]=O>>>16&255,e[51]=O>>>24&255,e[52]=N>>>0&255,e[53]=N>>>8&255,e[54]=N>>>16&255,e[55]=N>>>24&255,e[56]=D>>>0&255,e[57]=D>>>8&255,e[58]=D>>>16&255,e[59]=D>>>24&255,e[60]=L>>>0&255,e[61]=L>>>8&255,e[62]=L>>>16&255,e[63]=L>>>24&255}function o(e,t,i,r){for(var n,s=255&r[0]|(255&r[1])<<8|(255&r[2])<<16|(255&r[3])<<24,a=255&i[0]|(255&i[1])<<8|(255&i[2])<<16|(255&i[3])<<24,o=255&i[4]|(255&i[5])<<8|(255&i[6])<<16|(255&i[7])<<24,f=255&i[8]|(255&i[9])<<8|(255&i[10])<<16|(255&i[11])<<24,h=255&i[12]|(255&i[13])<<8|(255&i[14])<<16|(255&i[15])<<24,c=255&r[4]|(255&r[5])<<8|(255&r[6])<<16|(255&r[7])<<24,l=255&t[0]|(255&t[1])<<8|(255&t[2])<<16|(255&t[3])<<24,u=255&t[4]|(255&t[5])<<8|(255&t[6])<<16|(255&t[7])<<24,d=255&t[8]|(255&t[9])<<8|(255&t[10])<<16|(255&t[11])<<24,p=255&t[12]|(255&t[13])<<8|(255&t[14])<<16|(255&t[15])<<24,b=255&r[8]|(255&r[9])<<8|(255&r[10])<<16|(255&r[11])<<24,m=255&i[16]|(255&i[17])<<8|(255&i[18])<<16|(255&i[19])<<24,w=255&i[20]|(255&i[21])<<8|(255&i[22])<<16|(255&i[23])<<24,g=255&i[24]|(255&i[25])<<8|(255&i[26])<<16|(255&i[27])<<24,v=255&i[28]|(255&i[29])<<8|(255&i[30])<<16|(255&i[31])<<24,_=255&r[12]|(255&r[13])<<8|(255&r[14])<<16|(255&r[15])<<24,y=s,k=a,E=o,A=f,S=h,M=c,T=l,x=u,R=d,I=p,C=b,P=m,O=w,N=g,D=v,L=_,B=0;B<20;B+=2)n=y+O|0,S^=n<<7|n>>>25,n=S+y|0,R^=n<<9|n>>>23,n=R+S|0,O^=n<<13|n>>>19,n=O+R|0,y^=n<<18|n>>>14,n=M+k|0,I^=n<<7|n>>>25,n=I+M|0,N^=n<<9|n>>>23,n=N+I|0,k^=n<<13|n>>>19,n=k+N|0,M^=n<<18|n>>>14,n=C+T|0,D^=n<<7|n>>>25,n=D+C|0,E^=n<<9|n>>>23,n=E+D|0,T^=n<<13|n>>>19,n=T+E|0,C^=n<<18|n>>>14,n=L+P|0,A^=n<<7|n>>>25,n=A+L|0,x^=n<<9|n>>>23,n=x+A|0,P^=n<<13|n>>>19,n=P+x|0,L^=n<<18|n>>>14,n=y+A|0,k^=n<<7|n>>>25,n=k+y|0,E^=n<<9|n>>>23,n=E+k|0,A^=n<<13|n>>>19,n=A+E|0,y^=n<<18|n>>>14,n=M+S|0,T^=n<<7|n>>>25,n=T+M|0,x^=n<<9|n>>>23,n=x+T|0,S^=n<<13|n>>>19,n=S+x|0,M^=n<<18|n>>>14,n=C+I|0,P^=n<<7|n>>>25,n=P+C|0,R^=n<<9|n>>>23,n=R+P|0,I^=n<<13|n>>>19,n=I+R|0,C^=n<<18|n>>>14,n=L+D|0,O^=n<<7|n>>>25,n=O+L|0,N^=n<<9|n>>>23,n=N+O|0,D^=n<<13|n>>>19,n=D+N|0,L^=n<<18|n>>>14;e[0]=y>>>0&255,e[1]=y>>>8&255,e[2]=y>>>16&255,e[3]=y>>>24&255,e[4]=M>>>0&255,e[5]=M>>>8&255,e[6]=M>>>16&255,e[7]=M>>>24&255,e[8]=C>>>0&255,e[9]=C>>>8&255,e[10]=C>>>16&255,e[11]=C>>>24&255,e[12]=L>>>0&255,e[13]=L>>>8&255,e[14]=L>>>16&255,e[15]=L>>>24&255,e[16]=T>>>0&255,e[17]=T>>>8&255,e[18]=T>>>16&255,e[19]=T>>>24&255,e[20]=x>>>0&255,e[21]=x>>>8&255,e[22]=x>>>16&255,e[23]=x>>>24&255,e[24]=R>>>0&255,e[25]=R>>>8&255,e[26]=R>>>16&255,e[27]=R>>>24&255,e[28]=I>>>0&255,e[29]=I>>>8&255,e[30]=I>>>16&255,e[31]=I>>>24&255}function f(e,t,i,r){a(e,t,i,r)}function h(e,t,i,r){o(e,t,i,r)}function c(e,t,i,r,n,s,a){var o,h,c=new Uint8Array(16),l=new Uint8Array(64);for(h=0;h<16;h++)c[h]=0;for(h=0;h<8;h++)c[h]=s[h];for(;n>=64;){for(f(l,c,a,ue),h=0;h<64;h++)e[t+h]=i[r+h]^l[h];for(o=1,h=8;h<16;h++)o=o+(255&c[h])|0,c[h]=255&o,o>>>=8;n-=64,t+=64,r+=64}if(n>0)for(f(l,c,a,ue),h=0;h=64;){for(f(h,o,n,ue),a=0;a<64;a++)e[t+a]=h[a];for(s=1,a=8;a<16;a++)s=s+(255&o[a])|0,o[a]=255&s,s>>>=8;i-=64,t+=64}if(i>0)for(f(h,o,n,ue),a=0;a>16&1),s[i-1]&=65535;s[15]=a[15]-32767-(s[14]>>16&1),n=s[15]>>16&1,s[14]&=65535,_(a,s,1-n)}for(i=0;i<16;i++)e[2*i]=255&a[i],e[2*i+1]=a[i]>>8}function k(e,t){var i=new Uint8Array(32),r=new Uint8Array(32);return y(i,e),y(r,t),s(i,0,r,0)}function E(e){var t=new Uint8Array(32);return y(t,e),1&t[0]}function A(e,t){var i;for(i=0;i<16;i++)e[i]=t[2*i]+(t[2*i+1]<<8);e[15]&=32767}function S(e,t,i){for(var r=0;r<16;r++)e[r]=t[r]+i[r]}function M(e,t,i){for(var r=0;r<16;r++)e[r]=t[r]-i[r]}function T(e,t,i){var r,n,s=0,a=0,o=0,f=0,h=0,c=0,l=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0,C=0,P=0,O=0,N=0,D=0,L=i[0],B=i[1],U=i[2],j=i[3],F=i[4],z=i[5],q=i[6],H=i[7],G=i[8],V=i[9],W=i[10],K=i[11],Y=i[12],Z=i[13],$=i[14],X=i[15];r=t[0],s+=r*L,a+=r*B,o+=r*U,f+=r*j,h+=r*F,c+=r*z,l+=r*q,u+=r*H,d+=r*G,p+=r*V,b+=r*W,m+=r*K,w+=r*Y,g+=r*Z,v+=r*$,_+=r*X,r=t[1],a+=r*L,o+=r*B,f+=r*U,h+=r*j,c+=r*F,l+=r*z,u+=r*q,d+=r*H,p+=r*G,b+=r*V,m+=r*W,w+=r*K,g+=r*Y,v+=r*Z,_+=r*$,y+=r*X,r=t[2],o+=r*L,f+=r*B,h+=r*U,c+=r*j,l+=r*F,u+=r*z,d+=r*q,p+=r*H,b+=r*G,m+=r*V,w+=r*W,g+=r*K,v+=r*Y,_+=r*Z,y+=r*$,k+=r*X,r=t[3],f+=r*L,h+=r*B,c+=r*U,l+=r*j,u+=r*F,d+=r*z,p+=r*q,b+=r*H,m+=r*G,w+=r*V,g+=r*W,v+=r*K,_+=r*Y,y+=r*Z,k+=r*$,E+=r*X,r=t[4],h+=r*L,c+=r*B,l+=r*U,u+=r*j,d+=r*F,p+=r*z,b+=r*q,m+=r*H,w+=r*G,g+=r*V,v+=r*W,_+=r*K,y+=r*Y,k+=r*Z,E+=r*$,A+=r*X,r=t[5],c+=r*L,l+=r*B,u+=r*U,d+=r*j,p+=r*F,b+=r*z,m+=r*q,w+=r*H,g+=r*G,v+=r*V,_+=r*W,y+=r*K,k+=r*Y,E+=r*Z,A+=r*$,S+=r*X,r=t[6],l+=r*L,u+=r*B,d+=r*U,p+=r*j,b+=r*F,m+=r*z,w+=r*q,g+=r*H,v+=r*G,_+=r*V,y+=r*W,k+=r*K,E+=r*Y,A+=r*Z,S+=r*$,M+=r*X,r=t[7],u+=r*L,d+=r*B,p+=r*U,b+=r*j,m+=r*F,w+=r*z,g+=r*q,v+=r*H,_+=r*G,y+=r*V,k+=r*W,E+=r*K,A+=r*Y,S+=r*Z,M+=r*$,T+=r*X,r=t[8],d+=r*L,p+=r*B,b+=r*U,m+=r*j,w+=r*F,g+=r*z,v+=r*q,_+=r*H,y+=r*G,k+=r*V,E+=r*W,A+=r*K,S+=r*Y,M+=r*Z,T+=r*$,x+=r*X,r=t[9],p+=r*L,b+=r*B,m+=r*U,w+=r*j,g+=r*F,v+=r*z,_+=r*q,y+=r*H,k+=r*G,E+=r*V,A+=r*W,S+=r*K,M+=r*Y,T+=r*Z,x+=r*$,R+=r*X,r=t[10],b+=r*L,m+=r*B,w+=r*U,g+=r*j,v+=r*F,_+=r*z,y+=r*q,k+=r*H,E+=r*G,A+=r*V,S+=r*W,M+=r*K,T+=r*Y,x+=r*Z,R+=r*$,I+=r*X,r=t[11],m+=r*L,w+=r*B,g+=r*U,v+=r*j,_+=r*F,y+=r*z,k+=r*q,E+=r*H,A+=r*G,S+=r*V,M+=r*W,T+=r*K;x+=r*Y;R+=r*Z,I+=r*$,C+=r*X,r=t[12],w+=r*L,g+=r*B,v+=r*U,_+=r*j,y+=r*F,k+=r*z,E+=r*q,A+=r*H,S+=r*G,M+=r*V,T+=r*W,x+=r*K,R+=r*Y,I+=r*Z,C+=r*$,P+=r*X,r=t[13],g+=r*L,v+=r*B,_+=r*U,y+=r*j,k+=r*F,E+=r*z,A+=r*q,S+=r*H,M+=r*G,T+=r*V,x+=r*W,R+=r*K,I+=r*Y,C+=r*Z,P+=r*$,O+=r*X,r=t[14],v+=r*L,_+=r*B,y+=r*U,k+=r*j,E+=r*F,A+=r*z,S+=r*q,M+=r*H,T+=r*G,x+=r*V,R+=r*W,I+=r*K,C+=r*Y,P+=r*Z,O+=r*$,N+=r*X,r=t[15],_+=r*L,y+=r*B,k+=r*U,E+=r*j,A+=r*F,S+=r*z,M+=r*q,T+=r*H,x+=r*G,R+=r*V,I+=r*W,C+=r*K,P+=r*Y,O+=r*Z,N+=r*$,D+=r*X,s+=38*y,a+=38*k,o+=38*E,f+=38*A,h+=38*S,c+=38*M,l+=38*T,u+=38*x,d+=38*R,p+=38*I,b+=38*C,m+=38*P,w+=38*O,g+=38*N,v+=38*D,n=1,r=s+n+65535,n=Math.floor(r/65536),s=r-65536*n,r=a+n+65535,n=Math.floor(r/65536),a=r-65536*n,r=o+n+65535,n=Math.floor(r/65536),o=r-65536*n,r=f+n+65535,n=Math.floor(r/65536),f=r-65536*n,r=h+n+65535,n=Math.floor(r/65536),h=r-65536*n,r=c+n+65535,n=Math.floor(r/65536),c=r-65536*n,r=l+n+65535,n=Math.floor(r/65536),l=r-65536*n,r=u+n+65535,n=Math.floor(r/65536),u=r-65536*n,r=d+n+65535,n=Math.floor(r/65536),d=r-65536*n,r=p+n+65535,n=Math.floor(r/65536),p=r-65536*n,r=b+n+65535,n=Math.floor(r/65536),b=r-65536*n,r=m+n+65535,n=Math.floor(r/65536),m=r-65536*n,r=w+n+65535,n=Math.floor(r/65536),w=r-65536*n,r=g+n+65535,n=Math.floor(r/65536),g=r-65536*n,r=v+n+65535,n=Math.floor(r/65536),v=r-65536*n,r=_+n+65535,n=Math.floor(r/65536),_=r-65536*n,s+=n-1+37*(n-1),n=1,r=s+n+65535,n=Math.floor(r/65536),s=r-65536*n,r=a+n+65535,n=Math.floor(r/65536),a=r-65536*n,r=o+n+65535,n=Math.floor(r/65536),o=r-65536*n,r=f+n+65535,n=Math.floor(r/65536),f=r-65536*n,r=h+n+65535,n=Math.floor(r/65536),h=r-65536*n,r=c+n+65535,n=Math.floor(r/65536),c=r-65536*n,r=l+n+65535,n=Math.floor(r/65536),l=r-65536*n,r=u+n+65535,n=Math.floor(r/65536),u=r-65536*n,r=d+n+65535,n=Math.floor(r/65536),d=r-65536*n,r=p+n+65535,n=Math.floor(r/65536),p=r-65536*n,r=b+n+65535,n=Math.floor(r/65536),b=r-65536*n,r=m+n+65535,n=Math.floor(r/65536),m=r-65536*n,r=w+n+65535,n=Math.floor(r/65536),w=r-65536*n,r=g+n+65535,n=Math.floor(r/65536),g=r-65536*n,r=v+n+65535,n=Math.floor(r/65536),v=r-65536*n,r=_+n+65535,n=Math.floor(r/65536),_=r-65536*n,s+=n-1+37*(n-1),e[0]=s,e[1]=a,e[2]=o,e[3]=f,e[4]=h,e[5]=c,e[6]=l,e[7]=u,e[8]=d,e[9]=p,e[10]=b,e[11]=m,e[12]=w,e[13]=g;e[14]=v;e[15]=_}function x(e,t){T(e,t,t)}function R(e,t){var i,r=ee();for(i=0;i<16;i++)r[i]=t[i];for(i=253;i>=0;i--)x(r,r),2!==i&&4!==i&&T(r,r,t);for(i=0;i<16;i++)e[i]=r[i]}function I(e,t){var i,r=ee();for(i=0;i<16;i++)r[i]=t[i];for(i=250;i>=0;i--)x(r,r),1!==i&&T(r,r,t);for(i=0;i<16;i++)e[i]=r[i]}function C(e,t,i){var r,n,s=new Uint8Array(32),a=new Float64Array(80),o=ee(),f=ee(),h=ee(),c=ee(),l=ee(),u=ee();for(n=0;n<31;n++)s[n]=t[n];for(s[31]=127&t[31]|64,s[0]&=248,A(a,i),n=0;n<16;n++)f[n]=a[n],c[n]=o[n]=h[n]=0;for(o[0]=c[0]=1,n=254;n>=0;--n)r=s[n>>>3]>>>(7&n)&1,_(o,f,r),_(h,c,r),S(l,o,h),M(o,o,h),S(h,f,c),M(f,f,c),x(c,l),x(u,o),T(o,h,o),T(h,f,l),S(l,o,h),M(o,o,h),x(f,o),M(h,c,u),T(o,h,ae),S(o,o,c),T(h,h,o),T(o,c,u),T(c,f,a),x(f,l),_(o,f,r),_(h,c,r);for(n=0;n<16;n++)a[n+16]=o[n],a[n+32]=h[n],a[n+48]=f[n],a[n+64]=c[n];var d=a.subarray(32),p=a.subarray(16);return R(d,d),T(p,p,d),y(e,p),0}function P(e,t){return C(e,t,re)}function O(e,t){return te(t,32),P(e,t)}function N(e,t,i){var r=new Uint8Array(32);return C(r,i,t),h(e,ie,r,ue)}function D(e,t,i,r,n,s){var a=new Uint8Array(32);return N(a,n,s),pe(e,t,i,r,a)}function L(e,t,i,r,n,s){var a=new Uint8Array(32);return N(a,n,s),be(e,t,i,r,a)}function B(e,t,i,r){for(var n,s,a,o,f,h,c,l,u,d,p,b,m,w,g,v,_,y,k,E,A,S,M,T,x,R,I=new Int32Array(16),C=new Int32Array(16),P=e[0],O=e[1],N=e[2],D=e[3],L=e[4],B=e[5],U=e[6],j=e[7],F=t[0],z=t[1],q=t[2],H=t[3],G=t[4],V=t[5],W=t[6],K=t[7],Y=0;r>=128;){for(k=0;k<16;k++)E=8*k+Y,I[k]=i[E+0]<<24|i[E+1]<<16|i[E+2]<<8|i[E+3],C[k]=i[E+4]<<24|i[E+5]<<16|i[E+6]<<8|i[E+7];for(k=0;k<80;k++)if(n=P,s=O,a=N,o=D,f=L,h=B,c=U,l=j,u=F,d=z,p=q,b=H,m=G,w=V,g=W,v=K,A=j,S=K,M=65535&S,T=S>>>16,x=65535&A,R=A>>>16,A=(L>>>14|G<<18)^(L>>>18|G<<14)^(G>>>9|L<<23),S=(G>>>14|L<<18)^(G>>>18|L<<14)^(L>>>9|G<<23),M+=65535&S,T+=S>>>16,x+=65535&A,R+=A>>>16,A=L&B^~L&U,S=G&V^~G&W,M+=65535&S,T+=S>>>16,x+=65535&A,R+=A>>>16,A=me[2*k],S=me[2*k+1],M+=65535&S,T+=S>>>16,x+=65535&A,R+=A>>>16,A=I[k%16],S=C[k%16],M+=65535&S,T+=S>>>16,x+=65535&A,R+=A>>>16,T+=M>>>16,x+=T>>>16,R+=x>>>16,_=65535&x|R<<16,y=65535&M|T<<16,A=_,S=y,M=65535&S,T=S>>>16,x=65535&A,R=A>>>16,A=(P>>>28|F<<4)^(F>>>2|P<<30)^(F>>>7|P<<25),S=(F>>>28|P<<4)^(P>>>2|F<<30)^(P>>>7|F<<25),M+=65535&S,T+=S>>>16,x+=65535&A,R+=A>>>16,A=P&O^P&N^O&N,S=F&z^F&q^z&q,M+=65535&S,T+=S>>>16,x+=65535&A,R+=A>>>16,T+=M>>>16,x+=T>>>16,R+=x>>>16,l=65535&x|R<<16,v=65535&M|T<<16,A=o,S=b,M=65535&S,T=S>>>16,x=65535&A,R=A>>>16,A=_,S=y,M+=65535&S,T+=S>>>16,x+=65535&A,R+=A>>>16,T+=M>>>16,x+=T>>>16,R+=x>>>16,o=65535&x|R<<16,b=65535&M|T<<16,O=n,N=s,D=a,L=o,B=f,U=h,j=c,P=l,z=u,q=d,H=p,G=b,V=m,W=w,K=g,F=v,k%16===15)for(E=0;E<16;E++)A=I[E],S=C[E],M=65535&S,T=S>>>16,x=65535&A,R=A>>>16,A=I[(E+9)%16],S=C[(E+9)%16],M+=65535&S,T+=S>>>16,x+=65535&A,R+=A>>>16,_=I[(E+1)%16],y=C[(E+1)%16],A=(_>>>1|y<<31)^(_>>>8|y<<24)^_>>>7,S=(y>>>1|_<<31)^(y>>>8|_<<24)^(y>>>7|_<<25),M+=65535&S,T+=S>>>16,x+=65535&A,R+=A>>>16,_=I[(E+14)%16],y=C[(E+14)%16],A=(_>>>19|y<<13)^(y>>>29|_<<3)^_>>>6,S=(y>>>19|_<<13)^(_>>>29|y<<3)^(y>>>6|_<<26),M+=65535&S,T+=S>>>16,x+=65535&A,R+=A>>>16,T+=M>>>16,x+=T>>>16,R+=x>>>16,I[E]=65535&x|R<<16,C[E]=65535&M|T<<16;A=P,S=F,M=65535&S,T=S>>>16,x=65535&A,R=A>>>16,A=e[0],S=t[0],M+=65535&S,T+=S>>>16,x+=65535&A,R+=A>>>16,T+=M>>>16,x+=T>>>16,R+=x>>>16,e[0]=P=65535&x|R<<16,t[0]=F=65535&M|T<<16,A=O,S=z,M=65535&S,T=S>>>16,x=65535&A,R=A>>>16,A=e[1],S=t[1],M+=65535&S,T+=S>>>16,x+=65535&A,R+=A>>>16,T+=M>>>16,x+=T>>>16,R+=x>>>16,e[1]=O=65535&x|R<<16,t[1]=z=65535&M|T<<16,A=N,S=q,M=65535&S,T=S>>>16,x=65535&A,R=A>>>16,A=e[2],S=t[2],M+=65535&S,T+=S>>>16,x+=65535&A,R+=A>>>16,T+=M>>>16,x+=T>>>16,R+=x>>>16,e[2]=N=65535&x|R<<16,t[2]=q=65535&M|T<<16,A=D,S=H,M=65535&S,T=S>>>16,x=65535&A,R=A>>>16,A=e[3],S=t[3],M+=65535&S,T+=S>>>16,x+=65535&A,R+=A>>>16,T+=M>>>16,x+=T>>>16,R+=x>>>16,e[3]=D=65535&x|R<<16,t[3]=H=65535&M|T<<16,A=L,S=G,M=65535&S,T=S>>>16,x=65535&A,R=A>>>16,A=e[4],S=t[4],M+=65535&S,T+=S>>>16,x+=65535&A,R+=A>>>16,T+=M>>>16,x+=T>>>16,R+=x>>>16,e[4]=L=65535&x|R<<16,t[4]=G=65535&M|T<<16,A=B,S=V,M=65535&S,T=S>>>16,x=65535&A,R=A>>>16,A=e[5],S=t[5],M+=65535&S,T+=S>>>16,x+=65535&A,R+=A>>>16,T+=M>>>16,x+=T>>>16,R+=x>>>16,e[5]=B=65535&x|R<<16,t[5]=V=65535&M|T<<16,A=U,S=W,M=65535&S,T=S>>>16,x=65535&A,R=A>>>16,A=e[6],S=t[6],M+=65535&S,T+=S>>>16,x+=65535&A,R+=A>>>16,T+=M>>>16,x+=T>>>16,R+=x>>>16,e[6]=U=65535&x|R<<16,t[6]=W=65535&M|T<<16,A=j,S=K,M=65535&S,T=S>>>16,x=65535&A,R=A>>>16,A=e[7],S=t[7],M+=65535&S,T+=S>>>16,x+=65535&A,R+=A>>>16,T+=M>>>16,x+=T>>>16,R+=x>>>16,e[7]=j=65535&x|R<<16,t[7]=K=65535&M|T<<16,Y+=128,r-=128}return r}function U(e,i,r){var n,s=new Int32Array(8),a=new Int32Array(8),o=new Uint8Array(256),f=r;for(s[0]=1779033703,s[1]=3144134277,s[2]=1013904242,s[3]=2773480762,s[4]=1359893119,s[5]=2600822924,s[6]=528734635,s[7]=1541459225,a[0]=4089235720,a[1]=2227873595,a[2]=4271175723,a[3]=1595750129,a[4]=2917565137,a[5]=725511199,a[6]=4215389547,a[7]=327033209,B(s,a,i,r),r%=128,n=0;n=0;--n)r=i[n/8|0]>>(7&n)&1,F(e,t,r),j(t,e),j(e,e),F(e,t,r)}function H(e,t){var i=[ee(),ee(),ee(),ee()];g(i[0],he),g(i[1],ce),g(i[2],se),T(i[3],he,ce),q(e,i,t)}function G(e,t,i){var r,n=new Uint8Array(64),s=[ee(),ee(),ee(),ee()];for(i||te(t,32),U(n,t,32),n[0]&=248,n[31]&=127,n[31]|=64,H(s,n),z(e,s),r=0;r<32;r++)t[r+32]=e[r];return 0}function V(e,t){var i,r,n,s;for(r=63;r>=32;--r){for(i=0,n=r-32,s=r-12;n>8,t[n]-=256*i;t[n]+=i,t[r]=0}for(i=0,n=0;n<32;n++)t[n]+=i-(t[31]>>4)*we[n],i=t[n]>>8,t[n]&=255;for(n=0;n<32;n++)t[n]-=i*we[n];for(r=0;r<32;r++)t[r+1]+=t[r]>>8,e[r]=255&t[r]}function W(e){var t,i=new Float64Array(64);for(t=0;t<64;t++)i[t]=e[t];for(t=0;t<64;t++)e[t]=0;V(e,i)}function K(e,t,i,r){var n,s,a=new Uint8Array(64),o=new Uint8Array(64),f=new Uint8Array(64),h=new Float64Array(64),c=[ee(),ee(),ee(),ee()];U(a,r,32),a[0]&=248,a[31]&=127,a[31]|=64;var l=i+64;for(n=0;n>7&&M(e[0],ne,e[0]),T(e[3],e[0],e[1]),0)}function Z(e,t,i,r){var n,a,o=new Uint8Array(32),f=new Uint8Array(64),h=[ee(),ee(),ee(),ee()],c=[ee(),ee(),ee(),ee()];if(a=-1,i<64)return-1;if(Y(c,r))return-1;for(n=0;n>>13|i<<3),r=255&e[4]|(255&e[5])<<8,this.r[2]=7939&(i>>>10|r<<6),n=255&e[6]|(255&e[7])<<8,this.r[3]=8191&(r>>>7|n<<9),s=255&e[8]|(255&e[9])<<8,this.r[4]=255&(n>>>4|s<<12),this.r[5]=s>>>1&8190,a=255&e[10]|(255&e[11])<<8,this.r[6]=8191&(s>>>14|a<<2),o=255&e[12]|(255&e[13])<<8,this.r[7]=8065&(a>>>11|o<<5),f=255&e[14]|(255&e[15])<<8,this.r[8]=8191&(o>>>8|f<<8),this.r[9]=f>>>5&127,this.pad[0]=255&e[16]|(255&e[17])<<8,this.pad[1]=255&e[18]|(255&e[19])<<8,this.pad[2]=255&e[20]|(255&e[21])<<8,this.pad[3]=255&e[22]|(255&e[23])<<8,this.pad[4]=255&e[24]|(255&e[25])<<8,this.pad[5]=255&e[26]|(255&e[27])<<8,this.pad[6]=255&e[28]|(255&e[29])<<8,this.pad[7]=255&e[30]|(255&e[31])<<8};de.prototype.blocks=function(e,t,i){for(var r,n,s,a,o,f,h,c,l,u,d,p,b,m,w,g,v,_,y,k=this.fin?0:2048,E=this.h[0],A=this.h[1],S=this.h[2],M=this.h[3],T=this.h[4],x=this.h[5],R=this.h[6],I=this.h[7],C=this.h[8],P=this.h[9],O=this.r[0],N=this.r[1],D=this.r[2],L=this.r[3],B=this.r[4],U=this.r[5],j=this.r[6],F=this.r[7],z=this.r[8],q=this.r[9];i>=16;)r=255&e[t+0]|(255&e[t+1])<<8,E+=8191&r,n=255&e[t+2]|(255&e[t+3])<<8,A+=8191&(r>>>13|n<<3),s=255&e[t+4]|(255&e[t+5])<<8,S+=8191&(n>>>10|s<<6),a=255&e[t+6]|(255&e[t+7])<<8,M+=8191&(s>>>7|a<<9),o=255&e[t+8]|(255&e[t+9])<<8,T+=8191&(a>>>4|o<<12),x+=o>>>1&8191,f=255&e[t+10]|(255&e[t+11])<<8,R+=8191&(o>>>14|f<<2),h=255&e[t+12]|(255&e[t+13])<<8,I+=8191&(f>>>11|h<<5),c=255&e[t+14]|(255&e[t+15])<<8,C+=8191&(h>>>8|c<<8),P+=c>>>5|k,l=0,u=l,u+=E*O,u+=A*(5*q),u+=S*(5*z),u+=M*(5*F),u+=T*(5*j),l=u>>>13,u&=8191,u+=x*(5*U),u+=R*(5*B),u+=I*(5*L),u+=C*(5*D),u+=P*(5*N),l+=u>>>13,u&=8191,d=l,d+=E*N,d+=A*O,d+=S*(5*q),d+=M*(5*z),d+=T*(5*F),l=d>>>13,d&=8191,d+=x*(5*j),d+=R*(5*U),d+=I*(5*B),d+=C*(5*L),d+=P*(5*D),l+=d>>>13,d&=8191,p=l,p+=E*D,p+=A*N,p+=S*O,p+=M*(5*q),p+=T*(5*z),l=p>>>13,p&=8191,p+=x*(5*F),p+=R*(5*j),p+=I*(5*U),p+=C*(5*B),p+=P*(5*L),l+=p>>>13,p&=8191,b=l,b+=E*L,b+=A*D,b+=S*N,b+=M*O,b+=T*(5*q),l=b>>>13,b&=8191,b+=x*(5*z),b+=R*(5*F),b+=I*(5*j),b+=C*(5*U),b+=P*(5*B),l+=b>>>13,b&=8191,m=l,m+=E*B,m+=A*L,m+=S*D,m+=M*N,m+=T*O,l=m>>>13,m&=8191,m+=x*(5*q),m+=R*(5*z),m+=I*(5*F),m+=C*(5*j),m+=P*(5*U),l+=m>>>13,m&=8191,w=l,w+=E*U,w+=A*B,w+=S*L,w+=M*D,w+=T*N,l=w>>>13,w&=8191,w+=x*O,w+=R*(5*q),w+=I*(5*z),w+=C*(5*F),w+=P*(5*j),l+=w>>>13,w&=8191,g=l,g+=E*j,g+=A*U,g+=S*B,g+=M*L,g+=T*D,l=g>>>13,g&=8191,g+=x*N,g+=R*O,g+=I*(5*q),g+=C*(5*z),g+=P*(5*F),l+=g>>>13,g&=8191,v=l,v+=E*F,v+=A*j,v+=S*U,v+=M*B,v+=T*L,l=v>>>13,v&=8191,v+=x*D,v+=R*N,v+=I*O,v+=C*(5*q),v+=P*(5*z),l+=v>>>13,v&=8191,_=l,_+=E*z,_+=A*F,_+=S*j,_+=M*U,_+=T*B,l=_>>>13,_&=8191,_+=x*L,_+=R*D,_+=I*N,_+=C*O,_+=P*(5*q),l+=_>>>13,_&=8191,y=l,y+=E*q,y+=A*z,y+=S*F,y+=M*j,y+=T*U,l=y>>>13,y&=8191,y+=x*B,y+=R*L,y+=I*D,y+=C*N,y+=P*O,l+=y>>>13,y&=8191,l=(l<<2)+l|0,l=l+u|0,u=8191&l,l>>>=13,d+=l,E=u,A=d,S=p,M=b,T=m,x=w,R=g,I=v,C=_,P=y,t+=16,i-=16;this.h[0]=E,this.h[1]=A,this.h[2]=S,this.h[3]=M,this.h[4]=T,this.h[5]=x,this.h[6]=R,this.h[7]=I,this.h[8]=C,this.h[9]=P},de.prototype.finish=function(e,t){var i,r,n,s,a=new Uint16Array(10);if(this.leftover){for(s=this.leftover,this.buffer[s++]=1;s<16;s++)this.buffer[s]=0;this.fin=1,this.blocks(this.buffer,0,16)}for(i=this.h[1]>>>13,this.h[1]&=8191,s=2;s<10;s++)this.h[s]+=i,i=this.h[s]>>>13,this.h[s]&=8191;for(this.h[0]+=5*i,i=this.h[0]>>>13,this.h[0]&=8191,this.h[1]+=i,i=this.h[1]>>>13,this.h[1]&=8191,this.h[2]+=i,a[0]=this.h[0]+5,i=a[0]>>>13,a[0]&=8191,s=1;s<10;s++)a[s]=this.h[s]+i,i=a[s]>>>13,a[s]&=8191;for(a[9]-=8192,r=(1^i)-1,s=0;s<10;s++)a[s]&=r;for(r=~r,s=0;s<10;s++)this.h[s]=this.h[s]&r|a[s];for(this.h[0]=65535&(this.h[0]|this.h[1]<<13),this.h[1]=65535&(this.h[1]>>>3|this.h[2]<<10),this.h[2]=65535&(this.h[2]>>>6|this.h[3]<<7),this.h[3]=65535&(this.h[3]>>>9|this.h[4]<<4),this.h[4]=65535&(this.h[4]>>>12|this.h[5]<<1|this.h[6]<<14),this.h[5]=65535&(this.h[6]>>>2|this.h[7]<<11),this.h[6]=65535&(this.h[7]>>>5|this.h[8]<<8),this.h[7]=65535&(this.h[8]>>>8|this.h[9]<<5),n=this.h[0]+this.pad[0],this.h[0]=65535&n,s=1;s<8;s++)n=(this.h[s]+this.pad[s]|0)+(n>>>16)|0,this.h[s]=65535&n;e[t+0]=this.h[0]>>>0&255,e[t+1]=this.h[0]>>>8&255,e[t+2]=this.h[1]>>>0&255,e[t+3]=this.h[1]>>>8&255,e[t+4]=this.h[2]>>>0&255,e[t+5]=this.h[2]>>>8&255,e[t+6]=this.h[3]>>>0&255,e[t+7]=this.h[3]>>>8&255,e[t+8]=this.h[4]>>>0&255,e[t+9]=this.h[4]>>>8&255,e[t+10]=this.h[5]>>>0&255,e[t+11]=this.h[5]>>>8&255,e[t+12]=this.h[6]>>>0&255,e[t+13]=this.h[6]>>>8&255,e[t+14]=this.h[7]>>>0&255,e[t+15]=this.h[7]>>>8&255},de.prototype.update=function(e,t,i){var r,n;if(this.leftover){for(n=16-this.leftover,n>i&&(n=i),r=0;r=16&&(n=i-i%16,this.blocks(e,t,n),t+=n,i-=n),i){for(r=0;r=0},e.sign.keyPair=function(){var e=new Uint8Array(Ce),t=new Uint8Array(Pe);return G(e,t),{publicKey:e,secretKey:t}},e.sign.keyPair.fromSecretKey=function(e){if(J(e),e.length!==Pe)throw new Error("bad secret key size");for(var t=new Uint8Array(Ce),i=0;i * MIT Licensed */ -var r=e.exports=i(125);r.Server=i(246),r.Sender=i(124),r.Receiver=i(123),r.createServer=function(e,t){var i=new r.Server(e);return"function"==typeof t&&i.on("connection",t),i},r.connect=r.createConnection=function(e,t){var i=new r(e);return"function"==typeof t&&i.on("open",t),i}},function(e,t,i){"use strict";/*! +var r=e.exports=i(129);r.Server=i(248),r.Sender=i(128),r.Receiver=i(127),r.createServer=function(e,t){var i=new r.Server(e);return"function"==typeof t&&i.on("connection",t),i},r.connect=r.createConnection=function(e,t){var i=new r(e);return"function"==typeof t&&i.on("open",t),i}},function(e,t,i){"use strict";/*! * ws: a node.js websocket client * Copyright(c) 2011 Einar Otto Stangvik * MIT Licensed */ -try{e.exports=i(160)}catch(t){e.exports=i(241)}},function(e,t){/*! +try{e.exports=i(162)}catch(t){e.exports=i(243)}},function(e,t){/*! * ws: a node.js websocket client * Copyright(c) 2011 Einar Otto Stangvik * MIT Licensed */ -e.exports={isValidErrorCode:function(e){return e>=1e3&&e<=1011&&1004!=e&&1005!=e&&1006!=e||e>=3e3&&e<=4999},1e3:"normal",1001:"going away",1002:"protocol error",1003:"unsupported data",1004:"reserved",1005:"reserved for extensions",1006:"reserved for extensions",1007:"inconsistent or invalid data",1008:"policy violation",1009:"message too big",1010:"extension handshake missing",1011:"an unexpected condition prevented the request from being fulfilled"}},function(e,t,i){function r(e){e=e||"";var t={};return e.split(",").forEach(function(e){var i=e.split(";"),r=i.shift().trim(),n=t[r]=t[r]||[],s={};i.forEach(function(e){var t=e.trim().split("="),i=t[0],r=t[1];"undefined"==typeof r?r=!0:('"'===r[0]&&(r=r.slice(1)),'"'===r[r.length-1]&&(r=r.slice(0,r.length-1))),(s[i]=s[i]||[]).push(r)}),n.push(s)}),t}function n(e){return Object.keys(e).map(function(t){var i=e[t];return s.isArray(i)||(i=[i]),i.map(function(e){return[t].concat(Object.keys(e).map(function(t){var i=e[t];return s.isArray(i)||(i=[i]),i.map(function(e){return e===!0?t:t+"="+e}).join("; ")})).join("; ")}).join(", ")}).join(", ")}var s=i(8);t.parse=r,t.format=n},function(e,t,i){(function(t){function r(e,i){if(this instanceof r==!1)throw new TypeError("Classes can't be function-called");"number"==typeof e&&(i=e,e={});var n=-1;this.fragmentedBufferPool=new c(1024,function(e,t){return e.used+t},function(e){return n=n>=0?Math.ceil((n+e.used)/2):e.used});var s=-1;this.unfragmentedBufferPool=new c(1024,function(e,t){return e.used+t},function(e){return s=s>=0?Math.ceil((s+e.used)/2):e.used}),this.extensions=e||{},this.maxPayload=i||0,this.currentPayloadLength=0,this.state={activeFragmentedOperation:null,lastFragment:!1,masked:!1,opcode:0,fragmentedOperation:!1},this.overflow=[],this.headerBuffer=new t(10),this.expectOffset=0,this.expectBuffer=null,this.expectHandler=null,this.currentMessage=[],this.currentMessageLength=0,this.messageHandlers=[],this.expectHeader(2,this.processPacket),this.dead=!1,this.processing=!1,this.onerror=function(){},this.ontext=function(){},this.onbinary=function(){},this.onclose=function(){},this.onping=function(){},this.onpong=function(){}}function n(e){return(this[e]<<8)+this[e+1]}function s(e){return(this[e]<<24)+(this[e+1]<<16)+(this[e+2]<<8)+this[e+3]}function a(e,t,i,r){switch(e){default:t.copy(i,r,0,e);break;case 16:i[r+15]=t[15];case 15:i[r+14]=t[14];case 14:i[r+13]=t[13];case 13:i[r+12]=t[12];case 12:i[r+11]=t[11];case 11:i[r+10]=t[10];case 10:i[r+9]=t[9];case 9:i[r+8]=t[8];case 8:i[r+7]=t[7];case 7:i[r+6]=t[6];case 6:i[r+5]=t[5];case 5:i[r+4]=t[4];case 4:i[r+3]=t[3];case 3:i[r+2]=t[2];case 2:i[r+1]=t[1];case 1:i[r]=t[0]}}function o(e){var t={};for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);return t}/*! +e.exports={isValidErrorCode:function(e){return e>=1e3&&e<=1011&&1004!=e&&1005!=e&&1006!=e||e>=3e3&&e<=4999},1e3:"normal",1001:"going away",1002:"protocol error",1003:"unsupported data",1004:"reserved",1005:"reserved for extensions",1006:"reserved for extensions",1007:"inconsistent or invalid data",1008:"policy violation",1009:"message too big",1010:"extension handshake missing",1011:"an unexpected condition prevented the request from being fulfilled"}},function(e,t,i){function r(e){e=e||"";var t={};return e.split(",").forEach(function(e){var i=e.split(";"),r=i.shift().trim(),n=t[r]=t[r]||[],s={};i.forEach(function(e){var t=e.trim().split("="),i=t[0],r=t[1];"undefined"==typeof r?r=!0:('"'===r[0]&&(r=r.slice(1)),'"'===r[r.length-1]&&(r=r.slice(0,r.length-1))),(s[i]=s[i]||[]).push(r)}),n.push(s)}),t}function n(e){return Object.keys(e).map(function(t){var i=e[t];return s.isArray(i)||(i=[i]),i.map(function(e){return[t].concat(Object.keys(e).map(function(t){var i=e[t];return s.isArray(i)||(i=[i]),i.map(function(e){return e===!0?t:t+"="+e}).join("; ")})).join("; ")}).join(", ")}).join(", ")}var s=i(10);t.parse=r,t.format=n},function(e,t,i){(function(t){function r(e,i){if(this instanceof r==!1)throw new TypeError("Classes can't be function-called");"number"==typeof e&&(i=e,e={});var n=-1;this.fragmentedBufferPool=new c(1024,function(e,t){return e.used+t},function(e){return n=n>=0?Math.ceil((n+e.used)/2):e.used});var s=-1;this.unfragmentedBufferPool=new c(1024,function(e,t){return e.used+t},function(e){return s=s>=0?Math.ceil((s+e.used)/2):e.used}),this.extensions=e||{},this.maxPayload=i||0,this.currentPayloadLength=0,this.state={activeFragmentedOperation:null,lastFragment:!1,masked:!1,opcode:0,fragmentedOperation:!1},this.overflow=[],this.headerBuffer=new t(10),this.expectOffset=0,this.expectBuffer=null,this.expectHandler=null,this.currentMessage=[],this.currentMessageLength=0,this.messageHandlers=[],this.expectHeader(2,this.processPacket),this.dead=!1,this.processing=!1,this.onerror=function(){},this.ontext=function(){},this.onbinary=function(){},this.onclose=function(){},this.onping=function(){},this.onpong=function(){}}function n(e){return(this[e]<<8)+this[e+1]}function s(e){return(this[e]<<24)+(this[e+1]<<16)+(this[e+2]<<8)+this[e+3]}function a(e,t,i,r){switch(e){default:t.copy(i,r,0,e);break;case 16:i[r+15]=t[15];case 15:i[r+14]=t[14];case 14:i[r+13]=t[13];case 13:i[r+12]=t[12];case 12:i[r+11]=t[11];case 11:i[r+10]=t[10];case 10:i[r+9]=t[9];case 9:i[r+8]=t[8];case 8:i[r+7]=t[7];case 7:i[r+6]=t[6];case 6:i[r+5]=t[5];case 5:i[r+4]=t[4];case 4:i[r+3]=t[3];case 3:i[r+2]=t[2];case 2:i[r+1]=t[1];case 1:i[r]=t[0]}}function o(e){var t={};for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);return t}/*! * ws: a node.js websocket client * Copyright(c) 2011 Einar Otto Stangvik * MIT Licensed */ -var f=(i(8),i(245).Validation),h=i(121),c=i(240),l=i(120).BufferUtil,u=i(40);e.exports=r,r.prototype.add=function(e){if(!this.dead){var t=e.length;if(0!=t){if(null==this.expectBuffer)return void this.overflow.push(e);var i=Math.min(t,this.expectBuffer.length-this.expectOffset);for(a(i,e,this.expectBuffer,this.expectOffset),this.expectOffset+=i,i0&&this.overflow.length>0;){var r=this.overflow.pop();i0&&this.overflow.length>0;){var r=this.overflow.pop();i=8&&t)return void this.error("control frames cannot have the Per-message Compressed bits",1002);this.state.compressed=t,this.state.opcode=i,this.state.lastFragment===!1?(this.state.fragmentedOperation=!0,this.state.activeFragmentedOperation=i):this.state.fragmentedOperation=!1}var r=d[this.state.opcode];"undefined"==typeof r?this.error("no handler for opcode "+this.state.opcode,1002):r.start.call(this,e)},r.prototype.endPacket=function(){this.dead||(this.state.fragmentedOperation?this.state.lastFragment&&this.fragmentedBufferPool.reset(!0):this.unfragmentedBufferPool.reset(!0),this.expectOffset=0,this.expectBuffer=null,this.expectHandler=null,this.state.lastFragment&&this.state.opcode===this.state.activeFragmentedOperation&&(this.state.activeFragmentedOperation=null),this.currentPayloadLength=0,this.state.lastFragment=!1,this.state.opcode=null!=this.state.activeFragmentedOperation?this.state.activeFragmentedOperation:0,this.state.masked=!1,this.expectHeader(2,this.processPacket))},r.prototype.reset=function(){this.dead||(this.state={activeFragmentedOperation:null,lastFragment:!1,masked:!1,opcode:0,fragmentedOperation:!1},this.fragmentedBufferPool.reset(!0),this.unfragmentedBufferPool.reset(!0),this.expectOffset=0,this.expectBuffer=null,this.expectHandler=null,this.overflow=[],this.currentMessage=[],this.currentMessageLength=0,this.messageHandlers=[],this.currentPayloadLength=0)},r.prototype.unmask=function(e,t,i){return null!=e&&null!=t&&l.unmask(t,e),i?t:null!=t?t.toString("utf8"):""},r.prototype.error=function(e,t){if(!this.dead)return this.reset(),"string"==typeof e?this.onerror(new Error(e),t):e.constructor==Error?this.onerror(e,t):this.onerror(new Error("An error occured"),t),this},r.prototype.flush=function(){if(!this.processing&&!this.dead){var e=this.messageHandlers.shift();if(e){this.processing=!0;var t=this;e(function(){t.processing=!1,t.flush()})}}},r.prototype.applyExtensions=function(e,t,i,r){var n=this;i?this.extensions[u.extensionName].decompress(e,t,function(e,t){if(!n.dead)return e?void r(new Error("invalid compressed data")):void r(null,t)}):r(null,e)},r.prototype.maxPayloadExceeded=function(e){if(void 0===this.maxPayload||null===this.maxPayload||this.maxPayload<1)return!1;var t=this.currentPayloadLength+e;return t0&&r.currentMessageLength+n.length0&&r.currentMessageLength+n.length1?n.call(t,0):1e3;if(!h.isValidErrorCode(e))return void i.error("invalid error code",1002);var s="";if(t&&t.length>2){var a=t.slice(2);if(!f.isValidUTF8(a))return void i.error("invalid utf8 sequence",1007);s=a.toString("utf8")}i.onclose(e,s,{masked:r.masked}),i.reset()}),this.flush()}},9:{start:function(e){var t=this;if(0==t.state.lastFragment)return void t.error("fragmented ping is not supported",1002);var i=127&e[1];i<126?d[9].getData.call(t,i):t.error("control frames cannot have more than 125 bytes of data",1002)},getData:function(e){var t=this;t.state.masked?t.expectHeader(4,function(i){var r=i;t.expectData(e,function(e){d[9].finish.call(t,r,e)})}):t.expectData(e,function(e){d[9].finish.call(t,null,e)})},finish:function(e,t){var i=this;t=this.unmask(e,t,!0);var r=o(this.state);this.messageHandlers.push(function(e){i.onping(t,{masked:r.masked,binary:!0}),e()}),this.flush(),this.endPacket()}},10:{start:function(e){var t=this;if(0==t.state.lastFragment)return void t.error("fragmented pong is not supported",1002);var i=127&e[1];i<126?d[10].getData.call(t,i):t.error("control frames cannot have more than 125 bytes of data",1002)},getData:function(e){var t=this;this.state.masked?this.expectHeader(4,function(i){var r=i;t.expectData(e,function(e){d[10].finish.call(t,r,e)})}):this.expectData(e,function(e){d[10].finish.call(t,null,e)})},finish:function(e,t){var i=this;t=i.unmask(e,t,!0);var r=o(this.state);this.messageHandlers.push(function(e){i.onpong(t,{masked:r.masked,binary:!0}),e()}),this.flush(),this.endPacket()}}}}).call(t,i(0).Buffer)},function(e,t,i){(function(t){function r(e,t){if(this instanceof r==!1)throw new TypeError("Classes can't be function-called");f.EventEmitter.call(this),this._socket=e,this.extensions=t||{},this.firstFragment=!0,this.compress=!1,this.messageHandlers=[],this.processing=!1}function n(e,t){this[t]=(65280&e)>>8,this[t+1]=255&e}function s(e,t){this[t]=(4278190080&e)>>24,this[t+1]=(16711680&e)>>16,this[t+2]=(65280&e)>>8,this[t+3]=255&e}function a(e){for(var i=new Uint8Array(e.buffer||e),r=e.byteLength||e.length,n=e.byteOffset||0,s=new t(r),a=0;a0&&this.overflow.length>0;){var r=this.overflow.pop();i0&&this.overflow.length>0;){var r=this.overflow.pop();i=8&&t)return void this.error("control frames cannot have the Per-message Compressed bits",1002);this.state.compressed=t,this.state.opcode=i,this.state.lastFragment===!1?(this.state.fragmentedOperation=!0,this.state.activeFragmentedOperation=i):this.state.fragmentedOperation=!1}var r=d[this.state.opcode];"undefined"==typeof r?this.error("no handler for opcode "+this.state.opcode,1002):r.start.call(this,e)},r.prototype.endPacket=function(){this.dead||(this.state.fragmentedOperation?this.state.lastFragment&&this.fragmentedBufferPool.reset(!0):this.unfragmentedBufferPool.reset(!0),this.expectOffset=0,this.expectBuffer=null,this.expectHandler=null,this.state.lastFragment&&this.state.opcode===this.state.activeFragmentedOperation&&(this.state.activeFragmentedOperation=null),this.currentPayloadLength=0,this.state.lastFragment=!1,this.state.opcode=null!=this.state.activeFragmentedOperation?this.state.activeFragmentedOperation:0,this.state.masked=!1,this.expectHeader(2,this.processPacket))},r.prototype.reset=function(){this.dead||(this.state={activeFragmentedOperation:null,lastFragment:!1,masked:!1,opcode:0,fragmentedOperation:!1},this.fragmentedBufferPool.reset(!0),this.unfragmentedBufferPool.reset(!0),this.expectOffset=0,this.expectBuffer=null,this.expectHandler=null,this.overflow=[],this.currentMessage=[],this.currentMessageLength=0,this.messageHandlers=[],this.currentPayloadLength=0)},r.prototype.unmask=function(e,t,i){return null!=e&&null!=t&&l.unmask(t,e),i?t:null!=t?t.toString("utf8"):""},r.prototype.error=function(e,t){if(!this.dead)return this.reset(),"string"==typeof e?this.onerror(new Error(e),t):e.constructor==Error?this.onerror(e,t):this.onerror(new Error("An error occured"),t),this},r.prototype.flush=function(){if(!this.processing&&!this.dead){var e=this.messageHandlers.shift();if(e){this.processing=!0;var t=this;e(function(){t.processing=!1,t.flush()})}}},r.prototype.applyExtensions=function(e,t,i,r){var n=this;i?this.extensions[u.extensionName].decompress(e,t,function(e,t){if(!n.dead)return e?void r(new Error("invalid compressed data")):void r(null,t)}):r(null,e)},r.prototype.maxPayloadExceeded=function(e){if(void 0===this.maxPayload||null===this.maxPayload||this.maxPayload<1)return!1;var t=this.currentPayloadLength+e;return t0&&r.currentMessageLength+n.length0&&r.currentMessageLength+n.length1?n.call(t,0):1e3;if(!h.isValidErrorCode(e))return void i.error("invalid error code",1002);var s="";if(t&&t.length>2){var a=t.slice(2);if(!f.isValidUTF8(a))return void i.error("invalid utf8 sequence",1007);s=a.toString("utf8")}i.onclose(e,s,{masked:r.masked}),i.reset()}),this.flush()}},9:{start:function(e){var t=this;if(0==t.state.lastFragment)return void t.error("fragmented ping is not supported",1002);var i=127&e[1];i<126?d[9].getData.call(t,i):t.error("control frames cannot have more than 125 bytes of data",1002)},getData:function(e){var t=this;t.state.masked?t.expectHeader(4,function(i){var r=i;t.expectData(e,function(e){d[9].finish.call(t,r,e)})}):t.expectData(e,function(e){d[9].finish.call(t,null,e)})},finish:function(e,t){var i=this;t=this.unmask(e,t,!0);var r=o(this.state);this.messageHandlers.push(function(e){i.onping(t,{masked:r.masked,binary:!0}),e()}),this.flush(),this.endPacket()}},10:{start:function(e){var t=this;if(0==t.state.lastFragment)return void t.error("fragmented pong is not supported",1002);var i=127&e[1];i<126?d[10].getData.call(t,i):t.error("control frames cannot have more than 125 bytes of data",1002)},getData:function(e){var t=this;this.state.masked?this.expectHeader(4,function(i){var r=i;t.expectData(e,function(e){d[10].finish.call(t,r,e)})}):this.expectData(e,function(e){d[10].finish.call(t,null,e)})},finish:function(e,t){var i=this;t=i.unmask(e,t,!0);var r=o(this.state);this.messageHandlers.push(function(e){i.onpong(t,{masked:r.masked,binary:!0}),e()}),this.flush(),this.endPacket()}}}}).call(t,i(0).Buffer)},function(e,t,i){(function(t){function r(e,t){if(this instanceof r==!1)throw new TypeError("Classes can't be function-called");f.EventEmitter.call(this),this._socket=e,this.extensions=t||{},this.firstFragment=!0,this.compress=!1,this.messageHandlers=[],this.processing=!1}function n(e,t){this[t]=(65280&e)>>8,this[t+1]=255&e}function s(e,t){this[t]=(4278190080&e)>>24,this[t+1]=(16711680&e)>>16,this[t+2]=(65280&e)>>8,this[t+3]=255&e}function a(e){for(var i=new Uint8Array(e.buffer||e),r=e.byteLength||e.length,n=e.byteOffset||0,s=new t(r),a=0;a * MIT Licensed */ -var f=i(3),h=i(8),c=(f.EventEmitter,i(121)),l=i(120).BufferUtil,u=i(40);h.inherits(r,f.EventEmitter),r.prototype.close=function(e,i,r,s){if("undefined"!=typeof e&&("number"!=typeof e||!c.isValidErrorCode(e)))throw new Error("first argument must be a valid error code number");e=e||1e3;var a=new t(2+(i?t.byteLength(i):0));n.call(a,e,0),a.length>2&&a.write(i,2);var o=this;this.messageHandlers.push(function(e){o.frameAndSend(8,a,!0,r),e(),"function"==typeof s&&s()}),this.flush()},r.prototype.ping=function(e,t){var i=t&&t.mask,r=this;this.messageHandlers.push(function(t){r.frameAndSend(9,e||"",!0,i),t()}),this.flush()},r.prototype.pong=function(e,t){var i=t&&t.mask,r=this;this.messageHandlers.push(function(t){r.frameAndSend(10,e||"",!0,i),t()}),this.flush()},r.prototype.send=function(e,t,i){var r=!t||t.fin!==!1,n=t&&t.mask,s=t&&t.compress,a=t&&t.binary?2:1;this.firstFragment===!1?(a=0,s=!1):(this.firstFragment=!1,this.compress=s),r&&(this.firstFragment=!0);var o=this.compress,f=this;this.messageHandlers.push(function(t){f.applyExtensions(e,r,o,function(e,o){return e?void("function"==typeof i?i(e):f.emit("error",e)):(f.frameAndSend(a,o,r,n,s,i),void t())})}),this.flush()},r.prototype.frameAndSend=function(e,i,r,f,h,c){var u=!1;if(i){t.isBuffer(i)||(u=!0,!i||"undefined"==typeof i.byteLength&&"undefined"==typeof i.buffer?("number"==typeof i&&(i=i.toString()),i=new t(i)):i=a(i));var d=i.length,p=f?6:2,b=d;d>=65536?(p+=8,b=127):d>125&&(p+=2,b=126);var m=d<32768||f&&!u,w=m?d+p:p,g=new t(w);switch(g[0]=r?128|e:e,h&&(g[0]|=64),b){case 126:n.call(g,d,2);break;case 127:s.call(g,0,2),s.call(g,d,6)}if(f){g[1]=128|b;var v=o();if(g[p-4]=v[0],g[p-3]=v[1],g[p-2]=v[2],g[p-1]=v[3],m){l.mask(i,v,g,p,d);try{this._socket.write(g,"binary",c)}catch(e){"function"==typeof c?c(e):this.emit("error",e)}}else{l.mask(i,v,i,0,d);try{this._socket.write(g,"binary"),this._socket.write(i,"binary",c)}catch(e){"function"==typeof c?c(e):this.emit("error",e)}}}else if(g[1]=b,m){i.copy(g,p);try{this._socket.write(g,"binary",c)}catch(e){"function"==typeof c?c(e):this.emit("error",e)}}else try{this._socket.write(g,"binary"),this._socket.write(i,"binary",c)}catch(e){"function"==typeof c?c(e):this.emit("error",e)}}else try{this._socket.write(new t([e|(r?128:0),0|(f?128:0)].concat(f?[0,0,0,0]:[])),"binary",c)}catch(e){"function"==typeof c?c(e):this.emit("error",e)}},r.prototype.flush=function(){if(!this.processing){var e=this.messageHandlers.shift();if(e){this.processing=!0;var t=this;e(function(){t.processing=!1,t.flush()})}}},r.prototype.applyExtensions=function(e,t,i,r){i&&e?((e.buffer||e)instanceof ArrayBuffer&&(e=a(e)),this.extensions[u.extensionName].compress(e,t,r)):r(null,e)},e.exports=r}).call(t,i(0).Buffer)},function(e,t,i){"use strict";(function(t,r){function n(e,t,i){return this instanceof n==!1?new n(e,t,i):(C.call(this),t&&!Array.isArray(t)&&"object"==typeof t&&(i=t,t=null),"string"==typeof t&&(t=[t]),Array.isArray(t)||(t=[]),this._socket=null,this._ultron=null,this._closeReceived=!1,this.bytesReceived=0,this.readyState=null,this.supports={},this.extensions={},this._binaryType="nodebuffer",void(Array.isArray(e)?h.apply(this,e.concat(i)):c.apply(this,[e,t,i])))}function s(e,t,i){this.type="message",this.data=e,this.target=i,this.binary=t}function a(e,t,i){this.type="close",this.wasClean="undefined"==typeof e||1e3===e,this.code=e,this.reason=t,this.target=i}function o(e){this.type="open",this.target=e}function f(e,t,i){var r=t;return t&&(e&&443!=i||!e&&80!=i)&&(r=r+":"+i),r}function h(e,t,i,r){r=new E({protocolVersion:I,protocol:null,extensions:{},maxPayload:0}).merge(r),this.protocol=r.value.protocol,this.protocolVersion=r.value.protocolVersion,this.extensions=r.value.extensions,this.supports.binary="hixie-76"!==this.protocolVersion,this.upgradeReq=e,this.readyState=n.CONNECTING,this._isServer=!0,this.maxPayload=r.value.maxPayload,"hixie-76"===r.value.protocolVersion?l.call(this,T,M,t,i):l.call(this,S,A,t,i)}function c(e,i,r){if(r=new E({origin:null,protocolVersion:I,host:null,headers:null,protocol:i.join(","),agent:null,pfx:null,key:null,passphrase:null,cert:null,ca:null,ciphers:null,rejectUnauthorized:null,perMessageDeflate:!0,localAddress:null}).merge(r),8!==r.value.protocolVersion&&13!==r.value.protocolVersion)throw new Error("unsupported protocol version");var s=m.parse(e),a="ws+unix:"===s.protocol;if(!s.host&&!a)throw new Error("invalid url");var o,h="wss:"===s.protocol||"https:"===s.protocol,c=h?v:g,u=s.port||(h?443:80),d=s.auth,p={};r.value.perMessageDeflate&&(o=new x(typeof r.value.perMessageDeflate!==!0?r.value.perMessageDeflate:{},!1),p[x.extensionName]=o.offer()),this._isServer=!1,this.url=e,this.protocolVersion=r.value.protocolVersion,this.supports.binary="hixie-76"!==this.protocolVersion;var w=new t(r.value.protocolVersion+"-"+Date.now()).toString("base64"),y=_.createHash("sha1");y.update(w+"258EAFA5-E914-47DA-95CA-C5AB0DC85B11");var k=y.digest("base64"),M=r.value.agent,T=f(h,s.hostname,u),C={port:u,host:s.hostname,headers:{Connection:"Upgrade",Upgrade:"websocket",Host:T,"Sec-WebSocket-Version":r.value.protocolVersion,"Sec-WebSocket-Key":w}};if(d&&(C.headers.Authorization="Basic "+new t(d).toString("base64")),r.value.protocol&&(C.headers["Sec-WebSocket-Protocol"]=r.value.protocol),r.value.host&&(C.headers.Host=r.value.host),r.value.headers)for(var P in r.value.headers)r.value.headers.hasOwnProperty(P)&&(C.headers[P]=r.value.headers[P]);Object.keys(p).length&&(C.headers["Sec-WebSocket-Extensions"]=R.format(p)),(r.isDefinedAndNonNull("pfx")||r.isDefinedAndNonNull("key")||r.isDefinedAndNonNull("passphrase")||r.isDefinedAndNonNull("cert")||r.isDefinedAndNonNull("ca")||r.isDefinedAndNonNull("ciphers")||r.isDefinedAndNonNull("rejectUnauthorized"))&&(r.isDefinedAndNonNull("pfx")&&(C.pfx=r.value.pfx),r.isDefinedAndNonNull("key")&&(C.key=r.value.key),r.isDefinedAndNonNull("passphrase")&&(C.passphrase=r.value.passphrase),r.isDefinedAndNonNull("cert")&&(C.cert=r.value.cert),r.isDefinedAndNonNull("ca")&&(C.ca=r.value.ca),r.isDefinedAndNonNull("ciphers")&&(C.ciphers=r.value.ciphers),r.isDefinedAndNonNull("rejectUnauthorized")&&(C.rejectUnauthorized=r.value.rejectUnauthorized),M||(M=new c.Agent(C))),C.path=s.path||"/",M&&(C.agent=M),a&&(C.socketPath=s.pathname),r.value.localAddress&&(C.localAddress=r.value.localAddress),r.value.origin&&(r.value.protocolVersion<13?C.headers["Sec-WebSocket-Origin"]=r.value.origin:C.headers.Origin=r.value.origin);var O=this,N=c.request(C);N.on("error",function(e){O.emit("error",e),b.call(O,e)}),N.once("response",function(e){var t;O.emit("unexpected-response",N,e)||(t=new Error("unexpected server response ("+e.statusCode+")"),N.abort(),O.emit("error",t)),b.call(O,t)}),N.once("upgrade",function(e,t,i){if(O.readyState===n.CLOSED)return O.emit("close"),O.removeAllListeners(),void t.end();var s=e.headers["sec-websocket-accept"];if("undefined"==typeof s||s!==k)return O.emit("error","invalid server key"),O.removeAllListeners(),void t.end();var a=e.headers["sec-websocket-protocol"],f=(r.value.protocol||"").split(/, */),h=null;if(!r.value.protocol&&a?h="server sent a subprotocol even though none requested":r.value.protocol&&!a?h="server sent no subprotocol even though requested":a&&f.indexOf(a)===-1&&(h="server responded with an invalid protocol"),h)return O.emit("error",h),O.removeAllListeners(),void t.end();a&&(O.protocol=a);var c=R.parse(e.headers["sec-websocket-extensions"]);if(o&&c[x.extensionName]){try{o.accept(c[x.extensionName])}catch(e){return O.emit("error","invalid extension parameter"),O.removeAllListeners(),void t.end()}O.extensions[x.extensionName]=o}l.call(O,S,A,t,i),N.removeAllListeners(),N=null,M=null}),N.end(),this.readyState=n.CONNECTING}function l(e,t,i,s){function a(e){h||c.readyState===n.CLOSED||(h=!0,i.removeListener("data",a),f.on("data",o),s&&s.length>0&&(o(s),s=null),e&&o(e))}function o(e){c.bytesReceived+=e.length,c._receiver.add(e)}var f=this._ultron=new k(i),h=!1,c=this;i.setTimeout(0),i.setNoDelay(!0),this._receiver=new e(this.extensions,this.maxPayload),this._socket=i,f.on("end",b.bind(this)),f.on("close",b.bind(this)),f.on("error",b.bind(this)),f.on("data",a),r.nextTick(a),c._receiver.ontext=function(e,t){t=t||{},c.emit("message",e,t)},c._receiver.onbinary=function(e,t){t=t||{},t.binary=!0,c.emit("message",e,t)},c._receiver.onping=function(e,t){t=t||{},c.pong(e,{mask:!c._isServer,binary:t.binary===!0},!0),c.emit("ping",e,t)},c._receiver.onpong=function(e,t){c.emit("pong",e,t||{})},c._receiver.onclose=function(e,t,i){i=i||{},c._closeReceived=!0,c.close(e,t)},c._receiver.onerror=function(e,t){c.close("undefined"!=typeof t?t:1002,""),c.emit("error",e instanceof Error?e:new Error(e))},this._sender=new t(i,this.extensions),this._sender.on("error",function(e){c.close(1002,""),c.emit("error",e)}),this.readyState=n.OPEN,this.emit("open")}function u(e){e._queue=e._queue||[]}function d(e){var t=e._queue;if("undefined"!=typeof t){delete e._queue;for(var i=0,r=t.length;i2&&a.write(i,2);var o=this;this.messageHandlers.push(function(e){o.frameAndSend(8,a,!0,r),e(),"function"==typeof s&&s()}),this.flush()},r.prototype.ping=function(e,t){var i=t&&t.mask,r=this;this.messageHandlers.push(function(t){r.frameAndSend(9,e||"",!0,i),t()}),this.flush()},r.prototype.pong=function(e,t){var i=t&&t.mask,r=this;this.messageHandlers.push(function(t){r.frameAndSend(10,e||"",!0,i),t()}),this.flush()},r.prototype.send=function(e,t,i){var r=!t||t.fin!==!1,n=t&&t.mask,s=t&&t.compress,a=t&&t.binary?2:1;this.firstFragment===!1?(a=0,s=!1):(this.firstFragment=!1,this.compress=s),r&&(this.firstFragment=!0);var o=this.compress,f=this;this.messageHandlers.push(function(t){f.applyExtensions(e,r,o,function(e,o){return e?void("function"==typeof i?i(e):f.emit("error",e)):(f.frameAndSend(a,o,r,n,s,i),void t())})}),this.flush()},r.prototype.frameAndSend=function(e,i,r,f,h,c){var u=!1;if(i){t.isBuffer(i)||(u=!0,!i||"undefined"==typeof i.byteLength&&"undefined"==typeof i.buffer?("number"==typeof i&&(i=i.toString()),i=new t(i)):i=a(i));var d=i.length,p=f?6:2,b=d;d>=65536?(p+=8,b=127):d>125&&(p+=2,b=126);var m=d<32768||f&&!u,w=m?d+p:p,g=new t(w);switch(g[0]=r?128|e:e,h&&(g[0]|=64),b){case 126:n.call(g,d,2);break;case 127:s.call(g,0,2),s.call(g,d,6)}if(f){g[1]=128|b;var v=o();if(g[p-4]=v[0],g[p-3]=v[1],g[p-2]=v[2],g[p-1]=v[3],m){l.mask(i,v,g,p,d);try{this._socket.write(g,"binary",c)}catch(e){"function"==typeof c?c(e):this.emit("error",e)}}else{l.mask(i,v,i,0,d);try{this._socket.write(g,"binary"),this._socket.write(i,"binary",c)}catch(e){"function"==typeof c?c(e):this.emit("error",e)}}}else if(g[1]=b,m){i.copy(g,p);try{this._socket.write(g,"binary",c)}catch(e){"function"==typeof c?c(e):this.emit("error",e)}}else try{this._socket.write(g,"binary"),this._socket.write(i,"binary",c)}catch(e){"function"==typeof c?c(e):this.emit("error",e)}}else try{this._socket.write(new t([e|(r?128:0),0|(f?128:0)].concat(f?[0,0,0,0]:[])),"binary",c)}catch(e){"function"==typeof c?c(e):this.emit("error",e)}},r.prototype.flush=function(){if(!this.processing){var e=this.messageHandlers.shift();if(e){this.processing=!0;var t=this;e(function(){t.processing=!1,t.flush()})}}},r.prototype.applyExtensions=function(e,t,i,r){i&&e?((e.buffer||e)instanceof ArrayBuffer&&(e=a(e)),this.extensions[u.extensionName].compress(e,t,r)):r(null,e)},e.exports=r}).call(t,i(0).Buffer)},function(e,t,i){"use strict";(function(t,r){function n(e,t,i){return this instanceof n==!1?new n(e,t,i):(I.call(this),t&&!Array.isArray(t)&&"object"==typeof t&&(i=t,t=null),"string"==typeof t&&(t=[t]),Array.isArray(t)||(t=[]),this._socket=null,this._ultron=null,this._closeReceived=!1,this.bytesReceived=0,this.readyState=null,this.supports={},this.extensions={},this._binaryType="nodebuffer",void(Array.isArray(e)?h.apply(this,e.concat(i)):c.apply(this,[e,t,i])))}function s(e,t,i){this.type="message",this.data=e,this.target=i,this.binary=t}function a(e,t,i){this.type="close",this.wasClean="undefined"==typeof e||1e3===e,this.code=e,this.reason=t,this.target=i}function o(e){this.type="open",this.target=e}function f(e,t,i){var r=t;return t&&(e&&443!=i||!e&&80!=i)&&(r=r+":"+i),r}function h(e,t,i,r){r=new E({protocolVersion:C,protocol:null,extensions:{},maxPayload:0}).merge(r),this.protocol=r.value.protocol,this.protocolVersion=r.value.protocolVersion,this.extensions=r.value.extensions,this.supports.binary="hixie-76"!==this.protocolVersion,this.upgradeReq=e,this.readyState=n.CONNECTING,this._isServer=!0,this.maxPayload=r.value.maxPayload,"hixie-76"===r.value.protocolVersion?l.call(this,T,M,t,i):l.call(this,S,A,t,i)}function c(e,i,r){if(r=new E({origin:null,protocolVersion:C,host:null,headers:null,protocol:i.join(","),agent:null,pfx:null,key:null,passphrase:null,cert:null,ca:null,ciphers:null,rejectUnauthorized:null,perMessageDeflate:!0,localAddress:null}).merge(r),8!==r.value.protocolVersion&&13!==r.value.protocolVersion)throw new Error("unsupported protocol version");var s=m.parse(e),a="ws+unix:"===s.protocol;if(!s.host&&!a)throw new Error("invalid url");var o,h="wss:"===s.protocol||"https:"===s.protocol,c=h?v:g,u=s.port||(h?443:80),d=s.auth,p={};r.value.perMessageDeflate&&(o=new R(typeof r.value.perMessageDeflate!==!0?r.value.perMessageDeflate:{},!1),p[R.extensionName]=o.offer()),this._isServer=!1,this.url=e,this.protocolVersion=r.value.protocolVersion,this.supports.binary="hixie-76"!==this.protocolVersion;var w=new t(r.value.protocolVersion+"-"+Date.now()).toString("base64"),y=_.createHash("sha1");y.update(w+"258EAFA5-E914-47DA-95CA-C5AB0DC85B11");var k=y.digest("base64"),M=r.value.agent,T=f(h,s.hostname,u),I={port:u,host:s.hostname,headers:{Connection:"Upgrade",Upgrade:"websocket",Host:T,"Sec-WebSocket-Version":r.value.protocolVersion,"Sec-WebSocket-Key":w}};if(d&&(I.headers.Authorization="Basic "+new t(d).toString("base64")),r.value.protocol&&(I.headers["Sec-WebSocket-Protocol"]=r.value.protocol),r.value.host&&(I.headers.Host=r.value.host),r.value.headers)for(var P in r.value.headers)r.value.headers.hasOwnProperty(P)&&(I.headers[P]=r.value.headers[P]);Object.keys(p).length&&(I.headers["Sec-WebSocket-Extensions"]=x.format(p)),(r.isDefinedAndNonNull("pfx")||r.isDefinedAndNonNull("key")||r.isDefinedAndNonNull("passphrase")||r.isDefinedAndNonNull("cert")||r.isDefinedAndNonNull("ca")||r.isDefinedAndNonNull("ciphers")||r.isDefinedAndNonNull("rejectUnauthorized"))&&(r.isDefinedAndNonNull("pfx")&&(I.pfx=r.value.pfx),r.isDefinedAndNonNull("key")&&(I.key=r.value.key),r.isDefinedAndNonNull("passphrase")&&(I.passphrase=r.value.passphrase),r.isDefinedAndNonNull("cert")&&(I.cert=r.value.cert),r.isDefinedAndNonNull("ca")&&(I.ca=r.value.ca),r.isDefinedAndNonNull("ciphers")&&(I.ciphers=r.value.ciphers),r.isDefinedAndNonNull("rejectUnauthorized")&&(I.rejectUnauthorized=r.value.rejectUnauthorized),M||(M=new c.Agent(I))),I.path=s.path||"/",M&&(I.agent=M),a&&(I.socketPath=s.pathname),r.value.localAddress&&(I.localAddress=r.value.localAddress),r.value.origin&&(r.value.protocolVersion<13?I.headers["Sec-WebSocket-Origin"]=r.value.origin:I.headers.Origin=r.value.origin);var O=this,N=c.request(I);N.on("error",function(e){O.emit("error",e),b.call(O,e)}),N.once("response",function(e){var t;O.emit("unexpected-response",N,e)||(t=new Error("unexpected server response ("+e.statusCode+")"),N.abort(),O.emit("error",t)),b.call(O,t)}),N.once("upgrade",function(e,t,i){if(O.readyState===n.CLOSED)return O.emit("close"),O.removeAllListeners(),void t.end();var s=e.headers["sec-websocket-accept"];if("undefined"==typeof s||s!==k)return O.emit("error","invalid server key"),O.removeAllListeners(),void t.end();var a=e.headers["sec-websocket-protocol"],f=(r.value.protocol||"").split(/, */),h=null;if(!r.value.protocol&&a?h="server sent a subprotocol even though none requested":r.value.protocol&&!a?h="server sent no subprotocol even though requested":a&&f.indexOf(a)===-1&&(h="server responded with an invalid protocol"),h)return O.emit("error",h),O.removeAllListeners(),void t.end();a&&(O.protocol=a);var c=x.parse(e.headers["sec-websocket-extensions"]);if(o&&c[R.extensionName]){try{o.accept(c[R.extensionName])}catch(e){return O.emit("error","invalid extension parameter"),O.removeAllListeners(),void t.end()}O.extensions[R.extensionName]=o}l.call(O,S,A,t,i),N.removeAllListeners(),N=null,M=null}),N.end(),this.readyState=n.CONNECTING}function l(e,t,i,s){function a(e){h||c.readyState===n.CLOSED||(h=!0,i.removeListener("data",a),f.on("data",o),s&&s.length>0&&(o(s),s=null),e&&o(e))}function o(e){c.bytesReceived+=e.length,c._receiver.add(e)}var f=this._ultron=new k(i),h=!1,c=this;i.setTimeout(0),i.setNoDelay(!0),this._receiver=new e(this.extensions,this.maxPayload),this._socket=i,f.on("end",b.bind(this)),f.on("close",b.bind(this)),f.on("error",b.bind(this)),f.on("data",a),r.nextTick(a),c._receiver.ontext=function(e,t){t=t||{},c.emit("message",e,t)},c._receiver.onbinary=function(e,t){t=t||{},t.binary=!0,c.emit("message",e,t)},c._receiver.onping=function(e,t){t=t||{},c.pong(e,{mask:!c._isServer,binary:t.binary===!0},!0),c.emit("ping",e,t)},c._receiver.onpong=function(e,t){c.emit("pong",e,t||{})},c._receiver.onclose=function(e,t,i){i=i||{},c._closeReceived=!0,c.close(e,t)},c._receiver.onerror=function(e,t){c.close("undefined"!=typeof t?t:1002,""),c.emit("error",e instanceof Error?e:new Error(e))},this._sender=new t(i,this.extensions),this._sender.on("error",function(e){c.close(1002,""),c.emit("error",e)}),this.readyState=n.OPEN,this.emit("open")}function u(e){e._queue=e._queue||[]}function d(e){var t=e._queue;if("undefined"!=typeof t){delete e._queue;for(var i=0,r=t.length;i * MIT Licensed */ -var m=i(59),w=i(8),g=i(52),v=i(236),_=i(118),y=i(9),k=i(229),E=i(104),A=i(124),S=i(123),M=i(243),T=i(242),R=i(122),x=i(40),C=i(3).EventEmitter,I=13,P=3e4;w.inherits(n,C),["CONNECTING","OPEN","CLOSING","CLOSED"].forEach(function(e,t){n.prototype[e]=n[e]=t}),n.prototype.close=function(e,t){if(this.readyState!==n.CLOSED){if(this.readyState===n.CONNECTING)return void(this.readyState=n.CLOSED);if(this.readyState===n.CLOSING)return void(this._closeReceived&&this._isServer&&this.terminate());var i=this;try{this.readyState=n.CLOSING,this._closeCode=e,this._closeMessage=t;var r=!this._isServer;this._sender.close(e,t,r,function(e){e&&i.emit("error",e),i._closeReceived&&i._isServer?i.terminate():(clearTimeout(i._closeTimer),i._closeTimer=setTimeout(b.bind(i,!0),P))})}catch(e){this.emit("error",e)}}},n.prototype.pause=function(){if(this.readyState!==n.OPEN)throw new Error("not opened");return this._socket.pause()},n.prototype.ping=function(e,t,i){if(this.readyState!==n.OPEN){if(i===!0)return;throw new Error("not opened")}t=t||{},"undefined"==typeof t.mask&&(t.mask=!this._isServer),this._sender.ping(e,t)},n.prototype.pong=function(e,t,i){if(this.readyState!==n.OPEN){if(i===!0)return;throw new Error("not opened")}t=t||{},"undefined"==typeof t.mask&&(t.mask=!this._isServer),this._sender.pong(e,t)},n.prototype.resume=function(){if(this.readyState!==n.OPEN)throw new Error("not opened");return this._socket.resume()},n.prototype.send=function(e,i,s){if("function"==typeof i&&(s=i,i={}),this.readyState!==n.OPEN){if("function"!=typeof s)throw new Error("not opened");return void s(new Error("not opened"))}if(e||(e=""),this._queue){var a=this;return void this._queue.push(function(){a.send(e,i,s)})}i=i||{},i.fin=!0,"undefined"==typeof i.binary&&(i.binary=e instanceof ArrayBuffer||e instanceof t||e instanceof Uint8Array||e instanceof Uint16Array||e instanceof Uint32Array||e instanceof Int8Array||e instanceof Int16Array||e instanceof Int32Array||e instanceof Float32Array||e instanceof Float64Array),"undefined"==typeof i.mask&&(i.mask=!this._isServer),"undefined"==typeof i.compress&&(i.compress=!0),this.extensions[x.extensionName]||(i.compress=!1);var o="function"==typeof y.Readable?y.Readable:y.Stream;if(e instanceof o){u(this);var a=this;p(this,e,i,function(e){r.nextTick(function(){d(a)}),"function"==typeof s&&s(e)})}else this._sender.send(e,i,s)},n.prototype.stream=function(e,t){function i(a,o){try{if(s.readyState!==n.OPEN)throw new Error("not opened");e.fin=o===!0,s._sender.send(a,e),o?d(s):r.nextTick(t.bind(null,null,i))}catch(e){"function"==typeof t?t(e):(delete s._queue,s.emit("error",e))}}"function"==typeof e&&(t=e,e={});var s=this;if("function"!=typeof t)throw new Error("callback must be provided");if(this.readyState!==n.OPEN){if("function"!=typeof t)throw new Error("not opened");return void t(new Error("not opened"))}return this._queue?void this._queue.push(function(){s.stream(e,t)}):(e=e||{},"undefined"==typeof e.mask&&(e.mask=!this._isServer),"undefined"==typeof e.compress&&(e.compress=!0),this.extensions[x.extensionName]||(e.compress=!1),u(this),void r.nextTick(t.bind(null,null,i)))},n.prototype.terminate=function(){if(this.readyState!==n.CLOSED)if(this._socket){this.readyState=n.CLOSING;try{this._socket.end()}catch(e){return void b.call(this,!0)}this._closeTimer&&clearTimeout(this._closeTimer),this._closeTimer=setTimeout(b.bind(this,!0),P)}else this.readyState===n.CONNECTING&&b.call(this,!0)},Object.defineProperty(n.prototype,"bufferedAmount",{get:function(){var e=0;return this._socket&&(e=this._socket.bufferSize||0),e}}),Object.defineProperty(n.prototype,"binaryType",{get:function(){return this._binaryType},set:function(e){if("arraybuffer"!==e&&"nodebuffer"!==e)throw new SyntaxError('unsupported binaryType: must be either "nodebuffer" or "arraybuffer"');this._binaryType=e}}),["open","error","close","message"].forEach(function(e){Object.defineProperty(n.prototype,"on"+e,{get:function(){var t=this.listeners(e)[0];return t?t._listener?t._listener:t:void 0},set:function(t){this.removeAllListeners(e),this.addEventListener(e,t)}})}),n.prototype.addEventListener=function(e,t){function i(e,i){i.binary&&"arraybuffer"===this.binaryType&&(e=new Uint8Array(e).buffer),t.call(h,new s(e,!!i.binary,h))}function r(e,i){t.call(h,new a(e,i,h))}function n(e){e.type="error",e.target=h,t.call(h,e)}function f(){t.call(h,new o(h))}var h=this;"function"==typeof t&&("message"===e?(i._listener=t,this.on(e,i)):"close"===e?(r._listener=t,this.on(e,r)):"error"===e?(n._listener=t,this.on(e,n)):"open"===e?(f._listener=t,this.on(e,f)):this.on(e,t))},e.exports=n,e.exports.buildHostHeader=f}).call(t,i(0).Buffer,i(5))},function(e,t,i){(function(t){const r=i(14),n=i(10),s=i(57),a=i(2),o=i(131),f=i(11),h=i(44),c=i(43),l=i(20),u=i(30),d=i(21),p=i(45);class b{constructor(e){this.client=e}resolveUser(e){return e instanceof f?e:"string"==typeof e?this.client.users.get(e)||null:e instanceof u?e.user:e instanceof h?e.author:e instanceof c?e.owner:null}resolveUserID(e){return e instanceof f||e instanceof u?e.id:"string"==typeof e?e||null:e instanceof h?e.author.id:e instanceof c?e.ownerID:null}resolveGuild(e){return e instanceof c?e:"string"==typeof e?this.client.guilds.get(e)||null:null}resolveGuildMember(e,t){return t instanceof u?t:(e=this.resolveGuild(e),t=this.resolveUser(t),e&&t?e.members.get(t.id)||null:null)}resolveChannel(e){return e instanceof l?e:e instanceof h?e.channel:e instanceof c?e.channels.get(e.id)||null:"string"==typeof e?this.client.channels.get(e)||null:null}resolveInviteCode(e){const t=/discord(?:app)?\.(?:gg|com\/invite)\/([a-z0-9]{5})/i,i=t.exec(e);return i&&i[1]?i[1]:e}resolvePermission(e){if("string"==typeof e&&(e=a.PermissionFlags[e]),"number"!=typeof e||e<1)throw new Error(a.Errors.NOT_A_PERMISSION);return e}resolveString(e){return"string"==typeof e?e:e instanceof Array?e.join("\n"):String(e)}resolveBase64(e){return e instanceof t?`data:image/jpg;base64,${e.toString("base64")}`:e}resolveBuffer(e){return e instanceof t?Promise.resolve(e):this.client.browser&&e instanceof ArrayBuffer?Promise.resolve(o(e)):"string"==typeof e?new Promise((i,a)=>{if(/^https?:\/\//.test(e)){const r=s.get(e).set("Content-Type","blob");this.client.browser&&r.responseType("arraybuffer"),r.end((e,r)=>{return e?a(e):this.client.browser?i(o(r.xhr.response)):r.body instanceof t?i(r.body):a(new TypeError("Body is not a Buffer"))})}else{const t=r.resolve(e);n.stat(t,(e,r)=>{if(e&&a(e),!r||!r.isFile())throw new Error(`The file could not be found: ${t}`);n.readFile(t,(e,t)=>{e?a(e):i(t)})})}}):Promise.reject(new TypeError("The resource must be a string or Buffer."))}resolveEmojiIdentifier(e){return e instanceof d||e instanceof p?e.identifier:"string"!=typeof e||e.includes("%")?null:encodeURIComponent(e)}}e.exports=b}).call(t,i(0).Buffer)},function(e,t,i){const r=i(256),n=i(253),s=i(255),a=i(254),o=i(252),f=i(2);class h{constructor(e){this.client=e,this.handlers={},this.userAgentManager=new r(this),this.methods=new n(this),this.rateLimitedEndpoints={},this.globallyRateLimited=!1}push(e,t){return new Promise((i,r)=>{e.push({request:t,resolve:i,reject:r})})}getRequestHandler(){switch(this.client.options.apiRequestMethod){case"sequential":return s;case"burst":return a;default:throw new Error(f.Errors.INVALID_RATE_LIMIT_METHOD)}}makeRequest(e,t,i,r,n){const s=new o(this,e,t,i,r,n);if(!this.handlers[s.route]){const e=this.getRequestHandler();this.handlers[s.route]=new e(this,s.route)}return this.push(this.handlers[s.route],s)}}e.exports=h},function(e,t){class i{constructor(e){this.restManager=e,this.queue=[]}get globalLimit(){return this.restManager.globallyRateLimited}set globalLimit(e){this.restManager.globallyRateLimited=e}push(e){this.queue.push(e)}handle(){}}e.exports=i},function(e,t){class i{constructor(e){this.player=e}encode(e){return e}decode(e){return e}}e.exports=i},function(e,t){e.exports=function(e){const t=Object.create(e);return Object.assign(t,e),t}},function(e,t,i){(function(t){function i(e){const i=new t(e.byteLength),r=new Uint8Array(e);for(var n=0;n0&&this.setInterval(this.sweepMessages.bind(this),1e3*this.options.messageSweepInterval)}get status(){return this.ws.status}get uptime(){return this.readyAt?Date.now()-this.readyAt:null}get voiceConnections(){return this.voice.connections}get emojis(){const e=new Collection;for(const t of this.guilds.values())for(const i of t.emojis.values())e.set(i.id,i);return e}get readyTimestamp(){return this.readyAt?this.readyAt.getTime():null}login(e,t=null){return t?this.rest.methods.loginEmailPassword(e,t):this.rest.methods.loginToken(e)}destroy(){for(const e of this._timeouts)clearTimeout(e);for(const t of this._intervals)clearInterval(t);return this._timeouts.clear(),this._intervals.clear(),this.token=null,this.email=null,this.password=null,this.manager.destroy()}syncGuilds(e=this.guilds){this.user.bot||this.ws.send({op:12,d:e instanceof Collection?e.keyArray():e.map(e=>e.id)})}fetchUser(e){return this.users.has(e)?Promise.resolve(this.users.get(e)):this.rest.methods.getUser(e)}fetchInvite(e){const t=this.resolver.resolveInviteCode(e);return this.rest.methods.getInvite(t)}fetchWebhook(e,t){return this.rest.methods.getWebhook(e,t)}sweepMessages(e=this.options.messageCacheLifetime){if("number"!=typeof e||isNaN(e))throw new TypeError("The lifetime must be a number.");if(e<=0)return this.emit("debug","Didn't sweep messages - lifetime is unlimited"),-1;const t=1e3*e,i=Date.now();let r=0,n=0;for(const s of this.channels.values())if(s.messages){r++;for(const e of s.messages.values())i-(e.editedTimestamp||e.createdTimestamp)>t&&(s.messages.delete(e.id),n++)}return this.emit("debug",`Swept ${n} messages older than ${e} seconds in ${r} text-based channels`),n}fetchApplication(){if(!this.user.bot)throw new Error(Constants.Errors.NO_BOT_ACCOUNT);return this.rest.methods.getMyApplication()}setTimeout(e,t,...i){const r=setTimeout(()=>{e(),this._timeouts.delete(r)},t,...i);return this._timeouts.add(r),r}clearTimeout(e){clearTimeout(e),this._timeouts.delete(e)}setInterval(e,t,...i){const r=setInterval(e,t,...i);return this._intervals.add(r),r}clearInterval(e){clearInterval(e),this._intervals.delete(e)}_setPresence(e,t){return this.presences.get(e)?void this.presences.get(e).update(t):void this.presences.set(e,new Presence(t))}_eval(script){return eval(script)}_validateOptions(e=this.options){if("number"!=typeof e.shardCount||isNaN(e.shardCount))throw new TypeError("The shardCount option must be a number.");if("number"!=typeof e.shardId||isNaN(e.shardId))throw new TypeError("The shardId option must be a number.");if(e.shardCount<0)throw new RangeError("The shardCount option must be at least 0.");if(e.shardId<0)throw new RangeError("The shardId option must be at least 0.");if(0!==e.shardId&&e.shardId>=e.shardCount)throw new RangeError("The shardId option must be less than shardCount.");if("number"!=typeof e.messageCacheMaxSize||isNaN(e.messageCacheMaxSize))throw new TypeError("The messageCacheMaxSize option must be a number.");if("number"!=typeof e.messageCacheLifetime||isNaN(e.messageCacheLifetime))throw new TypeError("The messageCacheLifetime option must be a number.");if("number"!=typeof e.messageSweepInterval||isNaN(e.messageSweepInterval))throw new TypeError("The messageSweepInterval option must be a number.");if("boolean"!=typeof e.fetchAllMembers)throw new TypeError("The fetchAllMembers option must be a boolean.");if("boolean"!=typeof e.disableEveryone)throw new TypeError("The disableEveryone option must be a boolean.");if("number"!=typeof e.restWsBridgeTimeout||isNaN(e.restWsBridgeTimeout))throw new TypeError("The restWsBridgeTimeout option must be a number.");if(!(e.disabledEvents instanceof Array))throw new TypeError("The disabledEvents option must be an Array.")}}module.exports=Client}).call(exports,__webpack_require__(5))},function(e,t,i){const r=i(46),n=i(127),s=i(126),a=i(41),o=i(2);class f extends r{constructor(e,t,i){super(null,e,t),this.options=a(o.DefaultOptions,i),this.rest=new n(this),this.resolver=new s(this)}}e.exports=f},function(e,t,i){(function(t){const r=i(14),n=i(10),s=i(3).EventEmitter,a=i(41),o=i(62),f=i(6),h=i(78);class c extends s{constructor(e,i={}){if(super(),i=a({totalShards:"auto",respawn:!0,shardArgs:[],token:null},i),this.file=e,!e)throw new Error("File must be specified.");r.isAbsolute(e)||(this.file=r.resolve(t.cwd(),e));const s=n.statSync(this.file);if(!s.isFile())throw new Error("File path does not point to a file.");if(this.totalShards=i.totalShards,"auto"!==this.totalShards){if("number"!=typeof this.totalShards||isNaN(this.totalShards))throw new TypeError("Amount of shards must be a number.");if(this.totalShards<1)throw new RangeError("Amount of shards must be at least 1.");if(this.totalShards!==Math.floor(this.totalShards))throw new RangeError("Amount of shards must be an integer.")}this.respawn=i.respawn,this.shardArgs=i.shardArgs,this.token=i.token?i.token.replace(/^Bot\s*/i,""):null,this.shards=new f}createShard(e=this.shards.size){const t=new o(this,e,this.shardArgs);return this.shards.set(e,t),this.emit("launch",t),Promise.resolve(t)}spawn(e=this.totalShards,t=5500){if("auto"===e)return h(this.token).then(e=>{return this.totalShards=e,this._spawn(e,t)});if("number"!=typeof e||isNaN(e))throw new TypeError("Amount of shards must be a number.");if(e<1)throw new RangeError("Amount of shards must be at least 1.");if(e!==Math.floor(e))throw new TypeError("Amount of shards must be an integer.");return this._spawn(e,t)}_spawn(e,t){return new Promise(i=>{if(this.shards.size>=e)throw new Error(`Already spawned ${this.shards.size} shards.`);if(this.totalShards=e,this.createShard(),this.shards.size>=this.totalShards)return void i(this.shards);if(t<=0){for(;this.shards.size{this.createShard(),this.shards.size>=this.totalShards&&(clearInterval(e),i(this.shards))},t)}})}broadcast(e){const t=[];for(const i of this.shards.values())t.push(i.send(e));return Promise.all(t)}broadcastEval(e){const t=[];for(const i of this.shards.values())t.push(i.eval(e));return Promise.all(t)}fetchClientValues(e){if(0===this.shards.size)return Promise.reject(new Error("No shards have been spawned."));if(this.shards.size!==this.totalShards)return Promise.reject(new Error("Still spawning shards."));const t=[];for(const i of this.shards.values())t.push(i.fetchClientValue(e));return Promise.all(t)}}e.exports=c}).call(t,i(5))},function(e,t,i){const r=i(11),n=i(6);class s extends r{setup(e){super.setup(e),this.verified=e.verified,this.email=e.email,this.localPresence={},this._typing=new Map,this.friends=new n,this.blocked=new n,this.notes=new n}edit(e){return this.client.rest.methods.updateCurrentUser(e)}setUsername(e){return this.client.rest.methods.updateCurrentUser({username:e})}setEmail(e){return this.client.rest.methods.updateCurrentUser({email:e})}setPassword(e){return this.client.rest.methods.updateCurrentUser({password:e})}setAvatar(e){return e.startsWith("data:")?this.client.rest.methods.updateCurrentUser({avatar:e}):this.client.resolver.resolveBuffer(e).then(e=>this.client.rest.methods.updateCurrentUser({avatar:e}))}setStatus(e){return this.setPresence({status:e})}setGame(e,t){return this.setPresence({game:{name:e,url:t}})}setAFK(e){return this.setPresence({afk:e})}addFriend(e){return e=this.client.resolver.resolveUser(e),this.client.rest.methods.addFriend(e)}removeFriend(e){return e=this.client.resolver.resolveUser(e),this.client.rest.methods.removeFriend(e)}createGuild(e,t,i=null){return i?i.startsWith("data:")?this.client.rest.methods.createGuild({name:e,icon:i,region:t}):this.client.resolver.resolveBuffer(i).then(i=>this.client.rest.methods.createGuild({name:e,icon:i,region:t})):this.client.rest.methods.createGuild({name:e,icon:i,region:t})}setPresence(e){return new Promise(t=>{let i=this.localPresence.status||this.presence.status,r=this.localPresence.game,n=this.localPresence.afk||this.presence.afk;if(!r&&this.presence.game&&(r={name:this.presence.game.name,type:this.presence.game.type,url:this.presence.game.url}),e.status){if("string"!=typeof e.status)throw new TypeError("Status must be a string");i=e.status}e.game&&(r=e.game,r.url&&(r.type=1)),"undefined"!=typeof e.afk&&(n=e.afk),n=Boolean(n),this.localPresence={status:i,game:r,afk:n},this.localPresence.since=0,this.localPresence.game=this.localPresence.game||null,this.client.ws.send({op:3,d:this.localPresence}),this.client._setPresence(this.id,this.localPresence),t(this)})}}e.exports=s},function(e,t,i){!function(){function e(e){this.message=e}var i=t,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";e.prototype=new Error,e.prototype.name="InvalidCharacterError",i.btoa||(i.btoa=function(t){for(var i,n,s=0,a=r,o="";t.charAt(0|s)||(a="=",s%1);o+=a.charAt(63&i>>8-s%1*8)){if(n=t.charCodeAt(s+=.75),n>255)throw new e("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.");i=i<<8|n}return o}),i.atob||(i.atob=function(t){if(t=t.replace(/=+$/,""),t.length%4==1)throw new e("'atob' failed: The string to be decoded is not correctly encoded.");for(var i,n,s=0,a=0,o="";n=t.charAt(a++);~n&&(i=s%4?64*i+n:n,s++%4)?o+=String.fromCharCode(255&i>>(-2*s&6)):0)n=r.indexOf(n);return o})}()},function(e,t,i){function r(e,t){this.name=e,this.body=t,this.decoders={},this.encoders={}}var n=i(32),s=i(1),a=t;a.define=function(e,t){return new r(e,t)},r.prototype._createNamed=function(e){var t;try{t=i(235).runInThisContext("(function "+this.name+"(entity) {\n this._initNamed(entity);\n})")}catch(e){t=function(e){this._initNamed(e)}}return s(t,e),t.prototype._initNamed=function(t){e.call(this,t)},new t(this)},r.prototype._getDecoder=function(e){return e=e||"der",this.decoders.hasOwnProperty(e)||(this.decoders[e]=this._createNamed(n.decoders[e])),this.decoders[e]},r.prototype.decode=function(e,t,i){return this._getDecoder(t).decode(e,i)},r.prototype._getEncoder=function(e){return e=e||"der",this.encoders.hasOwnProperty(e)||(this.encoders[e]=this._createNamed(n.encoders[e])),this.encoders[e]},r.prototype.encode=function(e,t,i){return this._getEncoder(t).encode(e,i)}},function(e,t,i){function r(e,t){var i={};this._baseState=i,i.enc=e,i.parent=t||null,i.children=null,i.tag=null,i.args=null,i.reverseArgs=null,i.choice=null,i.optional=!1,i.any=!1,i.obj=!1,i.use=null,i.useDecoder=null,i.key=null,i.default=null,i.explicit=null,i.implicit=null,i.contains=null,i.parent||(i.children=[],this._wrap())}var n=i(23).Reporter,s=i(23).EncoderBuffer,a=i(23).DecoderBuffer,o=i(26),f=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],h=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(f),c=["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"];e.exports=r;var l=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];r.prototype.clone=function(){var e=this._baseState,t={};l.forEach(function(i){t[i]=e[i]});var i=new this.constructor(t.parent);return i._baseState=t,i},r.prototype._wrap=function(){var e=this._baseState;h.forEach(function(t){this[t]=function(){var i=new this.constructor(this);return e.children.push(i),i[t].apply(i,arguments)}},this)},r.prototype._init=function(e){var t=this._baseState;o(null===t.parent),e.call(this),t.children=t.children.filter(function(e){return e._baseState.parent===this},this),o.equal(t.children.length,1,"Root node can have only one child")},r.prototype._useArgs=function(e){var t=this._baseState,i=e.filter(function(e){return e instanceof this.constructor},this);e=e.filter(function(e){return!(e instanceof this.constructor)},this),0!==i.length&&(o(null===t.children),t.children=i,i.forEach(function(e){e._baseState.parent=this},this)),0!==e.length&&(o(null===t.args),t.args=e,t.reverseArgs=e.map(function(e){if("object"!=typeof e||e.constructor!==Object)return e;var t={};return Object.keys(e).forEach(function(i){i==(0|i)&&(i|=0);var r=e[i];t[r]=i}),t}))},c.forEach(function(e){r.prototype[e]=function(){var t=this._baseState;throw new Error(e+" not implemented for encoding: "+t.enc)}}),f.forEach(function(e){r.prototype[e]=function(){var t=this._baseState,i=Array.prototype.slice.call(arguments);return o(null===t.tag),t.tag=e,this._useArgs(i),this}}),r.prototype.use=function(e){o(e);var t=this._baseState;return o(null===t.use),t.use=e,this},r.prototype.optional=function(){var e=this._baseState;return e.optional=!0,this},r.prototype.def=function(e){var t=this._baseState;return o(null===t.default),t.default=e,t.optional=!0,this},r.prototype.explicit=function(e){var t=this._baseState;return o(null===t.explicit&&null===t.implicit),t.explicit=e,this},r.prototype.implicit=function(e){var t=this._baseState;return o(null===t.explicit&&null===t.implicit),t.implicit=e,this},r.prototype.obj=function(){var e=this._baseState,t=Array.prototype.slice.call(arguments);return e.obj=!0,0!==t.length&&this._useArgs(t),this},r.prototype.key=function(e){var t=this._baseState;return o(null===t.key),t.key=e,this},r.prototype.any=function(){var e=this._baseState;return e.any=!0,this},r.prototype.choice=function(e){var t=this._baseState;return o(null===t.choice),t.choice=e,this._useArgs(Object.keys(e).map(function(t){return e[t]})),this},r.prototype.contains=function(e){var t=this._baseState;return o(null===t.use),t.contains=e,this},r.prototype._decode=function(e,t){var i=this._baseState;if(null===i.parent)return e.wrapResult(i.children[0]._decode(e,t));var r=i.default,n=!0,s=null;if(null!==i.key&&(s=e.enterKey(i.key)),i.optional){var o=null;if(null!==i.explicit?o=i.explicit:null!==i.implicit?o=i.implicit:null!==i.tag&&(o=i.tag),null!==o||i.any){if(n=this._peekTag(e,o,i.any),e.isError(n))return n}else{var f=e.save();try{null===i.choice?this._decodeGeneric(i.tag,e,t):this._decodeChoice(e,t),n=!0}catch(e){n=!1}e.restore(f)}}var h;if(i.obj&&n&&(h=e.enterObject()),n){if(null!==i.explicit){var c=this._decodeTag(e,i.explicit);if(e.isError(c))return c;e=c}var l=e.offset;if(null===i.use&&null===i.choice){if(i.any)var f=e.save();var u=this._decodeTag(e,null!==i.implicit?i.implicit:i.tag,i.any);if(e.isError(u))return u;i.any?r=e.raw(f):e=u}if(t&&t.track&&null!==i.tag&&t.track(e.path(),l,e.length,"tagged"),t&&t.track&&null!==i.tag&&t.track(e.path(),e.offset,e.length,"content"),r=i.any?r:null===i.choice?this._decodeGeneric(i.tag,e,t):this._decodeChoice(e,t),e.isError(r))return r;if(i.any||null!==i.choice||null===i.children||i.children.forEach(function(i){i._decode(e,t)}),i.contains&&("octstr"===i.tag||"bitstr"===i.tag)){var d=new a(r);r=this._getUse(i.contains,e._reporterState.obj)._decode(d,t)}}return i.obj&&n&&(r=e.leaveObject(h)),null===i.key||null===r&&n!==!0?null!==s&&e.exitKey(s):e.leaveKey(s,i.key,r),r},r.prototype._decodeGeneric=function(e,t,i){var r=this._baseState;return"seq"===e||"set"===e?null:"seqof"===e||"setof"===e?this._decodeList(t,e,r.args[0],i):/str$/.test(e)?this._decodeStr(t,e,i):"objid"===e&&r.args?this._decodeObjid(t,r.args[0],r.args[1],i):"objid"===e?this._decodeObjid(t,null,null,i):"gentime"===e||"utctime"===e?this._decodeTime(t,e,i):"null_"===e?this._decodeNull(t,i):"bool"===e?this._decodeBool(t,i):"objDesc"===e?this._decodeStr(t,e,i):"int"===e||"enum"===e?this._decodeInt(t,r.args&&r.args[0],i):null!==r.use?this._getUse(r.use,t._reporterState.obj)._decode(t,i):t.error("unknown tag: "+e)},r.prototype._getUse=function(e,t){var i=this._baseState;return i.useDecoder=this._use(e,t),o(null===i.useDecoder._baseState.parent),i.useDecoder=i.useDecoder._baseState.children[0],i.implicit!==i.useDecoder._baseState.implicit&&(i.useDecoder=i.useDecoder.clone(),i.useDecoder._baseState.implicit=i.implicit),i.useDecoder},r.prototype._decodeChoice=function(e,t){var i=this._baseState,r=null,n=!1;return Object.keys(i.choice).some(function(s){var a=e.save(),o=i.choice[s];try{var f=o._decode(e,t);if(e.isError(f))return!1;r={type:s,value:f},n=!0}catch(t){return e.restore(a),!1}return!0},this),n?r:e.error("Choice not matched")},r.prototype._createEncoderBuffer=function(e){return new s(e,this.reporter)},r.prototype._encode=function(e,t,i){var r=this._baseState;if(null===r.default||r.default!==e){var n=this._encodeValue(e,t,i);if(void 0!==n&&!this._skipDefault(n,t,i))return n}},r.prototype._encodeValue=function(e,t,i){var r=this._baseState;if(null===r.parent)return r.children[0]._encode(e,t||new n);var s=null;if(this.reporter=t,r.optional&&void 0===e){if(null===r.default)return;e=r.default}var a=null,o=!1;if(r.any)s=this._createEncoderBuffer(e);else if(r.choice)s=this._encodeChoice(e,t);else if(r.contains)a=this._getUse(r.contains,i)._encode(e,t),o=!0;else if(r.children)a=r.children.map(function(i){if("null_"===i._baseState.tag)return i._encode(null,t,e);if(null===i._baseState.key)return t.error("Child should have a key");var r=t.enterKey(i._baseState.key);if("object"!=typeof e)return t.error("Child expected, but input is not object");var n=i._encode(e[i._baseState.key],t,e);return t.leaveKey(r),n},this).filter(function(e){return e}),a=this._createEncoderBuffer(a);else if("seqof"===r.tag||"setof"===r.tag){if(!r.args||1!==r.args.length)return t.error("Too many args for : "+r.tag);if(!Array.isArray(e))return t.error("seqof/setof, but data is not Array");var f=this.clone();f._baseState.implicit=null,a=this._createEncoderBuffer(e.map(function(i){var r=this._baseState;return this._getUse(r.args[0],e)._encode(i,t)},f))}else null!==r.use?s=this._getUse(r.use,i)._encode(e,t):(a=this._encodePrimitive(r.tag,e),o=!0);var s;if(!r.any&&null===r.choice){var h=null!==r.implicit?r.implicit:r.tag,c=null===r.implicit?"universal":"context";null===h?null===r.use&&t.error("Tag could be ommited only for .use()"):null===r.use&&(s=this._encodeComposite(h,o,c,a))}return null!==r.explicit&&(s=this._encodeComposite(r.explicit,!1,"context",s)),s},r.prototype._encodeChoice=function(e,t){var i=this._baseState,r=i.choice[e.type];return r||o(!1,e.type+" not found in "+JSON.stringify(Object.keys(i.choice))),r._encode(e.value,t)},r.prototype._encodePrimitive=function(e,t){var i=this._baseState;if(/str$/.test(e))return this._encodeStr(t,e);if("objid"===e&&i.args)return this._encodeObjid(t,i.reverseArgs[0],i.args[1]);if("objid"===e)return this._encodeObjid(t,null,null);if("gentime"===e||"utctime"===e)return this._encodeTime(t,e);if("null_"===e)return this._encodeNull();if("int"===e||"enum"===e)return this._encodeInt(t,i.args&&i.reverseArgs[0]);if("bool"===e)return this._encodeBool(t);if("objDesc"===e)return this._encodeStr(t,e);throw new Error("Unsupported tag: "+e)},r.prototype._isNumstr=function(e){return/^[0-9 ]*$/.test(e)},r.prototype._isPrintstr=function(e){return/^[A-Za-z0-9 '\(\)\+,\-\.\/:=\?]*$/.test(e)}},function(e,t,i){function r(e){this._reporterState={obj:null,path:[],options:e||{},errors:[]}}function n(e,t){this.path=e,this.rethrow(t)}var s=i(1);t.Reporter=r,r.prototype.isError=function(e){return e instanceof n},r.prototype.save=function(){var e=this._reporterState;return{obj:e.obj,pathLen:e.path.length}},r.prototype.restore=function(e){var t=this._reporterState;t.obj=e.obj,t.path=t.path.slice(0,e.pathLen)},r.prototype.enterKey=function(e){return this._reporterState.path.push(e)},r.prototype.exitKey=function(e){var t=this._reporterState;t.path=t.path.slice(0,e-1)},r.prototype.leaveKey=function(e,t,i){var r=this._reporterState;this.exitKey(e),null!==r.obj&&(r.obj[t]=i)},r.prototype.path=function(){return this._reporterState.path.join("/")},r.prototype.enterObject=function(){var e=this._reporterState,t=e.obj;return e.obj={},t},r.prototype.leaveObject=function(e){var t=this._reporterState,i=t.obj;return t.obj=e,i},r.prototype.error=function(e){var t,i=this._reporterState,r=e instanceof n;if(t=r?e:new n(i.path.map(function(e){return"["+JSON.stringify(e)+"]"}).join(""),e.message||e,e.stack),!i.options.partial)throw t;return r||i.errors.push(t),t},r.prototype.wrapResult=function(e){var t=this._reporterState;return t.options.partial?{result:this.isError(e)?null:e,errors:t.errors}:e},s(n,Error),n.prototype.rethrow=function(e){if(this.message=e+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,n),!this.stack)try{throw new Error(this.message)}catch(e){this.stack=e.stack}return this}},function(e,t,i){var r=i(81);t.tagClass={0:"universal",1:"application",2:"context",3:"private"},t.tagClassByName=r._reverse(t.tagClass),t.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},t.tagByName=r._reverse(t.tag)},function(e,t,i){var r=t;r.der=i(82),r.pem=i(144)},function(e,t,i){function r(e){a.call(this,e),this.enc="pem"}var n=i(1),s=i(0).Buffer,a=i(82);n(r,a),e.exports=r,r.prototype.decode=function(e,t){for(var i=e.toString().split(/[\r\n]+/g),r=t.label.toUpperCase(),n=/^-----(BEGIN|END) ([^-]+)-----$/,o=-1,f=-1,h=0;h{if(/^https?:\/\//.test(e)){const r=s.get(e).set("Content-Type","blob");this.client.browser&&r.responseType("arraybuffer"),r.end((e,r)=>{return e?a(e):this.client.browser?i(o(r.xhr.response)):r.body instanceof t?i(r.body):a(new TypeError("Body is not a Buffer"))})}else{const t=r.resolve(e);n.stat(t,(e,r)=>{if(e&&a(e),!r||!r.isFile())throw new Error(`The file could not be found: ${t}`);n.readFile(t,(e,t)=>{e?a(e):i(t)})})}}):Promise.reject(new TypeError("The resource must be a string or Buffer."))}resolveEmojiIdentifier(e){return e instanceof d||e instanceof p?e.identifier:"string"!=typeof e||e.includes("%")?null:encodeURIComponent(e)}}e.exports=b}).call(t,i(0).Buffer)},function(e,t,i){const r=i(283),n=i(280),s=i(282),a=i(281),o=i(279),f=i(1);class h{constructor(e){this.client=e,this.handlers={},this.userAgentManager=new r(this),this.methods=new n(this),this.rateLimitedEndpoints={},this.globallyRateLimited=!1}push(e,t){return new Promise((i,r)=>{e.push({request:t,resolve:i,reject:r})})}getRequestHandler(){switch(this.client.options.apiRequestMethod){case"sequential":return s;case"burst":return a;default:throw new Error(f.Errors.INVALID_RATE_LIMIT_METHOD)}}makeRequest(e,t,i,r,n){const s=new o(this,e,t,i,r,n);if(!this.handlers[s.route]){const e=this.getRequestHandler();this.handlers[s.route]=new e(this,s.route)}return this.push(this.handlers[s.route],s)}}e.exports=h},function(e,t){class i{constructor(e){this.restManager=e,this.queue=[]}get globalLimit(){return this.restManager.globallyRateLimited}set globalLimit(e){this.restManager.globallyRateLimited=e}push(e){this.queue.push(e)}handle(){}}e.exports=i},function(e,t){class i{constructor(e){this.player=e}encode(e){return e}decode(e){return e}}e.exports=i},function(e,t,i){(function(t){function i(e){const i=new t(e.byteLength),r=new Uint8Array(e);for(var n=0;n0&&this.setInterval(this.sweepMessages.bind(this),1e3*this.options.messageSweepInterval)}get status(){return this.ws.status}get uptime(){return this.readyAt?Date.now()-this.readyAt:null}get voiceConnections(){return this.voice.connections}get emojis(){const e=new Collection;for(const t of this.guilds.values())for(const i of t.emojis.values())e.set(i.id,i);return e}get readyTimestamp(){return this.readyAt?this.readyAt.getTime():null}login(e,t=null){return t?this.rest.methods.loginEmailPassword(e,t):this.rest.methods.loginToken(e)}destroy(){for(const e of this._timeouts)clearTimeout(e);for(const t of this._intervals)clearInterval(t);return this._timeouts.clear(),this._intervals.clear(),this.token=null,this.email=null,this.password=null,this.manager.destroy()}syncGuilds(e=this.guilds){this.user.bot||this.ws.send({op:12,d:e instanceof Collection?e.keyArray():e.map(e=>e.id)})}fetchUser(e){return this.users.has(e)?Promise.resolve(this.users.get(e)):this.rest.methods.getUser(e)}fetchInvite(e){const t=this.resolver.resolveInviteCode(e);return this.rest.methods.getInvite(t)}fetchWebhook(e,t){return this.rest.methods.getWebhook(e,t)}sweepMessages(e=this.options.messageCacheLifetime){if("number"!=typeof e||isNaN(e))throw new TypeError("The lifetime must be a number.");if(e<=0)return this.emit("debug","Didn't sweep messages - lifetime is unlimited"),-1;const t=1e3*e,i=Date.now();let r=0,n=0;for(const s of this.channels.values())if(s.messages){r++;for(const e of s.messages.values())i-(e.editedTimestamp||e.createdTimestamp)>t&&(s.messages.delete(e.id),n++)}return this.emit("debug",`Swept ${n} messages older than ${e} seconds in ${r} text-based channels`),n}fetchApplication(){if(!this.user.bot)throw new Error(Constants.Errors.NO_BOT_ACCOUNT);return this.rest.methods.getMyApplication()}setTimeout(e,t,...i){const r=setTimeout(()=>{e(),this._timeouts.delete(r)},t,...i);return this._timeouts.add(r),r}clearTimeout(e){clearTimeout(e),this._timeouts.delete(e)}setInterval(e,t,...i){const r=setInterval(e,t,...i);return this._intervals.add(r),r}clearInterval(e){clearInterval(e),this._intervals.delete(e)}_setPresence(e,t){return this.presences.get(e)?void this.presences.get(e).update(t):void this.presences.set(e,new Presence(t))}_eval(script){return eval(script)}_validateOptions(e=this.options){if("number"!=typeof e.shardCount||isNaN(e.shardCount))throw new TypeError("The shardCount option must be a number.");if("number"!=typeof e.shardId||isNaN(e.shardId))throw new TypeError("The shardId option must be a number.");if(e.shardCount<0)throw new RangeError("The shardCount option must be at least 0.");if(e.shardId<0)throw new RangeError("The shardId option must be at least 0.");if(0!==e.shardId&&e.shardId>=e.shardCount)throw new RangeError("The shardId option must be less than shardCount.");if("number"!=typeof e.messageCacheMaxSize||isNaN(e.messageCacheMaxSize))throw new TypeError("The messageCacheMaxSize option must be a number.");if("number"!=typeof e.messageCacheLifetime||isNaN(e.messageCacheLifetime))throw new TypeError("The messageCacheLifetime option must be a number.");if("number"!=typeof e.messageSweepInterval||isNaN(e.messageSweepInterval))throw new TypeError("The messageSweepInterval option must be a number.");if("boolean"!=typeof e.fetchAllMembers)throw new TypeError("The fetchAllMembers option must be a boolean.");if("boolean"!=typeof e.disableEveryone)throw new TypeError("The disableEveryone option must be a boolean.");if("number"!=typeof e.restWsBridgeTimeout||isNaN(e.restWsBridgeTimeout))throw new TypeError("The restWsBridgeTimeout option must be a number.");if(!(e.disabledEvents instanceof Array))throw new TypeError("The disabledEvents option must be an Array.")}}module.exports=Client}).call(exports,__webpack_require__(8))},function(e,t,i){const r=i(49),n=i(131),s=i(130),a=i(45),o=i(1);class f extends r{constructor(e,t,i){super(null,e,t),this.options=a(o.DefaultOptions,i),this.rest=new n(this),this.resolver=new s(this)}}e.exports=f},function(e,t,i){(function(t){const r=i(17),n=i(12),s=i(5).EventEmitter,a=i(45),o=i(65),f=i(6),h=i(82);class c extends s{constructor(e,i={}){if(super(),i=a({totalShards:"auto",respawn:!0,shardArgs:[],token:null},i),this.file=e,!e)throw new Error("File must be specified.");r.isAbsolute(e)||(this.file=r.resolve(t.cwd(),e));const s=n.statSync(this.file);if(!s.isFile())throw new Error("File path does not point to a file.");if(this.totalShards=i.totalShards,"auto"!==this.totalShards){if("number"!=typeof this.totalShards||isNaN(this.totalShards))throw new TypeError("Amount of shards must be a number.");if(this.totalShards<1)throw new RangeError("Amount of shards must be at least 1.");if(this.totalShards!==Math.floor(this.totalShards))throw new RangeError("Amount of shards must be an integer.")}this.respawn=i.respawn,this.shardArgs=i.shardArgs,this.token=i.token?i.token.replace(/^Bot\s*/i,""):null,this.shards=new f}createShard(e=this.shards.size){const t=new o(this,e,this.shardArgs);return this.shards.set(e,t),this.emit("launch",t),Promise.resolve(t)}spawn(e=this.totalShards,t=5500){if("auto"===e)return h(this.token).then(e=>{return this.totalShards=e,this._spawn(e,t)});if("number"!=typeof e||isNaN(e))throw new TypeError("Amount of shards must be a number.");if(e<1)throw new RangeError("Amount of shards must be at least 1.");if(e!==Math.floor(e))throw new TypeError("Amount of shards must be an integer.");return this._spawn(e,t)}_spawn(e,t){return new Promise(i=>{if(this.shards.size>=e)throw new Error(`Already spawned ${this.shards.size} shards.`);if(this.totalShards=e,this.createShard(),this.shards.size>=this.totalShards)return void i(this.shards);if(t<=0){for(;this.shards.size{this.createShard(),this.shards.size>=this.totalShards&&(clearInterval(e),i(this.shards))},t)}})}broadcast(e){const t=[];for(const i of this.shards.values())t.push(i.send(e));return Promise.all(t)}broadcastEval(e){const t=[];for(const i of this.shards.values())t.push(i.eval(e));return Promise.all(t)}fetchClientValues(e){if(0===this.shards.size)return Promise.reject(new Error("No shards have been spawned."));if(this.shards.size!==this.totalShards)return Promise.reject(new Error("Still spawning shards."));const t=[];for(const i of this.shards.values())t.push(i.fetchClientValue(e));return Promise.all(t)}}e.exports=c}).call(t,i(8))},function(e,t,i){!function(){function e(e){this.message=e}var i=t,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";e.prototype=new Error,e.prototype.name="InvalidCharacterError",i.btoa||(i.btoa=function(t){for(var i,n,s=0,a=r,o="";t.charAt(0|s)||(a="=",s%1);o+=a.charAt(63&i>>8-s%1*8)){if(n=t.charCodeAt(s+=.75),n>255)throw new e("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.");i=i<<8|n}return o}),i.atob||(i.atob=function(t){if(t=t.replace(/=+$/,""),t.length%4==1)throw new e("'atob' failed: The string to be decoded is not correctly encoded.");for(var i,n,s=0,a=0,o="";n=t.charAt(a++);~n&&(i=s%4?64*i+n:n,s++%4)?o+=String.fromCharCode(255&i>>(-2*s&6)):0)n=r.indexOf(n);return o})}()},function(e,t,i){function r(e,t){this.name=e,this.body=t,this.decoders={},this.encoders={}}var n=i(36),s=i(2),a=t;a.define=function(e,t){return new r(e,t)},r.prototype._createNamed=function(e){var t;try{t=i(237).runInThisContext("(function "+this.name+"(entity) {\n this._initNamed(entity);\n})")}catch(e){t=function(e){this._initNamed(e)}}return s(t,e),t.prototype._initNamed=function(t){e.call(this,t)},new t(this)},r.prototype._getDecoder=function(e){return e=e||"der",this.decoders.hasOwnProperty(e)||(this.decoders[e]=this._createNamed(n.decoders[e])),this.decoders[e]},r.prototype.decode=function(e,t,i){return this._getDecoder(t).decode(e,i)},r.prototype._getEncoder=function(e){return e=e||"der",this.encoders.hasOwnProperty(e)||(this.encoders[e]=this._createNamed(n.encoders[e])),this.encoders[e]},r.prototype.encode=function(e,t,i){return this._getEncoder(t).encode(e,i)}},function(e,t,i){function r(e,t){var i={};this._baseState=i,i.enc=e,i.parent=t||null,i.children=null,i.tag=null,i.args=null,i.reverseArgs=null,i.choice=null,i.optional=!1,i.any=!1,i.obj=!1,i.use=null,i.useDecoder=null,i.key=null,i.default=null,i.explicit=null,i.implicit=null,i.contains=null,i.parent||(i.children=[],this._wrap())}var n=i(26).Reporter,s=i(26).EncoderBuffer,a=i(26).DecoderBuffer,o=i(29),f=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],h=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(f),c=["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"];e.exports=r;var l=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];r.prototype.clone=function(){var e=this._baseState,t={};l.forEach(function(i){t[i]=e[i]});var i=new this.constructor(t.parent);return i._baseState=t,i},r.prototype._wrap=function(){var e=this._baseState;h.forEach(function(t){this[t]=function(){var i=new this.constructor(this);return e.children.push(i),i[t].apply(i,arguments)}},this)},r.prototype._init=function(e){var t=this._baseState;o(null===t.parent),e.call(this),t.children=t.children.filter(function(e){return e._baseState.parent===this},this),o.equal(t.children.length,1,"Root node can have only one child")},r.prototype._useArgs=function(e){var t=this._baseState,i=e.filter(function(e){return e instanceof this.constructor},this);e=e.filter(function(e){return!(e instanceof this.constructor)},this),0!==i.length&&(o(null===t.children),t.children=i,i.forEach(function(e){e._baseState.parent=this},this)),0!==e.length&&(o(null===t.args),t.args=e,t.reverseArgs=e.map(function(e){if("object"!=typeof e||e.constructor!==Object)return e;var t={};return Object.keys(e).forEach(function(i){i==(0|i)&&(i|=0);var r=e[i];t[r]=i}),t}))},c.forEach(function(e){r.prototype[e]=function(){var t=this._baseState;throw new Error(e+" not implemented for encoding: "+t.enc)}}),f.forEach(function(e){r.prototype[e]=function(){var t=this._baseState,i=Array.prototype.slice.call(arguments);return o(null===t.tag),t.tag=e,this._useArgs(i),this}}),r.prototype.use=function(e){o(e);var t=this._baseState;return o(null===t.use),t.use=e,this},r.prototype.optional=function(){var e=this._baseState;return e.optional=!0,this},r.prototype.def=function(e){var t=this._baseState;return o(null===t.default),t.default=e,t.optional=!0,this},r.prototype.explicit=function(e){var t=this._baseState;return o(null===t.explicit&&null===t.implicit),t.explicit=e,this},r.prototype.implicit=function(e){var t=this._baseState;return o(null===t.explicit&&null===t.implicit),t.implicit=e,this},r.prototype.obj=function(){var e=this._baseState,t=Array.prototype.slice.call(arguments);return e.obj=!0,0!==t.length&&this._useArgs(t),this},r.prototype.key=function(e){var t=this._baseState;return o(null===t.key),t.key=e,this},r.prototype.any=function(){var e=this._baseState;return e.any=!0,this},r.prototype.choice=function(e){var t=this._baseState;return o(null===t.choice),t.choice=e,this._useArgs(Object.keys(e).map(function(t){return e[t]})),this},r.prototype.contains=function(e){var t=this._baseState;return o(null===t.use),t.contains=e,this},r.prototype._decode=function(e,t){var i=this._baseState;if(null===i.parent)return e.wrapResult(i.children[0]._decode(e,t));var r=i.default,n=!0,s=null;if(null!==i.key&&(s=e.enterKey(i.key)),i.optional){var o=null;if(null!==i.explicit?o=i.explicit:null!==i.implicit?o=i.implicit:null!==i.tag&&(o=i.tag),null!==o||i.any){if(n=this._peekTag(e,o,i.any),e.isError(n))return n}else{var f=e.save();try{null===i.choice?this._decodeGeneric(i.tag,e,t):this._decodeChoice(e,t),n=!0}catch(e){n=!1}e.restore(f)}}var h;if(i.obj&&n&&(h=e.enterObject()),n){if(null!==i.explicit){var c=this._decodeTag(e,i.explicit);if(e.isError(c))return c;e=c}var l=e.offset;if(null===i.use&&null===i.choice){if(i.any)var f=e.save();var u=this._decodeTag(e,null!==i.implicit?i.implicit:i.tag,i.any);if(e.isError(u))return u;i.any?r=e.raw(f):e=u}if(t&&t.track&&null!==i.tag&&t.track(e.path(),l,e.length,"tagged"),t&&t.track&&null!==i.tag&&t.track(e.path(),e.offset,e.length,"content"),r=i.any?r:null===i.choice?this._decodeGeneric(i.tag,e,t):this._decodeChoice(e,t),e.isError(r))return r;if(i.any||null!==i.choice||null===i.children||i.children.forEach(function(i){i._decode(e,t)}),i.contains&&("octstr"===i.tag||"bitstr"===i.tag)){var d=new a(r);r=this._getUse(i.contains,e._reporterState.obj)._decode(d,t)}}return i.obj&&n&&(r=e.leaveObject(h)),null===i.key||null===r&&n!==!0?null!==s&&e.exitKey(s):e.leaveKey(s,i.key,r),r},r.prototype._decodeGeneric=function(e,t,i){var r=this._baseState;return"seq"===e||"set"===e?null:"seqof"===e||"setof"===e?this._decodeList(t,e,r.args[0],i):/str$/.test(e)?this._decodeStr(t,e,i):"objid"===e&&r.args?this._decodeObjid(t,r.args[0],r.args[1],i):"objid"===e?this._decodeObjid(t,null,null,i):"gentime"===e||"utctime"===e?this._decodeTime(t,e,i):"null_"===e?this._decodeNull(t,i):"bool"===e?this._decodeBool(t,i):"objDesc"===e?this._decodeStr(t,e,i):"int"===e||"enum"===e?this._decodeInt(t,r.args&&r.args[0],i):null!==r.use?this._getUse(r.use,t._reporterState.obj)._decode(t,i):t.error("unknown tag: "+e)},r.prototype._getUse=function(e,t){var i=this._baseState;return i.useDecoder=this._use(e,t),o(null===i.useDecoder._baseState.parent),i.useDecoder=i.useDecoder._baseState.children[0],i.implicit!==i.useDecoder._baseState.implicit&&(i.useDecoder=i.useDecoder.clone(),i.useDecoder._baseState.implicit=i.implicit),i.useDecoder},r.prototype._decodeChoice=function(e,t){var i=this._baseState,r=null,n=!1;return Object.keys(i.choice).some(function(s){var a=e.save(),o=i.choice[s];try{var f=o._decode(e,t);if(e.isError(f))return!1;r={type:s,value:f},n=!0}catch(t){return e.restore(a),!1}return!0},this),n?r:e.error("Choice not matched")},r.prototype._createEncoderBuffer=function(e){return new s(e,this.reporter)},r.prototype._encode=function(e,t,i){var r=this._baseState;if(null===r.default||r.default!==e){var n=this._encodeValue(e,t,i);if(void 0!==n&&!this._skipDefault(n,t,i))return n}},r.prototype._encodeValue=function(e,t,i){var r=this._baseState;if(null===r.parent)return r.children[0]._encode(e,t||new n);var s=null;if(this.reporter=t,r.optional&&void 0===e){if(null===r.default)return;e=r.default}var a=null,o=!1;if(r.any)s=this._createEncoderBuffer(e);else if(r.choice)s=this._encodeChoice(e,t);else if(r.contains)a=this._getUse(r.contains,i)._encode(e,t),o=!0;else if(r.children)a=r.children.map(function(i){if("null_"===i._baseState.tag)return i._encode(null,t,e);if(null===i._baseState.key)return t.error("Child should have a key");var r=t.enterKey(i._baseState.key);if("object"!=typeof e)return t.error("Child expected, but input is not object");var n=i._encode(e[i._baseState.key],t,e);return t.leaveKey(r),n},this).filter(function(e){return e}),a=this._createEncoderBuffer(a);else if("seqof"===r.tag||"setof"===r.tag){if(!r.args||1!==r.args.length)return t.error("Too many args for : "+r.tag);if(!Array.isArray(e))return t.error("seqof/setof, but data is not Array");var f=this.clone();f._baseState.implicit=null,a=this._createEncoderBuffer(e.map(function(i){var r=this._baseState;return this._getUse(r.args[0],e)._encode(i,t)},f))}else null!==r.use?s=this._getUse(r.use,i)._encode(e,t):(a=this._encodePrimitive(r.tag,e),o=!0);var s;if(!r.any&&null===r.choice){var h=null!==r.implicit?r.implicit:r.tag,c=null===r.implicit?"universal":"context";null===h?null===r.use&&t.error("Tag could be ommited only for .use()"):null===r.use&&(s=this._encodeComposite(h,o,c,a))}return null!==r.explicit&&(s=this._encodeComposite(r.explicit,!1,"context",s)),s},r.prototype._encodeChoice=function(e,t){var i=this._baseState,r=i.choice[e.type];return r||o(!1,e.type+" not found in "+JSON.stringify(Object.keys(i.choice))),r._encode(e.value,t)},r.prototype._encodePrimitive=function(e,t){var i=this._baseState;if(/str$/.test(e))return this._encodeStr(t,e);if("objid"===e&&i.args)return this._encodeObjid(t,i.reverseArgs[0],i.args[1]);if("objid"===e)return this._encodeObjid(t,null,null);if("gentime"===e||"utctime"===e)return this._encodeTime(t,e);if("null_"===e)return this._encodeNull();if("int"===e||"enum"===e)return this._encodeInt(t,i.args&&i.reverseArgs[0]);if("bool"===e)return this._encodeBool(t);if("objDesc"===e)return this._encodeStr(t,e);throw new Error("Unsupported tag: "+e)},r.prototype._isNumstr=function(e){return/^[0-9 ]*$/.test(e)},r.prototype._isPrintstr=function(e){return/^[A-Za-z0-9 '\(\)\+,\-\.\/:=\?]*$/.test(e)}},function(e,t,i){function r(e){this._reporterState={obj:null,path:[],options:e||{},errors:[]}}function n(e,t){this.path=e,this.rethrow(t)}var s=i(2);t.Reporter=r,r.prototype.isError=function(e){return e instanceof n},r.prototype.save=function(){var e=this._reporterState;return{obj:e.obj,pathLen:e.path.length}},r.prototype.restore=function(e){var t=this._reporterState;t.obj=e.obj,t.path=t.path.slice(0,e.pathLen)},r.prototype.enterKey=function(e){return this._reporterState.path.push(e)},r.prototype.exitKey=function(e){var t=this._reporterState;t.path=t.path.slice(0,e-1)},r.prototype.leaveKey=function(e,t,i){var r=this._reporterState;this.exitKey(e),null!==r.obj&&(r.obj[t]=i)},r.prototype.path=function(){return this._reporterState.path.join("/")},r.prototype.enterObject=function(){var e=this._reporterState,t=e.obj;return e.obj={},t},r.prototype.leaveObject=function(e){var t=this._reporterState,i=t.obj;return t.obj=e,i},r.prototype.error=function(e){var t,i=this._reporterState,r=e instanceof n;if(t=r?e:new n(i.path.map(function(e){return"["+JSON.stringify(e)+"]"}).join(""),e.message||e,e.stack),!i.options.partial)throw t;return r||i.errors.push(t),t},r.prototype.wrapResult=function(e){var t=this._reporterState;return t.options.partial?{result:this.isError(e)?null:e,errors:t.errors}:e},s(n,Error),n.prototype.rethrow=function(e){if(this.message=e+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,n),!this.stack)try{throw new Error(this.message)}catch(e){this.stack=e.stack}return this}},function(e,t,i){var r=i(85);t.tagClass={0:"universal",1:"application",2:"context",3:"private"},t.tagClassByName=r._reverse(t.tagClass),t.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},t.tagByName=r._reverse(t.tag)},function(e,t,i){var r=t;r.der=i(86),r.pem=i(146)},function(e,t,i){function r(e){a.call(this,e),this.enc="pem"}var n=i(2),s=i(0).Buffer,a=i(86);n(r,a),e.exports=r,r.prototype.decode=function(e,t){for(var i=e.toString().split(/[\r\n]+/g),r=t.label.toUpperCase(),n=/^-----(BEGIN|END) ([^-]+)-----$/,o=-1,f=-1,h=0;h * @license MIT */ -function r(e,t){if(e===t)return 0;for(var i=e.length,r=t.length,n=0,s=Math.min(i,r);n=0;o--)if(f[o]!==h[o])return!1;for(o=f.length-1;o>=0;o--)if(a=f[o],!d(e[a],t[a],i,r))return!1;return!0}function m(e,t,i){d(e,t,!0)&&l(e,t,i,"notDeepStrictEqual",m)}function w(e,t){if(!e||!t)return!1;if("[object RegExp]"==Object.prototype.toString.call(t))return t.test(e);try{if(e instanceof t)return!0}catch(e){}return!Error.isPrototypeOf(t)&&t.call({},e)===!0}function g(e){var t;try{e()}catch(e){t=e}return t}function v(e,t,i,r){var n;if("function"!=typeof t)throw new TypeError('"block" argument must be a function');"string"==typeof i&&(r=i,i=null),n=g(t),r=(i&&i.name?" ("+i.name+").":".")+(r?" "+r:"."),e&&!n&&l(n,i,"Missing expected exception"+r);var s="string"==typeof r,a=!e&&_.isError(n),o=!e&&n&&!i;if((a&&s&&w(n,i)||o)&&l(n,i,"Got unwanted exception"+r),e&&n&&i&&!w(n,i)||!e&&n)throw n}var _=i(8),y=Object.prototype.hasOwnProperty,k=Array.prototype.slice,E=function(){return"foo"===function(){}.name}(),A=e.exports=u,S=/\s*function\s+([^\(\s]*)\s*/;A.AssertionError=function(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=c(this),this.generatedMessage=!0);var t=e.stackStartFunction||l;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var i=new Error;if(i.stack){var r=i.stack,n=o(t),s=r.indexOf("\n"+n);if(s>=0){var a=r.indexOf("\n",s+1);r=r.substring(a+1)}this.stack=r}}},_.inherits(A.AssertionError,Error),A.fail=l,A.ok=u,A.equal=function(e,t,i){e!=t&&l(e,t,i,"==",A.equal)},A.notEqual=function(e,t,i){e==t&&l(e,t,i,"!=",A.notEqual)},A.deepEqual=function(e,t,i){d(e,t,!1)||l(e,t,i,"deepEqual",A.deepEqual)},A.deepStrictEqual=function(e,t,i){d(e,t,!0)||l(e,t,i,"deepStrictEqual",A.deepStrictEqual)},A.notDeepEqual=function(e,t,i){d(e,t,!1)&&l(e,t,i,"notDeepEqual",A.notDeepEqual)},A.notDeepStrictEqual=m,A.strictEqual=function(e,t,i){e!==t&&l(e,t,i,"===",A.strictEqual)},A.notStrictEqual=function(e,t,i){e===t&&l(e,t,i,"!==",A.notStrictEqual)},A.throws=function(e,t,i){v(!0,e,t,i)},A.doesNotThrow=function(e,t,i){v(!1,e,t,i)},A.ifError=function(e){if(e)throw e};var M=Object.keys||function(e){var t=[];for(var i in e)y.call(e,i)&&t.push(i);return t}}).call(t,i(16))},function(e,t){"use strict";function i(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===e[t-2]?2:"="===e[t-1]?1:0}function r(e){return 3*e.length/4-i(e)}function n(e){var t,r,n,s,a,o,f=e.length;a=i(e),o=new c(3*f/4-a),n=a>0?f-4:f;var l=0;for(t=0,r=0;t>16&255,o[l++]=s>>8&255,o[l++]=255&s;return 2===a?(s=h[e.charCodeAt(t)]<<2|h[e.charCodeAt(t+1)]>>4,o[l++]=255&s):1===a&&(s=h[e.charCodeAt(t)]<<10|h[e.charCodeAt(t+1)]<<4|h[e.charCodeAt(t+2)]>>2,o[l++]=s>>8&255,o[l++]=255&s),o}function s(e){return f[e>>18&63]+f[e>>12&63]+f[e>>6&63]+f[63&e]}function a(e,t,i){for(var r,n=[],a=t;ac?c:h+o));return 1===r?(t=e[i-1],n+=f[t>>2],n+=f[t<<4&63],n+="=="):2===r&&(t=(e[i-2]<<8)+e[i-1],n+=f[t>>10],n+=f[t>>4&63],n+=f[t<<2&63],n+="="),s.push(n),s.join("")}t.byteLength=r,t.toByteArray=n,t.fromByteArray=o;for(var f=[],h=[],c="undefined"!=typeof Uint8Array?Uint8Array:Array,l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",u=0,d=l.length;u16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t}else if(this.cache.length>=16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t;return null},n.prototype.flush=function(){if(this.cache.length)return this.cache};var b={ECB:i(92),CBC:i(88),CFB:i(89),CFB8:i(91),CFB1:i(90),OFB:i(93),CTR:i(35),GCM:i(35)};t.createDecipher=o,t.createDecipheriv=a}).call(t,i(0).Buffer)},function(e,t,i){(function(e){function r(t,i,s){return this instanceof r?(f.call(this),this._cache=new n,this._cipher=new o.AES(i),this._prev=new e(s.length),s.copy(this._prev),this._mode=t,void(this._autopadding=!0)):new r(t,i,s)}function n(){return this instanceof n?void(this.cache=new e("")):new n}function s(t,i,n){var s=c[t.toLowerCase()];if(!s)throw new TypeError("invalid suite type");if("string"==typeof n&&(n=new e(n)),"string"==typeof i&&(i=new e(i)),i.length!==s.key/8)throw new TypeError("invalid key length "+i.length);if(n.length!==s.iv)throw new TypeError("invalid iv length "+n.length);return"stream"===s.type?new u(p[s.mode],i,n):"auth"===s.type?new d(p[s.mode],i,n):new r(p[s.mode],i,n)}function a(e,t){var i=c[e.toLowerCase()];if(!i)throw new TypeError("invalid suite type");var r=l(t,!1,i.key,i.iv);return s(e,r.key,r.iv)}var o=i(33),f=i(17),h=i(1),c=i(34),l=i(37),u=i(94),d=i(87);h(r,f),r.prototype._update=function(t){this._cache.add(t);for(var i,r,n=[];i=this._cache.get();)r=this._mode.encrypt(this,i),n.push(r);return e.concat(n)},r.prototype._final=function(){var e=this._cache.flush();if(this._autopadding)return e=this._mode.encrypt(this,e),this._cipher.scrub(),e;if("10101010101010101010101010101010"!==e.toString("hex"))throw this._cipher.scrub(),new Error("data not multiple of block length")},r.prototype.setAutoPadding=function(e){return this._autopadding=!!e,this},n.prototype.add=function(t){this.cache=e.concat([this.cache,t])},n.prototype.get=function(){if(this.cache.length>15){var e=this.cache.slice(0,16);return this.cache=this.cache.slice(16),e}return null},n.prototype.flush=function(){for(var t=16-this.cache.length,i=new e(t),r=-1;++rf||e<0?(i=Math.abs(e)%f,e<0?f-i:i):e}function a(e,t){return[e[0]^t[0],e[1]^t[1],e[2]^t[2],e[3]^t[3]]}var o=new t(16);o.fill(0),e.exports=i,i.prototype.ghash=function(e){for(var t=-1;++t0;e--)s[e]=s[e]>>>1|(1&s[e-1])<<31;s[0]=s[0]>>>1,i&&(s[0]=s[0]^225<<24)}this.state=n(o)},i.prototype.update=function(e){this.cache=t.concat([this.cache,e]);for(var i;this.cache.length>=16;)i=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(i)},i.prototype.final=function(e,i){return this.cache.length&&this.ghash(t.concat([this.cache,o],16)),this.ghash(n([0,e,0,i])),this.state};var f=Math.pow(2,32)}).call(t,i(0).Buffer)},function(e,t,i){function r(e,t){var i,r;if(e=e.toLowerCase(),u[e])i=u[e].key,r=u[e].iv;else{if(!l[e])throw new TypeError("invalid suite type");i=8*l[e].key,r=l[e].iv}var n=f(t,!1,i,r);return s(e,n.key,n.iv)}function n(e,t){var i,r;if(e=e.toLowerCase(),u[e])i=u[e].key,r=u[e].iv;else{if(!l[e])throw new TypeError("invalid suite type");i=8*l[e].key,r=l[e].iv}var n=f(t,!1,i,r);return a(e,n.key,n.iv)}function s(e,t,i){if(e=e.toLowerCase(),u[e])return h.createCipheriv(e,t,i);if(l[e])return new c({key:t,iv:i,mode:e});throw new TypeError("invalid suite type")}function a(e,t,i){if(e=e.toLowerCase(),u[e])return h.createDecipheriv(e,t,i);if(l[e])return new c({key:t,iv:i,mode:e,decrypt:!0});throw new TypeError("invalid suite type")}function o(){return Object.keys(l).concat(h.getCiphers())}var f=i(37),h=i(47),c=i(153),l=i(154),u=i(34);t.createCipher=t.Cipher=r,t.createCipheriv=t.Cipheriv=s,t.createDecipher=t.Decipher=n,t.createDecipheriv=t.Decipheriv=a,t.listCiphers=t.getCiphers=o},function(e,t,i){(function(t){function r(e){n.call(this);var i,r=e.mode.toLowerCase(),s=o[r];i=e.decrypt?"decrypt":"encrypt";var a=e.key;"des-ede"!==r&&"des-ede-cbc"!==r||(a=t.concat([a,a.slice(0,8)]));var f=e.iv;this._des=s.create({key:a,iv:f,type:i})}var n=i(17),s=i(51),a=i(1),o={"des-ede3-cbc":s.CBC.instantiate(s.EDE),"des-ede3":s.EDE,"des-ede-cbc":s.CBC.instantiate(s.EDE),"des-ede":s.EDE,"des-cbc":s.CBC.instantiate(s.DES),"des-ecb":s.DES};o.des=o["des-cbc"],o.des3=o["des-ede3-cbc"],e.exports=r,a(r,n),r.prototype._update=function(e){return new t(this._des.update(e))},r.prototype._final=function(){return new t(this._des.final())}}).call(t,i(0).Buffer)},function(e,t){t["des-ecb"]={key:8,iv:0},t["des-cbc"]=t.des={key:8,iv:8},t["des-ede3-cbc"]=t.des3={key:24,iv:8},t["des-ede3"]={key:24,iv:0},t["des-ede-cbc"]={key:16,iv:8},t["des-ede"]={key:16,iv:0}},function(e,t,i){(function(t){function r(e){l.Writable.call(this);var t=d[e];if(!t)throw new Error("Unknown message digest");this._hashType=t.hash,this._hash=f(t.hash),this._tag=t.id,this._signType=t.sign}function n(e){l.Writable.call(this);var t=d[e];if(!t)throw new Error("Unknown message digest");this._hash=f(t.hash),this._tag=t.id,this._signType=t.sign}function s(e){return new r(e)}function a(e){return new n(e)}var o=i(95),f=i(18),h=i(1),c=i(156),l=i(9),u=i(157),d={};Object.keys(o).forEach(function(e){d[e]=d[e.toLowerCase()]=o[e]}),h(r,l.Writable),r.prototype._write=function(e,t,i){this._hash.update(e),i()},r.prototype.update=function(e,i){return"string"==typeof e&&(e=new t(e,i)),this._hash.update(e),this},r.prototype.sign=function(e,i){this.end();var r=this._hash.digest(),n=c(t.concat([this._tag,r]),e,this._hashType,this._signType);return i?n.toString(i):n},h(n,l.Writable),n.prototype._write=function(e,t,i){this._hash.update(e),i()},n.prototype.update=function(e,i){return"string"==typeof e&&(e=new t(e,i)),this._hash.update(e),this},n.prototype.verify=function(e,i,r){"string"==typeof i&&(i=new t(i,r)),this.end();var n=this._hash.digest();return u(i,t.concat([this._tag,n]),e,this._signType)},e.exports={Sign:s,Verify:a,createSign:s,createVerify:a}}).call(t,i(0).Buffer)},function(e,t,i){(function(t){function r(e,t,i,r){var a=m(t);if(a.curve){if("ecdsa"!==r)throw new Error("wrong private key type");return n(e,a)}if("dsa"===a.type){if("dsa"!==r)throw new Error("wrong private key type");return s(e,a,i)}if("rsa"!==r)throw new Error("wrong private key type");for(var o=a.modulus.byteLength(),f=[0,1];e.length+f.length+10&&i.ishrn(r),i}function h(e,i){e=f(e,i),e=e.mod(i);var r=new t(e.toArray());if(r.length=t)throw new Error("invalid sig")}var o=i(96),f=i(7),h=i(39),c=i(4),l=f.ec;e.exports=r}).call(t,i(0).Buffer)},function(e,t,i){(function(e,r){function n(e){if(et.UNZIP)throw new TypeError("Bad argument");this.mode=e,this.init_done=!1,this.write_in_progress=!1,this.pending_close=!1,this.windowBits=0,this.level=0,this.memLevel=0,this.strategy=0,this.dictionary=null}function s(e,t){for(var i=0;i=0;o--)if(f[o]!==h[o])return!1;for(o=f.length-1;o>=0;o--)if(a=f[o],!d(e[a],t[a],i,r))return!1;return!0}function m(e,t,i){d(e,t,!0)&&l(e,t,i,"notDeepStrictEqual",m)}function w(e,t){if(!e||!t)return!1;if("[object RegExp]"==Object.prototype.toString.call(t))return t.test(e);try{if(e instanceof t)return!0}catch(e){}return!Error.isPrototypeOf(t)&&t.call({},e)===!0}function g(e){var t;try{e()}catch(e){t=e}return t}function v(e,t,i,r){var n;if("function"!=typeof t)throw new TypeError('"block" argument must be a function');"string"==typeof i&&(r=i,i=null),n=g(t),r=(i&&i.name?" ("+i.name+").":".")+(r?" "+r:"."),e&&!n&&l(n,i,"Missing expected exception"+r);var s="string"==typeof r,a=!e&&_.isError(n),o=!e&&n&&!i;if((a&&s&&w(n,i)||o)&&l(n,i,"Got unwanted exception"+r),e&&n&&i&&!w(n,i)||!e&&n)throw n}var _=i(10),y=Object.prototype.hasOwnProperty,k=Array.prototype.slice,E=function(){return"foo"===function(){}.name}(),A=e.exports=u,S=/\s*function\s+([^\(\s]*)\s*/;A.AssertionError=function(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=c(this),this.generatedMessage=!0);var t=e.stackStartFunction||l;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var i=new Error;if(i.stack){var r=i.stack,n=o(t),s=r.indexOf("\n"+n);if(s>=0){var a=r.indexOf("\n",s+1);r=r.substring(a+1)}this.stack=r}}},_.inherits(A.AssertionError,Error),A.fail=l,A.ok=u,A.equal=function(e,t,i){e!=t&&l(e,t,i,"==",A.equal)},A.notEqual=function(e,t,i){e==t&&l(e,t,i,"!=",A.notEqual)},A.deepEqual=function(e,t,i){d(e,t,!1)||l(e,t,i,"deepEqual",A.deepEqual)},A.deepStrictEqual=function(e,t,i){d(e,t,!0)||l(e,t,i,"deepStrictEqual",A.deepStrictEqual)},A.notDeepEqual=function(e,t,i){d(e,t,!1)&&l(e,t,i,"notDeepEqual",A.notDeepEqual)},A.notDeepStrictEqual=m,A.strictEqual=function(e,t,i){e!==t&&l(e,t,i,"===",A.strictEqual)},A.notStrictEqual=function(e,t,i){e===t&&l(e,t,i,"!==",A.notStrictEqual)},A.throws=function(e,t,i){v(!0,e,t,i)},A.doesNotThrow=function(e,t,i){v(!1,e,t,i)},A.ifError=function(e){if(e)throw e};var M=Object.keys||function(e){var t=[];for(var i in e)y.call(e,i)&&t.push(i);return t}}).call(t,i(19))},function(e,t){"use strict";function i(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===e[t-2]?2:"="===e[t-1]?1:0}function r(e){return 3*e.length/4-i(e)}function n(e){var t,r,n,s,a,o,f=e.length;a=i(e),o=new c(3*f/4-a),n=a>0?f-4:f;var l=0;for(t=0,r=0;t>16&255,o[l++]=s>>8&255,o[l++]=255&s;return 2===a?(s=h[e.charCodeAt(t)]<<2|h[e.charCodeAt(t+1)]>>4,o[l++]=255&s):1===a&&(s=h[e.charCodeAt(t)]<<10|h[e.charCodeAt(t+1)]<<4|h[e.charCodeAt(t+2)]>>2,o[l++]=s>>8&255,o[l++]=255&s),o}function s(e){return f[e>>18&63]+f[e>>12&63]+f[e>>6&63]+f[63&e]}function a(e,t,i){for(var r,n=[],a=t;ac?c:h+o));return 1===r?(t=e[i-1],n+=f[t>>2],n+=f[t<<4&63],n+="=="):2===r&&(t=(e[i-2]<<8)+e[i-1],n+=f[t>>10],n+=f[t>>4&63],n+=f[t<<2&63],n+="="),s.push(n),s.join("")}t.byteLength=r,t.toByteArray=n,t.fromByteArray=o;for(var f=[],h=[],c="undefined"!=typeof Uint8Array?Uint8Array:Array,l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",u=0,d=l.length;u16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t}else if(this.cache.length>=16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t;return null},n.prototype.flush=function(){if(this.cache.length)return this.cache};var b={ECB:i(96),CBC:i(92),CFB:i(93),CFB8:i(95),CFB1:i(94),OFB:i(97),CTR:i(39),GCM:i(39)};t.createDecipher=o,t.createDecipheriv=a}).call(t,i(0).Buffer)},function(e,t,i){(function(e){function r(t,i,s){return this instanceof r?(f.call(this),this._cache=new n,this._cipher=new o.AES(i),this._prev=new e(s.length),s.copy(this._prev),this._mode=t,void(this._autopadding=!0)):new r(t,i,s)}function n(){return this instanceof n?void(this.cache=new e("")):new n}function s(t,i,n){var s=c[t.toLowerCase()];if(!s)throw new TypeError("invalid suite type");if("string"==typeof n&&(n=new e(n)),"string"==typeof i&&(i=new e(i)),i.length!==s.key/8)throw new TypeError("invalid key length "+i.length);if(n.length!==s.iv)throw new TypeError("invalid iv length "+n.length);return"stream"===s.type?new u(p[s.mode],i,n):"auth"===s.type?new d(p[s.mode],i,n):new r(p[s.mode],i,n)}function a(e,t){var i=c[e.toLowerCase()];if(!i)throw new TypeError("invalid suite type");var r=l(t,!1,i.key,i.iv);return s(e,r.key,r.iv)}var o=i(37),f=i(21),h=i(2),c=i(38),l=i(41),u=i(98),d=i(91);h(r,f),r.prototype._update=function(t){this._cache.add(t);for(var i,r,n=[];i=this._cache.get();)r=this._mode.encrypt(this,i),n.push(r);return e.concat(n)},r.prototype._final=function(){var e=this._cache.flush();if(this._autopadding)return e=this._mode.encrypt(this,e),this._cipher.scrub(),e;if("10101010101010101010101010101010"!==e.toString("hex"))throw this._cipher.scrub(),new Error("data not multiple of block length")},r.prototype.setAutoPadding=function(e){return this._autopadding=!!e,this},n.prototype.add=function(t){this.cache=e.concat([this.cache,t])},n.prototype.get=function(){if(this.cache.length>15){var e=this.cache.slice(0,16);return this.cache=this.cache.slice(16),e}return null},n.prototype.flush=function(){for(var t=16-this.cache.length,i=new e(t),r=-1;++rf||e<0?(i=Math.abs(e)%f,e<0?f-i:i):e}function a(e,t){return[e[0]^t[0],e[1]^t[1],e[2]^t[2],e[3]^t[3]]}var o=new t(16);o.fill(0),e.exports=i,i.prototype.ghash=function(e){for(var t=-1;++t0;e--)s[e]=s[e]>>>1|(1&s[e-1])<<31;s[0]=s[0]>>>1,i&&(s[0]=s[0]^225<<24)}this.state=n(o)},i.prototype.update=function(e){this.cache=t.concat([this.cache,e]);for(var i;this.cache.length>=16;)i=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(i)},i.prototype.final=function(e,i){return this.cache.length&&this.ghash(t.concat([this.cache,o],16)),this.ghash(n([0,e,0,i])),this.state};var f=Math.pow(2,32)}).call(t,i(0).Buffer)},function(e,t,i){function r(e,t){var i,r;if(e=e.toLowerCase(),u[e])i=u[e].key,r=u[e].iv;else{if(!l[e])throw new TypeError("invalid suite type");i=8*l[e].key,r=l[e].iv}var n=f(t,!1,i,r);return s(e,n.key,n.iv)}function n(e,t){var i,r;if(e=e.toLowerCase(),u[e])i=u[e].key,r=u[e].iv;else{if(!l[e])throw new TypeError("invalid suite type");i=8*l[e].key,r=l[e].iv}var n=f(t,!1,i,r);return a(e,n.key,n.iv)}function s(e,t,i){if(e=e.toLowerCase(),u[e])return h.createCipheriv(e,t,i);if(l[e])return new c({key:t,iv:i,mode:e});throw new TypeError("invalid suite type")}function a(e,t,i){if(e=e.toLowerCase(),u[e])return h.createDecipheriv(e,t,i);if(l[e])return new c({key:t,iv:i,mode:e,decrypt:!0});throw new TypeError("invalid suite type")}function o(){return Object.keys(l).concat(h.getCiphers())}var f=i(41),h=i(50),c=i(155),l=i(156),u=i(38);t.createCipher=t.Cipher=r,t.createCipheriv=t.Cipheriv=s,t.createDecipher=t.Decipher=n,t.createDecipheriv=t.Decipheriv=a,t.listCiphers=t.getCiphers=o},function(e,t,i){(function(t){function r(e){n.call(this);var i,r=e.mode.toLowerCase(),s=o[r];i=e.decrypt?"decrypt":"encrypt";var a=e.key;"des-ede"!==r&&"des-ede-cbc"!==r||(a=t.concat([a,a.slice(0,8)]));var f=e.iv;this._des=s.create({key:a,iv:f,type:i})}var n=i(21),s=i(54),a=i(2),o={"des-ede3-cbc":s.CBC.instantiate(s.EDE),"des-ede3":s.EDE,"des-ede-cbc":s.CBC.instantiate(s.EDE),"des-ede":s.EDE,"des-cbc":s.CBC.instantiate(s.DES),"des-ecb":s.DES};o.des=o["des-cbc"],o.des3=o["des-ede3-cbc"],e.exports=r,a(r,n),r.prototype._update=function(e){return new t(this._des.update(e))},r.prototype._final=function(){return new t(this._des.final())}}).call(t,i(0).Buffer)},function(e,t){t["des-ecb"]={key:8,iv:0},t["des-cbc"]=t.des={key:8,iv:8},t["des-ede3-cbc"]=t.des3={key:24,iv:8},t["des-ede3"]={key:24,iv:0},t["des-ede-cbc"]={key:16,iv:8},t["des-ede"]={key:16,iv:0}},function(e,t,i){(function(t){function r(e){l.Writable.call(this);var t=d[e];if(!t)throw new Error("Unknown message digest");this._hashType=t.hash,this._hash=f(t.hash),this._tag=t.id,this._signType=t.sign}function n(e){l.Writable.call(this);var t=d[e];if(!t)throw new Error("Unknown message digest");this._hash=f(t.hash),this._tag=t.id,this._signType=t.sign}function s(e){return new r(e)}function a(e){return new n(e)}var o=i(99),f=i(22),h=i(2),c=i(158),l=i(11),u=i(159),d={};Object.keys(o).forEach(function(e){d[e]=d[e.toLowerCase()]=o[e]}),h(r,l.Writable),r.prototype._write=function(e,t,i){this._hash.update(e),i()},r.prototype.update=function(e,i){return"string"==typeof e&&(e=new t(e,i)),this._hash.update(e),this},r.prototype.sign=function(e,i){this.end();var r=this._hash.digest(),n=c(t.concat([this._tag,r]),e,this._hashType,this._signType);return i?n.toString(i):n},h(n,l.Writable),n.prototype._write=function(e,t,i){this._hash.update(e),i()},n.prototype.update=function(e,i){return"string"==typeof e&&(e=new t(e,i)),this._hash.update(e),this},n.prototype.verify=function(e,i,r){"string"==typeof i&&(i=new t(i,r)),this.end();var n=this._hash.digest();return u(i,t.concat([this._tag,n]),e,this._signType)},e.exports={Sign:s,Verify:a,createSign:s,createVerify:a}}).call(t,i(0).Buffer)},function(e,t,i){(function(t){function r(e,t,i,r){var a=m(t);if(a.curve){if("ecdsa"!==r)throw new Error("wrong private key type");return n(e,a)}if("dsa"===a.type){if("dsa"!==r)throw new Error("wrong private key type");return s(e,a,i)}if("rsa"!==r)throw new Error("wrong private key type");for(var o=a.modulus.byteLength(),f=[0,1];e.length+f.length+10&&i.ishrn(r),i}function h(e,i){e=f(e,i),e=e.mod(i);var r=new t(e.toArray());if(r.length=t)throw new Error("invalid sig")}var o=i(100),f=i(9),h=i(43),c=i(7),l=f.ec;e.exports=r}).call(t,i(0).Buffer)},function(e,t,i){(function(e,r){function n(e){if(et.UNZIP)throw new TypeError("Bad argument");this.mode=e,this.init_done=!1,this.write_in_progress=!1,this.pending_close=!1,this.windowBits=0,this.level=0,this.memLevel=0,this.strategy=0,this.dictionary=null}function s(e,t){for(var i=0;i * MIT Licensed */ -e.exports.BufferUtil={merge:function(e,t){for(var i=0,r=0,n=t.length;i>>5]|=e[i]<<24-r%32;return t}function r(e){for(var t=[],i=0;i<32*e.length;i+=8)t.push(e[i>>>5]>>>24-i%32&255);return t}function n(e,t,i){for(var r=0;r<16;r++){var n=i+r,l=t[n];t[n]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}var g,v,_,y,k,E,A,S,M,T;E=g=e[0],A=v=e[1],S=_=e[2],M=y=e[3],T=k=e[4];var R;for(r=0;r<80;r+=1)R=g+t[i+u[r]]|0,R+=r<16?s(v,_,y)+m[0]:r<32?a(v,_,y)+m[1]:r<48?o(v,_,y)+m[2]:r<64?f(v,_,y)+m[3]:h(v,_,y)+m[4],R|=0,R=c(R,p[r]),R=R+k|0,g=k,k=y,y=c(_,10),_=v,v=R,R=E+t[i+d[r]]|0,R+=r<16?h(A,S,M)+w[0]:r<32?f(A,S,M)+w[1]:r<48?o(A,S,M)+w[2]:r<64?a(A,S,M)+w[3]:s(A,S,M)+w[4],R|=0,R=c(R,b[r]),R=R+T|0,E=T,T=M,M=c(S,10),S=A,A=R;R=e[1]+_+M|0,e[1]=e[2]+y+T|0,e[2]=e[3]+k+E|0,e[3]=e[4]+g+A|0,e[4]=e[0]+v+S|0,e[0]=R}function s(e,t,i){return e^t^i}function a(e,t,i){return e&t|~e&i}function o(e,t,i){return(e|~t)^i}function f(e,t,i){return e&i|t&~i}function h(e,t,i){return e^(t|~i)}function c(e,t){return e<>>32-t}function l(e){var s=[1732584193,4023233417,2562383102,271733878,3285377520];"string"==typeof e&&(e=new t(e,"utf8"));var a=i(e),o=8*e.length,f=8*e.length;a[o>>>5]|=128<<24-o%32,a[(o+64>>>9<<4)+14]=16711935&(f<<8|f>>>24)|4278255360&(f<<24|f>>>8);for(var h=0;h>>24)|4278255360&(c<<24|c>>>8)}var l=r(s);return new t(l)}/** @preserve +e.exports.BufferUtil={merge:function(e,t){for(var i=0,r=0,n=t.length;i>>5]|=e[i]<<24-r%32;return t}function r(e){for(var t=[],i=0;i<32*e.length;i+=8)t.push(e[i>>>5]>>>24-i%32&255);return t}function n(e,t,i){for(var r=0;r<16;r++){var n=i+r,l=t[n];t[n]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}var g,v,_,y,k,E,A,S,M,T;E=g=e[0],A=v=e[1],S=_=e[2],M=y=e[3],T=k=e[4];var x;for(r=0;r<80;r+=1)x=g+t[i+u[r]]|0,x+=r<16?s(v,_,y)+m[0]:r<32?a(v,_,y)+m[1]:r<48?o(v,_,y)+m[2]:r<64?f(v,_,y)+m[3]:h(v,_,y)+m[4],x|=0,x=c(x,p[r]),x=x+k|0,g=k,k=y,y=c(_,10),_=v,v=x,x=E+t[i+d[r]]|0,x+=r<16?h(A,S,M)+w[0]:r<32?f(A,S,M)+w[1]:r<48?o(A,S,M)+w[2]:r<64?a(A,S,M)+w[3]:s(A,S,M)+w[4],x|=0,x=c(x,b[r]),x=x+T|0,E=T,T=M,M=c(S,10),S=A,A=x;x=e[1]+_+M|0,e[1]=e[2]+y+T|0,e[2]=e[3]+k+E|0,e[3]=e[4]+g+A|0,e[4]=e[0]+v+S|0,e[0]=x}function s(e,t,i){return e^t^i}function a(e,t,i){return e&t|~e&i}function o(e,t,i){return(e|~t)^i}function f(e,t,i){return e&i|t&~i}function h(e,t,i){return e^(t|~i)}function c(e,t){return e<>>32-t}function l(e){var s=[1732584193,4023233417,2562383102,271733878,3285377520];"string"==typeof e&&(e=new t(e,"utf8"));var a=i(e),o=8*e.length,f=8*e.length;a[o>>>5]|=128<<24-o%32,a[(o+64>>>9<<4)+14]=16711935&(f<<8|f>>>24)|4278255360&(f<<24|f>>>8);for(var h=0;h>>24)|4278255360&(c<<24|c>>>8)}var l=r(s);return new t(l)}/** @preserve (c) 2012 by Cédric Mesnil. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -69,42 +67,42 @@ Redistribution and use in source and binary forms, with or without modification, THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -var u=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],d=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],p=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],b=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],m=[0,1518500249,1859775393,2400959708,2840853838],w=[1352829926,1548603684,1836072691,2053994217,0];e.exports=l}).call(t,i(0).Buffer)},function(e,t,i){var t=e.exports=function(e){e=e.toLowerCase();var i=t[e];if(!i)throw new Error(e+" is not supported (we accept pull requests)");return new i};t.sha=i(166),t.sha1=i(167),t.sha224=i(168),t.sha256=i(99),t.sha384=i(169),t.sha512=i(100)},function(e,t,i){(function(t){function r(){this.init(),this._w=c,f.call(this,64,56)}function n(e){return e<<5|e>>>27}function s(e){return e<<30|e>>>2}function a(e,t,i,r){return 0===e?t&i|~t&r:2===e?t&i|t&r|i&r:t^i^r}var o=i(1),f=i(19),h=[1518500249,1859775393,-1894007588,-899497514],c=new Array(80);o(r,f),r.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},r.prototype._update=function(e){for(var t=this._w,i=0|this._a,r=0|this._b,o=0|this._c,f=0|this._d,c=0|this._e,l=0;l<16;++l)t[l]=e.readInt32BE(4*l);for(;l<80;++l)t[l]=t[l-3]^t[l-8]^t[l-14]^t[l-16];for(var u=0;u<80;++u){var d=~~(u/20),p=n(i)+a(d,r,o,f)+c+t[u]+h[d]|0;c=f,f=o,o=s(r),r=i,i=p}this._a=i+this._a|0,this._b=r+this._b|0,this._c=o+this._c|0,this._d=f+this._d|0,this._e=c+this._e|0},r.prototype._hash=function(){var e=new t(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=r}).call(t,i(0).Buffer)},function(e,t,i){(function(t){function r(){this.init(),this._w=l,h.call(this,64,56)}function n(e){return e<<1|e>>>31}function s(e){return e<<5|e>>>27}function a(e){return e<<30|e>>>2}function o(e,t,i,r){return 0===e?t&i|~t&r:2===e?t&i|t&r|i&r:t^i^r}var f=i(1),h=i(19),c=[1518500249,1859775393,-1894007588,-899497514],l=new Array(80);f(r,h),r.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},r.prototype._update=function(e){for(var t=this._w,i=0|this._a,r=0|this._b,f=0|this._c,h=0|this._d,l=0|this._e,u=0;u<16;++u)t[u]=e.readInt32BE(4*u);for(;u<80;++u)t[u]=n(t[u-3]^t[u-8]^t[u-14]^t[u-16]);for(var d=0;d<80;++d){var p=~~(d/20),b=s(i)+o(p,r,f,h)+l+t[d]+c[p]|0;l=h,h=f,f=a(r),r=i,i=b}this._a=i+this._a|0,this._b=r+this._b|0,this._c=f+this._c|0,this._d=h+this._d|0,this._e=l+this._e|0},r.prototype._hash=function(){var e=new t(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=r}).call(t,i(0).Buffer)},function(e,t,i){(function(t){function r(){this.init(),this._w=o,a.call(this,64,56)}var n=i(1),s=i(99),a=i(19),o=new Array(64);n(r,s),r.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},r.prototype._hash=function(){var e=new t(28);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e},e.exports=r}).call(t,i(0).Buffer)},function(e,t,i){(function(t){function r(){this.init(),this._w=o,a.call(this,128,112)}var n=i(1),s=i(100),a=i(19),o=new Array(160);n(r,s),r.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},r.prototype._hash=function(){function e(e,t,r){i.writeInt32BE(e,r),i.writeInt32BE(t,r+4)}var i=new t(48);return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),i},e.exports=r}).call(t,i(0).Buffer)},function(e,t,i){"use strict";function r(e){s.equal(e.length,8,"Invalid IV length"),this.iv=new Array(8);for(var t=0;t0;r--)t+=this._buffer(e,t),i+=this._flushBuffer(n,i);return t+=this._buffer(e,t),n},r.prototype.final=function(e){var t;e&&(t=this.update(e));var i;return i="encrypt"===this.type?this._finalEncrypt():this._finalDecrypt(),t?t.concat(i):i},r.prototype._pad=function(e,t){if(0===t)return!1;for(;t>>1];i=f.r28shl(i,a),r=f.r28shl(r,a),f.pc2(i,r,e.keys,n)}},n.prototype._update=function(e,t,i,r){var n=this._desState,s=f.readUInt32BE(e,t),a=f.readUInt32BE(e,t+4);f.ip(s,a,n.tmp,0),s=n.tmp[0],a=n.tmp[1],"encrypt"===this.type?this._encrypt(n,s,a,n.tmp,0):this._decrypt(n,s,a,n.tmp,0),s=n.tmp[0],a=n.tmp[1],f.writeUInt32BE(i,s,r),f.writeUInt32BE(i,a,r+4)},n.prototype._pad=function(e,t){for(var i=e.length-t,r=t;r>>0,s=d}f.rip(a,s,r,n)},n.prototype._decrypt=function(e,t,i,r,n){for(var s=i,a=t,o=e.keys.length-2;o>=0;o-=2){var h=e.keys[o],c=e.keys[o+1];f.expand(s,e.tmp,0),h^=e.tmp[0],c^=e.tmp[1];var l=f.substitute(h,c),u=f.permute(l),d=s;s=(a^u)>>>0,a=d}f.rip(s,a,r,n)}},function(e,t,i){"use strict";function r(e,t){s.equal(t.length,24,"Invalid key length");var i=t.slice(0,8),r=t.slice(8,16),n=t.slice(16,24);"encrypt"===e?this.ciphers=[h.create({type:"encrypt",key:i}),h.create({type:"decrypt",key:r}),h.create({type:"encrypt",key:n})]:this.ciphers=[h.create({type:"decrypt",key:n}),h.create({type:"encrypt",key:r}),h.create({type:"decrypt",key:i})]}function n(e){f.call(this,e);var t=new r(this.type,this.options.key);this._edeState=t}var s=i(26),a=i(1),o=i(51),f=o.Cipher,h=o.DES;a(n,f),e.exports=n,n.create=function(e){return new n(e)},n.prototype._update=function(e,t,i,r){var n=this._edeState;n.ciphers[0]._update(e,t,i,r),n.ciphers[1]._update(i,r,i,r),n.ciphers[2]._update(i,r,i,r)},n.prototype._pad=h.prototype._pad,n.prototype._unpad=h.prototype._unpad},function(e,t){"use strict";t.readUInt32BE=function(e,t){var i=e[0+t]<<24|e[1+t]<<16|e[2+t]<<8|e[3+t];return i>>>0},t.writeUInt32BE=function(e,t,i){e[0+i]=t>>>24,e[1+i]=t>>>16&255,e[2+i]=t>>>8&255,e[3+i]=255&t},t.ip=function(e,t,i,r){for(var n=0,s=0,a=6;a>=0;a-=2){for(var o=0;o<=24;o+=8)n<<=1,n|=t>>>o+a&1;for(var o=0;o<=24;o+=8)n<<=1,n|=e>>>o+a&1}for(var a=6;a>=0;a-=2){for(var o=1;o<=25;o+=8)s<<=1,s|=t>>>o+a&1;for(var o=1;o<=25;o+=8)s<<=1,s|=e>>>o+a&1}i[r+0]=n>>>0,i[r+1]=s>>>0},t.rip=function(e,t,i,r){for(var n=0,s=0,a=0;a<4;a++)for(var o=24;o>=0;o-=8)n<<=1,n|=t>>>o+a&1,n<<=1,n|=e>>>o+a&1;for(var a=4;a<8;a++)for(var o=24;o>=0;o-=8)s<<=1,s|=t>>>o+a&1,s<<=1,s|=e>>>o+a&1;i[r+0]=n>>>0,i[r+1]=s>>>0},t.pc1=function(e,t,i,r){for(var n=0,s=0,a=7;a>=5;a--){for(var o=0;o<=24;o+=8)n<<=1,n|=t>>o+a&1;for(var o=0;o<=24;o+=8)n<<=1,n|=e>>o+a&1}for(var o=0;o<=24;o+=8)n<<=1,n|=t>>o+a&1;for(var a=1;a<=3;a++){for(var o=0;o<=24;o+=8)s<<=1,s|=t>>o+a&1;for(var o=0;o<=24;o+=8)s<<=1,s|=e>>o+a&1}for(var o=0;o<=24;o+=8)s<<=1,s|=e>>o+a&1;i[r+0]=n>>>0,i[r+1]=s>>>0},t.r28shl=function(e,t){return e<>>28-t};var i=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];t.pc2=function(e,t,r,n){for(var s=0,a=0,o=i.length>>>1,f=0;f>>i[f]&1;for(var f=o;f>>i[f]&1;r[n+0]=s>>>0,r[n+1]=a>>>0},t.expand=function(e,t,i){var r=0,n=0;r=(1&e)<<5|e>>>27;for(var s=23;s>=15;s-=4)r<<=6,r|=e>>>s&63;for(var s=11;s>=3;s-=4)n|=e>>>s&63,n<<=6;n|=(31&e)<<1|e>>>31,t[i+0]=r>>>0,t[i+1]=n>>>0};var r=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];t.substitute=function(e,t){for(var i=0,n=0;n<4;n++){var s=e>>>18-6*n&63,a=r[64*n+s];i<<=4,i|=a}for(var n=0;n<4;n++){var s=t>>>18-6*n&63,a=r[256+64*n+s];i<<=4,i|=a}return i>>>0};var n=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];t.permute=function(e){for(var t=0,i=0;i>>n[i]&1;return t>>>0},t.padSplit=function(e,t,i){for(var r=e.toString(2);r.length0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function n(e,t){this.curve=e,this.type=t,this.precomputed=null}var s=i(4),a=i(7),o=a.utils,f=o.getNAF,h=o.getJSF,c=o.assert;e.exports=r,r.prototype.point=function(){throw new Error("Not implemented")},r.prototype.validate=function(){throw new Error("Not implemented")},r.prototype._fixedNafMul=function(e,t){c(e.precomputed);var i=e._getDoubles(),r=f(t,1),n=(1<=a;t--)o=(o<<1)+r[t];s.push(o)}for(var h=this.jpoint(null,null,null),l=this.jpoint(null,null,null),u=n;u>0;u--){for(var a=0;a=0;o--){for(var t=0;o>=0&&0===s[o];o--)t++;if(o>=0&&t++,a=a.dblp(t),o<0)break;var h=s[o];c(0!==h),a="affine"===e.type?h>0?a.mixedAdd(n[h-1>>1]):a.mixedAdd(n[-h-1>>1].neg()):h>0?a.add(n[h-1>>1]):a.add(n[-h-1>>1].neg())}return"affine"===e.type?a.toP():a},r.prototype._wnafMulAdd=function(e,t,i,r,n){for(var s=this._wnafT1,a=this._wnafT2,o=this._wnafT3,c=0,l=0;l=1;l-=2){var p=l-1,b=l;if(1===s[p]&&1===s[b]){var m=[t[p],null,null,t[b]];0===t[p].y.cmp(t[b].y)?(m[1]=t[p].add(t[b]),m[2]=t[p].toJ().mixedAdd(t[b].neg())):0===t[p].y.cmp(t[b].y.redNeg())?(m[1]=t[p].toJ().mixedAdd(t[b]),m[2]=t[p].add(t[b].neg())):(m[1]=t[p].toJ().mixedAdd(t[b]),m[2]=t[p].toJ().mixedAdd(t[b].neg()));var w=[-3,-1,-5,-7,0,7,5,1,3],g=h(i[p],i[b]);c=Math.max(g[0].length,c),o[p]=new Array(c),o[b]=new Array(c);for(var v=0;v=0;l--){for(var A=0;l>=0;){for(var S=!0,v=0;v=0&&A++,k=k.dblp(A),l<0)break;for(var v=0;v0?u=a[v][M-1>>1]:M<0&&(u=a[v][-M-1>>1].neg()),k="affine"===u.type?k.mixedAdd(u):k.add(u))}}for(var l=0;l=Math.ceil((e.bitLength()+1)/t.step)},n.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var i=[this],r=this,n=0;n":""},n.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&0===this.y.cmp(this.z)},n.prototype._extDbl=function(){var e=this.x.redSqr(),t=this.y.redSqr(),i=this.z.redSqr();i=i.redIAdd(i);var r=this.curve._mulA(e),n=this.x.redAdd(this.y).redSqr().redISub(e).redISub(t),s=r.redAdd(t),a=s.redSub(i),o=r.redSub(t),f=n.redMul(a),h=s.redMul(o),c=n.redMul(o),l=a.redMul(s);return this.curve.point(f,h,l,c)},n.prototype._projDbl=function(){var e,t,i,r=this.x.redAdd(this.y).redSqr(),n=this.x.redSqr(),s=this.y.redSqr();if(this.curve.twisted){var a=this.curve._mulA(n),o=a.redAdd(s);if(this.zOne)e=r.redSub(n).redSub(s).redMul(o.redSub(this.curve.two)),t=o.redMul(a.redSub(s)),i=o.redSqr().redSub(o).redSub(o);else{var f=this.z.redSqr(),h=o.redSub(f).redISub(f);e=r.redSub(n).redISub(s).redMul(h),t=o.redMul(a.redSub(s)),i=o.redMul(h)}}else{var a=n.redAdd(s),f=this.curve._mulC(this.c.redMul(this.z)).redSqr(),h=a.redSub(f).redSub(f);e=this.curve._mulC(r.redISub(a)).redMul(h),t=this.curve._mulC(a).redMul(n.redISub(s)),i=a.redMul(h)}return this.curve.point(e,t,i)},n.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},n.prototype._extAdd=function(e){var t=this.y.redSub(this.x).redMul(e.y.redSub(e.x)),i=this.y.redAdd(this.x).redMul(e.y.redAdd(e.x)),r=this.t.redMul(this.curve.dd).redMul(e.t),n=this.z.redMul(e.z.redAdd(e.z)),s=i.redSub(t),a=n.redSub(r),o=n.redAdd(r),f=i.redAdd(t),h=s.redMul(a),c=o.redMul(f),l=s.redMul(f),u=a.redMul(o);return this.curve.point(h,c,u,l)},n.prototype._projAdd=function(e){var t,i,r=this.z.redMul(e.z),n=r.redSqr(),s=this.x.redMul(e.x),a=this.y.redMul(e.y),o=this.curve.d.redMul(s).redMul(a),f=n.redSub(o),h=n.redAdd(o),c=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(s).redISub(a),l=r.redMul(f).redMul(c);return this.curve.twisted?(t=r.redMul(h).redMul(a.redSub(this.curve._mulA(s))),i=f.redMul(h)):(t=r.redMul(h).redMul(a.redSub(s)),i=this.curve._mulC(f).redMul(h)),this.curve.point(l,t,i)},n.prototype.add=function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)},n.prototype.mul=function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)},n.prototype.mulAdd=function(e,t,i){return this.curve._wnafMulAdd(1,[this,t],[e,i],2,!1)},n.prototype.jmulAdd=function(e,t,i){return this.curve._wnafMulAdd(1,[this,t],[e,i],2,!0)},n.prototype.normalize=function(){if(this.zOne)return this;var e=this.z.redInvm();return this.x=this.x.redMul(e),this.y=this.y.redMul(e),this.t&&(this.t=this.t.redMul(e)),this.z=this.curve.one,this.zOne=!0,this},n.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},n.prototype.getX=function(){return this.normalize(),this.x.fromRed()},n.prototype.getY=function(){return this.normalize(),this.y.fromRed()},n.prototype.eq=function(e){return this===e||0===this.getX().cmp(e.getX())&&0===this.getY().cmp(e.getY())},n.prototype.eqXToP=function(e){var t=e.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(t))return!0;for(var i=e.clone(),r=this.curve.redN.redMul(this.z);;){if(i.iadd(this.curve.n),i.cmp(this.curve.p)>=0)return!1;if(t.redIAdd(r),0===this.x.cmp(t))return!0}return!1},n.prototype.toP=n.prototype.normalize,n.prototype.mixedAdd=n.prototype.add},function(e,t,i){"use strict";function r(e){f.call(this,"mont",e),this.a=new a(e.a,16).toRed(this.red),this.b=new a(e.b,16).toRed(this.red),this.i4=new a(4).toRed(this.red).redInvm(),this.two=new a(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function n(e,t,i){f.BasePoint.call(this,e,"projective"),null===t&&null===i?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new a(t,16),this.z=new a(i,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}var s=i(36),a=i(4),o=i(1),f=s.base,h=i(7),c=h.utils;o(r,f),e.exports=r,r.prototype.validate=function(e){var t=e.normalize().x,i=t.redSqr(),r=i.redMul(t).redAdd(i.redMul(this.a)).redAdd(t),n=r.redSqrt();return 0===n.redSqr().cmp(r)},o(n,f.BasePoint),r.prototype.decodePoint=function(e,t){return this.point(c.toArray(e,t),1)},r.prototype.point=function(e,t){return new n(this,e,t)},r.prototype.pointFromJSON=function(e){return n.fromJSON(this,e)},n.prototype.precompute=function(){},n.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},n.fromJSON=function(e,t){return new n(e,t[0],t[1]||e.one)},n.prototype.inspect=function(){return this.isInfinity()?"":""},n.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},n.prototype.dbl=function(){var e=this.x.redAdd(this.z),t=e.redSqr(),i=this.x.redSub(this.z),r=i.redSqr(),n=t.redSub(r),s=t.redMul(r),a=n.redMul(r.redAdd(this.curve.a24.redMul(n)));return this.curve.point(s,a)},n.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},n.prototype.diffAdd=function(e,t){var i=this.x.redAdd(this.z),r=this.x.redSub(this.z),n=e.x.redAdd(e.z),s=e.x.redSub(e.z),a=s.redMul(i),o=n.redMul(r),f=t.z.redMul(a.redAdd(o).redSqr()),h=t.x.redMul(a.redISub(o).redSqr());return this.curve.point(f,h)},n.prototype.mul=function(e){for(var t=e.clone(),i=this,r=this.curve.point(null,null),n=this,s=[];0!==t.cmpn(0);t.iushrn(1))s.push(t.andln(1));for(var a=s.length-1;a>=0;a--)0===s[a]?(i=i.diffAdd(r,n),r=r.dbl()):(r=i.diffAdd(r,n),i=i.dbl());return r},n.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},n.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},n.prototype.eq=function(e){return 0===this.getX().cmp(e.getX())},n.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},n.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},function(e,t,i){"use strict";function r(e){c.call(this,"short",e),this.a=new f(e.a,16).toRed(this.red),this.b=new f(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function n(e,t,i,r){c.BasePoint.call(this,e,"affine"),null===t&&null===i?(this.x=null,this.y=null,this.inf=!0):(this.x=new f(t,16),this.y=new f(i,16),r&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function s(e,t,i,r){c.BasePoint.call(this,e,"jacobian"),null===t&&null===i&&null===r?(this.x=this.curve.one,this.y=this.curve.one,this.z=new f(0)):(this.x=new f(t,16),this.y=new f(i,16),this.z=new f(r,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}var a=i(36),o=i(7),f=i(4),h=i(1),c=a.base,l=o.utils.assert;h(r,c),e.exports=r,r.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,i;if(e.beta)t=new f(e.beta,16).toRed(this.red);else{var r=this._getEndoRoots(this.p);t=r[0].cmp(r[1])<0?r[0]:r[1],t=t.toRed(this.red)}if(e.lambda)i=new f(e.lambda,16);else{var n=this._getEndoRoots(this.n);0===this.g.mul(n[0]).x.cmp(this.g.x.redMul(t))?i=n[0]:(i=n[1],l(0===this.g.mul(i).x.cmp(this.g.x.redMul(t))))}var s;return s=e.basis?e.basis.map(function(e){return{a:new f(e.a,16),b:new f(e.b,16)}}):this._getEndoBasis(i),{beta:t,lambda:i,basis:s}}},r.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:f.mont(e),i=new f(2).toRed(t).redInvm(),r=i.redNeg(),n=new f(3).toRed(t).redNeg().redSqrt().redMul(i),s=r.redAdd(n).fromRed(),a=r.redSub(n).fromRed();return[s,a]},r.prototype._getEndoBasis=function(e){for(var t,i,r,n,s,a,o,h,c,l=this.n.ushrn(Math.floor(this.n.bitLength()/2)),u=e,d=this.n.clone(),p=new f(1),b=new f(0),m=new f(0),w=new f(1),g=0;0!==u.cmpn(0);){var v=d.div(u);h=d.sub(v.mul(u)),c=m.sub(v.mul(p));var _=w.sub(v.mul(b));if(!r&&h.cmp(l)<0)t=o.neg(),i=p,r=h.neg(),n=c;else if(r&&2===++g)break;o=h,d=u,u=h,m=p,p=c,w=b,b=_}s=h.neg(),a=c;var y=r.sqr().add(n.sqr()),k=s.sqr().add(a.sqr());return k.cmp(y)>=0&&(s=t,a=i),r.negative&&(r=r.neg(),n=n.neg()),s.negative&&(s=s.neg(),a=a.neg()),[{a:r,b:n},{a:s,b:a}]},r.prototype._endoSplit=function(e){var t=this.endo.basis,i=t[0],r=t[1],n=r.b.mul(e).divRound(this.n),s=i.b.neg().mul(e).divRound(this.n),a=n.mul(i.a),o=s.mul(r.a),f=n.mul(i.b),h=s.mul(r.b),c=e.sub(a).sub(o),l=f.add(h).neg();return{k1:c,k2:l}},r.prototype.pointFromX=function(e,t){e=new f(e,16),e.red||(e=e.toRed(this.red));var i=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),r=i.redSqrt();if(0!==r.redSqr().redSub(i).cmp(this.zero))throw new Error("invalid point");var n=r.fromRed().isOdd();return(t&&!n||!t&&n)&&(r=r.redNeg()), -this.point(e,r)},r.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,i=e.y,r=this.a.redMul(t),n=t.redSqr().redMul(t).redIAdd(r).redIAdd(this.b);return 0===i.redSqr().redISub(n).cmpn(0)},r.prototype._endoWnafMulAdd=function(e,t,i){for(var r=this._endoWnafT1,n=this._endoWnafT2,s=0;s":""},n.prototype.isInfinity=function(){return this.inf},n.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var i=t.redSqr().redISub(this.x).redISub(e.x),r=t.redMul(this.x.redSub(i)).redISub(this.y);return this.curve.point(i,r)},n.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,i=this.x.redSqr(),r=e.redInvm(),n=i.redAdd(i).redIAdd(i).redIAdd(t).redMul(r),s=n.redSqr().redISub(this.x.redAdd(this.x)),a=n.redMul(this.x.redSub(s)).redISub(this.y);return this.curve.point(s,a)},n.prototype.getX=function(){return this.x.fromRed()},n.prototype.getY=function(){return this.y.fromRed()},n.prototype.mul=function(e){return e=new f(e,16),this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},n.prototype.mulAdd=function(e,t,i){var r=[this,t],n=[e,i];return this.curve.endo?this.curve._endoWnafMulAdd(r,n):this.curve._wnafMulAdd(1,r,n,2)},n.prototype.jmulAdd=function(e,t,i){var r=[this,t],n=[e,i];return this.curve.endo?this.curve._endoWnafMulAdd(r,n,!0):this.curve._wnafMulAdd(1,r,n,2,!0)},n.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},n.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var i=this.precomputed,r=function(e){return e.neg()};t.precomputed={naf:i.naf&&{wnd:i.naf.wnd,points:i.naf.points.map(r)},doubles:i.doubles&&{step:i.doubles.step,points:i.doubles.points.map(r)}}}return t},n.prototype.toJ=function(){if(this.inf)return this.curve.jpoint(null,null,null);var e=this.curve.jpoint(this.x,this.y,this.curve.one);return e},h(s,c.BasePoint),r.prototype.jpoint=function(e,t,i){return new s(this,e,t,i)},s.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),i=this.x.redMul(t),r=this.y.redMul(t).redMul(e);return this.curve.point(i,r)},s.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},s.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),i=this.z.redSqr(),r=this.x.redMul(t),n=e.x.redMul(i),s=this.y.redMul(t.redMul(e.z)),a=e.y.redMul(i.redMul(this.z)),o=r.redSub(n),f=s.redSub(a);if(0===o.cmpn(0))return 0!==f.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var h=o.redSqr(),c=h.redMul(o),l=r.redMul(h),u=f.redSqr().redIAdd(c).redISub(l).redISub(l),d=f.redMul(l.redISub(u)).redISub(s.redMul(c)),p=this.z.redMul(e.z).redMul(o);return this.curve.jpoint(u,d,p)},s.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),i=this.x,r=e.x.redMul(t),n=this.y,s=e.y.redMul(t).redMul(this.z),a=i.redSub(r),o=n.redSub(s);if(0===a.cmpn(0))return 0!==o.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var f=a.redSqr(),h=f.redMul(a),c=i.redMul(f),l=o.redSqr().redIAdd(h).redISub(c).redISub(c),u=o.redMul(c.redISub(l)).redISub(n.redMul(h)),d=this.z.redMul(a);return this.curve.jpoint(l,u,d)},s.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();if(this.curve.zeroA||this.curve.threeA){for(var t=this,i=0;i=0)return!1;if(i.redIAdd(n),0===this.x.cmp(i))return!0}return!1},s.prototype.inspect=function(){return this.isInfinity()?"":""},s.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},function(e,t,i){"use strict";function r(e){"short"===e.type?this.curve=new o.curve.short(e):"edwards"===e.type?this.curve=new o.curve.edwards(e):this.curve=new o.curve.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,f(this.g.validate(),"Invalid curve"),f(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function n(e,t){Object.defineProperty(s,e,{configurable:!0,enumerable:!0,get:function(){var i=new r(t);return Object.defineProperty(s,e,{configurable:!0,enumerable:!0,value:i}),i}})}var s=t,a=i(13),o=i(7),f=o.utils.assert;s.PresetCurve=r,n("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:a.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),n("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:a.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),n("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:a.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),n("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:a.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),n("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:a.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),n("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"0",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:a.sha256,gRed:!1,g:["9"]}),n("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:a.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});var h;try{h=i(189)}catch(e){h=void 0}n("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:a.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",h]})},function(e,t,i){"use strict";function r(e){return this instanceof r?("string"==typeof e&&(o(s.curves.hasOwnProperty(e),"Unknown curve "+e),e=s.curves[e]),e instanceof s.curves.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),void(this.hash=e.hash||e.curve.hash)):new r(e)}var n=i(4),s=i(7),a=s.utils,o=a.assert,f=i(183),h=i(184);e.exports=r,r.prototype.keyPair=function(e){return new f(this,e)},r.prototype.keyFromPrivate=function(e,t){return f.fromPrivate(this,e,t)},r.prototype.keyFromPublic=function(e,t){return f.fromPublic(this,e,t)},r.prototype.genKeyPair=function(e){e||(e={});for(var t=new s.hmacDRBG({hash:this.hash,pers:e.pers,entropy:e.entropy||s.rand(this.hash.hmacStrength),nonce:this.n.toArray()}),i=this.n.byteLength(),r=this.n.sub(new n(2));;){var a=new n(t.generate(i));if(!(a.cmp(r)>0))return a.iaddn(1),this.keyFromPrivate(a)}},r.prototype._truncateToN=function(e,t){var i=8*e.byteLength()-this.n.bitLength();return i>0&&(e=e.ushrn(i)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},r.prototype.sign=function(e,t,i,r){"object"==typeof i&&(r=i,i=null),r||(r={}),t=this.keyFromPrivate(t,i),e=this._truncateToN(new n(e,16));for(var a=this.n.byteLength(),o=t.getPrivate().toArray("be",a),f=e.toArray("be",a),c=new s.hmacDRBG({hash:this.hash,entropy:o,nonce:f,pers:r.pers,persEnc:r.persEnc}),l=this.n.sub(new n(1)),u=0;!0;u++){var d=r.k?r.k(u):new n(c.generate(this.n.byteLength()));if(d=this._truncateToN(d,!0),!(d.cmpn(1)<=0||d.cmp(l)>=0)){var p=this.g.mul(d);if(!p.isInfinity()){var b=p.getX(),m=b.umod(this.n);if(0!==m.cmpn(0)){var w=d.invm(this.n).mul(m.mul(t.getPrivate()).iadd(e));if(w=w.umod(this.n),0!==w.cmpn(0)){var g=(p.getY().isOdd()?1:0)|(0!==b.cmp(m)?2:0);return r.canonical&&w.cmp(this.nh)>0&&(w=this.n.sub(w),g^=1),new h({r:m,s:w,recoveryParam:g})}}}}}},r.prototype.verify=function(e,t,i,r){e=this._truncateToN(new n(e,16)),i=this.keyFromPublic(i,r),t=new h(t,"hex");var s=t.r,a=t.s;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return!1;if(a.cmpn(1)<0||a.cmp(this.n)>=0)return!1;var o=a.invm(this.n),f=o.mul(e).umod(this.n),c=o.mul(s).umod(this.n);if(!this.curve._maxwellTrick){var l=this.g.mulAdd(f,i.getPublic(),c);return!l.isInfinity()&&0===l.getX().umod(this.n).cmp(s)}var l=this.g.jmulAdd(f,i.getPublic(),c);return!l.isInfinity()&&l.eqXToP(s)},r.prototype.recoverPubKey=function(e,t,i,r){o((3&i)===i,"The recovery param is more than two bits"),t=new h(t,r);var s=this.n,a=new n(e),f=t.r,c=t.s,l=1&i,u=i>>1;if(f.cmp(this.curve.p.umod(this.curve.n))>=0&&u)throw new Error("Unable to find sencond key candinate");f=u?this.curve.pointFromX(f.add(this.curve.n),l):this.curve.pointFromX(f,l);var d=t.r.invm(s),p=s.sub(a).mul(d).umod(s),b=c.mul(d).umod(s);return this.g.mulAdd(p,f,b)},r.prototype.getKeyRecoveryParam=function(e,t,i,r){if(t=new h(t,r),null!==t.recoveryParam)return t.recoveryParam;for(var n=0;n<4;n++){var s;try{s=this.recoverPubKey(e,t,n)}catch(e){continue}if(s.eq(i))return n}throw new Error("Unable to find valid recovery factor")}},function(e,t,i){"use strict";function r(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}var n=i(4);e.exports=r,r.fromPublic=function(e,t,i){return t instanceof r?t:new r(e,{pub:t,pubEnc:i})},r.fromPrivate=function(e,t,i){return t instanceof r?t:new r(e,{priv:t,privEnc:i})},r.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},r.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},r.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},r.prototype._importPrivate=function(e,t){this.priv=new n(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},r.prototype._importPublic=function(e,t){return e.x||e.y?void(this.pub=this.ec.curve.point(e.x,e.y)):void(this.pub=this.ec.curve.decodePoint(e,t))},r.prototype.derive=function(e){return e.mul(this.priv).getX()},r.prototype.sign=function(e,t,i){return this.ec.sign(e,this,t,i)},r.prototype.verify=function(e,t){return this.ec.verify(e,t,this)},r.prototype.inspect=function(){return""}},function(e,t,i){"use strict";function r(e,t){return e instanceof r?e:void(this._importDER(e,t)||(l(e.r&&e.s,"Signature without r or s"),this.r=new f(e.r,16),this.s=new f(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam))}function n(){this.place=0}function s(e,t){var i=e[t.place++];if(!(128&i))return i;for(var r=15&i,n=0,s=0,a=t.place;s>>3);for(e.push(128|i);--i;)e.push(t>>>(i<<3)&255);e.push(t)}var f=i(4),h=i(7),c=h.utils,l=c.assert;e.exports=r,r.prototype._importDER=function(e,t){e=c.toArray(e,t);var i=new n;if(48!==e[i.place++])return!1;var r=s(e,i);if(r+i.place!==e.length)return!1;if(2!==e[i.place++])return!1;var a=s(e,i),o=e.slice(i.place,a+i.place);if(i.place+=a,2!==e[i.place++])return!1;var h=s(e,i);if(e.length!==h+i.place)return!1;var l=e.slice(i.place,h+i.place);return 0===o[0]&&128&o[1]&&(o=o.slice(1)),0===l[0]&&128&l[1]&&(l=l.slice(1)),this.r=new f(o),this.s=new f(l),this.recoveryParam=null,!0},r.prototype.toDER=function(e){var t=this.r.toArray(),i=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&i[0]&&(i=[0].concat(i)),t=a(t),i=a(i);!(i[0]||128&i[1]);)i=i.slice(1);var r=[2];o(r,t.length),r=r.concat(t),r.push(2),o(r,i.length);var n=r.concat(i),s=[48];return o(s,n.length),s=s.concat(n),c.encode(s,e)}},function(e,t,i){"use strict";function r(e){if(o("ed25519"===e,"only tested with ed25519 so far"),!(this instanceof r))return new r(e);var e=s.curves[e].curve;this.curve=e,this.g=e.g,this.g.precompute(e.n.bitLength()+1),this.pointClass=e.point().constructor,this.encodingLength=Math.ceil(e.n.bitLength()/8),this.hash=n.sha512}var n=i(13),s=i(7),a=s.utils,o=a.assert,f=a.parseBytes,h=i(186),c=i(187);e.exports=r,r.prototype.sign=function(e,t){e=f(e);var i=this.keyFromSecret(t),r=this.hashInt(i.messagePrefix(),e),n=this.g.mul(r),s=this.encodePoint(n),a=this.hashInt(s,i.pubBytes(),e).mul(i.priv()),o=r.add(a).umod(this.curve.n);return this.makeSignature({R:n,S:o,Rencoded:s})},r.prototype.verify=function(e,t,i){e=f(e),t=this.makeSignature(t);var r=this.keyFromPublic(i),n=this.hashInt(t.Rencoded(),r.pubBytes(),e),s=this.g.mul(t.S()),a=t.R().add(r.pub().mul(n));return a.eq(s)},r.prototype.hashInt=function(){for(var e=this.hash(),t=0;t=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,i,n)}var n=i(13),s=i(7),a=s.utils,o=a.assert;e.exports=r,r.prototype._init=function(e,t,i){var r=e.concat(t).concat(i);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var n=0;n=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(i||[])),this.reseed=1},r.prototype.generate=function(e,t,i,r){if(this.reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(r=i,i=t,t=null),i&&(i=a.toArray(i,r),this._update(i));for(var n=[];n.length>8,a=255&n;s?i.push(s,a):i.push(a)}return i}function n(e){return 1===e.length?"0"+e:e}function s(e){for(var t="",i=0;i=0;){var s;if(n.isOdd()){var a=n.andln(r-1);s=a>(r>>1)-1?(r>>1)-a:a,n.isubn(s)}else s=0;i.push(s);for(var o=0!==n.cmpn(0)&&0===n.andln(r-1)?t+1:1,f=1;f0||t.cmpn(-n)>0;){var s=e.andln(3)+r&3,a=t.andln(3)+n&3;3===s&&(s=-1),3===a&&(a=-1);var o;if(0===(1&s))o=0;else{var f=e.andln(7)+r&7;o=3!==f&&5!==f||2!==a?s:-s}i[0].push(o);var h;if(0===(1&a))h=0;else{var f=t.andln(7)+n&7;h=3!==f&&5!==f||2!==s?a:-a}i[1].push(h),2*r===o+1&&(r=1-r),2*n===h+1&&(n=1-n),e.iushrn(1),t.iushrn(1)}return i}function f(e,t,i){var r="_"+t;e.prototype[t]=function(){return void 0!==this[r]?this[r]:this[r]=i.call(this)}}function h(e){return"string"==typeof e?l.toArray(e,"hex"):e}function c(e){return new u(e,"hex","le")}var l=t,u=i(4);l.assert=function(e,t){if(!e)throw new Error(t||"Assertion failed")},l.toArray=r,l.zero2=n,l.toHex=s,l.encode=function(e,t){return"hex"===t?s(e):e},l.getNAF=a,l.getJSF=o,l.cachedProperty=f,l.parseBytes=h,l.intFromLE=c},function(e,t,i){function r(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}var n=i(13),s=n.utils,a=s.assert;t.BlockHash=r,r.prototype.update=function(e,t){if(e=s.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){e=this.pending;var i=e.length%this._delta8;this.pending=e.slice(e.length-i,e.length),0===this.pending.length&&(this.pending=null),e=s.join32(e,0,e.length-i,this.endian);for(var r=0;r>>24&255,r[n++]=e>>>16&255,r[n++]=e>>>8&255,r[n++]=255&e}else{r[n++]=255&e,r[n++]=e>>>8&255,r[n++]=e>>>16&255,r[n++]=e>>>24&255,r[n++]=0,r[n++]=0,r[n++]=0,r[n++]=0;for(var s=8;sthis.blockSize&&(e=(new this.Hash).update(e).digest()),a(e.length<=this.blockSize);for(var t=e.length;t>>3}function p(e){return I(e,17)^I(e,19)^e>>>10}function b(e,t,i,r){return 0===e?f(t,i,r):1===e||3===e?c(t,i,r):2===e?h(t,i,r):void 0}function m(e,t,i,r,n,s){var a=e&i^~e&n;return a<0&&(a+=4294967296),a}function w(e,t,i,r,n,s){var a=t&r^~t&s;return a<0&&(a+=4294967296),a}function g(e,t,i,r,n,s){var a=e&i^e&n^i&n;return a<0&&(a+=4294967296),a}function v(e,t,i,r,n,s){var a=t&r^t&s^r&s;return a<0&&(a+=4294967296),a}function _(e,t){var i=L(e,t,28),r=L(t,e,2),n=L(t,e,7),s=i^r^n;return s<0&&(s+=4294967296),s}function y(e,t){var i=B(e,t,28),r=B(t,e,2),n=B(t,e,7),s=i^r^n;return s<0&&(s+=4294967296),s}function k(e,t){var i=L(e,t,14),r=L(e,t,18),n=L(t,e,9),s=i^r^n;return s<0&&(s+=4294967296),s}function E(e,t){var i=B(e,t,14),r=B(e,t,18),n=B(t,e,9),s=i^r^n;return s<0&&(s+=4294967296),s}function A(e,t){var i=L(e,t,1),r=L(e,t,8),n=U(e,t,7),s=i^r^n;return s<0&&(s+=4294967296),s}function S(e,t){var i=B(e,t,1),r=B(e,t,8),n=j(e,t,7),s=i^r^n;return s<0&&(s+=4294967296),s}function M(e,t){var i=L(e,t,19),r=L(t,e,29),n=U(e,t,6),s=i^r^n;return s<0&&(s+=4294967296),s}function T(e,t){var i=B(e,t,19),r=B(t,e,29),n=j(e,t,6),s=i^r^n;return s<0&&(s+=4294967296),s}var R=i(13),x=R.utils,C=x.assert,I=x.rotr32,P=x.rotl32,O=x.sum32,N=x.sum32_4,D=x.sum32_5,L=x.rotr64_hi,B=x.rotr64_lo,U=x.shr64_hi,j=x.shr64_lo,F=x.sum64,z=x.sum64_hi,q=x.sum64_lo,H=x.sum64_4_hi,G=x.sum64_4_lo,V=x.sum64_5_hi,W=x.sum64_5_lo,K=R.common.BlockHash,Z=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],Y=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],$=[1518500249,1859775393,2400959708,3395469782];x.inherits(r,K),t.sha256=r,r.blockSize=512,r.outSize=256,r.hmacStrength=192,r.padLength=64,r.prototype._update=function(e,t){for(var i=this.W,r=0;r<16;r++)i[r]=e[t+r];for(;r>8,a=255&n;s?i.push(s,a):i.push(a)}else for(var r=0;r>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24;return t>>>0}function a(e,t){for(var i="",r=0;r>>0}return s}function c(e,t){for(var i=new Array(4*e.length),r=0,n=0;r>>24,i[n+1]=s>>>16&255,i[n+2]=s>>>8&255,i[n+3]=255&s):(i[n+3]=s>>>24,i[n+2]=s>>>16&255,i[n+1]=s>>>8&255,i[n]=255&s)}return i}function l(e,t){return e>>>t|e<<32-t}function u(e,t){return e<>>32-t}function d(e,t){return e+t>>>0}function p(e,t,i){return e+t+i>>>0}function b(e,t,i,r){return e+t+i+r>>>0}function m(e,t,i,r,n){return e+t+i+r+n>>>0}function w(e,t){if(!e)throw new Error(t||"Assertion failed")}function g(e,t,i,r){var n=e[t],s=e[t+1],a=r+s>>>0,o=(a>>0,e[t+1]=a}function v(e,t,i,r){var n=t+r>>>0,s=(n>>0}function _(e,t,i,r){var n=t+r;return n>>>0}function y(e,t,i,r,n,s,a,o){var f=0,h=t;h=h+r>>>0,f+=h>>0,f+=h>>0,f+=h>>0}function k(e,t,i,r,n,s,a,o){var f=t+r+s+o;return f>>>0}function E(e,t,i,r,n,s,a,o,f,h){var c=0,l=t;l=l+r>>>0,c+=l>>0,c+=l>>0,c+=l>>0,c+=l>>0}function A(e,t,i,r,n,s,a,o,f,h){var c=t+r+s+o+h;return c>>>0}function S(e,t,i){var r=t<<32-i|e>>>i;return r>>>0}function M(e,t,i){var r=e<<32-i|t>>>i;return r>>>0}function T(e,t,i){return e>>>i}function R(e,t,i){var r=e<<32-i|t>>>i;return r>>>0}var x=t,C=i(1);x.toArray=r,x.toHex=n,x.htonl=s,x.toHex32=a,x.zero2=o,x.zero8=f,x.join32=h,x.split32=c,x.rotr32=l,x.rotl32=u,x.sum32=d,x.sum32_3=p,x.sum32_4=b,x.sum32_5=m,x.assert=w,x.inherits=C,t.sum64=g,t.sum64_hi=v,t.sum64_lo=_,t.sum64_4_hi=y,t.sum64_4_lo=k,t.sum64_5_hi=E,t.sum64_5_lo=A,t.rotr64_hi=S,t.rotr64_lo=M,t.shr64_hi=T,t.shr64_lo=R},function(e,t,i){var r=i(9),n=i(197),s=i(138),a=i(1),o=e.exports=function(e,t){var i=this;i.writable=!0,i.xhr=e,i.body=[],i.uri=(t.protocol||"http:")+"//"+t.host+(t.port?":"+t.port:"")+(t.path||"/"),"undefined"==typeof t.withCredentials&&(t.withCredentials=!0);try{e.withCredentials=t.withCredentials}catch(e){}if(t.responseType)try{e.responseType=t.responseType}catch(e){}if(e.open(t.method||"GET",i.uri,!0),e.onerror=function(e){i.emit("error",new Error("Network error"))},i._headers={},t.headers)for(var r=f(t.headers),a=0;athis.offset&&(this.emit("data",t.slice(this.offset)),this.offset=t.length))};var f=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},function(e,t){t.read=function(e,t,i,r,n){var s,a,o=8*n-r-1,f=(1<>1,c=-7,l=i?n-1:0,u=i?-1:1,d=e[t+l];for(l+=u,s=d&(1<<-c)-1,d>>=-c,c+=o;c>0;s=256*s+e[t+l],l+=u,c-=8);for(a=s&(1<<-c)-1,s>>=-c,c+=r;c>0;a=256*a+e[t+l],l+=u,c-=8);if(0===s)s=1-h;else{if(s===f)return a?NaN:(d?-1:1)*(1/0);a+=Math.pow(2,r),s-=h}return(d?-1:1)*a*Math.pow(2,s-r)},t.write=function(e,t,i,r,n,s){var a,o,f,h=8*s-n-1,c=(1<>1,u=23===n?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:s-1,p=r?1:-1,b=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(o=isNaN(t)?1:0,a=c):(a=Math.floor(Math.log(t)/Math.LN2),t*(f=Math.pow(2,-a))<1&&(a--,f*=2),t+=a+l>=1?u/f:u*Math.pow(2,1-l),t*f>=2&&(a++,f/=2),a+l>=c?(o=0,a=c):a+l>=1?(o=(t*f-1)*Math.pow(2,n),a+=l):(o=t*Math.pow(2,l-1)*Math.pow(2,n),a=0));n>=8;e[i+d]=255&o,d+=p,o/=256,n-=8);for(a=a<0;e[i+d]=255&a,d+=p,a/=256,h-=8);e[i+d-p]|=128*b}},function(e,t){var i=[].indexOf;e.exports=function(e,t){if(i)return e.indexOf(t);for(var r=0;r=6.0.0 <7.0.0",type:"range"},"/home/travis/build/hydrabolt/discord.js/node_modules/browserify-sign"]],_from:"elliptic@>=6.0.0 <7.0.0",_id:"elliptic@6.3.2",_inCache:!0,_location:"/elliptic",_nodeVersion:"6.3.0",_npmOperationalInternal:{host:"packages-16-east.internal.npmjs.com",tmp:"tmp/elliptic-6.3.2.tgz_1473938837205_0.3108903462998569"},_npmUser:{name:"indutny",email:"fedor@indutny.com"},_npmVersion:"3.10.3",_phantomChildren:{},_requested:{raw:"elliptic@^6.0.0",scope:null,escapedName:"elliptic",name:"elliptic",rawSpec:"^6.0.0",spec:">=6.0.0 <7.0.0",type:"range"},_requiredBy:["/browserify-sign","/create-ecdh"],_resolved:"https://registry.npmjs.org/elliptic/-/elliptic-6.3.2.tgz",_shasum:"e4c81e0829cf0a65ab70e998b8232723b5c1bc48",_shrinkwrap:null,_spec:"elliptic@^6.0.0",_where:"/home/travis/build/hydrabolt/discord.js/node_modules/browserify-sign",author:{name:"Fedor Indutny",email:"fedor@indutny.com"},bugs:{url:"https://github.com/indutny/elliptic/issues"},dependencies:{"bn.js":"^4.4.0",brorand:"^1.0.1","hash.js":"^1.0.0",inherits:"^2.0.1"},description:"EC cryptography",devDependencies:{brfs:"^1.4.3",coveralls:"^2.11.3",grunt:"^0.4.5","grunt-browserify":"^5.0.0","grunt-contrib-connect":"^1.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^1.0.1","grunt-mocha-istanbul":"^3.0.1","grunt-saucelabs":"^8.6.2",istanbul:"^0.4.2",jscs:"^2.9.0",jshint:"^2.6.0",mocha:"^2.1.0"},directories:{},dist:{shasum:"e4c81e0829cf0a65ab70e998b8232723b5c1bc48",tarball:"https://registry.npmjs.org/elliptic/-/elliptic-6.3.2.tgz"},files:["lib"],gitHead:"cbace4683a4a548dc0306ef36756151a20299cd5",homepage:"https://github.com/indutny/elliptic",keywords:["EC","Elliptic","curve","Cryptography"],license:"MIT",main:"lib/elliptic.js",maintainers:[{name:"indutny",email:"fedor@indutny.com"}],name:"elliptic",optionalDependencies:{},readme:"ERROR: No README data found!",repository:{type:"git",url:"git+ssh://git@github.com/indutny/elliptic.git"},scripts:{jscs:"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",jshint:"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",lint:"npm run jscs && npm run jshint",test:"npm run lint && npm run unit",unit:"istanbul test _mocha --reporter=spec test/index.js",version:"grunt dist && git add dist/"},version:"6.3.2"}},function(e,t){e.exports={"2.16.840.1.101.3.4.1.1":"aes-128-ecb","2.16.840.1.101.3.4.1.2":"aes-128-cbc","2.16.840.1.101.3.4.1.3":"aes-128-ofb","2.16.840.1.101.3.4.1.4":"aes-128-cfb","2.16.840.1.101.3.4.1.21":"aes-192-ecb","2.16.840.1.101.3.4.1.22":"aes-192-cbc","2.16.840.1.101.3.4.1.23":"aes-192-ofb","2.16.840.1.101.3.4.1.24":"aes-192-cfb","2.16.840.1.101.3.4.1.41":"aes-256-ecb","2.16.840.1.101.3.4.1.42":"aes-256-cbc","2.16.840.1.101.3.4.1.43":"aes-256-ofb","2.16.840.1.101.3.4.1.44":"aes-256-cfb"}},function(module,exports,__webpack_require__){(function(process,__dirname){function globalEval(e){eval.call(null,e)}function assert(e,t){e||abort("Assertion failed: "+t)}function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(e){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}function setValue(e,t,i,r){switch(i=i||"i8","*"===i.charAt(i.length-1)&&(i="i32"),i){case"i1":HEAP8[e>>0]=t;break;case"i8":HEAP8[e>>0]=t;break;case"i16":HEAP16[e>>1]=t;break;case"i32":HEAP32[e>>2]=t;break;case"i64":tempI64=[t>>>0,(tempDouble=t,+Math_abs(tempDouble)>=1?tempDouble>0?(0|Math_min(+Math_floor(tempDouble/4294967296),4294967295))>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[e>>2]=tempI64[0],HEAP32[e+4>>2]=tempI64[1];break;case"float":HEAPF32[e>>2]=t;break;case"double":HEAPF64[e>>3]=t;break;default:abort("invalid type for setValue: "+i)}}function getValue(e,t,i){switch(t=t||"i8","*"===t.charAt(t.length-1)&&(t="i32"),t){case"i1":return HEAP8[e>>0];case"i8":return HEAP8[e>>0];case"i16":return HEAP16[e>>1];case"i32":return HEAP32[e>>2];case"i64":return HEAP32[e>>2];case"float":return HEAPF32[e>>2];case"double":return HEAPF64[e>>3];default:abort("invalid type for setValue: "+t)}return null}function allocate(e,t,i,r){var n,s;"number"==typeof e?(n=!0,s=e):(n=!1,s=e.length);var a,o="string"==typeof t?t:null;if(a=i==ALLOC_NONE?r:["function"==typeof _malloc?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][void 0===i?ALLOC_STATIC:i](Math.max(s,o?1:t.length)),n){var f,r=a;for(assert(0==(3&a)),f=a+(s&-4);r>2]=0;for(f=a+s;r>0]=0;return a}if("i8"===o)return e.subarray||e.slice?HEAPU8.set(e,a):HEAPU8.set(new Uint8Array(e),a),a;for(var h,c,l,u=0;u>0],r|=i,0==i&&!t)break;if(n++,t&&n==t)break}t||(t=n);var s="";if(r<128){for(var a,o=1024;t>0;)a=String.fromCharCode.apply(String,HEAPU8.subarray(e,e+Math.min(t,o))),s=s?s+a:a,e+=o,t-=o;return s}return Module.UTF8ToString(e)}function UTF8ArrayToString(e,t){for(var i,r,n,s,a,o,f="";;){if(i=e[t++],!i)return f;if(128&i)if(r=63&e[t++],192!=(224&i))if(n=63&e[t++],224==(240&i)?i=(15&i)<<12|r<<6|n:(s=63&e[t++],240==(248&i)?i=(7&i)<<18|r<<12|n<<6|s:(a=63&e[t++],248==(252&i)?i=(3&i)<<24|r<<18|n<<12|s<<6|a:(o=63&e[t++],i=(1&i)<<30|r<<24|n<<18|s<<12|a<<6|o))),i<65536)f+=String.fromCharCode(i);else{var h=i-65536;f+=String.fromCharCode(55296|h>>10,56320|1023&h)}else f+=String.fromCharCode((31&i)<<6|r);else f+=String.fromCharCode(i)}}function stringToUTF8Array(e,t,i,r){if(!(r>0))return 0;for(var n=i,s=i+r-1,a=0;a=55296&&o<=57343&&(o=65536+((1023&o)<<10)|1023&e.charCodeAt(++a)),o<=127){if(i>=s)break;t[i++]=o}else if(o<=2047){if(i+1>=s)break;t[i++]=192|o>>6,t[i++]=128|63&o}else if(o<=65535){if(i+2>=s)break;t[i++]=224|o>>12,t[i++]=128|o>>6&63,t[i++]=128|63&o}else if(o<=2097151){if(i+3>=s)break;t[i++]=240|o>>18,t[i++]=128|o>>12&63,t[i++]=128|o>>6&63,t[i++]=128|63&o}else if(o<=67108863){if(i+4>=s)break;t[i++]=248|o>>24,t[i++]=128|o>>18&63,t[i++]=128|o>>12&63,t[i++]=128|o>>6&63,t[i++]=128|63&o}else{if(i+5>=s)break;t[i++]=252|o>>30,t[i++]=128|o>>24&63,t[i++]=128|o>>18&63,t[i++]=128|o>>12&63,t[i++]=128|o>>6&63,t[i++]=128|63&o}}return t[i]=0,i-n}function lengthBytesUTF8(e){for(var t=0,i=0;i=55296&&r<=57343&&(r=65536+((1023&r)<<10)|1023&e.charCodeAt(++i)),r<=127?++t:t+=r<=2047?2:r<=65535?3:r<=2097151?4:r<=67108863?5:6}return t}function demangle(e){var t=!!Module.___cxa_demangle;if(t)try{var i=_malloc(e.length);writeStringToMemory(e.substr(1),i);var r=_malloc(4),n=Module.___cxa_demangle(i,0,0,r);if(0===getValue(r,"i32")&&n)return Pointer_stringify(n)}catch(t){return e}finally{i&&_free(i),r&&_free(r),n&&_free(n)}return Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),e}function demangleAll(e){return e.replace(/__Z[\w\d_]+/g,function(e){var t=demangle(e);return e===t?e:e+" ["+t+"]"})}function jsStackTrace(){var e=new Error;if(!e.stack){try{throw new Error(0)}catch(t){e=t}if(!e.stack)return"(no stack trace available)"}return e.stack.toString()}function stackTrace(){return demangleAll(jsStackTrace())}function alignMemoryPage(e){return e%4096>0&&(e+=4096-e%4096),e}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)}function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}function callRuntimeCallbacks(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var i=t.func;"number"==typeof i?void 0===t.arg?Runtime.dynCall("v",i):Runtime.dynCall("vi",i,[t.arg]):i(void 0===t.arg?null:t.arg)}else t()}}function preRun(){if(Module.preRun)for("function"==typeof Module.preRun&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__),runtimeExited=!0}function postRun(){if(Module.postRun)for("function"==typeof Module.postRun&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(e){__ATPRERUN__.unshift(e)}function addOnPostRun(e){__ATPOSTRUN__.unshift(e)}function intArrayFromString(e,t,i){var r=i>0?i:lengthBytesUTF8(e)+1,n=new Array(r),s=stringToUTF8Array(e,n,0,n.length);return t&&(n.length=s),n}function writeStringToMemory(e,t,i){for(var r=intArrayFromString(e,i),n=0;n>0]=s,n+=1}}function writeArrayToMemory(e,t){for(var i=0;i>0]=e[i]}function writeAsciiToMemory(e,t,i){for(var r=0;r>0]=e.charCodeAt(r);i||(HEAP8[t>>0]=0)}function ___setErrNo(e){return Module.___errno_location&&(HEAP32[Module.___errno_location()>>2]=e),e}function _sysconf(e){switch(e){case 30:return PAGE_SIZE;case 85:return totalMemory/PAGE_SIZE;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 79:return 0;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return"object"==typeof navigator?navigator.hardwareConcurrency||1:1}return ___setErrNo(ERRNO_CODES.EINVAL),-1}function embind_init_charCodes(){for(var e=new Array(256),t=0;t<256;++t)e[t]=String.fromCharCode(t);embind_charCodes=e}function readLatin1String(e){for(var t="",i=e;HEAPU8[i];)t+=embind_charCodes[HEAPU8[i++]];return t}function makeLegalFunctionName(e){if(void 0===e)return"_unknown";e=e.replace(/[^a-zA-Z0-9_]/g,"$");var t=e.charCodeAt(0);return t>=char_0&&t<=char_9?"_"+e:e}function createNamedFunction(e,t){return e=makeLegalFunctionName(e),new Function("body","return function "+e+'() {\n "use strict"; return body.apply(this, arguments);\n};\n')(t)}function extendError(e,t){var i=createNamedFunction(t,function(e){this.name=t,this.message=e;var i=new Error(e).stack;void 0!==i&&(this.stack=this.toString()+"\n"+i.replace(/^Error(:[^\n]*)?\n/,""))});return i.prototype=Object.create(e.prototype),i.prototype.constructor=i,i.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message},i}function throwBindingError(e){throw new BindingError(e)}function throwInternalError(e){throw new InternalError(e)}function whenDependentTypesAreResolved(e,t,i){function r(t){var r=i(t);r.length!==e.length&&throwInternalError("Mismatched type converter count");for(var n=0;n>2]=e,e=___cxa_find_matching_catch.buffer;for(var n=0;n>2],t.adjusted=e,0|(asm.setTempRet0(r[n]),e);return e=HEAP32[e>>2],0|(asm.setTempRet0(i),e)}function ___cxa_throw(e,t,i){throw EXCEPTIONS.infos[e]={ptr:e,adjusted:e,type:t,destructor:i,refcount:0},EXCEPTIONS.last=e,"uncaught_exception"in __ZSt18uncaught_exceptionv?__ZSt18uncaught_exceptionv.uncaught_exception++:__ZSt18uncaught_exceptionv.uncaught_exception=1,e+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}function getShiftFromSize(e){switch(e){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+e)}}function __embind_register_bool(e,t,i,r,n){var s=getShiftFromSize(i);t=readLatin1String(t),registerType(e,{name:t,fromWireType:function(e){return!!e},toWireType:function(e,t){return t?r:n},argPackAdvance:8,readValueFromPointer:function(e){var r;if(1===i)r=HEAP8;else if(2===i)r=HEAP16;else{if(4!==i)throw new TypeError("Unknown boolean type size: "+t);r=HEAP32}return this.fromWireType(r[e>>s])},destructorFunction:null})}function _abort(){Module.abort()}function _free(){}function _malloc(e){var t=Runtime.dynamicAlloc(e+8);return t+8&4294967288}function simpleReadValueFromPointer(e){return this.fromWireType(HEAPU32[e>>2])}function __embind_register_std_string(e,t){t=readLatin1String(t),registerType(e,{name:t,fromWireType:function(e){for(var t=HEAPU32[e>>2],i=new Array(t),r=0;r>2]=s;for(var o=0;o255&&(_free(a),throwBindingError("String has UTF-16 code units that do not fit in 8 bits")),HEAPU8[a+4+o]=f}return null!==e&&e.push(_free,a),a},argPackAdvance:8,readValueFromPointer:simpleReadValueFromPointer,destructorFunction:function(e){_free(e)}})}function __embind_register_std_wstring(e,t,i){i=readLatin1String(i);var r,n;2===t?(r=function(){return HEAPU16},n=1):4===t&&(r=function(){return HEAPU32},n=2),registerType(e,{name:i,fromWireType:function(e){for(var t=r(),i=HEAPU32[e>>2],s=new Array(i),a=e+4>>n,o=0;o>2]=a;for(var f=o+4>>n,h=0;h>1]}:function(e){return HEAPU16[e>>1]};case 2:return i?function(e){return HEAP32[e>>2]}:function(e){return HEAPU32[e>>2]};default:throw new TypeError("Unknown integer type: "+e)}}function __embind_register_integer(e,t,i,r,n){t=readLatin1String(t),n===-1&&(n=4294967295);var s=getShiftFromSize(i),a=function(e){return e};if(0===r){var o=32-8*i;a=function(e){return e<>>o}}registerType(e,{name:t,fromWireType:a,toWireType:function(e,i){if("number"!=typeof i&&"boolean"!=typeof i)throw new TypeError('Cannot convert "'+_embind_repr(i)+'" to '+this.name);if(in)throw new TypeError('Passing a number "'+_embind_repr(i)+'" from JS side to C/C++ side to an argument of type "'+t+'", which is outside the valid range ['+r+", "+n+"]!");return 0|i},argPackAdvance:8,readValueFromPointer:integerReadValueFromPointer(t,s,0!==r),destructorFunction:null})}function __emval_decref(e){e>4&&0===--emval_handle_array[e].refcount&&(emval_handle_array[e]=void 0,emval_free_list.push(e))}function count_emval_handles(){for(var e=0,t=5;t>=2;var t=HEAPU32,i=t[e],r=t[e+1];return new s(t.buffer,r,i)}var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],s=n[t];i=readLatin1String(i),registerType(e,{name:i,fromWireType:r,argPackAdvance:8,readValueFromPointer:r},{ignoreDuplicateRegistrations:!0})}function floatReadValueFromPointer(e,t){switch(t){case 2:return function(e){return this.fromWireType(HEAPF32[e>>2])};case 3:return function(e){return this.fromWireType(HEAPF64[e>>3])};default:throw new TypeError("Unknown float type: "+e)}}function __embind_register_float(e,t,i){var r=getShiftFromSize(i);t=readLatin1String(t),registerType(e,{name:t,fromWireType:function(e){return e},toWireType:function(e,t){if("number"!=typeof t&&"boolean"!=typeof t)throw new TypeError('Cannot convert "'+_embind_repr(t)+'" to '+this.name);return t},argPackAdvance:8,readValueFromPointer:floatReadValueFromPointer(t,r),destructorFunction:null})}function _emscripten_memcpy_big(e,t,i){return HEAPU8.set(HEAPU8.subarray(t,t+i),e),e}function _llvm_stackrestore(e){var t=_llvm_stacksave,i=t.LLVM_SAVEDSTACKS[e];t.LLVM_SAVEDSTACKS.splice(e,1),Runtime.stackRestore(i)}function _sbrk(e){var t=_sbrk;t.called||(DYNAMICTOP=alignMemoryPage(DYNAMICTOP),t.called=!0,assert(Runtime.dynamicAlloc),t.alloc=Runtime.dynamicAlloc,Runtime.dynamicAlloc=function(){abort("cannot dynamically allocate, sbrk now has control")});var i=DYNAMICTOP;if(0!=e){var r=t.alloc(e);if(!r)return-1>>>0}return i}function _llvm_stacksave(){var e=_llvm_stacksave;return e.LLVM_SAVEDSTACKS||(e.LLVM_SAVEDSTACKS=[]),e.LLVM_SAVEDSTACKS.push(Runtime.stackSave()),e.LLVM_SAVEDSTACKS.length-1}function ___gxx_personality_v0(){}function heap32VectorToArray(e,t){for(var i=[],r=0;r>2)+r]);return i}function runDestructors(e){for(;e.length;){var t=e.pop(),i=e.pop();i(t)}}function __embind_register_class_constructor(e,t,i,r,n,s){var a=heap32VectorToArray(t,i);n=requireFunction(r,n),whenDependentTypesAreResolved([],[e],function(e){e=e[0];var i="constructor "+e.name;if(void 0===e.registeredClass.constructor_body&&(e.registeredClass.constructor_body=[]),void 0!==e.registeredClass.constructor_body[t-1])throw new BindingError("Cannot register multiple constructors with identical number of parameters ("+(t-1)+") for class '"+e.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return e.registeredClass.constructor_body[t-1]=function(){throwUnboundTypeError("Cannot construct "+e.name+" due to unbound types",a)},whenDependentTypesAreResolved([],a,function(r){return e.registeredClass.constructor_body[t-1]=function(){arguments.length!==t-1&&throwBindingError(i+" called with "+arguments.length+" arguments, expected "+(t-1));var e=[],a=new Array(t);a[0]=s;for(var o=1;o>2]=t),t}function _pthread_self(){return 0}function new_(e,t){if(!(e instanceof Function))throw new TypeError("new_ called with constructor type "+typeof e+" which is not a function");var i=createNamedFunction(e.name||"unknownFunctionName",function(){});i.prototype=e.prototype;var r=new i,n=e.apply(r,t);return n instanceof Object?n:r}function craftInvokerFunction(e,t,i,r,n){var s=t.length;s<2&&throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var a=null!==t[1]&&null!==i,o="",f="",h=0;h0?", ":"")+f);var b="void"!==t[0].name;if(c+=(b?"var rv = ":"")+"invoker(fn"+(f.length>0?", ":"")+f+");\n",l)c+="runDestructors(destructors);\n";else for(var h=a?1:2;h0||(preRun(),runDependencies>0||Module.calledRun||(Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),t()},1)):t()))}function exit(e,t){if(!t||!Module.noExitRuntime)throw Module.noExitRuntime||(ABORT=!0,EXITSTATUS=e,STACKTOP=initialStackTop,exitRuntime(),Module.onExit&&Module.onExit(e)),ENVIRONMENT_IS_NODE?process.exit(e):ENVIRONMENT_IS_SHELL&&"function"==typeof quit&&quit(e),new ExitStatus(e)}function abort(e){void 0!==e?(Module.print(e),Module.printErr(e),e=JSON.stringify(e)):e="",ABORT=!0,EXITSTATUS=1;var t="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.",i="abort("+e+") at "+stackTrace()+t;throw abortDecorators&&abortDecorators.forEach(function(t){i=t(i,e)}),i}var Module;Module||(Module=("undefined"!=typeof Module?Module:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;if(Module.ENVIRONMENT)if("WEB"===Module.ENVIRONMENT)ENVIRONMENT_IS_WEB=!0;else if("WORKER"===Module.ENVIRONMENT)ENVIRONMENT_IS_WORKER=!0;else if("NODE"===Module.ENVIRONMENT)ENVIRONMENT_IS_NODE=!0;else{if("SHELL"!==Module.ENVIRONMENT)throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.");ENVIRONMENT_IS_SHELL=!0}else ENVIRONMENT_IS_WEB="object"==typeof window,ENVIRONMENT_IS_WORKER="function"==typeof importScripts,ENVIRONMENT_IS_NODE="object"==typeof process&&!0&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){Module.print||(Module.print=console.log),Module.printErr||(Module.printErr=console.warn);var nodeFS,nodePath;Module.read=function(e,t){nodeFS||(nodeFS=__webpack_require__(10)),nodePath||(nodePath=__webpack_require__(14)),e=nodePath.normalize(e);var i=nodeFS.readFileSync(e);return i||e==nodePath.resolve(e)||(e=path.join(__dirname,"..","src",e),i=nodeFS.readFileSync(e)),i&&!t&&(i=i.toString()),i},Module.readBinary=function(e){var t=Module.read(e,!0);return t.buffer||(t=new Uint8Array(t)),assert(t.buffer),t},Module.load=function(e){globalEval(read(e))},Module.thisProgram||(process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\/g,"/"):Module.thisProgram="unknown-program"),Module.arguments=process.argv.slice(2),module.exports=Module,Module.inspect=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),"undefined"!=typeof printErr&&(Module.printErr=printErr),"undefined"!=typeof read?Module.read=read:Module.read=function(){throw"no read() available (jsc?)"},Module.readBinary=function(e){if("function"==typeof readbuffer)return new Uint8Array(readbuffer(e));var t=read(e,"binary");return assert("object"==typeof t),t},"undefined"!=typeof scriptArgs?Module.arguments=scriptArgs:"undefined"!=typeof arguments&&(Module.arguments=arguments);else{if(!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER)throw"Unknown runtime environment. Where are we?";if(Module.read=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},Module.readAsync=function(e,t,i){var r=new XMLHttpRequest;r.open("GET",e,!0),r.responseType="arraybuffer",r.onload=function(){200==r.status||0==r.status&&r.response?t(r.response):i()},r.onerror=i,r.send(null)},"undefined"!=typeof arguments&&(Module.arguments=arguments),"undefined"!=typeof console)Module.print||(Module.print=function(e){console.log(e)}),Module.printErr||(Module.printErr=function(e){console.warn(e)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&"undefined"!=typeof dump?function(e){dump(e)}:function(e){})}ENVIRONMENT_IS_WORKER&&(Module.load=importScripts),"undefined"==typeof Module.setWindowTitle&&(Module.setWindowTitle=function(e){document.title=e})}!Module.load&&Module.read&&(Module.load=function(e){globalEval(Module.read(e))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[];for(var key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=void 0;var Runtime={setTempRet0:function(e){tempRet0=e},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(e){STACKTOP=e},getNativeTypeSize:function(e){switch(e){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("*"===e[e.length-1])return Runtime.QUANTUM_SIZE;if("i"===e[0]){var t=parseInt(e.substr(1));return assert(t%8===0),t/8}return 0}},getNativeFieldSize:function(e){return Math.max(Runtime.getNativeTypeSize(e),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(e,t){return"double"===t||"i64"===t?7&e&&(assert(4===(7&e)),e+=4):assert(0===(3&e)),e},getAlignSize:function(e,t,i){return i||"i64"!=e&&"double"!=e?e?Math.min(t||(e?Runtime.getNativeFieldSize(e):0),Runtime.QUANTUM_SIZE):Math.min(t,8):8},dynCall:function(e,t,i){return i&&i.length?(i.splice||(i=Array.prototype.slice.call(i)),i.splice(0,0,t),Module["dynCall_"+e].apply(null,i)):Module["dynCall_"+e].call(null,t)},functionPointers:[],addFunction:function(e){for(var t=0;t=TOTAL_MEMORY){var i=enlargeMemory();if(!i)return DYNAMICTOP=t,0}return t},alignMemory:function(e,t){var i=e=Math.ceil(e/(t?t:16))*(t?t:16);return i},makeBigInt:function(e,t,i){var r=i?+(e>>>0)+4294967296*+(t>>>0):+(e>>>0)+4294967296*+(0|t);return r},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0},ABORT=!1,EXITSTATUS=0,ccall;!function(){function parseJSFunc(e){var t=e.toString().match(sourceRegex).slice(1);return{arguments:t[0],body:t[1],returnValue:t[2]}}function ensureJSsource(){if(!JSsource){JSsource={};for(var e in JSfuncs)JSfuncs.hasOwnProperty(e)&&(JSsource[e]=parseJSFunc(JSfuncs[e]))}}var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(e){var t=Runtime.stackAlloc(e.length);return writeArrayToMemory(e,t),t},stringToC:function(e){var t=0;return null!==e&&void 0!==e&&0!==e&&(t=Runtime.stackAlloc((e.length<<2)+1),writeStringToMemory(e,t)),t}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(e,t,i,r,n){var s=getCFunc(e),a=[],o=0;if(r)for(var f=0;f>>16,r=65535&e,n=t>>>16,s=65535&t;return r*s+(i*s+r*n<<16)|0}),Math.imul=Math.imul,Math.clz32||(Math.clz32=function(e){e>>>=0;for(var t=0;t<32;t++)if(e&1<<31-t)return t; +var u=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],d=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],p=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],b=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],m=[0,1518500249,1859775393,2400959708,2840853838],w=[1352829926,1548603684,1836072691,2053994217,0];e.exports=l}).call(t,i(0).Buffer)},function(e,t,i){var t=e.exports=function(e){e=e.toLowerCase();var i=t[e];if(!i)throw new Error(e+" is not supported (we accept pull requests)");return new i};t.sha=i(168),t.sha1=i(169),t.sha224=i(170),t.sha256=i(103),t.sha384=i(171),t.sha512=i(104)},function(e,t,i){(function(t){function r(){this.init(),this._w=c,f.call(this,64,56)}function n(e){return e<<5|e>>>27}function s(e){return e<<30|e>>>2}function a(e,t,i,r){return 0===e?t&i|~t&r:2===e?t&i|t&r|i&r:t^i^r}var o=i(2),f=i(23),h=[1518500249,1859775393,-1894007588,-899497514],c=new Array(80);o(r,f),r.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},r.prototype._update=function(e){for(var t=this._w,i=0|this._a,r=0|this._b,o=0|this._c,f=0|this._d,c=0|this._e,l=0;l<16;++l)t[l]=e.readInt32BE(4*l);for(;l<80;++l)t[l]=t[l-3]^t[l-8]^t[l-14]^t[l-16];for(var u=0;u<80;++u){var d=~~(u/20),p=n(i)+a(d,r,o,f)+c+t[u]+h[d]|0;c=f,f=o,o=s(r),r=i,i=p}this._a=i+this._a|0,this._b=r+this._b|0,this._c=o+this._c|0,this._d=f+this._d|0,this._e=c+this._e|0},r.prototype._hash=function(){var e=new t(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=r}).call(t,i(0).Buffer)},function(e,t,i){(function(t){function r(){this.init(),this._w=l,h.call(this,64,56)}function n(e){return e<<1|e>>>31}function s(e){return e<<5|e>>>27}function a(e){return e<<30|e>>>2}function o(e,t,i,r){return 0===e?t&i|~t&r:2===e?t&i|t&r|i&r:t^i^r}var f=i(2),h=i(23),c=[1518500249,1859775393,-1894007588,-899497514],l=new Array(80);f(r,h),r.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},r.prototype._update=function(e){for(var t=this._w,i=0|this._a,r=0|this._b,f=0|this._c,h=0|this._d,l=0|this._e,u=0;u<16;++u)t[u]=e.readInt32BE(4*u);for(;u<80;++u)t[u]=n(t[u-3]^t[u-8]^t[u-14]^t[u-16]);for(var d=0;d<80;++d){var p=~~(d/20),b=s(i)+o(p,r,f,h)+l+t[d]+c[p]|0;l=h,h=f,f=a(r),r=i,i=b}this._a=i+this._a|0,this._b=r+this._b|0,this._c=f+this._c|0,this._d=h+this._d|0,this._e=l+this._e|0},r.prototype._hash=function(){var e=new t(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=r}).call(t,i(0).Buffer)},function(e,t,i){(function(t){function r(){this.init(),this._w=o,a.call(this,64,56)}var n=i(2),s=i(103),a=i(23),o=new Array(64);n(r,s),r.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},r.prototype._hash=function(){var e=new t(28);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e},e.exports=r}).call(t,i(0).Buffer)},function(e,t,i){(function(t){function r(){this.init(),this._w=o,a.call(this,128,112)}var n=i(2),s=i(104),a=i(23),o=new Array(160);n(r,s),r.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},r.prototype._hash=function(){function e(e,t,r){i.writeInt32BE(e,r),i.writeInt32BE(t,r+4)}var i=new t(48);return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),i},e.exports=r}).call(t,i(0).Buffer)},function(e,t,i){"use strict";function r(e){s.equal(e.length,8,"Invalid IV length"),this.iv=new Array(8);for(var t=0;t0;r--)t+=this._buffer(e,t),i+=this._flushBuffer(n,i);return t+=this._buffer(e,t),n},r.prototype.final=function(e){var t;e&&(t=this.update(e));var i;return i="encrypt"===this.type?this._finalEncrypt():this._finalDecrypt(),t?t.concat(i):i},r.prototype._pad=function(e,t){if(0===t)return!1;for(;t>>1];i=f.r28shl(i,a),r=f.r28shl(r,a),f.pc2(i,r,e.keys,n)}},n.prototype._update=function(e,t,i,r){var n=this._desState,s=f.readUInt32BE(e,t),a=f.readUInt32BE(e,t+4);f.ip(s,a,n.tmp,0),s=n.tmp[0],a=n.tmp[1],"encrypt"===this.type?this._encrypt(n,s,a,n.tmp,0):this._decrypt(n,s,a,n.tmp,0),s=n.tmp[0],a=n.tmp[1],f.writeUInt32BE(i,s,r),f.writeUInt32BE(i,a,r+4)},n.prototype._pad=function(e,t){for(var i=e.length-t,r=t;r>>0,s=d}f.rip(a,s,r,n)},n.prototype._decrypt=function(e,t,i,r,n){for(var s=i,a=t,o=e.keys.length-2;o>=0;o-=2){var h=e.keys[o],c=e.keys[o+1];f.expand(s,e.tmp,0),h^=e.tmp[0],c^=e.tmp[1];var l=f.substitute(h,c),u=f.permute(l),d=s;s=(a^u)>>>0,a=d}f.rip(s,a,r,n)}},function(e,t,i){"use strict";function r(e,t){s.equal(t.length,24,"Invalid key length");var i=t.slice(0,8),r=t.slice(8,16),n=t.slice(16,24);"encrypt"===e?this.ciphers=[h.create({type:"encrypt",key:i}),h.create({type:"decrypt",key:r}),h.create({type:"encrypt",key:n})]:this.ciphers=[h.create({type:"decrypt",key:n}),h.create({type:"encrypt",key:r}),h.create({type:"decrypt",key:i})]}function n(e){f.call(this,e);var t=new r(this.type,this.options.key);this._edeState=t}var s=i(29),a=i(2),o=i(54),f=o.Cipher,h=o.DES;a(n,f),e.exports=n,n.create=function(e){return new n(e)},n.prototype._update=function(e,t,i,r){var n=this._edeState;n.ciphers[0]._update(e,t,i,r),n.ciphers[1]._update(i,r,i,r),n.ciphers[2]._update(i,r,i,r)},n.prototype._pad=h.prototype._pad,n.prototype._unpad=h.prototype._unpad},function(e,t){"use strict";t.readUInt32BE=function(e,t){var i=e[0+t]<<24|e[1+t]<<16|e[2+t]<<8|e[3+t];return i>>>0},t.writeUInt32BE=function(e,t,i){e[0+i]=t>>>24,e[1+i]=t>>>16&255,e[2+i]=t>>>8&255,e[3+i]=255&t},t.ip=function(e,t,i,r){for(var n=0,s=0,a=6;a>=0;a-=2){for(var o=0;o<=24;o+=8)n<<=1,n|=t>>>o+a&1;for(var o=0;o<=24;o+=8)n<<=1,n|=e>>>o+a&1}for(var a=6;a>=0;a-=2){for(var o=1;o<=25;o+=8)s<<=1,s|=t>>>o+a&1;for(var o=1;o<=25;o+=8)s<<=1,s|=e>>>o+a&1}i[r+0]=n>>>0,i[r+1]=s>>>0},t.rip=function(e,t,i,r){for(var n=0,s=0,a=0;a<4;a++)for(var o=24;o>=0;o-=8)n<<=1,n|=t>>>o+a&1,n<<=1,n|=e>>>o+a&1;for(var a=4;a<8;a++)for(var o=24;o>=0;o-=8)s<<=1,s|=t>>>o+a&1,s<<=1,s|=e>>>o+a&1;i[r+0]=n>>>0,i[r+1]=s>>>0},t.pc1=function(e,t,i,r){for(var n=0,s=0,a=7;a>=5;a--){for(var o=0;o<=24;o+=8)n<<=1,n|=t>>o+a&1;for(var o=0;o<=24;o+=8)n<<=1,n|=e>>o+a&1}for(var o=0;o<=24;o+=8)n<<=1,n|=t>>o+a&1;for(var a=1;a<=3;a++){for(var o=0;o<=24;o+=8)s<<=1,s|=t>>o+a&1;for(var o=0;o<=24;o+=8)s<<=1,s|=e>>o+a&1}for(var o=0;o<=24;o+=8)s<<=1,s|=e>>o+a&1;i[r+0]=n>>>0,i[r+1]=s>>>0},t.r28shl=function(e,t){return e<>>28-t};var i=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];t.pc2=function(e,t,r,n){for(var s=0,a=0,o=i.length>>>1,f=0;f>>i[f]&1;for(var f=o;f>>i[f]&1;r[n+0]=s>>>0,r[n+1]=a>>>0},t.expand=function(e,t,i){var r=0,n=0;r=(1&e)<<5|e>>>27;for(var s=23;s>=15;s-=4)r<<=6,r|=e>>>s&63;for(var s=11;s>=3;s-=4)n|=e>>>s&63,n<<=6;n|=(31&e)<<1|e>>>31,t[i+0]=r>>>0,t[i+1]=n>>>0};var r=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];t.substitute=function(e,t){for(var i=0,n=0;n<4;n++){var s=e>>>18-6*n&63,a=r[64*n+s];i<<=4,i|=a}for(var n=0;n<4;n++){var s=t>>>18-6*n&63,a=r[256+64*n+s];i<<=4,i|=a}return i>>>0};var n=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];t.permute=function(e){for(var t=0,i=0;i>>n[i]&1;return t>>>0},t.padSplit=function(e,t,i){for(var r=e.toString(2);r.length0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function n(e,t){this.curve=e,this.type=t,this.precomputed=null}var s=i(7),a=i(9),o=a.utils,f=o.getNAF,h=o.getJSF,c=o.assert;e.exports=r,r.prototype.point=function(){throw new Error("Not implemented")},r.prototype.validate=function(){throw new Error("Not implemented")},r.prototype._fixedNafMul=function(e,t){c(e.precomputed);var i=e._getDoubles(),r=f(t,1),n=(1<=a;t--)o=(o<<1)+r[t];s.push(o)}for(var h=this.jpoint(null,null,null),l=this.jpoint(null,null,null),u=n;u>0;u--){for(var a=0;a=0;o--){for(var t=0;o>=0&&0===s[o];o--)t++;if(o>=0&&t++,a=a.dblp(t),o<0)break;var h=s[o];c(0!==h),a="affine"===e.type?h>0?a.mixedAdd(n[h-1>>1]):a.mixedAdd(n[-h-1>>1].neg()):h>0?a.add(n[h-1>>1]):a.add(n[-h-1>>1].neg())}return"affine"===e.type?a.toP():a},r.prototype._wnafMulAdd=function(e,t,i,r,n){for(var s=this._wnafT1,a=this._wnafT2,o=this._wnafT3,c=0,l=0;l=1;l-=2){var p=l-1,b=l;if(1===s[p]&&1===s[b]){var m=[t[p],null,null,t[b]];0===t[p].y.cmp(t[b].y)?(m[1]=t[p].add(t[b]),m[2]=t[p].toJ().mixedAdd(t[b].neg())):0===t[p].y.cmp(t[b].y.redNeg())?(m[1]=t[p].toJ().mixedAdd(t[b]),m[2]=t[p].add(t[b].neg())):(m[1]=t[p].toJ().mixedAdd(t[b]),m[2]=t[p].toJ().mixedAdd(t[b].neg()));var w=[-3,-1,-5,-7,0,7,5,1,3],g=h(i[p],i[b]);c=Math.max(g[0].length,c),o[p]=new Array(c),o[b]=new Array(c);for(var v=0;v=0;l--){for(var A=0;l>=0;){for(var S=!0,v=0;v=0&&A++,k=k.dblp(A),l<0)break;for(var v=0;v0?u=a[v][M-1>>1]:M<0&&(u=a[v][-M-1>>1].neg()),k="affine"===u.type?k.mixedAdd(u):k.add(u))}}for(var l=0;l=Math.ceil((e.bitLength()+1)/t.step)},n.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var i=[this],r=this,n=0;n":""},n.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&0===this.y.cmp(this.z)},n.prototype._extDbl=function(){var e=this.x.redSqr(),t=this.y.redSqr(),i=this.z.redSqr();i=i.redIAdd(i);var r=this.curve._mulA(e),n=this.x.redAdd(this.y).redSqr().redISub(e).redISub(t),s=r.redAdd(t),a=s.redSub(i),o=r.redSub(t),f=n.redMul(a),h=s.redMul(o),c=n.redMul(o),l=a.redMul(s);return this.curve.point(f,h,l,c)},n.prototype._projDbl=function(){var e,t,i,r=this.x.redAdd(this.y).redSqr(),n=this.x.redSqr(),s=this.y.redSqr();if(this.curve.twisted){var a=this.curve._mulA(n),o=a.redAdd(s);if(this.zOne)e=r.redSub(n).redSub(s).redMul(o.redSub(this.curve.two)),t=o.redMul(a.redSub(s)),i=o.redSqr().redSub(o).redSub(o);else{var f=this.z.redSqr(),h=o.redSub(f).redISub(f);e=r.redSub(n).redISub(s).redMul(h),t=o.redMul(a.redSub(s)),i=o.redMul(h)}}else{var a=n.redAdd(s),f=this.curve._mulC(this.c.redMul(this.z)).redSqr(),h=a.redSub(f).redSub(f);e=this.curve._mulC(r.redISub(a)).redMul(h),t=this.curve._mulC(a).redMul(n.redISub(s)),i=a.redMul(h)}return this.curve.point(e,t,i)},n.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},n.prototype._extAdd=function(e){var t=this.y.redSub(this.x).redMul(e.y.redSub(e.x)),i=this.y.redAdd(this.x).redMul(e.y.redAdd(e.x)),r=this.t.redMul(this.curve.dd).redMul(e.t),n=this.z.redMul(e.z.redAdd(e.z)),s=i.redSub(t),a=n.redSub(r),o=n.redAdd(r),f=i.redAdd(t),h=s.redMul(a),c=o.redMul(f),l=s.redMul(f),u=a.redMul(o);return this.curve.point(h,c,u,l)},n.prototype._projAdd=function(e){var t,i,r=this.z.redMul(e.z),n=r.redSqr(),s=this.x.redMul(e.x),a=this.y.redMul(e.y),o=this.curve.d.redMul(s).redMul(a),f=n.redSub(o),h=n.redAdd(o),c=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(s).redISub(a),l=r.redMul(f).redMul(c);return this.curve.twisted?(t=r.redMul(h).redMul(a.redSub(this.curve._mulA(s))),i=f.redMul(h)):(t=r.redMul(h).redMul(a.redSub(s)),i=this.curve._mulC(f).redMul(h)),this.curve.point(l,t,i)},n.prototype.add=function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)},n.prototype.mul=function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)},n.prototype.mulAdd=function(e,t,i){return this.curve._wnafMulAdd(1,[this,t],[e,i],2,!1)},n.prototype.jmulAdd=function(e,t,i){return this.curve._wnafMulAdd(1,[this,t],[e,i],2,!0)},n.prototype.normalize=function(){if(this.zOne)return this;var e=this.z.redInvm();return this.x=this.x.redMul(e),this.y=this.y.redMul(e),this.t&&(this.t=this.t.redMul(e)),this.z=this.curve.one,this.zOne=!0,this},n.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},n.prototype.getX=function(){return this.normalize(),this.x.fromRed()},n.prototype.getY=function(){return this.normalize(),this.y.fromRed()},n.prototype.eq=function(e){return this===e||0===this.getX().cmp(e.getX())&&0===this.getY().cmp(e.getY())},n.prototype.eqXToP=function(e){var t=e.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(t))return!0;for(var i=e.clone(),r=this.curve.redN.redMul(this.z);;){if(i.iadd(this.curve.n),i.cmp(this.curve.p)>=0)return!1;if(t.redIAdd(r),0===this.x.cmp(t))return!0}return!1},n.prototype.toP=n.prototype.normalize,n.prototype.mixedAdd=n.prototype.add},function(e,t,i){"use strict";function r(e){f.call(this,"mont",e),this.a=new a(e.a,16).toRed(this.red),this.b=new a(e.b,16).toRed(this.red),this.i4=new a(4).toRed(this.red).redInvm(),this.two=new a(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function n(e,t,i){f.BasePoint.call(this,e,"projective"),null===t&&null===i?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new a(t,16),this.z=new a(i,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}var s=i(40),a=i(7),o=i(2),f=s.base,h=i(9),c=h.utils;o(r,f),e.exports=r,r.prototype.validate=function(e){var t=e.normalize().x,i=t.redSqr(),r=i.redMul(t).redAdd(i.redMul(this.a)).redAdd(t),n=r.redSqrt();return 0===n.redSqr().cmp(r)},o(n,f.BasePoint),r.prototype.decodePoint=function(e,t){return this.point(c.toArray(e,t),1)},r.prototype.point=function(e,t){return new n(this,e,t)},r.prototype.pointFromJSON=function(e){return n.fromJSON(this,e)},n.prototype.precompute=function(){},n.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},n.fromJSON=function(e,t){return new n(e,t[0],t[1]||e.one)},n.prototype.inspect=function(){return this.isInfinity()?"":""},n.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},n.prototype.dbl=function(){var e=this.x.redAdd(this.z),t=e.redSqr(),i=this.x.redSub(this.z),r=i.redSqr(),n=t.redSub(r),s=t.redMul(r),a=n.redMul(r.redAdd(this.curve.a24.redMul(n)));return this.curve.point(s,a)},n.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},n.prototype.diffAdd=function(e,t){var i=this.x.redAdd(this.z),r=this.x.redSub(this.z),n=e.x.redAdd(e.z),s=e.x.redSub(e.z),a=s.redMul(i),o=n.redMul(r),f=t.z.redMul(a.redAdd(o).redSqr()),h=t.x.redMul(a.redISub(o).redSqr());return this.curve.point(f,h)},n.prototype.mul=function(e){for(var t=e.clone(),i=this,r=this.curve.point(null,null),n=this,s=[];0!==t.cmpn(0);t.iushrn(1))s.push(t.andln(1));for(var a=s.length-1;a>=0;a--)0===s[a]?(i=i.diffAdd(r,n),r=r.dbl()):(r=i.diffAdd(r,n),i=i.dbl());return r},n.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},n.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},n.prototype.eq=function(e){return 0===this.getX().cmp(e.getX())},n.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},n.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},function(e,t,i){"use strict";function r(e){c.call(this,"short",e),this.a=new f(e.a,16).toRed(this.red),this.b=new f(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function n(e,t,i,r){c.BasePoint.call(this,e,"affine"),null===t&&null===i?(this.x=null,this.y=null,this.inf=!0):(this.x=new f(t,16),this.y=new f(i,16),r&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function s(e,t,i,r){c.BasePoint.call(this,e,"jacobian"),null===t&&null===i&&null===r?(this.x=this.curve.one,this.y=this.curve.one,this.z=new f(0)):(this.x=new f(t,16),this.y=new f(i,16),this.z=new f(r,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}var a=i(40),o=i(9),f=i(7),h=i(2),c=a.base,l=o.utils.assert;h(r,c),e.exports=r,r.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,i;if(e.beta)t=new f(e.beta,16).toRed(this.red);else{var r=this._getEndoRoots(this.p);t=r[0].cmp(r[1])<0?r[0]:r[1],t=t.toRed(this.red)}if(e.lambda)i=new f(e.lambda,16);else{var n=this._getEndoRoots(this.n);0===this.g.mul(n[0]).x.cmp(this.g.x.redMul(t))?i=n[0]:(i=n[1],l(0===this.g.mul(i).x.cmp(this.g.x.redMul(t))))}var s;return s=e.basis?e.basis.map(function(e){return{a:new f(e.a,16),b:new f(e.b,16)}}):this._getEndoBasis(i),{beta:t,lambda:i,basis:s}}},r.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:f.mont(e),i=new f(2).toRed(t).redInvm(),r=i.redNeg(),n=new f(3).toRed(t).redNeg().redSqrt().redMul(i),s=r.redAdd(n).fromRed(),a=r.redSub(n).fromRed();return[s,a]},r.prototype._getEndoBasis=function(e){for(var t,i,r,n,s,a,o,h,c,l=this.n.ushrn(Math.floor(this.n.bitLength()/2)),u=e,d=this.n.clone(),p=new f(1),b=new f(0),m=new f(0),w=new f(1),g=0;0!==u.cmpn(0);){var v=d.div(u);h=d.sub(v.mul(u)),c=m.sub(v.mul(p));var _=w.sub(v.mul(b));if(!r&&h.cmp(l)<0)t=o.neg(),i=p,r=h.neg(),n=c;else if(r&&2===++g)break;o=h,d=u,u=h,m=p,p=c,w=b,b=_}s=h.neg(),a=c;var y=r.sqr().add(n.sqr()),k=s.sqr().add(a.sqr());return k.cmp(y)>=0&&(s=t,a=i),r.negative&&(r=r.neg(),n=n.neg()),s.negative&&(s=s.neg(),a=a.neg()),[{a:r,b:n},{a:s,b:a}]},r.prototype._endoSplit=function(e){var t=this.endo.basis,i=t[0],r=t[1],n=r.b.mul(e).divRound(this.n),s=i.b.neg().mul(e).divRound(this.n),a=n.mul(i.a),o=s.mul(r.a),f=n.mul(i.b),h=s.mul(r.b),c=e.sub(a).sub(o),l=f.add(h).neg();return{k1:c,k2:l}},r.prototype.pointFromX=function(e,t){e=new f(e,16),e.red||(e=e.toRed(this.red));var i=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),r=i.redSqrt();if(0!==r.redSqr().redSub(i).cmp(this.zero))throw new Error("invalid point");var n=r.fromRed().isOdd(); +return(t&&!n||!t&&n)&&(r=r.redNeg()),this.point(e,r)},r.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,i=e.y,r=this.a.redMul(t),n=t.redSqr().redMul(t).redIAdd(r).redIAdd(this.b);return 0===i.redSqr().redISub(n).cmpn(0)},r.prototype._endoWnafMulAdd=function(e,t,i){for(var r=this._endoWnafT1,n=this._endoWnafT2,s=0;s":""},n.prototype.isInfinity=function(){return this.inf},n.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var i=t.redSqr().redISub(this.x).redISub(e.x),r=t.redMul(this.x.redSub(i)).redISub(this.y);return this.curve.point(i,r)},n.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,i=this.x.redSqr(),r=e.redInvm(),n=i.redAdd(i).redIAdd(i).redIAdd(t).redMul(r),s=n.redSqr().redISub(this.x.redAdd(this.x)),a=n.redMul(this.x.redSub(s)).redISub(this.y);return this.curve.point(s,a)},n.prototype.getX=function(){return this.x.fromRed()},n.prototype.getY=function(){return this.y.fromRed()},n.prototype.mul=function(e){return e=new f(e,16),this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},n.prototype.mulAdd=function(e,t,i){var r=[this,t],n=[e,i];return this.curve.endo?this.curve._endoWnafMulAdd(r,n):this.curve._wnafMulAdd(1,r,n,2)},n.prototype.jmulAdd=function(e,t,i){var r=[this,t],n=[e,i];return this.curve.endo?this.curve._endoWnafMulAdd(r,n,!0):this.curve._wnafMulAdd(1,r,n,2,!0)},n.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},n.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var i=this.precomputed,r=function(e){return e.neg()};t.precomputed={naf:i.naf&&{wnd:i.naf.wnd,points:i.naf.points.map(r)},doubles:i.doubles&&{step:i.doubles.step,points:i.doubles.points.map(r)}}}return t},n.prototype.toJ=function(){if(this.inf)return this.curve.jpoint(null,null,null);var e=this.curve.jpoint(this.x,this.y,this.curve.one);return e},h(s,c.BasePoint),r.prototype.jpoint=function(e,t,i){return new s(this,e,t,i)},s.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),i=this.x.redMul(t),r=this.y.redMul(t).redMul(e);return this.curve.point(i,r)},s.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},s.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),i=this.z.redSqr(),r=this.x.redMul(t),n=e.x.redMul(i),s=this.y.redMul(t.redMul(e.z)),a=e.y.redMul(i.redMul(this.z)),o=r.redSub(n),f=s.redSub(a);if(0===o.cmpn(0))return 0!==f.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var h=o.redSqr(),c=h.redMul(o),l=r.redMul(h),u=f.redSqr().redIAdd(c).redISub(l).redISub(l),d=f.redMul(l.redISub(u)).redISub(s.redMul(c)),p=this.z.redMul(e.z).redMul(o);return this.curve.jpoint(u,d,p)},s.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),i=this.x,r=e.x.redMul(t),n=this.y,s=e.y.redMul(t).redMul(this.z),a=i.redSub(r),o=n.redSub(s);if(0===a.cmpn(0))return 0!==o.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var f=a.redSqr(),h=f.redMul(a),c=i.redMul(f),l=o.redSqr().redIAdd(h).redISub(c).redISub(c),u=o.redMul(c.redISub(l)).redISub(n.redMul(h)),d=this.z.redMul(a);return this.curve.jpoint(l,u,d)},s.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();if(this.curve.zeroA||this.curve.threeA){for(var t=this,i=0;i=0)return!1;if(i.redIAdd(n),0===this.x.cmp(i))return!0}return!1},s.prototype.inspect=function(){return this.isInfinity()?"":""},s.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},function(e,t,i){"use strict";function r(e){"short"===e.type?this.curve=new o.curve.short(e):"edwards"===e.type?this.curve=new o.curve.edwards(e):this.curve=new o.curve.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,f(this.g.validate(),"Invalid curve"),f(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function n(e,t){Object.defineProperty(s,e,{configurable:!0,enumerable:!0,get:function(){var i=new r(t);return Object.defineProperty(s,e,{configurable:!0,enumerable:!0,value:i}),i}})}var s=t,a=i(16),o=i(9),f=o.utils.assert;s.PresetCurve=r,n("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:a.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),n("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:a.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),n("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:a.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),n("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:a.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),n("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:a.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),n("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"0",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:a.sha256,gRed:!1,g:["9"]}),n("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:a.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});var h;try{h=i(191)}catch(e){h=void 0}n("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:a.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",h]})},function(e,t,i){"use strict";function r(e){return this instanceof r?("string"==typeof e&&(o(s.curves.hasOwnProperty(e),"Unknown curve "+e),e=s.curves[e]),e instanceof s.curves.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),void(this.hash=e.hash||e.curve.hash)):new r(e)}var n=i(7),s=i(9),a=s.utils,o=a.assert,f=i(185),h=i(186);e.exports=r,r.prototype.keyPair=function(e){return new f(this,e)},r.prototype.keyFromPrivate=function(e,t){return f.fromPrivate(this,e,t)},r.prototype.keyFromPublic=function(e,t){return f.fromPublic(this,e,t)},r.prototype.genKeyPair=function(e){e||(e={});for(var t=new s.hmacDRBG({hash:this.hash,pers:e.pers,entropy:e.entropy||s.rand(this.hash.hmacStrength),nonce:this.n.toArray()}),i=this.n.byteLength(),r=this.n.sub(new n(2));;){var a=new n(t.generate(i));if(!(a.cmp(r)>0))return a.iaddn(1),this.keyFromPrivate(a)}},r.prototype._truncateToN=function(e,t){var i=8*e.byteLength()-this.n.bitLength();return i>0&&(e=e.ushrn(i)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},r.prototype.sign=function(e,t,i,r){"object"==typeof i&&(r=i,i=null),r||(r={}),t=this.keyFromPrivate(t,i),e=this._truncateToN(new n(e,16));for(var a=this.n.byteLength(),o=t.getPrivate().toArray("be",a),f=e.toArray("be",a),c=new s.hmacDRBG({hash:this.hash,entropy:o,nonce:f,pers:r.pers,persEnc:r.persEnc}),l=this.n.sub(new n(1)),u=0;!0;u++){var d=r.k?r.k(u):new n(c.generate(this.n.byteLength()));if(d=this._truncateToN(d,!0),!(d.cmpn(1)<=0||d.cmp(l)>=0)){var p=this.g.mul(d);if(!p.isInfinity()){var b=p.getX(),m=b.umod(this.n);if(0!==m.cmpn(0)){var w=d.invm(this.n).mul(m.mul(t.getPrivate()).iadd(e));if(w=w.umod(this.n),0!==w.cmpn(0)){var g=(p.getY().isOdd()?1:0)|(0!==b.cmp(m)?2:0);return r.canonical&&w.cmp(this.nh)>0&&(w=this.n.sub(w),g^=1),new h({r:m,s:w,recoveryParam:g})}}}}}},r.prototype.verify=function(e,t,i,r){e=this._truncateToN(new n(e,16)),i=this.keyFromPublic(i,r),t=new h(t,"hex");var s=t.r,a=t.s;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return!1;if(a.cmpn(1)<0||a.cmp(this.n)>=0)return!1;var o=a.invm(this.n),f=o.mul(e).umod(this.n),c=o.mul(s).umod(this.n);if(!this.curve._maxwellTrick){var l=this.g.mulAdd(f,i.getPublic(),c);return!l.isInfinity()&&0===l.getX().umod(this.n).cmp(s)}var l=this.g.jmulAdd(f,i.getPublic(),c);return!l.isInfinity()&&l.eqXToP(s)},r.prototype.recoverPubKey=function(e,t,i,r){o((3&i)===i,"The recovery param is more than two bits"),t=new h(t,r);var s=this.n,a=new n(e),f=t.r,c=t.s,l=1&i,u=i>>1;if(f.cmp(this.curve.p.umod(this.curve.n))>=0&&u)throw new Error("Unable to find sencond key candinate");f=u?this.curve.pointFromX(f.add(this.curve.n),l):this.curve.pointFromX(f,l);var d=t.r.invm(s),p=s.sub(a).mul(d).umod(s),b=c.mul(d).umod(s);return this.g.mulAdd(p,f,b)},r.prototype.getKeyRecoveryParam=function(e,t,i,r){if(t=new h(t,r),null!==t.recoveryParam)return t.recoveryParam;for(var n=0;n<4;n++){var s;try{s=this.recoverPubKey(e,t,n)}catch(e){continue}if(s.eq(i))return n}throw new Error("Unable to find valid recovery factor")}},function(e,t,i){"use strict";function r(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}var n=i(7);e.exports=r,r.fromPublic=function(e,t,i){return t instanceof r?t:new r(e,{pub:t,pubEnc:i})},r.fromPrivate=function(e,t,i){return t instanceof r?t:new r(e,{priv:t,privEnc:i})},r.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},r.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},r.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},r.prototype._importPrivate=function(e,t){this.priv=new n(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},r.prototype._importPublic=function(e,t){return e.x||e.y?void(this.pub=this.ec.curve.point(e.x,e.y)):void(this.pub=this.ec.curve.decodePoint(e,t))},r.prototype.derive=function(e){return e.mul(this.priv).getX()},r.prototype.sign=function(e,t,i){return this.ec.sign(e,this,t,i)},r.prototype.verify=function(e,t){return this.ec.verify(e,t,this)},r.prototype.inspect=function(){return""}},function(e,t,i){"use strict";function r(e,t){return e instanceof r?e:void(this._importDER(e,t)||(l(e.r&&e.s,"Signature without r or s"),this.r=new f(e.r,16),this.s=new f(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam))}function n(){this.place=0}function s(e,t){var i=e[t.place++];if(!(128&i))return i;for(var r=15&i,n=0,s=0,a=t.place;s>>3);for(e.push(128|i);--i;)e.push(t>>>(i<<3)&255);e.push(t)}var f=i(7),h=i(9),c=h.utils,l=c.assert;e.exports=r,r.prototype._importDER=function(e,t){e=c.toArray(e,t);var i=new n;if(48!==e[i.place++])return!1;var r=s(e,i);if(r+i.place!==e.length)return!1;if(2!==e[i.place++])return!1;var a=s(e,i),o=e.slice(i.place,a+i.place);if(i.place+=a,2!==e[i.place++])return!1;var h=s(e,i);if(e.length!==h+i.place)return!1;var l=e.slice(i.place,h+i.place);return 0===o[0]&&128&o[1]&&(o=o.slice(1)),0===l[0]&&128&l[1]&&(l=l.slice(1)),this.r=new f(o),this.s=new f(l),this.recoveryParam=null,!0},r.prototype.toDER=function(e){var t=this.r.toArray(),i=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&i[0]&&(i=[0].concat(i)),t=a(t),i=a(i);!(i[0]||128&i[1]);)i=i.slice(1);var r=[2];o(r,t.length),r=r.concat(t),r.push(2),o(r,i.length);var n=r.concat(i),s=[48];return o(s,n.length),s=s.concat(n),c.encode(s,e)}},function(e,t,i){"use strict";function r(e){if(o("ed25519"===e,"only tested with ed25519 so far"),!(this instanceof r))return new r(e);var e=s.curves[e].curve;this.curve=e,this.g=e.g,this.g.precompute(e.n.bitLength()+1),this.pointClass=e.point().constructor,this.encodingLength=Math.ceil(e.n.bitLength()/8),this.hash=n.sha512}var n=i(16),s=i(9),a=s.utils,o=a.assert,f=a.parseBytes,h=i(188),c=i(189);e.exports=r,r.prototype.sign=function(e,t){e=f(e);var i=this.keyFromSecret(t),r=this.hashInt(i.messagePrefix(),e),n=this.g.mul(r),s=this.encodePoint(n),a=this.hashInt(s,i.pubBytes(),e).mul(i.priv()),o=r.add(a).umod(this.curve.n);return this.makeSignature({R:n,S:o,Rencoded:s})},r.prototype.verify=function(e,t,i){e=f(e),t=this.makeSignature(t);var r=this.keyFromPublic(i),n=this.hashInt(t.Rencoded(),r.pubBytes(),e),s=this.g.mul(t.S()),a=t.R().add(r.pub().mul(n));return a.eq(s)},r.prototype.hashInt=function(){for(var e=this.hash(),t=0;t=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,i,n)}var n=i(16),s=i(9),a=s.utils,o=a.assert;e.exports=r,r.prototype._init=function(e,t,i){var r=e.concat(t).concat(i);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var n=0;n=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(i||[])),this.reseed=1},r.prototype.generate=function(e,t,i,r){if(this.reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(r=i,i=t,t=null),i&&(i=a.toArray(i,r),this._update(i));for(var n=[];n.length>8,a=255&n;s?i.push(s,a):i.push(a)}return i}function n(e){return 1===e.length?"0"+e:e}function s(e){for(var t="",i=0;i=0;){var s;if(n.isOdd()){var a=n.andln(r-1);s=a>(r>>1)-1?(r>>1)-a:a,n.isubn(s)}else s=0;i.push(s);for(var o=0!==n.cmpn(0)&&0===n.andln(r-1)?t+1:1,f=1;f0||t.cmpn(-n)>0;){var s=e.andln(3)+r&3,a=t.andln(3)+n&3;3===s&&(s=-1),3===a&&(a=-1);var o;if(0===(1&s))o=0;else{var f=e.andln(7)+r&7;o=3!==f&&5!==f||2!==a?s:-s}i[0].push(o);var h;if(0===(1&a))h=0;else{var f=t.andln(7)+n&7;h=3!==f&&5!==f||2!==s?a:-a}i[1].push(h),2*r===o+1&&(r=1-r),2*n===h+1&&(n=1-n),e.iushrn(1),t.iushrn(1)}return i}function f(e,t,i){var r="_"+t;e.prototype[t]=function(){return void 0!==this[r]?this[r]:this[r]=i.call(this)}}function h(e){return"string"==typeof e?l.toArray(e,"hex"):e}function c(e){return new u(e,"hex","le")}var l=t,u=i(7);l.assert=function(e,t){if(!e)throw new Error(t||"Assertion failed")},l.toArray=r,l.zero2=n,l.toHex=s,l.encode=function(e,t){return"hex"===t?s(e):e},l.getNAF=a,l.getJSF=o,l.cachedProperty=f,l.parseBytes=h,l.intFromLE=c},function(e,t,i){function r(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}var n=i(16),s=n.utils,a=s.assert;t.BlockHash=r,r.prototype.update=function(e,t){if(e=s.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){e=this.pending;var i=e.length%this._delta8;this.pending=e.slice(e.length-i,e.length),0===this.pending.length&&(this.pending=null),e=s.join32(e,0,e.length-i,this.endian);for(var r=0;r>>24&255,r[n++]=e>>>16&255,r[n++]=e>>>8&255,r[n++]=255&e}else{r[n++]=255&e,r[n++]=e>>>8&255,r[n++]=e>>>16&255,r[n++]=e>>>24&255,r[n++]=0,r[n++]=0,r[n++]=0,r[n++]=0;for(var s=8;sthis.blockSize&&(e=(new this.Hash).update(e).digest()),a(e.length<=this.blockSize);for(var t=e.length;t>>3}function p(e){return C(e,17)^C(e,19)^e>>>10}function b(e,t,i,r){return 0===e?f(t,i,r):1===e||3===e?c(t,i,r):2===e?h(t,i,r):void 0}function m(e,t,i,r,n,s){var a=e&i^~e&n;return a<0&&(a+=4294967296),a}function w(e,t,i,r,n,s){var a=t&r^~t&s;return a<0&&(a+=4294967296),a}function g(e,t,i,r,n,s){var a=e&i^e&n^i&n;return a<0&&(a+=4294967296),a}function v(e,t,i,r,n,s){var a=t&r^t&s^r&s;return a<0&&(a+=4294967296),a}function _(e,t){var i=L(e,t,28),r=L(t,e,2),n=L(t,e,7),s=i^r^n;return s<0&&(s+=4294967296),s}function y(e,t){var i=B(e,t,28),r=B(t,e,2),n=B(t,e,7),s=i^r^n;return s<0&&(s+=4294967296),s}function k(e,t){var i=L(e,t,14),r=L(e,t,18),n=L(t,e,9),s=i^r^n;return s<0&&(s+=4294967296),s}function E(e,t){var i=B(e,t,14),r=B(e,t,18),n=B(t,e,9),s=i^r^n;return s<0&&(s+=4294967296),s}function A(e,t){var i=L(e,t,1),r=L(e,t,8),n=U(e,t,7),s=i^r^n;return s<0&&(s+=4294967296),s}function S(e,t){var i=B(e,t,1),r=B(e,t,8),n=j(e,t,7),s=i^r^n;return s<0&&(s+=4294967296),s}function M(e,t){var i=L(e,t,19),r=L(t,e,29),n=U(e,t,6),s=i^r^n;return s<0&&(s+=4294967296),s}function T(e,t){var i=B(e,t,19),r=B(t,e,29),n=j(e,t,6),s=i^r^n;return s<0&&(s+=4294967296),s}var x=i(16),R=x.utils,I=R.assert,C=R.rotr32,P=R.rotl32,O=R.sum32,N=R.sum32_4,D=R.sum32_5,L=R.rotr64_hi,B=R.rotr64_lo,U=R.shr64_hi,j=R.shr64_lo,F=R.sum64,z=R.sum64_hi,q=R.sum64_lo,H=R.sum64_4_hi,G=R.sum64_4_lo,V=R.sum64_5_hi,W=R.sum64_5_lo,K=x.common.BlockHash,Y=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],Z=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],$=[1518500249,1859775393,2400959708,3395469782];R.inherits(r,K),t.sha256=r,r.blockSize=512,r.outSize=256,r.hmacStrength=192,r.padLength=64,r.prototype._update=function(e,t){for(var i=this.W,r=0;r<16;r++)i[r]=e[t+r];for(;r>8,a=255&n;s?i.push(s,a):i.push(a)}else for(var r=0;r>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24;return t>>>0}function a(e,t){for(var i="",r=0;r>>0}return s}function c(e,t){for(var i=new Array(4*e.length),r=0,n=0;r>>24,i[n+1]=s>>>16&255,i[n+2]=s>>>8&255,i[n+3]=255&s):(i[n+3]=s>>>24,i[n+2]=s>>>16&255,i[n+1]=s>>>8&255,i[n]=255&s)}return i}function l(e,t){return e>>>t|e<<32-t}function u(e,t){return e<>>32-t}function d(e,t){return e+t>>>0}function p(e,t,i){return e+t+i>>>0}function b(e,t,i,r){return e+t+i+r>>>0}function m(e,t,i,r,n){return e+t+i+r+n>>>0}function w(e,t){if(!e)throw new Error(t||"Assertion failed")}function g(e,t,i,r){var n=e[t],s=e[t+1],a=r+s>>>0,o=(a>>0,e[t+1]=a}function v(e,t,i,r){var n=t+r>>>0,s=(n>>0}function _(e,t,i,r){var n=t+r;return n>>>0}function y(e,t,i,r,n,s,a,o){var f=0,h=t;h=h+r>>>0,f+=h>>0,f+=h>>0,f+=h>>0}function k(e,t,i,r,n,s,a,o){var f=t+r+s+o;return f>>>0}function E(e,t,i,r,n,s,a,o,f,h){var c=0,l=t;l=l+r>>>0,c+=l>>0,c+=l>>0,c+=l>>0,c+=l>>0}function A(e,t,i,r,n,s,a,o,f,h){var c=t+r+s+o+h;return c>>>0}function S(e,t,i){var r=t<<32-i|e>>>i;return r>>>0}function M(e,t,i){var r=e<<32-i|t>>>i;return r>>>0}function T(e,t,i){return e>>>i}function x(e,t,i){var r=e<<32-i|t>>>i;return r>>>0}var R=t,I=i(2);R.toArray=r,R.toHex=n,R.htonl=s,R.toHex32=a,R.zero2=o,R.zero8=f,R.join32=h,R.split32=c,R.rotr32=l,R.rotl32=u,R.sum32=d,R.sum32_3=p,R.sum32_4=b,R.sum32_5=m,R.assert=w,R.inherits=I,t.sum64=g,t.sum64_hi=v,t.sum64_lo=_,t.sum64_4_hi=y,t.sum64_4_lo=k,t.sum64_5_hi=E,t.sum64_5_lo=A,t.rotr64_hi=S,t.rotr64_lo=M,t.shr64_hi=T,t.shr64_lo=x},function(e,t,i){var r=i(11),n=i(199),s=i(140),a=i(2),o=e.exports=function(e,t){var i=this;i.writable=!0,i.xhr=e,i.body=[],i.uri=(t.protocol||"http:")+"//"+t.host+(t.port?":"+t.port:"")+(t.path||"/"),"undefined"==typeof t.withCredentials&&(t.withCredentials=!0);try{e.withCredentials=t.withCredentials}catch(e){}if(t.responseType)try{e.responseType=t.responseType}catch(e){}if(e.open(t.method||"GET",i.uri,!0),e.onerror=function(e){i.emit("error",new Error("Network error"))},i._headers={},t.headers)for(var r=f(t.headers),a=0;athis.offset&&(this.emit("data",t.slice(this.offset)),this.offset=t.length))};var f=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},function(e,t){t.read=function(e,t,i,r,n){var s,a,o=8*n-r-1,f=(1<>1,c=-7,l=i?n-1:0,u=i?-1:1,d=e[t+l];for(l+=u,s=d&(1<<-c)-1,d>>=-c,c+=o;c>0;s=256*s+e[t+l],l+=u,c-=8);for(a=s&(1<<-c)-1,s>>=-c,c+=r;c>0;a=256*a+e[t+l],l+=u,c-=8);if(0===s)s=1-h;else{if(s===f)return a?NaN:(d?-1:1)*(1/0);a+=Math.pow(2,r),s-=h}return(d?-1:1)*a*Math.pow(2,s-r)},t.write=function(e,t,i,r,n,s){var a,o,f,h=8*s-n-1,c=(1<>1,u=23===n?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:s-1,p=r?1:-1,b=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(o=isNaN(t)?1:0,a=c):(a=Math.floor(Math.log(t)/Math.LN2),t*(f=Math.pow(2,-a))<1&&(a--,f*=2),t+=a+l>=1?u/f:u*Math.pow(2,1-l),t*f>=2&&(a++,f/=2),a+l>=c?(o=0,a=c):a+l>=1?(o=(t*f-1)*Math.pow(2,n),a+=l):(o=t*Math.pow(2,l-1)*Math.pow(2,n),a=0));n>=8;e[i+d]=255&o,d+=p,o/=256,n-=8);for(a=a<0;e[i+d]=255&a,d+=p,a/=256,h-=8);e[i+d-p]|=128*b}},function(e,t){var i=[].indexOf;e.exports=function(e,t){if(i)return e.indexOf(t);for(var r=0;r=6.0.0 <7.0.0",type:"range"},"/home/travis/build/hydrabolt/discord.js/node_modules/browserify-sign"]],_from:"elliptic@>=6.0.0 <7.0.0",_id:"elliptic@6.3.2",_inCache:!0,_location:"/elliptic",_nodeVersion:"6.3.0",_npmOperationalInternal:{host:"packages-16-east.internal.npmjs.com",tmp:"tmp/elliptic-6.3.2.tgz_1473938837205_0.3108903462998569"},_npmUser:{name:"indutny",email:"fedor@indutny.com"},_npmVersion:"3.10.3",_phantomChildren:{},_requested:{raw:"elliptic@^6.0.0",scope:null,escapedName:"elliptic",name:"elliptic",rawSpec:"^6.0.0",spec:">=6.0.0 <7.0.0",type:"range"},_requiredBy:["/browserify-sign","/create-ecdh"],_resolved:"https://registry.npmjs.org/elliptic/-/elliptic-6.3.2.tgz",_shasum:"e4c81e0829cf0a65ab70e998b8232723b5c1bc48",_shrinkwrap:null,_spec:"elliptic@^6.0.0",_where:"/home/travis/build/hydrabolt/discord.js/node_modules/browserify-sign",author:{name:"Fedor Indutny",email:"fedor@indutny.com"},bugs:{url:"https://github.com/indutny/elliptic/issues"},dependencies:{"bn.js":"^4.4.0",brorand:"^1.0.1","hash.js":"^1.0.0",inherits:"^2.0.1"},description:"EC cryptography",devDependencies:{brfs:"^1.4.3",coveralls:"^2.11.3",grunt:"^0.4.5","grunt-browserify":"^5.0.0","grunt-contrib-connect":"^1.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^1.0.1","grunt-mocha-istanbul":"^3.0.1","grunt-saucelabs":"^8.6.2",istanbul:"^0.4.2",jscs:"^2.9.0",jshint:"^2.6.0",mocha:"^2.1.0"},directories:{},dist:{shasum:"e4c81e0829cf0a65ab70e998b8232723b5c1bc48",tarball:"https://registry.npmjs.org/elliptic/-/elliptic-6.3.2.tgz"},files:["lib"],gitHead:"cbace4683a4a548dc0306ef36756151a20299cd5",homepage:"https://github.com/indutny/elliptic",keywords:["EC","Elliptic","curve","Cryptography"],license:"MIT",main:"lib/elliptic.js",maintainers:[{name:"indutny",email:"fedor@indutny.com"}],name:"elliptic",optionalDependencies:{},readme:"ERROR: No README data found!",repository:{type:"git",url:"git+ssh://git@github.com/indutny/elliptic.git"},scripts:{jscs:"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",jshint:"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",lint:"npm run jscs && npm run jshint",test:"npm run lint && npm run unit",unit:"istanbul test _mocha --reporter=spec test/index.js",version:"grunt dist && git add dist/"},version:"6.3.2"}},function(e,t){e.exports={"2.16.840.1.101.3.4.1.1":"aes-128-ecb","2.16.840.1.101.3.4.1.2":"aes-128-cbc","2.16.840.1.101.3.4.1.3":"aes-128-ofb","2.16.840.1.101.3.4.1.4":"aes-128-cfb","2.16.840.1.101.3.4.1.21":"aes-192-ecb","2.16.840.1.101.3.4.1.22":"aes-192-cbc","2.16.840.1.101.3.4.1.23":"aes-192-ofb","2.16.840.1.101.3.4.1.24":"aes-192-cfb","2.16.840.1.101.3.4.1.41":"aes-256-ecb","2.16.840.1.101.3.4.1.42":"aes-256-cbc","2.16.840.1.101.3.4.1.43":"aes-256-ofb","2.16.840.1.101.3.4.1.44":"aes-256-cfb"}},function(module,exports,__webpack_require__){(function(process,__dirname){function globalEval(e){eval.call(null,e)}function assert(e,t){e||abort("Assertion failed: "+t)}function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(e){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}function setValue(e,t,i,r){switch(i=i||"i8","*"===i.charAt(i.length-1)&&(i="i32"),i){case"i1":HEAP8[e>>0]=t;break;case"i8":HEAP8[e>>0]=t;break;case"i16":HEAP16[e>>1]=t;break;case"i32":HEAP32[e>>2]=t;break;case"i64":tempI64=[t>>>0,(tempDouble=t,+Math_abs(tempDouble)>=1?tempDouble>0?(0|Math_min(+Math_floor(tempDouble/4294967296),4294967295))>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[e>>2]=tempI64[0],HEAP32[e+4>>2]=tempI64[1];break;case"float":HEAPF32[e>>2]=t;break;case"double":HEAPF64[e>>3]=t;break;default:abort("invalid type for setValue: "+i)}}function getValue(e,t,i){switch(t=t||"i8","*"===t.charAt(t.length-1)&&(t="i32"),t){case"i1":return HEAP8[e>>0];case"i8":return HEAP8[e>>0];case"i16":return HEAP16[e>>1];case"i32":return HEAP32[e>>2];case"i64":return HEAP32[e>>2];case"float":return HEAPF32[e>>2];case"double":return HEAPF64[e>>3];default:abort("invalid type for setValue: "+t)}return null}function allocate(e,t,i,r){var n,s;"number"==typeof e?(n=!0,s=e):(n=!1,s=e.length);var a,o="string"==typeof t?t:null;if(a=i==ALLOC_NONE?r:["function"==typeof _malloc?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][void 0===i?ALLOC_STATIC:i](Math.max(s,o?1:t.length)),n){var f,r=a;for(assert(0==(3&a)),f=a+(s&-4);r>2]=0;for(f=a+s;r>0]=0;return a}if("i8"===o)return e.subarray||e.slice?HEAPU8.set(e,a):HEAPU8.set(new Uint8Array(e),a),a;for(var h,c,l,u=0;u>0],r|=i,0==i&&!t)break;if(n++,t&&n==t)break}t||(t=n);var s="";if(r<128){for(var a,o=1024;t>0;)a=String.fromCharCode.apply(String,HEAPU8.subarray(e,e+Math.min(t,o))),s=s?s+a:a,e+=o,t-=o;return s}return Module.UTF8ToString(e)}function UTF8ArrayToString(e,t){for(var i,r,n,s,a,o,f="";;){if(i=e[t++],!i)return f;if(128&i)if(r=63&e[t++],192!=(224&i))if(n=63&e[t++],224==(240&i)?i=(15&i)<<12|r<<6|n:(s=63&e[t++],240==(248&i)?i=(7&i)<<18|r<<12|n<<6|s:(a=63&e[t++],248==(252&i)?i=(3&i)<<24|r<<18|n<<12|s<<6|a:(o=63&e[t++],i=(1&i)<<30|r<<24|n<<18|s<<12|a<<6|o))),i<65536)f+=String.fromCharCode(i);else{var h=i-65536;f+=String.fromCharCode(55296|h>>10,56320|1023&h)}else f+=String.fromCharCode((31&i)<<6|r);else f+=String.fromCharCode(i)}}function stringToUTF8Array(e,t,i,r){if(!(r>0))return 0;for(var n=i,s=i+r-1,a=0;a=55296&&o<=57343&&(o=65536+((1023&o)<<10)|1023&e.charCodeAt(++a)),o<=127){if(i>=s)break;t[i++]=o}else if(o<=2047){if(i+1>=s)break;t[i++]=192|o>>6,t[i++]=128|63&o}else if(o<=65535){if(i+2>=s)break;t[i++]=224|o>>12,t[i++]=128|o>>6&63,t[i++]=128|63&o}else if(o<=2097151){if(i+3>=s)break;t[i++]=240|o>>18,t[i++]=128|o>>12&63,t[i++]=128|o>>6&63,t[i++]=128|63&o}else if(o<=67108863){if(i+4>=s)break;t[i++]=248|o>>24,t[i++]=128|o>>18&63,t[i++]=128|o>>12&63,t[i++]=128|o>>6&63,t[i++]=128|63&o}else{if(i+5>=s)break;t[i++]=252|o>>30,t[i++]=128|o>>24&63,t[i++]=128|o>>18&63,t[i++]=128|o>>12&63,t[i++]=128|o>>6&63,t[i++]=128|63&o}}return t[i]=0,i-n}function lengthBytesUTF8(e){for(var t=0,i=0;i=55296&&r<=57343&&(r=65536+((1023&r)<<10)|1023&e.charCodeAt(++i)),r<=127?++t:t+=r<=2047?2:r<=65535?3:r<=2097151?4:r<=67108863?5:6}return t}function demangle(e){var t=!!Module.___cxa_demangle;if(t)try{var i=_malloc(e.length);writeStringToMemory(e.substr(1),i);var r=_malloc(4),n=Module.___cxa_demangle(i,0,0,r);if(0===getValue(r,"i32")&&n)return Pointer_stringify(n)}catch(t){return e}finally{i&&_free(i),r&&_free(r),n&&_free(n)}return Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),e}function demangleAll(e){return e.replace(/__Z[\w\d_]+/g,function(e){var t=demangle(e);return e===t?e:e+" ["+t+"]"})}function jsStackTrace(){var e=new Error;if(!e.stack){try{throw new Error(0)}catch(t){e=t}if(!e.stack)return"(no stack trace available)"}return e.stack.toString()}function stackTrace(){return demangleAll(jsStackTrace())}function alignMemoryPage(e){return e%4096>0&&(e+=4096-e%4096),e}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)}function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}function callRuntimeCallbacks(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var i=t.func;"number"==typeof i?void 0===t.arg?Runtime.dynCall("v",i):Runtime.dynCall("vi",i,[t.arg]):i(void 0===t.arg?null:t.arg)}else t()}}function preRun(){if(Module.preRun)for("function"==typeof Module.preRun&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__),runtimeExited=!0}function postRun(){if(Module.postRun)for("function"==typeof Module.postRun&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(e){__ATPRERUN__.unshift(e)}function addOnPostRun(e){__ATPOSTRUN__.unshift(e)}function intArrayFromString(e,t,i){var r=i>0?i:lengthBytesUTF8(e)+1,n=new Array(r),s=stringToUTF8Array(e,n,0,n.length);return t&&(n.length=s),n}function writeStringToMemory(e,t,i){for(var r=intArrayFromString(e,i),n=0;n>0]=s,n+=1}}function writeArrayToMemory(e,t){for(var i=0;i>0]=e[i]}function writeAsciiToMemory(e,t,i){for(var r=0;r>0]=e.charCodeAt(r);i||(HEAP8[t>>0]=0)}function ___setErrNo(e){return Module.___errno_location&&(HEAP32[Module.___errno_location()>>2]=e),e}function _sysconf(e){switch(e){case 30:return PAGE_SIZE;case 85:return totalMemory/PAGE_SIZE;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 79:return 0;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return"object"==typeof navigator?navigator.hardwareConcurrency||1:1}return ___setErrNo(ERRNO_CODES.EINVAL),-1}function embind_init_charCodes(){for(var e=new Array(256),t=0;t<256;++t)e[t]=String.fromCharCode(t);embind_charCodes=e}function readLatin1String(e){for(var t="",i=e;HEAPU8[i];)t+=embind_charCodes[HEAPU8[i++]];return t}function makeLegalFunctionName(e){if(void 0===e)return"_unknown";e=e.replace(/[^a-zA-Z0-9_]/g,"$");var t=e.charCodeAt(0);return t>=char_0&&t<=char_9?"_"+e:e}function createNamedFunction(e,t){return e=makeLegalFunctionName(e),new Function("body","return function "+e+'() {\n "use strict"; return body.apply(this, arguments);\n};\n')(t)}function extendError(e,t){var i=createNamedFunction(t,function(e){this.name=t,this.message=e;var i=new Error(e).stack;void 0!==i&&(this.stack=this.toString()+"\n"+i.replace(/^Error(:[^\n]*)?\n/,""))});return i.prototype=Object.create(e.prototype),i.prototype.constructor=i,i.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message},i}function throwBindingError(e){throw new BindingError(e)}function throwInternalError(e){throw new InternalError(e)}function whenDependentTypesAreResolved(e,t,i){function r(t){var r=i(t);r.length!==e.length&&throwInternalError("Mismatched type converter count");for(var n=0;n>2]=e,e=___cxa_find_matching_catch.buffer;for(var n=0;n>2],t.adjusted=e,0|(asm.setTempRet0(r[n]),e);return e=HEAP32[e>>2],0|(asm.setTempRet0(i),e)}function ___cxa_throw(e,t,i){throw EXCEPTIONS.infos[e]={ptr:e,adjusted:e,type:t,destructor:i,refcount:0},EXCEPTIONS.last=e,"uncaught_exception"in __ZSt18uncaught_exceptionv?__ZSt18uncaught_exceptionv.uncaught_exception++:__ZSt18uncaught_exceptionv.uncaught_exception=1,e+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}function getShiftFromSize(e){switch(e){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+e)}}function __embind_register_bool(e,t,i,r,n){var s=getShiftFromSize(i);t=readLatin1String(t),registerType(e,{name:t,fromWireType:function(e){return!!e},toWireType:function(e,t){return t?r:n},argPackAdvance:8,readValueFromPointer:function(e){var r;if(1===i)r=HEAP8;else if(2===i)r=HEAP16;else{if(4!==i)throw new TypeError("Unknown boolean type size: "+t);r=HEAP32}return this.fromWireType(r[e>>s])},destructorFunction:null})}function _abort(){Module.abort()}function _free(){}function _malloc(e){var t=Runtime.dynamicAlloc(e+8);return t+8&4294967288}function simpleReadValueFromPointer(e){return this.fromWireType(HEAPU32[e>>2])}function __embind_register_std_string(e,t){t=readLatin1String(t),registerType(e,{name:t,fromWireType:function(e){for(var t=HEAPU32[e>>2],i=new Array(t),r=0;r>2]=s;for(var o=0;o255&&(_free(a),throwBindingError("String has UTF-16 code units that do not fit in 8 bits")),HEAPU8[a+4+o]=f}return null!==e&&e.push(_free,a),a},argPackAdvance:8,readValueFromPointer:simpleReadValueFromPointer,destructorFunction:function(e){_free(e)}})}function __embind_register_std_wstring(e,t,i){i=readLatin1String(i);var r,n;2===t?(r=function(){return HEAPU16},n=1):4===t&&(r=function(){return HEAPU32},n=2),registerType(e,{name:i,fromWireType:function(e){for(var t=r(),i=HEAPU32[e>>2],s=new Array(i),a=e+4>>n,o=0;o>2]=a;for(var f=o+4>>n,h=0;h>1]}:function(e){return HEAPU16[e>>1]};case 2:return i?function(e){return HEAP32[e>>2]}:function(e){return HEAPU32[e>>2]};default:throw new TypeError("Unknown integer type: "+e)}}function __embind_register_integer(e,t,i,r,n){t=readLatin1String(t),n===-1&&(n=4294967295);var s=getShiftFromSize(i),a=function(e){return e};if(0===r){var o=32-8*i;a=function(e){return e<>>o}}registerType(e,{name:t,fromWireType:a,toWireType:function(e,i){if("number"!=typeof i&&"boolean"!=typeof i)throw new TypeError('Cannot convert "'+_embind_repr(i)+'" to '+this.name);if(in)throw new TypeError('Passing a number "'+_embind_repr(i)+'" from JS side to C/C++ side to an argument of type "'+t+'", which is outside the valid range ['+r+", "+n+"]!");return 0|i},argPackAdvance:8,readValueFromPointer:integerReadValueFromPointer(t,s,0!==r),destructorFunction:null})}function __emval_decref(e){e>4&&0===--emval_handle_array[e].refcount&&(emval_handle_array[e]=void 0,emval_free_list.push(e))}function count_emval_handles(){for(var e=0,t=5;t>=2;var t=HEAPU32,i=t[e],r=t[e+1];return new s(t.buffer,r,i)}var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],s=n[t];i=readLatin1String(i),registerType(e,{name:i,fromWireType:r,argPackAdvance:8,readValueFromPointer:r},{ignoreDuplicateRegistrations:!0})}function floatReadValueFromPointer(e,t){switch(t){case 2:return function(e){return this.fromWireType(HEAPF32[e>>2])};case 3:return function(e){return this.fromWireType(HEAPF64[e>>3])};default:throw new TypeError("Unknown float type: "+e)}}function __embind_register_float(e,t,i){var r=getShiftFromSize(i);t=readLatin1String(t),registerType(e,{name:t,fromWireType:function(e){return e},toWireType:function(e,t){if("number"!=typeof t&&"boolean"!=typeof t)throw new TypeError('Cannot convert "'+_embind_repr(t)+'" to '+this.name);return t},argPackAdvance:8,readValueFromPointer:floatReadValueFromPointer(t,r),destructorFunction:null})}function _emscripten_memcpy_big(e,t,i){return HEAPU8.set(HEAPU8.subarray(t,t+i),e),e}function _llvm_stackrestore(e){var t=_llvm_stacksave,i=t.LLVM_SAVEDSTACKS[e];t.LLVM_SAVEDSTACKS.splice(e,1),Runtime.stackRestore(i)}function _sbrk(e){var t=_sbrk;t.called||(DYNAMICTOP=alignMemoryPage(DYNAMICTOP),t.called=!0,assert(Runtime.dynamicAlloc),t.alloc=Runtime.dynamicAlloc,Runtime.dynamicAlloc=function(){abort("cannot dynamically allocate, sbrk now has control")});var i=DYNAMICTOP;if(0!=e){var r=t.alloc(e);if(!r)return-1>>>0}return i}function _llvm_stacksave(){var e=_llvm_stacksave;return e.LLVM_SAVEDSTACKS||(e.LLVM_SAVEDSTACKS=[]),e.LLVM_SAVEDSTACKS.push(Runtime.stackSave()),e.LLVM_SAVEDSTACKS.length-1}function ___gxx_personality_v0(){}function heap32VectorToArray(e,t){for(var i=[],r=0;r>2)+r]);return i}function runDestructors(e){for(;e.length;){var t=e.pop(),i=e.pop();i(t)}}function __embind_register_class_constructor(e,t,i,r,n,s){var a=heap32VectorToArray(t,i);n=requireFunction(r,n),whenDependentTypesAreResolved([],[e],function(e){e=e[0];var i="constructor "+e.name;if(void 0===e.registeredClass.constructor_body&&(e.registeredClass.constructor_body=[]),void 0!==e.registeredClass.constructor_body[t-1])throw new BindingError("Cannot register multiple constructors with identical number of parameters ("+(t-1)+") for class '"+e.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return e.registeredClass.constructor_body[t-1]=function(){throwUnboundTypeError("Cannot construct "+e.name+" due to unbound types",a)},whenDependentTypesAreResolved([],a,function(r){return e.registeredClass.constructor_body[t-1]=function(){arguments.length!==t-1&&throwBindingError(i+" called with "+arguments.length+" arguments, expected "+(t-1));var e=[],a=new Array(t);a[0]=s;for(var o=1;o>2]=t),t}function _pthread_self(){return 0}function new_(e,t){if(!(e instanceof Function))throw new TypeError("new_ called with constructor type "+typeof e+" which is not a function");var i=createNamedFunction(e.name||"unknownFunctionName",function(){});i.prototype=e.prototype;var r=new i,n=e.apply(r,t);return n instanceof Object?n:r}function craftInvokerFunction(e,t,i,r,n){var s=t.length;s<2&&throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var a=null!==t[1]&&null!==i,o="",f="",h=0;h0?", ":"")+f);var b="void"!==t[0].name;if(c+=(b?"var rv = ":"")+"invoker(fn"+(f.length>0?", ":"")+f+");\n",l)c+="runDestructors(destructors);\n";else for(var h=a?1:2;h0||(preRun(),runDependencies>0||Module.calledRun||(Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),t()},1)):t()))}function exit(e,t){if(!t||!Module.noExitRuntime)throw Module.noExitRuntime||(ABORT=!0,EXITSTATUS=e,STACKTOP=initialStackTop,exitRuntime(),Module.onExit&&Module.onExit(e)),ENVIRONMENT_IS_NODE?process.exit(e):ENVIRONMENT_IS_SHELL&&"function"==typeof quit&&quit(e),new ExitStatus(e)}function abort(e){void 0!==e?(Module.print(e),Module.printErr(e),e=JSON.stringify(e)):e="",ABORT=!0,EXITSTATUS=1;var t="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.",i="abort("+e+") at "+stackTrace()+t;throw abortDecorators&&abortDecorators.forEach(function(t){i=t(i,e)}),i}var Module;Module||(Module=("undefined"!=typeof Module?Module:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;if(Module.ENVIRONMENT)if("WEB"===Module.ENVIRONMENT)ENVIRONMENT_IS_WEB=!0;else if("WORKER"===Module.ENVIRONMENT)ENVIRONMENT_IS_WORKER=!0;else if("NODE"===Module.ENVIRONMENT)ENVIRONMENT_IS_NODE=!0;else{if("SHELL"!==Module.ENVIRONMENT)throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.");ENVIRONMENT_IS_SHELL=!0}else ENVIRONMENT_IS_WEB="object"==typeof window,ENVIRONMENT_IS_WORKER="function"==typeof importScripts,ENVIRONMENT_IS_NODE="object"==typeof process&&!0&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){Module.print||(Module.print=console.log),Module.printErr||(Module.printErr=console.warn);var nodeFS,nodePath;Module.read=function(e,t){nodeFS||(nodeFS=__webpack_require__(12)),nodePath||(nodePath=__webpack_require__(17)),e=nodePath.normalize(e);var i=nodeFS.readFileSync(e);return i||e==nodePath.resolve(e)||(e=path.join(__dirname,"..","src",e),i=nodeFS.readFileSync(e)),i&&!t&&(i=i.toString()),i},Module.readBinary=function(e){var t=Module.read(e,!0);return t.buffer||(t=new Uint8Array(t)),assert(t.buffer),t},Module.load=function(e){globalEval(read(e))},Module.thisProgram||(process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\/g,"/"):Module.thisProgram="unknown-program"),Module.arguments=process.argv.slice(2),module.exports=Module,Module.inspect=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),"undefined"!=typeof printErr&&(Module.printErr=printErr),"undefined"!=typeof read?Module.read=read:Module.read=function(){throw"no read() available (jsc?)"},Module.readBinary=function(e){if("function"==typeof readbuffer)return new Uint8Array(readbuffer(e));var t=read(e,"binary");return assert("object"==typeof t),t},"undefined"!=typeof scriptArgs?Module.arguments=scriptArgs:"undefined"!=typeof arguments&&(Module.arguments=arguments);else{if(!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER)throw"Unknown runtime environment. Where are we?";if(Module.read=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},Module.readAsync=function(e,t,i){var r=new XMLHttpRequest;r.open("GET",e,!0),r.responseType="arraybuffer",r.onload=function(){200==r.status||0==r.status&&r.response?t(r.response):i()},r.onerror=i,r.send(null)},"undefined"!=typeof arguments&&(Module.arguments=arguments),"undefined"!=typeof console)Module.print||(Module.print=function(e){console.log(e)}),Module.printErr||(Module.printErr=function(e){console.warn(e)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&"undefined"!=typeof dump?function(e){dump(e)}:function(e){})}ENVIRONMENT_IS_WORKER&&(Module.load=importScripts),"undefined"==typeof Module.setWindowTitle&&(Module.setWindowTitle=function(e){document.title=e})}!Module.load&&Module.read&&(Module.load=function(e){globalEval(Module.read(e))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[];for(var key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=void 0;var Runtime={setTempRet0:function(e){tempRet0=e},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(e){STACKTOP=e},getNativeTypeSize:function(e){switch(e){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("*"===e[e.length-1])return Runtime.QUANTUM_SIZE;if("i"===e[0]){var t=parseInt(e.substr(1));return assert(t%8===0),t/8}return 0}},getNativeFieldSize:function(e){return Math.max(Runtime.getNativeTypeSize(e),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(e,t){return"double"===t||"i64"===t?7&e&&(assert(4===(7&e)),e+=4):assert(0===(3&e)),e},getAlignSize:function(e,t,i){return i||"i64"!=e&&"double"!=e?e?Math.min(t||(e?Runtime.getNativeFieldSize(e):0),Runtime.QUANTUM_SIZE):Math.min(t,8):8},dynCall:function(e,t,i){return i&&i.length?(i.splice||(i=Array.prototype.slice.call(i)),i.splice(0,0,t),Module["dynCall_"+e].apply(null,i)):Module["dynCall_"+e].call(null,t)},functionPointers:[],addFunction:function(e){for(var t=0;t=TOTAL_MEMORY){var i=enlargeMemory();if(!i)return DYNAMICTOP=t,0}return t},alignMemory:function(e,t){var i=e=Math.ceil(e/(t?t:16))*(t?t:16);return i},makeBigInt:function(e,t,i){var r=i?+(e>>>0)+4294967296*+(t>>>0):+(e>>>0)+4294967296*+(0|t);return r},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0},ABORT=!1,EXITSTATUS=0,ccall;!function(){function parseJSFunc(e){var t=e.toString().match(sourceRegex).slice(1);return{arguments:t[0],body:t[1],returnValue:t[2]}}function ensureJSsource(){if(!JSsource){JSsource={};for(var e in JSfuncs)JSfuncs.hasOwnProperty(e)&&(JSsource[e]=parseJSFunc(JSfuncs[e]))}}var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(e){var t=Runtime.stackAlloc(e.length);return writeArrayToMemory(e,t),t},stringToC:function(e){var t=0;return null!==e&&void 0!==e&&0!==e&&(t=Runtime.stackAlloc((e.length<<2)+1),writeStringToMemory(e,t)),t}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(e,t,i,r,n){var s=getCFunc(e),a=[],o=0;if(r)for(var f=0;f>>16,r=65535&e,n=t>>>16,s=65535&t;return r*s+(i*s+r*n<<16)|0}),Math.imul=Math.imul,Math.clz32||(Math.clz32=function(e){e>>>=0;for(var t=0;t<32;t++)if(e&1<<31-t)return t; return 32}),Math.clz32=Math.clz32;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_min=Math.min,Math_clz32=Math.clz32,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;Module.preloadedImages={},Module.preloadedAudios={};var ASM_CONSTS=[];STATIC_BASE=8,STATICTOP=STATIC_BASE+35488,__ATINIT__.push({func:function(){__GLOBAL__sub_I_opusscript_encoder_cpp()}},{func:function(){__GLOBAL__sub_I_bind_cpp()}}),allocate([32,90,0,0,152,108,0,0,160,90,0,0,172,108,0,0,0,0,0,0,8,0,0,0,160,90,0,0,193,108,0,0,1,0,0,0,8,0,0,0,188,90,0,0,7,130,0,0,0,0,0,0,1,0,0,0,72,0,0,0,0,0,0,0,32,90,0,0,70,130,0,0,188,90,0,0,120,130,0,0,0,0,0,0,1,0,0,0,72,0,0,0,0,0,0,0,188,90,0,0,216,130,0,0,0,0,0,0,1,0,0,0,72,0,0,0,0,0,0,0,32,90,0,0,36,131,0,0,32,90,0,0,71,131,0,0,32,90,0,0,132,131,0,0,32,90,0,0,200,131,0,0,32,90,0,0,14,132,0,0,32,90,0,0,76,132,0,0,32,90,0,0,147,132,0,0,32,90,0,0,207,132,0,0,32,90,0,0,20,133,0,0,32,90,0,0,81,133,0,0,32,90,0,0,94,134,0,0,32,90,0,0,156,134,0,0,32,90,0,0,219,134,0,0,32,90,0,0,148,135,0,0,72,90,0,0,114,135,0,0,16,1,0,0,0,0,0,0,72,90,0,0,31,135,0,0,240,0,0,0,0,0,0,0,72,90,0,0,68,135,0,0,32,1,0,0,0,0,0,0,32,90,0,0,101,135,0,0,72,90,0,0,161,135,0,0,232,0,0,0,0,0,0,0,72,90,0,0,225,135,0,0,16,1,0,0,0,0,0,0,72,90,0,0,189,135,0,0,56,1,0,0,0,0,0,0,72,90,0,0,3,136,0,0,16,1,0,0,0,0,0,0,132,90,0,0,43,136,0,0,132,90,0,0,45,136,0,0,132,90,0,0,48,136,0,0,132,90,0,0,50,136,0,0,132,90,0,0,52,136,0,0,132,90,0,0,54,136,0,0,132,90,0,0,56,136,0,0,132,90,0,0,58,136,0,0,132,90,0,0,60,136,0,0,132,90,0,0,62,136,0,0,132,90,0,0,64,136,0,0,132,90,0,0,66,136,0,0,132,90,0,0,68,136,0,0,132,90,0,0,70,136,0,0,72,90,0,0,72,136,0,0,240,0,0,0,0,0,0,0,16,0,0,0,168,1,0,0,168,1,0,0,168,1,0,0,168,1,0,0,16,0,0,0,168,1,0,0,168,1,0,0,168,1,0,0,168,1,0,0,168,1,0,0,16,0,0,0,168,1,0,0,168,1,0,0,168,1,0,0,0,0,157,62,0,64,94,62,0,192,4,62,0,128,237,62,0,64,137,62,0,0,0,0,0,192,76,63,0,0,205,61,0,0,0,0,34,109,0,0,42,109,0,0,59,109,0,0,76,109,0,0,91,109,0,0,108,109,0,0,132,109,0,0,146,109,0,0,16,39,0,0,232,3,0,0,248,42,0,0,232,3,0,0,188,52,0,0,232,3,0,0,176,54,0,0,208,7,0,0,224,46,0,0,232,3,0,0,176,54,0,0,232,3,0,0,128,62,0,0,232,3,0,0,32,78,0,0,232,3,0,0,240,85,0,0,232,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,46,0,0,16,39,0,0,16,39,0,0,248,42,0,0,248,42,0,0,128,62,0,0,188,52,0,0,188,52,0,0,152,58,0,0,152,58,0,0,32,78,0,0,128,62,0,0,128,62,0,0,80,70,0,0,80,70,0,0,192,93,0,0,80,70,0,0,80,70,0,0,8,82,0,0,8,82,0,0,0,125,0,0,240,85,0,0,240,85,0,0,96,109,0,0,96,109,0,0,0,250,0,0,112,148,0,0,112,148,0,0,80,195,0,0,80,195,0,0,230,90,52,56,119,78,51,57,211,217,201,57,146,145,51,58,204,96,140,58,97,251,201,58,153,126,9,59,203,128,51,59,213,37,99,59,119,46,140,59,168,138,169,59,69,184,201,59,135,166,236,59,232,46,9,60,174,102,29,60,247,2,51,60,147,255,73,60,79,88,98,60,94,17,124,60,46,145,139,60,189,199,153,60,92,172,168,60,243,60,184,60,129,121,200,60,238,95,217,60,57,240,234,60,99,42,253,60,53,7,8,61,16,204,17,61,205,228,27,61,97,80,38,61,203,14,49,61,0,31,60,61,254,128,71,61,198,52,83,61,63,56,95,61,105,139,107,61,69,46,120,61,105,144,130,61,123,48,137,61,224,247,143,61,138,229,150,61,123,249,157,61,177,51,165,61,33,147,172,61,80,24,180,61,51,194,187,61,79,145,195,61,18,132,203,61,2,155,211,61,31,214,219,61,215,51,228,61,175,180,236,61,33,88,245,61,168,29,254,61,161,130,3,62,242,6,8,62,199,155,12,62,221,64,17,62,52,246,21,62,69,187,26,62,17,144,31,62,84,116,36,62,203,103,41,62,51,106,46,62,141,123,51,62,82,155,56,62,197,201,61,62,28,6,67,62,89,80,72,62,122,168,77,62,183,13,83,62,82,128,88,62,8,0,94,62,84,140,99,62,242,36,105,62,37,202,110,62,36,123,116,62,172,55,122,62,0,0,128,62,171,233,130,62,249,216,133,62,133,205,136,62,80,199,139,62,55,198,142,62,247,201,145,62,179,210,148,62,38,224,151,62,15,242,154,62,108,8,158,62,28,35,161,62,255,65,164,62,208,100,167,62,177,139,170,62,28,182,173,62,84,228,176,62,211,21,180,62,186,74,183,62,232,130,186,62,249,189,189,62,13,252,192,62,226,60,196,62,86,128,199,62,71,198,202,62,149,14,206,62,251,88,209,62,122,165,212,62,241,243,215,62,28,68,219,62,217,149,222,62,8,233,225,62,167,61,229,62,83,147,232,62,12,234,235,62,175,65,239,62,28,154,242,62,14,243,245,62,136,76,249,62,34,166,252,62,0,0,0,63,239,172,1,63,188,89,3,63,121,6,5,63,242,178,6,63,41,95,8,63,250,10,10,63,86,182,11,63,44,97,13,63,124,11,15,63,19,181,16,63,242,93,18,63,8,6,20,63,67,173,21,63,130,83,23,63,182,248,24,63,220,156,26,63,213,63,28,63,143,225,29,63,249,129,31,63,4,33,33,63,140,190,34,63,163,90,36,63,23,245,37,63,214,141,39,63,242,36,41,63,40,186,42,63,152,77,44,63,1,223,45,63,114,110,47,63,202,251,48,63,249,134,50,63,237,15,52,63,167,150,53,63,4,27,55,63,229,156,56,63,88,28,58,63,61,153,59,63,131,19,61,63,42,139,62,63,0,0,64,63,21,114,65,63,55,225,66,63,119,77,68,63,195,182,69,63,235,28,71,63,254,127,72,63,236,223,73,63,146,60,75,63,225,149,76,63,234,235,77,63,121,62,79,63,143,141,80,63,43,217,81,63,29,33,83,63,115,101,84,63,13,166,85,63,235,226,86,63,252,27,88,63,47,81,89,63,115,130,90,63,201,175,91,63,14,217,92,63,67,254,93,63,88,31,95,63,75,60,96,63,252,84,97,63,106,105,98,63,133,121,99,63,60,133,100,63,160,140,101,63,126,143,102,63,214,141,103,63,186,135,104,63,246,124,105,63,156,109,106,63,138,89,107,63,209,64,108,63,79,35,109,63,4,1,110,63,241,217,110,63,243,173,111,63,28,125,112,63,73,71,113,63,124,12,114,63,180,204,114,63,240,135,115,63,16,62,116,63,19,239,116,63,250,154,117,63,179,65,118,63,63,227,118,63,141,127,119,63,173,22,120,63,126,168,120,63,1,53,121,63,52,188,121,63,24,62,122,63,157,186,122,63,194,49,123,63,119,163,123,63,187,15,124,63,159,118,124,63,2,216,124,63,244,51,125,63,101,138,125,63,68,219,125,63,179,38,126,63,143,108,126,63,235,172,126,63,163,231,126,63,218,28,127,63,127,76,127,63,129,118,127,63,2,155,127,63,208,185,127,63,28,211,127,63,197,230,127,63,203,244,127,63,47,253,127,63,0,0,128,63,2,0,0,0,4,0,0,0,6,0,0,0,8,0,0,0,10,0,0,0,12,0,0,0,14,0,0,0,16,0,0,0,20,0,0,0,24,0,0,0,28,0,0,0,32,0,0,0,40,0,0,0,48,0,0,0,56,0,0,0,68,0,0,0,80,0,0,0,96,0,0,0,120,0,0,0,1,0,0,0,2,0,0,0,4,0,0,0,6,0,0,0,8,0,0,0,10,0,0,0,12,0,0,0,14,0,0,0,16,0,0,0,20,0,0,0,24,0,0,0,28,0,0,0,32,0,0,0,40,0,0,0,48,0,0,0,56,0,0,0,68,0,0,0,80,0,0,0,96,0,0,0,120,0,0,0,160,0,0,0,200,0,0,0,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,208,37,180,62,151,57,173,62,9,165,159,62,250,237,139,62,205,172,101,62,248,169,42,62,52,48,210,61,90,241,13,61,90,241,13,189,52,48,210,189,248,169,42,190,205,172,101,190,250,237,139,190,9,165,159,190,151,57,173,190,208,37,180,190,135,138,177,62,27,131,150,62,96,35,73,62,196,66,141,61,196,66,141,189,96,35,73,190,27,131,150,190,135,138,177,190,135,138,177,190,27,131,150,190,96,35,73,190,196,66,141,189,196,66,141,61,96,35,73,62,27,131,150,62,135,138,177,62,151,57,173,62,205,172,101,62,90,241,13,61,248,169,42,190,9,165,159,190,208,37,180,190,250,237,139,190,52,48,210,189,52,48,210,61,250,237,139,62,208,37,180,62,9,165,159,62,248,169,42,62,90,241,13,189,205,172,101,190,151,57,173,190,125,61,167,62,210,139,10,62,210,139,10,190,125,61,167,190,125,61,167,190,210,139,10,190,210,139,10,62,125,61,167,62,125,61,167,62,210,139,10,62,210,139,10,190,125,61,167,190,125,61,167,190,210,139,10,190,210,139,10,62,125,61,167,62,9,165,159,62,90,241,13,61,250,237,139,190,151,57,173,190,52,48,210,189,205,172,101,62,208,37,180,62,248,169,42,62,248,169,42,190,208,37,180,190,205,172,101,190,52,48,210,61,151,57,173,62,250,237,139,62,90,241,13,189,9,165,159,190,27,131,150,62,196,66,141,189,135,138,177,190,96,35,73,190,96,35,73,62,135,138,177,62,196,66,141,61,27,131,150,190,27,131,150,190,196,66,141,61,135,138,177,62,96,35,73,62,96,35,73,190,135,138,177,190,196,66,141,189,27,131,150,62,250,237,139,62,248,169,42,190,151,57,173,190,90,241,13,61,208,37,180,62,52,48,210,61,9,165,159,190,205,172,101,190,205,172,101,62,9,165,159,62,52,48,210,189,208,37,180,190,90,241,13,189,151,57,173,62,248,169,42,62,250,237,139,190,22,235,181,64,30,107,94,64,35,164,226,63,185,197,204,63,91,124,113,64,184,115,10,64,116,96,161,63,136,245,142,63,19,155,245,63,0,0,0,0,5,193,35,61,233,125,163,61,37,150,244,61,226,116,34,62,172,28,74,62,221,37,113,62,52,186,139,62,180,119,158,62,228,191,176,62,173,136,194,62,37,201,211,62,24,122,228,62,24,149,244,62,200,10,2,63,28,124,9,63,73,157,16,63,202,109,23,63,192,237,29,63,159,29,36,63,84,254,41,63,46,145,47,63,224,215,52,63,99,212,57,63,240,136,62,63,211,247,66,63,171,35,71,63,23,15,75,63,216,188,78,63,173,47,82,63,106,106,85,63,206,111,88,63,154,66,91,63,142,229,93,63,75,91,96,63,110,166,98,63,100,201,100,63,155,198,102,63,111,160,104,63,247,88,106,63,128,242,107,63,223,110,109,63,11,208,110,63,202,23,112,63,224,71,113,63,225,97,114,63,77,103,115,63,150,89,116,63,12,58,117,63,255,9,118,63,138,202,118,63,187,124,119,63,192,33,120,63,98,186,120,63,157,71,121,63,75,202,121,63,36,67,122,63,242,178,122,63,59,26,123,63,200,121,123,63,32,210,123,63,200,35,124,63,55,111,124,63,242,180,124,63,94,245,124,63,224,48,125,63,236,103,125,63,183,154,125,63,180,201,125,63,6,245,125,63,17,29,126,63,24,66,126,63,78,100,126,63,211,131,126,63,253,160,126,63,237,187,126,63,195,212,126,63,179,235,126,63,239,0,127,63,135,20,127,63,141,38,127,63,67,55,127,63,170,70,127,63,227,84,127,63,15,98,127,63,47,110,127,63,100,121,127,63,190,131,127,63,63,141,127,63,24,150,127,63,56,158,127,63,194,165,127,63,163,172,127,63,16,179,127,63,245,184,127,63,119,190,127,63,114,195,127,63,25,200,127,63,108,204,127,63,91,208,127,63,6,212,127,63,111,215,127,63,131,218,127,63,102,221,127,63,21,224,127,63,130,226,127,63,205,228,127,63,230,230,127,63,205,232,127,63,146,234,127,63,70,236,127,63,200,237,127,63,40,239,127,63,120,240,127,63,166,241,127,63,195,242,127,63,191,243,127,63,186,244,127,63,148,245,127,63,94,246,127,63,39,247,127,63,207,247,127,63,119,248,127,63,253,248,127,63,148,249,127,63,9,250,127,63,127,250,127,63,244,250,127,63,89,251,127,63,173,251,127,63,1,252,127,63,84,252,127,63,152,252,127,63,219,252,127,63,30,253,127,63,80,253,127,63,130,253,127,63,181,253,127,63,231,253,127,63,9,254,127,63,59,254,127,63,93,254,127,63,126,254,127,63,143,254,127,63,176,254,127,63,210,254,127,63,227,254,127,63,244,254,127,63,21,255,127,63,38,255,127,63,55,255,127,63,71,255,127,63,88,255,127,63,88,255,127,63,105,255,127,63,122,255,127,63,122,255,127,63,139,255,127,63,155,255,127,63,155,255,127,63,155,255,127,63,172,255,127,63,172,255,127,63,189,255,127,63,189,255,127,63,189,255,127,63,206,255,127,63,206,255,127,63,206,255,127,63,206,255,127,63,206,255,127,63,222,255,127,63,222,255,127,63,222,255,127,63,222,255,127,63,222,255,127,63,222,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,92,201,154,191,92,181,225,188,29,102,249,60,41,7,147,189,76,199,183,189,254,214,206,61,107,200,73,189,213,203,143,61,162,63,153,60,131,208,139,59,7,3,132,61,170,154,224,189,251,30,245,189,156,141,17,188,11,14,47,62,98,192,50,62,25,231,135,190,14,59,130,189,104,203,145,190,133,66,136,191,57,185,79,62,205,228,19,64,254,212,48,192,107,127,215,190,71,229,50,63,144,218,206,64,190,165,135,61,26,70,155,61,241,153,81,61,23,176,46,61,228,249,236,61,194,18,135,190,137,197,57,188,107,74,66,190,44,114,190,189,15,94,147,190,234,136,189,61,164,240,234,60,161,171,163,188,103,180,69,190,98,101,132,62,179,149,151,60,242,210,237,61,140,77,203,61,221,29,0,188,97,51,136,190,116,69,145,62,227,199,40,65,110,133,40,191,198,53,86,63,106,222,81,65,36,209,160,192,56,103,140,191,137,42,151,189,64,184,167,60,103,126,53,60,37,104,2,187,152,220,139,59,239,146,24,62,41,174,154,61,238,207,229,61,197,96,84,189,236,162,232,60,105,97,197,60,53,77,78,189,26,24,25,190,227,199,8,190,182,159,12,190,150,33,238,61,117,202,115,62,250,97,164,61,125,168,30,61,218,27,188,61,180,142,129,64,129,149,79,64,2,43,55,191,225,93,2,65,218,44,239,193,246,40,148,63,255,147,255,189,102,233,185,60,124,187,64,189,90,0,9,189,207,206,19,61,20,106,55,61,121,110,41,187,165,84,157,188,137,151,231,189,90,72,224,61,75,81,51,189,51,156,28,61,194,238,34,188,128,99,31,190,82,12,48,62,141,123,99,190,91,8,6,191,166,34,58,189,54,144,14,191,23,244,66,63,23,217,44,192,69,13,98,191,113,29,99,63,107,15,63,63,168,25,186,190,127,137,184,62,66,91,14,61,15,97,124,188,56,153,225,59,58,135,27,188,169,33,128,61,86,182,79,189,178,164,23,61,110,10,117,60,67,86,119,61,71,94,145,189,118,138,21,189,47,196,202,61,104,185,34,189,150,10,146,62,113,231,2,62,77,45,27,190,59,29,136,62,111,117,170,189,14,67,85,61,140,214,101,63,202,224,224,62,144,131,64,192,163,1,248,63,103,68,209,190,54,172,153,62,227,194,181,191,69,74,243,61,178,70,61,189,146,230,79,61,22,83,196,188,77,235,128,189,165,98,8,188,160,53,223,189,183,222,5,189,46,143,213,61,96,168,136,189,8,242,66,61,75,175,141,61,63,127,107,189,121,33,13,190,10,242,83,190,129,236,37,190,88,114,85,190,45,39,17,62,57,41,148,190,154,153,73,191,163,146,186,61,240,50,51,62,10,46,2,192,198,80,68,64,133,124,156,63,95,210,6,64,48,139,159,61,171,63,98,190,60,106,12,62,216,26,128,189,100,118,150,189,195,14,51,62,84,195,14,190,131,32,198,61,103,30,170,61,167,7,101,190,13,250,210,61,147,139,209,189,146,6,103,62,123,20,30,62,83,93,64,62,22,226,15,188,77,188,3,62,60,50,190,190,86,68,245,190,73,76,32,62,106,48,141,63,196,124,161,191,19,13,178,61,28,181,18,190,57,185,11,64,18,218,56,192,38,27,207,61,119,219,157,190,203,101,99,62,140,44,105,190,51,31,12,188,188,93,47,60,26,189,253,59,149,207,151,188,8,181,250,60,252,55,111,190,62,86,165,61,13,54,245,188,175,150,27,62,31,19,137,190,22,143,70,61,87,93,7,62,150,148,107,190,235,59,183,62,168,114,154,61,167,149,226,61,103,155,163,191,174,216,83,64,156,192,84,63,188,118,89,190,203,161,165,193,252,24,147,191,62,46,0,61,22,207,170,188,109,194,3,188,13,228,52,60,76,23,226,60,94,191,253,58,3,71,93,188,3,132,201,187,99,6,79,61,150,27,49,188,190,138,88,58,58,177,199,188,119,103,165,190,169,211,139,61,238,8,15,191,175,7,211,189,41,34,51,62,108,152,1,190,136,13,214,189,43,79,216,62,52,234,139,189,171,91,185,191,106,189,51,63,173,78,54,63,236,24,215,190,201,60,38,64,232,221,243,188,27,145,57,189,185,75,7,189,85,29,13,189,165,90,213,188,35,17,122,189,144,195,187,61,245,244,209,60,72,108,215,189,184,241,157,61,150,18,184,189,131,161,62,190,154,92,164,190,4,27,103,190,120,11,52,62,56,129,129,62,107,40,61,63,2,212,26,64,153,129,234,61,4,200,160,190,198,164,27,63,129,178,221,63,87,38,6,192,164,253,27,191,240,80,152,63,51,53,233,61,233,239,53,190,169,237,160,189,98,49,178,190,76,105,194,189,155,132,156,188,254,240,171,62,96,4,109,189,194,104,6,62,43,18,243,189,64,75,7,190,254,95,117,190,119,167,65,58,2,102,62,190,146,232,5,190,239,116,223,190,94,16,17,190,187,191,16,61,20,198,91,189,132,137,197,189,111,45,99,62,109,168,248,63,76,137,228,191,91,211,116,64,35,190,111,64,182,185,23,64,227,170,182,191,215,183,61,61,62,230,104,189,170,229,88,61,29,114,211,189,226,147,174,190,198,194,208,61,79,145,79,191,195,98,52,62,3,119,240,62,144,222,203,60,19,213,219,189,99,71,19,190,169,61,59,189,229,122,71,63,75,144,17,190,9,129,33,61,106,161,36,62,200,38,53,191,91,181,27,191,126,24,137,63,124,155,162,191,249,189,17,64,54,205,203,64,10,20,5,63,165,73,85,192,70,122,1,190,179,80,193,189,15,198,217,60,14,62,126,61,52,147,57,60,169,249,130,190,29,176,150,189,125,219,130,189,206,112,195,189,88,226,81,190,21,24,149,59,62,81,99,61,5,105,38,190,235,230,18,191,183,124,132,62,140,185,75,62,61,164,179,60,75,230,192,190,43,50,2,191,22,24,157,189,25,142,39,191,248,165,143,64,103,237,88,64,227,25,22,192,193,57,49,193,167,116,139,64,15,127,213,63,227,129,82,189,253,114,140,189,204,192,55,188,190,157,243,57,254,123,112,190,116,92,173,190,227,167,17,190,212,126,43,190,24,177,15,190,150,176,214,189,48,100,213,189,144,204,52,60,123,190,230,189,57,165,178,61,42,224,46,190,69,155,179,189,224,157,252,61,43,133,32,190,158,208,75,62,116,208,101,189,126,54,102,63,242,249,167,61,143,194,165,191,164,231,241,60,55,166,17,64,235,228,112,191,169,2,36,188,156,111,228,189,154,93,7,190,171,9,226,189,126,29,24,61,207,152,147,188,19,0,45,188,234,106,161,60,33,229,39,61,192,163,92,189,78,155,209,189,224,208,64,189,139,78,54,62,105,25,137,190,231,167,216,189,95,207,215,189,194,73,127,61,52,190,47,189,194,195,52,62,247,234,35,190,168,58,18,192,101,141,246,191,116,98,95,62,180,188,26,65,146,116,83,64,160,55,225,191,122,200,4,62,228,73,242,61,246,36,16,62,235,223,138,61,12,62,77,59,137,205,108,188,56,33,254,188,96,209,200,188,25,60,12,62,132,189,25,62,45,11,230,61,121,161,154,189,35,221,143,190,130,83,127,190,19,129,46,191,240,31,1,61,12,6,151,62,139,187,38,61,202,197,144,62,4,57,176,190,69,129,234,192,30,81,97,190,142,119,15,191,191,154,239,191,3,62,227,192,179,210,8,65,196,66,5,64,192,93,118,62,189,24,162,63,174,156,253,60,179,152,140,191,122,142,92,63,186,189,196,191,106,106,137,63,198,138,140,64,99,180,38,192,82,12,192,62,126,200,251,61,169,231,85,59,40,244,70,63,137,7,2,192,108,206,113,191,82,242,128,64,216,127,133,190,63,111,14,63,148,220,97,190,2,183,226,191,40,212,91,191,230,150,194,191,215,190,72,191,25,32,177,62,201,21,72,189,50,146,165,190,160,168,64,191,202,112,4,63,170,96,96,63,69,100,184,191,174,185,195,190,108,236,198,191,0,0,128,63,0,0,0,64,0,0,64,64,0,0,128,64,0,0,160,64,0,0,192,64,0,0,224,64,0,0,0,65,0,0,128,65,0,0,192,65,0,0,16,66,0,0,48,66,0,0,72,66,0,0,96,66,0,0,120,66,0,0,134,66,0,0,144,66,0,0,158,66,0,0,176,66,0,0,212,66,0,0,6,67,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,64,64,0,0,64,64,0,0,128,64,0,0,160,64,0,0,192,64,0,0,0,65,0,0,0,65,149,139,0,0,55,152,0,0,255,165,0,0,4,181,0,0,103,197,0,0,69,215,0,0,193,234,0,0,255,255,0,0,128,187,0,0,120,0,0,0,21,0,0,0,21,0,0,0,0,154,89,63,0,0,0,0,0,0,128,63,0,0,128,63,220,90,0,0,3,0,0,0,8,0,0,0,120,0,0,0,11,0,0,0,58,110,0,0,8,91,0,0,36,21,0,0,128,7,0,0,3,0,0,0,4,23,0,0,60,38,0,0,116,38,0,0,172,38,0,0,228,38,0,0,136,1,0,0,58,98,0,0,33,111,0,0,169,112,0,0,106,28,141,56,82,187,30,58,8,105,220,58,130,237,87,59,137,99,178,59,3,42,5,60,48,220,57,60,180,62,119,60,28,163,158,60,209,242,197,60,254,134,241,60,155,171,16,61,5,173,42,61,132,194,70,61,83,230,100,61,17,137,130,61,135,159,147,61,203,178,165,61,209,190,184,61,58,191,204,61,84,175,225,61,20,138,247,61,14,37,7,62,217,244,18,62,95,49,31,62,104,215,43,62,138,227,56,62,48,82,70,62,148,31,84,62,191,71,98,62,142,198,112,62,176,151,127,62,82,91,135,62,96,15,143,62,152,229,150,62,121,219,158,62,112,238,166,62,216,27,175,62,251,96,183,62,17,187,191,62,70,39,200,62,183,162,208,62,120,42,217,62,148,187,225,62,12,83,234,62,222,237,242,62,6,137,251,62,190,16,2,63,31,90,6,63,36,159,10,63,80,222,14,63,43,22,19,63,65,69,23,63,37,106,27,63,115,131,31,63,206,143,35,63,230,141,39,63,116,124,43,63,63,90,47,63,25,38,51,63,231,222,54,63,153,131,58,63,51,19,62,63,197,140,65,63,119,239,68,63,127,58,72,63,39,109,75,63,206,134,78,63,229,134,81,63,241,108,84,63,142,56,87,63,105,233,89,63,69,127,92,63,250,249,94,63,115,89,97,63,175,157,99,63,193,198,101,63,207,212,103,63,17,200,105,63,210,160,107,63,110,95,109,63,80,4,111,63,244,143,112,63,230,2,114,63,189,93,115,63,31,161,116,63,191,205,117,63,87,228,118,63,176,229,119,63,151,210,120,63,227,171,121,63,115,114,122,63,39,39,123,63,231,202,123,63,157,94,124,63,53,227,124,63,156,89,125,63,189,194,125,63,134,31,126,63,222,112,126,63,171,183,126,63,207,244,126,63,38,41,127,63,134,85,127,63,190,122,127,63,150,153,127,63,204,178,127,63,20,199,127,63,28,215,127,63,130,227,127,63,221,236,127,63,182,243,127,63,138,248,127,63,200,251,127,63,214,253,127,63,7,255,127,63,165,255,127,63,232,255,127,63,253,255,127,63,0,0,128,63,224,1,0,0,135,136,8,59,255,255,255,255,5,0,96,0,3,0,32,0,4,0,8,0,2,0,4,0,4,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,50,91,0,0,60,23,0,0,0,0,0,0,0,0,128,63,0,0,0,128,99,250,127,63,191,117,86,188,139,233,127,63,10,113,214,188,121,205,127,63,231,206,32,189,47,166,127,63,58,94,86,189,175,115,127,63,19,242,133,189,249,53,127,63,42,175,160,189,18,237,126,63,51,101,187,189,253,152,126,63,4,19,214,189,188,57,126,63,115,183,240,189,85,207,125,63,168,168,5,190,203,89,125,63,187,239,18,190,37,217,124,63,92,48,32,190,103,77,124,63,245,105,45,190,152,182,123,63,243,155,58,190,190,20,123,63,194,197,71,190,226,103,122,63,205,230,84,190,9,176,121,63,130,254,97,190,60,237,120,63,77,12,111,190,132,31,120,63,156,15,124,190,234,70,119,63,238,131,132,190,119,99,118,63,62,250,138,190,54,117,117,63,117,106,145,190,48,124,116,63,76,212,151,190,113,120,115,63,122,55,158,190,3,106,114,63,183,147,164,190,244,80,113,63,188,232,170,190,79,45,112,63,65,54,177,190,33,255,110,63,1,124,183,190,118,198,109,63,180,185,189,190,94,131,108,63,21,239,195,190,231,53,107,63,222,27,202,190,30,222,105,63,201,63,208,190,18,124,104,63,146,90,214,190,212,15,103,63,243,107,220,190,116,153,101,63,170,115,226,190,1,25,100,63,113,113,232,190,141,142,98,63,7,101,238,190,40,250,96,63,39,78,244,190,230,91,95,63,144,44,250,190,215,179,93,63,0,0,0,191,15,2,92,63,27,228,2,191,160,70,90,63,119,194,5,191,158,129,88,63,246,154,8,191,29,179,86,63,119,109,11,191,49,219,84,63,218,57,14,191,239,249,82,63,0,0,17,191,108,15,81,63,202,191,19,191,189,27,79,63,24,121,22,191,248,30,77,63,205,43,25,191,52,25,75,63,202,215,27,191,136,10,73,63,241,124,30,191,10,243,70,63,36,27,33,191,209,210,68,63,70,178,35,191,247,169,66,63,58,66,38,191,147,120,64,63,227,202,40,191,189,62,62,63,37,76,43,191,143,252,59,63,227,197,45,191,34,178,57,63,1,56,48,191,144,95,55,63,101,162,50,191,243,4,53,63,243,4,53,191,101,162,50,63,144,95,55,191,1,56,48,63,34,178,57,191,227,197,45,63,143,252,59,191,37,76,43,63,189,62,62,191,227,202,40,63,147,120,64,191,58,66,38,63,247,169,66,191,70,178,35,63,209,210,68,191,36,27,33,63,10,243,70,191,241,124,30,63,136,10,73,191,202,215,27,63,52,25,75,191,205,43,25,63,248,30,77,191,24,121,22,63,189,27,79,191,202,191,19,63,108,15,81,191,0,0,17,63,239,249,82,191,218,57,14,63,49,219,84,191,119,109,11,63,29,179,86,191,246,154,8,63,158,129,88,191,119,194,5,63,160,70,90,191,27,228,2,63,15,2,92,191,0,0,0,63,215,179,93,191,144,44,250,62,230,91,95,191,39,78,244,62,40,250,96,191,7,101,238,62,141,142,98,191,113,113,232,62,1,25,100,191,170,115,226,62,116,153,101,191,243,107,220,62,212,15,103,191,146,90,214,62,18,124,104,191,201,63,208,62,30,222,105,191,222,27,202,62,231,53,107,191,21,239,195,62,94,131,108,191,180,185,189,62,118,198,109,191,1,124,183,62,33,255,110,191,65,54,177,62,79,45,112,191,188,232,170,62,244,80,113,191,183,147,164,62,3,106,114,191,122,55,158,62,113,120,115,191,76,212,151,62,48,124,116,191,117,106,145,62,54,117,117,191,62,250,138,62,119,99,118,191,238,131,132,62,234,70,119,191,156,15,124,62,132,31,120,191,77,12,111,62,60,237,120,191,130,254,97,62,9,176,121,191,205,230,84,62,226,103,122,191,194,197,71,62,190,20,123,191,243,155,58,62,152,182,123,191,245,105,45,62,103,77,124,191,92,48,32,62,37,217,124,191,187,239,18,62,203,89,125,191,168,168,5,62,85,207,125,191,115,183,240,61,188,57,126,191,4,19,214,61,253,152,126,191,51,101,187,61,18,237,126,191,42,175,160,61,249,53,127,191,19,242,133,61,175,115,127,191,58,94,86,61,47,166,127,191,231,206,32,61,121,205,127,191,10,113,214,60,139,233,127,191,191,117,86,60,99,250,127,191,0,48,141,36,0,0,128,191,191,117,86,188,99,250,127,191,10,113,214,188,139,233,127,191,231,206,32,189,121,205,127,191,58,94,86,189,47,166,127,191,19,242,133,189,175,115,127,191,42,175,160,189,249,53,127,191,51,101,187,189,18,237,126,191,4,19,214,189,253,152,126,191,115,183,240,189,188,57,126,191,168,168,5,190,85,207,125,191,187,239,18,190,203,89,125,191,92,48,32,190,37,217,124,191,245,105,45,190,103,77,124,191,243,155,58,190,152,182,123,191,194,197,71,190,190,20,123,191,205,230,84,190,226,103,122,191,130,254,97,190,9,176,121,191,77,12,111,190,60,237,120,191,156,15,124,190,132,31,120,191,238,131,132,190,234,70,119,191,62,250,138,190,119,99,118,191,117,106,145,190,54,117,117,191,76,212,151,190,48,124,116,191,122,55,158,190,113,120,115,191,183,147,164,190,3,106,114,191,188,232,170,190,244,80,113,191,65,54,177,190,79,45,112,191,1,124,183,190,33,255,110,191,180,185,189,190,118,198,109,191,21,239,195,190,94,131,108,191,222,27,202,190,231,53,107,191,201,63,208,190,30,222,105,191,146,90,214,190,18,124,104,191,243,107,220,190,212,15,103,191,170,115,226,190,116,153,101,191,113,113,232,190,1,25,100,191,7,101,238,190,141,142,98,191,39,78,244,190,40,250,96,191,144,44,250,190,230,91,95,191,0,0,0,191,215,179,93,191,27,228,2,191,15,2,92,191,119,194,5,191,160,70,90,191,246,154,8,191,158,129,88,191,119,109,11,191,29,179,86,191,218,57,14,191,49,219,84,191,0,0,17,191,239,249,82,191,202,191,19,191,108,15,81,191,24,121,22,191,189,27,79,191,205,43,25,191,248,30,77,191,202,215,27,191,52,25,75,191,241,124,30,191,136,10,73,191,36,27,33,191,10,243,70,191,70,178,35,191,209,210,68,191,58,66,38,191,247,169,66,191,227,202,40,191,147,120,64,191,37,76,43,191,189,62,62,191,227,197,45,191,143,252,59,191,1,56,48,191,34,178,57,191,101,162,50,191,144,95,55,191,243,4,53,191,243,4,53,191,144,95,55,191,101,162,50,191,34,178,57,191,1,56,48,191,143,252,59,191,227,197,45,191,189,62,62,191,37,76,43,191,147,120,64,191,227,202,40,191,247,169,66,191,58,66,38,191,209,210,68,191,70,178,35,191,10,243,70,191,36,27,33,191,136,10,73,191,241,124,30,191,52,25,75,191,202,215,27,191,248,30,77,191,205,43,25,191,189,27,79,191,24,121,22,191,108,15,81,191,202,191,19,191,239,249,82,191,0,0,17,191,49,219,84,191,218,57,14,191,29,179,86,191,119,109,11,191,158,129,88,191,246,154,8,191,160,70,90,191,119,194,5,191,15,2,92,191,27,228,2,191,215,179,93,191,0,0,0,191,230,91,95,191,144,44,250,190,40,250,96,191,39,78,244,190,141,142,98,191,7,101,238,190,1,25,100,191,113,113,232,190,116,153,101,191,170,115,226,190,212,15,103,191,243,107,220,190,18,124,104,191,146,90,214,190,30,222,105,191,201,63,208,190,231,53,107,191,222,27,202,190,94,131,108,191,21,239,195,190,118,198,109,191,180,185,189,190,33,255,110,191,1,124,183,190,79,45,112,191,65,54,177,190,244,80,113,191,188,232,170,190,3,106,114,191,183,147,164,190,113,120,115,191,122,55,158,190,48,124,116,191,76,212,151,190,54,117,117,191,117,106,145,190,119,99,118,191,62,250,138,190,234,70,119,191,238,131,132,190,132,31,120,191,156,15,124,190,60,237,120,191,77,12,111,190,9,176,121,191,130,254,97,190,226,103,122,191,205,230,84,190,190,20,123,191,194,197,71,190,152,182,123,191,243,155,58,190,103,77,124,191,245,105,45,190,37,217,124,191,92,48,32,190,203,89,125,191,187,239,18,190,85,207,125,191,168,168,5,190,188,57,126,191,115,183,240,189,253,152,126,191,4,19,214,189,18,237,126,191,51,101,187,189,249,53,127,191,42,175,160,189,175,115,127,191,19,242,133,189,47,166,127,191,58,94,86,189,121,205,127,191,231,206,32,189,139,233,127,191,10,113,214,188,99,250,127,191,191,117,86,188,0,0,128,191,0,48,13,165,99,250,127,191,191,117,86,60,139,233,127,191,10,113,214,60,121,205,127,191,231,206,32,61,47,166,127,191,58,94,86,61,175,115,127,191,19,242,133,61,249,53,127,191,42,175,160,61,18,237,126,191,51,101,187,61,253,152,126,191,4,19,214,61,188,57,126,191,115,183,240,61,85,207,125,191,168,168,5,62,203,89,125,191,187,239,18,62,37,217,124,191,92,48,32,62,103,77,124,191,245,105,45,62,152,182,123,191,243,155,58,62,190,20,123,191,194,197,71,62,226,103,122,191,205,230,84,62,9,176,121,191,130,254,97,62,60,237,120,191,77,12,111,62,132,31,120,191,156,15,124,62,234,70,119,191,238,131,132,62,119,99,118,191,62,250,138,62,54,117,117,191,117,106,145,62,48,124,116,191,76,212,151,62,113,120,115,191,122,55,158,62,3,106,114,191,183,147,164,62,244,80,113,191,188,232,170,62,79,45,112,191,65,54,177,62,33,255,110,191,1,124,183,62,118,198,109,191,180,185,189,62,94,131,108,191,21,239,195,62,231,53,107,191,222,27,202,62,30,222,105,191,201,63,208,62,18,124,104,191,146,90,214,62,212,15,103,191,243,107,220,62,116,153,101,191,170,115,226,62,1,25,100,191,113,113,232,62,141,142,98,191,7,101,238,62,40,250,96,191,39,78,244,62,230,91,95,191,144,44,250,62,215,179,93,191,0,0,0,63,15,2,92,191,27,228,2,63,160,70,90,191,119,194,5,63,158,129,88,191,246,154,8,63,29,179,86,191,119,109,11,63,49,219,84,191,218,57,14,63,239,249,82,191,0,0,17,63,108,15,81,191,202,191,19,63,189,27,79,191,24,121,22,63,248,30,77,191,205,43,25,63,52,25,75,191,202,215,27,63,136,10,73,191,241,124,30,63,10,243,70,191,36,27,33,63,209,210,68,191,70,178,35,63,247,169,66,191,58,66,38,63,147,120,64,191,227,202,40,63,189,62,62,191,37,76,43,63,143,252,59,191,227,197,45,63,34,178,57,191,1,56,48,63,144,95,55,191,101,162,50,63,243,4,53,191,243,4,53,63,101,162,50,191,144,95,55,63,1,56,48,191,34,178,57,63,227,197,45,191,143,252,59,63,37,76,43,191,189,62,62,63,227,202,40,191,147,120,64,63,58,66,38,191,247,169,66,63,70,178,35,191,209,210,68,63,36,27,33,191,10,243,70,63,241,124,30,191,136,10,73,63,202,215,27,191,52,25,75,63,205,43,25,191,248,30,77,63,24,121,22,191,189,27,79,63,202,191,19,191,108,15,81,63,0,0,17,191,239,249,82,63,218,57,14,191,49,219,84,63,119,109,11,191,29,179,86,63,246,154,8,191,158,129,88,63,119,194,5,191,160,70,90,63,27,228,2,191,15,2,92,63,0,0,0,191,215,179,93,63,144,44,250,190,230,91,95,63,39,78,244,190,40,250,96,63,7,101,238,190,141,142,98,63,113,113,232,190,1,25,100,63,170,115,226,190,116,153,101,63,243,107,220,190,212,15,103,63,146,90,214,190,18,124,104,63,201,63,208,190,30,222,105,63,222,27,202,190,231,53,107,63,21,239,195,190,94,131,108,63,180,185,189,190,118,198,109,63,1,124,183,190,33,255,110,63,65,54,177,190,79,45,112,63,188,232,170,190,244,80,113,63,183,147,164,190,3,106,114,63,122,55,158,190,113,120,115,63,76,212,151,190,48,124,116,63,117,106,145,190,54,117,117,63,62,250,138,190,119,99,118,63,238,131,132,190,234,70,119,63,156,15,124,190,132,31,120,63,77,12,111,190,60,237,120,63,130,254,97,190,9,176,121,63,205,230,84,190,226,103,122,63,194,197,71,190,190,20,123,63,243,155,58,190,152,182,123,63,245,105,45,190,103,77,124,63,92,48,32,190,37,217,124,63,187,239,18,190,203,89,125,63,168,168,5,190,85,207,125,63,115,183,240,189,188,57,126,63,4,19,214,189,253,152,126,63,51,101,187,189,18,237,126,63,42,175,160,189,249,53,127,63,19,242,133,189,175,115,127,63,58,94,86,189,47,166,127,63,231,206,32,189,121,205,127,63,10,113,214,188,139,233,127,63,191,117,86,188,99,250,127,63,0,200,83,165,0,0,128,63,191,117,86,60,99,250,127,63,10,113,214,60,139,233,127,63,231,206,32,61,121,205,127,63,58,94,86,61,47,166,127,63,19,242,133,61,175,115,127,63,42,175,160,61,249,53,127,63,51,101,187,61,18,237,126,63,4,19,214,61,253,152,126,63,115,183,240,61,188,57,126,63,168,168,5,62,85,207,125,63,187,239,18,62,203,89,125,63,92,48,32,62,37,217,124,63,245,105,45,62,103,77,124,63,243,155,58,62,152,182,123,63,194,197,71,62,190,20,123,63,205,230,84,62,226,103,122,63,130,254,97,62,9,176,121,63,77,12,111,62,60,237,120,63,156,15,124,62,132,31,120,63,238,131,132,62,234,70,119,63,62,250,138,62,119,99,118,63,117,106,145,62,54,117,117,63,76,212,151,62,48,124,116,63,122,55,158,62,113,120,115,63,183,147,164,62,3,106,114,63,188,232,170,62,244,80,113,63,65,54,177,62,79,45,112,63,1,124,183,62,33,255,110,63,180,185,189,62,118,198,109,63,21,239,195,62,94,131,108,63,222,27,202,62,231,53,107,63,201,63,208,62,30,222,105,63,146,90,214,62,18,124,104,63,243,107,220,62,212,15,103,63,170,115,226,62,116,153,101,63,113,113,232,62,1,25,100,63,7,101,238,62,141,142,98,63,39,78,244,62,40,250,96,63,144,44,250,62,230,91,95,63,0,0,0,63,215,179,93,63,27,228,2,63,15,2,92,63,119,194,5,63,160,70,90,63,246,154,8,63,158,129,88,63,119,109,11,63,29,179,86,63,218,57,14,63,49,219,84,63,0,0,17,63,239,249,82,63,202,191,19,63,108,15,81,63,24,121,22,63,189,27,79,63,205,43,25,63,248,30,77,63,202,215,27,63,52,25,75,63,241,124,30,63,136,10,73,63,36,27,33,63,10,243,70,63,70,178,35,63,209,210,68,63,58,66,38,63,247,169,66,63,227,202,40,63,147,120,64,63,37,76,43,63,189,62,62,63,227,197,45,63,143,252,59,63,1,56,48,63,34,178,57,63,101,162,50,63,144,95,55,63,243,4,53,63,243,4,53,63,144,95,55,63,101,162,50,63,34,178,57,63,1,56,48,63,143,252,59,63,227,197,45,63,189,62,62,63,37,76,43,63,147,120,64,63,227,202,40,63,247,169,66,63,58,66,38,63,209,210,68,63,70,178,35,63,10,243,70,63,36,27,33,63,136,10,73,63,241,124,30,63,52,25,75,63,202,215,27,63,248,30,77,63,205,43,25,63,189,27,79,63,24,121,22,63,108,15,81,63,202,191,19,63,239,249,82,63,0,0,17,63,49,219,84,63,218,57,14,63,29,179,86,63,119,109,11,63,158,129,88,63,246,154,8,63,160,70,90,63,119,194,5,63,15,2,92,63,27,228,2,63,215,179,93,63,0,0,0,63,230,91,95,63,144,44,250,62,40,250,96,63,39,78,244,62,141,142,98,63,7,101,238,62,1,25,100,63,113,113,232,62,116,153,101,63,170,115,226,62,212,15,103,63,243,107,220,62,18,124,104,63,146,90,214,62,30,222,105,63,201,63,208,62,231,53,107,63,222,27,202,62,94,131,108,63,21,239,195,62,118,198,109,63,180,185,189,62,33,255,110,63,1,124,183,62,79,45,112,63,65,54,177,62,244,80,113,63,188,232,170,62,3,106,114,63,183,147,164,62,113,120,115,63,122,55,158,62,48,124,116,63,76,212,151,62,54,117,117,63,117,106,145,62,119,99,118,63,62,250,138,62,234,70,119,63,238,131,132,62,132,31,120,63,156,15,124,62,60,237,120,63,77,12,111,62,9,176,121,63,130,254,97,62,226,103,122,63,205,230,84,62,190,20,123,63,194,197,71,62,152,182,123,63,243,155,58,62,103,77,124,63,245,105,45,62,37,217,124,63,92,48,32,62,203,89,125,63,187,239,18,62,85,207,125,63,168,168,5,62,188,57,126,63,115,183,240,61,253,152,126,63,4,19,214,61,18,237,126,63,51,101,187,61,249,53,127,63,42,175,160,61,175,115,127,63,19,242,133,61,47,166,127,63,58,94,86,61,121,205,127,63,231,206,32,61,139,233,127,63,10,113,214,60,99,250,127,63,191,117,86,60,240,0,0,0,137,136,136,59,1,0,0,0,5,0,48,0,3,0,16,0,4,0,4,0,4,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,242,94,0,0,60,23,0,0,0,0,0,0,120,0,0,0,136,136,8,60,2,0,0,0,5,0,24,0,3,0,8,0,2,0,4,0,4,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,210,96,0,0,60,23,0,0,0,0,0,0,60,0,0,0,137,136,136,60,3,0,0,0,5,0,12,0,3,0,4,0,4,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,194,97,0,0,60,23,0,0,0,0,0,0,255,255,127,63,142,255,127,63,106,254,127,63,147,252,127,63,7,250,127,63,200,246,127,63,214,242,127,63,48,238,127,63,214,232,127,63,200,226,127,63,7,220,127,63,147,212,127,63,107,204,127,63,143,195,127,63,0,186,127,63,189,175,127,63,199,164,127,63,29,153,127,63,192,140,127,63,176,127,127,63,236,113,127,63,118,99,127,63,75,84,127,63,110,68,127,63,222,51,127,63,154,34,127,63,163,16,127,63,250,253,126,63,157,234,126,63,141,214,126,63,203,193,126,63,86,172,126,63,46,150,126,63,83,127,126,63,198,103,126,63,134,79,126,63,148,54,126,63,239,28,126,63,152,2,126,63,143,231,125,63,211,203,125,63,102,175,125,63,70,146,125,63,116,116,125,63,241,85,125,63,188,54,125,63,213,22,125,63,60,246,124,63,242,212,124,63,246,178,124,63,73,144,124,63,235,108,124,63,219,72,124,63,27,36,124,63,169,254,123,63,135,216,123,63,180,177,123,63,48,138,123,63,252,97,123,63,23,57,123,63,130,15,123,63,61,229,122,63,72,186,122,63,162,142,122,63,77,98,122,63,72,53,122,63,148,7,122,63,48,217,121,63,29,170,121,63,90,122,121,63,233,73,121,63,200,24,121,63,249,230,120,63],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE), allocate([123,180,120,63,78,129,120,63,115,77,120,63,234,24,120,63,178,227,119,63,205,173,119,63,58,119,119,63,249,63,119,63,10,8,119,63,110,207,118,63,37,150,118,63,47,92,118,63,140,33,118,63,60,230,117,63,64,170,117,63,151,109,117,63,66,48,117,63,65,242,116,63,148,179,116,63,59,116,116,63,55,52,116,63,135,243,115,63,44,178,115,63,38,112,115,63,118,45,115,63,26,234,114,63,20,166,114,63,100,97,114,63,10,28,114,63,5,214,113,63,87,143,113,63,0,72,113,63,255,255,112,63,85,183,112,63,2,110,112,63,6,36,112,63,98,217,111,63,21,142,111,63,32,66,111,63,132,245,110,63,63,168,110,63,83,90,110,63,192,11,110,63,134,188,109,63,165,108,109,63,29,28,109,63,239,202,108,63,27,121,108,63,161,38,108,63,128,211,107,63,187,127,107,63,80,43,107,63,64,214,106,63,140,128,106,63,50,42,106,63,53,211,105,63,147,123,105,63,77,35,105,63,100,202,104,63,216,112,104,63,168,22,104,63,213,187,103,63,96,96,103,63,72,4,103,63,143,167,102,63,51,74,102,63,54,236,101,63,151,141,101,63,87,46,101,63,119,206,100,63,245,109,100,63,212,12,100,63,18,171,99,63,177,72,99,63,176,229,98,63,16,130,98,63,209,29,98,63,243,184,97,63,119,83,97,63,92,237,96,63,164,134,96,63,78,31,96,63,91,183,95,63,203,78,95,63,158,229,94,63,213,123,94,63,112,17,94,63,110,166,93,63,210,58,93,63,154,206,92,63,198,97,92,63,89,244,91,63,81,134,91,63,174,23,91,63,114,168,90,63,157,56,90,63,46,200,89,63,39,87,89,63,135,229,88,63,79,115,88,63,127,0,88,63,23,141,87,63,24,25,87,63,130,164,86,63,86,47,86,63,147,185,85,63,58,67,85,63,75,204,84,63,199,84,84,63,174,220,83,63,1,100,83,63,191,234,82,63,233,112,82,63,127,246,81,63,130,123,81,63,242,255,80,63,207,131,80,63,26,7,80,63,210,137,79,63,250,11,79,63,144,141,78,63,148,14,78,63,9,143,77,63,237,14,77,63,65,142,76,63,5,13,76,63,59,139,75,63,225,8,75,63,249,133,74,63,131,2,74,63,127,126,73,63,238,249,72,63,207,116,72,63,36,239,71,63,237,104,71,63,41,226,70,63,218,90,70,63,0,211,69,63,155,74,69,63,172,193,68,63,50,56,68,63,47,174,67,63,162,35,67,63,141,152,66,63,239,12,66,63,200,128,65,63,26,244,64,63,229,102,64,63,40,217,63,63,229,74,63,63,27,188,62,63,204,44,62,63,247,156,61,63,157,12,61,63,190,123,60,63,92,234,59,63,117,88,59,63,10,198,58,63,29,51,58,63,173,159,57,63,187,11,57,63,71,119,56,63,81,226,55,63,218,76,55,63,227,182,54,63,107,32,54,63,116,137,53,63,253,241,52,63,7,90,52,63,147,193,51,63,160,40,51,63,48,143,50,63,66,245,49,63,216,90,49,63,241,191,48,63,142,36,48,63,175,136,47,63,85,236,46,63,129,79,46,63,50,178,45,63,105,20,45,63,39,118,44,63,107,215,43,63,55,56,43,63,139,152,42,63,103,248,41,63,204,87,41,63,186,182,40,63,50,21,40,63,51,115,39,63,191,208,38,63,214,45,38,63,121,138,37,63,167,230,36,63,97,66,36,63,169,157,35,63,125,248,34,63,223,82,34,63,207,172,33,63,77,6,33,63,91,95,32,63,248,183,31,63,37,16,31,63,226,103,30,63,48,191,29,63,16,22,29,63,129,108,28,63,132,194,27,63,26,24,27,63,67,109,26,63,0,194,25,63,81,22,25,63,54,106,24,63,177,189,23,63,193,16,23,63,103,99,22,63,163,181,21,63,118,7,21,63,225,88,20,63,228,169,19,63,127,250,18,63,179,74,18,63,128,154,17,63,231,233,16,63,232,56,16,63,132,135,15,63,187,213,14,63,142,35,14,63,254,112,13,63,10,190,12,63,179,10,12,63,250,86,11,63,223,162,10,63,99,238,9,63,134,57,9,63,73,132,8,63,172,206,7,63,175,24,7,63,84,98,6,63,155,171,5,63,131,244,4,63,15,61,4,63,61,133,3,63,15,205,2,63,134,20,2,63,161,91,1,63,97,162,0,63,143,209,255,62,167,93,254,62,14,233,252,62,194,115,251,62,198,253,249,62,27,135,248,62,193,15,247,62,186,151,245,62,6,31,244,62,168,165,242,62,158,43,241,62,236,176,239,62,145,53,238,62,144,185,236,62,232,60,235,62,154,191,233,62,169,65,232,62,21,195,230,62,223,67,229,62,8,196,227,62,145,67,226,62,124,194,224,62,200,64,223,62,120,190,221,62,140,59,220,62,6,184,218,62,230,51,217,62,46,175,215,62,223,41,214,62,249,163,212,62,125,29,211,62,110,150,209,62,204,14,208,62,151,134,206,62,210,253,204,62,125,116,203,62,153,234,201,62,39,96,200,62,40,213,198,62,159,73,197,62,138,189,195,62,236,48,194,62,198,163,192,62,25,22,191,62,230,135,189,62,45,249,187,62,241,105,186,62,50,218,184,62,241,73,183,62,47,185,181,62,238,39,180,62,47,150,178,62,242,3,177,62,57,113,175,62,4,222,173,62,86,74,172,62,47,182,170,62,144,33,169,62,122,140,167,62,239,246,165,62,239,96,164,62,124,202,162,62,151,51,161,62,64,156,159,62,122,4,158,62,68,108,156,62,161,211,154,62,145,58,153,62,22,161,151,62,48,7,150,62,225,108,148,62,41,210,146,62,11,55,145,62,135,155,143,62,158,255,141,62,81,99,140,62,162,198,138,62,145,41,137,62,32,140,135,62,80,238,133,62,34,80,132,62,151,177,130,62,176,18,129,62,222,230,126,62,169,167,123,62,195,103,120,62,47,39,117,62,238,229,113,62,4,164,110,62,115,97,107,62,60,30,104,62,98,218,100,62,232,149,97,62,207,80,94,62,26,11,91,62,204,196,87,62,230,125,84,62,107,54,81,62,93,238,77,62,191,165,74,62,146,92,71,62,218,18,68,62,151,200,64,62,206,125,61,62,128,50,58,62,174,230,54,62,93,154,51,62,141,77,48,62,66,0,45,62,125,178,41,62,66,100,38,62,145,21,35,62,110,198,31,62,219,118,28,62,218,38,25,62,109,214,21,62,152,133,18,62,91,52,15,62,186,226,11,62,183,144,8,62,84,62,5,62,148,235,1,62,240,48,253,61,6,138,246,61,113,226,239,61,51,58,233,61,79,145,226,61,207,231,219,61,181,61,213,61,3,147,206,61,192,231,199,61,242,59,193,61,156,143,186,61,195,226,179,61,108,53,173,61,155,135,166,61,85,217,159,61,159,42,153,61,126,123,146,61,246,203,139,61,11,28,133,61,135,215,124,61,70,118,111,61,93,20,98,61,214,177,84,61,185,78,71,61,16,235,57,61,229,134,44,61,64,34,31,61,44,189,17,61,178,87,4,61,181,227,237,60,96,23,211,60,118,74,184,60,11,125,157,60,50,175,130,60,250,193,79,60,254,36,26,60,42,15,201,59,153,167,59,59,46,125,214,185,210,70,113,187,171,222,227,187,166,140,39,188,129,41,93,188,225,98,137,188,160,48,164,188,236,253,190,188,179,202,217,188,224,150,244,188,49,177,7,189,147,22,21,189,140,123,34,189,19,224,47,189,30,68,61,189,165,167,74,189,157,10,88,189,254,108,101,189,190,206,114,189,234,23,128,189,27,200,134,189,237,119,141,189,92,39,148,189,99,214,154,189,253,132,161,189,38,51,168,189,217,224,174,189,17,142,181,189,202,58,188,189,254,230,194,189,170,146,201,189,200,61,208,189,84,232,214,189,74,146,221,189,164,59,228,189,93,228,234,189,114,140,241,189,221,51,248,189,154,218,254,189,82,192,2,190,252,18,6,190,71,101,9,190,50,183,12,190,186,8,16,190,221,89,19,190,152,170,22,190,234,250,25,190,208,74,29,190,71,154,32,190,78,233,35,190,225,55,39,190,0,134,42,190,166,211,45,190,211,32,49,190,131,109,52,190,181,185,55,190,101,5,59,190,147,80,62,190,58,155,65,190,90,229,68,190,240,46,72,190,249,119,75,190,116,192,78,190,93,8,82,190,179,79,85,190,115,150,88,190,156,220,91,190,42,34,95,190,27,103,98,190,109,171,101,190,31,239,104,190,44,50,108,190,148,116,111,190,84,182,114,190,106,247,117,190,211,55,121,190,141,119,124,190,150,182,127,190,117,122,129,190,69,25,131,190,185,183,132,190,208,85,134,190,136,243,135,190,225,144,137,190,218,45,139,190,112,202,140,190,164,102,142,190,116,2,144,190,223,157,145,190,228,56,147,190,129,211,148,190,182,109,150,190,129,7,152,190,226,160,153,190,215,57,155,190,95,210,156,190,121,106,158,190,35,2,160,190,94,153,161,190,38,48,163,190,125,198,164,190,96,92,166,190,206,241,167,190,198,134,169,190,71,27,171,190,80,175,172,190,224,66,174,190,245,213,175,190,143,104,177,190,173,250,178,190,77,140,180,190,110,29,182,190,16,174,183,190,48,62,185,190,207,205,186,190,234,92,188,190,130,235,189,190,148,121,191,190,31,7,193,190,35,148,194,190,159,32,196,190,145,172,197,190,248,55,199,190,211,194,200,190,34,77,202,190,226,214,203,190,19,96,205,190,181,232,206,190,197,112,208,190,66,248,209,190,45,127,211,190,131,5,213,190,67,139,214,190,109,16,216,190,255,148,217,190,249,24,219,190,89,156,220,190,29,31,222,190,70,161,223,190,211,34,225,190,193,163,226,190,16,36,228,190,190,163,229,190,204,34,231,190,56,161,232,190,0,31,234,190,36,156,235,190,162,24,237,190,122,148,238,190,171,15,240,190,51,138,241,190,18,4,243,190,70,125,244,190,207,245,245,190,170,109,247,190,217,228,248,190,88,91,250,190,40,209,251,190,71,70,253,190,181,186,254,190,56,23,0,191,187,208,0,191,228,137,1,191,178,66,2,191,37,251,2,191,59,179,3,191,246,106,4,191,83,34,5,191,83,217,5,191,245,143,6,191,56,70,7,191,29,252,7,191,162,177,8,191,199,102,9,191,140,27,10,191,240,207,10,191,243,131,11,191,147,55,12,191,209,234,12,191,172,157,13,191,36,80,14,191,56,2,15,191,232,179,15,191,50,101,16,191,24,22,17,191,151,198,17,191,176,118,18,191,99,38,19,191,174,213,19,191,145,132,20,191,13,51,21,191,31,225,21,191,200,142,22,191,8,60,23,191,221,232,23,191,72,149,24,191,72,65,25,191,220,236,25,191,4,152,26,191,192,66,27,191,15,237,27,191,240,150,28,191,99,64,29,191,104,233,29,191,254,145,30,191,37,58,31,191,220,225,31,191,35,137,32,191,250,47,33,191,95,214,33,191,82,124,34,191,212,33,35,191,227,198,35,191,127,107,36,191,167,15,37,191,92,179,37,191,157,86,38,191,104,249,38,191,191,155,39,191,160,61,40,191,11,223,40,191,255,127,41,191,125,32,42,191,131,192,42,191,17,96,43,191,39,255,43,191,196,157,44,191,232,59,45,191,146,217,45,191,195,118,46,191,121,19,47,191,180,175,47,191,115,75,48,191,183,230,48,191,127,129,49,191,203,27,50,191,153,181,50,191,234,78,51,191,189,231,51,191,18,128,52,191,232,23,53,191,63,175,53,191,22,70,54,191,110,220,54,191,69,114,55,191,156,7,56,191,113,156,56,191,197,48,57,191,150,196,57,191,230,87,58,191,178,234,58,191,252,124,59,191,194,14,60,191,3,160,60,191,193,48,61,191,250,192,61,191,173,80,62,191,219,223,62,191,131,110,63,191,165,252,63,191,64,138,64,191,83,23,65,191,224,163,65,191,228,47,66,191,96,187,66,191,83,70,67,191,190,208,67,191,158,90,68,191,246,227,68,191,194,108,69,191,5,245,69,191,188,124,70,191,232,3,71,191,137,138,71,191,157,16,72,191,37,150,72,191,32,27,73,191,142,159,73,191,111,35,74,191,193,166,74,191,134,41,75,191,188,171,75,191,99,45,76,191,122,174,76,191,2,47,77,191,250,174,77,191,98,46,78,191,57,173,78,191,126,43,79,191,51,169,79,191,85,38,80,191,230,162,80,191,228,30,81,191,80,154,81,191,40,21,82,191,109,143,82,191,30,9,83,191,59,130,83,191,195,250,83,191,183,114,84,191,22,234,84,191,223,96,85,191,18,215,85,191,176,76,86,191,183,193,86,191,39,54,87,191,0,170,87,191,66,29,88,191,236,143,88,191,254,1,89,191,120,115,89,191,89,228,89,191,162,84,90,191,81,196,90,191,102,51,91,191,226,161,91,191,195,15,92,191,10,125,92,191,183,233,92,191,200,85,93,191,62,193,93,191,24,44,94,191,87,150,94,191,249,255,94,191,255,104,95,191,104,209,95,191,51,57,96,191,98,160,96,191,243,6,97,191,229,108,97,191,58,210,97,191,240,54,98,191,8,155,98,191,128,254,98,191,89,97,99,191,146,195,99,191,44,37,100,191,37,134,100,191,126,230,100,191,55,70,101,191,78,165,101,191,197,3,102,191,154,97,102,191,205,190,102,191,94,27,103,191,77,119,103,191,154,210,103,191,68,45,104,191,75,135,104,191,174,224,104,191,111,57,105,191,139,145,105,191,4,233,105,191,217,63,106,191,9,150,106,191,148,235,106,191,123,64,107,191,188,148,107,191,89,232,107,191,79,59,108,191,160,141,108,191,75,223,108,191,79,48,109,191,173,128,109,191,101,208,109,191,117,31,110,191,223,109,110,191,161,187,110,191,187,8,111,191,46,85,111,191,248,160,111,191,27,236,111,191,149,54,112,191,103,128,112,191,144,201,112,191,15,18,113,191,230,89,113,191,19,161,113,191,151,231,113,191,113,45,114,191,160,114,114,191,38,183,114,191,1,251,114,191,50,62,115,191,184,128,115,191,148,194,115,191,196,3,116,191,73,68,116,191,34,132,116,191,80,195,116,191,210,1,117,191,168,63,117,191,210,124,117,191,80,185,117,191,33,245,117,191,69,48,118,191,189,106,118,191,136,164,118,191,166,221,118,191,22,22,119,191,217,77,119,191,239,132,119,191,87,187,119,191,17,241,119,191,29,38,120,191,122,90,120,191,42,142,120,191,43,193,120,191,125,243,120,191,33,37,121,191,22,86,121,191,92,134,121,191,242,181,121,191,218,228,121,191,18,19,122,191,154,64,122,191,115,109,122,191,157,153,122,191,22,197,122,191,223,239,122,191,248,25,123,191,97,67,123,191,26,108,123,191,34,148,123,191,122,187,123,191,32,226,123,191,23,8,124,191,92,45,124,191,240,81,124,191,211,117,124,191,5,153,124,191,134,187,124,191,85,221,124,191,115,254,124,191,223,30,125,191,154,62,125,191,163,93,125,191,250,123,125,191,159,153,125,191,146,182,125,191,211,210,125,191,98,238,125,191,63,9,126,191,105,35,126,191,225,60,126,191,167,85,126,191,186,109,126,191,27,133,126,191,201,155,126,191,196,177,126,191,13,199,126,191,162,219,126,191,133,239,126,191,181,2,127,191,50,21,127,191,252,38,127,191,19,56,127,191,118,72,127,191,39,88,127,191,36,103,127,191,110,117,127,191,5,131,127,191,232,143,127,191,25,156,127,191,149,167,127,191,95,178,127,191,116,188,127,191,215,197,127,191,133,206,127,191,129,214,127,191,200,221,127,191,93,228,127,191,61,234,127,191,106,239,127,191,227,243,127,191,169,247,127,191,187,250,127,191,25,253,127,191,196,254,127,191,187,255,127,191,250,255,127,63,57,254,127,63,169,249,127,63,75,242,127,63,30,232,127,63,35,219,127,63,89,203,127,63,193,184,127,63,91,163,127,63,40,139,127,63,39,112,127,63,90,82,127,63,191,49,127,63,88,14,127,63,37,232,126,63,38,191,126,63,92,147,126,63,200,100,126,63,105,51,126,63,65,255,125,63,79,200,125,63,150,142,125,63,20,82,125,63,203,18,125,63,188,208,124,63,231,139,124,63,77,68,124,63,239,249,123,63,205,172,123,63,233,92,123,63,67,10,123,63,221,180,122,63,182,92,122,63,209,1,122,63,46,164,121,63,206,67,121,63,178,224,120,63,220,122,120,63,76,18,120,63,4,167,119,63,4,57,119,63,79,200,118,63,228,84,118,63,198,222,117,63,246,101,117,63,117,234,116,63,68,108,116,63,101,235,115,63,218,103,115,63,163,225,114,63,194,88,114,63,57,205,113,63,9,63,113,63,52,174,112,63,187,26,112,63,160,132,111,63,228,235,110,63,138,80,110,63,147,178,109,63,1,18,109,63,213,110,108,63,17,201,107,63,183,32,107,63,201,117,106,63,73,200,105,63,57,24,105,63,155,101,104,63,111,176,103,63,186,248,102,63,124,62,102,63,184,129,101,63,111,194,100,63,164,0,100,63,90,60,99,63,145,117,98,63,76,172,97,63,142,224,96,63,89,18,96,63,174,65,95,63,145,110,94,63,3,153,93,63,8,193,92,63,160,230,91,63,207,9,91,63,152,42,90,63,251,72,89,63,253,100,88,63,159,126,87,63,229,149,86,63,208,170,85,63,99,189,84,63,161,205,83,63,140,219,82,63,39,231,81,63,117,240,80,63,121,247,79,63,52,252,78,63,171,254,77,63,223,254,76,63,212,252,75,63,140,248,74,63,10,242,73,63,82,233,72,63,101,222,71,63,71,209,70,63,251,193,69,63,132,176,68,63,229,156,67,63,32,135,66,63,58,111,65,63,52,85,64,63,19,57,63,63,216,26,62,63,136,250,60,63,38,216,59,63,180,179,58,63,54,141,57,63,175,100,56,63,34,58,55,63,147,13,54,63,5,223,52,63,124,174,51,63,249,123,50,63,130,71,49,63,25,17,48,63,194,216,46,63,127,158,45,63,86,98,44,63,72,36,43,63,90,228,41,63,144,162,40,63,235,94,39,63,113,25,38,63,37,210,36,63,9,137,35,63,35,62,34,63,117,241,32,63,4,163,31,63,210,82,30,63,228,0,29,63,61,173,27,63,225,87,26,63,211,0,25,63,25,168,23,63,180,77,22,63,170,241,20,63,253,147,19,63,178,52,18,63,204,211,16,63,80,113,15,63,66,13,14,63,164,167,12,63,124,64,11,63,205,215,9,63,154,109,8,63,233,1,7,63,189,148,5,63,25,38,4,63,3,182,2,63,126,68,1,63,28,163,255,62,110,186,252,62,250,206,249,62,202,224,246,62,228,239,243,62,81,252,240,62,26,6,238,62,71,13,235,62,224,17,232,62,237,19,229,62,119,19,226,62,135,16,223,62,36,11,220,62,88,3,217,62,42,249,213,62,164,236,210,62,205,221,207,62,175,204,204,62,82,185,201,62,191,163,198,62,254,139,195,62,24,114,192,62,22,86,189,62,0,56,186,62,224,23,183,62,189,245,179,62,161,209,176,62,149,171,173,62,162,131,170,62,207,89,167,62,39,46,164,62,178,0,161,62,121,209,157,62,133,160,154,62,223,109,151,62,143,57,148,62,160,3,145,62,26,204,141,62,5,147,138,62,107,88,135,62,86,28,132,62,205,222,128,62,182,63,123,62,16,191,116,62,187,59,110,62,201,181,103,62,77,45,97,62,89,162,90,62,255,20,84,62,81,133,77,62,99,243,70,62,70,95,64,62,13,201,57,62,202,48,51,62,144,150,44,62,114,250,37,62,130,92,31,62,210,188,24,62,118,27,18,62,127,120,11,62,1,212,4,62,29,92,252,61,114,13,239,61,41,188,225,61,102,104,212,61,78,18,199,61,8,186,185,61,184,95,172,61,132,3,159,61,146,165,145,61,7,70,132,61,18,202,109,61,122,5,83,61,145,62,56,61,164,117,29,61,252,170,2,61,202,189,207,60,86,35,154,60,97,14,73,60,197,167,187,59,61,122,86,186,9,70,241,187,18,221,99,188,80,138,167,188,65,36,221,188,227,93,9,189,35,40,36,189,150,240,62,189,242,182,89,189,234,122,116,189,26,158,135,189,66,253,148,189,200,90,162,189,134,182,175,189,87,16,189,189,22,104,202,189,155,189,215,189,195,16,229,189,105,97,242,189,101,175,255,189,74,125,6,190,104,33,13,190,250,195,19,190,237,100,26,190,46,4,33,190,172,161,39,190,83,61,46,190,16,215,52,190,210,110,59,190,134,4,66,190,25,152,72,190,121,41,79,190,148,184,85,190,86,69,92,190,174,207,98,190,137,87,105,190,214,220,111,190,128,95,118,190,120,223,124,190,84,174,129,190,129,235,132,190,56,39,136,190,114,97,139,190,36,154,142,190,69,209,145,190,205,6,149,190,179,58,152,190,238,108,155,190,116,157,158,190,61,204,161,190,64,249,164,190,115,36,168,190,207,77,171,190,73,117,174,190,218,154,177,190,120,190,180,190,27,224,183,190,186,255,186,190,75,29,190,190,199,56,193,190,37,82,196,190,91,105,199,190,97,126,202,190,48,145,205,190,188,161,208,190,0,176,211,190,241,187,214,190,135,197,217,190,186,204,220,190,129,209,223,190,211,211,226,190,169,211,229,190,250,208,232,190,189,203,235,190,234,195,238,190,120,185,241,190,96,172,244,190,154,156,247,190,28,138,250,190,223,116,253,190,109,46,0,191,3,161,1,191,45,18,3,191,230,129,4,191,44,240,5,191,250,92,7,191,76,200,8,191,30,50,10,191,108,154,11,191,50,1,13,191,108,102,14,191,23,202,15,191,45,44,17,191,172,140,18,191,144,235,19,191,213,72,21,191,118,164,22,191,113,254,23,191,192,86,25,191,98,173,26,191,81,2,28,191,138,85,29,191,9,167,30,191,203,246,31,191,204,68,33,191,9,145,34,191,124,219,35,191,36,36,37,191,253,106,38,191,2,176,39,191,48,243,40,191,132,52,42,191,250,115,43,191,143,177,44,191,63,237,45,191,7,39,47,191,227,94,48,191,208,148,49,191,202,200,50,191,206,250,51,191,218,42,53,191,232,88,54,191,247,132,55,191,2,175,56,191,7,215,57,191,3,253,58,191,241,32,60,191,207,66,61,191,154,98,62,191,79,128,63,191,233,155,64,191,104,181,65,191,198,204,66,191,1,226,67,191,23,245,68,191,3,6,70,191,196,20,71,191,86,33,72,191,182,43,73,191,225,51,74,191,212,57,75,191,141,61,76,191,9,63,77,191,68,62,78,191,61,59,79,191,240,53,80,191,90,46,81,191,121,36,82,191,74,24,83,191,202,9,84,191,247,248,84,191,206,229,85,191,77,208,86,191,112,184,87,191,55,158,88,191,156,129,89,191,160,98,90,191,62,65,91,191,117,29,92,191,65,247,92,191,162,206,93,191,148,163,94,191,20,118,95,191,34,70,96,191,186,19,97,191,217,222,97,191,127,167,98,191,169,109,99,191,84,49,100,191,126,242,100,191,38,177,101,191,73,109,102,191,229,38,103,191,248,221,103,191,128,146,104,191,123,68,105,191,232,243,105,191,195,160,106,191,12,75,107,191,192,242,107,191,222,151,108,191,100,58,109,191,80,218,109,191,160,119,110,191,83,18,111,191,102,170,111,191,217,63,112,191,169,210,112,191,213,98,113,191,91,240,113,191,58,123,114,191,113,3,115,191,253,136,115,191,222,11,116,191,17,140,116,191,150,9,117,191,107,132,117,191,143,252,117,191,0,114,118,191,189,228,118,191,198,84,119,191,24,194,119,191,178,44,120,191,147,148,120,191,187,249,120,191,40,92,121,191,217,187,121,191,205,24,122,191,2,115,122,191,121,202,122,191,47,31,123,191,36,113,123,191,88,192,123,191,201,12,124,191,118,86,124,191,95,157,124,191,130,225,124,191,224,34,125,191,119,97,125,191,71,157,125,191,79,214,125,191,142,12,126,191,4,64,126,191,176,112,126,191,146,158,126,191,169,201,126,191,245,241,126,191,117,23,127,191,41,58,127,191,16,90,127,191,43,119,127,191,120,145,127,191,248,168,127,191,170,189,127,191,143,207,127,191,165,222,127,191,237,234,127,191,102,244,127,191,17,251,127,191,237,254,127,191,234,255,127,63,229,248,127,63,166,230,127,63,45,201,127,63,124,160,127,63,149,108,127,63,121,45,127,63,44,227,126,63,177,141,126,63,11,45,126,63,63,193,125,63,82,74,125,63,72,200,124,63,40,59,124,63,247,162,123,63,189,255,122,63,128,81,122,63,72,152,121,63,30,212,120,63,9,5,120,63,19,43,119,63,70,70,118,63,172,86,117,63,78,92,116,63,56,87,115,63,118,71,114,63,19,45,113,63,28,8,112,63,158,216,110,63,165,158,109,63,64,90,108,63,126,11,107,63,107,178,105,63,25,79,104,63,150,225,102,63,242,105,101,63,62,232,99,63,139,92,98,63,234,198,96,63,109,39,95,63,38,126,93,63,40,203,91,63,133,14,90,63,83,72,88,63,163,120,86,63,139,159,84,63,32,189,82,63,118,209,80,63,163,220,78,63,189,222,76,63,219,215,74,63,19,200,72,63,124,175,70,63,46,142,68,63,65,100,66,63,206,49,64,63,236,246,61,63,180,179,59,63,66,104,57,63,173,20,55,63,16,185,52,63,134,85,50,63,41,234,47,63,21,119,45,63,101,252,42,63,53,122,40,63,161,240,37,63,198,95,35,63,192,199,32,63,172,40,30,63,169,130,27,63,212,213,24,63,74,34,22,63,42,104,19,63,147,167,16,63,164,224,13,63,123,19,11,63,57,64,8,63,253,102,5,63,231,135,2,63,45,70,255,62,91,113,249,62,151,145,243,62,36,167,237,62,69,178,231,62,60,179,225,62,76,170,219,62,186,151,213,62,201,123,207,62,190,86,201,62,223,40,195,62,112,242,188,62,183,179,182,62,251,108,176,62,129,30,170,62,146,200,163,62,115,107,157,62,108,7,151,62,197,156,144,62,199,43,138,62,185,180,131,62,199,111,122,62,33,107,109,62,17,92,96,62,41,67,83,62,253,32,70,62,32,246,56,62,38,195,43,62,164,136,30,62,45,71,17,62,87,255,3,62,110,99,237,61,194,189,210,61,218,14,184,61,222,87,157,61,251,153,130,61,188,172,79,61,101,28,26,61,153,10,201,60,42,167,59,60,193,120,214,186,45,68,113,188,87,215,227,188,76,129,39,189,148,15,93,189,21,74,137,189,90,6,164,189,109,187,190,189,34,104,217,189,78,11,244,189,227,81,7,190,47,152,20,190,247,215,33,190,165,16,47,190,166,65,60,190,100,106,73,190,77,138,86,190,205,160,99,190,80,173,112,190,69,175,125,190,13,83,133,190,158,200,139,190,13,56,146,190,18,161,152,190,102,3,159,190,191,94,165,190,216,178,171,190,105,255,177,190,43,68,184,190,216,128,190,190,42,181,196,190,219,224,202,190,165,3,209,190,69,29,215,190,117,45,221,190,241,51,227,190,118,48,233,190,192,34,239,190,141,10,245,190,155,231,250,190,211,92,0,191,56,64,3,191,219,29,6,191,155,245,8,191,90,199,11,191,247,146,14,191,84,88,17,191,80,23,20,191,205,207,22,191,172,129,25,191,208,44,28,191,26,209,30,191,109,110,33,191,171,4,36,191,183,147,38,191,116,27,41,191,199,155,43,191,147,20,46,191,187,133,48,191,38,239,50,191,183,80,53,191,85,170,55,191,227,251,57,191,74,69,60,191,110,134,62,191,55,191,64,191,139,239,66,191,83,23,69,191,117,54,71,191,218,76,73,191,107,90,75,191,16,95,77,191,179,90,79,191,62,77,81,191,154,54,83,191,179,22,85,191,114,237,86,191,197,186,88,191,149,126,90,191,208,56,92,191,98,233,93,191,56,144,95,191,64,45,97,191,103,192,98,191,156,73,100,191,206,200,101,191,235,61,103,191,227,168,104,191,167,9,106,191,39,96,107,191,84,172,108,191,31,238,109,191,122,37,111,191,88,82,112,191,171,116,113,191,103,140,114,191,127,153,115,191,231,155,116,191,149,147,117,191,126,128,118,191,150,98,119,191,212,57,120,191,47,6,121,191,158,199,121,191,23,126,122,191,148,41,123,191,13,202,123,191,122,95,124,191,213,233,124,191,24,105,125,191,62,221,125,191,64,70,126,191,28,164,126,191,204,246,126,191,77,62,127,191,156,122,127,191,182,171,127,191,153,209,127,191,67,236,127,191,180,251,127,191,166,255,127,63,148,227,127,63,156,154,127,63,204,36,127,63,56,130,126,63,253,178,125,63,63,183,124,63,42,143,123,63,243,58,122,63,212,186,120,63,17,15,119,63,246,55,117,63,213,53,115,63,8,9,113,63,241,177,110,63,249,48,108,63,144,134,105,63,47,179,102,63,83,183,99,63,132,147,96,63,78,72,93,63,69,214,89,63,3,62,86,63,43,128,82,63,101,157,78,63,94,150,74,63,204,107,70,63,106,30,66,63,249,174,61,63,64,30,57,63,13,109,52,63,50,156,47,63,135,172,42,63,235,158,37,63,63,116,32,63,109,45,27,63,97,203,21,63,13,79,16,63,104,185,10,63,107,11,5,63,46,140,254,62,221,212,242,62,241,242,230,62,127,232,218,62,166,183,206,62,136,98,194,62,78,235,181,62,42,84,169,62,81,159,156,62,253,206,143,62,109,229,130,62,206,201,107,62,98,159,81,62,48,80,55,62,211,224,28,62,241,85,2,62,98,104,207,61,124,0,154,61,36,251,72,61,27,164,187,60,243,119,86,187,100,61,241,188,187,192,99,189,103,93,167,189,20,189,220,189,3,251,8,190,115,127,35,190,52,231,61,190,164,45,88,190,38,78,114,190,18,34,134,190,137,5,147,190,52,207,159,190,213,124,172,190,51,12,185,190,26,123,197,190,91,199,209,190,205,238,221,190,80,239,233,190,199,198,245,190,144,185,0,191,38,121,6,191,36,33,12,191,141,176,17,191,102,38,23,191,186,129,28,191,152,193,33,191,21,229,38,191,74,235,43,191,86,211,48,191,91,156,53,191,131,69,58,191,253,205,62,191,252,52,67,191,188,121,71,191,125,155,75,191,132,153,79,191,31,115,83,191,161,39,87,191,99,182,90,191,198,30,94,191,48,96,97,191,15,122,100,191,216,107,103,191,7,53,106,191,31,213,108,191,169,75,111,191,55,152,113,191,98,186,115,191,201,177,117,191,22,126,119,191,246,30,121,191,33,148,122,191,85,221,123,191,89,250,124,191,250,234,125,191,14,175,126,191,116,70,127,191,15,177,127,191,206,238,127,191,0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,3,0,0,0,2,0,0,0,5,0,0,0,2,0,0,0,3,0,0,0,2,0,0,0,3,0,0,0,2,0,0,0,5,0,0,0,2,0,0,0,3,0,0,0,2,0,0,0,0,0,206,64,0,0,200,64,0,0,184,64,0,0,170,64,0,0,162,64,0,0,154,64,0,0,144,64,0,0,140,64,0,0,156,64,0,0,150,64,0,0,146,64,0,0,142,64,0,0,156,64,0,0,148,64,0,0,138,64,0,0,144,64,0,0,140,64,0,0,148,64,0,0,152,64,0,0,142,64,0,0,112,64,0,0,112,64,0,0,112,64,0,0,112,64,0,0,112,64,0,134,107,63,0,20,46,63,0,112,189,62,0,208,76,62,0,0,102,63,0,0,76,63,0,0,38,63,0,0,0,63,15,0,0,0,10,0,0,0,5,0,0,0,6,0,0,0,4,0,0,0,3,0,0,0,0,115,0,0,8,115,0,0,24,115,0,0,56,115,0,0,64,115,0,0,80,115,0,0,112,115,0,0,152,115,0,0,232,115,0,0,136,116,0,0,144,116,0,0,160,116,0,0,0,0,0,0,64,31,0,0,184,36,0,0,236,44,0,0,188,52,0,0,92,68,0,0,168,97,0,0,128,56,1,0,0,0,0,0,40,35,0,0,224,46,0,0,164,56,0,0,68,72,0,0,180,95,0,0,172,138,0,0,128,56,1,0,0,0,0,0,4,41,0,0,176,54,0,0,104,66,0,0,252,83,0,0,84,111,0,0,16,164,0,0,128,56,1,0,222,116,0,0,225,116,0,0,10,103,242,14,86,205,228,29,10,103,242,14,117,82,130,12,89,154,4,25,117,82,130,12,70,17,49,10,237,3,98,20,70,17,49,10,218,2,215,7,249,198,173,15,218,2,215,7,34,182,82,5,218,250,164,10,34,182,82,5,70,243,46,30,43,227,75,14,31,102,128,24,28,44,29,10,218,97,72,18,237,156,244,6,236,48,19,11,227,144,165,4,237,164,29,2,10,223,107,3,1,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,6,0,0,0,1,0,0,0,5,0,0,0,2,0,0,0,15,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,12,0,0,0,3,0,0,0,11,0,0,0,4,0,0,0,14,0,0,0,1,0,0,0,9,0,0,0,6,0,0,0,13,0,0,0,2,0,0,0,10,0,0,0,5,0,0,0,144,69,0,0,80,72,0,0,12,75,0,0,196,77,0,0,120,80,0,0,40,83,0,0,212,85,0,0,60,87,0,0,248,87,0,0,108,88,0,0,184,88,0,0,240,88,0,0,16,89,0,0,40,89,0,0,52,89,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,3,0,0,0,5,0,0,0,7,0,0,0,9,0,0,0,11,0,0,0,13,0,0,0,15,0,0,0,17,0,0,0,19,0,0,0,21,0,0,0,23,0,0,0,25,0,0,0,27,0,0,0,29,0,0,0,31,0,0,0,33,0,0,0,35,0,0,0,37,0,0,0,39,0,0,0,41,0,0,0,43,0,0,0,45,0,0,0,47,0,0,0,49,0,0,0,51,0,0,0,53,0,0,0,55,0,0,0,57,0,0,0,59,0,0,0,61,0,0,0,63,0,0,0,65,0,0,0,67,0,0,0,69,0,0,0,71,0,0,0,73,0,0,0,75,0,0,0,77,0,0,0,79,0,0,0,81,0,0,0,83,0,0,0,85,0,0,0,87,0,0,0,89,0,0,0,91,0,0,0,93,0,0,0,95,0,0,0,97,0,0,0,99,0,0,0,101,0,0,0,103,0,0,0,105,0,0,0,107,0,0,0,109,0,0,0,111,0,0,0,113,0,0,0,115,0,0,0,117,0,0,0,119,0,0,0,121,0,0,0,123,0,0,0,125,0,0,0,127,0,0,0,129,0,0,0,131,0,0,0,133,0,0,0,135,0,0,0,137,0,0,0,139,0,0,0,141,0,0,0,143,0,0,0,145,0,0,0,147,0,0,0,149,0,0,0,151,0,0,0,153,0,0,0,155,0,0,0,157,0,0,0,159,0,0,0,161,0,0,0,163,0,0,0,165,0,0,0,167,0,0,0,169,0,0,0,171,0,0,0,173,0,0,0,175,0,0,0,177,0,0,0,179,0,0,0,181,0,0,0,183,0,0,0,185,0,0,0,187,0,0,0,189,0,0,0,191,0,0,0,193,0,0,0,195,0,0,0,197,0,0,0,199,0,0,0,201,0,0,0,203,0,0,0,205,0,0,0,207,0,0,0,209,0,0,0,211,0,0,0,213,0,0,0,215,0,0,0,217,0,0,0,219,0,0,0,221,0,0,0,223,0,0,0,225,0,0,0,227,0,0,0,229,0,0,0,231,0,0,0,233,0,0,0,235,0,0,0,237,0,0,0,239,0,0,0,241,0,0,0,243,0,0,0,245,0,0,0,247,0,0,0,249,0,0,0,251,0,0,0,253,0,0,0,255,0,0,0,1,1,0,0,3,1,0,0,5,1,0,0,7,1,0,0,9,1,0,0,11,1,0,0,13,1,0,0,15,1,0,0,17,1,0,0,19,1,0,0,21,1,0,0,23,1,0,0,25,1,0,0,27,1,0,0,29,1,0,0,31,1,0,0,33,1,0,0,35,1,0,0,37,1,0,0,39,1,0,0,41,1,0,0,43,1,0,0,45,1,0,0,47,1,0,0,49,1,0,0,51,1,0,0,53,1,0,0,55,1,0,0,57,1,0,0,59,1,0,0,61,1,0,0,63,1,0,0,65,1,0,0,67,1,0,0,69,1,0,0,71,1,0,0,73,1,0,0,75,1,0,0,77,1,0,0,79,1,0,0,81,1,0,0,83,1,0,0,85,1,0,0,87,1,0,0,89,1,0,0,91,1,0,0,93,1,0,0,95,1,0,0,13,0,0,0,25,0,0,0,41,0,0,0,61,0,0,0,85,0,0,0,113,0,0,0,145,0,0,0,181,0,0,0,221,0,0,0,9,1,0,0,57,1,0,0,109,1,0,0,165,1,0,0,225,1,0,0,33,2,0,0,101,2,0,0,173,2,0,0,249,2,0,0,73,3,0,0,157,3,0,0,245,3,0,0,81,4,0,0,177,4,0,0,21,5,0,0,125,5,0,0,233,5,0,0,89,6,0,0,205,6,0,0,69,7,0,0,193,7,0,0,65,8,0,0,197,8,0,0,77,9,0,0,217,9,0,0,105,10,0,0,253,10,0,0,149,11,0,0,49,12,0,0,209,12,0,0,117,13,0,0,29,14,0,0,201,14,0,0,121,15,0,0,45,16,0,0,229,16,0,0,161,17,0,0,97,18,0,0,37,19,0,0,237,19,0,0,185,20,0,0,137,21,0,0,93,22,0,0,53,23,0,0,17,24,0,0,241,24,0,0,213,25,0,0,189,26,0,0,169,27,0,0,153,28,0,0,141,29,0,0,133,30,0,0,129,31,0,0,129,32,0,0,133,33,0,0,141,34,0,0,153,35,0,0,169,36,0,0,189,37,0,0,213,38,0,0,241,39,0,0,17,41,0,0,53,42,0,0,93,43,0,0,137,44,0,0,185,45,0,0,237,46,0,0,37,48,0,0,97,49,0,0,161,50,0,0,229,51,0,0,45,53,0,0,121,54,0,0,201,55,0,0,29,57,0,0,117,58,0,0,209,59,0,0,49,61,0,0,149,62,0,0,253,63,0,0,105,65,0,0,217,66,0,0,77,68,0,0,197,69,0,0,65,71,0,0,193,72,0,0,69,74,0,0,205,75,0,0,89,77,0,0,233,78,0,0,125,80,0,0,21,82,0,0,177,83,0,0,81,85,0,0,245,86,0,0,157,88,0,0,73,90,0,0,249,91,0,0,173,93,0,0,101,95,0,0,33,97,0,0,225,98,0,0,165,100,0,0,109,102,0,0,57,104,0,0,9,106,0,0,221,107,0,0,181,109,0,0,145,111,0,0,113,113,0,0,85,115,0,0,61,117,0,0,41,119,0,0,25,121,0,0,13,123,0,0,5,125,0,0,1,127,0,0,1,129,0,0,5,131,0,0,13,133,0,0,25,135,0,0,41,137,0,0,61,139,0,0,85,141,0,0,113,143,0,0,145,145,0,0,181,147,0,0,221,149,0,0,9,152,0,0,57,154,0,0,109,156,0,0,165,158,0,0,225,160],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+10240), allocate([33,163,0,0,101,165,0,0,173,167,0,0,249,169,0,0,73,172,0,0,157,174,0,0,245,176,0,0,81,179,0,0,177,181,0,0,21,184,0,0,125,186,0,0,233,188,0,0,89,191,0,0,205,193,0,0,69,196,0,0,193,198,0,0,65,201,0,0,197,203,0,0,77,206,0,0,217,208,0,0,105,211,0,0,253,213,0,0,149,216,0,0,49,219,0,0,209,221,0,0,117,224,0,0,29,227,0,0,201,229,0,0,121,232,0,0,45,235,0,0,229,237,0,0,161,240,0,0,63,0,0,0,129,0,0,0,231,0,0,0,121,1,0,0,63,2,0,0,65,3,0,0,135,4,0,0,25,6,0,0,255,7,0,0,65,10,0,0,231,12,0,0,249,15,0,0,127,19,0,0,129,23,0,0,7,28,0,0,25,33,0,0,191,38,0,0,1,45,0,0,231,51,0,0,121,59,0,0,191,67,0,0,193,76,0,0,135,86,0,0,25,97,0,0,127,108,0,0,193,120,0,0,231,133,0,0,249,147,0,0,255,162,0,0,1,179,0,0,7,196,0,0,25,214,0,0,63,233,0,0,129,253,0,0,231,18,1,0,121,41,1,0,63,65,1,0,65,90,1,0,135,116,1,0,25,144,1,0,255,172,1,0,65,203,1,0,231,234,1,0,249,11,2,0,127,46,2,0,129,82,2,0,7,120,2,0,25,159,2,0,191,199,2,0,1,242,2,0,231,29,3,0,121,75,3,0,191,122,3,0,193,171,3,0,135,222,3,0,25,19,4,0,127,73,4,0,193,129,4,0,231,187,4,0,249,247,4,0,255,53,5,0,1,118,5,0,7,184,5,0,25,252,5,0,63,66,6,0,129,138,6,0,231,212,6,0,121,33,7,0,63,112,7,0,65,193,7,0,135,20,8,0,25,106,8,0,255,193,8,0,65,28,9,0,231,120,9,0,249,215,9,0,127,57,10,0,129,157,10,0,7,4,11,0,25,109,11,0,191,216,11,0,1,71,12,0,231,183,12,0,121,43,13,0,191,161,13,0,193,26,14,0,135,150,14,0,25,21,15,0,127,150,15,0,193,26,16,0,231,161,16,0,249,43,17,0,255,184,17,0,1,73,18,0,7,220,18,0,25,114,19,0,63,11,20,0,129,167,20,0,231,70,21,0,121,233,21,0,63,143,22,0,65,56,23,0,135,228,23,0,25,148,24,0,255,70,25,0,65,253,25,0,231,182,26,0,249,115,27,0,127,52,28,0,129,248,28,0,7,192,29,0,25,139,30,0,191,89,31,0,1,44,32,0,231,1,33,0,121,219,33,0,191,184,34,0,193,153,35,0,135,126,36,0,25,103,37,0,127,83,38,0,193,67,39,0,231,55,40,0,249,47,41,0,255,43,42,0,1,44,43,0,7,48,44,0,25,56,45,0,63,68,46,0,129,84,47,0,231,104,48,0,121,129,49,0,63,158,50,0,65,191,51,0,135,228,52,0,25,14,54,0,255,59,55,0,65,110,56,0,231,164,57,0,249,223,58,0,127,31,60,0,129,99,61,0,7,172,62,0,25,249,63,0,191,74,65,0,1,161,66,0,231,251,67,0,121,91,69,0,191,191,70,0,193,40,72,0,135,150,73,0,25,9,75,0,127,128,76,0,193,252,77,0,231,125,79,0,249,3,81,0,255,142,82,0,1,31,84,0,7,180,85,0,25,78,87,0,63,237,88,0,129,145,90,0,231,58,92,0,121,233,93,0,63,157,95,0,65,86,97,0,135,20,99,0,25,216,100,0,255,160,102,0,65,111,104,0,231,66,106,0,249,27,108,0,127,250,109,0,65,1,0,0,169,2,0,0,9,5,0,0,193,8,0,0,65,14,0,0,9,22,0,0,169,32,0,0,193,46,0,0,1,65,0,0,41,88,0,0,9,117,0,0,129,152,0,0,129,195,0,0,9,247,0,0,41,52,1,0,1,124,1,0,193,207,1,0,169,48,2,0,9,160,2,0,65,31,3,0,193,175,3,0,9,83,4,0,169,10,5,0,65,216,5,0,129,189,6,0,41,188,7,0,9,214,8,0,1,13,10,0,1,99,11,0,9,218,12,0,41,116,14,0,129,51,16,0,65,26,18,0,169,42,20,0,9,103,22,0,193,209,24,0,65,109,27,0,9,60,30,0,169,64,33,0,193,125,36,0,1,246,39,0,41,172,43,0,9,163,47,0,129,221,51,0,129,94,56,0,9,41,61,0,41,64,66,0,1,167,71,0,193,96,77,0,169,112,83,0,9,218,89,0,65,160,96,0,193,198,103,0,9,81,111,0,169,66,119,0,65,159,127,0,129,106,136,0,41,168,145,0,9,92,155,0,1,138,165,0,1,54,176,0,9,100,187,0,41,24,199,0,129,86,211,0,65,35,224,0,169,130,237,0,9,121,251,0,193,10,10,1,65,60,25,1,9,18,41,1,169,144,57,1,193,188,74,1,1,155,92,1,41,48,111,1,9,129,130,1,129,146,150,1,129,105,171,1,9,11,193,1,41,124,215,1,1,194,238,1,193,225,6,2,169,224,31,2,9,196,57,2,65,145,84,2,193,77,112,2,9,255,140,2,169,170,170,2,65,86,201,2,129,7,233,2,41,196,9,3,9,146,43,3,1,119,78,3,1,121,114,3,9,158,151,3,41,236,189,3,129,105,229,3,65,28,14,4,169,10,56,4,9,59,99,4,193,179,143,4,65,123,189,4,9,152,236,4,169,16,29,5,193,235,78,5,1,48,130,5,41,228,182,5,9,15,237,5,129,183,36,6,129,228,93,6,9,157,152,6,41,232,212,6,1,205,18,7,193,82,82,7,169,128,147,7,9,94,214,7,65,242,26,8,193,68,97,8,9,93,169,8,169,66,243,8,65,253,62,9,129,148,140,9,41,16,220,9,9,120,45,10,1,212,128,10,1,44,214,10,9,136,45,11,41,240,134,11,129,108,226,11,65,5,64,12,169,194,159,12,9,173,1,13,193,204,101,13,65,42,204,13,9,206,52,14,169,192,159,14,193,10,13,15,1,181,124,15,41,200,238,15,9,77,99,16,129,76,218,16,129,207,83,17,9,223,207,17,41,132,78,18,1,200,207,18,193,179,83,19,169,80,218,19,9,168,99,20,65,195,239,20,193,171,126,21,9,107,16,22,169,10,165,22,65,148,60,23,129,17,215,23,41,140,116,24,9,14,21,25,1,161,184,25,1,79,95,26,9,34,9,27,41,36,182,27,129,95,102,28,65,222,25,29,169,170,208,29,9,207,138,30,193,85,72,31,65,73,9,32,9,180,205,32,169,160,149,33,193,25,97,34,1,42,48,35,41,220,2,36,9,59,217,36,129,81,179,37,147,6,0,0,69,14,0,0,15,28,0,0,17,51,0,0,91,87,0,0,13,142,0,0,119,221,0,0,57,77,1,0,99,230,1,0,149,179,2,0,31,193,3,0,33,29,5,0,171,215,6,0,221,2,9,0,7,179,11,0,201,254,14,0,51,255,18,0,229,207,23,0,47,143,29,0,49,94,36,0,251,96,44,0,173,190,53,0,151,161,64,0,89,55,77,0,3,177,91,0,53,67,108,0,63,38,127,0,65,150,148,0,75,211,172,0,125,33,200,0,39,201,230,0,233,22,9,1,211,91,47,1,133,237,89,1,79,38,137,1,81,101,189,1,155,14,247,1,77,139,54,2,183,73,124,2,121,189,200,2,163,95,28,3,213,174,119,3,95,47,219,3,97,107,71,4,235,242,188,4,29,92,60,5,71,67,198,5,9,75,91,6,115,28,252,6,37,103,169,7,111,225,99,8,113,72,44,9,59,96,3,10,237,243,233,10,215,213,224,11,153,223,232,12,67,242,2,14,117,246,47,15,127,220,112,16,129,156,198,17,139,54,50,19,189,178,180,20,103,33,79,22,41,155,2,24,19,65,208,25,197,60,185,27,143,192,190,29,145,7,226,31,219,85,36,34,141,248,134,36,247,69,11,39,185,157,178,41,227,104,126,44,21,26,112,47,159,45,137,50,161,41,203,53,43,158,55,57,93,37,208,60,135,99,150,64,73,7,140,68,179,201,178,72,101,110,12,77,175,195,154,81,177,162,95,86,123,239,92,91,45,153,148,96,23,154,8,102,217,247,186,107,131,195,173,113,181,25,227,119,191,34,93,126,29,35,0,0,113,77,0,0,145,156,0,0,253,38,1,0,101,12,2,0,233,119,3,0,153,162,5,0,53,214,8,0,45,112,13,0,225,228,19,0,33,195,28,0,237,183,40,0,117,146,56,0,89,72,77,0,41,250,103,0,37,248,137,0,61,199,180,0,81,38,234,0,177,19,44,1,221,210,124,1,133,242,222,1,201,82,85,2,185,43,227,2,21,20,140,3,77,8,84,4,193,113,63,5,65,46,83,6,205,151,148,7,149,140,9,9,57,119,184,10,73,87,168,12,5,202,224,14,93,19,106,17,49,39,77,20,209,178,147,23,189,38,72,27,165,192,117,31,169,149,40,36,217,156,109,41,245,185,82,47,109,200,230,53,161,166,57,61,97,65,92,69,173,159,96,78,181,238,89,88,25,142,92,99,105,28,126,111,229,131,213,124,255,189,0,0,1,168,1,0,143,107,3,0,241,158,6,0,63,35,12,0,193,61,21,0,143,182,35,0,241,252,57,0,255,81,91,0,1,250,139,0,15,117,209,0,113,191,50,1,63,154,184,1,193,220,109,2,15,207,95,3,113,142,158,4,255,123,61,6,1,182,83,8,143,156,252,10,241,97,88,14,63,167,140,18,193,37,197,23,143,101,52,30,241,129,20,38,255,251,167,47,1,156,58,59,15,98,34,73,113,134,192,89,63,138,130,109,193,88,227,132,1,14,4,0,145,33,9,0,17,44,19,0,65,238,37,0,65,79,71,0,145,67,128,0,17,247,221,0,1,70,115,1,1,146,90,2,17,1,184,3,145,53,188,5,65,143,167,8,65,6,206,12,17,178,155,18,145,15,154,26,1,26,118,37,1,76,7,52,145,158,87,71,17,157,172,96,65,166,145,129,35,81,22,0,197,158,50,0,23,185,107,0,153,246,216,0,107,137,160,1,13,196,254,2,31,1,80,5,33,217,29,9,51,108,48,15,213,162,164,24,167,103,8,39,41,253,125,60,123,181,231,91,29,119,29,137,175,160,45,201,173,142,123,0,137,230,25,1,57,150,94,2,61,22,216,4,181,99,119,9,225,40,198,17,33,3,52,32,117,72,130,56,125,87,87,96,191,91,175,2,129,216,39,6,247,132,94,13,233,254,173,27,127,139,235,54,129,183,229,104,23,3,156,193,193,12,255,14,57,106,133,34,25,238,145,75,129,120,43,158,51,225,9,84,32,0,10,0,20,46,100,1,221,121,0,0,188,100,0,0,29,123,0,0,93,123,0,0,111,123,0,0,15,124,0,0,87,124,0,0,60,103,0,0,32,0,16,0,102,38,171,1,159,124,0,0,82,103,0,0,159,126,0,0,223,126,0,0,253,126,0,0,253,127,0,0,69,128,0,0,82,107,0,0,48,117,0,0,112,23,0,0,32,209,255,255,32,209,255,255,0,64,0,0,108,34,0,0,66,15,0,0,18,6,0,0,77,2,0,0,219,0,0,0,237,0,0,0,153,0,0,0,73,0,0,0,30,0,0,0,12,0,0,0,7,0,0,0,0,64,0,0,147,93,0,0,189,112,0,0,237,121,0,0,178,125,0,0,36,127,0,0,0,0,0,0,240,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,5,0,0,0,3,0,0,0,4,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,40,1,0,0,6,0,0,0,7,0,0,0,1,0,0,0,0,0,0,0,88,1,0,0,1,0,0,0,8,0,0,0,3,0,0,0,4,0,0,0,2,0,0,0,0,0,0,0,72,1,0,0,1,0,0,0,9,0,0,0,3,0,0,0,4,0,0,0,3,0,0,0,0,0,0,0,216,1,0,0,1,0,0,0,10,0,0,0,3,0,0,0,4,0,0,0,1,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,0,0,1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,10,0,12,0,14,0,16,0,20,0,24,0,28,0,34,0,40,0,48,0,60,0,78,0,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,8,0,8,0,8,0,16,0,16,0,16,0,21,0,21,0,24,0,29,0,34,0,36,0,0,0,96,0,192,0,32,1,128,1,32,0,128,0,224,0,64,1,160,1,64,0,160,0,0,1,96,1,192,1,8,0,104,0,200,0,40,1,136,1,40,0,136,0,232,0,72,1,168,1,72,0,168,0,8,1,104,1,200,1,16,0,112,0,208,0,48,1,144,1,48,0,144,0,240,0,80,1,176,1,80,0,176,0,16,1,112,1,208,1,24,0,120,0,216,0,56,1,152,1,56,0,152,0,248,0,88,1,184,1,88,0,184,0,24,1,120,1,216,1,4,0,100,0,196,0,36,1,132,1,36,0,132,0,228,0,68,1,164,1,68,0,164,0,4,1,100,1,196,1,12,0,108,0,204,0,44,1,140,1,44,0,140,0,236,0,76,1,172,1,76,0,172,0,12,1,108,1,204,1,20,0,116,0,212,0,52,1,148,1,52,0,148,0,244,0,84,1,180,1,84,0,180,0,20,1,116,1,212,1,28,0,124,0,220,0,60,1,156,1,60,0,156,0,252,0,92,1,188,1,92,0,188,0,28,1,124,1,220,1,1,0,97,0,193,0,33,1,129,1,33,0,129,0,225,0,65,1,161,1,65,0,161,0,1,1,97,1,193,1,9,0,105,0,201,0,41,1,137,1,41,0,137,0,233,0,73,1,169,1,73,0,169,0,9,1,105,1,201,1,17,0,113,0,209,0,49,1,145,1,49,0,145,0,241,0,81,1,177,1,81,0,177,0,17,1,113,1,209,1,25,0,121,0,217,0,57,1,153,1,57,0,153,0,249,0,89,1,185,1,89,0,185,0,25,1,121,1,217,1,5,0,101,0,197,0,37,1,133,1,37,0,133,0,229,0,69,1,165,1,69,0,165,0,5,1,101,1,197,1,13,0,109,0,205,0,45,1,141,1,45,0,141,0,237,0,77,1,173,1,77,0,173,0,13,1,109,1,205,1,21,0,117,0,213,0,53,1,149,1,53,0,149,0,245,0,85,1,181,1,85,0,181,0,21,1,117,1,213,1,29,0,125,0,221,0,61,1,157,1,61,0,157,0,253,0,93,1,189,1,93,0,189,0,29,1,125,1,221,1,2,0,98,0,194,0,34,1,130,1,34,0,130,0,226,0,66,1,162,1,66,0,162,0,2,1,98,1,194,1,10,0,106,0,202,0,42,1,138,1,42,0,138,0,234,0,74,1,170,1,74,0,170,0,10,1,106,1,202,1,18,0,114,0,210,0,50,1,146,1,50,0,146,0,242,0,82,1,178,1,82,0,178,0,18,1,114,1,210,1,26,0,122,0,218,0,58,1,154,1,58,0,154,0,250,0,90,1,186,1,90,0,186,0,26,1,122,1,218,1,6,0,102,0,198,0,38,1,134,1,38,0,134,0,230,0,70,1,166,1,70,0,166,0,6,1,102,1,198,1,14,0,110,0,206,0,46,1,142,1,46,0,142,0,238,0,78,1,174,1,78,0,174,0,14,1,110,1,206,1,22,0,118,0,214,0,54,1,150,1,54,0,150,0,246,0,86,1,182,1,86,0,182,0,22,1,118,1,214,1,30,0,126,0,222,0,62,1,158,1,62,0,158,0,254,0,94,1,190,1,94,0,190,0,30,1,126,1,222,1,3,0,99,0,195,0,35,1,131,1,35,0,131,0,227,0,67,1,163,1,67,0,163,0,3,1,99,1,195,1,11,0,107,0,203,0,43,1,139,1,43,0,139,0,235,0,75,1,171,1,75,0,171,0,11,1,107,1,203,1,19,0,115,0,211,0,51,1,147,1,51,0,147,0,243,0,83,1,179,1,83,0,179,0,19,1,115,1,211,1,27,0,123,0,219,0,59,1,155,1,59,0,155,0,251,0,91,1,187,1,91,0,187,0,27,1,123,1,219,1,7,0,103,0,199,0,39,1,135,1,39,0,135,0,231,0,71,1,167,1,71,0,167,0,7,1,103,1,199,1,15,0,111,0,207,0,47,1,143,1,47,0,143,0,239,0,79,1,175,1,79,0,175,0,15,1,111,1,207,1,23,0,119,0,215,0,55,1,151,1,55,0,151,0,247,0,87,1,183,1,87,0,183,0,23,1,119,1,215,1,31,0,127,0,223,0,63,1,159,1,63,0,159,0,255,0,95,1,191,1,95,0,191,0,31,1,127,1,223,1,0,0,48,0,96,0,144,0,192,0,16,0,64,0,112,0,160,0,208,0,32,0,80,0,128,0,176,0,224,0,4,0,52,0,100,0,148,0,196,0,20,0,68,0,116,0,164,0,212,0,36,0,84,0,132,0,180,0,228,0,8,0,56,0,104,0,152,0,200,0,24,0,72,0,120,0,168,0,216,0,40,0,88,0,136,0,184,0,232,0,12,0,60,0,108,0,156,0,204,0,28,0,76,0,124,0,172,0,220,0,44,0,92,0,140,0,188,0,236,0,1,0,49,0,97,0,145,0,193,0,17,0,65,0,113,0,161,0,209,0,33,0,81,0,129,0,177,0,225,0,5,0,53,0,101,0,149,0,197,0,21,0,69,0,117,0,165,0,213,0,37,0,85,0,133,0,181,0,229,0,9,0,57,0,105,0,153,0,201,0,25,0,73,0,121,0,169,0,217,0,41,0,89,0,137,0,185,0,233,0,13,0,61,0,109,0,157,0,205,0,29,0,77,0,125,0,173,0,221,0,45,0,93,0,141,0,189,0,237,0,2,0,50,0,98,0,146,0,194,0,18,0,66,0,114,0,162,0,210,0,34,0,82,0,130,0,178,0,226,0,6,0,54,0,102,0,150,0,198,0,22,0,70,0,118,0,166,0,214,0,38,0,86,0,134,0,182,0,230,0,10,0,58,0,106,0,154,0,202,0,26,0,74,0,122,0,170,0,218,0,42,0,90,0,138,0,186,0,234,0,14,0,62,0,110,0,158,0,206,0,30,0,78,0,126,0,174,0,222,0,46,0,94,0,142,0,190,0,238,0,3,0,51,0,99,0,147,0,195,0,19,0,67,0,115,0,163,0,211,0,35,0,83,0,131,0,179,0,227,0,7,0,55,0,103,0,151,0,199,0,23,0,71,0,119,0,167,0,215,0,39,0,87,0,135,0,183,0,231,0,11,0,59,0,107,0,155,0,203,0,27,0,75,0,123,0,171,0,219,0,43,0,91,0,139,0,187,0,235,0,15,0,63,0,111,0,159,0,207,0,31,0,79,0,127,0,175,0,223,0,47,0,95,0,143,0,191,0,239,0,0,0,24,0,48,0,72,0,96,0,8,0,32,0,56,0,80,0,104,0,16,0,40,0,64,0,88,0,112,0,4,0,28,0,52,0,76,0,100,0,12,0,36,0,60,0,84,0,108,0,20,0,44,0,68,0,92,0,116,0,1,0,25,0,49,0,73,0,97,0,9,0,33,0,57,0,81,0,105,0,17,0,41,0,65,0,89,0,113,0,5,0,29,0,53,0,77,0,101,0,13,0,37,0,61,0,85,0,109,0,21,0,45,0,69,0,93,0,117,0,2,0,26,0,50,0,74,0,98,0,10,0,34,0,58,0,82,0,106,0,18,0,42,0,66,0,90,0,114,0,6,0,30,0,54,0,78,0,102,0,14,0,38,0,62,0,86,0,110,0,22,0,46,0,70,0,94,0,118,0,3,0,27,0,51,0,75,0,99,0,11,0,35,0,59,0,83,0,107,0,19,0,43,0,67,0,91,0,115,0,7,0,31,0,55,0,79,0,103,0,15,0,39,0,63,0,87,0,111,0,23,0,47,0,71,0,95,0,119,0,0,0,12,0,24,0,36,0,48,0,4,0,16,0,28,0,40,0,52,0,8,0,20,0,32,0,44,0,56,0,1,0,13,0,25,0,37,0,49,0,5,0,17,0,29,0,41,0,53,0,9,0,21,0,33,0,45,0,57,0,2,0,14,0,26,0,38,0,50,0,6,0,18,0,30,0,42,0,54,0,10,0,22,0,34,0,46,0,58,0,3,0,15,0,27,0,39,0,51,0,7,0,19,0,31,0,43,0,55,0,11,0,23,0,35,0,47,0,59,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,41,0,41,0,41,0,82,0,82,0,123,0,164,0,200,0,222,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,0,41,0,41,0,41,0,123,0,123,0,123,0,164,0,164,0,240,0,10,1,27,1,39,1,41,0,41,0,41,0,41,0,41,0,41,0,41,0,41,0,123,0,123,0,123,0,123,0,240,0,240,0,240,0,10,1,10,1,49,1,62,1,72,1,80,1,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,240,0,240,0,240,0,240,0,49,1,49,1,49,1,62,1,62,1,87,1,95,1,102,1,108,1,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,49,1,49,1,49,1,49,1,87,1,87,1,87,1,95,1,95,1,114,1,120,1,126,1,131,1,18,0,29,0,38,0,40,0,46,0,52,0,62,0,84,0,92,202,190,216,182,223,154,226,156,230,120,236,122,244,204,252,52,3,134,11,136,19,100,25,102,29,74,32,66,39,164,53,100,0,240,0,32,0,100,0,205,60,0,48,0,32,42,175,213,201,207,255,64,0,17,0,99,255,97,1,16,254,163,0,39,43,189,86,217,255,6,0,91,0,86,255,186,0,23,0,128,252,192,24,216,77,237,255,220,255,102,0,167,255,232,255,72,1,73,252,8,10,37,62,135,199,61,201,64,0,128,0,134,255,36,0,54,1,0,253,72,2,51,36,69,69,12,0,128,0,18,0,114,255,32,1,139,255,159,252,27,16,123,56,104,2,13,200,246,255,39,0,58,0,210,255,172,255,120,0,184,0,197,254,227,253,4,5,4,21,64,35,230,62,198,196,243,255,0,0,20,0,26,0,5,0,225,255,213,255,252,255,65,0,90,0,7,0,99,255,8,255,212,255,81,2,47,6,52,10,199,12,228,87,5,197,3,0,242,255,236,255,241,255,2,0,25,0,37,0,25,0,240,255,185,255,149,255,177,255,50,0,36,1,111,2,214,3,8,5,184,5,148,107,103,196,17,0,12,0,8,0,1,0,246,255,234,255,226,255,224,255,234,255,3,0,44,0,100,0,168,0,243,0,61,1,125,1,173,1,199,1,189,0,168,253,105,2,103,119,117,0,97,255,210,251,8,116,52,0,221,0,168,246,116,110,252,255,17,2,234,242,229,102,208,255,246,2,140,240,165,93,176,255,137,3,117,239,6,83,157,255,204,3,130,239,102,71,149,255,199,3,139,240,39,59,153,255,128,3,97,242,174,46,165,255,5,3,207,244,94,34,185,255,99,2,161,247,152,22,210,255,169,1,161,250,180,11,0,64,202,69,27,76,255,82,130,90,179,98,162,107,96,117,184,126,154,121,154,121,102,102,184,126,51,115,81,11,10,9,10,9,10,9,239,8,239,8,10,9,252,8,23,9,239,8,72,11,20,10,90,9,63,9,10,9,226,8,226,8,226,8,226,8,146,8,183,9,36,9,36,9,10,9,10,9,10,9,36,9,36,9,63,9,50,9,144,12,206,10,36,9,36,9,10,9,226,8,173,8,159,8,213,8,146,8,156,9,170,9,63,9,90,9,90,9,90,9,90,9,63,9,103,9,10,9,151,13,240,11,79,8,159,8,226,8,226,8,226,8,239,8,10,9,213,8,210,12,69,12,20,10,90,9,199,8,173,8,159,8,146,8,146,8,66,8,0,16,5,15,173,8,60,10,60,10,103,9,10,9,90,9,63,9,26,8,106,12,172,12,63,9,173,8,249,9,130,9,36,9,10,9,119,8,173,8,10,13,160,13,166,10,146,8,213,8,156,9,50,9,63,9,159,8,53,8,50,9,116,9,23,9,63,9,90,9,116,9,116,9,116,9,156,9,63,9,195,14,45,14,130,9,223,9,63,9,226,8,226,8,252,8,159,8,0,8,182,12,153,12,153,10,30,11,143,9,23,9,252,8,252,8,226,8,79,8,191,12,228,12,193,10,246,10,143,9,213,8,213,8,199,8,79,8,53,8,57,11,165,11,73,10,63,9,103,9,50,9,146,8,199,8,199,8,66,8,153,12,125,12,73,10,20,10,226,8,133,8,199,8,173,8,173,8,93,8,106,12,238,12,180,10,103,9,226,8,226,8,226,8,239,8,146,8,66,8,69,12,200,12,156,9,13,8,239,8,196,9,63,9,183,9,130,9,133,8,179,13,210,12,10,9,140,10,87,10,170,9,63,9,90,9,36,9,79,8,95,13,207,13,222,11,240,11,252,8,158,7,173,8,226,8,226,8,226,8,76,13,38,13,39,8,127,10,57,11,50,9,116,9,226,8,170,9,236,9,176,14,160,13,158,7,100,10,81,11,223,9,90,9,63,9,156,9,213,8,212,11,200,12,180,10,72,11,180,10,106,8,79,8,239,8,186,8,199,8,111,14,73,14,233,7,177,7,100,10,140,10,20,10,196,9,23,9,63,9,135,12,85,13,50,9,26,8,72,11,72,11,36,9,183,9,199,8,119,8,10,13,38,13,30,11,220,10,23,9,106,8,226,8,239,8,66,8,13,8,23,9,252,8,133,8,119,8,133,8,63,9,73,10,140,10,140,10,249,9,103,9,130,9,173,8,213,8,173,8,173,8,36,9,116,9,47,10,140,10,222,11,172,12,246,10,72,11,170,9,26,8,252,8,10,9,50,9,76,9,173,8,106,8,79,8,239,8,196,9,233,10,233,10,60,10,20,10,63,9,92,14,129,14,186,8,46,7,133,8,193,10,166,10,113,10,209,9,159,8,233,10,88,12,166,10,249,9,30,11,209,9,133,8,90,9,173,8,133,8,250,0,3,0,6,0,3,0,3,0,3,0,4,0,3,0,3,0,3,0,205,1,73,14,109,11,109,11,109,11,109,11,109,11,109,11,109,11,109,11,109,11,109,11,109,11,147,11,147,11,109,11,30,11,144,12,13,12,156,11,240,11,240,11,194,11,194,11,194,11,147,11,147,11,194,11,156,11,72,11,30,11,30,11,166,10,80,15,174,15,165,11,135,12,135,12,118,11,240,11,30,11,50,12,172,12,109,11,30,11,60,10,249,9,220,10,109,11,188,13,125,12,194,11,31,12,203,11,72,11,109,11,109,11,109,11,109,11,72,11,72,11,72,11,72,11,72,11,193,10,190,19,190,19,118,11,245,13,57,13,240,11,13,12,233,10,88,12,88,12,156,11,30,11,209,9,236,9,193,10,72,11,76,17,53,16,140,10,193,10,156,11,194,11,109,11,30,11,165,11,203,11,109,11,109,11,109,11,109,11,72,11,166,10,36,14,203,11,156,11,240,11,240,11,57,11,246,10,240,11,144,12,231,11,165,11,219,12,219,12,165,11,238,12,175,11,107,20,150,19,236,9,10,13,198,13,57,13,125,12,22,12,48,13,165,11,140,10,87,10,127,10,233,10,30,11,113,10,217,19,54,20,7,18,76,17,156,9,81,11,231,11,135,12,97,12,127,10,180,10,72,11,30,11,233,10,30,11,140,10,50,12,72,11,147,11,109,11,109,11,109,11,109,11,147,11,147,11,147,11,147,11,109,11,109,11,147,11,147,11,147,11,106,16,135,12,165,11,31,12,194,11,72,11,72,11,109,11,156,11,57,11,100,11,203,11,156,11,194,11,125,12,57,11,176,14,176,14,172,12,31,12,165,11,72,11,109,11,72,11,156,11,118,11,233,10,233,10,30,11,72,11,72,11,100,10,14,15,174,15,135,12,50,12,172,12,118,11,231,11,147,11,147,11,13,12,30,11,233,10,233,10,233,10,233,10,20,10,5,15,240,15,29,13,188,13,22,12,180,10,194,11,118,11,50,12,13,12,30,11,30,11,87,10,87,10,30,11,246,10,27,20,30,19,153,12,5,15,113,13,97,12,81,11,85,13,123,13,140,10,20,10,113,10,180,10,30,11,246,10,193,10,13,16,205,14,219,12,88,12,109,11,72,11,72,11,109,11,233,10,180,10,233,10,180,10,233,10,30,11,72,11,246,10,217,19,190,19,231,11,217,13,172,12,240,11,13,12,128,11,31,12,81,11,180,10,180,10,180,10,30,11,233,10,60,10,213,16,213,16,44,11,223,9,135,12,48,13,48,13,3,12,3,12,48,13,240,11,30,11,87,10,20,10,166,10,193,10,240,11,100,11,246,10,72,11,180,10,127,10,81,11,31,12,78,12,78,12,144,12,97,12,240,11,194,11,147,11,30,11,23,17,42,15,109,11,72,11,30,11,72,11,30,11,30,11,72,11,72,11,72,11,30,11,72,11,109,11,72,11,30,11,165,11,100,11,100,11,165,11,165,11,240,11,50,12,144,12,78,12,240,11,194,11,156,11,156,11,156,11,109,11,180,10,133,16,53,16,238,12,19,13,109,11,147,11,72,11,165,11,165,11,30,11,233,10,180,10,30,11,30,11,30,11,233,10,240,15,174,15,31,12,194,11,109,11,109,11,109,11,72,11,109,11,109,11,30,11,30,11,30,11,233,10,72,11,220,10,7,18,223,17,97,12,113,13,135,12,165,11,81,11,222,11,50,12,180,10,127,10,127,10,127,10,180,10,233,10,140,10,53,16,173,16,205,14,73,14,166,10,220,10,72,11,72,11,194,11,156,11,109,11,30,11,127,10,127,10,233,10,72,11,119,16,226,13,193,10,30,11,30,11,72,11,72,11,72,11,109,11,109,11,72,11,109,11,109,11,109,11,147,11,72,11,54,20,57,19,213,8,104,13,205,14,151,13,19,13,30,11,238,12,151,13,78,12,81,11,156,9,183,9,193,10,109,11,123,13,101,14,50,12,125,12,29,13,231,11,135,12,135,12,165,11,144,12,13,12,109,11,109,11,127,10,236,9,130,9,165,11,194,11,233,10,233,10,180,10,233,10,30,11,156,11,240,11,31,12,78,12,78,12,78,12,31,12,194,11,194,11,128,11,57,11,127,10,166,10,220,10,194,11,104,13,217,13,29,13,172,12,240,11,194,11,147,11,109,11,72,11,30,11,203,11,128,11,81,11,194,11,194,11,156,11,203,11,31,12,240,11,240,11,194,11,72,11,30,11,109,11,109,11,72,11,80,15,127,15,194,11,125,12,29,13,144,12,219,12,219,12,151,13,120,14,113,13,166,10,133,8,156,9,20,10,47,10,100,0,3,0,40,0,3,0,3,0,3,0,5,0,14,0,14,0,10,0,11,0,3,0,8,0,9,0,7,0,3,0,91,1,0,32,254,31,246,31,234,31,216,31,194,31,168,31,136,31,98,31,58,31,10,31,216,30,160,30,98,30,34,30,220,29,144,29,66,29,238,28,150,28,58,28,216,27,114,27,10,27,156,26,42,26,180,25,58,25,188,24,60,24,182,23,46,23,160,22,16,22,126,21,232,20,78,20,176,19,16,19,110,18,200,17,30,17,116,16,198,15,22,15,100,14,174,13,248,12,64,12,132,11,200,10,10,10,74,9,138,8,198,7,2,7,62,6,120,5,178,4,234,3,34,3,90,2,146,1,202,0,0,0,54,255,110,254,166,253,222,252,22,252,78,251,136,250,194,249,254,248,58,248,118,247,182,246,246,245,56,245,124,244,192,243,8,243,82,242,156,241,234,240,58,240,140,239,226,238,56,238,146,237,240,236,80,236,178,235,24,235,130,234,240,233,96,233,210,232,74,232,196,231,68,231,198,230,76,230,214,229,100,229,246,228,142,228,40,228,198,227,106,227,18,227,190,226,112,226,36,226,222,225,158,225,96,225,40,225,246,224,198,224,158,224,120,224,88,224,62,224,40,224,22,224,10,224,2,224,0,224,79,112,117,115,83,99,114,105,112,116,72,97,110,100,108,101,114,0,95,101,110,99,111,100,101,0,95,100,101,99,111,100,101,0,49,55,79,112,117,115,83,99,114,105,112,116,72,97,110,100,108,101,114,0,80,49,55,79,112,117,115,83,99,114,105,112,116,72,97,110,100,108,101,114,0,80,75,49,55,79,112,117,115,83,99,114,105,112,116,72,97,110,100,108,101,114,0,105,105,0,118,0,118,105,0,105,105,105,105,105,0,105,105,105,105,105,105,105,0,105,105,105,105,105,105,0,0,255,0,255,0,255,0,255,0,255,0,254,1,0,1,255,0,254,0,253,2,0,1,255,0,254,0,253,3,0,1,255,117,110,107,110,111,119,110,32,101,114,114,111,114,0,115,117,99,99,101,115,115,0,105,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,98,117,102,102,101,114,32,116,111,111,32,115,109,97,108,108,0,105,110,116,101,114,110,97,108,32,101,114,114,111,114,0,99,111,114,114,117,112,116,101,100,32,115,116,114,101,97,109,0,114,101,113,117,101,115,116,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,105,110,118,97,108,105,100,32,115,116,97,116,101,0,109,101,109,111,114,121,32,97,108,108,111,99,97,116,105,111,110,32,102,97,105,108,101,100,0,255,255,156,110,86,70,59,51,45,40,37,33,31,28,26,25,23,22,21,20,19,18,17,16,16,15,15,14,13,13,12,12,12,12,11,11,11,10,10,10,9,9,9,9,9,9,8,8,8,8,8,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,25,23,2,0,126,124,119,109,87,41,19,9,4,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,90,80,75,69,63,56,49,40,34,29,20,18,10,0,0,0,0,0,0,0,0,110,100,90,84,78,71,65,58,51,45,39,32,26,20,12,0,0,0,0,0,0,118,110,103,93,86,80,75,70,65,59,53,47,40,31,23,15,4,0,0,0,0,126,119,112,104,95,89,83,78,72,66,60,54,47,39,32,25,17,12,1,0,0,134,127,120,114,103,97,91,85,78,72,66,60,54,47,41,35,29,23,16,10,1,144,137,130,124,113,107,101,95,88,82,76,70,64,57,51,45,39,33,26,15,1,152,145,138,132,123,117,111,105,98,92,86,80,74,67,61,55,49,43,36,20,1,162,155,148,142,133,127,121,115,108,102,96,90,84,77,71,65,59,53,46,30,1,172,165,158,152,143,137,131,125,118,112,106,100,94,87,81,75,69,63,56,45,20,200,200,200,200,200,200,200,200,198,193,188,183,178,173,168,163,158,153,148,129,104,40,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,40,15,23,28,31,34,36,38,39,41,42,43,44,45,46,47,47,49,50,51,52,53,54,55,55,57,58,59,60,61,62,63,63,65,66,67,68,69,70,71,71,40,20,33,41,48,53,57,61,64,66,69,71,73,75,76,78,80,82,85,87,89,91,92,94,96,98,101,103,105,107,108,110,112,114,117,119,121,123,124,126,128,40,23,39,51,60,67,73,79,83,87,91,94,97,100,102,105,107,111,115,118,121,124,126,129,131,135,139,142,145,148,150,153,155,159,163,166,169,172,174,177,179,35,28,49,65,78,89,99,107,114,120,126,132,136,141,145,149,153,159,165,171,176,180,185,189,192,199,205,211,216,220,225,229,232,239,245,251,21,33,58,79,97,112,125,137,148,157,166,174,182,189,195,201,207,217,227,235,243,251,17,35,63,86,106,123,139,152,165,177,187,197,206,214,222,230,237,250,25,31,55,75,91,105,117,128,138,146,154,161,168,174,180,185,190,200,208,215,222,229,235,240,245,255,16,36,65,89,110,128,144,159,173,185,196,207,217,226,234,242,250,11,41,74,103,128,151,172,191,209,225,241,255,9,43,79,110,138,163,186,207,227,246,12,39,71,99,123,144,164,182,198,214,228,241,253,9,44,81,113,142,168,192,214,235,255,7,49,90,127,160,191,220,247,6,51,95,134,170,203,234,7,47,87,123,155,184,212,237,6,52,97,137,174,208,240,5,57,106,151,192,231,5,59,111,158,202,243,5,55,103,147,187,224,5,60,113,161,206,248,4,65,122,175,224,4,67,127,182,234,224,224,224,224,224,224,224,224,160,160,160,160,185,185,185,178,178,168,134,61,37,224,224,224,224,224,224,224,224,240,240,240,240,207,207,207,198,198,183,144,66,40,160,160,160,160,160,160,160,160,185,185,185,185,193,193,193,183,183,172,138,64,38,240,240,240,240,240,240,240,240,207,207,207,207,204,204,204,193,193,180,143,66,40,185,185,185,185,185,185,185,185,193,193,193,193,193,193,193,183,183,172,138,65,39,207,207,207,207,207,207,207,207,204,204,204,204,201,201,201,188,188,176,141,66,40,193,193,193,193,193,193,193,193,193,193,193,193,194,194,194,184,184,173,139,65,39,204,204,204,204,204,204,204,204,201,201,201,201,198,198,198,187,187,175,140,66,40,72,127,65,129,66,128,65,128,64,128,62,128,64,128,64,128,92,78,92,79,92,78,90,79,116,41,115,40,114,40,132,26,132,26,145,17,161,12,176,10,177,11,24,179,48,138,54,135,54,132,53,134,56,133,55,132,55,132,61,114,70,96,74,88,75,88,87,74,89,66,91,67,100,59,108,50,120,40,122,37,97,43,78,50,83,78,84,81,88,75,86,74,87,71,90,73,93,74,93,74,109,40,114,36,117,34,117,34,143,17,145,18,146,19,162,12,165,10,178,7,189,6,190,8,177,9,23,178,54,115,63,102,66,98,69,99,74,89,71,91,73,91,78,89,86,80,92,66,93,64,102,59,103,60,104,60,117,52,123,44,138,35,133,31,97,38,77,45,61,90,93,60,105,42,107,41,110,45,116,38,113,38,112,38,124,26,132,27,136,19,140,20,155,14,159,16,158,18,170,13,177,10,187,8,192,6,175,9,159,10,21,178,59,110,71,86,75,85,84,83,91,66,88,73,87,72,92,75,98,72,105,58,107,54,115,52,114,55,112,56,129,51,132,40,150,33,140,29,98,35,77,42,42,121,96,66,108,43,111,40,117,44,123,32,120,36,119,33,127,33,134,34,139,21,147,23,152,20,158,25,154,26,166,21,173,16,184,13,184,10,150,13,139,15,22,178,63,114,74,82,84,83,92,82,103,62,96,72,96,67,101,73,107,72,113,55,118,52,125,52,118,52,117,55,135,49,137,39,157,32,145,29,97,33,77,40,2,1,0,0,8,13,16,19,21,23,24,26,27,28,29,30,31,32,32,33,34,34,35,36,36,37,37,224,112,44,15,3,2,1,0,254,237,192,132,70,23,4,0,255,252,226,155,61,11,2,0,250,245,234,203,71,50,42,38,35,33,31,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,179,99,0,71,56,43,30,21,12,6,0,199,165,144,124,109,96,84,71,61,51,42,32,23,15,8,0,241,225,211,199,187,175,164,153,142,132,123,114,105,96,88,80,72,64,57,50,44,38,33,29,24,20,16,12,9,5,2,0,15,131,138,138,155,155,173,173,69,93,115,118,131,138,141,138,150,150,155,150,155,160,166,160,131,128,134,141,141,141,145,145,145,150,155,155,155,155,160,160,160,160,166,166,173,173,182,192,182,192,192,192,205,192,205,224,4,6,24,7,5,0,0,2,0,0,12,28,41,13,252,247,15,42,25,14,1,254,62,41,247,246,37,65,252,3,250,4,66,7,248,16,14,38,253,33,13,22,39,23,12,255,36,64,27,250,249,10,55,43,17,1,1,8,1,1,6,245,74,53,247,244,55,76,244,8,253,3,93,27,252,26,39,59,3,248,2,0,77,11,9,248,22,44,250,7,40,9,26,3,9,249,20,101,249,4,3,248,42,26,0,241,33,68,2,23,254,55,46,254,15,3,255,21,16,41,250,27,61,39,5,245,42,88,4,1,254,60,65,6,252,255,251,73,56,1,247,19,94,29,247,0,12,99,6,4,8,237,102,46,243,3,2,13,3,2,9,235,84,72,238,245,46,104,234,8,18,38,48,23,0,240,70,83,235,11,5,245,117,22,248,250,23,117,244,3,3,248,95,28,4,246,15,77,60,241,255,4,124,2,252,3,38,84,24,231,2,13,42,13,31,21,252,56,46,255,255,35,79,243,19,249,65,88,247,242,20,4,81,49,227,20,0,75,3,239,5,247,44,92,248,1,253,22,69,31,250,95,41,244,5,39,67,16,252,1,0,250,120,55,220,243,44,122,4,232,81,5,11,3,7,2,0,9,10,88,46,2,90,87,93,91,82,98,109,120,118,12,113,115,117,119,99,59,87,111,63,111,112,80,126,124,125,124,129,121,126,23,132,127,127,127,126,127,122,133,130,134,101,118,119,145,126,86,124,120,123,119,170,173,107,109,8,16,32,249,247,246,245,244,234,210,202,201,200,197,174,82,59,56,55,54,46,22,12,11,10,9,7,0,64,0,203,150,0,215,195,166,125,110,82,0,120,0,128,64,0,232,158,10,0,230,0,243,221,192,181,0,171,85,0,192,128,64,0,205,154,102,51,0,213,171,128,85,43,0,224,192,160,128,96,64,32,0,100,40,16,7,3,1,0,253,250,244,233,212,182,150,131,120,110,98,85,72,60,49,40,32,25,19,15,13,11,9,8,7,6,5,4,3,2,1,0,210,208,206,203,199,193,183,168,142,104,74,52,37,27,20,14,10,6,4,2,0,223,201,183,167,152,138,124,111,98,88,79,70,62,56,50,44,39,35,31,27,24,21,18,16,14,12,10,8,6,4,3,2,1,0,188,176,155,138,119,97,67,43,26,10,0,165,119,80,61,47,35,27,20,14,9,4,0,113,63,0,125,51,26,18,15,12,11,10,9,8,7,6,5,4,3,2,1,0,198,105,45,22,15,12,11,10,9,8,7,6,5,4,3,2,1,0,213,162,116,83,59,43,32,24,18,15,12,9,7,6,5,3,2,0,239,187,116,59,28,16,11,10,9,8,7,6,5,4,3,2,1,0,250,229,188,135,86,51,30,19,13,10,8,6,5,4,3,2,1,0,249,235,213,185,156,128,103,83,66,53,42,33,26,21,17,13,10,0,254,249,235,206,164,118,77,46,27,16,10,7,5,4,3,2,1,0,255,253,249,239,220,191,156,119,85,57,37,23,15,10,6,4,2,0,255,253,251,246,237,223,203,179,152,124,98,75,55,40,29,21,15,0,255,254,253,247,220,162,106,67,42,28,18,12,9,6,4,3,2,0,31,57,107,160,205,205,255,255,255,255,255,255,255,255,255,255,255,255,69,47,67,111,166,205,255,255,255,255,255,255,255,255,255,255,255,255,82,74,79,95,109,128,145,160,173,205,205,205,224,255,255,224,255,224,125,74,59,69,97,141,182,255,255,255,255,255,255,255,255,255,255,255,173,115,85,73,76,92,115,145,173,205,224,224,255,255,255,255,255,255,166,134,113,102,101,102,107,118,125,138,145,155,166,182,192,192,205,150,224,182,134,101,83,79,85,97,120,145,173,205,224,255,255,255,255,255,255,224,192,150,120,101,92,89,93,102,118,134,160,182,192,224,224,224,255,224,224,182,155,134,118,109,104,102,106,111,118,131,145,160,173,131,241,190,178,132,87,74,41,14,0,223,193,157,140,106,57,39,18,0,131,74,141,79,80,138,95,104,134,95,99,91,125,93,76,123,115,123,128,0,214,42,0,235,128,21,0,244,184,72,11,0,248,214,128,42,7,0,248,225,170,80,25,5,0,251,236,198,126,54,18,3,0,250,238,211,159,82,35,15,5,0,250,231,203,168,128,88,53,25,6,0,252,238,216,185,148,108,71,40,18,4,0,253,243,225,199,166,128,90,57,31,13,3,0,254,246,233,212,183,147,109,73,44,23,10,2,0,255,250,240,223,198,166,128,90,58,33,16,6,1,0,255,251,244,231,210,181,146,110,75,46,25,12,5,1,0,255,253,248,238,221,196,164,128,92,60,35,18,8,3,1,0,255,253,249,242,229,208,180,146,110,76,48,27,14,7,3,1,0,129,0,207,50,0,236,129,20,0,245,185,72,10,0,249,213,129,42,6,0,250,226,169,87,27,4,0,251,233,194,130,62,20,4,0,250,236,207,160,99,47,17,3,0,255,240,217,182,131,81,41,11,1,0,255,254,233,201,159,107,61,20,2,1,0,255,249,233,206,170,128,86,50,23,7,1,0,255,250,238,217,186,148,108,70,39,18,6,1,0,255,252,243,226,200,166,128,90,56,30,13,4,1,0,255,252,245,231],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+20480),allocate([209,180,146,110,76,47,25,11,4,1,0,255,253,248,237,219,194,163,128,93,62,37,19,8,3,1,0,255,254,250,241,226,205,177,145,111,79,51,30,15,6,2,1,0,129,0,203,54,0,234,129,23,0,245,184,73,10,0,250,215,129,41,5,0,252,232,173,86,24,3,0,253,240,200,129,56,15,2,0,253,244,217,164,94,38,10,1,0,253,245,226,189,132,71,27,7,1,0,253,246,231,203,159,105,56,23,6,1,0,255,248,235,213,179,133,85,47,19,5,1,0,255,254,243,221,194,159,117,70,37,12,2,1,0,255,254,248,234,208,171,128,85,48,22,8,2,1,0,255,254,250,240,220,189,149,107,67,36,16,6,2,1,0,255,254,251,243,227,201,166,128,90,55,29,13,5,2,1,0,255,254,252,246,234,213,183,147,109,73,43,22,10,4,2,1,0,130,0,200,58,0,231,130,26,0,244,184,76,12,0,249,214,130,43,6,0,252,232,173,87,24,3,0,253,241,203,131,56,14,2,0,254,246,221,167,94,35,8,1,0,254,249,232,193,130,65,23,5,1,0,255,251,239,211,162,99,45,15,4,1,0,255,251,243,223,186,131,74,33,11,3,1,0,255,252,245,230,202,158,105,57,24,8,2,1,0,255,253,247,235,214,179,132,84,44,19,7,2,1,0,255,254,250,240,223,196,159,112,69,36,15,6,2,1,0,255,254,253,245,231,209,176,136,93,55,27,11,3,2,1,0,255,254,253,252,239,221,194,158,117,76,42,18,4,3,2,1,0,0,0,2,5,9,14,20,27,35,44,54,65,77,90,104,119,135,254,49,67,77,82,93,99,198,11,18,24,31,36,45,255,46,66,78,87,94,104,208,14,21,32,42,51,66,255,94,104,109,112,115,118,248,53,69,80,88,95,102,6,0,3,0,7,3,0,1,10,0,2,6,18,10,12,4,0,2,0,0,0,9,4,7,4,0,3,12,7,7,0,1,1,1,2,3,3,3,2,3,3,3,2,3,3,3,0,3,12,15,48,51,60,63,192,195,204,207,240,243,252,255,12,35,60,83,108,132,157,180,206,228,15,32,55,77,101,125,151,175,201,225,19,42,66,89,114,137,162,184,209,230,12,25,50,72,97,120,147,172,200,223,26,44,69,90,114,135,159,180,205,225,13,22,53,80,106,130,156,180,205,228,15,25,44,64,90,115,142,168,196,222,19,24,62,82,100,120,145,168,190,214,22,31,50,79,103,120,151,170,203,227,21,29,45,65,106,124,150,171,196,224,30,49,75,97,121,142,165,186,209,229,19,25,52,70,93,116,143,166,192,219,26,34,62,75,97,118,145,167,194,217,25,33,56,70,91,113,143,165,196,223,21,34,51,72,97,117,145,171,196,222,20,29,50,67,90,117,144,168,197,221,22,31,48,66,95,117,146,168,196,222,24,33,51,77,116,134,158,180,200,224,21,28,70,87,106,124,149,170,194,217,26,33,53,64,83,117,152,173,204,225,27,34,65,95,108,129,155,174,210,225,20,26,72,99,113,131,154,176,200,219,34,43,61,78,93,114,155,177,205,229,23,29,54,97,124,138,163,179,209,229,30,38,56,89,118,129,158,178,200,231,21,29,49,63,85,111,142,163,193,222,27,48,77,103,133,158,179,196,215,232,29,47,74,99,124,151,176,198,220,237,33,42,61,76,93,121,155,174,207,225,29,53,87,112,136,154,170,188,208,227,24,30,52,84,131,150,166,186,203,229,37,48,64,84,104,118,156,177,201,230,212,178,148,129,108,96,85,82,79,77,61,59,57,56,51,49,48,45,42,41,40,38,36,34,31,30,21,12,10,3,1,0,255,245,244,236,233,225,217,203,190,176,175,161,149,136,125,114,102,91,81,71,60,52,43,35,28,20,19,18,12,11,5,0,179,138,140,148,151,149,153,151,163,116,67,82,59,92,72,100,89,92,16,0,0,0,0,99,66,36,36,34,36,34,34,34,34,83,69,36,52,34,116,102,70,68,68,176,102,68,68,34,65,85,68,84,36,116,141,152,139,170,132,187,184,216,137,132,249,168,185,139,104,102,100,68,68,178,218,185,185,170,244,216,187,187,170,244,187,187,219,138,103,155,184,185,137,116,183,155,152,136,132,217,184,184,170,164,217,171,155,139,244,169,184,185,170,164,216,223,218,138,214,143,188,218,168,244,141,136,155,170,168,138,220,219,139,164,219,202,216,137,168,186,246,185,139,116,185,219,185,138,100,100,134,100,102,34,68,68,100,68,168,203,221,218,168,167,154,136,104,70,164,246,171,137,139,137,155,218,219,139,255,254,253,238,14,3,2,1,0,255,254,252,218,35,3,2,1,0,255,254,250,208,59,4,2,1,0,255,254,246,194,71,10,2,1,0,255,252,236,183,82,8,2,1,0,255,252,235,180,90,17,2,1,0,255,248,224,171,97,30,4,1,0,255,254,236,173,95,37,7,1,0,255,255,255,131,6,145,255,255,255,255,255,236,93,15,96,255,255,255,255,255,194,83,25,71,221,255,255,255,255,162,73,34,66,162,255,255,255,210,126,73,43,57,173,255,255,255,201,125,71,48,58,130,255,255,255,166,110,73,57,62,104,210,255,255,251,123,65,55,68,100,171,255,7,23,38,54,69,85,100,116,131,147,162,178,193,208,223,239,13,25,41,55,69,83,98,112,127,142,157,171,187,203,220,236,15,21,34,51,61,78,92,106,126,136,152,167,185,205,225,240,10,21,36,50,63,79,95,110,126,141,157,173,189,205,221,237,17,20,37,51,59,78,89,107,123,134,150,164,184,205,224,240,10,15,32,51,67,81,96,112,129,142,158,173,189,204,220,236,8,21,37,51,65,79,98,113,126,138,155,168,179,192,209,218,12,15,34,55,63,78,87,108,118,131,148,167,185,203,219,236,16,19,32,36,56,79,91,108,118,136,154,171,186,204,220,237,11,28,43,58,74,89,105,120,135,150,165,180,196,211,226,241,6,16,33,46,60,75,92,107,123,137,156,169,185,199,214,225,11,19,30,44,57,74,89,105,121,135,152,169,186,202,218,234,12,19,29,46,57,71,88,100,120,132,148,165,182,199,216,233,17,23,35,46,56,77,92,106,123,134,152,167,185,204,222,237,14,17,45,53,63,75,89,107,115,132,151,171,188,206,221,240,9,16,29,40,56,71,88,103,119,137,154,171,189,205,222,237,16,19,36,48,57,76,87,105,118,132,150,167,185,202,218,236,12,17,29,54,71,81,94,104,126,136,149,164,182,201,221,237,15,28,47,62,79,97,115,129,142,155,168,180,194,208,223,238,8,14,30,45,62,78,94,111,127,143,159,175,192,207,223,239,17,30,49,62,79,92,107,119,132,145,160,174,190,204,220,235,14,19,36,45,61,76,91,108,121,138,154,172,189,205,222,238,12,18,31,45,60,76,91,107,123,138,154,171,187,204,221,236,13,17,31,43,53,70,83,103,114,131,149,167,185,203,220,237,17,22,35,42,58,78,93,110,125,139,155,170,188,206,224,240,8,15,34,50,67,83,99,115,131,146,162,178,193,209,224,239,13,16,41,66,73,86,95,111,128,137,150,163,183,206,225,241,17,25,37,52,63,75,92,102,119,132,144,160,175,191,212,231,19,31,49,65,83,100,117,133,147,161,174,187,200,213,227,242,18,31,52,68,88,103,117,126,138,149,163,177,192,207,223,239,16,29,47,61,76,90,106,119,133,147,161,176,193,209,224,240,15,21,35,50,61,73,86,97,110,119,129,141,175,198,218,237,225,204,201,184,183,175,158,154,153,135,119,115,113,110,109,99,98,95,79,68,52,50,48,45,43,32,31,27,18,10,3,0,255,251,235,230,212,201,196,182,167,166,163,151,138,124,110,104,90,78,76,70,69,57,45,34,24,21,11,6,5,4,3,0,175,148,160,176,178,173,174,164,177,174,196,182,198,192,182,68,62,66,60,72,117,85,90,118,136,151,142,160,142,155,0,0,0,0,0,0,0,1,100,102,102,68,68,36,34,96,164,107,158,185,180,185,139,102,64,66,36,34,34,0,1,32,208,139,141,191,152,185,155,104,96,171,104,166,102,102,102,132,1,0,0,0,0,16,16,0,80,109,78,107,185,139,103,101,208,212,141,139,173,153,123,103,36,0,0,0,0,0,0,1,48,0,0,0,0,0,0,32,68,135,123,119,119,103,69,98,68,103,120,118,118,102,71,98,134,136,157,184,182,153,139,134,208,168,248,75,189,143,121,107,32,49,34,34,34,0,17,2,210,235,139,123,185,137,105,134,98,135,104,182,100,183,171,134,100,70,68,70,66,66,34,131,64,166,102,68,36,2,1,0,134,166,102,68,34,34,66,132,212,246,158,139,107,107,87,102,100,219,125,122,137,118,103,132,114,135,137,105,171,106,50,34,164,214,141,143,185,151,121,103,192,34,0,0,0,0,0,1,208,109,74,187,134,249,159,137,102,110,154,118,87,101,119,101,0,2,0,36,36,66,68,35,96,164,102,100,36,0,2,33,167,138,174,102,100,84,2,2,100,107,120,119,36,197,24,0,255,254,253,244,12,3,2,1,0,255,254,252,224,38,3,2,1,0,255,254,251,209,57,4,2,1,0,255,254,244,195,69,4,2,1,0,255,251,232,184,84,7,2,1,0,255,254,240,186,86,14,2,1,0,255,254,239,178,91,30,5,1,0,255,248,227,177,100,19,2,1,0,255,255,255,156,4,154,255,255,255,255,255,227,102,15,92,255,255,255,255,255,213,83,24,72,236,255,255,255,255,150,76,33,63,214,255,255,255,190,121,77,43,55,185,255,255,255,245,137,71,43,59,139,255,255,255,255,131,66,50,66,107,194,255,255,166,116,76,55,53,125,255,255,0,15,8,7,4,11,12,3,2,13,10,5,6,9,14,1,0,9,6,3,4,5,8,1,2,7,0,1,0,0,0,1,0,0,1,255,1,255,2,254,2,254,3,253,0,1,0,1,255,2,255,2,254,3,254,3,253,7,254,7,0,2,255,255,255,0,0,1,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,255,2,1,0,1,1,0,0,255,255,0,0,1,255,0,1,255,0,255,1,254,2,254,254,2,253,2,3,253,252,3,252,4,4,251,5,250,251,6,249,6,5,8,247,0,0,1,0,0,0,0,0,0,0,255,1,0,0,1,255,0,1,255,255,1,255,2,1,255,2,254,254,2,254,2,2,3,253,0,1,0,0,0,0,0,0,1,0,1,0,0,1,255,1,0,0,2,1,255,2,255,255,2,255,2,2,255,3,254,254,254,3,0,1,0,0,1,0,1,255,2,255,2,255,2,3,254,3,254,254,4,4,253,5,253,252,6,252,6,5,251,8,250,251,249,9,251,8,255,6,255,6,252,10,250,10,254,6,255,6,251,10,247,12,253,7,254,7,249,13,16,24,34,118,111,105,100,0,98,111,111,108,0,99,104,97,114,0,115,105,103,110,101,100,32,99,104,97,114,0,117,110,115,105,103,110,101,100,32,99,104,97,114,0,115,104,111,114,116,0,117,110,115,105,103,110,101,100,32,115,104,111,114,116,0,105,110,116,0,117,110,115,105,103,110,101,100,32,105,110,116,0,108,111,110,103,0,117,110,115,105,103,110,101,100,32,108,111,110,103,0,102,108,111,97,116,0,100,111,117,98,108,101,0,78,83,116,51,95,95,49,49,50,98,97,115,105,99,95,115,116,114,105,110,103,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,99,69,69,69,69,0,78,83,116,51,95,95,49,50,49,95,95,98,97,115,105,99,95,115,116,114,105,110,103,95,99,111,109,109,111,110,73,76,98,49,69,69,69,0,115,116,100,58,58,115,116,114,105,110,103,0,78,83,116,51,95,95,49,49,50,98,97,115,105,99,95,115,116,114,105,110,103,73,104,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,104,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,104,69,69,69,69,0,115,116,100,58,58,98,97,115,105,99,95,115,116,114,105,110,103,60,117,110,115,105,103,110,101,100,32,99,104,97,114,62,0,78,83,116,51,95,95,49,49,50,98,97,115,105,99,95,115,116,114,105,110,103,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,119,69,69,69,69,0,115,116,100,58,58,119,115,116,114,105,110,103,0,78,49,48,101,109,115,99,114,105,112,116,101,110,51,118,97,108,69,0,101,109,115,99,114,105,112,116,101,110,58,58,118,97,108,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,99,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,99,104,97,114,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,97,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,115,105,103,110,101,100,32,99,104,97,114,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,104,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,110,115,105,103,110,101,100,32,99,104,97,114,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,115,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,115,104,111,114,116,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,116,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,110,115,105,103,110,101,100,32,115,104,111,114,116,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,105,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,105,110,116,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,106,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,110,115,105,103,110,101,100,32,105,110,116,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,108,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,108,111,110,103,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,109,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,110,115,105,103,110,101,100,32,108,111,110,103,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,105,110,116,56,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,105,110,116,56,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,105,110,116,49,54,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,105,110,116,49,54,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,105,110,116,51,50,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,105,110,116,51,50,95,116,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,102,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,102,108,111,97,116,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,100,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,100,111,117,98,108,101,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,101,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,108,111,110,103,32,100,111,117,98,108,101,62,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,48,95,95,115,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,54,95,95,115,104,105,109,95,116,121,112,101,95,105,110,102,111,69,0,83,116,57,116,121,112,101,95,105,110,102,111,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,83,116,57,101,120,99,101,112,116,105,111,110,0,83,116,57,98,97,100,95,97,108,108,111,99,0,115,116,100,58,58,98,97,100,95,97,108,108,111,99,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,57,95,95,112,111,105,110,116,101,114,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,112,98,97,115,101,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,51,95,95,102,117,110,100,97,109,101,110,116,97,108,95,116,121,112,101,95,105,110,102,111,69,0,118,0,68,110,0,98,0,99,0,104,0,97,0,115,0,116,0,105,0,106,0,108,0,109,0,102,0,100,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,49,95,95,118,109,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+30720); -var tempDoublePtr=STATICTOP;STATICTOP+=16;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},embind_charCodes=void 0,awaitingDependencies={},registeredTypes={},typeDependencies={},char_0=48,char_9=57,BindingError=void 0,InternalError=void 0,EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:function(e){if(!e||EXCEPTIONS.infos[e])return e;for(var t in EXCEPTIONS.infos){var i=EXCEPTIONS.infos[t];if(i.adjusted===e)return t}return e},addRef:function(e){if(e){var t=EXCEPTIONS.infos[e];t.refcount++}},decRef:function(e){if(e){var t=EXCEPTIONS.infos[e];assert(t.refcount>0),t.refcount--,0===t.refcount&&(t.destructor&&Runtime.dynCall("vi",t.destructor,[e]),delete EXCEPTIONS.infos[e],___cxa_free_exception(e))}},clearRef:function(e){if(e){var t=EXCEPTIONS.infos[e];t.refcount=0}}};Module._memset=_memset,Module._free=_free,Module._malloc=_malloc;var delayFunction=void 0,deletionQueue=[],registeredPointers={},registeredInstances={},UnboundTypeError=void 0,_llvm_fabs_f64=Math_abs;Module._i64Add=_i64Add;var emval_free_list=[],emval_handle_array=[{},{value:void 0},{value:null},{value:!0},{value:!1}];Module._bitshift64Ashr=_bitshift64Ashr,Module._bitshift64Lshr=_bitshift64Lshr,Module._memcpy=_memcpy;var _llvm_pow_f64=Math_pow;Module._memmove=_memmove,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(),STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP),staticSealed=!0,STACK_MAX=STACK_BASE+TOTAL_STACK,DYNAMIC_BASE=DYNAMICTOP=Runtime.alignMemory(STACK_MAX);var cttz_i8=allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0],"i8",ALLOC_DYNAMIC);Module.asmGlobalArg={Math:Math,Int8Array:Int8Array,Int16Array:Int16Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Uint16Array:Uint16Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array,NaN:NaN,Infinity:1/0},Module.asmLibraryArg={abort:abort,assert:assert,invoke_iiii:invoke_iiii,invoke_viiiii:invoke_viiiii,invoke_vi:invoke_vi,invoke_iiiiiii:invoke_iiiiiii,invoke_ii:invoke_ii,invoke_viiiiiii:invoke_viiiiiii,invoke_v:invoke_v,invoke_iiiii:invoke_iiiii,invoke_viiiiii:invoke_viiiiii,invoke_iiiiii:invoke_iiiiii,invoke_viiii:invoke_viiii,floatReadValueFromPointer:floatReadValueFromPointer,simpleReadValueFromPointer:simpleReadValueFromPointer,throwInternalError:throwInternalError,get_first_emval:get_first_emval,_llvm_fabs_f64:_llvm_fabs_f64,getLiveInheritedInstances:getLiveInheritedInstances,__ZSt18uncaught_exceptionv:__ZSt18uncaught_exceptionv,ClassHandle:ClassHandle,getShiftFromSize:getShiftFromSize,_sbrk:_sbrk,_emscripten_memcpy_big:_emscripten_memcpy_big,runDestructor:runDestructor,_sysconf:_sysconf,throwInstanceAlreadyDeleted:throwInstanceAlreadyDeleted,__embind_register_std_string:__embind_register_std_string,init_RegisteredPointer:init_RegisteredPointer,ClassHandle_isAliasOf:ClassHandle_isAliasOf,_llvm_stacksave:_llvm_stacksave,flushPendingDeletes:flushPendingDeletes,makeClassHandle:makeClassHandle,whenDependentTypesAreResolved:whenDependentTypesAreResolved,__embind_register_class_constructor:__embind_register_class_constructor,init_ClassHandle:init_ClassHandle,ClassHandle_clone:ClassHandle_clone,RegisteredClass:RegisteredClass,_llvm_stackrestore:_llvm_stackrestore,___cxa_find_matching_catch:___cxa_find_matching_catch,embind_init_charCodes:embind_init_charCodes,___setErrNo:___setErrNo,__embind_register_bool:__embind_register_bool,___resumeException:___resumeException,createNamedFunction:createNamedFunction,__embind_register_emval:__embind_register_emval,__emval_decref:__emval_decref,init_embind:init_embind,constNoSmartPtrRawPointerToWireType:constNoSmartPtrRawPointerToWireType,heap32VectorToArray:heap32VectorToArray,ClassHandle_delete:ClassHandle_delete,RegisteredPointer_destructor:RegisteredPointer_destructor,ensureOverloadTable:ensureOverloadTable,_time:_time,new_:new_,downcastPointer:downcastPointer,replacePublicSymbol:replacePublicSymbol,__embind_register_class:__embind_register_class,_llvm_pow_f64:_llvm_pow_f64,ClassHandle_deleteLater:ClassHandle_deleteLater,RegisteredPointer_deleteObject:RegisteredPointer_deleteObject,ClassHandle_isDeleted:ClassHandle_isDeleted,__embind_register_integer:__embind_register_integer,___cxa_allocate_exception:___cxa_allocate_exception,_embind_repr:_embind_repr,RegisteredPointer:RegisteredPointer,_exp2:_exp2,craftInvokerFunction:craftInvokerFunction,runDestructors:runDestructors,makeLegalFunctionName:makeLegalFunctionName,upcastPointer:upcastPointer,init_emval:init_emval,shallowCopyInternalPointer:shallowCopyInternalPointer,nonConstNoSmartPtrRawPointerToWireType:nonConstNoSmartPtrRawPointerToWireType,_abort:_abort,throwBindingError:throwBindingError,getTypeName:getTypeName,exposePublicSymbol:exposePublicSymbol,RegisteredPointer_fromWireType:RegisteredPointer_fromWireType,__embind_register_memory_view:__embind_register_memory_view,getInheritedInstance:getInheritedInstance,setDelayFunction:setDelayFunction,___gxx_personality_v0:___gxx_personality_v0,extendError:extendError,__embind_register_void:__embind_register_void,RegisteredPointer_getPointee:RegisteredPointer_getPointee,__emval_register:__emval_register,__embind_register_std_wstring:__embind_register_std_wstring,__embind_register_class_function:__embind_register_class_function,throwUnboundTypeError:throwUnboundTypeError,readLatin1String:readLatin1String,_pthread_self:_pthread_self,getBasestPointer:getBasestPointer,getInheritedInstanceCount:getInheritedInstanceCount,__embind_register_float:__embind_register_float,integerReadValueFromPointer:integerReadValueFromPointer,genericPointerToWireType:genericPointerToWireType,registerType:registerType,___cxa_throw:___cxa_throw,count_emval_handles:count_emval_handles,requireFunction:requireFunction,STACKTOP:STACKTOP,STACK_MAX:STACK_MAX,tempDoublePtr:tempDoublePtr,ABORT:ABORT,cttz_i8:cttz_i8};var asm=function(e,t,i){"use asm";var r=new e.Int8Array(i);var n=new e.Int16Array(i);var s=new e.Int32Array(i);var a=new e.Uint8Array(i);var o=new e.Uint16Array(i);var f=new e.Uint32Array(i);var h=new e.Float32Array(i);var c=new e.Float64Array(i);var l=t.STACKTOP|0;var u=t.STACK_MAX|0;var d=t.tempDoublePtr|0;var p=t.ABORT|0;var b=t.cttz_i8|0;var m=0;var w=0;var g=0;var v=0;var _=e.NaN,y=e.Infinity;var k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0;var I=0;var P=0;var O=0;var N=0;var D=0;var L=0;var B=0;var U=0;var j=0;var F=0;var z=e.Math.floor;var q=e.Math.abs;var H=e.Math.sqrt;var G=e.Math.pow;var V=e.Math.cos;var W=e.Math.sin;var K=e.Math.tan;var Z=e.Math.acos;var Y=e.Math.asin;var $=e.Math.atan;var X=e.Math.atan2;var J=e.Math.exp;var Q=e.Math.log;var ee=e.Math.ceil;var te=e.Math.imul;var ie=e.Math.min;var re=e.Math.clz32;var ne=t.abort;var se=t.assert;var ae=t.invoke_iiii;var oe=t.invoke_viiiii;var fe=t.invoke_vi;var he=t.invoke_iiiiiii;var ce=t.invoke_ii;var le=t.invoke_viiiiiii;var ue=t.invoke_v;var de=t.invoke_iiiii;var pe=t.invoke_viiiiii;var be=t.invoke_iiiiii;var me=t.invoke_viiii;var we=t.floatReadValueFromPointer;var ge=t.simpleReadValueFromPointer;var ve=t.throwInternalError;var _e=t.get_first_emval;var ye=t._llvm_fabs_f64;var ke=t.getLiveInheritedInstances;var Ee=t.__ZSt18uncaught_exceptionv;var Ae=t.ClassHandle;var Se=t.getShiftFromSize;var Me=t._sbrk;var Te=t._emscripten_memcpy_big;var Re=t.runDestructor;var xe=t._sysconf;var Ce=t.throwInstanceAlreadyDeleted;var Ie=t.__embind_register_std_string;var Pe=t.init_RegisteredPointer;var Oe=t.ClassHandle_isAliasOf;var Ne=t._llvm_stacksave;var De=t.flushPendingDeletes;var Le=t.makeClassHandle;var Be=t.whenDependentTypesAreResolved;var Ue=t.__embind_register_class_constructor;var je=t.init_ClassHandle;var Fe=t.ClassHandle_clone;var ze=t.RegisteredClass;var qe=t._llvm_stackrestore;var He=t.___cxa_find_matching_catch;var Ge=t.embind_init_charCodes;var Ve=t.___setErrNo;var We=t.__embind_register_bool;var Ke=t.___resumeException;var Ze=t.createNamedFunction;var Ye=t.__embind_register_emval;var $e=t.__emval_decref;var Xe=t.init_embind;var Je=t.constNoSmartPtrRawPointerToWireType;var Qe=t.heap32VectorToArray;var et=t.ClassHandle_delete;var tt=t.RegisteredPointer_destructor;var it=t.ensureOverloadTable;var rt=t._time;var nt=t.new_;var st=t.downcastPointer;var at=t.replacePublicSymbol;var ot=t.__embind_register_class;var ft=t._llvm_pow_f64;var ht=t.ClassHandle_deleteLater;var ct=t.RegisteredPointer_deleteObject;var lt=t.ClassHandle_isDeleted;var ut=t.__embind_register_integer;var dt=t.___cxa_allocate_exception;var pt=t._embind_repr;var bt=t.RegisteredPointer;var mt=t._exp2;var wt=t.craftInvokerFunction;var gt=t.runDestructors;var vt=t.makeLegalFunctionName;var _t=t.upcastPointer;var yt=t.init_emval;var kt=t.shallowCopyInternalPointer;var Et=t.nonConstNoSmartPtrRawPointerToWireType;var At=t._abort;var St=t.throwBindingError;var Mt=t.getTypeName;var Tt=t.exposePublicSymbol;var Rt=t.RegisteredPointer_fromWireType;var xt=t.__embind_register_memory_view;var Ct=t.getInheritedInstance;var It=t.setDelayFunction;var Pt=t.___gxx_personality_v0;var Ot=t.extendError;var Nt=t.__embind_register_void;var Dt=t.RegisteredPointer_getPointee;var Lt=t.__emval_register;var Bt=t.__embind_register_std_wstring;var Ut=t.__embind_register_class_function;var jt=t.throwUnboundTypeError;var Ft=t.readLatin1String;var zt=t._pthread_self;var qt=t.getBasestPointer;var Ht=t.getInheritedInstanceCount;var Gt=t.__embind_register_float;var Vt=t.integerReadValueFromPointer;var Wt=t.genericPointerToWireType;var Kt=t.registerType;var Zt=t.___cxa_throw;var Yt=t.count_emval_handles;var $t=t.requireFunction;var Xt=0;function Jt(e,t,i,o,f,c){e=e|0;t=t|0;i=i|0;o=o|0;f=f|0;c=c|0;var u=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0,I=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,G=0,V=0,W=0,K=0,Z=0,Y=0,$=0,X=0,J=0,ee=0,ie=0,ne=0,se=0,ae=0,oe=0,fe=0,he=0,ce=0,le=0,ue=0,de=0,pe=0,be=0,me=0,we=0,ge=0,ve=0,_e=0,ye=0,ke=0,Ee=0,Ae=0,Se=0,Me=0,Te=0,Re=0,xe=0,Ce=0,Ie=0,Pe=0,Oe=0,De=0,Le=0,Be=0,Ue=0,je=0,Fe=0,ze=0,He=0,Ge=0,Ve=0,We=0,Ke=0,Ze=0,Ye=0,$e=0,Xe=0,Je=0,Qe=0,et=0,tt=0,it=0,rt=0,nt=0,st=0;nt=l;l=l+192|0;K=nt+80|0;w=nt+32|0;$e=nt+28|0;L=nt+24|0;He=nt+20|0;ze=nt+16|0;J=nt+12|0;Ie=nt+8|0;Ce=nt+4|0;B=nt;et=s[e+4>>2]|0;Ye=s[e+8>>2]|0;s[$e>>2]=15;h[L>>2]=0;s[He>>2]=0;s[J>>2]=0;Fe=s[e>>2]|0;We=Fe+8|0;rt=s[We>>2]|0;N=s[Fe+4>>2]|0;Oe=Fe+32|0;ke=s[Oe>>2]|0;tt=s[e+32>>2]|0;it=s[e+36>>2]|0;xe=(tt|0)!=0;h[Ie>>2]=0;if((f|0)<2|(t|0)==0){e=-1;l=nt;return e|0}W=e+28|0;u=te(s[W>>2]|0,i)|0;pe=Fe+44|0;Te=Fe+36|0;i=s[Te>>2]|0;Ee=0;while(1){if((Ee|0)>(i|0)){i=-1;Se=631;break}if((s[pe>>2]<>2]<>2]|0;Ve=s[c+28>>2]|0;C=re(Ve|0)|0;Ge=32-C|0;Ve=Ve>>>(Ge+-16|0);Re=(Ve>>>12)+-8|0;C=Ue+(C+-32)|0;O=C+4>>3;Re=(Ue<<3)-((Ge<<3)+(Re+(Ve>>>0>(s[5272+(Re<<2)>>2]|0)>>>0&1)))|0}f=(f|0)<1275?f:1275;m=f-O|0;_e=e+44|0;i=s[e+40>>2]|0;if(!(s[_e>>2]|0))if((i|0)==-1)Se=13;else{Ve=te(i,u)|0;Se=s[Fe>>2]|0;Se=((Ve+((C|0)>1?C:0)+(Se<<2)|0)/(Se<<3|0)|0)-((s[e+48>>2]|0)!=0&1)|0;Ve=(f|0)<(Se|0);f=((Ve?f:Se)|0)<2?2:Ve?f:Se;Se=13}else if((i|0)==-1){i=-1;Se=13}else{Le=s[Fe>>2]|0;Le=((te(i,u)|0)+(Le>>4)|0)/(Le>>3|0)|0;p=f;P=Le>>6}if((Se|0)==13){p=f;P=f-O|0;Le=0}f=te((Ye*40|0)+20|0,(400>>>Ee)+-50|0)|0;u=(p*400>>3-Ee)-f|0;if((i|0)==-1)Be=u;else{Be=i-f|0;Be=(u|0)<(Be|0)?u:Be}if(b){s[w>>2]=o;s[w+8>>2]=0;s[w+12>>2]=0;s[w+16>>2]=0;s[w+20>>2]=33;s[w+24>>2]=0;s[w+28>>2]=-2147483648;s[w+40>>2]=-1;s[w+32>>2]=0;s[w+36>>2]=0;s[w+4>>2]=p;s[w+44>>2]=0;Ve=w}else Ve=c;Me=(Le|0)>0;if(((Me?(s[e+52>>2]|0)!=0:0)?(v=(C|0)==1?2:0,_=(Le<<1)-(s[e+176>>2]|0)>>6,E=(v|0)>(_|0),((E?v:_)|0)<(m|0)):0)?(A=E?v:_,(A|0)<(m|0)):0){p=O+A|0;De=s[Ve>>2]|0;Ge=s[Ve+8>>2]|0;Ue=0-Ge|0;u=Ve+4|0;Tn(De+p+Ue|0,De+(s[u>>2]|0)+Ue|0,Ge|0)|0;s[u>>2]=p;u=A}else u=m;I=p<<3;de=s[Fe+12>>2]|0;de=(it|0)>(de|0)?de:it;U=je+N|0;w=te(et,U)|0;Ge=Ne()|0;V=l;l=l+((1*(w<<2)|0)+15&-16)|0;w=e+192|0;g=+h[w>>2];f=te(Ye,je-N|0)|0;m=s[W>>2]|0;f=(f|0)/(m|0)|0;i=0;y=0;k=0;while(1){if((i|0)>=(f|0))break;Pe=+h[t+(i<<2)>>2];i=i+1|0;y=y>Pe?y:Pe;k=k(y>Pe?y:Pe))){i=0;y=0;g=0;while(1){if((i|0)>=(f|0))break;Pe=+h[t+(i<<2)>>2];i=i+1|0;y=y>Pe?y:Pe;g=gg)g=y}b=t+(f<<2)|0;i=(te(Ye,N)|0)/(m|0)|0;f=0;y=0;k=0;while(1){if((f|0)>=(i|0))break;Pe=+h[b+(f<<2)>>2];f=f+1|0;y=y>Pe?y:Pe;k=kPe?y:Pe;h[w>>2]=Pe;g=g>Pe?g:Pe;be=e+60|0;S=g<=1/+(1<>2]|0);x=S&1;if((C|0)==1){T=Ve+28|0;f=s[T>>2]|0;i=f>>>15;f=f-i|0;A=Ve+32|0;if(S)s[A>>2]=(s[A>>2]|0)+f;else i=f;s[T>>2]=i;w=Ve+36|0;R=Ve+20|0;o=Ve+40|0;c=Ve+24|0;v=Ve+8|0;_=Ve+4|0;E=Ve+44|0;while(1){if(i>>>0>=8388609)break;f=s[A>>2]|0;m=f>>>23;if((m|0)==255)s[w>>2]=(s[w>>2]|0)+1;else{b=f>>>31;i=s[o>>2]|0;if((i|0)>-1){f=s[c>>2]|0;if((f+(s[v>>2]|0)|0)>>>0<(s[_>>2]|0)>>>0){s[c>>2]=f+1;r[(s[Ve>>2]|0)+f>>0]=i+b;i=0}else i=-1;s[E>>2]=s[E>>2]|i}i=s[w>>2]|0;if(i|0){b=b+255&255;do{f=s[c>>2]|0;if((f+(s[v>>2]|0)|0)>>>0<(s[_>>2]|0)>>>0){s[c>>2]=f+1;r[(s[Ve>>2]|0)+f>>0]=b;f=0;i=s[w>>2]|0}else f=-1;s[E>>2]=s[E>>2]|f;i=i+-1|0;s[w>>2]=i}while((i|0)!=0)}s[o>>2]=m&255;f=s[A>>2]|0;i=s[T>>2]|0}s[A>>2]=f<<8&2147483392;i=i<<8;s[T>>2]=i;s[R>>2]=(s[R>>2]|0)+8}if(S){if(Me){b=O+2|0;b=(p|0)<(b|0)?p:b;f=s[Ve>>2]|0;p=s[v>>2]|0;i=0-p|0;Tn(f+b+i|0,f+(s[_>>2]|0)+i|0,p|0)|0;s[_>>2]=b;p=b;i=s[T>>2]|0;f=b;u=2;b=b<<3}else{f=P;b=I}C=p<<3;Ue=s[R>>2]|0;s[R>>2]=Ue+(C-(Ue+((re(i|0)|0)+-32)));Ue=x}else{f=P;Ue=0;C=1;b=I}}else{f=P;Ue=0;b=I}S=e+16|0;T=Fe+16|0;R=Fe+20|0;x=je<<2;_=g>65536;A=0;do{w=_&(s[S>>2]|0)!=0;c=t+(A<<2)|0;v=V+((te(A,U)|0)<<2)+(N<<2)|0;o=s[W>>2]|0;E=e+160+(A<<2)|0;y=+h[T>>2];g=+h[E>>2];e:do if(+h[R>>2]==0){if((o|0)!=1){i=(je|0)/(o|0)|0;Se=64;break}if(w){i=je;Se=65}else{i=0;while(1){if((i|0)>=(je|0))break e;Pe=+h[c+((te(i,et)|0)<<2)>>2]*32768;h[v+(i<<2)>>2]=Pe-g;i=i+1|0;g=y*Pe}}}else{i=(je|0)/(o|0)|0;if((o|0)==1)Se=65;else Se=64}while(0);if((Se|0)==64){kn(v|0,0,x|0)|0;Se=65}e:do if((Se|0)==65){Se=0;m=0;while(1){if((m|0)>=(i|0))break;h[v+((te(m,o)|0)<<2)>>2]=+h[c+((te(m,et)|0)<<2)>>2]*32768;m=m+1|0}t:do if(w){m=0;while(1){if((m|0)>=(i|0)){i=0;break t}De=v+((te(m,o)|0)<<2)|0;Pe=+h[De>>2];ye=Pe>65536;Ae=Pe<-65536&(ye^1);h[De>>2]=Ae|ye?Ae?-65536:65536:Pe;m=m+1|0}}else i=0;while(0);while(1){if((i|0)>=(je|0))break e;De=v+(i<<2)|0;Pe=+h[De>>2];h[De>>2]=Pe-g;i=i+1|0;g=y*Pe}}while(0);h[E>>2]=g;A=A+1|0}while((A|0)<(et|0));Ae=e+68|0;if((((s[Ae>>2]|0)!=0&(u|0)>3|(u|0)>(Ye*12|0))&(xe^1)&(Ue|0)==0?(s[e+20>>2]|0)==0:0)?(s[e+24>>2]|0)>4:0){if((s[e+116>>2]|0)==0|(Ee|0)==3)i=0;else i=(s[e+64>>2]|0)==5010;i=i^1}else i=0;le=e+100|0;De=s[le>>2]|0;i=Qt(e,V,D,et,je,De,$e,L,B,i&1,u)|0;Pe=+h[L>>2];if(!(Pe>.4000000059604645)?!(+h[e+108>>2]>.4000000059604645):0)ye=0;else Se=82;do if((Se|0)==82){if(s[e+120>>2]|0?!(+h[e+124>>2]>.3):0){ye=0;break}ae=+(s[$e>>2]|0);he=+(s[e+104>>2]|0);ye=(ae>he*1.26|ae(b|0))){c=Ve+28|0;i=s[c>>2]|0;i=i-(i>>>1)|0;s[c>>2]=i;v=Ve+32|0;_=Ve+36|0;E=Ve+20|0;A=Ve+40|0;S=Ve+24|0;T=Ve+8|0;R=Ve+4|0;x=Ve+44|0;while(1){if(i>>>0>=8388609)break e;m=s[v>>2]|0;o=m>>>23;if((o|0)==255)s[_>>2]=(s[_>>2]|0)+1;else{w=m>>>31;i=s[A>>2]|0;if((i|0)>-1){m=s[S>>2]|0;if((m+(s[T>>2]|0)|0)>>>0<(s[R>>2]|0)>>>0){s[S>>2]=m+1;r[(s[Ve>>2]|0)+m>>0]=i+w;i=0}else i=-1;s[x>>2]=s[x>>2]|i}i=s[_>>2]|0;if(i|0){w=w+255&255;do{m=s[S>>2]|0;if((m+(s[T>>2]|0)|0)>>>0<(s[R>>2]|0)>>>0){s[S>>2]=m+1;r[(s[Ve>>2]|0)+m>>0]=w;m=0;i=s[_>>2]|0}else m=-1;s[x>>2]=s[x>>2]|m;i=i+-1|0;s[_>>2]=i}while((i|0)!=0)}s[A>>2]=o&255;m=s[v>>2]|0;i=s[c>>2]|0}s[v>>2]=m<<8&2147483392;i=i<<8;s[c>>2]=i;s[E>>2]=(s[E>>2]|0)+8}}}else{x=Ve+28|0;m=s[x>>2]|0;i=m>>>1;C=Ve+32|0;m=(s[C>>2]|0)+(m-i)|0;s[C>>2]=m;s[x>>2]=i;I=Ve+36|0;P=Ve+20|0;O=Ve+40|0;N=Ve+24|0;t=Ve+8|0;D=Ve+4|0;L=Ve+44|0;while(1){if(i>>>0>=8388609)break;o=m>>>23;if((o|0)==255)s[I>>2]=(s[I>>2]|0)+1;else{w=m>>>31;i=s[O>>2]|0;if((i|0)>-1){m=s[N>>2]|0;if((m+(s[t>>2]|0)|0)>>>0<(s[D>>2]|0)>>>0){s[N>>2]=m+1;r[(s[Ve>>2]|0)+m>>0]=i+w;i=0}else i=-1;s[L>>2]=s[L>>2]|i}i=s[I>>2]|0;if(i|0){w=w+255&255;do{m=s[N>>2]|0;if((m+(s[t>>2]|0)|0)>>>0<(s[D>>2]|0)>>>0){s[N>>2]=m+1;r[(s[Ve>>2]|0)+m>>0]=w;m=0;i=s[I>>2]|0}else m=-1;s[L>>2]=s[L>>2]|m;i=i+-1|0;s[I>>2]=i}while((i|0)!=0)}s[O>>2]=o&255;m=s[C>>2]|0;i=s[x>>2]|0}m=m<<8&2147483392;s[C>>2]=m;i=i<<8;s[x>>2]=i;s[P>>2]=(s[P>>2]|0)+8}T=s[$e>>2]|0;c=T+1|0;s[$e>>2]=c;R=re(c|0)|0;E=32-R|0;v=E+-5|0;w=(i>>>0)/6|0;if(!v)i=i-(te(w,10-E|0)|0)|0;else{m=m+(i-(te(w,11-E|0)|0))|0;s[C>>2]=m;i=w}s[x>>2]=i;while(1){if(i>>>0>=8388609)break;o=m>>>23;if((o|0)==255)s[I>>2]=(s[I>>2]|0)+1;else{w=m>>>31;i=s[O>>2]|0;if((i|0)>-1){m=s[N>>2]|0;if((m+(s[t>>2]|0)|0)>>>0<(s[D>>2]|0)>>>0){s[N>>2]=m+1;r[(s[Ve>>2]|0)+m>>0]=i+w;i=0}else i=-1;s[L>>2]=s[L>>2]|i}i=s[I>>2]|0;if(i|0){w=w+255&255;do{m=s[N>>2]|0;if((m+(s[t>>2]|0)|0)>>>0<(s[D>>2]|0)>>>0){s[N>>2]=m+1;r[(s[Ve>>2]|0)+m>>0]=w;m=0;i=s[I>>2]|0}else m=-1;s[L>>2]=s[L>>2]|m;i=i+-1|0;s[I>>2]=i}while((i|0)!=0)}s[O>>2]=o&255;m=s[C>>2]|0;i=s[x>>2]|0}m=m<<8&2147483392;s[C>>2]=m;i=i<<8;s[x>>2]=i;s[P>>2]=(s[P>>2]|0)+8}_=c-(16<>2]|0;S=Ve+16|0;o=s[S>>2]|0;if((o+E|0)>>>0>32){c=7-o|0;c=o+((c|0)>-8?c:-8)&-8;v=o;do{m=s[t>>2]|0;w=s[D>>2]|0;if(((s[N>>2]|0)+m|0)>>>0>>0){m=m+1|0;s[t>>2]=m;r[(s[Ve>>2]|0)+(w-m)>>0]=i;m=0}else m=-1;s[L>>2]=s[L>>2]|m;i=i>>>8;v=v+-8|0}while((v|0)>7);o=o+-8-c|0}i=i|_<>2]=i;s[S>>2]=m;w=(s[P>>2]|0)+E|0;s[P>>2]=w;s[$e>>2]=T;_=s[B>>2]|0;if((m+3|0)>>>0>32){v=o+23|0;c=R+-24-o|0;c=o+((c|0)>-8?c:-8)+31-R&-8;do{w=s[t>>2]|0;o=s[D>>2]|0;if(((s[N>>2]|0)+w|0)>>>0>>0){w=w+1|0;s[t>>2]=w;r[(s[Ve>>2]|0)+(o-w)>>0]=i;w=0}else w=-1;s[L>>2]=s[L>>2]|w;i=i>>>8;m=m+-8|0}while((m|0)>7);w=s[P>>2]|0;m=v-R-c|0}s[A>>2]=i|_<>2]=m+3;w=w+3|0;s[P>>2]=w;i=s[x>>2]|0;m=i>>>2;if((De|0)>0){ve=a[29345+(De+-1)>>0]|0;ge=i-(te(m,ve)|0)|0;s[C>>2]=(s[C>>2]|0)+ge;m=te(m,ve-(a[29345+De>>0]|0)|0)|0}else m=i-(te(m,a[29345+De>>0]|0)|0)|0;s[x>>2]=m;i=w;while(1){if(m>>>0>=8388609)break e;w=s[C>>2]|0;o=w>>>23;if((o|0)==255)s[I>>2]=(s[I>>2]|0)+1;else{w=w>>>31;i=s[O>>2]|0;if((i|0)>-1){m=s[N>>2]|0;if((m+(s[t>>2]|0)|0)>>>0<(s[D>>2]|0)>>>0){s[N>>2]=m+1;r[(s[Ve>>2]|0)+m>>0]=i+w;i=0}else i=-1;s[L>>2]=s[L>>2]|i}i=s[I>>2]|0;if(i|0){w=w+255&255;do{m=s[N>>2]|0;if((m+(s[t>>2]|0)|0)>>>0<(s[D>>2]|0)>>>0){s[N>>2]=m+1;r[(s[Ve>>2]|0)+m>>0]=w;m=0;i=s[I>>2]|0}else m=-1;s[L>>2]=s[L>>2]|m;i=i+-1|0;s[I>>2]=i}while((i|0)!=0)}s[O>>2]=o&255;w=s[C>>2]|0;m=s[x>>2]|0;i=s[P>>2]|0}s[C>>2]=w<<8&2147483392;m=m<<8;s[x>>2]=m;i=i+8|0;s[P>>2]=i}}while(0);me=e+24|0;if((s[me>>2]|0)>0?(s[Ae>>2]|0)==0:0)I=ei(V,U,et,Ie,J)|0;else I=0;D=(Ee|0)>0;e:do if(D?((s[Ve+20>>2]|0)+((re(s[Ve+28>>2]|0)|0)+-32)+3|0)<=(b|0):0)if(I){R=(te(et,je)|0)<<2;T=l;l=l+((1*R|0)+15&-16)|0;R=l;l=l+((1*(Ze<<2)|0)+15&-16)|0;x=l;l=l+((1*(Ze<<2)|0)+15&-16)|0;S=te(Ye,rt)|0;C=l;l=l+((1*(S<<2)|0)+15&-16)|0;if((s[me>>2]|0)>7){ti(Fe,0,V,T,Ye,et,Ee,s[W>>2]|0);i=s[Oe>>2]|0;m=s[pe>>2]<=(de|0))break;v=n[i+(A<<1)>>1]|0;o=T+(w+(v<>1]|0)-v<=(v|0))break;he=+h[o+(E<<2)>>2];E=E+1|0;g=g+he*he}he=+H(+(g+1.0000000272452012e-27));h[R+(A+(te(_,s[We>>2]|0)|0)<<2)>>2]=he;A=c}_=_+1|0}while((_|0)<(Ye|0));m=0;do{i=0;while(1){if((i|0)>=(de|0)){i=de;break}ve=i+(te(m,s[We>>2]|0)|0)|0;he=+Q(+ +h[R+(ve<<2)>>2])*1.4426950408889634;h[C+(ve<<2)>>2]=he-+h[17220+(i<<2)>>2];i=i+1|0}while(1){if((i|0)>=(it|0))break;h[C+((te(m,s[We>>2]|0)|0)+i<<2)>>2]=-14;i=i+1|0}m=m+1|0}while((m|0)<(Ye|0));g=+(Ee|0)*.5;i=0;while(1){if((i|0)>=(S|0)){O=1;P=0;i=I;I=Y;ve=0;break e}ve=C+(i<<2)|0;h[ve>>2]=+h[ve>>2]+g;i=i+1|0}}else{O=0;P=0;i=I;I=Y;ve=0}}else{i=I;m=0;Se=171}else{i=0;m=1;Se=171}while(0);if((Se|0)==171){R=(te(et,je)|0)<<2;T=l;l=l+((1*R|0)+15&-16)|0;R=l;l=l+((1*(Ze<<2)|0)+15&-16)|0;x=l;l=l+((1*(Ze<<2)|0)+15&-16)|0;O=(te(Ye,rt)|0)<<2;C=l;l=l+((1*O|0)+15&-16)|0;O=0;P=1;I=0;ve=m}ti(Fe,I,V,T,Ye,et,Ee,s[W>>2]|0);ge=(et|0)==2;if(ge&(Ye|0)==1)s[J>>2]=0;m=s[Oe>>2]|0;w=s[pe>>2]<=(de|0))break;_=n[m+(S<<1)>>1]|0;c=T+(o+(_<>1]|0)-_<=(_|0))break;he=+h[c+(A<<2)>>2];A=A+1|0;g=g+he*he}he=+H(+(g+1.0000000272452012e-27));h[R+(S+(te(E,s[We>>2]|0)|0)<<2)>>2]=he;S=v}E=E+1|0}while((E|0)<(Ye|0));E=(s[Ae>>2]|0)==0;e:do if(E)w=0;else{m=2;while(1){if((m|0)>=(it|0)){w=0;break e}we=R+(m<<2)|0;ae=+h[we>>2];he=+h[R>>2]*9999999747378752e-20;he=ae>2]=he>1.0000000036274937e-15?he:1.0000000036274937e-15;m=m+1|0}}while(0);do{m=0;while(1){if((m|0)>=(de|0)){m=de;break}we=m+(te(w,s[We>>2]|0)|0)|0;he=+Q(+ +h[R+(we<<2)>>2])*1.4426950408889634;h[x+(we<<2)>>2]=he-+h[17220+(m<<2)>>2];m=m+1|0}while(1){if((m|0)>=(it|0))break;h[x+((te(w,s[We>>2]|0)|0)+m<<2)>>2]=-14;m=m+1|0}w=w+1|0}while((w|0)<(Ye|0));we=te(Ye,rt)|0;F=l;l=l+((1*(we<<2)|0)+15&-16)|0;kn(F|0,0,it<<2|0)|0;if(!xe?(G=s[e+204>>2]|0,!((G|0)==0|E^1)):0){_=s[e+92>>2]|0;_=(_|0)<2?2:_;v=0;m=0;y=0;g=0;while(1){if((v|0)>=(Ye|0))break;c=te(rt,v)|0;o=0;k=g;while(1){if((o|0)>=(_|0))break;g=+h[G+(c+o<<2)>>2];w=g<.25;do if(g>-2|w^1){if(w){if(!(g>0))break}else g=.25;g=g*.5}else g=-2;while(0);fe=o+1|0;ue=(n[ke+(fe<<1)>>1]|0)-(n[ke+(o<<1)>>1]|0)|0;m=m+ue|0;y=y+g*+((o<<1|1)-_|0);o=fe;k=k+g*+(ue|0)}v=v+1|0;g=k}g=g/+(m|0)+.20000000298023224;y=y*6/+(te(te(te(Ye,_+-1|0)|0,_+1|0)|0,_)|0)*.5;m=y<.03099999949336052;y=m?m&!(y>-.03099999949336052)?-.03099999949336052:y:.03099999949336052;m=(n[ke+(_<<1)>>1]|0)/2|0;v=0;while(1){w=v+1|0;if((n[ke+(w<<1)>>1]|0)<(m|0))v=w;else break}o=(Ye|0)==2;m=0;c=0;while(1){if((c|0)>=(_|0))break;w=G+(c<<2)|0;if(o){ue=G+(rt+c<<2)|0;w=+h[w>>2]>+h[ue>>2]?w:ue}k=+h[w>>2];k=(k<0?k:0)-(g+y*+(c-v|0));if(k>.25){h[F+(c<<2)>>2]=k+-.25;m=m+1|0}c=c+1|0}e:do if((m|0)>2){g=g+.25;if(g>0){kn(F|0,0,_<<2|0)|0;y=0;g=0;break}else m=0;while(1){if((m|0)>=(_|0))break e;ue=F+(m<<2)|0;he=+h[ue>>2]+-.25;h[ue>>2]=he<0?0:he;m=m+1|0}}while(0);he=g+.20000000298023224;Z=y*64}else{he=0;Z=0}if(E){k=P?0:+(Ee|0)*.5;m=(Ye|0)==2;y=-10;M=0;w=tt;while(1){if((w|0)>=(it|0))break;ae=y+-1;g=+h[x+(w<<2)>>2]-k;g=ae>g?ae:g;do if(m){y=+h[x+(w+rt<<2)>>2]-k;if(g>y)break;g=y}while(0);y=g;M=M+g;w=w+1|0}ue=e+208|0;j=+h[ue>>2];ae=M/+(it-tt|0)-j;oe=ae<-1.5;fe=ae>3&(oe^1);ae=fe|oe?fe?3:-1.5:ae;h[ue>>2]=j+ae*.019999999552965164}else ae=0;if(!O)Mn(C|0,x|0,we<<2|0)|0;e:do if(D){t=Ve+20|0;w=s[t>>2]|0;N=Ve+28|0;m=s[N>>2]|0;do if((i|0)==0?(w+((re(m|0)|0)+-32)+3|0)<=(b|0):0){if((s[me>>2]|0)<=4){c=m;v=w;E=T;i=0;w=I;break}if(!E){c=m;v=w;E=T;i=0;w=I;break}if(xe){c=m;v=w;E=T;i=0;w=I;break}t:do if((Ye|0)==1){i=s[Xe>>2]|0;s[K>>2]=i;g=(s[d>>2]=i,+h[d>>2]);i=0;while(1){i=i+1|0;if((i|0)>=(it|0))break t;j=+h[Xe+(i<<2)>>2];j=g+-1>j?g+-1:j;h[K+(i<<2)>>2]=j;g=j}}else{j=+h[Xe>>2];g=+h[Xe+(rt<<2)>>2];g=j>g?j:g;h[K>>2]=g;i=0;while(1){i=i+1|0;if((i|0)>=(it|0))break t;M=+h[Xe+(i<<2)>>2];j=+h[Xe+(i+rt<<2)>>2];ue=M>j;j=g+-1>(ue?M:j)?g+-1:ue?M:j;h[K+(i<<2)>>2]=j;g=j}}while(0);i=it+-2|0;while(1){if((i|0)<0)break;ue=K+(i<<2)|0;M=+h[ue>>2];j=+h[K+(i+1<<2)>>2]+-1;h[ue>>2]=M>j?M:j;i=i+-1|0}i=it+-1|0;w=0;g=0;do{m=te(w,rt)|0;o=2;while(1){if((o|0)>=(i|0))break;M=+h[x+(o+m<<2)>>2];j=+h[K+(o<<2)>>2];j=(M<0?0:M)-(j<0?0:j);o=o+1|0;g=g+(j<0?0:j)}w=w+1|0}while((w|0)<(Ye|0));if(g/+(te(it+-3|0,Ye)|0)>1){ti(Fe,Y,V,T,Ye,et,Ee,s[W>>2]|0);i=s[Oe>>2]|0;m=s[pe>>2]<=(de|0))break;v=n[i+(A<<1)>>1]|0;o=T+(w+(v<>1]|0)-v<=(v|0))break;j=+h[o+(E<<2)>>2];E=E+1|0;g=g+j*j}j=+H(+(g+1.0000000272452012e-27));h[R+(A+(te(_,s[We>>2]|0)|0)<<2)>>2]=j;A=c}_=_+1|0}while((_|0)<(Ye|0));m=0;do{i=0;while(1){if((i|0)>=(de|0)){i=de;break}ue=i+(te(m,s[We>>2]|0)|0)|0;j=+Q(+ +h[R+(ue<<2)>>2])*1.4426950408889634;h[x+(ue<<2)>>2]=j-+h[17220+(i<<2)>>2];i=i+1|0}while(1){if((i|0)>=(it|0))break;h[x+((te(m,s[We>>2]|0)|0)+i<<2)>>2]=-14;i=i+1|0}m=m+1|0}while((m|0)<(Ye|0));g=+(Ee|0)*.5;i=0;while(1){if((i|0)>=(we|0))break;ue=C+(i<<2)|0;h[ue>>2]=+h[ue>>2]+g;i=i+1|0}h[Ie>>2]=.20000000298023224;m=T;i=1;w=Y}else{m=T;i=0;w=I}c=s[N>>2]|0;v=s[t>>2]|0;E=m}else{c=m;v=w;E=T;w=I}while(0);if((v+((re(c|0)|0)+-32)+3|0)>(b|0)){ue=i;X=w;break}o=c>>>3;m=c-o|0;O=Ve+32|0;if(i){s[O>>2]=(s[O>>2]|0)+m;m=o}s[N>>2]=m;_=Ve+36|0;A=Ve+40|0;S=Ve+24|0;T=Ve+8|0;I=Ve+4|0;P=Ve+44|0;o=v;while(1){if(m>>>0>=8388609){ue=i;X=w;break e}c=s[O>>2]|0;v=c>>>23;if((v|0)==255)s[_>>2]=(s[_>>2]|0)+1;else{c=c>>>31;m=s[A>>2]|0;if((m|0)>-1){o=s[S>>2]|0;if((o+(s[T>>2]|0)|0)>>>0<(s[I>>2]|0)>>>0){s[S>>2]=o+1;r[(s[Ve>>2]|0)+o>>0]=m+c;m=0}else m=-1;s[P>>2]=s[P>>2]|m}m=s[_>>2]|0;if(m|0){c=c+255&255;do{o=s[S>>2]|0;if((o+(s[T>>2]|0)|0)>>>0<(s[I>>2]|0)>>>0){s[S>>2]=o+1;r[(s[Ve>>2]|0)+o>>0]=c;o=0;m=s[_>>2]|0}else o=-1;s[P>>2]=s[P>>2]|o;m=m+-1|0;s[_>>2]=m}while((m|0)!=0)}s[A>>2]=v&255;c=s[O>>2]|0;m=s[N>>2]|0;o=s[t>>2]|0}s[O>>2]=c<<8&2147483392;m=m<<8;s[N>>2]=m;o=o+8|0;s[t>>2]=o}}else{E=T;ue=i;X=I}while(0);m=(te(Ye,je)|0)<<2;$=l;l=l+((1*m|0)+15&-16)|0;m=s[Oe>>2]|0;w=s[pe>>2]<=(de|0))break;g=1/(+h[R+(i+(te(_,s[We>>2]|0)|0)<<2)>>2]+1.0000000272452012e-27);c=i+1|0;v=n[m+(c<<1)>>1]<>1]<=(v|0)){i=c;continue e}fe=i+o|0;h[$+(fe<<2)>>2]=+h[E+(fe<<2)>>2]*g;i=i+1|0}}_=_+1|0;if((_|0)>=(Ye|0))break}Y=l;l=l+((1*(rt<<2)|0)+15&-16)|0;e:do if((f|0)<(Ye*15|0))if(xe&(f|0)<15){i=0;Se=320}else{i=0;Se=322}else{if(xe)if((f|0)<15){i=0;Se=320;break}else{i=0;Se=322;break}if((s[me>>2]|0)<=1){i=0;Se=322;break}if(s[Ae>>2]|0){i=0;Se=322;break}i=(1280/(f|0)|0)+2|0;i=ii(Fe,de,ue,Y,(i|0)<5?5:i,$,je,Ee,+h[Ie>>2],s[J>>2]|0)|0;m=Y+(de+-1<<2)|0;w=de;while(1){if((w|0)>=(it|0))break e;s[Y+(w<<2)>>2]=s[m>>2];w=w+1|0}}while(0);e:do if((Se|0)==320)while(1){Se=0;if((i|0)>=(it|0)){i=ue;break e}s[Y+(i<<2)>>2]=0;i=i+1|0;Se=320}else if((Se|0)==322)while(1){Se=0;if((i|0)>=(it|0)){i=0;break e}s[Y+(i<<2)>>2]=ue;i=i+1|0;Se=322}while(0);oe=l;l=l+((1*(we<<2)|0)+15&-16)|0;c=0;do{m=te(c,rt)|0;v=tt;while(1){if((v|0)>=(it|0))break;w=v+m|0;o=x+(w<<2)|0;g=+h[o>>2];if(+q(+(g-+h[Xe+(w<<2)>>2]))<2)h[o>>2]=g-+h[Ke+(w<<2)>>2]*.25;v=v+1|0}c=c+1|0}while((c|0)<(Ye|0));Si(Fe,tt,it,de,x,Xe,b,oe,Ve,Ye,Ee,u,s[e+12>>2]|0,e+84|0,(s[me>>2]|0)>3&1,s[e+56>>2]|0,s[Ae>>2]|0);ie=Ve+4|0;m=s[ie>>2]<<3;ne=Ve+20|0;c=s[ne>>2]|0;fe=Ve+28|0;o=s[fe>>2]|0;_=c+((re(o|0)|0)+-32)|0;w=(ue|0)!=0;v=w?2:4;if(D)O=(_+v+1|0)>>>0<=m>>>0;else O=0;P=m-(O&1)|0;I=w?4:5;V=Ve+32|0;W=Ve+36|0;K=Ve+40|0;J=Ve+24|0;ee=Ve+8|0;se=Ve+44|0;E=0;T=tt;S=0;while(1){if((T|0)>=(it|0))break;m=Y+(T<<2)|0;if((_+v|0)>>>0>P>>>0){s[m>>2]=E;w=E;m=S}else{A=s[m>>2]|0;v=o>>>v;w=o-v|0;m=(A|0)==(E|0);if(!m)s[V>>2]=(s[V>>2]|0)+w;v=m?w:v;s[fe>>2]=v;m=c;while(1){if(v>>>0>=8388609)break;w=s[V>>2]|0;c=w>>>23;if((c|0)==255){s[W>>2]=(s[W>>2]|0)+1;o=v}else{o=w>>>31;m=s[K>>2]|0;if((m|0)>-1){w=s[J>>2]|0;if((w+(s[ee>>2]|0)|0)>>>0<(s[ie>>2]|0)>>>0){s[J>>2]=w+1;r[(s[Ve>>2]|0)+w>>0]=m+o;m=0}else m=-1;s[se>>2]=s[se>>2]|m}m=s[W>>2]|0;if(m|0){o=o+255&255;do{w=s[J>>2]|0;if((w+(s[ee>>2]|0)|0)>>>0<(s[ie>>2]|0)>>>0){s[J>>2]=w+1;r[(s[Ve>>2]|0)+w>>0]=o;w=0;m=s[W>>2]|0}else w=-1;s[se>>2]=s[se>>2]|w;m=m+-1|0;s[W>>2]=m}while((m|0)!=0)}s[K>>2]=c&255;w=s[V>>2]|0;o=s[fe>>2]|0;m=s[ne>>2]|0}s[V>>2]=w<<8&2147483392;v=o<<8;s[fe>>2]=v;m=m+8|0;s[ne>>2]=m}c=m;o=v;w=A;_=m+((re(v|0)|0)+-32)|0;m=S|A}E=w;T=T+1|0;v=I;S=m}v=ue<<2;do if(O){if((r[v+S+(27892+(Ee<<3))>>0]|0)==(r[(v|2)+S+(27892+(Ee<<3))>>0]|0)){i=0;m=o;break}m=o>>>1;w=o-m|0;if(!i)m=w;else s[V>>2]=(s[V>>2]|0)+w;s[fe>>2]=m;w=c;while(1){if(m>>>0>=8388609)break;o=s[V>>2]|0;c=o>>>23;if((c|0)==255)s[W>>2]=(s[W>>2]|0)+1;else{o=o>>>31;m=s[K>>2]|0;if((m|0)>-1){w=s[J>>2]|0;if((w+(s[ee>>2]|0)|0)>>>0<(s[ie>>2]|0)>>>0){s[J>>2]=w+1;r[(s[Ve>>2]|0)+w>>0]=m+o;m=0}else m=-1;s[se>>2]=s[se>>2]|m}m=s[W>>2]|0;if(m|0){o=o+255&255;do{w=s[J>>2]|0;if((w+(s[ee>>2]|0)|0)>>>0<(s[ie>>2]|0)>>>0){s[J>>2]=w+1;r[(s[Ve>>2]|0)+w>>0]=o;w=0;m=s[W>>2]|0}else w=-1;s[se>>2]=s[se>>2]|w;m=m+-1|0;s[W>>2]=m}while((m|0)!=0)}s[K>>2]=c&255;o=s[V>>2]|0;m=s[fe>>2]|0;w=s[ne>>2]|0}s[V>>2]=o<<8&2147483392;m=m<<8;s[fe>>2]=m;w=w+8|0;s[ne>>2]=w}i=i<<1;c=w}else{i=0;m=o}while(0);i=v+i|0;w=tt;while(1){if((w|0)>=(it|0))break;G=Y+(w<<2)|0;s[G>>2]=r[i+(s[G>>2]|0)+(27892+(Ee<<3))>>0];w=w+1|0}e:do if((c+((re(m|0)|0)+-32)+4|0)<=(b|0)){t:do if(!(s[Ae>>2]|0)){i:do if(xe){if(!(s[me>>2]|0)){s[e+80>>2]=0;Se=415;break}i=e+80|0;if(!ue){s[i>>2]=3;i=3;Se=414;break t}else{s[i>>2]=2;i=2;Se=414;break t}}else{i=s[me>>2]|0;do if(!X){if((i|0)<3|(u|0)<(Ye*10|0))break;L=e+88|0;U=e+80|0;B=s[U>>2]|0;D=e+96|0;t=s[Oe>>2]|0;P=s[pe>>2]<>1]|0)-(n[t+(de+-1<<1)>>1]|0)<>2]=0;i=0;u=m>>>5;break i}else{N=0;i=0;u=0;w=0}do{O=te(N,P)|0;I=0;while(1){if((I|0)>=(de|0))break;E=n[t+(I<<1)>>1]|0;o=$+(E<>1]|0)-E<>2];j=j*j*g;v=v+1|0;A=A+(j<.25&1)|0;S=S+(j<.015625&1)|0;T=T+(j<.0625&1)|0}if((I|0)>((s[We>>2]|0)+-4|0))i=i+((T+A<<5>>>0)/(E>>>0)|0)|0;I=_;u=u+1|0;w=w+(((S<<1|0)>=(E|0)&1)+((T<<1|0)>=(E|0)&1)+((A<<1|0)>=(E|0)&1)<<8)|0}N=N+1|0}while((N|0)<(Ye|0));if(!ce){if(!i)i=0;else i=(i>>>0)/((te(4-(s[We>>2]|0)+de|0,Ye)|0)>>>0)|0;i=(s[D>>2]|0)+i>>1;s[D>>2]=i;switch(s[le>>2]|0){case 2:{i=i+4|0;break}case 0:{i=i+-4|0;break}default:{}}s[le>>2]=(i|0)>22?2:(i|0)>18&1}i=((w>>>0)/(u>>>0)|0)+(s[L>>2]|0)>>1;s[L>>2]=i;i=(i*3|0)+(3-B<<7|64)+2>>2;do if((i|0)>=80){if((i|0)<256){i=2;break}i=(i|0)<384&1;s[U>>2]=i;u=m>>>5;if((i|0)>0){Se=418;break t}else break i}else i=3;while(0);s[U>>2]=i;u=m>>>5;Se=418;break t}while(0);u=e+80|0;if(!i){s[u>>2]=0;Se=415;break}else{s[u>>2]=2;i=2;Se=414;break t}}while(0);if((Se|0)==415){i=0;u=m>>>5}i=m-(te(u,a[28203+i>>0]|0)|0)|0}else{s[le>>2]=0;s[e+80>>2]=2;i=2;Se=414}while(0);if((Se|0)==414){u=m>>>5;Se=418}if((Se|0)==418){pe=a[28203+(i+-1)>>0]|0;de=m-(te(u,pe)|0)|0;s[V>>2]=(s[V>>2]|0)+de;i=te(u,pe-(a[28203+i>>0]|0)|0)|0}s[fe>>2]=i;u=c;while(1){if(i>>>0>=8388609)break e;m=s[V>>2]|0;w=m>>>23;if((w|0)==255)s[W>>2]=(s[W>>2]|0)+1;else{m=m>>>31;i=s[K>>2]|0;if((i|0)>-1){u=s[J>>2]|0;if((u+(s[ee>>2]|0)|0)>>>0<(s[ie>>2]|0)>>>0){ -s[J>>2]=u+1;r[(s[Ve>>2]|0)+u>>0]=i+m;i=0}else i=-1;s[se>>2]=s[se>>2]|i}i=s[W>>2]|0;if(i|0){m=m+255&255;do{u=s[J>>2]|0;if((u+(s[ee>>2]|0)|0)>>>0<(s[ie>>2]|0)>>>0){s[J>>2]=u+1;r[(s[Ve>>2]|0)+u>>0]=m;u=0;i=s[W>>2]|0}else u=-1;s[se>>2]=s[se>>2]|u;i=i+-1|0;s[W>>2]=i}while((i|0)!=0)}s[K>>2]=w&255;m=s[V>>2]|0;i=s[fe>>2]|0;u=s[ne>>2]|0}s[V>>2]=m<<8&2147483392;i=i<<8;s[fe>>2]=i;u=u+8|0;s[ne>>2]=u}}while(0);G=l;l=l+((1*(rt<<2)|0)+15&-16)|0;O=e+52|0;j=+ri(x,C,rt,tt,it,Ye,G,s[be>>2]|0,s[Fe+56>>2]|0,ue,s[_e>>2]|0,s[O>>2]|0,ke,Ee,f,Ce,s[Ae>>2]|0,F);if(s[Ae>>2]|0)s[G>>2]=(f|0)>26?8:(f|0)/3|0;N=l;l=l+((1*(rt<<2)|0)+15&-16)|0;i=s[We>>2]|0;f=(Ee<<1)+Ye+-1|0;u=Fe+104|0;m=0;while(1){if((m|0)>=(i|0))break;_e=m+1|0;be=s[Oe>>2]|0;pe=(te(i,f)|0)+m|0;s[N+(m<<2)>>2]=(te(te((a[(s[u>>2]|0)+pe>>0]|0)+64|0,Ye)|0,(n[be+(_e<<1)>>1]|0)-(n[be+(m<<1)>>1]|0)<>2;m=_e}C=b<<3;be=s[ne>>2]|0;i=s[fe>>2]|0;_e=32-(re(i|0)|0)|0;I=i>>>(_e+-16|0);A=(I>>>12)+-8|0;f=be;u=6;b=tt;A=(be<<3)-((_e<<3)+(A+(I>>>0>(s[5272+(A<<2)>>2]|0)>>>0&1)))|0;I=0;while(1){if((b|0)>=(it|0))break;T=b+1|0;o=(te(Ye,(n[ke+(T<<1)>>1]|0)-(n[ke+(b<<1)>>1]|0)|0)|0)<=(C-S|0))break;if((_|0)>=(s[c>>2]|0))break;w=(v|0)<(s[E>>2]|0);b=i>>>b;i=i-b|0;if(w){s[V>>2]=(s[V>>2]|0)+i;i=b}s[fe>>2]=i;while(1){if(i>>>0>=8388609)break;b=s[V>>2]|0;m=b>>>23;if((m|0)==255)s[W>>2]=(s[W>>2]|0)+1;else{b=b>>>31;i=s[K>>2]|0;if((i|0)>-1){f=s[J>>2]|0;if((f+(s[ee>>2]|0)|0)>>>0<(s[ie>>2]|0)>>>0){s[J>>2]=f+1;r[(s[Ve>>2]|0)+f>>0]=i+b;i=0}else i=-1;s[se>>2]=s[se>>2]|i}i=s[W>>2]|0;if(i|0){b=b+255&255;do{f=s[J>>2]|0;if((f+(s[ee>>2]|0)|0)>>>0<(s[ie>>2]|0)>>>0){s[J>>2]=f+1;r[(s[Ve>>2]|0)+f>>0]=b;f=0;i=s[W>>2]|0}else f=-1;s[se>>2]=s[se>>2]|f;i=i+-1|0;s[W>>2]=i}while((i|0)!=0)}s[K>>2]=m&255;b=s[V>>2]|0;i=s[fe>>2]|0;f=s[ne>>2]|0}s[V>>2]=b<<8&2147483392;i=i<<8;s[fe>>2]=i;f=f+8|0;s[ne>>2]=f}be=32-(re(i|0)|0)|0;_e=i>>>(be+-16|0);m=(_e>>>12)+-8|0;m=(f<<3)-((be<<3)+(m+(_e>>>0>(s[5272+(m<<2)>>2]|0)>>>0&1)))|0;if(!w)break;_=_+o|0;b=1;v=v+1|0;S=S+o|0}if(v)u=(u|0)<3?2:u+-1|0;s[E>>2]=_;b=T;A=m;I=S}F=(Ye|0)==2;if(F){if(!Ee)w=0;else{u=0;g=1.0000000036274937e-15;y=1.0000000036274937e-15;e:while(1){if((u|0)==13)break;ke=s[Oe>>2]|0;b=u+1|0;m=n[ke+(b<<1)>>1]<>1]<=(m|0)){u=b;continue e}k=+h[$+(u<<2)>>2];M=+h[$+(u+je<<2)>>2];u=u+1|0;g=g+(+q(+k)+ +q(+M));y=y+(+q(+(k+M))+ +q(+(k-M)))}}w=n[(s[Oe>>2]|0)+26>>1]<>2]=+(w+((Ee|0)<2?5:13)|0)*(y*.7071070075035095)>+(w|0)*g&1;w=Ee}g=+((Be|0)/1e3|0|0);m=e+200|0;u=s[m>>2]|0;b=0;while(1){if((b|0)>=21)break;if(+h[5104+(b<<2)>>2]>g)break;b=b+1|0}if(!((b|0)>(u|0)?+h[5104+(u<<2)>>2]+ +h[5188+(u<<2)>>2]>g:0))Se=480;do if((Se|0)==480){if((b|0)>=(u|0)){u=b;break}Ee=u+-1|0;if(!(+h[5104+(Ee<<2)>>2]-+h[5188+(Ee<<2)>>2](u|0);s[m>>2]=(it|0)<((U?tt:u)|0)?it:U?tt:u;U=w}else U=Ee;if((A+48|0)>(C-I|0))P=5;else{do if((tt|0)>0)Se=487;else{if(s[Ae>>2]|0){Se=487;break}c=e+196|0;M=+h[Ie>>2];v=s[e+200>>2]|0;if(F){u=0;g=0;while(1){if((u|0)==8)break;m=s[Oe>>2]|0;b=n[m+(u<<1)>>1]|0;o=b<>1]|0)-b<=(b|0))break;k=y+ +h[w+(m<<2)>>2]*+h[o+(m<<2)>>2];m=m+1|0;y=k}g=g+y}y=+q(+(g*.125));y=y>1?1:y;u=8;k=y;while(1){if((u|0)>=(v|0))break;m=s[Oe>>2]|0;b=n[m+(u<<1)>>1]|0;o=b<>1]|0)-b<=(b|0))break;st=g+ +h[w+(m<<2)>>2]*+h[o+(m<<2)>>2];m=m+1|0;g=st}st=+q(+g);k=k1?1:st;y=+Q(+(1.0010000467300415-y*y))*1.4426950408889634;g=y*.5;st=+Q(+(1.0010000467300415-st*st))*1.4426950408889634;y=y*.75;k=+h[c>>2]+.25;st=-((g>st?g:st)*.5);h[c>>2]=k=(b|0))break;g=g+ +h[x+(u+(te(m,s[We>>2]|0)|0)<<2)>>2]*+((u<<1)+2-it|0);u=u+1|0}m=m+1|0}while((m|0)<(Ye|0));g=(g/+(te(b,Ye)|0)+1)/6;ke=g>2;Ee=g<-2&(ke^1);g=y-(Ee|ke?Ee?-2:2:g)-Z-M*2;if(s[e+120>>2]|0){st=(+h[e+128>>2]+.05000000074505806)*2;ke=st>2;Ee=st<-2&(ke^1);g=g-(Ee|ke?Ee?-2:2:st)}u=~~+z(+(g+.5));if((u|0)>10){b=i>>>7;u=10;Se=512;break}b=i>>>7;if((u|0)>=0){if((u|0)>0){Se=512;break}}else u=0;w=u;i=i-(te(b,a[28207+u>>0]|0)|0)|0}while(0);if((Se|0)==487){h[e+196>>2]=0;b=i>>>7;u=5;Se=512}if((Se|0)==512){Se=a[28207+(u+-1)>>0]|0;w=i-(te(b,Se)|0)|0;s[V>>2]=(s[V>>2]|0)+w;w=u;i=te(b,Se-(a[28207+u>>0]|0)|0)|0}s[fe>>2]=i;b=f;while(1){if(i>>>0>=8388609)break;f=s[V>>2]|0;m=f>>>23;if((m|0)==255){s[W>>2]=(s[W>>2]|0)+1;u=f;f=b}else{u=f>>>31;i=s[K>>2]|0;if((i|0)>-1){f=s[J>>2]|0;if((f+(s[ee>>2]|0)|0)>>>0<(s[ie>>2]|0)>>>0){s[J>>2]=f+1;r[(s[Ve>>2]|0)+f>>0]=i+u;i=0}else i=-1;s[se>>2]=s[se>>2]|i}i=s[W>>2]|0;if(i|0){u=u+255&255;do{f=s[J>>2]|0;if((f+(s[ee>>2]|0)|0)>>>0<(s[ie>>2]|0)>>>0){s[J>>2]=f+1;r[(s[Ve>>2]|0)+f>>0]=u;f=0;i=s[W>>2]|0}else f=-1;s[se>>2]=s[se>>2]|f;i=i+-1|0;s[W>>2]=i}while((i|0)!=0)}s[K>>2]=m&255;u=s[V>>2]|0;i=s[fe>>2]|0;f=s[ne>>2]|0}s[V>>2]=u<<8&2147483392;i=i<<8;s[fe>>2]=i;b=f+8|0;s[ne>>2]=b}Ee=32-(re(i|0)|0)|0;Se=i>>>(Ee+-16|0);A=(Se>>>12)+-8|0;f=b;P=w;A=(b<<3)-((Ee<<3)+(A+(Se>>>0>(s[5272+(A<<2)>>2]|0)>>>0&1)))|0}if(Me){T=(s[Te>>2]|0)-U|0;f=3-U|0;x=1275>>>f;x=(p|0)<(x|0)?p:x;if(xe){i=(Ye*72|0)+32|0;i=(Le|0)<(i|0)?0:Le-i|0}else i=Le-((Ye*320|0)+160)|0;S=(s[O>>2]|0)==0;if(S)E=i;else E=i+(s[e+184>>2]>>T)|0;if(xe){i=s[e+156>>2]|0;st=+h[Ie>>2];i=~~(+(E+((i|0)<100?96>>>f:0)-((i|0)>100?144>>>f:0)|0)+(st+-.25)*400);Oe=(A+I+63>>6)+2|0;f=Re+296+I+63>>6;i=!(st>.699999988079071)|(i|0)>400?i:400;f=(Oe|0)>(f|0)?Oe:f}else{f=s[e+92>>2]|0;b=s[e+200>>2]|0;y=+h[e+196>>2];m=s[Ce>>2]|0;k=+h[Ie>>2];p=s[e+64>>2]|0;v=s[Ae>>2]|0;_=(s[e+204>>2]|0)!=0;c=s[We>>2]|0;o=s[Oe>>2]|0;f=(f|0)==0?c:f;i=n[o+(f<<1)>>1]<(b|0)?b:f)<<1)>>1]<>2]|0)==0;do if(u)i=E;else{g=+h[e+136>>2];if(!(g<.4)){i=E;break}i=E-~~(+(w<<3|0)*(.4000000059604645-g))|0}while(0);if(F){Oe=(f|0)>(b|0)?b:f;Oe=(n[o+(Oe<<1)>>1]<>2]+-.15000000596046448;g=+(w<<3|0);i=i+~~(g*1.2000000476837158*((st<0?0:st)+-.09000000357627869))|0;if(!ye)break;i=i+~~(g*.800000011920929)|0}while(0);if(_&(v|0)==0){Oe=i+~~(+(w<<3|0)*he)|0;i=(i|0)/4|0;i=(i|0)>(Oe|0)?i:Oe}Ie=~~(+((te(n[o+(c+-2<<1)>>1]<>2;Oe=(Ie|0)>(Oe|0)?Ie:Oe;i=(i|0)<(Oe|0)?i:Oe;do if(!(_&(v|0)==0)){if(!S)i=~~(+(i-E|0)*.6700000166893005)+E|0;if(!(k<.20000000298023224&(_^1)))break;Oe=96e3-Be|0;Ie=(Oe|0)>32e3;i=i+~~(((Be|0)>96e3&(Ie^1)?0:Ie?.09919999539852142:+(Oe|0)*3099999958067201e-21)*ae*+(i|0))|0}while(0);f=E<<1;i=(f|0)<(i|0)?f:i;f=(A+I+63>>6)+2|0}p=i+A|0;b=p+32>>6;b=(f|0)>(b|0)?f:b;b=(x|0)<(b|0)?x:b;m=(Ue|0)==0;i=m?b:2;f=e+188|0;u=s[f>>2]|0;if((u|0)<970){s[f>>2]=u+1;g=1/+(u+21|0)}else g=.0010000000474974513;do if(!S){f=e+176|0;s[f>>2]=(s[f>>2]|0)+((m?b<<6:128)-Le);f=e+184|0;Oe=e+180|0;u=s[Oe>>2]|0;u=u+~~(g*+(((m?p-Le|0:0)<>2]|0)-u|0))|0;s[Oe>>2]=u;s[f>>2]=0-u;f=e+176|0;u=s[f>>2]|0;if((u|0)>=0)break;s[f>>2]=0;i=m?b+((u|0)/-64|0)|0:2}while(0);B=(x|0)<(i|0)?x:i;Le=s[Ve>>2]|0;f=s[ee>>2]|0;i=0-f|0;Tn(Le+B+i|0,Le+(s[ie>>2]|0)+i|0,f|0)|0;s[ie>>2]=B;f=s[ne>>2]|0;i=s[fe>>2]|0}else B=p;t=l;l=l+((1*(rt<<2)|0)+15&-16)|0;C=l;l=l+((1*(rt<<2)|0)+15&-16)|0;D=l;l=l+((1*(rt<<2)|0)+15&-16)|0;I=B<<6;Le=32-(re(i|0)|0)|0;L=i>>>(Le+-16|0);i=(L>>>12)+-8|0;i=I+((Le<<3)+(i+(L>>>0>(s[5272+(i<<2)>>2]|0)>>>0&1))-(f<<3))+-1|0;L=(ue|0)==0;if((U|0)>1&(L^1))T=(i|0)>=((U<<3)+16|0);else T=0;x=T?8:0;f=i-x|0;if(!(s[e+120>>2]|0))i=it+-1|0;else{do if((Be|0)<(Ye*32e3|0))i=13;else{if((Be|0)<(Ye*48e3|0)){i=16;break}if((Be|0)<(Ye*6e4|0)){i=18;break}i=(Be|0)<(Ye*8e4|0)?19:20}while(0);Be=s[e+144>>2]|0;i=(Be|0)>(i|0)?Be:i}S=e+200|0;u=e+92|0;A=Ti(Fe,tt,it,G,N,P,S,He,f,ze,C,t,D,Ye,U,Ve,1,s[u>>2]|0,(s[Ae>>2]|0)==0?i:1)|0;i=s[u>>2]|0;if(!i)i=A;else{Le=i+1|0;i=i+-1|0;Be=(i|0)>(A|0);i=(Le|0)<((Be?i:A)|0)?Le:Be?i:A}s[u>>2]=i;O=Ve+12|0;N=Ve+16|0;E=tt;while(1){if((E|0)>=(it|0))break;o=s[t+(E<<2)>>2]|0;if((o|0)>=1){c=65536<>16;g=+(c|0);y=+(1<<14-o|0);v=c+-1|0;i=s[We>>2]|0;_=0;do{w=~~+z(+((+h[oe+(E+(te(_,i)|0)<<2)>>2]+.5)*g));w=(w|0)<(c|0)?w:v;w=(w|0)<0?0:w;i=s[O>>2]|0;f=s[N>>2]|0;if((f+o|0)>>>0>32){b=7-f|0;b=f+((b|0)>-8?b:-8)&-8;m=f;do{u=s[ee>>2]|0;p=s[ie>>2]|0;if(((s[J>>2]|0)+u|0)>>>0

>>0){u=u+1|0;s[ee>>2]=u;r[(s[Ve>>2]|0)+(p-u)>>0]=i;u=0}else u=-1;s[se>>2]=s[se>>2]|u;i=i>>>8;m=m+-8|0}while((m|0)>7);f=f+-8-b|0}s[O>>2]=i|w<>2]=f+o;s[ne>>2]=(s[ne>>2]|0)+o;st=(+(w|0)+.5)*y*6103515625e-14+-.5;i=Xe+(E+(te(_,s[We>>2]|0)|0)<<2)|0;h[i>>2]=+h[i>>2]+st;i=s[We>>2]|0;Be=oe+(E+(te(_,i)|0)<<2)|0;h[Be>>2]=+h[Be>>2]-st;_=_+1|0}while((_|0)<(Ye|0))}E=E+1|0}Be=l;l=l+((1*we|0)+15&-16)|0;P=e+76|0;sr(1,Fe,tt,it,$,F?$+(je<<2)|0:0,Be,R,C,X,s[e+80>>2]|0,s[He>>2]|0,s[S>>2]|0,Y,I-x|0,s[ze>>2]|0,Ve,U,A,P,s[me>>2]|0,s[e+72>>2]|0);if(T){w=(s[e+116>>2]|0)<2&1;i=s[O>>2]|0;f=s[N>>2]|0;if((f+1|0)>>>0>32){b=7-f|0;b=f+((b|0)>-8?b:-8)&-8;m=f;do{u=s[ee>>2]|0;p=s[ie>>2]|0;if(((s[J>>2]|0)+u|0)>>>0

>>0){u=u+1|0;s[ee>>2]=u;r[(s[Ve>>2]|0)+(p-u)>>0]=i;u=0}else u=-1;s[se>>2]=s[se>>2]|u;i=i>>>8;m=m+-8|0}while((m|0)>7);f=f+-8-b|0}s[O>>2]=i|w<>2]=f+1;i=(s[ne>>2]|0)+1|0;s[ne>>2]=i}else i=s[ne>>2]|0;i=(B<<3)-(i+((re(s[fe>>2]|0)|0)+-32))|0;E=0;while(1){if((E|0)==2)break;else _=tt;while(1){if(!((_|0)<(it|0)&(i|0)>=(Ye|0)))break;f=s[t+(_<<2)>>2]|0;do if((f|0)<=7){if((s[D+(_<<2)>>2]|0)!=(E|0))break;g=+(1<<14-f+-1|0);f=s[We>>2]|0;u=s[N>>2]|0;p=s[O>>2]|0;v=0;do{c=!(+h[oe+(_+(te(v,f)|0)<<2)>>2]<0);o=c&1;if((u+1|0)>>>0>32){m=7-u|0;m=u+((m|0)>-8?m:-8)&-8;w=u;f=p;do{p=s[ee>>2]|0;b=s[ie>>2]|0;if(((s[J>>2]|0)+p|0)>>>0>>0){p=p+1|0;s[ee>>2]=p;r[(s[Ve>>2]|0)+(b-p)>>0]=f;p=0}else p=-1;s[se>>2]=s[se>>2]|p;f=f>>>8;w=w+-8|0}while((w|0)>7);u=u+-8-m|0}else f=p;p=f|o<>2]=p;s[N>>2]=u;s[ne>>2]=(s[ne>>2]|0)+1;st=(+(c&1)+-.5)*g*6103515625e-14;f=Xe+(_+(te(v,s[We>>2]|0)|0)<<2)|0;h[f>>2]=+h[f>>2]+st;f=s[We>>2]|0;He=oe+(_+(te(v,f)|0)<<2)|0;h[He>>2]=+h[He>>2]-st;i=i+-1|0;v=v+1|0}while((v|0)<(Ye|0))}while(0);_=_+1|0}E=E+1|0}p=Ze<<2;kn(Ke|0,0,p|0)|0;f=0;do{i=te(f,rt)|0;u=tt;while(1){if((u|0)>=(it|0))break;We=u+i|0;st=+h[oe+(We<<2)>>2];ze=st>.5;He=st<-.5&(ze^1);h[Ke+(We<<2)>>2]=He|ze?He?-.5:.5:st;u=u+1|0}f=f+1|0}while((f|0)<(Ye|0));e:do if(Ue|0){i=0;while(1){if((i|0)>=(we|0))break e;h[Xe+(i<<2)>>2]=-28;i=i+1|0}}while(0);s[e+104>>2]=s[$e>>2];h[e+108>>2]=Pe;s[e+112>>2]=De;if(ge&(Ye|0)==1)Mn(Xe+(rt<<2)|0,Xe|0,rt<<2|0)|0;e:do if(L){Mn(Qe|0,Je|0,p|0)|0;Mn(Je|0,Xe|0,p|0)|0;u=0}else{i=0;while(1){if((i|0)>=(Ze|0)){u=0;break e}$e=Je+(i<<2)|0;Pe=+h[$e>>2];st=+h[Xe+(i<<2)>>2];h[$e>>2]=Pe=(tt|0)){i=it;break}$e=f+i|0;h[Xe+($e<<2)>>2]=0;h[Qe+($e<<2)>>2]=-28;h[Je+($e<<2)>>2]=-28;i=i+1|0}while(1){if((i|0)>=(rt|0))break;$e=f+i|0;h[Xe+($e<<2)>>2]=0;h[Qe+($e<<2)>>2]=-28;h[Je+($e<<2)>>2]=-28;i=i+1|0}u=u+1|0}while((u|0)<(et|0));f=e+116|0;if(!(ue|ve))i=0;else i=(s[f>>2]|0)+1|0;s[f>>2]=i;s[P>>2]=s[fe>>2];li(Ve);e=(s[se>>2]|0)==0?B:-3;qe(Ge|0);l=nt;return e|0}function Qt(e,t,i,r,n,a,o,f,c,u,d){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;a=a|0;o=o|0;f=f|0;c=c|0;u=u|0;d=d|0;var p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0,I=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0;B=l;l=l+16|0;L=B+8|0;v=B;k=s[e>>2]|0;O=s[k+4>>2]|0;m=n+1024|0;D=(te(m,r)|0)<<2;N=l;l=l+((1*D|0)+15&-16)|0;s[L>>2]=N;s[L+4>>2]=N+(m<<2);N=O+n|0;D=n<<2;p=0;do{P=s[L+(p<<2)>>2]|0;Mn(P|0,i+(p<<10<<2)|0,4096)|0;Mn(P+4096|0,t+((te(p,N)|0)<<2)+(O<<2)|0,D|0)|0;p=p+1|0}while((p|0)<(r|0));if(!u){s[v>>2]=15;P=e+104|0;I=15;_=0}else{g=Ne()|0;p=l;l=l+((1*(m>>1<<2)|0)+15&-16)|0;bi(L,p,m,r);wi(p+2048|0,p,n,979,v);s[v>>2]=1024-(s[v>>2]|0);u=e+104|0;b=+vi(p,n,v,s[u>>2]|0,+h[e+108>>2]);p=s[v>>2]|0;if((p|0)>1022){s[v>>2]=1022;p=1022}_=b*.699999988079071;C=s[e+56>>2]|0;_=(C|0)>2?_*.5:_;qe(g|0);P=u;I=p;_=(C|0)>8?0:(C|0)>4?_*.5:_}m=s[P>>2]|0;C=I-m|0;b=(((C|0)>-1?C:0-C|0)*10|0)>(I|0)?.4000000059604645:.20000000298023224;if((d|0)>=25){if((d|0)<35)y=11}else{b=b+.10000000149011612;y=11}if((y|0)==11)b=b+.10000000149011612;C=e+108|0;w=+h[C>>2];b=w>.4000000059604645?b+-.10000000149011612:b;b=w>.550000011920929?b+-.10000000149011612:b;if(_<(b>.20000000298023224?b:.20000000298023224)){w=0;x=0;p=0}else{u=+q(+(_-w))<.10000000149011612;u=~~+z(+((u?w:_)*32/3+.5));p=u+-1|0;if((p|0)<=7)if((u|0)<1)p=0;else y=15;else{p=7;y=15}w=+(p+1|0)*.09375;x=1}M=k+44|0;T=O<<2;b=-w;R=e+112|0;k=k+60|0;E=(n|0)>1024;A=1024-n<<2;S=0-n|0;u=0;while(1){d=s[M>>2]|0;y=d-O|0;s[P>>2]=(m|0)>15?m:15;m=t+((te(u,N)|0)<<2)|0;g=e+212+((te(u,O)|0)<<2)|0;Mn(m|0,g|0,T|0)|0;if((d|0)==(O|0))d=s[L+(u<<2)>>2]|0;else{d=s[L+(u<<2)>>2]|0;U=s[P>>2]|0;_=-+h[C>>2];v=s[R>>2]|0;As(m+(O<<2)|0,d+4096|0,U,U,y,_,_,v,v,0,0)}v=d+4096|0;As(m+(O<<2)+(y<<2)|0,v+(y<<2)|0,s[P>>2]|0,I,n-y|0,-+h[C>>2],b,s[R>>2]|0,a,s[k>>2]|0,O);Mn(g|0,m+(n<<2)|0,T|0)|0;m=i+(u<<10<<2)|0;if(E)Mn(m|0,d+(n<<2)|0,4096)|0;else{Tn(m|0,m+(n<<2)|0,A|0)|0;Mn(m+4096+(S<<2)|0,v|0,D|0)|0}u=u+1|0;if((u|0)>=(r|0))break;m=s[P>>2]|0}h[f>>2]=w;s[o>>2]=I;s[c>>2]=p;l=B;return x|0}function ei(e,t,i,r,n){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;var o=0,f=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0;E=l;p=l;l=l+((1*(t<<2)|0)+15&-16)|0;b=(t|0)/2|0;m=+(b|0);w=+(b|0);g=b+-5|0;v=(b*6|0)+-102|0;_=0;y=0;while(1){if((_|0)>=(i|0))break;c=te(_,t)|0;u=0;o=0;f=0;while(1){if((u|0)>=(t|0))break;A=+h[e+(u+c<<2)>>2];d=o+A;h[p+(u<<2)>>2]=d;u=u+1|0;o=f+d-A*2;f=A-d*.5}c=p;u=c+48|0;do{s[c>>2]=0;c=c+4|0}while((c|0)<(u|0));c=0;d=0;o=0;while(1){if((c|0)>=(b|0)){c=b;f=0;break}u=c<<1;A=+h[p+(u<<2)>>2];f=+h[p+((u|1)<<2)>>2];f=A*A+f*f;A=o+(f-o)*.0625;h[p+(c<<2)>>2]=A;c=c+1|0;d=d+f;o=A}e:while(1){u=c;o=f;while(1){c=u+-1|0;if((u|0)<=0)break e;u=p+(c<<2)|0;o=o+(+h[u>>2]-o)*.125;h[u>>2]=o;if(f>o)u=c;else{f=o;continue e}}}o=w/(+H(+(d*f*.5*m))+1.0000000036274937e-15)*64;c=12;u=0;while(1){if((c|0)>=(g|0))break;A=+z(+(o*(+h[p+(c<<2)>>2]+1.0000000036274937e-15)));M=A>127;S=A<0&(M^1);c=c+4|0;u=u+(a[28075+~~(S|M?S?0:127:A)>>0]|0)|0}c=(u<<8|0)/(v|0)|0;if((c|0)>(y|0))s[n>>2]=_;else c=y;_=_+1|0;y=c}c=(y|0)>200&1;o=+H(+ +(y*27|0))+-42;if(!(o<0))if(o>163)f=163;else k=20;else{o=0;k=20}if((k|0)==20)f=o;if(f*.006899999920278788+-.139<0){A=0;A=+H(+A);h[r>>2]=A;l=E;return c|0}A=(o>163?163:o)*.006899999920278788+-.139;A=+H(+A);h[r>>2]=A;l=E;return c|0}function ti(e,t,i,r,n,a,o,f){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;a=a|0;o=o|0;f=f|0;var c=0,l=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0;m=s[e+4>>2]|0;b=(t|0)==0;v=s[e+44>>2]<<(b?o:0);g=b?1:t;b=(s[e+36>>2]|0)-(b?o:0)|0;p=e+64|0;w=te(g,v)|0;d=w+m|0;t=e+60|0;u=0;do{o=i+((te(u,d)|0)<<2)|0;e=te(te(u,v)|0,g)|0;c=0;while(1){if((c|0)>=(g|0))break;_=o+((te(c,v)|0)<<2)|0;di(p,_,r+(c+e<<2)|0,s[t>>2]|0,m,b,g);c=c+1|0}u=u+1|0}while((u|0)<(a|0));e:do if((a|0)==2&(n|0)==1){t=0;while(1){if((t|0)>=(w|0))break e;_=r+(t<<2)|0;h[_>>2]=+h[_>>2]*.5+ +h[r+(w+t<<2)>>2]*.5;t=t+1|0}}while(0);if((f|0)==1)return;u=(w|0)/(f|0)|0;l=+(f|0);t=w-u<<2;e=0;do{o=te(te(e,g)|0,v)|0;c=0;while(1){if((c|0)>=(u|0))break;_=r+(o+c<<2)|0;h[_>>2]=+h[_>>2]*l;c=c+1|0}kn(r+(o+u<<2)|0,0,t|0)|0;e=e+1|0}while((e|0)<(n|0));return}function ii(e,t,i,a,o,f,c,u,d,p){e=e|0;t=t|0;i=i|0;a=a|0;o=o|0;f=f|0;c=c|0;u=u|0;d=+d;p=p|0;var b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0,I=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,H=0,G=0;F=l;l=l+16|0;D=F;O=.5-d;O=(O<-.25?-.25:O)*.03999999910593033;B=l;l=l+((1*(t<<2)|0)+15&-16)|0;P=s[e+32>>2]|0;L=t+-1|0;U=(n[P+(t<<1)>>1]|0)-(n[P+(L<<1)>>1]|0)<=(t|0))break;R=k+1|0;e=n[P+(k<<1)>>1]|0;x=(n[P+(R<<1)>>1]|0)-e|0;y=x<=(y|0))break;d=d+ +q(+ +h[C+(e<<2)>>2]);e=e+1|0}v=d+(N?0:+(u|0))*O*d;if(!(N|x)){Mn(I|0,C|0,c|0)|0;e=y>>u>>1;c=0;while(1){if((c|0)<(A|0))p=0;else{d=0;e=0;break}while(1){if((p|0)>=(e|0))break;g=I+((te(S,p)|0)+c<<2)|0;z=+h[g>>2]*.7071067690849304;_=I+(((p<<1|1)<>2]*.7071067690849304;h[g>>2]=z+d;h[_>>2]=z-d;p=p+1|0}c=c+1|0}while(1){if((e|0)>=(y|0))break;d=d+ +q(+ +h[I+(e<<2)>>2]);e=e+1|0}d=d+M*d;if(d=(((x|N^1)&1^1)+u|0))break;w=N?_+1|0:u-_+-1|0;e=1<<_;c=y>>_>>1;p=e<<1;b=0;while(1){if((b|0)<(e|0))m=0;else{v=0;e=0;break}while(1){if((m|0)>=(c|0))break;G=C+((te(p,m)|0)+b<<2)|0;v=+h[G>>2]*.7071067690849304;H=C+(((m<<1|1)<<_)+b<<2)|0;z=+h[H>>2]*.7071067690849304;h[G>>2]=v+z;h[H>>2]=v-z;m=m+1|0}b=b+1|0}while(1){if((e|0)>=(y|0))break;v=v+ +q(+ +h[C+(e<<2)>>2]);e=e+1|0}z=v+ +(w|0)*O*v;H=z>2]=c;if(!x){k=R;continue}if(!((c|0)==0|(c|0)==(T|0))){k=R;continue}s[e>>2]=c+-1;k=R}g=i<<2;w=0;while(1){if((w|0)==2)break;c=g+(w<<1)|0;e=27892+(u<<3)+c|0;c=(c|1)+(27892+(u<<3))|0;p=0;b=N?o:0;m=1;while(1){if((m|0)>=(t|0))break;f=b+o|0;H=p+o|0;G=s[B+(m<<2)>>2]|0;i=G-(r[e>>0]<<1)|0;G=G-(r[c>>0]<<1)|0;p=((p|0)<(f|0)?p:f)+((i|0)>-1?i:0-i|0)|0;b=((H|0)<(b|0)?H:b)+((G|0)>-1?G:0-G|0)|0;m=m+1|0}s[D+(w<<2)>>2]=(p|0)<(b|0)?p:b;w=w+1|0}w=N?0:(s[D+4>>2]|0)<(s[D>>2]|0)&1;p=g|w<<1;m=27892+(u<<3)+p|0;p=(p|1)+(27892+(u<<3))|0;b=0;e=N?o:0;c=1;while(1){if((c|0)>=(t|0))break;N=e+o|0;i=(b|0)<(N|0);s[U+(c<<2)>>2]=i&1^1;H=b+o|0;u=(H|0)<(e|0);s[j+(c<<2)>>2]=u&1^1;G=s[B+(c<<2)>>2]|0;D=G-(r[m>>0]<<1)|0;G=G-(r[p>>0]<<1)|0;b=(i?b:N)+((D|0)>-1?D:0-D|0)|0;e=(u?H:e)+((G|0)>-1?G:0-G|0)|0;c=c+1|0}c=(b|0)>=(e|0)&1;s[a+(L<<2)>>2]=c;e=t+-2|0;while(1){if((e|0)<=-1)break;G=s[((c|0)==1?j:U)+(e+1<<2)>>2]|0;s[a+(e<<2)>>2]=G;c=G;e=e+-1|0}l=F;return w|0}function ri(e,t,i,r,a,o,f,c,u,p,b,m,w,g,v,_,y,k){e=e|0;t=t|0;i=i|0;r=r|0;a=a|0;o=o|0;f=f|0;c=c|0;u=u|0;p=p|0;b=b|0;m=m|0;w=w|0;g=g|0;v=v|0;_=_|0;y=y|0;k=k|0;var E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0,I=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,q=0,H=0,G=0,V=0,W=0,K=0;V=l;F=te(o,i)|0;H=l;l=l+((1*(F<<2)|0)+15&-16)|0;z=l;l=l+((1*(F<<2)|0)+15&-16)|0;kn(f|0,0,i<<2|0)|0;E=+(9-c|0);c=0;while(1){if((c|0)>=(a|0)){u=0;E=-31.899999618530273;break}F=c+5|0;h[z+(c<<2)>>2]=+(n[u+(c<<1)>>1]|0)*.0625+.5+E-+h[17220+(c<<2)>>2]+ +(te(F,F)|0)*.006200000178068876;c=c+1|0}while(1){c=te(u,i)|0;A=0;q=E;while(1){if((A|0)>=(a|0))break;L=+h[e+(c+A<<2)>>2]-+h[z+(A<<2)>>2];A=A+1|0;q=q>L?q:L}u=u+1|0;if((u|0)>=(o|0))break;else E=q}if(!((v|0)>50&(g|0)>0&(y|0)==0)){G=0;s[_>>2]=G;l=V;return+q}B=a+-2|0;U=a+-1|0;F=0;c=0;while(1){M=te(F,i)|0;j=H+(M<<2)|0;S=t+(M<<2)|0;u=s[S>>2]|0;s[j>>2]=u;L=(s[d>>2]=u,+h[d>>2]);E=L;u=1;x=c;while(1){if((u|0)>=(a|0)){u=x;break}y=M+u|0;D=+h[t+(y<<2)>>2];y=D>+h[t+(y+-1<<2)>>2]+.5?u:x;D=E+1.5>2]=D;E=D;u=u+1|0;x=y}while(1){c=u+-1|0;if((u|0)<=0){y=2;break}y=j+(c<<2)|0;O=+h[y>>2];N=+h[j+(u<<2)>>2]+2;D=+h[t+(M+c<<2)>>2];A=N>2]=O<(A?N:D)?O:A?N:D;u=c}while(1){if((y|0)>=(B|0))break;A=j+(y<<2)|0;I=+h[A>>2];u=t+(M+y+-2<<2)|0;E=+h[u+8>>2];P=+h[u>>2];O=+h[u+4>>2];c=P>O;W=c?P:O;T=c?O:P;N=+h[u+12>>2];D=+h[u+16>>2];u=N>D;R=u?D:N;C=u?N:D;K=T>R;R=K?T:R;T=K?C:W;C=K?W:C;do if(E>T)if(TT+-1)E=I;else{W=c?P:O;T=c?O:P;R=u?D:N;C=u?N:D;K=T>R;R=K?T:R;T=K?C:W;C=K?W:C;do if(E>T)if(T>2]=E;y=y+1|0}R=+h[S+4>>2];K=L>R;E=K?R:L;R=K?L:R;T=+h[S+8>>2];if(!(R>2];h[j>>2]=T>R?T:R;K=j+4|0;T=+h[K>>2];h[K>>2]=T>R?T:R;K=t+(M+a+-3<<2)|0;R=+h[K>>2];T=+h[K+4>>2];M=R>T;E=M?T:R;T=M?R:T;R=+h[K+8>>2];if(!(T>2];h[c>>2]=L>W?L:W;c=j+(U<<2)|0;L=+h[c>>2];h[c>>2]=L>W?L:W;c=0;while(1){if((c|0)>=(a|0))break;K=j+(c<<2)|0;L=+h[K>>2];W=+h[z+(c<<2)>>2];h[K>>2]=L>W?L:W;c=c+1|0}F=F+1|0;if((F|0)>=(o|0))break;else c=x}e:do if((o|0)==2){c=r;while(1){if((c|0)>=(a|0)){c=r;break e}z=c+i|0;t=H+(z<<2)|0;W=+h[t>>2];K=H+(c<<2)|0;L=+h[K>>2]+-4;L=W>L?W:L;h[t>>2]=L;W=+h[K>>2];L=L+-4;L=W>L?W:L;h[K>>2]=L;L=+h[e+(c<<2)>>2]-L;W=+h[e+(z<<2)>>2]-+h[t>>2];h[K>>2]=((L<0?0:L)+(W<0?0:W))*.5;c=c+1|0}}else{c=r;while(1){if((c|0)>=(a|0)){c=r;break e}K=H+(c<<2)|0;W=+h[e+(c<<2)>>2]-+h[K>>2];h[K>>2]=W<0?0:W;c=c+1|0}}while(0);while(1){if((c|0)>=(a|0))break;K=H+(c<<2)|0;L=+h[K>>2];W=+h[k+(c<<2)>>2];h[K>>2]=L>W?L:W;c=c+1|0}x=(b|0)==0;e:do if((x|(m|0)!=0)&(p|0)==0){c=r;while(1){if((c|0)>=(a|0))break e;K=H+(c<<2)|0;h[K>>2]=+h[K>>2]*.5;c=c+1|0}}while(0);M=(v|0)/4|0;S=(m|0)==0;c=0;while(1){if((r|0)>=(a|0)){G=76;break}if((r|0)>=8){u=H+(r<<2)|0;E=+h[u>>2];if((r|0)>11){E=E*.5;h[u>>2]=E}}else{u=H+(r<<2)|0;E=+h[u>>2]*2;h[u>>2]=E}E=E<4?E:4;h[u>>2]=E;y=r+1|0;u=(te((n[w+(y<<1)>>1]|0)-(n[w+(r<<1)>>1]|0)|0,o)|0)<=6)if((u|0)>48){K=~~(E*8);A=K;u=((te(K,u)|0)<<3|0)/8|0;break}else{u=~~(E*+(u|0)/6);A=u;u=u*48|0;break}else{K=~~E;A=K;u=(te(K,u)|0)<<3}while(0);if(!((S|(p|0)!=0)&(x^1))?(c+u>>6|0)>(M|0):0)break;s[f+(r<<2)>>2]=A;r=y;c=c+u|0}if((G|0)==76){s[_>>2]=c;l=V;return+q}K=M<<6;s[f+(r<<2)>>2]=K-c;s[_>>2]=K;l=V;return+q}function ni(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,n=0,a=0,o=0;a=l;l=l+16|0;r=a;s[r>>2]=i;do switch(t|0){case 10010:{n=(s[r>>2]|0)+(4-1)&~(4-1);t=s[n>>2]|0;s[r>>2]=n+4;if((t|0)>=0?(t|0)<(s[(s[e>>2]|0)+8>>2]|0):0){s[e+20>>2]=t;t=25}else t=26;break}case 10012:{n=(s[r>>2]|0)+(4-1)&~(4-1);t=s[n>>2]|0;s[r>>2]=n+4;if((t|0)>=1?(t|0)<=(s[(s[e>>2]|0)+8>>2]|0):0){s[e+24>>2]=t;t=25}else t=26;break}case 10008:{n=(s[r>>2]|0)+(4-1)&~(4-1);t=s[n>>2]|0;s[r>>2]=n+4;if((t+-1|0)>>>0>1)t=26;else{s[e+12>>2]=t;t=25}break}case 10007:{n=(s[r>>2]|0)+(4-1)&~(4-1);t=s[n>>2]|0;s[r>>2]=n+4;if(!t)t=26;else{e=e+40|0;s[t>>2]=s[e>>2];s[e>>2]=0;t=25}break}case 4027:{n=(s[r>>2]|0)+(4-1)&~(4-1);t=s[n>>2]|0;s[r>>2]=n+4;if(!t)t=26;else{s[t>>2]=(s[e+4>>2]|0)/(s[e+16>>2]|0)|0;t=25}break}case 4028:{n=s[e+8>>2]|0;t=e+88+((te((s[e+4>>2]|0)+2048|0,n)|0)<<2)+(n*24<<2)|0;o=s[e>>2]|0;r=s[o+8>>2]|0;i=r<<1;t=t+(i<<2)|0;i=t+(i<<2)|0;kn(e+36|0,0,((te((s[o+4>>2]|0)+2048|0,n)|0)<<2)+88+(n*96|0)+(r<<5)+-36|0)|0;n=0;while(1){if((n|0)>=(r<<1|0))break;h[i+(n<<2)>>2]=-28;h[t+(n<<2)>>2]=-28;r=s[(s[e>>2]|0)+8>>2]|0;n=n+1|0}s[e+52>>2]=1;t=25;break}case 4033:{o=(s[r>>2]|0)+(4-1)&~(4-1);t=s[o>>2]|0;s[r>>2]=o+4;if(!t)t=26;else{s[t>>2]=s[e+56>>2];t=25}break}case 10015:{o=(s[r>>2]|0)+(4-1)&~(4-1);t=s[o>>2]|0;s[r>>2]=o+4;if(!t)t=26;else{s[t>>2]=s[e>>2];t=25}break}case 10016:{o=(s[r>>2]|0)+(4-1)&~(4-1);t=s[o>>2]|0;s[r>>2]=o+4;s[e+28>>2]=t;t=25;break}case 4031:{o=(s[r>>2]|0)+(4-1)&~(4-1);t=s[o>>2]|0;s[r>>2]=o+4;if(!t)t=26;else{s[t>>2]=s[e+36>>2];t=25}break}default:{l=a;return}}while(0);if((t|0)==25){l=a;return}else if((t|0)==26){l=a;return}}function si(e,t,i,o,f,c,u){e=e|0;t=t|0;i=i|0;o=o|0;f=f|0;c=c|0;u=u|0;var d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0,I=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,q=0,G=0,V=0,W=0,K=0,Z=0,Y=0,$=0,X=0,Q=0,ee=0,ie=0,ne=0,se=0,ae=0,oe=0,fe=0,he=0,ce=0,le=0,ue=0,de=0,pe=0,be=0,me=0,we=0,ge=0,ve=0,_e=0,ye=0,ke=0,Ee=0,Ae=0,Se=0,Me=0,Te=0,Re=0,xe=0,Ce=0,Ie=0,Pe=0;Pe=l;l=l+96|0;D=Pe;T=Pe+40|0;Q=Pe+32|0;Ie=Pe+24|0;ne=Pe+16|0;ie=Pe+12|0;ee=Pe+8|0;Se=s[e+8>>2]|0;s[ne>>2]=0;s[ie>>2]=0;ue=s[e+12>>2]|0;xe=s[e>>2]|0;ce=xe+8|0;Ce=s[ce>>2]|0;me=s[xe+4>>2]|0;le=xe+32|0;q=s[le>>2]|0;Me=s[e+20>>2]|0;Te=s[e+24>>2]|0;Re=e+16|0;ye=te(s[Re>>2]|0,f)|0;p=me+2048|0;ke=e+88+((te(p,Se)|0)<<2)+(Se*24<<2)|0;ge=Ce<<1;Ee=ke+(ge<<2)|0;Ae=Ee+(ge<<2)|0;we=Ae+(ge<<2)|0;be=xe+44|0;f=s[xe+36>>2]|0;de=0;while(1){if((de|0)>(f|0)){f=-1;L=268;break}if((s[be>>2]<>>0>1275|(o|0)==0){e=-1;l=Pe;return e|0}_e=s[be>>2]<>2]=ve;s[Ie+(d<<2)>>2]=ve+8192+(f<<2);d=d+1|0}while((d|0)<(Se|0));he=s[xe+12>>2]|0;he=(Te|0)>(he|0)?he:Te;if((t|0)==0|(i|0)<2){ai(e,_e,de);fi(Ie,o,_e,Se,s[Re>>2]|0,xe+16|0,e+80|0,u);e=(ye|0)/(s[Re>>2]|0)|0;l=Pe;return e|0}ve=e+48|0;s[e+52>>2]=(s[ve>>2]|0)!=0&1;e:do if(!c){s[T>>2]=t;s[T+4>>2]=i;s[T+8>>2]=0;s[T+12>>2]=0;s[T+16>>2]=0;v=T+20|0;s[v>>2]=9;_=T+24|0;s[_>>2]=0;y=T+28|0;s[y>>2]=128;if(!i){f=0;d=0}else{s[_>>2]=1;f=1;d=a[t>>0]|0}k=T+40|0;s[k>>2]=d;g=d>>>1^127;E=T+32|0;s[E>>2]=g;s[T+44>>2]=0;p=128;c=9;while(1){if(p>>>0>=8388609){c=T;break e}c=c+8|0;s[v>>2]=c;p=p<<8;s[y>>2]=p;if(f>>>0>>0){m=f+1|0;s[_>>2]=m;w=a[t+f>>0]|0}else{m=f;w=0}s[k>>2]=w;fe=((d<<8|w)>>>1&255|g<<8&2147483392)^255;s[E>>2]=fe;f=m;d=w;g=fe}}while(0);se=(ue|0)==1;e:do if(se){f=0;while(1){if((f|0)>=(Ce|0))break e;fe=ke+(f<<2)|0;P=+h[fe>>2];O=+h[ke+(Ce+f<<2)>>2];h[fe>>2]=P>O?P:O;f=f+1|0}}while(0);ae=i<<3;oe=c+20|0;f=s[oe>>2]|0;fe=c+28|0;w=s[fe>>2]|0;p=f+((re(w|0)|0)+-32)|0;if((p|0)<(ae|0))if((p|0)==1){k=c+32|0;p=s[k>>2]|0;m=w>>>15;E=p>>>0>>0;d=E&1;if(!E){p=p-m|0;s[k>>2]=p;m=w-m|0}s[fe>>2]=m;v=c+40|0;_=c+24|0;y=c+4|0;while(1){if(m>>>0>=8388609)break;f=f+8|0;s[oe>>2]=f;m=m<<8;s[fe>>2]=m;g=s[v>>2]|0;w=s[_>>2]|0;if(w>>>0<(s[y>>2]|0)>>>0){s[_>>2]=w+1;w=a[(s[c>>2]|0)+w>>0]|0}else w=0;s[v>>2]=w;X=((g<<8|w)>>>1&255|p<<8&2147483392)^255;s[k>>2]=X;p=X}if(E){p=m;L=31}else{d=0;p=1}}else{m=w;d=0}else{p=w;d=1;L=31}if((L|0)==31){f=f+(ae-(f+((re(p|0)|0)+-32)))|0;s[oe>>2]=f;m=p;p=ae}if((Me|0)!=0|(p+16|0)>(ae|0)){X=0;$=0;b=0}else{N=c+32|0;p=s[N>>2]|0;w=m>>>1;v=p>>>0>>0;if(!v){p=p-w|0;s[N>>2]=p;w=m-w|0}s[fe>>2]=w;x=c+40|0;C=c+24|0;I=c+4|0;while(1){if(w>>>0>=8388609)break;f=f+8|0;s[oe>>2]=f;w=w<<8;s[fe>>2]=w;g=s[x>>2]|0;m=s[C>>2]|0;if(m>>>0<(s[I>>2]|0)>>>0){s[C>>2]=m+1;m=a[(s[c>>2]|0)+m>>0]|0}else m=0;s[x>>2]=m;X=((g<<8|m)>>>1&255|p<<8&2147483392)^255;s[N>>2]=X;p=X}if(v){T=ci(c,6)|0;y=16<>2]|0;R=c+16|0;p=s[R>>2]|0;if(p>>>0>>0){v=c+8|0;g=s[I>>2]|0;_=p+8|0;_=p+(((_|0)>25?_:25)+-1-p&-8)|0;m=s[v>>2]|0;do{if(m>>>0>>0){w=m+1|0;s[v>>2]=w;m=w;w=a[(s[c>>2]|0)+(g-w)>>0]|0}else w=0;f=f|w<>>k;m=w-k|0;s[t>>2]=p;s[R>>2]=m;E=(s[oe>>2]|0)+k|0;s[oe>>2]=E;f=y+(f&(1<>>0<3){y=c+8|0;_=s[I>>2]|0;v=w+4-T|0;v=w+(T+((v|0)>25?v:25)+3-w&-8)+4|0;w=s[y>>2]|0;do{if(w>>>0<_>>>0){g=w+1|0;s[y>>2]=g;w=g;g=a[(s[c>>2]|0)+(_-g)>>0]|0}else g=0;p=p|g<>2]=p>>>3;s[R>>2]=m+-3;m=E+3|0;s[oe>>2]=m;w=s[fe>>2]|0;e:do if((m+((re(w|0)|0)+-32)+2|0)>(ae|0))p=0;else{v=s[N>>2]|0;_=w>>>2;p=-1;while(1){p=p+1|0;g=te(_,a[29345+p>>0]|0)|0;if(v>>>0>=g>>>0)break;else w=g}_=v-g|0;s[N>>2]=_;w=w-g|0;s[fe>>2]=w;while(1){if(w>>>0>=8388609)break e;m=m+8|0;s[oe>>2]=m;w=w<<8;s[fe>>2]=w;v=s[x>>2]|0;g=s[C>>2]|0;if(g>>>0<(s[I>>2]|0)>>>0){s[C>>2]=g+1;g=a[(s[c>>2]|0)+g>>0]|0}else g=0;s[x>>2]=g;X=((v<<8|g)>>>1&255|_<<8&2147483392)^255;s[N>>2]=X;_=X}}while(0);g=m;b=+(y+1|0)*.09375}else{g=f;b=0;f=0;p=0}X=f;$=p;f=g;m=w;p=g+((re(w|0)|0)+-32)|0}z=(de|0)>0;if(!((p+3|0)>(ae|0)|z^1)){k=c+32|0;p=s[k>>2]|0;w=m>>>3;E=p>>>0>>0;T=E&1;if(E)m=w;else{p=p-w|0;s[k>>2]=p;m=m-w|0}s[fe>>2]=m;v=c+40|0;_=c+24|0;y=c+4|0;while(1){if(m>>>0>=8388609)break;f=f+8|0;s[oe>>2]=f;m=m<<8;s[fe>>2]=m;g=s[v>>2]|0;w=s[_>>2]|0;if(w>>>0<(s[y>>2]|0)>>>0){s[_>>2]=w+1;w=a[(s[c>>2]|0)+w>>0]|0}else w=0;s[v>>2]=w;Y=((g<<8|w)>>>1&255|p<<8&2147483392)^255;s[k>>2]=Y;p=Y}p=f+((re(m|0)|0)+-32)|0;if(E)Z=pe;else L=72}else L=72;if((L|0)==72){T=0;Z=0}if((p+3|0)<=(ae|0)){k=c+32|0;p=s[k>>2]|0;w=m>>>3;_=p>>>0>>0;t=_&1;if(!_){p=p-w|0;s[k>>2]=p;w=m-w|0}s[fe>>2]=w;y=c+40|0;m=c+24|0;E=c+4|0;while(1){if(w>>>0>=8388609)break;f=f+8|0;s[oe>>2]=f;w=w<<8;s[fe>>2]=w;v=s[y>>2]|0;g=s[m>>2]|0;if(g>>>0<(s[E>>2]|0)>>>0){s[m>>2]=g+1;g=a[(s[c>>2]|0)+g>>0]|0}else g=0;s[y>>2]=g;Y=((v<<8|g)>>>1&255|p<<8&2147483392)^255;s[k>>2]=Y;p=Y}Y=D;s[Y>>2]=0;s[Y+4>>2]=0;if(_){f=k;p=y;w=c;Y=E;F=t;A=.149993896484375;S=0;v=D}else{g=E;f=k;p=y;w=c;v=D;L=83}}else{g=D;s[g>>2]=0;s[g+4>>2]=0;g=c+4|0;f=c+32|0;p=c+40|0;m=c+24|0;w=c;v=D;L=83}if((L|0)==83){Y=g;F=0;A=+h[17320+(de<<2)>>2];S=+h[17336+(de<<2)>>2]}D=s[Y>>2]<<3;L=c+36|0;j=Me;while(1){if((j|0)>=(Te|0))break;B=(j|0)<20;U=0;do{y=s[oe>>2]|0;N=s[fe>>2]|0;g=y+((re(N|0)|0)+-32)|0;_=D-g|0;e:do if((_|0)<=14){if((_|0)>1){k=s[f>>2]|0;E=N>>>2;t=-1;_=N;while(1){t=t+1|0;g=te(E,a[29345+t>>0]|0)|0;if(k>>>0>=g>>>0)break;else _=g}E=k-g|0;s[f>>2]=E;_=_-g|0;s[fe>>2]=_;g=y;while(1){if(_>>>0>=8388609)break;g=g+8|0;s[oe>>2]=g;_=_<<8;s[fe>>2]=_;k=s[p>>2]|0;y=s[m>>2]|0;if(y>>>0<(s[Y>>2]|0)>>>0){s[m>>2]=y+1;y=a[(s[w>>2]|0)+y>>0]|0}else y=0;s[p>>2]=y;K=((k<<8|y)>>>1&255|E<<8&2147483392)^255;s[f>>2]=K;E=K}g=t>>1^0-(t&1);break}if((D|0)>(g|0)){_=s[f>>2]|0;g=N>>>1;t=_>>>0>>0;if(!t){_=_-g|0;s[f>>2]=_;g=N-g|0}s[fe>>2]=g;while(1){if(g>>>0>=8388609)break;y=y+8|0;s[oe>>2]=y;g=g<<8;s[fe>>2]=g;E=s[p>>2]|0;k=s[m>>2]|0;if(k>>>0<(s[Y>>2]|0)>>>0){s[m>>2]=k+1;k=a[(s[w>>2]|0)+k>>0]|0}else k=0;s[p>>2]=k;K=((E<<8|k)>>>1&255|_<<8&2147483392)^255;s[f>>2]=K;_=K}g=t<<31>>31}else g=-1}else{R=(B?j:20)<<1;g=a[29009+(de*84|0)+(F*42|0)+R>>0]<<7;R=a[(R|1)+(29009+(de*84|0)+(F*42|0))>>0]<<6;C=N>>>15;s[L>>2]=C;I=s[f>>2]|0;x=(I>>>0)/(C>>>0)|0;K=x+1|0;x=32768-(K+(K>>>0>32768?32767-x|0:0))|0;if(x>>>0>>0){k=g;_=0;g=0}else{_=te(32736-g|0,16384-R|0)|0;E=1;while(1){K=_>>>15;k=K+1|0;if(!K)break;_=k<<1;t=g+_|0;if(x>>>0>>0)break;_=te(_+-2|0,R)|0;g=t;E=E+1|0}if(k>>>0<2){K=(x-g|0)>>>1;g=g+(K<<1)|0;E=E+K|0}_=g+k|0;K=x>>>0<_>>>0;_=K?g:_;g=K?0-E|0:E}k=_+k|0;k=k>>>0<32768?k:32768;K=te(C,32768-k|0)|0;t=I-K|0;s[f>>2]=t;k=te(C,k-_|0)|0;k=(_|0)==0?N-K|0:k;s[fe>>2]=k;_=y;while(1){if(k>>>0>=8388609)break e;_=_+8|0;s[oe>>2]=_;k=k<<8;s[fe>>2]=k;E=s[p>>2]|0;y=s[m>>2]|0;if(y>>>0<(s[Y>>2]|0)>>>0){s[m>>2]=y+1;y=a[(s[w>>2]|0)+y>>0]|0}else y=0;s[p>>2]=y;K=((E<<8|y)>>>1&255|t<<8&2147483392)^255;s[f>>2]=K;t=K}}while(0);O=+(g|0);W=ke+(j+(te(U,s[ce>>2]|0)|0)<<2)|0;P=+h[W>>2];h[W>>2]=P<-9?-9:P;W=ke+(j+(te(U,s[ce>>2]|0)|0)<<2)|0;K=v+(U<<2)|0;h[W>>2]=S*+h[W>>2]+ +h[K>>2]+O;h[K>>2]=+h[K>>2]+O-A*O;U=U+1|0}while((U|0)<(ue|0));j=j+1|0}K=Ne()|0;W=l;l=l+((1*(Ce<<2)|0)+15&-16)|0;j=s[Y>>2]|0;g=j<<3;_=s[oe>>2]|0;y=s[fe>>2]|0;E=_+((re(y|0)|0)+-32)|0;v=(T|0)!=0;k=v?2:4;if(z)N=(E+k+1|0)>>>0<=g>>>0;else N=0;I=g-(N&1)|0;C=v?4:5;R=0;x=Me;g=E;t=0;while(1){if((x|0)>=(Te|0))break;if((g+k|0)>>>0>I>>>0){E=R;v=t}else{v=s[f>>2]|0;g=y>>>k;V=v>>>0>>0;E=V&1;if(!V){v=v-g|0;s[f>>2]=v;g=y-g|0}s[fe>>2]=g;k=_;while(1){if(g>>>0>=8388609)break;k=k+8|0;s[oe>>2]=k;g=g<<8;s[fe>>2]=g;y=s[p>>2]|0;_=s[m>>2]|0;if(_>>>0>>0){s[m>>2]=_+1;_=a[(s[w>>2]|0)+_>>0]|0}else _=0;s[p>>2]=_;V=((y<<8|_)>>>1&255|v<<8&2147483392)^255;s[f>>2]=V;v=V}v=R^E;_=k;y=g;E=v;g=k+((re(g|0)|0)+-32)|0;v=t|v}s[W+(x<<2)>>2]=E;R=E;x=x+1|0;k=C;t=v}R=T<<2;if(N?(r[R+t+(27892+(de<<3))>>0]|0)!=(r[(R|2)+t+(27892+(de<<3))>>0]|0):0){v=s[f>>2]|0;g=y>>>1;V=v>>>0>>0;t=V&1;if(!V){v=v-g|0;s[f>>2]=v;g=y-g|0}s[fe>>2]=g;while(1){if(g>>>0>=8388609)break;_=_+8|0;s[oe>>2]=_;g=g<<8;s[fe>>2]=g;k=s[p>>2]|0;y=s[m>>2]|0;if(y>>>0>>0){s[m>>2]=y+1;y=a[(s[w>>2]|0)+y>>0]|0}else y=0;s[p>>2]=y;V=((k<<8|y)>>>1&255|v<<8&2147483392)^255;s[f>>2]=V;v=V}E=g;g=t<<1}else{E=y;g=0}g=R+g|0;v=Me;while(1){if((v|0)>=(Te|0))break;V=W+(v<<2)|0;s[V>>2]=r[g+(s[V>>2]|0)+(27892+(de<<3))>>0];v=v+1|0}e:do if((_+((re(E|0)|0)+-32)+4|0)>(ae|0)){g=_;v=E;t=2}else{y=s[f>>2]|0;k=E>>>5;t=-1;v=E;while(1){t=t+1|0;g=te(k,a[28203+t>>0]|0)|0;if(y>>>0>=g>>>0)break;else v=g}k=y-g|0;s[f>>2]=k;v=v-g|0;s[fe>>2]=v;g=_;while(1){if(v>>>0>=8388609)break e;g=g+8|0;s[oe>>2]=g;_=v<<8;s[fe>>2]=_;y=s[p>>2]|0;v=s[m>>2]|0;if(v>>>0>>0){s[m>>2]=v+1;v=a[(s[w>>2]|0)+v>>0]|0}else v=0;s[p>>2]=v;V=((y<<8|v)>>>1&255|k<<8&2147483392)^255;s[f>>2]=V;v=_;k=V}}while(0);U=l;l=l+((1*(Ce<<2)|0)+15&-16)|0;_=s[ce>>2]|0;y=(de<<1)+ue+-1|0;k=xe+104|0;E=0;while(1){if((E|0)>=(_|0))break;V=E+1|0;G=s[le>>2]|0;z=(te(_,y)|0)+E|0;s[U+(E<<2)>>2]=(te(te((a[(s[k>>2]|0)+z>>0]|0)+64|0,ue)|0,(n[G+(V<<1)>>1]|0)-(n[G+(E<<1)>>1]|0)<>2;E=V}B=l;l=l+((1*(Ce<<2)|0)+15&-16)|0;z=i<<6;G=32-(re(v|0)|0)|0;V=v>>>(G+-16|0);k=(V>>>12)+-8|0;R=g;D=6;L=Me;g=(g<<3)-((G<<3)+(k+(V>>>0>(s[5272+(k<<2)>>2]|0)>>>0&1)))|0;k=z;while(1){ -if((L|0)>=(Te|0))break;N=L+1|0;x=(te(ue,(n[q+(N<<1)>>1]|0)-(n[q+(L<<1)>>1]|0)|0)|0)<=(I|0))break;if((R|0)>=(s[C>>2]|0))break;g=s[f>>2]|0;y=v>>>y;E=g>>>0>>0;if(E)v=y;else{g=g-y|0;s[f>>2]=g;v=v-y|0}s[fe>>2]=v;while(1){if(v>>>0>=8388609)break;_=_+8|0;s[oe>>2]=_;v=v<<8;s[fe>>2]=v;k=s[p>>2]|0;y=s[m>>2]|0;if(y>>>0>>0){s[m>>2]=y+1;y=a[(s[w>>2]|0)+y>>0]|0}else y=0;s[p>>2]=y;V=((k<<8|y)>>>1&255|g<<8&2147483392)^255;s[f>>2]=V;g=V}G=32-(re(v|0)|0)|0;V=v>>>(G+-16|0);g=(V>>>12)+-8|0;g=(_<<3)-((G<<3)+(g+(V>>>0>(s[5272+(g<<2)>>2]|0)>>>0&1)))|0;if(!E)break;R=R+x|0;y=1;I=I-x|0}s[B+(L<<2)>>2]=R;if((R|0)<=0){R=_;L=N;k=I;continue}R=_;D=(D|0)<3?2:D+-1|0;L=N;k=I}i=l;l=l+((1*(Ce<<2)|0)+15&-16)|0;e:do if((g+48|0)>(k|0)){p=R;f=v;m=5}else{_=s[f>>2]|0;y=v>>>7;E=-1;while(1){E=E+1|0;g=te(y,a[28207+E>>0]|0)|0;if(_>>>0>=g>>>0)break;else v=g}k=_-g|0;s[f>>2]=k;v=v-g|0;s[fe>>2]=v;g=R;while(1){if(v>>>0>=8388609){p=g;f=v;m=E;break e}g=g+8|0;s[oe>>2]=g;_=v<<8;s[fe>>2]=_;y=s[p>>2]|0;v=s[m>>2]|0;if(v>>>0>>0){s[m>>2]=v+1;v=a[(s[w>>2]|0)+v>>0]|0}else v=0;s[p>>2]=v;V=((y<<8|v)>>>1&255|k<<8&2147483392)^255;s[f>>2]=V;v=_;k=V}}while(0);G=32-(re(f|0)|0)|0;V=f>>>(G+-16|0);f=(V>>>12)+-8|0;f=z+((G<<3)+(f+(V>>>0>(s[5272+(f<<2)>>2]|0)>>>0&1))-(p<<3))+-1|0;V=(T|0)==0;if((de|0)>1&(V^1))C=(f|0)>=((de<<3)+16|0);else C=0;I=C?8:0;G=l;l=l+((1*(Ce<<2)|0)+15&-16)|0;j=l;l=l+((1*(Ce<<2)|0)+15&-16)|0;x=Ti(xe,Me,Te,B,U,m,ne,ie,f-I|0,ee,G,i,j,ue,de,c,0,0,0)|0;N=c+12|0;D=c+16|0;L=c+8|0;R=Me;while(1){if((R|0)>=(Te|0))break;y=s[i+(R<<2)>>2]|0;if((y|0)>=1){k=(1<>2]|0;f=s[D>>2]|0;E=0;do{if(f>>>0>>0){v=f+8|0;_=((v|0)>25?v:25)+-1-f&-8;p=m;do{m=s[L>>2]|0;g=s[Y>>2]|0;if(m>>>0>>0){m=m+1|0;s[L>>2]=m;m=a[(s[w>>2]|0)+(g-m)>>0]|0}else m=0;p=p|m<>>y;f=f-y|0;s[N>>2]=m;s[D>>2]=f;s[oe>>2]=(s[oe>>2]|0)+y;q=ke+(R+(te(E,s[ce>>2]|0)|0)<<2)|0;h[q>>2]=+h[q>>2]+((+(p&k|0)+.5)*A*6103515625e-14+-.5);E=E+1|0}while((E|0)<(ue|0))}R=R+1|0}f=2048-_e+((me|0)/2|0)<<2;p=0;do{q=s[Q+(p<<2)>>2]|0;Tn(q|0,q+(_e<<2)|0,f|0)|0;p=p+1|0}while((p|0)<(Se|0));U=te(ue,Ce)|0;B=l;l=l+((1*U|0)+15&-16)|0;q=(te(ue,_e)|0)<<2;F=l;l=l+((1*q|0)+15&-16)|0;q=e+36|0;sr(0,xe,Me,Te,F,(ue|0)==2?F+(_e<<2)|0:0,B,0,G,Z,t,s[ie>>2]|0,s[ne>>2]|0,W,z-I|0,s[ee>>2]|0,c,de,x,q,0,s[e+32>>2]|0);if(C){p=s[N>>2]|0;f=s[D>>2]|0;if(!f){g=s[Y>>2]|0;m=s[L>>2]|0;v=0;do{if(m>>>0>>0){f=m+1|0;s[L>>2]=f;m=f;f=a[(s[w>>2]|0)+(g-f)>>0]|0}else f=0;p=p|f<>2]=p>>>1;s[D>>2]=f+-1;f=(s[oe>>2]|0)+1|0;s[oe>>2]=f;t=p&1}else{f=s[oe>>2]|0;t=0}p=ae-(f+((re(s[fe>>2]|0)|0)+-32))|0;E=0;while(1){if((E|0)==2)break;else k=Me;while(1){if(!((k|0)<(Te|0)&(p|0)>=(ue|0)))break;m=s[i+(k<<2)>>2]|0;do if((m|0)<=7){if((s[j+(k<<2)>>2]|0)!=(E|0))break;A=+(1<<14-m+-1|0);g=s[D>>2]|0;v=s[N>>2]|0;y=0;do{if(!g){_=0;while(1){m=s[L>>2]|0;g=s[Y>>2]|0;if(m>>>0>>0){m=m+1|0;s[L>>2]=m;m=a[(s[w>>2]|0)+(g-m)>>0]|0}else m=0;m=v|m<<_;_=_+8|0;if((_|0)>=25){g=32;break}else v=m}}else m=v;v=m>>>1;g=g+-1|0;s[N>>2]=v;s[D>>2]=g;f=f+1|0;s[oe>>2]=f;ne=ke+(k+(te(y,s[ce>>2]|0)|0)<<2)|0;h[ne>>2]=+h[ne>>2]+(+(m&1|0)+-.5)*A*6103515625e-14;p=p+-1|0;y=y+1|0}while((y|0)<(ue|0))}while(0);k=k+1|0}E=E+1|0}e:do if(t|0){_=(de|0)==3;f=s[q>>2]|0;R=Me;t:while(1){if((R|0)>=(Te|0))break e;y=R+1|0;k=s[le>>2]|0;k=(n[k+(y<<1)>>1]|0)-(n[k+(R<<1)>>1]|0)|0;P=+J(+(+(((((s[G+(R<<2)>>2]|0)+1|0)>>>0)/(k>>>0)|0)>>>de|0)*-.125*.6931471805599453))*.5;E=k<>2]|0;w=(te(p,m)|0)+R|0;S=+h[Ee+(w<<2)>>2];A=+h[Ae+(w<<2)>>2];do if(se){ne=m+R|0;M=+h[Ee+(ne<<2)>>2];S=S>M?S:M;M=+h[Ae+(ne<<2)>>2];if(A>M)break;A=M}while(0);A=+h[ke+(w<<2)>>2]-(S>2]|0)+(R<<1)>>1]<=(pe|0))break;i:do if(!(a[g>>0]&1<=(k|0)){m=1;break i}ne=(te(f,1664525)|0)+1013904223|0;h[v+((m<>2]=(ne&32768|0)==0?S:A;f=ne;m=m+1|0}}while(0);w=w+1|0}i:do if(m|0){m=0;A=0;while(1){if((m|0)>=(E|0))break;M=+h[v+(m<<2)>>2];m=m+1|0;A=A+M*M}A=1/+H(+(A+1.0000000036274937e-15));w=0;m=v;while(1){if((w|0)>=(E|0))break i;h[m>>2]=A*+h[m>>2];w=w+1|0;m=m+4|0}}while(0);p=p+1|0;if((p|0)>=(ue|0)){R=y;continue t}}}}while(0);e:do if(d|0){f=0;while(1){if((f|0)>=(U|0))break e;h[ke+(f<<2)>>2]=-28;f=f+1|0}}while(0);oi(xe,F,Ie,ke,Me,he,ue,Se,T,de,s[Re>>2]|0,d);m=e+56|0;w=e+60|0;g=e+68|0;v=e+64|0;_=e+76|0;y=e+72|0;k=xe+60|0;f=(de|0)==0;p=0;do{de=s[m>>2]|0;de=(de|0)>15?de:15;s[m>>2]=de;ue=s[w>>2]|0;ue=(ue|0)>15?ue:15;s[w>>2]=ue;d=s[Ie+(p<<2)>>2]|0;As(d,d,ue,de,s[be>>2]|0,+h[g>>2],+h[v>>2],s[_>>2]|0,s[y>>2]|0,s[k>>2]|0,me);if(!f){de=s[be>>2]|0;ue=d+(de<<2)|0;As(ue,ue,s[m>>2]|0,X,_e-de|0,+h[v>>2],b,s[y>>2]|0,$,s[k>>2]|0,me)}p=p+1|0}while((p|0)<(Se|0));s[w>>2]=s[m>>2];s[g>>2]=s[v>>2];s[_>>2]=s[y>>2];s[m>>2]=X;h[v>>2]=b;s[y>>2]=$;if(!f){s[w>>2]=X;h[g>>2]=b;s[_>>2]=$}if(se)Mn(ke+(Ce<<2)|0,ke|0,Ce<<2|0)|0;e:do if(V){f=Ce<<3;Mn(Ae|0,Ee|0,f|0)|0;Mn(Ee|0,ke|0,f|0)|0;b=(s[ve>>2]|0)<10?+(pe|0)*.0010000000474974513:1;f=0;while(1){if((f|0)>=(ge|0)){p=0;break e}me=we+(f<<2)|0;P=+h[me>>2]+b;O=+h[ke+(f<<2)>>2];h[me>>2]=P=(ge|0)){p=0;break e}we=Ee+(f<<2)|0;P=+h[we>>2];O=+h[ke+(f<<2)>>2];h[we>>2]=P=(Me|0)){f=Te;break}ge=d+f|0;h[ke+(ge<<2)>>2]=0;h[Ae+(ge<<2)>>2]=-28;h[Ee+(ge<<2)>>2]=-28;f=f+1|0}while(1){if((f|0)>=(Ce|0))break;ge=d+f|0;h[ke+(ge<<2)>>2]=0;h[Ae+(ge<<2)>>2]=-28;h[Ee+(ge<<2)>>2]=-28;f=f+1|0}p=p+1|0}while((p|0)!=2);s[q>>2]=s[fe>>2];fi(Ie,o,_e,Se,s[Re>>2]|0,xe+16|0,e+80|0,u);s[ve>>2]=0;if(((s[oe>>2]|0)+((re(s[fe>>2]|0)|0)+-32)|0)>(ae|0))f=-3;else{if(s[c+44>>2]|0)s[e+40>>2]=1;f=(ye|0)/(s[Re>>2]|0)|0}qe(K|0);e=f;l=Pe;return e|0}function ai(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,a=0,o=0,f=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0,I=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,q=0,G=0,V=0,W=0,K=0,Z=0,Y=0,$=0,X=0;Y=l;l=l+8512|0;c=Y+8504|0;f=Y+4408|0;Z=Y+4400|0;S=Y+4392|0;F=Y+296|0;j=Y+192|0;z=Y+96|0;q=Y;K=s[e+8>>2]|0;M=s[e>>2]|0;d=s[M+8>>2]|0;W=s[M+4>>2]|0;A=s[M+32>>2]|0;r=W+2048|0;U=0-t|0;a=0;do{V=e+88+((te(a,r)|0)<<2)|0;s[Z+(a<<2)>>2]=V;s[S+(a<<2)>>2]=V+8192+(U<<2);a=a+1|0}while((a|0)<(K|0));B=e+88+((te(r,K)|0)<<2)|0;k=B+(K*24<<2)|0;u=d<<1;u=k+(u<<2)+(u<<2)+(u<<2)|0;G=e+48|0;V=s[G>>2]|0;E=s[e+20>>2]|0;if((V|0)<5&(E|0)==0?(s[e+52>>2]|0)==0:0){L=(V|0)==0;if(L){bi(Z,f,2048,K);wi(f+1440|0,f,1328,620,c);D=720-(s[c>>2]|0)|0;s[e+44>>2]=D;N=1}else{N=.800000011920929;D=s[e+44>>2]|0}P=Ne()|0;O=l;l=l+((1*(W<<2)|0)+15&-16)|0;_=s[M+60>>2]|0;k=D<<1;E=(k|0)<1024;A=F+4096|0;i=2048-t|0;S=i<<2;M=1024-D|0;T=W+t|0;R=1024-t+M|0;x=i+-1|0;C=e+56|0;I=e+64|0;p=e+72|0;b=(W|0)/2|0;m=W+-1|0;v=0;do{g=s[Z+(v<<2)>>2]|0;r=0;while(1){if((r|0)==1024)break;s[F+(r<<2)>>2]=s[g+(r+1024<<2)>>2];r=r+1|0}if(L){Ai(F,j,_,W,24,1024);h[j>>2]=+h[j>>2]*1.000100016593933;r=1;while(1){if((r|0)==25)break;e=j+(r<<2)|0;w=+h[e>>2];y=+(r|0);h[e>>2]=w-w*6400000711437315e-20*y*y;r=r+1|0}_i(B+(v*24<<2)|0,j,24)}f=E?k:1024;r=2048-f+-1|0;a=0;while(1){if((a|0)==24)break;s[z+(a<<2)>>2]=s[g+(r-a<<2)>>2];a=a+1|0}c=A+(0-f<<2)|0;d=B+(v*24<<2)|0;yi(c,d,c,f,z);c=f>>1;u=1024-c|0;r=1024-f|0;o=1;w=1;a=0;while(1){if((a|0)>=(c|0))break;$=+h[F+(u+a<<2)>>2];y=+h[F+(r+a<<2)>>2];o=o+$*$;w=w+y*y;a=a+1|0}w=+H(+((o=(T|0)){r=0;break}e=(a|0)<(D|0);$=e?o:o*w;e=a-(e?0:D)|0;h[g+(i+r<<2)>>2]=$*+h[F+(M+e<<2)>>2];X=+h[g+(R+e<<2)>>2];y=y+X*X;o=$;r=r+1|0;a=e+1|0}while(1){if((r|0)==24)break;s[q+(r<<2)>>2]=s[g+(x-r<<2)>>2];r=r+1|0}a=g+8192|0;r=a+(U<<2)|0;Ei(r,d,r,T,q);o=0;r=0;while(1){if((r|0)>=(T|0))break;X=+h[g+(i+r<<2)>>2];o=o+X*X;r=r+1|0}e:do if(y>o*.20000000298023224){if(y=(W|0)){r=W;break}e=g+(i+r<<2)|0;h[e>>2]=(1-+h[_+(r<<2)>>2]*o)*+h[e>>2];r=r+1|0}while(1){if((r|0)>=(T|0))break e;e=g+(i+r<<2)|0;h[e>>2]=w*+h[e>>2];r=r+1|0}}}else{r=0;while(1){if((r|0)>=(T|0))break e;h[g+(i+r<<2)>>2]=0;r=r+1|0}}while(0);e=s[C>>2]|0;X=-+h[I>>2];r=s[p>>2]|0;As(O,a,e,e,W,X,X,r,r,0,0);r=0;while(1){if((r|0)>=(b|0))break;h[g+(r+2048<<2)>>2]=+h[_+(r<<2)>>2]*+h[O+(m-r<<2)>>2]+ +h[_+(W-r+-1<<2)>>2]*+h[O+(r<<2)>>2];r=r+1|0}v=v+1|0}while((v|0)<(K|0));qe(P|0);Z=V+1|0;s[G>>2]=Z;l=Y;return}r=s[e+24>>2]|0;g=s[M+12>>2]|0;f=(r|0)<(g|0);g=(E|0)>((f?r:g)|0)?E:f?r:g;f=te(K,t)|0;v=Ne()|0;_=l;l=l+((1*(f<<2)|0)+15&-16)|0;o=(V|0)==0?1.5:.5;f=0;do{a=te(f,d)|0;c=E;while(1){if((c|0)>=(r|0))break;q=a+c|0;$=+h[u+(q<<2)>>2];q=k+(q<<2)|0;X=+h[q>>2]-o;h[q>>2]=$>X?$:X;c=c+1|0}f=f+1|0}while((f|0)<(K|0));p=e+36|0;m=0;r=s[p>>2]|0;while(1){if((m|0)>=(K|0))break;b=te(m,t)|0;a=E;e:while(1){if((a|0)>=(g|0))break;d=n[A+(a<<1)>>1]|0;c=b+(d<>1]|0)-d<=(d|0))break;q=(te(r,1664525)|0)+1013904223|0;h[_+(c+f<<2)>>2]=+(q>>20|0);f=f+1|0;r=q}u=_+(c<<2)|0;f=0;o=0;while(1){if((f|0)>=(d|0))break;X=+h[u+(f<<2)>>2];f=f+1|0;o=o+X*X}o=1/+H(+(o+1.0000000036274937e-15));c=0;f=u;while(1){if((c|0)>=(d|0))continue e;h[f>>2]=o*+h[f>>2];c=c+1|0;f=f+4|0}}m=m+1|0}s[p>>2]=r;r=2048-t+(W>>>1)<<2;a=0;do{W=s[Z+(a<<2)>>2]|0;Tn(W|0,W+(t<<2)|0,r|0)|0;a=a+1|0}while((a|0)<(K|0));oi(M,_,S,k,E,g,K,K,0,i,s[e+16>>2]|0,0);qe(v|0);Z=V+1|0;s[G>>2]=Z;l=Y;return}function oi(e,t,i,r,n,a,o,f,c,u,d,p){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;a=a|0;o=o|0;f=f|0;c=c|0;u=u|0;d=d|0;p=p|0;var b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0;R=l;M=s[e+4>>2]|0;v=s[e+8>>2]|0;_=e+44|0;w=s[_>>2]|0;k=w<>2]|0)-(E?u:0)|0;switch(f|0){case 2:{if((o|0)==1){nr(s[e+32>>2]|0,w,t,T,r,n,a,y,d,p);m=i+4|0;o=(s[m>>2]|0)+(((M|0)/2|0)<<2)|0;Mn(o|0,T|0,k<<2|0)|0;b=e+64|0;u=e+60|0;c=0;while(1){if((c|0)>=(A|0)){c=0;break}k=(s[i>>2]|0)+((te(S,c)|0)<<2)|0;pi(b,o+(c<<2)|0,k,s[u>>2]|0,M,E,A);c=c+1|0}while(1){if((c|0)>=(A|0))break;i=(s[m>>2]|0)+((te(S,c)|0)<<2)|0;pi(b,T+(c<<2)|0,i,s[u>>2]|0,M,E,A);c=c+1|0}l=R;return}break}case 1:{if((o|0)==2){u=(s[i>>2]|0)+(((M|0)/2|0)<<2)|0;c=e+32|0;nr(s[c>>2]|0,w,t,T,r,n,a,y,d,p);nr(s[c>>2]|0,s[_>>2]|0,t+(k<<2)|0,u,r+(v<<2)|0,n,a,y,d,p);c=0;while(1){if((c|0)>=(k|0))break;n=T+(c<<2)|0;h[n>>2]=+h[n>>2]*.5+ +h[u+(c<<2)>>2]*.5;c=c+1|0}o=e+64|0;c=e+60|0;u=0;while(1){if((u|0)>=(A|0))break;k=(s[i>>2]|0)+((te(S,u)|0)<<2)|0;pi(o,T+(u<<2)|0,k,s[c>>2]|0,M,E,A);u=u+1|0}l=R;return}break}default:{}}g=e+32|0;m=e+64|0;b=e+60|0;c=0;u=w;while(1){e=t+((te(c,k)|0)<<2)|0;o=r+((te(c,v)|0)<<2)|0;nr(s[g>>2]|0,u,e,T,o,n,a,y,d,p);u=i+(c<<2)|0;o=0;while(1){if((o|0)>=(A|0))break;e=(s[u>>2]|0)+((te(S,o)|0)<<2)|0;pi(m,T+(o<<2)|0,e,s[b>>2]|0,M,E,A);o=o+1|0}c=c+1|0;if((c|0)>=(f|0))break;u=s[_>>2]|0}l=R;return}function fi(e,t,i,r,n,a,o,f){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;a=a|0;o=o|0;f=f|0;var c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0;E=l;if((n|0)==1&(r|0)==2&(f|0)==0){p=+h[a>>2];b=s[e>>2]|0;f=s[e+4>>2]|0;a=o+4|0;c=0;u=+h[o>>2];d=+h[a>>2];while(1){if((c|0)>=(i|0))break;S=+h[b+(c<<2)>>2]+1.0000000031710769e-30+u;A=+h[f+(c<<2)>>2]+1.0000000031710769e-30+d;e=c<<1;h[t+(e<<2)>>2]=S*30517578125e-15;h[t+((e|1)<<2)>>2]=A*30517578125e-15;c=c+1|0;u=S*p;d=A*p}h[o>>2]=u;h[a>>2]=d;l=E;return}y=Ne()|0;k=l;l=l+((1*(i<<2)|0)+15&-16)|0;d=+h[a>>2];w=(i|0)/(n|0)|0;g=(n|0)>1;f=0;v=0;do{c=o+(v<<2)|0;u=+h[c>>2];b=s[e+(v<<2)>>2]|0;m=t+(v<<2)|0;if(!g){a=0;while(1){if((a|0)>=(i|0))break;S=+h[b+(a<<2)>>2]+1.0000000031710769e-30+u;h[m+((te(a,r)|0)<<2)>>2]=S*30517578125e-15;a=a+1|0;u=d*S}h[c>>2]=u;if(!f)f=0;else _=14}else{f=0;while(1){if((f|0)>=(i|0))break;S=+h[b+(f<<2)>>2]+1.0000000031710769e-30+u;h[k+(f<<2)>>2]=S;f=f+1|0;u=d*S}h[c>>2]=u;f=1;_=14}e:do if((_|0)==14){_=0;a=0;while(1){if((a|0)>=(w|0))break e;h[m+((te(a,r)|0)<<2)>>2]=+h[k+((te(a,n)|0)<<2)>>2]*30517578125e-15;a=a+1|0}}while(0);v=v+1|0}while((v|0)<(r|0));qe(y|0);l=E;return}function hi(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var n=0,o=0,f=0,h=0,c=0,l=0,u=0,d=0;n=s[e+36>>2]|0;r=te(n,r-i|0)|0;d=e+32|0;o=(s[d>>2]|0)-r|0;s[d>>2]=o;if(!t){l=e+28|0;u=l;r=(s[l>>2]|0)-r|0}else{u=e+28|0;r=te(n,i-t|0)|0}s[u>>2]=r;f=e+20|0;h=e+40|0;c=e+24|0;l=e+4|0;t=o;while(1){if(r>>>0>=8388609)break;s[f>>2]=(s[f>>2]|0)+8;r=r<<8;s[u>>2]=r;i=s[h>>2]|0;n=s[c>>2]|0;if(n>>>0<(s[l>>2]|0)>>>0){s[c>>2]=n+1;n=a[(s[e>>2]|0)+n>>0]|0}else n=0;s[h>>2]=n;o=((i<<8|n)>>>1&255|t<<8&2147483392)^255;s[d>>2]=o;t=o}return}function ci(e,t){e=e|0;t=t|0;var i=0,r=0,n=0,o=0,f=0,h=0,c=0,l=0,u=0,d=0,p=0;p=t+-1|0;i=32-(re(p|0)|0)|0;if((i|0)<=8){u=e+28|0;h=s[u>>2]|0;o=(h>>>0)/(t>>>0)|0;s[e+36>>2]=o;d=e+32|0;l=s[d>>2]|0;c=((l>>>0)/(o>>>0)|0)+1|0;c=c>>>0>t>>>0?t:c;i=t-c|0;f=te(o,t-(i+1)|0)|0;l=l-f|0;s[d>>2]=l;t=(c|0)==(t|0)?h-f|0:o;s[u>>2]=t;o=e+20|0;f=e+40|0;h=e+24|0;c=e+4|0;while(1){if(t>>>0>=8388609)break;s[o>>2]=(s[o>>2]|0)+8;t=t<<8;s[u>>2]=t;n=s[f>>2]|0;r=s[h>>2]|0;if(r>>>0<(s[c>>2]|0)>>>0){s[h>>2]=r+1;r=a[(s[e>>2]|0)+r>>0]|0}else r=0;s[f>>2]=r;p=((n<<8|r)>>>1&255|l<<8&2147483392)^255;s[d>>2]=p;l=p}return i|0}d=i+-8|0;l=(p>>>d)+1|0;c=((s[e+28>>2]|0)>>>0)/(l>>>0)|0;s[e+36>>2]=c;c=(((s[e+32>>2]|0)>>>0)/(c>>>0)|0)+1|0;c=l-(l>>>0>>0?l:c)|0;hi(e,c,c+1|0,l);c=c<>2]|0;u=e+16|0;t=s[u>>2]|0;if(t>>>0>>0){f=e+8|0;o=s[e+4>>2]|0;h=t+8|0;h=t+(((h|0)>25?h:25)+-1-t&-8)|0;r=s[f>>2]|0;do{if(r>>>0>>0){n=r+1|0;s[f>>2]=n;r=n;n=a[(s[e>>2]|0)+(o-n)>>0]|0}else n=0;i=i|n<>2]=i>>>d;s[u>>2]=t-d;u=e+20|0;s[u>>2]=(s[u>>2]|0)+d;i=c|i&(1<>>0<=p>>>0){e=i;return e|0}s[e+44>>2]=1;e=p;return e|0}function li(e){e=e|0;var t=0,i=0,n=0,o=0,f=0,h=0,c=0,l=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0;g=s[e+28>>2]|0;o=re(g|0)|0;t=2147483647>>>o;i=s[e+32>>2]|0;n=i+t&~t;if((n|t)>>>0>=(i+g|0)>>>0){n=t>>>1;n=i+n&~n;o=o+1|0}u=e+36|0;d=e+40|0;w=e+24|0;p=e+8|0;b=e+4|0;g=e+44|0;m=o+7&-8;c=o;while(1){if((c|0)<=0)break;h=n>>>23;if((h|0)==255)s[u>>2]=(s[u>>2]|0)+1;else{f=n>>>31;t=s[d>>2]|0;if((t|0)>-1){i=s[w>>2]|0;if((i+(s[p>>2]|0)|0)>>>0<(s[b>>2]|0)>>>0){s[w>>2]=i+1;r[(s[e>>2]|0)+i>>0]=t+f;t=0}else t=-1;s[g>>2]=s[g>>2]|t}t=s[u>>2]|0;if(t|0){f=f+255&255;do{i=s[w>>2]|0;if((i+(s[p>>2]|0)|0)>>>0<(s[b>>2]|0)>>>0){s[w>>2]=i+1;r[(s[e>>2]|0)+i>>0]=f;i=0;t=s[u>>2]|0}else i=-1;s[g>>2]=s[g>>2]|i;t=t+-1|0;s[u>>2]=t}while((t|0)!=0)}s[d>>2]=h&255}n=n<<8&2147483392;c=c+-8|0}i=s[d>>2]|0;if((i|0)>-1){t=s[w>>2]|0;if((t+(s[p>>2]|0)|0)>>>0<(s[b>>2]|0)>>>0){s[w>>2]=t+1;r[(s[e>>2]|0)+t>>0]=i;t=0}else t=-1;s[g>>2]=s[g>>2]|t;t=s[u>>2]|0;if(!t)l=26;else l=23}else{t=s[u>>2]|0;if(t|0)l=23}if((l|0)==23)while(1){i=s[w>>2]|0;if((i+(s[p>>2]|0)|0)>>>0<(s[b>>2]|0)>>>0){s[w>>2]=i+1;r[(s[e>>2]|0)+i>>0]=-1;i=0;t=s[u>>2]|0}else i=-1;s[g>>2]=s[g>>2]|i;t=t+-1|0;s[u>>2]=t;if(!t){l=26;break}else l=23}if((l|0)==26)s[d>>2]=0;h=s[e+16>>2]|0;f=h+~((h|0)<7?h:7)+8&-8;c=h;t=s[e+12>>2]|0;while(1){if((c|0)<=7)break;i=s[p>>2]|0;n=s[b>>2]|0;if(((s[w>>2]|0)+i|0)>>>0>>0){i=i+1|0;s[p>>2]=i;r[(s[e>>2]|0)+(n-i)>>0]=t;i=0}else i=-1;s[g>>2]=s[g>>2]|i;c=c+-8|0;t=t>>>8}f=h-f|0;if(s[g>>2]|0)return;d=s[w>>2]|0;kn((s[e>>2]|0)+d|0,0,(s[b>>2]|0)-d-(s[p>>2]|0)|0)|0;if((f|0)<=0)return;h=s[p>>2]|0;n=s[b>>2]|0;if(n>>>0<=h>>>0){s[g>>2]=-1;return}i=m-o|0;if((f|0)>(i|0)?((s[w>>2]|0)+h|0)>>>0>=n>>>0:0){s[g>>2]=-1;t=t&(1<>2]|0)+(n-h+-1)|0;r[e>>0]=a[e>>0]|0|t;return}function ui(e,t){e=e|0;t=t|0;var i=0,r=0,a=0,o=0,f=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0,I=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,q=0,H=0,G=0,V=0,W=0,K=0,Z=0,Y=0;x=l;l=l+32|0;R=x;T=s[e+8>>2]|0;T=(T|0)>0?T:0;s[R>>2]=1;i=1;r=0;while(1){a=r<<1;M=n[e+12+((a|1)<<1)>>1]|0;i=te(i,n[e+12+(a<<1)>>1]|0)|0;a=r+1|0;s[R+(a<<2)>>2]=i;if(M<<16>>16==1)break;else r=a}M=e+48|0;A=n[e+12+((a<<1)+-1<<1)>>1]|0;while(1){if((r|0)<=-1)break;i=r<<1;if(!r)S=1;else S=n[e+12+(i+-1<<1)>>1]|0;e:do switch(n[e+12+(i<<1)>>1]|0){case 2:{a=s[R+(r<<2)>>2]|0;i=t;o=0;while(1){if((o|0)>=(a|0))break e;E=i+32|0;y=+h[E>>2];A=i+36|0;_=+h[A>>2];c=+h[i>>2];h[E>>2]=c-y;E=i+4|0;k=+h[E>>2];h[A>>2]=k-_;h[i>>2]=c+y;h[E>>2]=k+_;E=i+40|0;_=+h[E>>2];A=i+44|0;k=+h[A>>2];y=(_+k)*.7071067690849304;_=(k-_)*.7071067690849304;v=i+8|0;k=+h[v>>2];h[E>>2]=k-y;E=i+12|0;c=+h[E>>2];h[A>>2]=c-_;h[v>>2]=k+y;h[E>>2]=c+_;E=i+52|0;_=+h[E>>2];v=i+48|0;c=+h[v>>2];A=i+16|0;y=+h[A>>2];h[v>>2]=y-_;v=i+20|0;k=+h[v>>2];h[E>>2]=k+c;h[A>>2]=y+_;h[v>>2]=k-c;v=i+60|0;c=+h[v>>2];A=i+56|0;k=+h[A>>2];_=(c-k)*.7071067690849304;k=(c+k)*-.7071067690849304;E=i+24|0;c=+h[E>>2];h[A>>2]=c-_;A=i+28|0;y=+h[A>>2];h[v>>2]=y-k;h[E>>2]=c+_;h[A>>2]=y+k;i=i+64|0;o=o+1|0}}case 4:{v=s[R+(r<<2)>>2]|0;d=v<=(v|0))break e;k=+h[i>>2];p=i+16|0;D=+h[p>>2];c=k-D;m=i+4|0;I=+h[m>>2];b=i+20|0;O=+h[b>>2];y=I-O;D=k+D;O=I+O;w=i+8|0;I=+h[w>>2];E=i+24|0;k=+h[E>>2];N=I+k;g=i+12|0;C=+h[g>>2];A=i+28|0;_=+h[A>>2];P=C+_;h[p>>2]=D-N;h[b>>2]=O-P;h[i>>2]=D+N;h[m>>2]=O+P;k=I-k;_=C-_;h[w>>2]=c+_;h[g>>2]=y-k;h[E>>2]=c-_;h[A>>2]=y+k;i=i+32|0;a=a+1|0}}a=A<<1;o=A*3|0;f=d<<1;u=d*3|0;p=0;while(1){if((p|0)>=(v|0))break e;i=t+((te(p,S)|0)<<3)|0;g=s[M>>2]|0;b=0;m=g;w=g;while(1){if((b|0)>=(A|0))break;U=i+(A<<3)|0;C=+h[U>>2];_=+h[m>>2];B=i+(A<<3)+4|0;I=+h[B>>2];k=+h[m+4>>2];c=C*_-I*k;_=C*k+I*_;z=i+(a<<3)|0;I=+h[z>>2];k=+h[w>>2];F=i+(a<<3)+4|0;C=+h[F>>2];O=+h[w+4>>2];y=I*k-C*O;k=I*O+C*k;L=i+(o<<3)|0;C=+h[L>>2];O=+h[g>>2];E=i+(o<<3)+4|0;I=+h[E>>2];P=+h[g+4>>2];D=C*O-I*P;O=C*P+I*O;I=+h[i>>2];P=I-y;j=i+4|0;C=+h[j>>2];N=C-k;y=I+y;h[i>>2]=y;k=C+k;h[j>>2]=k;C=c+D;I=_+O;D=c-D;O=_-O;h[z>>2]=y-C;h[F>>2]=k-I;h[i>>2]=+h[i>>2]+C;h[j>>2]=+h[j>>2]+I;h[U>>2]=P+O;h[B>>2]=N-D;h[L>>2]=P-O;h[E>>2]=N+D;i=i+8|0;b=b+1|0;m=m+(d<<3)|0;w=w+(f<<3)|0;g=g+(u<<3)|0}p=p+1|0}}case 3:{a=s[R+(r<<2)>>2]|0;o=a<>2]|0)+(u<<3)+4>>2];u=o<<1;d=0;while(1){if((d|0)>=(a|0))break e;i=t+((te(d,S)|0)<<3)|0;m=s[M>>2]|0;p=A;b=m;while(1){F=i+(A<<3)|0;P=+h[F>>2];I=+h[b>>2];z=i+(A<<3)+4|0;k=+h[z>>2];N=+h[b+4>>2];C=P*I-k*N;I=P*N+k*I;U=i+(f<<3)|0;k=+h[U>>2];N=+h[m>>2];j=i+(f<<3)+4|0;P=+h[j>>2];O=+h[m+4>>2];D=k*N-P*O;N=k*O+P*N;P=C+D;O=I+N;h[F>>2]=+h[i>>2]-P*.5;B=i+4|0;h[z>>2]=+h[B>>2]-O*.5;D=(C-D)*c;N=(I-N)*c;h[i>>2]=+h[i>>2]+P;h[B>>2]=+h[B>>2]+O;h[U>>2]=+h[F>>2]+N;h[j>>2]=+h[z>>2]-D;h[F>>2]=+h[F>>2]-N;h[z>>2]=+h[z>>2]+D;p=p+-1|0;if(!p)break;else{i=i+8|0;b=b+(o<<3)|0;m=m+(u<<3)|0}}d=d+1|0}}case 5:{i=s[R+(r<<2)>>2]|0;a=i<>2]|0;c=+h[o+(f<<3)>>2];_=+h[o+(f<<3)+4>>2];f=te(a<<1,A)|0;y=+h[o+(f<<3)>>2];k=+h[o+(f<<3)+4>>2];f=A<<1;u=A*3|0;d=A<<2;v=0;while(1){if((v|0)>=(i|0))break e;g=t+((te(v,S)|0)<<3)|0;p=g;b=g+(A<<3)|0;m=g+(f<<3)|0;w=g+(u<<3)|0;g=g+(d<<3)|0;E=0;while(1){if((E|0)>=(A|0))break;V=+h[p>>2];B=p+4|0;H=+h[B>>2];G=+h[b>>2];L=te(E,a)|0;P=+h[o+(L<<3)>>2];U=b+4|0;Z=+h[U>>2];Y=+h[o+(L<<3)+4>>2];N=G*P-Z*Y;P=G*Y+Z*P;Z=+h[m>>2];L=te(E<<1,a)|0;Y=+h[o+(L<<3)>>2];F=m+4|0;G=+h[F>>2];C=+h[o+(L<<3)+4>>2];K=Z*Y-G*C;Y=Z*C+G*Y;G=+h[w>>2];L=te(E*3|0,a)|0;C=+h[o+(L<<3)>>2];z=w+4|0;Z=+h[z>>2];O=+h[o+(L<<3)+4>>2];D=G*C-Z*O;C=G*O+Z*C;Z=+h[g>>2];L=te(E<<2,a)|0;O=+h[o+(L<<3)>>2];j=g+4|0;G=+h[j>>2];q=+h[o+(L<<3)+4>>2];I=Z*O-G*q;O=Z*q+G*O;G=N+I;q=P+O;I=N-I;O=P-O;P=K+D;N=Y+C;D=K-D;C=Y-C;h[p>>2]=V+(G+P);h[B>>2]=H+(q+N);Y=V+(G*c+P*y);K=H+(q*c+N*y);Z=O*_+C*k;W=I*_+D*k;h[b>>2]=Y-Z;h[U>>2]=K+W;h[g>>2]=Y+Z;h[j>>2]=K-W;P=V+(G*y+P*c);N=H+(q*y+N*c);O=C*_-O*k;D=I*k-D*_;h[m>>2]=P+O;h[F>>2]=N+D;h[w>>2]=P-O;h[z>>2]=N-D;p=p+8|0;b=b+8|0;m=m+8|0;w=w+8|0;g=g+8|0;E=E+1|0}v=v+1|0}}default:{}}while(0);r=r+-1|0;A=S}l=x;return}function di(e,t,i,r,a,o,f){e=e|0;t=t|0;i=i|0;r=r|0;a=a|0;o=o|0;f=f|0;var c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0;A=l;v=s[e+8+(o<<2)>>2]|0;_=+h[v+4>>2];c=s[e>>2]|0;u=0;E=s[e+24>>2]|0;while(1){k=c>>1;if((u|0)>=(o|0))break;c=k;u=u+1|0;E=E+(k<<2)|0}y=c>>2;e=l;l=l+((1*(k<<2)|0)+15&-16)|0;c=l;l=l+((1*(y<<3)|0)+15&-16)|0;o=a>>1;m=r+(o<<2)|0;w=a+3>>2;g=0-k|0;p=0;b=m;m=m+-4|0;d=t+(o<<2)|0;o=t+(k<<2)+-4+(o<<2)|0;u=e;while(1){if((p|0)>=(w|0))break;S=+h[m>>2];M=+h[b>>2];h[u>>2]=S*+h[d+(k<<2)>>2]+M*+h[o>>2];h[u+4>>2]=M*+h[d>>2]-S*+h[o+(g<<2)>>2];p=p+1|0;b=b+8|0;m=m+-8|0;d=d+8|0;o=o+-8|0;u=u+8|0}t=r+(a<<2)|0;b=y-w|0;while(1){if((p|0)>=(b|0))break;s[u>>2]=s[o>>2];s[u+4>>2]=s[d>>2];p=p+1|0;d=d+8|0;o=o+-8|0;u=u+8|0}m=p;b=r;p=t+-4|0;while(1){if((m|0)>=(y|0))break;h[u>>2]=+h[p>>2]*+h[o>>2]-+h[b>>2]*+h[d+(g<<2)>>2];h[u+4>>2]=+h[p>>2]*+h[d>>2]+ +h[b>>2]*+h[o+(k<<2)>>2];m=m+1|0;b=b+8|0;p=p+-8|0;d=d+8|0;o=o+-8|0;u=u+8|0}u=v+44|0;o=0;while(1){if((o|0)>=(y|0))break;T=+h[E+(o<<2)>>2];M=+h[E+(y+o<<2)>>2];S=+h[e>>2];R=+h[e+4>>2];g=n[(s[u>>2]|0)+(o<<1)>>1]|0;h[c+(g<<3)>>2]=_*(S*T-R*M);h[c+(g<<3)+4>>2]=_*(R*T+S*M);o=o+1|0;e=e+8|0}ui(v,c);d=f<<1;p=0-d|0;u=0;o=i;e=i+((te(k+-1|0,f)|0)<<2)|0;while(1){if((u|0)>=(y|0))break;T=+h[c+4>>2];M=+h[E+(y+u<<2)>>2];S=+h[c>>2];R=+h[E+(u<<2)>>2];h[o>>2]=T*M-S*R;h[e>>2]=S*M+T*R;c=c+8|0;u=u+1|0;o=o+(d<<2)|0;e=e+(p<<2)|0}l=A;return}function pi(e,t,i,r,a,o,f){e=e|0;t=t|0;i=i|0;r=r|0;a=a|0;o=o|0;f=f|0;var c=0,l=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0;c=s[e>>2]|0;l=0;w=s[e+24>>2]|0;while(1){m=c>>1;if((l|0)>=(o|0))break;c=m;l=l+1|0;w=w+(m<<2)|0}b=c>>2;g=t+((te(m+-1|0,f)|0)<<2)|0;c=i+(a>>1<<2)|0;p=s[e+8+(o<<2)>>2]|0;o=f<<1;f=0-o|0;u=s[p+44>>2]|0;d=0;l=t;e=g;while(1){if((d|0)>=(b|0))break;_=+h[e>>2];y=+h[w+(d<<2)>>2];k=+h[l>>2];v=+h[w+(b+d<<2)>>2];g=n[u>>1]<<1;h[c+((g|1)<<2)>>2]=_*y+k*v;h[c+(g<<2)>>2]=k*y-_*v;u=u+2|0;d=d+1|0;l=l+(o<<2)|0;e=e+(f<<2)|0}ui(p,c);o=b+1>>1;e=c+(m<<2)|0;f=0;while(1){l=e+-8|0;if((f|0)>=(o|0))break;g=c+4|0;A=+h[g>>2];_=+h[c>>2];k=+h[w+(f<<2)>>2];E=+h[w+(b+f<<2)>>2];t=e+-4|0;v=+h[t>>2];y=+h[l>>2];h[c>>2]=A*k+_*E;h[t>>2]=A*E-_*k;k=+h[w+(b-f+-1<<2)>>2];_=+h[w+(m-f+-1<<2)>>2];h[l>>2]=v*k+y*_;h[g>>2]=v*_-y*k;e=l;f=f+1|0;c=c+8|0}o=(a|0)/2|0;c=i+(a<<2)|0;l=r+(a<<2)|0;e=0;while(1){l=l+-4|0;c=c+-4|0;if((e|0)>=(o|0))break;A=+h[c>>2];k=+h[i>>2];E=+h[l>>2];y=+h[r>>2];h[i>>2]=E*k-y*A;h[c>>2]=y*k+E*A;e=e+1|0;r=r+4|0;i=i+4|0}return}function bi(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var n=0,a=0,o=0,f=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0;_=l;l=l+48|0;a=_+16|0;g=_;v=i>>1;i=1;while(1){if((i|0)>=(v|0))break;y=i<<1;k=s[e>>2]|0;h[t+(i<<2)>>2]=((+h[k+(y+-1<<2)>>2]+ +h[k+((y|1)<<2)>>2])*.5+ +h[k+(y<<2)>>2])*.5;i=i+1|0}k=s[e>>2]|0;h[t>>2]=(+h[k+4>>2]*.5+ +h[k>>2])*.5;if((r|0)==2){i=e+4|0;r=1;while(1){if((r|0)>=(v|0))break;y=r<<1;e=s[i>>2]|0;k=t+(r<<2)|0;h[k>>2]=+h[k>>2]+((+h[e+(y+-1<<2)>>2]+ +h[e+((y|1)<<2)>>2])*.5+ +h[e+(y<<2)>>2])*.5;r=r+1|0}k=s[i>>2]|0;h[t>>2]=+h[t>>2]+(+h[k+4>>2]*.5+ +h[k>>2])*.5}Ai(t,a,0,0,4,v);h[a>>2]=+h[a>>2]*1.000100016593933;i=1;while(1){if((i|0)==5)break;k=a+(i<<2)|0;m=+h[k>>2];w=+(i|0)*.00800000037997961;h[k>>2]=m-m*w*w;i=i+1|0}_i(g,a,4);i=0;n=1;while(1){if((i|0)==4)break;w=n*.8999999761581421;k=g+(i<<2)|0;h[k>>2]=+h[k>>2]*w;i=i+1|0;n=w}m=+h[g>>2];b=m+.800000011920929;w=+h[g+4>>2];m=w+m*.800000011920929;n=+h[g+8>>2];w=n+w*.800000011920929;o=+h[g+12>>2];n=o+n*.800000011920929;o=o*.800000011920929;i=0;f=0;c=0;u=0;d=0;p=0;while(1){if((i|0)>=(v|0))break;k=t+(i<<2)|0;A=+h[k>>2];h[k>>2]=A+b*f+m*c+w*u+n*d+o*p;E=f;i=i+1|0;f=A;p=d;d=u;u=c;c=E}l=_;return}function mi(e,t,i,r,n){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;var a=0,o=0,f=0,c=0,l=0,u=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0,I=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0;_=n+-3|0;y=r+-3|0;A=((y|0)>0?y:0)+3|0;k=A&-4;S=e+(k<<2)|0;f=n+-3|0;f=((f|0)>0?f:0)+3&-4;E=0;A=t+((A|3)<<2)|0;while(1){if((E|0)>=(_|0))break;M=t+(E<<2)|0;p=e;b=M+12|0;m=0;u=0;l=0;o=0;a=0;c=+h[M>>2];g=+h[M+4>>2];v=+h[M+8>>2];w=0;while(1){if((m|0)>=(y|0))break;I=+h[p>>2];w=+h[b>>2];U=(s[d>>2]=u,+h[d>>2])+I*c;B=(s[d>>2]=l,+h[d>>2])+I*g;L=(s[d>>2]=o,+h[d>>2])+I*v;D=+h[p+4>>2];x=+h[b+4>>2];N=+h[p+8>>2];R=+h[b+8>>2];I=(s[d>>2]=a,+h[d>>2])+I*w+D*x+N*R;C=+h[p+12>>2];T=+h[b+12>>2];O=(h[d>>2]=U+D*g+N*v+C*w,s[d>>2]|0);P=(h[d>>2]=B+D*v+N*w+C*x,s[d>>2]|0);M=(h[d>>2]=L+D*w+N*x+C*R,s[d>>2]|0);p=p+16|0;b=b+16|0;m=m+4|0;u=O;l=P;o=M;a=(h[d>>2]=I+C*T,s[d>>2]|0);c=x;g=R;v=T}m=k|1;if((k|0)<(r|0)){U=+h[S>>2];w=+h[A>>2];u=(h[d>>2]=(s[d>>2]=u,+h[d>>2])+U*c,s[d>>2]|0);l=(h[d>>2]=(s[d>>2]=l,+h[d>>2])+U*g,s[d>>2]|0);o=(h[d>>2]=(s[d>>2]=o,+h[d>>2])+U*v,s[d>>2]|0);p=S+4|0;b=A+4|0;a=(h[d>>2]=(s[d>>2]=a,+h[d>>2])+U*w,s[d>>2]|0)}else{p=S;b=A}if((m|0)<(r|0)){U=+h[p>>2];c=+h[b>>2];u=(h[d>>2]=(s[d>>2]=u,+h[d>>2])+U*g,s[d>>2]|0);l=(h[d>>2]=(s[d>>2]=l,+h[d>>2])+U*v,s[d>>2]|0);o=(h[d>>2]=(s[d>>2]=o,+h[d>>2])+U*w,s[d>>2]|0);p=p+4|0;b=b+4|0;a=(h[d>>2]=(s[d>>2]=a,+h[d>>2])+U*c,s[d>>2]|0)}if((m+1|0)<(r|0)){U=+h[p>>2];u=(h[d>>2]=(s[d>>2]=u,+h[d>>2])+U*v,s[d>>2]|0);l=(h[d>>2]=(s[d>>2]=l,+h[d>>2])+U*w,s[d>>2]|0);o=(h[d>>2]=(s[d>>2]=o,+h[d>>2])+U*c,s[d>>2]|0);a=(h[d>>2]=(s[d>>2]=a,+h[d>>2])+U*+h[b>>2],s[d>>2]|0)}s[i+(E<<2)>>2]=u;s[i+((E|1)<<2)>>2]=l;s[i+((E|2)<<2)>>2]=o;s[i+((E|3)<<2)>>2]=a;E=E+4|0;A=A+16|0}while(1){if((f|0)>=(n|0))break;a=t+(f<<2)|0;o=0;c=0;while(1){if((o|0)>=(r|0))break;U=c+ +h[e+(o<<2)>>2]*+h[a+(o<<2)>>2];o=o+1|0;c=U}h[i+(f<<2)>>2]=c;f=f+1|0}return}function wi(e,t,i,r,n){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;var a=0,o=0,f=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0;_=l;l=l+16|0;w=_;u=w;s[u>>2]=0;s[u+4>>2]=0;u=i>>2;d=l;l=l+((1*(u<<2)|0)+15&-16)|0;p=i+r>>2;b=l;l=l+((1*(p<<2)|0)+15&-16)|0;g=r>>1;v=l;l=l+((1*(g<<2)|0)+15&-16)|0;c=0;while(1){if((c|0)>=(u|0))break;s[d+(c<<2)>>2]=s[e+(c<<1<<2)>>2];c=c+1|0}c=0;while(1){if((c|0)>=(p|0))break;s[b+(c<<2)>>2]=s[t+(c<<1<<2)>>2];c=c+1|0}r=r>>2;mi(d,b,v,u,r);gi(v,b,u,r,w);r=s[w>>2]<<1;m=s[w+4>>2]<<1;c=i>>1;p=0;while(1){if((p|0)>=(g|0))break;u=v+(p<<2)|0;h[u>>2]=0;i=p-r|0;if(!((((i|0)>-1?i:0-i|0)|0)>2?(i=p-m|0,(((i|0)>-1?i:0-i|0)|0)>2):0)){d=t+(p<<2)|0;b=0;a=0;while(1){if((b|0)>=(c|0))break;f=a+ +h[e+(b<<2)>>2]*+h[d+(b<<2)>>2];b=b+1|0;a=f}h[u>>2]=a<-1?-1:a}p=p+1|0}gi(v,t,c,g,w);c=s[w>>2]|0;if(!((c|0)>0&(c|0)<(g+-1|0))){v=0;g=c<<1;v=g-v|0;s[n>>2]=v;l=_;return}o=+h[v+(c+-1<<2)>>2];f=+h[v+(c<<2)>>2];a=+h[v+(c+1<<2)>>2];if(a-o>(f-o)*.699999988079071){v=1;g=c<<1;v=g-v|0;s[n>>2]=v;l=_;return}if(o-a>(f-a)*.699999988079071){v=-1;g=c<<1;v=g-v|0;s[n>>2]=v;l=_;return}v=0;g=c<<1;v=g-v|0;s[n>>2]=v;l=_;return}function gi(e,t,i,r,n){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;var a=0,o=0,f=0,c=0,l=0,u=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0;s[n>>2]=0;g=n+4|0;s[g>>2]=1;o=1;a=0;while(1){if((a|0)>=(i|0)){a=0;b=0;c=0;m=-1082130432;l=-1082130432;w=0;break}f=+h[t+(a<<2)>>2];o=o+f*f;a=a+1|0}while(1){if((w|0)>=(r|0))break;f=+h[e+(w<<2)>>2];do if(f>0?(v=f*9.999999960041972e-13,v=v*v,f=v*(s[d>>2]=c,+h[d>>2]),f>(s[d>>2]=l,+h[d>>2])*o):0){f=v*(s[d>>2]=b,+h[d>>2]);if(f>(s[d>>2]=m,+h[d>>2])*o){s[g>>2]=a;p=(h[d>>2]=v,s[d>>2]|0);u=(h[d>>2]=o,s[d>>2]|0);s[n>>2]=w;a=w;c=b;l=m;break}else{l=(h[d>>2]=v,s[d>>2]|0);c=(h[d>>2]=o,s[d>>2]|0);s[g>>2]=w;u=b;p=m;break}}else{u=b;p=m}while(0);_=+h[t+(w+i<<2)>>2];f=+h[t+(w<<2)>>2];f=o+(_*_-f*f);o=f<1?1:f;b=u;m=p;w=w+1|0}return}function vi(e,t,i,r,n){e=e|0;t=t|0;i=i|0;r=r|0;n=+n;var a=0,o=0,f=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0,I=0;I=l;l=l+2064|0;C=I+2052|0;k=s[i>>2]|0;S=(r|0)/2|0;x=(t|0)/2|0;R=e+2048|0;k=(k|0)>1023?511:(k|0)/2|0;s[i>>2]=k;E=I;r=R+(0-k<<2)|0;t=0;A=0;o=0;while(1){if((t|0)>=(x|0))break;y=+h[R+(t<<2)>>2];M=o+y*+h[r+(t<<2)>>2];t=t+1|0;A=A+y*y;o=M}h[E>>2]=A;r=1;a=A;while(1){if((r|0)==513)break;y=+h[R+(0-r<<2)>>2];M=+h[R+(x-r<<2)>>2];M=a+y*y-M*M;h[E+(r<<2)>>2]=M<0?0:M;r=r+1|0;a=M}m=+h[E+(k<<2)>>2];M=o/+H(+(A*m+1));g=k<<1;v=M*.699999988079071;_=M*.8500000238418579;y=n*.5;T=k;w=2;while(1){if((w|0)>=16)break;r=w<<1;b=((g+w|0)>>>0)/(r>>>0)|0;if((b|0)<7)break;if((w|0)==2){d=b+k|0;d=(d|0)>512?k:d}else d=(((te(s[17156+(w<<2)>>2]<<1,k)|0)+w|0)>>>0)/(r>>>0)|0;r=R+(0-b<<2)|0;t=R+(0-d<<2)|0;e=0;a=0;f=0;while(1){if((e|0)>=(x|0))break;u=+h[R+(e<<2)>>2];p=f+u*+h[t+(e<<2)>>2];u=a+u*+h[r+(e<<2)>>2];e=e+1|0;a=u;f=p}p=(a+f)*.5;f=(+h[E+(b<<2)>>2]+ +h[E+(d<<2)>>2])*.5;a=p/+H(+(A*f+1));r=b-S|0;r=(r|0)>-1?r:0-r|0;if((r|0)>=2)if((r|0)<3){d=(te(w*5|0,w)|0)<(k|0);u=d?y:0}else u=0;else u=n;c=v-u;c=c<.30000001192092896?.30000001192092896:c;if((b|0)<21){c=_-u;if(c<.4000000059604645)c=.4000000059604645}if(a>c){r=b;o=p}else{r=T;f=m;a=M}T=r;m=f;M=a;w=w+1|0}a=o<0?0:o;if(!(m<=a))c=a/(m+1);else c=1;e=0;while(1){if((e|0)==3)break;r=R+(1-(T+e)<<2)|0;t=0;a=0;while(1){if((t|0)>=(x|0))break;n=a+ +h[R+(t<<2)>>2]*+h[r+(t<<2)>>2];t=t+1|0;a=n}h[C+(e<<2)>>2]=a;e=e+1|0}o=+h[C+8>>2];f=+h[C>>2];a=+h[C+4>>2];if(o-f>(a-f)*.699999988079071){C=1;x=c>M;n=x?M:c;x=T<<1;C=x+C|0;x=(C|0)<15;C=x?15:C;s[i>>2]=C;l=I;return+n}if(f-o>(a-o)*.699999988079071){C=-1;x=c>M;n=x?M:c;x=T<<1;C=x+C|0;x=(C|0)<15;C=x?15:C;s[i>>2]=C;l=I;return+n}C=0;x=c>M;n=x?M:c;x=T<<1;C=x+C|0;x=(C|0)<15;C=x?15:C;s[i>>2]=C;l=I;return+n}function _i(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,n=0,s=0,a=0,o=0,f=0,c=0,l=0,u=0,d=0,p=0;n=+h[t>>2];kn(e|0,0,i<<2|0)|0;if(+h[t>>2]!=0)c=0;else return;while(1){if((c|0)<(i|0)){r=0;s=0}else{r=9;break}while(1){if((c|0)==(r|0))break;a=s+ +h[e+(r<<2)>>2]*+h[t+(c-r<<2)>>2];r=r+1|0;s=a}o=c;c=c+1|0;s=(s+ +h[t+(c<<2)>>2])/n;a=-s;h[e+(o<<2)>>2]=a;r=c>>1;o=o+-1|0;f=0;while(1){if((f|0)>=(r|0))break;p=e+(f<<2)|0;u=+h[p>>2];l=e+(o-f<<2)|0;d=+h[l>>2];h[p>>2]=u+d*a;h[l>>2]=d+u*a;f=f+1|0}n=n-s*s*n;if(n<+h[t>>2]*.0010000000474974513){r=9;break}}if((r|0)==9)return}function yi(e,t,i,r,n){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;var a=0,o=0,f=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0;m=l;l=l+112|0;d=m+96|0;p=m;b=l;l=l+((1*(r+24<<2)|0)+15&-16)|0;a=0;while(1){if((a|0)==24)break;s[p+(a<<2)>>2]=s[t+(24-a+-1<<2)>>2];a=a+1|0}a=0;while(1){if((a|0)==24){a=0;break}s[b+(a<<2)>>2]=s[n+(24-a+-1<<2)>>2];a=a+1|0}while(1){if((a|0)>=(r|0)){a=0;break}s[b+(a+24<<2)>>2]=s[e+(a<<2)>>2];a=a+1|0}while(1){if((a|0)==24)break;s[n+(a<<2)>>2]=s[e+(r-a+-1<<2)>>2];a=a+1|0}t=r+-3|0;n=d+4|0;f=d+8|0;c=d+12|0;a=((t|0)>0?t:0)+3&-4;u=0;while(1){if((u|0)>=(t|0))break;s[d>>2]=0;s[d+4>>2]=0;s[d+8>>2]=0;s[d+12>>2]=0;ki(p,b+(u<<2)|0,d,24);h[i+(u<<2)>>2]=+h[e+(u<<2)>>2]+ +h[d>>2];w=u|1;h[i+(w<<2)>>2]=+h[e+(w<<2)>>2]+ +h[n>>2];w=u|2;h[i+(w<<2)>>2]=+h[e+(w<<2)>>2]+ +h[f>>2];w=u|3;h[i+(w<<2)>>2]=+h[e+(w<<2)>>2]+ +h[c>>2];u=u+4|0}while(1){if((a|0)<(r|0)){t=0;o=0}else break;while(1){if((t|0)==24)break;g=o+ +h[p+(t<<2)>>2]*+h[b+(a+t<<2)>>2];t=t+1|0;o=g}h[i+(a<<2)>>2]=+h[e+(a<<2)>>2]+o;a=a+1|0}l=m;return}function ki(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var n=0,s=0,a=0,o=0,f=0,c=0,l=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0;f=r+-3|0;p=i+4|0;b=i+8|0;m=i+12|0;l=((f|0)>0?f:0)+3|0;u=l&-4;l=l|3;s=e;a=t+12|0;c=0;n=+h[t>>2];d=+h[t+4>>2];w=+h[t+8>>2];o=0;while(1){if((c|0)>=(f|0))break;k=+h[s>>2];o=+h[a>>2];S=+h[i>>2]+k*n;h[i>>2]=S;A=+h[p>>2]+k*d;h[p>>2]=A;E=+h[b>>2]+k*w;h[b>>2]=E;k=+h[m>>2]+k*o;h[m>>2]=k;y=+h[s+4>>2];_=+h[a+4>>2];S=S+y*d;h[i>>2]=S;A=A+y*w;h[p>>2]=A;E=E+y*o;h[b>>2]=E;y=k+y*_;h[m>>2]=y;k=+h[s+8>>2];v=+h[a+8>>2];S=S+k*w;h[i>>2]=S;A=A+k*o;h[p>>2]=A;E=E+k*_;h[b>>2]=E;k=y+k*v;h[m>>2]=k;y=+h[s+12>>2];g=+h[a+12>>2];h[i>>2]=S+y*o;h[p>>2]=A+y*_;h[b>>2]=E+y*v;h[m>>2]=k+y*g;s=s+16|0;a=a+16|0;c=c+4|0;n=_;d=v;w=g}a=e+(u<<2)|0;s=t+(l<<2)|0;f=u|1;if((u|0)<(r|0)){S=+h[a>>2];o=+h[s>>2];h[i>>2]=+h[i>>2]+S*n;h[p>>2]=+h[p>>2]+S*d;h[b>>2]=+h[b>>2]+S*w;h[m>>2]=+h[m>>2]+S*o;a=a+4|0;s=s+4|0}if((f|0)<(r|0)){S=+h[a>>2];n=+h[s>>2];h[i>>2]=+h[i>>2]+S*d;h[p>>2]=+h[p>>2]+S*w;h[b>>2]=+h[b>>2]+S*o;h[m>>2]=+h[m>>2]+S*n;a=a+4|0;s=s+4|0}if((f+1|0)>=(r|0))return;A=+h[a>>2];S=+h[s>>2];h[i>>2]=+h[i>>2]+A*w;h[p>>2]=+h[p>>2]+A*o;h[b>>2]=+h[b>>2]+A*n;h[m>>2]=+h[m>>2]+A*S;return}function Ei(e,t,i,r,n){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;var a=0,o=0,f=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0;_=l;l=l+112|0;w=_+96|0;g=_;o=r+24|0;v=l;l=l+((1*(o<<2)|0)+15&-16)|0;a=0;while(1){if((a|0)==24)break;s[g+(a<<2)>>2]=s[t+(24-a+-1<<2)>>2];a=a+1|0}a=0;while(1){if((a|0)==24){a=24;break}h[v+(a<<2)>>2]=-+h[n+(24-a+-1<<2)>>2];a=a+1|0}while(1){if((a|0)>=(o|0))break;h[v+(a<<2)>>2]=0;a=a+1|0}o=r+-3|0;c=w+4|0;u=w+8|0;d=w+12|0;p=t+4|0;b=t+8|0;a=r+-3|0;a=((a|0)>0?a:0)+3&-4;m=0;while(1){if((m|0)>=(o|0))break;s[w>>2]=s[e+(m<<2)>>2];M=m|1;s[c>>2]=s[e+(M<<2)>>2];A=m|2;s[u>>2]=s[e+(A<<2)>>2];y=m|3;s[d>>2]=s[e+(y<<2)>>2];ki(g,v+(m<<2)|0,w,24);S=+h[w>>2];f=-S;h[v+(m+24<<2)>>2]=f;h[i+(m<<2)>>2]=S;S=+h[c>>2]+ +h[t>>2]*f;h[c>>2]=S;k=-S;h[v+(m+25<<2)>>2]=k;h[i+(M<<2)>>2]=S; -S=+h[u>>2]+ +h[t>>2]*k+ +h[p>>2]*f;h[u>>2]=S;E=-S;h[v+(m+26<<2)>>2]=E;h[i+(A<<2)>>2]=S;f=+h[d>>2]+ +h[t>>2]*E+ +h[p>>2]*k+ +h[b>>2]*f;h[d>>2]=f;h[v+(m+27<<2)>>2]=-f;h[i+(y<<2)>>2]=f;m=m+4|0}while(1){if((a|0)>=(r|0)){a=0;break}o=0;f=+h[e+(a<<2)>>2];while(1){if((o|0)==24)break;S=f-+h[g+(o<<2)>>2]*+h[v+(a+o<<2)>>2];o=o+1|0;f=S}h[v+(a+24<<2)>>2]=f;h[i+(a<<2)>>2]=f;a=a+1|0}while(1){if((a|0)==24)break;s[n+(a<<2)>>2]=s[i+(r-a+-1<<2)>>2];a=a+1|0}l=_;return}function Ai(e,t,i,r,n,a){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;a=a|0;var o=0,f=0,c=0,u=0,d=0,p=0;d=l;u=a-n|0;c=l;l=l+((1*(a<<2)|0)+15&-16)|0;e:do if(!r)c=e;else{f=0;while(1){if((f|0)>=(a|0)){f=0;break}s[c+(f<<2)>>2]=s[e+(f<<2)>>2];f=f+1|0}while(1){if((f|0)>=(r|0))break e;o=+h[i+(f<<2)>>2];h[c+(f<<2)>>2]=+h[e+(f<<2)>>2]*o;p=a-f+-1|0;h[c+(p<<2)>>2]=+h[e+(p<<2)>>2]*o;f=f+1|0}}while(0);mi(c,c,t,u,n+1|0);r=0;while(1){if((r|0)>(n|0))break;o=0;f=r+u|0;while(1){if((f|0)>=(a|0))break;o=o+ +h[c+(f<<2)>>2]*+h[c+(f-r<<2)>>2];f=f+1|0}p=t+(r<<2)|0;h[p>>2]=+h[p>>2]+o;r=r+1|0}l=d;return}function Si(e,t,i,r,n,a,o,f,c,u,d,p,b,m,w,g,v){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;a=a|0;o=o|0;f=f|0;c=c|0;u=u|0;d=d|0;p=p|0;b=b|0;m=m|0;w=w|0;g=g|0;v=v|0;var _=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0,I=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,q=0,H=0,G=0,V=0;G=l;l=l+96|0;F=G+72|0;z=G+48|0;q=G+24|0;H=G;if(!b)if((w|0)==0?(_=i-t|0,+h[m>>2]>+(te(u<<1,_)|0)):0)E=(te(_,u)|0)<(p|0);else E=0;else E=1;k=+(o>>>0)*+h[m>>2]*+(g|0)/+(u<<9|0);j=e+8|0;A=s[j>>2]|0;g=0;y=0;do{b=te(g,A)|0;_=t;while(1){if((_|0)>=(r|0))break;B=_+b|0;V=+h[n+(B<<2)>>2]-+h[a+(B<<2)>>2];y=y+V*V;_=_+1|0}g=g+1|0}while((g|0)<(u|0));B=~~k;k=y>200?200:y;D=c+20|0;g=s[D>>2]|0;L=c+28|0;b=s[L>>2]|0;N=g+((re(b|0)|0)+-32)|0;_=(N+3|0)>>>0>o>>>0;O=_?0:E&1;if((i-t|0)>10?(S=+(p|0)*.125,!(S>16)):0)y=S;else y=16;y=(v|0)==0?y:3;s[F>>2]=s[c>>2];s[F+4>>2]=s[c+4>>2];s[F+8>>2]=s[c+8>>2];s[F+12>>2]=s[c+12>>2];s[F+16>>2]=s[c+16>>2];s[F+20>>2]=s[c+20>>2];P=c+24|0;x=s[P>>2]|0;s[z>>2]=s[L>>2];s[z+4>>2]=s[L+4>>2];s[z+8>>2]=s[L+8>>2];s[z+12>>2]=s[L+12>>2];s[z+16>>2]=s[L+16>>2];R=te(A,u)|0;C=l;l=l+((1*(R<<2)|0)+15&-16)|0;I=l;l=l+((1*(R<<2)|0)+15&-16)|0;Mn(C|0,a|0,R<<2|0)|0;R=_|(w|0)==0;if(R)if(!O){T=x;M=0}else{Mi(e,t,i,n,C,o,N,29009+(d*84|0)+42|0,I,c,u,d,1,y,v)|0;U=22}else{_=Mi(e,t,i,n,C,o,N,29009+(d*84|0)+42|0,I,c,u,d,1,y,v)|0;if(!O){g=s[D>>2]|0;b=s[L>>2]|0;T=s[P>>2]|0;M=_}else U=22}if((U|0)==22){Mn(a|0,C|0,(te(s[j>>2]|0,u)|0)<<2|0)|0;Mn(f|0,I|0,(te(s[j>>2]|0,u)|0)<<2|0)|0;V=k;h[m>>2]=V;l=G;return}E=32-(re(b|0)|0)|0;r=b>>>(E+-16|0);b=(r>>>12)+-8|0;b=(g<<3)-((E<<3)+(b+(r>>>0>(s[5272+(b<<2)>>2]|0)>>>0&1)))|0;g=s[c>>2]|0;r=c+4|0;s[q>>2]=s[r>>2];s[q+4>>2]=s[r+4>>2];s[q+8>>2]=s[r+8>>2];s[q+12>>2]=s[r+12>>2];s[q+16>>2]=s[r+16>>2];s[H>>2]=s[L>>2];s[H+4>>2]=s[L+4>>2];s[H+8>>2]=s[L+8>>2];s[H+12>>2]=s[L+12>>2];s[H+16>>2]=s[L+16>>2];E=g+x|0;p=T-x|0;A=Ne()|0;w=l;l=l+((1*((T|0)==(x|0)?1:p)|0)+15&-16)|0;Mn(w|0,E|0,p|0)|0;s[c>>2]=s[F>>2];s[c+4>>2]=s[F+4>>2];s[c+8>>2]=s[F+8>>2];s[c+12>>2]=s[F+12>>2];s[c+16>>2]=s[F+16>>2];s[c+20>>2]=s[F+20>>2];s[P>>2]=x;s[L>>2]=s[z>>2];s[L+4>>2]=s[z+4>>2];s[L+8>>2]=s[z+8>>2];s[L+12>>2]=s[z+12>>2];s[L+16>>2]=s[z+16>>2];_=Mi(e,t,i,n,a,o,N,29009+(d*84|0)+(O*42|0)|0,f,c,u,d,0,y,v)|0;do if(!R){if((M|0)>=(_|0)){if((M|0)!=(_|0))break;e=s[L>>2]|0;v=32-(re(e|0)|0)|0;e=e>>>(v+-16|0);t=(e>>>12)+-8|0;if(((s[D>>2]<<3)-((v<<3)+(t+(e>>>0>(s[5272+(t<<2)>>2]|0)>>>0&1)))+B|0)<=(b|0))break}s[c>>2]=g;s[r>>2]=s[q>>2];s[r+4>>2]=s[q+4>>2];s[r+8>>2]=s[q+8>>2];s[r+12>>2]=s[q+12>>2];s[r+16>>2]=s[q+16>>2];s[P>>2]=T;s[L>>2]=s[H>>2];s[L+4>>2]=s[H+4>>2];s[L+8>>2]=s[H+8>>2];s[L+12>>2]=s[H+12>>2];s[L+16>>2]=s[H+16>>2];Mn(E|0,w|0,p|0)|0;Mn(a|0,C|0,(te(s[j>>2]|0,u)|0)<<2|0)|0;Mn(f|0,I|0,(te(s[j>>2]|0,u)|0)<<2|0)|0;qe(A|0);V=k;h[m>>2]=V;l=G;return}while(0);qe(A|0);V=+h[17336+(d<<2)>>2];V=V*V*+h[m>>2]+k;h[m>>2]=V;l=G;return}function Mi(e,t,i,n,o,f,c,u,d,p,b,m,w,g,v){e=e|0;t=t|0;i=i|0;n=n|0;o=o|0;f=f|0;c=c|0;u=u|0;d=d|0;p=p|0;b=b|0;m=m|0;w=w|0;g=+g;v=v|0;var _=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0,I=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,q=0,H=0,G=0,V=0,W=0,K=0,Z=0,Y=0,$=0,X=0,J=0,Q=0,ee=0,ie=0;ie=l;l=l+16|0;ee=ie;X=ee;s[X>>2]=0;s[X+4>>2]=0;e:do if((c+3|0)<=(f|0)){O=p+28|0;_=s[O>>2]|0;c=_>>>3;_=_-c|0;P=p+32|0;if(!w)c=_;else s[P>>2]=(s[P>>2]|0)+_;s[O>>2]=c;S=p+36|0;M=p+20|0;T=p+40|0;R=p+24|0;x=p+8|0;C=p+4|0;I=p+44|0;while(1){if(c>>>0>=8388609)break e;_=s[P>>2]|0;k=_>>>23;if((k|0)==255)s[S>>2]=(s[S>>2]|0)+1;else{y=_>>>31;c=s[T>>2]|0;if((c|0)>-1){_=s[R>>2]|0;if((_+(s[x>>2]|0)|0)>>>0<(s[C>>2]|0)>>>0){s[R>>2]=_+1;r[(s[p>>2]|0)+_>>0]=c+y;c=0}else c=-1;s[I>>2]=s[I>>2]|c}c=s[S>>2]|0;if(c|0){y=y+255&255;do{_=s[R>>2]|0;if((_+(s[x>>2]|0)|0)>>>0<(s[C>>2]|0)>>>0){s[R>>2]=_+1;r[(s[p>>2]|0)+_>>0]=y;_=0;c=s[S>>2]|0}else _=-1;s[I>>2]=s[I>>2]|_;c=c+-1|0;s[S>>2]=c}while((c|0)!=0)}s[T>>2]=k&255;_=s[P>>2]|0;c=s[O>>2]|0}s[P>>2]=_<<8&2147483392;c=c<<8;s[O>>2]=c;s[M>>2]=(s[M>>2]|0)+8}}while(0);if(!w){Q=+h[17320+(m<<2)>>2];J=+h[17336+(m<<2)>>2]}else{Q=.149993896484375;J=0}Z=e+8|0;Y=p+20|0;$=p+28|0;X=b*3|0;e=(v|0)==0;v=p+32|0;B=p+36|0;U=p+40|0;j=p+24|0;F=p+8|0;q=p+4|0;H=p+44|0;c=0;K=t;while(1){if((K|0)>=(i|0))break;G=te(X,i-K|0)|0;V=(K|0)!=(t|0);W=(K|0)<20;m=0;do{w=K+(te(m,s[Z>>2]|0)|0)|0;A=+h[n+(w<<2)>>2];E=+h[o+(w<<2)>>2];L=J*(E<-9?-9:E);w=ee+(m<<2)|0;N=+h[w>>2];D=A-L-N;_=~~+z(+(D+.5));E=(E<-28?-28:E)-g;if((_|0)<0&A0?0:O}else O=_;k=s[Y>>2]|0;P=s[$>>2]|0;S=k+((re(P|0)|0)+-32)|0;M=f-S|0;y=M-G|0;if((y|0)<24&V){_=(O|0)>1?1:O;if((y|0)<16)_=(_|0)<-1?-1:_}else _=O;_=e|(K|0)<2|(_|0)<0?_:0;e:do if((M|0)<=14)if((M|0)>1){_=(_|0)<-1?-1:(_|0)<1?_:1;y=_<<1^_>>31;S=P>>>2;if((y|0)>0){I=a[29345+(y+-1)>>0]|0;P=P-(te(S,I)|0)|0;s[v>>2]=(s[v>>2]|0)+P;y=te(S,I-(a[29345+y>>0]|0)|0)|0}else y=P-(te(S,a[29345+y>>0]|0)|0)|0;s[$>>2]=y;while(1){if(y>>>0>=8388609)break e;S=s[v>>2]|0;M=S>>>23;if((M|0)==255)s[B>>2]=(s[B>>2]|0)+1;else{S=S>>>31;y=s[U>>2]|0;if((y|0)>-1){k=s[j>>2]|0;if((k+(s[F>>2]|0)|0)>>>0<(s[q>>2]|0)>>>0){s[j>>2]=k+1;r[(s[p>>2]|0)+k>>0]=y+S;y=0}else y=-1;s[H>>2]=s[H>>2]|y}y=s[B>>2]|0;if(y|0){S=S+255&255;do{k=s[j>>2]|0;if((k+(s[F>>2]|0)|0)>>>0<(s[q>>2]|0)>>>0){s[j>>2]=k+1;r[(s[p>>2]|0)+k>>0]=S;k=0;y=s[B>>2]|0}else k=-1;s[H>>2]=s[H>>2]|k;y=y+-1|0;s[B>>2]=y}while((y|0)!=0)}s[U>>2]=M&255;S=s[v>>2]|0;y=s[$>>2]|0;k=s[Y>>2]|0}s[v>>2]=S<<8&2147483392;y=y<<8;s[$>>2]=y;k=k+8|0;s[Y>>2]=k}}else{if((S|0)>=(f|0)){_=-1;break}S=P>>>1;y=P-S|0;if((_|0)>-1)_=0;else{s[v>>2]=(s[v>>2]|0)+y;y=S}s[$>>2]=y;while(1){if(y>>>0>=8388609)break e;S=s[v>>2]|0;M=S>>>23;if((M|0)==255)s[B>>2]=(s[B>>2]|0)+1;else{S=S>>>31;y=s[U>>2]|0;if((y|0)>-1){k=s[j>>2]|0;if((k+(s[F>>2]|0)|0)>>>0<(s[q>>2]|0)>>>0){s[j>>2]=k+1;r[(s[p>>2]|0)+k>>0]=y+S;y=0}else y=-1;s[H>>2]=s[H>>2]|y}y=s[B>>2]|0;if(y|0){S=S+255&255;do{k=s[j>>2]|0;if((k+(s[F>>2]|0)|0)>>>0<(s[q>>2]|0)>>>0){s[j>>2]=k+1;r[(s[p>>2]|0)+k>>0]=S;k=0;y=s[B>>2]|0}else k=-1;s[H>>2]=s[H>>2]|k;y=y+-1|0;s[B>>2]=y}while((y|0)!=0)}s[U>>2]=M&255;S=s[v>>2]|0;y=s[$>>2]|0;k=s[Y>>2]|0}s[v>>2]=S<<8&2147483392;y=y<<8;s[$>>2]=y;k=k+8|0;s[Y>>2]=k}}else{M=(W?K:20)<<1;y=(a[u+M>>0]|0)<<7;M=(a[u+(M|1)>>0]|0)<<6;if(_){C=_>>31;T=_+C^C;S=te(32736-y|0,16384-M|0)|0;R=y;x=1;while(1){y=S>>>15;if(!y){I=36;break}if((T|0)<=(x|0)){I=37;break}I=y<<1;S=te(I,M)|0;R=R+(I+2)|0;x=x+1|0}if((I|0)==36){I=0;M=T-x|0;_=(32768-R-C>>1)+-1|0;_=(M|0)<(_|0)?M:_;M=R+((_<<1|1)+C)|0;y=32768-M|0;y=y>>>0>1?1:y;_=x+_+C^C}else if((I|0)==37){I=0;M=y+1|0;y=M;M=R+(M&~C)|0}S=P>>>15;if(!M)I=40;else{P=P-(te(S,32768-M|0)|0)|0;s[v>>2]=(s[v>>2]|0)+P;y=te(S,y)|0}}else{S=P>>>15;_=0;I=40}if((I|0)==40)y=P-(te(S,32768-y|0)|0)|0;s[$>>2]=y;S=y;y=k;while(1){if(S>>>0>=8388609)break e;k=s[v>>2]|0;M=k>>>23;if((M|0)==255)s[B>>2]=(s[B>>2]|0)+1;else{S=k>>>31;y=s[U>>2]|0;if((y|0)>-1){k=s[j>>2]|0;if((k+(s[F>>2]|0)|0)>>>0<(s[q>>2]|0)>>>0){s[j>>2]=k+1;r[(s[p>>2]|0)+k>>0]=y+S;y=0}else y=-1;s[H>>2]=s[H>>2]|y}y=s[B>>2]|0;if(y|0){S=S+255&255;do{k=s[j>>2]|0;if((k+(s[F>>2]|0)|0)>>>0<(s[q>>2]|0)>>>0){s[j>>2]=k+1;r[(s[p>>2]|0)+k>>0]=S;k=0;y=s[B>>2]|0}else k=-1;s[H>>2]=s[H>>2]|k;y=y+-1|0;s[B>>2]=y}while((y|0)!=0)}s[U>>2]=M&255;k=s[v>>2]|0;S=s[$>>2]|0;y=s[Y>>2]|0}s[v>>2]=k<<8&2147483392;S=S<<8;s[$>>2]=S;y=y+8|0;s[Y>>2]=y}}while(0);A=+(_|0);h[d+(K+(te(m,s[Z>>2]|0)|0)<<2)>>2]=D-A;O=O-_|0;c=c+((O|0)>-1?O:0-O|0)|0;h[o+(K+(te(m,s[Z>>2]|0)|0)<<2)>>2]=L+N+A;h[w>>2]=N+A-Q*A;m=m+1|0}while((m|0)<(b|0));K=K+1|0}l=ie;return(e?c:0)|0}function Ti(e,t,i,o,f,h,c,u,d,p,b,m,w,g,v,_,y,k,E){e=e|0;t=t|0;i=i|0;o=o|0;f=f|0;h=h|0;c=c|0;u=u|0;d=d|0;p=p|0;b=b|0;m=m|0;w=w|0;g=g|0;v=v|0;_=_|0;y=y|0;k=k|0;E=E|0;var A=0,S=0,M=0,T=0,R=0,x=0,C=0,I=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,q=0,H=0,G=0,V=0,W=0,K=0,Z=0,Y=0,$=0,X=0,J=0,Q=0,ee=0,ie=0;ie=l;d=(d|0)>0?d:0;P=s[e+8>>2]|0;z=(d|0)>7?8:0;d=d-z|0;ee=(g|0)==2;if(ee?(A=a[29348+(i-t)>>0]|0,(d|0)>=(A|0)):0){d=d-A|0;K=(d|0)>7?8:0;d=d-K|0}else{K=0;A=0}B=l;l=l+((1*(P<<2)|0)+15&-16)|0;U=l;l=l+((1*(P<<2)|0)+15&-16)|0;F=l;l=l+((1*(P<<2)|0)+15&-16)|0;L=l;l=l+((1*(P<<2)|0)+15&-16)|0;J=g<<3;Q=e+32|0;h=h+-5-v|0;S=v+3|0;M=t;while(1){if((M|0)>=(i|0))break;$=M+1|0;Y=s[Q>>2]|0;Y=(n[Y+($<<1)>>1]|0)-(n[Y+(M<<1)>>1]|0)|0;Z=Y*3<>4;s[F+(M<<2)>>2]=(J|0)>(Z|0)?J:Z;Z=(te(te(te(Y,g)|0,h)|0,i-M+-1|0)|0)<>6;s[L+(M<<2)>>2]=Z-((Y<>2]|0;N=e+52|0;I=O+-1|0;D=1;do{R=D+I>>1;x=te(R,P)|0;C=0;h=i;S=0;e:while(1){t:while(1){T=h;do{h=T;T=T+-1|0;if((h|0)<=(t|0))break e;$=s[Q>>2]|0;h=te((n[$+(h<<1)>>1]|0)-(n[$+(T<<1)>>1]|0)|0,g)|0;h=(te(h,a[(s[N>>2]|0)+(x+T)>>0]|0)|0)<>2;if((h|0)>0){h=h+(s[L+(T<<2)>>2]|0)|0;h=(h|0)<0?0:h}M=h+(s[o+(T<<2)>>2]|0)|0;if((M|0)>=(s[F+(T<<2)>>2]|0)|C)break t}while((M|0)<(J|0));h=T;S=S+J|0}$=s[f+(T<<2)>>2]|0;C=1;h=T;S=S+((M|0)<($|0)?M:$)|0}$=(S|0)>(d|0);D=$?D:R+1|0;I=$?R+-1|0:I}while((D|0)<=(I|0));I=te(D+-1|0,P)|0;T=te(D,P)|0;R=(D|0)>1;C=t;j=t;while(1){if((C|0)>=(i|0))break;x=C+1|0;h=s[Q>>2]|0;h=te((n[h+(x<<1)>>1]|0)-(n[h+(C<<1)>>1]|0)|0,g)|0;S=s[N>>2]|0;M=(te(h,a[S+(I+C)>>0]|0)|0)<>2;if((D|0)<(O|0))h=(te(h,a[S+(T+C)>>0]|0)|0)<>2;else h=s[f+(C<<2)>>2]|0;if((M|0)>0){S=M+(s[L+(C<<2)>>2]|0)|0;S=(S|0)<0?0:S}else S=M;if((h|0)>0){h=h+(s[L+(C<<2)>>2]|0)|0;h=(h|0)<0?0:h}$=s[o+(C<<2)>>2]|0;Y=S+(R?$:0)|0;Z=h+$|0;$=($|0)>0?C:j;s[B+(C<<2)>>2]=Y;s[U+(C<<2)>>2]=(Z|0)<(Y|0)?0:Z-Y|0;C=x;j=$}Z=(g|0)>1;$=Z&1;x=64;C=0;I=0;while(1){if((C|0)==6)break;T=I+x>>1;R=0;h=i;S=0;e:while(1){t:while(1){do{Y=h;h=h+-1|0;if((Y|0)<=(t|0))break e;M=(s[B+(h<<2)>>2]|0)+((te(T,s[U+(h<<2)>>2]|0)|0)>>6)|0;if((M|0)>=(s[F+(h<<2)>>2]|0)|R)break t}while((M|0)<(J|0));S=S+J|0}Y=s[f+(h<<2)>>2]|0;R=1;S=S+((M|0)<(Y|0)?M:Y)|0}Y=(S|0)>(d|0);x=Y?T:x;C=C+1|0;I=Y?I:T}Y=v<<3;S=0;M=i;T=0;while(1){h=M+-1|0;if((M|0)<=(t|0))break;V=(s[B+(h<<2)>>2]|0)+((te(I,s[U+(h<<2)>>2]|0)|0)>>6)|0;M=(S|0)==0?(V|0)<(s[F+(h<<2)>>2]|0):0;V=M?(V|0)<(J|0)?0:J:V;W=s[f+(h<<2)>>2]|0;W=(V|0)<(W|0)?V:W;s[b+(h<<2)>>2]=W;S=M&1^1;M=h;T=T+W|0}O=J+8|0;N=(y|0)==0;U=_+28|0;y=_+32|0;q=_+20|0;H=_+40|0;G=_+24|0;V=_+4|0;P=t+2|0;D=_+36|0;L=_+8|0;o=_+44|0;W=i;B=T;e:while(1){C=W+-1|0;if((C|0)<=(j|0)){X=45;break}R=d-B|0;h=s[Q>>2]|0;I=n[h+(W<<1)>>1]|0;M=n[h+(t<<1)>>1]|0;S=I-M|0;x=(R>>>0)/(S>>>0)|0;S=R-(te(S,x)|0)|0;h=n[h+(C<<1)>>1]|0;M=S+(M-h)|0;h=I-h|0;I=b+(C<<2)|0;S=s[I>>2]|0;M=S+(te(x,h)|0)+((M|0)>0?M:0)|0;x=s[F+(C<<2)>>2]|0;if((M|0)<(((x|0)>(O|0)?x:O)|0)){T=S;S=B}else{t:do if(N){h=s[U>>2]|0;T=s[y>>2]|0;S=h>>>1;x=T>>>0>>0;if(x)h=T;else{R=T-S|0;s[y>>2]=R;S=h-S|0;h=R}s[U>>2]=S;while(1){if(S>>>0>=8388609)break;s[q>>2]=(s[q>>2]|0)+8;S=S<<8;s[U>>2]=S;R=s[H>>2]|0;T=s[G>>2]|0;if(T>>>0<(s[V>>2]|0)>>>0){s[G>>2]=T+1;T=a[(s[_>>2]|0)+T>>0]|0}else T=0;s[H>>2]=T;R=((R<<8|T)>>>1&255|h<<8&2147483392)^255;s[y>>2]=R;h=R}if(x)break e}else{if((W|0)<=(P|0)){X=50;break e}if(!((C|0)>(E|0)?1:(M|0)<=((te((W|0)<=(k|0)?7:9,h)|0)<>4|0))){X=50;break e}h=s[U>>2]|0;h=h-(h>>>1)|0;s[U>>2]=h;while(1){if(h>>>0>=8388609)break t;S=s[y>>2]|0;R=S>>>23;if((R|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{T=S>>>31;h=s[H>>2]|0;if((h|0)>-1){S=s[G>>2]|0;if((S+(s[L>>2]|0)|0)>>>0<(s[V>>2]|0)>>>0){s[G>>2]=S+1;r[(s[_>>2]|0)+S>>0]=h+T;h=0}else h=-1;s[o>>2]=s[o>>2]|h}h=s[D>>2]|0;if(h|0){T=T+255&255;do{S=s[G>>2]|0;if((S+(s[L>>2]|0)|0)>>>0<(s[V>>2]|0)>>>0){s[G>>2]=S+1;r[(s[_>>2]|0)+S>>0]=T;S=0;h=s[D>>2]|0}else S=-1;s[o>>2]=s[o>>2]|S;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[H>>2]=R&255;S=s[y>>2]|0;h=s[U>>2]|0}s[y>>2]=S<<8&2147483392;h=h<<8;s[U>>2]=h;s[q>>2]=(s[q>>2]|0)+8}}while(0);T=s[I>>2]|0;M=M+-8|0;S=B+8|0}if((A|0)>0)h=a[29348+(C-t)>>0]|0;else h=A;W=(M|0)<(J|0);B=S-(T+A)+h+(W?0:J)|0;s[I>>2]=W?0:J;A=h;W=C}e:do if((X|0)==45)d=d+z|0;else if((X|0)==50){S=s[U>>2]|0;h=S>>>1;S=(s[y>>2]|0)+(S-h)|0;s[y>>2]=S;s[U>>2]=h;while(1){if(h>>>0>=8388609)break e;T=S>>>23;if((T|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{M=S>>>31;h=s[H>>2]|0;if((h|0)>-1){S=s[G>>2]|0;if((S+(s[L>>2]|0)|0)>>>0<(s[V>>2]|0)>>>0){s[G>>2]=S+1;r[(s[_>>2]|0)+S>>0]=h+M;h=0}else h=-1;s[o>>2]=s[o>>2]|h}h=s[D>>2]|0;if(h|0){M=M+255&255;do{S=s[G>>2]|0;if((S+(s[L>>2]|0)|0)>>>0<(s[V>>2]|0)>>>0){s[G>>2]=S+1;r[(s[_>>2]|0)+S>>0]=M;S=0;h=s[D>>2]|0}else S=-1;s[o>>2]=s[o>>2]|S;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[H>>2]=T&255;S=s[y>>2]|0;h=s[U>>2]|0}S=S<<8&2147483392;s[y>>2]=S;h=h<<8;s[U>>2]=h;s[q>>2]=(s[q>>2]|0)+8}}while(0);e:do if((A|0)>0){if(N){s[c>>2]=(ci(_,W+1-t|0)|0)+t;break}S=s[c>>2]|0;S=(S|0)<(W|0)?S:W;s[c>>2]=S;R=S-t|0;M=W+1-t|0;h=M+-1|0;A=32-(re(h|0)|0)|0;if((A|0)<=8){h=s[U>>2]|0;A=(h>>>0)/(M>>>0)|0;if((S|0)==(t|0))A=h-(te(A,M-(R+1)|0)|0)|0;else{E=h-(te(A,M-R|0)|0)|0;s[y>>2]=(s[y>>2]|0)+E}s[U>>2]=A;while(1){if(A>>>0>=8388609)break e;h=s[y>>2]|0;M=h>>>23;if((M|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{S=h>>>31;A=s[H>>2]|0;if((A|0)>-1){h=s[G>>2]|0;if((h+(s[L>>2]|0)|0)>>>0<(s[V>>2]|0)>>>0){s[G>>2]=h+1;r[(s[_>>2]|0)+h>>0]=A+S;A=0}else A=-1;s[o>>2]=s[o>>2]|A}A=s[D>>2]|0;if(A|0){S=S+255&255;do{h=s[G>>2]|0;if((h+(s[L>>2]|0)|0)>>>0<(s[V>>2]|0)>>>0){s[G>>2]=h+1;r[(s[_>>2]|0)+h>>0]=S;h=0;A=s[D>>2]|0}else h=-1;s[o>>2]=s[o>>2]|h;A=A+-1|0;s[D>>2]=A}while((A|0)!=0)}s[H>>2]=M&255;h=s[y>>2]|0;A=s[U>>2]|0}s[y>>2]=h<<8&2147483392;A=A<<8;s[U>>2]=A;s[q>>2]=(s[q>>2]|0)+8}}P=A+-8|0;h=h>>>P;S=h+1|0;M=R>>>P;T=s[U>>2]|0;A=(T>>>0)/(S>>>0)|0;if(!M)A=T-(te(A,h)|0)|0;else{E=T-(te(A,S-M|0)|0)|0;s[y>>2]=(s[y>>2]|0)+E}s[U>>2]=A;while(1){if(A>>>0>=8388609)break;h=s[y>>2]|0;M=h>>>23;if((M|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{S=h>>>31;A=s[H>>2]|0;if((A|0)>-1){h=s[G>>2]|0;if((h+(s[L>>2]|0)|0)>>>0<(s[V>>2]|0)>>>0){s[G>>2]=h+1;r[(s[_>>2]|0)+h>>0]=A+S;A=0}else A=-1;s[o>>2]=s[o>>2]|A}A=s[D>>2]|0;if(A|0){S=S+255&255;do{h=s[G>>2]|0;if((h+(s[L>>2]|0)|0)>>>0<(s[V>>2]|0)>>>0){s[G>>2]=h+1;r[(s[_>>2]|0)+h>>0]=S;h=0;A=s[D>>2]|0}else h=-1;s[o>>2]=s[o>>2]|h;A=A+-1|0;s[D>>2]=A}while((A|0)!=0)}s[H>>2]=M&255;h=s[y>>2]|0;A=s[U>>2]|0}s[y>>2]=h<<8&2147483392;A=A<<8;s[U>>2]=A;s[q>>2]=(s[q>>2]|0)+8}x=(1<>2]|0;I=_+16|0;h=s[I>>2]|0;if((h+P|0)>>>0>32){T=7-h|0;T=h+((T|0)>-8?T:-8)&-8;R=h;do{S=s[L>>2]|0;M=s[V>>2]|0;if(((s[G>>2]|0)+S|0)>>>0>>0){S=S+1|0;s[L>>2]=S;r[(s[_>>2]|0)+(M-S)>>0]=A;S=0}else S=-1;s[o>>2]=s[o>>2]|S;A=A>>>8;R=R+-8|0}while((R|0)>7);h=h+-8-T|0}s[C>>2]=A|x<>2]=h+P;s[q>>2]=(s[q>>2]|0)+P}else s[c>>2]=0;while(0);e:do if((s[c>>2]|0)>(t|0))if(!K)X=169;else{if(N){A=s[U>>2]|0;S=s[y>>2]|0;h=A>>>1;K=S>>>0>>0;T=K&1;if(K)A=S;else{K=S-h|0;s[y>>2]=K;h=A-h|0;A=K}s[U>>2]=h;while(1){if(h>>>0>=8388609)break;s[q>>2]=(s[q>>2]|0)+8;h=h<<8;s[U>>2]=h;M=s[H>>2]|0;S=s[G>>2]|0;if(S>>>0<(s[V>>2]|0)>>>0){s[G>>2]=S+1;S=a[(s[_>>2]|0)+S>>0]|0}else S=0;s[H>>2]=S;K=((M<<8|S)>>>1&255|A<<8&2147483392)^255;s[y>>2]=K;A=K}s[u>>2]=T;break}h=s[U>>2]|0;A=h>>>1;h=h-A|0;if(!(s[u>>2]|0))A=h;else s[y>>2]=(s[y>>2]|0)+h;s[U>>2]=A;while(1){if(A>>>0>=8388609)break e;h=s[y>>2]|0;M=h>>>23;if((M|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{S=h>>>31;A=s[H>>2]|0;if((A|0)>-1){h=s[G>>2]|0;if((h+(s[L>>2]|0)|0)>>>0<(s[V>>2]|0)>>>0){s[G>>2]=h+1;r[(s[_>>2]|0)+h>>0]=A+S;A=0}else A=-1;s[o>>2]=s[o>>2]|A}A=s[D>>2]|0;if(A|0){S=S+255&255;do{h=s[G>>2]|0;if((h+(s[L>>2]|0)|0)>>>0<(s[V>>2]|0)>>>0){s[G>>2]=h+1;r[(s[_>>2]|0)+h>>0]=S;h=0;A=s[D>>2]|0}else h=-1;s[o>>2]=s[o>>2]|h;A=A+-1|0;s[D>>2]=A}while((A|0)!=0)}s[H>>2]=M&255;h=s[y>>2]|0;A=s[U>>2]|0}s[y>>2]=h<<8&2147483392;A=A<<8;s[U>>2]=A;s[q>>2]=(s[q>>2]|0)+8}}else{d=d+K|0;X=169}while(0);if((X|0)==169)s[u>>2]=0;h=d-B|0;S=s[Q>>2]|0;S=(n[S+(W<<1)>>1]|0)-(n[S+(t<<1)>>1]|0)|0;d=(h>>>0)/(S>>>0)|0;S=te(S,d)|0;A=t;while(1){if((A|0)>=(W|0))break;X=A+1|0;K=s[Q>>2]|0;K=te(d,(n[K+(X<<1)>>1]|0)-(n[K+(A<<1)>>1]|0)|0)|0;_=b+(A<<2)|0;s[_>>2]=(s[_>>2]|0)+K;A=X}A=t;d=h-S|0;while(1){if((A|0)>=(W|0))break;_=A+1|0;X=s[Q>>2]|0;X=(n[X+(_<<1)>>1]|0)-(n[X+(A<<1)>>1]|0)|0;X=(d|0)<(X|0)?d:X;K=b+(A<<2)|0;s[K>>2]=(s[K>>2]|0)+X;A=_;d=d-X|0}O=e+56|0;I=Z?4:3;P=0;while(1){if((t|0)>=(W|0))break;C=t+1|0;M=s[Q>>2]|0;M=(n[M+(C<<1)>>1]|0)-(n[M+(t<<1)>>1]|0)<>2]|0)+P|0;if((M|0)>1){d=s[f+(t<<2)>>2]|0;d=(A|0)>(d|0)?A-d|0:0;T=A-d|0;s[x>>2]=T;A=te(M,g)|0;if(ee&(M|0)>2?(s[u>>2]|0)==0:0)h=(t|0)<(s[c>>2]|0);else h=0;R=A+(h&1)|0;S=te(R,(n[(s[O>>2]|0)+(t<<1)>>1]|0)+Y|0)|0;A=(S>>1)+(te(R,-21)|0)|0;if((M|0)==2)A=A+(R<<3>>2)|0;h=T+A|0;if((h|0)>=(R<<4|0))if((h|0)<(R*24|0))M=A+(S>>3)|0;else M=A;else M=A+(S>>2)|0;A=T+M+(R<<2)|0;A=((((A|0)<0?0:A)>>>0)/(R>>>0)|0)>>>3;S=m+(t<<2)|0;s[S>>2]=A;e=te(A,g)|0;h=s[x>>2]|0;if((e|0)>(h>>3|0)){A=h>>$>>3;s[S>>2]=A}e=(A|0)<8?A:8;s[S>>2]=e;e=te(e,R<<3)|0;s[w+(t<<2)>>2]=(e|0)>=((s[x>>2]|0)+M|0)&1;e=(te(s[S>>2]|0,g)|0)<<3;s[x>>2]=(s[x>>2]|0)-e}else{d=(A|0)<(J|0)?0:A-J|0;s[x>>2]=A-d;s[m+(t<<2)>>2]=0;s[w+(t<<2)>>2]=1}if((d|0)<=0){P=d;t=C;continue}Z=d>>I;X=m+(t<<2)|0;_=s[X>>2]|0;e=8-_|0;e=(Z|0)<(e|0)?Z:e;s[X>>2]=_+e;e=(te(e,g)|0)<<3;s[w+(t<<2)>>2]=(e|0)>=(d-P|0)&1;P=d-e|0;t=C}s[p>>2]=P;while(1){if((t|0)>=(i|0))break;u=b+(t<<2)|0;c=m+(t<<2)|0;s[c>>2]=s[u>>2]>>$>>3;s[u>>2]=0;s[w+(t<<2)>>2]=(s[c>>2]|0)<1&1;t=t+1|0}l=ie;return W|0}function Ri(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var n=0,a=0,o=0,f=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0;v=l;w=l;l=l+((1*(r<<2)|0)+15&-16)|0;g=l;l=l+((1*(r<<2)|0)+15&-16)|0;n=0;do{m=e+(n<<2)|0;p=+h[m>>2];s[g+(n<<2)>>2]=p<0&1;h[m>>2]=+q(+p);s[t+(n<<2)>>2]=0;h[w+(n<<2)>>2]=0;n=n+1|0}while((n|0)<(r|0));if((r>>1|0)<(i|0)){n=0;a=0;do{a=a+ +h[e+(n<<2)>>2];n=n+1|0}while((n|0)<(r|0));if(!(a>1.0000000036274937e-15&a<64)){h[e>>2]=1;n=1;do{h[e+(n<<2)>>2]=0;n=n+1|0}while((n|0)<(r|0));a=1}f=(+(i|0)+.8)*(1/a);c=0;n=i;o=0;a=0;do{b=e+(c<<2)|0;m=~~+z(+(f*+h[b>>2]));s[t+(c<<2)>>2]=m;p=+(m|0);a=a+p*p;o=o+ +h[b>>2]*p;h[w+(c<<2)>>2]=p*2;n=n-m|0;c=c+1|0}while((c|0)<(r|0))}else{n=i;o=0;a=0}if((n|0)>(r+3|0)){p=+(n|0);a=a+p*p+p*+h[w>>2];s[t>>2]=(s[t>>2]|0)+n;n=0}m=0;while(1){if((m|0)>=(n|0)){n=0;break}a=a+1;p=o+ +h[e>>2];d=a+ +h[w>>2];c=0;p=p*p;b=1;while(1){u=o+ +h[e+(b<<2)>>2];f=a+ +h[w+(b<<2)>>2];u=u*u;i=d*u>f*p;c=i?b:c;b=b+1|0;if((b|0)>=(r|0))break;else{d=i?f:d;p=i?u:p}}d=+h[e+(c<<2)>>2];b=w+(c<<2)|0;p=+h[b>>2];h[b>>2]=p+2;b=t+(c<<2)|0;s[b>>2]=(s[b>>2]|0)+1;m=m+1|0;o=o+d;a=a+p}do{e=t+(n<<2)|0;w=s[g+(n<<2)>>2]|0;s[e>>2]=(s[e>>2]^0-w)+w;n=n+1|0}while((n|0)<(r|0));l=v;return+a}function xi(e,t,i,n,a,o,f,c){e=e|0;t=t|0;i=i|0;n=n|0;a=a|0;o=o|0;f=+f;c=c|0;var u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0;C=l;x=l;l=l+((1*(t+3<<2)|0)+15&-16)|0;Ci(e,t,1,a,i,n);d=+Ri(e,x,i,t);b=t+-1|0;w=s[x+(b<<2)>>2]|0;u=w>>>31;w=(w|0)>-1?w:0-w|0;while(1){m=b;b=b+-1|0;p=t-b|0;u=u+(s[(s[17748+(((p|0)<(w|0)?p:w)<<2)>>2]|0)+(((p|0)>(w|0)?p:w)<<2)>>2]|0)|0;R=s[x+(b<<2)>>2]|0;w=w+((R|0)>-1?R:0-R|0)|0;if((R|0)<0){T=w+1|0;T=u+(s[(s[17748+(((p|0)>(w|0)?T:p)<<2)>>2]|0)+(((p|0)>(T|0)?p:T)<<2)>>2]|0)|0}else T=u;if((m|0)<=1)break;else u=T}p=(t|0)>(i|0);b=i+1|0;b=(s[(s[17748+(((t|0)<(i|0)?t:i)<<2)>>2]|0)+((p?t:i)<<2)>>2]|0)+(s[(s[17748+((p?b:t)<<2)>>2]|0)+(((b|0)<(t|0)?t:b)<<2)>>2]|0)|0;p=b+-1|0;u=32-(re(p|0)|0)|0;e:do if((u|0)>8){R=u+-8|0;u=p>>>R;p=u+1|0;b=T>>>R;y=o+28|0;m=s[y>>2]|0;w=(m>>>0)/(p>>>0)|0;if(!b){w=m-(te(w,u)|0)|0;s[y>>2]=w;_=o+32|0}else{M=m-(te(w,p-b|0)|0)|0;_=o+32|0;s[_>>2]=(s[_>>2]|0)+M;s[y>>2]=w}g=o+36|0;M=o+20|0;v=o+40|0;k=o+24|0;E=o+8|0;A=o+4|0;S=o+44|0;while(1){if(w>>>0>=8388609)break;u=s[_>>2]|0;m=u>>>23;if((m|0)==255)s[g>>2]=(s[g>>2]|0)+1;else{b=u>>>31;u=s[v>>2]|0;if((u|0)>-1){p=s[k>>2]|0;if((p+(s[E>>2]|0)|0)>>>0<(s[A>>2]|0)>>>0){s[k>>2]=p+1;r[(s[o>>2]|0)+p>>0]=u+b;u=0}else u=-1;s[S>>2]=s[S>>2]|u}u=s[g>>2]|0;if(u|0){b=b+255&255;do{p=s[k>>2]|0;if((p+(s[E>>2]|0)|0)>>>0<(s[A>>2]|0)>>>0){s[k>>2]=p+1;r[(s[o>>2]|0)+p>>0]=b;p=0;u=s[g>>2]|0}else p=-1;s[S>>2]=s[S>>2]|p;u=u+-1|0;s[g>>2]=u}while((u|0)!=0)}s[v>>2]=m&255;u=s[_>>2]|0;w=s[y>>2]|0}s[_>>2]=u<<8&2147483392;w=w<<8;s[y>>2]=w;s[M>>2]=(s[M>>2]|0)+8}v=(1<>2]|0;y=o+16|0;p=s[y>>2]|0;if((p+R|0)>>>0>32){w=7-p|0;w=p+((w|0)>-8?w:-8)&-8;g=p;do{b=s[E>>2]|0;m=s[A>>2]|0;if(((s[k>>2]|0)+b|0)>>>0>>0){b=b+1|0;s[E>>2]=b;r[(s[o>>2]|0)+(m-b)>>0]=u;b=0}else b=-1;s[S>>2]=s[S>>2]|b;u=u>>>8;g=g+-8|0}while((g|0)>7);p=p+-8-w|0}s[_>>2]=u|v<>2]=p+R;s[M>>2]=(s[M>>2]|0)+R}else{S=o+28|0;u=s[S>>2]|0;p=(u>>>0)/(b>>>0)|0;if(!T){p=u-(te(p,b+-1|0)|0)|0;s[S>>2]=p;A=o+32|0}else{R=u-(te(p,b-T|0)|0)|0;A=o+32|0;s[A>>2]=(s[A>>2]|0)+R;s[S>>2]=p}w=o+36|0;g=o+20|0;v=o+40|0;_=o+24|0;y=o+8|0;k=o+4|0;E=o+44|0;while(1){if(p>>>0>=8388609)break e;u=s[A>>2]|0;m=u>>>23;if((m|0)==255)s[w>>2]=(s[w>>2]|0)+1;else{b=u>>>31;u=s[v>>2]|0;if((u|0)>-1){p=s[_>>2]|0;if((p+(s[y>>2]|0)|0)>>>0<(s[k>>2]|0)>>>0){s[_>>2]=p+1;r[(s[o>>2]|0)+p>>0]=u+b;u=0}else u=-1;s[E>>2]=s[E>>2]|u}u=s[w>>2]|0;if(u|0){b=b+255&255;do{p=s[_>>2]|0;if((p+(s[y>>2]|0)|0)>>>0<(s[k>>2]|0)>>>0){s[_>>2]=p+1;r[(s[o>>2]|0)+p>>0]=b;p=0;u=s[w>>2]|0}else p=-1;s[E>>2]=s[E>>2]|p;u=u+-1|0;s[w>>2]=u}while((u|0)!=0)}s[v>>2]=m&255;u=s[A>>2]|0;p=s[S>>2]|0}s[A>>2]=u<<8&2147483392;p=p<<8;s[S>>2]=p;s[g>>2]=(s[g>>2]|0)+8}}while(0);if(c|0){d=1/+H(+d)*f;u=0;do{h[e+(u<<2)>>2]=d*+(s[x+(u<<2)>>2]|0);u=u+1|0}while((u|0)<(t|0));Ci(e,t,-1,a,i,n)}if((a|0)<2){a=1;l=C;return a|0}w=(t>>>0)/(a>>>0)|0;u=0;g=0;do{p=te(g,w)|0;b=0;m=0;do{m=m|s[x+(p+b<<2)>>2];b=b+1|0}while((b|0)<(w|0));u=u|((m|0)!=0&1)<=(t|0)|(a|0)==0)return;y=+(t|0)/+((te(s[17352+(a+-1<<2)>>2]|0,n)|0)+t|0);y=y*y*.5;_=+V(+(y*1.5707963705062866));y=+V(+((1-y)*1.5707963705062866));e:do if((r<<3|0)>(t|0))a=0;else{n=r>>2;a=1;while(1){if(((te((te(a,a)|0)+a|0,r)|0)+n|0)>=(t|0))break e;a=a+1|0}}while(0);v=(t>>>0)/(r>>>0)|0;o=(i|0)<0;f=(a|0)==0;c=-y;l=v+-1|0;u=v+-3|0;d=v+-2|0;p=-_;b=v-a|0;m=v-(a<<1)|0;w=m+-1|0;g=0;while(1){if((g|0)>=(r|0))break;i=e+((te(g,v)|0)<<2)|0;e:do if(!o){n=i;t=0;while(1){if((t|0)>=(l|0))break;A=+h[n>>2];k=n+4|0;E=+h[k>>2];h[k>>2]=E*_+A*c;h[n>>2]=A*_+E*y;n=k;t=t+1|0}n=i+(u<<2)|0;t=d;while(1){if((t|0)<=0)break;E=+h[n>>2];k=n+4|0;A=+h[k>>2];h[k>>2]=A*_+E*c;h[n>>2]=E*_+A*y;n=n+-4|0;t=t+-1|0}if(!f){n=i;t=0;while(1){if((t|0)>=(b|0))break;E=+h[n>>2];k=n+(a<<2)|0;A=+h[k>>2];h[k>>2]=A*y+E*p;h[n>>2]=E*y+A*_;n=n+4|0;t=t+1|0}n=i+(w<<2)|0;t=m;while(1){if((t|0)<=0)break e;E=+h[n>>2];k=n+(a<<2)|0;A=+h[k>>2];h[k>>2]=A*y+E*p;h[n>>2]=E*y+A*_;n=n+-4|0;t=t+-1|0}}}else{t:do if(f){n=i;t=0}else{n=i;t=0;while(1){if((t|0)>=(b|0))break;E=+h[n>>2];k=n+(a<<2)|0;A=+h[k>>2];h[k>>2]=A*y+E*_;h[n>>2]=E*y+A*p;n=n+4|0;t=t+1|0}n=i+(w<<2)|0;t=m;while(1){if((t|0)<=0){n=i;t=0;break t}E=+h[n>>2];k=n+(a<<2)|0;A=+h[k>>2];h[k>>2]=A*y+E*_;h[n>>2]=E*y+A*p;n=n+-4|0;t=t+-1|0}}while(0);while(1){if((t|0)>=(l|0))break;E=+h[n>>2];k=n+4|0;A=+h[k>>2];h[k>>2]=A*_+E*y;h[n>>2]=E*_+A*c;n=k;t=t+1|0}n=i+(u<<2)|0;t=d;while(1){if((t|0)<=0)break e;E=+h[n>>2];k=n+4|0;A=+h[k>>2];h[k>>2]=A*_+E*y;h[n>>2]=E*_+A*c;n=n+-4|0;t=t+-1|0}}while(0);g=g+1|0}return}function Ii(e,t,i,r,n,a,o){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;a=a|0;o=+o;var f=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0;_=l;v=l;l=l+((1*(t<<2)|0)+15&-16)|0;g=(t|0)>(i|0);p=i+1|0;m=t;w=i;p=ci(a,(s[(s[17748+(((t|0)<(i|0)?t:i)<<2)>>2]|0)+((g?t:i)<<2)>>2]|0)+(s[(s[17748+((g?p:t)<<2)>>2]|0)+(((p|0)<(t|0)?t:p)<<2)>>2]|0)|0)|0;g=v;f=0;while(1){if((m|0)<=2)break;do if((w|0)<(m|0)){a=s[(s[17748+(w<<2)>>2]|0)+(m<<2)>>2]|0;c=s[(s[17748+(w+1<<2)>>2]|0)+(m<<2)>>2]|0;if(p>>>0>=a>>>0&p>>>0>>0){s[g>>2]=0;c=p-a|0;a=w;break}d=p>>>0>=c>>>0;c=p-(d?c:0)|0;a=w;do{a=a+-1|0;u=s[(s[17748+(a<<2)>>2]|0)+(m<<2)>>2]|0}while(c>>>0>>0);b=d<<31>>31;w=w-a+b^b;s[g>>2]=w<<16>>16;y=+((w&65535)<<16>>16);c=c-u|0;f=f+y*y}else{u=s[17748+(m<<2)>>2]|0;d=s[u+(w+1<<2)>>2]|0;c=p>>>0>=d>>>0;b=c<<31>>31;d=p-(c?d:0)|0;e:do if((s[u+(m<<2)>>2]|0)>>>0>d>>>0){a=m;do{a=a+-1|0;c=s[(s[17748+(a<<2)>>2]|0)+(m<<2)>>2]|0}while(c>>>0>d>>>0)}else{a=w;while(1){c=s[u+(a<<2)>>2]|0;if(c>>>0<=d>>>0)break e;a=a+-1|0}}while(0);w=w-a+b^b;s[g>>2]=w<<16>>16;y=+((w&65535)<<16>>16);c=d-c|0;f=f+y*y}while(0);m=m+-1|0;w=a;p=c;g=g+4|0}a=w<<1|1;c=p>>>0>=a>>>0;u=c<<31>>31;a=p-(c?a:0)|0;c=(a+1|0)>>>1;if(c)a=a-((c<<1)+-1)|0;w=w-c+u^u;s[g>>2]=w<<16>>16;k=+((w&65535)<<16>>16);a=c-a^0-a;s[g+4>>2]=a<<16>>16;y=+((a&65535)<<16>>16);f=1/+H(+(f+k*k+y*y))*o;a=0;do{h[e+(a<<2)>>2]=f*+(s[v+(a<<2)>>2]|0);a=a+1|0}while((a|0)<(t|0));Ci(e,t,-1,n,i,r);if((n|0)<2){n=1;l=_;return n|0}p=(t>>>0)/(n>>>0)|0;a=0;b=0;do{c=te(b,p)|0;u=0;d=0;do{d=d|s[v+(c+u<<2)>>2];u=u+1|0}while((u|0)<(p|0));a=a|((d|0)!=0&1)<>2]=0;s[U+4>>2]=0;U=t+4|0;e:do if(!f)f=s[U>>2]|0;else{d=0;while(1){f=s[U>>2]|0;if((d|0)>=(f|0))break e;s[e+(d*4260|0)+2388>>2]=0;d=d+1|0}}while(0);F=e+8536|0;if((f|0)>(s[F>>2]|0)){f=e+4260|0;kn(f|0,0,4260)|0;s[e+6636>>2]=1;s[f>>2]=65536;s[e+8408>>2]=0;s[e+8412>>2]=3176576;s[e+8428>>2]=s[e+6588>>2]<<7;s[e+8500>>2]=65536;s[e+8504>>2]=65536;s[e+8516>>2]=20;s[e+8512>>2]=2;f=s[U>>2]|0}if((f|0)==1?(s[F>>2]|0)==2:0)B=(s[t+12>>2]|0)==((s[e+2316>>2]|0)*1e3|0);else B=0;O=e+2388|0;e:do if(!(s[O>>2]|0)){E=t+16|0;A=t+12|0;S=t+8|0;k=0;M=0;t:while(1){if((k|0)>=(f|0))break e;switch(s[E>>2]|0){case 0:{s[e+(k*4260|0)+2392>>2]=1;s[e+(k*4260|0)+2324>>2]=2;f=2;break}case 10:{s[e+(k*4260|0)+2392>>2]=1;s[e+(k*4260|0)+2324>>2]=2;f=2;break}case 20:{s[e+(k*4260|0)+2392>>2]=1;s[e+(k*4260|0)+2324>>2]=4;f=4;break}case 40:{s[e+(k*4260|0)+2392>>2]=2;s[e+(k*4260|0)+2324>>2]=4;f=4;break}case 60:{s[e+(k*4260|0)+2392>>2]=3;s[e+(k*4260|0)+2324>>2]=4;f=4;break}default:{f=-203;T=183;break t}}g=s[A>>2]>>10;v=g+1|0;_=(v|0)==8;switch(g|0){case 7:case 11:case 15:break;default:{f=-200;T=183;break t}}p=s[S>>2]|0;y=v<<16>>16;s[e+(k*4260|0)+2332>>2]=y*5;b=e+(k*4260|0)+2324|0;m=te(f,y*327680>>16)|0;w=e+(k*4260|0)+2316|0;f=e+(k*4260|0)+2320|0;if((s[w>>2]|0)==(v|0)?(s[f>>2]|0)==(p|0):0){f=1;d=0;T=23}else{d=qi(e+(k*4260|0)+2432|0,y*1e3|0,p,0)|0;s[f>>2]=p;f=(s[w>>2]|0)==(v|0);if(f)T=23;else T=24}if((T|0)==23){T=0;if((m|0)!=(s[e+(k*4260|0)+2328>>2]|0))T=24}if((T|0)==24){T=0;p=(s[b>>2]|0)==4;b=e+(k*4260|0)+2384|0;do if(_)if(p){s[b>>2]=30064;break}else{s[b>>2]=30087;break}else if(p){s[b>>2]=30030;break}else{s[b>>2]=30075;break}while(0);if(!f){s[e+(k*4260|0)+2336>>2]=y*20;switch(g|0){case 7:case 11:{s[e+(k*4260|0)+2340>>2]=10;s[e+(k*4260|0)+2732>>2]=22896;if((v|0)==12)s[e+(k*4260|0)+2380>>2]=29956;else T=37;break}default:{s[e+(k*4260|0)+2340>>2]=16;s[e+(k*4260|0)+2732>>2]=22936;if((v|0)==16)s[e+(k*4260|0)+2380>>2]=29962;else T=37}}if((T|0)==37?(0,_):0)s[e+(k*4260|0)+2380>>2]=29947;s[e+(k*4260|0)+2376>>2]=1;s[e+(k*4260|0)+2308>>2]=100;r[e+(k*4260|0)+2312>>0]=10;s[e+(k*4260|0)+4164>>2]=0;kn(e+(k*4260|0)+1284|0,0,1024)|0}s[w>>2]=v;s[e+(k*4260|0)+2328>>2]=m}f=s[U>>2]|0;k=k+1|0;M=M+d|0}if((T|0)==183){l=z;return f|0}}else M=0;while(0);d=s[t>>2]|0;do if((d|0)==2)if((f|0)==2){if((s[e+8532>>2]|0)!=1?(s[F>>2]|0)!=1:0){f=2;break}s[e+8520>>2]=0;s[e+8528>>2]=0;Mn(e+6692|0,e+2432|0,300)|0;f=s[t>>2]|0}else f=2;else f=d;while(0);s[e+8532>>2]=f;s[F>>2]=s[U>>2];P=t+8|0;if(((s[P>>2]|0)+-8e3|0)>>>0>4e4){e=-200;l=z;return e|0}N=(i|0)==1;e:do if(!N?(s[O>>2]|0)==0:0){A=h+28|0;S=h+32|0;T=h+20|0;R=h+40|0;x=h+24|0;C=h+4|0;v=0;while(1){f=s[U>>2]|0;if((v|0)>=(f|0)){_=0;break}m=e+(v*4260|0)+2392|0;w=0;while(1){p=s[A>>2]|0;d=s[S>>2]|0;f=p>>>1;b=d>>>0>>0;g=b&1;if((w|0)>=(s[m>>2]|0))break;if(!b){d=d-f|0;s[S>>2]=d;f=p-f|0}s[A>>2]=f;while(1){if(f>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;f=f<<8;s[A>>2]=f;b=s[R>>2]|0;p=s[x>>2]|0;if(p>>>0<(s[C>>2]|0)>>>0){s[x>>2]=p+1;p=a[(s[h>>2]|0)+p>>0]|0}else p=0;s[R>>2]=p;E=((b<<8|p)>>>1&255|d<<8&2147483392)^255;s[S>>2]=E;d=E}s[e+(v*4260|0)+2404+(w<<2)>>2]=g;w=w+1|0}if(!b){d=d-f|0;s[S>>2]=d;f=p-f|0}s[A>>2]=f;while(1){if(f>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;f=f<<8;s[A>>2]=f;b=s[R>>2]|0;p=s[x>>2]|0;if(p>>>0<(s[C>>2]|0)>>>0){s[x>>2]=p+1;p=a[(s[h>>2]|0)+p>>0]|0}else p=0;s[R>>2]=p;E=((b<<8|p)>>>1&255|d<<8&2147483392)^255;s[S>>2]=E;d=E}s[e+(v*4260|0)+2416>>2]=g;v=v+1|0}while(1){if((_|0)>=(f|0))break;f=e+(_*4260|0)+2420|0;s[f>>2]=0;s[f+4>>2]=0;s[f+8>>2]=0;t:do if(s[e+(_*4260|0)+2416>>2]|0){v=e+(_*4260|0)+2392|0;d=s[v>>2]|0;if((d|0)==1){s[f>>2]=1;break}f=s[17520+(d+-2<<2)>>2]|0;w=s[A>>2]|0;d=s[S>>2]|0;p=w>>>8;g=-1;while(1){b=g+1|0;m=te(p,a[f+b>>0]|0)|0;if(d>>>0>>0){g=b;w=m}else break}b=d-m|0;s[S>>2]=b;f=w-m|0;s[A>>2]=f;while(1){if(f>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;f=f<<8;s[A>>2]=f;p=s[R>>2]|0;d=s[x>>2]|0;if(d>>>0<(s[C>>2]|0)>>>0){s[x>>2]=d+1;d=a[(s[h>>2]|0)+d>>0]|0}else d=0;s[R>>2]=d;E=((p<<8|d)>>>1&255|b<<8&2147483392)^255;s[S>>2]=E;b=E}f=g+2|0;d=0;while(1){if((d|0)>=(s[v>>2]|0))break t;s[e+(_*4260|0)+2420+(d<<2)>>2]=f>>>d&1;d=d+1|0}}while(0);f=s[U>>2]|0;_=_+1|0}if(!i){k=e+2392|0;E=e+6680|0;d=0;y=0;while(1){if((y|0)>=(s[k>>2]|0))break e;g=E+(y<<2)|0;v=(y|0)>0;_=y+-1|0;w=0;while(1){if((w|0)>=(f|0))break;if(s[e+(w*4260|0)+2420+(y<<2)>>2]|0){t:do if((f|0)==2&(w|0)==0?(Ki(h,L),(s[g>>2]|0)==0):0){m=s[A>>2]|0;f=s[S>>2]|0;p=m>>>8;d=-1;while(1){d=d+1|0;b=te(p,a[29916+d>>0]|0)|0;if(f>>>0>=b>>>0)break;else m=b}p=f-b|0;s[S>>2]=p;f=m-b|0;s[A>>2]=f;m=p;while(1){if(f>>>0>=8388609)break t;s[T>>2]=(s[T>>2]|0)+8;f=f<<8;s[A>>2]=f;b=s[R>>2]|0;p=s[x>>2]|0;if(p>>>0<(s[C>>2]|0)>>>0){s[x>>2]=p+1;p=a[(s[h>>2]|0)+p>>0]|0}else p=0;s[R>>2]=p;b=((b<<8|p)>>>1&255|m<<8&2147483392)^255;s[S>>2]=b;m=b}}while(0);if(v?(s[e+(w*4260|0)+2420+(_<<2)>>2]|0)!=0:0)f=2;else f=0;dr(e+(w*4260|0)|0,h,y,1,f);pr(h,I,r[e+(w*4260|0)+2765>>0]|0,r[e+(w*4260|0)+2766>>0]|0,s[e+(w*4260|0)+2328>>2]|0);f=s[U>>2]|0}w=w+1|0}y=y+1|0}}else d=0}else d=0;while(0);f=s[U>>2]|0;do if((f|0)==2){switch(i|0){case 0:{Ki(h,L);if(!(s[e+6664+(s[O>>2]<<2)>>2]|0))T=112;else{d=0;T=121}break}case 2:{if((s[e+2420+(s[O>>2]<<2)>>2]|0)==1){Ki(h,L);if(!(s[e+6680+(s[O>>2]<<2)>>2]|0))T=112;else{d=0;T=121}}else T=108;break}default:T=108}e:do if((T|0)==108){f=e+8520|0;p=0;while(1){if((p|0)==2)break e;s[L+(p<<2)>>2]=n[f+(p<<1)>>1];p=p+1|0}}else if((T|0)==112){y=h+28|0;m=s[y>>2]|0;k=h+32|0;f=s[k>>2]|0;p=m>>>8;d=-1;while(1){d=d+1|0;b=te(p,a[29916+d>>0]|0)|0;if(f>>>0>=b>>>0)break;else m=b}_=f-b|0;s[k>>2]=_;f=m-b|0;s[y>>2]=f;m=h+20|0;w=h+40|0;g=h+24|0;v=h+4|0;while(1){if(f>>>0>=8388609){T=121;break e}s[m>>2]=(s[m>>2]|0)+8;f=f<<8;s[y>>2]=f;b=s[w>>2]|0;p=s[g>>2]|0;if(p>>>0<(s[v>>2]|0)>>>0){s[g>>2]=p+1;p=a[(s[h>>2]|0)+p>>0]|0}else p=0;s[w>>2]=p;I=((b<<8|p)>>>1&255|_<<8&2147483392)^255;s[k>>2]=I;_=I}}while(0);if((T|0)==121){f=s[U>>2]|0;if((f|0)!=2)break}if((d|0)==0?(s[e+8540>>2]|0)==1:0){kn(e+5544|0,0,1024)|0;s[e+6568>>2]=100;r[e+6572>>0]=10;s[e+8424>>2]=0;s[e+6636>>2]=1;f=s[U>>2]|0}else f=2}while(0);R=te(s[t+12>>2]|0,f)|0;R=(R|0)<(te(s[P>>2]|0,s[t>>2]|0)|0);if(R){C=Ne()|0;s[j>>2]=c;T=c+(s[e+2328>>2]<<1)+4|0;s[j+4>>2]=T;m=c}else{T=e+2328|0;I=te(f,(s[T>>2]|0)+2|0)|0;C=Ne()|0;m=l;l=l+((1*(I<<1)|0)+15&-16)|0;s[j>>2]=m;T=m+(s[T>>2]<<1)+4|0;s[j+4>>2]=T}if(!i){x=e+8540|0;b=(d|0)==0&1}else{f=e+8540|0;if(s[f>>2]|0)if((s[U>>2]|0)==2&(i|0)==2)p=(s[e+6680+(s[e+6648>>2]<<2)>>2]|0)==1;else p=0;else p=1;x=f;b=p&1}p=(i|0)==2;w=0;while(1){f=s[U>>2]|0;if((w|0)>=(f|0))break;if((w|0)==0|(b|0)!=0){f=(s[O>>2]|0)-w|0;do if((f|0)<1)f=0;else{if(p){f=s[e+(w*4260|0)+2420+(f+-1<<2)>>2]|0?2:0;break}if((w|0)>0?s[x>>2]|0:0){f=1;break}f=2}while(0);f=M+(ur(e+(w*4260|0)|0,h,(s[j+(w<<2)>>2]|0)+4|0,D,i,f)|0)|0}else{kn((s[j+(w<<2)>>2]|0)+4|0,0,s[D>>2]<<1|0)|0;f=M}M=e+(w*4260|0)+2388|0;s[M>>2]=(s[M>>2]|0)+1;w=w+1|0;M=f}e:do if((s[t>>2]|0)==2&(f|0)==2){ -E=e+8520|0;A=e+2316|0;f=s[A>>2]|0;S=s[D>>2]|0;y=e+8524|0;w=o[y>>1]|o[y+2>>1]<<16;n[m>>1]=w;n[m+2>>1]=w>>>16;w=e+8528|0;g=o[w>>1]|o[w+2>>1]<<16;n[T>>1]=g;n[T+2>>1]=g>>>16;g=m+(S<<1)|0;g=o[g>>1]|o[g+2>>1]<<16;n[y>>1]=g;n[y+2>>1]=g>>>16;y=T+(S<<1)|0;y=o[y>>1]|o[y+2>>1]<<16;n[w>>1]=y;n[w+2>>1]=y>>>16;w=n[E>>1]|0;y=e+8522|0;g=n[y>>1]|0;f=f<<3;k=s[L>>2]|0;p=(65536/(f|0)|0)<<16>>16;v=((te(k-(w&65535)<<16>>16,p)|0)>>15)+1>>1;_=s[L+4>>2]|0;p=((te(_-(g&65535)<<16>>16,p)|0)>>15)+1>>1;b=0;w=w<<16>>16;g=g<<16>>16;while(1){if((b|0)>=(f|0))break;D=w+v|0;L=g+p|0;h=b+1|0;I=n[m+(h<<1)>>1]|0;H=(n[m+(b<<1)>>1]|0)+(n[m+(b+2<<1)>>1]|0)+(I<<1)|0;i=T+(h<<1)|0;q=D<<16>>16;O=L<<16>>16;O=((n[i>>1]<<8)+((te(H>>7,q)|0)+((te(H<<9&65024,q)|0)>>16))+((te(I>>5,O)|0)+((te(I<<11&63488,O)|0)>>16))>>7)+1>>1;n[i>>1]=(O|0)>32767?32767:((O|0)<-32768?-32768:O)&65535;b=h;w=D;g=L}p=k<<16>>16;b=_<<16>>16;while(1){if((f|0)>=(S|0))break;H=f+1|0;L=n[m+(H<<1)>>1]|0;D=(n[m+(f<<1)>>1]|0)+(n[m+(f+2<<1)>>1]|0)+(L<<1)|0;q=T+(H<<1)|0;L=((n[q>>1]<<8)+((te(D>>7,p)|0)+((te(D<<9&65024,p)|0)>>16))+((te(L>>5,b)|0)+((te(L<<11&63488,b)|0)>>16))>>7)+1>>1;n[q>>1]=(L|0)>32767?32767:((L|0)<-32768?-32768:L)&65535;f=H}n[E>>1]=k;n[y>>1]=_;f=0;while(1){if((f|0)>=(S|0)){v=A;g=S;break e}H=f+1|0;D=m+(H<<1)|0;i=n[D>>1]|0;q=T+(H<<1)|0;L=n[q>>1]|0;h=i+L|0;L=i-L|0;n[D>>1]=(h|0)>32767?32767:((h|0)<-32768?-32768:h)&65535;n[q>>1]=(L|0)>32767?32767:((L|0)<-32768?-32768:L)&65535;f=H}}else{v=e+8524|0;g=o[v>>1]|o[v+2>>1]<<16;n[m>>1]=g;n[m+2>>1]=g>>>16;g=s[D>>2]|0;m=s[j>>2]|0;H=m+(g<<1)|0;H=o[H>>1]|o[H+2>>1]<<16;n[v>>1]=H;n[v+2>>1]=H>>>16;v=e+2316|0}while(0);p=te(g,s[P>>2]|0)|0;p=(p|0)/((s[v>>2]<<16>>16)*1e3|0)|0;s[u>>2]=p;f=s[t>>2]|0;b=(f|0)==2;if(b){w=l;l=l+((1*((b?p:1)<<1)|0)+15&-16)|0}else w=c;if(R){H=s[e+2328>>2]|0;q=te(s[U>>2]|0,H+2|0)|0;m=l;l=l+((1*(q<<1)|0)+15&-16)|0;Mn(m|0,c|0,q<<1|0)|0;s[j>>2]=m;s[j+4>>2]=m+(H<<1)+4}b=0;while(1){p=s[U>>2]|0;if((b|0)>=(((f|0)<(p|0)?f:p)|0))break;Hi(e+(b*4260|0)+2432|0,w,(s[j+(b<<2)>>2]|0)+2|0,g);f=s[t>>2]|0;if((f|0)==2){f=0;while(1){if((f|0)>=(s[u>>2]|0))break;n[c+(b+(f<<1)<<1)>>1]=n[w+(f<<1)>>1]|0;f=f+1|0}f=s[t>>2]|0}b=b+1|0}e:do if((f|0)==2&(p|0)==1){if(!B){f=0;while(1){if((f|0)>=(s[u>>2]|0))break e;H=f<<1;n[c+((H|1)<<1)>>1]=n[c+(H<<1)>>1]|0;f=f+1|0}}Hi(e+6692|0,w,m+2|0,g);f=0;while(1){if((f|0)>=(s[u>>2]|0))break e;n[c+((f<<1|1)<<1)>>1]=n[w+(f<<1)>>1]|0;f=f+1|0}}while(0);if((s[e+4164>>2]|0)==2)f=te(s[e+2308>>2]|0,s[17364+((s[v>>2]|0)+-8>>2<<2)>>2]|0)|0;else f=0;s[t+20>>2]=f;e:do if(N){f=0;while(1){if((f|0)>=(s[F>>2]|0))break e;r[e+(f*4260|0)+2312>>0]=10;f=f+1|0}}else s[x>>2]=d;while(0);qe(C|0);H=M;l=z;return H|0}function Oi(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,n=0,a=0;kn(e|0,0,20400)|0;r=0;n=0;while(1){if((r|0)==2)break;a=n+(Fi(e+(r*10156|0)|0,t)|0)|0;r=r+1|0;n=a}s[e+20376>>2]=1;a=e+20380|0;s[a>>2]=1;s[i>>2]=1;s[i+4>>2]=s[a>>2];s[i+8>>2]=s[e+4648>>2];s[i+12>>2]=s[e+4656>>2];s[i+16>>2]=s[e+4660>>2];s[i+20>>2]=s[e+4664>>2];s[i+24>>2]=s[e+4704>>2];s[i+28>>2]=s[e+4700>>2];s[i+32>>2]=s[e+4708>>2];s[i+36>>2]=s[e+4716>>2];s[i+40>>2]=s[e+6180>>2];s[i+48>>2]=s[e+6168>>2];s[i+52>>2]=s[e+4768>>2];a=e+4668|0;s[i+72>>2]=(s[a>>2]<<16>>16)*1e3;s[i+76>>2]=s[e+4628>>2];if((s[a>>2]|0)!=16){r=0;r=r&1;a=i+80|0;s[a>>2]=r;return n|0}r=(s[e+28>>2]|0)==0;r=r&1;a=i+80|0;s[a>>2]=r;return n|0}function Ni(e,t,i,f,h,c,u){e=e|0;t=t|0;i=i|0;f=f|0;h=h|0;c=c|0;u=u|0;var d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0,I=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,q=0,H=0,G=0,V=0,W=0,K=0,Z=0,Y=0,$=0,X=0,J=0,Q=0,ee=0,ie=0,ne=0,se=0,ae=0,oe=0,fe=0,he=0,ce=0,le=0,ue=0,de=0,pe=0,be=0,me=0,we=0,ge=0,ve=0,_e=0,ye=0,ke=0,Ee=0,Ae=0,Se=0,Me=0,Te=0,Re=0,xe=0,Ce=0,Ie=0,Pe=0,Oe=0,De=0,Le=0,Be=0,Ue=0,je=0,Fe=0,ze=0,He=0,Ge=0,Ve=0,We=0,Ke=0,Ze=0,Ye=0,$e=0,Xe=0,Je=0,Qe=0,et=0,tt=0,it=0,rt=0,nt=0,st=0,at=0,ot=0;ot=l;l=l+16|0;st=ot;if(s[t+68>>2]|0){s[e+4756>>2]=1;s[e+14912>>2]=1}rt=e+15996|0;s[rt>>2]=0;nt=e+5840|0;s[nt>>2]=0;U=t+8|0;p=s[U>>2]|0;e:do if((p|0)<24e3){if((p|0)<12e3){switch(p|0){case 8e3:break e;default:d=-102}l=ot;return d|0}if((p|0)<16e3){switch(p|0){case 12e3:break e;default:d=-102}l=ot;return d|0}else{switch(p|0){case 16e3:break e;default:d=-102}l=ot;return d|0}}else if((p|0)<44100)if((p|0)<32e3){switch(p|0){case 24e3:break e;default:d=-102}l=ot;return d|0}else{switch(p|0){case 32e3:break e;default:d=-102}l=ot;return d|0}else if((p|0)<48e3){switch(p|0){case 44100:break e;default:d=-102}l=ot;return d|0}else{switch(p|0){case 48e3:break e;default:d=-102}l=ot;return d|0}while(0);B=t+20|0;p=s[B>>2]|0;e:do if((p|0)>=12e3)if((p|0)<16e3){switch(p|0){case 12e3:break e;default:d=-102}l=ot;return d|0}else{switch(p|0){case 16e3:break e;default:d=-102}l=ot;return d|0}else{switch(p|0){case 8e3:break e;default:d=-102}l=ot;return d|0}while(0);D=t+12|0;b=s[D>>2]|0;e:do if((b|0)>=12e3)if((b|0)<16e3){switch(b|0){case 12e3:break e;default:d=-102}l=ot;return d|0}else{switch(b|0){case 16e3:break e;default:d=-102}l=ot;return d|0}else{switch(b|0){case 8e3:break e;default:d=-102}l=ot;return d|0}while(0);L=t+16|0;m=s[L>>2]|0;e:do if((m|0)>=12e3)if((m|0)<16e3){switch(m|0){case 12e3:break e;default:d=-102}l=ot;return d|0}else{switch(m|0){case 16e3:break e;default:d=-102}l=ot;return d|0}else{switch(m|0){case 8e3:break e;default:d=-102}l=ot;return d|0}while(0);if((m|0)>(p|0)|(b|0)<(p|0)|(m|0)>(b|0)){e=-102;l=ot;return e|0}it=t+24|0;switch(s[it>>2]|0){case 60:case 40:case 20:case 10:break;default:{e=-103;l=ot;return e|0}}P=t+32|0;if((s[P>>2]|0)>>>0>100){e=-105;l=ot;return e|0}O=t+48|0;if((s[O>>2]|0)>>>0>1){e=-108;l=ot;return e|0}et=t+52|0;if((s[et>>2]|0)>>>0>1){e=-109;l=ot;return e|0}N=t+40|0;if((s[N>>2]|0)>>>0>1){e=-107;l=ot;return e|0}p=s[t>>2]|0;if((p+-1|0)>>>0>1){e=-111;l=ot;return e|0}at=t+4|0;b=s[at>>2]|0;if((b+-1|0)>>>0>1|(b|0)>(p|0)){e=-111;l=ot;return e|0}tt=t+36|0;if((s[tt>>2]|0)>>>0>10){e=-106;l=ot;return e|0}I=t+88|0;s[I>>2]=0;m=e+20380|0;if((b|0)>(s[m>>2]|0)){b=e+10156|0;p=Fi(b,s[e+5184>>2]|0)|0;s[e+20312>>2]=0;s[e+20320>>2]=0;s[e+20324>>2]=0;s[e+20328>>2]=1;s[e+20332>>2]=0;s[e+20336>>2]=1;n[e+20342>>1]=0;n[e+20340>>1]=16384;if((s[e+20376>>2]|0)==2){Mn(e+16024|0,e+5868|0,300)|0;$e=e;Xe=s[$e+4>>2]|0;Je=b;s[Je>>2]=s[$e>>2];s[Je+4>>2]=Xe}}else p=0;if((s[it>>2]|0)==(s[e+4704>>2]|0))C=(s[m>>2]|0)!=(s[at>>2]|0);else C=1;s[e+20376>>2]=s[t>>2];s[m>>2]=s[at>>2];b=f*100|0;m=s[U>>2]|0;x=(b|0)/(m|0)|0;Xe=(x|0)>1?x>>1:1;Je=(u|0)==0;e:do if(Je){if((te(x,m)|0)!=(b|0)|(f|0)<0){e=-101;l=ot;return e|0}if((f*1e3|0)>(te(s[it>>2]|0,m)|0)){e=-101;l=ot;return e|0}else{$e=e;u=0;w=0;break}}else{if((x|0)!=1){e=-101;l=ot;return e|0}b=0;while(1){m=s[at>>2]|0;if((b|0)>=(m|0))break;p=Fi(e+(b*10156|0)|0,s[e+(b*10156|0)+5184>>2]|0)|0;b=b+1|0}w=s[it>>2]|0;s[it>>2]=10;u=s[tt>>2]|0;s[tt>>2]=0;b=0;while(1){if((b|0)>=(m|0)){$e=e;break e}s[e+(b*10156|0)+4760>>2]=0;s[e+(b*10156|0)+4772>>2]=1;m=s[at>>2]|0;b=b+1|0}}while(0);Ye=e+4668|0;We=e+20392|0;M=t+44|0;T=t+64|0;Ke=t+56|0;Ze=e+5836|0;R=0;while(1){if((R|0)>=(s[at>>2]|0))break;if((R|0)==1)y=s[Ye>>2]|0;else y=0;k=$e+(R*10156|0)|0;v=s[We>>2]|0;S=$e+(R*10156|0)+6168|0;s[S>>2]=s[O>>2];s[$e+(R*10156|0)+4768>>2]=s[et>>2];p=s[U>>2]|0;s[$e+(R*10156|0)+4648>>2]=p;b=s[D>>2]|0;s[$e+(R*10156|0)+4656>>2]=b;m=s[L>>2]|0;s[$e+(R*10156|0)+4660>>2]=m;_=s[B>>2]|0;s[$e+(R*10156|0)+4664>>2]=_;s[$e+(R*10156|0)+6180>>2]=s[N>>2];s[$e+(R*10156|0)+5844>>2]=s[t>>2];s[$e+(R*10156|0)+5848>>2]=s[at>>2];s[$e+(R*10156|0)+4628>>2]=v;s[$e+(R*10156|0)+5852>>2]=R;A=$e+(R*10156|0)+4760|0;do if(!(s[A>>2]|0))Qe=41;else{if(s[$e+(R*10156|0)+4772>>2]|0){Qe=41;break}if((p|0)==(s[$e+(R*10156|0)+4652>>2]|0))break;p=s[$e+(R*10156|0)+4668>>2]|0;if((p|0)<=0)break;d=zi(k,p)|0;Qe=110}while(0);if((Qe|0)==41){Qe=0;E=$e+(R*10156|0)+4668|0;d=s[E>>2]|0;Ve=d<<16>>16;g=Ve*1e3|0;do if(Ve){if((g|0)>(p|0)|(g|0)>(b|0)|(g|0)<(m|0)){d=(p|0)<(b|0)?p:b;d=(((d|0)>(m|0)?d:m)|0)/1e3|0;break}m=$e+(R*10156|0)+24|0;p=s[m>>2]|0;if((p|0)>255)s[$e+(R*10156|0)+28>>2]=0;if((v|0)==0?(s[T>>2]|0)==0:0)break;if((g|0)>(_|0)){b=$e+(R*10156|0)+28|0;if(!(s[b>>2]|0)){s[m>>2]=256;p=$e+(R*10156|0)+16|0;s[p>>2]=0;s[p+4>>2]=0;p=256}if(s[T>>2]|0){s[b>>2]=0;d=(d|0)==16?12:8;break}if((p|0)<1){s[I>>2]=1;Ve=s[Ke>>2]|0;s[Ke>>2]=Ve-((Ve*5|0)/((s[it>>2]|0)+5|0)|0);break}else{s[b>>2]=-2;break}}if((g|0)>=(_|0)){p=$e+(R*10156|0)+28|0;if((s[p>>2]|0)>=0)break;s[p>>2]=1;break}if(s[T>>2]|0){s[m>>2]=0;Ve=$e+(R*10156|0)+16|0;s[Ve>>2]=0;s[Ve+4>>2]=0;s[$e+(R*10156|0)+28>>2]=1;d=(d|0)==8?12:16;break}p=$e+(R*10156|0)+28|0;if(!(s[p>>2]|0)){s[I>>2]=1;Ve=s[Ke>>2]|0;s[Ke>>2]=Ve-((Ve*5|0)/((s[it>>2]|0)+5|0)|0);break}else{s[p>>2]=1;break}}else d=(((_|0)<(p|0)?_:p)|0)/1e3|0;while(0);v=(y|0)==0?d:y;_=zi(k,v)|0;m=s[it>>2]|0;g=$e+(R*10156|0)+4704|0;if((s[g>>2]|0)==(m|0)){d=s[E>>2]|0;m=0}else{d=(m|0)==10;e:do if(!d){switch(m|0){case 60:case 40:case 20:{b=0;break}default:if((m|0)<11){b=-103;Qe=70;break e}else b=-103}s[$e+(R*10156|0)+5836>>2]=(m|0)/20|0;s[$e+(R*10156|0)+4672>>2]=4;d=v<<16>>16;s[$e+(R*10156|0)+4676>>2]=d*20;s[$e+(R*10156|0)+4640>>2]=d*24;d=s[E>>2]|0;p=$e+(R*10156|0)+4780|0;if((d|0)==8){s[p>>2]=30064;d=8;p=b;break}else{s[p>>2]=30030;p=b;break}}else{b=0;Qe=70}while(0);do if((Qe|0)==70){Qe=0;s[$e+(R*10156|0)+5836>>2]=1;s[$e+(R*10156|0)+4672>>2]=d?2:1;d=v<<16>>16;s[$e+(R*10156|0)+4676>>2]=te(m<<16>>16,d)|0;s[$e+(R*10156|0)+4640>>2]=d*14;d=s[E>>2]|0;p=$e+(R*10156|0)+4780|0;if((d|0)==8){s[p>>2]=30087;d=8;p=b;break}else{s[p>>2]=30075;p=b;break}}while(0);s[g>>2]=m;s[$e+(R*10156|0)+4700>>2]=0;m=p}e:do if((d|0)!=(v|0)){d=$e+(R*10156|0)+7260|0;s[d>>2]=0;s[d+4>>2]=0;s[d+8>>2]=0;p=$e+(R*10156|0)+16|0;s[p>>2]=0;s[p+4>>2]=0;s[$e+(R*10156|0)+5832>>2]=0;s[$e+(R*10156|0)+5840>>2]=0;s[$e+(R*10156|0)+4700>>2]=0;kn($e+(R*10156|0)+144|0,0,4480)|0;s[$e+(R*10156|0)+4636>>2]=100;s[$e+(R*10156|0)+4756>>2]=1;r[d>>0]=10;s[$e+(R*10156|0)+4568>>2]=100;s[$e+(R*10156|0)+4584>>2]=65536;r[$e+(R*10156|0)+4633>>0]=0;s[E>>2]=v;d=s[$e+(R*10156|0)+4672>>2]|0;p=(d|0)==4;b=$e+(R*10156|0)+4780|0;t:do if((v|0)==8)if(p){s[b>>2]=30064;d=4;Qe=86;break}else{s[b>>2]=30087;Qe=86;break}else{if(p){s[b>>2]=30030;d=4}else s[b>>2]=30075;switch(v|0){case 8:case 12:{Qe=86;break t}default:{}}s[$e+(R*10156|0)+4732>>2]=16;s[$e+(R*10156|0)+4784>>2]=22936}while(0);if((Qe|0)==86){s[$e+(R*10156|0)+4732>>2]=10;s[$e+(R*10156|0)+4784>>2]=22896}s[$e+(R*10156|0)+4680>>2]=v*5;s[$e+(R*10156|0)+4676>>2]=te(v*327680>>16,d<<16>>16)|0;Ve=v<<16;Qe=Ve>>16;s[$e+(R*10156|0)+4684>>2]=Qe*20;s[$e+(R*10156|0)+4688>>2]=Ve>>15;s[$e+(R*10156|0)+4644>>2]=Qe*18;s[$e+(R*10156|0)+4640>>2]=te(Qe,(d|0)==4?24:14)|0;switch(v|0){case 16:{s[$e+(R*10156|0)+4776>>2]=29962;v=16;break e}case 12:{s[$e+(R*10156|0)+4776>>2]=29956;v=12;break e}default:{s[$e+(R*10156|0)+4776>>2]=29947;break e}}}while(0);d=_+m|0;g=s[tt>>2]|0;do if((g|0)>=1){if((g|0)<2){s[$e+(R*10156|0)+4736>>2]=1;s[$e+(R*10156|0)+4744>>2]=49807;p=$e+(R*10156|0)+4740|0;s[p>>2]=8;s[$e+(R*10156|0)+4728>>2]=14;m=v*5|0;s[$e+(R*10156|0)+4692>>2]=m;s[$e+(R*10156|0)+4720>>2]=1;s[$e+(R*10156|0)+4724>>2]=0;s[$e+(R*10156|0)+4752>>2]=3;s[$e+(R*10156|0)+4764>>2]=0;b=8;break}if((g|0)<3){s[$e+(R*10156|0)+4736>>2]=0;s[$e+(R*10156|0)+4744>>2]=52429;p=$e+(R*10156|0)+4740|0;s[p>>2]=6;s[$e+(R*10156|0)+4728>>2]=12;m=v*3|0;s[$e+(R*10156|0)+4692>>2]=m;s[$e+(R*10156|0)+4720>>2]=2;s[$e+(R*10156|0)+4724>>2]=0;s[$e+(R*10156|0)+4752>>2]=2;s[$e+(R*10156|0)+4764>>2]=0;b=6;break}if((g|0)<4){s[$e+(R*10156|0)+4736>>2]=1;s[$e+(R*10156|0)+4744>>2]=49807;p=$e+(R*10156|0)+4740|0;s[p>>2]=8;s[$e+(R*10156|0)+4728>>2]=14;m=v*5|0;s[$e+(R*10156|0)+4692>>2]=m;s[$e+(R*10156|0)+4720>>2]=2;s[$e+(R*10156|0)+4724>>2]=0;s[$e+(R*10156|0)+4752>>2]=4;s[$e+(R*10156|0)+4764>>2]=0;b=8;break}if((g|0)<6){s[$e+(R*10156|0)+4736>>2]=1;s[$e+(R*10156|0)+4744>>2]=48497;p=$e+(R*10156|0)+4740|0;s[p>>2]=10;s[$e+(R*10156|0)+4728>>2]=16;m=v*5|0;s[$e+(R*10156|0)+4692>>2]=m;s[$e+(R*10156|0)+4720>>2]=2;s[$e+(R*10156|0)+4724>>2]=1;s[$e+(R*10156|0)+4752>>2]=6;s[$e+(R*10156|0)+4764>>2]=v*983;b=10;break}p=$e+(R*10156|0)+4736|0;if((g|0)<8){s[p>>2]=1;s[$e+(R*10156|0)+4744>>2]=47186;p=$e+(R*10156|0)+4740|0;s[p>>2]=12;s[$e+(R*10156|0)+4728>>2]=20;m=v*5|0;s[$e+(R*10156|0)+4692>>2]=m;s[$e+(R*10156|0)+4720>>2]=3;s[$e+(R*10156|0)+4724>>2]=1;s[$e+(R*10156|0)+4752>>2]=8;s[$e+(R*10156|0)+4764>>2]=v*983;b=12;break}else{s[p>>2]=2;s[$e+(R*10156|0)+4744>>2]=45875;p=$e+(R*10156|0)+4740|0;s[p>>2]=16;s[$e+(R*10156|0)+4728>>2]=24;m=v*5|0;s[$e+(R*10156|0)+4692>>2]=m;s[$e+(R*10156|0)+4720>>2]=4;s[$e+(R*10156|0)+4724>>2]=1;s[$e+(R*10156|0)+4752>>2]=16;s[$e+(R*10156|0)+4764>>2]=v*983;b=16;break}}else{s[$e+(R*10156|0)+4736>>2]=0;s[$e+(R*10156|0)+4744>>2]=52429;p=$e+(R*10156|0)+4740|0;s[p>>2]=6;s[$e+(R*10156|0)+4728>>2]=12;m=v*3|0;s[$e+(R*10156|0)+4692>>2]=m;s[$e+(R*10156|0)+4720>>2]=1;s[$e+(R*10156|0)+4724>>2]=0;s[$e+(R*10156|0)+4752>>2]=2;s[$e+(R*10156|0)+4764>>2]=0;b=6}while(0);Ve=s[$e+(R*10156|0)+4732>>2]|0;s[p>>2]=(b|0)<(Ve|0)?b:Ve;s[$e+(R*10156|0)+4696>>2]=(v*5|0)+(m<<1);s[$e+(R*10156|0)+4716>>2]=g;p=s[P>>2]|0;s[$e+(R*10156|0)+4708>>2]=p;Ve=$e+(R*10156|0)+6184|0;b=s[Ve>>2]|0;Qe=s[M>>2]|0;s[Ve>>2]=Qe;do if(Qe|0)if(!b){s[$e+(R*10156|0)+6188>>2]=7;break}else{Qe=7-(((p>>16)*26214|0)+(((p&65535)*26214|0)>>>16))|0;s[$e+(R*10156|0)+6188>>2]=(Qe|0)>2?Qe:2;break}while(0);s[A>>2]=1;Qe=110}if((Qe|0)==110?(Qe=0,d|0):0){Qe=439;break}e:do if((s[$e+(R*10156|0)+4756>>2]|0)!=0|C){p=0;while(1){if((p|0)>=(s[Ze>>2]|0))break e;s[$e+(R*10156|0)+4816+(p<<2)>>2]=0;p=p+1|0}}while(0);s[$e+(R*10156|0)+6172>>2]=s[S>>2];R=R+1|0;p=0}if((Qe|0)==439){l=ot;return d|0}P=x*10|0;L=s[Ye>>2]|0;O=te(P,L)|0;N=e+4648|0;L=(te(O,s[N>>2]|0)|0)/(L*1e3|0)|0;Ge=Ne()|0;D=l;l=l+((1*(L<<1)|0)+15&-16)|0;L=e+4676|0;B=e+5832|0;ze=e+20384|0;U=e+16024|0;j=e+5868|0;F=e+5188|0;z=e+14832|0;q=e+15988|0;H=e+14824|0;G=e+15344|0;V=h+28|0;W=h+32|0;K=h+36|0;Z=h+20|0;Y=h+40|0;$=h+24|0;X=h+8|0;J=h+4|0;Q=h+44|0;ee=e+20346|0;ie=e+14972|0;ne=e+20364|0;se=e+20368|0;ae=e+4633|0;oe=e+4636|0;fe=e+4788|0;he=e+8|0;ce=e+4624|0;le=t+28|0;ue=e+20372|0;de=e+20312|0;pe=e+5192|0;be=e+15348|0;He=t+60|0;me=e+20396|0;we=e+17416|0;ge=e+10300|0;ve=e+10172|0;_e=e+14792|0;ye=e+14724|0;ke=e+14789|0;Ee=e+14740|0;Ae=e+14912|0;Se=e+10156|0;Me=e+15346|0;Te=e+14780|0;Re=e+15013|0;xe=e+16332|0;Ce=e+16328|0;Ie=e+14968|0;Pe=e+5190|0;Ve=e+4857|0;Oe=e+6176|0;De=e+6172|0;Le=st+4|0;Be=Xe<<1;Ue=Xe+-1|0;je=e+20388|0;Fe=e+20316|0;v=i;I=0;while(1){m=s[B>>2]|0;g=(s[L>>2]|0)-m|0;g=(g|0)<(O|0)?g:O;C=te(g,s[N>>2]|0)|0;C=(C|0)/((s[Ye>>2]|0)*1e3|0)|0;do if((s[t>>2]|0)==2)if((s[at>>2]|0)==2){d=s[nt>>2]|0;b=0;while(1){if((b|0)>=(C|0))break;n[D+(b<<1)>>1]=n[v+(b<<1<<1)>>1]|0;b=b+1|0}if((s[ze>>2]|0)==1&(d|0)==0)Mn(U|0,j|0,300)|0;Hi(j,F+(m+2<<1)|0,D,C);s[B>>2]=(s[B>>2]|0)+g;b=s[q>>2]|0;m=(s[z>>2]|0)-b|0;d=te(P,s[H>>2]|0)|0;d=(m|0)<(d|0)?m:d;m=0;while(1){if((m|0)>=(C|0))break;n[D+(m<<1)>>1]=n[v+((m<<1|1)<<1)>>1]|0;m=m+1|0}Hi(U,G+(b+2<<1)|0,D,C);s[q>>2]=(s[q>>2]|0)+d;d=s[B>>2]|0;break}else{if((s[at>>2]|0)==1)d=0;else{Qe=136;break}while(1){if((d|0)>=(C|0))break;i=d<<1;i=(n[v+(i<<1)>>1]|0)+(n[v+((i|1)<<1)>>1]|0)|0;n[D+(d<<1)>>1]=(i>>>1)+(i&1);d=d+1|0}Hi(j,F+(m+2<<1)|0,D,C);e:do if((s[ze>>2]|0)==2){if(s[nt>>2]|0)break;Hi(U,G+((s[q>>2]|0)+2<<1)|0,D,C);d=0;while(1){if((d|0)>=(s[L>>2]|0))break e;i=F+((s[B>>2]|0)+d+2<<1)|0;n[i>>1]=((n[i>>1]|0)+(n[G+((s[q>>2]|0)+d+2<<1)>>1]|0)|0)>>>1;d=d+1|0}}while(0);d=(s[B>>2]|0)+g|0;s[B>>2]=d;break}else Qe=136;while(0);if((Qe|0)==136){Qe=0;Mn(D|0,v|0,C<<1|0)|0;Hi(j,F+(m+2<<1)|0,D,C);d=(s[B>>2]|0)+g|0;s[B>>2]=d}R=v+((te(C,s[t>>2]|0)|0)<<1)|0;x=f-C|0;s[We>>2]=0;if((d|0)<(s[L>>2]|0)){d=0;break}if(!((s[nt>>2]|0)!=0|Je^1)){d=256>>>(te((s[Ze>>2]|0)+1|0,s[at>>2]|0)|0);i=s[V>>2]|0;d=i-(te(i>>>8,0-d&255)|0)|0;s[V>>2]=d;while(1){if(d>>>0>=8388609){_=0;break}b=s[W>>2]|0;g=b>>>23;if((g|0)==255)s[K>>2]=(s[K>>2]|0)+1;else{m=b>>>31;d=s[Y>>2]|0;if((d|0)>-1){b=s[$>>2]|0;if((b+(s[X>>2]|0)|0)>>>0<(s[J>>2]|0)>>>0){s[$>>2]=b+1;r[(s[h>>2]|0)+b>>0]=d+m;d=0}else d=-1;s[Q>>2]=s[Q>>2]|d}d=s[K>>2]|0;if(d|0){m=m+255&255;do{b=s[$>>2]|0;if((b+(s[X>>2]|0)|0)>>>0<(s[J>>2]|0)>>>0){s[$>>2]=b+1;r[(s[h>>2]|0)+b>>0]=m;b=0;d=s[K>>2]|0}else b=-1;s[Q>>2]=s[Q>>2]|b;d=d+-1|0;s[K>>2]=d}while((d|0)!=0)}s[Y>>2]=g&255;b=s[W>>2]|0;d=s[V>>2]|0}s[W>>2]=b<<8&2147483392;d=d<<8;s[V>>2]=d;s[Z>>2]=(s[Z>>2]|0)+8}while(1){d=s[at>>2]|0;if((_|0)>=(d|0)){T=0;break}b=s[$e+(_*10156|0)+5836>>2]|0;v=0;d=0;while(1){if((d|0)>=(b|0))break;v=v|s[$e+(_*10156|0)+4816+(d<<2)>>2]<>0]=(v|0)>0&1;e:do if((v|0)!=0&(b|0)>1){g=v+-1|0;d=s[17520+(b+-2<<2)>>2]|0;b=s[V>>2]|0;m=b>>>8;if((v|0)>1){i=d+(v+-2)|0;T=b-(te(m,a[i>>0]|0)|0)|0;s[W>>2]=(s[W>>2]|0)+T;d=te(m,(a[i>>0]|0)-(a[d+g>>0]|0)|0)|0}else d=b-(te(m,a[d+g>>0]|0)|0)|0;s[V>>2]=d;while(1){if(d>>>0>=8388609)break e;b=s[W>>2]|0;g=b>>>23;if((g|0)==255)s[K>>2]=(s[K>>2]|0)+1;else{m=b>>>31;d=s[Y>>2]|0;if((d|0)>-1){b=s[$>>2]|0;if((b+(s[X>>2]|0)|0)>>>0<(s[J>>2]|0)>>>0){s[$>>2]=b+1;r[(s[h>>2]|0)+b>>0]=d+m;d=0}else d=-1;s[Q>>2]=s[Q>>2]|d}d=s[K>>2]|0;if(d|0){m=m+255&255;do{b=s[$>>2]|0;if((b+(s[X>>2]|0)|0)>>>0<(s[J>>2]|0)>>>0){s[$>>2]=b+1;r[(s[h>>2]|0)+b>>0]=m;b=0;d=s[K>>2]|0}else b=-1;s[Q>>2]=s[Q>>2]|b;d=d+-1|0;s[K>>2]=d}while((d|0)!=0)}s[Y>>2]=g&255;b=s[W>>2]|0;d=s[V>>2]|0}s[W>>2]=b<<8&2147483392;d=d<<8;s[V>>2]=d;s[Z>>2]=(s[Z>>2]|0)+8}}while(0);_=_+1|0}while(1){if((T|0)>=(s[Ze>>2]|0)){b=0;break}y=ee+(T*6|0)+2|0;k=ee+(T*6|0)+5|0;E=ie+(T<<2)|0;A=ne+T|0;S=(T|0)>0;M=T+-1|0;_=0;while(1){if((_|0)>=(d|0))break;if(s[$e+(_*10156|0)+4816+(T<<2)>>2]|0){e:do if((d|0)==2&(_|0)==0){d=((r[y>>0]|0)*5|0)+(r[k>>0]|0)|0;b=s[V>>2]|0;m=b>>>8;if((d|0)>0){i=a[29891+(d+-1)>>0]|0;v=b-(te(m,i)|0)|0;s[W>>2]=(s[W>>2]|0)+v;d=te(m,i-(a[29891+d>>0]|0)|0)|0}else d=b-(te(m,a[29891+d>>0]|0)|0)|0;s[V>>2]=d;while(1){if(d>>>0>=8388609){v=0;break}b=s[W>>2]|0;g=b>>>23;if((g|0)==255)s[K>>2]=(s[K>>2]|0)+1;else{m=b>>>31;d=s[Y>>2]|0;if((d|0)>-1){b=s[$>>2]|0;if((b+(s[X>>2]|0)|0)>>>0<(s[J>>2]|0)>>>0){s[$>>2]=b+1;r[(s[h>>2]|0)+b>>0]=d+m;d=0}else d=-1;s[Q>>2]=s[Q>>2]|d}d=s[K>>2]|0;if(d|0){m=m+255&255;do{b=s[$>>2]|0;if((b+(s[X>>2]|0)|0)>>>0<(s[J>>2]|0)>>>0){s[$>>2]=b+1;r[(s[h>>2]|0)+b>>0]=m;b=0;d=s[K>>2]|0}else b=-1;s[Q>>2]=s[Q>>2]|b;d=d+-1|0;s[K>>2]=d}while((d|0)!=0)}s[Y>>2]=g&255;b=s[W>>2]|0;d=s[V>>2]|0}s[W>>2]=b<<8&2147483392;d=d<<8;s[V>>2]=d;s[Z>>2]=(s[Z>>2]|0)+8}while(1){if((v|0)==2)break;i=r[ee+(T*6|0)+(v*3|0)>>0]|0;b=i<<24>>24;m=d>>>8;if(i<<24>>24>0){i=a[29944+(b+-1)>>0]|0;d=d-(te(m,i)|0)|0;s[W>>2]=(s[W>>2]|0)+d;d=te(m,i-(a[29944+b>>0]|0)|0)|0}else d=d-(te(m,a[29944+b>>0]|0)|0)|0;s[V>>2]=d;while(1){if(d>>>0>=8388609)break;b=s[W>>2]|0;g=b>>>23;if((g|0)==255)s[K>>2]=(s[K>>2]|0)+1;else{m=b>>>31;d=s[Y>>2]|0;if((d|0)>-1){b=s[$>>2]|0;if((b+(s[X>>2]|0)|0)>>>0<(s[J>>2]|0)>>>0){s[$>>2]=b+1;r[(s[h>>2]|0)+b>>0]=d+m;d=0}else d=-1;s[Q>>2]=s[Q>>2]|d}d=s[K>>2]|0;if(d|0){m=m+255&255;do{b=s[$>>2]|0;if((b+(s[X>>2]|0)|0)>>>0<(s[J>>2]|0)>>>0){s[$>>2]=b+1;r[(s[h>>2]|0)+b>>0]=m;b=0;d=s[K>>2]|0}else b=-1;s[Q>>2]=s[Q>>2]|b;d=d+-1|0;s[K>>2]=d}while((d|0)!=0)}s[Y>>2]=g&255;b=s[W>>2]|0;d=s[V>>2]|0}s[W>>2]=b<<8&2147483392;d=d<<8;s[V>>2]=d;s[Z>>2]=(s[Z>>2]|0)+8}i=r[ee+(T*6|0)+(v*3|0)+1>>0]|0;b=i<<24>>24;m=d>>>8;if(i<<24>>24>0){i=a[29951+(b+-1)>>0]|0;d=d-(te(m,i)|0)|0;s[W>>2]=(s[W>>2]|0)+d;d=te(m,i-(a[29951+b>>0]|0)|0)|0}else d=d-(te(m,a[29951+b>>0]|0)|0)|0;s[V>>2]=d;while(1){if(d>>>0>=8388609)break;b=s[W>>2]|0;g=b>>>23;if((g|0)==255)s[K>>2]=(s[K>>2]|0)+1;else{m=b>>>31;d=s[Y>>2]|0;if((d|0)>-1){b=s[$>>2]|0;if((b+(s[X>>2]|0)|0)>>>0<(s[J>>2]|0)>>>0){s[$>>2]=b+1;r[(s[h>>2]|0)+b>>0]=d+m;d=0}else d=-1;s[Q>>2]=s[Q>>2]|d}d=s[K>>2]|0;if(d|0){m=m+255&255;do{b=s[$>>2]|0;if((b+(s[X>>2]|0)|0)>>>0<(s[J>>2]|0)>>>0){s[$>>2]=b+1;r[(s[h>>2]|0)+b>>0]=m;b=0;d=s[K>>2]|0}else b=-1;s[Q>>2]=s[Q>>2]|b;d=d+-1|0;s[K>>2]=d}while((d|0)!=0)}s[Y>>2]=g&255;b=s[W>>2]|0;d=s[V>>2]|0}s[W>>2]=b<<8&2147483392;d=d<<8;s[V>>2]=d;s[Z>>2]=(s[Z>>2]|0)+8}v=v+1|0}if(s[E>>2]|0)break;i=r[A>>0]|0;b=i<<24>>24;m=d>>>8;if(i<<24>>24>0){i=a[29916+(b+-1)>>0]|0;d=d-(te(m,i)|0)|0;s[W>>2]=(s[W>>2]|0)+d;d=te(m,i-(a[29916+b>>0]|0)|0)|0}else d=d-(te(m,a[29916+b>>0]|0)|0)|0;s[V>>2]=d;while(1){if(d>>>0>=8388609)break e;b=s[W>>2]|0;g=b>>>23;if((g|0)==255)s[K>>2]=(s[K>>2]|0)+1;else{m=b>>>31;b=s[Y>>2]|0;if((b|0)>-1){d=s[$>>2]|0;if((d+(s[X>>2]|0)|0)>>>0<(s[J>>2]|0)>>>0){s[$>>2]=d+1;r[(s[h>>2]|0)+d>>0]=b+m;d=0}else d=-1;s[Q>>2]=s[Q>>2]|d}d=s[K>>2]|0;if(d|0){m=m+255&255;do{b=s[$>>2]|0;if((b+(s[X>>2]|0)|0)>>>0<(s[J>>2]|0)>>>0){s[$>>2]=b+1;r[(s[h>>2]|0)+b>>0]=m;b=0;d=s[K>>2]|0}else b=-1;s[Q>>2]=s[Q>>2]|b;d=d+-1|0;s[K>>2]=d}while((d|0)!=0)}s[Y>>2]=g&255;b=s[W>>2]|0;d=s[V>>2]|0}s[W>>2]=b<<8&2147483392;d=d<<8;s[V>>2]=d;s[Z>>2]=(s[Z>>2]|0)+8}}while(0);if(S?(s[$e+(_*10156|0)+4816+(M<<2)>>2]|0)!=0:0)d=2;else d=0;Di($e+(_*10156|0)|0,h,T,1,d);Li(h,r[$e+(_*10156|0)+6192+(T*36|0)+29>>0]|0,r[$e+(_*10156|0)+6192+(T*36|0)+30>>0]|0,$e+(_*10156|0)+6300+(T*320|0)|0,s[$e+(_*10156|0)+4676>>2]|0);d=s[at>>2]|0}_=_+1|0}T=T+1|0}while(1){if((b|0)>=(d|0))break;d=$e+(b*10156|0)+4816|0;s[d>>2]=0;s[d+4>>2]=0;s[d+8>>2]=0;d=s[at>>2]|0;b=b+1|0}s[se>>2]=(s[Z>>2]|0)+((re(s[V>>2]|0)|0)+-32)}if((r[ae>>0]|0)==2){d=te(s[Ye>>2]|0,65536e3)|0;d=(d|0)/(s[oe>>2]|0)|0;g=re(d|0)|0;b=24-g|0;m=0-b|0;do if(b)if((b|0)<0){d=d<>>(b+32|0);break}else{d=d<<32-b|d>>>b;break}while(0);S=d&127;S=S+(((te(S,128-S|0)|0)*179|0)>>>16)+(31-g<<7)|0;T=s[fe>>2]|0;i=0-T<<2;T=T<<16>>16;M=te(i>>16,T)|0;T=te(i&65532,T)|0;i=(S<<16)+-183762944>>16;i=S+-2048+((te(M+(T>>16)>>16,i)|0)+((te(M+(T>>>16)&65535,i)|0)>>16))|0;T=s[he>>2]|0;i=i-(T>>8)|0;i=(i|0)<0?i*3|0:i;i=te(s[ce>>2]<<16>>16,(i|0)>51?51:((i|0)<-51?-51:i)<<16>>16)|0;i=T+(((i>>16)*6554|0)+(((i&65535)*6554|0)>>>16))|0;s[he>>2]=(i|0)>217856?217856:(i|0)<193536?193536:i}g=s[le>>2]|0;b=s[it>>2]|0;d=(te(g,b)|0)/1e3|0;if(Je)d=d-(s[se>>2]|0)|0;m=(d|0)/(s[Ze>>2]|0)|0;d=te(m<<16>>16,(b|0)==10?100:50)|0;d=d-(s[ue>>2]<<1)|0;do if(Je){b=s[nt>>2]|0;if((b|0)<=0)break;i=(s[Z>>2]|0)+((re(s[V>>2]|0)|0)+-32)|0;d=d-(i-(s[se>>2]|0)-(te(m,b)|0)<<1)|0}while(0);do if((g|0)>5e3){if((d|0)>(g|0))break;g=(d|0)<5e3?5e3:d}else{if((d|0)>5e3){g=5e3;break}g=(d|0)<(g|0)?g:d}while(0);e:do if((s[at>>2]|0)==2){d=s[nt>>2]|0;Ui(de,pe,be,ee+(d*6|0)|0,ne+d|0,st,g,s[ce>>2]|0,s[He>>2]|0,s[Ye>>2]|0,s[L>>2]|0);d=s[nt>>2]|0;do if(!(r[ne+d>>0]|0)){if((s[me>>2]|0)==1){s[we>>2]=0;s[we+4>>2]=0;s[we+8>>2]=0;i=ve;s[i>>2]=0;s[i+4>>2]=0;kn(ge|0,0,4480)|0;s[_e>>2]=100;s[ye>>2]=100;r[we>>0]=10;r[ke>>0]=0;s[Ee>>2]=65536;s[Ae>>2]=1}Er(Se,Me);if((s[Te>>2]|0)>=13){s[xe>>2]=0;s[Ce>>2]=0;r[Re>>0]=1;r[(s[rt>>2]|0)+(Se+4812)>>0]=1;break}r[Re>>0]=0;d=s[xe>>2]|0;i=d+1|0;s[xe>>2]=i;do if((i|0)<10)s[Ce>>2]=0;else{if((d|0)<=29)break;s[xe>>2]=10;s[Ce>>2]=0}while(0);r[(s[rt>>2]|0)+(Se+4812)>>0]=0}else r[Ie+d>>0]=0;while(0);if(!Je)break;y=s[nt>>2]|0;d=((r[ee+(y*6|0)+2>>0]|0)*5|0)+(r[ee+(y*6|0)+5>>0]|0)|0;b=s[V>>2]|0;m=b>>>8;if((d|0)>0){i=a[29891+(d+-1)>>0]|0;T=b-(te(m,i)|0)|0;s[W>>2]=(s[W>>2]|0)+T;d=te(m,i-(a[29891+d>>0]|0)|0)|0}else d=b-(te(m,a[29891+d>>0]|0)|0)|0;s[V>>2]=d;while(1){if(d>>>0>=8388609){m=d;_=0;break}b=s[W>>2]|0;v=b>>>23;if((v|0)==255)s[K>>2]=(s[K>>2]|0)+1;else{m=b>>>31;d=s[Y>>2]|0;if((d|0)>-1){b=s[$>>2]|0;if((b+(s[X>>2]|0)|0)>>>0<(s[J>>2]|0)>>>0){s[$>>2]=b+1;r[(s[h>>2]|0)+b>>0]=d+m;d=0}else d=-1;s[Q>>2]=s[Q>>2]|d}d=s[K>>2]|0;if(d|0){m=m+255&255;do{b=s[$>>2]|0;if((b+(s[X>>2]|0)|0)>>>0<(s[J>>2]|0)>>>0){s[$>>2]=b+1;r[(s[h>>2]|0)+b>>0]=m;b=0;d=s[K>>2]|0}else b=-1;s[Q>>2]=s[Q>>2]|b;d=d+-1|0;s[K>>2]=d}while((d|0)!=0)}s[Y>>2]=v&255;b=s[W>>2]|0;d=s[V>>2]|0}s[W>>2]=b<<8&2147483392;d=d<<8;s[V>>2]=d;s[Z>>2]=(s[Z>>2]|0)+8}while(1){if((_|0)==2)break;i=r[ee+(y*6|0)+(_*3|0)>>0]|0;d=i<<24>>24;b=m>>>8;if(i<<24>>24>0){i=a[29944+(d+-1)>>0]|0;T=m-(te(b,i)|0)|0;s[W>>2]=(s[W>>2]|0)+T;d=te(b,i-(a[29944+d>>0]|0)|0)|0}else d=m-(te(b,a[29944+d>>0]|0)|0)|0;s[V>>2]=d;while(1){if(d>>>0>=8388609)break;b=s[W>>2]|0;v=b>>>23;if((v|0)==255)s[K>>2]=(s[K>>2]|0)+1;else{m=b>>>31;d=s[Y>>2]|0;if((d|0)>-1){b=s[$>>2]|0;if((b+(s[X>>2]|0)|0)>>>0<(s[J>>2]|0)>>>0){s[$>>2]=b+1;r[(s[h>>2]|0)+b>>0]=d+m;d=0}else d=-1;s[Q>>2]=s[Q>>2]|d}d=s[K>>2]|0;if(d|0){m=m+255&255;do{b=s[$>>2]|0;if((b+(s[X>>2]|0)|0)>>>0<(s[J>>2]|0)>>>0){s[$>>2]=b+1;r[(s[h>>2]|0)+b>>0]=m;b=0;d=s[K>>2]|0}else b=-1;s[Q>>2]=s[Q>>2]|b;d=d+-1|0;s[K>>2]=d}while((d|0)!=0)}s[Y>>2]=v&255;b=s[W>>2]|0;d=s[V>>2]|0}s[W>>2]=b<<8&2147483392;d=d<<8;s[V>>2]=d;s[Z>>2]=(s[Z>>2]|0)+8}i=r[ee+(y*6|0)+(_*3|0)+1>>0]|0;b=i<<24>>24;m=d>>>8;if(i<<24>>24>0){i=a[29951+(b+-1)>>0]|0;d=d-(te(m,i)|0)|0;s[W>>2]=(s[W>>2]|0)+d;d=te(m,i-(a[29951+b>>0]|0)|0)|0}else d=d-(te(m,a[29951+b>>0]|0)|0)|0;s[V>>2]=d;while(1){if(d>>>0>=8388609)break;b=s[W>>2]|0;v=b>>>23;if((v|0)==255)s[K>>2]=(s[K>>2]|0)+1;else{m=b>>>31;d=s[Y>>2]|0;if((d|0)>-1){b=s[$>>2]|0;if((b+(s[X>>2]|0)|0)>>>0<(s[J>>2]|0)>>>0){s[$>>2]=b+1;r[(s[h>>2]|0)+b>>0]=d+m;d=0}else d=-1;s[Q>>2]=s[Q>>2]|d}d=s[K>>2]|0;if(d|0){m=m+255&255;do{b=s[$>>2]|0;if((b+(s[X>>2]|0)|0)>>>0<(s[J>>2]|0)>>>0){s[$>>2]=b+1;r[(s[h>>2]|0)+b>>0]=m;b=0;d=s[K>>2]|0}else b=-1;s[Q>>2]=s[Q>>2]|b;d=d+-1|0;s[K>>2]=d}while((d|0)!=0)}s[Y>>2]=v&255;b=s[W>>2]|0;d=s[V>>2]|0}s[W>>2]=b<<8&2147483392;d=d<<8;s[V>>2]=d;s[Z>>2]=(s[Z>>2]|0)+8}m=d;_=_+1|0}d=s[nt>>2]|0;if(r[Ie+d>>0]|0)break;i=r[ne+d>>0]|0;d=i<<24>>24;b=m>>>8;if(i<<24>>24>0){i=a[29916+(d+-1)>>0]|0;T=m-(te(b,i)|0)|0;s[W>>2]=(s[W>>2]|0)+T;d=te(b,i-(a[29916+d>>0]|0)|0)|0}else d=m-(te(b,a[29916+d>>0]|0)|0)|0;s[V>>2]=d;while(1){if(d>>>0>=8388609)break e;b=s[W>>2]|0;v=b>>>23;if((v|0)==255)s[K>>2]=(s[K>>2]|0)+1;else{m=b>>>31;d=s[Y>>2]|0;if((d|0)>-1){b=s[$>>2]|0;if((b+(s[X>>2]|0)|0)>>>0<(s[J>>2]|0)>>>0){s[$>>2]=b+1;r[(s[h>>2]|0)+b>>0]=d+m;d=0}else d=-1;s[Q>>2]=s[Q>>2]|d}d=s[K>>2]|0;if(d|0){m=m+255&255;do{b=s[$>>2]|0;if((b+(s[X>>2]|0)|0)>>>0<(s[J>>2]|0)>>>0){s[$>>2]=b+1;r[(s[h>>2]|0)+b>>0]=m;b=0;d=s[K>>2]|0}else b=-1;s[Q>>2]=s[Q>>2]|b;d=d+-1|0;s[K>>2]=d}while((d|0)!=0)}s[Y>>2]=v&255;b=s[W>>2]|0;d=s[V>>2]|0}s[W>>2]=b<<8&2147483392;d=d<<8;s[V>>2]=d;s[Z>>2]=(s[Z>>2]|0)+8}}else{s[F>>2]=s[Fe>>2];i=F+(s[L>>2]<<1)|0;i=o[i>>1]|o[i+2>>1]<<16;n[Fe>>1]=i;n[Fe+2>>1]=i>>>16}while(0);Er(e,Pe);if((s[ce>>2]|0)<13){r[Ve>>0]=0;d=s[Oe>>2]|0;i=d+1|0;s[Oe>>2]=i;do if((i|0)<10)s[De>>2]=0;else{if((d|0)<=29)break;s[Oe>>2]=10;s[De>>2]=0}while(0);r[(s[nt>>2]|0)+(e+4812)>>0]=0}else{s[Oe>>2]=0;s[De>>2]=0;r[Ve>>0]=1;r[(s[nt>>2]|0)+(e+4812)>>0]=1}y=(I|0)==0;k=s[Le>>2]|0;E=(I|0)==(Ue|0);A=(I|0)==1;S=0;while(1){d=s[at>>2]|0;if((S|0)>=(d|0))break;b=s[Ke>>2]|0;e:do switch(Xe|0){case 2:{if(!y){m=b;break e}m=(b*3|0)/5|0;break}case 3:{if(y){m=(b<<1|0)/5|0;break e}if(!A){m=b;break e}m=(b*3|0)/4|0;break}default:m=b}while(0);v=E&(s[et>>2]|0)!=0&1;do if((d|0)==1){d=g;_=v}else{d=s[st+(S<<2)>>2]|0;if((S|0)!=0|(k|0)<1){_=v;break}m=m-((b|0)/(Be|0)|0)|0;_=0}while(0);if((d|0)>0){p=(d|0)>8e4?8e4:(d|0)<5e3?5e3:d;d=$e+(S*10156|0)+4700|0;e:do if((p|0)!=(s[d>>2]|0)){s[d>>2]=p;v=s[$e+(S*10156|0)+4668>>2]|0;v=(v|0)==8?17424:(v|0)==12?17456:17488;d=(s[$e+(S*10156|0)+4672>>2]|0)==2?p+-2200|0:p;b=1;while(1){if((b|0)>=8)break e;p=s[v+(b<<2)>>2]|0;if((d|0)<=(p|0))break;b=b+1|0}i=b+-1|0;T=s[v+(i<<2)>>2]|0;i=n[25356+(i<<1)>>1]|0;s[$e+(S*10156|0)+4808>>2]=(i<<6)+(te((d-T<<6|0)/(p-T|0)|0,(n[25356+(b<<1)>>1]|0)-i|0)|0)}while(0);do if((s[nt>>2]|0)>(S|0)){if((S|0)>0?s[me>>2]|0:0){d=1;break}d=2}else d=0;while(0);p=Xi($e+(S*10156|0)|0,c,h,d,m,_)|0}s[$e+(S*10156|0)+4760>>2]=0;s[$e+(S*10156|0)+5832>>2]=0;i=$e+(S*10156|0)+5840|0;s[i>>2]=(s[i>>2]|0)+1;S=S+1|0}m=s[nt>>2]|0;s[me>>2]=r[ne+(m+-1)>>0];do if((s[c>>2]|0)>0){if((m|0)!=(s[Ze>>2]|0))break;g=s[at>>2]|0;y=0;_=0;while(1){if((_|0)>=(g|0))break;v=s[$e+(_*10156|0)+5836>>2]|0;d=y;b=0;while(1){d=d<<1;if((b|0)>=(v|0))break;d=d|r[$e+(_*10156|0)+4812+b>>0];b=b+1|0}y=d|r[$e+(_*10156|0)+4815>>0];_=_+1|0}do if(Je){d=te(m+1|0,g)|0;b=8-d|0;m=(1<>2]|0){i=s[h>>2]|0;r[i>>0]=a[i>>0]&(m^255)|y<>2]|0;if((g|0)>-1){s[Y>>2]=g&~m|y<>2]|0)>>>0>-2147483648>>>d>>>0){s[Q>>2]=-1;break}else{s[W>>2]=s[W>>2]&~(m<<23)|y<>2]|0){if((s[at>>2]|0)!=1?(s[Ce>>2]|0)==0:0)break;s[c>>2]=0}while(0);d=(s[ue>>2]|0)+(s[c>>2]<<3)|0;s[ue>>2]=d;d=d-((te(s[le>>2]|0,s[it>>2]|0)|0)/1e3|0)|0;s[ue>>2]=(d|0)>1e4?1e4:(d|0)<0?0:d;d=s[je>>2]|0;if((s[ce>>2]|0)<(((d<<16>>16)*3188>>16)+13|0)){s[We>>2]=1;s[je>>2]=0;break}else{s[We>>2]=0;s[je>>2]=d+(s[it>>2]|0);break}}while(0);if((f|0)==(C|0)){Qe=428;break}v=R;f=x;I=I+1|0}if((Qe|0)==428)d=s[We>>2]|0;s[ze>>2]=s[at>>2];s[t+76>>2]=d;if((s[Ye>>2]|0)==16)d=(s[e+28>>2]|0)==0;else d=0;s[t+80>>2]=d&1;s[t+72>>2]=(s[Ye>>2]<<16>>16)*1e3;if(!(s[He>>2]|0))d=n[e+20340>>1]|0;else d=0;s[t+84>>2]=d;e:do if(!Je){s[it>>2]=w;s[tt>>2]=u;d=0;while(1){if((d|0)>=(s[at>>2]|0))break e;s[$e+(d*10156|0)+4760>>2]=0;s[$e+(d*10156|0)+4772>>2]=0;d=d+1|0}}while(0);s[t+92>>2]=r[Ve>>0];s[t+96>>2]=n[25404+(r[Ve>>0]>>1<<2)+(r[e+4858>>0]<<1)>>1];qe(Ge|0);e=p;l=ot;return e|0}function Di(e,t,i,o,f){e=e|0;t=t|0;i=i|0;o=o|0;f=f|0;var h=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0,I=0;I=l;l=l+48|0;E=I;y=I+32|0;R=(o|0)==0;C=R?e+4828|0:e+6192+(i*36|0)|0;x=C+29|0;c=(r[x>>0]<<1)+(r[C+30>>0]|0)|0;e:do if((c|0)>1|R^1){i=c+-2|0;_=t+28|0;o=s[_>>2]|0;h=o>>>8;if((c|0)>2){R=a[29933+(c+-3)>>0]|0;T=o-(te(h,R)|0)|0;u=t+32|0;s[u>>2]=(s[u>>2]|0)+T;i=te(h,R-(a[29933+i>>0]|0)|0)|0;s[_>>2]=i}else{i=o-(te(h,a[29933+i>>0]|0)|0)|0;s[_>>2]=i;u=t+32|0}d=t+36|0;p=t+20|0;b=t+40|0;m=t+24|0;w=t+8|0;g=t+4|0;v=t+44|0;while(1){if(i>>>0>=8388609){c=i;break e}o=s[u>>2]|0;c=o>>>23;if((c|0)==255)s[d>>2]=(s[d>>2]|0)+1;else{h=o>>>31;i=s[b>>2]|0;if((i|0)>-1){o=s[m>>2]|0;if((o+(s[w>>2]|0)|0)>>>0<(s[g>>2]|0)>>>0){s[m>>2]=o+1;r[(s[t>>2]|0)+o>>0]=i+h;i=0}else i=-1;s[v>>2]=s[v>>2]|i}i=s[d>>2]|0;if(i|0){h=h+255&255;do{o=s[m>>2]|0;if((o+(s[w>>2]|0)|0)>>>0<(s[g>>2]|0)>>>0){s[m>>2]=o+1;r[(s[t>>2]|0)+o>>0]=h;o=0;i=s[d>>2]|0}else o=-1;s[v>>2]=s[v>>2]|o;i=i+-1|0;s[d>>2]=i}while((i|0)!=0)}s[b>>2]=c&255;o=s[u>>2]|0;i=s[_>>2]|0}s[u>>2]=o<<8&2147483392;i=i<<8;s[_>>2]=i;s[p>>2]=(s[p>>2]|0)+8}}else{_=t+28|0;i=s[_>>2]|0;o=i>>>8;if((c|0)>0){R=a[29937+(c+-1)>>0]|0;i=i-(te(o,R)|0)|0;u=t+32|0;s[u>>2]=(s[u>>2]|0)+i;i=te(o,R-(a[29937+c>>0]|0)|0)|0;s[_>>2]=i}else{i=i-(te(o,a[29937+c>>0]|0)|0)|0;s[_>>2]=i;u=t+32|0}d=t+36|0;p=t+20|0;b=t+40|0;m=t+24|0;w=t+8|0;g=t+4|0;v=t+44|0;while(1){if(i>>>0>=8388609){c=i;break e}o=s[u>>2]|0;c=o>>>23;if((c|0)==255)s[d>>2]=(s[d>>2]|0)+1;else{h=o>>>31;i=s[b>>2]|0;if((i|0)>-1){o=s[m>>2]|0;if((o+(s[w>>2]|0)|0)>>>0<(s[g>>2]|0)>>>0){s[m>>2]=o+1;r[(s[t>>2]|0)+o>>0]=i+h;i=0}else i=-1;s[v>>2]=s[v>>2]|i}i=s[d>>2]|0;if(i|0){h=h+255&255;do{o=s[m>>2]|0;if((o+(s[w>>2]|0)|0)>>>0<(s[g>>2]|0)>>>0){s[m>>2]=o+1;r[(s[t>>2]|0)+o>>0]=h;o=0;i=s[d>>2]|0}else o=-1;s[v>>2]=s[v>>2]|o;i=i+-1|0;s[d>>2]=i}while((i|0)!=0)}s[b>>2]=c&255;o=s[u>>2]|0;i=s[_>>2]|0}s[u>>2]=o<<8&2147483392;i=i<<8;s[_>>2]=i;s[p>>2]=(s[p>>2]|0)+8}}while(0);k=(f|0)==2;i=r[C>>0]|0;o=i<<24>>24;e:do if(k){b=t+28|0;h=c>>>8;if(i<<24>>24>0){i=a[29396+(o+-1)>>0]|0;R=c-(te(h,i)|0)|0;u=t+32|0;s[u>>2]=(s[u>>2]|0)+R;i=te(h,i-(a[29396+o>>0]|0)|0)|0;s[b>>2]=i}else{i=c-(te(h,a[29396+o>>0]|0)|0)|0;s[b>>2]=i;u=t+32|0}d=t+36|0;p=t+20|0;m=t+40|0;w=t+24|0;g=t+8|0;v=t+4|0;_=t+44|0;while(1){if(i>>>0>=8388609){R=u;T=d;M=v;break e}o=s[u>>2]|0;c=o>>>23;if((c|0)==255)s[d>>2]=(s[d>>2]|0)+1;else{h=o>>>31;i=s[m>>2]|0;if((i|0)>-1){o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[v>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=i+h;i=0}else i=-1;s[_>>2]=s[_>>2]|i}i=s[d>>2]|0;if(i|0){h=h+255&255;do{o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[v>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=h;o=0;i=s[d>>2]|0}else o=-1;s[_>>2]=s[_>>2]|o;i=i+-1|0;s[d>>2]=i}while((i|0)!=0)}s[m>>2]=c&255;o=s[u>>2]|0;i=s[b>>2]|0}s[u>>2]=o<<8&2147483392;i=i<<8;s[b>>2]=i;s[p>>2]=(s[p>>2]|0)+8}}else{i=o>>3;o=r[x>>0]|0;b=t+28|0;h=c>>>8;if((i|0)>0){R=a[i+-1+(29372+(o<<3))>>0]|0;T=c-(te(h,R)|0)|0;u=t+32|0;s[u>>2]=(s[u>>2]|0)+T;i=te(h,R-(a[29372+(o<<3)+i>>0]|0)|0)|0;s[b>>2]=i}else{i=c-(te(h,a[29372+(o<<3)+i>>0]|0)|0)|0;s[b>>2]=i;u=t+32|0}d=t+36|0;p=t+20|0;m=t+40|0;w=t+24|0;g=t+8|0;v=t+4|0;_=t+44|0;while(1){if(i>>>0>=8388609)break;o=s[u>>2]|0;c=o>>>23;if((c|0)==255)s[d>>2]=(s[d>>2]|0)+1;else{h=o>>>31;i=s[m>>2]|0;if((i|0)>-1){o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[v>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=i+h;i=0}else i=-1;s[_>>2]=s[_>>2]|i}i=s[d>>2]|0;if(i|0){h=h+255&255;do{o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[v>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=h; -o=0;i=s[d>>2]|0}else o=-1;s[_>>2]=s[_>>2]|o;i=i+-1|0;s[d>>2]=i}while((i|0)!=0)}s[m>>2]=c&255;o=s[u>>2]|0;i=s[b>>2]|0}s[u>>2]=o<<8&2147483392;i=i<<8;s[b>>2]=i;s[p>>2]=(s[p>>2]|0)+8}o=a[C>>0]&7;h=i>>>8;c=r[29962+o>>0]|0;if(!o)i=i-(te(h,c&255)|0)|0;else{R=a[29962+(o+-1)>>0]|0;i=i-(te(h,R)|0)|0;s[u>>2]=(s[u>>2]|0)+i;i=te(h,R-(c&255)|0)|0}s[b>>2]=i;while(1){if(i>>>0>=8388609){R=u;T=d;M=v;break e}o=s[u>>2]|0;c=o>>>23;if((c|0)==255)s[d>>2]=(s[d>>2]|0)+1;else{h=o>>>31;i=s[m>>2]|0;if((i|0)>-1){o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[v>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=i+h;i=0}else i=-1;s[_>>2]=s[_>>2]|i}i=s[d>>2]|0;if(i|0){h=h+255&255;do{o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[v>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=h;o=0;i=s[d>>2]|0}else o=-1;s[_>>2]=s[_>>2]|o;i=i+-1|0;s[d>>2]=i}while((i|0)!=0)}s[m>>2]=c&255;o=s[u>>2]|0;i=s[b>>2]|0}s[u>>2]=o<<8&2147483392;i=i<<8;s[b>>2]=i;s[p>>2]=(s[p>>2]|0)+8}}while(0);A=e+4672|0;u=1;while(1){if((u|0)>=(s[A>>2]|0))break;v=r[C+u>>0]|0;o=v<<24>>24;h=i>>>8;if(v<<24>>24>0){v=a[29396+(o+-1)>>0]|0;i=i-(te(h,v)|0)|0;s[R>>2]=(s[R>>2]|0)+i;i=te(h,v-(a[29396+o>>0]|0)|0)|0}else i=i-(te(h,a[29396+o>>0]|0)|0)|0;s[b>>2]=i;while(1){if(i>>>0>=8388609)break;o=s[R>>2]|0;c=o>>>23;if((c|0)==255)s[T>>2]=(s[T>>2]|0)+1;else{h=o>>>31;i=s[m>>2]|0;if((i|0)>-1){o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=i+h;i=0}else i=-1;s[_>>2]=s[_>>2]|i}i=s[T>>2]|0;if(i|0){h=h+255&255;do{o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=h;o=0;i=s[T>>2]|0}else o=-1;s[_>>2]=s[_>>2]|o;i=i+-1|0;s[T>>2]=i}while((i|0)!=0)}s[m>>2]=c&255;o=s[R>>2]|0;i=s[b>>2]|0}s[R>>2]=o<<8&2147483392;i=i<<8;s[b>>2]=i;s[p>>2]=(s[p>>2]|0)+8}u=u+1|0}u=C+8|0;d=r[u>>0]|0;o=d<<24>>24;v=e+4784|0;c=s[v>>2]|0;h=te(r[x>>0]>>1,n[c>>1]|0)|0;h=(s[c+16>>2]|0)+h|0;c=i>>>8;if(d<<24>>24>0){d=h+(o+-1)|0;i=i-(te(c,a[d>>0]|0)|0)|0;s[R>>2]=(s[R>>2]|0)+i;i=te(c,(a[d>>0]|0)-(a[h+o>>0]|0)|0)|0}else i=i-(te(c,a[h+o>>0]|0)|0)|0;s[b>>2]=i;while(1){if(i>>>0>=8388609)break;o=s[R>>2]|0;c=o>>>23;if((c|0)==255)s[T>>2]=(s[T>>2]|0)+1;else{h=o>>>31;i=s[m>>2]|0;if((i|0)>-1){o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=i+h;i=0}else i=-1;s[_>>2]=s[_>>2]|i}i=s[T>>2]|0;if(i|0){h=h+255&255;do{o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=h;o=0;i=s[T>>2]|0}else o=-1;s[_>>2]=s[_>>2]|o;i=i+-1|0;s[T>>2]=i}while((i|0)!=0)}s[m>>2]=c&255;o=s[R>>2]|0;i=s[b>>2]|0}s[R>>2]=o<<8&2147483392;i=i<<8;s[b>>2]=i;s[p>>2]=(s[p>>2]|0)+8}Bi(E,y,s[v>>2]|0,r[u>>0]|0);h=0;e:while(1){i=s[v>>2]|0;if((h|0)>=(n[i+2>>1]|0))break;d=h+1|0;u=C+8+d|0;o=r[u>>0]|0;if(o<<24>>24>3){i=(s[i+28>>2]|0)+(n[E+(h<<1)>>1]|0)|0;o=s[b>>2]|0;c=o>>>8;y=i+7|0;o=o-(te(c,a[y>>0]|0)|0)|0;o=(s[R>>2]|0)+o|0;s[R>>2]=o;i=te(c,(a[y>>0]|0)-(a[i+8>>0]|0)|0)|0;s[b>>2]=i;while(1){if(i>>>0>=8388609)break;c=o>>>23;if((c|0)==255)s[T>>2]=(s[T>>2]|0)+1;else{h=o>>>31;i=s[m>>2]|0;if((i|0)>-1){o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=i+h;i=0}else i=-1;s[_>>2]=s[_>>2]|i}i=s[T>>2]|0;if(i|0){h=h+255&255;do{o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=h;o=0;i=s[T>>2]|0}else o=-1;s[_>>2]=s[_>>2]|o;i=i+-1|0;s[T>>2]=i}while((i|0)!=0)}s[m>>2]=c&255;o=s[R>>2]|0;i=s[b>>2]|0}o=o<<8&2147483392;s[R>>2]=o;i=i<<8;s[b>>2]=i;s[p>>2]=(s[p>>2]|0)+8}y=r[u>>0]|0;h=y<<24>>24;c=h+-4|0;u=i>>>8;if(y<<24>>24>4){y=a[29970+(h+-5)>>0]|0;o=o+(i-(te(u,y)|0))|0;s[R>>2]=o;i=te(u,y-(a[29970+c>>0]|0)|0)|0}else i=i-(te(u,a[29970+c>>0]|0)|0)|0;s[b>>2]=i;while(1){if(i>>>0>=8388609){h=d;continue e}c=o>>>23;if((c|0)==255)s[T>>2]=(s[T>>2]|0)+1;else{h=o>>>31;i=s[m>>2]|0;if((i|0)>-1){o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=i+h;i=0}else i=-1;s[_>>2]=s[_>>2]|i}i=s[T>>2]|0;if(i|0){h=h+255&255;do{o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=h;o=0;i=s[T>>2]|0}else o=-1;s[_>>2]=s[_>>2]|o;i=i+-1|0;s[T>>2]=i}while((i|0)!=0)}s[m>>2]=c&255;o=s[R>>2]|0;i=s[b>>2]|0}o=o<<8&2147483392;s[R>>2]=o;i=i<<8;s[b>>2]=i;s[p>>2]=(s[p>>2]|0)+8}}if(o<<24>>24>=-3){y=o<<24>>24;i=(s[i+28>>2]|0)+(n[E+(h<<1)>>1]|0)|0;h=s[b>>2]|0;c=h>>>8;u=i+(y+3)|0;h=h-(te(c,a[u>>0]|0)|0)|0;s[R>>2]=(s[R>>2]|0)+h;i=te(c,(a[u>>0]|0)-(a[i+(y+4)>>0]|0)|0)|0;s[b>>2]=i;while(1){if(i>>>0>=8388609){h=d;continue e}o=s[R>>2]|0;c=o>>>23;if((c|0)==255)s[T>>2]=(s[T>>2]|0)+1;else{h=o>>>31;i=s[m>>2]|0;if((i|0)>-1){o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=i+h;i=0}else i=-1;s[_>>2]=s[_>>2]|i}i=s[T>>2]|0;if(i|0){h=h+255&255;do{o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=h;o=0;i=s[T>>2]|0}else o=-1;s[_>>2]=s[_>>2]|o;i=i+-1|0;s[T>>2]=i}while((i|0)!=0)}s[m>>2]=c&255;o=s[R>>2]|0;i=s[b>>2]|0}s[R>>2]=o<<8&2147483392;i=i<<8;s[b>>2]=i;s[p>>2]=(s[p>>2]|0)+8}}y=s[b>>2]|0;i=y-(te(y>>>8,a[(s[i+28>>2]|0)+(n[E+(h<<1)>>1]|0)>>0]|0)|0)|0;s[b>>2]=i;while(1){if(i>>>0>=8388609)break;o=s[R>>2]|0;c=o>>>23;if((c|0)==255)s[T>>2]=(s[T>>2]|0)+1;else{h=o>>>31;i=s[m>>2]|0;if((i|0)>-1){o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=i+h;i=0}else i=-1;s[_>>2]=s[_>>2]|i}i=s[T>>2]|0;if(i|0){h=h+255&255;do{o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=h;o=0;i=s[T>>2]|0}else o=-1;s[_>>2]=s[_>>2]|o;i=i+-1|0;s[T>>2]=i}while((i|0)!=0)}s[m>>2]=c&255;o=s[R>>2]|0;i=s[b>>2]|0}s[R>>2]=o<<8&2147483392;i=i<<8;s[b>>2]=i;s[p>>2]=(s[p>>2]|0)+8}o=-4-(r[u>>0]|0)|0;h=i>>>8;if((o|0)>0){y=a[29970+(o+-1)>>0]|0;i=i-(te(h,y)|0)|0;s[R>>2]=(s[R>>2]|0)+i;i=te(h,y-(a[29970+o>>0]|0)|0)|0}else i=i-(te(h,a[29970+o>>0]|0)|0)|0;s[b>>2]=i;while(1){if(i>>>0>=8388609){h=d;continue e}o=s[R>>2]|0;c=o>>>23;if((c|0)==255)s[T>>2]=(s[T>>2]|0)+1;else{h=o>>>31;i=s[m>>2]|0;if((i|0)>-1){o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=i+h;i=0}else i=-1;s[_>>2]=s[_>>2]|i}i=s[T>>2]|0;if(i|0){h=h+255&255;do{o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=h;o=0;i=s[T>>2]|0}else o=-1;s[_>>2]=s[_>>2]|o;i=i+-1|0;s[T>>2]=i}while((i|0)!=0)}s[m>>2]=c&255;o=s[R>>2]|0;i=s[b>>2]|0}s[R>>2]=o<<8&2147483392;i=i<<8;s[b>>2]=i;s[p>>2]=(s[p>>2]|0)+8}}e:do if((s[A>>2]|0)==4){E=r[C+31>>0]|0;i=E<<24>>24;o=s[b>>2]|0;h=o>>>8;if(E<<24>>24>0){E=a[29939+(i+-1)>>0]|0;y=o-(te(h,E)|0)|0;s[R>>2]=(s[R>>2]|0)+y;i=te(h,E-(a[29939+i>>0]|0)|0)|0}else i=o-(te(h,a[29939+i>>0]|0)|0)|0;s[b>>2]=i;while(1){if(i>>>0>=8388609)break e;o=s[R>>2]|0;c=o>>>23;if((c|0)==255)s[T>>2]=(s[T>>2]|0)+1;else{h=o>>>31;i=s[m>>2]|0;if((i|0)>-1){o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=i+h;i=0}else i=-1;s[_>>2]=s[_>>2]|i}i=s[T>>2]|0;if(i|0){h=h+255&255;do{o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=h;o=0;i=s[T>>2]|0}else o=-1;s[_>>2]=s[_>>2]|o;i=i+-1|0;s[T>>2]=i}while((i|0)!=0)}s[m>>2]=c&255;o=s[R>>2]|0;i=s[b>>2]|0}s[R>>2]=o<<8&2147483392;i=i<<8;s[b>>2]=i;s[p>>2]=(s[p>>2]|0)+8}}while(0);e:do if((r[x>>0]|0)==2){if(k?(s[e+5860>>2]|0)==2:0){o=C+26|0;i=e+5864|0;h=(n[o>>1]|0)-(n[i>>1]|0)|0;if((h+8|0)>>>0<=19){d=h+9|0;c=s[b>>2]|0;u=c>>>8;if((h|0)>-9){h=a[30009+(h+8)>>0]|0;v=c-(te(u,h)|0)|0;s[R>>2]=(s[R>>2]|0)+v;v=0;h=te(u,h-(a[30009+d>>0]|0)|0)|0}else{h=0;S=243}}else{c=s[b>>2]|0;u=c>>>8;d=0;h=1;S=243}if((S|0)==243){v=h;h=c-(te(u,a[30009+d>>0]|0)|0)|0}s[b>>2]=h;while(1){if(h>>>0>=8388609)break;c=s[R>>2]|0;d=c>>>23;if((d|0)==255)s[T>>2]=(s[T>>2]|0)+1;else{u=c>>>31;h=s[m>>2]|0;if((h|0)>-1){c=s[w>>2]|0;if((c+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=c+1;r[(s[t>>2]|0)+c>>0]=h+u;h=0}else h=-1;s[_>>2]=s[_>>2]|h}h=s[T>>2]|0;if(h|0){u=u+255&255;do{c=s[w>>2]|0;if((c+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=c+1;r[(s[t>>2]|0)+c>>0]=u;c=0;h=s[T>>2]|0}else c=-1;s[_>>2]=s[_>>2]|c;h=h+-1|0;s[T>>2]=h}while((h|0)!=0)}s[m>>2]=d&255;c=s[R>>2]|0;h=s[b>>2]|0}s[R>>2]=c<<8&2147483392;h=h<<8;s[b>>2]=h;s[p>>2]=(s[p>>2]|0)+8}if(v)S=260}else S=260;if((S|0)==260){o=C+26|0;h=n[o>>1]|0;d=s[e+4668>>2]|0;i=(h|0)/(d>>1|0)|0;d=h-(te(i<<16>>16,d<<15>>16)|0)|0;h=s[b>>2]|0;c=h>>>8;if((i|0)>0){S=a[29977+(i+-1)>>0]|0;E=h-(te(c,S)|0)|0;s[R>>2]=(s[R>>2]|0)+E;i=te(c,S-(a[29977+i>>0]|0)|0)|0}else i=h-(te(c,a[29977+i>>0]|0)|0)|0;s[b>>2]=i;while(1){if(i>>>0>=8388609)break;h=s[R>>2]|0;u=h>>>23;if((u|0)==255)s[T>>2]=(s[T>>2]|0)+1;else{c=h>>>31;i=s[m>>2]|0;if((i|0)>-1){h=s[w>>2]|0;if((h+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=h+1;r[(s[t>>2]|0)+h>>0]=i+c;i=0}else i=-1;s[_>>2]=s[_>>2]|i}i=s[T>>2]|0;if(i|0){c=c+255&255;do{h=s[w>>2]|0;if((h+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=h+1;r[(s[t>>2]|0)+h>>0]=c;h=0;i=s[T>>2]|0}else h=-1;s[_>>2]=s[_>>2]|h;i=i+-1|0;s[T>>2]=i}while((i|0)!=0)}s[m>>2]=u&255;h=s[R>>2]|0;i=s[b>>2]|0}s[R>>2]=h<<8&2147483392;i=i<<8;s[b>>2]=i;s[p>>2]=(s[p>>2]|0)+8}h=s[e+4776>>2]|0;c=i>>>8;if((d|0)>0){S=h+(d+-1)|0;i=i-(te(c,a[S>>0]|0)|0)|0;s[R>>2]=(s[R>>2]|0)+i;i=te(c,(a[S>>0]|0)-(a[h+d>>0]|0)|0)|0}else i=i-(te(c,a[h+d>>0]|0)|0)|0;s[b>>2]=i;while(1){if(i>>>0>=8388609)break;h=s[R>>2]|0;u=h>>>23;if((u|0)==255)s[T>>2]=(s[T>>2]|0)+1;else{c=h>>>31;i=s[m>>2]|0;if((i|0)>-1){h=s[w>>2]|0;if((h+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=h+1;r[(s[t>>2]|0)+h>>0]=i+c;i=0}else i=-1;s[_>>2]=s[_>>2]|i}i=s[T>>2]|0;if(i|0){c=c+255&255;do{h=s[w>>2]|0;if((h+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=h+1;r[(s[t>>2]|0)+h>>0]=c;h=0;i=s[T>>2]|0}else h=-1;s[_>>2]=s[_>>2]|h;i=i+-1|0;s[T>>2]=i}while((i|0)!=0)}s[m>>2]=u&255;h=s[R>>2]|0;i=s[b>>2]|0}s[R>>2]=h<<8&2147483392;i=i<<8;s[b>>2]=i;s[p>>2]=(s[p>>2]|0)+8}i=e+5864|0}n[i>>1]=n[o>>1]|0;S=r[C+28>>0]|0;i=S<<24>>24;o=s[e+4780>>2]|0;h=s[b>>2]|0;c=h>>>8;if(S<<24>>24>0){S=o+(i+-1)|0;E=h-(te(c,a[S>>0]|0)|0)|0;s[R>>2]=(s[R>>2]|0)+E;i=te(c,(a[S>>0]|0)-(a[o+i>>0]|0)|0)|0}else i=h-(te(c,a[o+i>>0]|0)|0)|0;s[b>>2]=i;while(1){if(i>>>0>=8388609)break;o=s[R>>2]|0;c=o>>>23;if((c|0)==255)s[T>>2]=(s[T>>2]|0)+1;else{h=o>>>31;i=s[m>>2]|0;if((i|0)>-1){o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=i+h;i=0}else i=-1;s[_>>2]=s[_>>2]|i}i=s[T>>2]|0;if(i|0){h=h+255&255;do{o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=h;o=0;i=s[T>>2]|0}else o=-1;s[_>>2]=s[_>>2]|o;i=i+-1|0;s[T>>2]=i}while((i|0)!=0)}s[m>>2]=c&255;o=s[R>>2]|0;i=s[b>>2]|0}s[R>>2]=o<<8&2147483392;i=i<<8;s[b>>2]=i;s[p>>2]=(s[p>>2]|0)+8}d=C+32|0;S=r[d>>0]|0;o=S<<24>>24;h=i>>>8;if(S<<24>>24>0){S=a[29437+(o+-1)>>0]|0;i=i-(te(h,S)|0)|0;s[R>>2]=(s[R>>2]|0)+i;i=te(h,S-(a[29437+o>>0]|0)|0)|0}else i=i-(te(h,a[29437+o>>0]|0)|0)|0;s[b>>2]=i;while(1){if(i>>>0>=8388609){c=i;u=0;break}o=s[R>>2]|0;c=o>>>23;if((c|0)==255)s[T>>2]=(s[T>>2]|0)+1;else{h=o>>>31;i=s[m>>2]|0;if((i|0)>-1){o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=i+h;i=0}else i=-1;s[_>>2]=s[_>>2]|i}i=s[T>>2]|0;if(i|0){h=h+255&255;do{o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=h;o=0;i=s[T>>2]|0}else o=-1;s[_>>2]=s[_>>2]|o;i=i+-1|0;s[T>>2]=i}while((i|0)!=0)}s[m>>2]=c&255;o=s[R>>2]|0;i=s[b>>2]|0}s[R>>2]=o<<8&2147483392;i=i<<8;s[b>>2]=i;s[p>>2]=(s[p>>2]|0)+8}while(1){if((u|0)>=(s[A>>2]|0))break;S=r[C+4+u>>0]|0;i=S<<24>>24;o=s[17376+(r[d>>0]<<2)>>2]|0;h=c>>>8;if(S<<24>>24>0){S=o+(i+-1)|0;E=c-(te(h,a[S>>0]|0)|0)|0;s[R>>2]=(s[R>>2]|0)+E;i=te(h,(a[S>>0]|0)-(a[o+i>>0]|0)|0)|0}else i=c-(te(h,a[o+i>>0]|0)|0)|0;s[b>>2]=i;while(1){if(i>>>0>=8388609)break;o=s[R>>2]|0;c=o>>>23;if((c|0)==255)s[T>>2]=(s[T>>2]|0)+1;else{h=o>>>31;i=s[m>>2]|0;if((i|0)>-1){o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=i+h;i=0}else i=-1;s[_>>2]=s[_>>2]|i}i=s[T>>2]|0;if(i|0){h=h+255&255;do{o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=h;o=0;i=s[T>>2]|0}else o=-1;s[_>>2]=s[_>>2]|o;i=i+-1|0;s[T>>2]=i}while((i|0)!=0)}s[m>>2]=c&255;o=s[R>>2]|0;i=s[b>>2]|0}s[R>>2]=o<<8&2147483392;i=i<<8;s[b>>2]=i;s[p>>2]=(s[p>>2]|0)+8}c=i;u=u+1|0}if(!f){f=r[C+33>>0]|0;i=f<<24>>24;o=c>>>8;if(f<<24>>24>0){f=a[29930+(i+-1)>>0]|0;S=c-(te(o,f)|0)|0;s[R>>2]=(s[R>>2]|0)+S;i=te(o,f-(a[29930+i>>0]|0)|0)|0}else i=c-(te(o,a[29930+i>>0]|0)|0)|0;s[b>>2]=i;while(1){if(i>>>0>=8388609)break e;o=s[R>>2]|0;c=o>>>23;if((c|0)==255)s[T>>2]=(s[T>>2]|0)+1;else{h=o>>>31;i=s[m>>2]|0;if((i|0)>-1){o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=i+h;i=0}else i=-1;s[_>>2]=s[_>>2]|i}i=s[T>>2]|0;if(i|0){h=h+255&255;do{o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=h;o=0;i=s[T>>2]|0}else o=-1;s[_>>2]=s[_>>2]|o;i=i+-1|0;s[T>>2]=i}while((i|0)!=0)}s[m>>2]=c&255;o=s[R>>2]|0;i=s[b>>2]|0}s[R>>2]=o<<8&2147483392;i=i<<8;s[b>>2]=i;s[p>>2]=(s[p>>2]|0)+8}}}while(0);s[e+5860>>2]=r[x>>0];e=r[C+34>>0]|0;i=e<<24>>24;o=s[b>>2]|0;h=o>>>8;if(e<<24>>24>0){e=a[29947+(i+-1)>>0]|0;C=o-(te(h,e)|0)|0;s[R>>2]=(s[R>>2]|0)+C;i=te(h,e-(a[29947+i>>0]|0)|0)|0}else i=o-(te(h,a[29947+i>>0]|0)|0)|0;s[b>>2]=i;while(1){if(i>>>0>=8388609)break;o=s[R>>2]|0;c=o>>>23;if((c|0)==255)s[T>>2]=(s[T>>2]|0)+1;else{h=o>>>31;i=s[m>>2]|0;if((i|0)>-1){o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=i+h;i=0}else i=-1;s[_>>2]=s[_>>2]|i}i=s[T>>2]|0;if(i|0){h=h+255&255;do{o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=h;o=0;i=s[T>>2]|0}else o=-1;s[_>>2]=s[_>>2]|o;i=i+-1|0;s[T>>2]=i}while((i|0)!=0)}s[m>>2]=c&255;o=s[R>>2]|0;i=s[b>>2]|0}s[R>>2]=o<<8&2147483392;i=i<<8;s[b>>2]=i;s[p>>2]=(s[p>>2]|0)+8}l=I;return}function Li(e,t,i,n,o){e=e|0;t=t|0;i=i|0;n=n|0;o=o|0;var f=0,h=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0,I=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,q=0,H=0,G=0,V=0;V=l;l=l+96|0;G=V+56|0;I=V+40|0;P=V+32|0;w=V;s[w>>2]=0;s[w+4>>2]=0;s[w+8>>2]=0;s[w+12>>2]=0;s[w+16>>2]=0;s[w+20>>2]=0;s[w+24>>2]=0;s[w+28>>2]=0;f=o>>4;if((f<<4|0)<(o|0)){f=f+1|0;h=n+o|0;c=h+16|0;do{r[h>>0]=0;h=h+1|0}while((h|0)<(c|0))}h=f<<4;C=l;l=l+((1*(h<<2)|0)+15&-16)|0;c=0;while(1){if((c|0)>=(h|0))break;z=r[n+c>>0]|0;H=z<<24>>24;s[C+(c<<2)>>2]=z<<24>>24>0?H:0-H|0;H=c|1;z=r[n+H>>0]|0;q=z<<24>>24;s[C+(H<<2)>>2]=z<<24>>24>0?q:0-q|0;H=c|2;q=r[n+H>>0]|0;z=q<<24>>24;s[C+(H<<2)>>2]=q<<24>>24>0?z:0-z|0;H=c|3;z=r[n+H>>0]|0;q=z<<24>>24;s[C+(H<<2)>>2]=z<<24>>24>0?q:0-q|0;c=c+4|0}H=l;l=l+((1*(f<<2)|0)+15&-16)|0;O=l;l=l+((1*(f<<2)|0)+15&-16)|0;b=C;m=0;while(1){if((m|0)>=(f|0))break;d=O+(m<<2)|0;s[d>>2]=0;p=H+(m<<2)|0;c=0;e:while(1){if((c|0)<8){h=c<<1;h=(s[b+(h<<2)>>2]|0)+(s[b+((h|1)<<2)>>2]|0)|0;if((h|0)>8)u=1;else{s[w+(c<<2)>>2]=h;c=c+1|0;continue}}else u=0;c=0;while(1){if((c|0)>=4){h=0;break}h=c<<1;h=(s[w+(h<<2)>>2]|0)+(s[w+((h|1)<<2)>>2]|0)|0;if((h|0)>10){h=1;break}s[w+(c<<2)>>2]=h;c=c+1|0}u=u+h|0;c=0;while(1){if((c|0)>=2){h=0;break}h=c<<1;h=(s[w+(h<<2)>>2]|0)+(s[w+((h|1)<<2)>>2]|0)|0;if((h|0)>12){h=1;break}s[w+(c<<2)>>2]=h;c=c+1|0}u=u+h|0;c=0;while(1){if((c|0)>=1){h=0;break}h=c<<1;h=(s[w+(h<<2)>>2]|0)+(s[w+((h|1)<<2)>>2]|0)|0;if((h|0)>16){h=1;break}s[p+(c<<2)>>2]=h;c=c+1|0}if((u|0)==(0-h|0))break;s[d>>2]=(s[d>>2]|0)+1;h=0;while(1){if((h|0)==16){c=0;continue e}q=b+(h<<2)|0;s[q>>2]=s[q>>2]>>1;h=h+1|0}}b=b+64|0;m=m+1|0}m=t>>1;v=0;d=0;p=2147483647;while(1){if((d|0)==9)break;c=30270+(d*18|0)+17|0;u=0;b=a[30450+(m*9|0)+d>>0]|0;while(1){if((u|0)>=(f|0))break;if((s[O+(u<<2)>>2]|0)>0)h=c;else h=(s[H+(u<<2)>>2]|0)+(30270+(d*18|0))|0;u=u+1|0;b=b+(a[h>>0]|0)|0}q=(b|0)<(p|0);v=q?d:v;d=d+1|0;p=q?b:p}q=e+28|0;h=s[q>>2]|0;c=h>>>8;if((v|0)>0){z=a[v+-1+(30432+(m*9|0))>>0]|0;h=h-(te(c,z)|0)|0;N=e+32|0;s[N>>2]=(s[N>>2]|0)+h;h=te(c,z-(a[30432+(m*9|0)+v>>0]|0)|0)|0;s[q>>2]=h}else{h=h-(te(c,a[30432+(m*9|0)+v>>0]|0)|0)|0;s[q>>2]=h;N=e+32|0}D=e+36|0;L=e+20|0;B=e+40|0;U=e+24|0;j=e+8|0;F=e+4|0;z=e+44|0;while(1){if(h>>>0>=8388609)break;c=s[N>>2]|0;d=c>>>23;if((d|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{u=c>>>31;h=s[B>>2]|0;if((h|0)>-1){c=s[U>>2]|0;if((c+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=c+1;r[(s[e>>2]|0)+c>>0]=h+u;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){u=u+255&255;do{c=s[U>>2]|0;if((c+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=c+1;r[(s[e>>2]|0)+c>>0]=u;c=0;h=s[D>>2]|0}else c=-1;s[z>>2]=s[z>>2]|c;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=d&255;c=s[N>>2]|0;h=s[q>>2]|0}s[N>>2]=c<<8&2147483392;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}w=30090+(v*18|0)+16|0;g=30090+(v*18|0)+17|0;m=0;while(1){if((m|0)>=(f|0))break;p=s[O+(m<<2)>>2]|0;e:do if(!p){c=s[H+(m<<2)>>2]|0;u=h>>>8;if((c|0)>0){x=a[c+-1+(30090+(v*18|0))>>0]|0;h=h-(te(u,x)|0)|0;s[N>>2]=(s[N>>2]|0)+h;h=te(u,x-(a[30090+(v*18|0)+c>>0]|0)|0)|0}else h=h-(te(u,a[30090+(v*18|0)+c>>0]|0)|0)|0;s[q>>2]=h;while(1){if(h>>>0>=8388609)break e;c=s[N>>2]|0;d=c>>>23;if((d|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{u=c>>>31;h=s[B>>2]|0;if((h|0)>-1){c=s[U>>2]|0;if((c+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=c+1;r[(s[e>>2]|0)+c>>0]=h+u;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){u=u+255&255;do{c=s[U>>2]|0;if((c+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=c+1;r[(s[e>>2]|0)+c>>0]=u;c=0;h=s[D>>2]|0}else c=-1;s[z>>2]=s[z>>2]|c;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=d&255;c=s[N>>2]|0;h=s[q>>2]|0}s[N>>2]=c<<8&2147483392;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}}else{R=h>>>8;x=a[w>>0]|0;c=h-(te(R,x)|0)|0;c=(s[N>>2]|0)+c|0;s[N>>2]=c;h=te(R,x-(a[g>>0]|0)|0)|0;s[q>>2]=h;while(1){if(h>>>0>=8388609)break;d=c>>>23;if((d|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{u=c>>>31;h=s[B>>2]|0;if((h|0)>-1){c=s[U>>2]|0;if((c+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=c+1;r[(s[e>>2]|0)+c>>0]=h+u;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){u=u+255&255;do{c=s[U>>2]|0;if((c+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=c+1;r[(s[e>>2]|0)+c>>0]=u;c=0;h=s[D>>2]|0}else c=-1;s[z>>2]=s[z>>2]|c;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=d&255;c=s[N>>2]|0;h=s[q>>2]|0}c=c<<8&2147483392;s[N>>2]=c;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}b=p+-1|0;p=0;while(1){if((p|0)>=(b|0))break;x=h>>>8<<1;c=c+(h-x)|0;s[N>>2]=c;s[q>>2]=x;h=x;while(1){if(h>>>0>=8388609)break;d=c>>>23;if((d|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{u=c>>>31;h=s[B>>2]|0;if((h|0)>-1){c=s[U>>2]|0;if((c+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=c+1;r[(s[e>>2]|0)+c>>0]=h+u;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){u=u+255&255;do{c=s[U>>2]|0;if((c+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=c+1;r[(s[e>>2]|0)+c>>0]=u;c=0;h=s[D>>2]|0}else c=-1;s[z>>2]=s[z>>2]|c;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=d&255;c=s[N>>2]|0;h=s[q>>2]|0}c=c<<8&2147483392;s[N>>2]=c;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}p=p+1|0}u=s[H+(m<<2)>>2]|0;d=h>>>8;if((u|0)>0){x=a[30252+(u+-1)>>0]|0;c=c+(h-(te(d,x)|0))|0;s[N>>2]=c;h=te(d,x-(a[30252+u>>0]|0)|0)|0}else h=h-(te(d,a[30252+u>>0]|0)|0)|0;s[q>>2]=h;while(1){if(h>>>0>=8388609)break e;d=c>>>23;if((d|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{u=c>>>31;h=s[B>>2]|0;if((h|0)>-1){c=s[U>>2]|0;if((c+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=c+1;r[(s[e>>2]|0)+c>>0]=h+u;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){u=u+255&255;do{c=s[U>>2]|0;if((c+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=c+1;r[(s[e>>2]|0)+c>>0]=u;c=0;h=s[D>>2]|0}else c=-1;s[z>>2]=s[z>>2]|c;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=d&255;c=s[N>>2]|0;h=s[q>>2]|0}c=c<<8&2147483392;s[N>>2]=c;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}}while(0);m=m+1|0}v=G+4|0;_=G+8|0;y=I+4|0;k=G+12|0;E=I+8|0;A=P+4|0;S=G+16|0;M=G+20|0;T=G+24|0;R=I+12|0;x=G+28|0;g=0;c=0;while(1){if((g|0)>=(f|0)){v=0;break}if((s[H+(g<<2)>>2]|0)>0){w=C+(g<<4<<2)|0;u=0;while(1){if((u|0)==8){u=0;break}m=u<<1;s[G+(u<<2)>>2]=(s[w+(m<<2)>>2]|0)+(s[w+((m|1)<<2)>>2]|0);u=u+1|0}while(1){if((u|0)==4){u=0;break}m=u<<1;s[I+(u<<2)>>2]=(s[G+(m<<2)>>2]|0)+(s[G+((m|1)<<2)>>2]|0);u=u+1|0}while(1){if((u|0)==2){u=0;break}m=u<<1;s[P+(u<<2)>>2]=(s[I+(m<<2)>>2]|0)+(s[I+((m|1)<<2)>>2]|0);u=u+1|0}while(1){if((u|0)==1)break;c=u<<1;u=u+1|0;c=(s[P+(c<<2)>>2]|0)+(s[P+((c|1)<<2)>>2]|0)|0}b=s[P>>2]|0;e:do if((c|0)>0){u=30924+(a[31076+c>>0]|0)|0;d=h>>>8;if((b|0)>0){m=a[u+(b+-1)>>0]|0;h=h-(te(d,m)|0)|0;s[N>>2]=(s[N>>2]|0)+h;h=te(d,m-(a[u+b>>0]|0)|0)|0}else h=h-(te(d,a[u+b>>0]|0)|0)|0;s[q>>2]=h;while(1){if(h>>>0>=8388609)break e;u=s[N>>2]|0;p=u>>>23;if((p|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{d=u>>>31;h=s[B>>2]|0;if((h|0)>-1){u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=h+d;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){d=d+255&255;do{u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=d;u=0;h=s[D>>2]|0}else u=-1;s[z>>2]=s[z>>2]|u;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=p&255;u=s[N>>2]|0;h=s[q>>2]|0}s[N>>2]=u<<8&2147483392;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}}while(0);m=s[I>>2]|0;e:do if((b|0)>0){u=30772+(a[31076+b>>0]|0)|0;d=h>>>8;if((m|0)>0){b=a[u+(m+-1)>>0]|0;h=h-(te(d,b)|0)|0;s[N>>2]=(s[N>>2]|0)+h;h=te(d,b-(a[u+m>>0]|0)|0)|0}else h=h-(te(d,a[u+m>>0]|0)|0)|0;s[q>>2]=h;while(1){if(h>>>0>=8388609)break e;u=s[N>>2]|0;p=u>>>23;if((p|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{d=u>>>31;h=s[B>>2]|0;if((h|0)>-1){u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=h+d;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){d=d+255&255;do{u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=d;u=0;h=s[D>>2]|0}else u=-1;s[z>>2]=s[z>>2]|u;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=p&255;u=s[N>>2]|0;h=s[q>>2]|0}s[N>>2]=u<<8&2147483392;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}}while(0);b=s[G>>2]|0;e:do if((m|0)>0){u=30620+(a[31076+m>>0]|0)|0;d=h>>>8;if((b|0)>0){m=a[u+(b+-1)>>0]|0;h=h-(te(d,m)|0)|0;s[N>>2]=(s[N>>2]|0)+h;h=te(d,m-(a[u+b>>0]|0)|0)|0}else h=h-(te(d,a[u+b>>0]|0)|0)|0;s[q>>2]=h;while(1){if(h>>>0>=8388609)break e;u=s[N>>2]|0;p=u>>>23;if((p|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{d=u>>>31;h=s[B>>2]|0;if((h|0)>-1){u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=h+d;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){d=d+255&255;do{u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=d;u=0;h=s[D>>2]|0}else u=-1;s[z>>2]=s[z>>2]|u;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=p&255;u=s[N>>2]|0;h=s[q>>2]|0}s[N>>2]=u<<8&2147483392;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}}while(0);p=s[w>>2]|0;e:do if((b|0)>0){u=30468+(a[31076+b>>0]|0)|0;d=h>>>8;if((p|0)>0){m=a[u+(p+-1)>>0]|0;h=h-(te(d,m)|0)|0;s[N>>2]=(s[N>>2]|0)+h;h=te(d,m-(a[u+p>>0]|0)|0)|0}else h=h-(te(d,a[u+p>>0]|0)|0)|0;s[q>>2]=h;while(1){if(h>>>0>=8388609)break e;u=s[N>>2]|0;p=u>>>23;if((p|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{d=u>>>31;h=s[B>>2]|0;if((h|0)>-1){u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=h+d;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){d=d+255&255;do{u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=d;u=0;h=s[D>>2]|0}else u=-1;s[z>>2]=s[z>>2]|u;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=p&255;u=s[N>>2]|0;h=s[q>>2]|0}s[N>>2]=u<<8&2147483392;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}}while(0);p=s[w+8>>2]|0;u=s[v>>2]|0;e:do if((u|0)>0){u=30468+(a[31076+u>>0]|0)|0;d=h>>>8;if((p|0)>0){m=a[u+(p+-1)>>0]|0;h=h-(te(d,m)|0)|0;s[N>>2]=(s[N>>2]|0)+h;h=te(d,m-(a[u+p>>0]|0)|0)|0}else h=h-(te(d,a[u+p>>0]|0)|0)|0;s[q>>2]=h;while(1){if(h>>>0>=8388609)break e;u=s[N>>2]|0;p=u>>>23;if((p|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{d=u>>>31;h=s[B>>2]|0;if((h|0)>-1){u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=h+d;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){d=d+255&255;do{u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=d;u=0;h=s[D>>2]|0}else u=-1;s[z>>2]=s[z>>2]|u;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=p&255;u=s[N>>2]|0;h=s[q>>2]|0}s[N>>2]=u<<8&2147483392;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}}while(0);b=s[_>>2]|0;u=s[y>>2]|0;e:do if((u|0)>0){u=30620+(a[31076+u>>0]|0)|0;d=h>>>8;if((b|0)>0){m=a[u+(b+-1)>>0]|0;h=h-(te(d,m)|0)|0;s[N>>2]=(s[N>>2]|0)+h;h=te(d,m-(a[u+b>>0]|0)|0)|0}else h=h-(te(d,a[u+b>>0]|0)|0)|0;s[q>>2]=h;while(1){if(h>>>0>=8388609)break e;u=s[N>>2]|0;p=u>>>23;if((p|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{d=u>>>31;h=s[B>>2]|0;if((h|0)>-1){u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=h+d;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){d=d+255&255;do{u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=d;u=0;h=s[D>>2]|0}else u=-1;s[z>>2]=s[z>>2]|u;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=p&255;u=s[N>>2]|0;h=s[q>>2]|0}s[N>>2]=u<<8&2147483392;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}}while(0);p=s[w+16>>2]|0;e:do if((b|0)>0){u=30468+(a[31076+b>>0]|0)|0;d=h>>>8;if((p|0)>0){m=a[u+(p+-1)>>0]|0;h=h-(te(d,m)|0)|0;s[N>>2]=(s[N>>2]|0)+h;h=te(d,m-(a[u+p>>0]|0)|0)|0}else h=h-(te(d,a[u+p>>0]|0)|0)|0;s[q>>2]=h;while(1){if(h>>>0>=8388609)break e;u=s[N>>2]|0;p=u>>>23;if((p|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{d=u>>>31;h=s[B>>2]|0;if((h|0)>-1){u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=h+d;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){d=d+255&255;do{u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=d;u=0;h=s[D>>2]|0}else u=-1;s[z>>2]=s[z>>2]|u;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=p&255;u=s[N>>2]|0;h=s[q>>2]|0}s[N>>2]=u<<8&2147483392;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}}while(0);p=s[w+24>>2]|0;u=s[k>>2]|0;e:do if((u|0)>0){u=30468+(a[31076+u>>0]|0)|0;d=h>>>8;if((p|0)>0){m=a[u+(p+-1)>>0]|0;h=h-(te(d,m)|0)|0;s[N>>2]=(s[N>>2]|0)+h;h=te(d,m-(a[u+p>>0]|0)|0)|0}else h=h-(te(d,a[u+p>>0]|0)|0)|0;s[q>>2]=h;while(1){if(h>>>0>=8388609)break e;u=s[N>>2]|0;p=u>>>23;if((p|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{d=u>>>31;h=s[B>>2]|0;if((h|0)>-1){u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=h+d;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){d=d+255&255;do{u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=d;u=0;h=s[D>>2]|0}else u=-1;s[z>>2]=s[z>>2]|u;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=p&255;u=s[N>>2]|0;h=s[q>>2]|0}s[N>>2]=u<<8&2147483392;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}}while(0);b=s[E>>2]|0;u=s[A>>2]|0;e:do if((u|0)>0){u=30772+(a[31076+u>>0]|0)|0;d=h>>>8;if((b|0)>0){m=a[u+(b+-1)>>0]|0;h=h-(te(d,m)|0)|0;s[N>>2]=(s[N>>2]|0)+h;h=te(d,m-(a[u+b>>0]|0)|0)|0}else h=h-(te(d,a[u+b>>0]|0)|0)|0;s[q>>2]=h;while(1){if(h>>>0>=8388609)break e;u=s[N>>2]|0;p=u>>>23;if((p|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{d=u>>>31;h=s[B>>2]|0;if((h|0)>-1){u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=h+d;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){d=d+255&255;do{u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=d;u=0;h=s[D>>2]|0}else u=-1;s[z>>2]=s[z>>2]|u;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=p&255;u=s[N>>2]|0;h=s[q>>2]|0}s[N>>2]=u<<8&2147483392;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}}while(0);m=s[S>>2]|0;e:do if((b|0)>0){u=30620+(a[31076+b>>0]|0)|0;d=h>>>8;if((m|0)>0){b=a[u+(m+-1)>>0]|0;h=h-(te(d,b)|0)|0;s[N>>2]=(s[N>>2]|0)+h;h=te(d,b-(a[u+m>>0]|0)|0)|0}else h=h-(te(d,a[u+m>>0]|0)|0)|0;s[q>>2]=h;while(1){if(h>>>0>=8388609)break e;u=s[N>>2]|0;p=u>>>23;if((p|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{d=u>>>31;h=s[B>>2]|0;if((h|0)>-1){u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=h+d;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){d=d+255&255;do{u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=d;u=0;h=s[D>>2]|0}else u=-1;s[z>>2]=s[z>>2]|u;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=p&255;u=s[N>>2]|0;h=s[q>>2]|0}s[N>>2]=u<<8&2147483392;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}}while(0);p=s[w+32>>2]|0;e:do if((m|0)>0){u=30468+(a[31076+m>>0]|0)|0;d=h>>>8;if((p|0)>0){m=a[u+(p+-1)>>0]|0;h=h-(te(d,m)|0)|0;s[N>>2]=(s[N>>2]|0)+h;h=te(d,m-(a[u+p>>0]|0)|0)|0}else h=h-(te(d,a[u+p>>0]|0)|0)|0;s[q>>2]=h;while(1){if(h>>>0>=8388609)break e;u=s[N>>2]|0;p=u>>>23;if((p|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{d=u>>>31;h=s[B>>2]|0;if((h|0)>-1){u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=h+d;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){d=d+255&255;do{u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=d;u=0;h=s[D>>2]|0}else u=-1;s[z>>2]=s[z>>2]|u;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=p&255;u=s[N>>2]|0;h=s[q>>2]|0}s[N>>2]=u<<8&2147483392;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}}while(0);p=s[w+40>>2]|0;u=s[M>>2]|0;e:do if((u|0)>0){u=30468+(a[31076+u>>0]|0)|0;d=h>>>8;if((p|0)>0){m=a[u+(p+-1)>>0]|0;h=h-(te(d,m)|0)|0;s[N>>2]=(s[N>>2]|0)+h;h=te(d,m-(a[u+p>>0]|0)|0)|0}else h=h-(te(d,a[u+p>>0]|0)|0)|0;s[q>>2]=h;while(1){if(h>>>0>=8388609)break e;u=s[N>>2]|0;p=u>>>23;if((p|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{d=u>>>31;h=s[B>>2]|0;if((h|0)>-1){u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=h+d;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){d=d+255&255;do{u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=d;u=0;h=s[D>>2]|0}else u=-1;s[z>>2]=s[z>>2]|u;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=p&255;u=s[N>>2]|0;h=s[q>>2]|0}s[N>>2]=u<<8&2147483392;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}}while(0);b=s[T>>2]|0;u=s[R>>2]|0;e:do if((u|0)>0){u=30620+(a[31076+u>>0]|0)|0;d=h>>>8;if((b|0)>0){m=a[u+(b+-1)>>0]|0;h=h-(te(d,m)|0)|0;s[N>>2]=(s[N>>2]|0)+h;h=te(d,m-(a[u+b>>0]|0)|0)|0}else h=h-(te(d,a[u+b>>0]|0)|0)|0;s[q>>2]=h;while(1){if(h>>>0>=8388609)break e;u=s[N>>2]|0;p=u>>>23;if((p|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{d=u>>>31;h=s[B>>2]|0;if((h|0)>-1){u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=h+d;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){d=d+255&255;do{u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=d;u=0;h=s[D>>2]|0}else u=-1;s[z>>2]=s[z>>2]|u;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=p&255;u=s[N>>2]|0;h=s[q>>2]|0}s[N>>2]=u<<8&2147483392;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}}while(0);p=s[w+48>>2]|0;e:do if((b|0)>0){u=30468+(a[31076+b>>0]|0)|0;d=h>>>8;if((p|0)>0){m=a[u+(p+-1)>>0]|0;h=h-(te(d,m)|0)|0;s[N>>2]=(s[N>>2]|0)+h;h=te(d,m-(a[u+p>>0]|0)|0)|0}else h=h-(te(d,a[u+p>>0]|0)|0)|0;s[q>>2]=h;while(1){if(h>>>0>=8388609)break e;u=s[N>>2]|0;p=u>>>23;if((p|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{d=u>>>31;h=s[B>>2]|0;if((h|0)>-1){u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=h+d;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){d=d+255&255;do{u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=d;u=0;h=s[D>>2]|0}else u=-1;s[z>>2]=s[z>>2]|u;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=p&255;u=s[N>>2]|0;h=s[q>>2]|0}s[N>>2]=u<<8&2147483392;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}}while(0);p=s[w+56>>2]|0;u=s[x>>2]|0;e:do if((u|0)>0){u=30468+(a[31076+u>>0]|0)|0;d=h>>>8;if((p|0)>0){w=a[u+(p+-1)>>0]|0;h=h-(te(d,w)|0)|0;s[N>>2]=(s[N>>2]|0)+h;h=te(d,w-(a[u+p>>0]|0)|0)|0}else h=h-(te(d,a[u+p>>0]|0)|0)|0;s[q>>2]=h;while(1){if(h>>>0>=8388609)break e;u=s[N>>2]|0;p=u>>>23;if((p|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{d=u>>>31;h=s[B>>2]|0;if((h|0)>-1){u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=h+d;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){d=d+255&255;do{u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=d;u=0;h=s[D>>2]|0}else u=-1;s[z>>2]=s[z>>2]|u;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=p&255;u=s[N>>2]|0;h=s[q>>2]|0}s[N>>2]=u<<8&2147483392;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}}while(0)}g=g+1|0}while(1){if((v|0)>=(f|0))break;w=s[O+(v<<2)>>2]|0;e:do if((w|0)>0){g=n+(v<<4)|0;m=0;while(1){if((m|0)==16)break e;c=r[g+m>>0]|0;b=c<<24>>24;b=(c<<24>>24>0?b:0-b|0)<<24>>24;c=w;t:while(1){p=c+-1|0;if((c|0)<=1)break;c=b>>>p&1;u=h>>>8;d=r[29928+c>>0]|0;if(!c)h=h-(te(u,d&255)|0)|0;else{P=a[29928+(c+-1)>>0]|0;h=h-(te(u,P)|0)|0;s[N>>2]=(s[N>>2]|0)+h;h=te(u,P-(d&255)|0)|0}s[q>>2]=h;while(1){if(h>>>0>=8388609){c=p;continue t}c=s[N>>2]|0;d=c>>>23;if((d|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{ -u=c>>>31;h=s[B>>2]|0;if((h|0)>-1){c=s[U>>2]|0;if((c+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=c+1;r[(s[e>>2]|0)+c>>0]=h+u;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){u=u+255&255;do{c=s[U>>2]|0;if((c+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=c+1;r[(s[e>>2]|0)+c>>0]=u;c=0;h=s[D>>2]|0}else c=-1;s[z>>2]=s[z>>2]|c;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=d&255;c=s[N>>2]|0;h=s[q>>2]|0}s[N>>2]=c<<8&2147483392;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}}c=b&1;u=h>>>8;d=r[29928+c>>0]|0;if(!c)h=h-(te(u,d&255)|0)|0;else{P=a[29928+(c+-1)>>0]|0;h=h-(te(u,P)|0)|0;s[N>>2]=(s[N>>2]|0)+h;h=te(u,P-(d&255)|0)|0}s[q>>2]=h;while(1){if(h>>>0>=8388609)break;c=s[N>>2]|0;d=c>>>23;if((d|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{u=c>>>31;h=s[B>>2]|0;if((h|0)>-1){c=s[U>>2]|0;if((c+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=c+1;r[(s[e>>2]|0)+c>>0]=h+u;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){u=u+255&255;do{c=s[U>>2]|0;if((c+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=c+1;r[(s[e>>2]|0)+c>>0]=u;c=0;h=s[D>>2]|0}else c=-1;s[z>>2]=s[z>>2]|c;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=d&255;c=s[N>>2]|0;h=s[q>>2]|0}s[N>>2]=c<<8&2147483392;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}m=m+1|0}}while(0);v=v+1|0}r[G+1>>0]=0;w=31093+(((t<<1)+i<<16>>16)*7|0)|0;m=o+8>>4;f=h;b=0;p=n;while(1){if((b|0)>=(m|0))break;h=s[H+(b<<2)>>2]|0;e:do if((h|0)>0){r[G>>0]=r[w+((h&30)>>>0<6?h&31:6)>>0]|0;d=0;while(1){if((d|0)==16)break e;h=r[p+d>>0]|0;t:do if(h<<24>>24){h=h<<24>>24>>15;c=h+1|0;u=f>>>8;if((h|0)>-1){n=a[G+h>>0]|0;f=f-(te(u,n)|0)|0;s[N>>2]=(s[N>>2]|0)+f;f=te(u,n-(a[G+c>>0]|0)|0)|0}else f=f-(te(u,a[G+c>>0]|0)|0)|0;s[q>>2]=f;while(1){if(f>>>0>=8388609)break t;h=s[N>>2]|0;u=h>>>23;if((u|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{c=h>>>31;f=s[B>>2]|0;if((f|0)>-1){h=s[U>>2]|0;if((h+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=h+1;r[(s[e>>2]|0)+h>>0]=f+c;f=0}else f=-1;s[z>>2]=s[z>>2]|f}f=s[D>>2]|0;if(f|0){c=c+255&255;do{h=s[U>>2]|0;if((h+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=h+1;r[(s[e>>2]|0)+h>>0]=c;h=0;f=s[D>>2]|0}else h=-1;s[z>>2]=s[z>>2]|h;f=f+-1|0;s[D>>2]=f}while((f|0)!=0)}s[B>>2]=u&255;h=s[N>>2]|0;f=s[q>>2]|0}s[N>>2]=h<<8&2147483392;f=f<<8;s[q>>2]=f;s[L>>2]=(s[L>>2]|0)+8}}while(0);d=d+1|0}}while(0);b=b+1|0;p=p+16|0}l=V;return}function Bi(e,t,i,a){e=e|0;t=t|0;i=i|0;a=a|0;var o=0,f=0,h=0,c=0,l=0;h=i+2|0;o=n[h>>1]|0;a=(te(o<<16>>16,a)|0)/2|0;f=i+20|0;a=(s[i+24>>2]|0)+a|0;i=0;while(1){if((i|0)>=(o<<16>>16|0))break;l=r[a>>0]|0;c=l&255;n[e+(i<<1)>>1]=(c>>>1&7)*9;r[t+i>>0]=r[(s[f>>2]|0)+(i+((n[h>>1]|0)+-1&0-(c&1)))>>0]|0;o=i|1;n[e+(o<<1)>>1]=((l&255)>>>5&255)*9;r[t+o>>0]=r[(s[f>>2]|0)+(i+((n[h>>1]|0)+-1&0-(c>>>4&1))+1)>>0]|0;o=n[h>>1]|0;a=a+1|0;i=i+2|0}return}function Ui(e,t,i,a,f,h,c,u,d,p,b){e=e|0;t=t|0;i=i|0;a=a|0;f=f|0;h=h|0;c=c|0;u=u|0;d=d|0;p=p|0;b=b|0;var m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0,I=0;x=l;l=l+16|0;M=x+8|0;k=x+4|0;y=x;T=t+-4|0;m=b+2|0;R=l;l=l+((1*(m<<1)|0)+15&-16)|0;w=0;while(1){if((w|0)>=(m|0))break;A=w+-2|0;_=n[t+(A<<1)>>1]|0;A=n[i+(A<<1)>>1]|0;E=_+A|0;A=_-A|0;n[T+(w<<1)>>1]=(E>>>1)+(E&1);A=(A>>1)+(A&1)|0;n[R+(w<<1)>>1]=(A|0)>32767?32767:((A|0)<-32768?-32768:A)&65535;w=w+1|0}_=e+4|0;g=o[_>>1]|o[_+2>>1]<<16;n[T>>1]=g;n[T+2>>1]=g>>>16;g=e+8|0;w=o[g>>1]|o[g+2>>1]<<16;s[R>>2]=w;m=T+(b<<1)|0;m=o[m>>1]|o[m+2>>1]<<16;n[_>>1]=m;n[_+2>>1]=m>>>16;_=R+(b<<1)|0;_=o[_>>1]|o[_+2>>1]<<16;n[g>>1]=_;n[g+2>>1]=_>>>16;g=l;l=l+((1*(b<<1)|0)+15&-16)|0;_=l;l=l+((1*(b<<1)|0)+15&-16)|0;m=0;while(1){if((m|0)>=(b|0))break;A=m+1|0;v=n[T+(A<<1)>>1]|0;E=((n[T+(m<<1)>>1]|0)+(n[T+(m+2<<1)>>1]|0)+(v<<16>>16<<1)>>1)+1>>1;n[g+(m<<1)>>1]=E;n[_+(m<<1)>>1]=(v&65535)-E;m=A}t=l;l=l+((1*(b<<1)|0)+15&-16)|0;v=l;l=l+((1*(b<<1)|0)+15&-16)|0;m=w&65535;w=0;while(1){if((w|0)>=(b|0))break;A=w+1|0;E=n[R+(A<<1)>>1]|0;C=((m<<16>>16)+(n[R+(w+2<<1)>>1]|0)+(E<<16>>16<<1)>>1)+1>>1;n[t+(w<<1)>>1]=C;n[v+(w<<1)>>1]=(E&65535)-C;m=E;w=A}m=(p*10|0)==(b|0);E=m?328:655;u=u<<16>>16;u=te(u,u)|0;u=(te(u>>>16,E)|0)+((te(u&65535,E)|0)>>>16)|0;E=Zi(k,g,t,e+12|0,b,u)|0;s[M>>2]=E;v=Zi(y,_,v,e+20|0,b,u)|0;A=M+4|0;s[A>>2]=v;g=(s[y>>2]|0)+((s[k>>2]<<16>>16)*3|0)|0;g=(g|0)<65536?g:65536;_=c-(m?1200:600)|0;_=(_|0)<1?1:_;t=((p<<16>>16)*900|0)+2e3|0;m=g*3|0;w=ji(_,m+851968|0,19)|0;s[h>>2]=w;if((w|0)<(t|0)){s[h>>2]=t;c=_-t|0;s[h+4>>2]=c;C=t<<16>>16;m=ji((c<<1)-t|0,(te(m+65536>>16,C)|0)+((te(m&65535,C)|0)>>16)|0,16)|0;if((m|0)>16384)m=16384;else m=(m|0)<0?0:m}else{s[h+4>>2]=_-w;m=16384}w=e+28|0;k=n[w>>1]|0;c=k&65535;C=u<<16>>16;n[w>>1]=c+((te(m-(k<<16>>16)>>16,C)|0)+((te(m-c&65535,C)|0)>>>16));r[f>>0]=0;e:do if(!d){do if(!(n[e+30>>1]|0)){if((_<<3|0)>=(t*13|0)){m=s[w>>2]|0;C=m<<16>>16;if(((te(g>>16,C)|0)+((te(g&65535,C)|0)>>16)|0)<819)m=m&65535;else{if((m>>>16&65535)<<16>>16){S=23;break}m=n[w>>1]|0;break}}else m=n[w>>1]|0;s[M>>2]=(te(m<<16>>16,E<<16>>16)|0)>>14;s[A>>2]=(te(m<<16>>16,v<<16>>16)|0)>>14;$i(M,a);s[M>>2]=0;s[A>>2]=0;s[h>>2]=_;s[h+4>>2]=0;r[f>>0]=1;w=0;S=31;break e}else S=23;while(0);do if((S|0)==23){if((_<<3|0)>=(t*11|0)){m=n[w>>1]|0;C=m<<16>>16;if(((te(g>>16,C)|0)+((te(g&65535,C)|0)>>16)|0)>=328)break}else m=n[w>>1]|0;m=m<<16>>16;s[M>>2]=(te(m,E<<16>>16)|0)>>14;s[A>>2]=(te(m,v<<16>>16)|0)>>14;$i(M,a);s[M>>2]=0;s[A>>2]=0;m=0;S=30;break e}while(0);if(m<<16>>16>15565){$i(M,a);m=16384;S=30;break}else{m=m<<16>>16;s[M>>2]=(te(m,E<<16>>16)|0)>>14;s[A>>2]=(te(m,v<<16>>16)|0)>>14;$i(M,a);m=n[w>>1]|0;S=30;break}}else{s[M>>2]=0;s[A>>2]=0;$i(M,a);m=0;S=30}while(0);if((S|0)==30)if((r[f>>0]|0)==1){w=m;S=31}else{n[e+32>>1]=0;S=35}do if((S|0)==31){m=e+32|0;C=(o[m>>1]|0)+(b-(p<<3))|0;n[m>>1]=C;if((C<<16>>16|0)<(p*5|0)){r[f>>0]=0;S=36;break}else{n[m>>1]=1e4;m=w;S=35;break}}while(0);if((S|0)==35)if(!(r[f>>0]|0)){w=m;S=36}if((S|0)==36){m=h+4|0;if((s[m>>2]|0)<1){s[m>>2]=1;s[h>>2]=(_|0)<2?1:_+-1|0;m=w}else m=w}u=s[e>>2]|0;d=e+30|0;v=n[d>>1]|0;y=v<<16>>16;w=p<<3;E=s[M>>2]|0;g=(65536/(w|0)|0)<<16>>16;k=((te(E-u<<16>>16,g)|0)>>15)+1>>1;c=s[A>>2]|0;t=((te(c-(u>>>16)<<16>>16,g)|0)>>15)+1>>1;g=(te(m-y>>16,g)|0)+((te(m-(v&65535)&65535,g)|0)>>16)<<10;v=0;_=0-(u<<16>>16)|0;u=0-(u>>16)|0;y=y<<10;while(1){if((v|0)>=(w|0))break;p=_-k|0;M=u-t|0;C=y+g|0;h=v+1|0;S=n[T+(h<<1)>>1]|0;A=(n[T+(v<<1)>>1]|0)+(n[T+(v+2<<1)>>1]|0)+(S<<1)|0;I=n[R+(h<<1)>>1]|0;a=p<<16>>16;f=M<<16>>16;f=((te(C>>16,I)|0)+((te(C&64512,I)|0)>>16)+((te(A>>7,a)|0)+((te(A<<9&65024,a)|0)>>16))+((te(S>>5,f)|0)+((te(S<<11&63488,f)|0)>>16))>>7)+1>>1;n[i+(v+-1<<1)>>1]=(f|0)>32767?32767:((f|0)<-32768?-32768:f)&65535;v=h;_=p;u=M;y=C}t=e+2|0;g=m>>6;v=m<<10&64512;_=0-E<<16>>16;u=0-c<<16>>16;while(1){if((w|0)>=(b|0))break;I=w+1|0;C=n[T+(I<<1)>>1]|0;M=(n[T+(w<<1)>>1]|0)+(n[T+(w+2<<1)>>1]|0)+(C<<1)|0;p=n[R+(I<<1)>>1]|0;C=((te(g,p)|0)+((te(v,p)|0)>>16)+((te(M>>7,_)|0)+((te(M<<9&65024,_)|0)>>16))+((te(C>>5,u)|0)+((te(C<<11&63488,u)|0)>>16))>>7)+1>>1;n[i+(w+-1<<1)>>1]=(C|0)>32767?32767:((C|0)<-32768?-32768:C)&65535;w=I}n[e>>1]=E;n[t>>1]=c;n[d>>1]=m;l=x;return}function ji(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,n=0,s=0,a=0;if((e|0)<=0)if(!e)n=32;else{r=0-e|0;s=3}else{r=e;s=3}if((s|0)==3)n=re(r|0)|0;e=e<>16|0)|0)<<16>>16;a=(te(e>>16,t)|0)+((te(e&65535,t)|0)>>16)|0;s=Nn(s|0,((s|0)<0)<<31>>31|0,a|0,((a|0)<0)<<31>>31|0)|0;s=Sn(s|0,I|0,29)|0;s=e-(s&-8)|0;t=a+((te(s>>16,t)|0)+((te(s&65535,t)|0)>>16))|0;r=n+28-r-i|0;if((r|0)>=0)return((r|0)<32?t>>r:0)|0;r=0-r|0;e=-2147483648>>r;n=2147483647>>>r;if((e|0)>(n|0)){if((t|0)>(e|0)){a=e;a=a<(n|0)){a=n;a=a<>2]=t;s[e+8>>2]=193536;s[e+12>>2]=193536;s[e+4756>>2]=1;t=e+32|0;i=t+112|0;do{s[t>>2]=0;t=t+4|0}while((t|0)<(i|0));t=0;while(1){if((t|0)==4){t=0;break}i=t+1|0;r=50/(i|0)|0;s[e+124+(t<<2)>>2]=(r|0)>1?r:1;t=i}while(1){if((t|0)==4)break;r=(s[e+124+(t<<2)>>2]|0)*100|0;s[e+92+(t<<2)>>2]=r;s[e+108+(t<<2)>>2]=2147483647/(r|0)|0;t=t+1|0}s[e+140>>2]=15;t=0;while(1){if((t|0)==4)break;s[e+72+(t<<2)>>2]=25600;t=t+1|0}return 0}function zi(e,t){e=e|0;t=t|0;var i=0,r=0,a=0,o=0,f=0,c=0,u=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0;_=l;l=l+304|0;w=_;b=e+4668|0;r=s[b>>2]|0;if((r|0)==(t|0)?(i=e+4648|0,(s[e+4652>>2]|0)==(s[i>>2]|0)):0){g=i;v=0;g=s[g>>2]|0;e=e+4652|0;s[e>>2]=g;l=_;return v|0}if(!r){v=e+4648|0;g=v;v=qi(e+5868|0,s[v>>2]|0,t*1e3|0,1)|0;g=s[g>>2]|0;e=e+4652|0;s[e>>2]=g;l=_;return v|0}m=((s[e+4672>>2]|0)*10|0)+5|0;p=te(m,r)|0;r=te(m,t)|0;g=Ne()|0;v=l;l=l+((1*(((p|0)>(r|0)?p:r)<<1)|0)+15&-16)|0;i=p;while(1){u=i+-1|0;if((i|0)<=0)break;o=+h[e+7272+(u<<2)>>2];a=(h[d>>2]=o,s[d>>2]|0);f=(a&2130706432)>>>0>1249902592;if(!f){i=(a|0)<0;c=i?o+-8388608+8388608:o+8388608+-8388608;if(c==0)c=i?-0:0}else c=o;if((~~c|0)<=32767){if(!f){i=(a|0)<0;c=i?o+-8388608+8388608:o+8388608+-8388608;if(c==0)c=i?-0:0}else c=o;if((~~c|0)<-32768)i=-32768;else{if(!f){i=(a|0)<0;o=i?o+-8388608+8388608:o+8388608+-8388608;if(o==0)o=i?-0:0}i=~~o}}else i=32767;n[v+(u<<1)>>1]=i;i=u}u=e+4648|0;f=qi(w,(s[b>>2]<<16>>16)*1e3|0,s[u>>2]|0,0)|0;m=te(m,(s[u>>2]|0)/1e3|0)|0;b=l;l=l+((1*(m<<1)|0)+15&-16)|0;Hi(w,b,v,p);w=e+5868|0;a=qi(w,s[u>>2]|0,(t<<16>>16)*1e3|0,1)|0;Hi(w,v,b,m);while(1){i=r+-1|0;if((r|0)<=0)break;h[e+7272+(i<<2)>>2]=+(n[v+(i<<1)>>1]|0);r=i}qe(g|0);g=u;v=f+a|0;g=s[g>>2]|0;e=e+4652|0;s[e>>2]=g;l=_;return v|0}function qi(e,t,i,n){e=e|0;t=t|0;i=i|0;n=n|0;var a=0,o=0,f=0;kn(e|0,0,300)|0;if(!n){e:do if((t|0)>=12e3)if((t|0)<16e3){switch(t|0){case 12e3:break e;default:n=-1}return n|0}else{switch(t|0){case 16e3:break e;default:n=-1}return n|0}else{switch(t|0){case 8e3:break e;default:n=-1}return n|0}while(0);e:do if((i|0)<16e3)if((i|0)<12e3){switch(i|0){case 8e3:break e;default:n=-1}return n|0}else{switch(i|0){case 12e3:break e;default:n=-1}return n|0}else{if((i|0)<24e3){switch(i|0){case 16e3:break e;default:n=-1}return n|0}if((i|0)<48e3){switch(i|0){case 24e3:break e;default:n=-1}return n|0}else{switch(i|0){case 48e3:break e;default:n=-1}return n|0}}while(0);s[e+292>>2]=r[((i>>12)-((i|0)>16e3&1)>>((i|0)>24e3&1))+-1+(31150+((((t>>12)-((t|0)>16e3&1)>>((t|0)>24e3&1))+-1|0)*5|0))>>0]}else{e:do if((t|0)<16e3)if((t|0)<12e3){switch(t|0){case 8e3:break e;default:n=-1}return n|0}else{switch(t|0){case 12e3:break e;default:n=-1}return n|0}else{if((t|0)<24e3){switch(t|0){case 16e3:break e;default:n=-1}return n|0}if((t|0)<48e3){switch(t|0){case 24e3:break e;default:n=-1}return n|0}else{switch(t|0){case 48e3:break e;default:n=-1}return n|0}}while(0);e:do if((i|0)>=12e3)if((i|0)<16e3){switch(i|0){case 12e3:break e;default:n=-1}return n|0}else{switch(i|0){case 16e3:break e;default:n=-1}return n|0}else{switch(i|0){case 8e3:break e;default:n=-1}return n|0}while(0);s[e+292>>2]=r[((i>>12)-((i|0)>16e3&1)>>((i|0)>24e3&1))+-1+(31135+((((t>>12)-((t|0)>16e3&1)>>((t|0)>24e3&1))+-1|0)*3|0))>>0]}f=(t|0)/1e3|0;s[e+284>>2]=f;s[e+288>>2]=(i|0)/1e3|0;s[e+268>>2]=f*10;do if((i|0)>(t|0)){n=e+264|0;if((t<<1|0)==(i|0)){s[n>>2]=1;n=0;break}else{s[n>>2]=2;n=1;break}}else{n=e+264|0;if((i|0)>=(t|0)){s[n>>2]=0;n=0;break}s[n>>2]=3;n=i<<2;if((n|0)==(t*3|0)){s[e+280>>2]=3;s[e+276>>2]=18;s[e+296>>2]=25418;n=0;break}a=i*3|0;if((a|0)==(t<<1|0)){s[e+280>>2]=2;s[e+276>>2]=18;s[e+296>>2]=25476;n=0;break}if((i<<1|0)==(t|0)){s[e+280>>2]=1;s[e+276>>2]=24;s[e+296>>2]=25516;n=0;break}if((a|0)==(t|0)){s[e+280>>2]=1;s[e+276>>2]=36;s[e+296>>2]=25544;n=0;break}if((n|0)==(t|0)){s[e+280>>2]=1;s[e+276>>2]=36;s[e+296>>2]=25584;n=0;break}if((i*6|0)==(t|0)){s[e+280>>2]=1;s[e+276>>2]=36;s[e+296>>2]=25624;n=0;break}else{t=-1;return t|0}}while(0);a=((t<<(n|14)|0)/(i|0)|0)<<2;o=e+272|0;s[o>>2]=a;f=i<<16>>16;e=(i>>15)+1>>1;n=t<>16,f)|0)+((te(a&65535,f)|0)>>16)+(te(a,e)|0)|0)>=(n|0)){n=0;break}t=a+1|0;s[o>>2]=t;a=t}return n|0}function Hi(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var n=0,a=0,o=0,f=0;n=e+284|0;o=e+292|0;f=s[o>>2]|0;a=(s[n>>2]|0)-f|0;Mn(e+168+(f<<1)|0,i|0,a<<1|0)|0;switch(s[e+264>>2]|0){case 1:{f=e+168|0;Wi(e,t,f,s[n>>2]|0);Wi(e,t+(s[e+288>>2]<<1)|0,i+(a<<1)|0,r-(s[n>>2]|0)|0);n=f;break}case 2:{f=e+168|0;Vi(e,t,f,s[n>>2]|0);Vi(e,t+(s[e+288>>2]<<1)|0,i+(a<<1)|0,r-(s[n>>2]|0)|0);n=f;break}case 3:{f=e+168|0;Gi(e,t,f,s[n>>2]|0);Gi(e,t+(s[e+288>>2]<<1)|0,i+(a<<1)|0,r-(s[n>>2]|0)|0);n=f;break}default:{f=e+168|0;Mn(t|0,f|0,s[n>>2]<<1|0)|0;Mn(t+(s[e+288>>2]<<1)|0,i+(a<<1)|0,r-(s[n>>2]|0)<<1|0)|0;n=f}}f=s[o>>2]|0;Mn(n|0,i+(r-f<<1)|0,f<<1|0)|0;return}function Gi(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var a=0,o=0,f=0,h=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0,I=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,q=0,H=0,G=0;j=l;d=e+268|0;c=s[d>>2]|0;E=e+276|0;h=s[E>>2]|0;L=l;l=l+((1*(c+h<<2)|0)+15&-16)|0;B=e+24|0;Mn(L|0,B|0,h<<2|0)|0;U=e+296|0;D=s[U>>2]|0;p=D+4|0;b=s[e+272>>2]|0;m=e+4|0;w=e+280|0;g=D+6|0;v=D+8|0;_=D+10|0;y=D+12|0;k=D+14|0;A=D+16|0;S=D+18|0;M=D+20|0;T=D+22|0;R=D+24|0;x=D+26|0;C=D+28|0;I=D+30|0;P=D+32|0;O=D+34|0;N=D+36|0;D=D+38|0;u=i;i=c;while(1){c=(r|0)<(i|0)?r:i;i=L+(h<<2)|0;a=s[U>>2]|0;o=a+2|0;f=0;while(1){if((f|0)>=(c|0))break;z=(s[e>>2]|0)+(n[u+(f<<1)>>1]<<8)|0;s[i+(f<<2)>>2]=z;z=z<<2;q=z>>16;F=n[a>>1]|0;z=z&65532;s[e>>2]=(s[m>>2]|0)+((te(q,F)|0)+((te(z,F)|0)>>16));F=n[o>>1]|0;s[m>>2]=(te(q,F)|0)+((te(z,F)|0)>>16);f=f+1|0}f=c<<16;i=s[w>>2]|0;e:do switch(h|0){case 18:{o=i<<16>>16;a=i+-1|0;i=0;while(1){if((i|0)>=(f|0))break e;z=L+(i>>16<<2)|0;q=(te(i&65535,o)|0)>>16;F=p+(q*9<<1)|0;h=s[z>>2]|0;G=n[F>>1]|0;G=(te(h>>16,G)|0)+((te(h&65535,G)|0)>>16)|0;h=s[z+4>>2]|0;H=n[F+2>>1]|0;H=G+((te(h>>16,H)|0)+((te(h&65535,H)|0)>>16))|0;h=s[z+8>>2]|0;G=n[F+4>>1]|0;G=H+((te(h>>16,G)|0)+((te(h&65535,G)|0)>>16))|0;h=s[z+12>>2]|0;H=n[F+6>>1]|0;H=G+((te(h>>16,H)|0)+((te(h&65535,H)|0)>>16))|0;h=s[z+16>>2]|0;G=n[F+8>>1]|0;G=H+((te(h>>16,G)|0)+((te(h&65535,G)|0)>>16))|0;h=s[z+20>>2]|0;H=n[F+10>>1]|0;H=G+((te(h>>16,H)|0)+((te(h&65535,H)|0)>>16))|0;h=s[z+24>>2]|0;G=n[F+12>>1]|0;G=H+((te(h>>16,G)|0)+((te(h&65535,G)|0)>>16))|0;h=s[z+28>>2]|0;H=n[F+14>>1]|0;H=G+((te(h>>16,H)|0)+((te(h&65535,H)|0)>>16))|0;h=s[z+32>>2]|0;F=n[F+16>>1]|0;F=H+((te(h>>16,F)|0)+((te(h&65535,F)|0)>>16))|0;q=p+((a-q|0)*9<<1)|0;h=s[z+68>>2]|0;H=n[q>>1]|0;H=F+((te(h>>16,H)|0)+((te(h&65535,H)|0)>>16))|0;h=s[z+64>>2]|0;F=n[q+2>>1]|0;F=H+((te(h>>16,F)|0)+((te(h&65535,F)|0)>>16))|0;h=s[z+60>>2]|0;H=n[q+4>>1]|0;H=F+((te(h>>16,H)|0)+((te(h&65535,H)|0)>>16))|0;h=s[z+56>>2]|0;F=n[q+6>>1]|0;F=H+((te(h>>16,F)|0)+((te(h&65535,F)|0)>>16))|0;h=s[z+52>>2]|0;H=n[q+8>>1]|0;H=F+((te(h>>16,H)|0)+((te(h&65535,H)|0)>>16))|0;h=s[z+48>>2]|0;F=n[q+10>>1]|0;F=H+((te(h>>16,F)|0)+((te(h&65535,F)|0)>>16))|0;h=s[z+44>>2]|0;H=n[q+12>>1]|0;H=F+((te(h>>16,H)|0)+((te(h&65535,H)|0)>>16))|0;h=s[z+40>>2]|0;F=n[q+14>>1]|0;F=H+((te(h>>16,F)|0)+((te(h&65535,F)|0)>>16))|0;z=s[z+36>>2]|0;q=n[q+16>>1]|0;q=(F+((te(z>>16,q)|0)+((te(z&65535,q)|0)>>16))>>5)+1>>1;n[t>>1]=(q|0)>32767?32767:((q|0)<-32768?-32768:q)&65535;t=t+2|0;i=i+b|0}}case 24:{i=0;while(1){if((i|0)>=(f|0))break e;H=L+(i>>16<<2)|0;G=(s[H>>2]|0)+(s[H+92>>2]|0)|0;q=n[p>>1]|0;q=(te(G>>16,q)|0)+((te(G&65535,q)|0)>>16)|0;G=(s[H+4>>2]|0)+(s[H+88>>2]|0)|0;z=n[g>>1]|0;z=q+((te(G>>16,z)|0)+((te(G&65535,z)|0)>>16))|0;G=(s[H+8>>2]|0)+(s[H+84>>2]|0)|0;q=n[v>>1]|0;q=z+((te(G>>16,q)|0)+((te(G&65535,q)|0)>>16))|0;G=(s[H+12>>2]|0)+(s[H+80>>2]|0)|0;z=n[_>>1]|0;z=q+((te(G>>16,z)|0)+((te(G&65535,z)|0)>>16))|0;G=(s[H+16>>2]|0)+(s[H+76>>2]|0)|0;q=n[y>>1]|0;q=z+((te(G>>16,q)|0)+((te(G&65535,q)|0)>>16))|0;G=(s[H+20>>2]|0)+(s[H+72>>2]|0)|0;z=n[k>>1]|0;z=q+((te(G>>16,z)|0)+((te(G&65535,z)|0)>>16))|0;G=(s[H+24>>2]|0)+(s[H+68>>2]|0)|0;q=n[A>>1]|0;q=z+((te(G>>16,q)|0)+((te(G&65535,q)|0)>>16))|0;G=(s[H+28>>2]|0)+(s[H+64>>2]|0)|0;z=n[S>>1]|0;z=q+((te(G>>16,z)|0)+((te(G&65535,z)|0)>>16))|0;G=(s[H+32>>2]|0)+(s[H+60>>2]|0)|0;q=n[M>>1]|0;q=z+((te(G>>16,q)|0)+((te(G&65535,q)|0)>>16))|0;G=(s[H+36>>2]|0)+(s[H+56>>2]|0)|0;z=n[T>>1]|0;z=q+((te(G>>16,z)|0)+((te(G&65535,z)|0)>>16))|0;G=(s[H+40>>2]|0)+(s[H+52>>2]|0)|0;q=n[R>>1]|0;q=z+((te(G>>16,q)|0)+((te(G&65535,q)|0)>>16))|0;H=(s[H+44>>2]|0)+(s[H+48>>2]|0)|0;G=n[x>>1]|0;G=(q+((te(H>>16,G)|0)+((te(H&65535,G)|0)>>16))>>5)+1>>1;n[t>>1]=(G|0)>32767?32767:((G|0)<-32768?-32768:G)&65535;t=t+2|0;i=i+b|0}}case 36:{i=0;while(1){if((i|0)>=(f|0))break e;H=L+(i>>16<<2)|0;G=(s[H>>2]|0)+(s[H+140>>2]|0)|0;q=n[p>>1]|0;q=(te(G>>16,q)|0)+((te(G&65535,q)|0)>>16)|0;G=(s[H+4>>2]|0)+(s[H+136>>2]|0)|0;z=n[g>>1]|0;z=q+((te(G>>16,z)|0)+((te(G&65535,z)|0)>>16))|0;G=(s[H+8>>2]|0)+(s[H+132>>2]|0)|0;q=n[v>>1]|0;q=z+((te(G>>16,q)|0)+((te(G&65535,q)|0)>>16))|0;G=(s[H+12>>2]|0)+(s[H+128>>2]|0)|0;z=n[_>>1]|0;z=q+((te(G>>16,z)|0)+((te(G&65535,z)|0)>>16))|0;G=(s[H+16>>2]|0)+(s[H+124>>2]|0)|0;q=n[y>>1]|0;q=z+((te(G>>16,q)|0)+((te(G&65535,q)|0)>>16))|0;G=(s[H+20>>2]|0)+(s[H+120>>2]|0)|0;z=n[k>>1]|0;z=q+((te(G>>16,z)|0)+((te(G&65535,z)|0)>>16))|0;G=(s[H+24>>2]|0)+(s[H+116>>2]|0)|0;q=n[A>>1]|0;q=z+((te(G>>16,q)|0)+((te(G&65535,q)|0)>>16))|0;G=(s[H+28>>2]|0)+(s[H+112>>2]|0)|0;z=n[S>>1]|0;z=q+((te(G>>16,z)|0)+((te(G&65535,z)|0)>>16))|0;G=(s[H+32>>2]|0)+(s[H+108>>2]|0)|0;q=n[M>>1]|0;q=z+((te(G>>16,q)|0)+((te(G&65535,q)|0)>>16))|0;G=(s[H+36>>2]|0)+(s[H+104>>2]|0)|0;z=n[T>>1]|0;z=q+((te(G>>16,z)|0)+((te(G&65535,z)|0)>>16))|0;G=(s[H+40>>2]|0)+(s[H+100>>2]|0)|0;q=n[R>>1]|0;q=z+((te(G>>16,q)|0)+((te(G&65535,q)|0)>>16))|0;G=(s[H+44>>2]|0)+(s[H+96>>2]|0)|0;z=n[x>>1]|0;z=q+((te(G>>16,z)|0)+((te(G&65535,z)|0)>>16))|0;G=(s[H+48>>2]|0)+(s[H+92>>2]|0)|0;q=n[C>>1]|0;q=z+((te(G>>16,q)|0)+((te(G&65535,q)|0)>>16))|0;G=(s[H+52>>2]|0)+(s[H+88>>2]|0)|0;z=n[I>>1]|0;z=q+((te(G>>16,z)|0)+((te(G&65535,z)|0)>>16))|0;G=(s[H+56>>2]|0)+(s[H+84>>2]|0)|0;q=n[P>>1]|0;q=z+((te(G>>16,q)|0)+((te(G&65535,q)|0)>>16))|0;G=(s[H+60>>2]|0)+(s[H+80>>2]|0)|0;z=n[O>>1]|0;z=q+((te(G>>16,z)|0)+((te(G&65535,z)|0)>>16))|0;G=(s[H+64>>2]|0)+(s[H+76>>2]|0)|0;q=n[N>>1]|0;q=z+((te(G>>16,q)|0)+((te(G&65535,q)|0)>>16))|0;H=(s[H+68>>2]|0)+(s[H+72>>2]|0)|0;G=n[D>>1]|0;G=(q+((te(H>>16,G)|0)+((te(H&65535,G)|0)>>16))>>5)+1>>1;n[t>>1]=(G|0)>32767?32767:((G|0)<-32768?-32768:G)&65535;t=t+2|0;i=i+b|0}}default:{}}while(0);r=r-c|0;if((r|0)<=1)break;h=s[E>>2]|0;Mn(L|0,L+(c<<2)|0,h<<2|0)|0;u=u+(c<<1)|0;i=s[d>>2]|0}Mn(B|0,L+(c<<2)|0,s[E>>2]<<2|0)|0;l=j;return}function Vi(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var a=0,o=0,f=0,h=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0;b=l;h=e+268|0;f=s[h>>2]|0;c=l;l=l+((1*((f<<1)+8<<1)|0)+15&-16)|0;u=e+24|0;n[c>>1]=n[u>>1]|0;n[c+2>>1]=n[u+2>>1]|0;n[c+4>>1]=n[u+4>>1]|0;n[c+6>>1]=n[u+6>>1]|0;n[c+8>>1]=n[u+8>>1]|0;n[c+10>>1]=n[u+10>>1]|0;n[c+12>>1]=n[u+12>>1]|0;n[c+14>>1]=n[u+14>>1]|0;d=s[e+272>>2]|0;p=c+16|0;a=t;t=f;while(1){f=(r|0)<(t|0)?r:t;Wi(e,p,i,f);o=f<<17;t=0;while(1){if((t|0)>=(o|0))break;m=((t&65535)*12|0)>>>16;w=c+(t>>16<<1)|0;g=te(n[w>>1]|0,n[25664+(m<<3)>>1]|0)|0;g=g+(te(n[w+2>>1]|0,n[25664+(m<<3)+2>>1]|0)|0)|0;g=g+(te(n[w+4>>1]|0,n[25664+(m<<3)+4>>1]|0)|0)|0;g=g+(te(n[w+6>>1]|0,n[25664+(m<<3)+6>>1]|0)|0)|0;m=11-m|0;g=g+(te(n[w+8>>1]|0,n[25664+(m<<3)+6>>1]|0)|0)|0;g=g+(te(n[w+10>>1]|0,n[25664+(m<<3)+4>>1]|0)|0)|0;g=g+(te(n[w+12>>1]|0,n[25664+(m<<3)+2>>1]|0)|0)|0;m=(g+(te(n[w+14>>1]|0,n[25664+(m<<3)>>1]|0)|0)>>14)+1>>1;n[a>>1]=(m|0)>32767?32767:((m|0)<-32768?-32768:m)&65535;a=a+2|0;t=t+d|0}r=r-f|0;if((r|0)<=0)break;t=c+(f<<1<<1)|0;n[c>>1]=n[t>>1]|0;n[c+2>>1]=n[t+2>>1]|0;n[c+4>>1]=n[t+4>>1]|0;n[c+6>>1]=n[t+6>>1]|0;n[c+8>>1]=n[t+8>>1]|0;n[c+10>>1]=n[t+10>>1]|0;n[c+12>>1]=n[t+12>>1]|0;n[c+14>>1]=n[t+14>>1]|0;i=i+(f<<1)|0;t=s[h>>2]|0}g=c+(f<<1<<1)|0;n[u>>1]=n[g>>1]|0;n[u+2>>1]=n[g+2>>1]|0;n[u+4>>1]=n[g+4>>1]|0;n[u+6>>1]=n[g+6>>1]|0;n[u+8>>1]=n[g+8>>1]|0;n[u+10>>1]=n[g+10>>1]|0;n[u+12>>1]=n[g+12>>1]|0;n[u+14>>1]=n[g+14>>1]|0;l=b;return}function Wi(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var a=0,o=0,f=0,h=0,c=0,l=0,u=0,d=0,p=0,b=0;a=e+4|0;o=e+8|0;f=e+12|0;h=e+16|0;c=e+20|0;l=0;while(1){if((l|0)>=(r|0))break;b=n[i+(l<<1)>>1]<<10;d=s[e>>2]|0;u=b-d|0;u=((u>>16)*1746|0)+(((u&65535)*1746|0)>>>16)|0;d=d+u|0;s[e>>2]=b+u;u=s[a>>2]|0;p=d-u|0;p=((p>>16)*14986|0)+(((p&65535)*14986|0)>>>16)|0;u=u+p|0;s[a>>2]=d+p;p=u-(s[o>>2]|0)|0;d=(te(p>>16,-26453)|0)+((te(p&65535,-26453)|0)>>16)|0;s[o>>2]=u+(p+d);d=(u+d>>9)+1>>1;u=l<<1;n[t+(u<<1)>>1]=(d|0)>32767?32767:((d|0)<-32768?-32768:d)&65535;d=s[f>>2]|0;p=b-d|0;p=((p>>16)*6854|0)+(((p&65535)*6854|0)>>>16)|0;d=d+p|0;s[f>>2]=b+p;p=s[h>>2]|0;b=d-p|0;b=((b>>16)*25769|0)+(((b&65535)*25769|0)>>>16)|0;p=p+b|0;s[h>>2]=d+b;b=p-(s[c>>2]|0)|0;d=(te(b>>16,-9994)|0)+((te(b&65535,-9994)|0)>>16)|0;s[c>>2]=p+(b+d);d=(p+d>>9)+1>>1;n[t+((u|1)<<1)>>1]=(d|0)>32767?32767:((d|0)<-32768?-32768:d)&65535;l=l+1|0}return}function Ki(e,t){e=e|0;t=t|0;var i=0,r=0,o=0,f=0,h=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0;v=l;l=l+32|0;g=v;m=e+28|0;f=s[m>>2]|0;w=e+32|0;i=s[w>>2]|0;r=f>>>8;h=-1;while(1){h=h+1|0;o=te(r,a[29891+h>>0]|0)|0;if(i>>>0>=o>>>0)break;else f=o}c=i-o|0;s[w>>2]=c;i=f-o|0;s[m>>2]=i;u=e+20|0;d=e+40|0;p=e+24|0;b=e+4|0;f=c;while(1){if(i>>>0>=8388609)break;s[u>>2]=(s[u>>2]|0)+8;i=i<<8;s[m>>2]=i;o=s[d>>2]|0;r=s[p>>2]|0;if(r>>>0<(s[b>>2]|0)>>>0){s[p>>2]=r+1;r=a[(s[e>>2]|0)+r>>0]|0}else r=0;s[d>>2]=r;c=((o<<8|r)>>>1&255|f<<8&2147483392)^255;s[w>>2]=c;f=c}c=(h|0)/5|0;s[g+8>>2]=c;s[g+20>>2]=h+(te(c,-5)|0);c=0;while(1){if((c|0)==2){i=0;break}o=i>>>8;h=-1;while(1){h=h+1|0;r=te(o,a[29944+h>>0]|0)|0;if(f>>>0>=r>>>0)break;else i=r}f=f-r|0;s[w>>2]=f;i=i-r|0;s[m>>2]=i;while(1){if(i>>>0>=8388609)break;s[u>>2]=(s[u>>2]|0)+8;i=i<<8;s[m>>2]=i;o=s[d>>2]|0;r=s[p>>2]|0;if(r>>>0<(s[b>>2]|0)>>>0){s[p>>2]=r+1;r=a[(s[e>>2]|0)+r>>0]|0}else r=0;s[d>>2]=r;o=((o<<8|r)>>>1&255|f<<8&2147483392)^255;s[w>>2]=o;f=o}s[g+(c*12|0)>>2]=h;o=i>>>8;h=-1;while(1){h=h+1|0;r=te(o,a[29951+h>>0]|0)|0;if(f>>>0>=r>>>0)break;else i=r}f=f-r|0;s[w>>2]=f;i=i-r|0;s[m>>2]=i;while(1){if(i>>>0>=8388609)break;s[u>>2]=(s[u>>2]|0)+8;i=i<<8;s[m>>2]=i;o=s[d>>2]|0;r=s[p>>2]|0;if(r>>>0<(s[b>>2]|0)>>>0){s[p>>2]=r+1;r=a[(s[e>>2]|0)+r>>0]|0}else r=0;s[d>>2]=r;o=((o<<8|r)>>>1&255|f<<8&2147483392)^255;s[w>>2]=o;f=o}s[g+(c*12|0)+4>>2]=h;c=c+1|0}while(1){if((i|0)==2)break;w=g+(i*12|0)|0;e=(s[w>>2]|0)+((s[g+(i*12|0)+8>>2]|0)*3|0)|0;s[w>>2]=e;w=n[25372+(e<<1)>>1]|0;e=n[25372+(e+1<<1)>>1]|0;e=(te((e<<16>>16)-w>>16,429522944)|0)+(((e&65535)-w&65535)*6554|0)>>16;s[t+(i<<2)>>2]=w+(te(e,s[g+(i*12|0)+4>>2]<<17>>16|1)|0);i=i+1|0}s[t>>2]=(s[t>>2]|0)-(s[t+4>>2]|0);l=v;return}function Zi(e,t,i,r,a,o){e=e|0;t=t|0;i=i|0;r=r|0;a=a|0;o=o|0;var f=0,h=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0;y=l;l=l+16|0;p=y+12|0;b=y+8|0;f=y+4|0;w=y;Nr(f,p,t,a);Nr(w,b,i,a);p=s[p>>2]|0;b=s[b>>2]|0;h=(p|0)>(b|0)?p:b;h=h+(h&1)|0;b=s[w>>2]>>h-b;s[w>>2]=b;p=s[f>>2]>>h-p;p=(p|0)>1?p:1;s[f>>2]=p;f=0;m=0;while(1){if((f|0)>=(a|0))break;_=m+((te(n[t+(f<<1)>>1]|0,n[i+(f<<1)>>1]|0)|0)>>h)|0;f=f+1|0;m=_}_=Yi(m,p,13)|0;_=(_|0)>16384?16384:(_|0)<-16384?-16384:_;c=_<<16>>16;u=(te(_>>16,c)|0)+((te(_&65535,c)|0)>>16)|0;i=(u|0)>0?u:0-u|0;i=(i|0)<(o|0)?o:i;v=h>>1;o=s[r>>2]|0;t=re(p|0)|0;f=24-t|0;a=0-f|0;do if(f)if((f|0)<0){f=p<>>(f+32|0);break}else{f=p<<32-f|p>>>f;break}else f=p;while(0);a=((t&1|0)==0?46214:32768)>>>(t>>>1);t=(te(f&127,13959168)|0)>>>16;g=i<<16>>16;t=te((a+((te(a>>16,t)|0)+((te(a&65535,t)|0)>>>16))<>16,g)|0;i=re(p|0)|0;f=24-i|0;a=0-f|0;do if(f)if((f|0)<0){f=p<>>(f+32|0);break}else{f=p<<32-f|p>>>f;break}else f=p;while(0);h=((i&1|0)==0?46214:32768)>>>(i>>>1);d=(te(f&127,13959168)|0)>>>16;d=o+(t+((te((h+((te(h>>16,d)|0)+((te(h&65535,d)|0)>>>16))<>16))|0;s[r>>2]=d;f=u<<16>>16;f=b-((te(m>>16,c)|0)+((te(m&65535,c)|0)>>16)<<4)+((te(p>>16,f)|0)+((te(p&65535,f)|0)>>16)<<6)|0;s[w>>2]=f;c=r+4|0;u=s[c>>2]|0;o=(f|0)<1;if(o){r=0;w=te(0-u>>16,g)|0;v=r<>16;g=w+g|0;g=u+g|0;s[c>>2]=g;v=(d|0)>1;v=v?d:1;v=Yi(g,v,14)|0;g=(v|0)>32767;w=(v|0)<0;v=w?0:v;v=g?32767:v;s[e>>2]=v;l=y;return _|0}i=re(f|0)|0;a=24-i|0;t=0-a|0;do if(a)if((a|0)<0){a=f<>>(a+32|0);break}else{a=f<<32-a|f>>>a;break}else a=f;while(0);w=((i&1|0)==0?46214:32768)>>>(i>>>1);h=(te(a&127,13959168)|0)>>>16;h=te((w+((te(w>>16,h)|0)+((te(w&65535,h)|0)>>>16))<>16,g)|0;if(o){r=0;w=h;v=r<>16;g=w+g|0;g=u+g|0;s[c>>2]=g;v=(d|0)>1;v=v?d:1;v=Yi(g,v,14)|0;g=(v|0)>32767;w=(v|0)<0;v=w?0:v;v=g?32767:v;s[e>>2]=v;l=y;return _|0}i=re(f|0)|0;a=24-i|0;t=0-a|0;do if(a)if((a|0)<0){f=f<>>(a+32|0);break}else{f=f<<32-a|f>>>a;break}while(0);w=((i&1|0)==0?46214:32768)>>>(i>>>1);r=(te(f&127,13959168)|0)>>>16;r=w+((te(w>>16,r)|0)+((te(w&65535,r)|0)>>>16))|0;w=h;v=r<>16;g=w+g|0;g=u+g|0;s[c>>2]=g;v=(d|0)>1;v=v?d:1;v=Yi(g,v,14)|0;g=(v|0)>32767;w=(v|0)<0;v=w?0:v;v=g?32767:v;s[e>>2]=v;l=y;return _|0}function Yi(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,n=0,s=0,a=0;if((e|0)<=0)if(!e)n=32;else{r=0-e|0;s=3}else{r=e;s=3}if((s|0)==3)n=re(r|0)|0;e=e<>16|0)|0)<<16>>16;a=(te(e>>16,t)|0)+((te(e&65535,t)|0)>>16)|0;s=Nn(s|0,((s|0)<0)<<31>>31|0,a|0,((a|0)<0)<<31>>31|0)|0;s=Sn(s|0,I|0,29)|0;s=e-(s&-8)|0;t=a+((te(s>>16,t)|0)+((te(s&65535,t)|0)>>16))|0;r=n+28-r-i|0;if((r|0)>=0)return((r|0)<32?t>>r:0)|0;r=0-r|0;e=-2147483648>>r;n=2147483647>>>r;if((e|0)>(n|0)){if((t|0)>(e|0)){a=e;a=a<(n|0)){a=n;a=a<=15)break;l=n[25372+(a<<1)>>1]|0;u=a+1|0;d=n[25372+(u<<1)>>1]|0;d=(te((d<<16>>16)-l>>16,429522944)|0)+(((d&65535)-l&65535)*6554|0)>>16;c=a&255;f=o;h=0;while(1){if((h|0)>=5){o=f;a=u;continue e}a=l+(te(d,h<<17>>16|1)|0)|0;o=s[b>>2]|0;o=(o|0)>(a|0)?o-a|0:a-o|0;if((o|0)>=(f|0))break e;r[m>>0]=c;r[p>>0]=h;f=o;h=h+1|0;i=a}}d=r[m>>0]|0;p=(d<<24>>24|0)/3|0;r[t+(w*3|0)+2>>0]=p;r[m>>0]=(d&255)+(te(p,-3)|0);s[b>>2]=i;w=w+1|0}s[e>>2]=(s[e>>2]|0)-(s[e+4>>2]|0);return}function Xi(e,t,i,f,u,p){e=e|0;t=t|0;i=i|0;f=f|0;u=u|0;p=p|0;var b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0,I=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,G=0,V=0,W=0,K=0,Z=0,Y=0,$=0,X=0,Q=0,ee=0,ie=0,ne=0,se=0,ae=0,oe=0,fe=0,he=0,ce=0,le=0,ue=0,de=0,pe=0,be=0,me=0,we=0,ge=0,ve=0,_e=0,ye=0,ke=0,Ee=0,Ae=0,Se=0,Me=0,Te=0,Re=0,xe=0,Ce=0,Ie=0,Pe=0,Oe=0,Ne=0,De=0,Le=0,Be=0,Ue=0,je=0,Fe=0,ze=0,qe=0,He=0,Ge=0,Ve=0,We=0,Ke=0,Ze=0,Ye=0,$e=0,Xe=0,Je=0,Qe=0,et=0,tt=0,it=0,rt=0,nt=0,st=0,at=0,ot=0,ft=0,ht=0,ct=0,lt=0;ft=l;l=l+35104|0;qe=ft+272|0;ze=ft+72|0;Be=ft+29992|0;Le=ft+29352|0;le=ft+28712|0;ue=ft+28392|0;Fe=ft+48|0;je=ft+26008|0;Ue=ft+24472|0;ie=ft+11992|0;ne=ft+11896|0;Z=ft+33512|0;fe=ft+9176|0;oe=ft+6456|0;F=ft+32232|0;z=ft+31272|0;j=ft+6384|0;Pe=ft+6320|0;Ne=ft+6256|0;Oe=ft+4720|0;tt=ft+23720|0;se=ft+21032|0;nt=ft+20984|0;st=ft+24|0;at=ft;it=ft+16536|0;rt=ft+12088|0;et=ft+12072|0;Je=ft+33824|0;Qe=ft+12056|0;$e=ft+33816|0;Xe=ft+12040|0;s[Qe>>2]=0;s[Qe+4>>2]=0;s[Qe+8>>2]=0;s[Qe+12>>2]=0;Ke=e+4712|0;Ze=s[Ke>>2]|0;s[Ke>>2]=Ze+1;Ke=e+4862|0;r[Ke>>0]=Ze&3;Ze=e+4684|0;ce=s[Ze>>2]|0;Ye=e+7272+(ce<<2)|0;ce=se+(ce<<2)|0;D=e+5190|0;We=e+4676|0;b=s[We>>2]|0;g=s[e+28>>2]|0;if(g){v=e+24|0;_=s[v>>2]|0;w=256-_<<10;E=w>>16;w=w-(E<<16)|0;e:do if((E|0)<4){if((w|0)<=0){He=17528+(E*12|0)|0;s[qe>>2]=s[He>>2];s[qe+4>>2]=s[He+4>>2];s[qe+8>>2]=s[He+8>>2];He=17588+(E<<3)|0;Ge=s[He+4>>2]|0;Ve=ze;s[Ve>>2]=s[He>>2];s[Ve+4>>2]=Ge;break}A=E+1|0;S=w<<16>>16;if((w|0)<32768){w=0;while(1){if((w|0)==3){w=0;break}Ge=s[17528+(E*12|0)+(w<<2)>>2]|0;Ve=(s[17528+(A*12|0)+(w<<2)>>2]|0)-Ge|0;s[qe+(w<<2)>>2]=Ge+((te(Ve>>16,S)|0)+((te(Ve&65535,S)|0)>>16));w=w+1|0}while(1){if((w|0)==2)break e;Ge=s[17588+(E<<3)+(w<<2)>>2]|0;Ve=(s[17588+(A<<3)+(w<<2)>>2]|0)-Ge|0;s[ze+(w<<2)>>2]=Ge+((te(Ve>>16,S)|0)+((te(Ve&65535,S)|0)>>16));w=w+1|0}}else{w=0;while(1){if((w|0)==3){w=0;break}Ge=s[17528+(A*12|0)+(w<<2)>>2]|0;Ve=Ge-(s[17528+(E*12|0)+(w<<2)>>2]|0)|0;s[qe+(w<<2)>>2]=Ge+((te(Ve>>16,S)|0)+((te(Ve&65535,S)|0)>>16));w=w+1|0}while(1){if((w|0)==2)break e;Ge=s[17588+(A<<3)+(w<<2)>>2]|0;Ve=Ge-(s[17588+(E<<3)+(w<<2)>>2]|0)|0;s[ze+(w<<2)>>2]=Ge+((te(Ve>>16,S)|0)+((te(Ve&65535,S)|0)>>16));w=w+1|0}}}else{s[qe>>2]=s[4394];s[qe+4>>2]=s[4395];s[qe+8>>2]=s[4396];Ve=ze;s[Ve>>2]=35497197;s[Ve+4>>2]=57401098}while(0);w=_+g|0;s[v>>2]=(w|0)>256?256:(w|0)<0?0:w;w=e+16|0;S=0-(s[ze>>2]|0)|0;g=S&16383;x=0-(s[ze+4>>2]|0)|0;v=x&16383;E=s[qe>>2]|0;_=E>>16;E=E&65535;A=e+20|0;S=S>>>14<<16>>16;T=s[qe+4>>2]|0;M=T>>16;T=T&65535;x=x>>>14<<16>>16;I=s[qe+8>>2]|0;C=I>>16;I=I&65535;P=0;while(1){if((P|0)>=(b|0))break;Ve=D+(P<<1)|0;He=n[Ve>>1]|0;Ge=(s[w>>2]|0)+((te(_,He)|0)+((te(E,He)|0)>>16))<<2;Ce=Ge>>16;Ie=Ge&65532;s[w>>2]=(s[A>>2]|0)+(((te(Ce,g)|0)+((te(Ie,g)|0)>>>16)>>13)+1>>1)+((te(Ce,S)|0)+((te(Ie,S)|0)>>16))+((te(M,He)|0)+((te(T,He)|0)>>16));s[A>>2]=(((te(Ce,v)|0)+((te(Ie,v)|0)>>>16)>>13)+1>>1)+((te(Ce,x)|0)+((te(Ie,x)|0)>>16))+((te(C,He)|0)+((te(I,He)|0)>>16));Ge=Ge+16383>>14;n[Ve>>1]=(Ge|0)>32767?32767:((Ge|0)<-32768?-32768:Ge)&65535;P=P+1|0}b=s[We>>2]|0}Ve=e+4668|0;g=Ye+((s[Ve>>2]|0)*5<<2)|0;while(1){w=b+-1|0;if((b|0)<=0){b=0;break}h[g+(w<<2)>>2]=+(n[D+(w<<1)>>1]|0);b=w}while(1){if((b|0)==8)break;Ge=Ye+(((s[Ve>>2]|0)*5|0)+(te(b,s[We>>2]>>3)|0)<<2)|0;h[Ge>>2]=+h[Ge>>2]+ +(1-(b&2)|0)*9.999999974752427e-7;b=b+1|0}Ge=e+4772|0;e:do if(!(s[Ge>>2]|0)){v=s[e+4688>>2]|0;M=s[Ze>>2]|0;S=v+(s[We>>2]|0)+M|0;M=Ye+(0-M<<2)|0;_=s[e+4640>>2]|0;b=M+(S<<2)+(0-_<<2)|0;y=3.1415927410125732/+(v+1|0);k=2-y*y;m=0;w=0;while(1){if((w|0)>=(v|0))break;h[Oe+(w<<2)>>2]=+h[b+(w<<2)>>2]*.5*(m+y);He=w|1;h[Oe+(He<<2)>>2]=+h[b+(He<<2)>>2]*y;U=k*y-m;He=w|2;h[Oe+(He<<2)>>2]=+h[b+(He<<2)>>2]*.5*(y+U);He=w|3;h[Oe+(He<<2)>>2]=+h[b+(He<<2)>>2]*U;m=U;y=k*U-y;w=w+4|0}He=Oe+(v<<2)|0;g=b+(v<<2)|0;w=_-(v<<1)|0;Mn(He|0,g|0,w<<2|0)|0;b=He+(w<<2)|0;w=g+(w<<2)|0;m=1;y=k*.5;g=0;while(1){if((g|0)>=(v|0))break;h[b+(g<<2)>>2]=+h[w+(g<<2)>>2]*.5*(m+y);He=g|1;h[b+(He<<2)>>2]=+h[w+(He<<2)>>2]*y;U=k*y-m;He=g|2;h[b+(He<<2)>>2]=+h[w+(He<<2)>>2]*.5*(y+U);He=g|3;h[b+(He<<2)>>2]=+h[w+(He<<2)>>2]*U;m=U;y=k*U-y;g=g+4|0}A=e+4740|0;E=s[A>>2]|0;b=(E|0)<(_|0)?E+1|0:_;w=0;while(1){if((w|0)>=(b|0))break;h[j+(w<<2)>>2]=+ir(Oe,Oe+(w<<2)|0,_-w|0);w=w+1|0}y=+h[j>>2];y=y+(y*.0010000000474974513+1);h[j>>2]=y;b=0;while(1){if((b|0)>(E|0))break;U=+h[j+(b<<2)>>2];c[qe+(b<<4)+8>>3]=U;c[qe+(b<<4)>>3]=U;b=b+1|0}he=qe+8|0;g=0;t:while(1){if((E|0)<=(g|0))break;b=g+1|0;m=+c[he>>3];m=-+c[qe+(b<<4)>>3]/(m>9.999999717180685e-10?m:9.999999717180685e-10);h[Ne+(g<<2)>>2]=m;w=E-g|0;v=0;while(1){if((v|0)>=(w|0)){g=b;continue t}Ie=qe+(v+g+1<<4)|0;U=+c[Ie>>3];He=qe+(v<<4)+8|0;B=+c[He>>3];c[Ie>>3]=U+B*m;c[He>>3]=B+U*m;v=v+1|0}}U=+c[he>>3];ae=tt+704|0;h[ae>>2]=y/(U>1?U:1);g=0;while(1){if((g|0)>=(E|0))break;m=+h[Ne+(g<<2)>>2];b=g+1|0;w=b>>1;v=0;while(1){if((v|0)>=(w|0))break;Ie=Pe+(v<<2)|0;U=+h[Ie>>2];He=Pe+(g-v+-1<<2)|0;B=+h[He>>2];h[Ie>>2]=U+B*m;h[He>>2]=B+U*m;v=v+1|0}h[Pe+(g<<2)>>2]=-m;g=b}b=E+-1|0;m=.9900000095367432;w=0;while(1){if((w|0)>=(b|0))break;He=Pe+(w<<2)|0;h[He>>2]=+h[He>>2]*m;m=m*.9900000095367432;w=w+1|0}He=Pe+(b<<2)|0;h[He>>2]=+h[He>>2]*m;Ji(se,Pe,M,S,E);He=e+4857|0;b=r[He>>0]|0;do if(b<<24>>24!=0?(s[e+4756>>2]|0)==0:0){R=.6000000238418579-+(s[A>>2]|0)*.004000000189989805-+(s[e+4624>>2]|0)*.10000000149011612*.00390625-+(r[e+4633>>0]>>1|0)*.15000000596046448-+(s[e+4804>>2]|0)*.10000000149011612*30517578125e-15;D=tt+228|0;Q=e+4854|0;ee=e+4856|0;j=e+10152|0;I=s[e+4636>>2]|0;k=+(s[e+4744>>2]|0)*152587890625e-16;V=s[Ve>>2]|0;W=s[e+4736>>2]|0;$=s[e+4672>>2]|0;E=te(($*5|0)+20|0,V)|0;C=$*20|0;w=C+80|0;x=($*40|0)+160|0;K=V*5|0;X=V<<1;Y=V*18|0;G=Y+-1|0;P=(V|0)==16;t:do if(P){b=E;while(1){_=b+-1|0;if((b|0)<=0)break;m=+h[se+(_<<2)>>2];g=(h[d>>2]=m,s[d>>2]|0);v=(g&2130706432)>>>0>1249902592;if(!v){b=(g|0)<0;y=b?m+-8388608+8388608:m+8388608+-8388608;if(y==0)y=b?-0:0}else y=m;if((~~y|0)<=32767){if(!v){b=(g|0)<0;y=b?m+-8388608+8388608:m+8388608+-8388608;if(y==0)y=b?-0:0}else y=m;if((~~y|0)<-32768)b=-32768;else{if(!v){b=(g|0)<0;m=b?m+-8388608+8388608:m+8388608+-8388608;if(m==0)m=b?-0:0}b=~~m}}else b=32767;n[F+(_<<1)>>1]=b;b=_}g=Fe;s[g>>2]=0;s[g+4>>2]=0;Pr(Fe,le,F,E);g=x;while(1){b=g+-1|0;if((g|0)<=0){b=le;break t}h[Be+(b<<2)>>2]=+(n[le+(b<<1)>>1]|0); -g=b}}else{if((V|0)==12)b=E;else{b=x;while(1){_=b+-1|0;if((b|0)<=0)break;m=+h[se+(_<<2)>>2];g=(h[d>>2]=m,s[d>>2]|0);v=(g&2130706432)>>>0>1249902592;if(!v){b=(g|0)<0;y=b?m+-8388608+8388608:m+8388608+-8388608;if(y==0)y=b?-0:0}else y=m;if((~~y|0)<=32767){if(!v){b=(g|0)<0;y=b?m+-8388608+8388608:m+8388608+-8388608;if(y==0)y=b?-0:0}else y=m;if((~~y|0)<-32768)b=-32768;else{if(!v){b=(g|0)<0;m=b?m+-8388608+8388608:m+8388608+-8388608;if(m==0)m=b?-0:0}b=~~m}}else b=32767;n[le+(_<<1)>>1]=b;b=_}b=le;break}while(1){_=b+-1|0;if((b|0)<=0)break;m=+h[se+(_<<2)>>2];g=(h[d>>2]=m,s[d>>2]|0);v=(g&2130706432)>>>0>1249902592;if(!v){b=(g|0)<0;y=b?m+-8388608+8388608:m+8388608+-8388608;if(y==0)y=b?-0:0}else y=m;if((~~y|0)<=32767){if(!v){b=(g|0)<0;y=b?m+-8388608+8388608:m+8388608+-8388608;if(y==0)y=b?-0:0}else y=m;if((~~y|0)<-32768)b=-32768;else{if(!v){b=(g|0)<0;m=b?m+-8388608+8388608:m+8388608+-8388608;if(m==0)m=b?-0:0}b=~~m}}else b=32767;n[z+(_<<1)>>1]=b;b=_}s[Fe>>2]=0;s[Fe+4>>2]=0;s[Fe+8>>2]=0;s[Fe+12>>2]=0;s[Fe+16>>2]=0;s[Fe+20>>2]=0;s[qe>>2]=0;s[qe+4>>2]=0;s[qe+8>>2]=0;s[qe+12>>2]=0;S=Fe+16|0;M=qe+16|0;T=Fe+20|0;_=le;A=z;b=E;while(1){E=(b|0)<480?b:480;g=0;while(1){if((g|0)>=(E|0)){g=qe;v=E;break}Ie=(s[S>>2]|0)+(n[A+(g<<1)>>1]<<8)|0;s[M+(g<<2)>>2]=Ie;Ie=Ie<<2;Ce=Ie>>16;Ie=Ie&65532;s[S>>2]=(s[T>>2]|0)+((te(Ce,-2797)|0)+((te(Ie,-2797)|0)>>16));s[T>>2]=(te(Ce,-6507)|0)+((te(Ie,-6507)|0)>>16);g=g+1|0}while(1){if((v|0)<=2)break;Se=s[g>>2]|0;Te=g+4|0;Me=s[Te>>2]|0;Re=g+8|0;Ce=s[Re>>2]|0;Ie=g+12|0;xe=s[Ie>>2]|0;xe=(((Se>>16)*4697|0)+(((Se&65535)*4697|0)>>>16)+(((Me>>16)*10739|0)+(((Me&65535)*10739|0)>>>16))+(((Ce>>16)*8276|0)+(((Ce&65535)*8276|0)>>>16))+(((xe>>16)*1567|0)+(((xe&65535)*1567|0)>>>16))>>5)+1>>1;n[_>>1]=(xe|0)>32767?32767:((xe|0)<-32768?-32768:xe)&65535;Te=s[Te>>2]|0;Re=s[Re>>2]|0;xe=s[Ie>>2]|0;Ce=s[g+16>>2]|0;Ce=(((Te>>16)*1567|0)+(((Te&65535)*1567|0)>>>16)+(((Re>>16)*8276|0)+(((Re&65535)*8276|0)>>>16))+(((xe>>16)*10739|0)+(((xe&65535)*10739|0)>>>16))+(((Ce>>16)*4697|0)+(((Ce&65535)*4697|0)>>>16))>>5)+1>>1;n[_+2>>1]=(Ce|0)>32767?32767:((Ce|0)<-32768?-32768:Ce)&65535;_=_+4|0;g=Ie;v=v+-3|0}b=b-E|0;if((b|0)<=0)break;Ie=qe+(E<<2)|0;s[qe>>2]=s[Ie>>2];s[qe+4>>2]=s[Ie+4>>2];s[qe+8>>2]=s[Ie+8>>2];s[qe+12>>2]=s[Ie+12>>2];A=A+(E<<1)|0}g=qe+(E<<2)|0;s[Fe>>2]=s[g>>2];s[Fe+4>>2]=s[g+4>>2];s[Fe+8>>2]=s[g+8>>2];s[Fe+12>>2]=s[g+12>>2];g=x;while(1){b=g+-1|0;if((g|0)<=0){b=le;break t}h[Be+(b<<2)>>2]=+(n[le+(b<<1)>>1]|0);g=b}}while(0);Ie=Fe;s[Ie>>2]=0;s[Ie+4>>2]=0;Pr(Fe,ue,b,x);while(1){b=w+-1|0;if((w|0)<=0)break;h[Le+(b<<2)>>2]=+(n[ue+(b<<1)>>1]|0);w=b}b=C+79|0;while(1){if((b|0)<=0)break;w=Le+(b<<2)|0;b=b+-1|0;m=+(~~+h[w>>2]|0)+ +h[Le+(b<<2)>>2];if(!(m>32767)){if(m<-32768)m=-32768}else m=32767;h[w>>2]=+(~~m<<16>>16)}kn(je|0,0,$*596|0)|0;b=$>>1;w=Ue+256|0;A=je+32|0;_=0;E=Le+320|0;while(1){if((_|0)>=(b|0)){b=72;break}g=E+-32|0;mi(E,E+-288|0,Ue,40,65);U=+h[w>>2];m=+tr(E,40);m=m+ +tr(g,40)+16e4;h[A>>2]=+h[A>>2]+U*2/m;v=9;while(1){if((v|0)==73)break;Ie=g+-4|0;B=+h[Ie>>2];U=+h[g+156>>2];U=m+(B*B-U*U);Ce=je+(v<<2)|0;h[Ce>>2]=+h[Ce>>2]+ +h[Ue+(72-v<<2)>>2]*2/U;g=Ie;v=v+1|0;m=U}_=_+1|0;E=E+160|0}while(1){if((b|0)<=7)break;Ie=je+(b<<2)|0;U=+h[Ie>>2];h[Ie>>2]=U-U*+(b|0)*.000244140625;b=b+-1|0}E=W<<1;w=E+4|0;b=0;while(1){if((b|0)>=(w|0)){b=1;break}s[ne+(b<<2)>>2]=b;b=b+1|0}while(1){if((b|0)>=(w|0))break;m=+h[A+(b<<2)>>2];v=b;while(1){g=v+-1|0;if((v|0)<=0)break;y=+h[A+(g<<2)>>2];if(!(m>y))break;h[A+(v<<2)>>2]=y;s[ne+(v<<2)>>2]=s[ne+(g<<2)>>2];v=g}h[A+(v<<2)>>2]=m;s[ne+(v<<2)>>2]=b;b=b+1|0}_=A+(E+3<<2)|0;b=E+2|0;g=w;while(1){if((g|0)>=65)break;m=+h[A+(g<<2)>>2];if(m>+h[_>>2]){v=b;while(1){if((v|0)<=-1)break;y=+h[A+(v<<2)>>2];if(!(m>y))break;Ie=v+1|0;h[A+(Ie<<2)>>2]=y;s[ne+(Ie<<2)>>2]=s[ne+(v<<2)>>2];v=v+-1|0}Ie=v+1|0;h[A+(Ie<<2)>>2]=m;s[ne+(Ie<<2)>>2]=g}g=g+1|0}m=+h[A>>2];do if(m<.20000000298023224){kn(D|0,0,$<<2|0)|0;h[j>>2]=0;n[Q>>1]=0;r[ee>>0]=0;b=0}else{m=m*k;b=0;while(1){if((b|0)>=(w|0))break;if(!(+h[je+(b+8<<2)>>2]>m)){w=b;break}Ie=ne+(b<<2)|0;s[Ie>>2]=(s[Ie>>2]<<1)+16;b=b+1|0}b=11;while(1){if((b|0)==148){b=0;break}n[Z+(b<<1)>>1]=0;b=b+1|0}while(1){if((b|0)>=(w|0)){b=146;break}n[Z+(s[ne+(b<<2)>>2]<<1)>>1]=1;b=b+1|0}while(1){if((b|0)<=15){w=16;C=0;break}Ie=b+-1|0;Ce=Z+(b<<1)|0;n[Ce>>1]=(o[Ce>>1]|0)+((o[Z+(Ie<<1)>>1]|0)+(o[Z+(b+-2<<1)>>1]|0));b=Ie}while(1){if((w|0)==144){b=146;break}b=w+1|0;if((n[Z+(b<<1)>>1]|0)<=0){w=b;continue}s[ne+(C<<2)>>2]=w;w=b;C=C+1|0}while(1){if((b|0)<=15){w=16;b=0;break}Ie=b+-1|0;Ce=Z+(b<<1)|0;n[Ce>>1]=(o[Ce>>1]|0)+((o[Z+(Ie<<1)>>1]|0)+(o[Z+(b+-2<<1)>>1]|0)+(o[Z+(b+-3<<1)>>1]|0));b=Ie}while(1){if((w|0)==147)break;if((n[Z+(w<<1)>>1]|0)>0){n[Z+(b<<1)>>1]=w+65534;b=b+1|0}w=w+1|0}kn(je|0,0,2384)|0;A=(V|0)==8;_=0;E=A?se+640|0:Be+640|0;while(1){if((_|0)>=($|0))break;y=+tr(E,40)+1;v=0;while(1){if((v|0)>=(b|0))break;g=n[Z+(v<<1)>>1]|0;w=E+(0-g<<2)|0;m=+ir(w,E,40);if(m>0)m=m*2/(+tr(w,40)+y);else m=0;h[je+(_*596|0)+(g<<2)>>2]=m;v=v+1|0}_=_+1|0;E=E+160|0}if((I|0)>0){if((V|0)==12)b=(I<<1|0)/3|0;else b=I>>(P&1);w=b;U=+zr(+(b|0))*3.32192809488736}else{w=I;U=0}F=($|0)==4;if(F){T=32969;x=11;M=A&(W|0)>0?11:3}else{T=32935;x=3;M=3}L=+($|0);B=L*.20000000298023224;A=(w|0)>0;R=L*R;w=0;O=0;N=-1e3;E=0;S=-1;while(1){if((E|0)>=(C|0))break;_=s[ne+(E<<2)>>2]|0;v=0;while(1){if((v|0)>=(M|0)){g=0;k=-1e3;b=0;break}b=ie+(v<<2)|0;h[b>>2]=0;m=0;g=0;while(1){if((g|0)>=($|0))break;k=m+ +h[je+(g*596|0)+(_+(r[T+((te(g,x)|0)+v)>>0]|0)<<2)>>2];h[b>>2]=k;m=k;g=g+1|0}v=v+1|0}while(1){if((b|0)>=(M|0))break;y=+h[ie+(b<<2)>>2];Ie=y>k;g=Ie?b:g;k=Ie?y:k;b=b+1|0}y=+zr(+(_|0))*3.32192809488736;m=k-B*y;if(A){y=y-U;y=y*y;m=m-B*+h[j>>2]*y/(y+.5)}Ie=m>N&k>R;w=Ie?g:w;O=Ie?k:O;N=Ie?m:N;E=E+1|0;S=Ie?_:S}if((S|0)==-1){s[D>>2]=0;s[D+4>>2]=0;s[D+8>>2]=0;s[D+12>>2]=0;h[j>>2]=0;n[Q>>1]=0;r[ee>>0]=0;b=0;break}h[j>>2]=O/L;if((V|0)>8){if((V|0)==12){b=(S<<16>>16)*3|0;b=(b>>1)+(b&1)|0}else b=S<<1;if((X|0)<(Y|0))if((b|0)<(Y|0))E=(b|0)<(X|0)?X:b;else E=G;else if((b|0)>(X|0))E=X;else E=(b|0)<(G|0)?G:b;D=E+-2|0;D=(D|0)>(X|0)?D:X;j=E+2|0;j=(j|0)<(G|0)?j:G;if(F){T=33013;x=33149+(W<<3)|0;C=34;I=r[33173+W>>0]|0}else{T=32941;x=32965;C=12;I=12}P=se+(V*20<<2)|0;_=0-D|0;S=0;M=P;while(1){if((S|0)>=($|0))break;b=S<<1;A=r[x+b>>0]|0;b=r[x+(b|1)>>0]|0;mi(M,M+(_<<2)+(0-b<<2)|0,qe,K,b-A+1|0);w=A;g=0;while(1){if((b|0)<(w|0))break;s[ze+(g<<2)>>2]=s[qe+(b-w<<2)>>2];w=w+1|0;g=g+1|0}b=te(S,C)|0;g=0;while(1){if((g|0)>=(I|0))break;w=(r[T+(b+g)>>0]|0)-A|0;v=0;while(1){if((v|0)==5)break;s[oe+(S*680|0)+(g*20|0)+(v<<2)>>2]=s[ze+(w+v<<2)>>2];v=v+1|0}g=g+1|0}S=S+1|0;M=M+(K<<2)|0}if(F){A=33013;S=33149+(W<<3)|0;M=34;x=r[33173+W>>0]|0}else{A=32941;S=32965;M=12;x=12}T=0;C=P;while(1){if((T|0)>=($|0))break;w=T<<1;_=r[S+w>>0]|0;b=C+(0-(_+D)<<2)|0;m=+tr(b,K)+.001;h[ze>>2]=m;w=(r[S+(w|1)>>0]|0)-_|0;g=1;while(1){if((g|0)>(w|0))break;B=+h[b+(K-g<<2)>>2];U=+h[b+(0-g<<2)>>2];U=m-B*B+U*U;h[ze+(g<<2)>>2]=U;m=U;g=g+1|0}b=te(T,M)|0;g=0;while(1){if((g|0)>=(x|0))break;w=(r[A+(b+g)>>0]|0)-_|0;v=0;while(1){if((v|0)==5)break;s[fe+(T*680|0)+(g*20|0)+(v<<2)>>2]=s[ze+(w+v<<2)>>2];v=v+1|0}g=g+1|0}T=T+1|0;C=C+(K<<2)|0}O=.05000000074505806/+(E|0);if(F){M=33013;T=34;S=r[33173+W>>0]|0}else{M=32941;T=12;S=12}R=+tr(P,te(K,$)|0)+1;w=0;m=-1e3;_=D;A=0;while(1){if((_|0)>(j|0))break;else{v=0;b=E}while(1){if((v|0)<(S|0)){y=0;k=R;g=0}else break;while(1){if((g|0)>=($|0))break;y=y+ +h[oe+(g*680|0)+(v*20|0)+(A<<2)>>2];k=k+ +h[fe+(g*680|0)+(v*20|0)+(A<<2)>>2];g=g+1|0}if(y>0)y=y*2/k*(1-O*+(v|0));else y=0;if(y>m){Ie=(_+(r[33013+v>>0]|0)|0)<(Y|0);w=Ie?v:w;m=Ie?y:m;b=Ie?_:b}v=v+1|0}_=_+1|0;A=A+1|0;E=b}g=(X|0)>(Y|0);_=0;while(1){if((_|0)>=($|0))break;b=E+(r[M+((te(_,T)|0)+w)>>0]|0)|0;v=tt+228+(_<<2)|0;s[v>>2]=b;do if(g){if((b|0)>(X|0)){b=X;break}b=(b|0)<(Y|0)?Y:b}else{if((b|0)>(Y|0)){b=Y;break}b=(b|0)<(X|0)?X:b}while(0);s[v>>2]=b;_=_+1|0}b=E-X|0}else{b=0;while(1){if((b|0)>=($|0))break;Ie=S+(r[T+((te(b,x)|0)+w)>>0]|0)|0;s[tt+228+(b<<2)>>2]=(Ie|0)>144?144:(Ie|0)<16?16:Ie;b=b+1|0}b=S+65520|0}n[Q>>1]=b;r[ee>>0]=w;b=1}while(0);if(b){r[He>>0]=2;b=2;break}else{r[He>>0]=1;b=1;break}}else ot=264;while(0);if((ot|0)==264){Ie=tt+228|0;s[Ie>>2]=0;s[Ie+4>>2]=0;s[Ie+8>>2]=0;s[Ie+12>>2]=0;n[e+4854>>1]=0;r[e+4856>>0]=0;h[e+10152>>2]=0}A=Ye+(0-(s[e+4692>>2]|0)<<2)|0;Te=e+4808|0;y=+(s[Te>>2]|0);m=y*.0078125;j=s[e+4788>>2]|0;k=+(j+(s[e+4792>>2]|0)|0)*.5*30517578125e-15;Re=tt+696|0;h[Re>>2]=k;N=1/(+J(+-((m+-20)*.25))+1);xe=tt+700|0;h[xe>>2]=N;if(!(s[e+4768>>2]|0)){U=1-+(s[e+4624>>2]|0)*.00390625;m=m-N*2*(k*.5+.5)*U*U}F=b<<24>>24==2;do if(!F){O=m+(y*-.4000000059604645*.0078125+6)*(1-k);w=s[Ve>>2]<<1;_=e+4672|0;b=s[_>>2]|0;E=((b<<16>>16)*5|0)/2|0;k=+(w|0);m=0;g=0;y=0;v=ce;while(1){if((g|0)>=(E|0))break;R=+zr(k+ +tr(v,w))*3.32192809488736;if((g|0)>0)m=m+ +q(+(R-y));g=g+1|0;y=R;v=v+(w<<2)|0}w=e+4858|0;if(m>+(E+-1|0)*.6000000238418579){r[w>>0]=0;Ie=_;break}else{r[w>>0]=1;Ie=_;break}}else{O=m+ +h[e+10152>>2]*2;r[e+4858>>0]=0;b=e+4672|0;Ie=b;b=s[b>>2]|0}while(0);B=+h[ae>>2]*.0010000000474974513;B=.9399999976158142/(B*B+1);D=s[e+4764>>2]|0;R=+(D|0)*152587890625e-16+N*.009999999776482582;C=e+4696|0;Ce=e+4680|0;I=e+4728|0;N=R;L=1-R*R;P=0;E=A;while(1){if((P|0)>=(b|0))break;w=s[Ve>>2]|0;g=w*3|0;A=s[C>>2]|0;_=(A-g|0)/2|0;y=3.1415927410125732/+(_+1|0);k=2-y*y;m=0;v=0;while(1){if((v|0)>=(_|0))break;h[Be+(v<<2)>>2]=+h[E+(v<<2)>>2]*.5*(m+y);Me=v|1;h[Be+(Me<<2)>>2]=+h[E+(Me<<2)>>2]*y;U=k*y-m;Me=v|2;h[Be+(Me<<2)>>2]=+h[E+(Me<<2)>>2]*.5*(y+U);Me=v|3;h[Be+(Me<<2)>>2]=+h[E+(Me<<2)>>2]*U;m=U;y=k*U-y;v=v+4|0}Mn(Be+(_<<2)|0,E+(_<<2)|0,w*12|0)|0;g=_+g|0;w=Be+(g<<2)|0;g=E+(g<<2)|0;m=1;y=k*.5;v=0;while(1){if((v|0)>=(_|0))break;h[w+(v<<2)>>2]=+h[g+(v<<2)>>2]*.5*(m+y);Me=v|1;h[w+(Me<<2)>>2]=+h[g+(Me<<2)>>2]*y;U=k*y-m;Me=v|2;h[w+(Me<<2)>>2]=+h[g+(Me<<2)>>2]*.5*(y+U);Me=v|3;h[w+(Me<<2)>>2]=+h[g+(Me<<2)>>2]*U;m=U;y=k*U-y;v=v+4|0}E=E+(s[Ce>>2]<<2)|0;S=(D|0)>0;x=s[I>>2]|0;t:do if(S){kn(qe|0,0,200)|0;kn(ze|0,0,200)|0;g=qe+(x<<3)|0;v=ze+(x<<3)|0;m=0;_=0;while(1){if((_|0)>=(A|0)){w=0;break}w=0;y=+h[Be+(_<<2)>>2];while(1){if((w|0)>=(x|0))break;Se=w|1;Ae=qe+(Se<<3)|0;ht=+c[Ae>>3];U=m+N*(ht-y);c[qe+(w<<3)>>3]=y;Me=ze+(w<<3)|0;c[Me>>3]=+c[Me>>3]+ +c[qe>>3]*y;Me=w+2|0;k=+c[qe+(Me<<3)>>3];c[Ae>>3]=U;Se=ze+(Se<<3)|0;c[Se>>3]=+c[Se>>3]+ +c[qe>>3]*U;m=k;w=Me;y=ht+N*(k-U)}c[g>>3]=y;m=+c[qe>>3];c[v>>3]=+c[v>>3]+m*y;_=_+1|0}while(1){if((w|0)>(x|0))break;h[Le+(w<<2)>>2]=+c[ze+(w<<3)>>3];w=w+1|0}}else{w=(x|0)<(A|0)?x+1|0:A;g=0;while(1){if((g|0)>=(w|0))break t;h[Le+(g<<2)>>2]=+ir(Be,Be+(g<<2)|0,A-g|0);g=g+1|0}}while(0);ht=+h[Le>>2];h[Le>>2]=ht+(ht*29999999242136255e-21+1);w=0;while(1){if((w|0)>(x|0)){v=0;break}ht=+h[Le+(w<<2)>>2];c[qe+(w<<4)+8>>3]=ht;c[qe+(w<<4)>>3]=ht;w=w+1|0}t:while(1){if((x|0)<=(v|0))break;w=v+1|0;m=+c[he>>3];m=-+c[qe+(w<<4)>>3]/(m>9.999999717180685e-10?m:9.999999717180685e-10);h[le+(v<<2)>>2]=m;g=x-v|0;_=0;while(1){if((_|0)>=(g|0)){v=w;continue t}Se=qe+(_+v+1<<4)|0;ht=+c[Se>>3];Me=qe+(_<<4)+8|0;U=+c[Me>>3];c[Se>>3]=ht+U*m;c[Me>>3]=U+ht*m;_=_+1|0}}m=+c[he>>3];T=tt+244+(P*24<<2)|0;v=0;while(1){if((v|0)>=(x|0))break;y=+h[le+(v<<2)>>2];w=v+1|0;g=w>>1;_=0;while(1){if((_|0)>=(g|0))break;Se=T+(_<<2)|0;ht=+h[Se>>2];Me=T+(v-_+-1<<2)|0;U=+h[Me>>2];h[Se>>2]=ht+U*y;h[Me>>2]=U+ht*y;_=_+1|0}h[T+(v<<2)>>2]=-y;v=w}y=+H(+m);w=tt+(P<<2)|0;h[w>>2]=y;M=x+-1|0;if(S){m=+h[T+(M<<2)>>2];g=x+-2|0;while(1){m=R*m;if((g|0)<=-1)break;m=+h[T+(g<<2)>>2]-m;g=g+-1|0}h[w>>2]=y*(1/(m+1));m=B;w=0}else{m=B;w=0}while(1){if((w|0)>=(M|0))break;Me=T+(w<<2)|0;h[Me>>2]=+h[Me>>2]*m;m=m*B;w=w+1|0}A=T+(M<<2)|0;m=+h[A>>2]*m;h[A>>2]=m;t:do if(S){w=x;while(1){if((w|0)<=1)break;Me=T+(w+-2<<2)|0;ht=+h[Me>>2]-m*R;h[Me>>2]=ht;m=ht;w=w+-1|0}m=L/(+h[T>>2]*R+1);w=0;while(1){if((w|0)>=(x|0)){w=0;_=0;break}Me=T+(w<<2)|0;h[Me>>2]=+h[Me>>2]*m;w=w+1|0}while(1){if((_|0)<10){g=0;v=w;y=-1}else break t;while(1){if((g|0)>=(x|0))break;ht=+q(+ +h[T+(g<<2)>>2]);Me=ht>y;Se=Me?g:v;g=g+1|0;v=Se;y=Me?ht:y}if(!(y<=3.999000072479248))w=1;else break t;while(1){if((w|0)>=(x|0))break;Me=T+(w+-1<<2)|0;h[Me>>2]=+h[Me>>2]+ +h[T+(w<<2)>>2]*R;w=w+1|0}m=1/m;w=0;while(1){if((w|0)>=(x|0))break;Me=T+(w<<2)|0;h[Me>>2]=+h[Me>>2]*m;w=w+1|0}m=.9900000095367432-(+(_|0)*.10000000149011612+.800000011920929)*(y+-3.999000072479248)/(y*+(v+1|0));y=m;w=0;while(1){if((w|0)>=(M|0))break;Me=T+(w<<2)|0;h[Me>>2]=+h[Me>>2]*y;y=y*m;w=w+1|0}m=+h[A>>2]*y;h[A>>2]=m;w=x;while(1){if((w|0)<=1)break;Me=T+(w+-2<<2)|0;ht=+h[Me>>2]-m*R;h[Me>>2]=ht;m=ht;w=w+-1|0}m=L/(+h[T>>2]*R+1);w=0;while(1){if((w|0)>=(x|0))break;Me=T+(w<<2)|0;h[Me>>2]=+h[Me>>2]*m;w=w+1|0}w=v;_=_+1|0}}else{w=0;v=0;while(1){if((v|0)<10){g=0;m=-1}else break t;while(1){if((g|0)>=(x|0))break;ht=+q(+ +h[T+(g<<2)>>2]);Me=ht>m;Se=Me?g:w;g=g+1|0;w=Se;m=Me?ht:m}if(m<=3.999000072479248)break t;m=.9900000095367432-(+(v|0)*.10000000149011612+.800000011920929)*(m+-3.999000072479248)/(m*+(w+1|0));y=m;g=0;while(1){if((g|0)>=(M|0))break;Me=T+(g<<2)|0;h[Me>>2]=+h[Me>>2]*y;y=y*m;g=g+1|0}h[A>>2]=+h[A>>2]*y;v=v+1|0}}while(0);P=P+1|0}m=+mt(+(O*-.1599999964237213));w=0;while(1){if((w|0)>=(b|0))break;Me=tt+(w<<2)|0;h[Me>>2]=+h[Me>>2]*m+1.2483305931091309;w=w+1|0}Me=e+4624|0;m=+(s[Me>>2]|0);y=((+(j|0)*30517578125e-15+-1)*.5+1)*4*(m*.00390625);t:do if(F){w=0;while(1){if((w|0)>=(b|0))break;ht=.20000000298023224/+(s[Ve>>2]|0)+3/+(s[tt+228+(w<<2)>>2]|0);h[tt+628+(w<<2)>>2]=ht+-1;h[tt+644+(w<<2)>>2]=1-ht-ht*y;w=w+1|0}y=-.25-m*.26249998807907104*.00390625}else{ht=1.2999999523162842/+(s[Ve>>2]|0);g=tt+628|0;h[g>>2]=ht+-1;v=tt+644|0;h[v>>2]=1-ht-ht*y*.6000000238418579;w=1;while(1){if((w|0)>=(b|0)){y=-.25;break t}s[tt+628+(w<<2)>>2]=s[g>>2];s[tt+644+(w<<2)>>2]=s[v>>2];w=w+1|0}}while(0);if(F)m=((1-(1-+h[xe>>2])*+h[Re>>2])*.20000000298023224+.30000001192092896)*+H(+ +h[e+10152>>2]);else m=0;w=e+7264|0;g=e+7268|0;v=0;while(1){if((v|0)>=(b|0))break;ht=+h[w>>2];ht=ht+(m-ht)*.4000000059604645;h[w>>2]=ht;h[tt+676+(v<<2)>>2]=ht;ht=+h[g>>2];ht=ht+(y-ht)*.4000000059604645;h[g>>2]=ht;h[tt+660+(v<<2)>>2]=ht;v=v+1|0}w=0;while(1){if((w|0)>=(b|0))break;h[Fe+(w<<2)>>2]=1/+h[tt+(w<<2)>>2];w=w+1|0}if(F){x=s[Ce>>2]|0;C=x+5|0;A=ce;S=le;M=0;T=ue;while(1){if((M|0)>=(b|0))break;v=A+(-2-(s[tt+228+(M<<2)>>2]|0)<<2)|0;w=v+16|0;m=+tr(w,x);h[S>>2]=m;g=1;while(1){if((g|0)==5)break;U=+h[w+(0-g<<2)>>2];ht=+h[w+(x-g<<2)>>2];ht=m+(U*U-ht*ht);h[S+(g*6<<2)>>2]=ht;m=ht;g=g+1|0}E=1;_=v+12|0;while(1){if((E|0)==5){g=0;break}m=+ir(w,_,x);ht=m;h[S+(E*5<<2)>>2]=ht;h[S+(E<<2)>>2]=ht;g=5-E|0;v=1;while(1){if((v|0)>=(g|0))break;Ae=0-v|0;Se=x-v|0;ht=m+(+h[w+(Ae<<2)>>2]*+h[_+(Ae<<2)>>2]-+h[w+(Se<<2)>>2]*+h[_+(Se<<2)>>2]);U=ht;Se=E+v|0;h[S+((Se*5|0)+v<<2)>>2]=U;h[S+((v*5|0)+Se<<2)>>2]=U;m=ht;v=v+1|0}E=E+1|0;_=_+-4|0}while(1){if((g|0)==5)break;h[T+(g<<2)>>2]=+ir(w,A,x);g=g+1|0;w=w+-4|0}ht=+tr(A,C);m=(+h[S>>2]+ +h[S+96>>2])*.014999999664723873+1;m=1/(ht>m?ht:m);w=0;while(1){if((w|0)>=24){w=24;break}Se=S+(w<<2)|0;h[Se>>2]=+h[Se>>2]*m;Se=S+((w|1)<<2)|0;h[Se>>2]=+h[Se>>2]*m;Se=S+((w|2)<<2)|0;h[Se>>2]=+h[Se>>2]*m;Se=S+((w|3)<<2)|0;h[Se>>2]=+h[Se>>2]*m;w=w+4|0}while(1){if((w|0)==25){w=0;break}Se=S+(w<<2)|0;h[Se>>2]=+h[Se>>2]*m;w=w+1|0}while(1){if((w|0)>=4){w=4;break}Se=T+(w<<2)|0;h[Se>>2]=+h[Se>>2]*m;Se=T+((w|1)<<2)|0;h[Se>>2]=+h[Se>>2]*m;Se=T+((w|2)<<2)|0;h[Se>>2]=+h[Se>>2]*m;Se=T+((w|3)<<2)|0;h[Se>>2]=+h[Se>>2]*m;w=w+4|0}while(1){if((w|0)==5)break;Se=T+(w<<2)|0;h[Se>>2]=+h[Se>>2]*m;w=w+1|0}A=A+(x<<2)|0;S=S+100|0;M=M+1|0;T=T+20|0}ye=e+4832|0;Se=e+4748|0;v=s[Ce>>2]|0;Ee=s[Ie>>2]|0;w=Ee*25|0;g=0;while(1){if((g|0)>=(w|0))break;m=+h[le+(g<<2)>>2]*131072;b=(h[d>>2]=m,s[d>>2]|0);if((b&2130706432)>>>0<=1249902592){b=(b|0)<0;m=b?m+-8388608+8388608:m+8388608+-8388608;if(m==0)m=b?-0:0}s[Be+(g<<2)>>2]=~~m;g=g+1|0}_e=e+4860|0;Ae=tt+708|0;ke=Ee*5|0;w=0;while(1){if((w|0)>=(ke|0))break;m=+h[ue+(w<<2)>>2]*131072;b=(h[d>>2]=m,s[d>>2]|0);if((b&2130706432)>>>0<=1249902592){b=(b|0)<0;m=b?m+-8388608+8388608:m+8388608+-8388608;if(m==0)m=b?-0:0}s[Le+(w<<2)>>2]=~~m;w=w+1|0}we=v<<16>>16;ve=0;b=0;ge=0;w=2147483647;E=0;while(1){if((ge|0)==3)break;ue=s[17388+(ge<<2)>>2]|0;de=s[17400+(ge<<2)>>2]|0;pe=s[17412+(ge<<2)>>2]|0;be=r[29888+ge>>0]|0;me=Be;M=b;ce=0;S=0;E=0;b=s[Se>>2]|0;le=Le;while(1){if((ce|0)>=(Ee|0))break;he=5333-b|0;g=he+896|0;if((he|0)>=-896)if((g|0)>3966)g=2147483647;else{v=g>>7;A=1<>16)<>7;else g=te(A>>7,_+((te(te(_,128-_|0)|0,-174)|0)>>16)|0)|0;g=A+g|0}else g=0;I=g+-51|0;P=qe+ce|0;D=s[le>>2]<<7;j=s[le+4>>2]<<7;F=s[le+8>>2]<<7;z=s[le+12>>2]<<7;ae=0-(s[le+16>>2]<<7)|0;r[P>>0]=0;G=me+4|0;V=me+8|0;W=me+12|0;K=me+16|0;Z=me+28|0;Y=me+32|0;$=me+36|0;X=me+24|0;Q=me+52|0;ee=me+56|0;ie=me+48|0;ne=me+76|0;se=me+72|0;ae=ae<<1;oe=me+96|0;fe=de;he=M;x=0;C=2147483647;T=2147483647;while(1){if((x|0)>=(be|0))break;_=a[pe+x>>0]|0;ct=r[fe+1>>0]|0;M=(te(s[G>>2]|0,ct)|0)-D|0;v=r[fe+2>>0]|0;M=M+(te(s[V>>2]|0,v)|0)|0;A=r[fe+3>>0]|0;M=M+(te(s[W>>2]|0,A)|0)|0;g=r[fe+4>>0]|0;M=M+(te(s[K>>2]|0,g)|0)<<1;lt=r[fe>>0]|0;M=M+(te(s[me>>2]|0,lt)|0)|0;lt=(te(M>>16,lt)|0)+((te(M&65535,lt)|0)>>16)+32801|0;M=(te(s[Z>>2]|0,v)|0)-j|0;M=M+(te(s[Y>>2]|0,A)|0)|0;M=M+(te(s[$>>2]|0,g)|0)<<1;M=M+(te(s[X>>2]|0,ct)|0)|0;ct=lt+((te(M>>16,ct)|0)+((te(M&65535,ct)|0)>>16))|0;M=(te(s[Q>>2]|0,A)|0)-F|0;M=M+(te(s[ee>>2]|0,g)|0)<<1;M=M+(te(s[ie>>2]|0,v)|0)|0;v=ct+((te(M>>16,v)|0)+((te(M&65535,v)|0)>>16))|0;M=(te(s[ne>>2]|0,g)|0)-z<<1;M=M+(te(s[se>>2]|0,A)|0)|0;A=v+((te(M>>16,A)|0)+((te(M&65535,A)|0)>>16))|0;M=ae+(te(s[oe>>2]|0,g)|0)|0;g=A+((te(M>>16,g)|0)+((te(M&65535,g)|0)>>16))|0;do if((g|0)>-1){g=g+((_|0)>(I|0)?_-I<<11:0)|0;M=re(g|0)|0;v=24-M|0;A=0-v|0;do if(v)if((v|0)<0){v=g<>>(v+32|0);break}else{v=g<<32-v|g>>>v;break}else v=g;while(0);v=v&127;v=te(we,(v+(((te(v,128-v|0)|0)*179|0)>>>16)+(31-M<<7)<<16)+-125829120>>16)|0;v=v+(a[ue+x>>0]<<2)|0;if((v|0)>(C|0)){_=he;v=C;g=T;break}r[P>>0]=x}else{_=he;v=C;g=T}while(0);fe=fe+5|0;he=_;x=x+1|0;C=v;T=g}E=E+T|0;E=(E|0)<0?2147483647:E;S=S+C|0;S=(S|0)<0?2147483647:S;g=he+51|0;A=re(g|0)|0;v=24-A|0;_=0-v|0;do if(v)if((v|0)<0){v=g<<_|g>>>(v+32|0);break}else{v=g<<32-v|g>>>v;break}else v=g;while(0);lt=v&127;if((b+(lt+(((te(lt,128-lt|0)|0)*179|0)>>>16)+(31-A<<7))|0)<896)b=0;else{A=re(g|0)|0;v=24-A|0;_=0-v|0;do if(v)if((v|0)<0){g=g<<_|g>>>(v+32|0);break}else{g=g<<32-v|g>>>v;break}while(0);lt=g&127;b=b+(lt+(((te(lt,128-lt|0)|0)*179|0)>>>16)+(31-A<<7))+-896|0}me=me+100|0;M=he;ce=ce+1|0;le=le+20|0}if((S|0)>(w|0))b=ve;else{r[_e>>0]=ge;Mn(ye|0,qe|0,Ee|0)|0;w=S}ve=b;b=M;ge=ge+1|0}b=s[17400+(r[_e>>0]<<2)>>2]|0;v=0;while(1){if((v|0)>=(Ee|0))break;w=e+4832+v|0;g=v*5|0;_=0;while(1){if((_|0)==5)break;n[ze+(g+_<<1)>>1]=r[b+(((r[w>>0]|0)*5|0)+_)>>0]<<7;_=_+1|0}v=v+1|0}b=E>>((Ee|0)==2?1:2);s[Se>>2]=ve;v=re(b|0)|0;w=24-v|0;g=0-w|0;do if(w)if((w|0)<0){b=b<>>(w+32|0);break}else{b=b<<32-w|b>>>w;break}while(0);b=b&127;b=(b+(((te(b,128-b|0)|0)*179|0)>>>16)+(31-v<<7)<<16)+-125829120>>16;w=0;while(1){if((w|0)>=(ke|0))break;h[tt+144+(w<<2)>>2]=+(n[ze+(w<<1)>>1]|0)*6103515625e-14;w=w+1|0}m=+(te(b,-3)|0)*.0078125;h[Ae>>2]=m;if(!f){m=+((s[e+4708>>2]|0)+(s[e+5836>>2]|0)|0)*m*.10000000149011612;if(!(m>2)){if(m<0)m=0}else m=2;b=~~m;r[e+4861>>0]=b}else{r[e+4861>>0]=0;b=0}h[tt+224>>2]=+(n[25412+(b<<24>>24<<1)>>1]|0)*6103515625e-14;T=s[e+4732>>2]|0;_=s[Ce>>2]|0;E=s[Ie>>2]|0;A=_+T|0;S=Ue;M=0;T=Ye+(0-T<<2)|0;while(1){if((M|0)>=(E|0))break;g=0-(s[tt+228+(M<<2)>>2]|0)|0;y=+h[Fe+(M<<2)>>2];b=M*5|0;w=0;while(1){if((w|0)==5)break;s[qe+(w<<2)>>2]=s[tt+144+(b+w<<2)>>2];w=w+1|0}v=0;g=T+(g<<2)|0;while(1){if((v|0)>=(A|0))break;w=s[T+(v<<2)>>2]|0;b=S+(v<<2)|0;s[b>>2]=w;m=(s[d>>2]=w,+h[d>>2]);w=0;while(1){if((w|0)==5)break;ht=m-+h[qe+(w<<2)>>2]*+h[g+(2-w<<2)>>2];h[b>>2]=ht;m=ht;w=w+1|0}h[b>>2]=m*y;v=v+1|0;g=g+4|0}S=S+(A<<2)|0;M=M+1|0;T=T+(_<<2)|0}}else{S=e+4732|0;A=s[S>>2]|0;w=A;_=0;E=Ue;A=Ye+(0-A<<2)|0;while(1){if((_|0)>=(b|0))break;m=+h[Fe+(_<<2)>>2];b=s[Ce>>2]|0;v=b+w|0;g=v&65532;b=w+b&65532;w=0;while(1){if((w|0)>=(g|0))break;h[E+(w<<2)>>2]=+h[A+(w<<2)>>2]*m;lt=w|1;h[E+(lt<<2)>>2]=+h[A+(lt<<2)>>2]*m;lt=w|2;h[E+(lt<<2)>>2]=+h[A+(lt<<2)>>2]*m;lt=w|3;h[E+(lt<<2)>>2]=+h[A+(lt<<2)>>2]*m;w=w+4|0}while(1){if((b|0)>=(v|0))break;h[E+(b<<2)>>2]=+h[A+(b<<2)>>2]*m;b=b+1|0}lt=s[Ce>>2]|0;ct=s[S>>2]|0;b=s[Ie>>2]|0;w=ct;_=_+1|0;E=E+(lt+ct<<2)|0;A=A+(lt<<2)|0}kn(tt+144|0,0,b*20|0)|0;h[tt+708>>2]=0;s[e+4748>>2]=0}b=e+4756|0;if(!(s[b>>2]|0)){y=+mt(+(+h[tt+708>>2]/3))/1e4;y=y/(+h[xe>>2]*.75+.25)}else y=.009999999776482582;M=e+4732|0;A=s[M>>2]|0;E=(s[Ce>>2]|0)+A|0;S=e+4859|0;r[S>>0]=4;m=+Dr(Pe,Ue,y,E,s[Ie>>2]|0,A);A=e+4724|0;t:do if((s[A>>2]|0?(s[b>>2]|0)==0:0)?(s[Ie>>2]|0)==4:0){_=E<<1;m=m-+Dr(Ne,Ue+(_<<2)|0,y,E,2,s[M>>2]|0);Qi(je,Ne,s[M>>2]|0);v=3;k=3.4028234663852886e38;while(1){if((v|0)<=-1)break t;g=s[M>>2]|0;b=v<<16>>16;w=0;while(1){if((w|0)>=(g|0))break;lt=o[e+4592+(w<<1)>>1]|0;n[Le+(w<<1)>>1]=lt+((te((o[je+(w<<1)>>1]|0)-lt<<16>>16,b)|0)>>>2);w=w+1|0}xr(Be,Le,g);b=0;while(1){if((b|0)>=(g|0))break;h[Ne+(b<<2)>>2]=+(n[Be+(b<<1)>>1]|0)*.000244140625;b=b+1|0}Ji(Oe,Ne,Ue,_,s[M>>2]|0);lt=s[M>>2]|0;ct=Oe+(lt<<2)|0;lt=E-lt|0;y=+tr(ct,lt);y=y+ +tr(ct+(E<<2)|0,lt);if(!(yk)break t}else{r[S>>0]=v;m=y}v=v+-1|0;k=y}}while(0);if((r[S>>0]|0)==4)Qi(je,Pe,s[M>>2]|0);v=s[Me>>2]<<16>>16;v=(te(v,-5)|0)+(v*59246>>16)+3146|0;v=v+((s[Ie>>2]|0)==2?v>>1:0)|0;Ir(Le,je,s[M>>2]|0);t:do if((s[A>>2]|0)==1?(De=r[S>>0]|0,De<<24>>24<4):0){b=De<<24>>24;w=s[M>>2]|0;g=0;while(1){if((g|0)>=(w|0))break;lt=o[e+4592+(g<<1)>>1]|0;n[Be+(g<<1)>>1]=lt+((te((o[je+(g<<1)>>1]|0)-lt<<16>>16,b)|0)>>>2);g=g+1|0}Ir(qe,Be,w);w=r[S>>0]|0;w=(te(w,w)|0)<<27;b=s[M>>2]|0;w=w>>16;g=0;while(1){if((g|0)>=(b|0)){w=1;break t}lt=Le+(g<<1)|0;n[lt>>1]=((n[lt>>1]|0)>>>1)+((te(n[qe+(g<<1)>>1]|0,w)|0)>>>16);g=g+1|0}}else w=0;while(0);Ur(e+4836|0,je,s[e+4784>>2]|0,Le,v,s[e+4752>>2]|0,r[He>>0]|0);b=ze+32|0;xr(b,je,s[M>>2]|0);if(w){b=r[S>>0]|0;w=s[M>>2]|0;g=0;while(1){if((g|0)>=(w|0))break;lt=o[e+4592+(g<<1)>>1]|0;n[Be+(g<<1)>>1]=lt+((te((o[je+(g<<1)>>1]|0)-lt<<16>>16,b)|0)>>>2);g=g+1|0}xr(ze,Be,w)}else Mn(ze|0,b|0,s[M>>2]<<1|0)|0;g=0;while(1){if((g|0)==2)break;b=s[M>>2]|0;w=0;while(1){if((w|0)>=(b|0))break;h[tt+16+(g<<6)+(w<<2)>>2]=+(n[ze+(g<<5)+(w<<1)>>1]|0)*.000244140625;w=w+1|0}g=g+1|0}_=s[Ce>>2]|0;lt=s[Ie>>2]|0;b=s[M>>2]|0;w=qe+(b<<2)|0;v=b+_|0;g=v<<1;Ji(qe,tt+16|0,Ue,g,b);ht=+h[tt>>2];h[tt+712>>2]=ht*ht*+tr(w,_);ht=+h[tt+4>>2];v=w+(v<<2)|0;h[tt+716>>2]=ht*ht*+tr(v,_);if((lt|0)==4){Ji(qe,tt+80|0,Ue+(g<<2)|0,g,b);ht=+h[tt+8>>2];h[tt+720>>2]=ht*ht*+tr(w,_);ht=+h[tt+12>>2];h[tt+724>>2]=ht*ht*+tr(v,_)}E=e+4592|0;b=je;_=E+32|0;do{n[E>>1]=n[b>>1]|0;E=E+2|0;b=b+2|0}while((E|0)<(_|0));t:do if((r[He>>0]|0)==2){m=1-1/(+J(+-((+h[tt+708>>2]+-12)*.25))+1)*.5;b=s[Ie>>2]|0;w=0;while(1){if((w|0)>=(b|0)){w=b;break t}lt=tt+(w<<2)|0;h[lt>>2]=+h[lt>>2]*m;w=w+1|0}}else w=s[Ie>>2]|0;while(0);m=+mt(+((21-+(s[Te>>2]|0)*.0078125)*.33000001311302185));m=m/+(s[Ce>>2]|0);b=0;while(1){if((b|0)>=(w|0)){b=0;break}lt=tt+(b<<2)|0;ht=+h[lt>>2];ht=+H(+(ht*ht+ +h[tt+712+(b<<2)>>2]*m));h[lt>>2]=ht<32767?ht:32767;b=b+1|0}while(1){if((b|0)>=(w|0))break;s[ze+(b<<2)>>2]=~~(+h[tt+(b<<2)>>2]*65536);b=b+1|0}Mn(tt+728|0,ze|0,w<<2|0)|0;b=e+7260|0;le=tt+744|0;r[le>>0]=r[b>>0]|0;ue=e+4828|0;de=(f|0)==2;pe=de&1;br(ue,ze,b,pe,w);b=s[Ie>>2]|0;w=0;while(1){if((w|0)>=(b|0))break;h[tt+(w<<2)>>2]=+(s[ze+(w<<2)>>2]|0)*152587890625e-16;w=w+1|0}g=r[He>>0]|0;do if(g<<24>>24==2){w=e+4858|0;if(+h[tt+708>>2]+ +(s[e+4804>>2]|0)*30517578125e-15>1){r[w>>0]=0;ce=w;w=0;break}else{r[w>>0]=1;ce=w;w=1;break}}else{w=e+4858|0;ce=w;w=r[w>>0]|0}while(0);lt=s[Me>>2]|0;he=tt+692|0;h[he>>2]=+(s[e+4720>>2]|0)*-.05000000074505806+1.2000000476837158+ +(lt|0)*-.20000000298023224*.00390625+ +h[Re>>2]*-.10000000149011612+ +h[xe>>2]*-.20000000298023224+ +(n[25404+(g<<24>>24>>1<<2)+(w<<24>>24<<1)>>1]|0)*.0009765625*.800000011920929;fe=e+5840|0;w=s[fe>>2]|0;v=e+6192+(w*36|0)|0;if((s[e+6184>>2]|0)!=0&(lt|0)>77){s[e+4816+(w<<2)>>2]=1;Mn(qe|0,e+144|0,4448)|0;E=v;b=ue;_=E+36|0;do{n[E>>1]=n[b>>1]|0;E=E+2|0;b=b+2|0}while((E|0)<(_|0));g=s[Ie>>2]|0;Mn(Fe|0,tt|0,g<<2|0)|0;b=s[fe>>2]|0;do if(!b)ot=544;else{if(!(s[e+4816+(b+-1<<2)>>2]|0)){ot=544;break}w=e+4632|0;b=g}while(0);if((ot|0)==544){w=e+4632|0;r[w>>0]=r[e+7260>>0]|0;b=(a[v>>0]|0)+(s[e+6188>>2]|0)|0;r[v>>0]=(b&255)<<24>>24<63?b&255:63;b=s[Ie>>2]|0}mr(ze,v,w,pe,b);b=s[Ie>>2]|0;w=0;while(1){if((w|0)>=(b|0))break;h[tt+(w<<2)>>2]=+(s[ze+(w<<2)>>2]|0)*152587890625e-16;w=w+1|0}er(e,tt,v,qe,e+6300+((s[fe>>2]|0)*320|0)|0,Ye);b=s[Ie>>2]|0;Mn(tt|0,Fe|0,b<<2|0)|0}g=0;w=0;while(1){if((w|0)>=(b|0))break;g=(r[e+4828+w>>0]|0)+(g<<8)|0;w=w+1|0}E=nt;b=i;_=E+48|0;do{s[E>>2]=s[b>>2];E=E+4|0;b=b+4|0}while((E|0)<(_|0));W=e+144|0;Mn(it|0,W|0,4448)|0;K=r[Ke>>0]|0;Z=e+5864|0;Y=n[Z>>1]|0;$=e+5860|0;X=s[$>>2]|0;Q=e+7260|0;ee=u+-5|0;ie=i+24|0;ne=i+28|0;se=e+4828|0;ae=e+4864|0;oe=i+20|0;D=0;M=0;T=0;G=256;z=0;x=0;j=-1;S=-1;V=0;F=0;C=0;w=0;while(1){A=(g|0)==(j|0);do if(!A){if((g|0)==(S|0)){b=C;ot=571;break}if((V|0)>0){E=i;b=nt;_=E+48|0;do{s[E>>2]=s[b>>2];E=E+4|0;b=b+4|0}while((E|0)<(_|0));Mn(W|0,it|0,4448)|0;r[Ke>>0]=K;n[Z>>1]=Y;s[$>>2]=X}er(e,tt,se,W,ae,Ye);v=(V|0)==6;if(v&(M|0)==0){s[st>>2]=s[i>>2];s[st+4>>2]=s[i+4>>2];s[st+8>>2]=s[i+8>>2];s[st+12>>2]=s[i+12>>2];s[st+16>>2]=s[i+16>>2];s[st+20>>2]=s[i+20>>2];_=s[ie>>2]|0;s[at>>2]=s[ne>>2];s[at+4>>2]=s[ne+4>>2];s[at+8>>2]=s[ne+8>>2];s[at+12>>2]=s[ne+12>>2];s[at+16>>2]=s[ne+16>>2]}else _=w;Di(e,i,s[fe>>2]|0,0,f);Li(i,r[He>>0]|0,r[ce>>0]|0,ae,s[We>>2]|0);b=(s[oe>>2]|0)+((re(s[ne>>2]|0)|0)+-32)|0;if(v&(M|0)==0&(b|0)>(u|0)){s[i>>2]=s[st>>2];s[i+4>>2]=s[st+4>>2];s[i+8>>2]=s[st+8>>2];s[i+12>>2]=s[st+12>>2];s[i+16>>2]=s[st+16>>2];s[i+20>>2]=s[st+20>>2];s[ie>>2]=_;s[ne>>2]=s[at>>2];s[ne+4>>2]=s[at+4>>2];s[ne+8>>2]=s[at+8>>2];s[ne+12>>2]=s[at+12>>2];s[ne+16>>2]=s[at+16>>2];b=r[le>>0]|0;r[Q>>0]=b;w=0;while(1){if((w|0)>=(s[Ie>>2]|0))break;r[e+4828+w>>0]=4;w=w+1|0}if(!de)r[ue>>0]=b;n[Z>>1]=Y;s[$>>2]=X;b=0;while(1){if((b|0)>=(s[We>>2]|0))break;r[e+4864+b>>0]=0;b=b+1|0}Di(e,i,s[fe>>2]|0,0,f);Li(i,r[He>>0]|0,r[ce>>0]|0,ae,s[We>>2]|0);b=(s[oe>>2]|0)+((re(s[ne>>2]|0)|0)+-32)|0}if(V|p|0){w=_;ot=571;break}if((b|0)>(u|0))I=_;else break e}else{b=F;ot=571}while(0);if((ot|0)==571){ot=0;if((V|0)==6)break;else I=w}P=(b|0)>(u|0);t:do if(P){if(M|0){T=1;A=z;x=G<<16>>16;E=j;S=g;_=F;C=b;break}if((V|0)>1){ht=+h[he>>2]*1.5;h[he>>2]=ht>1.5?ht:1.5;r[ce>>0]=0;T=0;g=-1}else{T=1;x=G<<16>>16;C=b}_=s[Ie>>2]|0;E=(V|0)==0;S=0;i:while(1){if((S|0)>=(_|0)){M=0;A=z;E=j;S=g;_=F;break t}v=s[Ce>>2]|0;A=S+1|0;w=te(A,v)|0;v=te(S,v)|0;M=0;while(1){if((v|0)>=(w|0))break;ct=r[e+4864+v>>0]|0;lt=ct<<24>>24;v=v+1|0;M=M+(ct<<24>>24>-1?lt:0-lt|0)|0}w=Xe+(S<<2)|0;do if(!E){v=Qe+(S<<2)|0;if((M|0)<(s[w>>2]|0)?(s[v>>2]|0)==0:0)break;s[v>>2]=1;S=A;continue i}while(0);s[w>>2]=M;n[$e+(S<<1)>>1]=G;S=A}}else{if((b|0)>=(ee|0))break e;w=G<<16>>16;if(A){M=1;A=w;E=g;_=b;break}s[st>>2]=s[i>>2];s[st+4>>2]=s[i+4>>2];s[st+8>>2]=s[i+8>>2];s[st+12>>2]=s[i+12>>2];s[st+16>>2]=s[i+16>>2];s[st+20>>2]=s[i+20>>2];I=s[ie>>2]|0;s[at>>2]=s[ne>>2];s[at+4>>2]=s[ne+4>>2];s[at+8>>2]=s[ne+8>>2];s[at+12>>2]=s[ne+12>>2];s[at+16>>2]=s[ne+16>>2];Mn(Je|0,s[i>>2]|0,I|0)|0;Mn(rt|0,W|0,4448)|0;D=r[Q>>0]|0;M=1;A=w;E=g;_=b}while(0);do if(!(M&T)){if(P){if(G<<16>>16>=16384){v=32767;break}v=G<<16>>16<<1&65535;break}w=(b-u<<7|0)/(s[We>>2]|0)|0;b=w+2048|0;do if((w|0)<-2048)b=0;else{if((b|0)>3966){b=2147483647;break}g=b>>7;v=1<>16)<>7;else b=te(v>>7,b+((te(te(b,128-b|0)|0,-174)|0)>>16)|0)|0;b=v+b|0}while(0);v=G<<16>>16;v=(te(b>>16,v)|0)+((te(b&65535,v)|0)>>>16)&65535}else{v=x-A|0;w=A+((te(v,u-_|0)|0)/(C-_|0)|0)|0;g=w<<16>>16;v=v>>2;b=A+v|0;if((g|0)<=(b|0)){b=x-v|0;b=(g|0)<(b|0)?b:w}v=b&65535}while(0);b=s[Ie>>2]|0;w=0;while(1){if((w|0)>=(b|0))break;if(!(s[Qe+(w<<2)>>2]|0))g=v;else g=n[$e+(w<<1)>>1]|0;ct=s[tt+728+(w<<2)>>2]|0;lt=g<<16>>16;lt=(te(ct>>16,lt)|0)+((te(ct&65535,lt)|0)>>16)|0;s[et+(w<<2)>>2]=(lt|0)>8388607?2147483392:((lt|0)<-8388608?-8388608:lt)<<8;w=w+1|0}r[Q>>0]=r[le>>0]|0;br(ue,et,Q,pe,b);w=s[Ie>>2]|0;g=0;b=0;while(1){if((b|0)>=(w|0)){b=0;break}g=(r[e+4828+b>>0]|0)+(g<<8)|0;b=b+1|0}while(1){if((b|0)>=(w|0))break;h[tt+(b<<2)>>2]=+(s[et+(b<<2)>>2]|0)*152587890625e-16;b=b+1|0}G=v;z=A;j=E;V=V+1|0;F=_;w=I}if((M|0)!=0&(A|(b|0)>(u|0))){s[i>>2]=s[st>>2];s[i+4>>2]=s[st+4>>2];s[i+8>>2]=s[st+8>>2];s[i+12>>2]=s[st+12>>2];s[i+16>>2]=s[st+16>>2];s[i+20>>2]=s[st+20>>2];s[ie>>2]=w;s[ne>>2]=s[at>>2];s[ne+4>>2]=s[at+4>>2];s[ne+8>>2]=s[at+8>>2];s[ne+12>>2]=s[at+12>>2];s[ne+16>>2]=s[at+16>>2];Mn(s[i>>2]|0,Je|0,w|0)|0;Mn(W|0,rt|0,4448)|0;r[Q>>0]=D}}while(0);Tn(e+7272|0,e+7272+(s[We>>2]<<2)|0,(s[Ze>>2]|0)+((s[Ve>>2]|0)*5|0)<<2|0)|0;if(s[Ge>>2]|0){lt=0;s[t>>2]=lt;l=ft;return 0}s[e+4636>>2]=s[tt+228+((s[e+4672>>2]|0)+-1<<2)>>2];r[e+4633>>0]=r[e+4857>>0]|0;s[e+4756>>2]=0;lt=(s[i+20>>2]|0)+((re(s[i+28>>2]|0)|0)+-32)+7>>3;s[t>>2]=lt;l=ft;return 0}function Ji(e,t,i,r,n){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;var s=0,a=0,o=0,f=0,c=0,l=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0;switch(n|0){case 6:{s=t+4|0;a=t+8|0;o=t+12|0;f=t+16|0;c=t+20|0;l=6;while(1){if((l|0)>=(r|0))break;y=i+(l+-1<<2)|0;h[e+(l<<2)>>2]=+h[y+4>>2]-(+h[y>>2]*+h[t>>2]+ +h[y+-4>>2]*+h[s>>2]+ +h[y+-8>>2]*+h[a>>2]+ +h[y+-12>>2]*+h[o>>2]+ +h[y+-16>>2]*+h[f>>2]+ +h[y+-20>>2]*+h[c>>2]);l=l+1|0}i=n<<2;kn(e|0,0,i|0)|0;return}case 8:{s=t+4|0;a=t+8|0;o=t+12|0;f=t+16|0;c=t+20|0;l=t+24|0;u=t+28|0;d=8;while(1){if((d|0)>=(r|0))break;y=i+(d+-1<<2)|0;h[e+(d<<2)>>2]=+h[y+4>>2]-(+h[y>>2]*+h[t>>2]+ +h[y+-4>>2]*+h[s>>2]+ +h[y+-8>>2]*+h[a>>2]+ +h[y+-12>>2]*+h[o>>2]+ +h[y+-16>>2]*+h[f>>2]+ +h[y+-20>>2]*+h[c>>2]+ +h[y+-24>>2]*+h[l>>2]+ +h[y+-28>>2]*+h[u>>2]);d=d+1|0}i=n<<2;kn(e|0,0,i|0)|0;return}case 10:{s=t+4|0;a=t+8|0;o=t+12|0;f=t+16|0;c=t+20|0;l=t+24|0;u=t+28|0;d=t+32|0;p=t+36|0;b=10;while(1){if((b|0)>=(r|0))break;y=i+(b+-1<<2)|0;h[e+(b<<2)>>2]=+h[y+4>>2]-(+h[y>>2]*+h[t>>2]+ +h[y+-4>>2]*+h[s>>2]+ +h[y+-8>>2]*+h[a>>2]+ +h[y+-12>>2]*+h[o>>2]+ +h[y+-16>>2]*+h[f>>2]+ +h[y+-20>>2]*+h[c>>2]+ +h[y+-24>>2]*+h[l>>2]+ +h[y+-28>>2]*+h[u>>2]+ +h[y+-32>>2]*+h[d>>2]+ +h[y+-36>>2]*+h[p>>2]);b=b+1|0}i=n<<2;kn(e|0,0,i|0)|0;return}case 12:{s=t+4|0;a=t+8|0;o=t+12|0;f=t+16|0;c=t+20|0;l=t+24|0;u=t+28|0;d=t+32|0;p=t+36|0;b=t+40|0;m=t+44|0;w=12;while(1){if((w|0)>=(r|0))break;y=i+(w+-1<<2)|0;h[e+(w<<2)>>2]=+h[y+4>>2]-(+h[y>>2]*+h[t>>2]+ +h[y+-4>>2]*+h[s>>2]+ +h[y+-8>>2]*+h[a>>2]+ +h[y+-12>>2]*+h[o>>2]+ +h[y+-16>>2]*+h[f>>2]+ +h[y+-20>>2]*+h[c>>2]+ +h[y+-24>>2]*+h[l>>2]+ +h[y+-28>>2]*+h[u>>2]+ +h[y+-32>>2]*+h[d>>2]+ +h[y+-36>>2]*+h[p>>2]+ +h[y+-40>>2]*+h[b>>2]+ +h[y+-44>>2]*+h[m>>2]);w=w+1|0}i=n<<2;kn(e|0,0,i|0)|0;return}case 16:{s=t+4|0;a=t+8|0;d=t+12|0;p=t+16|0;b=t+20|0;m=t+24|0;w=t+28|0;g=t+32|0;v=t+36|0;_=t+40|0;o=t+44|0;f=t+48|0;c=t+52|0;l=t+56|0;u=t+60|0;y=16;while(1){if((y|0)>=(r|0))break;k=i+(y+-1<<2)|0;h[e+(y<<2)>>2]=+h[k+4>>2]-(+h[k>>2]*+h[t>>2]+ +h[k+-4>>2]*+h[s>>2]+ +h[k+-8>>2]*+h[a>>2]+ +h[k+-12>>2]*+h[d>>2]+ +h[k+-16>>2]*+h[p>>2]+ +h[k+-20>>2]*+h[b>>2]+ +h[k+-24>>2]*+h[m>>2]+ +h[k+-28>>2]*+h[w>>2]+ +h[k+-32>>2]*+h[g>>2]+ +h[k+-36>>2]*+h[v>>2]+ +h[k+-40>>2]*+h[_>>2]+ +h[k+-44>>2]*+h[o>>2]+ +h[k+-48>>2]*+h[f>>2]+ +h[k+-52>>2]*+h[c>>2]+ +h[k+-56>>2]*+h[l>>2]+ +h[k+-60>>2]*+h[u>>2]);y=y+1|0}k=n<<2;kn(e|0,0,k|0)|0;return}default:{k=n<<2;kn(e|0,0,k|0)|0;return}}}function Qi(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,a=0,f=0,c=0,u=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0,I=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,q=0,H=0,G=0,V=0;V=l;l=l+176|0;F=V+124|0;q=V+72|0;z=V+64|0;H=V;a=0;while(1){if((a|0)>=(i|0))break;f=+h[t+(a<<2)>>2]*65536;r=(h[d>>2]=f,s[d>>2]|0);if((r&2130706432)>>>0<=1249902592){r=(r|0)<0;f=r?f+-8388608+8388608:f+8388608+-8388608;if(f==0)f=r?-0:0}s[H+(a<<2)>>2]=~~f;a=a+1|0}s[z>>2]=F;s[z+4>>2]=q;B=i>>1;U=F+(B<<2)|0;s[U>>2]=65536;j=q+(B<<2)|0;s[j>>2]=65536;r=0;while(1){if((B|0)<=(r|0))break;L=s[H+(B-r+-1<<2)>>2]|0;D=s[H+(r+B<<2)>>2]|0;s[F+(r<<2)>>2]=0-L-D;s[q+(r<<2)>>2]=D-L;r=r+1|0}r=B;while(1){if((r|0)<=0){r=2;break}L=r+-1|0;D=F+(L<<2)|0;s[D>>2]=(s[D>>2]|0)-(s[F+(r<<2)>>2]|0);D=q+(L<<2)|0;s[D>>2]=(s[D>>2]|0)+(s[q+(r<<2)>>2]|0);r=L}while(1){if((r|0)>(B|0)){r=2;break}else a=B;while(1){if((a|0)<=(r|0))break;L=F+(a+-2<<2)|0;s[L>>2]=(s[L>>2]|0)-(s[F+(a<<2)>>2]|0);a=a+-1|0}L=F+(r+-2<<2)|0;s[L>>2]=(s[L>>2]|0)-(s[F+(r<<2)>>2]<<1);r=r+1|0}while(1){if((r|0)>(B|0))break;else a=B;while(1){if((a|0)<=(r|0))break;L=q+(a+-2<<2)|0;s[L>>2]=(s[L>>2]|0)-(s[q+(a<<2)>>2]|0); -a=a+-1|0}L=q+(r+-2<<2)|0;s[L>>2]=(s[L>>2]|0)-(s[q+(r<<2)>>2]<<1);r=r+1|0}r=s[U>>2]|0;L=(B|0)==8;e:do if(L)r=(s[F>>2]|0)+((s[F+4>>2]|0)+((s[F+8>>2]|0)+((s[F+12>>2]|0)+((s[F+16>>2]|0)+((s[F+20>>2]|0)+((s[F+24>>2]|0)+((s[F+28>>2]|0)+(r<<1)<<1)<<1)<<1)<<1)<<1)<<1)<<1)|0;else{t=B;while(1){a=t+-1|0;if((t|0)<=0)break e;t=a;r=(s[F+(a<<2)>>2]|0)+(r<<1)|0}}while(0);e:do if((r|0)<0){n[e>>1]=0;r=s[j>>2]|0;if(L){a=q;t=1;r=(s[q>>2]|0)+((s[q+4>>2]|0)+((s[q+8>>2]|0)+((s[q+12>>2]|0)+((s[q+16>>2]|0)+((s[q+20>>2]|0)+((s[q+24>>2]|0)+((s[q+28>>2]|0)+(r<<1)<<1)<<1)<<1)<<1)<<1)<<1)<<1)|0;break}else t=B;while(1){a=t+-1|0;if((t|0)<=0){a=q;t=1;break e}t=a;r=(s[q+(a<<2)>>2]|0)+(r<<1)|0}}else{a=F;t=0}while(0);k=F+28|0;E=F+24|0;A=F+20|0;S=F+16|0;M=F+12|0;T=F+8|0;R=F+4|0;x=q+28|0;C=q+24|0;I=q+20|0;P=q+16|0;O=q+12|0;N=q+8|0;D=q+4|0;y=0;e:while(1){p=1;c=0;u=8192;t:while(1){_=p;while(1){p=n[27508+(_<<1)>>1]|0;b=Ar(a,p,B)|0;if((r|0)<1){if((b|0)>=(c|0))break;if(!((r|0)<0|(b|0)>(0-c|0)))break}else if((b|0)<=(0-c|0))break;if((_|0)>127)break t;else{_=_+1|0;c=0;u=p;r=b}}c=(b|0)==0&1;g=-256;v=0;while(1){if((v|0)==3)break;m=u+p|0;m=(m>>1)+(m&1)|0;w=Ar(a,m,B)|0;if((r|0)<1)if((w&r|0)>-1){p=m;b=w}else G=42;else if((w|0)<1){p=m;b=w}else G=42;if((G|0)==42){G=0;g=g+(128>>>v)|0;u=m;r=w}v=v+1|0}a=r-b|0;if((((r|0)>0?r:0-r|0)|0)<65536)if((r|0)==(b|0))r=g;else r=g+(((r<<5)+(a>>1)|0)/(a|0)|0)|0;else r=g+((r|0)/(a>>5|0)|0)|0;r=(_<<8)+r|0;n[e+(t<<1)>>1]=(r|0)<32767?r:32767;r=t+1|0;if((r|0)>=(i|0)){G=77;break e}p=_;a=s[z+((r&1)<<2)>>2]|0;t=r;u=n[27508+(_+-1<<1)>>1]|0;r=1-(r&2)<<12}c=y+1|0;if((y|0)>15)break;Mr(H,i,65536-(1<>2]=65536;s[j>>2]=65536;r=0;while(1){if((B|0)<=(r|0)){r=B;break}y=s[H+(B-r+-1<<2)>>2]|0;_=s[H+(r+B<<2)>>2]|0;s[F+(r<<2)>>2]=0-y-_;s[q+(r<<2)>>2]=_-y;r=r+1|0}while(1){if((r|0)<=0){r=2;break}y=r+-1|0;_=F+(y<<2)|0;s[_>>2]=(s[_>>2]|0)-(s[F+(r<<2)>>2]|0);_=q+(y<<2)|0;s[_>>2]=(s[_>>2]|0)+(s[q+(r<<2)>>2]|0);r=y}while(1){if((r|0)>(B|0)){r=2;break}else a=B;while(1){if((a|0)<=(r|0))break;y=F+(a+-2<<2)|0;s[y>>2]=(s[y>>2]|0)-(s[F+(a<<2)>>2]|0);a=a+-1|0}y=F+(r+-2<<2)|0;s[y>>2]=(s[y>>2]|0)-(s[F+(r<<2)>>2]<<1);r=r+1|0}while(1){if((r|0)>(B|0))break;else a=B;while(1){if((a|0)<=(r|0))break;y=q+(a+-2<<2)|0;s[y>>2]=(s[y>>2]|0)-(s[q+(a<<2)>>2]|0);a=a+-1|0}y=q+(r+-2<<2)|0;s[y>>2]=(s[y>>2]|0)-(s[q+(r<<2)>>2]<<1);r=r+1|0}r=s[U>>2]|0;t:do if(L)r=(s[F>>2]|0)+((s[R>>2]|0)+((s[T>>2]|0)+((s[M>>2]|0)+((s[S>>2]|0)+((s[A>>2]|0)+((s[E>>2]|0)+((s[k>>2]|0)+(r<<1)<<1)<<1)<<1)<<1)<<1)<<1)<<1)|0;else{t=B;while(1){a=t+-1|0;if((t|0)<=0)break t;t=a;r=(s[F+(a<<2)>>2]|0)+(r<<1)|0}}while(0);if((r|0)>=0){y=c;a=F;t=0;continue}n[e>>1]=0;r=s[j>>2]|0;if(L){y=c;a=q;t=1;r=(s[q>>2]|0)+((s[D>>2]|0)+((s[N>>2]|0)+((s[O>>2]|0)+((s[P>>2]|0)+((s[I>>2]|0)+((s[C>>2]|0)+((s[x>>2]|0)+(r<<1)<<1)<<1)<<1)<<1)<<1)<<1)<<1)|0;continue}else t=B;while(1){a=t+-1|0;if((t|0)<=0){y=c;a=q;t=1;continue e}t=a;r=(s[q+(a<<2)>>2]|0)+(r<<1)|0}}if((G|0)==77){l=V;return}r=32768/(i+1|0)|0;n[e>>1]=r;a=1;while(1){if((a|0)>=(i|0))break;G=(r&65535)+(o[e>>1]|0)|0;n[e+(a<<1)>>1]=G;r=G;a=a+1|0}l=V;return}function er(e,t,i,a,o,f){e=e|0;t=t|0;i=i|0;a=a|0;o=o|0;f=f|0;var c=0,u=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0;C=l;l=l+1008|0;x=C+360|0;E=C+48|0;T=C+296|0;M=C+256|0;k=C+64|0;S=C+32|0;R=C+16|0;A=C;y=s[e+4672>>2]|0;b=e+4728|0;v=0;while(1){if((v|0)>=(y|0)){m=0;break}m=s[b>>2]|0;w=v*24|0;_=0;while(1){if((_|0)>=(m|0))break;g=w+_|0;c=+h[t+244+(g<<2)>>2]*8192;u=(h[d>>2]=c,s[d>>2]|0);if((u&2130706432)>>>0<=1249902592){u=(u|0)<0;c=u?c+-8388608+8388608:c+8388608+-8388608;if(c==0)c=u?-0:0}n[k+(g<<1)>>1]=~~c;_=_+1|0}v=v+1|0}while(1){if((m|0)>=(y|0))break;c=+h[t+644+(m<<2)>>2]*16384;u=(h[d>>2]=c,s[d>>2]|0);if((u&2130706432)>>>0<=1249902592){u=(u|0)<0;c=u?c+-8388608+8388608:c+8388608+-8388608;if(c==0)c=u?-0:0}b=~~c<<16;c=+h[t+628+(m<<2)>>2]*16384;u=(h[d>>2]=c,s[d>>2]|0);if((u&2130706432)>>>0<=1249902592){u=(u|0)<0;c=u?c+-8388608+8388608:c+8388608+-8388608;if(c==0)c=u?-0:0}s[S+(m<<2)>>2]=b|~~c&65535;c=+h[t+660+(m<<2)>>2]*16384;u=(h[d>>2]=c,s[d>>2]|0);if((u&2130706432)>>>0<=1249902592){u=(u|0)<0;c=u?c+-8388608+8388608:c+8388608+-8388608;if(c==0)c=u?-0:0}s[R+(m<<2)>>2]=~~c;c=+h[t+676+(m<<2)>>2]*16384;u=(h[d>>2]=c,s[d>>2]|0);if((u&2130706432)>>>0<=1249902592){u=(u|0)<0;c=u?c+-8388608+8388608:c+8388608+-8388608;if(c==0)c=u?-0:0}s[A+(m<<2)>>2]=~~c;m=m+1|0}c=+h[t+692>>2]*1024;u=(h[d>>2]=c,s[d>>2]|0);if((u&2130706432)>>>0<=1249902592){u=(u|0)<0;c=u?c+-8388608+8388608:c+8388608+-8388608;if(c==0)c=u?-0:0}b=y*5|0;m=0;while(1){if((m|0)>=(b|0))break;p=+h[t+144+(m<<2)>>2]*16384;u=(h[d>>2]=p,s[d>>2]|0);if((u&2130706432)>>>0<=1249902592){u=(u|0)<0;p=u?p+-8388608+8388608:p+8388608+-8388608;if(p==0)p=u?-0:0}n[M+(m<<1)>>1]=~~p;m=m+1|0}v=~~c;b=e+4732|0;g=0;while(1){if((g|0)==2){b=0;break}m=s[b>>2]|0;w=0;while(1){if((w|0)>=(m|0))break;c=+h[t+16+(g<<6)+(w<<2)>>2]*4096;u=(h[d>>2]=c,s[d>>2]|0);if((u&2130706432)>>>0<=1249902592){u=(u|0)<0;c=u?c+-8388608+8388608:c+8388608+-8388608;if(c==0)c=u?-0:0}n[T+(g<<5)+(w<<1)>>1]=~~c;w=w+1|0}g=g+1|0}while(1){if((b|0)>=(y|0))break;c=+h[t+(b<<2)>>2]*65536;u=(h[d>>2]=c,s[d>>2]|0);if((u&2130706432)>>>0<=1249902592){u=(u|0)<0;c=u?c+-8388608+8388608:c+8388608+-8388608;if(c==0)c=u?-0:0}s[E+(b<<2)>>2]=~~c;b=b+1|0}if((r[i+29>>0]|0)==2)m=n[25412+(r[i+33>>0]<<1)>>1]|0;else m=0;b=s[e+4676>>2]|0;w=0;while(1){if((w|0)>=(b|0))break;c=+h[f+(w<<2)>>2];u=(h[d>>2]=c,s[d>>2]|0);if((u&2130706432)>>>0<=1249902592){u=(u|0)<0;c=u?c+-8388608+8388608:c+8388608+-8388608;if(c==0)c=u?-0:0}n[x+(w<<1)>>1]=~~c;w=w+1|0}if((s[e+4720>>2]|0)<=1?(s[e+4764>>2]|0)<=0:0){gr(e,a,i,x,o,T,M,k,A,R,S,E,t+228|0,v,m);l=C;return}vr(e,a,i,x,o,T,M,k,A,R,S,E,t+228|0,v,m);l=C;return}function tr(e,t){e=e|0;t=t|0;var i=0,r=0,n=0,s=0,a=0,o=0,f=0,c=0;n=t+-3|0;r=((n|0)>0?n:0)+3&-4;s=0;i=0;while(1){if((s|0)>=(n|0))break;c=+h[e+(s<<2)>>2];f=+h[e+((s|1)<<2)>>2];o=+h[e+((s|2)<<2)>>2];a=+h[e+((s|3)<<2)>>2];s=s+4|0;i=i+(c*c+f*f+o*o+a*a)}while(1){if((r|0)>=(t|0))break;c=+h[e+(r<<2)>>2];r=r+1|0;i=i+c*c}return+i}function ir(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,n=0,s=0,a=0,o=0,f=0,c=0,l=0;s=i+-3|0;n=((s|0)>0?s:0)+3&-4;a=0;r=0;while(1){if((a|0)>=(s|0))break;l=a|1;c=a|2;f=a|3;o=r+(+h[e+(a<<2)>>2]*+h[t+(a<<2)>>2]+ +h[e+(l<<2)>>2]*+h[t+(l<<2)>>2]+ +h[e+(c<<2)>>2]*+h[t+(c<<2)>>2]+ +h[e+(f<<2)>>2]*+h[t+(f<<2)>>2]);a=a+4|0;r=o}while(1){if((n|0)>=(i|0))break;o=r+ +h[e+(n<<2)>>2]*+h[t+(n<<2)>>2];n=n+1|0;r=o}return+r}function rr(e,t,i,o,f,h,c,l){e=e|0;t=t|0;i=i|0;o=o|0;f=f|0;h=h|0;c=c|0;l=l|0;var u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0,I=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,q=0,H=0,G=0;if((h|0)==0|(t|0)<0){h=-1;return h|0}if(!t){h=-4;return h|0}G=r[e>>0]|0;do if(G<<24>>24>=0){if((G&96)==96){p=(G&8)==0?480:960;break}d=(G&255)>>>3&3;if((d|0)==3)p=2880;else p=(48e3<>>0)/100|0}else p=(48e3<<((G&255)>>>3&3)>>>0)/400|0;while(0);m=e+1|0;E=t+-1|0;e:do switch(G&3|0){case 0:{R=m;x=E;C=0;I=1;b=E;M=0;_=47;break}case 1:{if(!i)if(!(E&1)){N=(E|0)/2|0;n[h>>1]=N;P=m;O=2;D=0;_=61;break e}else{h=-4;return h|0}else{j=m;U=E;F=1;q=2;z=E;H=0;_=48}break}case 2:{if((t|0)<2){n[h>>1]=-1;h=-4;return h|0}d=r[m>>0]|0;do if((d&255)<252){p=1;d=d&255}else{if((t|0)>=3){p=2;d=(a[e+2>>0]<<2)+(d&255)&65535;break}n[h>>1]=-1;h=-4;return h|0}while(0);n[h>>1]=d;t=E-p|0;d=d<<16>>16;if((t|0)<(d|0)){h=-4;return h|0}else{R=m+p|0;x=t;C=0;I=2;b=t-d|0;M=0;_=47;break e}}default:{if((t|0)<2){h=-4;return h|0}d=e+2|0;v=r[m>>0]|0;T=v&63;if((T|0)==0|(te(p,T)|0)>>>0>5760){h=-4;return h|0}p=t+-2|0;if(v&64){m=0;while(1){if((p|0)<1){A=-4;_=74;break}g=d+1|0;w=r[d>>0]|0;if(w<<24>>24!=-1)break;d=g;p=p+-255|0;m=m+254|0}if((_|0)==74)return A|0;t=w&255;d=p+-1-t|0;if((d|0)<0){h=-4;return h|0}else{w=d;k=m+t|0}}else{g=d;w=p;k=0}_=(v&255)>>>7;y=_&255^1;if(_<<24>>24!=1){if(i|0){j=g;U=w;F=y;q=T;z=E;H=k;_=48;break e}b=(w|0)/(T|0)|0;if((te(b,T)|0)!=(w|0)){h=-4;return h|0}d=T+-1|0;p=b&65535;t=0;while(1){if((t|0)>=(d|0)){R=g;x=w;C=y;I=T;M=k;_=47;break e}n[h+(t<<1)>>1]=p;t=t+1|0}}_=T+-1|0;v=w;m=0;while(1){if((m|0)>=(_|0)){_=41;break}S=h+(m<<1)|0;if((v|0)<1){_=33;break}d=r[g>>0]|0;if((d&255)<252){d=d&255;n[S>>1]=d;p=1}else{if((v|0)<2){_=37;break}d=(a[g+1>>0]<<2)+(d&255)&65535;n[S>>1]=d;p=2}t=v-p|0;d=d<<16>>16;if((d|0)>(t|0)){A=-4;_=74;break}g=g+p|0;v=t;m=m+1|0;w=w-(p+d)|0}if((_|0)==33){n[S>>1]=-1;h=-4;return h|0}else if((_|0)==37){n[S>>1]=-1;h=-4;return h|0}else if((_|0)==41){if((w|0)<0)A=-4;else{R=g;x=v;C=y;I=T;b=w;M=k;_=47;break e}return A|0}else if((_|0)==74)return A|0}}while(0);if((_|0)==47)if(!i){P=R;O=I;N=b;D=M;_=61}else{j=R;U=x;F=C;q=I;z=b;H=M;_=48}e:do if((_|0)==48){u=h+(q<<1)+-2|0;if((U|0)<1){n[u>>1]=-1;h=-4;return h|0}d=r[j>>0]|0;do if((d&255)<252){B=d&255;n[u>>1]=B;t=1;u=B}else{if((U|0)>=2){B=(a[j+1>>0]<<2)+(d&255)&65535;n[u>>1]=B;t=2;u=B;break}n[u>>1]=-1;h=-4;return h|0}while(0);p=U-t|0;b=q+-1|0;m=h+(b<<1)|0;d=u<<16>>16;if((d|0)>(p|0)){h=-4;return h|0}u=j+t|0;if(!F){if((t+d|0)>(z|0))A=-4;else{L=q;B=H;break}return A|0}if((te(d,q)|0)>(p|0)){h=-4;return h|0}else d=0;while(1){if((d|0)>=(b|0)){L=q;B=H;break e}n[h+(d<<1)>>1]=n[m>>1]|0;d=d+1|0}}else if((_|0)==61)if((N|0)>1275){h=-4;return h|0}else{n[h+(O+-1<<1)>>1]=N;u=P;L=O;B=D;break}while(0);if(c|0)s[c>>2]=u-e;p=(f|0)==0;d=0;while(1){if((d|0)>=(L|0))break;if(!p)s[f+(d<<2)>>2]=u;u=u+(n[h+(d<<1)>>1]|0)|0;d=d+1|0}if(l|0)s[l>>2]=B+(u-e);if(!o){h=L;return h|0}r[o>>0]=G;h=L;return h|0}function nr(e,t,i,r,s,a,o,f,c,l){e=e|0;t=t|0;i=i|0;r=r|0;s=s|0;a=a|0;o=o|0;f=f|0;c=c|0;l=l|0;var u=0,d=0,p=0,b=0,m=0;m=te(t,f)|0;t=te(n[e+(o<<1)>>1]|0,f)|0;if((c|0)!=1){b=(m|0)/(c|0)|0;t=(t|0)<(b|0)?t:b}p=(l|0)==0;b=p?o:0;u=p?a:0;p=p?t:0;c=e+(u<<1)|0;t=n[c>>1]|0;a=te(t<<16>>16,f)|0;o=r;l=0;while(1){if((l|0)>=(te(t<<16>>16,f)|0))break;h[o>>2]=0;t=n[c>>1]|0;o=o+4|0;l=l+1|0}t=u;c=i+(a<<2)|0;e:while(1){if((t|0)>=(b|0))break;l=te(n[e+(t<<1)>>1]|0,f)|0;u=t+1|0;i=te(n[e+(u<<1)>>1]|0,f)|0;d=+J(+((+h[s+(t<<2)>>2]+ +h[17220+(t<<2)>>2])*.6931471805599453));a=o;t=l;l=c;while(1){c=l+4|0;o=a+4|0;h[a>>2]=+h[l>>2]*d;t=t+1|0;if((t|0)<(i|0)){a=o;l=c}else{t=u;continue e}}}kn(r+(p<<2)|0,0,m-p<<2|0)|0;return}function sr(e,t,i,o,f,c,u,d,p,b,m,w,g,v,_,y,k,E,A,S,M,T){e=e|0;t=t|0;i=i|0;o=o|0;f=f|0;c=c|0;u=u|0;d=d|0;p=p|0;b=b|0;m=m|0;w=w|0;g=g|0;v=v|0;_=_|0;y=y|0;k=k|0;E=E|0;A=A|0;S=S|0;M=M|0;T=T|0;var R=0,x=0,C=0,I=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,q=0,H=0,G=0,V=0,W=0,K=0,Z=0,Y=0,$=0,X=0,J=0,Q=0,ee=0,ie=0,ne=0,se=0,ae=0,oe=0,fe=0,he=0,ce=0,le=0,ue=0,de=0,pe=0,be=0,me=0,we=0,ge=0,ve=0,_e=0,ye=0,ke=0,Ee=0,Ae=0,Se=0,Me=0,Te=0,Re=0,xe=0,Ce=0,Ie=0,Pe=0,Oe=0,Ne=0,De=0,Le=0,Be=0,Ue=0,je=0,Fe=0,ze=0;Fe=l;l=l+1520|0;Ne=Fe+192|0;Be=Fe+24|0;Ue=Fe;je=Fe+144|0;De=Fe+92|0;Le=Fe+40|0;Oe=Fe+244|0;xe=s[t+32>>2]|0;Pe=c|0?2:1;x=(e|0)==0;if(x){Te=0;Re=1}else{Se=(c|0)!=0&(w|0)==0;Re=(M|0)>7;Te=SeℜRe=Se&Re}ve=(b|0)==0?1:1<>1]<>2]|0;b=n[xe+(M+-1<<1)>>1]|0;R=b<>1]|0)-b<>2]=d;s[Ne+28>>2]=k;s[Ne>>2]=e;s[Ne+16>>2]=g;s[Ne+8>>2]=t;de=Ne+40|0;s[de>>2]=s[S>>2];s[Ne+20>>2]=m;s[Ne+44>>2]=T;s[Ne+4>>2]=Re&1;se=Ne+48|0;s[se>>2]=0;ae=Ne+12|0;oe=o+-1|0;fe=(c|0)==0;he=k+20|0;ce=k+28|0;le=Ne+32|0;ue=Ne+24|0;X=t+12|0;J=(1<1;$=i;T=0;R=1;while(1){if(($|0)>=(o|0))break;s[ae>>2]=$;H=($|0)==(oe|0);G=xe+($<<1)|0;Z=n[G>>1]<>1]<>2]|0;M=32-(re(V|0)|0)|0;V=V>>>(M+-16|0);Y=(V>>>12)+-8|0;Y=(s[he>>2]<<3)-((M<<3)+(Y+(V>>>0>(s[5272+(Y<<2)>>2]|0)>>>0&1)))|0;V=y-(($|0)==(i|0)?0:Y)|0;M=_-Y|0;s[le>>2]=M+-1;if(($|0)<(A|0)?(Ce=A-$|0,Ce=(s[p+($<<2)>>2]|0)+((V|0)/(((Ce|0)>3?3:Ce)|0)|0)|0,Ie=(M|0)<(Ce|0),!(((Ie?M:Ce)|0)<16384&((Ie?M:Ce)|0)<0)):0)W=((Ie?M:Ce)|0)>16383?16383:Ie?M:Ce;else W=0;if(Re?((n[G>>1]<=(n[_e>>1]<>2]|0;s[ue>>2]=U;q=($|0)<(s[X>>2]|0);b=q?b:0;z=q?x:Ee;q=q?e:fe?0:Ee;b=H?Te?b:0:b;if((T|0)!=0?(m|0)!=3|ne|(U|0)<0:0){t=(n[xe+(T<<1)>>1]<>1]<(M|0));M=M+Z|0;e=T+-1|0;while(1){R=e+1|0;if((n[xe+(R<<1)>>1]<>0];R=R|a[u+(U+Pe+-1)>>0];if((x|0)<(e|0))x=x+1|0;else{x=M;P=R;break}}}else{t=-1;x=J;P=J}e:do if(w)if(($|0)==(g|0)){if(!Re){Me=31;break}M=xe+(g<<1)|0;R=0;while(1){if((R|0)>=((n[M>>1]<>2]=(+h[Me>>2]+ +h[Se+(R<<2)>>2])*.5;R=R+1|0}}else{y=(W|0)/2|0;R=(t|0)==-1;M=R?0:Ee+(t<<2)|0;if(H){M=ar(Ne,z,Z,y,ve,M,E,0,1,b,x)|0;x=R?0:Se+(t<<2)|0;R=0}else{M=ar(Ne,z,Z,y,ve,M,E,Ee+(n[G>>1]<>1]<>1]<>2]=0;if(H)M=0;else M=Ee+(n[G>>1]<>2];F=+h[d+($+(s[ke>>2]|0)<<2)>>2];N=(j>2]|0;w=s[Q>>2]|0;s[Be>>2]=s[ee>>2];s[Be+4>>2]=s[ee+4>>2];s[Be+8>>2]=s[ee+8>>2];s[Be+12>>2]=s[ee+12>>2];y=s[ie>>2]|0;s[Ue>>2]=s[ce>>2];s[Ue+4>>2]=s[ce+4>>2];s[Ue+8>>2]=s[ce+8>>2];s[Ue+12>>2]=s[ce+12>>2];s[Ue+16>>2]=s[ce+16>>2];M=De;R=Ne;x=M+52|0;do{s[M>>2]=s[R>>2];M=M+4|0;R=R+4|0}while((M|0)<(x|0));B=Z<<2;Mn(pe|0,z|0,B|0)|0;Mn(be|0,q|0,B|0)|0;s[se>>2]=-1;O=(t|0)==-1;if(H)M=0;else M=Ee+(n[G>>1]<=(Z|0)){M=0;C=0;break}N=I+ +h[pe+(M<<2)>>2]*+h[z+(M<<2)>>2];M=M+1|0;I=N}while(1){if((M|0)>=(Z|0))break;N=C+ +h[be+(M<<2)>>2]*+h[q+(M<<2)>>2];M=M+1|0;C=N}N=j*I+F*C;M=je;R=k;x=M+48|0;do{s[M>>2]=s[R>>2];M=M+4|0;R=R+4|0}while((M|0)<(x|0));M=Le;R=Ne;x=M+52|0;do{s[M>>2]=s[R>>2];M=M+4|0;R=R+4|0}while((M|0)<(x|0));Mn(me|0,z|0,B|0)|0;Mn(we|0,q|0,B|0)|0;if(!H)Mn(ge|0,Ee+(n[G>>1]<>2]=e;s[Q>>2]=w;s[ee>>2]=s[Be>>2];s[ee+4>>2]=s[Be+4>>2];s[ee+8>>2]=s[Be+8>>2];s[ee+12>>2]=s[Be+12>>2];s[ie>>2]=y;s[ce>>2]=s[Ue>>2];s[ce+4>>2]=s[Ue+4>>2];s[ce+8>>2]=s[Ue+8>>2];s[ce+12>>2]=s[Ue+12>>2];s[ce+16>>2]=s[Ue+16>>2];M=Ne;R=De;x=M+48|0;do{s[M>>2]=s[R>>2];M=M+4|0;R=R+4|0}while((M|0)<(x|0));Mn(z|0,pe|0,B|0)|0;Mn(q|0,be|0,B|0)|0;s[se>>2]=1;if(H)M=0;else M=Ee+(n[G>>1]<=(Z|0)){M=0;C=0;break}C=I+ +h[pe+(M<<2)>>2]*+h[z+(M<<2)>>2];M=M+1|0;I=C}while(1){if((M|0)>=(Z|0))break;ze=C+ +h[be+(M<<2)>>2]*+h[q+(M<<2)>>2];M=M+1|0;C=ze}if(!(N>=j*I+F*C)){w=0;e=R;M=R}else{M=k;R=je;x=M+48|0;do{s[M>>2]=s[R>>2];M=M+4|0;R=R+4|0}while((M|0)<(x|0));M=Ne;R=Le;x=M+52|0;do{s[M>>2]=s[R>>2];M=M+4|0;R=R+4|0}while((M|0)<(x|0));Mn(z|0,me|0,B|0)|0;Mn(q|0,we|0,B|0)|0;if(!H)Mn(Ee+(n[G>>1]<>0]=e;r[u+(y+Pe+-1)>>0]=M;y=V+((s[p+($<<2)>>2]|0)+Y)|0;$=K;R=(W|0)>(Z<<3|0)&1}s[S>>2]=s[de>>2];l=Fe;return}function ar(e,t,i,n,o,f,c,l,u,d,p){e=e|0;t=t|0;i=i|0;n=n|0;o=o|0;f=f|0;c=c|0;l=l|0;u=+u;d=d|0;p=p|0;var b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0;b=s[e>>2]|0;y=s[e+24>>2]|0;A=(o|0)==1&1;_=(i>>>0)/(o>>>0)|0;if((i|0)==1){k=s[e+28>>2]|0;S=e+32|0;E=k+12|0;c=k+16|0;n=k+20|0;y=k+8|0;o=k+4|0;g=k+24|0;v=k+44|0;A=e+4|0;if((s[S>>2]|0)>7){if(!b){d=s[E>>2]|0;f=s[c>>2]|0;if(!f){b=s[o>>2]|0;p=s[y>>2]|0;m=0;do{if(p>>>0>>0){f=p+1|0;s[y>>2]=f;p=f;f=a[(s[k>>2]|0)+(b-f)>>0]|0}else f=0;d=d|f<>>1}else{_=+h[t>>2]<0&1;d=s[E>>2]|0;b=s[c>>2]|0;if((b+1|0)>>>0>32){m=7-b|0;m=b+((m|0)>-8?m:-8)&-8;w=b;do{f=s[y>>2]|0;p=s[o>>2]|0;if(((s[g>>2]|0)+f|0)>>>0

>>0){f=f+1|0;s[y>>2]=f;r[(s[k>>2]|0)+(p-f)>>0]=d;f=0}else f=-1;s[v>>2]=s[v>>2]|f;d=d>>>8;w=w+-8|0}while((w|0)>7);b=b+-8-m|0}f=_;p=b+1|0;d=d|_<>2]=d;s[c>>2]=p;s[n>>2]=(s[n>>2]|0)+1;s[S>>2]=(s[S>>2]|0)+-8}else f=0;if(s[A>>2]|0)h[t>>2]=f|0?-1:1;if(!l){l=1;return l|0}s[l>>2]=s[t>>2];l=1;return l|0}S=(y|0)>0?y:0;do if(d)if(!f)d=0;else{if((S|0)==0?!((_&1|0)==0&(y|0)<0|(o|0)>1):0){d=f;break}Mn(d|0,f|0,i<<2|0)|0}else d=f;while(0);k=(b|0)==0;E=(d|0)==0;v=0;while(1){if((v|0)>=(S|0))break;e:do if(!k){f=1<>v>>1;m=f<<1;w=0;while(1){if((w|0)<(f|0))g=0;else break e;while(1){if((g|0)>=(b|0))break;x=t+((te(m,g)|0)+w<<2)|0;R=+h[x>>2]*.7071067690849304;M=t+(((g<<1|1)<>2]*.7071067690849304;h[x>>2]=R+T;h[M>>2]=R-T;g=g+1|0}w=w+1|0}}while(0);e:do if(!E){f=1<>v>>1;m=f<<1;w=0;while(1){if((w|0)<(f|0))g=0;else break e;while(1){if((g|0)>=(b|0))break;M=d+((te(m,g)|0)+w<<2)|0;T=+h[M>>2]*.7071067690849304;x=d+(((g<<1|1)<>2]*.7071067690849304;h[M>>2]=T+R;h[x>>2]=T-R;g=g+1|0}w=w+1|0}}while(0);p=a[31165+(p&15)>>0]|0|(a[31165+(p>>4)>>0]|0)<<2;v=v+1|0}o=o>>S;v=p;f=_<>1;b=o<<1;m=0;while(1){if((m|0)<(o|0))w=0;else break e;while(1){if((w|0)>=(p|0))break;M=t+((te(b,w)|0)+m<<2)|0;T=+h[M>>2]*.7071067690849304;x=t+((te(w<<1|1,o)|0)+m<<2)|0;R=+h[x>>2]*.7071067690849304;h[M>>2]=T+R;h[x>>2]=T-R;w=w+1|0}m=m+1|0}}while(0);e:do if(E){f=f>>1;p=o<<1}else{f=f>>1;p=o<<1;b=0;while(1){if((b|0)<(o|0))m=0;else break e;while(1){if((m|0)>=(f|0))break;M=d+((te(p,m)|0)+b<<2)|0;T=+h[M>>2]*.7071067690849304;x=d+((te(m<<1|1,o)|0)+b<<2)|0;R=+h[x>>2]*.7071067690849304;h[M>>2]=T+R;h[x>>2]=T-R;m=m+1|0}b=b+1|0}}while(0);x=v|v<1;if(b){if(!k)or(t,f>>S,o<>S,o<>2]|0)){x=p;return x|0}if(b){cr(t,f>>S,o<=(_|0)){g=0;break}g=o>>1;f=f<<1;d=f>>1;b=g<<1;m=0;while(1){if((m|0)<(g|0))w=0;else break;while(1){if((w|0)>=(d|0))break;M=t+((te(b,w)|0)+m<<2)|0;T=+h[M>>2]*.7071067690849304;x=t+((te(w<<1|1,g)|0)+m<<2)|0;R=+h[x>>2]*.7071067690849304;h[M>>2]=T+R;h[x>>2]=T-R;w=w+1|0}m=m+1|0}o=g;p=p|p>>>g;v=v+1|0}while(1){if((g|0)>=(S|0))break;f=r[31181+p>>0]|0;d=1<>g>>1;b=d<<1;m=0;while(1){if((m|0)<(d|0))w=0;else break;while(1){if((w|0)>=(p|0))break;M=t+((te(b,w)|0)+m<<2)|0;T=+h[M>>2]*.7071067690849304;x=t+(((w<<1|1)<>2]*.7071067690849304;h[M>>2]=T+R;h[x>>2]=T-R;w=w+1|0}m=m+1|0}p=f&255;g=g+1|0}f=o<=(i|0))break e;h[l+(d<<2)>>2]=u*+h[t+(d<<2)>>2];d=d+1|0}}while(0);x=p&(1<=(i|0))break;r=te(n,t)|0;a=0;while(1){if((a|0)>=(t|0))break;s[h+(r+a<<2)>>2]=s[e+((te(a,i)|0)+n<<2)>>2];a=a+1|0}n=n+1|0}i=f<<2;Mn(e|0,h|0,i|0)|0;l=c;return}r=17628+(i<<2)+-8|0;a=0;while(1){if((a|0)>=(i|0))break;n=r+(a<<2)|0;o=0;while(1){if((o|0)>=(t|0))break;u=s[e+((te(o,i)|0)+a<<2)>>2]|0;s[h+((te(s[n>>2]|0,t)|0)+o<<2)>>2]=u;o=o+1|0}a=a+1|0}u=f<<2;Mn(e|0,h|0,u|0)|0;l=c;return}function fr(e,t,i,o,f,c,u,d,p){e=e|0;t=t|0;i=i|0;o=o|0;f=f|0;c=c|0;u=u|0;d=+d;p=p|0;var b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0,I=0;C=l;l=l+32|0;S=C+28|0;x=C+24|0;w=C;s[S>>2]=o;s[x>>2]=p;T=s[e>>2]|0;E=s[e+8>>2]|0;A=s[e+12>>2]|0;R=s[e+20>>2]|0;M=s[e+28>>2]|0;v=E+100|0;_=u+1|0;k=E+8|0;g=(te(_,s[k>>2]|0)|0)+A|0;E=E+96|0;g=(s[v>>2]|0)+(n[(s[E>>2]|0)+(g<<1)>>1]|0)|0;m=r[g>>0]|0;if((u|0)!=-1?(i|0)>2?((a[g+(m&255)>>0]|0)+12|0)<(o|0):0:0){k=i>>1;E=t+(k<<2)|0;A=u+-1|0;if((f|0)==1)s[x>>2]=p&1|p<<1;v=f+1>>1;hr(e,w,t,E,k,S,v,f,A,0,x);o=s[w+12>>2]|0;_=s[w+16>>2]|0;m=s[w+20>>2]|0;y=+(s[w+4>>2]|0)*30517578125e-15;b=+(s[w+8>>2]|0)*30517578125e-15;do if(!((f|0)<2|(_&16383|0)==0))if((_|0)>8192){o=o-(o>>5-u)|0;break}else{o=o+(k<<3>>6-u)|0;o=(o|0)>0?0:o;break}while(0);u=s[S>>2]|0;w=(u-o|0)/2|0;g=(u|0)<(w|0);w=((g?u:w)|0)<0?0:g?u:w;u=u-w|0;g=e+32|0;m=(s[g>>2]|0)-m|0;s[g>>2]=m;o=(c|0)==0?0:c+(k<<2)|0;if((w|0)<(u|0)){x=s[x>>2]|0;i=(fr(e,E,k,u,v,o,A,b*d,x>>v)|0)<<(f>>1);f=u+((s[g>>2]|0)-m)|0;c=i|(fr(e,t,k,w+((f|0)<25|(_|0)==16384?0:f+-24|0)|0,v,c,A,y*d,x)|0);l=C;return c|0}else{x=s[x>>2]|0;i=fr(e,t,k,w,v,c,A,y*d,x)|0;c=w+((s[g>>2]|0)-m)|0;c=i|(fr(e,E,k,u+((c|0)<25|(_|0)==0?0:c+-24|0)|0,v,o,A,b*d,x>>v)|0)<<(f>>1);l=C;return c|0}}u=o+-1|0;m=m&255;o=0;w=0;while(1){if((o|0)==6)break;S=w+m+1>>1;I=(a[g+S>>0]|0)<(u|0);m=I?m:S;o=o+1|0;w=I?S:w}if(!w)o=-1;else o=a[g+w>>0]|0;o=(u-o|0)>((a[g+m>>0]|0)-u|0)?m:w;if(!o)m=0;else m=(a[g+o>>0]|0)+1|0;u=e+32|0;g=m;m=(s[u>>2]|0)-m|0;while(1){s[u>>2]=m;if(!((m|0)<0&(o|0)>0))break;m=m+g|0;s[u>>2]=m;o=o+-1|0;if(!o)w=0;else w=(a[(s[v>>2]|0)+(n[(s[E>>2]|0)+((te(_,s[k>>2]|0)|0)+A<<1)>>1]|0)+o>>0]|0)+1|0;g=w;m=m-w|0}if(o|0){if((o|0)>=8)o=(o&7|8)<<(o>>3)+-1;if(!T){I=Ii(t,i,o,R,f,M,d)|0;l=C;return I|0}else{I=xi(t,i,o,R,f,M,d,s[e+4>>2]|0)|0;l=C;return I|0}}if(!(s[e+4>>2]|0)){I=0;l=C;return I|0}o=(1<>2]=m;if(!m){kn(t|0,0,i<<2|0)|0;I=0;l=C;return I|0}w=e+40|0;e:do if(!c){m=0;while(1){if((m|0)>=(i|0))break e;I=(te(s[w>>2]|0,1664525)|0)+1013904223|0;s[w>>2]=I;h[t+(m<<2)>>2]=+(I>>20|0);m=m+1|0}}else{o=0;while(1){if((o|0)>=(i|0)){o=m;break e}I=(te(s[w>>2]|0,1664525)|0)+1013904223|0;s[w>>2]=I;h[t+(o<<2)>>2]=+h[c+(o<<2)>>2]+((I&32768|0)==0?-.00390625:.00390625);o=o+1|0}}while(0);m=0;b=0;while(1){if((m|0)>=(i|0))break;y=+h[t+(m<<2)>>2];m=m+1|0;b=b+y*y}b=1/+H(+(b+1.0000000036274937e-15))*d;m=0;while(1){if((m|0)>=(i|0))break;h[t>>2]=b*+h[t>>2];m=m+1|0;t=t+4|0}l=C;return o|0}function hr(e,t,i,o,f,c,l,u,d,p,b){e=e|0;t=t|0;i=i|0;o=o|0;f=f|0;c=c|0;l=l|0;u=u|0;d=d|0;p=p|0;b=b|0;var m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0,I=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,q=0,G=0,V=0;E=s[e>>2]|0;L=s[e+8>>2]|0;B=s[e+12>>2]|0;_=s[e+16>>2]|0;G=s[e+28>>2]|0;D=s[e+36>>2]|0;v=(n[(s[L+56>>2]|0)+(B<<1)>>1]|0)+(d<<3)|0;d=v>>1;N=(p|0)==0;do if(!N)if((f|0)==2){p=d+-16|0;g=2;break}else{p=d+-4|0;g=(f<<1)+-1|0;break}else{p=d+-4|0;g=(f<<1)+-1|0}while(0);d=s[c>>2]|0;p=((te(g,p)|0)+d|0)/(g|0)|0;q=d-v+-32|0;p=(q|0)<(p|0)?q:p;if((p|0)<=64)if((p|0)<4)p=1;else k=8;else{p=64;k=8}if((k|0)==8)p=(n[25760+((p&7)<<1)>>1]>>14-(p>>3))+1&-2;P=N|(B|0)<(_|0)?p:1;O=(E|0)==0;if(O)p=0;else{e:do if(N){p=0;m=0;while(1){if((p|0)>=(f|0)){p=0;w=0;break}S=+h[i+(p<<2)>>2];p=p+1|0;m=m+S*S}while(1){if((p|0)>=(f|0))break;S=+h[o+(p<<2)>>2];p=p+1|0;w=w+S*S}m=m+1.0000000036274937e-15;w=w+1.0000000036274937e-15}else{m=1.0000000036274937e-15;w=1.0000000036274937e-15;p=0;while(1){if((p|0)>=(f|0))break e;V=+h[i+(p<<2)>>2];S=+h[o+(p<<2)>>2];y=V+S;S=V-S;m=m+y*y;w=w+S*S;p=p+1|0}}while(0);S=+H(+m);y=+H(+w);m=S*S;w=y*y;do if(!(m+w<1.000000045813705e-18))if(m>2]|0;j=I<<3;F=G+28|0;T=s[F>>2]|0;x=32-(re(T|0)|0)|0;C=T>>>(x+-16|0);q=(C>>>12)+-8|0;q=(x<<3)+(q+(C>>>0>(s[5272+(q<<2)>>2]|0)>>>0&1))|0;e:do if((P|0)==1)if(!N){if(O)g=0;else{N=(p|0)>8192;g=N&1;t:do if(N){d=0;while(1){if((d|0)>=(f|0))break t;N=o+(d<<2)|0;h[N>>2]=-+h[N>>2];d=d+1|0}}while(0);m=+h[D+(B<<2)>>2];V=+h[D+((s[L+8>>2]|0)+B<<2)>>2];w=+H(+(m*m+1.0000000036274937e-15+V*V))+1.0000000036274937e-15;m=m/w;w=V/w;d=0;while(1){if((d|0)>=(f|0))break;B=i+(d<<2)|0;h[B>>2]=m*+h[B>>2]+w*+h[o+(d<<2)>>2];d=d+1|0}d=s[c>>2]|0}if((d|0)>16?(s[e+32>>2]|0)>16:0){v=s[F>>2]|0;if(O){u=G+32|0;p=s[u>>2]|0;d=v>>>2;o=p>>>0>>0;g=o&1;if(!o){p=p-d|0;s[u>>2]=p;d=v-d|0}s[F>>2]=d;k=G+40|0;E=G+24|0;A=G+4|0;while(1){if(d>>>0>=8388609){p=0;break e}s[U>>2]=(s[U>>2]|0)+8;d=d<<8;s[F>>2]=d;_=s[k>>2]|0;v=s[E>>2]|0;if(v>>>0<(s[A>>2]|0)>>>0){s[E>>2]=v+1;v=a[(s[G>>2]|0)+v>>0]|0}else v=0;s[k>>2]=v;o=((_<<8|v)>>>1&255|p<<8&2147483392)^255;s[u>>2]=o;p=o}}p=v>>>2;d=v-p|0;T=G+32|0;if(g){s[T>>2]=(s[T>>2]|0)+d;d=p}s[F>>2]=d;k=G+36|0;E=G+40|0;A=G+24|0;u=G+8|0;e=G+4|0;M=G+44|0;while(1){if(d>>>0>=8388609){p=0;break e}p=s[T>>2]|0;_=p>>>23;if((_|0)==255)s[k>>2]=(s[k>>2]|0)+1;else{v=p>>>31;d=s[E>>2]|0;if((d|0)>-1){p=s[A>>2]|0;if((p+(s[u>>2]|0)|0)>>>0<(s[e>>2]|0)>>>0){s[A>>2]=p+1;r[(s[G>>2]|0)+p>>0]=d+v;d=0}else d=-1;s[M>>2]=s[M>>2]|d}d=s[k>>2]|0;if(d|0){v=v+255&255;do{p=s[A>>2]|0;if((p+(s[u>>2]|0)|0)>>>0<(s[e>>2]|0)>>>0){s[A>>2]=p+1;r[(s[G>>2]|0)+p>>0]=v;p=0;d=s[k>>2]|0}else p=-1;s[M>>2]=s[M>>2]|p;d=d+-1|0;s[k>>2]=d}while((d|0)!=0)}s[E>>2]=_&255;p=s[T>>2]|0;d=s[F>>2]|0}s[T>>2]=p<<8&2147483392;d=d<<8;s[F>>2]=d;s[U>>2]=(s[U>>2]|0)+8}}else{g=0;p=0}}else g=0;else{do if(!O){if(!N?(A=s[e+48>>2]|0,A|0):0){p=(te(p,P)|0)+((((p|0)>8192?32767:-32767)|0)/(P|0)|0)|0;C=(p|0)<0;p=((P|0)>((C?0:p>>14)|0)?C?0:p>>14:P+-1|0)+(A>>>31^1)|0;break}p=(te(p,P)|0)+8192>>14}while(0);t:do if((f|0)>2&(N^1)){k=(P|0)/2|0;E=(k*3|0)+3|0;A=E+k|0;if(O){v=(T>>>0)/(A>>>0)|0;s[G+36>>2]=v;e=G+32|0;_=s[e>>2]|0;d=((_>>>0)/(v>>>0)|0)+1|0;d=A-(A>>>0>>0?A:d)|0;if((d|0)<(E|0))p=(d|0)/3|0;else p=k+1+(d-E)|0;d=(p|0)>(k|0);if(d)g=p+-1-k+E|0;else g=p*3|0;E=d?p-k+E|0:(p*3|0)+3|0;A=te(v,A-E|0)|0;k=_-A|0;s[e>>2]=k;E=te(v,E-g|0)|0;g=(g|0)==0?T-A|0:E;s[F>>2]=g;E=G+40|0;A=G+24|0;u=G+4|0;d=I;while(1){if(g>>>0>=8388609)break t;d=d+8|0;s[U>>2]=d;g=g<<8;s[F>>2]=g;_=s[E>>2]|0;v=s[A>>2]|0;if(v>>>0<(s[u>>2]|0)>>>0){s[A>>2]=v+1;v=a[(s[G>>2]|0)+v>>0]|0}else v=0;s[E>>2]=v;I=((_<<8|v)>>>1&255|k<<8&2147483392)^255;s[e>>2]=I;k=I}}d=(p|0)>(k|0);if(d)v=p+-1-k+E|0;else v=p*3|0;d=d?p-k+E|0:(p*3|0)+3|0;g=(T>>>0)/(A>>>0)|0;if(!v){d=T-(te(g,A-d|0)|0)|0;s[F>>2]=d;k=G+32|0}else{C=T-(te(g,A-v|0)|0)|0;k=G+32|0;s[k>>2]=(s[k>>2]|0)+C;d=te(g,d-v|0)|0;s[F>>2]=d}E=G+36|0;A=G+40|0;u=G+24|0;e=G+8|0;M=G+4|0;T=G+44|0;g=I;while(1){if(d>>>0>=8388609)break t;v=s[k>>2]|0;_=v>>>23;if((_|0)==255)s[E>>2]=(s[E>>2]|0)+1;else{v=v>>>31;d=s[A>>2]|0;if((d|0)>-1){g=s[u>>2]|0;if((g+(s[e>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[u>>2]=g+1;r[(s[G>>2]|0)+g>>0]=d+v;d=0}else d=-1;s[T>>2]=s[T>>2]|d}d=s[E>>2]|0;if(d|0){v=v+255&255;do{g=s[u>>2]|0;if((g+(s[e>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[u>>2]=g+1;r[(s[G>>2]|0)+g>>0]=v;g=0;d=s[E>>2]|0}else g=-1;s[T>>2]=s[T>>2]|g;d=d+-1|0;s[E>>2]=d}while((d|0)!=0)}s[A>>2]=_&255;v=s[k>>2]|0;d=s[F>>2]|0;g=s[U>>2]|0}s[k>>2]=v<<8&2147483392;d=d<<8;s[F>>2]=d;g=g+8|0;s[U>>2]=g}}else{if(!((u|0)>1|N^1)){g=P>>1;v=g+1|0;e=te(v,v)|0;if(O){A=(T>>>0)/(e>>>0)|0;s[G+36>>2]=A;M=G+32|0;u=s[M>>2]|0;p=((u>>>0)/(A>>>0)|0)+1|0;p=e>>>0

>>0?e:p;d=e-p|0;if((d|0)<((te(g,v)|0)>>1|0)){d=d<<3|1;_=32-(re(d|0)|0)+-1>>1;v=1<<_;k=0;while(1){p=(k<<1)+v<<_;g=d>>>0

>>0;k=k+(g?0:v)|0;if((_|0)<=0)break;else{d=d-(g?0:p)|0;v=v>>>1;_=_+-1|0}}p=(k+-1|0)>>>1;g=p+1|0;d=(te(p,g)|0)>>>1}else{E=P<<1;d=(p<<3)+-7|0;_=32-(re(d|0)|0)+-1>>1;v=1<<_;k=0;while(1){p=(k<<1)+v<<_;g=d>>>0

>>0;k=k+(g?0:v)|0;if((_|0)<=0)break;else{d=d-(g?0:p)|0;v=v>>>1;_=_+-1|0}}p=(E+2-k|0)>>>1;g=P+1-p|0;d=e-((te(g,P+2-p|0)|0)>>1)|0}E=te(A,e-(d+g)|0)|0;k=u-E|0;s[M>>2]=k;g=te(A,g)|0;g=(d|0)==0?T-E|0:g;s[F>>2]=g;E=G+40|0;A=G+24|0;u=G+4|0;d=I;while(1){if(g>>>0>=8388609)break t;d=d+8|0;s[U>>2]=d;g=g<<8;s[F>>2]=g;_=s[E>>2]|0;v=s[A>>2]|0;if(v>>>0<(s[u>>2]|0)>>>0){s[A>>2]=v+1;v=a[(s[G>>2]|0)+v>>0]|0}else v=0;s[E>>2]=v;I=((_<<8|v)>>>1&255|k<<8&2147483392)^255;s[M>>2]=I;k=I}}C=(p|0)>(g|0);d=C?P+1-p|0:p+1|0;if(C)v=e-((te(P+1-p|0,P+2-p|0)|0)>>1)|0;else v=(te(p,p+1|0)|0)>>1;g=(T>>>0)/(e>>>0)|0;if(!v){d=T-(te(g,e-d|0)|0)|0;s[F>>2]=d;k=G+32|0}else{C=T-(te(g,e-v|0)|0)|0;k=G+32|0;s[k>>2]=(s[k>>2]|0)+C;d=te(g,d)|0;s[F>>2]=d}E=G+36|0;A=G+40|0;u=G+24|0;e=G+8|0;M=G+4|0;T=G+44|0;g=I;while(1){if(d>>>0>=8388609)break t;v=s[k>>2]|0;_=v>>>23;if((_|0)==255)s[E>>2]=(s[E>>2]|0)+1;else{v=v>>>31;d=s[A>>2]|0;if((d|0)>-1){g=s[u>>2]|0;if((g+(s[e>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[u>>2]=g+1;r[(s[G>>2]|0)+g>>0]=d+v;d=0}else d=-1;s[T>>2]=s[T>>2]|d}d=s[E>>2]|0;if(d|0){v=v+255&255;do{g=s[u>>2]|0;if((g+(s[e>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[u>>2]=g+1;r[(s[G>>2]|0)+g>>0]=v;g=0;d=s[E>>2]|0}else g=-1;s[T>>2]=s[T>>2]|g;d=d+-1|0;s[E>>2]=d}while((d|0)!=0)}s[A>>2]=_&255;v=s[k>>2]|0;d=s[F>>2]|0;g=s[U>>2]|0}s[k>>2]=v<<8&2147483392;d=d<<8;s[F>>2]=d;g=g+8|0;s[U>>2]=g}}v=P+1|0;if(O){g=0;p=((ci(G,v)|0)<<14>>>0)/(P>>>0)|0;break e}d=32-(re(P|0)|0)|0;if((d|0)<=8){d=(T>>>0)/(v>>>0)|0;if(!p){d=T-(te(d,P)|0)|0;s[F>>2]=d;T=G+32|0}else{C=T-(te(d,v-p|0)|0)|0;T=G+32|0;s[T>>2]=(s[T>>2]|0)+C;s[F>>2]=d}k=G+36|0;E=G+40|0;A=G+24|0;u=G+8|0;e=G+4|0;M=G+44|0;g=I;while(1){if(d>>>0>=8388609)break t;v=s[T>>2]|0;_=v>>>23;if((_|0)==255)s[k>>2]=(s[k>>2]|0)+1;else{v=v>>>31;d=s[E>>2]|0;if((d|0)>-1){g=s[A>>2]|0;if((g+(s[u>>2]|0)|0)>>>0<(s[e>>2]|0)>>>0){s[A>>2]=g+1;r[(s[G>>2]|0)+g>>0]=d+v;d=0}else d=-1;s[M>>2]=s[M>>2]|d}d=s[k>>2]|0;if(d|0){v=v+255&255;do{g=s[A>>2]|0;if((g+(s[u>>2]|0)|0)>>>0<(s[e>>2]|0)>>>0){s[A>>2]=g+1;r[(s[G>>2]|0)+g>>0]=v;g=0;d=s[k>>2]|0}else g=-1;s[M>>2]=s[M>>2]|g;d=d+-1|0;s[k>>2]=d}while((d|0)!=0)}s[E>>2]=_&255;v=s[T>>2]|0;d=s[F>>2]|0;g=s[U>>2]|0}s[T>>2]=v<<8&2147483392;d=d<<8;s[F>>2]=d;g=g+8|0;s[U>>2]=g}}C=d+-8|0;d=P>>>C;g=d+1|0;v=p>>>C;_=(T>>>0)/(g>>>0)|0;if(!v){_=T-(te(_,d)|0)|0;s[F>>2]=_;u=G+32|0}else{x=T-(te(_,g-v|0)|0)|0;u=G+32|0;s[u>>2]=(s[u>>2]|0)+x;s[F>>2]=_}E=G+36|0;A=G+40|0;M=G+24|0;T=G+8|0;R=G+4|0;x=G+44|0;v=I;while(1){if(_>>>0>=8388609)break;d=s[u>>2]|0;k=d>>>23;if((k|0)==255)s[E>>2]=(s[E>>2]|0)+1;else{v=d>>>31;d=s[A>>2]|0;if((d|0)>-1){g=s[M>>2]|0;if((g+(s[T>>2]|0)|0)>>>0<(s[R>>2]|0)>>>0){s[M>>2]=g+1;r[(s[G>>2]|0)+g>>0]=d+v;d=0}else d=-1;s[x>>2]=s[x>>2]|d}d=s[E>>2]|0;if(d|0){v=v+255&255;do{g=s[M>>2]|0;if((g+(s[T>>2]|0)|0)>>>0<(s[R>>2]|0)>>>0){s[M>>2]=g+1;r[(s[G>>2]|0)+g>>0]=v;g=0;d=s[E>>2]|0}else g=-1;s[x>>2]=s[x>>2]|g;d=d+-1|0;s[E>>2]=d}while((d|0)!=0)}s[A>>2]=k&255;d=s[u>>2]|0;_=s[F>>2]|0;v=s[U>>2]|0}s[u>>2]=d<<8&2147483392;_=_<<8;s[F>>2]=_;v=v+8|0;s[U>>2]=v}A=(1<>2]|0;e=G+16|0;g=s[e>>2]|0;if((g+C|0)>>>0>32){E=7-g|0;E=g+((E|0)>-8?E:-8)&-8;k=g;do{v=s[T>>2]|0;_=s[R>>2]|0;if(((s[M>>2]|0)+v|0)>>>0<_>>>0){v=v+1|0;s[T>>2]=v;r[(s[G>>2]|0)+(_-v)>>0]=d;v=0}else v=-1;s[x>>2]=s[x>>2]|v;d=d>>>8;k=k+-8|0}while((k|0)>7);v=s[U>>2]|0;g=g+-8-E|0}s[u>>2]=d|A<>2]=g+C;s[U>>2]=v+C}while(0);p=(p<<14>>>0)/(P>>>0)|0;if(O|N)g=0;else{if(p|0){d=0;while(1){if((d|0)>=(f|0)){g=0;break e}B=i+(d<<2)|0;V=+h[B>>2]*.7071067690849304;G=o+(d<<2)|0;S=+h[G>>2]*.7071067690849304;h[B>>2]=V+S;h[G>>2]=S-V;d=d+1|0}}m=+h[D+(B<<2)>>2];V=+h[D+((s[L+8>>2]|0)+B<<2)>>2];w=+H(+(m*m+1.0000000036274937e-15+V*V))+1.0000000036274937e-15;m=m/w;w=V/w;d=0;while(1){if((d|0)>=(f|0)){g=0;p=0;break e}G=i+(d<<2)|0;h[G>>2]=m*+h[G>>2]+w*+h[o+(d<<2)>>2];d=d+1|0}}}while(0);G=s[F>>2]|0;F=32-(re(G|0)|0)|0;G=G>>>(F+-16|0);d=(G>>>12)+-8|0;d=(s[U>>2]<<3)-((F<<3)+(d+(G>>>0>(s[5272+(d<<2)>>2]|0)>>>0&1)))+(q-j)|0;s[c>>2]=(s[c>>2]|0)-d;e:do if((p|0)<16384){switch(p|0){case 0:break;default:break e}s[b>>2]=s[b>>2]&(1<>2]=g;b=t+4|0;s[b>>2]=l;b=t+8|0;s[b>>2]=f;b=t+12|0;s[b>>2]=c;b=t+16|0;s[b>>2]=p;t=t+20|0;s[t>>2]=d;return}else{switch(p|0){case 16384:break;default:break e}s[b>>2]=s[b>>2]&(1<>2]=g;b=t+4|0;s[b>>2]=l;b=t+8|0;s[b>>2]=f;b=t+12|0;s[b>>2]=c;b=t+16|0;s[b>>2]=p;t=t+20|0;s[t>>2]=d;return}while(0);q=p<<16>>16;q=((te(q,q)|0)+4096|0)>>>13;l=q<<16>>16;l=(32767-q+(((te(l,(((te(l,(((te(l,-626)|0)+16384|0)>>>15<<16)+542441472>>16)|0)+16384|0)>>>15<<16)+-501415936>>16)|0)+16384|0)>>>15)<<16)+65536>>16;q=16384-p<<16>>16;q=((te(q,q)|0)+4096|0)>>>13;b=q<<16>>16;b=(32767-q+(((te(b,(((te(b,(((te(b,-626)|0)+16384|0)>>>15<<16)+542441472>>16)|0)+16384|0)>>>15<<16)+-501415936>>16)|0)+16384|0)>>>15)<<16)+65536>>16;q=32-(re(l|0)|0)|0;F=32-(re(b|0)|0)|0;G=b<<15-F<<16>>16;c=l<<15-q<<16>>16;c=(te((f<<23)+-8388608>>16,(F-q<<11)+(((te(G,(((te(G,-2597)|0)+16384|0)>>>15<<16)+519831552>>16)|0)+16384|0)>>>15)-(((te(c,(((te(c,-2597)|0)+16384|0)>>>15<<16)+519831552>>16)|0)+16384|0)>>>15)<<16>>16)|0)+16384>>15; -f=b;s[t>>2]=g;b=t+4|0;s[b>>2]=l;b=t+8|0;s[b>>2]=f;b=t+12|0;s[b>>2]=c;b=t+16|0;s[b>>2]=p;t=t+20|0;s[t>>2]=d;return}function cr(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var n=0,a=0,o=0,f=0,h=0,c=0;c=l;f=te(t,i)|0;h=l;l=l+((1*(f<<2)|0)+15&-16)|0;if(!r){n=0;while(1){if((n|0)>=(i|0))break;r=te(n,t)|0;a=0;while(1){if((a|0)>=(t|0))break;s[h+((te(a,i)|0)+n<<2)>>2]=s[e+(r+a<<2)>>2];a=a+1|0}n=n+1|0}i=f<<2;Mn(e|0,h|0,i|0)|0;l=c;return}r=17628+(i<<2)+-8|0;a=0;while(1){if((a|0)>=(i|0))break;n=r+(a<<2)|0;o=0;while(1){if((o|0)>=(t|0))break;s[h+((te(o,i)|0)+a<<2)>>2]=s[e+((te(s[n>>2]|0,t)|0)+o<<2)>>2];o=o+1|0}a=a+1|0}i=f<<2;Mn(e|0,h|0,i|0)|0;l=c;return}function lr(e,t,i,n,o,f,c,u,d,p,b){e=e|0;t=t|0;i=i|0;n=n|0;o=o|0;f=f|0;c=c|0;u=u|0;d=d|0;p=p|0;b=b|0;var m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0,I=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0;U=l;l=l+32|0;m=U+28|0;E=U+24|0;_=U;s[m>>2]=o;s[E>>2]=b;k=s[e>>2]|0;B=s[e+28>>2]|0;if((n|0)==1){c=e+32|0;f=(k|0)==0;u=B+12|0;x=B+16|0;C=B+20|0;I=B+8|0;P=B+4|0;O=B+24|0;b=B+44|0;S=e+4|0;M=i|0?2:1;T=0;R=t;while(1){if((s[c>>2]|0)>7){if(f){m=s[u>>2]|0;o=s[x>>2]|0;if(!o){y=s[P>>2]|0;_=s[I>>2]|0;k=0;do{if(_>>>0>>0){o=_+1|0;s[I>>2]=o;_=o;o=a[(s[B>>2]|0)+(y-o)>>0]|0}else o=0;m=m|o<>>1}else{A=+h[R>>2]<0&1;m=s[u>>2]|0;y=s[x>>2]|0;if((y+1|0)>>>0>32){k=7-y|0;k=y+((k|0)>-8?k:-8)&-8;E=y;do{o=s[I>>2]|0;_=s[P>>2]|0;if(((s[O>>2]|0)+o|0)>>>0<_>>>0){o=o+1|0;s[I>>2]=o;r[(s[B>>2]|0)+(_-o)>>0]=m;o=0}else o=-1;s[b>>2]=s[b>>2]|o;m=m>>>8;E=E+-8|0}while((E|0)>7);y=y+-8-k|0}o=A;_=y+1|0;m=m|A<>2]=m;s[x>>2]=_;s[C>>2]=(s[C>>2]|0)+1;s[c>>2]=(s[c>>2]|0)+-8}else o=0;if(s[S>>2]|0)h[R>>2]=o|0?-1:1;T=T+1|0;if((T|0)>=(M|0))break;else R=i}if(!d){i=1;l=U;return i|0}s[d>>2]=s[t>>2];i=1;l=U;return i|0}hr(e,_,t,i,n,m,f,f,u,1,E);D=s[_>>2]|0;S=s[_+16>>2]|0;A=s[_+20>>2]|0;L=+(s[_+4>>2]|0)*30517578125e-15;w=+(s[_+8>>2]|0)*30517578125e-15;N=(n|0)==2;do if(N){o=s[m>>2]|0;if((S|0)<16384)switch(S|0){case 0:{m=0;break}default:y=26}else switch(S|0){case 16384:{m=0;break}default:y=26}if((y|0)==26)m=8;O=o-m|0;I=(S|0)>8192;P=e+32|0;s[P>>2]=(s[P>>2]|0)-(A+m);P=I?i:t;I=I?t:i;do if(!m)o=0;else{if(!k){A=B+12|0;m=s[A>>2]|0;S=B+16|0;o=s[S>>2]|0;if(!o){k=B+8|0;y=s[B+4>>2]|0;_=s[k>>2]|0;E=0;do{if(_>>>0>>0){_=_+1|0;s[k>>2]=_;o=a[(s[B>>2]|0)+(y-_)>>0]|0}else o=0;m=m|o<>2]=m>>>1;s[S>>2]=o+-1;o=B+20|0;s[o>>2]=(s[o>>2]|0)+1;o=m&1;break}o=+h[P>>2]*+h[I+4>>2]-+h[P+4>>2]*+h[I>>2]<0&1;x=B+12|0;m=s[x>>2]|0;C=B+16|0;_=s[C>>2]|0;if((_+1|0)>>>0>32){E=B+24|0;A=B+8|0;S=B+4|0;M=B+44|0;T=7-_|0;T=_+((T|0)>-8?T:-8)&-8;R=_;do{y=s[A>>2]|0;k=s[S>>2]|0;if(((s[E>>2]|0)+y|0)>>>0>>0){y=y+1|0;s[A>>2]=y;r[(s[B>>2]|0)+(k-y)>>0]=m;y=0}else y=-1;s[M>>2]=s[M>>2]|y;m=m>>>8;R=R+-8|0}while((R|0)>7);_=_+-8-T|0}s[x>>2]=m|o<<_;s[C>>2]=_+1;B=B+20|0;s[B>>2]=(s[B>>2]|0)+1}while(0);B=1-(o<<1)|0;o=ar(e,P,2,O,f,c,u,d,1,p,b)|0;h[I>>2]=+(0-B|0)*+h[P+4>>2];h[I+4>>2]=+(B|0)*+h[P>>2];if(s[e+4>>2]|0){h[t>>2]=L*+h[t>>2];B=t+4|0;h[B>>2]=L*+h[B>>2];g=w*+h[i>>2];h[i>>2]=g;d=i+4|0;h[d>>2]=w*+h[d>>2];v=+h[t>>2];h[t>>2]=v-g;h[i>>2]=v+ +h[i>>2];v=+h[B>>2];h[B>>2]=v-+h[d>>2];h[d>>2]=v+ +h[d>>2]}}else{y=s[m>>2]|0;_=(y-(s[_+12>>2]|0)|0)/2|0;k=(y|0)<(_|0);_=((k?y:_)|0)<0?0:k?y:_;y=y-_|0;k=e+32|0;m=(s[k>>2]|0)-A|0;s[k>>2]=m;o=s[E>>2]|0;if((_|0)<(y|0)){b=ar(e,i,n,y,f,0,u,0,w,0,o>>f)|0;B=y+((s[k>>2]|0)-m)|0;o=b|(ar(e,t,n,_+((B|0)<25|(S|0)==16384?0:B+-24|0)|0,f,c,u,d,1,p,o)|0);break}else{B=ar(e,t,n,_,f,c,u,d,1,p,o)|0;d=_+((s[k>>2]|0)-m)|0;o=B|(ar(e,i,n,y+((d|0)<25|(S|0)==0?0:d+-24|0)|0,f,0,u,0,w,0,o>>f)|0);break}}while(0);if(!(s[e+4>>2]|0)){i=o;l=U;return i|0}e:do if(!N){m=0;w=0;g=0;while(1){if((m|0)>=(n|0))break;v=+h[i+(m<<2)>>2];j=w+v*+h[t+(m<<2)>>2];m=m+1|0;w=j;g=g+v*v}j=L*L+g;g=w*L*2;w=j-g;g=j+g;if(g<.0006000000284984708|w<.0006000000284984708){Mn(i|0,t|0,n<<2|0)|0;break}v=1/+H(+w);w=1/+H(+g);m=0;while(1){if((m|0)>=(n|0))break e;B=t+(m<<2)|0;g=+h[B>>2]*L;d=i+(m<<2)|0;j=+h[d>>2];h[B>>2]=v*(g-j);h[d>>2]=w*(g+j);m=m+1|0}}while(0);if(!D){i=o;l=U;return i|0}else m=0;while(1){if((m|0)>=(n|0))break;t=i+(m<<2)|0;h[t>>2]=-+h[t>>2];m=m+1|0}l=U;return o|0}function ur(e,t,i,a,o,f){e=e|0;t=t|0;i=i|0;a=a|0;o=o|0;f=f|0;var h=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0,I=0,P=0,O=0;O=l;l=l+208|0;x=O+176|0;C=O+144|0;P=O;R=e+2328|0;I=s[R>>2]|0;T=P+136|0;s[T>>2]=0;switch(o|0){case 0:{h=e+2388|0;c=4;break}case 2:{h=e+2388|0;if((s[e+2420+(s[h>>2]<<2)>>2]|0)==1)c=4;else c=57;break}default:c=57}if((c|0)==4){M=Ne()|0;_=l;l=l+((1*((I+15&-16)<<1)|0)+15&-16)|0;dr(e,t,s[h>>2]|0,o,f);S=e+2765|0;pr(t,_,r[S>>0]|0,r[e+2766>>0]|0,s[R>>2]|0);A=e+2324|0;mr(P+16|0,e+2736|0,e+2312|0,(f|0)==2&1,s[A>>2]|0);wr(x,e+2744|0,s[e+2732>>2]|0);y=P+64|0;k=e+2340|0;xr(y,x,s[k>>2]|0);E=e+2376|0;h=e+2767|0;if((s[E>>2]|0)!=1){h=r[h>>0]|0;if(h<<24>>24<4){o=s[k>>2]|0;t=0;while(1){if((t|0)>=(o|0))break;v=n[e+2344+(t<<1)>>1]|0;n[C+(t<<1)>>1]=(v&65535)+((te(h<<24>>24,(n[x+(t<<1)>>1]|0)-(v<<16>>16)|0)|0)>>>2);t=t+1|0}xr(P+32|0,C,o);o=s[k>>2]|0}else c=11}else{r[h>>0]=4;c=11}if((c|0)==11){o=s[k>>2]|0;Mn(P+32|0,y|0,o<<1|0)|0}Mn(e+2344|0,x|0,o<<1|0)|0;h=e+4160|0;if(s[h>>2]|0){f=o+-1|0;o=63570;t=0;while(1){if((t|0)>=(f|0))break;v=P+32+(t<<1)|0;n[v>>1]=(((te(o,n[v>>1]|0)|0)>>>15)+1|0)>>>1;o=o+(((te(o,-1966)|0)>>15)+1>>1)|0;t=t+1|0}t=P+32+(f<<1)|0;n[t>>1]=(((te(o,n[t>>1]|0)|0)>>>15)+1|0)>>>1;o=63570;t=0;while(1){if((t|0)>=(f|0))break;v=P+64+(t<<1)|0;n[v>>1]=(((te(o,n[v>>1]|0)|0)>>>15)+1|0)>>>1;o=o+(((te(o,-1966)|0)>>15)+1>>1)|0;t=t+1|0}v=P+64+(f<<1)|0;n[v>>1]=(((te(o,n[v>>1]|0)|0)>>>15)+1|0)>>>1}if((r[S>>0]|0)==2){o=e+2316|0;c=s[o>>2]|0;v=s[A>>2]|0;f=(c|0)==8;m=(v|0)==4;w=f?m?11:3:m?34:12;m=f?m?32969:32935:m?33013:32941;c=c<<16;f=c>>15;c=(c>>16)*18|0;u=f+(n[e+2762>>1]|0)|0;d=r[e+2764>>0]|0;p=(f|0)>(c|0);g=0;while(1){if((g|0)>=(v|0))break;t=u+(r[m+((te(g,w)|0)+d)>>0]|0)|0;b=P+(g<<2)|0;s[b>>2]=t;if(p)if((t|0)>(f|0))t=f;else t=(t|0)<(c|0)?c:t;else if((t|0)>(c|0))t=c;else t=(t|0)<(f|0)?f:t;s[b>>2]=t;g=g+1|0}f=n[e+2768>>1]|0;t=s[17400+((f&65535)<<24>>24<<2)>>2]|0;f=(f&65535)>>>8;p=0;while(1){if((p|0)>=(v|0))break;c=(r[e+2740+p>>0]|0)*5|0;u=p*5|0;d=0;while(1){if((d|0)==5)break;n[P+96+(u+d<<1)>>1]=r[t+(c+d)>>0]<<7;d=d+1|0}p=p+1|0}s[T>>2]=n[25412+((f&65535)<<24>>24<<1)>>1]}else{o=s[A>>2]|0;kn(P|0,0,o<<2|0)|0;kn(P+96|0,0,o*10|0)|0;r[e+2768>>0]=0;s[T>>2]=0;o=e+2316|0}Br(e,P,i,_);t=s[o>>2]|0;o=e+4248|0;if((t|0)!=(s[o>>2]|0)){s[e+4168>>2]=s[R>>2]<<7;s[e+4240>>2]=65536;s[e+4244>>2]=65536;s[e+4256>>2]=20;s[e+4252>>2]=2;s[o>>2]=t}g=e+4168|0;_=r[S>>0]|0;v=e+4164|0;s[v>>2]=_<<24>>24;e:do if(_<<24>>24==2){o=e+2332|0;d=s[o>>2]|0;p=s[A>>2]|0;b=p+-1|0;m=e+4172|0;u=s[P+(b<<2)>>2]|0;t=0;w=0;while(1){if((te(w,d)|0)>=(u|0)|(w|0)==(p|0))break;else{f=0;c=0}while(1){if((f|0)==5)break;_=c+(n[P+96+(((b-w|0)*5|0)+f<<1)>>1]|0)|0;f=f+1|0;c=_}if((c|0)>(t|0)){t=P+96+((p+65535-w<<16>>16)*5<<1)|0;n[m>>1]=n[t>>1]|0;n[m+2>>1]=n[t+2>>1]|0;n[m+4>>1]=n[t+4>>1]|0;n[m+6>>1]=n[t+6>>1]|0;n[m+8>>1]=n[t+8>>1]|0;s[g>>2]=s[P+(b-w<<2)>>2]<<8;t=c}w=w+1|0}s[m>>2]=0;s[m+4>>2]=0;n[m+8>>1]=0;n[e+4176>>1]=t;if((t|0)<11469){t=(11744256/(((t|0)>1?t:1)|0)|0)<<16>>16;f=0;while(1){if((f|0)==5)break e;_=e+4172+(f<<1)|0;n[_>>1]=(te(n[_>>1]|0,t)|0)>>>10;f=f+1|0}}if((t|0)>15565){t=(255016960/(t|0)|0)<<16>>16;f=0;while(1){if((f|0)==5)break e;_=e+4172+(f<<1)|0;n[_>>1]=(te(n[_>>1]|0,t)|0)>>>14;f=f+1|0}}}else{s[g>>2]=(t<<16>>16)*4608;o=e+4172|0;s[o>>2]=0;s[o+4>>2]=0;n[o+8>>1]=0;o=e+2332|0}while(0);Mn(e+4182|0,y|0,s[k>>2]<<1|0)|0;n[e+4236>>1]=s[T>>2];T=s[A>>2]|0;y=P+16+(T+-2<<2)|0;k=s[y+4>>2]|0;A=e+4240|0;s[A>>2]=s[y>>2];s[A+4>>2]=k;s[e+4256>>2]=s[o>>2];s[e+4252>>2]=T;s[h>>2]=0;s[v>>2]=r[S>>0];s[E>>2]=0;qe(M|0);o=P}else if((c|0)==57){r[e+2765>>0]=s[e+4164>>2];h=s[e+2316>>2]|0;o=e+4248|0;if((h|0)!=(s[o>>2]|0)){s[e+4168>>2]=I<<7;s[e+4240>>2]=65536;s[e+4244>>2]=65536;s[e+4256>>2]=20;s[e+4252>>2]=2;s[o>>2]=h}yr(e,P,i);h=e+4160|0;s[h>>2]=(s[h>>2]|0)+1;o=P}M=s[R>>2]|0;T=(s[e+2336>>2]|0)-M|0;Tn(e+1348|0,e+1348+(M<<1)|0,T<<1|0)|0;Mn(e+1348+(T<<1)|0,i|0,s[R>>2]<<1|0)|0;Lr(e,o,i,I);if(s[h>>2]|0){Nr(e+4228|0,e+4232|0,i,I);s[e+4216>>2]=1;i=e+2324|0;i=s[i>>2]|0;i=i+-1|0;i=P+(i<<2)|0;i=s[i>>2]|0;P=e+2308|0;s[P>>2]=i;s[a>>2]=I;l=O;return 0}c=e+4216|0;e:do if(s[c>>2]|0){Nr(C,x,i,I);h=s[x>>2]|0;o=s[e+4232>>2]|0;if((h|0)<=(o|0)){if((h|0)<(o|0))s[C>>2]=s[C>>2]>>o-h}else{x=e+4228|0;s[x>>2]=s[x>>2]>>h-o}h=s[C>>2]|0;o=e+4228|0;t=s[o>>2]|0;if((h|0)>(t|0)){R=re(t|0)|0;x=t<>2]=x;R=25-R|0;h=h>>((R|0)>0?R:0);s[C>>2]=h;h=(x|0)/(((h|0)>1?h:1)|0)|0;if((h|0)<1)h=0;else{f=re(h|0)|0;o=24-f|0;t=0-o|0;do if(o)if((o|0)<0){h=h<>>(o+32|0);break}else{h=h<<32-o|h>>>o;break}while(0);C=((f&1|0)==0?46214:32768)>>>(f>>>1);h=(te(h&127,13959168)|0)>>>16;h=C+((te(C>>16,h)|0)+((te(C&65535,h)|0)>>>16))<<4}t=((65536-h|0)/(I|0)|0)<<2;o=0;while(1){if((o|0)>=(I|0))break e;C=i+(o<<1)|0;x=n[C>>1]|0;n[C>>1]=(te(h>>16,x)|0)+((te(h&65532,x)|0)>>>16);h=h+t|0;if((h|0)>65536)break e;o=o+1|0}}}while(0);s[c>>2]=0;i=e+2324|0;i=s[i>>2]|0;i=i+-1|0;i=P+(i<<2)|0;i=s[i>>2]|0;P=e+2308|0;s[P>>2]=i;s[a>>2]=I;l=O;return 0}function dr(e,t,i,f,h){e=e|0;t=t|0;i=i|0;f=f|0;h=h|0;var c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0;C=l;l=l+48|0;S=C;k=C+32|0;e:do if((f|0)==0?(s[e+2404+(i<<2)>>2]|0)==0:0){g=t+28|0;d=s[g>>2]|0;v=t+32|0;f=s[v>>2]|0;c=d>>>8;i=-1;while(1){i=i+1|0;u=te(c,a[29937+i>>0]|0)|0;if(f>>>0>=u>>>0)break;else d=u}w=f-u|0;s[v>>2]=w;f=d-u|0;s[g>>2]=f;d=t+20|0;p=t+40|0;b=t+24|0;m=t+4|0;while(1){if(f>>>0>=8388609)break e;s[d>>2]=(s[d>>2]|0)+8;f=f<<8;s[g>>2]=f;u=s[p>>2]|0;c=s[b>>2]|0;if(c>>>0<(s[m>>2]|0)>>>0){s[b>>2]=c+1;c=a[(s[t>>2]|0)+c>>0]|0}else c=0;s[p>>2]=c;x=((u<<8|c)>>>1&255|w<<8&2147483392)^255;s[v>>2]=x;w=x}}else T=3;while(0);if((T|0)==3){w=t+28|0;d=s[w>>2]|0;g=t+32|0;f=s[g>>2]|0;c=d>>>8;v=-1;while(1){u=v+1|0;i=te(c,a[29933+u>>0]|0)|0;if(f>>>0>>0){v=u;d=i}else break}m=f-i|0;s[g>>2]=m;i=d-i|0;s[w>>2]=i;u=t+20|0;d=t+40|0;p=t+24|0;b=t+4|0;while(1){if(i>>>0>=8388609)break;s[u>>2]=(s[u>>2]|0)+8;i=i<<8;s[w>>2]=i;c=s[d>>2]|0;f=s[p>>2]|0;if(f>>>0<(s[b>>2]|0)>>>0){s[p>>2]=f+1;f=a[(s[t>>2]|0)+f>>0]|0}else f=0;s[d>>2]=f;x=((c<<8|f)>>>1&255|m<<8&2147483392)^255;s[g>>2]=x;m=x}i=v+3|0}f=i>>>1;x=e+2765|0;r[x>>0]=f;r[e+2766>>0]=i&1;E=(h|0)==2;if(E){v=t+28|0;u=s[v>>2]|0;w=t+32|0;f=s[w>>2]|0;c=u>>>8;g=-1;while(1){g=g+1|0;i=te(c,a[29396+g>>0]|0)|0;if(f>>>0>=i>>>0)break;else u=i}R=f-i|0;s[w>>2]=R;i=u-i|0;s[v>>2]=i;d=t+20|0;p=t+40|0;b=t+24|0;m=t+4|0;u=R;while(1){if(i>>>0>=8388609)break;s[d>>2]=(s[d>>2]|0)+8;i=i<<8;s[v>>2]=i;c=s[p>>2]|0;f=s[b>>2]|0;if(f>>>0<(s[m>>2]|0)>>>0){s[b>>2]=f+1;f=a[(s[t>>2]|0)+f>>0]|0}else f=0;s[p>>2]=f;R=((c<<8|f)>>>1&255|u<<8&2147483392)^255;s[w>>2]=R;u=R}r[e+2736>>0]=g;y=w;R=d;_=b;M=t}else{i=f<<24>>24;v=t+28|0;d=s[v>>2]|0;y=t+32|0;f=s[y>>2]|0;c=d>>>8;w=-1;while(1){w=w+1|0;u=te(c,a[29372+(i<<3)+w>>0]|0)|0;if(f>>>0>=u>>>0)break;else d=u}R=f-u|0;s[y>>2]=R;i=d-u|0;s[v>>2]=i;g=t+20|0;p=t+40|0;_=t+24|0;m=t+4|0;u=R;while(1){if(i>>>0>=8388609)break;s[g>>2]=(s[g>>2]|0)+8;i=i<<8;s[v>>2]=i;c=s[p>>2]|0;f=s[_>>2]|0;if(f>>>0<(s[m>>2]|0)>>>0){s[_>>2]=f+1;f=a[(s[t>>2]|0)+f>>0]|0}else f=0;s[p>>2]=f;R=((c<<8|f)>>>1&255|u<<8&2147483392)^255;s[y>>2]=R;u=R}b=e+2736|0;r[b>>0]=w<<3;u=s[v>>2]|0;i=s[y>>2]|0;f=u>>>8;d=-1;while(1){d=d+1|0;c=te(f,a[29962+d>>0]|0)|0;if(i>>>0>=c>>>0)break;else u=c}R=i-c|0;s[y>>2]=R;i=u-c|0;s[v>>2]=i;u=R;while(1){if(i>>>0>=8388609)break;s[g>>2]=(s[g>>2]|0)+8;i=i<<8;s[v>>2]=i;c=s[p>>2]|0;f=s[_>>2]|0;if(f>>>0<(s[m>>2]|0)>>>0){s[_>>2]=f+1;f=a[(s[t>>2]|0)+f>>0]|0}else f=0;s[p>>2]=f;R=((c<<8|f)>>>1&255|u<<8&2147483392)^255;s[y>>2]=R;u=R}r[b>>0]=(a[b>>0]|0)+d;R=g;M=t}A=e+2324|0;d=1;while(1){if((d|0)>=(s[A>>2]|0))break;u=s[v>>2]|0;i=s[y>>2]|0;f=u>>>8;b=-1;while(1){b=b+1|0;c=te(f,a[29396+b>>0]|0)|0;if(i>>>0>=c>>>0)break;else u=c}t=i-c|0;s[y>>2]=t;i=u-c|0;s[v>>2]=i;u=t;while(1){if(i>>>0>=8388609)break;s[R>>2]=(s[R>>2]|0)+8;i=i<<8;s[v>>2]=i;c=s[p>>2]|0;f=s[_>>2]|0;if(f>>>0<(s[m>>2]|0)>>>0){s[_>>2]=f+1;f=a[(s[M>>2]|0)+f>>0]|0}else f=0;s[p>>2]=f;t=((c<<8|f)>>>1&255|u<<8&2147483392)^255;s[y>>2]=t;u=t}r[e+2736+d>>0]=b;d=d+1|0}t=e+2732|0;d=s[t>>2]|0;i=te(r[x>>0]>>1,n[d>>1]|0)|0;i=(s[d+16>>2]|0)+i|0;d=s[v>>2]|0;f=s[y>>2]|0;c=d>>>8;b=-1;while(1){b=b+1|0;u=te(c,a[i+b>>0]|0)|0;if(f>>>0>=u>>>0)break;else d=u}g=f-u|0;s[y>>2]=g;i=d-u|0;s[v>>2]=i;u=g;while(1){if(i>>>0>=8388609)break;s[R>>2]=(s[R>>2]|0)+8;i=i<<8;s[v>>2]=i;c=s[p>>2]|0;f=s[_>>2]|0;if(f>>>0<(s[m>>2]|0)>>>0){s[_>>2]=f+1;f=a[(s[M>>2]|0)+f>>0]|0}else f=0;s[p>>2]=f;g=((c<<8|f)>>>1&255|u<<8&2147483392)^255;s[y>>2]=g;u=g}r[e+2744>>0]=b;Bi(S,k,s[t>>2]|0,b<<24>>24);g=0;while(1){i=s[t>>2]|0;if((g|0)>=(n[i+2>>1]|0))break;f=(s[i+28>>2]|0)+(n[S+(g<<1)>>1]|0)|0;b=s[v>>2]|0;c=s[y>>2]|0;u=b>>>8;w=-1;while(1){i=w+1|0;d=te(u,a[f+i>>0]|0)|0;if(c>>>0>>0){w=i;b=d}else break}k=c-d|0;s[y>>2]=k;c=b-d|0;s[v>>2]=c;b=k;while(1){if(c>>>0>=8388609)break;s[R>>2]=(s[R>>2]|0)+8;c=c<<8;s[v>>2]=c;u=s[p>>2]|0;f=s[_>>2]|0;if(f>>>0<(s[m>>2]|0)>>>0){s[_>>2]=f+1;f=a[(s[M>>2]|0)+f>>0]|0}else f=0;s[p>>2]=f;k=((u<<8|f)>>>1&255|b<<8&2147483392)^255;s[y>>2]=k;b=k}switch(w|0){case-1:{u=c>>>8;d=-1;while(1){i=d+1|0;f=te(u,a[29970+i>>0]|0)|0;if(b>>>0>>0){d=i;c=f}else break}u=b-f|0;s[y>>2]=u;i=c-f|0;s[v>>2]=i;while(1){if(i>>>0>=8388609)break;s[R>>2]=(s[R>>2]|0)+8;i=i<<8;s[v>>2]=i;c=s[p>>2]|0;f=s[_>>2]|0;if(f>>>0<(s[m>>2]|0)>>>0){s[_>>2]=f+1;f=a[(s[M>>2]|0)+f>>0]|0}else f=0;s[p>>2]=f;k=((c<<8|f)>>>1&255|u<<8&2147483392)^255;s[y>>2]=k;u=k}i=~d;break}case 7:{u=c>>>8;d=-1;while(1){i=d+1|0;f=te(u,a[29970+i>>0]|0)|0;if(b>>>0>>0){d=i;c=f}else break}u=b-f|0;s[y>>2]=u;i=c-f|0;s[v>>2]=i;while(1){if(i>>>0>=8388609)break;s[R>>2]=(s[R>>2]|0)+8;i=i<<8;s[v>>2]=i;c=s[p>>2]|0;f=s[_>>2]|0;if(f>>>0<(s[m>>2]|0)>>>0){s[_>>2]=f+1;f=a[(s[M>>2]|0)+f>>0]|0}else f=0;s[p>>2]=f;k=((c<<8|f)>>>1&255|u<<8&2147483392)^255;s[y>>2]=k;u=k}i=d+9|0;break}default:{}}k=g+1|0;r[e+2744+k>>0]=i+252;g=k}if((s[A>>2]|0)==4){u=s[v>>2]|0;i=s[y>>2]|0;f=u>>>8;d=-1;while(1){d=d+1|0;c=te(f,a[29939+d>>0]|0)|0;if(i>>>0>=c>>>0)break;else u=c}S=i-c|0;s[y>>2]=S;i=u-c|0;s[v>>2]=i;u=S;while(1){if(i>>>0>=8388609)break;s[R>>2]=(s[R>>2]|0)+8;i=i<<8;s[v>>2]=i;c=s[p>>2]|0;f=s[_>>2]|0;if(f>>>0<(s[m>>2]|0)>>>0){s[_>>2]=f+1;f=a[(s[M>>2]|0)+f>>0]|0}else f=0;s[p>>2]=f;S=((c<<8|f)>>>1&255|u<<8&2147483392)^255;s[y>>2]=S;u=S}r[e+2767>>0]=d}else r[e+2767>>0]=4;do if((r[x>>0]|0)==2){if(E?(s[e+2396>>2]|0)==2:0){u=s[v>>2]|0;i=s[y>>2]|0;f=u>>>8;b=-1;while(1){d=b+1|0;c=te(f,a[30009+d>>0]|0)|0;if(i>>>0>>0){b=d;u=c}else break}S=i-c|0;s[y>>2]=S;i=u-c|0;s[v>>2]=i;u=S;while(1){if(i>>>0>=8388609)break;s[R>>2]=(s[R>>2]|0)+8;i=i<<8;s[v>>2]=i;c=s[p>>2]|0;f=s[_>>2]|0;if(f>>>0<(s[m>>2]|0)>>>0){s[_>>2]=f+1;f=a[(s[M>>2]|0)+f>>0]|0}else f=0;s[p>>2]=f;S=((c<<8|f)>>>1&255|u<<8&2147483392)^255;s[y>>2]=S;u=S}if((d&65535)<<16>>16>0){i=e+2400|0;f=(o[i>>1]|0)+(b+65528)&65535;n[e+2762>>1]=f}else T=108}else T=108;if((T|0)==108){u=s[v>>2]|0;i=s[y>>2]|0;f=u>>>8;d=-1;while(1){d=d+1|0;c=te(f,a[29977+d>>0]|0)|0;if(i>>>0>=c>>>0)break;else u=c}T=i-c|0;s[y>>2]=T;i=u-c|0;s[v>>2]=i;u=T;while(1){if(i>>>0>=8388609)break;s[R>>2]=(s[R>>2]|0)+8;i=i<<8;s[v>>2]=i;c=s[p>>2]|0;f=s[_>>2]|0;if(f>>>0<(s[m>>2]|0)>>>0){s[_>>2]=f+1;f=a[(s[M>>2]|0)+f>>0]|0}else f=0;s[p>>2]=f;T=((c<<8|f)>>>1&255|u<<8&2147483392)^255;s[y>>2]=T;u=T}w=e+2762|0;n[w>>1]=te(d<<16>>16,s[e+2316>>2]>>1)|0;i=s[e+2380>>2]|0;d=s[v>>2]|0;f=s[y>>2]|0;c=d>>>8;b=-1;while(1){b=b+1|0;u=te(c,a[i+b>>0]|0)|0;if(f>>>0>=u>>>0)break;else d=u}T=f-u|0;s[y>>2]=T;i=d-u|0;s[v>>2]=i;u=T;while(1){if(i>>>0>=8388609)break;s[R>>2]=(s[R>>2]|0)+8;i=i<<8;s[v>>2]=i;c=s[p>>2]|0;f=s[_>>2]|0;if(f>>>0<(s[m>>2]|0)>>>0){s[_>>2]=f+1;f=a[(s[M>>2]|0)+f>>0]|0}else f=0;s[p>>2]=f;T=((c<<8|f)>>>1&255|u<<8&2147483392)^255;s[y>>2]=T;u=T}f=(o[w>>1]|0)+b&65535;n[w>>1]=f;i=e+2400|0}n[i>>1]=f;i=s[e+2384>>2]|0;d=s[v>>2]|0;f=s[y>>2]|0;c=d>>>8;b=-1;while(1){b=b+1|0;u=te(c,a[i+b>>0]|0)|0;if(f>>>0>=u>>>0)break;else d=u}T=f-u|0;s[y>>2]=T;i=d-u|0;s[v>>2]=i;u=T;while(1){if(i>>>0>=8388609)break;s[R>>2]=(s[R>>2]|0)+8;i=i<<8;s[v>>2]=i;c=s[p>>2]|0;f=s[_>>2]|0;if(f>>>0<(s[m>>2]|0)>>>0){s[_>>2]=f+1;f=a[(s[M>>2]|0)+f>>0]|0}else f=0;s[p>>2]=f;T=((c<<8|f)>>>1&255|u<<8&2147483392)^255;s[y>>2]=T;u=T}r[e+2764>>0]=b;u=s[v>>2]|0;i=s[y>>2]|0;f=u>>>8;d=-1;while(1){d=d+1|0;c=te(f,a[29437+d>>0]|0)|0;if(i>>>0>=c>>>0)break;else u=c}T=i-c|0;s[y>>2]=T;i=u-c|0;s[v>>2]=i;u=T;while(1){if(i>>>0>=8388609)break;s[R>>2]=(s[R>>2]|0)+8;i=i<<8;s[v>>2]=i;c=s[p>>2]|0;f=s[_>>2]|0;if(f>>>0<(s[m>>2]|0)>>>0){s[_>>2]=f+1;f=a[(s[M>>2]|0)+f>>0]|0}else f=0;s[p>>2]=f;T=((c<<8|f)>>>1&255|u<<8&2147483392)^255;s[y>>2]=T;u=T}g=e+2768|0;r[g>>0]=d;b=0;while(1){if((b|0)>=(s[A>>2]|0))break;i=s[17376+(r[g>>0]<<2)>>2]|0;d=s[v>>2]|0;f=s[y>>2]|0;c=d>>>8;w=-1;while(1){w=w+1|0;u=te(c,a[i+w>>0]|0)|0;if(f>>>0>=u>>>0)break;else d=u}T=f-u|0;s[y>>2]=T;i=d-u|0;s[v>>2]=i;u=T;while(1){if(i>>>0>=8388609)break;s[R>>2]=(s[R>>2]|0)+8;i=i<<8;s[v>>2]=i;c=s[p>>2]|0;f=s[_>>2]|0;if(f>>>0<(s[m>>2]|0)>>>0){s[_>>2]=f+1;f=a[(s[M>>2]|0)+f>>0]|0}else f=0;s[p>>2]=f;T=((c<<8|f)>>>1&255|u<<8&2147483392)^255;s[y>>2]=T;u=T}r[e+2740+b>>0]=w;b=b+1|0}if(h|0){r[e+2769>>0]=0;break}u=s[v>>2]|0;i=s[y>>2]|0;f=u>>>8;d=-1;while(1){d=d+1|0;c=te(f,a[29930+d>>0]|0)|0;if(i>>>0>=c>>>0)break;else u=c}h=i-c|0;s[y>>2]=h;i=u-c|0;s[v>>2]=i;u=h;while(1){if(i>>>0>=8388609)break;s[R>>2]=(s[R>>2]|0)+8;i=i<<8;s[v>>2]=i;c=s[p>>2]|0;f=s[_>>2]|0;if(f>>>0<(s[m>>2]|0)>>>0){s[_>>2]=f+1;f=a[(s[M>>2]|0)+f>>0]|0}else f=0;s[p>>2]=f;h=((c<<8|f)>>>1&255|u<<8&2147483392)^255;s[y>>2]=h;u=h}r[e+2769>>0]=d}while(0);s[e+2396>>2]=r[x>>0];u=s[v>>2]|0;i=s[y>>2]|0;f=u>>>8;d=-1;while(1){d=d+1|0;c=te(f,a[29947+d>>0]|0)|0;if(i>>>0>=c>>>0)break;else u=c}h=i-c|0;s[y>>2]=h;i=u-c|0;s[v>>2]=i;u=h;while(1){if(i>>>0>=8388609)break;s[R>>2]=(s[R>>2]|0)+8;i=i<<8;s[v>>2]=i;c=s[p>>2]|0;f=s[_>>2]|0;if(f>>>0<(s[m>>2]|0)>>>0){s[_>>2]=f+1;f=a[(s[M>>2]|0)+f>>0]|0}else f=0;s[p>>2]=f;h=((c<<8|f)>>>1&255|u<<8&2147483392)^255;s[y>>2]=h;u=h}r[e+2770>>0]=d;l=C;return}function pr(e,t,i,o,f){e=e|0;t=t|0;i=i|0;o=o|0;f=f|0;var h=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0,I=0,P=0,O=0,N=0,D=0;D=l;l=l+176|0;O=D+160|0;N=D+80|0;M=D;h=i>>1;I=e+28|0;p=s[I>>2]|0;P=e+32|0;u=s[P>>2]|0;d=p>>>8;_=-1;while(1){_=_+1|0;c=te(d,a[30432+(h*9|0)+_>>0]|0)|0;if(u>>>0>=c>>>0)break;else p=c}d=u-c|0;s[P>>2]=d;h=p-c|0;s[I>>2]=h;T=e+20|0;R=e+40|0;x=e+24|0;C=e+4|0;while(1){if(h>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;h=h<<8;s[I>>2]=h;u=s[R>>2]|0;c=s[x>>2]|0;if(c>>>0<(s[C>>2]|0)>>>0){s[x>>2]=c+1;c=a[(s[e>>2]|0)+c>>0]|0}else c=0;s[R>>2]=c;S=((u<<8|c)>>>1&255|d<<8&2147483392)^255;s[P>>2]=S;d=S}S=f>>4;S=S+((S<<4|0)<(f|0)&1)|0;v=0;while(1){if((v|0)>=(S|0)){E=0;break}g=M+(v<<2)|0;s[g>>2]=0;u=h>>>8;p=-1;while(1){p=p+1|0;c=te(u,a[30090+(_*18|0)+p>>0]|0)|0;if(d>>>0>=c>>>0)break;else h=c}d=d-c|0;s[P>>2]=d;h=h-c|0;s[I>>2]=h;while(1){if(h>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;h=h<<8;s[I>>2]=h;u=s[R>>2]|0;c=s[x>>2]|0;if(c>>>0<(s[C>>2]|0)>>>0){s[x>>2]=c+1;c=a[(s[e>>2]|0)+c>>0]|0}else c=0;s[R>>2]=c;E=((u<<8|c)>>>1&255|d<<8&2147483392)^255;s[P>>2]=E;d=E}w=N+(v<<2)|0;u=0;c=p;e:while(1){s[w>>2]=c;if((c|0)!=17)break;m=u+1|0;s[g>>2]=m;p=30252+((m|0)==10&1)|0;b=h>>>8;c=-1;while(1){c=c+1|0;u=te(b,a[p+c>>0]|0)|0;if(d>>>0>=u>>>0)break;else h=u}d=d-u|0;s[P>>2]=d;h=h-u|0;s[I>>2]=h;while(1){if(h>>>0>=8388609){u=m;continue e}s[T>>2]=(s[T>>2]|0)+8;h=h<<8;s[I>>2]=h;p=s[R>>2]|0;u=s[x>>2]|0;if(u>>>0<(s[C>>2]|0)>>>0){s[x>>2]=u+1;u=a[(s[e>>2]|0)+u>>0]|0}else u=0;s[R>>2]=u;E=((p<<8|u)>>>1&255|d<<8&2147483392)^255;s[P>>2]=E;d=E}}v=v+1|0}while(1){if((E|0)>=(S|0)){g=0;break}m=s[N+(E<<2)>>2]|0;h=t+(E<<16>>12<<1)|0;if((m|0)>0){c=30924+(a[31076+m>>0]|0)|0;b=s[I>>2]|0;u=s[P>>2]|0;d=b>>>8;g=-1;while(1){g=g+1|0;p=te(d,a[c+g>>0]|0)|0;if(u>>>0>=p>>>0)break;else b=p}k=u-p|0;s[P>>2]=k;c=b-p|0;s[I>>2]=c;p=k;while(1){if(c>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;c=c<<8;s[I>>2]=c;d=s[R>>2]|0;u=s[x>>2]|0;if(u>>>0<(s[C>>2]|0)>>>0){s[x>>2]=u+1;u=a[(s[e>>2]|0)+u>>0]|0}else u=0;s[R>>2]=u;k=((d<<8|u)>>>1&255|p<<8&2147483392)^255;s[P>>2]=k;p=k}y=m-g|0;k=y&65535;w=g<<16>>16;if((g&65535)<<16>>16>0){c=30772+(a[31076+w>>0]|0)|0;b=s[I>>2]|0;u=s[P>>2]|0;d=b>>>8;m=-1;while(1){m=m+1|0;p=te(d,a[c+m>>0]|0)|0;if(u>>>0>=p>>>0)break;else b=p}_=u-p|0;s[P>>2]=_;c=b-p|0;s[I>>2]=c;p=_;while(1){if(c>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;c=c<<8;s[I>>2]=c;d=s[R>>2]|0;u=s[x>>2]|0;if(u>>>0<(s[C>>2]|0)>>>0){s[x>>2]=u+1;u=a[(s[e>>2]|0)+u>>0]|0}else u=0;s[R>>2]=u;_=((d<<8|u)>>>1&255|p<<8&2147483392)^255;s[P>>2]=_;p=_}_=m&65535;c=w-m&65535;w=_<<16>>16;if(_<<16>>16>0){u=30620+(a[31076+w>>0]|0)|0;m=s[I>>2]|0;d=s[P>>2]|0;p=m>>>8;g=-1;while(1){g=g+1|0;b=te(p,a[u+g>>0]|0)|0;if(d>>>0>=b>>>0)break;else m=b}_=d-b|0;s[P>>2]=_;u=m-b|0;s[I>>2]=u;b=_;while(1){if(u>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;u=u<<8;s[I>>2]=u;p=s[R>>2]|0;d=s[x>>2]|0;if(d>>>0<(s[C>>2]|0)>>>0){s[x>>2]=d+1;d=a[(s[e>>2]|0)+d>>0]|0}else d=0;s[R>>2]=d;_=((p<<8|d)>>>1&255|b<<8&2147483392)^255;s[P>>2]=_;b=_}v=g&65535;_=w-g&65535;u=h+2|0;g=v<<16>>16;if(v<<16>>16>0){d=30468+(a[31076+g>>0]|0)|0;w=s[I>>2]|0;p=s[P>>2]|0;b=w>>>8;v=-1;while(1){v=v+1|0;m=te(b,a[d+v>>0]|0)|0;if(p>>>0>=m>>>0)break;else w=m}b=p-m|0;s[P>>2]=b;d=w-m|0;s[I>>2]=d;m=b;while(1){if(d>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;d=d<<8;s[I>>2]=d;b=s[R>>2]|0;p=s[x>>2]|0;if(p>>>0<(s[C>>2]|0)>>>0){s[x>>2]=p+1;p=a[(s[e>>2]|0)+p>>0]|0}else p=0;s[R>>2]=p;w=((b<<8|p)>>>1&255|m<<8&2147483392)^255;s[P>>2]=w;m=w}n[h>>1]=v;p=g-v&65535;d=_;_=c}else{d=_;A=62}}else A=52}else{c=0;A=52}if((A|0)==52){u=h+2|0;d=0;A=62}if((A|0)==62){A=0;n[h>>1]=0;p=0;_=c}n[u>>1]=p;w=h+4|0;v=h+6|0;g=d<<16>>16;if(d<<16>>16>0){c=30468+(a[31076+g>>0]|0)|0;b=s[I>>2]|0;u=s[P>>2]|0;d=b>>>8;m=-1;while(1){m=m+1|0;p=te(d,a[c+m>>0]|0)|0;if(u>>>0>=p>>>0)break;else b=p}d=u-p|0;s[P>>2]=d;c=b-p|0;s[I>>2]=c;p=d;while(1){if(c>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;c=c<<8;s[I>>2]=c;d=s[R>>2]|0;u=s[x>>2]|0;if(u>>>0<(s[C>>2]|0)>>>0){s[x>>2]=u+1;u=a[(s[e>>2]|0)+u>>0]|0}else u=0;s[R>>2]=u;b=((d<<8|u)>>>1&255|p<<8&2147483392)^255;s[P>>2]=b;p=b}n[w>>1]=m;c=g-m&65535}else{n[w>>1]=0;c=0}n[v>>1]=c;w=_<<16>>16;if(_<<16>>16>0){c=30620+(a[31076+w>>0]|0)|0;b=s[I>>2]|0;u=s[P>>2]|0;d=b>>>8;m=-1;while(1){m=m+1|0;p=te(d,a[c+m>>0]|0)|0;if(u>>>0>=p>>>0)break;else b=p}_=u-p|0;s[P>>2]=_;c=b-p|0;s[I>>2]=c;p=_;while(1){if(c>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;c=c<<8;s[I>>2]=c;d=s[R>>2]|0;u=s[x>>2]|0;if(u>>>0<(s[C>>2]|0)>>>0){s[x>>2]=u+1;u=a[(s[e>>2]|0)+u>>0]|0}else u=0;s[R>>2]=u;_=((d<<8|u)>>>1&255|p<<8&2147483392)^255;s[P>>2]=_;p=_}_=m&65535;d=w-m&65535;u=h+8|0;c=h+10|0;v=_<<16>>16;if(_<<16>>16>0){p=30468+(a[31076+v>>0]|0)|0;g=s[I>>2]|0;b=s[P>>2]|0;m=g>>>8;_=-1;while(1){_=_+1|0;w=te(m,a[p+_>>0]|0)|0;if(b>>>0>=w>>>0)break;else g=w}m=b-w|0;s[P>>2]=m;p=g-w|0;s[I>>2]=p;w=m;while(1){if(p>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;p=p<<8;s[I>>2]=p;m=s[R>>2]|0;b=s[x>>2]|0;if(b>>>0<(s[C>>2]|0)>>>0){s[x>>2]=b+1;b=a[(s[e>>2]|0)+b>>0]|0}else b=0;s[R>>2]=b;g=((m<<8|b)>>>1&255|w<<8&2147483392)^255;s[P>>2]=g;w=g}n[u>>1]=_;u=v-_&65535}else A=91}else{u=h+8|0;c=h+10|0;d=0;A=91}if((A|0)==91){A=0;n[u>>1]=0;u=0}n[c>>1]=u;w=h+12|0;v=h+14|0;g=d<<16>>16;if(d<<16>>16>0){c=30468+(a[31076+g>>0]|0)|0;b=s[I>>2]|0;u=s[P>>2]|0;d=b>>>8;m=-1;while(1){m=m+1|0;p=te(d,a[c+m>>0]|0)|0;if(u>>>0>=p>>>0)break;else b=p}_=u-p|0;s[P>>2]=_;c=b-p|0;s[I>>2]=c;p=_;while(1){if(c>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;c=c<<8;s[I>>2]=c;d=s[R>>2]|0;u=s[x>>2]|0;if(u>>>0<(s[C>>2]|0)>>>0){s[x>>2]=u+1;u=a[(s[e>>2]|0)+u>>0]|0}else u=0;s[R>>2]=u;_=((d<<8|u)>>>1&255|p<<8&2147483392)^255;s[P>>2]=_;p=_}n[w>>1]=m;c=g-m&65535}else{n[w>>1]=0;c=0}n[v>>1]=c;w=y<<16>>16;if(k<<16>>16>0){c=30772+(a[31076+w>>0]|0)|0;b=s[I>>2]|0;u=s[P>>2]|0;d=b>>>8;m=-1;while(1){m=m+1|0;p=te(d,a[c+m>>0]|0)|0;if(u>>>0>=p>>>0)break;else b=p}k=u-p|0;s[P>>2]=k;c=b-p|0;s[I>>2]=c;p=k;while(1){if(c>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;c=c<<8;s[I>>2]=c;d=s[R>>2]|0;u=s[x>>2]|0;if(u>>>0<(s[C>>2]|0)>>>0){s[x>>2]=u+1;u=a[(s[e>>2]|0)+u>>0]|0}else u=0;s[R>>2]=u;k=((d<<8|u)>>>1&255|p<<8&2147483392)^255;s[P>>2]=k;p=k}k=m&65535;c=w-m&65535;w=k<<16>>16;if(k<<16>>16>0){u=30620+(a[31076+w>>0]|0)|0;m=s[I>>2]|0;d=s[P>>2]|0;p=m>>>8;g=-1;while(1){g=g+1|0;b=te(p,a[u+g>>0]|0)|0;if(d>>>0>=b>>>0)break;else m=b}k=d-b|0;s[P>>2]=k;u=m-b|0;s[I>>2]=u;b=k;while(1){if(u>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;u=u<<8;s[I>>2]=u;p=s[R>>2]|0;d=s[x>>2]|0;if(d>>>0<(s[C>>2]|0)>>>0){s[x>>2]=d+1;d=a[(s[e>>2]|0)+d>>0]|0}else d=0;s[R>>2]=d;k=((p<<8|d)>>>1&255|b<<8&2147483392)^255;s[P>>2]=k;b=k}k=g&65535;p=w-g&65535;v=h+16|0;u=h+18|0;_=k<<16>>16;if(k<<16>>16>0){d=30468+(a[31076+_>>0]|0)|0;g=s[I>>2]|0;b=s[P>>2]|0;m=g>>>8;y=-1;while(1){y=y+1|0;w=te(m,a[d+y>>0]|0)|0;if(b>>>0>=w>>>0)break;else g=w}k=b-w|0;s[P>>2]=k;d=g-w|0;s[I>>2]=d;w=k;while(1){if(d>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;d=d<<8;s[I>>2]=d;m=s[R>>2]|0;b=s[x>>2]|0;if(b>>>0<(s[C>>2]|0)>>>0){s[x>>2]=b+1;b=a[(s[e>>2]|0)+b>>0]|0}else b=0;s[R>>2]=b;k=((m<<8|b)>>>1&255|w<<8&2147483392)^255;s[P>>2]=k;w=k}n[v>>1]=y;d=_-y&65535;_=c}else{d=v;A=128}}else A=118}else{c=0;A=118}if((A|0)==118){d=h+16|0;u=h+18|0;p=0;A=128}if((A|0)==128){A=0;n[d>>1]=0;d=0;_=c}n[u>>1]=d;w=h+20|0;v=h+22|0;g=p<<16>>16;if(p<<16>>16>0){c=30468+(a[31076+g>>0]|0)|0;b=s[I>>2]|0;u=s[P>>2]|0;d=b>>>8;m=-1;while(1){m=m+1|0;p=te(d,a[c+m>>0]|0)|0;if(u>>>0>=p>>>0)break;else b=p}k=u-p|0;s[P>>2]=k;c=b-p|0;s[I>>2]=c;p=k;while(1){if(c>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;c=c<<8;s[I>>2]=c;d=s[R>>2]|0;u=s[x>>2]|0;if(u>>>0<(s[C>>2]|0)>>>0){s[x>>2]=u+1;u=a[(s[e>>2]|0)+u>>0]|0}else u=0;s[R>>2]=u;k=((d<<8|u)>>>1&255|p<<8&2147483392)^255;s[P>>2]=k;p=k}n[w>>1]=m;c=g-m&65535}else{n[w>>1]=0;c=0}n[v>>1]=c;w=_<<16>>16;if(_<<16>>16>0){c=30620+(a[31076+w>>0]|0)|0;b=s[I>>2]|0;u=s[P>>2]|0;d=b>>>8;m=-1;while(1){m=m+1|0;p=te(d,a[c+m>>0]|0)|0;if(u>>>0>=p>>>0)break;else b=p}k=u-p|0;s[P>>2]=k;c=b-p|0;s[I>>2]=c;p=k;while(1){if(c>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;c=c<<8;s[I>>2]=c;d=s[R>>2]|0;u=s[x>>2]|0;if(u>>>0<(s[C>>2]|0)>>>0){s[x>>2]=u+1;u=a[(s[e>>2]|0)+u>>0]|0}else u=0;s[R>>2]=u;k=((d<<8|u)>>>1&255|p<<8&2147483392)^255;s[P>>2]=k;p=k}k=m&65535;d=w-m&65535;u=h+24|0;c=h+26|0;v=k<<16>>16;if(k<<16>>16>0){p=30468+(a[31076+v>>0]|0)|0;g=s[I>>2]|0;b=s[P>>2]|0;m=g>>>8;_=-1;while(1){_=_+1|0;w=te(m,a[p+_>>0]|0)|0;if(b>>>0>=w>>>0)break;else g=w}k=b-w|0;s[P>>2]=k;p=g-w|0;s[I>>2]=p;w=k;while(1){if(p>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;p=p<<8;s[I>>2]=p;m=s[R>>2]|0;b=s[x>>2]|0;if(b>>>0<(s[C>>2]|0)>>>0){s[x>>2]=b+1;b=a[(s[e>>2]|0)+b>>0]|0}else b=0;s[R>>2]=b;k=((m<<8|b)>>>1&255|w<<8&2147483392)^255;s[P>>2]=k;w=k}n[u>>1]=_;u=v-_&65535}else A=157}else{u=h+24|0;c=h+26|0;d=0;A=157}if((A|0)==157){A=0;n[u>>1]=0;u=0}n[c>>1]=u;w=h+28|0;g=h+30|0;m=d<<16>>16;if(d<<16>>16>0){h=30468+(a[31076+m>>0]|0)|0;p=s[I>>2]|0;c=s[P>>2]|0;u=p>>>8;b=-1;while(1){b=b+1|0;d=te(u,a[h+b>>0]|0)|0;if(c>>>0>=d>>>0)break;else p=d}k=c-d|0;s[P>>2]=k;h=p-d|0;s[I>>2]=h;d=k;while(1){if(h>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;h=h<<8;s[I>>2]=h;u=s[R>>2]|0;c=s[x>>2]|0;if(c>>>0<(s[C>>2]|0)>>>0){s[x>>2]=c+1;c=a[(s[e>>2]|0)+c>>0]|0}else c=0;s[R>>2]=c;k=((u<<8|c)>>>1&255|d<<8&2147483392)^255;s[P>>2]=k;d=k}n[w>>1]=b;h=m-b&65535}else{n[w>>1]=0;h=0}n[g>>1]=h}else{c=h+32|0;do{n[h>>1]=0;h=h+2|0}while((h|0)<(c|0))}E=E+1|0}while(1){if((g|0)>=(S|0))break;p=s[M+(g<<2)>>2]|0;if((p|0)>0){b=t+(g<<16>>12<<1)|0;_=0;while(1){if((_|0)==16)break;m=b+(_<<1)|0;w=n[m>>1]|0;v=0;while(1){if((v|0)==(p|0))break;d=s[I>>2]|0;h=s[P>>2]|0;c=d>>>8;y=-1;while(1){y=y+1|0;u=te(c,a[29928+y>>0]|0)|0;if(h>>>0>=u>>>0)break;else d=u}A=h-u|0;s[P>>2]=A;h=d-u|0;s[I>>2]=h;d=A;while(1){if(h>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;h=h<<8;s[I>>2]=h;u=s[R>>2]|0;c=s[x>>2]|0;if(c>>>0<(s[C>>2]|0)>>>0){s[x>>2]=c+1;c=a[(s[e>>2]|0)+c>>0]|0}else c=0;s[R>>2]=c;A=((u<<8|c)>>>1&255|d<<8&2147483392)^255;s[P>>2]=A;d=A}w=(w<<1)+y|0;v=v+1|0}n[m>>1]=w;_=_+1|0}A=N+(g<<2)|0;s[A>>2]=s[A>>2]|p<<5}g=g+1|0}r[O+1>>0]=0;v=31093+(((i<<1)+o<<16>>16)*7|0)|0;w=f+8>>4;g=0;while(1){if((g|0)>=(w|0))break;h=s[N+(g<<2)>>2]|0;e:do if((h|0)>0){r[O>>0]=r[v+((h&30)>>>0<6?h&31:6)>>0]|0;b=0;while(1){if((b|0)==16)break e;p=t+(b<<1)|0;if((n[p>>1]|0)>0){d=s[I>>2]|0;h=s[P>>2]|0;c=d>>>8;m=-1;while(1){m=m+1|0;u=te(c,a[O+m>>0]|0)|0;if(h>>>0>=u>>>0)break;else d=u}f=h-u|0;s[P>>2]=f;h=d-u|0;s[I>>2]=h;d=f;while(1){if(h>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;h=h<<8;s[I>>2]=h;u=s[R>>2]|0;c=s[x>>2]|0;if(c>>>0<(s[C>>2]|0)>>>0){s[x>>2]=c+1;c=a[(s[e>>2]|0)+c>>0]|0}else c=0;s[R>>2]=c;f=((u<<8|c)>>>1&255|d<<8&2147483392)^255;s[P>>2]=f;d=f}n[p>>1]=te(n[p>>1]|0,(m<<1)+-1|0)|0}b=b+1|0}}while(0);g=g+1|0;t=t+32|0}l=D;return}function br(e,t,i,n,o){e=e|0;t=t|0;i=i|0;n=n|0;o=o|0;var f=0,h=0,c=0,l=0,u=0,d=0;d=0;while(1){if((d|0)>=(o|0))break;u=t+(d<<2)|0;f=s[u>>2]|0;l=re(f|0)|0;h=24-l|0;c=0-h|0;do if(h)if((h|0)<0){f=f<>>(h+32|0);break}else{f=f<<32-h|f>>>h;break}while(0);c=f&127;c=(((c+(((te(c,128-c|0)|0)*179|0)>>>16)+(31-l<<7)<<16)+-136970240>>16)*2251|0)>>>16;f=c&255;l=e+d|0;r[l>>0]=f;if((c<<24>>24|0)<(r[i>>0]|0)){f=f+1<<24>>24;r[l>>0]=f}if(f<<24>>24>63)f=63;else f=(f<<24>>24>0?f:0)<<24>>24;r[l>>0]=f;if(!(d|n)){f=(r[i>>0]|0)+-4|0;h=r[e>>0]|0;if((f|0)>63){if((h<<24>>24|0)<=(f|0))f=(h<<24>>24>63?h:63)<<24>>24}else if(h<<24>>24>63)f=63;else{l=h<<24>>24;f=(l|0)<(f|0)?f:l}f=f&255;r[e>>0]=f;r[i>>0]=f}else{h=(f&255)-(a[i>>0]|0)|0;f=h&255;r[l>>0]=f;c=(r[i>>0]|0)+8|0;h=h<<24>>24;if((h|0)>(c|0)){f=c+((h-c+1|0)>>>1)&255;r[l>>0]=f}if(f<<24>>24>36)f=36;else f=(f<<24>>24>-4?f:-4)<<24>>24;r[l>>0]=f;if((f|0)>(c|0))f=(r[i>>0]|0)+((f<<1)-c)|0;else f=(a[i>>0]|0)+(f&255)|0;r[i>>0]=f;r[l>>0]=(a[l>>0]|0)+4;f=r[i>>0]|0}f=f<<24>>24;f=(f*29|0)+(f*7281>>16)|0;c=f+2090|0;if((c|0)<3967)if((f|0)<-2090)f=0;else{f=c>>7;l=1<>16)<>7;else f=te(l>>7,h+((te(te(h,128-h|0)|0,-174)|0)>>16)|0)|0;f=l+f|0}else f=2147483647;s[u>>2]=f;d=d+1|0}return}function mr(e,t,i,n,a){e=e|0;t=t|0;i=i|0;n=n|0;a=a|0;var o=0,f=0,h=0,c=0,l=0;l=0;while(1){if((l|0)>=(a|0))break;do if(l|n){o=(r[t+l>>0]|0)+-4|0;f=r[i>>0]|0;h=f<<24>>24;c=h+8|0;if((o|0)>(c|0)){f=h+((o<<1)-c)|0;break}else{f=(f&255)+o|0;break}}else{c=r[t>>0]|0;f=(r[i>>0]|0)+-16|0;f=(c|0)>(f|0)?c:f}while(0);o=f&255;r[i>>0]=o;if(o<<24>>24<=63)if(o<<24>>24<0)o=0;else o=f<<24>>24;else o=63;r[i>>0]=o;o=(o*29|0)+(o*7281>>16)|0;h=o+2090|0;if((h|0)<3967)if((o|0)<-2090)o=0;else{o=h>>7;c=1<>16)<>7;else o=te(c>>7,f+((te(te(f,128-f|0)|0,-174)|0)>>16)|0)|0;o=c+o|0}else o=2147483647;s[e+(l<<2)>>2]=o;l=l+1|0}return}function wr(e,t,i){e=e|0;t=t|0;i=i|0;var o=0,f=0,h=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0;v=l;l=l+80|0;m=v+64|0;g=v;Bi(v+32|0,m,i,r[t>>0]|0);u=t+1|0;d=n[i+4>>1]|0;w=i+2|0;o=n[w>>1]|0;p=o<<16>>16;f=p;h=0;while(1){b=f+-1|0;if((f|0)<=0)break;c=(te(h<<16>>16,a[m+b>>0]|0)|0)>>8;f=r[u+b>>0]|0;h=f<<24>>24<<10;if(f<<24>>24>0)f=h+-102|0;else f=f<<24>>24<0?h|102:h;h=c+((te(f>>16,d)|0)+((te(f&65535,d)|0)>>16))|0;n[g+(b<<1)>>1]=h;f=b}c=te(r[t>>0]|0,p)|0;h=(s[i+8>>2]|0)+c|0;c=(s[i+12>>2]|0)+(c<<1)|0;f=0;while(1){o=o<<16>>16;if((f|0)>=(o|0))break;o=((n[g+(f<<1)>>1]<<14|0)/(n[c+(f<<1)>>1]|0)|0)+(a[h+f>>0]<<7)|0;n[e+(f<<1)>>1]=(o|0)>32767?32767:((o|0)<0?0:o)&65535;o=n[w>>1]|0;f=f+1|0}Cr(e,s[i+36>>2]|0,o);l=v;return}function gr(e,t,i,a,o,f,h,c,u,d,p,b,m,w,g){e=e|0;t=t|0;i=i|0;a=a|0;o=o|0;f=f|0;h=h|0;c=c|0;u=u|0;d=d|0;p=p|0;b=b|0;m=m|0;w=w|0;g=g|0;var v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,q=0,H=0,G=0,V=0,W=0,K=0,Z=0,Y=0,$=0,X=0,J=0,Q=0,ee=0,ie=0,ne=0,se=0,ae=0,oe=0,fe=0,he=0,ce=0,le=0,ue=0,de=0,pe=0,be=0,me=0,we=0,ge=0,ve=0,_e=0,ye=0,ke=0,Ee=0,Ae=0,Se=0,Me=0,Te=0,Re=0,xe=0,Ce=0,Ie=0,Pe=0,Oe=0,Ne=0,De=0,Le=0,Be=0,Ue=0,je=0,Fe=0,ze=0,qe=0,He=0,Ge=0,Ve=0,We=0,Ke=0,Ze=0,Ye=0,$e=0,Xe=0,Je=0,Qe=0,et=0,tt=0;et=l;Xe=t+4436|0;s[Xe>>2]=r[i+34>>0];Je=t+4424|0;ge=s[Je>>2]|0;Ze=n[i+30>>1]|0;De=i+29|0;Le=n[25404+(r[De>>0]>>1<<2)+((Ze&65535)<<24>>24<<1)>>1]|0;Ze=(Ze&-256)<<16>>16!=1024&1;Be=e+4684|0;we=s[Be>>2]|0;Ue=e+4676|0;ze=we+(s[Ue>>2]|0)|0;je=l;l=l+((1*(ze<<2)|0)+15&-16)|0;Fe=l;l=l+((1*(ze<<1)|0)+15&-16)|0;ze=e+4680|0;qe=l;l=l+((1*(s[ze>>2]<<2)|0)+15&-16)|0;He=t+4432|0;s[He>>2]=we; -we=s[Be>>2]|0;Ge=t+4428|0;s[Ge>>2]=we;Ve=e+4672|0;We=Ze^1;Ke=t+4444|0;Ze=Ze<<1^3;Ye=e+4732|0;$e=t+4440|0;Te=e+4728|0;Re=t+3996|0;xe=t+4420|0;Ce=t+4320|0;Ie=t+4416|0;Pe=(w|0)>2048;Ne=(w|0)/2|0;Oe=Ne+-512|0;Ne=512-Ne|0;_e=w<<16>>16;ye=Le+944|0;ke=te(Le,_e)|0;Ee=te(ye<<16>>16,_e)|0;Ae=Le+-944|0;Se=te(944-Le<<16>>16,_e)|0;Me=t+3840|0;ve=g<<16>>16;e=we;we=0;w=ge;ge=t+(s[Be>>2]<<1)|0;while(1){i=s[Ve>>2]|0;if((we|0)>=(i|0))break;pe=f+((we>>1|We)<<4<<1)|0;be=h+(we*5<<1)|0;me=c+(we*24<<1)|0;R=s[u+(we<<2)>>2]|0;T=R>>2;R=T|R<<15;s[Ke>>2]=0;i=r[De>>0]|0;g=m+(we<<2)|0;if(i<<24>>24==2){i=s[g>>2]|0;if(!(we&Ze)){S=s[Be>>2]|0;e=s[Ye>>2]|0;k=S-i-e+-2|0;Tr(Fe+(k<<1)|0,t+(k+(te(we,s[ze>>2]|0)|0)<<1)|0,pe,S-k|0,e);s[Ke>>2]=1;e=s[Be>>2]|0;s[Ge>>2]=e;k=1;S=r[De>>0]|0;w=i}else{k=0;S=2;w=i}}else{k=0;S=i}A=s[g>>2]|0;M=b+(we<<2)|0;E=s[M>>2]|0;g=(E|0)>1;i=re((g?E:1)|0)|0;g=(g?E:1)<>16;_=536870911/(le|0)|0;ue=_<<16;de=ue>>16;g=536870912-((te(le,de)|0)+((te(g&65535,de)|0)>>16))<<3;_=ue+((te(g>>16,de)|0)+((te(g&65528,de)|0)>>16))+(te(g,(_>>15)+1>>1)|0)|0;i=62-i|0;g=i+-47|0;if((g|0)<1){v=47-i|0;i=-2147483648>>v;g=2147483647>>>v;if((i|0)>(g|0)){if((_|0)<=(i|0))i=(_|0)<(g|0)?g:_}else if((_|0)>(g|0))i=g;else i=(_|0)<(i|0)?i:_;i=i<>g:0;v=(i>>4)+1|0;g=v>>>1<<16>>16;v=(v>>16)+1>>1;y=s[ze>>2]|0;_=0;while(1){if((_|0)>=(y|0))break;ue=n[a+(_<<1)>>1]|0;de=ue<<16>>16;s[qe+(_<<2)>>2]=(te(de>>16,g)|0)+((te(ue&65535,g)|0)>>16)+(te(de,v)|0);_=_+1|0}e:do if(k|0){if(!we)i=(te(i>>16,ve)|0)+((te(i&65535,ve)|0)>>16)<<2;v=i>>16;i=i&65535;g=e-A+-2|0;while(1){if((g|0)>=(e|0))break e;de=n[Fe+(g<<1)>>1]|0;s[je+(g<<2)>>2]=(te(v,de)|0)+((te(i,de)|0)>>16);g=g+1|0}}while(0);g=s[$e>>2]|0;if((E|0)==(g|0))i=S;else{if((g|0)<=0)if(!g)v=32;else{i=0-g|0;Qe=26}else{i=g;Qe=26}if((Qe|0)==26){Qe=0;v=re(i|0)|0}e=g<>16|0)|0)<<16>>16;de=(te(e>>16,_)|0)+((te(e&65535,_)|0)>>16)|0;ue=Nn(ue|0,((ue|0)<0)<<31>>31|0,de|0,((de|0)<0)<<31>>31|0)|0;ue=Sn(ue|0,I|0,29)|0;e=e-(ue&-8)|0;_=de+((te(e>>16,_)|0)+((te(e&65535,_)|0)>>16))|0;i=v+28-i|0;e=i+-16|0;if((i|0)<16){g=16-i|0;i=-2147483648>>g;e=2147483647>>>g;if((i|0)>(e|0)){if((_|0)<=(i|0))i=(_|0)<(e|0)?e:_}else if((_|0)>(e|0))i=e;else i=(_|0)<(i|0)?i:_;g=i<>e:0;e=s[He>>2]|0;v=g>>16;_=g&65535;i=e;e=e-(s[Be>>2]|0)|0;while(1){if((e|0)>=(i|0))break;i=t+1280+(e<<2)|0;de=s[i>>2]|0;ue=de<<16>>16;s[i>>2]=(te(v,ue)|0)+((te(_,ue)|0)>>16)+(te(g,(de>>15)+1>>1)|0);i=s[He>>2]|0;e=e+1|0}e:do if(S<<24>>24==2?(s[Ke>>2]|0)==0:0){e=s[Ge>>2]|0;i=e-A+-2|0;while(1){if((i|0)>=(e|0))break e;de=je+(i<<2)|0;ue=s[de>>2]|0;le=ue<<16>>16;s[de>>2]=(te(v,le)|0)+((te(_,le)|0)>>16)+(te(g,(ue>>15)+1>>1)|0);i=i+1|0}}while(0);i=s[Ie>>2]|0;de=i<<16>>16;s[Ie>>2]=(te(v,de)|0)+((te(_,de)|0)>>16)+(te(g,(i>>15)+1>>1)|0);i=s[xe>>2]|0;de=i<<16>>16;s[xe>>2]=(te(v,de)|0)+((te(_,de)|0)>>16)+(te(g,(i>>15)+1>>1)|0);i=0;while(1){if((i|0)==40){i=0;break}de=t+3840+(i<<2)|0;ue=s[de>>2]|0;le=ue<<16>>16;s[de>>2]=(te(v,le)|0)+((te(_,le)|0)>>16)+(te(g,(ue>>15)+1>>1)|0);i=i+1|0}while(1){if((i|0)==24)break;de=t+4320+(i<<2)|0;ue=s[de>>2]|0;le=ue<<16>>16;s[de>>2]=(te(v,le)|0)+((te(_,le)|0)>>16)+(te(g,(ue>>15)+1>>1)|0);i=i+1|0}s[$e>>2]=s[M>>2];e=s[Ge>>2]|0;E=s[M>>2]|0;i=r[De>>0]|0;y=s[ze>>2]|0}W=s[p+(we<<2)>>2]|0;Z=s[Te>>2]|0;oe=s[Ye>>2]|0;Y=oe>>1;$=pe+2|0;X=pe+4|0;J=pe+6|0;Q=pe+8|0;ee=pe+10|0;ie=pe+12|0;ne=pe+14|0;se=pe+16|0;ae=pe+18|0;oe=(oe|0)==16;fe=pe+20|0;he=pe+22|0;ce=pe+24|0;le=pe+26|0;ue=pe+28|0;de=pe+30|0;L=i<<24>>24==2;B=be+2|0;U=be+4|0;j=be+6|0;F=be+8|0;z=Z>>1;H=Z+-1|0;q=t+4320+(H<<2)|0;H=me+(H<<1)|0;G=s[d+(we<<2)>>2]<<16>>16;V=W<<16>>16;W=W>>16;K=(w|0)>0;D=T<<16>>16;O=R>>16;N=E>>>6<<16>>16;C=(E>>21)+1>>1;i=e;P=0;e=je+(e-w+2<<2)|0;x=Re;_=t+1280+((s[He>>2]|0)-w+1<<2)|0;while(1){if((P|0)>=(y|0))break;s[Xe>>2]=(te(s[Xe>>2]|0,196314165)|0)+907633515;R=s[x>>2]|0;T=n[pe>>1]|0;T=Y+((te(R>>16,T)|0)+((te(R&65535,T)|0)>>16))|0;R=s[x+-4>>2]|0;i=n[$>>1]|0;i=T+((te(R>>16,i)|0)+((te(R&65535,i)|0)>>16))|0;R=s[x+-8>>2]|0;T=n[X>>1]|0;T=i+((te(R>>16,T)|0)+((te(R&65535,T)|0)>>16))|0;R=s[x+-12>>2]|0;i=n[J>>1]|0;i=T+((te(R>>16,i)|0)+((te(R&65535,i)|0)>>16))|0;R=s[x+-16>>2]|0;T=n[Q>>1]|0;T=i+((te(R>>16,T)|0)+((te(R&65535,T)|0)>>16))|0;R=s[x+-20>>2]|0;i=n[ee>>1]|0;i=T+((te(R>>16,i)|0)+((te(R&65535,i)|0)>>16))|0;R=s[x+-24>>2]|0;T=n[ie>>1]|0;T=i+((te(R>>16,T)|0)+((te(R&65535,T)|0)>>16))|0;R=s[x+-28>>2]|0;i=n[ne>>1]|0;i=T+((te(R>>16,i)|0)+((te(R&65535,i)|0)>>16))|0;R=s[x+-32>>2]|0;T=n[se>>1]|0;T=i+((te(R>>16,T)|0)+((te(R&65535,T)|0)>>16))|0;R=s[x+-36>>2]|0;i=n[ae>>1]|0;i=T+((te(R>>16,i)|0)+((te(R&65535,i)|0)>>16))|0;if(oe){R=s[x+-40>>2]|0;T=n[fe>>1]|0;T=i+((te(R>>16,T)|0)+((te(R&65535,T)|0)>>16))|0;R=s[x+-44>>2]|0;i=n[he>>1]|0;i=T+((te(R>>16,i)|0)+((te(R&65535,i)|0)>>16))|0;R=s[x+-48>>2]|0;T=n[ce>>1]|0;T=i+((te(R>>16,T)|0)+((te(R&65535,T)|0)>>16))|0;R=s[x+-52>>2]|0;i=n[le>>1]|0;i=T+((te(R>>16,i)|0)+((te(R&65535,i)|0)>>16))|0;R=s[x+-56>>2]|0;T=n[ue>>1]|0;T=i+((te(R>>16,T)|0)+((te(R&65535,T)|0)>>16))|0;R=s[x+-60>>2]|0;i=n[de>>1]|0;i=T+((te(R>>16,i)|0)+((te(R&65535,i)|0)>>16))|0}if(L){R=s[e>>2]|0;T=n[be>>1]|0;T=(te(R>>16,T)|0)+((te(R&65535,T)|0)>>16)+2|0;R=s[e+-4>>2]|0;M=n[B>>1]|0;M=T+((te(R>>16,M)|0)+((te(R&65535,M)|0)>>16))|0;R=s[e+-8>>2]|0;T=n[U>>1]|0;T=M+((te(R>>16,T)|0)+((te(R&65535,T)|0)>>16))|0;R=s[e+-12>>2]|0;M=n[j>>1]|0;M=T+((te(R>>16,M)|0)+((te(R&65535,M)|0)>>16))|0;R=s[e+-16>>2]|0;T=n[F>>1]|0;T=M+((te(R>>16,T)|0)+((te(R&65535,T)|0)>>16))|0;R=e+4|0}else{T=0;R=e}M=s[xe>>2]|0;v=s[Ce>>2]|0;s[Ce>>2]=M;g=n[me>>1]|0;e=2;g=z+((te(M>>16,g)|0)+((te(M&65535,g)|0)>>16))|0;while(1){if((e|0)>=(Z|0))break;E=e+-1|0;S=t+4320+(E<<2)|0;A=s[S>>2]|0;s[S>>2]=v;E=n[me+(E<<1)>>1]|0;S=t+4320+(e<<2)|0;M=s[S>>2]|0;s[S>>2]=A;E=E<<16>>16;S=n[me+(e<<1)>>1]|0;e=e+2|0;g=g+((te(v>>16,E)|0)+((te(v&65535,E)|0)>>16))+((te(A>>16,S)|0)+((te(A&65535,S)|0)>>16))|0;v=M}s[q>>2]=v;A=n[H>>1]|0;A=g+((te(v>>16,A)|0)+((te(v&65535,A)|0)>>16))<<1;S=s[Ie>>2]|0;e=S>>16;S=S&65535;A=A+((te(e,G)|0)+((te(S,G)|0)>>16))|0;M=s[t+1280+((s[He>>2]|0)+-1<<2)>>2]|0;S=(te(M>>16,V)|0)+((te(M&65535,V)|0)>>16)+(te(e,W)|0)+((te(S,W)|0)>>16)|0;e=(i<<2)-A-S|0;if(K){k=(s[_>>2]|0)+(s[_+-8>>2]|0)|0;k=(te(k>>16,D)|0)+((te(k&65535,D)|0)>>16)|0;E=s[_+-4>>2]|0;M=_+4|0;e=T-(k+(te(E>>16,O)|0)+((te(E&65535,O)|0)>>16)<<1)+(e<<1)>>2}else{M=_;e=e>>1}E=qe+(P<<2)|0;k=(s[E>>2]|0)-(e+1>>1)|0;k=(s[Xe>>2]|0)<0?0-k|0:k;k=(k|0)>30720?30720:(k|0)<-31744?-31744:k;e=k-Le|0;do if(Pe){if((e|0)>(Oe|0)){e=e-Oe|0;Qe=70;break}if((e|0)>=(Ne|0))if((e|0)<0){Qe=73;break}else{e=Le;g=ye;v=ke;_=Ee;break}else{e=e+Oe|0;Qe=70;break}}else Qe=70;while(0);e:do if((Qe|0)==70){Qe=0;e=e>>10;if((e|0)>0){v=(e<<10)+-80+Le|0;_=v+1024|0;e=v;g=_;v=te(v<<16>>16,_e)|0;_=te(_<<16>>16,_e)|0;break}switch(e|0){case 0:{e=Le;g=ye;v=ke;_=Ee;break e}case-1:{Qe=73;break e}default:{}}_=(e<<10|80)+Le|0;e=_;g=_+1024|0;v=te(0-_<<16>>16,_e)|0;_=te(-1024-_<<16>>16,_e)|0}while(0);if((Qe|0)==73){Qe=0;e=Ae;g=Le;v=Se;_=ke}tt=k-e<<16>>16;k=k-g<<16>>16;_=(_+(te(k,k)|0)|0)<(v+(te(tt,tt)|0)|0);_=_?g:e;e=o+P|0;r[e>>0]=((_>>>9)+1|0)>>>1;_=_<<4;T=((s[Xe>>2]|0)<0?0-_|0:_)+(T<<1)|0;i=T+(i<<4)|0;_=((te(i>>16,N)|0)+((te(i&65534,N)|0)>>16)+(te(i,C)|0)>>7)+1>>1;n[ge+(P<<1)>>1]=(_|0)>32767?32767:((_|0)<-32768?-32768:_)&65535;_=x+4|0;s[_>>2]=i;i=i-(s[E>>2]<<4)|0;s[xe>>2]=i;i=i-(A<<2)|0;s[Ie>>2]=i;s[t+1280+(s[He>>2]<<2)>>2]=i-(S<<2);i=s[Ge>>2]|0;s[je+(i<<2)>>2]=T<<1;s[He>>2]=(s[He>>2]|0)+1;i=i+1|0;s[Ge>>2]=i;s[Xe>>2]=(s[Xe>>2]|0)+(r[e>>0]|0);P=P+1|0;e=R;x=_;_=M}Mn(Me|0,t+3840+(y<<2)|0,160)|0;tt=s[ze>>2]|0;a=a+(tt<<1)|0;o=o+tt|0;e=i;we=we+1|0;ge=ge+(tt<<1)|0}s[Je>>2]=s[m+(i+-1<<2)>>2];Tn(t|0,t+(s[Ue>>2]<<1)|0,s[Be>>2]<<1|0)|0;Tn(t+1280|0,t+1280+(s[Ue>>2]<<2)|0,s[Be>>2]<<2|0)|0;l=et;return}function vr(e,t,i,o,f,h,c,u,d,p,b,m,w,g,v){e=e|0;t=t|0;i=i|0;o=o|0;f=f|0;h=h|0;c=c|0;u=u|0;d=d|0;p=p|0;b=b|0;m=m|0;w=w|0;g=g|0;v=v|0;var _=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,q=0,H=0,G=0,V=0,W=0,K=0,Z=0,Y=0,$=0,X=0,J=0,Q=0,ee=0,ie=0,ne=0,se=0,ae=0,oe=0,fe=0,he=0,ce=0,le=0,ue=0,de=0,pe=0,be=0,me=0,we=0,ge=0,ve=0,_e=0;ge=l;l=l+176|0;ce=ge+160|0;ae=ge;le=t+4424|0;M=s[le>>2]|0;ne=e+4720|0;_=s[ne>>2]|0;pe=l;l=l+((1*(_*1396|0)|0)+15&-16)|0;kn(pe|0,0,_*1396|0)|0;he=i+34|0;be=t+4416|0;me=t+4420|0;we=e+4684|0;ue=t+3840|0;de=t+4320|0;y=0;while(1){if((y|0)>=(_|0))break;k=y+(a[he>>0]|0)&3;s[pe+(y*1396|0)+1384>>2]=k;s[pe+(y*1396|0)+1388>>2]=k;s[pe+(y*1396|0)+1392>>2]=0;s[pe+(y*1396|0)+1376>>2]=s[be>>2];s[pe+(y*1396|0)+1380>>2]=s[me>>2];s[pe+(y*1396|0)+1120>>2]=s[t+1280+((s[we>>2]|0)+-1<<2)>>2];Mn(pe+(y*1396|0)|0,ue|0,160)|0;k=pe+(y*1396|0)+1280|0;A=de;S=k+96|0;do{s[k>>2]=s[A>>2];k=k+4|0;A=A+4|0}while((k|0)<(S|0));y=y+1|0}k=n[i+30>>1]|0;X=i+29|0;se=r[X>>0]|0;J=n[25404+(se<<24>>24>>1<<2)+((k&65535)<<24>>24<<1)>>1]|0;s[ce>>2]=0;fe=e+4680|0;E=s[fe>>2]|0;_=(E|0)>40?40:E;e:do if(se<<24>>24!=2)if((M|0)>0){ee=M+-3|0;ee=(_|0)<(ee|0)?_:ee}else ee=_;else{i=s[e+4672>>2]|0;y=0;while(1){if((y|0)>=(i|0)){ee=_;break e}se=(s[w+(y<<2)>>2]|0)+-3|0;_=(_|0)<(se|0)?_:se;y=y+1|0}}while(0);z=(k&-256)<<16>>16!=1024&1;$=s[we>>2]|0;se=e+4676|0;Z=$+(s[se>>2]|0)|0;W=l;l=l+((1*(Z<<2)|0)+15&-16)|0;K=l;l=l+((1*(Z<<1)|0)+15&-16)|0;Z=l;l=l+((1*(E<<2)|0)+15&-16)|0;Q=t+4432|0;s[Q>>2]=$;U=t+4428|0;s[U>>2]=s[we>>2];ie=e+4672|0;j=z^1;F=t+4444|0;z=z<<1^3;Y=pe+1392|0;q=m+4|0;H=e+4732|0;G=t+4440|0;V=e+4728|0;B=e+4764|0;L=v<<16>>16;D=0;i=M;$=t+($<<1)|0;y=0;while(1){if((D|0)>=(s[ie>>2]|0))break;C=h+((D>>1|j)<<4<<1)|0;P=c+(D*5<<1)|0;O=u+(D*24<<1)|0;N=s[d+(D<<2)>>2]|0;N=N>>2|N>>>1<<16;s[F>>2]=0;_=r[X>>0]|0;A=w+(D<<2)|0;if(_<<24>>24==2){E=s[A>>2]|0;if(!(D&z)){e:do if((D|0)==2){i=s[ne>>2]|0;_=s[Y>>2]|0;k=0;y=1;while(1){if((y|0)>=(i|0)){_=0;break}R=s[pe+(y*1396|0)+1392>>2]|0;x=(R|0)<(_|0);_=x?R:_;k=x?y:k;y=y+1|0}while(1){if((_|0)>=(i|0))break;if((_|0)!=(k|0)){x=pe+(_*1396|0)+1392|0;s[x>>2]=(s[x>>2]|0)+134217727}_=_+1|0}_=0;y=(s[ce>>2]|0)+ee|0;while(1){if((_|0)>=(ee|0)){y=0;break e}x=(y+-1|0)%40|0;x=(x|0)<0?x+40|0:x;R=_-ee|0;r[f+R>>0]=(((s[pe+(k*1396|0)+640+(x<<2)>>2]|0)>>>9)+1|0)>>>1;M=s[pe+(k*1396|0)+800+(x<<2)>>2]|0;T=s[q>>2]|0;v=T<<16>>16;T=((te(M>>16,v)|0)+((te(M&65535,v)|0)>>16)+(te(M,(T>>15)+1>>1)|0)>>13)+1>>1;n[$+(R<<1)>>1]=(T|0)>32767?32767:((T|0)<-32768?-32768:T)&65535;s[t+1280+((s[Q>>2]|0)-ee+_<<2)>>2]=s[pe+(k*1396|0)+1120+(x<<2)>>2];_=_+1|0;y=x}}while(0);x=s[we>>2]|0;v=s[H>>2]|0;_=x-E-v+-2|0;Tr(K+(_<<1)|0,t+(_+(te(D,s[fe>>2]|0)|0)<<1)|0,C,x-_|0,v);s[U>>2]=s[we>>2];s[F>>2]=1;v=1;_=r[X>>0]|0;x=E;R=y}else{v=0;_=2;x=E;R=y}}else{v=0;x=i;R=y}y=s[ne>>2]|0;M=s[A>>2]|0;T=m+(D<<2)|0;k=s[T>>2]|0;E=(k|0)>1;i=re((E?k:1)|0)|0;E=(E?k:1)<>16;S=536870911/(ve|0)|0;A=S<<16;e=A>>16;E=536870912-((te(ve,e)|0)+((te(E&65535,e)|0)>>16))<<3;S=A+((te(E>>16,e)|0)+((te(E&65528,e)|0)>>16))+(te(E,(S>>15)+1>>1)|0)|0;i=62-i|0;E=i+-47|0;if((E|0)<1){A=47-i|0;i=-2147483648>>A;E=2147483647>>>A;if((i|0)>(E|0)){if((S|0)<=(i|0))i=(S|0)<(E|0)?E:S}else if((S|0)>(E|0))i=E;else i=(S|0)<(i|0)?i:S;E=i<>E:0;S=(E>>4)+1|0;A=S>>>1<<16>>16;S=(S>>16)+1>>1;i=s[fe>>2]|0;e=0;while(1){if((e|0)>=(i|0))break;_e=n[o+(e<<1)>>1]|0;ve=_e<<16>>16;s[Z+(e<<2)>>2]=(te(ve>>16,A)|0)+((te(_e&65535,A)|0)>>16)+(te(ve,S)|0);e=e+1|0}e:do if(v|0){if(!D)E=(te(E>>16,L)|0)+((te(E&65535,L)|0)>>16)<<2;S=s[U>>2]|0;e=E>>16;E=E&65535;A=S-M+-2|0;while(1){if((A|0)>=(S|0))break e;_e=n[K+(A<<1)>>1]|0;s[W+(A<<2)>>2]=(te(e,_e)|0)+((te(E,_e)|0)>>16);A=A+1|0}}while(0);E=s[G>>2]|0;if((k|0)!=(E|0)){if((E|0)<=0)if(!E)A=32;else{i=0-E|0;oe=46}else{i=E;oe=46}if((oe|0)==46){oe=0;A=re(i|0)|0}E=E<>16|0)|0)<<16>>16;_e=(te(E>>16,S)|0)+((te(E&65535,S)|0)>>16)|0;k=Nn(k|0,((k|0)<0)<<31>>31|0,_e|0,((_e|0)<0)<<31>>31|0)|0;k=Sn(k|0,I|0,29)|0;k=E-(k&-8)|0;S=_e+((te(k>>16,S)|0)+((te(k&65535,S)|0)>>16))|0;i=A+28-i|0;k=i+-16|0;if((i|0)<16){E=16-i|0;i=-2147483648>>E;k=2147483647>>>E;if((i|0)>(k|0)){if((S|0)<=(i|0))i=(S|0)<(k|0)?k:S}else if((S|0)>(k|0))i=k;else i=(S|0)<(i|0)?i:S;E=i<>k:0;k=s[Q>>2]|0;A=E>>16;S=E&65535;i=k;k=k-(s[we>>2]|0)|0;while(1){if((k|0)>=(i|0))break;i=t+1280+(k<<2)|0;_e=s[i>>2]|0;ve=_e<<16>>16;s[i>>2]=(te(A,ve)|0)+((te(S,ve)|0)>>16)+(te(E,(_e>>15)+1>>1)|0);i=s[Q>>2]|0;k=k+1|0}e:do if(_<<24>>24==2?(s[F>>2]|0)==0:0){_=s[U>>2]|0;i=_-ee|0;_=_-M+-2|0;while(1){if((_|0)>=(i|0)){i=0;break e}_e=W+(_<<2)|0;ve=s[_e>>2]|0;M=ve<<16>>16;s[_e>>2]=(te(A,M)|0)+((te(S,M)|0)>>16)+(te(E,(ve>>15)+1>>1)|0);_=_+1|0}}else i=0;while(0);while(1){if((i|0)>=(y|0))break;_=pe+(i*1396|0)+1376|0;_e=s[_>>2]|0;ve=_e<<16>>16;s[_>>2]=(te(A,ve)|0)+((te(S,ve)|0)>>16)+(te(E,(_e>>15)+1>>1)|0);_=pe+(i*1396|0)+1380|0;_e=s[_>>2]|0;ve=_e<<16>>16;s[_>>2]=(te(A,ve)|0)+((te(S,ve)|0)>>16)+(te(E,(_e>>15)+1>>1)|0);_=0;while(1){if((_|0)==40){_=0;break}_e=pe+(i*1396|0)+(_<<2)|0;ve=s[_e>>2]|0;M=ve<<16>>16;s[_e>>2]=(te(A,M)|0)+((te(S,M)|0)>>16)+(te(E,(ve>>15)+1>>1)|0);_=_+1|0}while(1){if((_|0)==24){_=0;break}_e=pe+(i*1396|0)+1280+(_<<2)|0;ve=s[_e>>2]|0;M=ve<<16>>16;s[_e>>2]=(te(A,M)|0)+((te(S,M)|0)>>16)+(te(E,(ve>>15)+1>>1)|0);_=_+1|0}while(1){if((_|0)==40)break;_e=pe+(i*1396|0)+960+(_<<2)|0;ve=s[_e>>2]|0;M=ve<<16>>16;s[_e>>2]=(te(A,M)|0)+((te(S,M)|0)>>16)+(te(E,(ve>>15)+1>>1)|0);_e=pe+(i*1396|0)+1120+(_<<2)|0;ve=s[_e>>2]|0;M=ve<<16>>16;s[_e>>2]=(te(A,M)|0)+((te(S,M)|0)>>16)+(te(E,(ve>>15)+1>>1)|0);_=_+1|0}i=i+1|0}s[G>>2]=s[T>>2];_=r[X>>0]|0;k=s[T>>2]|0;i=s[fe>>2]|0;y=s[ne>>2]|0}_r(t,pe,_<<24>>24,Z,f,$,W,ae,C,P,O,x,N,s[p+(D<<2)>>2]|0,s[b+(D<<2)>>2]|0,k,g,J,i,R,s[V>>2]|0,s[H>>2]|0,s[B>>2]|0,y,ce,ee);y=s[fe>>2]|0;o=o+(y<<1)|0;f=f+y|0;D=D+1|0;i=x;$=$+(y<<1)|0;y=R+1|0}i=s[ne>>2]|0;_=s[Y>>2]|0;E=0;y=1;while(1){if((y|0)>=(i|0))break;ve=s[pe+(y*1396|0)+1392>>2]|0;_e=(ve|0)<(_|0);_=_e?ve:_;E=_e?y:E;y=y+1|0}r[he>>0]=s[pe+(E*1396|0)+1388>>2];i=s[m+((s[ie>>2]|0)+-1<<2)>>2]|0;y=i>>>6<<16>>16;i=(i>>21)+1>>1;k=0;_=(s[ce>>2]|0)+ee|0;while(1){if((k|0)>=(ee|0))break;_e=(_+-1|0)%40|0;_e=(_e|0)<0?_e+40|0:_e;ve=k-ee|0;r[f+ve>>0]=(((s[pe+(E*1396|0)+640+(_e<<2)>>2]|0)>>>9)+1|0)>>>1;ce=s[pe+(E*1396|0)+800+(_e<<2)>>2]|0;ce=((te(ce>>16,y)|0)+((te(ce&65535,y)|0)>>16)+(te(ce,i)|0)>>7)+1>>1;n[$+(ve<<1)>>1]=(ce|0)>32767?32767:((ce|0)<-32768?-32768:ce)&65535;s[t+1280+((s[Q>>2]|0)-ee+k<<2)>>2]=s[pe+(E*1396|0)+1120+(_e<<2)>>2];k=k+1|0;_=_e}Mn(ue|0,pe+(E*1396|0)+(s[fe>>2]<<2)|0,160)|0;k=de;A=pe+(E*1396|0)+1280|0;S=k+96|0;do{s[k>>2]=s[A>>2];k=k+4|0;A=A+4|0}while((k|0)<(S|0));s[be>>2]=s[pe+(E*1396|0)+1376>>2];s[me>>2]=s[pe+(E*1396|0)+1380>>2];s[le>>2]=s[w+((s[ie>>2]|0)+-1<<2)>>2];Tn(t|0,t+(s[se>>2]<<1)|0,s[we>>2]<<1|0)|0;Tn(t+1280|0,t+1280+(s[se>>2]<<2)|0,s[we>>2]<<2|0)|0;l=ge;return}function _r(e,t,i,a,o,f,h,c,u,d,p,b,m,w,g,v,_,y,k,E,A,S,M,T,R,x){e=e|0;t=t|0;i=i|0;a=a|0;o=o|0;f=f|0;h=h|0;c=c|0;u=u|0;d=d|0;p=p|0;b=b|0;m=m|0;w=w|0;g=g|0;v=v|0;_=_|0;y=y|0;k=k|0;E=E|0;A=A|0;S=S|0;M=M|0;T=T|0;R=R|0;x=x|0;var C=0,I=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,q=0,H=0,G=0,V=0,W=0,K=0,Z=0,Y=0,$=0,X=0,J=0,Q=0,ee=0,ie=0,re=0,ne=0,se=0,ae=0,oe=0,fe=0,he=0,ce=0,le=0,ue=0,de=0,pe=0,be=0,me=0,we=0,ge=0,ve=0,_e=0,ye=0,ke=0,Ee=0,Ae=0,Se=0,Me=0,Te=0,Re=0,xe=0,Ce=0,Ie=0,Pe=0,Oe=0,Ne=0,De=0,Le=0,Be=0;Ne=l;Ce=l;l=l+((1*(T*56|0)|0)+15&-16)|0;Ie=e+4432|0;Pe=e+4428|0;xe=v>>6;ke=(i|0)==2;Ee=d+2|0;Ae=d+4|0;Se=d+6|0;Me=d+8|0;Te=(b|0)>0;Re=m<<16>>16;le=m>>16;ue=S>>1;de=u+2|0;pe=u+4|0;be=u+6|0;me=u+8|0;we=u+10|0;ge=u+12|0;ve=u+14|0;_e=u+16|0;ye=u+18|0;ne=(S|0)==16;se=u+20|0;ae=u+22|0;oe=u+24|0;fe=u+26|0;he=u+28|0;ce=u+30|0;Q=M<<16>>16;ee=A>>1;ie=A+-1|0;re=p+(ie<<1)|0;X=w<<16>>16;J=g<<16>>16;K=g>>16;Z=(_|0)>2048;$=(_|0)/2|0;Y=$+-512|0;$=512-$|0;j=_<<16>>16;F=y+944|0;z=te(y<<16>>16,j)|0;q=te(F<<16>>16,j)|0;H=y+-944|0;G=te(944-y<<16>>16,j)|0;V=Ce+4|0;W=Ce+32|0;B=(E|0)<1;U=0;v=h+((s[Pe>>2]|0)-b+2<<2)|0;i=e+1280+((s[Ie>>2]|0)-b+1<<2)|0;while(1){if((U|0)>=(k|0)){v=0;break}if(ke){D=s[v>>2]|0;N=n[d>>1]|0;N=(te(D>>16,N)|0)+((te(D&65535,N)|0)>>16)+2|0;D=s[v+-4>>2]|0;L=n[Ee>>1]|0;L=N+((te(D>>16,L)|0)+((te(D&65535,L)|0)>>16))|0;D=s[v+-8>>2]|0;N=n[Ae>>1]|0;N=L+((te(D>>16,N)|0)+((te(D&65535,N)|0)>>16))|0;D=s[v+-12>>2]|0;L=n[Se>>1]|0;L=N+((te(D>>16,L)|0)+((te(D&65535,L)|0)>>16))|0;D=s[v+-16>>2]|0;N=n[Me>>1]|0;N=L+((te(D>>16,N)|0)+((te(D&65535,N)|0)>>16))<<1;D=v+4|0}else{N=0;D=v}if(Te){L=(s[i>>2]|0)+(s[i+-8>>2]|0)|0;L=(te(L>>16,Re)|0)+((te(L&65535,Re)|0)>>16)|0;O=s[i+-4>>2]|0;O=N-(L+(te(O>>16,le)|0)+((te(O&65535,le)|0)>>16)<<2)|0;L=i+4|0}else{O=0;L=i}C=U+39|0;I=a+(U<<2)|0;P=0;while(1){if((P|0)>=(T|0))break;M=t+(P*1396|0)+1384|0;s[M>>2]=(te(s[M>>2]|0,196314165)|0)+907633515;v=t+(P*1396|0)+(C<<2)|0;b=s[v>>2]|0;E=n[u>>1]|0;E=ue+((te(b>>16,E)|0)+((te(b&65535,E)|0)>>16))|0;b=s[v+-4>>2]|0;i=n[de>>1]|0;i=E+((te(b>>16,i)|0)+((te(b&65535,i)|0)>>16))|0;b=s[v+-8>>2]|0;E=n[pe>>1]|0;E=i+((te(b>>16,E)|0)+((te(b&65535,E)|0)>>16))|0;b=s[v+-12>>2]|0;i=n[be>>1]|0;i=E+((te(b>>16,i)|0)+((te(b&65535,i)|0)>>16))|0;b=s[v+-16>>2]|0;E=n[me>>1]|0;E=i+((te(b>>16,E)|0)+((te(b&65535,E)|0)>>16))|0;b=s[v+-20>>2]|0;i=n[we>>1]|0;i=E+((te(b>>16,i)|0)+((te(b&65535,i)|0)>>16))|0;b=s[v+-24>>2]|0;E=n[ge>>1]|0;E=i+((te(b>>16,E)|0)+((te(b&65535,E)|0)>>16))|0;b=s[v+-28>>2]|0;i=n[ve>>1]|0;i=E+((te(b>>16,i)|0)+((te(b&65535,i)|0)>>16))|0;b=s[v+-32>>2]|0;E=n[_e>>1]|0;E=i+((te(b>>16,E)|0)+((te(b&65535,E)|0)>>16))|0;b=s[v+-36>>2]|0;i=n[ye>>1]|0;i=E+((te(b>>16,i)|0)+((te(b&65535,i)|0)>>16))|0;if(ne){b=s[v+-40>>2]|0;E=n[se>>1]|0;E=i+((te(b>>16,E)|0)+((te(b&65535,E)|0)>>16))|0;b=s[v+-44>>2]|0;i=n[ae>>1]|0;i=E+((te(b>>16,i)|0)+((te(b&65535,i)|0)>>16))|0;b=s[v+-48>>2]|0;E=n[oe>>1]|0;E=i+((te(b>>16,E)|0)+((te(b&65535,E)|0)>>16))|0;b=s[v+-52>>2]|0;i=n[fe>>1]|0;i=E+((te(b>>16,i)|0)+((te(b&65535,i)|0)>>16))|0;b=s[v+-56>>2]|0;E=n[he>>1]|0;E=i+((te(b>>16,E)|0)+((te(b&65535,E)|0)>>16))|0;b=s[v+-60>>2]|0;i=n[ce>>1]|0;i=E+((te(b>>16,i)|0)+((te(b&65535,i)|0)>>16))|0}m=t+(P*1396|0)+1280|0;v=s[m>>2]|0;b=(s[t+(P*1396|0)+1380>>2]|0)+((te(v>>16,Q)|0)+((te(v&65535,Q)|0)>>16))|0;S=(s[t+(P*1396|0)+1284>>2]|0)-b|0;S=v+((te(S>>16,Q)|0)+((te(S&65535,Q)|0)>>16))|0;s[m>>2]=b;m=n[p>>1]|0;v=2;m=ee+((te(b>>16,m)|0)+((te(b&65535,m)|0)>>16))|0;while(1){if((v|0)>=(A|0))break;w=v+-1|0;b=t+(P*1396|0)+1280+(w<<2)|0;_=t+(P*1396|0)+1280+(v<<2)|0;E=s[_>>2]|0;g=E-S|0;g=(s[b>>2]|0)+((te(g>>16,Q)|0)+((te(g&65535,Q)|0)>>16))|0;s[b>>2]=S;w=n[p+(w<<1)>>1]|0;b=s[t+(P*1396|0)+1280+((v|1)<<2)>>2]|0;s[_>>2]=g;w=w<<16>>16;_=n[p+(v<<1)>>1]|0;b=b-g|0;v=v+2|0;m=m+((te(S>>16,w)|0)+((te(S&65535,w)|0)>>16))+((te(g>>16,_)|0)+((te(g&65535,_)|0)>>16))|0;S=E+((te(b>>16,Q)|0)+((te(b&65535,Q)|0)>>16))|0}b=i<<4;s[t+(P*1396|0)+1280+(ie<<2)>>2]=S;g=n[re>>1]|0;g=m+((te(S>>16,g)|0)+((te(S&65535,g)|0)>>16))<<1;_=s[t+(P*1396|0)+1376>>2]|0;E=_>>16;_=_&65535;g=g+((te(E,X)|0)+((te(_,X)|0)>>16))<<2;w=s[t+(P*1396|0)+1120+(s[R>>2]<<2)>>2]|0;_=(te(w>>16,J)|0)+((te(w&65535,J)|0)>>16)+(te(E,K)|0)+((te(_,K)|0)>>16)<<2;E=s[I>>2]|0;w=E-((O+b-(g+_)>>3)+1>>1)|0;M=(s[M>>2]|0)<0;w=M?0-w|0:w;w=(w|0)>30720?30720:(w|0)<-31744?-31744:w;v=w-y|0;do if(Z){if((v|0)>(Y|0)){v=v-Y|0;Oe=20;break}if((v|0)>=($|0))if((v|0)<0){Oe=23;break}else{v=y;i=F;m=z;S=q;break}else{v=v+Y|0;Oe=20;break}}else Oe=20;while(0);e:do if((Oe|0)==20){Oe=0;v=v>>10;if((v|0)>0){m=(v<<10)+-80+y|0;S=m+1024|0;v=m;i=S;m=te(m<<16>>16,j)|0;S=te(S<<16>>16,j)|0;break}switch(v|0){case 0:{v=y;i=F;m=z;S=q;break e}case-1:{Oe=23;break e}default:{}}S=(v<<10|80)+y|0;v=S;i=S+1024|0;m=te(0-S<<16>>16,j)|0;S=te(-1024-S<<16>>16,j)|0}while(0);if((Oe|0)==23){Oe=0;v=H;i=y;m=G;S=z}De=w-v<<16>>16;De=m+(te(De,De)|0)>>10;w=w-i<<16>>16;w=S+(te(w,w)|0)>>10;Le=(De|0)<(w|0);Be=s[t+(P*1396|0)+1392>>2]|0;m=Le?v:i;S=Le?i:v;s[Ce+(P*56|0)+4>>2]=Be+(Le?De:w);s[Ce+(P*56|0)+32>>2]=Be+(Le?w:De);s[Ce+(P*56|0)>>2]=m;s[Ce+(P*56|0)+28>>2]=S;i=m<<4;i=(M?0-i|0:i)+N|0;m=i+b|0;w=E<<4;E=m-w|0;s[Ce+(P*56|0)+16>>2]=E;E=E-g|0;s[Ce+(P*56|0)+20>>2]=E-_;s[Ce+(P*56|0)+12>>2]=E;s[Ce+(P*56|0)+24>>2]=i;s[Ce+(P*56|0)+8>>2]=m;E=S<<4;E=(M?0-E|0:E)+N|0;b=E+b|0;w=b-w|0;s[Ce+(P*56|0)+44>>2]=w;g=w-g|0;s[Ce+(P*56|0)+48>>2]=g-_;s[Ce+(P*56|0)+40>>2]=g;s[Ce+(P*56|0)+52>>2]=E;s[Ce+(P*56|0)+36>>2]=b;P=P+1|0}v=((s[R>>2]|0)+-1|0)%40|0;g=(v|0)<0;i=v+40|0;s[R>>2]=g?i:v;v=(g?i:v)+x|0;i=s[V>>2]|0;g=0;m=1;while(1){if((m|0)>=(T|0))break;Le=s[Ce+(m*56|0)+4>>2]|0;Be=(Le|0)<(i|0);i=Be?Le:i;g=Be?m:g;m=m+1|0}w=(v|0)%40|0;v=s[t+(g*1396|0)+480+(w<<2)>>2]|0;i=0;while(1){if((i|0)>=(T|0))break;if((s[t+(i*1396|0)+480+(w<<2)>>2]|0)!=(v|0)){Be=Ce+(i*56|0)+4|0;s[Be>>2]=(s[Be>>2]|0)+134217727;Be=Ce+(i*56|0)+32|0;s[Be>>2]=(s[Be>>2]|0)+134217727}i=i+1|0}v=s[V>>2]|0;i=0;m=s[W>>2]|0;S=0;M=1;while(1){if((M|0)>=(T|0))break;N=s[Ce+(M*56|0)+4>>2]|0;De=(N|0)>(v|0);Le=s[Ce+(M*56|0)+32>>2]|0;Be=(Le|0)<(m|0);v=De?N:v;i=De?M:i;m=Be?Le:m;S=Be?M:S;M=M+1|0}if((m|0)<(v|0)){Mn(t+(i*1396|0)+(U<<2)|0,t+(S*1396|0)+(U<<2)|0,1396-(U<<2)|0)|0;Be=Ce+(i*56|0)|0;Le=Ce+(S*56|0)+28|0;s[Be>>2]=s[Le>>2];s[Be+4>>2]=s[Le+4>>2];s[Be+8>>2]=s[Le+8>>2];s[Be+12>>2]=s[Le+12>>2];s[Be+16>>2]=s[Le+16>>2];s[Be+20>>2]=s[Le+20>>2];s[Be+24>>2]=s[Le+24>>2]}if(!(B&(U|0)<(x|0))){Be=U-x|0;r[o+Be>>0]=(((s[t+(g*1396|0)+640+(w<<2)>>2]|0)>>>9)+1|0)>>>1;De=s[t+(g*1396|0)+800+(w<<2)>>2]|0;Le=s[c+(w<<2)>>2]|0;N=Le<<16>>16;Le=((te(De>>16,N)|0)+((te(De&65535,N)|0)>>16)+(te(De,(Le>>15)+1>>1)|0)>>7)+1>>1;n[f+(Be<<1)>>1]=(Le|0)>32767?32767:((Le|0)<-32768?-32768:Le)&65535;s[e+1280+((s[Ie>>2]|0)-x<<2)>>2]=s[t+(g*1396|0)+1120+(w<<2)>>2];s[h+((s[Pe>>2]|0)-x<<2)>>2]=s[t+(g*1396|0)+960+(w<<2)>>2]}s[Ie>>2]=(s[Ie>>2]|0)+1;s[Pe>>2]=(s[Pe>>2]|0)+1;v=U+40|0;i=0;while(1){if((i|0)>=(T|0))break;s[t+(i*1396|0)+1376>>2]=s[Ce+(i*56|0)+12>>2];s[t+(i*1396|0)+1380>>2]=s[Ce+(i*56|0)+16>>2];Be=s[Ce+(i*56|0)+8>>2]|0;s[t+(i*1396|0)+(v<<2)>>2]=Be;s[t+(i*1396|0)+800+(s[R>>2]<<2)>>2]=Be;Be=s[Ce+(i*56|0)>>2]|0;s[t+(i*1396|0)+640+(s[R>>2]<<2)>>2]=Be;s[t+(i*1396|0)+960+(s[R>>2]<<2)>>2]=s[Ce+(i*56|0)+24>>2]<<1;s[t+(i*1396|0)+1120+(s[R>>2]<<2)>>2]=s[Ce+(i*56|0)+20>>2];Le=t+(i*1396|0)+1384|0;Be=(s[Le>>2]|0)+((Be>>9)+1>>1)|0;s[Le>>2]=Be;s[t+(i*1396|0)+480+(s[R>>2]<<2)>>2]=Be;s[t+(i*1396|0)+1392>>2]=s[Ce+(i*56|0)+4>>2];i=i+1|0}s[c+(s[R>>2]<<2)>>2]=xe;U=U+1|0;v=D;i=L}while(1){if((v|0)>=(T|0))break;Mn(t+(v*1396|0)|0,t+(v*1396|0)+(k<<2)|0,160)|0;v=v+1|0}l=Ne;return}function yr(e,t,i){e=e|0;t=t|0;i=i|0;var a=0,f=0,h=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0,I=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,q=0,H=0;H=l;l=l+64|0;c=H+20|0;u=H+16|0;f=H+12|0;h=H+8|0;q=H+24|0;a=H;N=e+2336|0;b=s[N>>2]|0;z=e+2328|0;D=l;l=l+((1*(b+(s[z>>2]|0)<<2)|0)+15&-16)|0;g=l;l=l+((1*(b<<1)|0)+15&-16)|0;s[a>>2]=s[e+4240>>2]>>6;b=e+4244|0;U=s[b>>2]|0;B=U>>6;s[a+4>>2]=B;if(s[e+2376>>2]|0){p=e+4182|0;d=p+32|0;do{n[p>>1]=0;p=p+2|0}while((p|0)<(d|0))}P=e+2332|0;O=e+2324|0;kr(f,c,h,u,e+4|0,a,s[P>>2]|0,s[O>>2]|0);a=s[e+4252>>2]|0;if((s[f>>2]>>s[u>>2]|0)<(s[h>>2]>>s[c>>2]|0)){a=te(a+-1|0,s[e+4256>>2]|0)|0;a=(a|0)<128?0:a+-128|0}else{a=te(a,s[e+4256>>2]|0)|0;a=(a|0)<128?0:a+-128|0}I=e+4+(a<<2)|0;T=e+4172|0;j=e+4224|0;d=n[j>>1]|0;c=e+4160|0;p=s[c>>2]|0;F=(p|0)>1;w=n[25776+((F?1:p)<<1)>>1]|0;u=e+4164|0;p=n[((s[u>>2]|0)==2?25780:25784)+((F?1:p)<<1)>>1]|0;F=e+2340|0;f=(s[F>>2]|0)+-1|0;a=64881;h=0;while(1){if((h|0)>=(f|0))break;L=e+4182+(h<<1)|0;n[L>>1]=(((te(a,n[L>>1]|0)|0)>>>15)+1|0)>>>1;a=a+(((te(a,-655)|0)>>15)+1>>1)|0;h=h+1|0}h=e+4182+(f<<1)|0;n[h>>1]=(((te(a,n[h>>1]|0)|0)>>>15)+1|0)>>>1;a=e+4182|0;h=s[F>>2]|0;Mn(q|0,a|0,h<<1|0)|0;do if(!(s[c>>2]|0)){if((s[u>>2]|0)==2){a=0;f=16384;while(1){if((a|0)==5)break;L=(f&65535)-(o[e+4172+(a<<1)>>1]|0)&65535;a=a+1|0;f=L}d=(te((f<<16>>16<3277?3277:f)<<16>>16,n[e+4236>>1]|0)|0)>>>14&65535;break}a=Rr(a,h)|0;if((a|0)<=134217728)if((a|0)<4194304)a=4194304;else m=16;else{a=134217728;m=16}d=a<<3;p=(te(d>>16,p)|0)+((te(d&65528,p)|0)>>16)>>14;d=16384}while(0);L=e+4220|0;A=s[L>>2]|0;M=e+4168|0;E=(s[M>>2]>>7)+1>>1;S=s[N>>2]|0;u=S-E-h+-2|0;Tr(g+(u<<1)|0,e+1348+(u<<1)|0,q,S-u|0,h);f=s[b>>2]|0;if((f|0)<=0)if(!f)a=32;else{a=0-f|0;m=20}else{a=f;m=20}if((m|0)==20)a=re(a|0)|0;f=f<>16;c=536870911/(R|0)|0;x=c<<16;C=x>>16;f=536870912-((te(R,C)|0)+((te(f&65535,C)|0)>>16))<<3;c=x+((te(f>>16,C)|0)+((te(f&65528,C)|0)>>16))+(te(f,(c>>15)+1>>1)|0)|0;a=62-a|0;f=a+-46|0;if((f|0)>=1)if((f|0)<32){a=c>>f;m=30}else a=0;else{h=46-a|0;a=-2147483648>>h;f=2147483647>>>h;if((a|0)>(f|0)){if((c|0)<=(a|0))a=(c|0)<(f|0)?f:c}else if((c|0)>(f|0))a=f;else a=(c|0)<(a|0)?a:c;a=a<>2]|0;c=a>>16;f=a&65535;a=u+(s[F>>2]|0)|0;while(1){if((a|0)>=(h|0))break;C=n[g+(a<<1)>>1]|0;s[D+(a<<2)>>2]=(te(c,C)|0)+((te(f,C)|0)>>16);a=a+1|0}v=e+4174|0;_=e+4176|0;y=e+4178|0;k=e+4180|0;m=w<<16>>16;w=e+2765|0;g=e+2316|0;p=p<<16>>16;b=0;C=E;x=d;R=A;f=S;while(1){if((b|0)>=(s[O>>2]|0))break;u=x<<16>>16;h=s[P>>2]|0;c=0;a=D+(f-C+2<<2)|0;d=R;while(1){if((c|0)>=(h|0)){a=0;break}C=s[a>>2]|0;S=n[T>>1]|0;S=(te(C>>16,S)|0)+((te(C&65535,S)|0)>>16)+2|0;C=s[a+-4>>2]|0;R=n[v>>1]|0;R=S+((te(C>>16,R)|0)+((te(C&65535,R)|0)>>16))|0;C=s[a+-8>>2]|0;S=n[_>>1]|0;S=R+((te(C>>16,S)|0)+((te(C&65535,S)|0)>>16))|0;C=s[a+-12>>2]|0;R=n[y>>1]|0;R=S+((te(C>>16,R)|0)+((te(C&65535,R)|0)>>16))|0;C=s[a+-16>>2]|0;S=n[k>>1]|0;S=R+((te(C>>16,S)|0)+((te(C&65535,S)|0)>>16))|0;C=(te(d,196314165)|0)+907633515|0;R=s[I+(C>>>25<<2)>>2]|0;s[D+(f<<2)>>2]=S+((te(R>>16,u)|0)+((te(R&65535,u)|0)>>16))<<2;c=c+1|0;a=a+4|0;d=C;f=f+1|0}while(1){if((a|0)==5)break;C=e+4172+(a<<1)|0;n[C>>1]=(te(m,n[C>>1]|0)|0)>>>15;a=a+1|0}if(!(r[w>>0]|0))a=x;else a=(te(u,p)|0)>>>15&65535;x=s[M>>2]|0;x=x+(((x>>16)*655|0)+(((x&65535)*655|0)>>>16))|0;s[M>>2]=x;C=(s[g>>2]<<16>>16)*4608|0;C=(x|0)<(C|0)?x:C;s[M>>2]=C;b=b+1|0;C=(C>>7)+1>>1;x=a;R=d}T=D+((s[N>>2]|0)+-16<<2)|0;M=e+1284|0;p=T;a=M;d=p+64|0;do{s[p>>2]=s[a>>2];p=p+4|0;a=a+4|0}while((p|0)<(d|0));m=n[q>>1]|0;w=n[q+2>>1]|0;g=n[q+4>>1]|0;v=n[q+6>>1]|0;_=n[q+8>>1]|0;y=n[q+10>>1]|0;k=n[q+12>>1]|0;E=n[q+14>>1]|0;A=n[q+16>>1]|0;S=n[q+18>>1]|0;b=B<<16>>16;d=(U>>21)+1>>1;p=0;while(1){a=s[z>>2]|0;if((p|0)>=(a|0))break;a=s[T+(p+15<<2)>>2]|0;a=(s[F>>2]>>1)+((te(a>>16,m)|0)+((te(a&65535,m)|0)>>16))|0;u=s[T+(p+14<<2)>>2]|0;u=a+((te(u>>16,w)|0)+((te(u&65535,w)|0)>>16))|0;a=s[T+(p+13<<2)>>2]|0;a=u+((te(a>>16,g)|0)+((te(a&65535,g)|0)>>16))|0;u=s[T+(p+12<<2)>>2]|0;u=a+((te(u>>16,v)|0)+((te(u&65535,v)|0)>>16))|0;a=s[T+(p+11<<2)>>2]|0;a=u+((te(a>>16,_)|0)+((te(a&65535,_)|0)>>16))|0;u=s[T+(p+10<<2)>>2]|0;u=a+((te(u>>16,y)|0)+((te(u&65535,y)|0)>>16))|0;a=s[T+(p+9<<2)>>2]|0;a=u+((te(a>>16,k)|0)+((te(a&65535,k)|0)>>16))|0;u=s[T+(p+8<<2)>>2]|0;u=a+((te(u>>16,E)|0)+((te(u&65535,E)|0)>>16))|0;a=s[T+(p+7<<2)>>2]|0;a=u+((te(a>>16,A)|0)+((te(a&65535,A)|0)>>16))|0;u=s[T+(p+6<<2)>>2]|0;u=a+((te(u>>16,S)|0)+((te(u&65535,S)|0)>>16))|0;a=s[F>>2]|0;f=p+16|0;h=10;while(1){if((h|0)>=(a|0))break;B=s[T+(f-h+-1<<2)>>2]|0;U=n[q+(h<<1)>>1]|0;u=u+((te(B>>16,U)|0)+((te(B&65535,U)|0)>>16))|0;h=h+1|0}c=T+(f<<2)|0;a=s[c>>2]|0;f=(u|0)>134217727;h=f?2147483632:((u|0)<-134217728?-134217728:u)<<4;if((a+(f?2147483632:((u|0)<-134217728?-134217728:u)<<4)|0)>-1)if((a&h|0)<0)a=-2147483648;else a=a+(f?2147483632:((u|0)<-134217728?-134217728:u)<<4)|0;else if((a|h|0)>-1)a=2147483647;else a=a+(f?2147483632:((u|0)<-134217728?-134217728:u)<<4)|0;s[c>>2]=a;U=((te(a>>16,b)|0)+((te(a&65535,b)|0)>>16)+(te(a,d)|0)>>7)+1>>1;n[i+(p<<1)>>1]=(U|0)>32767?32767:((U|0)<-32768?-32768:U)&65535;p=p+1|0}p=M;a=T+(a<<2)|0;d=p+64|0;do{s[p>>2]=s[a>>2];p=p+4|0;a=a+4|0}while((p|0)<(d|0));s[L>>2]=R;n[j>>1]=x;a=0;while(1){if((a|0)==4)break;s[t+(a<<2)>>2]=C;a=a+1|0}l=H;return}function kr(e,t,i,r,a,o,f,h){e=e|0;t=t|0;i=i|0;r=r|0;a=a|0;o=o|0;f=f|0;h=h|0;var c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0;w=l;c=l;l=l+((1*(f<<1<<1)|0)+15&-16)|0;p=c;m=0;while(1){if((m|0)==2)break;u=te(m+h+-2|0,f)|0;d=o+(m<<2)|0;b=0;while(1){if((b|0)>=(f|0))break;v=s[a+(b+u<<2)>>2]|0;g=s[d>>2]|0;_=g<<16>>16;g=(te(v>>16,_)|0)+((te(v&65535,_)|0)>>16)+(te(v,(g>>15)+1>>1)|0)>>8;n[p+(b<<1)>>1]=(g|0)>32767?32767:((g|0)<-32768?-32768:g)&65535;b=b+1|0}p=p+(f<<1)|0;m=m+1|0}Nr(e,t,c,f);Nr(i,r,c+(f<<1)|0,f);l=w;return}function Er(e,t){e=e|0;t=t|0;var i=0,r=0,a=0,f=0,h=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0;y=l;l=l+48|0;g=y+32|0;_=y+16|0;m=y;v=e+4676|0;c=s[v>>2]|0;d=c>>1;i=c>>2;a=c>>3;s[m>>2]=0;p=a+i|0;s[m+4>>2]=p;u=p+a|0;s[m+8>>2]=u;h=u+i|0;s[m+12>>2]=h;b=l;l=l+((1*(h+d<<1)|0)+15&-16)|0;Sr(t,e+32|0,b,b+(h<<1)|0,c);Sr(b,e+40|0,b,b+(u<<1)|0,d);Sr(b,e+48|0,b,b+(p<<1)|0,i);i=b+(a+-1<<1)|0;t=n[i>>1]>>1;n[i>>1]=t;i=t;while(1){r=a+-1|0;if((a|0)<=1)break;d=b+(a+-2<<1)|0;p=n[d>>1]>>1;n[d>>1]=p;n[b+(r<<1)>>1]=(i&65535)-(p&65535);i=p;a=r}u=e+88|0;n[b>>1]=(o[b>>1]|0)-(o[u>>1]|0);n[u>>1]=t;u=0;i=0;while(1){if((u|0)==4)break;a=4-u|0;a=s[v>>2]>>((a|0)<3?a:3)>>2;f=e+56+(u<<2)|0;t=s[f>>2]|0;h=g+(u<<2)|0;s[h>>2]=t;c=m+(u<<2)|0;d=0;p=0;while(1){if((p|0)==4)break;else{r=0;i=0}while(1){if((r|0)>=(a|0))break;k=n[b+((s[c>>2]|0)+r+d<<1)>>1]>>3;r=r+1|0;i=i+(te(k,k)|0)|0}if((p|0)<3){t=t+i|0;t=(t|0)<0?2147483647:t}else{t=t+(i>>1)|0;t=(t|0)<0?2147483647:t}s[h>>2]=t;d=d+a|0;p=p+1|0}s[f>>2]=i;u=u+1|0}c=e+140|0;t=s[c>>2]|0;if((t|0)<1e3)h=32767/((t>>4)+1|0)|0;else h=0;f=0;while(1){if((f|0)==4)break;r=e+92+(f<<2)|0;i=s[r>>2]|0;t=(s[g+(f<<2)>>2]|0)+(s[e+124+(f<<2)>>2]|0)|0;t=(t|0)<0?2147483647:t;a=2147483647/(t|0)|0;if((t|0)<=(i<<3|0))if((t|0)<(i|0))t=1024;else{k=i<<16>>16;m=te(a>>16,k)|0;k=te(a&65535,k)|0;t=te(a,(i>>15)+1>>1)|0;t=m+(k>>16)+t>>16<<11|(m+(k>>>16)+t|0)>>>5&2047}else t=128;m=e+108+(f<<2)|0;p=s[m>>2]|0;b=a-p|0;k=((t|0)>(h|0)?t:h)<<16>>16;k=p+((te(b>>16,k)|0)+((te(b&65535,k)|0)>>16))|0;s[m>>2]=k;k=2147483647/(k|0)|0;s[r>>2]=(k|0)<16777215?k:16777215;f=f+1|0}s[c>>2]=(s[c>>2]|0)+1;p=0;b=0;f=0;while(1){if((p|0)==4)break;c=s[g+(p<<2)>>2]|0;u=s[e+92+(p<<2)>>2]|0;d=c-u|0;if((d|0)>0){if(c>>>0<8388608)t=(c<<8|0)/(u+1|0)|0;else t=(c|0)/((u>>8)+1|0)|0;s[_+(p<<2)>>2]=t;a=re(t|0)|0;i=24-a|0;r=0-i|0;do if(i)if((i|0)<0){t=t<>>(i+32|0);break}else{t=t<<32-i|t>>>i;break}while(0);t=t&127;t=t+(((te(t,128-t|0)|0)*179|0)>>>16)+(31-a<<7)+-1024|0;h=t<<16>>16;f=f+(te(h,h)|0)|0;if((d|0)<1048576){r=re(d|0)|0;r=(c|0)==(u|0)?32:r;t=24-r|0;i=0-t|0;do if(t)if((t|0)<0){t=d<>>(t+32|0);break}else{t=d<<32-t|d>>>t;break}else t=d;while(0);r=((r&1|0)==0?46214:32768)>>>(r>>>1);a=(te(t&127,13959168)|0)>>>16;a=te(r+((te(r>>16,a)|0)+((te(r&65535,a)|0)>>>16))<<6>>16,h)|0;r=re(d|0)|0;r=(c|0)==(u|0)?32:r;t=24-r|0;i=0-t|0;do if(t)if((t|0)<0){t=d<>>(t+32|0);break}else{t=d<<32-t|d>>>t;break}else t=d;while(0);k=((r&1|0)==0?46214:32768)>>>(r>>>1);t=(te(t&127,13959168)|0)>>>16;t=a+((te(k+((te(k>>16,t)|0)+((te(k&65535,t)|0)>>>16))<<6&65472,h)|0)>>16)|0}k=s[22976+(p<<2)>>2]|0;i=t<<16>>16;i=b+((te(k>>16,i)|0)+((te(k&65535,i)|0)>>16))|0;t=f}else{s[_+(p<<2)>>2]=256;i=b;t=f}p=p+1|0;b=i;f=t}t=(f|0)/4|0;do if((f|0)>=4){a=re(t|0)|0;a=(f+3|0)>>>0<7?32:a;i=24-a|0;r=0-i|0;do if(i)if((i|0)<0){t=t<>>(i+32|0);break}else{t=t<<32-i|t>>>i;break}while(0);i=((a&1|0)==0?46214:32768)>>>(a>>>1);t=(te(t&127,13959168)|0)>>>16;t=((i+((te(i>>16,t)|0)+((te(i&65535,t)|0)>>>16))|0)*196608>>16)*45e3>>16;i=t+-128|0;if((t|0)<128)if((i|0)<-191){t=0;break}else{t=128-t|0;w=53;break}if((i|0)>191)t=32767;else{t=i>>5;t=(s[23040+(t<<2)>>2]|0)+(te(s[23016+(t<<2)>>2]<<16>>16,i&31)|0)|0}}else{t=128;w=53}while(0);if((w|0)==53){k=t>>5;t=(s[22992+(k<<2)>>2]|0)-(te(s[23016+(k<<2)>>2]<<16>>16,t&31)|0)|0}if((b|0)<0){i=0-b|0;if((b|0)<-191)i=0;else{k=i>>5;i=(s[22992+(k<<2)>>2]|0)-(te(s[23016+(k<<2)>>2]<<16>>16,i&31)|0)|0}}else if((b|0)>191)i=32767;else{i=b>>5;i=(s[23040+(i<<2)>>2]|0)+(te(s[23016+(i<<2)>>2]<<16>>16,b&31)|0)|0}s[e+4804>>2]=(i<<1)+-32768;i=0;r=0;while(1){if((i|0)==4)break;w=i+1|0;k=r+(te(w,(s[g+(i<<2)>>2]|0)-(s[e+92+(i<<2)>>2]|0)>>4)|0)|0;i=w;r=k}if((r|0)>=1){if((r|0)<32768){i=r<<((s[v>>2]|0)==((s[e+4668>>2]|0)*10|0)?16:15);f=re(i|0)|0;r=24-f|0;a=0-r|0;do if(r)if((r|0)<0){i=i<>>(r+32|0);break}else{i=i<<32-r|i>>>r;break}while(0);g=((f&1|0)==0?46214:32768)>>>(f>>>1);k=(te(i&127,13959168)|0)>>>16;k=g+((te(g>>16,k)|0)+((te(g&65535,k)|0)>>>16))+32768|0;t=t<<16>>16;t=(te(k>>16,t)|0)+((te(k&65535,t)|0)>>16)|0}}else t=t>>1;h=t>>7;s[e+4624>>2]=(h|0)<255?h:255;h=t<<16>>16;h=((te(t>>16,h)|0)<<16)+(te(t&65535,h)|0)|0;h=h>>((s[v>>2]|0)==((s[e+4668>>2]|0)*10|0)?21:20);f=0;while(1){ -if((f|0)==4)break;a=e+72+(f<<2)|0;i=s[a>>2]|0;t=(s[_+(f<<2)>>2]|0)-i|0;t=i+((te(t>>16,h)|0)+((te(t&65535,h)|0)>>16))|0;s[a>>2]=t;a=re(t|0)|0;i=24-a|0;r=0-i|0;do if(i)if((i|0)<0){t=t<>>(i+32|0);break}else{t=t<<32-i|t>>>i;break}while(0);t=t&127;t=((t+(((te(t,128-t|0)|0)*179|0)>>>16)+(31-a<<7)|0)*3|0)+-5120|0;i=t>>4;if((i|0)<0){t=0-i|0;if((i|0)<-191)t=0;else{k=t>>5;t=(s[22992+(k<<2)>>2]|0)-(te(s[23016+(k<<2)>>2]<<16>>16,t&31)|0)|0}}else if((i|0)>191)t=32767;else{t=t>>9;t=(s[23040+(t<<2)>>2]|0)+(te(s[23016+(t<<2)>>2]<<16>>16,i&31)|0)|0}s[e+4788+(f<<2)>>2]=t;f=f+1|0}l=y;return}function Ar(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,n=0,a=0;r=s[e+(i<<2)>>2]|0;n=t<<4;if((i|0)==8){t=t<<20>>16;a=(n>>15)+1>>1;i=(s[e+28>>2]|0)+((te(r>>16,t)|0)+((te(r&65535,t)|0)>>16))+(te(r,a)|0)|0;i=(s[e+24>>2]|0)+((te(i>>16,t)|0)+((te(i&65535,t)|0)>>16))+(te(i,a)|0)|0;i=(s[e+20>>2]|0)+((te(i>>16,t)|0)+((te(i&65535,t)|0)>>16))+(te(i,a)|0)|0;i=(s[e+16>>2]|0)+((te(i>>16,t)|0)+((te(i&65535,t)|0)>>16))+(te(i,a)|0)|0;i=(s[e+12>>2]|0)+((te(i>>16,t)|0)+((te(i&65535,t)|0)>>16))+(te(i,a)|0)|0;i=(s[e+8>>2]|0)+((te(i>>16,t)|0)+((te(i&65535,t)|0)>>16))+(te(i,a)|0)|0;i=(s[e+4>>2]|0)+((te(i>>16,t)|0)+((te(i&65535,t)|0)>>16))+(te(i,a)|0)|0;e=(s[e>>2]|0)+((te(i>>16,t)|0)+((te(i&65535,t)|0)>>16))+(te(i,a)|0)|0;return e|0}a=t<<20>>16;n=(n>>15)+1>>1;while(1){t=i+-1|0;if((i|0)<=0)break;i=t;r=(s[e+(t<<2)>>2]|0)+((te(r>>16,a)|0)+((te(r&65535,a)|0)>>16))+(te(r,n)|0)|0}return r|0}function Sr(e,t,i,r,a){e=e|0;t=t|0;i=i|0;r=r|0;a=a|0;var o=0,f=0,h=0,c=0,l=0,u=0,d=0;a=a>>1;o=t+4|0;f=0;while(1){if((f|0)>=(a|0))break;u=f<<1;d=n[e+(u<<1)>>1]<<10;l=d-(s[t>>2]|0)|0;c=(te(l>>16,-24290)|0)+((te(l&65535,-24290)|0)>>16)|0;h=d+c|0;s[t>>2]=d+(l+c);u=n[e+((u|1)<<1)>>1]<<10;c=s[o>>2]|0;l=u-c|0;l=((l>>16)*10788|0)+(((l&65535)*10788|0)>>>16)|0;c=c+l|0;s[o>>2]=u+l;l=(c+h>>10)+1>>1;n[i+(f<<1)>>1]=(l|0)>32767?32767:((l|0)<-32768?-32768:l)&65535;h=(c-h>>10)+1>>1;n[r+(f<<1)>>1]=(h|0)>32767?32767:((h|0)<-32768?-32768:h)&65535;f=f+1|0}return}function Mr(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,n=0,a=0,o=0,f=0,h=0;a=i+-65536|0;n=t+-1|0;r=0;while(1){t=i>>16;if((r|0)>=(n|0))break;o=e+(r<<2)|0;f=s[o>>2]|0;h=f<<16>>16;s[o>>2]=(te(t,h)|0)+((te(i&65535,h)|0)>>16)+(te(i,(f>>15)+1>>1)|0);i=i+(((te(i,a)|0)>>15)+1>>1)|0;r=r+1|0}h=e+(n<<2)|0;f=s[h>>2]|0;o=f<<16>>16;s[h>>2]=(te(t,o)|0)+((te(i&65535,o)|0)>>16)+(te(i,(f>>15)+1>>1)|0);return}function Tr(e,t,i,r,s){e=e|0;t=t|0;i=i|0;r=r|0;s=s|0;var a=0,o=0,f=0,h=0,c=0,l=0,u=0,d=0,p=0,b=0;a=i+2|0;o=i+4|0;f=i+6|0;h=i+8|0;c=i+10|0;u=s;while(1){if((u|0)>=(r|0))break;l=t+(u+-1<<1)|0;p=te(n[l>>1]|0,n[i>>1]|0)|0;p=p+(te(n[l+-2>>1]|0,n[a>>1]|0)|0)|0;p=p+(te(n[l+-4>>1]|0,n[o>>1]|0)|0)|0;p=p+(te(n[l+-6>>1]|0,n[f>>1]|0)|0)|0;p=p+(te(n[l+-8>>1]|0,n[h>>1]|0)|0)|0;d=6;p=p+(te(n[l+-10>>1]|0,n[c>>1]|0)|0)|0;while(1){if((d|0)>=(s|0))break;b=p+(te(n[l+(0-d<<1)>>1]|0,n[i+(d<<1)>>1]|0)|0)|0;b=b+(te(n[l+(~d<<1)>>1]|0,n[i+((d|1)<<1)>>1]|0)|0)|0;d=d+2|0;p=b}b=((n[l+2>>1]<<12)-p>>11)+1>>1;n[e+(u<<1)>>1]=(b|0)>32767?32767:((b|0)<-32768?-32768:b)&65535;u=u+1|0}kn(e|0,0,s<<1|0)|0;return}function Rr(e,t){e=e|0;t=t|0;var i=0,r=0,a=0,o=0,f=0,h=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0;k=l;l=l+96|0;_=k;i=0;r=0;while(1){if((r|0)>=(t|0))break;v=n[e+(r<<1)>>1]|0;s[_+(r<<2)>>2]=v<<12;i=i+v|0;r=r+1|0}if((i|0)>4095){l=k;return 0}a=1073741824;r=0;e:while(1){v=t+-1|0;e=s[_+(v<<2)>>2]|0;i=(e+16773022|0)>>>0>33546044;if((t|0)<=1){y=44;break}if(i){y=46;break}w=0-(e<<7)|0;g=((w|0)<0)<<31>>31;Nn(w|0,g|0,w|0,g|0)|0;o=1073741824-I|0;m=Nn(a|0,r|0,o|0,((o|0)<0)<<31>>31|0)|0;m=Sn(m|0,I|0,30)|0;m=m&-4;if((m|0)<107374){y=46;break}if((o|0)<=0)if(!o){e=32;i=30;f=0}else{e=0-o|0;y=11}else{e=o;y=11}if((y|0)==11){y=0;f=32-(re(e|0)|0)|0;e=re(e|0)|0;i=f+30|0}b=o<>16;a=536870911/(u|0)|0;d=a<<16;p=d>>16;b=536870912-((te(u,p)|0)+((te(b&65535,p)|0)>>16))<<3;a=d+((te(b>>16,p)|0)+((te(b&65528,p)|0)>>16))+(te(b,(a>>15)+1>>1)|0)|0;e=62-e-i|0;if((e|0)<1){r=0-e|0;e=-2147483648>>r;i=2147483647>>>r;if((e|0)>(i|0)){if((a|0)<=(e|0))e=(a|0)<(i|0)?i:a}else if((a|0)>(i|0))e=i;else e=(a|0)<(e|0)?e:a;b=e<>e:0;u=t>>1;d=(f|0)==1;p=((b|0)<0)<<31>>31;f=f+-1|0;c=0;while(1){if((c|0)>=(u|0))break;t=_+(c<<2)|0;a=s[t>>2]|0;h=_+(v-c+-1<<2)|0;o=s[h>>2]|0;e=Nn(o|0,((o|0)<0)<<31>>31|0,w|0,g|0)|0;e=Sn(e|0,I|0,30)|0;e=En(e|0,I|0,1,0)|0;e=Sn(e|0,I|0,1)|0;i=a-e|0;r=(i|0)>-1;if(d){if(r){r=(a&(e^-2147483648)|0)<0?-2147483648:i;r=Nn(r|0,((r|0)<0)<<31>>31|0,b|0,p|0)|0;r=An(r|0,I|0,1)|0;e=(a&(e^-2147483648)|0)<0?-2147483648:i;i=r;r=I}else{r=((a^-2147483648)&e|0)<0?2147483647:i;r=Nn(r|0,((r|0)<0)<<31>>31|0,b|0,p|0)|0;r=An(r|0,I|0,1)|0;e=((a^-2147483648)&e|0)<0?2147483647:i;i=r;r=I}e=Nn(e|0,((e|0)<0)<<31>>31|0,b|0,p|0)|0;e=En(i|0,r|0,e&1|0,0)|0;i=I}else{if(r)e=(a&(e^-2147483648)|0)<0?-2147483648:i;else e=((a^-2147483648)&e|0)<0?2147483647:i;e=Nn(e|0,((e|0)<0)<<31>>31|0,b|0,p|0)|0;e=An(e|0,I|0,f|0)|0;e=En(e|0,I|0,1,0)|0;e=An(e|0,I|0,1)|0;i=I}r=En(e|0,i|0,-2147483648,0)|0;i=I;if(i>>>0>0|(i|0)==0&r>>>0>4294967295){y=46;break e}s[t>>2]=e;e=Nn(a|0,((a|0)<0)<<31>>31|0,w|0,g|0)|0;e=Sn(e|0,I|0,30)|0;e=En(e|0,I|0,1,0)|0;e=Sn(e|0,I|0,1)|0;i=o-e|0;r=(i|0)>-1;if(d){if(r){r=(o&(e^-2147483648)|0)<0?-2147483648:i;r=Nn(r|0,((r|0)<0)<<31>>31|0,b|0,p|0)|0;r=An(r|0,I|0,1)|0;e=(o&(e^-2147483648)|0)<0?-2147483648:i;i=r;r=I}else{r=((o^-2147483648)&e|0)<0?2147483647:i;r=Nn(r|0,((r|0)<0)<<31>>31|0,b|0,p|0)|0;r=An(r|0,I|0,1)|0;e=((o^-2147483648)&e|0)<0?2147483647:i;i=r;r=I}e=Nn(e|0,((e|0)<0)<<31>>31|0,b|0,p|0)|0;e=En(i|0,r|0,e&1|0,0)|0;i=I}else{if(r)e=(o&(e^-2147483648)|0)<0?-2147483648:i;else e=((o^-2147483648)&e|0)<0?2147483647:i;e=Nn(e|0,((e|0)<0)<<31>>31|0,b|0,p|0)|0;e=An(e|0,I|0,f|0)|0;e=En(e|0,I|0,1,0)|0;e=An(e|0,I|0,1)|0;i=I}o=En(e|0,i|0,-2147483648,0)|0;a=I;if(a>>>0>0|(a|0)==0&o>>>0>4294967295){y=46;break e}s[h>>2]=e;c=c+1|0}a=m;r=((m|0)<0)<<31>>31;t=v}if((y|0)==44)if(i){l=k;return 0}else{_=0-(s[_>>2]<<7)|0;y=((_|0)<0)<<31>>31;Nn(_|0,y|0,_|0,y|0)|0;y=1073741824-I|0;y=Nn(a|0,r|0,y|0,((y|0)<0)<<31>>31|0)|0;y=Sn(y|0,I|0,30)|0;y=y&-4;l=k;return((y|0)<107374?0:y)|0}else if((y|0)==46){l=k;return 0}return 0}function xr(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,o=0,f=0,h=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0;g=l;l=l+304|0;d=g+200|0;b=g+148|0;m=g+96|0;w=g;r=(i|0)==16?32909:32925;o=0;while(1){if((o|0)>=(i|0))break;u=n[t+(o<<1)>>1]|0;p=u>>8;c=n[27508+(p<<1)>>1]|0;p=((c<<8)+(te((n[27508+(p+1<<1)>>1]|0)-c|0,u-(p<<8)|0)|0)>>3)+1>>1;s[d+(a[r+o>>0]<<2)>>2]=p;o=o+1|0}p=i>>1;s[b>>2]=65536;u=b+4|0;c=1;r=0-(s[d>>2]|0)|0;while(1){s[u>>2]=r;if((c|0)>=(p|0))break;t=s[d+(c<<1<<2)>>2]|0;h=s[b+(c+-1<<2)>>2]|0;o=((t|0)<0)<<31>>31;r=s[b+(c<<2)>>2]|0;r=Nn(t|0,o|0,r|0,((r|0)<0)<<31>>31|0)|0;r=Sn(r|0,I|0,15)|0;r=En(r|0,I|0,1,0)|0;r=Sn(r|0,I|0,1)|0;f=c+1|0;s[b+(f<<2)>>2]=(h<<1)-r;r=c;while(1){if((r|0)<=1)break;c=s[b+(r+-2<<2)>>2]|0;_=Nn(t|0,o|0,h|0,((h|0)<0)<<31>>31|0)|0;_=Sn(_|0,I|0,15)|0;_=En(_|0,I|0,1,0)|0;_=Sn(_|0,I|0,1)|0;v=b+(r<<2)|0;s[v>>2]=(s[v>>2]|0)+(c-_);h=c;r=r+-1|0}c=f;r=(s[u>>2]|0)-t|0}u=d+4|0;s[m>>2]=65536;d=m+4|0;c=1;r=0-(s[u>>2]|0)|0;while(1){s[d>>2]=r;if((c|0)>=(p|0)){r=0;break}f=s[u+(c<<1<<2)>>2]|0;o=s[m+(c+-1<<2)>>2]|0;h=((f|0)<0)<<31>>31;r=s[m+(c<<2)>>2]|0;r=Nn(f|0,h|0,r|0,((r|0)<0)<<31>>31|0)|0;r=Sn(r|0,I|0,15)|0;r=En(r|0,I|0,1,0)|0;r=Sn(r|0,I|0,1)|0;t=c+1|0;s[m+(t<<2)>>2]=(o<<1)-r;r=c;while(1){if((r|0)<=1)break;_=s[m+(r+-2<<2)>>2]|0;c=Nn(f|0,h|0,o|0,((o|0)<0)<<31>>31|0)|0;c=Sn(c|0,I|0,15)|0;c=En(c|0,I|0,1,0)|0;c=Sn(c|0,I|0,1)|0;v=m+(r<<2)|0;s[v>>2]=(s[v>>2]|0)+(_-c);o=_;r=r+-1|0}c=t;r=(s[d>>2]|0)-f|0}while(1){if((r|0)>=(p|0))break;_=r+1|0;v=(s[b+(_<<2)>>2]|0)+(s[b+(r<<2)>>2]|0)|0;d=(s[m+(_<<2)>>2]|0)-(s[m+(r<<2)>>2]|0)|0;s[w+(r<<2)>>2]=0-d-v;s[w+(i-r+-1<<2)>>2]=d-v;r=_}f=0;r=0;while(1){if((f|0)<10){t=0;o=0}else break;while(1){if((t|0)>=(i|0))break;_=s[w+(t<<2)>>2]|0;_=(_|0)>0?_:0-_|0;v=(_|0)>(o|0);r=v?t:r;t=t+1|0;o=v?_:o}t=(o>>4)+1>>1;if((t|0)<=32767)break;_=(t|0)<163838?t:163838;Mr(w,i,65470-(((_<<14)+-536854528|0)/((te(_,r+1|0)|0)>>2|0)|0)|0);f=f+1|0}e:do if((f|0)==10){r=0;while(1){if((r|0)>=(i|0)){r=0;break e}_=w+(r<<2)|0;v=(s[_>>2]>>4)+1>>1;v=(v|0)>32767?32767:(v|0)<-32768?-32768:v;n[e+(r<<1)>>1]=v;s[_>>2]=v<<16>>11;r=r+1|0}}else{r=0;while(1){if((r|0)>=(i|0)){r=0;break e}n[e+(r<<1)>>1]=(((s[w+(r<<2)>>2]|0)>>>4)+1|0)>>>1;r=r+1|0}}while(0);while(1){if(!((Rr(e,i)|0)==0&(r|0)<16))break;Mr(w,i,65536-(2<=(i|0))break;n[e+(t<<1)>>1]=(((s[w+(t<<2)>>2]|0)>>>4)+1|0)>>>1;t=t+1|0}r=r+1|0}l=g;return}function Cr(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,s=0,a=0,f=0,h=0,c=0,l=0,u=0,d=0,p=0,b=0,m=0,w=0;b=e+(i+-1<<1)|0;m=t+(i<<1)|0;d=0;while(1){if((d|0)>=20)break;h=n[e>>1]|0;f=n[t>>1]|0;r=h;s=0;a=1;h=(h<<16>>16)-(f<<16>>16)|0;while(1){if((a|0)>=(i|0))break;c=n[e+(a<<1)>>1]|0;u=(c<<16>>16)-((r<<16>>16)+(n[t+(a<<1)>>1]|0))|0;l=(u|0)<(h|0);r=c;s=l?a:s;a=a+1|0;h=l?u:h}l=32768-((n[b>>1]|0)+(n[m>>1]|0))|0;c=(l|0)<(h|0);u=c?i:s;if(((c?l:h)|0)>-1){p=36;break}do if(!u)n[e>>1]=f;else{if((u|0)==(i|0)){n[b>>1]=32768-(o[m>>1]|0);break}else{r=0;f=0}while(1){if((r|0)>=(u|0))break;l=f+(n[t+(r<<1)>>1]|0)|0;r=r+1|0;f=l}c=t+(u<<1)|0;l=n[c>>1]|0;s=l>>1;r=i;a=32768;while(1){if((r|0)<=(u|0))break;h=a-(n[t+(r<<1)>>1]|0)|0;r=r+-1|0;a=h}r=f+s|0;a=a-s|0;h=e+(u+-1<<1)|0;w=n[h>>1]|0;f=e+(u<<1)|0;s=n[f>>1]|0;s=((w<<16>>16)+(s<<16>>16)>>1)+((w&65535)+(s&65535)&1)|0;if((r|0)>(a|0)){if((s|0)<=(r|0))r=(s|0)<(a|0)?a:s}else if((s|0)>(a|0))r=a;else r=(s|0)<(r|0)?r:s;w=r-(l>>>1)|0;n[h>>1]=w;n[f>>1]=w+(o[c>>1]|0)}while(0);d=d+1|0}if((p|0)==36)return;if((d|0)==20)a=1;else return;while(1){if((a|0)>=(i|0))break;r=n[e+(a<<1)>>1]|0;h=a;while(1){f=h+-1|0;if((h|0)<=0)break;s=n[e+(f<<1)>>1]|0;if(r<<16>>16>=s<<16>>16)break;n[e+(h<<1)>>1]=s;h=f}n[e+(h<<1)>>1]=r;a=a+1|0}s=n[e>>1]|0;r=n[t>>1]|0;r=s<<16>>16>r<<16>>16?s:r;n[e>>1]=r;r=r<<16>>16;s=1;while(1){if((s|0)>=(i|0))break;p=e+(s<<1)|0;d=n[p>>1]|0;w=r+(n[t+(s<<1)>>1]|0)|0;w=(w|0)>32767?32767:((w|0)<-32768?-32768:w)<<16>>16;w=(d|0)>(w|0)?d:w;n[p>>1]=w;r=w;s=s+1|0}r=n[b>>1]|0;s=32768-(n[m>>1]|0)|0;s=(r|0)<(s|0)?r:s;n[b>>1]=s;r=i+-2|0;while(1){if((r|0)<=-1)break;i=e+(r<<1)|0;m=n[i>>1]|0;w=(s<<16>>16)-(n[t+(r+1<<1)>>1]|0)|0;w=(m|0)<(w|0)?m:w;n[i>>1]=w;s=w;r=r+-1|0}return}function Ir(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,s=0,a=0,o=0,f=0,h=0;r=n[t>>1]|0;s=(n[t+2>>1]|0)-(r<<16>>16)|0;s=131072/(((s|0)>1?s:1)|0)|0;r=(131072/((r<<16>>16>1?r:1)<<16>>16|0)|0)+s|0;n[e>>1]=(r|0)<32767?r:32767;i=i+-1|0;r=1;while(1){if((r|0)>=(i|0))break;f=r+1|0;a=t+(f<<1)|0;h=(n[a>>1]|0)-(n[t+(r<<1)>>1]|0)|0;h=131072/(((h|0)>1?h:1)|0)|0;o=h+s|0;n[e+(r<<1)>>1]=(o|0)<32767?o:32767;o=r+2|0;a=(n[t+(o<<1)>>1]|0)-(n[a>>1]|0)|0;a=131072/(((a|0)>1?a:1)|0)|0;h=h+a|0;n[e+(f<<1)>>1]=(h|0)<32767?h:32767;r=o;s=a}h=32768-(n[t+(i<<1)>>1]|0)|0;h=(131072/(((h|0)>1?h:1)|0)|0)+s|0;n[e+(i<<1)>>1]=(h|0)<32767?h:32767;return}function Pr(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var a=0,o=0,f=0,h=0,c=0,l=0,u=0;r=r>>1;a=e+4|0;o=0;while(1){if((o|0)>=(r|0))break;u=o<<1;l=n[i+(u<<1)>>1]<<10;h=l-(s[e>>2]|0)|0;c=(te(h>>16,-25727)|0)+((te(h&65535,-25727)|0)>>16)|0;s[e>>2]=l+(h+c);u=n[i+((u|1)<<1)>>1]<<10;h=s[a>>2]|0;f=u-h|0;f=((f>>16)*9872|0)+(((f&65535)*9872|0)>>>16)|0;s[a>>2]=u+f;f=(l+c+h+f>>10)+1>>1;n[t+(o<<1)>>1]=(f|0)>32767?32767:((f|0)<-32768?-32768:f)&65535;o=o+1|0}return}function Or(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var n=0,a=0,o=0,f=0,h=0,c=0;n=0;while(1){if((n|0)>=(r|0)){o=1;break}s[t+(n<<2)>>2]=n;n=n+1|0}while(1){if((o|0)>=(r|0))break;a=s[e+(o<<2)>>2]|0;h=o;while(1){f=h+-1|0;if((h|0)<=0)break;n=s[e+(f<<2)>>2]|0;if((a|0)>=(n|0))break;s[e+(h<<2)>>2]=n;s[t+(h<<2)>>2]=s[t+(f<<2)>>2];h=f}s[e+(h<<2)>>2]=a;s[t+(h<<2)>>2]=o;o=o+1|0}h=e+(r+-1<<2)|0;c=r+-2|0;o=r;while(1){if((o|0)>=(i|0))break;n=s[e+(o<<2)>>2]|0;if((n|0)<(s[h>>2]|0)){f=c;while(1){if((f|0)<=-1)break;a=s[e+(f<<2)>>2]|0;if((n|0)>=(a|0))break;r=f+1|0;s[e+(r<<2)>>2]=a;s[t+(r<<2)>>2]=s[t+(f<<2)>>2];f=f+-1|0}r=f+1|0;s[e+(r<<2)>>2]=n;s[t+(r<<2)>>2]=o}o=o+1|0}return}function Nr(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var a=0,o=0,f=0,h=0,c=0,l=0,u=0;h=31-(re(r|0)|0)|0;c=r+-1|0;o=((c|0)>0?c:0)+1&-2;f=0;a=r;while(1){if((f|0)>=(c|0))break;u=n[i+(f<<1)>>1]|0;u=te(u,u)|0;l=n[i+((f|1)<<1)>>1]|0;f=f+2|0;a=a+((u+(te(l,l)|0)|0)>>>h)|0}if((o|0)<(r|0)){u=n[i+(o<<1)>>1]|0;a=a+((te(u,u)|0)>>>h)|0}a=h+3-(re(a|0)|0)|0;a=(a|0)<0?0:a;o=r+-1|0;o=((o|0)>0?o:0)+1&-2;f=0;h=0;while(1){if((f|0)>=(c|0))break;l=n[i+(f<<1)>>1]|0;l=te(l,l)|0;u=n[i+((f|1)<<1)>>1]|0;f=f+2|0;h=h+((l+(te(u,u)|0)|0)>>>a)|0}if((o|0)>=(r|0)){u=h;s[t>>2]=a;s[e>>2]=u;return}u=n[i+(o<<1)>>1]|0;u=h+((te(u,u)|0)>>>a)|0;s[t>>2]=a;s[e>>2]=u;return}function Dr(e,t,i,r,n,s){e=e|0;t=t|0;i=+i;r=r|0;n=n|0;s=s|0;var a=0,o=0,f=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0,I=0,P=0,O=0,N=0;C=l;l=l+976|0;A=C+784|0;S=C+592|0;R=C+392|0;E=C+192|0;x=C;a=+tr(t,te(n,r)|0);kn(A|0,0,192)|0;u=0;while(1){if((u|0)>=(n|0))break;o=t+((te(u,r)|0)<<2)|0;f=1;while(1){if((f|0)>(s|0))break;T=+ir(o,o+(f<<2)|0,r-f|0);k=A+(f+-1<<3)|0;c[k>>3]=+c[k>>3]+T;f=f+1|0}u=u+1|0}Mn(S|0,A|0,192)|0;T=a*9999999747378752e-21;_=a+T+9.999999717180685e-10;c[R>>3]=_;c[E>>3]=_;_=i;y=1;f=0;k=2;v=1;while(1){if((f|0)>=(s|0))break;u=r-f|0;p=u+-1|0;w=0;while(1){if((w|0)>=(n|0))break;m=t+((te(w,r)|0)<<2)|0;i=+h[m+(f<<2)>>2];d=+h[m+(p<<2)>>2];o=0;b=i;g=d;while(1){if((f|0)==(o|0)){o=0;break}O=+h[m+(f-o+-1<<2)>>2];N=A+(o<<3)|0;c[N>>3]=+c[N>>3]-i*O;P=+h[m+(u+o<<2)>>2];N=S+(o<<3)|0;c[N>>3]=+c[N>>3]-d*P;I=+c[x+(o<<3)>>3];o=o+1|0;b=b+O*I;g=g+P*I}while(1){if((o|0)==(y|0))break;N=R+(o<<3)|0;c[N>>3]=+c[N>>3]-b*+h[m+(f-o<<2)>>2];N=E+(o<<3)|0;c[N>>3]=+c[N>>3]-g*+h[m+(u+o+-1<<2)>>2];o=o+1|0}w=w+1|0}o=0;i=+c[A+(f<<3)>>3];b=+c[S+(f<<3)>>3];while(1){if((f|0)==(o|0))break;O=+c[x+(o<<3)>>3];N=f-o+-1|0;o=o+1|0;i=i+ +c[S+(N<<3)>>3]*O;b=b+ +c[A+(N<<3)>>3]*O}m=f+1|0;c[R+(m<<3)>>3]=i;c[E+(m<<3)>>3]=b;o=0;i=+c[E>>3];d=+c[R>>3];while(1){if((f|0)==(o|0))break;P=+c[x+(o<<3)>>3];N=o+1|0;O=b+ +c[E+(f-o<<3)>>3]*P;o=N;i=i+ +c[E+(N<<3)>>3]*P;d=d+ +c[R+(N<<3)>>3]*P;b=O}d=b*-2/(d+i);i=v*(1-d*d);if(!(i<=_))o=0;else{d=+H(+(1-_/v));i=_;d=b>0?-d:d;o=1}u=m>>1;p=0;while(1){if((p|0)>=(u|0))break;w=x+(p<<3)|0;O=+c[w>>3];N=x+(f-p+-1<<3)|0;P=+c[N>>3];c[w>>3]=O+d*P;c[N>>3]=P+d*O;p=p+1|0}c[x+(f<<3)>>3]=d;if(!o)o=0;else{M=29;break}while(1){if((o|0)==(k|0))break;w=R+(o<<3)|0;O=+c[w>>3];N=E+(f-o+1<<3)|0;P=+c[N>>3];c[w>>3]=O+d*P;c[N>>3]=P+d*O;o=o+1|0}y=y+1|0;f=m;k=k+1|0;v=i}if((M|0)==29){while(1){f=f+1|0;if((f|0)>=(s|0))break;c[x+(f<<3)>>3]=0;M=29}if(o|0){o=0;while(1){if((o|0)>=(s|0)){o=0;break}h[e+(o<<2)>>2]=-+c[x+(o<<3)>>3];o=o+1|0}while(1){if((o|0)>=(n|0))break;a=a-+tr(t+((te(o,r)|0)<<2)|0,s);o=o+1|0}O=a*i;l=C;return+O}}o=0;a=+c[R>>3];i=1;while(1){if((o|0)>=(s|0))break;O=+c[x+(o<<3)>>3];N=o+1|0;P=+c[R+(N<<3)>>3];h[e+(o<<2)>>2]=-O;o=N;a=a+P*O;i=i+O*O}O=a-T*i;l=C;return+O}function Lr(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var a=0,o=0,f=0,h=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0,I=0,P=0,O=0,N=0;N=l;l=l+32|0;O=N;p=e+2772|0;a=e+2316|0;f=e+4156|0;if((s[a>>2]|0)!=(s[f>>2]|0)){h=e+2340|0;o=s[h>>2]|0;c=32767/(o+1|0)|0;u=0;d=0;while(1){if((d|0)>=(o|0))break;P=u+c|0;n[e+4052+(d<<1)>>1]=P;o=s[h>>2]|0;u=P;d=d+1|0}s[e+4148>>2]=0;s[e+4152>>2]=3176576;s[f>>2]=s[a>>2]}u=e+4160|0;do if(!(s[u>>2]|0)){if(!(s[e+4164>>2]|0)){a=e+2340|0;o=0;while(1){if((o|0)>=(s[a>>2]|0))break;C=n[e+2344+(o<<1)>>1]|0;P=e+4052+(o<<1)|0;x=n[P>>1]|0;I=x&65535;n[P>>1]=I+((((C<<16>>16)-(x<<16>>16)>>16)*16348|0)+((((C&65535)-I&65535)*16348|0)>>>16));o=o+1|0}c=e+2324|0;a=s[c>>2]|0;o=0;f=0;h=0;while(1){if((o|0)>=(a|0))break;I=s[t+16+(o<<2)>>2]|0;C=(I|0)>(f|0);P=C?o:h;o=o+1|0;f=C?I:f;h=P}f=e+2332|0;o=s[f>>2]|0;Tn(e+2772+(o<<2)|0,p|0,(te(a+-1|0,o)|0)<<2|0)|0;f=s[f>>2]|0;Mn(p|0,e+4+((te(h,f)|0)<<2)|0,f<<2|0)|0;f=e+4148|0;a=s[c>>2]|0;o=0;while(1){if((o|0)>=(a|0))break;I=s[f>>2]|0;P=(s[t+16+(o<<2)>>2]|0)-I|0;s[f>>2]=I+(((P>>16)*4634|0)+(((P&65535)*4634|0)>>>16));o=o+1|0}if(s[u>>2]|0)break}kn(e+4084|0,0,s[e+2340>>2]<<2|0)|0;l=N;return}while(0);I=Ne()|0;P=l;l=l+((1*(r+16<<2)|0)+15&-16)|0;C=n[e+4224>>1]|0;a=C<<16>>16;o=s[e+4244>>2]|0;h=o<<16>>16;o=(te(a>>16,h)|0)+((te(C&65535,h)|0)>>16)+(te(a,(o>>15)+1>>1)|0)|0;a=s[e+4148>>2]|0;h=o>>16;if((o|0)>2097151|(a|0)>8388608){f=a>>16;f=te(f,f)|0;o=(te(h,h)|0)<<5;a=f-o|0;if((a|0)<1)u=0;else{h=re(a|0)|0;h=(f|0)==(o|0)?32:h;o=24-h|0;f=0-o|0;do if(o)if((o|0)<0){a=a<>>(o+32|0);break}else{a=a<<32-o|a>>>o;break}while(0);C=((h&1|0)==0?46214:32768)>>>(h>>>1);u=(te(a&127,13959168)|0)>>>16;u=C+((te(C>>16,u)|0)+((te(C&65535,u)|0)>>>16))<<16}}else{C=o<<16>>16;f=a<<16>>16;f=(te(a>>16,f)|0)+((te(a&65535,f)|0)>>16)+(te(a,(a>>15)+1>>1)|0)|0;o=(te(h,C)|0)+((te(o&65535,C)|0)>>16)+(te(o,(o>>15)+1>>1)|0)<<5;a=f-o|0;if((a|0)<1)u=0;else{h=re(a|0)|0;h=(f|0)==(o|0)?32:h;o=24-h|0;f=0-o|0;do if(o)if((o|0)<0){a=a<>>(o+32|0);break}else{a=a<<32-o|a>>>o;break}while(0);C=((h&1|0)==0?46214:32768)>>>(h>>>1);u=(te(a&127,13959168)|0)>>>16;u=C+((te(C>>16,u)|0)+((te(C&65535,u)|0)>>>16))<<8}}a=P+64|0;f=255;while(1){if((f|0)<=(r|0))break;f=f>>1}o=e+4152|0;h=0;c=s[o>>2]|0;while(1){if((h|0)>=(r|0))break;C=(te(c,196314165)|0)+907633515|0;s[a+(h<<2)>>2]=s[e+2772+((C>>24&f)<<2)>>2];h=h+1|0;c=C}s[o>>2]=c;C=e+2340|0;xr(O,e+4052|0,s[C>>2]|0);x=e+4084|0;a=P;o=x;f=a+64|0;do{s[a>>2]=s[o>>2];a=a+4|0;o=o+4|0}while((a|0)<(f|0));e=n[O>>1]|0;b=n[O+2>>1]|0;m=n[O+4>>1]|0;w=n[O+6>>1]|0;g=n[O+8>>1]|0;v=n[O+10>>1]|0;_=n[O+12>>1]|0;y=n[O+14>>1]|0;k=n[O+16>>1]|0;E=n[O+18>>1]|0;A=n[O+20>>1]|0;S=n[O+22>>1]|0;M=n[O+24>>1]|0;T=n[O+26>>1]|0;R=n[O+28>>1]|0;p=n[O+30>>1]|0;t=u<<10>>16;u=(u>>21)+1>>1;d=0;while(1){if((d|0)>=(r|0))break;O=s[P+(d+15<<2)>>2]|0;O=(s[C>>2]>>1)+((te(O>>16,e)|0)+((te(O&65535,e)|0)>>16))|0;a=s[P+(d+14<<2)>>2]|0;a=O+((te(a>>16,b)|0)+((te(a&65535,b)|0)>>16))|0;O=s[P+(d+13<<2)>>2]|0;O=a+((te(O>>16,m)|0)+((te(O&65535,m)|0)>>16))|0;a=s[P+(d+12<<2)>>2]|0;a=O+((te(a>>16,w)|0)+((te(a&65535,w)|0)>>16))|0;O=s[P+(d+11<<2)>>2]|0;O=a+((te(O>>16,g)|0)+((te(O&65535,g)|0)>>16))|0;a=s[P+(d+10<<2)>>2]|0;a=O+((te(a>>16,v)|0)+((te(a&65535,v)|0)>>16))|0;O=s[P+(d+9<<2)>>2]|0;O=a+((te(O>>16,_)|0)+((te(O&65535,_)|0)>>16))|0;a=s[P+(d+8<<2)>>2]|0;a=O+((te(a>>16,y)|0)+((te(a&65535,y)|0)>>16))|0;O=s[P+(d+7<<2)>>2]|0;O=a+((te(O>>16,k)|0)+((te(O&65535,k)|0)>>16))|0;a=s[P+(d+6<<2)>>2]|0;a=O+((te(a>>16,E)|0)+((te(a&65535,E)|0)>>16))|0;if((s[C>>2]|0)==16){O=s[P+(d+5<<2)>>2]|0;O=a+((te(O>>16,A)|0)+((te(O&65535,A)|0)>>16))|0;a=s[P+(d+4<<2)>>2]|0;a=O+((te(a>>16,S)|0)+((te(a&65535,S)|0)>>16))|0;O=s[P+(d+3<<2)>>2]|0;O=a+((te(O>>16,M)|0)+((te(O&65535,M)|0)>>16))|0;a=s[P+(d+2<<2)>>2]|0;a=O+((te(a>>16,T)|0)+((te(a&65535,T)|0)>>16))|0;O=s[P+(d+1<<2)>>2]|0;O=a+((te(O>>16,R)|0)+((te(O&65535,R)|0)>>16))|0;a=s[P+(d<<2)>>2]|0;a=O+((te(a>>16,p)|0)+((te(a&65535,p)|0)>>16))|0}c=P+(d+16<<2)|0;o=s[c>>2]|0;f=(a|0)>134217727;h=f?2147483632:((a|0)<-134217728?-134217728:a)<<4;if((o+(f?2147483632:((a|0)<-134217728?-134217728:a)<<4)|0)>-1)if((o&h|0)<0)a=-2147483648;else a=o+(f?2147483632:((a|0)<-134217728?-134217728:a)<<4)|0;else if((o|h|0)>-1)a=2147483647;else a=o+(f?2147483632:((a|0)<-134217728?-134217728:a)<<4)|0;s[c>>2]=a;h=i+(d<<1)|0;f=n[h>>1]|0;a=((te(a>>16,t)|0)+((te(a&65535,t)|0)>>16)+(te(a,u)|0)>>7)+1>>1;o=(a|0)>32767;if((f+(o?32767:(a|0)<-32768?-32768:a)|0)<=32767)if((f+(o?32767:(a|0)<-32768?-32768:a)|0)<-32768)a=-32768;else a=f+(o?32767:(a|0)<-32768?-32768:a)|0;else a=32767;n[h>>1]=a;d=d+1|0}a=x;o=P+(r<<2)|0;f=a+64|0;do{s[a>>2]=s[o>>2];a=a+4|0;o=o+4|0}while((a|0)<(f|0));qe(I|0);l=N;return}function Br(e,t,i,a){e=e|0;t=t|0;i=i|0;a=a|0;var o=0,f=0,h=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,q=0,H=0,G=0,V=0,W=0,K=0,Z=0,Y=0,$=0,X=0,J=0,Q=0,ee=0,ie=0,ne=0,se=0;ne=l;l=l+32|0;ie=ne;Z=e+2336|0;Q=s[Z>>2]|0;X=l;l=l+((1*(Q<<1)|0)+15&-16)|0;p=e+2328|0;f=s[p>>2]|0;J=l;l=l+((1*(Q+f<<2)|0)+15&-16)|0;Q=e+2332|0;d=s[Q>>2]|0;ee=l;l=l+((1*(d<<2)|0)+15&-16)|0;Y=l;l=l+((1*(d+16<<2)|0)+15&-16)|0;d=n[e+2766>>1]|0;$=e+2765|0;m=(d&65535)>>>8&255;d=n[25404+(r[$>>0]>>1<<2)+((d&65535)<<24>>24<<1)>>1]<<4;b=0;o=r[e+2770>>0]|0;while(1){if((b|0)>=(f|0))break;c=(te(o,196314165)|0)+907633515|0;u=a+(b<<1)|0;f=n[u>>1]|0;o=f<<16>>16<<14;h=e+4+(b<<2)|0;s[h>>2]=o;if(f<<16>>16<=0){if(f<<16>>16<0){o=o|1280;s[h>>2]=o}}else{o=o+-1280|0;s[h>>2]=o}f=o+d|0;s[h>>2]=(c|0)<0?0-f|0:f;f=s[p>>2]|0;b=b+1|0;o=c+(n[u>>1]|0)|0}q=e+1284|0;o=Y;f=q;h=o+64|0;do{s[o>>2]=s[f>>2];o=o+4|0;f=f+4|0}while((o|0)<(h|0));H=e+2324|0;G=e+2340|0;V=e+4160|0;W=t+136|0;_=m<<24>>24>3;y=ie+2|0;k=ie+4|0;E=ie+6|0;A=ie+8|0;S=ie+10|0;M=ie+12|0;T=ie+14|0;R=ie+16|0;x=ie+18|0;C=ie+20|0;P=ie+22|0;O=ie+24|0;N=ie+26|0;D=ie+28|0;L=ie+30|0;B=e+4164|0;U=e+2308|0;j=0;F=e+4|0;z=i;a=s[Z>>2]|0;while(1){if((j|0)>=(s[H>>2]|0))break;p=t+32+(j>>1<<5)|0;Mn(ie|0,p|0,s[G>>2]<<1|0)|0;w=t+96+(j*5<<1)|0;d=r[$>>0]|0;v=s[t+16+(j<<2)>>2]|0;g=v>>>6;u=(v|0)>0;if(!u)if(!v)o=32;else{o=0-v|0;K=12}else{o=v;K=12}if((K|0)==12){K=0;o=re(o|0)|0}f=v<>16;c=536870911/(h|0)|0;b=c<<16;m=b>>16;f=536870912-((te(h,m)|0)+((te(f&65535,m)|0)>>16))<<3;c=b+((te(f>>16,m)|0)+((te(f&65528,m)|0)>>16))+(te(f,(c>>15)+1>>1)|0)|0;o=62-o|0;f=o+-47|0;if((f|0)<1){h=47-o|0;o=-2147483648>>h;f=2147483647>>>h;if((o|0)>(f|0)){if((c|0)<=(o|0))o=(c|0)<(f|0)?f:c}else if((c|0)>(f|0))o=f;else o=(c|0)<(o|0)?o:c;o=o<>f:0;h=s[e>>2]|0;e:do if((v|0)==(h|0))u=65536;else{if((h|0)<=0)if(!h)c=32;else{f=0-h|0;K=24}else{f=h;K=24}if((K|0)==24){K=0;c=re(f|0)|0}h=h<>16|0)|0)<<16>>16;m=(te(h>>16,u)|0)+((te(h&65535,u)|0)>>16)|0;b=Nn(b|0,((b|0)<0)<<31>>31|0,m|0,((m|0)<0)<<31>>31|0)|0;b=Sn(b|0,I|0,29)|0;h=h-(b&-8)|0;u=m+((te(h>>16,u)|0)+((te(h&65535,u)|0)>>16))|0;f=c+28-f|0;h=f+-16|0;if((f|0)<16){c=16-f|0;f=-2147483648>>c;h=2147483647>>>c;if((f|0)>(h|0)){if((u|0)<=(f|0))f=(u|0)<(h|0)?h:u}else if((u|0)>(h|0))f=h;else f=(u|0)<(f|0)?f:u;f=f<>h:0;h=f>>16;c=f&65535;u=0;while(1){if((u|0)==16){u=f;break e}m=Y+(u<<2)|0;b=s[m>>2]|0;se=b<<16>>16;s[m>>2]=(te(h,se)|0)+((te(c,se)|0)>>16)+(te(f,(b>>15)+1>>1)|0);u=u+1|0}}while(0);s[e>>2]=v;if((s[V>>2]|0)!=0?d<<24>>24!=2&(s[B>>2]|0)==2&(j|0)<2:0){n[w>>1]=0;n[w+2>>1]=0;n[w+4>>1]=0;n[w+6>>1]=0;n[w+8>>1]=0;n[w+4>>1]=4096;m=s[U>>2]|0;s[t+(j<<2)>>2]=m;K=44}else if(d<<24>>24==2){m=s[t+(j<<2)>>2]|0;K=44}else b=F;e:do if((K|0)==44){K=0;d=(j|0)==0;t:do if(!d){if(!((j|0)!=2|_)){h=s[Z>>2]|0;c=s[G>>2]|0;f=h-m-c+-2|0;if((j|0)!=2){K=49;break}Mn(e+1348+(h<<1)|0,i|0,s[Q>>2]<<2|0)|0;h=s[Z>>2]|0;c=s[G>>2]|0;K=49;break}if((u|0)!=65536){o=m+2|0;f=u>>16;h=u&65535;c=0;while(1){if((c|0)>=(o|0))break t;se=J+(a-c+-1<<2)|0;b=s[se>>2]|0;p=b<<16>>16;s[se>>2]=(te(f,p)|0)+((te(h,p)|0)>>16)+(te(u,(b>>15)+1>>1)|0);c=c+1|0}}}else{h=s[Z>>2]|0;c=s[G>>2]|0;f=h-m-c+-2|0;K=49}while(0);t:do if((K|0)==49){K=0;Tr(X+(f<<1)|0,e+1348+(f+(te(j,s[Q>>2]|0)|0)<<1)|0,p,h-f|0,c);if(d){se=s[W>>2]<<16>>16;o=(te(o>>16,se)|0)+((te(o&65535,se)|0)>>16)<<2}h=m+2|0;c=o>>16;o=o&65535;f=0;while(1){if((f|0)>=(h|0))break t;se=n[X+((s[Z>>2]|0)-f+-1<<1)>>1]|0;s[J+(a-f+-1<<2)>>2]=(te(c,se)|0)+((te(o,se)|0)>>16);f=f+1|0}}while(0);c=w+2|0;u=w+4|0;d=w+6|0;p=w+8|0;h=s[Q>>2]|0;b=0;o=J+(a-m+2<<2)|0;f=a;while(1){if((b|0)>=(h|0)){b=ee;a=f;break e}m=s[o>>2]|0;se=n[w>>1]|0;se=(te(m>>16,se)|0)+((te(m&65535,se)|0)>>16)+2|0;m=s[o+-4>>2]|0;a=n[c>>1]|0;a=se+((te(m>>16,a)|0)+((te(m&65535,a)|0)>>16))|0;m=s[o+-8>>2]|0;se=n[u>>1]|0;se=a+((te(m>>16,se)|0)+((te(m&65535,se)|0)>>16))|0;m=s[o+-12>>2]|0;a=n[d>>1]|0;a=se+((te(m>>16,a)|0)+((te(m&65535,a)|0)>>16))|0;m=s[o+-16>>2]|0;se=n[p>>1]|0;se=a+((te(m>>16,se)|0)+((te(m&65535,se)|0)>>16))|0;se=(s[F+(b<<2)>>2]|0)+(se<<1)|0;s[ee+(b<<2)>>2]=se;s[J+(f<<2)>>2]=se<<1;b=b+1|0;o=o+4|0;f=f+1|0}}while(0);p=g<<16>>16;u=(v>>21)+1>>1;d=0;while(1){c=s[Q>>2]|0;if((d|0)>=(c|0))break;se=s[Y+(d+15<<2)>>2]|0;v=n[ie>>1]|0;v=(s[G>>2]>>1)+((te(se>>16,v)|0)+((te(se&65535,v)|0)>>16))|0;se=s[Y+(d+14<<2)>>2]|0;o=n[y>>1]|0;o=v+((te(se>>16,o)|0)+((te(se&65535,o)|0)>>16))|0;se=s[Y+(d+13<<2)>>2]|0;v=n[k>>1]|0;v=o+((te(se>>16,v)|0)+((te(se&65535,v)|0)>>16))|0;se=s[Y+(d+12<<2)>>2]|0;o=n[E>>1]|0;o=v+((te(se>>16,o)|0)+((te(se&65535,o)|0)>>16))|0;se=s[Y+(d+11<<2)>>2]|0;v=n[A>>1]|0;v=o+((te(se>>16,v)|0)+((te(se&65535,v)|0)>>16))|0;se=s[Y+(d+10<<2)>>2]|0;o=n[S>>1]|0;o=v+((te(se>>16,o)|0)+((te(se&65535,o)|0)>>16))|0;se=s[Y+(d+9<<2)>>2]|0;v=n[M>>1]|0;v=o+((te(se>>16,v)|0)+((te(se&65535,v)|0)>>16))|0;se=s[Y+(d+8<<2)>>2]|0;o=n[T>>1]|0;o=v+((te(se>>16,o)|0)+((te(se&65535,o)|0)>>16))|0;se=s[Y+(d+7<<2)>>2]|0;v=n[R>>1]|0;v=o+((te(se>>16,v)|0)+((te(se&65535,v)|0)>>16))|0;se=s[Y+(d+6<<2)>>2]|0;o=n[x>>1]|0;o=v+((te(se>>16,o)|0)+((te(se&65535,o)|0)>>16))|0;if((s[G>>2]|0)==16){se=s[Y+(d+5<<2)>>2]|0;v=n[C>>1]|0;v=o+((te(se>>16,v)|0)+((te(se&65535,v)|0)>>16))|0;se=s[Y+(d+4<<2)>>2]|0;o=n[P>>1]|0;o=v+((te(se>>16,o)|0)+((te(se&65535,o)|0)>>16))|0;se=s[Y+(d+3<<2)>>2]|0;v=n[O>>1]|0;v=o+((te(se>>16,v)|0)+((te(se&65535,v)|0)>>16))|0;se=s[Y+(d+2<<2)>>2]|0;o=n[N>>1]|0;o=v+((te(se>>16,o)|0)+((te(se&65535,o)|0)>>16))|0;se=s[Y+(d+1<<2)>>2]|0;v=n[D>>1]|0;v=o+((te(se>>16,v)|0)+((te(se&65535,v)|0)>>16))|0;se=s[Y+(d<<2)>>2]|0;o=n[L>>1]|0;o=v+((te(se>>16,o)|0)+((te(se&65535,o)|0)>>16))|0}f=s[b+(d<<2)>>2]|0;h=(o|0)>134217727;c=h?2147483632:((o|0)<-134217728?-134217728:o)<<4;if((f+(h?2147483632:((o|0)<-134217728?-134217728:o)<<4)|0)>-1)if((f&c|0)<0)o=-2147483648;else o=f+(h?2147483632:((o|0)<-134217728?-134217728:o)<<4)|0;else if((f|c|0)>-1)o=2147483647;else o=f+(h?2147483632:((o|0)<-134217728?-134217728:o)<<4)|0;s[Y+(d+16<<2)>>2]=o;se=((te(o>>16,p)|0)+((te(o&65535,p)|0)>>16)+(te(o,u)|0)>>7)+1>>1;n[z+(d<<1)>>1]=(se|0)>32767?32767:((se|0)<-32768?-32768:se)&65535;d=d+1|0}o=Y;f=Y+(c<<2)|0;h=o+64|0;do{s[o>>2]=s[f>>2];o=o+4|0;f=f+4|0}while((o|0)<(h|0));j=j+1|0;F=F+(c<<2)|0;z=z+(c<<1)|0}o=q;f=Y;h=o+64|0;do{s[o>>2]=s[f>>2];o=o+4|0;f=f+4|0}while((o|0)<(h|0));l=ne;return}function Ur(e,t,i,f,h,c,u){e=e|0;t=t|0;i=i|0;f=f|0;h=h|0;c=c|0;u=u|0;var d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,q=0,H=0,G=0,V=0,W=0,K=0,Z=0,Y=0,$=0,X=0,J=0,Q=0,ee=0,ie=0,ne=0,se=0,ae=0,oe=0,fe=0;se=l;l=l+448|0;X=se+232|0;$=se+376|0;ie=se+344|0;G=se+200|0;W=se+184|0;V=se+168|0;J=se+88|0;Q=se+8|0;Z=se;ne=se+312|0;K=se+280|0;ee=se+360|0;Y=se+248|0;q=i+2|0;Cr(t,s[i+36>>2]|0,n[q>>1]|0);d=s[i>>2]|0;k=l;l=l+((1*((d&65535)<<2)|0)+15&-16)|0;H=i+8|0;z=i+12|0;y=d<<16>>16;d=d>>16;p=s[H>>2]|0;b=0;_=s[z>>2]|0;while(1){if((b|0)<(y|0)){w=d;g=0;v=0}else break;while(1){m=w+-2|0;if((m|0)<=-1)break;U=w+-1|0;U=te((o[t+(U<<1)>>1]|0)-(a[p+U>>0]<<7)<<16>>16,n[_+(U<<1)>>1]|0)|0;B=g>>1;F=te((o[t+(m<<1)>>1]|0)-(a[p+m>>0]<<7)<<16>>16,n[_+(m<<1)>>1]|0)|0;j=U>>1;w=m;g=F;v=v+((U|0)>(B|0)?U-B|0:B-U|0)+((F|0)>(j|0)?F-j|0:j-F|0)|0}s[k+(b<<2)>>2]=v;p=p+d|0;b=b+1|0;_=_+(d<<1)|0}F=l;l=l+((1*(c<<2)|0)+15&-16)|0;Or(k,F,y,c);D=l;l=l+((1*(c<<2)|0)+15&-16)|0;L=l;l=l+((1*(c<<4)|0)+15&-16)|0;B=i+32|0;U=i+4|0;j=h<<16>>16;O=u>>1;N=i+16|0;C=h<<14>>16;P=0;while(1){if((P|0)>=(c|0))break;x=s[F+(P<<2)>>2]|0;w=n[q>>1]|0;v=te(x,w)|0;g=(s[H>>2]|0)+v|0;v=(s[z>>2]|0)+(v<<1)|0;_=0;while(1){if((_|0)>=(w|0))break;R=n[v+(_<<1)>>1]|0;n[ne+(_<<1)>>1]=(te((o[t+(_<<1)>>1]|0)-(a[g+_>>0]<<7)<<16>>16,R)|0)>>>14;p=n[f+(_<<1)>>1]|0;M=p<<16>>16;R=te(R,R)|0;p=re((p<<16>>16>0?M:0-M|0)|0)|0;M=M<>16|0)|0)<<16>>16;T=(te(M>>16,m)|0)+((te(M&65535,m)|0)>>16)|0;R=Nn(R|0,((R|0)<0)<<31>>31|0,T|0,((T|0)<0)<<31>>31|0)|0;R=Sn(R|0,I|0,29)|0;R=M-(R&-8)|0;m=T+((te(R>>16,m)|0)+((te(R&65535,m)|0)>>16))|0;d=p+28-d|0;p=d+-21|0;if((d|0)<21){b=21-d|0;d=-2147483648>>b;p=2147483647>>>b;if((d|0)>(p|0)){if((m|0)<=(d|0))d=(m|0)<(p|0)?p:m}else if((m|0)>(p|0))d=p;else d=(m|0)<(d|0)?d:m;d=d<>p:0;n[K+(_<<1)>>1]=d;_=_+1|0}Bi(Y,ee,i,x);R=P<<4;T=s[B>>2]|0;g=s[U>>2]|0;b=g<<16>>16;m=n[q>>1]|0;w=-10;while(1){if((w|0)==10)break;d=w<<10;p=d+1024|0;e:do if((w|0)>0){d=(w<<26>>16)+-102|0;p=(p<<16>>16)+-102|0}else{switch(w|0){case 0:{p=(p<<16>>16)+-102|0;break e}case-1:{d=-1024;break}default:p=p|102}d=d|102}while(0);M=w+10|0;s[J+(M<<2)>>2]=(te(d<<16>>16,b)|0)>>16;s[Q+(M<<2)>>2]=(te(p<<16>>16,b)|0)>>16;w=w+1|0}s[G>>2]=0;n[ie>>1]=0;M=m<<16>>16;A=g>>16;d=M;E=1;e:while(1){S=E<<1;u=(S|0)<5;t:while(1){h=d+-1|0;if((d|0)<=0){g=2147483647;m=0;d=0;break e}p=T+(n[Y+(h<<1)>>1]|0)|0;b=n[ne+(h<<1)>>1]|0;m=ee+h|0;w=K+(h<<1)|0;y=0;while(1){if((y|0)>=(E|0))break;_=ie+(y<<1)|0;v=(te(a[m>>0]|0,n[_>>1]|0)|0)>>8;d=(te(A,b-v<<16>>16)|0)>>16;d=(d|0)>9?9:(d|0)<-10?-10:d;r[$+(y<<4)+h>>0]=d;k=d+10|0;g=(s[J+(k<<2)>>2]|0)+v|0;v=(s[Q+(k<<2)>>2]|0)+v|0;n[_>>1]=g;_=y+E|0;n[ie+(_<<1)>>1]=v;do if((d|0)>2)if((d|0)==3){k=a[p+7>>0]|0;d=280;break}else{d=d*43|0;k=d+108|0;d=d+151|0;break}else{if((d|0)>=-3){k=a[p+(d+4)>>0]|0;d=a[p+(d+5)>>0]|0;break}if((d|0)==-4){k=280;d=a[p+1>>0]|0;break}else{d=te(d,-43)|0;k=d+108|0;d=d+65|0;break}}while(0);oe=G+(y<<2)|0;ae=s[oe>>2]|0;fe=b-g<<16>>16;fe=te(fe,fe)|0;g=n[w>>1]|0;s[oe>>2]=ae+(te(fe,g)|0)+(te(j,k<<16>>16)|0);k=b-v<<16>>16;s[G+(_<<2)>>2]=ae+(te(te(k,k)|0,g)|0)+(te(j,d<<16>>16)|0);y=y+1|0}if(u){d=0;break}else v=0;while(1){if((v|0)==4){d=0;w=0;p=0;b=0;m=2147483647;break}b=G+(v<<2)|0;d=s[b>>2]|0;p=v+4|0;m=G+(p<<2)|0;g=s[m>>2]|0;w=V+(v<<2)|0;if((d|0)>(g|0)){s[w>>2]=d;s[b>>2]=g;s[m>>2]=d;oe=ie+(v<<1)|0;fe=n[oe>>1]|0;d=ie+(p<<1)|0;n[oe>>1]=n[d>>1]|0;n[d>>1]=fe;d=g}else{s[w>>2]=g;p=v}s[W+(v<<2)>>2]=d;s[X+(v<<2)>>2]=p;v=v+1|0}while(1){if((p|0)<4){fe=s[V+(p<<2)>>2]|0;oe=(m|0)>(fe|0);ae=s[W+(p<<2)>>2]|0;k=(b|0)<(ae|0);d=k?p:d;w=oe?p:w;p=p+1|0;b=k?ae:b;m=oe?fe:m;continue}if((m|0)>=(b|0)){d=0;break}s[X+(d<<2)>>2]=s[X+(w<<2)>>2]^4;b=w+4|0;s[G+(d<<2)>>2]=s[G+(b<<2)>>2];n[ie+(d<<1)>>1]=n[ie+(b<<1)>>1]|0;s[W+(d<<2)>>2]=0;s[V+(w<<2)>>2]=2147483647;b=$+(d<<4)|0;d=$+(w<<4)|0;p=b+16|0;do{r[b>>0]=r[d>>0]|0;b=b+1|0;d=d+1|0}while((b|0)<(p|0));d=0;w=0;p=0;b=0;m=2147483647}while(1){if((d|0)==4){d=h;continue t}fe=$+(d<<4)+h|0;r[fe>>0]=(a[fe>>0]|0)+((s[X+(d<<2)>>2]|0)>>>2);d=d+1|0}}while(1){if((d|0)>=(E|0)){d=S;break}r[$+(d+E<<4)+h>>0]=(a[$+(d<<4)+h>>0]|0)+1;d=d+1|0}while(1){if((d|0)>=4){d=h;E=S;continue e}r[$+(d<<4)+h>>0]=r[$+(d-S<<4)+h>>0]|0;d=d+1|0}}while(1){if((d|0)==8)break;oe=s[G+(d<<2)>>2]|0;fe=(g|0)>(oe|0);g=fe?oe:g;m=fe?d:m;d=d+1|0}d=L+R|0;p=m&3;b=0;while(1){if((b|0)>=(M|0))break;r[d+b>>0]=r[$+(p<<4)+b>>0]|0;b=b+1|0}r[d>>0]=(a[d>>0]|0)+(m>>>2);w=D+(P<<2)|0;s[w>>2]=g;d=te(O,n[i>>1]|0)|0;d=(s[N>>2]|0)+d|0;p=r[d+x>>0]|0;if(!x)d=256-(p&255)|0;else d=(a[d+(x+-1)>>0]|0)-(p&255)|0;m=re(d|0)|0;p=24-m|0;b=0-p|0;do if(p)if((p|0)<0){d=d<>>(p+32|0);break}else{d=d<<32-p|d>>>p;break}while(0);fe=d&127;s[w>>2]=g+(te(1024-(fe+(((te(fe,128-fe|0)|0)*179|0)>>>16)+(31-m<<7))<<16>>16,C)|0);P=P+1|0}Or(D,Z,c,1);fe=s[Z>>2]|0;r[e>>0]=s[F+(fe<<2)>>2];Mn(e+1|0,L+(fe<<4)|0,n[q>>1]|0)|0;wr(t,e,i);l=se;return}function jr(){Nt(360,33176);We(376,33181,1,1,0);ut(384,33186,1,-128,127);ut(400,33191,1,-128,127);ut(392,33203,1,0,255);ut(408,33217,2,-32768,32767);ut(416,33223,2,0,65535);ut(424,33238,4,-2147483648,2147483647);ut(432,33242,4,0,-1);ut(440,33255,4,-2147483648,2147483647);ut(448,33260,4,0,-1);Gt(456,33274,4);Gt(464,33280,8);Ie(48,33388);Ie(80,33463);Bt(104,4,33559);Ye(128,33591);xt(136,0,33638);xt(144,0,33699);xt(152,1,33767);xt(160,2,33837);xt(168,3,33899);xt(176,4,33970);xt(184,5,34030);xt(192,4,34099);xt(200,5,34160);xt(144,0,34199);xt(152,1,34231);xt(160,2,34264);xt(168,3,34297);xt(176,4,34331);xt(184,5,34364);xt(208,6,34429);xt(216,7,34491);xt(224,7,34554);return}function Fr(e){e=e|0;var t=0,i=0,n=0,a=0;a=s[e+4>>2]|0;n=a;e:do if(!(n&3)){e=a;i=4}else{t=a;e=n;while(1){if(!(r[t>>0]|0))break e;t=t+1|0;e=t;if(!(e&3)){e=t;i=4;break}}}while(0);if((i|0)==4){while(1){t=s[e>>2]|0;if(!((t&-2139062144^-2139062144)&t+-16843009))e=e+4|0;else break}if((t&255)<<24>>24)do e=e+1|0;while((r[e>>0]|0)!=0)}e=e-n+1|0;t=qr(e)|0;if(!t){a=0;return a|0}Mn(t|0,a|0,e|0)|0;a=t;return a|0}function zr(e){e=+e;var t=0,i=0,r=0,n=0,a=0,o=0,f=0,h=0,l=0;c[d>>3]=e;i=s[d>>2]|0;t=s[d+4>>2]|0;r=(t|0)<0;do if(r|t>>>0<1048576){a=+q(+e);c[d>>3]=a;if((s[d>>2]|0)==0&(s[d+4>>2]|0)==0){e=-1/(e*e);break}if(r){e=(e-e)/0;break}else{c[d>>3]=e*0x40000000000000;t=s[d+4>>2]|0;r=s[d>>2]|0;i=-1077;n=9;break}}else if(t>>>0<=2146435071)if((i|0)==0&0==0&(t|0)==1072693248)e=0;else{ -r=i;i=-1023;n=9}while(0);if((n|0)==9){n=t+614242|0;s[d>>2]=r;s[d+4>>2]=(n&1048575)+1072079006;f=+c[d>>3]+-1;o=f*(f*.5);h=f/(f+2);l=h*h;e=l*l;c[d>>3]=f-o;r=s[d+4>>2]|0;s[d>>2]=0;s[d+4>>2]=r;a=+c[d>>3];e=f-a-o+h*(o+(e*(e*(e*.15313837699209373+.22222198432149784)+.3999999999940942)+l*(e*(e*(e*.14798198605116586+.1818357216161805)+.2857142874366239)+.6666666666666735)));l=a*.4342944818781689;o=+(i+(n>>>20)|0);h=o*.30102999566361177;f=h+l;e=f+(l+(h-f)+(e*.4342944818781689+(o*3.694239077158931e-13+(a+e)*2.5082946711645275e-11)))}return+e}function qr(e){e=e|0;var t=0,i=0,r=0,n=0,a=0,o=0,f=0,h=0,c=0,l=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0,I=0,P=0;do if(e>>>0<245){p=e>>>0<11?16:e+11&-8;e=p>>>3;h=s[8744]|0;t=h>>>e;if(t&3|0){t=(t&1^1)+e|0;i=35016+(t<<1<<2)|0;r=i+8|0;n=s[r>>2]|0;a=n+8|0;o=s[a>>2]|0;do if((i|0)!=(o|0)){if(o>>>0<(s[8748]|0)>>>0)At();e=o+12|0;if((s[e>>2]|0)==(n|0)){s[e>>2]=i;s[r>>2]=o;break}else At()}else s[8744]=h&~(1<>2]=P|3;P=n+P+4|0;s[P>>2]=s[P>>2]|1;P=a;return P|0}o=s[8746]|0;if(p>>>0>o>>>0){if(t|0){i=2<>>12&16;i=i>>>f;n=i>>>5&8;i=i>>>n;a=i>>>2&4;i=i>>>a;r=i>>>1&2;i=i>>>r;t=i>>>1&1;t=(n|f|a|r|t)+(i>>>t)|0;i=35016+(t<<1<<2)|0;r=i+8|0;a=s[r>>2]|0;f=a+8|0;n=s[f>>2]|0;do if((i|0)!=(n|0)){if(n>>>0<(s[8748]|0)>>>0)At();e=n+12|0;if((s[e>>2]|0)==(a|0)){s[e>>2]=i;s[r>>2]=n;c=s[8746]|0;break}else At()}else{s[8744]=h&~(1<>2]=p|3;r=a+p|0;s[r+4>>2]=o|1;s[r+o>>2]=o;if(c|0){n=s[8749]|0;t=c>>>3;i=35016+(t<<1<<2)|0;e=s[8744]|0;t=1<>2]|0;if(t>>>0<(s[8748]|0)>>>0)At();else{l=e;u=t}}else{s[8744]=e|t;l=i+8|0;u=i}s[l>>2]=n;s[u+12>>2]=n;s[n+8>>2]=u;s[n+12>>2]=i}s[8746]=o;s[8749]=r;P=f;return P|0}e=s[8745]|0;if(e){f=(e&0-e)+-1|0;I=f>>>12&16;f=f>>>I;C=f>>>5&8;f=f>>>C;P=f>>>2&4;f=f>>>P;t=f>>>1&2;f=f>>>t;h=f>>>1&1;h=s[35280+((C|I|P|t|h)+(f>>>h)<<2)>>2]|0;f=(s[h+4>>2]&-8)-p|0;t=h;while(1){e=s[t+16>>2]|0;if(!e){e=s[t+20>>2]|0;if(!e)break}t=(s[e+4>>2]&-8)-p|0;P=t>>>0>>0;f=P?t:f;t=e;h=P?e:h}n=s[8748]|0;if(h>>>0>>0)At();o=h+p|0;if(h>>>0>=o>>>0)At();a=s[h+24>>2]|0;i=s[h+12>>2]|0;do if((i|0)==(h|0)){t=h+20|0;e=s[t>>2]|0;if(!e){t=h+16|0;e=s[t>>2]|0;if(!e){d=0;break}}while(1){i=e+20|0;r=s[i>>2]|0;if(r|0){e=r;t=i;continue}i=e+16|0;r=s[i>>2]|0;if(!r)break;else{e=r;t=i}}if(t>>>0>>0)At();else{s[t>>2]=0;d=e;break}}else{r=s[h+8>>2]|0;if(r>>>0>>0)At();e=r+12|0;if((s[e>>2]|0)!=(h|0))At();t=i+8|0;if((s[t>>2]|0)==(h|0)){s[e>>2]=i;s[t>>2]=r;d=i;break}else At()}while(0);do if(a|0){e=s[h+28>>2]|0;t=35280+(e<<2)|0;if((h|0)==(s[t>>2]|0)){s[t>>2]=d;if(!d){s[8745]=s[8745]&~(1<>>0<(s[8748]|0)>>>0)At();e=a+16|0;if((s[e>>2]|0)==(h|0))s[e>>2]=d;else s[a+20>>2]=d;if(!d)break}t=s[8748]|0;if(d>>>0>>0)At();s[d+24>>2]=a;e=s[h+16>>2]|0;do if(e|0)if(e>>>0>>0)At();else{s[d+16>>2]=e;s[e+24>>2]=d;break}while(0);e=s[h+20>>2]|0;if(e|0)if(e>>>0<(s[8748]|0)>>>0)At();else{s[d+20>>2]=e;s[e+24>>2]=d;break}}while(0);if(f>>>0<16){P=f+p|0;s[h+4>>2]=P|3;P=h+P+4|0;s[P>>2]=s[P>>2]|1}else{s[h+4>>2]=p|3;s[o+4>>2]=f|1;s[o+f>>2]=f;e=s[8746]|0;if(e|0){r=s[8749]|0;t=e>>>3;i=35016+(t<<1<<2)|0;e=s[8744]|0;t=1<>2]|0;if(t>>>0<(s[8748]|0)>>>0)At();else{b=e;m=t}}else{s[8744]=e|t;b=i+8|0;m=i}s[b>>2]=r;s[m+12>>2]=r;s[r+8>>2]=m;s[r+12>>2]=i}s[8746]=f;s[8749]=o}P=h+8|0;return P|0}}}else if(e>>>0<=4294967231){e=e+11|0;p=e&-8;c=s[8745]|0;if(c){i=0-p|0;e=e>>>8;if(e)if(p>>>0>16777215)h=31;else{m=(e+1048320|0)>>>16&8;S=e<>>16&4;S=S<>>16&2;h=14-(b|m|h)+(S<>>15)|0;h=p>>>(h+7|0)&1|h<<1}else h=0;t=s[35280+(h<<2)>>2]|0;e:do if(!t){e=0;t=0;S=86}else{n=i;e=0;o=p<<((h|0)==31?0:25-(h>>>1)|0);f=t;t=0;while(1){r=s[f+4>>2]&-8;i=r-p|0;if(i>>>0>>0)if((r|0)==(p|0)){e=f;t=f;S=90;break e}else t=f;else i=n;r=s[f+20>>2]|0;f=s[f+16+(o>>>31<<2)>>2]|0;e=(r|0)==0|(r|0)==(f|0)?e:r;r=(f|0)==0;if(r){S=86;break}else{n=i;o=o<<(r&1^1)}}}while(0);if((S|0)==86){if((e|0)==0&(t|0)==0){e=2<>>12&16;m=m>>>u;l=m>>>5&8;m=m>>>l;d=m>>>2&4;m=m>>>d;b=m>>>1&2;m=m>>>b;e=m>>>1&1;e=s[35280+((l|u|d|b|e)+(m>>>e)<<2)>>2]|0}if(!e){f=i;h=t}else S=90}if((S|0)==90)while(1){S=0;m=(s[e+4>>2]&-8)-p|0;r=m>>>0>>0;i=r?m:i;t=r?e:t;r=s[e+16>>2]|0;if(r|0){e=r;S=90;continue}e=s[e+20>>2]|0;if(!e){f=i;h=t;break}else S=90}if((h|0)!=0?f>>>0<((s[8746]|0)-p|0)>>>0:0){n=s[8748]|0;if(h>>>0>>0)At();o=h+p|0;if(h>>>0>=o>>>0)At();a=s[h+24>>2]|0;i=s[h+12>>2]|0;do if((i|0)==(h|0)){t=h+20|0;e=s[t>>2]|0;if(!e){t=h+16|0;e=s[t>>2]|0;if(!e){g=0;break}}while(1){i=e+20|0;r=s[i>>2]|0;if(r|0){e=r;t=i;continue}i=e+16|0;r=s[i>>2]|0;if(!r)break;else{e=r;t=i}}if(t>>>0>>0)At();else{s[t>>2]=0;g=e;break}}else{r=s[h+8>>2]|0;if(r>>>0>>0)At();e=r+12|0;if((s[e>>2]|0)!=(h|0))At();t=i+8|0;if((s[t>>2]|0)==(h|0)){s[e>>2]=i;s[t>>2]=r;g=i;break}else At()}while(0);do if(a|0){e=s[h+28>>2]|0;t=35280+(e<<2)|0;if((h|0)==(s[t>>2]|0)){s[t>>2]=g;if(!g){s[8745]=s[8745]&~(1<>>0<(s[8748]|0)>>>0)At();e=a+16|0;if((s[e>>2]|0)==(h|0))s[e>>2]=g;else s[a+20>>2]=g;if(!g)break}t=s[8748]|0;if(g>>>0>>0)At();s[g+24>>2]=a;e=s[h+16>>2]|0;do if(e|0)if(e>>>0>>0)At();else{s[g+16>>2]=e;s[e+24>>2]=g;break}while(0);e=s[h+20>>2]|0;if(e|0)if(e>>>0<(s[8748]|0)>>>0)At();else{s[g+20>>2]=e;s[e+24>>2]=g;break}}while(0);do if(f>>>0>=16){s[h+4>>2]=p|3;s[o+4>>2]=f|1;s[o+f>>2]=f;e=f>>>3;if(f>>>0<256){i=35016+(e<<1<<2)|0;t=s[8744]|0;e=1<>2]|0;if(t>>>0<(s[8748]|0)>>>0)At();else{v=e;y=t}}else{s[8744]=t|e;v=i+8|0;y=i}s[v>>2]=o;s[y+12>>2]=o;s[o+8>>2]=y;s[o+12>>2]=i;break}e=f>>>8;if(e)if(f>>>0>16777215)i=31;else{I=(e+1048320|0)>>>16&8;P=e<>>16&4;P=P<>>16&2;i=14-(C|I|i)+(P<>>15)|0;i=f>>>(i+7|0)&1|i<<1}else i=0;r=35280+(i<<2)|0;s[o+28>>2]=i;e=o+16|0;s[e+4>>2]=0;s[e>>2]=0;e=s[8745]|0;t=1<>2]=o;s[o+24>>2]=r;s[o+12>>2]=o;s[o+8>>2]=o;break}i=f<<((i|0)==31?0:25-(i>>>1)|0);r=s[r>>2]|0;while(1){if((s[r+4>>2]&-8|0)==(f|0)){S=148;break}t=r+16+(i>>>31<<2)|0;e=s[t>>2]|0;if(!e){S=145;break}else{i=i<<1;r=e}}if((S|0)==145)if(t>>>0<(s[8748]|0)>>>0)At();else{s[t>>2]=o;s[o+24>>2]=r;s[o+12>>2]=o;s[o+8>>2]=o;break}else if((S|0)==148){e=r+8|0;t=s[e>>2]|0;P=s[8748]|0;if(t>>>0>=P>>>0&r>>>0>=P>>>0){s[t+12>>2]=o;s[e>>2]=o;s[o+8>>2]=t;s[o+12>>2]=r;s[o+24>>2]=0;break}else At()}}else{P=f+p|0;s[h+4>>2]=P|3;P=h+P+4|0;s[P>>2]=s[P>>2]|1}while(0);P=h+8|0;return P|0}}}else p=-1;while(0);i=s[8746]|0;if(i>>>0>=p>>>0){e=i-p|0;t=s[8749]|0;if(e>>>0>15){P=t+p|0;s[8749]=P;s[8746]=e;s[P+4>>2]=e|1;s[P+e>>2]=e;s[t+4>>2]=p|3}else{s[8746]=0;s[8749]=0;s[t+4>>2]=i|3;P=t+i+4|0;s[P>>2]=s[P>>2]|1}P=t+8|0;return P|0}e=s[8747]|0;if(e>>>0>p>>>0){C=e-p|0;s[8747]=C;P=s[8750]|0;I=P+p|0;s[8750]=I;s[I+4>>2]=C|1;s[P+4>>2]=p|3;P=P+8|0;return P|0}do if(!(s[8862]|0)){e=xe(30)|0;if(!(e+-1&e)){s[8864]=e;s[8863]=e;s[8865]=-1;s[8866]=-1;s[8867]=0;s[8855]=0;s[8862]=(rt(0)|0)&-16^1431655768;break}else At()}while(0);o=p+48|0;r=s[8864]|0;f=p+47|0;i=r+f|0;r=0-r|0;h=i&r;if(h>>>0<=p>>>0){P=0;return P|0}e=s[8854]|0;if(e|0?(v=s[8852]|0,y=v+h|0,y>>>0<=v>>>0|y>>>0>e>>>0):0){P=0;return P|0}e:do if(!(s[8855]&4)){t=s[8750]|0;t:do if(t){n=35424;while(1){e=s[n>>2]|0;if(e>>>0<=t>>>0?(w=n+4|0,(e+(s[w>>2]|0)|0)>>>0>t>>>0):0)break;e=s[n+8>>2]|0;if(!e){S=173;break t}else n=e}e=i-(s[8747]|0)&r;if(e>>>0<2147483647){t=Me(e|0)|0;if((t|0)==((s[n>>2]|0)+(s[w>>2]|0)|0)){if((t|0)!=(-1|0)){o=t;a=e;S=193;break e}}else S=183}}else S=173;while(0);do if((S|0)==173?(_=Me(0)|0,(_|0)!=(-1|0)):0){e=_;t=s[8863]|0;i=t+-1|0;if(!(i&e))e=h;else e=h-e+(i+e&0-t)|0;t=s[8852]|0;i=t+e|0;if(e>>>0>p>>>0&e>>>0<2147483647){y=s[8854]|0;if(y|0?i>>>0<=t>>>0|i>>>0>y>>>0:0)break;t=Me(e|0)|0;if((t|0)==(_|0)){o=_;a=e;S=193;break e}else S=183}}while(0);t:do if((S|0)==183){i=0-e|0;do if(o>>>0>e>>>0&(e>>>0<2147483647&(t|0)!=(-1|0))?(k=s[8864]|0,k=f-e+k&0-k,k>>>0<2147483647):0)if((Me(k|0)|0)==(-1|0)){Me(i|0)|0;break t}else{e=k+e|0;break}while(0);if((t|0)!=(-1|0)){o=t;a=e;S=193;break e}}while(0);s[8855]=s[8855]|4;S=190}else S=190;while(0);if((((S|0)==190?h>>>0<2147483647:0)?(E=Me(h|0)|0,A=Me(0)|0,E>>>0>>0&((E|0)!=(-1|0)&(A|0)!=(-1|0))):0)?(a=A-E|0,a>>>0>(p+40|0)>>>0):0){o=E;S=193}if((S|0)==193){e=(s[8852]|0)+a|0;s[8852]=e;if(e>>>0>(s[8853]|0)>>>0)s[8853]=e;c=s[8750]|0;do if(c){n=35424;while(1){e=s[n>>2]|0;t=n+4|0;i=s[t>>2]|0;if((o|0)==(e+i|0)){S=203;break}r=s[n+8>>2]|0;if(!r)break;else n=r}if(((S|0)==203?(s[n+12>>2]&8|0)==0:0)?c>>>0>>0&c>>>0>=e>>>0:0){s[t>>2]=i+a;P=c+8|0;P=(P&7|0)==0?0:0-P&7;I=c+P|0;P=a-P+(s[8747]|0)|0;s[8750]=I;s[8747]=P;s[I+4>>2]=P|1;s[I+P+4>>2]=40;s[8751]=s[8866];break}e=s[8748]|0;if(o>>>0>>0){s[8748]=o;f=o}else f=e;t=o+a|0;e=35424;while(1){if((s[e>>2]|0)==(t|0)){S=211;break}e=s[e+8>>2]|0;if(!e){t=35424;break}}if((S|0)==211)if(!(s[e+12>>2]&8)){s[e>>2]=o;u=e+4|0;s[u>>2]=(s[u>>2]|0)+a;u=o+8|0;u=o+((u&7|0)==0?0:0-u&7)|0;e=t+8|0;e=t+((e&7|0)==0?0:0-e&7)|0;l=u+p|0;h=e-u-p|0;s[u+4>>2]=p|3;do if((e|0)!=(c|0)){if((e|0)==(s[8749]|0)){P=(s[8746]|0)+h|0;s[8746]=P;s[8749]=l;s[l+4>>2]=P|1;s[l+P>>2]=P;break}t=s[e+4>>2]|0;if((t&3|0)==1){o=t&-8;n=t>>>3;e:do if(t>>>0>=256){a=s[e+24>>2]|0;r=s[e+12>>2]|0;do if((r|0)==(e|0)){r=e+16|0;i=r+4|0;t=s[i>>2]|0;if(!t){t=s[r>>2]|0;if(!t){C=0;break}else i=r}while(1){r=t+20|0;n=s[r>>2]|0;if(n|0){t=n;i=r;continue}r=t+16|0;n=s[r>>2]|0;if(!n)break;else{t=n;i=r}}if(i>>>0>>0)At();else{s[i>>2]=0;C=t;break}}else{n=s[e+8>>2]|0;if(n>>>0>>0)At();t=n+12|0;if((s[t>>2]|0)!=(e|0))At();i=r+8|0;if((s[i>>2]|0)==(e|0)){s[t>>2]=r;s[i>>2]=n;C=r;break}else At()}while(0);if(!a)break;t=s[e+28>>2]|0;i=35280+(t<<2)|0;do if((e|0)!=(s[i>>2]|0)){if(a>>>0<(s[8748]|0)>>>0)At();t=a+16|0;if((s[t>>2]|0)==(e|0))s[t>>2]=C;else s[a+20>>2]=C;if(!C)break e}else{s[i>>2]=C;if(C|0)break;s[8745]=s[8745]&~(1<>>0>>0)At();s[C+24>>2]=a;t=e+16|0;i=s[t>>2]|0;do if(i|0)if(i>>>0>>0)At();else{s[C+16>>2]=i;s[i+24>>2]=C;break}while(0);t=s[t+4>>2]|0;if(!t)break;if(t>>>0<(s[8748]|0)>>>0)At();else{s[C+20>>2]=t;s[t+24>>2]=C;break}}else{i=s[e+8>>2]|0;r=s[e+12>>2]|0;t=35016+(n<<1<<2)|0;do if((i|0)!=(t|0)){if(i>>>0>>0)At();if((s[i+12>>2]|0)==(e|0))break;At()}while(0);if((r|0)==(i|0)){s[8744]=s[8744]&~(1<>>0>>0)At();t=r+8|0;if((s[t>>2]|0)==(e|0)){T=t;break}At()}while(0);s[i+12>>2]=r;s[T>>2]=i}while(0);e=e+o|0;n=o+h|0}else n=h;e=e+4|0;s[e>>2]=s[e>>2]&-2;s[l+4>>2]=n|1;s[l+n>>2]=n;e=n>>>3;if(n>>>0<256){i=35016+(e<<1<<2)|0;t=s[8744]|0;e=1<>2]|0;if(t>>>0>=(s[8748]|0)>>>0){I=e;P=t;break}At()}while(0);s[I>>2]=l;s[P+12>>2]=l;s[l+8>>2]=P;s[l+12>>2]=i;break}e=n>>>8;do if(!e)i=0;else{if(n>>>0>16777215){i=31;break}I=(e+1048320|0)>>>16&8;P=e<>>16&4;P=P<>>16&2;i=14-(C|I|i)+(P<>>15)|0;i=n>>>(i+7|0)&1|i<<1}while(0);r=35280+(i<<2)|0;s[l+28>>2]=i;e=l+16|0;s[e+4>>2]=0;s[e>>2]=0;e=s[8745]|0;t=1<>2]=l;s[l+24>>2]=r;s[l+12>>2]=l;s[l+8>>2]=l;break}i=n<<((i|0)==31?0:25-(i>>>1)|0);r=s[r>>2]|0;while(1){if((s[r+4>>2]&-8|0)==(n|0)){S=281;break}t=r+16+(i>>>31<<2)|0;e=s[t>>2]|0;if(!e){S=278;break}else{i=i<<1;r=e}}if((S|0)==278)if(t>>>0<(s[8748]|0)>>>0)At();else{s[t>>2]=l;s[l+24>>2]=r;s[l+12>>2]=l;s[l+8>>2]=l;break}else if((S|0)==281){e=r+8|0;t=s[e>>2]|0;P=s[8748]|0;if(t>>>0>=P>>>0&r>>>0>=P>>>0){s[t+12>>2]=l;s[e>>2]=l;s[l+8>>2]=t;s[l+12>>2]=r;s[l+24>>2]=0;break}else At()}}else{P=(s[8747]|0)+h|0;s[8747]=P;s[8750]=l;s[l+4>>2]=P|1}while(0);P=u+8|0;return P|0}else t=35424;while(1){e=s[t>>2]|0;if(e>>>0<=c>>>0?(M=e+(s[t+4>>2]|0)|0,M>>>0>c>>>0):0)break;t=s[t+8>>2]|0}n=M+-47|0;t=n+8|0;t=n+((t&7|0)==0?0:0-t&7)|0;n=c+16|0;t=t>>>0>>0?c:t;e=t+8|0;i=o+8|0;i=(i&7|0)==0?0:0-i&7;P=o+i|0;i=a+-40-i|0;s[8750]=P;s[8747]=i;s[P+4>>2]=i|1;s[P+i+4>>2]=40;s[8751]=s[8866];i=t+4|0;s[i>>2]=27;s[e>>2]=s[8856];s[e+4>>2]=s[8857];s[e+8>>2]=s[8858];s[e+12>>2]=s[8859];s[8856]=o;s[8857]=a;s[8859]=0;s[8858]=e;e=t+24|0;do{e=e+4|0;s[e>>2]=7}while((e+4|0)>>>0>>0);if((t|0)!=(c|0)){a=t-c|0;s[i>>2]=s[i>>2]&-2;s[c+4>>2]=a|1;s[t>>2]=a;e=a>>>3;if(a>>>0<256){i=35016+(e<<1<<2)|0;t=s[8744]|0;e=1<>2]|0;if(t>>>0<(s[8748]|0)>>>0)At();else{R=e;x=t}}else{s[8744]=t|e;R=i+8|0;x=i}s[R>>2]=c;s[x+12>>2]=c;s[c+8>>2]=x;s[c+12>>2]=i;break}e=a>>>8;if(e)if(a>>>0>16777215)i=31;else{I=(e+1048320|0)>>>16&8;P=e<>>16&4;P=P<>>16&2;i=14-(C|I|i)+(P<>>15)|0;i=a>>>(i+7|0)&1|i<<1}else i=0;r=35280+(i<<2)|0;s[c+28>>2]=i;s[c+20>>2]=0;s[n>>2]=0;e=s[8745]|0;t=1<>2]=c;s[c+24>>2]=r;s[c+12>>2]=c;s[c+8>>2]=c;break}i=a<<((i|0)==31?0:25-(i>>>1)|0);r=s[r>>2]|0;while(1){if((s[r+4>>2]&-8|0)==(a|0)){S=307;break}t=r+16+(i>>>31<<2)|0;e=s[t>>2]|0;if(!e){S=304;break}else{i=i<<1;r=e}}if((S|0)==304)if(t>>>0<(s[8748]|0)>>>0)At();else{s[t>>2]=c;s[c+24>>2]=r;s[c+12>>2]=c;s[c+8>>2]=c;break}else if((S|0)==307){e=r+8|0;t=s[e>>2]|0;P=s[8748]|0;if(t>>>0>=P>>>0&r>>>0>=P>>>0){s[t+12>>2]=c;s[e>>2]=c;s[c+8>>2]=t;s[c+12>>2]=r;s[c+24>>2]=0;break}else At()}}}else{P=s[8748]|0;if((P|0)==0|o>>>0

>>0)s[8748]=o;s[8856]=o;s[8857]=a;s[8859]=0;s[8753]=s[8862];s[8752]=-1;e=0;do{P=35016+(e<<1<<2)|0;s[P+12>>2]=P;s[P+8>>2]=P;e=e+1|0}while((e|0)!=32);P=o+8|0;P=(P&7|0)==0?0:0-P&7;I=o+P|0;P=a+-40-P|0;s[8750]=I;s[8747]=P;s[I+4>>2]=P|1;s[I+P+4>>2]=40;s[8751]=s[8866]}while(0);e=s[8747]|0;if(e>>>0>p>>>0){C=e-p|0;s[8747]=C;P=s[8750]|0;I=P+p|0;s[8750]=I;s[I+4>>2]=C|1;s[P+4>>2]=p|3;P=P+8|0;return P|0}}if(!(s[8732]|0))e=34972;else e=s[(zt()|0)+64>>2]|0;s[e>>2]=12;P=0;return P|0}function Hr(e){e=e|0;var t=0,i=0,r=0,n=0,a=0,o=0,f=0,h=0,c=0,l=0,u=0,d=0,p=0,b=0,m=0;if(!e)return;i=e+-8|0;o=s[8748]|0;if(i>>>0>>0)At();e=s[e+-4>>2]|0;t=e&3;if((t|0)==1)At();r=e&-8;u=i+r|0;do if(!(e&1)){e=s[i>>2]|0;if(!t)return;c=i+(0-e)|0;h=e+r|0;if(c>>>0>>0)At();if((c|0)==(s[8749]|0)){e=u+4|0;t=s[e>>2]|0;if((t&3|0)!=3){m=c;n=h;break}s[8746]=h;s[e>>2]=t&-2;s[c+4>>2]=h|1;s[c+h>>2]=h;return}r=e>>>3;if(e>>>0<256){t=s[c+8>>2]|0;i=s[c+12>>2]|0;e=35016+(r<<1<<2)|0;if((t|0)!=(e|0)){if(t>>>0>>0)At();if((s[t+12>>2]|0)!=(c|0))At()}if((i|0)==(t|0)){s[8744]=s[8744]&~(1<>>0>>0)At();e=i+8|0;if((s[e>>2]|0)==(c|0))a=e;else At()}else a=i+8|0;s[t+12>>2]=i;s[a>>2]=t;m=c;n=h;break}a=s[c+24>>2]|0;i=s[c+12>>2]|0;do if((i|0)==(c|0)){i=c+16|0;t=i+4|0;e=s[t>>2]|0;if(!e){e=s[i>>2]|0;if(!e){f=0;break}else t=i}while(1){i=e+20|0;r=s[i>>2]|0;if(r|0){e=r;t=i;continue}i=e+16|0;r=s[i>>2]|0;if(!r)break;else{e=r;t=i}}if(t>>>0>>0)At();else{s[t>>2]=0;f=e;break}}else{r=s[c+8>>2]|0;if(r>>>0>>0)At();e=r+12|0;if((s[e>>2]|0)!=(c|0))At();t=i+8|0;if((s[t>>2]|0)==(c|0)){s[e>>2]=i;s[t>>2]=r;f=i;break}else At()}while(0);if(a){e=s[c+28>>2]|0;t=35280+(e<<2)|0;if((c|0)==(s[t>>2]|0)){s[t>>2]=f;if(!f){s[8745]=s[8745]&~(1<>>0<(s[8748]|0)>>>0)At();e=a+16|0;if((s[e>>2]|0)==(c|0))s[e>>2]=f;else s[a+20>>2]=f;if(!f){m=c;n=h;break}}i=s[8748]|0;if(f>>>0>>0)At();s[f+24>>2]=a;e=c+16|0;t=s[e>>2]|0;do if(t|0)if(t>>>0>>0)At();else{s[f+16>>2]=t;s[t+24>>2]=f;break}while(0);e=s[e+4>>2]|0;if(e)if(e>>>0<(s[8748]|0)>>>0)At();else{s[f+20>>2]=e;s[e+24>>2]=f;m=c;n=h;break}else{m=c;n=h}}else{m=c;n=h}}else{m=i;n=r}while(0);if(m>>>0>=u>>>0)At();e=u+4|0;t=s[e>>2]|0;if(!(t&1))At();if(!(t&2)){if((u|0)==(s[8750]|0)){b=(s[8747]|0)+n|0;s[8747]=b;s[8750]=m;s[m+4>>2]=b|1;if((m|0)!=(s[8749]|0))return;s[8749]=0;s[8746]=0;return}if((u|0)==(s[8749]|0)){b=(s[8746]|0)+n|0;s[8746]=b;s[8749]=m;s[m+4>>2]=b|1;s[m+b>>2]=b;return}n=(t&-8)+n|0;r=t>>>3;do if(t>>>0>=256){a=s[u+24>>2]|0;e=s[u+12>>2]|0;do if((e|0)==(u|0)){i=u+16|0;t=i+4|0;e=s[t>>2]|0;if(!e){e=s[i>>2]|0;if(!e){d=0;break}else t=i}while(1){i=e+20|0;r=s[i>>2]|0;if(r|0){e=r;t=i;continue}i=e+16|0;r=s[i>>2]|0;if(!r)break;else{e=r;t=i}}if(t>>>0<(s[8748]|0)>>>0)At();else{s[t>>2]=0;d=e;break}}else{t=s[u+8>>2]|0;if(t>>>0<(s[8748]|0)>>>0)At();i=t+12|0;if((s[i>>2]|0)!=(u|0))At();r=e+8|0;if((s[r>>2]|0)==(u|0)){s[i>>2]=e;s[r>>2]=t;d=e;break}else At()}while(0);if(a|0){e=s[u+28>>2]|0;t=35280+(e<<2)|0;if((u|0)==(s[t>>2]|0)){s[t>>2]=d;if(!d){s[8745]=s[8745]&~(1<>>0<(s[8748]|0)>>>0)At();e=a+16|0;if((s[e>>2]|0)==(u|0))s[e>>2]=d;else s[a+20>>2]=d;if(!d)break}i=s[8748]|0;if(d>>>0>>0)At();s[d+24>>2]=a;e=u+16|0;t=s[e>>2]|0;do if(t|0)if(t>>>0>>0)At();else{s[d+16>>2]=t;s[t+24>>2]=d;break}while(0);e=s[e+4>>2]|0;if(e|0)if(e>>>0<(s[8748]|0)>>>0)At();else{s[d+20>>2]=e;s[e+24>>2]=d;break}}}else{t=s[u+8>>2]|0;i=s[u+12>>2]|0;e=35016+(r<<1<<2)|0;if((t|0)!=(e|0)){if(t>>>0<(s[8748]|0)>>>0)At();if((s[t+12>>2]|0)!=(u|0))At()}if((i|0)==(t|0)){s[8744]=s[8744]&~(1<>>0<(s[8748]|0)>>>0)At();e=i+8|0;if((s[e>>2]|0)==(u|0))l=e;else At()}else l=i+8|0;s[t+12>>2]=i;s[l>>2]=t}while(0);s[m+4>>2]=n|1;s[m+n>>2]=n;if((m|0)==(s[8749]|0)){s[8746]=n;return}}else{s[e>>2]=t&-2;s[m+4>>2]=n|1;s[m+n>>2]=n}e=n>>>3;if(n>>>0<256){i=35016+(e<<1<<2)|0;t=s[8744]|0;e=1<>2]|0;if(t>>>0<(s[8748]|0)>>>0)At();else{p=e;b=t}}else{s[8744]=t|e;p=i+8|0;b=i}s[p>>2]=m;s[b+12>>2]=m;s[m+8>>2]=b;s[m+12>>2]=i;return}e=n>>>8;if(e)if(n>>>0>16777215)i=31;else{p=(e+1048320|0)>>>16&8;b=e<>>16&4;b=b<>>16&2;i=14-(d|p|i)+(b<>>15)|0;i=n>>>(i+7|0)&1|i<<1}else i=0;r=35280+(i<<2)|0;s[m+28>>2]=i;s[m+20>>2]=0;s[m+16>>2]=0;e=s[8745]|0;t=1<>>1)|0);r=s[r>>2]|0;while(1){if((s[r+4>>2]&-8|0)==(n|0)){e=130;break}t=r+16+(i>>>31<<2)|0;e=s[t>>2]|0;if(!e){e=127;break}else{i=i<<1;r=e}}if((e|0)==127)if(t>>>0<(s[8748]|0)>>>0)At();else{s[t>>2]=m;s[m+24>>2]=r;s[m+12>>2]=m;s[m+8>>2]=m;break}else if((e|0)==130){e=r+8|0;t=s[e>>2]|0;b=s[8748]|0;if(t>>>0>=b>>>0&r>>>0>=b>>>0){s[t+12>>2]=m;s[e>>2]=m;s[m+8>>2]=t;s[m+12>>2]=r;s[m+24>>2]=0;break}else At()}}else{s[8745]=e|t;s[r>>2]=m;s[m+24>>2]=r;s[m+12>>2]=m;s[m+8>>2]=m}while(0);m=(s[8752]|0)+-1|0;s[8752]=m;if(!m)e=35432;else return;while(1){e=s[e>>2]|0;if(!e)break;else e=e+8|0}s[8752]=-1;return}function Gr(e){e=e|0;return}function Vr(e){e=e|0;Hr(e);return}function Wr(e){e=e|0;return}function Kr(e){e=e|0;return}function Zr(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,n=0,a=0,o=0;o=l;l=l+64|0;a=o;if((e|0)!=(t|0))if((t|0)!=0?(n=Yr(t,240)|0,(n|0)!=0):0){t=a;r=t+56|0;do{s[t>>2]=0;t=t+4|0}while((t|0)<(r|0));s[a>>2]=n;s[a+8>>2]=e;s[a+12>>2]=-1;s[a+48>>2]=1;Qs[s[(s[n>>2]|0)+28>>2]&3](n,a,s[i>>2]|0,1);if((s[a+24>>2]|0)==1){s[i>>2]=s[a+16>>2];t=1}else t=0}else t=0;else t=1;l=o;return t|0}function Yr(e,t){e=e|0;t=t|0;var i=0,a=0,o=0,f=0,h=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0;g=l;l=l+64|0;w=g;m=s[e>>2]|0;b=e+(s[m+-8>>2]|0)|0;m=s[m+-4>>2]|0;s[w>>2]=t;s[w+4>>2]=e;s[w+8>>2]=272;c=w+12|0;u=w+16|0;e=w+20|0;i=w+24|0;a=w+28|0;o=w+32|0;f=w+40|0;h=(m|0)==(t|0);d=c;p=d+40|0;do{s[d>>2]=0;d=d+4|0}while((d|0)<(p|0));n[c+40>>1]=0;r[c+42>>0]=0;e:do if(h){s[w+48>>2]=1;Xs[s[(s[t>>2]|0)+20>>2]&3](t,w,b,b,1,0);e=(s[i>>2]|0)==1?b:0}else{Gs[s[(s[m>>2]|0)+24>>2]&3](m,w,b,1,0);switch(s[w+36>>2]|0){case 0:{e=(s[f>>2]|0)==1&(s[a>>2]|0)==1&(s[o>>2]|0)==1?s[e>>2]|0:0;break e}case 1:break;default:{e=0;break e}}if((s[i>>2]|0)!=1?!((s[f>>2]|0)==0&(s[a>>2]|0)==1&(s[o>>2]|0)==1):0){e=0;break}e=s[u>>2]|0}while(0);l=g;return e|0}function $r(e,t,i,r,n,a){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;a=a|0;if((e|0)==(s[t+8>>2]|0))Xr(t,i,r,n);else{e=s[e+8>>2]|0;Xs[s[(s[e>>2]|0)+20>>2]&3](e,t,i,r,n,a)}return}function Xr(e,t,i,n){e=e|0;t=t|0;i=i|0;n=n|0;var a=0;r[e+53>>0]=1;do if((s[e+4>>2]|0)==(i|0)){r[e+52>>0]=1;i=e+16|0;a=s[i>>2]|0;if(!a){s[i>>2]=t;s[e+24>>2]=n;s[e+36>>2]=1;if(!((n|0)==1?(s[e+48>>2]|0)==1:0))break;r[e+54>>0]=1;break}if((a|0)!=(t|0)){n=e+36|0;s[n>>2]=(s[n>>2]|0)+1;r[e+54>>0]=1;break}a=e+24|0;i=s[a>>2]|0;if((i|0)==2){s[a>>2]=n;i=n}if((i|0)==1?(s[e+48>>2]|0)==1:0)r[e+54>>0]=1}while(0);return}function Jr(e,t,i,n,a){e=e|0;t=t|0;i=i|0;n=n|0;a=a|0;var o=0,f=0,h=0;do if((e|0)==(s[t+8>>2]|0)){if((s[t+4>>2]|0)==(i|0)?(o=t+28|0,(s[o>>2]|0)!=1):0)s[o>>2]=n}else{if((e|0)!=(s[t>>2]|0)){h=s[e+8>>2]|0;Gs[s[(s[h>>2]|0)+24>>2]&3](h,t,i,n,a);break}if((s[t+16>>2]|0)!=(i|0)?(h=t+20|0,(s[h>>2]|0)!=(i|0)):0){s[t+32>>2]=n;f=t+44|0;if((s[f>>2]|0)==4)break;o=t+52|0;r[o>>0]=0;n=t+53|0;r[n>>0]=0;e=s[e+8>>2]|0;Xs[s[(s[e>>2]|0)+20>>2]&3](e,t,i,i,1,a);if(r[n>>0]|0)if(!(r[o>>0]|0)){o=1;n=13}else n=17;else{o=0;n=13}do if((n|0)==13){s[h>>2]=i;i=t+40|0;s[i>>2]=(s[i>>2]|0)+1;if((s[t+36>>2]|0)==1?(s[t+24>>2]|0)==2:0){r[t+54>>0]=1;if(o){n=17;break}else{o=4;break}}if(o)n=17;else o=4}while(0);if((n|0)==17)o=3;s[f>>2]=o;break}if((n|0)==1)s[t+32>>2]=1}while(0);return}function Qr(e,t,i,n){e=e|0;t=t|0;i=i|0;n=n|0;var a=0;do if((e|0)==(s[t+8>>2]|0)){e=t+16|0;a=s[e>>2]|0;if(!a){s[e>>2]=i;s[t+24>>2]=n;s[t+36>>2]=1;break}if((a|0)!=(i|0)){n=t+36|0;s[n>>2]=(s[n>>2]|0)+1;s[t+24>>2]=2;r[t+54>>0]=1;break}e=t+24|0;if((s[e>>2]|0)==2)s[e>>2]=n}else{a=s[e+8>>2]|0;Qs[s[(s[a>>2]|0)+28>>2]&3](a,t,i,n)}while(0);return}function en(e){e=e|0;Hr(e);return}function tn(e,t,i,r,n,a){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;a=a|0;if((e|0)==(s[t+8>>2]|0))Xr(t,i,r,n);return}function rn(e,t,i,n,a){e=e|0;t=t|0;i=i|0;n=n|0;a=a|0;var o=0,f=0;do if((e|0)==(s[t+8>>2]|0)){if((s[t+4>>2]|0)==(i|0)?(f=t+28|0,(s[f>>2]|0)!=1):0)s[f>>2]=n}else if((e|0)==(s[t>>2]|0)){if((s[t+16>>2]|0)!=(i|0)?(o=t+20|0,(s[o>>2]|0)!=(i|0)):0){s[t+32>>2]=n;s[o>>2]=i;a=t+40|0;s[a>>2]=(s[a>>2]|0)+1;if((s[t+36>>2]|0)==1?(s[t+24>>2]|0)==2:0)r[t+54>>0]=1;s[t+44>>2]=4;break}if((n|0)==1)s[t+32>>2]=1}while(0);return}function nn(e,t,i,n){e=e|0;t=t|0;i=i|0;n=n|0;var a=0;do if((e|0)==(s[t+8>>2]|0)){e=t+16|0;a=s[e>>2]|0;if(!a){s[e>>2]=i;s[t+24>>2]=n;s[t+36>>2]=1;break}if((a|0)!=(i|0)){n=t+36|0;s[n>>2]=(s[n>>2]|0)+1;s[t+24>>2]=2;r[t+54>>0]=1;break}e=t+24|0;if((s[e>>2]|0)==2)s[e>>2]=n}while(0);return}function sn(e){e=e|0;return}function an(e){e=e|0;Hr(e);return}function on(e){e=e|0;return 34734}function fn(e){e=e|0;Hr(e);return}function hn(e,t,i){e=e|0;t=t|0;i=i|0;return(e|0)==(t|0)|0}function cn(e){e=e|0;Hr(e);return}function ln(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,n=0,a=0,o=0,f=0,h=0;h=l;l=l+64|0;f=h;s[i>>2]=s[s[i>>2]>>2];if(!((e|0)==(t|0)|(t|0)==368))if(((t|0)!=0?(r=Yr(t,328)|0,(r|0)!=0):0)?(s[r+8>>2]&~s[e+8>>2]|0)==0:0){t=s[e+12>>2]|0;e=r+12|0;if(!((t|0)==360?1:(t|0)==(s[e>>2]|0)))if((((t|0)!=0?(a=Yr(t,240)|0,(a|0)!=0):0)?(n=s[e>>2]|0,(n|0)!=0):0)?(o=Yr(n,240)|0,(o|0)!=0):0){e=f;t=e+56|0;do{s[e>>2]=0;e=e+4|0}while((e|0)<(t|0));s[f>>2]=o;s[f+8>>2]=a;s[f+12>>2]=-1;s[f+48>>2]=1;Qs[s[(s[o>>2]|0)+28>>2]&3](o,f,s[i>>2]|0,1);if((s[f+24>>2]|0)==1){s[i>>2]=s[f+16>>2];e=1}else e=0}else e=0;else e=1}else e=0;else e=1;l=h;return e|0}function un(e){e=e|0;Hr(e);return}function dn(e,t,i,a,o,f){e=e|0;t=t|0;i=i|0;a=a|0;o=o|0;f=f|0;var h=0,c=0,l=0,u=0,d=0,p=0,b=0,m=0,w=0;if((e|0)==(s[t+8>>2]|0))Xr(t,i,a,o);else{p=t+52|0;w=n[p>>1]|0;b=w&255;m=t+53|0;w=(w&65535)>>>8&255;d=s[e+12>>2]|0;c=e+16+(d<<3)|0;r[p>>0]=0;r[m>>0]=0;pn(e+16|0,t,i,a,o,f);e:do if((d|0)>1){l=t+24|0;u=e+8|0;d=t+54|0;h=e+24|0;do{if(r[d>>0]|0)break e;e=n[p>>1]|0;if(!((e&255)<<24>>24)){if((e&65535)>=256?(s[u>>2]&1|0)==0:0)break e}else{if((s[l>>2]|0)==1)break e;if(!(s[u>>2]&2))break e}r[p>>0]=0;r[m>>0]=0;pn(h,t,i,a,o,f);h=h+8|0}while(h>>>0>>0)}while(0);r[p>>0]=b;r[m>>0]=w}return}function pn(e,t,i,r,n,a){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;a=a|0;var o=0,f=0;f=s[e+4>>2]|0;o=f>>8;if(f&1)o=s[(s[r>>2]|0)+o>>2]|0;e=s[e>>2]|0;Xs[s[(s[e>>2]|0)+20>>2]&3](e,t,i,r+o|0,f&2|0?n:2,a);return}function bn(e,t,i,n,a){e=e|0;t=t|0;i=i|0;n=n|0;a=a|0;var o=0,f=0,h=0,c=0,l=0,u=0,d=0,p=0,b=0,m=0;e:do if((e|0)==(s[t+8>>2]|0)){if((s[t+4>>2]|0)==(i|0)?(o=t+28|0,(s[o>>2]|0)!=1):0)s[o>>2]=n}else{if((e|0)!=(s[t>>2]|0)){m=s[e+12>>2]|0;h=e+16+(m<<3)|0;mn(e+16|0,t,i,n,a);o=e+24|0;if((m|0)<=1)break;e=s[e+8>>2]|0;if((e&2|0)==0?(c=t+36|0,(s[c>>2]|0)!=1):0){if(!(e&1)){e=t+54|0;while(1){if(r[e>>0]|0)break e;if((s[c>>2]|0)==1)break e;mn(o,t,i,n,a);o=o+8|0;if(o>>>0>=h>>>0)break e}}e=t+24|0;f=t+54|0;while(1){if(r[f>>0]|0)break e;if((s[c>>2]|0)==1?(s[e>>2]|0)==1:0)break e;mn(o,t,i,n,a);o=o+8|0;if(o>>>0>=h>>>0)break e}}e=t+54|0;while(1){if(r[e>>0]|0)break e;mn(o,t,i,n,a);o=o+8|0;if(o>>>0>=h>>>0)break e}}if((s[t+16>>2]|0)!=(i|0)?(m=t+20|0,(s[m>>2]|0)!=(i|0)):0){s[t+32>>2]=n;b=t+44|0;if((s[b>>2]|0)==4)break;h=e+16+(s[e+12>>2]<<3)|0;c=t+52|0;n=t+53|0;d=t+54|0;l=e+8|0;p=t+24|0;u=0;o=0;f=e+16|0;t:while(1){if(f>>>0>=h>>>0){e=20;break}r[c>>0]=0;r[n>>0]=0;pn(f,t,i,i,1,a);if(r[d>>0]|0){e=20;break}do if(r[n>>0]|0){if(!(r[c>>0]|0))if(!(s[l>>2]&1)){o=1;e=20;break t}else{e=u;o=1;break}if((s[p>>2]|0)==1){e=25;break t}if(!(s[l>>2]&2)){e=25;break t}else{e=1;o=1}}else e=u;while(0);u=e;f=f+8|0}do if((e|0)==20){if((!u?(s[m>>2]=i,i=t+40|0,s[i>>2]=(s[i>>2]|0)+1,(s[t+36>>2]|0)==1):0)?(s[p>>2]|0)==2:0){r[d>>0]=1;if(o){e=25;break}else{o=4;break}}if(o)e=25;else o=4}while(0);if((e|0)==25)o=3;s[b>>2]=o;break}if((n|0)==1)s[t+32>>2]=1}while(0);return}function mn(e,t,i,r,n){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;var a=0,o=0;o=s[e+4>>2]|0;a=o>>8;if(o&1)a=s[(s[i>>2]|0)+a>>2]|0;e=s[e>>2]|0;Gs[s[(s[e>>2]|0)+24>>2]&3](e,t,i+a|0,o&2|0?r:2,n);return}function wn(e,t,i,n){e=e|0;t=t|0;i=i|0;n=n|0;var a=0,o=0;e:do if((e|0)==(s[t+8>>2]|0)){e=t+16|0;a=s[e>>2]|0;if(!a){s[e>>2]=i;s[t+24>>2]=n;s[t+36>>2]=1;break}if((a|0)!=(i|0)){n=t+36|0;s[n>>2]=(s[n>>2]|0)+1;s[t+24>>2]=2;r[t+54>>0]=1;break}e=t+24|0;if((s[e>>2]|0)==2)s[e>>2]=n}else{o=s[e+12>>2]|0;a=e+16+(o<<3)|0;gn(e+16|0,t,i,n);if((o|0)>1){o=t+54|0;e=e+24|0;do{gn(e,t,i,n);if(r[o>>0]|0)break e;e=e+8|0}while(e>>>0>>0)}}while(0);return}function gn(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var n=0,a=0;a=s[e+4>>2]|0;n=a>>8;if(a&1)n=s[(s[i>>2]|0)+n>>2]|0;e=s[e>>2]|0;Qs[s[(s[e>>2]|0)+28>>2]&3](e,t,i+n|0,a&2|0?r:2);return}function vn(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,n=0;n=l;l=l+16|0;r=n;s[r>>2]=s[i>>2];e=Hs[s[(s[e>>2]|0)+16>>2]&7](e,t,r)|0;if(e)s[i>>2]=s[r>>2];l=n;return e&1|0}function _n(e){e=e|0;if(!e)e=0;else e=(Yr(e,328)|0)!=0;return e&1|0}function yn(){}function kn(e,t,i){e=e|0;t=t|0;i=i|0;var n=0,a=0,o=0,f=0;n=e+i|0;if((i|0)>=20){t=t&255;o=e&3;f=t|t<<8|t<<16|t<<24;a=n&~3;if(o){o=e+4-o|0;while((e|0)<(o|0)){r[e>>0]=t;e=e+1|0}}while((e|0)<(a|0)){s[e>>2]=f;e=e+4|0}}while((e|0)<(n|0)){r[e>>0]=t;e=e+1|0}return e-i|0}function En(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;i=e+i>>>0;return(I=t+r+(i>>>0>>0|0)>>>0,i|0)|0}function An(e,t,i){e=e|0;t=t|0;i=i|0;if((i|0)<32){I=t>>i;return e>>>i|(t&(1<>i-32|0}function Sn(e,t,i){e=e|0;t=t|0;i=i|0;if((i|0)<32){I=t>>>i;return e>>>i|(t&(1<>>i-32|0}function Mn(e,t,i){e=e|0;t=t|0;i=i|0;var n=0;if((i|0)>=4096)return Te(e|0,t|0,i|0)|0;n=e|0;if((e&3)==(t&3)){while(e&3){if(!i)return n|0;r[e>>0]=r[t>>0]|0;e=e+1|0;t=t+1|0;i=i-1|0}while((i|0)>=4){s[e>>2]=s[t>>2];e=e+4|0;t=t+4|0;i=i-4|0}}while((i|0)>0){r[e>>0]=r[t>>0]|0;e=e+1|0;t=t+1|0;i=i-1|0}return n|0}function Tn(e,t,i){e=e|0;t=t|0;i=i|0;var n=0;if((t|0)<(e|0)&(e|0)<(t+i|0)){n=e;t=t+i|0;e=e+i|0;while((i|0)>0){e=e-1|0;t=t-1|0;i=i-1|0;r[e>>0]=r[t>>0]|0}e=n}else Mn(e,t,i)|0;return e|0}function Rn(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;r=t-r-(i>>>0>e>>>0|0)>>>0;return(I=r,e-i>>>0|0)|0}function xn(e,t,i){e=e|0;t=t|0;i=i|0;if((i|0)<32){I=t<>>32-i;return e<>0]|0;if((t|0)<8)return t|0;t=r[b+(e>>8&255)>>0]|0;if((t|0)<8)return t+8|0;t=r[b+(e>>16&255)>>0]|0;if((t|0)<8)return t+16|0;return(r[b+(e>>>24)>>0]|0)+24|0}function In(e,t){e=e|0;t=t|0;var i=0,r=0,n=0,s=0;s=e&65535;n=t&65535;i=te(n,s)|0;r=e>>>16;e=(i>>>16)+(te(n,r)|0)|0;n=t>>>16;t=te(n,s)|0;return(I=(e>>>16)+(te(n,r)|0)+(((e&65535)+t|0)>>>16)|0,e+t<<16|i&65535|0)|0}function Pn(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var n=0,s=0,a=0,o=0,f=0,h=0;h=t>>31|((t|0)<0?-1:0)<<1;f=((t|0)<0?-1:0)>>31|((t|0)<0?-1:0)<<1;s=r>>31|((r|0)<0?-1:0)<<1;n=((r|0)<0?-1:0)>>31|((r|0)<0?-1:0)<<1;o=Rn(h^e|0,f^t|0,h|0,f|0)|0;a=I;e=s^h;t=n^f;return Rn((Bn(o,a,Rn(s^i|0,n^r|0,s|0,n|0)|0,I,0)|0)^e|0,I^t|0,e|0,t|0)|0}function On(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var n=0,a=0,o=0,f=0,h=0,c=0;n=l;l=l+16|0;f=n|0;o=t>>31|((t|0)<0?-1:0)<<1;a=((t|0)<0?-1:0)>>31|((t|0)<0?-1:0)<<1;c=r>>31|((r|0)<0?-1:0)<<1;h=((r|0)<0?-1:0)>>31|((r|0)<0?-1:0)<<1;e=Rn(o^e|0,a^t|0,o|0,a|0)|0;t=I;Bn(e,t,Rn(c^i|0,h^r|0,c|0,h|0)|0,I,f)|0;r=Rn(s[f>>2]^o|0,s[f+4>>2]^a|0,o|0,a|0)|0;i=I;l=n;return(I=i,r)|0}function Nn(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var n=0,s=0;n=e;s=i;i=In(n,s)|0;e=I;return(I=(te(t,s)|0)+(te(r,n)|0)+e|e&0,i|0|0)|0}function Dn(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;return Bn(e,t,i,r,0)|0}function Ln(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var n=0,a=0;a=l;l=l+16|0;n=a|0;Bn(e,t,i,r,n)|0;l=a;return(I=s[n+4>>2]|0,s[n>>2]|0)|0}function Bn(e,t,i,r,n){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;var a=0,o=0,f=0,h=0,c=0,l=0,u=0,d=0,p=0,b=0;l=e;h=t;c=h;o=i;d=r;f=d;if(!c){a=(n|0)!=0;if(!f){if(a){s[n>>2]=(l>>>0)%(o>>>0);s[n+4>>2]=0}d=0;n=(l>>>0)/(o>>>0)>>>0;return(I=d,n)|0}else{if(!a){d=0;n=0;return(I=d,n)|0}s[n>>2]=e|0;s[n+4>>2]=t&0;d=0;n=0;return(I=d,n)|0}}a=(f|0)==0;do if(o){if(!a){a=(re(f|0)|0)-(re(c|0)|0)|0;if(a>>>0<=31){u=a+1|0;f=31-a|0;t=a-31>>31;o=u;e=l>>>(u>>>0)&t|c<>>(u>>>0)&t;a=0;f=l<>2]=e|0;s[n+4>>2]=h|t&0;d=0;n=0;return(I=d,n)|0}a=o-1|0;if(a&o|0){f=(re(o|0)|0)+33-(re(c|0)|0)|0;b=64-f|0;u=32-f|0;h=u>>31;p=f-32|0;t=p>>31;o=f;e=u-1>>31&c>>>(p>>>0)|(c<>>(f>>>0))&t;t=t&c>>>(f>>>0);a=l<>>(p>>>0))&h|l<>31;break}if(n|0){s[n>>2]=a&l;s[n+4>>2]=0}if((o|0)==1){p=h|t&0;b=e|0|0;return(I=p,b)|0}else{b=Cn(o|0)|0;p=c>>>(b>>>0)|0;b=c<<32-b|l>>>(b>>>0)|0;return(I=p,b)|0}}else{if(a){if(n|0){s[n>>2]=(c>>>0)%(o>>>0);s[n+4>>2]=0}p=0;b=(c>>>0)/(o>>>0)>>>0;return(I=p,b)|0}if(!l){if(n|0){s[n>>2]=0;s[n+4>>2]=(c>>>0)%(f>>>0)}p=0;b=(c>>>0)/(f>>>0)>>>0;return(I=p,b)|0}a=f-1|0;if(!(a&f)){if(n|0){s[n>>2]=e|0;s[n+4>>2]=a&c|t&0}p=0;b=c>>>((Cn(f|0)|0)>>>0);return(I=p,b)|0}a=(re(f|0)|0)-(re(c|0)|0)|0;if(a>>>0<=30){t=a+1|0;f=31-a|0;o=t;e=c<>>(t>>>0);t=c>>>(t>>>0);a=0;f=l<>2]=e|0;s[n+4>>2]=h|t&0;p=0;b=0;return(I=p,b)|0}while(0);if(!o){c=f;h=0;f=0}else{u=i|0|0;l=d|r&0;c=En(u|0,l|0,-1,-1)|0;i=I;h=f;f=0;do{r=h;h=a>>>31|h<<1;a=f|a<<1;r=e<<1|r>>>31|0;d=e>>>31|t<<1|0;Rn(c|0,i|0,r|0,d|0)|0;b=I;p=b>>31|((b|0)<0?-1:0)<<1;f=p&1;e=Rn(r|0,d|0,p&u|0,(((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1)&l|0)|0;t=I;o=o-1|0}while((o|0)!=0);c=h;h=0}o=0;if(n|0){s[n>>2]=e;s[n+4>>2]=t}p=(a|0)>>>31|(c|o)<<1|(o<<1|a>>>31)&0|h;b=(a<<1|0>>>31)&-2|f;return(I=p,b)|0}function Un(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;return Hs[e&7](t|0,i|0,r|0)|0}function jn(e,t,i,r,n,s){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;s=s|0;Gs[e&3](t|0,i|0,r|0,n|0,s|0)}function Fn(e,t){e=e|0;t=t|0;Vs[e&15](t|0)}function zn(e,t,i,r,n,s,a){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;s=s|0;a=a|0;return Ws[e&1](t|0,i|0,r|0,n|0,s|0,a|0)|0}function qn(e,t){e=e|0;t=t|0;return Ks[e&3](t|0)|0}function Hn(e,t,i,r,n,s,a,o){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;s=s|0;a=a|0;o=o|0;Zs[e&1](t|0,i|0,r|0,n|0,s|0,a|0,o|0)}function Gn(e){e=e|0;Ys[e&0]()}function Vn(e,t,i,r,n){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;return $s[e&3](t|0,i|0,r|0,n|0)|0}function Wn(e,t,i,r,n,s,a){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;s=s|0;a=a|0;Xs[e&3](t|0,i|0,r|0,n|0,s|0,a|0)}function Kn(e,t,i,r,n,s){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;s=s|0;return Js[e&3](t|0,i|0,r|0,n|0,s|0)|0}function Zn(e,t,i,r,n){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;Qs[e&3](t|0,i|0,r|0,n|0)}function Yn(e,t,i){e=e|0;t=t|0;i=i|0;ne(0);return 0}function $n(e,t,i,r,n){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;ne(1)}function Xn(e){e=e|0;ne(2)}function Jn(e,t,i,r,n,s){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;s=s|0;ne(3);return 0}function Qn(e){e=e|0;ne(4);return 0}function es(e,t,i,r,n,s,a){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;s=s|0;a=a|0;ne(5)}function ts(){ne(6)}function is(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;ne(7);return 0}function rs(e,t,i,r,n,s){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;s=s|0;ne(8)}function ns(e,t,i,r,n){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;ne(9);return 0}function ss(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;ne(10)}function as(e){e=e|0;var t=0;t=l;l=l+e|0;l=l+15&-16;return t|0}function os(){return l|0}function fs(e){e=e|0;l=e}function hs(e,t){e=e|0;t=t|0;l=e;u=t}function cs(e,t){e=e|0;t=t|0;if(!m){m=e;w=t}}function ls(e){e=e|0; -r[d>>0]=r[e>>0];r[d+1>>0]=r[e+1>>0];r[d+2>>0]=r[e+2>>0];r[d+3>>0]=r[e+3>>0]}function us(e){e=e|0;r[d>>0]=r[e>>0];r[d+1>>0]=r[e+1>>0];r[d+2>>0]=r[e+2>>0];r[d+3>>0]=r[e+3>>0];r[d+4>>0]=r[e+4>>0];r[d+5>>0]=r[e+5>>0];r[d+6>>0]=r[e+6>>0];r[d+7>>0]=r[e+7>>0]}function ds(e){e=e|0;I=e}function ps(){return I|0}function bs(e,t,i,r,a){e=e|0;t=t|0;i=i|0;r=r|0;a=a|0;var f=0,h=0;if((i|0)>0){f=0;do{h=f<<1;n[t+(f<<1)>>1]=n[t+((h|1)<<1)>>1]<<8|o[t+(h<<1)>>1];f=f+1|0}while((f|0)!=(i|0))}return Ls(s[e+12>>2]|0,t,a,r)|0}function ms(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var a=0,f=0,h=0;a=e+20|0;f=Rs(s[e+16>>2]|0,t,i,s[a>>2]|0)|0;i=s[e+4>>2]|0;if((te(i,f)|0)<=0)return f|0;a=s[a>>2]|0;i=te(f,i)|0;t=0;do{h=a+(t<<1)|0;e=t<<1;n[r+(e<<1)>>1]=(o[h>>1]|0)&255;n[r+((e|1)<<1)>>1]=(o[h>>1]|0)>>>8;t=t+1|0}while((t|0)!=(i|0));return f|0}function ws(e){e=e|0;return 8}function gs(e){e=e|0;if(!e)return;Hr(s[e+12>>2]|0);Hr(s[e+16>>2]|0);Hr(e);return}function vs(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,n=0,a=0,o=0,f=0,h=0,c=0,u=0;u=l;l=l+16|0;c=u+4|0;h=u;while(1){f=qr(24)|0;if(f|0)break;r=s[8868]|0;s[8868]=r+0;if(!r){o=5;break}Ys[r&0]()}if((o|0)==5){u=dt(4)|0;s[u>>2]=23152;Zt(u|0,296,6)}a=s[e>>2]|0;n=s[t>>2]|0;t=s[i>>2]|0;s[f>>2]=t;s[f+4>>2]=n;s[f+8>>2]=a;e=n*11520|0;e=e>>>0>2147483647?-1:e<<1;e=(e|0)==0?1:e;while(1){r=qr(e)|0;if(r|0){o=11;break}r=s[8868]|0;s[8868]=r+0;if(!r){o=10;break}Ys[r&0]()}if((o|0)==10){u=dt(4)|0;s[u>>2]=23152;Zt(u|0,296,6)}else if((o|0)==11){s[f+20>>2]=r;s[f+12>>2]=Is(a,n,t,c)|0;s[f+16>>2]=Ms(a,n,h)|0;l=u;return f|0}return 0}function _s(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var n=0,a=0,o=0,f=0;n=l;l=l+16|0;f=n+8|0;o=n+4|0;a=n;s[f>>2]=t;s[o>>2]=i;s[a>>2]=r;e=Hs[e&7](f,o,a)|0;l=n;return e|0}function ys(e,t,i,r,n,a){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;a=a|0;var o=0,f=0;o=s[e>>2]|0;f=s[e+4>>2]|0;e=t+(f>>1)|0;if(f&1)o=s[(s[e>>2]|0)+o>>2]|0;return Js[o&3](e,i,r,n,a)|0}function ks(e,t,i,r,n){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;var a=0,o=0;a=s[e>>2]|0;o=s[e+4>>2]|0;e=t+(o>>1)|0;if(o&1)a=s[(s[e>>2]|0)+a>>2]|0;return $s[a&3](e,i,r,n)|0}function Es(){var e=0,t=0;ot(8,16,32,0,27863,2,27866,0,27866,0,27766,27868,11);Ue(8,4,488,27871,1,4);while(1){e=qr(8)|0;if(e|0)break;e=s[8868]|0;s[8868]=e+0;if(!e){t=5;break}Ys[e&0]()}if((t|0)==5){t=dt(4)|0;s[t>>2]=23152;Zt(t|0,296,6)}s[e>>2]=1;s[e+4>>2]=0;Ut(8,27784,6,504,27877,1,e|0,0);while(1){e=qr(8)|0;if(e|0){t=11;break}e=s[8868]|0;s[8868]=e+0;if(!e){t=10;break}Ys[e&0]()}if((t|0)==10){t=dt(4)|0;s[t>>2]=23152;Zt(t|0,296,6)}else if((t|0)==11){s[e>>2]=2;s[e+4>>2]=0;Ut(8,27792,5,528,27885,2,e|0,0);return}}function As(e,t,i,r,n,s,a,o,f,c,l){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;s=+s;a=+a;o=o|0;f=f|0;c=c|0;l=l|0;var u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0;if(s==0&a==0){if((t|0)==(e|0))return;Tn(e|0,t|0,n<<2|0)|0;return}g=(i|0)>15?i:15;M=(r|0)>15?r:15;w=+h[548+(o*12|0)>>2]*s;b=+h[548+(o*12|0)+4>>2]*s;m=+h[548+(o*12|0)+8>>2]*s;E=+h[548+(f*12|0)>>2]*a;A=+h[548+(f*12|0)+4>>2]*a;S=+h[548+(f*12|0)+8>>2]*a;v=1-M|0;_=0-M|0;y=~M;k=-2-M|0;i=s==a&(g|0)==(M|0)&(o|0)==(f|0)?0:l;r=0;s=+h[t+(v<<2)>>2];u=+h[t+(_<<2)>>2];d=+h[t+(y<<2)>>2];p=+h[t+(k<<2)>>2];while(1){if((r|0)>=(i|0))break;R=+h[t+(r-M+2<<2)>>2];T=+h[c+(r<<2)>>2];T=T*T;x=1-T;f=r-g|0;h[e+(r<<2)>>2]=+h[t+(r<<2)>>2]+x*w*+h[t+(f<<2)>>2]+x*b*(+h[t+(f+1<<2)>>2]+ +h[t+(f+-1<<2)>>2])+x*m*(+h[t+(f+2<<2)>>2]+ +h[t+(f+-2<<2)>>2])+T*E*u+T*A*(s+d)+T*S*(R+p);T=s;r=r+1|0;s=R;p=d;d=u;u=T}if(a==0){if((t|0)==(e|0))return;Tn(e+(i<<2)|0,t+(i<<2)|0,n-i<<2|0)|0;return}else{o=e+(r<<2)|0;l=t+(r<<2)|0;i=n-r|0;r=0;p=+h[l+(v<<2)>>2];d=+h[l+(_<<2)>>2];u=+h[l+(y<<2)>>2];s=+h[l+(k<<2)>>2];while(1){if((r|0)>=(i|0))break;R=+h[l+(r-M+2<<2)>>2];h[o+(r<<2)>>2]=+h[l+(r<<2)>>2]+d*E+(p+u)*A+(R+s)*S;x=p;r=r+1|0;p=R;s=u;u=d;d=x}return}}function Ss(e){e=e|0;if((e+7|0)>>>0>7){e=27924;return e|0}e=s[584+(0-e<<2)>>2]|0;return e|0}function Ms(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,a=0,o=0,f=0,h=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0;g=l;l=l+16|0;m=g+8|0;p=g;e:do if((e|0)<16e3)if((e|0)<12e3)switch(e|0){case 8e3:{o=2;break e}default:break e}else switch(e|0){case 12e3:{o=2;break e}default:break e}else{if((e|0)<24e3)switch(e|0){case 16e3:{o=2;break e}default:break e}if((e|0)<48e3)switch(e|0){case 24e3:{o=2;break e}default:break e}else switch(e|0){case 48e3:{o=2;break e}default:break e}}while(0);if((o|0)==2?(t+-1|0)>>>0<2:0){d=t*96|0;w=qr((t*8672|0)+88+d+9304|0)|0;if(!w){if(!i){i=0;l=g;return i|0}s[i>>2]=-7;i=0;l=g;return i|0}e:do if((e|0)<16e3)if((e|0)<12e3)switch(e|0){case 8e3:{o=9;break e}default:{r=-1;break e}}else switch(e|0){case 12e3:{o=9;break e}default:{r=-1;break e}}else{if((e|0)<24e3)switch(e|0){case 16e3:{o=9;break e}default:{r=-1;break e}}if((e|0)<48e3)switch(e|0){case 24e3:{o=9;break e}default:{r=-1;break e}}else switch(e|0){case 48e3:{o=9;break e}default:{r=-1;break e}}}while(0);do if((o|0)==9)if((t+-1|0)>>>0<2){kn(w|0,0,(t*8672|0)+88+d+9304|0)|0;s[w+4>>2]=88;s[w>>2]=8632;r=w+88|0;b=w+8632|0;s[w+8>>2]=t;s[w+48>>2]=t;s[w+12>>2]=e;s[w+24>>2]=e;s[w+16>>2]=t;u=0;while(1){if((u|0)==2)break;a=r+(u*4260|0)|0;kn(a|0,0,4260)|0;s[r+(u*4260|0)+2376>>2]=1;s[a>>2]=65536;a=r+(u*4260|0)+2340|0;f=s[a>>2]|0;o=32767/(f+1|0)|0;h=0;c=0;while(1){if((c|0)>=(f|0))break;v=h+o|0;n[r+(u*4260|0)+4052+(c<<1)>>1]=v;f=s[a>>2]|0;h=v;c=c+1|0}s[r+(u*4260|0)+4148>>2]=0;s[r+(u*4260|0)+4152>>2]=3176576;s[r+(u*4260|0)+4168>>2]=s[r+(u*4260|0)+2328>>2]<<7;s[r+(u*4260|0)+4240>>2]=65536;s[r+(u*4260|0)+4244>>2]=65536;s[r+(u*4260|0)+4256>>2]=20;s[r+(u*4260|0)+4252>>2]=2;u=u+1|0}v=w+8608|0;s[v>>2]=0;s[v+4>>2]=0;s[v+8>>2]=0;s[w+8628>>2]=0;if(t>>>0<=2){kn(b|0,0,(t*8672|0)+88+d+672|0)|0;s[b>>2]=5304;s[w+8636>>2]=120;s[w+8640>>2]=t;s[w+8644>>2]=t;a=w+8648|0;s[a>>2]=1;s[w+8652>>2]=0;s[w+8656>>2]=21;s[w+8660>>2]=1;s[w+8664>>2]=0;ni(b,4028,p);e:do if((e|0)<16e3)if((e|0)<12e3){switch(e|0){case 8e3:break;default:{o=22;break e}}r=6;o=23;break}else{switch(e|0){case 12e3:break;default:{o=22;break e}}r=4;o=23;break}else{if((e|0)<24e3){switch(e|0){case 16e3:break;default:{o=22;break e}}r=3;o=23;break}if((e|0)>=48e3)switch(e|0){case 48e3:{r=1;o=23;break e}default:{o=22;break e}}switch(e|0){case 24e3:break;default:{o=22;break e}}r=2;o=23}while(0);if((o|0)==22){s[a>>2]=0;r=-3;break}else if((o|0)==23){s[a>>2]=r;s[m>>2]=0;ni(b,10016,m);s[w+60>>2]=0;s[w+64>>2]=(e|0)/400|0;s[w+44>>2]=0;r=0;break}}else r=-3}else r=-1;while(0);if(i|0)s[i>>2]=r;if(!r){v=w;l=g;return v|0}Hr(w);v=0;l=g;return v|0}if(!i){v=0;l=g;return v|0}s[i>>2]=-1;v=0;l=g;return v|0}function Ts(e,t,i,r,o,f){e=e|0;t=t|0;i=i|0;r=r|0;o=o|0;f=f|0;var c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0,I=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,q=0,H=0,G=0,V=0,W=0,K=0,Z=0,Y=0,$=0,X=0,Q=0,ee=0,ie=0,ne=0,se=0,ae=0,oe=0;oe=l;l=l+160|0;$=oe+80|0;Y=oe+72|0;Z=oe+64|0;W=oe+56|0;H=oe+48|0;z=oe+40|0;F=oe+32|0;j=oe+24|0;U=oe+16|0;B=oe+8|0;L=oe;se=oe+96|0;T=oe+92|0;ae=oe+88|0;q=oe+144|0;V=oe+84|0;s[ae>>2]=0;M=e+(s[e+4>>2]|0)|0;K=e+(s[e>>2]|0)|0;ie=e+12|0;c=s[ie>>2]|0;G=(c|0)/50|0;S=G>>1;ee=G>>2;ne=G>>3;if((ne|0)>(o|0)){e=-2;l=oe;return e|0}c=((c|0)/25|0)*3|0;c=(c|0)>(o|0)?o:c;do if((i|0)>=2)if(t){p=s[e+64>>2]|0;d=s[e+56>>2]|0;s[se>>2]=t;s[se+4>>2]=i;s[se+8>>2]=0;s[se+12>>2]=0;s[se+16>>2]=0;w=se+20|0;s[w>>2]=9;g=se+24|0;s[g>>2]=0;v=se+28|0;s[v>>2]=128;s[g>>2]=1;E=a[t>>0]|0;_=se+40|0;s[_>>2]=E;A=E>>>1^127;y=se+32|0;s[y>>2]=A;s[se+44>>2]=0;u=128;o=9;m=1;while(1){if(u>>>0>=8388609)break;o=o+8|0;s[w>>2]=o;u=u<<8;s[v>>2]=u;if(m>>>0>>0){Q=m+1|0;s[g>>2]=Q;k=a[t+m>>0]|0;m=Q}else k=0;s[_>>2]=k;Q=((E<<8|k)>>>1&255|A<<8&2147483392)^255;s[y>>2]=Q;E=k;A=Q}o=s[e+60>>2]|0;if((o|0)>0){o=(o|0)==1002;if((d|0)!=1002){if(!o){o=t;u=c;C=27;break}I=te(ee,s[e+8>>2]|0)|0;Q=Ne()|0;X=p;P=0;O=1;break}if(!o?(s[e+68>>2]|0)==0:0){X=te(ee,s[e+8>>2]|0)|0;Q=Ne()|0;P=l;l=l+((1*(X<<2)|0)+15&-16)|0;Ts(e,0,0,P,(ee|0)<(p|0)?ee:p,0)|0;X=p;d=1002;I=1;O=1}else{o=t;u=c;d=1002;C=27}}else{o=t;u=c;C=27}}else C=10;else{C=s[e+64>>2]|0;c=(c|0)<(C|0)?c:C;C=10}while(0);do if((C|0)==10){d=s[e+60>>2]|0;if(!d){o=e+8|0;u=0;while(1){if((u|0)>=(te(c,s[o>>2]|0)|0))break;h[r+(u<<2)>>2]=0;u=u+1|0}l=oe;return c|0}if((c|0)<=(G|0)){if((c|0)>=(G|0)){o=0;u=c;p=c;C=27;break}if((c|0)>(S|0)){o=0;u=c;p=S;C=27;break}if((d|0)==1e3){o=0;u=c;p=c;d=1e3;C=27;break}o=0;u=c;p=(c|0)>(ee|0)&(c|0)<(S|0)?ee:c;C=27;break}p=e+8|0;o=r;d=c;while(1){u=Ts(e,0,0,o,(d|0)<(G|0)?d:G,0)|0;if((u|0)<0){c=u;C=158;break}d=d-u|0;o=o+((te(u,s[p>>2]|0)|0)<<2)|0;if((d|0)<=0){C=158;break}}if((C|0)==158){l=oe;return c|0}}while(0);if((C|0)==27){t=o;c=u;Q=Ne()|0;X=p;P=0;I=1;O=0}e:do if((X|0)>(c|0))c=-1;else{if((d|0)==1002){T=l;l=l+16|0;d=1002}else{_=e+8|0;c=s[_>>2]|0;if((S|0)>(X|0)){S=(te(S,c)|0)<<1;v=l;l=l+((1*S|0)+15&-16)|0}else{S=(te(X,c)|0)<<1;v=l;l=l+((1*S|0)+15&-16)|0}if((s[e+60>>2]|0)==1002){w=0;while(1){if((w|0)==2)break;c=M+(w*4260|0)|0;kn(c|0,0,4260)|0;s[M+(w*4260|0)+2376>>2]=1;s[c>>2]=65536;c=M+(w*4260|0)+2340|0;u=s[c>>2]|0;o=32767/(u+1|0)|0;p=0;m=0;while(1){if((m|0)>=(u|0))break;S=p+o|0;n[M+(w*4260|0)+4052+(m<<1)>>1]=S;u=s[c>>2]|0;p=S;m=m+1|0}s[M+(w*4260|0)+4148>>2]=0;s[M+(w*4260|0)+4152>>2]=3176576;s[M+(w*4260|0)+4168>>2]=s[M+(w*4260|0)+2328>>2]<<7;s[M+(w*4260|0)+4240>>2]=65536;s[M+(w*4260|0)+4244>>2]=65536;s[M+(w*4260|0)+4256>>2]=20;s[M+(w*4260|0)+4252>>2]=2;w=w+1|0}S=M+8520|0;s[S>>2]=0;s[S+4>>2]=0;s[S+8>>2]=0;s[M+8540>>2]=0}S=(X*1e3|0)/(s[ie>>2]|0)|0;s[e+32>>2]=(S|0)<10?10:S;if(!t)p=1;else{s[e+20>>2]=s[e+48>>2];t:do if((d|0)==1e3)switch(s[e+52>>2]|0){case 1101:{s[e+28>>2]=8e3;break t}case 1102:{s[e+28>>2]=12e3;break t}case 1103:{s[e+28>>2]=16e3;break t}default:{s[e+28>>2]=16e3;break t}}else s[e+28>>2]=16e3;while(0);p=f<<1}u=e+16|0;m=(p|0)==0;w=0;g=v;while(1){t:do if(!(Pi(M,u,p,(w|0)==0&1,se,g,T)|0))c=s[_>>2]|0;else{if(m){c=-3;break e}s[T>>2]=X;o=0;while(1){c=s[_>>2]|0;if((o|0)>=(te(X,c)|0))break t;n[g+(o<<1)>>1]=0;o=o+1|0}}while(0);S=s[T>>2]|0;w=w+S|0;g=g+((te(S,c)|0)<<1)|0;if((w|0)>=(X|0)){T=v;break}}}M=(f|0)==0;do if(M)if((d|0)!=1002)if((t|0)!=0?(N=se+20|0,x=s[N>>2]|0,D=se+28|0,R=s[D>>2]|0,C=x+((re(R|0)|0)+-32)+17|0,(C+((s[e+56>>2]|0)==1001?20:0)|0)<=(i<<3|0)):0){E=(d|0)==1001;A=se+32|0;o=s[A>>2]|0;if(E){c=R>>>12;_=o>>>0>>0;y=_&1;if(!_){o=o-c|0;s[A>>2]=o;c=R-c|0}s[D>>2]=c;w=se+40|0;g=se+24|0;v=se+4|0;u=c;c=x;while(1){if(u>>>0>=8388609)break;c=c+8|0;s[N>>2]=c;p=u<<8;s[D>>2]=p;m=s[w>>2]|0;u=s[g>>2]|0;if(u>>>0<(s[v>>2]|0)>>>0){s[g>>2]=u+1;u=a[(s[se>>2]|0)+u>>0]|0}else u=0;s[w>>2]=u;C=((m<<8|u)>>>1&255|o<<8&2147483392)^255;s[A>>2]=C;u=p;o=C}if(_){m=u;p=o}else{c=i;o=0;u=0;p=0;C=90;break}}else{m=R;p=o;c=x;y=1}u=m>>>1;C=p>>>0>>0;o=C&1;if(!C){p=p-u|0;s[A>>2]=p;u=m-u|0}s[D>>2]=u;v=se+40|0;_=se+24|0;k=se+4|0;while(1){if(u>>>0>=8388609)break;c=c+8|0;s[N>>2]=c;u=u<<8;s[D>>2]=u;w=s[v>>2]|0;m=s[_>>2]|0;if(m>>>0<(s[k>>2]|0)>>>0){s[_>>2]=m+1;m=a[(s[se>>2]|0)+m>>0]|0}else m=0;s[v>>2]=m;C=((w<<8|m)>>>1&255|p<<8&2147483392)^255;s[A>>2]=C;p=C}if(E){C=u>>>8;s[se+36>>2]=C;g=(p>>>0)/(C>>>0)|0;x=g+1|0;g=256-(x+(x>>>0>256?255-g|0:0))|0;x=te(C,255-g|0)|0;w=p-x|0;s[A>>2]=w;u=(g|0)==0?u-x|0:C;s[D>>2]=u;while(1){if(u>>>0>=8388609)break;c=c+8|0;s[N>>2]=c;u=u<<8;s[D>>2]=u;m=s[v>>2]|0;p=s[_>>2]|0;if(p>>>0<(s[k>>2]|0)>>>0){s[_>>2]=p+1;p=a[(s[se>>2]|0)+p>>0]|0}else p=0;s[v>>2]=p;C=((m<<8|p)>>>1&255|w<<8&2147483392)^255;s[A>>2]=C;w=C}p=g+2|0}else p=i-(c+((re(u|0)|0)+-32)+7>>3)|0;C=i-p|0;u=(C<<3|0)<(c+((re(u|0)|0)+-32)|0);p=u?0:p;s[k>>2]=(s[k>>2]|0)-p;c=u?0:C;u=u?0:y;C=90}else{c=i;o=0;u=0;p=0;C=91}else{S=i;A=0;u=0;p=0;o=0}else{c=i;o=0;u=0;p=0;C=90}while(0);if((C|0)==90)if((d|0)==1002){S=c;A=o;o=0}else C=91;if((C|0)==91){S=c;A=o;o=17}switch(s[e+52>>2]|0){case 1101:{c=13;break}case 1103:case 1102:{c=17;break}case 1104:{c=19;break}default:c=21}s[L>>2]=c;ni(K,10012,L);s[B>>2]=s[e+48>>2];ni(K,10008,B);E=(u|0)==0;if(!E){B=(te(ee,s[e+8>>2]|0)|0)<<2;c=l;l=l+((1*B|0)+15&-16)|0;if(!A){g=c;k=P;v=0}else{s[U>>2]=0;ni(K,10010,U);si(K,t+S|0,p,c,ee,0,0)|0;s[j>>2]=ae;ni(K,4031,j);g=c;k=P;v=0}}else{c=l;l=l+((1*(I<<2)|0)+15&-16)|0;do if(!((O|0)==0|(d|0)==1002))if((ee|0)<(X|0)){Ts(e,0,0,c,ee,0)|0;break}else{Ts(e,0,0,c,X,0)|0;break}else c=P;while(0);g=l;l=l+16|0;k=c;v=O}s[F>>2]=o;ni(K,10010,F);do if((d|0)==1e3){n[q>>1]=-1;c=e+8|0;o=0;while(1){if((o|0)>=(te(X,s[c>>2]|0)|0))break;h[r+(o<<2)>>2]=0;o=o+1|0}if((s[e+60>>2]|0)==1001){if(!(E|(A|0)==0)?s[e+68>>2]|0:0){c=0;d=1e3;C=116;break}s[H>>2]=0;ni(K,10010,H);si(K,q,2,r,ne,0,0)|0;c=0;d=1e3;C=116}else{c=0;d=1e3;C=116}}else{c=(G|0)<(X|0)?G:X;G=s[e+60>>2]|0;if((d|0)!=(G|0)&(G|0)>0?(s[e+68>>2]|0)==0:0)ni(K,4028,z);c=si(K,M?t:0,S,r,c,se,0)|0;if((d|0)==1002){y=c;_=d}else C=116}while(0);t:do if((C|0)==116){o=e+8|0;u=0;while(1){if((u|0)>=(te(X,s[o>>2]|0)|0)){y=c;_=d;break t}G=r+(u<<2)|0;h[G>>2]=+h[G>>2]+ +(n[T+(u<<1)>>1]|0)*30517578125e-15;u=u+1|0}}while(0);s[W>>2]=V;ni(K,10015,W);w=s[(s[V>>2]|0)+60>>2]|0;t:do if(!E){if(!A){ni(K,4028,Z);s[Y>>2]=0;ni(K,10010,Y);si(K,t+S|0,p,g,ee,0,0)|0;s[$>>2]=ae;ni(K,4031,$);p=s[e+8>>2]|0;m=r+((te(p,X-ne|0)|0)<<2)|0;c=g+((te(p,ne)|0)<<2)|0;o=48e3/(s[ie>>2]|0)|0;u=0;while(1){if((u|0)<(p|0))d=0;else break t;while(1){if((d|0)>=(ne|0))break;b=+h[w+((te(d,o)|0)<<2)>>2];b=b*b;Y=(te(d,p)|0)+u|0;$=m+(Y<<2)|0;h[$>>2]=b*+h[c+(Y<<2)>>2]+(1-b)*+h[$>>2];d=d+1|0}u=u+1|0}}o=e+8|0;u=0;while(1){m=s[o>>2]|0;if((u|0)<(m|0))c=0;else break;while(1){if((c|0)>=(ne|0))break;$=(te(s[o>>2]|0,c)|0)+u|0;s[r+($<<2)>>2]=s[g+($<<2)>>2];c=c+1|0}u=u+1|0}o=te(m,ne)|0;c=g+(o<<2)|0;o=r+(o<<2)|0;u=48e3/(s[ie>>2]|0)|0;d=0;while(1){if((d|0)<(m|0))p=0;else break t;while(1){if((p|0)>=(ne|0))break;b=+h[w+((te(p,u)|0)<<2)>>2];b=b*b;Y=(te(p,m)|0)+d|0;$=o+(Y<<2)|0;h[$>>2]=b*+h[$>>2]+(1-b)*+h[c+(Y<<2)>>2];p=p+1|0}d=d+1|0}}while(0);t:do if(v|0){o=e+8|0;if((X|0)<(ee|0)){d=s[o>>2]|0;c=48e3/(s[ie>>2]|0)|0;o=0;while(1){if((o|0)<(d|0))u=0;else break t;while(1){if((u|0)>=(ne|0))break;b=+h[w+((te(u,c)|0)<<2)>>2];b=b*b;ee=(te(u,d)|0)+o|0;ie=r+(ee<<2)|0;h[ie>>2]=b*+h[ie>>2]+(1-b)*+h[k+(ee<<2)>>2];u=u+1|0}o=o+1|0}}else c=0;while(1){m=s[o>>2]|0;u=te(m,ne)|0;if((c|0)>=(u|0))break;s[r+(c<<2)>>2]=s[k+(c<<2)>>2];c=c+1|0}p=k+(u<<2)|0;d=r+(u<<2)|0;c=48e3/(s[ie>>2]|0)|0;o=0;while(1){if((o|0)<(m|0))u=0;else break t;while(1){if((u|0)>=(ne|0))break;b=+h[w+((te(u,c)|0)<<2)>>2];b=b*b;ee=(te(u,m)|0)+o|0;ie=d+(ee<<2)|0;h[ie>>2]=b*+h[ie>>2]+(1-b)*+h[p+(ee<<2)>>2];u=u+1|0}o=o+1|0}}while(0);c=s[e+40>>2]|0;t:do if(c|0){b=+J(+(+(c|0)*.0006488140788860619*.6931471805599453));c=e+8|0;o=0;while(1){if((o|0)>=(te(X,s[c>>2]|0)|0))break t;ne=r+(o<<2)|0;h[ne>>2]=+h[ne>>2]*b;o=o+1|0}}while(0);if((S|0)<2)c=0;else c=s[se+28>>2]^s[ae>>2];s[e+84>>2]=c;s[e+60>>2]=_;s[e+68>>2]=(A|0)==0&(E^1)&1;c=(y|0)<0?y:X}while(0);qe(Q|0);e=c;l=oe;return e|0}function Rs(e,t,i,o){e=e|0;t=t|0;i=i|0;o=o|0;var f=0,c=0,u=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0,I=0;x=l;l=l+112|0;A=x;E=x+104|0;S=x+8|0;v=(t|0)==0;do if((i|0)>0&(v^1)){m=s[e+12>>2]|0;u=r[t>>0]|0;p=u&255;e:do switch(p&3|0){case 0:{b=1;break}case 3:if((i|0)<2){o=-4;l=x;return o|0}else{c=a[t+1>>0]&63;_=5;break e}default:{c=2;_=5}}while(0);if((_|0)==5)b=c;do if(u<<24>>24>=0)if((u&96)==96)if(!(u&8)){c=(m|0)/100|0;break}else{c=(m|0)/50|0;break}else{c=p>>>3&3;if((c|0)==3){c=(m*60|0)/1e3|0;break}else{c=(m<>>3&3)|0)/400|0;while(0);c=te(b,c)|0;if((c*25|0)<=(m*3|0)&(c|0)>0){k=(c|0)>5760?5760:c;break}else{o=-4;l=x;return o|0}}else k=5760;while(0);M=e+8|0;c=te(k,s[M>>2]|0)|0;T=Ne()|0;R=l;l=l+((1*(c<<2)|0)+15&-16)|0;c=(i|0)==0;e:do if(c|v)if(!((k|0)%((s[e+12>>2]|0)/400|0|0)|0))if(c|v){u=0;do{c=Ts(e,0,0,R+((te(u,s[M>>2]|0)|0)<<2)|0,k-u|0,0)|0;if((c|0)<0){u=c;break e}u=u+c|0}while((u|0)<(k|0));s[e+72>>2]=u}else _=23;else u=-1;else _=23;while(0);e:do if((_|0)==23)if((i|0)>=0){m=r[t>>0]|0;do if(m<<24>>24>=0){_=(m&96)==96;b=_?1001:1e3;if(_)p=(m&16)>>>4|1104;else p=((m&255)>>>5&3)+1101|0;c=s[e+12>>2]|0;if((m&96)==96)if(!(m&8)){v=(c|0)/100|0;break}else{v=(c|0)/50|0;break}else{u=(m&255)>>>3&3;if((u|0)==3){v=(c*60|0)/1e3|0;break}else{v=(c<>>5&3;v=(s[e+12>>2]<<((m&255)>>>3&3)|0)/400|0;p=(p|0)==0?1101:p+1102|0;b=1002}while(0);c=((m&4)>>>2)+1|0;u=rr(t,i,0,E,0,S,A,0)|0;if((u|0)>=0)if((te(u,v)|0)<=(k|0)){m=t+(s[A>>2]|0)|0;s[e+56>>2]=b;s[e+52>>2]=p;s[e+64>>2]=v;s[e+48>>2]=c;c=m;m=0;t=0;while(1){if((m|0)>=(u|0))break;p=S+(m<<1)|0;b=Ts(e,c,n[p>>1]|0,R+((te(t,s[M>>2]|0)|0)<<2)|0,k-t|0,0)|0;if((b|0)<0){u=b;break e}c=c+(n[p>>1]|0)|0;m=m+1|0;t=t+b|0}s[e+72>>2]=t;E=s[M>>2]|0;if((E|0)<1|(t|0)<1)u=t;else{c=te(t,E)|0;u=0;while(1){if((u|0)>=(c|0)){i=0;break}S=R+(u<<2)|0;y=+h[S>>2];i=y>2;A=y<-2&(i^1);h[S>>2]=A|i?A?-2:2:y;u=u+1|0}while(1){if((i|0)==(E|0)){u=t;break e}_=R+(i<<2)|0;k=e+76+(i<<2)|0;f=+h[k>>2];u=0;while(1){if((u|0)>=(t|0))break;c=_+((te(u,E)|0)<<2)|0;w=+h[c>>2];g=w*f;if(g>=0)break;h[c>>2]=w+g*w;u=u+1|0}y=+h[_>>2];m=0;while(1){u=m;while(1){if((u|0)>=(t|0))break;g=+h[_+((te(u,E)|0)<<2)>>2];if(g>1|g<-1)break;u=u+1|0}if((u|0)==(t|0)){f=0;break}g=+h[_+((te(u,E)|0)<<2)>>2];f=+q(+g);p=u;while(1){if((p|0)<=0){v=u;w=f;b=u;break}c=p+-1|0;if(!(g*+h[_+((te(c,E)|0)<<2)>>2]>=0)){v=u;w=f;b=u;break}else p=c}while(1){if((v|0)>=(t|0))break;f=+h[_+((te(v,E)|0)<<2)>>2];if(!(g*f>=0))break;f=+q(+f);A=f>w;S=A?v:b;v=v+1|0;w=A?f:w;b=S}if(!p)u=g*+h[_>>2]>=0;else u=0;f=(w+-1)/(w*w);f=f+f*2.4e-7;f=g>0?-f:f;c=p;while(1){if((c|0)>=(v|0))break;S=_+((te(c,E)|0)<<2)|0;g=+h[S>>2];h[S>>2]=g+f*g*g;c=c+1|0}t:do if(u&(b|0)>1){w=y-+h[_>>2];g=w/+(b|0);c=m;while(1){if((c|0)>=(b|0))break t;C=w-g;S=_+((te(c,E)|0)<<2)|0;I=+h[S>>2]+C;h[S>>2]=I;m=I>1;A=I<-1&(m^1);h[S>>2]=A|m?A?-1:1:I;c=c+1|0;w=C}}while(0);if((v|0)==(t|0))break;else m=v}h[k>>2]=f;i=i+1|0}}}else u=-2}else u=-1;while(0);e:do if((u|0)>0){p=0;while(1){if((p|0)>=(te(u,s[M>>2]|0)|0))break e;f=+h[R+(p<<2)>>2]*32768;if(f>-32768){if(!(f<32767))f=32767}else f=-32768;c=(h[d>>2]=f,s[d>>2]|0);if((c&2130706432)>>>0<=1249902592){c=(c|0)<0;f=c?f+-8388608+8388608:f+8388608+-8388608;if(f==0)f=c?-0:0}n[o+(p<<1)>>1]=~~f;p=p+1|0}}while(0);qe(T|0);o=u;l=x;return o|0}function xs(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,a=0,o=0,f=0,h=0,c=0,u=0,d=0;u=l;l=l+32|0;a=u+8|0;o=u;h=u+16|0;r=s[e+4>>2]|0;f=e+(s[e>>2]|0)|0;s[h>>2]=i;e:do switch(t|0){case 4009:{c=(s[h>>2]|0)+(4-1)&~(4-1);r=s[c>>2]|0;s[h>>2]=c+4;if(!r)t=26;else{s[r>>2]=s[e+52>>2];r=0;t=25}break}case 4031:{c=(s[h>>2]|0)+(4-1)&~(4-1);r=s[c>>2]|0;s[h>>2]=c+4;if(!r)t=26;else{s[r>>2]=s[e+84>>2];r=0;t=25}break}case 4028:{h=e+r|0;c=e+48|0;r=c;t=r+40|0;do{s[r>>2]=0;r=r+4|0}while((r|0)<(t|0));ni(f,4028,o);f=0;while(1){if((f|0)==2)break;r=h+(f*4260|0)|0;kn(r|0,0,4260)|0;s[h+(f*4260|0)+2376>>2]=1;s[r>>2]=65536;r=h+(f*4260|0)+2340|0;i=s[r>>2]|0;t=32767/(i+1|0)|0;a=0;o=0;while(1){if((o|0)>=(i|0))break;d=a+t|0;n[h+(f*4260|0)+4052+(o<<1)>>1]=d;i=s[r>>2]|0;a=d;o=o+1|0}s[h+(f*4260|0)+4148>>2]=0;s[h+(f*4260|0)+4152>>2]=3176576;s[h+(f*4260|0)+4168>>2]=s[h+(f*4260|0)+2328>>2]<<7;s[h+(f*4260|0)+4240>>2]=65536;s[h+(f*4260|0)+4244>>2]=65536;s[h+(f*4260|0)+4256>>2]=20;s[h+(f*4260|0)+4252>>2]=2;f=f+1|0}r=h+8520|0;s[r>>2]=0;s[r+4>>2]=0;s[r+8>>2]=0;s[h+8540>>2]=0;s[c>>2]=s[e+8>>2];s[e+64>>2]=(s[e+12>>2]|0)/400|0;r=0;t=25;break}case 4029:{d=(s[h>>2]|0)+(4-1)&~(4-1);r=s[d>>2]|0;s[h>>2]=d+4;if(!r)t=26;else{s[r>>2]=s[e+12>>2];r=0;t=25}break}case 4033:{d=(s[h>>2]|0)+(4-1)&~(4-1);r=s[d>>2]|0;s[h>>2]=d+4;if(r)if((s[e+60>>2]|0)==1002){s[a>>2]=r;ni(f,4033,a);r=0;t=25;break e}else{s[r>>2]=s[e+36>>2];r=0;t=25;break e}else t=26;break}case 4045:{d=(s[h>>2]|0)+(4-1)&~(4-1);r=s[d>>2]|0;s[h>>2]=d+4;if(!r)t=26;else{s[r>>2]=s[e+40>>2];r=0;t=25}break}case 4034:{d=(s[h>>2]|0)+(4-1)&~(4-1);r=s[d>>2]|0;s[h>>2]=d+4;if((r+32768|0)>>>0>65535)t=26;else{s[e+40>>2]=r;r=0;t=25}break}case 4039:{d=(s[h>>2]|0)+(4-1)&~(4-1);r=s[d>>2]|0;s[h>>2]=d+4;if(!r)t=26;else{s[r>>2]=s[e+72>>2];r=0;t=25}break}default:{r=-5;t=25}}while(0);if((t|0)==25){d=r;l=u;return d|0}else if((t|0)==26){d=-1;l=u;return d|0}return 0}function Cs(e){e=e|0;Hr(e);return}function Is(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var a=0,o=0,f=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0;v=l;l=l+32|0;m=v+16|0;b=v+8|0;u=v;e:do if((e|0)<16e3)if((e|0)<12e3)switch(e|0){case 8e3:{g=2;break e}default:break e}else switch(e|0){case 12e3:{g=2;break e}default:break e}else{if((e|0)<24e3)switch(e|0){case 16e3:{g=2;break e}default:break e}if((e|0)<48e3)switch(e|0){case 24e3:{g=2;break e}default:break e}else switch(e|0){case 48e3:{g=2;break e}default:break e}}while(0);e:do if((g|0)==2?(t+-1|0)>>>0<2:0){switch(i|0){case 2048:case 2049:case 2051:break;default:break e}f=t<<12;w=qr((t*480|0)+212+f+(t*336|0)+39448|0)|0;if(!w){if(!r){g=0;l=v;return g|0}s[r>>2]=-7;g=0;l=v;return g|0}t:do if((e|0)<16e3)if((e|0)<12e3)switch(e|0){case 8e3:{g=10;break t}default:{a=-1;break t}}else switch(e|0){case 12e3:{g=10;break t}default:{a=-1;break t}}else{if((e|0)<24e3)switch(e|0){case 16e3:{g=10;break t}default:{a=-1;break t}}if((e|0)<48e3)switch(e|0){case 24e3:{g=10;break t}default:{a=-1;break t}}else switch(e|0){case 48e3:{g=10;break t}default:{a=-1;break t}}}while(0);t:do if((g|0)==10)if((t+-1|0)>>>0<2){switch(i|0){case 2048:case 2049:case 2051:break;default:{a=-1;break t}}kn(w|0,0,(t*480|0)+212+f+(t*336|0)+39448|0)|0;s[w+4>>2]=19048;s[w>>2]=39448;d=w+39448|0;s[w+112>>2]=t;s[w+15104>>2]=t;p=w+144|0;s[p>>2]=e;o=w+180|0;s[o>>2]=0;a=w+8|0;if(!(Oi(w+19048|0,0,a)|0)){s[a>>2]=t;s[w+12>>2]=t;s[w+16>>2]=s[p>>2];s[w+20>>2]=16e3;s[w+24>>2]=8e3;s[w+28>>2]=16e3;s[w+32>>2]=20;s[w+36>>2]=25e3;s[w+40>>2]=0;c=w+44|0;s[c>>2]=9;s[w+48>>2]=0;s[w+56>>2]=0;s[w+60>>2]=0;s[w+76>>2]=0;a=s[o>>2]|0;kn(d|0,0,(t*480|0)+212+f+(t*336|0)|0)|0;s[d>>2]=5304;s[w+39452>>2]=t;s[w+39456>>2]=t;o=w+39476|0;s[o>>2]=1;s[w+39480>>2]=0;s[w+39484>>2]=21;s[w+39496>>2]=1;s[w+39520>>2]=a;s[w+39500>>2]=1;s[w+39464>>2]=1;s[w+39488>>2]=-1;s[w+39492>>2]=0;s[w+39460>>2]=0;s[w+39472>>2]=5;s[w+39508>>2]=24;qs(d,4028,u)|0;i:do if((e|0)<16e3)if((e|0)<12e3){switch(e|0){case 8e3:break;default:{g=18;break i}}a=6;break}else{switch(e|0){case 12e3:break;default:{g=18;break i}}a=4;break}else{if((e|0)<24e3){switch(e|0){case 16e3:break;default:{g=18;break i}}a=3;break}if((e|0)>=48e3)switch(e|0){case 48e3:{a=1;break i}default:{g=18;break i}}switch(e|0){case 24e3:break;default:{g=18;break i}}a=2}while(0);if((g|0)==18)a=0;s[o>>2]=a;s[b>>2]=0;qs(d,10016,b)|0;s[m>>2]=s[c>>2];qs(d,4010,m)|0;s[w+148>>2]=1;s[w+152>>2]=1;s[w+164>>2]=-1e3;s[w+160>>2]=(te(e,t)|0)+3e3;s[w+108>>2]=i;s[w+124>>2]=-1e3;s[w+128>>2]=-1e3;s[w+132>>2]=1105;s[w+120>>2]=-1e3;s[w+136>>2]=-1e3;s[w+140>>2]=-1;a=s[p>>2]|0;s[w+172>>2]=(a|0)/100|0;s[w+168>>2]=24;s[w+156>>2]=5e3;s[w+116>>2]=(a|0)/250|0;n[w+15108>>1]=16384;h[w+15116>>2]=1;s[w+15112>>2]=193536;s[w+15164>>2]=1;s[w+15136>>2]=1001;s[w+15152>>2]=1105;kn(w+188|0,0,14916)|0;a=0}else a=-3}else a=-1;while(0);if(r|0)s[r>>2]=a;if(!a){g=w;l=v;return g|0}Hr(w);g=0;l=v;return g|0}while(0);if(!r){g=0;l=v;return g|0}s[r>>2]=-1;g=0;l=v;return g|0}function Ps(e,t,i,r,s,a,o){e=e|0;t=t|0;i=i|0;r=r|0;s=s|0;a=a|0;o=o|0;var f=0,c=0,l=0,u=0;c=0;while(1){if((c|0)>=(i|0))break;h[t+(c<<2)>>2]=+(n[e+((te(c+r|0,o)|0)+s<<1)>>1]|0);c=c+1|0}l=(a|0)>-1;e:do if(!l)if((a|0)==-2){s=1;while(1){if((s|0)<(o|0))c=0;else{s=12;break e}while(1){if((c|0)>=(i|0))break;f=+(n[e+((te(c+r|0,o)|0)+s<<1)>>1]|0);u=t+(c<<2)|0;h[u>>2]=+h[u>>2]+f;c=c+1|0}s=s+1|0}}else s=14;else{s=0;while(1){if((s|0)>=(i|0)){s=12;break e}f=+(n[e+((te(s+r|0,o)|0)+a<<1)>>1]|0);u=t+(s<<2)|0;h[u>>2]=+h[u>>2]+f;s=s+1|0}}while(0);if((s|0)==12)if((a|0)==-2)f=30517578125e-15/+(o|0);else s=14;if((s|0)==14)f=l?152587890625e-16:30517578125e-15;s=0;while(1){if((s|0)>=(i|0))break;u=t+(s<<2)|0;h[u>>2]=+h[u>>2]*f;s=s+1|0}return}function Os(e,t,i,r,n,a,o,f){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;a=a|0;o=o|0;f=f|0;var c=0,u=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0,I=0,P=0;C=l;l=l+3296|0;M=C+1760|0;R=C+224|0;x=C+112|0;S=C;w=(r|0)/400|0;g=l;l=l+((1*(w<<2)|0)+15&-16)|0;T=s[a>>2]|0;s[x>>2]=T;h[S>>2]=1/((s[d>>2]=T,+h[d>>2])+1.0000000036274937e-15);T=(o|0)==0;if(T){r=t;u=0;m=1}else{u=(w<<1)-o|0;r=s[a+4>>2]|0;s[x+4>>2]=r;h[S+4>>2]=1/((s[d>>2]=r,+h[d>>2])+1.0000000036274937e-15);r=s[a+8>>2]|0;s[x+8>>2]=r;h[S+8>>2]=1/((s[d>>2]=r,+h[d>>2])+1.0000000036274937e-15);r=t-u|0;m=3}o=(r|0)/(w|0)|0;o=(o|0)<24?o:24;r=0;c=0;while(1){if((r|0)>=(o|0))break;t=(te(r,w)|0)+u|0;Zs[f&1](e,g,w,t,0,-2,i);t=0;c=(r|0)==0?+h[g>>2]:c;p=1.0000000036274937e-15;while(1){if((t|0)>=(w|0))break;_=+h[g+(t<<2)>>2];k=_-c;t=t+1|0;c=_;p=p+k*k}A=r+m|0;h[x+(A<<2)>>2]=p;h[S+(A<<2)>>2]=1/p;r=r+1|0}A=r+m|0;s[x+(A<<2)>>2]=s[x+(A+-1<<2)>>2];if(!T){o=o+2|0;o=(o|0)>24?24:o}E=~~+((i*60|0)+40|0);A=(n|0)/400|0;if((n|0)>=32e3)if((n|0)>64399)k=1;else k=+(A+-80|0)/80;else k=0;r=0;while(1){if((r|0)==16){m=0;break}s[R+(r<<2)>>2]=-1;h[M+(r<<2)>>2]=1e10;r=r+1|0}while(1){if((m|0)==4){y=1;break}b=+((A<(o|0)?o:u;t=0;c=0;p=0;while(1){if((t|0)>(r|0))break;_=p+ +h[S+(t<<2)>>2];v=c+ +h[x+(t<<2)>>2];t=t+1|0;c=v;p=_}y=r+1|0;c=(c*p/+(te(y,y)|0)+-2)*.05000000074505806;if(+H(+(c<=0?0:c))>1)c=1;else c=+H(+(c<=0?0:c));h[M+(u<<2)>>2]=b*(k*c+1);s[R+(u<<2)>>2]=m;m=m+1|0}while(1){if((o|0)<=(y|0))break;n=y+-1|0;r=2;while(1){if((r|0)==16)break;i=r+-1|0;s[M+(y<<6)+(r<<2)>>2]=s[M+(n<<6)+(i<<2)>>2];s[R+(y<<6)+(r<<2)>>2]=i;r=r+1|0}w=M+(n<<6)+4|0;g=x+(y<<2)|0;f=S+(y<<2)|0;e=o-y|0;_=+(e|0);i=0;while(1){if((i|0)==4)break;m=1<>2]=1;v=+h[w>>2];r=1;while(1){if((r|0)==4)break;r=r+1|0;t=(1<>2];if(!(c>2]=t;v=c}b=+((A<(e|0);r=u?e:m;t=0;c=0;p=0;while(1){if((t|0)>(r|0))break;I=p+ +h[f+(t<<2)>>2];P=c+ +h[g+(t<<2)>>2];t=t+1|0;c=P;p=I}t=r+1|0;c=(c*p/+(te(t,t)|0)+-2)*.05000000074505806;if(+H(+(c<=0?0:c))>1)c=1;else c=+H(+(c<=0?0:c));c=b*(k*c+1);r=M+(y<<6)+(m<<2)|0;h[r>>2]=v;if(u)c=c*_/+(m|0);h[r>>2]=v+c;i=i+1|0}y=y+1|0}r=o+-1|0;c=+h[M+(r<<6)+4>>2];t=1;u=2;while(1){if((u|0)==16)break;P=+h[M+(r<<6)+(u<<2)>>2];S=P>2]|0;o=r}r=1<>2]=s[x+(r<<2)>>2];if(T){l=C;return t|0}s[a+4>>2]=s[x+(r+1<<2)>>2];s[a+8>>2]=s[x+(r+2<<2)>>2];l=C;return t|0}function Ns(e,t,i,a,o,f,c,u,p,b,m,w,g){e=e|0;t=t|0;i=i|0;a=a|0;o=o|0;f=f|0;c=c|0;u=u|0;p=p|0;b=b|0;m=m|0;w=w|0;g=g|0;var v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0,I=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,G=0,V=0,W=0,K=0,Z=0,Y=0,$=0,X=0,Q=0,ee=0,ie=0,ne=0,se=0,ae=0,oe=0,fe=0,he=0,ce=0,le=0,ue=0,de=0,pe=0,be=0,me=0,we=0,ge=0,ve=0,_e=0,ye=0,ke=0,Ee=0,Ae=0,Se=0,Me=0,Te=0,Re=0,xe=0,Ce=0,Ie=0,Pe=0,Oe=0,De=0,Le=0,Be=0,Ue=0,je=0,Fe=0,ze=0,He=0,Ge=0,Ve=0,We=0,Ke=0,Ze=0,Ye=0,$e=0,Xe=0,Je=0,Qe=0,et=0,tt=0,it=0,rt=0,nt=0,st=0,at=0,ot=0,ft=0,ht=0,ct=0,lt=0,ut=0,dt=0,pt=0,bt=0,mt=0,wt=0,gt=0,vt=0,_t=0,yt=0,kt=0;pt=l;l=l+1280|0;st=pt+832|0;rt=pt+824|0;it=pt+816|0;tt=pt+808|0;et=pt+800|0;Qe=pt+792|0;$e=pt+784|0;Ye=pt+776|0;Ze=pt+768|0;Ke=pt+760|0;ut=pt+456|0;Ve=pt+448|0;Ge=pt+440|0;He=pt+432|0;ze=pt+424|0;Fe=pt+416|0;je=pt+408|0;Ue=pt+400|0;Be=pt+392|0;Se=pt+384|0;Ae=pt+376|0;Ee=pt+368|0;ke=pt+360|0;ye=pt+352|0;ge=pt+344|0;we=pt+336|0;me=pt+328|0;_e=pt+320|0;ve=pt+312|0;K=pt+304|0;x=pt;pe=pt+1272|0;Je=pt+1224|0;ft=pt+1220|0;Te=pt+1216|0;ht=pt+1184|0;W=pt+1152|0;ee=pt+852|0;le=pt+848|0;De=pt+840|0;We=pt+1278|0;nt=pt+1276|0;s[ft>>2]=0;R=(o|0)>1276?1276:o;lt=e+19044|0;s[lt>>2]=0;be=e+156|0;if(!(s[be>>2]|0)){y=i*400|0;_=e+144|0;v=s[_>>2]|0;if((y|0)!=(v|0))if(!((i*200|0)==(v|0)|(i*100|0)==(v|0))?(dt=i*50|0,!((dt|0)==(v|0)|(i*25|0)==(v|0)|(dt|0)==(v*3|0))):0){a=-1;l=pt;return a|0}else{dt=_;_=y}else{dt=_;_=y;v=y}}else{v=e+144|0;dt=v;_=i*400|0;v=s[v>>2]|0}if((_|0)<(v|0)|(R|0)<1){a=-1;l=pt;return a|0}de=e+(s[e+4>>2]|0)|0;Xe=e+(s[e>>2]|0)|0;Q=e+108|0;if((s[Q>>2]|0)==2051)Me=0;else Me=s[e+116>>2]|0;X=s[e+168>>2]|0;X=(X|0)>(f|0)?f:X;s[x>>2]=Te;qs(Xe,10015,x)|0;s[ht>>2]=0;T=e+44|0;do if((s[T>>2]|0)>6?(s[dt>>2]|0)==48e3:0){y=e+112|0;v=te(s[y>>2]|0,i)|0;_=0;E=0;A=0;while(1){if((_|0)>=(v|0))break;L=+h[t+(_<<2)>>2];_=_+1|0;E=E>L?E:L;A=AL?E:L)<=1/+(1<>2]=0;_=1;f=-1;k=-1;Oe=1;break}f=s[e+8696>>2]|0;k=s[e+8700>>2]|0;zs(e+188|0,s[Te>>2]|0,c,u,i,p,b,m,48e3,X,w,ht);if(+h[ht+28>>2]>.10000000149011612){c=e+19040|0;E=+h[c>>2];_=te(s[y>>2]|0,i)|0;v=0;O=0;while(1){if((v|0)>=(_|0))break;L=+h[t+(v<<2)>>2];v=v+1|0;O=O+L*L}E=E*.999;A=+(_|0);if(!(E>O/A)){v=0;E=0;while(1){if((v|0)>=(_|0))break;L=+h[t+(v<<2)>>2];v=v+1|0;E=E+L*L}E=E/A}h[c>>2]=E;ct=25}else ct=25}else{f=-1;k=-1;ct=25}while(0);do if((ct|0)==25){s[e+140>>2]=-1;_=s[ht>>2]|0;y=e+19032|0;s[y>>2]=0;_=(_|0)==0;if(!_){if((s[e+124>>2]|0)==-1e3)s[e+140>>2]=~~+z(+((1-+h[ht+20>>2])*100+.5));v=s[ht+24>>2]|0;if((v|0)<13){s[y>>2]=1101;G=y;Oe=0;break}if((v|0)<15){s[y>>2]=1102;G=y;Oe=0;break}if((v|0)<17){s[y>>2]=1103;G=y;Oe=0;break}if((v|0)<19){s[y>>2]=1104;G=y;Oe=0;break}else{s[y>>2]=1105;G=y;Oe=0;break}}else{G=y;Oe=0}}while(0);at=e+112|0;S=s[at>>2]|0;M=(S|0)==2;if(M?(s[e+120>>2]|0)!=1:0){u=(s[dt>>2]|0)/(i|0)|0;v=(u|0)<50;E=25/+(u|0);y=i+-3|0;c=0;A=0;O=0;N=0;while(1){if((c|0)>=(y|0))break;ot=c<<1;_t=+h[t+(ot<<2)>>2];mt=+h[t+((ot|1)<<2)>>2];vt=+h[t+((ot|2)<<2)>>2];bt=+h[t+((ot|3)<<2)>>2];gt=+h[t+((ot|4)<<2)>>2];D=+h[t+((ot|5)<<2)>>2];wt=+h[t+((ot|6)<<2)>>2];L=+h[t+((ot|7)<<2)>>2];c=c+4|0;A=A+(_t*_t+vt*vt+gt*gt+wt*wt);O=O+(_t*mt+vt*bt+gt*D+wt*L);N=N+(mt*mt+bt*bt+D*D+L*L)}_t=v?.5:1-E;Le=e+15172|0;E=+h[Le>>2];E=E+_t*(A-E);h[Le>>2]=E;v=e+15176|0;A=+h[v>>2];A=A+_t*(O-A);h[v>>2]=A;ot=e+15180|0;O=+h[ot>>2];O=O+_t*(N-O);h[ot>>2]=O;E=E<0?0:E;h[Le>>2]=E;A=A<0?0:A;h[v>>2]=A;O=O<0?0:O;h[ot>>2]=O;if((E>O?E:O)>.0007999999797903001){gt=+H(+E);_t=+H(+O);E=+H(+gt);vt=+H(+_t);_t=gt*_t;gt=A<_t?A:_t;h[v>>2]=gt;_t=gt/(_t+1.0000000036274937e-15);vt=+H(+(1-_t*_t))*(+q(+(E-vt))/(E+1.0000000036274937e-15+vt));ot=e+15184|0;E=+h[ot>>2];_t=+(u|0);E=E+(vt-E)/_t;h[ot>>2]=E;ot=e+15188|0;_t=+h[ot>>2]-.019999999552965164/_t;E=_t>E?_t:E;h[ot>>2]=E}else E=+h[e+15188>>2];E=E*20;if(E>1)E=1}else E=0;if(!i)v=(s[dt>>2]|0)/400|0;else v=i;y=s[e+164>>2]|0;switch(y|0){case-1e3:{P=s[dt>>2]|0;y=((P*60|0)/(v|0)|0)+(te(P,S)|0)|0;break}case-1:{P=s[dt>>2]|0;y=(te(R<<3,P)|0)/(v|0)|0;break}default:P=s[dt>>2]|0}Ie=e+160|0;s[Ie>>2]=y;v=(P|0)/(i|0)|0;ot=e+148|0;U=(s[ot>>2]|0)==0;if(U){B=(P*3|0)/(i|0)|0;Le=(((y*3|0)/8|0)+((B|0)/2|0)|0)/(B|0)|0;Le=(Le|0)<(R|0)?Le:R;B=((te(Le,B)|0)<<3|0)/3|0;s[Ie>>2]=B}else{B=y;Le=R}do if(!((Le|0)<3|(B|0)<(v*24|0))){if((v|0)<50){y=te(Le,v)|0;if((y|0)<300|(B|0)<2400)break;else ae=y}else ae=te(v,Le)|0;oe=ae<<3;C=s[T>>2]|0;F=e+40|0;I=s[F>>2]|0;T=v+-50|0;y=B-(te((S*40|0)+20|0,T)|0)|0;if(U)y=y-((y|0)/12|0)|0;R=C+90|0;c=(te(y,R)|0)/100|0;x=(I*12|0)+20|0;c=c-((te(c,I)|0)/(x|0)|0)|0;y=s[e+124>>2]|0;do if((y|0)!=3001)if((y|0)!=3002){y=s[e+140>>2]|0;if((y|0)>-1){j=y*327>>8;j=(s[Q>>2]|0)!=2049|(j|0)<115?j:115;break}else{j=(s[Q>>2]|0)==2048?115:48;break}}else j=0;else j=127;while(0);V=e+120|0;y=s[V>>2]|0;Pe=e+15104|0;do if((y|0)==-1e3|M^1)if(M){S=(c|0)>(((s[Pe>>2]|0)==2?23e3:25e3)|0)?2:1;s[Pe>>2]=S;break}else{s[Pe>>2]=S;break}else{s[Pe>>2]=y;S=y}while(0);y=B-(te((S*40|0)+20|0,T)|0)|0;if(U)y=y-((y|0)/12|0)|0;u=(te(y,R)|0)/100|0;u=u-((te(u,I)|0)/(x|0)|0)|0;c=s[Q>>2]|0;do if((c|0)!=2051){y=s[e+136>>2]|0;do if((y|0)==-1e3){_t=1-E;y=~~(_t*16e3+E*16e3);y=y+((te(te(j,j)|0,~~(_t*64e3+E*36e3)-y|0)|0)>>14)|0;y=(c|0)==2048?y+8e3|0:y;c=s[e+15140>>2]|0;if((c|0)==1002)y=y+-4e3|0;else y=(c|0)>0?y+4e3|0:y;y=(u|0)>=(y|0)?1002:1e3;c=e+15136|0;s[c>>2]=y;do if(s[e+48>>2]|0){if((I|0)<=(128-j>>4|0))break;s[c>>2]=1e3;y=1e3}while(0);if(!(s[e+184>>2]|0)){s[e+56>>2]=0;_=c;ct=112;break}if(!_){s[e+56>>2]=0;_=c;ct=112;break}s[e+56>>2]=Oe^1;if(!((Oe|0)==0&(j|0)>100)){_=c;ct=112;break}s[c>>2]=1e3;_=c;y=1e3}else{_=e+15136|0;s[_>>2]=y;ct=112}while(0);if((ct|0)==112)if((y|0)==1002){Ce=_;_=1002;break}if(((P|0)/100|0|0)>(i|0)){s[_>>2]=1002;Ce=_;_=1002}else{Ce=_;_=y}}else{Ce=e+15136|0;s[Ce>>2]=1002;_=1002}while(0);Y=e+176|0;if(s[Y>>2]|0){s[Ce>>2]=1002;_=1002}ie=(v|0)>50;if((Le|0)<((te(ie?9e3:6e3,i)|0)/(P<<3|0)|0|0)){s[Ce>>2]=1002;_=1002}do if((S|0)==1?(s[e+15144>>2]|0)==2:0){y=e+68|0;if((s[y>>2]|0)!=0|(_|0)==1002){ct=124;break}c=e+15140|0;if((s[c>>2]|0)==1002){ct=124;break}s[y>>2]=1;s[Pe>>2]=2;Re=c;c=2}else ct=124;while(0);if((ct|0)==124){s[e+68>>2]=0;Re=e+15140|0;c=S}M=s[Re>>2]|0;do if((M|0)>0){y=(_|0)==1002;if((M|0)==1002&(y^1)){xe=(_|0)!=1002;y=xe&1;if(xe){u=y;y=1;xe=0;break}}else{if(!y){u=0;y=0;xe=0;break}if((M|0)==1002){ -_=1002;u=0;y=0;xe=0;break}y=(_|0)!=1002&1}if(((P|0)/100|0|0)>(i|0)){_=1002;u=y;y=0;xe=0;break}s[Ce>>2]=M;_=M;u=y;y=1;xe=1}else{u=0;y=0;xe=0}while(0);c=B-(te((c*40|0)+20|0,T)|0)|0;if(U)c=c-((c|0)/12|0)|0;c=(te(c,R)|0)/100|0;e:do switch(_|0){case 1001:case 1e3:{if((C|0)<2)c=(c<<2|0)/5|0;fe=c-((te(c,I)|0)/((I*6|0)+10|0)|0)|0;break}case 1002:{if((C|0)>=5){fe=c;break e}fe=(c*9|0)/10|0;break}default:fe=c-((te(c,I)|0)/(x|0)|0)|0}while(0);he=e+15160|0;if(!(s[he>>2]|0))if(!y){ne=u;c=0;y=0;se=0}else{c=0;ct=145}else{s[he>>2]=0;u=1;c=1;y=1;ct=145}do if((ct|0)==145){S=(P|0)/200|0;S=(te(Le,S)|0)/(S+i|0)|0;S=(S|0)>257?257:S;if(U){ne=u;se=S;break}se=(B|0)/1600|0;ne=u;se=(S|0)<(se|0)?S:se}while(0);if((_|0)!=1002&(M|0)==1002){_=s[e+180>>2]|0;kn(de|0,0,20400)|0;c=0;while(1){if((c|0)==2)break;Fi(de+(c*10156|0)|0,_)|0;c=c+1|0}s[de+20376>>2]=1;s[de+20380>>2]=1;$=1}else $=c;T=(s[Ce>>2]|0)==1002;do if(T)ct=156;else{if(s[e+15164>>2]|0){ct=156;break}if(s[e+84>>2]|0){ct=156;break}c=e+15152|0;U=c;c=s[c>>2]|0}while(0);do if((ct|0)==156){if((s[at>>2]|0)==2?(s[V>>2]|0)!=1:0){u=616;S=616}else{u=616;S=616}_=te(j,j)|0;c=0;while(1){if((c|0)==8)break;ue=s[u+(c<<2)>>2]|0;s[W+(c<<2)>>2]=ue+((te(_,(s[S+(c<<2)>>2]|0)-ue|0)|0)>>14);c=c+1|0}M=(s[e+15164>>2]|0)==0;S=e+15156|0;c=1105;do{u=c<<1;_=s[W+(u+-2204<<2)>>2]|0;u=s[W+(u+-2203<<2)>>2]|0;do if(M)if((s[S>>2]|0)<(c|0)){_=_+u|0;break}else{_=_-u|0;break}while(0);if((fe|0)>=(_|0))break;c=c+-1|0}while((c|0)>1101);s[S>>2]=c;_=e+15152|0;s[_>>2]=c;if(T|M^1){U=_;break}if(!((s[e+88>>2]|0)==0&(c|0)>1103)){U=_;break}s[_>>2]=1103;U=_;c=1103}while(0);_=s[e+132>>2]|0;if((c|0)>(_|0))s[U>>2]=_;else _=c;B=e+128|0;c=s[B>>2]|0;S=(c|0)==-1e3;if(!S){s[U>>2]=c;_=c}if((oe|0)<15e3&(T^1)){_=(_|0)<1103?_:1103;s[U>>2]=_}c=s[dt>>2]|0;if((c|0)<24001&(_|0)>1104){s[U>>2]=1104;_=1104}if((c|0)<16001&(_|0)>1103){s[U>>2]=1103;_=1103}if((c|0)<12001&(_|0)>1102){s[U>>2]=1102;_=1102}if((c|0)<8001&(_|0)>1101){s[U>>2]=1101;_=1101}u=s[G>>2]|0;if(!((u|0)==0|S^1)){c=s[Pe>>2]|0;do if((fe|0)>(c*18e3|0)|T^1){if(!((fe|0)>(c*24e3|0)|T^1)){c=1102;break}if((fe|0)<=(c*3e4|0)){c=1103;break}c=(fe|0)>(c*44e3|0)?1105:1104}else c=1101;while(0);ue=(u|0)>(c|0)?u:c;s[G>>2]=ue;_=(_|0)<(ue|0)?_:ue;s[U>>2]=_}x=s[F>>2]|0;j=e+52|0;C=s[j>>2]|0;e:do if((s[e+48>>2]|0)==0|(x|0)==0|T)_=0;else{S=(x|0)<25;M=125-x|0;T=(x|0)<6;R=_;while(1){u=R<<1;c=s[648+(u+-2202<<2)>>2]|0;u=s[648+(u+-2201<<2)>>2]|0;switch(C|0){case 1:{c=c-u|0;break}case 0:{c=c+u|0;break}default:{}}ue=((te(c,S?M:100)|0)>>16)*655|0;c=(ue+((((te(c,S?125-x|0:100)|0)&65535)*655|0)>>>16)|0)<(fe|0);if(c|T){_=c&1;break e}if((R|0)<=1101)break;ue=R+-1|0;s[U>>2]=ue;R=ue}s[U>>2]=_;_=0}while(0);s[j>>2]=_;s[K>>2]=X;qs(Xe,4036,K)|0;c=s[Ce>>2]|0;_=(c|0)==1002;do if(_){if((s[U>>2]|0)!=1102)break;s[U>>2]=1103}while(0);if(s[Y>>2]|0)s[U>>2]=1101;u=s[dt>>2]|0;do if(((u|0)/50|0|0)<(i|0)){if(!_?(Z=s[U>>2]|0,(Z|0)<=1103):0){B=Z;break}if((f|0)!=-1){s[e+8696>>2]=f;s[e+8700>>2]=k}T=((u|0)/25|0|0)<(i|0)?3:2;c=(o+-3|0)/(T|0)|0;c=(c|0)>1276?1276:c;R=te(T,c)|0;P=Ne()|0;u=l;l=l+((1*R|0)+15&-16)|0;s[ee+4>>2]=0;R=e+136|0;x=s[R>>2]|0;C=s[B>>2]|0;I=s[V>>2]|0;s[R>>2]=s[Ce>>2];s[B>>2]=s[U>>2];v=s[Pe>>2]|0;s[V>>2]=v;S=e+68|0;M=s[S>>2]|0;if(!M)s[e+15144>>2]=v;else s[V>>2]=1;v=(xe|0)!=0;_=T+-1|0;k=0;while(1){if((k|0)>=(T|0)){ct=222;break}s[S>>2]=0;if(v&(k|0)==(_|0))s[R>>2]=1002;f=s[dt>>2]|0;y=u+(te(k,c)|0)|0;f=Ns(e,t+((te(k,(te(s[at>>2]|0,f)|0)/50|0)|0)<<2)|0,(f|0)/50|0,y,c,X,0,0,p,b,m,w,g)|0;if((f|0)<0){v=-3;break}if((js(ee,y,f)|0)<0){v=-3;break}k=k+1|0}do if((ct|0)==222){_=(s[ot>>2]|0)==0;if(_){v=((s[Ie>>2]|0)*3|0)/(1200/(T>>>0)|0|0)|0;v=(v|0)<(o|0)?v:o}else v=o;v=Fs(ee,T,a,v,_&1)|0;if((v|0)<0){v=-3;break}s[R>>2]=x;s[B>>2]=C;s[V>>2]=I;s[S>>2]=M}while(0);qe(P|0);a=v;l=pt;return a|0}else B=s[U>>2]|0;while(0);do if((c|0)==1e3){if((B|0)<=1103)break;s[Ce>>2]=1001}else{if(!((c|0)==1001&(B|0)<1104))break;s[Ce>>2]=1e3}while(0);ee=Le-se|0;u=(te(s[Ie>>2]|0,i)|0)/(u<<3|0)|0;u=((ee|0)<(u|0)?ee:u)+-1|0;ee=a+1|0;m=Le+-1|0;s[Je>>2]=ee;p=Je+8|0;s[p>>2]=0;s[Je+12>>2]=0;s[Je+16>>2]=0;ce=Je+20|0;s[ce>>2]=33;V=Je+24|0;s[V>>2]=0;o=Je+28|0;s[o>>2]=-2147483648;W=Je+40|0;s[W>>2]=-1;K=Je+32|0;s[K>>2]=0;Z=Je+36|0;s[Z>>2]=0;b=Je+4|0;s[b>>2]=m;X=Je+44|0;s[X>>2]=0;G=Me+i|0;F=te(G,s[at>>2]|0)|0;ue=Ne()|0;w=l;l=l+((1*(F<<2)|0)+15&-16)|0;F=e+172|0;R=s[at>>2]|0;T=te(Me,R)|0;Mn(w|0,e+15192+((te((s[F>>2]|0)-Me|0,R)|0)<<2)|0,T<<2|0)|0;x=(s[Ce>>2]|0)==1002;if(x)_=193536;else _=s[de+8>>2]|0;P=e+15112|0;I=s[P>>2]|0;_=_-I|0;_=I+(((_>>16)*983|0)+(((_&65535)*983|0)>>>16))|0;s[P>>2]=_;e:do if((s[Q>>2]|0)==2048){k=_>>8;do if((k|0)<0)_=0;else{if((k|0)>3966){_=2147483647;break}_=_>>15;c=1<<_;f=k&127;if((k|0)<2048)_=f+((te(te(f,128-f|0)|0,-174)|0)>>16)<<_>>7;else _=te(c>>7,f+((te(te(f,128-f|0)|0,-174)|0)>>16)|0)|0;_=c+_|0}while(0);M=w+(T<<2)|0;k=e+15120|0;S=((_<<16>>16)*2471|0)/((s[dt>>2]|0)/1e3|0|0)|0;_=te(S,-471)|0;f=_+268435456|0;Q=f>>6;C=f>>22;c=S<<16>>16;yt=te(S>>16,c)|0;c=te(S&65535,c)|0;S=te(S,(S>>15)+1>>1)|0;kt=yt+(c>>>16)+S<<16>>16;I=Q&65535;P=Q<<16>>16;E=+((te(C,kt)|0)+((te(I,kt)|0)>>16)+(te(Q,(yt+(c>>16)+S+-8388608>>15)+1>>1)|0)|0)*3.725290298461914e-9;A=+((te(C,P)|0)+((te(I,P)|0)>>16)+(te(Q,(f>>21)+1>>1)|0)|0)*3.725290298461914e-9;O=+(f|0)*3.725290298461914e-9;N=+(-268435456-_<<1|0)*3.725290298461914e-9;_=e+15124|0;f=0;while(1){if((f|0)>=(i|0))break;kt=te(f,R)|0;gt=+h[t+(kt<<2)>>2];vt=O*gt;_t=+h[k>>2]+vt;h[k>>2]=+h[_>>2]-_t*E+N*gt;h[_>>2]=vt-_t*A+1.0000000031710769e-30;h[M+(kt<<2)>>2]=_t;f=f+1|0}if((R|0)!=2)break;c=t+4|0;S=e+15128|0;_=M+4|0;f=e+15132|0;k=0;while(1){if((k|0)>=(i|0))break e;kt=k<<1;gt=+h[c+(kt<<2)>>2];vt=O*gt;_t=+h[S>>2]+vt;h[S>>2]=+h[f>>2]-_t*E+N*gt;h[f>>2]=vt-_t*A+1.0000000031710769e-30;h[_+(kt<<2)>>2]=_t;k=k+1|0}}else{c=w+(T<<2)|0;S=e+15120|0;D=12/+(s[dt>>2]|0);L=1-D;A=+h[S>>2];M=e+15124|0;E=+h[M>>2];if((R|0)!=2){_=0;while(1){if((_|0)>=(i|0))break;vt=+h[t+(_<<2)>>2];_t=vt-A;h[c+(_<<2)>>2]=_t-E;_=_+1|0;A=D*vt+1.0000000031710769e-30+L*A;E=D*_t+1.0000000031710769e-30+L*E}h[S>>2]=A;h[M>>2]=E;break}_=e+15128|0;f=e+15132|0;k=0;O=+h[_>>2];N=+h[f>>2];while(1){if((k|0)>=(i|0))break;yt=k<<1;wt=+h[t+(yt<<2)>>2];kt=yt|1;vt=+h[t+(kt<<2)>>2];gt=wt-A;_t=vt-O;h[c+(yt<<2)>>2]=gt-E;h[c+(kt<<2)>>2]=_t-N;k=k+1|0;A=D*wt+1.0000000031710769e-30+L*A;E=D*gt+1.0000000031710769e-30+L*E;O=D*vt+1.0000000031710769e-30+L*O;N=D*_t+1.0000000031710769e-30+L*N}h[S>>2]=A;h[M>>2]=E;h[_>>2]=O;h[f>>2]=N}while(0);do if(g|0){_=w+(T<<2)|0;f=te(R,i)|0;k=0;E=0;while(1){if((k|0)>=(f|0))break;_t=+h[_+(k<<2)>>2];k=k+1|0;E=E+_t*_t}if(!(!(E<1e9)|(E!=E|0!=0)))break;kn(_|0,0,f<<2|0)|0;kt=e+15120|0;s[kt>>2]=0;s[kt+4>>2]=0;s[kt+8>>2]=0;s[kt+12>>2]=0}while(0);do if(x){A=1;x=ne;ct=353}else{c=te(R,i)|0;P=Ne()|0;I=l;l=l+((1*(c<<1)|0)+15&-16)|0;c=te(u<<3,v)|0;x=s[Ce>>2]|0;C=(x|0)==1001;do if(!C){s[e+36>>2]=c;v=s[e+15168>>2]|0;if(!v){T=c;A=1}else{N=1;ct=275}}else{k=s[ot>>2]|0;_=((s[dt>>2]|0)==(i*50|0)?2:1)+(s[j>>2]<<1)|0;f=1;while(1){if((f|0)>=7){ct=268;break}v=s[688+(f*20|0)>>2]|0;if((v|0)>(c|0)){ct=271;break}f=f+1|0}do if((ct|0)==268)if((f|0)==7){v=(s[808+(_<<2)>>2]|0)+((c+-64e3|0)/2|0)|0;break}else{v=s[688+(f*20|0)>>2]|0;ct=271;break}while(0);if((ct|0)==271){yt=f+-1|0;kt=s[688+(yt*20|0)>>2]|0;v=((te(s[688+(yt*20|0)+(_<<2)>>2]|0,v-c|0)|0)+(te(s[688+(f*20|0)+(_<<2)>>2]|0,c-kt|0)|0)|0)/(v-kt|0)|0}_=(k|0)==0?v+100|0:v;_=(B|0)==1104?_+300|0:_;s[e+36>>2]=_;v=s[e+15168>>2]|0;if(v|0){c=_;N=1;ct=275;break}T=_;A=1-+J(+(+(_-c|0)*.0009765625*.6931471805599453))}while(0);do if((ct|0)==275){if(!(s[ot>>2]|0)){T=c;A=N;break}if(s[Y>>2]|0){T=c;A=N;break}R=s[U>>2]|0;if((R|0)==1101){M=13;O=8e3}else{kt=(R|0)==1102;M=kt?15:17;O=kt?12e3:16e3}f=s[at>>2]|0;S=0;E=0;while(1){if((S|0)>=(f|0))break;k=S*21|0;T=0;while(1){if((T|0)>=(M|0))break;A=+h[v+(k+T<<2)>>2];_=A<.5;do if(A>-2|_^1){if(_){if(!(A>0))break}else A=.5;A=A*.5}else A=-2;while(0);T=T+1|0;E=E+A}S=S+1|0}kt=~~(O*(E/+(M|0)*+(f|0)+.20000000298023224));_=(te(c,-2)|0)/3|0;_=(kt|0)>(_|0)?kt:_;if((R&-2|0)==1104)v=(_*3|0)/5|0;else v=_;T=c+v|0;s[e+36>>2]=T;kt=te(_,i)|0;A=N;u=u+((kt|0)/(s[dt>>2]<<3|0)|0)|0}while(0);R=s[dt>>2]|0;s[e+32>>2]=(i*1e3|0)/(R|0)|0;f=s[at>>2]|0;s[e+8>>2]=f;s[e+12>>2]=s[Pe>>2];switch(B|0){case 1101:{s[e+28>>2]=8e3;v=8e3;break}case 1102:{s[e+28>>2]=12e3;v=12e3;break}default:{s[e+28>>2]=16e3;v=16e3}}s[e+24>>2]=C?16e3:8e3;c=e+20|0;s[c>>2]=16e3;do if((x|0)==1e3){if(ie)k=(ae<<4|0)/3|0;else k=oe;if((k|0)>=8e3)break;s[c>>2]=12e3;_=e+28|0;v=v>>>0>12e3?12e3:v;s[_>>2]=v;if((k|0)>=7e3)break;s[c>>2]=8e3;s[_>>2]=(v|0)>8e3?8e3:v}while(0);S=(s[ot>>2]|0)==0;s[e+60>>2]=S&1;v=m-se|0;v=(v|0)>1275?1275:v;s[pe>>2]=v;v=v<<3;M=e+64|0;s[M>>2]=v;do if(S){if(!C)break;s[M>>2]=(te(T,i)|0)/(R|0)|0}else{if(!C)break;c=(te(v,R)|0)/(i|0)|0;_=((R|0)==(i*50|0)?2:1)+(s[j>>2]<<1)|0;k=1;while(1){if((k|0)>=7){ct=310;break}v=s[688+(k*20|0)>>2]|0;if((v|0)>(c|0)){ct=313;break}k=k+1|0}do if((ct|0)==310)if((k|0)==7){v=(s[808+(_<<2)>>2]|0)+((c+-64e3|0)/2|0)|0;break}else{v=s[688+(k*20|0)>>2]|0;ct=313;break}while(0);if((ct|0)==313){yt=k+-1|0;kt=s[688+(yt*20|0)>>2]|0;v=((te(s[688+(yt*20|0)+(_<<2)>>2]|0,v-c|0)|0)+(te(s[688+(k*20|0)+(_<<2)>>2]|0,c-kt|0)|0)|0)/(v-kt|0)|0}kt=S?v+100|0:v;s[M>>2]=(te((B|0)==1104?kt+300|0:kt,i)|0)/(R|0)|0}while(0);if($){s[le>>2]=0;kt=(R|0)/400|0;_=te(f,(s[F>>2]|0)-(s[e+116>>2]|0)-kt|0)|0;yt=e+15192+(_<<2)|0;k=s[Te>>2]|0;Ds(yt,yt,0,1,s[k+4>>2]|0,kt,f,s[k+60>>2]|0,R);kn(e+15192|0,0,_<<2|0)|0;_=s[F>>2]|0;f=te(_,s[at>>2]|0)|0;k=0;while(1){if((k|0)>=(f|0))break;E=+h[e+15192+(k<<2)>>2]*32768;do if(E>-32768){if(E<32767)break;E=32767}else E=-32768;while(0);v=(h[d>>2]=E,s[d>>2]|0);do if((v&2130706432)>>>0<=1249902592){v=(v|0)<0;E=v?E+-8388608+8388608:E+8388608+-8388608;if(!(E==0))break;E=v?-0:0}while(0);n[I+(k<<1)>>1]=~~E;k=k+1|0}Ni(de,e+8|0,I,_,0,le,1)|0;f=s[at>>2]|0}_=te(f,i)|0;k=0;while(1){if((k|0)>=(_|0))break;E=+h[w+((te(Me,f)|0)+k<<2)>>2]*32768;do if(E>-32768){if(E<32767)break;E=32767}else E=-32768;while(0);v=(h[d>>2]=E,s[d>>2]|0);do if((v&2130706432)>>>0<=1249902592){v=(v|0)<0;E=v?E+-8388608+8388608:E+8388608+-8388608;if(!(E==0))break;E=v?-0:0}while(0);n[I+(k<<1)>>1]=~~E;k=k+1|0}if(!(Ni(de,e+8|0,I,i,Je,pe,0)|0)){if(s[pe>>2]|0){do if((s[Ce>>2]|0)==1e3){v=s[e+80>>2]|0;if((v|0)==8e3){_=1101;break}if((v|0)==12e3){_=1102;break}_=(v|0)==16e3?1103:B}else _=B;while(0);kt=s[e+96>>2]|0;s[e+72>>2]=kt;if(!kt)v=ne;else{s[he>>2]=1;v=0;y=1}qe(P|0);x=v;B=_;ct=353;break}s[lt>>2]=0;y=s[Ce>>2]|0;f=s[Pe>>2]|0;v=(s[dt>>2]|0)/(i|0)|0;_=0;while(1){if((v|0)>=400)break;v=v<<1;_=_+1|0}switch(y|0){case 1e3:{v=(B<<5)+96&224|(_<<3)+-16;break}case 1002:{v=((B|0)<1102?0:(B<<5)+64&96)|_<<3|128;break}default:v=B<<4|(_<<3)+240|96}r[a>>0]=v|((f|0)==2&1)<<2;v=1}else v=-3;qe(P|0)}while(0);e:do if((ct|0)==353){switch(B|0){case 1101:{v=13;break}case 1103:case 1102:{v=17;break}case 1104:{v=19;break}default:v=21}s[ve>>2]=v;qs(Xe,10012,ve)|0;s[_e>>2]=s[Pe>>2];qs(Xe,10008,_e)|0;s[me>>2]=-1;qs(Xe,4002,me)|0;do if((s[Ce>>2]|0)==1e3){f=s[at>>2]|0;u=((te(f,s[dt>>2]|0)|0)/400|0)<<2;c=l;l=l+((1*u|0)+15&-16)|0;u=0}else{s[we>>2]=0;qs(Xe,4006,we)|0;s[ge>>2]=(s[e+76>>2]|0)==0?2:0;qs(Xe,10002,ge)|0;do if((s[Ce>>2]|0)==1001){v=(s[ce>>2]|0)+((re(s[o>>2]|0)|0)+-32)+7>>3;v=(y|0)==0?v:v+3|0;if(!(s[ot>>2]|0)){u=(v|0)>(u|0)?v:u;break}else{s[ye>>2]=(s[Ie>>2]|0)-(s[e+36>>2]|0);qs(Xe,4002,ye)|0;s[ke>>2]=0;qs(Xe,4020,ke)|0;u=m-se|0;break}}else{if(!(s[ot>>2]|0))break;do if((s[be>>2]|0)==5010){v=s[dt>>2]|0;if(((v|0)/50|0|0)==(i|0)){v=0;break}v=te(((s[Pe>>2]|0)*60|0)+40|0,((v|0)/(i|0)|0)+-50|0)|0;if(!(s[ht>>2]|0))break;v=~~(+(v|0)*(+h[ht+4>>2]*.5+1))}else v=0;while(0);s[Ee>>2]=1;qs(Xe,4006,Ee)|0;s[Ae>>2]=s[e+152>>2];qs(Xe,4020,Ae)|0;s[Se>>2]=(s[Ie>>2]|0)+v;qs(Xe,4002,Se)|0;u=m-se|0}while(0);v=s[Ce>>2]|0;_=s[at>>2]|0;f=s[dt>>2]|0;k=(te(_,f)|0)/400|0;c=l;l=l+((1*(k<<2)|0)+15&-16)|0;if((v|0)==1e3){f=_;break}kt=s[Re>>2]|0;if(!((v|0)!=(kt|0)&(kt|0)>0)){f=_;break}Mn(c|0,e+15192+((te((s[F>>2]|0)-Me-((f|0)/400|0)|0,_)|0)<<2)|0,k<<2|0)|0;f=_}while(0);v=s[F>>2]|0;_=e+15192|0;if((te(f,v-G|0)|0)>0){kt=te(f,v-i-Me|0)|0;Tn(_|0,e+15192+((te(f,i)|0)<<2)|0,kt<<2|0)|0;Mn(e+15192+(kt<<2)|0,w|0,(te(G,f)|0)<<2|0)|0}else Mn(_|0,w+((te(G-v|0,f)|0)<<2)|0,(te(v,f)|0)<<2|0)|0;v=e+15116|0;E=+h[v>>2];if(E<1|A<1){kt=s[Te>>2]|0;Ds(w,w,E,A,s[kt+4>>2]|0,i,s[at>>2]|0,s[kt+60>>2]|0,s[dt>>2]|0)}h[v>>2]=A;T=s[Ce>>2]|0;R=(T|0)==1001;if(!(R?(s[Pe>>2]|0)!=1:0)){if((fe|0)>=24e3){v=fe+-24e3|0;if((v<<1|0)>16384)v=16384;else ct=381}else{v=0;ct=381}if((ct|0)==381)v=v<<1;s[e+92>>2]=v}do if(!(s[e+15168>>2]|0)){if((s[at>>2]|0)!=2)break;M=e+15108|0;v=n[M>>1]|0;S=s[e+92>>2]|0;if(!(v<<16>>16<16384|(S|0)<16384))break;k=s[Te>>2]|0;_=s[k+60>>2]|0;f=48e3/(s[dt>>2]|0)|0;k=(s[k+4>>2]|0)/(f|0)|0;E=1-+(v<<16>>16)*6103515625e-14;A=1-+(S|0)*6103515625e-14;v=0;while(1){if((v|0)>=(k|0))break;_t=+h[_+((te(v,f)|0)<<2)>>2];_t=_t*_t;kt=v<<1;yt=w+(kt<<2)|0;gt=+h[yt>>2];kt=w+((kt|1)<<2)|0;vt=+h[kt>>2];_t=(_t*A+(1-_t)*E)*((gt-vt)*.5);h[yt>>2]=gt-_t;h[kt>>2]=vt+_t;v=v+1|0}while(1){if((v|0)>=(i|0))break;kt=v<<1;yt=w+(kt<<2)|0;gt=+h[yt>>2];kt=w+((kt|1)<<2)|0;vt=+h[kt>>2];_t=A*((gt-vt)*.5);h[yt>>2]=gt-_t;h[kt>>2]=vt+_t;v=v+1|0}n[M>>1]=S}while(0);t:do if((T|0)==1002)ct=456;else{_=s[ce>>2]|0;v=s[o>>2]|0;f=_+((re(v|0)|0)+-32)|0;if((f+17+(R?20:0)|0)>((Le<<3)+-8|0)){ct=456;break}i:do if(R){if(!y){if((f+37|0)>(u<<3|0)){ct=456;break t}v=v-(v>>>12)|0}else{kt=v>>>12;s[K>>2]=(s[K>>2]|0)+(v-kt);v=kt}s[o>>2]=v;while(1){if(v>>>0>=8388609){f=v;k=_;break i}f=s[K>>2]|0;k=f>>>23;if((k|0)==255)s[Z>>2]=(s[Z>>2]|0)+1;else{f=f>>>31;v=s[W>>2]|0;if((v|0)>-1){_=s[V>>2]|0;if((_+(s[p>>2]|0)|0)>>>0<(s[b>>2]|0)>>>0){s[V>>2]=_+1;r[(s[Je>>2]|0)+_>>0]=v+f;v=0}else v=-1;s[X>>2]=s[X>>2]|v}v=s[Z>>2]|0;if(v|0){f=f+255&255;do{_=s[V>>2]|0;if((_+(s[p>>2]|0)|0)>>>0<(s[b>>2]|0)>>>0){s[V>>2]=_+1;r[(s[Je>>2]|0)+_>>0]=f;_=0;v=s[Z>>2]|0}else _=-1;s[X>>2]=s[X>>2]|_;v=v+-1|0;s[Z>>2]=v}while((v|0)!=0)}s[W>>2]=k&255;f=s[K>>2]|0;v=s[o>>2]|0;_=s[ce>>2]|0}s[K>>2]=f<<8&2147483392;v=v<<8;s[o>>2]=v;_=_+8|0;s[ce>>2]=_}}else{f=v;k=_}while(0);if(!y){ct=456;break}v=f>>>1;_=f-v|0;if(!x)v=_;else s[K>>2]=(s[K>>2]|0)+_;s[o>>2]=v;_=k;while(1){if(v>>>0>=8388609)break;f=s[K>>2]|0;k=f>>>23;if((k|0)==255)s[Z>>2]=(s[Z>>2]|0)+1;else{f=f>>>31;v=s[W>>2]|0;if((v|0)>-1){_=s[V>>2]|0;if((_+(s[p>>2]|0)|0)>>>0<(s[b>>2]|0)>>>0){s[V>>2]=_+1;r[(s[Je>>2]|0)+_>>0]=v+f;v=0}else v=-1;s[X>>2]=s[X>>2]|v}v=s[Z>>2]|0;if(v|0){f=f+255&255;do{_=s[V>>2]|0;if((_+(s[p>>2]|0)|0)>>>0<(s[b>>2]|0)>>>0){s[V>>2]=_+1;r[(s[Je>>2]|0)+_>>0]=f;_=0;v=s[Z>>2]|0}else _=-1;s[X>>2]=s[X>>2]|_;v=v+-1|0;s[Z>>2]=v}while((v|0)!=0)}s[W>>2]=k&255;f=s[K>>2]|0;v=s[o>>2]|0;_=s[ce>>2]|0}s[K>>2]=f<<8&2147483392;v=v<<8;s[o>>2]=v;_=_+8|0;s[ce>>2]=_}k=(s[Ce>>2]|0)==1001;if(k)f=u;else f=_+((re(v|0)|0)+-32)+7>>3;kt=m-f|0;f=(s[Ie>>2]|0)/1600|0;f=(kt|0)<(f|0)?kt:f;if((f|0)>=2)if((f|0)>257)S=257;else ct=436;else{f=2;ct=436}if((ct|0)==436)S=f;if(!k){M=S;break}f=v>>>8;if((S|0)==2)v=v+(te(f,-255)|0)|0;else{v=v-(te(f,258-S|0)|0)|0;s[K>>2]=(s[K>>2]|0)+v;v=f}s[o>>2]=v;while(1){if(v>>>0>=8388609){M=S;break t}f=s[K>>2]|0;k=f>>>23;if((k|0)==255)s[Z>>2]=(s[Z>>2]|0)+1;else{f=f>>>31;v=s[W>>2]|0;if((v|0)>-1){_=s[V>>2]|0;if((_+(s[p>>2]|0)|0)>>>0<(s[b>>2]|0)>>>0){s[V>>2]=_+1;r[(s[Je>>2]|0)+_>>0]=v+f;v=0}else v=-1;s[X>>2]=s[X>>2]|v}v=s[Z>>2]|0;if(v|0){f=f+255&255;do{_=s[V>>2]|0;if((_+(s[p>>2]|0)|0)>>>0<(s[b>>2]|0)>>>0){s[V>>2]=_+1;r[(s[Je>>2]|0)+_>>0]=f;_=0;v=s[Z>>2]|0}else _=-1;s[X>>2]=s[X>>2]|_;v=v+-1|0;s[Z>>2]=v}while((v|0)!=0)}s[W>>2]=k&255;f=s[K>>2]|0;v=s[o>>2]|0;_=s[ce>>2]|0}s[K>>2]=f<<8&2147483392;v=v<<8;s[o>>2]=v;_=_+8|0;s[ce>>2]=_}}while(0);if((ct|0)==456){s[he>>2]=0;y=0;M=0}kt=s[Ce>>2]|0;_=(kt|0)==1002?0:17;if((kt|0)==1e3){v=(s[ce>>2]|0)+((re(s[o>>2]|0)|0)+-32)+7>>3;li(Je);k=v}else{k=m-M|0;k=(k|0)<(u|0)?k:u;yt=s[Je>>2]|0;v=s[p>>2]|0;kt=0-v|0;Tn(yt+k+kt|0,yt+(s[b>>2]|0)+kt|0,v|0)|0;s[b>>2]=k;v=0}f=(y|0)==0;if(f?(s[Ce>>2]|0)==1e3:0)ct=464;else ct=462;do if((ct|0)==462){s[Be>>2]=ht;qs(Xe,10022,Be)|0;if((s[Ce>>2]|0)!=1001){ct=464;break}s[De>>2]=s[e+100>>2];s[De+4>>2]=s[e+104>>2];s[Ue>>2]=De;qs(Xe,10028,Ue)|0}while(0);if((ct|0)==464){s[je>>2]=0;qs(Xe,10028,je)|0}if(!(f|(x|0)==0)){s[Fe>>2]=0;qs(Xe,10010,Fe)|0;s[ze>>2]=0;qs(Xe,4006,ze)|0;s[He>>2]=-1;qs(Xe,4002,He)|0;if((Jt(Xe,w,(s[dt>>2]|0)/200|0,ee+k|0,M,0)|0)<0){v=-3;break}s[Ge>>2]=ft;qs(Xe,4031,Ge)|0;qs(Xe,4028,Ve)|0}s[ut>>2]=_;qs(Xe,10010,ut)|0;_=s[Ce>>2]|0;do if((_|0)==1e3)ct=482;else{kt=s[Re>>2]|0;if((_|0)!=(kt|0)&(kt|0)>0){qs(Xe,4028,Ke)|0;Jt(Xe,c,(s[dt>>2]|0)/400|0,We,2,0)|0;s[Ze>>2]=0;qs(Xe,10002,Ze)|0}if(((s[ce>>2]|0)+((re(s[o>>2]|0)|0)+-32)|0)>(k<<3|0)){ct=482;break}do if(!(f|(x|0)==0)){if((s[Ce>>2]|0)!=1001)break;if(!(s[ot>>2]|0))break;s[Ye>>2]=(s[Ie>>2]|0)-(s[e+36>>2]|0);qs(Xe,4002,Ye)|0}while(0);s[$e>>2]=s[ot>>2];qs(Xe,4006,$e)|0;v=Jt(Xe,w,i,0,k,Je)|0;if((v|0)<0){v=-3;break e}if(f){y=0;ct=488;break}if(!x){_=k;ct=484;break}_=s[Ce>>2]|0;if((_|0)!=1001){S=y;break}if(!(s[ot>>2]|0)){ct=488;break}Mn(ee+v|0,ee+k|0,M|0)|0;ct=488}while(0);do if((ct|0)==482){if(f){y=0;ct=488;break}else _=k;if(!x)ct=484;else ct=488}while(0);if((ct|0)==484){k=s[dt>>2]|0;f=(k|0)/200|0;k=(k|0)/400|0;qs(Xe,4028,Qe)|0;s[et>>2]=0;qs(Xe,10010,et)|0;s[tt>>2]=0;qs(Xe,10002,tt)|0;s[it>>2]=0;qs(Xe,4006,it)|0;s[rt>>2]=-1;qs(Xe,4002,rt)|0;if((s[Ce>>2]|0)==1001){yt=s[Je>>2]|0;_=s[p>>2]|0;kt=0-_|0;Tn(yt+v+kt|0,yt+(s[b>>2]|0)+kt|0,_|0)|0;s[b>>2]=v;_=v}kt=i-f|0;Jt(Xe,w+((te(s[at>>2]|0,kt-k|0)|0)<<2)|0,k,nt,2,0)|0;if((Jt(Xe,w+((te(s[at>>2]|0,kt)|0)<<2)|0,f,ee+_|0,M,0)|0)<0){v=-3;break}s[st>>2]=ft;qs(Xe,4031,st)|0;ct=488}if((ct|0)==488){_=s[Ce>>2]|0;S=y}k=s[Pe>>2]|0;y=(s[dt>>2]|0)/(i|0)|0;f=0;while(1){if((y|0)>=400)break;y=y<<1;f=f+1|0}switch(_|0){case 1e3:{_=(B<<5)+96&224|(f<<3)+-16;break}case 1002:{_=((B|0)<1102?0:(B<<5)+64&96)|f<<3|128;break}default:_=B<<4|(f<<3)+240|96}r[a>>0]=_|((k|0)==2&1)<<2;u=s[o>>2]|0;s[lt>>2]=u^s[ft>>2];if(!xe)_=s[Ce>>2]|0;else _=1002;s[Re>>2]=_;c=s[Pe>>2]|0;s[e+15144>>2]=c;s[e+15148>>2]=i;s[e+15164>>2]=0;t:do if(s[e+184>>2]|0){do if(!(s[ht>>2]|0)){if(!Oe)break t;_=e+19036|0}else{_=e+19036|0;A=+h[e+19040>>2];if(Oe|0)break;k=+h[ht+28>>2]<.10000000149011612;if(k){y=te(s[at>>2]|0,i)|0;f=0;E=0;while(1){if((f|0)>=(y|0))break;_t=+h[t+(f<<2)>>2];f=f+1|0;E=E+_t*_t}if(!((E/+(y|0)*316.2300109863281<=A|0)==0|k^1))break}s[_>>2]=0;break t}while(0);kt=s[_>>2]|0;y=kt+1|0;s[_>>2]=y;if((kt|0)<=9)break;if((y|0)>=31){s[_>>2]=10;break}s[lt>>2]=0;y=s[Ce>>2]|0;v=(s[dt>>2]|0)/(i|0)|0;_=0;while(1){if((v|0)>=400)break;v=v<<1;_=_+1|0}switch(y|0){case 1e3:{v=(B<<5)+96&224|(_<<3)+-16;break}case 1002:{v=((B|0)<1102?0:(B<<5)+64&96)|_<<3|128;break}default:v=B<<4|(_<<3)+240|96}r[a>>0]=v|((c|0)==2&1)<<2;v=1;break e}while(0);t:do if(((s[ce>>2]|0)+((re(u|0)|0)+-32)|0)>((Le<<3)+-8|0)){if((Le|0)<2){v=-2;break e}r[ee>>0]=0;s[lt>>2]=0;v=1}else{if(!((s[Ce>>2]|0)==1e3&(S|0)==0))break;while(1){if((v|0)<=2)break t;if(r[a+v>>0]|0)break t;v=v+-1|0}}while(0);v=v+(M+1)|0;t:do if(!(s[ot>>2]|0)){i:do if((v|0)>=1){do if((v|0)!=(Le|0)){if((v|0)>(Le|0))break i;_=ut+4|0;s[_>>2]=0;kt=a+Le+(0-v)|0;Tn(kt|0,a|0,v|0)|0;if(js(ut,kt,v)|0)break i;v=Fs(ut,s[_>>2]|0,a,Le,1)|0;if((v|0)>0)break;if(!v){v=Le;break t}else{v=-3;break e}}while(0);v=Le;break t}while(0);v=-3;break e}while(0)}while(0);qe(ue|0);kt=v;l=pt;return kt|0}while(0);y=s[e+15136>>2]|0;_=s[e+15152>>2]|0;_=(_|0)==0?1101:_;y=(y|0)==0?1e3:y;e:do if((v|0)>100)ct=63;else{if((v|0)<50|(y|0)==1e3)if((_|0)>1103){_=1103;k=1e3;break}else{y=1e3;ct=64;break}switch(y|0){case 1002:{ct=63;break e}case 1001:break;default:{k=y;break e}}_=(_|0)>1104?_:1104;k=1001}while(0);if((ct|0)==63)if((_|0)==1102){_=1101;k=1002}else{y=1002;ct=64}if((ct|0)==64)k=y;f=s[e+15104>>2]|0;y=0;while(1){if((v|0)>=400)break;v=v<<1;y=y+1|0}switch(k|0){case 1e3:{v=(_<<5)+96&224|(y<<3)+-16;break}case 1002:{v=((_|0)<1102?0:(_<<5)+64&96)|y<<3|128;break}default:v=_<<4|(y<<3)+240|96}v=(v|((f|0)==2&1)<<2)&255;r[a>>0]=v;if(s[ot>>2]|0){kt=1;l=pt;return kt|0}do if((Le|0)==1)ct=78;else{if((Le|0)>=1){_=x+4|0;s[_>>2]=0;kt=a+Le+-1|0;r[kt>>0]=v;v=js(x,kt,1)|0;if(!v){v=Fs(x,s[_>>2]|0,a,Le,1)|0;if((v|0)>0){ct=78;break}if(!v)break;l=pt;return v|0}}else v=-1;kt=v;l=pt;return kt|0}while(0);kt=Le;l=pt;return kt|0}function Ds(e,t,i,r,n,s,a,o,f){e=e|0;t=t|0;i=+i;r=+r;n=n|0;s=s|0;a=a|0;o=o|0;f=f|0;var c=0,l=0,u=0;c=48e3/(f|0)|0;l=(n|0)/(c|0)|0;e:do if((a|0)==1){f=0;while(1){if((f|0)>=(l|0)){f=0;break e}u=+h[o+((te(f,c)|0)<<2)>>2];u=u*u;h[t+(f<<2)>>2]=(u*r+(1-u)*i)*+h[e+(f<<2)>>2];f=f+1|0}}else{f=0;while(1){if((f|0)>=(l|0)){f=0;break e}u=+h[o+((te(f,c)|0)<<2)>>2];u=u*u;u=u*r+(1-u)*i;n=f<<1;h[t+(n<<2)>>2]=u*+h[e+(n<<2)>>2];n=n|1;h[t+(n<<2)>>2]=u*+h[e+(n<<2)>>2];f=f+1|0}}while(0);do{n=l;while(1){if((n|0)>=(s|0))break;o=(te(n,a)|0)+f|0;h[t+(o<<2)>>2]=+h[e+(o<<2)>>2]*r;n=n+1|0}f=f+1|0}while((f|0)<(a|0));return}function Ls(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var a=0,o=0,f=0,c=0,u=0,d=0,p=0,b=0;b=l;if((s[e+108>>2]|0)==2051)a=0;else a=s[e+116>>2]|0;f=s[e+156>>2]|0;p=e+112|0;c=s[e+144>>2]|0;o=(f|0)==5010;e:do if(((c|0)/200|0|0)>(i|0)|o^1){a=(c|0)/400|0;if((a|0)<=(i|0)){if((f|0)!=5e3){if(o)a=(c|0)/50|0;else{if((f+-5001|0)>>>0>=6){u=-1;break}u=(c*3|0)/50|0;a=a<(i|0)){u=-1;break}}else a=i;if(!((a*400|0)==(c|0)|(a*200|0)==(c|0)|(a*100|0)==(c|0))?(u=a*50|0,!((u|0)==(c|0)|(a*25|0)==(c|0)|(u|0)==(c*3|0))):0)u=-1;else d=16}else u=-1}else{f=(c|0)/400|0;o=Os(t,i,s[p>>2]|0,c,s[e+160>>2]|0,e+7060|0,a,1)|0;while(1){a=f<-1?a:-1;a=s[p>>2]|0;o=te(u,a)|0;f=l;l=l+((1*(o<<2)|0)+15&-16)|0;c=0;while(1){if((c|0)>=(o|0))break;h[f+(c<<2)>>2]=+(n[t+(c<<1)>>1]|0)*30517578125e-15;c=c+1|0}e=Ns(e,f,u,r,3828,16,t,i,0,-2,a,1,0)|0;l=b;return e|0}function Bs(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,a=0,o=0,f=0,c=0,u=0,d=0,p=0,b=0,m=0;m=l;l=l+80|0;f=m+48|0;a=m+40|0;r=m+32|0;d=m+24|0;u=m+16|0;c=m+8|0;o=m;b=m+56|0;s[b>>2]=i;p=e+(s[e>>2]|0)|0;e:do switch(t|0){case 4e3:{p=(s[b>>2]|0)+(4-1)&~(4-1);t=s[p>>2]|0;s[b>>2]=p+4;switch(t|0){case 2051:case 2049:case 2048:break;default:{i=-1;t=108;break e}}i=e+108|0;if((s[e+15164>>2]|0)==0?(s[i>>2]|0)!=(t|0):0){i=-1;t=108;break e}s[i>>2]=t;i=0;t=108;break}case 4001:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(!i)t=109;else{s[i>>2]=s[e+108>>2];i=0;t=108}break}case 4002:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if((i|0)!=-1e3)if((i|0)!=-1){if((i|0)<1){t=109;break e}if((i|0)<501)i=500;else{b=(s[e+112>>2]|0)*3e5|0;i=(i|0)>(b|0)?b:i}}else i=-1;else i=-1e3;s[e+164>>2]=i;i=0;t=108;break}case 4003:{p=(s[b>>2]|0)+(4-1)&~(4-1);r=s[p>>2]|0;s[b>>2]=p+4;if(!r)t=109;else{i=s[e+15148>>2]|0;if(!i)t=(s[e+144>>2]|0)/400|0;else t=i;i=s[e+164>>2]|0;switch(i|0){case-1e3:{i=s[e+144>>2]|0;i=((i*60|0)/(t|0)|0)+(te(i,s[e+112>>2]|0)|0)|0;break}case-1:{i=((s[e+144>>2]|0)*10208|0)/(t|0)|0;break}default:{}}s[r>>2]=i;i=0;t=108}break}case 4022:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if((i|0)<1){if((i|0)!=-1e3){t=109;break e}}else if((i|0)>(s[e+112>>2]|0)){t=109;break e}s[e+120>>2]=i;i=0;t=108;break}case 4023:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(!i)t=109;else{s[i>>2]=s[e+120>>2];i=0;t=108}break}case 4004:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if((i+-1101|0)>>>0>4)t=109;else{s[e+132>>2]=i;switch(i|0){case 1101:{s[e+20>>2]=8e3;i=0;t=108;break e}case 1102:{s[e+20>>2]=12e3;i=0;t=108;break e}default:{s[e+20>>2]=16e3;i=0;t=108;break e}}}break}case 4005:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(!i)t=109;else{s[i>>2]=s[e+132>>2];i=0;t=108}break}case 4008:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if((i|0)>=1101){if((i|0)>1105){t=109;break e}s[e+128>>2]=i;if((i|0)==1101){s[e+20>>2]=8e3;i=0;t=108;break e}else t=i;i=e+20|0;if((t|0)==1102){s[i>>2]=12e3;i=0;t=108;break e}}else{if((i|0)!=-1e3){t=109;break e}s[e+128>>2]=-1e3;i=e+20|0}s[i>>2]=16e3;i=0;t=108;break}case 4009:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(!i)t=109;else{s[i>>2]=s[e+15152>>2];i=0;t=108}break}case 4016:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(i>>>0>1)t=109;else{s[e+184>>2]=i;i=0;t=108}break}case 4017:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(!i)t=109;else{s[i>>2]=s[e+184>>2];i=0;t=108}break}case 4010:{d=(s[b>>2]|0)+(4-1)&~(4-1);i=s[d>>2]|0;s[b>>2]=d+4;if(i>>>0>10)t=109;else{s[e+44>>2]=i;s[o>>2]=i;qs(p,4010,o)|0;i=0;t=108}break}case 4011:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(!i)t=109;else{s[i>>2]=s[e+44>>2];i=0;t=108}break}case 4012:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(i>>>0>1)t=109;else{s[e+48>>2]=i;i=0;t=108}break}case 4013:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(!i)t=109;else{s[i>>2]=s[e+48>>2];i=0;t=108}break}case 4014:{d=(s[b>>2]|0)+(4-1)&~(4-1);i=s[d>>2]|0;s[b>>2]=d+4;if(i>>>0>100)t=109;else{s[e+40>>2]=i;s[c>>2]=i;qs(p,4014,c)|0;i=0;t=108}break}case 4015:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(!i)t=109;else{s[i>>2]=s[e+40>>2];i=0;t=108}break}case 4006:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(i>>>0>1)t=109;else{s[e+148>>2]=i;s[e+60>>2]=1-i;i=0;t=108}break}case 4007:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(!i)t=109;else{s[i>>2]=s[e+148>>2];i=0;t=108}break}case 11018:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if((i+1|0)>>>0>101)t=109;else{s[e+140>>2]=i;i=0;t=108}break}case 11019:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(!i)t=109;else{s[i>>2]=s[e+140>>2];i=0;t=108}break}case 4020:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(i>>>0>1)t=109;else{s[e+152>>2]=i;i=0;t=108}break}case 4021:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(!i)t=109;else{s[i>>2]=s[e+152>>2];i=0;t=108}break}case 4024:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if((i|0)<3001)switch(i|0){case-1e3:break;default:{t=109;break e}}else switch(i|0){case 3002:case 3001:break;default:{t=109;break e}}s[e+124>>2]=i;i=0;t=108;break}case 4025:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(!i)t=109;else{s[i>>2]=s[e+124>>2];i=0;t=108}break}case 4027:{p=(s[b>>2]|0)+(4-1)&~(4-1);t=s[p>>2]|0;s[b>>2]=p+4;if(t){i=(s[e+144>>2]|0)/400|0;s[t>>2]=i;if((s[e+108>>2]|0)==2051){i=0;t=108}else{s[t>>2]=i+(s[e+116>>2]|0);i=0;t=108}}else t=109;break}case 4029:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(!i)t=109;else{s[i>>2]=s[e+144>>2];i=0;t=108}break}case 4031:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(!i)t=109;else{s[i>>2]=s[e+19044>>2];i=0;t=108}break}case 4036:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if((i+-8|0)>>>0>16)t=109;else{s[e+168>>2]=i;i=0;t=108}break}case 4037:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(!i)t=109;else{s[i>>2]=s[e+168>>2];i=0;t=108}break}case 4040:{d=(s[b>>2]|0)+(4-1)&~(4-1);i=s[d>>2]|0;s[b>>2]=d+4;switch(i|0){case 5010:case 5006:case 5005:case 5004:case 5003:case 5002:case 5001:case 5e3:break;default:{t=109;break e}}s[e+156>>2]=i;s[u>>2]=i;qs(p,4040,u)|0;i=0;t=108;break}case 4041:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(!i)t=109;else{s[i>>2]=s[e+156>>2];i=0;t=108}break}case 4042:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(i>>>0>1)t=109;else{s[e+76>>2]=i;i=0;t=108}break}case 4043:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(!i)t=109;else{s[i>>2]=s[e+76>>2];i=0;t=108}break}case 4028:{r=e+(s[e+4>>2]|0)|0;a=e+15104|0;kn(e+192|0,0,18856)|0;qs(p,4028,d)|0;i=s[e+180>>2]|0;kn(r|0,0,20400)|0;t=0;while(1){if((t|0)==2)break;Fi(r+(t*10156|0)|0,i)|0;t=t+1|0}s[r+20376>>2]=1;s[r+20380>>2]=1;s[a>>2]=s[e+112>>2];n[e+15108>>1]=16384;h[e+15116>>2]=1;s[e+15164>>2]=1;s[e+15136>>2]=1001;s[e+15152>>2]=1105;s[e+15112>>2]=193536;i=0;t=108;break}case 11002:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if((i|0)<1e3){if((i|0)!=-1e3){t=109;break e}}else if((i|0)>1002){t=109;break e}s[e+136>>2]=i;i=0;t=108;break}case 10024:{t=(s[b>>2]|0)+(4-1)&~(4-1);i=s[t>>2]|0;s[b>>2]=t+4;s[e+176>>2]=i;s[r>>2]=i;i=qs(p,10024,r)|0;t=108;break}case 10026:{t=(s[b>>2]|0)+(4-1)&~(4-1);i=s[t>>2]|0;s[b>>2]=t+4;s[e+15168>>2]=i;s[a>>2]=i;i=qs(p,10026,a)|0;t=108;break}case 10015:{e=(s[b>>2]|0)+(4-1)&~(4-1);i=s[e>>2]|0;s[b>>2]=e+4;if(!i)t=109;else{s[f>>2]=i;i=qs(p,10015,f)|0;t=108}break}default:{i=-5;t=108}}while(0);if((t|0)==108){e=i;l=m;return e|0}else if((t|0)==109){e=-1;l=m;return e|0}return 0}function Us(e){e=e|0;Hr(e);return}function js(e,t,i){e=e|0;t=t|0;i=i|0;var n=0,o=0,f=0,h=0,c=0,u=0;u=l;l=l+16|0;h=u;if((i|0)<1){c=-4;l=u;return c|0}c=e+4|0;f=s[c>>2]|0;e:do if(f){if(((r[e>>0]^r[t>>0])&255)>=4){c=-4;l=u;return c|0}}else{r[e>>0]=r[t>>0]|0;n=r[t>>0]|0;do if(n<<24>>24>=0)if((n&96)==96){if(n&8){n=160;break}s[e+296>>2]=80;break e}else{n=(n&255)>>>3&3;if((n|0)==3){n=480;break}s[e+296>>2]=(8e3<>>0)/100|0;break e}else n=(8e3<<((n&255)>>>3&3)>>>0)/400|0;while(0);s[e+296>>2]=n}while(0);n=(a[t>>0]|0)&3;if(n)if((n|0)==3){if((i|0)<2){c=-4;l=u;return c|0}n=(a[t+1>>0]|0)&63;if(!n){c=-4;l=u;return c|0}else o=n}else o=2;else o=1;if((te(o+f|0,s[e+296>>2]|0)|0)>960){c=-4;l=u;return c|0}n=rr(t,i,0,h,e+8+(f<<2)|0,e+200+(f<<1)|0,0,0)|0;if((n|0)<1){c=n;l=u;return c|0}s[c>>2]=(s[c>>2]|0)+o;c=0;l=u;return c|0}function Fs(e,t,i,o,f){e=e|0;t=t|0;i=i|0;o=o|0;f=f|0;var h=0,c=0,l=0,u=0,d=0,p=0,b=0;if((t|0)<1){e=-1;return e|0}if((s[e+4>>2]|0)<(t|0)){e=-1;return e|0}p=e+200|0;e:do switch(t|0){case 1:{h=n[p>>1]|0;if((h|0)<(o|0)){r[i>>0]=a[e>>0]&252;c=i+1|0;h=h+1|0;d=14;break e}else{e=-2;return e|0}}case 2:{h=n[e+202>>1]|0;c=n[p>>1]|0;if(h<<16>>16==c<<16>>16){h=h<<16>>16<<1|1;if((h|0)>(o|0)){e=-2;return e|0}else{r[i>>0]=a[e>>0]&252|1;c=i+1|0;d=14;break e}}h=(c<<16>>16)+(h<<16>>16)+2+(c<<16>>16>251&1)|0;if((h|0)>(o|0)){e=-2;return e|0}u=i+1|0;r[i>>0]=a[e>>0]&252|2;c=n[p>>1]|0;l=c<<16>>16;if(c<<16>>16<252){r[u>>0]=c;c=1}else{c=l|252;r[u>>0]=c;r[i+2>>0]=(l-(c&255)|0)>>>2;c=2}c=u+c|0;d=14;break}default:{h=1;d=15}}while(0);if((d|0)==14)if((f|0)!=0&(h|0)<(o|0)){h=1;d=15}e:do if((d|0)==15){while(1){if((h|0)>=(t|0)){d=23;break}if((n[e+200+(h<<1)>>1]|0)!=(n[p>>1]|0)){d=17;break}h=h+1|0;d=15}do if((d|0)==17){h=t+-1|0;c=0;l=2;while(1){if((c|0)>=(h|0))break;p=n[e+200+(c<<1)>>1]|0;c=c+1|0;l=l+((p<<16>>16>251?2:1)+(p<<16>>16))|0}h=l+(n[e+200+(h<<1)>>1]|0)|0;if((h|0)>(o|0)){e=-2;return e|0}else{r[i>>0]=a[e>>0]|3;l=t|128;r[i+1>>0]=l;u=1;break}}else if((d|0)==23){h=(te(n[p>>1]|0,t)|0)+2|0;if((h|0)>(o|0)){e=-2;return e|0}else{r[i>>0]=a[e>>0]|3;r[i+1>>0]=t;l=t;u=0;break}}while(0);c=i+2|0;if((f|0)!=0?(b=o-h|0,(h|0)!=(o|0)):0){r[i+1>>0]=l|64;h=(b+-1|0)/255|0;l=0;while(1){if((l|0)>=(h|0))break;r[c>>0]=-1;l=l+1|0;c=c+1|0}r[c>>0]=b+(te(h,-255)|0)+255;c=c+1|0;h=o}if(u){d=t+-1|0;p=0;while(1){if((p|0)>=(d|0))break e;l=n[e+200+(p<<1)>>1]|0;u=l<<16>>16;if(l<<16>>16<252){r[c>>0]=l;l=1}else{l=u|252;r[c>>0]=l;r[c+1>>0]=(u-(l&255)|0)>>>2;l=2}p=p+1|0;c=c+l|0}}}while(0);l=0;while(1){if((l|0)>=(t|0))break;b=e+200+(l<<1)|0;Tn(c|0,s[e+8+(l<<2)>>2]|0,n[b>>1]|0)|0;l=l+1|0;c=c+(n[b>>1]|0)|0}if(!f){e=h;return e|0}l=i+o|0;while(1){if(c>>>0>=l>>>0)break;r[c>>0]=0;c=c+1|0}return h|0}function zs(e,t,i,r,a,o,f,c,u,d,p,b){e=e|0;t=t|0;i=i|0;r=r|0;a=a|0;o=o|0;f=f|0;c=c|0;u=u|0;d=d|0;p=p|0;b=b|0;var m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,R=0,x=0,C=0,I=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,V=0,W=0,K=0,Z=0,Y=0,$=0,X=0,J=0,ee=0,te=0,ie=0,re=0,ne=0,se=0,ae=0,oe=0,fe=0,he=0,ce=0,le=0,ue=0,de=0,pe=0,be=0,me=0,we=0,ge=0,ve=0,_e=0,ye=0,ke=0,Ee=0,Ae=0,Se=0,Me=0,Te=0,Re=0,xe=0,Ce=0,Ie=0,Pe=0,Oe=0,Ne=0,De=0,Le=0,Be=0,Ue=0;Le=l;l=l+10288|0;xe=Le+9888|0;Me=Le+9816|0;Ie=Le+9744|0;Se=Le+9712|0;Te=Le+9608|0;Re=Le+9600|0;Ce=Le+5760|0;Oe=Le+1920|0;Ne=Le+960|0;Pe=Le;if(!i)u=e+8504|0;else{_e=(u*195|0)/100|0;_e=(_e|0)<(r|0)?_e:r;ye=e+6884|0;V=s[ye>>2]|0;ke=e+6864|0;Ee=e+6868|0;Ae=e+6844|0;W=t+72|0;K=e+5764|0;u=e+8504|0;Z=e+2884|0;Y=e+4804|0;$=e+3844|0;X=e+6856|0;J=(d|0)<8;ee=e+6848|0;te=e+6852|0;ie=e+5840|0;re=Te+80|0;ne=Te+84|0;se=Te+88|0;ae=Te+92|0;oe=Te+96|0;fe=Re+4|0;he=e+6888|0;ce=e+7688|0;le=e+6892|0;ue=e+7692|0;de=e+7684|0;pe=e+8484|0;be=e+8500|0;me=e+8492|0;we=e+8496|0;ge=e+8488|0;ve=e+6860|0;U=d+-8|0;F=V;V=_e-V|0;while(1){j=(V|0)>480;w=j?480:V;s[ke>>2]=(s[ke>>2]|0)+1;r=s[Ee>>2]|0;D=(r|0)>19?.05000000074505806:1/+(r+1|0);B=r+1|0;N=(r|0)>49?.019999999552965164:1/+(B|0);S=(r|0)>999;P=1/+(B|0);if((r|0)<4){h[Ae>>2]=.5;t=s[W>>2]|0;if(!r){s[K>>2]=240;d=240;r=t}else{r=t;De=7}}else{r=s[W>>2]|0;De=7}if((De|0)==7){De=0;d=s[K>>2]|0}t=720-d|0;Zs[p&1](i,e+2884+(d<<2)|0,(t|0)>(w|0)?w:t,F,o,f,c); -d=s[K>>2]|0;t=d+w|0;do if((t|0)<720)s[K>>2]=t;else{L=s[u>>2]|0;B=e+8516+(L<<5)|0;s[u>>2]=L+((L|0)>198?-199:1);t=0;while(1){if((t|0)==240)break;I=+h[828+(t<<2)>>2];h[Ce+(t<<3)>>2]=I*+h[e+2884+(t<<2)>>2];h[Ce+(t<<3)+4>>2]=I*+h[e+2884+(t+240<<2)>>2];O=480-t+-1|0;h[Ce+(O<<3)>>2]=I*+h[e+2884+(O<<2)>>2];h[Ce+(O<<3)+4>>2]=I*+h[e+2884+(720-t+-1<<2)>>2];t=t+1|0}Mn(Z|0,Y|0,960)|0;t=d+-720+w|0;Zs[p&1](i,$,t,F+720-d|0,o,f,c);s[K>>2]=t+240;m=+h[r+4>>2];t=r+44|0;d=0;while(1){if((d|0)>=(s[r>>2]|0))break;I=+h[Ce+(d<<3)+4>>2];h[Oe+(n[(s[t>>2]|0)+(d<<1)>>1]<<3)>>2]=m*+h[Ce+(d<<3)>>2];h[Oe+(n[(s[t>>2]|0)+(d<<1)>>1]<<3)+4>>2]=m*I;d=d+1|0}ui(r,Oe);I=+h[Oe>>2];if(I!=I|0!=0){s[B>>2]=0;break}else d=1;while(1){if((d|0)==240)break;E=+h[Oe+(d<<3)>>2];O=480-d|0;v=+h[Oe+(O<<3)>>2];m=E+v;_=+h[Oe+(d<<3)+4>>2];k=+h[Oe+(O<<3)+4>>2];g=_-k;k=_+k;E=v-E;v=m*m;_=g*g;do if(!(v+_<1.000000045813705e-18))if(v<_){m=-(m*g*(_+v*.43157973885536194))/((_+v*.6784840226173401)*(_+v*.0859554186463356))+(g<0?-1.5707963705062866:1.5707963705062866);break}else{m=m*g;m=m*(v+_*.43157973885536194)/((v+_*.6784840226173401)*(v+_*.0859554186463356))+(g<0?-1.5707963705062866:1.5707963705062866)-(m<0?-1.5707963705062866:1.5707963705062866);break}else m=0;while(0);v=m*.15915493667125702;r=e+4+(d<<2)|0;_=v-+h[r>>2];t=e+964+(d<<2)|0;y=_-+h[t>>2];m=k*k;g=E*E;do if(!(m+g<1.000000045813705e-18))if(m>2]=+q(+T)+ +q(+I);I=I*I;I=I*I;O=e+1924+(d<<2)|0;h[Ne+(d<<2)>>2]=1/((+h[O>>2]+R*R*2+I)*.25*62341.81640625+1)+-.014999999664723873;h[r>>2]=x;h[t>>2]=C;h[O>>2]=I;d=d+1|0}O=e+8516+(L<<5)+16|0;h[O>>2]=0;e:do if(!(s[Ee>>2]|0)){r=0;while(1){if((r|0)==18){w=0;T=0;E=0;R=0;m=0;x=0;C=0;I=0;break e}h[e+6420+(r<<2)>>2]=1e10;h[e+6492+(r<<2)>>2]=-1e10;r=r+1|0}}else{w=0;T=0;E=0;R=0;m=0;x=0;C=0;I=0}while(0);while(1){if((w|0)>=18)break;d=w+1|0;r=s[1788+(d<<2)>>2]|0;v=0;t=s[1788+(w<<2)>>2]|0;g=0;A=0;while(1){if((t|0)>=(r|0))break;Be=+h[Oe+(t<<3)>>2];M=480-t|0;k=+h[Oe+(M<<3)>>2];y=+h[Oe+(t<<3)+4>>2];_=+h[Oe+(M<<3)+4>>2];_=Be*Be+k*k+y*y+_*_;y=g+_*2*(.5-+h[Pe+(t<<2)>>2]);k=A+_*+h[Ne+(t<<2)>>2];v=v+_;t=t+1|0;g=y;A=k}if(!(v<1e9)|(v!=v|0!=0)){De=37;break}h[e+5844+((s[X>>2]|0)*72|0)+(w<<2)>>2]=v;y=v+1.0000000036274937e-15;E=E+g/y;_=v+1.000000013351432e-10;k=T+ +H(+_);_=+Q(+_);h[Ie+(w<<2)>>2]=_;r=e+6420+(w<<2)|0;v=+h[r>>2]+.009999999776482582;v=_>2]=v;t=e+6492+(w<<2)|0;g=+h[t>>2]+-.10000000149011612;g=_>g?_:g;h[t>>2]=g;if(g>2]=g;v=v+-.5;h[r>>2]=v}_=(_-v)/(g+1.0000000036274937e-15-v);g=0;v=0;r=0;while(1){if((r|0)==8)break;Be=+h[e+5844+(r*72|0)+(w<<2)>>2];g=g+ +H(+Be);v=v+Be;r=r+1|0}v=g/+H(+(v*8+1e-15));v=v>.9900000095367432?.9900000095367432:v;v=v*v;v=v*v;Be=A/y;r=e+5768+(w<<2)|0;g=v*+h[r>>2];g=Be>g?Be:g;h[Me+(w<<2)>>2]=g;m=m+g;if((w|0)>8)m=m-+h[Me+(w+-9<<2)>>2];A=(+(w+-18|0)*.029999999329447746+1)*m;h[r>>2]=g;Be=I+g*+(w+-8|0);w=d;T=k;R=R+v;x=x>A?x:A;C=C+_;I=Be}if((De|0)==37){De=0;s[B>>2]=0;break}k=J?.0005699999746866524:.0005699999746866524/+(1<>2]|0;d=S+1|0;w=s[1864+(d<<2)>>2]|0;_=0;r=t;while(1){if((r|0)>=(w|0))break;v=+h[Oe+(r<<3)>>2];P=+h[Oe+(r<<3)+4>>2];Ue=480-r|0;A=+h[Oe+(Ue<<3)>>2];Be=+h[Oe+(Ue<<3)+4>>2];_=_+(v*v+A*A+P*P+Be*Be);r=r+1|0}v=g>_?g:_;Ue=e+6564+(S<<2)|0;g=y*+h[Ue>>2];g=g>_?g:_;h[Ue>>2]=g;g=_>g?_:g;m=m*.05000000074505806;m=m>g?m:g;if(!(g>m*.1&g*1e9>v)){Ue=M;S=d;g=v;M=Ue;continue}if(!(g>k*+(w-t|0))){Ue=M;S=d;g=v;M=Ue;continue}M=S;S=d;g=v}w=s[Ee>>2]|0;S=(w|0)<3?20:M;T=+zr(T)*20;P=+h[ee>>2]+-.029999999329447746;P=P>T?P:T;h[ee>>2]=P;Be=+h[te>>2]*(1-N);h[te>>2]=T>2]*+h[Ie+(t<<2)>>2];t=t+1|0;m=Be}h[Se+(d<<2)>>2]=m;d=d+1|0}g=R/18;T=E/18;h[O>>2]=T+(1-T)*((w|0)<10?.5:C/18);N=x/9;Be=+h[ie>>2]*.800000011920929;Be=N>Be?N:Be;h[ie>>2]=Be;d=e+8516+(L<<5)+8|0;h[d>>2]=I*.015625;s[X>>2]=((s[X>>2]|0)+1|0)%8|0;s[Ee>>2]=(s[Ee>>2]|0)+1;t=e+8516+(L<<5)+4|0;h[t>>2]=Be;r=0;while(1){if((r|0)==4)break;h[Te+(r<<2)>>2]=(+h[Se+(r<<2)>>2]+ +h[e+6648+(r+24<<2)>>2])*-.12298999726772308+(+h[e+6648+(r<<2)>>2]+ +h[e+6648+(r+16<<2)>>2])*.49195000529289246+ +h[e+6648+(r+8<<2)>>2]*.6969299912452698-+h[e+6776+(r<<2)>>2]*1.4349000453948975;r=r+1|0}m=1-D;r=0;while(1){if((r|0)==4){r=0;break}Ue=e+6776+(r<<2)|0;h[Ue>>2]=m*+h[Ue>>2]+D*+h[Se+(r<<2)>>2];r=r+1|0}while(1){if((r|0)==4){r=0;break}h[Te+(r+4<<2)>>2]=(+h[Se+(r<<2)>>2]-+h[e+6648+(r+24<<2)>>2])*.6324599981307983+(+h[e+6648+(r<<2)>>2]-+h[e+6648+(r+16<<2)>>2])*.31622999906539917;r=r+1|0}while(1){if((r|0)==3)break;Ue=r+8|0;h[Te+(Ue<<2)>>2]=(+h[Se+(r<<2)>>2]+ +h[e+6648+(r+24<<2)>>2])*.5345199704170227-(+h[e+6648+(r<<2)>>2]+ +h[e+6648+(r+16<<2)>>2])*.26725998520851135-+h[e+6648+(Ue<<2)>>2]*.5345199704170227;r=r+1|0}e:do if((s[Ee>>2]|0)>5){r=0;while(1){if((r|0)==9){r=0;break e}Ue=e+6808+(r<<2)|0;Be=+h[Te+(r<<2)>>2];h[Ue>>2]=m*+h[Ue>>2]+D*Be*Be;r=r+1|0}}else r=0;while(0);while(1){if((r|0)==8){r=0;break}Ue=e+6648+(r+16<<2)|0;s[e+6648+(r+24<<2)>>2]=s[Ue>>2];M=e+6648+(r+8<<2)|0;s[Ue>>2]=s[M>>2];Ue=e+6648+(r<<2)|0;s[M>>2]=s[Ue>>2];s[Ue>>2]=s[Se+(r<<2)>>2];r=r+1|0}while(1){if((r|0)==9)break;Be=+H(+ +h[e+6808+(r<<2)>>2]);h[Te+(r+11<<2)>>2]=Be-+h[2464+(r<<2)>>2];r=r+1|0}h[re>>2]=+h[t>>2]+-.154723;h[ne>>2]=+h[O>>2]+-.724643;h[se>>2]=g+-.743717;h[ae>>2]=+h[d>>2]+.069216;h[oe>>2]=+h[te>>2]+-.06793;r=3304;w=0;while(1){if((w|0)==16){r=4968;w=0;break}t=r;d=0;m=+h[r>>2];while(1){t=t+4|0;if((d|0)==25)break;Be=m+ +h[Te+(d<<2)>>2]*+h[t>>2];d=d+1|0;m=Be}r=r+104|0;if(m<8)if(m>-8)if(m!=m|0!=0)m=0;else{Ue=m<0;m=Ue?-m:m;O=~~+z(+(m*25+.5));m=m-+(O|0)*.03999999910593033;Be=+h[2500+(O<<2)>>2];m=(Ue?-1:1)*(Be+m*(1-Be*Be)*(1-Be*m))}else m=-1;else m=1;h[xe+(w<<2)>>2]=m;w=w+1|0}while(1){if((w|0)==2)break;t=r;d=0;m=+h[r>>2];while(1){t=t+4|0;if((d|0)==16)break;Be=m+ +h[xe+(d<<2)>>2]*+h[t>>2];d=d+1|0;m=Be}r=r+68|0;if(m<8)if(m>-8)if(m!=m|0!=0)m=0;else{Ue=m<0;m=Ue?-m:m;O=~~+z(+(m*25+.5));m=m-+(O|0)*.03999999910593033;Be=+h[2500+(O<<2)>>2];m=(Ue?-1:1)*(Be+m*(1-Be*Be)*(1-Be*m))}else m=-1;else m=1;h[Re+(w<<2)>>2]=m;w=w+1|0}A=(+h[Re>>2]+1)*.5;E=+h[fe>>2]*.5+.5;E=E*E;h[fe>>2]=E;A=E*A+(1-E)*.5;h[Re>>2]=A;h[e+8516+(L<<5)+28>>2]=E;_=E*4999999873689376e-20;Ue=A>.949999988079071;O=A<.05000000074505806&(Ue^1);k=O|Ue?O?.05000000074505806:.949999988079071:A;D=+h[Ae>>2];O=D>.949999988079071;Ue=D<.05000000074505806&(O^1);y=Ue|O?Ue?.05000000074505806:.949999988079071:D;N=1-D;g=1-_;k=+q(+(k-y))*.05000000074505806/(k*(1-y)+y*(1-k))+.009999999776482582;y=+G(+(1-A),+k);k=+G(+A,+k);Be=(D*g+N*_)*k;Be=Be/((N*g+D*_)*y+Be);h[Ae>>2]=Be;h[e+8516+(L<<5)+20>>2]=Be;if((s[Ee>>2]|0)==1){h[he>>2]=.5;h[ce>>2]=.5;m=.5}else m=+h[he>>2];m=m+ +h[le>>2];v=+h[ce>>2]+ +h[ue>>2];h[he>>2]=m*g*y;h[ce>>2]=v*g*k;r=1;while(1){if((r|0)==199)break;Ue=r+1|0;h[e+6888+(r<<2)>>2]=+h[e+6888+(Ue<<2)>>2]*y;h[e+7688+(r<<2)>>2]=+h[e+7688+(Ue<<2)>>2]*k;r=Ue}h[de>>2]=v*_*y;h[pe>>2]=m*_*k;r=0;m=9.999999682655225e-21;while(1){if((r|0)==200)break;Be=m+(+h[e+6888+(r<<2)>>2]+ +h[e+7688+(r<<2)>>2]);r=r+1|0;m=Be}m=1/m;r=0;while(1){if((r|0)==200)break;Ue=e+6888+(r<<2)|0;h[Ue>>2]=+h[Ue>>2]*m;Ue=e+7688+(r<<2)|0;h[Ue>>2]=+h[Ue>>2]*m;r=r+1|0}if(E>.75){m=+h[Ae>>2];if(m>.9){Ue=(s[be>>2]|0)+1|0;s[be>>2]=(Ue|0)<500?Ue:500;D=+h[me>>2];Be=A-D;h[me>>2]=D+1/+(Ue|0)*(Be<-.20000000298023224?-.20000000298023224:Be)}if(m<.1){Ue=(s[we>>2]|0)+1|0;s[we>>2]=(Ue|0)<500?Ue:500;D=+h[ge>>2];Be=A-D;h[ge>>2]=D+1/+(Ue|0)*(Be>.20000000298023224?.20000000298023224:Be)}}else{if(!(s[be>>2]|0))h[me>>2]=.8999999761581421;if(!(s[we>>2]|0))h[ge>>2]=.10000000149011612}r=+h[Ae>>2]>.5&1;if((s[ve>>2]|0)!=(r|0))s[ke>>2]=0;s[ve>>2]=r;s[e+8516+(L<<5)+24>>2]=S;h[e+8516+(L<<5)+12>>2]=T;s[B>>2]=1}while(0);if(j){F=F+480|0;V=V+-480|0}else break}s[ye>>2]=_e-a}s[b>>2]=0;w=e+8508|0;r=s[w>>2]|0;t=s[u>>2]|0;d=t-r|0;d=(d|0)<0?d+200|0:d;if((a|0)<481|(t|0)==(r|0))u=r;else{u=r+1|0;u=(u|0)==200?0:u}r=(u|0)==(t|0)?t+-1|0:u;r=e+8516+(((r|0)<0?199:r)<<5)|0;s[b>>2]=s[r>>2];s[b+4>>2]=s[r+4>>2];s[b+8>>2]=s[r+8>>2];s[b+12>>2]=s[r+12>>2];s[b+16>>2]=s[r+16>>2];s[b+20>>2]=s[r+20>>2];s[b+24>>2]=s[r+24>>2];s[b+28>>2]=s[r+28>>2];r=e+8512|0;u=(s[r>>2]|0)+((a|0)/120|0)|0;s[r>>2]=u;while(1){if((u|0)<=3)break;Ue=u+-4|0;s[r>>2]=Ue;s[w>>2]=(s[w>>2]|0)+1;u=Ue}u=s[w>>2]|0;if((u|0)>199)s[w>>2]=u+-200;u=(d|0)>10?210-d|0:200;r=0;m=0;while(1){if((r|0)>=(u|0))break;Be=m+ +h[e+7688+(r<<2)>>2];r=r+1|0;m=Be}while(1){if((r|0)>=200)break;Be=m+ +h[e+6888+(r<<2)>>2];r=r+1|0;m=Be}h[b+20>>2]=m*+h[e+8492>>2]+(1-m)*+h[e+8488>>2];l=Le;return}function qs(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,n=0,a=0,o=0,f=0,c=0;f=l;l=l+16|0;r=f;s[r>>2]=i;do switch(t|0){case 4010:{o=(s[r>>2]|0)+(4-1)&~(4-1);t=s[o>>2]|0;s[r>>2]=o+4;if(t>>>0>10)t=40;else{s[e+24>>2]=t;t=39}break}case 10010:{o=(s[r>>2]|0)+(4-1)&~(4-1);t=s[o>>2]|0;s[r>>2]=o+4;if((t|0)>=0?(t|0)<(s[(s[e>>2]|0)+8>>2]|0):0){s[e+32>>2]=t;t=39}else t=40;break}case 10012:{o=(s[r>>2]|0)+(4-1)&~(4-1);t=s[o>>2]|0;s[r>>2]=o+4;if((t|0)>=1?(t|0)<=(s[(s[e>>2]|0)+8>>2]|0):0){s[e+36>>2]=t;t=39}else t=40;break}case 10002:{o=(s[r>>2]|0)+(4-1)&~(4-1);t=s[o>>2]|0;s[r>>2]=o+4;if(t>>>0>2)t=40;else{s[e+20>>2]=(t|0)<2&1;s[e+12>>2]=(t|0)==0&1;t=39}break}case 4014:{o=(s[r>>2]|0)+(4-1)&~(4-1);t=s[o>>2]|0;s[r>>2]=o+4;if(t>>>0>100)t=40;else{s[e+56>>2]=t;t=39}break}case 4020:{o=(s[r>>2]|0)+(4-1)&~(4-1);t=s[o>>2]|0;s[r>>2]=o+4;s[e+52>>2]=t;t=39;break}case 4006:{o=(s[r>>2]|0)+(4-1)&~(4-1);t=s[o>>2]|0;s[r>>2]=o+4;s[e+44>>2]=t;t=39;break}case 4002:{o=(s[r>>2]|0)+(4-1)&~(4-1);t=s[o>>2]|0;s[r>>2]=o+4;if((t|0)>500|(t|0)==-1){o=(s[e+4>>2]|0)*26e4|0;s[e+40>>2]=(t|0)<(o|0)?t:o;t=39}else t=40;break}case 10008:{o=(s[r>>2]|0)+(4-1)&~(4-1);t=s[o>>2]|0;s[r>>2]=o+4;if((t+-1|0)>>>0>1)t=40;else{s[e+8>>2]=t;t=39}break}case 4036:{o=(s[r>>2]|0)+(4-1)&~(4-1);t=s[o>>2]|0;s[r>>2]=o+4;if((t+-8|0)>>>0>16)t=40;else{s[e+60>>2]=t;t=39}break}case 4037:{o=(s[r>>2]|0)+(4-1)&~(4-1);t=s[o>>2]|0;s[r>>2]=o+4;s[t>>2]=s[e+60>>2];t=39;break}case 4040:{o=(s[r>>2]|0)+(4-1)&~(4-1);t=s[o>>2]|0;s[r>>2]=o+4;s[e+64>>2]=t;t=39;break}case 4028:{t=e+4|0;a=s[t>>2]|0;n=s[e>>2]|0;c=s[n+4>>2]|0;i=e+212+((te(a,c+1024|0)|0)<<2)|0;o=s[n+8>>2]|0;r=te(a,o)|0;i=i+(r<<2)|0;r=i+(r<<2)|0;kn(e+76|0,0,((te(c,a)|0)<<2)+212+(a<<12)+((te(a<<2,o)|0)<<2)+-76|0)|0;o=0;while(1){if((o|0)>=(te(a,s[n+8>>2]|0)|0))break;h[r+(o<<2)>>2]=-28;h[i+(o<<2)>>2]=-28;n=s[e>>2]|0;a=s[t>>2]|0;o=o+1|0}s[e+184>>2]=0;h[e+84>>2]=1;s[e+80>>2]=2;s[e+88>>2]=256;s[e+96>>2]=0;s[e+100>>2]=0;t=39;break}case 10016:{c=(s[r>>2]|0)+(4-1)&~(4-1);t=s[c>>2]|0;s[r>>2]=c+4;s[e+48>>2]=t;t=39;break}case 10022:{c=(s[r>>2]|0)+(4-1)&~(4-1);t=s[c>>2]|0;s[r>>2]=c+4;if(!t)t=39;else{c=e+120|0;s[c>>2]=s[t>>2];s[c+4>>2]=s[t+4>>2];s[c+8>>2]=s[t+8>>2];s[c+12>>2]=s[t+12>>2];s[c+16>>2]=s[t+16>>2];s[c+20>>2]=s[t+20>>2];s[c+24>>2]=s[t+24>>2];s[c+28>>2]=s[t+28>>2];t=39}break}case 10028:{c=(s[r>>2]|0)+(4-1)&~(4-1);t=s[c>>2]|0;s[r>>2]=c+4;if(!t)t=39;else{o=t;c=s[o+4>>2]|0;t=e+152|0;s[t>>2]=s[o>>2];s[t+4>>2]=c;t=39}break}case 10015:{c=(s[r>>2]|0)+(4-1)&~(4-1);t=s[c>>2]|0;s[r>>2]=c+4;if(!t)t=40;else{s[t>>2]=s[e>>2];t=39}break}case 4031:{c=(s[r>>2]|0)+(4-1)&~(4-1);t=s[c>>2]|0;s[r>>2]=c+4;if(!t)t=40;else{s[t>>2]=s[e+76>>2];t=39}break}case 10024:{c=(s[r>>2]|0)+(4-1)&~(4-1);t=s[c>>2]|0;s[r>>2]=c+4;s[e+68>>2]=t;t=39;break}case 10026:{c=(s[r>>2]|0)+(4-1)&~(4-1);t=s[c>>2]|0;s[r>>2]=c+4;s[e+204>>2]=t;t=39;break}default:{c=-5;l=f;return c|0}}while(0);if((t|0)==39){c=0;l=f;return c|0}else if((t|0)==40){c=-1;l=f;return c|0}return 0}var Hs=[Yn,Zr,hn,ln,vs,Yn,Yn,Yn];var Gs=[$n,rn,Jr,bn];var Vs=[Xn,Gr,en,Wr,Kr,Vr,sn,an,fn,cn,un,gs,Xn,Xn,Xn,Xn];var Ws=[Jn,ys];var Ks=[Qn,on,ws,Qn];var Zs=[es,Ps];var Ys=[ts];var $s=[is,_s,ms,is];var Xs=[rs,tn,$r,dn];var Js=[ns,bs,ks,ns];var Qs=[ss,nn,Qr,wn];return{___cxa_can_catch:vn,_free:Hr,_opus_strerror:Ss,_opus_decoder_create:Ms,___cxa_is_pointer_type:_n,_i64Add:En,_memmove:Tn,_bitshift64Ashr:An,_opus_encoder_destroy:Us,_memset:kn,_malloc:qr,_opus_decoder_destroy:Cs,_opus_encoder_create:Is,_memcpy:Mn,___getTypeName:Fr,_bitshift64Lshr:Sn,_opus_decoder_ctl:xs,_opus_encoder_ctl:Bs,__GLOBAL__sub_I_opusscript_encoder_cpp:Es,__GLOBAL__sub_I_bind_cpp:jr,runPostSets:yn,stackAlloc:as,stackSave:os,stackRestore:fs,establishStackSpace:hs,setThrew:cs,setTempRet0:ds,getTempRet0:ps,dynCall_iiii:Un,dynCall_viiiii:jn,dynCall_vi:Fn,dynCall_iiiiiii:zn,dynCall_ii:qn,dynCall_viiiiiii:Hn,dynCall_v:Gn,dynCall_iiiii:Vn,dynCall_viiiiii:Wn,dynCall_iiiiii:Kn,dynCall_viiii:Zn}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer),runPostSets=Module.runPostSets=asm.runPostSets,___cxa_can_catch=Module.___cxa_can_catch=asm.___cxa_can_catch,__GLOBAL__sub_I_bind_cpp=Module.__GLOBAL__sub_I_bind_cpp=asm.__GLOBAL__sub_I_bind_cpp,_free=Module._free=asm._free,_opus_strerror=Module._opus_strerror=asm._opus_strerror,_opus_decoder_create=Module._opus_decoder_create=asm._opus_decoder_create,___cxa_is_pointer_type=Module.___cxa_is_pointer_type=asm.___cxa_is_pointer_type,_i64Add=Module._i64Add=asm._i64Add,_memmove=Module._memmove=asm._memmove,_bitshift64Ashr=Module._bitshift64Ashr=asm._bitshift64Ashr,_opus_encoder_destroy=Module._opus_encoder_destroy=asm._opus_encoder_destroy,_memset=Module._memset=asm._memset,_malloc=Module._malloc=asm._malloc,_opus_decoder_destroy=Module._opus_decoder_destroy=asm._opus_decoder_destroy,_opus_encoder_create=Module._opus_encoder_create=asm._opus_encoder_create,_memcpy=Module._memcpy=asm._memcpy,___getTypeName=Module.___getTypeName=asm.___getTypeName,_bitshift64Lshr=Module._bitshift64Lshr=asm._bitshift64Lshr,_opus_encoder_ctl=Module._opus_encoder_ctl=asm._opus_encoder_ctl,_opus_decoder_ctl=Module._opus_decoder_ctl=asm._opus_decoder_ctl,__GLOBAL__sub_I_opusscript_encoder_cpp=Module.__GLOBAL__sub_I_opusscript_encoder_cpp=asm.__GLOBAL__sub_I_opusscript_encoder_cpp,dynCall_iiii=Module.dynCall_iiii=asm.dynCall_iiii,dynCall_viiiii=Module.dynCall_viiiii=asm.dynCall_viiiii,dynCall_vi=Module.dynCall_vi=asm.dynCall_vi,dynCall_iiiiiii=Module.dynCall_iiiiiii=asm.dynCall_iiiiiii,dynCall_ii=Module.dynCall_ii=asm.dynCall_ii,dynCall_viiiiiii=Module.dynCall_viiiiiii=asm.dynCall_viiiiiii,dynCall_v=Module.dynCall_v=asm.dynCall_v,dynCall_iiiii=Module.dynCall_iiiii=asm.dynCall_iiiii,dynCall_viiiiii=Module.dynCall_viiiiii=asm.dynCall_viiiiii,dynCall_iiiiii=Module.dynCall_iiiiii=asm.dynCall_iiiiii,dynCall_viiii=Module.dynCall_viiii=asm.dynCall_viiii;Runtime.stackAlloc=asm.stackAlloc,Runtime.stackSave=asm.stackSave,Runtime.stackRestore=asm.stackRestore,Runtime.establishStackSpace=asm.establishStackSpace,Runtime.setTempRet0=asm.setTempRet0,Runtime.getTempRet0=asm.getTempRet0,ExitStatus.prototype=new Error,ExitStatus.prototype.constructor=ExitStatus;var initialStackTop,preloadStartTime=null,calledMain=!1;dependenciesFulfilled=function e(){Module.calledRun||run(),Module.calledRun||(dependenciesFulfilled=e)},Module.callMain=Module.callMain=function(e){function t(){for(var e=0;e<3;e++)r.push(0)}e=e||[],ensureInitRuntime();var i=e.length+1,r=[allocate(intArrayFromString(Module.thisProgram),"i8",ALLOC_NORMAL)];t();for(var n=0;n0;)Module.preInit.pop()();var shouldRunNow=!0;Module.noInitialRun&&(shouldRunNow=!1),run()}).call(exports,__webpack_require__(5),"node_modules/opusscript/build")},function(e,t,i){"use strict";(function(t){function r(e,t,i){if(!~o.indexOf(e))throw new RangeError(`${e} is an invalid sampling rate.`);this.samplingRate=e,this.channels=t||1,this.application=i||s.AUDIO,this.handler=new n.OpusScriptHandler(this.samplingRate,this.channels,this.application),this.inPCMLength=f*this.channels*2,this.inPCMPointer=n._malloc(this.inPCMLength),this.inPCM=n.HEAPU16.subarray(this.inPCMPointer,this.inPCMPointer+this.inPCMLength),this.inOpusPointer=n._malloc(h),this.inOpus=n.HEAPU8.subarray(this.inOpusPointer,this.inOpusPointer+h),this.outOpusPointer=n._malloc(h),this.outOpus=n.HEAPU8.subarray(this.outOpusPointer,this.outOpusPointer+h),this.outPCMLength=f*this.channels*2,this.outPCMPointer=n._malloc(this.outPCMLength),this.outPCM=n.HEAPU16.subarray(this.outPCMPointer,this.outPCMPointer+this.outPCMLength)}var n=i(203),s={VOIP:2048,AUDIO:2049,RESTRICTED_LOWDELAY:2051},a={0:"OK","-1":"Bad argument","-2":"Buffer too small","-3":"Internal error","-4":"Invalid packet","-5":"Unimplemented","-6":"Invalid state","-7":"Memory allocation fail"},o=[8e3,12e3,16e3,24e3,48e3],f=2880,h=3828,c=4002;r.prototype.setBitrate=function(e){this.bitrate=e||64e3,n.setValue(this.bitratePointer,this.bitrate,"i32");var t=n._opus_encoder_ctl(this.handler,c,this.bitratePointer);if(t<0)throw new Error("Failed to set bitrate: "+a[""+n.getValue(t,"i32")])},r.prototype.encode=function(e,i){this.inPCM.set(e);var r=this.handler._encode(this.inPCM.byteOffset,e.length,this.outOpusPointer,i);if(r<0)throw new Error("Encode error: "+a[""+r]);return new t(this.outOpus.subarray(0,r))},r.prototype.decode=function(e){this.inOpus.set(e);var i=this.handler._decode(this.inOpusPointer,e.length,this.outPCM.byteOffset);if(i<0)throw new Error("Decode error: "+a[""+i]);return new t(this.outPCM.subarray(0,i*this.channels*2))},r.Application=s,r.Error=a,r.VALID_SAMPLING_RATES=o,r.MAX_PACKET_SIZE=h,e.exports=r}).call(t,i(0).Buffer)},function(e,t){"use strict";e.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},function(e,t,i){"use strict";function r(e,t){return e.msg=N[t],t}function n(e){return(e<<1)-(e>4?9:0)}function s(e){for(var t=e.length;--t>=0;)e[t]=0}function a(e){var t=e.state,i=t.pending;i>e.avail_out&&(i=e.avail_out),0!==i&&(C.arraySet(e.output,t.pending_buf,t.pending_out,i,e.next_out),e.next_out+=i,t.pending_out+=i,e.total_out+=i,e.avail_out-=i,t.pending-=i,0===t.pending&&(t.pending_out=0))}function o(e,t){I._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,a(e.strm)}function f(e,t){e.pending_buf[e.pending++]=t}function h(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function c(e,t,i,r){var n=e.avail_in;return n>r&&(n=r),0===n?0:(e.avail_in-=n,C.arraySet(t,e.input,e.next_in,n,i),1===e.state.wrap?e.adler=P(e.adler,t,n,i):2===e.state.wrap&&(e.adler=O(e.adler,t,n,i)),e.next_in+=n,e.total_in+=n,n)}function l(e,t){var i,r,n=e.max_chain_length,s=e.strstart,a=e.prev_length,o=e.nice_match,f=e.strstart>e.w_size-le?e.strstart-(e.w_size-le):0,h=e.window,c=e.w_mask,l=e.prev,u=e.strstart+ce,d=h[s+a-1],p=h[s+a];e.prev_length>=e.good_match&&(n>>=2),o>e.lookahead&&(o=e.lookahead);do if(i=t,h[i+a]===p&&h[i+a-1]===d&&h[i]===h[s]&&h[++i]===h[s+1]){s+=2,i++;do;while(h[++s]===h[++i]&&h[++s]===h[++i]&&h[++s]===h[++i]&&h[++s]===h[++i]&&h[++s]===h[++i]&&h[++s]===h[++i]&&h[++s]===h[++i]&&h[++s]===h[++i]&&sa){if(e.match_start=t,a=r,r>=o)break;d=h[s+a-1],p=h[s+a]}}while((t=l[t&c])>f&&0!==--n);return a<=e.lookahead?a:e.lookahead}function u(e){var t,i,r,n,s,a=e.w_size;do{if(n=e.window_size-e.lookahead-e.strstart,e.strstart>=a+(a-le)){C.arraySet(e.window,e.window,a,a,0),e.match_start-=a,e.strstart-=a,e.block_start-=a,i=e.hash_size,t=i;do r=e.head[--t],e.head[t]=r>=a?r-a:0;while(--i);i=a,t=i;do r=e.prev[--t],e.prev[t]=r>=a?r-a:0;while(--i);n+=a}if(0===e.strm.avail_in)break;if(i=c(e.strm,e.window,e.strstart+e.lookahead,n),e.lookahead+=i,e.lookahead+e.insert>=he)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<e.pending_buf_size-5&&(i=e.pending_buf_size-5);;){if(e.lookahead<=1){if(u(e),0===e.lookahead&&t===D)return _e;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var r=e.block_start+i;if((0===e.strstart||e.strstart>=r)&&(e.lookahead=e.strstart-r,e.strstart=r,o(e,!1),0===e.strm.avail_out))return _e;if(e.strstart-e.block_start>=e.w_size-le&&(o(e,!1),0===e.strm.avail_out))return _e}return e.insert=0,t===U?(o(e,!0),0===e.strm.avail_out?ke:Ee):e.strstart>e.block_start&&(o(e,!1),0===e.strm.avail_out)?_e:_e}function p(e,t){for(var i,r;;){if(e.lookahead=he&&(e.ins_h=(e.ins_h<=he)if(r=I._tr_tally(e,e.strstart-e.match_start,e.match_length-he),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=he){e.match_length--;do e.strstart++,e.ins_h=(e.ins_h<=he&&(e.ins_h=(e.ins_h<4096)&&(e.match_length=he-1)),e.prev_length>=he&&e.match_length<=e.prev_length){n=e.strstart+e.lookahead-he,r=I._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-he),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=n&&(e.ins_h=(e.ins_h<=he&&e.strstart>0&&(n=e.strstart-1,r=a[n],r===a[++n]&&r===a[++n]&&r===a[++n])){s=e.strstart+ce;do;while(r===a[++n]&&r===a[++n]&&r===a[++n]&&r===a[++n]&&r===a[++n]&&r===a[++n]&&r===a[++n]&&r===a[++n]&&ne.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=he?(i=I._tr_tally(e,1,e.match_length-he),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(i=I._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),i&&(o(e,!1),0===e.strm.avail_out))return _e}return e.insert=0,t===U?(o(e,!0),0===e.strm.avail_out?ke:Ee):e.last_lit&&(o(e,!1),0===e.strm.avail_out)?_e:ye}function w(e,t){for(var i;;){if(0===e.lookahead&&(u(e),0===e.lookahead)){if(t===D)return _e;break}if(e.match_length=0,i=I._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,i&&(o(e,!1),0===e.strm.avail_out))return _e}return e.insert=0,t===U?(o(e,!0),0===e.strm.avail_out?ke:Ee):e.last_lit&&(o(e,!1),0===e.strm.avail_out)?_e:ye}function g(e,t,i,r,n){this.good_length=e,this.max_lazy=t,this.nice_length=i,this.max_chain=r,this.func=n}function v(e){e.window_size=2*e.w_size,s(e.head),e.max_lazy_match=x[e.level].max_lazy,e.good_match=x[e.level].good_length,e.nice_match=x[e.level].nice_length,e.max_chain_length=x[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=he-1,e.match_available=0,e.ins_h=0}function _(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=J,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new C.Buf16(2*oe),this.dyn_dtree=new C.Buf16(2*(2*se+1)),this.bl_tree=new C.Buf16(2*(2*ae+1)),s(this.dyn_ltree),s(this.dyn_dtree),s(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new C.Buf16(fe+1),this.heap=new C.Buf16(2*ne+1),s(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new C.Buf16(2*ne+1),s(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function y(e){var t;return e&&e.state?(e.total_in=e.total_out=0,e.data_type=X,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?de:ge,e.adler=2===t.wrap?0:1,t.last_flush=D,I._tr_init(t),F):r(e,q)}function k(e){var t=y(e);return t===F&&v(e.state),t}function E(e,t){return e&&e.state?2!==e.state.wrap?q:(e.state.gzhead=t,F):q}function A(e,t,i,n,s,a){if(!e)return q;var o=1;if(t===V&&(t=6),n<0?(o=0,n=-n):n>15&&(o=2,n-=16),s<1||s>Q||i!==J||n<8||n>15||t<0||t>9||a<0||a>Y)return r(e,q);8===n&&(n=9);var f=new _;return e.state=f,f.strm=e,f.wrap=o,f.gzhead=null,f.w_bits=n,f.w_size=1<j||t<0)return e?r(e,q):q;if(o=e.state,!e.output||!e.input&&0!==e.avail_in||o.status===ve&&t!==U)return r(e,0===e.avail_out?G:q);if(o.strm=e,i=o.last_flush,o.last_flush=t,o.status===de)if(2===o.wrap)e.adler=0,f(o,31),f(o,139),f(o,8),o.gzhead?(f(o,(o.gzhead.text?1:0)+(o.gzhead.hcrc?2:0)+(o.gzhead.extra?4:0)+(o.gzhead.name?8:0)+(o.gzhead.comment?16:0)),f(o,255&o.gzhead.time),f(o,o.gzhead.time>>8&255),f(o,o.gzhead.time>>16&255),f(o,o.gzhead.time>>24&255),f(o,9===o.level?2:o.strategy>=K||o.level<2?4:0),f(o,255&o.gzhead.os),o.gzhead.extra&&o.gzhead.extra.length&&(f(o,255&o.gzhead.extra.length),f(o,o.gzhead.extra.length>>8&255)),o.gzhead.hcrc&&(e.adler=O(e.adler,o.pending_buf,o.pending,0)),o.gzindex=0,o.status=pe):(f(o,0),f(o,0),f(o,0),f(o,0),f(o,0),f(o,9===o.level?2:o.strategy>=K||o.level<2?4:0),f(o,Ae),o.status=ge);else{var u=J+(o.w_bits-8<<4)<<8,d=-1;d=o.strategy>=K||o.level<2?0:o.level<6?1:6===o.level?2:3,u|=d<<6,0!==o.strstart&&(u|=ue),u+=31-u%31,o.status=ge,h(o,u),0!==o.strstart&&(h(o,e.adler>>>16),h(o,65535&e.adler)),e.adler=1}if(o.status===pe)if(o.gzhead.extra){for(c=o.pending;o.gzindex<(65535&o.gzhead.extra.length)&&(o.pending!==o.pending_buf_size||(o.gzhead.hcrc&&o.pending>c&&(e.adler=O(e.adler,o.pending_buf,o.pending-c,c)),a(e),c=o.pending,o.pending!==o.pending_buf_size));)f(o,255&o.gzhead.extra[o.gzindex]),o.gzindex++;o.gzhead.hcrc&&o.pending>c&&(e.adler=O(e.adler,o.pending_buf,o.pending-c,c)),o.gzindex===o.gzhead.extra.length&&(o.gzindex=0,o.status=be)}else o.status=be;if(o.status===be)if(o.gzhead.name){c=o.pending;do{if(o.pending===o.pending_buf_size&&(o.gzhead.hcrc&&o.pending>c&&(e.adler=O(e.adler,o.pending_buf,o.pending-c,c)),a(e),c=o.pending,o.pending===o.pending_buf_size)){l=1;break}l=o.gzindexc&&(e.adler=O(e.adler,o.pending_buf,o.pending-c,c)),0===l&&(o.gzindex=0,o.status=me)}else o.status=me;if(o.status===me)if(o.gzhead.comment){c=o.pending;do{if(o.pending===o.pending_buf_size&&(o.gzhead.hcrc&&o.pending>c&&(e.adler=O(e.adler,o.pending_buf,o.pending-c,c)),a(e),c=o.pending,o.pending===o.pending_buf_size)){l=1;break}l=o.gzindexc&&(e.adler=O(e.adler,o.pending_buf,o.pending-c,c)),0===l&&(o.status=we)}else o.status=we;if(o.status===we&&(o.gzhead.hcrc?(o.pending+2>o.pending_buf_size&&a(e),o.pending+2<=o.pending_buf_size&&(f(o,255&e.adler),f(o,e.adler>>8&255),e.adler=0,o.status=ge)):o.status=ge),0!==o.pending){if(a(e),0===e.avail_out)return o.last_flush=-1,F}else if(0===e.avail_in&&n(t)<=n(i)&&t!==U)return r(e,G);if(o.status===ve&&0!==e.avail_in)return r(e,G);if(0!==e.avail_in||0!==o.lookahead||t!==D&&o.status!==ve){var p=o.strategy===K?w(o,t):o.strategy===Z?m(o,t):x[o.level].func(o,t);if(p!==ke&&p!==Ee||(o.status=ve),p===_e||p===ke)return 0===e.avail_out&&(o.last_flush=-1),F;if(p===ye&&(t===L?I._tr_align(o):t!==j&&(I._tr_stored_block(o,0,0,!1),t===B&&(s(o.head),0===o.lookahead&&(o.strstart=0,o.block_start=0,o.insert=0))),a(e),0===e.avail_out))return o.last_flush=-1,F}return t!==U?F:o.wrap<=0?z:(2===o.wrap?(f(o,255&e.adler),f(o,e.adler>>8&255),f(o,e.adler>>16&255),f(o,e.adler>>24&255),f(o,255&e.total_in),f(o,e.total_in>>8&255),f(o,e.total_in>>16&255),f(o,e.total_in>>24&255)):(h(o,e.adler>>>16),h(o,65535&e.adler)),a(e),o.wrap>0&&(o.wrap=-o.wrap),0!==o.pending?F:z)}function T(e){var t;return e&&e.state?(t=e.state.status,t!==de&&t!==pe&&t!==be&&t!==me&&t!==we&&t!==ge&&t!==ve?r(e,q):(e.state=null,t===ge?r(e,H):F)):q}function R(e,t){var i,r,n,a,o,f,h,c,l=t.length;if(!e||!e.state)return q;if(i=e.state,a=i.wrap,2===a||1===a&&i.status!==de||i.lookahead)return q;for(1===a&&(e.adler=P(e.adler,t,l,0)),i.wrap=0,l>=i.w_size&&(0===a&&(s(i.head),i.strstart=0,i.block_start=0,i.insert=0),c=new C.Buf8(i.w_size),C.arraySet(c,t,l-i.w_size,i.w_size,0),t=c,l=i.w_size),o=e.avail_in,f=e.next_in,h=e.input,e.avail_in=l,e.next_in=0,e.input=t,u(i);i.lookahead>=he;){r=i.strstart,n=i.lookahead-(he-1);do i.ins_h=(i.ins_h<>>24,b>>>=k,m-=k,k=y>>>16&255,0===k)R[o++]=65535&y;else{if(!(16&k)){if(0===(64&k)){y=w[(65535&y)+(b&(1<>>=k,m-=k),m<15&&(b+=T[s++]<>>24,b>>>=k,m-=k,k=y>>>16&255,!(16&k)){if(0===(64&k)){y=g[(65535&y)+(b&(1<c){e.msg="invalid distance too far back",n.mode=i;break e}if(b>>>=k,m-=k,k=o-f,A>k){if(k=A-k,k>u&&n.sane){e.msg="invalid distance too far back",n.mode=i;break e}if(S=0,M=p,0===d){if(S+=l-k,k2;)R[o++]=M[S++],R[o++]=M[S++],R[o++]=M[S++],E-=3;E&&(R[o++]=M[S++],E>1&&(R[o++]=M[S++]))}else{S=o-A;do R[o++]=R[S++],R[o++]=R[S++],R[o++]=R[S++],E-=3;while(E>2);E&&(R[o++]=R[S++],E>1&&(R[o++]=R[S++]))}break}}break}}while(s>3,s-=E,m-=E<<3,b&=(1<>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function n(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new g.Buf16(320),this.work=new g.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function s(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=B,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new g.Buf32(be),t.distcode=t.distdyn=new g.Buf32(me),t.sane=1,t.back=-1,x):P}function a(e){var t;return e&&e.state?(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,s(e)):P}function o(e,t){var i,r;return e&&e.state?(r=e.state,t<0?(i=0,t=-t):(i=(t>>4)+1,t<48&&(t&=15)),t&&(t<8||t>15)?P:(null!==r.window&&r.wbits!==t&&(r.window=null),r.wrap=i,r.wbits=t,a(e))):P}function f(e,t){var i,r;return e?(r=new n,e.state=r,r.window=null,i=o(e,t),i!==x&&(e.state=null),i):P}function h(e){return f(e,ge)}function c(e){if(ve){var t;for(m=new g.Buf32(512),w=new g.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(k(A,e.lens,0,288,m,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;k(S,e.lens,0,32,w,0,e.work,{bits:5}),ve=!1}e.lencode=m,e.lenbits=9,e.distcode=w,e.distbits=5}function l(e,t,i,r){var n,s=e.state;return null===s.window&&(s.wsize=1<=s.wsize?(g.arraySet(s.window,t,i-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(n=s.wsize-s.wnext,n>r&&(n=r),g.arraySet(s.window,t,i-r,n,s.wnext),r-=n,r?(g.arraySet(s.window,t,i-r,r,0),s.wnext=r,s.whave=s.wsize):(s.wnext+=n,s.wnext===s.wsize&&(s.wnext=0),s.whave>>8&255,i.check=_(i.check,Te,2,0),u=0,d=0,i.mode=U;break}if(i.flags=0,i.head&&(i.head.done=!1),!(1&i.wrap)||(((255&u)<<8)+(u>>8))%31){e.msg="incorrect header check",i.mode=ue;break}if((15&u)!==L){e.msg="unknown compression method",i.mode=ue;break}if(u>>>=4,d-=4,ke=(15&u)+8,0===i.wbits)i.wbits=ke;else if(ke>i.wbits){e.msg="invalid window size",i.mode=ue;break}i.dmax=1<>8&1),512&i.flags&&(Te[0]=255&u,Te[1]=u>>>8&255,i.check=_(i.check,Te,2,0)),u=0,d=0,i.mode=j;case j:for(;d<32;){if(0===f)break e;f--,u+=n[a++]<>>8&255,Te[2]=u>>>16&255,Te[3]=u>>>24&255,i.check=_(i.check,Te,4,0)),u=0,d=0,i.mode=F;case F:for(;d<16;){if(0===f)break e;f--,u+=n[a++]<>8),512&i.flags&&(Te[0]=255&u,Te[1]=u>>>8&255,i.check=_(i.check,Te,2,0)),u=0,d=0,i.mode=z;case z:if(1024&i.flags){for(;d<16;){if(0===f)break e;f--,u+=n[a++]<>>8&255,i.check=_(i.check,Te,2,0)),u=0,d=0}else i.head&&(i.head.extra=null);i.mode=q;case q:if(1024&i.flags&&(m=i.length,m>f&&(m=f),m&&(i.head&&(ke=i.head.extra_len-i.length,i.head.extra||(i.head.extra=new Array(i.head.extra_len)),g.arraySet(i.head.extra,n,a,m,ke)),512&i.flags&&(i.check=_(i.check,n,m,a)),f-=m,a+=m,i.length-=m),i.length))break e;i.length=0,i.mode=H;case H:if(2048&i.flags){if(0===f)break e;m=0;do ke=n[a+m++],i.head&&ke&&i.length<65536&&(i.head.name+=String.fromCharCode(ke));while(ke&&m>9&1,i.head.done=!0),e.adler=i.check=0,i.mode=Z;break;case W:for(;d<32;){if(0===f)break e;f--,u+=n[a++]<>>=7&d,d-=7&d,i.mode=he;break}for(;d<3;){if(0===f)break e;f--,u+=n[a++]<>>=1,d-=1,3&u){case 0:i.mode=$;break;case 1:if(c(i),i.mode=ie,t===R){u>>>=2,d-=2;break e}break;case 2:i.mode=Q;break;case 3:e.msg="invalid block type",i.mode=ue}u>>>=2,d-=2;break;case $:for(u>>>=7&d,d-=7&d;d<32;){if(0===f)break e;f--,u+=n[a++]<>>16^65535)){e.msg="invalid stored block lengths",i.mode=ue;break}if(i.length=65535&u,u=0,d=0,i.mode=X,t===R)break e;case X:i.mode=J;case J:if(m=i.length){if(m>f&&(m=f),m>h&&(m=h),0===m)break e;g.arraySet(s,n,a,m,o),f-=m,a+=m,h-=m,o+=m,i.length-=m;break}i.mode=Z;break;case Q:for(;d<14;){if(0===f)break e;f--,u+=n[a++]<>>=5,d-=5,i.ndist=(31&u)+1,u>>>=5,d-=5,i.ncode=(15&u)+4,u>>>=4,d-=4,i.nlen>286||i.ndist>30){e.msg="too many length or distance symbols",i.mode=ue;break}i.have=0,i.mode=ee;case ee:for(;i.have>>=3,d-=3}for(;i.have<19;)i.lens[Re[i.have++]]=0;if(i.lencode=i.lendyn,i.lenbits=7,Ae={bits:i.lenbits},Ee=k(E,i.lens,0,19,i.lencode,0,i.work,Ae),i.lenbits=Ae.bits,Ee){e.msg="invalid code lengths set",i.mode=ue;break}i.have=0,i.mode=te;case te:for(;i.have>>24,we=Me>>>16&255,ge=65535&Me,!(me<=d);){if(0===f)break e;f--,u+=n[a++]<>>=me,d-=me,i.lens[i.have++]=ge;else{if(16===ge){for(Se=me+2;d>>=me,d-=me,0===i.have){e.msg="invalid bit length repeat",i.mode=ue;break}ke=i.lens[i.have-1],m=3+(3&u),u>>>=2,d-=2}else if(17===ge){for(Se=me+3;d>>=me,d-=me,ke=0,m=3+(7&u),u>>>=3,d-=3}else{for(Se=me+7;d>>=me,d-=me,ke=0,m=11+(127&u),u>>>=7,d-=7}if(i.have+m>i.nlen+i.ndist){e.msg="invalid bit length repeat",i.mode=ue;break}for(;m--;)i.lens[i.have++]=ke}}if(i.mode===ue)break;if(0===i.lens[256]){e.msg="invalid code -- missing end-of-block",i.mode=ue;break}if(i.lenbits=9,Ae={bits:i.lenbits},Ee=k(A,i.lens,0,i.nlen,i.lencode,0,i.work,Ae),i.lenbits=Ae.bits,Ee){e.msg="invalid literal/lengths set",i.mode=ue;break}if(i.distbits=6,i.distcode=i.distdyn,Ae={bits:i.distbits},Ee=k(S,i.lens,i.nlen,i.ndist,i.distcode,0,i.work,Ae),i.distbits=Ae.bits,Ee){e.msg="invalid distances set",i.mode=ue;break}if(i.mode=ie,t===R)break e;case ie:i.mode=re;case re:if(f>=6&&h>=258){e.next_out=o,e.avail_out=h,e.next_in=a,e.avail_in=f,i.hold=u,i.bits=d,y(e,b),o=e.next_out,s=e.output,h=e.avail_out,a=e.next_in,n=e.input,f=e.avail_in,u=i.hold,d=i.bits,i.mode===Z&&(i.back=-1);break}for(i.back=0;Me=i.lencode[u&(1<>>24,we=Me>>>16&255,ge=65535&Me,!(me<=d);){if(0===f)break e;f--,u+=n[a++]<>ve)],me=Me>>>24,we=Me>>>16&255,ge=65535&Me,!(ve+me<=d);){if(0===f)break e;f--,u+=n[a++]<>>=ve,d-=ve,i.back+=ve}if(u>>>=me,d-=me,i.back+=me,i.length=ge,0===we){i.mode=fe;break}if(32&we){i.back=-1,i.mode=Z;break}if(64&we){e.msg="invalid literal/length code",i.mode=ue;break}i.extra=15&we,i.mode=ne;case ne:if(i.extra){for(Se=i.extra;d>>=i.extra,d-=i.extra,i.back+=i.extra}i.was=i.length,i.mode=se;case se:for(;Me=i.distcode[u&(1<>>24,we=Me>>>16&255,ge=65535&Me,!(me<=d);){if(0===f)break e;f--,u+=n[a++]<>ve)],me=Me>>>24,we=Me>>>16&255,ge=65535&Me,!(ve+me<=d);){if(0===f)break e;f--,u+=n[a++]<>>=ve,d-=ve,i.back+=ve}if(u>>>=me,d-=me,i.back+=me,64&we){e.msg="invalid distance code",i.mode=ue;break}i.offset=ge,i.extra=15&we,i.mode=ae;case ae:if(i.extra){for(Se=i.extra;d>>=i.extra,d-=i.extra,i.back+=i.extra}if(i.offset>i.dmax){e.msg="invalid distance too far back",i.mode=ue;break}i.mode=oe;case oe:if(0===h)break e;if(m=b-h,i.offset>m){if(m=i.offset-m,m>i.whave&&i.sane){e.msg="invalid distance too far back",i.mode=ue;break}m>i.wnext?(m-=i.wnext,w=i.wsize-m):w=i.wnext-m,m>i.length&&(m=i.length),be=i.window}else be=s,w=o-i.offset,m=i.length;m>h&&(m=h),h-=m,i.length-=m;do s[o++]=be[w++];while(--m);0===i.length&&(i.mode=re);break;case fe:if(0===h)break e;s[o++]=i.length,h--,i.mode=re;break;case he:if(i.wrap){for(;d<32;){if(0===f)break e;f--,u|=n[a++]<=1&&0===z[P];P--);if(O>P&&(O=P),0===P)return b[m++]=20971520,b[m++]=20971520,g.bits=1,0;for(I=1;I0&&(e===o||1!==P))return-1;for(q[1]=0,x=1;xs||e===h&&B>a)return 1;for(var V=0;;){V++,S=x-D,w[C]A?(M=H[G+w[C]],T=j[F+w[C]]):(M=96,T=0),v=1<>D)+_]=S<<24|M<<16|T|0;while(0!==_);for(v=1<>=1;if(0!==v?(U&=v-1,U+=v):U=0,C++,0===--z[x]){if(x===P)break;x=t[i+w[C]]}if(x>O&&(U&k)!==y){for(0===D&&(D=O),E+=I,N=x-D,L=1<s||e===h&&B>a)return 1;y=U&k,b[y]=O<<24|N<<16|E-m|0}}return 0!==U&&(b[E+U]=x-D<<24|64<<16|0),g.bits=O,0}},function(e,t,i){"use strict";function r(e){for(var t=e.length;--t>=0;)e[t]=0}function n(e,t,i,r,n){this.static_tree=e,this.extra_bits=t,this.extra_base=i,this.elems=r,this.max_length=n,this.has_stree=e&&e.length}function s(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function a(e){return e<256?fe[e]:fe[256+(e>>>7)]}function o(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function f(e,t,i){e.bi_valid>Y-i?(e.bi_buf|=t<>Y-e.bi_valid,e.bi_valid+=i-Y):(e.bi_buf|=t<>>=1,i<<=1;while(--t>0);return i>>>1}function l(e){16===e.bi_valid?(o(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}function u(e,t){var i,r,n,s,a,o,f=t.dyn_tree,h=t.max_code,c=t.stat_desc.static_tree,l=t.stat_desc.has_stree,u=t.stat_desc.extra_bits,d=t.stat_desc.extra_base,p=t.stat_desc.max_length,b=0;for(s=0;s<=Z;s++)e.bl_count[s]=0;for(f[2*e.heap[e.heap_max]+1]=0,i=e.heap_max+1;ip&&(s=p,b++),f[2*r+1]=s,r>h||(e.bl_count[s]++,a=0,r>=d&&(a=u[r-d]),o=f[2*r],e.opt_len+=o*(s+a),l&&(e.static_len+=o*(c[2*r+1]+a)));if(0!==b){do{for(s=p-1;0===e.bl_count[s];)s--;e.bl_count[s]--,e.bl_count[s+1]+=2,e.bl_count[p]--,b-=2}while(b>0);for(s=p;0!==s;s--)for(r=e.bl_count[s];0!==r;)n=e.heap[--i],n>h||(f[2*n+1]!==s&&(e.opt_len+=(s-f[2*n+1])*f[2*n],f[2*n+1]=s),r--)}}function d(e,t,i){var r,n,s=new Array(Z+1),a=0;for(r=1;r<=Z;r++)s[r]=a=a+i[r-1]<<1;for(n=0;n<=t;n++){var o=e[2*n+1];0!==o&&(e[2*n]=c(s[o]++,o))}}function p(){var e,t,i,r,s,a=new Array(Z+1);for(i=0,r=0;r>=7;r8?o(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function w(e,t,i,r){m(e),r&&(o(e,i),o(e,~i)),P.arraySet(e.pending_buf,e.window,t,i,e.pending),e.pending+=i}function g(e,t,i,r){var n=2*t,s=2*i;return e[n]>1;i>=1;i--)v(e,s,i);n=f;do i=e.heap[1],e.heap[1]=e.heap[e.heap_len--],v(e,s,1),r=e.heap[1],e.heap[--e.heap_max]=i,e.heap[--e.heap_max]=r,s[2*n]=s[2*i]+s[2*r],e.depth[n]=(e.depth[i]>=e.depth[r]?e.depth[i]:e.depth[r])+1,s[2*i+1]=s[2*r+1]=n,e.heap[1]=n++,v(e,s,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],u(e,t),d(s,h,e.bl_count)}function k(e,t,i){var r,n,s=-1,a=t[1],o=0,f=7,h=4;for(0===a&&(f=138,h=3),t[2*(i+1)+1]=65535,r=0;r<=i;r++)n=a,a=t[2*(r+1)+1],++o=3&&0===e.bl_tree[2*ne[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}function S(e,t,i,r){var n;for(f(e,t-257,5),f(e,i-1,5),f(e,r-4,4),n=0;n>>=1)if(1&i&&0!==e.dyn_ltree[2*t])return N;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return D;for(t=32;t0?(e.strm.data_type===L&&(e.strm.data_type=M(e)),y(e,e.l_desc),y(e,e.d_desc),a=A(e),n=e.opt_len+3+7>>>3,s=e.static_len+3+7>>>3,s<=n&&(n=s)):n=s=i+5,i+4<=n&&t!==-1?R(e,t,i,r):e.strategy===O||s===n?(f(e,(U<<1)+(r?1:0),3),_(e,ae,oe)):(f(e,(j<<1)+(r?1:0),3),S(e,e.l_desc.max_code+1,e.d_desc.max_code+1,a+1),_(e,e.dyn_ltree,e.dyn_dtree)),b(e),r&&m(e)}function I(e,t,i){return e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&i,e.last_lit++,0===t?e.dyn_ltree[2*i]++:(e.matches++,t--,e.dyn_ltree[2*(he[i]+H+1)]++,e.dyn_dtree[2*a(t)]++),e.last_lit===e.lit_bufsize-1}var P=i(38),O=4,N=0,D=1,L=2,B=0,U=1,j=2,F=3,z=258,q=29,H=256,G=H+1+q,V=30,W=19,K=2*G+1,Z=15,Y=16,$=7,X=256,J=16,Q=17,ee=18,te=[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],ie=[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],re=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],ne=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],se=512,ae=new Array(2*(G+2));r(ae);var oe=new Array(2*V);r(oe);var fe=new Array(se);r(fe);var he=new Array(z-F+1);r(he);var ce=new Array(q);r(ce);var le=new Array(V);r(le);var ue,de,pe,be=!1;t._tr_init=T,t._tr_stored_block=R,t._tr_flush_block=C,t._tr_tally=I,t._tr_align=x},function(e,t){"use strict";function i(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}e.exports=i},function(e,t,i){var r=i(32),n=r.define("RSAPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("modulus").int(),this.key("publicExponent").int(),this.key("privateExponent").int(),this.key("prime1").int(),this.key("prime2").int(),this.key("exponent1").int(),this.key("exponent2").int(),this.key("coefficient").int())});t.RSAPrivateKey=n;var s=r.define("RSAPublicKey",function(){this.seq().obj(this.key("modulus").int(),this.key("publicExponent").int())});t.RSAPublicKey=s;var a=r.define("SubjectPublicKeyInfo",function(){this.seq().obj(this.key("algorithm").use(o),this.key("subjectPublicKey").bitstr())});t.PublicKey=a;var o=r.define("AlgorithmIdentifier",function(){this.seq().obj(this.key("algorithm").objid(),this.key("none").null_().optional(),this.key("curve").objid().optional(),this.key("params").seq().obj(this.key("p").int(),this.key("q").int(),this.key("g").int()).optional())}),f=r.define("PrivateKeyInfo",function(){this.seq().obj(this.key("version").int(),this.key("algorithm").use(o),this.key("subjectPrivateKey").octstr())});t.PrivateKey=f;var h=r.define("EncryptedPrivateKeyInfo",function(){this.seq().obj(this.key("algorithm").seq().obj(this.key("id").objid(),this.key("decrypt").seq().obj(this.key("kde").seq().obj(this.key("id").objid(),this.key("kdeparams").seq().obj(this.key("salt").octstr(),this.key("iters").int())),this.key("cipher").seq().obj(this.key("algo").objid(),this.key("iv").octstr()))),this.key("subjectPrivateKey").octstr())});t.EncryptedPrivateKey=h;var c=r.define("DSAPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("p").int(),this.key("q").int(),this.key("g").int(),this.key("pub_key").int(),this.key("priv_key").int())});t.DSAPrivateKey=c,t.DSAparam=r.define("DSAparam",function(){this.int()});var l=r.define("ECPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("privateKey").octstr(),this.key("parameters").optional().explicit(0).use(u),this.key("publicKey").optional().explicit(1).bitstr())});t.ECPrivateKey=l;var u=r.define("ECParameters",function(){this.choice({namedCurve:this.objid()})});t.signature=r.define("signature",function(){this.seq().obj(this.key("r").int(),this.key("s").int())})},function(e,t,i){(function(t){var r=/Proc-Type: 4,ENCRYPTED\r?\nDEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)\r?\n\r?\n([0-9A-z\n\r\+\/\=]+)\r?\n/m,n=/^-----BEGIN (.*) KEY-----\r?\n/m,s=/^-----BEGIN (.*) KEY-----\r?\n([0-9A-z\n\r\+\/\=]+)\r?\n-----END \1 KEY-----$/m,a=i(37),o=i(47);e.exports=function(e,i){var f,h=e.toString(),c=h.match(r);if(c){var l="aes"+c[1],u=new t(c[2],"hex"),d=new t(c[3].replace(/\r?\n/g,""),"base64"),p=a(i,u.slice(0,8),parseInt(c[1],10)).key,b=[],m=o.createDecipheriv(l,p,u);b.push(m.update(d)),b.push(m.final()),f=t.concat(b)}else{var w=h.match(s);f=new t(w[2].replace(/\r?\n/g,""),"base64")}var g=h.match(n)[1]+" KEY";return{tag:g,data:f}}}).call(t,i(0).Buffer)},function(e,t){var i=Math.pow(2,30)-1;e.exports=function(e,t){if("number"!=typeof e)throw new TypeError("Iterations not a number");if(e<0)throw new TypeError("Bad iterations");if("number"!=typeof t)throw new TypeError("Key length not a number");if(t<0||t>i||t!==t)throw new TypeError("Bad key length")}},function(e,t,i){t.publicEncrypt=i(217),t.privateDecrypt=i(216),t.privateEncrypt=function(e,i){return t.publicEncrypt(e,i,!0)},t.publicDecrypt=function(e,i){return t.privateDecrypt(e,i,!0)}},function(e,t,i){(function(t){function r(e,i){var r=(e.modulus,e.modulus.byteLength()),n=(i.length,l("sha1").update(new t("")).digest()),a=n.length;if(0!==i[0])throw new Error("decryption error");var h=i.slice(1,a+1),c=i.slice(a+1),u=f(h,o(c,a)),d=f(c,o(u,r-a-1));if(s(n,d.slice(0,a)))throw new Error("decryption error");for(var p=a;0===d[p];)p++;if(1!==d[p++])throw new Error("decryption error");return d.slice(p)}function n(e,t,i){for(var r=t.slice(0,2),n=2,s=0;0!==t[n++];)if(n>=t.length){s++;break}var a=t.slice(2,n-1);t.slice(n-1,n);if(("0002"!==r.toString("hex")&&!i||"0001"!==r.toString("hex")&&i)&&s++,a.length<8&&s++,s)throw new Error("decryption error");return t.slice(n)}function s(e,i){e=new t(e),i=new t(i);var r=0,n=e.length;e.length!==i.length&&(r++,n=Math.min(e.length,i.length));for(var s=-1;++sl||new h(i).cmp(f.modulus)>=0)throw new Error("decryption error");var d;d=s?u(new h(i),f):c(i,f);var p=new t(l-d.length);if(p.fill(0),d=t.concat([p,d],l),4===o)return r(f,d);if(1===o)return n(f,d,s);if(3===o)return d;throw new Error("unknown padding")}}).call(t,i(0).Buffer)},function(e,t,i){(function(t){function r(e,i){var r=e.modulus.byteLength(),n=i.length,s=f("sha1").update(new t("")).digest(),a=s.length,u=2*a;if(n>r-u-2)throw new Error("message too long");var d=new t(r-n-u-2);d.fill(0);var p=r-a-1,b=o(a),m=c(t.concat([s,d,new t([1]),i],p),h(b,p)),w=c(b,h(m,a));return new l(t.concat([new t([0]),w,m],r))}function n(e,i,r){var n=i.length,a=e.modulus.byteLength();if(n>a-11)throw new Error("message too long");var o;return r?(o=new t(a-n-3),o.fill(255)):o=s(a-n-3),new l(t.concat([new t([0,r?1:2]),o,new t([0]),i],a))}function s(e,i){for(var r,n=new t(e),s=0,a=o(2*e),f=0;s=0)throw new Error("data too long for modulus")}return i?d(o,f):u(o,f)}}).call(t,i(0).Buffer)},function(e,t,i){(function(e,r){var n;!function(s){function a(e){throw new RangeError(P[e])}function o(e,t){for(var i=e.length,r=[];i--;)r[i]=t(e[i]);return r}function f(e,t){var i=e.split("@"),r="";i.length>1&&(r=i[0]+"@",e=i[1]),e=e.replace(I,".");var n=e.split("."),s=o(n,t).join(".");return r+s}function h(e){for(var t,i,r=[],n=0,s=e.length;n=55296&&t<=56319&&n65535&&(e-=65536,t+=D(e>>>10&1023|55296),e=56320|1023&e),t+=D(e)}).join("")}function l(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:y}function u(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function d(e,t,i){var r=0;for(e=i?N(e/S):e>>1,e+=N(e/t);e>O*E>>1;r+=y)e=N(e/O);return N(r+(O+1)*e/(e+A))}function p(e){var t,i,r,n,s,o,f,h,u,p,b=[],m=e.length,w=0,g=T,v=M;for(i=e.lastIndexOf(R),i<0&&(i=0),r=0;r=128&&a("not-basic"),b.push(e.charCodeAt(r));for(n=i>0?i+1:0;n=m&&a("invalid-input"),h=l(e.charCodeAt(n++)),(h>=y||h>N((_-w)/o))&&a("overflow"),w+=h*o,u=f<=v?k:f>=v+E?E:f-v,!(hN(_/p)&&a("overflow"),o*=p;t=b.length+1,v=d(w-s,t,0==s),N(w/t)>_-g&&a("overflow"),g+=N(w/t),w%=t,b.splice(w++,0,g)}return c(b)}function b(e){var t,i,r,n,s,o,f,c,l,p,b,m,w,g,v,A=[];for(e=h(e),m=e.length,t=T,i=0,s=M,o=0;o=t&&bN((_-i)/w)&&a("overflow"),i+=(f-t)*w,t=f,o=0;o_&&a("overflow"),b==t){for(c=i,l=y;p=l<=s?k:l>=s+E?E:l-s,!(c= 0x80 (not a basic code point)","invalid-input":"Invalid input"},O=y-k,N=Math.floor,D=String.fromCharCode;v={version:"1.4.1",ucs2:{decode:h,encode:c},decode:p,encode:b,toASCII:w,toUnicode:m},n=function(){return v}.call(t,i,t,e),!(void 0!==n&&(e.exports=n))}(this)}).call(t,i(117)(e),i(16))},function(e,t){"use strict";function i(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,t,n,s){t=t||"&",n=n||"=";var a={};if("string"!=typeof e||0===e.length)return a;var o=/\+/g;e=e.split(t);var f=1e3;s&&"number"==typeof s.maxKeys&&(f=s.maxKeys);var h=e.length;f>0&&h>f&&(h=f);for(var c=0;c=0?(l=b.substr(0,m),u=b.substr(m+1)):(l=b,u=""),d=decodeURIComponent(l),p=decodeURIComponent(u),i(a,d)?r(a[d])?a[d].push(p):a[d]=[a[d],p]:a[d]=p}return a};var r=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},function(e,t){"use strict";function i(e,t){if(e.map)return e.map(t);for(var i=[],r=0;r0?this.tail.next=t:this.head=t,this.tail=t,++this.length},r.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},r.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},r.prototype.clear=function(){this.head=this.tail=null,this.length=0},r.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,i=""+t.data;t=t.next;)i+=e+t.data;return i},r.prototype.concat=function(e){if(0===this.length)return n.alloc(0);if(1===this.length)return this.head.data;for(var t=n.allocUnsafe(e>>>0),i=this.head,r=0;i;)i.data.copy(t,r),r+=i.data.length,i=i.next;return t}},function(e,t,i){e.exports=i(112)},function(e,t,i){(function(r){var n=function(){try{return i(9)}catch(e){}}();t=e.exports=i(113),t.Stream=n||t,t.Readable=t,t.Writable=i(55),t.Duplex=i(15),t.Transform=i(54),t.PassThrough=i(112),!r.browser&&"disable"===r.env.READABLE_STREAM&&n&&(e.exports=n)}).call(t,i(5))},function(e,t,i){e.exports=i(55)},function(e,t,i){function r(e){if(e)return n(e)}function n(e){for(var t in r.prototype)e[t]=r.prototype[t];return e}var s=i(115);e.exports=r,r.prototype.clearTimeout=function(){return this._timeout=0,clearTimeout(this._timer),this},r.prototype.parse=function(e){return this._parser=e,this},r.prototype.serialize=function(e){return this._serializer=e,this},r.prototype.timeout=function(e){return this._timeout=e,this},r.prototype.then=function(e,t){if(!this._fullfilledPromise){var i=this;this._fullfilledPromise=new Promise(function(e,t){i.end(function(i,r){i?t(i):e(r)})})}return this._fullfilledPromise.then(e,t)},r.prototype.catch=function(e){return this.then(void 0,e)},r.prototype.use=function(e){return e(this),this},r.prototype.get=function(e){return this._header[e.toLowerCase()]},r.prototype.getHeader=r.prototype.get,r.prototype.set=function(e,t){if(s(e)){for(var i in e)this.set(i,e[i]);return this}return this._header[e.toLowerCase()]=t,this.header[e]=t,this},r.prototype.unset=function(e){return delete this._header[e.toLowerCase()],delete this.header[e],this},r.prototype.field=function(e,t){if(null===e||void 0===e)throw new Error(".field(name, val) name can not be empty");if(s(e)){for(var i in e)this.field(i,e[i]);return this}if(null===t||void 0===t)throw new Error(".field(name, val) val can not be empty");return this._getFormData().append(e,t),this},r.prototype.abort=function(){return this._aborted?this:(this._aborted=!0,this.xhr&&this.xhr.abort(),this.req&&this.req.abort(),this.clearTimeout(),this.emit("abort"),this)},r.prototype.withCredentials=function(){return this._withCredentials=!0,this},r.prototype.redirects=function(e){return this._maxRedirects=e,this},r.prototype.toJSON=function(){return{method:this.method,url:this.url,data:this._data,headers:this._header}},r.prototype.send=function(e){var t=s(e),i=this._header["content-type"];if(t&&!this._data)Array.isArray(e)?this._data=[]:this._isHost(e)||(this._data={});else if(e&&this._data&&this._isHost(this._data))throw Error("Can't merge these send calls");if(t&&s(this._data))for(var r in e)this._data[r]=e[r];else"string"==typeof e?(i||this.type("form"),i=this._header["content-type"],"application/x-www-form-urlencoded"==i?this._data=this._data?this._data+"&"+e:e:this._data=(this._data||"")+e):this._data=e;return!t||this._isHost(e)?this:(i||this.type("json"),this)}},function(e,t){function i(e,t,i){return"function"==typeof i?new e("GET",t).end(i):2==arguments.length?new e("GET",t):new e(t,i)}e.exports=i},function(e,t){"use strict";function i(e){return this instanceof i?(this.id=n++,void(this.ee=e)):new i(e)}var r=Object.prototype.hasOwnProperty,n=0;i.prototype.on=function(e,t,i){return t.__ultron=this.id,this.ee.on(e,t,i),this},i.prototype.once=function(e,t,i){return t.__ultron=this.id,this.ee.once(e,t,i),this},i.prototype.remove=function(){var e,t=arguments;if(1===t.length&&"string"==typeof t[0])t=t[0].split(/[, ]+/);else if(!t.length){t=[];for(e in this.ee._events)r.call(this.ee._events,e)&&t.push(e)}for(var i=0;i0),t.refcount--,0===t.refcount&&(t.destructor&&Runtime.dynCall("vi",t.destructor,[e]),delete EXCEPTIONS.infos[e],___cxa_free_exception(e))}},clearRef:function(e){if(e){var t=EXCEPTIONS.infos[e];t.refcount=0}}};Module._memset=_memset,Module._free=_free,Module._malloc=_malloc;var delayFunction=void 0,deletionQueue=[],registeredPointers={},registeredInstances={},UnboundTypeError=void 0,_llvm_fabs_f64=Math_abs;Module._i64Add=_i64Add;var emval_free_list=[],emval_handle_array=[{},{value:void 0},{value:null},{value:!0},{value:!1}];Module._bitshift64Ashr=_bitshift64Ashr,Module._bitshift64Lshr=_bitshift64Lshr,Module._memcpy=_memcpy;var _llvm_pow_f64=Math_pow;Module._memmove=_memmove,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(),STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP),staticSealed=!0,STACK_MAX=STACK_BASE+TOTAL_STACK,DYNAMIC_BASE=DYNAMICTOP=Runtime.alignMemory(STACK_MAX);var cttz_i8=allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0],"i8",ALLOC_DYNAMIC);Module.asmGlobalArg={Math:Math,Int8Array:Int8Array,Int16Array:Int16Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Uint16Array:Uint16Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array,NaN:NaN,Infinity:1/0},Module.asmLibraryArg={abort:abort,assert:assert,invoke_iiii:invoke_iiii,invoke_viiiii:invoke_viiiii,invoke_vi:invoke_vi,invoke_iiiiiii:invoke_iiiiiii,invoke_ii:invoke_ii,invoke_viiiiiii:invoke_viiiiiii,invoke_v:invoke_v,invoke_iiiii:invoke_iiiii,invoke_viiiiii:invoke_viiiiii,invoke_iiiiii:invoke_iiiiii,invoke_viiii:invoke_viiii,floatReadValueFromPointer:floatReadValueFromPointer,simpleReadValueFromPointer:simpleReadValueFromPointer,throwInternalError:throwInternalError,get_first_emval:get_first_emval,_llvm_fabs_f64:_llvm_fabs_f64,getLiveInheritedInstances:getLiveInheritedInstances,__ZSt18uncaught_exceptionv:__ZSt18uncaught_exceptionv,ClassHandle:ClassHandle,getShiftFromSize:getShiftFromSize,_sbrk:_sbrk,_emscripten_memcpy_big:_emscripten_memcpy_big,runDestructor:runDestructor,_sysconf:_sysconf,throwInstanceAlreadyDeleted:throwInstanceAlreadyDeleted,__embind_register_std_string:__embind_register_std_string,init_RegisteredPointer:init_RegisteredPointer,ClassHandle_isAliasOf:ClassHandle_isAliasOf,_llvm_stacksave:_llvm_stacksave,flushPendingDeletes:flushPendingDeletes,makeClassHandle:makeClassHandle,whenDependentTypesAreResolved:whenDependentTypesAreResolved,__embind_register_class_constructor:__embind_register_class_constructor,init_ClassHandle:init_ClassHandle,ClassHandle_clone:ClassHandle_clone,RegisteredClass:RegisteredClass,_llvm_stackrestore:_llvm_stackrestore,___cxa_find_matching_catch:___cxa_find_matching_catch,embind_init_charCodes:embind_init_charCodes,___setErrNo:___setErrNo,__embind_register_bool:__embind_register_bool,___resumeException:___resumeException,createNamedFunction:createNamedFunction,__embind_register_emval:__embind_register_emval,__emval_decref:__emval_decref,init_embind:init_embind,constNoSmartPtrRawPointerToWireType:constNoSmartPtrRawPointerToWireType,heap32VectorToArray:heap32VectorToArray,ClassHandle_delete:ClassHandle_delete,RegisteredPointer_destructor:RegisteredPointer_destructor,ensureOverloadTable:ensureOverloadTable,_time:_time,new_:new_,downcastPointer:downcastPointer,replacePublicSymbol:replacePublicSymbol,__embind_register_class:__embind_register_class,_llvm_pow_f64:_llvm_pow_f64,ClassHandle_deleteLater:ClassHandle_deleteLater,RegisteredPointer_deleteObject:RegisteredPointer_deleteObject,ClassHandle_isDeleted:ClassHandle_isDeleted,__embind_register_integer:__embind_register_integer,___cxa_allocate_exception:___cxa_allocate_exception,_embind_repr:_embind_repr,RegisteredPointer:RegisteredPointer,_exp2:_exp2,craftInvokerFunction:craftInvokerFunction,runDestructors:runDestructors,makeLegalFunctionName:makeLegalFunctionName,upcastPointer:upcastPointer,init_emval:init_emval,shallowCopyInternalPointer:shallowCopyInternalPointer,nonConstNoSmartPtrRawPointerToWireType:nonConstNoSmartPtrRawPointerToWireType,_abort:_abort,throwBindingError:throwBindingError,getTypeName:getTypeName,exposePublicSymbol:exposePublicSymbol,RegisteredPointer_fromWireType:RegisteredPointer_fromWireType,__embind_register_memory_view:__embind_register_memory_view,getInheritedInstance:getInheritedInstance,setDelayFunction:setDelayFunction,___gxx_personality_v0:___gxx_personality_v0,extendError:extendError,__embind_register_void:__embind_register_void,RegisteredPointer_getPointee:RegisteredPointer_getPointee,__emval_register:__emval_register,__embind_register_std_wstring:__embind_register_std_wstring,__embind_register_class_function:__embind_register_class_function,throwUnboundTypeError:throwUnboundTypeError,readLatin1String:readLatin1String,_pthread_self:_pthread_self,getBasestPointer:getBasestPointer,getInheritedInstanceCount:getInheritedInstanceCount,__embind_register_float:__embind_register_float,integerReadValueFromPointer:integerReadValueFromPointer,genericPointerToWireType:genericPointerToWireType,registerType:registerType,___cxa_throw:___cxa_throw,count_emval_handles:count_emval_handles,requireFunction:requireFunction,STACKTOP:STACKTOP,STACK_MAX:STACK_MAX,tempDoublePtr:tempDoublePtr,ABORT:ABORT,cttz_i8:cttz_i8};var asm=function(e,t,i){"use asm";var r=new e.Int8Array(i);var n=new e.Int16Array(i);var s=new e.Int32Array(i);var a=new e.Uint8Array(i);var o=new e.Uint16Array(i);var f=new e.Uint32Array(i);var h=new e.Float32Array(i);var c=new e.Float64Array(i);var l=t.STACKTOP|0;var u=t.STACK_MAX|0;var d=t.tempDoublePtr|0;var p=t.ABORT|0;var b=t.cttz_i8|0;var m=0;var w=0;var g=0;var v=0;var _=e.NaN,y=e.Infinity;var k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0;var C=0;var P=0;var O=0;var N=0;var D=0;var L=0;var B=0;var U=0;var j=0;var F=0;var z=e.Math.floor;var q=e.Math.abs;var H=e.Math.sqrt;var G=e.Math.pow;var V=e.Math.cos;var W=e.Math.sin;var K=e.Math.tan;var Y=e.Math.acos;var Z=e.Math.asin;var $=e.Math.atan;var X=e.Math.atan2;var J=e.Math.exp;var Q=e.Math.log;var ee=e.Math.ceil;var te=e.Math.imul;var ie=e.Math.min;var re=e.Math.clz32;var ne=t.abort;var se=t.assert;var ae=t.invoke_iiii;var oe=t.invoke_viiiii;var fe=t.invoke_vi;var he=t.invoke_iiiiiii;var ce=t.invoke_ii;var le=t.invoke_viiiiiii;var ue=t.invoke_v;var de=t.invoke_iiiii;var pe=t.invoke_viiiiii;var be=t.invoke_iiiiii;var me=t.invoke_viiii;var we=t.floatReadValueFromPointer;var ge=t.simpleReadValueFromPointer;var ve=t.throwInternalError;var _e=t.get_first_emval;var ye=t._llvm_fabs_f64;var ke=t.getLiveInheritedInstances;var Ee=t.__ZSt18uncaught_exceptionv;var Ae=t.ClassHandle;var Se=t.getShiftFromSize;var Me=t._sbrk;var Te=t._emscripten_memcpy_big;var xe=t.runDestructor;var Re=t._sysconf;var Ie=t.throwInstanceAlreadyDeleted;var Ce=t.__embind_register_std_string;var Pe=t.init_RegisteredPointer;var Oe=t.ClassHandle_isAliasOf;var Ne=t._llvm_stacksave;var De=t.flushPendingDeletes;var Le=t.makeClassHandle;var Be=t.whenDependentTypesAreResolved;var Ue=t.__embind_register_class_constructor;var je=t.init_ClassHandle;var Fe=t.ClassHandle_clone;var ze=t.RegisteredClass;var qe=t._llvm_stackrestore;var He=t.___cxa_find_matching_catch;var Ge=t.embind_init_charCodes;var Ve=t.___setErrNo;var We=t.__embind_register_bool;var Ke=t.___resumeException;var Ye=t.createNamedFunction;var Ze=t.__embind_register_emval;var $e=t.__emval_decref;var Xe=t.init_embind;var Je=t.constNoSmartPtrRawPointerToWireType;var Qe=t.heap32VectorToArray;var et=t.ClassHandle_delete;var tt=t.RegisteredPointer_destructor;var it=t.ensureOverloadTable;var rt=t._time;var nt=t.new_;var st=t.downcastPointer;var at=t.replacePublicSymbol;var ot=t.__embind_register_class;var ft=t._llvm_pow_f64;var ht=t.ClassHandle_deleteLater;var ct=t.RegisteredPointer_deleteObject;var lt=t.ClassHandle_isDeleted;var ut=t.__embind_register_integer;var dt=t.___cxa_allocate_exception;var pt=t._embind_repr;var bt=t.RegisteredPointer;var mt=t._exp2;var wt=t.craftInvokerFunction;var gt=t.runDestructors;var vt=t.makeLegalFunctionName;var _t=t.upcastPointer;var yt=t.init_emval;var kt=t.shallowCopyInternalPointer;var Et=t.nonConstNoSmartPtrRawPointerToWireType;var At=t._abort;var St=t.throwBindingError;var Mt=t.getTypeName;var Tt=t.exposePublicSymbol;var xt=t.RegisteredPointer_fromWireType;var Rt=t.__embind_register_memory_view;var It=t.getInheritedInstance;var Ct=t.setDelayFunction;var Pt=t.___gxx_personality_v0;var Ot=t.extendError;var Nt=t.__embind_register_void;var Dt=t.RegisteredPointer_getPointee;var Lt=t.__emval_register;var Bt=t.__embind_register_std_wstring;var Ut=t.__embind_register_class_function;var jt=t.throwUnboundTypeError;var Ft=t.readLatin1String;var zt=t._pthread_self;var qt=t.getBasestPointer;var Ht=t.getInheritedInstanceCount;var Gt=t.__embind_register_float;var Vt=t.integerReadValueFromPointer;var Wt=t.genericPointerToWireType;var Kt=t.registerType;var Yt=t.___cxa_throw;var Zt=t.count_emval_handles;var $t=t.requireFunction;var Xt=0;function Jt(e,t,i,o,f,c){e=e|0;t=t|0;i=i|0;o=o|0;f=f|0;c=c|0;var u=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0,C=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,G=0,V=0,W=0,K=0,Y=0,Z=0,$=0,X=0,J=0,ee=0,ie=0,ne=0,se=0,ae=0,oe=0,fe=0,he=0,ce=0,le=0,ue=0,de=0,pe=0,be=0,me=0,we=0,ge=0,ve=0,_e=0,ye=0,ke=0,Ee=0,Ae=0,Se=0,Me=0,Te=0,xe=0,Re=0,Ie=0,Ce=0,Pe=0,Oe=0,De=0,Le=0,Be=0,Ue=0,je=0,Fe=0,ze=0,He=0,Ge=0,Ve=0,We=0,Ke=0,Ye=0,Ze=0,$e=0,Xe=0,Je=0,Qe=0,et=0,tt=0,it=0,rt=0,nt=0,st=0;nt=l;l=l+192|0;K=nt+80|0;w=nt+32|0;$e=nt+28|0;L=nt+24|0;He=nt+20|0;ze=nt+16|0;J=nt+12|0;Ce=nt+8|0;Ie=nt+4|0;B=nt;et=s[e+4>>2]|0;Ze=s[e+8>>2]|0;s[$e>>2]=15;h[L>>2]=0;s[He>>2]=0;s[J>>2]=0;Fe=s[e>>2]|0;We=Fe+8|0;rt=s[We>>2]|0;N=s[Fe+4>>2]|0;Oe=Fe+32|0;ke=s[Oe>>2]|0;tt=s[e+32>>2]|0;it=s[e+36>>2]|0;Re=(tt|0)!=0;h[Ce>>2]=0;if((f|0)<2|(t|0)==0){e=-1;l=nt;return e|0}W=e+28|0;u=te(s[W>>2]|0,i)|0;pe=Fe+44|0;Te=Fe+36|0;i=s[Te>>2]|0;Ee=0;while(1){if((Ee|0)>(i|0)){i=-1;Se=631;break}if((s[pe>>2]<>2]<>2]|0;Ve=s[c+28>>2]|0;I=re(Ve|0)|0;Ge=32-I|0;Ve=Ve>>>(Ge+-16|0);xe=(Ve>>>12)+-8|0;I=Ue+(I+-32)|0;O=I+4>>3;xe=(Ue<<3)-((Ge<<3)+(xe+(Ve>>>0>(s[5272+(xe<<2)>>2]|0)>>>0&1)))|0}f=(f|0)<1275?f:1275;m=f-O|0;_e=e+44|0;i=s[e+40>>2]|0;if(!(s[_e>>2]|0))if((i|0)==-1)Se=13;else{Ve=te(i,u)|0;Se=s[Fe>>2]|0;Se=((Ve+((I|0)>1?I:0)+(Se<<2)|0)/(Se<<3|0)|0)-((s[e+48>>2]|0)!=0&1)|0;Ve=(f|0)<(Se|0);f=((Ve?f:Se)|0)<2?2:Ve?f:Se;Se=13}else if((i|0)==-1){i=-1;Se=13}else{Le=s[Fe>>2]|0;Le=((te(i,u)|0)+(Le>>4)|0)/(Le>>3|0)|0;p=f;P=Le>>6}if((Se|0)==13){p=f;P=f-O|0;Le=0}f=te((Ze*40|0)+20|0,(400>>>Ee)+-50|0)|0;u=(p*400>>3-Ee)-f|0;if((i|0)==-1)Be=u;else{Be=i-f|0;Be=(u|0)<(Be|0)?u:Be}if(b){s[w>>2]=o;s[w+8>>2]=0;s[w+12>>2]=0;s[w+16>>2]=0;s[w+20>>2]=33;s[w+24>>2]=0;s[w+28>>2]=-2147483648;s[w+40>>2]=-1;s[w+32>>2]=0;s[w+36>>2]=0;s[w+4>>2]=p;s[w+44>>2]=0;Ve=w}else Ve=c;Me=(Le|0)>0;if(((Me?(s[e+52>>2]|0)!=0:0)?(v=(I|0)==1?2:0,_=(Le<<1)-(s[e+176>>2]|0)>>6,E=(v|0)>(_|0),((E?v:_)|0)<(m|0)):0)?(A=E?v:_,(A|0)<(m|0)):0){p=O+A|0;De=s[Ve>>2]|0;Ge=s[Ve+8>>2]|0;Ue=0-Ge|0;u=Ve+4|0;Tn(De+p+Ue|0,De+(s[u>>2]|0)+Ue|0,Ge|0)|0;s[u>>2]=p;u=A}else u=m;C=p<<3;de=s[Fe+12>>2]|0;de=(it|0)>(de|0)?de:it;U=je+N|0;w=te(et,U)|0;Ge=Ne()|0;V=l;l=l+((1*(w<<2)|0)+15&-16)|0;w=e+192|0;g=+h[w>>2];f=te(Ze,je-N|0)|0;m=s[W>>2]|0;f=(f|0)/(m|0)|0;i=0;y=0;k=0;while(1){if((i|0)>=(f|0))break;Pe=+h[t+(i<<2)>>2];i=i+1|0;y=y>Pe?y:Pe;k=k(y>Pe?y:Pe))){i=0;y=0;g=0;while(1){if((i|0)>=(f|0))break;Pe=+h[t+(i<<2)>>2];i=i+1|0;y=y>Pe?y:Pe;g=gg)g=y}b=t+(f<<2)|0;i=(te(Ze,N)|0)/(m|0)|0;f=0;y=0;k=0;while(1){if((f|0)>=(i|0))break;Pe=+h[b+(f<<2)>>2];f=f+1|0;y=y>Pe?y:Pe;k=kPe?y:Pe;h[w>>2]=Pe;g=g>Pe?g:Pe;be=e+60|0;S=g<=1/+(1<>2]|0);R=S&1;if((I|0)==1){T=Ve+28|0;f=s[T>>2]|0;i=f>>>15;f=f-i|0;A=Ve+32|0;if(S)s[A>>2]=(s[A>>2]|0)+f;else i=f;s[T>>2]=i;w=Ve+36|0;x=Ve+20|0;o=Ve+40|0;c=Ve+24|0;v=Ve+8|0;_=Ve+4|0;E=Ve+44|0;while(1){if(i>>>0>=8388609)break;f=s[A>>2]|0;m=f>>>23;if((m|0)==255)s[w>>2]=(s[w>>2]|0)+1;else{b=f>>>31;i=s[o>>2]|0;if((i|0)>-1){f=s[c>>2]|0;if((f+(s[v>>2]|0)|0)>>>0<(s[_>>2]|0)>>>0){s[c>>2]=f+1;r[(s[Ve>>2]|0)+f>>0]=i+b;i=0}else i=-1;s[E>>2]=s[E>>2]|i}i=s[w>>2]|0;if(i|0){b=b+255&255;do{f=s[c>>2]|0;if((f+(s[v>>2]|0)|0)>>>0<(s[_>>2]|0)>>>0){s[c>>2]=f+1;r[(s[Ve>>2]|0)+f>>0]=b;f=0;i=s[w>>2]|0}else f=-1;s[E>>2]=s[E>>2]|f;i=i+-1|0;s[w>>2]=i}while((i|0)!=0)}s[o>>2]=m&255;f=s[A>>2]|0;i=s[T>>2]|0}s[A>>2]=f<<8&2147483392;i=i<<8;s[T>>2]=i;s[x>>2]=(s[x>>2]|0)+8}if(S){if(Me){b=O+2|0;b=(p|0)<(b|0)?p:b;f=s[Ve>>2]|0;p=s[v>>2]|0;i=0-p|0;Tn(f+b+i|0,f+(s[_>>2]|0)+i|0,p|0)|0;s[_>>2]=b;p=b;i=s[T>>2]|0;f=b;u=2;b=b<<3}else{f=P;b=C}I=p<<3;Ue=s[x>>2]|0;s[x>>2]=Ue+(I-(Ue+((re(i|0)|0)+-32)));Ue=R}else{f=P;Ue=0;I=1;b=C}}else{f=P;Ue=0;b=C}S=e+16|0;T=Fe+16|0;x=Fe+20|0;R=je<<2;_=g>65536;A=0;do{w=_&(s[S>>2]|0)!=0;c=t+(A<<2)|0;v=V+((te(A,U)|0)<<2)+(N<<2)|0;o=s[W>>2]|0;E=e+160+(A<<2)|0;y=+h[T>>2];g=+h[E>>2];e:do if(+h[x>>2]==0){if((o|0)!=1){i=(je|0)/(o|0)|0;Se=64;break}if(w){i=je;Se=65}else{i=0;while(1){if((i|0)>=(je|0))break e;Pe=+h[c+((te(i,et)|0)<<2)>>2]*32768;h[v+(i<<2)>>2]=Pe-g;i=i+1|0;g=y*Pe}}}else{i=(je|0)/(o|0)|0;if((o|0)==1)Se=65;else Se=64}while(0);if((Se|0)==64){kn(v|0,0,R|0)|0;Se=65}e:do if((Se|0)==65){Se=0;m=0;while(1){if((m|0)>=(i|0))break;h[v+((te(m,o)|0)<<2)>>2]=+h[c+((te(m,et)|0)<<2)>>2]*32768;m=m+1|0}t:do if(w){m=0;while(1){if((m|0)>=(i|0)){i=0;break t}De=v+((te(m,o)|0)<<2)|0;Pe=+h[De>>2];ye=Pe>65536;Ae=Pe<-65536&(ye^1);h[De>>2]=Ae|ye?Ae?-65536:65536:Pe;m=m+1|0}}else i=0;while(0);while(1){if((i|0)>=(je|0))break e;De=v+(i<<2)|0;Pe=+h[De>>2];h[De>>2]=Pe-g;i=i+1|0;g=y*Pe}}while(0);h[E>>2]=g;A=A+1|0}while((A|0)<(et|0));Ae=e+68|0;if((((s[Ae>>2]|0)!=0&(u|0)>3|(u|0)>(Ze*12|0))&(Re^1)&(Ue|0)==0?(s[e+20>>2]|0)==0:0)?(s[e+24>>2]|0)>4:0){if((s[e+116>>2]|0)==0|(Ee|0)==3)i=0;else i=(s[e+64>>2]|0)==5010;i=i^1}else i=0;le=e+100|0;De=s[le>>2]|0;i=Qt(e,V,D,et,je,De,$e,L,B,i&1,u)|0;Pe=+h[L>>2];if(!(Pe>.4000000059604645)?!(+h[e+108>>2]>.4000000059604645):0)ye=0;else Se=82;do if((Se|0)==82){if(s[e+120>>2]|0?!(+h[e+124>>2]>.3):0){ye=0;break}ae=+(s[$e>>2]|0);he=+(s[e+104>>2]|0);ye=(ae>he*1.26|ae(b|0))){c=Ve+28|0;i=s[c>>2]|0;i=i-(i>>>1)|0;s[c>>2]=i;v=Ve+32|0;_=Ve+36|0;E=Ve+20|0;A=Ve+40|0;S=Ve+24|0;T=Ve+8|0;x=Ve+4|0;R=Ve+44|0;while(1){if(i>>>0>=8388609)break e;m=s[v>>2]|0;o=m>>>23;if((o|0)==255)s[_>>2]=(s[_>>2]|0)+1;else{w=m>>>31;i=s[A>>2]|0;if((i|0)>-1){m=s[S>>2]|0;if((m+(s[T>>2]|0)|0)>>>0<(s[x>>2]|0)>>>0){s[S>>2]=m+1;r[(s[Ve>>2]|0)+m>>0]=i+w;i=0}else i=-1;s[R>>2]=s[R>>2]|i}i=s[_>>2]|0;if(i|0){w=w+255&255;do{m=s[S>>2]|0;if((m+(s[T>>2]|0)|0)>>>0<(s[x>>2]|0)>>>0){s[S>>2]=m+1;r[(s[Ve>>2]|0)+m>>0]=w;m=0;i=s[_>>2]|0}else m=-1;s[R>>2]=s[R>>2]|m;i=i+-1|0;s[_>>2]=i}while((i|0)!=0)}s[A>>2]=o&255;m=s[v>>2]|0;i=s[c>>2]|0}s[v>>2]=m<<8&2147483392;i=i<<8;s[c>>2]=i;s[E>>2]=(s[E>>2]|0)+8}}}else{R=Ve+28|0;m=s[R>>2]|0;i=m>>>1;I=Ve+32|0;m=(s[I>>2]|0)+(m-i)|0;s[I>>2]=m;s[R>>2]=i;C=Ve+36|0;P=Ve+20|0;O=Ve+40|0;N=Ve+24|0;t=Ve+8|0;D=Ve+4|0;L=Ve+44|0;while(1){if(i>>>0>=8388609)break;o=m>>>23;if((o|0)==255)s[C>>2]=(s[C>>2]|0)+1;else{w=m>>>31;i=s[O>>2]|0;if((i|0)>-1){m=s[N>>2]|0;if((m+(s[t>>2]|0)|0)>>>0<(s[D>>2]|0)>>>0){s[N>>2]=m+1;r[(s[Ve>>2]|0)+m>>0]=i+w;i=0}else i=-1;s[L>>2]=s[L>>2]|i}i=s[C>>2]|0;if(i|0){w=w+255&255;do{m=s[N>>2]|0;if((m+(s[t>>2]|0)|0)>>>0<(s[D>>2]|0)>>>0){s[N>>2]=m+1;r[(s[Ve>>2]|0)+m>>0]=w;m=0;i=s[C>>2]|0}else m=-1;s[L>>2]=s[L>>2]|m;i=i+-1|0;s[C>>2]=i}while((i|0)!=0)}s[O>>2]=o&255;m=s[I>>2]|0;i=s[R>>2]|0}m=m<<8&2147483392;s[I>>2]=m;i=i<<8;s[R>>2]=i;s[P>>2]=(s[P>>2]|0)+8}T=s[$e>>2]|0;c=T+1|0;s[$e>>2]=c;x=re(c|0)|0;E=32-x|0;v=E+-5|0;w=(i>>>0)/6|0;if(!v)i=i-(te(w,10-E|0)|0)|0;else{m=m+(i-(te(w,11-E|0)|0))|0;s[I>>2]=m;i=w}s[R>>2]=i;while(1){if(i>>>0>=8388609)break;o=m>>>23;if((o|0)==255)s[C>>2]=(s[C>>2]|0)+1;else{w=m>>>31;i=s[O>>2]|0;if((i|0)>-1){m=s[N>>2]|0;if((m+(s[t>>2]|0)|0)>>>0<(s[D>>2]|0)>>>0){s[N>>2]=m+1;r[(s[Ve>>2]|0)+m>>0]=i+w;i=0}else i=-1;s[L>>2]=s[L>>2]|i}i=s[C>>2]|0;if(i|0){w=w+255&255;do{m=s[N>>2]|0;if((m+(s[t>>2]|0)|0)>>>0<(s[D>>2]|0)>>>0){s[N>>2]=m+1;r[(s[Ve>>2]|0)+m>>0]=w;m=0;i=s[C>>2]|0}else m=-1;s[L>>2]=s[L>>2]|m;i=i+-1|0;s[C>>2]=i}while((i|0)!=0)}s[O>>2]=o&255;m=s[I>>2]|0;i=s[R>>2]|0}m=m<<8&2147483392;s[I>>2]=m;i=i<<8;s[R>>2]=i;s[P>>2]=(s[P>>2]|0)+8}_=c-(16<>2]|0;S=Ve+16|0;o=s[S>>2]|0;if((o+E|0)>>>0>32){c=7-o|0;c=o+((c|0)>-8?c:-8)&-8;v=o;do{m=s[t>>2]|0;w=s[D>>2]|0;if(((s[N>>2]|0)+m|0)>>>0>>0){m=m+1|0;s[t>>2]=m;r[(s[Ve>>2]|0)+(w-m)>>0]=i;m=0}else m=-1;s[L>>2]=s[L>>2]|m;i=i>>>8;v=v+-8|0}while((v|0)>7);o=o+-8-c|0}i=i|_<>2]=i;s[S>>2]=m;w=(s[P>>2]|0)+E|0;s[P>>2]=w;s[$e>>2]=T;_=s[B>>2]|0;if((m+3|0)>>>0>32){v=o+23|0;c=x+-24-o|0;c=o+((c|0)>-8?c:-8)+31-x&-8;do{w=s[t>>2]|0;o=s[D>>2]|0;if(((s[N>>2]|0)+w|0)>>>0>>0){w=w+1|0;s[t>>2]=w;r[(s[Ve>>2]|0)+(o-w)>>0]=i;w=0}else w=-1;s[L>>2]=s[L>>2]|w;i=i>>>8;m=m+-8|0}while((m|0)>7);w=s[P>>2]|0;m=v-x-c|0}s[A>>2]=i|_<>2]=m+3;w=w+3|0;s[P>>2]=w;i=s[R>>2]|0;m=i>>>2;if((De|0)>0){ve=a[29345+(De+-1)>>0]|0;ge=i-(te(m,ve)|0)|0;s[I>>2]=(s[I>>2]|0)+ge;m=te(m,ve-(a[29345+De>>0]|0)|0)|0}else m=i-(te(m,a[29345+De>>0]|0)|0)|0;s[R>>2]=m;i=w;while(1){if(m>>>0>=8388609)break e;w=s[I>>2]|0;o=w>>>23;if((o|0)==255)s[C>>2]=(s[C>>2]|0)+1;else{w=w>>>31;i=s[O>>2]|0;if((i|0)>-1){m=s[N>>2]|0;if((m+(s[t>>2]|0)|0)>>>0<(s[D>>2]|0)>>>0){s[N>>2]=m+1;r[(s[Ve>>2]|0)+m>>0]=i+w;i=0}else i=-1;s[L>>2]=s[L>>2]|i}i=s[C>>2]|0;if(i|0){w=w+255&255;do{m=s[N>>2]|0;if((m+(s[t>>2]|0)|0)>>>0<(s[D>>2]|0)>>>0){s[N>>2]=m+1;r[(s[Ve>>2]|0)+m>>0]=w;m=0;i=s[C>>2]|0}else m=-1;s[L>>2]=s[L>>2]|m;i=i+-1|0;s[C>>2]=i}while((i|0)!=0)}s[O>>2]=o&255;w=s[I>>2]|0;m=s[R>>2]|0;i=s[P>>2]|0}s[I>>2]=w<<8&2147483392;m=m<<8;s[R>>2]=m;i=i+8|0;s[P>>2]=i}}while(0);me=e+24|0;if((s[me>>2]|0)>0?(s[Ae>>2]|0)==0:0)C=ei(V,U,et,Ce,J)|0;else C=0;D=(Ee|0)>0;e:do if(D?((s[Ve+20>>2]|0)+((re(s[Ve+28>>2]|0)|0)+-32)+3|0)<=(b|0):0)if(C){x=(te(et,je)|0)<<2;T=l;l=l+((1*x|0)+15&-16)|0;x=l;l=l+((1*(Ye<<2)|0)+15&-16)|0;R=l;l=l+((1*(Ye<<2)|0)+15&-16)|0;S=te(Ze,rt)|0;I=l;l=l+((1*(S<<2)|0)+15&-16)|0;if((s[me>>2]|0)>7){ti(Fe,0,V,T,Ze,et,Ee,s[W>>2]|0);i=s[Oe>>2]|0;m=s[pe>>2]<=(de|0))break;v=n[i+(A<<1)>>1]|0;o=T+(w+(v<>1]|0)-v<=(v|0))break;he=+h[o+(E<<2)>>2];E=E+1|0;g=g+he*he}he=+H(+(g+1.0000000272452012e-27));h[x+(A+(te(_,s[We>>2]|0)|0)<<2)>>2]=he;A=c}_=_+1|0}while((_|0)<(Ze|0));m=0;do{i=0;while(1){if((i|0)>=(de|0)){i=de;break}ve=i+(te(m,s[We>>2]|0)|0)|0;he=+Q(+ +h[x+(ve<<2)>>2])*1.4426950408889634;h[I+(ve<<2)>>2]=he-+h[17220+(i<<2)>>2];i=i+1|0}while(1){if((i|0)>=(it|0))break;h[I+((te(m,s[We>>2]|0)|0)+i<<2)>>2]=-14;i=i+1|0}m=m+1|0}while((m|0)<(Ze|0));g=+(Ee|0)*.5;i=0;while(1){if((i|0)>=(S|0)){O=1;P=0;i=C;C=Z;ve=0;break e}ve=I+(i<<2)|0;h[ve>>2]=+h[ve>>2]+g;i=i+1|0}}else{O=0;P=0;i=C;C=Z;ve=0}}else{i=C;m=0;Se=171}else{i=0;m=1;Se=171}while(0);if((Se|0)==171){x=(te(et,je)|0)<<2;T=l;l=l+((1*x|0)+15&-16)|0;x=l;l=l+((1*(Ye<<2)|0)+15&-16)|0;R=l;l=l+((1*(Ye<<2)|0)+15&-16)|0;O=(te(Ze,rt)|0)<<2;I=l;l=l+((1*O|0)+15&-16)|0;O=0;P=1;C=0;ve=m}ti(Fe,C,V,T,Ze,et,Ee,s[W>>2]|0);ge=(et|0)==2;if(ge&(Ze|0)==1)s[J>>2]=0;m=s[Oe>>2]|0;w=s[pe>>2]<=(de|0))break;_=n[m+(S<<1)>>1]|0;c=T+(o+(_<>1]|0)-_<=(_|0))break;he=+h[c+(A<<2)>>2];A=A+1|0;g=g+he*he}he=+H(+(g+1.0000000272452012e-27));h[x+(S+(te(E,s[We>>2]|0)|0)<<2)>>2]=he;S=v}E=E+1|0}while((E|0)<(Ze|0));E=(s[Ae>>2]|0)==0;e:do if(E)w=0;else{m=2;while(1){if((m|0)>=(it|0)){w=0;break e}we=x+(m<<2)|0;ae=+h[we>>2];he=+h[x>>2]*9999999747378752e-20;he=ae>2]=he>1.0000000036274937e-15?he:1.0000000036274937e-15;m=m+1|0}}while(0);do{m=0;while(1){if((m|0)>=(de|0)){m=de;break}we=m+(te(w,s[We>>2]|0)|0)|0;he=+Q(+ +h[x+(we<<2)>>2])*1.4426950408889634;h[R+(we<<2)>>2]=he-+h[17220+(m<<2)>>2];m=m+1|0}while(1){if((m|0)>=(it|0))break;h[R+((te(w,s[We>>2]|0)|0)+m<<2)>>2]=-14;m=m+1|0}w=w+1|0}while((w|0)<(Ze|0));we=te(Ze,rt)|0;F=l;l=l+((1*(we<<2)|0)+15&-16)|0;kn(F|0,0,it<<2|0)|0;if(!Re?(G=s[e+204>>2]|0,!((G|0)==0|E^1)):0){_=s[e+92>>2]|0;_=(_|0)<2?2:_;v=0;m=0;y=0;g=0;while(1){if((v|0)>=(Ze|0))break;c=te(rt,v)|0;o=0;k=g;while(1){if((o|0)>=(_|0))break;g=+h[G+(c+o<<2)>>2];w=g<.25;do if(g>-2|w^1){if(w){if(!(g>0))break}else g=.25;g=g*.5}else g=-2;while(0);fe=o+1|0;ue=(n[ke+(fe<<1)>>1]|0)-(n[ke+(o<<1)>>1]|0)|0;m=m+ue|0;y=y+g*+((o<<1|1)-_|0);o=fe;k=k+g*+(ue|0)}v=v+1|0;g=k}g=g/+(m|0)+.20000000298023224;y=y*6/+(te(te(te(Ze,_+-1|0)|0,_+1|0)|0,_)|0)*.5;m=y<.03099999949336052;y=m?m&!(y>-.03099999949336052)?-.03099999949336052:y:.03099999949336052;m=(n[ke+(_<<1)>>1]|0)/2|0;v=0;while(1){w=v+1|0;if((n[ke+(w<<1)>>1]|0)<(m|0))v=w;else break}o=(Ze|0)==2;m=0;c=0;while(1){if((c|0)>=(_|0))break;w=G+(c<<2)|0;if(o){ue=G+(rt+c<<2)|0;w=+h[w>>2]>+h[ue>>2]?w:ue}k=+h[w>>2];k=(k<0?k:0)-(g+y*+(c-v|0));if(k>.25){h[F+(c<<2)>>2]=k+-.25;m=m+1|0}c=c+1|0}e:do if((m|0)>2){g=g+.25;if(g>0){kn(F|0,0,_<<2|0)|0;y=0;g=0;break}else m=0;while(1){if((m|0)>=(_|0))break e;ue=F+(m<<2)|0;he=+h[ue>>2]+-.25;h[ue>>2]=he<0?0:he;m=m+1|0}}while(0);he=g+.20000000298023224;Y=y*64}else{he=0;Y=0}if(E){k=P?0:+(Ee|0)*.5;m=(Ze|0)==2;y=-10;M=0;w=tt;while(1){if((w|0)>=(it|0))break;ae=y+-1;g=+h[R+(w<<2)>>2]-k;g=ae>g?ae:g;do if(m){y=+h[R+(w+rt<<2)>>2]-k;if(g>y)break;g=y}while(0);y=g;M=M+g;w=w+1|0}ue=e+208|0;j=+h[ue>>2];ae=M/+(it-tt|0)-j;oe=ae<-1.5;fe=ae>3&(oe^1);ae=fe|oe?fe?3:-1.5:ae;h[ue>>2]=j+ae*.019999999552965164}else ae=0;if(!O)Mn(I|0,R|0,we<<2|0)|0;e:do if(D){t=Ve+20|0;w=s[t>>2]|0;N=Ve+28|0;m=s[N>>2]|0;do if((i|0)==0?(w+((re(m|0)|0)+-32)+3|0)<=(b|0):0){if((s[me>>2]|0)<=4){c=m;v=w;E=T;i=0;w=C;break}if(!E){c=m;v=w;E=T;i=0;w=C;break}if(Re){c=m;v=w;E=T;i=0;w=C;break}t:do if((Ze|0)==1){i=s[Xe>>2]|0;s[K>>2]=i;g=(s[d>>2]=i,+h[d>>2]);i=0;while(1){i=i+1|0;if((i|0)>=(it|0))break t;j=+h[Xe+(i<<2)>>2];j=g+-1>j?g+-1:j;h[K+(i<<2)>>2]=j;g=j}}else{j=+h[Xe>>2];g=+h[Xe+(rt<<2)>>2];g=j>g?j:g;h[K>>2]=g;i=0;while(1){i=i+1|0;if((i|0)>=(it|0))break t;M=+h[Xe+(i<<2)>>2];j=+h[Xe+(i+rt<<2)>>2];ue=M>j;j=g+-1>(ue?M:j)?g+-1:ue?M:j;h[K+(i<<2)>>2]=j;g=j}}while(0);i=it+-2|0;while(1){if((i|0)<0)break;ue=K+(i<<2)|0;M=+h[ue>>2];j=+h[K+(i+1<<2)>>2]+-1;h[ue>>2]=M>j?M:j;i=i+-1|0}i=it+-1|0;w=0;g=0;do{m=te(w,rt)|0;o=2;while(1){if((o|0)>=(i|0))break;M=+h[R+(o+m<<2)>>2];j=+h[K+(o<<2)>>2];j=(M<0?0:M)-(j<0?0:j);o=o+1|0;g=g+(j<0?0:j)}w=w+1|0}while((w|0)<(Ze|0));if(g/+(te(it+-3|0,Ze)|0)>1){ti(Fe,Z,V,T,Ze,et,Ee,s[W>>2]|0);i=s[Oe>>2]|0;m=s[pe>>2]<=(de|0))break;v=n[i+(A<<1)>>1]|0;o=T+(w+(v<>1]|0)-v<=(v|0))break;j=+h[o+(E<<2)>>2];E=E+1|0;g=g+j*j}j=+H(+(g+1.0000000272452012e-27));h[x+(A+(te(_,s[We>>2]|0)|0)<<2)>>2]=j;A=c}_=_+1|0}while((_|0)<(Ze|0));m=0;do{i=0;while(1){if((i|0)>=(de|0)){i=de;break}ue=i+(te(m,s[We>>2]|0)|0)|0;j=+Q(+ +h[x+(ue<<2)>>2])*1.4426950408889634;h[R+(ue<<2)>>2]=j-+h[17220+(i<<2)>>2];i=i+1|0}while(1){if((i|0)>=(it|0))break;h[R+((te(m,s[We>>2]|0)|0)+i<<2)>>2]=-14;i=i+1|0}m=m+1|0}while((m|0)<(Ze|0));g=+(Ee|0)*.5;i=0;while(1){if((i|0)>=(we|0))break;ue=I+(i<<2)|0;h[ue>>2]=+h[ue>>2]+g;i=i+1|0}h[Ce>>2]=.20000000298023224;m=T;i=1;w=Z}else{m=T;i=0;w=C}c=s[N>>2]|0;v=s[t>>2]|0;E=m}else{c=m;v=w;E=T;w=C}while(0);if((v+((re(c|0)|0)+-32)+3|0)>(b|0)){ue=i;X=w;break}o=c>>>3;m=c-o|0;O=Ve+32|0;if(i){s[O>>2]=(s[O>>2]|0)+m;m=o}s[N>>2]=m;_=Ve+36|0;A=Ve+40|0;S=Ve+24|0;T=Ve+8|0;C=Ve+4|0;P=Ve+44|0;o=v;while(1){if(m>>>0>=8388609){ue=i;X=w;break e}c=s[O>>2]|0;v=c>>>23;if((v|0)==255)s[_>>2]=(s[_>>2]|0)+1;else{c=c>>>31;m=s[A>>2]|0;if((m|0)>-1){o=s[S>>2]|0;if((o+(s[T>>2]|0)|0)>>>0<(s[C>>2]|0)>>>0){s[S>>2]=o+1;r[(s[Ve>>2]|0)+o>>0]=m+c;m=0}else m=-1;s[P>>2]=s[P>>2]|m}m=s[_>>2]|0;if(m|0){c=c+255&255;do{o=s[S>>2]|0;if((o+(s[T>>2]|0)|0)>>>0<(s[C>>2]|0)>>>0){s[S>>2]=o+1;r[(s[Ve>>2]|0)+o>>0]=c;o=0;m=s[_>>2]|0}else o=-1;s[P>>2]=s[P>>2]|o;m=m+-1|0;s[_>>2]=m}while((m|0)!=0)}s[A>>2]=v&255;c=s[O>>2]|0;m=s[N>>2]|0;o=s[t>>2]|0}s[O>>2]=c<<8&2147483392;m=m<<8;s[N>>2]=m;o=o+8|0;s[t>>2]=o}}else{E=T;ue=i;X=C}while(0);m=(te(Ze,je)|0)<<2;$=l;l=l+((1*m|0)+15&-16)|0;m=s[Oe>>2]|0;w=s[pe>>2]<=(de|0))break;g=1/(+h[x+(i+(te(_,s[We>>2]|0)|0)<<2)>>2]+1.0000000272452012e-27);c=i+1|0;v=n[m+(c<<1)>>1]<>1]<=(v|0)){i=c;continue e}fe=i+o|0;h[$+(fe<<2)>>2]=+h[E+(fe<<2)>>2]*g;i=i+1|0}}_=_+1|0;if((_|0)>=(Ze|0))break}Z=l;l=l+((1*(rt<<2)|0)+15&-16)|0;e:do if((f|0)<(Ze*15|0))if(Re&(f|0)<15){i=0;Se=320}else{i=0;Se=322}else{if(Re)if((f|0)<15){i=0;Se=320;break}else{i=0;Se=322;break}if((s[me>>2]|0)<=1){i=0;Se=322;break}if(s[Ae>>2]|0){i=0;Se=322;break}i=(1280/(f|0)|0)+2|0;i=ii(Fe,de,ue,Z,(i|0)<5?5:i,$,je,Ee,+h[Ce>>2],s[J>>2]|0)|0;m=Z+(de+-1<<2)|0;w=de;while(1){if((w|0)>=(it|0))break e;s[Z+(w<<2)>>2]=s[m>>2];w=w+1|0}}while(0);e:do if((Se|0)==320)while(1){Se=0;if((i|0)>=(it|0)){i=ue;break e}s[Z+(i<<2)>>2]=0;i=i+1|0;Se=320}else if((Se|0)==322)while(1){Se=0;if((i|0)>=(it|0)){i=0;break e}s[Z+(i<<2)>>2]=ue;i=i+1|0;Se=322}while(0);oe=l;l=l+((1*(we<<2)|0)+15&-16)|0;c=0;do{m=te(c,rt)|0;v=tt;while(1){if((v|0)>=(it|0))break;w=v+m|0;o=R+(w<<2)|0;g=+h[o>>2];if(+q(+(g-+h[Xe+(w<<2)>>2]))<2)h[o>>2]=g-+h[Ke+(w<<2)>>2]*.25;v=v+1|0}c=c+1|0}while((c|0)<(Ze|0));Si(Fe,tt,it,de,R,Xe,b,oe,Ve,Ze,Ee,u,s[e+12>>2]|0,e+84|0,(s[me>>2]|0)>3&1,s[e+56>>2]|0,s[Ae>>2]|0);ie=Ve+4|0;m=s[ie>>2]<<3;ne=Ve+20|0;c=s[ne>>2]|0;fe=Ve+28|0;o=s[fe>>2]|0;_=c+((re(o|0)|0)+-32)|0;w=(ue|0)!=0;v=w?2:4;if(D)O=(_+v+1|0)>>>0<=m>>>0;else O=0;P=m-(O&1)|0;C=w?4:5;V=Ve+32|0;W=Ve+36|0;K=Ve+40|0;J=Ve+24|0;ee=Ve+8|0;se=Ve+44|0;E=0;T=tt;S=0;while(1){if((T|0)>=(it|0))break;m=Z+(T<<2)|0;if((_+v|0)>>>0>P>>>0){s[m>>2]=E;w=E;m=S}else{A=s[m>>2]|0;v=o>>>v;w=o-v|0;m=(A|0)==(E|0);if(!m)s[V>>2]=(s[V>>2]|0)+w;v=m?w:v;s[fe>>2]=v;m=c;while(1){if(v>>>0>=8388609)break;w=s[V>>2]|0;c=w>>>23;if((c|0)==255){s[W>>2]=(s[W>>2]|0)+1;o=v}else{o=w>>>31;m=s[K>>2]|0;if((m|0)>-1){w=s[J>>2]|0;if((w+(s[ee>>2]|0)|0)>>>0<(s[ie>>2]|0)>>>0){s[J>>2]=w+1;r[(s[Ve>>2]|0)+w>>0]=m+o;m=0}else m=-1;s[se>>2]=s[se>>2]|m}m=s[W>>2]|0;if(m|0){o=o+255&255;do{w=s[J>>2]|0;if((w+(s[ee>>2]|0)|0)>>>0<(s[ie>>2]|0)>>>0){s[J>>2]=w+1;r[(s[Ve>>2]|0)+w>>0]=o;w=0;m=s[W>>2]|0}else w=-1;s[se>>2]=s[se>>2]|w;m=m+-1|0;s[W>>2]=m}while((m|0)!=0)}s[K>>2]=c&255;w=s[V>>2]|0;o=s[fe>>2]|0;m=s[ne>>2]|0}s[V>>2]=w<<8&2147483392;v=o<<8;s[fe>>2]=v;m=m+8|0;s[ne>>2]=m}c=m;o=v;w=A;_=m+((re(v|0)|0)+-32)|0;m=S|A}E=w;T=T+1|0;v=C;S=m}v=ue<<2;do if(O){if((r[v+S+(27892+(Ee<<3))>>0]|0)==(r[(v|2)+S+(27892+(Ee<<3))>>0]|0)){i=0;m=o;break}m=o>>>1;w=o-m|0;if(!i)m=w;else s[V>>2]=(s[V>>2]|0)+w;s[fe>>2]=m;w=c;while(1){if(m>>>0>=8388609)break;o=s[V>>2]|0;c=o>>>23;if((c|0)==255)s[W>>2]=(s[W>>2]|0)+1;else{o=o>>>31;m=s[K>>2]|0;if((m|0)>-1){w=s[J>>2]|0;if((w+(s[ee>>2]|0)|0)>>>0<(s[ie>>2]|0)>>>0){s[J>>2]=w+1;r[(s[Ve>>2]|0)+w>>0]=m+o;m=0}else m=-1;s[se>>2]=s[se>>2]|m}m=s[W>>2]|0;if(m|0){o=o+255&255;do{w=s[J>>2]|0;if((w+(s[ee>>2]|0)|0)>>>0<(s[ie>>2]|0)>>>0){s[J>>2]=w+1;r[(s[Ve>>2]|0)+w>>0]=o;w=0;m=s[W>>2]|0}else w=-1;s[se>>2]=s[se>>2]|w;m=m+-1|0;s[W>>2]=m}while((m|0)!=0)}s[K>>2]=c&255;o=s[V>>2]|0;m=s[fe>>2]|0;w=s[ne>>2]|0}s[V>>2]=o<<8&2147483392;m=m<<8;s[fe>>2]=m;w=w+8|0;s[ne>>2]=w}i=i<<1;c=w}else{i=0;m=o}while(0);i=v+i|0;w=tt;while(1){if((w|0)>=(it|0))break;G=Z+(w<<2)|0;s[G>>2]=r[i+(s[G>>2]|0)+(27892+(Ee<<3))>>0];w=w+1|0}e:do if((c+((re(m|0)|0)+-32)+4|0)<=(b|0)){t:do if(!(s[Ae>>2]|0)){i:do if(Re){if(!(s[me>>2]|0)){s[e+80>>2]=0;Se=415;break}i=e+80|0;if(!ue){s[i>>2]=3;i=3;Se=414;break t}else{s[i>>2]=2;i=2;Se=414;break t}}else{i=s[me>>2]|0;do if(!X){if((i|0)<3|(u|0)<(Ze*10|0))break;L=e+88|0;U=e+80|0;B=s[U>>2]|0;D=e+96|0;t=s[Oe>>2]|0;P=s[pe>>2]<>1]|0)-(n[t+(de+-1<<1)>>1]|0)<>2]=0;i=0;u=m>>>5;break i}else{N=0;i=0;u=0;w=0}do{O=te(N,P)|0;C=0;while(1){if((C|0)>=(de|0))break;E=n[t+(C<<1)>>1]|0;o=$+(E<>1]|0)-E<>2];j=j*j*g;v=v+1|0;A=A+(j<.25&1)|0;S=S+(j<.015625&1)|0;T=T+(j<.0625&1)|0}if((C|0)>((s[We>>2]|0)+-4|0))i=i+((T+A<<5>>>0)/(E>>>0)|0)|0;C=_;u=u+1|0;w=w+(((S<<1|0)>=(E|0)&1)+((T<<1|0)>=(E|0)&1)+((A<<1|0)>=(E|0)&1)<<8)|0}N=N+1|0}while((N|0)<(Ze|0));if(!ce){if(!i)i=0;else i=(i>>>0)/((te(4-(s[We>>2]|0)+de|0,Ze)|0)>>>0)|0;i=(s[D>>2]|0)+i>>1;s[D>>2]=i;switch(s[le>>2]|0){case 2:{i=i+4|0;break}case 0:{i=i+-4|0;break}default:{}}s[le>>2]=(i|0)>22?2:(i|0)>18&1}i=((w>>>0)/(u>>>0)|0)+(s[L>>2]|0)>>1;s[L>>2]=i;i=(i*3|0)+(3-B<<7|64)+2>>2;do if((i|0)>=80){if((i|0)<256){i=2;break}i=(i|0)<384&1;s[U>>2]=i;u=m>>>5;if((i|0)>0){Se=418;break t}else break i}else i=3;while(0);s[U>>2]=i;u=m>>>5;Se=418;break t}while(0);u=e+80|0;if(!i){s[u>>2]=0;Se=415;break}else{s[u>>2]=2;i=2;Se=414;break t}}while(0);if((Se|0)==415){i=0;u=m>>>5}i=m-(te(u,a[28203+i>>0]|0)|0)|0}else{s[le>>2]=0;s[e+80>>2]=2;i=2;Se=414}while(0);if((Se|0)==414){u=m>>>5;Se=418}if((Se|0)==418){pe=a[28203+(i+-1)>>0]|0;de=m-(te(u,pe)|0)|0;s[V>>2]=(s[V>>2]|0)+de;i=te(u,pe-(a[28203+i>>0]|0)|0)|0}s[fe>>2]=i;u=c;while(1){if(i>>>0>=8388609)break e;m=s[V>>2]|0;w=m>>>23;if((w|0)==255)s[W>>2]=(s[W>>2]|0)+1;else{m=m>>>31;i=s[K>>2]|0;if((i|0)>-1){u=s[J>>2]|0;if((u+(s[ee>>2]|0)|0)>>>0<(s[ie>>2]|0)>>>0){ +s[J>>2]=u+1;r[(s[Ve>>2]|0)+u>>0]=i+m;i=0}else i=-1;s[se>>2]=s[se>>2]|i}i=s[W>>2]|0;if(i|0){m=m+255&255;do{u=s[J>>2]|0;if((u+(s[ee>>2]|0)|0)>>>0<(s[ie>>2]|0)>>>0){s[J>>2]=u+1;r[(s[Ve>>2]|0)+u>>0]=m;u=0;i=s[W>>2]|0}else u=-1;s[se>>2]=s[se>>2]|u;i=i+-1|0;s[W>>2]=i}while((i|0)!=0)}s[K>>2]=w&255;m=s[V>>2]|0;i=s[fe>>2]|0;u=s[ne>>2]|0}s[V>>2]=m<<8&2147483392;i=i<<8;s[fe>>2]=i;u=u+8|0;s[ne>>2]=u}}while(0);G=l;l=l+((1*(rt<<2)|0)+15&-16)|0;O=e+52|0;j=+ri(R,I,rt,tt,it,Ze,G,s[be>>2]|0,s[Fe+56>>2]|0,ue,s[_e>>2]|0,s[O>>2]|0,ke,Ee,f,Ie,s[Ae>>2]|0,F);if(s[Ae>>2]|0)s[G>>2]=(f|0)>26?8:(f|0)/3|0;N=l;l=l+((1*(rt<<2)|0)+15&-16)|0;i=s[We>>2]|0;f=(Ee<<1)+Ze+-1|0;u=Fe+104|0;m=0;while(1){if((m|0)>=(i|0))break;_e=m+1|0;be=s[Oe>>2]|0;pe=(te(i,f)|0)+m|0;s[N+(m<<2)>>2]=(te(te((a[(s[u>>2]|0)+pe>>0]|0)+64|0,Ze)|0,(n[be+(_e<<1)>>1]|0)-(n[be+(m<<1)>>1]|0)<>2;m=_e}I=b<<3;be=s[ne>>2]|0;i=s[fe>>2]|0;_e=32-(re(i|0)|0)|0;C=i>>>(_e+-16|0);A=(C>>>12)+-8|0;f=be;u=6;b=tt;A=(be<<3)-((_e<<3)+(A+(C>>>0>(s[5272+(A<<2)>>2]|0)>>>0&1)))|0;C=0;while(1){if((b|0)>=(it|0))break;T=b+1|0;o=(te(Ze,(n[ke+(T<<1)>>1]|0)-(n[ke+(b<<1)>>1]|0)|0)|0)<=(I-S|0))break;if((_|0)>=(s[c>>2]|0))break;w=(v|0)<(s[E>>2]|0);b=i>>>b;i=i-b|0;if(w){s[V>>2]=(s[V>>2]|0)+i;i=b}s[fe>>2]=i;while(1){if(i>>>0>=8388609)break;b=s[V>>2]|0;m=b>>>23;if((m|0)==255)s[W>>2]=(s[W>>2]|0)+1;else{b=b>>>31;i=s[K>>2]|0;if((i|0)>-1){f=s[J>>2]|0;if((f+(s[ee>>2]|0)|0)>>>0<(s[ie>>2]|0)>>>0){s[J>>2]=f+1;r[(s[Ve>>2]|0)+f>>0]=i+b;i=0}else i=-1;s[se>>2]=s[se>>2]|i}i=s[W>>2]|0;if(i|0){b=b+255&255;do{f=s[J>>2]|0;if((f+(s[ee>>2]|0)|0)>>>0<(s[ie>>2]|0)>>>0){s[J>>2]=f+1;r[(s[Ve>>2]|0)+f>>0]=b;f=0;i=s[W>>2]|0}else f=-1;s[se>>2]=s[se>>2]|f;i=i+-1|0;s[W>>2]=i}while((i|0)!=0)}s[K>>2]=m&255;b=s[V>>2]|0;i=s[fe>>2]|0;f=s[ne>>2]|0}s[V>>2]=b<<8&2147483392;i=i<<8;s[fe>>2]=i;f=f+8|0;s[ne>>2]=f}be=32-(re(i|0)|0)|0;_e=i>>>(be+-16|0);m=(_e>>>12)+-8|0;m=(f<<3)-((be<<3)+(m+(_e>>>0>(s[5272+(m<<2)>>2]|0)>>>0&1)))|0;if(!w)break;_=_+o|0;b=1;v=v+1|0;S=S+o|0}if(v)u=(u|0)<3?2:u+-1|0;s[E>>2]=_;b=T;A=m;C=S}F=(Ze|0)==2;if(F){if(!Ee)w=0;else{u=0;g=1.0000000036274937e-15;y=1.0000000036274937e-15;e:while(1){if((u|0)==13)break;ke=s[Oe>>2]|0;b=u+1|0;m=n[ke+(b<<1)>>1]<>1]<=(m|0)){u=b;continue e}k=+h[$+(u<<2)>>2];M=+h[$+(u+je<<2)>>2];u=u+1|0;g=g+(+q(+k)+ +q(+M));y=y+(+q(+(k+M))+ +q(+(k-M)))}}w=n[(s[Oe>>2]|0)+26>>1]<>2]=+(w+((Ee|0)<2?5:13)|0)*(y*.7071070075035095)>+(w|0)*g&1;w=Ee}g=+((Be|0)/1e3|0|0);m=e+200|0;u=s[m>>2]|0;b=0;while(1){if((b|0)>=21)break;if(+h[5104+(b<<2)>>2]>g)break;b=b+1|0}if(!((b|0)>(u|0)?+h[5104+(u<<2)>>2]+ +h[5188+(u<<2)>>2]>g:0))Se=480;do if((Se|0)==480){if((b|0)>=(u|0)){u=b;break}Ee=u+-1|0;if(!(+h[5104+(Ee<<2)>>2]-+h[5188+(Ee<<2)>>2](u|0);s[m>>2]=(it|0)<((U?tt:u)|0)?it:U?tt:u;U=w}else U=Ee;if((A+48|0)>(I-C|0))P=5;else{do if((tt|0)>0)Se=487;else{if(s[Ae>>2]|0){Se=487;break}c=e+196|0;M=+h[Ce>>2];v=s[e+200>>2]|0;if(F){u=0;g=0;while(1){if((u|0)==8)break;m=s[Oe>>2]|0;b=n[m+(u<<1)>>1]|0;o=b<>1]|0)-b<=(b|0))break;k=y+ +h[w+(m<<2)>>2]*+h[o+(m<<2)>>2];m=m+1|0;y=k}g=g+y}y=+q(+(g*.125));y=y>1?1:y;u=8;k=y;while(1){if((u|0)>=(v|0))break;m=s[Oe>>2]|0;b=n[m+(u<<1)>>1]|0;o=b<>1]|0)-b<=(b|0))break;st=g+ +h[w+(m<<2)>>2]*+h[o+(m<<2)>>2];m=m+1|0;g=st}st=+q(+g);k=k1?1:st;y=+Q(+(1.0010000467300415-y*y))*1.4426950408889634;g=y*.5;st=+Q(+(1.0010000467300415-st*st))*1.4426950408889634;y=y*.75;k=+h[c>>2]+.25;st=-((g>st?g:st)*.5);h[c>>2]=k=(b|0))break;g=g+ +h[R+(u+(te(m,s[We>>2]|0)|0)<<2)>>2]*+((u<<1)+2-it|0);u=u+1|0}m=m+1|0}while((m|0)<(Ze|0));g=(g/+(te(b,Ze)|0)+1)/6;ke=g>2;Ee=g<-2&(ke^1);g=y-(Ee|ke?Ee?-2:2:g)-Y-M*2;if(s[e+120>>2]|0){st=(+h[e+128>>2]+.05000000074505806)*2;ke=st>2;Ee=st<-2&(ke^1);g=g-(Ee|ke?Ee?-2:2:st)}u=~~+z(+(g+.5));if((u|0)>10){b=i>>>7;u=10;Se=512;break}b=i>>>7;if((u|0)>=0){if((u|0)>0){Se=512;break}}else u=0;w=u;i=i-(te(b,a[28207+u>>0]|0)|0)|0}while(0);if((Se|0)==487){h[e+196>>2]=0;b=i>>>7;u=5;Se=512}if((Se|0)==512){Se=a[28207+(u+-1)>>0]|0;w=i-(te(b,Se)|0)|0;s[V>>2]=(s[V>>2]|0)+w;w=u;i=te(b,Se-(a[28207+u>>0]|0)|0)|0}s[fe>>2]=i;b=f;while(1){if(i>>>0>=8388609)break;f=s[V>>2]|0;m=f>>>23;if((m|0)==255){s[W>>2]=(s[W>>2]|0)+1;u=f;f=b}else{u=f>>>31;i=s[K>>2]|0;if((i|0)>-1){f=s[J>>2]|0;if((f+(s[ee>>2]|0)|0)>>>0<(s[ie>>2]|0)>>>0){s[J>>2]=f+1;r[(s[Ve>>2]|0)+f>>0]=i+u;i=0}else i=-1;s[se>>2]=s[se>>2]|i}i=s[W>>2]|0;if(i|0){u=u+255&255;do{f=s[J>>2]|0;if((f+(s[ee>>2]|0)|0)>>>0<(s[ie>>2]|0)>>>0){s[J>>2]=f+1;r[(s[Ve>>2]|0)+f>>0]=u;f=0;i=s[W>>2]|0}else f=-1;s[se>>2]=s[se>>2]|f;i=i+-1|0;s[W>>2]=i}while((i|0)!=0)}s[K>>2]=m&255;u=s[V>>2]|0;i=s[fe>>2]|0;f=s[ne>>2]|0}s[V>>2]=u<<8&2147483392;i=i<<8;s[fe>>2]=i;b=f+8|0;s[ne>>2]=b}Ee=32-(re(i|0)|0)|0;Se=i>>>(Ee+-16|0);A=(Se>>>12)+-8|0;f=b;P=w;A=(b<<3)-((Ee<<3)+(A+(Se>>>0>(s[5272+(A<<2)>>2]|0)>>>0&1)))|0}if(Me){T=(s[Te>>2]|0)-U|0;f=3-U|0;R=1275>>>f;R=(p|0)<(R|0)?p:R;if(Re){i=(Ze*72|0)+32|0;i=(Le|0)<(i|0)?0:Le-i|0}else i=Le-((Ze*320|0)+160)|0;S=(s[O>>2]|0)==0;if(S)E=i;else E=i+(s[e+184>>2]>>T)|0;if(Re){i=s[e+156>>2]|0;st=+h[Ce>>2];i=~~(+(E+((i|0)<100?96>>>f:0)-((i|0)>100?144>>>f:0)|0)+(st+-.25)*400);Oe=(A+C+63>>6)+2|0;f=xe+296+C+63>>6;i=!(st>.699999988079071)|(i|0)>400?i:400;f=(Oe|0)>(f|0)?Oe:f}else{f=s[e+92>>2]|0;b=s[e+200>>2]|0;y=+h[e+196>>2];m=s[Ie>>2]|0;k=+h[Ce>>2];p=s[e+64>>2]|0;v=s[Ae>>2]|0;_=(s[e+204>>2]|0)!=0;c=s[We>>2]|0;o=s[Oe>>2]|0;f=(f|0)==0?c:f;i=n[o+(f<<1)>>1]<(b|0)?b:f)<<1)>>1]<>2]|0)==0;do if(u)i=E;else{g=+h[e+136>>2];if(!(g<.4)){i=E;break}i=E-~~(+(w<<3|0)*(.4000000059604645-g))|0}while(0);if(F){Oe=(f|0)>(b|0)?b:f;Oe=(n[o+(Oe<<1)>>1]<>2]+-.15000000596046448;g=+(w<<3|0);i=i+~~(g*1.2000000476837158*((st<0?0:st)+-.09000000357627869))|0;if(!ye)break;i=i+~~(g*.800000011920929)|0}while(0);if(_&(v|0)==0){Oe=i+~~(+(w<<3|0)*he)|0;i=(i|0)/4|0;i=(i|0)>(Oe|0)?i:Oe}Ce=~~(+((te(n[o+(c+-2<<1)>>1]<>2;Oe=(Ce|0)>(Oe|0)?Ce:Oe;i=(i|0)<(Oe|0)?i:Oe;do if(!(_&(v|0)==0)){if(!S)i=~~(+(i-E|0)*.6700000166893005)+E|0;if(!(k<.20000000298023224&(_^1)))break;Oe=96e3-Be|0;Ce=(Oe|0)>32e3;i=i+~~(((Be|0)>96e3&(Ce^1)?0:Ce?.09919999539852142:+(Oe|0)*3099999958067201e-21)*ae*+(i|0))|0}while(0);f=E<<1;i=(f|0)<(i|0)?f:i;f=(A+C+63>>6)+2|0}p=i+A|0;b=p+32>>6;b=(f|0)>(b|0)?f:b;b=(R|0)<(b|0)?R:b;m=(Ue|0)==0;i=m?b:2;f=e+188|0;u=s[f>>2]|0;if((u|0)<970){s[f>>2]=u+1;g=1/+(u+21|0)}else g=.0010000000474974513;do if(!S){f=e+176|0;s[f>>2]=(s[f>>2]|0)+((m?b<<6:128)-Le);f=e+184|0;Oe=e+180|0;u=s[Oe>>2]|0;u=u+~~(g*+(((m?p-Le|0:0)<>2]|0)-u|0))|0;s[Oe>>2]=u;s[f>>2]=0-u;f=e+176|0;u=s[f>>2]|0;if((u|0)>=0)break;s[f>>2]=0;i=m?b+((u|0)/-64|0)|0:2}while(0);B=(R|0)<(i|0)?R:i;Le=s[Ve>>2]|0;f=s[ee>>2]|0;i=0-f|0;Tn(Le+B+i|0,Le+(s[ie>>2]|0)+i|0,f|0)|0;s[ie>>2]=B;f=s[ne>>2]|0;i=s[fe>>2]|0}else B=p;t=l;l=l+((1*(rt<<2)|0)+15&-16)|0;I=l;l=l+((1*(rt<<2)|0)+15&-16)|0;D=l;l=l+((1*(rt<<2)|0)+15&-16)|0;C=B<<6;Le=32-(re(i|0)|0)|0;L=i>>>(Le+-16|0);i=(L>>>12)+-8|0;i=C+((Le<<3)+(i+(L>>>0>(s[5272+(i<<2)>>2]|0)>>>0&1))-(f<<3))+-1|0;L=(ue|0)==0;if((U|0)>1&(L^1))T=(i|0)>=((U<<3)+16|0);else T=0;R=T?8:0;f=i-R|0;if(!(s[e+120>>2]|0))i=it+-1|0;else{do if((Be|0)<(Ze*32e3|0))i=13;else{if((Be|0)<(Ze*48e3|0)){i=16;break}if((Be|0)<(Ze*6e4|0)){i=18;break}i=(Be|0)<(Ze*8e4|0)?19:20}while(0);Be=s[e+144>>2]|0;i=(Be|0)>(i|0)?Be:i}S=e+200|0;u=e+92|0;A=Ti(Fe,tt,it,G,N,P,S,He,f,ze,I,t,D,Ze,U,Ve,1,s[u>>2]|0,(s[Ae>>2]|0)==0?i:1)|0;i=s[u>>2]|0;if(!i)i=A;else{Le=i+1|0;i=i+-1|0;Be=(i|0)>(A|0);i=(Le|0)<((Be?i:A)|0)?Le:Be?i:A}s[u>>2]=i;O=Ve+12|0;N=Ve+16|0;E=tt;while(1){if((E|0)>=(it|0))break;o=s[t+(E<<2)>>2]|0;if((o|0)>=1){c=65536<>16;g=+(c|0);y=+(1<<14-o|0);v=c+-1|0;i=s[We>>2]|0;_=0;do{w=~~+z(+((+h[oe+(E+(te(_,i)|0)<<2)>>2]+.5)*g));w=(w|0)<(c|0)?w:v;w=(w|0)<0?0:w;i=s[O>>2]|0;f=s[N>>2]|0;if((f+o|0)>>>0>32){b=7-f|0;b=f+((b|0)>-8?b:-8)&-8;m=f;do{u=s[ee>>2]|0;p=s[ie>>2]|0;if(((s[J>>2]|0)+u|0)>>>0

>>0){u=u+1|0;s[ee>>2]=u;r[(s[Ve>>2]|0)+(p-u)>>0]=i;u=0}else u=-1;s[se>>2]=s[se>>2]|u;i=i>>>8;m=m+-8|0}while((m|0)>7);f=f+-8-b|0}s[O>>2]=i|w<>2]=f+o;s[ne>>2]=(s[ne>>2]|0)+o;st=(+(w|0)+.5)*y*6103515625e-14+-.5;i=Xe+(E+(te(_,s[We>>2]|0)|0)<<2)|0;h[i>>2]=+h[i>>2]+st;i=s[We>>2]|0;Be=oe+(E+(te(_,i)|0)<<2)|0;h[Be>>2]=+h[Be>>2]-st;_=_+1|0}while((_|0)<(Ze|0))}E=E+1|0}Be=l;l=l+((1*we|0)+15&-16)|0;P=e+76|0;sr(1,Fe,tt,it,$,F?$+(je<<2)|0:0,Be,x,I,X,s[e+80>>2]|0,s[He>>2]|0,s[S>>2]|0,Z,C-R|0,s[ze>>2]|0,Ve,U,A,P,s[me>>2]|0,s[e+72>>2]|0);if(T){w=(s[e+116>>2]|0)<2&1;i=s[O>>2]|0;f=s[N>>2]|0;if((f+1|0)>>>0>32){b=7-f|0;b=f+((b|0)>-8?b:-8)&-8;m=f;do{u=s[ee>>2]|0;p=s[ie>>2]|0;if(((s[J>>2]|0)+u|0)>>>0

>>0){u=u+1|0;s[ee>>2]=u;r[(s[Ve>>2]|0)+(p-u)>>0]=i;u=0}else u=-1;s[se>>2]=s[se>>2]|u;i=i>>>8;m=m+-8|0}while((m|0)>7);f=f+-8-b|0}s[O>>2]=i|w<>2]=f+1;i=(s[ne>>2]|0)+1|0;s[ne>>2]=i}else i=s[ne>>2]|0;i=(B<<3)-(i+((re(s[fe>>2]|0)|0)+-32))|0;E=0;while(1){if((E|0)==2)break;else _=tt;while(1){if(!((_|0)<(it|0)&(i|0)>=(Ze|0)))break;f=s[t+(_<<2)>>2]|0;do if((f|0)<=7){if((s[D+(_<<2)>>2]|0)!=(E|0))break;g=+(1<<14-f+-1|0);f=s[We>>2]|0;u=s[N>>2]|0;p=s[O>>2]|0;v=0;do{c=!(+h[oe+(_+(te(v,f)|0)<<2)>>2]<0);o=c&1;if((u+1|0)>>>0>32){m=7-u|0;m=u+((m|0)>-8?m:-8)&-8;w=u;f=p;do{p=s[ee>>2]|0;b=s[ie>>2]|0;if(((s[J>>2]|0)+p|0)>>>0>>0){p=p+1|0;s[ee>>2]=p;r[(s[Ve>>2]|0)+(b-p)>>0]=f;p=0}else p=-1;s[se>>2]=s[se>>2]|p;f=f>>>8;w=w+-8|0}while((w|0)>7);u=u+-8-m|0}else f=p;p=f|o<>2]=p;s[N>>2]=u;s[ne>>2]=(s[ne>>2]|0)+1;st=(+(c&1)+-.5)*g*6103515625e-14;f=Xe+(_+(te(v,s[We>>2]|0)|0)<<2)|0;h[f>>2]=+h[f>>2]+st;f=s[We>>2]|0;He=oe+(_+(te(v,f)|0)<<2)|0;h[He>>2]=+h[He>>2]-st;i=i+-1|0;v=v+1|0}while((v|0)<(Ze|0))}while(0);_=_+1|0}E=E+1|0}p=Ye<<2;kn(Ke|0,0,p|0)|0;f=0;do{i=te(f,rt)|0;u=tt;while(1){if((u|0)>=(it|0))break;We=u+i|0;st=+h[oe+(We<<2)>>2];ze=st>.5;He=st<-.5&(ze^1);h[Ke+(We<<2)>>2]=He|ze?He?-.5:.5:st;u=u+1|0}f=f+1|0}while((f|0)<(Ze|0));e:do if(Ue|0){i=0;while(1){if((i|0)>=(we|0))break e;h[Xe+(i<<2)>>2]=-28;i=i+1|0}}while(0);s[e+104>>2]=s[$e>>2];h[e+108>>2]=Pe;s[e+112>>2]=De;if(ge&(Ze|0)==1)Mn(Xe+(rt<<2)|0,Xe|0,rt<<2|0)|0;e:do if(L){Mn(Qe|0,Je|0,p|0)|0;Mn(Je|0,Xe|0,p|0)|0;u=0}else{i=0;while(1){if((i|0)>=(Ye|0)){u=0;break e}$e=Je+(i<<2)|0;Pe=+h[$e>>2];st=+h[Xe+(i<<2)>>2];h[$e>>2]=Pe=(tt|0)){i=it;break}$e=f+i|0;h[Xe+($e<<2)>>2]=0;h[Qe+($e<<2)>>2]=-28;h[Je+($e<<2)>>2]=-28;i=i+1|0}while(1){if((i|0)>=(rt|0))break;$e=f+i|0;h[Xe+($e<<2)>>2]=0;h[Qe+($e<<2)>>2]=-28;h[Je+($e<<2)>>2]=-28;i=i+1|0}u=u+1|0}while((u|0)<(et|0));f=e+116|0;if(!(ue|ve))i=0;else i=(s[f>>2]|0)+1|0;s[f>>2]=i;s[P>>2]=s[fe>>2];li(Ve);e=(s[se>>2]|0)==0?B:-3;qe(Ge|0);l=nt;return e|0}function Qt(e,t,i,r,n,a,o,f,c,u,d){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;a=a|0;o=o|0;f=f|0;c=c|0;u=u|0;d=d|0;var p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0,C=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0;B=l;l=l+16|0;L=B+8|0;v=B;k=s[e>>2]|0;O=s[k+4>>2]|0;m=n+1024|0;D=(te(m,r)|0)<<2;N=l;l=l+((1*D|0)+15&-16)|0;s[L>>2]=N;s[L+4>>2]=N+(m<<2);N=O+n|0;D=n<<2;p=0;do{P=s[L+(p<<2)>>2]|0;Mn(P|0,i+(p<<10<<2)|0,4096)|0;Mn(P+4096|0,t+((te(p,N)|0)<<2)+(O<<2)|0,D|0)|0;p=p+1|0}while((p|0)<(r|0));if(!u){s[v>>2]=15;P=e+104|0;C=15;_=0}else{g=Ne()|0;p=l;l=l+((1*(m>>1<<2)|0)+15&-16)|0;bi(L,p,m,r);wi(p+2048|0,p,n,979,v);s[v>>2]=1024-(s[v>>2]|0);u=e+104|0;b=+vi(p,n,v,s[u>>2]|0,+h[e+108>>2]);p=s[v>>2]|0;if((p|0)>1022){s[v>>2]=1022;p=1022}_=b*.699999988079071;I=s[e+56>>2]|0;_=(I|0)>2?_*.5:_;qe(g|0);P=u;C=p;_=(I|0)>8?0:(I|0)>4?_*.5:_}m=s[P>>2]|0;I=C-m|0;b=(((I|0)>-1?I:0-I|0)*10|0)>(C|0)?.4000000059604645:.20000000298023224;if((d|0)>=25){if((d|0)<35)y=11}else{b=b+.10000000149011612;y=11}if((y|0)==11)b=b+.10000000149011612;I=e+108|0;w=+h[I>>2];b=w>.4000000059604645?b+-.10000000149011612:b;b=w>.550000011920929?b+-.10000000149011612:b;if(_<(b>.20000000298023224?b:.20000000298023224)){w=0;R=0;p=0}else{u=+q(+(_-w))<.10000000149011612;u=~~+z(+((u?w:_)*32/3+.5));p=u+-1|0;if((p|0)<=7)if((u|0)<1)p=0;else y=15;else{p=7;y=15}w=+(p+1|0)*.09375;R=1}M=k+44|0;T=O<<2;b=-w;x=e+112|0;k=k+60|0;E=(n|0)>1024;A=1024-n<<2;S=0-n|0;u=0;while(1){d=s[M>>2]|0;y=d-O|0;s[P>>2]=(m|0)>15?m:15;m=t+((te(u,N)|0)<<2)|0;g=e+212+((te(u,O)|0)<<2)|0;Mn(m|0,g|0,T|0)|0;if((d|0)==(O|0))d=s[L+(u<<2)>>2]|0;else{d=s[L+(u<<2)>>2]|0;U=s[P>>2]|0;_=-+h[I>>2];v=s[x>>2]|0;As(m+(O<<2)|0,d+4096|0,U,U,y,_,_,v,v,0,0)}v=d+4096|0;As(m+(O<<2)+(y<<2)|0,v+(y<<2)|0,s[P>>2]|0,C,n-y|0,-+h[I>>2],b,s[x>>2]|0,a,s[k>>2]|0,O);Mn(g|0,m+(n<<2)|0,T|0)|0;m=i+(u<<10<<2)|0;if(E)Mn(m|0,d+(n<<2)|0,4096)|0;else{Tn(m|0,m+(n<<2)|0,A|0)|0;Mn(m+4096+(S<<2)|0,v|0,D|0)|0}u=u+1|0;if((u|0)>=(r|0))break;m=s[P>>2]|0}h[f>>2]=w;s[o>>2]=C;s[c>>2]=p;l=B;return R|0}function ei(e,t,i,r,n){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;var o=0,f=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0;E=l;p=l;l=l+((1*(t<<2)|0)+15&-16)|0;b=(t|0)/2|0;m=+(b|0);w=+(b|0);g=b+-5|0;v=(b*6|0)+-102|0;_=0;y=0;while(1){if((_|0)>=(i|0))break;c=te(_,t)|0;u=0;o=0;f=0;while(1){if((u|0)>=(t|0))break;A=+h[e+(u+c<<2)>>2];d=o+A;h[p+(u<<2)>>2]=d;u=u+1|0;o=f+d-A*2;f=A-d*.5}c=p;u=c+48|0;do{s[c>>2]=0;c=c+4|0}while((c|0)<(u|0));c=0;d=0;o=0;while(1){if((c|0)>=(b|0)){c=b;f=0;break}u=c<<1;A=+h[p+(u<<2)>>2];f=+h[p+((u|1)<<2)>>2];f=A*A+f*f;A=o+(f-o)*.0625;h[p+(c<<2)>>2]=A;c=c+1|0;d=d+f;o=A}e:while(1){u=c;o=f;while(1){c=u+-1|0;if((u|0)<=0)break e;u=p+(c<<2)|0;o=o+(+h[u>>2]-o)*.125;h[u>>2]=o;if(f>o)u=c;else{f=o;continue e}}}o=w/(+H(+(d*f*.5*m))+1.0000000036274937e-15)*64;c=12;u=0;while(1){if((c|0)>=(g|0))break;A=+z(+(o*(+h[p+(c<<2)>>2]+1.0000000036274937e-15)));M=A>127;S=A<0&(M^1);c=c+4|0;u=u+(a[28075+~~(S|M?S?0:127:A)>>0]|0)|0}c=(u<<8|0)/(v|0)|0;if((c|0)>(y|0))s[n>>2]=_;else c=y;_=_+1|0;y=c}c=(y|0)>200&1;o=+H(+ +(y*27|0))+-42;if(!(o<0))if(o>163)f=163;else k=20;else{o=0;k=20}if((k|0)==20)f=o;if(f*.006899999920278788+-.139<0){A=0;A=+H(+A);h[r>>2]=A;l=E;return c|0}A=(o>163?163:o)*.006899999920278788+-.139;A=+H(+A);h[r>>2]=A;l=E;return c|0}function ti(e,t,i,r,n,a,o,f){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;a=a|0;o=o|0;f=f|0;var c=0,l=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0;m=s[e+4>>2]|0;b=(t|0)==0;v=s[e+44>>2]<<(b?o:0);g=b?1:t;b=(s[e+36>>2]|0)-(b?o:0)|0;p=e+64|0;w=te(g,v)|0;d=w+m|0;t=e+60|0;u=0;do{o=i+((te(u,d)|0)<<2)|0;e=te(te(u,v)|0,g)|0;c=0;while(1){if((c|0)>=(g|0))break;_=o+((te(c,v)|0)<<2)|0;di(p,_,r+(c+e<<2)|0,s[t>>2]|0,m,b,g);c=c+1|0}u=u+1|0}while((u|0)<(a|0));e:do if((a|0)==2&(n|0)==1){t=0;while(1){if((t|0)>=(w|0))break e;_=r+(t<<2)|0;h[_>>2]=+h[_>>2]*.5+ +h[r+(w+t<<2)>>2]*.5;t=t+1|0}}while(0);if((f|0)==1)return;u=(w|0)/(f|0)|0;l=+(f|0);t=w-u<<2;e=0;do{o=te(te(e,g)|0,v)|0;c=0;while(1){if((c|0)>=(u|0))break;_=r+(o+c<<2)|0;h[_>>2]=+h[_>>2]*l;c=c+1|0}kn(r+(o+u<<2)|0,0,t|0)|0;e=e+1|0}while((e|0)<(n|0));return}function ii(e,t,i,a,o,f,c,u,d,p){e=e|0;t=t|0;i=i|0;a=a|0;o=o|0;f=f|0;c=c|0;u=u|0;d=+d;p=p|0;var b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0,C=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,H=0,G=0;F=l;l=l+16|0;D=F;O=.5-d;O=(O<-.25?-.25:O)*.03999999910593033;B=l;l=l+((1*(t<<2)|0)+15&-16)|0;P=s[e+32>>2]|0;L=t+-1|0;U=(n[P+(t<<1)>>1]|0)-(n[P+(L<<1)>>1]|0)<=(t|0))break;x=k+1|0;e=n[P+(k<<1)>>1]|0;R=(n[P+(x<<1)>>1]|0)-e|0;y=R<=(y|0))break;d=d+ +q(+ +h[I+(e<<2)>>2]);e=e+1|0}v=d+(N?0:+(u|0))*O*d;if(!(N|R)){Mn(C|0,I|0,c|0)|0;e=y>>u>>1;c=0;while(1){if((c|0)<(A|0))p=0;else{d=0;e=0;break}while(1){if((p|0)>=(e|0))break;g=C+((te(S,p)|0)+c<<2)|0;z=+h[g>>2]*.7071067690849304;_=C+(((p<<1|1)<>2]*.7071067690849304;h[g>>2]=z+d;h[_>>2]=z-d;p=p+1|0}c=c+1|0}while(1){if((e|0)>=(y|0))break;d=d+ +q(+ +h[C+(e<<2)>>2]);e=e+1|0}d=d+M*d;if(d=(((R|N^1)&1^1)+u|0))break;w=N?_+1|0:u-_+-1|0;e=1<<_;c=y>>_>>1;p=e<<1;b=0;while(1){if((b|0)<(e|0))m=0;else{v=0;e=0;break}while(1){if((m|0)>=(c|0))break;G=I+((te(p,m)|0)+b<<2)|0;v=+h[G>>2]*.7071067690849304;H=I+(((m<<1|1)<<_)+b<<2)|0;z=+h[H>>2]*.7071067690849304;h[G>>2]=v+z;h[H>>2]=v-z;m=m+1|0}b=b+1|0}while(1){if((e|0)>=(y|0))break;v=v+ +q(+ +h[I+(e<<2)>>2]);e=e+1|0}z=v+ +(w|0)*O*v;H=z>2]=c;if(!R){k=x;continue}if(!((c|0)==0|(c|0)==(T|0))){k=x;continue}s[e>>2]=c+-1;k=x}g=i<<2;w=0;while(1){if((w|0)==2)break;c=g+(w<<1)|0;e=27892+(u<<3)+c|0;c=(c|1)+(27892+(u<<3))|0;p=0;b=N?o:0;m=1;while(1){if((m|0)>=(t|0))break;f=b+o|0;H=p+o|0;G=s[B+(m<<2)>>2]|0;i=G-(r[e>>0]<<1)|0;G=G-(r[c>>0]<<1)|0;p=((p|0)<(f|0)?p:f)+((i|0)>-1?i:0-i|0)|0;b=((H|0)<(b|0)?H:b)+((G|0)>-1?G:0-G|0)|0;m=m+1|0}s[D+(w<<2)>>2]=(p|0)<(b|0)?p:b;w=w+1|0}w=N?0:(s[D+4>>2]|0)<(s[D>>2]|0)&1;p=g|w<<1;m=27892+(u<<3)+p|0;p=(p|1)+(27892+(u<<3))|0;b=0;e=N?o:0;c=1;while(1){if((c|0)>=(t|0))break;N=e+o|0;i=(b|0)<(N|0);s[U+(c<<2)>>2]=i&1^1;H=b+o|0;u=(H|0)<(e|0);s[j+(c<<2)>>2]=u&1^1;G=s[B+(c<<2)>>2]|0;D=G-(r[m>>0]<<1)|0;G=G-(r[p>>0]<<1)|0;b=(i?b:N)+((D|0)>-1?D:0-D|0)|0;e=(u?H:e)+((G|0)>-1?G:0-G|0)|0;c=c+1|0}c=(b|0)>=(e|0)&1;s[a+(L<<2)>>2]=c;e=t+-2|0;while(1){if((e|0)<=-1)break;G=s[((c|0)==1?j:U)+(e+1<<2)>>2]|0;s[a+(e<<2)>>2]=G;c=G;e=e+-1|0}l=F;return w|0}function ri(e,t,i,r,a,o,f,c,u,p,b,m,w,g,v,_,y,k){e=e|0;t=t|0;i=i|0;r=r|0;a=a|0;o=o|0;f=f|0;c=c|0;u=u|0;p=p|0;b=b|0;m=m|0;w=w|0;g=g|0;v=v|0;_=_|0;y=y|0;k=k|0;var E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0,C=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,q=0,H=0,G=0,V=0,W=0,K=0;V=l;F=te(o,i)|0;H=l;l=l+((1*(F<<2)|0)+15&-16)|0;z=l;l=l+((1*(F<<2)|0)+15&-16)|0;kn(f|0,0,i<<2|0)|0;E=+(9-c|0);c=0;while(1){if((c|0)>=(a|0)){u=0;E=-31.899999618530273;break}F=c+5|0;h[z+(c<<2)>>2]=+(n[u+(c<<1)>>1]|0)*.0625+.5+E-+h[17220+(c<<2)>>2]+ +(te(F,F)|0)*.006200000178068876;c=c+1|0}while(1){c=te(u,i)|0;A=0;q=E;while(1){if((A|0)>=(a|0))break;L=+h[e+(c+A<<2)>>2]-+h[z+(A<<2)>>2];A=A+1|0;q=q>L?q:L}u=u+1|0;if((u|0)>=(o|0))break;else E=q}if(!((v|0)>50&(g|0)>0&(y|0)==0)){G=0;s[_>>2]=G;l=V;return+q}B=a+-2|0;U=a+-1|0;F=0;c=0;while(1){M=te(F,i)|0;j=H+(M<<2)|0;S=t+(M<<2)|0;u=s[S>>2]|0;s[j>>2]=u;L=(s[d>>2]=u,+h[d>>2]);E=L;u=1;R=c;while(1){if((u|0)>=(a|0)){u=R;break}y=M+u|0;D=+h[t+(y<<2)>>2];y=D>+h[t+(y+-1<<2)>>2]+.5?u:R;D=E+1.5>2]=D;E=D;u=u+1|0;R=y}while(1){c=u+-1|0;if((u|0)<=0){y=2;break}y=j+(c<<2)|0;O=+h[y>>2];N=+h[j+(u<<2)>>2]+2;D=+h[t+(M+c<<2)>>2];A=N>2]=O<(A?N:D)?O:A?N:D;u=c}while(1){if((y|0)>=(B|0))break;A=j+(y<<2)|0;C=+h[A>>2];u=t+(M+y+-2<<2)|0;E=+h[u+8>>2];P=+h[u>>2];O=+h[u+4>>2];c=P>O;W=c?P:O;T=c?O:P;N=+h[u+12>>2];D=+h[u+16>>2];u=N>D;x=u?D:N;I=u?N:D;K=T>x;x=K?T:x;T=K?I:W;I=K?W:I;do if(E>T)if(TT+-1)E=C;else{W=c?P:O;T=c?O:P;x=u?D:N;I=u?N:D;K=T>x;x=K?T:x;T=K?I:W;I=K?W:I;do if(E>T)if(T>2]=E;y=y+1|0}x=+h[S+4>>2];K=L>x;E=K?x:L;x=K?L:x;T=+h[S+8>>2];if(!(x>2];h[j>>2]=T>x?T:x;K=j+4|0;T=+h[K>>2];h[K>>2]=T>x?T:x;K=t+(M+a+-3<<2)|0;x=+h[K>>2];T=+h[K+4>>2];M=x>T;E=M?T:x;T=M?x:T;x=+h[K+8>>2];if(!(T>2];h[c>>2]=L>W?L:W;c=j+(U<<2)|0;L=+h[c>>2];h[c>>2]=L>W?L:W;c=0;while(1){if((c|0)>=(a|0))break;K=j+(c<<2)|0;L=+h[K>>2];W=+h[z+(c<<2)>>2];h[K>>2]=L>W?L:W;c=c+1|0}F=F+1|0;if((F|0)>=(o|0))break;else c=R}e:do if((o|0)==2){c=r;while(1){if((c|0)>=(a|0)){c=r;break e}z=c+i|0;t=H+(z<<2)|0;W=+h[t>>2];K=H+(c<<2)|0;L=+h[K>>2]+-4;L=W>L?W:L;h[t>>2]=L;W=+h[K>>2];L=L+-4;L=W>L?W:L;h[K>>2]=L;L=+h[e+(c<<2)>>2]-L;W=+h[e+(z<<2)>>2]-+h[t>>2];h[K>>2]=((L<0?0:L)+(W<0?0:W))*.5;c=c+1|0}}else{c=r;while(1){if((c|0)>=(a|0)){c=r;break e}K=H+(c<<2)|0;W=+h[e+(c<<2)>>2]-+h[K>>2];h[K>>2]=W<0?0:W;c=c+1|0}}while(0);while(1){if((c|0)>=(a|0))break;K=H+(c<<2)|0;L=+h[K>>2];W=+h[k+(c<<2)>>2];h[K>>2]=L>W?L:W;c=c+1|0}R=(b|0)==0;e:do if((R|(m|0)!=0)&(p|0)==0){c=r;while(1){if((c|0)>=(a|0))break e;K=H+(c<<2)|0;h[K>>2]=+h[K>>2]*.5;c=c+1|0}}while(0);M=(v|0)/4|0;S=(m|0)==0;c=0;while(1){if((r|0)>=(a|0)){G=76;break}if((r|0)>=8){u=H+(r<<2)|0;E=+h[u>>2];if((r|0)>11){E=E*.5;h[u>>2]=E}}else{u=H+(r<<2)|0;E=+h[u>>2]*2;h[u>>2]=E}E=E<4?E:4;h[u>>2]=E;y=r+1|0;u=(te((n[w+(y<<1)>>1]|0)-(n[w+(r<<1)>>1]|0)|0,o)|0)<=6)if((u|0)>48){K=~~(E*8);A=K;u=((te(K,u)|0)<<3|0)/8|0;break}else{u=~~(E*+(u|0)/6);A=u;u=u*48|0;break}else{K=~~E;A=K;u=(te(K,u)|0)<<3}while(0);if(!((S|(p|0)!=0)&(R^1))?(c+u>>6|0)>(M|0):0)break;s[f+(r<<2)>>2]=A;r=y;c=c+u|0}if((G|0)==76){s[_>>2]=c;l=V;return+q}K=M<<6;s[f+(r<<2)>>2]=K-c;s[_>>2]=K;l=V;return+q}function ni(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,n=0,a=0,o=0;a=l;l=l+16|0;r=a;s[r>>2]=i;do switch(t|0){case 10010:{n=(s[r>>2]|0)+(4-1)&~(4-1);t=s[n>>2]|0;s[r>>2]=n+4;if((t|0)>=0?(t|0)<(s[(s[e>>2]|0)+8>>2]|0):0){s[e+20>>2]=t;t=25}else t=26;break}case 10012:{n=(s[r>>2]|0)+(4-1)&~(4-1);t=s[n>>2]|0;s[r>>2]=n+4;if((t|0)>=1?(t|0)<=(s[(s[e>>2]|0)+8>>2]|0):0){s[e+24>>2]=t;t=25}else t=26;break}case 10008:{n=(s[r>>2]|0)+(4-1)&~(4-1);t=s[n>>2]|0;s[r>>2]=n+4;if((t+-1|0)>>>0>1)t=26;else{s[e+12>>2]=t;t=25}break}case 10007:{n=(s[r>>2]|0)+(4-1)&~(4-1);t=s[n>>2]|0;s[r>>2]=n+4;if(!t)t=26;else{e=e+40|0;s[t>>2]=s[e>>2];s[e>>2]=0;t=25}break}case 4027:{n=(s[r>>2]|0)+(4-1)&~(4-1);t=s[n>>2]|0;s[r>>2]=n+4;if(!t)t=26;else{s[t>>2]=(s[e+4>>2]|0)/(s[e+16>>2]|0)|0;t=25}break}case 4028:{n=s[e+8>>2]|0;t=e+88+((te((s[e+4>>2]|0)+2048|0,n)|0)<<2)+(n*24<<2)|0;o=s[e>>2]|0;r=s[o+8>>2]|0;i=r<<1;t=t+(i<<2)|0;i=t+(i<<2)|0;kn(e+36|0,0,((te((s[o+4>>2]|0)+2048|0,n)|0)<<2)+88+(n*96|0)+(r<<5)+-36|0)|0;n=0;while(1){if((n|0)>=(r<<1|0))break;h[i+(n<<2)>>2]=-28;h[t+(n<<2)>>2]=-28;r=s[(s[e>>2]|0)+8>>2]|0;n=n+1|0}s[e+52>>2]=1;t=25;break}case 4033:{o=(s[r>>2]|0)+(4-1)&~(4-1);t=s[o>>2]|0;s[r>>2]=o+4;if(!t)t=26;else{s[t>>2]=s[e+56>>2];t=25}break}case 10015:{o=(s[r>>2]|0)+(4-1)&~(4-1);t=s[o>>2]|0;s[r>>2]=o+4;if(!t)t=26;else{s[t>>2]=s[e>>2];t=25}break}case 10016:{o=(s[r>>2]|0)+(4-1)&~(4-1);t=s[o>>2]|0;s[r>>2]=o+4;s[e+28>>2]=t;t=25;break}case 4031:{o=(s[r>>2]|0)+(4-1)&~(4-1);t=s[o>>2]|0;s[r>>2]=o+4;if(!t)t=26;else{s[t>>2]=s[e+36>>2];t=25}break}default:{l=a;return}}while(0);if((t|0)==25){l=a;return}else if((t|0)==26){l=a;return}}function si(e,t,i,o,f,c,u){e=e|0;t=t|0;i=i|0;o=o|0;f=f|0;c=c|0;u=u|0;var d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0,C=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,q=0,G=0,V=0,W=0,K=0,Y=0,Z=0,$=0,X=0,Q=0,ee=0,ie=0,ne=0,se=0,ae=0,oe=0,fe=0,he=0,ce=0,le=0,ue=0,de=0,pe=0,be=0,me=0,we=0,ge=0,ve=0,_e=0,ye=0,ke=0,Ee=0,Ae=0,Se=0,Me=0,Te=0,xe=0,Re=0,Ie=0,Ce=0,Pe=0;Pe=l;l=l+96|0;D=Pe;T=Pe+40|0;Q=Pe+32|0;Ce=Pe+24|0;ne=Pe+16|0;ie=Pe+12|0;ee=Pe+8|0;Se=s[e+8>>2]|0;s[ne>>2]=0;s[ie>>2]=0;ue=s[e+12>>2]|0;Re=s[e>>2]|0;ce=Re+8|0;Ie=s[ce>>2]|0;me=s[Re+4>>2]|0;le=Re+32|0;q=s[le>>2]|0;Me=s[e+20>>2]|0;Te=s[e+24>>2]|0;xe=e+16|0;ye=te(s[xe>>2]|0,f)|0;p=me+2048|0;ke=e+88+((te(p,Se)|0)<<2)+(Se*24<<2)|0;ge=Ie<<1;Ee=ke+(ge<<2)|0;Ae=Ee+(ge<<2)|0;we=Ae+(ge<<2)|0;be=Re+44|0;f=s[Re+36>>2]|0;de=0;while(1){if((de|0)>(f|0)){f=-1;L=268;break}if((s[be>>2]<>>0>1275|(o|0)==0){e=-1;l=Pe;return e|0}_e=s[be>>2]<>2]=ve;s[Ce+(d<<2)>>2]=ve+8192+(f<<2);d=d+1|0}while((d|0)<(Se|0));he=s[Re+12>>2]|0;he=(Te|0)>(he|0)?he:Te;if((t|0)==0|(i|0)<2){ai(e,_e,de);fi(Ce,o,_e,Se,s[xe>>2]|0,Re+16|0,e+80|0,u);e=(ye|0)/(s[xe>>2]|0)|0;l=Pe;return e|0}ve=e+48|0;s[e+52>>2]=(s[ve>>2]|0)!=0&1;e:do if(!c){s[T>>2]=t;s[T+4>>2]=i;s[T+8>>2]=0;s[T+12>>2]=0;s[T+16>>2]=0;v=T+20|0;s[v>>2]=9;_=T+24|0;s[_>>2]=0;y=T+28|0;s[y>>2]=128;if(!i){f=0;d=0}else{s[_>>2]=1;f=1;d=a[t>>0]|0}k=T+40|0;s[k>>2]=d;g=d>>>1^127;E=T+32|0;s[E>>2]=g;s[T+44>>2]=0;p=128;c=9;while(1){if(p>>>0>=8388609){c=T;break e}c=c+8|0;s[v>>2]=c;p=p<<8;s[y>>2]=p;if(f>>>0>>0){m=f+1|0;s[_>>2]=m;w=a[t+f>>0]|0}else{m=f;w=0}s[k>>2]=w;fe=((d<<8|w)>>>1&255|g<<8&2147483392)^255;s[E>>2]=fe;f=m;d=w;g=fe}}while(0);se=(ue|0)==1;e:do if(se){f=0;while(1){if((f|0)>=(Ie|0))break e;fe=ke+(f<<2)|0;P=+h[fe>>2];O=+h[ke+(Ie+f<<2)>>2];h[fe>>2]=P>O?P:O;f=f+1|0}}while(0);ae=i<<3;oe=c+20|0;f=s[oe>>2]|0;fe=c+28|0;w=s[fe>>2]|0;p=f+((re(w|0)|0)+-32)|0;if((p|0)<(ae|0))if((p|0)==1){k=c+32|0;p=s[k>>2]|0;m=w>>>15;E=p>>>0>>0;d=E&1;if(!E){p=p-m|0;s[k>>2]=p;m=w-m|0}s[fe>>2]=m;v=c+40|0;_=c+24|0;y=c+4|0;while(1){if(m>>>0>=8388609)break;f=f+8|0;s[oe>>2]=f;m=m<<8;s[fe>>2]=m;g=s[v>>2]|0;w=s[_>>2]|0;if(w>>>0<(s[y>>2]|0)>>>0){s[_>>2]=w+1;w=a[(s[c>>2]|0)+w>>0]|0}else w=0;s[v>>2]=w;X=((g<<8|w)>>>1&255|p<<8&2147483392)^255;s[k>>2]=X;p=X}if(E){p=m;L=31}else{d=0;p=1}}else{m=w;d=0}else{p=w;d=1;L=31}if((L|0)==31){f=f+(ae-(f+((re(p|0)|0)+-32)))|0;s[oe>>2]=f;m=p;p=ae}if((Me|0)!=0|(p+16|0)>(ae|0)){X=0;$=0;b=0}else{N=c+32|0;p=s[N>>2]|0;w=m>>>1;v=p>>>0>>0;if(!v){p=p-w|0;s[N>>2]=p;w=m-w|0}s[fe>>2]=w;R=c+40|0;I=c+24|0;C=c+4|0;while(1){if(w>>>0>=8388609)break;f=f+8|0;s[oe>>2]=f;w=w<<8;s[fe>>2]=w;g=s[R>>2]|0;m=s[I>>2]|0;if(m>>>0<(s[C>>2]|0)>>>0){s[I>>2]=m+1;m=a[(s[c>>2]|0)+m>>0]|0}else m=0;s[R>>2]=m;X=((g<<8|m)>>>1&255|p<<8&2147483392)^255;s[N>>2]=X;p=X}if(v){T=ci(c,6)|0;y=16<>2]|0;x=c+16|0;p=s[x>>2]|0;if(p>>>0>>0){v=c+8|0;g=s[C>>2]|0;_=p+8|0;_=p+(((_|0)>25?_:25)+-1-p&-8)|0;m=s[v>>2]|0;do{if(m>>>0>>0){w=m+1|0;s[v>>2]=w;m=w;w=a[(s[c>>2]|0)+(g-w)>>0]|0}else w=0;f=f|w<>>k;m=w-k|0;s[t>>2]=p;s[x>>2]=m;E=(s[oe>>2]|0)+k|0;s[oe>>2]=E;f=y+(f&(1<>>0<3){y=c+8|0;_=s[C>>2]|0;v=w+4-T|0;v=w+(T+((v|0)>25?v:25)+3-w&-8)+4|0;w=s[y>>2]|0;do{if(w>>>0<_>>>0){g=w+1|0;s[y>>2]=g;w=g;g=a[(s[c>>2]|0)+(_-g)>>0]|0}else g=0;p=p|g<>2]=p>>>3;s[x>>2]=m+-3;m=E+3|0;s[oe>>2]=m;w=s[fe>>2]|0;e:do if((m+((re(w|0)|0)+-32)+2|0)>(ae|0))p=0;else{v=s[N>>2]|0;_=w>>>2;p=-1;while(1){p=p+1|0;g=te(_,a[29345+p>>0]|0)|0;if(v>>>0>=g>>>0)break;else w=g}_=v-g|0;s[N>>2]=_;w=w-g|0;s[fe>>2]=w;while(1){if(w>>>0>=8388609)break e;m=m+8|0;s[oe>>2]=m;w=w<<8;s[fe>>2]=w;v=s[R>>2]|0;g=s[I>>2]|0;if(g>>>0<(s[C>>2]|0)>>>0){s[I>>2]=g+1;g=a[(s[c>>2]|0)+g>>0]|0}else g=0;s[R>>2]=g;X=((v<<8|g)>>>1&255|_<<8&2147483392)^255;s[N>>2]=X;_=X}}while(0);g=m;b=+(y+1|0)*.09375}else{g=f;b=0;f=0;p=0}X=f;$=p;f=g;m=w;p=g+((re(w|0)|0)+-32)|0}z=(de|0)>0;if(!((p+3|0)>(ae|0)|z^1)){k=c+32|0;p=s[k>>2]|0;w=m>>>3;E=p>>>0>>0;T=E&1;if(E)m=w;else{p=p-w|0;s[k>>2]=p;m=m-w|0}s[fe>>2]=m;v=c+40|0;_=c+24|0;y=c+4|0;while(1){if(m>>>0>=8388609)break;f=f+8|0;s[oe>>2]=f;m=m<<8;s[fe>>2]=m;g=s[v>>2]|0;w=s[_>>2]|0;if(w>>>0<(s[y>>2]|0)>>>0){s[_>>2]=w+1;w=a[(s[c>>2]|0)+w>>0]|0}else w=0;s[v>>2]=w;Z=((g<<8|w)>>>1&255|p<<8&2147483392)^255;s[k>>2]=Z;p=Z}p=f+((re(m|0)|0)+-32)|0;if(E)Y=pe;else L=72}else L=72;if((L|0)==72){T=0;Y=0}if((p+3|0)<=(ae|0)){k=c+32|0;p=s[k>>2]|0;w=m>>>3;_=p>>>0>>0;t=_&1;if(!_){p=p-w|0;s[k>>2]=p;w=m-w|0}s[fe>>2]=w;y=c+40|0;m=c+24|0;E=c+4|0;while(1){if(w>>>0>=8388609)break;f=f+8|0;s[oe>>2]=f;w=w<<8;s[fe>>2]=w;v=s[y>>2]|0;g=s[m>>2]|0;if(g>>>0<(s[E>>2]|0)>>>0){s[m>>2]=g+1;g=a[(s[c>>2]|0)+g>>0]|0}else g=0;s[y>>2]=g;Z=((v<<8|g)>>>1&255|p<<8&2147483392)^255;s[k>>2]=Z;p=Z}Z=D;s[Z>>2]=0;s[Z+4>>2]=0;if(_){f=k;p=y;w=c;Z=E;F=t;A=.149993896484375;S=0;v=D}else{g=E;f=k;p=y;w=c;v=D;L=83}}else{g=D;s[g>>2]=0;s[g+4>>2]=0;g=c+4|0;f=c+32|0;p=c+40|0;m=c+24|0;w=c;v=D;L=83}if((L|0)==83){Z=g;F=0;A=+h[17320+(de<<2)>>2];S=+h[17336+(de<<2)>>2]}D=s[Z>>2]<<3;L=c+36|0;j=Me;while(1){if((j|0)>=(Te|0))break;B=(j|0)<20;U=0;do{y=s[oe>>2]|0;N=s[fe>>2]|0;g=y+((re(N|0)|0)+-32)|0;_=D-g|0;e:do if((_|0)<=14){if((_|0)>1){k=s[f>>2]|0;E=N>>>2;t=-1;_=N;while(1){t=t+1|0;g=te(E,a[29345+t>>0]|0)|0;if(k>>>0>=g>>>0)break;else _=g}E=k-g|0;s[f>>2]=E;_=_-g|0;s[fe>>2]=_;g=y;while(1){if(_>>>0>=8388609)break;g=g+8|0;s[oe>>2]=g;_=_<<8;s[fe>>2]=_;k=s[p>>2]|0;y=s[m>>2]|0;if(y>>>0<(s[Z>>2]|0)>>>0){s[m>>2]=y+1;y=a[(s[w>>2]|0)+y>>0]|0}else y=0;s[p>>2]=y;K=((k<<8|y)>>>1&255|E<<8&2147483392)^255;s[f>>2]=K;E=K}g=t>>1^0-(t&1);break}if((D|0)>(g|0)){_=s[f>>2]|0;g=N>>>1;t=_>>>0>>0;if(!t){_=_-g|0;s[f>>2]=_;g=N-g|0}s[fe>>2]=g;while(1){if(g>>>0>=8388609)break;y=y+8|0;s[oe>>2]=y;g=g<<8;s[fe>>2]=g;E=s[p>>2]|0;k=s[m>>2]|0;if(k>>>0<(s[Z>>2]|0)>>>0){s[m>>2]=k+1;k=a[(s[w>>2]|0)+k>>0]|0}else k=0;s[p>>2]=k;K=((E<<8|k)>>>1&255|_<<8&2147483392)^255;s[f>>2]=K;_=K}g=t<<31>>31}else g=-1}else{x=(B?j:20)<<1;g=a[29009+(de*84|0)+(F*42|0)+x>>0]<<7;x=a[(x|1)+(29009+(de*84|0)+(F*42|0))>>0]<<6;I=N>>>15;s[L>>2]=I;C=s[f>>2]|0;R=(C>>>0)/(I>>>0)|0;K=R+1|0;R=32768-(K+(K>>>0>32768?32767-R|0:0))|0;if(R>>>0>>0){k=g;_=0;g=0}else{_=te(32736-g|0,16384-x|0)|0;E=1;while(1){K=_>>>15;k=K+1|0;if(!K)break;_=k<<1;t=g+_|0;if(R>>>0>>0)break;_=te(_+-2|0,x)|0;g=t;E=E+1|0}if(k>>>0<2){K=(R-g|0)>>>1;g=g+(K<<1)|0;E=E+K|0}_=g+k|0;K=R>>>0<_>>>0;_=K?g:_;g=K?0-E|0:E}k=_+k|0;k=k>>>0<32768?k:32768;K=te(I,32768-k|0)|0;t=C-K|0;s[f>>2]=t;k=te(I,k-_|0)|0;k=(_|0)==0?N-K|0:k;s[fe>>2]=k;_=y;while(1){if(k>>>0>=8388609)break e;_=_+8|0;s[oe>>2]=_;k=k<<8;s[fe>>2]=k;E=s[p>>2]|0;y=s[m>>2]|0;if(y>>>0<(s[Z>>2]|0)>>>0){s[m>>2]=y+1;y=a[(s[w>>2]|0)+y>>0]|0}else y=0;s[p>>2]=y;K=((E<<8|y)>>>1&255|t<<8&2147483392)^255;s[f>>2]=K;t=K}}while(0);O=+(g|0);W=ke+(j+(te(U,s[ce>>2]|0)|0)<<2)|0;P=+h[W>>2];h[W>>2]=P<-9?-9:P;W=ke+(j+(te(U,s[ce>>2]|0)|0)<<2)|0;K=v+(U<<2)|0;h[W>>2]=S*+h[W>>2]+ +h[K>>2]+O;h[K>>2]=+h[K>>2]+O-A*O;U=U+1|0}while((U|0)<(ue|0));j=j+1|0}K=Ne()|0;W=l;l=l+((1*(Ie<<2)|0)+15&-16)|0;j=s[Z>>2]|0;g=j<<3;_=s[oe>>2]|0;y=s[fe>>2]|0;E=_+((re(y|0)|0)+-32)|0;v=(T|0)!=0;k=v?2:4;if(z)N=(E+k+1|0)>>>0<=g>>>0;else N=0;C=g-(N&1)|0;I=v?4:5;x=0;R=Me;g=E;t=0;while(1){if((R|0)>=(Te|0))break;if((g+k|0)>>>0>C>>>0){E=x;v=t}else{v=s[f>>2]|0;g=y>>>k;V=v>>>0>>0;E=V&1;if(!V){v=v-g|0;s[f>>2]=v;g=y-g|0}s[fe>>2]=g;k=_;while(1){if(g>>>0>=8388609)break;k=k+8|0;s[oe>>2]=k;g=g<<8;s[fe>>2]=g;y=s[p>>2]|0;_=s[m>>2]|0;if(_>>>0>>0){s[m>>2]=_+1;_=a[(s[w>>2]|0)+_>>0]|0}else _=0;s[p>>2]=_;V=((y<<8|_)>>>1&255|v<<8&2147483392)^255;s[f>>2]=V;v=V}v=x^E;_=k;y=g;E=v;g=k+((re(g|0)|0)+-32)|0;v=t|v}s[W+(R<<2)>>2]=E;x=E;R=R+1|0;k=I;t=v}x=T<<2;if(N?(r[x+t+(27892+(de<<3))>>0]|0)!=(r[(x|2)+t+(27892+(de<<3))>>0]|0):0){v=s[f>>2]|0;g=y>>>1;V=v>>>0>>0;t=V&1;if(!V){v=v-g|0;s[f>>2]=v;g=y-g|0}s[fe>>2]=g;while(1){if(g>>>0>=8388609)break;_=_+8|0;s[oe>>2]=_;g=g<<8;s[fe>>2]=g;k=s[p>>2]|0;y=s[m>>2]|0;if(y>>>0>>0){s[m>>2]=y+1;y=a[(s[w>>2]|0)+y>>0]|0}else y=0;s[p>>2]=y;V=((k<<8|y)>>>1&255|v<<8&2147483392)^255;s[f>>2]=V;v=V}E=g;g=t<<1}else{E=y;g=0}g=x+g|0;v=Me;while(1){if((v|0)>=(Te|0))break;V=W+(v<<2)|0;s[V>>2]=r[g+(s[V>>2]|0)+(27892+(de<<3))>>0];v=v+1|0}e:do if((_+((re(E|0)|0)+-32)+4|0)>(ae|0)){g=_;v=E;t=2}else{y=s[f>>2]|0;k=E>>>5;t=-1;v=E;while(1){t=t+1|0;g=te(k,a[28203+t>>0]|0)|0;if(y>>>0>=g>>>0)break;else v=g}k=y-g|0;s[f>>2]=k;v=v-g|0;s[fe>>2]=v;g=_;while(1){if(v>>>0>=8388609)break e;g=g+8|0;s[oe>>2]=g;_=v<<8;s[fe>>2]=_;y=s[p>>2]|0;v=s[m>>2]|0;if(v>>>0>>0){s[m>>2]=v+1;v=a[(s[w>>2]|0)+v>>0]|0}else v=0;s[p>>2]=v;V=((y<<8|v)>>>1&255|k<<8&2147483392)^255;s[f>>2]=V;v=_;k=V}}while(0);U=l;l=l+((1*(Ie<<2)|0)+15&-16)|0;_=s[ce>>2]|0;y=(de<<1)+ue+-1|0;k=Re+104|0;E=0;while(1){if((E|0)>=(_|0))break;V=E+1|0;G=s[le>>2]|0;z=(te(_,y)|0)+E|0;s[U+(E<<2)>>2]=(te(te((a[(s[k>>2]|0)+z>>0]|0)+64|0,ue)|0,(n[G+(V<<1)>>1]|0)-(n[G+(E<<1)>>1]|0)<>2;E=V}B=l;l=l+((1*(Ie<<2)|0)+15&-16)|0;z=i<<6;G=32-(re(v|0)|0)|0;V=v>>>(G+-16|0);k=(V>>>12)+-8|0;x=g;D=6;L=Me;g=(g<<3)-((G<<3)+(k+(V>>>0>(s[5272+(k<<2)>>2]|0)>>>0&1)))|0;k=z;while(1){ +if((L|0)>=(Te|0))break;N=L+1|0;R=(te(ue,(n[q+(N<<1)>>1]|0)-(n[q+(L<<1)>>1]|0)|0)|0)<=(C|0))break;if((x|0)>=(s[I>>2]|0))break;g=s[f>>2]|0;y=v>>>y;E=g>>>0>>0;if(E)v=y;else{g=g-y|0;s[f>>2]=g;v=v-y|0}s[fe>>2]=v;while(1){if(v>>>0>=8388609)break;_=_+8|0;s[oe>>2]=_;v=v<<8;s[fe>>2]=v;k=s[p>>2]|0;y=s[m>>2]|0;if(y>>>0>>0){s[m>>2]=y+1;y=a[(s[w>>2]|0)+y>>0]|0}else y=0;s[p>>2]=y;V=((k<<8|y)>>>1&255|g<<8&2147483392)^255;s[f>>2]=V;g=V}G=32-(re(v|0)|0)|0;V=v>>>(G+-16|0);g=(V>>>12)+-8|0;g=(_<<3)-((G<<3)+(g+(V>>>0>(s[5272+(g<<2)>>2]|0)>>>0&1)))|0;if(!E)break;x=x+R|0;y=1;C=C-R|0}s[B+(L<<2)>>2]=x;if((x|0)<=0){x=_;L=N;k=C;continue}x=_;D=(D|0)<3?2:D+-1|0;L=N;k=C}i=l;l=l+((1*(Ie<<2)|0)+15&-16)|0;e:do if((g+48|0)>(k|0)){p=x;f=v;m=5}else{_=s[f>>2]|0;y=v>>>7;E=-1;while(1){E=E+1|0;g=te(y,a[28207+E>>0]|0)|0;if(_>>>0>=g>>>0)break;else v=g}k=_-g|0;s[f>>2]=k;v=v-g|0;s[fe>>2]=v;g=x;while(1){if(v>>>0>=8388609){p=g;f=v;m=E;break e}g=g+8|0;s[oe>>2]=g;_=v<<8;s[fe>>2]=_;y=s[p>>2]|0;v=s[m>>2]|0;if(v>>>0>>0){s[m>>2]=v+1;v=a[(s[w>>2]|0)+v>>0]|0}else v=0;s[p>>2]=v;V=((y<<8|v)>>>1&255|k<<8&2147483392)^255;s[f>>2]=V;v=_;k=V}}while(0);G=32-(re(f|0)|0)|0;V=f>>>(G+-16|0);f=(V>>>12)+-8|0;f=z+((G<<3)+(f+(V>>>0>(s[5272+(f<<2)>>2]|0)>>>0&1))-(p<<3))+-1|0;V=(T|0)==0;if((de|0)>1&(V^1))I=(f|0)>=((de<<3)+16|0);else I=0;C=I?8:0;G=l;l=l+((1*(Ie<<2)|0)+15&-16)|0;j=l;l=l+((1*(Ie<<2)|0)+15&-16)|0;R=Ti(Re,Me,Te,B,U,m,ne,ie,f-C|0,ee,G,i,j,ue,de,c,0,0,0)|0;N=c+12|0;D=c+16|0;L=c+8|0;x=Me;while(1){if((x|0)>=(Te|0))break;y=s[i+(x<<2)>>2]|0;if((y|0)>=1){k=(1<>2]|0;f=s[D>>2]|0;E=0;do{if(f>>>0>>0){v=f+8|0;_=((v|0)>25?v:25)+-1-f&-8;p=m;do{m=s[L>>2]|0;g=s[Z>>2]|0;if(m>>>0>>0){m=m+1|0;s[L>>2]=m;m=a[(s[w>>2]|0)+(g-m)>>0]|0}else m=0;p=p|m<>>y;f=f-y|0;s[N>>2]=m;s[D>>2]=f;s[oe>>2]=(s[oe>>2]|0)+y;q=ke+(x+(te(E,s[ce>>2]|0)|0)<<2)|0;h[q>>2]=+h[q>>2]+((+(p&k|0)+.5)*A*6103515625e-14+-.5);E=E+1|0}while((E|0)<(ue|0))}x=x+1|0}f=2048-_e+((me|0)/2|0)<<2;p=0;do{q=s[Q+(p<<2)>>2]|0;Tn(q|0,q+(_e<<2)|0,f|0)|0;p=p+1|0}while((p|0)<(Se|0));U=te(ue,Ie)|0;B=l;l=l+((1*U|0)+15&-16)|0;q=(te(ue,_e)|0)<<2;F=l;l=l+((1*q|0)+15&-16)|0;q=e+36|0;sr(0,Re,Me,Te,F,(ue|0)==2?F+(_e<<2)|0:0,B,0,G,Y,t,s[ie>>2]|0,s[ne>>2]|0,W,z-C|0,s[ee>>2]|0,c,de,R,q,0,s[e+32>>2]|0);if(I){p=s[N>>2]|0;f=s[D>>2]|0;if(!f){g=s[Z>>2]|0;m=s[L>>2]|0;v=0;do{if(m>>>0>>0){f=m+1|0;s[L>>2]=f;m=f;f=a[(s[w>>2]|0)+(g-f)>>0]|0}else f=0;p=p|f<>2]=p>>>1;s[D>>2]=f+-1;f=(s[oe>>2]|0)+1|0;s[oe>>2]=f;t=p&1}else{f=s[oe>>2]|0;t=0}p=ae-(f+((re(s[fe>>2]|0)|0)+-32))|0;E=0;while(1){if((E|0)==2)break;else k=Me;while(1){if(!((k|0)<(Te|0)&(p|0)>=(ue|0)))break;m=s[i+(k<<2)>>2]|0;do if((m|0)<=7){if((s[j+(k<<2)>>2]|0)!=(E|0))break;A=+(1<<14-m+-1|0);g=s[D>>2]|0;v=s[N>>2]|0;y=0;do{if(!g){_=0;while(1){m=s[L>>2]|0;g=s[Z>>2]|0;if(m>>>0>>0){m=m+1|0;s[L>>2]=m;m=a[(s[w>>2]|0)+(g-m)>>0]|0}else m=0;m=v|m<<_;_=_+8|0;if((_|0)>=25){g=32;break}else v=m}}else m=v;v=m>>>1;g=g+-1|0;s[N>>2]=v;s[D>>2]=g;f=f+1|0;s[oe>>2]=f;ne=ke+(k+(te(y,s[ce>>2]|0)|0)<<2)|0;h[ne>>2]=+h[ne>>2]+(+(m&1|0)+-.5)*A*6103515625e-14;p=p+-1|0;y=y+1|0}while((y|0)<(ue|0))}while(0);k=k+1|0}E=E+1|0}e:do if(t|0){_=(de|0)==3;f=s[q>>2]|0;x=Me;t:while(1){if((x|0)>=(Te|0))break e;y=x+1|0;k=s[le>>2]|0;k=(n[k+(y<<1)>>1]|0)-(n[k+(x<<1)>>1]|0)|0;P=+J(+(+(((((s[G+(x<<2)>>2]|0)+1|0)>>>0)/(k>>>0)|0)>>>de|0)*-.125*.6931471805599453))*.5;E=k<>2]|0;w=(te(p,m)|0)+x|0;S=+h[Ee+(w<<2)>>2];A=+h[Ae+(w<<2)>>2];do if(se){ne=m+x|0;M=+h[Ee+(ne<<2)>>2];S=S>M?S:M;M=+h[Ae+(ne<<2)>>2];if(A>M)break;A=M}while(0);A=+h[ke+(w<<2)>>2]-(S>2]|0)+(x<<1)>>1]<=(pe|0))break;i:do if(!(a[g>>0]&1<=(k|0)){m=1;break i}ne=(te(f,1664525)|0)+1013904223|0;h[v+((m<>2]=(ne&32768|0)==0?S:A;f=ne;m=m+1|0}}while(0);w=w+1|0}i:do if(m|0){m=0;A=0;while(1){if((m|0)>=(E|0))break;M=+h[v+(m<<2)>>2];m=m+1|0;A=A+M*M}A=1/+H(+(A+1.0000000036274937e-15));w=0;m=v;while(1){if((w|0)>=(E|0))break i;h[m>>2]=A*+h[m>>2];w=w+1|0;m=m+4|0}}while(0);p=p+1|0;if((p|0)>=(ue|0)){x=y;continue t}}}}while(0);e:do if(d|0){f=0;while(1){if((f|0)>=(U|0))break e;h[ke+(f<<2)>>2]=-28;f=f+1|0}}while(0);oi(Re,F,Ce,ke,Me,he,ue,Se,T,de,s[xe>>2]|0,d);m=e+56|0;w=e+60|0;g=e+68|0;v=e+64|0;_=e+76|0;y=e+72|0;k=Re+60|0;f=(de|0)==0;p=0;do{de=s[m>>2]|0;de=(de|0)>15?de:15;s[m>>2]=de;ue=s[w>>2]|0;ue=(ue|0)>15?ue:15;s[w>>2]=ue;d=s[Ce+(p<<2)>>2]|0;As(d,d,ue,de,s[be>>2]|0,+h[g>>2],+h[v>>2],s[_>>2]|0,s[y>>2]|0,s[k>>2]|0,me);if(!f){de=s[be>>2]|0;ue=d+(de<<2)|0;As(ue,ue,s[m>>2]|0,X,_e-de|0,+h[v>>2],b,s[y>>2]|0,$,s[k>>2]|0,me)}p=p+1|0}while((p|0)<(Se|0));s[w>>2]=s[m>>2];s[g>>2]=s[v>>2];s[_>>2]=s[y>>2];s[m>>2]=X;h[v>>2]=b;s[y>>2]=$;if(!f){s[w>>2]=X;h[g>>2]=b;s[_>>2]=$}if(se)Mn(ke+(Ie<<2)|0,ke|0,Ie<<2|0)|0;e:do if(V){f=Ie<<3;Mn(Ae|0,Ee|0,f|0)|0;Mn(Ee|0,ke|0,f|0)|0;b=(s[ve>>2]|0)<10?+(pe|0)*.0010000000474974513:1;f=0;while(1){if((f|0)>=(ge|0)){p=0;break e}me=we+(f<<2)|0;P=+h[me>>2]+b;O=+h[ke+(f<<2)>>2];h[me>>2]=P=(ge|0)){p=0;break e}we=Ee+(f<<2)|0;P=+h[we>>2];O=+h[ke+(f<<2)>>2];h[we>>2]=P=(Me|0)){f=Te;break}ge=d+f|0;h[ke+(ge<<2)>>2]=0;h[Ae+(ge<<2)>>2]=-28;h[Ee+(ge<<2)>>2]=-28;f=f+1|0}while(1){if((f|0)>=(Ie|0))break;ge=d+f|0;h[ke+(ge<<2)>>2]=0;h[Ae+(ge<<2)>>2]=-28;h[Ee+(ge<<2)>>2]=-28;f=f+1|0}p=p+1|0}while((p|0)!=2);s[q>>2]=s[fe>>2];fi(Ce,o,_e,Se,s[xe>>2]|0,Re+16|0,e+80|0,u);s[ve>>2]=0;if(((s[oe>>2]|0)+((re(s[fe>>2]|0)|0)+-32)|0)>(ae|0))f=-3;else{if(s[c+44>>2]|0)s[e+40>>2]=1;f=(ye|0)/(s[xe>>2]|0)|0}qe(K|0);e=f;l=Pe;return e|0}function ai(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,a=0,o=0,f=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0,C=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,q=0,G=0,V=0,W=0,K=0,Y=0,Z=0,$=0,X=0;Z=l;l=l+8512|0;c=Z+8504|0;f=Z+4408|0;Y=Z+4400|0;S=Z+4392|0;F=Z+296|0;j=Z+192|0;z=Z+96|0;q=Z;K=s[e+8>>2]|0;M=s[e>>2]|0;d=s[M+8>>2]|0;W=s[M+4>>2]|0;A=s[M+32>>2]|0;r=W+2048|0;U=0-t|0;a=0;do{V=e+88+((te(a,r)|0)<<2)|0;s[Y+(a<<2)>>2]=V;s[S+(a<<2)>>2]=V+8192+(U<<2);a=a+1|0}while((a|0)<(K|0));B=e+88+((te(r,K)|0)<<2)|0;k=B+(K*24<<2)|0;u=d<<1;u=k+(u<<2)+(u<<2)+(u<<2)|0;G=e+48|0;V=s[G>>2]|0;E=s[e+20>>2]|0;if((V|0)<5&(E|0)==0?(s[e+52>>2]|0)==0:0){L=(V|0)==0;if(L){bi(Y,f,2048,K);wi(f+1440|0,f,1328,620,c);D=720-(s[c>>2]|0)|0;s[e+44>>2]=D;N=1}else{N=.800000011920929;D=s[e+44>>2]|0}P=Ne()|0;O=l;l=l+((1*(W<<2)|0)+15&-16)|0;_=s[M+60>>2]|0;k=D<<1;E=(k|0)<1024;A=F+4096|0;i=2048-t|0;S=i<<2;M=1024-D|0;T=W+t|0;x=1024-t+M|0;R=i+-1|0;I=e+56|0;C=e+64|0;p=e+72|0;b=(W|0)/2|0;m=W+-1|0;v=0;do{g=s[Y+(v<<2)>>2]|0;r=0;while(1){if((r|0)==1024)break;s[F+(r<<2)>>2]=s[g+(r+1024<<2)>>2];r=r+1|0}if(L){Ai(F,j,_,W,24,1024);h[j>>2]=+h[j>>2]*1.000100016593933;r=1;while(1){if((r|0)==25)break;e=j+(r<<2)|0;w=+h[e>>2];y=+(r|0);h[e>>2]=w-w*6400000711437315e-20*y*y;r=r+1|0}_i(B+(v*24<<2)|0,j,24)}f=E?k:1024;r=2048-f+-1|0;a=0;while(1){if((a|0)==24)break;s[z+(a<<2)>>2]=s[g+(r-a<<2)>>2];a=a+1|0}c=A+(0-f<<2)|0;d=B+(v*24<<2)|0;yi(c,d,c,f,z);c=f>>1;u=1024-c|0;r=1024-f|0;o=1;w=1;a=0;while(1){if((a|0)>=(c|0))break;$=+h[F+(u+a<<2)>>2];y=+h[F+(r+a<<2)>>2];o=o+$*$;w=w+y*y;a=a+1|0}w=+H(+((o=(T|0)){r=0;break}e=(a|0)<(D|0);$=e?o:o*w;e=a-(e?0:D)|0;h[g+(i+r<<2)>>2]=$*+h[F+(M+e<<2)>>2];X=+h[g+(x+e<<2)>>2];y=y+X*X;o=$;r=r+1|0;a=e+1|0}while(1){if((r|0)==24)break;s[q+(r<<2)>>2]=s[g+(R-r<<2)>>2];r=r+1|0}a=g+8192|0;r=a+(U<<2)|0;Ei(r,d,r,T,q);o=0;r=0;while(1){if((r|0)>=(T|0))break;X=+h[g+(i+r<<2)>>2];o=o+X*X;r=r+1|0}e:do if(y>o*.20000000298023224){if(y=(W|0)){r=W;break}e=g+(i+r<<2)|0;h[e>>2]=(1-+h[_+(r<<2)>>2]*o)*+h[e>>2];r=r+1|0}while(1){if((r|0)>=(T|0))break e;e=g+(i+r<<2)|0;h[e>>2]=w*+h[e>>2];r=r+1|0}}}else{r=0;while(1){if((r|0)>=(T|0))break e;h[g+(i+r<<2)>>2]=0;r=r+1|0}}while(0);e=s[I>>2]|0;X=-+h[C>>2];r=s[p>>2]|0;As(O,a,e,e,W,X,X,r,r,0,0);r=0;while(1){if((r|0)>=(b|0))break;h[g+(r+2048<<2)>>2]=+h[_+(r<<2)>>2]*+h[O+(m-r<<2)>>2]+ +h[_+(W-r+-1<<2)>>2]*+h[O+(r<<2)>>2];r=r+1|0}v=v+1|0}while((v|0)<(K|0));qe(P|0);Y=V+1|0;s[G>>2]=Y;l=Z;return}r=s[e+24>>2]|0;g=s[M+12>>2]|0;f=(r|0)<(g|0);g=(E|0)>((f?r:g)|0)?E:f?r:g;f=te(K,t)|0;v=Ne()|0;_=l;l=l+((1*(f<<2)|0)+15&-16)|0;o=(V|0)==0?1.5:.5;f=0;do{a=te(f,d)|0;c=E;while(1){if((c|0)>=(r|0))break;q=a+c|0;$=+h[u+(q<<2)>>2];q=k+(q<<2)|0;X=+h[q>>2]-o;h[q>>2]=$>X?$:X;c=c+1|0}f=f+1|0}while((f|0)<(K|0));p=e+36|0;m=0;r=s[p>>2]|0;while(1){if((m|0)>=(K|0))break;b=te(m,t)|0;a=E;e:while(1){if((a|0)>=(g|0))break;d=n[A+(a<<1)>>1]|0;c=b+(d<>1]|0)-d<=(d|0))break;q=(te(r,1664525)|0)+1013904223|0;h[_+(c+f<<2)>>2]=+(q>>20|0);f=f+1|0;r=q}u=_+(c<<2)|0;f=0;o=0;while(1){if((f|0)>=(d|0))break;X=+h[u+(f<<2)>>2];f=f+1|0;o=o+X*X}o=1/+H(+(o+1.0000000036274937e-15));c=0;f=u;while(1){if((c|0)>=(d|0))continue e;h[f>>2]=o*+h[f>>2];c=c+1|0;f=f+4|0}}m=m+1|0}s[p>>2]=r;r=2048-t+(W>>>1)<<2;a=0;do{W=s[Y+(a<<2)>>2]|0;Tn(W|0,W+(t<<2)|0,r|0)|0;a=a+1|0}while((a|0)<(K|0));oi(M,_,S,k,E,g,K,K,0,i,s[e+16>>2]|0,0);qe(v|0);Y=V+1|0;s[G>>2]=Y;l=Z;return}function oi(e,t,i,r,n,a,o,f,c,u,d,p){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;a=a|0;o=o|0;f=f|0;c=c|0;u=u|0;d=d|0;p=p|0;var b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0;x=l;M=s[e+4>>2]|0;v=s[e+8>>2]|0;_=e+44|0;w=s[_>>2]|0;k=w<>2]|0)-(E?u:0)|0;switch(f|0){case 2:{if((o|0)==1){nr(s[e+32>>2]|0,w,t,T,r,n,a,y,d,p);m=i+4|0;o=(s[m>>2]|0)+(((M|0)/2|0)<<2)|0;Mn(o|0,T|0,k<<2|0)|0;b=e+64|0;u=e+60|0;c=0;while(1){if((c|0)>=(A|0)){c=0;break}k=(s[i>>2]|0)+((te(S,c)|0)<<2)|0;pi(b,o+(c<<2)|0,k,s[u>>2]|0,M,E,A);c=c+1|0}while(1){if((c|0)>=(A|0))break;i=(s[m>>2]|0)+((te(S,c)|0)<<2)|0;pi(b,T+(c<<2)|0,i,s[u>>2]|0,M,E,A);c=c+1|0}l=x;return}break}case 1:{if((o|0)==2){u=(s[i>>2]|0)+(((M|0)/2|0)<<2)|0;c=e+32|0;nr(s[c>>2]|0,w,t,T,r,n,a,y,d,p);nr(s[c>>2]|0,s[_>>2]|0,t+(k<<2)|0,u,r+(v<<2)|0,n,a,y,d,p);c=0;while(1){if((c|0)>=(k|0))break;n=T+(c<<2)|0;h[n>>2]=+h[n>>2]*.5+ +h[u+(c<<2)>>2]*.5;c=c+1|0}o=e+64|0;c=e+60|0;u=0;while(1){if((u|0)>=(A|0))break;k=(s[i>>2]|0)+((te(S,u)|0)<<2)|0;pi(o,T+(u<<2)|0,k,s[c>>2]|0,M,E,A);u=u+1|0}l=x;return}break}default:{}}g=e+32|0;m=e+64|0;b=e+60|0;c=0;u=w;while(1){e=t+((te(c,k)|0)<<2)|0;o=r+((te(c,v)|0)<<2)|0;nr(s[g>>2]|0,u,e,T,o,n,a,y,d,p);u=i+(c<<2)|0;o=0;while(1){if((o|0)>=(A|0))break;e=(s[u>>2]|0)+((te(S,o)|0)<<2)|0;pi(m,T+(o<<2)|0,e,s[b>>2]|0,M,E,A);o=o+1|0}c=c+1|0;if((c|0)>=(f|0))break;u=s[_>>2]|0}l=x;return}function fi(e,t,i,r,n,a,o,f){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;a=a|0;o=o|0;f=f|0;var c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0;E=l;if((n|0)==1&(r|0)==2&(f|0)==0){p=+h[a>>2];b=s[e>>2]|0;f=s[e+4>>2]|0;a=o+4|0;c=0;u=+h[o>>2];d=+h[a>>2];while(1){if((c|0)>=(i|0))break;S=+h[b+(c<<2)>>2]+1.0000000031710769e-30+u;A=+h[f+(c<<2)>>2]+1.0000000031710769e-30+d;e=c<<1;h[t+(e<<2)>>2]=S*30517578125e-15;h[t+((e|1)<<2)>>2]=A*30517578125e-15;c=c+1|0;u=S*p;d=A*p}h[o>>2]=u;h[a>>2]=d;l=E;return}y=Ne()|0;k=l;l=l+((1*(i<<2)|0)+15&-16)|0;d=+h[a>>2];w=(i|0)/(n|0)|0;g=(n|0)>1;f=0;v=0;do{c=o+(v<<2)|0;u=+h[c>>2];b=s[e+(v<<2)>>2]|0;m=t+(v<<2)|0;if(!g){a=0;while(1){if((a|0)>=(i|0))break;S=+h[b+(a<<2)>>2]+1.0000000031710769e-30+u;h[m+((te(a,r)|0)<<2)>>2]=S*30517578125e-15;a=a+1|0;u=d*S}h[c>>2]=u;if(!f)f=0;else _=14}else{f=0;while(1){if((f|0)>=(i|0))break;S=+h[b+(f<<2)>>2]+1.0000000031710769e-30+u;h[k+(f<<2)>>2]=S;f=f+1|0;u=d*S}h[c>>2]=u;f=1;_=14}e:do if((_|0)==14){_=0;a=0;while(1){if((a|0)>=(w|0))break e;h[m+((te(a,r)|0)<<2)>>2]=+h[k+((te(a,n)|0)<<2)>>2]*30517578125e-15;a=a+1|0}}while(0);v=v+1|0}while((v|0)<(r|0));qe(y|0);l=E;return}function hi(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var n=0,o=0,f=0,h=0,c=0,l=0,u=0,d=0;n=s[e+36>>2]|0;r=te(n,r-i|0)|0;d=e+32|0;o=(s[d>>2]|0)-r|0;s[d>>2]=o;if(!t){l=e+28|0;u=l;r=(s[l>>2]|0)-r|0}else{u=e+28|0;r=te(n,i-t|0)|0}s[u>>2]=r;f=e+20|0;h=e+40|0;c=e+24|0;l=e+4|0;t=o;while(1){if(r>>>0>=8388609)break;s[f>>2]=(s[f>>2]|0)+8;r=r<<8;s[u>>2]=r;i=s[h>>2]|0;n=s[c>>2]|0;if(n>>>0<(s[l>>2]|0)>>>0){s[c>>2]=n+1;n=a[(s[e>>2]|0)+n>>0]|0}else n=0;s[h>>2]=n;o=((i<<8|n)>>>1&255|t<<8&2147483392)^255;s[d>>2]=o;t=o}return}function ci(e,t){e=e|0;t=t|0;var i=0,r=0,n=0,o=0,f=0,h=0,c=0,l=0,u=0,d=0,p=0;p=t+-1|0;i=32-(re(p|0)|0)|0;if((i|0)<=8){u=e+28|0;h=s[u>>2]|0;o=(h>>>0)/(t>>>0)|0;s[e+36>>2]=o;d=e+32|0;l=s[d>>2]|0;c=((l>>>0)/(o>>>0)|0)+1|0;c=c>>>0>t>>>0?t:c;i=t-c|0;f=te(o,t-(i+1)|0)|0;l=l-f|0;s[d>>2]=l;t=(c|0)==(t|0)?h-f|0:o;s[u>>2]=t;o=e+20|0;f=e+40|0;h=e+24|0;c=e+4|0;while(1){if(t>>>0>=8388609)break;s[o>>2]=(s[o>>2]|0)+8;t=t<<8;s[u>>2]=t;n=s[f>>2]|0;r=s[h>>2]|0;if(r>>>0<(s[c>>2]|0)>>>0){s[h>>2]=r+1;r=a[(s[e>>2]|0)+r>>0]|0}else r=0;s[f>>2]=r;p=((n<<8|r)>>>1&255|l<<8&2147483392)^255;s[d>>2]=p;l=p}return i|0}d=i+-8|0;l=(p>>>d)+1|0;c=((s[e+28>>2]|0)>>>0)/(l>>>0)|0;s[e+36>>2]=c;c=(((s[e+32>>2]|0)>>>0)/(c>>>0)|0)+1|0;c=l-(l>>>0>>0?l:c)|0;hi(e,c,c+1|0,l);c=c<>2]|0;u=e+16|0;t=s[u>>2]|0;if(t>>>0>>0){f=e+8|0;o=s[e+4>>2]|0;h=t+8|0;h=t+(((h|0)>25?h:25)+-1-t&-8)|0;r=s[f>>2]|0;do{if(r>>>0>>0){n=r+1|0;s[f>>2]=n;r=n;n=a[(s[e>>2]|0)+(o-n)>>0]|0}else n=0;i=i|n<>2]=i>>>d;s[u>>2]=t-d;u=e+20|0;s[u>>2]=(s[u>>2]|0)+d;i=c|i&(1<>>0<=p>>>0){e=i;return e|0}s[e+44>>2]=1;e=p;return e|0}function li(e){e=e|0;var t=0,i=0,n=0,o=0,f=0,h=0,c=0,l=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0;g=s[e+28>>2]|0;o=re(g|0)|0;t=2147483647>>>o;i=s[e+32>>2]|0;n=i+t&~t;if((n|t)>>>0>=(i+g|0)>>>0){n=t>>>1;n=i+n&~n;o=o+1|0}u=e+36|0;d=e+40|0;w=e+24|0;p=e+8|0;b=e+4|0;g=e+44|0;m=o+7&-8;c=o;while(1){if((c|0)<=0)break;h=n>>>23;if((h|0)==255)s[u>>2]=(s[u>>2]|0)+1;else{f=n>>>31;t=s[d>>2]|0;if((t|0)>-1){i=s[w>>2]|0;if((i+(s[p>>2]|0)|0)>>>0<(s[b>>2]|0)>>>0){s[w>>2]=i+1;r[(s[e>>2]|0)+i>>0]=t+f;t=0}else t=-1;s[g>>2]=s[g>>2]|t}t=s[u>>2]|0;if(t|0){f=f+255&255;do{i=s[w>>2]|0;if((i+(s[p>>2]|0)|0)>>>0<(s[b>>2]|0)>>>0){s[w>>2]=i+1;r[(s[e>>2]|0)+i>>0]=f;i=0;t=s[u>>2]|0}else i=-1;s[g>>2]=s[g>>2]|i;t=t+-1|0;s[u>>2]=t}while((t|0)!=0)}s[d>>2]=h&255}n=n<<8&2147483392;c=c+-8|0}i=s[d>>2]|0;if((i|0)>-1){t=s[w>>2]|0;if((t+(s[p>>2]|0)|0)>>>0<(s[b>>2]|0)>>>0){s[w>>2]=t+1;r[(s[e>>2]|0)+t>>0]=i;t=0}else t=-1;s[g>>2]=s[g>>2]|t;t=s[u>>2]|0;if(!t)l=26;else l=23}else{t=s[u>>2]|0;if(t|0)l=23}if((l|0)==23)while(1){i=s[w>>2]|0;if((i+(s[p>>2]|0)|0)>>>0<(s[b>>2]|0)>>>0){s[w>>2]=i+1;r[(s[e>>2]|0)+i>>0]=-1;i=0;t=s[u>>2]|0}else i=-1;s[g>>2]=s[g>>2]|i;t=t+-1|0;s[u>>2]=t;if(!t){l=26;break}else l=23}if((l|0)==26)s[d>>2]=0;h=s[e+16>>2]|0;f=h+~((h|0)<7?h:7)+8&-8;c=h;t=s[e+12>>2]|0;while(1){if((c|0)<=7)break;i=s[p>>2]|0;n=s[b>>2]|0;if(((s[w>>2]|0)+i|0)>>>0>>0){i=i+1|0;s[p>>2]=i;r[(s[e>>2]|0)+(n-i)>>0]=t;i=0}else i=-1;s[g>>2]=s[g>>2]|i;c=c+-8|0;t=t>>>8}f=h-f|0;if(s[g>>2]|0)return;d=s[w>>2]|0;kn((s[e>>2]|0)+d|0,0,(s[b>>2]|0)-d-(s[p>>2]|0)|0)|0;if((f|0)<=0)return;h=s[p>>2]|0;n=s[b>>2]|0;if(n>>>0<=h>>>0){s[g>>2]=-1;return}i=m-o|0;if((f|0)>(i|0)?((s[w>>2]|0)+h|0)>>>0>=n>>>0:0){s[g>>2]=-1;t=t&(1<>2]|0)+(n-h+-1)|0;r[e>>0]=a[e>>0]|0|t;return}function ui(e,t){e=e|0;t=t|0;var i=0,r=0,a=0,o=0,f=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0,C=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,q=0,H=0,G=0,V=0,W=0,K=0,Y=0,Z=0;R=l;l=l+32|0;x=R;T=s[e+8>>2]|0;T=(T|0)>0?T:0;s[x>>2]=1;i=1;r=0;while(1){a=r<<1;M=n[e+12+((a|1)<<1)>>1]|0;i=te(i,n[e+12+(a<<1)>>1]|0)|0;a=r+1|0;s[x+(a<<2)>>2]=i;if(M<<16>>16==1)break;else r=a}M=e+48|0;A=n[e+12+((a<<1)+-1<<1)>>1]|0;while(1){if((r|0)<=-1)break;i=r<<1;if(!r)S=1;else S=n[e+12+(i+-1<<1)>>1]|0;e:do switch(n[e+12+(i<<1)>>1]|0){case 2:{a=s[x+(r<<2)>>2]|0;i=t;o=0;while(1){if((o|0)>=(a|0))break e;E=i+32|0;y=+h[E>>2];A=i+36|0;_=+h[A>>2];c=+h[i>>2];h[E>>2]=c-y;E=i+4|0;k=+h[E>>2];h[A>>2]=k-_;h[i>>2]=c+y;h[E>>2]=k+_;E=i+40|0;_=+h[E>>2];A=i+44|0;k=+h[A>>2];y=(_+k)*.7071067690849304;_=(k-_)*.7071067690849304;v=i+8|0;k=+h[v>>2];h[E>>2]=k-y;E=i+12|0;c=+h[E>>2];h[A>>2]=c-_;h[v>>2]=k+y;h[E>>2]=c+_;E=i+52|0;_=+h[E>>2];v=i+48|0;c=+h[v>>2];A=i+16|0;y=+h[A>>2];h[v>>2]=y-_;v=i+20|0;k=+h[v>>2];h[E>>2]=k+c;h[A>>2]=y+_;h[v>>2]=k-c;v=i+60|0;c=+h[v>>2];A=i+56|0;k=+h[A>>2];_=(c-k)*.7071067690849304;k=(c+k)*-.7071067690849304;E=i+24|0;c=+h[E>>2];h[A>>2]=c-_;A=i+28|0;y=+h[A>>2];h[v>>2]=y-k;h[E>>2]=c+_;h[A>>2]=y+k;i=i+64|0;o=o+1|0}}case 4:{v=s[x+(r<<2)>>2]|0;d=v<=(v|0))break e;k=+h[i>>2];p=i+16|0;D=+h[p>>2];c=k-D;m=i+4|0;C=+h[m>>2];b=i+20|0;O=+h[b>>2];y=C-O;D=k+D;O=C+O;w=i+8|0;C=+h[w>>2];E=i+24|0;k=+h[E>>2];N=C+k;g=i+12|0;I=+h[g>>2];A=i+28|0;_=+h[A>>2];P=I+_;h[p>>2]=D-N;h[b>>2]=O-P;h[i>>2]=D+N;h[m>>2]=O+P;k=C-k;_=I-_;h[w>>2]=c+_;h[g>>2]=y-k;h[E>>2]=c-_;h[A>>2]=y+k;i=i+32|0;a=a+1|0}}a=A<<1;o=A*3|0;f=d<<1;u=d*3|0;p=0;while(1){if((p|0)>=(v|0))break e;i=t+((te(p,S)|0)<<3)|0;g=s[M>>2]|0;b=0;m=g;w=g;while(1){if((b|0)>=(A|0))break;U=i+(A<<3)|0;I=+h[U>>2];_=+h[m>>2];B=i+(A<<3)+4|0;C=+h[B>>2];k=+h[m+4>>2];c=I*_-C*k;_=I*k+C*_;z=i+(a<<3)|0;C=+h[z>>2];k=+h[w>>2];F=i+(a<<3)+4|0;I=+h[F>>2];O=+h[w+4>>2];y=C*k-I*O;k=C*O+I*k;L=i+(o<<3)|0;I=+h[L>>2];O=+h[g>>2];E=i+(o<<3)+4|0;C=+h[E>>2];P=+h[g+4>>2];D=I*O-C*P;O=I*P+C*O;C=+h[i>>2];P=C-y;j=i+4|0;I=+h[j>>2];N=I-k;y=C+y;h[i>>2]=y;k=I+k;h[j>>2]=k;I=c+D;C=_+O;D=c-D;O=_-O;h[z>>2]=y-I;h[F>>2]=k-C;h[i>>2]=+h[i>>2]+I;h[j>>2]=+h[j>>2]+C;h[U>>2]=P+O;h[B>>2]=N-D;h[L>>2]=P-O;h[E>>2]=N+D;i=i+8|0;b=b+1|0;m=m+(d<<3)|0;w=w+(f<<3)|0;g=g+(u<<3)|0}p=p+1|0}}case 3:{a=s[x+(r<<2)>>2]|0;o=a<>2]|0)+(u<<3)+4>>2];u=o<<1;d=0;while(1){if((d|0)>=(a|0))break e;i=t+((te(d,S)|0)<<3)|0;m=s[M>>2]|0;p=A;b=m;while(1){F=i+(A<<3)|0;P=+h[F>>2];C=+h[b>>2];z=i+(A<<3)+4|0;k=+h[z>>2];N=+h[b+4>>2];I=P*C-k*N;C=P*N+k*C;U=i+(f<<3)|0;k=+h[U>>2];N=+h[m>>2];j=i+(f<<3)+4|0;P=+h[j>>2];O=+h[m+4>>2];D=k*N-P*O;N=k*O+P*N;P=I+D;O=C+N;h[F>>2]=+h[i>>2]-P*.5;B=i+4|0;h[z>>2]=+h[B>>2]-O*.5;D=(I-D)*c;N=(C-N)*c;h[i>>2]=+h[i>>2]+P;h[B>>2]=+h[B>>2]+O;h[U>>2]=+h[F>>2]+N;h[j>>2]=+h[z>>2]-D;h[F>>2]=+h[F>>2]-N;h[z>>2]=+h[z>>2]+D;p=p+-1|0;if(!p)break;else{i=i+8|0;b=b+(o<<3)|0;m=m+(u<<3)|0}}d=d+1|0}}case 5:{i=s[x+(r<<2)>>2]|0;a=i<>2]|0;c=+h[o+(f<<3)>>2];_=+h[o+(f<<3)+4>>2];f=te(a<<1,A)|0;y=+h[o+(f<<3)>>2];k=+h[o+(f<<3)+4>>2];f=A<<1;u=A*3|0;d=A<<2;v=0;while(1){if((v|0)>=(i|0))break e;g=t+((te(v,S)|0)<<3)|0;p=g;b=g+(A<<3)|0;m=g+(f<<3)|0;w=g+(u<<3)|0;g=g+(d<<3)|0;E=0;while(1){if((E|0)>=(A|0))break;V=+h[p>>2];B=p+4|0;H=+h[B>>2];G=+h[b>>2];L=te(E,a)|0;P=+h[o+(L<<3)>>2];U=b+4|0;Y=+h[U>>2];Z=+h[o+(L<<3)+4>>2];N=G*P-Y*Z;P=G*Z+Y*P;Y=+h[m>>2];L=te(E<<1,a)|0;Z=+h[o+(L<<3)>>2];F=m+4|0;G=+h[F>>2];I=+h[o+(L<<3)+4>>2];K=Y*Z-G*I;Z=Y*I+G*Z;G=+h[w>>2];L=te(E*3|0,a)|0;I=+h[o+(L<<3)>>2];z=w+4|0;Y=+h[z>>2];O=+h[o+(L<<3)+4>>2];D=G*I-Y*O;I=G*O+Y*I;Y=+h[g>>2];L=te(E<<2,a)|0;O=+h[o+(L<<3)>>2];j=g+4|0;G=+h[j>>2];q=+h[o+(L<<3)+4>>2];C=Y*O-G*q;O=Y*q+G*O;G=N+C;q=P+O;C=N-C;O=P-O;P=K+D;N=Z+I;D=K-D;I=Z-I;h[p>>2]=V+(G+P);h[B>>2]=H+(q+N);Z=V+(G*c+P*y);K=H+(q*c+N*y);Y=O*_+I*k;W=C*_+D*k;h[b>>2]=Z-Y;h[U>>2]=K+W;h[g>>2]=Z+Y;h[j>>2]=K-W;P=V+(G*y+P*c);N=H+(q*y+N*c);O=I*_-O*k;D=C*k-D*_;h[m>>2]=P+O;h[F>>2]=N+D;h[w>>2]=P-O;h[z>>2]=N-D;p=p+8|0;b=b+8|0;m=m+8|0;w=w+8|0;g=g+8|0;E=E+1|0}v=v+1|0}}default:{}}while(0);r=r+-1|0;A=S}l=R;return}function di(e,t,i,r,a,o,f){e=e|0;t=t|0;i=i|0;r=r|0;a=a|0;o=o|0;f=f|0;var c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0;A=l;v=s[e+8+(o<<2)>>2]|0;_=+h[v+4>>2];c=s[e>>2]|0;u=0;E=s[e+24>>2]|0;while(1){k=c>>1;if((u|0)>=(o|0))break;c=k;u=u+1|0;E=E+(k<<2)|0}y=c>>2;e=l;l=l+((1*(k<<2)|0)+15&-16)|0;c=l;l=l+((1*(y<<3)|0)+15&-16)|0;o=a>>1;m=r+(o<<2)|0;w=a+3>>2;g=0-k|0;p=0;b=m;m=m+-4|0;d=t+(o<<2)|0;o=t+(k<<2)+-4+(o<<2)|0;u=e;while(1){if((p|0)>=(w|0))break;S=+h[m>>2];M=+h[b>>2];h[u>>2]=S*+h[d+(k<<2)>>2]+M*+h[o>>2];h[u+4>>2]=M*+h[d>>2]-S*+h[o+(g<<2)>>2];p=p+1|0;b=b+8|0;m=m+-8|0;d=d+8|0;o=o+-8|0;u=u+8|0}t=r+(a<<2)|0;b=y-w|0;while(1){if((p|0)>=(b|0))break;s[u>>2]=s[o>>2];s[u+4>>2]=s[d>>2];p=p+1|0;d=d+8|0;o=o+-8|0;u=u+8|0}m=p;b=r;p=t+-4|0;while(1){if((m|0)>=(y|0))break;h[u>>2]=+h[p>>2]*+h[o>>2]-+h[b>>2]*+h[d+(g<<2)>>2];h[u+4>>2]=+h[p>>2]*+h[d>>2]+ +h[b>>2]*+h[o+(k<<2)>>2];m=m+1|0;b=b+8|0;p=p+-8|0;d=d+8|0;o=o+-8|0;u=u+8|0}u=v+44|0;o=0;while(1){if((o|0)>=(y|0))break;T=+h[E+(o<<2)>>2];M=+h[E+(y+o<<2)>>2];S=+h[e>>2];x=+h[e+4>>2];g=n[(s[u>>2]|0)+(o<<1)>>1]|0;h[c+(g<<3)>>2]=_*(S*T-x*M);h[c+(g<<3)+4>>2]=_*(x*T+S*M);o=o+1|0;e=e+8|0}ui(v,c);d=f<<1;p=0-d|0;u=0;o=i;e=i+((te(k+-1|0,f)|0)<<2)|0;while(1){if((u|0)>=(y|0))break;T=+h[c+4>>2];M=+h[E+(y+u<<2)>>2];S=+h[c>>2];x=+h[E+(u<<2)>>2];h[o>>2]=T*M-S*x;h[e>>2]=S*M+T*x;c=c+8|0;u=u+1|0;o=o+(d<<2)|0;e=e+(p<<2)|0}l=A;return}function pi(e,t,i,r,a,o,f){e=e|0;t=t|0;i=i|0;r=r|0;a=a|0;o=o|0;f=f|0;var c=0,l=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0;c=s[e>>2]|0;l=0;w=s[e+24>>2]|0;while(1){m=c>>1;if((l|0)>=(o|0))break;c=m;l=l+1|0;w=w+(m<<2)|0}b=c>>2;g=t+((te(m+-1|0,f)|0)<<2)|0;c=i+(a>>1<<2)|0;p=s[e+8+(o<<2)>>2]|0;o=f<<1;f=0-o|0;u=s[p+44>>2]|0;d=0;l=t;e=g;while(1){if((d|0)>=(b|0))break;_=+h[e>>2];y=+h[w+(d<<2)>>2];k=+h[l>>2];v=+h[w+(b+d<<2)>>2];g=n[u>>1]<<1;h[c+((g|1)<<2)>>2]=_*y+k*v;h[c+(g<<2)>>2]=k*y-_*v;u=u+2|0;d=d+1|0;l=l+(o<<2)|0;e=e+(f<<2)|0}ui(p,c);o=b+1>>1;e=c+(m<<2)|0;f=0;while(1){l=e+-8|0;if((f|0)>=(o|0))break;g=c+4|0;A=+h[g>>2];_=+h[c>>2];k=+h[w+(f<<2)>>2];E=+h[w+(b+f<<2)>>2];t=e+-4|0;v=+h[t>>2];y=+h[l>>2];h[c>>2]=A*k+_*E;h[t>>2]=A*E-_*k;k=+h[w+(b-f+-1<<2)>>2];_=+h[w+(m-f+-1<<2)>>2];h[l>>2]=v*k+y*_;h[g>>2]=v*_-y*k;e=l;f=f+1|0;c=c+8|0}o=(a|0)/2|0;c=i+(a<<2)|0;l=r+(a<<2)|0;e=0;while(1){l=l+-4|0;c=c+-4|0;if((e|0)>=(o|0))break;A=+h[c>>2];k=+h[i>>2];E=+h[l>>2];y=+h[r>>2];h[i>>2]=E*k-y*A;h[c>>2]=y*k+E*A;e=e+1|0;r=r+4|0;i=i+4|0}return}function bi(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var n=0,a=0,o=0,f=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0;_=l;l=l+48|0;a=_+16|0;g=_;v=i>>1;i=1;while(1){if((i|0)>=(v|0))break;y=i<<1;k=s[e>>2]|0;h[t+(i<<2)>>2]=((+h[k+(y+-1<<2)>>2]+ +h[k+((y|1)<<2)>>2])*.5+ +h[k+(y<<2)>>2])*.5;i=i+1|0}k=s[e>>2]|0;h[t>>2]=(+h[k+4>>2]*.5+ +h[k>>2])*.5;if((r|0)==2){i=e+4|0;r=1;while(1){if((r|0)>=(v|0))break;y=r<<1;e=s[i>>2]|0;k=t+(r<<2)|0;h[k>>2]=+h[k>>2]+((+h[e+(y+-1<<2)>>2]+ +h[e+((y|1)<<2)>>2])*.5+ +h[e+(y<<2)>>2])*.5;r=r+1|0}k=s[i>>2]|0;h[t>>2]=+h[t>>2]+(+h[k+4>>2]*.5+ +h[k>>2])*.5}Ai(t,a,0,0,4,v);h[a>>2]=+h[a>>2]*1.000100016593933;i=1;while(1){if((i|0)==5)break;k=a+(i<<2)|0;m=+h[k>>2];w=+(i|0)*.00800000037997961;h[k>>2]=m-m*w*w;i=i+1|0}_i(g,a,4);i=0;n=1;while(1){if((i|0)==4)break;w=n*.8999999761581421;k=g+(i<<2)|0;h[k>>2]=+h[k>>2]*w;i=i+1|0;n=w}m=+h[g>>2];b=m+.800000011920929;w=+h[g+4>>2];m=w+m*.800000011920929;n=+h[g+8>>2];w=n+w*.800000011920929;o=+h[g+12>>2];n=o+n*.800000011920929;o=o*.800000011920929;i=0;f=0;c=0;u=0;d=0;p=0;while(1){if((i|0)>=(v|0))break;k=t+(i<<2)|0;A=+h[k>>2];h[k>>2]=A+b*f+m*c+w*u+n*d+o*p;E=f;i=i+1|0;f=A;p=d;d=u;u=c;c=E}l=_;return}function mi(e,t,i,r,n){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;var a=0,o=0,f=0,c=0,l=0,u=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0,C=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0;_=n+-3|0;y=r+-3|0;A=((y|0)>0?y:0)+3|0;k=A&-4;S=e+(k<<2)|0;f=n+-3|0;f=((f|0)>0?f:0)+3&-4;E=0;A=t+((A|3)<<2)|0;while(1){if((E|0)>=(_|0))break;M=t+(E<<2)|0;p=e;b=M+12|0;m=0;u=0;l=0;o=0;a=0;c=+h[M>>2];g=+h[M+4>>2];v=+h[M+8>>2];w=0;while(1){if((m|0)>=(y|0))break;C=+h[p>>2];w=+h[b>>2];U=(s[d>>2]=u,+h[d>>2])+C*c;B=(s[d>>2]=l,+h[d>>2])+C*g;L=(s[d>>2]=o,+h[d>>2])+C*v;D=+h[p+4>>2];R=+h[b+4>>2];N=+h[p+8>>2];x=+h[b+8>>2];C=(s[d>>2]=a,+h[d>>2])+C*w+D*R+N*x;I=+h[p+12>>2];T=+h[b+12>>2];O=(h[d>>2]=U+D*g+N*v+I*w,s[d>>2]|0);P=(h[d>>2]=B+D*v+N*w+I*R,s[d>>2]|0);M=(h[d>>2]=L+D*w+N*R+I*x,s[d>>2]|0);p=p+16|0;b=b+16|0;m=m+4|0;u=O;l=P;o=M;a=(h[d>>2]=C+I*T,s[d>>2]|0);c=R;g=x;v=T}m=k|1;if((k|0)<(r|0)){U=+h[S>>2];w=+h[A>>2];u=(h[d>>2]=(s[d>>2]=u,+h[d>>2])+U*c,s[d>>2]|0);l=(h[d>>2]=(s[d>>2]=l,+h[d>>2])+U*g,s[d>>2]|0);o=(h[d>>2]=(s[d>>2]=o,+h[d>>2])+U*v,s[d>>2]|0);p=S+4|0;b=A+4|0;a=(h[d>>2]=(s[d>>2]=a,+h[d>>2])+U*w,s[d>>2]|0)}else{p=S;b=A}if((m|0)<(r|0)){U=+h[p>>2];c=+h[b>>2];u=(h[d>>2]=(s[d>>2]=u,+h[d>>2])+U*g,s[d>>2]|0);l=(h[d>>2]=(s[d>>2]=l,+h[d>>2])+U*v,s[d>>2]|0);o=(h[d>>2]=(s[d>>2]=o,+h[d>>2])+U*w,s[d>>2]|0);p=p+4|0;b=b+4|0;a=(h[d>>2]=(s[d>>2]=a,+h[d>>2])+U*c,s[d>>2]|0)}if((m+1|0)<(r|0)){U=+h[p>>2];u=(h[d>>2]=(s[d>>2]=u,+h[d>>2])+U*v,s[d>>2]|0);l=(h[d>>2]=(s[d>>2]=l,+h[d>>2])+U*w,s[d>>2]|0);o=(h[d>>2]=(s[d>>2]=o,+h[d>>2])+U*c,s[d>>2]|0);a=(h[d>>2]=(s[d>>2]=a,+h[d>>2])+U*+h[b>>2],s[d>>2]|0)}s[i+(E<<2)>>2]=u;s[i+((E|1)<<2)>>2]=l;s[i+((E|2)<<2)>>2]=o;s[i+((E|3)<<2)>>2]=a;E=E+4|0;A=A+16|0}while(1){if((f|0)>=(n|0))break;a=t+(f<<2)|0;o=0;c=0;while(1){if((o|0)>=(r|0))break;U=c+ +h[e+(o<<2)>>2]*+h[a+(o<<2)>>2];o=o+1|0;c=U}h[i+(f<<2)>>2]=c;f=f+1|0}return}function wi(e,t,i,r,n){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;var a=0,o=0,f=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0;_=l;l=l+16|0;w=_;u=w;s[u>>2]=0;s[u+4>>2]=0;u=i>>2;d=l;l=l+((1*(u<<2)|0)+15&-16)|0;p=i+r>>2;b=l;l=l+((1*(p<<2)|0)+15&-16)|0;g=r>>1;v=l;l=l+((1*(g<<2)|0)+15&-16)|0;c=0;while(1){if((c|0)>=(u|0))break;s[d+(c<<2)>>2]=s[e+(c<<1<<2)>>2];c=c+1|0}c=0;while(1){if((c|0)>=(p|0))break;s[b+(c<<2)>>2]=s[t+(c<<1<<2)>>2];c=c+1|0}r=r>>2;mi(d,b,v,u,r);gi(v,b,u,r,w);r=s[w>>2]<<1;m=s[w+4>>2]<<1;c=i>>1;p=0;while(1){if((p|0)>=(g|0))break;u=v+(p<<2)|0;h[u>>2]=0;i=p-r|0;if(!((((i|0)>-1?i:0-i|0)|0)>2?(i=p-m|0,(((i|0)>-1?i:0-i|0)|0)>2):0)){d=t+(p<<2)|0;b=0;a=0;while(1){if((b|0)>=(c|0))break;f=a+ +h[e+(b<<2)>>2]*+h[d+(b<<2)>>2];b=b+1|0;a=f}h[u>>2]=a<-1?-1:a}p=p+1|0}gi(v,t,c,g,w);c=s[w>>2]|0;if(!((c|0)>0&(c|0)<(g+-1|0))){v=0;g=c<<1;v=g-v|0;s[n>>2]=v;l=_;return}o=+h[v+(c+-1<<2)>>2];f=+h[v+(c<<2)>>2];a=+h[v+(c+1<<2)>>2];if(a-o>(f-o)*.699999988079071){v=1;g=c<<1;v=g-v|0;s[n>>2]=v;l=_;return}if(o-a>(f-a)*.699999988079071){v=-1;g=c<<1;v=g-v|0;s[n>>2]=v;l=_;return}v=0;g=c<<1;v=g-v|0;s[n>>2]=v;l=_;return}function gi(e,t,i,r,n){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;var a=0,o=0,f=0,c=0,l=0,u=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0;s[n>>2]=0;g=n+4|0;s[g>>2]=1;o=1;a=0;while(1){if((a|0)>=(i|0)){a=0;b=0;c=0;m=-1082130432;l=-1082130432;w=0;break}f=+h[t+(a<<2)>>2];o=o+f*f;a=a+1|0}while(1){if((w|0)>=(r|0))break;f=+h[e+(w<<2)>>2];do if(f>0?(v=f*9.999999960041972e-13,v=v*v,f=v*(s[d>>2]=c,+h[d>>2]),f>(s[d>>2]=l,+h[d>>2])*o):0){f=v*(s[d>>2]=b,+h[d>>2]);if(f>(s[d>>2]=m,+h[d>>2])*o){s[g>>2]=a;p=(h[d>>2]=v,s[d>>2]|0);u=(h[d>>2]=o,s[d>>2]|0);s[n>>2]=w;a=w;c=b;l=m;break}else{l=(h[d>>2]=v,s[d>>2]|0);c=(h[d>>2]=o,s[d>>2]|0);s[g>>2]=w;u=b;p=m;break}}else{u=b;p=m}while(0);_=+h[t+(w+i<<2)>>2];f=+h[t+(w<<2)>>2];f=o+(_*_-f*f);o=f<1?1:f;b=u;m=p;w=w+1|0}return}function vi(e,t,i,r,n){e=e|0;t=t|0;i=i|0;r=r|0;n=+n;var a=0,o=0,f=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0,C=0;C=l;l=l+2064|0;I=C+2052|0;k=s[i>>2]|0;S=(r|0)/2|0;R=(t|0)/2|0;x=e+2048|0;k=(k|0)>1023?511:(k|0)/2|0;s[i>>2]=k;E=C;r=x+(0-k<<2)|0;t=0;A=0;o=0;while(1){if((t|0)>=(R|0))break;y=+h[x+(t<<2)>>2];M=o+y*+h[r+(t<<2)>>2];t=t+1|0;A=A+y*y;o=M}h[E>>2]=A;r=1;a=A;while(1){if((r|0)==513)break;y=+h[x+(0-r<<2)>>2];M=+h[x+(R-r<<2)>>2];M=a+y*y-M*M;h[E+(r<<2)>>2]=M<0?0:M;r=r+1|0;a=M}m=+h[E+(k<<2)>>2];M=o/+H(+(A*m+1));g=k<<1;v=M*.699999988079071;_=M*.8500000238418579;y=n*.5;T=k;w=2;while(1){if((w|0)>=16)break;r=w<<1;b=((g+w|0)>>>0)/(r>>>0)|0;if((b|0)<7)break;if((w|0)==2){d=b+k|0;d=(d|0)>512?k:d}else d=(((te(s[17156+(w<<2)>>2]<<1,k)|0)+w|0)>>>0)/(r>>>0)|0;r=x+(0-b<<2)|0;t=x+(0-d<<2)|0;e=0;a=0;f=0;while(1){if((e|0)>=(R|0))break;u=+h[x+(e<<2)>>2];p=f+u*+h[t+(e<<2)>>2];u=a+u*+h[r+(e<<2)>>2];e=e+1|0;a=u;f=p}p=(a+f)*.5;f=(+h[E+(b<<2)>>2]+ +h[E+(d<<2)>>2])*.5;a=p/+H(+(A*f+1));r=b-S|0;r=(r|0)>-1?r:0-r|0;if((r|0)>=2)if((r|0)<3){d=(te(w*5|0,w)|0)<(k|0);u=d?y:0}else u=0;else u=n;c=v-u;c=c<.30000001192092896?.30000001192092896:c;if((b|0)<21){c=_-u;if(c<.4000000059604645)c=.4000000059604645}if(a>c){r=b;o=p}else{r=T;f=m;a=M}T=r;m=f;M=a;w=w+1|0}a=o<0?0:o;if(!(m<=a))c=a/(m+1);else c=1;e=0;while(1){if((e|0)==3)break;r=x+(1-(T+e)<<2)|0;t=0;a=0;while(1){if((t|0)>=(R|0))break;n=a+ +h[x+(t<<2)>>2]*+h[r+(t<<2)>>2];t=t+1|0;a=n}h[I+(e<<2)>>2]=a;e=e+1|0}o=+h[I+8>>2];f=+h[I>>2];a=+h[I+4>>2];if(o-f>(a-f)*.699999988079071){I=1;R=c>M;n=R?M:c;R=T<<1;I=R+I|0;R=(I|0)<15;I=R?15:I;s[i>>2]=I;l=C;return+n}if(f-o>(a-o)*.699999988079071){I=-1;R=c>M;n=R?M:c;R=T<<1;I=R+I|0;R=(I|0)<15;I=R?15:I;s[i>>2]=I;l=C;return+n}I=0;R=c>M;n=R?M:c;R=T<<1;I=R+I|0;R=(I|0)<15;I=R?15:I;s[i>>2]=I;l=C;return+n}function _i(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,n=0,s=0,a=0,o=0,f=0,c=0,l=0,u=0,d=0,p=0;n=+h[t>>2];kn(e|0,0,i<<2|0)|0;if(+h[t>>2]!=0)c=0;else return;while(1){if((c|0)<(i|0)){r=0;s=0}else{r=9;break}while(1){if((c|0)==(r|0))break;a=s+ +h[e+(r<<2)>>2]*+h[t+(c-r<<2)>>2];r=r+1|0;s=a}o=c;c=c+1|0;s=(s+ +h[t+(c<<2)>>2])/n;a=-s;h[e+(o<<2)>>2]=a;r=c>>1;o=o+-1|0;f=0;while(1){if((f|0)>=(r|0))break;p=e+(f<<2)|0;u=+h[p>>2];l=e+(o-f<<2)|0;d=+h[l>>2];h[p>>2]=u+d*a;h[l>>2]=d+u*a;f=f+1|0}n=n-s*s*n;if(n<+h[t>>2]*.0010000000474974513){r=9;break}}if((r|0)==9)return}function yi(e,t,i,r,n){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;var a=0,o=0,f=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0;m=l;l=l+112|0;d=m+96|0;p=m;b=l;l=l+((1*(r+24<<2)|0)+15&-16)|0;a=0;while(1){if((a|0)==24)break;s[p+(a<<2)>>2]=s[t+(24-a+-1<<2)>>2];a=a+1|0}a=0;while(1){if((a|0)==24){a=0;break}s[b+(a<<2)>>2]=s[n+(24-a+-1<<2)>>2];a=a+1|0}while(1){if((a|0)>=(r|0)){a=0;break}s[b+(a+24<<2)>>2]=s[e+(a<<2)>>2];a=a+1|0}while(1){if((a|0)==24)break;s[n+(a<<2)>>2]=s[e+(r-a+-1<<2)>>2];a=a+1|0}t=r+-3|0;n=d+4|0;f=d+8|0;c=d+12|0;a=((t|0)>0?t:0)+3&-4;u=0;while(1){if((u|0)>=(t|0))break;s[d>>2]=0;s[d+4>>2]=0;s[d+8>>2]=0;s[d+12>>2]=0;ki(p,b+(u<<2)|0,d,24);h[i+(u<<2)>>2]=+h[e+(u<<2)>>2]+ +h[d>>2];w=u|1;h[i+(w<<2)>>2]=+h[e+(w<<2)>>2]+ +h[n>>2];w=u|2;h[i+(w<<2)>>2]=+h[e+(w<<2)>>2]+ +h[f>>2];w=u|3;h[i+(w<<2)>>2]=+h[e+(w<<2)>>2]+ +h[c>>2];u=u+4|0}while(1){if((a|0)<(r|0)){t=0;o=0}else break;while(1){if((t|0)==24)break;g=o+ +h[p+(t<<2)>>2]*+h[b+(a+t<<2)>>2];t=t+1|0;o=g}h[i+(a<<2)>>2]=+h[e+(a<<2)>>2]+o;a=a+1|0}l=m;return}function ki(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var n=0,s=0,a=0,o=0,f=0,c=0,l=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0;f=r+-3|0;p=i+4|0;b=i+8|0;m=i+12|0;l=((f|0)>0?f:0)+3|0;u=l&-4;l=l|3;s=e;a=t+12|0;c=0;n=+h[t>>2];d=+h[t+4>>2];w=+h[t+8>>2];o=0;while(1){if((c|0)>=(f|0))break;k=+h[s>>2];o=+h[a>>2];S=+h[i>>2]+k*n;h[i>>2]=S;A=+h[p>>2]+k*d;h[p>>2]=A;E=+h[b>>2]+k*w;h[b>>2]=E;k=+h[m>>2]+k*o;h[m>>2]=k;y=+h[s+4>>2];_=+h[a+4>>2];S=S+y*d;h[i>>2]=S;A=A+y*w;h[p>>2]=A;E=E+y*o;h[b>>2]=E;y=k+y*_;h[m>>2]=y;k=+h[s+8>>2];v=+h[a+8>>2];S=S+k*w;h[i>>2]=S;A=A+k*o;h[p>>2]=A;E=E+k*_;h[b>>2]=E;k=y+k*v;h[m>>2]=k;y=+h[s+12>>2];g=+h[a+12>>2];h[i>>2]=S+y*o;h[p>>2]=A+y*_;h[b>>2]=E+y*v;h[m>>2]=k+y*g;s=s+16|0;a=a+16|0;c=c+4|0;n=_;d=v;w=g}a=e+(u<<2)|0;s=t+(l<<2)|0;f=u|1;if((u|0)<(r|0)){S=+h[a>>2];o=+h[s>>2];h[i>>2]=+h[i>>2]+S*n;h[p>>2]=+h[p>>2]+S*d;h[b>>2]=+h[b>>2]+S*w;h[m>>2]=+h[m>>2]+S*o;a=a+4|0;s=s+4|0}if((f|0)<(r|0)){S=+h[a>>2];n=+h[s>>2];h[i>>2]=+h[i>>2]+S*d;h[p>>2]=+h[p>>2]+S*w;h[b>>2]=+h[b>>2]+S*o;h[m>>2]=+h[m>>2]+S*n;a=a+4|0;s=s+4|0}if((f+1|0)>=(r|0))return;A=+h[a>>2];S=+h[s>>2];h[i>>2]=+h[i>>2]+A*w;h[p>>2]=+h[p>>2]+A*o;h[b>>2]=+h[b>>2]+A*n;h[m>>2]=+h[m>>2]+A*S;return}function Ei(e,t,i,r,n){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;var a=0,o=0,f=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0;_=l;l=l+112|0;w=_+96|0;g=_;o=r+24|0;v=l;l=l+((1*(o<<2)|0)+15&-16)|0;a=0;while(1){if((a|0)==24)break;s[g+(a<<2)>>2]=s[t+(24-a+-1<<2)>>2];a=a+1|0}a=0;while(1){if((a|0)==24){a=24;break}h[v+(a<<2)>>2]=-+h[n+(24-a+-1<<2)>>2];a=a+1|0}while(1){if((a|0)>=(o|0))break;h[v+(a<<2)>>2]=0;a=a+1|0}o=r+-3|0;c=w+4|0;u=w+8|0;d=w+12|0;p=t+4|0;b=t+8|0;a=r+-3|0;a=((a|0)>0?a:0)+3&-4;m=0;while(1){if((m|0)>=(o|0))break;s[w>>2]=s[e+(m<<2)>>2];M=m|1;s[c>>2]=s[e+(M<<2)>>2];A=m|2;s[u>>2]=s[e+(A<<2)>>2];y=m|3;s[d>>2]=s[e+(y<<2)>>2];ki(g,v+(m<<2)|0,w,24);S=+h[w>>2];f=-S;h[v+(m+24<<2)>>2]=f;h[i+(m<<2)>>2]=S;S=+h[c>>2]+ +h[t>>2]*f;h[c>>2]=S;k=-S;h[v+(m+25<<2)>>2]=k;h[i+(M<<2)>>2]=S; +S=+h[u>>2]+ +h[t>>2]*k+ +h[p>>2]*f;h[u>>2]=S;E=-S;h[v+(m+26<<2)>>2]=E;h[i+(A<<2)>>2]=S;f=+h[d>>2]+ +h[t>>2]*E+ +h[p>>2]*k+ +h[b>>2]*f;h[d>>2]=f;h[v+(m+27<<2)>>2]=-f;h[i+(y<<2)>>2]=f;m=m+4|0}while(1){if((a|0)>=(r|0)){a=0;break}o=0;f=+h[e+(a<<2)>>2];while(1){if((o|0)==24)break;S=f-+h[g+(o<<2)>>2]*+h[v+(a+o<<2)>>2];o=o+1|0;f=S}h[v+(a+24<<2)>>2]=f;h[i+(a<<2)>>2]=f;a=a+1|0}while(1){if((a|0)==24)break;s[n+(a<<2)>>2]=s[i+(r-a+-1<<2)>>2];a=a+1|0}l=_;return}function Ai(e,t,i,r,n,a){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;a=a|0;var o=0,f=0,c=0,u=0,d=0,p=0;d=l;u=a-n|0;c=l;l=l+((1*(a<<2)|0)+15&-16)|0;e:do if(!r)c=e;else{f=0;while(1){if((f|0)>=(a|0)){f=0;break}s[c+(f<<2)>>2]=s[e+(f<<2)>>2];f=f+1|0}while(1){if((f|0)>=(r|0))break e;o=+h[i+(f<<2)>>2];h[c+(f<<2)>>2]=+h[e+(f<<2)>>2]*o;p=a-f+-1|0;h[c+(p<<2)>>2]=+h[e+(p<<2)>>2]*o;f=f+1|0}}while(0);mi(c,c,t,u,n+1|0);r=0;while(1){if((r|0)>(n|0))break;o=0;f=r+u|0;while(1){if((f|0)>=(a|0))break;o=o+ +h[c+(f<<2)>>2]*+h[c+(f-r<<2)>>2];f=f+1|0}p=t+(r<<2)|0;h[p>>2]=+h[p>>2]+o;r=r+1|0}l=d;return}function Si(e,t,i,r,n,a,o,f,c,u,d,p,b,m,w,g,v){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;a=a|0;o=o|0;f=f|0;c=c|0;u=u|0;d=d|0;p=p|0;b=b|0;m=m|0;w=w|0;g=g|0;v=v|0;var _=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0,C=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,q=0,H=0,G=0,V=0;G=l;l=l+96|0;F=G+72|0;z=G+48|0;q=G+24|0;H=G;if(!b)if((w|0)==0?(_=i-t|0,+h[m>>2]>+(te(u<<1,_)|0)):0)E=(te(_,u)|0)<(p|0);else E=0;else E=1;k=+(o>>>0)*+h[m>>2]*+(g|0)/+(u<<9|0);j=e+8|0;A=s[j>>2]|0;g=0;y=0;do{b=te(g,A)|0;_=t;while(1){if((_|0)>=(r|0))break;B=_+b|0;V=+h[n+(B<<2)>>2]-+h[a+(B<<2)>>2];y=y+V*V;_=_+1|0}g=g+1|0}while((g|0)<(u|0));B=~~k;k=y>200?200:y;D=c+20|0;g=s[D>>2]|0;L=c+28|0;b=s[L>>2]|0;N=g+((re(b|0)|0)+-32)|0;_=(N+3|0)>>>0>o>>>0;O=_?0:E&1;if((i-t|0)>10?(S=+(p|0)*.125,!(S>16)):0)y=S;else y=16;y=(v|0)==0?y:3;s[F>>2]=s[c>>2];s[F+4>>2]=s[c+4>>2];s[F+8>>2]=s[c+8>>2];s[F+12>>2]=s[c+12>>2];s[F+16>>2]=s[c+16>>2];s[F+20>>2]=s[c+20>>2];P=c+24|0;R=s[P>>2]|0;s[z>>2]=s[L>>2];s[z+4>>2]=s[L+4>>2];s[z+8>>2]=s[L+8>>2];s[z+12>>2]=s[L+12>>2];s[z+16>>2]=s[L+16>>2];x=te(A,u)|0;I=l;l=l+((1*(x<<2)|0)+15&-16)|0;C=l;l=l+((1*(x<<2)|0)+15&-16)|0;Mn(I|0,a|0,x<<2|0)|0;x=_|(w|0)==0;if(x)if(!O){T=R;M=0}else{Mi(e,t,i,n,I,o,N,29009+(d*84|0)+42|0,C,c,u,d,1,y,v)|0;U=22}else{_=Mi(e,t,i,n,I,o,N,29009+(d*84|0)+42|0,C,c,u,d,1,y,v)|0;if(!O){g=s[D>>2]|0;b=s[L>>2]|0;T=s[P>>2]|0;M=_}else U=22}if((U|0)==22){Mn(a|0,I|0,(te(s[j>>2]|0,u)|0)<<2|0)|0;Mn(f|0,C|0,(te(s[j>>2]|0,u)|0)<<2|0)|0;V=k;h[m>>2]=V;l=G;return}E=32-(re(b|0)|0)|0;r=b>>>(E+-16|0);b=(r>>>12)+-8|0;b=(g<<3)-((E<<3)+(b+(r>>>0>(s[5272+(b<<2)>>2]|0)>>>0&1)))|0;g=s[c>>2]|0;r=c+4|0;s[q>>2]=s[r>>2];s[q+4>>2]=s[r+4>>2];s[q+8>>2]=s[r+8>>2];s[q+12>>2]=s[r+12>>2];s[q+16>>2]=s[r+16>>2];s[H>>2]=s[L>>2];s[H+4>>2]=s[L+4>>2];s[H+8>>2]=s[L+8>>2];s[H+12>>2]=s[L+12>>2];s[H+16>>2]=s[L+16>>2];E=g+R|0;p=T-R|0;A=Ne()|0;w=l;l=l+((1*((T|0)==(R|0)?1:p)|0)+15&-16)|0;Mn(w|0,E|0,p|0)|0;s[c>>2]=s[F>>2];s[c+4>>2]=s[F+4>>2];s[c+8>>2]=s[F+8>>2];s[c+12>>2]=s[F+12>>2];s[c+16>>2]=s[F+16>>2];s[c+20>>2]=s[F+20>>2];s[P>>2]=R;s[L>>2]=s[z>>2];s[L+4>>2]=s[z+4>>2];s[L+8>>2]=s[z+8>>2];s[L+12>>2]=s[z+12>>2];s[L+16>>2]=s[z+16>>2];_=Mi(e,t,i,n,a,o,N,29009+(d*84|0)+(O*42|0)|0,f,c,u,d,0,y,v)|0;do if(!x){if((M|0)>=(_|0)){if((M|0)!=(_|0))break;e=s[L>>2]|0;v=32-(re(e|0)|0)|0;e=e>>>(v+-16|0);t=(e>>>12)+-8|0;if(((s[D>>2]<<3)-((v<<3)+(t+(e>>>0>(s[5272+(t<<2)>>2]|0)>>>0&1)))+B|0)<=(b|0))break}s[c>>2]=g;s[r>>2]=s[q>>2];s[r+4>>2]=s[q+4>>2];s[r+8>>2]=s[q+8>>2];s[r+12>>2]=s[q+12>>2];s[r+16>>2]=s[q+16>>2];s[P>>2]=T;s[L>>2]=s[H>>2];s[L+4>>2]=s[H+4>>2];s[L+8>>2]=s[H+8>>2];s[L+12>>2]=s[H+12>>2];s[L+16>>2]=s[H+16>>2];Mn(E|0,w|0,p|0)|0;Mn(a|0,I|0,(te(s[j>>2]|0,u)|0)<<2|0)|0;Mn(f|0,C|0,(te(s[j>>2]|0,u)|0)<<2|0)|0;qe(A|0);V=k;h[m>>2]=V;l=G;return}while(0);qe(A|0);V=+h[17336+(d<<2)>>2];V=V*V*+h[m>>2]+k;h[m>>2]=V;l=G;return}function Mi(e,t,i,n,o,f,c,u,d,p,b,m,w,g,v){e=e|0;t=t|0;i=i|0;n=n|0;o=o|0;f=f|0;c=c|0;u=u|0;d=d|0;p=p|0;b=b|0;m=m|0;w=w|0;g=+g;v=v|0;var _=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0,C=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,q=0,H=0,G=0,V=0,W=0,K=0,Y=0,Z=0,$=0,X=0,J=0,Q=0,ee=0,ie=0;ie=l;l=l+16|0;ee=ie;X=ee;s[X>>2]=0;s[X+4>>2]=0;e:do if((c+3|0)<=(f|0)){O=p+28|0;_=s[O>>2]|0;c=_>>>3;_=_-c|0;P=p+32|0;if(!w)c=_;else s[P>>2]=(s[P>>2]|0)+_;s[O>>2]=c;S=p+36|0;M=p+20|0;T=p+40|0;x=p+24|0;R=p+8|0;I=p+4|0;C=p+44|0;while(1){if(c>>>0>=8388609)break e;_=s[P>>2]|0;k=_>>>23;if((k|0)==255)s[S>>2]=(s[S>>2]|0)+1;else{y=_>>>31;c=s[T>>2]|0;if((c|0)>-1){_=s[x>>2]|0;if((_+(s[R>>2]|0)|0)>>>0<(s[I>>2]|0)>>>0){s[x>>2]=_+1;r[(s[p>>2]|0)+_>>0]=c+y;c=0}else c=-1;s[C>>2]=s[C>>2]|c}c=s[S>>2]|0;if(c|0){y=y+255&255;do{_=s[x>>2]|0;if((_+(s[R>>2]|0)|0)>>>0<(s[I>>2]|0)>>>0){s[x>>2]=_+1;r[(s[p>>2]|0)+_>>0]=y;_=0;c=s[S>>2]|0}else _=-1;s[C>>2]=s[C>>2]|_;c=c+-1|0;s[S>>2]=c}while((c|0)!=0)}s[T>>2]=k&255;_=s[P>>2]|0;c=s[O>>2]|0}s[P>>2]=_<<8&2147483392;c=c<<8;s[O>>2]=c;s[M>>2]=(s[M>>2]|0)+8}}while(0);if(!w){Q=+h[17320+(m<<2)>>2];J=+h[17336+(m<<2)>>2]}else{Q=.149993896484375;J=0}Y=e+8|0;Z=p+20|0;$=p+28|0;X=b*3|0;e=(v|0)==0;v=p+32|0;B=p+36|0;U=p+40|0;j=p+24|0;F=p+8|0;q=p+4|0;H=p+44|0;c=0;K=t;while(1){if((K|0)>=(i|0))break;G=te(X,i-K|0)|0;V=(K|0)!=(t|0);W=(K|0)<20;m=0;do{w=K+(te(m,s[Y>>2]|0)|0)|0;A=+h[n+(w<<2)>>2];E=+h[o+(w<<2)>>2];L=J*(E<-9?-9:E);w=ee+(m<<2)|0;N=+h[w>>2];D=A-L-N;_=~~+z(+(D+.5));E=(E<-28?-28:E)-g;if((_|0)<0&A0?0:O}else O=_;k=s[Z>>2]|0;P=s[$>>2]|0;S=k+((re(P|0)|0)+-32)|0;M=f-S|0;y=M-G|0;if((y|0)<24&V){_=(O|0)>1?1:O;if((y|0)<16)_=(_|0)<-1?-1:_}else _=O;_=e|(K|0)<2|(_|0)<0?_:0;e:do if((M|0)<=14)if((M|0)>1){_=(_|0)<-1?-1:(_|0)<1?_:1;y=_<<1^_>>31;S=P>>>2;if((y|0)>0){C=a[29345+(y+-1)>>0]|0;P=P-(te(S,C)|0)|0;s[v>>2]=(s[v>>2]|0)+P;y=te(S,C-(a[29345+y>>0]|0)|0)|0}else y=P-(te(S,a[29345+y>>0]|0)|0)|0;s[$>>2]=y;while(1){if(y>>>0>=8388609)break e;S=s[v>>2]|0;M=S>>>23;if((M|0)==255)s[B>>2]=(s[B>>2]|0)+1;else{S=S>>>31;y=s[U>>2]|0;if((y|0)>-1){k=s[j>>2]|0;if((k+(s[F>>2]|0)|0)>>>0<(s[q>>2]|0)>>>0){s[j>>2]=k+1;r[(s[p>>2]|0)+k>>0]=y+S;y=0}else y=-1;s[H>>2]=s[H>>2]|y}y=s[B>>2]|0;if(y|0){S=S+255&255;do{k=s[j>>2]|0;if((k+(s[F>>2]|0)|0)>>>0<(s[q>>2]|0)>>>0){s[j>>2]=k+1;r[(s[p>>2]|0)+k>>0]=S;k=0;y=s[B>>2]|0}else k=-1;s[H>>2]=s[H>>2]|k;y=y+-1|0;s[B>>2]=y}while((y|0)!=0)}s[U>>2]=M&255;S=s[v>>2]|0;y=s[$>>2]|0;k=s[Z>>2]|0}s[v>>2]=S<<8&2147483392;y=y<<8;s[$>>2]=y;k=k+8|0;s[Z>>2]=k}}else{if((S|0)>=(f|0)){_=-1;break}S=P>>>1;y=P-S|0;if((_|0)>-1)_=0;else{s[v>>2]=(s[v>>2]|0)+y;y=S}s[$>>2]=y;while(1){if(y>>>0>=8388609)break e;S=s[v>>2]|0;M=S>>>23;if((M|0)==255)s[B>>2]=(s[B>>2]|0)+1;else{S=S>>>31;y=s[U>>2]|0;if((y|0)>-1){k=s[j>>2]|0;if((k+(s[F>>2]|0)|0)>>>0<(s[q>>2]|0)>>>0){s[j>>2]=k+1;r[(s[p>>2]|0)+k>>0]=y+S;y=0}else y=-1;s[H>>2]=s[H>>2]|y}y=s[B>>2]|0;if(y|0){S=S+255&255;do{k=s[j>>2]|0;if((k+(s[F>>2]|0)|0)>>>0<(s[q>>2]|0)>>>0){s[j>>2]=k+1;r[(s[p>>2]|0)+k>>0]=S;k=0;y=s[B>>2]|0}else k=-1;s[H>>2]=s[H>>2]|k;y=y+-1|0;s[B>>2]=y}while((y|0)!=0)}s[U>>2]=M&255;S=s[v>>2]|0;y=s[$>>2]|0;k=s[Z>>2]|0}s[v>>2]=S<<8&2147483392;y=y<<8;s[$>>2]=y;k=k+8|0;s[Z>>2]=k}}else{M=(W?K:20)<<1;y=(a[u+M>>0]|0)<<7;M=(a[u+(M|1)>>0]|0)<<6;if(_){I=_>>31;T=_+I^I;S=te(32736-y|0,16384-M|0)|0;x=y;R=1;while(1){y=S>>>15;if(!y){C=36;break}if((T|0)<=(R|0)){C=37;break}C=y<<1;S=te(C,M)|0;x=x+(C+2)|0;R=R+1|0}if((C|0)==36){C=0;M=T-R|0;_=(32768-x-I>>1)+-1|0;_=(M|0)<(_|0)?M:_;M=x+((_<<1|1)+I)|0;y=32768-M|0;y=y>>>0>1?1:y;_=R+_+I^I}else if((C|0)==37){C=0;M=y+1|0;y=M;M=x+(M&~I)|0}S=P>>>15;if(!M)C=40;else{P=P-(te(S,32768-M|0)|0)|0;s[v>>2]=(s[v>>2]|0)+P;y=te(S,y)|0}}else{S=P>>>15;_=0;C=40}if((C|0)==40)y=P-(te(S,32768-y|0)|0)|0;s[$>>2]=y;S=y;y=k;while(1){if(S>>>0>=8388609)break e;k=s[v>>2]|0;M=k>>>23;if((M|0)==255)s[B>>2]=(s[B>>2]|0)+1;else{S=k>>>31;y=s[U>>2]|0;if((y|0)>-1){k=s[j>>2]|0;if((k+(s[F>>2]|0)|0)>>>0<(s[q>>2]|0)>>>0){s[j>>2]=k+1;r[(s[p>>2]|0)+k>>0]=y+S;y=0}else y=-1;s[H>>2]=s[H>>2]|y}y=s[B>>2]|0;if(y|0){S=S+255&255;do{k=s[j>>2]|0;if((k+(s[F>>2]|0)|0)>>>0<(s[q>>2]|0)>>>0){s[j>>2]=k+1;r[(s[p>>2]|0)+k>>0]=S;k=0;y=s[B>>2]|0}else k=-1;s[H>>2]=s[H>>2]|k;y=y+-1|0;s[B>>2]=y}while((y|0)!=0)}s[U>>2]=M&255;k=s[v>>2]|0;S=s[$>>2]|0;y=s[Z>>2]|0}s[v>>2]=k<<8&2147483392;S=S<<8;s[$>>2]=S;y=y+8|0;s[Z>>2]=y}}while(0);A=+(_|0);h[d+(K+(te(m,s[Y>>2]|0)|0)<<2)>>2]=D-A;O=O-_|0;c=c+((O|0)>-1?O:0-O|0)|0;h[o+(K+(te(m,s[Y>>2]|0)|0)<<2)>>2]=L+N+A;h[w>>2]=N+A-Q*A;m=m+1|0}while((m|0)<(b|0));K=K+1|0}l=ie;return(e?c:0)|0}function Ti(e,t,i,o,f,h,c,u,d,p,b,m,w,g,v,_,y,k,E){e=e|0;t=t|0;i=i|0;o=o|0;f=f|0;h=h|0;c=c|0;u=u|0;d=d|0;p=p|0;b=b|0;m=m|0;w=w|0;g=g|0;v=v|0;_=_|0;y=y|0;k=k|0;E=E|0;var A=0,S=0,M=0,T=0,x=0,R=0,I=0,C=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,q=0,H=0,G=0,V=0,W=0,K=0,Y=0,Z=0,$=0,X=0,J=0,Q=0,ee=0,ie=0;ie=l;d=(d|0)>0?d:0;P=s[e+8>>2]|0;z=(d|0)>7?8:0;d=d-z|0;ee=(g|0)==2;if(ee?(A=a[29348+(i-t)>>0]|0,(d|0)>=(A|0)):0){d=d-A|0;K=(d|0)>7?8:0;d=d-K|0}else{K=0;A=0}B=l;l=l+((1*(P<<2)|0)+15&-16)|0;U=l;l=l+((1*(P<<2)|0)+15&-16)|0;F=l;l=l+((1*(P<<2)|0)+15&-16)|0;L=l;l=l+((1*(P<<2)|0)+15&-16)|0;J=g<<3;Q=e+32|0;h=h+-5-v|0;S=v+3|0;M=t;while(1){if((M|0)>=(i|0))break;$=M+1|0;Z=s[Q>>2]|0;Z=(n[Z+($<<1)>>1]|0)-(n[Z+(M<<1)>>1]|0)|0;Y=Z*3<>4;s[F+(M<<2)>>2]=(J|0)>(Y|0)?J:Y;Y=(te(te(te(Z,g)|0,h)|0,i-M+-1|0)|0)<>6;s[L+(M<<2)>>2]=Y-((Z<>2]|0;N=e+52|0;C=O+-1|0;D=1;do{x=D+C>>1;R=te(x,P)|0;I=0;h=i;S=0;e:while(1){t:while(1){T=h;do{h=T;T=T+-1|0;if((h|0)<=(t|0))break e;$=s[Q>>2]|0;h=te((n[$+(h<<1)>>1]|0)-(n[$+(T<<1)>>1]|0)|0,g)|0;h=(te(h,a[(s[N>>2]|0)+(R+T)>>0]|0)|0)<>2;if((h|0)>0){h=h+(s[L+(T<<2)>>2]|0)|0;h=(h|0)<0?0:h}M=h+(s[o+(T<<2)>>2]|0)|0;if((M|0)>=(s[F+(T<<2)>>2]|0)|I)break t}while((M|0)<(J|0));h=T;S=S+J|0}$=s[f+(T<<2)>>2]|0;I=1;h=T;S=S+((M|0)<($|0)?M:$)|0}$=(S|0)>(d|0);D=$?D:x+1|0;C=$?x+-1|0:C}while((D|0)<=(C|0));C=te(D+-1|0,P)|0;T=te(D,P)|0;x=(D|0)>1;I=t;j=t;while(1){if((I|0)>=(i|0))break;R=I+1|0;h=s[Q>>2]|0;h=te((n[h+(R<<1)>>1]|0)-(n[h+(I<<1)>>1]|0)|0,g)|0;S=s[N>>2]|0;M=(te(h,a[S+(C+I)>>0]|0)|0)<>2;if((D|0)<(O|0))h=(te(h,a[S+(T+I)>>0]|0)|0)<>2;else h=s[f+(I<<2)>>2]|0;if((M|0)>0){S=M+(s[L+(I<<2)>>2]|0)|0;S=(S|0)<0?0:S}else S=M;if((h|0)>0){h=h+(s[L+(I<<2)>>2]|0)|0;h=(h|0)<0?0:h}$=s[o+(I<<2)>>2]|0;Z=S+(x?$:0)|0;Y=h+$|0;$=($|0)>0?I:j;s[B+(I<<2)>>2]=Z;s[U+(I<<2)>>2]=(Y|0)<(Z|0)?0:Y-Z|0;I=R;j=$}Y=(g|0)>1;$=Y&1;R=64;I=0;C=0;while(1){if((I|0)==6)break;T=C+R>>1;x=0;h=i;S=0;e:while(1){t:while(1){do{Z=h;h=h+-1|0;if((Z|0)<=(t|0))break e;M=(s[B+(h<<2)>>2]|0)+((te(T,s[U+(h<<2)>>2]|0)|0)>>6)|0;if((M|0)>=(s[F+(h<<2)>>2]|0)|x)break t}while((M|0)<(J|0));S=S+J|0}Z=s[f+(h<<2)>>2]|0;x=1;S=S+((M|0)<(Z|0)?M:Z)|0}Z=(S|0)>(d|0);R=Z?T:R;I=I+1|0;C=Z?C:T}Z=v<<3;S=0;M=i;T=0;while(1){h=M+-1|0;if((M|0)<=(t|0))break;V=(s[B+(h<<2)>>2]|0)+((te(C,s[U+(h<<2)>>2]|0)|0)>>6)|0;M=(S|0)==0?(V|0)<(s[F+(h<<2)>>2]|0):0;V=M?(V|0)<(J|0)?0:J:V;W=s[f+(h<<2)>>2]|0;W=(V|0)<(W|0)?V:W;s[b+(h<<2)>>2]=W;S=M&1^1;M=h;T=T+W|0}O=J+8|0;N=(y|0)==0;U=_+28|0;y=_+32|0;q=_+20|0;H=_+40|0;G=_+24|0;V=_+4|0;P=t+2|0;D=_+36|0;L=_+8|0;o=_+44|0;W=i;B=T;e:while(1){I=W+-1|0;if((I|0)<=(j|0)){X=45;break}x=d-B|0;h=s[Q>>2]|0;C=n[h+(W<<1)>>1]|0;M=n[h+(t<<1)>>1]|0;S=C-M|0;R=(x>>>0)/(S>>>0)|0;S=x-(te(S,R)|0)|0;h=n[h+(I<<1)>>1]|0;M=S+(M-h)|0;h=C-h|0;C=b+(I<<2)|0;S=s[C>>2]|0;M=S+(te(R,h)|0)+((M|0)>0?M:0)|0;R=s[F+(I<<2)>>2]|0;if((M|0)<(((R|0)>(O|0)?R:O)|0)){T=S;S=B}else{t:do if(N){h=s[U>>2]|0;T=s[y>>2]|0;S=h>>>1;R=T>>>0>>0;if(R)h=T;else{x=T-S|0;s[y>>2]=x;S=h-S|0;h=x}s[U>>2]=S;while(1){if(S>>>0>=8388609)break;s[q>>2]=(s[q>>2]|0)+8;S=S<<8;s[U>>2]=S;x=s[H>>2]|0;T=s[G>>2]|0;if(T>>>0<(s[V>>2]|0)>>>0){s[G>>2]=T+1;T=a[(s[_>>2]|0)+T>>0]|0}else T=0;s[H>>2]=T;x=((x<<8|T)>>>1&255|h<<8&2147483392)^255;s[y>>2]=x;h=x}if(R)break e}else{if((W|0)<=(P|0)){X=50;break e}if(!((I|0)>(E|0)?1:(M|0)<=((te((W|0)<=(k|0)?7:9,h)|0)<>4|0))){X=50;break e}h=s[U>>2]|0;h=h-(h>>>1)|0;s[U>>2]=h;while(1){if(h>>>0>=8388609)break t;S=s[y>>2]|0;x=S>>>23;if((x|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{T=S>>>31;h=s[H>>2]|0;if((h|0)>-1){S=s[G>>2]|0;if((S+(s[L>>2]|0)|0)>>>0<(s[V>>2]|0)>>>0){s[G>>2]=S+1;r[(s[_>>2]|0)+S>>0]=h+T;h=0}else h=-1;s[o>>2]=s[o>>2]|h}h=s[D>>2]|0;if(h|0){T=T+255&255;do{S=s[G>>2]|0;if((S+(s[L>>2]|0)|0)>>>0<(s[V>>2]|0)>>>0){s[G>>2]=S+1;r[(s[_>>2]|0)+S>>0]=T;S=0;h=s[D>>2]|0}else S=-1;s[o>>2]=s[o>>2]|S;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[H>>2]=x&255;S=s[y>>2]|0;h=s[U>>2]|0}s[y>>2]=S<<8&2147483392;h=h<<8;s[U>>2]=h;s[q>>2]=(s[q>>2]|0)+8}}while(0);T=s[C>>2]|0;M=M+-8|0;S=B+8|0}if((A|0)>0)h=a[29348+(I-t)>>0]|0;else h=A;W=(M|0)<(J|0);B=S-(T+A)+h+(W?0:J)|0;s[C>>2]=W?0:J;A=h;W=I}e:do if((X|0)==45)d=d+z|0;else if((X|0)==50){S=s[U>>2]|0;h=S>>>1;S=(s[y>>2]|0)+(S-h)|0;s[y>>2]=S;s[U>>2]=h;while(1){if(h>>>0>=8388609)break e;T=S>>>23;if((T|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{M=S>>>31;h=s[H>>2]|0;if((h|0)>-1){S=s[G>>2]|0;if((S+(s[L>>2]|0)|0)>>>0<(s[V>>2]|0)>>>0){s[G>>2]=S+1;r[(s[_>>2]|0)+S>>0]=h+M;h=0}else h=-1;s[o>>2]=s[o>>2]|h}h=s[D>>2]|0;if(h|0){M=M+255&255;do{S=s[G>>2]|0;if((S+(s[L>>2]|0)|0)>>>0<(s[V>>2]|0)>>>0){s[G>>2]=S+1;r[(s[_>>2]|0)+S>>0]=M;S=0;h=s[D>>2]|0}else S=-1;s[o>>2]=s[o>>2]|S;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[H>>2]=T&255;S=s[y>>2]|0;h=s[U>>2]|0}S=S<<8&2147483392;s[y>>2]=S;h=h<<8;s[U>>2]=h;s[q>>2]=(s[q>>2]|0)+8}}while(0);e:do if((A|0)>0){if(N){s[c>>2]=(ci(_,W+1-t|0)|0)+t;break}S=s[c>>2]|0;S=(S|0)<(W|0)?S:W;s[c>>2]=S;x=S-t|0;M=W+1-t|0;h=M+-1|0;A=32-(re(h|0)|0)|0;if((A|0)<=8){h=s[U>>2]|0;A=(h>>>0)/(M>>>0)|0;if((S|0)==(t|0))A=h-(te(A,M-(x+1)|0)|0)|0;else{E=h-(te(A,M-x|0)|0)|0;s[y>>2]=(s[y>>2]|0)+E}s[U>>2]=A;while(1){if(A>>>0>=8388609)break e;h=s[y>>2]|0;M=h>>>23;if((M|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{S=h>>>31;A=s[H>>2]|0;if((A|0)>-1){h=s[G>>2]|0;if((h+(s[L>>2]|0)|0)>>>0<(s[V>>2]|0)>>>0){s[G>>2]=h+1;r[(s[_>>2]|0)+h>>0]=A+S;A=0}else A=-1;s[o>>2]=s[o>>2]|A}A=s[D>>2]|0;if(A|0){S=S+255&255;do{h=s[G>>2]|0;if((h+(s[L>>2]|0)|0)>>>0<(s[V>>2]|0)>>>0){s[G>>2]=h+1;r[(s[_>>2]|0)+h>>0]=S;h=0;A=s[D>>2]|0}else h=-1;s[o>>2]=s[o>>2]|h;A=A+-1|0;s[D>>2]=A}while((A|0)!=0)}s[H>>2]=M&255;h=s[y>>2]|0;A=s[U>>2]|0}s[y>>2]=h<<8&2147483392;A=A<<8;s[U>>2]=A;s[q>>2]=(s[q>>2]|0)+8}}P=A+-8|0;h=h>>>P;S=h+1|0;M=x>>>P;T=s[U>>2]|0;A=(T>>>0)/(S>>>0)|0;if(!M)A=T-(te(A,h)|0)|0;else{E=T-(te(A,S-M|0)|0)|0;s[y>>2]=(s[y>>2]|0)+E}s[U>>2]=A;while(1){if(A>>>0>=8388609)break;h=s[y>>2]|0;M=h>>>23;if((M|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{S=h>>>31;A=s[H>>2]|0;if((A|0)>-1){h=s[G>>2]|0;if((h+(s[L>>2]|0)|0)>>>0<(s[V>>2]|0)>>>0){s[G>>2]=h+1;r[(s[_>>2]|0)+h>>0]=A+S;A=0}else A=-1;s[o>>2]=s[o>>2]|A}A=s[D>>2]|0;if(A|0){S=S+255&255;do{h=s[G>>2]|0;if((h+(s[L>>2]|0)|0)>>>0<(s[V>>2]|0)>>>0){s[G>>2]=h+1;r[(s[_>>2]|0)+h>>0]=S;h=0;A=s[D>>2]|0}else h=-1;s[o>>2]=s[o>>2]|h;A=A+-1|0;s[D>>2]=A}while((A|0)!=0)}s[H>>2]=M&255;h=s[y>>2]|0;A=s[U>>2]|0}s[y>>2]=h<<8&2147483392;A=A<<8;s[U>>2]=A;s[q>>2]=(s[q>>2]|0)+8}R=(1<>2]|0;C=_+16|0;h=s[C>>2]|0;if((h+P|0)>>>0>32){T=7-h|0;T=h+((T|0)>-8?T:-8)&-8;x=h;do{S=s[L>>2]|0;M=s[V>>2]|0;if(((s[G>>2]|0)+S|0)>>>0>>0){S=S+1|0;s[L>>2]=S;r[(s[_>>2]|0)+(M-S)>>0]=A;S=0}else S=-1;s[o>>2]=s[o>>2]|S;A=A>>>8;x=x+-8|0}while((x|0)>7);h=h+-8-T|0}s[I>>2]=A|R<>2]=h+P;s[q>>2]=(s[q>>2]|0)+P}else s[c>>2]=0;while(0);e:do if((s[c>>2]|0)>(t|0))if(!K)X=169;else{if(N){A=s[U>>2]|0;S=s[y>>2]|0;h=A>>>1;K=S>>>0>>0;T=K&1;if(K)A=S;else{K=S-h|0;s[y>>2]=K;h=A-h|0;A=K}s[U>>2]=h;while(1){if(h>>>0>=8388609)break;s[q>>2]=(s[q>>2]|0)+8;h=h<<8;s[U>>2]=h;M=s[H>>2]|0;S=s[G>>2]|0;if(S>>>0<(s[V>>2]|0)>>>0){s[G>>2]=S+1;S=a[(s[_>>2]|0)+S>>0]|0}else S=0;s[H>>2]=S;K=((M<<8|S)>>>1&255|A<<8&2147483392)^255;s[y>>2]=K;A=K}s[u>>2]=T;break}h=s[U>>2]|0;A=h>>>1;h=h-A|0;if(!(s[u>>2]|0))A=h;else s[y>>2]=(s[y>>2]|0)+h;s[U>>2]=A;while(1){if(A>>>0>=8388609)break e;h=s[y>>2]|0;M=h>>>23;if((M|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{S=h>>>31;A=s[H>>2]|0;if((A|0)>-1){h=s[G>>2]|0;if((h+(s[L>>2]|0)|0)>>>0<(s[V>>2]|0)>>>0){s[G>>2]=h+1;r[(s[_>>2]|0)+h>>0]=A+S;A=0}else A=-1;s[o>>2]=s[o>>2]|A}A=s[D>>2]|0;if(A|0){S=S+255&255;do{h=s[G>>2]|0;if((h+(s[L>>2]|0)|0)>>>0<(s[V>>2]|0)>>>0){s[G>>2]=h+1;r[(s[_>>2]|0)+h>>0]=S;h=0;A=s[D>>2]|0}else h=-1;s[o>>2]=s[o>>2]|h;A=A+-1|0;s[D>>2]=A}while((A|0)!=0)}s[H>>2]=M&255;h=s[y>>2]|0;A=s[U>>2]|0}s[y>>2]=h<<8&2147483392;A=A<<8;s[U>>2]=A;s[q>>2]=(s[q>>2]|0)+8}}else{d=d+K|0;X=169}while(0);if((X|0)==169)s[u>>2]=0;h=d-B|0;S=s[Q>>2]|0;S=(n[S+(W<<1)>>1]|0)-(n[S+(t<<1)>>1]|0)|0;d=(h>>>0)/(S>>>0)|0;S=te(S,d)|0;A=t;while(1){if((A|0)>=(W|0))break;X=A+1|0;K=s[Q>>2]|0;K=te(d,(n[K+(X<<1)>>1]|0)-(n[K+(A<<1)>>1]|0)|0)|0;_=b+(A<<2)|0;s[_>>2]=(s[_>>2]|0)+K;A=X}A=t;d=h-S|0;while(1){if((A|0)>=(W|0))break;_=A+1|0;X=s[Q>>2]|0;X=(n[X+(_<<1)>>1]|0)-(n[X+(A<<1)>>1]|0)|0;X=(d|0)<(X|0)?d:X;K=b+(A<<2)|0;s[K>>2]=(s[K>>2]|0)+X;A=_;d=d-X|0}O=e+56|0;C=Y?4:3;P=0;while(1){if((t|0)>=(W|0))break;I=t+1|0;M=s[Q>>2]|0;M=(n[M+(I<<1)>>1]|0)-(n[M+(t<<1)>>1]|0)<>2]|0)+P|0;if((M|0)>1){d=s[f+(t<<2)>>2]|0;d=(A|0)>(d|0)?A-d|0:0;T=A-d|0;s[R>>2]=T;A=te(M,g)|0;if(ee&(M|0)>2?(s[u>>2]|0)==0:0)h=(t|0)<(s[c>>2]|0);else h=0;x=A+(h&1)|0;S=te(x,(n[(s[O>>2]|0)+(t<<1)>>1]|0)+Z|0)|0;A=(S>>1)+(te(x,-21)|0)|0;if((M|0)==2)A=A+(x<<3>>2)|0;h=T+A|0;if((h|0)>=(x<<4|0))if((h|0)<(x*24|0))M=A+(S>>3)|0;else M=A;else M=A+(S>>2)|0;A=T+M+(x<<2)|0;A=((((A|0)<0?0:A)>>>0)/(x>>>0)|0)>>>3;S=m+(t<<2)|0;s[S>>2]=A;e=te(A,g)|0;h=s[R>>2]|0;if((e|0)>(h>>3|0)){A=h>>$>>3;s[S>>2]=A}e=(A|0)<8?A:8;s[S>>2]=e;e=te(e,x<<3)|0;s[w+(t<<2)>>2]=(e|0)>=((s[R>>2]|0)+M|0)&1;e=(te(s[S>>2]|0,g)|0)<<3;s[R>>2]=(s[R>>2]|0)-e}else{d=(A|0)<(J|0)?0:A-J|0;s[R>>2]=A-d;s[m+(t<<2)>>2]=0;s[w+(t<<2)>>2]=1}if((d|0)<=0){P=d;t=I;continue}Y=d>>C;X=m+(t<<2)|0;_=s[X>>2]|0;e=8-_|0;e=(Y|0)<(e|0)?Y:e;s[X>>2]=_+e;e=(te(e,g)|0)<<3;s[w+(t<<2)>>2]=(e|0)>=(d-P|0)&1;P=d-e|0;t=I}s[p>>2]=P;while(1){if((t|0)>=(i|0))break;u=b+(t<<2)|0;c=m+(t<<2)|0;s[c>>2]=s[u>>2]>>$>>3;s[u>>2]=0;s[w+(t<<2)>>2]=(s[c>>2]|0)<1&1;t=t+1|0}l=ie;return W|0}function xi(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var n=0,a=0,o=0,f=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0;v=l;w=l;l=l+((1*(r<<2)|0)+15&-16)|0;g=l;l=l+((1*(r<<2)|0)+15&-16)|0;n=0;do{m=e+(n<<2)|0;p=+h[m>>2];s[g+(n<<2)>>2]=p<0&1;h[m>>2]=+q(+p);s[t+(n<<2)>>2]=0;h[w+(n<<2)>>2]=0;n=n+1|0}while((n|0)<(r|0));if((r>>1|0)<(i|0)){n=0;a=0;do{a=a+ +h[e+(n<<2)>>2];n=n+1|0}while((n|0)<(r|0));if(!(a>1.0000000036274937e-15&a<64)){h[e>>2]=1;n=1;do{h[e+(n<<2)>>2]=0;n=n+1|0}while((n|0)<(r|0));a=1}f=(+(i|0)+.8)*(1/a);c=0;n=i;o=0;a=0;do{b=e+(c<<2)|0;m=~~+z(+(f*+h[b>>2]));s[t+(c<<2)>>2]=m;p=+(m|0);a=a+p*p;o=o+ +h[b>>2]*p;h[w+(c<<2)>>2]=p*2;n=n-m|0;c=c+1|0}while((c|0)<(r|0))}else{n=i;o=0;a=0}if((n|0)>(r+3|0)){p=+(n|0);a=a+p*p+p*+h[w>>2];s[t>>2]=(s[t>>2]|0)+n;n=0}m=0;while(1){if((m|0)>=(n|0)){n=0;break}a=a+1;p=o+ +h[e>>2];d=a+ +h[w>>2];c=0;p=p*p;b=1;while(1){u=o+ +h[e+(b<<2)>>2];f=a+ +h[w+(b<<2)>>2];u=u*u;i=d*u>f*p;c=i?b:c;b=b+1|0;if((b|0)>=(r|0))break;else{d=i?f:d;p=i?u:p}}d=+h[e+(c<<2)>>2];b=w+(c<<2)|0;p=+h[b>>2];h[b>>2]=p+2;b=t+(c<<2)|0;s[b>>2]=(s[b>>2]|0)+1;m=m+1|0;o=o+d;a=a+p}do{e=t+(n<<2)|0;w=s[g+(n<<2)>>2]|0;s[e>>2]=(s[e>>2]^0-w)+w;n=n+1|0}while((n|0)<(r|0));l=v;return+a}function Ri(e,t,i,n,a,o,f,c){e=e|0;t=t|0;i=i|0;n=n|0;a=a|0;o=o|0;f=+f;c=c|0;var u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0;I=l;R=l;l=l+((1*(t+3<<2)|0)+15&-16)|0;Ii(e,t,1,a,i,n);d=+xi(e,R,i,t);b=t+-1|0;w=s[R+(b<<2)>>2]|0;u=w>>>31;w=(w|0)>-1?w:0-w|0;while(1){m=b;b=b+-1|0;p=t-b|0;u=u+(s[(s[17748+(((p|0)<(w|0)?p:w)<<2)>>2]|0)+(((p|0)>(w|0)?p:w)<<2)>>2]|0)|0;x=s[R+(b<<2)>>2]|0;w=w+((x|0)>-1?x:0-x|0)|0;if((x|0)<0){T=w+1|0;T=u+(s[(s[17748+(((p|0)>(w|0)?T:p)<<2)>>2]|0)+(((p|0)>(T|0)?p:T)<<2)>>2]|0)|0}else T=u;if((m|0)<=1)break;else u=T}p=(t|0)>(i|0);b=i+1|0;b=(s[(s[17748+(((t|0)<(i|0)?t:i)<<2)>>2]|0)+((p?t:i)<<2)>>2]|0)+(s[(s[17748+((p?b:t)<<2)>>2]|0)+(((b|0)<(t|0)?t:b)<<2)>>2]|0)|0;p=b+-1|0;u=32-(re(p|0)|0)|0;e:do if((u|0)>8){x=u+-8|0;u=p>>>x;p=u+1|0;b=T>>>x;y=o+28|0;m=s[y>>2]|0;w=(m>>>0)/(p>>>0)|0;if(!b){w=m-(te(w,u)|0)|0;s[y>>2]=w;_=o+32|0}else{M=m-(te(w,p-b|0)|0)|0;_=o+32|0;s[_>>2]=(s[_>>2]|0)+M;s[y>>2]=w}g=o+36|0;M=o+20|0;v=o+40|0;k=o+24|0;E=o+8|0;A=o+4|0;S=o+44|0;while(1){if(w>>>0>=8388609)break;u=s[_>>2]|0;m=u>>>23;if((m|0)==255)s[g>>2]=(s[g>>2]|0)+1;else{b=u>>>31;u=s[v>>2]|0;if((u|0)>-1){p=s[k>>2]|0;if((p+(s[E>>2]|0)|0)>>>0<(s[A>>2]|0)>>>0){s[k>>2]=p+1;r[(s[o>>2]|0)+p>>0]=u+b;u=0}else u=-1;s[S>>2]=s[S>>2]|u}u=s[g>>2]|0;if(u|0){b=b+255&255;do{p=s[k>>2]|0;if((p+(s[E>>2]|0)|0)>>>0<(s[A>>2]|0)>>>0){s[k>>2]=p+1;r[(s[o>>2]|0)+p>>0]=b;p=0;u=s[g>>2]|0}else p=-1;s[S>>2]=s[S>>2]|p;u=u+-1|0;s[g>>2]=u}while((u|0)!=0)}s[v>>2]=m&255;u=s[_>>2]|0;w=s[y>>2]|0}s[_>>2]=u<<8&2147483392;w=w<<8;s[y>>2]=w;s[M>>2]=(s[M>>2]|0)+8}v=(1<>2]|0;y=o+16|0;p=s[y>>2]|0;if((p+x|0)>>>0>32){w=7-p|0;w=p+((w|0)>-8?w:-8)&-8;g=p;do{b=s[E>>2]|0;m=s[A>>2]|0;if(((s[k>>2]|0)+b|0)>>>0>>0){b=b+1|0;s[E>>2]=b;r[(s[o>>2]|0)+(m-b)>>0]=u;b=0}else b=-1;s[S>>2]=s[S>>2]|b;u=u>>>8;g=g+-8|0}while((g|0)>7);p=p+-8-w|0}s[_>>2]=u|v<>2]=p+x;s[M>>2]=(s[M>>2]|0)+x}else{S=o+28|0;u=s[S>>2]|0;p=(u>>>0)/(b>>>0)|0;if(!T){p=u-(te(p,b+-1|0)|0)|0;s[S>>2]=p;A=o+32|0}else{x=u-(te(p,b-T|0)|0)|0;A=o+32|0;s[A>>2]=(s[A>>2]|0)+x;s[S>>2]=p}w=o+36|0;g=o+20|0;v=o+40|0;_=o+24|0;y=o+8|0;k=o+4|0;E=o+44|0;while(1){if(p>>>0>=8388609)break e;u=s[A>>2]|0;m=u>>>23;if((m|0)==255)s[w>>2]=(s[w>>2]|0)+1;else{b=u>>>31;u=s[v>>2]|0;if((u|0)>-1){p=s[_>>2]|0;if((p+(s[y>>2]|0)|0)>>>0<(s[k>>2]|0)>>>0){s[_>>2]=p+1;r[(s[o>>2]|0)+p>>0]=u+b;u=0}else u=-1;s[E>>2]=s[E>>2]|u}u=s[w>>2]|0;if(u|0){b=b+255&255;do{p=s[_>>2]|0;if((p+(s[y>>2]|0)|0)>>>0<(s[k>>2]|0)>>>0){s[_>>2]=p+1;r[(s[o>>2]|0)+p>>0]=b;p=0;u=s[w>>2]|0}else p=-1;s[E>>2]=s[E>>2]|p;u=u+-1|0;s[w>>2]=u}while((u|0)!=0)}s[v>>2]=m&255;u=s[A>>2]|0;p=s[S>>2]|0}s[A>>2]=u<<8&2147483392;p=p<<8;s[S>>2]=p;s[g>>2]=(s[g>>2]|0)+8}}while(0);if(c|0){d=1/+H(+d)*f;u=0;do{h[e+(u<<2)>>2]=d*+(s[R+(u<<2)>>2]|0);u=u+1|0}while((u|0)<(t|0));Ii(e,t,-1,a,i,n)}if((a|0)<2){a=1;l=I;return a|0}w=(t>>>0)/(a>>>0)|0;u=0;g=0;do{p=te(g,w)|0;b=0;m=0;do{m=m|s[R+(p+b<<2)>>2];b=b+1|0}while((b|0)<(w|0));u=u|((m|0)!=0&1)<=(t|0)|(a|0)==0)return;y=+(t|0)/+((te(s[17352+(a+-1<<2)>>2]|0,n)|0)+t|0);y=y*y*.5;_=+V(+(y*1.5707963705062866));y=+V(+((1-y)*1.5707963705062866));e:do if((r<<3|0)>(t|0))a=0;else{n=r>>2;a=1;while(1){if(((te((te(a,a)|0)+a|0,r)|0)+n|0)>=(t|0))break e;a=a+1|0}}while(0);v=(t>>>0)/(r>>>0)|0;o=(i|0)<0;f=(a|0)==0;c=-y;l=v+-1|0;u=v+-3|0;d=v+-2|0;p=-_;b=v-a|0;m=v-(a<<1)|0;w=m+-1|0;g=0;while(1){if((g|0)>=(r|0))break;i=e+((te(g,v)|0)<<2)|0;e:do if(!o){n=i;t=0;while(1){if((t|0)>=(l|0))break;A=+h[n>>2];k=n+4|0;E=+h[k>>2];h[k>>2]=E*_+A*c;h[n>>2]=A*_+E*y;n=k;t=t+1|0}n=i+(u<<2)|0;t=d;while(1){if((t|0)<=0)break;E=+h[n>>2];k=n+4|0;A=+h[k>>2];h[k>>2]=A*_+E*c;h[n>>2]=E*_+A*y;n=n+-4|0;t=t+-1|0}if(!f){n=i;t=0;while(1){if((t|0)>=(b|0))break;E=+h[n>>2];k=n+(a<<2)|0;A=+h[k>>2];h[k>>2]=A*y+E*p;h[n>>2]=E*y+A*_;n=n+4|0;t=t+1|0}n=i+(w<<2)|0;t=m;while(1){if((t|0)<=0)break e;E=+h[n>>2];k=n+(a<<2)|0;A=+h[k>>2];h[k>>2]=A*y+E*p;h[n>>2]=E*y+A*_;n=n+-4|0;t=t+-1|0}}}else{t:do if(f){n=i;t=0}else{n=i;t=0;while(1){if((t|0)>=(b|0))break;E=+h[n>>2];k=n+(a<<2)|0;A=+h[k>>2];h[k>>2]=A*y+E*_;h[n>>2]=E*y+A*p;n=n+4|0;t=t+1|0}n=i+(w<<2)|0;t=m;while(1){if((t|0)<=0){n=i;t=0;break t}E=+h[n>>2];k=n+(a<<2)|0;A=+h[k>>2];h[k>>2]=A*y+E*_;h[n>>2]=E*y+A*p;n=n+-4|0;t=t+-1|0}}while(0);while(1){if((t|0)>=(l|0))break;E=+h[n>>2];k=n+4|0;A=+h[k>>2];h[k>>2]=A*_+E*y;h[n>>2]=E*_+A*c;n=k;t=t+1|0}n=i+(u<<2)|0;t=d;while(1){if((t|0)<=0)break e;E=+h[n>>2];k=n+4|0;A=+h[k>>2];h[k>>2]=A*_+E*y;h[n>>2]=E*_+A*c;n=n+-4|0;t=t+-1|0}}while(0);g=g+1|0}return}function Ci(e,t,i,r,n,a,o){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;a=a|0;o=+o;var f=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0;_=l;v=l;l=l+((1*(t<<2)|0)+15&-16)|0;g=(t|0)>(i|0);p=i+1|0;m=t;w=i;p=ci(a,(s[(s[17748+(((t|0)<(i|0)?t:i)<<2)>>2]|0)+((g?t:i)<<2)>>2]|0)+(s[(s[17748+((g?p:t)<<2)>>2]|0)+(((p|0)<(t|0)?t:p)<<2)>>2]|0)|0)|0;g=v;f=0;while(1){if((m|0)<=2)break;do if((w|0)<(m|0)){a=s[(s[17748+(w<<2)>>2]|0)+(m<<2)>>2]|0;c=s[(s[17748+(w+1<<2)>>2]|0)+(m<<2)>>2]|0;if(p>>>0>=a>>>0&p>>>0>>0){s[g>>2]=0;c=p-a|0;a=w;break}d=p>>>0>=c>>>0;c=p-(d?c:0)|0;a=w;do{a=a+-1|0;u=s[(s[17748+(a<<2)>>2]|0)+(m<<2)>>2]|0}while(c>>>0>>0);b=d<<31>>31;w=w-a+b^b;s[g>>2]=w<<16>>16;y=+((w&65535)<<16>>16);c=c-u|0;f=f+y*y}else{u=s[17748+(m<<2)>>2]|0;d=s[u+(w+1<<2)>>2]|0;c=p>>>0>=d>>>0;b=c<<31>>31;d=p-(c?d:0)|0;e:do if((s[u+(m<<2)>>2]|0)>>>0>d>>>0){a=m;do{a=a+-1|0;c=s[(s[17748+(a<<2)>>2]|0)+(m<<2)>>2]|0}while(c>>>0>d>>>0)}else{a=w;while(1){c=s[u+(a<<2)>>2]|0;if(c>>>0<=d>>>0)break e;a=a+-1|0}}while(0);w=w-a+b^b;s[g>>2]=w<<16>>16;y=+((w&65535)<<16>>16);c=d-c|0;f=f+y*y}while(0);m=m+-1|0;w=a;p=c;g=g+4|0}a=w<<1|1;c=p>>>0>=a>>>0;u=c<<31>>31;a=p-(c?a:0)|0;c=(a+1|0)>>>1;if(c)a=a-((c<<1)+-1)|0;w=w-c+u^u;s[g>>2]=w<<16>>16;k=+((w&65535)<<16>>16);a=c-a^0-a;s[g+4>>2]=a<<16>>16;y=+((a&65535)<<16>>16);f=1/+H(+(f+k*k+y*y))*o;a=0;do{h[e+(a<<2)>>2]=f*+(s[v+(a<<2)>>2]|0);a=a+1|0}while((a|0)<(t|0));Ii(e,t,-1,n,i,r);if((n|0)<2){n=1;l=_;return n|0}p=(t>>>0)/(n>>>0)|0;a=0;b=0;do{c=te(b,p)|0;u=0;d=0;do{d=d|s[v+(c+u<<2)>>2];u=u+1|0}while((u|0)<(p|0));a=a|((d|0)!=0&1)<>2]=0;s[U+4>>2]=0;U=t+4|0;e:do if(!f)f=s[U>>2]|0;else{d=0;while(1){f=s[U>>2]|0;if((d|0)>=(f|0))break e;s[e+(d*4260|0)+2388>>2]=0;d=d+1|0}}while(0);F=e+8536|0;if((f|0)>(s[F>>2]|0)){f=e+4260|0;kn(f|0,0,4260)|0;s[e+6636>>2]=1;s[f>>2]=65536;s[e+8408>>2]=0;s[e+8412>>2]=3176576;s[e+8428>>2]=s[e+6588>>2]<<7;s[e+8500>>2]=65536;s[e+8504>>2]=65536;s[e+8516>>2]=20;s[e+8512>>2]=2;f=s[U>>2]|0}if((f|0)==1?(s[F>>2]|0)==2:0)B=(s[t+12>>2]|0)==((s[e+2316>>2]|0)*1e3|0);else B=0;O=e+2388|0;e:do if(!(s[O>>2]|0)){E=t+16|0;A=t+12|0;S=t+8|0;k=0;M=0;t:while(1){if((k|0)>=(f|0))break e;switch(s[E>>2]|0){case 0:{s[e+(k*4260|0)+2392>>2]=1;s[e+(k*4260|0)+2324>>2]=2;f=2;break}case 10:{s[e+(k*4260|0)+2392>>2]=1;s[e+(k*4260|0)+2324>>2]=2;f=2;break}case 20:{s[e+(k*4260|0)+2392>>2]=1;s[e+(k*4260|0)+2324>>2]=4;f=4;break}case 40:{s[e+(k*4260|0)+2392>>2]=2;s[e+(k*4260|0)+2324>>2]=4;f=4;break}case 60:{s[e+(k*4260|0)+2392>>2]=3;s[e+(k*4260|0)+2324>>2]=4;f=4;break}default:{f=-203;T=183;break t}}g=s[A>>2]>>10;v=g+1|0;_=(v|0)==8;switch(g|0){case 7:case 11:case 15:break;default:{f=-200;T=183;break t}}p=s[S>>2]|0;y=v<<16>>16;s[e+(k*4260|0)+2332>>2]=y*5;b=e+(k*4260|0)+2324|0;m=te(f,y*327680>>16)|0;w=e+(k*4260|0)+2316|0;f=e+(k*4260|0)+2320|0;if((s[w>>2]|0)==(v|0)?(s[f>>2]|0)==(p|0):0){f=1;d=0;T=23}else{d=qi(e+(k*4260|0)+2432|0,y*1e3|0,p,0)|0;s[f>>2]=p;f=(s[w>>2]|0)==(v|0);if(f)T=23;else T=24}if((T|0)==23){T=0;if((m|0)!=(s[e+(k*4260|0)+2328>>2]|0))T=24}if((T|0)==24){T=0;p=(s[b>>2]|0)==4;b=e+(k*4260|0)+2384|0;do if(_)if(p){s[b>>2]=30064;break}else{s[b>>2]=30087;break}else if(p){s[b>>2]=30030;break}else{s[b>>2]=30075;break}while(0);if(!f){s[e+(k*4260|0)+2336>>2]=y*20;switch(g|0){case 7:case 11:{s[e+(k*4260|0)+2340>>2]=10;s[e+(k*4260|0)+2732>>2]=22896;if((v|0)==12)s[e+(k*4260|0)+2380>>2]=29956;else T=37;break}default:{s[e+(k*4260|0)+2340>>2]=16;s[e+(k*4260|0)+2732>>2]=22936;if((v|0)==16)s[e+(k*4260|0)+2380>>2]=29962;else T=37}}if((T|0)==37?(0,_):0)s[e+(k*4260|0)+2380>>2]=29947;s[e+(k*4260|0)+2376>>2]=1;s[e+(k*4260|0)+2308>>2]=100;r[e+(k*4260|0)+2312>>0]=10;s[e+(k*4260|0)+4164>>2]=0;kn(e+(k*4260|0)+1284|0,0,1024)|0}s[w>>2]=v;s[e+(k*4260|0)+2328>>2]=m}f=s[U>>2]|0;k=k+1|0;M=M+d|0}if((T|0)==183){l=z;return f|0}}else M=0;while(0);d=s[t>>2]|0;do if((d|0)==2)if((f|0)==2){if((s[e+8532>>2]|0)!=1?(s[F>>2]|0)!=1:0){f=2;break}s[e+8520>>2]=0;s[e+8528>>2]=0;Mn(e+6692|0,e+2432|0,300)|0;f=s[t>>2]|0}else f=2;else f=d;while(0);s[e+8532>>2]=f;s[F>>2]=s[U>>2];P=t+8|0;if(((s[P>>2]|0)+-8e3|0)>>>0>4e4){e=-200;l=z;return e|0}N=(i|0)==1;e:do if(!N?(s[O>>2]|0)==0:0){A=h+28|0;S=h+32|0;T=h+20|0;x=h+40|0;R=h+24|0;I=h+4|0;v=0;while(1){f=s[U>>2]|0;if((v|0)>=(f|0)){_=0;break}m=e+(v*4260|0)+2392|0;w=0;while(1){p=s[A>>2]|0;d=s[S>>2]|0;f=p>>>1;b=d>>>0>>0;g=b&1;if((w|0)>=(s[m>>2]|0))break;if(!b){d=d-f|0;s[S>>2]=d;f=p-f|0}s[A>>2]=f;while(1){if(f>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;f=f<<8;s[A>>2]=f;b=s[x>>2]|0;p=s[R>>2]|0;if(p>>>0<(s[I>>2]|0)>>>0){s[R>>2]=p+1;p=a[(s[h>>2]|0)+p>>0]|0}else p=0;s[x>>2]=p;E=((b<<8|p)>>>1&255|d<<8&2147483392)^255;s[S>>2]=E;d=E}s[e+(v*4260|0)+2404+(w<<2)>>2]=g;w=w+1|0}if(!b){d=d-f|0;s[S>>2]=d;f=p-f|0}s[A>>2]=f;while(1){if(f>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;f=f<<8;s[A>>2]=f;b=s[x>>2]|0;p=s[R>>2]|0;if(p>>>0<(s[I>>2]|0)>>>0){s[R>>2]=p+1;p=a[(s[h>>2]|0)+p>>0]|0}else p=0;s[x>>2]=p;E=((b<<8|p)>>>1&255|d<<8&2147483392)^255;s[S>>2]=E;d=E}s[e+(v*4260|0)+2416>>2]=g;v=v+1|0}while(1){if((_|0)>=(f|0))break;f=e+(_*4260|0)+2420|0;s[f>>2]=0;s[f+4>>2]=0;s[f+8>>2]=0;t:do if(s[e+(_*4260|0)+2416>>2]|0){v=e+(_*4260|0)+2392|0;d=s[v>>2]|0;if((d|0)==1){s[f>>2]=1;break}f=s[17520+(d+-2<<2)>>2]|0;w=s[A>>2]|0;d=s[S>>2]|0;p=w>>>8;g=-1;while(1){b=g+1|0;m=te(p,a[f+b>>0]|0)|0;if(d>>>0>>0){g=b;w=m}else break}b=d-m|0;s[S>>2]=b;f=w-m|0;s[A>>2]=f;while(1){if(f>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;f=f<<8;s[A>>2]=f;p=s[x>>2]|0;d=s[R>>2]|0;if(d>>>0<(s[I>>2]|0)>>>0){s[R>>2]=d+1;d=a[(s[h>>2]|0)+d>>0]|0}else d=0;s[x>>2]=d;E=((p<<8|d)>>>1&255|b<<8&2147483392)^255;s[S>>2]=E;b=E}f=g+2|0;d=0;while(1){if((d|0)>=(s[v>>2]|0))break t;s[e+(_*4260|0)+2420+(d<<2)>>2]=f>>>d&1;d=d+1|0}}while(0);f=s[U>>2]|0;_=_+1|0}if(!i){k=e+2392|0;E=e+6680|0;d=0;y=0;while(1){if((y|0)>=(s[k>>2]|0))break e;g=E+(y<<2)|0;v=(y|0)>0;_=y+-1|0;w=0;while(1){if((w|0)>=(f|0))break;if(s[e+(w*4260|0)+2420+(y<<2)>>2]|0){t:do if((f|0)==2&(w|0)==0?(Ki(h,L),(s[g>>2]|0)==0):0){m=s[A>>2]|0;f=s[S>>2]|0;p=m>>>8;d=-1;while(1){d=d+1|0;b=te(p,a[29916+d>>0]|0)|0;if(f>>>0>=b>>>0)break;else m=b}p=f-b|0;s[S>>2]=p;f=m-b|0;s[A>>2]=f;m=p;while(1){if(f>>>0>=8388609)break t;s[T>>2]=(s[T>>2]|0)+8;f=f<<8;s[A>>2]=f;b=s[x>>2]|0;p=s[R>>2]|0;if(p>>>0<(s[I>>2]|0)>>>0){s[R>>2]=p+1;p=a[(s[h>>2]|0)+p>>0]|0}else p=0;s[x>>2]=p;b=((b<<8|p)>>>1&255|m<<8&2147483392)^255;s[S>>2]=b;m=b}}while(0);if(v?(s[e+(w*4260|0)+2420+(_<<2)>>2]|0)!=0:0)f=2;else f=0;dr(e+(w*4260|0)|0,h,y,1,f);pr(h,C,r[e+(w*4260|0)+2765>>0]|0,r[e+(w*4260|0)+2766>>0]|0,s[e+(w*4260|0)+2328>>2]|0);f=s[U>>2]|0}w=w+1|0}y=y+1|0}}else d=0}else d=0;while(0);f=s[U>>2]|0;do if((f|0)==2){switch(i|0){case 0:{Ki(h,L);if(!(s[e+6664+(s[O>>2]<<2)>>2]|0))T=112;else{d=0;T=121}break}case 2:{if((s[e+2420+(s[O>>2]<<2)>>2]|0)==1){Ki(h,L);if(!(s[e+6680+(s[O>>2]<<2)>>2]|0))T=112;else{d=0;T=121}}else T=108;break}default:T=108}e:do if((T|0)==108){f=e+8520|0;p=0;while(1){if((p|0)==2)break e;s[L+(p<<2)>>2]=n[f+(p<<1)>>1];p=p+1|0}}else if((T|0)==112){y=h+28|0;m=s[y>>2]|0;k=h+32|0;f=s[k>>2]|0;p=m>>>8;d=-1;while(1){d=d+1|0;b=te(p,a[29916+d>>0]|0)|0;if(f>>>0>=b>>>0)break;else m=b}_=f-b|0;s[k>>2]=_;f=m-b|0;s[y>>2]=f;m=h+20|0;w=h+40|0;g=h+24|0;v=h+4|0;while(1){if(f>>>0>=8388609){T=121;break e}s[m>>2]=(s[m>>2]|0)+8;f=f<<8;s[y>>2]=f;b=s[w>>2]|0;p=s[g>>2]|0;if(p>>>0<(s[v>>2]|0)>>>0){s[g>>2]=p+1;p=a[(s[h>>2]|0)+p>>0]|0}else p=0;s[w>>2]=p;C=((b<<8|p)>>>1&255|_<<8&2147483392)^255;s[k>>2]=C;_=C}}while(0);if((T|0)==121){f=s[U>>2]|0;if((f|0)!=2)break}if((d|0)==0?(s[e+8540>>2]|0)==1:0){kn(e+5544|0,0,1024)|0;s[e+6568>>2]=100;r[e+6572>>0]=10;s[e+8424>>2]=0;s[e+6636>>2]=1;f=s[U>>2]|0}else f=2}while(0);x=te(s[t+12>>2]|0,f)|0;x=(x|0)<(te(s[P>>2]|0,s[t>>2]|0)|0);if(x){I=Ne()|0;s[j>>2]=c;T=c+(s[e+2328>>2]<<1)+4|0;s[j+4>>2]=T;m=c}else{T=e+2328|0;C=te(f,(s[T>>2]|0)+2|0)|0;I=Ne()|0;m=l;l=l+((1*(C<<1)|0)+15&-16)|0;s[j>>2]=m;T=m+(s[T>>2]<<1)+4|0;s[j+4>>2]=T}if(!i){R=e+8540|0;b=(d|0)==0&1}else{f=e+8540|0;if(s[f>>2]|0)if((s[U>>2]|0)==2&(i|0)==2)p=(s[e+6680+(s[e+6648>>2]<<2)>>2]|0)==1;else p=0;else p=1;R=f;b=p&1}p=(i|0)==2;w=0;while(1){f=s[U>>2]|0;if((w|0)>=(f|0))break;if((w|0)==0|(b|0)!=0){f=(s[O>>2]|0)-w|0;do if((f|0)<1)f=0;else{if(p){f=s[e+(w*4260|0)+2420+(f+-1<<2)>>2]|0?2:0;break}if((w|0)>0?s[R>>2]|0:0){f=1;break}f=2}while(0);f=M+(ur(e+(w*4260|0)|0,h,(s[j+(w<<2)>>2]|0)+4|0,D,i,f)|0)|0}else{kn((s[j+(w<<2)>>2]|0)+4|0,0,s[D>>2]<<1|0)|0;f=M}M=e+(w*4260|0)+2388|0;s[M>>2]=(s[M>>2]|0)+1;w=w+1|0;M=f}e:do if((s[t>>2]|0)==2&(f|0)==2){ +E=e+8520|0;A=e+2316|0;f=s[A>>2]|0;S=s[D>>2]|0;y=e+8524|0;w=o[y>>1]|o[y+2>>1]<<16;n[m>>1]=w;n[m+2>>1]=w>>>16;w=e+8528|0;g=o[w>>1]|o[w+2>>1]<<16;n[T>>1]=g;n[T+2>>1]=g>>>16;g=m+(S<<1)|0;g=o[g>>1]|o[g+2>>1]<<16;n[y>>1]=g;n[y+2>>1]=g>>>16;y=T+(S<<1)|0;y=o[y>>1]|o[y+2>>1]<<16;n[w>>1]=y;n[w+2>>1]=y>>>16;w=n[E>>1]|0;y=e+8522|0;g=n[y>>1]|0;f=f<<3;k=s[L>>2]|0;p=(65536/(f|0)|0)<<16>>16;v=((te(k-(w&65535)<<16>>16,p)|0)>>15)+1>>1;_=s[L+4>>2]|0;p=((te(_-(g&65535)<<16>>16,p)|0)>>15)+1>>1;b=0;w=w<<16>>16;g=g<<16>>16;while(1){if((b|0)>=(f|0))break;D=w+v|0;L=g+p|0;h=b+1|0;C=n[m+(h<<1)>>1]|0;H=(n[m+(b<<1)>>1]|0)+(n[m+(b+2<<1)>>1]|0)+(C<<1)|0;i=T+(h<<1)|0;q=D<<16>>16;O=L<<16>>16;O=((n[i>>1]<<8)+((te(H>>7,q)|0)+((te(H<<9&65024,q)|0)>>16))+((te(C>>5,O)|0)+((te(C<<11&63488,O)|0)>>16))>>7)+1>>1;n[i>>1]=(O|0)>32767?32767:((O|0)<-32768?-32768:O)&65535;b=h;w=D;g=L}p=k<<16>>16;b=_<<16>>16;while(1){if((f|0)>=(S|0))break;H=f+1|0;L=n[m+(H<<1)>>1]|0;D=(n[m+(f<<1)>>1]|0)+(n[m+(f+2<<1)>>1]|0)+(L<<1)|0;q=T+(H<<1)|0;L=((n[q>>1]<<8)+((te(D>>7,p)|0)+((te(D<<9&65024,p)|0)>>16))+((te(L>>5,b)|0)+((te(L<<11&63488,b)|0)>>16))>>7)+1>>1;n[q>>1]=(L|0)>32767?32767:((L|0)<-32768?-32768:L)&65535;f=H}n[E>>1]=k;n[y>>1]=_;f=0;while(1){if((f|0)>=(S|0)){v=A;g=S;break e}H=f+1|0;D=m+(H<<1)|0;i=n[D>>1]|0;q=T+(H<<1)|0;L=n[q>>1]|0;h=i+L|0;L=i-L|0;n[D>>1]=(h|0)>32767?32767:((h|0)<-32768?-32768:h)&65535;n[q>>1]=(L|0)>32767?32767:((L|0)<-32768?-32768:L)&65535;f=H}}else{v=e+8524|0;g=o[v>>1]|o[v+2>>1]<<16;n[m>>1]=g;n[m+2>>1]=g>>>16;g=s[D>>2]|0;m=s[j>>2]|0;H=m+(g<<1)|0;H=o[H>>1]|o[H+2>>1]<<16;n[v>>1]=H;n[v+2>>1]=H>>>16;v=e+2316|0}while(0);p=te(g,s[P>>2]|0)|0;p=(p|0)/((s[v>>2]<<16>>16)*1e3|0)|0;s[u>>2]=p;f=s[t>>2]|0;b=(f|0)==2;if(b){w=l;l=l+((1*((b?p:1)<<1)|0)+15&-16)|0}else w=c;if(x){H=s[e+2328>>2]|0;q=te(s[U>>2]|0,H+2|0)|0;m=l;l=l+((1*(q<<1)|0)+15&-16)|0;Mn(m|0,c|0,q<<1|0)|0;s[j>>2]=m;s[j+4>>2]=m+(H<<1)+4}b=0;while(1){p=s[U>>2]|0;if((b|0)>=(((f|0)<(p|0)?f:p)|0))break;Hi(e+(b*4260|0)+2432|0,w,(s[j+(b<<2)>>2]|0)+2|0,g);f=s[t>>2]|0;if((f|0)==2){f=0;while(1){if((f|0)>=(s[u>>2]|0))break;n[c+(b+(f<<1)<<1)>>1]=n[w+(f<<1)>>1]|0;f=f+1|0}f=s[t>>2]|0}b=b+1|0}e:do if((f|0)==2&(p|0)==1){if(!B){f=0;while(1){if((f|0)>=(s[u>>2]|0))break e;H=f<<1;n[c+((H|1)<<1)>>1]=n[c+(H<<1)>>1]|0;f=f+1|0}}Hi(e+6692|0,w,m+2|0,g);f=0;while(1){if((f|0)>=(s[u>>2]|0))break e;n[c+((f<<1|1)<<1)>>1]=n[w+(f<<1)>>1]|0;f=f+1|0}}while(0);if((s[e+4164>>2]|0)==2)f=te(s[e+2308>>2]|0,s[17364+((s[v>>2]|0)+-8>>2<<2)>>2]|0)|0;else f=0;s[t+20>>2]=f;e:do if(N){f=0;while(1){if((f|0)>=(s[F>>2]|0))break e;r[e+(f*4260|0)+2312>>0]=10;f=f+1|0}}else s[R>>2]=d;while(0);qe(I|0);H=M;l=z;return H|0}function Oi(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,n=0,a=0;kn(e|0,0,20400)|0;r=0;n=0;while(1){if((r|0)==2)break;a=n+(Fi(e+(r*10156|0)|0,t)|0)|0;r=r+1|0;n=a}s[e+20376>>2]=1;a=e+20380|0;s[a>>2]=1;s[i>>2]=1;s[i+4>>2]=s[a>>2];s[i+8>>2]=s[e+4648>>2];s[i+12>>2]=s[e+4656>>2];s[i+16>>2]=s[e+4660>>2];s[i+20>>2]=s[e+4664>>2];s[i+24>>2]=s[e+4704>>2];s[i+28>>2]=s[e+4700>>2];s[i+32>>2]=s[e+4708>>2];s[i+36>>2]=s[e+4716>>2];s[i+40>>2]=s[e+6180>>2];s[i+48>>2]=s[e+6168>>2];s[i+52>>2]=s[e+4768>>2];a=e+4668|0;s[i+72>>2]=(s[a>>2]<<16>>16)*1e3;s[i+76>>2]=s[e+4628>>2];if((s[a>>2]|0)!=16){r=0;r=r&1;a=i+80|0;s[a>>2]=r;return n|0}r=(s[e+28>>2]|0)==0;r=r&1;a=i+80|0;s[a>>2]=r;return n|0}function Ni(e,t,i,f,h,c,u){e=e|0;t=t|0;i=i|0;f=f|0;h=h|0;c=c|0;u=u|0;var d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0,C=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,q=0,H=0,G=0,V=0,W=0,K=0,Y=0,Z=0,$=0,X=0,J=0,Q=0,ee=0,ie=0,ne=0,se=0,ae=0,oe=0,fe=0,he=0,ce=0,le=0,ue=0,de=0,pe=0,be=0,me=0,we=0,ge=0,ve=0,_e=0,ye=0,ke=0,Ee=0,Ae=0,Se=0,Me=0,Te=0,xe=0,Re=0,Ie=0,Ce=0,Pe=0,Oe=0,De=0,Le=0,Be=0,Ue=0,je=0,Fe=0,ze=0,He=0,Ge=0,Ve=0,We=0,Ke=0,Ye=0,Ze=0,$e=0,Xe=0,Je=0,Qe=0,et=0,tt=0,it=0,rt=0,nt=0,st=0,at=0,ot=0;ot=l;l=l+16|0;st=ot;if(s[t+68>>2]|0){s[e+4756>>2]=1;s[e+14912>>2]=1}rt=e+15996|0;s[rt>>2]=0;nt=e+5840|0;s[nt>>2]=0;U=t+8|0;p=s[U>>2]|0;e:do if((p|0)<24e3){if((p|0)<12e3){switch(p|0){case 8e3:break e;default:d=-102}l=ot;return d|0}if((p|0)<16e3){switch(p|0){case 12e3:break e;default:d=-102}l=ot;return d|0}else{switch(p|0){case 16e3:break e;default:d=-102}l=ot;return d|0}}else if((p|0)<44100)if((p|0)<32e3){switch(p|0){case 24e3:break e;default:d=-102}l=ot;return d|0}else{switch(p|0){case 32e3:break e;default:d=-102}l=ot;return d|0}else if((p|0)<48e3){switch(p|0){case 44100:break e;default:d=-102}l=ot;return d|0}else{switch(p|0){case 48e3:break e;default:d=-102}l=ot;return d|0}while(0);B=t+20|0;p=s[B>>2]|0;e:do if((p|0)>=12e3)if((p|0)<16e3){switch(p|0){case 12e3:break e;default:d=-102}l=ot;return d|0}else{switch(p|0){case 16e3:break e;default:d=-102}l=ot;return d|0}else{switch(p|0){case 8e3:break e;default:d=-102}l=ot;return d|0}while(0);D=t+12|0;b=s[D>>2]|0;e:do if((b|0)>=12e3)if((b|0)<16e3){switch(b|0){case 12e3:break e;default:d=-102}l=ot;return d|0}else{switch(b|0){case 16e3:break e;default:d=-102}l=ot;return d|0}else{switch(b|0){case 8e3:break e;default:d=-102}l=ot;return d|0}while(0);L=t+16|0;m=s[L>>2]|0;e:do if((m|0)>=12e3)if((m|0)<16e3){switch(m|0){case 12e3:break e;default:d=-102}l=ot;return d|0}else{switch(m|0){case 16e3:break e;default:d=-102}l=ot;return d|0}else{switch(m|0){case 8e3:break e;default:d=-102}l=ot;return d|0}while(0);if((m|0)>(p|0)|(b|0)<(p|0)|(m|0)>(b|0)){e=-102;l=ot;return e|0}it=t+24|0;switch(s[it>>2]|0){case 60:case 40:case 20:case 10:break;default:{e=-103;l=ot;return e|0}}P=t+32|0;if((s[P>>2]|0)>>>0>100){e=-105;l=ot;return e|0}O=t+48|0;if((s[O>>2]|0)>>>0>1){e=-108;l=ot;return e|0}et=t+52|0;if((s[et>>2]|0)>>>0>1){e=-109;l=ot;return e|0}N=t+40|0;if((s[N>>2]|0)>>>0>1){e=-107;l=ot;return e|0}p=s[t>>2]|0;if((p+-1|0)>>>0>1){e=-111;l=ot;return e|0}at=t+4|0;b=s[at>>2]|0;if((b+-1|0)>>>0>1|(b|0)>(p|0)){e=-111;l=ot;return e|0}tt=t+36|0;if((s[tt>>2]|0)>>>0>10){e=-106;l=ot;return e|0}C=t+88|0;s[C>>2]=0;m=e+20380|0;if((b|0)>(s[m>>2]|0)){b=e+10156|0;p=Fi(b,s[e+5184>>2]|0)|0;s[e+20312>>2]=0;s[e+20320>>2]=0;s[e+20324>>2]=0;s[e+20328>>2]=1;s[e+20332>>2]=0;s[e+20336>>2]=1;n[e+20342>>1]=0;n[e+20340>>1]=16384;if((s[e+20376>>2]|0)==2){Mn(e+16024|0,e+5868|0,300)|0;$e=e;Xe=s[$e+4>>2]|0;Je=b;s[Je>>2]=s[$e>>2];s[Je+4>>2]=Xe}}else p=0;if((s[it>>2]|0)==(s[e+4704>>2]|0))I=(s[m>>2]|0)!=(s[at>>2]|0);else I=1;s[e+20376>>2]=s[t>>2];s[m>>2]=s[at>>2];b=f*100|0;m=s[U>>2]|0;R=(b|0)/(m|0)|0;Xe=(R|0)>1?R>>1:1;Je=(u|0)==0;e:do if(Je){if((te(R,m)|0)!=(b|0)|(f|0)<0){e=-101;l=ot;return e|0}if((f*1e3|0)>(te(s[it>>2]|0,m)|0)){e=-101;l=ot;return e|0}else{$e=e;u=0;w=0;break}}else{if((R|0)!=1){e=-101;l=ot;return e|0}b=0;while(1){m=s[at>>2]|0;if((b|0)>=(m|0))break;p=Fi(e+(b*10156|0)|0,s[e+(b*10156|0)+5184>>2]|0)|0;b=b+1|0}w=s[it>>2]|0;s[it>>2]=10;u=s[tt>>2]|0;s[tt>>2]=0;b=0;while(1){if((b|0)>=(m|0)){$e=e;break e}s[e+(b*10156|0)+4760>>2]=0;s[e+(b*10156|0)+4772>>2]=1;m=s[at>>2]|0;b=b+1|0}}while(0);Ze=e+4668|0;We=e+20392|0;M=t+44|0;T=t+64|0;Ke=t+56|0;Ye=e+5836|0;x=0;while(1){if((x|0)>=(s[at>>2]|0))break;if((x|0)==1)y=s[Ze>>2]|0;else y=0;k=$e+(x*10156|0)|0;v=s[We>>2]|0;S=$e+(x*10156|0)+6168|0;s[S>>2]=s[O>>2];s[$e+(x*10156|0)+4768>>2]=s[et>>2];p=s[U>>2]|0;s[$e+(x*10156|0)+4648>>2]=p;b=s[D>>2]|0;s[$e+(x*10156|0)+4656>>2]=b;m=s[L>>2]|0;s[$e+(x*10156|0)+4660>>2]=m;_=s[B>>2]|0;s[$e+(x*10156|0)+4664>>2]=_;s[$e+(x*10156|0)+6180>>2]=s[N>>2];s[$e+(x*10156|0)+5844>>2]=s[t>>2];s[$e+(x*10156|0)+5848>>2]=s[at>>2];s[$e+(x*10156|0)+4628>>2]=v;s[$e+(x*10156|0)+5852>>2]=x;A=$e+(x*10156|0)+4760|0;do if(!(s[A>>2]|0))Qe=41;else{if(s[$e+(x*10156|0)+4772>>2]|0){Qe=41;break}if((p|0)==(s[$e+(x*10156|0)+4652>>2]|0))break;p=s[$e+(x*10156|0)+4668>>2]|0;if((p|0)<=0)break;d=zi(k,p)|0;Qe=110}while(0);if((Qe|0)==41){Qe=0;E=$e+(x*10156|0)+4668|0;d=s[E>>2]|0;Ve=d<<16>>16;g=Ve*1e3|0;do if(Ve){if((g|0)>(p|0)|(g|0)>(b|0)|(g|0)<(m|0)){d=(p|0)<(b|0)?p:b;d=(((d|0)>(m|0)?d:m)|0)/1e3|0;break}m=$e+(x*10156|0)+24|0;p=s[m>>2]|0;if((p|0)>255)s[$e+(x*10156|0)+28>>2]=0;if((v|0)==0?(s[T>>2]|0)==0:0)break;if((g|0)>(_|0)){b=$e+(x*10156|0)+28|0;if(!(s[b>>2]|0)){s[m>>2]=256;p=$e+(x*10156|0)+16|0;s[p>>2]=0;s[p+4>>2]=0;p=256}if(s[T>>2]|0){s[b>>2]=0;d=(d|0)==16?12:8;break}if((p|0)<1){s[C>>2]=1;Ve=s[Ke>>2]|0;s[Ke>>2]=Ve-((Ve*5|0)/((s[it>>2]|0)+5|0)|0);break}else{s[b>>2]=-2;break}}if((g|0)>=(_|0)){p=$e+(x*10156|0)+28|0;if((s[p>>2]|0)>=0)break;s[p>>2]=1;break}if(s[T>>2]|0){s[m>>2]=0;Ve=$e+(x*10156|0)+16|0;s[Ve>>2]=0;s[Ve+4>>2]=0;s[$e+(x*10156|0)+28>>2]=1;d=(d|0)==8?12:16;break}p=$e+(x*10156|0)+28|0;if(!(s[p>>2]|0)){s[C>>2]=1;Ve=s[Ke>>2]|0;s[Ke>>2]=Ve-((Ve*5|0)/((s[it>>2]|0)+5|0)|0);break}else{s[p>>2]=1;break}}else d=(((_|0)<(p|0)?_:p)|0)/1e3|0;while(0);v=(y|0)==0?d:y;_=zi(k,v)|0;m=s[it>>2]|0;g=$e+(x*10156|0)+4704|0;if((s[g>>2]|0)==(m|0)){d=s[E>>2]|0;m=0}else{d=(m|0)==10;e:do if(!d){switch(m|0){case 60:case 40:case 20:{b=0;break}default:if((m|0)<11){b=-103;Qe=70;break e}else b=-103}s[$e+(x*10156|0)+5836>>2]=(m|0)/20|0;s[$e+(x*10156|0)+4672>>2]=4;d=v<<16>>16;s[$e+(x*10156|0)+4676>>2]=d*20;s[$e+(x*10156|0)+4640>>2]=d*24;d=s[E>>2]|0;p=$e+(x*10156|0)+4780|0;if((d|0)==8){s[p>>2]=30064;d=8;p=b;break}else{s[p>>2]=30030;p=b;break}}else{b=0;Qe=70}while(0);do if((Qe|0)==70){Qe=0;s[$e+(x*10156|0)+5836>>2]=1;s[$e+(x*10156|0)+4672>>2]=d?2:1;d=v<<16>>16;s[$e+(x*10156|0)+4676>>2]=te(m<<16>>16,d)|0;s[$e+(x*10156|0)+4640>>2]=d*14;d=s[E>>2]|0;p=$e+(x*10156|0)+4780|0;if((d|0)==8){s[p>>2]=30087;d=8;p=b;break}else{s[p>>2]=30075;p=b;break}}while(0);s[g>>2]=m;s[$e+(x*10156|0)+4700>>2]=0;m=p}e:do if((d|0)!=(v|0)){d=$e+(x*10156|0)+7260|0;s[d>>2]=0;s[d+4>>2]=0;s[d+8>>2]=0;p=$e+(x*10156|0)+16|0;s[p>>2]=0;s[p+4>>2]=0;s[$e+(x*10156|0)+5832>>2]=0;s[$e+(x*10156|0)+5840>>2]=0;s[$e+(x*10156|0)+4700>>2]=0;kn($e+(x*10156|0)+144|0,0,4480)|0;s[$e+(x*10156|0)+4636>>2]=100;s[$e+(x*10156|0)+4756>>2]=1;r[d>>0]=10;s[$e+(x*10156|0)+4568>>2]=100;s[$e+(x*10156|0)+4584>>2]=65536;r[$e+(x*10156|0)+4633>>0]=0;s[E>>2]=v;d=s[$e+(x*10156|0)+4672>>2]|0;p=(d|0)==4;b=$e+(x*10156|0)+4780|0;t:do if((v|0)==8)if(p){s[b>>2]=30064;d=4;Qe=86;break}else{s[b>>2]=30087;Qe=86;break}else{if(p){s[b>>2]=30030;d=4}else s[b>>2]=30075;switch(v|0){case 8:case 12:{Qe=86;break t}default:{}}s[$e+(x*10156|0)+4732>>2]=16;s[$e+(x*10156|0)+4784>>2]=22936}while(0);if((Qe|0)==86){s[$e+(x*10156|0)+4732>>2]=10;s[$e+(x*10156|0)+4784>>2]=22896}s[$e+(x*10156|0)+4680>>2]=v*5;s[$e+(x*10156|0)+4676>>2]=te(v*327680>>16,d<<16>>16)|0;Ve=v<<16;Qe=Ve>>16;s[$e+(x*10156|0)+4684>>2]=Qe*20;s[$e+(x*10156|0)+4688>>2]=Ve>>15;s[$e+(x*10156|0)+4644>>2]=Qe*18;s[$e+(x*10156|0)+4640>>2]=te(Qe,(d|0)==4?24:14)|0;switch(v|0){case 16:{s[$e+(x*10156|0)+4776>>2]=29962;v=16;break e}case 12:{s[$e+(x*10156|0)+4776>>2]=29956;v=12;break e}default:{s[$e+(x*10156|0)+4776>>2]=29947;break e}}}while(0);d=_+m|0;g=s[tt>>2]|0;do if((g|0)>=1){if((g|0)<2){s[$e+(x*10156|0)+4736>>2]=1;s[$e+(x*10156|0)+4744>>2]=49807;p=$e+(x*10156|0)+4740|0;s[p>>2]=8;s[$e+(x*10156|0)+4728>>2]=14;m=v*5|0;s[$e+(x*10156|0)+4692>>2]=m;s[$e+(x*10156|0)+4720>>2]=1;s[$e+(x*10156|0)+4724>>2]=0;s[$e+(x*10156|0)+4752>>2]=3;s[$e+(x*10156|0)+4764>>2]=0;b=8;break}if((g|0)<3){s[$e+(x*10156|0)+4736>>2]=0;s[$e+(x*10156|0)+4744>>2]=52429;p=$e+(x*10156|0)+4740|0;s[p>>2]=6;s[$e+(x*10156|0)+4728>>2]=12;m=v*3|0;s[$e+(x*10156|0)+4692>>2]=m;s[$e+(x*10156|0)+4720>>2]=2;s[$e+(x*10156|0)+4724>>2]=0;s[$e+(x*10156|0)+4752>>2]=2;s[$e+(x*10156|0)+4764>>2]=0;b=6;break}if((g|0)<4){s[$e+(x*10156|0)+4736>>2]=1;s[$e+(x*10156|0)+4744>>2]=49807;p=$e+(x*10156|0)+4740|0;s[p>>2]=8;s[$e+(x*10156|0)+4728>>2]=14;m=v*5|0;s[$e+(x*10156|0)+4692>>2]=m;s[$e+(x*10156|0)+4720>>2]=2;s[$e+(x*10156|0)+4724>>2]=0;s[$e+(x*10156|0)+4752>>2]=4;s[$e+(x*10156|0)+4764>>2]=0;b=8;break}if((g|0)<6){s[$e+(x*10156|0)+4736>>2]=1;s[$e+(x*10156|0)+4744>>2]=48497;p=$e+(x*10156|0)+4740|0;s[p>>2]=10;s[$e+(x*10156|0)+4728>>2]=16;m=v*5|0;s[$e+(x*10156|0)+4692>>2]=m;s[$e+(x*10156|0)+4720>>2]=2;s[$e+(x*10156|0)+4724>>2]=1;s[$e+(x*10156|0)+4752>>2]=6;s[$e+(x*10156|0)+4764>>2]=v*983;b=10;break}p=$e+(x*10156|0)+4736|0;if((g|0)<8){s[p>>2]=1;s[$e+(x*10156|0)+4744>>2]=47186;p=$e+(x*10156|0)+4740|0;s[p>>2]=12;s[$e+(x*10156|0)+4728>>2]=20;m=v*5|0;s[$e+(x*10156|0)+4692>>2]=m;s[$e+(x*10156|0)+4720>>2]=3;s[$e+(x*10156|0)+4724>>2]=1;s[$e+(x*10156|0)+4752>>2]=8;s[$e+(x*10156|0)+4764>>2]=v*983;b=12;break}else{s[p>>2]=2;s[$e+(x*10156|0)+4744>>2]=45875;p=$e+(x*10156|0)+4740|0;s[p>>2]=16;s[$e+(x*10156|0)+4728>>2]=24;m=v*5|0;s[$e+(x*10156|0)+4692>>2]=m;s[$e+(x*10156|0)+4720>>2]=4;s[$e+(x*10156|0)+4724>>2]=1;s[$e+(x*10156|0)+4752>>2]=16;s[$e+(x*10156|0)+4764>>2]=v*983;b=16;break}}else{s[$e+(x*10156|0)+4736>>2]=0;s[$e+(x*10156|0)+4744>>2]=52429;p=$e+(x*10156|0)+4740|0;s[p>>2]=6;s[$e+(x*10156|0)+4728>>2]=12;m=v*3|0;s[$e+(x*10156|0)+4692>>2]=m;s[$e+(x*10156|0)+4720>>2]=1;s[$e+(x*10156|0)+4724>>2]=0;s[$e+(x*10156|0)+4752>>2]=2;s[$e+(x*10156|0)+4764>>2]=0;b=6}while(0);Ve=s[$e+(x*10156|0)+4732>>2]|0;s[p>>2]=(b|0)<(Ve|0)?b:Ve;s[$e+(x*10156|0)+4696>>2]=(v*5|0)+(m<<1);s[$e+(x*10156|0)+4716>>2]=g;p=s[P>>2]|0;s[$e+(x*10156|0)+4708>>2]=p;Ve=$e+(x*10156|0)+6184|0;b=s[Ve>>2]|0;Qe=s[M>>2]|0;s[Ve>>2]=Qe;do if(Qe|0)if(!b){s[$e+(x*10156|0)+6188>>2]=7;break}else{Qe=7-(((p>>16)*26214|0)+(((p&65535)*26214|0)>>>16))|0;s[$e+(x*10156|0)+6188>>2]=(Qe|0)>2?Qe:2;break}while(0);s[A>>2]=1;Qe=110}if((Qe|0)==110?(Qe=0,d|0):0){Qe=439;break}e:do if((s[$e+(x*10156|0)+4756>>2]|0)!=0|I){p=0;while(1){if((p|0)>=(s[Ye>>2]|0))break e;s[$e+(x*10156|0)+4816+(p<<2)>>2]=0;p=p+1|0}}while(0);s[$e+(x*10156|0)+6172>>2]=s[S>>2];x=x+1|0;p=0}if((Qe|0)==439){l=ot;return d|0}P=R*10|0;L=s[Ze>>2]|0;O=te(P,L)|0;N=e+4648|0;L=(te(O,s[N>>2]|0)|0)/(L*1e3|0)|0;Ge=Ne()|0;D=l;l=l+((1*(L<<1)|0)+15&-16)|0;L=e+4676|0;B=e+5832|0;ze=e+20384|0;U=e+16024|0;j=e+5868|0;F=e+5188|0;z=e+14832|0;q=e+15988|0;H=e+14824|0;G=e+15344|0;V=h+28|0;W=h+32|0;K=h+36|0;Y=h+20|0;Z=h+40|0;$=h+24|0;X=h+8|0;J=h+4|0;Q=h+44|0;ee=e+20346|0;ie=e+14972|0;ne=e+20364|0;se=e+20368|0;ae=e+4633|0;oe=e+4636|0;fe=e+4788|0;he=e+8|0;ce=e+4624|0;le=t+28|0;ue=e+20372|0;de=e+20312|0;pe=e+5192|0;be=e+15348|0;He=t+60|0;me=e+20396|0;we=e+17416|0;ge=e+10300|0;ve=e+10172|0;_e=e+14792|0;ye=e+14724|0;ke=e+14789|0;Ee=e+14740|0;Ae=e+14912|0;Se=e+10156|0;Me=e+15346|0;Te=e+14780|0;xe=e+15013|0;Re=e+16332|0;Ie=e+16328|0;Ce=e+14968|0;Pe=e+5190|0;Ve=e+4857|0;Oe=e+6176|0;De=e+6172|0;Le=st+4|0;Be=Xe<<1;Ue=Xe+-1|0;je=e+20388|0;Fe=e+20316|0;v=i;C=0;while(1){m=s[B>>2]|0;g=(s[L>>2]|0)-m|0;g=(g|0)<(O|0)?g:O;I=te(g,s[N>>2]|0)|0;I=(I|0)/((s[Ze>>2]|0)*1e3|0)|0;do if((s[t>>2]|0)==2)if((s[at>>2]|0)==2){d=s[nt>>2]|0;b=0;while(1){if((b|0)>=(I|0))break;n[D+(b<<1)>>1]=n[v+(b<<1<<1)>>1]|0;b=b+1|0}if((s[ze>>2]|0)==1&(d|0)==0)Mn(U|0,j|0,300)|0;Hi(j,F+(m+2<<1)|0,D,I);s[B>>2]=(s[B>>2]|0)+g;b=s[q>>2]|0;m=(s[z>>2]|0)-b|0;d=te(P,s[H>>2]|0)|0;d=(m|0)<(d|0)?m:d;m=0;while(1){if((m|0)>=(I|0))break;n[D+(m<<1)>>1]=n[v+((m<<1|1)<<1)>>1]|0;m=m+1|0}Hi(U,G+(b+2<<1)|0,D,I);s[q>>2]=(s[q>>2]|0)+d;d=s[B>>2]|0;break}else{if((s[at>>2]|0)==1)d=0;else{Qe=136;break}while(1){if((d|0)>=(I|0))break;i=d<<1;i=(n[v+(i<<1)>>1]|0)+(n[v+((i|1)<<1)>>1]|0)|0;n[D+(d<<1)>>1]=(i>>>1)+(i&1);d=d+1|0}Hi(j,F+(m+2<<1)|0,D,I);e:do if((s[ze>>2]|0)==2){if(s[nt>>2]|0)break;Hi(U,G+((s[q>>2]|0)+2<<1)|0,D,I);d=0;while(1){if((d|0)>=(s[L>>2]|0))break e;i=F+((s[B>>2]|0)+d+2<<1)|0;n[i>>1]=((n[i>>1]|0)+(n[G+((s[q>>2]|0)+d+2<<1)>>1]|0)|0)>>>1;d=d+1|0}}while(0);d=(s[B>>2]|0)+g|0;s[B>>2]=d;break}else Qe=136;while(0);if((Qe|0)==136){Qe=0;Mn(D|0,v|0,I<<1|0)|0;Hi(j,F+(m+2<<1)|0,D,I);d=(s[B>>2]|0)+g|0;s[B>>2]=d}x=v+((te(I,s[t>>2]|0)|0)<<1)|0;R=f-I|0;s[We>>2]=0;if((d|0)<(s[L>>2]|0)){d=0;break}if(!((s[nt>>2]|0)!=0|Je^1)){d=256>>>(te((s[Ye>>2]|0)+1|0,s[at>>2]|0)|0);i=s[V>>2]|0;d=i-(te(i>>>8,0-d&255)|0)|0;s[V>>2]=d;while(1){if(d>>>0>=8388609){_=0;break}b=s[W>>2]|0;g=b>>>23;if((g|0)==255)s[K>>2]=(s[K>>2]|0)+1;else{m=b>>>31;d=s[Z>>2]|0;if((d|0)>-1){b=s[$>>2]|0;if((b+(s[X>>2]|0)|0)>>>0<(s[J>>2]|0)>>>0){s[$>>2]=b+1;r[(s[h>>2]|0)+b>>0]=d+m;d=0}else d=-1;s[Q>>2]=s[Q>>2]|d}d=s[K>>2]|0;if(d|0){m=m+255&255;do{b=s[$>>2]|0;if((b+(s[X>>2]|0)|0)>>>0<(s[J>>2]|0)>>>0){s[$>>2]=b+1;r[(s[h>>2]|0)+b>>0]=m;b=0;d=s[K>>2]|0}else b=-1;s[Q>>2]=s[Q>>2]|b;d=d+-1|0;s[K>>2]=d}while((d|0)!=0)}s[Z>>2]=g&255;b=s[W>>2]|0;d=s[V>>2]|0}s[W>>2]=b<<8&2147483392;d=d<<8;s[V>>2]=d;s[Y>>2]=(s[Y>>2]|0)+8}while(1){d=s[at>>2]|0;if((_|0)>=(d|0)){T=0;break}b=s[$e+(_*10156|0)+5836>>2]|0;v=0;d=0;while(1){if((d|0)>=(b|0))break;v=v|s[$e+(_*10156|0)+4816+(d<<2)>>2]<>0]=(v|0)>0&1;e:do if((v|0)!=0&(b|0)>1){g=v+-1|0;d=s[17520+(b+-2<<2)>>2]|0;b=s[V>>2]|0;m=b>>>8;if((v|0)>1){i=d+(v+-2)|0;T=b-(te(m,a[i>>0]|0)|0)|0;s[W>>2]=(s[W>>2]|0)+T;d=te(m,(a[i>>0]|0)-(a[d+g>>0]|0)|0)|0}else d=b-(te(m,a[d+g>>0]|0)|0)|0;s[V>>2]=d;while(1){if(d>>>0>=8388609)break e;b=s[W>>2]|0;g=b>>>23;if((g|0)==255)s[K>>2]=(s[K>>2]|0)+1;else{m=b>>>31;d=s[Z>>2]|0;if((d|0)>-1){b=s[$>>2]|0;if((b+(s[X>>2]|0)|0)>>>0<(s[J>>2]|0)>>>0){s[$>>2]=b+1;r[(s[h>>2]|0)+b>>0]=d+m;d=0}else d=-1;s[Q>>2]=s[Q>>2]|d}d=s[K>>2]|0;if(d|0){m=m+255&255;do{b=s[$>>2]|0;if((b+(s[X>>2]|0)|0)>>>0<(s[J>>2]|0)>>>0){s[$>>2]=b+1;r[(s[h>>2]|0)+b>>0]=m;b=0;d=s[K>>2]|0}else b=-1;s[Q>>2]=s[Q>>2]|b;d=d+-1|0;s[K>>2]=d}while((d|0)!=0)}s[Z>>2]=g&255;b=s[W>>2]|0;d=s[V>>2]|0}s[W>>2]=b<<8&2147483392;d=d<<8;s[V>>2]=d;s[Y>>2]=(s[Y>>2]|0)+8}}while(0);_=_+1|0}while(1){if((T|0)>=(s[Ye>>2]|0)){b=0;break}y=ee+(T*6|0)+2|0;k=ee+(T*6|0)+5|0;E=ie+(T<<2)|0;A=ne+T|0;S=(T|0)>0;M=T+-1|0;_=0;while(1){if((_|0)>=(d|0))break;if(s[$e+(_*10156|0)+4816+(T<<2)>>2]|0){e:do if((d|0)==2&(_|0)==0){d=((r[y>>0]|0)*5|0)+(r[k>>0]|0)|0;b=s[V>>2]|0;m=b>>>8;if((d|0)>0){i=a[29891+(d+-1)>>0]|0;v=b-(te(m,i)|0)|0;s[W>>2]=(s[W>>2]|0)+v;d=te(m,i-(a[29891+d>>0]|0)|0)|0}else d=b-(te(m,a[29891+d>>0]|0)|0)|0;s[V>>2]=d;while(1){if(d>>>0>=8388609){v=0;break}b=s[W>>2]|0;g=b>>>23;if((g|0)==255)s[K>>2]=(s[K>>2]|0)+1;else{m=b>>>31;d=s[Z>>2]|0;if((d|0)>-1){b=s[$>>2]|0;if((b+(s[X>>2]|0)|0)>>>0<(s[J>>2]|0)>>>0){s[$>>2]=b+1;r[(s[h>>2]|0)+b>>0]=d+m;d=0}else d=-1;s[Q>>2]=s[Q>>2]|d}d=s[K>>2]|0;if(d|0){m=m+255&255;do{b=s[$>>2]|0;if((b+(s[X>>2]|0)|0)>>>0<(s[J>>2]|0)>>>0){s[$>>2]=b+1;r[(s[h>>2]|0)+b>>0]=m;b=0;d=s[K>>2]|0}else b=-1;s[Q>>2]=s[Q>>2]|b;d=d+-1|0;s[K>>2]=d}while((d|0)!=0)}s[Z>>2]=g&255;b=s[W>>2]|0;d=s[V>>2]|0}s[W>>2]=b<<8&2147483392;d=d<<8;s[V>>2]=d;s[Y>>2]=(s[Y>>2]|0)+8}while(1){if((v|0)==2)break;i=r[ee+(T*6|0)+(v*3|0)>>0]|0;b=i<<24>>24;m=d>>>8;if(i<<24>>24>0){i=a[29944+(b+-1)>>0]|0;d=d-(te(m,i)|0)|0;s[W>>2]=(s[W>>2]|0)+d;d=te(m,i-(a[29944+b>>0]|0)|0)|0}else d=d-(te(m,a[29944+b>>0]|0)|0)|0;s[V>>2]=d;while(1){if(d>>>0>=8388609)break;b=s[W>>2]|0;g=b>>>23;if((g|0)==255)s[K>>2]=(s[K>>2]|0)+1;else{m=b>>>31;d=s[Z>>2]|0;if((d|0)>-1){b=s[$>>2]|0;if((b+(s[X>>2]|0)|0)>>>0<(s[J>>2]|0)>>>0){s[$>>2]=b+1;r[(s[h>>2]|0)+b>>0]=d+m;d=0}else d=-1;s[Q>>2]=s[Q>>2]|d}d=s[K>>2]|0;if(d|0){m=m+255&255;do{b=s[$>>2]|0;if((b+(s[X>>2]|0)|0)>>>0<(s[J>>2]|0)>>>0){s[$>>2]=b+1;r[(s[h>>2]|0)+b>>0]=m;b=0;d=s[K>>2]|0}else b=-1;s[Q>>2]=s[Q>>2]|b;d=d+-1|0;s[K>>2]=d}while((d|0)!=0)}s[Z>>2]=g&255;b=s[W>>2]|0;d=s[V>>2]|0}s[W>>2]=b<<8&2147483392;d=d<<8;s[V>>2]=d;s[Y>>2]=(s[Y>>2]|0)+8}i=r[ee+(T*6|0)+(v*3|0)+1>>0]|0;b=i<<24>>24;m=d>>>8;if(i<<24>>24>0){i=a[29951+(b+-1)>>0]|0;d=d-(te(m,i)|0)|0;s[W>>2]=(s[W>>2]|0)+d;d=te(m,i-(a[29951+b>>0]|0)|0)|0}else d=d-(te(m,a[29951+b>>0]|0)|0)|0;s[V>>2]=d;while(1){if(d>>>0>=8388609)break;b=s[W>>2]|0;g=b>>>23;if((g|0)==255)s[K>>2]=(s[K>>2]|0)+1;else{m=b>>>31;d=s[Z>>2]|0;if((d|0)>-1){b=s[$>>2]|0;if((b+(s[X>>2]|0)|0)>>>0<(s[J>>2]|0)>>>0){s[$>>2]=b+1;r[(s[h>>2]|0)+b>>0]=d+m;d=0}else d=-1;s[Q>>2]=s[Q>>2]|d}d=s[K>>2]|0;if(d|0){m=m+255&255;do{b=s[$>>2]|0;if((b+(s[X>>2]|0)|0)>>>0<(s[J>>2]|0)>>>0){s[$>>2]=b+1;r[(s[h>>2]|0)+b>>0]=m;b=0;d=s[K>>2]|0}else b=-1;s[Q>>2]=s[Q>>2]|b;d=d+-1|0;s[K>>2]=d}while((d|0)!=0)}s[Z>>2]=g&255;b=s[W>>2]|0;d=s[V>>2]|0}s[W>>2]=b<<8&2147483392;d=d<<8;s[V>>2]=d;s[Y>>2]=(s[Y>>2]|0)+8}v=v+1|0}if(s[E>>2]|0)break;i=r[A>>0]|0;b=i<<24>>24;m=d>>>8;if(i<<24>>24>0){i=a[29916+(b+-1)>>0]|0;d=d-(te(m,i)|0)|0;s[W>>2]=(s[W>>2]|0)+d;d=te(m,i-(a[29916+b>>0]|0)|0)|0}else d=d-(te(m,a[29916+b>>0]|0)|0)|0;s[V>>2]=d;while(1){if(d>>>0>=8388609)break e;b=s[W>>2]|0;g=b>>>23;if((g|0)==255)s[K>>2]=(s[K>>2]|0)+1;else{m=b>>>31;b=s[Z>>2]|0;if((b|0)>-1){d=s[$>>2]|0;if((d+(s[X>>2]|0)|0)>>>0<(s[J>>2]|0)>>>0){s[$>>2]=d+1;r[(s[h>>2]|0)+d>>0]=b+m;d=0}else d=-1;s[Q>>2]=s[Q>>2]|d}d=s[K>>2]|0;if(d|0){m=m+255&255;do{b=s[$>>2]|0;if((b+(s[X>>2]|0)|0)>>>0<(s[J>>2]|0)>>>0){s[$>>2]=b+1;r[(s[h>>2]|0)+b>>0]=m;b=0;d=s[K>>2]|0}else b=-1;s[Q>>2]=s[Q>>2]|b;d=d+-1|0;s[K>>2]=d}while((d|0)!=0)}s[Z>>2]=g&255;b=s[W>>2]|0;d=s[V>>2]|0}s[W>>2]=b<<8&2147483392;d=d<<8;s[V>>2]=d;s[Y>>2]=(s[Y>>2]|0)+8}}while(0);if(S?(s[$e+(_*10156|0)+4816+(M<<2)>>2]|0)!=0:0)d=2;else d=0;Di($e+(_*10156|0)|0,h,T,1,d);Li(h,r[$e+(_*10156|0)+6192+(T*36|0)+29>>0]|0,r[$e+(_*10156|0)+6192+(T*36|0)+30>>0]|0,$e+(_*10156|0)+6300+(T*320|0)|0,s[$e+(_*10156|0)+4676>>2]|0);d=s[at>>2]|0}_=_+1|0}T=T+1|0}while(1){if((b|0)>=(d|0))break;d=$e+(b*10156|0)+4816|0;s[d>>2]=0;s[d+4>>2]=0;s[d+8>>2]=0;d=s[at>>2]|0;b=b+1|0}s[se>>2]=(s[Y>>2]|0)+((re(s[V>>2]|0)|0)+-32)}if((r[ae>>0]|0)==2){d=te(s[Ze>>2]|0,65536e3)|0;d=(d|0)/(s[oe>>2]|0)|0;g=re(d|0)|0;b=24-g|0;m=0-b|0;do if(b)if((b|0)<0){d=d<>>(b+32|0);break}else{d=d<<32-b|d>>>b;break}while(0);S=d&127;S=S+(((te(S,128-S|0)|0)*179|0)>>>16)+(31-g<<7)|0;T=s[fe>>2]|0;i=0-T<<2;T=T<<16>>16;M=te(i>>16,T)|0;T=te(i&65532,T)|0;i=(S<<16)+-183762944>>16;i=S+-2048+((te(M+(T>>16)>>16,i)|0)+((te(M+(T>>>16)&65535,i)|0)>>16))|0;T=s[he>>2]|0;i=i-(T>>8)|0;i=(i|0)<0?i*3|0:i;i=te(s[ce>>2]<<16>>16,(i|0)>51?51:((i|0)<-51?-51:i)<<16>>16)|0;i=T+(((i>>16)*6554|0)+(((i&65535)*6554|0)>>>16))|0;s[he>>2]=(i|0)>217856?217856:(i|0)<193536?193536:i}g=s[le>>2]|0;b=s[it>>2]|0;d=(te(g,b)|0)/1e3|0;if(Je)d=d-(s[se>>2]|0)|0;m=(d|0)/(s[Ye>>2]|0)|0;d=te(m<<16>>16,(b|0)==10?100:50)|0;d=d-(s[ue>>2]<<1)|0;do if(Je){b=s[nt>>2]|0;if((b|0)<=0)break;i=(s[Y>>2]|0)+((re(s[V>>2]|0)|0)+-32)|0;d=d-(i-(s[se>>2]|0)-(te(m,b)|0)<<1)|0}while(0);do if((g|0)>5e3){if((d|0)>(g|0))break;g=(d|0)<5e3?5e3:d}else{if((d|0)>5e3){g=5e3;break}g=(d|0)<(g|0)?g:d}while(0);e:do if((s[at>>2]|0)==2){d=s[nt>>2]|0;Ui(de,pe,be,ee+(d*6|0)|0,ne+d|0,st,g,s[ce>>2]|0,s[He>>2]|0,s[Ze>>2]|0,s[L>>2]|0);d=s[nt>>2]|0;do if(!(r[ne+d>>0]|0)){if((s[me>>2]|0)==1){s[we>>2]=0;s[we+4>>2]=0;s[we+8>>2]=0;i=ve;s[i>>2]=0;s[i+4>>2]=0;kn(ge|0,0,4480)|0;s[_e>>2]=100;s[ye>>2]=100;r[we>>0]=10;r[ke>>0]=0;s[Ee>>2]=65536;s[Ae>>2]=1}Er(Se,Me);if((s[Te>>2]|0)>=13){s[Re>>2]=0;s[Ie>>2]=0;r[xe>>0]=1;r[(s[rt>>2]|0)+(Se+4812)>>0]=1;break}r[xe>>0]=0;d=s[Re>>2]|0;i=d+1|0;s[Re>>2]=i;do if((i|0)<10)s[Ie>>2]=0;else{if((d|0)<=29)break;s[Re>>2]=10;s[Ie>>2]=0}while(0);r[(s[rt>>2]|0)+(Se+4812)>>0]=0}else r[Ce+d>>0]=0;while(0);if(!Je)break;y=s[nt>>2]|0;d=((r[ee+(y*6|0)+2>>0]|0)*5|0)+(r[ee+(y*6|0)+5>>0]|0)|0;b=s[V>>2]|0;m=b>>>8;if((d|0)>0){i=a[29891+(d+-1)>>0]|0;T=b-(te(m,i)|0)|0;s[W>>2]=(s[W>>2]|0)+T;d=te(m,i-(a[29891+d>>0]|0)|0)|0}else d=b-(te(m,a[29891+d>>0]|0)|0)|0;s[V>>2]=d;while(1){if(d>>>0>=8388609){m=d;_=0;break}b=s[W>>2]|0;v=b>>>23;if((v|0)==255)s[K>>2]=(s[K>>2]|0)+1;else{m=b>>>31;d=s[Z>>2]|0;if((d|0)>-1){b=s[$>>2]|0;if((b+(s[X>>2]|0)|0)>>>0<(s[J>>2]|0)>>>0){s[$>>2]=b+1;r[(s[h>>2]|0)+b>>0]=d+m;d=0}else d=-1;s[Q>>2]=s[Q>>2]|d}d=s[K>>2]|0;if(d|0){m=m+255&255;do{b=s[$>>2]|0;if((b+(s[X>>2]|0)|0)>>>0<(s[J>>2]|0)>>>0){s[$>>2]=b+1;r[(s[h>>2]|0)+b>>0]=m;b=0;d=s[K>>2]|0}else b=-1;s[Q>>2]=s[Q>>2]|b;d=d+-1|0;s[K>>2]=d}while((d|0)!=0)}s[Z>>2]=v&255;b=s[W>>2]|0;d=s[V>>2]|0}s[W>>2]=b<<8&2147483392;d=d<<8;s[V>>2]=d;s[Y>>2]=(s[Y>>2]|0)+8}while(1){if((_|0)==2)break;i=r[ee+(y*6|0)+(_*3|0)>>0]|0;d=i<<24>>24;b=m>>>8;if(i<<24>>24>0){i=a[29944+(d+-1)>>0]|0;T=m-(te(b,i)|0)|0;s[W>>2]=(s[W>>2]|0)+T;d=te(b,i-(a[29944+d>>0]|0)|0)|0}else d=m-(te(b,a[29944+d>>0]|0)|0)|0;s[V>>2]=d;while(1){if(d>>>0>=8388609)break;b=s[W>>2]|0;v=b>>>23;if((v|0)==255)s[K>>2]=(s[K>>2]|0)+1;else{m=b>>>31;d=s[Z>>2]|0;if((d|0)>-1){b=s[$>>2]|0;if((b+(s[X>>2]|0)|0)>>>0<(s[J>>2]|0)>>>0){s[$>>2]=b+1;r[(s[h>>2]|0)+b>>0]=d+m;d=0}else d=-1;s[Q>>2]=s[Q>>2]|d}d=s[K>>2]|0;if(d|0){m=m+255&255;do{b=s[$>>2]|0;if((b+(s[X>>2]|0)|0)>>>0<(s[J>>2]|0)>>>0){s[$>>2]=b+1;r[(s[h>>2]|0)+b>>0]=m;b=0;d=s[K>>2]|0}else b=-1;s[Q>>2]=s[Q>>2]|b;d=d+-1|0;s[K>>2]=d}while((d|0)!=0)}s[Z>>2]=v&255;b=s[W>>2]|0;d=s[V>>2]|0}s[W>>2]=b<<8&2147483392;d=d<<8;s[V>>2]=d;s[Y>>2]=(s[Y>>2]|0)+8}i=r[ee+(y*6|0)+(_*3|0)+1>>0]|0;b=i<<24>>24;m=d>>>8;if(i<<24>>24>0){i=a[29951+(b+-1)>>0]|0;d=d-(te(m,i)|0)|0;s[W>>2]=(s[W>>2]|0)+d;d=te(m,i-(a[29951+b>>0]|0)|0)|0}else d=d-(te(m,a[29951+b>>0]|0)|0)|0;s[V>>2]=d;while(1){if(d>>>0>=8388609)break;b=s[W>>2]|0;v=b>>>23;if((v|0)==255)s[K>>2]=(s[K>>2]|0)+1;else{m=b>>>31;d=s[Z>>2]|0;if((d|0)>-1){b=s[$>>2]|0;if((b+(s[X>>2]|0)|0)>>>0<(s[J>>2]|0)>>>0){s[$>>2]=b+1;r[(s[h>>2]|0)+b>>0]=d+m;d=0}else d=-1;s[Q>>2]=s[Q>>2]|d}d=s[K>>2]|0;if(d|0){m=m+255&255;do{b=s[$>>2]|0;if((b+(s[X>>2]|0)|0)>>>0<(s[J>>2]|0)>>>0){s[$>>2]=b+1;r[(s[h>>2]|0)+b>>0]=m;b=0;d=s[K>>2]|0}else b=-1;s[Q>>2]=s[Q>>2]|b;d=d+-1|0;s[K>>2]=d}while((d|0)!=0)}s[Z>>2]=v&255;b=s[W>>2]|0;d=s[V>>2]|0}s[W>>2]=b<<8&2147483392;d=d<<8;s[V>>2]=d;s[Y>>2]=(s[Y>>2]|0)+8}m=d;_=_+1|0}d=s[nt>>2]|0;if(r[Ce+d>>0]|0)break;i=r[ne+d>>0]|0;d=i<<24>>24;b=m>>>8;if(i<<24>>24>0){i=a[29916+(d+-1)>>0]|0;T=m-(te(b,i)|0)|0;s[W>>2]=(s[W>>2]|0)+T;d=te(b,i-(a[29916+d>>0]|0)|0)|0}else d=m-(te(b,a[29916+d>>0]|0)|0)|0;s[V>>2]=d;while(1){if(d>>>0>=8388609)break e;b=s[W>>2]|0;v=b>>>23;if((v|0)==255)s[K>>2]=(s[K>>2]|0)+1;else{m=b>>>31;d=s[Z>>2]|0;if((d|0)>-1){b=s[$>>2]|0;if((b+(s[X>>2]|0)|0)>>>0<(s[J>>2]|0)>>>0){s[$>>2]=b+1;r[(s[h>>2]|0)+b>>0]=d+m;d=0}else d=-1;s[Q>>2]=s[Q>>2]|d}d=s[K>>2]|0;if(d|0){m=m+255&255;do{b=s[$>>2]|0;if((b+(s[X>>2]|0)|0)>>>0<(s[J>>2]|0)>>>0){s[$>>2]=b+1;r[(s[h>>2]|0)+b>>0]=m;b=0;d=s[K>>2]|0}else b=-1;s[Q>>2]=s[Q>>2]|b;d=d+-1|0;s[K>>2]=d}while((d|0)!=0)}s[Z>>2]=v&255;b=s[W>>2]|0;d=s[V>>2]|0}s[W>>2]=b<<8&2147483392;d=d<<8;s[V>>2]=d;s[Y>>2]=(s[Y>>2]|0)+8}}else{s[F>>2]=s[Fe>>2];i=F+(s[L>>2]<<1)|0;i=o[i>>1]|o[i+2>>1]<<16;n[Fe>>1]=i;n[Fe+2>>1]=i>>>16}while(0);Er(e,Pe);if((s[ce>>2]|0)<13){r[Ve>>0]=0;d=s[Oe>>2]|0;i=d+1|0;s[Oe>>2]=i;do if((i|0)<10)s[De>>2]=0;else{if((d|0)<=29)break;s[Oe>>2]=10;s[De>>2]=0}while(0);r[(s[nt>>2]|0)+(e+4812)>>0]=0}else{s[Oe>>2]=0;s[De>>2]=0;r[Ve>>0]=1;r[(s[nt>>2]|0)+(e+4812)>>0]=1}y=(C|0)==0;k=s[Le>>2]|0;E=(C|0)==(Ue|0);A=(C|0)==1;S=0;while(1){d=s[at>>2]|0;if((S|0)>=(d|0))break;b=s[Ke>>2]|0;e:do switch(Xe|0){case 2:{if(!y){m=b;break e}m=(b*3|0)/5|0;break}case 3:{if(y){m=(b<<1|0)/5|0;break e}if(!A){m=b;break e}m=(b*3|0)/4|0;break}default:m=b}while(0);v=E&(s[et>>2]|0)!=0&1;do if((d|0)==1){d=g;_=v}else{d=s[st+(S<<2)>>2]|0;if((S|0)!=0|(k|0)<1){_=v;break}m=m-((b|0)/(Be|0)|0)|0;_=0}while(0);if((d|0)>0){p=(d|0)>8e4?8e4:(d|0)<5e3?5e3:d;d=$e+(S*10156|0)+4700|0;e:do if((p|0)!=(s[d>>2]|0)){s[d>>2]=p;v=s[$e+(S*10156|0)+4668>>2]|0;v=(v|0)==8?17424:(v|0)==12?17456:17488;d=(s[$e+(S*10156|0)+4672>>2]|0)==2?p+-2200|0:p;b=1;while(1){if((b|0)>=8)break e;p=s[v+(b<<2)>>2]|0;if((d|0)<=(p|0))break;b=b+1|0}i=b+-1|0;T=s[v+(i<<2)>>2]|0;i=n[25356+(i<<1)>>1]|0;s[$e+(S*10156|0)+4808>>2]=(i<<6)+(te((d-T<<6|0)/(p-T|0)|0,(n[25356+(b<<1)>>1]|0)-i|0)|0)}while(0);do if((s[nt>>2]|0)>(S|0)){if((S|0)>0?s[me>>2]|0:0){d=1;break}d=2}else d=0;while(0);p=Xi($e+(S*10156|0)|0,c,h,d,m,_)|0}s[$e+(S*10156|0)+4760>>2]=0;s[$e+(S*10156|0)+5832>>2]=0;i=$e+(S*10156|0)+5840|0;s[i>>2]=(s[i>>2]|0)+1;S=S+1|0}m=s[nt>>2]|0;s[me>>2]=r[ne+(m+-1)>>0];do if((s[c>>2]|0)>0){if((m|0)!=(s[Ye>>2]|0))break;g=s[at>>2]|0;y=0;_=0;while(1){if((_|0)>=(g|0))break;v=s[$e+(_*10156|0)+5836>>2]|0;d=y;b=0;while(1){d=d<<1;if((b|0)>=(v|0))break;d=d|r[$e+(_*10156|0)+4812+b>>0];b=b+1|0}y=d|r[$e+(_*10156|0)+4815>>0];_=_+1|0}do if(Je){d=te(m+1|0,g)|0;b=8-d|0;m=(1<>2]|0){i=s[h>>2]|0;r[i>>0]=a[i>>0]&(m^255)|y<>2]|0;if((g|0)>-1){s[Z>>2]=g&~m|y<>2]|0)>>>0>-2147483648>>>d>>>0){s[Q>>2]=-1;break}else{s[W>>2]=s[W>>2]&~(m<<23)|y<>2]|0){if((s[at>>2]|0)!=1?(s[Ie>>2]|0)==0:0)break;s[c>>2]=0}while(0);d=(s[ue>>2]|0)+(s[c>>2]<<3)|0;s[ue>>2]=d;d=d-((te(s[le>>2]|0,s[it>>2]|0)|0)/1e3|0)|0;s[ue>>2]=(d|0)>1e4?1e4:(d|0)<0?0:d;d=s[je>>2]|0;if((s[ce>>2]|0)<(((d<<16>>16)*3188>>16)+13|0)){s[We>>2]=1;s[je>>2]=0;break}else{s[We>>2]=0;s[je>>2]=d+(s[it>>2]|0);break}}while(0);if((f|0)==(I|0)){Qe=428;break}v=x;f=R;C=C+1|0}if((Qe|0)==428)d=s[We>>2]|0;s[ze>>2]=s[at>>2];s[t+76>>2]=d;if((s[Ze>>2]|0)==16)d=(s[e+28>>2]|0)==0;else d=0;s[t+80>>2]=d&1;s[t+72>>2]=(s[Ze>>2]<<16>>16)*1e3;if(!(s[He>>2]|0))d=n[e+20340>>1]|0;else d=0;s[t+84>>2]=d;e:do if(!Je){s[it>>2]=w;s[tt>>2]=u;d=0;while(1){if((d|0)>=(s[at>>2]|0))break e;s[$e+(d*10156|0)+4760>>2]=0;s[$e+(d*10156|0)+4772>>2]=0;d=d+1|0}}while(0);s[t+92>>2]=r[Ve>>0];s[t+96>>2]=n[25404+(r[Ve>>0]>>1<<2)+(r[e+4858>>0]<<1)>>1];qe(Ge|0);e=p;l=ot;return e|0}function Di(e,t,i,o,f){e=e|0;t=t|0;i=i|0;o=o|0;f=f|0;var h=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0,C=0;C=l;l=l+48|0;E=C;y=C+32|0;x=(o|0)==0;I=x?e+4828|0:e+6192+(i*36|0)|0;R=I+29|0;c=(r[R>>0]<<1)+(r[I+30>>0]|0)|0;e:do if((c|0)>1|x^1){i=c+-2|0;_=t+28|0;o=s[_>>2]|0;h=o>>>8;if((c|0)>2){x=a[29933+(c+-3)>>0]|0;T=o-(te(h,x)|0)|0;u=t+32|0;s[u>>2]=(s[u>>2]|0)+T;i=te(h,x-(a[29933+i>>0]|0)|0)|0;s[_>>2]=i}else{i=o-(te(h,a[29933+i>>0]|0)|0)|0;s[_>>2]=i;u=t+32|0}d=t+36|0;p=t+20|0;b=t+40|0;m=t+24|0;w=t+8|0;g=t+4|0;v=t+44|0;while(1){if(i>>>0>=8388609){c=i;break e}o=s[u>>2]|0;c=o>>>23;if((c|0)==255)s[d>>2]=(s[d>>2]|0)+1;else{h=o>>>31;i=s[b>>2]|0;if((i|0)>-1){o=s[m>>2]|0;if((o+(s[w>>2]|0)|0)>>>0<(s[g>>2]|0)>>>0){s[m>>2]=o+1;r[(s[t>>2]|0)+o>>0]=i+h;i=0}else i=-1;s[v>>2]=s[v>>2]|i}i=s[d>>2]|0;if(i|0){h=h+255&255;do{o=s[m>>2]|0;if((o+(s[w>>2]|0)|0)>>>0<(s[g>>2]|0)>>>0){s[m>>2]=o+1;r[(s[t>>2]|0)+o>>0]=h;o=0;i=s[d>>2]|0}else o=-1;s[v>>2]=s[v>>2]|o;i=i+-1|0;s[d>>2]=i}while((i|0)!=0)}s[b>>2]=c&255;o=s[u>>2]|0;i=s[_>>2]|0}s[u>>2]=o<<8&2147483392;i=i<<8;s[_>>2]=i;s[p>>2]=(s[p>>2]|0)+8}}else{_=t+28|0;i=s[_>>2]|0;o=i>>>8;if((c|0)>0){x=a[29937+(c+-1)>>0]|0;i=i-(te(o,x)|0)|0;u=t+32|0;s[u>>2]=(s[u>>2]|0)+i;i=te(o,x-(a[29937+c>>0]|0)|0)|0;s[_>>2]=i}else{i=i-(te(o,a[29937+c>>0]|0)|0)|0;s[_>>2]=i;u=t+32|0}d=t+36|0;p=t+20|0;b=t+40|0;m=t+24|0;w=t+8|0;g=t+4|0;v=t+44|0;while(1){if(i>>>0>=8388609){c=i;break e}o=s[u>>2]|0;c=o>>>23;if((c|0)==255)s[d>>2]=(s[d>>2]|0)+1;else{h=o>>>31;i=s[b>>2]|0;if((i|0)>-1){o=s[m>>2]|0;if((o+(s[w>>2]|0)|0)>>>0<(s[g>>2]|0)>>>0){s[m>>2]=o+1;r[(s[t>>2]|0)+o>>0]=i+h;i=0}else i=-1;s[v>>2]=s[v>>2]|i}i=s[d>>2]|0;if(i|0){h=h+255&255;do{o=s[m>>2]|0;if((o+(s[w>>2]|0)|0)>>>0<(s[g>>2]|0)>>>0){s[m>>2]=o+1;r[(s[t>>2]|0)+o>>0]=h;o=0;i=s[d>>2]|0}else o=-1;s[v>>2]=s[v>>2]|o;i=i+-1|0;s[d>>2]=i}while((i|0)!=0)}s[b>>2]=c&255;o=s[u>>2]|0;i=s[_>>2]|0}s[u>>2]=o<<8&2147483392;i=i<<8;s[_>>2]=i;s[p>>2]=(s[p>>2]|0)+8}}while(0);k=(f|0)==2;i=r[I>>0]|0;o=i<<24>>24;e:do if(k){b=t+28|0;h=c>>>8;if(i<<24>>24>0){i=a[29396+(o+-1)>>0]|0;x=c-(te(h,i)|0)|0;u=t+32|0;s[u>>2]=(s[u>>2]|0)+x;i=te(h,i-(a[29396+o>>0]|0)|0)|0;s[b>>2]=i}else{i=c-(te(h,a[29396+o>>0]|0)|0)|0;s[b>>2]=i;u=t+32|0}d=t+36|0;p=t+20|0;m=t+40|0;w=t+24|0;g=t+8|0;v=t+4|0;_=t+44|0;while(1){if(i>>>0>=8388609){x=u;T=d;M=v;break e}o=s[u>>2]|0;c=o>>>23;if((c|0)==255)s[d>>2]=(s[d>>2]|0)+1;else{h=o>>>31;i=s[m>>2]|0;if((i|0)>-1){o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[v>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=i+h;i=0}else i=-1;s[_>>2]=s[_>>2]|i}i=s[d>>2]|0;if(i|0){h=h+255&255;do{o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[v>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=h;o=0;i=s[d>>2]|0}else o=-1;s[_>>2]=s[_>>2]|o;i=i+-1|0;s[d>>2]=i}while((i|0)!=0)}s[m>>2]=c&255;o=s[u>>2]|0;i=s[b>>2]|0}s[u>>2]=o<<8&2147483392;i=i<<8;s[b>>2]=i;s[p>>2]=(s[p>>2]|0)+8}}else{i=o>>3;o=r[R>>0]|0;b=t+28|0;h=c>>>8;if((i|0)>0){x=a[i+-1+(29372+(o<<3))>>0]|0;T=c-(te(h,x)|0)|0;u=t+32|0;s[u>>2]=(s[u>>2]|0)+T;i=te(h,x-(a[29372+(o<<3)+i>>0]|0)|0)|0;s[b>>2]=i}else{i=c-(te(h,a[29372+(o<<3)+i>>0]|0)|0)|0;s[b>>2]=i;u=t+32|0}d=t+36|0;p=t+20|0;m=t+40|0;w=t+24|0;g=t+8|0;v=t+4|0;_=t+44|0;while(1){if(i>>>0>=8388609)break;o=s[u>>2]|0;c=o>>>23;if((c|0)==255)s[d>>2]=(s[d>>2]|0)+1;else{h=o>>>31;i=s[m>>2]|0;if((i|0)>-1){o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[v>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=i+h;i=0}else i=-1;s[_>>2]=s[_>>2]|i}i=s[d>>2]|0;if(i|0){h=h+255&255;do{o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[v>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=h; +o=0;i=s[d>>2]|0}else o=-1;s[_>>2]=s[_>>2]|o;i=i+-1|0;s[d>>2]=i}while((i|0)!=0)}s[m>>2]=c&255;o=s[u>>2]|0;i=s[b>>2]|0}s[u>>2]=o<<8&2147483392;i=i<<8;s[b>>2]=i;s[p>>2]=(s[p>>2]|0)+8}o=a[I>>0]&7;h=i>>>8;c=r[29962+o>>0]|0;if(!o)i=i-(te(h,c&255)|0)|0;else{x=a[29962+(o+-1)>>0]|0;i=i-(te(h,x)|0)|0;s[u>>2]=(s[u>>2]|0)+i;i=te(h,x-(c&255)|0)|0}s[b>>2]=i;while(1){if(i>>>0>=8388609){x=u;T=d;M=v;break e}o=s[u>>2]|0;c=o>>>23;if((c|0)==255)s[d>>2]=(s[d>>2]|0)+1;else{h=o>>>31;i=s[m>>2]|0;if((i|0)>-1){o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[v>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=i+h;i=0}else i=-1;s[_>>2]=s[_>>2]|i}i=s[d>>2]|0;if(i|0){h=h+255&255;do{o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[v>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=h;o=0;i=s[d>>2]|0}else o=-1;s[_>>2]=s[_>>2]|o;i=i+-1|0;s[d>>2]=i}while((i|0)!=0)}s[m>>2]=c&255;o=s[u>>2]|0;i=s[b>>2]|0}s[u>>2]=o<<8&2147483392;i=i<<8;s[b>>2]=i;s[p>>2]=(s[p>>2]|0)+8}}while(0);A=e+4672|0;u=1;while(1){if((u|0)>=(s[A>>2]|0))break;v=r[I+u>>0]|0;o=v<<24>>24;h=i>>>8;if(v<<24>>24>0){v=a[29396+(o+-1)>>0]|0;i=i-(te(h,v)|0)|0;s[x>>2]=(s[x>>2]|0)+i;i=te(h,v-(a[29396+o>>0]|0)|0)|0}else i=i-(te(h,a[29396+o>>0]|0)|0)|0;s[b>>2]=i;while(1){if(i>>>0>=8388609)break;o=s[x>>2]|0;c=o>>>23;if((c|0)==255)s[T>>2]=(s[T>>2]|0)+1;else{h=o>>>31;i=s[m>>2]|0;if((i|0)>-1){o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=i+h;i=0}else i=-1;s[_>>2]=s[_>>2]|i}i=s[T>>2]|0;if(i|0){h=h+255&255;do{o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=h;o=0;i=s[T>>2]|0}else o=-1;s[_>>2]=s[_>>2]|o;i=i+-1|0;s[T>>2]=i}while((i|0)!=0)}s[m>>2]=c&255;o=s[x>>2]|0;i=s[b>>2]|0}s[x>>2]=o<<8&2147483392;i=i<<8;s[b>>2]=i;s[p>>2]=(s[p>>2]|0)+8}u=u+1|0}u=I+8|0;d=r[u>>0]|0;o=d<<24>>24;v=e+4784|0;c=s[v>>2]|0;h=te(r[R>>0]>>1,n[c>>1]|0)|0;h=(s[c+16>>2]|0)+h|0;c=i>>>8;if(d<<24>>24>0){d=h+(o+-1)|0;i=i-(te(c,a[d>>0]|0)|0)|0;s[x>>2]=(s[x>>2]|0)+i;i=te(c,(a[d>>0]|0)-(a[h+o>>0]|0)|0)|0}else i=i-(te(c,a[h+o>>0]|0)|0)|0;s[b>>2]=i;while(1){if(i>>>0>=8388609)break;o=s[x>>2]|0;c=o>>>23;if((c|0)==255)s[T>>2]=(s[T>>2]|0)+1;else{h=o>>>31;i=s[m>>2]|0;if((i|0)>-1){o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=i+h;i=0}else i=-1;s[_>>2]=s[_>>2]|i}i=s[T>>2]|0;if(i|0){h=h+255&255;do{o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=h;o=0;i=s[T>>2]|0}else o=-1;s[_>>2]=s[_>>2]|o;i=i+-1|0;s[T>>2]=i}while((i|0)!=0)}s[m>>2]=c&255;o=s[x>>2]|0;i=s[b>>2]|0}s[x>>2]=o<<8&2147483392;i=i<<8;s[b>>2]=i;s[p>>2]=(s[p>>2]|0)+8}Bi(E,y,s[v>>2]|0,r[u>>0]|0);h=0;e:while(1){i=s[v>>2]|0;if((h|0)>=(n[i+2>>1]|0))break;d=h+1|0;u=I+8+d|0;o=r[u>>0]|0;if(o<<24>>24>3){i=(s[i+28>>2]|0)+(n[E+(h<<1)>>1]|0)|0;o=s[b>>2]|0;c=o>>>8;y=i+7|0;o=o-(te(c,a[y>>0]|0)|0)|0;o=(s[x>>2]|0)+o|0;s[x>>2]=o;i=te(c,(a[y>>0]|0)-(a[i+8>>0]|0)|0)|0;s[b>>2]=i;while(1){if(i>>>0>=8388609)break;c=o>>>23;if((c|0)==255)s[T>>2]=(s[T>>2]|0)+1;else{h=o>>>31;i=s[m>>2]|0;if((i|0)>-1){o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=i+h;i=0}else i=-1;s[_>>2]=s[_>>2]|i}i=s[T>>2]|0;if(i|0){h=h+255&255;do{o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=h;o=0;i=s[T>>2]|0}else o=-1;s[_>>2]=s[_>>2]|o;i=i+-1|0;s[T>>2]=i}while((i|0)!=0)}s[m>>2]=c&255;o=s[x>>2]|0;i=s[b>>2]|0}o=o<<8&2147483392;s[x>>2]=o;i=i<<8;s[b>>2]=i;s[p>>2]=(s[p>>2]|0)+8}y=r[u>>0]|0;h=y<<24>>24;c=h+-4|0;u=i>>>8;if(y<<24>>24>4){y=a[29970+(h+-5)>>0]|0;o=o+(i-(te(u,y)|0))|0;s[x>>2]=o;i=te(u,y-(a[29970+c>>0]|0)|0)|0}else i=i-(te(u,a[29970+c>>0]|0)|0)|0;s[b>>2]=i;while(1){if(i>>>0>=8388609){h=d;continue e}c=o>>>23;if((c|0)==255)s[T>>2]=(s[T>>2]|0)+1;else{h=o>>>31;i=s[m>>2]|0;if((i|0)>-1){o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=i+h;i=0}else i=-1;s[_>>2]=s[_>>2]|i}i=s[T>>2]|0;if(i|0){h=h+255&255;do{o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=h;o=0;i=s[T>>2]|0}else o=-1;s[_>>2]=s[_>>2]|o;i=i+-1|0;s[T>>2]=i}while((i|0)!=0)}s[m>>2]=c&255;o=s[x>>2]|0;i=s[b>>2]|0}o=o<<8&2147483392;s[x>>2]=o;i=i<<8;s[b>>2]=i;s[p>>2]=(s[p>>2]|0)+8}}if(o<<24>>24>=-3){y=o<<24>>24;i=(s[i+28>>2]|0)+(n[E+(h<<1)>>1]|0)|0;h=s[b>>2]|0;c=h>>>8;u=i+(y+3)|0;h=h-(te(c,a[u>>0]|0)|0)|0;s[x>>2]=(s[x>>2]|0)+h;i=te(c,(a[u>>0]|0)-(a[i+(y+4)>>0]|0)|0)|0;s[b>>2]=i;while(1){if(i>>>0>=8388609){h=d;continue e}o=s[x>>2]|0;c=o>>>23;if((c|0)==255)s[T>>2]=(s[T>>2]|0)+1;else{h=o>>>31;i=s[m>>2]|0;if((i|0)>-1){o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=i+h;i=0}else i=-1;s[_>>2]=s[_>>2]|i}i=s[T>>2]|0;if(i|0){h=h+255&255;do{o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=h;o=0;i=s[T>>2]|0}else o=-1;s[_>>2]=s[_>>2]|o;i=i+-1|0;s[T>>2]=i}while((i|0)!=0)}s[m>>2]=c&255;o=s[x>>2]|0;i=s[b>>2]|0}s[x>>2]=o<<8&2147483392;i=i<<8;s[b>>2]=i;s[p>>2]=(s[p>>2]|0)+8}}y=s[b>>2]|0;i=y-(te(y>>>8,a[(s[i+28>>2]|0)+(n[E+(h<<1)>>1]|0)>>0]|0)|0)|0;s[b>>2]=i;while(1){if(i>>>0>=8388609)break;o=s[x>>2]|0;c=o>>>23;if((c|0)==255)s[T>>2]=(s[T>>2]|0)+1;else{h=o>>>31;i=s[m>>2]|0;if((i|0)>-1){o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=i+h;i=0}else i=-1;s[_>>2]=s[_>>2]|i}i=s[T>>2]|0;if(i|0){h=h+255&255;do{o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=h;o=0;i=s[T>>2]|0}else o=-1;s[_>>2]=s[_>>2]|o;i=i+-1|0;s[T>>2]=i}while((i|0)!=0)}s[m>>2]=c&255;o=s[x>>2]|0;i=s[b>>2]|0}s[x>>2]=o<<8&2147483392;i=i<<8;s[b>>2]=i;s[p>>2]=(s[p>>2]|0)+8}o=-4-(r[u>>0]|0)|0;h=i>>>8;if((o|0)>0){y=a[29970+(o+-1)>>0]|0;i=i-(te(h,y)|0)|0;s[x>>2]=(s[x>>2]|0)+i;i=te(h,y-(a[29970+o>>0]|0)|0)|0}else i=i-(te(h,a[29970+o>>0]|0)|0)|0;s[b>>2]=i;while(1){if(i>>>0>=8388609){h=d;continue e}o=s[x>>2]|0;c=o>>>23;if((c|0)==255)s[T>>2]=(s[T>>2]|0)+1;else{h=o>>>31;i=s[m>>2]|0;if((i|0)>-1){o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=i+h;i=0}else i=-1;s[_>>2]=s[_>>2]|i}i=s[T>>2]|0;if(i|0){h=h+255&255;do{o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=h;o=0;i=s[T>>2]|0}else o=-1;s[_>>2]=s[_>>2]|o;i=i+-1|0;s[T>>2]=i}while((i|0)!=0)}s[m>>2]=c&255;o=s[x>>2]|0;i=s[b>>2]|0}s[x>>2]=o<<8&2147483392;i=i<<8;s[b>>2]=i;s[p>>2]=(s[p>>2]|0)+8}}e:do if((s[A>>2]|0)==4){E=r[I+31>>0]|0;i=E<<24>>24;o=s[b>>2]|0;h=o>>>8;if(E<<24>>24>0){E=a[29939+(i+-1)>>0]|0;y=o-(te(h,E)|0)|0;s[x>>2]=(s[x>>2]|0)+y;i=te(h,E-(a[29939+i>>0]|0)|0)|0}else i=o-(te(h,a[29939+i>>0]|0)|0)|0;s[b>>2]=i;while(1){if(i>>>0>=8388609)break e;o=s[x>>2]|0;c=o>>>23;if((c|0)==255)s[T>>2]=(s[T>>2]|0)+1;else{h=o>>>31;i=s[m>>2]|0;if((i|0)>-1){o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=i+h;i=0}else i=-1;s[_>>2]=s[_>>2]|i}i=s[T>>2]|0;if(i|0){h=h+255&255;do{o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=h;o=0;i=s[T>>2]|0}else o=-1;s[_>>2]=s[_>>2]|o;i=i+-1|0;s[T>>2]=i}while((i|0)!=0)}s[m>>2]=c&255;o=s[x>>2]|0;i=s[b>>2]|0}s[x>>2]=o<<8&2147483392;i=i<<8;s[b>>2]=i;s[p>>2]=(s[p>>2]|0)+8}}while(0);e:do if((r[R>>0]|0)==2){if(k?(s[e+5860>>2]|0)==2:0){o=I+26|0;i=e+5864|0;h=(n[o>>1]|0)-(n[i>>1]|0)|0;if((h+8|0)>>>0<=19){d=h+9|0;c=s[b>>2]|0;u=c>>>8;if((h|0)>-9){h=a[30009+(h+8)>>0]|0;v=c-(te(u,h)|0)|0;s[x>>2]=(s[x>>2]|0)+v;v=0;h=te(u,h-(a[30009+d>>0]|0)|0)|0}else{h=0;S=243}}else{c=s[b>>2]|0;u=c>>>8;d=0;h=1;S=243}if((S|0)==243){v=h;h=c-(te(u,a[30009+d>>0]|0)|0)|0}s[b>>2]=h;while(1){if(h>>>0>=8388609)break;c=s[x>>2]|0;d=c>>>23;if((d|0)==255)s[T>>2]=(s[T>>2]|0)+1;else{u=c>>>31;h=s[m>>2]|0;if((h|0)>-1){c=s[w>>2]|0;if((c+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=c+1;r[(s[t>>2]|0)+c>>0]=h+u;h=0}else h=-1;s[_>>2]=s[_>>2]|h}h=s[T>>2]|0;if(h|0){u=u+255&255;do{c=s[w>>2]|0;if((c+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=c+1;r[(s[t>>2]|0)+c>>0]=u;c=0;h=s[T>>2]|0}else c=-1;s[_>>2]=s[_>>2]|c;h=h+-1|0;s[T>>2]=h}while((h|0)!=0)}s[m>>2]=d&255;c=s[x>>2]|0;h=s[b>>2]|0}s[x>>2]=c<<8&2147483392;h=h<<8;s[b>>2]=h;s[p>>2]=(s[p>>2]|0)+8}if(v)S=260}else S=260;if((S|0)==260){o=I+26|0;h=n[o>>1]|0;d=s[e+4668>>2]|0;i=(h|0)/(d>>1|0)|0;d=h-(te(i<<16>>16,d<<15>>16)|0)|0;h=s[b>>2]|0;c=h>>>8;if((i|0)>0){S=a[29977+(i+-1)>>0]|0;E=h-(te(c,S)|0)|0;s[x>>2]=(s[x>>2]|0)+E;i=te(c,S-(a[29977+i>>0]|0)|0)|0}else i=h-(te(c,a[29977+i>>0]|0)|0)|0;s[b>>2]=i;while(1){if(i>>>0>=8388609)break;h=s[x>>2]|0;u=h>>>23;if((u|0)==255)s[T>>2]=(s[T>>2]|0)+1;else{c=h>>>31;i=s[m>>2]|0;if((i|0)>-1){h=s[w>>2]|0;if((h+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=h+1;r[(s[t>>2]|0)+h>>0]=i+c;i=0}else i=-1;s[_>>2]=s[_>>2]|i}i=s[T>>2]|0;if(i|0){c=c+255&255;do{h=s[w>>2]|0;if((h+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=h+1;r[(s[t>>2]|0)+h>>0]=c;h=0;i=s[T>>2]|0}else h=-1;s[_>>2]=s[_>>2]|h;i=i+-1|0;s[T>>2]=i}while((i|0)!=0)}s[m>>2]=u&255;h=s[x>>2]|0;i=s[b>>2]|0}s[x>>2]=h<<8&2147483392;i=i<<8;s[b>>2]=i;s[p>>2]=(s[p>>2]|0)+8}h=s[e+4776>>2]|0;c=i>>>8;if((d|0)>0){S=h+(d+-1)|0;i=i-(te(c,a[S>>0]|0)|0)|0;s[x>>2]=(s[x>>2]|0)+i;i=te(c,(a[S>>0]|0)-(a[h+d>>0]|0)|0)|0}else i=i-(te(c,a[h+d>>0]|0)|0)|0;s[b>>2]=i;while(1){if(i>>>0>=8388609)break;h=s[x>>2]|0;u=h>>>23;if((u|0)==255)s[T>>2]=(s[T>>2]|0)+1;else{c=h>>>31;i=s[m>>2]|0;if((i|0)>-1){h=s[w>>2]|0;if((h+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=h+1;r[(s[t>>2]|0)+h>>0]=i+c;i=0}else i=-1;s[_>>2]=s[_>>2]|i}i=s[T>>2]|0;if(i|0){c=c+255&255;do{h=s[w>>2]|0;if((h+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=h+1;r[(s[t>>2]|0)+h>>0]=c;h=0;i=s[T>>2]|0}else h=-1;s[_>>2]=s[_>>2]|h;i=i+-1|0;s[T>>2]=i}while((i|0)!=0)}s[m>>2]=u&255;h=s[x>>2]|0;i=s[b>>2]|0}s[x>>2]=h<<8&2147483392;i=i<<8;s[b>>2]=i;s[p>>2]=(s[p>>2]|0)+8}i=e+5864|0}n[i>>1]=n[o>>1]|0;S=r[I+28>>0]|0;i=S<<24>>24;o=s[e+4780>>2]|0;h=s[b>>2]|0;c=h>>>8;if(S<<24>>24>0){S=o+(i+-1)|0;E=h-(te(c,a[S>>0]|0)|0)|0;s[x>>2]=(s[x>>2]|0)+E;i=te(c,(a[S>>0]|0)-(a[o+i>>0]|0)|0)|0}else i=h-(te(c,a[o+i>>0]|0)|0)|0;s[b>>2]=i;while(1){if(i>>>0>=8388609)break;o=s[x>>2]|0;c=o>>>23;if((c|0)==255)s[T>>2]=(s[T>>2]|0)+1;else{h=o>>>31;i=s[m>>2]|0;if((i|0)>-1){o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=i+h;i=0}else i=-1;s[_>>2]=s[_>>2]|i}i=s[T>>2]|0;if(i|0){h=h+255&255;do{o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=h;o=0;i=s[T>>2]|0}else o=-1;s[_>>2]=s[_>>2]|o;i=i+-1|0;s[T>>2]=i}while((i|0)!=0)}s[m>>2]=c&255;o=s[x>>2]|0;i=s[b>>2]|0}s[x>>2]=o<<8&2147483392;i=i<<8;s[b>>2]=i;s[p>>2]=(s[p>>2]|0)+8}d=I+32|0;S=r[d>>0]|0;o=S<<24>>24;h=i>>>8;if(S<<24>>24>0){S=a[29437+(o+-1)>>0]|0;i=i-(te(h,S)|0)|0;s[x>>2]=(s[x>>2]|0)+i;i=te(h,S-(a[29437+o>>0]|0)|0)|0}else i=i-(te(h,a[29437+o>>0]|0)|0)|0;s[b>>2]=i;while(1){if(i>>>0>=8388609){c=i;u=0;break}o=s[x>>2]|0;c=o>>>23;if((c|0)==255)s[T>>2]=(s[T>>2]|0)+1;else{h=o>>>31;i=s[m>>2]|0;if((i|0)>-1){o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=i+h;i=0}else i=-1;s[_>>2]=s[_>>2]|i}i=s[T>>2]|0;if(i|0){h=h+255&255;do{o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=h;o=0;i=s[T>>2]|0}else o=-1;s[_>>2]=s[_>>2]|o;i=i+-1|0;s[T>>2]=i}while((i|0)!=0)}s[m>>2]=c&255;o=s[x>>2]|0;i=s[b>>2]|0}s[x>>2]=o<<8&2147483392;i=i<<8;s[b>>2]=i;s[p>>2]=(s[p>>2]|0)+8}while(1){if((u|0)>=(s[A>>2]|0))break;S=r[I+4+u>>0]|0;i=S<<24>>24;o=s[17376+(r[d>>0]<<2)>>2]|0;h=c>>>8;if(S<<24>>24>0){S=o+(i+-1)|0;E=c-(te(h,a[S>>0]|0)|0)|0;s[x>>2]=(s[x>>2]|0)+E;i=te(h,(a[S>>0]|0)-(a[o+i>>0]|0)|0)|0}else i=c-(te(h,a[o+i>>0]|0)|0)|0;s[b>>2]=i;while(1){if(i>>>0>=8388609)break;o=s[x>>2]|0;c=o>>>23;if((c|0)==255)s[T>>2]=(s[T>>2]|0)+1;else{h=o>>>31;i=s[m>>2]|0;if((i|0)>-1){o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=i+h;i=0}else i=-1;s[_>>2]=s[_>>2]|i}i=s[T>>2]|0;if(i|0){h=h+255&255;do{o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=h;o=0;i=s[T>>2]|0}else o=-1;s[_>>2]=s[_>>2]|o;i=i+-1|0;s[T>>2]=i}while((i|0)!=0)}s[m>>2]=c&255;o=s[x>>2]|0;i=s[b>>2]|0}s[x>>2]=o<<8&2147483392;i=i<<8;s[b>>2]=i;s[p>>2]=(s[p>>2]|0)+8}c=i;u=u+1|0}if(!f){f=r[I+33>>0]|0;i=f<<24>>24;o=c>>>8;if(f<<24>>24>0){f=a[29930+(i+-1)>>0]|0;S=c-(te(o,f)|0)|0;s[x>>2]=(s[x>>2]|0)+S;i=te(o,f-(a[29930+i>>0]|0)|0)|0}else i=c-(te(o,a[29930+i>>0]|0)|0)|0;s[b>>2]=i;while(1){if(i>>>0>=8388609)break e;o=s[x>>2]|0;c=o>>>23;if((c|0)==255)s[T>>2]=(s[T>>2]|0)+1;else{h=o>>>31;i=s[m>>2]|0;if((i|0)>-1){o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=i+h;i=0}else i=-1;s[_>>2]=s[_>>2]|i}i=s[T>>2]|0;if(i|0){h=h+255&255;do{o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=h;o=0;i=s[T>>2]|0}else o=-1;s[_>>2]=s[_>>2]|o;i=i+-1|0;s[T>>2]=i}while((i|0)!=0)}s[m>>2]=c&255;o=s[x>>2]|0;i=s[b>>2]|0}s[x>>2]=o<<8&2147483392;i=i<<8;s[b>>2]=i;s[p>>2]=(s[p>>2]|0)+8}}}while(0);s[e+5860>>2]=r[R>>0];e=r[I+34>>0]|0;i=e<<24>>24;o=s[b>>2]|0;h=o>>>8;if(e<<24>>24>0){e=a[29947+(i+-1)>>0]|0;I=o-(te(h,e)|0)|0;s[x>>2]=(s[x>>2]|0)+I;i=te(h,e-(a[29947+i>>0]|0)|0)|0}else i=o-(te(h,a[29947+i>>0]|0)|0)|0;s[b>>2]=i;while(1){if(i>>>0>=8388609)break;o=s[x>>2]|0;c=o>>>23;if((c|0)==255)s[T>>2]=(s[T>>2]|0)+1;else{h=o>>>31;i=s[m>>2]|0;if((i|0)>-1){o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=i+h;i=0}else i=-1;s[_>>2]=s[_>>2]|i}i=s[T>>2]|0;if(i|0){h=h+255&255;do{o=s[w>>2]|0;if((o+(s[g>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[w>>2]=o+1;r[(s[t>>2]|0)+o>>0]=h;o=0;i=s[T>>2]|0}else o=-1;s[_>>2]=s[_>>2]|o;i=i+-1|0;s[T>>2]=i}while((i|0)!=0)}s[m>>2]=c&255;o=s[x>>2]|0;i=s[b>>2]|0}s[x>>2]=o<<8&2147483392;i=i<<8;s[b>>2]=i;s[p>>2]=(s[p>>2]|0)+8}l=C;return}function Li(e,t,i,n,o){e=e|0;t=t|0;i=i|0;n=n|0;o=o|0;var f=0,h=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0,C=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,q=0,H=0,G=0,V=0;V=l;l=l+96|0;G=V+56|0;C=V+40|0;P=V+32|0;w=V;s[w>>2]=0;s[w+4>>2]=0;s[w+8>>2]=0;s[w+12>>2]=0;s[w+16>>2]=0;s[w+20>>2]=0;s[w+24>>2]=0;s[w+28>>2]=0;f=o>>4;if((f<<4|0)<(o|0)){f=f+1|0;h=n+o|0;c=h+16|0;do{r[h>>0]=0;h=h+1|0}while((h|0)<(c|0))}h=f<<4;I=l;l=l+((1*(h<<2)|0)+15&-16)|0;c=0;while(1){if((c|0)>=(h|0))break;z=r[n+c>>0]|0;H=z<<24>>24;s[I+(c<<2)>>2]=z<<24>>24>0?H:0-H|0;H=c|1;z=r[n+H>>0]|0;q=z<<24>>24;s[I+(H<<2)>>2]=z<<24>>24>0?q:0-q|0;H=c|2;q=r[n+H>>0]|0;z=q<<24>>24;s[I+(H<<2)>>2]=q<<24>>24>0?z:0-z|0;H=c|3;z=r[n+H>>0]|0;q=z<<24>>24;s[I+(H<<2)>>2]=z<<24>>24>0?q:0-q|0;c=c+4|0}H=l;l=l+((1*(f<<2)|0)+15&-16)|0;O=l;l=l+((1*(f<<2)|0)+15&-16)|0;b=I;m=0;while(1){if((m|0)>=(f|0))break;d=O+(m<<2)|0;s[d>>2]=0;p=H+(m<<2)|0;c=0;e:while(1){if((c|0)<8){h=c<<1;h=(s[b+(h<<2)>>2]|0)+(s[b+((h|1)<<2)>>2]|0)|0;if((h|0)>8)u=1;else{s[w+(c<<2)>>2]=h;c=c+1|0;continue}}else u=0;c=0;while(1){if((c|0)>=4){h=0;break}h=c<<1;h=(s[w+(h<<2)>>2]|0)+(s[w+((h|1)<<2)>>2]|0)|0;if((h|0)>10){h=1;break}s[w+(c<<2)>>2]=h;c=c+1|0}u=u+h|0;c=0;while(1){if((c|0)>=2){h=0;break}h=c<<1;h=(s[w+(h<<2)>>2]|0)+(s[w+((h|1)<<2)>>2]|0)|0;if((h|0)>12){h=1;break}s[w+(c<<2)>>2]=h;c=c+1|0}u=u+h|0;c=0;while(1){if((c|0)>=1){h=0;break}h=c<<1;h=(s[w+(h<<2)>>2]|0)+(s[w+((h|1)<<2)>>2]|0)|0;if((h|0)>16){h=1;break}s[p+(c<<2)>>2]=h;c=c+1|0}if((u|0)==(0-h|0))break;s[d>>2]=(s[d>>2]|0)+1;h=0;while(1){if((h|0)==16){c=0;continue e}q=b+(h<<2)|0;s[q>>2]=s[q>>2]>>1;h=h+1|0}}b=b+64|0;m=m+1|0}m=t>>1;v=0;d=0;p=2147483647;while(1){if((d|0)==9)break;c=30270+(d*18|0)+17|0;u=0;b=a[30450+(m*9|0)+d>>0]|0;while(1){if((u|0)>=(f|0))break;if((s[O+(u<<2)>>2]|0)>0)h=c;else h=(s[H+(u<<2)>>2]|0)+(30270+(d*18|0))|0;u=u+1|0;b=b+(a[h>>0]|0)|0}q=(b|0)<(p|0);v=q?d:v;d=d+1|0;p=q?b:p}q=e+28|0;h=s[q>>2]|0;c=h>>>8;if((v|0)>0){z=a[v+-1+(30432+(m*9|0))>>0]|0;h=h-(te(c,z)|0)|0;N=e+32|0;s[N>>2]=(s[N>>2]|0)+h;h=te(c,z-(a[30432+(m*9|0)+v>>0]|0)|0)|0;s[q>>2]=h}else{h=h-(te(c,a[30432+(m*9|0)+v>>0]|0)|0)|0;s[q>>2]=h;N=e+32|0}D=e+36|0;L=e+20|0;B=e+40|0;U=e+24|0;j=e+8|0;F=e+4|0;z=e+44|0;while(1){if(h>>>0>=8388609)break;c=s[N>>2]|0;d=c>>>23;if((d|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{u=c>>>31;h=s[B>>2]|0;if((h|0)>-1){c=s[U>>2]|0;if((c+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=c+1;r[(s[e>>2]|0)+c>>0]=h+u;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){u=u+255&255;do{c=s[U>>2]|0;if((c+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=c+1;r[(s[e>>2]|0)+c>>0]=u;c=0;h=s[D>>2]|0}else c=-1;s[z>>2]=s[z>>2]|c;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=d&255;c=s[N>>2]|0;h=s[q>>2]|0}s[N>>2]=c<<8&2147483392;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}w=30090+(v*18|0)+16|0;g=30090+(v*18|0)+17|0;m=0;while(1){if((m|0)>=(f|0))break;p=s[O+(m<<2)>>2]|0;e:do if(!p){c=s[H+(m<<2)>>2]|0;u=h>>>8;if((c|0)>0){R=a[c+-1+(30090+(v*18|0))>>0]|0;h=h-(te(u,R)|0)|0;s[N>>2]=(s[N>>2]|0)+h;h=te(u,R-(a[30090+(v*18|0)+c>>0]|0)|0)|0}else h=h-(te(u,a[30090+(v*18|0)+c>>0]|0)|0)|0;s[q>>2]=h;while(1){if(h>>>0>=8388609)break e;c=s[N>>2]|0;d=c>>>23;if((d|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{u=c>>>31;h=s[B>>2]|0;if((h|0)>-1){c=s[U>>2]|0;if((c+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=c+1;r[(s[e>>2]|0)+c>>0]=h+u;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){u=u+255&255;do{c=s[U>>2]|0;if((c+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=c+1;r[(s[e>>2]|0)+c>>0]=u;c=0;h=s[D>>2]|0}else c=-1;s[z>>2]=s[z>>2]|c;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=d&255;c=s[N>>2]|0;h=s[q>>2]|0}s[N>>2]=c<<8&2147483392;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}}else{x=h>>>8;R=a[w>>0]|0;c=h-(te(x,R)|0)|0;c=(s[N>>2]|0)+c|0;s[N>>2]=c;h=te(x,R-(a[g>>0]|0)|0)|0;s[q>>2]=h;while(1){if(h>>>0>=8388609)break;d=c>>>23;if((d|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{u=c>>>31;h=s[B>>2]|0;if((h|0)>-1){c=s[U>>2]|0;if((c+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=c+1;r[(s[e>>2]|0)+c>>0]=h+u;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){u=u+255&255;do{c=s[U>>2]|0;if((c+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=c+1;r[(s[e>>2]|0)+c>>0]=u;c=0;h=s[D>>2]|0}else c=-1;s[z>>2]=s[z>>2]|c;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=d&255;c=s[N>>2]|0;h=s[q>>2]|0}c=c<<8&2147483392;s[N>>2]=c;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}b=p+-1|0;p=0;while(1){if((p|0)>=(b|0))break;R=h>>>8<<1;c=c+(h-R)|0;s[N>>2]=c;s[q>>2]=R;h=R;while(1){if(h>>>0>=8388609)break;d=c>>>23;if((d|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{u=c>>>31;h=s[B>>2]|0;if((h|0)>-1){c=s[U>>2]|0;if((c+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=c+1;r[(s[e>>2]|0)+c>>0]=h+u;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){u=u+255&255;do{c=s[U>>2]|0;if((c+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=c+1;r[(s[e>>2]|0)+c>>0]=u;c=0;h=s[D>>2]|0}else c=-1;s[z>>2]=s[z>>2]|c;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=d&255;c=s[N>>2]|0;h=s[q>>2]|0}c=c<<8&2147483392;s[N>>2]=c;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}p=p+1|0}u=s[H+(m<<2)>>2]|0;d=h>>>8;if((u|0)>0){R=a[30252+(u+-1)>>0]|0;c=c+(h-(te(d,R)|0))|0;s[N>>2]=c;h=te(d,R-(a[30252+u>>0]|0)|0)|0}else h=h-(te(d,a[30252+u>>0]|0)|0)|0;s[q>>2]=h;while(1){if(h>>>0>=8388609)break e;d=c>>>23;if((d|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{u=c>>>31;h=s[B>>2]|0;if((h|0)>-1){c=s[U>>2]|0;if((c+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=c+1;r[(s[e>>2]|0)+c>>0]=h+u;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){u=u+255&255;do{c=s[U>>2]|0;if((c+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=c+1;r[(s[e>>2]|0)+c>>0]=u;c=0;h=s[D>>2]|0}else c=-1;s[z>>2]=s[z>>2]|c;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=d&255;c=s[N>>2]|0;h=s[q>>2]|0}c=c<<8&2147483392;s[N>>2]=c;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}}while(0);m=m+1|0}v=G+4|0;_=G+8|0;y=C+4|0;k=G+12|0;E=C+8|0;A=P+4|0;S=G+16|0;M=G+20|0;T=G+24|0;x=C+12|0;R=G+28|0;g=0;c=0;while(1){if((g|0)>=(f|0)){v=0;break}if((s[H+(g<<2)>>2]|0)>0){w=I+(g<<4<<2)|0;u=0;while(1){if((u|0)==8){u=0;break}m=u<<1;s[G+(u<<2)>>2]=(s[w+(m<<2)>>2]|0)+(s[w+((m|1)<<2)>>2]|0);u=u+1|0}while(1){if((u|0)==4){u=0;break}m=u<<1;s[C+(u<<2)>>2]=(s[G+(m<<2)>>2]|0)+(s[G+((m|1)<<2)>>2]|0);u=u+1|0}while(1){if((u|0)==2){u=0;break}m=u<<1;s[P+(u<<2)>>2]=(s[C+(m<<2)>>2]|0)+(s[C+((m|1)<<2)>>2]|0);u=u+1|0}while(1){if((u|0)==1)break;c=u<<1;u=u+1|0;c=(s[P+(c<<2)>>2]|0)+(s[P+((c|1)<<2)>>2]|0)|0}b=s[P>>2]|0;e:do if((c|0)>0){u=30924+(a[31076+c>>0]|0)|0;d=h>>>8;if((b|0)>0){m=a[u+(b+-1)>>0]|0;h=h-(te(d,m)|0)|0;s[N>>2]=(s[N>>2]|0)+h;h=te(d,m-(a[u+b>>0]|0)|0)|0}else h=h-(te(d,a[u+b>>0]|0)|0)|0;s[q>>2]=h;while(1){if(h>>>0>=8388609)break e;u=s[N>>2]|0;p=u>>>23;if((p|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{d=u>>>31;h=s[B>>2]|0;if((h|0)>-1){u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=h+d;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){d=d+255&255;do{u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=d;u=0;h=s[D>>2]|0}else u=-1;s[z>>2]=s[z>>2]|u;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=p&255;u=s[N>>2]|0;h=s[q>>2]|0}s[N>>2]=u<<8&2147483392;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}}while(0);m=s[C>>2]|0;e:do if((b|0)>0){u=30772+(a[31076+b>>0]|0)|0;d=h>>>8;if((m|0)>0){b=a[u+(m+-1)>>0]|0;h=h-(te(d,b)|0)|0;s[N>>2]=(s[N>>2]|0)+h;h=te(d,b-(a[u+m>>0]|0)|0)|0}else h=h-(te(d,a[u+m>>0]|0)|0)|0;s[q>>2]=h;while(1){if(h>>>0>=8388609)break e;u=s[N>>2]|0;p=u>>>23;if((p|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{d=u>>>31;h=s[B>>2]|0;if((h|0)>-1){u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=h+d;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){d=d+255&255;do{u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=d;u=0;h=s[D>>2]|0}else u=-1;s[z>>2]=s[z>>2]|u;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=p&255;u=s[N>>2]|0;h=s[q>>2]|0}s[N>>2]=u<<8&2147483392;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}}while(0);b=s[G>>2]|0;e:do if((m|0)>0){u=30620+(a[31076+m>>0]|0)|0;d=h>>>8;if((b|0)>0){m=a[u+(b+-1)>>0]|0;h=h-(te(d,m)|0)|0;s[N>>2]=(s[N>>2]|0)+h;h=te(d,m-(a[u+b>>0]|0)|0)|0}else h=h-(te(d,a[u+b>>0]|0)|0)|0;s[q>>2]=h;while(1){if(h>>>0>=8388609)break e;u=s[N>>2]|0;p=u>>>23;if((p|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{d=u>>>31;h=s[B>>2]|0;if((h|0)>-1){u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=h+d;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){d=d+255&255;do{u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=d;u=0;h=s[D>>2]|0}else u=-1;s[z>>2]=s[z>>2]|u;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=p&255;u=s[N>>2]|0;h=s[q>>2]|0}s[N>>2]=u<<8&2147483392;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}}while(0);p=s[w>>2]|0;e:do if((b|0)>0){u=30468+(a[31076+b>>0]|0)|0;d=h>>>8;if((p|0)>0){m=a[u+(p+-1)>>0]|0;h=h-(te(d,m)|0)|0;s[N>>2]=(s[N>>2]|0)+h;h=te(d,m-(a[u+p>>0]|0)|0)|0}else h=h-(te(d,a[u+p>>0]|0)|0)|0;s[q>>2]=h;while(1){if(h>>>0>=8388609)break e;u=s[N>>2]|0;p=u>>>23;if((p|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{d=u>>>31;h=s[B>>2]|0;if((h|0)>-1){u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=h+d;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){d=d+255&255;do{u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=d;u=0;h=s[D>>2]|0}else u=-1;s[z>>2]=s[z>>2]|u;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=p&255;u=s[N>>2]|0;h=s[q>>2]|0}s[N>>2]=u<<8&2147483392;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}}while(0);p=s[w+8>>2]|0;u=s[v>>2]|0;e:do if((u|0)>0){u=30468+(a[31076+u>>0]|0)|0;d=h>>>8;if((p|0)>0){m=a[u+(p+-1)>>0]|0;h=h-(te(d,m)|0)|0;s[N>>2]=(s[N>>2]|0)+h;h=te(d,m-(a[u+p>>0]|0)|0)|0}else h=h-(te(d,a[u+p>>0]|0)|0)|0;s[q>>2]=h;while(1){if(h>>>0>=8388609)break e;u=s[N>>2]|0;p=u>>>23;if((p|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{d=u>>>31;h=s[B>>2]|0;if((h|0)>-1){u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=h+d;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){d=d+255&255;do{u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=d;u=0;h=s[D>>2]|0}else u=-1;s[z>>2]=s[z>>2]|u;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=p&255;u=s[N>>2]|0;h=s[q>>2]|0}s[N>>2]=u<<8&2147483392;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}}while(0);b=s[_>>2]|0;u=s[y>>2]|0;e:do if((u|0)>0){u=30620+(a[31076+u>>0]|0)|0;d=h>>>8;if((b|0)>0){m=a[u+(b+-1)>>0]|0;h=h-(te(d,m)|0)|0;s[N>>2]=(s[N>>2]|0)+h;h=te(d,m-(a[u+b>>0]|0)|0)|0}else h=h-(te(d,a[u+b>>0]|0)|0)|0;s[q>>2]=h;while(1){if(h>>>0>=8388609)break e;u=s[N>>2]|0;p=u>>>23;if((p|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{d=u>>>31;h=s[B>>2]|0;if((h|0)>-1){u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=h+d;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){d=d+255&255;do{u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=d;u=0;h=s[D>>2]|0}else u=-1;s[z>>2]=s[z>>2]|u;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=p&255;u=s[N>>2]|0;h=s[q>>2]|0}s[N>>2]=u<<8&2147483392;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}}while(0);p=s[w+16>>2]|0;e:do if((b|0)>0){u=30468+(a[31076+b>>0]|0)|0;d=h>>>8;if((p|0)>0){m=a[u+(p+-1)>>0]|0;h=h-(te(d,m)|0)|0;s[N>>2]=(s[N>>2]|0)+h;h=te(d,m-(a[u+p>>0]|0)|0)|0}else h=h-(te(d,a[u+p>>0]|0)|0)|0;s[q>>2]=h;while(1){if(h>>>0>=8388609)break e;u=s[N>>2]|0;p=u>>>23;if((p|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{d=u>>>31;h=s[B>>2]|0;if((h|0)>-1){u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=h+d;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){d=d+255&255;do{u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=d;u=0;h=s[D>>2]|0}else u=-1;s[z>>2]=s[z>>2]|u;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=p&255;u=s[N>>2]|0;h=s[q>>2]|0}s[N>>2]=u<<8&2147483392;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}}while(0);p=s[w+24>>2]|0;u=s[k>>2]|0;e:do if((u|0)>0){u=30468+(a[31076+u>>0]|0)|0;d=h>>>8;if((p|0)>0){m=a[u+(p+-1)>>0]|0;h=h-(te(d,m)|0)|0;s[N>>2]=(s[N>>2]|0)+h;h=te(d,m-(a[u+p>>0]|0)|0)|0}else h=h-(te(d,a[u+p>>0]|0)|0)|0;s[q>>2]=h;while(1){if(h>>>0>=8388609)break e;u=s[N>>2]|0;p=u>>>23;if((p|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{d=u>>>31;h=s[B>>2]|0;if((h|0)>-1){u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=h+d;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){d=d+255&255;do{u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=d;u=0;h=s[D>>2]|0}else u=-1;s[z>>2]=s[z>>2]|u;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=p&255;u=s[N>>2]|0;h=s[q>>2]|0}s[N>>2]=u<<8&2147483392;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}}while(0);b=s[E>>2]|0;u=s[A>>2]|0;e:do if((u|0)>0){u=30772+(a[31076+u>>0]|0)|0;d=h>>>8;if((b|0)>0){m=a[u+(b+-1)>>0]|0;h=h-(te(d,m)|0)|0;s[N>>2]=(s[N>>2]|0)+h;h=te(d,m-(a[u+b>>0]|0)|0)|0}else h=h-(te(d,a[u+b>>0]|0)|0)|0;s[q>>2]=h;while(1){if(h>>>0>=8388609)break e;u=s[N>>2]|0;p=u>>>23;if((p|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{d=u>>>31;h=s[B>>2]|0;if((h|0)>-1){u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=h+d;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){d=d+255&255;do{u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=d;u=0;h=s[D>>2]|0}else u=-1;s[z>>2]=s[z>>2]|u;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=p&255;u=s[N>>2]|0;h=s[q>>2]|0}s[N>>2]=u<<8&2147483392;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}}while(0);m=s[S>>2]|0;e:do if((b|0)>0){u=30620+(a[31076+b>>0]|0)|0;d=h>>>8;if((m|0)>0){b=a[u+(m+-1)>>0]|0;h=h-(te(d,b)|0)|0;s[N>>2]=(s[N>>2]|0)+h;h=te(d,b-(a[u+m>>0]|0)|0)|0}else h=h-(te(d,a[u+m>>0]|0)|0)|0;s[q>>2]=h;while(1){if(h>>>0>=8388609)break e;u=s[N>>2]|0;p=u>>>23;if((p|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{d=u>>>31;h=s[B>>2]|0;if((h|0)>-1){u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=h+d;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){d=d+255&255;do{u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=d;u=0;h=s[D>>2]|0}else u=-1;s[z>>2]=s[z>>2]|u;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=p&255;u=s[N>>2]|0;h=s[q>>2]|0}s[N>>2]=u<<8&2147483392;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}}while(0);p=s[w+32>>2]|0;e:do if((m|0)>0){u=30468+(a[31076+m>>0]|0)|0;d=h>>>8;if((p|0)>0){m=a[u+(p+-1)>>0]|0;h=h-(te(d,m)|0)|0;s[N>>2]=(s[N>>2]|0)+h;h=te(d,m-(a[u+p>>0]|0)|0)|0}else h=h-(te(d,a[u+p>>0]|0)|0)|0;s[q>>2]=h;while(1){if(h>>>0>=8388609)break e;u=s[N>>2]|0;p=u>>>23;if((p|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{d=u>>>31;h=s[B>>2]|0;if((h|0)>-1){u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=h+d;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){d=d+255&255;do{u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=d;u=0;h=s[D>>2]|0}else u=-1;s[z>>2]=s[z>>2]|u;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=p&255;u=s[N>>2]|0;h=s[q>>2]|0}s[N>>2]=u<<8&2147483392;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}}while(0);p=s[w+40>>2]|0;u=s[M>>2]|0;e:do if((u|0)>0){u=30468+(a[31076+u>>0]|0)|0;d=h>>>8;if((p|0)>0){m=a[u+(p+-1)>>0]|0;h=h-(te(d,m)|0)|0;s[N>>2]=(s[N>>2]|0)+h;h=te(d,m-(a[u+p>>0]|0)|0)|0}else h=h-(te(d,a[u+p>>0]|0)|0)|0;s[q>>2]=h;while(1){if(h>>>0>=8388609)break e;u=s[N>>2]|0;p=u>>>23;if((p|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{d=u>>>31;h=s[B>>2]|0;if((h|0)>-1){u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=h+d;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){d=d+255&255;do{u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=d;u=0;h=s[D>>2]|0}else u=-1;s[z>>2]=s[z>>2]|u;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=p&255;u=s[N>>2]|0;h=s[q>>2]|0}s[N>>2]=u<<8&2147483392;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}}while(0);b=s[T>>2]|0;u=s[x>>2]|0;e:do if((u|0)>0){u=30620+(a[31076+u>>0]|0)|0;d=h>>>8;if((b|0)>0){m=a[u+(b+-1)>>0]|0;h=h-(te(d,m)|0)|0;s[N>>2]=(s[N>>2]|0)+h;h=te(d,m-(a[u+b>>0]|0)|0)|0}else h=h-(te(d,a[u+b>>0]|0)|0)|0;s[q>>2]=h;while(1){if(h>>>0>=8388609)break e;u=s[N>>2]|0;p=u>>>23;if((p|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{d=u>>>31;h=s[B>>2]|0;if((h|0)>-1){u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=h+d;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){d=d+255&255;do{u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=d;u=0;h=s[D>>2]|0}else u=-1;s[z>>2]=s[z>>2]|u;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=p&255;u=s[N>>2]|0;h=s[q>>2]|0}s[N>>2]=u<<8&2147483392;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}}while(0);p=s[w+48>>2]|0;e:do if((b|0)>0){u=30468+(a[31076+b>>0]|0)|0;d=h>>>8;if((p|0)>0){m=a[u+(p+-1)>>0]|0;h=h-(te(d,m)|0)|0;s[N>>2]=(s[N>>2]|0)+h;h=te(d,m-(a[u+p>>0]|0)|0)|0}else h=h-(te(d,a[u+p>>0]|0)|0)|0;s[q>>2]=h;while(1){if(h>>>0>=8388609)break e;u=s[N>>2]|0;p=u>>>23;if((p|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{d=u>>>31;h=s[B>>2]|0;if((h|0)>-1){u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=h+d;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){d=d+255&255;do{u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=d;u=0;h=s[D>>2]|0}else u=-1;s[z>>2]=s[z>>2]|u;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=p&255;u=s[N>>2]|0;h=s[q>>2]|0}s[N>>2]=u<<8&2147483392;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}}while(0);p=s[w+56>>2]|0;u=s[R>>2]|0;e:do if((u|0)>0){u=30468+(a[31076+u>>0]|0)|0;d=h>>>8;if((p|0)>0){w=a[u+(p+-1)>>0]|0;h=h-(te(d,w)|0)|0;s[N>>2]=(s[N>>2]|0)+h;h=te(d,w-(a[u+p>>0]|0)|0)|0}else h=h-(te(d,a[u+p>>0]|0)|0)|0;s[q>>2]=h;while(1){if(h>>>0>=8388609)break e;u=s[N>>2]|0;p=u>>>23;if((p|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{d=u>>>31;h=s[B>>2]|0;if((h|0)>-1){u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=h+d;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){d=d+255&255;do{u=s[U>>2]|0;if((u+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=u+1;r[(s[e>>2]|0)+u>>0]=d;u=0;h=s[D>>2]|0}else u=-1;s[z>>2]=s[z>>2]|u;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=p&255;u=s[N>>2]|0;h=s[q>>2]|0}s[N>>2]=u<<8&2147483392;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}}while(0)}g=g+1|0}while(1){if((v|0)>=(f|0))break;w=s[O+(v<<2)>>2]|0;e:do if((w|0)>0){g=n+(v<<4)|0;m=0;while(1){if((m|0)==16)break e;c=r[g+m>>0]|0;b=c<<24>>24;b=(c<<24>>24>0?b:0-b|0)<<24>>24;c=w;t:while(1){p=c+-1|0;if((c|0)<=1)break;c=b>>>p&1;u=h>>>8;d=r[29928+c>>0]|0;if(!c)h=h-(te(u,d&255)|0)|0;else{P=a[29928+(c+-1)>>0]|0;h=h-(te(u,P)|0)|0;s[N>>2]=(s[N>>2]|0)+h;h=te(u,P-(d&255)|0)|0}s[q>>2]=h;while(1){if(h>>>0>=8388609){c=p;continue t}c=s[N>>2]|0;d=c>>>23;if((d|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{ +u=c>>>31;h=s[B>>2]|0;if((h|0)>-1){c=s[U>>2]|0;if((c+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=c+1;r[(s[e>>2]|0)+c>>0]=h+u;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){u=u+255&255;do{c=s[U>>2]|0;if((c+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=c+1;r[(s[e>>2]|0)+c>>0]=u;c=0;h=s[D>>2]|0}else c=-1;s[z>>2]=s[z>>2]|c;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=d&255;c=s[N>>2]|0;h=s[q>>2]|0}s[N>>2]=c<<8&2147483392;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}}c=b&1;u=h>>>8;d=r[29928+c>>0]|0;if(!c)h=h-(te(u,d&255)|0)|0;else{P=a[29928+(c+-1)>>0]|0;h=h-(te(u,P)|0)|0;s[N>>2]=(s[N>>2]|0)+h;h=te(u,P-(d&255)|0)|0}s[q>>2]=h;while(1){if(h>>>0>=8388609)break;c=s[N>>2]|0;d=c>>>23;if((d|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{u=c>>>31;h=s[B>>2]|0;if((h|0)>-1){c=s[U>>2]|0;if((c+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=c+1;r[(s[e>>2]|0)+c>>0]=h+u;h=0}else h=-1;s[z>>2]=s[z>>2]|h}h=s[D>>2]|0;if(h|0){u=u+255&255;do{c=s[U>>2]|0;if((c+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=c+1;r[(s[e>>2]|0)+c>>0]=u;c=0;h=s[D>>2]|0}else c=-1;s[z>>2]=s[z>>2]|c;h=h+-1|0;s[D>>2]=h}while((h|0)!=0)}s[B>>2]=d&255;c=s[N>>2]|0;h=s[q>>2]|0}s[N>>2]=c<<8&2147483392;h=h<<8;s[q>>2]=h;s[L>>2]=(s[L>>2]|0)+8}m=m+1|0}}while(0);v=v+1|0}r[G+1>>0]=0;w=31093+(((t<<1)+i<<16>>16)*7|0)|0;m=o+8>>4;f=h;b=0;p=n;while(1){if((b|0)>=(m|0))break;h=s[H+(b<<2)>>2]|0;e:do if((h|0)>0){r[G>>0]=r[w+((h&30)>>>0<6?h&31:6)>>0]|0;d=0;while(1){if((d|0)==16)break e;h=r[p+d>>0]|0;t:do if(h<<24>>24){h=h<<24>>24>>15;c=h+1|0;u=f>>>8;if((h|0)>-1){n=a[G+h>>0]|0;f=f-(te(u,n)|0)|0;s[N>>2]=(s[N>>2]|0)+f;f=te(u,n-(a[G+c>>0]|0)|0)|0}else f=f-(te(u,a[G+c>>0]|0)|0)|0;s[q>>2]=f;while(1){if(f>>>0>=8388609)break t;h=s[N>>2]|0;u=h>>>23;if((u|0)==255)s[D>>2]=(s[D>>2]|0)+1;else{c=h>>>31;f=s[B>>2]|0;if((f|0)>-1){h=s[U>>2]|0;if((h+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=h+1;r[(s[e>>2]|0)+h>>0]=f+c;f=0}else f=-1;s[z>>2]=s[z>>2]|f}f=s[D>>2]|0;if(f|0){c=c+255&255;do{h=s[U>>2]|0;if((h+(s[j>>2]|0)|0)>>>0<(s[F>>2]|0)>>>0){s[U>>2]=h+1;r[(s[e>>2]|0)+h>>0]=c;h=0;f=s[D>>2]|0}else h=-1;s[z>>2]=s[z>>2]|h;f=f+-1|0;s[D>>2]=f}while((f|0)!=0)}s[B>>2]=u&255;h=s[N>>2]|0;f=s[q>>2]|0}s[N>>2]=h<<8&2147483392;f=f<<8;s[q>>2]=f;s[L>>2]=(s[L>>2]|0)+8}}while(0);d=d+1|0}}while(0);b=b+1|0;p=p+16|0}l=V;return}function Bi(e,t,i,a){e=e|0;t=t|0;i=i|0;a=a|0;var o=0,f=0,h=0,c=0,l=0;h=i+2|0;o=n[h>>1]|0;a=(te(o<<16>>16,a)|0)/2|0;f=i+20|0;a=(s[i+24>>2]|0)+a|0;i=0;while(1){if((i|0)>=(o<<16>>16|0))break;l=r[a>>0]|0;c=l&255;n[e+(i<<1)>>1]=(c>>>1&7)*9;r[t+i>>0]=r[(s[f>>2]|0)+(i+((n[h>>1]|0)+-1&0-(c&1)))>>0]|0;o=i|1;n[e+(o<<1)>>1]=((l&255)>>>5&255)*9;r[t+o>>0]=r[(s[f>>2]|0)+(i+((n[h>>1]|0)+-1&0-(c>>>4&1))+1)>>0]|0;o=n[h>>1]|0;a=a+1|0;i=i+2|0}return}function Ui(e,t,i,a,f,h,c,u,d,p,b){e=e|0;t=t|0;i=i|0;a=a|0;f=f|0;h=h|0;c=c|0;u=u|0;d=d|0;p=p|0;b=b|0;var m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0,C=0;R=l;l=l+16|0;M=R+8|0;k=R+4|0;y=R;T=t+-4|0;m=b+2|0;x=l;l=l+((1*(m<<1)|0)+15&-16)|0;w=0;while(1){if((w|0)>=(m|0))break;A=w+-2|0;_=n[t+(A<<1)>>1]|0;A=n[i+(A<<1)>>1]|0;E=_+A|0;A=_-A|0;n[T+(w<<1)>>1]=(E>>>1)+(E&1);A=(A>>1)+(A&1)|0;n[x+(w<<1)>>1]=(A|0)>32767?32767:((A|0)<-32768?-32768:A)&65535;w=w+1|0}_=e+4|0;g=o[_>>1]|o[_+2>>1]<<16;n[T>>1]=g;n[T+2>>1]=g>>>16;g=e+8|0;w=o[g>>1]|o[g+2>>1]<<16;s[x>>2]=w;m=T+(b<<1)|0;m=o[m>>1]|o[m+2>>1]<<16;n[_>>1]=m;n[_+2>>1]=m>>>16;_=x+(b<<1)|0;_=o[_>>1]|o[_+2>>1]<<16;n[g>>1]=_;n[g+2>>1]=_>>>16;g=l;l=l+((1*(b<<1)|0)+15&-16)|0;_=l;l=l+((1*(b<<1)|0)+15&-16)|0;m=0;while(1){if((m|0)>=(b|0))break;A=m+1|0;v=n[T+(A<<1)>>1]|0;E=((n[T+(m<<1)>>1]|0)+(n[T+(m+2<<1)>>1]|0)+(v<<16>>16<<1)>>1)+1>>1;n[g+(m<<1)>>1]=E;n[_+(m<<1)>>1]=(v&65535)-E;m=A}t=l;l=l+((1*(b<<1)|0)+15&-16)|0;v=l;l=l+((1*(b<<1)|0)+15&-16)|0;m=w&65535;w=0;while(1){if((w|0)>=(b|0))break;A=w+1|0;E=n[x+(A<<1)>>1]|0;I=((m<<16>>16)+(n[x+(w+2<<1)>>1]|0)+(E<<16>>16<<1)>>1)+1>>1;n[t+(w<<1)>>1]=I;n[v+(w<<1)>>1]=(E&65535)-I;m=E;w=A}m=(p*10|0)==(b|0);E=m?328:655;u=u<<16>>16;u=te(u,u)|0;u=(te(u>>>16,E)|0)+((te(u&65535,E)|0)>>>16)|0;E=Yi(k,g,t,e+12|0,b,u)|0;s[M>>2]=E;v=Yi(y,_,v,e+20|0,b,u)|0;A=M+4|0;s[A>>2]=v;g=(s[y>>2]|0)+((s[k>>2]<<16>>16)*3|0)|0;g=(g|0)<65536?g:65536;_=c-(m?1200:600)|0;_=(_|0)<1?1:_;t=((p<<16>>16)*900|0)+2e3|0;m=g*3|0;w=ji(_,m+851968|0,19)|0;s[h>>2]=w;if((w|0)<(t|0)){s[h>>2]=t;c=_-t|0;s[h+4>>2]=c;I=t<<16>>16;m=ji((c<<1)-t|0,(te(m+65536>>16,I)|0)+((te(m&65535,I)|0)>>16)|0,16)|0;if((m|0)>16384)m=16384;else m=(m|0)<0?0:m}else{s[h+4>>2]=_-w;m=16384}w=e+28|0;k=n[w>>1]|0;c=k&65535;I=u<<16>>16;n[w>>1]=c+((te(m-(k<<16>>16)>>16,I)|0)+((te(m-c&65535,I)|0)>>>16));r[f>>0]=0;e:do if(!d){do if(!(n[e+30>>1]|0)){if((_<<3|0)>=(t*13|0)){m=s[w>>2]|0;I=m<<16>>16;if(((te(g>>16,I)|0)+((te(g&65535,I)|0)>>16)|0)<819)m=m&65535;else{if((m>>>16&65535)<<16>>16){S=23;break}m=n[w>>1]|0;break}}else m=n[w>>1]|0;s[M>>2]=(te(m<<16>>16,E<<16>>16)|0)>>14;s[A>>2]=(te(m<<16>>16,v<<16>>16)|0)>>14;$i(M,a);s[M>>2]=0;s[A>>2]=0;s[h>>2]=_;s[h+4>>2]=0;r[f>>0]=1;w=0;S=31;break e}else S=23;while(0);do if((S|0)==23){if((_<<3|0)>=(t*11|0)){m=n[w>>1]|0;I=m<<16>>16;if(((te(g>>16,I)|0)+((te(g&65535,I)|0)>>16)|0)>=328)break}else m=n[w>>1]|0;m=m<<16>>16;s[M>>2]=(te(m,E<<16>>16)|0)>>14;s[A>>2]=(te(m,v<<16>>16)|0)>>14;$i(M,a);s[M>>2]=0;s[A>>2]=0;m=0;S=30;break e}while(0);if(m<<16>>16>15565){$i(M,a);m=16384;S=30;break}else{m=m<<16>>16;s[M>>2]=(te(m,E<<16>>16)|0)>>14;s[A>>2]=(te(m,v<<16>>16)|0)>>14;$i(M,a);m=n[w>>1]|0;S=30;break}}else{s[M>>2]=0;s[A>>2]=0;$i(M,a);m=0;S=30}while(0);if((S|0)==30)if((r[f>>0]|0)==1){w=m;S=31}else{n[e+32>>1]=0;S=35}do if((S|0)==31){m=e+32|0;I=(o[m>>1]|0)+(b-(p<<3))|0;n[m>>1]=I;if((I<<16>>16|0)<(p*5|0)){r[f>>0]=0;S=36;break}else{n[m>>1]=1e4;m=w;S=35;break}}while(0);if((S|0)==35)if(!(r[f>>0]|0)){w=m;S=36}if((S|0)==36){m=h+4|0;if((s[m>>2]|0)<1){s[m>>2]=1;s[h>>2]=(_|0)<2?1:_+-1|0;m=w}else m=w}u=s[e>>2]|0;d=e+30|0;v=n[d>>1]|0;y=v<<16>>16;w=p<<3;E=s[M>>2]|0;g=(65536/(w|0)|0)<<16>>16;k=((te(E-u<<16>>16,g)|0)>>15)+1>>1;c=s[A>>2]|0;t=((te(c-(u>>>16)<<16>>16,g)|0)>>15)+1>>1;g=(te(m-y>>16,g)|0)+((te(m-(v&65535)&65535,g)|0)>>16)<<10;v=0;_=0-(u<<16>>16)|0;u=0-(u>>16)|0;y=y<<10;while(1){if((v|0)>=(w|0))break;p=_-k|0;M=u-t|0;I=y+g|0;h=v+1|0;S=n[T+(h<<1)>>1]|0;A=(n[T+(v<<1)>>1]|0)+(n[T+(v+2<<1)>>1]|0)+(S<<1)|0;C=n[x+(h<<1)>>1]|0;a=p<<16>>16;f=M<<16>>16;f=((te(I>>16,C)|0)+((te(I&64512,C)|0)>>16)+((te(A>>7,a)|0)+((te(A<<9&65024,a)|0)>>16))+((te(S>>5,f)|0)+((te(S<<11&63488,f)|0)>>16))>>7)+1>>1;n[i+(v+-1<<1)>>1]=(f|0)>32767?32767:((f|0)<-32768?-32768:f)&65535;v=h;_=p;u=M;y=I}t=e+2|0;g=m>>6;v=m<<10&64512;_=0-E<<16>>16;u=0-c<<16>>16;while(1){if((w|0)>=(b|0))break;C=w+1|0;I=n[T+(C<<1)>>1]|0;M=(n[T+(w<<1)>>1]|0)+(n[T+(w+2<<1)>>1]|0)+(I<<1)|0;p=n[x+(C<<1)>>1]|0;I=((te(g,p)|0)+((te(v,p)|0)>>16)+((te(M>>7,_)|0)+((te(M<<9&65024,_)|0)>>16))+((te(I>>5,u)|0)+((te(I<<11&63488,u)|0)>>16))>>7)+1>>1;n[i+(w+-1<<1)>>1]=(I|0)>32767?32767:((I|0)<-32768?-32768:I)&65535;w=C}n[e>>1]=E;n[t>>1]=c;n[d>>1]=m;l=R;return}function ji(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,n=0,s=0,a=0;if((e|0)<=0)if(!e)n=32;else{r=0-e|0;s=3}else{r=e;s=3}if((s|0)==3)n=re(r|0)|0;e=e<>16|0)|0)<<16>>16;a=(te(e>>16,t)|0)+((te(e&65535,t)|0)>>16)|0;s=Nn(s|0,((s|0)<0)<<31>>31|0,a|0,((a|0)<0)<<31>>31|0)|0;s=Sn(s|0,C|0,29)|0;s=e-(s&-8)|0;t=a+((te(s>>16,t)|0)+((te(s&65535,t)|0)>>16))|0;r=n+28-r-i|0;if((r|0)>=0)return((r|0)<32?t>>r:0)|0;r=0-r|0;e=-2147483648>>r;n=2147483647>>>r;if((e|0)>(n|0)){if((t|0)>(e|0)){a=e;a=a<(n|0)){a=n;a=a<>2]=t;s[e+8>>2]=193536;s[e+12>>2]=193536;s[e+4756>>2]=1;t=e+32|0;i=t+112|0;do{s[t>>2]=0;t=t+4|0}while((t|0)<(i|0));t=0;while(1){if((t|0)==4){t=0;break}i=t+1|0;r=50/(i|0)|0;s[e+124+(t<<2)>>2]=(r|0)>1?r:1;t=i}while(1){if((t|0)==4)break;r=(s[e+124+(t<<2)>>2]|0)*100|0;s[e+92+(t<<2)>>2]=r;s[e+108+(t<<2)>>2]=2147483647/(r|0)|0;t=t+1|0}s[e+140>>2]=15;t=0;while(1){if((t|0)==4)break;s[e+72+(t<<2)>>2]=25600;t=t+1|0}return 0}function zi(e,t){e=e|0;t=t|0;var i=0,r=0,a=0,o=0,f=0,c=0,u=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0;_=l;l=l+304|0;w=_;b=e+4668|0;r=s[b>>2]|0;if((r|0)==(t|0)?(i=e+4648|0,(s[e+4652>>2]|0)==(s[i>>2]|0)):0){g=i;v=0;g=s[g>>2]|0;e=e+4652|0;s[e>>2]=g;l=_;return v|0}if(!r){v=e+4648|0;g=v;v=qi(e+5868|0,s[v>>2]|0,t*1e3|0,1)|0;g=s[g>>2]|0;e=e+4652|0;s[e>>2]=g;l=_;return v|0}m=((s[e+4672>>2]|0)*10|0)+5|0;p=te(m,r)|0;r=te(m,t)|0;g=Ne()|0;v=l;l=l+((1*(((p|0)>(r|0)?p:r)<<1)|0)+15&-16)|0;i=p;while(1){u=i+-1|0;if((i|0)<=0)break;o=+h[e+7272+(u<<2)>>2];a=(h[d>>2]=o,s[d>>2]|0);f=(a&2130706432)>>>0>1249902592;if(!f){i=(a|0)<0;c=i?o+-8388608+8388608:o+8388608+-8388608;if(c==0)c=i?-0:0}else c=o;if((~~c|0)<=32767){if(!f){i=(a|0)<0;c=i?o+-8388608+8388608:o+8388608+-8388608;if(c==0)c=i?-0:0}else c=o;if((~~c|0)<-32768)i=-32768;else{if(!f){i=(a|0)<0;o=i?o+-8388608+8388608:o+8388608+-8388608;if(o==0)o=i?-0:0}i=~~o}}else i=32767;n[v+(u<<1)>>1]=i;i=u}u=e+4648|0;f=qi(w,(s[b>>2]<<16>>16)*1e3|0,s[u>>2]|0,0)|0;m=te(m,(s[u>>2]|0)/1e3|0)|0;b=l;l=l+((1*(m<<1)|0)+15&-16)|0;Hi(w,b,v,p);w=e+5868|0;a=qi(w,s[u>>2]|0,(t<<16>>16)*1e3|0,1)|0;Hi(w,v,b,m);while(1){i=r+-1|0;if((r|0)<=0)break;h[e+7272+(i<<2)>>2]=+(n[v+(i<<1)>>1]|0);r=i}qe(g|0);g=u;v=f+a|0;g=s[g>>2]|0;e=e+4652|0;s[e>>2]=g;l=_;return v|0}function qi(e,t,i,n){e=e|0;t=t|0;i=i|0;n=n|0;var a=0,o=0,f=0;kn(e|0,0,300)|0;if(!n){e:do if((t|0)>=12e3)if((t|0)<16e3){switch(t|0){case 12e3:break e;default:n=-1}return n|0}else{switch(t|0){case 16e3:break e;default:n=-1}return n|0}else{switch(t|0){case 8e3:break e;default:n=-1}return n|0}while(0);e:do if((i|0)<16e3)if((i|0)<12e3){switch(i|0){case 8e3:break e;default:n=-1}return n|0}else{switch(i|0){case 12e3:break e;default:n=-1}return n|0}else{if((i|0)<24e3){switch(i|0){case 16e3:break e;default:n=-1}return n|0}if((i|0)<48e3){switch(i|0){case 24e3:break e;default:n=-1}return n|0}else{switch(i|0){case 48e3:break e;default:n=-1}return n|0}}while(0);s[e+292>>2]=r[((i>>12)-((i|0)>16e3&1)>>((i|0)>24e3&1))+-1+(31150+((((t>>12)-((t|0)>16e3&1)>>((t|0)>24e3&1))+-1|0)*5|0))>>0]}else{e:do if((t|0)<16e3)if((t|0)<12e3){switch(t|0){case 8e3:break e;default:n=-1}return n|0}else{switch(t|0){case 12e3:break e;default:n=-1}return n|0}else{if((t|0)<24e3){switch(t|0){case 16e3:break e;default:n=-1}return n|0}if((t|0)<48e3){switch(t|0){case 24e3:break e;default:n=-1}return n|0}else{switch(t|0){case 48e3:break e;default:n=-1}return n|0}}while(0);e:do if((i|0)>=12e3)if((i|0)<16e3){switch(i|0){case 12e3:break e;default:n=-1}return n|0}else{switch(i|0){case 16e3:break e;default:n=-1}return n|0}else{switch(i|0){case 8e3:break e;default:n=-1}return n|0}while(0);s[e+292>>2]=r[((i>>12)-((i|0)>16e3&1)>>((i|0)>24e3&1))+-1+(31135+((((t>>12)-((t|0)>16e3&1)>>((t|0)>24e3&1))+-1|0)*3|0))>>0]}f=(t|0)/1e3|0;s[e+284>>2]=f;s[e+288>>2]=(i|0)/1e3|0;s[e+268>>2]=f*10;do if((i|0)>(t|0)){n=e+264|0;if((t<<1|0)==(i|0)){s[n>>2]=1;n=0;break}else{s[n>>2]=2;n=1;break}}else{n=e+264|0;if((i|0)>=(t|0)){s[n>>2]=0;n=0;break}s[n>>2]=3;n=i<<2;if((n|0)==(t*3|0)){s[e+280>>2]=3;s[e+276>>2]=18;s[e+296>>2]=25418;n=0;break}a=i*3|0;if((a|0)==(t<<1|0)){s[e+280>>2]=2;s[e+276>>2]=18;s[e+296>>2]=25476;n=0;break}if((i<<1|0)==(t|0)){s[e+280>>2]=1;s[e+276>>2]=24;s[e+296>>2]=25516;n=0;break}if((a|0)==(t|0)){s[e+280>>2]=1;s[e+276>>2]=36;s[e+296>>2]=25544;n=0;break}if((n|0)==(t|0)){s[e+280>>2]=1;s[e+276>>2]=36;s[e+296>>2]=25584;n=0;break}if((i*6|0)==(t|0)){s[e+280>>2]=1;s[e+276>>2]=36;s[e+296>>2]=25624;n=0;break}else{t=-1;return t|0}}while(0);a=((t<<(n|14)|0)/(i|0)|0)<<2;o=e+272|0;s[o>>2]=a;f=i<<16>>16;e=(i>>15)+1>>1;n=t<>16,f)|0)+((te(a&65535,f)|0)>>16)+(te(a,e)|0)|0)>=(n|0)){n=0;break}t=a+1|0;s[o>>2]=t;a=t}return n|0}function Hi(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var n=0,a=0,o=0,f=0;n=e+284|0;o=e+292|0;f=s[o>>2]|0;a=(s[n>>2]|0)-f|0;Mn(e+168+(f<<1)|0,i|0,a<<1|0)|0;switch(s[e+264>>2]|0){case 1:{f=e+168|0;Wi(e,t,f,s[n>>2]|0);Wi(e,t+(s[e+288>>2]<<1)|0,i+(a<<1)|0,r-(s[n>>2]|0)|0);n=f;break}case 2:{f=e+168|0;Vi(e,t,f,s[n>>2]|0);Vi(e,t+(s[e+288>>2]<<1)|0,i+(a<<1)|0,r-(s[n>>2]|0)|0);n=f;break}case 3:{f=e+168|0;Gi(e,t,f,s[n>>2]|0);Gi(e,t+(s[e+288>>2]<<1)|0,i+(a<<1)|0,r-(s[n>>2]|0)|0);n=f;break}default:{f=e+168|0;Mn(t|0,f|0,s[n>>2]<<1|0)|0;Mn(t+(s[e+288>>2]<<1)|0,i+(a<<1)|0,r-(s[n>>2]|0)<<1|0)|0;n=f}}f=s[o>>2]|0;Mn(n|0,i+(r-f<<1)|0,f<<1|0)|0;return}function Gi(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var a=0,o=0,f=0,h=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0,C=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,q=0,H=0,G=0;j=l;d=e+268|0;c=s[d>>2]|0;E=e+276|0;h=s[E>>2]|0;L=l;l=l+((1*(c+h<<2)|0)+15&-16)|0;B=e+24|0;Mn(L|0,B|0,h<<2|0)|0;U=e+296|0;D=s[U>>2]|0;p=D+4|0;b=s[e+272>>2]|0;m=e+4|0;w=e+280|0;g=D+6|0;v=D+8|0;_=D+10|0;y=D+12|0;k=D+14|0;A=D+16|0;S=D+18|0;M=D+20|0;T=D+22|0;x=D+24|0;R=D+26|0;I=D+28|0;C=D+30|0;P=D+32|0;O=D+34|0;N=D+36|0;D=D+38|0;u=i;i=c;while(1){c=(r|0)<(i|0)?r:i;i=L+(h<<2)|0;a=s[U>>2]|0;o=a+2|0;f=0;while(1){if((f|0)>=(c|0))break;z=(s[e>>2]|0)+(n[u+(f<<1)>>1]<<8)|0;s[i+(f<<2)>>2]=z;z=z<<2;q=z>>16;F=n[a>>1]|0;z=z&65532;s[e>>2]=(s[m>>2]|0)+((te(q,F)|0)+((te(z,F)|0)>>16));F=n[o>>1]|0;s[m>>2]=(te(q,F)|0)+((te(z,F)|0)>>16);f=f+1|0}f=c<<16;i=s[w>>2]|0;e:do switch(h|0){case 18:{o=i<<16>>16;a=i+-1|0;i=0;while(1){if((i|0)>=(f|0))break e;z=L+(i>>16<<2)|0;q=(te(i&65535,o)|0)>>16;F=p+(q*9<<1)|0;h=s[z>>2]|0;G=n[F>>1]|0;G=(te(h>>16,G)|0)+((te(h&65535,G)|0)>>16)|0;h=s[z+4>>2]|0;H=n[F+2>>1]|0;H=G+((te(h>>16,H)|0)+((te(h&65535,H)|0)>>16))|0;h=s[z+8>>2]|0;G=n[F+4>>1]|0;G=H+((te(h>>16,G)|0)+((te(h&65535,G)|0)>>16))|0;h=s[z+12>>2]|0;H=n[F+6>>1]|0;H=G+((te(h>>16,H)|0)+((te(h&65535,H)|0)>>16))|0;h=s[z+16>>2]|0;G=n[F+8>>1]|0;G=H+((te(h>>16,G)|0)+((te(h&65535,G)|0)>>16))|0;h=s[z+20>>2]|0;H=n[F+10>>1]|0;H=G+((te(h>>16,H)|0)+((te(h&65535,H)|0)>>16))|0;h=s[z+24>>2]|0;G=n[F+12>>1]|0;G=H+((te(h>>16,G)|0)+((te(h&65535,G)|0)>>16))|0;h=s[z+28>>2]|0;H=n[F+14>>1]|0;H=G+((te(h>>16,H)|0)+((te(h&65535,H)|0)>>16))|0;h=s[z+32>>2]|0;F=n[F+16>>1]|0;F=H+((te(h>>16,F)|0)+((te(h&65535,F)|0)>>16))|0;q=p+((a-q|0)*9<<1)|0;h=s[z+68>>2]|0;H=n[q>>1]|0;H=F+((te(h>>16,H)|0)+((te(h&65535,H)|0)>>16))|0;h=s[z+64>>2]|0;F=n[q+2>>1]|0;F=H+((te(h>>16,F)|0)+((te(h&65535,F)|0)>>16))|0;h=s[z+60>>2]|0;H=n[q+4>>1]|0;H=F+((te(h>>16,H)|0)+((te(h&65535,H)|0)>>16))|0;h=s[z+56>>2]|0;F=n[q+6>>1]|0;F=H+((te(h>>16,F)|0)+((te(h&65535,F)|0)>>16))|0;h=s[z+52>>2]|0;H=n[q+8>>1]|0;H=F+((te(h>>16,H)|0)+((te(h&65535,H)|0)>>16))|0;h=s[z+48>>2]|0;F=n[q+10>>1]|0;F=H+((te(h>>16,F)|0)+((te(h&65535,F)|0)>>16))|0;h=s[z+44>>2]|0;H=n[q+12>>1]|0;H=F+((te(h>>16,H)|0)+((te(h&65535,H)|0)>>16))|0;h=s[z+40>>2]|0;F=n[q+14>>1]|0;F=H+((te(h>>16,F)|0)+((te(h&65535,F)|0)>>16))|0;z=s[z+36>>2]|0;q=n[q+16>>1]|0;q=(F+((te(z>>16,q)|0)+((te(z&65535,q)|0)>>16))>>5)+1>>1;n[t>>1]=(q|0)>32767?32767:((q|0)<-32768?-32768:q)&65535;t=t+2|0;i=i+b|0}}case 24:{i=0;while(1){if((i|0)>=(f|0))break e;H=L+(i>>16<<2)|0;G=(s[H>>2]|0)+(s[H+92>>2]|0)|0;q=n[p>>1]|0;q=(te(G>>16,q)|0)+((te(G&65535,q)|0)>>16)|0;G=(s[H+4>>2]|0)+(s[H+88>>2]|0)|0;z=n[g>>1]|0;z=q+((te(G>>16,z)|0)+((te(G&65535,z)|0)>>16))|0;G=(s[H+8>>2]|0)+(s[H+84>>2]|0)|0;q=n[v>>1]|0;q=z+((te(G>>16,q)|0)+((te(G&65535,q)|0)>>16))|0;G=(s[H+12>>2]|0)+(s[H+80>>2]|0)|0;z=n[_>>1]|0;z=q+((te(G>>16,z)|0)+((te(G&65535,z)|0)>>16))|0;G=(s[H+16>>2]|0)+(s[H+76>>2]|0)|0;q=n[y>>1]|0;q=z+((te(G>>16,q)|0)+((te(G&65535,q)|0)>>16))|0;G=(s[H+20>>2]|0)+(s[H+72>>2]|0)|0;z=n[k>>1]|0;z=q+((te(G>>16,z)|0)+((te(G&65535,z)|0)>>16))|0;G=(s[H+24>>2]|0)+(s[H+68>>2]|0)|0;q=n[A>>1]|0;q=z+((te(G>>16,q)|0)+((te(G&65535,q)|0)>>16))|0;G=(s[H+28>>2]|0)+(s[H+64>>2]|0)|0;z=n[S>>1]|0;z=q+((te(G>>16,z)|0)+((te(G&65535,z)|0)>>16))|0;G=(s[H+32>>2]|0)+(s[H+60>>2]|0)|0;q=n[M>>1]|0;q=z+((te(G>>16,q)|0)+((te(G&65535,q)|0)>>16))|0;G=(s[H+36>>2]|0)+(s[H+56>>2]|0)|0;z=n[T>>1]|0;z=q+((te(G>>16,z)|0)+((te(G&65535,z)|0)>>16))|0;G=(s[H+40>>2]|0)+(s[H+52>>2]|0)|0;q=n[x>>1]|0;q=z+((te(G>>16,q)|0)+((te(G&65535,q)|0)>>16))|0;H=(s[H+44>>2]|0)+(s[H+48>>2]|0)|0;G=n[R>>1]|0;G=(q+((te(H>>16,G)|0)+((te(H&65535,G)|0)>>16))>>5)+1>>1;n[t>>1]=(G|0)>32767?32767:((G|0)<-32768?-32768:G)&65535;t=t+2|0;i=i+b|0}}case 36:{i=0;while(1){if((i|0)>=(f|0))break e;H=L+(i>>16<<2)|0;G=(s[H>>2]|0)+(s[H+140>>2]|0)|0;q=n[p>>1]|0;q=(te(G>>16,q)|0)+((te(G&65535,q)|0)>>16)|0;G=(s[H+4>>2]|0)+(s[H+136>>2]|0)|0;z=n[g>>1]|0;z=q+((te(G>>16,z)|0)+((te(G&65535,z)|0)>>16))|0;G=(s[H+8>>2]|0)+(s[H+132>>2]|0)|0;q=n[v>>1]|0;q=z+((te(G>>16,q)|0)+((te(G&65535,q)|0)>>16))|0;G=(s[H+12>>2]|0)+(s[H+128>>2]|0)|0;z=n[_>>1]|0;z=q+((te(G>>16,z)|0)+((te(G&65535,z)|0)>>16))|0;G=(s[H+16>>2]|0)+(s[H+124>>2]|0)|0;q=n[y>>1]|0;q=z+((te(G>>16,q)|0)+((te(G&65535,q)|0)>>16))|0;G=(s[H+20>>2]|0)+(s[H+120>>2]|0)|0;z=n[k>>1]|0;z=q+((te(G>>16,z)|0)+((te(G&65535,z)|0)>>16))|0;G=(s[H+24>>2]|0)+(s[H+116>>2]|0)|0;q=n[A>>1]|0;q=z+((te(G>>16,q)|0)+((te(G&65535,q)|0)>>16))|0;G=(s[H+28>>2]|0)+(s[H+112>>2]|0)|0;z=n[S>>1]|0;z=q+((te(G>>16,z)|0)+((te(G&65535,z)|0)>>16))|0;G=(s[H+32>>2]|0)+(s[H+108>>2]|0)|0;q=n[M>>1]|0;q=z+((te(G>>16,q)|0)+((te(G&65535,q)|0)>>16))|0;G=(s[H+36>>2]|0)+(s[H+104>>2]|0)|0;z=n[T>>1]|0;z=q+((te(G>>16,z)|0)+((te(G&65535,z)|0)>>16))|0;G=(s[H+40>>2]|0)+(s[H+100>>2]|0)|0;q=n[x>>1]|0;q=z+((te(G>>16,q)|0)+((te(G&65535,q)|0)>>16))|0;G=(s[H+44>>2]|0)+(s[H+96>>2]|0)|0;z=n[R>>1]|0;z=q+((te(G>>16,z)|0)+((te(G&65535,z)|0)>>16))|0;G=(s[H+48>>2]|0)+(s[H+92>>2]|0)|0;q=n[I>>1]|0;q=z+((te(G>>16,q)|0)+((te(G&65535,q)|0)>>16))|0;G=(s[H+52>>2]|0)+(s[H+88>>2]|0)|0;z=n[C>>1]|0;z=q+((te(G>>16,z)|0)+((te(G&65535,z)|0)>>16))|0;G=(s[H+56>>2]|0)+(s[H+84>>2]|0)|0;q=n[P>>1]|0;q=z+((te(G>>16,q)|0)+((te(G&65535,q)|0)>>16))|0;G=(s[H+60>>2]|0)+(s[H+80>>2]|0)|0;z=n[O>>1]|0;z=q+((te(G>>16,z)|0)+((te(G&65535,z)|0)>>16))|0;G=(s[H+64>>2]|0)+(s[H+76>>2]|0)|0;q=n[N>>1]|0;q=z+((te(G>>16,q)|0)+((te(G&65535,q)|0)>>16))|0;H=(s[H+68>>2]|0)+(s[H+72>>2]|0)|0;G=n[D>>1]|0;G=(q+((te(H>>16,G)|0)+((te(H&65535,G)|0)>>16))>>5)+1>>1;n[t>>1]=(G|0)>32767?32767:((G|0)<-32768?-32768:G)&65535;t=t+2|0;i=i+b|0}}default:{}}while(0);r=r-c|0;if((r|0)<=1)break;h=s[E>>2]|0;Mn(L|0,L+(c<<2)|0,h<<2|0)|0;u=u+(c<<1)|0;i=s[d>>2]|0}Mn(B|0,L+(c<<2)|0,s[E>>2]<<2|0)|0;l=j;return}function Vi(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var a=0,o=0,f=0,h=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0;b=l;h=e+268|0;f=s[h>>2]|0;c=l;l=l+((1*((f<<1)+8<<1)|0)+15&-16)|0;u=e+24|0;n[c>>1]=n[u>>1]|0;n[c+2>>1]=n[u+2>>1]|0;n[c+4>>1]=n[u+4>>1]|0;n[c+6>>1]=n[u+6>>1]|0;n[c+8>>1]=n[u+8>>1]|0;n[c+10>>1]=n[u+10>>1]|0;n[c+12>>1]=n[u+12>>1]|0;n[c+14>>1]=n[u+14>>1]|0;d=s[e+272>>2]|0;p=c+16|0;a=t;t=f;while(1){f=(r|0)<(t|0)?r:t;Wi(e,p,i,f);o=f<<17;t=0;while(1){if((t|0)>=(o|0))break;m=((t&65535)*12|0)>>>16;w=c+(t>>16<<1)|0;g=te(n[w>>1]|0,n[25664+(m<<3)>>1]|0)|0;g=g+(te(n[w+2>>1]|0,n[25664+(m<<3)+2>>1]|0)|0)|0;g=g+(te(n[w+4>>1]|0,n[25664+(m<<3)+4>>1]|0)|0)|0;g=g+(te(n[w+6>>1]|0,n[25664+(m<<3)+6>>1]|0)|0)|0;m=11-m|0;g=g+(te(n[w+8>>1]|0,n[25664+(m<<3)+6>>1]|0)|0)|0;g=g+(te(n[w+10>>1]|0,n[25664+(m<<3)+4>>1]|0)|0)|0;g=g+(te(n[w+12>>1]|0,n[25664+(m<<3)+2>>1]|0)|0)|0;m=(g+(te(n[w+14>>1]|0,n[25664+(m<<3)>>1]|0)|0)>>14)+1>>1;n[a>>1]=(m|0)>32767?32767:((m|0)<-32768?-32768:m)&65535;a=a+2|0;t=t+d|0}r=r-f|0;if((r|0)<=0)break;t=c+(f<<1<<1)|0;n[c>>1]=n[t>>1]|0;n[c+2>>1]=n[t+2>>1]|0;n[c+4>>1]=n[t+4>>1]|0;n[c+6>>1]=n[t+6>>1]|0;n[c+8>>1]=n[t+8>>1]|0;n[c+10>>1]=n[t+10>>1]|0;n[c+12>>1]=n[t+12>>1]|0;n[c+14>>1]=n[t+14>>1]|0;i=i+(f<<1)|0;t=s[h>>2]|0}g=c+(f<<1<<1)|0;n[u>>1]=n[g>>1]|0;n[u+2>>1]=n[g+2>>1]|0;n[u+4>>1]=n[g+4>>1]|0;n[u+6>>1]=n[g+6>>1]|0;n[u+8>>1]=n[g+8>>1]|0;n[u+10>>1]=n[g+10>>1]|0;n[u+12>>1]=n[g+12>>1]|0;n[u+14>>1]=n[g+14>>1]|0;l=b;return}function Wi(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var a=0,o=0,f=0,h=0,c=0,l=0,u=0,d=0,p=0,b=0;a=e+4|0;o=e+8|0;f=e+12|0;h=e+16|0;c=e+20|0;l=0;while(1){if((l|0)>=(r|0))break;b=n[i+(l<<1)>>1]<<10;d=s[e>>2]|0;u=b-d|0;u=((u>>16)*1746|0)+(((u&65535)*1746|0)>>>16)|0;d=d+u|0;s[e>>2]=b+u;u=s[a>>2]|0;p=d-u|0;p=((p>>16)*14986|0)+(((p&65535)*14986|0)>>>16)|0;u=u+p|0;s[a>>2]=d+p;p=u-(s[o>>2]|0)|0;d=(te(p>>16,-26453)|0)+((te(p&65535,-26453)|0)>>16)|0;s[o>>2]=u+(p+d);d=(u+d>>9)+1>>1;u=l<<1;n[t+(u<<1)>>1]=(d|0)>32767?32767:((d|0)<-32768?-32768:d)&65535;d=s[f>>2]|0;p=b-d|0;p=((p>>16)*6854|0)+(((p&65535)*6854|0)>>>16)|0;d=d+p|0;s[f>>2]=b+p;p=s[h>>2]|0;b=d-p|0;b=((b>>16)*25769|0)+(((b&65535)*25769|0)>>>16)|0;p=p+b|0;s[h>>2]=d+b;b=p-(s[c>>2]|0)|0;d=(te(b>>16,-9994)|0)+((te(b&65535,-9994)|0)>>16)|0;s[c>>2]=p+(b+d);d=(p+d>>9)+1>>1;n[t+((u|1)<<1)>>1]=(d|0)>32767?32767:((d|0)<-32768?-32768:d)&65535;l=l+1|0}return}function Ki(e,t){e=e|0;t=t|0;var i=0,r=0,o=0,f=0,h=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0;v=l;l=l+32|0;g=v;m=e+28|0;f=s[m>>2]|0;w=e+32|0;i=s[w>>2]|0;r=f>>>8;h=-1;while(1){h=h+1|0;o=te(r,a[29891+h>>0]|0)|0;if(i>>>0>=o>>>0)break;else f=o}c=i-o|0;s[w>>2]=c;i=f-o|0;s[m>>2]=i;u=e+20|0;d=e+40|0;p=e+24|0;b=e+4|0;f=c;while(1){if(i>>>0>=8388609)break;s[u>>2]=(s[u>>2]|0)+8;i=i<<8;s[m>>2]=i;o=s[d>>2]|0;r=s[p>>2]|0;if(r>>>0<(s[b>>2]|0)>>>0){s[p>>2]=r+1;r=a[(s[e>>2]|0)+r>>0]|0}else r=0;s[d>>2]=r;c=((o<<8|r)>>>1&255|f<<8&2147483392)^255;s[w>>2]=c;f=c}c=(h|0)/5|0;s[g+8>>2]=c;s[g+20>>2]=h+(te(c,-5)|0);c=0;while(1){if((c|0)==2){i=0;break}o=i>>>8;h=-1;while(1){h=h+1|0;r=te(o,a[29944+h>>0]|0)|0;if(f>>>0>=r>>>0)break;else i=r}f=f-r|0;s[w>>2]=f;i=i-r|0;s[m>>2]=i;while(1){if(i>>>0>=8388609)break;s[u>>2]=(s[u>>2]|0)+8;i=i<<8;s[m>>2]=i;o=s[d>>2]|0;r=s[p>>2]|0;if(r>>>0<(s[b>>2]|0)>>>0){s[p>>2]=r+1;r=a[(s[e>>2]|0)+r>>0]|0}else r=0;s[d>>2]=r;o=((o<<8|r)>>>1&255|f<<8&2147483392)^255;s[w>>2]=o;f=o}s[g+(c*12|0)>>2]=h;o=i>>>8;h=-1;while(1){h=h+1|0;r=te(o,a[29951+h>>0]|0)|0;if(f>>>0>=r>>>0)break;else i=r}f=f-r|0;s[w>>2]=f;i=i-r|0;s[m>>2]=i;while(1){if(i>>>0>=8388609)break;s[u>>2]=(s[u>>2]|0)+8;i=i<<8;s[m>>2]=i;o=s[d>>2]|0;r=s[p>>2]|0;if(r>>>0<(s[b>>2]|0)>>>0){s[p>>2]=r+1;r=a[(s[e>>2]|0)+r>>0]|0}else r=0;s[d>>2]=r;o=((o<<8|r)>>>1&255|f<<8&2147483392)^255;s[w>>2]=o;f=o}s[g+(c*12|0)+4>>2]=h;c=c+1|0}while(1){if((i|0)==2)break;w=g+(i*12|0)|0;e=(s[w>>2]|0)+((s[g+(i*12|0)+8>>2]|0)*3|0)|0;s[w>>2]=e;w=n[25372+(e<<1)>>1]|0;e=n[25372+(e+1<<1)>>1]|0;e=(te((e<<16>>16)-w>>16,429522944)|0)+(((e&65535)-w&65535)*6554|0)>>16;s[t+(i<<2)>>2]=w+(te(e,s[g+(i*12|0)+4>>2]<<17>>16|1)|0);i=i+1|0}s[t>>2]=(s[t>>2]|0)-(s[t+4>>2]|0);l=v;return}function Yi(e,t,i,r,a,o){e=e|0;t=t|0;i=i|0;r=r|0;a=a|0;o=o|0;var f=0,h=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0;y=l;l=l+16|0;p=y+12|0;b=y+8|0;f=y+4|0;w=y;Nr(f,p,t,a);Nr(w,b,i,a);p=s[p>>2]|0;b=s[b>>2]|0;h=(p|0)>(b|0)?p:b;h=h+(h&1)|0;b=s[w>>2]>>h-b;s[w>>2]=b;p=s[f>>2]>>h-p;p=(p|0)>1?p:1;s[f>>2]=p;f=0;m=0;while(1){if((f|0)>=(a|0))break;_=m+((te(n[t+(f<<1)>>1]|0,n[i+(f<<1)>>1]|0)|0)>>h)|0;f=f+1|0;m=_}_=Zi(m,p,13)|0;_=(_|0)>16384?16384:(_|0)<-16384?-16384:_;c=_<<16>>16;u=(te(_>>16,c)|0)+((te(_&65535,c)|0)>>16)|0;i=(u|0)>0?u:0-u|0;i=(i|0)<(o|0)?o:i;v=h>>1;o=s[r>>2]|0;t=re(p|0)|0;f=24-t|0;a=0-f|0;do if(f)if((f|0)<0){f=p<>>(f+32|0);break}else{f=p<<32-f|p>>>f;break}else f=p;while(0);a=((t&1|0)==0?46214:32768)>>>(t>>>1);t=(te(f&127,13959168)|0)>>>16;g=i<<16>>16;t=te((a+((te(a>>16,t)|0)+((te(a&65535,t)|0)>>>16))<>16,g)|0;i=re(p|0)|0;f=24-i|0;a=0-f|0;do if(f)if((f|0)<0){f=p<>>(f+32|0);break}else{f=p<<32-f|p>>>f;break}else f=p;while(0);h=((i&1|0)==0?46214:32768)>>>(i>>>1);d=(te(f&127,13959168)|0)>>>16;d=o+(t+((te((h+((te(h>>16,d)|0)+((te(h&65535,d)|0)>>>16))<>16))|0;s[r>>2]=d;f=u<<16>>16;f=b-((te(m>>16,c)|0)+((te(m&65535,c)|0)>>16)<<4)+((te(p>>16,f)|0)+((te(p&65535,f)|0)>>16)<<6)|0;s[w>>2]=f;c=r+4|0;u=s[c>>2]|0;o=(f|0)<1;if(o){r=0;w=te(0-u>>16,g)|0;v=r<>16;g=w+g|0;g=u+g|0;s[c>>2]=g;v=(d|0)>1;v=v?d:1;v=Zi(g,v,14)|0;g=(v|0)>32767;w=(v|0)<0;v=w?0:v;v=g?32767:v;s[e>>2]=v;l=y;return _|0}i=re(f|0)|0;a=24-i|0;t=0-a|0;do if(a)if((a|0)<0){a=f<>>(a+32|0);break}else{a=f<<32-a|f>>>a;break}else a=f;while(0);w=((i&1|0)==0?46214:32768)>>>(i>>>1);h=(te(a&127,13959168)|0)>>>16;h=te((w+((te(w>>16,h)|0)+((te(w&65535,h)|0)>>>16))<>16,g)|0;if(o){r=0;w=h;v=r<>16;g=w+g|0;g=u+g|0;s[c>>2]=g;v=(d|0)>1;v=v?d:1;v=Zi(g,v,14)|0;g=(v|0)>32767;w=(v|0)<0;v=w?0:v;v=g?32767:v;s[e>>2]=v;l=y;return _|0}i=re(f|0)|0;a=24-i|0;t=0-a|0;do if(a)if((a|0)<0){f=f<>>(a+32|0);break}else{f=f<<32-a|f>>>a;break}while(0);w=((i&1|0)==0?46214:32768)>>>(i>>>1);r=(te(f&127,13959168)|0)>>>16;r=w+((te(w>>16,r)|0)+((te(w&65535,r)|0)>>>16))|0;w=h;v=r<>16;g=w+g|0;g=u+g|0;s[c>>2]=g;v=(d|0)>1;v=v?d:1;v=Zi(g,v,14)|0;g=(v|0)>32767;w=(v|0)<0;v=w?0:v;v=g?32767:v;s[e>>2]=v;l=y;return _|0}function Zi(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,n=0,s=0,a=0;if((e|0)<=0)if(!e)n=32;else{r=0-e|0;s=3}else{r=e;s=3}if((s|0)==3)n=re(r|0)|0;e=e<>16|0)|0)<<16>>16;a=(te(e>>16,t)|0)+((te(e&65535,t)|0)>>16)|0;s=Nn(s|0,((s|0)<0)<<31>>31|0,a|0,((a|0)<0)<<31>>31|0)|0;s=Sn(s|0,C|0,29)|0;s=e-(s&-8)|0;t=a+((te(s>>16,t)|0)+((te(s&65535,t)|0)>>16))|0;r=n+28-r-i|0;if((r|0)>=0)return((r|0)<32?t>>r:0)|0;r=0-r|0;e=-2147483648>>r;n=2147483647>>>r;if((e|0)>(n|0)){if((t|0)>(e|0)){a=e;a=a<(n|0)){a=n;a=a<=15)break;l=n[25372+(a<<1)>>1]|0;u=a+1|0;d=n[25372+(u<<1)>>1]|0;d=(te((d<<16>>16)-l>>16,429522944)|0)+(((d&65535)-l&65535)*6554|0)>>16;c=a&255;f=o;h=0;while(1){if((h|0)>=5){o=f;a=u;continue e}a=l+(te(d,h<<17>>16|1)|0)|0;o=s[b>>2]|0;o=(o|0)>(a|0)?o-a|0:a-o|0;if((o|0)>=(f|0))break e;r[m>>0]=c;r[p>>0]=h;f=o;h=h+1|0;i=a}}d=r[m>>0]|0;p=(d<<24>>24|0)/3|0;r[t+(w*3|0)+2>>0]=p;r[m>>0]=(d&255)+(te(p,-3)|0);s[b>>2]=i;w=w+1|0}s[e>>2]=(s[e>>2]|0)-(s[e+4>>2]|0);return}function Xi(e,t,i,f,u,p){e=e|0;t=t|0;i=i|0;f=f|0;u=u|0;p=p|0;var b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0,C=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,G=0,V=0,W=0,K=0,Y=0,Z=0,$=0,X=0,Q=0,ee=0,ie=0,ne=0,se=0,ae=0,oe=0,fe=0,he=0,ce=0,le=0,ue=0,de=0,pe=0,be=0,me=0,we=0,ge=0,ve=0,_e=0,ye=0,ke=0,Ee=0,Ae=0,Se=0,Me=0,Te=0,xe=0,Re=0,Ie=0,Ce=0,Pe=0,Oe=0,Ne=0,De=0,Le=0,Be=0,Ue=0,je=0,Fe=0,ze=0,qe=0,He=0,Ge=0,Ve=0,We=0,Ke=0,Ye=0,Ze=0,$e=0,Xe=0,Je=0,Qe=0,et=0,tt=0,it=0,rt=0,nt=0,st=0,at=0,ot=0,ft=0,ht=0,ct=0,lt=0;ft=l;l=l+35104|0;qe=ft+272|0;ze=ft+72|0;Be=ft+29992|0;Le=ft+29352|0;le=ft+28712|0;ue=ft+28392|0;Fe=ft+48|0;je=ft+26008|0;Ue=ft+24472|0;ie=ft+11992|0;ne=ft+11896|0;Y=ft+33512|0;fe=ft+9176|0;oe=ft+6456|0;F=ft+32232|0;z=ft+31272|0;j=ft+6384|0;Pe=ft+6320|0;Ne=ft+6256|0;Oe=ft+4720|0;tt=ft+23720|0;se=ft+21032|0;nt=ft+20984|0;st=ft+24|0;at=ft;it=ft+16536|0;rt=ft+12088|0;et=ft+12072|0;Je=ft+33824|0;Qe=ft+12056|0;$e=ft+33816|0;Xe=ft+12040|0;s[Qe>>2]=0;s[Qe+4>>2]=0;s[Qe+8>>2]=0;s[Qe+12>>2]=0;Ke=e+4712|0;Ye=s[Ke>>2]|0;s[Ke>>2]=Ye+1;Ke=e+4862|0;r[Ke>>0]=Ye&3;Ye=e+4684|0;ce=s[Ye>>2]|0;Ze=e+7272+(ce<<2)|0;ce=se+(ce<<2)|0;D=e+5190|0;We=e+4676|0;b=s[We>>2]|0;g=s[e+28>>2]|0;if(g){v=e+24|0;_=s[v>>2]|0;w=256-_<<10;E=w>>16;w=w-(E<<16)|0;e:do if((E|0)<4){if((w|0)<=0){He=17528+(E*12|0)|0;s[qe>>2]=s[He>>2];s[qe+4>>2]=s[He+4>>2];s[qe+8>>2]=s[He+8>>2];He=17588+(E<<3)|0;Ge=s[He+4>>2]|0;Ve=ze;s[Ve>>2]=s[He>>2];s[Ve+4>>2]=Ge;break}A=E+1|0;S=w<<16>>16;if((w|0)<32768){w=0;while(1){if((w|0)==3){w=0;break}Ge=s[17528+(E*12|0)+(w<<2)>>2]|0;Ve=(s[17528+(A*12|0)+(w<<2)>>2]|0)-Ge|0;s[qe+(w<<2)>>2]=Ge+((te(Ve>>16,S)|0)+((te(Ve&65535,S)|0)>>16));w=w+1|0}while(1){if((w|0)==2)break e;Ge=s[17588+(E<<3)+(w<<2)>>2]|0;Ve=(s[17588+(A<<3)+(w<<2)>>2]|0)-Ge|0;s[ze+(w<<2)>>2]=Ge+((te(Ve>>16,S)|0)+((te(Ve&65535,S)|0)>>16));w=w+1|0}}else{w=0;while(1){if((w|0)==3){w=0;break}Ge=s[17528+(A*12|0)+(w<<2)>>2]|0;Ve=Ge-(s[17528+(E*12|0)+(w<<2)>>2]|0)|0;s[qe+(w<<2)>>2]=Ge+((te(Ve>>16,S)|0)+((te(Ve&65535,S)|0)>>16));w=w+1|0}while(1){if((w|0)==2)break e;Ge=s[17588+(A<<3)+(w<<2)>>2]|0;Ve=Ge-(s[17588+(E<<3)+(w<<2)>>2]|0)|0;s[ze+(w<<2)>>2]=Ge+((te(Ve>>16,S)|0)+((te(Ve&65535,S)|0)>>16));w=w+1|0}}}else{s[qe>>2]=s[4394];s[qe+4>>2]=s[4395];s[qe+8>>2]=s[4396];Ve=ze;s[Ve>>2]=35497197;s[Ve+4>>2]=57401098}while(0);w=_+g|0;s[v>>2]=(w|0)>256?256:(w|0)<0?0:w;w=e+16|0;S=0-(s[ze>>2]|0)|0;g=S&16383;R=0-(s[ze+4>>2]|0)|0;v=R&16383;E=s[qe>>2]|0;_=E>>16;E=E&65535;A=e+20|0;S=S>>>14<<16>>16;T=s[qe+4>>2]|0;M=T>>16;T=T&65535;R=R>>>14<<16>>16;C=s[qe+8>>2]|0;I=C>>16;C=C&65535;P=0;while(1){if((P|0)>=(b|0))break;Ve=D+(P<<1)|0;He=n[Ve>>1]|0;Ge=(s[w>>2]|0)+((te(_,He)|0)+((te(E,He)|0)>>16))<<2;Ie=Ge>>16;Ce=Ge&65532;s[w>>2]=(s[A>>2]|0)+(((te(Ie,g)|0)+((te(Ce,g)|0)>>>16)>>13)+1>>1)+((te(Ie,S)|0)+((te(Ce,S)|0)>>16))+((te(M,He)|0)+((te(T,He)|0)>>16));s[A>>2]=(((te(Ie,v)|0)+((te(Ce,v)|0)>>>16)>>13)+1>>1)+((te(Ie,R)|0)+((te(Ce,R)|0)>>16))+((te(I,He)|0)+((te(C,He)|0)>>16));Ge=Ge+16383>>14;n[Ve>>1]=(Ge|0)>32767?32767:((Ge|0)<-32768?-32768:Ge)&65535;P=P+1|0}b=s[We>>2]|0}Ve=e+4668|0;g=Ze+((s[Ve>>2]|0)*5<<2)|0;while(1){w=b+-1|0;if((b|0)<=0){b=0;break}h[g+(w<<2)>>2]=+(n[D+(w<<1)>>1]|0);b=w}while(1){if((b|0)==8)break;Ge=Ze+(((s[Ve>>2]|0)*5|0)+(te(b,s[We>>2]>>3)|0)<<2)|0;h[Ge>>2]=+h[Ge>>2]+ +(1-(b&2)|0)*9.999999974752427e-7;b=b+1|0}Ge=e+4772|0;e:do if(!(s[Ge>>2]|0)){v=s[e+4688>>2]|0;M=s[Ye>>2]|0;S=v+(s[We>>2]|0)+M|0;M=Ze+(0-M<<2)|0;_=s[e+4640>>2]|0;b=M+(S<<2)+(0-_<<2)|0;y=3.1415927410125732/+(v+1|0);k=2-y*y;m=0;w=0;while(1){if((w|0)>=(v|0))break;h[Oe+(w<<2)>>2]=+h[b+(w<<2)>>2]*.5*(m+y);He=w|1;h[Oe+(He<<2)>>2]=+h[b+(He<<2)>>2]*y;U=k*y-m;He=w|2;h[Oe+(He<<2)>>2]=+h[b+(He<<2)>>2]*.5*(y+U);He=w|3;h[Oe+(He<<2)>>2]=+h[b+(He<<2)>>2]*U;m=U;y=k*U-y;w=w+4|0}He=Oe+(v<<2)|0;g=b+(v<<2)|0;w=_-(v<<1)|0;Mn(He|0,g|0,w<<2|0)|0;b=He+(w<<2)|0;w=g+(w<<2)|0;m=1;y=k*.5;g=0;while(1){if((g|0)>=(v|0))break;h[b+(g<<2)>>2]=+h[w+(g<<2)>>2]*.5*(m+y);He=g|1;h[b+(He<<2)>>2]=+h[w+(He<<2)>>2]*y;U=k*y-m;He=g|2;h[b+(He<<2)>>2]=+h[w+(He<<2)>>2]*.5*(y+U);He=g|3;h[b+(He<<2)>>2]=+h[w+(He<<2)>>2]*U;m=U;y=k*U-y;g=g+4|0}A=e+4740|0;E=s[A>>2]|0;b=(E|0)<(_|0)?E+1|0:_;w=0;while(1){if((w|0)>=(b|0))break;h[j+(w<<2)>>2]=+ir(Oe,Oe+(w<<2)|0,_-w|0);w=w+1|0}y=+h[j>>2];y=y+(y*.0010000000474974513+1);h[j>>2]=y;b=0;while(1){if((b|0)>(E|0))break;U=+h[j+(b<<2)>>2];c[qe+(b<<4)+8>>3]=U;c[qe+(b<<4)>>3]=U;b=b+1|0}he=qe+8|0;g=0;t:while(1){if((E|0)<=(g|0))break;b=g+1|0;m=+c[he>>3];m=-+c[qe+(b<<4)>>3]/(m>9.999999717180685e-10?m:9.999999717180685e-10);h[Ne+(g<<2)>>2]=m;w=E-g|0;v=0;while(1){if((v|0)>=(w|0)){g=b;continue t}Ce=qe+(v+g+1<<4)|0;U=+c[Ce>>3];He=qe+(v<<4)+8|0;B=+c[He>>3];c[Ce>>3]=U+B*m;c[He>>3]=B+U*m;v=v+1|0}}U=+c[he>>3];ae=tt+704|0;h[ae>>2]=y/(U>1?U:1);g=0;while(1){if((g|0)>=(E|0))break;m=+h[Ne+(g<<2)>>2];b=g+1|0;w=b>>1;v=0;while(1){if((v|0)>=(w|0))break;Ce=Pe+(v<<2)|0;U=+h[Ce>>2];He=Pe+(g-v+-1<<2)|0;B=+h[He>>2];h[Ce>>2]=U+B*m;h[He>>2]=B+U*m;v=v+1|0}h[Pe+(g<<2)>>2]=-m;g=b}b=E+-1|0;m=.9900000095367432;w=0;while(1){if((w|0)>=(b|0))break;He=Pe+(w<<2)|0;h[He>>2]=+h[He>>2]*m;m=m*.9900000095367432;w=w+1|0}He=Pe+(b<<2)|0;h[He>>2]=+h[He>>2]*m;Ji(se,Pe,M,S,E);He=e+4857|0;b=r[He>>0]|0;do if(b<<24>>24!=0?(s[e+4756>>2]|0)==0:0){x=.6000000238418579-+(s[A>>2]|0)*.004000000189989805-+(s[e+4624>>2]|0)*.10000000149011612*.00390625-+(r[e+4633>>0]>>1|0)*.15000000596046448-+(s[e+4804>>2]|0)*.10000000149011612*30517578125e-15;D=tt+228|0;Q=e+4854|0;ee=e+4856|0;j=e+10152|0;C=s[e+4636>>2]|0;k=+(s[e+4744>>2]|0)*152587890625e-16;V=s[Ve>>2]|0;W=s[e+4736>>2]|0;$=s[e+4672>>2]|0;E=te(($*5|0)+20|0,V)|0;I=$*20|0;w=I+80|0;R=($*40|0)+160|0;K=V*5|0;X=V<<1;Z=V*18|0;G=Z+-1|0;P=(V|0)==16;t:do if(P){b=E;while(1){_=b+-1|0;if((b|0)<=0)break;m=+h[se+(_<<2)>>2];g=(h[d>>2]=m,s[d>>2]|0);v=(g&2130706432)>>>0>1249902592;if(!v){b=(g|0)<0;y=b?m+-8388608+8388608:m+8388608+-8388608;if(y==0)y=b?-0:0}else y=m;if((~~y|0)<=32767){if(!v){b=(g|0)<0;y=b?m+-8388608+8388608:m+8388608+-8388608;if(y==0)y=b?-0:0}else y=m;if((~~y|0)<-32768)b=-32768;else{if(!v){b=(g|0)<0;m=b?m+-8388608+8388608:m+8388608+-8388608;if(m==0)m=b?-0:0}b=~~m}}else b=32767;n[F+(_<<1)>>1]=b;b=_}g=Fe;s[g>>2]=0;s[g+4>>2]=0;Pr(Fe,le,F,E);g=R;while(1){b=g+-1|0;if((g|0)<=0){b=le;break t}h[Be+(b<<2)>>2]=+(n[le+(b<<1)>>1]|0); +g=b}}else{if((V|0)==12)b=E;else{b=R;while(1){_=b+-1|0;if((b|0)<=0)break;m=+h[se+(_<<2)>>2];g=(h[d>>2]=m,s[d>>2]|0);v=(g&2130706432)>>>0>1249902592;if(!v){b=(g|0)<0;y=b?m+-8388608+8388608:m+8388608+-8388608;if(y==0)y=b?-0:0}else y=m;if((~~y|0)<=32767){if(!v){b=(g|0)<0;y=b?m+-8388608+8388608:m+8388608+-8388608;if(y==0)y=b?-0:0}else y=m;if((~~y|0)<-32768)b=-32768;else{if(!v){b=(g|0)<0;m=b?m+-8388608+8388608:m+8388608+-8388608;if(m==0)m=b?-0:0}b=~~m}}else b=32767;n[le+(_<<1)>>1]=b;b=_}b=le;break}while(1){_=b+-1|0;if((b|0)<=0)break;m=+h[se+(_<<2)>>2];g=(h[d>>2]=m,s[d>>2]|0);v=(g&2130706432)>>>0>1249902592;if(!v){b=(g|0)<0;y=b?m+-8388608+8388608:m+8388608+-8388608;if(y==0)y=b?-0:0}else y=m;if((~~y|0)<=32767){if(!v){b=(g|0)<0;y=b?m+-8388608+8388608:m+8388608+-8388608;if(y==0)y=b?-0:0}else y=m;if((~~y|0)<-32768)b=-32768;else{if(!v){b=(g|0)<0;m=b?m+-8388608+8388608:m+8388608+-8388608;if(m==0)m=b?-0:0}b=~~m}}else b=32767;n[z+(_<<1)>>1]=b;b=_}s[Fe>>2]=0;s[Fe+4>>2]=0;s[Fe+8>>2]=0;s[Fe+12>>2]=0;s[Fe+16>>2]=0;s[Fe+20>>2]=0;s[qe>>2]=0;s[qe+4>>2]=0;s[qe+8>>2]=0;s[qe+12>>2]=0;S=Fe+16|0;M=qe+16|0;T=Fe+20|0;_=le;A=z;b=E;while(1){E=(b|0)<480?b:480;g=0;while(1){if((g|0)>=(E|0)){g=qe;v=E;break}Ce=(s[S>>2]|0)+(n[A+(g<<1)>>1]<<8)|0;s[M+(g<<2)>>2]=Ce;Ce=Ce<<2;Ie=Ce>>16;Ce=Ce&65532;s[S>>2]=(s[T>>2]|0)+((te(Ie,-2797)|0)+((te(Ce,-2797)|0)>>16));s[T>>2]=(te(Ie,-6507)|0)+((te(Ce,-6507)|0)>>16);g=g+1|0}while(1){if((v|0)<=2)break;Se=s[g>>2]|0;Te=g+4|0;Me=s[Te>>2]|0;xe=g+8|0;Ie=s[xe>>2]|0;Ce=g+12|0;Re=s[Ce>>2]|0;Re=(((Se>>16)*4697|0)+(((Se&65535)*4697|0)>>>16)+(((Me>>16)*10739|0)+(((Me&65535)*10739|0)>>>16))+(((Ie>>16)*8276|0)+(((Ie&65535)*8276|0)>>>16))+(((Re>>16)*1567|0)+(((Re&65535)*1567|0)>>>16))>>5)+1>>1;n[_>>1]=(Re|0)>32767?32767:((Re|0)<-32768?-32768:Re)&65535;Te=s[Te>>2]|0;xe=s[xe>>2]|0;Re=s[Ce>>2]|0;Ie=s[g+16>>2]|0;Ie=(((Te>>16)*1567|0)+(((Te&65535)*1567|0)>>>16)+(((xe>>16)*8276|0)+(((xe&65535)*8276|0)>>>16))+(((Re>>16)*10739|0)+(((Re&65535)*10739|0)>>>16))+(((Ie>>16)*4697|0)+(((Ie&65535)*4697|0)>>>16))>>5)+1>>1;n[_+2>>1]=(Ie|0)>32767?32767:((Ie|0)<-32768?-32768:Ie)&65535;_=_+4|0;g=Ce;v=v+-3|0}b=b-E|0;if((b|0)<=0)break;Ce=qe+(E<<2)|0;s[qe>>2]=s[Ce>>2];s[qe+4>>2]=s[Ce+4>>2];s[qe+8>>2]=s[Ce+8>>2];s[qe+12>>2]=s[Ce+12>>2];A=A+(E<<1)|0}g=qe+(E<<2)|0;s[Fe>>2]=s[g>>2];s[Fe+4>>2]=s[g+4>>2];s[Fe+8>>2]=s[g+8>>2];s[Fe+12>>2]=s[g+12>>2];g=R;while(1){b=g+-1|0;if((g|0)<=0){b=le;break t}h[Be+(b<<2)>>2]=+(n[le+(b<<1)>>1]|0);g=b}}while(0);Ce=Fe;s[Ce>>2]=0;s[Ce+4>>2]=0;Pr(Fe,ue,b,R);while(1){b=w+-1|0;if((w|0)<=0)break;h[Le+(b<<2)>>2]=+(n[ue+(b<<1)>>1]|0);w=b}b=I+79|0;while(1){if((b|0)<=0)break;w=Le+(b<<2)|0;b=b+-1|0;m=+(~~+h[w>>2]|0)+ +h[Le+(b<<2)>>2];if(!(m>32767)){if(m<-32768)m=-32768}else m=32767;h[w>>2]=+(~~m<<16>>16)}kn(je|0,0,$*596|0)|0;b=$>>1;w=Ue+256|0;A=je+32|0;_=0;E=Le+320|0;while(1){if((_|0)>=(b|0)){b=72;break}g=E+-32|0;mi(E,E+-288|0,Ue,40,65);U=+h[w>>2];m=+tr(E,40);m=m+ +tr(g,40)+16e4;h[A>>2]=+h[A>>2]+U*2/m;v=9;while(1){if((v|0)==73)break;Ce=g+-4|0;B=+h[Ce>>2];U=+h[g+156>>2];U=m+(B*B-U*U);Ie=je+(v<<2)|0;h[Ie>>2]=+h[Ie>>2]+ +h[Ue+(72-v<<2)>>2]*2/U;g=Ce;v=v+1|0;m=U}_=_+1|0;E=E+160|0}while(1){if((b|0)<=7)break;Ce=je+(b<<2)|0;U=+h[Ce>>2];h[Ce>>2]=U-U*+(b|0)*.000244140625;b=b+-1|0}E=W<<1;w=E+4|0;b=0;while(1){if((b|0)>=(w|0)){b=1;break}s[ne+(b<<2)>>2]=b;b=b+1|0}while(1){if((b|0)>=(w|0))break;m=+h[A+(b<<2)>>2];v=b;while(1){g=v+-1|0;if((v|0)<=0)break;y=+h[A+(g<<2)>>2];if(!(m>y))break;h[A+(v<<2)>>2]=y;s[ne+(v<<2)>>2]=s[ne+(g<<2)>>2];v=g}h[A+(v<<2)>>2]=m;s[ne+(v<<2)>>2]=b;b=b+1|0}_=A+(E+3<<2)|0;b=E+2|0;g=w;while(1){if((g|0)>=65)break;m=+h[A+(g<<2)>>2];if(m>+h[_>>2]){v=b;while(1){if((v|0)<=-1)break;y=+h[A+(v<<2)>>2];if(!(m>y))break;Ce=v+1|0;h[A+(Ce<<2)>>2]=y;s[ne+(Ce<<2)>>2]=s[ne+(v<<2)>>2];v=v+-1|0}Ce=v+1|0;h[A+(Ce<<2)>>2]=m;s[ne+(Ce<<2)>>2]=g}g=g+1|0}m=+h[A>>2];do if(m<.20000000298023224){kn(D|0,0,$<<2|0)|0;h[j>>2]=0;n[Q>>1]=0;r[ee>>0]=0;b=0}else{m=m*k;b=0;while(1){if((b|0)>=(w|0))break;if(!(+h[je+(b+8<<2)>>2]>m)){w=b;break}Ce=ne+(b<<2)|0;s[Ce>>2]=(s[Ce>>2]<<1)+16;b=b+1|0}b=11;while(1){if((b|0)==148){b=0;break}n[Y+(b<<1)>>1]=0;b=b+1|0}while(1){if((b|0)>=(w|0)){b=146;break}n[Y+(s[ne+(b<<2)>>2]<<1)>>1]=1;b=b+1|0}while(1){if((b|0)<=15){w=16;I=0;break}Ce=b+-1|0;Ie=Y+(b<<1)|0;n[Ie>>1]=(o[Ie>>1]|0)+((o[Y+(Ce<<1)>>1]|0)+(o[Y+(b+-2<<1)>>1]|0));b=Ce}while(1){if((w|0)==144){b=146;break}b=w+1|0;if((n[Y+(b<<1)>>1]|0)<=0){w=b;continue}s[ne+(I<<2)>>2]=w;w=b;I=I+1|0}while(1){if((b|0)<=15){w=16;b=0;break}Ce=b+-1|0;Ie=Y+(b<<1)|0;n[Ie>>1]=(o[Ie>>1]|0)+((o[Y+(Ce<<1)>>1]|0)+(o[Y+(b+-2<<1)>>1]|0)+(o[Y+(b+-3<<1)>>1]|0));b=Ce}while(1){if((w|0)==147)break;if((n[Y+(w<<1)>>1]|0)>0){n[Y+(b<<1)>>1]=w+65534;b=b+1|0}w=w+1|0}kn(je|0,0,2384)|0;A=(V|0)==8;_=0;E=A?se+640|0:Be+640|0;while(1){if((_|0)>=($|0))break;y=+tr(E,40)+1;v=0;while(1){if((v|0)>=(b|0))break;g=n[Y+(v<<1)>>1]|0;w=E+(0-g<<2)|0;m=+ir(w,E,40);if(m>0)m=m*2/(+tr(w,40)+y);else m=0;h[je+(_*596|0)+(g<<2)>>2]=m;v=v+1|0}_=_+1|0;E=E+160|0}if((C|0)>0){if((V|0)==12)b=(C<<1|0)/3|0;else b=C>>(P&1);w=b;U=+zr(+(b|0))*3.32192809488736}else{w=C;U=0}F=($|0)==4;if(F){T=32969;R=11;M=A&(W|0)>0?11:3}else{T=32935;R=3;M=3}L=+($|0);B=L*.20000000298023224;A=(w|0)>0;x=L*x;w=0;O=0;N=-1e3;E=0;S=-1;while(1){if((E|0)>=(I|0))break;_=s[ne+(E<<2)>>2]|0;v=0;while(1){if((v|0)>=(M|0)){g=0;k=-1e3;b=0;break}b=ie+(v<<2)|0;h[b>>2]=0;m=0;g=0;while(1){if((g|0)>=($|0))break;k=m+ +h[je+(g*596|0)+(_+(r[T+((te(g,R)|0)+v)>>0]|0)<<2)>>2];h[b>>2]=k;m=k;g=g+1|0}v=v+1|0}while(1){if((b|0)>=(M|0))break;y=+h[ie+(b<<2)>>2];Ce=y>k;g=Ce?b:g;k=Ce?y:k;b=b+1|0}y=+zr(+(_|0))*3.32192809488736;m=k-B*y;if(A){y=y-U;y=y*y;m=m-B*+h[j>>2]*y/(y+.5)}Ce=m>N&k>x;w=Ce?g:w;O=Ce?k:O;N=Ce?m:N;E=E+1|0;S=Ce?_:S}if((S|0)==-1){s[D>>2]=0;s[D+4>>2]=0;s[D+8>>2]=0;s[D+12>>2]=0;h[j>>2]=0;n[Q>>1]=0;r[ee>>0]=0;b=0;break}h[j>>2]=O/L;if((V|0)>8){if((V|0)==12){b=(S<<16>>16)*3|0;b=(b>>1)+(b&1)|0}else b=S<<1;if((X|0)<(Z|0))if((b|0)<(Z|0))E=(b|0)<(X|0)?X:b;else E=G;else if((b|0)>(X|0))E=X;else E=(b|0)<(G|0)?G:b;D=E+-2|0;D=(D|0)>(X|0)?D:X;j=E+2|0;j=(j|0)<(G|0)?j:G;if(F){T=33013;R=33149+(W<<3)|0;I=34;C=r[33173+W>>0]|0}else{T=32941;R=32965;I=12;C=12}P=se+(V*20<<2)|0;_=0-D|0;S=0;M=P;while(1){if((S|0)>=($|0))break;b=S<<1;A=r[R+b>>0]|0;b=r[R+(b|1)>>0]|0;mi(M,M+(_<<2)+(0-b<<2)|0,qe,K,b-A+1|0);w=A;g=0;while(1){if((b|0)<(w|0))break;s[ze+(g<<2)>>2]=s[qe+(b-w<<2)>>2];w=w+1|0;g=g+1|0}b=te(S,I)|0;g=0;while(1){if((g|0)>=(C|0))break;w=(r[T+(b+g)>>0]|0)-A|0;v=0;while(1){if((v|0)==5)break;s[oe+(S*680|0)+(g*20|0)+(v<<2)>>2]=s[ze+(w+v<<2)>>2];v=v+1|0}g=g+1|0}S=S+1|0;M=M+(K<<2)|0}if(F){A=33013;S=33149+(W<<3)|0;M=34;R=r[33173+W>>0]|0}else{A=32941;S=32965;M=12;R=12}T=0;I=P;while(1){if((T|0)>=($|0))break;w=T<<1;_=r[S+w>>0]|0;b=I+(0-(_+D)<<2)|0;m=+tr(b,K)+.001;h[ze>>2]=m;w=(r[S+(w|1)>>0]|0)-_|0;g=1;while(1){if((g|0)>(w|0))break;B=+h[b+(K-g<<2)>>2];U=+h[b+(0-g<<2)>>2];U=m-B*B+U*U;h[ze+(g<<2)>>2]=U;m=U;g=g+1|0}b=te(T,M)|0;g=0;while(1){if((g|0)>=(R|0))break;w=(r[A+(b+g)>>0]|0)-_|0;v=0;while(1){if((v|0)==5)break;s[fe+(T*680|0)+(g*20|0)+(v<<2)>>2]=s[ze+(w+v<<2)>>2];v=v+1|0}g=g+1|0}T=T+1|0;I=I+(K<<2)|0}O=.05000000074505806/+(E|0);if(F){M=33013;T=34;S=r[33173+W>>0]|0}else{M=32941;T=12;S=12}x=+tr(P,te(K,$)|0)+1;w=0;m=-1e3;_=D;A=0;while(1){if((_|0)>(j|0))break;else{v=0;b=E}while(1){if((v|0)<(S|0)){y=0;k=x;g=0}else break;while(1){if((g|0)>=($|0))break;y=y+ +h[oe+(g*680|0)+(v*20|0)+(A<<2)>>2];k=k+ +h[fe+(g*680|0)+(v*20|0)+(A<<2)>>2];g=g+1|0}if(y>0)y=y*2/k*(1-O*+(v|0));else y=0;if(y>m){Ce=(_+(r[33013+v>>0]|0)|0)<(Z|0);w=Ce?v:w;m=Ce?y:m;b=Ce?_:b}v=v+1|0}_=_+1|0;A=A+1|0;E=b}g=(X|0)>(Z|0);_=0;while(1){if((_|0)>=($|0))break;b=E+(r[M+((te(_,T)|0)+w)>>0]|0)|0;v=tt+228+(_<<2)|0;s[v>>2]=b;do if(g){if((b|0)>(X|0)){b=X;break}b=(b|0)<(Z|0)?Z:b}else{if((b|0)>(Z|0)){b=Z;break}b=(b|0)<(X|0)?X:b}while(0);s[v>>2]=b;_=_+1|0}b=E-X|0}else{b=0;while(1){if((b|0)>=($|0))break;Ce=S+(r[T+((te(b,R)|0)+w)>>0]|0)|0;s[tt+228+(b<<2)>>2]=(Ce|0)>144?144:(Ce|0)<16?16:Ce;b=b+1|0}b=S+65520|0}n[Q>>1]=b;r[ee>>0]=w;b=1}while(0);if(b){r[He>>0]=2;b=2;break}else{r[He>>0]=1;b=1;break}}else ot=264;while(0);if((ot|0)==264){Ce=tt+228|0;s[Ce>>2]=0;s[Ce+4>>2]=0;s[Ce+8>>2]=0;s[Ce+12>>2]=0;n[e+4854>>1]=0;r[e+4856>>0]=0;h[e+10152>>2]=0}A=Ze+(0-(s[e+4692>>2]|0)<<2)|0;Te=e+4808|0;y=+(s[Te>>2]|0);m=y*.0078125;j=s[e+4788>>2]|0;k=+(j+(s[e+4792>>2]|0)|0)*.5*30517578125e-15;xe=tt+696|0;h[xe>>2]=k;N=1/(+J(+-((m+-20)*.25))+1);Re=tt+700|0;h[Re>>2]=N;if(!(s[e+4768>>2]|0)){U=1-+(s[e+4624>>2]|0)*.00390625;m=m-N*2*(k*.5+.5)*U*U}F=b<<24>>24==2;do if(!F){O=m+(y*-.4000000059604645*.0078125+6)*(1-k);w=s[Ve>>2]<<1;_=e+4672|0;b=s[_>>2]|0;E=((b<<16>>16)*5|0)/2|0;k=+(w|0);m=0;g=0;y=0;v=ce;while(1){if((g|0)>=(E|0))break;x=+zr(k+ +tr(v,w))*3.32192809488736;if((g|0)>0)m=m+ +q(+(x-y));g=g+1|0;y=x;v=v+(w<<2)|0}w=e+4858|0;if(m>+(E+-1|0)*.6000000238418579){r[w>>0]=0;Ce=_;break}else{r[w>>0]=1;Ce=_;break}}else{O=m+ +h[e+10152>>2]*2;r[e+4858>>0]=0;b=e+4672|0;Ce=b;b=s[b>>2]|0}while(0);B=+h[ae>>2]*.0010000000474974513;B=.9399999976158142/(B*B+1);D=s[e+4764>>2]|0;x=+(D|0)*152587890625e-16+N*.009999999776482582;I=e+4696|0;Ie=e+4680|0;C=e+4728|0;N=x;L=1-x*x;P=0;E=A;while(1){if((P|0)>=(b|0))break;w=s[Ve>>2]|0;g=w*3|0;A=s[I>>2]|0;_=(A-g|0)/2|0;y=3.1415927410125732/+(_+1|0);k=2-y*y;m=0;v=0;while(1){if((v|0)>=(_|0))break;h[Be+(v<<2)>>2]=+h[E+(v<<2)>>2]*.5*(m+y);Me=v|1;h[Be+(Me<<2)>>2]=+h[E+(Me<<2)>>2]*y;U=k*y-m;Me=v|2;h[Be+(Me<<2)>>2]=+h[E+(Me<<2)>>2]*.5*(y+U);Me=v|3;h[Be+(Me<<2)>>2]=+h[E+(Me<<2)>>2]*U;m=U;y=k*U-y;v=v+4|0}Mn(Be+(_<<2)|0,E+(_<<2)|0,w*12|0)|0;g=_+g|0;w=Be+(g<<2)|0;g=E+(g<<2)|0;m=1;y=k*.5;v=0;while(1){if((v|0)>=(_|0))break;h[w+(v<<2)>>2]=+h[g+(v<<2)>>2]*.5*(m+y);Me=v|1;h[w+(Me<<2)>>2]=+h[g+(Me<<2)>>2]*y;U=k*y-m;Me=v|2;h[w+(Me<<2)>>2]=+h[g+(Me<<2)>>2]*.5*(y+U);Me=v|3;h[w+(Me<<2)>>2]=+h[g+(Me<<2)>>2]*U;m=U;y=k*U-y;v=v+4|0}E=E+(s[Ie>>2]<<2)|0;S=(D|0)>0;R=s[C>>2]|0;t:do if(S){kn(qe|0,0,200)|0;kn(ze|0,0,200)|0;g=qe+(R<<3)|0;v=ze+(R<<3)|0;m=0;_=0;while(1){if((_|0)>=(A|0)){w=0;break}w=0;y=+h[Be+(_<<2)>>2];while(1){if((w|0)>=(R|0))break;Se=w|1;Ae=qe+(Se<<3)|0;ht=+c[Ae>>3];U=m+N*(ht-y);c[qe+(w<<3)>>3]=y;Me=ze+(w<<3)|0;c[Me>>3]=+c[Me>>3]+ +c[qe>>3]*y;Me=w+2|0;k=+c[qe+(Me<<3)>>3];c[Ae>>3]=U;Se=ze+(Se<<3)|0;c[Se>>3]=+c[Se>>3]+ +c[qe>>3]*U;m=k;w=Me;y=ht+N*(k-U)}c[g>>3]=y;m=+c[qe>>3];c[v>>3]=+c[v>>3]+m*y;_=_+1|0}while(1){if((w|0)>(R|0))break;h[Le+(w<<2)>>2]=+c[ze+(w<<3)>>3];w=w+1|0}}else{w=(R|0)<(A|0)?R+1|0:A;g=0;while(1){if((g|0)>=(w|0))break t;h[Le+(g<<2)>>2]=+ir(Be,Be+(g<<2)|0,A-g|0);g=g+1|0}}while(0);ht=+h[Le>>2];h[Le>>2]=ht+(ht*29999999242136255e-21+1);w=0;while(1){if((w|0)>(R|0)){v=0;break}ht=+h[Le+(w<<2)>>2];c[qe+(w<<4)+8>>3]=ht;c[qe+(w<<4)>>3]=ht;w=w+1|0}t:while(1){if((R|0)<=(v|0))break;w=v+1|0;m=+c[he>>3];m=-+c[qe+(w<<4)>>3]/(m>9.999999717180685e-10?m:9.999999717180685e-10);h[le+(v<<2)>>2]=m;g=R-v|0;_=0;while(1){if((_|0)>=(g|0)){v=w;continue t}Se=qe+(_+v+1<<4)|0;ht=+c[Se>>3];Me=qe+(_<<4)+8|0;U=+c[Me>>3];c[Se>>3]=ht+U*m;c[Me>>3]=U+ht*m;_=_+1|0}}m=+c[he>>3];T=tt+244+(P*24<<2)|0;v=0;while(1){if((v|0)>=(R|0))break;y=+h[le+(v<<2)>>2];w=v+1|0;g=w>>1;_=0;while(1){if((_|0)>=(g|0))break;Se=T+(_<<2)|0;ht=+h[Se>>2];Me=T+(v-_+-1<<2)|0;U=+h[Me>>2];h[Se>>2]=ht+U*y;h[Me>>2]=U+ht*y;_=_+1|0}h[T+(v<<2)>>2]=-y;v=w}y=+H(+m);w=tt+(P<<2)|0;h[w>>2]=y;M=R+-1|0;if(S){m=+h[T+(M<<2)>>2];g=R+-2|0;while(1){m=x*m;if((g|0)<=-1)break;m=+h[T+(g<<2)>>2]-m;g=g+-1|0}h[w>>2]=y*(1/(m+1));m=B;w=0}else{m=B;w=0}while(1){if((w|0)>=(M|0))break;Me=T+(w<<2)|0;h[Me>>2]=+h[Me>>2]*m;m=m*B;w=w+1|0}A=T+(M<<2)|0;m=+h[A>>2]*m;h[A>>2]=m;t:do if(S){w=R;while(1){if((w|0)<=1)break;Me=T+(w+-2<<2)|0;ht=+h[Me>>2]-m*x;h[Me>>2]=ht;m=ht;w=w+-1|0}m=L/(+h[T>>2]*x+1);w=0;while(1){if((w|0)>=(R|0)){w=0;_=0;break}Me=T+(w<<2)|0;h[Me>>2]=+h[Me>>2]*m;w=w+1|0}while(1){if((_|0)<10){g=0;v=w;y=-1}else break t;while(1){if((g|0)>=(R|0))break;ht=+q(+ +h[T+(g<<2)>>2]);Me=ht>y;Se=Me?g:v;g=g+1|0;v=Se;y=Me?ht:y}if(!(y<=3.999000072479248))w=1;else break t;while(1){if((w|0)>=(R|0))break;Me=T+(w+-1<<2)|0;h[Me>>2]=+h[Me>>2]+ +h[T+(w<<2)>>2]*x;w=w+1|0}m=1/m;w=0;while(1){if((w|0)>=(R|0))break;Me=T+(w<<2)|0;h[Me>>2]=+h[Me>>2]*m;w=w+1|0}m=.9900000095367432-(+(_|0)*.10000000149011612+.800000011920929)*(y+-3.999000072479248)/(y*+(v+1|0));y=m;w=0;while(1){if((w|0)>=(M|0))break;Me=T+(w<<2)|0;h[Me>>2]=+h[Me>>2]*y;y=y*m;w=w+1|0}m=+h[A>>2]*y;h[A>>2]=m;w=R;while(1){if((w|0)<=1)break;Me=T+(w+-2<<2)|0;ht=+h[Me>>2]-m*x;h[Me>>2]=ht;m=ht;w=w+-1|0}m=L/(+h[T>>2]*x+1);w=0;while(1){if((w|0)>=(R|0))break;Me=T+(w<<2)|0;h[Me>>2]=+h[Me>>2]*m;w=w+1|0}w=v;_=_+1|0}}else{w=0;v=0;while(1){if((v|0)<10){g=0;m=-1}else break t;while(1){if((g|0)>=(R|0))break;ht=+q(+ +h[T+(g<<2)>>2]);Me=ht>m;Se=Me?g:w;g=g+1|0;w=Se;m=Me?ht:m}if(m<=3.999000072479248)break t;m=.9900000095367432-(+(v|0)*.10000000149011612+.800000011920929)*(m+-3.999000072479248)/(m*+(w+1|0));y=m;g=0;while(1){if((g|0)>=(M|0))break;Me=T+(g<<2)|0;h[Me>>2]=+h[Me>>2]*y;y=y*m;g=g+1|0}h[A>>2]=+h[A>>2]*y;v=v+1|0}}while(0);P=P+1|0}m=+mt(+(O*-.1599999964237213));w=0;while(1){if((w|0)>=(b|0))break;Me=tt+(w<<2)|0;h[Me>>2]=+h[Me>>2]*m+1.2483305931091309;w=w+1|0}Me=e+4624|0;m=+(s[Me>>2]|0);y=((+(j|0)*30517578125e-15+-1)*.5+1)*4*(m*.00390625);t:do if(F){w=0;while(1){if((w|0)>=(b|0))break;ht=.20000000298023224/+(s[Ve>>2]|0)+3/+(s[tt+228+(w<<2)>>2]|0);h[tt+628+(w<<2)>>2]=ht+-1;h[tt+644+(w<<2)>>2]=1-ht-ht*y;w=w+1|0}y=-.25-m*.26249998807907104*.00390625}else{ht=1.2999999523162842/+(s[Ve>>2]|0);g=tt+628|0;h[g>>2]=ht+-1;v=tt+644|0;h[v>>2]=1-ht-ht*y*.6000000238418579;w=1;while(1){if((w|0)>=(b|0)){y=-.25;break t}s[tt+628+(w<<2)>>2]=s[g>>2];s[tt+644+(w<<2)>>2]=s[v>>2];w=w+1|0}}while(0);if(F)m=((1-(1-+h[Re>>2])*+h[xe>>2])*.20000000298023224+.30000001192092896)*+H(+ +h[e+10152>>2]);else m=0;w=e+7264|0;g=e+7268|0;v=0;while(1){if((v|0)>=(b|0))break;ht=+h[w>>2];ht=ht+(m-ht)*.4000000059604645;h[w>>2]=ht;h[tt+676+(v<<2)>>2]=ht;ht=+h[g>>2];ht=ht+(y-ht)*.4000000059604645;h[g>>2]=ht;h[tt+660+(v<<2)>>2]=ht;v=v+1|0}w=0;while(1){if((w|0)>=(b|0))break;h[Fe+(w<<2)>>2]=1/+h[tt+(w<<2)>>2];w=w+1|0}if(F){R=s[Ie>>2]|0;I=R+5|0;A=ce;S=le;M=0;T=ue;while(1){if((M|0)>=(b|0))break;v=A+(-2-(s[tt+228+(M<<2)>>2]|0)<<2)|0;w=v+16|0;m=+tr(w,R);h[S>>2]=m;g=1;while(1){if((g|0)==5)break;U=+h[w+(0-g<<2)>>2];ht=+h[w+(R-g<<2)>>2];ht=m+(U*U-ht*ht);h[S+(g*6<<2)>>2]=ht;m=ht;g=g+1|0}E=1;_=v+12|0;while(1){if((E|0)==5){g=0;break}m=+ir(w,_,R);ht=m;h[S+(E*5<<2)>>2]=ht;h[S+(E<<2)>>2]=ht;g=5-E|0;v=1;while(1){if((v|0)>=(g|0))break;Ae=0-v|0;Se=R-v|0;ht=m+(+h[w+(Ae<<2)>>2]*+h[_+(Ae<<2)>>2]-+h[w+(Se<<2)>>2]*+h[_+(Se<<2)>>2]);U=ht;Se=E+v|0;h[S+((Se*5|0)+v<<2)>>2]=U;h[S+((v*5|0)+Se<<2)>>2]=U;m=ht;v=v+1|0}E=E+1|0;_=_+-4|0}while(1){if((g|0)==5)break;h[T+(g<<2)>>2]=+ir(w,A,R);g=g+1|0;w=w+-4|0}ht=+tr(A,I);m=(+h[S>>2]+ +h[S+96>>2])*.014999999664723873+1;m=1/(ht>m?ht:m);w=0;while(1){if((w|0)>=24){w=24;break}Se=S+(w<<2)|0;h[Se>>2]=+h[Se>>2]*m;Se=S+((w|1)<<2)|0;h[Se>>2]=+h[Se>>2]*m;Se=S+((w|2)<<2)|0;h[Se>>2]=+h[Se>>2]*m;Se=S+((w|3)<<2)|0;h[Se>>2]=+h[Se>>2]*m;w=w+4|0}while(1){if((w|0)==25){w=0;break}Se=S+(w<<2)|0;h[Se>>2]=+h[Se>>2]*m;w=w+1|0}while(1){if((w|0)>=4){w=4;break}Se=T+(w<<2)|0;h[Se>>2]=+h[Se>>2]*m;Se=T+((w|1)<<2)|0;h[Se>>2]=+h[Se>>2]*m;Se=T+((w|2)<<2)|0;h[Se>>2]=+h[Se>>2]*m;Se=T+((w|3)<<2)|0;h[Se>>2]=+h[Se>>2]*m;w=w+4|0}while(1){if((w|0)==5)break;Se=T+(w<<2)|0;h[Se>>2]=+h[Se>>2]*m;w=w+1|0}A=A+(R<<2)|0;S=S+100|0;M=M+1|0;T=T+20|0}ye=e+4832|0;Se=e+4748|0;v=s[Ie>>2]|0;Ee=s[Ce>>2]|0;w=Ee*25|0;g=0;while(1){if((g|0)>=(w|0))break;m=+h[le+(g<<2)>>2]*131072;b=(h[d>>2]=m,s[d>>2]|0);if((b&2130706432)>>>0<=1249902592){b=(b|0)<0;m=b?m+-8388608+8388608:m+8388608+-8388608;if(m==0)m=b?-0:0}s[Be+(g<<2)>>2]=~~m;g=g+1|0}_e=e+4860|0;Ae=tt+708|0;ke=Ee*5|0;w=0;while(1){if((w|0)>=(ke|0))break;m=+h[ue+(w<<2)>>2]*131072;b=(h[d>>2]=m,s[d>>2]|0);if((b&2130706432)>>>0<=1249902592){b=(b|0)<0;m=b?m+-8388608+8388608:m+8388608+-8388608;if(m==0)m=b?-0:0}s[Le+(w<<2)>>2]=~~m;w=w+1|0}we=v<<16>>16;ve=0;b=0;ge=0;w=2147483647;E=0;while(1){if((ge|0)==3)break;ue=s[17388+(ge<<2)>>2]|0;de=s[17400+(ge<<2)>>2]|0;pe=s[17412+(ge<<2)>>2]|0;be=r[29888+ge>>0]|0;me=Be;M=b;ce=0;S=0;E=0;b=s[Se>>2]|0;le=Le;while(1){if((ce|0)>=(Ee|0))break;he=5333-b|0;g=he+896|0;if((he|0)>=-896)if((g|0)>3966)g=2147483647;else{v=g>>7;A=1<>16)<>7;else g=te(A>>7,_+((te(te(_,128-_|0)|0,-174)|0)>>16)|0)|0;g=A+g|0}else g=0;C=g+-51|0;P=qe+ce|0;D=s[le>>2]<<7;j=s[le+4>>2]<<7;F=s[le+8>>2]<<7;z=s[le+12>>2]<<7;ae=0-(s[le+16>>2]<<7)|0;r[P>>0]=0;G=me+4|0;V=me+8|0;W=me+12|0;K=me+16|0;Y=me+28|0;Z=me+32|0;$=me+36|0;X=me+24|0;Q=me+52|0;ee=me+56|0;ie=me+48|0;ne=me+76|0;se=me+72|0;ae=ae<<1;oe=me+96|0;fe=de;he=M;R=0;I=2147483647;T=2147483647;while(1){if((R|0)>=(be|0))break;_=a[pe+R>>0]|0;ct=r[fe+1>>0]|0;M=(te(s[G>>2]|0,ct)|0)-D|0;v=r[fe+2>>0]|0;M=M+(te(s[V>>2]|0,v)|0)|0;A=r[fe+3>>0]|0;M=M+(te(s[W>>2]|0,A)|0)|0;g=r[fe+4>>0]|0;M=M+(te(s[K>>2]|0,g)|0)<<1;lt=r[fe>>0]|0;M=M+(te(s[me>>2]|0,lt)|0)|0;lt=(te(M>>16,lt)|0)+((te(M&65535,lt)|0)>>16)+32801|0;M=(te(s[Y>>2]|0,v)|0)-j|0;M=M+(te(s[Z>>2]|0,A)|0)|0;M=M+(te(s[$>>2]|0,g)|0)<<1;M=M+(te(s[X>>2]|0,ct)|0)|0;ct=lt+((te(M>>16,ct)|0)+((te(M&65535,ct)|0)>>16))|0;M=(te(s[Q>>2]|0,A)|0)-F|0;M=M+(te(s[ee>>2]|0,g)|0)<<1;M=M+(te(s[ie>>2]|0,v)|0)|0;v=ct+((te(M>>16,v)|0)+((te(M&65535,v)|0)>>16))|0;M=(te(s[ne>>2]|0,g)|0)-z<<1;M=M+(te(s[se>>2]|0,A)|0)|0;A=v+((te(M>>16,A)|0)+((te(M&65535,A)|0)>>16))|0;M=ae+(te(s[oe>>2]|0,g)|0)|0;g=A+((te(M>>16,g)|0)+((te(M&65535,g)|0)>>16))|0;do if((g|0)>-1){g=g+((_|0)>(C|0)?_-C<<11:0)|0;M=re(g|0)|0;v=24-M|0;A=0-v|0;do if(v)if((v|0)<0){v=g<>>(v+32|0);break}else{v=g<<32-v|g>>>v;break}else v=g;while(0);v=v&127;v=te(we,(v+(((te(v,128-v|0)|0)*179|0)>>>16)+(31-M<<7)<<16)+-125829120>>16)|0;v=v+(a[ue+R>>0]<<2)|0;if((v|0)>(I|0)){_=he;v=I;g=T;break}r[P>>0]=R}else{_=he;v=I;g=T}while(0);fe=fe+5|0;he=_;R=R+1|0;I=v;T=g}E=E+T|0;E=(E|0)<0?2147483647:E;S=S+I|0;S=(S|0)<0?2147483647:S;g=he+51|0;A=re(g|0)|0;v=24-A|0;_=0-v|0;do if(v)if((v|0)<0){v=g<<_|g>>>(v+32|0);break}else{v=g<<32-v|g>>>v;break}else v=g;while(0);lt=v&127;if((b+(lt+(((te(lt,128-lt|0)|0)*179|0)>>>16)+(31-A<<7))|0)<896)b=0;else{A=re(g|0)|0;v=24-A|0;_=0-v|0;do if(v)if((v|0)<0){g=g<<_|g>>>(v+32|0);break}else{g=g<<32-v|g>>>v;break}while(0);lt=g&127;b=b+(lt+(((te(lt,128-lt|0)|0)*179|0)>>>16)+(31-A<<7))+-896|0}me=me+100|0;M=he;ce=ce+1|0;le=le+20|0}if((S|0)>(w|0))b=ve;else{r[_e>>0]=ge;Mn(ye|0,qe|0,Ee|0)|0;w=S}ve=b;b=M;ge=ge+1|0}b=s[17400+(r[_e>>0]<<2)>>2]|0;v=0;while(1){if((v|0)>=(Ee|0))break;w=e+4832+v|0;g=v*5|0;_=0;while(1){if((_|0)==5)break;n[ze+(g+_<<1)>>1]=r[b+(((r[w>>0]|0)*5|0)+_)>>0]<<7;_=_+1|0}v=v+1|0}b=E>>((Ee|0)==2?1:2);s[Se>>2]=ve;v=re(b|0)|0;w=24-v|0;g=0-w|0;do if(w)if((w|0)<0){b=b<>>(w+32|0);break}else{b=b<<32-w|b>>>w;break}while(0);b=b&127;b=(b+(((te(b,128-b|0)|0)*179|0)>>>16)+(31-v<<7)<<16)+-125829120>>16;w=0;while(1){if((w|0)>=(ke|0))break;h[tt+144+(w<<2)>>2]=+(n[ze+(w<<1)>>1]|0)*6103515625e-14;w=w+1|0}m=+(te(b,-3)|0)*.0078125;h[Ae>>2]=m;if(!f){m=+((s[e+4708>>2]|0)+(s[e+5836>>2]|0)|0)*m*.10000000149011612;if(!(m>2)){if(m<0)m=0}else m=2;b=~~m;r[e+4861>>0]=b}else{r[e+4861>>0]=0;b=0}h[tt+224>>2]=+(n[25412+(b<<24>>24<<1)>>1]|0)*6103515625e-14;T=s[e+4732>>2]|0;_=s[Ie>>2]|0;E=s[Ce>>2]|0;A=_+T|0;S=Ue;M=0;T=Ze+(0-T<<2)|0;while(1){if((M|0)>=(E|0))break;g=0-(s[tt+228+(M<<2)>>2]|0)|0;y=+h[Fe+(M<<2)>>2];b=M*5|0;w=0;while(1){if((w|0)==5)break;s[qe+(w<<2)>>2]=s[tt+144+(b+w<<2)>>2];w=w+1|0}v=0;g=T+(g<<2)|0;while(1){if((v|0)>=(A|0))break;w=s[T+(v<<2)>>2]|0;b=S+(v<<2)|0;s[b>>2]=w;m=(s[d>>2]=w,+h[d>>2]);w=0;while(1){if((w|0)==5)break;ht=m-+h[qe+(w<<2)>>2]*+h[g+(2-w<<2)>>2];h[b>>2]=ht;m=ht;w=w+1|0}h[b>>2]=m*y;v=v+1|0;g=g+4|0}S=S+(A<<2)|0;M=M+1|0;T=T+(_<<2)|0}}else{S=e+4732|0;A=s[S>>2]|0;w=A;_=0;E=Ue;A=Ze+(0-A<<2)|0;while(1){if((_|0)>=(b|0))break;m=+h[Fe+(_<<2)>>2];b=s[Ie>>2]|0;v=b+w|0;g=v&65532;b=w+b&65532;w=0;while(1){if((w|0)>=(g|0))break;h[E+(w<<2)>>2]=+h[A+(w<<2)>>2]*m;lt=w|1;h[E+(lt<<2)>>2]=+h[A+(lt<<2)>>2]*m;lt=w|2;h[E+(lt<<2)>>2]=+h[A+(lt<<2)>>2]*m;lt=w|3;h[E+(lt<<2)>>2]=+h[A+(lt<<2)>>2]*m;w=w+4|0}while(1){if((b|0)>=(v|0))break;h[E+(b<<2)>>2]=+h[A+(b<<2)>>2]*m;b=b+1|0}lt=s[Ie>>2]|0;ct=s[S>>2]|0;b=s[Ce>>2]|0;w=ct;_=_+1|0;E=E+(lt+ct<<2)|0;A=A+(lt<<2)|0}kn(tt+144|0,0,b*20|0)|0;h[tt+708>>2]=0;s[e+4748>>2]=0}b=e+4756|0;if(!(s[b>>2]|0)){y=+mt(+(+h[tt+708>>2]/3))/1e4;y=y/(+h[Re>>2]*.75+.25)}else y=.009999999776482582;M=e+4732|0;A=s[M>>2]|0;E=(s[Ie>>2]|0)+A|0;S=e+4859|0;r[S>>0]=4;m=+Dr(Pe,Ue,y,E,s[Ce>>2]|0,A);A=e+4724|0;t:do if((s[A>>2]|0?(s[b>>2]|0)==0:0)?(s[Ce>>2]|0)==4:0){_=E<<1;m=m-+Dr(Ne,Ue+(_<<2)|0,y,E,2,s[M>>2]|0);Qi(je,Ne,s[M>>2]|0);v=3;k=3.4028234663852886e38;while(1){if((v|0)<=-1)break t;g=s[M>>2]|0;b=v<<16>>16;w=0;while(1){if((w|0)>=(g|0))break;lt=o[e+4592+(w<<1)>>1]|0;n[Le+(w<<1)>>1]=lt+((te((o[je+(w<<1)>>1]|0)-lt<<16>>16,b)|0)>>>2);w=w+1|0}Rr(Be,Le,g);b=0;while(1){if((b|0)>=(g|0))break;h[Ne+(b<<2)>>2]=+(n[Be+(b<<1)>>1]|0)*.000244140625;b=b+1|0}Ji(Oe,Ne,Ue,_,s[M>>2]|0);lt=s[M>>2]|0;ct=Oe+(lt<<2)|0;lt=E-lt|0;y=+tr(ct,lt);y=y+ +tr(ct+(E<<2)|0,lt);if(!(yk)break t}else{r[S>>0]=v;m=y}v=v+-1|0;k=y}}while(0);if((r[S>>0]|0)==4)Qi(je,Pe,s[M>>2]|0);v=s[Me>>2]<<16>>16;v=(te(v,-5)|0)+(v*59246>>16)+3146|0;v=v+((s[Ce>>2]|0)==2?v>>1:0)|0;Cr(Le,je,s[M>>2]|0);t:do if((s[A>>2]|0)==1?(De=r[S>>0]|0,De<<24>>24<4):0){b=De<<24>>24;w=s[M>>2]|0;g=0;while(1){if((g|0)>=(w|0))break;lt=o[e+4592+(g<<1)>>1]|0;n[Be+(g<<1)>>1]=lt+((te((o[je+(g<<1)>>1]|0)-lt<<16>>16,b)|0)>>>2);g=g+1|0}Cr(qe,Be,w);w=r[S>>0]|0;w=(te(w,w)|0)<<27;b=s[M>>2]|0;w=w>>16;g=0;while(1){if((g|0)>=(b|0)){w=1;break t}lt=Le+(g<<1)|0;n[lt>>1]=((n[lt>>1]|0)>>>1)+((te(n[qe+(g<<1)>>1]|0,w)|0)>>>16);g=g+1|0}}else w=0;while(0);Ur(e+4836|0,je,s[e+4784>>2]|0,Le,v,s[e+4752>>2]|0,r[He>>0]|0);b=ze+32|0;Rr(b,je,s[M>>2]|0);if(w){b=r[S>>0]|0;w=s[M>>2]|0;g=0;while(1){if((g|0)>=(w|0))break;lt=o[e+4592+(g<<1)>>1]|0;n[Be+(g<<1)>>1]=lt+((te((o[je+(g<<1)>>1]|0)-lt<<16>>16,b)|0)>>>2);g=g+1|0}Rr(ze,Be,w)}else Mn(ze|0,b|0,s[M>>2]<<1|0)|0;g=0;while(1){if((g|0)==2)break;b=s[M>>2]|0;w=0;while(1){if((w|0)>=(b|0))break;h[tt+16+(g<<6)+(w<<2)>>2]=+(n[ze+(g<<5)+(w<<1)>>1]|0)*.000244140625;w=w+1|0}g=g+1|0}_=s[Ie>>2]|0;lt=s[Ce>>2]|0;b=s[M>>2]|0;w=qe+(b<<2)|0;v=b+_|0;g=v<<1;Ji(qe,tt+16|0,Ue,g,b);ht=+h[tt>>2];h[tt+712>>2]=ht*ht*+tr(w,_);ht=+h[tt+4>>2];v=w+(v<<2)|0;h[tt+716>>2]=ht*ht*+tr(v,_);if((lt|0)==4){Ji(qe,tt+80|0,Ue+(g<<2)|0,g,b);ht=+h[tt+8>>2];h[tt+720>>2]=ht*ht*+tr(w,_);ht=+h[tt+12>>2];h[tt+724>>2]=ht*ht*+tr(v,_)}E=e+4592|0;b=je;_=E+32|0;do{n[E>>1]=n[b>>1]|0;E=E+2|0;b=b+2|0}while((E|0)<(_|0));t:do if((r[He>>0]|0)==2){m=1-1/(+J(+-((+h[tt+708>>2]+-12)*.25))+1)*.5;b=s[Ce>>2]|0;w=0;while(1){if((w|0)>=(b|0)){w=b;break t}lt=tt+(w<<2)|0;h[lt>>2]=+h[lt>>2]*m;w=w+1|0}}else w=s[Ce>>2]|0;while(0);m=+mt(+((21-+(s[Te>>2]|0)*.0078125)*.33000001311302185));m=m/+(s[Ie>>2]|0);b=0;while(1){if((b|0)>=(w|0)){b=0;break}lt=tt+(b<<2)|0;ht=+h[lt>>2];ht=+H(+(ht*ht+ +h[tt+712+(b<<2)>>2]*m));h[lt>>2]=ht<32767?ht:32767;b=b+1|0}while(1){if((b|0)>=(w|0))break;s[ze+(b<<2)>>2]=~~(+h[tt+(b<<2)>>2]*65536);b=b+1|0}Mn(tt+728|0,ze|0,w<<2|0)|0;b=e+7260|0;le=tt+744|0;r[le>>0]=r[b>>0]|0;ue=e+4828|0;de=(f|0)==2;pe=de&1;br(ue,ze,b,pe,w);b=s[Ce>>2]|0;w=0;while(1){if((w|0)>=(b|0))break;h[tt+(w<<2)>>2]=+(s[ze+(w<<2)>>2]|0)*152587890625e-16;w=w+1|0}g=r[He>>0]|0;do if(g<<24>>24==2){w=e+4858|0;if(+h[tt+708>>2]+ +(s[e+4804>>2]|0)*30517578125e-15>1){r[w>>0]=0;ce=w;w=0;break}else{r[w>>0]=1;ce=w;w=1;break}}else{w=e+4858|0;ce=w;w=r[w>>0]|0}while(0);lt=s[Me>>2]|0;he=tt+692|0;h[he>>2]=+(s[e+4720>>2]|0)*-.05000000074505806+1.2000000476837158+ +(lt|0)*-.20000000298023224*.00390625+ +h[xe>>2]*-.10000000149011612+ +h[Re>>2]*-.20000000298023224+ +(n[25404+(g<<24>>24>>1<<2)+(w<<24>>24<<1)>>1]|0)*.0009765625*.800000011920929;fe=e+5840|0;w=s[fe>>2]|0;v=e+6192+(w*36|0)|0;if((s[e+6184>>2]|0)!=0&(lt|0)>77){s[e+4816+(w<<2)>>2]=1;Mn(qe|0,e+144|0,4448)|0;E=v;b=ue;_=E+36|0;do{n[E>>1]=n[b>>1]|0;E=E+2|0;b=b+2|0}while((E|0)<(_|0));g=s[Ce>>2]|0;Mn(Fe|0,tt|0,g<<2|0)|0;b=s[fe>>2]|0;do if(!b)ot=544;else{if(!(s[e+4816+(b+-1<<2)>>2]|0)){ot=544;break}w=e+4632|0;b=g}while(0);if((ot|0)==544){w=e+4632|0;r[w>>0]=r[e+7260>>0]|0;b=(a[v>>0]|0)+(s[e+6188>>2]|0)|0;r[v>>0]=(b&255)<<24>>24<63?b&255:63;b=s[Ce>>2]|0}mr(ze,v,w,pe,b);b=s[Ce>>2]|0;w=0;while(1){if((w|0)>=(b|0))break;h[tt+(w<<2)>>2]=+(s[ze+(w<<2)>>2]|0)*152587890625e-16;w=w+1|0}er(e,tt,v,qe,e+6300+((s[fe>>2]|0)*320|0)|0,Ze);b=s[Ce>>2]|0;Mn(tt|0,Fe|0,b<<2|0)|0}g=0;w=0;while(1){if((w|0)>=(b|0))break;g=(r[e+4828+w>>0]|0)+(g<<8)|0;w=w+1|0}E=nt;b=i;_=E+48|0;do{s[E>>2]=s[b>>2];E=E+4|0;b=b+4|0}while((E|0)<(_|0));W=e+144|0;Mn(it|0,W|0,4448)|0;K=r[Ke>>0]|0;Y=e+5864|0;Z=n[Y>>1]|0;$=e+5860|0;X=s[$>>2]|0;Q=e+7260|0;ee=u+-5|0;ie=i+24|0;ne=i+28|0;se=e+4828|0;ae=e+4864|0;oe=i+20|0;D=0;M=0;T=0;G=256;z=0;R=0;j=-1;S=-1;V=0;F=0;I=0;w=0;while(1){A=(g|0)==(j|0);do if(!A){if((g|0)==(S|0)){b=I;ot=571;break}if((V|0)>0){E=i;b=nt;_=E+48|0;do{s[E>>2]=s[b>>2];E=E+4|0;b=b+4|0}while((E|0)<(_|0));Mn(W|0,it|0,4448)|0;r[Ke>>0]=K;n[Y>>1]=Z;s[$>>2]=X}er(e,tt,se,W,ae,Ze);v=(V|0)==6;if(v&(M|0)==0){s[st>>2]=s[i>>2];s[st+4>>2]=s[i+4>>2];s[st+8>>2]=s[i+8>>2];s[st+12>>2]=s[i+12>>2];s[st+16>>2]=s[i+16>>2];s[st+20>>2]=s[i+20>>2];_=s[ie>>2]|0;s[at>>2]=s[ne>>2];s[at+4>>2]=s[ne+4>>2];s[at+8>>2]=s[ne+8>>2];s[at+12>>2]=s[ne+12>>2];s[at+16>>2]=s[ne+16>>2]}else _=w;Di(e,i,s[fe>>2]|0,0,f);Li(i,r[He>>0]|0,r[ce>>0]|0,ae,s[We>>2]|0);b=(s[oe>>2]|0)+((re(s[ne>>2]|0)|0)+-32)|0;if(v&(M|0)==0&(b|0)>(u|0)){s[i>>2]=s[st>>2];s[i+4>>2]=s[st+4>>2];s[i+8>>2]=s[st+8>>2];s[i+12>>2]=s[st+12>>2];s[i+16>>2]=s[st+16>>2];s[i+20>>2]=s[st+20>>2];s[ie>>2]=_;s[ne>>2]=s[at>>2];s[ne+4>>2]=s[at+4>>2];s[ne+8>>2]=s[at+8>>2];s[ne+12>>2]=s[at+12>>2];s[ne+16>>2]=s[at+16>>2];b=r[le>>0]|0;r[Q>>0]=b;w=0;while(1){if((w|0)>=(s[Ce>>2]|0))break;r[e+4828+w>>0]=4;w=w+1|0}if(!de)r[ue>>0]=b;n[Y>>1]=Z;s[$>>2]=X;b=0;while(1){if((b|0)>=(s[We>>2]|0))break;r[e+4864+b>>0]=0;b=b+1|0}Di(e,i,s[fe>>2]|0,0,f);Li(i,r[He>>0]|0,r[ce>>0]|0,ae,s[We>>2]|0);b=(s[oe>>2]|0)+((re(s[ne>>2]|0)|0)+-32)|0}if(V|p|0){w=_;ot=571;break}if((b|0)>(u|0))C=_;else break e}else{b=F;ot=571}while(0);if((ot|0)==571){ot=0;if((V|0)==6)break;else C=w}P=(b|0)>(u|0);t:do if(P){if(M|0){T=1;A=z;R=G<<16>>16;E=j;S=g;_=F;I=b;break}if((V|0)>1){ht=+h[he>>2]*1.5;h[he>>2]=ht>1.5?ht:1.5;r[ce>>0]=0;T=0;g=-1}else{T=1;R=G<<16>>16;I=b}_=s[Ce>>2]|0;E=(V|0)==0;S=0;i:while(1){if((S|0)>=(_|0)){M=0;A=z;E=j;S=g;_=F;break t}v=s[Ie>>2]|0;A=S+1|0;w=te(A,v)|0;v=te(S,v)|0;M=0;while(1){if((v|0)>=(w|0))break;ct=r[e+4864+v>>0]|0;lt=ct<<24>>24;v=v+1|0;M=M+(ct<<24>>24>-1?lt:0-lt|0)|0}w=Xe+(S<<2)|0;do if(!E){v=Qe+(S<<2)|0;if((M|0)<(s[w>>2]|0)?(s[v>>2]|0)==0:0)break;s[v>>2]=1;S=A;continue i}while(0);s[w>>2]=M;n[$e+(S<<1)>>1]=G;S=A}}else{if((b|0)>=(ee|0))break e;w=G<<16>>16;if(A){M=1;A=w;E=g;_=b;break}s[st>>2]=s[i>>2];s[st+4>>2]=s[i+4>>2];s[st+8>>2]=s[i+8>>2];s[st+12>>2]=s[i+12>>2];s[st+16>>2]=s[i+16>>2];s[st+20>>2]=s[i+20>>2];C=s[ie>>2]|0;s[at>>2]=s[ne>>2];s[at+4>>2]=s[ne+4>>2];s[at+8>>2]=s[ne+8>>2];s[at+12>>2]=s[ne+12>>2];s[at+16>>2]=s[ne+16>>2];Mn(Je|0,s[i>>2]|0,C|0)|0;Mn(rt|0,W|0,4448)|0;D=r[Q>>0]|0;M=1;A=w;E=g;_=b}while(0);do if(!(M&T)){if(P){if(G<<16>>16>=16384){v=32767;break}v=G<<16>>16<<1&65535;break}w=(b-u<<7|0)/(s[We>>2]|0)|0;b=w+2048|0;do if((w|0)<-2048)b=0;else{if((b|0)>3966){b=2147483647;break}g=b>>7;v=1<>16)<>7;else b=te(v>>7,b+((te(te(b,128-b|0)|0,-174)|0)>>16)|0)|0;b=v+b|0}while(0);v=G<<16>>16;v=(te(b>>16,v)|0)+((te(b&65535,v)|0)>>>16)&65535}else{v=R-A|0;w=A+((te(v,u-_|0)|0)/(I-_|0)|0)|0;g=w<<16>>16;v=v>>2;b=A+v|0;if((g|0)<=(b|0)){b=R-v|0;b=(g|0)<(b|0)?b:w}v=b&65535}while(0);b=s[Ce>>2]|0;w=0;while(1){if((w|0)>=(b|0))break;if(!(s[Qe+(w<<2)>>2]|0))g=v;else g=n[$e+(w<<1)>>1]|0;ct=s[tt+728+(w<<2)>>2]|0;lt=g<<16>>16;lt=(te(ct>>16,lt)|0)+((te(ct&65535,lt)|0)>>16)|0;s[et+(w<<2)>>2]=(lt|0)>8388607?2147483392:((lt|0)<-8388608?-8388608:lt)<<8;w=w+1|0}r[Q>>0]=r[le>>0]|0;br(ue,et,Q,pe,b);w=s[Ce>>2]|0;g=0;b=0;while(1){if((b|0)>=(w|0)){b=0;break}g=(r[e+4828+b>>0]|0)+(g<<8)|0;b=b+1|0}while(1){if((b|0)>=(w|0))break;h[tt+(b<<2)>>2]=+(s[et+(b<<2)>>2]|0)*152587890625e-16;b=b+1|0}G=v;z=A;j=E;V=V+1|0;F=_;w=C}if((M|0)!=0&(A|(b|0)>(u|0))){s[i>>2]=s[st>>2];s[i+4>>2]=s[st+4>>2];s[i+8>>2]=s[st+8>>2];s[i+12>>2]=s[st+12>>2];s[i+16>>2]=s[st+16>>2];s[i+20>>2]=s[st+20>>2];s[ie>>2]=w;s[ne>>2]=s[at>>2];s[ne+4>>2]=s[at+4>>2];s[ne+8>>2]=s[at+8>>2];s[ne+12>>2]=s[at+12>>2];s[ne+16>>2]=s[at+16>>2];Mn(s[i>>2]|0,Je|0,w|0)|0;Mn(W|0,rt|0,4448)|0;r[Q>>0]=D}}while(0);Tn(e+7272|0,e+7272+(s[We>>2]<<2)|0,(s[Ye>>2]|0)+((s[Ve>>2]|0)*5|0)<<2|0)|0;if(s[Ge>>2]|0){lt=0;s[t>>2]=lt;l=ft;return 0}s[e+4636>>2]=s[tt+228+((s[e+4672>>2]|0)+-1<<2)>>2];r[e+4633>>0]=r[e+4857>>0]|0;s[e+4756>>2]=0;lt=(s[i+20>>2]|0)+((re(s[i+28>>2]|0)|0)+-32)+7>>3;s[t>>2]=lt;l=ft;return 0}function Ji(e,t,i,r,n){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;var s=0,a=0,o=0,f=0,c=0,l=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0;switch(n|0){case 6:{s=t+4|0;a=t+8|0;o=t+12|0;f=t+16|0;c=t+20|0;l=6;while(1){if((l|0)>=(r|0))break;y=i+(l+-1<<2)|0;h[e+(l<<2)>>2]=+h[y+4>>2]-(+h[y>>2]*+h[t>>2]+ +h[y+-4>>2]*+h[s>>2]+ +h[y+-8>>2]*+h[a>>2]+ +h[y+-12>>2]*+h[o>>2]+ +h[y+-16>>2]*+h[f>>2]+ +h[y+-20>>2]*+h[c>>2]);l=l+1|0}i=n<<2;kn(e|0,0,i|0)|0;return}case 8:{s=t+4|0;a=t+8|0;o=t+12|0;f=t+16|0;c=t+20|0;l=t+24|0;u=t+28|0;d=8;while(1){if((d|0)>=(r|0))break;y=i+(d+-1<<2)|0;h[e+(d<<2)>>2]=+h[y+4>>2]-(+h[y>>2]*+h[t>>2]+ +h[y+-4>>2]*+h[s>>2]+ +h[y+-8>>2]*+h[a>>2]+ +h[y+-12>>2]*+h[o>>2]+ +h[y+-16>>2]*+h[f>>2]+ +h[y+-20>>2]*+h[c>>2]+ +h[y+-24>>2]*+h[l>>2]+ +h[y+-28>>2]*+h[u>>2]);d=d+1|0}i=n<<2;kn(e|0,0,i|0)|0;return}case 10:{s=t+4|0;a=t+8|0;o=t+12|0;f=t+16|0;c=t+20|0;l=t+24|0;u=t+28|0;d=t+32|0;p=t+36|0;b=10;while(1){if((b|0)>=(r|0))break;y=i+(b+-1<<2)|0;h[e+(b<<2)>>2]=+h[y+4>>2]-(+h[y>>2]*+h[t>>2]+ +h[y+-4>>2]*+h[s>>2]+ +h[y+-8>>2]*+h[a>>2]+ +h[y+-12>>2]*+h[o>>2]+ +h[y+-16>>2]*+h[f>>2]+ +h[y+-20>>2]*+h[c>>2]+ +h[y+-24>>2]*+h[l>>2]+ +h[y+-28>>2]*+h[u>>2]+ +h[y+-32>>2]*+h[d>>2]+ +h[y+-36>>2]*+h[p>>2]);b=b+1|0}i=n<<2;kn(e|0,0,i|0)|0;return}case 12:{s=t+4|0;a=t+8|0;o=t+12|0;f=t+16|0;c=t+20|0;l=t+24|0;u=t+28|0;d=t+32|0;p=t+36|0;b=t+40|0;m=t+44|0;w=12;while(1){if((w|0)>=(r|0))break;y=i+(w+-1<<2)|0;h[e+(w<<2)>>2]=+h[y+4>>2]-(+h[y>>2]*+h[t>>2]+ +h[y+-4>>2]*+h[s>>2]+ +h[y+-8>>2]*+h[a>>2]+ +h[y+-12>>2]*+h[o>>2]+ +h[y+-16>>2]*+h[f>>2]+ +h[y+-20>>2]*+h[c>>2]+ +h[y+-24>>2]*+h[l>>2]+ +h[y+-28>>2]*+h[u>>2]+ +h[y+-32>>2]*+h[d>>2]+ +h[y+-36>>2]*+h[p>>2]+ +h[y+-40>>2]*+h[b>>2]+ +h[y+-44>>2]*+h[m>>2]);w=w+1|0}i=n<<2;kn(e|0,0,i|0)|0;return}case 16:{s=t+4|0;a=t+8|0;d=t+12|0;p=t+16|0;b=t+20|0;m=t+24|0;w=t+28|0;g=t+32|0;v=t+36|0;_=t+40|0;o=t+44|0;f=t+48|0;c=t+52|0;l=t+56|0;u=t+60|0;y=16;while(1){if((y|0)>=(r|0))break;k=i+(y+-1<<2)|0;h[e+(y<<2)>>2]=+h[k+4>>2]-(+h[k>>2]*+h[t>>2]+ +h[k+-4>>2]*+h[s>>2]+ +h[k+-8>>2]*+h[a>>2]+ +h[k+-12>>2]*+h[d>>2]+ +h[k+-16>>2]*+h[p>>2]+ +h[k+-20>>2]*+h[b>>2]+ +h[k+-24>>2]*+h[m>>2]+ +h[k+-28>>2]*+h[w>>2]+ +h[k+-32>>2]*+h[g>>2]+ +h[k+-36>>2]*+h[v>>2]+ +h[k+-40>>2]*+h[_>>2]+ +h[k+-44>>2]*+h[o>>2]+ +h[k+-48>>2]*+h[f>>2]+ +h[k+-52>>2]*+h[c>>2]+ +h[k+-56>>2]*+h[l>>2]+ +h[k+-60>>2]*+h[u>>2]);y=y+1|0}k=n<<2;kn(e|0,0,k|0)|0;return}default:{k=n<<2;kn(e|0,0,k|0)|0;return}}}function Qi(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,a=0,f=0,c=0,u=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0,C=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,q=0,H=0,G=0,V=0;V=l;l=l+176|0;F=V+124|0;q=V+72|0;z=V+64|0;H=V;a=0;while(1){if((a|0)>=(i|0))break;f=+h[t+(a<<2)>>2]*65536;r=(h[d>>2]=f,s[d>>2]|0);if((r&2130706432)>>>0<=1249902592){r=(r|0)<0;f=r?f+-8388608+8388608:f+8388608+-8388608;if(f==0)f=r?-0:0}s[H+(a<<2)>>2]=~~f;a=a+1|0}s[z>>2]=F;s[z+4>>2]=q;B=i>>1;U=F+(B<<2)|0;s[U>>2]=65536;j=q+(B<<2)|0;s[j>>2]=65536;r=0;while(1){if((B|0)<=(r|0))break;L=s[H+(B-r+-1<<2)>>2]|0;D=s[H+(r+B<<2)>>2]|0;s[F+(r<<2)>>2]=0-L-D;s[q+(r<<2)>>2]=D-L;r=r+1|0}r=B;while(1){if((r|0)<=0){r=2;break}L=r+-1|0;D=F+(L<<2)|0;s[D>>2]=(s[D>>2]|0)-(s[F+(r<<2)>>2]|0);D=q+(L<<2)|0;s[D>>2]=(s[D>>2]|0)+(s[q+(r<<2)>>2]|0);r=L}while(1){if((r|0)>(B|0)){r=2;break}else a=B;while(1){if((a|0)<=(r|0))break;L=F+(a+-2<<2)|0;s[L>>2]=(s[L>>2]|0)-(s[F+(a<<2)>>2]|0);a=a+-1|0}L=F+(r+-2<<2)|0;s[L>>2]=(s[L>>2]|0)-(s[F+(r<<2)>>2]<<1);r=r+1|0}while(1){if((r|0)>(B|0))break;else a=B;while(1){if((a|0)<=(r|0))break;L=q+(a+-2<<2)|0;s[L>>2]=(s[L>>2]|0)-(s[q+(a<<2)>>2]|0); +a=a+-1|0}L=q+(r+-2<<2)|0;s[L>>2]=(s[L>>2]|0)-(s[q+(r<<2)>>2]<<1);r=r+1|0}r=s[U>>2]|0;L=(B|0)==8;e:do if(L)r=(s[F>>2]|0)+((s[F+4>>2]|0)+((s[F+8>>2]|0)+((s[F+12>>2]|0)+((s[F+16>>2]|0)+((s[F+20>>2]|0)+((s[F+24>>2]|0)+((s[F+28>>2]|0)+(r<<1)<<1)<<1)<<1)<<1)<<1)<<1)<<1)|0;else{t=B;while(1){a=t+-1|0;if((t|0)<=0)break e;t=a;r=(s[F+(a<<2)>>2]|0)+(r<<1)|0}}while(0);e:do if((r|0)<0){n[e>>1]=0;r=s[j>>2]|0;if(L){a=q;t=1;r=(s[q>>2]|0)+((s[q+4>>2]|0)+((s[q+8>>2]|0)+((s[q+12>>2]|0)+((s[q+16>>2]|0)+((s[q+20>>2]|0)+((s[q+24>>2]|0)+((s[q+28>>2]|0)+(r<<1)<<1)<<1)<<1)<<1)<<1)<<1)<<1)|0;break}else t=B;while(1){a=t+-1|0;if((t|0)<=0){a=q;t=1;break e}t=a;r=(s[q+(a<<2)>>2]|0)+(r<<1)|0}}else{a=F;t=0}while(0);k=F+28|0;E=F+24|0;A=F+20|0;S=F+16|0;M=F+12|0;T=F+8|0;x=F+4|0;R=q+28|0;I=q+24|0;C=q+20|0;P=q+16|0;O=q+12|0;N=q+8|0;D=q+4|0;y=0;e:while(1){p=1;c=0;u=8192;t:while(1){_=p;while(1){p=n[27508+(_<<1)>>1]|0;b=Ar(a,p,B)|0;if((r|0)<1){if((b|0)>=(c|0))break;if(!((r|0)<0|(b|0)>(0-c|0)))break}else if((b|0)<=(0-c|0))break;if((_|0)>127)break t;else{_=_+1|0;c=0;u=p;r=b}}c=(b|0)==0&1;g=-256;v=0;while(1){if((v|0)==3)break;m=u+p|0;m=(m>>1)+(m&1)|0;w=Ar(a,m,B)|0;if((r|0)<1)if((w&r|0)>-1){p=m;b=w}else G=42;else if((w|0)<1){p=m;b=w}else G=42;if((G|0)==42){G=0;g=g+(128>>>v)|0;u=m;r=w}v=v+1|0}a=r-b|0;if((((r|0)>0?r:0-r|0)|0)<65536)if((r|0)==(b|0))r=g;else r=g+(((r<<5)+(a>>1)|0)/(a|0)|0)|0;else r=g+((r|0)/(a>>5|0)|0)|0;r=(_<<8)+r|0;n[e+(t<<1)>>1]=(r|0)<32767?r:32767;r=t+1|0;if((r|0)>=(i|0)){G=77;break e}p=_;a=s[z+((r&1)<<2)>>2]|0;t=r;u=n[27508+(_+-1<<1)>>1]|0;r=1-(r&2)<<12}c=y+1|0;if((y|0)>15)break;Mr(H,i,65536-(1<>2]=65536;s[j>>2]=65536;r=0;while(1){if((B|0)<=(r|0)){r=B;break}y=s[H+(B-r+-1<<2)>>2]|0;_=s[H+(r+B<<2)>>2]|0;s[F+(r<<2)>>2]=0-y-_;s[q+(r<<2)>>2]=_-y;r=r+1|0}while(1){if((r|0)<=0){r=2;break}y=r+-1|0;_=F+(y<<2)|0;s[_>>2]=(s[_>>2]|0)-(s[F+(r<<2)>>2]|0);_=q+(y<<2)|0;s[_>>2]=(s[_>>2]|0)+(s[q+(r<<2)>>2]|0);r=y}while(1){if((r|0)>(B|0)){r=2;break}else a=B;while(1){if((a|0)<=(r|0))break;y=F+(a+-2<<2)|0;s[y>>2]=(s[y>>2]|0)-(s[F+(a<<2)>>2]|0);a=a+-1|0}y=F+(r+-2<<2)|0;s[y>>2]=(s[y>>2]|0)-(s[F+(r<<2)>>2]<<1);r=r+1|0}while(1){if((r|0)>(B|0))break;else a=B;while(1){if((a|0)<=(r|0))break;y=q+(a+-2<<2)|0;s[y>>2]=(s[y>>2]|0)-(s[q+(a<<2)>>2]|0);a=a+-1|0}y=q+(r+-2<<2)|0;s[y>>2]=(s[y>>2]|0)-(s[q+(r<<2)>>2]<<1);r=r+1|0}r=s[U>>2]|0;t:do if(L)r=(s[F>>2]|0)+((s[x>>2]|0)+((s[T>>2]|0)+((s[M>>2]|0)+((s[S>>2]|0)+((s[A>>2]|0)+((s[E>>2]|0)+((s[k>>2]|0)+(r<<1)<<1)<<1)<<1)<<1)<<1)<<1)<<1)|0;else{t=B;while(1){a=t+-1|0;if((t|0)<=0)break t;t=a;r=(s[F+(a<<2)>>2]|0)+(r<<1)|0}}while(0);if((r|0)>=0){y=c;a=F;t=0;continue}n[e>>1]=0;r=s[j>>2]|0;if(L){y=c;a=q;t=1;r=(s[q>>2]|0)+((s[D>>2]|0)+((s[N>>2]|0)+((s[O>>2]|0)+((s[P>>2]|0)+((s[C>>2]|0)+((s[I>>2]|0)+((s[R>>2]|0)+(r<<1)<<1)<<1)<<1)<<1)<<1)<<1)<<1)|0;continue}else t=B;while(1){a=t+-1|0;if((t|0)<=0){y=c;a=q;t=1;continue e}t=a;r=(s[q+(a<<2)>>2]|0)+(r<<1)|0}}if((G|0)==77){l=V;return}r=32768/(i+1|0)|0;n[e>>1]=r;a=1;while(1){if((a|0)>=(i|0))break;G=(r&65535)+(o[e>>1]|0)|0;n[e+(a<<1)>>1]=G;r=G;a=a+1|0}l=V;return}function er(e,t,i,a,o,f){e=e|0;t=t|0;i=i|0;a=a|0;o=o|0;f=f|0;var c=0,u=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0;I=l;l=l+1008|0;R=I+360|0;E=I+48|0;T=I+296|0;M=I+256|0;k=I+64|0;S=I+32|0;x=I+16|0;A=I;y=s[e+4672>>2]|0;b=e+4728|0;v=0;while(1){if((v|0)>=(y|0)){m=0;break}m=s[b>>2]|0;w=v*24|0;_=0;while(1){if((_|0)>=(m|0))break;g=w+_|0;c=+h[t+244+(g<<2)>>2]*8192;u=(h[d>>2]=c,s[d>>2]|0);if((u&2130706432)>>>0<=1249902592){u=(u|0)<0;c=u?c+-8388608+8388608:c+8388608+-8388608;if(c==0)c=u?-0:0}n[k+(g<<1)>>1]=~~c;_=_+1|0}v=v+1|0}while(1){if((m|0)>=(y|0))break;c=+h[t+644+(m<<2)>>2]*16384;u=(h[d>>2]=c,s[d>>2]|0);if((u&2130706432)>>>0<=1249902592){u=(u|0)<0;c=u?c+-8388608+8388608:c+8388608+-8388608;if(c==0)c=u?-0:0}b=~~c<<16;c=+h[t+628+(m<<2)>>2]*16384;u=(h[d>>2]=c,s[d>>2]|0);if((u&2130706432)>>>0<=1249902592){u=(u|0)<0;c=u?c+-8388608+8388608:c+8388608+-8388608;if(c==0)c=u?-0:0}s[S+(m<<2)>>2]=b|~~c&65535;c=+h[t+660+(m<<2)>>2]*16384;u=(h[d>>2]=c,s[d>>2]|0);if((u&2130706432)>>>0<=1249902592){u=(u|0)<0;c=u?c+-8388608+8388608:c+8388608+-8388608;if(c==0)c=u?-0:0}s[x+(m<<2)>>2]=~~c;c=+h[t+676+(m<<2)>>2]*16384;u=(h[d>>2]=c,s[d>>2]|0);if((u&2130706432)>>>0<=1249902592){u=(u|0)<0;c=u?c+-8388608+8388608:c+8388608+-8388608;if(c==0)c=u?-0:0}s[A+(m<<2)>>2]=~~c;m=m+1|0}c=+h[t+692>>2]*1024;u=(h[d>>2]=c,s[d>>2]|0);if((u&2130706432)>>>0<=1249902592){u=(u|0)<0;c=u?c+-8388608+8388608:c+8388608+-8388608;if(c==0)c=u?-0:0}b=y*5|0;m=0;while(1){if((m|0)>=(b|0))break;p=+h[t+144+(m<<2)>>2]*16384;u=(h[d>>2]=p,s[d>>2]|0);if((u&2130706432)>>>0<=1249902592){u=(u|0)<0;p=u?p+-8388608+8388608:p+8388608+-8388608;if(p==0)p=u?-0:0}n[M+(m<<1)>>1]=~~p;m=m+1|0}v=~~c;b=e+4732|0;g=0;while(1){if((g|0)==2){b=0;break}m=s[b>>2]|0;w=0;while(1){if((w|0)>=(m|0))break;c=+h[t+16+(g<<6)+(w<<2)>>2]*4096;u=(h[d>>2]=c,s[d>>2]|0);if((u&2130706432)>>>0<=1249902592){u=(u|0)<0;c=u?c+-8388608+8388608:c+8388608+-8388608;if(c==0)c=u?-0:0}n[T+(g<<5)+(w<<1)>>1]=~~c;w=w+1|0}g=g+1|0}while(1){if((b|0)>=(y|0))break;c=+h[t+(b<<2)>>2]*65536;u=(h[d>>2]=c,s[d>>2]|0);if((u&2130706432)>>>0<=1249902592){u=(u|0)<0;c=u?c+-8388608+8388608:c+8388608+-8388608;if(c==0)c=u?-0:0}s[E+(b<<2)>>2]=~~c;b=b+1|0}if((r[i+29>>0]|0)==2)m=n[25412+(r[i+33>>0]<<1)>>1]|0;else m=0;b=s[e+4676>>2]|0;w=0;while(1){if((w|0)>=(b|0))break;c=+h[f+(w<<2)>>2];u=(h[d>>2]=c,s[d>>2]|0);if((u&2130706432)>>>0<=1249902592){u=(u|0)<0;c=u?c+-8388608+8388608:c+8388608+-8388608;if(c==0)c=u?-0:0}n[R+(w<<1)>>1]=~~c;w=w+1|0}if((s[e+4720>>2]|0)<=1?(s[e+4764>>2]|0)<=0:0){gr(e,a,i,R,o,T,M,k,A,x,S,E,t+228|0,v,m);l=I;return}vr(e,a,i,R,o,T,M,k,A,x,S,E,t+228|0,v,m);l=I;return}function tr(e,t){e=e|0;t=t|0;var i=0,r=0,n=0,s=0,a=0,o=0,f=0,c=0;n=t+-3|0;r=((n|0)>0?n:0)+3&-4;s=0;i=0;while(1){if((s|0)>=(n|0))break;c=+h[e+(s<<2)>>2];f=+h[e+((s|1)<<2)>>2];o=+h[e+((s|2)<<2)>>2];a=+h[e+((s|3)<<2)>>2];s=s+4|0;i=i+(c*c+f*f+o*o+a*a)}while(1){if((r|0)>=(t|0))break;c=+h[e+(r<<2)>>2];r=r+1|0;i=i+c*c}return+i}function ir(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,n=0,s=0,a=0,o=0,f=0,c=0,l=0;s=i+-3|0;n=((s|0)>0?s:0)+3&-4;a=0;r=0;while(1){if((a|0)>=(s|0))break;l=a|1;c=a|2;f=a|3;o=r+(+h[e+(a<<2)>>2]*+h[t+(a<<2)>>2]+ +h[e+(l<<2)>>2]*+h[t+(l<<2)>>2]+ +h[e+(c<<2)>>2]*+h[t+(c<<2)>>2]+ +h[e+(f<<2)>>2]*+h[t+(f<<2)>>2]);a=a+4|0;r=o}while(1){if((n|0)>=(i|0))break;o=r+ +h[e+(n<<2)>>2]*+h[t+(n<<2)>>2];n=n+1|0;r=o}return+r}function rr(e,t,i,o,f,h,c,l){e=e|0;t=t|0;i=i|0;o=o|0;f=f|0;h=h|0;c=c|0;l=l|0;var u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0,C=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,q=0,H=0,G=0;if((h|0)==0|(t|0)<0){h=-1;return h|0}if(!t){h=-4;return h|0}G=r[e>>0]|0;do if(G<<24>>24>=0){if((G&96)==96){p=(G&8)==0?480:960;break}d=(G&255)>>>3&3;if((d|0)==3)p=2880;else p=(48e3<>>0)/100|0}else p=(48e3<<((G&255)>>>3&3)>>>0)/400|0;while(0);m=e+1|0;E=t+-1|0;e:do switch(G&3|0){case 0:{x=m;R=E;I=0;C=1;b=E;M=0;_=47;break}case 1:{if(!i)if(!(E&1)){N=(E|0)/2|0;n[h>>1]=N;P=m;O=2;D=0;_=61;break e}else{h=-4;return h|0}else{j=m;U=E;F=1;q=2;z=E;H=0;_=48}break}case 2:{if((t|0)<2){n[h>>1]=-1;h=-4;return h|0}d=r[m>>0]|0;do if((d&255)<252){p=1;d=d&255}else{if((t|0)>=3){p=2;d=(a[e+2>>0]<<2)+(d&255)&65535;break}n[h>>1]=-1;h=-4;return h|0}while(0);n[h>>1]=d;t=E-p|0;d=d<<16>>16;if((t|0)<(d|0)){h=-4;return h|0}else{x=m+p|0;R=t;I=0;C=2;b=t-d|0;M=0;_=47;break e}}default:{if((t|0)<2){h=-4;return h|0}d=e+2|0;v=r[m>>0]|0;T=v&63;if((T|0)==0|(te(p,T)|0)>>>0>5760){h=-4;return h|0}p=t+-2|0;if(v&64){m=0;while(1){if((p|0)<1){A=-4;_=74;break}g=d+1|0;w=r[d>>0]|0;if(w<<24>>24!=-1)break;d=g;p=p+-255|0;m=m+254|0}if((_|0)==74)return A|0;t=w&255;d=p+-1-t|0;if((d|0)<0){h=-4;return h|0}else{w=d;k=m+t|0}}else{g=d;w=p;k=0}_=(v&255)>>>7;y=_&255^1;if(_<<24>>24!=1){if(i|0){j=g;U=w;F=y;q=T;z=E;H=k;_=48;break e}b=(w|0)/(T|0)|0;if((te(b,T)|0)!=(w|0)){h=-4;return h|0}d=T+-1|0;p=b&65535;t=0;while(1){if((t|0)>=(d|0)){x=g;R=w;I=y;C=T;M=k;_=47;break e}n[h+(t<<1)>>1]=p;t=t+1|0}}_=T+-1|0;v=w;m=0;while(1){if((m|0)>=(_|0)){_=41;break}S=h+(m<<1)|0;if((v|0)<1){_=33;break}d=r[g>>0]|0;if((d&255)<252){d=d&255;n[S>>1]=d;p=1}else{if((v|0)<2){_=37;break}d=(a[g+1>>0]<<2)+(d&255)&65535;n[S>>1]=d;p=2}t=v-p|0;d=d<<16>>16;if((d|0)>(t|0)){A=-4;_=74;break}g=g+p|0;v=t;m=m+1|0;w=w-(p+d)|0}if((_|0)==33){n[S>>1]=-1;h=-4;return h|0}else if((_|0)==37){n[S>>1]=-1;h=-4;return h|0}else if((_|0)==41){if((w|0)<0)A=-4;else{x=g;R=v;I=y;C=T;b=w;M=k;_=47;break e}return A|0}else if((_|0)==74)return A|0}}while(0);if((_|0)==47)if(!i){P=x;O=C;N=b;D=M;_=61}else{j=x;U=R;F=I;q=C;z=b;H=M;_=48}e:do if((_|0)==48){u=h+(q<<1)+-2|0;if((U|0)<1){n[u>>1]=-1;h=-4;return h|0}d=r[j>>0]|0;do if((d&255)<252){B=d&255;n[u>>1]=B;t=1;u=B}else{if((U|0)>=2){B=(a[j+1>>0]<<2)+(d&255)&65535;n[u>>1]=B;t=2;u=B;break}n[u>>1]=-1;h=-4;return h|0}while(0);p=U-t|0;b=q+-1|0;m=h+(b<<1)|0;d=u<<16>>16;if((d|0)>(p|0)){h=-4;return h|0}u=j+t|0;if(!F){if((t+d|0)>(z|0))A=-4;else{L=q;B=H;break}return A|0}if((te(d,q)|0)>(p|0)){h=-4;return h|0}else d=0;while(1){if((d|0)>=(b|0)){L=q;B=H;break e}n[h+(d<<1)>>1]=n[m>>1]|0;d=d+1|0}}else if((_|0)==61)if((N|0)>1275){h=-4;return h|0}else{n[h+(O+-1<<1)>>1]=N;u=P;L=O;B=D;break}while(0);if(c|0)s[c>>2]=u-e;p=(f|0)==0;d=0;while(1){if((d|0)>=(L|0))break;if(!p)s[f+(d<<2)>>2]=u;u=u+(n[h+(d<<1)>>1]|0)|0;d=d+1|0}if(l|0)s[l>>2]=B+(u-e);if(!o){h=L;return h|0}r[o>>0]=G;h=L;return h|0}function nr(e,t,i,r,s,a,o,f,c,l){e=e|0;t=t|0;i=i|0;r=r|0;s=s|0;a=a|0;o=o|0;f=f|0;c=c|0;l=l|0;var u=0,d=0,p=0,b=0,m=0;m=te(t,f)|0;t=te(n[e+(o<<1)>>1]|0,f)|0;if((c|0)!=1){b=(m|0)/(c|0)|0;t=(t|0)<(b|0)?t:b}p=(l|0)==0;b=p?o:0;u=p?a:0;p=p?t:0;c=e+(u<<1)|0;t=n[c>>1]|0;a=te(t<<16>>16,f)|0;o=r;l=0;while(1){if((l|0)>=(te(t<<16>>16,f)|0))break;h[o>>2]=0;t=n[c>>1]|0;o=o+4|0;l=l+1|0}t=u;c=i+(a<<2)|0;e:while(1){if((t|0)>=(b|0))break;l=te(n[e+(t<<1)>>1]|0,f)|0;u=t+1|0;i=te(n[e+(u<<1)>>1]|0,f)|0;d=+J(+((+h[s+(t<<2)>>2]+ +h[17220+(t<<2)>>2])*.6931471805599453));a=o;t=l;l=c;while(1){c=l+4|0;o=a+4|0;h[a>>2]=+h[l>>2]*d;t=t+1|0;if((t|0)<(i|0)){a=o;l=c}else{t=u;continue e}}}kn(r+(p<<2)|0,0,m-p<<2|0)|0;return}function sr(e,t,i,o,f,c,u,d,p,b,m,w,g,v,_,y,k,E,A,S,M,T){e=e|0;t=t|0;i=i|0;o=o|0;f=f|0;c=c|0;u=u|0;d=d|0;p=p|0;b=b|0;m=m|0;w=w|0;g=g|0;v=v|0;_=_|0;y=y|0;k=k|0;E=E|0;A=A|0;S=S|0;M=M|0;T=T|0;var x=0,R=0,I=0,C=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,q=0,H=0,G=0,V=0,W=0,K=0,Y=0,Z=0,$=0,X=0,J=0,Q=0,ee=0,ie=0,ne=0,se=0,ae=0,oe=0,fe=0,he=0,ce=0,le=0,ue=0,de=0,pe=0,be=0,me=0,we=0,ge=0,ve=0,_e=0,ye=0,ke=0,Ee=0,Ae=0,Se=0,Me=0,Te=0,xe=0,Re=0,Ie=0,Ce=0,Pe=0,Oe=0,Ne=0,De=0,Le=0,Be=0,Ue=0,je=0,Fe=0,ze=0;Fe=l;l=l+1520|0;Ne=Fe+192|0;Be=Fe+24|0;Ue=Fe;je=Fe+144|0;De=Fe+92|0;Le=Fe+40|0;Oe=Fe+244|0;Re=s[t+32>>2]|0;Pe=c|0?2:1;R=(e|0)==0;if(R){Te=0;xe=1}else{Se=(c|0)!=0&(w|0)==0;xe=(M|0)>7;Te=Se&xe;xe=Se&xe}ve=(b|0)==0?1:1<>1]<>2]|0;b=n[Re+(M+-1<<1)>>1]|0;x=b<>1]|0)-b<>2]=d;s[Ne+28>>2]=k;s[Ne>>2]=e;s[Ne+16>>2]=g;s[Ne+8>>2]=t;de=Ne+40|0;s[de>>2]=s[S>>2];s[Ne+20>>2]=m;s[Ne+44>>2]=T;s[Ne+4>>2]=xe&1;se=Ne+48|0;s[se>>2]=0;ae=Ne+12|0;oe=o+-1|0;fe=(c|0)==0;he=k+20|0;ce=k+28|0;le=Ne+32|0;ue=Ne+24|0;X=t+12|0;J=(1<1;$=i;T=0;x=1;while(1){if(($|0)>=(o|0))break;s[ae>>2]=$;H=($|0)==(oe|0);G=Re+($<<1)|0;Y=n[G>>1]<>1]<>2]|0;M=32-(re(V|0)|0)|0;V=V>>>(M+-16|0);Z=(V>>>12)+-8|0;Z=(s[he>>2]<<3)-((M<<3)+(Z+(V>>>0>(s[5272+(Z<<2)>>2]|0)>>>0&1)))|0;V=y-(($|0)==(i|0)?0:Z)|0;M=_-Z|0;s[le>>2]=M+-1;if(($|0)<(A|0)?(Ie=A-$|0,Ie=(s[p+($<<2)>>2]|0)+((V|0)/(((Ie|0)>3?3:Ie)|0)|0)|0,Ce=(M|0)<(Ie|0),!(((Ce?M:Ie)|0)<16384&((Ce?M:Ie)|0)<0)):0)W=((Ce?M:Ie)|0)>16383?16383:Ce?M:Ie;else W=0;if(xe?((n[G>>1]<=(n[_e>>1]<>2]|0;s[ue>>2]=U;q=($|0)<(s[X>>2]|0);b=q?b:0;z=q?R:Ee;q=q?e:fe?0:Ee;b=H?Te?b:0:b;if((T|0)!=0?(m|0)!=3|ne|(U|0)<0:0){t=(n[Re+(T<<1)>>1]<>1]<(M|0));M=M+Y|0;e=T+-1|0;while(1){x=e+1|0;if((n[Re+(x<<1)>>1]<>0];x=x|a[u+(U+Pe+-1)>>0];if((R|0)<(e|0))R=R+1|0;else{R=M;P=x;break}}}else{t=-1;R=J;P=J}e:do if(w)if(($|0)==(g|0)){if(!xe){Me=31;break}M=Re+(g<<1)|0;x=0;while(1){if((x|0)>=((n[M>>1]<>2]=(+h[Me>>2]+ +h[Se+(x<<2)>>2])*.5;x=x+1|0}}else{y=(W|0)/2|0;x=(t|0)==-1;M=x?0:Ee+(t<<2)|0;if(H){M=ar(Ne,z,Y,y,ve,M,E,0,1,b,R)|0;R=x?0:Se+(t<<2)|0;x=0}else{M=ar(Ne,z,Y,y,ve,M,E,Ee+(n[G>>1]<>1]<>1]<>2]=0;if(H)M=0;else M=Ee+(n[G>>1]<>2];F=+h[d+($+(s[ke>>2]|0)<<2)>>2];N=(j>2]|0;w=s[Q>>2]|0;s[Be>>2]=s[ee>>2];s[Be+4>>2]=s[ee+4>>2];s[Be+8>>2]=s[ee+8>>2];s[Be+12>>2]=s[ee+12>>2];y=s[ie>>2]|0;s[Ue>>2]=s[ce>>2];s[Ue+4>>2]=s[ce+4>>2];s[Ue+8>>2]=s[ce+8>>2];s[Ue+12>>2]=s[ce+12>>2];s[Ue+16>>2]=s[ce+16>>2];M=De;x=Ne;R=M+52|0;do{s[M>>2]=s[x>>2];M=M+4|0;x=x+4|0}while((M|0)<(R|0));B=Y<<2;Mn(pe|0,z|0,B|0)|0;Mn(be|0,q|0,B|0)|0;s[se>>2]=-1;O=(t|0)==-1;if(H)M=0;else M=Ee+(n[G>>1]<=(Y|0)){M=0;I=0;break}N=C+ +h[pe+(M<<2)>>2]*+h[z+(M<<2)>>2];M=M+1|0;C=N}while(1){if((M|0)>=(Y|0))break;N=I+ +h[be+(M<<2)>>2]*+h[q+(M<<2)>>2];M=M+1|0;I=N}N=j*C+F*I;M=je;x=k;R=M+48|0;do{s[M>>2]=s[x>>2];M=M+4|0;x=x+4|0}while((M|0)<(R|0));M=Le;x=Ne;R=M+52|0;do{s[M>>2]=s[x>>2];M=M+4|0;x=x+4|0}while((M|0)<(R|0));Mn(me|0,z|0,B|0)|0;Mn(we|0,q|0,B|0)|0;if(!H)Mn(ge|0,Ee+(n[G>>1]<>2]=e;s[Q>>2]=w;s[ee>>2]=s[Be>>2];s[ee+4>>2]=s[Be+4>>2];s[ee+8>>2]=s[Be+8>>2];s[ee+12>>2]=s[Be+12>>2];s[ie>>2]=y;s[ce>>2]=s[Ue>>2];s[ce+4>>2]=s[Ue+4>>2];s[ce+8>>2]=s[Ue+8>>2];s[ce+12>>2]=s[Ue+12>>2];s[ce+16>>2]=s[Ue+16>>2];M=Ne;x=De;R=M+48|0;do{s[M>>2]=s[x>>2];M=M+4|0;x=x+4|0}while((M|0)<(R|0));Mn(z|0,pe|0,B|0)|0;Mn(q|0,be|0,B|0)|0;s[se>>2]=1;if(H)M=0;else M=Ee+(n[G>>1]<=(Y|0)){M=0;I=0;break}I=C+ +h[pe+(M<<2)>>2]*+h[z+(M<<2)>>2];M=M+1|0;C=I}while(1){if((M|0)>=(Y|0))break;ze=I+ +h[be+(M<<2)>>2]*+h[q+(M<<2)>>2];M=M+1|0;I=ze}if(!(N>=j*C+F*I)){w=0;e=x;M=x}else{M=k;x=je;R=M+48|0;do{s[M>>2]=s[x>>2];M=M+4|0;x=x+4|0}while((M|0)<(R|0));M=Ne;x=Le;R=M+52|0;do{s[M>>2]=s[x>>2];M=M+4|0;x=x+4|0}while((M|0)<(R|0));Mn(z|0,me|0,B|0)|0;Mn(q|0,we|0,B|0)|0;if(!H)Mn(Ee+(n[G>>1]<>0]=e;r[u+(y+Pe+-1)>>0]=M;y=V+((s[p+($<<2)>>2]|0)+Z)|0;$=K;x=(W|0)>(Y<<3|0)&1}s[S>>2]=s[de>>2];l=Fe;return}function ar(e,t,i,n,o,f,c,l,u,d,p){e=e|0;t=t|0;i=i|0;n=n|0;o=o|0;f=f|0;c=c|0;l=l|0;u=+u;d=d|0;p=p|0;var b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0;b=s[e>>2]|0;y=s[e+24>>2]|0;A=(o|0)==1&1;_=(i>>>0)/(o>>>0)|0;if((i|0)==1){k=s[e+28>>2]|0;S=e+32|0;E=k+12|0;c=k+16|0;n=k+20|0;y=k+8|0;o=k+4|0;g=k+24|0;v=k+44|0;A=e+4|0;if((s[S>>2]|0)>7){if(!b){d=s[E>>2]|0;f=s[c>>2]|0;if(!f){b=s[o>>2]|0;p=s[y>>2]|0;m=0;do{if(p>>>0>>0){f=p+1|0;s[y>>2]=f;p=f;f=a[(s[k>>2]|0)+(b-f)>>0]|0}else f=0;d=d|f<>>1}else{_=+h[t>>2]<0&1;d=s[E>>2]|0;b=s[c>>2]|0;if((b+1|0)>>>0>32){m=7-b|0;m=b+((m|0)>-8?m:-8)&-8;w=b;do{f=s[y>>2]|0;p=s[o>>2]|0;if(((s[g>>2]|0)+f|0)>>>0

>>0){f=f+1|0;s[y>>2]=f;r[(s[k>>2]|0)+(p-f)>>0]=d;f=0}else f=-1;s[v>>2]=s[v>>2]|f;d=d>>>8;w=w+-8|0}while((w|0)>7);b=b+-8-m|0}f=_;p=b+1|0;d=d|_<>2]=d;s[c>>2]=p;s[n>>2]=(s[n>>2]|0)+1;s[S>>2]=(s[S>>2]|0)+-8}else f=0;if(s[A>>2]|0)h[t>>2]=f|0?-1:1;if(!l){l=1;return l|0}s[l>>2]=s[t>>2];l=1;return l|0}S=(y|0)>0?y:0;do if(d)if(!f)d=0;else{if((S|0)==0?!((_&1|0)==0&(y|0)<0|(o|0)>1):0){d=f;break}Mn(d|0,f|0,i<<2|0)|0}else d=f;while(0);k=(b|0)==0;E=(d|0)==0;v=0;while(1){if((v|0)>=(S|0))break;e:do if(!k){f=1<>v>>1;m=f<<1;w=0;while(1){if((w|0)<(f|0))g=0;else break e;while(1){if((g|0)>=(b|0))break;R=t+((te(m,g)|0)+w<<2)|0;x=+h[R>>2]*.7071067690849304;M=t+(((g<<1|1)<>2]*.7071067690849304;h[R>>2]=x+T;h[M>>2]=x-T;g=g+1|0}w=w+1|0}}while(0);e:do if(!E){f=1<>v>>1;m=f<<1;w=0;while(1){if((w|0)<(f|0))g=0;else break e;while(1){if((g|0)>=(b|0))break;M=d+((te(m,g)|0)+w<<2)|0;T=+h[M>>2]*.7071067690849304;R=d+(((g<<1|1)<>2]*.7071067690849304;h[M>>2]=T+x;h[R>>2]=T-x;g=g+1|0}w=w+1|0}}while(0);p=a[31165+(p&15)>>0]|0|(a[31165+(p>>4)>>0]|0)<<2;v=v+1|0}o=o>>S;v=p;f=_<>1;b=o<<1;m=0;while(1){if((m|0)<(o|0))w=0;else break e;while(1){if((w|0)>=(p|0))break;M=t+((te(b,w)|0)+m<<2)|0;T=+h[M>>2]*.7071067690849304;R=t+((te(w<<1|1,o)|0)+m<<2)|0;x=+h[R>>2]*.7071067690849304;h[M>>2]=T+x;h[R>>2]=T-x;w=w+1|0}m=m+1|0}}while(0);e:do if(E){f=f>>1;p=o<<1}else{f=f>>1;p=o<<1;b=0;while(1){if((b|0)<(o|0))m=0;else break e;while(1){if((m|0)>=(f|0))break;M=d+((te(p,m)|0)+b<<2)|0;T=+h[M>>2]*.7071067690849304;R=d+((te(m<<1|1,o)|0)+b<<2)|0;x=+h[R>>2]*.7071067690849304;h[M>>2]=T+x;h[R>>2]=T-x;m=m+1|0}b=b+1|0}}while(0);R=v|v<1;if(b){if(!k)or(t,f>>S,o<>S,o<>2]|0)){R=p;return R|0}if(b){cr(t,f>>S,o<=(_|0)){g=0;break}g=o>>1;f=f<<1;d=f>>1;b=g<<1;m=0;while(1){if((m|0)<(g|0))w=0;else break;while(1){if((w|0)>=(d|0))break;M=t+((te(b,w)|0)+m<<2)|0;T=+h[M>>2]*.7071067690849304;R=t+((te(w<<1|1,g)|0)+m<<2)|0;x=+h[R>>2]*.7071067690849304;h[M>>2]=T+x;h[R>>2]=T-x;w=w+1|0}m=m+1|0}o=g;p=p|p>>>g;v=v+1|0}while(1){if((g|0)>=(S|0))break;f=r[31181+p>>0]|0;d=1<>g>>1;b=d<<1;m=0;while(1){if((m|0)<(d|0))w=0;else break;while(1){if((w|0)>=(p|0))break;M=t+((te(b,w)|0)+m<<2)|0;T=+h[M>>2]*.7071067690849304;R=t+(((w<<1|1)<>2]*.7071067690849304;h[M>>2]=T+x;h[R>>2]=T-x;w=w+1|0}m=m+1|0}p=f&255;g=g+1|0}f=o<=(i|0))break e;h[l+(d<<2)>>2]=u*+h[t+(d<<2)>>2];d=d+1|0}}while(0);R=p&(1<=(i|0))break;r=te(n,t)|0;a=0;while(1){if((a|0)>=(t|0))break;s[h+(r+a<<2)>>2]=s[e+((te(a,i)|0)+n<<2)>>2];a=a+1|0}n=n+1|0}i=f<<2;Mn(e|0,h|0,i|0)|0;l=c;return}r=17628+(i<<2)+-8|0;a=0;while(1){if((a|0)>=(i|0))break;n=r+(a<<2)|0;o=0;while(1){if((o|0)>=(t|0))break;u=s[e+((te(o,i)|0)+a<<2)>>2]|0;s[h+((te(s[n>>2]|0,t)|0)+o<<2)>>2]=u;o=o+1|0}a=a+1|0}u=f<<2;Mn(e|0,h|0,u|0)|0;l=c;return}function fr(e,t,i,o,f,c,u,d,p){e=e|0;t=t|0;i=i|0;o=o|0;f=f|0;c=c|0;u=u|0;d=+d;p=p|0;var b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0,C=0;I=l;l=l+32|0;S=I+28|0;R=I+24|0;w=I;s[S>>2]=o;s[R>>2]=p;T=s[e>>2]|0;E=s[e+8>>2]|0;A=s[e+12>>2]|0;x=s[e+20>>2]|0;M=s[e+28>>2]|0;v=E+100|0;_=u+1|0;k=E+8|0;g=(te(_,s[k>>2]|0)|0)+A|0;E=E+96|0;g=(s[v>>2]|0)+(n[(s[E>>2]|0)+(g<<1)>>1]|0)|0;m=r[g>>0]|0;if((u|0)!=-1?(i|0)>2?((a[g+(m&255)>>0]|0)+12|0)<(o|0):0:0){k=i>>1;E=t+(k<<2)|0;A=u+-1|0;if((f|0)==1)s[R>>2]=p&1|p<<1;v=f+1>>1;hr(e,w,t,E,k,S,v,f,A,0,R);o=s[w+12>>2]|0;_=s[w+16>>2]|0;m=s[w+20>>2]|0;y=+(s[w+4>>2]|0)*30517578125e-15;b=+(s[w+8>>2]|0)*30517578125e-15;do if(!((f|0)<2|(_&16383|0)==0))if((_|0)>8192){o=o-(o>>5-u)|0;break}else{o=o+(k<<3>>6-u)|0;o=(o|0)>0?0:o;break}while(0);u=s[S>>2]|0;w=(u-o|0)/2|0;g=(u|0)<(w|0);w=((g?u:w)|0)<0?0:g?u:w;u=u-w|0;g=e+32|0;m=(s[g>>2]|0)-m|0;s[g>>2]=m;o=(c|0)==0?0:c+(k<<2)|0;if((w|0)<(u|0)){R=s[R>>2]|0;i=(fr(e,E,k,u,v,o,A,b*d,R>>v)|0)<<(f>>1);f=u+((s[g>>2]|0)-m)|0;c=i|(fr(e,t,k,w+((f|0)<25|(_|0)==16384?0:f+-24|0)|0,v,c,A,y*d,R)|0);l=I;return c|0}else{R=s[R>>2]|0;i=fr(e,t,k,w,v,c,A,y*d,R)|0;c=w+((s[g>>2]|0)-m)|0;c=i|(fr(e,E,k,u+((c|0)<25|(_|0)==0?0:c+-24|0)|0,v,o,A,b*d,R>>v)|0)<<(f>>1);l=I;return c|0}}u=o+-1|0;m=m&255;o=0;w=0;while(1){if((o|0)==6)break;S=w+m+1>>1;C=(a[g+S>>0]|0)<(u|0);m=C?m:S;o=o+1|0;w=C?S:w}if(!w)o=-1;else o=a[g+w>>0]|0;o=(u-o|0)>((a[g+m>>0]|0)-u|0)?m:w;if(!o)m=0;else m=(a[g+o>>0]|0)+1|0;u=e+32|0;g=m;m=(s[u>>2]|0)-m|0;while(1){s[u>>2]=m;if(!((m|0)<0&(o|0)>0))break;m=m+g|0;s[u>>2]=m;o=o+-1|0;if(!o)w=0;else w=(a[(s[v>>2]|0)+(n[(s[E>>2]|0)+((te(_,s[k>>2]|0)|0)+A<<1)>>1]|0)+o>>0]|0)+1|0;g=w;m=m-w|0}if(o|0){if((o|0)>=8)o=(o&7|8)<<(o>>3)+-1;if(!T){C=Ci(t,i,o,x,f,M,d)|0;l=I;return C|0}else{C=Ri(t,i,o,x,f,M,d,s[e+4>>2]|0)|0;l=I;return C|0}}if(!(s[e+4>>2]|0)){C=0;l=I;return C|0}o=(1<>2]=m;if(!m){kn(t|0,0,i<<2|0)|0;C=0;l=I;return C|0}w=e+40|0;e:do if(!c){m=0;while(1){if((m|0)>=(i|0))break e;C=(te(s[w>>2]|0,1664525)|0)+1013904223|0;s[w>>2]=C;h[t+(m<<2)>>2]=+(C>>20|0);m=m+1|0}}else{o=0;while(1){if((o|0)>=(i|0)){o=m;break e}C=(te(s[w>>2]|0,1664525)|0)+1013904223|0;s[w>>2]=C;h[t+(o<<2)>>2]=+h[c+(o<<2)>>2]+((C&32768|0)==0?-.00390625:.00390625);o=o+1|0}}while(0);m=0;b=0;while(1){if((m|0)>=(i|0))break;y=+h[t+(m<<2)>>2];m=m+1|0;b=b+y*y}b=1/+H(+(b+1.0000000036274937e-15))*d;m=0;while(1){if((m|0)>=(i|0))break;h[t>>2]=b*+h[t>>2];m=m+1|0;t=t+4|0}l=I;return o|0}function hr(e,t,i,o,f,c,l,u,d,p,b){e=e|0;t=t|0;i=i|0;o=o|0;f=f|0;c=c|0;l=l|0;u=u|0;d=d|0;p=p|0;b=b|0;var m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0,C=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,q=0,G=0,V=0;E=s[e>>2]|0;L=s[e+8>>2]|0;B=s[e+12>>2]|0;_=s[e+16>>2]|0;G=s[e+28>>2]|0;D=s[e+36>>2]|0;v=(n[(s[L+56>>2]|0)+(B<<1)>>1]|0)+(d<<3)|0;d=v>>1;N=(p|0)==0;do if(!N)if((f|0)==2){p=d+-16|0;g=2;break}else{p=d+-4|0;g=(f<<1)+-1|0;break}else{p=d+-4|0;g=(f<<1)+-1|0}while(0);d=s[c>>2]|0;p=((te(g,p)|0)+d|0)/(g|0)|0;q=d-v+-32|0;p=(q|0)<(p|0)?q:p;if((p|0)<=64)if((p|0)<4)p=1;else k=8;else{p=64;k=8}if((k|0)==8)p=(n[25760+((p&7)<<1)>>1]>>14-(p>>3))+1&-2;P=N|(B|0)<(_|0)?p:1;O=(E|0)==0;if(O)p=0;else{e:do if(N){p=0;m=0;while(1){if((p|0)>=(f|0)){p=0;w=0;break}S=+h[i+(p<<2)>>2];p=p+1|0;m=m+S*S}while(1){if((p|0)>=(f|0))break;S=+h[o+(p<<2)>>2];p=p+1|0;w=w+S*S}m=m+1.0000000036274937e-15;w=w+1.0000000036274937e-15}else{m=1.0000000036274937e-15;w=1.0000000036274937e-15;p=0;while(1){if((p|0)>=(f|0))break e;V=+h[i+(p<<2)>>2];S=+h[o+(p<<2)>>2];y=V+S;S=V-S;m=m+y*y;w=w+S*S;p=p+1|0}}while(0);S=+H(+m);y=+H(+w);m=S*S;w=y*y;do if(!(m+w<1.000000045813705e-18))if(m>2]|0;j=C<<3;F=G+28|0;T=s[F>>2]|0;R=32-(re(T|0)|0)|0;I=T>>>(R+-16|0);q=(I>>>12)+-8|0;q=(R<<3)+(q+(I>>>0>(s[5272+(q<<2)>>2]|0)>>>0&1))|0;e:do if((P|0)==1)if(!N){if(O)g=0;else{N=(p|0)>8192;g=N&1;t:do if(N){d=0;while(1){if((d|0)>=(f|0))break t;N=o+(d<<2)|0;h[N>>2]=-+h[N>>2];d=d+1|0}}while(0);m=+h[D+(B<<2)>>2];V=+h[D+((s[L+8>>2]|0)+B<<2)>>2];w=+H(+(m*m+1.0000000036274937e-15+V*V))+1.0000000036274937e-15;m=m/w;w=V/w;d=0;while(1){if((d|0)>=(f|0))break;B=i+(d<<2)|0;h[B>>2]=m*+h[B>>2]+w*+h[o+(d<<2)>>2];d=d+1|0}d=s[c>>2]|0}if((d|0)>16?(s[e+32>>2]|0)>16:0){v=s[F>>2]|0;if(O){u=G+32|0;p=s[u>>2]|0;d=v>>>2;o=p>>>0>>0;g=o&1;if(!o){p=p-d|0;s[u>>2]=p;d=v-d|0}s[F>>2]=d;k=G+40|0;E=G+24|0;A=G+4|0;while(1){if(d>>>0>=8388609){p=0;break e}s[U>>2]=(s[U>>2]|0)+8;d=d<<8;s[F>>2]=d;_=s[k>>2]|0;v=s[E>>2]|0;if(v>>>0<(s[A>>2]|0)>>>0){s[E>>2]=v+1;v=a[(s[G>>2]|0)+v>>0]|0}else v=0;s[k>>2]=v;o=((_<<8|v)>>>1&255|p<<8&2147483392)^255;s[u>>2]=o;p=o}}p=v>>>2;d=v-p|0;T=G+32|0;if(g){s[T>>2]=(s[T>>2]|0)+d;d=p}s[F>>2]=d;k=G+36|0;E=G+40|0;A=G+24|0;u=G+8|0;e=G+4|0;M=G+44|0;while(1){if(d>>>0>=8388609){p=0;break e}p=s[T>>2]|0;_=p>>>23;if((_|0)==255)s[k>>2]=(s[k>>2]|0)+1;else{v=p>>>31;d=s[E>>2]|0;if((d|0)>-1){p=s[A>>2]|0;if((p+(s[u>>2]|0)|0)>>>0<(s[e>>2]|0)>>>0){s[A>>2]=p+1;r[(s[G>>2]|0)+p>>0]=d+v;d=0}else d=-1;s[M>>2]=s[M>>2]|d}d=s[k>>2]|0;if(d|0){v=v+255&255;do{p=s[A>>2]|0;if((p+(s[u>>2]|0)|0)>>>0<(s[e>>2]|0)>>>0){s[A>>2]=p+1;r[(s[G>>2]|0)+p>>0]=v;p=0;d=s[k>>2]|0}else p=-1;s[M>>2]=s[M>>2]|p;d=d+-1|0;s[k>>2]=d}while((d|0)!=0)}s[E>>2]=_&255;p=s[T>>2]|0;d=s[F>>2]|0}s[T>>2]=p<<8&2147483392;d=d<<8;s[F>>2]=d;s[U>>2]=(s[U>>2]|0)+8}}else{g=0;p=0}}else g=0;else{do if(!O){if(!N?(A=s[e+48>>2]|0,A|0):0){p=(te(p,P)|0)+((((p|0)>8192?32767:-32767)|0)/(P|0)|0)|0;I=(p|0)<0;p=((P|0)>((I?0:p>>14)|0)?I?0:p>>14:P+-1|0)+(A>>>31^1)|0;break}p=(te(p,P)|0)+8192>>14}while(0);t:do if((f|0)>2&(N^1)){k=(P|0)/2|0;E=(k*3|0)+3|0;A=E+k|0;if(O){v=(T>>>0)/(A>>>0)|0;s[G+36>>2]=v;e=G+32|0;_=s[e>>2]|0;d=((_>>>0)/(v>>>0)|0)+1|0;d=A-(A>>>0>>0?A:d)|0;if((d|0)<(E|0))p=(d|0)/3|0;else p=k+1+(d-E)|0;d=(p|0)>(k|0);if(d)g=p+-1-k+E|0;else g=p*3|0;E=d?p-k+E|0:(p*3|0)+3|0;A=te(v,A-E|0)|0;k=_-A|0;s[e>>2]=k;E=te(v,E-g|0)|0;g=(g|0)==0?T-A|0:E;s[F>>2]=g;E=G+40|0;A=G+24|0;u=G+4|0;d=C;while(1){if(g>>>0>=8388609)break t;d=d+8|0;s[U>>2]=d;g=g<<8;s[F>>2]=g;_=s[E>>2]|0;v=s[A>>2]|0;if(v>>>0<(s[u>>2]|0)>>>0){s[A>>2]=v+1;v=a[(s[G>>2]|0)+v>>0]|0}else v=0;s[E>>2]=v;C=((_<<8|v)>>>1&255|k<<8&2147483392)^255;s[e>>2]=C;k=C}}d=(p|0)>(k|0);if(d)v=p+-1-k+E|0;else v=p*3|0;d=d?p-k+E|0:(p*3|0)+3|0;g=(T>>>0)/(A>>>0)|0;if(!v){d=T-(te(g,A-d|0)|0)|0;s[F>>2]=d;k=G+32|0}else{I=T-(te(g,A-v|0)|0)|0;k=G+32|0;s[k>>2]=(s[k>>2]|0)+I;d=te(g,d-v|0)|0;s[F>>2]=d}E=G+36|0;A=G+40|0;u=G+24|0;e=G+8|0;M=G+4|0;T=G+44|0;g=C;while(1){if(d>>>0>=8388609)break t;v=s[k>>2]|0;_=v>>>23;if((_|0)==255)s[E>>2]=(s[E>>2]|0)+1;else{v=v>>>31;d=s[A>>2]|0;if((d|0)>-1){g=s[u>>2]|0;if((g+(s[e>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[u>>2]=g+1;r[(s[G>>2]|0)+g>>0]=d+v;d=0}else d=-1;s[T>>2]=s[T>>2]|d}d=s[E>>2]|0;if(d|0){v=v+255&255;do{g=s[u>>2]|0;if((g+(s[e>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[u>>2]=g+1;r[(s[G>>2]|0)+g>>0]=v;g=0;d=s[E>>2]|0}else g=-1;s[T>>2]=s[T>>2]|g;d=d+-1|0;s[E>>2]=d}while((d|0)!=0)}s[A>>2]=_&255;v=s[k>>2]|0;d=s[F>>2]|0;g=s[U>>2]|0}s[k>>2]=v<<8&2147483392;d=d<<8;s[F>>2]=d;g=g+8|0;s[U>>2]=g}}else{if(!((u|0)>1|N^1)){g=P>>1;v=g+1|0;e=te(v,v)|0;if(O){A=(T>>>0)/(e>>>0)|0;s[G+36>>2]=A;M=G+32|0;u=s[M>>2]|0;p=((u>>>0)/(A>>>0)|0)+1|0;p=e>>>0

>>0?e:p;d=e-p|0;if((d|0)<((te(g,v)|0)>>1|0)){d=d<<3|1;_=32-(re(d|0)|0)+-1>>1;v=1<<_;k=0;while(1){p=(k<<1)+v<<_;g=d>>>0

>>0;k=k+(g?0:v)|0;if((_|0)<=0)break;else{d=d-(g?0:p)|0;v=v>>>1;_=_+-1|0}}p=(k+-1|0)>>>1;g=p+1|0;d=(te(p,g)|0)>>>1}else{E=P<<1;d=(p<<3)+-7|0;_=32-(re(d|0)|0)+-1>>1;v=1<<_;k=0;while(1){p=(k<<1)+v<<_;g=d>>>0

>>0;k=k+(g?0:v)|0;if((_|0)<=0)break;else{d=d-(g?0:p)|0;v=v>>>1;_=_+-1|0}}p=(E+2-k|0)>>>1;g=P+1-p|0;d=e-((te(g,P+2-p|0)|0)>>1)|0}E=te(A,e-(d+g)|0)|0;k=u-E|0;s[M>>2]=k;g=te(A,g)|0;g=(d|0)==0?T-E|0:g;s[F>>2]=g;E=G+40|0;A=G+24|0;u=G+4|0;d=C;while(1){if(g>>>0>=8388609)break t;d=d+8|0;s[U>>2]=d;g=g<<8;s[F>>2]=g;_=s[E>>2]|0;v=s[A>>2]|0;if(v>>>0<(s[u>>2]|0)>>>0){s[A>>2]=v+1;v=a[(s[G>>2]|0)+v>>0]|0}else v=0;s[E>>2]=v;C=((_<<8|v)>>>1&255|k<<8&2147483392)^255;s[M>>2]=C;k=C}}I=(p|0)>(g|0);d=I?P+1-p|0:p+1|0;if(I)v=e-((te(P+1-p|0,P+2-p|0)|0)>>1)|0;else v=(te(p,p+1|0)|0)>>1;g=(T>>>0)/(e>>>0)|0;if(!v){d=T-(te(g,e-d|0)|0)|0;s[F>>2]=d;k=G+32|0}else{I=T-(te(g,e-v|0)|0)|0;k=G+32|0;s[k>>2]=(s[k>>2]|0)+I;d=te(g,d)|0;s[F>>2]=d}E=G+36|0;A=G+40|0;u=G+24|0;e=G+8|0;M=G+4|0;T=G+44|0;g=C;while(1){if(d>>>0>=8388609)break t;v=s[k>>2]|0;_=v>>>23;if((_|0)==255)s[E>>2]=(s[E>>2]|0)+1;else{v=v>>>31;d=s[A>>2]|0;if((d|0)>-1){g=s[u>>2]|0;if((g+(s[e>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[u>>2]=g+1;r[(s[G>>2]|0)+g>>0]=d+v;d=0}else d=-1;s[T>>2]=s[T>>2]|d}d=s[E>>2]|0;if(d|0){v=v+255&255;do{g=s[u>>2]|0;if((g+(s[e>>2]|0)|0)>>>0<(s[M>>2]|0)>>>0){s[u>>2]=g+1;r[(s[G>>2]|0)+g>>0]=v;g=0;d=s[E>>2]|0}else g=-1;s[T>>2]=s[T>>2]|g;d=d+-1|0;s[E>>2]=d}while((d|0)!=0)}s[A>>2]=_&255;v=s[k>>2]|0;d=s[F>>2]|0;g=s[U>>2]|0}s[k>>2]=v<<8&2147483392;d=d<<8;s[F>>2]=d;g=g+8|0;s[U>>2]=g}}v=P+1|0;if(O){g=0;p=((ci(G,v)|0)<<14>>>0)/(P>>>0)|0;break e}d=32-(re(P|0)|0)|0;if((d|0)<=8){d=(T>>>0)/(v>>>0)|0;if(!p){d=T-(te(d,P)|0)|0;s[F>>2]=d;T=G+32|0}else{I=T-(te(d,v-p|0)|0)|0;T=G+32|0;s[T>>2]=(s[T>>2]|0)+I;s[F>>2]=d}k=G+36|0;E=G+40|0;A=G+24|0;u=G+8|0;e=G+4|0;M=G+44|0;g=C;while(1){if(d>>>0>=8388609)break t;v=s[T>>2]|0;_=v>>>23;if((_|0)==255)s[k>>2]=(s[k>>2]|0)+1;else{v=v>>>31;d=s[E>>2]|0;if((d|0)>-1){g=s[A>>2]|0;if((g+(s[u>>2]|0)|0)>>>0<(s[e>>2]|0)>>>0){s[A>>2]=g+1;r[(s[G>>2]|0)+g>>0]=d+v;d=0}else d=-1;s[M>>2]=s[M>>2]|d}d=s[k>>2]|0;if(d|0){v=v+255&255;do{g=s[A>>2]|0;if((g+(s[u>>2]|0)|0)>>>0<(s[e>>2]|0)>>>0){s[A>>2]=g+1;r[(s[G>>2]|0)+g>>0]=v;g=0;d=s[k>>2]|0}else g=-1;s[M>>2]=s[M>>2]|g;d=d+-1|0;s[k>>2]=d}while((d|0)!=0)}s[E>>2]=_&255;v=s[T>>2]|0;d=s[F>>2]|0;g=s[U>>2]|0}s[T>>2]=v<<8&2147483392;d=d<<8;s[F>>2]=d;g=g+8|0;s[U>>2]=g}}I=d+-8|0;d=P>>>I;g=d+1|0;v=p>>>I;_=(T>>>0)/(g>>>0)|0;if(!v){_=T-(te(_,d)|0)|0;s[F>>2]=_;u=G+32|0}else{R=T-(te(_,g-v|0)|0)|0;u=G+32|0;s[u>>2]=(s[u>>2]|0)+R;s[F>>2]=_}E=G+36|0;A=G+40|0;M=G+24|0;T=G+8|0;x=G+4|0;R=G+44|0;v=C;while(1){if(_>>>0>=8388609)break;d=s[u>>2]|0;k=d>>>23;if((k|0)==255)s[E>>2]=(s[E>>2]|0)+1;else{v=d>>>31;d=s[A>>2]|0;if((d|0)>-1){g=s[M>>2]|0;if((g+(s[T>>2]|0)|0)>>>0<(s[x>>2]|0)>>>0){s[M>>2]=g+1;r[(s[G>>2]|0)+g>>0]=d+v;d=0}else d=-1;s[R>>2]=s[R>>2]|d}d=s[E>>2]|0;if(d|0){v=v+255&255;do{g=s[M>>2]|0;if((g+(s[T>>2]|0)|0)>>>0<(s[x>>2]|0)>>>0){s[M>>2]=g+1;r[(s[G>>2]|0)+g>>0]=v;g=0;d=s[E>>2]|0}else g=-1;s[R>>2]=s[R>>2]|g;d=d+-1|0;s[E>>2]=d}while((d|0)!=0)}s[A>>2]=k&255;d=s[u>>2]|0;_=s[F>>2]|0;v=s[U>>2]|0}s[u>>2]=d<<8&2147483392;_=_<<8;s[F>>2]=_;v=v+8|0;s[U>>2]=v}A=(1<>2]|0;e=G+16|0;g=s[e>>2]|0;if((g+I|0)>>>0>32){E=7-g|0;E=g+((E|0)>-8?E:-8)&-8;k=g;do{v=s[T>>2]|0;_=s[x>>2]|0;if(((s[M>>2]|0)+v|0)>>>0<_>>>0){v=v+1|0;s[T>>2]=v;r[(s[G>>2]|0)+(_-v)>>0]=d;v=0}else v=-1;s[R>>2]=s[R>>2]|v;d=d>>>8;k=k+-8|0}while((k|0)>7);v=s[U>>2]|0;g=g+-8-E|0}s[u>>2]=d|A<>2]=g+I;s[U>>2]=v+I}while(0);p=(p<<14>>>0)/(P>>>0)|0;if(O|N)g=0;else{if(p|0){d=0;while(1){if((d|0)>=(f|0)){g=0;break e}B=i+(d<<2)|0;V=+h[B>>2]*.7071067690849304;G=o+(d<<2)|0;S=+h[G>>2]*.7071067690849304;h[B>>2]=V+S;h[G>>2]=S-V;d=d+1|0}}m=+h[D+(B<<2)>>2];V=+h[D+((s[L+8>>2]|0)+B<<2)>>2];w=+H(+(m*m+1.0000000036274937e-15+V*V))+1.0000000036274937e-15;m=m/w;w=V/w;d=0;while(1){if((d|0)>=(f|0)){g=0;p=0;break e}G=i+(d<<2)|0;h[G>>2]=m*+h[G>>2]+w*+h[o+(d<<2)>>2];d=d+1|0}}}while(0);G=s[F>>2]|0;F=32-(re(G|0)|0)|0;G=G>>>(F+-16|0);d=(G>>>12)+-8|0;d=(s[U>>2]<<3)-((F<<3)+(d+(G>>>0>(s[5272+(d<<2)>>2]|0)>>>0&1)))+(q-j)|0;s[c>>2]=(s[c>>2]|0)-d;e:do if((p|0)<16384){switch(p|0){case 0:break;default:break e}s[b>>2]=s[b>>2]&(1<>2]=g;b=t+4|0;s[b>>2]=l;b=t+8|0;s[b>>2]=f;b=t+12|0;s[b>>2]=c;b=t+16|0;s[b>>2]=p;t=t+20|0;s[t>>2]=d;return}else{switch(p|0){case 16384:break;default:break e}s[b>>2]=s[b>>2]&(1<>2]=g;b=t+4|0;s[b>>2]=l;b=t+8|0;s[b>>2]=f;b=t+12|0;s[b>>2]=c;b=t+16|0;s[b>>2]=p;t=t+20|0;s[t>>2]=d;return}while(0);q=p<<16>>16;q=((te(q,q)|0)+4096|0)>>>13;l=q<<16>>16;l=(32767-q+(((te(l,(((te(l,(((te(l,-626)|0)+16384|0)>>>15<<16)+542441472>>16)|0)+16384|0)>>>15<<16)+-501415936>>16)|0)+16384|0)>>>15)<<16)+65536>>16;q=16384-p<<16>>16;q=((te(q,q)|0)+4096|0)>>>13;b=q<<16>>16;b=(32767-q+(((te(b,(((te(b,(((te(b,-626)|0)+16384|0)>>>15<<16)+542441472>>16)|0)+16384|0)>>>15<<16)+-501415936>>16)|0)+16384|0)>>>15)<<16)+65536>>16;q=32-(re(l|0)|0)|0;F=32-(re(b|0)|0)|0;G=b<<15-F<<16>>16;c=l<<15-q<<16>>16;c=(te((f<<23)+-8388608>>16,(F-q<<11)+(((te(G,(((te(G,-2597)|0)+16384|0)>>>15<<16)+519831552>>16)|0)+16384|0)>>>15)-(((te(c,(((te(c,-2597)|0)+16384|0)>>>15<<16)+519831552>>16)|0)+16384|0)>>>15)<<16>>16)|0)+16384>>15; +f=b;s[t>>2]=g;b=t+4|0;s[b>>2]=l;b=t+8|0;s[b>>2]=f;b=t+12|0;s[b>>2]=c;b=t+16|0;s[b>>2]=p;t=t+20|0;s[t>>2]=d;return}function cr(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var n=0,a=0,o=0,f=0,h=0,c=0;c=l;f=te(t,i)|0;h=l;l=l+((1*(f<<2)|0)+15&-16)|0;if(!r){n=0;while(1){if((n|0)>=(i|0))break;r=te(n,t)|0;a=0;while(1){if((a|0)>=(t|0))break;s[h+((te(a,i)|0)+n<<2)>>2]=s[e+(r+a<<2)>>2];a=a+1|0}n=n+1|0}i=f<<2;Mn(e|0,h|0,i|0)|0;l=c;return}r=17628+(i<<2)+-8|0;a=0;while(1){if((a|0)>=(i|0))break;n=r+(a<<2)|0;o=0;while(1){if((o|0)>=(t|0))break;s[h+((te(o,i)|0)+a<<2)>>2]=s[e+((te(s[n>>2]|0,t)|0)+o<<2)>>2];o=o+1|0}a=a+1|0}i=f<<2;Mn(e|0,h|0,i|0)|0;l=c;return}function lr(e,t,i,n,o,f,c,u,d,p,b){e=e|0;t=t|0;i=i|0;n=n|0;o=o|0;f=f|0;c=c|0;u=u|0;d=d|0;p=p|0;b=b|0;var m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0,C=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0;U=l;l=l+32|0;m=U+28|0;E=U+24|0;_=U;s[m>>2]=o;s[E>>2]=b;k=s[e>>2]|0;B=s[e+28>>2]|0;if((n|0)==1){c=e+32|0;f=(k|0)==0;u=B+12|0;R=B+16|0;I=B+20|0;C=B+8|0;P=B+4|0;O=B+24|0;b=B+44|0;S=e+4|0;M=i|0?2:1;T=0;x=t;while(1){if((s[c>>2]|0)>7){if(f){m=s[u>>2]|0;o=s[R>>2]|0;if(!o){y=s[P>>2]|0;_=s[C>>2]|0;k=0;do{if(_>>>0>>0){o=_+1|0;s[C>>2]=o;_=o;o=a[(s[B>>2]|0)+(y-o)>>0]|0}else o=0;m=m|o<>>1}else{A=+h[x>>2]<0&1;m=s[u>>2]|0;y=s[R>>2]|0;if((y+1|0)>>>0>32){k=7-y|0;k=y+((k|0)>-8?k:-8)&-8;E=y;do{o=s[C>>2]|0;_=s[P>>2]|0;if(((s[O>>2]|0)+o|0)>>>0<_>>>0){o=o+1|0;s[C>>2]=o;r[(s[B>>2]|0)+(_-o)>>0]=m;o=0}else o=-1;s[b>>2]=s[b>>2]|o;m=m>>>8;E=E+-8|0}while((E|0)>7);y=y+-8-k|0}o=A;_=y+1|0;m=m|A<>2]=m;s[R>>2]=_;s[I>>2]=(s[I>>2]|0)+1;s[c>>2]=(s[c>>2]|0)+-8}else o=0;if(s[S>>2]|0)h[x>>2]=o|0?-1:1;T=T+1|0;if((T|0)>=(M|0))break;else x=i}if(!d){i=1;l=U;return i|0}s[d>>2]=s[t>>2];i=1;l=U;return i|0}hr(e,_,t,i,n,m,f,f,u,1,E);D=s[_>>2]|0;S=s[_+16>>2]|0;A=s[_+20>>2]|0;L=+(s[_+4>>2]|0)*30517578125e-15;w=+(s[_+8>>2]|0)*30517578125e-15;N=(n|0)==2;do if(N){o=s[m>>2]|0;if((S|0)<16384)switch(S|0){case 0:{m=0;break}default:y=26}else switch(S|0){case 16384:{m=0;break}default:y=26}if((y|0)==26)m=8;O=o-m|0;C=(S|0)>8192;P=e+32|0;s[P>>2]=(s[P>>2]|0)-(A+m);P=C?i:t;C=C?t:i;do if(!m)o=0;else{if(!k){A=B+12|0;m=s[A>>2]|0;S=B+16|0;o=s[S>>2]|0;if(!o){k=B+8|0;y=s[B+4>>2]|0;_=s[k>>2]|0;E=0;do{if(_>>>0>>0){_=_+1|0;s[k>>2]=_;o=a[(s[B>>2]|0)+(y-_)>>0]|0}else o=0;m=m|o<>2]=m>>>1;s[S>>2]=o+-1;o=B+20|0;s[o>>2]=(s[o>>2]|0)+1;o=m&1;break}o=+h[P>>2]*+h[C+4>>2]-+h[P+4>>2]*+h[C>>2]<0&1;R=B+12|0;m=s[R>>2]|0;I=B+16|0;_=s[I>>2]|0;if((_+1|0)>>>0>32){E=B+24|0;A=B+8|0;S=B+4|0;M=B+44|0;T=7-_|0;T=_+((T|0)>-8?T:-8)&-8;x=_;do{y=s[A>>2]|0;k=s[S>>2]|0;if(((s[E>>2]|0)+y|0)>>>0>>0){y=y+1|0;s[A>>2]=y;r[(s[B>>2]|0)+(k-y)>>0]=m;y=0}else y=-1;s[M>>2]=s[M>>2]|y;m=m>>>8;x=x+-8|0}while((x|0)>7);_=_+-8-T|0}s[R>>2]=m|o<<_;s[I>>2]=_+1;B=B+20|0;s[B>>2]=(s[B>>2]|0)+1}while(0);B=1-(o<<1)|0;o=ar(e,P,2,O,f,c,u,d,1,p,b)|0;h[C>>2]=+(0-B|0)*+h[P+4>>2];h[C+4>>2]=+(B|0)*+h[P>>2];if(s[e+4>>2]|0){h[t>>2]=L*+h[t>>2];B=t+4|0;h[B>>2]=L*+h[B>>2];g=w*+h[i>>2];h[i>>2]=g;d=i+4|0;h[d>>2]=w*+h[d>>2];v=+h[t>>2];h[t>>2]=v-g;h[i>>2]=v+ +h[i>>2];v=+h[B>>2];h[B>>2]=v-+h[d>>2];h[d>>2]=v+ +h[d>>2]}}else{y=s[m>>2]|0;_=(y-(s[_+12>>2]|0)|0)/2|0;k=(y|0)<(_|0);_=((k?y:_)|0)<0?0:k?y:_;y=y-_|0;k=e+32|0;m=(s[k>>2]|0)-A|0;s[k>>2]=m;o=s[E>>2]|0;if((_|0)<(y|0)){b=ar(e,i,n,y,f,0,u,0,w,0,o>>f)|0;B=y+((s[k>>2]|0)-m)|0;o=b|(ar(e,t,n,_+((B|0)<25|(S|0)==16384?0:B+-24|0)|0,f,c,u,d,1,p,o)|0);break}else{B=ar(e,t,n,_,f,c,u,d,1,p,o)|0;d=_+((s[k>>2]|0)-m)|0;o=B|(ar(e,i,n,y+((d|0)<25|(S|0)==0?0:d+-24|0)|0,f,0,u,0,w,0,o>>f)|0);break}}while(0);if(!(s[e+4>>2]|0)){i=o;l=U;return i|0}e:do if(!N){m=0;w=0;g=0;while(1){if((m|0)>=(n|0))break;v=+h[i+(m<<2)>>2];j=w+v*+h[t+(m<<2)>>2];m=m+1|0;w=j;g=g+v*v}j=L*L+g;g=w*L*2;w=j-g;g=j+g;if(g<.0006000000284984708|w<.0006000000284984708){Mn(i|0,t|0,n<<2|0)|0;break}v=1/+H(+w);w=1/+H(+g);m=0;while(1){if((m|0)>=(n|0))break e;B=t+(m<<2)|0;g=+h[B>>2]*L;d=i+(m<<2)|0;j=+h[d>>2];h[B>>2]=v*(g-j);h[d>>2]=w*(g+j);m=m+1|0}}while(0);if(!D){i=o;l=U;return i|0}else m=0;while(1){if((m|0)>=(n|0))break;t=i+(m<<2)|0;h[t>>2]=-+h[t>>2];m=m+1|0}l=U;return o|0}function ur(e,t,i,a,o,f){e=e|0;t=t|0;i=i|0;a=a|0;o=o|0;f=f|0;var h=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0,C=0,P=0,O=0;O=l;l=l+208|0;R=O+176|0;I=O+144|0;P=O;x=e+2328|0;C=s[x>>2]|0;T=P+136|0;s[T>>2]=0;switch(o|0){case 0:{h=e+2388|0;c=4;break}case 2:{h=e+2388|0;if((s[e+2420+(s[h>>2]<<2)>>2]|0)==1)c=4;else c=57;break}default:c=57}if((c|0)==4){M=Ne()|0;_=l;l=l+((1*((C+15&-16)<<1)|0)+15&-16)|0;dr(e,t,s[h>>2]|0,o,f);S=e+2765|0;pr(t,_,r[S>>0]|0,r[e+2766>>0]|0,s[x>>2]|0);A=e+2324|0;mr(P+16|0,e+2736|0,e+2312|0,(f|0)==2&1,s[A>>2]|0);wr(R,e+2744|0,s[e+2732>>2]|0);y=P+64|0;k=e+2340|0;Rr(y,R,s[k>>2]|0);E=e+2376|0;h=e+2767|0;if((s[E>>2]|0)!=1){h=r[h>>0]|0;if(h<<24>>24<4){o=s[k>>2]|0;t=0;while(1){if((t|0)>=(o|0))break;v=n[e+2344+(t<<1)>>1]|0;n[I+(t<<1)>>1]=(v&65535)+((te(h<<24>>24,(n[R+(t<<1)>>1]|0)-(v<<16>>16)|0)|0)>>>2);t=t+1|0}Rr(P+32|0,I,o);o=s[k>>2]|0}else c=11}else{r[h>>0]=4;c=11}if((c|0)==11){o=s[k>>2]|0;Mn(P+32|0,y|0,o<<1|0)|0}Mn(e+2344|0,R|0,o<<1|0)|0;h=e+4160|0;if(s[h>>2]|0){f=o+-1|0;o=63570;t=0;while(1){if((t|0)>=(f|0))break;v=P+32+(t<<1)|0;n[v>>1]=(((te(o,n[v>>1]|0)|0)>>>15)+1|0)>>>1;o=o+(((te(o,-1966)|0)>>15)+1>>1)|0;t=t+1|0}t=P+32+(f<<1)|0;n[t>>1]=(((te(o,n[t>>1]|0)|0)>>>15)+1|0)>>>1;o=63570;t=0;while(1){if((t|0)>=(f|0))break;v=P+64+(t<<1)|0;n[v>>1]=(((te(o,n[v>>1]|0)|0)>>>15)+1|0)>>>1;o=o+(((te(o,-1966)|0)>>15)+1>>1)|0;t=t+1|0}v=P+64+(f<<1)|0;n[v>>1]=(((te(o,n[v>>1]|0)|0)>>>15)+1|0)>>>1}if((r[S>>0]|0)==2){o=e+2316|0;c=s[o>>2]|0;v=s[A>>2]|0;f=(c|0)==8;m=(v|0)==4;w=f?m?11:3:m?34:12;m=f?m?32969:32935:m?33013:32941;c=c<<16;f=c>>15;c=(c>>16)*18|0;u=f+(n[e+2762>>1]|0)|0;d=r[e+2764>>0]|0;p=(f|0)>(c|0);g=0;while(1){if((g|0)>=(v|0))break;t=u+(r[m+((te(g,w)|0)+d)>>0]|0)|0;b=P+(g<<2)|0;s[b>>2]=t;if(p)if((t|0)>(f|0))t=f;else t=(t|0)<(c|0)?c:t;else if((t|0)>(c|0))t=c;else t=(t|0)<(f|0)?f:t;s[b>>2]=t;g=g+1|0}f=n[e+2768>>1]|0;t=s[17400+((f&65535)<<24>>24<<2)>>2]|0;f=(f&65535)>>>8;p=0;while(1){if((p|0)>=(v|0))break;c=(r[e+2740+p>>0]|0)*5|0;u=p*5|0;d=0;while(1){if((d|0)==5)break;n[P+96+(u+d<<1)>>1]=r[t+(c+d)>>0]<<7;d=d+1|0}p=p+1|0}s[T>>2]=n[25412+((f&65535)<<24>>24<<1)>>1]}else{o=s[A>>2]|0;kn(P|0,0,o<<2|0)|0;kn(P+96|0,0,o*10|0)|0;r[e+2768>>0]=0;s[T>>2]=0;o=e+2316|0}Br(e,P,i,_);t=s[o>>2]|0;o=e+4248|0;if((t|0)!=(s[o>>2]|0)){s[e+4168>>2]=s[x>>2]<<7;s[e+4240>>2]=65536;s[e+4244>>2]=65536;s[e+4256>>2]=20;s[e+4252>>2]=2;s[o>>2]=t}g=e+4168|0;_=r[S>>0]|0;v=e+4164|0;s[v>>2]=_<<24>>24;e:do if(_<<24>>24==2){o=e+2332|0;d=s[o>>2]|0;p=s[A>>2]|0;b=p+-1|0;m=e+4172|0;u=s[P+(b<<2)>>2]|0;t=0;w=0;while(1){if((te(w,d)|0)>=(u|0)|(w|0)==(p|0))break;else{f=0;c=0}while(1){if((f|0)==5)break;_=c+(n[P+96+(((b-w|0)*5|0)+f<<1)>>1]|0)|0;f=f+1|0;c=_}if((c|0)>(t|0)){t=P+96+((p+65535-w<<16>>16)*5<<1)|0;n[m>>1]=n[t>>1]|0;n[m+2>>1]=n[t+2>>1]|0;n[m+4>>1]=n[t+4>>1]|0;n[m+6>>1]=n[t+6>>1]|0;n[m+8>>1]=n[t+8>>1]|0;s[g>>2]=s[P+(b-w<<2)>>2]<<8;t=c}w=w+1|0}s[m>>2]=0;s[m+4>>2]=0;n[m+8>>1]=0;n[e+4176>>1]=t;if((t|0)<11469){t=(11744256/(((t|0)>1?t:1)|0)|0)<<16>>16;f=0;while(1){if((f|0)==5)break e;_=e+4172+(f<<1)|0;n[_>>1]=(te(n[_>>1]|0,t)|0)>>>10;f=f+1|0}}if((t|0)>15565){t=(255016960/(t|0)|0)<<16>>16;f=0;while(1){if((f|0)==5)break e;_=e+4172+(f<<1)|0;n[_>>1]=(te(n[_>>1]|0,t)|0)>>>14;f=f+1|0}}}else{s[g>>2]=(t<<16>>16)*4608;o=e+4172|0;s[o>>2]=0;s[o+4>>2]=0;n[o+8>>1]=0;o=e+2332|0}while(0);Mn(e+4182|0,y|0,s[k>>2]<<1|0)|0;n[e+4236>>1]=s[T>>2];T=s[A>>2]|0;y=P+16+(T+-2<<2)|0;k=s[y+4>>2]|0;A=e+4240|0;s[A>>2]=s[y>>2];s[A+4>>2]=k;s[e+4256>>2]=s[o>>2];s[e+4252>>2]=T;s[h>>2]=0;s[v>>2]=r[S>>0];s[E>>2]=0;qe(M|0);o=P}else if((c|0)==57){r[e+2765>>0]=s[e+4164>>2];h=s[e+2316>>2]|0;o=e+4248|0;if((h|0)!=(s[o>>2]|0)){s[e+4168>>2]=C<<7;s[e+4240>>2]=65536;s[e+4244>>2]=65536;s[e+4256>>2]=20;s[e+4252>>2]=2;s[o>>2]=h}yr(e,P,i);h=e+4160|0;s[h>>2]=(s[h>>2]|0)+1;o=P}M=s[x>>2]|0;T=(s[e+2336>>2]|0)-M|0;Tn(e+1348|0,e+1348+(M<<1)|0,T<<1|0)|0;Mn(e+1348+(T<<1)|0,i|0,s[x>>2]<<1|0)|0;Lr(e,o,i,C);if(s[h>>2]|0){Nr(e+4228|0,e+4232|0,i,C);s[e+4216>>2]=1;i=e+2324|0;i=s[i>>2]|0;i=i+-1|0;i=P+(i<<2)|0;i=s[i>>2]|0;P=e+2308|0;s[P>>2]=i;s[a>>2]=C;l=O;return 0}c=e+4216|0;e:do if(s[c>>2]|0){Nr(I,R,i,C);h=s[R>>2]|0;o=s[e+4232>>2]|0;if((h|0)<=(o|0)){if((h|0)<(o|0))s[I>>2]=s[I>>2]>>o-h}else{R=e+4228|0;s[R>>2]=s[R>>2]>>h-o}h=s[I>>2]|0;o=e+4228|0;t=s[o>>2]|0;if((h|0)>(t|0)){x=re(t|0)|0;R=t<>2]=R;x=25-x|0;h=h>>((x|0)>0?x:0);s[I>>2]=h;h=(R|0)/(((h|0)>1?h:1)|0)|0;if((h|0)<1)h=0;else{f=re(h|0)|0;o=24-f|0;t=0-o|0;do if(o)if((o|0)<0){h=h<>>(o+32|0);break}else{h=h<<32-o|h>>>o;break}while(0);I=((f&1|0)==0?46214:32768)>>>(f>>>1);h=(te(h&127,13959168)|0)>>>16;h=I+((te(I>>16,h)|0)+((te(I&65535,h)|0)>>>16))<<4}t=((65536-h|0)/(C|0)|0)<<2;o=0;while(1){if((o|0)>=(C|0))break e;I=i+(o<<1)|0;R=n[I>>1]|0;n[I>>1]=(te(h>>16,R)|0)+((te(h&65532,R)|0)>>>16);h=h+t|0;if((h|0)>65536)break e;o=o+1|0}}}while(0);s[c>>2]=0;i=e+2324|0;i=s[i>>2]|0;i=i+-1|0;i=P+(i<<2)|0;i=s[i>>2]|0;P=e+2308|0;s[P>>2]=i;s[a>>2]=C;l=O;return 0}function dr(e,t,i,f,h){e=e|0;t=t|0;i=i|0;f=f|0;h=h|0;var c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0;I=l;l=l+48|0;S=I;k=I+32|0;e:do if((f|0)==0?(s[e+2404+(i<<2)>>2]|0)==0:0){g=t+28|0;d=s[g>>2]|0;v=t+32|0;f=s[v>>2]|0;c=d>>>8;i=-1;while(1){i=i+1|0;u=te(c,a[29937+i>>0]|0)|0;if(f>>>0>=u>>>0)break;else d=u}w=f-u|0;s[v>>2]=w;f=d-u|0;s[g>>2]=f;d=t+20|0;p=t+40|0;b=t+24|0;m=t+4|0;while(1){if(f>>>0>=8388609)break e;s[d>>2]=(s[d>>2]|0)+8;f=f<<8;s[g>>2]=f;u=s[p>>2]|0;c=s[b>>2]|0;if(c>>>0<(s[m>>2]|0)>>>0){s[b>>2]=c+1;c=a[(s[t>>2]|0)+c>>0]|0}else c=0;s[p>>2]=c;R=((u<<8|c)>>>1&255|w<<8&2147483392)^255;s[v>>2]=R;w=R}}else T=3;while(0);if((T|0)==3){w=t+28|0;d=s[w>>2]|0;g=t+32|0;f=s[g>>2]|0;c=d>>>8;v=-1;while(1){u=v+1|0;i=te(c,a[29933+u>>0]|0)|0;if(f>>>0>>0){v=u;d=i}else break}m=f-i|0;s[g>>2]=m;i=d-i|0;s[w>>2]=i;u=t+20|0;d=t+40|0;p=t+24|0;b=t+4|0;while(1){if(i>>>0>=8388609)break;s[u>>2]=(s[u>>2]|0)+8;i=i<<8;s[w>>2]=i;c=s[d>>2]|0;f=s[p>>2]|0;if(f>>>0<(s[b>>2]|0)>>>0){s[p>>2]=f+1;f=a[(s[t>>2]|0)+f>>0]|0}else f=0;s[d>>2]=f;R=((c<<8|f)>>>1&255|m<<8&2147483392)^255;s[g>>2]=R;m=R}i=v+3|0}f=i>>>1;R=e+2765|0;r[R>>0]=f;r[e+2766>>0]=i&1;E=(h|0)==2;if(E){v=t+28|0;u=s[v>>2]|0;w=t+32|0;f=s[w>>2]|0;c=u>>>8;g=-1;while(1){g=g+1|0;i=te(c,a[29396+g>>0]|0)|0;if(f>>>0>=i>>>0)break;else u=i}x=f-i|0;s[w>>2]=x;i=u-i|0;s[v>>2]=i;d=t+20|0;p=t+40|0;b=t+24|0;m=t+4|0;u=x;while(1){if(i>>>0>=8388609)break;s[d>>2]=(s[d>>2]|0)+8;i=i<<8;s[v>>2]=i;c=s[p>>2]|0;f=s[b>>2]|0;if(f>>>0<(s[m>>2]|0)>>>0){s[b>>2]=f+1;f=a[(s[t>>2]|0)+f>>0]|0}else f=0;s[p>>2]=f;x=((c<<8|f)>>>1&255|u<<8&2147483392)^255;s[w>>2]=x;u=x}r[e+2736>>0]=g;y=w;x=d;_=b;M=t}else{i=f<<24>>24;v=t+28|0;d=s[v>>2]|0;y=t+32|0;f=s[y>>2]|0;c=d>>>8;w=-1;while(1){w=w+1|0;u=te(c,a[29372+(i<<3)+w>>0]|0)|0;if(f>>>0>=u>>>0)break;else d=u}x=f-u|0;s[y>>2]=x;i=d-u|0;s[v>>2]=i;g=t+20|0;p=t+40|0;_=t+24|0;m=t+4|0;u=x;while(1){if(i>>>0>=8388609)break;s[g>>2]=(s[g>>2]|0)+8;i=i<<8;s[v>>2]=i;c=s[p>>2]|0;f=s[_>>2]|0;if(f>>>0<(s[m>>2]|0)>>>0){s[_>>2]=f+1;f=a[(s[t>>2]|0)+f>>0]|0}else f=0;s[p>>2]=f;x=((c<<8|f)>>>1&255|u<<8&2147483392)^255;s[y>>2]=x;u=x}b=e+2736|0;r[b>>0]=w<<3;u=s[v>>2]|0;i=s[y>>2]|0;f=u>>>8;d=-1;while(1){d=d+1|0;c=te(f,a[29962+d>>0]|0)|0;if(i>>>0>=c>>>0)break;else u=c}x=i-c|0;s[y>>2]=x;i=u-c|0;s[v>>2]=i;u=x;while(1){if(i>>>0>=8388609)break;s[g>>2]=(s[g>>2]|0)+8;i=i<<8;s[v>>2]=i;c=s[p>>2]|0;f=s[_>>2]|0;if(f>>>0<(s[m>>2]|0)>>>0){s[_>>2]=f+1;f=a[(s[t>>2]|0)+f>>0]|0}else f=0;s[p>>2]=f;x=((c<<8|f)>>>1&255|u<<8&2147483392)^255;s[y>>2]=x;u=x}r[b>>0]=(a[b>>0]|0)+d;x=g;M=t}A=e+2324|0;d=1;while(1){if((d|0)>=(s[A>>2]|0))break;u=s[v>>2]|0;i=s[y>>2]|0;f=u>>>8;b=-1;while(1){b=b+1|0;c=te(f,a[29396+b>>0]|0)|0;if(i>>>0>=c>>>0)break;else u=c}t=i-c|0;s[y>>2]=t;i=u-c|0;s[v>>2]=i;u=t;while(1){if(i>>>0>=8388609)break;s[x>>2]=(s[x>>2]|0)+8;i=i<<8;s[v>>2]=i;c=s[p>>2]|0;f=s[_>>2]|0;if(f>>>0<(s[m>>2]|0)>>>0){s[_>>2]=f+1;f=a[(s[M>>2]|0)+f>>0]|0}else f=0;s[p>>2]=f;t=((c<<8|f)>>>1&255|u<<8&2147483392)^255;s[y>>2]=t;u=t}r[e+2736+d>>0]=b;d=d+1|0}t=e+2732|0;d=s[t>>2]|0;i=te(r[R>>0]>>1,n[d>>1]|0)|0;i=(s[d+16>>2]|0)+i|0;d=s[v>>2]|0;f=s[y>>2]|0;c=d>>>8;b=-1;while(1){b=b+1|0;u=te(c,a[i+b>>0]|0)|0;if(f>>>0>=u>>>0)break;else d=u}g=f-u|0;s[y>>2]=g;i=d-u|0;s[v>>2]=i;u=g;while(1){if(i>>>0>=8388609)break;s[x>>2]=(s[x>>2]|0)+8;i=i<<8;s[v>>2]=i;c=s[p>>2]|0;f=s[_>>2]|0;if(f>>>0<(s[m>>2]|0)>>>0){s[_>>2]=f+1;f=a[(s[M>>2]|0)+f>>0]|0}else f=0;s[p>>2]=f;g=((c<<8|f)>>>1&255|u<<8&2147483392)^255;s[y>>2]=g;u=g}r[e+2744>>0]=b;Bi(S,k,s[t>>2]|0,b<<24>>24);g=0;while(1){i=s[t>>2]|0;if((g|0)>=(n[i+2>>1]|0))break;f=(s[i+28>>2]|0)+(n[S+(g<<1)>>1]|0)|0;b=s[v>>2]|0;c=s[y>>2]|0;u=b>>>8;w=-1;while(1){i=w+1|0;d=te(u,a[f+i>>0]|0)|0;if(c>>>0>>0){w=i;b=d}else break}k=c-d|0;s[y>>2]=k;c=b-d|0;s[v>>2]=c;b=k;while(1){if(c>>>0>=8388609)break;s[x>>2]=(s[x>>2]|0)+8;c=c<<8;s[v>>2]=c;u=s[p>>2]|0;f=s[_>>2]|0;if(f>>>0<(s[m>>2]|0)>>>0){s[_>>2]=f+1;f=a[(s[M>>2]|0)+f>>0]|0}else f=0;s[p>>2]=f;k=((u<<8|f)>>>1&255|b<<8&2147483392)^255;s[y>>2]=k;b=k}switch(w|0){case-1:{u=c>>>8;d=-1;while(1){i=d+1|0;f=te(u,a[29970+i>>0]|0)|0;if(b>>>0>>0){d=i;c=f}else break}u=b-f|0;s[y>>2]=u;i=c-f|0;s[v>>2]=i;while(1){if(i>>>0>=8388609)break;s[x>>2]=(s[x>>2]|0)+8;i=i<<8;s[v>>2]=i;c=s[p>>2]|0;f=s[_>>2]|0;if(f>>>0<(s[m>>2]|0)>>>0){s[_>>2]=f+1;f=a[(s[M>>2]|0)+f>>0]|0}else f=0;s[p>>2]=f;k=((c<<8|f)>>>1&255|u<<8&2147483392)^255;s[y>>2]=k;u=k}i=~d;break}case 7:{u=c>>>8;d=-1;while(1){i=d+1|0;f=te(u,a[29970+i>>0]|0)|0;if(b>>>0>>0){d=i;c=f}else break}u=b-f|0;s[y>>2]=u;i=c-f|0;s[v>>2]=i;while(1){if(i>>>0>=8388609)break;s[x>>2]=(s[x>>2]|0)+8;i=i<<8;s[v>>2]=i;c=s[p>>2]|0;f=s[_>>2]|0;if(f>>>0<(s[m>>2]|0)>>>0){s[_>>2]=f+1;f=a[(s[M>>2]|0)+f>>0]|0}else f=0;s[p>>2]=f;k=((c<<8|f)>>>1&255|u<<8&2147483392)^255;s[y>>2]=k;u=k}i=d+9|0;break}default:{}}k=g+1|0;r[e+2744+k>>0]=i+252;g=k}if((s[A>>2]|0)==4){u=s[v>>2]|0;i=s[y>>2]|0;f=u>>>8;d=-1;while(1){d=d+1|0;c=te(f,a[29939+d>>0]|0)|0;if(i>>>0>=c>>>0)break;else u=c}S=i-c|0;s[y>>2]=S;i=u-c|0;s[v>>2]=i;u=S;while(1){if(i>>>0>=8388609)break;s[x>>2]=(s[x>>2]|0)+8;i=i<<8;s[v>>2]=i;c=s[p>>2]|0;f=s[_>>2]|0;if(f>>>0<(s[m>>2]|0)>>>0){s[_>>2]=f+1;f=a[(s[M>>2]|0)+f>>0]|0}else f=0;s[p>>2]=f;S=((c<<8|f)>>>1&255|u<<8&2147483392)^255;s[y>>2]=S;u=S}r[e+2767>>0]=d}else r[e+2767>>0]=4;do if((r[R>>0]|0)==2){if(E?(s[e+2396>>2]|0)==2:0){u=s[v>>2]|0;i=s[y>>2]|0;f=u>>>8;b=-1;while(1){d=b+1|0;c=te(f,a[30009+d>>0]|0)|0;if(i>>>0>>0){b=d;u=c}else break}S=i-c|0;s[y>>2]=S;i=u-c|0;s[v>>2]=i;u=S;while(1){if(i>>>0>=8388609)break;s[x>>2]=(s[x>>2]|0)+8;i=i<<8;s[v>>2]=i;c=s[p>>2]|0;f=s[_>>2]|0;if(f>>>0<(s[m>>2]|0)>>>0){s[_>>2]=f+1;f=a[(s[M>>2]|0)+f>>0]|0}else f=0;s[p>>2]=f;S=((c<<8|f)>>>1&255|u<<8&2147483392)^255;s[y>>2]=S;u=S}if((d&65535)<<16>>16>0){i=e+2400|0;f=(o[i>>1]|0)+(b+65528)&65535;n[e+2762>>1]=f}else T=108}else T=108;if((T|0)==108){u=s[v>>2]|0;i=s[y>>2]|0;f=u>>>8;d=-1;while(1){d=d+1|0;c=te(f,a[29977+d>>0]|0)|0;if(i>>>0>=c>>>0)break;else u=c}T=i-c|0;s[y>>2]=T;i=u-c|0;s[v>>2]=i;u=T;while(1){if(i>>>0>=8388609)break;s[x>>2]=(s[x>>2]|0)+8;i=i<<8;s[v>>2]=i;c=s[p>>2]|0;f=s[_>>2]|0;if(f>>>0<(s[m>>2]|0)>>>0){s[_>>2]=f+1;f=a[(s[M>>2]|0)+f>>0]|0}else f=0;s[p>>2]=f;T=((c<<8|f)>>>1&255|u<<8&2147483392)^255;s[y>>2]=T;u=T}w=e+2762|0;n[w>>1]=te(d<<16>>16,s[e+2316>>2]>>1)|0;i=s[e+2380>>2]|0;d=s[v>>2]|0;f=s[y>>2]|0;c=d>>>8;b=-1;while(1){b=b+1|0;u=te(c,a[i+b>>0]|0)|0;if(f>>>0>=u>>>0)break;else d=u}T=f-u|0;s[y>>2]=T;i=d-u|0;s[v>>2]=i;u=T;while(1){if(i>>>0>=8388609)break;s[x>>2]=(s[x>>2]|0)+8;i=i<<8;s[v>>2]=i;c=s[p>>2]|0;f=s[_>>2]|0;if(f>>>0<(s[m>>2]|0)>>>0){s[_>>2]=f+1;f=a[(s[M>>2]|0)+f>>0]|0}else f=0;s[p>>2]=f;T=((c<<8|f)>>>1&255|u<<8&2147483392)^255;s[y>>2]=T;u=T}f=(o[w>>1]|0)+b&65535;n[w>>1]=f;i=e+2400|0}n[i>>1]=f;i=s[e+2384>>2]|0;d=s[v>>2]|0;f=s[y>>2]|0;c=d>>>8;b=-1;while(1){b=b+1|0;u=te(c,a[i+b>>0]|0)|0;if(f>>>0>=u>>>0)break;else d=u}T=f-u|0;s[y>>2]=T;i=d-u|0;s[v>>2]=i;u=T;while(1){if(i>>>0>=8388609)break;s[x>>2]=(s[x>>2]|0)+8;i=i<<8;s[v>>2]=i;c=s[p>>2]|0;f=s[_>>2]|0;if(f>>>0<(s[m>>2]|0)>>>0){s[_>>2]=f+1;f=a[(s[M>>2]|0)+f>>0]|0}else f=0;s[p>>2]=f;T=((c<<8|f)>>>1&255|u<<8&2147483392)^255;s[y>>2]=T;u=T}r[e+2764>>0]=b;u=s[v>>2]|0;i=s[y>>2]|0;f=u>>>8;d=-1;while(1){d=d+1|0;c=te(f,a[29437+d>>0]|0)|0;if(i>>>0>=c>>>0)break;else u=c}T=i-c|0;s[y>>2]=T;i=u-c|0;s[v>>2]=i;u=T;while(1){if(i>>>0>=8388609)break;s[x>>2]=(s[x>>2]|0)+8;i=i<<8;s[v>>2]=i;c=s[p>>2]|0;f=s[_>>2]|0;if(f>>>0<(s[m>>2]|0)>>>0){s[_>>2]=f+1;f=a[(s[M>>2]|0)+f>>0]|0}else f=0;s[p>>2]=f;T=((c<<8|f)>>>1&255|u<<8&2147483392)^255;s[y>>2]=T;u=T}g=e+2768|0;r[g>>0]=d;b=0;while(1){if((b|0)>=(s[A>>2]|0))break;i=s[17376+(r[g>>0]<<2)>>2]|0;d=s[v>>2]|0;f=s[y>>2]|0;c=d>>>8;w=-1;while(1){w=w+1|0;u=te(c,a[i+w>>0]|0)|0;if(f>>>0>=u>>>0)break;else d=u}T=f-u|0;s[y>>2]=T;i=d-u|0;s[v>>2]=i;u=T;while(1){if(i>>>0>=8388609)break;s[x>>2]=(s[x>>2]|0)+8;i=i<<8;s[v>>2]=i;c=s[p>>2]|0;f=s[_>>2]|0;if(f>>>0<(s[m>>2]|0)>>>0){s[_>>2]=f+1;f=a[(s[M>>2]|0)+f>>0]|0}else f=0;s[p>>2]=f;T=((c<<8|f)>>>1&255|u<<8&2147483392)^255;s[y>>2]=T;u=T}r[e+2740+b>>0]=w;b=b+1|0}if(h|0){r[e+2769>>0]=0;break}u=s[v>>2]|0;i=s[y>>2]|0;f=u>>>8;d=-1;while(1){d=d+1|0;c=te(f,a[29930+d>>0]|0)|0;if(i>>>0>=c>>>0)break;else u=c}h=i-c|0;s[y>>2]=h;i=u-c|0;s[v>>2]=i;u=h;while(1){if(i>>>0>=8388609)break;s[x>>2]=(s[x>>2]|0)+8;i=i<<8;s[v>>2]=i;c=s[p>>2]|0;f=s[_>>2]|0;if(f>>>0<(s[m>>2]|0)>>>0){s[_>>2]=f+1;f=a[(s[M>>2]|0)+f>>0]|0}else f=0;s[p>>2]=f;h=((c<<8|f)>>>1&255|u<<8&2147483392)^255;s[y>>2]=h;u=h}r[e+2769>>0]=d}while(0);s[e+2396>>2]=r[R>>0];u=s[v>>2]|0;i=s[y>>2]|0;f=u>>>8;d=-1;while(1){d=d+1|0;c=te(f,a[29947+d>>0]|0)|0;if(i>>>0>=c>>>0)break;else u=c}h=i-c|0;s[y>>2]=h;i=u-c|0;s[v>>2]=i;u=h;while(1){if(i>>>0>=8388609)break;s[x>>2]=(s[x>>2]|0)+8;i=i<<8;s[v>>2]=i;c=s[p>>2]|0;f=s[_>>2]|0;if(f>>>0<(s[m>>2]|0)>>>0){s[_>>2]=f+1;f=a[(s[M>>2]|0)+f>>0]|0}else f=0;s[p>>2]=f;h=((c<<8|f)>>>1&255|u<<8&2147483392)^255;s[y>>2]=h;u=h}r[e+2770>>0]=d;l=I;return}function pr(e,t,i,o,f){e=e|0;t=t|0;i=i|0;o=o|0;f=f|0;var h=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0,C=0,P=0,O=0,N=0,D=0;D=l;l=l+176|0;O=D+160|0;N=D+80|0;M=D;h=i>>1;C=e+28|0;p=s[C>>2]|0;P=e+32|0;u=s[P>>2]|0;d=p>>>8;_=-1;while(1){_=_+1|0;c=te(d,a[30432+(h*9|0)+_>>0]|0)|0;if(u>>>0>=c>>>0)break;else p=c}d=u-c|0;s[P>>2]=d;h=p-c|0;s[C>>2]=h;T=e+20|0;x=e+40|0;R=e+24|0;I=e+4|0;while(1){if(h>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;h=h<<8;s[C>>2]=h;u=s[x>>2]|0;c=s[R>>2]|0;if(c>>>0<(s[I>>2]|0)>>>0){s[R>>2]=c+1;c=a[(s[e>>2]|0)+c>>0]|0}else c=0;s[x>>2]=c;S=((u<<8|c)>>>1&255|d<<8&2147483392)^255;s[P>>2]=S;d=S}S=f>>4;S=S+((S<<4|0)<(f|0)&1)|0;v=0;while(1){if((v|0)>=(S|0)){E=0;break}g=M+(v<<2)|0;s[g>>2]=0;u=h>>>8;p=-1;while(1){p=p+1|0;c=te(u,a[30090+(_*18|0)+p>>0]|0)|0;if(d>>>0>=c>>>0)break;else h=c}d=d-c|0;s[P>>2]=d;h=h-c|0;s[C>>2]=h;while(1){if(h>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;h=h<<8;s[C>>2]=h;u=s[x>>2]|0;c=s[R>>2]|0;if(c>>>0<(s[I>>2]|0)>>>0){s[R>>2]=c+1;c=a[(s[e>>2]|0)+c>>0]|0}else c=0;s[x>>2]=c;E=((u<<8|c)>>>1&255|d<<8&2147483392)^255;s[P>>2]=E;d=E}w=N+(v<<2)|0;u=0;c=p;e:while(1){s[w>>2]=c;if((c|0)!=17)break;m=u+1|0;s[g>>2]=m;p=30252+((m|0)==10&1)|0;b=h>>>8;c=-1;while(1){c=c+1|0;u=te(b,a[p+c>>0]|0)|0;if(d>>>0>=u>>>0)break;else h=u}d=d-u|0;s[P>>2]=d;h=h-u|0;s[C>>2]=h;while(1){if(h>>>0>=8388609){u=m;continue e}s[T>>2]=(s[T>>2]|0)+8;h=h<<8;s[C>>2]=h;p=s[x>>2]|0;u=s[R>>2]|0;if(u>>>0<(s[I>>2]|0)>>>0){s[R>>2]=u+1;u=a[(s[e>>2]|0)+u>>0]|0}else u=0;s[x>>2]=u;E=((p<<8|u)>>>1&255|d<<8&2147483392)^255;s[P>>2]=E;d=E}}v=v+1|0}while(1){if((E|0)>=(S|0)){g=0;break}m=s[N+(E<<2)>>2]|0;h=t+(E<<16>>12<<1)|0;if((m|0)>0){c=30924+(a[31076+m>>0]|0)|0;b=s[C>>2]|0;u=s[P>>2]|0;d=b>>>8;g=-1;while(1){g=g+1|0;p=te(d,a[c+g>>0]|0)|0;if(u>>>0>=p>>>0)break;else b=p}k=u-p|0;s[P>>2]=k;c=b-p|0;s[C>>2]=c;p=k;while(1){if(c>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;c=c<<8;s[C>>2]=c;d=s[x>>2]|0;u=s[R>>2]|0;if(u>>>0<(s[I>>2]|0)>>>0){s[R>>2]=u+1;u=a[(s[e>>2]|0)+u>>0]|0}else u=0;s[x>>2]=u;k=((d<<8|u)>>>1&255|p<<8&2147483392)^255;s[P>>2]=k;p=k}y=m-g|0;k=y&65535;w=g<<16>>16;if((g&65535)<<16>>16>0){c=30772+(a[31076+w>>0]|0)|0;b=s[C>>2]|0;u=s[P>>2]|0;d=b>>>8;m=-1;while(1){m=m+1|0;p=te(d,a[c+m>>0]|0)|0;if(u>>>0>=p>>>0)break;else b=p}_=u-p|0;s[P>>2]=_;c=b-p|0;s[C>>2]=c;p=_;while(1){if(c>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;c=c<<8;s[C>>2]=c;d=s[x>>2]|0;u=s[R>>2]|0;if(u>>>0<(s[I>>2]|0)>>>0){s[R>>2]=u+1;u=a[(s[e>>2]|0)+u>>0]|0}else u=0;s[x>>2]=u;_=((d<<8|u)>>>1&255|p<<8&2147483392)^255;s[P>>2]=_;p=_}_=m&65535;c=w-m&65535;w=_<<16>>16;if(_<<16>>16>0){u=30620+(a[31076+w>>0]|0)|0;m=s[C>>2]|0;d=s[P>>2]|0;p=m>>>8;g=-1;while(1){g=g+1|0;b=te(p,a[u+g>>0]|0)|0;if(d>>>0>=b>>>0)break;else m=b}_=d-b|0;s[P>>2]=_;u=m-b|0;s[C>>2]=u;b=_;while(1){if(u>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;u=u<<8;s[C>>2]=u;p=s[x>>2]|0;d=s[R>>2]|0;if(d>>>0<(s[I>>2]|0)>>>0){s[R>>2]=d+1;d=a[(s[e>>2]|0)+d>>0]|0}else d=0;s[x>>2]=d;_=((p<<8|d)>>>1&255|b<<8&2147483392)^255;s[P>>2]=_;b=_}v=g&65535;_=w-g&65535;u=h+2|0;g=v<<16>>16;if(v<<16>>16>0){d=30468+(a[31076+g>>0]|0)|0;w=s[C>>2]|0;p=s[P>>2]|0;b=w>>>8;v=-1;while(1){v=v+1|0;m=te(b,a[d+v>>0]|0)|0;if(p>>>0>=m>>>0)break;else w=m}b=p-m|0;s[P>>2]=b;d=w-m|0;s[C>>2]=d;m=b;while(1){if(d>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;d=d<<8;s[C>>2]=d;b=s[x>>2]|0;p=s[R>>2]|0;if(p>>>0<(s[I>>2]|0)>>>0){s[R>>2]=p+1;p=a[(s[e>>2]|0)+p>>0]|0}else p=0;s[x>>2]=p;w=((b<<8|p)>>>1&255|m<<8&2147483392)^255;s[P>>2]=w;m=w}n[h>>1]=v;p=g-v&65535;d=_;_=c}else{d=_;A=62}}else A=52}else{c=0;A=52}if((A|0)==52){u=h+2|0;d=0;A=62}if((A|0)==62){A=0;n[h>>1]=0;p=0;_=c}n[u>>1]=p;w=h+4|0;v=h+6|0;g=d<<16>>16;if(d<<16>>16>0){c=30468+(a[31076+g>>0]|0)|0;b=s[C>>2]|0;u=s[P>>2]|0;d=b>>>8;m=-1;while(1){m=m+1|0;p=te(d,a[c+m>>0]|0)|0;if(u>>>0>=p>>>0)break;else b=p}d=u-p|0;s[P>>2]=d;c=b-p|0;s[C>>2]=c;p=d;while(1){if(c>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;c=c<<8;s[C>>2]=c;d=s[x>>2]|0;u=s[R>>2]|0;if(u>>>0<(s[I>>2]|0)>>>0){s[R>>2]=u+1;u=a[(s[e>>2]|0)+u>>0]|0}else u=0;s[x>>2]=u;b=((d<<8|u)>>>1&255|p<<8&2147483392)^255;s[P>>2]=b;p=b}n[w>>1]=m;c=g-m&65535}else{n[w>>1]=0;c=0}n[v>>1]=c;w=_<<16>>16;if(_<<16>>16>0){c=30620+(a[31076+w>>0]|0)|0;b=s[C>>2]|0;u=s[P>>2]|0;d=b>>>8;m=-1;while(1){m=m+1|0;p=te(d,a[c+m>>0]|0)|0;if(u>>>0>=p>>>0)break;else b=p}_=u-p|0;s[P>>2]=_;c=b-p|0;s[C>>2]=c;p=_;while(1){if(c>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;c=c<<8;s[C>>2]=c;d=s[x>>2]|0;u=s[R>>2]|0;if(u>>>0<(s[I>>2]|0)>>>0){s[R>>2]=u+1;u=a[(s[e>>2]|0)+u>>0]|0}else u=0;s[x>>2]=u;_=((d<<8|u)>>>1&255|p<<8&2147483392)^255;s[P>>2]=_;p=_}_=m&65535;d=w-m&65535;u=h+8|0;c=h+10|0;v=_<<16>>16;if(_<<16>>16>0){p=30468+(a[31076+v>>0]|0)|0;g=s[C>>2]|0;b=s[P>>2]|0;m=g>>>8;_=-1;while(1){_=_+1|0;w=te(m,a[p+_>>0]|0)|0;if(b>>>0>=w>>>0)break;else g=w}m=b-w|0;s[P>>2]=m;p=g-w|0;s[C>>2]=p;w=m;while(1){if(p>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;p=p<<8;s[C>>2]=p;m=s[x>>2]|0;b=s[R>>2]|0;if(b>>>0<(s[I>>2]|0)>>>0){s[R>>2]=b+1;b=a[(s[e>>2]|0)+b>>0]|0}else b=0;s[x>>2]=b;g=((m<<8|b)>>>1&255|w<<8&2147483392)^255;s[P>>2]=g;w=g}n[u>>1]=_;u=v-_&65535}else A=91}else{u=h+8|0;c=h+10|0;d=0;A=91}if((A|0)==91){A=0;n[u>>1]=0;u=0}n[c>>1]=u;w=h+12|0;v=h+14|0;g=d<<16>>16;if(d<<16>>16>0){c=30468+(a[31076+g>>0]|0)|0;b=s[C>>2]|0;u=s[P>>2]|0;d=b>>>8;m=-1;while(1){m=m+1|0;p=te(d,a[c+m>>0]|0)|0;if(u>>>0>=p>>>0)break;else b=p}_=u-p|0;s[P>>2]=_;c=b-p|0;s[C>>2]=c;p=_;while(1){if(c>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;c=c<<8;s[C>>2]=c;d=s[x>>2]|0;u=s[R>>2]|0;if(u>>>0<(s[I>>2]|0)>>>0){s[R>>2]=u+1;u=a[(s[e>>2]|0)+u>>0]|0}else u=0;s[x>>2]=u;_=((d<<8|u)>>>1&255|p<<8&2147483392)^255;s[P>>2]=_;p=_}n[w>>1]=m;c=g-m&65535}else{n[w>>1]=0;c=0}n[v>>1]=c;w=y<<16>>16;if(k<<16>>16>0){c=30772+(a[31076+w>>0]|0)|0;b=s[C>>2]|0;u=s[P>>2]|0;d=b>>>8;m=-1;while(1){m=m+1|0;p=te(d,a[c+m>>0]|0)|0;if(u>>>0>=p>>>0)break;else b=p}k=u-p|0;s[P>>2]=k;c=b-p|0;s[C>>2]=c;p=k;while(1){if(c>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;c=c<<8;s[C>>2]=c;d=s[x>>2]|0;u=s[R>>2]|0;if(u>>>0<(s[I>>2]|0)>>>0){s[R>>2]=u+1;u=a[(s[e>>2]|0)+u>>0]|0}else u=0;s[x>>2]=u;k=((d<<8|u)>>>1&255|p<<8&2147483392)^255;s[P>>2]=k;p=k}k=m&65535;c=w-m&65535;w=k<<16>>16;if(k<<16>>16>0){u=30620+(a[31076+w>>0]|0)|0;m=s[C>>2]|0;d=s[P>>2]|0;p=m>>>8;g=-1;while(1){g=g+1|0;b=te(p,a[u+g>>0]|0)|0;if(d>>>0>=b>>>0)break;else m=b}k=d-b|0;s[P>>2]=k;u=m-b|0;s[C>>2]=u;b=k;while(1){if(u>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;u=u<<8;s[C>>2]=u;p=s[x>>2]|0;d=s[R>>2]|0;if(d>>>0<(s[I>>2]|0)>>>0){s[R>>2]=d+1;d=a[(s[e>>2]|0)+d>>0]|0}else d=0;s[x>>2]=d;k=((p<<8|d)>>>1&255|b<<8&2147483392)^255;s[P>>2]=k;b=k}k=g&65535;p=w-g&65535;v=h+16|0;u=h+18|0;_=k<<16>>16;if(k<<16>>16>0){d=30468+(a[31076+_>>0]|0)|0;g=s[C>>2]|0;b=s[P>>2]|0;m=g>>>8;y=-1;while(1){y=y+1|0;w=te(m,a[d+y>>0]|0)|0;if(b>>>0>=w>>>0)break;else g=w}k=b-w|0;s[P>>2]=k;d=g-w|0;s[C>>2]=d;w=k;while(1){if(d>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;d=d<<8;s[C>>2]=d;m=s[x>>2]|0;b=s[R>>2]|0;if(b>>>0<(s[I>>2]|0)>>>0){s[R>>2]=b+1;b=a[(s[e>>2]|0)+b>>0]|0}else b=0;s[x>>2]=b;k=((m<<8|b)>>>1&255|w<<8&2147483392)^255;s[P>>2]=k;w=k}n[v>>1]=y;d=_-y&65535;_=c}else{d=v;A=128}}else A=118}else{c=0;A=118}if((A|0)==118){d=h+16|0;u=h+18|0;p=0;A=128}if((A|0)==128){A=0;n[d>>1]=0;d=0;_=c}n[u>>1]=d;w=h+20|0;v=h+22|0;g=p<<16>>16;if(p<<16>>16>0){c=30468+(a[31076+g>>0]|0)|0;b=s[C>>2]|0;u=s[P>>2]|0;d=b>>>8;m=-1;while(1){m=m+1|0;p=te(d,a[c+m>>0]|0)|0;if(u>>>0>=p>>>0)break;else b=p}k=u-p|0;s[P>>2]=k;c=b-p|0;s[C>>2]=c;p=k;while(1){if(c>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;c=c<<8;s[C>>2]=c;d=s[x>>2]|0;u=s[R>>2]|0;if(u>>>0<(s[I>>2]|0)>>>0){s[R>>2]=u+1;u=a[(s[e>>2]|0)+u>>0]|0}else u=0;s[x>>2]=u;k=((d<<8|u)>>>1&255|p<<8&2147483392)^255;s[P>>2]=k;p=k}n[w>>1]=m;c=g-m&65535}else{n[w>>1]=0;c=0}n[v>>1]=c;w=_<<16>>16;if(_<<16>>16>0){c=30620+(a[31076+w>>0]|0)|0;b=s[C>>2]|0;u=s[P>>2]|0;d=b>>>8;m=-1;while(1){m=m+1|0;p=te(d,a[c+m>>0]|0)|0;if(u>>>0>=p>>>0)break;else b=p}k=u-p|0;s[P>>2]=k;c=b-p|0;s[C>>2]=c;p=k;while(1){if(c>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;c=c<<8;s[C>>2]=c;d=s[x>>2]|0;u=s[R>>2]|0;if(u>>>0<(s[I>>2]|0)>>>0){s[R>>2]=u+1;u=a[(s[e>>2]|0)+u>>0]|0}else u=0;s[x>>2]=u;k=((d<<8|u)>>>1&255|p<<8&2147483392)^255;s[P>>2]=k;p=k}k=m&65535;d=w-m&65535;u=h+24|0;c=h+26|0;v=k<<16>>16;if(k<<16>>16>0){p=30468+(a[31076+v>>0]|0)|0;g=s[C>>2]|0;b=s[P>>2]|0;m=g>>>8;_=-1;while(1){_=_+1|0;w=te(m,a[p+_>>0]|0)|0;if(b>>>0>=w>>>0)break;else g=w}k=b-w|0;s[P>>2]=k;p=g-w|0;s[C>>2]=p;w=k;while(1){if(p>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;p=p<<8;s[C>>2]=p;m=s[x>>2]|0;b=s[R>>2]|0;if(b>>>0<(s[I>>2]|0)>>>0){s[R>>2]=b+1;b=a[(s[e>>2]|0)+b>>0]|0}else b=0;s[x>>2]=b;k=((m<<8|b)>>>1&255|w<<8&2147483392)^255;s[P>>2]=k;w=k}n[u>>1]=_;u=v-_&65535}else A=157}else{u=h+24|0;c=h+26|0;d=0;A=157}if((A|0)==157){A=0;n[u>>1]=0;u=0}n[c>>1]=u;w=h+28|0;g=h+30|0;m=d<<16>>16;if(d<<16>>16>0){h=30468+(a[31076+m>>0]|0)|0;p=s[C>>2]|0;c=s[P>>2]|0;u=p>>>8;b=-1;while(1){b=b+1|0;d=te(u,a[h+b>>0]|0)|0;if(c>>>0>=d>>>0)break;else p=d}k=c-d|0;s[P>>2]=k;h=p-d|0;s[C>>2]=h;d=k;while(1){if(h>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;h=h<<8;s[C>>2]=h;u=s[x>>2]|0;c=s[R>>2]|0;if(c>>>0<(s[I>>2]|0)>>>0){s[R>>2]=c+1;c=a[(s[e>>2]|0)+c>>0]|0}else c=0;s[x>>2]=c;k=((u<<8|c)>>>1&255|d<<8&2147483392)^255;s[P>>2]=k;d=k}n[w>>1]=b;h=m-b&65535}else{n[w>>1]=0;h=0}n[g>>1]=h}else{c=h+32|0;do{n[h>>1]=0;h=h+2|0}while((h|0)<(c|0))}E=E+1|0}while(1){if((g|0)>=(S|0))break;p=s[M+(g<<2)>>2]|0;if((p|0)>0){b=t+(g<<16>>12<<1)|0;_=0;while(1){if((_|0)==16)break;m=b+(_<<1)|0;w=n[m>>1]|0;v=0;while(1){if((v|0)==(p|0))break;d=s[C>>2]|0;h=s[P>>2]|0;c=d>>>8;y=-1;while(1){y=y+1|0;u=te(c,a[29928+y>>0]|0)|0;if(h>>>0>=u>>>0)break;else d=u}A=h-u|0;s[P>>2]=A;h=d-u|0;s[C>>2]=h;d=A;while(1){if(h>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;h=h<<8;s[C>>2]=h;u=s[x>>2]|0;c=s[R>>2]|0;if(c>>>0<(s[I>>2]|0)>>>0){s[R>>2]=c+1;c=a[(s[e>>2]|0)+c>>0]|0}else c=0;s[x>>2]=c;A=((u<<8|c)>>>1&255|d<<8&2147483392)^255;s[P>>2]=A;d=A}w=(w<<1)+y|0;v=v+1|0}n[m>>1]=w;_=_+1|0}A=N+(g<<2)|0;s[A>>2]=s[A>>2]|p<<5}g=g+1|0}r[O+1>>0]=0;v=31093+(((i<<1)+o<<16>>16)*7|0)|0;w=f+8>>4;g=0;while(1){if((g|0)>=(w|0))break;h=s[N+(g<<2)>>2]|0;e:do if((h|0)>0){r[O>>0]=r[v+((h&30)>>>0<6?h&31:6)>>0]|0;b=0;while(1){if((b|0)==16)break e;p=t+(b<<1)|0;if((n[p>>1]|0)>0){d=s[C>>2]|0;h=s[P>>2]|0;c=d>>>8;m=-1;while(1){m=m+1|0;u=te(c,a[O+m>>0]|0)|0;if(h>>>0>=u>>>0)break;else d=u}f=h-u|0;s[P>>2]=f;h=d-u|0;s[C>>2]=h;d=f;while(1){if(h>>>0>=8388609)break;s[T>>2]=(s[T>>2]|0)+8;h=h<<8;s[C>>2]=h;u=s[x>>2]|0;c=s[R>>2]|0;if(c>>>0<(s[I>>2]|0)>>>0){s[R>>2]=c+1;c=a[(s[e>>2]|0)+c>>0]|0}else c=0;s[x>>2]=c;f=((u<<8|c)>>>1&255|d<<8&2147483392)^255;s[P>>2]=f;d=f}n[p>>1]=te(n[p>>1]|0,(m<<1)+-1|0)|0}b=b+1|0}}while(0);g=g+1|0;t=t+32|0}l=D;return}function br(e,t,i,n,o){e=e|0;t=t|0;i=i|0;n=n|0;o=o|0;var f=0,h=0,c=0,l=0,u=0,d=0;d=0;while(1){if((d|0)>=(o|0))break;u=t+(d<<2)|0;f=s[u>>2]|0;l=re(f|0)|0;h=24-l|0;c=0-h|0;do if(h)if((h|0)<0){f=f<>>(h+32|0);break}else{f=f<<32-h|f>>>h;break}while(0);c=f&127;c=(((c+(((te(c,128-c|0)|0)*179|0)>>>16)+(31-l<<7)<<16)+-136970240>>16)*2251|0)>>>16;f=c&255;l=e+d|0;r[l>>0]=f;if((c<<24>>24|0)<(r[i>>0]|0)){f=f+1<<24>>24;r[l>>0]=f}if(f<<24>>24>63)f=63;else f=(f<<24>>24>0?f:0)<<24>>24;r[l>>0]=f;if(!(d|n)){f=(r[i>>0]|0)+-4|0;h=r[e>>0]|0;if((f|0)>63){if((h<<24>>24|0)<=(f|0))f=(h<<24>>24>63?h:63)<<24>>24}else if(h<<24>>24>63)f=63;else{l=h<<24>>24;f=(l|0)<(f|0)?f:l}f=f&255;r[e>>0]=f;r[i>>0]=f}else{h=(f&255)-(a[i>>0]|0)|0;f=h&255;r[l>>0]=f;c=(r[i>>0]|0)+8|0;h=h<<24>>24;if((h|0)>(c|0)){f=c+((h-c+1|0)>>>1)&255;r[l>>0]=f}if(f<<24>>24>36)f=36;else f=(f<<24>>24>-4?f:-4)<<24>>24;r[l>>0]=f;if((f|0)>(c|0))f=(r[i>>0]|0)+((f<<1)-c)|0;else f=(a[i>>0]|0)+(f&255)|0;r[i>>0]=f;r[l>>0]=(a[l>>0]|0)+4;f=r[i>>0]|0}f=f<<24>>24;f=(f*29|0)+(f*7281>>16)|0;c=f+2090|0;if((c|0)<3967)if((f|0)<-2090)f=0;else{f=c>>7;l=1<>16)<>7;else f=te(l>>7,h+((te(te(h,128-h|0)|0,-174)|0)>>16)|0)|0;f=l+f|0}else f=2147483647;s[u>>2]=f;d=d+1|0}return}function mr(e,t,i,n,a){e=e|0;t=t|0;i=i|0;n=n|0;a=a|0;var o=0,f=0,h=0,c=0,l=0;l=0;while(1){if((l|0)>=(a|0))break;do if(l|n){o=(r[t+l>>0]|0)+-4|0;f=r[i>>0]|0;h=f<<24>>24;c=h+8|0;if((o|0)>(c|0)){f=h+((o<<1)-c)|0;break}else{f=(f&255)+o|0;break}}else{c=r[t>>0]|0;f=(r[i>>0]|0)+-16|0;f=(c|0)>(f|0)?c:f}while(0);o=f&255;r[i>>0]=o;if(o<<24>>24<=63)if(o<<24>>24<0)o=0;else o=f<<24>>24;else o=63;r[i>>0]=o;o=(o*29|0)+(o*7281>>16)|0;h=o+2090|0;if((h|0)<3967)if((o|0)<-2090)o=0;else{o=h>>7;c=1<>16)<>7;else o=te(c>>7,f+((te(te(f,128-f|0)|0,-174)|0)>>16)|0)|0;o=c+o|0}else o=2147483647;s[e+(l<<2)>>2]=o;l=l+1|0}return}function wr(e,t,i){e=e|0;t=t|0;i=i|0;var o=0,f=0,h=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0;v=l;l=l+80|0;m=v+64|0;g=v;Bi(v+32|0,m,i,r[t>>0]|0);u=t+1|0;d=n[i+4>>1]|0;w=i+2|0;o=n[w>>1]|0;p=o<<16>>16;f=p;h=0;while(1){b=f+-1|0;if((f|0)<=0)break;c=(te(h<<16>>16,a[m+b>>0]|0)|0)>>8;f=r[u+b>>0]|0;h=f<<24>>24<<10;if(f<<24>>24>0)f=h+-102|0;else f=f<<24>>24<0?h|102:h;h=c+((te(f>>16,d)|0)+((te(f&65535,d)|0)>>16))|0;n[g+(b<<1)>>1]=h;f=b}c=te(r[t>>0]|0,p)|0;h=(s[i+8>>2]|0)+c|0;c=(s[i+12>>2]|0)+(c<<1)|0;f=0;while(1){o=o<<16>>16;if((f|0)>=(o|0))break;o=((n[g+(f<<1)>>1]<<14|0)/(n[c+(f<<1)>>1]|0)|0)+(a[h+f>>0]<<7)|0;n[e+(f<<1)>>1]=(o|0)>32767?32767:((o|0)<0?0:o)&65535;o=n[w>>1]|0;f=f+1|0}Ir(e,s[i+36>>2]|0,o);l=v;return}function gr(e,t,i,a,o,f,h,c,u,d,p,b,m,w,g){e=e|0;t=t|0;i=i|0;a=a|0;o=o|0;f=f|0;h=h|0;c=c|0;u=u|0;d=d|0;p=p|0;b=b|0;m=m|0;w=w|0;g=g|0;var v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,q=0,H=0,G=0,V=0,W=0,K=0,Y=0,Z=0,$=0,X=0,J=0,Q=0,ee=0,ie=0,ne=0,se=0,ae=0,oe=0,fe=0,he=0,ce=0,le=0,ue=0,de=0,pe=0,be=0,me=0,we=0,ge=0,ve=0,_e=0,ye=0,ke=0,Ee=0,Ae=0,Se=0,Me=0,Te=0,xe=0,Re=0,Ie=0,Ce=0,Pe=0,Oe=0,Ne=0,De=0,Le=0,Be=0,Ue=0,je=0,Fe=0,ze=0,qe=0,He=0,Ge=0,Ve=0,We=0,Ke=0,Ye=0,Ze=0,$e=0,Xe=0,Je=0,Qe=0,et=0,tt=0;et=l;Xe=t+4436|0;s[Xe>>2]=r[i+34>>0];Je=t+4424|0;ge=s[Je>>2]|0;Ye=n[i+30>>1]|0;De=i+29|0;Le=n[25404+(r[De>>0]>>1<<2)+((Ye&65535)<<24>>24<<1)>>1]|0;Ye=(Ye&-256)<<16>>16!=1024&1;Be=e+4684|0;we=s[Be>>2]|0;Ue=e+4676|0;ze=we+(s[Ue>>2]|0)|0;je=l;l=l+((1*(ze<<2)|0)+15&-16)|0;Fe=l;l=l+((1*(ze<<1)|0)+15&-16)|0;ze=e+4680|0;qe=l;l=l+((1*(s[ze>>2]<<2)|0)+15&-16)|0;He=t+4432|0;s[He>>2]=we; +we=s[Be>>2]|0;Ge=t+4428|0;s[Ge>>2]=we;Ve=e+4672|0;We=Ye^1;Ke=t+4444|0;Ye=Ye<<1^3;Ze=e+4732|0;$e=t+4440|0;Te=e+4728|0;xe=t+3996|0;Re=t+4420|0;Ie=t+4320|0;Ce=t+4416|0;Pe=(w|0)>2048;Ne=(w|0)/2|0;Oe=Ne+-512|0;Ne=512-Ne|0;_e=w<<16>>16;ye=Le+944|0;ke=te(Le,_e)|0;Ee=te(ye<<16>>16,_e)|0;Ae=Le+-944|0;Se=te(944-Le<<16>>16,_e)|0;Me=t+3840|0;ve=g<<16>>16;e=we;we=0;w=ge;ge=t+(s[Be>>2]<<1)|0;while(1){i=s[Ve>>2]|0;if((we|0)>=(i|0))break;pe=f+((we>>1|We)<<4<<1)|0;be=h+(we*5<<1)|0;me=c+(we*24<<1)|0;x=s[u+(we<<2)>>2]|0;T=x>>2;x=T|x<<15;s[Ke>>2]=0;i=r[De>>0]|0;g=m+(we<<2)|0;if(i<<24>>24==2){i=s[g>>2]|0;if(!(we&Ye)){S=s[Be>>2]|0;e=s[Ze>>2]|0;k=S-i-e+-2|0;Tr(Fe+(k<<1)|0,t+(k+(te(we,s[ze>>2]|0)|0)<<1)|0,pe,S-k|0,e);s[Ke>>2]=1;e=s[Be>>2]|0;s[Ge>>2]=e;k=1;S=r[De>>0]|0;w=i}else{k=0;S=2;w=i}}else{k=0;S=i}A=s[g>>2]|0;M=b+(we<<2)|0;E=s[M>>2]|0;g=(E|0)>1;i=re((g?E:1)|0)|0;g=(g?E:1)<>16;_=536870911/(le|0)|0;ue=_<<16;de=ue>>16;g=536870912-((te(le,de)|0)+((te(g&65535,de)|0)>>16))<<3;_=ue+((te(g>>16,de)|0)+((te(g&65528,de)|0)>>16))+(te(g,(_>>15)+1>>1)|0)|0;i=62-i|0;g=i+-47|0;if((g|0)<1){v=47-i|0;i=-2147483648>>v;g=2147483647>>>v;if((i|0)>(g|0)){if((_|0)<=(i|0))i=(_|0)<(g|0)?g:_}else if((_|0)>(g|0))i=g;else i=(_|0)<(i|0)?i:_;i=i<>g:0;v=(i>>4)+1|0;g=v>>>1<<16>>16;v=(v>>16)+1>>1;y=s[ze>>2]|0;_=0;while(1){if((_|0)>=(y|0))break;ue=n[a+(_<<1)>>1]|0;de=ue<<16>>16;s[qe+(_<<2)>>2]=(te(de>>16,g)|0)+((te(ue&65535,g)|0)>>16)+(te(de,v)|0);_=_+1|0}e:do if(k|0){if(!we)i=(te(i>>16,ve)|0)+((te(i&65535,ve)|0)>>16)<<2;v=i>>16;i=i&65535;g=e-A+-2|0;while(1){if((g|0)>=(e|0))break e;de=n[Fe+(g<<1)>>1]|0;s[je+(g<<2)>>2]=(te(v,de)|0)+((te(i,de)|0)>>16);g=g+1|0}}while(0);g=s[$e>>2]|0;if((E|0)==(g|0))i=S;else{if((g|0)<=0)if(!g)v=32;else{i=0-g|0;Qe=26}else{i=g;Qe=26}if((Qe|0)==26){Qe=0;v=re(i|0)|0}e=g<>16|0)|0)<<16>>16;de=(te(e>>16,_)|0)+((te(e&65535,_)|0)>>16)|0;ue=Nn(ue|0,((ue|0)<0)<<31>>31|0,de|0,((de|0)<0)<<31>>31|0)|0;ue=Sn(ue|0,C|0,29)|0;e=e-(ue&-8)|0;_=de+((te(e>>16,_)|0)+((te(e&65535,_)|0)>>16))|0;i=v+28-i|0;e=i+-16|0;if((i|0)<16){g=16-i|0;i=-2147483648>>g;e=2147483647>>>g;if((i|0)>(e|0)){if((_|0)<=(i|0))i=(_|0)<(e|0)?e:_}else if((_|0)>(e|0))i=e;else i=(_|0)<(i|0)?i:_;g=i<>e:0;e=s[He>>2]|0;v=g>>16;_=g&65535;i=e;e=e-(s[Be>>2]|0)|0;while(1){if((e|0)>=(i|0))break;i=t+1280+(e<<2)|0;de=s[i>>2]|0;ue=de<<16>>16;s[i>>2]=(te(v,ue)|0)+((te(_,ue)|0)>>16)+(te(g,(de>>15)+1>>1)|0);i=s[He>>2]|0;e=e+1|0}e:do if(S<<24>>24==2?(s[Ke>>2]|0)==0:0){e=s[Ge>>2]|0;i=e-A+-2|0;while(1){if((i|0)>=(e|0))break e;de=je+(i<<2)|0;ue=s[de>>2]|0;le=ue<<16>>16;s[de>>2]=(te(v,le)|0)+((te(_,le)|0)>>16)+(te(g,(ue>>15)+1>>1)|0);i=i+1|0}}while(0);i=s[Ce>>2]|0;de=i<<16>>16;s[Ce>>2]=(te(v,de)|0)+((te(_,de)|0)>>16)+(te(g,(i>>15)+1>>1)|0);i=s[Re>>2]|0;de=i<<16>>16;s[Re>>2]=(te(v,de)|0)+((te(_,de)|0)>>16)+(te(g,(i>>15)+1>>1)|0);i=0;while(1){if((i|0)==40){i=0;break}de=t+3840+(i<<2)|0;ue=s[de>>2]|0;le=ue<<16>>16;s[de>>2]=(te(v,le)|0)+((te(_,le)|0)>>16)+(te(g,(ue>>15)+1>>1)|0);i=i+1|0}while(1){if((i|0)==24)break;de=t+4320+(i<<2)|0;ue=s[de>>2]|0;le=ue<<16>>16;s[de>>2]=(te(v,le)|0)+((te(_,le)|0)>>16)+(te(g,(ue>>15)+1>>1)|0);i=i+1|0}s[$e>>2]=s[M>>2];e=s[Ge>>2]|0;E=s[M>>2]|0;i=r[De>>0]|0;y=s[ze>>2]|0}W=s[p+(we<<2)>>2]|0;Y=s[Te>>2]|0;oe=s[Ze>>2]|0;Z=oe>>1;$=pe+2|0;X=pe+4|0;J=pe+6|0;Q=pe+8|0;ee=pe+10|0;ie=pe+12|0;ne=pe+14|0;se=pe+16|0;ae=pe+18|0;oe=(oe|0)==16;fe=pe+20|0;he=pe+22|0;ce=pe+24|0;le=pe+26|0;ue=pe+28|0;de=pe+30|0;L=i<<24>>24==2;B=be+2|0;U=be+4|0;j=be+6|0;F=be+8|0;z=Y>>1;H=Y+-1|0;q=t+4320+(H<<2)|0;H=me+(H<<1)|0;G=s[d+(we<<2)>>2]<<16>>16;V=W<<16>>16;W=W>>16;K=(w|0)>0;D=T<<16>>16;O=x>>16;N=E>>>6<<16>>16;I=(E>>21)+1>>1;i=e;P=0;e=je+(e-w+2<<2)|0;R=xe;_=t+1280+((s[He>>2]|0)-w+1<<2)|0;while(1){if((P|0)>=(y|0))break;s[Xe>>2]=(te(s[Xe>>2]|0,196314165)|0)+907633515;x=s[R>>2]|0;T=n[pe>>1]|0;T=Z+((te(x>>16,T)|0)+((te(x&65535,T)|0)>>16))|0;x=s[R+-4>>2]|0;i=n[$>>1]|0;i=T+((te(x>>16,i)|0)+((te(x&65535,i)|0)>>16))|0;x=s[R+-8>>2]|0;T=n[X>>1]|0;T=i+((te(x>>16,T)|0)+((te(x&65535,T)|0)>>16))|0;x=s[R+-12>>2]|0;i=n[J>>1]|0;i=T+((te(x>>16,i)|0)+((te(x&65535,i)|0)>>16))|0;x=s[R+-16>>2]|0;T=n[Q>>1]|0;T=i+((te(x>>16,T)|0)+((te(x&65535,T)|0)>>16))|0;x=s[R+-20>>2]|0;i=n[ee>>1]|0;i=T+((te(x>>16,i)|0)+((te(x&65535,i)|0)>>16))|0;x=s[R+-24>>2]|0;T=n[ie>>1]|0;T=i+((te(x>>16,T)|0)+((te(x&65535,T)|0)>>16))|0;x=s[R+-28>>2]|0;i=n[ne>>1]|0;i=T+((te(x>>16,i)|0)+((te(x&65535,i)|0)>>16))|0;x=s[R+-32>>2]|0;T=n[se>>1]|0;T=i+((te(x>>16,T)|0)+((te(x&65535,T)|0)>>16))|0;x=s[R+-36>>2]|0;i=n[ae>>1]|0;i=T+((te(x>>16,i)|0)+((te(x&65535,i)|0)>>16))|0;if(oe){x=s[R+-40>>2]|0;T=n[fe>>1]|0;T=i+((te(x>>16,T)|0)+((te(x&65535,T)|0)>>16))|0;x=s[R+-44>>2]|0;i=n[he>>1]|0;i=T+((te(x>>16,i)|0)+((te(x&65535,i)|0)>>16))|0;x=s[R+-48>>2]|0;T=n[ce>>1]|0;T=i+((te(x>>16,T)|0)+((te(x&65535,T)|0)>>16))|0;x=s[R+-52>>2]|0;i=n[le>>1]|0;i=T+((te(x>>16,i)|0)+((te(x&65535,i)|0)>>16))|0;x=s[R+-56>>2]|0;T=n[ue>>1]|0;T=i+((te(x>>16,T)|0)+((te(x&65535,T)|0)>>16))|0;x=s[R+-60>>2]|0;i=n[de>>1]|0;i=T+((te(x>>16,i)|0)+((te(x&65535,i)|0)>>16))|0}if(L){x=s[e>>2]|0;T=n[be>>1]|0;T=(te(x>>16,T)|0)+((te(x&65535,T)|0)>>16)+2|0;x=s[e+-4>>2]|0;M=n[B>>1]|0;M=T+((te(x>>16,M)|0)+((te(x&65535,M)|0)>>16))|0;x=s[e+-8>>2]|0;T=n[U>>1]|0;T=M+((te(x>>16,T)|0)+((te(x&65535,T)|0)>>16))|0;x=s[e+-12>>2]|0;M=n[j>>1]|0;M=T+((te(x>>16,M)|0)+((te(x&65535,M)|0)>>16))|0;x=s[e+-16>>2]|0;T=n[F>>1]|0;T=M+((te(x>>16,T)|0)+((te(x&65535,T)|0)>>16))|0;x=e+4|0}else{T=0;x=e}M=s[Re>>2]|0;v=s[Ie>>2]|0;s[Ie>>2]=M;g=n[me>>1]|0;e=2;g=z+((te(M>>16,g)|0)+((te(M&65535,g)|0)>>16))|0;while(1){if((e|0)>=(Y|0))break;E=e+-1|0;S=t+4320+(E<<2)|0;A=s[S>>2]|0;s[S>>2]=v;E=n[me+(E<<1)>>1]|0;S=t+4320+(e<<2)|0;M=s[S>>2]|0;s[S>>2]=A;E=E<<16>>16;S=n[me+(e<<1)>>1]|0;e=e+2|0;g=g+((te(v>>16,E)|0)+((te(v&65535,E)|0)>>16))+((te(A>>16,S)|0)+((te(A&65535,S)|0)>>16))|0;v=M}s[q>>2]=v;A=n[H>>1]|0;A=g+((te(v>>16,A)|0)+((te(v&65535,A)|0)>>16))<<1;S=s[Ce>>2]|0;e=S>>16;S=S&65535;A=A+((te(e,G)|0)+((te(S,G)|0)>>16))|0;M=s[t+1280+((s[He>>2]|0)+-1<<2)>>2]|0;S=(te(M>>16,V)|0)+((te(M&65535,V)|0)>>16)+(te(e,W)|0)+((te(S,W)|0)>>16)|0;e=(i<<2)-A-S|0;if(K){k=(s[_>>2]|0)+(s[_+-8>>2]|0)|0;k=(te(k>>16,D)|0)+((te(k&65535,D)|0)>>16)|0;E=s[_+-4>>2]|0;M=_+4|0;e=T-(k+(te(E>>16,O)|0)+((te(E&65535,O)|0)>>16)<<1)+(e<<1)>>2}else{M=_;e=e>>1}E=qe+(P<<2)|0;k=(s[E>>2]|0)-(e+1>>1)|0;k=(s[Xe>>2]|0)<0?0-k|0:k;k=(k|0)>30720?30720:(k|0)<-31744?-31744:k;e=k-Le|0;do if(Pe){if((e|0)>(Oe|0)){e=e-Oe|0;Qe=70;break}if((e|0)>=(Ne|0))if((e|0)<0){Qe=73;break}else{e=Le;g=ye;v=ke;_=Ee;break}else{e=e+Oe|0;Qe=70;break}}else Qe=70;while(0);e:do if((Qe|0)==70){Qe=0;e=e>>10;if((e|0)>0){v=(e<<10)+-80+Le|0;_=v+1024|0;e=v;g=_;v=te(v<<16>>16,_e)|0;_=te(_<<16>>16,_e)|0;break}switch(e|0){case 0:{e=Le;g=ye;v=ke;_=Ee;break e}case-1:{Qe=73;break e}default:{}}_=(e<<10|80)+Le|0;e=_;g=_+1024|0;v=te(0-_<<16>>16,_e)|0;_=te(-1024-_<<16>>16,_e)|0}while(0);if((Qe|0)==73){Qe=0;e=Ae;g=Le;v=Se;_=ke}tt=k-e<<16>>16;k=k-g<<16>>16;_=(_+(te(k,k)|0)|0)<(v+(te(tt,tt)|0)|0);_=_?g:e;e=o+P|0;r[e>>0]=((_>>>9)+1|0)>>>1;_=_<<4;T=((s[Xe>>2]|0)<0?0-_|0:_)+(T<<1)|0;i=T+(i<<4)|0;_=((te(i>>16,N)|0)+((te(i&65534,N)|0)>>16)+(te(i,I)|0)>>7)+1>>1;n[ge+(P<<1)>>1]=(_|0)>32767?32767:((_|0)<-32768?-32768:_)&65535;_=R+4|0;s[_>>2]=i;i=i-(s[E>>2]<<4)|0;s[Re>>2]=i;i=i-(A<<2)|0;s[Ce>>2]=i;s[t+1280+(s[He>>2]<<2)>>2]=i-(S<<2);i=s[Ge>>2]|0;s[je+(i<<2)>>2]=T<<1;s[He>>2]=(s[He>>2]|0)+1;i=i+1|0;s[Ge>>2]=i;s[Xe>>2]=(s[Xe>>2]|0)+(r[e>>0]|0);P=P+1|0;e=x;R=_;_=M}Mn(Me|0,t+3840+(y<<2)|0,160)|0;tt=s[ze>>2]|0;a=a+(tt<<1)|0;o=o+tt|0;e=i;we=we+1|0;ge=ge+(tt<<1)|0}s[Je>>2]=s[m+(i+-1<<2)>>2];Tn(t|0,t+(s[Ue>>2]<<1)|0,s[Be>>2]<<1|0)|0;Tn(t+1280|0,t+1280+(s[Ue>>2]<<2)|0,s[Be>>2]<<2|0)|0;l=et;return}function vr(e,t,i,o,f,h,c,u,d,p,b,m,w,g,v){e=e|0;t=t|0;i=i|0;o=o|0;f=f|0;h=h|0;c=c|0;u=u|0;d=d|0;p=p|0;b=b|0;m=m|0;w=w|0;g=g|0;v=v|0;var _=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,q=0,H=0,G=0,V=0,W=0,K=0,Y=0,Z=0,$=0,X=0,J=0,Q=0,ee=0,ie=0,ne=0,se=0,ae=0,oe=0,fe=0,he=0,ce=0,le=0,ue=0,de=0,pe=0,be=0,me=0,we=0,ge=0,ve=0,_e=0;ge=l;l=l+176|0;ce=ge+160|0;ae=ge;le=t+4424|0;M=s[le>>2]|0;ne=e+4720|0;_=s[ne>>2]|0;pe=l;l=l+((1*(_*1396|0)|0)+15&-16)|0;kn(pe|0,0,_*1396|0)|0;he=i+34|0;be=t+4416|0;me=t+4420|0;we=e+4684|0;ue=t+3840|0;de=t+4320|0;y=0;while(1){if((y|0)>=(_|0))break;k=y+(a[he>>0]|0)&3;s[pe+(y*1396|0)+1384>>2]=k;s[pe+(y*1396|0)+1388>>2]=k;s[pe+(y*1396|0)+1392>>2]=0;s[pe+(y*1396|0)+1376>>2]=s[be>>2];s[pe+(y*1396|0)+1380>>2]=s[me>>2];s[pe+(y*1396|0)+1120>>2]=s[t+1280+((s[we>>2]|0)+-1<<2)>>2];Mn(pe+(y*1396|0)|0,ue|0,160)|0;k=pe+(y*1396|0)+1280|0;A=de;S=k+96|0;do{s[k>>2]=s[A>>2];k=k+4|0;A=A+4|0}while((k|0)<(S|0));y=y+1|0}k=n[i+30>>1]|0;X=i+29|0;se=r[X>>0]|0;J=n[25404+(se<<24>>24>>1<<2)+((k&65535)<<24>>24<<1)>>1]|0;s[ce>>2]=0;fe=e+4680|0;E=s[fe>>2]|0;_=(E|0)>40?40:E;e:do if(se<<24>>24!=2)if((M|0)>0){ee=M+-3|0;ee=(_|0)<(ee|0)?_:ee}else ee=_;else{i=s[e+4672>>2]|0;y=0;while(1){if((y|0)>=(i|0)){ee=_;break e}se=(s[w+(y<<2)>>2]|0)+-3|0;_=(_|0)<(se|0)?_:se;y=y+1|0}}while(0);z=(k&-256)<<16>>16!=1024&1;$=s[we>>2]|0;se=e+4676|0;Y=$+(s[se>>2]|0)|0;W=l;l=l+((1*(Y<<2)|0)+15&-16)|0;K=l;l=l+((1*(Y<<1)|0)+15&-16)|0;Y=l;l=l+((1*(E<<2)|0)+15&-16)|0;Q=t+4432|0;s[Q>>2]=$;U=t+4428|0;s[U>>2]=s[we>>2];ie=e+4672|0;j=z^1;F=t+4444|0;z=z<<1^3;Z=pe+1392|0;q=m+4|0;H=e+4732|0;G=t+4440|0;V=e+4728|0;B=e+4764|0;L=v<<16>>16;D=0;i=M;$=t+($<<1)|0;y=0;while(1){if((D|0)>=(s[ie>>2]|0))break;I=h+((D>>1|j)<<4<<1)|0;P=c+(D*5<<1)|0;O=u+(D*24<<1)|0;N=s[d+(D<<2)>>2]|0;N=N>>2|N>>>1<<16;s[F>>2]=0;_=r[X>>0]|0;A=w+(D<<2)|0;if(_<<24>>24==2){E=s[A>>2]|0;if(!(D&z)){e:do if((D|0)==2){i=s[ne>>2]|0;_=s[Z>>2]|0;k=0;y=1;while(1){if((y|0)>=(i|0)){_=0;break}x=s[pe+(y*1396|0)+1392>>2]|0;R=(x|0)<(_|0);_=R?x:_;k=R?y:k;y=y+1|0}while(1){if((_|0)>=(i|0))break;if((_|0)!=(k|0)){R=pe+(_*1396|0)+1392|0;s[R>>2]=(s[R>>2]|0)+134217727}_=_+1|0}_=0;y=(s[ce>>2]|0)+ee|0;while(1){if((_|0)>=(ee|0)){y=0;break e}R=(y+-1|0)%40|0;R=(R|0)<0?R+40|0:R;x=_-ee|0;r[f+x>>0]=(((s[pe+(k*1396|0)+640+(R<<2)>>2]|0)>>>9)+1|0)>>>1;M=s[pe+(k*1396|0)+800+(R<<2)>>2]|0;T=s[q>>2]|0;v=T<<16>>16;T=((te(M>>16,v)|0)+((te(M&65535,v)|0)>>16)+(te(M,(T>>15)+1>>1)|0)>>13)+1>>1;n[$+(x<<1)>>1]=(T|0)>32767?32767:((T|0)<-32768?-32768:T)&65535;s[t+1280+((s[Q>>2]|0)-ee+_<<2)>>2]=s[pe+(k*1396|0)+1120+(R<<2)>>2];_=_+1|0;y=R}}while(0);R=s[we>>2]|0;v=s[H>>2]|0;_=R-E-v+-2|0;Tr(K+(_<<1)|0,t+(_+(te(D,s[fe>>2]|0)|0)<<1)|0,I,R-_|0,v);s[U>>2]=s[we>>2];s[F>>2]=1;v=1;_=r[X>>0]|0;R=E;x=y}else{v=0;_=2;R=E;x=y}}else{v=0;R=i;x=y}y=s[ne>>2]|0;M=s[A>>2]|0;T=m+(D<<2)|0;k=s[T>>2]|0;E=(k|0)>1;i=re((E?k:1)|0)|0;E=(E?k:1)<>16;S=536870911/(ve|0)|0;A=S<<16;e=A>>16;E=536870912-((te(ve,e)|0)+((te(E&65535,e)|0)>>16))<<3;S=A+((te(E>>16,e)|0)+((te(E&65528,e)|0)>>16))+(te(E,(S>>15)+1>>1)|0)|0;i=62-i|0;E=i+-47|0;if((E|0)<1){A=47-i|0;i=-2147483648>>A;E=2147483647>>>A;if((i|0)>(E|0)){if((S|0)<=(i|0))i=(S|0)<(E|0)?E:S}else if((S|0)>(E|0))i=E;else i=(S|0)<(i|0)?i:S;E=i<>E:0;S=(E>>4)+1|0;A=S>>>1<<16>>16;S=(S>>16)+1>>1;i=s[fe>>2]|0;e=0;while(1){if((e|0)>=(i|0))break;_e=n[o+(e<<1)>>1]|0;ve=_e<<16>>16;s[Y+(e<<2)>>2]=(te(ve>>16,A)|0)+((te(_e&65535,A)|0)>>16)+(te(ve,S)|0);e=e+1|0}e:do if(v|0){if(!D)E=(te(E>>16,L)|0)+((te(E&65535,L)|0)>>16)<<2;S=s[U>>2]|0;e=E>>16;E=E&65535;A=S-M+-2|0;while(1){if((A|0)>=(S|0))break e;_e=n[K+(A<<1)>>1]|0;s[W+(A<<2)>>2]=(te(e,_e)|0)+((te(E,_e)|0)>>16);A=A+1|0}}while(0);E=s[G>>2]|0;if((k|0)!=(E|0)){if((E|0)<=0)if(!E)A=32;else{i=0-E|0;oe=46}else{i=E;oe=46}if((oe|0)==46){oe=0;A=re(i|0)|0}E=E<>16|0)|0)<<16>>16;_e=(te(E>>16,S)|0)+((te(E&65535,S)|0)>>16)|0;k=Nn(k|0,((k|0)<0)<<31>>31|0,_e|0,((_e|0)<0)<<31>>31|0)|0;k=Sn(k|0,C|0,29)|0;k=E-(k&-8)|0;S=_e+((te(k>>16,S)|0)+((te(k&65535,S)|0)>>16))|0;i=A+28-i|0;k=i+-16|0;if((i|0)<16){E=16-i|0;i=-2147483648>>E;k=2147483647>>>E;if((i|0)>(k|0)){if((S|0)<=(i|0))i=(S|0)<(k|0)?k:S}else if((S|0)>(k|0))i=k;else i=(S|0)<(i|0)?i:S;E=i<>k:0;k=s[Q>>2]|0;A=E>>16;S=E&65535;i=k;k=k-(s[we>>2]|0)|0;while(1){if((k|0)>=(i|0))break;i=t+1280+(k<<2)|0;_e=s[i>>2]|0;ve=_e<<16>>16;s[i>>2]=(te(A,ve)|0)+((te(S,ve)|0)>>16)+(te(E,(_e>>15)+1>>1)|0);i=s[Q>>2]|0;k=k+1|0}e:do if(_<<24>>24==2?(s[F>>2]|0)==0:0){_=s[U>>2]|0;i=_-ee|0;_=_-M+-2|0;while(1){if((_|0)>=(i|0)){i=0;break e}_e=W+(_<<2)|0;ve=s[_e>>2]|0;M=ve<<16>>16;s[_e>>2]=(te(A,M)|0)+((te(S,M)|0)>>16)+(te(E,(ve>>15)+1>>1)|0);_=_+1|0}}else i=0;while(0);while(1){if((i|0)>=(y|0))break;_=pe+(i*1396|0)+1376|0;_e=s[_>>2]|0;ve=_e<<16>>16;s[_>>2]=(te(A,ve)|0)+((te(S,ve)|0)>>16)+(te(E,(_e>>15)+1>>1)|0);_=pe+(i*1396|0)+1380|0;_e=s[_>>2]|0;ve=_e<<16>>16;s[_>>2]=(te(A,ve)|0)+((te(S,ve)|0)>>16)+(te(E,(_e>>15)+1>>1)|0);_=0;while(1){if((_|0)==40){_=0;break}_e=pe+(i*1396|0)+(_<<2)|0;ve=s[_e>>2]|0;M=ve<<16>>16;s[_e>>2]=(te(A,M)|0)+((te(S,M)|0)>>16)+(te(E,(ve>>15)+1>>1)|0);_=_+1|0}while(1){if((_|0)==24){_=0;break}_e=pe+(i*1396|0)+1280+(_<<2)|0;ve=s[_e>>2]|0;M=ve<<16>>16;s[_e>>2]=(te(A,M)|0)+((te(S,M)|0)>>16)+(te(E,(ve>>15)+1>>1)|0);_=_+1|0}while(1){if((_|0)==40)break;_e=pe+(i*1396|0)+960+(_<<2)|0;ve=s[_e>>2]|0;M=ve<<16>>16;s[_e>>2]=(te(A,M)|0)+((te(S,M)|0)>>16)+(te(E,(ve>>15)+1>>1)|0);_e=pe+(i*1396|0)+1120+(_<<2)|0;ve=s[_e>>2]|0;M=ve<<16>>16;s[_e>>2]=(te(A,M)|0)+((te(S,M)|0)>>16)+(te(E,(ve>>15)+1>>1)|0);_=_+1|0}i=i+1|0}s[G>>2]=s[T>>2];_=r[X>>0]|0;k=s[T>>2]|0;i=s[fe>>2]|0;y=s[ne>>2]|0}_r(t,pe,_<<24>>24,Y,f,$,W,ae,I,P,O,R,N,s[p+(D<<2)>>2]|0,s[b+(D<<2)>>2]|0,k,g,J,i,x,s[V>>2]|0,s[H>>2]|0,s[B>>2]|0,y,ce,ee);y=s[fe>>2]|0;o=o+(y<<1)|0;f=f+y|0;D=D+1|0;i=R;$=$+(y<<1)|0;y=x+1|0}i=s[ne>>2]|0;_=s[Z>>2]|0;E=0;y=1;while(1){if((y|0)>=(i|0))break;ve=s[pe+(y*1396|0)+1392>>2]|0;_e=(ve|0)<(_|0);_=_e?ve:_;E=_e?y:E;y=y+1|0}r[he>>0]=s[pe+(E*1396|0)+1388>>2];i=s[m+((s[ie>>2]|0)+-1<<2)>>2]|0;y=i>>>6<<16>>16;i=(i>>21)+1>>1;k=0;_=(s[ce>>2]|0)+ee|0;while(1){if((k|0)>=(ee|0))break;_e=(_+-1|0)%40|0;_e=(_e|0)<0?_e+40|0:_e;ve=k-ee|0;r[f+ve>>0]=(((s[pe+(E*1396|0)+640+(_e<<2)>>2]|0)>>>9)+1|0)>>>1;ce=s[pe+(E*1396|0)+800+(_e<<2)>>2]|0;ce=((te(ce>>16,y)|0)+((te(ce&65535,y)|0)>>16)+(te(ce,i)|0)>>7)+1>>1;n[$+(ve<<1)>>1]=(ce|0)>32767?32767:((ce|0)<-32768?-32768:ce)&65535;s[t+1280+((s[Q>>2]|0)-ee+k<<2)>>2]=s[pe+(E*1396|0)+1120+(_e<<2)>>2];k=k+1|0;_=_e}Mn(ue|0,pe+(E*1396|0)+(s[fe>>2]<<2)|0,160)|0;k=de;A=pe+(E*1396|0)+1280|0;S=k+96|0;do{s[k>>2]=s[A>>2];k=k+4|0;A=A+4|0}while((k|0)<(S|0));s[be>>2]=s[pe+(E*1396|0)+1376>>2];s[me>>2]=s[pe+(E*1396|0)+1380>>2];s[le>>2]=s[w+((s[ie>>2]|0)+-1<<2)>>2];Tn(t|0,t+(s[se>>2]<<1)|0,s[we>>2]<<1|0)|0;Tn(t+1280|0,t+1280+(s[se>>2]<<2)|0,s[we>>2]<<2|0)|0;l=ge;return}function _r(e,t,i,a,o,f,h,c,u,d,p,b,m,w,g,v,_,y,k,E,A,S,M,T,x,R){e=e|0;t=t|0;i=i|0;a=a|0;o=o|0;f=f|0;h=h|0;c=c|0;u=u|0;d=d|0;p=p|0;b=b|0;m=m|0;w=w|0;g=g|0;v=v|0;_=_|0;y=y|0;k=k|0;E=E|0;A=A|0;S=S|0;M=M|0;T=T|0;x=x|0;R=R|0;var I=0,C=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,q=0,H=0,G=0,V=0,W=0,K=0,Y=0,Z=0,$=0,X=0,J=0,Q=0,ee=0,ie=0,re=0,ne=0,se=0,ae=0,oe=0,fe=0,he=0,ce=0,le=0,ue=0,de=0,pe=0,be=0,me=0,we=0,ge=0,ve=0,_e=0,ye=0,ke=0,Ee=0,Ae=0,Se=0,Me=0,Te=0,xe=0,Re=0,Ie=0,Ce=0,Pe=0,Oe=0,Ne=0,De=0,Le=0,Be=0;Ne=l;Ie=l;l=l+((1*(T*56|0)|0)+15&-16)|0;Ce=e+4432|0;Pe=e+4428|0;Re=v>>6;ke=(i|0)==2;Ee=d+2|0;Ae=d+4|0;Se=d+6|0;Me=d+8|0;Te=(b|0)>0;xe=m<<16>>16;le=m>>16;ue=S>>1;de=u+2|0;pe=u+4|0;be=u+6|0;me=u+8|0;we=u+10|0;ge=u+12|0;ve=u+14|0;_e=u+16|0;ye=u+18|0;ne=(S|0)==16;se=u+20|0;ae=u+22|0;oe=u+24|0;fe=u+26|0;he=u+28|0;ce=u+30|0;Q=M<<16>>16;ee=A>>1;ie=A+-1|0;re=p+(ie<<1)|0;X=w<<16>>16;J=g<<16>>16;K=g>>16;Y=(_|0)>2048;$=(_|0)/2|0;Z=$+-512|0;$=512-$|0;j=_<<16>>16;F=y+944|0;z=te(y<<16>>16,j)|0;q=te(F<<16>>16,j)|0;H=y+-944|0;G=te(944-y<<16>>16,j)|0;V=Ie+4|0;W=Ie+32|0;B=(E|0)<1;U=0;v=h+((s[Pe>>2]|0)-b+2<<2)|0;i=e+1280+((s[Ce>>2]|0)-b+1<<2)|0;while(1){if((U|0)>=(k|0)){v=0;break}if(ke){D=s[v>>2]|0;N=n[d>>1]|0;N=(te(D>>16,N)|0)+((te(D&65535,N)|0)>>16)+2|0;D=s[v+-4>>2]|0;L=n[Ee>>1]|0;L=N+((te(D>>16,L)|0)+((te(D&65535,L)|0)>>16))|0;D=s[v+-8>>2]|0;N=n[Ae>>1]|0;N=L+((te(D>>16,N)|0)+((te(D&65535,N)|0)>>16))|0;D=s[v+-12>>2]|0;L=n[Se>>1]|0;L=N+((te(D>>16,L)|0)+((te(D&65535,L)|0)>>16))|0;D=s[v+-16>>2]|0;N=n[Me>>1]|0;N=L+((te(D>>16,N)|0)+((te(D&65535,N)|0)>>16))<<1;D=v+4|0}else{N=0;D=v}if(Te){L=(s[i>>2]|0)+(s[i+-8>>2]|0)|0;L=(te(L>>16,xe)|0)+((te(L&65535,xe)|0)>>16)|0;O=s[i+-4>>2]|0;O=N-(L+(te(O>>16,le)|0)+((te(O&65535,le)|0)>>16)<<2)|0;L=i+4|0}else{O=0;L=i}I=U+39|0;C=a+(U<<2)|0;P=0;while(1){if((P|0)>=(T|0))break;M=t+(P*1396|0)+1384|0;s[M>>2]=(te(s[M>>2]|0,196314165)|0)+907633515;v=t+(P*1396|0)+(I<<2)|0;b=s[v>>2]|0;E=n[u>>1]|0;E=ue+((te(b>>16,E)|0)+((te(b&65535,E)|0)>>16))|0;b=s[v+-4>>2]|0;i=n[de>>1]|0;i=E+((te(b>>16,i)|0)+((te(b&65535,i)|0)>>16))|0;b=s[v+-8>>2]|0;E=n[pe>>1]|0;E=i+((te(b>>16,E)|0)+((te(b&65535,E)|0)>>16))|0;b=s[v+-12>>2]|0;i=n[be>>1]|0;i=E+((te(b>>16,i)|0)+((te(b&65535,i)|0)>>16))|0;b=s[v+-16>>2]|0;E=n[me>>1]|0;E=i+((te(b>>16,E)|0)+((te(b&65535,E)|0)>>16))|0;b=s[v+-20>>2]|0;i=n[we>>1]|0;i=E+((te(b>>16,i)|0)+((te(b&65535,i)|0)>>16))|0;b=s[v+-24>>2]|0;E=n[ge>>1]|0;E=i+((te(b>>16,E)|0)+((te(b&65535,E)|0)>>16))|0;b=s[v+-28>>2]|0;i=n[ve>>1]|0;i=E+((te(b>>16,i)|0)+((te(b&65535,i)|0)>>16))|0;b=s[v+-32>>2]|0;E=n[_e>>1]|0;E=i+((te(b>>16,E)|0)+((te(b&65535,E)|0)>>16))|0;b=s[v+-36>>2]|0;i=n[ye>>1]|0;i=E+((te(b>>16,i)|0)+((te(b&65535,i)|0)>>16))|0;if(ne){b=s[v+-40>>2]|0;E=n[se>>1]|0;E=i+((te(b>>16,E)|0)+((te(b&65535,E)|0)>>16))|0;b=s[v+-44>>2]|0;i=n[ae>>1]|0;i=E+((te(b>>16,i)|0)+((te(b&65535,i)|0)>>16))|0;b=s[v+-48>>2]|0;E=n[oe>>1]|0;E=i+((te(b>>16,E)|0)+((te(b&65535,E)|0)>>16))|0;b=s[v+-52>>2]|0;i=n[fe>>1]|0;i=E+((te(b>>16,i)|0)+((te(b&65535,i)|0)>>16))|0;b=s[v+-56>>2]|0;E=n[he>>1]|0;E=i+((te(b>>16,E)|0)+((te(b&65535,E)|0)>>16))|0;b=s[v+-60>>2]|0;i=n[ce>>1]|0;i=E+((te(b>>16,i)|0)+((te(b&65535,i)|0)>>16))|0}m=t+(P*1396|0)+1280|0;v=s[m>>2]|0;b=(s[t+(P*1396|0)+1380>>2]|0)+((te(v>>16,Q)|0)+((te(v&65535,Q)|0)>>16))|0;S=(s[t+(P*1396|0)+1284>>2]|0)-b|0;S=v+((te(S>>16,Q)|0)+((te(S&65535,Q)|0)>>16))|0;s[m>>2]=b;m=n[p>>1]|0;v=2;m=ee+((te(b>>16,m)|0)+((te(b&65535,m)|0)>>16))|0;while(1){if((v|0)>=(A|0))break;w=v+-1|0;b=t+(P*1396|0)+1280+(w<<2)|0;_=t+(P*1396|0)+1280+(v<<2)|0;E=s[_>>2]|0;g=E-S|0;g=(s[b>>2]|0)+((te(g>>16,Q)|0)+((te(g&65535,Q)|0)>>16))|0;s[b>>2]=S;w=n[p+(w<<1)>>1]|0;b=s[t+(P*1396|0)+1280+((v|1)<<2)>>2]|0;s[_>>2]=g;w=w<<16>>16;_=n[p+(v<<1)>>1]|0;b=b-g|0;v=v+2|0;m=m+((te(S>>16,w)|0)+((te(S&65535,w)|0)>>16))+((te(g>>16,_)|0)+((te(g&65535,_)|0)>>16))|0;S=E+((te(b>>16,Q)|0)+((te(b&65535,Q)|0)>>16))|0}b=i<<4;s[t+(P*1396|0)+1280+(ie<<2)>>2]=S;g=n[re>>1]|0;g=m+((te(S>>16,g)|0)+((te(S&65535,g)|0)>>16))<<1;_=s[t+(P*1396|0)+1376>>2]|0;E=_>>16;_=_&65535;g=g+((te(E,X)|0)+((te(_,X)|0)>>16))<<2;w=s[t+(P*1396|0)+1120+(s[x>>2]<<2)>>2]|0;_=(te(w>>16,J)|0)+((te(w&65535,J)|0)>>16)+(te(E,K)|0)+((te(_,K)|0)>>16)<<2;E=s[C>>2]|0;w=E-((O+b-(g+_)>>3)+1>>1)|0;M=(s[M>>2]|0)<0;w=M?0-w|0:w;w=(w|0)>30720?30720:(w|0)<-31744?-31744:w;v=w-y|0;do if(Y){if((v|0)>(Z|0)){v=v-Z|0;Oe=20;break}if((v|0)>=($|0))if((v|0)<0){Oe=23;break}else{v=y;i=F;m=z;S=q;break}else{v=v+Z|0;Oe=20;break}}else Oe=20;while(0);e:do if((Oe|0)==20){Oe=0;v=v>>10;if((v|0)>0){m=(v<<10)+-80+y|0;S=m+1024|0;v=m;i=S;m=te(m<<16>>16,j)|0;S=te(S<<16>>16,j)|0;break}switch(v|0){case 0:{v=y;i=F;m=z;S=q;break e}case-1:{Oe=23;break e}default:{}}S=(v<<10|80)+y|0;v=S;i=S+1024|0;m=te(0-S<<16>>16,j)|0;S=te(-1024-S<<16>>16,j)|0}while(0);if((Oe|0)==23){Oe=0;v=H;i=y;m=G;S=z}De=w-v<<16>>16;De=m+(te(De,De)|0)>>10;w=w-i<<16>>16;w=S+(te(w,w)|0)>>10;Le=(De|0)<(w|0);Be=s[t+(P*1396|0)+1392>>2]|0;m=Le?v:i;S=Le?i:v;s[Ie+(P*56|0)+4>>2]=Be+(Le?De:w);s[Ie+(P*56|0)+32>>2]=Be+(Le?w:De);s[Ie+(P*56|0)>>2]=m;s[Ie+(P*56|0)+28>>2]=S;i=m<<4;i=(M?0-i|0:i)+N|0;m=i+b|0;w=E<<4;E=m-w|0;s[Ie+(P*56|0)+16>>2]=E;E=E-g|0;s[Ie+(P*56|0)+20>>2]=E-_;s[Ie+(P*56|0)+12>>2]=E;s[Ie+(P*56|0)+24>>2]=i;s[Ie+(P*56|0)+8>>2]=m;E=S<<4;E=(M?0-E|0:E)+N|0;b=E+b|0;w=b-w|0;s[Ie+(P*56|0)+44>>2]=w;g=w-g|0;s[Ie+(P*56|0)+48>>2]=g-_;s[Ie+(P*56|0)+40>>2]=g;s[Ie+(P*56|0)+52>>2]=E;s[Ie+(P*56|0)+36>>2]=b;P=P+1|0}v=((s[x>>2]|0)+-1|0)%40|0;g=(v|0)<0;i=v+40|0;s[x>>2]=g?i:v;v=(g?i:v)+R|0;i=s[V>>2]|0;g=0;m=1;while(1){if((m|0)>=(T|0))break;Le=s[Ie+(m*56|0)+4>>2]|0;Be=(Le|0)<(i|0);i=Be?Le:i;g=Be?m:g;m=m+1|0}w=(v|0)%40|0;v=s[t+(g*1396|0)+480+(w<<2)>>2]|0;i=0;while(1){if((i|0)>=(T|0))break;if((s[t+(i*1396|0)+480+(w<<2)>>2]|0)!=(v|0)){Be=Ie+(i*56|0)+4|0;s[Be>>2]=(s[Be>>2]|0)+134217727;Be=Ie+(i*56|0)+32|0;s[Be>>2]=(s[Be>>2]|0)+134217727}i=i+1|0}v=s[V>>2]|0;i=0;m=s[W>>2]|0;S=0;M=1;while(1){if((M|0)>=(T|0))break;N=s[Ie+(M*56|0)+4>>2]|0;De=(N|0)>(v|0);Le=s[Ie+(M*56|0)+32>>2]|0;Be=(Le|0)<(m|0);v=De?N:v;i=De?M:i;m=Be?Le:m;S=Be?M:S;M=M+1|0}if((m|0)<(v|0)){Mn(t+(i*1396|0)+(U<<2)|0,t+(S*1396|0)+(U<<2)|0,1396-(U<<2)|0)|0;Be=Ie+(i*56|0)|0;Le=Ie+(S*56|0)+28|0;s[Be>>2]=s[Le>>2];s[Be+4>>2]=s[Le+4>>2];s[Be+8>>2]=s[Le+8>>2];s[Be+12>>2]=s[Le+12>>2];s[Be+16>>2]=s[Le+16>>2];s[Be+20>>2]=s[Le+20>>2];s[Be+24>>2]=s[Le+24>>2]}if(!(B&(U|0)<(R|0))){Be=U-R|0;r[o+Be>>0]=(((s[t+(g*1396|0)+640+(w<<2)>>2]|0)>>>9)+1|0)>>>1;De=s[t+(g*1396|0)+800+(w<<2)>>2]|0;Le=s[c+(w<<2)>>2]|0;N=Le<<16>>16;Le=((te(De>>16,N)|0)+((te(De&65535,N)|0)>>16)+(te(De,(Le>>15)+1>>1)|0)>>7)+1>>1;n[f+(Be<<1)>>1]=(Le|0)>32767?32767:((Le|0)<-32768?-32768:Le)&65535;s[e+1280+((s[Ce>>2]|0)-R<<2)>>2]=s[t+(g*1396|0)+1120+(w<<2)>>2];s[h+((s[Pe>>2]|0)-R<<2)>>2]=s[t+(g*1396|0)+960+(w<<2)>>2]}s[Ce>>2]=(s[Ce>>2]|0)+1;s[Pe>>2]=(s[Pe>>2]|0)+1;v=U+40|0;i=0;while(1){if((i|0)>=(T|0))break;s[t+(i*1396|0)+1376>>2]=s[Ie+(i*56|0)+12>>2];s[t+(i*1396|0)+1380>>2]=s[Ie+(i*56|0)+16>>2];Be=s[Ie+(i*56|0)+8>>2]|0;s[t+(i*1396|0)+(v<<2)>>2]=Be;s[t+(i*1396|0)+800+(s[x>>2]<<2)>>2]=Be;Be=s[Ie+(i*56|0)>>2]|0;s[t+(i*1396|0)+640+(s[x>>2]<<2)>>2]=Be;s[t+(i*1396|0)+960+(s[x>>2]<<2)>>2]=s[Ie+(i*56|0)+24>>2]<<1;s[t+(i*1396|0)+1120+(s[x>>2]<<2)>>2]=s[Ie+(i*56|0)+20>>2];Le=t+(i*1396|0)+1384|0;Be=(s[Le>>2]|0)+((Be>>9)+1>>1)|0;s[Le>>2]=Be;s[t+(i*1396|0)+480+(s[x>>2]<<2)>>2]=Be;s[t+(i*1396|0)+1392>>2]=s[Ie+(i*56|0)+4>>2];i=i+1|0}s[c+(s[x>>2]<<2)>>2]=Re;U=U+1|0;v=D;i=L}while(1){if((v|0)>=(T|0))break;Mn(t+(v*1396|0)|0,t+(v*1396|0)+(k<<2)|0,160)|0;v=v+1|0}l=Ne;return}function yr(e,t,i){e=e|0;t=t|0;i=i|0;var a=0,f=0,h=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0,C=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,q=0,H=0;H=l;l=l+64|0;c=H+20|0;u=H+16|0;f=H+12|0;h=H+8|0;q=H+24|0;a=H;N=e+2336|0;b=s[N>>2]|0;z=e+2328|0;D=l;l=l+((1*(b+(s[z>>2]|0)<<2)|0)+15&-16)|0;g=l;l=l+((1*(b<<1)|0)+15&-16)|0;s[a>>2]=s[e+4240>>2]>>6;b=e+4244|0;U=s[b>>2]|0;B=U>>6;s[a+4>>2]=B;if(s[e+2376>>2]|0){p=e+4182|0;d=p+32|0;do{n[p>>1]=0;p=p+2|0}while((p|0)<(d|0))}P=e+2332|0;O=e+2324|0;kr(f,c,h,u,e+4|0,a,s[P>>2]|0,s[O>>2]|0);a=s[e+4252>>2]|0;if((s[f>>2]>>s[u>>2]|0)<(s[h>>2]>>s[c>>2]|0)){a=te(a+-1|0,s[e+4256>>2]|0)|0;a=(a|0)<128?0:a+-128|0}else{a=te(a,s[e+4256>>2]|0)|0;a=(a|0)<128?0:a+-128|0}C=e+4+(a<<2)|0;T=e+4172|0;j=e+4224|0;d=n[j>>1]|0;c=e+4160|0;p=s[c>>2]|0;F=(p|0)>1;w=n[25776+((F?1:p)<<1)>>1]|0;u=e+4164|0;p=n[((s[u>>2]|0)==2?25780:25784)+((F?1:p)<<1)>>1]|0;F=e+2340|0;f=(s[F>>2]|0)+-1|0;a=64881;h=0;while(1){if((h|0)>=(f|0))break;L=e+4182+(h<<1)|0;n[L>>1]=(((te(a,n[L>>1]|0)|0)>>>15)+1|0)>>>1;a=a+(((te(a,-655)|0)>>15)+1>>1)|0;h=h+1|0}h=e+4182+(f<<1)|0;n[h>>1]=(((te(a,n[h>>1]|0)|0)>>>15)+1|0)>>>1;a=e+4182|0;h=s[F>>2]|0;Mn(q|0,a|0,h<<1|0)|0;do if(!(s[c>>2]|0)){if((s[u>>2]|0)==2){a=0;f=16384;while(1){if((a|0)==5)break;L=(f&65535)-(o[e+4172+(a<<1)>>1]|0)&65535;a=a+1|0;f=L}d=(te((f<<16>>16<3277?3277:f)<<16>>16,n[e+4236>>1]|0)|0)>>>14&65535;break}a=xr(a,h)|0;if((a|0)<=134217728)if((a|0)<4194304)a=4194304;else m=16;else{a=134217728;m=16}d=a<<3;p=(te(d>>16,p)|0)+((te(d&65528,p)|0)>>16)>>14;d=16384}while(0);L=e+4220|0;A=s[L>>2]|0;M=e+4168|0;E=(s[M>>2]>>7)+1>>1;S=s[N>>2]|0;u=S-E-h+-2|0;Tr(g+(u<<1)|0,e+1348+(u<<1)|0,q,S-u|0,h);f=s[b>>2]|0;if((f|0)<=0)if(!f)a=32;else{a=0-f|0;m=20}else{a=f;m=20}if((m|0)==20)a=re(a|0)|0;f=f<>16;c=536870911/(x|0)|0;R=c<<16;I=R>>16;f=536870912-((te(x,I)|0)+((te(f&65535,I)|0)>>16))<<3;c=R+((te(f>>16,I)|0)+((te(f&65528,I)|0)>>16))+(te(f,(c>>15)+1>>1)|0)|0;a=62-a|0;f=a+-46|0;if((f|0)>=1)if((f|0)<32){a=c>>f;m=30}else a=0;else{h=46-a|0;a=-2147483648>>h;f=2147483647>>>h;if((a|0)>(f|0)){if((c|0)<=(a|0))a=(c|0)<(f|0)?f:c}else if((c|0)>(f|0))a=f;else a=(c|0)<(a|0)?a:c;a=a<>2]|0;c=a>>16;f=a&65535;a=u+(s[F>>2]|0)|0;while(1){if((a|0)>=(h|0))break;I=n[g+(a<<1)>>1]|0;s[D+(a<<2)>>2]=(te(c,I)|0)+((te(f,I)|0)>>16);a=a+1|0}v=e+4174|0;_=e+4176|0;y=e+4178|0;k=e+4180|0;m=w<<16>>16;w=e+2765|0;g=e+2316|0;p=p<<16>>16;b=0;I=E;R=d;x=A;f=S;while(1){if((b|0)>=(s[O>>2]|0))break;u=R<<16>>16;h=s[P>>2]|0;c=0;a=D+(f-I+2<<2)|0;d=x;while(1){if((c|0)>=(h|0)){a=0;break}I=s[a>>2]|0;S=n[T>>1]|0;S=(te(I>>16,S)|0)+((te(I&65535,S)|0)>>16)+2|0;I=s[a+-4>>2]|0;x=n[v>>1]|0;x=S+((te(I>>16,x)|0)+((te(I&65535,x)|0)>>16))|0;I=s[a+-8>>2]|0;S=n[_>>1]|0;S=x+((te(I>>16,S)|0)+((te(I&65535,S)|0)>>16))|0;I=s[a+-12>>2]|0;x=n[y>>1]|0;x=S+((te(I>>16,x)|0)+((te(I&65535,x)|0)>>16))|0;I=s[a+-16>>2]|0;S=n[k>>1]|0;S=x+((te(I>>16,S)|0)+((te(I&65535,S)|0)>>16))|0;I=(te(d,196314165)|0)+907633515|0;x=s[C+(I>>>25<<2)>>2]|0;s[D+(f<<2)>>2]=S+((te(x>>16,u)|0)+((te(x&65535,u)|0)>>16))<<2;c=c+1|0;a=a+4|0;d=I;f=f+1|0}while(1){if((a|0)==5)break;I=e+4172+(a<<1)|0;n[I>>1]=(te(m,n[I>>1]|0)|0)>>>15;a=a+1|0}if(!(r[w>>0]|0))a=R;else a=(te(u,p)|0)>>>15&65535;R=s[M>>2]|0;R=R+(((R>>16)*655|0)+(((R&65535)*655|0)>>>16))|0;s[M>>2]=R;I=(s[g>>2]<<16>>16)*4608|0;I=(R|0)<(I|0)?R:I;s[M>>2]=I;b=b+1|0;I=(I>>7)+1>>1;R=a;x=d}T=D+((s[N>>2]|0)+-16<<2)|0;M=e+1284|0;p=T;a=M;d=p+64|0;do{s[p>>2]=s[a>>2];p=p+4|0;a=a+4|0}while((p|0)<(d|0));m=n[q>>1]|0;w=n[q+2>>1]|0;g=n[q+4>>1]|0;v=n[q+6>>1]|0;_=n[q+8>>1]|0;y=n[q+10>>1]|0;k=n[q+12>>1]|0;E=n[q+14>>1]|0;A=n[q+16>>1]|0;S=n[q+18>>1]|0;b=B<<16>>16;d=(U>>21)+1>>1;p=0;while(1){a=s[z>>2]|0;if((p|0)>=(a|0))break;a=s[T+(p+15<<2)>>2]|0;a=(s[F>>2]>>1)+((te(a>>16,m)|0)+((te(a&65535,m)|0)>>16))|0;u=s[T+(p+14<<2)>>2]|0;u=a+((te(u>>16,w)|0)+((te(u&65535,w)|0)>>16))|0;a=s[T+(p+13<<2)>>2]|0;a=u+((te(a>>16,g)|0)+((te(a&65535,g)|0)>>16))|0;u=s[T+(p+12<<2)>>2]|0;u=a+((te(u>>16,v)|0)+((te(u&65535,v)|0)>>16))|0;a=s[T+(p+11<<2)>>2]|0;a=u+((te(a>>16,_)|0)+((te(a&65535,_)|0)>>16))|0;u=s[T+(p+10<<2)>>2]|0;u=a+((te(u>>16,y)|0)+((te(u&65535,y)|0)>>16))|0;a=s[T+(p+9<<2)>>2]|0;a=u+((te(a>>16,k)|0)+((te(a&65535,k)|0)>>16))|0;u=s[T+(p+8<<2)>>2]|0;u=a+((te(u>>16,E)|0)+((te(u&65535,E)|0)>>16))|0;a=s[T+(p+7<<2)>>2]|0;a=u+((te(a>>16,A)|0)+((te(a&65535,A)|0)>>16))|0;u=s[T+(p+6<<2)>>2]|0;u=a+((te(u>>16,S)|0)+((te(u&65535,S)|0)>>16))|0;a=s[F>>2]|0;f=p+16|0;h=10;while(1){if((h|0)>=(a|0))break;B=s[T+(f-h+-1<<2)>>2]|0;U=n[q+(h<<1)>>1]|0;u=u+((te(B>>16,U)|0)+((te(B&65535,U)|0)>>16))|0;h=h+1|0}c=T+(f<<2)|0;a=s[c>>2]|0;f=(u|0)>134217727;h=f?2147483632:((u|0)<-134217728?-134217728:u)<<4;if((a+(f?2147483632:((u|0)<-134217728?-134217728:u)<<4)|0)>-1)if((a&h|0)<0)a=-2147483648;else a=a+(f?2147483632:((u|0)<-134217728?-134217728:u)<<4)|0;else if((a|h|0)>-1)a=2147483647;else a=a+(f?2147483632:((u|0)<-134217728?-134217728:u)<<4)|0;s[c>>2]=a;U=((te(a>>16,b)|0)+((te(a&65535,b)|0)>>16)+(te(a,d)|0)>>7)+1>>1;n[i+(p<<1)>>1]=(U|0)>32767?32767:((U|0)<-32768?-32768:U)&65535;p=p+1|0}p=M;a=T+(a<<2)|0;d=p+64|0;do{s[p>>2]=s[a>>2];p=p+4|0;a=a+4|0}while((p|0)<(d|0));s[L>>2]=x;n[j>>1]=R;a=0;while(1){if((a|0)==4)break;s[t+(a<<2)>>2]=I;a=a+1|0}l=H;return}function kr(e,t,i,r,a,o,f,h){e=e|0;t=t|0;i=i|0;r=r|0;a=a|0;o=o|0;f=f|0;h=h|0;var c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0;w=l;c=l;l=l+((1*(f<<1<<1)|0)+15&-16)|0;p=c;m=0;while(1){if((m|0)==2)break;u=te(m+h+-2|0,f)|0;d=o+(m<<2)|0;b=0;while(1){if((b|0)>=(f|0))break;v=s[a+(b+u<<2)>>2]|0;g=s[d>>2]|0;_=g<<16>>16;g=(te(v>>16,_)|0)+((te(v&65535,_)|0)>>16)+(te(v,(g>>15)+1>>1)|0)>>8;n[p+(b<<1)>>1]=(g|0)>32767?32767:((g|0)<-32768?-32768:g)&65535;b=b+1|0}p=p+(f<<1)|0;m=m+1|0}Nr(e,t,c,f);Nr(i,r,c+(f<<1)|0,f);l=w;return}function Er(e,t){e=e|0;t=t|0;var i=0,r=0,a=0,f=0,h=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0;y=l;l=l+48|0;g=y+32|0;_=y+16|0;m=y;v=e+4676|0;c=s[v>>2]|0;d=c>>1;i=c>>2;a=c>>3;s[m>>2]=0;p=a+i|0;s[m+4>>2]=p;u=p+a|0;s[m+8>>2]=u;h=u+i|0;s[m+12>>2]=h;b=l;l=l+((1*(h+d<<1)|0)+15&-16)|0;Sr(t,e+32|0,b,b+(h<<1)|0,c);Sr(b,e+40|0,b,b+(u<<1)|0,d);Sr(b,e+48|0,b,b+(p<<1)|0,i);i=b+(a+-1<<1)|0;t=n[i>>1]>>1;n[i>>1]=t;i=t;while(1){r=a+-1|0;if((a|0)<=1)break;d=b+(a+-2<<1)|0;p=n[d>>1]>>1;n[d>>1]=p;n[b+(r<<1)>>1]=(i&65535)-(p&65535);i=p;a=r}u=e+88|0;n[b>>1]=(o[b>>1]|0)-(o[u>>1]|0);n[u>>1]=t;u=0;i=0;while(1){if((u|0)==4)break;a=4-u|0;a=s[v>>2]>>((a|0)<3?a:3)>>2;f=e+56+(u<<2)|0;t=s[f>>2]|0;h=g+(u<<2)|0;s[h>>2]=t;c=m+(u<<2)|0;d=0;p=0;while(1){if((p|0)==4)break;else{r=0;i=0}while(1){if((r|0)>=(a|0))break;k=n[b+((s[c>>2]|0)+r+d<<1)>>1]>>3;r=r+1|0;i=i+(te(k,k)|0)|0}if((p|0)<3){t=t+i|0;t=(t|0)<0?2147483647:t}else{t=t+(i>>1)|0;t=(t|0)<0?2147483647:t}s[h>>2]=t;d=d+a|0;p=p+1|0}s[f>>2]=i;u=u+1|0}c=e+140|0;t=s[c>>2]|0;if((t|0)<1e3)h=32767/((t>>4)+1|0)|0;else h=0;f=0;while(1){if((f|0)==4)break;r=e+92+(f<<2)|0;i=s[r>>2]|0;t=(s[g+(f<<2)>>2]|0)+(s[e+124+(f<<2)>>2]|0)|0;t=(t|0)<0?2147483647:t;a=2147483647/(t|0)|0;if((t|0)<=(i<<3|0))if((t|0)<(i|0))t=1024;else{k=i<<16>>16;m=te(a>>16,k)|0;k=te(a&65535,k)|0;t=te(a,(i>>15)+1>>1)|0;t=m+(k>>16)+t>>16<<11|(m+(k>>>16)+t|0)>>>5&2047}else t=128;m=e+108+(f<<2)|0;p=s[m>>2]|0;b=a-p|0;k=((t|0)>(h|0)?t:h)<<16>>16;k=p+((te(b>>16,k)|0)+((te(b&65535,k)|0)>>16))|0;s[m>>2]=k;k=2147483647/(k|0)|0;s[r>>2]=(k|0)<16777215?k:16777215;f=f+1|0}s[c>>2]=(s[c>>2]|0)+1;p=0;b=0;f=0;while(1){if((p|0)==4)break;c=s[g+(p<<2)>>2]|0;u=s[e+92+(p<<2)>>2]|0;d=c-u|0;if((d|0)>0){if(c>>>0<8388608)t=(c<<8|0)/(u+1|0)|0;else t=(c|0)/((u>>8)+1|0)|0;s[_+(p<<2)>>2]=t;a=re(t|0)|0;i=24-a|0;r=0-i|0;do if(i)if((i|0)<0){t=t<>>(i+32|0);break}else{t=t<<32-i|t>>>i;break}while(0);t=t&127;t=t+(((te(t,128-t|0)|0)*179|0)>>>16)+(31-a<<7)+-1024|0;h=t<<16>>16;f=f+(te(h,h)|0)|0;if((d|0)<1048576){r=re(d|0)|0;r=(c|0)==(u|0)?32:r;t=24-r|0;i=0-t|0;do if(t)if((t|0)<0){t=d<>>(t+32|0);break}else{t=d<<32-t|d>>>t;break}else t=d;while(0);r=((r&1|0)==0?46214:32768)>>>(r>>>1);a=(te(t&127,13959168)|0)>>>16;a=te(r+((te(r>>16,a)|0)+((te(r&65535,a)|0)>>>16))<<6>>16,h)|0;r=re(d|0)|0;r=(c|0)==(u|0)?32:r;t=24-r|0;i=0-t|0;do if(t)if((t|0)<0){t=d<>>(t+32|0);break}else{t=d<<32-t|d>>>t;break}else t=d;while(0);k=((r&1|0)==0?46214:32768)>>>(r>>>1);t=(te(t&127,13959168)|0)>>>16;t=a+((te(k+((te(k>>16,t)|0)+((te(k&65535,t)|0)>>>16))<<6&65472,h)|0)>>16)|0}k=s[22976+(p<<2)>>2]|0;i=t<<16>>16;i=b+((te(k>>16,i)|0)+((te(k&65535,i)|0)>>16))|0;t=f}else{s[_+(p<<2)>>2]=256;i=b;t=f}p=p+1|0;b=i;f=t}t=(f|0)/4|0;do if((f|0)>=4){a=re(t|0)|0;a=(f+3|0)>>>0<7?32:a;i=24-a|0;r=0-i|0;do if(i)if((i|0)<0){t=t<>>(i+32|0);break}else{t=t<<32-i|t>>>i;break}while(0);i=((a&1|0)==0?46214:32768)>>>(a>>>1);t=(te(t&127,13959168)|0)>>>16;t=((i+((te(i>>16,t)|0)+((te(i&65535,t)|0)>>>16))|0)*196608>>16)*45e3>>16;i=t+-128|0;if((t|0)<128)if((i|0)<-191){t=0;break}else{t=128-t|0;w=53;break}if((i|0)>191)t=32767;else{t=i>>5;t=(s[23040+(t<<2)>>2]|0)+(te(s[23016+(t<<2)>>2]<<16>>16,i&31)|0)|0}}else{t=128;w=53}while(0);if((w|0)==53){k=t>>5;t=(s[22992+(k<<2)>>2]|0)-(te(s[23016+(k<<2)>>2]<<16>>16,t&31)|0)|0}if((b|0)<0){i=0-b|0;if((b|0)<-191)i=0;else{k=i>>5;i=(s[22992+(k<<2)>>2]|0)-(te(s[23016+(k<<2)>>2]<<16>>16,i&31)|0)|0}}else if((b|0)>191)i=32767;else{i=b>>5;i=(s[23040+(i<<2)>>2]|0)+(te(s[23016+(i<<2)>>2]<<16>>16,b&31)|0)|0}s[e+4804>>2]=(i<<1)+-32768;i=0;r=0;while(1){if((i|0)==4)break;w=i+1|0;k=r+(te(w,(s[g+(i<<2)>>2]|0)-(s[e+92+(i<<2)>>2]|0)>>4)|0)|0;i=w;r=k}if((r|0)>=1){if((r|0)<32768){i=r<<((s[v>>2]|0)==((s[e+4668>>2]|0)*10|0)?16:15);f=re(i|0)|0;r=24-f|0;a=0-r|0;do if(r)if((r|0)<0){i=i<>>(r+32|0);break}else{i=i<<32-r|i>>>r;break}while(0);g=((f&1|0)==0?46214:32768)>>>(f>>>1);k=(te(i&127,13959168)|0)>>>16;k=g+((te(g>>16,k)|0)+((te(g&65535,k)|0)>>>16))+32768|0;t=t<<16>>16;t=(te(k>>16,t)|0)+((te(k&65535,t)|0)>>16)|0}}else t=t>>1;h=t>>7;s[e+4624>>2]=(h|0)<255?h:255;h=t<<16>>16;h=((te(t>>16,h)|0)<<16)+(te(t&65535,h)|0)|0;h=h>>((s[v>>2]|0)==((s[e+4668>>2]|0)*10|0)?21:20);f=0;while(1){ +if((f|0)==4)break;a=e+72+(f<<2)|0;i=s[a>>2]|0;t=(s[_+(f<<2)>>2]|0)-i|0;t=i+((te(t>>16,h)|0)+((te(t&65535,h)|0)>>16))|0;s[a>>2]=t;a=re(t|0)|0;i=24-a|0;r=0-i|0;do if(i)if((i|0)<0){t=t<>>(i+32|0);break}else{t=t<<32-i|t>>>i;break}while(0);t=t&127;t=((t+(((te(t,128-t|0)|0)*179|0)>>>16)+(31-a<<7)|0)*3|0)+-5120|0;i=t>>4;if((i|0)<0){t=0-i|0;if((i|0)<-191)t=0;else{k=t>>5;t=(s[22992+(k<<2)>>2]|0)-(te(s[23016+(k<<2)>>2]<<16>>16,t&31)|0)|0}}else if((i|0)>191)t=32767;else{t=t>>9;t=(s[23040+(t<<2)>>2]|0)+(te(s[23016+(t<<2)>>2]<<16>>16,i&31)|0)|0}s[e+4788+(f<<2)>>2]=t;f=f+1|0}l=y;return}function Ar(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,n=0,a=0;r=s[e+(i<<2)>>2]|0;n=t<<4;if((i|0)==8){t=t<<20>>16;a=(n>>15)+1>>1;i=(s[e+28>>2]|0)+((te(r>>16,t)|0)+((te(r&65535,t)|0)>>16))+(te(r,a)|0)|0;i=(s[e+24>>2]|0)+((te(i>>16,t)|0)+((te(i&65535,t)|0)>>16))+(te(i,a)|0)|0;i=(s[e+20>>2]|0)+((te(i>>16,t)|0)+((te(i&65535,t)|0)>>16))+(te(i,a)|0)|0;i=(s[e+16>>2]|0)+((te(i>>16,t)|0)+((te(i&65535,t)|0)>>16))+(te(i,a)|0)|0;i=(s[e+12>>2]|0)+((te(i>>16,t)|0)+((te(i&65535,t)|0)>>16))+(te(i,a)|0)|0;i=(s[e+8>>2]|0)+((te(i>>16,t)|0)+((te(i&65535,t)|0)>>16))+(te(i,a)|0)|0;i=(s[e+4>>2]|0)+((te(i>>16,t)|0)+((te(i&65535,t)|0)>>16))+(te(i,a)|0)|0;e=(s[e>>2]|0)+((te(i>>16,t)|0)+((te(i&65535,t)|0)>>16))+(te(i,a)|0)|0;return e|0}a=t<<20>>16;n=(n>>15)+1>>1;while(1){t=i+-1|0;if((i|0)<=0)break;i=t;r=(s[e+(t<<2)>>2]|0)+((te(r>>16,a)|0)+((te(r&65535,a)|0)>>16))+(te(r,n)|0)|0}return r|0}function Sr(e,t,i,r,a){e=e|0;t=t|0;i=i|0;r=r|0;a=a|0;var o=0,f=0,h=0,c=0,l=0,u=0,d=0;a=a>>1;o=t+4|0;f=0;while(1){if((f|0)>=(a|0))break;u=f<<1;d=n[e+(u<<1)>>1]<<10;l=d-(s[t>>2]|0)|0;c=(te(l>>16,-24290)|0)+((te(l&65535,-24290)|0)>>16)|0;h=d+c|0;s[t>>2]=d+(l+c);u=n[e+((u|1)<<1)>>1]<<10;c=s[o>>2]|0;l=u-c|0;l=((l>>16)*10788|0)+(((l&65535)*10788|0)>>>16)|0;c=c+l|0;s[o>>2]=u+l;l=(c+h>>10)+1>>1;n[i+(f<<1)>>1]=(l|0)>32767?32767:((l|0)<-32768?-32768:l)&65535;h=(c-h>>10)+1>>1;n[r+(f<<1)>>1]=(h|0)>32767?32767:((h|0)<-32768?-32768:h)&65535;f=f+1|0}return}function Mr(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,n=0,a=0,o=0,f=0,h=0;a=i+-65536|0;n=t+-1|0;r=0;while(1){t=i>>16;if((r|0)>=(n|0))break;o=e+(r<<2)|0;f=s[o>>2]|0;h=f<<16>>16;s[o>>2]=(te(t,h)|0)+((te(i&65535,h)|0)>>16)+(te(i,(f>>15)+1>>1)|0);i=i+(((te(i,a)|0)>>15)+1>>1)|0;r=r+1|0}h=e+(n<<2)|0;f=s[h>>2]|0;o=f<<16>>16;s[h>>2]=(te(t,o)|0)+((te(i&65535,o)|0)>>16)+(te(i,(f>>15)+1>>1)|0);return}function Tr(e,t,i,r,s){e=e|0;t=t|0;i=i|0;r=r|0;s=s|0;var a=0,o=0,f=0,h=0,c=0,l=0,u=0,d=0,p=0,b=0;a=i+2|0;o=i+4|0;f=i+6|0;h=i+8|0;c=i+10|0;u=s;while(1){if((u|0)>=(r|0))break;l=t+(u+-1<<1)|0;p=te(n[l>>1]|0,n[i>>1]|0)|0;p=p+(te(n[l+-2>>1]|0,n[a>>1]|0)|0)|0;p=p+(te(n[l+-4>>1]|0,n[o>>1]|0)|0)|0;p=p+(te(n[l+-6>>1]|0,n[f>>1]|0)|0)|0;p=p+(te(n[l+-8>>1]|0,n[h>>1]|0)|0)|0;d=6;p=p+(te(n[l+-10>>1]|0,n[c>>1]|0)|0)|0;while(1){if((d|0)>=(s|0))break;b=p+(te(n[l+(0-d<<1)>>1]|0,n[i+(d<<1)>>1]|0)|0)|0;b=b+(te(n[l+(~d<<1)>>1]|0,n[i+((d|1)<<1)>>1]|0)|0)|0;d=d+2|0;p=b}b=((n[l+2>>1]<<12)-p>>11)+1>>1;n[e+(u<<1)>>1]=(b|0)>32767?32767:((b|0)<-32768?-32768:b)&65535;u=u+1|0}kn(e|0,0,s<<1|0)|0;return}function xr(e,t){e=e|0;t=t|0;var i=0,r=0,a=0,o=0,f=0,h=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0;k=l;l=l+96|0;_=k;i=0;r=0;while(1){if((r|0)>=(t|0))break;v=n[e+(r<<1)>>1]|0;s[_+(r<<2)>>2]=v<<12;i=i+v|0;r=r+1|0}if((i|0)>4095){l=k;return 0}a=1073741824;r=0;e:while(1){v=t+-1|0;e=s[_+(v<<2)>>2]|0;i=(e+16773022|0)>>>0>33546044;if((t|0)<=1){y=44;break}if(i){y=46;break}w=0-(e<<7)|0;g=((w|0)<0)<<31>>31;Nn(w|0,g|0,w|0,g|0)|0;o=1073741824-C|0;m=Nn(a|0,r|0,o|0,((o|0)<0)<<31>>31|0)|0;m=Sn(m|0,C|0,30)|0;m=m&-4;if((m|0)<107374){y=46;break}if((o|0)<=0)if(!o){e=32;i=30;f=0}else{e=0-o|0;y=11}else{e=o;y=11}if((y|0)==11){y=0;f=32-(re(e|0)|0)|0;e=re(e|0)|0;i=f+30|0}b=o<>16;a=536870911/(u|0)|0;d=a<<16;p=d>>16;b=536870912-((te(u,p)|0)+((te(b&65535,p)|0)>>16))<<3;a=d+((te(b>>16,p)|0)+((te(b&65528,p)|0)>>16))+(te(b,(a>>15)+1>>1)|0)|0;e=62-e-i|0;if((e|0)<1){r=0-e|0;e=-2147483648>>r;i=2147483647>>>r;if((e|0)>(i|0)){if((a|0)<=(e|0))e=(a|0)<(i|0)?i:a}else if((a|0)>(i|0))e=i;else e=(a|0)<(e|0)?e:a;b=e<>e:0;u=t>>1;d=(f|0)==1;p=((b|0)<0)<<31>>31;f=f+-1|0;c=0;while(1){if((c|0)>=(u|0))break;t=_+(c<<2)|0;a=s[t>>2]|0;h=_+(v-c+-1<<2)|0;o=s[h>>2]|0;e=Nn(o|0,((o|0)<0)<<31>>31|0,w|0,g|0)|0;e=Sn(e|0,C|0,30)|0;e=En(e|0,C|0,1,0)|0;e=Sn(e|0,C|0,1)|0;i=a-e|0;r=(i|0)>-1;if(d){if(r){r=(a&(e^-2147483648)|0)<0?-2147483648:i;r=Nn(r|0,((r|0)<0)<<31>>31|0,b|0,p|0)|0;r=An(r|0,C|0,1)|0;e=(a&(e^-2147483648)|0)<0?-2147483648:i;i=r;r=C}else{r=((a^-2147483648)&e|0)<0?2147483647:i;r=Nn(r|0,((r|0)<0)<<31>>31|0,b|0,p|0)|0;r=An(r|0,C|0,1)|0;e=((a^-2147483648)&e|0)<0?2147483647:i;i=r;r=C}e=Nn(e|0,((e|0)<0)<<31>>31|0,b|0,p|0)|0;e=En(i|0,r|0,e&1|0,0)|0;i=C}else{if(r)e=(a&(e^-2147483648)|0)<0?-2147483648:i;else e=((a^-2147483648)&e|0)<0?2147483647:i;e=Nn(e|0,((e|0)<0)<<31>>31|0,b|0,p|0)|0;e=An(e|0,C|0,f|0)|0;e=En(e|0,C|0,1,0)|0;e=An(e|0,C|0,1)|0;i=C}r=En(e|0,i|0,-2147483648,0)|0;i=C;if(i>>>0>0|(i|0)==0&r>>>0>4294967295){y=46;break e}s[t>>2]=e;e=Nn(a|0,((a|0)<0)<<31>>31|0,w|0,g|0)|0;e=Sn(e|0,C|0,30)|0;e=En(e|0,C|0,1,0)|0;e=Sn(e|0,C|0,1)|0;i=o-e|0;r=(i|0)>-1;if(d){if(r){r=(o&(e^-2147483648)|0)<0?-2147483648:i;r=Nn(r|0,((r|0)<0)<<31>>31|0,b|0,p|0)|0;r=An(r|0,C|0,1)|0;e=(o&(e^-2147483648)|0)<0?-2147483648:i;i=r;r=C}else{r=((o^-2147483648)&e|0)<0?2147483647:i;r=Nn(r|0,((r|0)<0)<<31>>31|0,b|0,p|0)|0;r=An(r|0,C|0,1)|0;e=((o^-2147483648)&e|0)<0?2147483647:i;i=r;r=C}e=Nn(e|0,((e|0)<0)<<31>>31|0,b|0,p|0)|0;e=En(i|0,r|0,e&1|0,0)|0;i=C}else{if(r)e=(o&(e^-2147483648)|0)<0?-2147483648:i;else e=((o^-2147483648)&e|0)<0?2147483647:i;e=Nn(e|0,((e|0)<0)<<31>>31|0,b|0,p|0)|0;e=An(e|0,C|0,f|0)|0;e=En(e|0,C|0,1,0)|0;e=An(e|0,C|0,1)|0;i=C}o=En(e|0,i|0,-2147483648,0)|0;a=C;if(a>>>0>0|(a|0)==0&o>>>0>4294967295){y=46;break e}s[h>>2]=e;c=c+1|0}a=m;r=((m|0)<0)<<31>>31;t=v}if((y|0)==44)if(i){l=k;return 0}else{_=0-(s[_>>2]<<7)|0;y=((_|0)<0)<<31>>31;Nn(_|0,y|0,_|0,y|0)|0;y=1073741824-C|0;y=Nn(a|0,r|0,y|0,((y|0)<0)<<31>>31|0)|0;y=Sn(y|0,C|0,30)|0;y=y&-4;l=k;return((y|0)<107374?0:y)|0}else if((y|0)==46){l=k;return 0}return 0}function Rr(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,o=0,f=0,h=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0;g=l;l=l+304|0;d=g+200|0;b=g+148|0;m=g+96|0;w=g;r=(i|0)==16?32909:32925;o=0;while(1){if((o|0)>=(i|0))break;u=n[t+(o<<1)>>1]|0;p=u>>8;c=n[27508+(p<<1)>>1]|0;p=((c<<8)+(te((n[27508+(p+1<<1)>>1]|0)-c|0,u-(p<<8)|0)|0)>>3)+1>>1;s[d+(a[r+o>>0]<<2)>>2]=p;o=o+1|0}p=i>>1;s[b>>2]=65536;u=b+4|0;c=1;r=0-(s[d>>2]|0)|0;while(1){s[u>>2]=r;if((c|0)>=(p|0))break;t=s[d+(c<<1<<2)>>2]|0;h=s[b+(c+-1<<2)>>2]|0;o=((t|0)<0)<<31>>31;r=s[b+(c<<2)>>2]|0;r=Nn(t|0,o|0,r|0,((r|0)<0)<<31>>31|0)|0;r=Sn(r|0,C|0,15)|0;r=En(r|0,C|0,1,0)|0;r=Sn(r|0,C|0,1)|0;f=c+1|0;s[b+(f<<2)>>2]=(h<<1)-r;r=c;while(1){if((r|0)<=1)break;c=s[b+(r+-2<<2)>>2]|0;_=Nn(t|0,o|0,h|0,((h|0)<0)<<31>>31|0)|0;_=Sn(_|0,C|0,15)|0;_=En(_|0,C|0,1,0)|0;_=Sn(_|0,C|0,1)|0;v=b+(r<<2)|0;s[v>>2]=(s[v>>2]|0)+(c-_);h=c;r=r+-1|0}c=f;r=(s[u>>2]|0)-t|0}u=d+4|0;s[m>>2]=65536;d=m+4|0;c=1;r=0-(s[u>>2]|0)|0;while(1){s[d>>2]=r;if((c|0)>=(p|0)){r=0;break}f=s[u+(c<<1<<2)>>2]|0;o=s[m+(c+-1<<2)>>2]|0;h=((f|0)<0)<<31>>31;r=s[m+(c<<2)>>2]|0;r=Nn(f|0,h|0,r|0,((r|0)<0)<<31>>31|0)|0;r=Sn(r|0,C|0,15)|0;r=En(r|0,C|0,1,0)|0;r=Sn(r|0,C|0,1)|0;t=c+1|0;s[m+(t<<2)>>2]=(o<<1)-r;r=c;while(1){if((r|0)<=1)break;_=s[m+(r+-2<<2)>>2]|0;c=Nn(f|0,h|0,o|0,((o|0)<0)<<31>>31|0)|0;c=Sn(c|0,C|0,15)|0;c=En(c|0,C|0,1,0)|0;c=Sn(c|0,C|0,1)|0;v=m+(r<<2)|0;s[v>>2]=(s[v>>2]|0)+(_-c);o=_;r=r+-1|0}c=t;r=(s[d>>2]|0)-f|0}while(1){if((r|0)>=(p|0))break;_=r+1|0;v=(s[b+(_<<2)>>2]|0)+(s[b+(r<<2)>>2]|0)|0;d=(s[m+(_<<2)>>2]|0)-(s[m+(r<<2)>>2]|0)|0;s[w+(r<<2)>>2]=0-d-v;s[w+(i-r+-1<<2)>>2]=d-v;r=_}f=0;r=0;while(1){if((f|0)<10){t=0;o=0}else break;while(1){if((t|0)>=(i|0))break;_=s[w+(t<<2)>>2]|0;_=(_|0)>0?_:0-_|0;v=(_|0)>(o|0);r=v?t:r;t=t+1|0;o=v?_:o}t=(o>>4)+1>>1;if((t|0)<=32767)break;_=(t|0)<163838?t:163838;Mr(w,i,65470-(((_<<14)+-536854528|0)/((te(_,r+1|0)|0)>>2|0)|0)|0);f=f+1|0}e:do if((f|0)==10){r=0;while(1){if((r|0)>=(i|0)){r=0;break e}_=w+(r<<2)|0;v=(s[_>>2]>>4)+1>>1;v=(v|0)>32767?32767:(v|0)<-32768?-32768:v;n[e+(r<<1)>>1]=v;s[_>>2]=v<<16>>11;r=r+1|0}}else{r=0;while(1){if((r|0)>=(i|0)){r=0;break e}n[e+(r<<1)>>1]=(((s[w+(r<<2)>>2]|0)>>>4)+1|0)>>>1;r=r+1|0}}while(0);while(1){if(!((xr(e,i)|0)==0&(r|0)<16))break;Mr(w,i,65536-(2<=(i|0))break;n[e+(t<<1)>>1]=(((s[w+(t<<2)>>2]|0)>>>4)+1|0)>>>1;t=t+1|0}r=r+1|0}l=g;return}function Ir(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,s=0,a=0,f=0,h=0,c=0,l=0,u=0,d=0,p=0,b=0,m=0,w=0;b=e+(i+-1<<1)|0;m=t+(i<<1)|0;d=0;while(1){if((d|0)>=20)break;h=n[e>>1]|0;f=n[t>>1]|0;r=h;s=0;a=1;h=(h<<16>>16)-(f<<16>>16)|0;while(1){if((a|0)>=(i|0))break;c=n[e+(a<<1)>>1]|0;u=(c<<16>>16)-((r<<16>>16)+(n[t+(a<<1)>>1]|0))|0;l=(u|0)<(h|0);r=c;s=l?a:s;a=a+1|0;h=l?u:h}l=32768-((n[b>>1]|0)+(n[m>>1]|0))|0;c=(l|0)<(h|0);u=c?i:s;if(((c?l:h)|0)>-1){p=36;break}do if(!u)n[e>>1]=f;else{if((u|0)==(i|0)){n[b>>1]=32768-(o[m>>1]|0);break}else{r=0;f=0}while(1){if((r|0)>=(u|0))break;l=f+(n[t+(r<<1)>>1]|0)|0;r=r+1|0;f=l}c=t+(u<<1)|0;l=n[c>>1]|0;s=l>>1;r=i;a=32768;while(1){if((r|0)<=(u|0))break;h=a-(n[t+(r<<1)>>1]|0)|0;r=r+-1|0;a=h}r=f+s|0;a=a-s|0;h=e+(u+-1<<1)|0;w=n[h>>1]|0;f=e+(u<<1)|0;s=n[f>>1]|0;s=((w<<16>>16)+(s<<16>>16)>>1)+((w&65535)+(s&65535)&1)|0;if((r|0)>(a|0)){if((s|0)<=(r|0))r=(s|0)<(a|0)?a:s}else if((s|0)>(a|0))r=a;else r=(s|0)<(r|0)?r:s;w=r-(l>>>1)|0;n[h>>1]=w;n[f>>1]=w+(o[c>>1]|0)}while(0);d=d+1|0}if((p|0)==36)return;if((d|0)==20)a=1;else return;while(1){if((a|0)>=(i|0))break;r=n[e+(a<<1)>>1]|0;h=a;while(1){f=h+-1|0;if((h|0)<=0)break;s=n[e+(f<<1)>>1]|0;if(r<<16>>16>=s<<16>>16)break;n[e+(h<<1)>>1]=s;h=f}n[e+(h<<1)>>1]=r;a=a+1|0}s=n[e>>1]|0;r=n[t>>1]|0;r=s<<16>>16>r<<16>>16?s:r;n[e>>1]=r;r=r<<16>>16;s=1;while(1){if((s|0)>=(i|0))break;p=e+(s<<1)|0;d=n[p>>1]|0;w=r+(n[t+(s<<1)>>1]|0)|0;w=(w|0)>32767?32767:((w|0)<-32768?-32768:w)<<16>>16;w=(d|0)>(w|0)?d:w;n[p>>1]=w;r=w;s=s+1|0}r=n[b>>1]|0;s=32768-(n[m>>1]|0)|0;s=(r|0)<(s|0)?r:s;n[b>>1]=s;r=i+-2|0;while(1){if((r|0)<=-1)break;i=e+(r<<1)|0;m=n[i>>1]|0;w=(s<<16>>16)-(n[t+(r+1<<1)>>1]|0)|0;w=(m|0)<(w|0)?m:w;n[i>>1]=w;s=w;r=r+-1|0}return}function Cr(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,s=0,a=0,o=0,f=0,h=0;r=n[t>>1]|0;s=(n[t+2>>1]|0)-(r<<16>>16)|0;s=131072/(((s|0)>1?s:1)|0)|0;r=(131072/((r<<16>>16>1?r:1)<<16>>16|0)|0)+s|0;n[e>>1]=(r|0)<32767?r:32767;i=i+-1|0;r=1;while(1){if((r|0)>=(i|0))break;f=r+1|0;a=t+(f<<1)|0;h=(n[a>>1]|0)-(n[t+(r<<1)>>1]|0)|0;h=131072/(((h|0)>1?h:1)|0)|0;o=h+s|0;n[e+(r<<1)>>1]=(o|0)<32767?o:32767;o=r+2|0;a=(n[t+(o<<1)>>1]|0)-(n[a>>1]|0)|0;a=131072/(((a|0)>1?a:1)|0)|0;h=h+a|0;n[e+(f<<1)>>1]=(h|0)<32767?h:32767;r=o;s=a}h=32768-(n[t+(i<<1)>>1]|0)|0;h=(131072/(((h|0)>1?h:1)|0)|0)+s|0;n[e+(i<<1)>>1]=(h|0)<32767?h:32767;return}function Pr(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var a=0,o=0,f=0,h=0,c=0,l=0,u=0;r=r>>1;a=e+4|0;o=0;while(1){if((o|0)>=(r|0))break;u=o<<1;l=n[i+(u<<1)>>1]<<10;h=l-(s[e>>2]|0)|0;c=(te(h>>16,-25727)|0)+((te(h&65535,-25727)|0)>>16)|0;s[e>>2]=l+(h+c);u=n[i+((u|1)<<1)>>1]<<10;h=s[a>>2]|0;f=u-h|0;f=((f>>16)*9872|0)+(((f&65535)*9872|0)>>>16)|0;s[a>>2]=u+f;f=(l+c+h+f>>10)+1>>1;n[t+(o<<1)>>1]=(f|0)>32767?32767:((f|0)<-32768?-32768:f)&65535;o=o+1|0}return}function Or(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var n=0,a=0,o=0,f=0,h=0,c=0;n=0;while(1){if((n|0)>=(r|0)){o=1;break}s[t+(n<<2)>>2]=n;n=n+1|0}while(1){if((o|0)>=(r|0))break;a=s[e+(o<<2)>>2]|0;h=o;while(1){f=h+-1|0;if((h|0)<=0)break;n=s[e+(f<<2)>>2]|0;if((a|0)>=(n|0))break;s[e+(h<<2)>>2]=n;s[t+(h<<2)>>2]=s[t+(f<<2)>>2];h=f}s[e+(h<<2)>>2]=a;s[t+(h<<2)>>2]=o;o=o+1|0}h=e+(r+-1<<2)|0;c=r+-2|0;o=r;while(1){if((o|0)>=(i|0))break;n=s[e+(o<<2)>>2]|0;if((n|0)<(s[h>>2]|0)){f=c;while(1){if((f|0)<=-1)break;a=s[e+(f<<2)>>2]|0;if((n|0)>=(a|0))break;r=f+1|0;s[e+(r<<2)>>2]=a;s[t+(r<<2)>>2]=s[t+(f<<2)>>2];f=f+-1|0}r=f+1|0;s[e+(r<<2)>>2]=n;s[t+(r<<2)>>2]=o}o=o+1|0}return}function Nr(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var a=0,o=0,f=0,h=0,c=0,l=0,u=0;h=31-(re(r|0)|0)|0;c=r+-1|0;o=((c|0)>0?c:0)+1&-2;f=0;a=r;while(1){if((f|0)>=(c|0))break;u=n[i+(f<<1)>>1]|0;u=te(u,u)|0;l=n[i+((f|1)<<1)>>1]|0;f=f+2|0;a=a+((u+(te(l,l)|0)|0)>>>h)|0}if((o|0)<(r|0)){u=n[i+(o<<1)>>1]|0;a=a+((te(u,u)|0)>>>h)|0}a=h+3-(re(a|0)|0)|0;a=(a|0)<0?0:a;o=r+-1|0;o=((o|0)>0?o:0)+1&-2;f=0;h=0;while(1){if((f|0)>=(c|0))break;l=n[i+(f<<1)>>1]|0;l=te(l,l)|0;u=n[i+((f|1)<<1)>>1]|0;f=f+2|0;h=h+((l+(te(u,u)|0)|0)>>>a)|0}if((o|0)>=(r|0)){u=h;s[t>>2]=a;s[e>>2]=u;return}u=n[i+(o<<1)>>1]|0;u=h+((te(u,u)|0)>>>a)|0;s[t>>2]=a;s[e>>2]=u;return}function Dr(e,t,i,r,n,s){e=e|0;t=t|0;i=+i;r=r|0;n=n|0;s=s|0;var a=0,o=0,f=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0,C=0,P=0,O=0,N=0;I=l;l=l+976|0;A=I+784|0;S=I+592|0;x=I+392|0;E=I+192|0;R=I;a=+tr(t,te(n,r)|0);kn(A|0,0,192)|0;u=0;while(1){if((u|0)>=(n|0))break;o=t+((te(u,r)|0)<<2)|0;f=1;while(1){if((f|0)>(s|0))break;T=+ir(o,o+(f<<2)|0,r-f|0);k=A+(f+-1<<3)|0;c[k>>3]=+c[k>>3]+T;f=f+1|0}u=u+1|0}Mn(S|0,A|0,192)|0;T=a*9999999747378752e-21;_=a+T+9.999999717180685e-10;c[x>>3]=_;c[E>>3]=_;_=i;y=1;f=0;k=2;v=1;while(1){if((f|0)>=(s|0))break;u=r-f|0;p=u+-1|0;w=0;while(1){if((w|0)>=(n|0))break;m=t+((te(w,r)|0)<<2)|0;i=+h[m+(f<<2)>>2];d=+h[m+(p<<2)>>2];o=0;b=i;g=d;while(1){if((f|0)==(o|0)){o=0;break}O=+h[m+(f-o+-1<<2)>>2];N=A+(o<<3)|0;c[N>>3]=+c[N>>3]-i*O;P=+h[m+(u+o<<2)>>2];N=S+(o<<3)|0;c[N>>3]=+c[N>>3]-d*P;C=+c[R+(o<<3)>>3];o=o+1|0;b=b+O*C;g=g+P*C}while(1){if((o|0)==(y|0))break;N=x+(o<<3)|0;c[N>>3]=+c[N>>3]-b*+h[m+(f-o<<2)>>2];N=E+(o<<3)|0;c[N>>3]=+c[N>>3]-g*+h[m+(u+o+-1<<2)>>2];o=o+1|0}w=w+1|0}o=0;i=+c[A+(f<<3)>>3];b=+c[S+(f<<3)>>3];while(1){if((f|0)==(o|0))break;O=+c[R+(o<<3)>>3];N=f-o+-1|0;o=o+1|0;i=i+ +c[S+(N<<3)>>3]*O;b=b+ +c[A+(N<<3)>>3]*O}m=f+1|0;c[x+(m<<3)>>3]=i;c[E+(m<<3)>>3]=b;o=0;i=+c[E>>3];d=+c[x>>3];while(1){if((f|0)==(o|0))break;P=+c[R+(o<<3)>>3];N=o+1|0;O=b+ +c[E+(f-o<<3)>>3]*P;o=N;i=i+ +c[E+(N<<3)>>3]*P;d=d+ +c[x+(N<<3)>>3]*P;b=O}d=b*-2/(d+i);i=v*(1-d*d);if(!(i<=_))o=0;else{d=+H(+(1-_/v));i=_;d=b>0?-d:d;o=1}u=m>>1;p=0;while(1){if((p|0)>=(u|0))break;w=R+(p<<3)|0;O=+c[w>>3];N=R+(f-p+-1<<3)|0;P=+c[N>>3];c[w>>3]=O+d*P;c[N>>3]=P+d*O;p=p+1|0}c[R+(f<<3)>>3]=d;if(!o)o=0;else{M=29;break}while(1){if((o|0)==(k|0))break;w=x+(o<<3)|0;O=+c[w>>3];N=E+(f-o+1<<3)|0;P=+c[N>>3];c[w>>3]=O+d*P;c[N>>3]=P+d*O;o=o+1|0}y=y+1|0;f=m;k=k+1|0;v=i}if((M|0)==29){while(1){f=f+1|0;if((f|0)>=(s|0))break;c[R+(f<<3)>>3]=0;M=29}if(o|0){o=0;while(1){if((o|0)>=(s|0)){o=0;break}h[e+(o<<2)>>2]=-+c[R+(o<<3)>>3];o=o+1|0}while(1){if((o|0)>=(n|0))break;a=a-+tr(t+((te(o,r)|0)<<2)|0,s);o=o+1|0}O=a*i;l=I;return+O}}o=0;a=+c[x>>3];i=1;while(1){if((o|0)>=(s|0))break;O=+c[R+(o<<3)>>3];N=o+1|0;P=+c[x+(N<<3)>>3];h[e+(o<<2)>>2]=-O;o=N;a=a+P*O;i=i+O*O}O=a-T*i;l=I;return+O}function Lr(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var a=0,o=0,f=0,h=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0,C=0,P=0,O=0,N=0;N=l;l=l+32|0;O=N;p=e+2772|0;a=e+2316|0;f=e+4156|0;if((s[a>>2]|0)!=(s[f>>2]|0)){h=e+2340|0;o=s[h>>2]|0;c=32767/(o+1|0)|0;u=0;d=0;while(1){if((d|0)>=(o|0))break;P=u+c|0;n[e+4052+(d<<1)>>1]=P;o=s[h>>2]|0;u=P;d=d+1|0}s[e+4148>>2]=0;s[e+4152>>2]=3176576;s[f>>2]=s[a>>2]}u=e+4160|0;do if(!(s[u>>2]|0)){if(!(s[e+4164>>2]|0)){a=e+2340|0;o=0;while(1){if((o|0)>=(s[a>>2]|0))break;I=n[e+2344+(o<<1)>>1]|0;P=e+4052+(o<<1)|0;R=n[P>>1]|0;C=R&65535;n[P>>1]=C+((((I<<16>>16)-(R<<16>>16)>>16)*16348|0)+((((I&65535)-C&65535)*16348|0)>>>16));o=o+1|0}c=e+2324|0;a=s[c>>2]|0;o=0;f=0;h=0;while(1){if((o|0)>=(a|0))break;C=s[t+16+(o<<2)>>2]|0;I=(C|0)>(f|0);P=I?o:h;o=o+1|0;f=I?C:f;h=P}f=e+2332|0;o=s[f>>2]|0;Tn(e+2772+(o<<2)|0,p|0,(te(a+-1|0,o)|0)<<2|0)|0;f=s[f>>2]|0;Mn(p|0,e+4+((te(h,f)|0)<<2)|0,f<<2|0)|0;f=e+4148|0;a=s[c>>2]|0;o=0;while(1){if((o|0)>=(a|0))break;C=s[f>>2]|0;P=(s[t+16+(o<<2)>>2]|0)-C|0;s[f>>2]=C+(((P>>16)*4634|0)+(((P&65535)*4634|0)>>>16));o=o+1|0}if(s[u>>2]|0)break}kn(e+4084|0,0,s[e+2340>>2]<<2|0)|0;l=N;return}while(0);C=Ne()|0;P=l;l=l+((1*(r+16<<2)|0)+15&-16)|0;I=n[e+4224>>1]|0;a=I<<16>>16;o=s[e+4244>>2]|0;h=o<<16>>16;o=(te(a>>16,h)|0)+((te(I&65535,h)|0)>>16)+(te(a,(o>>15)+1>>1)|0)|0;a=s[e+4148>>2]|0;h=o>>16;if((o|0)>2097151|(a|0)>8388608){f=a>>16;f=te(f,f)|0;o=(te(h,h)|0)<<5;a=f-o|0;if((a|0)<1)u=0;else{h=re(a|0)|0;h=(f|0)==(o|0)?32:h;o=24-h|0;f=0-o|0;do if(o)if((o|0)<0){a=a<>>(o+32|0);break}else{a=a<<32-o|a>>>o;break}while(0);I=((h&1|0)==0?46214:32768)>>>(h>>>1);u=(te(a&127,13959168)|0)>>>16;u=I+((te(I>>16,u)|0)+((te(I&65535,u)|0)>>>16))<<16}}else{I=o<<16>>16;f=a<<16>>16;f=(te(a>>16,f)|0)+((te(a&65535,f)|0)>>16)+(te(a,(a>>15)+1>>1)|0)|0;o=(te(h,I)|0)+((te(o&65535,I)|0)>>16)+(te(o,(o>>15)+1>>1)|0)<<5;a=f-o|0;if((a|0)<1)u=0;else{h=re(a|0)|0;h=(f|0)==(o|0)?32:h;o=24-h|0;f=0-o|0;do if(o)if((o|0)<0){a=a<>>(o+32|0);break}else{a=a<<32-o|a>>>o;break}while(0);I=((h&1|0)==0?46214:32768)>>>(h>>>1);u=(te(a&127,13959168)|0)>>>16;u=I+((te(I>>16,u)|0)+((te(I&65535,u)|0)>>>16))<<8}}a=P+64|0;f=255;while(1){if((f|0)<=(r|0))break;f=f>>1}o=e+4152|0;h=0;c=s[o>>2]|0;while(1){if((h|0)>=(r|0))break;I=(te(c,196314165)|0)+907633515|0;s[a+(h<<2)>>2]=s[e+2772+((I>>24&f)<<2)>>2];h=h+1|0;c=I}s[o>>2]=c;I=e+2340|0;Rr(O,e+4052|0,s[I>>2]|0);R=e+4084|0;a=P;o=R;f=a+64|0;do{s[a>>2]=s[o>>2];a=a+4|0;o=o+4|0}while((a|0)<(f|0));e=n[O>>1]|0;b=n[O+2>>1]|0;m=n[O+4>>1]|0;w=n[O+6>>1]|0;g=n[O+8>>1]|0;v=n[O+10>>1]|0;_=n[O+12>>1]|0;y=n[O+14>>1]|0;k=n[O+16>>1]|0;E=n[O+18>>1]|0;A=n[O+20>>1]|0;S=n[O+22>>1]|0;M=n[O+24>>1]|0;T=n[O+26>>1]|0;x=n[O+28>>1]|0;p=n[O+30>>1]|0;t=u<<10>>16;u=(u>>21)+1>>1;d=0;while(1){if((d|0)>=(r|0))break;O=s[P+(d+15<<2)>>2]|0;O=(s[I>>2]>>1)+((te(O>>16,e)|0)+((te(O&65535,e)|0)>>16))|0;a=s[P+(d+14<<2)>>2]|0;a=O+((te(a>>16,b)|0)+((te(a&65535,b)|0)>>16))|0;O=s[P+(d+13<<2)>>2]|0;O=a+((te(O>>16,m)|0)+((te(O&65535,m)|0)>>16))|0;a=s[P+(d+12<<2)>>2]|0;a=O+((te(a>>16,w)|0)+((te(a&65535,w)|0)>>16))|0;O=s[P+(d+11<<2)>>2]|0;O=a+((te(O>>16,g)|0)+((te(O&65535,g)|0)>>16))|0;a=s[P+(d+10<<2)>>2]|0;a=O+((te(a>>16,v)|0)+((te(a&65535,v)|0)>>16))|0;O=s[P+(d+9<<2)>>2]|0;O=a+((te(O>>16,_)|0)+((te(O&65535,_)|0)>>16))|0;a=s[P+(d+8<<2)>>2]|0;a=O+((te(a>>16,y)|0)+((te(a&65535,y)|0)>>16))|0;O=s[P+(d+7<<2)>>2]|0;O=a+((te(O>>16,k)|0)+((te(O&65535,k)|0)>>16))|0;a=s[P+(d+6<<2)>>2]|0;a=O+((te(a>>16,E)|0)+((te(a&65535,E)|0)>>16))|0;if((s[I>>2]|0)==16){O=s[P+(d+5<<2)>>2]|0;O=a+((te(O>>16,A)|0)+((te(O&65535,A)|0)>>16))|0;a=s[P+(d+4<<2)>>2]|0;a=O+((te(a>>16,S)|0)+((te(a&65535,S)|0)>>16))|0;O=s[P+(d+3<<2)>>2]|0;O=a+((te(O>>16,M)|0)+((te(O&65535,M)|0)>>16))|0;a=s[P+(d+2<<2)>>2]|0;a=O+((te(a>>16,T)|0)+((te(a&65535,T)|0)>>16))|0;O=s[P+(d+1<<2)>>2]|0;O=a+((te(O>>16,x)|0)+((te(O&65535,x)|0)>>16))|0;a=s[P+(d<<2)>>2]|0;a=O+((te(a>>16,p)|0)+((te(a&65535,p)|0)>>16))|0}c=P+(d+16<<2)|0;o=s[c>>2]|0;f=(a|0)>134217727;h=f?2147483632:((a|0)<-134217728?-134217728:a)<<4;if((o+(f?2147483632:((a|0)<-134217728?-134217728:a)<<4)|0)>-1)if((o&h|0)<0)a=-2147483648;else a=o+(f?2147483632:((a|0)<-134217728?-134217728:a)<<4)|0;else if((o|h|0)>-1)a=2147483647;else a=o+(f?2147483632:((a|0)<-134217728?-134217728:a)<<4)|0;s[c>>2]=a;h=i+(d<<1)|0;f=n[h>>1]|0;a=((te(a>>16,t)|0)+((te(a&65535,t)|0)>>16)+(te(a,u)|0)>>7)+1>>1;o=(a|0)>32767;if((f+(o?32767:(a|0)<-32768?-32768:a)|0)<=32767)if((f+(o?32767:(a|0)<-32768?-32768:a)|0)<-32768)a=-32768;else a=f+(o?32767:(a|0)<-32768?-32768:a)|0;else a=32767;n[h>>1]=a;d=d+1|0}a=R;o=P+(r<<2)|0;f=a+64|0;do{s[a>>2]=s[o>>2];a=a+4|0;o=o+4|0}while((a|0)<(f|0));qe(C|0);l=N;return}function Br(e,t,i,a){e=e|0;t=t|0;i=i|0;a=a|0;var o=0,f=0,h=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,q=0,H=0,G=0,V=0,W=0,K=0,Y=0,Z=0,$=0,X=0,J=0,Q=0,ee=0,ie=0,ne=0,se=0;ne=l;l=l+32|0;ie=ne;Y=e+2336|0;Q=s[Y>>2]|0;X=l;l=l+((1*(Q<<1)|0)+15&-16)|0;p=e+2328|0;f=s[p>>2]|0;J=l;l=l+((1*(Q+f<<2)|0)+15&-16)|0;Q=e+2332|0;d=s[Q>>2]|0;ee=l;l=l+((1*(d<<2)|0)+15&-16)|0;Z=l;l=l+((1*(d+16<<2)|0)+15&-16)|0;d=n[e+2766>>1]|0;$=e+2765|0;m=(d&65535)>>>8&255;d=n[25404+(r[$>>0]>>1<<2)+((d&65535)<<24>>24<<1)>>1]<<4;b=0;o=r[e+2770>>0]|0;while(1){if((b|0)>=(f|0))break;c=(te(o,196314165)|0)+907633515|0;u=a+(b<<1)|0;f=n[u>>1]|0;o=f<<16>>16<<14;h=e+4+(b<<2)|0;s[h>>2]=o;if(f<<16>>16<=0){if(f<<16>>16<0){o=o|1280;s[h>>2]=o}}else{o=o+-1280|0;s[h>>2]=o}f=o+d|0;s[h>>2]=(c|0)<0?0-f|0:f;f=s[p>>2]|0;b=b+1|0;o=c+(n[u>>1]|0)|0}q=e+1284|0;o=Z;f=q;h=o+64|0;do{s[o>>2]=s[f>>2];o=o+4|0;f=f+4|0}while((o|0)<(h|0));H=e+2324|0;G=e+2340|0;V=e+4160|0;W=t+136|0;_=m<<24>>24>3;y=ie+2|0;k=ie+4|0;E=ie+6|0;A=ie+8|0;S=ie+10|0;M=ie+12|0;T=ie+14|0;x=ie+16|0;R=ie+18|0;I=ie+20|0;P=ie+22|0;O=ie+24|0;N=ie+26|0;D=ie+28|0;L=ie+30|0;B=e+4164|0;U=e+2308|0;j=0;F=e+4|0;z=i;a=s[Y>>2]|0;while(1){if((j|0)>=(s[H>>2]|0))break;p=t+32+(j>>1<<5)|0;Mn(ie|0,p|0,s[G>>2]<<1|0)|0;w=t+96+(j*5<<1)|0;d=r[$>>0]|0;v=s[t+16+(j<<2)>>2]|0;g=v>>>6;u=(v|0)>0;if(!u)if(!v)o=32;else{o=0-v|0;K=12}else{o=v;K=12}if((K|0)==12){K=0;o=re(o|0)|0}f=v<>16;c=536870911/(h|0)|0;b=c<<16;m=b>>16;f=536870912-((te(h,m)|0)+((te(f&65535,m)|0)>>16))<<3;c=b+((te(f>>16,m)|0)+((te(f&65528,m)|0)>>16))+(te(f,(c>>15)+1>>1)|0)|0;o=62-o|0;f=o+-47|0;if((f|0)<1){h=47-o|0;o=-2147483648>>h;f=2147483647>>>h;if((o|0)>(f|0)){if((c|0)<=(o|0))o=(c|0)<(f|0)?f:c}else if((c|0)>(f|0))o=f;else o=(c|0)<(o|0)?o:c;o=o<>f:0;h=s[e>>2]|0;e:do if((v|0)==(h|0))u=65536;else{if((h|0)<=0)if(!h)c=32;else{f=0-h|0;K=24}else{f=h;K=24}if((K|0)==24){K=0;c=re(f|0)|0}h=h<>16|0)|0)<<16>>16;m=(te(h>>16,u)|0)+((te(h&65535,u)|0)>>16)|0;b=Nn(b|0,((b|0)<0)<<31>>31|0,m|0,((m|0)<0)<<31>>31|0)|0;b=Sn(b|0,C|0,29)|0;h=h-(b&-8)|0;u=m+((te(h>>16,u)|0)+((te(h&65535,u)|0)>>16))|0;f=c+28-f|0;h=f+-16|0;if((f|0)<16){c=16-f|0;f=-2147483648>>c;h=2147483647>>>c;if((f|0)>(h|0)){if((u|0)<=(f|0))f=(u|0)<(h|0)?h:u}else if((u|0)>(h|0))f=h;else f=(u|0)<(f|0)?f:u;f=f<>h:0;h=f>>16;c=f&65535;u=0;while(1){if((u|0)==16){u=f;break e}m=Z+(u<<2)|0;b=s[m>>2]|0;se=b<<16>>16;s[m>>2]=(te(h,se)|0)+((te(c,se)|0)>>16)+(te(f,(b>>15)+1>>1)|0);u=u+1|0}}while(0);s[e>>2]=v;if((s[V>>2]|0)!=0?d<<24>>24!=2&(s[B>>2]|0)==2&(j|0)<2:0){n[w>>1]=0;n[w+2>>1]=0;n[w+4>>1]=0;n[w+6>>1]=0;n[w+8>>1]=0;n[w+4>>1]=4096;m=s[U>>2]|0;s[t+(j<<2)>>2]=m;K=44}else if(d<<24>>24==2){m=s[t+(j<<2)>>2]|0;K=44}else b=F;e:do if((K|0)==44){K=0;d=(j|0)==0;t:do if(!d){if(!((j|0)!=2|_)){h=s[Y>>2]|0;c=s[G>>2]|0;f=h-m-c+-2|0;if((j|0)!=2){K=49;break}Mn(e+1348+(h<<1)|0,i|0,s[Q>>2]<<2|0)|0;h=s[Y>>2]|0;c=s[G>>2]|0;K=49;break}if((u|0)!=65536){o=m+2|0;f=u>>16;h=u&65535;c=0;while(1){if((c|0)>=(o|0))break t;se=J+(a-c+-1<<2)|0;b=s[se>>2]|0;p=b<<16>>16;s[se>>2]=(te(f,p)|0)+((te(h,p)|0)>>16)+(te(u,(b>>15)+1>>1)|0);c=c+1|0}}}else{h=s[Y>>2]|0;c=s[G>>2]|0;f=h-m-c+-2|0;K=49}while(0);t:do if((K|0)==49){K=0;Tr(X+(f<<1)|0,e+1348+(f+(te(j,s[Q>>2]|0)|0)<<1)|0,p,h-f|0,c);if(d){se=s[W>>2]<<16>>16;o=(te(o>>16,se)|0)+((te(o&65535,se)|0)>>16)<<2}h=m+2|0;c=o>>16;o=o&65535;f=0;while(1){if((f|0)>=(h|0))break t;se=n[X+((s[Y>>2]|0)-f+-1<<1)>>1]|0;s[J+(a-f+-1<<2)>>2]=(te(c,se)|0)+((te(o,se)|0)>>16);f=f+1|0}}while(0);c=w+2|0;u=w+4|0;d=w+6|0;p=w+8|0;h=s[Q>>2]|0;b=0;o=J+(a-m+2<<2)|0;f=a;while(1){if((b|0)>=(h|0)){b=ee;a=f;break e}m=s[o>>2]|0;se=n[w>>1]|0;se=(te(m>>16,se)|0)+((te(m&65535,se)|0)>>16)+2|0;m=s[o+-4>>2]|0;a=n[c>>1]|0;a=se+((te(m>>16,a)|0)+((te(m&65535,a)|0)>>16))|0;m=s[o+-8>>2]|0;se=n[u>>1]|0;se=a+((te(m>>16,se)|0)+((te(m&65535,se)|0)>>16))|0;m=s[o+-12>>2]|0;a=n[d>>1]|0;a=se+((te(m>>16,a)|0)+((te(m&65535,a)|0)>>16))|0;m=s[o+-16>>2]|0;se=n[p>>1]|0;se=a+((te(m>>16,se)|0)+((te(m&65535,se)|0)>>16))|0;se=(s[F+(b<<2)>>2]|0)+(se<<1)|0;s[ee+(b<<2)>>2]=se;s[J+(f<<2)>>2]=se<<1;b=b+1|0;o=o+4|0;f=f+1|0}}while(0);p=g<<16>>16;u=(v>>21)+1>>1;d=0;while(1){c=s[Q>>2]|0;if((d|0)>=(c|0))break;se=s[Z+(d+15<<2)>>2]|0;v=n[ie>>1]|0;v=(s[G>>2]>>1)+((te(se>>16,v)|0)+((te(se&65535,v)|0)>>16))|0;se=s[Z+(d+14<<2)>>2]|0;o=n[y>>1]|0;o=v+((te(se>>16,o)|0)+((te(se&65535,o)|0)>>16))|0;se=s[Z+(d+13<<2)>>2]|0;v=n[k>>1]|0;v=o+((te(se>>16,v)|0)+((te(se&65535,v)|0)>>16))|0;se=s[Z+(d+12<<2)>>2]|0;o=n[E>>1]|0;o=v+((te(se>>16,o)|0)+((te(se&65535,o)|0)>>16))|0;se=s[Z+(d+11<<2)>>2]|0;v=n[A>>1]|0;v=o+((te(se>>16,v)|0)+((te(se&65535,v)|0)>>16))|0;se=s[Z+(d+10<<2)>>2]|0;o=n[S>>1]|0;o=v+((te(se>>16,o)|0)+((te(se&65535,o)|0)>>16))|0;se=s[Z+(d+9<<2)>>2]|0;v=n[M>>1]|0;v=o+((te(se>>16,v)|0)+((te(se&65535,v)|0)>>16))|0;se=s[Z+(d+8<<2)>>2]|0;o=n[T>>1]|0;o=v+((te(se>>16,o)|0)+((te(se&65535,o)|0)>>16))|0;se=s[Z+(d+7<<2)>>2]|0;v=n[x>>1]|0;v=o+((te(se>>16,v)|0)+((te(se&65535,v)|0)>>16))|0;se=s[Z+(d+6<<2)>>2]|0;o=n[R>>1]|0;o=v+((te(se>>16,o)|0)+((te(se&65535,o)|0)>>16))|0;if((s[G>>2]|0)==16){se=s[Z+(d+5<<2)>>2]|0;v=n[I>>1]|0;v=o+((te(se>>16,v)|0)+((te(se&65535,v)|0)>>16))|0;se=s[Z+(d+4<<2)>>2]|0;o=n[P>>1]|0;o=v+((te(se>>16,o)|0)+((te(se&65535,o)|0)>>16))|0;se=s[Z+(d+3<<2)>>2]|0;v=n[O>>1]|0;v=o+((te(se>>16,v)|0)+((te(se&65535,v)|0)>>16))|0;se=s[Z+(d+2<<2)>>2]|0;o=n[N>>1]|0;o=v+((te(se>>16,o)|0)+((te(se&65535,o)|0)>>16))|0;se=s[Z+(d+1<<2)>>2]|0;v=n[D>>1]|0;v=o+((te(se>>16,v)|0)+((te(se&65535,v)|0)>>16))|0;se=s[Z+(d<<2)>>2]|0;o=n[L>>1]|0;o=v+((te(se>>16,o)|0)+((te(se&65535,o)|0)>>16))|0}f=s[b+(d<<2)>>2]|0;h=(o|0)>134217727;c=h?2147483632:((o|0)<-134217728?-134217728:o)<<4;if((f+(h?2147483632:((o|0)<-134217728?-134217728:o)<<4)|0)>-1)if((f&c|0)<0)o=-2147483648;else o=f+(h?2147483632:((o|0)<-134217728?-134217728:o)<<4)|0;else if((f|c|0)>-1)o=2147483647;else o=f+(h?2147483632:((o|0)<-134217728?-134217728:o)<<4)|0;s[Z+(d+16<<2)>>2]=o;se=((te(o>>16,p)|0)+((te(o&65535,p)|0)>>16)+(te(o,u)|0)>>7)+1>>1;n[z+(d<<1)>>1]=(se|0)>32767?32767:((se|0)<-32768?-32768:se)&65535;d=d+1|0}o=Z;f=Z+(c<<2)|0;h=o+64|0;do{s[o>>2]=s[f>>2];o=o+4|0;f=f+4|0}while((o|0)<(h|0));j=j+1|0;F=F+(c<<2)|0;z=z+(c<<1)|0}o=q;f=Z;h=o+64|0;do{s[o>>2]=s[f>>2];o=o+4|0;f=f+4|0}while((o|0)<(h|0));l=ne;return}function Ur(e,t,i,f,h,c,u){e=e|0;t=t|0;i=i|0;f=f|0;h=h|0;c=c|0;u=u|0;var d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,q=0,H=0,G=0,V=0,W=0,K=0,Y=0,Z=0,$=0,X=0,J=0,Q=0,ee=0,ie=0,ne=0,se=0,ae=0,oe=0,fe=0;se=l;l=l+448|0;X=se+232|0;$=se+376|0;ie=se+344|0;G=se+200|0;W=se+184|0;V=se+168|0;J=se+88|0;Q=se+8|0;Y=se;ne=se+312|0;K=se+280|0;ee=se+360|0;Z=se+248|0;q=i+2|0;Ir(t,s[i+36>>2]|0,n[q>>1]|0);d=s[i>>2]|0;k=l;l=l+((1*((d&65535)<<2)|0)+15&-16)|0;H=i+8|0;z=i+12|0;y=d<<16>>16;d=d>>16;p=s[H>>2]|0;b=0;_=s[z>>2]|0;while(1){if((b|0)<(y|0)){w=d;g=0;v=0}else break;while(1){m=w+-2|0;if((m|0)<=-1)break;U=w+-1|0;U=te((o[t+(U<<1)>>1]|0)-(a[p+U>>0]<<7)<<16>>16,n[_+(U<<1)>>1]|0)|0;B=g>>1;F=te((o[t+(m<<1)>>1]|0)-(a[p+m>>0]<<7)<<16>>16,n[_+(m<<1)>>1]|0)|0;j=U>>1;w=m;g=F;v=v+((U|0)>(B|0)?U-B|0:B-U|0)+((F|0)>(j|0)?F-j|0:j-F|0)|0}s[k+(b<<2)>>2]=v;p=p+d|0;b=b+1|0;_=_+(d<<1)|0}F=l;l=l+((1*(c<<2)|0)+15&-16)|0;Or(k,F,y,c);D=l;l=l+((1*(c<<2)|0)+15&-16)|0;L=l;l=l+((1*(c<<4)|0)+15&-16)|0;B=i+32|0;U=i+4|0;j=h<<16>>16;O=u>>1;N=i+16|0;I=h<<14>>16;P=0;while(1){if((P|0)>=(c|0))break;R=s[F+(P<<2)>>2]|0;w=n[q>>1]|0;v=te(R,w)|0;g=(s[H>>2]|0)+v|0;v=(s[z>>2]|0)+(v<<1)|0;_=0;while(1){if((_|0)>=(w|0))break;x=n[v+(_<<1)>>1]|0;n[ne+(_<<1)>>1]=(te((o[t+(_<<1)>>1]|0)-(a[g+_>>0]<<7)<<16>>16,x)|0)>>>14;p=n[f+(_<<1)>>1]|0;M=p<<16>>16;x=te(x,x)|0;p=re((p<<16>>16>0?M:0-M|0)|0)|0;M=M<>16|0)|0)<<16>>16;T=(te(M>>16,m)|0)+((te(M&65535,m)|0)>>16)|0;x=Nn(x|0,((x|0)<0)<<31>>31|0,T|0,((T|0)<0)<<31>>31|0)|0;x=Sn(x|0,C|0,29)|0;x=M-(x&-8)|0;m=T+((te(x>>16,m)|0)+((te(x&65535,m)|0)>>16))|0;d=p+28-d|0;p=d+-21|0;if((d|0)<21){b=21-d|0;d=-2147483648>>b;p=2147483647>>>b;if((d|0)>(p|0)){if((m|0)<=(d|0))d=(m|0)<(p|0)?p:m}else if((m|0)>(p|0))d=p;else d=(m|0)<(d|0)?d:m;d=d<>p:0;n[K+(_<<1)>>1]=d;_=_+1|0}Bi(Z,ee,i,R);x=P<<4;T=s[B>>2]|0;g=s[U>>2]|0;b=g<<16>>16;m=n[q>>1]|0;w=-10;while(1){if((w|0)==10)break;d=w<<10;p=d+1024|0;e:do if((w|0)>0){d=(w<<26>>16)+-102|0;p=(p<<16>>16)+-102|0}else{switch(w|0){case 0:{p=(p<<16>>16)+-102|0;break e}case-1:{d=-1024;break}default:p=p|102}d=d|102}while(0);M=w+10|0;s[J+(M<<2)>>2]=(te(d<<16>>16,b)|0)>>16;s[Q+(M<<2)>>2]=(te(p<<16>>16,b)|0)>>16;w=w+1|0}s[G>>2]=0;n[ie>>1]=0;M=m<<16>>16;A=g>>16;d=M;E=1;e:while(1){S=E<<1;u=(S|0)<5;t:while(1){h=d+-1|0;if((d|0)<=0){g=2147483647;m=0;d=0;break e}p=T+(n[Z+(h<<1)>>1]|0)|0;b=n[ne+(h<<1)>>1]|0;m=ee+h|0;w=K+(h<<1)|0;y=0;while(1){if((y|0)>=(E|0))break;_=ie+(y<<1)|0;v=(te(a[m>>0]|0,n[_>>1]|0)|0)>>8;d=(te(A,b-v<<16>>16)|0)>>16;d=(d|0)>9?9:(d|0)<-10?-10:d;r[$+(y<<4)+h>>0]=d;k=d+10|0;g=(s[J+(k<<2)>>2]|0)+v|0;v=(s[Q+(k<<2)>>2]|0)+v|0;n[_>>1]=g;_=y+E|0;n[ie+(_<<1)>>1]=v;do if((d|0)>2)if((d|0)==3){k=a[p+7>>0]|0;d=280;break}else{d=d*43|0;k=d+108|0;d=d+151|0;break}else{if((d|0)>=-3){k=a[p+(d+4)>>0]|0;d=a[p+(d+5)>>0]|0;break}if((d|0)==-4){k=280;d=a[p+1>>0]|0;break}else{d=te(d,-43)|0;k=d+108|0;d=d+65|0;break}}while(0);oe=G+(y<<2)|0;ae=s[oe>>2]|0;fe=b-g<<16>>16;fe=te(fe,fe)|0;g=n[w>>1]|0;s[oe>>2]=ae+(te(fe,g)|0)+(te(j,k<<16>>16)|0);k=b-v<<16>>16;s[G+(_<<2)>>2]=ae+(te(te(k,k)|0,g)|0)+(te(j,d<<16>>16)|0);y=y+1|0}if(u){d=0;break}else v=0;while(1){if((v|0)==4){d=0;w=0;p=0;b=0;m=2147483647;break}b=G+(v<<2)|0;d=s[b>>2]|0;p=v+4|0;m=G+(p<<2)|0;g=s[m>>2]|0;w=V+(v<<2)|0;if((d|0)>(g|0)){s[w>>2]=d;s[b>>2]=g;s[m>>2]=d;oe=ie+(v<<1)|0;fe=n[oe>>1]|0;d=ie+(p<<1)|0;n[oe>>1]=n[d>>1]|0;n[d>>1]=fe;d=g}else{s[w>>2]=g;p=v}s[W+(v<<2)>>2]=d;s[X+(v<<2)>>2]=p;v=v+1|0}while(1){if((p|0)<4){fe=s[V+(p<<2)>>2]|0;oe=(m|0)>(fe|0);ae=s[W+(p<<2)>>2]|0;k=(b|0)<(ae|0);d=k?p:d;w=oe?p:w;p=p+1|0;b=k?ae:b;m=oe?fe:m;continue}if((m|0)>=(b|0)){d=0;break}s[X+(d<<2)>>2]=s[X+(w<<2)>>2]^4;b=w+4|0;s[G+(d<<2)>>2]=s[G+(b<<2)>>2];n[ie+(d<<1)>>1]=n[ie+(b<<1)>>1]|0;s[W+(d<<2)>>2]=0;s[V+(w<<2)>>2]=2147483647;b=$+(d<<4)|0;d=$+(w<<4)|0;p=b+16|0;do{r[b>>0]=r[d>>0]|0;b=b+1|0;d=d+1|0}while((b|0)<(p|0));d=0;w=0;p=0;b=0;m=2147483647}while(1){if((d|0)==4){d=h;continue t}fe=$+(d<<4)+h|0;r[fe>>0]=(a[fe>>0]|0)+((s[X+(d<<2)>>2]|0)>>>2);d=d+1|0}}while(1){if((d|0)>=(E|0)){d=S;break}r[$+(d+E<<4)+h>>0]=(a[$+(d<<4)+h>>0]|0)+1;d=d+1|0}while(1){if((d|0)>=4){d=h;E=S;continue e}r[$+(d<<4)+h>>0]=r[$+(d-S<<4)+h>>0]|0;d=d+1|0}}while(1){if((d|0)==8)break;oe=s[G+(d<<2)>>2]|0;fe=(g|0)>(oe|0);g=fe?oe:g;m=fe?d:m;d=d+1|0}d=L+x|0;p=m&3;b=0;while(1){if((b|0)>=(M|0))break;r[d+b>>0]=r[$+(p<<4)+b>>0]|0;b=b+1|0}r[d>>0]=(a[d>>0]|0)+(m>>>2);w=D+(P<<2)|0;s[w>>2]=g;d=te(O,n[i>>1]|0)|0;d=(s[N>>2]|0)+d|0;p=r[d+R>>0]|0;if(!R)d=256-(p&255)|0;else d=(a[d+(R+-1)>>0]|0)-(p&255)|0;m=re(d|0)|0;p=24-m|0;b=0-p|0;do if(p)if((p|0)<0){d=d<>>(p+32|0);break}else{d=d<<32-p|d>>>p;break}while(0);fe=d&127;s[w>>2]=g+(te(1024-(fe+(((te(fe,128-fe|0)|0)*179|0)>>>16)+(31-m<<7))<<16>>16,I)|0);P=P+1|0}Or(D,Y,c,1);fe=s[Y>>2]|0;r[e>>0]=s[F+(fe<<2)>>2];Mn(e+1|0,L+(fe<<4)|0,n[q>>1]|0)|0;wr(t,e,i);l=se;return}function jr(){Nt(360,33176);We(376,33181,1,1,0);ut(384,33186,1,-128,127);ut(400,33191,1,-128,127);ut(392,33203,1,0,255);ut(408,33217,2,-32768,32767);ut(416,33223,2,0,65535);ut(424,33238,4,-2147483648,2147483647);ut(432,33242,4,0,-1);ut(440,33255,4,-2147483648,2147483647);ut(448,33260,4,0,-1);Gt(456,33274,4);Gt(464,33280,8);Ce(48,33388);Ce(80,33463);Bt(104,4,33559);Ze(128,33591);Rt(136,0,33638);Rt(144,0,33699);Rt(152,1,33767);Rt(160,2,33837);Rt(168,3,33899);Rt(176,4,33970);Rt(184,5,34030);Rt(192,4,34099);Rt(200,5,34160);Rt(144,0,34199);Rt(152,1,34231);Rt(160,2,34264);Rt(168,3,34297);Rt(176,4,34331);Rt(184,5,34364);Rt(208,6,34429);Rt(216,7,34491);Rt(224,7,34554);return}function Fr(e){e=e|0;var t=0,i=0,n=0,a=0;a=s[e+4>>2]|0;n=a;e:do if(!(n&3)){e=a;i=4}else{t=a;e=n;while(1){if(!(r[t>>0]|0))break e;t=t+1|0;e=t;if(!(e&3)){e=t;i=4;break}}}while(0);if((i|0)==4){while(1){t=s[e>>2]|0;if(!((t&-2139062144^-2139062144)&t+-16843009))e=e+4|0;else break}if((t&255)<<24>>24)do e=e+1|0;while((r[e>>0]|0)!=0)}e=e-n+1|0;t=qr(e)|0;if(!t){a=0;return a|0}Mn(t|0,a|0,e|0)|0;a=t;return a|0}function zr(e){e=+e;var t=0,i=0,r=0,n=0,a=0,o=0,f=0,h=0,l=0;c[d>>3]=e;i=s[d>>2]|0;t=s[d+4>>2]|0;r=(t|0)<0;do if(r|t>>>0<1048576){a=+q(+e);c[d>>3]=a;if((s[d>>2]|0)==0&(s[d+4>>2]|0)==0){e=-1/(e*e);break}if(r){e=(e-e)/0;break}else{c[d>>3]=e*0x40000000000000;t=s[d+4>>2]|0;r=s[d>>2]|0;i=-1077;n=9;break}}else if(t>>>0<=2146435071)if((i|0)==0&0==0&(t|0)==1072693248)e=0;else{ +r=i;i=-1023;n=9}while(0);if((n|0)==9){n=t+614242|0;s[d>>2]=r;s[d+4>>2]=(n&1048575)+1072079006;f=+c[d>>3]+-1;o=f*(f*.5);h=f/(f+2);l=h*h;e=l*l;c[d>>3]=f-o;r=s[d+4>>2]|0;s[d>>2]=0;s[d+4>>2]=r;a=+c[d>>3];e=f-a-o+h*(o+(e*(e*(e*.15313837699209373+.22222198432149784)+.3999999999940942)+l*(e*(e*(e*.14798198605116586+.1818357216161805)+.2857142874366239)+.6666666666666735)));l=a*.4342944818781689;o=+(i+(n>>>20)|0);h=o*.30102999566361177;f=h+l;e=f+(l+(h-f)+(e*.4342944818781689+(o*3.694239077158931e-13+(a+e)*2.5082946711645275e-11)))}return+e}function qr(e){e=e|0;var t=0,i=0,r=0,n=0,a=0,o=0,f=0,h=0,c=0,l=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0,C=0,P=0;do if(e>>>0<245){p=e>>>0<11?16:e+11&-8;e=p>>>3;h=s[8744]|0;t=h>>>e;if(t&3|0){t=(t&1^1)+e|0;i=35016+(t<<1<<2)|0;r=i+8|0;n=s[r>>2]|0;a=n+8|0;o=s[a>>2]|0;do if((i|0)!=(o|0)){if(o>>>0<(s[8748]|0)>>>0)At();e=o+12|0;if((s[e>>2]|0)==(n|0)){s[e>>2]=i;s[r>>2]=o;break}else At()}else s[8744]=h&~(1<>2]=P|3;P=n+P+4|0;s[P>>2]=s[P>>2]|1;P=a;return P|0}o=s[8746]|0;if(p>>>0>o>>>0){if(t|0){i=2<>>12&16;i=i>>>f;n=i>>>5&8;i=i>>>n;a=i>>>2&4;i=i>>>a;r=i>>>1&2;i=i>>>r;t=i>>>1&1;t=(n|f|a|r|t)+(i>>>t)|0;i=35016+(t<<1<<2)|0;r=i+8|0;a=s[r>>2]|0;f=a+8|0;n=s[f>>2]|0;do if((i|0)!=(n|0)){if(n>>>0<(s[8748]|0)>>>0)At();e=n+12|0;if((s[e>>2]|0)==(a|0)){s[e>>2]=i;s[r>>2]=n;c=s[8746]|0;break}else At()}else{s[8744]=h&~(1<>2]=p|3;r=a+p|0;s[r+4>>2]=o|1;s[r+o>>2]=o;if(c|0){n=s[8749]|0;t=c>>>3;i=35016+(t<<1<<2)|0;e=s[8744]|0;t=1<>2]|0;if(t>>>0<(s[8748]|0)>>>0)At();else{l=e;u=t}}else{s[8744]=e|t;l=i+8|0;u=i}s[l>>2]=n;s[u+12>>2]=n;s[n+8>>2]=u;s[n+12>>2]=i}s[8746]=o;s[8749]=r;P=f;return P|0}e=s[8745]|0;if(e){f=(e&0-e)+-1|0;C=f>>>12&16;f=f>>>C;I=f>>>5&8;f=f>>>I;P=f>>>2&4;f=f>>>P;t=f>>>1&2;f=f>>>t;h=f>>>1&1;h=s[35280+((I|C|P|t|h)+(f>>>h)<<2)>>2]|0;f=(s[h+4>>2]&-8)-p|0;t=h;while(1){e=s[t+16>>2]|0;if(!e){e=s[t+20>>2]|0;if(!e)break}t=(s[e+4>>2]&-8)-p|0;P=t>>>0>>0;f=P?t:f;t=e;h=P?e:h}n=s[8748]|0;if(h>>>0>>0)At();o=h+p|0;if(h>>>0>=o>>>0)At();a=s[h+24>>2]|0;i=s[h+12>>2]|0;do if((i|0)==(h|0)){t=h+20|0;e=s[t>>2]|0;if(!e){t=h+16|0;e=s[t>>2]|0;if(!e){d=0;break}}while(1){i=e+20|0;r=s[i>>2]|0;if(r|0){e=r;t=i;continue}i=e+16|0;r=s[i>>2]|0;if(!r)break;else{e=r;t=i}}if(t>>>0>>0)At();else{s[t>>2]=0;d=e;break}}else{r=s[h+8>>2]|0;if(r>>>0>>0)At();e=r+12|0;if((s[e>>2]|0)!=(h|0))At();t=i+8|0;if((s[t>>2]|0)==(h|0)){s[e>>2]=i;s[t>>2]=r;d=i;break}else At()}while(0);do if(a|0){e=s[h+28>>2]|0;t=35280+(e<<2)|0;if((h|0)==(s[t>>2]|0)){s[t>>2]=d;if(!d){s[8745]=s[8745]&~(1<>>0<(s[8748]|0)>>>0)At();e=a+16|0;if((s[e>>2]|0)==(h|0))s[e>>2]=d;else s[a+20>>2]=d;if(!d)break}t=s[8748]|0;if(d>>>0>>0)At();s[d+24>>2]=a;e=s[h+16>>2]|0;do if(e|0)if(e>>>0>>0)At();else{s[d+16>>2]=e;s[e+24>>2]=d;break}while(0);e=s[h+20>>2]|0;if(e|0)if(e>>>0<(s[8748]|0)>>>0)At();else{s[d+20>>2]=e;s[e+24>>2]=d;break}}while(0);if(f>>>0<16){P=f+p|0;s[h+4>>2]=P|3;P=h+P+4|0;s[P>>2]=s[P>>2]|1}else{s[h+4>>2]=p|3;s[o+4>>2]=f|1;s[o+f>>2]=f;e=s[8746]|0;if(e|0){r=s[8749]|0;t=e>>>3;i=35016+(t<<1<<2)|0;e=s[8744]|0;t=1<>2]|0;if(t>>>0<(s[8748]|0)>>>0)At();else{b=e;m=t}}else{s[8744]=e|t;b=i+8|0;m=i}s[b>>2]=r;s[m+12>>2]=r;s[r+8>>2]=m;s[r+12>>2]=i}s[8746]=f;s[8749]=o}P=h+8|0;return P|0}}}else if(e>>>0<=4294967231){e=e+11|0;p=e&-8;c=s[8745]|0;if(c){i=0-p|0;e=e>>>8;if(e)if(p>>>0>16777215)h=31;else{m=(e+1048320|0)>>>16&8;S=e<>>16&4;S=S<>>16&2;h=14-(b|m|h)+(S<>>15)|0;h=p>>>(h+7|0)&1|h<<1}else h=0;t=s[35280+(h<<2)>>2]|0;e:do if(!t){e=0;t=0;S=86}else{n=i;e=0;o=p<<((h|0)==31?0:25-(h>>>1)|0);f=t;t=0;while(1){r=s[f+4>>2]&-8;i=r-p|0;if(i>>>0>>0)if((r|0)==(p|0)){e=f;t=f;S=90;break e}else t=f;else i=n;r=s[f+20>>2]|0;f=s[f+16+(o>>>31<<2)>>2]|0;e=(r|0)==0|(r|0)==(f|0)?e:r;r=(f|0)==0;if(r){S=86;break}else{n=i;o=o<<(r&1^1)}}}while(0);if((S|0)==86){if((e|0)==0&(t|0)==0){e=2<>>12&16;m=m>>>u;l=m>>>5&8;m=m>>>l;d=m>>>2&4;m=m>>>d;b=m>>>1&2;m=m>>>b;e=m>>>1&1;e=s[35280+((l|u|d|b|e)+(m>>>e)<<2)>>2]|0}if(!e){f=i;h=t}else S=90}if((S|0)==90)while(1){S=0;m=(s[e+4>>2]&-8)-p|0;r=m>>>0>>0;i=r?m:i;t=r?e:t;r=s[e+16>>2]|0;if(r|0){e=r;S=90;continue}e=s[e+20>>2]|0;if(!e){f=i;h=t;break}else S=90}if((h|0)!=0?f>>>0<((s[8746]|0)-p|0)>>>0:0){n=s[8748]|0;if(h>>>0>>0)At();o=h+p|0;if(h>>>0>=o>>>0)At();a=s[h+24>>2]|0;i=s[h+12>>2]|0;do if((i|0)==(h|0)){t=h+20|0;e=s[t>>2]|0;if(!e){t=h+16|0;e=s[t>>2]|0;if(!e){g=0;break}}while(1){i=e+20|0;r=s[i>>2]|0;if(r|0){e=r;t=i;continue}i=e+16|0;r=s[i>>2]|0;if(!r)break;else{e=r;t=i}}if(t>>>0>>0)At();else{s[t>>2]=0;g=e;break}}else{r=s[h+8>>2]|0;if(r>>>0>>0)At();e=r+12|0;if((s[e>>2]|0)!=(h|0))At();t=i+8|0;if((s[t>>2]|0)==(h|0)){s[e>>2]=i;s[t>>2]=r;g=i;break}else At()}while(0);do if(a|0){e=s[h+28>>2]|0;t=35280+(e<<2)|0;if((h|0)==(s[t>>2]|0)){s[t>>2]=g;if(!g){s[8745]=s[8745]&~(1<>>0<(s[8748]|0)>>>0)At();e=a+16|0;if((s[e>>2]|0)==(h|0))s[e>>2]=g;else s[a+20>>2]=g;if(!g)break}t=s[8748]|0;if(g>>>0>>0)At();s[g+24>>2]=a;e=s[h+16>>2]|0;do if(e|0)if(e>>>0>>0)At();else{s[g+16>>2]=e;s[e+24>>2]=g;break}while(0);e=s[h+20>>2]|0;if(e|0)if(e>>>0<(s[8748]|0)>>>0)At();else{s[g+20>>2]=e;s[e+24>>2]=g;break}}while(0);do if(f>>>0>=16){s[h+4>>2]=p|3;s[o+4>>2]=f|1;s[o+f>>2]=f;e=f>>>3;if(f>>>0<256){i=35016+(e<<1<<2)|0;t=s[8744]|0;e=1<>2]|0;if(t>>>0<(s[8748]|0)>>>0)At();else{v=e;y=t}}else{s[8744]=t|e;v=i+8|0;y=i}s[v>>2]=o;s[y+12>>2]=o;s[o+8>>2]=y;s[o+12>>2]=i;break}e=f>>>8;if(e)if(f>>>0>16777215)i=31;else{C=(e+1048320|0)>>>16&8;P=e<>>16&4;P=P<>>16&2;i=14-(I|C|i)+(P<>>15)|0;i=f>>>(i+7|0)&1|i<<1}else i=0;r=35280+(i<<2)|0;s[o+28>>2]=i;e=o+16|0;s[e+4>>2]=0;s[e>>2]=0;e=s[8745]|0;t=1<>2]=o;s[o+24>>2]=r;s[o+12>>2]=o;s[o+8>>2]=o;break}i=f<<((i|0)==31?0:25-(i>>>1)|0);r=s[r>>2]|0;while(1){if((s[r+4>>2]&-8|0)==(f|0)){S=148;break}t=r+16+(i>>>31<<2)|0;e=s[t>>2]|0;if(!e){S=145;break}else{i=i<<1;r=e}}if((S|0)==145)if(t>>>0<(s[8748]|0)>>>0)At();else{s[t>>2]=o;s[o+24>>2]=r;s[o+12>>2]=o;s[o+8>>2]=o;break}else if((S|0)==148){e=r+8|0;t=s[e>>2]|0;P=s[8748]|0;if(t>>>0>=P>>>0&r>>>0>=P>>>0){s[t+12>>2]=o;s[e>>2]=o;s[o+8>>2]=t;s[o+12>>2]=r;s[o+24>>2]=0;break}else At()}}else{P=f+p|0;s[h+4>>2]=P|3;P=h+P+4|0;s[P>>2]=s[P>>2]|1}while(0);P=h+8|0;return P|0}}}else p=-1;while(0);i=s[8746]|0;if(i>>>0>=p>>>0){e=i-p|0;t=s[8749]|0;if(e>>>0>15){P=t+p|0;s[8749]=P;s[8746]=e;s[P+4>>2]=e|1;s[P+e>>2]=e;s[t+4>>2]=p|3}else{s[8746]=0;s[8749]=0;s[t+4>>2]=i|3;P=t+i+4|0;s[P>>2]=s[P>>2]|1}P=t+8|0;return P|0}e=s[8747]|0;if(e>>>0>p>>>0){I=e-p|0;s[8747]=I;P=s[8750]|0;C=P+p|0;s[8750]=C;s[C+4>>2]=I|1;s[P+4>>2]=p|3;P=P+8|0;return P|0}do if(!(s[8862]|0)){e=Re(30)|0;if(!(e+-1&e)){s[8864]=e;s[8863]=e;s[8865]=-1;s[8866]=-1;s[8867]=0;s[8855]=0;s[8862]=(rt(0)|0)&-16^1431655768;break}else At()}while(0);o=p+48|0;r=s[8864]|0;f=p+47|0;i=r+f|0;r=0-r|0;h=i&r;if(h>>>0<=p>>>0){P=0;return P|0}e=s[8854]|0;if(e|0?(v=s[8852]|0,y=v+h|0,y>>>0<=v>>>0|y>>>0>e>>>0):0){P=0;return P|0}e:do if(!(s[8855]&4)){t=s[8750]|0;t:do if(t){n=35424;while(1){e=s[n>>2]|0;if(e>>>0<=t>>>0?(w=n+4|0,(e+(s[w>>2]|0)|0)>>>0>t>>>0):0)break;e=s[n+8>>2]|0;if(!e){S=173;break t}else n=e}e=i-(s[8747]|0)&r;if(e>>>0<2147483647){t=Me(e|0)|0;if((t|0)==((s[n>>2]|0)+(s[w>>2]|0)|0)){if((t|0)!=(-1|0)){o=t;a=e;S=193;break e}}else S=183}}else S=173;while(0);do if((S|0)==173?(_=Me(0)|0,(_|0)!=(-1|0)):0){e=_;t=s[8863]|0;i=t+-1|0;if(!(i&e))e=h;else e=h-e+(i+e&0-t)|0;t=s[8852]|0;i=t+e|0;if(e>>>0>p>>>0&e>>>0<2147483647){y=s[8854]|0;if(y|0?i>>>0<=t>>>0|i>>>0>y>>>0:0)break;t=Me(e|0)|0;if((t|0)==(_|0)){o=_;a=e;S=193;break e}else S=183}}while(0);t:do if((S|0)==183){i=0-e|0;do if(o>>>0>e>>>0&(e>>>0<2147483647&(t|0)!=(-1|0))?(k=s[8864]|0,k=f-e+k&0-k,k>>>0<2147483647):0)if((Me(k|0)|0)==(-1|0)){Me(i|0)|0;break t}else{e=k+e|0;break}while(0);if((t|0)!=(-1|0)){o=t;a=e;S=193;break e}}while(0);s[8855]=s[8855]|4;S=190}else S=190;while(0);if((((S|0)==190?h>>>0<2147483647:0)?(E=Me(h|0)|0,A=Me(0)|0,E>>>0>>0&((E|0)!=(-1|0)&(A|0)!=(-1|0))):0)?(a=A-E|0,a>>>0>(p+40|0)>>>0):0){o=E;S=193}if((S|0)==193){e=(s[8852]|0)+a|0;s[8852]=e;if(e>>>0>(s[8853]|0)>>>0)s[8853]=e;c=s[8750]|0;do if(c){n=35424;while(1){e=s[n>>2]|0;t=n+4|0;i=s[t>>2]|0;if((o|0)==(e+i|0)){S=203;break}r=s[n+8>>2]|0;if(!r)break;else n=r}if(((S|0)==203?(s[n+12>>2]&8|0)==0:0)?c>>>0>>0&c>>>0>=e>>>0:0){s[t>>2]=i+a;P=c+8|0;P=(P&7|0)==0?0:0-P&7;C=c+P|0;P=a-P+(s[8747]|0)|0;s[8750]=C;s[8747]=P;s[C+4>>2]=P|1;s[C+P+4>>2]=40;s[8751]=s[8866];break}e=s[8748]|0;if(o>>>0>>0){s[8748]=o;f=o}else f=e;t=o+a|0;e=35424;while(1){if((s[e>>2]|0)==(t|0)){S=211;break}e=s[e+8>>2]|0;if(!e){t=35424;break}}if((S|0)==211)if(!(s[e+12>>2]&8)){s[e>>2]=o;u=e+4|0;s[u>>2]=(s[u>>2]|0)+a;u=o+8|0;u=o+((u&7|0)==0?0:0-u&7)|0;e=t+8|0;e=t+((e&7|0)==0?0:0-e&7)|0;l=u+p|0;h=e-u-p|0;s[u+4>>2]=p|3;do if((e|0)!=(c|0)){if((e|0)==(s[8749]|0)){P=(s[8746]|0)+h|0;s[8746]=P;s[8749]=l;s[l+4>>2]=P|1;s[l+P>>2]=P;break}t=s[e+4>>2]|0;if((t&3|0)==1){o=t&-8;n=t>>>3;e:do if(t>>>0>=256){a=s[e+24>>2]|0;r=s[e+12>>2]|0;do if((r|0)==(e|0)){r=e+16|0;i=r+4|0;t=s[i>>2]|0;if(!t){t=s[r>>2]|0;if(!t){I=0;break}else i=r}while(1){r=t+20|0;n=s[r>>2]|0;if(n|0){t=n;i=r;continue}r=t+16|0;n=s[r>>2]|0;if(!n)break;else{t=n;i=r}}if(i>>>0>>0)At();else{s[i>>2]=0;I=t;break}}else{n=s[e+8>>2]|0;if(n>>>0>>0)At();t=n+12|0;if((s[t>>2]|0)!=(e|0))At();i=r+8|0;if((s[i>>2]|0)==(e|0)){s[t>>2]=r;s[i>>2]=n;I=r;break}else At()}while(0);if(!a)break;t=s[e+28>>2]|0;i=35280+(t<<2)|0;do if((e|0)!=(s[i>>2]|0)){if(a>>>0<(s[8748]|0)>>>0)At();t=a+16|0;if((s[t>>2]|0)==(e|0))s[t>>2]=I;else s[a+20>>2]=I;if(!I)break e}else{s[i>>2]=I;if(I|0)break;s[8745]=s[8745]&~(1<>>0>>0)At();s[I+24>>2]=a;t=e+16|0;i=s[t>>2]|0;do if(i|0)if(i>>>0>>0)At();else{s[I+16>>2]=i;s[i+24>>2]=I;break}while(0);t=s[t+4>>2]|0;if(!t)break;if(t>>>0<(s[8748]|0)>>>0)At();else{s[I+20>>2]=t;s[t+24>>2]=I;break}}else{i=s[e+8>>2]|0;r=s[e+12>>2]|0;t=35016+(n<<1<<2)|0;do if((i|0)!=(t|0)){if(i>>>0>>0)At();if((s[i+12>>2]|0)==(e|0))break;At()}while(0);if((r|0)==(i|0)){s[8744]=s[8744]&~(1<>>0>>0)At();t=r+8|0;if((s[t>>2]|0)==(e|0)){T=t;break}At()}while(0);s[i+12>>2]=r;s[T>>2]=i}while(0);e=e+o|0;n=o+h|0}else n=h;e=e+4|0;s[e>>2]=s[e>>2]&-2;s[l+4>>2]=n|1;s[l+n>>2]=n;e=n>>>3;if(n>>>0<256){i=35016+(e<<1<<2)|0;t=s[8744]|0;e=1<>2]|0;if(t>>>0>=(s[8748]|0)>>>0){C=e;P=t;break}At()}while(0);s[C>>2]=l;s[P+12>>2]=l;s[l+8>>2]=P;s[l+12>>2]=i;break}e=n>>>8;do if(!e)i=0;else{if(n>>>0>16777215){i=31;break}C=(e+1048320|0)>>>16&8;P=e<>>16&4;P=P<>>16&2;i=14-(I|C|i)+(P<>>15)|0;i=n>>>(i+7|0)&1|i<<1}while(0);r=35280+(i<<2)|0;s[l+28>>2]=i;e=l+16|0;s[e+4>>2]=0;s[e>>2]=0;e=s[8745]|0;t=1<>2]=l;s[l+24>>2]=r;s[l+12>>2]=l;s[l+8>>2]=l;break}i=n<<((i|0)==31?0:25-(i>>>1)|0);r=s[r>>2]|0;while(1){if((s[r+4>>2]&-8|0)==(n|0)){S=281;break}t=r+16+(i>>>31<<2)|0;e=s[t>>2]|0;if(!e){S=278;break}else{i=i<<1;r=e}}if((S|0)==278)if(t>>>0<(s[8748]|0)>>>0)At();else{s[t>>2]=l;s[l+24>>2]=r;s[l+12>>2]=l;s[l+8>>2]=l;break}else if((S|0)==281){e=r+8|0;t=s[e>>2]|0;P=s[8748]|0;if(t>>>0>=P>>>0&r>>>0>=P>>>0){s[t+12>>2]=l;s[e>>2]=l;s[l+8>>2]=t;s[l+12>>2]=r;s[l+24>>2]=0;break}else At()}}else{P=(s[8747]|0)+h|0;s[8747]=P;s[8750]=l;s[l+4>>2]=P|1}while(0);P=u+8|0;return P|0}else t=35424;while(1){e=s[t>>2]|0;if(e>>>0<=c>>>0?(M=e+(s[t+4>>2]|0)|0,M>>>0>c>>>0):0)break;t=s[t+8>>2]|0}n=M+-47|0;t=n+8|0;t=n+((t&7|0)==0?0:0-t&7)|0;n=c+16|0;t=t>>>0>>0?c:t;e=t+8|0;i=o+8|0;i=(i&7|0)==0?0:0-i&7;P=o+i|0;i=a+-40-i|0;s[8750]=P;s[8747]=i;s[P+4>>2]=i|1;s[P+i+4>>2]=40;s[8751]=s[8866];i=t+4|0;s[i>>2]=27;s[e>>2]=s[8856];s[e+4>>2]=s[8857];s[e+8>>2]=s[8858];s[e+12>>2]=s[8859];s[8856]=o;s[8857]=a;s[8859]=0;s[8858]=e;e=t+24|0;do{e=e+4|0;s[e>>2]=7}while((e+4|0)>>>0>>0);if((t|0)!=(c|0)){a=t-c|0;s[i>>2]=s[i>>2]&-2;s[c+4>>2]=a|1;s[t>>2]=a;e=a>>>3;if(a>>>0<256){i=35016+(e<<1<<2)|0;t=s[8744]|0;e=1<>2]|0;if(t>>>0<(s[8748]|0)>>>0)At();else{x=e;R=t}}else{s[8744]=t|e;x=i+8|0;R=i}s[x>>2]=c;s[R+12>>2]=c;s[c+8>>2]=R;s[c+12>>2]=i;break}e=a>>>8;if(e)if(a>>>0>16777215)i=31;else{C=(e+1048320|0)>>>16&8;P=e<>>16&4;P=P<>>16&2;i=14-(I|C|i)+(P<>>15)|0;i=a>>>(i+7|0)&1|i<<1}else i=0;r=35280+(i<<2)|0;s[c+28>>2]=i;s[c+20>>2]=0;s[n>>2]=0;e=s[8745]|0;t=1<>2]=c;s[c+24>>2]=r;s[c+12>>2]=c;s[c+8>>2]=c;break}i=a<<((i|0)==31?0:25-(i>>>1)|0);r=s[r>>2]|0;while(1){if((s[r+4>>2]&-8|0)==(a|0)){S=307;break}t=r+16+(i>>>31<<2)|0;e=s[t>>2]|0;if(!e){S=304;break}else{i=i<<1;r=e}}if((S|0)==304)if(t>>>0<(s[8748]|0)>>>0)At();else{s[t>>2]=c;s[c+24>>2]=r;s[c+12>>2]=c;s[c+8>>2]=c;break}else if((S|0)==307){e=r+8|0;t=s[e>>2]|0;P=s[8748]|0;if(t>>>0>=P>>>0&r>>>0>=P>>>0){s[t+12>>2]=c;s[e>>2]=c;s[c+8>>2]=t;s[c+12>>2]=r;s[c+24>>2]=0;break}else At()}}}else{P=s[8748]|0;if((P|0)==0|o>>>0

>>0)s[8748]=o;s[8856]=o;s[8857]=a;s[8859]=0;s[8753]=s[8862];s[8752]=-1;e=0;do{P=35016+(e<<1<<2)|0;s[P+12>>2]=P;s[P+8>>2]=P;e=e+1|0}while((e|0)!=32);P=o+8|0;P=(P&7|0)==0?0:0-P&7;C=o+P|0;P=a+-40-P|0;s[8750]=C;s[8747]=P;s[C+4>>2]=P|1;s[C+P+4>>2]=40;s[8751]=s[8866]}while(0);e=s[8747]|0;if(e>>>0>p>>>0){I=e-p|0;s[8747]=I;P=s[8750]|0;C=P+p|0;s[8750]=C;s[C+4>>2]=I|1;s[P+4>>2]=p|3;P=P+8|0;return P|0}}if(!(s[8732]|0))e=34972;else e=s[(zt()|0)+64>>2]|0;s[e>>2]=12;P=0;return P|0}function Hr(e){e=e|0;var t=0,i=0,r=0,n=0,a=0,o=0,f=0,h=0,c=0,l=0,u=0,d=0,p=0,b=0,m=0;if(!e)return;i=e+-8|0;o=s[8748]|0;if(i>>>0>>0)At();e=s[e+-4>>2]|0;t=e&3;if((t|0)==1)At();r=e&-8;u=i+r|0;do if(!(e&1)){e=s[i>>2]|0;if(!t)return;c=i+(0-e)|0;h=e+r|0;if(c>>>0>>0)At();if((c|0)==(s[8749]|0)){e=u+4|0;t=s[e>>2]|0;if((t&3|0)!=3){m=c;n=h;break}s[8746]=h;s[e>>2]=t&-2;s[c+4>>2]=h|1;s[c+h>>2]=h;return}r=e>>>3;if(e>>>0<256){t=s[c+8>>2]|0;i=s[c+12>>2]|0;e=35016+(r<<1<<2)|0;if((t|0)!=(e|0)){if(t>>>0>>0)At();if((s[t+12>>2]|0)!=(c|0))At()}if((i|0)==(t|0)){s[8744]=s[8744]&~(1<>>0>>0)At();e=i+8|0;if((s[e>>2]|0)==(c|0))a=e;else At()}else a=i+8|0;s[t+12>>2]=i;s[a>>2]=t;m=c;n=h;break}a=s[c+24>>2]|0;i=s[c+12>>2]|0;do if((i|0)==(c|0)){i=c+16|0;t=i+4|0;e=s[t>>2]|0;if(!e){e=s[i>>2]|0;if(!e){f=0;break}else t=i}while(1){i=e+20|0;r=s[i>>2]|0;if(r|0){e=r;t=i;continue}i=e+16|0;r=s[i>>2]|0;if(!r)break;else{e=r;t=i}}if(t>>>0>>0)At();else{s[t>>2]=0;f=e;break}}else{r=s[c+8>>2]|0;if(r>>>0>>0)At();e=r+12|0;if((s[e>>2]|0)!=(c|0))At();t=i+8|0;if((s[t>>2]|0)==(c|0)){s[e>>2]=i;s[t>>2]=r;f=i;break}else At()}while(0);if(a){e=s[c+28>>2]|0;t=35280+(e<<2)|0;if((c|0)==(s[t>>2]|0)){s[t>>2]=f;if(!f){s[8745]=s[8745]&~(1<>>0<(s[8748]|0)>>>0)At();e=a+16|0;if((s[e>>2]|0)==(c|0))s[e>>2]=f;else s[a+20>>2]=f;if(!f){m=c;n=h;break}}i=s[8748]|0;if(f>>>0>>0)At();s[f+24>>2]=a;e=c+16|0;t=s[e>>2]|0;do if(t|0)if(t>>>0>>0)At();else{s[f+16>>2]=t;s[t+24>>2]=f;break}while(0);e=s[e+4>>2]|0;if(e)if(e>>>0<(s[8748]|0)>>>0)At();else{s[f+20>>2]=e;s[e+24>>2]=f;m=c;n=h;break}else{m=c;n=h}}else{m=c;n=h}}else{m=i;n=r}while(0);if(m>>>0>=u>>>0)At();e=u+4|0;t=s[e>>2]|0;if(!(t&1))At();if(!(t&2)){if((u|0)==(s[8750]|0)){b=(s[8747]|0)+n|0;s[8747]=b;s[8750]=m;s[m+4>>2]=b|1;if((m|0)!=(s[8749]|0))return;s[8749]=0;s[8746]=0;return}if((u|0)==(s[8749]|0)){b=(s[8746]|0)+n|0;s[8746]=b;s[8749]=m;s[m+4>>2]=b|1;s[m+b>>2]=b;return}n=(t&-8)+n|0;r=t>>>3;do if(t>>>0>=256){a=s[u+24>>2]|0;e=s[u+12>>2]|0;do if((e|0)==(u|0)){i=u+16|0;t=i+4|0;e=s[t>>2]|0;if(!e){e=s[i>>2]|0;if(!e){d=0;break}else t=i}while(1){i=e+20|0;r=s[i>>2]|0;if(r|0){e=r;t=i;continue}i=e+16|0;r=s[i>>2]|0;if(!r)break;else{e=r;t=i}}if(t>>>0<(s[8748]|0)>>>0)At();else{s[t>>2]=0;d=e;break}}else{t=s[u+8>>2]|0;if(t>>>0<(s[8748]|0)>>>0)At();i=t+12|0;if((s[i>>2]|0)!=(u|0))At();r=e+8|0;if((s[r>>2]|0)==(u|0)){s[i>>2]=e;s[r>>2]=t;d=e;break}else At()}while(0);if(a|0){e=s[u+28>>2]|0;t=35280+(e<<2)|0;if((u|0)==(s[t>>2]|0)){s[t>>2]=d;if(!d){s[8745]=s[8745]&~(1<>>0<(s[8748]|0)>>>0)At();e=a+16|0;if((s[e>>2]|0)==(u|0))s[e>>2]=d;else s[a+20>>2]=d;if(!d)break}i=s[8748]|0;if(d>>>0>>0)At();s[d+24>>2]=a;e=u+16|0;t=s[e>>2]|0;do if(t|0)if(t>>>0>>0)At();else{s[d+16>>2]=t;s[t+24>>2]=d;break}while(0);e=s[e+4>>2]|0;if(e|0)if(e>>>0<(s[8748]|0)>>>0)At();else{s[d+20>>2]=e;s[e+24>>2]=d;break}}}else{t=s[u+8>>2]|0;i=s[u+12>>2]|0;e=35016+(r<<1<<2)|0;if((t|0)!=(e|0)){if(t>>>0<(s[8748]|0)>>>0)At();if((s[t+12>>2]|0)!=(u|0))At()}if((i|0)==(t|0)){s[8744]=s[8744]&~(1<>>0<(s[8748]|0)>>>0)At();e=i+8|0;if((s[e>>2]|0)==(u|0))l=e;else At()}else l=i+8|0;s[t+12>>2]=i;s[l>>2]=t}while(0);s[m+4>>2]=n|1;s[m+n>>2]=n;if((m|0)==(s[8749]|0)){s[8746]=n;return}}else{s[e>>2]=t&-2;s[m+4>>2]=n|1;s[m+n>>2]=n}e=n>>>3;if(n>>>0<256){i=35016+(e<<1<<2)|0;t=s[8744]|0;e=1<>2]|0;if(t>>>0<(s[8748]|0)>>>0)At();else{p=e;b=t}}else{s[8744]=t|e;p=i+8|0;b=i}s[p>>2]=m;s[b+12>>2]=m;s[m+8>>2]=b;s[m+12>>2]=i;return}e=n>>>8;if(e)if(n>>>0>16777215)i=31;else{p=(e+1048320|0)>>>16&8;b=e<>>16&4;b=b<>>16&2;i=14-(d|p|i)+(b<>>15)|0;i=n>>>(i+7|0)&1|i<<1}else i=0;r=35280+(i<<2)|0;s[m+28>>2]=i;s[m+20>>2]=0;s[m+16>>2]=0;e=s[8745]|0;t=1<>>1)|0);r=s[r>>2]|0;while(1){if((s[r+4>>2]&-8|0)==(n|0)){e=130;break}t=r+16+(i>>>31<<2)|0;e=s[t>>2]|0;if(!e){e=127;break}else{i=i<<1;r=e}}if((e|0)==127)if(t>>>0<(s[8748]|0)>>>0)At();else{s[t>>2]=m;s[m+24>>2]=r;s[m+12>>2]=m;s[m+8>>2]=m;break}else if((e|0)==130){e=r+8|0;t=s[e>>2]|0;b=s[8748]|0;if(t>>>0>=b>>>0&r>>>0>=b>>>0){s[t+12>>2]=m;s[e>>2]=m;s[m+8>>2]=t;s[m+12>>2]=r;s[m+24>>2]=0;break}else At()}}else{s[8745]=e|t;s[r>>2]=m;s[m+24>>2]=r;s[m+12>>2]=m;s[m+8>>2]=m}while(0);m=(s[8752]|0)+-1|0;s[8752]=m;if(!m)e=35432;else return;while(1){e=s[e>>2]|0;if(!e)break;else e=e+8|0}s[8752]=-1;return}function Gr(e){e=e|0;return}function Vr(e){e=e|0;Hr(e);return}function Wr(e){e=e|0;return}function Kr(e){e=e|0;return}function Yr(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,n=0,a=0,o=0;o=l;l=l+64|0;a=o;if((e|0)!=(t|0))if((t|0)!=0?(n=Zr(t,240)|0,(n|0)!=0):0){t=a;r=t+56|0;do{s[t>>2]=0;t=t+4|0}while((t|0)<(r|0));s[a>>2]=n;s[a+8>>2]=e;s[a+12>>2]=-1;s[a+48>>2]=1;Qs[s[(s[n>>2]|0)+28>>2]&3](n,a,s[i>>2]|0,1);if((s[a+24>>2]|0)==1){s[i>>2]=s[a+16>>2];t=1}else t=0}else t=0;else t=1;l=o;return t|0}function Zr(e,t){e=e|0;t=t|0;var i=0,a=0,o=0,f=0,h=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0;g=l;l=l+64|0;w=g;m=s[e>>2]|0;b=e+(s[m+-8>>2]|0)|0;m=s[m+-4>>2]|0;s[w>>2]=t;s[w+4>>2]=e;s[w+8>>2]=272;c=w+12|0;u=w+16|0;e=w+20|0;i=w+24|0;a=w+28|0;o=w+32|0;f=w+40|0;h=(m|0)==(t|0);d=c;p=d+40|0;do{s[d>>2]=0;d=d+4|0}while((d|0)<(p|0));n[c+40>>1]=0;r[c+42>>0]=0;e:do if(h){s[w+48>>2]=1;Xs[s[(s[t>>2]|0)+20>>2]&3](t,w,b,b,1,0);e=(s[i>>2]|0)==1?b:0}else{Gs[s[(s[m>>2]|0)+24>>2]&3](m,w,b,1,0);switch(s[w+36>>2]|0){case 0:{e=(s[f>>2]|0)==1&(s[a>>2]|0)==1&(s[o>>2]|0)==1?s[e>>2]|0:0;break e}case 1:break;default:{e=0;break e}}if((s[i>>2]|0)!=1?!((s[f>>2]|0)==0&(s[a>>2]|0)==1&(s[o>>2]|0)==1):0){e=0;break}e=s[u>>2]|0}while(0);l=g;return e|0}function $r(e,t,i,r,n,a){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;a=a|0;if((e|0)==(s[t+8>>2]|0))Xr(t,i,r,n);else{e=s[e+8>>2]|0;Xs[s[(s[e>>2]|0)+20>>2]&3](e,t,i,r,n,a)}return}function Xr(e,t,i,n){e=e|0;t=t|0;i=i|0;n=n|0;var a=0;r[e+53>>0]=1;do if((s[e+4>>2]|0)==(i|0)){r[e+52>>0]=1;i=e+16|0;a=s[i>>2]|0;if(!a){s[i>>2]=t;s[e+24>>2]=n;s[e+36>>2]=1;if(!((n|0)==1?(s[e+48>>2]|0)==1:0))break;r[e+54>>0]=1;break}if((a|0)!=(t|0)){n=e+36|0;s[n>>2]=(s[n>>2]|0)+1;r[e+54>>0]=1;break}a=e+24|0;i=s[a>>2]|0;if((i|0)==2){s[a>>2]=n;i=n}if((i|0)==1?(s[e+48>>2]|0)==1:0)r[e+54>>0]=1}while(0);return}function Jr(e,t,i,n,a){e=e|0;t=t|0;i=i|0;n=n|0;a=a|0;var o=0,f=0,h=0;do if((e|0)==(s[t+8>>2]|0)){if((s[t+4>>2]|0)==(i|0)?(o=t+28|0,(s[o>>2]|0)!=1):0)s[o>>2]=n}else{if((e|0)!=(s[t>>2]|0)){h=s[e+8>>2]|0;Gs[s[(s[h>>2]|0)+24>>2]&3](h,t,i,n,a);break}if((s[t+16>>2]|0)!=(i|0)?(h=t+20|0,(s[h>>2]|0)!=(i|0)):0){s[t+32>>2]=n;f=t+44|0;if((s[f>>2]|0)==4)break;o=t+52|0;r[o>>0]=0;n=t+53|0;r[n>>0]=0;e=s[e+8>>2]|0;Xs[s[(s[e>>2]|0)+20>>2]&3](e,t,i,i,1,a);if(r[n>>0]|0)if(!(r[o>>0]|0)){o=1;n=13}else n=17;else{o=0;n=13}do if((n|0)==13){s[h>>2]=i;i=t+40|0;s[i>>2]=(s[i>>2]|0)+1;if((s[t+36>>2]|0)==1?(s[t+24>>2]|0)==2:0){r[t+54>>0]=1;if(o){n=17;break}else{o=4;break}}if(o)n=17;else o=4}while(0);if((n|0)==17)o=3;s[f>>2]=o;break}if((n|0)==1)s[t+32>>2]=1}while(0);return}function Qr(e,t,i,n){e=e|0;t=t|0;i=i|0;n=n|0;var a=0;do if((e|0)==(s[t+8>>2]|0)){e=t+16|0;a=s[e>>2]|0;if(!a){s[e>>2]=i;s[t+24>>2]=n;s[t+36>>2]=1;break}if((a|0)!=(i|0)){n=t+36|0;s[n>>2]=(s[n>>2]|0)+1;s[t+24>>2]=2;r[t+54>>0]=1;break}e=t+24|0;if((s[e>>2]|0)==2)s[e>>2]=n}else{a=s[e+8>>2]|0;Qs[s[(s[a>>2]|0)+28>>2]&3](a,t,i,n)}while(0);return}function en(e){e=e|0;Hr(e);return}function tn(e,t,i,r,n,a){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;a=a|0;if((e|0)==(s[t+8>>2]|0))Xr(t,i,r,n);return}function rn(e,t,i,n,a){e=e|0;t=t|0;i=i|0;n=n|0;a=a|0;var o=0,f=0;do if((e|0)==(s[t+8>>2]|0)){if((s[t+4>>2]|0)==(i|0)?(f=t+28|0,(s[f>>2]|0)!=1):0)s[f>>2]=n}else if((e|0)==(s[t>>2]|0)){if((s[t+16>>2]|0)!=(i|0)?(o=t+20|0,(s[o>>2]|0)!=(i|0)):0){s[t+32>>2]=n;s[o>>2]=i;a=t+40|0;s[a>>2]=(s[a>>2]|0)+1;if((s[t+36>>2]|0)==1?(s[t+24>>2]|0)==2:0)r[t+54>>0]=1;s[t+44>>2]=4;break}if((n|0)==1)s[t+32>>2]=1}while(0);return}function nn(e,t,i,n){e=e|0;t=t|0;i=i|0;n=n|0;var a=0;do if((e|0)==(s[t+8>>2]|0)){e=t+16|0;a=s[e>>2]|0;if(!a){s[e>>2]=i;s[t+24>>2]=n;s[t+36>>2]=1;break}if((a|0)!=(i|0)){n=t+36|0;s[n>>2]=(s[n>>2]|0)+1;s[t+24>>2]=2;r[t+54>>0]=1;break}e=t+24|0;if((s[e>>2]|0)==2)s[e>>2]=n}while(0);return}function sn(e){e=e|0;return}function an(e){e=e|0;Hr(e);return}function on(e){e=e|0;return 34734}function fn(e){e=e|0;Hr(e);return}function hn(e,t,i){e=e|0;t=t|0;i=i|0;return(e|0)==(t|0)|0}function cn(e){e=e|0;Hr(e);return}function ln(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,n=0,a=0,o=0,f=0,h=0;h=l;l=l+64|0;f=h;s[i>>2]=s[s[i>>2]>>2];if(!((e|0)==(t|0)|(t|0)==368))if(((t|0)!=0?(r=Zr(t,328)|0,(r|0)!=0):0)?(s[r+8>>2]&~s[e+8>>2]|0)==0:0){t=s[e+12>>2]|0;e=r+12|0;if(!((t|0)==360?1:(t|0)==(s[e>>2]|0)))if((((t|0)!=0?(a=Zr(t,240)|0,(a|0)!=0):0)?(n=s[e>>2]|0,(n|0)!=0):0)?(o=Zr(n,240)|0,(o|0)!=0):0){e=f;t=e+56|0;do{s[e>>2]=0;e=e+4|0}while((e|0)<(t|0));s[f>>2]=o;s[f+8>>2]=a;s[f+12>>2]=-1;s[f+48>>2]=1;Qs[s[(s[o>>2]|0)+28>>2]&3](o,f,s[i>>2]|0,1);if((s[f+24>>2]|0)==1){s[i>>2]=s[f+16>>2];e=1}else e=0}else e=0;else e=1}else e=0;else e=1;l=h;return e|0}function un(e){e=e|0;Hr(e);return}function dn(e,t,i,a,o,f){e=e|0;t=t|0;i=i|0;a=a|0;o=o|0;f=f|0;var h=0,c=0,l=0,u=0,d=0,p=0,b=0,m=0,w=0;if((e|0)==(s[t+8>>2]|0))Xr(t,i,a,o);else{p=t+52|0;w=n[p>>1]|0;b=w&255;m=t+53|0;w=(w&65535)>>>8&255;d=s[e+12>>2]|0;c=e+16+(d<<3)|0;r[p>>0]=0;r[m>>0]=0;pn(e+16|0,t,i,a,o,f);e:do if((d|0)>1){l=t+24|0;u=e+8|0;d=t+54|0;h=e+24|0;do{if(r[d>>0]|0)break e;e=n[p>>1]|0;if(!((e&255)<<24>>24)){if((e&65535)>=256?(s[u>>2]&1|0)==0:0)break e}else{if((s[l>>2]|0)==1)break e;if(!(s[u>>2]&2))break e}r[p>>0]=0;r[m>>0]=0;pn(h,t,i,a,o,f);h=h+8|0}while(h>>>0>>0)}while(0);r[p>>0]=b;r[m>>0]=w}return}function pn(e,t,i,r,n,a){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;a=a|0;var o=0,f=0;f=s[e+4>>2]|0;o=f>>8;if(f&1)o=s[(s[r>>2]|0)+o>>2]|0;e=s[e>>2]|0;Xs[s[(s[e>>2]|0)+20>>2]&3](e,t,i,r+o|0,f&2|0?n:2,a);return}function bn(e,t,i,n,a){e=e|0;t=t|0;i=i|0;n=n|0;a=a|0;var o=0,f=0,h=0,c=0,l=0,u=0,d=0,p=0,b=0,m=0;e:do if((e|0)==(s[t+8>>2]|0)){if((s[t+4>>2]|0)==(i|0)?(o=t+28|0,(s[o>>2]|0)!=1):0)s[o>>2]=n}else{if((e|0)!=(s[t>>2]|0)){m=s[e+12>>2]|0;h=e+16+(m<<3)|0;mn(e+16|0,t,i,n,a);o=e+24|0;if((m|0)<=1)break;e=s[e+8>>2]|0;if((e&2|0)==0?(c=t+36|0,(s[c>>2]|0)!=1):0){if(!(e&1)){e=t+54|0;while(1){if(r[e>>0]|0)break e;if((s[c>>2]|0)==1)break e;mn(o,t,i,n,a);o=o+8|0;if(o>>>0>=h>>>0)break e}}e=t+24|0;f=t+54|0;while(1){if(r[f>>0]|0)break e;if((s[c>>2]|0)==1?(s[e>>2]|0)==1:0)break e;mn(o,t,i,n,a);o=o+8|0;if(o>>>0>=h>>>0)break e}}e=t+54|0;while(1){if(r[e>>0]|0)break e;mn(o,t,i,n,a);o=o+8|0;if(o>>>0>=h>>>0)break e}}if((s[t+16>>2]|0)!=(i|0)?(m=t+20|0,(s[m>>2]|0)!=(i|0)):0){s[t+32>>2]=n;b=t+44|0;if((s[b>>2]|0)==4)break;h=e+16+(s[e+12>>2]<<3)|0;c=t+52|0;n=t+53|0;d=t+54|0;l=e+8|0;p=t+24|0;u=0;o=0;f=e+16|0;t:while(1){if(f>>>0>=h>>>0){e=20;break}r[c>>0]=0;r[n>>0]=0;pn(f,t,i,i,1,a);if(r[d>>0]|0){e=20;break}do if(r[n>>0]|0){if(!(r[c>>0]|0))if(!(s[l>>2]&1)){o=1;e=20;break t}else{e=u;o=1;break}if((s[p>>2]|0)==1){e=25;break t}if(!(s[l>>2]&2)){e=25;break t}else{e=1;o=1}}else e=u;while(0);u=e;f=f+8|0}do if((e|0)==20){if((!u?(s[m>>2]=i,i=t+40|0,s[i>>2]=(s[i>>2]|0)+1,(s[t+36>>2]|0)==1):0)?(s[p>>2]|0)==2:0){r[d>>0]=1;if(o){e=25;break}else{o=4;break}}if(o)e=25;else o=4}while(0);if((e|0)==25)o=3;s[b>>2]=o;break}if((n|0)==1)s[t+32>>2]=1}while(0);return}function mn(e,t,i,r,n){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;var a=0,o=0;o=s[e+4>>2]|0;a=o>>8;if(o&1)a=s[(s[i>>2]|0)+a>>2]|0;e=s[e>>2]|0;Gs[s[(s[e>>2]|0)+24>>2]&3](e,t,i+a|0,o&2|0?r:2,n);return}function wn(e,t,i,n){e=e|0;t=t|0;i=i|0;n=n|0;var a=0,o=0;e:do if((e|0)==(s[t+8>>2]|0)){e=t+16|0;a=s[e>>2]|0;if(!a){s[e>>2]=i;s[t+24>>2]=n;s[t+36>>2]=1;break}if((a|0)!=(i|0)){n=t+36|0;s[n>>2]=(s[n>>2]|0)+1;s[t+24>>2]=2;r[t+54>>0]=1;break}e=t+24|0;if((s[e>>2]|0)==2)s[e>>2]=n}else{o=s[e+12>>2]|0;a=e+16+(o<<3)|0;gn(e+16|0,t,i,n);if((o|0)>1){o=t+54|0;e=e+24|0;do{gn(e,t,i,n);if(r[o>>0]|0)break e;e=e+8|0}while(e>>>0>>0)}}while(0);return}function gn(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var n=0,a=0;a=s[e+4>>2]|0;n=a>>8;if(a&1)n=s[(s[i>>2]|0)+n>>2]|0;e=s[e>>2]|0;Qs[s[(s[e>>2]|0)+28>>2]&3](e,t,i+n|0,a&2|0?r:2);return}function vn(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,n=0;n=l;l=l+16|0;r=n;s[r>>2]=s[i>>2];e=Hs[s[(s[e>>2]|0)+16>>2]&7](e,t,r)|0;if(e)s[i>>2]=s[r>>2];l=n;return e&1|0}function _n(e){e=e|0;if(!e)e=0;else e=(Zr(e,328)|0)!=0;return e&1|0}function yn(){}function kn(e,t,i){e=e|0;t=t|0;i=i|0;var n=0,a=0,o=0,f=0;n=e+i|0;if((i|0)>=20){t=t&255;o=e&3;f=t|t<<8|t<<16|t<<24;a=n&~3;if(o){o=e+4-o|0;while((e|0)<(o|0)){r[e>>0]=t;e=e+1|0}}while((e|0)<(a|0)){s[e>>2]=f;e=e+4|0}}while((e|0)<(n|0)){r[e>>0]=t;e=e+1|0}return e-i|0}function En(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;i=e+i>>>0;return(C=t+r+(i>>>0>>0|0)>>>0,i|0)|0}function An(e,t,i){e=e|0;t=t|0;i=i|0;if((i|0)<32){C=t>>i;return e>>>i|(t&(1<>i-32|0}function Sn(e,t,i){e=e|0;t=t|0;i=i|0;if((i|0)<32){C=t>>>i;return e>>>i|(t&(1<>>i-32|0}function Mn(e,t,i){e=e|0;t=t|0;i=i|0;var n=0;if((i|0)>=4096)return Te(e|0,t|0,i|0)|0;n=e|0;if((e&3)==(t&3)){while(e&3){if(!i)return n|0;r[e>>0]=r[t>>0]|0;e=e+1|0;t=t+1|0;i=i-1|0}while((i|0)>=4){s[e>>2]=s[t>>2];e=e+4|0;t=t+4|0;i=i-4|0}}while((i|0)>0){r[e>>0]=r[t>>0]|0;e=e+1|0;t=t+1|0;i=i-1|0}return n|0}function Tn(e,t,i){e=e|0;t=t|0;i=i|0;var n=0;if((t|0)<(e|0)&(e|0)<(t+i|0)){n=e;t=t+i|0;e=e+i|0;while((i|0)>0){e=e-1|0;t=t-1|0;i=i-1|0;r[e>>0]=r[t>>0]|0}e=n}else Mn(e,t,i)|0;return e|0}function xn(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;r=t-r-(i>>>0>e>>>0|0)>>>0;return(C=r,e-i>>>0|0)|0}function Rn(e,t,i){e=e|0;t=t|0;i=i|0;if((i|0)<32){C=t<>>32-i;return e<>0]|0;if((t|0)<8)return t|0;t=r[b+(e>>8&255)>>0]|0;if((t|0)<8)return t+8|0;t=r[b+(e>>16&255)>>0]|0;if((t|0)<8)return t+16|0;return(r[b+(e>>>24)>>0]|0)+24|0}function Cn(e,t){e=e|0;t=t|0;var i=0,r=0,n=0,s=0;s=e&65535;n=t&65535;i=te(n,s)|0;r=e>>>16;e=(i>>>16)+(te(n,r)|0)|0;n=t>>>16;t=te(n,s)|0;return(C=(e>>>16)+(te(n,r)|0)+(((e&65535)+t|0)>>>16)|0,e+t<<16|i&65535|0)|0}function Pn(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var n=0,s=0,a=0,o=0,f=0,h=0;h=t>>31|((t|0)<0?-1:0)<<1;f=((t|0)<0?-1:0)>>31|((t|0)<0?-1:0)<<1;s=r>>31|((r|0)<0?-1:0)<<1;n=((r|0)<0?-1:0)>>31|((r|0)<0?-1:0)<<1;o=xn(h^e|0,f^t|0,h|0,f|0)|0;a=C;e=s^h;t=n^f;return xn((Bn(o,a,xn(s^i|0,n^r|0,s|0,n|0)|0,C,0)|0)^e|0,C^t|0,e|0,t|0)|0}function On(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var n=0,a=0,o=0,f=0,h=0,c=0;n=l;l=l+16|0;f=n|0;o=t>>31|((t|0)<0?-1:0)<<1;a=((t|0)<0?-1:0)>>31|((t|0)<0?-1:0)<<1;c=r>>31|((r|0)<0?-1:0)<<1;h=((r|0)<0?-1:0)>>31|((r|0)<0?-1:0)<<1;e=xn(o^e|0,a^t|0,o|0,a|0)|0;t=C;Bn(e,t,xn(c^i|0,h^r|0,c|0,h|0)|0,C,f)|0;r=xn(s[f>>2]^o|0,s[f+4>>2]^a|0,o|0,a|0)|0;i=C;l=n;return(C=i,r)|0}function Nn(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var n=0,s=0;n=e;s=i;i=Cn(n,s)|0;e=C;return(C=(te(t,s)|0)+(te(r,n)|0)+e|e&0,i|0|0)|0}function Dn(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;return Bn(e,t,i,r,0)|0}function Ln(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var n=0,a=0;a=l;l=l+16|0;n=a|0;Bn(e,t,i,r,n)|0;l=a;return(C=s[n+4>>2]|0,s[n>>2]|0)|0}function Bn(e,t,i,r,n){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;var a=0,o=0,f=0,h=0,c=0,l=0,u=0,d=0,p=0,b=0;l=e;h=t;c=h;o=i;d=r;f=d;if(!c){a=(n|0)!=0;if(!f){if(a){s[n>>2]=(l>>>0)%(o>>>0);s[n+4>>2]=0}d=0;n=(l>>>0)/(o>>>0)>>>0;return(C=d,n)|0}else{if(!a){d=0;n=0;return(C=d,n)|0}s[n>>2]=e|0;s[n+4>>2]=t&0;d=0;n=0;return(C=d,n)|0}}a=(f|0)==0;do if(o){if(!a){a=(re(f|0)|0)-(re(c|0)|0)|0;if(a>>>0<=31){u=a+1|0;f=31-a|0;t=a-31>>31;o=u;e=l>>>(u>>>0)&t|c<>>(u>>>0)&t;a=0;f=l<>2]=e|0;s[n+4>>2]=h|t&0;d=0;n=0;return(C=d,n)|0}a=o-1|0;if(a&o|0){f=(re(o|0)|0)+33-(re(c|0)|0)|0;b=64-f|0;u=32-f|0;h=u>>31;p=f-32|0;t=p>>31;o=f;e=u-1>>31&c>>>(p>>>0)|(c<>>(f>>>0))&t;t=t&c>>>(f>>>0);a=l<>>(p>>>0))&h|l<>31;break}if(n|0){s[n>>2]=a&l;s[n+4>>2]=0}if((o|0)==1){p=h|t&0;b=e|0|0;return(C=p,b)|0}else{b=In(o|0)|0;p=c>>>(b>>>0)|0;b=c<<32-b|l>>>(b>>>0)|0;return(C=p,b)|0}}else{if(a){if(n|0){s[n>>2]=(c>>>0)%(o>>>0);s[n+4>>2]=0}p=0;b=(c>>>0)/(o>>>0)>>>0;return(C=p,b)|0}if(!l){if(n|0){s[n>>2]=0;s[n+4>>2]=(c>>>0)%(f>>>0)}p=0;b=(c>>>0)/(f>>>0)>>>0;return(C=p,b)|0}a=f-1|0;if(!(a&f)){if(n|0){s[n>>2]=e|0;s[n+4>>2]=a&c|t&0}p=0;b=c>>>((In(f|0)|0)>>>0);return(C=p,b)|0}a=(re(f|0)|0)-(re(c|0)|0)|0;if(a>>>0<=30){t=a+1|0;f=31-a|0;o=t;e=c<>>(t>>>0);t=c>>>(t>>>0);a=0;f=l<>2]=e|0;s[n+4>>2]=h|t&0;p=0;b=0;return(C=p,b)|0}while(0);if(!o){c=f;h=0;f=0}else{u=i|0|0;l=d|r&0;c=En(u|0,l|0,-1,-1)|0;i=C;h=f;f=0;do{r=h;h=a>>>31|h<<1;a=f|a<<1;r=e<<1|r>>>31|0;d=e>>>31|t<<1|0;xn(c|0,i|0,r|0,d|0)|0;b=C;p=b>>31|((b|0)<0?-1:0)<<1;f=p&1;e=xn(r|0,d|0,p&u|0,(((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1)&l|0)|0;t=C;o=o-1|0}while((o|0)!=0);c=h;h=0}o=0;if(n|0){s[n>>2]=e;s[n+4>>2]=t}p=(a|0)>>>31|(c|o)<<1|(o<<1|a>>>31)&0|h;b=(a<<1|0>>>31)&-2|f;return(C=p,b)|0}function Un(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;return Hs[e&7](t|0,i|0,r|0)|0}function jn(e,t,i,r,n,s){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;s=s|0;Gs[e&3](t|0,i|0,r|0,n|0,s|0)}function Fn(e,t){e=e|0;t=t|0;Vs[e&15](t|0)}function zn(e,t,i,r,n,s,a){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;s=s|0;a=a|0;return Ws[e&1](t|0,i|0,r|0,n|0,s|0,a|0)|0}function qn(e,t){e=e|0;t=t|0;return Ks[e&3](t|0)|0}function Hn(e,t,i,r,n,s,a,o){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;s=s|0;a=a|0;o=o|0;Ys[e&1](t|0,i|0,r|0,n|0,s|0,a|0,o|0)}function Gn(e){e=e|0;Zs[e&0]()}function Vn(e,t,i,r,n){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;return $s[e&3](t|0,i|0,r|0,n|0)|0}function Wn(e,t,i,r,n,s,a){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;s=s|0;a=a|0;Xs[e&3](t|0,i|0,r|0,n|0,s|0,a|0)}function Kn(e,t,i,r,n,s){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;s=s|0;return Js[e&3](t|0,i|0,r|0,n|0,s|0)|0}function Yn(e,t,i,r,n){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;Qs[e&3](t|0,i|0,r|0,n|0)}function Zn(e,t,i){e=e|0;t=t|0;i=i|0;ne(0);return 0}function $n(e,t,i,r,n){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;ne(1)}function Xn(e){e=e|0;ne(2)}function Jn(e,t,i,r,n,s){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;s=s|0;ne(3);return 0}function Qn(e){e=e|0;ne(4);return 0}function es(e,t,i,r,n,s,a){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;s=s|0;a=a|0;ne(5)}function ts(){ne(6)}function is(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;ne(7);return 0}function rs(e,t,i,r,n,s){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;s=s|0;ne(8)}function ns(e,t,i,r,n){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;ne(9);return 0}function ss(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;ne(10)}function as(e){e=e|0;var t=0;t=l;l=l+e|0;l=l+15&-16;return t|0}function os(){return l|0}function fs(e){e=e|0;l=e}function hs(e,t){e=e|0;t=t|0;l=e;u=t}function cs(e,t){e=e|0;t=t|0;if(!m){m=e;w=t}}function ls(e){e=e|0; +r[d>>0]=r[e>>0];r[d+1>>0]=r[e+1>>0];r[d+2>>0]=r[e+2>>0];r[d+3>>0]=r[e+3>>0]}function us(e){e=e|0;r[d>>0]=r[e>>0];r[d+1>>0]=r[e+1>>0];r[d+2>>0]=r[e+2>>0];r[d+3>>0]=r[e+3>>0];r[d+4>>0]=r[e+4>>0];r[d+5>>0]=r[e+5>>0];r[d+6>>0]=r[e+6>>0];r[d+7>>0]=r[e+7>>0]}function ds(e){e=e|0;C=e}function ps(){return C|0}function bs(e,t,i,r,a){e=e|0;t=t|0;i=i|0;r=r|0;a=a|0;var f=0,h=0;if((i|0)>0){f=0;do{h=f<<1;n[t+(f<<1)>>1]=n[t+((h|1)<<1)>>1]<<8|o[t+(h<<1)>>1];f=f+1|0}while((f|0)!=(i|0))}return Ls(s[e+12>>2]|0,t,a,r)|0}function ms(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var a=0,f=0,h=0;a=e+20|0;f=xs(s[e+16>>2]|0,t,i,s[a>>2]|0)|0;i=s[e+4>>2]|0;if((te(i,f)|0)<=0)return f|0;a=s[a>>2]|0;i=te(f,i)|0;t=0;do{h=a+(t<<1)|0;e=t<<1;n[r+(e<<1)>>1]=(o[h>>1]|0)&255;n[r+((e|1)<<1)>>1]=(o[h>>1]|0)>>>8;t=t+1|0}while((t|0)!=(i|0));return f|0}function ws(e){e=e|0;return 8}function gs(e){e=e|0;if(!e)return;Hr(s[e+12>>2]|0);Hr(s[e+16>>2]|0);Hr(e);return}function vs(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,n=0,a=0,o=0,f=0,h=0,c=0,u=0;u=l;l=l+16|0;c=u+4|0;h=u;while(1){f=qr(24)|0;if(f|0)break;r=s[8868]|0;s[8868]=r+0;if(!r){o=5;break}Zs[r&0]()}if((o|0)==5){u=dt(4)|0;s[u>>2]=23152;Yt(u|0,296,6)}a=s[e>>2]|0;n=s[t>>2]|0;t=s[i>>2]|0;s[f>>2]=t;s[f+4>>2]=n;s[f+8>>2]=a;e=n*11520|0;e=e>>>0>2147483647?-1:e<<1;e=(e|0)==0?1:e;while(1){r=qr(e)|0;if(r|0){o=11;break}r=s[8868]|0;s[8868]=r+0;if(!r){o=10;break}Zs[r&0]()}if((o|0)==10){u=dt(4)|0;s[u>>2]=23152;Yt(u|0,296,6)}else if((o|0)==11){s[f+20>>2]=r;s[f+12>>2]=Cs(a,n,t,c)|0;s[f+16>>2]=Ms(a,n,h)|0;l=u;return f|0}return 0}function _s(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var n=0,a=0,o=0,f=0;n=l;l=l+16|0;f=n+8|0;o=n+4|0;a=n;s[f>>2]=t;s[o>>2]=i;s[a>>2]=r;e=Hs[e&7](f,o,a)|0;l=n;return e|0}function ys(e,t,i,r,n,a){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;a=a|0;var o=0,f=0;o=s[e>>2]|0;f=s[e+4>>2]|0;e=t+(f>>1)|0;if(f&1)o=s[(s[e>>2]|0)+o>>2]|0;return Js[o&3](e,i,r,n,a)|0}function ks(e,t,i,r,n){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;var a=0,o=0;a=s[e>>2]|0;o=s[e+4>>2]|0;e=t+(o>>1)|0;if(o&1)a=s[(s[e>>2]|0)+a>>2]|0;return $s[a&3](e,i,r,n)|0}function Es(){var e=0,t=0;ot(8,16,32,0,27863,2,27866,0,27866,0,27766,27868,11);Ue(8,4,488,27871,1,4);while(1){e=qr(8)|0;if(e|0)break;e=s[8868]|0;s[8868]=e+0;if(!e){t=5;break}Zs[e&0]()}if((t|0)==5){t=dt(4)|0;s[t>>2]=23152;Yt(t|0,296,6)}s[e>>2]=1;s[e+4>>2]=0;Ut(8,27784,6,504,27877,1,e|0,0);while(1){e=qr(8)|0;if(e|0){t=11;break}e=s[8868]|0;s[8868]=e+0;if(!e){t=10;break}Zs[e&0]()}if((t|0)==10){t=dt(4)|0;s[t>>2]=23152;Yt(t|0,296,6)}else if((t|0)==11){s[e>>2]=2;s[e+4>>2]=0;Ut(8,27792,5,528,27885,2,e|0,0);return}}function As(e,t,i,r,n,s,a,o,f,c,l){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;s=+s;a=+a;o=o|0;f=f|0;c=c|0;l=l|0;var u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0;if(s==0&a==0){if((t|0)==(e|0))return;Tn(e|0,t|0,n<<2|0)|0;return}g=(i|0)>15?i:15;M=(r|0)>15?r:15;w=+h[548+(o*12|0)>>2]*s;b=+h[548+(o*12|0)+4>>2]*s;m=+h[548+(o*12|0)+8>>2]*s;E=+h[548+(f*12|0)>>2]*a;A=+h[548+(f*12|0)+4>>2]*a;S=+h[548+(f*12|0)+8>>2]*a;v=1-M|0;_=0-M|0;y=~M;k=-2-M|0;i=s==a&(g|0)==(M|0)&(o|0)==(f|0)?0:l;r=0;s=+h[t+(v<<2)>>2];u=+h[t+(_<<2)>>2];d=+h[t+(y<<2)>>2];p=+h[t+(k<<2)>>2];while(1){if((r|0)>=(i|0))break;x=+h[t+(r-M+2<<2)>>2];T=+h[c+(r<<2)>>2];T=T*T;R=1-T;f=r-g|0;h[e+(r<<2)>>2]=+h[t+(r<<2)>>2]+R*w*+h[t+(f<<2)>>2]+R*b*(+h[t+(f+1<<2)>>2]+ +h[t+(f+-1<<2)>>2])+R*m*(+h[t+(f+2<<2)>>2]+ +h[t+(f+-2<<2)>>2])+T*E*u+T*A*(s+d)+T*S*(x+p);T=s;r=r+1|0;s=x;p=d;d=u;u=T}if(a==0){if((t|0)==(e|0))return;Tn(e+(i<<2)|0,t+(i<<2)|0,n-i<<2|0)|0;return}else{o=e+(r<<2)|0;l=t+(r<<2)|0;i=n-r|0;r=0;p=+h[l+(v<<2)>>2];d=+h[l+(_<<2)>>2];u=+h[l+(y<<2)>>2];s=+h[l+(k<<2)>>2];while(1){if((r|0)>=(i|0))break;x=+h[l+(r-M+2<<2)>>2];h[o+(r<<2)>>2]=+h[l+(r<<2)>>2]+d*E+(p+u)*A+(x+s)*S;R=p;r=r+1|0;p=x;s=u;u=d;d=R}return}}function Ss(e){e=e|0;if((e+7|0)>>>0>7){e=27924;return e|0}e=s[584+(0-e<<2)>>2]|0;return e|0}function Ms(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,a=0,o=0,f=0,h=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0;g=l;l=l+16|0;m=g+8|0;p=g;e:do if((e|0)<16e3)if((e|0)<12e3)switch(e|0){case 8e3:{o=2;break e}default:break e}else switch(e|0){case 12e3:{o=2;break e}default:break e}else{if((e|0)<24e3)switch(e|0){case 16e3:{o=2;break e}default:break e}if((e|0)<48e3)switch(e|0){case 24e3:{o=2;break e}default:break e}else switch(e|0){case 48e3:{o=2;break e}default:break e}}while(0);if((o|0)==2?(t+-1|0)>>>0<2:0){d=t*96|0;w=qr((t*8672|0)+88+d+9304|0)|0;if(!w){if(!i){i=0;l=g;return i|0}s[i>>2]=-7;i=0;l=g;return i|0}e:do if((e|0)<16e3)if((e|0)<12e3)switch(e|0){case 8e3:{o=9;break e}default:{r=-1;break e}}else switch(e|0){case 12e3:{o=9;break e}default:{r=-1;break e}}else{if((e|0)<24e3)switch(e|0){case 16e3:{o=9;break e}default:{r=-1;break e}}if((e|0)<48e3)switch(e|0){case 24e3:{o=9;break e}default:{r=-1;break e}}else switch(e|0){case 48e3:{o=9;break e}default:{r=-1;break e}}}while(0);do if((o|0)==9)if((t+-1|0)>>>0<2){kn(w|0,0,(t*8672|0)+88+d+9304|0)|0;s[w+4>>2]=88;s[w>>2]=8632;r=w+88|0;b=w+8632|0;s[w+8>>2]=t;s[w+48>>2]=t;s[w+12>>2]=e;s[w+24>>2]=e;s[w+16>>2]=t;u=0;while(1){if((u|0)==2)break;a=r+(u*4260|0)|0;kn(a|0,0,4260)|0;s[r+(u*4260|0)+2376>>2]=1;s[a>>2]=65536;a=r+(u*4260|0)+2340|0;f=s[a>>2]|0;o=32767/(f+1|0)|0;h=0;c=0;while(1){if((c|0)>=(f|0))break;v=h+o|0;n[r+(u*4260|0)+4052+(c<<1)>>1]=v;f=s[a>>2]|0;h=v;c=c+1|0}s[r+(u*4260|0)+4148>>2]=0;s[r+(u*4260|0)+4152>>2]=3176576;s[r+(u*4260|0)+4168>>2]=s[r+(u*4260|0)+2328>>2]<<7;s[r+(u*4260|0)+4240>>2]=65536;s[r+(u*4260|0)+4244>>2]=65536;s[r+(u*4260|0)+4256>>2]=20;s[r+(u*4260|0)+4252>>2]=2;u=u+1|0}v=w+8608|0;s[v>>2]=0;s[v+4>>2]=0;s[v+8>>2]=0;s[w+8628>>2]=0;if(t>>>0<=2){kn(b|0,0,(t*8672|0)+88+d+672|0)|0;s[b>>2]=5304;s[w+8636>>2]=120;s[w+8640>>2]=t;s[w+8644>>2]=t;a=w+8648|0;s[a>>2]=1;s[w+8652>>2]=0;s[w+8656>>2]=21;s[w+8660>>2]=1;s[w+8664>>2]=0;ni(b,4028,p);e:do if((e|0)<16e3)if((e|0)<12e3){switch(e|0){case 8e3:break;default:{o=22;break e}}r=6;o=23;break}else{switch(e|0){case 12e3:break;default:{o=22;break e}}r=4;o=23;break}else{if((e|0)<24e3){switch(e|0){case 16e3:break;default:{o=22;break e}}r=3;o=23;break}if((e|0)>=48e3)switch(e|0){case 48e3:{r=1;o=23;break e}default:{o=22;break e}}switch(e|0){case 24e3:break;default:{o=22;break e}}r=2;o=23}while(0);if((o|0)==22){s[a>>2]=0;r=-3;break}else if((o|0)==23){s[a>>2]=r;s[m>>2]=0;ni(b,10016,m);s[w+60>>2]=0;s[w+64>>2]=(e|0)/400|0;s[w+44>>2]=0;r=0;break}}else r=-3}else r=-1;while(0);if(i|0)s[i>>2]=r;if(!r){v=w;l=g;return v|0}Hr(w);v=0;l=g;return v|0}if(!i){v=0;l=g;return v|0}s[i>>2]=-1;v=0;l=g;return v|0}function Ts(e,t,i,r,o,f){e=e|0;t=t|0;i=i|0;r=r|0;o=o|0;f=f|0;var c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0,C=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,z=0,q=0,H=0,G=0,V=0,W=0,K=0,Y=0,Z=0,$=0,X=0,Q=0,ee=0,ie=0,ne=0,se=0,ae=0,oe=0;oe=l;l=l+160|0;$=oe+80|0;Z=oe+72|0;Y=oe+64|0;W=oe+56|0;H=oe+48|0;z=oe+40|0;F=oe+32|0;j=oe+24|0;U=oe+16|0;B=oe+8|0;L=oe;se=oe+96|0;T=oe+92|0;ae=oe+88|0;q=oe+144|0;V=oe+84|0;s[ae>>2]=0;M=e+(s[e+4>>2]|0)|0;K=e+(s[e>>2]|0)|0;ie=e+12|0;c=s[ie>>2]|0;G=(c|0)/50|0;S=G>>1;ee=G>>2;ne=G>>3;if((ne|0)>(o|0)){e=-2;l=oe;return e|0}c=((c|0)/25|0)*3|0;c=(c|0)>(o|0)?o:c;do if((i|0)>=2)if(t){p=s[e+64>>2]|0;d=s[e+56>>2]|0;s[se>>2]=t;s[se+4>>2]=i;s[se+8>>2]=0;s[se+12>>2]=0;s[se+16>>2]=0;w=se+20|0;s[w>>2]=9;g=se+24|0;s[g>>2]=0;v=se+28|0;s[v>>2]=128;s[g>>2]=1;E=a[t>>0]|0;_=se+40|0;s[_>>2]=E;A=E>>>1^127;y=se+32|0;s[y>>2]=A;s[se+44>>2]=0;u=128;o=9;m=1;while(1){if(u>>>0>=8388609)break;o=o+8|0;s[w>>2]=o;u=u<<8;s[v>>2]=u;if(m>>>0>>0){Q=m+1|0;s[g>>2]=Q;k=a[t+m>>0]|0;m=Q}else k=0;s[_>>2]=k;Q=((E<<8|k)>>>1&255|A<<8&2147483392)^255;s[y>>2]=Q;E=k;A=Q}o=s[e+60>>2]|0;if((o|0)>0){o=(o|0)==1002;if((d|0)!=1002){if(!o){o=t;u=c;I=27;break}C=te(ee,s[e+8>>2]|0)|0;Q=Ne()|0;X=p;P=0;O=1;break}if(!o?(s[e+68>>2]|0)==0:0){X=te(ee,s[e+8>>2]|0)|0;Q=Ne()|0;P=l;l=l+((1*(X<<2)|0)+15&-16)|0;Ts(e,0,0,P,(ee|0)<(p|0)?ee:p,0)|0;X=p;d=1002;C=1;O=1}else{o=t;u=c;d=1002;I=27}}else{o=t;u=c;I=27}}else I=10;else{I=s[e+64>>2]|0;c=(c|0)<(I|0)?c:I;I=10}while(0);do if((I|0)==10){d=s[e+60>>2]|0;if(!d){o=e+8|0;u=0;while(1){if((u|0)>=(te(c,s[o>>2]|0)|0))break;h[r+(u<<2)>>2]=0;u=u+1|0}l=oe;return c|0}if((c|0)<=(G|0)){if((c|0)>=(G|0)){o=0;u=c;p=c;I=27;break}if((c|0)>(S|0)){o=0;u=c;p=S;I=27;break}if((d|0)==1e3){o=0;u=c;p=c;d=1e3;I=27;break}o=0;u=c;p=(c|0)>(ee|0)&(c|0)<(S|0)?ee:c;I=27;break}p=e+8|0;o=r;d=c;while(1){u=Ts(e,0,0,o,(d|0)<(G|0)?d:G,0)|0;if((u|0)<0){c=u;I=158;break}d=d-u|0;o=o+((te(u,s[p>>2]|0)|0)<<2)|0;if((d|0)<=0){I=158;break}}if((I|0)==158){l=oe;return c|0}}while(0);if((I|0)==27){t=o;c=u;Q=Ne()|0;X=p;P=0;C=1;O=0}e:do if((X|0)>(c|0))c=-1;else{if((d|0)==1002){T=l;l=l+16|0;d=1002}else{_=e+8|0;c=s[_>>2]|0;if((S|0)>(X|0)){S=(te(S,c)|0)<<1;v=l;l=l+((1*S|0)+15&-16)|0}else{S=(te(X,c)|0)<<1;v=l;l=l+((1*S|0)+15&-16)|0}if((s[e+60>>2]|0)==1002){w=0;while(1){if((w|0)==2)break;c=M+(w*4260|0)|0;kn(c|0,0,4260)|0;s[M+(w*4260|0)+2376>>2]=1;s[c>>2]=65536;c=M+(w*4260|0)+2340|0;u=s[c>>2]|0;o=32767/(u+1|0)|0;p=0;m=0;while(1){if((m|0)>=(u|0))break;S=p+o|0;n[M+(w*4260|0)+4052+(m<<1)>>1]=S;u=s[c>>2]|0;p=S;m=m+1|0}s[M+(w*4260|0)+4148>>2]=0;s[M+(w*4260|0)+4152>>2]=3176576;s[M+(w*4260|0)+4168>>2]=s[M+(w*4260|0)+2328>>2]<<7;s[M+(w*4260|0)+4240>>2]=65536;s[M+(w*4260|0)+4244>>2]=65536;s[M+(w*4260|0)+4256>>2]=20;s[M+(w*4260|0)+4252>>2]=2;w=w+1|0}S=M+8520|0;s[S>>2]=0;s[S+4>>2]=0;s[S+8>>2]=0;s[M+8540>>2]=0}S=(X*1e3|0)/(s[ie>>2]|0)|0;s[e+32>>2]=(S|0)<10?10:S;if(!t)p=1;else{s[e+20>>2]=s[e+48>>2];t:do if((d|0)==1e3)switch(s[e+52>>2]|0){case 1101:{s[e+28>>2]=8e3;break t}case 1102:{s[e+28>>2]=12e3;break t}case 1103:{s[e+28>>2]=16e3;break t}default:{s[e+28>>2]=16e3;break t}}else s[e+28>>2]=16e3;while(0);p=f<<1}u=e+16|0;m=(p|0)==0;w=0;g=v;while(1){t:do if(!(Pi(M,u,p,(w|0)==0&1,se,g,T)|0))c=s[_>>2]|0;else{if(m){c=-3;break e}s[T>>2]=X;o=0;while(1){c=s[_>>2]|0;if((o|0)>=(te(X,c)|0))break t;n[g+(o<<1)>>1]=0;o=o+1|0}}while(0);S=s[T>>2]|0;w=w+S|0;g=g+((te(S,c)|0)<<1)|0;if((w|0)>=(X|0)){T=v;break}}}M=(f|0)==0;do if(M)if((d|0)!=1002)if((t|0)!=0?(N=se+20|0,R=s[N>>2]|0,D=se+28|0,x=s[D>>2]|0,I=R+((re(x|0)|0)+-32)+17|0,(I+((s[e+56>>2]|0)==1001?20:0)|0)<=(i<<3|0)):0){E=(d|0)==1001;A=se+32|0;o=s[A>>2]|0;if(E){c=x>>>12;_=o>>>0>>0;y=_&1;if(!_){o=o-c|0;s[A>>2]=o;c=x-c|0}s[D>>2]=c;w=se+40|0;g=se+24|0;v=se+4|0;u=c;c=R;while(1){if(u>>>0>=8388609)break;c=c+8|0;s[N>>2]=c;p=u<<8;s[D>>2]=p;m=s[w>>2]|0;u=s[g>>2]|0;if(u>>>0<(s[v>>2]|0)>>>0){s[g>>2]=u+1;u=a[(s[se>>2]|0)+u>>0]|0}else u=0;s[w>>2]=u;I=((m<<8|u)>>>1&255|o<<8&2147483392)^255;s[A>>2]=I;u=p;o=I}if(_){m=u;p=o}else{c=i;o=0;u=0;p=0;I=90;break}}else{m=x;p=o;c=R;y=1}u=m>>>1;I=p>>>0>>0;o=I&1;if(!I){p=p-u|0;s[A>>2]=p;u=m-u|0}s[D>>2]=u;v=se+40|0;_=se+24|0;k=se+4|0;while(1){if(u>>>0>=8388609)break;c=c+8|0;s[N>>2]=c;u=u<<8;s[D>>2]=u;w=s[v>>2]|0;m=s[_>>2]|0;if(m>>>0<(s[k>>2]|0)>>>0){s[_>>2]=m+1;m=a[(s[se>>2]|0)+m>>0]|0}else m=0;s[v>>2]=m;I=((w<<8|m)>>>1&255|p<<8&2147483392)^255;s[A>>2]=I;p=I}if(E){I=u>>>8;s[se+36>>2]=I;g=(p>>>0)/(I>>>0)|0;R=g+1|0;g=256-(R+(R>>>0>256?255-g|0:0))|0;R=te(I,255-g|0)|0;w=p-R|0;s[A>>2]=w;u=(g|0)==0?u-R|0:I;s[D>>2]=u;while(1){if(u>>>0>=8388609)break;c=c+8|0;s[N>>2]=c;u=u<<8;s[D>>2]=u;m=s[v>>2]|0;p=s[_>>2]|0;if(p>>>0<(s[k>>2]|0)>>>0){s[_>>2]=p+1;p=a[(s[se>>2]|0)+p>>0]|0}else p=0;s[v>>2]=p;I=((m<<8|p)>>>1&255|w<<8&2147483392)^255;s[A>>2]=I;w=I}p=g+2|0}else p=i-(c+((re(u|0)|0)+-32)+7>>3)|0;I=i-p|0;u=(I<<3|0)<(c+((re(u|0)|0)+-32)|0);p=u?0:p;s[k>>2]=(s[k>>2]|0)-p;c=u?0:I;u=u?0:y;I=90}else{c=i;o=0;u=0;p=0;I=91}else{S=i;A=0;u=0;p=0;o=0}else{c=i;o=0;u=0;p=0;I=90}while(0);if((I|0)==90)if((d|0)==1002){S=c;A=o;o=0}else I=91;if((I|0)==91){S=c;A=o;o=17}switch(s[e+52>>2]|0){case 1101:{c=13;break}case 1103:case 1102:{c=17;break}case 1104:{c=19;break}default:c=21}s[L>>2]=c;ni(K,10012,L);s[B>>2]=s[e+48>>2];ni(K,10008,B);E=(u|0)==0;if(!E){B=(te(ee,s[e+8>>2]|0)|0)<<2;c=l;l=l+((1*B|0)+15&-16)|0;if(!A){g=c;k=P;v=0}else{s[U>>2]=0;ni(K,10010,U);si(K,t+S|0,p,c,ee,0,0)|0;s[j>>2]=ae;ni(K,4031,j);g=c;k=P;v=0}}else{c=l;l=l+((1*(C<<2)|0)+15&-16)|0;do if(!((O|0)==0|(d|0)==1002))if((ee|0)<(X|0)){Ts(e,0,0,c,ee,0)|0;break}else{Ts(e,0,0,c,X,0)|0;break}else c=P;while(0);g=l;l=l+16|0;k=c;v=O}s[F>>2]=o;ni(K,10010,F);do if((d|0)==1e3){n[q>>1]=-1;c=e+8|0;o=0;while(1){if((o|0)>=(te(X,s[c>>2]|0)|0))break;h[r+(o<<2)>>2]=0;o=o+1|0}if((s[e+60>>2]|0)==1001){if(!(E|(A|0)==0)?s[e+68>>2]|0:0){c=0;d=1e3;I=116;break}s[H>>2]=0;ni(K,10010,H);si(K,q,2,r,ne,0,0)|0;c=0;d=1e3;I=116}else{c=0;d=1e3;I=116}}else{c=(G|0)<(X|0)?G:X;G=s[e+60>>2]|0;if((d|0)!=(G|0)&(G|0)>0?(s[e+68>>2]|0)==0:0)ni(K,4028,z);c=si(K,M?t:0,S,r,c,se,0)|0;if((d|0)==1002){y=c;_=d}else I=116}while(0);t:do if((I|0)==116){o=e+8|0;u=0;while(1){if((u|0)>=(te(X,s[o>>2]|0)|0)){y=c;_=d;break t}G=r+(u<<2)|0;h[G>>2]=+h[G>>2]+ +(n[T+(u<<1)>>1]|0)*30517578125e-15;u=u+1|0}}while(0);s[W>>2]=V;ni(K,10015,W);w=s[(s[V>>2]|0)+60>>2]|0;t:do if(!E){if(!A){ni(K,4028,Y);s[Z>>2]=0;ni(K,10010,Z);si(K,t+S|0,p,g,ee,0,0)|0;s[$>>2]=ae;ni(K,4031,$);p=s[e+8>>2]|0;m=r+((te(p,X-ne|0)|0)<<2)|0;c=g+((te(p,ne)|0)<<2)|0;o=48e3/(s[ie>>2]|0)|0;u=0;while(1){if((u|0)<(p|0))d=0;else break t;while(1){if((d|0)>=(ne|0))break;b=+h[w+((te(d,o)|0)<<2)>>2];b=b*b;Z=(te(d,p)|0)+u|0;$=m+(Z<<2)|0;h[$>>2]=b*+h[c+(Z<<2)>>2]+(1-b)*+h[$>>2];d=d+1|0}u=u+1|0}}o=e+8|0;u=0;while(1){m=s[o>>2]|0;if((u|0)<(m|0))c=0;else break;while(1){if((c|0)>=(ne|0))break;$=(te(s[o>>2]|0,c)|0)+u|0;s[r+($<<2)>>2]=s[g+($<<2)>>2];c=c+1|0}u=u+1|0}o=te(m,ne)|0;c=g+(o<<2)|0;o=r+(o<<2)|0;u=48e3/(s[ie>>2]|0)|0;d=0;while(1){if((d|0)<(m|0))p=0;else break t;while(1){if((p|0)>=(ne|0))break;b=+h[w+((te(p,u)|0)<<2)>>2];b=b*b;Z=(te(p,m)|0)+d|0;$=o+(Z<<2)|0;h[$>>2]=b*+h[$>>2]+(1-b)*+h[c+(Z<<2)>>2];p=p+1|0}d=d+1|0}}while(0);t:do if(v|0){o=e+8|0;if((X|0)<(ee|0)){d=s[o>>2]|0;c=48e3/(s[ie>>2]|0)|0;o=0;while(1){if((o|0)<(d|0))u=0;else break t;while(1){if((u|0)>=(ne|0))break;b=+h[w+((te(u,c)|0)<<2)>>2];b=b*b;ee=(te(u,d)|0)+o|0;ie=r+(ee<<2)|0;h[ie>>2]=b*+h[ie>>2]+(1-b)*+h[k+(ee<<2)>>2];u=u+1|0}o=o+1|0}}else c=0;while(1){m=s[o>>2]|0;u=te(m,ne)|0;if((c|0)>=(u|0))break;s[r+(c<<2)>>2]=s[k+(c<<2)>>2];c=c+1|0}p=k+(u<<2)|0;d=r+(u<<2)|0;c=48e3/(s[ie>>2]|0)|0;o=0;while(1){if((o|0)<(m|0))u=0;else break t;while(1){if((u|0)>=(ne|0))break;b=+h[w+((te(u,c)|0)<<2)>>2];b=b*b;ee=(te(u,m)|0)+o|0;ie=d+(ee<<2)|0;h[ie>>2]=b*+h[ie>>2]+(1-b)*+h[p+(ee<<2)>>2];u=u+1|0}o=o+1|0}}while(0);c=s[e+40>>2]|0;t:do if(c|0){b=+J(+(+(c|0)*.0006488140788860619*.6931471805599453));c=e+8|0;o=0;while(1){if((o|0)>=(te(X,s[c>>2]|0)|0))break t;ne=r+(o<<2)|0;h[ne>>2]=+h[ne>>2]*b;o=o+1|0}}while(0);if((S|0)<2)c=0;else c=s[se+28>>2]^s[ae>>2];s[e+84>>2]=c;s[e+60>>2]=_;s[e+68>>2]=(A|0)==0&(E^1)&1;c=(y|0)<0?y:X}while(0);qe(Q|0);e=c;l=oe;return e|0}function xs(e,t,i,o){e=e|0;t=t|0;i=i|0;o=o|0;var f=0,c=0,u=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0,C=0;R=l;l=l+112|0;A=R;E=R+104|0;S=R+8|0;v=(t|0)==0;do if((i|0)>0&(v^1)){m=s[e+12>>2]|0;u=r[t>>0]|0;p=u&255;e:do switch(p&3|0){case 0:{b=1;break}case 3:if((i|0)<2){o=-4;l=R;return o|0}else{c=a[t+1>>0]&63;_=5;break e}default:{c=2;_=5}}while(0);if((_|0)==5)b=c;do if(u<<24>>24>=0)if((u&96)==96)if(!(u&8)){c=(m|0)/100|0;break}else{c=(m|0)/50|0;break}else{c=p>>>3&3;if((c|0)==3){c=(m*60|0)/1e3|0;break}else{c=(m<>>3&3)|0)/400|0;while(0);c=te(b,c)|0;if((c*25|0)<=(m*3|0)&(c|0)>0){k=(c|0)>5760?5760:c;break}else{o=-4;l=R;return o|0}}else k=5760;while(0);M=e+8|0;c=te(k,s[M>>2]|0)|0;T=Ne()|0;x=l;l=l+((1*(c<<2)|0)+15&-16)|0;c=(i|0)==0;e:do if(c|v)if(!((k|0)%((s[e+12>>2]|0)/400|0|0)|0))if(c|v){u=0;do{c=Ts(e,0,0,x+((te(u,s[M>>2]|0)|0)<<2)|0,k-u|0,0)|0;if((c|0)<0){u=c;break e}u=u+c|0}while((u|0)<(k|0));s[e+72>>2]=u}else _=23;else u=-1;else _=23;while(0);e:do if((_|0)==23)if((i|0)>=0){m=r[t>>0]|0;do if(m<<24>>24>=0){_=(m&96)==96;b=_?1001:1e3;if(_)p=(m&16)>>>4|1104;else p=((m&255)>>>5&3)+1101|0;c=s[e+12>>2]|0;if((m&96)==96)if(!(m&8)){v=(c|0)/100|0;break}else{v=(c|0)/50|0;break}else{u=(m&255)>>>3&3;if((u|0)==3){v=(c*60|0)/1e3|0;break}else{v=(c<>>5&3;v=(s[e+12>>2]<<((m&255)>>>3&3)|0)/400|0;p=(p|0)==0?1101:p+1102|0;b=1002}while(0);c=((m&4)>>>2)+1|0;u=rr(t,i,0,E,0,S,A,0)|0;if((u|0)>=0)if((te(u,v)|0)<=(k|0)){m=t+(s[A>>2]|0)|0;s[e+56>>2]=b;s[e+52>>2]=p;s[e+64>>2]=v;s[e+48>>2]=c;c=m;m=0;t=0;while(1){if((m|0)>=(u|0))break;p=S+(m<<1)|0;b=Ts(e,c,n[p>>1]|0,x+((te(t,s[M>>2]|0)|0)<<2)|0,k-t|0,0)|0;if((b|0)<0){u=b;break e}c=c+(n[p>>1]|0)|0;m=m+1|0;t=t+b|0}s[e+72>>2]=t;E=s[M>>2]|0;if((E|0)<1|(t|0)<1)u=t;else{c=te(t,E)|0;u=0;while(1){if((u|0)>=(c|0)){i=0;break}S=x+(u<<2)|0;y=+h[S>>2];i=y>2;A=y<-2&(i^1);h[S>>2]=A|i?A?-2:2:y;u=u+1|0}while(1){if((i|0)==(E|0)){u=t;break e}_=x+(i<<2)|0;k=e+76+(i<<2)|0;f=+h[k>>2];u=0;while(1){if((u|0)>=(t|0))break;c=_+((te(u,E)|0)<<2)|0;w=+h[c>>2];g=w*f;if(g>=0)break;h[c>>2]=w+g*w;u=u+1|0}y=+h[_>>2];m=0;while(1){u=m;while(1){if((u|0)>=(t|0))break;g=+h[_+((te(u,E)|0)<<2)>>2];if(g>1|g<-1)break;u=u+1|0}if((u|0)==(t|0)){f=0;break}g=+h[_+((te(u,E)|0)<<2)>>2];f=+q(+g);p=u;while(1){if((p|0)<=0){v=u;w=f;b=u;break}c=p+-1|0;if(!(g*+h[_+((te(c,E)|0)<<2)>>2]>=0)){v=u;w=f;b=u;break}else p=c}while(1){if((v|0)>=(t|0))break;f=+h[_+((te(v,E)|0)<<2)>>2];if(!(g*f>=0))break;f=+q(+f);A=f>w;S=A?v:b;v=v+1|0;w=A?f:w;b=S}if(!p)u=g*+h[_>>2]>=0;else u=0;f=(w+-1)/(w*w);f=f+f*2.4e-7;f=g>0?-f:f;c=p;while(1){if((c|0)>=(v|0))break;S=_+((te(c,E)|0)<<2)|0;g=+h[S>>2];h[S>>2]=g+f*g*g;c=c+1|0}t:do if(u&(b|0)>1){w=y-+h[_>>2];g=w/+(b|0);c=m;while(1){if((c|0)>=(b|0))break t;I=w-g;S=_+((te(c,E)|0)<<2)|0;C=+h[S>>2]+I;h[S>>2]=C;m=C>1;A=C<-1&(m^1);h[S>>2]=A|m?A?-1:1:C;c=c+1|0;w=I}}while(0);if((v|0)==(t|0))break;else m=v}h[k>>2]=f;i=i+1|0}}}else u=-2}else u=-1;while(0);e:do if((u|0)>0){p=0;while(1){if((p|0)>=(te(u,s[M>>2]|0)|0))break e;f=+h[x+(p<<2)>>2]*32768;if(f>-32768){if(!(f<32767))f=32767}else f=-32768;c=(h[d>>2]=f,s[d>>2]|0);if((c&2130706432)>>>0<=1249902592){c=(c|0)<0;f=c?f+-8388608+8388608:f+8388608+-8388608;if(f==0)f=c?-0:0}n[o+(p<<1)>>1]=~~f;p=p+1|0}}while(0);qe(T|0);o=u;l=R;return o|0}function Rs(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,a=0,o=0,f=0,h=0,c=0,u=0,d=0;u=l;l=l+32|0;a=u+8|0;o=u;h=u+16|0;r=s[e+4>>2]|0;f=e+(s[e>>2]|0)|0;s[h>>2]=i;e:do switch(t|0){case 4009:{c=(s[h>>2]|0)+(4-1)&~(4-1);r=s[c>>2]|0;s[h>>2]=c+4;if(!r)t=26;else{s[r>>2]=s[e+52>>2];r=0;t=25}break}case 4031:{c=(s[h>>2]|0)+(4-1)&~(4-1);r=s[c>>2]|0;s[h>>2]=c+4;if(!r)t=26;else{s[r>>2]=s[e+84>>2];r=0;t=25}break}case 4028:{h=e+r|0;c=e+48|0;r=c;t=r+40|0;do{s[r>>2]=0;r=r+4|0}while((r|0)<(t|0));ni(f,4028,o);f=0;while(1){if((f|0)==2)break;r=h+(f*4260|0)|0;kn(r|0,0,4260)|0;s[h+(f*4260|0)+2376>>2]=1;s[r>>2]=65536;r=h+(f*4260|0)+2340|0;i=s[r>>2]|0;t=32767/(i+1|0)|0;a=0;o=0;while(1){if((o|0)>=(i|0))break;d=a+t|0;n[h+(f*4260|0)+4052+(o<<1)>>1]=d;i=s[r>>2]|0;a=d;o=o+1|0}s[h+(f*4260|0)+4148>>2]=0;s[h+(f*4260|0)+4152>>2]=3176576;s[h+(f*4260|0)+4168>>2]=s[h+(f*4260|0)+2328>>2]<<7;s[h+(f*4260|0)+4240>>2]=65536;s[h+(f*4260|0)+4244>>2]=65536;s[h+(f*4260|0)+4256>>2]=20;s[h+(f*4260|0)+4252>>2]=2;f=f+1|0}r=h+8520|0;s[r>>2]=0;s[r+4>>2]=0;s[r+8>>2]=0;s[h+8540>>2]=0;s[c>>2]=s[e+8>>2];s[e+64>>2]=(s[e+12>>2]|0)/400|0;r=0;t=25;break}case 4029:{d=(s[h>>2]|0)+(4-1)&~(4-1);r=s[d>>2]|0;s[h>>2]=d+4;if(!r)t=26;else{s[r>>2]=s[e+12>>2];r=0;t=25}break}case 4033:{d=(s[h>>2]|0)+(4-1)&~(4-1);r=s[d>>2]|0;s[h>>2]=d+4;if(r)if((s[e+60>>2]|0)==1002){s[a>>2]=r;ni(f,4033,a);r=0;t=25;break e}else{s[r>>2]=s[e+36>>2];r=0;t=25;break e}else t=26;break}case 4045:{d=(s[h>>2]|0)+(4-1)&~(4-1);r=s[d>>2]|0;s[h>>2]=d+4;if(!r)t=26;else{s[r>>2]=s[e+40>>2];r=0;t=25}break}case 4034:{d=(s[h>>2]|0)+(4-1)&~(4-1);r=s[d>>2]|0;s[h>>2]=d+4;if((r+32768|0)>>>0>65535)t=26;else{s[e+40>>2]=r;r=0;t=25}break}case 4039:{d=(s[h>>2]|0)+(4-1)&~(4-1);r=s[d>>2]|0;s[h>>2]=d+4;if(!r)t=26;else{s[r>>2]=s[e+72>>2];r=0;t=25}break}default:{r=-5;t=25}}while(0);if((t|0)==25){d=r;l=u;return d|0}else if((t|0)==26){d=-1;l=u;return d|0}return 0}function Is(e){e=e|0;Hr(e);return}function Cs(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var a=0,o=0,f=0,c=0,u=0,d=0,p=0,b=0,m=0,w=0,g=0,v=0;v=l;l=l+32|0;m=v+16|0;b=v+8|0;u=v;e:do if((e|0)<16e3)if((e|0)<12e3)switch(e|0){case 8e3:{g=2;break e}default:break e}else switch(e|0){case 12e3:{g=2;break e}default:break e}else{if((e|0)<24e3)switch(e|0){case 16e3:{g=2;break e}default:break e}if((e|0)<48e3)switch(e|0){case 24e3:{g=2;break e}default:break e}else switch(e|0){case 48e3:{g=2;break e}default:break e}}while(0);e:do if((g|0)==2?(t+-1|0)>>>0<2:0){switch(i|0){case 2048:case 2049:case 2051:break;default:break e}f=t<<12;w=qr((t*480|0)+212+f+(t*336|0)+39448|0)|0;if(!w){if(!r){g=0;l=v;return g|0}s[r>>2]=-7;g=0;l=v;return g|0}t:do if((e|0)<16e3)if((e|0)<12e3)switch(e|0){case 8e3:{g=10;break t}default:{a=-1;break t}}else switch(e|0){case 12e3:{g=10;break t}default:{a=-1;break t}}else{if((e|0)<24e3)switch(e|0){case 16e3:{g=10;break t}default:{a=-1;break t}}if((e|0)<48e3)switch(e|0){case 24e3:{g=10;break t}default:{a=-1;break t}}else switch(e|0){case 48e3:{g=10;break t}default:{a=-1;break t}}}while(0);t:do if((g|0)==10)if((t+-1|0)>>>0<2){switch(i|0){case 2048:case 2049:case 2051:break;default:{a=-1;break t}}kn(w|0,0,(t*480|0)+212+f+(t*336|0)+39448|0)|0;s[w+4>>2]=19048;s[w>>2]=39448;d=w+39448|0;s[w+112>>2]=t;s[w+15104>>2]=t;p=w+144|0;s[p>>2]=e;o=w+180|0;s[o>>2]=0;a=w+8|0;if(!(Oi(w+19048|0,0,a)|0)){s[a>>2]=t;s[w+12>>2]=t;s[w+16>>2]=s[p>>2];s[w+20>>2]=16e3;s[w+24>>2]=8e3;s[w+28>>2]=16e3;s[w+32>>2]=20;s[w+36>>2]=25e3;s[w+40>>2]=0;c=w+44|0;s[c>>2]=9;s[w+48>>2]=0;s[w+56>>2]=0;s[w+60>>2]=0;s[w+76>>2]=0;a=s[o>>2]|0;kn(d|0,0,(t*480|0)+212+f+(t*336|0)|0)|0;s[d>>2]=5304;s[w+39452>>2]=t;s[w+39456>>2]=t;o=w+39476|0;s[o>>2]=1;s[w+39480>>2]=0;s[w+39484>>2]=21;s[w+39496>>2]=1;s[w+39520>>2]=a;s[w+39500>>2]=1;s[w+39464>>2]=1;s[w+39488>>2]=-1;s[w+39492>>2]=0;s[w+39460>>2]=0;s[w+39472>>2]=5;s[w+39508>>2]=24;qs(d,4028,u)|0;i:do if((e|0)<16e3)if((e|0)<12e3){switch(e|0){case 8e3:break;default:{g=18;break i}}a=6;break}else{switch(e|0){case 12e3:break;default:{g=18;break i}}a=4;break}else{if((e|0)<24e3){switch(e|0){case 16e3:break;default:{g=18;break i}}a=3;break}if((e|0)>=48e3)switch(e|0){case 48e3:{a=1;break i}default:{g=18;break i}}switch(e|0){case 24e3:break;default:{g=18;break i}}a=2}while(0);if((g|0)==18)a=0;s[o>>2]=a;s[b>>2]=0;qs(d,10016,b)|0;s[m>>2]=s[c>>2];qs(d,4010,m)|0;s[w+148>>2]=1;s[w+152>>2]=1;s[w+164>>2]=-1e3;s[w+160>>2]=(te(e,t)|0)+3e3;s[w+108>>2]=i;s[w+124>>2]=-1e3;s[w+128>>2]=-1e3;s[w+132>>2]=1105;s[w+120>>2]=-1e3;s[w+136>>2]=-1e3;s[w+140>>2]=-1;a=s[p>>2]|0;s[w+172>>2]=(a|0)/100|0;s[w+168>>2]=24;s[w+156>>2]=5e3;s[w+116>>2]=(a|0)/250|0;n[w+15108>>1]=16384;h[w+15116>>2]=1;s[w+15112>>2]=193536;s[w+15164>>2]=1;s[w+15136>>2]=1001;s[w+15152>>2]=1105;kn(w+188|0,0,14916)|0;a=0}else a=-3}else a=-1;while(0);if(r|0)s[r>>2]=a;if(!a){g=w;l=v;return g|0}Hr(w);g=0;l=v;return g|0}while(0);if(!r){g=0;l=v;return g|0}s[r>>2]=-1;g=0;l=v;return g|0}function Ps(e,t,i,r,s,a,o){e=e|0;t=t|0;i=i|0;r=r|0;s=s|0;a=a|0;o=o|0;var f=0,c=0,l=0,u=0;c=0;while(1){if((c|0)>=(i|0))break;h[t+(c<<2)>>2]=+(n[e+((te(c+r|0,o)|0)+s<<1)>>1]|0);c=c+1|0}l=(a|0)>-1;e:do if(!l)if((a|0)==-2){s=1;while(1){if((s|0)<(o|0))c=0;else{s=12;break e}while(1){if((c|0)>=(i|0))break;f=+(n[e+((te(c+r|0,o)|0)+s<<1)>>1]|0);u=t+(c<<2)|0;h[u>>2]=+h[u>>2]+f;c=c+1|0}s=s+1|0}}else s=14;else{s=0;while(1){if((s|0)>=(i|0)){s=12;break e}f=+(n[e+((te(s+r|0,o)|0)+a<<1)>>1]|0);u=t+(s<<2)|0;h[u>>2]=+h[u>>2]+f;s=s+1|0}}while(0);if((s|0)==12)if((a|0)==-2)f=30517578125e-15/+(o|0);else s=14;if((s|0)==14)f=l?152587890625e-16:30517578125e-15;s=0;while(1){if((s|0)>=(i|0))break;u=t+(s<<2)|0;h[u>>2]=+h[u>>2]*f;s=s+1|0}return}function Os(e,t,i,r,n,a,o,f){e=e|0;t=t|0;i=i|0;r=r|0;n=n|0;a=a|0;o=o|0;f=f|0;var c=0,u=0,p=0,b=0,m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0,C=0,P=0;I=l;l=l+3296|0;M=I+1760|0;x=I+224|0;R=I+112|0;S=I;w=(r|0)/400|0;g=l;l=l+((1*(w<<2)|0)+15&-16)|0;T=s[a>>2]|0;s[R>>2]=T;h[S>>2]=1/((s[d>>2]=T,+h[d>>2])+1.0000000036274937e-15);T=(o|0)==0;if(T){r=t;u=0;m=1}else{u=(w<<1)-o|0;r=s[a+4>>2]|0;s[R+4>>2]=r;h[S+4>>2]=1/((s[d>>2]=r,+h[d>>2])+1.0000000036274937e-15);r=s[a+8>>2]|0;s[R+8>>2]=r;h[S+8>>2]=1/((s[d>>2]=r,+h[d>>2])+1.0000000036274937e-15);r=t-u|0;m=3}o=(r|0)/(w|0)|0;o=(o|0)<24?o:24;r=0;c=0;while(1){if((r|0)>=(o|0))break;t=(te(r,w)|0)+u|0;Ys[f&1](e,g,w,t,0,-2,i);t=0;c=(r|0)==0?+h[g>>2]:c;p=1.0000000036274937e-15;while(1){if((t|0)>=(w|0))break;_=+h[g+(t<<2)>>2];k=_-c;t=t+1|0;c=_;p=p+k*k}A=r+m|0;h[R+(A<<2)>>2]=p;h[S+(A<<2)>>2]=1/p;r=r+1|0}A=r+m|0;s[R+(A<<2)>>2]=s[R+(A+-1<<2)>>2];if(!T){o=o+2|0;o=(o|0)>24?24:o}E=~~+((i*60|0)+40|0);A=(n|0)/400|0;if((n|0)>=32e3)if((n|0)>64399)k=1;else k=+(A+-80|0)/80;else k=0;r=0;while(1){if((r|0)==16){m=0;break}s[x+(r<<2)>>2]=-1;h[M+(r<<2)>>2]=1e10;r=r+1|0}while(1){if((m|0)==4){y=1;break}b=+((A<(o|0)?o:u;t=0;c=0;p=0;while(1){if((t|0)>(r|0))break;_=p+ +h[S+(t<<2)>>2];v=c+ +h[R+(t<<2)>>2];t=t+1|0;c=v;p=_}y=r+1|0;c=(c*p/+(te(y,y)|0)+-2)*.05000000074505806;if(+H(+(c<=0?0:c))>1)c=1;else c=+H(+(c<=0?0:c));h[M+(u<<2)>>2]=b*(k*c+1);s[x+(u<<2)>>2]=m;m=m+1|0}while(1){if((o|0)<=(y|0))break;n=y+-1|0;r=2;while(1){if((r|0)==16)break;i=r+-1|0;s[M+(y<<6)+(r<<2)>>2]=s[M+(n<<6)+(i<<2)>>2];s[x+(y<<6)+(r<<2)>>2]=i;r=r+1|0}w=M+(n<<6)+4|0;g=R+(y<<2)|0;f=S+(y<<2)|0;e=o-y|0;_=+(e|0);i=0;while(1){if((i|0)==4)break;m=1<>2]=1;v=+h[w>>2];r=1;while(1){if((r|0)==4)break;r=r+1|0;t=(1<>2];if(!(c>2]=t;v=c}b=+((A<(e|0);r=u?e:m;t=0;c=0;p=0;while(1){if((t|0)>(r|0))break;C=p+ +h[f+(t<<2)>>2];P=c+ +h[g+(t<<2)>>2];t=t+1|0;c=P;p=C}t=r+1|0;c=(c*p/+(te(t,t)|0)+-2)*.05000000074505806;if(+H(+(c<=0?0:c))>1)c=1;else c=+H(+(c<=0?0:c));c=b*(k*c+1);r=M+(y<<6)+(m<<2)|0;h[r>>2]=v;if(u)c=c*_/+(m|0);h[r>>2]=v+c;i=i+1|0}y=y+1|0}r=o+-1|0;c=+h[M+(r<<6)+4>>2];t=1;u=2;while(1){if((u|0)==16)break;P=+h[M+(r<<6)+(u<<2)>>2];S=P>2]|0;o=r}r=1<>2]=s[R+(r<<2)>>2];if(T){l=I;return t|0}s[a+4>>2]=s[R+(r+1<<2)>>2];s[a+8>>2]=s[R+(r+2<<2)>>2];l=I;return t|0}function Ns(e,t,i,a,o,f,c,u,p,b,m,w,g){e=e|0;t=t|0;i=i|0;a=a|0;o=o|0;f=f|0;c=c|0;u=u|0;p=p|0;b=b|0;m=m|0;w=w|0;g=g|0;var v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0,C=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,G=0,V=0,W=0,K=0,Y=0,Z=0,$=0,X=0,Q=0,ee=0,ie=0,ne=0,se=0,ae=0,oe=0,fe=0,he=0,ce=0,le=0,ue=0,de=0,pe=0,be=0,me=0,we=0,ge=0,ve=0,_e=0,ye=0,ke=0,Ee=0,Ae=0,Se=0,Me=0,Te=0,xe=0,Re=0,Ie=0,Ce=0,Pe=0,Oe=0,De=0,Le=0,Be=0,Ue=0,je=0,Fe=0,ze=0,He=0,Ge=0,Ve=0,We=0,Ke=0,Ye=0,Ze=0,$e=0,Xe=0,Je=0,Qe=0,et=0,tt=0,it=0,rt=0,nt=0,st=0,at=0,ot=0,ft=0,ht=0,ct=0,lt=0,ut=0,dt=0,pt=0,bt=0,mt=0,wt=0,gt=0,vt=0,_t=0,yt=0,kt=0;pt=l;l=l+1280|0;st=pt+832|0;rt=pt+824|0;it=pt+816|0;tt=pt+808|0;et=pt+800|0;Qe=pt+792|0;$e=pt+784|0;Ze=pt+776|0;Ye=pt+768|0;Ke=pt+760|0;ut=pt+456|0;Ve=pt+448|0;Ge=pt+440|0;He=pt+432|0;ze=pt+424|0;Fe=pt+416|0;je=pt+408|0;Ue=pt+400|0;Be=pt+392|0;Se=pt+384|0;Ae=pt+376|0;Ee=pt+368|0;ke=pt+360|0;ye=pt+352|0;ge=pt+344|0;we=pt+336|0;me=pt+328|0;_e=pt+320|0;ve=pt+312|0;K=pt+304|0;R=pt;pe=pt+1272|0;Je=pt+1224|0;ft=pt+1220|0;Te=pt+1216|0;ht=pt+1184|0;W=pt+1152|0;ee=pt+852|0;le=pt+848|0;De=pt+840|0;We=pt+1278|0;nt=pt+1276|0;s[ft>>2]=0;x=(o|0)>1276?1276:o;lt=e+19044|0;s[lt>>2]=0;be=e+156|0;if(!(s[be>>2]|0)){y=i*400|0;_=e+144|0;v=s[_>>2]|0;if((y|0)!=(v|0))if(!((i*200|0)==(v|0)|(i*100|0)==(v|0))?(dt=i*50|0,!((dt|0)==(v|0)|(i*25|0)==(v|0)|(dt|0)==(v*3|0))):0){a=-1;l=pt;return a|0}else{dt=_;_=y}else{dt=_;_=y;v=y}}else{v=e+144|0;dt=v;_=i*400|0;v=s[v>>2]|0}if((_|0)<(v|0)|(x|0)<1){a=-1;l=pt;return a|0}de=e+(s[e+4>>2]|0)|0;Xe=e+(s[e>>2]|0)|0;Q=e+108|0;if((s[Q>>2]|0)==2051)Me=0;else Me=s[e+116>>2]|0;X=s[e+168>>2]|0;X=(X|0)>(f|0)?f:X;s[R>>2]=Te;qs(Xe,10015,R)|0;s[ht>>2]=0;T=e+44|0;do if((s[T>>2]|0)>6?(s[dt>>2]|0)==48e3:0){y=e+112|0;v=te(s[y>>2]|0,i)|0;_=0;E=0;A=0;while(1){if((_|0)>=(v|0))break;L=+h[t+(_<<2)>>2];_=_+1|0;E=E>L?E:L;A=AL?E:L)<=1/+(1<>2]=0;_=1;f=-1;k=-1;Oe=1;break}f=s[e+8696>>2]|0;k=s[e+8700>>2]|0;zs(e+188|0,s[Te>>2]|0,c,u,i,p,b,m,48e3,X,w,ht);if(+h[ht+28>>2]>.10000000149011612){c=e+19040|0;E=+h[c>>2];_=te(s[y>>2]|0,i)|0;v=0;O=0;while(1){if((v|0)>=(_|0))break;L=+h[t+(v<<2)>>2];v=v+1|0;O=O+L*L}E=E*.999;A=+(_|0);if(!(E>O/A)){v=0;E=0;while(1){if((v|0)>=(_|0))break;L=+h[t+(v<<2)>>2];v=v+1|0;E=E+L*L}E=E/A}h[c>>2]=E;ct=25}else ct=25}else{f=-1;k=-1;ct=25}while(0);do if((ct|0)==25){s[e+140>>2]=-1;_=s[ht>>2]|0;y=e+19032|0;s[y>>2]=0;_=(_|0)==0;if(!_){if((s[e+124>>2]|0)==-1e3)s[e+140>>2]=~~+z(+((1-+h[ht+20>>2])*100+.5));v=s[ht+24>>2]|0;if((v|0)<13){s[y>>2]=1101;G=y;Oe=0;break}if((v|0)<15){s[y>>2]=1102;G=y;Oe=0;break}if((v|0)<17){s[y>>2]=1103;G=y;Oe=0;break}if((v|0)<19){s[y>>2]=1104;G=y;Oe=0;break}else{s[y>>2]=1105;G=y;Oe=0;break}}else{G=y;Oe=0}}while(0);at=e+112|0;S=s[at>>2]|0;M=(S|0)==2;if(M?(s[e+120>>2]|0)!=1:0){u=(s[dt>>2]|0)/(i|0)|0;v=(u|0)<50;E=25/+(u|0);y=i+-3|0;c=0;A=0;O=0;N=0;while(1){if((c|0)>=(y|0))break;ot=c<<1;_t=+h[t+(ot<<2)>>2];mt=+h[t+((ot|1)<<2)>>2];vt=+h[t+((ot|2)<<2)>>2];bt=+h[t+((ot|3)<<2)>>2];gt=+h[t+((ot|4)<<2)>>2];D=+h[t+((ot|5)<<2)>>2];wt=+h[t+((ot|6)<<2)>>2];L=+h[t+((ot|7)<<2)>>2];c=c+4|0;A=A+(_t*_t+vt*vt+gt*gt+wt*wt);O=O+(_t*mt+vt*bt+gt*D+wt*L);N=N+(mt*mt+bt*bt+D*D+L*L)}_t=v?.5:1-E;Le=e+15172|0;E=+h[Le>>2];E=E+_t*(A-E);h[Le>>2]=E;v=e+15176|0;A=+h[v>>2];A=A+_t*(O-A);h[v>>2]=A;ot=e+15180|0;O=+h[ot>>2];O=O+_t*(N-O);h[ot>>2]=O;E=E<0?0:E;h[Le>>2]=E;A=A<0?0:A;h[v>>2]=A;O=O<0?0:O;h[ot>>2]=O;if((E>O?E:O)>.0007999999797903001){gt=+H(+E);_t=+H(+O);E=+H(+gt);vt=+H(+_t);_t=gt*_t;gt=A<_t?A:_t;h[v>>2]=gt;_t=gt/(_t+1.0000000036274937e-15);vt=+H(+(1-_t*_t))*(+q(+(E-vt))/(E+1.0000000036274937e-15+vt));ot=e+15184|0;E=+h[ot>>2];_t=+(u|0);E=E+(vt-E)/_t;h[ot>>2]=E;ot=e+15188|0;_t=+h[ot>>2]-.019999999552965164/_t;E=_t>E?_t:E;h[ot>>2]=E}else E=+h[e+15188>>2];E=E*20;if(E>1)E=1}else E=0;if(!i)v=(s[dt>>2]|0)/400|0;else v=i;y=s[e+164>>2]|0;switch(y|0){case-1e3:{P=s[dt>>2]|0;y=((P*60|0)/(v|0)|0)+(te(P,S)|0)|0;break}case-1:{P=s[dt>>2]|0;y=(te(x<<3,P)|0)/(v|0)|0;break}default:P=s[dt>>2]|0}Ce=e+160|0;s[Ce>>2]=y;v=(P|0)/(i|0)|0;ot=e+148|0;U=(s[ot>>2]|0)==0;if(U){B=(P*3|0)/(i|0)|0;Le=(((y*3|0)/8|0)+((B|0)/2|0)|0)/(B|0)|0;Le=(Le|0)<(x|0)?Le:x;B=((te(Le,B)|0)<<3|0)/3|0;s[Ce>>2]=B}else{B=y;Le=x}do if(!((Le|0)<3|(B|0)<(v*24|0))){if((v|0)<50){y=te(Le,v)|0;if((y|0)<300|(B|0)<2400)break;else ae=y}else ae=te(v,Le)|0;oe=ae<<3;I=s[T>>2]|0;F=e+40|0;C=s[F>>2]|0;T=v+-50|0;y=B-(te((S*40|0)+20|0,T)|0)|0;if(U)y=y-((y|0)/12|0)|0;x=I+90|0;c=(te(y,x)|0)/100|0;R=(C*12|0)+20|0;c=c-((te(c,C)|0)/(R|0)|0)|0;y=s[e+124>>2]|0;do if((y|0)!=3001)if((y|0)!=3002){y=s[e+140>>2]|0;if((y|0)>-1){j=y*327>>8;j=(s[Q>>2]|0)!=2049|(j|0)<115?j:115;break}else{j=(s[Q>>2]|0)==2048?115:48;break}}else j=0;else j=127;while(0);V=e+120|0;y=s[V>>2]|0;Pe=e+15104|0;do if((y|0)==-1e3|M^1)if(M){S=(c|0)>(((s[Pe>>2]|0)==2?23e3:25e3)|0)?2:1;s[Pe>>2]=S;break}else{s[Pe>>2]=S;break}else{s[Pe>>2]=y;S=y}while(0);y=B-(te((S*40|0)+20|0,T)|0)|0;if(U)y=y-((y|0)/12|0)|0;u=(te(y,x)|0)/100|0;u=u-((te(u,C)|0)/(R|0)|0)|0;c=s[Q>>2]|0;do if((c|0)!=2051){y=s[e+136>>2]|0;do if((y|0)==-1e3){_t=1-E;y=~~(_t*16e3+E*16e3);y=y+((te(te(j,j)|0,~~(_t*64e3+E*36e3)-y|0)|0)>>14)|0;y=(c|0)==2048?y+8e3|0:y;c=s[e+15140>>2]|0;if((c|0)==1002)y=y+-4e3|0;else y=(c|0)>0?y+4e3|0:y;y=(u|0)>=(y|0)?1002:1e3;c=e+15136|0;s[c>>2]=y;do if(s[e+48>>2]|0){if((C|0)<=(128-j>>4|0))break;s[c>>2]=1e3;y=1e3}while(0);if(!(s[e+184>>2]|0)){s[e+56>>2]=0;_=c;ct=112;break}if(!_){s[e+56>>2]=0;_=c;ct=112;break}s[e+56>>2]=Oe^1;if(!((Oe|0)==0&(j|0)>100)){_=c;ct=112;break}s[c>>2]=1e3;_=c;y=1e3}else{_=e+15136|0;s[_>>2]=y;ct=112}while(0);if((ct|0)==112)if((y|0)==1002){Ie=_;_=1002;break}if(((P|0)/100|0|0)>(i|0)){s[_>>2]=1002;Ie=_;_=1002}else{Ie=_;_=y}}else{Ie=e+15136|0;s[Ie>>2]=1002;_=1002}while(0);Z=e+176|0;if(s[Z>>2]|0){s[Ie>>2]=1002;_=1002}ie=(v|0)>50;if((Le|0)<((te(ie?9e3:6e3,i)|0)/(P<<3|0)|0|0)){s[Ie>>2]=1002;_=1002}do if((S|0)==1?(s[e+15144>>2]|0)==2:0){y=e+68|0;if((s[y>>2]|0)!=0|(_|0)==1002){ct=124;break}c=e+15140|0;if((s[c>>2]|0)==1002){ct=124;break}s[y>>2]=1;s[Pe>>2]=2;xe=c;c=2}else ct=124;while(0);if((ct|0)==124){s[e+68>>2]=0;xe=e+15140|0;c=S}M=s[xe>>2]|0;do if((M|0)>0){y=(_|0)==1002;if((M|0)==1002&(y^1)){Re=(_|0)!=1002;y=Re&1;if(Re){u=y;y=1;Re=0;break}}else{if(!y){u=0;y=0;Re=0;break}if((M|0)==1002){ +_=1002;u=0;y=0;Re=0;break}y=(_|0)!=1002&1}if(((P|0)/100|0|0)>(i|0)){_=1002;u=y;y=0;Re=0;break}s[Ie>>2]=M;_=M;u=y;y=1;Re=1}else{u=0;y=0;Re=0}while(0);c=B-(te((c*40|0)+20|0,T)|0)|0;if(U)c=c-((c|0)/12|0)|0;c=(te(c,x)|0)/100|0;e:do switch(_|0){case 1001:case 1e3:{if((I|0)<2)c=(c<<2|0)/5|0;fe=c-((te(c,C)|0)/((C*6|0)+10|0)|0)|0;break}case 1002:{if((I|0)>=5){fe=c;break e}fe=(c*9|0)/10|0;break}default:fe=c-((te(c,C)|0)/(R|0)|0)|0}while(0);he=e+15160|0;if(!(s[he>>2]|0))if(!y){ne=u;c=0;y=0;se=0}else{c=0;ct=145}else{s[he>>2]=0;u=1;c=1;y=1;ct=145}do if((ct|0)==145){S=(P|0)/200|0;S=(te(Le,S)|0)/(S+i|0)|0;S=(S|0)>257?257:S;if(U){ne=u;se=S;break}se=(B|0)/1600|0;ne=u;se=(S|0)<(se|0)?S:se}while(0);if((_|0)!=1002&(M|0)==1002){_=s[e+180>>2]|0;kn(de|0,0,20400)|0;c=0;while(1){if((c|0)==2)break;Fi(de+(c*10156|0)|0,_)|0;c=c+1|0}s[de+20376>>2]=1;s[de+20380>>2]=1;$=1}else $=c;T=(s[Ie>>2]|0)==1002;do if(T)ct=156;else{if(s[e+15164>>2]|0){ct=156;break}if(s[e+84>>2]|0){ct=156;break}c=e+15152|0;U=c;c=s[c>>2]|0}while(0);do if((ct|0)==156){if((s[at>>2]|0)==2?(s[V>>2]|0)!=1:0){u=616;S=616}else{u=616;S=616}_=te(j,j)|0;c=0;while(1){if((c|0)==8)break;ue=s[u+(c<<2)>>2]|0;s[W+(c<<2)>>2]=ue+((te(_,(s[S+(c<<2)>>2]|0)-ue|0)|0)>>14);c=c+1|0}M=(s[e+15164>>2]|0)==0;S=e+15156|0;c=1105;do{u=c<<1;_=s[W+(u+-2204<<2)>>2]|0;u=s[W+(u+-2203<<2)>>2]|0;do if(M)if((s[S>>2]|0)<(c|0)){_=_+u|0;break}else{_=_-u|0;break}while(0);if((fe|0)>=(_|0))break;c=c+-1|0}while((c|0)>1101);s[S>>2]=c;_=e+15152|0;s[_>>2]=c;if(T|M^1){U=_;break}if(!((s[e+88>>2]|0)==0&(c|0)>1103)){U=_;break}s[_>>2]=1103;U=_;c=1103}while(0);_=s[e+132>>2]|0;if((c|0)>(_|0))s[U>>2]=_;else _=c;B=e+128|0;c=s[B>>2]|0;S=(c|0)==-1e3;if(!S){s[U>>2]=c;_=c}if((oe|0)<15e3&(T^1)){_=(_|0)<1103?_:1103;s[U>>2]=_}c=s[dt>>2]|0;if((c|0)<24001&(_|0)>1104){s[U>>2]=1104;_=1104}if((c|0)<16001&(_|0)>1103){s[U>>2]=1103;_=1103}if((c|0)<12001&(_|0)>1102){s[U>>2]=1102;_=1102}if((c|0)<8001&(_|0)>1101){s[U>>2]=1101;_=1101}u=s[G>>2]|0;if(!((u|0)==0|S^1)){c=s[Pe>>2]|0;do if((fe|0)>(c*18e3|0)|T^1){if(!((fe|0)>(c*24e3|0)|T^1)){c=1102;break}if((fe|0)<=(c*3e4|0)){c=1103;break}c=(fe|0)>(c*44e3|0)?1105:1104}else c=1101;while(0);ue=(u|0)>(c|0)?u:c;s[G>>2]=ue;_=(_|0)<(ue|0)?_:ue;s[U>>2]=_}R=s[F>>2]|0;j=e+52|0;I=s[j>>2]|0;e:do if((s[e+48>>2]|0)==0|(R|0)==0|T)_=0;else{S=(R|0)<25;M=125-R|0;T=(R|0)<6;x=_;while(1){u=x<<1;c=s[648+(u+-2202<<2)>>2]|0;u=s[648+(u+-2201<<2)>>2]|0;switch(I|0){case 1:{c=c-u|0;break}case 0:{c=c+u|0;break}default:{}}ue=((te(c,S?M:100)|0)>>16)*655|0;c=(ue+((((te(c,S?125-R|0:100)|0)&65535)*655|0)>>>16)|0)<(fe|0);if(c|T){_=c&1;break e}if((x|0)<=1101)break;ue=x+-1|0;s[U>>2]=ue;x=ue}s[U>>2]=_;_=0}while(0);s[j>>2]=_;s[K>>2]=X;qs(Xe,4036,K)|0;c=s[Ie>>2]|0;_=(c|0)==1002;do if(_){if((s[U>>2]|0)!=1102)break;s[U>>2]=1103}while(0);if(s[Z>>2]|0)s[U>>2]=1101;u=s[dt>>2]|0;do if(((u|0)/50|0|0)<(i|0)){if(!_?(Y=s[U>>2]|0,(Y|0)<=1103):0){B=Y;break}if((f|0)!=-1){s[e+8696>>2]=f;s[e+8700>>2]=k}T=((u|0)/25|0|0)<(i|0)?3:2;c=(o+-3|0)/(T|0)|0;c=(c|0)>1276?1276:c;x=te(T,c)|0;P=Ne()|0;u=l;l=l+((1*x|0)+15&-16)|0;s[ee+4>>2]=0;x=e+136|0;R=s[x>>2]|0;I=s[B>>2]|0;C=s[V>>2]|0;s[x>>2]=s[Ie>>2];s[B>>2]=s[U>>2];v=s[Pe>>2]|0;s[V>>2]=v;S=e+68|0;M=s[S>>2]|0;if(!M)s[e+15144>>2]=v;else s[V>>2]=1;v=(Re|0)!=0;_=T+-1|0;k=0;while(1){if((k|0)>=(T|0)){ct=222;break}s[S>>2]=0;if(v&(k|0)==(_|0))s[x>>2]=1002;f=s[dt>>2]|0;y=u+(te(k,c)|0)|0;f=Ns(e,t+((te(k,(te(s[at>>2]|0,f)|0)/50|0)|0)<<2)|0,(f|0)/50|0,y,c,X,0,0,p,b,m,w,g)|0;if((f|0)<0){v=-3;break}if((js(ee,y,f)|0)<0){v=-3;break}k=k+1|0}do if((ct|0)==222){_=(s[ot>>2]|0)==0;if(_){v=((s[Ce>>2]|0)*3|0)/(1200/(T>>>0)|0|0)|0;v=(v|0)<(o|0)?v:o}else v=o;v=Fs(ee,T,a,v,_&1)|0;if((v|0)<0){v=-3;break}s[x>>2]=R;s[B>>2]=I;s[V>>2]=C;s[S>>2]=M}while(0);qe(P|0);a=v;l=pt;return a|0}else B=s[U>>2]|0;while(0);do if((c|0)==1e3){if((B|0)<=1103)break;s[Ie>>2]=1001}else{if(!((c|0)==1001&(B|0)<1104))break;s[Ie>>2]=1e3}while(0);ee=Le-se|0;u=(te(s[Ce>>2]|0,i)|0)/(u<<3|0)|0;u=((ee|0)<(u|0)?ee:u)+-1|0;ee=a+1|0;m=Le+-1|0;s[Je>>2]=ee;p=Je+8|0;s[p>>2]=0;s[Je+12>>2]=0;s[Je+16>>2]=0;ce=Je+20|0;s[ce>>2]=33;V=Je+24|0;s[V>>2]=0;o=Je+28|0;s[o>>2]=-2147483648;W=Je+40|0;s[W>>2]=-1;K=Je+32|0;s[K>>2]=0;Y=Je+36|0;s[Y>>2]=0;b=Je+4|0;s[b>>2]=m;X=Je+44|0;s[X>>2]=0;G=Me+i|0;F=te(G,s[at>>2]|0)|0;ue=Ne()|0;w=l;l=l+((1*(F<<2)|0)+15&-16)|0;F=e+172|0;x=s[at>>2]|0;T=te(Me,x)|0;Mn(w|0,e+15192+((te((s[F>>2]|0)-Me|0,x)|0)<<2)|0,T<<2|0)|0;R=(s[Ie>>2]|0)==1002;if(R)_=193536;else _=s[de+8>>2]|0;P=e+15112|0;C=s[P>>2]|0;_=_-C|0;_=C+(((_>>16)*983|0)+(((_&65535)*983|0)>>>16))|0;s[P>>2]=_;e:do if((s[Q>>2]|0)==2048){k=_>>8;do if((k|0)<0)_=0;else{if((k|0)>3966){_=2147483647;break}_=_>>15;c=1<<_;f=k&127;if((k|0)<2048)_=f+((te(te(f,128-f|0)|0,-174)|0)>>16)<<_>>7;else _=te(c>>7,f+((te(te(f,128-f|0)|0,-174)|0)>>16)|0)|0;_=c+_|0}while(0);M=w+(T<<2)|0;k=e+15120|0;S=((_<<16>>16)*2471|0)/((s[dt>>2]|0)/1e3|0|0)|0;_=te(S,-471)|0;f=_+268435456|0;Q=f>>6;I=f>>22;c=S<<16>>16;yt=te(S>>16,c)|0;c=te(S&65535,c)|0;S=te(S,(S>>15)+1>>1)|0;kt=yt+(c>>>16)+S<<16>>16;C=Q&65535;P=Q<<16>>16;E=+((te(I,kt)|0)+((te(C,kt)|0)>>16)+(te(Q,(yt+(c>>16)+S+-8388608>>15)+1>>1)|0)|0)*3.725290298461914e-9;A=+((te(I,P)|0)+((te(C,P)|0)>>16)+(te(Q,(f>>21)+1>>1)|0)|0)*3.725290298461914e-9;O=+(f|0)*3.725290298461914e-9;N=+(-268435456-_<<1|0)*3.725290298461914e-9;_=e+15124|0;f=0;while(1){if((f|0)>=(i|0))break;kt=te(f,x)|0;gt=+h[t+(kt<<2)>>2];vt=O*gt;_t=+h[k>>2]+vt;h[k>>2]=+h[_>>2]-_t*E+N*gt;h[_>>2]=vt-_t*A+1.0000000031710769e-30;h[M+(kt<<2)>>2]=_t;f=f+1|0}if((x|0)!=2)break;c=t+4|0;S=e+15128|0;_=M+4|0;f=e+15132|0;k=0;while(1){if((k|0)>=(i|0))break e;kt=k<<1;gt=+h[c+(kt<<2)>>2];vt=O*gt;_t=+h[S>>2]+vt;h[S>>2]=+h[f>>2]-_t*E+N*gt;h[f>>2]=vt-_t*A+1.0000000031710769e-30;h[_+(kt<<2)>>2]=_t;k=k+1|0}}else{c=w+(T<<2)|0;S=e+15120|0;D=12/+(s[dt>>2]|0);L=1-D;A=+h[S>>2];M=e+15124|0;E=+h[M>>2];if((x|0)!=2){_=0;while(1){if((_|0)>=(i|0))break;vt=+h[t+(_<<2)>>2];_t=vt-A;h[c+(_<<2)>>2]=_t-E;_=_+1|0;A=D*vt+1.0000000031710769e-30+L*A;E=D*_t+1.0000000031710769e-30+L*E}h[S>>2]=A;h[M>>2]=E;break}_=e+15128|0;f=e+15132|0;k=0;O=+h[_>>2];N=+h[f>>2];while(1){if((k|0)>=(i|0))break;yt=k<<1;wt=+h[t+(yt<<2)>>2];kt=yt|1;vt=+h[t+(kt<<2)>>2];gt=wt-A;_t=vt-O;h[c+(yt<<2)>>2]=gt-E;h[c+(kt<<2)>>2]=_t-N;k=k+1|0;A=D*wt+1.0000000031710769e-30+L*A;E=D*gt+1.0000000031710769e-30+L*E;O=D*vt+1.0000000031710769e-30+L*O;N=D*_t+1.0000000031710769e-30+L*N}h[S>>2]=A;h[M>>2]=E;h[_>>2]=O;h[f>>2]=N}while(0);do if(g|0){_=w+(T<<2)|0;f=te(x,i)|0;k=0;E=0;while(1){if((k|0)>=(f|0))break;_t=+h[_+(k<<2)>>2];k=k+1|0;E=E+_t*_t}if(!(!(E<1e9)|(E!=E|0!=0)))break;kn(_|0,0,f<<2|0)|0;kt=e+15120|0;s[kt>>2]=0;s[kt+4>>2]=0;s[kt+8>>2]=0;s[kt+12>>2]=0}while(0);do if(R){A=1;R=ne;ct=353}else{c=te(x,i)|0;P=Ne()|0;C=l;l=l+((1*(c<<1)|0)+15&-16)|0;c=te(u<<3,v)|0;R=s[Ie>>2]|0;I=(R|0)==1001;do if(!I){s[e+36>>2]=c;v=s[e+15168>>2]|0;if(!v){T=c;A=1}else{N=1;ct=275}}else{k=s[ot>>2]|0;_=((s[dt>>2]|0)==(i*50|0)?2:1)+(s[j>>2]<<1)|0;f=1;while(1){if((f|0)>=7){ct=268;break}v=s[688+(f*20|0)>>2]|0;if((v|0)>(c|0)){ct=271;break}f=f+1|0}do if((ct|0)==268)if((f|0)==7){v=(s[808+(_<<2)>>2]|0)+((c+-64e3|0)/2|0)|0;break}else{v=s[688+(f*20|0)>>2]|0;ct=271;break}while(0);if((ct|0)==271){yt=f+-1|0;kt=s[688+(yt*20|0)>>2]|0;v=((te(s[688+(yt*20|0)+(_<<2)>>2]|0,v-c|0)|0)+(te(s[688+(f*20|0)+(_<<2)>>2]|0,c-kt|0)|0)|0)/(v-kt|0)|0}_=(k|0)==0?v+100|0:v;_=(B|0)==1104?_+300|0:_;s[e+36>>2]=_;v=s[e+15168>>2]|0;if(v|0){c=_;N=1;ct=275;break}T=_;A=1-+J(+(+(_-c|0)*.0009765625*.6931471805599453))}while(0);do if((ct|0)==275){if(!(s[ot>>2]|0)){T=c;A=N;break}if(s[Z>>2]|0){T=c;A=N;break}x=s[U>>2]|0;if((x|0)==1101){M=13;O=8e3}else{kt=(x|0)==1102;M=kt?15:17;O=kt?12e3:16e3}f=s[at>>2]|0;S=0;E=0;while(1){if((S|0)>=(f|0))break;k=S*21|0;T=0;while(1){if((T|0)>=(M|0))break;A=+h[v+(k+T<<2)>>2];_=A<.5;do if(A>-2|_^1){if(_){if(!(A>0))break}else A=.5;A=A*.5}else A=-2;while(0);T=T+1|0;E=E+A}S=S+1|0}kt=~~(O*(E/+(M|0)*+(f|0)+.20000000298023224));_=(te(c,-2)|0)/3|0;_=(kt|0)>(_|0)?kt:_;if((x&-2|0)==1104)v=(_*3|0)/5|0;else v=_;T=c+v|0;s[e+36>>2]=T;kt=te(_,i)|0;A=N;u=u+((kt|0)/(s[dt>>2]<<3|0)|0)|0}while(0);x=s[dt>>2]|0;s[e+32>>2]=(i*1e3|0)/(x|0)|0;f=s[at>>2]|0;s[e+8>>2]=f;s[e+12>>2]=s[Pe>>2];switch(B|0){case 1101:{s[e+28>>2]=8e3;v=8e3;break}case 1102:{s[e+28>>2]=12e3;v=12e3;break}default:{s[e+28>>2]=16e3;v=16e3}}s[e+24>>2]=I?16e3:8e3;c=e+20|0;s[c>>2]=16e3;do if((R|0)==1e3){if(ie)k=(ae<<4|0)/3|0;else k=oe;if((k|0)>=8e3)break;s[c>>2]=12e3;_=e+28|0;v=v>>>0>12e3?12e3:v;s[_>>2]=v;if((k|0)>=7e3)break;s[c>>2]=8e3;s[_>>2]=(v|0)>8e3?8e3:v}while(0);S=(s[ot>>2]|0)==0;s[e+60>>2]=S&1;v=m-se|0;v=(v|0)>1275?1275:v;s[pe>>2]=v;v=v<<3;M=e+64|0;s[M>>2]=v;do if(S){if(!I)break;s[M>>2]=(te(T,i)|0)/(x|0)|0}else{if(!I)break;c=(te(v,x)|0)/(i|0)|0;_=((x|0)==(i*50|0)?2:1)+(s[j>>2]<<1)|0;k=1;while(1){if((k|0)>=7){ct=310;break}v=s[688+(k*20|0)>>2]|0;if((v|0)>(c|0)){ct=313;break}k=k+1|0}do if((ct|0)==310)if((k|0)==7){v=(s[808+(_<<2)>>2]|0)+((c+-64e3|0)/2|0)|0;break}else{v=s[688+(k*20|0)>>2]|0;ct=313;break}while(0);if((ct|0)==313){yt=k+-1|0;kt=s[688+(yt*20|0)>>2]|0;v=((te(s[688+(yt*20|0)+(_<<2)>>2]|0,v-c|0)|0)+(te(s[688+(k*20|0)+(_<<2)>>2]|0,c-kt|0)|0)|0)/(v-kt|0)|0}kt=S?v+100|0:v;s[M>>2]=(te((B|0)==1104?kt+300|0:kt,i)|0)/(x|0)|0}while(0);if($){s[le>>2]=0;kt=(x|0)/400|0;_=te(f,(s[F>>2]|0)-(s[e+116>>2]|0)-kt|0)|0;yt=e+15192+(_<<2)|0;k=s[Te>>2]|0;Ds(yt,yt,0,1,s[k+4>>2]|0,kt,f,s[k+60>>2]|0,x);kn(e+15192|0,0,_<<2|0)|0;_=s[F>>2]|0;f=te(_,s[at>>2]|0)|0;k=0;while(1){if((k|0)>=(f|0))break;E=+h[e+15192+(k<<2)>>2]*32768;do if(E>-32768){if(E<32767)break;E=32767}else E=-32768;while(0);v=(h[d>>2]=E,s[d>>2]|0);do if((v&2130706432)>>>0<=1249902592){v=(v|0)<0;E=v?E+-8388608+8388608:E+8388608+-8388608;if(!(E==0))break;E=v?-0:0}while(0);n[C+(k<<1)>>1]=~~E;k=k+1|0}Ni(de,e+8|0,C,_,0,le,1)|0;f=s[at>>2]|0}_=te(f,i)|0;k=0;while(1){if((k|0)>=(_|0))break;E=+h[w+((te(Me,f)|0)+k<<2)>>2]*32768;do if(E>-32768){if(E<32767)break;E=32767}else E=-32768;while(0);v=(h[d>>2]=E,s[d>>2]|0);do if((v&2130706432)>>>0<=1249902592){v=(v|0)<0;E=v?E+-8388608+8388608:E+8388608+-8388608;if(!(E==0))break;E=v?-0:0}while(0);n[C+(k<<1)>>1]=~~E;k=k+1|0}if(!(Ni(de,e+8|0,C,i,Je,pe,0)|0)){if(s[pe>>2]|0){do if((s[Ie>>2]|0)==1e3){v=s[e+80>>2]|0;if((v|0)==8e3){_=1101;break}if((v|0)==12e3){_=1102;break}_=(v|0)==16e3?1103:B}else _=B;while(0);kt=s[e+96>>2]|0;s[e+72>>2]=kt;if(!kt)v=ne;else{s[he>>2]=1;v=0;y=1}qe(P|0);R=v;B=_;ct=353;break}s[lt>>2]=0;y=s[Ie>>2]|0;f=s[Pe>>2]|0;v=(s[dt>>2]|0)/(i|0)|0;_=0;while(1){if((v|0)>=400)break;v=v<<1;_=_+1|0}switch(y|0){case 1e3:{v=(B<<5)+96&224|(_<<3)+-16;break}case 1002:{v=((B|0)<1102?0:(B<<5)+64&96)|_<<3|128;break}default:v=B<<4|(_<<3)+240|96}r[a>>0]=v|((f|0)==2&1)<<2;v=1}else v=-3;qe(P|0)}while(0);e:do if((ct|0)==353){switch(B|0){case 1101:{v=13;break}case 1103:case 1102:{v=17;break}case 1104:{v=19;break}default:v=21}s[ve>>2]=v;qs(Xe,10012,ve)|0;s[_e>>2]=s[Pe>>2];qs(Xe,10008,_e)|0;s[me>>2]=-1;qs(Xe,4002,me)|0;do if((s[Ie>>2]|0)==1e3){f=s[at>>2]|0;u=((te(f,s[dt>>2]|0)|0)/400|0)<<2;c=l;l=l+((1*u|0)+15&-16)|0;u=0}else{s[we>>2]=0;qs(Xe,4006,we)|0;s[ge>>2]=(s[e+76>>2]|0)==0?2:0;qs(Xe,10002,ge)|0;do if((s[Ie>>2]|0)==1001){v=(s[ce>>2]|0)+((re(s[o>>2]|0)|0)+-32)+7>>3;v=(y|0)==0?v:v+3|0;if(!(s[ot>>2]|0)){u=(v|0)>(u|0)?v:u;break}else{s[ye>>2]=(s[Ce>>2]|0)-(s[e+36>>2]|0);qs(Xe,4002,ye)|0;s[ke>>2]=0;qs(Xe,4020,ke)|0;u=m-se|0;break}}else{if(!(s[ot>>2]|0))break;do if((s[be>>2]|0)==5010){v=s[dt>>2]|0;if(((v|0)/50|0|0)==(i|0)){v=0;break}v=te(((s[Pe>>2]|0)*60|0)+40|0,((v|0)/(i|0)|0)+-50|0)|0;if(!(s[ht>>2]|0))break;v=~~(+(v|0)*(+h[ht+4>>2]*.5+1))}else v=0;while(0);s[Ee>>2]=1;qs(Xe,4006,Ee)|0;s[Ae>>2]=s[e+152>>2];qs(Xe,4020,Ae)|0;s[Se>>2]=(s[Ce>>2]|0)+v;qs(Xe,4002,Se)|0;u=m-se|0}while(0);v=s[Ie>>2]|0;_=s[at>>2]|0;f=s[dt>>2]|0;k=(te(_,f)|0)/400|0;c=l;l=l+((1*(k<<2)|0)+15&-16)|0;if((v|0)==1e3){f=_;break}kt=s[xe>>2]|0;if(!((v|0)!=(kt|0)&(kt|0)>0)){f=_;break}Mn(c|0,e+15192+((te((s[F>>2]|0)-Me-((f|0)/400|0)|0,_)|0)<<2)|0,k<<2|0)|0;f=_}while(0);v=s[F>>2]|0;_=e+15192|0;if((te(f,v-G|0)|0)>0){kt=te(f,v-i-Me|0)|0;Tn(_|0,e+15192+((te(f,i)|0)<<2)|0,kt<<2|0)|0;Mn(e+15192+(kt<<2)|0,w|0,(te(G,f)|0)<<2|0)|0}else Mn(_|0,w+((te(G-v|0,f)|0)<<2)|0,(te(v,f)|0)<<2|0)|0;v=e+15116|0;E=+h[v>>2];if(E<1|A<1){kt=s[Te>>2]|0;Ds(w,w,E,A,s[kt+4>>2]|0,i,s[at>>2]|0,s[kt+60>>2]|0,s[dt>>2]|0)}h[v>>2]=A;T=s[Ie>>2]|0;x=(T|0)==1001;if(!(x?(s[Pe>>2]|0)!=1:0)){if((fe|0)>=24e3){v=fe+-24e3|0;if((v<<1|0)>16384)v=16384;else ct=381}else{v=0;ct=381}if((ct|0)==381)v=v<<1;s[e+92>>2]=v}do if(!(s[e+15168>>2]|0)){if((s[at>>2]|0)!=2)break;M=e+15108|0;v=n[M>>1]|0;S=s[e+92>>2]|0;if(!(v<<16>>16<16384|(S|0)<16384))break;k=s[Te>>2]|0;_=s[k+60>>2]|0;f=48e3/(s[dt>>2]|0)|0;k=(s[k+4>>2]|0)/(f|0)|0;E=1-+(v<<16>>16)*6103515625e-14;A=1-+(S|0)*6103515625e-14;v=0;while(1){if((v|0)>=(k|0))break;_t=+h[_+((te(v,f)|0)<<2)>>2];_t=_t*_t;kt=v<<1;yt=w+(kt<<2)|0;gt=+h[yt>>2];kt=w+((kt|1)<<2)|0;vt=+h[kt>>2];_t=(_t*A+(1-_t)*E)*((gt-vt)*.5);h[yt>>2]=gt-_t;h[kt>>2]=vt+_t;v=v+1|0}while(1){if((v|0)>=(i|0))break;kt=v<<1;yt=w+(kt<<2)|0;gt=+h[yt>>2];kt=w+((kt|1)<<2)|0;vt=+h[kt>>2];_t=A*((gt-vt)*.5);h[yt>>2]=gt-_t;h[kt>>2]=vt+_t;v=v+1|0}n[M>>1]=S}while(0);t:do if((T|0)==1002)ct=456;else{_=s[ce>>2]|0;v=s[o>>2]|0;f=_+((re(v|0)|0)+-32)|0;if((f+17+(x?20:0)|0)>((Le<<3)+-8|0)){ct=456;break}i:do if(x){if(!y){if((f+37|0)>(u<<3|0)){ct=456;break t}v=v-(v>>>12)|0}else{kt=v>>>12;s[K>>2]=(s[K>>2]|0)+(v-kt);v=kt}s[o>>2]=v;while(1){if(v>>>0>=8388609){f=v;k=_;break i}f=s[K>>2]|0;k=f>>>23;if((k|0)==255)s[Y>>2]=(s[Y>>2]|0)+1;else{f=f>>>31;v=s[W>>2]|0;if((v|0)>-1){_=s[V>>2]|0;if((_+(s[p>>2]|0)|0)>>>0<(s[b>>2]|0)>>>0){s[V>>2]=_+1;r[(s[Je>>2]|0)+_>>0]=v+f;v=0}else v=-1;s[X>>2]=s[X>>2]|v}v=s[Y>>2]|0;if(v|0){f=f+255&255;do{_=s[V>>2]|0;if((_+(s[p>>2]|0)|0)>>>0<(s[b>>2]|0)>>>0){s[V>>2]=_+1;r[(s[Je>>2]|0)+_>>0]=f;_=0;v=s[Y>>2]|0}else _=-1;s[X>>2]=s[X>>2]|_;v=v+-1|0;s[Y>>2]=v}while((v|0)!=0)}s[W>>2]=k&255;f=s[K>>2]|0;v=s[o>>2]|0;_=s[ce>>2]|0}s[K>>2]=f<<8&2147483392;v=v<<8;s[o>>2]=v;_=_+8|0;s[ce>>2]=_}}else{f=v;k=_}while(0);if(!y){ct=456;break}v=f>>>1;_=f-v|0;if(!R)v=_;else s[K>>2]=(s[K>>2]|0)+_;s[o>>2]=v;_=k;while(1){if(v>>>0>=8388609)break;f=s[K>>2]|0;k=f>>>23;if((k|0)==255)s[Y>>2]=(s[Y>>2]|0)+1;else{f=f>>>31;v=s[W>>2]|0;if((v|0)>-1){_=s[V>>2]|0;if((_+(s[p>>2]|0)|0)>>>0<(s[b>>2]|0)>>>0){s[V>>2]=_+1;r[(s[Je>>2]|0)+_>>0]=v+f;v=0}else v=-1;s[X>>2]=s[X>>2]|v}v=s[Y>>2]|0;if(v|0){f=f+255&255;do{_=s[V>>2]|0;if((_+(s[p>>2]|0)|0)>>>0<(s[b>>2]|0)>>>0){s[V>>2]=_+1;r[(s[Je>>2]|0)+_>>0]=f;_=0;v=s[Y>>2]|0}else _=-1;s[X>>2]=s[X>>2]|_;v=v+-1|0;s[Y>>2]=v}while((v|0)!=0)}s[W>>2]=k&255;f=s[K>>2]|0;v=s[o>>2]|0;_=s[ce>>2]|0}s[K>>2]=f<<8&2147483392;v=v<<8;s[o>>2]=v;_=_+8|0;s[ce>>2]=_}k=(s[Ie>>2]|0)==1001;if(k)f=u;else f=_+((re(v|0)|0)+-32)+7>>3;kt=m-f|0;f=(s[Ce>>2]|0)/1600|0;f=(kt|0)<(f|0)?kt:f;if((f|0)>=2)if((f|0)>257)S=257;else ct=436;else{f=2;ct=436}if((ct|0)==436)S=f;if(!k){M=S;break}f=v>>>8;if((S|0)==2)v=v+(te(f,-255)|0)|0;else{v=v-(te(f,258-S|0)|0)|0;s[K>>2]=(s[K>>2]|0)+v;v=f}s[o>>2]=v;while(1){if(v>>>0>=8388609){M=S;break t}f=s[K>>2]|0;k=f>>>23;if((k|0)==255)s[Y>>2]=(s[Y>>2]|0)+1;else{f=f>>>31;v=s[W>>2]|0;if((v|0)>-1){_=s[V>>2]|0;if((_+(s[p>>2]|0)|0)>>>0<(s[b>>2]|0)>>>0){s[V>>2]=_+1;r[(s[Je>>2]|0)+_>>0]=v+f;v=0}else v=-1;s[X>>2]=s[X>>2]|v}v=s[Y>>2]|0;if(v|0){f=f+255&255;do{_=s[V>>2]|0;if((_+(s[p>>2]|0)|0)>>>0<(s[b>>2]|0)>>>0){s[V>>2]=_+1;r[(s[Je>>2]|0)+_>>0]=f;_=0;v=s[Y>>2]|0}else _=-1;s[X>>2]=s[X>>2]|_;v=v+-1|0;s[Y>>2]=v}while((v|0)!=0)}s[W>>2]=k&255;f=s[K>>2]|0;v=s[o>>2]|0;_=s[ce>>2]|0}s[K>>2]=f<<8&2147483392;v=v<<8;s[o>>2]=v;_=_+8|0;s[ce>>2]=_}}while(0);if((ct|0)==456){s[he>>2]=0;y=0;M=0}kt=s[Ie>>2]|0;_=(kt|0)==1002?0:17;if((kt|0)==1e3){v=(s[ce>>2]|0)+((re(s[o>>2]|0)|0)+-32)+7>>3;li(Je);k=v}else{k=m-M|0;k=(k|0)<(u|0)?k:u;yt=s[Je>>2]|0;v=s[p>>2]|0;kt=0-v|0;Tn(yt+k+kt|0,yt+(s[b>>2]|0)+kt|0,v|0)|0;s[b>>2]=k;v=0}f=(y|0)==0;if(f?(s[Ie>>2]|0)==1e3:0)ct=464;else ct=462;do if((ct|0)==462){s[Be>>2]=ht;qs(Xe,10022,Be)|0;if((s[Ie>>2]|0)!=1001){ct=464;break}s[De>>2]=s[e+100>>2];s[De+4>>2]=s[e+104>>2];s[Ue>>2]=De;qs(Xe,10028,Ue)|0}while(0);if((ct|0)==464){s[je>>2]=0;qs(Xe,10028,je)|0}if(!(f|(R|0)==0)){s[Fe>>2]=0;qs(Xe,10010,Fe)|0;s[ze>>2]=0;qs(Xe,4006,ze)|0;s[He>>2]=-1;qs(Xe,4002,He)|0;if((Jt(Xe,w,(s[dt>>2]|0)/200|0,ee+k|0,M,0)|0)<0){v=-3;break}s[Ge>>2]=ft;qs(Xe,4031,Ge)|0;qs(Xe,4028,Ve)|0}s[ut>>2]=_;qs(Xe,10010,ut)|0;_=s[Ie>>2]|0;do if((_|0)==1e3)ct=482;else{kt=s[xe>>2]|0;if((_|0)!=(kt|0)&(kt|0)>0){qs(Xe,4028,Ke)|0;Jt(Xe,c,(s[dt>>2]|0)/400|0,We,2,0)|0;s[Ye>>2]=0;qs(Xe,10002,Ye)|0}if(((s[ce>>2]|0)+((re(s[o>>2]|0)|0)+-32)|0)>(k<<3|0)){ct=482;break}do if(!(f|(R|0)==0)){if((s[Ie>>2]|0)!=1001)break;if(!(s[ot>>2]|0))break;s[Ze>>2]=(s[Ce>>2]|0)-(s[e+36>>2]|0);qs(Xe,4002,Ze)|0}while(0);s[$e>>2]=s[ot>>2];qs(Xe,4006,$e)|0;v=Jt(Xe,w,i,0,k,Je)|0;if((v|0)<0){v=-3;break e}if(f){y=0;ct=488;break}if(!R){_=k;ct=484;break}_=s[Ie>>2]|0;if((_|0)!=1001){S=y;break}if(!(s[ot>>2]|0)){ct=488;break}Mn(ee+v|0,ee+k|0,M|0)|0;ct=488}while(0);do if((ct|0)==482){if(f){y=0;ct=488;break}else _=k;if(!R)ct=484;else ct=488}while(0);if((ct|0)==484){k=s[dt>>2]|0;f=(k|0)/200|0;k=(k|0)/400|0;qs(Xe,4028,Qe)|0;s[et>>2]=0;qs(Xe,10010,et)|0;s[tt>>2]=0;qs(Xe,10002,tt)|0;s[it>>2]=0;qs(Xe,4006,it)|0;s[rt>>2]=-1;qs(Xe,4002,rt)|0;if((s[Ie>>2]|0)==1001){yt=s[Je>>2]|0;_=s[p>>2]|0;kt=0-_|0;Tn(yt+v+kt|0,yt+(s[b>>2]|0)+kt|0,_|0)|0;s[b>>2]=v;_=v}kt=i-f|0;Jt(Xe,w+((te(s[at>>2]|0,kt-k|0)|0)<<2)|0,k,nt,2,0)|0;if((Jt(Xe,w+((te(s[at>>2]|0,kt)|0)<<2)|0,f,ee+_|0,M,0)|0)<0){v=-3;break}s[st>>2]=ft;qs(Xe,4031,st)|0;ct=488}if((ct|0)==488){_=s[Ie>>2]|0;S=y}k=s[Pe>>2]|0;y=(s[dt>>2]|0)/(i|0)|0;f=0;while(1){if((y|0)>=400)break;y=y<<1;f=f+1|0}switch(_|0){case 1e3:{_=(B<<5)+96&224|(f<<3)+-16;break}case 1002:{_=((B|0)<1102?0:(B<<5)+64&96)|f<<3|128;break}default:_=B<<4|(f<<3)+240|96}r[a>>0]=_|((k|0)==2&1)<<2;u=s[o>>2]|0;s[lt>>2]=u^s[ft>>2];if(!Re)_=s[Ie>>2]|0;else _=1002;s[xe>>2]=_;c=s[Pe>>2]|0;s[e+15144>>2]=c;s[e+15148>>2]=i;s[e+15164>>2]=0;t:do if(s[e+184>>2]|0){do if(!(s[ht>>2]|0)){if(!Oe)break t;_=e+19036|0}else{_=e+19036|0;A=+h[e+19040>>2];if(Oe|0)break;k=+h[ht+28>>2]<.10000000149011612;if(k){y=te(s[at>>2]|0,i)|0;f=0;E=0;while(1){if((f|0)>=(y|0))break;_t=+h[t+(f<<2)>>2];f=f+1|0;E=E+_t*_t}if(!((E/+(y|0)*316.2300109863281<=A|0)==0|k^1))break}s[_>>2]=0;break t}while(0);kt=s[_>>2]|0;y=kt+1|0;s[_>>2]=y;if((kt|0)<=9)break;if((y|0)>=31){s[_>>2]=10;break}s[lt>>2]=0;y=s[Ie>>2]|0;v=(s[dt>>2]|0)/(i|0)|0;_=0;while(1){if((v|0)>=400)break;v=v<<1;_=_+1|0}switch(y|0){case 1e3:{v=(B<<5)+96&224|(_<<3)+-16;break}case 1002:{v=((B|0)<1102?0:(B<<5)+64&96)|_<<3|128;break}default:v=B<<4|(_<<3)+240|96}r[a>>0]=v|((c|0)==2&1)<<2;v=1;break e}while(0);t:do if(((s[ce>>2]|0)+((re(u|0)|0)+-32)|0)>((Le<<3)+-8|0)){if((Le|0)<2){v=-2;break e}r[ee>>0]=0;s[lt>>2]=0;v=1}else{if(!((s[Ie>>2]|0)==1e3&(S|0)==0))break;while(1){if((v|0)<=2)break t;if(r[a+v>>0]|0)break t;v=v+-1|0}}while(0);v=v+(M+1)|0;t:do if(!(s[ot>>2]|0)){i:do if((v|0)>=1){do if((v|0)!=(Le|0)){if((v|0)>(Le|0))break i;_=ut+4|0;s[_>>2]=0;kt=a+Le+(0-v)|0;Tn(kt|0,a|0,v|0)|0;if(js(ut,kt,v)|0)break i;v=Fs(ut,s[_>>2]|0,a,Le,1)|0;if((v|0)>0)break;if(!v){v=Le;break t}else{v=-3;break e}}while(0);v=Le;break t}while(0);v=-3;break e}while(0)}while(0);qe(ue|0);kt=v;l=pt;return kt|0}while(0);y=s[e+15136>>2]|0;_=s[e+15152>>2]|0;_=(_|0)==0?1101:_;y=(y|0)==0?1e3:y;e:do if((v|0)>100)ct=63;else{if((v|0)<50|(y|0)==1e3)if((_|0)>1103){_=1103;k=1e3;break}else{y=1e3;ct=64;break}switch(y|0){case 1002:{ct=63;break e}case 1001:break;default:{k=y;break e}}_=(_|0)>1104?_:1104;k=1001}while(0);if((ct|0)==63)if((_|0)==1102){_=1101;k=1002}else{y=1002;ct=64}if((ct|0)==64)k=y;f=s[e+15104>>2]|0;y=0;while(1){if((v|0)>=400)break;v=v<<1;y=y+1|0}switch(k|0){case 1e3:{v=(_<<5)+96&224|(y<<3)+-16;break}case 1002:{v=((_|0)<1102?0:(_<<5)+64&96)|y<<3|128;break}default:v=_<<4|(y<<3)+240|96}v=(v|((f|0)==2&1)<<2)&255;r[a>>0]=v;if(s[ot>>2]|0){kt=1;l=pt;return kt|0}do if((Le|0)==1)ct=78;else{if((Le|0)>=1){_=R+4|0;s[_>>2]=0;kt=a+Le+-1|0;r[kt>>0]=v;v=js(R,kt,1)|0;if(!v){v=Fs(R,s[_>>2]|0,a,Le,1)|0;if((v|0)>0){ct=78;break}if(!v)break;l=pt;return v|0}}else v=-1;kt=v;l=pt;return kt|0}while(0);kt=Le;l=pt;return kt|0}function Ds(e,t,i,r,n,s,a,o,f){e=e|0;t=t|0;i=+i;r=+r;n=n|0;s=s|0;a=a|0;o=o|0;f=f|0;var c=0,l=0,u=0;c=48e3/(f|0)|0;l=(n|0)/(c|0)|0;e:do if((a|0)==1){f=0;while(1){if((f|0)>=(l|0)){f=0;break e}u=+h[o+((te(f,c)|0)<<2)>>2];u=u*u;h[t+(f<<2)>>2]=(u*r+(1-u)*i)*+h[e+(f<<2)>>2];f=f+1|0}}else{f=0;while(1){if((f|0)>=(l|0)){f=0;break e}u=+h[o+((te(f,c)|0)<<2)>>2];u=u*u;u=u*r+(1-u)*i;n=f<<1;h[t+(n<<2)>>2]=u*+h[e+(n<<2)>>2];n=n|1;h[t+(n<<2)>>2]=u*+h[e+(n<<2)>>2];f=f+1|0}}while(0);do{n=l;while(1){if((n|0)>=(s|0))break;o=(te(n,a)|0)+f|0;h[t+(o<<2)>>2]=+h[e+(o<<2)>>2]*r;n=n+1|0}f=f+1|0}while((f|0)<(a|0));return}function Ls(e,t,i,r){e=e|0;t=t|0;i=i|0;r=r|0;var a=0,o=0,f=0,c=0,u=0,d=0,p=0,b=0;b=l;if((s[e+108>>2]|0)==2051)a=0;else a=s[e+116>>2]|0;f=s[e+156>>2]|0;p=e+112|0;c=s[e+144>>2]|0;o=(f|0)==5010;e:do if(((c|0)/200|0|0)>(i|0)|o^1){a=(c|0)/400|0;if((a|0)<=(i|0)){if((f|0)!=5e3){if(o)a=(c|0)/50|0;else{if((f+-5001|0)>>>0>=6){u=-1;break}u=(c*3|0)/50|0;a=a<(i|0)){u=-1;break}}else a=i;if(!((a*400|0)==(c|0)|(a*200|0)==(c|0)|(a*100|0)==(c|0))?(u=a*50|0,!((u|0)==(c|0)|(a*25|0)==(c|0)|(u|0)==(c*3|0))):0)u=-1;else d=16}else u=-1}else{f=(c|0)/400|0;o=Os(t,i,s[p>>2]|0,c,s[e+160>>2]|0,e+7060|0,a,1)|0;while(1){a=f<-1?a:-1;a=s[p>>2]|0;o=te(u,a)|0;f=l;l=l+((1*(o<<2)|0)+15&-16)|0;c=0;while(1){if((c|0)>=(o|0))break;h[f+(c<<2)>>2]=+(n[t+(c<<1)>>1]|0)*30517578125e-15;c=c+1|0}e=Ns(e,f,u,r,3828,16,t,i,0,-2,a,1,0)|0;l=b;return e|0}function Bs(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,a=0,o=0,f=0,c=0,u=0,d=0,p=0,b=0,m=0;m=l;l=l+80|0;f=m+48|0;a=m+40|0;r=m+32|0;d=m+24|0;u=m+16|0;c=m+8|0;o=m;b=m+56|0;s[b>>2]=i;p=e+(s[e>>2]|0)|0;e:do switch(t|0){case 4e3:{p=(s[b>>2]|0)+(4-1)&~(4-1);t=s[p>>2]|0;s[b>>2]=p+4;switch(t|0){case 2051:case 2049:case 2048:break;default:{i=-1;t=108;break e}}i=e+108|0;if((s[e+15164>>2]|0)==0?(s[i>>2]|0)!=(t|0):0){i=-1;t=108;break e}s[i>>2]=t;i=0;t=108;break}case 4001:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(!i)t=109;else{s[i>>2]=s[e+108>>2];i=0;t=108}break}case 4002:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if((i|0)!=-1e3)if((i|0)!=-1){if((i|0)<1){t=109;break e}if((i|0)<501)i=500;else{b=(s[e+112>>2]|0)*3e5|0;i=(i|0)>(b|0)?b:i}}else i=-1;else i=-1e3;s[e+164>>2]=i;i=0;t=108;break}case 4003:{p=(s[b>>2]|0)+(4-1)&~(4-1);r=s[p>>2]|0;s[b>>2]=p+4;if(!r)t=109;else{i=s[e+15148>>2]|0;if(!i)t=(s[e+144>>2]|0)/400|0;else t=i;i=s[e+164>>2]|0;switch(i|0){case-1e3:{i=s[e+144>>2]|0;i=((i*60|0)/(t|0)|0)+(te(i,s[e+112>>2]|0)|0)|0;break}case-1:{i=((s[e+144>>2]|0)*10208|0)/(t|0)|0;break}default:{}}s[r>>2]=i;i=0;t=108}break}case 4022:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if((i|0)<1){if((i|0)!=-1e3){t=109;break e}}else if((i|0)>(s[e+112>>2]|0)){t=109;break e}s[e+120>>2]=i;i=0;t=108;break}case 4023:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(!i)t=109;else{s[i>>2]=s[e+120>>2];i=0;t=108}break}case 4004:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if((i+-1101|0)>>>0>4)t=109;else{s[e+132>>2]=i;switch(i|0){case 1101:{s[e+20>>2]=8e3;i=0;t=108;break e}case 1102:{s[e+20>>2]=12e3;i=0;t=108;break e}default:{s[e+20>>2]=16e3;i=0;t=108;break e}}}break}case 4005:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(!i)t=109;else{s[i>>2]=s[e+132>>2];i=0;t=108}break}case 4008:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if((i|0)>=1101){if((i|0)>1105){t=109;break e}s[e+128>>2]=i;if((i|0)==1101){s[e+20>>2]=8e3;i=0;t=108;break e}else t=i;i=e+20|0;if((t|0)==1102){s[i>>2]=12e3;i=0;t=108;break e}}else{if((i|0)!=-1e3){t=109;break e}s[e+128>>2]=-1e3;i=e+20|0}s[i>>2]=16e3;i=0;t=108;break}case 4009:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(!i)t=109;else{s[i>>2]=s[e+15152>>2];i=0;t=108}break}case 4016:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(i>>>0>1)t=109;else{s[e+184>>2]=i;i=0;t=108}break}case 4017:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(!i)t=109;else{s[i>>2]=s[e+184>>2];i=0;t=108}break}case 4010:{d=(s[b>>2]|0)+(4-1)&~(4-1);i=s[d>>2]|0;s[b>>2]=d+4;if(i>>>0>10)t=109;else{s[e+44>>2]=i;s[o>>2]=i;qs(p,4010,o)|0;i=0;t=108}break}case 4011:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(!i)t=109;else{s[i>>2]=s[e+44>>2];i=0;t=108}break}case 4012:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(i>>>0>1)t=109;else{s[e+48>>2]=i;i=0;t=108}break}case 4013:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(!i)t=109;else{s[i>>2]=s[e+48>>2];i=0;t=108}break}case 4014:{d=(s[b>>2]|0)+(4-1)&~(4-1);i=s[d>>2]|0;s[b>>2]=d+4;if(i>>>0>100)t=109;else{s[e+40>>2]=i;s[c>>2]=i;qs(p,4014,c)|0;i=0;t=108}break}case 4015:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(!i)t=109;else{s[i>>2]=s[e+40>>2];i=0;t=108}break}case 4006:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(i>>>0>1)t=109;else{s[e+148>>2]=i;s[e+60>>2]=1-i;i=0;t=108}break}case 4007:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(!i)t=109;else{s[i>>2]=s[e+148>>2];i=0;t=108}break}case 11018:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if((i+1|0)>>>0>101)t=109;else{s[e+140>>2]=i;i=0;t=108}break}case 11019:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(!i)t=109;else{s[i>>2]=s[e+140>>2];i=0;t=108}break}case 4020:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(i>>>0>1)t=109;else{s[e+152>>2]=i;i=0;t=108}break}case 4021:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(!i)t=109;else{s[i>>2]=s[e+152>>2];i=0;t=108}break}case 4024:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if((i|0)<3001)switch(i|0){case-1e3:break;default:{t=109;break e}}else switch(i|0){case 3002:case 3001:break;default:{t=109;break e}}s[e+124>>2]=i;i=0;t=108;break}case 4025:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(!i)t=109;else{s[i>>2]=s[e+124>>2];i=0;t=108}break}case 4027:{p=(s[b>>2]|0)+(4-1)&~(4-1);t=s[p>>2]|0;s[b>>2]=p+4;if(t){i=(s[e+144>>2]|0)/400|0;s[t>>2]=i;if((s[e+108>>2]|0)==2051){i=0;t=108}else{s[t>>2]=i+(s[e+116>>2]|0);i=0;t=108}}else t=109;break}case 4029:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(!i)t=109;else{s[i>>2]=s[e+144>>2];i=0;t=108}break}case 4031:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(!i)t=109;else{s[i>>2]=s[e+19044>>2];i=0;t=108}break}case 4036:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if((i+-8|0)>>>0>16)t=109;else{s[e+168>>2]=i;i=0;t=108}break}case 4037:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(!i)t=109;else{s[i>>2]=s[e+168>>2];i=0;t=108}break}case 4040:{d=(s[b>>2]|0)+(4-1)&~(4-1);i=s[d>>2]|0;s[b>>2]=d+4;switch(i|0){case 5010:case 5006:case 5005:case 5004:case 5003:case 5002:case 5001:case 5e3:break;default:{t=109;break e}}s[e+156>>2]=i;s[u>>2]=i;qs(p,4040,u)|0;i=0;t=108;break}case 4041:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(!i)t=109;else{s[i>>2]=s[e+156>>2];i=0;t=108}break}case 4042:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(i>>>0>1)t=109;else{s[e+76>>2]=i;i=0;t=108}break}case 4043:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if(!i)t=109;else{s[i>>2]=s[e+76>>2];i=0;t=108}break}case 4028:{r=e+(s[e+4>>2]|0)|0;a=e+15104|0;kn(e+192|0,0,18856)|0;qs(p,4028,d)|0;i=s[e+180>>2]|0;kn(r|0,0,20400)|0;t=0;while(1){if((t|0)==2)break;Fi(r+(t*10156|0)|0,i)|0;t=t+1|0}s[r+20376>>2]=1;s[r+20380>>2]=1;s[a>>2]=s[e+112>>2];n[e+15108>>1]=16384;h[e+15116>>2]=1;s[e+15164>>2]=1;s[e+15136>>2]=1001;s[e+15152>>2]=1105;s[e+15112>>2]=193536;i=0;t=108;break}case 11002:{p=(s[b>>2]|0)+(4-1)&~(4-1);i=s[p>>2]|0;s[b>>2]=p+4;if((i|0)<1e3){if((i|0)!=-1e3){t=109;break e}}else if((i|0)>1002){t=109;break e}s[e+136>>2]=i;i=0;t=108;break}case 10024:{t=(s[b>>2]|0)+(4-1)&~(4-1);i=s[t>>2]|0;s[b>>2]=t+4;s[e+176>>2]=i;s[r>>2]=i;i=qs(p,10024,r)|0;t=108;break}case 10026:{t=(s[b>>2]|0)+(4-1)&~(4-1);i=s[t>>2]|0;s[b>>2]=t+4;s[e+15168>>2]=i;s[a>>2]=i;i=qs(p,10026,a)|0;t=108;break}case 10015:{e=(s[b>>2]|0)+(4-1)&~(4-1);i=s[e>>2]|0;s[b>>2]=e+4;if(!i)t=109;else{s[f>>2]=i;i=qs(p,10015,f)|0;t=108}break}default:{i=-5;t=108}}while(0);if((t|0)==108){e=i;l=m;return e|0}else if((t|0)==109){e=-1;l=m;return e|0}return 0}function Us(e){e=e|0;Hr(e);return}function js(e,t,i){e=e|0;t=t|0;i=i|0;var n=0,o=0,f=0,h=0,c=0,u=0;u=l;l=l+16|0;h=u;if((i|0)<1){c=-4;l=u;return c|0}c=e+4|0;f=s[c>>2]|0;e:do if(f){if(((r[e>>0]^r[t>>0])&255)>=4){c=-4;l=u;return c|0}}else{r[e>>0]=r[t>>0]|0;n=r[t>>0]|0;do if(n<<24>>24>=0)if((n&96)==96){if(n&8){n=160;break}s[e+296>>2]=80;break e}else{n=(n&255)>>>3&3;if((n|0)==3){n=480;break}s[e+296>>2]=(8e3<>>0)/100|0;break e}else n=(8e3<<((n&255)>>>3&3)>>>0)/400|0;while(0);s[e+296>>2]=n}while(0);n=(a[t>>0]|0)&3;if(n)if((n|0)==3){if((i|0)<2){c=-4;l=u;return c|0}n=(a[t+1>>0]|0)&63;if(!n){c=-4;l=u;return c|0}else o=n}else o=2;else o=1;if((te(o+f|0,s[e+296>>2]|0)|0)>960){c=-4;l=u;return c|0}n=rr(t,i,0,h,e+8+(f<<2)|0,e+200+(f<<1)|0,0,0)|0;if((n|0)<1){c=n;l=u;return c|0}s[c>>2]=(s[c>>2]|0)+o;c=0;l=u;return c|0}function Fs(e,t,i,o,f){e=e|0;t=t|0;i=i|0;o=o|0;f=f|0;var h=0,c=0,l=0,u=0,d=0,p=0,b=0;if((t|0)<1){e=-1;return e|0}if((s[e+4>>2]|0)<(t|0)){e=-1;return e|0}p=e+200|0;e:do switch(t|0){case 1:{h=n[p>>1]|0;if((h|0)<(o|0)){r[i>>0]=a[e>>0]&252;c=i+1|0;h=h+1|0;d=14;break e}else{e=-2;return e|0}}case 2:{h=n[e+202>>1]|0;c=n[p>>1]|0;if(h<<16>>16==c<<16>>16){h=h<<16>>16<<1|1;if((h|0)>(o|0)){e=-2;return e|0}else{r[i>>0]=a[e>>0]&252|1;c=i+1|0;d=14;break e}}h=(c<<16>>16)+(h<<16>>16)+2+(c<<16>>16>251&1)|0;if((h|0)>(o|0)){e=-2;return e|0}u=i+1|0;r[i>>0]=a[e>>0]&252|2;c=n[p>>1]|0;l=c<<16>>16;if(c<<16>>16<252){r[u>>0]=c;c=1}else{c=l|252;r[u>>0]=c;r[i+2>>0]=(l-(c&255)|0)>>>2;c=2}c=u+c|0;d=14;break}default:{h=1;d=15}}while(0);if((d|0)==14)if((f|0)!=0&(h|0)<(o|0)){h=1;d=15}e:do if((d|0)==15){while(1){if((h|0)>=(t|0)){d=23;break}if((n[e+200+(h<<1)>>1]|0)!=(n[p>>1]|0)){d=17;break}h=h+1|0;d=15}do if((d|0)==17){h=t+-1|0;c=0;l=2;while(1){if((c|0)>=(h|0))break;p=n[e+200+(c<<1)>>1]|0;c=c+1|0;l=l+((p<<16>>16>251?2:1)+(p<<16>>16))|0}h=l+(n[e+200+(h<<1)>>1]|0)|0;if((h|0)>(o|0)){e=-2;return e|0}else{r[i>>0]=a[e>>0]|3;l=t|128;r[i+1>>0]=l;u=1;break}}else if((d|0)==23){h=(te(n[p>>1]|0,t)|0)+2|0;if((h|0)>(o|0)){e=-2;return e|0}else{r[i>>0]=a[e>>0]|3;r[i+1>>0]=t;l=t;u=0;break}}while(0);c=i+2|0;if((f|0)!=0?(b=o-h|0,(h|0)!=(o|0)):0){r[i+1>>0]=l|64;h=(b+-1|0)/255|0;l=0;while(1){if((l|0)>=(h|0))break;r[c>>0]=-1;l=l+1|0;c=c+1|0}r[c>>0]=b+(te(h,-255)|0)+255;c=c+1|0;h=o}if(u){d=t+-1|0;p=0;while(1){if((p|0)>=(d|0))break e;l=n[e+200+(p<<1)>>1]|0;u=l<<16>>16;if(l<<16>>16<252){r[c>>0]=l;l=1}else{l=u|252;r[c>>0]=l;r[c+1>>0]=(u-(l&255)|0)>>>2;l=2}p=p+1|0;c=c+l|0}}}while(0);l=0;while(1){if((l|0)>=(t|0))break;b=e+200+(l<<1)|0;Tn(c|0,s[e+8+(l<<2)>>2]|0,n[b>>1]|0)|0;l=l+1|0;c=c+(n[b>>1]|0)|0}if(!f){e=h;return e|0}l=i+o|0;while(1){if(c>>>0>=l>>>0)break;r[c>>0]=0;c=c+1|0}return h|0}function zs(e,t,i,r,a,o,f,c,u,d,p,b){e=e|0;t=t|0;i=i|0;r=r|0;a=a|0;o=o|0;f=f|0;c=c|0;u=u|0;d=d|0;p=p|0;b=b|0;var m=0,w=0,g=0,v=0,_=0,y=0,k=0,E=0,A=0,S=0,M=0,T=0,x=0,R=0,I=0,C=0,P=0,O=0,N=0,D=0,L=0,B=0,U=0,j=0,F=0,V=0,W=0,K=0,Y=0,Z=0,$=0,X=0,J=0,ee=0,te=0,ie=0,re=0,ne=0,se=0,ae=0,oe=0,fe=0,he=0,ce=0,le=0,ue=0,de=0,pe=0,be=0,me=0,we=0,ge=0,ve=0,_e=0,ye=0,ke=0,Ee=0,Ae=0,Se=0,Me=0,Te=0,xe=0,Re=0,Ie=0,Ce=0,Pe=0,Oe=0,Ne=0,De=0,Le=0,Be=0,Ue=0;Le=l;l=l+10288|0;Re=Le+9888|0;Me=Le+9816|0;Ce=Le+9744|0;Se=Le+9712|0;Te=Le+9608|0;xe=Le+9600|0;Ie=Le+5760|0;Oe=Le+1920|0;Ne=Le+960|0;Pe=Le;if(!i)u=e+8504|0;else{_e=(u*195|0)/100|0;_e=(_e|0)<(r|0)?_e:r;ye=e+6884|0;V=s[ye>>2]|0;ke=e+6864|0;Ee=e+6868|0;Ae=e+6844|0;W=t+72|0;K=e+5764|0;u=e+8504|0;Y=e+2884|0;Z=e+4804|0;$=e+3844|0;X=e+6856|0;J=(d|0)<8;ee=e+6848|0;te=e+6852|0;ie=e+5840|0;re=Te+80|0;ne=Te+84|0;se=Te+88|0;ae=Te+92|0;oe=Te+96|0;fe=xe+4|0;he=e+6888|0;ce=e+7688|0;le=e+6892|0;ue=e+7692|0;de=e+7684|0;pe=e+8484|0;be=e+8500|0;me=e+8492|0;we=e+8496|0;ge=e+8488|0;ve=e+6860|0;U=d+-8|0;F=V;V=_e-V|0;while(1){j=(V|0)>480;w=j?480:V;s[ke>>2]=(s[ke>>2]|0)+1;r=s[Ee>>2]|0;D=(r|0)>19?.05000000074505806:1/+(r+1|0);B=r+1|0;N=(r|0)>49?.019999999552965164:1/+(B|0);S=(r|0)>999;P=1/+(B|0);if((r|0)<4){h[Ae>>2]=.5;t=s[W>>2]|0;if(!r){s[K>>2]=240;d=240;r=t}else{r=t;De=7}}else{r=s[W>>2]|0;De=7}if((De|0)==7){De=0;d=s[K>>2]|0}t=720-d|0;Ys[p&1](i,e+2884+(d<<2)|0,(t|0)>(w|0)?w:t,F,o,f,c); +d=s[K>>2]|0;t=d+w|0;do if((t|0)<720)s[K>>2]=t;else{L=s[u>>2]|0;B=e+8516+(L<<5)|0;s[u>>2]=L+((L|0)>198?-199:1);t=0;while(1){if((t|0)==240)break;C=+h[828+(t<<2)>>2];h[Ie+(t<<3)>>2]=C*+h[e+2884+(t<<2)>>2];h[Ie+(t<<3)+4>>2]=C*+h[e+2884+(t+240<<2)>>2];O=480-t+-1|0;h[Ie+(O<<3)>>2]=C*+h[e+2884+(O<<2)>>2];h[Ie+(O<<3)+4>>2]=C*+h[e+2884+(720-t+-1<<2)>>2];t=t+1|0}Mn(Y|0,Z|0,960)|0;t=d+-720+w|0;Ys[p&1](i,$,t,F+720-d|0,o,f,c);s[K>>2]=t+240;m=+h[r+4>>2];t=r+44|0;d=0;while(1){if((d|0)>=(s[r>>2]|0))break;C=+h[Ie+(d<<3)+4>>2];h[Oe+(n[(s[t>>2]|0)+(d<<1)>>1]<<3)>>2]=m*+h[Ie+(d<<3)>>2];h[Oe+(n[(s[t>>2]|0)+(d<<1)>>1]<<3)+4>>2]=m*C;d=d+1|0}ui(r,Oe);C=+h[Oe>>2];if(C!=C|0!=0){s[B>>2]=0;break}else d=1;while(1){if((d|0)==240)break;E=+h[Oe+(d<<3)>>2];O=480-d|0;v=+h[Oe+(O<<3)>>2];m=E+v;_=+h[Oe+(d<<3)+4>>2];k=+h[Oe+(O<<3)+4>>2];g=_-k;k=_+k;E=v-E;v=m*m;_=g*g;do if(!(v+_<1.000000045813705e-18))if(v<_){m=-(m*g*(_+v*.43157973885536194))/((_+v*.6784840226173401)*(_+v*.0859554186463356))+(g<0?-1.5707963705062866:1.5707963705062866);break}else{m=m*g;m=m*(v+_*.43157973885536194)/((v+_*.6784840226173401)*(v+_*.0859554186463356))+(g<0?-1.5707963705062866:1.5707963705062866)-(m<0?-1.5707963705062866:1.5707963705062866);break}else m=0;while(0);v=m*.15915493667125702;r=e+4+(d<<2)|0;_=v-+h[r>>2];t=e+964+(d<<2)|0;y=_-+h[t>>2];m=k*k;g=E*E;do if(!(m+g<1.000000045813705e-18))if(m>2]=+q(+T)+ +q(+C);C=C*C;C=C*C;O=e+1924+(d<<2)|0;h[Ne+(d<<2)>>2]=1/((+h[O>>2]+x*x*2+C)*.25*62341.81640625+1)+-.014999999664723873;h[r>>2]=R;h[t>>2]=I;h[O>>2]=C;d=d+1|0}O=e+8516+(L<<5)+16|0;h[O>>2]=0;e:do if(!(s[Ee>>2]|0)){r=0;while(1){if((r|0)==18){w=0;T=0;E=0;x=0;m=0;R=0;I=0;C=0;break e}h[e+6420+(r<<2)>>2]=1e10;h[e+6492+(r<<2)>>2]=-1e10;r=r+1|0}}else{w=0;T=0;E=0;x=0;m=0;R=0;I=0;C=0}while(0);while(1){if((w|0)>=18)break;d=w+1|0;r=s[1788+(d<<2)>>2]|0;v=0;t=s[1788+(w<<2)>>2]|0;g=0;A=0;while(1){if((t|0)>=(r|0))break;Be=+h[Oe+(t<<3)>>2];M=480-t|0;k=+h[Oe+(M<<3)>>2];y=+h[Oe+(t<<3)+4>>2];_=+h[Oe+(M<<3)+4>>2];_=Be*Be+k*k+y*y+_*_;y=g+_*2*(.5-+h[Pe+(t<<2)>>2]);k=A+_*+h[Ne+(t<<2)>>2];v=v+_;t=t+1|0;g=y;A=k}if(!(v<1e9)|(v!=v|0!=0)){De=37;break}h[e+5844+((s[X>>2]|0)*72|0)+(w<<2)>>2]=v;y=v+1.0000000036274937e-15;E=E+g/y;_=v+1.000000013351432e-10;k=T+ +H(+_);_=+Q(+_);h[Ce+(w<<2)>>2]=_;r=e+6420+(w<<2)|0;v=+h[r>>2]+.009999999776482582;v=_>2]=v;t=e+6492+(w<<2)|0;g=+h[t>>2]+-.10000000149011612;g=_>g?_:g;h[t>>2]=g;if(g>2]=g;v=v+-.5;h[r>>2]=v}_=(_-v)/(g+1.0000000036274937e-15-v);g=0;v=0;r=0;while(1){if((r|0)==8)break;Be=+h[e+5844+(r*72|0)+(w<<2)>>2];g=g+ +H(+Be);v=v+Be;r=r+1|0}v=g/+H(+(v*8+1e-15));v=v>.9900000095367432?.9900000095367432:v;v=v*v;v=v*v;Be=A/y;r=e+5768+(w<<2)|0;g=v*+h[r>>2];g=Be>g?Be:g;h[Me+(w<<2)>>2]=g;m=m+g;if((w|0)>8)m=m-+h[Me+(w+-9<<2)>>2];A=(+(w+-18|0)*.029999999329447746+1)*m;h[r>>2]=g;Be=C+g*+(w+-8|0);w=d;T=k;x=x+v;R=R>A?R:A;I=I+_;C=Be}if((De|0)==37){De=0;s[B>>2]=0;break}k=J?.0005699999746866524:.0005699999746866524/+(1<>2]|0;d=S+1|0;w=s[1864+(d<<2)>>2]|0;_=0;r=t;while(1){if((r|0)>=(w|0))break;v=+h[Oe+(r<<3)>>2];P=+h[Oe+(r<<3)+4>>2];Ue=480-r|0;A=+h[Oe+(Ue<<3)>>2];Be=+h[Oe+(Ue<<3)+4>>2];_=_+(v*v+A*A+P*P+Be*Be);r=r+1|0}v=g>_?g:_;Ue=e+6564+(S<<2)|0;g=y*+h[Ue>>2];g=g>_?g:_;h[Ue>>2]=g;g=_>g?_:g;m=m*.05000000074505806;m=m>g?m:g;if(!(g>m*.1&g*1e9>v)){Ue=M;S=d;g=v;M=Ue;continue}if(!(g>k*+(w-t|0))){Ue=M;S=d;g=v;M=Ue;continue}M=S;S=d;g=v}w=s[Ee>>2]|0;S=(w|0)<3?20:M;T=+zr(T)*20;P=+h[ee>>2]+-.029999999329447746;P=P>T?P:T;h[ee>>2]=P;Be=+h[te>>2]*(1-N);h[te>>2]=T>2]*+h[Ce+(t<<2)>>2];t=t+1|0;m=Be}h[Se+(d<<2)>>2]=m;d=d+1|0}g=x/18;T=E/18;h[O>>2]=T+(1-T)*((w|0)<10?.5:I/18);N=R/9;Be=+h[ie>>2]*.800000011920929;Be=N>Be?N:Be;h[ie>>2]=Be;d=e+8516+(L<<5)+8|0;h[d>>2]=C*.015625;s[X>>2]=((s[X>>2]|0)+1|0)%8|0;s[Ee>>2]=(s[Ee>>2]|0)+1;t=e+8516+(L<<5)+4|0;h[t>>2]=Be;r=0;while(1){if((r|0)==4)break;h[Te+(r<<2)>>2]=(+h[Se+(r<<2)>>2]+ +h[e+6648+(r+24<<2)>>2])*-.12298999726772308+(+h[e+6648+(r<<2)>>2]+ +h[e+6648+(r+16<<2)>>2])*.49195000529289246+ +h[e+6648+(r+8<<2)>>2]*.6969299912452698-+h[e+6776+(r<<2)>>2]*1.4349000453948975;r=r+1|0}m=1-D;r=0;while(1){if((r|0)==4){r=0;break}Ue=e+6776+(r<<2)|0;h[Ue>>2]=m*+h[Ue>>2]+D*+h[Se+(r<<2)>>2];r=r+1|0}while(1){if((r|0)==4){r=0;break}h[Te+(r+4<<2)>>2]=(+h[Se+(r<<2)>>2]-+h[e+6648+(r+24<<2)>>2])*.6324599981307983+(+h[e+6648+(r<<2)>>2]-+h[e+6648+(r+16<<2)>>2])*.31622999906539917;r=r+1|0}while(1){if((r|0)==3)break;Ue=r+8|0;h[Te+(Ue<<2)>>2]=(+h[Se+(r<<2)>>2]+ +h[e+6648+(r+24<<2)>>2])*.5345199704170227-(+h[e+6648+(r<<2)>>2]+ +h[e+6648+(r+16<<2)>>2])*.26725998520851135-+h[e+6648+(Ue<<2)>>2]*.5345199704170227;r=r+1|0}e:do if((s[Ee>>2]|0)>5){r=0;while(1){if((r|0)==9){r=0;break e}Ue=e+6808+(r<<2)|0;Be=+h[Te+(r<<2)>>2];h[Ue>>2]=m*+h[Ue>>2]+D*Be*Be;r=r+1|0}}else r=0;while(0);while(1){if((r|0)==8){r=0;break}Ue=e+6648+(r+16<<2)|0;s[e+6648+(r+24<<2)>>2]=s[Ue>>2];M=e+6648+(r+8<<2)|0;s[Ue>>2]=s[M>>2];Ue=e+6648+(r<<2)|0;s[M>>2]=s[Ue>>2];s[Ue>>2]=s[Se+(r<<2)>>2];r=r+1|0}while(1){if((r|0)==9)break;Be=+H(+ +h[e+6808+(r<<2)>>2]);h[Te+(r+11<<2)>>2]=Be-+h[2464+(r<<2)>>2];r=r+1|0}h[re>>2]=+h[t>>2]+-.154723;h[ne>>2]=+h[O>>2]+-.724643;h[se>>2]=g+-.743717;h[ae>>2]=+h[d>>2]+.069216;h[oe>>2]=+h[te>>2]+-.06793;r=3304;w=0;while(1){if((w|0)==16){r=4968;w=0;break}t=r;d=0;m=+h[r>>2];while(1){t=t+4|0;if((d|0)==25)break;Be=m+ +h[Te+(d<<2)>>2]*+h[t>>2];d=d+1|0;m=Be}r=r+104|0;if(m<8)if(m>-8)if(m!=m|0!=0)m=0;else{Ue=m<0;m=Ue?-m:m;O=~~+z(+(m*25+.5));m=m-+(O|0)*.03999999910593033;Be=+h[2500+(O<<2)>>2];m=(Ue?-1:1)*(Be+m*(1-Be*Be)*(1-Be*m))}else m=-1;else m=1;h[Re+(w<<2)>>2]=m;w=w+1|0}while(1){if((w|0)==2)break;t=r;d=0;m=+h[r>>2];while(1){t=t+4|0;if((d|0)==16)break;Be=m+ +h[Re+(d<<2)>>2]*+h[t>>2];d=d+1|0;m=Be}r=r+68|0;if(m<8)if(m>-8)if(m!=m|0!=0)m=0;else{Ue=m<0;m=Ue?-m:m;O=~~+z(+(m*25+.5));m=m-+(O|0)*.03999999910593033;Be=+h[2500+(O<<2)>>2];m=(Ue?-1:1)*(Be+m*(1-Be*Be)*(1-Be*m))}else m=-1;else m=1;h[xe+(w<<2)>>2]=m;w=w+1|0}A=(+h[xe>>2]+1)*.5;E=+h[fe>>2]*.5+.5;E=E*E;h[fe>>2]=E;A=E*A+(1-E)*.5;h[xe>>2]=A;h[e+8516+(L<<5)+28>>2]=E;_=E*4999999873689376e-20;Ue=A>.949999988079071;O=A<.05000000074505806&(Ue^1);k=O|Ue?O?.05000000074505806:.949999988079071:A;D=+h[Ae>>2];O=D>.949999988079071;Ue=D<.05000000074505806&(O^1);y=Ue|O?Ue?.05000000074505806:.949999988079071:D;N=1-D;g=1-_;k=+q(+(k-y))*.05000000074505806/(k*(1-y)+y*(1-k))+.009999999776482582;y=+G(+(1-A),+k);k=+G(+A,+k);Be=(D*g+N*_)*k;Be=Be/((N*g+D*_)*y+Be);h[Ae>>2]=Be;h[e+8516+(L<<5)+20>>2]=Be;if((s[Ee>>2]|0)==1){h[he>>2]=.5;h[ce>>2]=.5;m=.5}else m=+h[he>>2];m=m+ +h[le>>2];v=+h[ce>>2]+ +h[ue>>2];h[he>>2]=m*g*y;h[ce>>2]=v*g*k;r=1;while(1){if((r|0)==199)break;Ue=r+1|0;h[e+6888+(r<<2)>>2]=+h[e+6888+(Ue<<2)>>2]*y;h[e+7688+(r<<2)>>2]=+h[e+7688+(Ue<<2)>>2]*k;r=Ue}h[de>>2]=v*_*y;h[pe>>2]=m*_*k;r=0;m=9.999999682655225e-21;while(1){if((r|0)==200)break;Be=m+(+h[e+6888+(r<<2)>>2]+ +h[e+7688+(r<<2)>>2]);r=r+1|0;m=Be}m=1/m;r=0;while(1){if((r|0)==200)break;Ue=e+6888+(r<<2)|0;h[Ue>>2]=+h[Ue>>2]*m;Ue=e+7688+(r<<2)|0;h[Ue>>2]=+h[Ue>>2]*m;r=r+1|0}if(E>.75){m=+h[Ae>>2];if(m>.9){Ue=(s[be>>2]|0)+1|0;s[be>>2]=(Ue|0)<500?Ue:500;D=+h[me>>2];Be=A-D;h[me>>2]=D+1/+(Ue|0)*(Be<-.20000000298023224?-.20000000298023224:Be)}if(m<.1){Ue=(s[we>>2]|0)+1|0;s[we>>2]=(Ue|0)<500?Ue:500;D=+h[ge>>2];Be=A-D;h[ge>>2]=D+1/+(Ue|0)*(Be>.20000000298023224?.20000000298023224:Be)}}else{if(!(s[be>>2]|0))h[me>>2]=.8999999761581421;if(!(s[we>>2]|0))h[ge>>2]=.10000000149011612}r=+h[Ae>>2]>.5&1;if((s[ve>>2]|0)!=(r|0))s[ke>>2]=0;s[ve>>2]=r;s[e+8516+(L<<5)+24>>2]=S;h[e+8516+(L<<5)+12>>2]=T;s[B>>2]=1}while(0);if(j){F=F+480|0;V=V+-480|0}else break}s[ye>>2]=_e-a}s[b>>2]=0;w=e+8508|0;r=s[w>>2]|0;t=s[u>>2]|0;d=t-r|0;d=(d|0)<0?d+200|0:d;if((a|0)<481|(t|0)==(r|0))u=r;else{u=r+1|0;u=(u|0)==200?0:u}r=(u|0)==(t|0)?t+-1|0:u;r=e+8516+(((r|0)<0?199:r)<<5)|0;s[b>>2]=s[r>>2];s[b+4>>2]=s[r+4>>2];s[b+8>>2]=s[r+8>>2];s[b+12>>2]=s[r+12>>2];s[b+16>>2]=s[r+16>>2];s[b+20>>2]=s[r+20>>2];s[b+24>>2]=s[r+24>>2];s[b+28>>2]=s[r+28>>2];r=e+8512|0;u=(s[r>>2]|0)+((a|0)/120|0)|0;s[r>>2]=u;while(1){if((u|0)<=3)break;Ue=u+-4|0;s[r>>2]=Ue;s[w>>2]=(s[w>>2]|0)+1;u=Ue}u=s[w>>2]|0;if((u|0)>199)s[w>>2]=u+-200;u=(d|0)>10?210-d|0:200;r=0;m=0;while(1){if((r|0)>=(u|0))break;Be=m+ +h[e+7688+(r<<2)>>2];r=r+1|0;m=Be}while(1){if((r|0)>=200)break;Be=m+ +h[e+6888+(r<<2)>>2];r=r+1|0;m=Be}h[b+20>>2]=m*+h[e+8492>>2]+(1-m)*+h[e+8488>>2];l=Le;return}function qs(e,t,i){e=e|0;t=t|0;i=i|0;var r=0,n=0,a=0,o=0,f=0,c=0;f=l;l=l+16|0;r=f;s[r>>2]=i;do switch(t|0){case 4010:{o=(s[r>>2]|0)+(4-1)&~(4-1);t=s[o>>2]|0;s[r>>2]=o+4;if(t>>>0>10)t=40;else{s[e+24>>2]=t;t=39}break}case 10010:{o=(s[r>>2]|0)+(4-1)&~(4-1);t=s[o>>2]|0;s[r>>2]=o+4;if((t|0)>=0?(t|0)<(s[(s[e>>2]|0)+8>>2]|0):0){s[e+32>>2]=t;t=39}else t=40;break}case 10012:{o=(s[r>>2]|0)+(4-1)&~(4-1);t=s[o>>2]|0;s[r>>2]=o+4;if((t|0)>=1?(t|0)<=(s[(s[e>>2]|0)+8>>2]|0):0){s[e+36>>2]=t;t=39}else t=40;break}case 10002:{o=(s[r>>2]|0)+(4-1)&~(4-1);t=s[o>>2]|0;s[r>>2]=o+4;if(t>>>0>2)t=40;else{s[e+20>>2]=(t|0)<2&1;s[e+12>>2]=(t|0)==0&1;t=39}break}case 4014:{o=(s[r>>2]|0)+(4-1)&~(4-1);t=s[o>>2]|0;s[r>>2]=o+4;if(t>>>0>100)t=40;else{s[e+56>>2]=t;t=39}break}case 4020:{o=(s[r>>2]|0)+(4-1)&~(4-1);t=s[o>>2]|0;s[r>>2]=o+4;s[e+52>>2]=t;t=39;break}case 4006:{o=(s[r>>2]|0)+(4-1)&~(4-1);t=s[o>>2]|0;s[r>>2]=o+4;s[e+44>>2]=t;t=39;break}case 4002:{o=(s[r>>2]|0)+(4-1)&~(4-1);t=s[o>>2]|0;s[r>>2]=o+4;if((t|0)>500|(t|0)==-1){o=(s[e+4>>2]|0)*26e4|0;s[e+40>>2]=(t|0)<(o|0)?t:o;t=39}else t=40;break}case 10008:{o=(s[r>>2]|0)+(4-1)&~(4-1);t=s[o>>2]|0;s[r>>2]=o+4;if((t+-1|0)>>>0>1)t=40;else{s[e+8>>2]=t;t=39}break}case 4036:{o=(s[r>>2]|0)+(4-1)&~(4-1);t=s[o>>2]|0;s[r>>2]=o+4;if((t+-8|0)>>>0>16)t=40;else{s[e+60>>2]=t;t=39}break}case 4037:{o=(s[r>>2]|0)+(4-1)&~(4-1);t=s[o>>2]|0;s[r>>2]=o+4;s[t>>2]=s[e+60>>2];t=39;break}case 4040:{o=(s[r>>2]|0)+(4-1)&~(4-1);t=s[o>>2]|0;s[r>>2]=o+4;s[e+64>>2]=t;t=39;break}case 4028:{t=e+4|0;a=s[t>>2]|0;n=s[e>>2]|0;c=s[n+4>>2]|0;i=e+212+((te(a,c+1024|0)|0)<<2)|0;o=s[n+8>>2]|0;r=te(a,o)|0;i=i+(r<<2)|0;r=i+(r<<2)|0;kn(e+76|0,0,((te(c,a)|0)<<2)+212+(a<<12)+((te(a<<2,o)|0)<<2)+-76|0)|0;o=0;while(1){if((o|0)>=(te(a,s[n+8>>2]|0)|0))break;h[r+(o<<2)>>2]=-28;h[i+(o<<2)>>2]=-28;n=s[e>>2]|0;a=s[t>>2]|0;o=o+1|0}s[e+184>>2]=0;h[e+84>>2]=1;s[e+80>>2]=2;s[e+88>>2]=256;s[e+96>>2]=0;s[e+100>>2]=0;t=39;break}case 10016:{c=(s[r>>2]|0)+(4-1)&~(4-1);t=s[c>>2]|0;s[r>>2]=c+4;s[e+48>>2]=t;t=39;break}case 10022:{c=(s[r>>2]|0)+(4-1)&~(4-1);t=s[c>>2]|0;s[r>>2]=c+4;if(!t)t=39;else{c=e+120|0;s[c>>2]=s[t>>2];s[c+4>>2]=s[t+4>>2];s[c+8>>2]=s[t+8>>2];s[c+12>>2]=s[t+12>>2];s[c+16>>2]=s[t+16>>2];s[c+20>>2]=s[t+20>>2];s[c+24>>2]=s[t+24>>2];s[c+28>>2]=s[t+28>>2];t=39}break}case 10028:{c=(s[r>>2]|0)+(4-1)&~(4-1);t=s[c>>2]|0;s[r>>2]=c+4;if(!t)t=39;else{o=t;c=s[o+4>>2]|0;t=e+152|0;s[t>>2]=s[o>>2];s[t+4>>2]=c;t=39}break}case 10015:{c=(s[r>>2]|0)+(4-1)&~(4-1);t=s[c>>2]|0;s[r>>2]=c+4;if(!t)t=40;else{s[t>>2]=s[e>>2];t=39}break}case 4031:{c=(s[r>>2]|0)+(4-1)&~(4-1);t=s[c>>2]|0;s[r>>2]=c+4;if(!t)t=40;else{s[t>>2]=s[e+76>>2];t=39}break}case 10024:{c=(s[r>>2]|0)+(4-1)&~(4-1);t=s[c>>2]|0;s[r>>2]=c+4;s[e+68>>2]=t;t=39;break}case 10026:{c=(s[r>>2]|0)+(4-1)&~(4-1);t=s[c>>2]|0;s[r>>2]=c+4;s[e+204>>2]=t;t=39;break}default:{c=-5;l=f;return c|0}}while(0);if((t|0)==39){c=0;l=f;return c|0}else if((t|0)==40){c=-1;l=f;return c|0}return 0}var Hs=[Zn,Yr,hn,ln,vs,Zn,Zn,Zn];var Gs=[$n,rn,Jr,bn];var Vs=[Xn,Gr,en,Wr,Kr,Vr,sn,an,fn,cn,un,gs,Xn,Xn,Xn,Xn];var Ws=[Jn,ys];var Ks=[Qn,on,ws,Qn];var Ys=[es,Ps];var Zs=[ts];var $s=[is,_s,ms,is];var Xs=[rs,tn,$r,dn];var Js=[ns,bs,ks,ns];var Qs=[ss,nn,Qr,wn];return{___cxa_can_catch:vn,_free:Hr,_opus_strerror:Ss,_opus_decoder_create:Ms,___cxa_is_pointer_type:_n,_i64Add:En,_memmove:Tn,_bitshift64Ashr:An,_opus_encoder_destroy:Us,_memset:kn,_malloc:qr,_opus_decoder_destroy:Is,_opus_encoder_create:Cs,_memcpy:Mn,___getTypeName:Fr,_bitshift64Lshr:Sn,_opus_decoder_ctl:Rs,_opus_encoder_ctl:Bs,__GLOBAL__sub_I_opusscript_encoder_cpp:Es,__GLOBAL__sub_I_bind_cpp:jr,runPostSets:yn,stackAlloc:as,stackSave:os,stackRestore:fs,establishStackSpace:hs,setThrew:cs,setTempRet0:ds,getTempRet0:ps,dynCall_iiii:Un,dynCall_viiiii:jn,dynCall_vi:Fn,dynCall_iiiiiii:zn,dynCall_ii:qn,dynCall_viiiiiii:Hn,dynCall_v:Gn,dynCall_iiiii:Vn,dynCall_viiiiii:Wn,dynCall_iiiiii:Kn,dynCall_viiii:Yn}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer),runPostSets=Module.runPostSets=asm.runPostSets,___cxa_can_catch=Module.___cxa_can_catch=asm.___cxa_can_catch,__GLOBAL__sub_I_bind_cpp=Module.__GLOBAL__sub_I_bind_cpp=asm.__GLOBAL__sub_I_bind_cpp,_free=Module._free=asm._free,_opus_strerror=Module._opus_strerror=asm._opus_strerror,_opus_decoder_create=Module._opus_decoder_create=asm._opus_decoder_create,___cxa_is_pointer_type=Module.___cxa_is_pointer_type=asm.___cxa_is_pointer_type,_i64Add=Module._i64Add=asm._i64Add,_memmove=Module._memmove=asm._memmove,_bitshift64Ashr=Module._bitshift64Ashr=asm._bitshift64Ashr,_opus_encoder_destroy=Module._opus_encoder_destroy=asm._opus_encoder_destroy,_memset=Module._memset=asm._memset,_malloc=Module._malloc=asm._malloc,_opus_decoder_destroy=Module._opus_decoder_destroy=asm._opus_decoder_destroy,_opus_encoder_create=Module._opus_encoder_create=asm._opus_encoder_create,_memcpy=Module._memcpy=asm._memcpy,___getTypeName=Module.___getTypeName=asm.___getTypeName,_bitshift64Lshr=Module._bitshift64Lshr=asm._bitshift64Lshr,_opus_encoder_ctl=Module._opus_encoder_ctl=asm._opus_encoder_ctl,_opus_decoder_ctl=Module._opus_decoder_ctl=asm._opus_decoder_ctl,__GLOBAL__sub_I_opusscript_encoder_cpp=Module.__GLOBAL__sub_I_opusscript_encoder_cpp=asm.__GLOBAL__sub_I_opusscript_encoder_cpp,dynCall_iiii=Module.dynCall_iiii=asm.dynCall_iiii,dynCall_viiiii=Module.dynCall_viiiii=asm.dynCall_viiiii,dynCall_vi=Module.dynCall_vi=asm.dynCall_vi,dynCall_iiiiiii=Module.dynCall_iiiiiii=asm.dynCall_iiiiiii,dynCall_ii=Module.dynCall_ii=asm.dynCall_ii,dynCall_viiiiiii=Module.dynCall_viiiiiii=asm.dynCall_viiiiiii,dynCall_v=Module.dynCall_v=asm.dynCall_v,dynCall_iiiii=Module.dynCall_iiiii=asm.dynCall_iiiii,dynCall_viiiiii=Module.dynCall_viiiiii=asm.dynCall_viiiiii,dynCall_iiiiii=Module.dynCall_iiiiii=asm.dynCall_iiiiii,dynCall_viiii=Module.dynCall_viiii=asm.dynCall_viiii;Runtime.stackAlloc=asm.stackAlloc,Runtime.stackSave=asm.stackSave,Runtime.stackRestore=asm.stackRestore,Runtime.establishStackSpace=asm.establishStackSpace,Runtime.setTempRet0=asm.setTempRet0,Runtime.getTempRet0=asm.getTempRet0,ExitStatus.prototype=new Error,ExitStatus.prototype.constructor=ExitStatus;var initialStackTop,preloadStartTime=null,calledMain=!1;dependenciesFulfilled=function e(){Module.calledRun||run(),Module.calledRun||(dependenciesFulfilled=e)},Module.callMain=Module.callMain=function(e){function t(){for(var e=0;e<3;e++)r.push(0)}e=e||[],ensureInitRuntime();var i=e.length+1,r=[allocate(intArrayFromString(Module.thisProgram),"i8",ALLOC_NORMAL)];t();for(var n=0;n0;)Module.preInit.pop()();var shouldRunNow=!0;Module.noInitialRun&&(shouldRunNow=!1),run()}).call(exports,__webpack_require__(8),"node_modules/opusscript/build")},function(e,t,i){"use strict";(function(t){function r(e,t,i){if(!~o.indexOf(e))throw new RangeError(`${e} is an invalid sampling rate.`);this.samplingRate=e,this.channels=t||1,this.application=i||s.AUDIO,this.handler=new n.OpusScriptHandler(this.samplingRate,this.channels,this.application),this.inPCMLength=f*this.channels*2,this.inPCMPointer=n._malloc(this.inPCMLength),this.inPCM=n.HEAPU16.subarray(this.inPCMPointer,this.inPCMPointer+this.inPCMLength),this.inOpusPointer=n._malloc(h),this.inOpus=n.HEAPU8.subarray(this.inOpusPointer,this.inOpusPointer+h),this.outOpusPointer=n._malloc(h),this.outOpus=n.HEAPU8.subarray(this.outOpusPointer,this.outOpusPointer+h),this.outPCMLength=f*this.channels*2,this.outPCMPointer=n._malloc(this.outPCMLength),this.outPCM=n.HEAPU16.subarray(this.outPCMPointer,this.outPCMPointer+this.outPCMLength)}var n=i(205),s={VOIP:2048,AUDIO:2049,RESTRICTED_LOWDELAY:2051},a={0:"OK","-1":"Bad argument","-2":"Buffer too small","-3":"Internal error","-4":"Invalid packet","-5":"Unimplemented","-6":"Invalid state","-7":"Memory allocation fail"},o=[8e3,12e3,16e3,24e3,48e3],f=2880,h=3828,c=4002;r.prototype.setBitrate=function(e){this.bitrate=e||64e3,n.setValue(this.bitratePointer,this.bitrate,"i32");var t=n._opus_encoder_ctl(this.handler,c,this.bitratePointer);if(t<0)throw new Error("Failed to set bitrate: "+a[""+n.getValue(t,"i32")])},r.prototype.encode=function(e,i){this.inPCM.set(e);var r=this.handler._encode(this.inPCM.byteOffset,e.length,this.outOpusPointer,i);if(r<0)throw new Error("Encode error: "+a[""+r]);return new t(this.outOpus.subarray(0,r))},r.prototype.decode=function(e){this.inOpus.set(e);var i=this.handler._decode(this.inOpusPointer,e.length,this.outPCM.byteOffset);if(i<0)throw new Error("Decode error: "+a[""+i]);return new t(this.outPCM.subarray(0,i*this.channels*2))},r.Application=s,r.Error=a,r.VALID_SAMPLING_RATES=o,r.MAX_PACKET_SIZE=h,e.exports=r}).call(t,i(0).Buffer)},function(e,t){"use strict";e.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},function(e,t,i){"use strict";function r(e,t){return e.msg=N[t],t}function n(e){return(e<<1)-(e>4?9:0)}function s(e){for(var t=e.length;--t>=0;)e[t]=0}function a(e){var t=e.state,i=t.pending;i>e.avail_out&&(i=e.avail_out),0!==i&&(I.arraySet(e.output,t.pending_buf,t.pending_out,i,e.next_out),e.next_out+=i,t.pending_out+=i,e.total_out+=i,e.avail_out-=i,t.pending-=i,0===t.pending&&(t.pending_out=0))}function o(e,t){C._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,a(e.strm)}function f(e,t){e.pending_buf[e.pending++]=t}function h(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function c(e,t,i,r){var n=e.avail_in;return n>r&&(n=r),0===n?0:(e.avail_in-=n,I.arraySet(t,e.input,e.next_in,n,i),1===e.state.wrap?e.adler=P(e.adler,t,n,i):2===e.state.wrap&&(e.adler=O(e.adler,t,n,i)),e.next_in+=n,e.total_in+=n,n)}function l(e,t){var i,r,n=e.max_chain_length,s=e.strstart,a=e.prev_length,o=e.nice_match,f=e.strstart>e.w_size-le?e.strstart-(e.w_size-le):0,h=e.window,c=e.w_mask,l=e.prev,u=e.strstart+ce,d=h[s+a-1],p=h[s+a];e.prev_length>=e.good_match&&(n>>=2),o>e.lookahead&&(o=e.lookahead);do if(i=t,h[i+a]===p&&h[i+a-1]===d&&h[i]===h[s]&&h[++i]===h[s+1]){s+=2,i++;do;while(h[++s]===h[++i]&&h[++s]===h[++i]&&h[++s]===h[++i]&&h[++s]===h[++i]&&h[++s]===h[++i]&&h[++s]===h[++i]&&h[++s]===h[++i]&&h[++s]===h[++i]&&sa){if(e.match_start=t,a=r,r>=o)break;d=h[s+a-1],p=h[s+a]}}while((t=l[t&c])>f&&0!==--n);return a<=e.lookahead?a:e.lookahead}function u(e){var t,i,r,n,s,a=e.w_size;do{if(n=e.window_size-e.lookahead-e.strstart,e.strstart>=a+(a-le)){I.arraySet(e.window,e.window,a,a,0),e.match_start-=a,e.strstart-=a,e.block_start-=a,i=e.hash_size,t=i;do r=e.head[--t],e.head[t]=r>=a?r-a:0;while(--i);i=a,t=i;do r=e.prev[--t],e.prev[t]=r>=a?r-a:0;while(--i);n+=a}if(0===e.strm.avail_in)break;if(i=c(e.strm,e.window,e.strstart+e.lookahead,n),e.lookahead+=i,e.lookahead+e.insert>=he)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<e.pending_buf_size-5&&(i=e.pending_buf_size-5);;){if(e.lookahead<=1){if(u(e),0===e.lookahead&&t===D)return _e;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var r=e.block_start+i;if((0===e.strstart||e.strstart>=r)&&(e.lookahead=e.strstart-r,e.strstart=r,o(e,!1),0===e.strm.avail_out))return _e;if(e.strstart-e.block_start>=e.w_size-le&&(o(e,!1),0===e.strm.avail_out))return _e}return e.insert=0,t===U?(o(e,!0),0===e.strm.avail_out?ke:Ee):e.strstart>e.block_start&&(o(e,!1),0===e.strm.avail_out)?_e:_e}function p(e,t){for(var i,r;;){if(e.lookahead=he&&(e.ins_h=(e.ins_h<=he)if(r=C._tr_tally(e,e.strstart-e.match_start,e.match_length-he),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=he){e.match_length--;do e.strstart++,e.ins_h=(e.ins_h<=he&&(e.ins_h=(e.ins_h<4096)&&(e.match_length=he-1)),e.prev_length>=he&&e.match_length<=e.prev_length){n=e.strstart+e.lookahead-he,r=C._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-he),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=n&&(e.ins_h=(e.ins_h<=he&&e.strstart>0&&(n=e.strstart-1,r=a[n],r===a[++n]&&r===a[++n]&&r===a[++n])){s=e.strstart+ce;do;while(r===a[++n]&&r===a[++n]&&r===a[++n]&&r===a[++n]&&r===a[++n]&&r===a[++n]&&r===a[++n]&&r===a[++n]&&ne.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=he?(i=C._tr_tally(e,1,e.match_length-he),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(i=C._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),i&&(o(e,!1),0===e.strm.avail_out))return _e}return e.insert=0,t===U?(o(e,!0),0===e.strm.avail_out?ke:Ee):e.last_lit&&(o(e,!1),0===e.strm.avail_out)?_e:ye}function w(e,t){for(var i;;){if(0===e.lookahead&&(u(e),0===e.lookahead)){if(t===D)return _e;break}if(e.match_length=0,i=C._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,i&&(o(e,!1),0===e.strm.avail_out))return _e}return e.insert=0,t===U?(o(e,!0),0===e.strm.avail_out?ke:Ee):e.last_lit&&(o(e,!1),0===e.strm.avail_out)?_e:ye}function g(e,t,i,r,n){this.good_length=e,this.max_lazy=t,this.nice_length=i,this.max_chain=r,this.func=n}function v(e){e.window_size=2*e.w_size,s(e.head),e.max_lazy_match=R[e.level].max_lazy,e.good_match=R[e.level].good_length,e.nice_match=R[e.level].nice_length,e.max_chain_length=R[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=he-1,e.match_available=0,e.ins_h=0}function _(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=J,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new I.Buf16(2*oe),this.dyn_dtree=new I.Buf16(2*(2*se+1)),this.bl_tree=new I.Buf16(2*(2*ae+1)),s(this.dyn_ltree),s(this.dyn_dtree),s(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new I.Buf16(fe+1),this.heap=new I.Buf16(2*ne+1),s(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new I.Buf16(2*ne+1),s(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function y(e){var t;return e&&e.state?(e.total_in=e.total_out=0,e.data_type=X,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?de:ge,e.adler=2===t.wrap?0:1,t.last_flush=D,C._tr_init(t),F):r(e,q)}function k(e){var t=y(e);return t===F&&v(e.state),t}function E(e,t){return e&&e.state?2!==e.state.wrap?q:(e.state.gzhead=t,F):q}function A(e,t,i,n,s,a){if(!e)return q;var o=1;if(t===V&&(t=6),n<0?(o=0,n=-n):n>15&&(o=2,n-=16),s<1||s>Q||i!==J||n<8||n>15||t<0||t>9||a<0||a>Z)return r(e,q);8===n&&(n=9);var f=new _;return e.state=f,f.strm=e,f.wrap=o,f.gzhead=null,f.w_bits=n,f.w_size=1<j||t<0)return e?r(e,q):q;if(o=e.state,!e.output||!e.input&&0!==e.avail_in||o.status===ve&&t!==U)return r(e,0===e.avail_out?G:q);if(o.strm=e,i=o.last_flush,o.last_flush=t,o.status===de)if(2===o.wrap)e.adler=0,f(o,31),f(o,139),f(o,8),o.gzhead?(f(o,(o.gzhead.text?1:0)+(o.gzhead.hcrc?2:0)+(o.gzhead.extra?4:0)+(o.gzhead.name?8:0)+(o.gzhead.comment?16:0)),f(o,255&o.gzhead.time),f(o,o.gzhead.time>>8&255),f(o,o.gzhead.time>>16&255),f(o,o.gzhead.time>>24&255),f(o,9===o.level?2:o.strategy>=K||o.level<2?4:0),f(o,255&o.gzhead.os),o.gzhead.extra&&o.gzhead.extra.length&&(f(o,255&o.gzhead.extra.length),f(o,o.gzhead.extra.length>>8&255)),o.gzhead.hcrc&&(e.adler=O(e.adler,o.pending_buf,o.pending,0)),o.gzindex=0,o.status=pe):(f(o,0),f(o,0),f(o,0),f(o,0),f(o,0),f(o,9===o.level?2:o.strategy>=K||o.level<2?4:0),f(o,Ae),o.status=ge);else{var u=J+(o.w_bits-8<<4)<<8,d=-1;d=o.strategy>=K||o.level<2?0:o.level<6?1:6===o.level?2:3,u|=d<<6,0!==o.strstart&&(u|=ue),u+=31-u%31,o.status=ge,h(o,u),0!==o.strstart&&(h(o,e.adler>>>16),h(o,65535&e.adler)),e.adler=1}if(o.status===pe)if(o.gzhead.extra){for(c=o.pending;o.gzindex<(65535&o.gzhead.extra.length)&&(o.pending!==o.pending_buf_size||(o.gzhead.hcrc&&o.pending>c&&(e.adler=O(e.adler,o.pending_buf,o.pending-c,c)),a(e),c=o.pending,o.pending!==o.pending_buf_size));)f(o,255&o.gzhead.extra[o.gzindex]),o.gzindex++;o.gzhead.hcrc&&o.pending>c&&(e.adler=O(e.adler,o.pending_buf,o.pending-c,c)),o.gzindex===o.gzhead.extra.length&&(o.gzindex=0,o.status=be)}else o.status=be;if(o.status===be)if(o.gzhead.name){c=o.pending;do{if(o.pending===o.pending_buf_size&&(o.gzhead.hcrc&&o.pending>c&&(e.adler=O(e.adler,o.pending_buf,o.pending-c,c)),a(e),c=o.pending,o.pending===o.pending_buf_size)){l=1;break}l=o.gzindexc&&(e.adler=O(e.adler,o.pending_buf,o.pending-c,c)),0===l&&(o.gzindex=0,o.status=me)}else o.status=me;if(o.status===me)if(o.gzhead.comment){c=o.pending;do{if(o.pending===o.pending_buf_size&&(o.gzhead.hcrc&&o.pending>c&&(e.adler=O(e.adler,o.pending_buf,o.pending-c,c)),a(e),c=o.pending,o.pending===o.pending_buf_size)){l=1;break}l=o.gzindexc&&(e.adler=O(e.adler,o.pending_buf,o.pending-c,c)),0===l&&(o.status=we)}else o.status=we;if(o.status===we&&(o.gzhead.hcrc?(o.pending+2>o.pending_buf_size&&a(e),o.pending+2<=o.pending_buf_size&&(f(o,255&e.adler),f(o,e.adler>>8&255),e.adler=0,o.status=ge)):o.status=ge),0!==o.pending){if(a(e),0===e.avail_out)return o.last_flush=-1,F}else if(0===e.avail_in&&n(t)<=n(i)&&t!==U)return r(e,G);if(o.status===ve&&0!==e.avail_in)return r(e,G);if(0!==e.avail_in||0!==o.lookahead||t!==D&&o.status!==ve){var p=o.strategy===K?w(o,t):o.strategy===Y?m(o,t):R[o.level].func(o,t);if(p!==ke&&p!==Ee||(o.status=ve),p===_e||p===ke)return 0===e.avail_out&&(o.last_flush=-1),F;if(p===ye&&(t===L?C._tr_align(o):t!==j&&(C._tr_stored_block(o,0,0,!1),t===B&&(s(o.head),0===o.lookahead&&(o.strstart=0,o.block_start=0,o.insert=0))),a(e),0===e.avail_out))return o.last_flush=-1,F}return t!==U?F:o.wrap<=0?z:(2===o.wrap?(f(o,255&e.adler),f(o,e.adler>>8&255),f(o,e.adler>>16&255),f(o,e.adler>>24&255),f(o,255&e.total_in),f(o,e.total_in>>8&255),f(o,e.total_in>>16&255),f(o,e.total_in>>24&255)):(h(o,e.adler>>>16),h(o,65535&e.adler)),a(e),o.wrap>0&&(o.wrap=-o.wrap),0!==o.pending?F:z)}function T(e){var t;return e&&e.state?(t=e.state.status,t!==de&&t!==pe&&t!==be&&t!==me&&t!==we&&t!==ge&&t!==ve?r(e,q):(e.state=null,t===ge?r(e,H):F)):q}function x(e,t){var i,r,n,a,o,f,h,c,l=t.length;if(!e||!e.state)return q;if(i=e.state,a=i.wrap,2===a||1===a&&i.status!==de||i.lookahead)return q;for(1===a&&(e.adler=P(e.adler,t,l,0)),i.wrap=0,l>=i.w_size&&(0===a&&(s(i.head),i.strstart=0,i.block_start=0,i.insert=0),c=new I.Buf8(i.w_size),I.arraySet(c,t,l-i.w_size,i.w_size,0),t=c,l=i.w_size),o=e.avail_in,f=e.next_in,h=e.input,e.avail_in=l,e.next_in=0,e.input=t,u(i);i.lookahead>=he;){r=i.strstart,n=i.lookahead-(he-1);do i.ins_h=(i.ins_h<>>24,b>>>=k,m-=k,k=y>>>16&255,0===k)x[o++]=65535&y;else{if(!(16&k)){if(0===(64&k)){y=w[(65535&y)+(b&(1<>>=k,m-=k),m<15&&(b+=T[s++]<>>24,b>>>=k,m-=k,k=y>>>16&255,!(16&k)){if(0===(64&k)){y=g[(65535&y)+(b&(1<c){e.msg="invalid distance too far back",n.mode=i;break e}if(b>>>=k,m-=k,k=o-f,A>k){if(k=A-k,k>u&&n.sane){e.msg="invalid distance too far back",n.mode=i;break e}if(S=0,M=p,0===d){if(S+=l-k,k2;)x[o++]=M[S++],x[o++]=M[S++],x[o++]=M[S++],E-=3;E&&(x[o++]=M[S++],E>1&&(x[o++]=M[S++]))}else{S=o-A;do x[o++]=x[S++],x[o++]=x[S++],x[o++]=x[S++],E-=3;while(E>2);E&&(x[o++]=x[S++],E>1&&(x[o++]=x[S++]))}break}}break}}while(s>3,s-=E,m-=E<<3,b&=(1<>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function n(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new g.Buf16(320),this.work=new g.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function s(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=B,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new g.Buf32(be),t.distcode=t.distdyn=new g.Buf32(me),t.sane=1,t.back=-1,R):P}function a(e){var t;return e&&e.state?(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,s(e)):P}function o(e,t){var i,r;return e&&e.state?(r=e.state,t<0?(i=0,t=-t):(i=(t>>4)+1,t<48&&(t&=15)),t&&(t<8||t>15)?P:(null!==r.window&&r.wbits!==t&&(r.window=null),r.wrap=i,r.wbits=t,a(e))):P}function f(e,t){var i,r;return e?(r=new n,e.state=r,r.window=null,i=o(e,t),i!==R&&(e.state=null),i):P}function h(e){return f(e,ge)}function c(e){if(ve){var t;for(m=new g.Buf32(512),w=new g.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(k(A,e.lens,0,288,m,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;k(S,e.lens,0,32,w,0,e.work,{bits:5}),ve=!1}e.lencode=m,e.lenbits=9,e.distcode=w,e.distbits=5}function l(e,t,i,r){var n,s=e.state;return null===s.window&&(s.wsize=1<=s.wsize?(g.arraySet(s.window,t,i-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(n=s.wsize-s.wnext,n>r&&(n=r),g.arraySet(s.window,t,i-r,n,s.wnext),r-=n,r?(g.arraySet(s.window,t,i-r,r,0),s.wnext=r,s.whave=s.wsize):(s.wnext+=n,s.wnext===s.wsize&&(s.wnext=0),s.whave>>8&255,i.check=_(i.check,Te,2,0),u=0,d=0,i.mode=U;break}if(i.flags=0,i.head&&(i.head.done=!1),!(1&i.wrap)||(((255&u)<<8)+(u>>8))%31){e.msg="incorrect header check",i.mode=ue;break}if((15&u)!==L){e.msg="unknown compression method",i.mode=ue;break}if(u>>>=4,d-=4,ke=(15&u)+8,0===i.wbits)i.wbits=ke;else if(ke>i.wbits){e.msg="invalid window size",i.mode=ue;break}i.dmax=1<>8&1),512&i.flags&&(Te[0]=255&u,Te[1]=u>>>8&255,i.check=_(i.check,Te,2,0)),u=0,d=0,i.mode=j;case j:for(;d<32;){if(0===f)break e;f--,u+=n[a++]<>>8&255,Te[2]=u>>>16&255,Te[3]=u>>>24&255,i.check=_(i.check,Te,4,0)),u=0,d=0,i.mode=F;case F:for(;d<16;){if(0===f)break e;f--,u+=n[a++]<>8),512&i.flags&&(Te[0]=255&u,Te[1]=u>>>8&255,i.check=_(i.check,Te,2,0)),u=0,d=0,i.mode=z;case z:if(1024&i.flags){for(;d<16;){if(0===f)break e;f--,u+=n[a++]<>>8&255,i.check=_(i.check,Te,2,0)),u=0,d=0}else i.head&&(i.head.extra=null);i.mode=q;case q:if(1024&i.flags&&(m=i.length,m>f&&(m=f),m&&(i.head&&(ke=i.head.extra_len-i.length,i.head.extra||(i.head.extra=new Array(i.head.extra_len)),g.arraySet(i.head.extra,n,a,m,ke)),512&i.flags&&(i.check=_(i.check,n,m,a)),f-=m,a+=m,i.length-=m),i.length))break e;i.length=0,i.mode=H;case H:if(2048&i.flags){if(0===f)break e;m=0;do ke=n[a+m++],i.head&&ke&&i.length<65536&&(i.head.name+=String.fromCharCode(ke));while(ke&&m>9&1,i.head.done=!0),e.adler=i.check=0,i.mode=Y;break;case W:for(;d<32;){if(0===f)break e;f--,u+=n[a++]<>>=7&d,d-=7&d,i.mode=he;break}for(;d<3;){if(0===f)break e;f--,u+=n[a++]<>>=1,d-=1,3&u){case 0:i.mode=$;break;case 1:if(c(i),i.mode=ie,t===x){u>>>=2,d-=2;break e}break;case 2:i.mode=Q;break;case 3:e.msg="invalid block type",i.mode=ue}u>>>=2,d-=2;break;case $:for(u>>>=7&d,d-=7&d;d<32;){if(0===f)break e;f--,u+=n[a++]<>>16^65535)){e.msg="invalid stored block lengths",i.mode=ue;break}if(i.length=65535&u,u=0,d=0,i.mode=X,t===x)break e;case X:i.mode=J;case J:if(m=i.length){if(m>f&&(m=f),m>h&&(m=h),0===m)break e;g.arraySet(s,n,a,m,o),f-=m,a+=m,h-=m,o+=m,i.length-=m;break}i.mode=Y;break;case Q:for(;d<14;){if(0===f)break e;f--,u+=n[a++]<>>=5,d-=5,i.ndist=(31&u)+1,u>>>=5,d-=5,i.ncode=(15&u)+4,u>>>=4,d-=4,i.nlen>286||i.ndist>30){e.msg="too many length or distance symbols",i.mode=ue;break}i.have=0,i.mode=ee;case ee:for(;i.have>>=3,d-=3}for(;i.have<19;)i.lens[xe[i.have++]]=0;if(i.lencode=i.lendyn,i.lenbits=7,Ae={bits:i.lenbits},Ee=k(E,i.lens,0,19,i.lencode,0,i.work,Ae),i.lenbits=Ae.bits,Ee){e.msg="invalid code lengths set",i.mode=ue;break}i.have=0,i.mode=te;case te:for(;i.have>>24,we=Me>>>16&255,ge=65535&Me,!(me<=d);){if(0===f)break e;f--,u+=n[a++]<>>=me,d-=me,i.lens[i.have++]=ge;else{if(16===ge){for(Se=me+2;d>>=me,d-=me,0===i.have){e.msg="invalid bit length repeat",i.mode=ue;break}ke=i.lens[i.have-1],m=3+(3&u),u>>>=2,d-=2}else if(17===ge){for(Se=me+3;d>>=me,d-=me,ke=0,m=3+(7&u),u>>>=3,d-=3}else{for(Se=me+7;d>>=me,d-=me,ke=0,m=11+(127&u),u>>>=7,d-=7}if(i.have+m>i.nlen+i.ndist){e.msg="invalid bit length repeat",i.mode=ue;break}for(;m--;)i.lens[i.have++]=ke}}if(i.mode===ue)break;if(0===i.lens[256]){e.msg="invalid code -- missing end-of-block",i.mode=ue;break}if(i.lenbits=9,Ae={bits:i.lenbits},Ee=k(A,i.lens,0,i.nlen,i.lencode,0,i.work,Ae),i.lenbits=Ae.bits,Ee){e.msg="invalid literal/lengths set",i.mode=ue;break}if(i.distbits=6,i.distcode=i.distdyn,Ae={bits:i.distbits},Ee=k(S,i.lens,i.nlen,i.ndist,i.distcode,0,i.work,Ae),i.distbits=Ae.bits,Ee){e.msg="invalid distances set",i.mode=ue;break}if(i.mode=ie,t===x)break e;case ie:i.mode=re;case re:if(f>=6&&h>=258){e.next_out=o,e.avail_out=h,e.next_in=a,e.avail_in=f,i.hold=u,i.bits=d,y(e,b),o=e.next_out,s=e.output,h=e.avail_out,a=e.next_in,n=e.input,f=e.avail_in,u=i.hold,d=i.bits,i.mode===Y&&(i.back=-1);break}for(i.back=0;Me=i.lencode[u&(1<>>24,we=Me>>>16&255,ge=65535&Me,!(me<=d);){if(0===f)break e;f--,u+=n[a++]<>ve)],me=Me>>>24,we=Me>>>16&255,ge=65535&Me,!(ve+me<=d);){if(0===f)break e;f--,u+=n[a++]<>>=ve,d-=ve,i.back+=ve}if(u>>>=me,d-=me,i.back+=me,i.length=ge,0===we){i.mode=fe;break}if(32&we){i.back=-1,i.mode=Y;break}if(64&we){e.msg="invalid literal/length code",i.mode=ue;break}i.extra=15&we,i.mode=ne;case ne:if(i.extra){for(Se=i.extra;d>>=i.extra,d-=i.extra,i.back+=i.extra}i.was=i.length,i.mode=se;case se:for(;Me=i.distcode[u&(1<>>24,we=Me>>>16&255,ge=65535&Me,!(me<=d);){if(0===f)break e;f--,u+=n[a++]<>ve)],me=Me>>>24,we=Me>>>16&255,ge=65535&Me,!(ve+me<=d);){if(0===f)break e;f--,u+=n[a++]<>>=ve,d-=ve,i.back+=ve}if(u>>>=me,d-=me,i.back+=me,64&we){e.msg="invalid distance code",i.mode=ue;break}i.offset=ge,i.extra=15&we,i.mode=ae;case ae:if(i.extra){for(Se=i.extra;d>>=i.extra,d-=i.extra,i.back+=i.extra}if(i.offset>i.dmax){e.msg="invalid distance too far back",i.mode=ue;break}i.mode=oe;case oe:if(0===h)break e;if(m=b-h,i.offset>m){if(m=i.offset-m,m>i.whave&&i.sane){e.msg="invalid distance too far back",i.mode=ue;break}m>i.wnext?(m-=i.wnext,w=i.wsize-m):w=i.wnext-m,m>i.length&&(m=i.length),be=i.window}else be=s,w=o-i.offset,m=i.length;m>h&&(m=h),h-=m,i.length-=m;do s[o++]=be[w++];while(--m);0===i.length&&(i.mode=re);break;case fe:if(0===h)break e;s[o++]=i.length,h--,i.mode=re;break;case he:if(i.wrap){for(;d<32;){if(0===f)break e;f--,u|=n[a++]<=1&&0===z[P];P--);if(O>P&&(O=P),0===P)return b[m++]=20971520,b[m++]=20971520,g.bits=1,0;for(C=1;C0&&(e===o||1!==P))return-1;for(q[1]=0,R=1;Rs||e===h&&B>a)return 1;for(var V=0;;){V++,S=R-D,w[I]A?(M=H[G+w[I]],T=j[F+w[I]]):(M=96,T=0),v=1<>D)+_]=S<<24|M<<16|T|0;while(0!==_);for(v=1<>=1;if(0!==v?(U&=v-1,U+=v):U=0,I++,0===--z[R]){if(R===P)break;R=t[i+w[I]]}if(R>O&&(U&k)!==y){for(0===D&&(D=O),E+=C,N=R-D,L=1<s||e===h&&B>a)return 1;y=U&k,b[y]=O<<24|N<<16|E-m|0}}return 0!==U&&(b[E+U]=R-D<<24|64<<16|0),g.bits=O,0}},function(e,t,i){"use strict";function r(e){for(var t=e.length;--t>=0;)e[t]=0}function n(e,t,i,r,n){this.static_tree=e,this.extra_bits=t,this.extra_base=i,this.elems=r,this.max_length=n,this.has_stree=e&&e.length}function s(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function a(e){return e<256?fe[e]:fe[256+(e>>>7)]}function o(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function f(e,t,i){e.bi_valid>Z-i?(e.bi_buf|=t<>Z-e.bi_valid,e.bi_valid+=i-Z):(e.bi_buf|=t<>>=1,i<<=1;while(--t>0);return i>>>1}function l(e){16===e.bi_valid?(o(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}function u(e,t){var i,r,n,s,a,o,f=t.dyn_tree,h=t.max_code,c=t.stat_desc.static_tree,l=t.stat_desc.has_stree,u=t.stat_desc.extra_bits,d=t.stat_desc.extra_base,p=t.stat_desc.max_length,b=0;for(s=0;s<=Y;s++)e.bl_count[s]=0;for(f[2*e.heap[e.heap_max]+1]=0,i=e.heap_max+1;ip&&(s=p,b++),f[2*r+1]=s,r>h||(e.bl_count[s]++,a=0,r>=d&&(a=u[r-d]),o=f[2*r],e.opt_len+=o*(s+a),l&&(e.static_len+=o*(c[2*r+1]+a)));if(0!==b){do{for(s=p-1;0===e.bl_count[s];)s--;e.bl_count[s]--,e.bl_count[s+1]+=2,e.bl_count[p]--,b-=2}while(b>0);for(s=p;0!==s;s--)for(r=e.bl_count[s];0!==r;)n=e.heap[--i],n>h||(f[2*n+1]!==s&&(e.opt_len+=(s-f[2*n+1])*f[2*n],f[2*n+1]=s),r--)}}function d(e,t,i){var r,n,s=new Array(Y+1),a=0;for(r=1;r<=Y;r++)s[r]=a=a+i[r-1]<<1;for(n=0;n<=t;n++){var o=e[2*n+1];0!==o&&(e[2*n]=c(s[o]++,o))}}function p(){var e,t,i,r,s,a=new Array(Y+1);for(i=0,r=0;r>=7;r8?o(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function w(e,t,i,r){m(e),r&&(o(e,i),o(e,~i)),P.arraySet(e.pending_buf,e.window,t,i,e.pending),e.pending+=i}function g(e,t,i,r){var n=2*t,s=2*i;return e[n]>1;i>=1;i--)v(e,s,i);n=f;do i=e.heap[1],e.heap[1]=e.heap[e.heap_len--],v(e,s,1),r=e.heap[1],e.heap[--e.heap_max]=i,e.heap[--e.heap_max]=r,s[2*n]=s[2*i]+s[2*r],e.depth[n]=(e.depth[i]>=e.depth[r]?e.depth[i]:e.depth[r])+1,s[2*i+1]=s[2*r+1]=n,e.heap[1]=n++,v(e,s,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],u(e,t),d(s,h,e.bl_count)}function k(e,t,i){var r,n,s=-1,a=t[1],o=0,f=7,h=4;for(0===a&&(f=138,h=3),t[2*(i+1)+1]=65535,r=0;r<=i;r++)n=a,a=t[2*(r+1)+1],++o=3&&0===e.bl_tree[2*ne[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}function S(e,t,i,r){var n;for(f(e,t-257,5),f(e,i-1,5),f(e,r-4,4),n=0;n>>=1)if(1&i&&0!==e.dyn_ltree[2*t])return N;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return D;for(t=32;t0?(e.strm.data_type===L&&(e.strm.data_type=M(e)),y(e,e.l_desc),y(e,e.d_desc),a=A(e),n=e.opt_len+3+7>>>3,s=e.static_len+3+7>>>3,s<=n&&(n=s)):n=s=i+5,i+4<=n&&t!==-1?x(e,t,i,r):e.strategy===O||s===n?(f(e,(U<<1)+(r?1:0),3),_(e,ae,oe)):(f(e,(j<<1)+(r?1:0),3),S(e,e.l_desc.max_code+1,e.d_desc.max_code+1,a+1),_(e,e.dyn_ltree,e.dyn_dtree)),b(e),r&&m(e)}function C(e,t,i){return e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&i,e.last_lit++,0===t?e.dyn_ltree[2*i]++:(e.matches++,t--,e.dyn_ltree[2*(he[i]+H+1)]++,e.dyn_dtree[2*a(t)]++),e.last_lit===e.lit_bufsize-1}var P=i(42),O=4,N=0,D=1,L=2,B=0,U=1,j=2,F=3,z=258,q=29,H=256,G=H+1+q,V=30,W=19,K=2*G+1,Y=15,Z=16,$=7,X=256,J=16,Q=17,ee=18,te=[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],ie=[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],re=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],ne=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],se=512,ae=new Array(2*(G+2));r(ae);var oe=new Array(2*V);r(oe);var fe=new Array(se);r(fe);var he=new Array(z-F+1);r(he);var ce=new Array(q);r(ce);var le=new Array(V);r(le);var ue,de,pe,be=!1;t._tr_init=T,t._tr_stored_block=x,t._tr_flush_block=I,t._tr_tally=C,t._tr_align=R},function(e,t){"use strict";function i(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}e.exports=i},function(e,t,i){var r=i(36),n=r.define("RSAPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("modulus").int(),this.key("publicExponent").int(),this.key("privateExponent").int(),this.key("prime1").int(),this.key("prime2").int(),this.key("exponent1").int(),this.key("exponent2").int(),this.key("coefficient").int())});t.RSAPrivateKey=n;var s=r.define("RSAPublicKey",function(){this.seq().obj(this.key("modulus").int(),this.key("publicExponent").int())});t.RSAPublicKey=s;var a=r.define("SubjectPublicKeyInfo",function(){this.seq().obj(this.key("algorithm").use(o),this.key("subjectPublicKey").bitstr())});t.PublicKey=a;var o=r.define("AlgorithmIdentifier",function(){this.seq().obj(this.key("algorithm").objid(),this.key("none").null_().optional(),this.key("curve").objid().optional(),this.key("params").seq().obj(this.key("p").int(),this.key("q").int(),this.key("g").int()).optional())}),f=r.define("PrivateKeyInfo",function(){this.seq().obj(this.key("version").int(),this.key("algorithm").use(o),this.key("subjectPrivateKey").octstr())});t.PrivateKey=f;var h=r.define("EncryptedPrivateKeyInfo",function(){this.seq().obj(this.key("algorithm").seq().obj(this.key("id").objid(),this.key("decrypt").seq().obj(this.key("kde").seq().obj(this.key("id").objid(),this.key("kdeparams").seq().obj(this.key("salt").octstr(),this.key("iters").int())),this.key("cipher").seq().obj(this.key("algo").objid(),this.key("iv").octstr()))),this.key("subjectPrivateKey").octstr())});t.EncryptedPrivateKey=h;var c=r.define("DSAPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("p").int(),this.key("q").int(),this.key("g").int(),this.key("pub_key").int(),this.key("priv_key").int())});t.DSAPrivateKey=c,t.DSAparam=r.define("DSAparam",function(){this.int()});var l=r.define("ECPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("privateKey").octstr(),this.key("parameters").optional().explicit(0).use(u),this.key("publicKey").optional().explicit(1).bitstr())});t.ECPrivateKey=l;var u=r.define("ECParameters",function(){this.choice({namedCurve:this.objid()})});t.signature=r.define("signature",function(){this.seq().obj(this.key("r").int(),this.key("s").int())})},function(e,t,i){(function(t){var r=/Proc-Type: 4,ENCRYPTED\r?\nDEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)\r?\n\r?\n([0-9A-z\n\r\+\/\=]+)\r?\n/m,n=/^-----BEGIN (.*) KEY-----\r?\n/m,s=/^-----BEGIN (.*) KEY-----\r?\n([0-9A-z\n\r\+\/\=]+)\r?\n-----END \1 KEY-----$/m,a=i(41),o=i(50);e.exports=function(e,i){var f,h=e.toString(),c=h.match(r);if(c){var l="aes"+c[1],u=new t(c[2],"hex"),d=new t(c[3].replace(/\r?\n/g,""),"base64"),p=a(i,u.slice(0,8),parseInt(c[1],10)).key,b=[],m=o.createDecipheriv(l,p,u);b.push(m.update(d)),b.push(m.final()),f=t.concat(b)}else{var w=h.match(s);f=new t(w[2].replace(/\r?\n/g,""),"base64")}var g=h.match(n)[1]+" KEY";return{tag:g,data:f}}}).call(t,i(0).Buffer)},function(e,t){var i=Math.pow(2,30)-1;e.exports=function(e,t){if("number"!=typeof e)throw new TypeError("Iterations not a number");if(e<0)throw new TypeError("Bad iterations");if("number"!=typeof t)throw new TypeError("Key length not a number");if(t<0||t>i||t!==t)throw new TypeError("Bad key length")}},function(e,t,i){t.publicEncrypt=i(219),t.privateDecrypt=i(218),t.privateEncrypt=function(e,i){return t.publicEncrypt(e,i,!0)},t.publicDecrypt=function(e,i){return t.privateDecrypt(e,i,!0)}},function(e,t,i){(function(t){function r(e,i){var r=(e.modulus,e.modulus.byteLength()),n=(i.length,l("sha1").update(new t("")).digest()),a=n.length;if(0!==i[0])throw new Error("decryption error");var h=i.slice(1,a+1),c=i.slice(a+1),u=f(h,o(c,a)),d=f(c,o(u,r-a-1));if(s(n,d.slice(0,a)))throw new Error("decryption error");for(var p=a;0===d[p];)p++;if(1!==d[p++])throw new Error("decryption error");return d.slice(p)}function n(e,t,i){for(var r=t.slice(0,2),n=2,s=0;0!==t[n++];)if(n>=t.length){s++;break}var a=t.slice(2,n-1);t.slice(n-1,n);if(("0002"!==r.toString("hex")&&!i||"0001"!==r.toString("hex")&&i)&&s++,a.length<8&&s++,s)throw new Error("decryption error");return t.slice(n)}function s(e,i){e=new t(e),i=new t(i);var r=0,n=e.length;e.length!==i.length&&(r++,n=Math.min(e.length,i.length));for(var s=-1;++sl||new h(i).cmp(f.modulus)>=0)throw new Error("decryption error");var d;d=s?u(new h(i),f):c(i,f);var p=new t(l-d.length);if(p.fill(0),d=t.concat([p,d],l),4===o)return r(f,d);if(1===o)return n(f,d,s);if(3===o)return d;throw new Error("unknown padding")}}).call(t,i(0).Buffer)},function(e,t,i){(function(t){function r(e,i){var r=e.modulus.byteLength(),n=i.length,s=f("sha1").update(new t("")).digest(),a=s.length,u=2*a;if(n>r-u-2)throw new Error("message too long");var d=new t(r-n-u-2);d.fill(0);var p=r-a-1,b=o(a),m=c(t.concat([s,d,new t([1]),i],p),h(b,p)),w=c(b,h(m,a));return new l(t.concat([new t([0]),w,m],r))}function n(e,i,r){var n=i.length,a=e.modulus.byteLength();if(n>a-11)throw new Error("message too long");var o;return r?(o=new t(a-n-3),o.fill(255)):o=s(a-n-3),new l(t.concat([new t([0,r?1:2]),o,new t([0]),i],a))}function s(e,i){for(var r,n=new t(e),s=0,a=o(2*e),f=0;s=0)throw new Error("data too long for modulus")}return i?d(o,f):u(o,f)}}).call(t,i(0).Buffer)},function(e,t,i){(function(e,r){var n;!function(s){function a(e){throw new RangeError(P[e])}function o(e,t){for(var i=e.length,r=[];i--;)r[i]=t(e[i]);return r}function f(e,t){var i=e.split("@"),r="";i.length>1&&(r=i[0]+"@",e=i[1]),e=e.replace(C,".");var n=e.split("."),s=o(n,t).join(".");return r+s}function h(e){for(var t,i,r=[],n=0,s=e.length;n=55296&&t<=56319&&n65535&&(e-=65536,t+=D(e>>>10&1023|55296),e=56320|1023&e),t+=D(e)}).join("")}function l(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:y}function u(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function d(e,t,i){var r=0;for(e=i?N(e/S):e>>1,e+=N(e/t);e>O*E>>1;r+=y)e=N(e/O);return N(r+(O+1)*e/(e+A))}function p(e){var t,i,r,n,s,o,f,h,u,p,b=[],m=e.length,w=0,g=T,v=M;for(i=e.lastIndexOf(x),i<0&&(i=0),r=0;r=128&&a("not-basic"),b.push(e.charCodeAt(r));for(n=i>0?i+1:0;n=m&&a("invalid-input"),h=l(e.charCodeAt(n++)),(h>=y||h>N((_-w)/o))&&a("overflow"),w+=h*o,u=f<=v?k:f>=v+E?E:f-v,!(hN(_/p)&&a("overflow"),o*=p;t=b.length+1,v=d(w-s,t,0==s),N(w/t)>_-g&&a("overflow"),g+=N(w/t),w%=t,b.splice(w++,0,g)}return c(b)}function b(e){var t,i,r,n,s,o,f,c,l,p,b,m,w,g,v,A=[];for(e=h(e),m=e.length,t=T,i=0,s=M,o=0;o=t&&bN((_-i)/w)&&a("overflow"),i+=(f-t)*w,t=f,o=0;o_&&a("overflow"),b==t){for(c=i,l=y;p=l<=s?k:l>=s+E?E:l-s,!(c= 0x80 (not a basic code point)","invalid-input":"Invalid input"},O=y-k,N=Math.floor,D=String.fromCharCode;v={version:"1.4.1",ucs2:{decode:h,encode:c},decode:p,encode:b,toASCII:w,toUnicode:m},n=function(){return v}.call(t,i,t,e),!(void 0!==n&&(e.exports=n))}(this)}).call(t,i(121)(e),i(19))},function(e,t){"use strict";function i(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,t,n,s){t=t||"&",n=n||"=";var a={};if("string"!=typeof e||0===e.length)return a;var o=/\+/g;e=e.split(t);var f=1e3;s&&"number"==typeof s.maxKeys&&(f=s.maxKeys);var h=e.length;f>0&&h>f&&(h=f);for(var c=0;c=0?(l=b.substr(0,m),u=b.substr(m+1)):(l=b,u=""),d=decodeURIComponent(l),p=decodeURIComponent(u),i(a,d)?r(a[d])?a[d].push(p):a[d]=[a[d],p]:a[d]=p}return a};var r=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},function(e,t){"use strict";function i(e,t){if(e.map)return e.map(t);for(var i=[],r=0;r0?this.tail.next=t:this.head=t,this.tail=t,++this.length},r.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},r.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},r.prototype.clear=function(){this.head=this.tail=null,this.length=0},r.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,i=""+t.data;t=t.next;)i+=e+t.data;return i},r.prototype.concat=function(e){if(0===this.length)return n.alloc(0);if(1===this.length)return this.head.data;for(var t=n.allocUnsafe(e>>>0),i=this.head,r=0;i;)i.data.copy(t,r),r+=i.data.length,i=i.next;return t}},function(e,t,i){e.exports=i(116)},function(e,t,i){(function(r){var n=function(){try{return i(11)}catch(e){}}();t=e.exports=i(117),t.Stream=n||t,t.Readable=t,t.Writable=i(58),t.Duplex=i(18),t.Transform=i(57),t.PassThrough=i(116),!r.browser&&"disable"===r.env.READABLE_STREAM&&n&&(e.exports=n)}).call(t,i(8))},function(e,t,i){e.exports=i(58)},function(e,t,i){function r(e){if(e)return n(e)}function n(e){for(var t in r.prototype)e[t]=r.prototype[t];return e}var s=i(119);e.exports=r,r.prototype.clearTimeout=function(){return this._timeout=0,clearTimeout(this._timer),this},r.prototype.parse=function(e){return this._parser=e,this},r.prototype.serialize=function(e){return this._serializer=e,this},r.prototype.timeout=function(e){return this._timeout=e,this},r.prototype.then=function(e,t){if(!this._fullfilledPromise){var i=this;this._fullfilledPromise=new Promise(function(e,t){i.end(function(i,r){i?t(i):e(r)})})}return this._fullfilledPromise.then(e,t)},r.prototype.catch=function(e){return this.then(void 0,e)},r.prototype.use=function(e){return e(this),this},r.prototype.get=function(e){return this._header[e.toLowerCase()]},r.prototype.getHeader=r.prototype.get,r.prototype.set=function(e,t){if(s(e)){for(var i in e)this.set(i,e[i]);return this}return this._header[e.toLowerCase()]=t,this.header[e]=t,this},r.prototype.unset=function(e){return delete this._header[e.toLowerCase()],delete this.header[e],this},r.prototype.field=function(e,t){if(null===e||void 0===e)throw new Error(".field(name, val) name can not be empty");if(s(e)){for(var i in e)this.field(i,e[i]);return this}if(null===t||void 0===t)throw new Error(".field(name, val) val can not be empty");return this._getFormData().append(e,t),this},r.prototype.abort=function(){return this._aborted?this:(this._aborted=!0,this.xhr&&this.xhr.abort(),this.req&&this.req.abort(),this.clearTimeout(),this.emit("abort"),this)},r.prototype.withCredentials=function(){return this._withCredentials=!0,this},r.prototype.redirects=function(e){return this._maxRedirects=e,this},r.prototype.toJSON=function(){return{method:this.method,url:this.url,data:this._data,headers:this._header}},r.prototype.send=function(e){var t=s(e),i=this._header["content-type"];if(t&&!this._data)Array.isArray(e)?this._data=[]:this._isHost(e)||(this._data={});else if(e&&this._data&&this._isHost(this._data))throw Error("Can't merge these send calls");if(t&&s(this._data))for(var r in e)this._data[r]=e[r];else"string"==typeof e?(i||this.type("form"),i=this._header["content-type"],"application/x-www-form-urlencoded"==i?this._data=this._data?this._data+"&"+e:e:this._data=(this._data||"")+e):this._data=e;return!t||this._isHost(e)?this:(i||this.type("json"),this)}},function(e,t){function i(e,t,i){return"function"==typeof i?new e("GET",t).end(i):2==arguments.length?new e("GET",t):new e(t,i)}e.exports=i},function(e,t){"use strict";function i(e){return this instanceof i?(this.id=n++,void(this.ee=e)):new i(e)}var r=Object.prototype.hasOwnProperty,n=0;i.prototype.on=function(e,t,i){return t.__ultron=this.id,this.ee.on(e,t,i),this},i.prototype.once=function(e,t,i){return t.__ultron=this.id,this.ee.once(e,t,i),this},i.prototype.remove=function(){var e,t=arguments;if(1===t.length&&"string"==typeof t[0])t=t[0].split(/[, ]+/);else if(!t.length){t=[];for(e in this.ee._events)r.call(this.ee._events,e)&&t.push(e)}for(var i=0;i * MIT Licensed */ -e.exports.Validation={isValidUTF8:function(e){return!0}}},function(e,t,i){"use strict";try{e.exports=i(85)("validation")}catch(t){e.exports=i(230)}},function(e,t,i){(function(t){function i(e,t){function i(){if(!n){if(r("throwDeprecation"))throw new Error(t);r("traceDeprecation")?console.trace(t):console.warn(t),n=!0}return e.apply(this,arguments)}if(r("noDeprecation"))return e;var n=!1;return i}function r(e){try{if(!t.localStorage)return!1}catch(e){return!1}var i=t.localStorage[e];return null!=i&&"true"===String(i).toLowerCase()}e.exports=i}).call(t,i(16))},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var i=function(){};i.prototype=t.prototype,e.prototype=new i,e.prototype.constructor=e}},function(e,t){e.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},function(module,exports,__webpack_require__){function Context(){}var indexOf=__webpack_require__(199),Object_keys=function(e){if(Object.keys)return Object.keys(e);var t=[];for(var i in e)t.push(i);return t},forEach=function(e,t){if(e.forEach)return e.forEach(t);for(var i=0;i * MIT Licensed */ -i(8);r.prototype.get=function(e){if(null==this._buffer||this._offset+e>this._buffer.length){var i=new t(this._growStrategy(e));this._buffer=i,this._offset=0}this._used+=e;var r=this._buffer.slice(this._offset,this._offset+e);return this._offset+=e,r},r.prototype.reset=function(e){var i=this._shrinkStrategy();ithis._buffer.length){var i=new t(this._growStrategy(e));this._buffer=i,this._offset=0}this._used+=e;var r=this._buffer.slice(this._offset,this._offset+e);return this._offset+=e,r},r.prototype.reset=function(e){var i=this._shrinkStrategy();i * MIT Licensed @@ -114,12 +112,12 @@ t.BufferUtil={merge:function(e,t){for(var i=0,r=0,n=t.length;r * MIT Licensed */ -var s=(i(8),0),a=1,o=2,f=3;e.exports=r,r.prototype.add=function(e){function t(){if(i.state===s){if(2==e.length&&255==e[0]&&0==e[1])return i.reset(),void i.onclose();if(128===e[0])i.messageEnd=0,i.state=o,e=e.slice(1);else{if(0!==e[0])return void i.error("payload must start with 0x00 byte",!0);e=e.slice(1),i.state=a}}if(i.state===o){for(var t=0;t0&&(e=e.slice(t))}if(i.state===f){var r=i.messageEnd-i.spanLength;return e.length>=r?(i.buffers.push(e),i.spanLength+=r,i.messageEnd=r,i.parse()):(i.buffers.push(e),void(i.spanLength+=e.length))}return i.buffers.push(e),(i.messageEnd=n(e,255))!=-1?(i.spanLength+=i.messageEnd,i.parse()):void(i.spanLength+=e.length)}if(!this.dead)for(var i=this;e;)e=t()},r.prototype.cleanup=function(){this.dead=!0,this.state=s,this.buffers=[]},r.prototype.parse=function(){for(var e=new t(this.spanLength),i=0,r=0,n=this.buffers.length;r0&&o.copy(e,i,0,this.messageEnd),this.state!==a&&--this.messageEnd;var f=null;return this.messageEnd0&&(e=e.slice(t))}if(i.state===f){var r=i.messageEnd-i.spanLength;return e.length>=r?(i.buffers.push(e),i.spanLength+=r,i.messageEnd=r,i.parse()):(i.buffers.push(e),void(i.spanLength+=e.length))}return i.buffers.push(e),(i.messageEnd=n(e,255))!=-1?(i.spanLength+=i.messageEnd,i.parse()):void(i.spanLength+=e.length)}if(!this.dead)for(var i=this;e;)e=t()},r.prototype.cleanup=function(){this.dead=!0,this.state=s,this.buffers=[]},r.prototype.parse=function(){for(var e=new t(this.spanLength),i=0,r=0,n=this.buffers.length;r0&&o.copy(e,i,0,this.messageEnd),this.state!==a&&--this.messageEnd;var f=null;return this.messageEnd * MIT Licensed */ -var n=i(3),s=i(8);n.EventEmitter;e.exports=r,s.inherits(r,n.EventEmitter),r.prototype.send=function(e,i,r){if(!this.isClosed){var n="string"==typeof e,s=n?t.byteLength(e):e.length,a=s>127?2:1,o=0==this.continuationFrame,f=!i||!("undefined"!=typeof i.fin&&!i.fin),h=new t((o?i&&i.binary?1+a:1:0)+s+(!f||i&&i.binary?0:1)),c=o?1:0;o&&(i&&i.binary?(h.write("€","binary"),a>1&&h.write(String.fromCharCode(128+s/128),c++,"binary"),h.write(String.fromCharCode(127&s),c++,"binary")):h.write("\0","binary")),n?h.write(e,c,"utf8"):e.copy(h,c,0),f?(i&&i.binary||h.write("ÿ",c+s,"binary"),this.continuationFrame=!1):this.continuationFrame=!0;try{this.socket.write(h,"binary",r)}catch(e){this.error(e.toString())}}},r.prototype.close=function(e,i,r,n){if(!this.isClosed){this.isClosed=!0;try{this.continuationFrame&&this.socket.write(new t([255],"binary")),this.socket.write(new t([255,0]),"binary",n)}catch(e){this.error(e.toString())}}},r.prototype.ping=function(e,t){},r.prototype.pong=function(e,t){},r.prototype.error=function(e){return this.emit("error",e),this}}).call(t,i(0).Buffer)},function(e,t){/*! +var n=i(5),s=i(10);n.EventEmitter;e.exports=r,s.inherits(r,n.EventEmitter),r.prototype.send=function(e,i,r){if(!this.isClosed){var n="string"==typeof e,s=n?t.byteLength(e):e.length,a=s>127?2:1,o=0==this.continuationFrame,f=!i||!("undefined"!=typeof i.fin&&!i.fin),h=new t((o?i&&i.binary?1+a:1:0)+s+(!f||i&&i.binary?0:1)),c=o?1:0;o&&(i&&i.binary?(h.write("€","binary"),a>1&&h.write(String.fromCharCode(128+s/128),c++,"binary"),h.write(String.fromCharCode(127&s),c++,"binary")):h.write("\0","binary")),n?h.write(e,c,"utf8"):e.copy(h,c,0),f?(i&&i.binary||h.write("ÿ",c+s,"binary"),this.continuationFrame=!1):this.continuationFrame=!0;try{this.socket.write(h,"binary",r)}catch(e){this.error(e.toString())}}},r.prototype.close=function(e,i,r,n){if(!this.isClosed){this.isClosed=!0;try{this.continuationFrame&&this.socket.write(new t([255],"binary")),this.socket.write(new t([255,0]),"binary",n)}catch(e){this.error(e.toString())}}},r.prototype.ping=function(e,t){},r.prototype.pong=function(e,t){},r.prototype.error=function(e){return this.emit("error",e),this}}).call(t,i(0).Buffer)},function(e,t){/*! * ws: a node.js websocket client * Copyright(c) 2011 Einar Otto Stangvik * MIT Licensed @@ -129,11 +127,11 @@ t.Validation={isValidUTF8:function(e){return!0}}},function(e,t,i){"use strict";/ * Copyright(c) 2011 Einar Otto Stangvik * MIT Licensed */ -try{e.exports=i(231)}catch(t){e.exports=i(244)}},function(e,t,i){(function(t){function r(e,i){if(this instanceof r==!1)return new r(e,i);if(h.EventEmitter.call(this),e=new u({host:"0.0.0.0",port:null,server:null,verifyClient:null,handleProtocols:null,path:null,noServer:!1,disableHixie:!1,clientTracking:!0,perMessageDeflate:!0,maxPayload:104857600}).merge(e),!e.isDefinedAndNonNull("port")&&!e.isDefinedAndNonNull("server")&&!e.value.noServer)throw new TypeError("`port` or a `server` must be provided");var n=this;if(e.isDefinedAndNonNull("port"))this._server=c.createServer(function(e,t){var i=c.STATUS_CODES[426];t.writeHead(426,{"Content-Length":i.length,"Content-Type":"text/plain"}),t.end(i)}),this._server.allowHalfOpen=!1,this._server.listen(e.value.port,e.value.host,i),this._closeServer=function(){n._server&&n._server.close()};else if(e.value.server&&(this._server=e.value.server,e.value.path)){if(this._server._webSocketPaths&&e.value.server._webSocketPaths[e.value.path])throw new Error("two instances of WebSocketServer cannot listen on the same http server path");"object"!=typeof this._server._webSocketPaths&&(this._server._webSocketPaths={}),this._server._webSocketPaths[e.value.path]=1}this._server&&(this._onceServerListening=function(){n.emit("listening")},this._server.once("listening",this._onceServerListening)),"undefined"!=typeof this._server&&(this._onServerError=function(e){n.emit("error",e)},this._server.on("error",this._onServerError),this._onServerUpgrade=function(e,i,r){var s=new t(r.length);r.copy(s),n.handleUpgrade(e,i,s,function(t){n.emit("connection"+e.url,t),n.emit("connection",t)})},this._server.on("upgrade",this._onServerUpgrade)),this.options=e.value,this.path=e.value.path,this.clients=[]}function n(e,t,i,r){var n=function(){try{t.destroy()}catch(e){}};if(t.on("error",n),!e.headers["sec-websocket-key"])return void o(t,400,"Bad Request");var s=parseInt(e.headers["sec-websocket-version"]);if([8,13].indexOf(s)===-1)return void o(t,400,"Bad Request");var f=e.headers["sec-websocket-protocol"],h=s<13?e.headers["sec-websocket-origin"]:e.headers.origin,u=p.parse(e.headers["sec-websocket-extensions"]),b=this,m=function(f){var h=e.headers["sec-websocket-key"],c=l.createHash("sha1");c.update(h+"258EAFA5-E914-47DA-95CA-C5AB0DC85B11"),h=c.digest("base64");var m=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade","Sec-WebSocket-Accept: "+h];"undefined"!=typeof f&&m.push("Sec-WebSocket-Protocol: "+f);var w={};try{w=a.call(b,u)}catch(e){return void o(t,400,"Bad Request")}if(Object.keys(w).length){var g={};Object.keys(w).forEach(function(e){g[e]=[w[e].params]}),m.push("Sec-WebSocket-Extensions: "+p.format(g))}b.emit("headers",m),t.setTimeout(0),t.setNoDelay(!0);try{t.write(m.concat("","").join("\r\n"))}catch(e){try{t.destroy()}catch(e){}return}var v=new d([e,t,i],{protocolVersion:s,protocol:f,extensions:w,maxPayload:b.options.maxPayload});b.options.clientTracking&&(b.clients.push(v),v.on("close",function(){var e=b.clients.indexOf(v);e!=-1&&b.clients.splice(e,1)})),t.removeListener("error",n),r(v)},w=function(){if("function"==typeof b.options.handleProtocols){var e=(f||"").split(/, */),i=!1;b.options.handleProtocols(e,function(e,r){i=!0,e?m(r):o(t,401,"Unauthorized")});return void(i||o(t,501,"Could not process protocols"))}"undefined"!=typeof f?m(f.split(/, */)[0]):m()};if("function"==typeof this.options.verifyClient){var g={origin:h,secure:"undefined"!=typeof e.connection.authorized||"undefined"!=typeof e.connection.encrypted,req:e};if(2==this.options.verifyClient.length)return void this.options.verifyClient(g,function(e,i,r){"undefined"==typeof i&&(i=401),"undefined"==typeof r&&(r=c.STATUS_CODES[i]),e?w():o(t,i,r)});if(!this.options.verifyClient(g))return void o(t,401,"Unauthorized")}w()}function s(e,i,r,n){var s=function(){try{i.destroy()}catch(e){}};if(i.on("error",s),this.options.disableHixie)return void o(i,401,"Hixie support disabled");if(!e.headers["sec-websocket-key2"])return void o(i,400,"Bad Request");var a=e.headers.origin,f=this,h=function(){var h;h=e.headers["x-forwarded-host"]?e.headers["x-forwarded-host"]:e.headers.host;var c=("https"===e.headers["x-forwarded-proto"]||i.encrypted?"wss":"ws")+"://"+h+e.url,u=e.headers["sec-websocket-protocol"],p=function(){var e=["HTTP/1.1 101 Switching Protocols","Upgrade: WebSocket","Connection: Upgrade","Sec-WebSocket-Location: "+c];return"undefined"!=typeof u&&e.push("Sec-WebSocket-Protocol: "+u),"undefined"!=typeof a&&e.push("Sec-WebSocket-Origin: "+a),new t(e.concat("","").join("\r\n"))},b=function(){i.setTimeout(0),i.setNoDelay(!0);var e=p();try{i.write(e,"binary",function(e){e&&i.removeListener("data",y)})}catch(e){try{i.destroy()}catch(e){}return}},m=function(r,a,h){var c=e.headers["sec-websocket-key1"],p=e.headers["sec-websocket-key2"],b=l.createHash("md5");[c,p].forEach(function(e){var t=parseInt(e.replace(/[^\d]/g,"")),r=e.replace(/[^ ]/g,"").length;return 0===r||t%r!==0?void o(i,400,"Bad Request"):(t/=r,void b.update(String.fromCharCode(t>>24&255,t>>16&255,t>>8&255,255&t)))}),b.update(r.toString("binary")),i.setTimeout(0),i.setNoDelay(!0);try{var m=new t(b.digest("binary"),"binary"),w=new t(h.length+m.length);h.copy(w,0),m.copy(w,h.length),i.write(w,"binary",function(t){if(!t){var r=new d([e,i,a],{protocolVersion:"hixie-76",protocol:u});f.options.clientTracking&&(f.clients.push(r),r.on("close",function(){var e=f.clients.indexOf(r);e!=-1&&f.clients.splice(e,1)})),i.removeListener("error",s),n(r)}})}catch(e){try{i.destroy()}catch(e){}return}},w=8;if(r&&r.length>=w){var g=r.slice(0,w),v=r.length>w?r.slice(w):null;m.call(f,g,v,p())}else{var g=new t(w);r.copy(g,0);var _=r.length,v=null,y=function(e){var r=Math.min(e.length,w-_);0!==r&&(e.copy(g,_,0,r),_+=r,_==w&&(i.removeListener("data",y),r>24&255,t>>16&255,t>>8&255,255&t)))}),b.update(r.toString("binary")),i.setTimeout(0),i.setNoDelay(!0);try{var m=new t(b.digest("binary"),"binary"),w=new t(h.length+m.length);h.copy(w,0),m.copy(w,h.length),i.write(w,"binary",function(t){if(!t){var r=new d([e,i,a],{protocolVersion:"hixie-76",protocol:u});f.options.clientTracking&&(f.clients.push(r),r.on("close",function(){var e=f.clients.indexOf(r);e!=-1&&f.clients.splice(e,1)})),i.removeListener("error",s),n(r)}})}catch(e){try{i.destroy()}catch(e){}return}},w=8;if(r&&r.length>=w){var g=r.slice(0,w),v=r.length>w?r.slice(w):null;m.call(f,g,v,p())}else{var g=new t(w);r.copy(g,0);var _=r.length,v=null,y=function(e){var r=Math.min(e.length,w-_);0!==r&&(e.copy(g,_,0,r),_+=r,_==w&&(i.removeListener("data",y),r * MIT Licensed */ -var f=i(8),h=i(3),c=i(52),l=i(118),u=i(104),d=i(125),p=i(122),b=i(40),m=(i(238),i(59));f.inherits(r,h.EventEmitter),r.prototype.close=function(e){var t=null;try{for(var i=0,r=this.clients.length;i>>8^G[255&(r^e[t])];for(n=s>>3;n--;t+=8)r=r>>>8^G[255&(r^e[t])],r=r>>>8^G[255&(r^e[t+1])],r=r>>>8^G[255&(r^e[t+2])],r=r>>>8^G[255&(r^e[t+3])],r=r>>>8^G[255&(r^e[t+4])],r=r>>>8^G[255&(r^e[t+5])],r=r>>>8^G[255&(r^e[t+6])],r=r>>>8^G[255&(r^e[t+7])];return(4294967295^r)>>>0}function a(){}function o(e){this.buffer=new(L?Uint16Array:Array)(2*e),this.length=0}function f(e){var t,i,r,n,s,a,o,f,h,c,l=e.length,u=0,d=Number.POSITIVE_INFINITY;for(f=0;fu&&(u=e[f]),e[f]>=1;for(c=r<<16|f,h=a;h>16&255,s[a++]=i>>24;var o;switch(D){case 1===n:o=[0,n-1,0];break;case 2===n:o=[1,n-2,0];break;case 3===n:o=[2,n-3,0];break;case 4===n:o=[3,n-4,0];break;case 6>=n:o=[4,n-5,1];break;case 8>=n:o=[5,n-7,1];break;case 12>=n:o=[6,n-9,2];break;case 16>=n:o=[7,n-13,2];break;case 24>=n:o=[8,n-17,3];break;case 32>=n:o=[9,n-25,3];break;case 48>=n:o=[10,n-33,4];break;case 64>=n:o=[11,n-49,4];break;case 96>=n:o=[12,n-65,5];break;case 128>=n:o=[13,n-97,5];break;case 192>=n:o=[14,n-129,6];break;case 256>=n:o=[15,n-193,6];break;case 384>=n:o=[16,n-257,7];break;case 512>=n:o=[17,n-385,7];break;case 768>=n:o=[18,n-513,8];break;case 1024>=n:o=[19,n-769,8];break;case 1536>=n:o=[20,n-1025,9];break;case 2048>=n:o=[21,n-1537,9];break;case 3072>=n:o=[22,n-2049,10];break;case 4096>=n:o=[23,n-3073,10];break;case 6144>=n:o=[24,n-4097,11];break;case 8192>=n:o=[25,n-6145,11];break;case 12288>=n:o=[26,n-8193,12];break;case 16384>=n:o=[27,n-12289,12];break;case 24576>=n:o=[28,n-16385,13];break;case 32768>=n:o=[29,n-24577,13];break;default:r("invalid distance")}i=o,s[a++]=i[0],s[a++]=i[1],s[a++]=i[2];var f,h;for(f=0,h=s.length;f=a;)g[a++]=0;for(a=0;29>=a;)v[a++]=0}for(g[256]=1,n=0,s=t.length;n=s){for(l&&i(l,-1),a=0,o=s-n;as&&t+sh&&(n=r,h=s),258===s)break}return new c(h,t-n)}function d(e,t){var i,r,n,s,a,f=e.length,h=new o(572),c=new(L?Uint8Array:Array)(f);if(!L)for(s=0;s2*h[s-1]+c[s]&&(h[s]=2*h[s-1]+c[s]),u[s]=Array(h[s]),d[s]=Array(h[s]);for(n=0;ne[n]?(u[s][a]=o,d[s][a]=t,f+=2):(u[s][a]=e[n],d[s][a]=n,++n);p[s]=0,1===c[s]&&r(s)}return l}function b(e){var t,i,r,n,s=new(L?Uint16Array:Array)(e.length),a=[],o=[],f=0;for(t=0,i=e.length;t>>=1;return s}function m(e,t){this.input=e,this.b=this.c=0,this.g={},t&&(t.flags&&(this.g=t.flags),"string"==typeof t.filename&&(this.filename=t.filename),"string"==typeof t.comment&&(this.w=t.comment),t.deflateOptions&&(this.l=t.deflateOptions)),this.l||(this.l={})}function w(e,t){switch(this.o=[],this.p=32768,this.e=this.j=this.c=this.s=0,this.input=L?new Uint8Array(e):e,this.u=!1,this.q=ie,this.L=!1,!t&&(t={})||(t.index&&(this.c=t.index),t.bufferSize&&(this.p=t.bufferSize),t.bufferType&&(this.q=t.bufferType),t.resize&&(this.L=t.resize)),this.q){case te:this.b=32768,this.a=new(L?Uint8Array:Array)(32768+this.p+258);break;case ie:this.b=0,this.a=new(L?Uint8Array:Array)(this.p),this.f=this.T,this.z=this.P,this.r=this.R;break;default:r(Error("invalid inflate mode"))}}function g(e,t){for(var i,n=e.j,s=e.e,a=e.input,o=e.c,f=a.length;s=f&&r(Error("input buffer is broken")),n|=a[o++]<>>t,e.e=s-t,e.c=o,i}function v(e,t){for(var i,r,n=e.j,s=e.e,a=e.input,o=e.c,f=a.length,h=t[0],c=t[1];s=f);)n|=a[o++]<>>16,e.j=n>>r,e.e=s-r,e.c=o,65535&i}function _(e){function t(e,t,i){var r,n,s,a=this.I;for(s=0;s>>0;e=r}for(var n,s=1,a=0,o=e.length,f=0;0>>0}function E(e,t){var i,n;switch(this.input=e,this.c=0,!t&&(t={})||(t.index&&(this.c=t.index),t.verify&&(this.W=t.verify)),i=e[this.c++],n=e[this.c++],15&i){case ye:this.method=ye;break;default:r(Error("unsupported compression method"))}0!==((i<<8)+n)%31&&r(Error("invalid fcheck flag:"+((i<<8)+n)%31)),32&n&&r(Error("fdict flag is not supported")),this.K=new w(e,{index:this.c,bufferSize:t.bufferSize,bufferType:t.bufferType,resize:t.resize})}function A(e,t){this.input=e,this.a=new(L?Uint8Array:Array)(32768),this.k=ke.t;var i,r={};!t&&(t={})||"number"!=typeof t.compressionType||(this.k=t.compressionType);for(i in t)r[i]=t[i];r.outputBuffer=this.a,this.J=new h(this.input,r)}function S(t,i,r){e.nextTick(function(){var e,n;try{n=M(t,r)}catch(t){e=t}i(e,n)})}function M(e,t){var i;return i=new A(e).h(),t||(t={}),t.H?i:O(i)}function T(t,i,r){e.nextTick(function(){var e,n;try{n=R(t,r)}catch(t){e=t}i(e,n)})}function R(e,t){var i;return e.subarray=e.slice,i=new E(e).i(),t||(t={}),t.noBuffer?i:O(i)}function x(t,i,r){e.nextTick(function(){var e,n;try{n=C(t,r)}catch(t){e=t}i(e,n)})}function C(e,t){var i;return e.subarray=e.slice,i=new m(e).h(),t||(t={}),t.H?i:O(i)}function I(t,i,r){e.nextTick(function(){var e,n;try{n=P(t,r)}catch(t){e=t}i(e,n)})}function P(e,t){var i;return e.subarray=e.slice,i=new y(e).i(),t||(t={}),t.H?i:O(i)}function O(e){var t,r,n=new i(e.length);for(t=0,r=e.length;t>>8&255]<<16|q[e>>>16&255]<<8|q[e>>>24&255])>>32-t:q[e]>>8-t),8>t+a)o=o<>t-r-1&1,8===++a&&(a=0,n[s++]=q[o],o=0,s===n.length&&(n=this.f()));n[s]=o,this.buffer=n,this.m=a,this.index=s},n.prototype.finish=function(){var e,t=this.buffer,i=this.index;return 0B;++B){for(var j=B,F=j,z=7,j=j>>>1;j;j>>>=1)F<<=1,F|=1&j,--z;U[B]=(F<>>0}var q=U,H=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117],G=L?new Uint32Array(H):H;o.prototype.getParent=function(e){return 2*((e-2)/4|0)},o.prototype.push=function(e,t){var i,r,n,s=this.buffer;for(i=this.length,s[this.length++]=t,s[this.length++]=e;0s[r]);)n=s[i],s[i]=s[r],s[r]=n,n=s[i+1],s[i+1]=s[r+1],s[r+1]=n,i=r;return this.length},o.prototype.pop=function(){var e,t,i,r,n,s=this.buffer;for(t=s[0],e=s[1],this.length-=2,s[0]=s[this.length],s[1]=s[this.length+1],n=0;(r=2*n+2,!(r>=this.length))&&(r+2s[r]&&(r+=2),s[r]>s[n]);)i=s[n],s[n]=s[r],s[r]=i,i=s[n+1],s[n+1]=s[r+1],s[r+1]=i,n=r;return{index:e,value:t,length:this.length}};var V,W=2,K={NONE:0,M:1,t:W,Y:3},Z=[];for(V=0;288>V;V++)switch(D){case 143>=V:Z.push([V+48,8]);break;case 255>=V:Z.push([V-144+400,9]);break;case 279>=V:Z.push([V-256+0,7]);break;case 287>=V:Z.push([V-280+192,8]);break;default:r("invalid literal: "+V)}h.prototype.h=function(){var e,t,i,s,a=this.input;switch(this.k){case 0:for(i=0,s=a.length;i>>8&255,w[g++]=255&u,w[g++]=u>>>8&255,L)w.set(o,g),g+=o.length,w=w.subarray(0,g);else{for(p=0,m=o.length;pY)for(;0Y?Y:138,J>Y-3&&J=J?(ie[X++]=17,ie[X++]=J-3,re[17]++):(ie[X++]=18,ie[X++]=J-11,re[18]++),Y-=J;else if(ie[X++]=te[V],re[te[V]]++,Y--,3>Y)for(;0Y?Y:6,J>Y-3&&JF;F++)G[F]=O[H[F]];for(R=19;4=e:return[265,e-11,1];case 14>=e:return[266,e-13,1];case 16>=e:return[267,e-15,1];case 18>=e:return[268,e-17,1];case 22>=e:return[269,e-19,2];case 26>=e:return[270,e-23,2];case 30>=e:return[271,e-27,2];case 34>=e:return[272,e-31,2];case 42>=e:return[273,e-35,3];case 50>=e:return[274,e-43,3];case 58>=e:return[275,e-51,3];case 66>=e:return[276,e-59,3];case 82>=e:return[277,e-67,4];case 98>=e:return[278,e-83,4];case 114>=e:return[279,e-99,4];case 130>=e:return[280,e-115,4];case 162>=e:return[281,e-131,5];case 194>=e:return[282,e-163,5];case 226>=e:return[283,e-195,5];case 257>=e:return[284,e-227,5];case 258===e:return[285,e-258,0];default:r("invalid length: "+e)}}var t,i,n=[];for(t=3;258>=t;t++)i=e(t),n[t]=i[2]<<24|i[1]<<16|i[0];return n}(),$=L?new Uint32Array(Y):Y;m.prototype.h=function(){var e,t,i,r,n,a,o,f,c=new(L?Uint8Array:Array)(32768),l=0,u=this.input,d=this.c,p=this.filename,b=this.w;if(c[l++]=31,c[l++]=139,c[l++]=8,e=0,this.g.fname&&(e|=Q),this.g.fcomment&&(e|=ee),this.g.fhcrc&&(e|=J),c[l++]=e,t=(Date.now?Date.now():+new Date)/1e3|0,c[l++]=255&t,c[l++]=t>>>8&255,c[l++]=t>>>16&255,c[l++]=t>>>24&255,c[l++]=0,c[l++]=X,this.g.fname!==N){for(o=0,f=p.length;o>>8&255),c[l++]=255&a;c[l++]=0}if(this.g.comment){for(o=0,f=b.length;o>>8&255),c[l++]=255&a;c[l++]=0}return this.g.fhcrc&&(i=65535&s(c,0,l),c[l++]=255&i,c[l++]=i>>>8&255),this.l.outputBuffer=c,this.l.outputIndex=l,n=new h(u,this.l),c=n.h(),l=n.b,L&&(l+8>c.buffer.byteLength?(this.a=new Uint8Array(l+8),this.a.set(new Uint8Array(c.buffer)),c=this.a):c=new Uint8Array(c.buffer)),r=s(u,N,N),c[l++]=255&r,c[l++]=r>>>8&255,c[l++]=r>>>16&255,c[l++]=r>>>24&255,f=u.length,c[l++]=255&f,c[l++]=f>>>8&255,c[l++]=f>>>16&255,c[l++]=f>>>24&255,this.c=d,L&&l>>=1){case 0:var t=this.input,i=this.c,n=this.a,s=this.b,a=t.length,o=N,f=N,h=n.length,c=N;switch(this.e=this.j=0,i+1>=a&&r(Error("invalid uncompressed block header: LEN")),o=t[i++]|t[i++]<<8,i+1>=a&&r(Error("invalid uncompressed block header: NLEN")),f=t[i++]|t[i++]<<8,o===~f&&r(Error("invalid uncompressed block header: length verify")),i+o>t.length&&r(Error("input buffer is broken")),this.q){case te:for(;s+o>n.length;){if(c=h-s,o-=c,L)n.set(t.subarray(i,i+c),s),s+=c,i+=c;else for(;c--;)n[s++]=t[i++];this.b=s,n=this.f(),s=this.b}break;case ie:for(;s+o>n.length;)n=this.f({B:2});break;default:r(Error("invalid inflate mode"))}if(L)n.set(t.subarray(i,i+o),s),s+=o,i+=o;else for(;o--;)n[s++]=t[i++];this.c=i,this.b=s,this.a=n;break;case 1:this.r(ge,_e);break;case 2:_(this);break;default:r(Error("unknown BTYPE: "+e))}}return this.z()};var re,ne,se=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],ae=L?new Uint16Array(se):se,oe=[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,258,258],fe=L?new Uint16Array(oe):oe,he=[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,0,0],ce=L?new Uint8Array(he):he,le=[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],ue=L?new Uint16Array(le):le,de=[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],pe=L?new Uint8Array(de):de,be=new(L?Uint8Array:Array)(288);for(re=0,ne=be.length;re=re?8:255>=re?9:279>=re?7:8;var me,we,ge=f(be),ve=new(L?Uint8Array:Array)(30);for(me=0,we=ve.length;men)r>=f&&(this.b=r,i=this.f(),r=this.b),i[r++]=n;else for(s=n-257,o=fe[s],0=f&&(this.b=r,i=this.f(),r=this.b);o--;)i[r]=i[r++-a];for(;8<=this.e;)this.e-=8,this.c--;this.b=r},w.prototype.R=function(e,t){var i=this.a,r=this.b;this.A=e;for(var n,s,a,o,f=i.length;256!==(n=v(this,e));)if(256>n)r>=f&&(i=this.f(),f=i.length),i[r++]=n;else for(s=n-257,o=fe[s],0f&&(i=this.f(),f=i.length);o--;)i[r]=i[r++-a];for(;8<=this.e;)this.e-=8,this.c--;this.b=r},w.prototype.f=function(){var e,t,i=new(L?Uint8Array:Array)(this.b-32768),r=this.b-32768,n=this.a;if(L)i.set(n.subarray(32768,i.length));else for(e=0,t=i.length;ee;++e)n[e]=n[r+e];return this.b=32768,n},w.prototype.T=function(e){var t,i,r,n,s=this.input.length/this.c+1|0,a=this.input,o=this.a;return e&&("number"==typeof e.B&&(s=e.B),"number"==typeof e.N&&(s+=e.N)),2>s?(i=(a.length-this.c)/this.A[2],n=258*(i/2)|0,r=nt&&(this.a.length=t),e=this.a),this.buffer=e},y.prototype.i=function(){for(var e=this.input.length;this.c>>0,s(o,N,N)!==d&&r(Error("invalid CRC-32 checksum: 0x"+s(o,N,N).toString(16)+" / 0x"+d.toString(16))),t.$=i=(p[b++]|p[b++]<<8|p[b++]<<16|p[b++]<<24)>>>0,(4294967295&o.length)!==i&&r(Error("invalid input size: "+(4294967295&o.length)+" / "+i)),this.G.push(t),this.c=b}this.S=D;var m,g,v,_=this.G,y=0,k=0;for(m=0,g=_.length;m>>0,t!==k(e)&&r(Error("invalid adler-32 checksum"))),e};var ye=8,ke=K;A.prototype.h=function(){var e,t,i,n,s,a,o,f=0;switch(o=this.a,e=ye){case ye:t=Math.LOG2E*Math.log(32768)-8;break;default:r(Error("invalid compression method"))}switch(i=t<<4|e,o[f++]=i,e){case ye:switch(this.k){case ke.NONE:s=0;break;case ke.M:s=1;break;case ke.t:s=2;break;default:r(Error("unsupported compression type"))}break;default:r(Error("invalid compression method"))}return n=s<<6|0,o[f++]=n|31-(256*i+n)%31,a=k(this.input),this.J.b=f,o=this.J.h(),f=o.length,L&&(o=new Uint8Array(o.buffer),o.length<=f+4&&(this.a=new Uint8Array(o.length+4),this.a.set(o),o=this.a),o=o.subarray(0,f+4)),o[f++]=a>>24&255,o[f++]=a>>16&255,o[f++]=a>>8&255,o[f++]=255&a,o},t.deflate=S,t.deflateSync=M,t.inflate=T,t.inflateSync=R,t.gzip=x,t.gzipSync=C,t.gunzip=I,t.gunzipSync=P}).call(this)}).call(t,i(5),i(0).Buffer)},function(e,t,i){const r=i(2),n=i(130),s=i(43),a=i(11),o=i(65),f=i(21),h=i(76),c=i(77),l=i(29),u=i(66);class d{constructor(e){this.client=e}get pastReady(){return this.client.ws.status===r.Status.READY}newGuild(e){const t=this.client.guilds.has(e.id),i=new s(this.client,e);return this.client.guilds.set(i.id,i),this.pastReady&&!t&&(this.client.options.fetchAllMembers?i.fetchMembers().then(()=>{this.client.emit(r.Events.GUILD_CREATE,i)}):this.client.emit(r.Events.GUILD_CREATE,i)),i}newUser(e){if(this.client.users.has(e.id))return this.client.users.get(e.id);const t=new a(this.client,e);return this.client.users.set(t.id,t),t}newChannel(e,t){const i=this.client.channels.has(e.id);let n;return e.type===r.ChannelTypes.DM?n=new o(this.client,e):e.type===r.ChannelTypes.groupDM?n=new u(this.client,e):(t=t||this.client.guilds.get(e.guild_id),t&&(e.type===r.ChannelTypes.text?(n=new h(t,e),t.channels.set(n.id,n)):e.type===r.ChannelTypes.voice&&(n=new c(t,e),t.channels.set(n.id,n)))),n?(this.pastReady&&!i&&this.client.emit(r.Events.CHANNEL_CREATE,n),this.client.channels.set(n.id,n),n):null}newEmoji(e,t){const i=t.emojis.has(e.id);if(e&&!i){let i=new f(t,e);return this.client.emit(r.Events.EMOJI_CREATE,i),t.emojis.set(i.id,i),i}return i?t.emojis.get(e.id):null}killEmoji(e){e instanceof f&&e.guild&&(this.client.emit(r.Events.EMOJI_DELETE,e),e.guild.emojis.delete(e.id))}killGuild(e){const t=this.client.guilds.has(e.id);this.client.guilds.delete(e.id),t&&this.pastReady&&this.client.emit(r.Events.GUILD_DELETE,e)}killUser(e){this.client.users.delete(e.id)}killChannel(e){this.client.channels.delete(e.id),e instanceof l&&e.guild.channels.delete(e.id)}updateGuild(e,t){const i=n(e);e.setup(t),this.pastReady&&this.client.emit(r.Events.GUILD_UPDATE,i,e)}updateChannel(e,t){e.setup(t)}updateEmoji(e,t){const i=n(e);e.setup(t),this.client.emit(r.Events.GUILD_EMOJI_UPDATE,i,e)}}e.exports=d},function(e,t,i){const r=i(2);class n{constructor(e){this.client=e,this.heartbeatInterval=null}connectToWebSocket(e,t,i){this.client.emit(r.Events.DEBUG,`Authenticated using token ${e}`),this.client.token=e;const n=this.client.setTimeout(()=>i(new Error(r.Errors.TOOK_TOO_LONG)),3e5);this.client.rest.methods.getGateway().then(s=>{this.client.emit(r.Events.DEBUG,`Using gateway ${s}`),this.client.ws.connect(s),this.client.ws.once("close",e=>{4004===e.code&&i(new Error(r.Errors.BAD_LOGIN)),4010===e.code&&i(new Error(r.Errors.INVALID_SHARD))}),this.client.once(r.Events.READY,()=>{t(e),this.client.clearTimeout(n)})},i)}setupKeepAlive(e){this.heartbeatInterval=this.client.setInterval(()=>{this.client.emit("debug","Sending heartbeat"),this.client.ws.send({op:r.OPCodes.HEARTBEAT,d:this.client.ws.sequence},!0)},e)}destroy(){return new Promise(e=>{this.client.ws.destroy(),this.client.user.bot?e():e(this.client.rest.methods.logout())})}}e.exports=n},function(e,t){function i(e){throw new Error("Cannot find module '"+e+"'.")}i.keys=function(){return[]},i.resolve=i,e.exports=i,i.id=250},function(e,t,i){class r{constructor(e){this.client=e,this.register("MessageCreate"),this.register("MessageDelete"),this.register("MessageDeleteBulk"),this.register("MessageUpdate"),this.register("MessageReactionAdd"),this.register("MessageReactionRemove"),this.register("MessageReactionRemoveAll"),this.register("ChannelCreate"),this.register("ChannelDelete"),this.register("ChannelUpdate"),this.register("GuildDelete"),this.register("GuildUpdate"),this.register("GuildMemberGet"),this.register("GuildMemberRemove"),this.register("GuildBanRemove"),this.register("GuildRoleCreate"),this.register("GuildRoleDelete"),this.register("GuildRoleUpdate"),this.register("UserGet"),this.register("UserUpdate"),this.register("UserNoteUpdate"),this.register("GuildSync"),this.register("GuildEmojiCreate"),this.register("GuildEmojiDelete"),this.register("GuildEmojiUpdate"),this.register("GuildRolesPositionUpdate")}register(e){const t=!function(){var e=new Error('Cannot find module "."');throw e.code="MODULE_NOT_FOUND",e}();this[e]=new t(this.client)}}e.exports=r},function(e,t,i){function r(e){let t=e.split("?")[0];if(t.includes("/channels/")||t.includes("/guilds/")){const e=~t.indexOf("/channels/")?t.indexOf("/channels/"):t.indexOf("/guilds/"),i=t.substring(e).split("/")[2];t=t.replace(/(\d{8,})/g,":id").replace(":id",i)}return t}const n=i(57),s=i(2);class a{constructor(e,t,i,n,s,a){this.rest=e,this.method=t,this.url=i,this.auth=n,this.data=s,this.file=a,this.route=r(this.url)}getAuth(){if(this.rest.client.token&&this.rest.client.user&&this.rest.client.user.bot)return`Bot ${this.rest.client.token}`;if(this.rest.client.token)return this.rest.client.token;throw new Error(s.Errors.NO_TOKEN)}gen(){const e=n[this.method](this.url);if(this.auth&&e.set("authorization",this.getAuth()),this.file&&this.file.file){e.attach("file",this.file.file,this.file.name),this.data=this.data||{};for(const t in this.data)this.data[t]&&e.field(t,this.data[t])}else this.data&&e.send(this.data);return e.set("User-Agent",this.rest.userAgentManager.userAgent),e}}e.exports=a},function(e,t,i){const r=i(2),n=i(6),s=i(79),a=i(277),o=i(11),f=i(30),h=i(22),c=i(67),l=i(46),u=i(276),d=i(64);class p{constructor(e){this.rest=e}loginToken(e=this.rest.client.token){return new Promise((t,i)=>{e=e.replace(/^Bot\s*/i,""),this.rest.client.manager.connectToWebSocket(e,t,i)})}loginEmailPassword(e,t){return this.rest.client.emit("warn","Client launched using email and password - should use token instead"),this.rest.client.email=e,this.rest.client.password=t,this.rest.makeRequest("post",r.Endpoints.login,!1,{email:e,password:t}).then(e=>this.loginToken(e.token))}logout(){return this.rest.makeRequest("post",r.Endpoints.logout,!0,{})}getGateway(){return this.rest.makeRequest("get",r.Endpoints.gateway,!0).then(e=>{return this.rest.client.ws.gateway=`${e.url}/?encoding=json&v=${r.PROTOCOL_VERSION}`,this.rest.client.ws.gateway})}getBotGateway(){return this.rest.makeRequest("get",r.Endpoints.botGateway,!0)}sendMessage(e,t,{tts,nonce,embed,disableEveryone,split}={},i=null){return new Promise((r,n)=>{"undefined"!=typeof t&&(t=this.rest.client.resolver.resolveString(t)),t&&((disableEveryone||"undefined"==typeof disableEveryone&&this.rest.client.options.disableEveryone)&&(t=t.replace(/@(everyone|here)/g,"@​$1")),split&&(t=s(t,"object"==typeof split?split:{}))),e instanceof o||e instanceof f?this.createDM(e).then(e=>{this._sendMessageRequest(e,t,i,tts,nonce,embed,r,n)},n):this._sendMessageRequest(e,t,i,tts,nonce,embed,r,n)})}_sendMessageRequest(e,t,i,n,s,a,o,f){if(t instanceof Array){const h=[];let c=this.rest.makeRequest("post",r.Endpoints.channelMessages(e.id),!0,{content:t[0],tts:n,nonce:s},i).catch(f);for(let l=1;l<=t.length;l++)if(l{return h.push(f),this.rest.makeRequest("post",r.Endpoints.channelMessages(e.id),!0,{content:t[o],tts:n,nonce:s,embed:a},i)},f)}else c.then(e=>{h.push(e),o(this.rest.client.actions.MessageCreate.handle(h).messages)},f)}else this.rest.makeRequest("post",r.Endpoints.channelMessages(e.id),!0,{content:t,tts:n, -nonce:s,embed:a},i).then(e=>o(this.rest.client.actions.MessageCreate.handle(e).message),f)}deleteMessage(e){return this.rest.makeRequest("del",r.Endpoints.channelMessage(e.channel.id,e.id),!0).then(()=>this.rest.client.actions.MessageDelete.handle({id:e.id,channel_id:e.channel.id}).message)}bulkDeleteMessages(e,t){return this.rest.makeRequest("post",`${r.Endpoints.channelMessages(e.id)}/bulk_delete`,!0,{messages:t}).then(()=>this.rest.client.actions.MessageDeleteBulk.handle({channel_id:e.id,ids:t}).messages)}updateMessage(e,t,{embed}={}){return t=this.rest.client.resolver.resolveString(t),this.rest.makeRequest("patch",r.Endpoints.channelMessage(e.channel.id,e.id),!0,{content:t,embed:embed}).then(e=>this.rest.client.actions.MessageUpdate.handle(e).updated)}createChannel(e,t,i){return this.rest.makeRequest("post",r.Endpoints.guildChannels(e.id),!0,{name:t,type:i}).then(e=>this.rest.client.actions.ChannelCreate.handle(e).channel)}createDM(e){const t=this.getExistingDM(e);return t?Promise.resolve(t):this.rest.makeRequest("post",r.Endpoints.userChannels(this.rest.client.user.id),!0,{recipient_id:e.id}).then(e=>this.rest.client.actions.ChannelCreate.handle(e).channel)}getExistingDM(e){return this.rest.client.channels.find(t=>t.recipient&&t.recipient.id===e.id)}deleteChannel(e){return(e instanceof o||e instanceof f)&&(e=this.getExistingDM(e)),e?this.rest.makeRequest("del",r.Endpoints.channel(e.id),!0).then(t=>{return t.id=e.id,this.rest.client.actions.ChannelDelete.handle(t).channel}):Promise.reject(new Error("No channel to delete."))}updateChannel(e,t){const i={};return i.name=(t.name||e.name).trim(),i.topic=t.topic||e.topic,i.position=t.position||e.position,i.bitrate=t.bitrate||e.bitrate,i.user_limit=t.userLimit||e.userLimit,this.rest.makeRequest("patch",r.Endpoints.channel(e.id),!0,i).then(e=>this.rest.client.actions.ChannelUpdate.handle(e).updated)}leaveGuild(e){return e.ownerID===this.rest.client.user.id?Promise.reject(new Error("Guild is owned by the client.")):this.rest.makeRequest("del",r.Endpoints.meGuild(e.id),!0).then(()=>this.rest.client.actions.GuildDelete.handle({id:e.id}).guild)}createGuild(e){return e.icon=this.rest.client.resolver.resolveBase64(e.icon)||null,e.region=e.region||"us-central",new Promise((t,i)=>{this.rest.makeRequest("post",r.Endpoints.guilds,!0,e).then(e=>{if(this.rest.client.guilds.has(e.id))return void t(this.rest.client.guilds.get(e.id));const r=i=>{i.id===e.id&&(this.rest.client.removeListener("guildCreate",r),this.rest.client.clearTimeout(n),t(i))};this.rest.client.on("guildCreate",r);const n=this.rest.client.setTimeout(()=>{this.rest.client.removeListener("guildCreate",r),i(new Error("Took too long to receive guild data."))},1e4)},i)})}deleteGuild(e){return this.rest.makeRequest("del",r.Endpoints.guild(e.id),!0).then(()=>this.rest.client.actions.GuildDelete.handle({id:e.id}).guild)}getUser(e){return this.rest.makeRequest("get",r.Endpoints.user(e),!0).then(e=>this.rest.client.actions.UserGet.handle(e).user)}updateCurrentUser(e){const t=this.rest.client.user,i={};return i.username=e.username||t.username,i.avatar=this.rest.client.resolver.resolveBase64(e.avatar)||t.avatar,t.bot||(i.email=e.email||t.email,i.password=this.rest.client.password,e.new_password&&(i.new_password=e.newPassword)),this.rest.makeRequest("patch",r.Endpoints.me,!0,i).then(e=>this.rest.client.actions.UserUpdate.handle(e).updated)}updateGuild(e,t){const i={};return t.name&&(i.name=t.name),t.region&&(i.region=t.region),t.verificationLevel&&(i.verification_level=Number(t.verificationLevel)),t.afkChannel&&(i.afk_channel_id=this.rest.client.resolver.resolveChannel(t.afkChannel).id),t.afkTimeout&&(i.afk_timeout=Number(t.afkTimeout)),t.icon&&(i.icon=this.rest.client.resolver.resolveBase64(t.icon)),t.owner&&(i.owner_id=this.rest.client.resolver.resolveUser(t.owner).id),t.splash&&(i.splash=this.rest.client.resolver.resolveBase64(t.splash)),this.rest.makeRequest("patch",r.Endpoints.guild(e.id),!0,i).then(e=>this.rest.client.actions.GuildUpdate.handle(e).updated)}kickGuildMember(e,t){return this.rest.makeRequest("del",r.Endpoints.guildMember(e.id,t.id),!0).then(()=>this.rest.client.actions.GuildMemberRemove.handle({guild_id:e.id,user:t.user}).member)}createGuildRole(e){return this.rest.makeRequest("post",r.Endpoints.guildRoles(e.id),!0).then(t=>this.rest.client.actions.GuildRoleCreate.handle({guild_id:e.id,role:t}).role)}deleteGuildRole(e){return this.rest.makeRequest("del",r.Endpoints.guildRole(e.guild.id,e.id),!0).then(()=>this.rest.client.actions.GuildRoleDelete.handle({guild_id:e.guild.id,role_id:e.id}).role)}setChannelOverwrite(e,t){return this.rest.makeRequest("put",`${r.Endpoints.channelPermissions(e.id)}/${t.id}`,!0,t)}deletePermissionOverwrites(e){return this.rest.makeRequest("del",`${r.Endpoints.channelPermissions(e.channel.id)}/${e.id}`,!0).then(()=>e)}getChannelMessages(e,t={}){const i=[];t.limit&&i.push(`limit=${t.limit}`),t.around?i.push(`around=${t.around}`):t.before?i.push(`before=${t.before}`):t.after&&i.push(`after=${t.after}`);let n=r.Endpoints.channelMessages(e.id);return i.length>0&&(n+=`?${i.join("&")}`),this.rest.makeRequest("get",n,!0)}getChannelMessage(e,t){const i=e.messages.get(t);return i?Promise.resolve(i):this.rest.makeRequest("get",r.Endpoints.channelMessage(e.id,t),!0)}getGuildMember(e,t){return this.rest.makeRequest("get",r.Endpoints.guildMember(e.id,t.id),!0).then(t=>this.rest.client.actions.GuildMemberGet.handle(e,t).member)}updateGuildMember(e,t){t.channel&&(t.channel_id=this.rest.client.resolver.resolveChannel(t.channel).id),t.roles&&(t.roles=t.roles.map(e=>e instanceof h?e.id:e));let i=r.Endpoints.guildMember(e.guild.id,e.id);if(e.id===this.rest.client.user.id){const n=Object.keys(t);1===n.length&&"nick"===n[0]&&(i=r.Endpoints.stupidInconsistentGuildEndpoint(e.guild.id))}return this.rest.makeRequest("patch",i,!0,t).then(t=>e.guild._updateMember(e,t).mem)}sendTyping(e){return this.rest.makeRequest("post",`${r.Endpoints.channel(e)}/typing`,!0)}banGuildMember(e,t,i=0){const n=this.rest.client.resolver.resolveUserID(t);return n?this.rest.makeRequest("put",`${r.Endpoints.guildBans(e.id)}/${n}?delete-message-days=${i}`,!0,{"delete-message-days":i}).then(()=>{if(t instanceof f)return t;const i=this.rest.client.resolver.resolveUser(n);return i?(t=this.rest.client.resolver.resolveGuildMember(e,i),t||i):n}):Promise.reject(new Error("Couldn't resolve the user ID to ban."))}unbanGuildMember(e,t){return new Promise((i,n)=>{const s=this.rest.client.resolver.resolveUserID(t);if(!s)throw new Error("Couldn't resolve the user ID to unban.");const a=(t,n)=>{t.id===e.id&&n.id===s&&(this.rest.client.removeListener(r.Events.GUILD_BAN_REMOVE,a),this.rest.client.clearTimeout(o),i(n))};this.rest.client.on(r.Events.GUILD_BAN_REMOVE,a);const o=this.rest.client.setTimeout(()=>{this.rest.client.removeListener(r.Events.GUILD_BAN_REMOVE,a),n(new Error("Took too long to receive the ban remove event."))},1e4);this.rest.makeRequest("del",`${r.Endpoints.guildBans(e.id)}/${s}`,!0).catch(e=>{this.rest.client.removeListener(r.Events.GUILD_BAN_REMOVE,a),this.rest.client.clearTimeout(o),n(e)})})}getGuildBans(e){return this.rest.makeRequest("get",r.Endpoints.guildBans(e.id),!0).then(e=>{const t=new n;for(const i of e){const e=this.rest.client.dataManager.newUser(i.user);t.set(e.id,e)}return t})}updateGuildRole(e,t){const i={};if(i.name=t.name||e.name,i.position="undefined"!=typeof t.position?t.position:e.position,i.color=t.color||e.color,"string"==typeof i.color&&i.color.startsWith("#")&&(i.color=parseInt(i.color.replace("#",""),16)),i.hoist="undefined"!=typeof t.hoist?t.hoist:e.hoist,i.mentionable="undefined"!=typeof t.mentionable?t.mentionable:e.mentionable,t.permissions){let e=0;for(let n of t.permissions)"string"==typeof n&&(n=r.PermissionFlags[n]),e|=n;i.permissions=e}else i.permissions=e.permissions;return this.rest.makeRequest("patch",r.Endpoints.guildRole(e.guild.id,e.id),!0,i).then(t=>this.rest.client.actions.GuildRoleUpdate.handle({role:t,guild_id:e.guild.id}).updated)}pinMessage(e){return this.rest.makeRequest("put",`${r.Endpoints.channel(e.channel.id)}/pins/${e.id}`,!0).then(()=>e)}unpinMessage(e){return this.rest.makeRequest("del",`${r.Endpoints.channel(e.channel.id)}/pins/${e.id}`,!0).then(()=>e)}getChannelPinnedMessages(e){return this.rest.makeRequest("get",`${r.Endpoints.channel(e.id)}/pins`,!0)}createChannelInvite(e,t){const i={};return i.temporary=t.temporary,i.max_age=t.maxAge,i.max_uses=t.maxUses,this.rest.makeRequest("post",`${r.Endpoints.channelInvites(e.id)}`,!0,i).then(e=>new c(this.rest.client,e))}deleteInvite(e){return this.rest.makeRequest("del",r.Endpoints.invite(e.code),!0).then(()=>e)}getInvite(e){return this.rest.makeRequest("get",r.Endpoints.invite(e),!0).then(e=>new c(this.rest.client,e))}getGuildInvites(e){return this.rest.makeRequest("get",r.Endpoints.guildInvites(e.id),!0).then(e=>{const t=new n;for(const i of e){const e=new c(this.rest.client,i);t.set(e.code,e)}return t})}pruneGuildMembers(e,t,i){return this.rest.makeRequest(i?"get":"post",`${r.Endpoints.guildPrune(e.id)}?days=${t}`,!0).then(e=>e.pruned)}createEmoji(e,t,i){return this.rest.makeRequest("post",`${r.Endpoints.guildEmojis(e.id)}`,!0,{name:i,image:t}).then(t=>this.rest.client.actions.EmojiCreate.handle(t,e).emoji)}deleteEmoji(e){return this.rest.makeRequest("delete",`${r.Endpoints.guildEmojis(e.guild.id)}/${e.id}`,!0).then(()=>this.rest.client.actions.EmojiDelete.handle(e).data)}getWebhook(e,t){return this.rest.makeRequest("get",r.Endpoints.webhook(e,t),!t).then(e=>new l(this.rest.client,e))}getGuildWebhooks(e){return this.rest.makeRequest("get",r.Endpoints.guildWebhooks(e.id),!0).then(e=>{const t=new n;for(const i of e)t.set(i.id,new l(this.rest.client,i));return t})}getChannelWebhooks(e){return this.rest.makeRequest("get",r.Endpoints.channelWebhooks(e.id),!0).then(e=>{const t=new n;for(const i of e)t.set(i.id,new l(this.rest.client,i));return t})}createWebhook(e,t,i){return this.rest.makeRequest("post",r.Endpoints.channelWebhooks(e.id),!0,{name:t,avatar:i}).then(e=>new l(this.rest.client,e))}editWebhook(e,t,i){return this.rest.makeRequest("patch",r.Endpoints.webhook(e.id,e.token),!1,{name:t,avatar:i}).then(t=>{return e.name=t.name,e.avatar=t.avatar,e})}deleteWebhook(e){return this.rest.makeRequest("delete",r.Endpoints.webhook(e.id,e.token),!1)}sendWebhookMessage(e,t,{avatarURL,tts,disableEveryone,embeds}={},i=null){return"undefined"!=typeof t&&(t=this.rest.client.resolver.resolveString(t)),t&&(disableEveryone||"undefined"==typeof disableEveryone&&this.rest.client.options.disableEveryone)&&(t=t.replace(/@(everyone|here)/g,"@​$1")),this.rest.makeRequest("post",`${r.Endpoints.webhook(e.id,e.token)}?wait=true`,!1,{username:e.name,avatar_url:avatarURL,content:t,tts:tts,file:i,embeds:embeds})}sendSlackWebhookMessage(e,t){return this.rest.makeRequest("post",`${r.Endpoints.webhook(e.id,e.token)}/slack?wait=true`,!1,t)}fetchUserProfile(e){return this.rest.makeRequest("get",r.Endpoints.userProfile(e.id),!0).then(t=>new u(e,t))}addFriend(e){return this.rest.makeRequest("post",r.Endpoints.relationships("@me"),!0,{username:e.username,discriminator:e.discriminator}).then(()=>e)}removeFriend(e){return this.rest.makeRequest("delete",`${r.Endpoints.relationships("@me")}/${e.id}`,!0).then(()=>e)}blockUser(e){return this.rest.makeRequest("put",`${r.Endpoints.relationships("@me")}/${e.id}`,!0,{type:2}).then(()=>e)}unblockUser(e){return this.rest.makeRequest("delete",`${r.Endpoints.relationships("@me")}/${e.id}`,!0).then(()=>e)}setRolePositions(e,t){return this.rest.makeRequest("patch",r.Endpoints.guildRoles(e),!0,t).then(()=>this.rest.client.actions.GuildRolesPositionUpdate.handle({guild_id:e,roles:t}).guild)}addMessageReaction(e,t){return this.rest.makeRequest("put",r.Endpoints.selfMessageReaction(e.channel.id,e.id,t),!0).then(()=>this.rest.client.actions.MessageReactionAdd.handle({user_id:this.rest.client.user.id,message_id:e.id,emoji:a(t),channel_id:e.channel.id}).reaction)}removeMessageReaction(e,t,i){let n=r.Endpoints.selfMessageReaction(e.channel.id,e.id,t);return i.id!==this.rest.client.user.id&&(n=r.Endpoints.userMessageReaction(e.channel.id,e.id,t,null,i.id)),this.rest.makeRequest("delete",n,!0).then(()=>this.rest.client.actions.MessageReactionRemove.handle({user_id:i.id,message_id:e.id,emoji:a(t),channel_id:e.channel.id}).reaction)}removeMessageReactions(e){this.rest.makeRequest("delete",r.Endpoints.messageReactions(e.channel.id,e.id),!0).then(()=>e)}getMessageReactionUsers(e,t,i=100){return this.rest.makeRequest("get",r.Endpoints.messageReaction(e.channel.id,e.id,t,i),!0)}getMyApplication(){return this.rest.makeRequest("get",r.Endpoints.myApplication,!0).then(e=>new d(this.rest.client,e))}setNote(e,t){return this.rest.makeRequest("put",r.Endpoints.note(e.id),!0,{note:t}).then(()=>e)}}e.exports=p},function(e,t,i){const r=i(128);class n extends r{constructor(e,t){super(e,t),this.requestRemaining=1,this.first=!0}push(e){super.push(e),this.handle()}handleNext(e){this.waiting||(this.waiting=!0,this.restManager.client.setTimeout(()=>{this.requestRemaining=this.requestLimit,this.waiting=!1,this.handle()},e))}execute(e){e.request.gen().end((t,i)=>{if(i&&i.headers&&(this.requestLimit=i.headers["x-ratelimit-limit"],this.requestResetTime=1e3*Number(i.headers["x-ratelimit-reset"]),this.requestRemaining=Number(i.headers["x-ratelimit-remaining"]),this.timeDifference=Date.now()-new Date(i.headers.date).getTime(),this.handleNext(this.requestResetTime-Date.now()+this.timeDifference+1e3)),t)429===t.status?(this.requestRemaining=0,this.queue.unshift(e),this.restManager.client.setTimeout(()=>{this.globalLimit=!1,this.handle()},Number(i.headers["retry-after"])+500),i.headers["x-ratelimit-global"]&&(this.globalLimit=!0)):e.reject(t);else{this.globalLimit=!1;const t=i&&i.body?i.body:{};e.resolve(t),this.first&&(this.first=!1,this.handle())}})}handle(){if(super.handle(),!(this.requestRemaining<1||0===this.queue.length||this.globalLimit))for(;this.queue.length>0&&this.requestRemaining>0;)this.execute(this.queue.shift()),this.requestRemaining--}}e.exports=n},function(e,t,i){const r=i(128);class n extends r{constructor(e,t){super(e,t),this.waiting=!1,this.endpoint=t,this.timeDifference=0}push(e){super.push(e),this.handle()}execute(e){return new Promise(t=>{e.request.gen().end((i,r)=>{if(r&&r.headers&&(this.requestLimit=r.headers["x-ratelimit-limit"],this.requestResetTime=1e3*Number(r.headers["x-ratelimit-reset"]),this.requestRemaining=Number(r.headers["x-ratelimit-remaining"]),this.timeDifference=Date.now()-new Date(r.headers.date).getTime()),i)429===i.status?(this.restManager.client.setTimeout(()=>{this.waiting=!1,this.globalLimit=!1,t()},Number(r.headers["retry-after"])+500),r.headers["x-ratelimit-global"]&&(this.globalLimit=!0)):(this.queue.shift(),this.waiting=!1,e.reject(i),t(i));else{this.queue.shift(),this.globalLimit=!1;const i=r&&r.body?r.body:{};e.resolve(i),0===this.requestRemaining?this.restManager.client.setTimeout(()=>{this.waiting=!1,t(i)},this.requestResetTime-Date.now()+this.timeDifference+1e3):(this.waiting=!1,t(i))}})})}handle(){if(super.handle(),!this.waiting&&0!==this.queue.length&&!this.globalLimit){this.waiting=!0;const e=this.queue[0];this.execute(e).then(()=>this.handle())}}}e.exports=n},function(e,t,i){const r=i(2);class n{constructor(e){this.restManager=e,this._userAgent={url:"https://github.com/hydrabolt/discord.js",version:r.Package.version}}set(e){this._userAgent.url=e.url||"https://github.com/hydrabolt/discord.js",this._userAgent.version=e.version||r.Package.version}get userAgent(){return`DiscordBot (${this._userAgent.url}, ${this._userAgent.version})`}}e.exports=n},function(e,t,i){const r=i(6),n=i(41),s=i(2),a=i(258),o=i(3).EventEmitter;class f{constructor(e){this.client=e,this.connections=new r,this.pending=new r,this.client.on("self.voiceServer",this.onVoiceServer.bind(this)),this.client.on("self.voiceStateUpdate",this.onVoiceStateUpdate.bind(this))}onVoiceServer(e){this.pending.has(e.guild_id)&&this.pending.get(e.guild_id).setTokenAndEndpoint(e.token,e.endpoint)}onVoiceStateUpdate(e){this.pending.has(e.guild_id)&&this.pending.get(e.guild_id).setSessionID(e.session_id)}sendVoiceStateUpdate(e,t={}){if(!this.client.user)throw new Error("Unable to join because there is no client user.");if(!e.permissionsFor)throw new Error("Channel does not support permissionsFor; is it really a voice channel?");const i=e.permissionsFor(this.client.user);if(!i)throw new Error("There is no permission set for the client user in this channel - are they part of the guild?");if(!i.hasPermission("CONNECT"))throw new Error("You do not have permission to join this voice channel.");t=n({guild_id:e.guild.id,channel_id:e.id,self_mute:!1,self_deaf:!1},t),this.client.ws.send({op:s.OPCodes.VOICE_STATE_UPDATE,d:t})}joinChannel(e){return new Promise((t,i)=>{if(this.client.browser)throw new Error("Voice connections are not available in browsers.");if(this.pending.get(e.guild.id))throw new Error("Already connecting to this guild's voice server.");if(!e.joinable)throw new Error("You do not have permission to join this voice channel.");const r=this.connections.get(e.guild.id);if(r)return r.channel.id!==e.id&&(this.sendVoiceStateUpdate(e),this.connections.get(e.guild.id).channel=e),void t(r);const n=new h(this,e);this.pending.set(e.guild.id,n),n.on("fail",t=>{this.pending.delete(e.guild.id),i(t)}),n.on("pass",r=>{this.pending.delete(e.guild.id),this.connections.set(e.guild.id,r),r.once("ready",()=>t(r)),r.once("error",i),r.once("disconnect",()=>this.connections.delete(e.guild.id))})})}}class h extends o{constructor(e,t){super(),this.voiceManager=e,this.channel=t,this.deathTimer=this.voiceManager.client.setTimeout(()=>this.fail(new Error("Connection not established within 15 seconds.")),15e3),this.data={},this.sendVoiceStateUpdate()}checkReady(){return!!(this.data.token&&this.data.endpoint&&this.data.session_id)&&(this.pass(),!0)}setTokenAndEndpoint(e,t){return e?t?this.data.token?void this.fail(new Error("There is already a registered token for this connection.")):this.data.endpoint?void this.fail(new Error("There is already a registered endpoint for this connection.")):(t=t.match(/([^:]*)/)[0])?(this.data.token=e,this.data.endpoint=t,void this.checkReady()):void this.fail(new Error("Failed to find an endpoint.")):void this.fail(new Error("Endpoint not provided from voice server packet.")):void this.fail(new Error("Token not provided from voice server packet."))}setSessionID(e){return e?this.data.session_id?void this.fail(new Error("There is already a registered session ID for this connection.")):(this.data.session_id=e,void this.checkReady()):void this.fail(new Error("Session ID not supplied."))}clean(){clearInterval(this.deathTimer),this.emit("fail",new Error("Clean-up triggered :fourTriggered:"))}pass(){clearInterval(this.deathTimer),this.emit("pass",this.upgrade())}fail(e){this.emit("fail",e),this.clean()}sendVoiceStateUpdate(){try{this.voiceManager.sendVoiceStateUpdate(this.channel)}catch(e){this.fail(e)}}upgrade(){return new a(this)}}e.exports=f},function(e,t,i){const r=i(260),n=i(259),s=i(2),a=i(268),o=i(270),f=i(3).EventEmitter,h=i(10);class c extends f{constructor(e){super(),this.voiceManager=e.voiceManager,this.channel=e.channel,this.speaking=!1,this.receivers=[],this.authentication=e.data,this.player=new a(this),this.player.on("debug",e=>{this.emit("debug",`audio player - ${e}`)}),this.player.on("error",e=>{this.emit("warn",e),this.player.cleanup()}),this.ssrcMap=new Map,this.ready=!1,this.sockets={},this.connect()}setSpeaking(e){this.speaking!==e&&(this.speaking=e,this.sockets.ws.sendPacket({op:s.VoiceOPCodes.SPEAKING,d:{speaking:!0,delay:0}}).catch(e=>{this.emit("debug",e)}))}disconnect(){this.emit("closing"),this.voiceManager.client.ws.send({op:s.OPCodes.VOICE_STATE_UPDATE,d:{guild_id:this.channel.guild.id,channel_id:null,self_mute:!1,self_deaf:!1}}),this.emit("disconnect")}connect(){if(this.sockets.ws)throw new Error("There is already an existing WebSocket connection.");if(this.sockets.udp)throw new Error("There is already an existing UDP connection.");this.sockets.ws=new r(this),this.sockets.udp=new n(this),this.sockets.ws.on("error",e=>this.emit("error",e)),this.sockets.udp.on("error",e=>this.emit("error",e)),this.sockets.ws.once("ready",e=>{this.authentication.port=e.port,this.authentication.ssrc=e.ssrc,this.sockets.udp.findEndpointAddress().then(e=>{this.sockets.udp.createUDPSocket(e)},e=>this.emit("error",e))}),this.sockets.ws.once("sessionDescription",(e,t)=>{this.authentication.encryptionMode=e,this.authentication.secretKey=t,this.emit("ready"),this.ready=!0}),this.sockets.ws.on("speaking",e=>{const t=this.channel.guild,i=this.voiceManager.client.users.get(e.user_id);if(this.ssrcMap.set(+e.ssrc,i),!e.speaking)for(const r of this.receivers){const e=r.opusStreams.get(i.id),t=r.pcmStreams.get(i.id);e&&(e.push(null),e.open=!1,r.opusStreams.delete(i.id)),t&&(t.push(null),t.open=!1,r.pcmStreams.delete(i.id))}this.ready&&this.emit("speaking",i,e.speaking),t._memberSpeakUpdate(e.user_id,e.speaking)})}playFile(e,t){return this.playStream(h.createReadStream(e),t)}playStream(e,{seek=0,volume=1,passes=1}={}){const t={seek:seek,volume:volume,passes:passes};return this.player.playUnknownStream(e,t)}playConvertedStream(e,{seek=0,volume=1,passes=1}={}){const t={seek:seek,volume:volume,passes:passes};return this.player.playPCMStream(e,t)}createReceiver(){const e=new o(this);return this.receivers.push(e),e}}e.exports=c},function(e,t,i){(function(t){function r(e){try{const i=new t(e);let r="";for(let n=4;n{s.lookup(this.voiceConnection.authentication.endpoint,(i,r)=>{return i?void t(i):(this.discordAddress=r,void e(r))})})}send(e){return new Promise((t,i)=>{if(!this.socket)throw new Error("Tried to send a UDP packet, but there is no socket available.");if(!this.discordAddress||!this.discordPort)throw new Error("Malformed UDP address or port.");this.socket.send(e,0,e.length,this.discordPort,this.discordAddress,r=>{r?i(r):t(e)})})}createUDPSocket(e){this.discordAddress=e;const i=this.socket=n.createSocket("udp4");i.once("message",e=>{const t=r(e);return t.error?void this.emit("error",t.error):(this.localAddress=t.address,this.localPort=t.port,void this.voiceConnection.sockets.ws.sendPacket({op:a.VoiceOPCodes.SELECT_PROTOCOL,d:{protocol:"udp",data:{address:t.address,port:t.port,mode:"xsalsa20_poly1305"}}}))});const s=new t(70);s.writeUIntBE(this.voiceConnection.authentication.ssrc,0,4),this.send(s)}}e.exports=f}).call(t,i(0).Buffer)},function(e,t,i){const r=i(119),n=i(2),s=i(271),a=i(3).EventEmitter;class o extends a{constructor(e){super(),this.voiceConnection=e,this.attempts=0,this.connect(),this.dead=!1,this.voiceConnection.on("closing",this.shutdown.bind(this))}shutdown(){this.dead=!0,this.reset()}get client(){return this.voiceConnection.voiceManager.client}reset(){this.ws&&(this.ws.readyState!==r.CLOSED&&this.ws.close(),this.ws=null),this.clearHeartbeat()}connect(){if(!this.dead){if(this.ws&&this.reset(),this.attempts>5)return void this.emit("error",new Error(`Too many connection attempts (${this.attempts}).`));this.attempts++,this.ws=new r(`wss://${this.voiceConnection.authentication.endpoint}`),this.ws.onopen=this.onOpen.bind(this),this.ws.onmessage=this.onMessage.bind(this),this.ws.onclose=this.onClose.bind(this),this.ws.onerror=this.onError.bind(this)}}send(e){return new Promise((t,i)=>{if(!this.ws||this.ws.readyState!==r.OPEN)throw new Error(`Voice websocket not open to send ${e}.`);this.ws.send(e,null,r=>{r?i(r):t(e)})})}sendPacket(e){try{e=JSON.stringify(e)}catch(e){return Promise.reject(e)}return this.send(e)}onOpen(){this.sendPacket({op:n.OPCodes.DISPATCH,d:{server_id:this.voiceConnection.channel.guild.id,user_id:this.client.user.id,token:this.voiceConnection.authentication.token,session_id:this.voiceConnection.authentication.session_id}}).catch(()=>{this.emit("error",new Error("Tried to send join packet, but the WebSocket is not open."))})}onMessage(e){try{return this.onPacket(JSON.parse(e.data))}catch(e){return this.onError(e)}}onClose(){this.dead||this.client.setTimeout(this.connect.bind(this),1e3*this.attempts)}onError(e){this.emit("error",e)}onPacket(e){switch(e.op){case n.VoiceOPCodes.READY:this.setHeartbeat(e.d.heartbeat_interval),this.emit("ready",e.d);break;case n.VoiceOPCodes.SESSION_DESCRIPTION:this.emit("sessionDescription",e.d.mode,new s(e.d.secret_key));break;case n.VoiceOPCodes.SPEAKING:this.emit("speaking",e.d);break;default:this.emit("unknownPacket",e)}}setHeartbeat(e){return!e||isNaN(e)?void this.onError(new Error("Tried to set voice heartbeat but no valid interval was specified.")):(this.heartbeatInterval&&(this.emit("warn","A voice heartbeat interval is being overwritten"),clearInterval(this.heartbeatInterval)),void(this.heartbeatInterval=this.client.setInterval(this.sendHeartbeat.bind(this),e)))}clearHeartbeat(){return this.heartbeatInterval?(clearInterval(this.heartbeatInterval),void(this.heartbeatInterval=null)):void this.emit("warn","Tried to clear a heartbeat interval that does not exist")}sendHeartbeat(){this.sendPacket({op:n.VoiceOPCodes.HEARTBEAT,d:null}).catch(()=>{this.emit("warn","Tried to send heartbeat, but connection is not open"),this.clearHeartbeat()})}}e.exports=o},function(e,t,i){(function(t){const r=i(3).EventEmitter,n=i(116),s=new t(24);s.fill(0);class a extends r{constructor(e,t,i,r){super(),this.player=e,this.stream=t,this.streamingData={channels:2,count:0,sequence:i.sequence,timestamp:i.timestamp,pausedTime:0},this._startStreaming(),this._triggered=!1,this._volume=r.volume,this.passes=r.passes||1,this.paused=!1,this.setVolume(r.volume||1)}get time(){return this.streamingData.count*(this.streamingData.length||0)}get totalStreamTime(){return this.time+this.streamingData.pausedTime}get volume(){return this._volume}setVolume(e){this._volume=e}setVolumeDecibels(e){this._volume=Math.pow(10,e/20)}setVolumeLogarithmic(e){this._volume=Math.pow(e,1.660964)}pause(){this._setPaused(!0)}resume(){this._setPaused(!1)}end(){this._triggerTerminalState("end","user requested")}_setSpeaking(e){this.speaking=e,this.emit("speaking",e)}_sendBuffer(e,t,i){let r=this.passes;const n=this._createPacket(t,i,this.player.opusEncoder.encode(e));for(;r--;)this.player.voiceConnection.sockets.udp.send(n).catch(e=>this.emit("debug",`Failed to send a packet ${e}`))}_createPacket(e,i,r){const a=new t(r.length+28);a.fill(0),a[0]=128,a[1]=120,a.writeUIntBE(e,2,2),a.writeUIntBE(i,4,4),a.writeUIntBE(this.player.voiceConnection.authentication.ssrc,8,4),a.copy(s,0,0,12),r=n.secretbox(r,s,this.player.voiceConnection.authentication.secretKey.key);for(let o=0;o=e.length-1);r+=2){const t=Math.min(32767,Math.max(-32767,Math.floor(this._volume*e.readInt16LE(r))));i.writeInt16LE(t,r)}return i}_send(){try{if(this._triggered)return void this._setSpeaking(!1);const e=this.streamingData;if(e.missed>=5)return void this._triggerTerminalState("end","Stream is not generating quickly enough.");if(this.paused)return e.pausedTime+=10*e.length,void this.player.voiceConnection.voiceManager.client.setTimeout(()=>this._send(),10*e.length);this._setSpeaking(!0),e.startTime||(this.emit("start"),e.startTime=Date.now());const i=1920*e.channels;let r=this.stream.read(i);if(!r)return e.missed++,e.pausedTime+=10*e.length,void this.player.voiceConnection.voiceManager.client.setTimeout(()=>this._send(),10*e.length);if(e.missed=0,r.length!==i){const e=new t(i).fill(0);r.copy(e),r=e}r=this._applyVolume(r),e.count++,e.sequence=e.sequence+1<65536?e.sequence+1:0,e.timestamp=e.timestamp+4294967295?e.timestamp+960:0,this._sendBuffer(r,e.sequence,e.timestamp);const n=e.length+(e.startTime+e.pausedTime+e.count*e.length-Date.now());this.player.voiceConnection.voiceManager.client.setTimeout(()=>this._send(),n)}catch(e){this._triggerTerminalState("error",e)}}_triggerEnd(){this.emit("end")}_triggerError(e){this.emit("end"),this.emit("error",e)}_triggerTerminalState(e,t){if(!this._triggered)switch(this.emit("debug",`Triggered terminal state ${e} - stream is now dead`),this._triggered=!0,this._setSpeaking(!1),e){case"end":this._triggerEnd(t);break;case"error":this._triggerError(t);break;default:this.emit("error","Unknown trigger state")}}_startStreaming(){if(!this.stream)return void this.emit("error","No stream");this.stream.on("end",e=>this._triggerTerminalState("end",e)),this.stream.on("error",e=>this._triggerTerminalState("error",e));const e=this.streamingData;e.length=20,e.missed=0,this.stream.once("readable",()=>this._send())}_setPaused(e){e?(this.paused=!0,this._setSpeaking(!1)):(this.paused=!1,this._setSpeaking(!0))}}e.exports=a}).call(t,i(0).Buffer)},function(e,t,i){const r=i(129);let n;class s extends r{constructor(e){super(e);try{n=i(!function(){var e=new Error('Cannot find module "node-opus"');throw e.code="MODULE_NOT_FOUND",e}())}catch(e){throw e}this.encoder=new n.OpusEncoder(48e3,2)}encode(e){return super.encode(e),this.encoder.encode(e,1920)}decode(e){return super.decode(e),this.encoder.decode(e,1920)}}e.exports=s},function(e,t,i){function r(e){try{return new e}catch(e){return null}}const n=[i(262),i(264)];t.add=(e=>{n.push(e)}),t.fetch=(()=>{for(const e of n){const t=r(e);if(t)return t}throw new Error("Couldn't find an Opus engine.")})},function(e,t,i){const r=i(129);let n;class s extends r{constructor(e){super(e);try{n=i(204)}catch(e){throw e}this.encoder=new n(48e3,2)}encode(e){return super.encode(e),this.encoder.encode(e,960)}decode(e){return super.decode(e),this.encoder.decode(e)}}e.exports=s},function(e,t,i){const r=i(3).EventEmitter;class n extends r{constructor(e){super(),this.player=e}createConvertStream(){}}e.exports=n},function(e,t,i){t.fetch=(()=>i(267))},function(e,t,i){function r(){for(const e of["ffmpeg","avconv","./ffmpeg","./avconv"])if(!s.spawnSync(e,["-h"]).error)return e;throw new Error("FFMPEG was not found on your system, so audio cannot be played. Please make sure FFMPEG is installed and in your PATH.")}const n=i(265),s=i(10),a=i(3).EventEmitter;class o extends a{constructor(e){super(),this.process=e,this.input=null,this.process.on("error",e=>this.emit("error",e))}setInput(e){this.input=e,e.pipe(this.process.stdin,{end:!1}),this.input.on("error",e=>this.emit("error",e)),this.process.stdin.on("error",e=>this.emit("error",e))}destroy(){this.emit("debug","destroying a ffmpeg process:"),this.input&&this.input.unpipe&&this.process.stdin&&(this.input.unpipe(this.process.stdin),this.emit("unpiped the user input stream from the process input stream")),this.process.stdin&&(this.process.stdin.end(),this.emit("ended the process stdin")),this.process.stdin.destroy&&(this.process.stdin.destroy(),this.emit("destroyed the process stdin")),this.process.kill&&(this.process.kill(),this.emit("killed the process"))}}class f extends n{constructor(e){super(e),this.command=r()}handleError(e,t){e.destroy&&e.destroy(),this.emit("error",t)}createConvertStream(e=0){super.createConvertStream();const t=s.spawn(this.command,["-analyzeduration","0","-loglevel","0","-i","-","-f","s16le","-ar","48000","-ac","2","-ss",String(e),"pipe:1"],{stdio:["pipe","pipe","ignore"]});return new o(t)}}e.exports=f},function(e,t,i){const r=i(266),n=i(263),s=i(3).EventEmitter,a=i(261);class o extends s{constructor(e){super(),this.voiceConnection=e, -this.audioToPCM=new(r.fetch()),this.opusEncoder=n.fetch(),this.currentConverter=null,this.dispatcher=null,this.audioToPCM.on("error",e=>this.emit("error",e)),this.streamingData={channels:2,count:0,sequence:0,timestamp:0,pausedTime:0},this.voiceConnection.on("closing",()=>this.cleanup(null,"voice connection closing"))}playUnknownStream(e,{seek=0,volume=1,passes=1}={}){const t={seek:seek,volume:volume,passes:passes};e.on("end",()=>{this.emit("debug","Input stream to converter has ended")}),e.on("error",e=>this.emit("error",e));const i=this.audioToPCM.createConvertStream(t.seek);return i.on("error",e=>this.emit("error",e)),i.setInput(e),this.playPCMStream(i.process.stdout,i,t)}cleanup(e,t){this.emit("debug",`Clean up triggered due to ${t}`);const i=e&&this.dispatcher&&this.dispatcher.stream===e;!this.currentConverter||e&&!i||(this.currentConverter.destroy(),this.currentConverter=null)}playPCMStream(e,t,{seek=0,volume=1,passes=1}={}){const i={seek:seek,volume:volume,passes:passes};e.on("end",()=>this.emit("debug","PCM input stream ended")),this.cleanup(null,"outstanding play stream"),this.currentConverter=t,this.dispatcher&&(this.streamingData=this.dispatcher.streamingData),e.on("error",e=>this.emit("error",e));const r=new a(this,e,this.streamingData,i);return r.on("error",e=>this.emit("error",e)),r.on("end",()=>this.cleanup(r.stream,"dispatcher ended")),r.on("speaking",e=>this.voiceConnection.setSpeaking(e)),this.dispatcher=r,r.on("debug",e=>this.emit("debug",`Stream dispatch - ${e}`)),r}}e.exports=o},function(e,t,i){const r=i(9).Readable;class n extends r{constructor(){super(),this._packets=[],this.open=!0}_read(){}_push(e){this.open&&this.push(e)}}e.exports=n},function(e,t,i){(function(t){const r=i(3).EventEmitter,n=i(116),s=i(269),a=new t(24);a.fill(0);class o extends r{constructor(e){super(),this.queues=new Map,this.pcmStreams=new Map,this.opusStreams=new Map,this.destroyed=!1,this.voiceConnection=e,this._listener=(e=>{const t=+e.readUInt32BE(8).toString(10),i=this.voiceConnection.ssrcMap.get(t);if(i){if(this.queues.get(t))return this.queues.get(t).push(e),this.queues.get(t).map(e=>this.handlePacket(e,i)),void this.queues.delete(t);this.handlePacket(e,i)}else this.queues.has(t)||this.queues.set(t,[]),this.queues.get(t).push(e)}),this.voiceConnection.sockets.udp.socket.on("message",this._listener)}recreate(){this.destroyed&&(this.voiceConnection.sockets.udp.socket.on("message",this._listener),this.destroyed=!1)}destroy(){this.voiceConnection.sockets.udp.socket.removeListener("message",this._listener);for(const e of this.pcmStreams)e[1]._push(null),this.pcmStreams.delete(e[0]);for(const e of this.opusStreams)e[1]._push(null),this.opusStreams.delete(e[0]);this.destroyed=!0}createOpusStream(e){if(e=this.voiceConnection.voiceManager.client.resolver.resolveUser(e),!e)throw new Error("Couldn't resolve the user to create Opus stream.");if(this.opusStreams.get(e.id))throw new Error("There is already an existing stream for that user.");const t=new s;return this.opusStreams.set(e.id,t),t}createPCMStream(e){if(e=this.voiceConnection.voiceManager.client.resolver.resolveUser(e),!e)throw new Error("Couldn't resolve the user to create PCM stream.");if(this.pcmStreams.get(e.id))throw new Error("There is already an existing stream for that user.");const t=new s;return this.pcmStreams.set(e.id,t),t}handlePacket(e,i){e.copy(a,0,0,12);let r=n.secretbox.open(e.slice(12),a,this.voiceConnection.authentication.secretKey.key);if(!r)return void this.emit("warn","Failed to decrypt voice packet");if(r=new t(r),this.opusStreams.get(i.id)&&this.opusStreams.get(i.id)._push(r),this.emit("opus",i,r),this.listenerCount("pcm")>0||this.pcmStreams.size>0){const e=this.voiceConnection.player.opusEncoder.decode(r);this.pcmStreams.get(i.id)&&this.pcmStreams.get(i.id)._push(e),this.emit("pcm",i,e)}}}e.exports=o}).call(t,i(0).Buffer)},function(e,t){class i{constructor(e){this.key=new Uint8Array(new ArrayBuffer(e.length));for(const t in e)this.key[t]=e[t]}}e.exports=i},function(e,t,i){const r="undefined"!=typeof window,n=r?window.WebSocket:i(119),s=i(3).EventEmitter,a=i(2),o=r?i(247).inflateSync:i(97).inflateSync,f=i(274),h=i(131);class c extends s{constructor(e){super(),this.client=e,this.packetManager=new f(this),this.status=a.Status.IDLE,this.sessionID=null,this.sequence=-1,this.gateway=null,this.normalReady=!1,this.ws=null,this.disabledEvents={};for(const t in e.options.disabledEvents)this.disabledEvents[t]=!0;this.first=!0}_connect(e){this.client.emit("debug",`Connecting to gateway ${e}`),this.normalReady=!1,this.status!==a.Status.RECONNECTING&&(this.status=a.Status.CONNECTING),this.ws=new n(e),r&&(this.ws.binaryType="arraybuffer"),this.ws.onopen=(()=>this.eventOpen()),this.ws.onclose=(e=>this.eventClose(e)),this.ws.onmessage=(e=>this.eventMessage(e)),this.ws.onerror=(e=>this.eventError(e)),this._queue=[],this._remaining=3}connect(e){this.first?(this._connect(e),this.first=!1):this.client.setTimeout(()=>this._connect(e),5500)}send(e,t=false){return t?void this._send(JSON.stringify(e)):(this._queue.push(JSON.stringify(e)),void this.doQueue())}destroy(){this.ws.close(1e3),this._queue=[],this.status=a.Status.IDLE}_send(e){this.ws.readyState===n.OPEN&&(this.emit("send",e),this.ws.send(e))}doQueue(){const e=this._queue[0];if(this.ws.readyState===n.OPEN&&e){if(0===this._remaining)return void this.client.setTimeout(()=>{this.doQueue()},1e3);this._remaining--,this._send(e),this._queue.shift(),this.doQueue(),this.client.setTimeout(()=>this._remaining++,1e3)}}eventOpen(){this.client.emit("debug","Connection to gateway opened"),this.status===a.Status.RECONNECTING?this._sendResume():this._sendNewIdentify()}_sendResume(){if(!this.sessionID)return void this._sendNewIdentify();this.client.emit("debug","Identifying as resumed session");const e={token:this.client.token,session_id:this.sessionID,seq:this.sequence};this.send({op:a.OPCodes.RESUME,d:e})}_sendNewIdentify(){this.reconnecting=!1;const e=this.client.options.ws;e.token=this.client.token,this.client.options.shardCount>0&&(e.shard=[Number(this.client.options.shardId),Number(this.client.options.shardCount)]),this.client.emit("debug","Identifying as new session"),this.send({op:a.OPCodes.IDENTIFY,d:e}),this.sequence=-1}eventClose(e){this.emit("close",e),this.client.clearInterval(this.client.manager.heartbeatInterval),this.reconnecting||this.client.emit(a.Events.DISCONNECT),4004!==e.code&&4010!==e.code&&(this.reconnecting||1e3===e.code||this.tryReconnect())}eventMessage(e){let t=e.data;try{"string"!=typeof t&&(t instanceof ArrayBuffer&&(t=h(t)),t=o(t).toString()),t=JSON.parse(t)}catch(e){return this.eventError(new Error(a.Errors.BAD_WS_MESSAGE))}return this.client.emit("raw",t),t.op===a.OPCodes.HELLO&&this.client.manager.setupKeepAlive(t.d.heartbeat_interval),this.packetManager.handle(t)}eventError(e){this.client.listenerCount("error")>0&&this.client.emit("error",e),this.ws.close()}_emitReady(e=true){this.status=a.Status.READY,this.client.emit(a.Events.READY),this.packetManager.handleQueue(),this.normalReady=e}checkIfReady(){if(this.status!==a.Status.READY&&this.status!==a.Status.NEARLY){let e=0;for(const t of this.client.guilds.keys())e+=this.client.guilds.get(t).available?0:1;if(0===e){if(this.status=a.Status.NEARLY,this.client.options.fetchAllMembers){const e=this.client.guilds.map(e=>e.fetchMembers());return void Promise.all(e).then(()=>this._emitReady(),e=>{this.client.emit(a.Events.WARN,"Error in pre-ready guild member fetching"),this.client.emit(a.Events.ERROR,e),this._emitReady()})}this._emitReady()}}}tryReconnect(){this.status=a.Status.RECONNECTING,this.ws.close(),this.packetManager.handleQueue(),this.client.emit(a.Events.RECONNECTING),this.connect(this.client.ws.gateway)}}e.exports=c},function(e,t){function i(e){throw new Error("Cannot find module '"+e+"'.")}i.keys=function(){return[]},i.resolve=i,e.exports=i,i.id=273},function(e,t,i){const r=i(2),n=[r.WSEvents.READY,r.WSEvents.GUILD_CREATE,r.WSEvents.GUILD_DELETE,r.WSEvents.GUILD_MEMBERS_CHUNK,r.WSEvents.GUILD_MEMBER_ADD,r.WSEvents.GUILD_MEMBER_REMOVE];class s{constructor(e){this.ws=e,this.handlers={},this.queue=[],this.register(r.WSEvents.READY,"Ready"),this.register(r.WSEvents.GUILD_CREATE,"GuildCreate"),this.register(r.WSEvents.GUILD_DELETE,"GuildDelete"),this.register(r.WSEvents.GUILD_UPDATE,"GuildUpdate"),this.register(r.WSEvents.GUILD_BAN_ADD,"GuildBanAdd"),this.register(r.WSEvents.GUILD_BAN_REMOVE,"GuildBanRemove"),this.register(r.WSEvents.GUILD_MEMBER_ADD,"GuildMemberAdd"),this.register(r.WSEvents.GUILD_MEMBER_REMOVE,"GuildMemberRemove"),this.register(r.WSEvents.GUILD_MEMBER_UPDATE,"GuildMemberUpdate"),this.register(r.WSEvents.GUILD_ROLE_CREATE,"GuildRoleCreate"),this.register(r.WSEvents.GUILD_ROLE_DELETE,"GuildRoleDelete"),this.register(r.WSEvents.GUILD_ROLE_UPDATE,"GuildRoleUpdate"),this.register(r.WSEvents.GUILD_MEMBERS_CHUNK,"GuildMembersChunk"),this.register(r.WSEvents.CHANNEL_CREATE,"ChannelCreate"),this.register(r.WSEvents.CHANNEL_DELETE,"ChannelDelete"),this.register(r.WSEvents.CHANNEL_UPDATE,"ChannelUpdate"),this.register(r.WSEvents.PRESENCE_UPDATE,"PresenceUpdate"),this.register(r.WSEvents.USER_UPDATE,"UserUpdate"),this.register(r.WSEvents.USER_NOTE_UPDATE,"UserNoteUpdate"),this.register(r.WSEvents.VOICE_STATE_UPDATE,"VoiceStateUpdate"),this.register(r.WSEvents.TYPING_START,"TypingStart"),this.register(r.WSEvents.MESSAGE_CREATE,"MessageCreate"),this.register(r.WSEvents.MESSAGE_DELETE,"MessageDelete"),this.register(r.WSEvents.MESSAGE_UPDATE,"MessageUpdate"),this.register(r.WSEvents.VOICE_SERVER_UPDATE,"VoiceServerUpdate"),this.register(r.WSEvents.MESSAGE_DELETE_BULK,"MessageDeleteBulk"),this.register(r.WSEvents.CHANNEL_PINS_UPDATE,"ChannelPinsUpdate"),this.register(r.WSEvents.GUILD_SYNC,"GuildSync"),this.register(r.WSEvents.RELATIONSHIP_ADD,"RelationshipAdd"),this.register(r.WSEvents.RELATIONSHIP_REMOVE,"RelationshipRemove"),this.register(r.WSEvents.MESSAGE_REACTION_ADD,"MessageReactionAdd"),this.register(r.WSEvents.MESSAGE_REACTION_REMOVE,"MessageReactionRemove"),this.register(r.WSEvents.MESSAGE_REACTION_REMOVE_ALL,"MessageReactionRemoveAll")}get client(){return this.ws.client}register(e,t){const i=!function(){var e=new Error('Cannot find module "."');throw e.code="MODULE_NOT_FOUND",e}();this.handlers[e]=new i(this)}handleQueue(){this.queue.forEach((e,t)=>{this.handle(this.queue[t]),this.queue.splice(t,1)})}setSequence(e){e&&e>this.ws.sequence&&(this.ws.sequence=e)}handle(e){return e.op===r.OPCodes.RECONNECT?(this.setSequence(e.s),this.ws.tryReconnect(),!1):e.op===r.OPCodes.INVALID_SESSION?(this.ws.sessionID=null,this.ws._sendNewIdentify(),!1):(e.op===r.OPCodes.HEARTBEAT_ACK&&this.ws.client.emit("debug","Heartbeat acknowledged"),this.ws.status===r.Status.RECONNECTING&&(this.ws.reconnecting=!1,this.ws.checkIfReady()),this.setSequence(e.s),void 0===this.ws.disabledEvents[e.t]&&(this.ws.status!==r.Status.READY&&n.indexOf(e.t)===-1?(this.queue.push(e),!1):!!this.handlers[e.t]&&this.handlers[e.t].handle(e)))}}e.exports=s},function(e,t){class i{constructor(e,t){this.user=e,this.setup(t)}setup(e){this.type=e.type,this.name=e.name,this.id=e.id,this.revoked=e.revoked,this.integrations=e.integrations}}e.exports=i},function(e,t,i){const r=i(6),n=i(275);class s{constructor(e,t){this.user=e,this.client=this.user.client,Object.defineProperty(this,"client",{enumerable:!1,configurable:!1}),this.mutualGuilds=new r,this.connections=new r,this.setup(t)}setup(e){for(const t of e.mutual_guilds)this.client.guilds.has(t.id)&&this.mutualGuilds.set(t.id,this.client.guilds.get(t.id));for(const i of e.connected_accounts)this.connections.set(i.id,new n(this.user,i))}}e.exports=s},function(e,t){e.exports=function(e){if(e.includes("%")&&(e=decodeURIComponent(e)),e.includes(":")){const[t,i]=e.split(":");return{name:t,id:i}}return{name:e,id:null}}},function(e,t){},function(e,t){},function(e,t){},function(e,t,i){e.exports={Client:i(134),WebhookClient:i(135),Shard:i(62),ShardClientUtil:i(63),ShardingManager:i(136),Collection:i(6),splitMessage:i(79),escapeMarkdown:i(31),fetchRecommendedShards:i(78),Channel:i(20),ClientOAuth2Application:i(64),ClientUser:i(137),DMChannel:i(65),Emoji:i(21),EvaluatedPermissions:i(42),Game:i(12).Game,GroupDMChannel:i(66),Guild:i(43),GuildChannel:i(29),GuildMember:i(30),Invite:i(67),Message:i(44),MessageAttachment:i(68),MessageCollector:i(69),MessageEmbed:i(70),MessageReaction:i(71),OAuth2Application:i(72),PartialGuild:i(73),PartialGuildChannel:i(74),PermissionOverwrites:i(75),Presence:i(12).Presence,ReactionEmoji:i(45),Role:i(22),TextChannel:i(76),User:i(11),VoiceChannel:i(77),Webhook:i(46),version:i(61).version},"undefined"!=typeof window&&(window.Discord=e.exports)}]); \ No newline at end of file +var f=i(10),h=i(5),c=i(55),l=i(122),u=i(108),d=i(129),p=i(126),b=i(44),m=(i(240),i(62));f.inherits(r,h.EventEmitter),r.prototype.close=function(e){var t=null;try{for(var i=0,r=this.clients.length;i>>8^G[255&(r^e[t])];for(n=s>>3;n--;t+=8)r=r>>>8^G[255&(r^e[t])],r=r>>>8^G[255&(r^e[t+1])],r=r>>>8^G[255&(r^e[t+2])],r=r>>>8^G[255&(r^e[t+3])],r=r>>>8^G[255&(r^e[t+4])],r=r>>>8^G[255&(r^e[t+5])],r=r>>>8^G[255&(r^e[t+6])],r=r>>>8^G[255&(r^e[t+7])];return(4294967295^r)>>>0}function a(){}function o(e){this.buffer=new(L?Uint16Array:Array)(2*e),this.length=0}function f(e){var t,i,r,n,s,a,o,f,h,c,l=e.length,u=0,d=Number.POSITIVE_INFINITY;for(f=0;fu&&(u=e[f]),e[f]>=1;for(c=r<<16|f,h=a;h>16&255,s[a++]=i>>24;var o;switch(D){case 1===n:o=[0,n-1,0];break;case 2===n:o=[1,n-2,0];break;case 3===n:o=[2,n-3,0];break;case 4===n:o=[3,n-4,0];break;case 6>=n:o=[4,n-5,1];break;case 8>=n:o=[5,n-7,1];break;case 12>=n:o=[6,n-9,2];break;case 16>=n:o=[7,n-13,2];break;case 24>=n:o=[8,n-17,3];break;case 32>=n:o=[9,n-25,3];break;case 48>=n:o=[10,n-33,4];break;case 64>=n:o=[11,n-49,4];break;case 96>=n:o=[12,n-65,5];break;case 128>=n:o=[13,n-97,5];break;case 192>=n:o=[14,n-129,6];break;case 256>=n:o=[15,n-193,6];break;case 384>=n:o=[16,n-257,7];break;case 512>=n:o=[17,n-385,7];break;case 768>=n:o=[18,n-513,8];break;case 1024>=n:o=[19,n-769,8];break;case 1536>=n:o=[20,n-1025,9];break;case 2048>=n:o=[21,n-1537,9];break;case 3072>=n:o=[22,n-2049,10];break;case 4096>=n:o=[23,n-3073,10];break;case 6144>=n:o=[24,n-4097,11];break;case 8192>=n:o=[25,n-6145,11];break;case 12288>=n:o=[26,n-8193,12];break;case 16384>=n:o=[27,n-12289,12];break;case 24576>=n:o=[28,n-16385,13];break;case 32768>=n:o=[29,n-24577,13];break;default:r("invalid distance")}i=o,s[a++]=i[0],s[a++]=i[1],s[a++]=i[2];var f,h;for(f=0,h=s.length;f=a;)g[a++]=0;for(a=0;29>=a;)v[a++]=0}for(g[256]=1,n=0,s=t.length;n=s){for(l&&i(l,-1),a=0,o=s-n;as&&t+sh&&(n=r,h=s),258===s)break}return new c(h,t-n)}function d(e,t){var i,r,n,s,a,f=e.length,h=new o(572),c=new(L?Uint8Array:Array)(f);if(!L)for(s=0;s2*h[s-1]+c[s]&&(h[s]=2*h[s-1]+c[s]),u[s]=Array(h[s]),d[s]=Array(h[s]);for(n=0;ne[n]?(u[s][a]=o,d[s][a]=t,f+=2):(u[s][a]=e[n],d[s][a]=n,++n);p[s]=0,1===c[s]&&r(s)}return l}function b(e){var t,i,r,n,s=new(L?Uint16Array:Array)(e.length),a=[],o=[],f=0;for(t=0,i=e.length;t>>=1;return s}function m(e,t){this.input=e,this.b=this.c=0,this.g={},t&&(t.flags&&(this.g=t.flags),"string"==typeof t.filename&&(this.filename=t.filename),"string"==typeof t.comment&&(this.w=t.comment),t.deflateOptions&&(this.l=t.deflateOptions)),this.l||(this.l={})}function w(e,t){switch(this.o=[],this.p=32768,this.e=this.j=this.c=this.s=0,this.input=L?new Uint8Array(e):e,this.u=!1,this.q=ie,this.L=!1,!t&&(t={})||(t.index&&(this.c=t.index),t.bufferSize&&(this.p=t.bufferSize),t.bufferType&&(this.q=t.bufferType),t.resize&&(this.L=t.resize)),this.q){case te:this.b=32768,this.a=new(L?Uint8Array:Array)(32768+this.p+258);break;case ie:this.b=0,this.a=new(L?Uint8Array:Array)(this.p),this.f=this.T,this.z=this.P,this.r=this.R;break;default:r(Error("invalid inflate mode"))}}function g(e,t){for(var i,n=e.j,s=e.e,a=e.input,o=e.c,f=a.length;s=f&&r(Error("input buffer is broken")),n|=a[o++]<>>t,e.e=s-t,e.c=o,i}function v(e,t){for(var i,r,n=e.j,s=e.e,a=e.input,o=e.c,f=a.length,h=t[0],c=t[1];s=f);)n|=a[o++]<>>16,e.j=n>>r,e.e=s-r,e.c=o,65535&i}function _(e){function t(e,t,i){var r,n,s,a=this.I;for(s=0;s>>0;e=r}for(var n,s=1,a=0,o=e.length,f=0;0>>0}function E(e,t){var i,n;switch(this.input=e,this.c=0,!t&&(t={})||(t.index&&(this.c=t.index),t.verify&&(this.W=t.verify)),i=e[this.c++],n=e[this.c++],15&i){case ye:this.method=ye;break;default:r(Error("unsupported compression method"))}0!==((i<<8)+n)%31&&r(Error("invalid fcheck flag:"+((i<<8)+n)%31)),32&n&&r(Error("fdict flag is not supported")),this.K=new w(e,{index:this.c,bufferSize:t.bufferSize,bufferType:t.bufferType,resize:t.resize})}function A(e,t){this.input=e,this.a=new(L?Uint8Array:Array)(32768),this.k=ke.t;var i,r={};!t&&(t={})||"number"!=typeof t.compressionType||(this.k=t.compressionType);for(i in t)r[i]=t[i];r.outputBuffer=this.a,this.J=new h(this.input,r)}function S(t,i,r){e.nextTick(function(){var e,n;try{n=M(t,r)}catch(t){e=t}i(e,n)})}function M(e,t){var i;return i=new A(e).h(),t||(t={}),t.H?i:O(i)}function T(t,i,r){e.nextTick(function(){var e,n;try{n=x(t,r)}catch(t){e=t}i(e,n)})}function x(e,t){var i;return e.subarray=e.slice,i=new E(e).i(),t||(t={}),t.noBuffer?i:O(i)}function R(t,i,r){e.nextTick(function(){var e,n;try{n=I(t,r)}catch(t){e=t}i(e,n)})}function I(e,t){var i;return e.subarray=e.slice,i=new m(e).h(),t||(t={}),t.H?i:O(i)}function C(t,i,r){e.nextTick(function(){var e,n;try{n=P(t,r)}catch(t){e=t}i(e,n)})}function P(e,t){var i;return e.subarray=e.slice,i=new y(e).i(),t||(t={}),t.H?i:O(i)}function O(e){var t,r,n=new i(e.length);for(t=0,r=e.length;t>>8&255]<<16|q[e>>>16&255]<<8|q[e>>>24&255])>>32-t:q[e]>>8-t),8>t+a)o=o<>t-r-1&1,8===++a&&(a=0,n[s++]=q[o],o=0,s===n.length&&(n=this.f()));n[s]=o,this.buffer=n,this.m=a,this.index=s},n.prototype.finish=function(){var e,t=this.buffer,i=this.index;return 0B;++B){for(var j=B,F=j,z=7,j=j>>>1;j;j>>>=1)F<<=1,F|=1&j,--z;U[B]=(F<>>0}var q=U,H=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117],G=L?new Uint32Array(H):H;o.prototype.getParent=function(e){return 2*((e-2)/4|0)},o.prototype.push=function(e,t){var i,r,n,s=this.buffer;for(i=this.length,s[this.length++]=t,s[this.length++]=e;0s[r]);)n=s[i],s[i]=s[r],s[r]=n,n=s[i+1],s[i+1]=s[r+1],s[r+1]=n,i=r;return this.length},o.prototype.pop=function(){var e,t,i,r,n,s=this.buffer;for(t=s[0],e=s[1],this.length-=2,s[0]=s[this.length],s[1]=s[this.length+1],n=0;(r=2*n+2,!(r>=this.length))&&(r+2s[r]&&(r+=2),s[r]>s[n]);)i=s[n],s[n]=s[r],s[r]=i,i=s[n+1],s[n+1]=s[r+1],s[r+1]=i,n=r;return{index:e,value:t,length:this.length}};var V,W=2,K={NONE:0,M:1,t:W,Y:3},Y=[];for(V=0;288>V;V++)switch(D){case 143>=V:Y.push([V+48,8]);break;case 255>=V:Y.push([V-144+400,9]);break;case 279>=V:Y.push([V-256+0,7]);break;case 287>=V:Y.push([V-280+192,8]);break;default:r("invalid literal: "+V)}h.prototype.h=function(){var e,t,i,s,a=this.input;switch(this.k){case 0:for(i=0,s=a.length;i>>8&255,w[g++]=255&u,w[g++]=u>>>8&255,L)w.set(o,g),g+=o.length,w=w.subarray(0,g);else{for(p=0,m=o.length;pZ)for(;0Z?Z:138,J>Z-3&&J=J?(ie[X++]=17,ie[X++]=J-3,re[17]++):(ie[X++]=18,ie[X++]=J-11,re[18]++),Z-=J;else if(ie[X++]=te[V],re[te[V]]++,Z--,3>Z)for(;0Z?Z:6,J>Z-3&&JF;F++)G[F]=O[H[F]];for(x=19;4=e:return[265,e-11,1];case 14>=e:return[266,e-13,1];case 16>=e:return[267,e-15,1];case 18>=e:return[268,e-17,1];case 22>=e:return[269,e-19,2];case 26>=e:return[270,e-23,2];case 30>=e:return[271,e-27,2];case 34>=e:return[272,e-31,2];case 42>=e:return[273,e-35,3];case 50>=e:return[274,e-43,3];case 58>=e:return[275,e-51,3];case 66>=e:return[276,e-59,3];case 82>=e:return[277,e-67,4];case 98>=e:return[278,e-83,4];case 114>=e:return[279,e-99,4];case 130>=e:return[280,e-115,4];case 162>=e:return[281,e-131,5];case 194>=e:return[282,e-163,5];case 226>=e:return[283,e-195,5];case 257>=e:return[284,e-227,5];case 258===e:return[285,e-258,0];default:r("invalid length: "+e)}}var t,i,n=[];for(t=3;258>=t;t++)i=e(t),n[t]=i[2]<<24|i[1]<<16|i[0];return n}(),$=L?new Uint32Array(Z):Z;m.prototype.h=function(){var e,t,i,r,n,a,o,f,c=new(L?Uint8Array:Array)(32768),l=0,u=this.input,d=this.c,p=this.filename,b=this.w;if(c[l++]=31,c[l++]=139,c[l++]=8,e=0,this.g.fname&&(e|=Q),this.g.fcomment&&(e|=ee),this.g.fhcrc&&(e|=J),c[l++]=e,t=(Date.now?Date.now():+new Date)/1e3|0,c[l++]=255&t,c[l++]=t>>>8&255,c[l++]=t>>>16&255,c[l++]=t>>>24&255,c[l++]=0,c[l++]=X,this.g.fname!==N){for(o=0,f=p.length;o>>8&255),c[l++]=255&a;c[l++]=0}if(this.g.comment){for(o=0,f=b.length;o>>8&255),c[l++]=255&a;c[l++]=0}return this.g.fhcrc&&(i=65535&s(c,0,l),c[l++]=255&i,c[l++]=i>>>8&255),this.l.outputBuffer=c,this.l.outputIndex=l,n=new h(u,this.l),c=n.h(),l=n.b,L&&(l+8>c.buffer.byteLength?(this.a=new Uint8Array(l+8),this.a.set(new Uint8Array(c.buffer)),c=this.a):c=new Uint8Array(c.buffer)),r=s(u,N,N),c[l++]=255&r,c[l++]=r>>>8&255,c[l++]=r>>>16&255,c[l++]=r>>>24&255,f=u.length,c[l++]=255&f,c[l++]=f>>>8&255,c[l++]=f>>>16&255,c[l++]=f>>>24&255,this.c=d,L&&l>>=1){case 0:var t=this.input,i=this.c,n=this.a,s=this.b,a=t.length,o=N,f=N,h=n.length,c=N;switch(this.e=this.j=0,i+1>=a&&r(Error("invalid uncompressed block header: LEN")),o=t[i++]|t[i++]<<8,i+1>=a&&r(Error("invalid uncompressed block header: NLEN")),f=t[i++]|t[i++]<<8,o===~f&&r(Error("invalid uncompressed block header: length verify")),i+o>t.length&&r(Error("input buffer is broken")),this.q){case te:for(;s+o>n.length;){if(c=h-s,o-=c,L)n.set(t.subarray(i,i+c),s),s+=c,i+=c;else for(;c--;)n[s++]=t[i++];this.b=s,n=this.f(),s=this.b}break;case ie:for(;s+o>n.length;)n=this.f({B:2});break;default:r(Error("invalid inflate mode"))}if(L)n.set(t.subarray(i,i+o),s),s+=o,i+=o;else for(;o--;)n[s++]=t[i++];this.c=i,this.b=s,this.a=n;break;case 1:this.r(ge,_e);break;case 2:_(this);break;default:r(Error("unknown BTYPE: "+e))}}return this.z()};var re,ne,se=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],ae=L?new Uint16Array(se):se,oe=[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,258,258],fe=L?new Uint16Array(oe):oe,he=[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,0,0],ce=L?new Uint8Array(he):he,le=[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],ue=L?new Uint16Array(le):le,de=[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],pe=L?new Uint8Array(de):de,be=new(L?Uint8Array:Array)(288);for(re=0,ne=be.length;re=re?8:255>=re?9:279>=re?7:8;var me,we,ge=f(be),ve=new(L?Uint8Array:Array)(30);for(me=0,we=ve.length;men)r>=f&&(this.b=r,i=this.f(),r=this.b),i[r++]=n;else for(s=n-257,o=fe[s],0=f&&(this.b=r,i=this.f(),r=this.b);o--;)i[r]=i[r++-a];for(;8<=this.e;)this.e-=8,this.c--;this.b=r},w.prototype.R=function(e,t){var i=this.a,r=this.b;this.A=e;for(var n,s,a,o,f=i.length;256!==(n=v(this,e));)if(256>n)r>=f&&(i=this.f(),f=i.length),i[r++]=n;else for(s=n-257,o=fe[s],0f&&(i=this.f(),f=i.length);o--;)i[r]=i[r++-a];for(;8<=this.e;)this.e-=8,this.c--;this.b=r},w.prototype.f=function(){var e,t,i=new(L?Uint8Array:Array)(this.b-32768),r=this.b-32768,n=this.a;if(L)i.set(n.subarray(32768,i.length));else for(e=0,t=i.length;ee;++e)n[e]=n[r+e];return this.b=32768,n},w.prototype.T=function(e){var t,i,r,n,s=this.input.length/this.c+1|0,a=this.input,o=this.a;return e&&("number"==typeof e.B&&(s=e.B),"number"==typeof e.N&&(s+=e.N)),2>s?(i=(a.length-this.c)/this.A[2],n=258*(i/2)|0,r=nt&&(this.a.length=t),e=this.a),this.buffer=e},y.prototype.i=function(){for(var e=this.input.length;this.c>>0,s(o,N,N)!==d&&r(Error("invalid CRC-32 checksum: 0x"+s(o,N,N).toString(16)+" / 0x"+d.toString(16))),t.$=i=(p[b++]|p[b++]<<8|p[b++]<<16|p[b++]<<24)>>>0,(4294967295&o.length)!==i&&r(Error("invalid input size: "+(4294967295&o.length)+" / "+i)),this.G.push(t),this.c=b}this.S=D;var m,g,v,_=this.G,y=0,k=0;for(m=0,g=_.length;m>>0,t!==k(e)&&r(Error("invalid adler-32 checksum"))),e};var ye=8,ke=K;A.prototype.h=function(){var e,t,i,n,s,a,o,f=0;switch(o=this.a,e=ye){case ye:t=Math.LOG2E*Math.log(32768)-8;break;default:r(Error("invalid compression method"))}switch(i=t<<4|e,o[f++]=i,e){case ye:switch(this.k){case ke.NONE:s=0;break;case ke.M:s=1;break;case ke.t:s=2;break;default:r(Error("unsupported compression type"))}break;default:r(Error("invalid compression method"))}return n=s<<6|0,o[f++]=n|31-(256*i+n)%31,a=k(this.input),this.J.b=f,o=this.J.h(),f=o.length,L&&(o=new Uint8Array(o.buffer),o.length<=f+4&&(this.a=new Uint8Array(o.length+4),this.a.set(o),o=this.a),o=o.subarray(0,f+4)),o[f++]=a>>24&255,o[f++]=a>>16&255,o[f++]=a>>8&255,o[f++]=255&a,o},t.deflate=S,t.deflateSync=M,t.inflate=T,t.inflateSync=x,t.gzip=R,t.gzipSync=I,t.gunzip=C,t.gunzipSync=P}).call(this)}).call(t,i(8),i(0).Buffer)},function(e,t,i){const r=i(1),n=i(13),s=i(47),a=i(14),o=i(69),f=i(25),h=i(80),c=i(81),l=i(32),u=i(70);class d{constructor(e){this.client=e}get pastReady(){return this.client.ws.status===r.Status.READY}newGuild(e){const t=this.client.guilds.has(e.id),i=new s(this.client,e);return this.client.guilds.set(i.id,i),this.pastReady&&!t&&(this.client.options.fetchAllMembers?i.fetchMembers().then(()=>{this.client.emit(r.Events.GUILD_CREATE,i)}):this.client.emit(r.Events.GUILD_CREATE,i)),i}newUser(e){if(this.client.users.has(e.id))return this.client.users.get(e.id);const t=new a(this.client,e);return this.client.users.set(t.id,t),t}newChannel(e,t){const i=this.client.channels.has(e.id);let n;return e.type===r.ChannelTypes.DM?n=new o(this.client,e):e.type===r.ChannelTypes.groupDM?n=new u(this.client,e):(t=t||this.client.guilds.get(e.guild_id),t&&(e.type===r.ChannelTypes.text?(n=new h(t,e),t.channels.set(n.id,n)):e.type===r.ChannelTypes.voice&&(n=new c(t,e),t.channels.set(n.id,n)))),n?(this.pastReady&&!i&&this.client.emit(r.Events.CHANNEL_CREATE,n),this.client.channels.set(n.id,n),n):null}newEmoji(e,t){const i=t.emojis.has(e.id);if(e&&!i){let i=new f(t,e);return this.client.emit(r.Events.EMOJI_CREATE,i),t.emojis.set(i.id,i),i}return i?t.emojis.get(e.id):null}killEmoji(e){e instanceof f&&e.guild&&(this.client.emit(r.Events.EMOJI_DELETE,e),e.guild.emojis.delete(e.id))}killGuild(e){const t=this.client.guilds.has(e.id);this.client.guilds.delete(e.id),t&&this.pastReady&&this.client.emit(r.Events.GUILD_DELETE,e)}killUser(e){this.client.users.delete(e.id)}killChannel(e){this.client.channels.delete(e.id),e instanceof l&&e.guild.channels.delete(e.id)}updateGuild(e,t){const i=n(e);e.setup(t),this.pastReady&&this.client.emit(r.Events.GUILD_UPDATE,i,e)}updateChannel(e,t){e.setup(t)}updateEmoji(e,t){const i=n(e);e.setup(t),this.client.emit(r.Events.GUILD_EMOJI_UPDATE,i,e)}}e.exports=d},function(e,t,i){const r=i(1);class n{constructor(e){this.client=e,this.heartbeatInterval=null}connectToWebSocket(e,t,i){this.client.emit(r.Events.DEBUG,`Authenticated using token ${e}`),this.client.token=e;const n=this.client.setTimeout(()=>i(new Error(r.Errors.TOOK_TOO_LONG)),3e5);this.client.rest.methods.getGateway().then(s=>{this.client.emit(r.Events.DEBUG,`Using gateway ${s}`),this.client.ws.connect(s),this.client.ws.once("close",e=>{4004===e.code&&i(new Error(r.Errors.BAD_LOGIN)),4010===e.code&&i(new Error(r.Errors.INVALID_SHARD))}),this.client.once(r.Events.READY,()=>{t(e),this.client.clearTimeout(n)})},i)}setupKeepAlive(e){this.heartbeatInterval=this.client.setInterval(()=>{this.client.emit("debug","Sending heartbeat"),this.client.ws.send({op:r.OPCodes.HEARTBEAT,d:this.client.ws.sequence},!0)},e)}destroy(){return new Promise(e=>{this.client.ws.destroy(),this.client.user.bot?e():e(this.client.rest.methods.logout())})}}e.exports=n},function(e,t,i){class r{constructor(e){this.client=e,this.register(i(269)),this.register(i(270)),this.register(i(271)),this.register(i(275)),this.register(i(272)),this.register(i(273)),this.register(i(274)),this.register(i(253)),this.register(i(254)),this.register(i(255)),this.register(i(257)),this.register(i(268)),this.register(i(261)),this.register(i(262)),this.register(i(256)),this.register(i(263)),this.register(i(264)),this.register(i(265)),this.register(i(276)),this.register(i(278)),this.register(i(277)),this.register(i(267)),this.register(i(258)),this.register(i(259)),this.register(i(260)),this.register(i(266))}register(e){this[e.name.replace(/Action$/,"")]=new e(this.client)}}e.exports=r},function(e,t,i){const r=i(4);class n extends r{handle(e){const t=this.client,i=t.dataManager.newChannel(e);return{channel:i}}}e.exports=n},function(e,t,i){const r=i(4);class n extends r{constructor(e){super(e),this.deleted=new Map}handle(e){const t=this.client;let i=t.channels.get(e.id);return i?(t.dataManager.killChannel(i),this.deleted.set(i.id,i),this.scheduleForDeletion(i.id)):i=this.deleted.get(e.id)||null,{channel:i}}scheduleForDeletion(e){this.client.setTimeout(()=>this.deleted.delete(e),this.client.options.restWsBridgeTimeout)}}e.exports=n},function(e,t,i){const r=i(4),n=i(1),s=i(13);class a extends r{handle(e){const t=this.client,i=t.channels.get(e.id);if(i){const r=s(i);return i.setup(e),t.emit(n.Events.CHANNEL_UPDATE,r,i),{old:r,updated:i}}return{old:null,updated:null}}}e.exports=a},function(e,t,i){const r=i(4),n=i(1);class s extends r{handle(e){const t=this.client,i=t.guilds.get(e.guild_id),r=t.dataManager.newUser(e.user);i&&r&&t.emit(n.Events.GUILD_BAN_REMOVE,i,r)}}e.exports=s},function(e,t,i){const r=i(4),n=i(1);class s extends r{constructor(e){super(e),this.deleted=new Map}handle(e){const t=this.client;let i=t.guilds.get(e.id);if(i){if(i.available&&e.unavailable)return i.available=!1,t.emit(n.Events.GUILD_UNAVAILABLE,i),{guild:null};t.guilds.delete(i.id),this.deleted.set(i.id,i),this.scheduleForDeletion(i.id)}else i=this.deleted.get(e.id)||null;return{guild:i}}scheduleForDeletion(e){this.client.setTimeout(()=>this.deleted.delete(e),this.client.options.restWsBridgeTimeout)}}e.exports=s},function(e,t,i){const r=i(4);class n extends r{handle(e,t){const i=this.client,r=i.dataManager.newEmoji(e,t);return{emoji:r}}}e.exports=n},function(e,t,i){const r=i(4);class n extends r{handle(e){const t=this.client;return t.dataManager.killEmoji(e),{data:e}}}e.exports=n},function(e,t,i){const r=i(4);class n extends r{handle(e,t){const i=this.client;for(let r of e.emojis){const e=t.emojis.has(r.id);e?i.dataManager.updateEmoji(t.emojis.get(r.id),r):r=i.dataManager.newEmoji(r,t)}for(let r of t.emojis)e.emoijs.has(r.id)||i.dataManager.killEmoji(r);return{emojis:e.emojis}}}e.exports=n},function(e,t,i){const r=i(4);class n extends r{handle(e,t){const i=e._addMember(t,!1);return{member:i}}}e.exports=n},function(e,t,i){const r=i(4),n=i(1);class s extends r{constructor(e){super(e),this.deleted=new Map}handle(e){const t=this.client,i=t.guilds.get(e.guild_id);if(i){let r=i.members.get(e.user.id);return r?(i.memberCount--,i._removeMember(r),this.deleted.set(i.id+e.user.id,r),t.status===n.Status.READY&&t.emit(n.Events.GUILD_MEMBER_REMOVE,r),this.scheduleForDeletion(i.id,e.user.id)):r=this.deleted.get(i.id+e.user.id)||null,{guild:i,member:r}}return{guild:i,member:null}}scheduleForDeletion(e,t){this.client.setTimeout(()=>this.deleted.delete(e+t),this.client.options.restWsBridgeTimeout)}}e.exports=s},function(e,t,i){const r=i(4),n=i(1),s=i(20);class a extends r{handle(e){const t=this.client,i=t.guilds.get(e.guild_id);if(i){const r=i.roles.has(e.role.id),a=new s(i,e.role);return i.roles.set(a.id,a),r||t.emit(n.Events.GUILD_ROLE_CREATE,a),{role:a}}return{role:null}}}e.exports=a},function(e,t,i){const r=i(4),n=i(1);class s extends r{constructor(e){super(e),this.deleted=new Map}handle(e){const t=this.client,i=t.guilds.get(e.guild_id);if(i){let r=i.roles.get(e.role_id);return r?(i.roles.delete(e.role_id),this.deleted.set(i.id+e.role_id,r),this.scheduleForDeletion(i.id,e.role_id),t.emit(n.Events.GUILD_ROLE_DELETE,r)):r=this.deleted.get(i.id+e.role_id)||null, +{role:r}}return{role:null}}scheduleForDeletion(e,t){this.client.setTimeout(()=>this.deleted.delete(e+t),this.client.options.restWsBridgeTimeout)}}e.exports=s},function(e,t,i){const r=i(4),n=i(1),s=i(13);class a extends r{handle(e){const t=this.client,i=t.guilds.get(e.guild_id);if(i){const r=e.role;let a=null;const o=i.roles.get(r.id);return o&&(a=s(o),o.setup(e.role),t.emit(n.Events.GUILD_ROLE_UPDATE,a,o)),{old:a,updated:o}}return{old:null,updated:null}}}e.exports=a},function(e,t,i){const r=i(4);class n extends r{handle(e){const t=this.client,i=t.guilds.get(e.guild_id);if(i)for(const r of e.roles){const e=i.roles.get(r.id);e&&(e.position=r.position)}return{guild:i}}}e.exports=n},function(e,t,i){const r=i(4);class n extends r{handle(e){const t=this.client,i=t.guilds.get(e.id);if(i){e.presences=e.presences||[];for(const t of e.presences)i._setPresence(t.user.id,t);e.members=e.members||[];for(const r of e.members){const e=i.members.get(r.user.id);e?i._updateMember(e,r):i._addMember(r)}}}}e.exports=n},function(e,t,i){const r=i(4),n=i(1),s=i(13);class a extends r{handle(e){const t=this.client,i=t.guilds.get(e.id);if(i){const r=s(i);return i.setup(e),t.emit(n.Events.GUILD_UPDATE,r,i),{old:r,updated:i}}return{old:null,updated:null}}}e.exports=a},function(e,t,i){const r=i(4),n=i(34);class s extends r{handle(e){const t=this.client,i=t.channels.get((e instanceof Array?e[0]:e).channel_id);if(i){if(e instanceof Array){const r=new Array(e.length);for(let s=0;sthis.deleted.delete(e+t),this.client.options.restWsBridgeTimeout)}}e.exports=n},function(e,t,i){const r=i(4),n=i(6),s=i(1);class a extends r{handle(e){const t=this.client,i=t.channels.get(e.channel_id),r=e.ids,a=new n;for(const o of r){const e=i.messages.get(o);e&&a.set(e.id,e)}return a.size>0&&t.emit(s.Events.MESSAGE_BULK_DELETE,a),{messages:a}}}e.exports=a},function(e,t,i){const r=i(4),n=i(1);class s extends r{handle(e){const t=this.client.users.get(e.user_id);if(!t)return!1;const i=this.client.channels.get(e.channel_id);if(!i||"voice"===i.type)return!1;const r=i.messages.get(e.message_id);if(!r)return!1;if(!e.emoji)return!1;const s=r._addReaction(e.emoji,t);return s&&this.client.emit(n.Events.MESSAGE_REACTION_ADD,s,t),{message:r,reaction:s,user:t}}}e.exports=s},function(e,t,i){const r=i(4),n=i(1);class s extends r{handle(e){const t=this.client.users.get(e.user_id);if(!t)return!1;const i=this.client.channels.get(e.channel_id);if(!i||"voice"===i.type)return!1;const r=i.messages.get(e.message_id);if(!r)return!1;if(!e.emoji)return!1;const s=r._removeReaction(e.emoji,t);return s&&this.client.emit(n.Events.MESSAGE_REACTION_REMOVE,s,t),{message:r,reaction:s,user:t}}}e.exports=s},function(e,t,i){const r=i(4),n=i(1);class s extends r{handle(e){const t=this.client.channels.get(e.channel_id);if(!t||"voice"===t.type)return!1;const i=t.messages.get(e.message_id);return!!i&&(i._clearReactions(),this.client.emit(n.Events.MESSAGE_REACTION_REMOVE_ALL,i),{message:i})}}e.exports=s},function(e,t,i){const r=i(4),n=i(1),s=i(13);class a extends r{handle(e){const t=this.client,i=t.channels.get(e.channel_id);if(i){const r=i.messages.get(e.id);if(r){const i=s(r);return r.patch(e),r._edits.unshift(i),t.emit(n.Events.MESSAGE_UPDATE,i,r),{old:i,updated:r}}return{old:r,updated:r}}return{old:null,updated:null}}}e.exports=a},function(e,t,i){const r=i(4);class n extends r{handle(e){const t=this.client,i=t.dataManager.newUser(e);return{user:i}}}e.exports=n},function(e,t,i){const r=i(4),n=i(1);class s extends r{handle(e){const t=this.client,i=t.user.notes.get(e.id),r=e.note.length?e.note:null;return t.user.notes.set(e.id,r),t.emit(n.Events.USER_NOTE_UPDATE,e.id,i,r),{old:i,updated:r}}}e.exports=s},function(e,t,i){const r=i(4),n=i(1),s=i(13);class a extends r{handle(e){const t=this.client;if(t.user){if(t.user.equals(e))return{old:t.user,updated:t.user};const i=s(t.user);return t.user.patch(e),t.emit(n.Events.USER_UPDATE,i,t.user),{old:i,updated:t.user}}return{old:null,updated:null}}}e.exports=a},function(e,t,i){function r(e){let t=e.split("?")[0];if(t.includes("/channels/")||t.includes("/guilds/")){const e=~t.indexOf("/channels/")?t.indexOf("/channels/"):t.indexOf("/guilds/"),i=t.substring(e).split("/")[2];t=t.replace(/(\d{8,})/g,":id").replace(":id",i)}return t}const n=i(60),s=i(1);class a{constructor(e,t,i,n,s,a){this.rest=e,this.method=t,this.url=i,this.auth=n,this.data=s,this.file=a,this.route=r(this.url)}getAuth(){if(this.rest.client.token&&this.rest.client.user&&this.rest.client.user.bot)return`Bot ${this.rest.client.token}`;if(this.rest.client.token)return this.rest.client.token;throw new Error(s.Errors.NO_TOKEN)}gen(){const e=n[this.method](this.url);if(this.auth&&e.set("authorization",this.getAuth()),this.file&&this.file.file){e.attach("file",this.file.file,this.file.name),this.data=this.data||{};for(const t in this.data)this.data[t]&&e.field(t,this.data[t])}else this.data&&e.send(this.data);return e.set("User-Agent",this.rest.userAgentManager.userAgent),e}}e.exports=a},function(e,t,i){const r=i(1),n=i(6),s=i(83),a=i(336),o=i(14),f=i(33),h=i(20),c=i(71),l=i(49),u=i(335),d=i(67);class p{constructor(e){this.rest=e}loginToken(e=this.rest.client.token){return new Promise((t,i)=>{e=e.replace(/^Bot\s*/i,""),this.rest.client.manager.connectToWebSocket(e,t,i)})}loginEmailPassword(e,t){return this.rest.client.emit("warn","Client launched using email and password - should use token instead"),this.rest.client.email=e,this.rest.client.password=t,this.rest.makeRequest("post",r.Endpoints.login,!1,{email:e,password:t}).then(e=>this.loginToken(e.token))}logout(){return this.rest.makeRequest("post",r.Endpoints.logout,!0,{})}getGateway(){return this.rest.makeRequest("get",r.Endpoints.gateway,!0).then(e=>{return this.rest.client.ws.gateway=`${e.url}/?encoding=json&v=${r.PROTOCOL_VERSION}`,this.rest.client.ws.gateway})}getBotGateway(){return this.rest.makeRequest("get",r.Endpoints.botGateway,!0)}sendMessage(e,t,{tts,nonce,embed,disableEveryone,split}={},i=null){return new Promise((r,n)=>{"undefined"!=typeof t&&(t=this.rest.client.resolver.resolveString(t)),t&&((disableEveryone||"undefined"==typeof disableEveryone&&this.rest.client.options.disableEveryone)&&(t=t.replace(/@(everyone|here)/g,"@​$1")),split&&(t=s(t,"object"==typeof split?split:{}))),e instanceof o||e instanceof f?this.createDM(e).then(e=>{this._sendMessageRequest(e,t,i,tts,nonce,embed,r,n)},n):this._sendMessageRequest(e,t,i,tts,nonce,embed,r,n)})}_sendMessageRequest(e,t,i,n,s,a,o,f){if(t instanceof Array){const h=[];let c=this.rest.makeRequest("post",r.Endpoints.channelMessages(e.id),!0,{content:t[0],tts:n,nonce:s},i).catch(f);for(let l=1;l<=t.length;l++)if(l{return h.push(f),this.rest.makeRequest("post",r.Endpoints.channelMessages(e.id),!0,{content:t[o],tts:n,nonce:s,embed:a},i)},f)}else c.then(e=>{h.push(e),o(this.rest.client.actions.MessageCreate.handle(h).messages)},f)}else this.rest.makeRequest("post",r.Endpoints.channelMessages(e.id),!0,{content:t,tts:n,nonce:s,embed:a},i).then(e=>o(this.rest.client.actions.MessageCreate.handle(e).message),f)}deleteMessage(e){return this.rest.makeRequest("del",r.Endpoints.channelMessage(e.channel.id,e.id),!0).then(()=>this.rest.client.actions.MessageDelete.handle({id:e.id,channel_id:e.channel.id}).message)}bulkDeleteMessages(e,t){return this.rest.makeRequest("post",`${r.Endpoints.channelMessages(e.id)}/bulk_delete`,!0,{messages:t}).then(()=>this.rest.client.actions.MessageDeleteBulk.handle({channel_id:e.id,ids:t}).messages)}updateMessage(e,t,{embed}={}){return t=this.rest.client.resolver.resolveString(t),this.rest.makeRequest("patch",r.Endpoints.channelMessage(e.channel.id,e.id),!0,{content:t,embed:embed}).then(e=>this.rest.client.actions.MessageUpdate.handle(e).updated)}createChannel(e,t,i){return this.rest.makeRequest("post",r.Endpoints.guildChannels(e.id),!0,{name:t,type:i}).then(e=>this.rest.client.actions.ChannelCreate.handle(e).channel)}createDM(e){const t=this.getExistingDM(e);return t?Promise.resolve(t):this.rest.makeRequest("post",r.Endpoints.userChannels(this.rest.client.user.id),!0,{recipient_id:e.id}).then(e=>this.rest.client.actions.ChannelCreate.handle(e).channel)}getExistingDM(e){return this.rest.client.channels.find(t=>t.recipient&&t.recipient.id===e.id)}deleteChannel(e){return(e instanceof o||e instanceof f)&&(e=this.getExistingDM(e)),e?this.rest.makeRequest("del",r.Endpoints.channel(e.id),!0).then(t=>{return t.id=e.id,this.rest.client.actions.ChannelDelete.handle(t).channel}):Promise.reject(new Error("No channel to delete."))}updateChannel(e,t){const i={};return i.name=(t.name||e.name).trim(),i.topic=t.topic||e.topic,i.position=t.position||e.position,i.bitrate=t.bitrate||e.bitrate,i.user_limit=t.userLimit||e.userLimit,this.rest.makeRequest("patch",r.Endpoints.channel(e.id),!0,i).then(e=>this.rest.client.actions.ChannelUpdate.handle(e).updated)}leaveGuild(e){return e.ownerID===this.rest.client.user.id?Promise.reject(new Error("Guild is owned by the client.")):this.rest.makeRequest("del",r.Endpoints.meGuild(e.id),!0).then(()=>this.rest.client.actions.GuildDelete.handle({id:e.id}).guild)}createGuild(e){return e.icon=this.rest.client.resolver.resolveBase64(e.icon)||null,e.region=e.region||"us-central",new Promise((t,i)=>{this.rest.makeRequest("post",r.Endpoints.guilds,!0,e).then(e=>{if(this.rest.client.guilds.has(e.id))return void t(this.rest.client.guilds.get(e.id));const r=i=>{i.id===e.id&&(this.rest.client.removeListener("guildCreate",r),this.rest.client.clearTimeout(n),t(i))};this.rest.client.on("guildCreate",r);const n=this.rest.client.setTimeout(()=>{this.rest.client.removeListener("guildCreate",r),i(new Error("Took too long to receive guild data."))},1e4)},i)})}deleteGuild(e){return this.rest.makeRequest("del",r.Endpoints.guild(e.id),!0).then(()=>this.rest.client.actions.GuildDelete.handle({id:e.id}).guild)}getUser(e){return this.rest.makeRequest("get",r.Endpoints.user(e),!0).then(e=>this.rest.client.actions.UserGet.handle(e).user)}updateCurrentUser(e){const t=this.rest.client.user,i={};return i.username=e.username||t.username,i.avatar=this.rest.client.resolver.resolveBase64(e.avatar)||t.avatar,t.bot||(i.email=e.email||t.email,i.password=this.rest.client.password,e.new_password&&(i.new_password=e.newPassword)),this.rest.makeRequest("patch",r.Endpoints.me,!0,i).then(e=>this.rest.client.actions.UserUpdate.handle(e).updated)}updateGuild(e,t){const i={};return t.name&&(i.name=t.name),t.region&&(i.region=t.region),t.verificationLevel&&(i.verification_level=Number(t.verificationLevel)),t.afkChannel&&(i.afk_channel_id=this.rest.client.resolver.resolveChannel(t.afkChannel).id),t.afkTimeout&&(i.afk_timeout=Number(t.afkTimeout)),t.icon&&(i.icon=this.rest.client.resolver.resolveBase64(t.icon)),t.owner&&(i.owner_id=this.rest.client.resolver.resolveUser(t.owner).id),t.splash&&(i.splash=this.rest.client.resolver.resolveBase64(t.splash)),this.rest.makeRequest("patch",r.Endpoints.guild(e.id),!0,i).then(e=>this.rest.client.actions.GuildUpdate.handle(e).updated)}kickGuildMember(e,t){return this.rest.makeRequest("del",r.Endpoints.guildMember(e.id,t.id),!0).then(()=>this.rest.client.actions.GuildMemberRemove.handle({guild_id:e.id,user:t.user}).member)}createGuildRole(e){return this.rest.makeRequest("post",r.Endpoints.guildRoles(e.id),!0).then(t=>this.rest.client.actions.GuildRoleCreate.handle({guild_id:e.id,role:t}).role)}deleteGuildRole(e){return this.rest.makeRequest("del",r.Endpoints.guildRole(e.guild.id,e.id),!0).then(()=>this.rest.client.actions.GuildRoleDelete.handle({guild_id:e.guild.id,role_id:e.id}).role)}setChannelOverwrite(e,t){return this.rest.makeRequest("put",`${r.Endpoints.channelPermissions(e.id)}/${t.id}`,!0,t)}deletePermissionOverwrites(e){return this.rest.makeRequest("del",`${r.Endpoints.channelPermissions(e.channel.id)}/${e.id}`,!0).then(()=>e)}getChannelMessages(e,t={}){const i=[];t.limit&&i.push(`limit=${t.limit}`),t.around?i.push(`around=${t.around}`):t.before?i.push(`before=${t.before}`):t.after&&i.push(`after=${t.after}`);let n=r.Endpoints.channelMessages(e.id);return i.length>0&&(n+=`?${i.join("&")}`),this.rest.makeRequest("get",n,!0)}getChannelMessage(e,t){const i=e.messages.get(t);return i?Promise.resolve(i):this.rest.makeRequest("get",r.Endpoints.channelMessage(e.id,t),!0)}getGuildMember(e,t){return this.rest.makeRequest("get",r.Endpoints.guildMember(e.id,t.id),!0).then(t=>this.rest.client.actions.GuildMemberGet.handle(e,t).member)}updateGuildMember(e,t){t.channel&&(t.channel_id=this.rest.client.resolver.resolveChannel(t.channel).id),t.roles&&(t.roles=t.roles.map(e=>e instanceof h?e.id:e));let i=r.Endpoints.guildMember(e.guild.id,e.id);if(e.id===this.rest.client.user.id){const n=Object.keys(t);1===n.length&&"nick"===n[0]&&(i=r.Endpoints.stupidInconsistentGuildEndpoint(e.guild.id))}return this.rest.makeRequest("patch",i,!0,t).then(t=>e.guild._updateMember(e,t).mem)}sendTyping(e){return this.rest.makeRequest("post",`${r.Endpoints.channel(e)}/typing`,!0)}banGuildMember(e,t,i=0){const n=this.rest.client.resolver.resolveUserID(t);return n?this.rest.makeRequest("put",`${r.Endpoints.guildBans(e.id)}/${n}?delete-message-days=${i}`,!0,{"delete-message-days":i}).then(()=>{if(t instanceof f)return t;const i=this.rest.client.resolver.resolveUser(n);return i?(t=this.rest.client.resolver.resolveGuildMember(e,i),t||i):n}):Promise.reject(new Error("Couldn't resolve the user ID to ban."))}unbanGuildMember(e,t){return new Promise((i,n)=>{const s=this.rest.client.resolver.resolveUserID(t);if(!s)throw new Error("Couldn't resolve the user ID to unban.");const a=(t,n)=>{t.id===e.id&&n.id===s&&(this.rest.client.removeListener(r.Events.GUILD_BAN_REMOVE,a),this.rest.client.clearTimeout(o),i(n))};this.rest.client.on(r.Events.GUILD_BAN_REMOVE,a);const o=this.rest.client.setTimeout(()=>{this.rest.client.removeListener(r.Events.GUILD_BAN_REMOVE,a),n(new Error("Took too long to receive the ban remove event."))},1e4);this.rest.makeRequest("del",`${r.Endpoints.guildBans(e.id)}/${s}`,!0).catch(e=>{this.rest.client.removeListener(r.Events.GUILD_BAN_REMOVE,a),this.rest.client.clearTimeout(o),n(e)})})}getGuildBans(e){return this.rest.makeRequest("get",r.Endpoints.guildBans(e.id),!0).then(e=>{const t=new n;for(const i of e){const e=this.rest.client.dataManager.newUser(i.user);t.set(e.id,e)}return t})}updateGuildRole(e,t){const i={};if(i.name=t.name||e.name,i.position="undefined"!=typeof t.position?t.position:e.position,i.color=t.color||e.color,"string"==typeof i.color&&i.color.startsWith("#")&&(i.color=parseInt(i.color.replace("#",""),16)),i.hoist="undefined"!=typeof t.hoist?t.hoist:e.hoist,i.mentionable="undefined"!=typeof t.mentionable?t.mentionable:e.mentionable,t.permissions){let e=0;for(let n of t.permissions)"string"==typeof n&&(n=r.PermissionFlags[n]),e|=n;i.permissions=e}else i.permissions=e.permissions;return this.rest.makeRequest("patch",r.Endpoints.guildRole(e.guild.id,e.id),!0,i).then(t=>this.rest.client.actions.GuildRoleUpdate.handle({role:t,guild_id:e.guild.id}).updated)}pinMessage(e){return this.rest.makeRequest("put",`${r.Endpoints.channel(e.channel.id)}/pins/${e.id}`,!0).then(()=>e)}unpinMessage(e){return this.rest.makeRequest("del",`${r.Endpoints.channel(e.channel.id)}/pins/${e.id}`,!0).then(()=>e)}getChannelPinnedMessages(e){return this.rest.makeRequest("get",`${r.Endpoints.channel(e.id)}/pins`,!0)}createChannelInvite(e,t){const i={};return i.temporary=t.temporary,i.max_age=t.maxAge,i.max_uses=t.maxUses,this.rest.makeRequest("post",`${r.Endpoints.channelInvites(e.id)}`,!0,i).then(e=>new c(this.rest.client,e))}deleteInvite(e){return this.rest.makeRequest("del",r.Endpoints.invite(e.code),!0).then(()=>e)}getInvite(e){return this.rest.makeRequest("get",r.Endpoints.invite(e),!0).then(e=>new c(this.rest.client,e))}getGuildInvites(e){return this.rest.makeRequest("get",r.Endpoints.guildInvites(e.id),!0).then(e=>{const t=new n;for(const i of e){const e=new c(this.rest.client,i);t.set(e.code,e)}return t})}pruneGuildMembers(e,t,i){return this.rest.makeRequest(i?"get":"post",`${r.Endpoints.guildPrune(e.id)}?days=${t}`,!0).then(e=>e.pruned)}createEmoji(e,t,i){return this.rest.makeRequest("post",`${r.Endpoints.guildEmojis(e.id)}`,!0,{name:i,image:t}).then(t=>this.rest.client.actions.EmojiCreate.handle(t,e).emoji)}deleteEmoji(e){return this.rest.makeRequest("delete",`${r.Endpoints.guildEmojis(e.guild.id)}/${e.id}`,!0).then(()=>this.rest.client.actions.EmojiDelete.handle(e).data)}getWebhook(e,t){return this.rest.makeRequest("get",r.Endpoints.webhook(e,t),!t).then(e=>new l(this.rest.client,e))}getGuildWebhooks(e){return this.rest.makeRequest("get",r.Endpoints.guildWebhooks(e.id),!0).then(e=>{const t=new n;for(const i of e)t.set(i.id,new l(this.rest.client,i));return t})}getChannelWebhooks(e){return this.rest.makeRequest("get",r.Endpoints.channelWebhooks(e.id),!0).then(e=>{const t=new n;for(const i of e)t.set(i.id,new l(this.rest.client,i));return t})}createWebhook(e,t,i){return this.rest.makeRequest("post",r.Endpoints.channelWebhooks(e.id),!0,{name:t,avatar:i}).then(e=>new l(this.rest.client,e))}editWebhook(e,t,i){return this.rest.makeRequest("patch",r.Endpoints.webhook(e.id,e.token),!1,{name:t,avatar:i}).then(t=>{return e.name=t.name,e.avatar=t.avatar,e})}deleteWebhook(e){return this.rest.makeRequest("delete",r.Endpoints.webhook(e.id,e.token),!1)}sendWebhookMessage(e,t,{avatarURL,tts,disableEveryone,embeds}={},i=null){return"undefined"!=typeof t&&(t=this.rest.client.resolver.resolveString(t)),t&&(disableEveryone||"undefined"==typeof disableEveryone&&this.rest.client.options.disableEveryone)&&(t=t.replace(/@(everyone|here)/g,"@​$1")),this.rest.makeRequest("post",`${r.Endpoints.webhook(e.id,e.token)}?wait=true`,!1,{username:e.name,avatar_url:avatarURL,content:t,tts:tts,file:i,embeds:embeds})}sendSlackWebhookMessage(e,t){return this.rest.makeRequest("post",`${r.Endpoints.webhook(e.id,e.token)}/slack?wait=true`,!1,t)}fetchUserProfile(e){return this.rest.makeRequest("get",r.Endpoints.userProfile(e.id),!0).then(t=>new u(e,t))}addFriend(e){return this.rest.makeRequest("post",r.Endpoints.relationships("@me"),!0,{username:e.username,discriminator:e.discriminator}).then(()=>e)}removeFriend(e){return this.rest.makeRequest("delete",`${r.Endpoints.relationships("@me")}/${e.id}`,!0).then(()=>e)}blockUser(e){return this.rest.makeRequest("put",`${r.Endpoints.relationships("@me")}/${e.id}`,!0,{type:2}).then(()=>e)}unblockUser(e){return this.rest.makeRequest("delete",`${r.Endpoints.relationships("@me")}/${e.id}`,!0).then(()=>e)}setRolePositions(e,t){return this.rest.makeRequest("patch",r.Endpoints.guildRoles(e),!0,t).then(()=>this.rest.client.actions.GuildRolesPositionUpdate.handle({guild_id:e,roles:t}).guild)}addMessageReaction(e,t){return this.rest.makeRequest("put",r.Endpoints.selfMessageReaction(e.channel.id,e.id,t),!0).then(()=>this.rest.client.actions.MessageReactionAdd.handle({user_id:this.rest.client.user.id,message_id:e.id,emoji:a(t),channel_id:e.channel.id}).reaction)}removeMessageReaction(e,t,i){let n=r.Endpoints.selfMessageReaction(e.channel.id,e.id,t);return i.id!==this.rest.client.user.id&&(n=r.Endpoints.userMessageReaction(e.channel.id,e.id,t,null,i.id)),this.rest.makeRequest("delete",n,!0).then(()=>this.rest.client.actions.MessageReactionRemove.handle({user_id:i.id,message_id:e.id,emoji:a(t),channel_id:e.channel.id}).reaction)}removeMessageReactions(e){this.rest.makeRequest("delete",r.Endpoints.messageReactions(e.channel.id,e.id),!0).then(()=>e)}getMessageReactionUsers(e,t,i=100){return this.rest.makeRequest("get",r.Endpoints.messageReaction(e.channel.id,e.id,t,i),!0)}getMyApplication(){return this.rest.makeRequest("get",r.Endpoints.myApplication,!0).then(e=>new d(this.rest.client,e))}setNote(e,t){return this.rest.makeRequest("put",r.Endpoints.note(e.id),!0,{note:t}).then(()=>e)}}e.exports=p},function(e,t,i){const r=i(132);class n extends r{constructor(e,t){super(e,t),this.requestRemaining=1,this.first=!0}push(e){super.push(e),this.handle()}handleNext(e){this.waiting||(this.waiting=!0,this.restManager.client.setTimeout(()=>{this.requestRemaining=this.requestLimit,this.waiting=!1,this.handle()},e))}execute(e){e.request.gen().end((t,i)=>{if(i&&i.headers&&(this.requestLimit=i.headers["x-ratelimit-limit"],this.requestResetTime=1e3*Number(i.headers["x-ratelimit-reset"]),this.requestRemaining=Number(i.headers["x-ratelimit-remaining"]),this.timeDifference=Date.now()-new Date(i.headers.date).getTime(),this.handleNext(this.requestResetTime-Date.now()+this.timeDifference+1e3)),t)429===t.status?(this.requestRemaining=0,this.queue.unshift(e),this.restManager.client.setTimeout(()=>{this.globalLimit=!1,this.handle()},Number(i.headers["retry-after"])+500),i.headers["x-ratelimit-global"]&&(this.globalLimit=!0)):e.reject(t);else{this.globalLimit=!1;const t=i&&i.body?i.body:{};e.resolve(t),this.first&&(this.first=!1,this.handle())}})}handle(){if(super.handle(),!(this.requestRemaining<1||0===this.queue.length||this.globalLimit))for(;this.queue.length>0&&this.requestRemaining>0;)this.execute(this.queue.shift()),this.requestRemaining--}}e.exports=n},function(e,t,i){const r=i(132);class n extends r{constructor(e,t){super(e,t),this.waiting=!1,this.endpoint=t,this.timeDifference=0}push(e){super.push(e),this.handle()}execute(e){return new Promise(t=>{e.request.gen().end((i,r)=>{if(r&&r.headers&&(this.requestLimit=r.headers["x-ratelimit-limit"],this.requestResetTime=1e3*Number(r.headers["x-ratelimit-reset"]),this.requestRemaining=Number(r.headers["x-ratelimit-remaining"]),this.timeDifference=Date.now()-new Date(r.headers.date).getTime()),i)429===i.status?(this.restManager.client.setTimeout(()=>{this.waiting=!1,this.globalLimit=!1,t()},Number(r.headers["retry-after"])+500),r.headers["x-ratelimit-global"]&&(this.globalLimit=!0)):(this.queue.shift(),this.waiting=!1,e.reject(i),t(i));else{this.queue.shift(),this.globalLimit=!1;const i=r&&r.body?r.body:{};e.resolve(i),0===this.requestRemaining?this.restManager.client.setTimeout(()=>{this.waiting=!1,t(i)},this.requestResetTime-Date.now()+this.timeDifference+1e3):(this.waiting=!1,t(i))}})})}handle(){if(super.handle(),!this.waiting&&0!==this.queue.length&&!this.globalLimit){this.waiting=!0;const e=this.queue[0];this.execute(e).then(()=>this.handle())}}}e.exports=n},function(e,t,i){const r=i(1);class n{constructor(e){this.restManager=e,this._userAgent={url:"https://github.com/hydrabolt/discord.js",version:r.Package.version}}set(e){this._userAgent.url=e.url||"https://github.com/hydrabolt/discord.js",this._userAgent.version=e.version||r.Package.version}get userAgent(){return`DiscordBot (${this._userAgent.url}, ${this._userAgent.version})`}}e.exports=n},function(e,t,i){const r=i(6),n=i(45),s=i(1),a=i(285),o=i(5).EventEmitter;class f{constructor(e){this.client=e,this.connections=new r,this.pending=new r,this.client.on("self.voiceServer",this.onVoiceServer.bind(this)),this.client.on("self.voiceStateUpdate",this.onVoiceStateUpdate.bind(this))}onVoiceServer(e){this.pending.has(e.guild_id)&&this.pending.get(e.guild_id).setTokenAndEndpoint(e.token,e.endpoint)}onVoiceStateUpdate(e){this.pending.has(e.guild_id)&&this.pending.get(e.guild_id).setSessionID(e.session_id)}sendVoiceStateUpdate(e,t={}){if(!this.client.user)throw new Error("Unable to join because there is no client user.");if(!e.permissionsFor)throw new Error("Channel does not support permissionsFor; is it really a voice channel?");const i=e.permissionsFor(this.client.user);if(!i)throw new Error("There is no permission set for the client user in this channel - are they part of the guild?");if(!i.hasPermission("CONNECT"))throw new Error("You do not have permission to join this voice channel.");t=n({guild_id:e.guild.id,channel_id:e.id,self_mute:!1,self_deaf:!1},t),this.client.ws.send({op:s.OPCodes.VOICE_STATE_UPDATE,d:t})}joinChannel(e){return new Promise((t,i)=>{if(this.client.browser)throw new Error("Voice connections are not available in browsers.");if(this.pending.get(e.guild.id))throw new Error("Already connecting to this guild's voice server.");if(!e.joinable)throw new Error("You do not have permission to join this voice channel.");const r=this.connections.get(e.guild.id);if(r)return r.channel.id!==e.id&&(this.sendVoiceStateUpdate(e),this.connections.get(e.guild.id).channel=e),void t(r);const n=new h(this,e);this.pending.set(e.guild.id,n),n.on("fail",t=>{this.pending.delete(e.guild.id),i(t)}),n.on("pass",r=>{this.pending.delete(e.guild.id),this.connections.set(e.guild.id,r),r.once("ready",()=>t(r)),r.once("error",i),r.once("disconnect",()=>this.connections.delete(e.guild.id))})})}}class h extends o{constructor(e,t){super(),this.voiceManager=e,this.channel=t,this.deathTimer=this.voiceManager.client.setTimeout(()=>this.fail(new Error("Connection not established within 15 seconds.")),15e3),this.data={},this.sendVoiceStateUpdate()}checkReady(){return!!(this.data.token&&this.data.endpoint&&this.data.session_id)&&(this.pass(),!0)}setTokenAndEndpoint(e,t){return e?t?this.data.token?void this.fail(new Error("There is already a registered token for this connection.")):this.data.endpoint?void this.fail(new Error("There is already a registered endpoint for this connection.")):(t=t.match(/([^:]*)/)[0])?(this.data.token=e,this.data.endpoint=t,void this.checkReady()):void this.fail(new Error("Failed to find an endpoint.")):void this.fail(new Error("Endpoint not provided from voice server packet.")):void this.fail(new Error("Token not provided from voice server packet."))}setSessionID(e){return e?this.data.session_id?void this.fail(new Error("There is already a registered session ID for this connection.")):(this.data.session_id=e,void this.checkReady()):void this.fail(new Error("Session ID not supplied."))}clean(){clearInterval(this.deathTimer),this.emit("fail",new Error("Clean-up triggered :fourTriggered:"))}pass(){clearInterval(this.deathTimer),this.emit("pass",this.upgrade())}fail(e){this.emit("fail",e),this.clean()}sendVoiceStateUpdate(){try{this.voiceManager.sendVoiceStateUpdate(this.channel)}catch(e){this.fail(e)}}upgrade(){return new a(this)}}e.exports=f},function(e,t,i){const r=i(287),n=i(286),s=i(1),a=i(295),o=i(297),f=i(5).EventEmitter,h=i(12);class c extends f{constructor(e){super(),this.voiceManager=e.voiceManager,this.channel=e.channel,this.speaking=!1,this.receivers=[],this.authentication=e.data,this.player=new a(this),this.player.on("debug",e=>{this.emit("debug",`audio player - ${e}`)}),this.player.on("error",e=>{this.emit("warn",e),this.player.cleanup()}),this.ssrcMap=new Map,this.ready=!1,this.sockets={},this.connect()}setSpeaking(e){this.speaking!==e&&(this.speaking=e,this.sockets.ws.sendPacket({op:s.VoiceOPCodes.SPEAKING,d:{speaking:!0,delay:0}}).catch(e=>{this.emit("debug",e)}))}disconnect(){this.emit("closing"),this.voiceManager.client.ws.send({op:s.OPCodes.VOICE_STATE_UPDATE,d:{guild_id:this.channel.guild.id,channel_id:null,self_mute:!1,self_deaf:!1}}),this.emit("disconnect")}connect(){if(this.sockets.ws)throw new Error("There is already an existing WebSocket connection.");if(this.sockets.udp)throw new Error("There is already an existing UDP connection.");this.sockets.ws=new r(this),this.sockets.udp=new n(this),this.sockets.ws.on("error",e=>this.emit("error",e)),this.sockets.udp.on("error",e=>this.emit("error",e)),this.sockets.ws.once("ready",e=>{this.authentication.port=e.port,this.authentication.ssrc=e.ssrc,this.sockets.udp.findEndpointAddress().then(e=>{this.sockets.udp.createUDPSocket(e)},e=>this.emit("error",e))}),this.sockets.ws.once("sessionDescription",(e,t)=>{this.authentication.encryptionMode=e,this.authentication.secretKey=t,this.emit("ready"),this.ready=!0}),this.sockets.ws.on("speaking",e=>{const t=this.channel.guild,i=this.voiceManager.client.users.get(e.user_id);if(this.ssrcMap.set(+e.ssrc,i),!e.speaking)for(const r of this.receivers){const e=r.opusStreams.get(i.id),t=r.pcmStreams.get(i.id);e&&(e.push(null),e.open=!1,r.opusStreams.delete(i.id)),t&&(t.push(null),t.open=!1,r.pcmStreams.delete(i.id))}this.ready&&this.emit("speaking",i,e.speaking),t._memberSpeakUpdate(e.user_id,e.speaking)})}playFile(e,t){return this.playStream(h.createReadStream(e),t)}playStream(e,{seek=0,volume=1,passes=1}={}){const t={seek:seek,volume:volume,passes:passes};return this.player.playUnknownStream(e,t)}playConvertedStream(e,{seek=0,volume=1,passes=1}={}){const t={seek:seek,volume:volume,passes:passes};return this.player.playPCMStream(e,t)}createReceiver(){const e=new o(this);return this.receivers.push(e),e}}e.exports=c},function(e,t,i){(function(t){function r(e){try{const i=new t(e);let r="";for(let n=4;n{s.lookup(this.voiceConnection.authentication.endpoint,(i,r)=>{return i?void t(i):(this.discordAddress=r,void e(r))})})}send(e){return new Promise((t,i)=>{if(!this.socket)throw new Error("Tried to send a UDP packet, but there is no socket available.");if(!this.discordAddress||!this.discordPort)throw new Error("Malformed UDP address or port.");this.socket.send(e,0,e.length,this.discordPort,this.discordAddress,r=>{r?i(r):t(e)})})}createUDPSocket(e){this.discordAddress=e;const i=this.socket=n.createSocket("udp4");i.once("message",e=>{const t=r(e);return t.error?void this.emit("error",t.error):(this.localAddress=t.address,this.localPort=t.port,void this.voiceConnection.sockets.ws.sendPacket({op:a.VoiceOPCodes.SELECT_PROTOCOL,d:{protocol:"udp",data:{address:t.address,port:t.port,mode:"xsalsa20_poly1305"}}}))});const s=new t(70);s.writeUIntBE(this.voiceConnection.authentication.ssrc,0,4),this.send(s)}}e.exports=f}).call(t,i(0).Buffer)},function(e,t,i){const r=i(123),n=i(1),s=i(298),a=i(5).EventEmitter;class o extends a{constructor(e){super(),this.voiceConnection=e,this.attempts=0,this.connect(),this.dead=!1,this.voiceConnection.on("closing",this.shutdown.bind(this))}shutdown(){this.dead=!0,this.reset()}get client(){return this.voiceConnection.voiceManager.client}reset(){this.ws&&(this.ws.readyState!==r.CLOSED&&this.ws.close(),this.ws=null),this.clearHeartbeat()}connect(){if(!this.dead){if(this.ws&&this.reset(),this.attempts>5)return void this.emit("error",new Error(`Too many connection attempts (${this.attempts}).`));this.attempts++,this.ws=new r(`wss://${this.voiceConnection.authentication.endpoint}`),this.ws.onopen=this.onOpen.bind(this),this.ws.onmessage=this.onMessage.bind(this),this.ws.onclose=this.onClose.bind(this),this.ws.onerror=this.onError.bind(this)}}send(e){return new Promise((t,i)=>{if(!this.ws||this.ws.readyState!==r.OPEN)throw new Error(`Voice websocket not open to send ${e}.`);this.ws.send(e,null,r=>{r?i(r):t(e)})})}sendPacket(e){try{e=JSON.stringify(e)}catch(e){return Promise.reject(e)}return this.send(e)}onOpen(){this.sendPacket({op:n.OPCodes.DISPATCH,d:{server_id:this.voiceConnection.channel.guild.id,user_id:this.client.user.id,token:this.voiceConnection.authentication.token, +session_id:this.voiceConnection.authentication.session_id}}).catch(()=>{this.emit("error",new Error("Tried to send join packet, but the WebSocket is not open."))})}onMessage(e){try{return this.onPacket(JSON.parse(e.data))}catch(e){return this.onError(e)}}onClose(){this.dead||this.client.setTimeout(this.connect.bind(this),1e3*this.attempts)}onError(e){this.emit("error",e)}onPacket(e){switch(e.op){case n.VoiceOPCodes.READY:this.setHeartbeat(e.d.heartbeat_interval),this.emit("ready",e.d);break;case n.VoiceOPCodes.SESSION_DESCRIPTION:this.emit("sessionDescription",e.d.mode,new s(e.d.secret_key));break;case n.VoiceOPCodes.SPEAKING:this.emit("speaking",e.d);break;default:this.emit("unknownPacket",e)}}setHeartbeat(e){return!e||isNaN(e)?void this.onError(new Error("Tried to set voice heartbeat but no valid interval was specified.")):(this.heartbeatInterval&&(this.emit("warn","A voice heartbeat interval is being overwritten"),clearInterval(this.heartbeatInterval)),void(this.heartbeatInterval=this.client.setInterval(this.sendHeartbeat.bind(this),e)))}clearHeartbeat(){return this.heartbeatInterval?(clearInterval(this.heartbeatInterval),void(this.heartbeatInterval=null)):void this.emit("warn","Tried to clear a heartbeat interval that does not exist")}sendHeartbeat(){this.sendPacket({op:n.VoiceOPCodes.HEARTBEAT,d:null}).catch(()=>{this.emit("warn","Tried to send heartbeat, but connection is not open"),this.clearHeartbeat()})}}e.exports=o},function(e,t,i){(function(t){const r=i(5).EventEmitter,n=i(120),s=new t(24);s.fill(0);class a extends r{constructor(e,t,i,r){super(),this.player=e,this.stream=t,this.streamingData={channels:2,count:0,sequence:i.sequence,timestamp:i.timestamp,pausedTime:0},this._startStreaming(),this._triggered=!1,this._volume=r.volume,this.passes=r.passes||1,this.paused=!1,this.setVolume(r.volume||1)}get time(){return this.streamingData.count*(this.streamingData.length||0)}get totalStreamTime(){return this.time+this.streamingData.pausedTime}get volume(){return this._volume}setVolume(e){this._volume=e}setVolumeDecibels(e){this._volume=Math.pow(10,e/20)}setVolumeLogarithmic(e){this._volume=Math.pow(e,1.660964)}pause(){this._setPaused(!0)}resume(){this._setPaused(!1)}end(){this._triggerTerminalState("end","user requested")}_setSpeaking(e){this.speaking=e,this.emit("speaking",e)}_sendBuffer(e,t,i){let r=this.passes;const n=this._createPacket(t,i,this.player.opusEncoder.encode(e));for(;r--;)this.player.voiceConnection.sockets.udp.send(n).catch(e=>this.emit("debug",`Failed to send a packet ${e}`))}_createPacket(e,i,r){const a=new t(r.length+28);a.fill(0),a[0]=128,a[1]=120,a.writeUIntBE(e,2,2),a.writeUIntBE(i,4,4),a.writeUIntBE(this.player.voiceConnection.authentication.ssrc,8,4),a.copy(s,0,0,12),r=n.secretbox(r,s,this.player.voiceConnection.authentication.secretKey.key);for(let o=0;o=e.length-1);r+=2){const t=Math.min(32767,Math.max(-32767,Math.floor(this._volume*e.readInt16LE(r))));i.writeInt16LE(t,r)}return i}_send(){try{if(this._triggered)return void this._setSpeaking(!1);const e=this.streamingData;if(e.missed>=5)return void this._triggerTerminalState("end","Stream is not generating quickly enough.");if(this.paused)return e.pausedTime+=10*e.length,void this.player.voiceConnection.voiceManager.client.setTimeout(()=>this._send(),10*e.length);this._setSpeaking(!0),e.startTime||(this.emit("start"),e.startTime=Date.now());const i=1920*e.channels;let r=this.stream.read(i);if(!r)return e.missed++,e.pausedTime+=10*e.length,void this.player.voiceConnection.voiceManager.client.setTimeout(()=>this._send(),10*e.length);if(e.missed=0,r.length!==i){const e=new t(i).fill(0);r.copy(e),r=e}r=this._applyVolume(r),e.count++,e.sequence=e.sequence+1<65536?e.sequence+1:0,e.timestamp=e.timestamp+4294967295?e.timestamp+960:0,this._sendBuffer(r,e.sequence,e.timestamp);const n=e.length+(e.startTime+e.pausedTime+e.count*e.length-Date.now());this.player.voiceConnection.voiceManager.client.setTimeout(()=>this._send(),n)}catch(e){this._triggerTerminalState("error",e)}}_triggerEnd(){this.emit("end")}_triggerError(e){this.emit("end"),this.emit("error",e)}_triggerTerminalState(e,t){if(!this._triggered)switch(this.emit("debug",`Triggered terminal state ${e} - stream is now dead`),this._triggered=!0,this._setSpeaking(!1),e){case"end":this._triggerEnd(t);break;case"error":this._triggerError(t);break;default:this.emit("error","Unknown trigger state")}}_startStreaming(){if(!this.stream)return void this.emit("error","No stream");this.stream.on("end",e=>this._triggerTerminalState("end",e)),this.stream.on("error",e=>this._triggerTerminalState("error",e));const e=this.streamingData;e.length=20,e.missed=0,this.stream.once("readable",()=>this._send())}_setPaused(e){e?(this.paused=!0,this._setSpeaking(!1)):(this.paused=!1,this._setSpeaking(!0))}}e.exports=a}).call(t,i(0).Buffer)},function(e,t,i){const r=i(133);let n;class s extends r{constructor(e){super(e);try{n=i(!function(){var e=new Error('Cannot find module "node-opus"');throw e.code="MODULE_NOT_FOUND",e}())}catch(e){throw e}this.encoder=new n.OpusEncoder(48e3,2)}encode(e){return super.encode(e),this.encoder.encode(e,1920)}decode(e){return super.decode(e),this.encoder.decode(e,1920)}}e.exports=s},function(e,t,i){function r(e){try{return new e}catch(e){return null}}const n=[i(289),i(291)];t.add=(e=>{n.push(e)}),t.fetch=(()=>{for(const e of n){const t=r(e);if(t)return t}throw new Error("Couldn't find an Opus engine.")})},function(e,t,i){const r=i(133);let n;class s extends r{constructor(e){super(e);try{n=i(206)}catch(e){throw e}this.encoder=new n(48e3,2)}encode(e){return super.encode(e),this.encoder.encode(e,960)}decode(e){return super.decode(e),this.encoder.decode(e)}}e.exports=s},function(e,t,i){const r=i(5).EventEmitter;class n extends r{constructor(e){super(),this.player=e}createConvertStream(){}}e.exports=n},function(e,t,i){t.fetch=(()=>i(294))},function(e,t,i){function r(){for(const e of["ffmpeg","avconv","./ffmpeg","./avconv"])if(!s.spawnSync(e,["-h"]).error)return e;throw new Error("FFMPEG was not found on your system, so audio cannot be played. Please make sure FFMPEG is installed and in your PATH.")}const n=i(292),s=i(12),a=i(5).EventEmitter;class o extends a{constructor(e){super(),this.process=e,this.input=null,this.process.on("error",e=>this.emit("error",e))}setInput(e){this.input=e,e.pipe(this.process.stdin,{end:!1}),this.input.on("error",e=>this.emit("error",e)),this.process.stdin.on("error",e=>this.emit("error",e))}destroy(){this.emit("debug","destroying a ffmpeg process:"),this.input&&this.input.unpipe&&this.process.stdin&&(this.input.unpipe(this.process.stdin),this.emit("unpiped the user input stream from the process input stream")),this.process.stdin&&(this.process.stdin.end(),this.emit("ended the process stdin")),this.process.stdin.destroy&&(this.process.stdin.destroy(),this.emit("destroyed the process stdin")),this.process.kill&&(this.process.kill(),this.emit("killed the process"))}}class f extends n{constructor(e){super(e),this.command=r()}handleError(e,t){e.destroy&&e.destroy(),this.emit("error",t)}createConvertStream(e=0){super.createConvertStream();const t=s.spawn(this.command,["-analyzeduration","0","-loglevel","0","-i","-","-f","s16le","-ar","48000","-ac","2","-ss",String(e),"pipe:1"],{stdio:["pipe","pipe","ignore"]});return new o(t)}}e.exports=f},function(e,t,i){const r=i(293),n=i(290),s=i(5).EventEmitter,a=i(288);class o extends s{constructor(e){super(),this.voiceConnection=e,this.audioToPCM=new(r.fetch()),this.opusEncoder=n.fetch(),this.currentConverter=null,this.dispatcher=null,this.audioToPCM.on("error",e=>this.emit("error",e)),this.streamingData={channels:2,count:0,sequence:0,timestamp:0,pausedTime:0},this.voiceConnection.on("closing",()=>this.cleanup(null,"voice connection closing"))}playUnknownStream(e,{seek=0,volume=1,passes=1}={}){const t={seek:seek,volume:volume,passes:passes};e.on("end",()=>{this.emit("debug","Input stream to converter has ended")}),e.on("error",e=>this.emit("error",e));const i=this.audioToPCM.createConvertStream(t.seek);return i.on("error",e=>this.emit("error",e)),i.setInput(e),this.playPCMStream(i.process.stdout,i,t)}cleanup(e,t){this.emit("debug",`Clean up triggered due to ${t}`);const i=e&&this.dispatcher&&this.dispatcher.stream===e;!this.currentConverter||e&&!i||(this.currentConverter.destroy(),this.currentConverter=null)}playPCMStream(e,t,{seek=0,volume=1,passes=1}={}){const i={seek:seek,volume:volume,passes:passes};e.on("end",()=>this.emit("debug","PCM input stream ended")),this.cleanup(null,"outstanding play stream"),this.currentConverter=t,this.dispatcher&&(this.streamingData=this.dispatcher.streamingData),e.on("error",e=>this.emit("error",e));const r=new a(this,e,this.streamingData,i);return r.on("error",e=>this.emit("error",e)),r.on("end",()=>this.cleanup(r.stream,"dispatcher ended")),r.on("speaking",e=>this.voiceConnection.setSpeaking(e)),this.dispatcher=r,r.on("debug",e=>this.emit("debug",`Stream dispatch - ${e}`)),r}}e.exports=o},function(e,t,i){const r=i(11).Readable;class n extends r{constructor(){super(),this._packets=[],this.open=!0}_read(){}_push(e){this.open&&this.push(e)}}e.exports=n},function(e,t,i){(function(t){const r=i(5).EventEmitter,n=i(120),s=i(296),a=new t(24);a.fill(0);class o extends r{constructor(e){super(),this.queues=new Map,this.pcmStreams=new Map,this.opusStreams=new Map,this.destroyed=!1,this.voiceConnection=e,this._listener=(e=>{const t=+e.readUInt32BE(8).toString(10),i=this.voiceConnection.ssrcMap.get(t);if(i){if(this.queues.get(t))return this.queues.get(t).push(e),this.queues.get(t).map(e=>this.handlePacket(e,i)),void this.queues.delete(t);this.handlePacket(e,i)}else this.queues.has(t)||this.queues.set(t,[]),this.queues.get(t).push(e)}),this.voiceConnection.sockets.udp.socket.on("message",this._listener)}recreate(){this.destroyed&&(this.voiceConnection.sockets.udp.socket.on("message",this._listener),this.destroyed=!1)}destroy(){this.voiceConnection.sockets.udp.socket.removeListener("message",this._listener);for(const e of this.pcmStreams)e[1]._push(null),this.pcmStreams.delete(e[0]);for(const e of this.opusStreams)e[1]._push(null),this.opusStreams.delete(e[0]);this.destroyed=!0}createOpusStream(e){if(e=this.voiceConnection.voiceManager.client.resolver.resolveUser(e),!e)throw new Error("Couldn't resolve the user to create Opus stream.");if(this.opusStreams.get(e.id))throw new Error("There is already an existing stream for that user.");const t=new s;return this.opusStreams.set(e.id,t),t}createPCMStream(e){if(e=this.voiceConnection.voiceManager.client.resolver.resolveUser(e),!e)throw new Error("Couldn't resolve the user to create PCM stream.");if(this.pcmStreams.get(e.id))throw new Error("There is already an existing stream for that user.");const t=new s;return this.pcmStreams.set(e.id,t),t}handlePacket(e,i){e.copy(a,0,0,12);let r=n.secretbox.open(e.slice(12),a,this.voiceConnection.authentication.secretKey.key);if(!r)return void this.emit("warn","Failed to decrypt voice packet");if(r=new t(r),this.opusStreams.get(i.id)&&this.opusStreams.get(i.id)._push(r),this.emit("opus",i,r),this.listenerCount("pcm")>0||this.pcmStreams.size>0){const e=this.voiceConnection.player.opusEncoder.decode(r);this.pcmStreams.get(i.id)&&this.pcmStreams.get(i.id)._push(e),this.emit("pcm",i,e)}}}e.exports=o}).call(t,i(0).Buffer)},function(e,t){class i{constructor(e){this.key=new Uint8Array(new ArrayBuffer(e.length));for(const t in e)this.key[t]=e[t]}}e.exports=i},function(e,t,i){const r="undefined"!=typeof window,n=r?window.WebSocket:i(123),s=i(5).EventEmitter,a=i(1),o=r?i(249).inflateSync:i(101).inflateSync,f=i(300),h=i(134);class c extends s{constructor(e){super(),this.client=e,this.packetManager=new f(this),this.status=a.Status.IDLE,this.sessionID=null,this.sequence=-1,this.gateway=null,this.normalReady=!1,this.ws=null,this.disabledEvents={};for(const t in e.options.disabledEvents)this.disabledEvents[t]=!0;this.first=!0}_connect(e){this.client.emit("debug",`Connecting to gateway ${e}`),this.normalReady=!1,this.status!==a.Status.RECONNECTING&&(this.status=a.Status.CONNECTING),this.ws=new n(e),r&&(this.ws.binaryType="arraybuffer"),this.ws.onopen=(()=>this.eventOpen()),this.ws.onclose=(e=>this.eventClose(e)),this.ws.onmessage=(e=>this.eventMessage(e)),this.ws.onerror=(e=>this.eventError(e)),this._queue=[],this._remaining=3}connect(e){this.first?(this._connect(e),this.first=!1):this.client.setTimeout(()=>this._connect(e),5500)}send(e,t=false){return t?void this._send(JSON.stringify(e)):(this._queue.push(JSON.stringify(e)),void this.doQueue())}destroy(){this.ws.close(1e3),this._queue=[],this.status=a.Status.IDLE}_send(e){this.ws.readyState===n.OPEN&&(this.emit("send",e),this.ws.send(e))}doQueue(){const e=this._queue[0];if(this.ws.readyState===n.OPEN&&e){if(0===this._remaining)return void this.client.setTimeout(()=>{this.doQueue()},1e3);this._remaining--,this._send(e),this._queue.shift(),this.doQueue(),this.client.setTimeout(()=>this._remaining++,1e3)}}eventOpen(){this.client.emit("debug","Connection to gateway opened"),this.status===a.Status.RECONNECTING?this._sendResume():this._sendNewIdentify()}_sendResume(){if(!this.sessionID)return void this._sendNewIdentify();this.client.emit("debug","Identifying as resumed session");const e={token:this.client.token,session_id:this.sessionID,seq:this.sequence};this.send({op:a.OPCodes.RESUME,d:e})}_sendNewIdentify(){this.reconnecting=!1;const e=this.client.options.ws;e.token=this.client.token,this.client.options.shardCount>0&&(e.shard=[Number(this.client.options.shardId),Number(this.client.options.shardCount)]),this.client.emit("debug","Identifying as new session"),this.send({op:a.OPCodes.IDENTIFY,d:e}),this.sequence=-1}eventClose(e){this.emit("close",e),this.client.clearInterval(this.client.manager.heartbeatInterval),this.reconnecting||this.client.emit(a.Events.DISCONNECT),4004!==e.code&&4010!==e.code&&(this.reconnecting||1e3===e.code||this.tryReconnect())}eventMessage(e){let t=e.data;try{"string"!=typeof t&&(t instanceof ArrayBuffer&&(t=h(t)),t=o(t).toString()),t=JSON.parse(t)}catch(e){return this.eventError(new Error(a.Errors.BAD_WS_MESSAGE))}return this.client.emit("raw",t),t.op===a.OPCodes.HELLO&&this.client.manager.setupKeepAlive(t.d.heartbeat_interval),this.packetManager.handle(t)}eventError(e){this.client.listenerCount("error")>0&&this.client.emit("error",e),this.ws.close()}_emitReady(e=true){this.status=a.Status.READY,this.client.emit(a.Events.READY),this.packetManager.handleQueue(),this.normalReady=e}checkIfReady(){if(this.status!==a.Status.READY&&this.status!==a.Status.NEARLY){let e=0;for(const t of this.client.guilds.keys())e+=this.client.guilds.get(t).available?0:1;if(0===e){if(this.status=a.Status.NEARLY,this.client.options.fetchAllMembers){const e=this.client.guilds.map(e=>e.fetchMembers());return void Promise.all(e).then(()=>this._emitReady(),e=>{this.client.emit(a.Events.WARN,"Error in pre-ready guild member fetching"),this.client.emit(a.Events.ERROR,e),this._emitReady()})}this._emitReady()}}}tryReconnect(){this.status=a.Status.RECONNECTING,this.ws.close(),this.packetManager.handleQueue(),this.client.emit(a.Events.RECONNECTING),this.connect(this.client.ws.gateway)}}e.exports=c},function(e,t,i){const r=i(1),n=[r.WSEvents.READY,r.WSEvents.GUILD_CREATE,r.WSEvents.GUILD_DELETE,r.WSEvents.GUILD_MEMBERS_CHUNK,r.WSEvents.GUILD_MEMBER_ADD,r.WSEvents.GUILD_MEMBER_REMOVE];class s{constructor(e){this.ws=e,this.handlers={},this.queue=[],this.register(r.WSEvents.READY,i(326)),this.register(r.WSEvents.GUILD_CREATE,i(307)),this.register(r.WSEvents.GUILD_DELETE,i(308)),this.register(r.WSEvents.GUILD_UPDATE,i(317)),this.register(r.WSEvents.GUILD_BAN_ADD,i(305)),this.register(r.WSEvents.GUILD_BAN_REMOVE,i(306)),this.register(r.WSEvents.GUILD_MEMBER_ADD,i(309)),this.register(r.WSEvents.GUILD_MEMBER_REMOVE,i(310)),this.register(r.WSEvents.GUILD_MEMBER_UPDATE,i(311)),this.register(r.WSEvents.GUILD_ROLE_CREATE,i(313)),this.register(r.WSEvents.GUILD_ROLE_DELETE,i(314)),this.register(r.WSEvents.GUILD_ROLE_UPDATE,i(315)),this.register(r.WSEvents.GUILD_MEMBERS_CHUNK,i(312)),this.register(r.WSEvents.CHANNEL_CREATE,i(301)),this.register(r.WSEvents.CHANNEL_DELETE,i(302)),this.register(r.WSEvents.CHANNEL_UPDATE,i(304)),this.register(r.WSEvents.CHANNEL_PINS_UPDATE,i(303)),this.register(r.WSEvents.PRESENCE_UPDATE,i(325)),this.register(r.WSEvents.USER_UPDATE,i(331)),this.register(r.WSEvents.USER_NOTE_UPDATE,i(330)),this.register(r.WSEvents.VOICE_STATE_UPDATE,i(333)),this.register(r.WSEvents.TYPING_START,i(329)),this.register(r.WSEvents.MESSAGE_CREATE,i(318)),this.register(r.WSEvents.MESSAGE_DELETE,i(319)),this.register(r.WSEvents.MESSAGE_UPDATE,i(324)),this.register(r.WSEvents.MESSAGE_DELETE_BULK,i(320)),this.register(r.WSEvents.VOICE_SERVER_UPDATE,i(332)),this.register(r.WSEvents.GUILD_SYNC,i(316)),this.register(r.WSEvents.RELATIONSHIP_ADD,i(327)),this.register(r.WSEvents.RELATIONSHIP_REMOVE,i(328)),this.register(r.WSEvents.MESSAGE_REACTION_ADD,i(321)),this.register(r.WSEvents.MESSAGE_REACTION_REMOVE,i(322)),this.register(r.WSEvents.MESSAGE_REACTION_REMOVE_ALL,i(323))}get client(){return this.ws.client}register(e,t){this.handlers[e]=new t(this)}handleQueue(){this.queue.forEach((e,t)=>{this.handle(this.queue[t]),this.queue.splice(t,1)})}setSequence(e){e&&e>this.ws.sequence&&(this.ws.sequence=e)}handle(e){return e.op===r.OPCodes.RECONNECT?(this.setSequence(e.s),this.ws.tryReconnect(),!1):e.op===r.OPCodes.INVALID_SESSION?(this.ws.sessionID=null,this.ws._sendNewIdentify(),!1):(e.op===r.OPCodes.HEARTBEAT_ACK&&this.ws.client.emit("debug","Heartbeat acknowledged"),this.ws.status===r.Status.RECONNECTING&&(this.ws.reconnecting=!1,this.ws.checkIfReady()),this.setSequence(e.s),void 0===this.ws.disabledEvents[e.t]&&(this.ws.status!==r.Status.READY&&n.indexOf(e.t)===-1?(this.queue.push(e),!1):!!this.handlers[e.t]&&this.handlers[e.t].handle(e)))}}e.exports=s},function(e,t,i){const r=i(3);class n extends r{handle(e){const t=this.packetManager.client,i=e.d;t.actions.ChannelCreate.handle(i)}}e.exports=n},function(e,t,i){const r=i(3),n=i(1);class s extends r{handle(e){const t=this.packetManager.client,i=e.d,r=t.actions.ChannelDelete.handle(i);r.channel&&t.emit(n.Events.CHANNEL_DELETE,r.channel)}}e.exports=s},function(e,t,i){const r=i(3),n=i(1);class s extends r{handle(e){const t=this.packetManager.client,i=e.d,r=t.channels.get(i.channel_id),s=new Date(i.last_pin_timestamp);r&&s&&t.emit(n.Events.CHANNEL_PINS_UPDATE,r,s)}}e.exports=s},function(e,t,i){const r=i(3);class n extends r{handle(e){const t=this.packetManager.client,i=e.d;t.actions.ChannelUpdate.handle(i)}}e.exports=n},function(e,t,i){const r=i(3),n=i(1);class s extends r{handle(e){const t=this.packetManager.client,i=e.d,r=t.guilds.get(i.guild_id),s=t.users.get(i.user.id);r&&s&&t.emit(n.Events.GUILD_BAN_ADD,r,s)}}e.exports=s},function(e,t,i){const r=i(3);class n extends r{handle(e){const t=this.packetManager.client,i=e.d;t.actions.GuildBanRemove.handle(i)}}e.exports=n},function(e,t,i){const r=i(3);class n extends r{handle(e){const t=this.packetManager.client,i=e.d,r=t.guilds.get(i.id);r?r.available||i.unavailable||(r.setup(i),this.packetManager.ws.checkIfReady()):t.dataManager.newGuild(i)}}e.exports=n},function(e,t,i){const r=i(3),n=i(1);class s extends r{handle(e){const t=this.packetManager.client,i=e.d,r=t.actions.GuildDelete.handle(i);r.guild&&t.emit(n.Events.GUILD_DELETE,r.guild)}}e.exports=s},function(e,t,i){const r=i(3);class n extends r{handle(e){const t=this.packetManager.client,i=e.d,r=t.guilds.get(i.guild_id);r&&(r.memberCount++,r._addMember(i))}}e.exports=n},function(e,t,i){const r=i(3);class n extends r{handle(e){const t=this.packetManager.client,i=e.d;t.actions.GuildMemberRemove.handle(i)}}e.exports=n},function(e,t,i){const r=i(3);class n extends r{handle(e){const t=this.packetManager.client,i=e.d,r=t.guilds.get(i.guild_id);if(r){const e=r.members.get(i.user.id);e&&r._updateMember(e,i)}}}e.exports=n},function(e,t,i){const r=i(3),n=i(1);class s extends r{handle(e){const t=this.packetManager.client,i=e.d,r=t.guilds.get(i.guild_id),s=[];if(r)for(const a of i.members)s.push(r._addMember(a,!1));r._checkChunks(),t.emit(n.Events.GUILD_MEMBERS_CHUNK,s)}}e.exports=s},function(e,t,i){const r=i(3);class n extends r{handle(e){const t=this.packetManager.client,i=e.d;t.actions.GuildRoleCreate.handle(i)}}e.exports=n},function(e,t,i){const r=i(3);class n extends r{handle(e){const t=this.packetManager.client,i=e.d;t.actions.GuildRoleDelete.handle(i)}}e.exports=n},function(e,t,i){const r=i(3);class n extends r{handle(e){const t=this.packetManager.client,i=e.d;t.actions.GuildRoleUpdate.handle(i)}}e.exports=n},function(e,t,i){const r=i(3);class n extends r{handle(e){const t=this.packetManager.client,i=e.d;t.actions.GuildSync.handle(i)}}e.exports=n},function(e,t,i){const r=i(3);class n extends r{handle(e){const t=this.packetManager.client,i=e.d;t.actions.GuildUpdate.handle(i)}}e.exports=n},function(e,t,i){const r=i(3),n=i(1);class s extends r{handle(e){const t=this.packetManager.client,i=e.d,r=t.actions.MessageCreate.handle(i);r.message&&t.emit(n.Events.MESSAGE_CREATE,r.message)}}e.exports=s},function(e,t,i){const r=i(3),n=i(1);class s extends r{handle(e){const t=this.packetManager.client,i=e.d,r=t.actions.MessageDelete.handle(i);r.message&&t.emit(n.Events.MESSAGE_DELETE,r.message)}}e.exports=s},function(e,t,i){const r=i(3);class n extends r{handle(e){const t=this.packetManager.client,i=e.d;t.actions.MessageDeleteBulk.handle(i)}}e.exports=n},function(e,t,i){const r=i(3);class n extends r{handle(e){const t=this.packetManager.client,i=e.d;t.actions.MessageReactionAdd.handle(i)}}e.exports=n},function(e,t,i){const r=i(3);class n extends r{handle(e){const t=this.packetManager.client,i=e.d;t.actions.MessageReactionRemove.handle(i)}}e.exports=n},function(e,t,i){const r=i(3);class n extends r{handle(e){const t=this.packetManager.client,i=e.d;t.actions.MessageReactionRemoveAll.handle(i)}}e.exports=n},function(e,t,i){const r=i(3);class n extends r{handle(e){const t=this.packetManager.client,i=e.d;t.actions.MessageUpdate.handle(i)}}e.exports=n},function(e,t,i){const r=i(3),n=i(1),s=i(13);class a extends r{handle(e){const t=this.packetManager.client,i=e.d;let r=t.users.get(i.user.id);const a=t.guilds.get(i.guild_id);if(!r){if(!i.user.username)return;r=t.dataManager.newUser(i.user)}const o=s(r);if(r.patch(i.user),r.equals(o)||t.emit(n.Events.USER_UPDATE,o,r),a){let e=a.members.get(r.id);if(e||"offline"===i.status||(e=a._addMember({user:r,roles:i.roles,deaf:!1,mute:!1},!1),t.emit(n.Events.GUILD_MEMBER_AVAILABLE,e)),e){const o=s(e);e.presence&&(o.frozenPresence=s(e.presence)),a._setPresence(r.id,i),t.emit(n.Events.PRESENCE_UPDATE,o,e)}else a._setPresence(r.id,i)}}}e.exports=a},function(e,t,i){const r=i(3),n=i(68);class s extends r{handle(e){const t=this.packetManager.client,i=e.d,r=new n(t,i.user);t.user=r,t.readyAt=new Date,t.users.set(r.id,r);for(const s of i.guilds)t.dataManager.newGuild(s);for(const a of i.private_channels)t.dataManager.newChannel(a);for(const o of i.relationships){const e=t.dataManager.newUser(o.user);1===o.type?t.user.friends.set(e.id,e):2===o.type&&t.user.blocked.set(e.id,e)}i.presences=i.presences||[];for(const f of i.presences)t.dataManager.newUser(f.user),t._setPresence(f.user.id,f);if(i.notes)for(const h in i.notes){let e=i.notes[h];e.length||(e=null),t.user.notes.set(h,e)}!t.user.bot&&t.options.sync&&t.setInterval(t.syncGuilds.bind(t),3e4),t.once("ready",t.syncGuilds.bind(t)),t.users.has("1")||t.dataManager.newUser({id:"1",username:"Clyde",discriminator:"0000",avatar:"https://discordapp.com/assets/f78426a064bc9dd24847519259bc42af.png",bot:!0,status:"online",game:null,verified:!0}),t.setTimeout(()=>{t.ws.normalReady||t.ws._emitReady(!1)},1200*i.guilds.length),this.packetManager.ws.sessionID=i.session_id,this.packetManager.ws.checkIfReady()}}e.exports=s},function(e,t,i){const r=i(3);class n extends r{handle(e){const t=this.packetManager.client,i=e.d;1===i.type?t.fetchUser(i.id).then(e=>{t.user.friends.set(e.id,e)}):2===i.type&&t.fetchUser(i.id).then(e=>{t.user.blocked.set(e.id,e)})}}e.exports=n},function(e,t,i){const r=i(3);class n extends r{handle(e){const t=this.packetManager.client,i=e.d;2===i.type?t.user.blocked.has(i.id)&&t.user.blocked.delete(i.id):1===i.type&&t.user.friends.has(i.id)&&t.user.friends.delete(i.id)}}e.exports=n},function(e,t,i){function r(e,t){return e.client.setTimeout(()=>{e.client.emit(s.Events.TYPING_STOP,e,t,e._typing.get(t.id)),e._typing.delete(t.id)},6e3)}const n=i(3),s=i(1);class a extends n{handle(e){const t=this.packetManager.client,i=e.d,n=t.channels.get(i.channel_id),a=t.users.get(i.user_id),f=new Date(1e3*i.timestamp);if(n&&a){if("voice"===n.type)return void t.emit(s.Events.WARN,`Discord sent a typing packet to voice channel ${n.id}`);if(n._typing.has(a.id)){const e=n._typing.get(a.id);e.lastTimestamp=f,e.resetTimeout(r(n,a))}else n._typing.set(a.id,new o(t,f,f,r(n,a))),t.emit(s.Events.TYPING_START,n,a)}}}class o{constructor(e,t,i,r){this.client=e,this.since=t,this.lastTimestamp=i,this._timeout=r}resetTimeout(e){this.client.clearTimeout(this._timeout),this._timeout=e}get elapsedTime(){return Date.now()-this.since}}e.exports=a},function(e,t,i){const r=i(3);class n extends r{handle(e){const t=this.packetManager.client,i=e.d;t.actions.UserNoteUpdate.handle(i)}}e.exports=n},function(e,t,i){const r=i(3);class n extends r{handle(e){const t=this.packetManager.client,i=e.d;t.actions.UserUpdate.handle(i)}}e.exports=n},function(e,t,i){const r=i(3);class n extends r{handle(e){const t=this.packetManager.client,i=e.d;t.emit("self.voiceServer",i)}}e.exports=n},function(e,t,i){const r=i(3),n=i(1),s=i(13);class a extends r{handle(e){const t=this.packetManager.client,i=e.d,r=t.guilds.get(i.guild_id);if(r){const e=r.members.get(i.user_id);if(e){const r=s(e);e.voiceChannel&&e.voiceChannel.id!==i.channel_id&&e.voiceChannel.members.delete(r.id),i.channel_id||(e.speaking=null),e.user.id===t.user.id&&i.channel_id&&t.emit("self.voiceStateUpdate",i);const a=t.channels.get(i.channel_id);a&&a.members.set(e.user.id,e),e.serverMute=i.mute,e.serverDeaf=i.deaf,e.selfMute=i.self_mute,e.selfDeaf=i.self_deaf,e.voiceSessionID=i.session_id,e.voiceChannelID=i.channel_id,t.emit(n.Events.VOICE_STATE_UPDATE,r,e)}}}}e.exports=a},function(e,t){class i{constructor(e,t){this.user=e,this.setup(t)}setup(e){this.type=e.type,this.name=e.name,this.id=e.id,this.revoked=e.revoked,this.integrations=e.integrations}}e.exports=i},function(e,t,i){const r=i(6),n=i(334);class s{constructor(e,t){this.user=e,this.client=this.user.client,Object.defineProperty(this,"client",{enumerable:!1,configurable:!1}),this.mutualGuilds=new r,this.connections=new r,this.setup(t)}setup(e){for(const t of e.mutual_guilds)this.client.guilds.has(t.id)&&this.mutualGuilds.set(t.id,this.client.guilds.get(t.id));for(const i of e.connected_accounts)this.connections.set(i.id,new n(this.user,i))}}e.exports=s},function(e,t){e.exports=function(e){if(e.includes("%")&&(e=decodeURIComponent(e)),e.includes(":")){const[t,i]=e.split(":");return{name:t,id:i}}return{name:e,id:null}}},function(e,t){},function(e,t){},function(e,t){},function(e,t,i){e.exports={Client:i(137),WebhookClient:i(138),Shard:i(65),ShardClientUtil:i(66),ShardingManager:i(139),Collection:i(6),splitMessage:i(83),escapeMarkdown:i(35),fetchRecommendedShards:i(82),Channel:i(24),ClientOAuth2Application:i(67),ClientUser:i(68),DMChannel:i(69),Emoji:i(25),EvaluatedPermissions:i(46),Game:i(15).Game,GroupDMChannel:i(70),Guild:i(47),GuildChannel:i(32),GuildMember:i(33),Invite:i(71),Message:i(34),MessageAttachment:i(72),MessageCollector:i(73),MessageEmbed:i(74),MessageReaction:i(75),OAuth2Application:i(76),PartialGuild:i(77),PartialGuildChannel:i(78),PermissionOverwrites:i(79),Presence:i(15).Presence,ReactionEmoji:i(48),Role:i(20),TextChannel:i(80),User:i(14),VoiceChannel:i(81),Webhook:i(49),version:i(64).version},"undefined"!=typeof window&&(window.Discord=e.exports)}]); \ No newline at end of file