diff options
author | Florian Dold <florian.dold@gmail.com> | 2017-04-20 03:09:25 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2017-04-24 16:14:29 +0200 |
commit | 82f2b76e25a4a67e01ec67e5ebe39d14ad771ea8 (patch) | |
tree | 965f6eb89b84d65a62b49008fd972c004832ccd1 /src | |
parent | e6e0cbc387c2a77b48e4065c229daa65bf1aa0fa (diff) |
Reorganize module loading.
We now use webpack instead of SystemJS, effectively bundling modules
into one file (plus commons chunks) for every entry point. This results
in a much smaller extension size (almost half). Furthermore we use
yarn/npm even for extension run-time dependencies. This relieves us
from manually vendoring and building dependencies. It's also easier to
understand for new developers familiar with node.
Diffstat (limited to 'src')
54 files changed, 705 insertions, 29907 deletions
diff --git a/src/background/background.html b/src/background/background.html index 621e0fbb9..962542f9a 100644 --- a/src/background/background.html +++ b/src/background/background.html @@ -1,9 +1,7 @@ <!DOCTYPE html> <html lang="en"> <head> - <script src="../vendor/URI.js"></script> - <script src="../vendor/system-csp-production.src.js"></script> - <script src="background.js"></script> + <script src="../../dist/background-bundle.js"></script> <meta charset="UTF-8"> <title>(wallet bg page)</title> </head> diff --git a/src/background/background.ts b/src/background/background.ts index fe2359812..9b50caf9c 100644 --- a/src/background/background.ts +++ b/src/background/background.ts @@ -20,22 +20,9 @@ * @author Florian Dold */ -"use strict"; -window.addEventListener("load", () => { - - // TypeScript does not allow ".js" extensions in the - // module name, so SystemJS must add it. - System.config({ - defaultJSExtensions: true, - }); +import {wxMain} from "./../wxBackend"; - System.import("../wxBackend") - .then((wxMessaging: any) => { - // Export as global for debugger - (window as any).wx = wxMessaging; - wxMessaging.wxMain(); - }).catch((e: Error) => { - console.error("Loading Taler wallet background page failed.", e); - }); +window.addEventListener("load", () => { + wxMain(); }); diff --git a/src/components.ts b/src/components.ts index 066e6d07f..4ed746f67 100644 --- a/src/components.ts +++ b/src/components.ts @@ -21,6 +21,8 @@ * @author Florian Dold */ +import * as React from "react"; + export interface StateHolder<T> { (): T; (newState: T): void; diff --git a/src/content_scripts/notify.ts b/src/content_scripts/notify.ts index bf91b79c9..8a25dd500 100644 --- a/src/content_scripts/notify.ts +++ b/src/content_scripts/notify.ts @@ -25,6 +25,8 @@ "use strict"; +import URI = require("urijs"); + declare var cloneInto: any; // Make sure we don't pollute the namespace too much. @@ -65,7 +67,7 @@ namespace TalerNotify { type: "hash-contract", detail: {contract} }; - return new Promise((resolve, reject) => { + return new Promise<string>((resolve, reject) => { chrome.runtime.sendMessage(walletHashContractMsg, (resp: any) => { if (!resp.hash) { console.log("error", resp); @@ -95,7 +97,7 @@ namespace TalerNotify { historyEntry, }, }; - return new Promise((resolve, reject) => { + return new Promise<void>((resolve, reject) => { chrome.runtime.sendMessage(walletMsg, (resp: any) => { resolve(); }); @@ -114,7 +116,7 @@ namespace TalerNotify { }, }, }; - return new Promise((resolve, reject) => { + return new Promise<number>((resolve, reject) => { chrome.runtime.sendMessage(walletMsg, (resp: any) => { if (resp && resp.error) { reject(resp); @@ -162,7 +164,7 @@ namespace TalerNotify { const walletMsg = { type: "generate-nonce", }; - return new Promise((resolve, reject) => { + return new Promise<string>((resolve, reject) => { chrome.runtime.sendMessage(walletMsg, (resp: any) => { resolve(resp); }); @@ -170,7 +172,7 @@ namespace TalerNotify { } function downloadContract(url: string, nonce: string): Promise<any> { - let parsed_url = URI(url); + let parsed_url = new URI(url); url = parsed_url.setQuery({nonce}).href(); // FIXME: include and check nonce! return new Promise((resolve, reject) => { @@ -243,7 +245,7 @@ namespace TalerNotify { await putHistory(historyEntry); let offerId = await saveOffer(proposal); - const uri = URI(chrome.extension.getURL( + const uri = new URI(chrome.extension.getURL( "/src/pages/confirm-contract.html")); const params = { offerId: offerId.toString(), @@ -294,13 +296,13 @@ namespace TalerNotify { addHandler("taler-create-reserve", (msg: any) => { let params = { amount: JSON.stringify(msg.amount), - callback_url: URI(msg.callback_url) + callback_url: new URI(msg.callback_url) .absoluteTo(document.location.href), bank_url: document.location.href, wt_types: JSON.stringify(msg.wt_types), suggested_exchange_url: msg.suggested_exchange_url, }; - let uri = URI(chrome.extension.getURL("/src/pages/confirm-create-reserve.html")); + let uri = new URI(chrome.extension.getURL("/src/pages/confirm-create-reserve.html")); let redirectUrl = uri.query(params).href(); window.location.href = redirectUrl; }); @@ -309,7 +311,7 @@ namespace TalerNotify { let params = { req: JSON.stringify(msg), }; - let uri = URI(chrome.extension.getURL("/src/pages/add-auditor.html")); + let uri = new URI(chrome.extension.getURL("/src/pages/add-auditor.html")); let redirectUrl = uri.query(params).href(); window.location.href = redirectUrl; }); @@ -340,7 +342,7 @@ namespace TalerNotify { addHandler("taler-pay", async(msg: any, sendResponse: any) => { // current URL without fragment - let url = URI(document.location.href).fragment("").href(); + let url = new URI(document.location.href).fragment("").href(); let res = await queryPayment(url); logVerbose && console.log("taler-pay: got response", res); if (res && res.payReq) { diff --git a/src/cryptoApi-test.ts b/src/cryptoApi-test.ts index 8024b2c75..dde3ea899 100644 --- a/src/cryptoApi-test.ts +++ b/src/cryptoApi-test.ts @@ -1,6 +1,6 @@ import {CryptoApi} from "./cryptoApi"; -import {ReserveRecord, DenominationRecord, denominationRecordFromKeys} from "src/types"; -import {test, TestLib} from "testlib/talertest"; +import {ReserveRecord, DenominationRecord, denominationRecordFromKeys} from "./types"; +import {test, TestLib} from "talertest"; let masterPub1: string = "CQQZ9DY3MZ1ARMN5K1VKDETS04Y2QCKMMCFHZSWJWWVN82BTTH00"; diff --git a/src/cryptoApi.ts b/src/cryptoApi.ts index dbadb45e4..672b90d74 100644 --- a/src/cryptoApi.ts +++ b/src/cryptoApi.ts @@ -86,7 +86,7 @@ export class CryptoApi { ws.currentWorkItem = work; this.numBusy++; if (!ws.w) { - let w = new Worker("/src/cryptoWorker.js"); + let w = new Worker("/dist/cryptoWorker-bundle.js"); w.onmessage = (m: MessageEvent) => this.handleWorkerMessage(ws, m); w.onerror = (e: ErrorEvent) => this.handleWorkerError(ws, e); ws.w = w; @@ -215,7 +215,7 @@ export class CryptoApi { throw Error("assertion failed"); }); - return p.then((r) => { + return p.then((r: T) => { console.log(`rpc ${operation} took ${performance.now() - start}ms`); return r; }); @@ -223,29 +223,29 @@ export class CryptoApi { createPreCoin(denom: DenominationRecord, reserve: ReserveRecord): Promise<PreCoinRecord> { - return this.doRpc("createPreCoin", 1, denom, reserve); + return this.doRpc<PreCoinRecord>("createPreCoin", 1, denom, reserve); } hashString(str: string): Promise<string> { - return this.doRpc("hashString", 1, str); + return this.doRpc<string>("hashString", 1, str); } isValidDenom(denom: DenominationRecord, masterPub: string): Promise<boolean> { - return this.doRpc("isValidDenom", 2, denom, masterPub); + return this.doRpc<boolean>("isValidDenom", 2, denom, masterPub); } signDeposit(offer: OfferRecord, cds: CoinWithDenom[]): Promise<PayCoinInfo> { - return this.doRpc("signDeposit", 3, offer, cds); + return this.doRpc<PayCoinInfo>("signDeposit", 3, offer, cds); } createEddsaKeypair(): Promise<{priv: string, pub: string}> { - return this.doRpc("createEddsaKeypair", 1); + return this.doRpc<{priv: string, pub: string}>("createEddsaKeypair", 1); } rsaUnblind(sig: string, bk: string, pk: string): Promise<string> { - return this.doRpc("rsaUnblind", 4, sig, bk, pk); + return this.doRpc<string>("rsaUnblind", 4, sig, bk, pk); } createRefreshSession(exchangeBaseUrl: string, @@ -253,7 +253,7 @@ export class CryptoApi { meltCoin: CoinRecord, newCoinDenoms: DenominationRecord[], meltFee: AmountJson): Promise<RefreshSessionRecord> { - return this.doRpc("createRefreshSession", + return this.doRpc<RefreshSessionRecord>("createRefreshSession", 4, exchangeBaseUrl, kappa, diff --git a/src/cryptoLib.ts b/src/cryptoLib.ts deleted file mode 100644 index 717a681f4..000000000 --- a/src/cryptoLib.ts +++ /dev/null @@ -1,359 +0,0 @@ -/* - This file is part of TALER - (C) 2016 GNUnet e.V. - - TALER is free software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the Free Software - Foundation; either version 3, or (at your option) any later version. - - TALER is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. See the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along with - TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/> - */ - -/** - * Web worker for crypto operations. - * @author Florian Dold - */ - -"use strict"; - -import * as native from "./emscriptif"; -import { - PreCoinRecord, PayCoinInfo, AmountJson, - RefreshSessionRecord, RefreshPreCoinRecord, ReserveRecord, CoinStatus, -} from "./types"; -import create = chrome.alarms.create; -import {OfferRecord} from "./wallet"; -import {CoinWithDenom} from "./wallet"; -import {CoinPaySig, CoinRecord} from "./types"; -import {DenominationRecord, Amounts} from "./types"; -import {Amount} from "./emscriptif"; -import {HashContext} from "./emscriptif"; -import {RefreshMeltCoinAffirmationPS} from "./emscriptif"; -import {EddsaPublicKey} from "./emscriptif"; -import {HashCode} from "./emscriptif"; - - -export function main(worker: Worker) { - worker.onmessage = (msg: MessageEvent) => { - if (!Array.isArray(msg.data.args)) { - console.error("args must be array"); - return; - } - if (typeof msg.data.id != "number") { - console.error("RPC id must be number"); - } - if (typeof msg.data.operation != "string") { - console.error("RPC operation must be string"); - } - let f = (RpcFunctions as any)[msg.data.operation]; - if (!f) { - console.error(`unknown operation: '${msg.data.operation}'`); - return; - } - let res = f(...msg.data.args); - worker.postMessage({result: res, id: msg.data.id}); - } -} - - -namespace RpcFunctions { - - /** - * Create a pre-coin of the given denomination to be withdrawn from then given - * reserve. - */ - export function createPreCoin(denom: DenominationRecord, - reserve: ReserveRecord): PreCoinRecord { - let reservePriv = new native.EddsaPrivateKey(); - reservePriv.loadCrock(reserve.reserve_priv); - let reservePub = new native.EddsaPublicKey(); - reservePub.loadCrock(reserve.reserve_pub); - let denomPub = native.RsaPublicKey.fromCrock(denom.denomPub); - let coinPriv = native.EddsaPrivateKey.create(); - let coinPub = coinPriv.getPublicKey(); - let blindingFactor = native.RsaBlindingKeySecret.create(); - let pubHash: native.HashCode = coinPub.hash(); - let ev = native.rsaBlind(pubHash, - blindingFactor, - denomPub); - - if (!ev) { - throw Error("couldn't blind (malicious exchange key?)"); - } - - if (!denom.feeWithdraw) { - throw Error("Field fee_withdraw missing"); - } - - let amountWithFee = new native.Amount(denom.value); - amountWithFee.add(new native.Amount(denom.feeWithdraw)); - let withdrawFee = new native.Amount(denom.feeWithdraw); - - // Signature - let withdrawRequest = new native.WithdrawRequestPS({ - reserve_pub: reservePub, - amount_with_fee: amountWithFee.toNbo(), - withdraw_fee: withdrawFee.toNbo(), - h_denomination_pub: denomPub.encode().hash(), - h_coin_envelope: ev.hash() - }); - - var sig = native.eddsaSign(withdrawRequest.toPurpose(), reservePriv); - - let preCoin: PreCoinRecord = { - reservePub: reservePub.toCrock(), - blindingKey: blindingFactor.toCrock(), - coinPub: coinPub.toCrock(), - coinPriv: coinPriv.toCrock(), - denomPub: denomPub.encode().toCrock(), - exchangeBaseUrl: reserve.exchange_base_url, - withdrawSig: sig.toCrock(), - coinEv: ev.toCrock(), - coinValue: denom.value - }; - return preCoin; - } - - - export function isValidDenom(denom: DenominationRecord, - masterPub: string): boolean { - let p = new native.DenominationKeyValidityPS({ - master: native.EddsaPublicKey.fromCrock(masterPub), - denom_hash: native.RsaPublicKey.fromCrock(denom.denomPub) - .encode() - .hash(), - expire_legal: native.AbsoluteTimeNbo.fromTalerString(denom.stampExpireLegal), - expire_spend: native.AbsoluteTimeNbo.fromTalerString(denom.stampExpireDeposit), - expire_withdraw: native.AbsoluteTimeNbo.fromTalerString(denom.stampExpireWithdraw), - start: native.AbsoluteTimeNbo.fromTalerString(denom.stampStart), - value: (new native.Amount(denom.value)).toNbo(), - fee_deposit: (new native.Amount(denom.feeDeposit)).toNbo(), - fee_refresh: (new native.Amount(denom.feeRefresh)).toNbo(), - fee_withdraw: (new native.Amount(denom.feeWithdraw)).toNbo(), - fee_refund: (new native.Amount(denom.feeRefund)).toNbo(), - }); - - let nativeSig = new native.EddsaSignature(); - nativeSig.loadCrock(denom.masterSig); - - let nativePub = native.EddsaPublicKey.fromCrock(masterPub); - - return native.eddsaVerify(native.SignaturePurpose.MASTER_DENOMINATION_KEY_VALIDITY, - p.toPurpose(), - nativeSig, - nativePub); - - } - - - export function createEddsaKeypair(): {priv: string, pub: string} { - const priv = native.EddsaPrivateKey.create(); - const pub = priv.getPublicKey(); - return {priv: priv.toCrock(), pub: pub.toCrock()}; - } - - - export function rsaUnblind(sig: string, bk: string, pk: string): string { - let denomSig = native.rsaUnblind(native.RsaSignature.fromCrock(sig), - native.RsaBlindingKeySecret.fromCrock(bk), - native.RsaPublicKey.fromCrock(pk)); - return denomSig.encode().toCrock() - } - - - /** - * Generate updated coins (to store in the database) - * and deposit permissions for each given coin. - */ - export function signDeposit(offer: OfferRecord, - cds: CoinWithDenom[]): PayCoinInfo { - let ret: PayCoinInfo = []; - - - let feeList: AmountJson[] = cds.map((x) => x.denom.feeDeposit); - let fees = Amounts.add(Amounts.getZero(feeList[0].currency), ...feeList).amount; - // okay if saturates - fees = Amounts.sub(fees, offer.contract.max_fee).amount; - let total = Amounts.add(fees, offer.contract.amount).amount; - - let amountSpent = native.Amount.getZero(cds[0].coin.currentAmount.currency); - let amountRemaining = new native.Amount(total); - for (let cd of cds) { - let coinSpend: Amount; - - if (amountRemaining.value == 0 && amountRemaining.fraction == 0) { - break; - } - - if (amountRemaining.cmp(new native.Amount(cd.coin.currentAmount)) < 0) { - coinSpend = new native.Amount(amountRemaining.toJson()); - } else { - coinSpend = new native.Amount(cd.coin.currentAmount); - } - - amountSpent.add(coinSpend); - amountRemaining.sub(coinSpend); - - let feeDeposit: Amount = new native.Amount(cd.denom.feeDeposit); - - // Give the merchant at least the deposit fee, otherwise it'll reject - // the coin. - if (coinSpend.cmp(feeDeposit) < 0) { - coinSpend = feeDeposit; - } - - let newAmount = new native.Amount(cd.coin.currentAmount); - newAmount.sub(coinSpend); - cd.coin.currentAmount = newAmount.toJson(); - cd.coin.status = CoinStatus.TransactionPending; - - let d = new native.DepositRequestPS({ - h_contract: native.HashCode.fromCrock(offer.H_contract), - h_wire: native.HashCode.fromCrock(offer.contract.H_wire), - amount_with_fee: coinSpend.toNbo(), - coin_pub: native.EddsaPublicKey.fromCrock(cd.coin.coinPub), - deposit_fee: new native.Amount(cd.denom.feeDeposit).toNbo(), - merchant: native.EddsaPublicKey.fromCrock(offer.contract.merchant_pub), - refund_deadline: native.AbsoluteTimeNbo.fromTalerString(offer.contract.refund_deadline), - timestamp: native.AbsoluteTimeNbo.fromTalerString(offer.contract.timestamp), - }); - - let coinSig = native.eddsaSign(d.toPurpose(), - native.EddsaPrivateKey.fromCrock(cd.coin.coinPriv)) - .toCrock(); - - let s: CoinPaySig = { - coin_sig: coinSig, - coin_pub: cd.coin.coinPub, - ub_sig: cd.coin.denomSig, - denom_pub: cd.coin.denomPub, - f: coinSpend.toJson(), - }; - ret.push({sig: s, updatedCoin: cd.coin}); - } - return ret; - } - - - export function createRefreshSession(exchangeBaseUrl: string, - kappa: number, - meltCoin: CoinRecord, - newCoinDenoms: DenominationRecord[], - meltFee: AmountJson): RefreshSessionRecord { - - let valueWithFee = Amounts.getZero(newCoinDenoms[0].value.currency); - - for (let ncd of newCoinDenoms) { - valueWithFee = Amounts.add(valueWithFee, - ncd.value, - ncd.feeWithdraw).amount; - } - - // melt fee - valueWithFee = Amounts.add(valueWithFee, meltFee).amount; - - let sessionHc = new HashContext(); - - let transferPubs: string[] = []; - let transferPrivs: string[] = []; - - let preCoinsForGammas: RefreshPreCoinRecord[][] = []; - - for (let i = 0; i < kappa; i++) { - let t = native.EcdhePrivateKey.create(); - let pub = t.getPublicKey(); - sessionHc.read(pub); - transferPrivs.push(t.toCrock()); - transferPubs.push(pub.toCrock()); - } - - for (let i = 0; i < newCoinDenoms.length; i++) { - let r = native.RsaPublicKey.fromCrock(newCoinDenoms[i].denomPub); - sessionHc.read(r.encode()); - } - - sessionHc.read(native.EddsaPublicKey.fromCrock(meltCoin.coinPub)); - sessionHc.read((new native.Amount(valueWithFee)).toNbo()); - - for (let i = 0; i < kappa; i++) { - let preCoins: RefreshPreCoinRecord[] = []; - for (let j = 0; j < newCoinDenoms.length; j++) { - - let transferPriv = native.EcdhePrivateKey.fromCrock(transferPrivs[i]); - let oldCoinPub = native.EddsaPublicKey.fromCrock(meltCoin.coinPub); - let transferSecret = native.ecdhEddsa(transferPriv, oldCoinPub); - - let fresh = native.setupFreshCoin(transferSecret, j); - - let coinPriv = fresh.priv; - let coinPub = coinPriv.getPublicKey(); - let blindingFactor = fresh.blindingKey; - let pubHash: native.HashCode = coinPub.hash(); - let denomPub = native.RsaPublicKey.fromCrock(newCoinDenoms[j].denomPub); - let ev = native.rsaBlind(pubHash, - blindingFactor, - denomPub); - if (!ev) { - throw Error("couldn't blind (malicious exchange key?)"); - } - let preCoin: RefreshPreCoinRecord = { - blindingKey: blindingFactor.toCrock(), - coinEv: ev.toCrock(), - publicKey: coinPub.toCrock(), - privateKey: coinPriv.toCrock(), - }; - preCoins.push(preCoin); - sessionHc.read(ev); - } - preCoinsForGammas.push(preCoins); - } - - let sessionHash = new HashCode(); - sessionHash.alloc(); - sessionHc.finish(sessionHash); - - let confirmData = new RefreshMeltCoinAffirmationPS({ - coin_pub: EddsaPublicKey.fromCrock(meltCoin.coinPub), - amount_with_fee: (new Amount(valueWithFee)).toNbo(), - session_hash: sessionHash, - melt_fee: (new Amount(meltFee)).toNbo() - }); - - - let confirmSig: string = native.eddsaSign(confirmData.toPurpose(), - native.EddsaPrivateKey.fromCrock( - meltCoin.coinPriv)).toCrock(); - - let valueOutput = Amounts.getZero(newCoinDenoms[0].value.currency); - for (let denom of newCoinDenoms) { - valueOutput = Amounts.add(valueOutput, denom.value).amount; - } - - let refreshSession: RefreshSessionRecord = { - meltCoinPub: meltCoin.coinPub, - newDenoms: newCoinDenoms.map((d) => d.denomPub), - confirmSig, - valueWithFee, - transferPubs, - preCoinsForGammas, - hash: sessionHash.toCrock(), - norevealIndex: undefined, - exchangeBaseUrl, - transferPrivs, - finished: false, - valueOutput, - }; - - return refreshSession; - } - - export function hashString(str: string): string { - const b = native.ByteArray.fromStringWithNull(str); - return b.hash().toCrock(); - } -} diff --git a/src/cryptoWorker.ts b/src/cryptoWorker.ts index 661b6e174..0abcb36ff 100644 --- a/src/cryptoWorker.ts +++ b/src/cryptoWorker.ts @@ -21,44 +21,339 @@ "use strict"; +import * as native from "./emscriptif"; +import { + PreCoinRecord, PayCoinInfo, AmountJson, + RefreshSessionRecord, RefreshPreCoinRecord, ReserveRecord, CoinStatus, +} from "./types"; +import create = chrome.alarms.create; +import {OfferRecord} from "./wallet"; +import {CoinWithDenom} from "./wallet"; +import {CoinPaySig, CoinRecord} from "./types"; +import {DenominationRecord, Amounts} from "./types"; +import {Amount} from "./emscriptif"; +import {HashContext} from "./emscriptif"; +import {RefreshMeltCoinAffirmationPS} from "./emscriptif"; +import {EddsaPublicKey} from "./emscriptif"; +import {HashCode} from "./emscriptif"; -importScripts("/src/emscripten/taler-emscripten-lib.js", - "/src/vendor/system-csp-production.src.js"); - - -// TypeScript does not allow ".js" extensions in the -// module name, so SystemJS must add it. -System.config({ - defaultJSExtensions: true, - map: { - "src": "/src", - }, -}); - -// We expect that in the manifest, the emscripten js is loaded -// becore the background page. -// Currently it is not possible to use SystemJS to load the emscripten js. -declare var Module: any; -if ("object" !== typeof Module) { - throw Error("emscripten not loaded, no 'Module' defined"); -} +namespace RpcFunctions { -// Manually register the emscripten js as a SystemJS, so that -// we can use it from TypeScript by importing it. + /** + * Create a pre-coin of the given denomination to be withdrawn from then given + * reserve. + */ + export function createPreCoin(denom: DenominationRecord, + reserve: ReserveRecord): PreCoinRecord { + let reservePriv = new native.EddsaPrivateKey(); + reservePriv.loadCrock(reserve.reserve_priv); + let reservePub = new native.EddsaPublicKey(); + reservePub.loadCrock(reserve.reserve_pub); + let denomPub = native.RsaPublicKey.fromCrock(denom.denomPub); + let coinPriv = native.EddsaPrivateKey.create(); + let coinPub = coinPriv.getPublicKey(); + let blindingFactor = native.RsaBlindingKeySecret.create(); + let pubHash: native.HashCode = coinPub.hash(); + let ev = native.rsaBlind(pubHash, + blindingFactor, + denomPub); -{ - let mod = System.newModule({Module: Module, default: Module}); - let modName = System.normalizeSync("/src/emscripten/taler-emscripten-lib"); - console.log("registering", modName); - System.set(modName, mod); -} + if (!ev) { + throw Error("couldn't blind (malicious exchange key?)"); + } + + if (!denom.feeWithdraw) { + throw Error("Field fee_withdraw missing"); + } + + let amountWithFee = new native.Amount(denom.value); + amountWithFee.add(new native.Amount(denom.feeWithdraw)); + let withdrawFee = new native.Amount(denom.feeWithdraw); + + // Signature + let withdrawRequest = new native.WithdrawRequestPS({ + reserve_pub: reservePub, + amount_with_fee: amountWithFee.toNbo(), + withdraw_fee: withdrawFee.toNbo(), + h_denomination_pub: denomPub.encode().hash(), + h_coin_envelope: ev.hash() + }); + + var sig = native.eddsaSign(withdrawRequest.toPurpose(), reservePriv); + + let preCoin: PreCoinRecord = { + reservePub: reservePub.toCrock(), + blindingKey: blindingFactor.toCrock(), + coinPub: coinPub.toCrock(), + coinPriv: coinPriv.toCrock(), + denomPub: denomPub.encode().toCrock(), + exchangeBaseUrl: reserve.exchange_base_url, + withdrawSig: sig.toCrock(), + coinEv: ev.toCrock(), + coinValue: denom.value + }; + return preCoin; + } + + + export function isValidDenom(denom: DenominationRecord, + masterPub: string): boolean { + let p = new native.DenominationKeyValidityPS({ + master: native.EddsaPublicKey.fromCrock(masterPub), + denom_hash: native.RsaPublicKey.fromCrock(denom.denomPub) + .encode() + .hash(), + expire_legal: native.AbsoluteTimeNbo.fromTalerString(denom.stampExpireLegal), + expire_spend: native.AbsoluteTimeNbo.fromTalerString(denom.stampExpireDeposit), + expire_withdraw: native.AbsoluteTimeNbo.fromTalerString(denom.stampExpireWithdraw), + start: native.AbsoluteTimeNbo.fromTalerString(denom.stampStart), + value: (new native.Amount(denom.value)).toNbo(), + fee_deposit: (new native.Amount(denom.feeDeposit)).toNbo(), + fee_refresh: (new native.Amount(denom.feeRefresh)).toNbo(), + fee_withdraw: (new native.Amount(denom.feeWithdraw)).toNbo(), + fee_refund: (new native.Amount(denom.feeRefund)).toNbo(), + }); + + let nativeSig = new native.EddsaSignature(); + nativeSig.loadCrock(denom.masterSig); + + let nativePub = native.EddsaPublicKey.fromCrock(masterPub); + + return native.eddsaVerify(native.SignaturePurpose.MASTER_DENOMINATION_KEY_VALIDITY, + p.toPurpose(), + nativeSig, + nativePub); + + } + + + export function createEddsaKeypair(): {priv: string, pub: string} { + const priv = native.EddsaPrivateKey.create(); + const pub = priv.getPublicKey(); + return {priv: priv.toCrock(), pub: pub.toCrock()}; + } -System.import("/src/cryptoLib") - .then((m: any) => { - m.main(self); - }) - .catch((e: Error) => { - console.log("crypto worker failed"); - console.error(e.stack); + + export function rsaUnblind(sig: string, bk: string, pk: string): string { + let denomSig = native.rsaUnblind(native.RsaSignature.fromCrock(sig), + native.RsaBlindingKeySecret.fromCrock(bk), + native.RsaPublicKey.fromCrock(pk)); + return denomSig.encode().toCrock() + } + + + /** + * Generate updated coins (to store in the database) + * and deposit permissions for each given coin. + */ + export function signDeposit(offer: OfferRecord, + cds: CoinWithDenom[]): PayCoinInfo { + let ret: PayCoinInfo = []; + + + let feeList: AmountJson[] = cds.map((x) => x.denom.feeDeposit); + let fees = Amounts.add(Amounts.getZero(feeList[0].currency), ...feeList).amount; + // okay if saturates + fees = Amounts.sub(fees, offer.contract.max_fee).amount; + let total = Amounts.add(fees, offer.contract.amount).amount; + + let amountSpent = native.Amount.getZero(cds[0].coin.currentAmount.currency); + let amountRemaining = new native.Amount(total); + for (let cd of cds) { + let coinSpend: Amount; + + if (amountRemaining.value == 0 && amountRemaining.fraction == 0) { + break; + } + + if (amountRemaining.cmp(new native.Amount(cd.coin.currentAmount)) < 0) { + coinSpend = new native.Amount(amountRemaining.toJson()); + } else { + coinSpend = new native.Amount(cd.coin.currentAmount); + } + + amountSpent.add(coinSpend); + amountRemaining.sub(coinSpend); + + let feeDeposit: Amount = new native.Amount(cd.denom.feeDeposit); + + // Give the merchant at least the deposit fee, otherwise it'll reject + // the coin. + if (coinSpend.cmp(feeDeposit) < 0) { + coinSpend = feeDeposit; + } + + let newAmount = new native.Amount(cd.coin.currentAmount); + newAmount.sub(coinSpend); + cd.coin.currentAmount = newAmount.toJson(); + cd.coin.status = CoinStatus.TransactionPending; + + let d = new native.DepositRequestPS({ + h_contract: native.HashCode.fromCrock(offer.H_contract), + h_wire: native.HashCode.fromCrock(offer.contract.H_wire), + amount_with_fee: coinSpend.toNbo(), + coin_pub: native.EddsaPublicKey.fromCrock(cd.coin.coinPub), + deposit_fee: new native.Amount(cd.denom.feeDeposit).toNbo(), + merchant: native.EddsaPublicKey.fromCrock(offer.contract.merchant_pub), + refund_deadline: native.AbsoluteTimeNbo.fromTalerString(offer.contract.refund_deadline), + timestamp: native.AbsoluteTimeNbo.fromTalerString(offer.contract.timestamp), }); + + let coinSig = native.eddsaSign(d.toPurpose(), + native.EddsaPrivateKey.fromCrock(cd.coin.coinPriv)) + .toCrock(); + + let s: CoinPaySig = { + coin_sig: coinSig, + coin_pub: cd.coin.coinPub, + ub_sig: cd.coin.denomSig, + denom_pub: cd.coin.denomPub, + f: coinSpend.toJson(), + }; + ret.push({sig: s, updatedCoin: cd.coin}); + } + return ret; + } + + + export function createRefreshSession(exchangeBaseUrl: string, + kappa: number, + meltCoin: CoinRecord, + newCoinDenoms: DenominationRecord[], + meltFee: AmountJson): RefreshSessionRecord { + + let valueWithFee = Amounts.getZero(newCoinDenoms[0].value.currency); + + for (let ncd of newCoinDenoms) { + valueWithFee = Amounts.add(valueWithFee, + ncd.value, + ncd.feeWithdraw).amount; + } + + // melt fee + valueWithFee = Amounts.add(valueWithFee, meltFee).amount; + + let sessionHc = new HashContext(); + + let transferPubs: string[] = []; + let transferPrivs: string[] = []; + + let preCoinsForGammas: RefreshPreCoinRecord[][] = []; + + for (let i = 0; i < kappa; i++) { + let t = native.EcdhePrivateKey.create(); + let pub = t.getPublicKey(); + sessionHc.read(pub); + transferPrivs.push(t.toCrock()); + transferPubs.push(pub.toCrock()); + } + + for (let i = 0; i < newCoinDenoms.length; i++) { + let r = native.RsaPublicKey.fromCrock(newCoinDenoms[i].denomPub); + sessionHc.read(r.encode()); + } + + sessionHc.read(native.EddsaPublicKey.fromCrock(meltCoin.coinPub)); + sessionHc.read((new native.Amount(valueWithFee)).toNbo()); + + for (let i = 0; i < kappa; i++) { + let preCoins: RefreshPreCoinRecord[] = []; + for (let j = 0; j < newCoinDenoms.length; j++) { + + let transferPriv = native.EcdhePrivateKey.fromCrock(transferPrivs[i]); + let oldCoinPub = native.EddsaPublicKey.fromCrock(meltCoin.coinPub); + let transferSecret = native.ecdhEddsa(transferPriv, oldCoinPub); + + let fresh = native.setupFreshCoin(transferSecret, j); + + let coinPriv = fresh.priv; + let coinPub = coinPriv.getPublicKey(); + let blindingFactor = fresh.blindingKey; + let pubHash: native.HashCode = coinPub.hash(); + let denomPub = native.RsaPublicKey.fromCrock(newCoinDenoms[j].denomPub); + let ev = native.rsaBlind(pubHash, + blindingFactor, + denomPub); + if (!ev) { + throw Error("couldn't blind (malicious exchange key?)"); + } + let preCoin: RefreshPreCoinRecord = { + blindingKey: blindingFactor.toCrock(), + coinEv: ev.toCrock(), + publicKey: coinPub.toCrock(), + privateKey: coinPriv.toCrock(), + }; + preCoins.push(preCoin); + sessionHc.read(ev); + } + preCoinsForGammas.push(preCoins); + } + + let sessionHash = new HashCode(); + sessionHash.alloc(); + sessionHc.finish(sessionHash); + + let confirmData = new RefreshMeltCoinAffirmationPS({ + coin_pub: EddsaPublicKey.fromCrock(meltCoin.coinPub), + amount_with_fee: (new Amount(valueWithFee)).toNbo(), + session_hash: sessionHash, + melt_fee: (new Amount(meltFee)).toNbo() + }); + + + let confirmSig: string = native.eddsaSign(confirmData.toPurpose(), + native.EddsaPrivateKey.fromCrock( + meltCoin.coinPriv)).toCrock(); + + let valueOutput = Amounts.getZero(newCoinDenoms[0].value.currency); + for (let denom of newCoinDenoms) { + valueOutput = Amounts.add(valueOutput, denom.value).amount; + } + + let refreshSession: RefreshSessionRecord = { + meltCoinPub: meltCoin.coinPub, + newDenoms: newCoinDenoms.map((d) => d.denomPub), + confirmSig, + valueWithFee, + transferPubs, + preCoinsForGammas, + hash: sessionHash.toCrock(), + norevealIndex: undefined, + exchangeBaseUrl, + transferPrivs, + finished: false, + valueOutput, + }; + + return refreshSession; + } + + export function hashString(str: string): string { + const b = native.ByteArray.fromStringWithNull(str); + return b.hash().toCrock(); + } +} + + +let worker: Worker = (self as any) as Worker; + +worker.onmessage = (msg: MessageEvent) => { + if (!Array.isArray(msg.data.args)) { + console.error("args must be array"); + return; + } + if (typeof msg.data.id != "number") { + console.error("RPC id must be number"); + } + if (typeof msg.data.operation != "string") { + console.error("RPC operation must be string"); + } + let f = (RpcFunctions as any)[msg.data.operation]; + if (!f) { + console.error(`unknown operation: '${msg.data.operation}'`); + return; + } + let res = f(...msg.data.args); + worker.postMessage({result: res, id: msg.data.id}); +} diff --git a/src/emscripten/taler-emscripten-lib.d.ts b/src/emscripten/taler-emscripten-lib.d.ts index 97821d9ef..25cfc623e 100644 --- a/src/emscripten/taler-emscripten-lib.d.ts +++ b/src/emscripten/taler-emscripten-lib.d.ts @@ -30,27 +30,23 @@ export interface EmscFunGen { } -export declare namespace Module { - var cwrap: EmscFunGen; +export var cwrap: EmscFunGen; - function ccall(name: string, ret:"number"|"string", argTypes: any[], args: any[]): any +export function ccall(name: string, ret:"number"|"string", argTypes: any[], args: any[]): any - function stringToUTF8(s: string, addr: number, maxLength: number): void +export function stringToUTF8(s: string, addr: number, maxLength: number): void - function _free(ptr: number): void; +export function _free(ptr: number): void; - function _malloc(n: number): number; +export function _malloc(n: number): number; - function Pointer_stringify(p: number, len?: number): string; +export function Pointer_stringify(p: number, len?: number): string; - function getValue(ptr: number, type: string, noSafe?: boolean): number; +export function getValue(ptr: number, type: string, noSafe?: boolean): number; - function setValue(ptr: number, value: number, type: string, - noSafe?: boolean): void; +export function setValue(ptr: number, value: number, type: string, + noSafe?: boolean): void; - function writeStringToMemory(s: string, - buffer: number, - dontAddNull?: boolean): void; -} - -export default Module; +export function writeStringToMemory(s: string, + buffer: number, + dontAddNull?: boolean): void; diff --git a/src/emscripten/taler-emscripten-lib.js b/src/emscripten/taler-emscripten-lib.js index 9fe21d686..dcbea842c 100644 --- a/src/emscripten/taler-emscripten-lib.js +++ b/src/emscripten/taler-emscripten-lib.js @@ -1,23 +1,21 @@ -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"&&typeof require==="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=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);var ret=nodeFS["readFileSync"](filename);return binary?ret:ret.toString()};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};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(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function read(){throw"no read() available"}}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){abort("NO_DYNAMIC_EXECUTION=1 was set, cannot eval")}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){assert(args.length==sig.length-1);assert("dynCall_"+sig in Module,"bad function pointer type - no table for sig '"+sig+"'");return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}else{assert(sig.length==1);assert("dynCall_"+sig in Module,"bad function pointer type - no table for sig '"+sig+"'");return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i<Runtime.functionPointers.length;i++){if(!Runtime.functionPointers[i]){Runtime.functionPointers[i]=func;return 2*(1+i)}}throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."}),removeFunction:(function(index){Runtime.functionPointers[(index-2)/2]=null}),warnOnce:(function(text){if(!Runtime.warnOnce.shown)Runtime.warnOnce.shown={};if(!Runtime.warnOnce.shown[text]){Runtime.warnOnce.shown[text]=1;Module.printErr(text)}}),funcWrappers:{},getFuncWrapper:(function(func,sig){assert(sig);if(!Runtime.funcWrappers[sig]){Runtime.funcWrappers[sig]={}}var sigCache=Runtime.funcWrappers[sig];if(!sigCache[func]){if(sig.length===1){sigCache[func]=function dynCall_wrapper(){return Runtime.dynCall(sig,func)}}else if(sig.length===2){sigCache[func]=function dynCall_wrapper(arg){return Runtime.dynCall(sig,func,[arg])}}else{sigCache[func]=function dynCall_wrapper(){return Runtime.dynCall(sig,func,Array.prototype.slice.call(arguments))}}}return sigCache[func]}),getCompilerSetting:(function(name){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"}),stackAlloc:(function(size){var ret=STACKTOP;STACKTOP=STACKTOP+size|0;STACKTOP=STACKTOP+15&-16;assert((STACKTOP|0)<(STACK_MAX|0)|0)|0;return ret}),staticAlloc:(function(size){var ret=STATICTOP;STATICTOP=STATICTOP+(assert(!staticSealed),size)|0;STATICTOP=STATICTOP+15&-16;return ret}),dynamicAlloc:(function(size){assert(DYNAMICTOP_PTR);var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=(ret+size+15|0)&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;if(end>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){HEAP32[DYNAMICTOP_PTR>>2]=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];if(!func){abort("NO_DYNAMIC_EXECUTION=1 was set, cannot eval")}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall;((function(){var JSfuncs={"stackSave":(function(){Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore()}),"arrayToC":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=Runtime.stackAlloc(len);stringToUTF8(str,ret,len)}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;assert(returnType!=="array",'Return type should not be "array".');if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=Runtime.stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);if((!opts||!opts.async)&&typeof EmterpreterAsync==="object"){assert(!EmterpreterAsync.state,"cannot start async op with normal JS calling ccall")}if(opts&&opts.async)assert(!returnType,"async ccalls cannot return values");if(returnType==="string")ret=Pointer_stringify(ret);if(stack!==0){if(opts&&opts.async){EmterpreterAsync.asyncFinalizers.push((function(){Runtime.stackRestore(stack)}));return}Runtime.stackRestore(stack)}return ret};cwrap=function cwrap(ident,returnType,argTypes){return(function(){Runtime.warnOnce("NO_DYNAMIC_EXECUTION was set, "+"using slow cwrap implementation");return ccall(ident,returnType,argTypes,arguments)})}}))();Module["ccall"]=ccall;Module["cwrap"]=cwrap;function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}Module["setValue"]=setValue;function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STACK=1;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;Module["ALLOC_NORMAL"]=ALLOC_NORMAL;Module["ALLOC_STACK"]=ALLOC_STACK;Module["ALLOC_STATIC"]=ALLOC_STATIC;Module["ALLOC_DYNAMIC"]=ALLOC_DYNAMIC;Module["ALLOC_NONE"]=ALLOC_NONE;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[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<stop;ptr+=4){HEAP32[ptr>>2]=0}stop=ret+size;while(ptr<stop){HEAP8[ptr++>>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i<size){var curr=slab[i];if(typeof curr==="function"){curr=Runtime.getFunctionIndex(curr)}type=singleType||types[i];if(type===0){i++;continue}assert(type,"Must know what type to store in allocate!");if(type=="i64")type="i32";setValue(ret+i,curr,type);if(previousType!==type){typeSize=Runtime.getNativeTypeSize(type);previousType=type}i+=typeSize}return ret}Module["allocate"]=allocate;function getMemory(size){if(!staticSealed)return Runtime.staticAlloc(size);if(!runtimeInitialized)return Runtime.dynamicAlloc(size);return _malloc(size)}Module["getMemory"]=getMemory;function Pointer_stringify(ptr,length){if(length===0||!ptr)return"";var hasUtf=0;var t;var i=0;while(1){assert(ptr+i<TOTAL_MEMORY);t=HEAPU8[ptr+i>>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify;function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString;function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}Module["stringToUTF8Array"]=stringToUTF8Array;function stringToUTF8(str,outPtr,maxBytesToWrite){assert(typeof maxBytesToWrite=="number","stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!");return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}Module["stringToUTF8"]=stringToUTF8;function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}Module["lengthBytesUTF8"]=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function demangle(func){var __cxa_demangle_func=Module["___cxa_demangle"]||Module["__cxa_demangle"];if(__cxa_demangle_func){try{var s=func.substr(1);var len=lengthBytesUTF8(s)+1;var buf=_malloc(len);stringToUTF8(s,buf,len);var status=_malloc(4);var ret=__cxa_demangle_func(buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}return func}Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling");return func}function demangleAll(text){var regex=/__Z[\w\d_]+/g;return text.replace(regex,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}Module["stackTrace"]=stackTrace;var PAGE_SIZE=4096;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,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function writeStackCookie(){assert((STACK_MAX&3)==0);HEAPU32[(STACK_MAX>>2)-1]=34821223;HEAPU32[(STACK_MAX>>2)-2]=2310721022}function checkStackCookie(){if(HEAPU32[(STACK_MAX>>2)-1]!=34821223||HEAPU32[(STACK_MAX>>2)-2]!=2310721022){abort("Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x02135467, but received 0x"+HEAPU32[(STACK_MAX>>2)-2].toString(16)+" "+HEAPU32[(STACK_MAX>>2)-1].toString(16))}if(HEAP32[0]!==1668509029)throw"Runtime error: The application has corrupted its heap memory area (address zero)!"}function abortStackOverflow(allocSize){abort("Stack overflow! Attempted to allocate "+allocSize+" bytes on the stack, but stack has only "+(STACK_MAX-asm.stackSave()+allocSize)+" bytes available!")}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 WASM_PAGE_SIZE=64*1024;var totalMemory=WASM_PAGE_SIZE;while(totalMemory<TOTAL_MEMORY||totalMemory<2*TOTAL_STACK){if(totalMemory<16*1024*1024){totalMemory*=2}else{totalMemory+=16*1024*1024}}if(totalMemory!==TOTAL_MEMORY){Module.printErr("increasing TOTAL_MEMORY to "+totalMemory+" to be compliant with the asm.js spec (and given that TOTAL_STACK="+TOTAL_STACK+")");TOTAL_MEMORY=totalMemory}assert(typeof Int32Array!=="undefined"&&typeof Float64Array!=="undefined"&&!!(new Int32Array(1))["subarray"]&&!!(new Int32Array(1))["set"],"JS engine does not provide full typed array support");if(Module["buffer"]){buffer=Module["buffer"];assert(buffer.byteLength===TOTAL_MEMORY,"provided buffer should be "+TOTAL_MEMORY+" bytes, but it is "+buffer.byteLength)}else{{buffer=new ArrayBuffer(TOTAL_MEMORY)}assert(buffer.byteLength===TOTAL_MEMORY)}updateGlobalBufferViews();function getTotalMemory(){return TOTAL_MEMORY}HEAP32[0]=1668509029;HEAP16[1]=25459;if(HEAPU8[2]!==115||HEAPU8[3]!==99)throw"Runtime error: expected the system to be little-endian!";Module["HEAP"]=HEAP;Module["buffer"]=buffer;Module["HEAP8"]=HEAP8;Module["HEAP16"]=HEAP16;Module["HEAP32"]=HEAP32;Module["HEAPU8"]=HEAPU8;Module["HEAPU16"]=HEAPU16;Module["HEAPU32"]=HEAPU32;Module["HEAPF32"]=HEAPF32;Module["HEAPF64"]=HEAPF64;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){checkStackCookie();if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){checkStackCookie();callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){checkStackCookie();callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){checkStackCookie();if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}Module["addOnPreRun"]=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=addOnPreMain;function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=addOnPostRun;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}Module["intArrayFromString"]=intArrayFromString;function intArrayToString(array){var ret=[];for(var i=0;i<array.length;i++){var chr=array[i];if(chr>255){assert(false,"Character code "+chr+" ("+String.fromCharCode(chr)+") at offset "+i+" not in 0x00-0xFF.");chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var lastChar,end;if(dontAddNull){end=buffer+lengthBytesUTF8(string);lastChar=HEAP8[end]}stringToUTF8(string,buffer,Infinity);if(dontAddNull)HEAP8[end]=lastChar}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){assert(array.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)");HEAP8.set(array,buffer)}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){assert(str.charCodeAt(i)===str.charCodeAt(i)&255);HEAP8[buffer++>>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}Module["writeAsciiToMemory"]=writeAsciiToMemory;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"];if(!Math["trunc"])Math["trunc"]=(function(x){return x<0?Math.ceil(x):Math.floor(x)});Math.trunc=Math["trunc"];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_round=Math.round;var Math_min=Math.min;var Math_clz32=Math.clz32;var Math_trunc=Math.trunc;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;var runDependencyTracking={};function getUniqueRunDependency(id){var orig=id;while(1){if(!runDependencyTracking[id])return id;id=orig+Math.random()}return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(id){assert(!runDependencyTracking[id]);runDependencyTracking[id]=1;if(runDependencyWatcher===null&&typeof setInterval!=="undefined"){runDependencyWatcher=setInterval((function(){if(ABORT){clearInterval(runDependencyWatcher);runDependencyWatcher=null;return}var shown=false;for(var dep in runDependencyTracking){if(!shown){shown=true;Module.printErr("still waiting on run dependencies:")}Module.printErr("dependency: "+dep)}if(shown){Module.printErr("(end of list)")}}),1e4)}}else{Module.printErr("warning: run dependency added without ID")}}Module["addRunDependency"]=addRunDependency;function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(id){assert(runDependencyTracking[id]);delete runDependencyTracking[id]}else{Module.printErr("warning: run dependency removed without ID")}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["removeRunDependency"]=removeRunDependency;Module["preloadedImages"]={};Module["preloadedAudios"]={};var ASM_CONSTS=[];STATIC_BASE=8;STATICTOP=STATIC_BASE+73360;__ATINIT__.push({func:(function(){_GNUNET_util_cl_init()})},{func:(function(){_GNUNET_CRYPTO_random_init()})},{func:(function(){_gpg_err_init()})},{func:(function(){_TALER_gcrypt_init()})});allocate([0,0,0,0,0,0,0,0,102,154,0,127,199,106,69,159,152,186,249,23,254,223,149,34,17,154,0,127,199,106,69,159,152,186,249,23,254,223,149,51,6,154,0,127,199,106,69,159,152,186,249,23,254,223,149,33,255,255,255,255,255,255,255,255,34,174,40,215,152,47,138,66,205,101,239,35,145,68,55,113,47,59,77,236,207,251,192,181,188,219,137,129,165,219,181,233,56,181,72,243,91,194,86,57,25,208,5,182,241,17,241,89,155,79,25,175,164,130,63,146,24,129,109,218,213,94,28,171,66,2,3,163,152,170,7,216,190,111,112,69,1,91,131,18,140,178,228,78,190,133,49,36,226,180,255,213,195,125,12,85,111,137,123,242,116,93,190,114,177,150,22,59,254,177,222,128,53,18,199,37,167,6,220,155,148,38,105,207,116,241,155,193,210,74,241,158,193,105,155,228,227,37,79,56,134,71,190,239,181,213,140,139,198,157,193,15,101,156,172,119,204,161,12,36,117,2,43,89,111,44,233,45,131,228,166,110,170,132,116,74,212,251,65,189,220,169,176,92,181,83,17,131,218,136,249,118,171,223,102,238,82,81,62,152,16,50,180,45,109,198,49,168,63,33,251,152,200,39,3,176,228,14,239,190,199,127,89,191,194,143,168,61,243,11,224,198,37,167,10,147,71,145,167,213,111,130,3,224,81,99,202,6,112,110,14,10,103,41,41,20,252,47,210,70,133,10,183,39,38,201,38,92,56,33,27,46,237,42,196,90,252,109,44,77,223,179,149,157,19,13,56,83,222,99,175,139,84,115,10,101,168,178,119,60,187,10,106,118,230,174,237,71,46,201,194,129,59,53,130,20,133,44,114,146,100,3,241,76,161,232,191,162,1,48,66,188,75,102,26,168,145,151,248,208,112,139,75,194,48,190,84,6,163,81,108,199,24,82,239,214,25,232,146,209,16,169,101,85,36,6,153,214,42,32,113,87,133,53,14,244,184,209,187,50,112,160,106,16,200,208,210,184,22,193,164,25,83,171,65,81,8,108,55,30,153,235,142,223,76,119,72,39,168,72,155,225,181,188,176,52,99,90,201,197,179,12,28,57,203,138,65,227,74,170,216,78,115,227,99,119,79,202,156,91,163,184,178,214,243,111,46,104,252,178,239,93,238,130,143,116,96,47,23,67,111,99,165,120,114,171,240,161,20,120,200,132,236,57,100,26,8,2,199,140,40,30,99,35,250,255,190,144,233,189,130,222,235,108,80,164,21,121,198,178,247,163,249,190,43,83,114,227,242,120,113,198,156,97,38,234,206,62,39,202,7,194,192,33,199,184,134,209,30,235,224,205,214,125,218,234,120,209,110,238,127,79,125,245,186,111,23,114,170,103,240,6,166,152,200,162,197,125,99,10,174,13,249,190,4,152,63,17,27,71,28,19,53,11,113,27,132,125,4,35,245,119,219,40,147,36,199,64,123,171,202,50,188,190,201,21,10,190,158,60,76,13,16,156,196,103,29,67,182,66,62,203,190,212,197,76,42,126,101,252,156,41,127,89,236,250,214,58,171,111,203,95,23,88,71,74,140,25,68,108,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,102,85,0,0,255,255,255,255,255,255,255,255,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,1,0,0,0,37,89,0,0,2,0,0,0,49,89,0,0,4,0,0,0,61,89,0,0,8,0,0,0,73,89,0,0,16,0,0,0,86,89,0,0,32,0,0,0,96,89,0,0,64,0,0,0,107,89,0,0,128,0,0,0,119,89,0,0,0,1,0,0,132,89,0,0,0,2,0,0,144,89,0,0,0,4,0,0,157,89,0,0,0,8,0,0,167,89,0,0,0,16,0,0,178,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,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,1,0,0,0,17,0,0,0,0,0,0,0,2,0,0,0,11,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,0,0,0,0,2,0,0,0,11,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,0,0,0,0,2,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,0,0,0,0,164,17,0,0,220,28,0,0,80,29,0,0,176,32,0,0,240,48,0,0,0,0,0,0,210,140,0,0,0,1,0,0,0,0,0,0,2,0,0,0,1,0,0,0,102,96,0,0,169,96,0,0,175,96,0,0,243,96,0,0,54,97,0,0,121,97,0,0,188,97,0,0,193,97,0,0,192,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,204,97,0,0,255,97,0,0,50,98,0,0,101,98,0,0,152,98,0,0,203,98,0,0,254,98,0,0,3,99,0,0,224,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,14,99,0,0,73,99,0,0,132,99,0,0,191,99,0,0,250,99,0,0,53,100,0,0,254,98,0,0,112,100,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,123,100,0,0,190,100,0,0,1,101,0,0,68,101,0,0,135,101,0,0,202,101,0,0,254,98,0,0,13,102,0,0,128,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,24,102,0,0,123,102,0,0,222,102,0,0,65,103,0,0,164,103,0,0,7,104,0,0,254,98,0,0,106,104,0,0,9,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,117,104,0,0,252,104,0,0,131,105,0,0,9,106,0,0,143,106,0,0,22,107,0,0,254,98,0,0,157,107,0,0,160,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,173,107,0,0,216,107,0,0,3,108,0,0,46,108,0,0,89,108,0,0,132,108,0,0,254,98,0,0,175,108,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,191,108,0,0,242,108,0,0,37,109,0,0,88,109,0,0,139,109,0,0,190,109,0,0,254,98,0,0,241,109,0,0,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,110,0,0,60,110,0,0,119,110,0,0,178,110,0,0,237,110,0,0,40,111,0,0,254,98,0,0,99,111,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,115,111,0,0,182,111,0,0,249,111,0,0,60,112,0,0,127,112,0,0,194,112,0,0,254,98,0,0,5,113,0,0,64,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,113,0,0,104,113,0,0,187,113,0,0,14,114,0,0,97,114,0,0,180,114,0,0,254,98,0,0,7,115,0,0,128,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,115,0,0,122,115,0,0,221,115,0,0,64,116,0,0,163,116,0,0,6,117,0,0,254,98,0,0,105,117,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,121,117,0,0,252,117,0,0,127,118,0,0,2,119,0,0,133,119,0,0,8,120,0,0,254,98,0,0,139,120,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,153,120,0,0,220,120,0,0,31,121,0,0,98,121,0,0,165,121,0,0,232,121,0,0,254,98,0,0,43,122,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,122,0,0,131,122,0,0,198,122,0,0,9,123,0,0,76,123,0,0,143,123,0,0,254,98,0,0,210,123,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,231,123,0,0,42,124,0,0,109,124,0,0,176,124,0,0,76,123,0,0,243,124,0,0,254,98,0,0,54,125,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,75,125,0,0,142,125,0,0,209,125,0,0,20,126,0,0,87,126,0,0,154,126,0,0,254,98,0,0,221,126,0,0,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,235,126,0,0,220,120,0,0,110,127,0,0,241,127,0,0,116,128,0,0,247,128,0,0,254,98,0,0,122,129,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,138,129,0,0,13,130,0,0,144,130,0,0,19,131,0,0,150,131,0,0,25,132,0,0,254,98,0,0,156,132,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,132,0,0,47,133,0,0,178,133,0,0,53,134,0,0,184,134,0,0,59,135,0,0,254,98,0,0,190,135,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,200,135,0,0,87,126,0,0,220,120,0,0,11,136,0,0,78,136,0,0,145,136,0,0,254,98,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,210,140,0,0,212,136,0,0,193,97,0,0,235,136,0,0,193,97,0,0,255,136,0,0,193,97,0,0,10,137,0,0,193,97,0,0,20,137,0,0,3,99,0,0,29,137,0,0,3,99,0,0,39,137,0,0,3,99,0,0,52,137,0,0,112,100,0,0,61,137,0,0,112,100,0,0,81,137,0,0,112,100,0,0,92,137,0,0,112,100,0,0,102,137,0,0,13,102,0,0,111,137,0,0,13,102,0,0,121,137,0,0,13,102,0,0,134,137,0,0,106,104,0,0,143,137,0,0,106,104,0,0,153,137,0,0,106,104,0,0,166,137,0,0,157,107,0,0,175,137,0,0,175,108,0,0,196,137,0,0,241,109,0,0,217,137,0,0,99,111,0,0,238,137,0,0,5,113,0,0,3,138,0,0,7,115,0,0,24,138,0,0,105,117,0,0,46,138,0,0,139,120,0,0,68,138,0,0,43,122,0,0,85,138,0,0,210,123,0,0,102,138,0,0,54,125,0,0,119,138,0,0,43,122,0,0,136,138,0,0,54,125,0,0,160,138,0,0,43,122,0,0,184,138,0,0,54,125,0,0,201,138,0,0,122,129,0,0,218,138,0,0,156,132,0,0,238,138,0,0,190,135,0,0,2,139,0,0,0,0,0,0,0,0,0,0,110,141,0,0,124,141,0,0,153,141,0,0,22,75,122,123,252,248,25,226,227,149,251,231,59,86,224,163,135,189,100,34,46,131,31,214,16,39,12,215,234,37,5,84,151,88,191,117,192,90,153,74,109,3,79,101,248,240,230,253,202,234,177,163,77,74,107,75,99,110,7,10,56,188,231,55,158,141,0,0,172,141,0,0,181,141,0,0,135,170,124,222,165,239,97,157,79,240,180,36,26,29,108,176,35,121,244,226,206,78,194,120,122,208,179,5,69,225,124,222,218,168,51,183,214,184,167,2,3,139,39,78,174,163,244,228,190,157,145,78,235,97,241,112,46,105,108,32,58,18,104,84,202,141,0,0,217,141,0,0,12,142,0,0,250,115,176,8,157,86,162,132,239,176,240,117,108,137,11,233,177,181,219,221,142,232,26,54,85,248,62,51,178,39,157,57,191,62,132,130,121,167,34,200,6,180,133,164,126,103,200,7,185,70,163,55,190,232,148,38,116,39,136,89,225,50,146,251,33,142,0,0,48,142,0,0,99,142,0,0,176,186,70,86,55,69,140,105,144,229,168,197,246,29,74,247,229,118,217,127,249,75,135,45,231,111,128,80,54,30,227,219,169,28,165,193,26,162,94,180,214,121,39,92,197,120,128,99,165,241,151,65,18,12,79,45,226,173,235,235,16,162,152,221,125,142,0,0,141,142,0,0,196,142,0,0,128,178,66,99,199,193,163,235,183,20,147,193,221,123,232,180,155,70,209,244,27,74,238,193,18,27,1,55,131,248,243,82,107,86,208,55,224,95,37,152,189,15,210,33,93,106,30,82,149,230,79,115,246,63,10,236,139,145,90,152,93,120,101,152,72,143,0,0,89,143,0,0,196,142,0,0,227,123,106,119,93,200,125,186,164,223,169,249,110,94,63,253,222,189,113,248,134,114,137,134,93,245,163,45,32,205,201,68,182,2,44,172,60,73,130,177,13,94,235,85,195,228,222,21,19,70,118,251,109,224,68,96,101,201,116,64,250,140,106,88,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,110,141,0,0,124,141,0,0,153,141,0,0,175,69,210,227,118,72,64,49,97,127,120,210,181,138,107,27,156,126,244,100,245,160,27,71,228,46,195,115,99,34,68,94,142,34,64,202,94,105,226,199,139,50,57,236,250,178,22,73,158,141,0,0,172,141,0,0,181,141,0,0,175,208,57,68,216,72,149,98,107,8,37,244,171,70,144,127,21,249,218,219,228,16,30,198,130,170,3,76,124,235,197,156,250,234,158,169,7,110,222,127,74,241,82,232,178,250,156,182,202,141,0,0,217,141,0,0,12,142,0,0,136,6,38,8,211,230,173,138,10,162,172,224,20,200,168,111,10,166,53,217,71,172,159,235,232,62,244,229,89,102,20,75,42,90,179,157,193,56,20,185,78,58,182,225,1,163,79,39,33,142,0,0,48,142,0,0,99,142,0,0,62,138,105,183,120,60,37,133,25,51,171,98,144,175,108,167,122,153,129,72,8,80,0,156,197,87,124,110,31,87,59,78,104,1,221,35,196,167,214,121,204,248,163,134,198,116,207,251,125,142,0,0,141,142,0,0,196,142,0,0,78,206,8,68,133,129,62,144,136,210,198,58,4,27,197,180,79,158,241,1,42,43,88,143,60,209,31,5,3,58,196,198,12,46,246,171,64,48,254,130,150,36,141,241,99,244,73,82,72,143,0,0,89,143,0,0,196,142,0,0,102,23,23,142,148,31,2,13,53,30,47,37,78,143,211,44,96,36,32,254,176,184,251,154,220,206,187,130,70,30,153,197,166,120,204,49,231,153,23,109,56,96,230,17,12,70,82,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,110,141,0,0,124,141,0,0,153,141,0,0,91,220,193,70,191,96,117,78,106,4,36,38,8,149,117,199,90,0,63,8,157,39,57,131,157,236,88,185,100,236,56,67,158,141,0,0,172,141,0,0,181,141,0,0,176,52,76,97,216,219,56,83,92,168,175,206,175,11,241,43,136,29,194,0,201,131,61,167,38,233,55,108,46,50,207,247,202,141,0,0,217,141,0,0,12,142,0,0,119,62,169,30,54,128,14,70,133,77,184,235,208,145,129,167,41,89,9,139,62,248,193,34,217,99,85,20,206,213,101,254,33,142,0,0,48,142,0,0,99,142,0,0,130,85,138,56,154,68,60,14,164,204,129,152,153,242,8,58,133,240,250,163,229,120,248,7,122,46,63,244,103,41,102,91,125,142,0,0,141,142,0,0,196,142,0,0,96,228,49,89,30,224,182,127,13,138,38,170,203,245,183,127,142,11,198,33,55,40,197,20,5,70,4,15,14,227,127,84,72,143,0,0,89,143,0,0,196,142,0,0,155,9,255,167,27,148,47,203,39,99,95,188,213,176,233,68,191,220,99,100,79,7,19,147,138,127,81,83,92,58,53,226,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,110,141,0,0,124,141,0,0,153,141,0,0,163,14,1,9,139,198,219,191,69,105,15,58,126,158,109,15,139,190,162,163,158,97,72,0,143,208,94,68,158,141,0,0,172,141,0,0,181,141,0,0,137,111,177,18,138,187,223,25,104,50,16,124,212,157,243,63,71,180,177,22,153,18,186,79,83,104,75,34,202,141,0,0,217,141,0,0,12,142,0,0,127,179,203,53,136,198,193,246,255,169,105,77,125,106,210,100,147,101,176,193,246,93,105,209,236,131,51,234,33,142,0,0,48,142,0,0,99,142,0,0,108,17,80,104,116,1,60,172,106,42,188,27,179,130,98,124,236,106,144,216,110,252,1,45,231,175,236,90,125,142,0,0,141,142,0,0,196,142,0,0,149,233,160,219,150,32,149,173,174,190,155,45,111,13,188,226,212,153,241,18,242,210,183,39,63,166,135,14,72,143,0,0,89,143,0,0,196,142,0,0,58,133,65,102,172,93,159,2,63,84,213,23,208,179,157,189,148,103,112,219,156,43,149,201,246,245,101,209,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,30,0,0,240,31,0,0,180,30,0,0,48,32,0,0,112,32,0,0,196,29,0,0,0,0,0,0,156,2,0,0,247,147,0,0,2,0,0,0,252,147,0,0,1,0,0,0,0,148,0,0,8,0,0,0,7,148,0,0,3,0,0,0,17,148,0,0,3,0,0,0,24,148,0,0,9,0,0,0,31,148,0,0,10,0,0,0,38,148,0,0,11,0,0,0,45,148,0,0,5,0,0,0,49,148,0,0,45,1,0,0,53,148,0,0,6,0,0,0,59,148,0,0,7,0,0,0,0,0,0,0,0,0,0,0,92,50,0,0,4,30,0,0,0,0,0,0,7,0,0,0,2,0,0,0,187,148,0,0,228,17,0,0,244,17,0,0,16,0,0,0,128,0,0,0,248,1,0,0,1,0,0,0,2,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,3,151,0,0,12,151,0,0,19,151,0,0,0,0,0,0,167,150,0,0,1,0,0,0,190,150,0,0,3,0,0,0,213,150,0,0,5,0,0,0,236,150,0,0,2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,43,126,21,22,40,174,210,166,171,247,21,136,9,207,79,60,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,107,193,190,226,46,64,159,150,233,61,126,17,115,147,23,42,59,63,217,46,183,45,173,32,51,52,73,248,232,60,251,74,174,45,138,87,30,3,172,156,158,183,111,172,69,175,142,81,200,166,69,55,160,179,169,63,205,227,205,173,159,28,229,139,48,200,28,70,163,92,228,17,229,251,193,25,26,10,82,239,38,117,31,103,163,203,177,64,177,128,140,241,135,164,244,223,246,159,36,69,223,79,155,23,173,43,65,123,230,108,55,16,192,75,5,53,124,93,28,14,234,196,198,111,159,247,242,230,5,0,0,0,43,126,21,22,40,174,210,166,171,247,21,136,9,207,79,60,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,107,193,190,226,46,64,159,150,233,61,126,17,115,147,23,42,59,63,217,46,183,45,173,32,51,52,73,248,232,60,251,74,174,45,138,87,30,3,172,156,158,183,111,172,69,175,142,81,119,137,80,141,22,145,143,3,245,60,82,218,197,78,216,37,48,200,28,70,163,92,228,17,229,251,193,25,26,10,82,239,151,64,5,30,156,95,236,246,67,68,247,168,34,96,237,204,246,159,36,69,223,79,155,23,173,43,65,123,230,108,55,16,48,76,101,40,246,89,199,120,102,165,16,217,193,214,174,94,198,99,99,165,248,124,124,132,238,119,119,153,246,123,123,141,255,242,242,13,214,107,107,189,222,111,111,177,145,197,197,84,96,48,48,80,2,1,1,3,206,103,103,169,86,43,43,125,231,254,254,25,181,215,215,98,77,171,171,230,236,118,118,154,143,202,202,69,31,130,130,157,137,201,201,64,250,125,125,135,239,250,250,21,178,89,89,235,142,71,71,201,251,240,240,11,65,173,173,236,179,212,212,103,95,162,162,253,69,175,175,234,35,156,156,191,83,164,164,247,228,114,114,150,155,192,192,91,117,183,183,194,225,253,253,28,61,147,147,174,76,38,38,106,108,54,54,90,126,63,63,65,245,247,247,2,131,204,204,79,104,52,52,92,81,165,165,244,209,229,229,52,249,241,241,8,226,113,113,147,171,216,216,115,98,49,49,83,42,21,21,63,8,4,4,12,149,199,199,82,70,35,35,101,157,195,195,94,48,24,24,40,55,150,150,161,10,5,5,15,47,154,154,181,14,7,7,9,36,18,18,54,27,128,128,155,223,226,226,61,205,235,235,38,78,39,39,105,127,178,178,205,234,117,117,159,18,9,9,27,29,131,131,158,88,44,44,116,52,26,26,46,54,27,27,45,220,110,110,178,180,90,90,238,91,160,160,251,164,82,82,246,118,59,59,77,183,214,214,97,125,179,179,206,82,41,41,123,221,227,227,62,94,47,47,113,19,132,132,151,166,83,83,245,185,209,209,104,0,0,0,0,193,237,237,44,64,32,32,96,227,252,252,31,121,177,177,200,182,91,91,237,212,106,106,190,141,203,203,70,103,190,190,217,114,57,57,75,148,74,74,222,152,76,76,212,176,88,88,232,133,207,207,74,187,208,208,107,197,239,239,42,79,170,170,229,237,251,251,22,134,67,67,197,154,77,77,215,102,51,51,85,17,133,133,148,138,69,69,207,233,249,249,16,4,2,2,6,254,127,127,129,160,80,80,240,120,60,60,68,37,159,159,186,75,168,168,227,162,81,81,243,93,163,163,254,128,64,64,192,5,143,143,138,63,146,146,173,33,157,157,188,112,56,56,72,241,245,245,4,99,188,188,223,119,182,182,193,175,218,218,117,66,33,33,99,32,16,16,48,229,255,255,26,253,243,243,14,191,210,210,109,129,205,205,76,24,12,12,20,38,19,19,53,195,236,236,47,190,95,95,225,53,151,151,162,136,68,68,204,46,23,23,57,147,196,196,87,85,167,167,242,252,126,126,130,122,61,61,71,200,100,100,172,186,93,93,231,50,25,25,43,230,115,115,149,192,96,96,160,25,129,129,152,158,79,79,209,163,220,220,127,68,34,34,102,84,42,42,126,59,144,144,171,11,136,136,131,140,70,70,202,199,238,238,41,107,184,184,211,40,20,20,60,167,222,222,121,188,94,94,226,22,11,11,29,173,219,219,118,219,224,224,59,100,50,50,86,116,58,58,78,20,10,10,30,146,73,73,219,12,6,6,10,72,36,36,108,184,92,92,228,159,194,194,93,189,211,211,110,67,172,172,239,196,98,98,166,57,145,145,168,49,149,149,164,211,228,228,55,242,121,121,139,213,231,231,50,139,200,200,67,110,55,55,89,218,109,109,183,1,141,141,140,177,213,213,100,156,78,78,210,73,169,169,224,216,108,108,180,172,86,86,250,243,244,244,7,207,234,234,37,202,101,101,175,244,122,122,142,71,174,174,233,16,8,8,24,111,186,186,213,240,120,120,136,74,37,37,111,92,46,46,114,56,28,28,36,87,166,166,241,115,180,180,199,151,198,198,81,203,232,232,35,161,221,221,124,232,116,116,156,62,31,31,33,150,75,75,221,97,189,189,220,13,139,139,134,15,138,138,133,224,112,112,144,124,62,62,66,113,181,181,196,204,102,102,170,144,72,72,216,6,3,3,5,247,246,246,1,28,14,14,18,194,97,97,163,106,53,53,95,174,87,87,249,105,185,185,208,23,134,134,145,153,193,193,88,58,29,29,39,39,158,158,185,217,225,225,56,235,248,248,19,43,152,152,179,34,17,17,51,210,105,105,187,169,217,217,112,7,142,142,137,51,148,148,167,45,155,155,182,60,30,30,34,21,135,135,146,201,233,233,32,135,206,206,73,170,85,85,255,80,40,40,120,165,223,223,122,3,140,140,143,89,161,161,248,9,137,137,128,26,13,13,23,101,191,191,218,215,230,230,49,132,66,66,198,208,104,104,184,130,65,65,195,41,153,153,176,90,45,45,119,30,15,15,17,123,176,176,203,168,84,84,252,109,187,187,214,44,22,22,58,81,244,167,80,126,65,101,83,26,23,164,195,58,39,94,150,59,171,107,203,31,157,69,241,172,250,88,171,75,227,3,147,32,48,250,85,173,118,109,246,136,204,118,145,245,2,76,37,79,229,215,252,197,42,203,215,38,53,68,128,181,98,163,143,222,177,90,73,37,186,27,103,69,234,14,152,93,254,192,225,195,47,117,2,129,76,240,18,141,70,151,163,107,211,249,198,3,143,95,231,21,146,156,149,191,109,122,235,149,82,89,218,212,190,131,45,88,116,33,211,73,224,105,41,142,201,200,68,117,194,137,106,244,142,121,120,153,88,62,107,39,185,113,221,190,225,79,182,240,136,173,23,201,32,172,102,125,206,58,180,99,223,74,24,229,26,49,130,151,81,51,96,98,83,127,69,177,100,119,224,187,107,174,132,254,129,160,28,249,8,43,148,112,72,104,88,143,69,253,25,148,222,108,135,82,123,248,183,171,115,211,35,114,75,2,226,227,31,143,87,102,85,171,42,178,235,40,7,47,181,194,3,134,197,123,154,211,55,8,165,48,40,135,242,35,191,165,178,2,3,106,186,237,22,130,92,138,207,28,43,167,121,180,146,243,7,242,240,78,105,226,161,101,218,244,205,6,5,190,213,209,52,98,31,196,166,254,138,52,46,83,157,162,243,85,160,5,138,225,50,164,246,235,117,11,131,236,57,64,96,239,170,94,113,159,6,189,110,16,81,62,33,138,249,150,221,6,61,221,62,5,174,77,230,189,70,145,84,141,181,113,196,93,5,4,6,212,111,96,80,21,255,25,152,251,36,214,189,233,151,137,64,67,204,103,217,158,119,176,232,66,189,7,137,139,136,231,25,91,56,121,200,238,219,161,124,10,71,124,66,15,233,248,132,30,201,0,0,0,0,9,128,134,131,50,43,237,72,30,17,112,172,108,90,114,78,253,14,255,251,15,133,56,86,61,174,213,30,54,45,57,39,10,15,217,100,104,92,166,33,155,91,84,209,36,54,46,58,12,10,103,177,147,87,231,15,180,238,150,210,27,155,145,158,128,192,197,79,97,220,32,162,90,119,75,105,28,18,26,22,226,147,186,10,192,160,42,229,60,34,224,67,18,27,23,29,14,9,13,11,242,139,199,173,45,182,168,185,20,30,169,200,87,241,25,133,175,117,7,76,238,153,221,187,163,127,96,253,247,1,38,159,92,114,245,188,68,102,59,197,91,251,126,52,139,67,41,118,203,35,198,220,182,237,252,104,184,228,241,99,215,49,220,202,66,99,133,16,19,151,34,64,132,198,17,32,133,74,36,125,210,187,61,248,174,249,50,17,199,41,161,109,29,158,47,75,220,178,48,243,13,134,82,236,119,193,227,208,43,179,22,108,169,112,185,153,17,148,72,250,71,233,100,34,168,252,140,196,160,240,63,26,86,125,44,216,34,51,144,239,135,73,78,199,217,56,209,193,140,202,162,254,152,212,11,54,166,245,129,207,165,122,222,40,218,183,142,38,63,173,191,164,44,58,157,228,80,120,146,13,106,95,204,155,84,126,70,98,246,141,19,194,144,216,184,232,46,57,247,94,130,195,175,245,159,93,128,190,105,208,147,124,111,213,45,169,207,37,18,179,200,172,153,59,16,24,125,167,232,156,99,110,219,59,187,123,205,38,120,9,110,89,24,244,236,154,183,1,131,79,154,168,230,149,110,101,170,255,230,126,33,188,207,8,239,21,232,230,186,231,155,217,74,111,54,206,234,159,9,212,41,176,124,214,49,164,178,175,42,63,35,49,198,165,148,48,53,162,102,192,116,78,188,55,252,130,202,166,224,144,208,176,51,167,216,21,241,4,152,74,65,236,218,247,127,205,80,14,23,145,246,47,118,77,214,141,67,239,176,77,204,170,77,84,228,150,4,223,158,209,181,227,76,106,136,27,193,44,31,184,70,101,81,127,157,94,234,4,1,140,53,93,250,135,116,115,251,11,65,46,179,103,29,90,146,219,210,82,233,16,86,51,109,214,71,19,154,215,97,140,55,161,12,122,89,248,20,142,235,19,60,137,206,169,39,238,183,97,201,53,225,28,229,237,122,71,177,60,156,210,223,89,85,242,115,63,24,20,206,121,115,199,55,191,83,247,205,234,95,253,170,91,223,61,111,20,120,68,219,134,202,175,243,129,185,104,196,62,56,36,52,44,194,163,64,95,22,29,195,114,188,226,37,12,40,60,73,139,255,13,149,65,57,168,1,113,8,12,179,222,216,180,228,156,100,86,193,144,123,203,132,97,213,50,182,112,72,108,92,116,208,184,87,66,82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125,1,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,16,0,0,0,32,0,0,0,64,0,0,0,128,0,0,0,27,0,0,0,54,0,0,0,108,0,0,0,216,0,0,0,171,0,0,0,77,0,0,0,154,0,0,0,47,0,0,0,94,0,0,0,188,0,0,0,99,0,0,0,198,0,0,0,151,0,0,0,53,0,0,0,106,0,0,0,212,0,0,0,179,0,0,0,125,0,0,0,250,0,0,0,239,0,0,0,197,0,0,0,145,0,0,0,8,0,0,0,2,0,0,0,27,151,0,0,28,29,0,0,40,29,0,0,16,0,0,0,192,0,0,0,248,1,0,0,1,0,0,0,2,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,130,151,0,0,142,151,0,0,0,0,0,0,34,151,0,0,1,0,0,0,58,151,0,0,3,0,0,0,82,151,0,0,5,0,0,0,106,151,0,0,2,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,2,0,0,0,150,151,0,0,144,29,0,0,156,29,0,0,16,0,0,0,0,1,0,0,248,1,0,0,1,0,0,0,2,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,253,151,0,0,9,152,0,0,0,0,0,0,157,151,0,0,1,0,0,0,181,151,0,0,3,0,0,0,205,151,0,0,5,0,0,0,229,151,0,0,2,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,17,152,0,0,27,152,0,0,15,0,0,0,248,29,0,0,20,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,184,0,0,0,0,0,0,0,42,152,0,0,57,152,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,189,153,0,0,88,30,0,0,193,153,0,0,196,153,0,0,203,153,0,0,205,153,0,0,207,153,0,0,1,0,0,0,2,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,255,159,0,0,27,165,0,0,39,165,0,0,0,0,0,0,2,0,0,0,2,0,0,0,64,165,0,0,69,165,0,0,15,0,0,0,156,30,0,0,20,0,0,0,2,0,0,0,1,0,0,0,2,0,0,0,4,0,0,0,184,0,0,0,10,0,0,0,147,165,0,0,168,165,0,0,186,165,0,0,200,165,0,0,214,165,0,0,0,0,0,0,11,0,0,0,2,0,0,0,232,165,0,0,239,165,0,0,19,0,0,0,232,30,0,0,28,0,0,0,3,0,0,0,1,0,0,0,3,0,0,0,5,0,0,0,192,0,0,0,11,0,0,0,245,166,0,0,0,0,0,0,152,47,138,66,145,68,55,113,207,251,192,181,165,219,181,233,91,194,86,57,241,17,241,89,164,130,63,146,213,94,28,171,152,170,7,216,1,91,131,18,190,133,49,36,195,125,12,85,116,93,190,114,254,177,222,128,167,6,220,155,116,241,155,193,193,105,155,228,134,71,190,239,198,157,193,15,204,161,12,36,111,44,233,45,170,132,116,74,220,169,176,92,218,136,249,118,82,81,62,152,109,198,49,168,200,39,3,176,199,127,89,191,243,11,224,198,71,145,167,213,81,99,202,6,103,41,41,20,133,10,183,39,56,33,27,46,252,109,44,77,19,13,56,83,84,115,10,101,187,10,106,118,46,201,194,129,133,44,114,146,161,232,191,162,75,102,26,168,112,139,75,194,163,81,108,199,25,232,146,209,36,6,153,214,133,53,14,244,112,160,106,16,22,193,164,25,8,108,55,30,76,119,72,39,181,188,176,52,179,12,28,57,74,170,216,78,79,202,156,91,243,111,46,104,238,130,143,116,111,99,165,120,20,120,200,132,8,2,199,140,250,255,190,144,235,108,80,164,247,163,249,190,242,120,113,198,8,0,0,0,2,0,0,0,12,167,0,0,19,167,0,0,19,0,0,0,36,32,0,0,32,0,0,0,4,0,0,0,1,0,0,0,3,0,0,0,5,0,0,0,192,0,0,0,11,0,0,0,38,167,0,0,61,167,0,0,0,0,0,0,10,0,0,0,2,0,0,0,83,167,0,0,90,167,0,0,19,0,0,0,100,32,0,0,64,0,0,0,5,0,0,0,1,0,0,0,4,0,0,0,6,0,0,0,224,0,0,0,12,0,0,0,104,169,0,0,127,169,0,0,0,0,0,0,9,0,0,0,2,0,0,0,149,169,0,0,156,169,0,0,19,0,0,0,164,32,0,0,48,0,0,0,6,0,0,0,1,0,0,0,4,0,0,0,6,0,0,0,224,0,0,0,12,0,0,0,175,169,0,0,198,169,0,0,0,0,0,0,10,0,0,0,0,0,0,0,220,169,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,1,0,0,160,16,0,0,13,0,0,0,14,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,117,50,188,188,243,33,236,236,198,67,32,32,244,201,179,179,219,3,218,218,123,139,2,2,251,43,226,226,200,250,158,158,74,236,201,201,211,9,212,212,230,107,24,24,107,159,30,30,69,14,152,152,125,56,178,178,232,210,166,166,75,183,38,38,214,87,60,60,50,138,147,147,216,238,130,130,253,152,82,82,55,212,123,123,113,55,187,187,241,151,91,91,225,131,71,71,48,60,36,36,15,226,81,81,248,198,186,186,27,243,74,74,135,72,191,191,250,112,13,13,6,179,176,176,63,222,117,117,94,253,210,210,186,32,125,125,174,49,102,102,91,163,58,58,138,28,89,89,0,0,0,0,188,147,205,205,157,224,26,26,109,44,174,174,193,171,127,127,177,199,43,43,14,185,190,190,128,160,224,224,93,16,138,138,210,82,59,59,213,186,100,100,160,136,216,216,132,165,231,231,7,232,95,95,20,17,27,27,181,194,44,44,144,180,252,252,44,39,49,49,163,101,128,128,178,42,115,115,115,129,12,12,76,95,121,121,84,65,107,107,146,2,75,75,116,105,83,83,54,143,148,148,81,31,131,131,56,54,42,42,176,156,196,196,189,200,34,34,90,248,213,213,252,195,189,189,96,120,72,72,98,206,255,255,150,7,76,76,108,119,65,65,66,230,199,199,247,36,235,235,16,20,28,28,124,99,93,93,40,34,54,54,39,192,103,103,140,175,233,233,19,249,68,68,149,234,20,20,156,187,245,245,199,24,207,207,36,45,63,63,70,227,192,192,59,219,114,114,112,108,84,84,202,76,41,41,227,53,240,240,133,254,8,8,203,23,198,198,17,79,243,243,208,228,140,140,147,89,164,164,184,150,202,202,166,59,104,104,131,77,184,184,32,40,56,56,255,46,229,229,159,86,173,173,119,132,11,11,195,29,200,200,204,255,153,153,3,237,88,88,111,154,25,25,8,10,14,14,191,126,149,149,64,80,112,112,231,48,247,247,43,207,110,110,226,110,31,31,121,61,181,181,12,15,9,9,170,52,97,97,130,22,87,87,65,11,159,159,58,128,157,157,234,100,17,17,185,205,37,37,228,221,175,175,154,8,69,69,164,141,223,223,151,92,163,163,126,213,234,234,218,88,53,53,122,208,237,237,23,252,67,67,102,203,248,248,148,177,251,251,161,211,55,55,29,64,250,250,61,104,194,194,240,204,180,180,222,93,50,50,179,113,156,156,11,231,86,86,114,218,227,227,167,96,135,135,28,27,21,21,239,58,249,249,209,191,99,99,83,169,52,52,62,133,154,154,143,66,177,177,51,209,124,124,38,155,136,136,95,166,61,61,236,215,161,161,118,223,228,228,42,148,129,129,73,1,145,145,129,251,15,15,136,170,238,238,238,97,22,22,33,115,215,215,196,245,151,151,26,168,165,165,235,63,254,254,217,181,109,109,197,174,120,120,57,109,197,197,153,229,29,29,205,164,118,118,173,220,62,62,49,103,203,203,139,71,182,182,1,91,239,239,24,30,18,18,35,197,96,96,221,176,106,106,31,246,77,77,78,233,206,206,45,124,222,222,249,157,85,85,72,90,126,126,79,178,33,33,242,122,3,3,101,38,160,160,142,25,94,94,120,102,90,90,92,75,101,101,88,78,98,98,25,69,253,253,141,244,6,6,229,134,64,64,152,190,242,242,87,172,51,51,103,144,23,23,127,142,5,5,5,94,232,232,100,125,79,79,175,106,137,137,99,149,16,16,182,47,116,116,254,117,10,10,245,146,92,92,183,116,155,155,60,51,45,45,165,214,48,48,206,73,46,46,233,137,73,73,104,114,70,70,68,85,119,119,224,216,168,168,77,4,150,150,67,189,40,40,105,41,169,169,41,121,217,217,46,145,134,134,172,135,209,209,21,74,244,244,89,21,141,141,168,130,214,214,10,188,185,185,158,13,66,66,110,193,246,246,71,184,47,47,223,6,221,221,52,57,35,35,53,98,204,204,106,196,241,241,207,18,193,193,220,235,133,133,34,158,143,143,201,161,113,113,192,240,144,144,155,83,170,170,137,241,1,1,212,225,139,139,237,140,78,78,171,111,142,142,18,162,171,171,162,62,111,111,13,84,230,230,82,242,219,219,187,123,146,146,2,182,183,183,47,202,105,105,169,217,57,57,215,12,211,211,97,35,167,167,30,173,162,162,180,153,195,195,80,68,108,108,4,5,7,7,246,127,4,4,194,70,39,39,22,167,172,172,37,118,208,208,134,19,80,80,86,247,220,220,85,26,132,132,9,81,225,225,190,37,122,122,145,239,19,19,57,57,217,169,23,23,144,103,156,156,113,179,166,166,210,232,7,7,5,4,82,82,152,253,128,128,101,163,228,228,223,118,69,69,8,154,75,75,2,146,224,224,160,128,90,90,102,120,175,175,221,228,106,106,176,221,99,99,191,209,42,42,54,56,230,230,84,13,32,32,67,198,204,204,98,53,242,242,190,152,18,18,30,24,235,235,36,247,161,161,215,236,65,65,119,108,40,40,189,67,188,188,50,117,123,123,212,55,136,136,155,38,13,13,112,250,68,68,249,19,251,251,177,148,126,126,90,72,3,3,122,242,140,140,228,208,182,182,71,139,36,36,60,48,231,231,165,132,107,107,65,84,221,221,6,223,96,96,197,35,253,253,69,25,58,58,163,91,194,194,104,61,141,141,21,89,236,236,33,243,102,102,49,174,111,111,62,162,87,87,22,130,16,16,149,99,239,239,91,1,184,184,77,131,134,134,145,46,109,109,181,217,131,131,31,81,170,170,83,155,93,93,99,124,104,104,59,166,254,254,63,235,48,48,214,165,122,122,37,190,172,172,167,22,9,9,15,12,240,240,53,227,167,167,35,97,144,144,240,192,233,233,175,140,157,157,128,58,92,92,146,245,12,12,129,115,49,49,39,44,208,208,118,37,86,86,231,11,146,146,123,187,206,206,233,78,1,1,241,137,30,30,159,107,52,52,169,83,241,241,196,106,195,195,153,180,91,91,151,241,71,71,131,225,24,24,107,230,34,34,200,189,152,152,14,69,31,31,110,226,179,179,201,244,116,116,47,182,248,248,203,102,153,153,255,204,20,20,234,149,88,88,237,3,220,220,247,86,139,139,225,212,21,21,27,28,162,162,173,30,211,211,12,215,226,226,43,251,200,200,29,195,94,94,25,142,44,44,194,181,73,73,137,233,193,193,18,207,149,149,126,191,125,125,32,186,17,17,100,234,11,11,132,119,197,197,109,57,137,137,106,175,124,124,209,51,113,113,161,201,255,255,206,98,187,187,55,113,15,15,251,129,181,181,61,121,225,225,81,9,62,62,220,173,63,63,45,36,118,118,164,205,85,85,157,249,130,130,238,216,64,64,134,229,120,120,174,197,37,37,205,185,150,150,4,77,119,119,85,68,14,14,10,8,80,80,19,134,247,247,48,231,55,55,211,161,250,250,64,29,97,97,52,170,78,78,140,237,176,176,179,6,84,84,108,112,115,115,42,178,59,59,82,210,159,159,11,65,2,2,139,123,216,216,136,160,243,243,79,17,203,203,103,49,39,39,70,194,103,103,192,39,252,252,180,144,56,56,40,32,4,4,127,246,72,72,120,96,229,229,46,255,76,76,7,150,101,101,75,92,43,43,199,177,142,142,111,171,66,66,13,158,245,245,187,156,219,219,242,82,74,74,243,27,61,61,166,95,164,164,89,147,185,185,188,10,249,249,58,239,19,19,239,145,8,8,254,133,145,145,1,73,22,22,97,238,222,222,124,45,33,33,178,79,177,177,66,143,114,114,219,59,47,47,184,71,191,191,72,135,174,174,44,109,192,192,227,70,60,60,87,214,154,154,133,62,169,169,41,105,79,79,125,100,129,129,148,42,46,46,73,206,198,198,23,203,105,105,202,47,189,189,195,252,163,163,92,151,232,232,94,5,237,237,208,122,209,209,135,172,5,5,142,127,100,100,186,213,165,165,168,26,38,38,183,75,190,190,185,14,135,135,96,167,213,213,248,90,54,54,34,40,27,27,17,20,117,117,222,63,217,217,121,41,238,238,170,136,45,45,51,60],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);allocate([121,121,95,76,183,183,182,2,202,202,150,184,53,53,88,218,196,196,156,176,67,67,252,23,132,132,26,85,77,77,246,31,89,89,28,138,178,178,56,125,51,51,172,87,207,207,24,199,6,6,244,141,83,83,105,116,155,155,116,183,151,151,245,196,173,173,86,159,227,227,218,114,234,234,213,126,244,244,74,21,143,143,158,34,171,171,162,18,98,98,78,88,95,95,232,7,29,29,229,153,35,35,57,52,246,246,193,110,108,108,68,80,50,50,93,222,70,70,114,104,160,160,38,101,205,205,147,188,218,218,3,219,186,186,198,248,158,158,250,200,214,214,130,168,110,110,207,43,112,112,80,64,133,133,235,220,10,10,117,254,147,147,138,50,223,223,141,164,41,41,76,202,28,28,20,16,215,215,115,33,180,180,204,240,212,212,9,211,138,138,16,93,81,81,226,15,0,0,0,0,25,25,154,111,26,26,224,157,148,148,143,54,199,199,230,66,201,201,236,74,210,210,253,94,127,127,171,193,168,168,216,224,50,188,117,188,33,236,243,236,67,32,198,32,201,179,244,179,3,218,219,218,139,2,123,2,43,226,251,226,250,158,200,158,236,201,74,201,9,212,211,212,107,24,230,24,159,30,107,30,14,152,69,152,56,178,125,178,210,166,232,166,183,38,75,38,87,60,214,60,138,147,50,147,238,130,216,130,152,82,253,82,212,123,55,123,55,187,113,187,151,91,241,91,131,71,225,71,60,36,48,36,226,81,15,81,198,186,248,186,243,74,27,74,72,191,135,191,112,13,250,13,179,176,6,176,222,117,63,117,253,210,94,210,32,125,186,125,49,102,174,102,163,58,91,58,28,89,138,89,0,0,0,0,147,205,188,205,224,26,157,26,44,174,109,174,171,127,193,127,199,43,177,43,185,190,14,190,160,224,128,224,16,138,93,138,82,59,210,59,186,100,213,100,136,216,160,216,165,231,132,231,232,95,7,95,17,27,20,27,194,44,181,44,180,252,144,252,39,49,44,49,101,128,163,128,42,115,178,115,129,12,115,12,95,121,76,121,65,107,84,107,2,75,146,75,105,83,116,83,143,148,54,148,31,131,81,131,54,42,56,42,156,196,176,196,200,34,189,34,248,213,90,213,195,189,252,189,120,72,96,72,206,255,98,255,7,76,150,76,119,65,108,65,230,199,66,199,36,235,247,235,20,28,16,28,99,93,124,93,34,54,40,54,192,103,39,103,175,233,140,233,249,68,19,68,234,20,149,20,187,245,156,245,24,207,199,207,45,63,36,63,227,192,70,192,219,114,59,114,108,84,112,84,76,41,202,41,53,240,227,240,254,8,133,8,23,198,203,198,79,243,17,243,228,140,208,140,89,164,147,164,150,202,184,202,59,104,166,104,77,184,131,184,40,56,32,56,46,229,255,229,86,173,159,173,132,11,119,11,29,200,195,200,255,153,204,153,237,88,3,88,154,25,111,25,10,14,8,14,126,149,191,149,80,112,64,112,48,247,231,247,207,110,43,110,110,31,226,31,61,181,121,181,15,9,12,9,52,97,170,97,22,87,130,87,11,159,65,159,128,157,58,157,100,17,234,17,205,37,185,37,221,175,228,175,8,69,154,69,141,223,164,223,92,163,151,163,213,234,126,234,88,53,218,53,208,237,122,237,252,67,23,67,203,248,102,248,177,251,148,251,211,55,161,55,64,250,29,250,104,194,61,194,204,180,240,180,93,50,222,50,113,156,179,156,231,86,11,86,218,227,114,227,96,135,167,135,27,21,28,21,58,249,239,249,191,99,209,99,169,52,83,52,133,154,62,154,66,177,143,177,209,124,51,124,155,136,38,136,166,61,95,61,215,161,236,161,223,228,118,228,148,129,42,129,1,145,73,145,251,15,129,15,170,238,136,238,97,22,238,22,115,215,33,215,245,151,196,151,168,165,26,165,63,254,235,254,181,109,217,109,174,120,197,120,109,197,57,197,229,29,153,29,164,118,205,118,220,62,173,62,103,203,49,203,71,182,139,182,91,239,1,239,30,18,24,18,197,96,35,96,176,106,221,106,246,77,31,77,233,206,78,206,124,222,45,222,157,85,249,85,90,126,72,126,178,33,79,33,122,3,242,3,38,160,101,160,25,94,142,94,102,90,120,90,75,101,92,101,78,98,88,98,69,253,25,253,244,6,141,6,134,64,229,64,190,242,152,242,172,51,87,51,144,23,103,23,142,5,127,5,94,232,5,232,125,79,100,79,106,137,175,137,149,16,99,16,47,116,182,116,117,10,254,10,146,92,245,92,116,155,183,155,51,45,60,45,214,48,165,48,73,46,206,46,137,73,233,73,114,70,104,70,85,119,68,119,216,168,224,168,4,150,77,150,189,40,67,40,41,169,105,169,121,217,41,217,145,134,46,134,135,209,172,209,74,244,21,244,21,141,89,141,130,214,168,214,188,185,10,185,13,66,158,66,193,246,110,246,184,47,71,47,6,221,223,221,57,35,52,35,98,204,53,204,196,241,106,241,18,193,207,193,235,133,220,133,158,143,34,143,161,113,201,113,240,144,192,144,83,170,155,170,241,1,137,1,225,139,212,139,140,78,237,78,111,142,171,142,162,171,18,171,62,111,162,111,84,230,13,230,242,219,82,219,123,146,187,146,182,183,2,183,202,105,47,105,217,57,169,57,12,211,215,211,35,167,97,167,173,162,30,162,153,195,180,195,68,108,80,108,5,7,4,7,127,4,246,4,70,39,194,39,167,172,22,172,118,208,37,208,19,80,134,80,247,220,86,220,26,132,85,132,81,225,9,225,37,122,190,122,239,19,145,19,217,169,57,217,144,103,23,144,113,179,156,113,210,232,166,210,5,4,7,5,152,253,82,152,101,163,128,101,223,118,228,223,8,154,69,8,2,146,75,2,160,128,224,160,102,120,90,102,221,228,175,221,176,221,106,176,191,209,99,191,54,56,42,54,84,13,230,84,67,198,32,67,98,53,204,98,190,152,242,190,30,24,18,30,36,247,235,36,215,236,161,215,119,108,65,119,189,67,40,189,50,117,188,50,212,55,123,212,155,38,136,155,112,250,13,112,249,19,68,249,177,148,251,177,90,72,126,90,122,242,3,122,228,208,140,228,71,139,182,71,60,48,36,60,165,132,231,165,65,84,107,65,6,223,221,6,197,35,96,197,69,25,253,69,163,91,58,163,104,61,194,104,21,89,141,21,33,243,236,33,49,174,102,49,62,162,111,62,22,130,87,22,149,99,16,149,91,1,239,91,77,131,184,77,145,46,134,145,181,217,109,181,31,81,131,31,83,155,170,83,99,124,93,99,59,166,104,59,63,235,254,63,214,165,48,214,37,190,122,37,167,22,172,167,15,12,9,15,53,227,240,53,35,97,167,35,240,192,144,240,175,140,233,175,128,58,157,128,146,245,92,146,129,115,12,129,39,44,49,39,118,37,208,118,231,11,86,231,123,187,146,123,233,78,206,233,241,137,1,241,159,107,30,159,169,83,52,169,196,106,241,196,153,180,195,153,151,241,91,151,131,225,71,131,107,230,24,107,200,189,34,200,14,69,152,14,110,226,31,110,201,244,179,201,47,182,116,47,203,102,248,203,255,204,153,255,234,149,20,234,237,3,88,237,247,86,220,247,225,212,139,225,27,28,21,27,173,30,162,173,12,215,211,12,43,251,226,43,29,195,200,29,25,142,94,25,194,181,44,194,137,233,73,137,18,207,193,18,126,191,149,126,32,186,125,32,100,234,17,100,132,119,11,132,109,57,197,109,106,175,137,106,209,51,124,209,161,201,113,161,206,98,255,206,55,113,187,55,251,129,15,251,61,121,181,61,81,9,225,81,220,173,62,220,45,36,63,45,164,205,118,164,157,249,85,157,238,216,130,238,134,229,64,134,174,197,120,174,205,185,37,205,4,77,150,4,85,68,119,85,10,8,14,10,19,134,80,19,48,231,247,48,211,161,55,211,64,29,250,64,52,170,97,52,140,237,78,140,179,6,176,179,108,112,84,108,42,178,115,42,82,210,59,82,11,65,159,11,139,123,2,139,136,160,216,136,79,17,243,79,103,49,203,103,70,194,39,70,192,39,103,192,180,144,252,180,40,32,56,40,127,246,4,127,120,96,72,120,46,255,229,46,7,150,76,7,75,92,101,75,199,177,43,199,111,171,142,111,13,158,66,13,187,156,245,187,242,82,219,242,243,27,74,243,166,95,61,166,89,147,164,89,188,10,185,188,58,239,249,58,239,145,19,239,254,133,8,254,1,73,145,1,97,238,22,97,124,45,222,124,178,79,33,178,66,143,177,66,219,59,114,219,184,71,47,184,72,135,191,72,44,109,174,44,227,70,192,227,87,214,60,87,133,62,154,133,41,105,169,41,125,100,79,125,148,42,129,148,73,206,46,73,23,203,198,23,202,47,105,202,195,252,189,195,92,151,163,92,94,5,232,94,208,122,237,208,135,172,209,135,142,127,5,142,186,213,100,186,168,26,165,168,183,75,38,183,185,14,190,185,96,167,135,96,248,90,213,248,34,40,54,34,17,20,27,17,222,63,117,222,121,41,217,121,170,136,238,170,51,60,45,51,95,76,121,95,182,2,183,182,150,184,202,150,88,218,53,88,156,176,196,156,252,23,67,252,26,85,132,26,246,31,77,246,28,138,89,28,56,125,178,56,172,87,51,172,24,199,207,24,244,141,6,244,105,116,83,105,116,183,155,116,245,196,151,245,86,159,173,86,218,114,227,218,213,126,234,213,74,21,244,74,158,34,143,158,162,18,171,162,78,88,98,78,232,7,95,232,229,153,29,229,57,52,35,57,193,110,246,193,68,80,108,68,93,222,50,93,114,104,70,114,38,101,160,38,147,188,205,147,3,219,218,3,198,248,186,198,250,200,158,250,130,168,214,130,207,43,110,207,80,64,112,80,235,220,133,235,117,254,10,117,138,50,147,138,141,164,223,141,76,202,41,76,20,16,28,20,115,33,215,115,204,240,180,204,9,211,212,9,16,93,138,16,226,15,81,226,0,0,0,0,154,111,25,154,224,157,26,224,143,54,148,143,230,66,199,230,236,74,201,236,253,94,210,253,171,193,127,171,216,224,168,216,47,1,0,0,0,0,0,0,211,177,0,0,0,0,0,0,0,0,0,0,16,0,0,0,128,0,0,0,160,16,0,0,13,0,0,0,14,0,0,0,15,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,152,47,138,66,145,68,55,113,207,251,192,181,165,219,181,233,91,194,86,57,241,17,241,89,164,130,63,146,213,94,28,171,152,170,7,216,1,91,131,18,190,133,49,36,195,125,12,85,116,93,190,114,254,177,222,128,167,6,220,155,116,241,155,193,193,105,155,228,134,71,190,239,198,157,193,15,204,161,12,36,111,44,233,45,170,132,116,74,220,169,176,92,218,136,249,118,82,81,62,152,109,198,49,168,200,39,3,176,199,127,89,191,243,11,224,198,71,145,167,213,81,99,202,6,103,41,41,20,133,10,183,39,56,33,27,46,252,109,44,77,19,13,56,83,84,115,10,101,187,10,106,118,46,201,194,129,133,44,114,146,161,232,191,162,75,102,26,168,112,139,75,194,163,81,108,199,25,232,146,209,36,6,153,214,133,53,14,244,112,160,106,16,22,193,164,25,8,108,55,30,76,119,72,39,181,188,176,52,179,12,28,57,74,170,216,78,79,202,156,91,243,111,46,104,238,130,143,116,111,99,165,120,20,120,200,132,8,2,199,140,250,255,190,144,235,108,80,164,247,163,249,190,242,120,113,198,18,0,0,0,0,0,0,0,3,0,0,0,47,184,0,0,176,50,0,0,51,184,0,0,59,184,0,0,68,184,0,0,71,184,0,0,51,184,0,0,3,0,0,0,7,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,8,0,0,0,20,0,0,0,4,0,0,0,21,0,0,0,9,0,0,0,245,194,0,0,249,194,0,0,255,194,0,0,4,195,0,0,10,195,0,0,0,0,0,0,16,0,0,0,7,0,0,0,22,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,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,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,255,255,255,255,255,255,255,255,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,8,0,0,0,22,0,0,0,37,0,0,0,63,0,0,0,92,0,0,0,117,0,0,0,132,0,0,0,147,0,0,0,161,0,0,0,175,0,0,0,190,0,0,0,205,0,0,0,230,0,0,0,243,0,0,0,2,1,0,0,16,1,0,0,27,1,0,0,41,1,0,0,63,1,0,0,79,1,0,0,109,1,0,0,129,1,0,0,153,1,0,0,179,1,0,0,204,1,0,0,222,1,0,0,231,1,0,0,241,1,0,0,1,2,0,0,14,2,0,0,28,2,0,0,47,2,0,0,71,2,0,0,91,2,0,0,107,2,0,0,122,2,0,0,138,2,0,0,154,2,0,0,171,2,0,0,185,2,0,0,201,2,0,0,228,2,0,0,245,2,0,0,9,3,0,0,28,3,0,0,45,3,0,0,65,3,0,0,77,3,0,0,91,3,0,0,104,3,0,0,120,3,0,0,139,3,0,0,158,3,0,0,178,3,0,0,198,3,0,0,212,3,0,0,234,3,0,0,254,3,0,0,6,4,0,0,10,4,0,0,24,4,0,0,47,4,0,0,55,4,0,0,70,4,0,0,83,4,0,0,98,4,0,0,127,4,0,0,156,4,0,0,179,4,0,0,195,4,0,0,211,4,0,0,231,4,0,0,244,4,0,0,3,5,0,0,20,5,0,0,36,5,0,0,53,5,0,0,70,5,0,0,82,5,0,0,95,5,0,0,126,5,0,0,147,5,0,0,167,5,0,0,188,5,0,0,210,5,0,0,222,5,0,0,237,5,0,0,245,5,0,0,2,6,0,0,11,6,0,0,29,6,0,0,40,6,0,0,51,6,0,0,65,6,0,0,85,6,0,0,98,6,0,0,110,6,0,0,124,6,0,0,136,6,0,0,156,6,0,0,175,6,0,0,195,6,0,0,217,6,0,0,241,6,0,0,6,7,0,0,29,7,0,0,50,7,0,0,65,7,0,0,76,7,0,0,96,7,0,0,109,7,0,0,122,7,0,0,139,7,0,0,161,7,0,0,175,7,0,0,195,7,0,0,211,7,0,0,225,7,0,0,236,7,0,0,0,8,0,0,23,8,0,0,44,8,0,0,59,8,0,0,80,8,0,0,102,8,0,0,118,8,0,0,132,8,0,0,148,8,0,0,162,8,0,0,179,8,0,0,191,8,0,0,223,8,0,0,243,8,0,0,255,8,0,0,9,9,0,0,21,9,0,0,39,9,0,0,60,9,0,0,72,9,0,0,87,9,0,0,104,9,0,0,119,9,0,0,135,9,0,0,149,9,0,0,168,9,0,0,187,9,0,0,210,9,0,0,231,9,0,0,255,9,0,0,17,10,0,0,39,10,0,0,62,10,0,0,80,10,0,0,92,10,0,0,110,10,0,0,127,10,0,0,141,10,0,0,158,10,0,0,173,10,0,0,196,10,0,0,215,10,0,0,228,10,0,0,247,10,0,0,15,11,0,0,42,11,0,0,55,11,0,0,80,11,0,0,91,11,0,0,110,11,0,0,122,11,0,0,138,11,0,0,156,11,0,0,183,11,0,0,190,11,0,0,205,11,0,0,221,11,0,0,237,11,0,0,1,12,0,0,14,12,0,0,26,12,0,0,43,12,0,0,55,12,0,0,72,12,0,0,86,12,0,0,102,12,0,0,129,12,0,0,152,12,0,0,175,12,0,0,198,12,0,0,213,12,0,0,230,12,0,0,248,12,0,0,13,13,0,0,32,13,0,0,63,13,0,0,81,13,0,0,99,13,0,0,121,13,0,0,147,13,0,0,174,13,0,0,191,13,0,0,232,13,0,0,8,14,0,0,46,14,0,0,73,14,0,0,103,14,0,0,133,14,0,0,161,14,0,0,198,14,0,0,222,14,0,0,14,15,0,0,56,15,0,0,96,15,0,0,132,15,0,0,143,15,0,0,161,15,0,0,178,15,0,0,209,15,0,0,230,15,0,0,255,15,0,0,14,16,0,0,38,16,0,0,57,16,0,0,93,16,0,0,114,16,0,0,143,16,0,0,163,16,0,0,190,16,0,0,218,16,0,0,233,16,0,0,244,16,0,0,5,17,0,0,42,17,0,0,87,17,0,0,131,17,0,0,171,17,0,0,209,17,0,0,247,17,0,0,33,18,0,0,67,18,0,0,112,18,0,0,157,18,0,0,170,18,0,0,180,18,0,0,193,18,0,0,228,18,0,0,248,18,0,0,10,19,0,0,33,19,0,0,57,19,0,0,78,19,0,0,106,19,0,0,136,19,0,0,164,19,0,0,184,19,0,0,208,19,0,0,235,19,0,0,253,19,0,0,15,20,0,0,43,20,0,0,58,20,0,0,74,20,0,0,102,20,0,0,125,20,0,0,145,20,0,0,162,20,0,0,190,20,0,0,214,20,0,0,239,20,0,0,3,21,0,0,23,21,0,0,42,21,0,0,71,21,0,0,95,21,0,0,123,21,0,0,150,21,0,0,176,21,0,0,205,21,0,0,229,21,0,0,254,21,0,0,25,22,0,0,54,22,0,0,71,22,0,0,96,22,0,0,119,22,0,0,141,22,0,0,160,22,0,0,182,22,0,0,215,22,0,0,245,22,0,0,12,23,0,0,47,23,0,0,63,23,0,0,83,23,0,0,103,23,0,0,120,23,0,0,147,23,0,0,160,23,0,0,182,23,0,0,202,23,0,0,230,23,0,0,2,24,0,0,21,24,0,0,39,24,0,0,80,24,0,0,120,24,0,0,159,24,0,0,173,24,0,0,208,24,0,0,247,24,0,0,24,25,0,0,51,25,0,0,74,25,0,0,104,25,0,0,135,25,0,0,164,25,0,0,190,25,0,0,213,25,0,0,233,25,0,0,252,25,0,0,22,26,0,0,43,26,0,0,76,26,0,0,113,26,0,0,147,26,0,0,172,26,0,0,201,26,0,0,221,26,0,0,248,26,0,0,28,27,0,0,50,27,0,0,72,27,0,0,100,27,0,0,139,27,0,0,173,27,0,0,195,27,0,0,227,27,0,0,250,27,0,0,31,28,0,0,60,28,0,0,77,28,0,0,105,28,0,0,132,28,0,0,153,28,0,0,180,28,0,0,204,28,0,0,219,28,0,0,247,28,0,0,15,29,0,0,34,29,0,0,56,29,0,0,93,29,0,0,119,29,0,0,145,29,0,0,171,29,0,0,197,29,0,0,223,29,0,0,249,29,0,0,19,30,0,0,45,30,0,0,71,30,0,0,98,30,0,0,125,30,0,0,152,30,0,0,179,30,0,0,206,30,0,0,233,30,0,0,4,31,0,0,27,31,0,0,48,31,0,0,60,31,0,0,7,0,0,0,13,0,0,0,98,0,0,0,99,0,0,0,68,0,0,0,97,0,0,0,11,0,0,0,114,0,0,0,0,0,0,0,0,0,0,0,52,0,0,0,9,0,0,0,77,0,0,0,74,0,0,0,53,0,0,0,0,0,0,0,56,0,0,0,57,0,0,0,59,0,0,0,16,0,0,0,125,0,0,0,10,0,0,0,44,0,0,0,70,0,0,0,103,0,0,0,111,0,0,0,104,0,0,0,0,0,0,0,35,0,0,0,35,0,0,0,89,0,0,0,0,0,0,0,33,0,0,0,73,0,0,0,122,0,0,0,17,0,0,0,14,0,0,0,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,0,0,0,113,0,0,0,43,0,0,0,0,0,0,0,84,0,0,0,115,0,0,0,4,0,0,0,22,0,0,0,5,0,0,0,106,0,0,0,21,0,0,0,120,0,0,0,51,0,0,0,45,0,0,0,46,0,0,0,47,0,0,0,79,0,0,0,80,0,0,0,83,0,0,0,82,0,0,0,81,0,0,0,48,0,0,0,40,0,0,0,124,0,0,0,24,0,0,0,31,0,0,0,90,0,0,0,72,0,0,0,36,0,0,0,119,0,0,0,0,0,0,0,100,0,0,0,102,0,0,0,101,0,0,0,23,0,0,0,55,0,0,0,105,0,0,0,50,0,0,0,61,0,0,0,19,0,0,0,2,0,0,0,8,0,0,0,37,0,0,0,67,0,0,0,123,0,0,0,12,0,0,0,42,0,0,0,64,0,0,0,65,0,0,0,92,0,0,0,28,0,0,0,63,0,0,0,60,0,0,0,38,0,0,0,15,0,0,0,107,0,0,0,20,0,0,0,39,0,0,0,118,0,0,0,88,0,0,0,95,0,0,0,25,0,0,0,76,0,0,0,6,0,0,0,95,0,0,0,75,0,0,0,1,0,0,0,96,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,71,0,0,0,93,0,0,0,91,0,0,0,34,0,0,0,78,0,0,0,66,0,0,0,121,0,0,0,85,0,0,0,30,0,0,0,0,0,0,0,108,0,0,0,94,0,0,0,29,0,0,0,3,0,0,0,69,0,0,0,116,0,0,0,86,0,0,0,62,0,0,0,110,0,0,0,109,0,0,0,26,0,0,0,117,0,0,0,49,0,0,0,87,0,0,0,11,0,0,0,18,0,0,0,54,0,0,0,107,128,0,0,81,128,0,0,127,128,0,0,47,128,0,0,49,128,0,0,104,128,0,0,0,128,0,0,82,128,0,0,11,128,0,0,21,128,0,0,6,128,0,0,138,128,0,0,86,128,0,0,1,128,0,0,36,128,0,0,95,128,0,0,19,128,0,0,35,128,0,0,139,128,0,0,80,128,0,0,97,128,0,0,51,128,0,0,48,128,0,0,75,128,0,0,65,128,0,0,102,128,0,0,134,128,0,0,37,128,0,0,91,128,0,0,126,128,0,0,122,128,0,0,66,128,0,0,109,128,0,0,32,128,0,0,117,128,0,0,28,128,0,0,29,128,0,0,69,128,0,0,83,128,0,0,94,128,0,0,98,128,0,0,63,128,0,0,87,128,0,0,43,128,0,0,22,128,0,0,54,128,0,0,55,128,0,0,56,128,0,0,62,128,0,0,136,128,0,0,78,128,0,0,53,128,0,0,10,128,0,0,14,128,0,0,140,128,0,0,76,128,0,0,16,128,0,0,17,128,0,0,18,128,0,0,93,128,0,0,79,128,0,0,131,128,0,0,92,128,0,0,88,128,0,0,89,128,0,0,119,128,0,0,84,128,0,0,4,128,0,0,128,128,0,0,23,128,0,0,114,128,0,0,68,128,0,0,33,128,0,0,13,128,0,0,106,128,0,0,103,128,0,0,12,128,0,0,118,128,0,0,57,128,0,0,58,128,0,0,61,128,0,0,60,128,0,0,59,128,0,0,45,128,0,0,121,128,0,0,130,128,0,0,137,128,0,0,100,128,0,0,30,128,0,0,67,128,0,0,116,128,0,0,90,128,0,0,115,128,0,0,125,128,0,0,101,128,0,0,105,128,0,0,108,128,0,0,5,128,0,0,2,128,0,0,3,128,0,0,72,128,0,0,74,128,0,0,73,128,0,0,24,128,0,0,26,128,0,0,77,128,0,0,50,128,0,0,96,128,0,0,124,128,0,0,133,128,0,0,132,128,0,0,25,128,0,0,41,128,0,0,42,128,0,0,7,128,0,0,46,128,0,0,129,128,0,0,135,128,0,0,99,128,0,0,70,128,0,0,52,128,0,0,120,128,0,0,34,128,0,0,85,128,0,0,64,128,0,0,20,128,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,0,0,0,24,0,0,0,136,26,1,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,176,61,0,0,40,62,0,0,5,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25,0,0,0,24,0,0,0,144,30,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,192,3,0,0,192,4,0,0,192,5,0,0,192,6,0,0,192,7,0,0,192,8,0,0,192,9,0,0,192,10,0,0,192,11,0,0,192,12,0,0,192,13,0,0,192,14,0,0,192,15,0,0,192,16,0,0,192,17,0,0,192,18,0,0,192,19,0,0,192,20,0,0,192,21,0,0,192,22,0,0,192,23,0,0,192,24,0,0,192,25,0,0,192,26,0,0,192,27,0,0,192,28,0,0,192,29,0,0,192,30,0,0,192,31,0,0,192,0,0,0,179,1,0,0,195,2,0,0,195,3,0,0,195,4,0,0,195,5,0,0,195,6,0,0,195,7,0,0,195,8,0,0,195,9,0,0,195,10,0,0,195,11,0,0,195,12,0,0,195,13,0,0,211,14,0,0,195,15,0,0,195,0,0,12,187,1,0,12,195,2,0,12,195,3,0,12,195,4,0,12,211,32,0,0,0,9,0,0,0,10,0,0,0,13,0,0,0,11,0,0,0,12,0,0,0,133,0,0,0,0,32,0,0,1,32,0,0,2,32,0,0,3,32,0,0,4,32,0,0,5,32,0,0,6,32,0,0,8,32,0,0,9,32,0,0,10,32,0,0,40,32,0,0,41,32,0,0,95,32,0,0,0,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,0,0,0,60,64,0,0,3,0,0,0,0,0,0,0,45,244,81,88,207,140,177,192,70,246,181,203,41,49,3,199,4,91,112,48,180,93,253,32,120,127,139,154,216,89,41,80,104,72,137,171,167,86,3,108,255,183,205,136,63,212,119,180,43,165,163,112,241,186,228,168,252,65,131,253,217,111,225,138,122,47,45,116,150,7,31,13,9,94,3,118,44,112,247,64,165,44,167,111,87,65,168,170,116,223,160,88,100,3,74,199,196,60,83,174,175,95,24,4,21,177,227,109,40,134,171,12,164,191,67,240,233,80,129,57,87,22,82,55,3,0,5,0,7,0,11,0,13,0,17,0,19,0,23,0,29,0,31,0,37,0,41,0,43,0,47,0,53,0,59,0,61,0,67,0,71,0,73,0,79,0,83,0,89,0,97,0,101,0,103,0,107,0,109,0,113,0,127,0,131,0,137,0,139,0,149,0,151,0,157,0,163,0,167,0,173,0,179,0,181,0,191,0,193,0,197,0,199,0,211,0,223,0,227,0,229,0,233,0,239,0,241,0,251,0,1,1,7,1,13,1,15,1,21,1,25,1,27,1,37,1,51,1,55,1,57,1,61,1,75,1,81,1,91,1,93,1,97,1,103,1,111,1,117,1,123,1,127,1,133,1,141,1,145,1,153,1,163,1,165,1,175,1,177,1,183,1,187,1,193,1,201,1,205,1,207,1,211,1,223,1,231,1,235,1,243,1,247,1,253,1,9,2,11,2,29,2,35,2,45,2,51,2,57,2,59,2,65,2,75,2,81,2,87,2,89,2,95,2,101,2,105,2,107,2,119,2,129,2,131,2,135,2,141,2,147,2,149,2,161,2,165,2,171,2,179,2,189,2,197,2,207,2,215,2,221,2,227,2,231,2,239,2,245,2,249,2,1,3,5,3,19,3,29,3,41,3,43,3,53,3,55,3,59,3,61,3,71,3,85,3,89,3,91,3,95,3,109,3,113,3,115,3,119,3,139,3,143,3,151,3,161,3,169,3,173,3,179,3,185,3,199,3,203,3,209,3,215,3,223,3,229,3,241,3,245,3,251,3,253,3,7,4,9,4,15,4,25,4,27,4,37,4,39,4,45,4,63,4,67,4,69,4,73,4,79,4,85,4,93,4,99,4,105,4,127,4,129,4,139,4,147,4,157,4,163,4,169,4,177,4,189,4,193,4,199,4,205,4,207,4,213,4,225,4,235,4,253,4,255,4,3,5,9,5,11,5,17,5,21,5,23,5,27,5,39,5,41,5,47,5,81,5,87,5,93,5,101,5,119,5,129,5,143,5,147,5,149,5,153,5,159,5,167,5,171,5,173,5,179,5,191,5,201,5,203,5,207,5,209,5,213,5,219,5,231,5,243,5,251,5,7,6,13,6,17,6,23,6,31,6,35,6,43,6,47,6,61,6,65,6,71,6,73,6,77,6,83,6,85,6,91,6,101,6,121,6,127,6,131,6,133,6,157,6,161,6,163,6,173,6,185,6,187,6,197,6,205,6,211,6,217,6,223,6,241,6,247,6,251,6,253,6,9,7,19,7,31,7,39,7,55,7,69,7,75,7,79,7,81,7,85,7,87,7,97,7,109,7,115,7,121,7,139,7,141,7,157,7,159,7,181,7,187,7,195,7,201,7,205,7,207,7,211,7,219,7,225,7,235,7,237,7,247,7,5,8,15,8,21,8,33,8,35,8,39,8,41,8,51,8,63,8,65,8,81,8,83,8,89,8,93,8,95,8,105,8,113,8,131,8,155,8,159,8,165,8,173,8,189,8,191,8,195,8,203,8,219,8,221,8,225,8,233,8,239,8,245,8,249,8,5,9,7,9,29,9,35,9,37,9,43,9,47,9,53,9,67,9,73,9,77,9,79,9,85,9,89,9,95,9,107,9,113,9,119,9,133,9,137,9,143,9,155,9,163,9,169,9,173,9,199,9,217,9,227,9,235,9,239,9,245,9,247,9,253,9,19,10,31,10,33,10,49,10,57,10,61,10,73,10,87,10,97,10,99,10,103,10,111,10,117,10,123,10,127,10,129,10,133,10,139,10,147,10,151,10,153,10,159,10,169,10,171,10,181,10,189,10,193,10,207,10,217,10,229,10,231,10,237,10,241,10,243,10,3,11,17,11,21,11,27,11,35,11,41,11,45,11,63,11,71,11,81,11,87,11,93,11,101,11,111,11,123,11,137,11,141,11,147,11,153,11,155,11,183,11,185,11,195,11,203,11,207,11,221,11,225,11,233,11,245,11,251,11,7,12,11,12,17,12,37,12,47,12,49,12,65,12,91,12,95,12,97,12,109,12,115,12,119,12,131,12,137,12,145,12,149,12,157,12,179,12,181,12,185,12,187,12,199,12,227,12,229,12,235,12,241,12,247,12,251,12,1,13,3,13,15,13,19,13,31,13,33,13,43,13,45,13,61,13,63,13,79,13,85,13,105,13,121,13,129,13,133,13,135,13,139,13,141,13,163,13,171,13,183,13,189,13,199,13,201,13,205,13,211,13,213,13,219,13,229,13,231,13,243,13,253,13,255,13,9,14,23,14,29,14,33,14,39,14,47,14,53,14,59,14,75,14,87,14,89,14,93,14,107,14,113,14,117,14,125,14,135,14,143,14,149,14,155,14,177,14,183,14,185,14,195,14,209,14,213,14,219,14,237,14,239,14,249,14,7,15,11,15,13,15,23,15,37,15,41,15,49,15,67,15,71,15,77,15,79,15,83,15,89,15,91,15,103,15,107,15,127,15,149,15,161,15,163,15,167,15,173,15,179,15,181,15,187,15,209,15,211,15,217,15,233,15,239,15,251,15,253,15,3,16,15,16,31,16,33,16,37,16,43,16,57,16,61,16,63,16,81,16,105,16,115,16,121,16,123,16,133,16,135,16,145,16,147,16,157,16,163,16,165,16,175,16,177,16,187,16,193,16,201,16,231,16,241,16,243,16,253,16,5,17,11,17,21,17,39,17,45,17,57,17,69,17,71,17,89,17,95,17,99,17,105,17,111,17,129,17,131,17,141,17,155,17,161,17,165,17,167,17,171,17,195,17,197,17,209,17,215,17,231,17,239,17,245,17,251,17,13,18,29,18,31,18,35,18,41,18,43,18,49,18,55,18,65,18,71,18,83,18,95,18,113,18,115,18,121,18,125,18,143,18,151,18,175,18,179,18,181,18,185,18,191,18,193,18,205,18,209,18,223,18,253,18,7,19,13,19,25,19,39,19,45,19,55,19,67,19,69,19,73,19,79,19,87,19,93,19,103,19,105,19,109,19,123,19,129,19,135,19,0,0,0,0,194,1,132,3,70,2,8,7,202,6,140,4,78,5,16,14,210,15,148,13,86,12,24,9,218,8,156,10,94,11,32,28,226,29,164,31,102,30,40,27,234,26,172,24,110,25,48,18,242,19,180,17,118,16,56,21,250,20,188,22,126,23,64,56,130,57,196,59,6,58,72,63,138,62,204,60,14,61,80,54,146,55,212,53,22,52,88,49,154,48,220,50,30,51,96,36,162,37,228,39,38,38,104,35,170,34,236,32,46,33,112,42,178,43,244,41,54,40,120,45,186,44,252,46,62,47,128,112,66,113,4,115,198,114,136,119,74,118,12,116,206,117,144,126,82,127,20,125,214,124,152,121,90,120,28,122,222,123,160,108,98,109,36,111,230,110,168,107,106,106,44,104,238,105,176,98,114,99,52,97,246,96,184,101,122,100,60,102,254,103,192,72,2,73,68,75,134,74,200,79,10,78,76,76,142,77,208,70,18,71,84,69,150,68,216,65,26,64,92,66,158,67,224,84,34,85,100,87,166,86,232,83,42,82,108,80,174,81,240,90,50,91,116,89,182,88,248,93,58,92,124,94,190,95,0,225,194,224,132,226,70,227,8,230,202,231,140,229,78,228,16,239,210,238,148,236,86,237,24,232,218,233,156,235,94,234,32,253,226,252,164,254,102,255,40,250,234,251,172,249,110,248,48,243,242,242,180,240,118,241,56,244,250,245,188,247,126,246,64,217,130,216,196,218,6,219,72,222,138,223,204,221,14,220,80,215,146,214,212,212,22,213,88,208,154,209,220,211,30,210,96,197,162,196,228,198,38,199,104,194,170,195,236,193,46,192,112,203,178,202,244,200,54,201,120,204,186,205,252,207,62,206,128,145,66,144,4,146,198,147,136,150,74,151,12,149,206,148,144,159,82,158,20,156,214,157,152,152,90,153,28,155,222,154,160,141,98,140,36,142,230,143,168,138,106,139,44,137,238,136,176,131,114,130,52,128,246,129,184,132,122,133,60,135,254,134,192,169,2,168,68,170,134,171,200,174,10,175,76,173,142,172,208,167,18,166,84,164,150,165,216,160,26,161,92,163,158,162,224,181,34,180,100,182,166,183,232,178,42,179,108,177,174,176,240,187,50,186,116,184,182,185,248,188,58,189,124,191,190,190,73,0,49,1,83,0,127,1,48,1,105,0,120,1,255,0,129,1,83,2,130,1,131,1,132,1,133,1,134,1,84,2,135,1,136,1,137,1,86,2,138,1,87,2,139,1,140,1,142,1,221,1,143,1,89,2,144,1,91,2,145,1,146,1,147,1,96,2,148,1,99,2,150,1,105,2,151,1,104,2,152,1,153,1,156,1,111,2,157,1,114,2,159,1,117,2,166,1,128,2,167,1,168,1,169,1,131,2,172,1,173,1,174,1,136,2,175,1,176,1,177,1,138,2,178,1,139,2,183,1,146,2,184,1,185,1,188,1,189,1,196,1,198,1,196,1,197,1,197,1,198,1,199,1,201,1,199,1,200,1,200,1,201,1,202,1,204,1,202,1,203,1,203,1,204,1,241,1,243,1,241,1,242,1,242,1,243,1,244,1,245,1,246,1,149,1,247,1,191,1,32,2,158,1,134,3,172,3,136,3,173,3,137,3,174,3,138,3,175,3,140,3,204,3,142,3,205,3,143,3,206,3,153,3,69,3,153,3,190,31,163,3,194,3,247,3,248,3,250,3,251,3,96,30,155,30,223,0,223,0,158,30,223,0,89,31,81,31,91,31,83,31,93,31,85,31,95,31,87,31,188,31,179,31,204,31,195,31,236,31,229,31,252,31,243,31,58,2,101,44,59,2,60,2,61,2,154,1,62,2,102,44,65,2,66,2,67,2,128,1,68,2,137,2,69,2,140,2,244,3,184,3,249,3,242,3,253,3,123,3,254,3,124,3,255,3,125,3,192,4,207,4,38,33,201,3,42,33,107,0,43,33,229,0,50,33,78,33,131,33,132,33,96,44,97,44,98,44,107,2,99,44,125,29,100,44,125,2,109,44,81,2,110,44,113,2,111,44,80,2,112,44,82,2,114,44,115,44,117,44,118,44,126,44,63,2,127,44,64,2,242,44,243,44,125,167,121,29,139,167,140,167,141,167,101,2,170,167,102,2,199,16,39,45,205,16,45,45,118,3,119,3,156,3,181,0,146,3,208,3,152,3,209,3,166,3,213,3,160,3,214,3,154,3,240,3,161,3,241,3,149,3,245,3,207,3,215,3,0,0,0,0,65,0,32,26,192,0,32,31,0,1,1,47,50,1,1,5,57,1,1,15,74,1,1,45,121,1,1,5,112,3,1,3,145,3,32,17,163,3,32,9,0,4,80,16,16,4,32,32,96,4,1,33,138,4,1,53,193,4,1,13,208,4,1,63,20,5,1,19,49,5,48,38,160,1,1,5,179,1,1,3,205,1,1,15,222,1,1,17,248,1,1,39,34,2,1,17,216,3,1,23,0,30,1,149,160,30,1,95,8,31,248,8,24,31,248,6,40,31,248,8,56,31,248,8,72,31,248,6,104,31,248,8,136,31,248,8,152,31,248,8,168,31,248,8,184,31,248,2,186,31,182,2,200,31,170,4,216,31,248,2,218,31,156,2,232,31,248,2,234,31,144,2,248,31,128,2,250,31,130,2,70,2,1,9,16,5,1,3,96,33,16,16,0,44,48,47,103,44,1,5,128,44,1,99,235,44,1,3,64,166,1,45,128,166,1,23,34,167,1,13,50,167,1,61,121,167,1,3,126,167,1,9,144,167,1,3,160,167,1,9,33,255,32,26,0,0,0,0,119,114,97,112,46,99,0,99,111,109,109,111,110,95,97,108,108,111,99,97,116,105,111,110,46,99,0,71,78,85,78,69,84,95,120,109,97,108,108,111,99,95,0,109,97,108,108,111,99,0,71,78,85,78,69,84,95,120,102,114,101,101,95,0,71,78,85,78,69,84,95,115,110,112,114,105,110,116,102,0,99,111,109,109,111,110,95,108,111,103,103,105,110,103,46,99,0,37,115,45,37,100,0,109,121,108,111,103,0,108,111,99,97,108,116,105,109,101,32,101,114,114,111,114,0,37,98,32,37,100,32,37,72,58,37,77,58,37,83,45,37,37,48,54,117,0,42,32,37,115,0,37,115,32,37,115,32,37,115,32,37,115,0,69,82,82,79,82,0,87,65,82,78,73,78,71,0,77,69,83,83,65,71,69,0,73,78,70,79,0,68,69,66,85,71,0,78,79,78,69,0,73,78,86,65,76,73,68,0,77,101,115,115,97,103,101,32,96,37,46,42,115,39,32,114,101,112,101,97,116,101,100,32,37,117,32,116,105,109,101,115,32,105,110,32,116,104,101,32,108,97,115,116,32,37,115,10,0,71,78,85,78,69,84,95,108,111,103,95,115,107,105,112,0,99,114,121,112,116,111,95,115,121,109,109,101,116,114,105,99,46,99,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,115,121,109,109,101,116,114,105,99,95,101,110,99,114,121,112,116,0,115,101,116,117,112,95,99,105,112,104,101,114,95,116,119,111,102,105,115,104,0,115,101,116,117,112,95,99,105,112,104,101,114,95,97,101,115,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,115,121,109,109,101,116,114,105,99,95,100,101,99,114,121,112,116,0,99,114,121,112,116,111,95,101,99,99,46,99,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,101,99,100,115,97,95,107,101,121,95,103,101,116,95,112,117,98,108,105,99,0,113,64,101,100,100,115,97,0,40,112,114,105,118,97,116,101,45,107,101,121,40,101,99,99,40,99,117,114,118,101,32,34,69,100,50,53,53,49,57,34,41,40,100,32,37,98,41,41,41,0,100,101,99,111,100,101,95,112,114,105,118,97,116,101,95,101,99,100,115,97,95,107,101,121,0,103,99,114,121,95,115,101,120,112,95,98,117,105,108,100,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,101,100,100,115,97,95,107,101,121,95,103,101,116,95,112,117,98,108,105,99,0,40,112,114,105,118,97,116,101,45,107,101,121,40,101,99,99,40,99,117,114,118,101,32,34,69,100,50,53,53,49,57,34,41,40,102,108,97,103,115,32,101,100,100,115,97,41,40,100,32,37,98,41,41,41,0,100,101,99,111,100,101,95,112,114,105,118,97,116,101,95,101,100,100,115,97,95,107,101,121,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,101,99,100,104,101,95,107,101,121,95,103,101,116,95,112,117,98,108,105,99,0,100,101,99,111,100,101,95,112,114,105,118,97,116,101,95,101,99,100,104,101,95,107,101,121,0,40,103,101,110,107,101,121,40,101,99,99,40,99,117,114,118,101,32,34,69,100,50,53,53,49,57,34,41,40,102,108,97,103,115,32,101,100,100,115,97,32,110,111,45,107,101,121,116,101,115,116,41,41,41,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,101,99,100,104,101,95,107,101,121,95,99,114,101,97,116,101,0,103,99,114,121,95,112,107,95,103,101,110,107,101,121,0,107,101,121,95,102,114,111,109,95,115,101,120,112,0,40,103,101,110,107,101,121,40,101,99,99,40,99,117,114,118,101,32,34,69,100,50,53,53,49,57,34,41,40,102,108,97,103,115,41,41,41,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,101,99,100,115,97,95,107,101,121,95,99,114,101,97,116,101,0,40,103,101,110,107,101,121,40,101,99,99,40,99,117,114,118,101,32,34,69,100,50,53,53,49,57,34,41,40,102,108,97,103,115,32,101,100,100,115,97,41,41,41,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,101,100,100,115,97,95,107,101,121,95,99,114,101,97,116,101,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,101,100,100,115,97,95,115,105,103,110,0,69,100,68,83,65,32,115,105,103,110,105,110,103,32,102,97,105,108,101,100,32,97,116,32,37,115,58,37,100,58,32,37,115,10,0,40,100,97,116,97,40,102,108,97,103,115,32,101,100,100,115,97,41,40,104,97,115,104,45,97,108,103,111,32,37,115,41,40,118,97,108,117,101,32,37,98,41,41,0,100,97,116,97,95,116,111,95,101,100,100,115,97,95,118,97,108,117,101,0,40,112,117,98,108,105,99,45,107,101,121,40,101,99,99,40,99,117,114,118,101,32,69,100,50,53,53,49,57,41,40,113,32,37,98,41,41,41,0,40,115,105,103,45,118,97,108,40,101,100,100,115,97,40,114,32,37,98,41,40,115,32,37,98,41,41,41,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,101,100,100,115,97,95,118,101,114,105,102,121,0,40,112,117,98,108,105,99,45,107,101,121,40,101,99,99,40,99,117,114,118,101,32,69,100,50,53,53,49,57,41,40,102,108,97,103,115,32,101,100,100,115,97,41,40,113,32,37,98,41,41,41,0,69,100,68,83,65,32,115,105,103,110,97,116,117,114,101,32,118,101,114,105,102,105,99,97,116,105,111,110,32,102,97,105,108,101,100,32,97,116,32,37,115,58,37,100,58,32,37,115,10,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,101,99,99,95,101,99,100,104,0,103,101,116,95,97,102,102,105,110,101,32,102,97,105,108,101,100],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+10240);allocate([71,78,85,78,69,84,95,67,82,89,80,84,79,95,101,99,100,104,95,101,100,100,115,97,0,99,114,121,112,116,111,95,104,97,115,104,46,99,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,104,97,115,104,95,99,111,110,116,101,120,116,95,115,116,97,114,116,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,104,97,115,104,95,99,111,110,116,101,120,116,95,102,105,110,105,115,104,0,99,114,121,112,116,111,95,107,100,102,46,99,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,107,100,102,95,109,111,100,95,109,112,105,0,99,114,121,112,116,111,95,109,112,105,46,99,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,109,112,105,95,112,114,105,110,116,95,117,110,115,105,103,110,101,100,0,96,37,115,39,32,102,97,105,108,101,100,32,97,116,32,37,115,58,37,100,32,119,105,116,104,32,101,114,114,111,114,58,32,37,115,10,0,103,99,114,121,95,109,112,105,95,112,114,105,110,116,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,109,112,105,95,115,99,97,110,95,117,110,115,105,103,110,101,100,0,103,99,114,121,95,109,112,105,95,115,99,97,110,0,49,46,54,46,48,0,108,105,98,103,99,114,121,112,116,32,104,97,115,32,110,111,116,32,116,104,101,32,101,120,112,101,99,116,101,100,32,118,101,114,115,105,111,110,32,40,118,101,114,115,105,111,110,32,37,115,32,105,115,32,114,101,113,117,105,114,101,100,41,46,10,0,99,114,121,112,116,111,95,114,97,110,100,111,109,46,99,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,97,110,100,111,109,95,105,110,105,116,0,70,97,105,108,101,100,32,116,111,32,115,101,116,32,108,105,98,103,99,114,121,112,116,32,111,112,116,105,111,110,32,37,115,58,32,37,115,10,0,68,73,83,65,66,76,69,95,83,69,67,77,69,77,0,69,78,65,66,76,69,95,81,85,73,67,75,95,82,65,78,68,79,77,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,97,110,100,111,109,95,117,51,50,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,97,110,100,111,109,95,98,108,111,99,107,0,40,103,101,110,107,101,121,40,114,115,97,40,110,98,105,116,115,32,37,100,41,41,41,0,99,114,121,112,116,111,95,114,115,97,46,99,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,115,97,95,112,114,105,118,97,116,101,95,107,101,121,95,99,114,101,97,116,101,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,115,97,95,112,114,105,118,97,116,101,95,107,101,121,95,101,110,99,111,100,101,0,117,116,105,108,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,115,97,95,112,114,105,118,97,116,101,95,107,101,121,95,100,101,99,111,100,101,0,68,101,99,111,100,101,100,32,112,114,105,118,97,116,101,32,107,101,121,32,105,115,32,110,111,116,32,118,97,108,105,100,10,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,115,97,95,112,114,105,118,97,116,101,95,107,101,121,95,103,101,116,95,112,117,98,108,105,99,0,69,120,116,101,114,110,97,108,32,112,114,111,116,111,99,111,108,32,118,105,111,108,97,116,105,111,110,32,100,101,116,101,99,116,101,100,32,97,116,32,37,115,58,37,100,46,10,0,40,112,117,98,108,105,99,45,107,101,121,40,114,115,97,40,110,32,37,109,41,40,101,32,37,109,41,41,41,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,115,97,95,112,117,98,108,105,99,95,107,101,121,95,101,110,99,111,100,101,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,115,97,95,112,117,98,108,105,99,95,107,101,121,95,100,101,99,111,100,101,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,115,97,95,115,105,103,110,97,116,117,114,101,95,101,110,99,111,100,101,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,115,97,95,98,108,105,110,100,0,110,117,109,101,114,105,99,95,109,112,105,95,97,108,108,111,99,95,110,95,112,114,105,110,116,0,66,108,105,110,100,105,110,103,32,75,68,70,32,101,120,116,114,97,116,111,114,32,72,77,65,67,32,107,101,121,0,114,115,97,95,98,108,105,110,100,105,110,103,95,107,101,121,95,100,101,114,105,118,101,0,66,108,105,110,100,105,110,103,32,75,68,70,0,114,115,97,95,102,117,108,108,95,100,111,109,97,105,110,95,104,97,115,104,0,82,83,65,45,70,68,65,32,70,84,112,115,87,33,0,40,100,97,116,97,32,40,102,108,97,103,115,32,114,97,119,41,32,40,118,97,108,117,101,32,37,77,41,41,0,109,112,105,95,116,111,95,115,101,120,112,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,115,97,95,115,105,103,110,97,116,117,114,101,95,100,101,99,111,100,101,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,115,97,95,117,110,98,108,105,110,100,0,40,115,105,103,45,118,97,108,32,40,114,115,97,32,40,115,32,37,77,41,41,41,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,115,97,95,118,101,114,105,102,121,0,82,83,65,32,115,105,103,110,97,116,117,114,101,32,118,101,114,105,102,105,99,97,116,105,111,110,32,102,97,105,108,101,100,32,97,116,32,37,115,58,37,100,58,32,37,115,10,0,115,116,114,105,110,103,115,46,99,0,37,108,108,117,32,37,115,0,102,111,114,101,118,101,114,0,109,115,0,109,0,100,97,121,0,100,97,121,115,0,194,181,115,0,48,32,109,115,0,71,78,85,78,69,84,95,83,84,82,73,78,71,83,95,100,97,116,97,95,116,111,95,115,116,114,105,110,103,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,71,72,74,75,77,78,80,81,82,83,84,86,87,88,89,90,0,71,78,85,78,69,84,95,83,84,82,73,78,71,83,95,115,116,114,105,110,103,95,116,111,95,100,97,116,97,0,118,105,115,105,98,105,108,105,116,121,46,99,0,103,99,114,121,95,109,100,95,104,97,115,104,95,98,117,102,102,101,114,0,99,97,108,108,101,100,32,105,110,32,110,111,110,45,111,112,101,114,97,116,105,111,110,97,108,32,115,116,97,116,101,0,103,99,114,121,95,109,100,95,103,101,116,95,97,108,103,111,0,117,115,101,100,32,105,110,32,110,111,110,45,111,112,101,114,97,116,105,111,110,97,108,32,115,116,97,116,101,0,103,99,114,121,95,114,97,110,100,111,109,105,122,101,0,103,99,114,121,95,99,114,101,97,116,101,95,110,111,110,99,101,0,109,105,115,99,46,99,0,95,103,99,114,121,95,102,97,116,97,108,95,101,114,114,111,114,0,10,70,97,116,97,108,32,101,114,114,111,114,58,32,0,70,97,116,97,108,58,32,0,79,104,104,104,104,32,106,101,101,101,101,58,32,0,68,66,71,58,32,0,91,85,110,107,110,111,119,110,32,108,111,103,32,108,101,118,101,108,32,37,100,93,58,32,0,95,103,99,114,121,95,108,111,103,118,0,105,110,116,101,114,110,97,108,32,101,114,114,111,114,32,40,102,97,116,97,108,32,111,114,32,98,117,103,41,0,46,46,46,32,116,104,105,115,32,105,115,32,97,32,98,117,103,32,40,37,115,58,37,100,58,37,115,41,10,0,65,115,115,101,114,116,105,111,110,32,96,37,115,39,32,102,97,105,108,101,100,32,40,37,115,58,37,100,58,37,115,41,10,0,32,0,37,115,58,37,115,0,37,42,115,32,32,0,37,48,50,120,0,32,92,10,0,37,42,115,32,37,42,115,0,32,40,110,117,108,108,41,0,32,91,37,117,32,98,105,116,93,0,32,91,111,117,116,32,111,102,32,99,111,114,101,93,0,45,0,43,0,100,105,118,105,100,101,32,98,121,32,122,101,114,111,0,103,108,111,98,97,108,46,99,0,103,108,111,98,97,108,95,105,110,105,116,0,49,46,55,46,48,45,98,101,116,97,50,51,48,0,118,101,114,115,105,111,110,58,37,115,58,10,0,99,105,112,104,101,114,115,58,37,115,58,10,0,97,101,115,58,116,119,111,102,105,115,104,0,112,117,98,107,101,121,115,58,37,115,58,10,0,114,115,97,58,101,99,99,0,100,105,103,101,115,116,115,58,37,115,58,10,0,115,104,97,50,53,54,58,115,104,97,53,49,50,0,114,110,100,45,109,111,100,58,108,105,110,117,120,58,10,0,99,112,117,45,97,114,99,104,58,58,10,0,109,112,105,45,97,115,109,58,37,115,58,10,0,104,119,102,108,105,115,116,58,0,37,115,58,0,10,0,102,105,112,115,45,109,111,100,101,58,37,99,58,37,99,58,10,0,115,116,97,110,100,97,114,100,0,102,105,112,115,0,115,121,115,116,101,109,0,112,114,105,110,116,95,99,111,110,102,105,103,0,114,110,103,45,116,121,112,101,58,37,115,58,37,100,58,10,0,111,117,116,32,111,102,32,99,111,114,101,32,105,110,32,115,101,99,117,114,101,32,109,101,109,111,114,121,0,92,120,37,48,50,120,0,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,48,49,50,51,52,53,54,55,56,57,45,46,47,95,58,42,43,61,0,115,101,120,112,46,99,0,100,111,95,118,115,101,120,112,95,115,115,99,97,110,0,37,100,0,37,117,0,38,92,0,95,103,99,114,121,95,115,101,120,112,95,102,105,110,100,95,116,111,107,101,110,0,95,103,99,114,121,95,115,101,120,112,95,110,116,104,0,3,4,0,37,117,58,0,95,103,99,114,121,95,115,101,120,112,95,115,112,114,105,110,116,0,37,48,50,88,0,8,9,11,10,12,13,34,39,92,0,45,46,47,95,58,42,43,61,0,112,97,100,108,111,99,107,45,114,110,103,0,112,97,100,108,111,99,107,45,97,101,115,0,112,97,100,108,111,99,107,45,115,104,97,0,112,97,100,108,111,99,107,45,109,109,117,108,0,105,110,116,101,108,45,99,112,117,0,105,110,116,101,108,45,98,109,105,50,0,105,110,116,101,108,45,115,115,115,101,51,0,105,110,116,101,108,45,112,99,108,109,117,108,0,105,110,116,101,108,45,97,101,115,110,105,0,105,110,116,101,108,45,114,100,114,97,110,100,0,105,110,116,101,108,45,97,118,120,0,105,110,116,101,108,45,97,118,120,50,0,97,114,109,45,110,101,111,110,0,47,101,116,99,47,103,99,114,121,112,116,47,104,119,102,46,100,101,110,121,0,109,101,109,111,114,121,32,97,116,32,37,112,32,99,111,114,114,117,112,116,101,100,32,40,117,110,100,101,114,102,108,111,119,61,37,48,50,120,41,10,0,109,101,109,111,114,121,32,97,116,32,37,112,32,99,111,114,114,117,112,116,101,100,32,40,111,118,101,114,102,108,111,119,61,37,48,50,120,41,10,0,87,97,114,110,105,110,103,58,32,117,115,105,110,103,32,105,110,115,101,99,117,114,101,32,109,101,109,111,114,121,33,10,0,102,97,105,108,101,100,32,116,111,32,100,114,111,112,32,115,101,116,117,105,100,10,0,79,111,112,115,44,32,115,101,99,117,114,101,32,109,101,109,111,114,121,32,112,111,111,108,32,97,108,114,101,97,100,121,32,105,110,105,116,105,97,108,105,122,101,100,10,0,80,108,101,97,115,101,32,110,111,116,101,32,116,104,97,116,32,121,111,117,32,100,111,110,39,116,32,104,97,118,101,32,115,101,99,117,114,101,32,109,101,109,111,114,121,32,111,110,32,116,104,105,115,32,115,121,115,116,101,109,10,0,115,101,99,117,114,101,32,109,101,109,111,114,121,32,105,115,32,100,105,115,97,98,108,101,100,0,99,97,110,39,116,32,109,109,97,112,32,112,111,111,108,32,111,102,32,37,117,32,98,121,116,101,115,58,32,37,115,32,45,32,117,115,105,110,103,32,109,97,108,108,111,99,10,0,99,97,110,39,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,112,111,111,108,32,111,102,32,37,117,32,98,121,116,101,115,10,0,111,112,101,114,97,116,105,111,110,32,105,115,32,110,111,116,32,112,111,115,115,105,98,108,101,32,119,105,116,104,111,117,116,32,105,110,105,116,105,97,108,105,122,101,100,32,115,101,99,117,114,101,32,109,101,109,111,114,121,10,0,115,101,99,117,114,101,32,109,101,109,111,114,121,32,112,111,111,108,32,105,115,32,110,111,116,32,108,111,99,107,101,100,32,119,104,105,108,101,32,105,110,32,70,73,80,83,32,109,111,100,101,10,0,115,101,99,109,101,109,32,117,115,97,103,101,58,32,37,117,47,37,108,117,32,98,121,116,101,115,32,105,110,32,37,117,32,98,108,111,99,107,115,10,0,33,100,111,110,101,0,102,105,112,115,46,99,0,95,103,99,114,121,95,105,110,105,116,105,97,108,105,122,101,95,102,105,112,115,95,109,111,100,101,0,33,110,111,95,102,105,112,115,95,109,111,100,101,95,114,101,113,117,105,114,101,100,0,47,101,116,99,47,103,99,114,121,112,116,47,102,105,112,115,95,101,110,97,98,108,101,100,0,47,112,114,111,99,47,115,121,115,47,99,114,121,112,116,111,47,102,105,112,115,95,101,110,97,98,108,101,100,0,114,0,47,112,114,111,99,47,118,101,114,115,105,111,110,0,70,65,84,65,76,58,32,101,114,114,111,114,32,114,101,97,100,105,110,103,32,96,37,115,39,32,105,110,32,108,105,98,103,99,114,121,112,116,58,32,37,115,10,0,70,65,84,65,76,58,32,102,97,105,108,101,100,32,116,111,32,99,114,101,97,116,101,32,116,104,101,32,70,83,77,32,108,111,99,107,32,105,110,32,108,105,98,103,99,114,121,112,116,58,32,37,115,10,0,103,114,97,110,116,101,100,0,100,101,110,105,101,100,0,108,105,98,103,99,114,121,112,116,32,115,116,97,116,101,32,116,114,97,110,115,105,116,105,111,110,32,37,115,32,61,62,32,37,115,32,37,115,10,0,80,111,119,101,114,45,79,110,0,73,110,105,116,0,83,101,108,102,45,84,101,115,116,0,79,112,101,114,97,116,105,111,110,97,108,0,69,114,114,111,114,0,70,97,116,97,108,45,69,114,114,111,114,0,83,104,117,116,100,111,119,110,0,70,65,84,65,76,58,32,102,97,105,108,101,100,32,116,111,32,114,101,108,101,97,115,101,32,116,104,101,32,70,83,77,32,108,111,99,107,32,105,110,32,108,105,98,103,114,121,112,116,58,32,37,115,10,0,70,65,84,65,76,58,32,102,97,105,108,101,100,32,116,111,32,97,99,113,117,105,114,101,32,116,104,101,32,70,83,77,32,108,111,99,107,32,105,110,32,108,105,98,103,114,121,112,116,58,32,37,115,10,0,95,103,99,114,121,95,102,105,112,115,95,109,111,100,101,32,40,41,0,95,103,99,114,121,95,105,110,97,99,116,105,118,97,116,101,95,102,105,112,115,95,109,111,100,101,0,102,97,116,97,108,32,0,44,32,102,117,110,99,116,105,111,110,32,0,110,111,32,100,101,115,99,114,105,112,116,105,111,110,32,97,118,97,105,108,97,98,108,101,0,37,115,101,114,114,111,114,32,105,110,32,108,105,98,103,99,114,121,112,116,44,32,102,105,108,101,32,37,115,44,32,108,105,110,101,32,37,100,37,115,37,115,58,32,37,115,10,0,72,77,65,67,45,0,79,107,97,121,0,32,40,0,108,105,98,103,99,114,121,112,116,32,115,101,108,102,116,101,115,116,58,32,37,115,32,37,115,37,115,32,40,37,100,41,58,32,37,115,37,115,37,115,37,115,10,0,98,97,100,32,99,111,110,116,101,120,116,32,116,121,112,101,32,37,100,32,103,105,118,101,110,32,116,111,32,95,103,99,114,121,95,99,116,120,95,97,108,108,111,99,10,0,99,84,120,0,98,97,100,32,112,111,105,110,116,101,114,32,37,112,32,112,97,115,115,101,100,32,116,111,32,95,103,99,114,121,95,99,116,120,95,103,101,116,95,112,111,105,110,116,101,114,10,0,119,114,111,110,103,32,99,111,110,116,101,120,116,32,116,121,112,101,32,37,100,32,114,101,113,117,101,115,116,32,102,111,114,32,99,111,110,116,101,120,116,32,37,112,32,111,102,32,116,121,112,101,32,37,100,10,0,98,97,100,32,112,111,105,110,116,101,114,32,37,112,32,112,97,115,115,101,100,32,116,111,32,103,99,114,121,95,99,116,120,95,114,101,108,97,115,101,10,0,98,97,100,32,99,111,110,116,101,120,116,32,116,121,112,101,32,37,100,32,100,101,116,101,99,116,101,100,32,105,110,32,103,99,114,121,95,99,116,120,95,114,101,108,97,115,101,10,0,103,99,114,121,95,99,105,112,104,101,114,95,99,108,111,115,101,58,32,97,108,114,101,97,100,121,32,99,108,111,115,101,100,47,105,110,118,97,108,105,100,32,104,97,110,100,108,101,0,99,105,112,104,101,114,46,99,0,99,105,112,104,101,114,95,101,110,99,114,121,112,116,0,99,105,112,104,101,114,32,109,111,100,101,32,78,79,78,69,32,117,115,101,100,0,99,105,112,104,101,114,95,101,110,99,114,121,112,116,58,32,105,110,118,97,108,105,100,32,109,111,100,101,32,37,100,10,0,99,105,112,104,101,114,95,100,101,99,114,121,112,116,0,99,105,112,104,101,114,95,100,101,99,114,121,112,116,58,32,105,110,118,97,108,105,100,32,109,111,100,101,32,37,100,10,0,87,65,82,78,73,78,71,58,32,99,105,112,104,101,114,95,115,101,116,105,118,58,32,105,118,108,101,110,61,37,117,32,98,108,107,108,101,110,61,37,117,10,0,99,105,112,104,101,114,95,115,101,116,105,118,0,73,86,32,108,101,110,103,116,104,32,100,111,101,115,32,110,111,116,32,109,97,116,99,104,32,98,108,111,99,107,108,101,110,103,116,104,0,48,120,55,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,69,68,0,45,48,120,48,49,0,45,48,120,50,68,70,67,57,51,49,49,68,52,57,48,48,49,56,67,55,51,51,56,66,70,56,54,56,56,56,54,49,55,54,55,70,70,56,70,70,53,66,50,66,69,66,69,50,55,53,52,56,65,49,52,66,50,51,53,69,67,65,54,56,55,52,65,0,48,120,49,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,49,52,68,69,70,57,68,69,65,50,70,55,57,67,68,54,53,56,49,50,54,51,49,65,53,67,70,53,68,51,69,68,0,48,120,50,49,54,57,51,54,68,51,67,68,54,69,53,51,70,69,67,48,65,52,69,50,51,49,70,68,68,54,68,67,53,67,54,57,50,67,67,55,54,48,57,53,50,53,65,55,66,50,67,57,53,54,50,68,54,48,56,70,50,53,68,53,49,65,0,48,120,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,53,56,0,48,120,48,56,0,78,73,83,84,32,80,45,49,57,50,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,101,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,101,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,99,0,48,120,54,52,50,49,48,53,49,57,101,53,57,99,56,48,101,55,48,102,97,55,101,57,97,98,55,50,50,52,51,48,52,57,102,101,98,56,100,101,101,99,99,49,52,54,98,57,98,49,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,57,57,100,101,102,56,51,54,49,52,54,98,99,57,98,49,98,52,100,50,50,56,51,49,0,48,120,49,56,56,100,97,56,48,101,98,48,51,48,57,48,102,54,55,99,98,102,50,48,101,98,52,51,97,49,56,56,48,48,102,52,102,102,48,97,102,100,56,50,102,102,49,48,49,50,0,48,120,48,55,49,57,50,98,57,53,102,102,99,56,100,97,55,56,54,51,49,48,49,49,101,100,54,98,50,52,99,100,100,53,55,51,102,57,55,55,97,49,49,101,55,57,52,56,49,49,0,48,120,48,49,0,78,73,83,84,32,80,45,50,50,52,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,49,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,101,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,101,0,48,120,98,52,48,53,48,97,56,53,48,99,48,52,98,51,97,98,102,53,52,49,51,50,53,54,53,48,52,52,98,48,98,55,100,55,98,102,100,56,98,97,50,55,48,98,51,57,52,51,50,51,53,53,102,102,98,52,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,49,54,97,50,101,48,98,56,102,48,51,101,49,51,100,100,50,57,52,53,53,99,53,99,50,97,51,100,0,48,120,98,55,48,101,48,99,98,100,54,98,98,52,98,102,55,102,51,50,49,51,57,48,98,57,52,97,48,51,99,49,100,51,53,54,99,50,49,49,50,50,51,52,51,50,56,48,100,54,49,49,53,99,49,100,50,49,0,48,120,98,100,51,55,54,51,56,56,98,53,102,55,50,51,102,98,52,99,50,50,100,102,101,54,99,100,52,51,55,53,97,48,53,97,48,55,52,55,54,52,52,52,100,53,56,49,57,57,56,53,48,48,55,101,51,52,0,78,73,83,84,32,80,45,50,53,54,0,48,120,102,102,102,102,102,102,102,102,48,48,48,48,48,48,48,49,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,0,48,120,102,102,102,102,102,102,102,102,48,48,48,48,48,48,48,49,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,99,0,48,120,53,97,99,54,51,53,100,56,97,97,51,97,57,51,101,55,98,51,101,98,98,100,53,53,55,54,57,56,56,54,98,99,54,53,49,100,48,54,98,48,99,99,53,51,98,48,102,54,51,98,99,101,51,99,51,101,50,55,100,50,54,48,52,98,0,48,120,102,102,102,102,102,102,102,102,48,48,48,48,48,48,48,48,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,98,99,101,54,102,97,97,100,97,55,49,55,57,101,56,52,102,51,98,57,99,97,99,50,102,99,54,51,50,53,53,49,0,48,120,54,98,49,55,100,49,102,50,101,49,50,99,52,50,52,55,102,56,98,99,101,54,101,53,54,51,97,52,52,48,102,50,55,55,48,51,55,100,56,49,50,100,101,98,51,51,97,48,102,52,97,49,51,57,52,53,100,56,57,56,99,50,57,54,0,48,120,52,102,101,51,52,50,101,50,102,101,49,97,55,102,57,98,56,101,101,55,101,98,52,97,55,99,48,102,57,101,49,54,50,98,99,101,51,51,53,55,54,98,51,49,53,101,99,101,99,98,98,54,52,48,54,56,51,55,98,102,53,49,102,53,0,78,73,83,84,32,80,45,51,56,52,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,101,102,102,102,102,102,102,102,102,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,102,102,102,102,102,102,102,102,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,101,102,102,102,102,102,102,102,102,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,102,102,102,102,102,102,102,99,0,48,120,98,51,51,49,50,102,97,55,101,50,51,101,101,55,101,52,57,56,56,101,48,53,54,98,101,51,102,56,50,100,49,57,49,56,49,100,57,99,54,101,102,101,56,49,52,49,49,50,48,51,49,52,48,56,56,102,53,48,49,51,56,55,53,97,99,54,53,54,51,57,56,100,56,97,50,101,100,49,57,100,50,97,56,53,99,56,101,100,100,51,101,99,50,97,101,102,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,99,55,54,51,52,100,56,49,102,52,51,55,50,100,100,102,53,56,49,97,48,100,98,50,52,56,98,48,97,55,55,97,101,99,101,99,49,57,54,97,99,99,99,53,50,57,55,51,0,48,120,97,97,56,55,99,97,50,50,98,101,56,98,48,53,51,55,56,101,98,49,99,55,49,101,102,51,50,48,97,100,55,52,54,101,49,100,51,98,54,50,56,98,97,55,57,98,57,56,53,57,102,55,52,49,101,48,56,50,53,52,50,97,51,56,53,53,48,50,102,50,53,100,98,102,53,53,50,57,54,99,51,97,53,52,53,101,51,56,55,50,55,54,48,97,98,55,0,48,120,51,54,49,55,100,101,52,97,57,54,50,54,50,99,54,102,53,100,57,101,57,56,98,102,57,50,57,50,100,99,50,57,102,56,102,52,49,100,98,100,50,56,57,97,49,52,55,99,101,57,100,97,51,49,49,51,98,53,102,48,98,56,99,48,48,97,54,48,98,49,99,101,49,100,55,101,56,49,57,100,55,97,52,51,49,100,55,99,57,48,101,97,48,101,53,102,0,78,73,83,84,32,80,45,53,50,49,0,48,120,48,49,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,0,48,120,48,49,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,99,0,48,120,48,53,49,57,53,51,101,98,57,54,49,56,101,49,99,57,97,49,102,57,50,57,97,50,49,97,48,98,54,56,53,52,48,101,101,97,50,100,97,55,50,53,98,57,57,98,51,49,53,102,51,98,56,98,52,56,57,57,49,56,101,102,49,48,57,101,49,53,54,49,57,51,57,53,49,101,99,55,101,57,51,55,98,49,54,53,50,99,48,98,100,51,98,98,49,98,102,48,55,51,53,55,51,100,102,56,56,51,100,50,99,51,52,102,49,101,102,52,53,49,102,100,52,54,98,53,48,51,102,48,48,0,48,120,49,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,97,53,49,56,54,56,55,56,51,98,102,50,102,57,54,54,98,55,102,99,99,48,49,52,56,102,55,48,57,97,53,100,48,51,98,98,53,99,57,98,56,56,57,57,99,52,55,97,101,98,98,54,102,98,55,49,101,57,49,51,56,54,52,48,57,0,48,120,48,48,99,54,56,53,56,101,48,54,98,55,48,52,48,52,101,57,99,100,57,101,51,101,99,98,54,54,50,51,57,53,98,52,52,50,57,99,54,52,56,49,51,57,48,53,51,102,98,53,50,49,102,56,50,56,97,102,54,48,54,98,52,100,51,100,98,97,97,49,52,98,53,101,55,55,101,102,101,55,53,57,50,56,102,101,49,100,99,49,50,55,97,50,102,102,97,56,100,101,51,51,52,56,98,51,99,49,56,53,54,97,52,50,57,98,102,57,55,101,55,101,51,49,99,50,101,53,98,100,54,54,0,48,120,48,49,49,56,51,57,50,57,54,97,55,56,57,97,51,98,99,48,48,52,53,99,56,97,53,102,98,52,50,99,55,100,49,98,100,57,57,56,102,53,52,52,52,57,53,55,57,98,52,52,54,56,49,55,97,102,98,100,49,55,50,55,51,101,54,54,50,99,57,55,101,101,55,50,57,57,53,101,102,52,50,54,52,48,99,53,53,48,98,57,48,49,51,102,97,100,48,55,54,49,51,53,51,99,55,48,56,54,97,50,55,50,99,50,52,48,56,56,98,101,57,52,55,54,57,102,100,49,54,54,53,48,0,98,114,97,105,110,112,111,111,108,80,49,54,48,114,49,0,48,120,101,57,53,101,52,97,53,102,55,51,55,48,53,57,100,99,54,48,100,102,99,55,97,100,57,53,98,51,100,56,49,51,57,53,49,53,54,50,48,102,0,48,120,51,52,48,101,55,98,101,50,97,50,56,48,101,98,55,52,101,50,98,101,54,49,98,97,100,97,55,52,53,100,57,55,101,56,102,55,99,51,48,48,0,48,120,49,101,53,56,57,97,56,53,57,53,52,50,51,52,49,50,49,51,52,102,97,97,50,100,98,100,101,99,57,53,99,56,100,56,54,55,53,101,53,56,0,48,120,101,57,53,101,52,97,53,102,55,51,55,48,53,57,100,99,54,48,100,102,53,57,57,49,100,52,53,48,50,57,52,48,57,101,54,48,102,99,48,57,0,48,120,98,101,100,53,97,102,49,54,101,97,51,102,54,97,52,102,54,50,57,51,56,99,52,54,51,49,101,98,53,97,102,55,98,100,98,99,100,98,99,51,0,48,120,49,54,54,55,99,98,52,55,55,97,49,97,56,101,99,51,51,56,102,57,52,55,52,49,54,54,57,99,57,55,54,51,49,54,100,97,54,51,50,49,0,98,114,97,105,110,112,111,111,108,80,49,57,50,114,49,0,48,120,99,51,48,50,102,52,49,100,57,51,50,97,51,54,99,100,97,55,97,51,52,54,51,48,57,51,100,49,56,100,98,55,56,102,99,101,52,55,54,100,101,49,97,56,54,50,57,55,0,48,120,54,97,57,49,49,55,52,48,55,54,98,49,101,48,101,49,57,99,51,57,99,48,51,49,102,101,56,54,56,53,99,49,99,97,101,48,52,48,101,53,99,54,57,97,50,56,101,102,0,48,120,52,54,57,97,50,56,101,102,55,99,50,56,99,99,97,51,100,99,55,50,49,100,48,52,52,102,52,52,57,54,98,99,99,97,55,101,102,52,49,52,54,102,98,102,50,53,99,57,0,48,120,99,51,48,50,102,52,49,100,57,51,50,97,51,54,99,100,97,55,97,51,52,54,50,102,57,101,57,101,57,49,54,98,53,98,101,56,102,49,48,50,57,97,99,52,97,99,99,49,0,48,120,99,48,97,48,54,52,55,101,97,97,98,54,97,52,56,55,53,51,98,48,51,51,99,53,54,99,98,48,102,48,57,48,48,97,50,102,53,99,52,56,53,51,51,55,53,102,100,54,0,48,120,49,52,98,54,57,48,56,54,54,97,98,100,53,98,98,56,56,98,53,102,52,56,50,56,99,49,52,57,48,48,48,50,101,54,55,55,51,102,97,50,102,97,50,57,57,98,56,102,0,98,114,97,105,110,112,111,111,108,80,50,50,52,114,49,0,48,120,100,55,99,49,51,52,97,97,50,54,52,51,54,54,56,54,50,97,49,56,51,48,50,53,55,53,100,49,100,55,56,55,98,48,57,102,48,55,53,55,57,55,100,97,56,57,102,53,55,101,99,56,99,48,102,102,0,48,120,54,56,97,53,101,54,50,99,97,57,99,101,54,99,49,99,50,57,57,56,48,51,97,54,99,49,53,51,48,98,53,49,52,101,49,56,50,97,100,56,98,48,48,52,50,97,53,57,99,97,100,50,57,102,52,51,0,48,120,50,53,56,48,102,54,51,99,99,102,101,52,52,49,51,56,56,55,48,55,49,51,98,49,97,57,50,51,54,57,101,51,51,101,50,49,51,53,100,50,54,54,100,98,98,51,55,50,51,56,54,99,52,48,48,98,0,48,120,100,55,99,49,51,52,97,97,50,54,52,51,54,54,56,54,50,97,49,56,51,48,50,53,55,53,100,48,102,98,57,56,100,49,49,54,98,99,52,98,54,100,100,101,98,99,97,51,97,53,97,55,57,51,57,102,0,48,120,48,100,57,48,50,57,97,100,50,99,55,101,53,99,102,52,51,52,48,56,50,51,98,50,97,56,55,100,99,54,56,99,57,101,52,99,101,51,49,55,52,99,49,101,54,101,102,100,101,101,49,50,99,48,55,100,0,48,120,53,56,97,97,53,54,102,55,55,50,99,48,55,50,54,102,50,52,99,54,98,56,57,101,52,101,99,100,97,99,50,52,51,53,52,98,57,101,57,57,99,97,97,51,102,54,100,51,55,54,49,52,48,50,99,100,0,98,114,97,105,110,112,111,111,108,80,50,53,54,114,49,0,48,120,97,57,102,98,53,55,100,98,97,49,101,101,97,57,98,99,51,101,54,54,48,97,57,48,57,100,56,51,56,100,55,50,54,101,51,98,102,54,50,51,100,53,50,54,50,48,50,56,50,48,49,51,52,56,49,100,49,102,54,101,53,51,55,55,0,48,120,55,100,53,97,48,57,55,53,102,99,50,99,51,48,53,55,101,101,102,54,55,53,51,48,52,49,55,97,102,102,101,55,102,98,56,48,53,53,99,49,50,54,100,99,53,99,54,99,101,57,52,97,52,98,52,52,102,51,51,48,98,53,100,57,0,48,120,50,54,100,99,53,99,54,99,101,57,52,97,52,98,52,52,102,51,51,48,98,53,100,57,98,98,100,55,55,99,98,102,57,53,56,52,49,54,50,57,53,99,102,55,101,49,99,101,54,98,99,99,100,99,49,56,102,102,56,99,48,55,98,54,0,48,120,97,57,102,98,53,55,100,98,97,49,101,101,97,57,98,99,51,101,54,54,48,97,57,48,57,100,56,51,56,100,55,49,56,99,51,57,55,97,97,51,98,53,54,49,97,54,102,55,57,48,49,101,48,101,56,50,57,55,52,56,53,54,97,55,0,48,120,56,98,100,50,97,101,98,57,99,98,55,101,53,55,99,98,50,99,52,98,52,56,50,102,102,99,56,49,98,55,97,102,98,57,100,101,50,55,101,49,101,51,98,100,50,51,99,50,51,97,52,52,53,51,98,100,57,97,99,101,51,50,54,50,0,48,120,53,52,55,101,102,56,51,53,99,51,100,97,99,52,102,100,57,55,102,56,52,54,49,97,49,52,54,49,49,100,99,57,99,50,55,55,52,53,49,51,50,100,101,100,56,101,53,52,53,99,49,100,53,52,99,55,50,102,48,52,54,57,57,55,0,98,114,97,105,110,112,111,111,108,80,51,50,48,114,49,0,48,120,100,51,53,101,52,55,50,48,51,54,98,99,52,102,98,55,101,49,51,99,55,56,53,101,100,50,48,49,101,48,54,53,102,57,56,102,99,102,97,54,102,54,102,52,48,100,101,102,52,102,57,50,98,57,101,99,55,56,57,51,101,99,50,56,102,99,100,52,49,50,98,49,102,49,98,51,50,101,50,55,0,48,120,51,101,101,51,48,98,53,54,56,102,98,97,98,48,102,56,56,51,99,99,101,98,100,52,54,100,51,102,51,98,98,56,97,50,97,55,51,53,49,51,102,53,101,98,55,57,100,97,54,54,49,57,48,101,98,48,56,53,102,102,97,57,102,52,57,50,102,51,55,53,97,57,55,100,56,54,48,101,98,52,0,48,120,53,50,48,56,56,51,57,52,57,100,102,100,98,99,52,50,100,51,97,100,49,57,56,54,52,48,54,56,56,97,54,102,101,49,51,102,52,49,51,52,57,53,53,52,98,52,57,97,99,99,51,49,100,99,99,100,56,56,52,53,51,57,56,49,54,102,53,101,98,52,97,99,56,102,98,49,102,49,97,54,0,48,120,100,51,53,101,52,55,50,48,51,54,98,99,52,102,98,55,101,49,51,99,55,56,53,101,100,50,48,49,101,48,54,53,102,57,56,102,99,102,97,53,98,54,56,102,49,50,97,51,50,100,52,56,50,101,99,55,101,101,56,54,53,56,101,57,56,54,57,49,53,53,53,98,52,52,99,53,57,51,49,49,0,48,120,52,51,98,100,55,101,57,97,102,98,53,51,100,56,98,56,53,50,56,57,98,99,99,52,56,101,101,53,98,102,101,54,102,50,48,49,51,55,100,49,48,97,48,56,55,101,98,54,101,55,56,55,49,101,50,97,49,48,97,53,57,57,99,55,49,48,97,102,56,100,48,100,51,57,101,50,48,54,49,49,0,48,120,49,52,102,100,100,48,53,53,52,53,101,99,49,99,99,56,97,98,52,48,57,51,50,52,55,102,55,55,50,55,53,101,48,55,52,51,102,102,101,100,49,49,55,49,56,50,101,97,97,57,99,55,55,56,55,55,97,97,97,99,54,97,99,55,100,51,53,50,52,53,100,49,54,57,50,101,56,101,101,49,0,98,114,97,105,110,112,111,111,108,80,51,56,52,114,49,0,48,120,56,99,98,57,49,101,56,50,97,51,51,56,54,100,50,56,48,102,53,100,54,102,55,101,53,48,101,54,52,49,100,102,49,53,50,102,55,49,48,57,101,100,53,52,53,54,98,52,49,50,98,49,100,97,49,57,55,102,98,55,49,49,50,51,97,99,100,51,97,55,50,57,57,48,49,100,49,97,55,49,56,55,52,55,48,48,49,51,51,49,48,55,101,99,53,51,0,48,120,55,98,99,51,56,50,99,54,51,100,56,99,49,53,48,99,51,99,55,50,48,56,48,97,99,101,48,53,97,102,97,48,99,50,98,101,97,50,56,101,52,102,98,50,50,55,56,55,49,51,57,49,54,53,101,102,98,97,57,49,102,57,48,102,56,97,97,53,56,49,52,97,53,48,51,97,100,52,101,98,48,52,97,56,99,55,100,100,50,50,99,101,50,56,50,54,0,48,120,48,52,97,56,99,55,100,100,50,50,99,101,50,56,50,54,56,98,51,57,98,53,53,52,49,54,102,48,52,52,55,99,50,102,98,55,55,100,101,49,48,55,100,99,100,50,97,54,50,101,56,56,48,101,97,53,51,101,101,98,54,50,100,53,55,99,98,52,51,57,48,50,57,53,100,98,99,57,57,52,51,97,98,55,56,54,57,54,102,97,53,48,52,99,49,49,0,48,120,56,99,98,57,49,101,56,50,97,51,51,56,54,100,50,56,48,102,53,100,54,102,55,101,53,48,101,54,52,49,100,102,49,53,50,102,55,49,48,57,101,100,53,52,53,54,98,51,49,102,49,54,54,101,54,99,97,99,48,52,50,53,97,55,99,102,51,97,98,54,97,102,54,98,55,102,99,51,49,48,51,98,56,56,51,50,48,50,101,57,48,52,54,53,54,53,0,48,120,49,100,49,99,54,52,102,48,54,56,99,102,52,53,102,102,97,50,97,54,51,97,56,49,98,55,99,49,51,102,54,98,56,56,52,55,97,51,101,55,55,101,102,49,52,102,101,51,100,98,55,102,99,97,102,101,48,99,98,100,49,48,101,56,101,56,50,54,101,48,51,52,51,54,100,54,52,54,97,97,101,102,56,55,98,50,101,50,52,55,100,52,97,102,49,101,0,48,120,56,97,98,101,49,100,55,53,50,48,102,57,99,50,97,52,53,99,98,49,101,98,56,101,57,53,99,102,100,53,53,50,54,50,98,55,48,98,50,57,102,101,101,99,53,56,54,52,101,49,57,99,48,53,52,102,102,57,57,49,50,57,50,56,48,101,52,54,52,54,50,49,55,55,57,49,56,49,49,49,52,50,56,50,48,51,52,49,50,54,51,99,53,51,49,53,0,98,114,97,105,110,112,111,111,108,80,53,49,50,114,49,0,48,120,97,97,100,100,57,100,98,56,100,98,101,57,99,52,56,98,51,102,100,52,101,54,97,101,51,51,99,57,102,99,48,55,99,98,51,48,56,100,98,51,98,51,99,57,100,50,48,101,100,54,54,51,57,99,99,97,55,48,51,51,48,56,55,49,55,100,52,100,57,98,48,48,57,98,99,54,54,56,52,50,97,101,99,100,97,49,50,97,101,54,97,51,56,48,101,54,50,56,56,49,102,102,50,102,50,100,56,50,99,54,56,53,50,56,97,97,54,48,53,54,53,56,51,97,52,56,102,51,0,48,120,55,56,51,48,97,51,51,49,56,98,54,48,51,98,56,57,101,50,51,50,55,49,52,53,97,99,50,51,52,99,99,53,57,52,99,98,100,100,56,100,51,100,102,57,49,54,49,48,97,56,51,52,52,49,99,97,101,97,57,56,54,51,98,99,50,100,101,100,53,100,53,97,97,56,50,53,51,97,97,49,48,97,50,101,102,49,99,57,56,98,57,97,99,56,98,53,55,102,49,49,49,55,97,55,50,98,102,50,99,55,98,57,101,55,99,49,97,99,52,100,55,55,102,99,57,52,99,97,0,48,120,51,100,102,57,49,54,49,48,97,56,51,52,52,49,99,97,101,97,57,56,54,51,98,99,50,100,101,100,53,100,53,97,97,56,50,53,51,97,97,49,48,97,50,101,102,49,99,57,56,98,57,97,99,56,98,53,55,102,49,49,49,55,97,55,50,98,102,50,99,55,98,57,101,55,99,49,97,99,52,100,55,55,102,99,57,52,99,97,100,99,48,56,51,101,54,55,57,56,52,48,53,48,98,55,53,101,98,97,101,53,100,100,50,56,48,57,98,100,54,51,56,48,49,54,102,55,50,51,0,48,120,97,97,100,100,57,100,98,56,100,98,101,57,99,52,56,98,51,102,100,52,101,54,97,101,51,51,99,57,102,99,48,55,99,98,51,48,56,100,98,51,98,51,99,57,100,50,48,101,100,54,54,51,57,99,99,97,55,48,51,51,48,56,55,48,53,53,51,101,53,99,52,49,52,99,97,57,50,54,49,57,52,49,56,54,54,49,49,57,55,102,97,99,49,48,52,55,49,100,98,49,100,51,56,49,48,56,53,100,100,97,100,100,98,53,56,55,57,54,56,50,57,99,97,57,48,48,54,57,0,48,120,56,49,97,101,101,52,98,100,100,56,50,101,100,57,54,52,53,97,50,49,51,50,50,101,57,99,52,99,54,97,57,51,56,53,101,100,57,102,55,48,98,53,100,57,49,54,99,49,98,52,51,98,54,50,101,101,102,52,100,48,48,57,56,101,102,102,51,98,49,102,55,56,101,50,100,48,100,52,56,100,53,48,100,49,54,56,55,98,57,51,98,57,55,100,53,102,55,99,54,100,53,48,52,55,52,48,54,97,53,101,54,56,56,98,51,53,50,50,48,57,98,99,98,57,102,56,50,50],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+20480);allocate([48,120,55,100,100,101,51,56,53,100,53,54,54,51,51,50,101,99,99,48,101,97,98,102,97,57,99,102,55,56,50,50,102,100,102,50,48,57,102,55,48,48,50,52,97,53,55,98,49,97,97,48,48,48,99,53,53,98,56,56,49,102,56,49,49,49,98,50,100,99,100,101,52,57,52,97,53,102,52,56,53,101,53,98,99,97,52,98,100,56,56,97,50,55,54,51,97,101,100,49,99,97,50,98,50,102,97,56,102,48,53,52,48,54,55,56,99,100,49,101,48,102,51,97,100,56,48,56,57,50,0,71,79,83,84,50,48,48,49,45,116,101,115,116,0,48,120,56,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,52,51,49,0,48,120,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,55,0,48,120,53,102,98,102,102,52,57,56,97,97,57,51,56,99,101,55,51,57,98,56,101,48,50,50,102,98,97,102,101,102,52,48,53,54,51,102,54,101,54,97,51,52,55,50,102,99,50,97,53,49,52,99,48,99,101,57,100,97,101,50,51,98,55,101,0,48,120,56,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,49,53,48,102,101,56,97,49,56,57,50,57,55,54,49,53,52,99,53,57,99,102,99,49,57,51,97,99,99,102,53,98,51,0,48,120,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,50,0,48,120,48,56,101,50,97,56,97,48,101,54,53,49,52,55,100,52,98,100,54,51,49,54,48,51,48,101,49,54,100,49,57,99,56,53,99,57,55,102,48,97,57,99,97,50,54,55,49,50,50,98,57,54,97,98,98,99,101,97,55,101,56,102,99,56,0,71,79,83,84,50,48,48,49,45,67,114,121,112,116,111,80,114,111,45,65,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,100,57,55,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,100,57,52,0,48,120,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,97,54,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,54,99,54,49,49,48,55,48,57,57,53,97,100,49,48,48,52,53,56,52,49,98,48,57,98,55,54,49,98,56,57,51,0,48,120,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,49,0,48,120,56,100,57,49,101,52,55,49,101,48,57,56,57,99,100,97,50,55,100,102,53,48,53,97,52,53,51,102,50,98,55,54,51,53,50,57,52,102,50,100,100,102,50,51,101,51,98,49,50,50,97,99,99,57,57,99,57,101,57,102,49,101,49,52,0,71,79,83,84,50,48,48,49,45,67,114,121,112,116,111,80,114,111,45,66,0,48,120,56,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,99,57,57,0,48,120,56,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,99,57,54,0,48,120,51,101,49,97,102,52,49,57,97,50,54,57,97,53,102,56,54,54,97,55,100,51,99,50,53,99,51,100,102,56,48,97,101,57,55,57,50,53,57,51,55,51,102,102,50,98,49,56,50,102,52,57,100,52,99,101,55,101,49,98,98,99,56,98,0,48,120,56,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,49,53,102,55,48,48,99,102,102,102,49,97,54,50,52,101,53,101,52,57,55,49,54,49,98,99,99,56,97,49,57,56,102,0,48,120,51,102,97,56,49,50,52,51,53,57,102,57,54,54,56,48,98,56,51,100,49,99,51,101,98,50,99,48,55,48,101,53,99,53,52,53,99,57,56,53,56,100,48,51,101,99,102,98,55,52,52,98,102,56,100,55,49,55,55,49,55,101,102,99,0,71,79,83,84,50,48,48,49,45,67,114,121,112,116,111,80,114,111,45,67,0,48,120,57,98,57,102,54,48,53,102,53,97,56,53,56,49,48,55,97,98,49,101,99,56,53,101,54,98,52,49,99,56,97,97,99,102,56,52,54,101,56,54,55,56,57,48,53,49,100,51,55,57,57,56,102,55,98,57,48,50,50,100,55,53,57,98,0,48,120,57,98,57,102,54,48,53,102,53,97,56,53,56,49,48,55,97,98,49,101,99,56,53,101,54,98,52,49,99,56,97,97,99,102,56,52,54,101,56,54,55,56,57,48,53,49,100,51,55,57,57,56,102,55,98,57,48,50,50,100,55,53,57,56,0,48,120,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,56,48,53,97,0,48,120,57,98,57,102,54,48,53,102,53,97,56,53,56,49,48,55,97,98,49,101,99,56,53,101,54,98,52,49,99,56,97,97,53,56,50,99,97,51,53,49,49,101,100,100,102,98,55,52,102,48,50,102,51,97,54,53,57,56,57,56,48,98,98,57,0,48,120,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,0,48,120,52,49,101,99,101,53,53,55,52,51,55,49,49,97,56,99,51,99,98,102,51,55,56,51,99,100,48,56,99,48,101,101,52,100,52,100,99,52,52,48,100,52,54,52,49,97,56,102,51,54,54,101,53,53,48,100,102,100,98,51,98,98,54,55,0,71,79,83,84,50,48,49,50,45,116,101,115,116,0,48,120,52,53,51,49,97,99,100,49,102,101,48,48,50,51,99,55,53,53,48,100,50,54,55,98,54,98,50,102,101,101,56,48,57,50,50,98,49,52,98,50,102,102,98,57,48,102,48,52,100,52,101,98,55,99,48,57,98,53,100,50,100,49,53,100,102,49,100,56,53,50,55,52,49,97,102,52,55,48,52,97,48,52,53,56,48,52,55,101,56,48,101,52,53,52,54,100,51,53,98,56,51,51,54,102,97,99,50,50,52,100,100,56,49,54,54,52,98,98,102,53,50,56,98,101,54,51,55,51,0,48,120,49,99,102,102,48,56,48,54,97,51,49,49,49,54,100,97,50,57,100,56,99,102,97,53,52,101,53,55,101,98,55,52,56,98,99,53,102,51,55,55,101,52,57,52,48,48,102,100,100,55,56,56,98,54,52,57,101,99,97,49,97,99,52,51,54,49,56,51,52,48,49,51,98,50,97,100,55,51,50,50,52,56,48,97,56,57,99,97,53,56,101,48,99,102,55,52,98,99,57,101,53,52,48,99,50,97,100,100,54,56,57,55,102,97,100,48,97,51,48,56,52,102,51,48,50,97,100,99,0,48,120,52,53,51,49,97,99,100,49,102,101,48,48,50,51,99,55,53,53,48,100,50,54,55,98,54,98,50,102,101,101,56,48,57,50,50,98,49,52,98,50,102,102,98,57,48,102,48,52,100,52,101,98,55,99,48,57,98,53,100,50,100,49,53,100,97,56,50,102,50,100,55,101,99,98,49,100,98,97,99,55,49,57,57,48,53,99,53,101,101,99,99,52,50,51,102,49,100,56,54,101,50,53,101,100,98,101,50,51,99,53,57,53,100,54,52,52,97,97,102,49,56,55,101,54,101,54,100,102,0,48,120,50,52,100,49,57,99,99,54,52,53,55,50,101,101,51,48,102,51,57,54,98,102,54,101,98,98,102,100,55,97,54,99,53,50,49,51,98,51,98,51,100,55,48,53,55,99,99,56,50,53,102,57,49,48,57,51,97,54,56,99,100,55,54,50,102,100,54,48,54,49,49,50,54,50,99,100,56,51,56,100,99,54,98,54,48,97,97,55,101,101,101,56,48,52,101,50,56,98,99,56,52,57,57,55,55,102,97,99,51,51,98,52,98,53,51,48,102,49,98,49,50,48,50,52,56,97,57,97,0,48,120,50,98,98,51,49,50,97,52,51,98,100,50,99,101,54,101,48,100,48,50,48,54,49,51,99,56,53,55,97,99,100,100,99,102,98,102,48,54,49,101,57,49,101,53,102,50,99,51,102,51,50,52,52,55,99,50,53,57,102,51,57,98,50,99,56,51,97,98,49,53,54,100,55,55,102,49,52,57,54,98,102,55,101,98,51,51,53,49,101,49,101,101,52,101,52,51,100,99,49,97,49,56,98,57,49,98,50,52,54,52,48,98,54,100,98,98,57,50,99,98,49,97,100,100,51,55,49,101,0,71,79,83,84,50,48,49,50,45,116,99,50,54,45,65,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,100,99,55,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,100,99,52,0,48,120,101,56,99,50,53,48,53,100,101,100,102,99,56,54,100,100,99,49,98,100,48,98,50,98,54,54,54,55,102,49,100,97,51,52,98,56,50,53,55,52,55,54,49,99,98,48,101,56,55,57,98,100,48,56,49,99,102,100,48,98,54,50,54,53,101,101,51,99,98,48,57,48,102,51,48,100,50,55,54,49,52,99,98,52,53,55,52,48,49,48,100,97,57,48,100,100,56,54,50,101,102,57,100,52,101,98,101,101,52,55,54,49,53,48,51,49,57,48,55,56,53,97,55,49,99,55,54,48,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,50,55,101,54,57,53,51,50,102,52,56,100,56,57,49,49,54,102,102,50,50,98,56,100,52,101,48,53,54,48,54,48,57,98,52,98,51,56,97,98,102,97,100,50,98,56,53,100,99,97,99,100,98,49,52,49,49,102,49,48,98,50,55,53,0,48,120,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,51,0,48,120,55,53,48,51,99,102,101,56,55,97,56,51,54,97,101,51,97,54,49,98,56,56,49,54,101,50,53,52,53,48,101,54,99,101,53,101,49,99,57,51,97,99,102,49,97,98,99,49,55,55,56,48,54,52,102,100,99,98,101,102,97,57,50,49,100,102,49,54,50,54,98,101,52,102,100,48,51,54,101,57,51,100,55,53,101,54,97,53,48,101,51,97,52,49,101,57,56,48,50,56,102,101,53,102,99,50,51,53,102,53,98,56,56,57,97,53,56,57,99,98,53,50,49,53,102,50,97,52,0,71,79,83,84,50,48,49,50,45,116,99,50,54,45,66,0,48,120,56,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,54,102,0,48,120,56,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,54,99,0,48,120,54,56,55,100,49,98,52,53,57,100,99,56,52,49,52,53,55,101,51,101,48,54,99,102,54,102,53,101,50,53,49,55,98,57,55,99,55,100,54,49,52,97,102,49,51,56,98,99,98,102,56,53,100,99,56,48,54,99,52,98,50,56,57,102,51,101,57,54,53,100,50,100,98,49,52,49,54,100,50,49,55,102,56,98,50,55,54,102,97,100,49,97,98,54,57,99,53,48,102,55,56,98,101,101,49,102,97,51,49,48,54,101,102,98,56,99,99,98,99,55,99,53,49,52,48,49,49,54,0,48,120,56,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,49,52,57,97,49,101,99,49,52,50,53,54,53,97,53,52,53,97,99,102,100,98,55,55,98,100,57,100,52,48,99,102,97,56,98,57,57,54,55,49,50,49,48,49,98,101,97,48,101,99,54,51,52,54,99,53,52,51,55,52,102,50,53,98,100,0,48,120,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,50,0,48,120,49,97,56,102,55,101,100,97,51,56,57,98,48,57,52,99,50,99,48,55,49,101,51,54,52,55,97,56,57,52,48,102,51,99,49,50,51,98,54,57,55,53,55,56,99,50,49,51,98,101,54,100,100,57,101,54,99,56,101,99,55,51,51,53,100,99,98,50,50,56,102,100,49,101,100,102,52,97,51,57,49,53,50,99,98,99,97,97,102,56,99,48,51,57,56,56,50,56,48,52,49,48,53,53,102,57,52,99,101,101,101,99,55,101,50,49,51,52,48,55,56,48,102,101,52,49,98,100,0,115,101,99,112,50,53,54,107,49,0,48,120,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,69,70,70,70,70,70,67,50,70,0,48,120,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,69,66,65,65,69,68,67,69,54,65,70,52,56,65,48,51,66,66,70,68,50,53,69,56,67,68,48,51,54,52,49,52,49,0,48,120,55,57,66,69,54,54,55,69,70,57,68,67,66,66,65,67,53,53,65,48,54,50,57,53,67,69,56,55,48,66,48,55,48,50,57,66,70,67,68,66,50,68,67,69,50,56,68,57,53,57,70,50,56,49,53,66,49,54,70,56,49,55,57,56,0,48,120,52,56,51,65,68,65,55,55,50,54,65,51,67,52,54,53,53,68,65,52,70,66,70,67,48,69,49,49,48,56,65,56,70,68,49,55,66,52,52,56,65,54,56,53,53,52,49,57,57,67,52,55,68,48,56,70,70,66,49,48,68,52,66,56,0,49,46,51,46,54,46,49,46,52,46,49,46,49,49,53,57,49,46,49,53,46,49,0,49,46,50,46,56,52,48,46,49,48,48,52,53,46,51,46,49,46,49,0,112,114,105,109,101,49,57,50,118,49,0,115,101,99,112,49,57,50,114,49,0,110,105,115,116,112,49,57,50,0,115,101,99,112,50,50,52,114,49,0,49,46,51,46,49,51,50,46,48,46,51,51,0,110,105,115,116,112,50,50,52,0,49,46,50,46,56,52,48,46,49,48,48,52,53,46,51,46,49,46,55,0,112,114,105,109,101,50,53,54,118,49,0,115,101,99,112,50,53,54,114,49,0,110,105,115,116,112,50,53,54,0,115,101,99,112,51,56,52,114,49,0,49,46,51,46,49,51,50,46,48,46,51,52,0,110,105,115,116,112,51,56,52,0,115,101,99,112,53,50,49,114,49,0,49,46,51,46,49,51,50,46,48,46,51,53,0,110,105,115,116,112,53,50,49,0,49,46,51,46,51,54,46,51,46,51,46,50,46,56,46,49,46,49,46,49,0,49,46,51,46,51,54,46,51,46,51,46,50,46,56,46,49,46,49,46,51,0,49,46,51,46,51,54,46,51,46,51,46,50,46,56,46,49,46,49,46,53,0,49,46,51,46,51,54,46,51,46,51,46,50,46,56,46,49,46,49,46,55,0,49,46,51,46,51,54,46,51,46,51,46,50,46,56,46,49,46,49,46,57,0,49,46,51,46,51,54,46,51,46,51,46,50,46,56,46,49,46,49,46,49,49,0,49,46,51,46,51,54,46,51,46,51,46,50,46,56,46,49,46,49,46,49,51,0,49,46,50,46,54,52,51,46,50,46,50,46,51,53,46,48,0,49,46,50,46,54,52,51,46,50,46,50,46,51,53,46,49,0,49,46,50,46,54,52,51,46,50,46,50,46,51,53,46,50,0,49,46,50,46,54,52,51,46,50,46,50,46,51,53,46,51,0,71,79,83,84,50,48,48,49,45,67,114,121,112,116,111,80,114,111,45,88,99,104,65,0,71,79,83,84,50,48,48,49,45,67,114,121,112,116,111,80,114,111,45,88,99,104,66,0,49,46,50,46,54,52,51,46,50,46,50,46,51,54,46,48,0,49,46,50,46,54,52,51,46,50,46,50,46,51,54,46,49,0,49,46,50,46,54,52,51,46,55,46,49,46,50,46,49,46,50,46,49,0,49,46,50,46,54,52,51,46,55,46,49,46,50,46,49,46,50,46,50,0,49,46,51,46,49,51,50,46,48,46,49,48,0,48,120,48,52,0,45,112,97,98,103,110,104,0,98,0,103,0,104,0,100,0,46,120,0,46,121,0,46,122,0,101,99,99,32,103,101,116,32,112,97,114,97,109,58,32,70,97,105,108,101,100,32,116,111,32,103,101,116,32,97,102,102,105,110,101,32,99,111,111,114,100,105,110,97,116,101,115,10,0,40,112,117,98,108,105,99,45,107,101,121,40,101,99,99,40,112,37,109,41,40,97,37,109,41,40,98,37,109,41,40,103,37,109,41,40,110,37,109,41,40,104,37,109,41,41,41,0,103,46,120,0,103,46,121,0,113,46,120,0,113,46,121,0,101,100,100,115,97,95,101,110,99,111,100,101,112,111,105,110,116,58,32,70,97,105,108,101,100,32,116,111,32,103,101,116,32,97,102,102,105,110,101,32,99,111,111,114,100,105,110,97,116,101,115,10,0,48,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,68,0,50,66,56,51,50,52,56,48,52,70,67,49,68,70,48,66,50,66,52,68,48,48,57,57,51,68,70,66,68,55,65,55,50,70,52,51,49,56,48,54,65,68,50,70,69,52,55,56,67,52,69,69,49,66,50,55,52,65,48,69,65,48,66,48,0,115,99,97,110,110,105,110,103,32,69,67,67,32,112,97,114,97,109,101,116,101,114,32,102,97,105,108,101,100,58,32,37,115,10,0,101,99,103,101,110,32,32,32,32,32,32,112,107,0,42,32,101,95,112,107,0,32,32,101,95,112,107,0,32,32,32,32,32,109,0,32,32,32,114,0,32,32,32,101,95,114,0,32,72,40,82,43,41,0,32,32,32,101,95,115,0,87,101,105,101,114,115,116,114,97,115,115,0,69,100,119,97,114,100,115,0,83,116,97,110,100,97,114,100,0,69,100,50,53,53,49,57,0,109,112,105,95,112,114,105,110,116,32,102,97,105,108,101,100,58,32,37,115,10,0,109,112,105,95,115,99,97,110,32,102,97,105,108,101,100,58,32,37,115,10,0,104,109,97,99,0,97,108,103,111,114,105,116,104,109,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,105,110,118,97,108,105,100,32,116,101,115,116,115,32,100,97,116,97,0,103,99,114,121,95,109,100,95,115,101,116,107,101,121,32,102,97,105,108,101,100,0,103,99,114,121,95,109,100,95,114,101,97,100,32,102,97,105,108,101,100,0,100,111,101,115,32,110,111,116,32,109,97,116,99,104,0,100,97,116,97,45,50,56,32,107,101,121,45,52,0,119,104,97,116,32,100,111,32,121,97,32,119,97,110,116,32,102,111,114,32,110,111,116,104,105,110,103,63,0,74,101,102,101,0,100,97,116,97,45,57,32,107,101,121,45,50,48,0,72,105,32,84,104,101,114,101,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,100,97,116,97,45,53,48,32,107,101,121,45,50,48,0,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,0,100,97,116,97,45,53,48,32,107,101,121,45,50,54,0,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,100,97,116,97,45,53,52,32,107,101,121,45,49,51,49,0,84,101,115,116,32,85,115,105,110,103,32,76,97,114,103,101,114,32,84,104,97,110,32,66,108,111,99,107,45,83,105,122,101,32,75,101,121,32,45,32,72,97,115,104,32,75,101,121,32,70,105,114,115,116,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,0,100,97,116,97,45,49,53,50,32,107,101,121,45,49,51,49,0,84,104,105,115,32,105,115,32,97,32,116,101,115,116,32,117,115,105,110,103,32,97,32,108,97,114,103,101,114,32,116,104,97,110,32,98,108,111,99,107,45,115,105,122,101,32,107,101,121,32,97,110,100,32,97,32,108,97,114,103,101,114,32,116,104,97,110,32,98,108,111,99,107,45,115,105,122,101,32,100,97,116,97,46,32,84,104,101,32,107,101,121,32,110,101,101,100,115,32,116,111,32,98,101,32,104,97,115,104,101,100,32,98,101,102,111,114,101,32,98,101,105,110,103,32,117,115,101,100,32,98,121,32,116,104,101,32,72,77,65,67,32,97,108,103,111,114,105,116,104,109,46,0,95,103,99,114,121,95,104,109,97,99,50,53,54,95,110,101,119,32,102,97,105,108,101,100,0,95,103,99,114,121,95,104,109,97,99,50,53,54,95,102,105,110,97,108,105,122,101,32,102,97,105,108,101,100,0,100,111,101,115,32,110,111,116,32,109,97,116,99,104,32,105,110,32,115,101,99,111,110,100,32,105,109,112,108,101,109,101,110,116,97,116,105,111,110,0,70,73,80,83,45,49,57,56,97,44,32,65,46,49,0,83,97,109,112,108,101,32,35,49,0,79,76,163,213,214,139,167,204,10,18,8,201,198,30,156,93,160,64,60,10,0,70,73,80,83,45,49,57,56,97,44,32,65,46,50,0,83,97,109,112,108,101,32,35,50,0,9,34,211,64,95,170,61,25,79,130,164,88,48,115,125,92,198,199,93,36,0,70,73,80,83,45,49,57,56,97,44,32,65,46,51,0,83,97,109,112,108,101,32,35,51,0,188,244,30,171,139,178,216,2,243,208,92,175,124,176,146,236,248,209,163,170,0,70,73,80,83,45,49,57,56,97,44,32,65,46,52,0,83,97,109,112,108,101,32,35,52,0,158,168,134,239,226,104,219,236,206,66,12,117,36,223,50,224,117,26,42,38,0,111,105,100,46,0,79,73,68,46,0,109,100,95,101,110,97,98,108,101,58,32,97,108,103,111,114,105,116,104,109,32,37,100,32,110,111,116,32,97,118,97,105,108,97,98,108,101,10,0,77,68,53,32,117,115,101,100,0,109,100,46,99,0,109,100,95,119,114,105,116,101,0,79,111,112,115,58,32,109,100,32,100,101,98,117,103,32,97,108,114,101,97,100,121,32,115,116,97,114,116,101,100,10,0,100,98,103,109,100,45,37,48,53,100,46,37,46,49,48,115,0,119,0,109,100,32,100,101,98,117,103,58,32,99,97,110,39,116,32,111,112,101,110,32,37,115,10,0,109,111,114,101,32,116,104,97,110,32,111,110,101,32,97,108,103,111,114,105,116,104,109,32,105,110,32,109,100,95,114,101,97,100,40,48,41,10,0,109,100,95,114,101,97,100,0,109,100,95,103,101,116,95,97,108,103,111,0,112,111,115,115,105,98,108,101,32,117,115,97,103,101,32,101,114,114,111,114,0,87,65,82,78,73,78,71,58,32,109,111,114,101,32,116,104,97,110,32,111,110,101,32,97,108,103,111,114,105,116,104,109,32,105,110,32,109,100,95,103,101,116,95,97,108,103,111,40,41,10,0,107,101,121,108,101,110,32,60,61,32,104,100,45,62,99,116,120,45,62,109,97,99,112,97,100,115,95,66,115,105,122,101,0,112,114,101,112,97,114,101,95,109,97,99,112,97,100,115,0,103,99,114,121,95,109,100,95,111,112,101,110,32,102,97,105,108,101,100,32,102,111,114,32,97,108,103,111,32,37,100,58,32,37,115,0,110,111,32,65,83,78,46,49,32,79,73,68,32,102,111,114,32,109,100,32,97,108,103,111,32,37,100,10,0,112,114,105,109,101,103,101,110,0,99,97,110,39,116,32,103,101,110,101,114,97,116,101,32,97,32,112,114,105,109,101,32,119,105,116,104,32,108,101,115,115,32,116,104,97,110,32,37,100,32,98,105,116,115,10,0,111,118,101,114,102,108,111,119,32,105,110,32,112,114,105,109,101,32,103,101,110,101,114,97,116,105,111,110,10,0,95,103,99,114,121,95,109,112,105,95,99,109,112,40,32,40,120,41,44,32,40,110,109,105,110,117,115,49,41,32,41,32,60,32,48,32,38,38,32,95,103,99,114,121,95,109,112,105,95,99,109,112,95,117,105,40,32,40,120,41,44,32,40,49,41,32,41,32,62,32,48,0,112,114,105,109,101,103,101,110,46,99,0,105,115,95,112,114,105,109,101,0,112,115,115,0,114,97,119,0,99,111,109,112,0,111,97,101,112,0,112,107,99,115,49,0,112,97,114,97,109,0,110,111,99,111,109,112,0,114,102,99,54,57,55,57,0,110,111,112,97,114,97,109,0,112,107,99,115,49,45,114,97,119,0,105,103,110,105,110,118,102,108,97,103,0,110,111,45,107,101,121,116,101,115,116,0,110,111,45,98,108,105,110,100,105,110,103,0,117,115,101,45,102,105,112,115,49,56,54,0,117,115,101,45,102,105,112,115,49,56,54,45,50,0,110,98,105,116,115,0,114,115,97,45,117,115,101,45,101,0,115,105,103,45,118,97,108,0,104,97,115,104,45,97,108,103,111,0,108,97,98,101,108,0,114,97,110,100,111,109,45,111,118,101,114,114,105,100,101,0,115,104,97,49,0,109,100,53,0,115,104,97,50,53,54,0,114,105,112,101,109,100,49,54,48,0,114,109,100,49,54,48,0,115,104,97,51,56,52,0,115,104,97,53,49,50,0,115,104,97,50,50,52,0,109,100,50,0,109,100,52,0,116,105,103,101,114,0,104,97,118,97,108,0,100,97,116,97,0,104,97,115,104,0,115,97,108,116,45,108,101,110,103,116,104,0,63,0,112,114,105,118,97,116,101,45,107,101,121,0,112,117,98,108,105,99,45,107,101,121,0,103,101,110,107,101,121,0,97,108,103,111,114,105,116,104,109,32,100,105,115,97,98,108,101,100,0,97,108,103,111,114,105,116,104,109,32,110,111,116,32,102,111,117,110,100,0,110,111,32,115,101,108,102,116,101,115,116,32,97,118,97,105,108,97,98,108,101,0,109,111,100,117,108,101,0,65,69,83,0,99,105,112,104,101,114,0,8,9,10,11,13,14,15,16,18,19,20,21,23,24,25,26,28,29,30,31,33,34,35,36,38,39,40,41,43,44,45,46,6,154,0,127,199,106,69,159,152,186,249,23,254,223,149,33,8,14,149,23,235,22,119,113,154,207,114,128,134,4,10,227,65,69,83,45,50,53,54,32,116,101,115,116,32,101,110,99,114,121,112,116,105,111,110,32,102,97,105,108,101,100,46,0,65,69,83,45,50,53,54,32,116,101,115,116,32,100,101,99,114,121,112,116,105,111,110,32,102,97,105,108,101,100,46,0,4,5,6,7,9,10,11,12,14,15,16,17,19,20,21,22,24,25,26,27,29,30,31,32,118,119,116,117,241,242,243,244,248,249,230,231,119,112,113,114,93,30,242,13,206,214,188,188,18,19,26,199,197,71,136,170,65,69,83,45,49,57,50,32,116,101,115,116,32,101,110,99,114,121,112,116,105,111,110,32,102,97,105,108,101,100,46,0,65,69,83,45,49,57,50,32,116,101,115,116,32,100,101,99,114,121,112,116,105,111,110,32,102,97,105,108,101,100,46,0,99,102,98,0,111,102,98,0,110,111,32,116,101,115,116,32,100,97,116,97,32,102,111,114,32,116,104,105,115,32,109,111,100,101,0,111,112,101,110,0,115,101,116,32,107,101,121,0,115,101,116,32,73,86,0,101,110,99,114,121,112,116,32,99,111,109,109,97,110,100,0,101,110,99,114,121,112,116,32,109,105,115,109,97,116,99,104,0,100,101,99,114,121,112,116,32,99,111,109,109,97,110,100,0,100,101,99,114,121,112,116,32,109,105,115,109,97,116,99,104,0,232,233,234,235,237,238,239,240,242,243,244,245,247,248,249,250,1,75,175,34,120,166,157,51,29,81,128,16,54,67,233,154,103,67,195,209,81,154,180,242,205,154,120,171,9,165,17,189,65,69,83,45,49,50,56,32,116,101,115,116,32,101,110,99,114,121,112,116,105,111,110,32,102,97,105,108,101,100,46,0,65,69,83,45,49,50,56,32,116,101,115,116,32,100,101,99,114,121,112,116,105,111,110,32,102,97,105,108,101,100,46,0,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,49,46,49,0,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,49,46,50,0,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,49,46,51,0,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,49,46,52,0,82,73,74,78,68,65,69,76,0,65,69,83,49,50,56,0,65,69,83,45,49,50,56,0,65,69,83,49,57,50,0,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,49,46,50,49,0,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,49,46,50,50,0,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,49,46,50,51,0,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,49,46,50,52,0,82,73,74,78,68,65,69,76,49,57,50,0,65,69,83,45,49,57,50,0,65,69,83,50,53,54,0,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,49,46,52,49,0,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,49,46,52,50,0,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,49,46,52,51,0,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,49,46,52,52,0,82,73,74,78,68,65,69,76,50,53,54,0,65,69,83,45,50,53,54,0,82,73,80,69,77,68,49,54,48,0,48,33,48,9,6,5,43,36,3,2,1,5,0,4,20,49,46,51,46,51,54,46,51,46,51,46,49,46,50,0,49,46,51,46,51,54,46,51,46,50,46,49,0,105,32,62,32,48,0,114,115,97,45,99,111,109,109,111,110,46,99,0,95,103,99,114,121,95,114,115,97,95,112,107,99,115,49,95,101,110,99,111,100,101,95,102,111,114,95,101,110,99,0,110,32,61,61,32,110,102,114,97,109,101,0,80,75,67,83,35,49,32,98,108,111,99,107,32,116,121,112,101,32,50,32,101,110,99,111,100,101,100,32,100,97,116,97,0,118,97,108,117,101,32,101,120,116,114,97,99,116,101,100,32,102,114,111,109,32,80,75,67,83,35,49,32,98,108,111,99,107,32,116,121,112,101,32,50,32,101,110,99,111,100,101,100,32,100,97,116,97,0,105,32,62,32,49,0,95,103,99,114,121,95,114,115,97,95,112,107,99,115,49,95,101,110,99,111,100,101,95,102,111,114,95,115,105,103,0,80,75,67,83,35,49,32,98,108,111,99,107,32,116,121,112,101,32,49,32,101,110,99,111,100,101,100,32,100,97,116,97,0,95,103,99,114,121,95,114,115,97,95,112,107,99,115,49,95,101,110,99,111,100,101,95,114,97,119,95,102,111,114,95,115,105,103,0,79,65,69,80,32,101,110,99,111,100,101,100,32,100,97,116,97,0,118,97,108,117,101,32,101,120,116,114,97,99,116,101,100,32,102,114,111,109,32,79,65,69,80,32,101,110,99,111,100,101,100,32,100,97,116,97,0,104,108,101,110,0,95,103,99,114,121,95,114,115,97,95,112,115,115,95,101,110,99,111,100,101,0,80,83,83,32,101,110,99,111,100,101,100,32,100,97,116,97,0,95,103,99,114,121,95,114,115,97,95,112,115,115,95,118,101,114,105,102,121,0,82,83,65,0,110,101,0,110,101,100,112,113,117,0,97,0,115,0,110,0,99,111,110,118,101,114,116,0,40,112,114,105,118,97,116,101,45,107,101,121,32,40,114,115,97,32,32,40,110,32,35,48,48,101,48,99,101,57,54,102,57,48,98,54,99,57,101,48,50,102,51,57,50,50,98,101,97,100,97,57,51,102,101,53,48,97,56,55,53,101,97,99,54,98,99,99,49,56,98,98,57,97,57,99,102,50,101,56,52,57,54,53,99,97,97,32,32,32,32,32,32,50,100,49,102,102,57,53,97,55,102,53,52,50,52,54,53,99,54,99,48,99,49,57,100,50,55,54,101,52,53,50,54,99,101,48,52,56,56,54,56,97,55,97,57,49,52,102,100,51,52,51,99,99,51,97,56,55,100,100,55,52,50,57,49,32,32,32,32,32,32,102,102,99,53,54,53,53,48,54,100,53,98,98,98,50,53,99,98,97,99,54,97,48,101,50,100,100,49,102,56,98,99,97,97,98,48,100,52,97,50,57,99,50,102,51,55,99,57,53,48,102,51,54,51,52,56,52,98,102,50,54,57,102,55,32,32,32,32,32,32,56,57,49,52,52,48,52,54,52,98,97,102,55,57,56,50,55,101,48,51,97,51,54,101,55,48,98,56,49,52,57,51,56,101,101,98,100,99,54,51,101,57,54,52,50,52,55,98,101,55,53,100,99,53,56,98,48,49,52,98,55,101,97,50,53,49,35,41,32,32,40,101,32,35,48,49,48,48,48,49,35,41,32,32,40,100,32,35,48,52,54,49,50,57,102,50,52,56,57,100,55,49,53,55,57,98,101,48,97,55,53,102,101,48,50,57,98,100,54,99,100,98,53,55,52,101,98,102,53,55,101,97,56,97,53,98,48,102,100,97,57,52,50,99,97,98,57,52,51,98,49,49,32,32,32,32,32,32,55,100,55,98,98,57,53,101,53,100,50,56,56,55,53,101,48,102,57,102,99,53,102,99,99,48,54,97,55,50,102,54,100,53,48,50,52,54,52,100,97,98,100,101,100,55,56,101,102,54,98,55,49,54,49,55,55,98,56,51,100,53,98,100,32,32,32,32,32,32,99,53,52,51,100,99,53,100,51,102,101,100,57,51,50,101,53,57,102,53,56,57,55,101,57,50,101,54,102,53,56,97,48,102,51,51,52,50,52,49,48,54,97,51,98,54,102,97,50,99,98,102,56,55,55,53,49,48,101,52,97,99,50,49,32,32,32,32,32,32,99,51,101,101,52,55,56,53,49,101,57,55,100,49,50,57,57,54,50,50,50,97,99,51,53,54,54,100,52,99,99,98,48,98,56,51,100,49,54,52,48,55,52,97,98,102,55,100,101,54,53,53,102,99,50,52,52,54,100,97,49,55,56,49,35,41,32,32,40,112,32,35,48,48,101,56,54,49,98,55,48,48,101,49,55,101,56,97,102,101,54,56,51,55,101,55,53,49,50,101,51,53,98,54,99,97,49,49,100,48,97,101,52,55,100,56,98,56,53,49,54,49,99,54,55,98,97,102,54,52,51,55,55,50,49,51,32,32,32,32,32,32,102,101,53,50,100,55,55,50,102,50,48,51,53,98,51,99,97,56,51,48,97,102,52,49,100,56,97,52,49,50,48,101,49,99,49,99,55,48,100,49,50,99,99,50,50,102,48,48,100,50,56,100,51,49,100,100,52,56,97,56,100,52,50,52,102,49,35,41,32,32,40,113,32,35,48,48,102,55,97,55,99,97,53,51,54,55,99,54,54,49,102,56,101,54,50,100,102,51,52,102,48,100,48,53,99,49,48,99,56,56,101,53,52,57,50,51,52,56,100,100,55,98,100,100,99,57,52,50,99,57,97,56,102,51,54,57,102,57,32,32,32,32,32,32,51,53,97,48,55,55,56,53,100,50,100,98,56,48,53,50,49,53,101,100,55,56,54,101,52,50,56,53,100,102,49,54,53,56,101,101,100,51,99,101,56,52,102,52,54,57,98,56,49,98,53,48,100,51,53,56,52,48,55,98,52,97,100,51,54,49,35,41,32,32,40,117,32,35,51,48,52,53,53,57,97,57,101,97,100,53,54,100,50,51,48,57,100,50,48,51,56,49,49,97,54,52,49,98,98,49,97,48,57,54,50,54,98,99,56,101,98,51,54,102,102,102,97,50,51,99,57,54,56,101,99,53,98,100,56,57,49,101,32,32,32,32,32,32,101,98,98,97,102,99,55,51,97,101,54,54,54,101,48,49,98,97,55,99,56,57,57,48,98,97,101,48,54,99,99,50,98,98,101,49,48,98,55,53,101,54,57,102,99,97,99,98,51,53,51,97,54,52,55,51,48,55,57,100,56,101,57,98,35,41,41,41,0,40,112,117,98,108,105,99,45,107,101,121,32,40,114,115,97,32,32,40,110,32,35,48,48,101,48,99,101,57,54,102,57,48,98,54,99,57,101,48,50,102,51,57,50,50,98,101,97,100,97,57,51,102,101,53,48,97,56,55,53,101,97,99,54,98,99,99,49,56,98,98,57,97,57,99,102,50,101,56,52,57,54,53,99,97,97,32,32,32,32,32,32,50,100,49,102,102,57,53,97,55,102,53,52,50,52,54,53,99,54,99,48,99,49,57,100,50,55,54,101,52,53,50,54,99,101,48,52,56,56,54,56,97,55,97,57,49,52,102,100,51,52,51,99,99,51,97,56,55,100,100,55,52,50,57,49,32,32,32,32,32,32,102,102,99,53,54,53,53,48,54,100,53,98,98,98,50,53,99,98,97,99,54,97,48,101,50,100,100,49,102,56,98,99,97,97,98,48,100,52,97,50,57,99,50,102,51,55,99,57,53,48,102,51,54,51,52,56,52,98,102,50,54,57,102,55,32,32,32,32,32,32,56,57,49,52,52,48,52,54,52,98,97,102,55,57,56,50,55,101,48,51,97,51,54,101,55,48,98,56,49,52,57,51,56,101,101,98,100,99,54,51,101,57,54,52,50,52,55,98,101,55,53,100,99,53,56,98,48,49,52,98,55,101,97,50,53,49,35,41,32,32,40,101,32,35,48,49,48,48,48,49,35,41,41,41,0,107,101,121,32,99,111,110,115,105,115,116,101,110,99,121,0,115,105,103,110,0,101,110,99,114,121,112,116,0,40,100,97,116,97,32,40,102,108,97,103,115,32,114,97,119,41,32,40,118,97,108,117,101,32,37,109,41,41,0,99,111,110,118,101,114,116,105,110,103,32,100,97,116,97,32,102,97,105,108,101,100,0,101,110,99,114,121,112,116,32,102,97,105,108,101,100,0,103,99,114,121,95,112,107,95,100,101,99,114,121,112,116,32,114,101,116,117,114,110,101,100,32,103,97,114,98,97,103,101,0,99,105,112,104,101,114,116,101,120,116,32,109,97,116,99,104,101,115,32,112,108,97,105,110,116,101,120,116,0,100,101,99,114,121,112,116,32,102,97,105,108,101,100,0,118,97,108,117,101,0,100,101,99,114,121,112,116,32,114,101,116,117,114,110,101,100,32,110,111,32,112,108,97,105,110,116,101,120,116,0,109,105,115,109,97,116,99,104,0,101,110,99,45,118,97,108,0,114,115,97,0,40,100,97,116,97],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+30720);allocate([32,40,102,108,97,103,115,32,112,107,99,115,49,41,32,40,104,97,115,104,32,115,104,97,49,32,35,49,49,50,50,51,51,52,52,53,53,54,54,55,55,56,56,57,57,48,48,97,97,98,98,99,99,100,100,101,101,102,102,49,48,50,48,51,48,52,48,35,41,41,0,40,100,97,116,97,32,40,102,108,97,103,115,32,112,107,99,115,49,41,32,40,104,97,115,104,32,115,104,97,49,32,35,49,49,50,50,51,51,52,52,53,53,54,54,55,55,56,56,57,57,48,48,97,97,98,98,99,99,100,100,101,101,102,102,56,48,50,48,51,48,52,48,35,41,41,0,115,105,103,110,105,110,103,32,102,97,105,108,101,100,0,118,101,114,105,102,121,32,102,97,105,108,101,100,0,98,97,100,32,115,105,103,110,97,116,117,114,101,32,110,111,116,32,100,101,116,101,99,116,101,100,0,114,115,97,95,118,101,114,105,102,121,32,100,97,116,97,0,114,115,97,95,118,101,114,105,102,121,32,32,115,105,103,0,114,115,97,95,118,101,114,105,102,121,32,32,32,32,110,0,114,115,97,95,118,101,114,105,102,121,32,32,32,32,101,0,114,115,97,95,118,101,114,105,102,121,32,32,99,109,112,0,114,115,97,95,118,101,114,105,102,121,32,32,32,32,61,62,32,37,115,10,0,114,115,97,95,115,105,103,110,32,32,32,100,97,116,97,0,110,101,100,112,63,113,63,117,63,0,114,115,97,95,115,105,103,110,32,32,32,32,32,32,110,0,114,115,97,95,115,105,103,110,32,32,32,32,32,32,101,0,114,115,97,95,115,105,103,110,32,32,32,32,32,32,100,0,114,115,97,95,115,105,103,110,32,32,32,32,32,32,112,0,114,115,97,95,115,105,103,110,32,32,32,32,32,32,113,0,114,115,97,95,115,105,103,110,32,32,32,32,32,32,117,0,114,115,97,95,115,105,103,110,32,32,32,32,114,101,115,0,40,115,105,103,45,118,97,108,40,114,115,97,40,115,37,98,41,41,41,0,40,115,105,103,45,118,97,108,40,114,115,97,40,115,37,77,41,41,41,0,114,115,97,95,115,105,103,110,32,32,32,32,32,32,61,62,32,37,115,10,0,114,115,97,95,100,101,99,114,121,112,116,32,100,97,116,97,0,114,115,97,95,100,101,99,114,121,112,116,32,32,32,32,110,0,114,115,97,95,100,101,99,114,121,112,116,32,32,32,32,101,0,114,115,97,95,100,101,99,114,121,112,116,32,32,32,32,100,0,114,115,97,95,100,101,99,114,121,112,116,32,32,32,32,112,0,114,115,97,95,100,101,99,114,121,112,116,32,32,32,32,113,0,114,115,97,95,100,101,99,114,121,112,116,32,32,32,32,117,0,114,115,97,95,100,101,99,114,121,112,116,32,32,114,101,115,0,40,118,97,108,117,101,32,37,98,41,0,37,109,0,114,115,97,95,100,101,99,114,121,112,116,32,32,32,32,61,62,32,37,115,10,0,114,115,97,95,101,110,99,114,121,112,116,32,100,97,116,97,0,114,115,97,95,101,110,99,114,121,112,116,32,32,32,32,110,0,114,115,97,95,101,110,99,114,121,112,116,32,32,32,32,101,0,114,115,97,95,101,110,99,114,121,112,116,32,32,114,101,115,0,40,101,110,99,45,118,97,108,40,114,115,97,40,97,37,98,41,41,41,0,40,101,110,99,45,118,97,108,40,114,115,97,40,97,37,109,41,41,41,0,114,115,97,95,101,110,99,114,121,112,116,32,32,32,32,61,62,32,37,115,10,0,114,115,97,95,116,101,115,116,107,101,121,32,32,32,32,61,62,32,37,115,10,0,100,101,114,105,118,101,45,112,97,114,109,115,0,117,115,101,45,120,57,51,49,0,40,109,105,115,99,45,107,101,121,45,105,110,102,111,40,112,45,113,45,115,119,97,112,112,101,100,41,41,0,40,107,101,121,45,100,97,116,97,32,40,112,117,98,108,105,99,45,107,101,121,32,32,40,114,115,97,40,110,37,109,41,40,101,37,109,41,41,41,32,40,112,114,105,118,97,116,101,45,107,101,121,32,32,40,114,115,97,40,110,37,109,41,40,101,37,109,41,40,100,37,109,41,40,112,37,109,41,40,113,37,109,41,40,117,37,109,41,41,41,32,37,83,41,0,114,115,97,46,99,0,103,101,110,101,114,97,116,101,95,115,116,100,0,32,32,112,61,32,0,32,32,113,61,32,0,112,104,105,61,32,0,32,32,103,61,32,0,32,32,102,61,32,0,32,32,110,61,32,0,32,32,101,61,32,0,32,32,100,61,32,0,32,32,117,61,32,0,115,101,108,102,45,116,101,115,116,32,97,102,116,101,114,32,107,101,121,32,103,101,110,101,114,97,116,105,111,110,32,102,97,105,108,101,100,0,88,112,49,0,88,112,50,0,88,112,0,88,113,49,0,88,113,50,0,88,113,0,95,103,99,114,121,95,109,112,105,95,103,99,100,32,40,32,40,103,41,44,32,40,101,41,44,32,40,112,104,105,41,32,41,0,103,101,110,101,114,97,116,101,95,120,57,51,49,0,112,32,97,110,100,32,113,32,97,114,101,32,115,119,97,112,112,101,100,10,0,32,32,113,0,32,32,110,0,32,32,101,0,32,32,100,0,32,32,117,0,95,103,99,114,121,95,109,112,105,95,103,101,116,95,110,98,105,116,115,32,40,40,120,105,41,41,32,61,61,32,49,48,49,0,103,101,110,95,120,57,51,49,95,112,97,114,109,95,120,105,0,95,103,99,114,121,95,109,112,105,95,103,101,116,95,110,98,105,116,115,32,40,40,120,112,41,41,32,61,61,32,110,98,105,116,115,0,103,101,110,95,120,57,51,49,95,112,97,114,109,95,120,112,0,111,112,101,110,112,103,112,45,114,115,97,0,111,105,100,46,49,46,50,46,56,52,48,46,49,49,51,53,52,57,46,49,46,49,46,49,0,83,72,65,49,0,48,33,48,9,6,5,43,14,3,2,26,5,0,4,20,169,153,62,54,71,6,129,106,186,62,37,113,120,80,194,108,156,208,216,157,0,132,152,62,68,28,59,210,110,186,174,74,161,249,81,41,229,229,70,112,241,0,52,170,151,60,212,196,218,164,246,30,235,43,219,173,39,49,101,52,1,111,0,49,46,50,46,56,52,48,46,49,49,51,53,52,57,46,49,46,49,46,53,0,49,46,50,46,56,52,48,46,49,48,48,52,48,46,52,46,51,0,49,46,51,46,49,52,46,51,46,50,46,50,54,0,49,46,51,46,49,52,46,51,46,50,46,50,57,0,49,46,50,46,56,52,48,46,49,48,48,52,53,46,52,46,49,0,83,72,65,50,50,52,0,48,45,48,13,6,9,96,134,72,1,101,3,4,2,4,5,0,4,28,186,120,22,191,143,1,207,234,65,65,64,222,93,174,34,35,176,3,97,163,150,23,122,156,180,16,255,97,242,0,21,173,0,97,98,99,100,98,99,100,101,99,100,101,102,100,101,102,103,101,102,103,104,102,103,104,105,103,104,105,106,104,105,106,107,105,106,107,108,106,107,108,109,107,108,109,110,108,109,110,111,109,110,111,112,110,111,112,113,0,36,141,106,97,210,6,56,184,229,192,38,147,12,62,96,57,163,60,228,89,100,255,33,103,246,236,237,212,25,219,6,193,0,205,199,110,92,153,20,251,146,129,161,199,226,132,215,62,103,241,128,154,72,164,151,32,14,4,109,57,204,199,17,44,208,0,35,9,125,34,52,5,216,34,134,66,164,119,189,162,85,179,42,173,188,228,189,160,179,247,227,108,157,167,0,117,56,139,22,81,39,118,204,93,186,93,161,253,137,1,80,176,198,69,92,180,245,139,25,82,82,37,37,0,32,121,70,85,152,12,145,216,187,180,193,234,151,97,138,75,240,63,66,88,25,72,178,238,78,231,173,103,0,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,50,46,52,0,83,72,65,50,53,54,0,48,49,48,13,6,9,96,134,72,1,101,3,4,2,1,5,0,4,32,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,50,46,49,0,49,46,50,46,56,52,48,46,49,49,51,53,52,57,46,49,46,49,46,49,49,0,83,72,65,53,49,50,0,48,81,48,13,6,9,96,134,72,1,101,3,4,2,3,5,0,4,64,115,104,111,114,116,32,115,116,114,105,110,103,0,97,98,99,0,221,175,53,161,147,97,122,186,204,65,115,73,174,32,65,49,18,230,250,78,137,169,126,162,10,158,238,230,75,85,211,154,33,146,153,42,39,79,193,168,54,186,60,35,163,254,235,189,69,77,68,35,100,60,232,14,42,154,201,79,165,76,164,159,0,108,111,110,103,32,115,116,114,105,110,103,0,97,98,99,100,101,102,103,104,98,99,100,101,102,103,104,105,99,100,101,102,103,104,105,106,100,101,102,103,104,105,106,107,101,102,103,104,105,106,107,108,102,103,104,105,106,107,108,109,103,104,105,106,107,108,109,110,104,105,106,107,108,109,110,111,105,106,107,108,109,110,111,112,106,107,108,109,110,111,112,113,107,108,109,110,111,112,113,114,108,109,110,111,112,113,114,115,109,110,111,112,113,114,115,116,110,111,112,113,114,115,116,117,0,142,149,155,117,218,227,19,218,140,244,247,40,20,252,20,63,143,119,121,198,235,159,127,161,114,153,174,173,182,136,144,24,80,29,40,158,73,0,247,228,51,27,153,222,196,181,67,58,199,211,41,238,182,221,38,84,94,150,229,91,135,75,233,9,0,111,110,101,32,109,105,108,108,105,111,110,32,34,97,34,0,231,24,72,61,12,231,105,100,78,46,66,199,188,21,180,99,142,31,152,177,59,32,68,40,86,50,168,3,175,169,115,235,222,15,242,68,135,126,166,10,76,176,67,44,229,119,195,27,235,0,156,92,44,73,170,46,78,173,178,23,173,140,192,155,0,100,105,103,101,115,116,0,203,0,117,63,69,163,94,139,181,160,61,105,154,198,80,7,39,44,50,171,14,222,209,99,26,139,96,90,67,255,91,237,128,134,7,43,161,231,204,35,88,186,236,161,52,200,37,167,0,9,51,12,51,247,17,71,232,61,25,47,199,130,205,27,71,83,17,27,23,59,59,5,210,47,160,128,134,227,176,247,18,252,199,199,26,85,126,45,185,102,195,233,250,145,116,96,57,0,157,14,24,9,113,100,116,203,8,110,131,78,49,10,74,28,237,20,158,156,0,242,72,82,121,114,206,197,112,76,42,91,7,184,179,220,56,236,196,235,174,151,221,216,127,61,137,133,0,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,50,46,51,0,49,46,50,46,56,52,48,46,49,49,51,53,52,57,46,49,46,49,46,49,51,0,83,72,65,51,56,52,0,48,65,48,13,6,9,96,134,72,1,101,3,4,2,2,5,0,4,48,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,50,46,50,0,49,46,50,46,56,52,48,46,49,49,51,53,52,57,46,49,46,49,46,49,50,0,84,87,79,70,73,83,72,0,37,115,10,0,0,1,23,2,46,24,83,3,106,47,147,25,52,84,69,4,92,107,182,48,166,148,75,26,140,53,129,85,170,70,13,5,36,93,135,108,155,183,193,49,43,167,163,149,152,76,202,27,230,141,115,54,205,130,18,86,98,171,240,71,79,14,189,6,212,37,210,94,39,136,102,109,214,156,121,184,8,194,223,50,104,44,253,168,138,164,90,150,41,153,34,77,96,203,228,28,123,231,59,142,158,116,244,55,216,206,249,131,111,19,178,87,225,99,220,172,196,241,175,72,10,80,66,15,186,190,199,7,222,213,120,38,101,211,209,95,227,40,33,137,89,103,252,110,177,215,248,157,243,122,58,185,198,9,65,195,174,224,219,51,68,105,146,45,82,254,22,169,12,139,128,165,74,91,181,151,201,42,162,154,192,35,134,78,188,97,239,204,17,229,114,29,61,124,235,232,233,60,234,143,125,159,236,117,30,245,62,56,246,217,63,207,118,250,31,132,160,112,237,20,144,179,126,88,251,226,32,100,208,221,119,173,218,197,64,242,57,176,247,73,180,11,127,81,21,67,145,16,113,187,238,191,133,200,161,1,2,4,8,16,32,64,128,77,154,121,242,169,31,62,124,248,189,55,110,220,245,167,3,6,12,24,48,96,192,205,215,227,139,91,182,33,66,132,69,138,89,178,41,82,164,5,10,20,40,80,160,13,26,52,104,208,237,151,99,198,193,207,211,235,155,123,246,161,15,30,60,120,240,173,23,46,92,184,61,122,244,165,7,14,28,56,112,224,141,87,174,17,34,68,136,93,186,57,114,228,133,71,142,81,162,9,18,36,72,144,109,218,249,191,51,102,204,213,231,131,75,150,97,194,201,223,243,171,27,54,108,216,253,183,35,70,140,85,170,25,50,100,200,221,247,163,11,22,44,88,176,45,90,180,37,74,148,101,202,217,255,179,43,86,172,21,42,84,168,29,58,116,232,157,119,238,145,111,222,241,175,19,38,76,152,125,250,185,63,126,252,181,39,78,156,117,234,153,127,254,177,47,94,188,53,106,212,229,135,67,134,65,130,73,146,105,210,233,159,115,230,129,79,158,113,226,137,95,190,49,98,196,197,199,195,203,219,251,187,59,118,236,149,103,206,209,239,147,107,214,225,143,83,166,1,2,4,8,16,32,64,128,77,154,121,242,169,31,62,124,248,189,55,110,220,245,167,3,6,12,24,48,96,192,205,215,227,139,91,182,33,66,132,69,138,89,178,41,82,164,5,10,20,40,80,160,13,26,52,104,208,237,151,99,198,193,207,211,235,155,123,246,161,15,30,60,120,240,173,23,46,92,184,61,122,244,165,7,14,28,56,112,224,141,87,174,17,34,68,136,93,186,57,114,228,133,71,142,81,162,9,18,36,72,144,109,218,249,191,51,102,204,213,231,131,75,150,97,194,201,223,243,171,27,54,108,216,253,183,35,70,140,85,170,25,50,100,200,221,247,163,11,22,44,88,176,45,90,180,37,74,148,101,202,217,255,179,43,86,172,21,42,84,168,29,58,116,232,157,119,238,145,111,222,241,175,19,38,76,152,125,250,185,63,126,252,181,39,78,156,117,234,153,127,254,177,47,94,188,53,106,212,229,135,67,134,65,130,73,146,105,210,233,159,115,230,129,79,158,113,226,137,95,190,49,98,196,197,199,195,203,169,117,103,243,179,198,232,244,4,219,253,123,163,251,118,200,154,74,146,211,128,230,120,107,228,69,221,125,209,232,56,75,13,214,198,50,53,216,152,253,24,55,247,113,236,241,108,225,67,48,117,15,55,248,38,27,250,135,19,250,148,6,72,63,242,94,208,186,139,174,48,91,132,138,84,0,223,188,35,157,25,109,91,193,61,177,89,14,243,128,174,93,162,210,130,213,99,160,1,132,131,7,46,20,217,181,81,144,155,44,124,163,166,178,235,115,165,76,190,84,22,146,12,116,227,54,97,81,192,56,140,176,58,189,245,90,115,252,44,96,37,98,11,150,187,108,78,66,137,247,107,16,83,124,106,40,180,39,241,140,225,19,230,149,189,156,69,199,226,36,244,70,182,59,102,112,204,202,149,227,3,133,86,203,212,17,28,208,30,147,215,184,251,166,195,131,142,32,181,255,233,159,207,119,191,195,186,204,234,3,119,111,57,8,175,191,51,64,201,231,98,43,113,226,129,121,121,12,9,170,173,130,36,65,205,58,249,234,216,185,229,228,197,154,185,164,77,151,68,126,8,218,134,122,231,23,161,102,29,148,170,161,237,29,6,61,112,240,178,222,210,179,65,11,123,114,160,167,17,28,49,239,194,209,39,83,144,62,32,143,246,51,96,38,255,95,150,236,92,118,177,42,171,73,158,129,156,136,82,238,27,33,95,196,147,26,10,235,239,217,145,197,133,57,73,153,238,205,45,173,79,49,143,139,59,1,71,24,135,35,109,221,70,31,214,78,62,45,105,249,100,72,42,79,206,242,203,101,47,142,252,120,151,92,5,88,122,25,172,141,127,229,213,152,26,87,75,103,14,127,167,5,90,100,40,175,20,99,63,182,41,254,136,245,60,183,76,60,2,165,184,206,218,233,176,104,23,68,85,224,31,77,138,67,125,105,87,41,199,46,141,172,116,21,183,89,196,168,159,10,114,158,126,110,21,71,34,223,18,52,88,53,7,106,153,207,52,220,110,34,80,201,222,192,104,155,101,137,188,212,219,237,248,171,200,18,168,162,43,13,64,82,220,187,254,2,50,47,164,169,202,215,16,97,33,30,240,180,211,80,93,4,15,246,0,194,111,22,157,37,54,134,66,86,74,85,94,9,193,190,224,145,117,243,198,244,219,123,251,200,74,211,230,107,69,125,232,75,214,50,216,253,55,113,241,225,48,15,248,27,135,250,6,63,94,186,174,91,138,0,188,157,109,193,177,14,128,93,210,213,160,132,7,20,181,144,44,163,178,115,76,84,146,116,54,81,56,176,189,90,252,96,98,150,108,66,247,16,124,40,39,140,19,149,156,199,36,70,59,112,202,227,133,203,17,208,147,184,166,131,32,255,159,119,195,204,3,111,8,191,64,231,43,226,121,12,170,130,65,58,234,185,228,154,164,151,126,218,122,23,102,148,161,29,61,240,222,179,11,114,167,28,239,209,83,62,143,51,38,95,236,118,42,73,129,136,238,33,196,26,235,217,197,57,153,205,173,49,139,1,24,35,221,31,78,45,249,72,79,242,101,142,120,92,88,25,141,229,152,87,103,127,5,100,175,99,182,254,245,183,60,165,206,233,104,68,224,77,67,105,41,46,172,21,89,168,10,158,110,71,223,52,53,106,207,220,34,201,192,155,137,212,237,171,18,162,13,82,187,2,47,169,215,97,30,180,80,4,246,194,22,37,134,86,85,9,190,145,169,103,179,232,4,253,163,118,154,146,128,120,228,221,209,56,13,198,53,152,24,247,236,108,67,117,55,38,250,19,148,72,242,208,139,48,132,84,223,35,25,91,61,89,243,174,162,130,99,1,131,46,217,81,155,124,166,235,165,190,22,12,227,97,192,140,58,245,115,44,37,11,187,78,137,107,83,106,180,241,225,230,189,69,226,244,182,102,204,149,3,86,212,28,30,215,251,195,142,181,233,207,191,186,234,119,57,175,51,201,98,113,129,121,9,173,36,205,249,216,229,197,185,77,68,8,134,231,161,29,170,237,6,112,178,210,65,123,160,17,49,194,39,144,32,246,96,255,150,92,177,171,158,156,82,27,95,147,10,239,145,133,73,238,45,79,143,59,71,135,109,70,214,62,105,100,42,206,203,47,252,151,5,122,172,127,213,26,75,14,167,90,40,20,63,41,136,60,76,2,184,218,176,23,85,31,138,125,87,199,141,116,183,196,159,114,126,21,34,18,88,7,153,52,110,80,222,104,101,188,219,248,200,168,43,64,220,254,50,164,202,16,33,240,211,93,15,0,111,157,54,66,74,94,193,224,159,88,159,92,246,18,44,50,182,191,236,47,42,232,195,90,212,145,219,22,231,177,195,158,134,203,8,107,120,159,84,25,1,159,152,9,222,23,17,133,143,170,195,163,186,32,251,195,84,119,111,102,105,115,104,45,49,50,56,32,116,101,115,116,32,101,110,99,114,121,112,116,105,111,110,32,102,97,105,108,101,100,46,0,84,119,111,102,105,115,104,45,49,50,56,32,116,101,115,116,32,100,101,99,114,121,112,116,105,111,110,32,102,97,105,108,101,100,46,0,212,59,183,85,110,163,46,70,242,162,130,183,212,91,78,13,87,255,115,157,77,201,44,27,215,252,1,112,12,200,33,111,144,175,233,27,178,136,84,79,44,50,220,35,155,38,53,230,108,180,86,28,64,191,10,151,5,147,28,182,212,8,231,250,84,119,111,102,105,115,104,45,50,53,54,32,116,101,115,116,32,101,110,99,114,121,112,116,105,111,110,32,102,97,105,108,101,100,46,0,84,119,111,102,105,115,104,45,50,53,54,32,116,101,115,116,32,100,101,99,114,121,112,116,105,111,110,32,102,97,105,108,101,100,46,0,84,87,79,70,73,83,72,49,50,56,0,102,97,105,108,101,100,32,116,111,32,97,99,113,117,105,114,101,32,116,104,101,32,110,111,110,99,101,32,98,117,102,102,101,114,32,108,111,99,107,58,32,37,115,10,0,102,97,105,108,101,100,32,116,111,32,114,101,108,101,97,115,101,32,116,104,101,32,110,111,110,99,101,32,98,117,102,102,101,114,32,108,111,99,107,58,32,37,115,10,0,37,115,46,42,0,37,115,46,88,0,37,115,58,32,71,101,116,116,105,110,103,32,89,45,99,111,111,114,100,105,110,97,116,101,32,111,110,32,37,115,32,105,115,32,110,111,116,32,115,117,112,112,111,114,116,101,100,10,0,95,103,99,114,121,95,109,112,105,95,101,99,95,103,101,116,95,97,102,102,105,110,101,0,77,111,110,116,103,111,109,101,114,121,0,101,99,95,105,110,118,109,58,32,105,110,118,101,114,115,101,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,58,10,0,32,32,97,0,32,32,112,0,71,67,82,89,80,84,95,66,65,82,82,69,84,84,0,37,115,58,32,37,115,32,110,111,116,32,121,101,116,32,115,117,112,112,111,114,116,101,100,10,0,95,103,99,114,121,95,109,112,105,95,101,99,95,100,117,112,95,112,111,105,110,116,0,95,103,99,114,121,95,109,112,105,95,101,99,95,97,100,100,95,112,111,105,110,116,115,0,0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,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,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,33,98,112,95,109,97,114,107,101,114,0,109,112,105,45,112,111,119,46,99,0,95,103,99,114,121,95,109,112,105,95,112,111,119,109,0,114,101,115,45,62,100,32,61,61,32,114,112,0,105,32,61,61,32,110,108,105,109,98,115,0,109,112,105,99,111,100,101,114,46,99,0,95,103,99,114,121,95,109,112,105,95,115,101,116,95,98,117,102,102,101,114,0,58,103,101,110,101,114,105,99,47,109,112,105,104,45,97,100,100,49,46,99,58,103,101,110,101,114,105,99,47,109,112,105,104,45,115,117,98,49,46,99,58,103,101,110,101,114,105,99,47,109,112,105,104,45,109,117,108,49,46,99,58,103,101,110,101,114,105,99,47,109,112,105,104,45,109,117,108,50,46,99,58,103,101,110,101,114,105,99,47,109,112,105,104,45,109,117,108,51,46,99,58,103,101,110,101,114,105,99,47,109,112,105,104,45,108,115,104,105,102,116,46,99,58,103,101,110,101,114,105,99,47,109,112,105,104,45,114,115,104,105,102,116,46,99,0,105,110,118,97,108,105,100,32,109,112,105,95,99,111,110,115,116,32,115,101,108,101,99,116,111,114,32,37,100,10,0,87,97,114,110,105,110,103,58,32,116,114,121,105,110,103,32,116,111,32,99,104,97,110,103,101,32,97,110,32,105,109,109,117,116,97,98,108,101,32,77,80,73,10,0,105,110,118,97,108,105,100,32,102,108,97,103,32,118,97,108,117,101,32,105,110,32,109,112,105,95,102,114,101,101,10,0,109,112,105,95,103,101,116,95,111,112,97,113,117,101,32,111,110,32,110,111,114,109,97,108,32,109,112,105,10,0,109,112,105,95,115,101,116,95,99,111,110,100,58,32,100,105,102,102,101,114,101,110,116,32,115,105,122,101,115,10,0,109,112,105,95,115,119,97,112,95,99,111,110,100,58,32,100,105,102,102,101,114,101,110,116,32,115,105,122,101,115,10,0,105,110,118,97,108,105,100,32,102,108,97,103,32,118,97,108,117,101,10,0,77,80,73,32,115,117,98,115,121,115,116,101,109,32,110,111,116,32,105,110,105,116,105,97,108,105,122,101,100,10,0,10,10,84,104,105,115,32,105,115,32,76,105,98,103,99,114,121,112,116,32,49,46,55,46,48,45,98,101,116,97,50,51,48,32,45,32,84,104,101,32,71,78,85,32,67,114,121,112,116,111,32,76,105,98,114,97,114,121,10,67,111,112,121,114,105,103,104,116,32,40,67,41,32,50,48,48,48,45,50,48,49,50,32,70,114,101,101,32,83,111,102,116,119,97,114,101,32,70,111,117,110,100,97,116,105,111,110,44,32,73,110,99,46,10,67,111,112,121,114,105,103,104,116,32,40,67,41,32,50,48,49,50,45,50,48,49,52,32,103,49,48,32,67,111,100,101,32,71,109,98,72,10,67,111,112,121,114,105,103,104,116,32,40,67,41,32,50,48,49,51,45,50,48,49,52,32,74,117,115,115,105,32,75,105,118,105,108,105,110,110,97,10,10,40,97,51,54,101,101,55,53,48,32,50,48,49,55,45,48,51,45,48,57,84,49,51,58,51,57,43,48,48,48,48,41,10,10,10,0,99,105,112,104,101,114,45,99,109,97,99,46,99,0,99,109,97,99,95,103,101,110,101,114,97,116,101,95,115,117,98,107,101,121,115,0,99,45,62,117,110,117,115,101,100,32,60,32,98,108,111,99,107,115,105,122,101,0,99,105,112,104,101,114,45,99,116,114,46,99,0,95,103,99,114,121,95,99,105,112,104,101,114,95,99,116,114,95,101,110,99,114,121,112,116,0,117,110,117,115,101,100,32,61,61,32,98,108,111,99,107,115,105,122,101,0,99,105,112,104,101,114,45,103,99,109,46,99,0,100,111,95,103,104,97,115,104,95,98,117,102,0,102,97,105,108,101,100,32,116,111,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,0,115,101,116,107,101,121,32,102,97,105,108,101,100,0,115,101,108,102,116,101,115,116,32,102,111,114,32,67,66,67,32,102,97,105,108,101,100,32,45,32,115,101,101,32,115,121,115,108,111,103,32,102,111,114,32,100,101,116,97,105,108,115,0,115,101,108,102,116,101,115,116,32,102,111,114,32,67,70,66,32,102,97,105,108,101,100,32,45,32,115,101,101,32,115,121,115,108,111,103,32,102,111,114,32,100,101,116,97,105,108,115,0,115,101,108,102,116,101,115,116,32,102,111,114,32,67,84,82,32,102,97,105,108,101,100,32,45,32,115,101,101,32,115,121,115,108,111,103,32,102,111,114,32,100,101,116,97,105,108,115,0,69,67,67,0,112,97,98,103,110,104,113,0,112,97,98,103,110,104,113,100,0,115,119,0,114,115,0,102,108,97,103,115,0,112,63,97,63,98,63,103,63,110,63,104,63,47,113,0,112,63,97,63,98,63,103,63,110,63,104,63,113,0,47,113,0,113,0,99,117,114,118,101,0,112,97,98,103,110,104,113,40,49,58,37,99,37,117,58,0,41,0,108,111,119,45,108,101,118,101,108,0,112,117,98,107,101,121,0,112,0,101,99,99,95,118,101,114,105,102,121,32,100,97,116,97,0,47,114,115,0,101,99,99,95,118,101,114,105,102,121,32,32,115,95,114,0,101,99,99,95,118,101,114,105,102,121,32,32,115,95,115,0,45,112,63,97,63,98,63,103,63,110,63,104,63,47,113,0,43,69,100,68,83,65,0,101,99,99,95,118,101,114,105,102,121,32,105,110,102,111,58,32,37,115,47,37,115,37,115,10,0,101,99,99,95,118,101,114,105,102,121,32,110,97,109,101,58,32,37,115,10,0,101,99,99,95,118,101,114,105,102,121,32,32,32,32,112,0,101,99,99,95,118,101,114,105,102,121,32,32,32,32,97,0,101,99,99,95,118,101,114,105,102,121,32,32,32,32,98,0,101,99,99,95,118,101,114,105,102,121,32,32,103,0,101,99,99,95,118,101,114,105,102,121,32,32,32,32,110,0,101,99,99,95,118,101,114,105,102,121,32,32,32,32,104,0,101,99,99,95,118,101,114,105,102,121,32,32,32,32,113,0,71,111,111,100,0,101,99,99,95,118,101,114,105,102,121,32,32,32,32,61,62,32,37,115,10,0,101,99,99,95,115,105,103,110,32,32,32,100,97,116,97,0,45,112,63,97,63,98,63,103,63,110,63,104,63,47,113,63,43,100,0,47,113,63,43,100,0,101,99,99,95,115,105,103,110,32,32,32,105,110,102,111,58,32,37,115,47,37,115,37,115,10,0,101,99,99,95,115,105,103,110,32,32,32,110,97,109,101,58,32,37,115,10,0,101,99,99,95,115,105,103,110,32,32,32,32,32,32,112,0,101,99,99,95,115,105,103,110,32,32,32,32,32,32,97,0,101,99,99,95,115,105,103,110,32,32,32,32,32,32,98,0,101,99,99,95,115,105,103,110,32,32,32,32,103,0,101,99,99,95,115,105,103,110,32,32,32,32,32,32,110,0,101,99,99,95,115,105,103,110,32,32,32,32,32,32,104,0,101,99,99,95,115,105,103,110,32,32,32,32,32,32,113,0,101,99,99,95,115,105,103,110,32,32,32,32,32,32,100,0,40,115,105,103,45,118,97,108,40,101,100,100,115,97,40,114,37,77,41,40,115,37,77,41,41,41,0,40,115,105,103,45,118,97,108,40,103,111,115,116,40,114,37,77,41,40,115,37,77,41,41,41,0,40,115,105,103,45,118,97,108,40,101,99,100,115,97,40,114,37,77,41,40,115,37,77,41,41,41,0,101,99,99,95,115,105,103,110,32,32,32,32,32,32,61,62,32,37,115,10,0,101,0,101,99,99,95,100,101,99,114,121,112,116,32,32,100,95,101,0,45,112,63,97,63,98,63,103,63,110,63,104,63,43,100,0,101,99,99,95,100,101,99,114,121,112,116,32,105,110,102,111,58,32,37,115,47,37,115,10,0,101,99,99,95,100,101,99,114,121,112,116,32,110,97,109,101,58,32,37,115,10,0,101,99,99,95,100,101,99,114,121,112,116,32,32,32,32,112,0,101,99,99,95,100,101,99,114,121,112,116,32,32,32,32,97,0,101,99,99,95,100,101,99,114,121,112,116,32,32,32,32,98,0,101,99,99,95,100,101,99,114,121,112,116,32,32,103,0,101,99,99,95,100,101,99,114,121,112,116,32,32,32,32,110,0,101,99,99,95,100,101,99,114,121,112,116,32,32,32,32,104,0,101,99,99,95,100,101,99,114,121,112,116,32,32,32,32,100,0,101,99,100,104,58,32,70,97,105,108,101,100,32,116,111,32,103,101,116,32,97,102,102,105,110,101,32,99,111,111,114,100,105,110,97,116,101,115,10,0,101,99,99,95,100,101,99,114,121,112,116,32,32,114,101,115,0,40,118,97,108,117,101,32,37,109,41,0,101,99,99,95,100,101,99,114,121,112,116,32,32,32,32,61,62,32,37,115,10,0,101,99,99,95,101,110,99,114,121,112,116,32,100,97,116,97,0,45,112,63,97,63,98,63,103,63,110,63,104,63,43,113,0,101,99,99,95,101,110,99,114,121,112,116,32,105,110,102,111,58,32,37,115,47,37,115,10,0,101,99,99,95,101,110,99,114,121,112,116,32,110,97,109,101,58,32,37,115,10,0,101,99,99,95,101,110,99,114,121,112,116,32,32,32,32,112,0,101,99,99,95,101,110,99,114,121,112,116,32,32,32,32,97,0,101,99,99,95,101,110,99,114,121,112,116,32,32,32,32,98,0,101,99,99,95,101,110,99,114,121,112,116,32,32,103,0,101,99,99,95,101,110,99,114,121,112,116,32,32,32,32,110,0,101,99,99,95,101,110,99,114,121,112,116,32,32,32,32,104,0,101,99,99,95,101,110,99,114,121,112,116,32,32,32,32,113,0,101,99,100,104,58,32,70,97,105,108,101,100,32,116,111,32,103,101,116,32,97,102,102,105,110,101,32,99,111,111,114,100,105,110,97,116,101,115,32,102,111,114,32,107,100,71,10,0,101,99,100,104,58,32,70,97,105,108,101,100,32,116,111,32,103,101,116,32,97,102,102,105,110,101,32,99,111,111,114,100,105,110,97,116,101,115,32,102,111,114,32,107,71,10,0,40,101,110,99,45,118,97,108,40,101,99,100,104,40,115,37,109,41,40,101,37,109,41,41,41,0,101,99,99,95,101,110,99,114,121,112,116,32,32,32,32,61,62,32,37,115,10,0,101,99,99,95,116,101,115,116,107,101,121,32,105,110,102,58,32,37,115,47,37,115,10,0,101,99,99,95,116,101,115,116,107,101,121,32,110,97,109,58,32,37,115,10,0,101,99,99,95,116,101,115,116,107,101,121,32,32,32,112,0,101,99,99,95,116,101,115,116,107,101,121,32,32,32,97,0,101,99,99,95,116,101,115,116,107,101,121,32,32,32,98,0,101,99,99,95,116,101,115,116,107,101,121,32,103,0,101,99,99,95,116,101,115,116,107,101,121,32,32,32,110,0,101,99,99,95,116,101,115,116,107,101,121,32,32,32,104,0,101,99,99,95,116,101,115,116,107,101,121,32,32,32,113,0,101,99,99,95,116,101,115,116,107,101,121,32,32,32,100,0,101,99,99,95,116,101,115,116,107,101,121,32,32,32,61,62,32,37,115,10,0,66,97,100,32,99,104,101,99,107,58,32,80,111,105,110,116,32,39,71,39,32,100,111,101,115,32,110,111,116,32,98,101,108,111,110,103,32,116,111,32,99,117,114,118,101,32,39,69,39,33,10,0,66,97,100,32,99,104,101,99,107,58,32,39,71,39,32,99,97,110,110,111,116,32,98,101,32,80,111,105,110,116,32,97,116,32,73,110,102,105,110,105,116,121,33,10,0,99,104,101,99,107,95,115,101,99,114,101,116,95,107,101,121,58,32,69,32,105,115,32,110,111,116,32,97,32,99,117,114,118,101,32,111,102,32,111,114,100,101,114,32,110,10,0,66,97,100,32,99,104,101,99,107,58,32,81,32,99,97,110,32,110,111,116,32,98,101,32,97,32,80,111,105,110,116,32,97,116,32,73,110,102,105,110,105,116,121,33,10,0,66,97,100,32,99,104,101,99,107,58,32,99,111,109,112,117,116,97,116,105,111,110,32,111,102,32,100,71,32,102,97,105,108,101,100,10,0,66,97,100,32,99,104,101,99,107,58,32,84,104,101,114,101,32,105,115,32,78,79,32,99,111,114,114,101,115,112,111,110,100,101,110,99,101,32,98,101,116,119,101,101,110,32,39,100,39,32,97,110,100,32,39,81,39,33,10,0,116,114,97,110,115,105,101,110,116,45,107,101,121,0,101,99,103,101,110,32,99,117,114,118,101,32,105,110,102,111,58,32,37,115,47,37,115,10,0,101,99,103,101,110,32,99,117,114,118,101,32,117,115,101,100,58,32,37,115,10,0,101,99,103,101,110,32,99,117,114,118,101,32,32,32,112,0,101,99,103,101,110,32,99,117,114,118,101,32,32,32,97,0,101,99,103,101,110,32,99,117,114,118,101,32,32,32,98,0,101,99,103,101,110,32,99,117,114,118,101,32,32,32,110,0,101,99,103,101,110,32,99,117,114,118,101,32,32,32,104,0,101,99,103,101,110,32,99,117,114,118,101,32,71,0,101,99,103,101,110,58,32,70,97,105,108,101,100,32,116,111,32,103,101,116,32,97,102,102,105,110,101,32,99,111,111,114,100,105,110,97,116,101,115,32,102,111,114,32,37,115,10,0,71,0,81,0,40,99,117,114,118,101,32,37,115,41,0,40,102,108,97,103,115,32,112,97,114,97,109,41,0,40,102,108,97,103,115,32,101,100,100,115,97,41,0,40,102,108,97,103,115,32,112,97,114,97,109,32,101,100,100,115,97,41,0,40,107,101,121,45,100,97,116,97,32,40,112,117,98,108,105,99,45,107,101,121,32,32,40,101,99,99,37,83,37,83,40,112,37,109,41,40,97,37,109,41,40,98,37,109,41,40,103,37,109,41,40,110,37,109,41,40,104,37,109,41,40,113,37,109,41,41,41,32,40,112,114,105,118,97,116,101,45,107,101,121,32,32,40,101,99,99,37,83,37,83,40,112,37,109,41,40,97,37,109,41,40,98,37,109,41,40,103,37,109,41,40,110,37,109,41,40,104,37,109,41,40,113,37,109,41,40,100,37,109,41,41,41,32,41,0,40,107,101,121,45,100,97,116,97,32,40,112,117,98,108,105,99,45,107,101,121,32,32,40,101,99,99,37,83,37,83,40,113,37,109,41,41,41,32,40,112,114,105,118,97,116,101,45,107,101,121,32,32,40,101,99,99,37,83,37,83,40,113,37,109,41,40,100,37,109,41,41,41,32,41,0,101,99,103,101,110,32,114,101,115,117,108,116,32,32,112,0,101,99,103,101,110,32,114,101,115,117,108,116,32,32,97,0,101,99,103,101,110,32,114,101,115,117,108,116,32,32,98,0,101,99,103,101,110,32,114,101,115,117,108,116,32,32,71,0,101,99,103,101,110,32,114,101,115,117,108,116,32,32,110,0,101,99,103,101,110,32,114,101,115,117,108,116,32,32,104,0,101,99,103,101,110,32,114,101,115,117,108,116,32,32,81,0,101,99,103,101,110,32,114,101,115,117,108,116,32,32,100,0,101,99,103,101,110,32,114,101,115,117,108,116,32,32,117,115,105,110,103,32,69,100,50,53,53,49,57,43,69,100,68,83,65,10,0,101,99,103,101,110,32,99,111,110,118,101,114,116,101,100,32,81,32,116,111,32,97,32,99,111,109,112,108,105,97,110,116,32,112,111,105,110,116,10,0,101,99,103,101,110,32,100,105,100,110,39,116,32,110,101,101,100,32,116,111,32,99,111,110,118,101,114,116,32,81,32,116,111,32,97,32,99,111,109,112,108,105,97,110,116,32,112,111,105,110,116,10,0,84,101,115,116,105,110,103,32,107,101,121,46,10,0,101,99,100,104,58,32,70,97,105,108,101,100,32,116,111,32,103,101,116,32,97,102,102,105,110,101,32,99,111,111,114,100,105,110,97,116,101,115,32,102,111,114,32,104,107,81,10,0,101,99,100,104,58,32,70,97,105,108,101,100,32,116,111,32,103,101,116,32,97,102,102,105,110,101,32,99,111,111,114,100,105,110,97,116,101,115,32,102,111,114,32,104,100,107,71,10,0,69,67,68,72,32,116,101,115,116,32,102,97,105,108,101,100,46,10,0,69,67,68,83,65,32,111,112,101,114,97,116,105,111,110,58,32,115,105,103,110,32,102,97,105,108,101,100,10,0,69,67,68,83,65,32,111,112,101,114,97,116,105,111,110,58,32,115,105,103,110,44,32,118,101,114,105,102,121,32,102,97,105,108,101,100,10,0,69,67,68,83,65,32,111,112,101,114,97,116,105,111,110,58,32,115,105,103,110,44,32,118,101,114,105,102,121,32,111,107,46,10,0,101,99,99,0,101,99,100,115,97,0,101,99,100,104,0,101,100,100,115,97,0,103,111,115,116,0,100,105,103,101,115,116,32,115,105,122,101,32,100,111,101,115,32,110,111,116,32,109,97,116,99,104,32,101,120,112,101,99,116,101,100,32,115,105,122,101,0,103,99,114,121,95,109,100,95,111,112,101,110,32,102,97,105,108,101,100,0,105,110,118,97,108,105,100,32,68,65,84,65,77,79,68,69,0,100,105,103,101,115,116,32,109,105,115,109,97,116,99,104,0,104,97,115,104,45,99,111,109,109,111,110,46,99,0,95,103,99,114,121,95,109,100,95,98,108,111,99,107,95,119,114,105,116,101,0,80,111,108,121,49,51,48,53,32,115,101,108,102,116,101,115,116,32,102,97,105,108,101,100,32,40,37,115,41,10,0,142,153,59,159,72,104,18,115,194,150,80,186,50,252,118,206,72,51,46,167,22,77,150,164,71,111,184,197,49,161,24,106,192,223,193,124,152,220,232,123,77,167,240,17,236,72,201,114,113,210,194,15,155,146,143,226,39,13,111,184,99,213,23,56,180,142,238,227,20,167,204,138,185,50,22,69,72,229,38,174,144,34,67,104,81,122,207,234,189,107,179,115,43,192,233,218,153,131,43,97,202,1,182,222,86,36,74,158,136,213,249,179,121,115,246,34,164,61,20,166,89,155,31,101,76,180,90,116,227,85,165,238,166,167,37,28,30,114,145,109,17,194,203,33,77,60,37,37,57,18,29,142,35,78,101,45,101,31,164,200,207,248,128,243,255,199,112,63,148,0,229,42,125,251,75,61,51,5,217,80,111,108,121,49,51,48,53,32,116,101,115,116,32,49,32,102,97,105,108,101,100,46,0,80,111,108,121,49,51,48,53,32,116,101,115,116,32,50,32,102,97,105,108,101,100,46,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,111,108,121,49,51,48,53,32,116,101,115,116,32,51,32,102,97,105,108,101,100,46,0,1,2,3,4,5,6,7,255,254,253,252,251,250,249,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,100,175,226,232,214,173,123,189,210,135,249,124,68,98,61,57,80,111,108,121,49,51,48,53,32,116,101,115,116,32,52,32,102,97,105,108,101,100,46,0,102,97,105,108,101,100,32,116,111,32,114,101,108,101,97,115,101,32,116,104,101,32,112,111,111,108,32,108,111,99,107,58,32,37,115,10,0,87,65,82,78,73,78,71,58,32,117,115,105,110,103,32,105,110,115,101,99,117,114,101,32,114,97,110,100,111,109,32,110,117,109,98,101,114,32,103,101,110,101,114,97,116,111,114,33,33,10,0,112,111,111,108,95,105,115,95,108,111,99,107,101,100,0,114,97,110,100,111,109,45,99,115,112,114,110,103,46,99,0,97,100,100,95,114,97,110,100,111,109,110,101,115,115,0,109,105,120,95,112,111,111,108,0,110,111,32,101,110,116,114,111,112,121,32,103,97,116,104,101,114,105,110,103,32,109,111,100,117,108,101,32,100,101,116,101,99,116,101,100,10,0,102,97,105,108,101,100,32,116,111,32,97,99,113,117,105,114,101,32,116,104,101,32,112,111,111,108,32,108,111,99,107,58,32,37,115,10,0,32,40,104,119,114,110,103,32,102,97,105,108,101,100,41,0,114,97,110,100,111,109,32,117,115,97,103,101,58,32,112,111,111,108,115,105,122,101,61,37,100,32,109,105,120,101,100,61,37,108,117,32,112,111,108,108,115,61,37,108,117,47,37,108,117,32,97,100,100,101,100,61,37,108,117,47,37,108,117,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,111,117,116,109,105,120,61,37,108,117,32,103,101,116,108,118,108,49,61,37,108,117,47,37,108,117,32,103,101,116,108,118,108,50,61,37,108,117,47,37,108,117,37,115,10,0,114,101,97,100,95,112,111,111,108,0,116,111,111,32,109,97,110,121,32,114,97,110,100,111,109,32,98,105,116,115,32,114,101,113,117,101,115,116,101,100,10,0,100,111,95,102,97,115,116,95,114,97,110,100,111,109,95,112,111,108,108,0,83,108,111,119,32,101,110,116,114,111,112,121,32,103,97,116,104,101,114,105,110,103,32,109,111,100,117,108,101,32,110,111,116,32,121,101,116,32,105,110,105,116,105,97,108,105,122,101,100,10,0,78,111,32,119,97,121,32,116,111,32,103,97,116,104,101,114,32,101,110,116,114,111,112,121,32,102,111,114,32,116,104,101,32,82,78,71,10,0,114,101,97,100,95,115,101,101,100,95,102,105,108,101,0,99,97,110,39,116,32,111,112,101,110,32,96,37,115,39,58,32,37,115,10,0,99,97,110,39,116,32,115,116,97,116,32,96,37,115,39,58,32,37,115,10,0,96,37,115,39,32,105,115,32,110,111,116,32,97,32,114,101,103,117,108,97,114,32,102,105,108,101,32,45,32,105,103,110,111,114,101,100,10,0,110,111,116,101,58,32,114,97,110,100,111,109,95,115,101,101,100,32,102,105,108,101,32,105,115,32,101,109,112,116,121,10,0,119,97,114,110,105,110,103,58,32,105,110,118,97,108,105,100,32,115,105,122,101,32,111,102,32,114,97,110,100,111,109,95,115,101,101,100,32,102,105,108,101,32,45,32,110,111,116,32,117,115,101,100,10,0,99,97,110,39,116,32,114,101,97,100,32,96,37,115,39,58,32,37,115,10,0,99,97,110,39,116,32,108,111,99,107,32,96,37,115],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+40960);allocate([39,58,32,37,115,10,0,119,97,105,116,105,110,103,32,102,111,114,32,108,111,99,107,32,111,110,32,96,37,115,39,46,46,46,10,0,95,103,99,114,121,95,114,110,103,99,115,112,114,110,103,95,115,101,116,95,115,101,101,100,95,102,105,108,101,0,110,111,116,101,58,32,114,97,110,100,111,109,95,115,101,101,100,32,102,105,108,101,32,110,111,116,32,117,112,100,97,116,101,100,10,0,99,97,110,39,116,32,99,114,101,97,116,101,32,96,37,115,39,58,32,37,115,10,0,99,97,110,39,116,32,119,114,105,116,101,32,96,37,115,39,58,32,37,115,10,0,99,97,110,39,116,32,99,108,111,115,101,32,96,37,115,39,58,32,37,115,10,0,33,110,111,110,99,101,95,99,111,110,116,101,120,116,45,62,116,101,115,116,95,100,116,95,112,116,114,0,114,97,110,100,111,109,45,102,105,112,115,46,99,0,95,103,99,114,121,95,114,110,103,102,105,112,115,95,105,110,105,116,105,97,108,105,122,101,0,33,115,116,100,95,114,110,103,95,99,111,110,116,101,120,116,45,62,116,101,115,116,95,100,116,95,112,116,114,0,33,115,116,114,111,110,103,95,114,110,103,95,99,111,110,116,101,120,116,45,62,116,101,115,116,95,100,116,95,112,116,114,0,102,97,105,108,101,100,32,116,111,32,114,101,108,101,97,115,101,32,116,104,101,32,82,78,71,32,108,111,99,107,58,32,37,115,10,0,109,101,109,111,114,121,32,99,111,114,114,117,112,116,105,111,110,32,100,101,116,101,99,116,101,100,32,105,110,32,82,78,71,32,99,111,110,116,101,120,116,32,37,112,10,0,102,97,105,108,101,100,32,116,111,32,97,99,113,117,105,114,101,32,116,104,101,32,82,78,71,32,108,111,99,107,58,32,37,115,10,0,114,110,103,95,99,116,120,0,102,111,114,107,32,119,105,116,104,111,117,116,32,112,114,111,112,101,114,32,114,101,45,105,110,105,116,105,97,108,105,122,97,116,105,111,110,32,100,101,116,101,99,116,101,100,32,105,110,32,82,78,71,0,115,101,118,101,114,101,32,101,114,114,111,114,32,103,101,116,116,105,110,103,32,114,97,110,100,111,109,10,0,102,105,112,115,95,114,110,103,95,105,115,95,108,111,99,107,101,100,0,120,57,51,49,95,97,101,115,95,100,114,105,118,101,114,0,114,110,103,95,99,116,120,45,62,99,105,112,104,101,114,95,104,100,0,114,110,103,95,99,116,120,45,62,105,115,95,115,101,101,100,101,100,0,116,101,109,112,118,97,108,117,101,95,102,111,114,95,120,57,51,49,95,97,101,115,95,100,114,105,118,101,114,0,100,117,112,108,105,99,97,116,101,32,49,50,56,32,98,105,116,32,98,108,111,99,107,32,114,101,116,117,114,110,101,100,32,98,121,32,82,78,71,0,108,101,110,103,116,104,32,61,61,32,49,54,0,101,110,99,114,121,112,116,95,97,101,115,0,65,69,83,32,101,110,99,114,121,112,116,105,111,110,32,105,110,32,82,78,71,32,102,97,105,108,101,100,58,32,37,115,10,0,120,57,51,49,95,103,101,116,95,100,116,0,103,101,116,116,105,109,101,111,102,100,97,121,40,41,32,102,97,105,108,101,100,58,32,37,115,10,0,120,57,51,49,95,114,101,115,101,101,100,0,120,57,51,49,95,103,101,110,101,114,97,116,101,95,115,101,101,100,0,33,101,110,116,114,111,112,121,95,99,111,108,108,101,99,116,95,98,117,102,102,101,114,0,103,101,116,95,101,110,116,114,111,112,121,0,101,114,114,111,114,32,103,101,116,116,105,110,103,32,101,110,116,114,111,112,121,32,100,97,116,97,10,0,101,110,116,114,111,112,121,95,99,111,108,108,101,99,116,95,99,98,0,101,110,116,114,111,112,121,95,99,111,108,108,101,99,116,95,98,117,102,102,101,114,0,120,57,51,49,95,103,101,110,101,114,97,116,101,95,107,101,121,0,101,114,114,111,114,32,99,114,101,97,116,105,110,103,32,99,105,112,104,101,114,32,99,111,110,116,101,120,116,32,102,111,114,32,82,78,71,58,32,37,115,10,0,101,114,114,111,114,32,99,114,101,97,116,105,110,103,32,107,101,121,32,102,111,114,32,82,78,71,58,32,37,115,10,0,115,101,108,102,116,101,115,116,95,107,97,116,0,101,114,114,111,114,32,99,114,101,97,116,105,110,103,32,99,105,112,104,101,114,32,99,111,110,116,101,120,116,32,102,111,114,32,82,78,71,0,185,202,127,214,160,245,211,66,25,109,132,145,118,28,59,190,72,178,130,152,104,194,128,0,0,0,40,24,0,0,37,0,82,23,141,41,162,213,132,18,157,137,154,69,130,2,247,119,66,156,8,61,130,244,138,64,102,181,73,39,171,66,199,195,14,183,97,60,254,176,190,115,247,110,109,111,29,163,20,250,187,75,193,14,197,251,205,70,190,40,97,231,3,43,55,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,247,149,189,74,82,226,158,215,19,211,19,250,32,233,141,188,200,209,229,17,89,82,247,250,55,56,180,197,206,178,176,154,13,156,197,13,22,225,188,237,207,96,98,9,157,32,131,126,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,128,0,129,1,130,2,131,3,160,32,161,33,162,34,163,35,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,150,237,204,195,221,4,127,117,99,25,55,111,21,34,87,86,122,20,118,119,149,23,126,200,146,232,221,21,203,31,188,177,37,62,46,162,65,27,221,245,33,72,65,113,179,141,47,76,101,114,114,111,114,32,115,101,116,116,105,110,103,32,107,101,121,32,102,111,114,32,82,78,71,0,88,57,46,51,49,32,82,78,71,32,99,111,114,101,32,102,117,110,99,116,105,111,110,32,102,97,105,108,101,100,0,82,78,71,32,111,117,116,112,117,116,32,100,111,101,115,32,110,111,116,32,109,97,116,99,104,32,107,110,111,119,110,32,118,97,108,117,101,0,102,111,114,107,32,100,101,116,101,99,116,105,111,110,32,102,97,105,108,101,100,0,114,97,110,100,111,109,0,75,65,84,0,102,97,105,108,101,100,32,116,111,32,114,101,108,101,97,115,101,32,116,104,101,32,83,121,115,116,101,109,32,82,78,71,32,108,111,99,107,58,32,37,115,10,0,102,97,105,108,101,100,32,116,111,32,97,99,113,117,105,114,101,32,116,104,101,32,83,121,115,116,101,109,32,82,78,71,32,108,111,99,107,58,32,37,115,10,0,98,117,102,102,101,114,0,114,97,110,100,111,109,45,115,121,115,116,101,109,46,99,0,103,101,116,95,114,97,110,100,111,109,0,101,114,114,111,114,32,114,101,97,100,105,110,103,32,114,97,110,100,111,109,32,102,114,111,109,32,115,121,115,116,101,109,32,82,78,71,32,40,114,99,61,37,100,41,10,0,115,121,115,116,101,109,95,114,110,103,95,105,115,95,108,111,99,107,101,100,0,114,101,97,100,95,99,98,0,114,101,97,100,95,99,98,95,98,117,102,102,101,114,0,47,100,101,118,47,114,97,110,100,111,109,0,47,100,101,118,47,117,114,97,110,100,111,109,0,110,101,101,100,95,101,110,116,114,111,112,121,0,115,101,108,101,99,116,40,41,32,101,114,114,111,114,58,32,37,115,10,0,98,111,103,117,115,32,114,101,97,100,32,102,114,111,109,32,114,97,110,100,111,109,32,100,101,118,105,99,101,32,40,110,61,37,100,41,10,0,114,101,97,100,32,101,114,114,111,114,32,111,110,32,114,97,110,100,111,109,32,100,101,118,105,99,101,58,32,37,115,10,0,111,112,101,110,95,100,101,118,95,114,97,110,100,111,109,0,119,97,105,116,95,100,101,118,95,114,97,110,100,111,109,0,99,97,110,39,116,32,111,112,101,110,32,37,115,58,32,37,115,10,0,101,114,114,111,114,32,115,101,116,116,105,110,103,32,70,68,95,67,76,79,69,88,69,67,32,111,110,32,102,100,32,37,100,58,32,37,115,10,0,99,104,111,111,115,105,110,103,32,97,32,114,97,110,100,111,109,32,107,32,111,102,32,37,117,32,98,105,116,115,32,97,116,32,115,101,99,108,101,118,101,108,32,37,100,10,0,9,107,32,116,111,111,32,108,97,114,103,101,32,45,32,97,103,97,105,110,10,0,9,107,32,105,115,32,122,101,114,111,32,45,32,97,103,97,105,110,10,0,1,0,101,99,100,115,97,32,115,105,103,110,32,104,97,115,104,32,32,0,101,99,100,115,97,32,115,105,103,110,32,114,101,115,117,108,116,32,114,32,0,101,99,100,115,97,32,115,105,103,110,32,114,101,115,117,108,116,32,115,32,0,103,111,115,116,32,115,105,103,110,32,104,97,115,104,32,32,0,101,99,99,32,115,105,103,110,58,32,70,97,105,108,101,100,32,116,111,32,103,101,116,32,97,102,102,105,110,101,32,99,111,111,114,100,105,110,97,116,101,115,10,0,103,111,115,116,32,115,105,103,110,32,114,101,115,117,108,116,32,114,32,0,103,111,115,116,32,115,105,103,110,32,114,101,115,117,108,116,32,115,32,0,101,99,99,32,118,101,114,105,102,121,58,32,82,101,106,101,99,116,101,100,10,0,101,99,99,32,118,101,114,105,102,121,58,32,70,97,105,108,101,100,32,116,111,32,103,101,116,32,97,102,102,105,110,101,32,99,111,111,114,100,105,110,97,116,101,115,10,0,32,32,32,32,32,120,0,32,32,32,32,32,114,0,32,32,32,32,32,115,0,101,99,99,32,118,101,114,105,102,121,58,32,78,111,116,32,118,101,114,105,102,105,101,100,10,0,101,99,99,32,118,101,114,105,102,121,58,32,65,99,99,101,112,116,101,100,10,0,33,34,108,111,99,107,32,65,66,73,32,118,101,114,115,105,111,110,34,0,112,111,115,105,120,45,108,111,99,107,46,99,0,103,101,116,95,108,111,99,107,95,111,98,106,101,99,116,0,33,115,116,114,101,97,109,45,62,102,108,97,103,115,46,119,114,105,116,105,110,103,0,101,115,116,114,101,97,109,46,99,0,101,115,95,101,109,112,116,121,0,115,116,114,101,97,109,45,62,102,108,97,103,115,46,119,114,105,116,105,110,103,0,101,115,95,102,108,117,115,104,0,83,117,99,99,101,115,115,0,71,101,110,101,114,97,108,32,101,114,114,111,114,0,85,110,107,110,111,119,110,32,112,97,99,107,101,116,0,85,110,107,110,111,119,110,32,118,101,114,115,105,111,110,32,105,110,32,112,97,99,107,101,116,0,73,110,118,97,108,105,100,32,112,117,98,108,105,99,32,107,101,121,32,97,108,103,111,114,105,116,104,109,0,73,110,118,97,108,105,100,32,100,105,103,101,115,116,32,97,108,103,111,114,105,116,104,109,0,66,97,100,32,112,117,98,108,105,99,32,107,101,121,0,66,97,100,32,115,101,99,114,101,116,32,107,101,121,0,66,97,100,32,115,105,103,110,97,116,117,114,101,0,78,111,32,112,117,98,108,105,99,32,107,101,121,0,67,104,101,99,107,115,117,109,32,101,114,114,111,114,0,66,97,100,32,112,97,115,115,112,104,114,97,115,101,0,73,110,118,97,108,105,100,32,99,105,112,104,101,114,32,97,108,103,111,114,105,116,104,109,0,75,101,121,114,105,110,103,32,111,112,101,110,0,73,110,118,97,108,105,100,32,112,97,99,107,101,116,0,73,110,118,97,108,105,100,32,97,114,109,111,114,0,78,111,32,117,115,101,114,32,73,68,0,78,111,32,115,101,99,114,101,116,32,107,101,121,0,87,114,111,110,103,32,115,101,99,114,101,116,32,107,101,121,32,117,115,101,100,0,66,97,100,32,115,101,115,115,105,111,110,32,107,101,121,0,85,110,107,110,111,119,110,32,99,111,109,112,114,101,115,115,105,111,110,32,97,108,103,111,114,105,116,104,109,0,78,117,109,98,101,114,32,105,115,32,110,111,116,32,112,114,105,109,101,0,73,110,118,97,108,105,100,32,101,110,99,111,100,105,110,103,32,109,101,116,104,111,100,0,73,110,118,97,108,105,100,32,101,110,99,114,121,112,116,105,111,110,32,115,99,104,101,109,101,0,73,110,118,97,108,105,100,32,115,105,103,110,97,116,117,114,101,32,115,99,104,101,109,101,0,73,110,118,97,108,105,100,32,97,116,116,114,105,98,117,116,101,0,78,111,32,118,97,108,117,101,0,78,111,116,32,102,111,117,110,100,0,86,97,108,117,101,32,110,111,116,32,102,111,117,110,100,0,83,121,110,116,97,120,32,101,114,114,111,114,0,66,97,100,32,77,80,73,32,118,97,108,117,101,0,73,110,118,97,108,105,100,32,112,97,115,115,112,104,114,97,115,101,0,73,110,118,97,108,105,100,32,115,105,103,110,97,116,117,114,101,32,99,108,97,115,115,0,82,101,115,111,117,114,99,101,115,32,101,120,104,97,117,115,116,101,100,0,73,110,118,97,108,105,100,32,107,101,121,114,105,110,103,0,84,114,117,115,116,32,68,66,32,101,114,114,111,114,0,66,97,100,32,99,101,114,116,105,102,105,99,97,116,101,0,73,110,118,97,108,105,100,32,117,115,101,114,32,73,68,0,85,110,101,120,112,101,99,116,101,100,32,101,114,114,111,114,0,84,105,109,101,32,99,111,110,102,108,105,99,116,0,75,101,121,115,101,114,118,101,114,32,101,114,114,111,114,0,87,114,111,110,103,32,112,117,98,108,105,99,32,107,101,121,32,97,108,103,111,114,105,116,104,109,0,84,114,105,98,117,116,101,32,116,111,32,68,46,32,65,46,0,87,101,97,107,32,101,110,99,114,121,112,116,105,111,110,32,107,101,121,0,73,110,118,97,108,105,100,32,107,101,121,32,108,101,110,103,116,104,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,83,121,110,116,97,120,32,101,114,114,111,114,32,105,110,32,85,82,73,0,73,110,118,97,108,105,100,32,85,82,73,0,78,101,116,119,111,114,107,32,101,114,114,111,114,0,85,110,107,110,111,119,110,32,104,111,115,116,0,83,101,108,102,116,101,115,116,32,102,97,105,108,101,100,0,68,97,116,97,32,110,111,116,32,101,110,99,114,121,112,116,101,100,0,68,97,116,97,32,110,111,116,32,112,114,111,99,101,115,115,101,100,0,85,110,117,115,97,98,108,101,32,112,117,98,108,105,99,32,107,101,121,0,85,110,117,115,97,98,108,101,32,115,101,99,114,101,116,32,107,101,121,0,73,110,118,97,108,105,100,32,118,97,108,117,101,0,66,97,100,32,99,101,114,116,105,102,105,99,97,116,101,32,99,104,97,105,110,0,77,105,115,115,105,110,103,32,99,101,114,116,105,102,105,99,97,116,101,0,78,111,32,100,97,116,97,0,66,117,103,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,73,110,118,97,108,105,100,32,111,112,101,114,97,116,105,111,110,32,99,111,100,101,0,84,105,109,101,111,117,116,0,73,110,116,101,114,110,97,108,32,101,114,114,111,114,0,69,79,70,32,40,103,99,114,121,112,116,41,0,73,110,118,97,108,105,100,32,111,98,106,101,99,116,0,80,114,111,118,105,100,101,100,32,111,98,106,101,99,116,32,105,115,32,116,111,111,32,115,104,111,114,116,0,80,114,111,118,105,100,101,100,32,111,98,106,101,99,116,32,105,115,32,116,111,111,32,108,97,114,103,101,0,77,105,115,115,105,110,103,32,105,116,101,109,32,105,110,32,111,98,106,101,99,116,0,78,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,67,111,110,102,108,105,99,116,105,110,103,32,117,115,101,0,73,110,118,97,108,105,100,32,99,105,112,104,101,114,32,109,111,100,101,0,73,110,118,97,108,105,100,32,102,108,97,103,0,73,110,118,97,108,105,100,32,104,97,110,100,108,101,0,82,101,115,117,108,116,32,116,114,117,110,99,97,116,101,100,0,73,110,99,111,109,112,108,101,116,101,32,108,105,110,101,0,73,110,118,97,108,105,100,32,114,101,115,112,111,110,115,101,0,78,111,32,97,103,101,110,116,32,114,117,110,110,105,110,103,0,65,103,101,110,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,100,97,116,97,0,85,110,115,112,101,99,105,102,105,99,32,65,115,115,117,97,110,32,115,101,114,118,101,114,32,102,97,117,108,116,0,71,101,110,101,114,97,108,32,65,115,115,117,97,110,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,115,101,115,115,105,111,110,32,107,101,121,0,73,110,118,97,108,105,100,32,83,45,101,120,112,114,101,115,115,105,111,110,0,85,110,115,117,112,112,111,114,116,101,100,32,97,108,103,111,114,105,116,104,109,0,78,111,32,112,105,110,101,110,116,114,121,0,112,105,110,101,110,116,114,121,32,101,114,114,111,114,0,66,97,100,32,80,73,78,0,73,110,118,97,108,105,100,32,110,97,109,101,0,66,97,100,32,100,97,116,97,0,73,110,118,97,108,105,100,32,112,97,114,97,109,101,116,101,114,0,87,114,111,110,103,32,99,97,114,100,0,78,111,32,100,105,114,109,110,103,114,0,100,105,114,109,110,103,114,32,101,114,114,111,114,0,67,101,114,116,105,102,105,99,97,116,101,32,114,101,118,111,107,101,100,0,78,111,32,67,82,76,32,107,110,111,119,110,0,67,82,76,32,116,111,111,32,111,108,100,0,76,105,110,101,32,116,111,111,32,108,111,110,103,0,78,111,116,32,116,114,117,115,116,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,108,101,100,0,66,97,100,32,67,65,32,99,101,114,116,105,102,105,99,97,116,101,0,67,101,114,116,105,102,105,99,97,116,101,32,101,120,112,105,114,101,100,0,67,101,114,116,105,102,105,99,97,116,101,32,116,111,111,32,121,111,117,110,103,0,85,110,115,117,112,112,111,114,116,101,100,32,99,101,114,116,105,102,105,99,97,116,101,0,85,110,107,110,111,119,110,32,83,45,101,120,112,114,101,115,115,105,111,110,0,85,110,115,117,112,112,111,114,116,101,100,32,112,114,111,116,101,99,116,105,111,110,0,67,111,114,114,117,112,116,101,100,32,112,114,111,116,101,99,116,105,111,110,0,65,109,98,105,103,117,111,117,115,32,110,97,109,101,0,67,97,114,100,32,101,114,114,111,114,0,67,97,114,100,32,114,101,115,101,116,32,114,101,113,117,105,114,101,100,0,67,97,114,100,32,114,101,109,111,118,101,100,0,73,110,118,97,108,105,100,32,99,97,114,100,0,67,97,114,100,32,110,111,116,32,112,114,101,115,101,110,116,0,78,111,32,80,75,67,83,49,53,32,97,112,112,108,105,99,97,116,105,111,110,0,78,111,116,32,99,111,110,102,105,114,109,101,100,0,67,111,110,102,105,103,117,114,97,116,105,111,110,32,101,114,114,111,114,0,78,111,32,112,111,108,105,99,121,32,109,97,116,99,104,0,73,110,118,97,108,105,100,32,105,110,100,101,120,0,73,110,118,97,108,105,100,32,73,68,0,78,111,32,83,109,97,114,116,67,97,114,100,32,100,97,101,109,111,110,0,83,109,97,114,116,67,97,114,100,32,100,97,101,109,111,110,32,101,114,114,111,114,0,85,110,115,117,112,112,111,114,116,101,100,32,112,114,111,116,111,99,111,108,0,66,97,100,32,80,73,78,32,109,101,116,104,111,100,0,67,97,114,100,32,110,111,116,32,105,110,105,116,105,97,108,105,122,101,100,0,85,110,115,117,112,112,111,114,116,101,100,32,111,112,101,114,97,116,105,111,110,0,87,114,111,110,103,32,107,101,121,32,117,115,97,103,101,0,78,111,116,104,105,110,103,32,102,111,117,110,100,0,87,114,111,110,103,32,98,108,111,98,32,116,121,112,101,0,77,105,115,115,105,110,103,32,118,97,108,117,101,0,72,97,114,100,119,97,114,101,32,112,114,111,98,108,101,109,0,80,73,78,32,98,108,111,99,107,101,100,0,67,111,110,100,105,116,105,111,110,115,32,111,102,32,117,115,101,32,110,111,116,32,115,97,116,105,115,102,105,101,100,0,80,73,78,115,32,97,114,101,32,110,111,116,32,115,121,110,99,101,100,0,73,110,118,97,108,105,100,32,67,82,76,0,66,69,82,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,66,69,82,0,69,108,101,109,101,110,116,32,110,111,116,32,102,111,117,110,100,0,73,100,101,110,116,105,102,105,101,114,32,110,111,116,32,102,111,117,110,100,0,73,110,118,97,108,105,100,32,116,97,103,0,73,110,118,97,108,105,100,32,108,101,110,103,116,104,0,73,110,118,97,108,105,100,32,107,101,121,32,105,110,102,111,0,85,110,101,120,112,101,99,116,101,100,32,116,97,103,0,78,111,116,32,68,69,82,32,101,110,99,111,100,101,100,0,78,111,32,67,77,83,32,111,98,106,101,99,116,0,73,110,118,97,108,105,100,32,67,77,83,32,111,98,106,101,99,116,0,85,110,107,110,111,119,110,32,67,77,83,32,111,98,106,101,99,116,0,85,110,115,117,112,112,111,114,116,101,100,32,67,77,83,32,111,98,106,101,99,116,0,85,110,115,117,112,112,111,114,116,101,100,32,101,110,99,111,100,105,110,103,0,85,110,115,117,112,112,111,114,116,101,100,32,67,77,83,32,118,101,114,115,105,111,110,0,85,110,107,110,111,119,110,32,97,108,103,111,114,105,116,104,109,0,73,110,118,97,108,105,100,32,99,114,121,112,116,111,32,101,110,103,105,110,101,0,80,117,98,108,105,99,32,107,101,121,32,110,111,116,32,116,114,117,115,116,101,100,0,68,101,99,114,121,112,116,105,111,110,32,102,97,105,108,101,100,0,75,101,121,32,101,120,112,105,114,101,100,0,83,105,103,110,97,116,117,114,101,32,101,120,112,105,114,101,100,0,69,110,99,111,100,105,110,103,32,112,114,111,98,108,101,109,0,73,110,118,97,108,105,100,32,115,116,97,116,101,0,68,117,112,108,105,99,97,116,101,100,32,118,97,108,117,101,0,77,105,115,115,105,110,103,32,97,99,116,105,111,110,0,65,83,78,46,49,32,109,111,100,117,108,101,32,110,111,116,32,102,111,117,110,100,0,73,110,118,97,108,105,100,32,79,73,68,32,115,116,114,105,110,103,0,73,110,118,97,108,105,100,32,116,105,109,101,0,73,110,118,97,108,105,100,32,67,82,76,32,111,98,106,101,99,116,0,85,110,115,117,112,112,111,114,116,101,100,32,67,82,76,32,118,101,114,115,105,111,110,0,73,110,118,97,108,105,100,32,99,101,114,116,105,102,105,99,97,116,101,32,111,98,106,101,99,116,0,85,110,107,110,111,119,110,32,110,97,109,101,0,65,32,108,111,99,97,108,101,32,102,117,110,99,116,105,111,110,32,102,97,105,108,101,100,0,78,111,116,32,108,111,99,107,101,100,0,80,114,111,116,111,99,111,108,32,118,105,111,108,97,116,105,111,110,0,73,110,118,97,108,105,100,32,77,65,67,0,73,110,118,97,108,105,100,32,114,101,113,117,101,115,116,0,85,110,107,110,111,119,110,32,101,120,116,101,110,115,105,111,110,0,85,110,107,110,111,119,110,32,99,114,105,116,105,99,97,108,32,101,120,116,101,110,115,105,111,110,0,76,111,99,107,101,100,0,85,110,107,110,111,119,110,32,111,112,116,105,111,110,0,85,110,107,110,111,119,110,32,99,111,109,109,97,110,100,0,78,111,116,32,111,112,101,114,97,116,105,111,110,97,108,0,78,111,32,112,97,115,115,112,104,114,97,115,101,32,103,105,118,101,110,0,78,111,32,80,73,78,32,103,105,118,101,110,0,78,111,116,32,101,110,97,98,108,101,100,0,78,111,32,99,114,121,112,116,111,32,101,110,103,105,110,101,0,77,105,115,115,105,110,103,32,107,101,121,0,84,111,111,32,109,97,110,121,32,111,98,106,101,99,116,115,0,76,105,109,105,116,32,114,101,97,99,104,101,100,0,78,111,116,32,105,110,105,116,105,97,108,105,122,101,100,0,77,105,115,115,105,110,103,32,105,115,115,117,101,114,32,99,101,114,116,105,102,105,99,97,116,101,0,78,111,32,107,101,121,115,101,114,118,101,114,32,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,101,108,108,105,112,116,105,99,32,99,117,114,118,101,0,85,110,107,110,111,119,110,32,101,108,108,105,112,116,105,99,32,99,117,114,118,101,0,68,117,112,108,105,99,97,116,101,100,32,107,101,121,0,65,109,98,105,103,117,111,117,115,32,114,101,115,117,108,116,0,78,111,32,99,114,121,112,116,111,32,99,111,110,116,101,120,116,0,87,114,111,110,103,32,99,114,121,112,116,111,32,99,111,110,116,101,120,116,0,66,97,100,32,99,114,121,112,116,111,32,99,111,110,116,101,120,116,0,67,111,110,102,108,105,99,116,32,105,110,32,116,104,101,32,99,114,121,112,116,111,32,99,111,110,116,101,120,116,0,66,114,111,107,101,110,32,112,117,98,108,105,99,32,107,101,121,0,66,114,111,107,101,110,32,115,101,99,114,101,116,32,107,101,121,0,73,110,118,97,108,105,100,32,77,65,67,32,97,108,103,111,114,105,116,104,109,0,79,112,101,114,97,116,105,111,110,32,102,117,108,108,121,32,99,97,110,99,101,108,108,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,121,101,116,32,102,105,110,105,115,104,101,100,0,66,117,102,102,101,114,32,116,111,111,32,115,104,111,114,116,0,73,110,118,97,108,105,100,32,108,101,110,103,116,104,32,115,112,101,99,105,102,105,101,114,32,105,110,32,83,45,101,120,112,114,101,115,115,105,111,110,0,83,116,114,105,110,103,32,116,111,111,32,108,111,110,103,32,105,110,32,83,45,101,120,112,114,101,115,115,105,111,110,0,85,110,109,97,116,99,104,101,100,32,112,97,114,101,110,116,104,101,115,101,115,32,105,110,32,83,45,101,120,112,114,101,115,115,105,111,110,0,83,45,101,120,112,114,101,115,115,105,111,110,32,110,111,116,32,99,97,110,111,110,105,99,97,108,0,66,97,100,32,99,104,97,114,97,99,116,101,114,32,105,110,32,83,45,101,120,112,114,101,115,115,105,111,110,0,66,97,100,32,113,117,111,116,97,116,105,111,110,32,105,110,32,83,45,101,120,112,114,101,115,115,105,111,110,0,90,101,114,111,32,112,114,101,102,105,120,32,105,110,32,83,45,101,120,112,114,101,115,115,105,111,110,0,78,101,115,116,101,100,32,100,105,115,112,108,97,121,32,104,105,110,116,115,32,105,110,32,83,45,101,120,112,114,101,115,115,105,111,110,0,85,110,109,97,116,99,104,101,100,32,100,105,115,112,108,97,121,32,104,105,110,116,115,0,85,110,101,120,112,101,99,116,101,100,32,114,101,115,101,114,118,101,100,32,112,117,110,99,116,117,97,116,105,111,110,32,105,110,32,83,45,101,120,112,114,101,115,115,105,111,110,0,66,97,100,32,104,101,120,97,100,101,99,105,109,97,108,32,99,104,97,114,97,99,116,101,114,32,105,110,32,83,45,101,120,112,114,101,115,115,105,111,110,0,79,100,100,32,104,101,120,97,100,101,99,105,109,97,108,32,110,117,109,98,101,114,115,32,105,110,32,83,45,101,120,112,114,101,115,115,105,111,110,0,66,97,100,32,111,99,116,97,108,32,99,104,97,114,97,99,116,101,114,32,105,110,32,83,45,101,120,112,114,101,115,115,105,111,110,0,76,101,103,97,99,121,32,107,101,121,0,82,101,113,117,101,115,116,32,116,111,111,32,115,104,111,114,116,0,82,101,113,117,101,115,116,32,116,111,111,32,108,111,110,103,0,79,98,106,101,99,116,32,105,115,32,105,110,32,116,101,114,109,105,110,97,116,105,111,110,32,115,116,97,116,101,0,78,111,32,99,101,114,116,105,102,105,99,97,116,101,32,99,104,97,105,110,0,67,101,114,116,105,102,105,99,97,116,101,32,105,115,32,116,111,111,32,108,97,114,103,101,0,73,110,118,97,108,105,100,32,114,101,99,111,114,100,0,84,104,101,32,77,65,67,32,100,111,101,115,32,110,111,116,32,118,101,114,105,102,121,0,85,110,101,120,112,101,99,116,101,100,32,109,101,115,115,97,103,101,0,67,111,109,112,114,101,115,115,105,111,110,32,111,114,32,100,101,99,111,109,112,114,101,115,115,105,111,110,32,102,97,105,108,101,100,0,65,32,99,111,117,110,116,101,114,32,119,111,117,108,100,32,119,114,97,112,0,70,97,116,97,108,32,97,108,101,114,116,32,109,101,115,115,97,103,101,32,114,101,99,101,105,118,101,100,0,78,111,32,99,105,112,104,101,114,32,97,108,103,111,114,105,116,104,109,0,77,105,115,115,105,110,103,32,99,108,105,101,110,116,32,99,101,114,116,105,102,105,99,97,116,101,0,67,108,111,115,101,32,110,111,116,105,102,105,99,97,116,105,111,110,32,114,101,99,101,105,118,101,100,0,84,105,99,107,101,116,32,101,120,112,105,114,101,100,0,66,97,100,32,116,105,99,107,101,116,0,85,110,107,110,111,119,110,32,105,100,101,110,116,105,116,121,0,66,97,100,32,99,101,114,116,105,102,105,99,97,116,101,32,109,101,115,115,97,103,101,32,105,110,32,104,97,110,100,115,104,97,107,101,0,66,97,100,32,99,101,114,116,105,102,105,99,97,116,101,32,114,101,113,117,101,115,116,32,109,101,115,115,97,103,101,32,105,110,32,104,97,110,100,115,104,97,107,101,0,66,97,100,32,99,101,114,116,105,102,105,99,97,116,101,32,118,101,114,105,102,121,32,109,101,115,115,97,103,101,32,105,110,32,104,97,110,100,115,104,97,107,101,0,66,97,100,32,99,104,97,110,103,101,32,99,105,112,104,101,114,32,109,101,115,115,115,97,103,101,32,105,110,32,104,97,110,100,115,104,97,107,101,0,66,97,100,32,99,108,105,101,110,116,32,104,101,108,108,111,32,109,101,115,115,97,103,101,32,105,110,32,104,97,110,100,115,104,97,107,101,0,66,97,100,32,115,101,114,118,101,114,32,104,101,108,108,111,32,109,101,115,115,97,103,101,32,105,110,32,104,97,110,100,115,104,97,107,101,0,66,97,100,32,115,101,114,118,101,114,32,104,101,108,108,111,32,100,111,110,101,32,109,101,115,115,97,103,101,32,105,110,32,104,97,110,115,104,97,107,101,0,66,97,100,32,102,105,110,105,115,104,101,100,32,109,101,115,115,97,103,101,32,105,110,32,104,97,110,100,115,104,97,107,101,0,66,97,100,32,115,101,114,118,101,114,32,107,101,121,32,101,120,99,104,97,110,103,101,32,109,101,115,115,97,103,101,32,105,110,32,104,97,110,100,115,104,97,107,101,0,66,97,100,32,99,108,105,101,110,116,32,107,101,121,32,101,120,99,104,97,110,103,101,32,109,101,115,115,97,103,101,32,105,110,32,104,97,110,100,115,104,97,107,101,0,66,111,103,117,115,32,115,116,114,105,110,103,0,70,111,114,98,105,100,100,101,110,0,75,101,121,32,100,105,115,97,98,108,101,100,0,78,111,116,32,112,111,115,115,105,98,108,101,32,119,105,116,104,32,97,32,99,97,114,100,32,98,97,115,101,100,32,107,101,121,0,73,110,118,97,108,105,100,32,108,111,99,107,32,111,98,106,101,99,116,0,71,101,110,101,114,97,108,32,73,80,67,32,101,114,114,111,114,0,73,80,67,32,97,99,99,101,112,116,32,99,97,108,108,32,102,97,105,108,101,100,0,73,80,67,32,99,111,110,110,101,99,116,32,99,97,108,108,32,102,97,105,108,101,100,0,73,110,118,97,108,105,100,32,73,80,67,32,114,101,115,112,111,110,115,101,0,73,110,118,97,108,105,100,32,118,97,108,117,101,32,112,97,115,115,101,100,32,116,111,32,73,80,67,0,73,110,99,111,109,112,108,101,116,101,32,108,105,110,101,32,112,97,115,115,101,100,32,116,111,32,73,80,67,0,76,105,110,101,32,112,97,115,115,101,100,32,116,111,32,73,80,67,32,116,111,111,32,108,111,110,103,0,78,101,115,116,101,100,32,73,80,67,32,99,111,109,109,97,110,100,115,0,78,111,32,100,97,116,97,32,99,97,108,108,98,97,99,107,32,105,110,32,73,80,67,0,78,111,32,105,110,113,117,105,114,101,32,99,97,108,108,98,97,99,107,32,105,110,32,73,80,67,0,78,111,116,32,97,110,32,73,80,67,32,115,101,114,118,101,114,0,78,111,116,32,97,110,32,73,80,67,32,99,108,105,101,110,116,0,80,114,111,98,108,101,109,32,115,116,97,114,116,105,110,103,32,73,80,67,32,115,101,114,118,101,114,0,73,80,67,32,114,101,97,100,32,101,114,114,111,114,0,73,80,67,32,119,114,105,116,101,32,101,114,114,111,114,0,84,111,111,32,109,117,99,104,32,100,97,116,97,32,102,111,114,32,73,80,67,32,108,97,121,101,114,0,85,110,101,120,112,101,99,116,101,100,32,73,80,67,32,99,111,109,109,97,110,100,0,85,110,107,110,111,119,110,32,73,80,67,32,99,111,109,109,97,110,100,0,73,80,67,32,115,121,110,116,97,120,32,101,114,114,111,114,0,73,80,67,32,99,97,108,108,32,104,97,115,32,98,101,101,110,32,99,97,110,99,101,108,108,101,100,0,78,111,32,105,110,112,117,116,32,115,111,117,114,99,101,32,102,111,114,32,73,80,67,0,78,111,32,111,117,116,112,117,116,32,115,111,117,114,99,101,32,102,111,114,32,73,80,67,0,73,80,67,32,112,97,114,97,109,101,116,101,114,32,101,114,114,111,114,0,85,110,107,110,111,119,110,32,73,80,67,32,105,110,113,117,105,114,101,0,71,101,110,101,114,97,108,32,76,68,65,80,32,101,114,114,111,114,0,71,101,110,101,114,97,108,32,76,68,65,80,32,97,116,116,114,105,98,117,116,101,32,101,114,114,111,114,0,71,101,110,101,114,97,108,32,76,68,65,80,32,110,97,109,101,32,101,114,114,111,114,0,71,101,110,101,114,97,108,32,76,68,65,80,32,115,101,99,117,114,105,116,121,32,101,114,114,111,114,0,71,101,110,101,114,97,108,32,76,68,65,80,32,115,101,114,118,105,99,101,32,101,114,114,111,114,0,71,101,110,101,114,97,108,32,76,68,65,80,32,117,112,100,97,116,101,32,101,114,114,111,114,0,69,120,112,101,114,105,109,101,110,116,97,108,32,76,68,65,80,32,101,114,114,111,114,32,99,111,100,101,0,80,114,105,118,97,116,101,32,76,68,65,80,32,101,114,114,111,114,32,99,111,100,101,0,79,116,104,101,114,32,103,101,110,101,114,97,108,32,76,68,65,80,32,101,114,114,111,114,0,76,68,65,80,32,99,111,110,110,101,99,116,105,110,103,32,102,97,105,108,101,100,32,40,88,41,0,76,68,65,80,32,114,101,102,101,114,114,97,108,32,108,105,109,105,116,32,101,120,99,101,101,100,101,100,0,76,68,65,80,32,99,108,105,101,110,116,32,108,111,111,112,0,78,111,32,76,68,65,80,32,114,101,115,117,108,116,115,32,114,101,116,117,114,110,101,100,0,76,68,65,80,32,99,111,110,116,114,111,108,32,110,111,116,32,102,111,117,110,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,76,68,65,80,0,76,68,65,80,32,99,111,110,110,101,99,116,32,101,114,114,111,114,0,79,117,116,32,111,102,32,109,101,109,111,114,121,32,105,110,32,76,68,65,80,0,66,97,100,32,112,97,114,97,109,101,116,101,114,32,116,111,32,97,110,32,76,68,65,80,32,114,111,117,116,105,110,101,0,85,115,101,114,32,99,97,110,99,101,108,108,101,100,32,76,68,65,80,32,111,112,101,114,97,116,105,111,110,0,66,97,100,32,76,68,65,80,32,115,101,97,114,99,104,32,102,105,108,116,101,114,0,85,110,107,110,111,119,110,32,76,68,65,80,32,97,117,116,104,101,110,116,105,99,97,116,105,111,110,32,109,101,116,104,111,100,0,84,105,109,101,111,117,116,32,105,110,32,76,68,65,80,0,76,68,65,80,32,100,101,99,111,100,105,110,103,32,101,114,114,111,114,0,76,68,65,80,32,101,110,99,111,100,105,110,103,32,101,114,114,111,114,0,76,68,65,80,32,108,111,99,97,108,32,101,114,114,111,114,0,67,97,110,110,111,116,32,99,111,110,116,97,99,116,32,76,68,65,80,32,115,101,114,118,101,114,0,76,68,65,80,32,115,117,99,99,101,115,115,0,76,68,65,80,32,111,112,101,114,97,116,105,111,110,115,32,101,114,114,111,114,0,76,68,65,80,32,112,114,111,116,111,99,111,108,32,101,114,114,111,114,0,84,105,109,101,32,108,105,109,105,116,32,101,120,99,101,101,100,101,100,32,105,110,32,76,68,65,80,0,83,105,122,101,32,108,105,109,105,116,32,101,120,99,101,101,100,101,100,32,105,110,32,76,68,65,80,0,76,68,65,80,32,99,111,109,112,97,114,101,32,102,97,108,115,101,0,76,68,65,80,32,99,111,109,112,97,114,101,32,116,114,117,101,0,76,68,65,80,32,97,117,116,104,101,110,116,105,99,97,116,105,111,110,32,109,101,116,104,111,100,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,116,114,111,110,103,40,101,114,41,32,76,68,65,80,32,97,117,116,104,101,110,116,105,99,97,116,105,111,110,32,114,101,113,117,105,114,101,100,0,80,97,114,116,105,97,108,32,76,68,65,80,32,114,101,115,117,108,116,115,43,114,101,102,101,114,114,97,108,32,114,101,99,101,105,118,101,100,0,76,68,65,80,32,114,101,102,101,114,114,97,108,0,65,100,109,105,110,105,115,116,114,97,116,105,118,101,32,76,68,65,80,32,108,105,109,105,116,32,101,120,99,101,101,100,101,100,0,67,114,105,116,105,99,97,108,32,76,68,65,80,32,101,120,116,101,110,115,105,111,110,32,105,115,32,117,110,97,118,97,105,108,97,98,108,101,0,67,111,110,102,105,100,101,110,116,105,97,108,105,116,121,32,114,101,113,117,105,114,101,100,32,98,121,32,76,68,65,80,0,76,68,65,80,32,83,65,83,76,32,98,105,110,100,32,105,110,32,112,114,111,103,114,101,115,115,0,78,111,32,115,117,99,104,32,76,68,65,80,32,97,116,116,114,105,98,117,116,101,0,85,110,100,101,102,105,110,101,100,32,76,68,65,80,32,97,116,116,114,105,98,117,116,101,32,116,121,112,101,0,73,110,97,112,112,114,111,112,114,105,97,116,101,32,109,97,116,99,104,105,110,103,32,105,110,32,76,68,65,80,0,67,111,110,115,116,114,97,105,110,116,32,118,105,111,108,97,116,105,111,110,32,105,110,32,76,68,65,80,0,76,68,65,80,32,116,121,112,101,32,111,114,32,118,97,108,117,101,32,101,120,105,115,116,115,0,73,110,118,97,108,105,100,32,115,121,110,116,97,120,32,105,110,32,76,68,65,80,0,78,111,32,115,117,99,104,32,76,68,65,80,32,111,98,106,101,99,116,0,76,68,65,80,32,97,108,105,97,115,32,112,114,111,98,108,101,109,0,73,110,118,97,108,105,100,32,68,78,32,115,121,110,116,97,120,32,105,110,32,76,68,65,80,0,76,68,65,80,32,101,110,116,114,121,32,105,115,32,97,32,108,101,97,102,0,76,68,65,80,32,97,108,105,97,115,32,100,101,114,101,102,101,114,101,110,99,105,110,103,32,112,114,111,98,108,101,109,0,76,68,65,80,32,112,114,111,120,121,32,97,117,116,104,111,114,105,122,97,116,105,111,110,32,102,97,105,108,117,114,101,32,40,88,41,0,73,110,97,112,112,114,111,112,114,105,97,116,101,32,76,68,65,80,32,97,117,116,104,101,110,116,105,99,97,116,105,111,110,0,73,110,118,97,108,105,100,32,76,68,65,80,32,99,114,101,100,101,110,116,105,97,108,115,0,73,110,115,117,102,102,105,99,105,101,110,116,32,97,99,99,101,115,115,32,102,111,114,32,76,68,65,80,0,76,68,65,80,32,115,101,114,118,101,114,32,105,115,32,98,117,115,121,0,76,68,65,80,32,115,101,114,118,101,114,32,105,115,32,117,110,97,118,97,105,108,97,98,108,101,0,76,68,65,80,32,115,101,114,118,101,114,32,105,115,32,117,110,119,105,108,108,105,110,103,32,116,111,32,112,101,114,102,111,114,109,0,76,111,111,112,32,100,101,116,101,99,116,101,100,32,98,121,32,76,68,65,80,0,76,68,65,80,32,110,97,109,105,110,103,32,118,105,111,108,97,116,105,111,110,0,76,68,65,80,32,111,98,106,101,99,116,32,99,108,97,115,115,32,118,105,111,108,97,116,105,111,110,0,76,68,65,80,32,111,112,101,114,97,116,105,111,110,32,110,111,116,32,97,108,108,111,119,101,100,32,111,110,32,110,111,110,45,108,101,97,102,0,76,68,65,80,32,111,112,101,114,97,116,105,111,110,32,110,111,116,32,97,108,108,111,119,101,100,32,111,110,32,82,68,78,0,65,108,114,101,97,100,121,32,101,120,105,115,116,115,32,40,76,68,65,80,41,0,67,97,110,110,111,116,32,109,111,100,105,102,121,32,76,68,65,80,32,111,98,106,101,99,116,32,99,108,97,115,115,0,76,68,65,80,32,114,101,115,117,108,116,115,32,116,111,111,32,108,97,114,103,101,0,76,68,65,80,32,111,112,101,114,97,116,105,111,110,32,97,102,102,101,99,116,115,32,109,117,108,116,105,112,108,101,32,68,83,65,115,0,86,105,114,116,117,97,108,32,76,68,65,80,32,108,105,115,116,32,118,105,101,119,32,101,114,114,111,114,0,79,116,104,101,114,32,76,68,65,80,32,101,114,114,111,114,0,82,101,115,111,117,114,99,101,115,32,101,120,104,97,117,115,116,101,100,32,105,110,32,76,67,85,80,0,83,101,99,117,114,105,116,121,32,118,105,111,108,97,116,105,111,110,32,105,110,32,76,67,85,80,0,73,110,118,97,108,105,100,32,100,97,116,97,32,105,110,32,76,67,85,80,0,85,110,115,117,112,112,111,114,116,101,100,32,115,99,104,101,109,101,32,105,110,32,76,67,85,80,0,82,101,108,111,97,100,32,114,101,113,117,105,114,101,100,32,105,110,32,76,67,85,80,0,76,68,65,80,32,99,97,110,99,101,108,108,101,100,0,78,111,32,76,68,65,80,32,111,112,101,114,97,116,105,111,110,32,116,111,32,99,97,110,99,101,108,0,84,111,111,32,108,97,116,101,32,116,111,32,99,97,110,99,101,108,32,76,68,65,80,0,67,97,110,110,111,116,32,99,97,110,99,101,108,32,76,68,65,80,0,76,68,65,80,32,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,0,80,114,111,120,105,101,100,32,97,117,116,104,111,114,105,122,97,116,105,111,110,32,100,101,110,105,101,100,32,98,121,32,76,68,65,80,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,49,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,50,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,51,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,52,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,53,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,54,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,55,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,56,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,57,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,49,48,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,49,49,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,49,50,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+51200);allocate([101,32,49,51,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,49,52,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,49,53,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,49,54,0,83,121,115,116,101,109,32,101,114,114,111,114,32,119,47,111,32,101,114,114,110,111,0,85,110,107,110,111,119,110,32,115,121,115,116,101,109,32,101,114,114,111,114,0,69,110,100,32,111,102,32,102,105,108,101,0,85,110,107,110,111,119,110,32,101,114,114,111,114,32,99,111,100,101,0,97,109,111,117,110,116,46,99,0,84,65,76,69,82,95,97,109,111,117,110,116,95,99,109,112,0,84,65,76,69,82,95,97,109,111,117,110,116,95,115,117,98,116,114,97,99,116,0,84,65,76,69,82,95,97,109,111,117,110,116,95,97,100,100,0,49,46,54,46,49,0,108,105,98,103,99,114,121,112,116,32,118,101,114,115,105,111,110,32,109,105,115,109,97,116,99,104,10,0,70,97,116,97,108,32,101,114,114,111,114,32,105,110,32,108,105,98,103,99,114,121,112,116,58,32,37,115,10,0,99,114,121,112,116,111,46,99,0,65,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,32,97,116,32,37,115,58,37,100,46,10,0,116,97,108,101,114,45,99,111,105,110,45,100,101,114,105,118,97,116,105,111,110,0,84,65,76,69,82,95,115,101,116,117,112,95,102,114,101,115,104,95,99,111,105,110,0,18,17,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,17,34,35,36,17,37,38,39,40,41,42,43,44,17,45,46,47,16,16,48,16,16,16,16,16,16,16,49,50,51,16,52,53,16,16,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,54,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,55,17,17,17,17,56,17,57,58,59,60,61,62,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,63,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,64,65,17,66,67,68,69,70,71,72,73,16,16,16,74,75,76,77,78,16,16,16,79,80,16,16,16,16,81,16,16,16,16,16,16,16,16,16,17,17,17,82,83,16,16,16,16,16,16,16,16,16,16,16,17,17,17,17,84,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,17,85,16,16,16,16,86,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,87,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,88,89,90,91,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,92,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,254,255,255,7,254,255,255,7,0,0,0,0,0,4,32,4,255,255,127,255,255,255,127,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,195,255,3,0,31,80,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,223,60,64,215,255,255,251,255,255,255,255,255,255,255,255,255,191,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,3,252,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,254,255,255,255,127,2,254,255,255,255,255,0,0,0,0,0,255,191,182,0,255,255,255,7,7,0,0,0,255,7,255,255,255,255,255,255,255,254,255,195,255,255,255,255,255,255,255,255,255,255,255,255,239,31,254,225,255,159,0,0,255,255,255,255,255,255,0,224,255,255,255,255,255,255,255,255,255,255,255,255,3,0,255,255,255,255,255,7,48,4,255,255,255,252,255,31,0,0,255,255,255,1,0,0,0,0,0,0,0,0,253,31,0,0,0,0,0,0,240,3,255,127,255,255,255,255,255,255,255,239,255,223,225,255,207,255,254,254,238,159,249,255,255,253,197,227,159,89,128,176,207,255,3,0,238,135,249,255,255,253,109,195,135,25,2,94,192,255,63,0,238,191,251,255,255,253,237,227,191,27,1,0,207,255,0,0,238,159,249,255,255,253,237,227,159,25,192,176,207,255,2,0,236,199,61,214,24,199,255,195,199,29,129,0,192,255,0,0,238,223,253,255,255,253,239,227,223,29,96,3,207,255,0,0,236,223,253,255,255,253,239,227,223,29,96,64,207,255,6,0,236,223,253,255,255,255,255,231,223,93,128,0,207,255,0,252,236,255,127,252,255,255,251,47,127,128,95,255,0,0,12,0,254,255,255,255,255,127,255,7,63,32,255,3,0,0,0,0,150,37,240,254,174,236,255,59,95,32,255,243,0,0,0,0,1,0,0,0,255,3,0,0,255,254,255,255,255,31,254,255,3,255,255,254,255,255,255,31,0,0,0,0,0,0,0,0,255,255,255,255,255,255,127,249,255,3,255,255,231,193,255,255,127,64,255,51,255,255,255,255,191,32,255,255,255,255,255,247,255,255,255,255,255,255,255,255,255,61,127,61,255,255,255,255,255,61,255,255,255,255,61,127,61,255,127,255,255,255,255,255,255,255,61,255,255,255,255,255,255,255,255,135,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,31,0,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,159,255,255,254,255,255,7,255,255,255,255,255,255,255,255,255,199,1,0,255,223,15,0,255,255,15,0,255,255,15,0,255,223,13,0,255,255,255,255,255,255,207,255,255,1,128,16,255,3,0,0,0,0,255,3,255,255,255,255,255,255,255,255,255,255,255,0,255,255,255,255,255,7,255,255,255,255,255,255,255,255,63,0,255,255,255,31,255,15,255,1,192,255,255,255,255,63,31,0,255,255,255,255,255,15,255,255,255,3,255,3,0,0,0,0,255,255,255,15,255,255,255,255,255,255,255,127,254,255,31,0,255,3,255,3,128,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,239,255,239,15,255,3,0,0,0,0,255,255,255,255,255,243,255,255,255,255,255,255,191,255,3,0,255,255,255,255,255,255,63,0,255,227,255,255,255,255,255,63,0,0,0,0,0,0,0,0,0,0,0,0,0,222,111,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,63,63,255,255,255,255,63,63,255,170,255,255,255,63,255,255,255,255,255,255,223,95,220,31,207,15,255,31,220,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,128,0,0,255,31,0,0,0,0,0,0,0,0,0,0,0,0,132,252,47,62,80,189,255,243,224,67,0,0,255,255,255,255,255,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,192,255,255,255,255,255,255,3,0,0,255,255,255,255,255,127,255,255,255,255,255,127,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,31,120,12,0,255,255,255,255,191,32,255,255,255,255,255,255,255,128,0,0,255,255,127,0,127,127,127,127,127,127,127,127,255,255,255,255,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,0,0,0,254,3,62,31,254,255,255,255,255,255,255,255,255,255,127,224,254,255,255,255,255,255,255,255,255,255,255,247,224,255,255,255,255,63,254,255,255,255,255,255,255,255,255,255,255,127,0,0,255,255,255,7,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,63,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,31,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,31,0,0,0,0,0,0,0,0,255,255,255,255,255,63,255,31,255,255,255,15,0,0,255,255,255,255,255,127,240,143,255,255,255,128,255,255,255,255,255,255,255,255,255,255,0,0,0,0,128,255,252,255,255,255,255,255,255,255,255,255,255,255,255,121,15,0,255,7,0,0,0,0,0,0,0,0,0,255,187,247,255,255,255,0,0,0,255,255,255,255,255,255,15,0,255,255,255,255,255,255,255,255,15,0,255,3,0,0,252,8,255,255,255,255,255,7,255,255,255,255,7,0,255,255,255,31,255,255,255,255,255,255,247,255,0,128,255,3,0,0,0,0,255,255,255,255,255,255,127,0,255,63,255,3,255,255,127,4,255,255,255,255,255,255,255,127,5,0,0,56,255,255,60,0,126,126,126,0,127,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,7,255,3,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,15,0,255,255,127,248,255,255,255,255,255,15,255,255,255,255,255,255,255,255,255,255,255,255,255,63,255,255,255,255,255,255,255,255,255,255,255,255,255,3,0,0,0,0,127,0,248,224,255,253,127,95,219,255,255,255,255,255,255,255,255,255,255,255,255,255,3,0,0,0,248,255,255,255,255,255,255,255,255,255,255,255,255,63,0,0,255,255,255,255,255,255,255,255,252,255,255,255,255,255,255,0,0,0,0,0,255,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,31,0,0,255,3,254,255,255,7,254,255,255,7,192,255,255,255,255,255,255,255,255,255,255,127,252,252,252,28,0,0,0,0,255,239,255,255,127,255,255,183,255,63,255,63,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,7,0,0,0,0,0,0,0,0,255,255,255,255,255,255,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,31,255,255,255,255,255,255,1,0,0,0,0,0,255,255,255,127,0,0,255,255,255,7,0,0,0,0,0,0,255,255,255,63,255,255,255,255,15,255,62,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,63,255,3,0,0,0,0,0,0,0,0,0,0,63,253,255,255,255,255,191,145,255,255,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,63,0,255,255,255,3,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,192,0,0,0,0,0,0,0,0,111,240,239,254,255,255,15,0,0,0,0,0,255,255,255,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,63,0,255,255,63,0,255,255,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,63,0,0,0,192,255,0,0,252,255,255,255,255,255,255,1,0,0,255,255,255,1,255,3,255,255,255,255,255,255,199,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,30,0,255,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,63,0,255,3,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,31,0,255,255,255,255,255,127,0,0,248,255,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,223,100,222,255,235,239,255,255,255,255,255,255,255,191,231,223,223,255,255,255,123,95,252,253,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,63,255,255,255,253,255,255,247,255,255,255,247,255,255,223,255,255,255,223,255,255,127,255,255,255,127,255,255,255,253,255,255,255,253,255,255,247,207,255,255,255,255,255,255,239,255,255,255,150,254,247,10,132,234,150,170,150,247,247,94,255,251,255,15,238,251,255,15,0,0,0,0,0,0,0,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,46,0,18,16,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,16,16,34,35,16,36,37,38,39,40,41,42,43,16,44,45,46,17,47,48,17,17,49,17,17,17,50,51,52,53,54,55,56,57,17,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,58,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,59,16,60,61,62,63,64,65,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,66,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,67,16,16,68,16,69,70,71,16,72,16,73,16,16,16,16,74,75,76,77,16,16,78,16,79,80,16,16,16,16,81,16,16,16,16,16,16,16,16,16,16,16,16,16,82,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,83,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,84,85,86,87,16,16,88,89,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,90,16,91,92,93,94,95,96,97,98,16,16,16,16,16,16,16,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,254,255,0,252,1,0,0,248,1,0,0,120,0,0,0,0,255,251,223,251,0,0,128,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,60,0,252,255,224,175,255,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,32,64,176,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252,0,0,0,0,0,134,254,255,255,255,0,64,73,0,0,0,0,0,24,0,223,255,0,200,0,0,0,0,0,0,0,1,0,60,0,0,0,0,0,0,0,0,0,0,0,0,16,224,1,30,0,96,255,191,0,0,0,0,0,0,255,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,207,3,0,0,0,3,0,32,255,127,0,0,0,78,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252,0,0,0,0,0,0,0,0,0,16,0,32,30,0,48,0,1,0,0,0,0,0,0,0,0,16,0,32,0,0,0,0,252,15,0,0,0,0,0,0,0,16,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,32,0,0,0,0,3,0,0,0,0,0,0,0,0,16,0,32,0,0,0,0,253,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,255,7,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,255,0,0,0,0,0,0,0,16,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,63,2,0,0,0,0,0,0,0,0,0,4,0,0,0,0,16,0,0,0,0,0,0,128,0,128,192,223,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,31,0,0,0,0,0,0,254,255,255,255,0,252,255,255,0,0,0,0,0,0,0,0,252,0,0,0,0,0,0,192,255,223,255,7,0,0,0,0,0,0,0,0,0,0,128,6,0,252,0,0,24,62,0,0,128,191,0,204,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,96,255,255,255,31,0,0,255,3,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,0,0,1,0,0,24,0,0,0,0,0,0,0,0,0,56,0,0,0,0,16,0,0,0,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,0,0,254,127,47,0,0,255,3,255,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,196,255,255,255,255,0,0,0,192,0,0,0,0,0,0,0,0,1,0,224,159,0,0,0,0,127,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,16,0,0,252,255,255,255,31,0,0,0,0,0,12,0,0,0,0,0,0,64,0,12,240,0,0,0,0,0,0,192,248,0,0,0,0,0,0,0,192,0,0,0,0,0,0,0,0,255,0,255,255,255,33,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,127,0,0,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,3,224,0,224,0,224,0,96,128,248,255,255,255,252,255,255,255,255,255,127,31,252,241,127,255,127,0,0,255,255,255,3,0,0,255,255,255,255,1,0,123,3,208,193,175,66,0,12,31,188,255,255,0,0,0,0,0,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,15,0,255,255,255,255,127,0,0,0,255,7,0,0,255,255,255,255,255,255,255,255,255,255,63,0,0,0,0,0,0,252,255,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,31,255,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,135,3,254,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,127,255,15,0,0,0,0,0,0,0,0,255,255,255,251,255,255,255,255,255,255,255,255,255,255,15,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,63,0,0,0,255,15,30,255,255,255,1,252,193,224,0,0,0,0,0,0,0,0,0,0,0,30,1,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,15,0,0,0,255,255,255,127,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,127,0,0,0,0,0,0,192,0,224,0,0,0,0,0,0,0,0,0,0,0,128,15,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,255,255,127,0,3,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,68,8,0,0,0,15,255,3,0,0,0,0,0,0,240,0,0,0,0,0,0,0,0,0,16,192,0,0,255,255,3,7,0,0,0,0,0,248,0,0,0,0,8,128,0,0,0,0,0,0,0,0,0,0,8,0,255,63,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,0,0,128,11,0,0,0,0,0,0,0,128,2,0,0,192,0,0,67,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,0,0,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,128,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252,255,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,255,255,255,3,127,0,255,255,255,255,247,255,127,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,254,255,0,252,1,0,0,248,1,0,0,248,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,127,0,48,135,255,255,255,255,255,143,255,0,0,0,0,0,0,224,255,255,7,255,15,0,0,0,0,0,0,255,255,255,255,255,63,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,143,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,135,255,0,255,1,0,0,0,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,254,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,63,252,255,63,0,0,0,3,0,0,0,0,0,0,254,3,0,0,0,0,0,0,0,0,0,0,0,0,0,24,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,225,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,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,7,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,63,0,255,255,255,255,127,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,63,0,0,0,0,255,255,255,255,255,255,255,255,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,127,0,255,255,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,8,0,0,0,8,0,0,32,0,0,0,32,0,0,128,0,0,0,128,0,0,0,2,0,0,0,2,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,255,255,255,255,255,15,255,255,255,255,255,255,255,255,255,255,255,255,15,0,255,127,254,127,254,255,254,255,0,0,0,0,255,7,255,255,255,127,255,255,255,255,255,255,255,15,255,255,255,255,255,7,0,0,0,0,0,0,0,0,192,255,255,255,7,0,255,255,255,255,255,7,255,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,191,255,255,255,255,255,255,255,255,31,255,255,15,0,255,255,255,255,223,7,0,0,255,255,1,0,255,255,255,255,255,255,255,127,253,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,30,255,255,255,255,255,255,255,63,15,0,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,255,255,255,255,255,255,255,255,225,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,63,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,255,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,4,7,3,6,5,0,114,119,97,0,47,112,114,111,99,47,115,101,108,102,47,102,100,47,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+61440);var tempDoublePtr=STATICTOP;STATICTOP+=16;assert(tempDoublePtr%8==0);var PROCINFO={ppid:1,pid:42,sid:42,pgid:42};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};var ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"};function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;else Module.printErr("failed to set errno from JS");return value}var PATH={splitPath:(function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)}),normalizeArray:(function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up--;up){parts.unshift("..")}}return parts}),normalize:(function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path}),dirname:(function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir}),basename:(function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)}),extname:(function(path){return PATH.splitPath(path)[3]}),join:(function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))}),join2:(function(l,r){return PATH.normalize(l+"/"+r)}),resolve:(function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter((function(p){return!!p})),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."}),relative:(function(from,to){from=PATH.resolve(from).substr(1);to=PATH.resolve(to).substr(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!=="")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push("..")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/")})};var TTY={ttys:[],init:(function(){}),shutdown:(function(){}),register:(function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)}),stream_ops:{open:(function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}stream.tty=tty;stream.seekable=false}),close:(function(stream){stream.tty.ops.flush(stream.tty)}),flush:(function(stream){stream.tty.ops.flush(stream.tty)}),read:(function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(ERRNO_CODES.ENXIO)}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty)}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(ERRNO_CODES.EAGAIN)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead}),write:(function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(ERRNO_CODES.ENXIO)}for(var i=0;i<length;i++){try{stream.tty.ops.put_char(stream.tty,buffer[offset+i])}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}}if(length){stream.node.timestamp=Date.now()}return i})},default_tty_ops:{get_char:(function(tty){if(!tty.input.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=new Buffer(BUFSIZE);var bytesRead=0;var isPosixPlatform=process.platform!="win32";var fd=process.stdin.fd;if(isPosixPlatform){var usingDevice=false;try{fd=fs.openSync("/dev/stdin","r");usingDevice=true}catch(e){}}try{bytesRead=fs.readSync(fd,buf,0,BUFSIZE,null)}catch(e){if(e.toString().indexOf("EOF")!=-1)bytesRead=0;else throw e}if(usingDevice){fs.closeSync(fd)}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()}),put_char:(function(tty,val){if(val===null||val===10){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}})},default_tty1_ops:{put_char:(function(tty,val){if(val===null||val===10){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}})}};var MEMFS={ops_table:null,mount:(function(mount){return MEMFS.createNode(null,"/",16384|511,0)}),createNode:(function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node}),getFileDataAsRegularArray:(function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;i<node.usedBytes;++i)arr.push(node.contents[i]);return arr}return node.contents}),getFileDataAsTypedArray:(function(node){if(!node.contents)return new Uint8Array;if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)}),expandFileStorage:(function(node,newCapacity){if(node.contents&&node.contents.subarray&&newCapacity>node.contents.length){node.contents=MEMFS.getFileDataAsRegularArray(node);node.usedBytes=node.contents.length}if(!node.contents||node.contents.subarray){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)|0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return}if(!node.contents&&newCapacity>0)node.contents=[];while(node.contents.length<newCapacity)node.contents.push(0)}),resizeFileStorage:(function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0;return}if(!node.contents||node.contents.subarray){var oldContents=node.contents;node.contents=new Uint8Array(new ArrayBuffer(newSize));if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize;return}if(!node.contents)node.contents=[];if(node.contents.length>newSize)node.contents.length=newSize;else while(node.contents.length<newSize)node.contents.push(0);node.usedBytes=newSize}),node_ops:{getattr:(function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr}),setattr:(function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}}),lookup:(function(parent,name){throw FS.genericErrors[ERRNO_CODES.ENOENT]}),mknod:(function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)}),rename:(function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}}}delete old_node.parent.contents[old_node.name];old_node.name=new_name;new_dir.contents[new_name]=old_node;old_node.parent=new_dir}),unlink:(function(parent,name){delete parent.contents[name]}),rmdir:(function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}delete parent.contents[name]}),readdir:(function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries}),symlink:(function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node}),readlink:(function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return node.link})},stream_ops:{read:(function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);assert(size>=0);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i<size;i++)buffer[offset+i]=contents[position+i]}return size}),write:(function(stream,buffer,offset,length,position,canOwn){if(!length)return 0;var node=stream.node;node.timestamp=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){assert(position===0,"canOwn must imply no weird position inside the file");node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length}else if(node.usedBytes===0&&position===0){node.contents=new Uint8Array(buffer.subarray(offset,offset+length));node.usedBytes=length;return length}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray)node.contents.set(buffer.subarray(offset,offset+length),position);else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i]}}node.usedBytes=Math.max(node.usedBytes,position+length);return length}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position}),allocate:(function(stream,offset,length){MEMFS.expandFileStorage(stream.node,offset+length);stream.node.usedBytes=Math.max(stream.node.usedBytes,offset+length)}),mmap:(function(stream,buffer,offset,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&(contents.buffer===buffer||contents.buffer===buffer.buffer)){allocated=false;ptr=contents.byteOffset}else{if(position>0||position+length<stream.node.usedBytes){if(contents.subarray){contents=contents.subarray(position,position+length)}else{contents=Array.prototype.slice.call(contents,position,position+length)}}allocated=true;ptr=_malloc(length);if(!ptr){throw new FS.ErrnoError(ERRNO_CODES.ENOMEM)}buffer.set(contents,ptr)}return{ptr:ptr,allocated:allocated}}),msync:(function(stream,buffer,offset,length,mmapFlags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}if(mmapFlags&2){return 0}var bytesWritten=MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0})}};var IDBFS={dbs:{},indexedDB:(function(){if(typeof indexedDB!=="undefined")return indexedDB;var ret=null;if(typeof window==="object")ret=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB;assert(ret,"IDBFS used, but indexedDB not supported");return ret}),DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:(function(mount){return MEMFS.mount.apply(null,arguments)}),syncfs:(function(mount,populate,callback){IDBFS.getLocalSet(mount,(function(err,local){if(err)return callback(err);IDBFS.getRemoteSet(mount,(function(err,remote){if(err)return callback(err);var src=populate?remote:local;var dst=populate?local:remote;IDBFS.reconcile(src,dst,callback)}))}))}),getDB:(function(name,callback){var db=IDBFS.dbs[name];if(db){return callback(null,db)}var req;try{req=IDBFS.indexedDB().open(name,IDBFS.DB_VERSION)}catch(e){return callback(e)}if(!req){return callback("Unable to connect to IndexedDB")}req.onupgradeneeded=(function(e){var db=e.target.result;var transaction=e.target.transaction;var fileStore;if(db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)){fileStore=transaction.objectStore(IDBFS.DB_STORE_NAME)}else{fileStore=db.createObjectStore(IDBFS.DB_STORE_NAME)}if(!fileStore.indexNames.contains("timestamp")){fileStore.createIndex("timestamp","timestamp",{unique:false})}});req.onsuccess=(function(){db=req.result;IDBFS.dbs[name]=db;callback(null,db)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),getLocalSet:(function(mount,callback){var entries={};function isRealDir(p){return p!=="."&&p!==".."}function toAbsolute(root){return(function(p){return PATH.join2(root,p)})}var check=FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint));while(check.length){var path=check.pop();var stat;try{stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){check.push.apply(check,FS.readdir(path).filter(isRealDir).map(toAbsolute(path)))}entries[path]={timestamp:stat.mtime}}return callback(null,{type:"local",entries:entries})}),getRemoteSet:(function(mount,callback){var entries={};IDBFS.getDB(mount.mountpoint,(function(err,db){if(err)return callback(err);var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readonly");transaction.onerror=(function(e){callback(this.error);e.preventDefault()});var store=transaction.objectStore(IDBFS.DB_STORE_NAME);var index=store.index("timestamp");index.openKeyCursor().onsuccess=(function(event){var cursor=event.target.result;if(!cursor){return callback(null,{type:"remote",db:db,entries:entries})}entries[cursor.primaryKey]={timestamp:cursor.key};cursor.continue()})}))}),loadLocalEntry:(function(path,callback){var stat,node;try{var lookup=FS.lookupPath(path);node=lookup.node;stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){return callback(null,{timestamp:stat.mtime,mode:stat.mode})}else if(FS.isFile(stat.mode)){node.contents=MEMFS.getFileDataAsTypedArray(node);return callback(null,{timestamp:stat.mtime,mode:stat.mode,contents:node.contents})}else{return callback(new Error("node type not supported"))}}),storeLocalEntry:(function(path,entry,callback){try{if(FS.isDir(entry.mode)){FS.mkdir(path,entry.mode)}else if(FS.isFile(entry.mode)){FS.writeFile(path,entry.contents,{encoding:"binary",canOwn:true})}else{return callback(new Error("node type not supported"))}FS.chmod(path,entry.mode);FS.utime(path,entry.timestamp,entry.timestamp)}catch(e){return callback(e)}callback(null)}),removeLocalEntry:(function(path,callback){try{var lookup=FS.lookupPath(path);var stat=FS.stat(path);if(FS.isDir(stat.mode)){FS.rmdir(path)}else if(FS.isFile(stat.mode)){FS.unlink(path)}}catch(e){return callback(e)}callback(null)}),loadRemoteEntry:(function(store,path,callback){var req=store.get(path);req.onsuccess=(function(event){callback(null,event.target.result)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),storeRemoteEntry:(function(store,path,entry,callback){var req=store.put(entry,path);req.onsuccess=(function(){callback(null)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),removeRemoteEntry:(function(store,path,callback){var req=store.delete(path);req.onsuccess=(function(){callback(null)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),reconcile:(function(src,dst,callback){var total=0;var create=[];Object.keys(src.entries).forEach((function(key){var e=src.entries[key];var e2=dst.entries[key];if(!e2||e.timestamp>e2.timestamp){create.push(key);total++}}));var remove=[];Object.keys(dst.entries).forEach((function(key){var e=dst.entries[key];var e2=src.entries[key];if(!e2){remove.push(key);total++}}));if(!total){return callback(null)}var completed=0;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=total){return callback(null)}}transaction.onerror=(function(e){done(this.error);e.preventDefault()});create.sort().forEach((function(path){if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,(function(err,entry){if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)}))}else{IDBFS.loadLocalEntry(path,(function(err,entry){if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)}))}}));remove.sort().reverse().forEach((function(path){if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}}))})};var NODEFS={isWindows:false,staticInit:(function(){NODEFS.isWindows=!!process.platform.match(/^win/)}),mount:(function(mount){assert(ENVIRONMENT_IS_NODE);return NODEFS.createNode(null,"/",NODEFS.getMode(mount.opts.root),0)}),createNode:(function(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=FS.createNode(parent,name,mode);node.node_ops=NODEFS.node_ops;node.stream_ops=NODEFS.stream_ops;return node}),getMode:(function(path){var stat;try{stat=fs.lstatSync(path);if(NODEFS.isWindows){stat.mode=stat.mode|(stat.mode&146)>>1}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return stat.mode}),realPath:(function(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join.apply(null,parts)}),flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:(function(flags){flags&=~2097152;flags&=~2048;flags&=~32768;flags&=~524288;if(flags in NODEFS.flagsToPermissionStringMap){return NODEFS.flagsToPermissionStringMap[flags]}else{throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}}),node_ops:{getattr:(function(node){var path=NODEFS.realPath(node);var stat;try{stat=fs.lstatSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(NODEFS.isWindows&&!stat.blksize){stat.blksize=4096}if(NODEFS.isWindows&&!stat.blocks){stat.blocks=(stat.size+stat.blksize-1)/stat.blksize|0}return{dev:stat.dev,ino:stat.ino,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}}),setattr:(function(node,attr){var path=NODEFS.realPath(node);try{if(attr.mode!==undefined){fs.chmodSync(path,attr.mode);node.mode=attr.mode}if(attr.timestamp!==undefined){var date=new Date(attr.timestamp);fs.utimesSync(path,date,date)}if(attr.size!==undefined){fs.truncateSync(path,attr.size)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),lookup:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode)}),mknod:(function(parent,name,mode,dev){var node=NODEFS.createNode(parent,name,mode,dev);var path=NODEFS.realPath(node);try{if(FS.isDir(node.mode)){fs.mkdirSync(path,node.mode)}else{fs.writeFileSync(path,"",{mode:node.mode})}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return node}),rename:(function(oldNode,newDir,newName){var oldPath=NODEFS.realPath(oldNode);var newPath=PATH.join2(NODEFS.realPath(newDir),newName);try{fs.renameSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),unlink:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.unlinkSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),rmdir:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.rmdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readdir:(function(node){var path=NODEFS.realPath(node);try{return fs.readdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),symlink:(function(parent,newName,oldPath){var newPath=PATH.join2(NODEFS.realPath(parent),newName);try{fs.symlinkSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readlink:(function(node){var path=NODEFS.realPath(node);try{path=fs.readlinkSync(path);path=NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root),path);return path}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}})},stream_ops:{open:(function(stream){var path=NODEFS.realPath(stream.node);try{if(FS.isFile(stream.node.mode)){stream.nfd=fs.openSync(path,NODEFS.flagsToPermissionString(stream.flags))}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),close:(function(stream){try{if(FS.isFile(stream.node.mode)&&stream.nfd){fs.closeSync(stream.nfd)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),read:(function(stream,buffer,offset,length,position){if(length===0)return 0;var nbuffer=new Buffer(length);var res;try{res=fs.readSync(stream.nfd,nbuffer,0,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(res>0){for(var i=0;i<res;i++){buffer[offset+i]=nbuffer[i]}}return res}),write:(function(stream,buffer,offset,length,position){var nbuffer=new Buffer(buffer.subarray(offset,offset+length));var res;try{res=fs.writeSync(stream.nfd,nbuffer,0,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}return res}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){try{var stat=fs.fstatSync(stream.nfd);position+=stat.size}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position})}};var WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:(function(mount){assert(ENVIRONMENT_IS_WORKER);if(!WORKERFS.reader)WORKERFS.reader=new FileReaderSync;var root=WORKERFS.createNode(null,"/",WORKERFS.DIR_MODE,0);var createdParents={};function ensureParent(path){var parts=path.split("/");var parent=root;for(var i=0;i<parts.length-1;i++){var curr=parts.slice(0,i+1).join("/");if(!createdParents[curr]){createdParents[curr]=WORKERFS.createNode(parent,parts[i],WORKERFS.DIR_MODE,0)}parent=createdParents[curr]}return parent}function base(path){var parts=path.split("/");return parts[parts.length-1]}Array.prototype.forEach.call(mount.opts["files"]||[],(function(file){WORKERFS.createNode(ensureParent(file.name),base(file.name),WORKERFS.FILE_MODE,0,file,file.lastModifiedDate)}));(mount.opts["blobs"]||[]).forEach((function(obj){WORKERFS.createNode(ensureParent(obj["name"]),base(obj["name"]),WORKERFS.FILE_MODE,0,obj["data"])}));(mount.opts["packages"]||[]).forEach((function(pack){pack["metadata"].files.forEach((function(file){var name=file.filename.substr(1);WORKERFS.createNode(ensureParent(name),base(name),WORKERFS.FILE_MODE,0,pack["blob"].slice(file.start,file.end))}))}));return root}),createNode:(function(parent,name,mode,dev,contents,mtime){var node=FS.createNode(parent,name,mode);node.mode=mode;node.node_ops=WORKERFS.node_ops;node.stream_ops=WORKERFS.stream_ops;node.timestamp=(mtime||new Date).getTime();assert(WORKERFS.FILE_MODE!==WORKERFS.DIR_MODE);if(mode===WORKERFS.FILE_MODE){node.size=contents.size;node.contents=contents}else{node.size=4096;node.contents={}}if(parent){parent.contents[name]=node}return node}),node_ops:{getattr:(function(node){return{dev:1,ino:undefined,mode:node.mode,nlink:1,uid:0,gid:0,rdev:undefined,size:node.size,atime:new Date(node.timestamp),mtime:new Date(node.timestamp),ctime:new Date(node.timestamp),blksize:4096,blocks:Math.ceil(node.size/4096)}}),setattr:(function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}}),lookup:(function(parent,name){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}),mknod:(function(parent,name,mode,dev){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),rename:(function(oldNode,newDir,newName){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),unlink:(function(parent,name){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),rmdir:(function(parent,name){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),readdir:(function(node){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),symlink:(function(parent,newName,oldPath){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),readlink:(function(node){throw new FS.ErrnoError(ERRNO_CODES.EPERM)})},stream_ops:{read:(function(stream,buffer,offset,length,position){if(position>=stream.node.size)return 0;var chunk=stream.node.contents.slice(position,position+length);var ab=WORKERFS.reader.readAsArrayBuffer(chunk);buffer.set(new Uint8Array(ab),offset);return chunk.size}),write:(function(stream,buffer,offset,length,position){throw new FS.ErrnoError(ERRNO_CODES.EIO)}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.size}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position})}};STATICTOP+=16;STATICTOP+=16;STATICTOP+=16;var FS={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:(function(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return ___setErrNo(e.errno)}),lookupPath:(function(path,opts){path=PATH.resolve(FS.cwd(),path);opts=opts||{};if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};for(var key in defaults){if(opts[key]===undefined){opts[key]=defaults[key]}}if(opts.recurse_count>8){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}var parts=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),false);var current=FS.root;var current_path="/";for(var i=0;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break}current=FS.lookupNode(current,parts[i]);current_path=PATH.join2(current_path,parts[i]);if(FS.isMountpoint(current)){if(!islast||islast&&opts.follow_mount){current=current.mounted.root}}if(!islast||opts.follow){var count=0;while(FS.isLink(current.mode)){var link=FS.readlink(current_path);current_path=PATH.resolve(PATH.dirname(current_path),link);var lookup=FS.lookupPath(current_path,{recurse_count:opts.recurse_count});current=lookup.node;if(count++>40){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}}}}return{path:current_path,node:current}}),getPath:(function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}}),hashName:(function(parentid,name){var hash=0;for(var i=0;i<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0}return(parentid+hash>>>0)%FS.nameTable.length}),hashAddNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node}),hashRemoveNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}}),lookupNode:(function(parent,name){var err=FS.mayLookup(parent);if(err){throw new FS.ErrnoError(err,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)}),createNode:(function(parent,name,mode,rdev){if(!FS.FSNode){FS.FSNode=(function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev});FS.FSNode.prototype={};var readMode=292|73;var writeMode=146;Object.defineProperties(FS.FSNode.prototype,{read:{get:(function(){return(this.mode&readMode)===readMode}),set:(function(val){val?this.mode|=readMode:this.mode&=~readMode})},write:{get:(function(){return(this.mode&writeMode)===writeMode}),set:(function(val){val?this.mode|=writeMode:this.mode&=~writeMode})},isFolder:{get:(function(){return FS.isDir(this.mode)})},isDevice:{get:(function(){return FS.isChrdev(this.mode)})}})}var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node}),destroyNode:(function(node){FS.hashRemoveNode(node)}),isRoot:(function(node){return node===node.parent}),isMountpoint:(function(node){return!!node.mounted}),isFile:(function(mode){return(mode&61440)===32768}),isDir:(function(mode){return(mode&61440)===16384}),isLink:(function(mode){return(mode&61440)===40960}),isChrdev:(function(mode){return(mode&61440)===8192}),isBlkdev:(function(mode){return(mode&61440)===24576}),isFIFO:(function(mode){return(mode&61440)===4096}),isSocket:(function(mode){return(mode&49152)===49152}),flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:(function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags}),flagsToPermissionString:(function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms}),nodePermissions:(function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return ERRNO_CODES.EACCES}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return ERRNO_CODES.EACCES}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return ERRNO_CODES.EACCES}return 0}),mayLookup:(function(dir){var err=FS.nodePermissions(dir,"x");if(err)return err;if(!dir.node_ops.lookup)return ERRNO_CODES.EACCES;return 0}),mayCreate:(function(dir,name){try{var node=FS.lookupNode(dir,name);return ERRNO_CODES.EEXIST}catch(e){}return FS.nodePermissions(dir,"wx")}),mayDelete:(function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var err=FS.nodePermissions(dir,"wx");if(err){return err}if(isdir){if(!FS.isDir(node.mode)){return ERRNO_CODES.ENOTDIR}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return ERRNO_CODES.EBUSY}}else{if(FS.isDir(node.mode)){return ERRNO_CODES.EISDIR}}return 0}),mayOpen:(function(node,flags){if(!node){return ERRNO_CODES.ENOENT}if(FS.isLink(node.mode)){return ERRNO_CODES.ELOOP}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return ERRNO_CODES.EISDIR}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))}),MAX_OPEN_FDS:4096,nextfd:(function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(ERRNO_CODES.EMFILE)}),getStream:(function(fd){return FS.streams[fd]}),createStream:(function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=(function(){});FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:(function(){return this.node}),set:(function(val){this.node=val})},isRead:{get:(function(){return(this.flags&2097155)!==1})},isWrite:{get:(function(){return(this.flags&2097155)!==0})},isAppend:{get:(function(){return this.flags&1024})}})}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream}),closeStream:(function(fd){FS.streams[fd]=null}),chrdev_stream_ops:{open:(function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}}),llseek:(function(){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)})},major:(function(dev){return dev>>8}),minor:(function(dev){return dev&255}),makedev:(function(ma,mi){return ma<<8|mi}),registerDevice:(function(dev,ops){FS.devices[dev]={stream_ops:ops}}),getDevice:(function(dev){return FS.devices[dev]}),getMounts:(function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts}),syncfs:(function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){console.log("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(err){assert(FS.syncFSRequests>0);FS.syncFSRequests--;return callback(err)}function done(err){if(err){if(!done.errored){done.errored=true;return doCallback(err)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach((function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)}))}),mount:(function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot}),unmount:(function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach((function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}}));node.mounted=null;var idx=node.mount.mounts.indexOf(mount);assert(idx!==-1);node.mount.mounts.splice(idx,1)}),lookup:(function(parent,name){return parent.node_ops.lookup(parent,name)}),mknod:(function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.mayCreate(parent,name);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.mknod(parent,name,mode,dev)}),create:(function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)}),mkdir:(function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)}),mkdirTree:(function(path,mode){var dirs=path.split("/");var d="";for(var i=0;i<dirs.length;++i){if(!dirs[i])continue;d+="/"+dirs[i];try{FS.mkdir(d,mode)}catch(e){if(e.errno!=ERRNO_CODES.EEXIST)throw e}}}),mkdev:(function(path,mode,dev){if(typeof dev==="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)}),symlink:(function(oldpath,newpath){if(!PATH.resolve(oldpath)){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var newname=PATH.basename(newpath);var err=FS.mayCreate(parent,newname);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.symlink(parent,newname,oldpath)}),rename:(function(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;try{lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!old_dir||!new_dir)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(ERRNO_CODES.EXDEV)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}relative=PATH.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var err=FS.mayDelete(old_dir,old_name,isdir);if(err){throw new FS.ErrnoError(err)}err=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(err){throw new FS.ErrnoError(err)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(new_dir!==old_dir){err=FS.nodePermissions(old_dir,"w");if(err){throw new FS.ErrnoError(err)}}try{if(FS.trackingDelegate["willMovePath"]){FS.trackingDelegate["willMovePath"](old_path,new_path)}}catch(e){console.log("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}try{if(FS.trackingDelegate["onMovePath"])FS.trackingDelegate["onMovePath"](old_path,new_path)}catch(e){console.log("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}}),rmdir:(function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,true);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}return node.node_ops.readdir(node)}),unlink:(function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,false);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.unlink(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readlink:(function(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!link.node_ops.readlink){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return PATH.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))}),stat:(function(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!node.node_ops.getattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return node.node_ops.getattr(node)}),lstat:(function(path){return FS.stat(path,true)}),chmod:(function(path,mode,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})}),lchmod:(function(path,mode){FS.chmod(path,mode,true)}),fchmod:(function(fd,mode){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chmod(stream.node,mode)}),chown:(function(path,uid,gid,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{timestamp:Date.now()})}),lchown:(function(path,uid,gid){FS.chown(path,uid,gid,true)}),fchown:(function(fd,uid,gid){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chown(stream.node,uid,gid)}),truncate:(function(path,len){if(len<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.nodePermissions(node,"w");if(err){throw new FS.ErrnoError(err)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})}),ftruncate:(function(fd,len){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}FS.truncate(stream.node,len)}),utime:(function(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})}),open:(function(path,flags,mode,fd_start,fd_end){if(path===""){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}flags=typeof flags==="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode==="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path==="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(ERRNO_CODES.EEXIST)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}if(!created){var err=FS.mayOpen(node,flags);if(err){throw new FS.ErrnoError(err)}}if(flags&512){FS.truncate(node,0)}flags&=~(128|512);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false},fd_start,fd_end);if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1;Module["printErr"]("read file: "+path)}}try{if(FS.trackingDelegate["onOpenFile"]){var trackingFlags=0;if((flags&2097155)!==1){trackingFlags|=FS.tracking.openFlags.READ}if((flags&2097155)!==0){trackingFlags|=FS.tracking.openFlags.WRITE}FS.trackingDelegate["onOpenFile"](path,trackingFlags)}}catch(e){console.log("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: "+e.message)}return stream}),close:(function(stream){if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}}),llseek:(function(stream,offset,whence){if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position}),read:(function(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.read){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead}),write:(function(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.write){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if(stream.flags&1024){FS.llseek(stream,0,2)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;try{if(stream.path&&FS.trackingDelegate["onWriteToFile"])FS.trackingDelegate["onWriteToFile"](stream.path)}catch(e){console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: "+e.message)}return bytesWritten}),allocate:(function(stream,offset,length){if(offset<0||length<=0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP)}stream.stream_ops.allocate(stream,offset,length)}),mmap:(function(stream,buffer,offset,length,position,prot,flags){if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EACCES)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}return stream.stream_ops.mmap(stream,buffer,offset,length,position,prot,flags)}),msync:(function(stream,buffer,offset,length,mmapFlags){if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)}),munmap:(function(stream){return 0}),ioctl:(function(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(ERRNO_CODES.ENOTTY)}return stream.stream_ops.ioctl(stream,cmd,arg)}),readFile:(function(path,opts){opts=opts||{};opts.flags=opts.flags||"r";opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret}),writeFile:(function(path,data,opts){opts=opts||{};opts.flags=opts.flags||"w";opts.encoding=opts.encoding||"utf8";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var stream=FS.open(path,opts.flags,opts.mode);if(opts.encoding==="utf8"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,0,opts.canOwn)}else if(opts.encoding==="binary"){FS.write(stream,data,0,data.length,0,opts.canOwn)}FS.close(stream)}),cwd:(function(){return FS.currentPath}),chdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}var err=FS.nodePermissions(lookup.node,"x");if(err){throw new FS.ErrnoError(err)}FS.currentPath=lookup.path}),createDefaultDirectories:(function(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")}),createDefaultDevices:(function(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:(function(){return 0}),write:(function(stream,buffer,offset,length,pos){return length})});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device;if(typeof crypto!=="undefined"){var randomBuffer=new Uint8Array(1);random_device=(function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]})}else if(ENVIRONMENT_IS_NODE){random_device=(function(){return require("crypto").randomBytes(1)[0]})}else{random_device=(function(){return Math.random()*256|0})}FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")}),createSpecialDirectories:(function(){FS.mkdir("/proc");FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:(function(){var node=FS.createNode("/proc/self","fd",16384|511,73);node.node_ops={lookup:(function(parent,name){var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:(function(){return stream.path})}};ret.parent=ret;return ret})};return node})},{},"/proc/self/fd")}),createStandardStreams:(function(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin","r");assert(stdin.fd===0,"invalid handle for stdin ("+stdin.fd+")");var stdout=FS.open("/dev/stdout","w");assert(stdout.fd===1,"invalid handle for stdout ("+stdout.fd+")");var stderr=FS.open("/dev/stderr","w");assert(stderr.fd===2,"invalid handle for stderr ("+stderr.fd+")")}),ensureErrnoError:(function(){if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=(function(errno){this.errno=errno;for(var key in ERRNO_CODES){if(ERRNO_CODES[key]===errno){this.code=key;break}}});this.setErrno(errno);this.message=ERRNO_MESSAGES[errno];if(this.stack)this.stack=demangleAll(this.stack)};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[ERRNO_CODES.ENOENT].forEach((function(code){FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack="<generic error, no stack>"}))}),staticInit:(function(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS,"IDBFS":IDBFS,"NODEFS":NODEFS,"WORKERFS":WORKERFS}}),init:(function(input,output,error){assert(!FS.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()}),quit:(function(){FS.init.initialized=false;var fflush=Module["_fflush"];if(fflush)fflush(0);for(var i=0;i<FS.streams.length;i++){var stream=FS.streams[i];if(!stream){continue}FS.close(stream)}}),getMode:(function(canRead,canWrite){var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode}),joinPath:(function(parts,forceRelative){var path=PATH.join.apply(null,parts);if(forceRelative&&path[0]=="/")path=path.substr(1);return path}),absolutePath:(function(relative,base){return PATH.resolve(base,relative)}),standardizePath:(function(path){return PATH.normalize(path)}),findObject:(function(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(ret.exists){return ret.object}else{___setErrNo(ret.error);return null}}),analyzePath:(function(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret}),createFolder:(function(parent,name,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.mkdir(path,mode)}),createPath:(function(parent,path,canRead,canWrite){parent=typeof parent==="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current}),createFile:(function(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)}),createDataFile:(function(parent,name,data,canRead,canWrite,canOwn){var path=name?PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name):parent;var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data==="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i)arr[i]=data.charCodeAt(i);data=arr}FS.chmod(node,mode|146);var stream=FS.open(node,"w");FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode)}return node}),createDevice:(function(parent,name,input,output){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:(function(stream){stream.seekable=false}),close:(function(stream){if(output&&output.buffer&&output.buffer.length){output(10)}}),read:(function(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input()}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(ERRNO_CODES.EAGAIN)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead}),write:(function(stream,buffer,offset,length,pos){for(var i=0;i<length;i++){try{output(buffer[offset+i])}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}}if(length){stream.node.timestamp=Date.now()}return i})});return FS.mkdev(path,mode,dev)}),createLink:(function(parent,name,target,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);return FS.symlink(target,path)}),forceLoadFile:(function(obj){if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;var success=true;if(typeof XMLHttpRequest!=="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else if(Module["read"]){try{obj.contents=intArrayFromString(Module["read"](obj.url),true);obj.usedBytes=obj.contents.length}catch(e){success=false}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}if(!success)___setErrNo(ERRNO_CODES.EIO);return success}),createLazyFile:(function(parent,name,url,canRead,canWrite){function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}});var lazyArray=this;lazyArray.setDataGetter((function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]}));if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;console.log("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._length})},chunkSize:{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize})}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:(function(){return this.contents.length})}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach((function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}return fn.apply(null,arguments)}}));stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);assert(size>=0);if(contents.slice){for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i]}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i)}}return size};node.stream_ops=stream_ops;return node}),createPreloadedFile:(function(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish){Browser.init();var fullname=name?PATH.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency("cp "+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}var handled=false;Module["preloadPlugins"].forEach((function(plugin){if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,(function(){if(onerror)onerror();removeRunDependency(dep)}));handled=true}}));if(!handled)finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){Browser.asyncLoad(url,(function(byteArray){processData(byteArray)}),onerror)}else{processData(url)}}),indexedDB:(function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB}),DB_NAME:(function(){return"EM_FS_"+window.location.pathname}),DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(function(paths,onload,onerror){onload=onload||(function(){});onerror=onerror||(function(){});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=function openRequest_onupgradeneeded(){console.log("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)};openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach((function(path){var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=function putRequest_onsuccess(){ok++;if(ok+fail==total)finish()};putRequest.onerror=function putRequest_onerror(){fail++;if(ok+fail==total)finish()}}));transaction.onerror=onerror};openRequest.onerror=onerror}),loadFilesFromDB:(function(paths,onload,onerror){onload=onload||(function(){});onerror=onerror||(function(){});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach((function(path){var getRequest=files.get(path);getRequest.onsuccess=function getRequest_onsuccess(){if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()};getRequest.onerror=function getRequest_onerror(){fail++;if(ok+fail==total)finish()}}));transaction.onerror=onerror};openRequest.onerror=onerror})};var SYSCALLS={DEFAULT_POLLMASK:5,mappings:{},umask:511,calculateAt:(function(dirfd,path){if(path[0]!=="/"){var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);dir=dirstream.path}path=PATH.join2(dir,path)}return path}),doStat:(function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-ERRNO_CODES.ENOTDIR}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;HEAP32[buf+36>>2]=stat.size;HEAP32[buf+40>>2]=4096;HEAP32[buf+44>>2]=stat.blocks;HEAP32[buf+48>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+52>>2]=0;HEAP32[buf+56>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ino;return 0}),doMsync:(function(addr,stream,len,flags){var buffer=new Uint8Array(HEAPU8.subarray(addr,addr+len));FS.msync(stream,buffer,0,len,flags)}),doMkdir:(function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0}),doMknod:(function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-ERRNO_CODES.EINVAL}FS.mknod(path,mode,dev);return 0}),doReadlink:(function(path,buf,bufsize){if(bufsize<=0)return-ERRNO_CODES.EINVAL;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len}),doAccess:(function(path,amode){if(amode&~7){return-ERRNO_CODES.EINVAL}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-ERRNO_CODES.EACCES}return 0}),doDup:(function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd}),doReadv:(function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len)break}return ret}),doWritev:(function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret}),varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),getStreamFromFD:(function(){var stream=FS.getStream(SYSCALLS.get());if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return stream}),getSocketFromFD:(function(){var socket=SOCKFS.getSocket(SYSCALLS.get());if(!socket)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return socket}),getSocketAddress:(function(allowNull){var addrp=SYSCALLS.get(),addrlen=SYSCALLS.get();if(allowNull&&addrp===0)return null;var info=__read_sockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall64(which,varargs){SYSCALLS.varargs=varargs;try{return PROCINFO.ppid}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["_i64Subtract"]=_i64Subtract;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 ___syscall20(which,varargs){SYSCALLS.varargs=varargs;try{return PROCINFO.pid}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function _pthread_mutex_destroy(){}Module["_memset"]=_memset;function ___syscall75(which,varargs){SYSCALLS.varargs=varargs;try{return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["_pthread_mutex_lock"]=_pthread_mutex_lock;function _atexit(func,arg){__ATEXIT__.unshift({func:func,arg:arg})}function _abort(){Module["abort"]()}function ___syscall195(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr(),buf=SYSCALLS.get();return SYSCALLS.doStat(FS.stat,path,buf)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall194(which,varargs){SYSCALLS.varargs=varargs;try{var fd=SYSCALLS.get(),zero=SYSCALLS.getZero(),length=SYSCALLS.get64();FS.ftruncate(fd,length);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall197(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),buf=SYSCALLS.get();return SYSCALLS.doStat(FS.stat,stream.path,buf)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall202(which,varargs){SYSCALLS.varargs=varargs;try{return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall199(){return ___syscall202.apply(null,arguments)}Module["_i64Add"]=_i64Add;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_STATIC);Module["_llvm_cttz_i32"]=_llvm_cttz_i32;Module["___udivmoddi4"]=___udivmoddi4;Module["___divdi3"]=___divdi3;function _pthread_mutex_init(){}function ___lock(){}function ___unlock(){}function ___assert_fail(condition,filename,line,func){ABORT=true;throw"Assertion failed: "+Pointer_stringify(condition)+", at: "+[filename?Pointer_stringify(filename):"unknown filename",line,func?Pointer_stringify(func):"unknown function"]+" at "+stackTrace()}function _clock(){if(_clock.start===undefined)_clock.start=Date.now();return(Date.now()-_clock.start)*(1e6/1e3)|0}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;Module["_memmove"]=_memmove;function ___syscall91(which,varargs){SYSCALLS.varargs=varargs;try{var addr=SYSCALLS.get(),len=SYSCALLS.get();var info=SYSCALLS.mappings[addr];if(!info)return 0;if(len===info.len){var stream=FS.getStream(info.fd);SYSCALLS.doMsync(addr,stream,len,info.flags);FS.munmap(stream);SYSCALLS.mappings[addr]=null;if(info.allocated){_free(info.malloc)}}return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["_llvm_bswap_i32"]=_llvm_bswap_i32;function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),op=SYSCALLS.get();switch(op){case 21505:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21506:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21519:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0};case 21520:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return-ERRNO_CODES.EINVAL};case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)};default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var ___tm_current=STATICTOP;STATICTOP+=48;var ___tm_timezone=allocate(intArrayFromString("GMT"),"i8",ALLOC_STATIC);var _tzname=STATICTOP;STATICTOP+=16;var _daylight=STATICTOP;STATICTOP+=16;var _timezone=STATICTOP;STATICTOP+=16;function _tzset(){if(_tzset.called)return;_tzset.called=true;HEAP32[_timezone>>2]=-(new Date).getTimezoneOffset()*60;var winter=new Date(2e3,0,1);var summer=new Date(2e3,6,1);HEAP32[_daylight>>2]=Number(winter.getTimezoneOffset()!=summer.getTimezoneOffset());function extractZone(date){var match=date.toTimeString().match(/\(([A-Za-z ]+)\)$/);return match?match[1]:"GMT"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=allocate(intArrayFromString(winterName),"i8",ALLOC_NORMAL);var summerNamePtr=allocate(intArrayFromString(summerName),"i8",ALLOC_NORMAL);if(summer.getTimezoneOffset()<winter.getTimezoneOffset()){HEAP32[_tzname>>2]=winterNamePtr;HEAP32[_tzname+4>>2]=summerNamePtr}else{HEAP32[_tzname>>2]=summerNamePtr;HEAP32[_tzname+4>>2]=winterNamePtr}}function _localtime_r(time,tmPtr){_tzset();var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var start=new Date(date.getFullYear(),0,1);var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var summerOffset=(new Date(2e3,6,1)).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=date.getTimezoneOffset()==Math.min(winterOffset,summerOffset)|0;HEAP32[tmPtr+32>>2]=dst;var zonePtr=HEAP32[_tzname+(dst?Runtime.QUANTUM_SIZE:0)>>2];HEAP32[tmPtr+40>>2]=zonePtr;return tmPtr}function _localtime(time){return _localtime_r(time,___tm_current)}function ___syscall77(which,varargs){SYSCALLS.varargs=varargs;try{var who=SYSCALLS.get(),usage=SYSCALLS.get();_memset(usage,0,136);HEAP32[usage>>2]=1;HEAP32[usage+4>>2]=2;HEAP32[usage+8>>2]=3;HEAP32[usage+12>>2]=4;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["_bitshift64Ashr"]=_bitshift64Ashr;Module["_bitshift64Lshr"]=_bitshift64Lshr;function ___syscall33(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr(),amode=SYSCALLS.get();return SYSCALLS.doAccess(path,amode)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function _pthread_cleanup_push(routine,arg){__ATEXIT__.push((function(){Module["dynCall_vi"](routine,arg)}));_pthread_cleanup_push.level=__ATEXIT__.length}var _environ=STATICTOP;STATICTOP+=16;function ___buildEnvironment(env){var MAX_ENV_VALUES=64;var TOTAL_ENV_SIZE=1024;var poolPtr;var envPtr;if(!___buildEnvironment.called){___buildEnvironment.called=true;ENV["USER"]=ENV["LOGNAME"]="web_user";ENV["PATH"]="/";ENV["PWD"]="/";ENV["HOME"]="/home/web_user";ENV["LANG"]="C";ENV["_"]=Module["thisProgram"];poolPtr=allocate(TOTAL_ENV_SIZE,"i8",ALLOC_STATIC);envPtr=allocate(MAX_ENV_VALUES*4,"i8*",ALLOC_STATIC);HEAP32[envPtr>>2]=poolPtr;HEAP32[_environ>>2]=envPtr}else{envPtr=HEAP32[_environ>>2];poolPtr=HEAP32[envPtr>>2]}var strings=[];var totalSize=0;for(var key in env){if(typeof env[key]==="string"){var line=key+"="+env[key];strings.push(line);totalSize+=line.length}}if(totalSize>TOTAL_ENV_SIZE){throw new Error("Environment size exceeded TOTAL_ENV_SIZE!")}var ptrSize=4;for(var i=0;i<strings.length;i++){var line=strings[i];writeAsciiToMemory(line,poolPtr);HEAP32[envPtr+i*ptrSize>>2]=poolPtr;poolPtr+=line.length+1}HEAP32[envPtr+strings.length*ptrSize>>2]=0}var ENV={};function _getenv(name){if(name===0)return 0;name=Pointer_stringify(name);if(!ENV.hasOwnProperty(name))return 0;if(_getenv.ret)_free(_getenv.ret);_getenv.ret=allocate(intArrayFromString(ENV[name]),"i8",ALLOC_NORMAL);return _getenv.ret}function _gettimeofday(ptr){var now=Date.now();HEAP32[ptr>>2]=now/1e3|0;HEAP32[ptr+4>>2]=now%1e3*1e3|0;return 0}Module["_pthread_mutex_unlock"]=_pthread_mutex_unlock;function ___syscall3(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),buf=SYSCALLS.get(),count=SYSCALLS.get();return FS.read(stream,HEAP8,buf,count)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall5(which,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(),flags=SYSCALLS.get(),mode=SYSCALLS.get();var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function _llvm_stackrestore(p){var self=_llvm_stacksave;var ret=self.LLVM_SAVEDSTACKS[p];self.LLVM_SAVEDSTACKS.splice(p,1);Runtime.stackRestore(ret)}Module["___udivdi3"]=___udivdi3;Module["___muldsi3"]=___muldsi3;Module["___muldi3"]=___muldi3;Module["_sbrk"]=_sbrk;Module["_bitshift64Shl"]=_bitshift64Shl;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}function _pthread_cleanup_pop(){assert(_pthread_cleanup_push.level==__ATEXIT__.length,"cannot pop if something else added meanwhile!");__ATEXIT__.pop();_pthread_cleanup_push.level=__ATEXIT__.length}Module["___uremdi3"]=___uremdi3;function ___syscall340(which,varargs){SYSCALLS.varargs=varargs;try{var pid=SYSCALLS.get(),resource=SYSCALLS.get(),new_limit=SYSCALLS.get(),old_limit=SYSCALLS.get();if(old_limit){HEAP32[old_limit>>2]=-1;HEAP32[old_limit+4>>2]=-1;HEAP32[old_limit+8>>2]=-1;HEAP32[old_limit+12>>2]=-1}return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall4(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),buf=SYSCALLS.get(),count=SYSCALLS.get();return FS.write(stream,HEAP8,buf,count)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall192(which,varargs){SYSCALLS.varargs=varargs;try{var addr=SYSCALLS.get(),len=SYSCALLS.get(),prot=SYSCALLS.get(),flags=SYSCALLS.get(),fd=SYSCALLS.get(),off=SYSCALLS.get();off<<=12;var ptr;var allocated=false;if(fd===-1){ptr=_memalign(PAGE_SIZE,len);if(!ptr)return-ERRNO_CODES.ENOMEM;_memset(ptr,0,len);allocated=true}else{var info=FS.getStream(fd);if(!info)return-ERRNO_CODES.EBADF;var res=FS.mmap(info,HEAPU8,addr,len,off,prot,flags);ptr=res.ptr;allocated=res.allocated}SYSCALLS.mappings[ptr]={malloc:ptr,len:len,allocated:allocated,fd:fd,flags:flags};return ptr}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall201(){return ___syscall202.apply(null,arguments)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]);return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?Pointer_stringify(tm_zone):""};var pattern=Pointer_stringify(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length<digits){str=character[0]+str}return str}function leadingNulls(value,digits){return leadingSomething(value,digits,"0")}function compareByDay(date1,date2){function sgn(value){return value<0?-1:value>0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":(function(date){return WEEKDAYS[date.tm_wday].substring(0,3)}),"%A":(function(date){return WEEKDAYS[date.tm_wday]}),"%b":(function(date){return MONTHS[date.tm_mon].substring(0,3)}),"%B":(function(date){return MONTHS[date.tm_mon]}),"%C":(function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)}),"%d":(function(date){return leadingNulls(date.tm_mday,2)}),"%e":(function(date){return leadingSomething(date.tm_mday,2," ")}),"%g":(function(date){return getWeekBasedYear(date).toString().substring(2)}),"%G":(function(date){return getWeekBasedYear(date)}),"%H":(function(date){return leadingNulls(date.tm_hour,2)}),"%I":(function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)}),"%j":(function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)}),"%m":(function(date){return leadingNulls(date.tm_mon+1,2)}),"%M":(function(date){return leadingNulls(date.tm_min,2)}),"%n":(function(){return"\n"}),"%p":(function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}}),"%S":(function(date){return leadingNulls(date.tm_sec,2)}),"%t":(function(){return"\t"}),"%u":(function(date){var day=new Date(date.tm_year+1900,date.tm_mon+1,date.tm_mday,0,0,0,0);return day.getDay()||7}),"%U":(function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"}),"%V":(function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()<date.tm_year+1900){daysDifference=date.tm_yday+32-firstWeekStartThisYear.getDate()}else{daysDifference=date.tm_yday+1-firstWeekStartThisYear.getDate()}return leadingNulls(Math.ceil(daysDifference/7),2)}),"%w":(function(date){var day=new Date(date.tm_year+1900,date.tm_mon+1,date.tm_mday,0,0,0,0);return day.getDay()}),"%W":(function(date){var janFirst=new Date(date.tm_year,0,1);var firstMonday=janFirst.getDay()===1?janFirst:__addDays(janFirst,janFirst.getDay()===0?1:7-janFirst.getDay()+1);var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstMonday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstMondayUntilEndJanuary=31-firstMonday.getDate();var days=firstMondayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstMonday,janFirst)===0?"01":"00"}),"%y":(function(date){return(date.tm_year+1900).toString().substring(2)}),"%Y":(function(date){return date.tm_year+1900}),"%z":(function(date){var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)}),"%Z":(function(date){return date.tm_zone}),"%%":(function(){return"%"})};for(var rule in EXPANSION_RULES_2){if(pattern.indexOf(rule)>=0){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function ___syscall191(which,varargs){SYSCALLS.varargs=varargs;try{var resource=SYSCALLS.get(),rlim=SYSCALLS.get();HEAP32[rlim>>2]=-1;HEAP32[rlim+4>>2]=-1;HEAP32[rlim+8>>2]=-1;HEAP32[rlim+12>>2]=-1;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}function ___syscall142(which,varargs){SYSCALLS.varargs=varargs;try{var nfds=SYSCALLS.get(),readfds=SYSCALLS.get(),writefds=SYSCALLS.get(),exceptfds=SYSCALLS.get(),timeout=SYSCALLS.get();assert(nfds<=64,"nfds must be less than or equal to 64");assert(!exceptfds,"exceptfds not supported");var total=0;var srcReadLow=readfds?HEAP32[readfds>>2]:0,srcReadHigh=readfds?HEAP32[readfds+4>>2]:0;var srcWriteLow=writefds?HEAP32[writefds>>2]:0,srcWriteHigh=writefds?HEAP32[writefds+4>>2]:0;var srcExceptLow=exceptfds?HEAP32[exceptfds>>2]:0,srcExceptHigh=exceptfds?HEAP32[exceptfds+4>>2]:0;var dstReadLow=0,dstReadHigh=0;var dstWriteLow=0,dstWriteHigh=0;var dstExceptLow=0,dstExceptHigh=0;var allLow=(readfds?HEAP32[readfds>>2]:0)|(writefds?HEAP32[writefds>>2]:0)|(exceptfds?HEAP32[exceptfds>>2]:0);var allHigh=(readfds?HEAP32[readfds+4>>2]:0)|(writefds?HEAP32[writefds+4>>2]:0)|(exceptfds?HEAP32[exceptfds+4>>2]:0);function check(fd,low,high,val){return fd<32?low&val:high&val}for(var fd=0;fd<nfds;fd++){var mask=1<<fd%32;if(!check(fd,allLow,allHigh,mask)){continue}var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);var flags=SYSCALLS.DEFAULT_POLLMASK;if(stream.stream_ops.poll){flags=stream.stream_ops.poll(stream)}if(flags&1&&check(fd,srcReadLow,srcReadHigh,mask)){fd<32?dstReadLow=dstReadLow|mask:dstReadHigh=dstReadHigh|mask;total++}if(flags&4&&check(fd,srcWriteLow,srcWriteHigh,mask)){fd<32?dstWriteLow=dstWriteLow|mask:dstWriteHigh=dstWriteHigh|mask;total++}if(flags&2&&check(fd,srcExceptLow,srcExceptHigh,mask)){fd<32?dstExceptLow=dstExceptLow|mask:dstExceptHigh=dstExceptHigh|mask;total++}}if(readfds){HEAP32[readfds>>2]=dstReadLow;HEAP32[readfds+4>>2]=dstReadHigh}if(writefds){HEAP32[writefds>>2]=dstWriteLow;HEAP32[writefds+4>>2]=dstWriteHigh}if(exceptfds){HEAP32[exceptfds>>2]=dstExceptLow;HEAP32[exceptfds+4>>2]=dstExceptHigh}return total}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["_pthread_self"]=_pthread_self;function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;assert(offset_high===0);FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doWritev(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___remdi3"]=___remdi3;function ___syscall221(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),cmd=SYSCALLS.get();switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-ERRNO_CODES.EINVAL}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd};case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0};case 12:case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0};case 13:case 14:case 13:case 14:return 0;case 16:case 8:return-ERRNO_CODES.EINVAL;case 9:___setErrNo(ERRNO_CODES.EINVAL);return-1;default:{return-ERRNO_CODES.EINVAL}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall145(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doReadv(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}FS.staticInit();__ATINIT__.unshift((function(){if(!Module["noFSInit"]&&!FS.init.initialized)FS.init()}));__ATMAIN__.push((function(){FS.ignorePermissions=false}));__ATEXIT__.push((function(){FS.quit()}));Module["FS_createFolder"]=FS.createFolder;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createLink"]=FS.createLink;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;__ATINIT__.unshift((function(){TTY.init()}));__ATEXIT__.push((function(){TTY.shutdown()}));if(ENVIRONMENT_IS_NODE){var fs=require("fs");var NODEJS_PATH=require("path");NODEFS.staticInit()}___buildEnvironment(ENV);DYNAMICTOP_PTR=allocate(1,"i32",ALLOC_STATIC);STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=Runtime.alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;assert(DYNAMIC_BASE<TOTAL_MEMORY,"TOTAL_MEMORY not big enough for stack");function nullFunc_iiii(x){Module["printErr"]("Invalid function pointer called with signature 'iiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x)}function nullFunc_viiiii(x){Module["printErr"]("Invalid function pointer called with signature 'viiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x)}function nullFunc_vi(x){Module["printErr"]("Invalid function pointer called with signature 'vi'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x)}function nullFunc_vii(x){Module["printErr"]("Invalid function pointer called with signature 'vii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x)}function nullFunc_ii(x){Module["printErr"]("Invalid function pointer called with signature 'ii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x)}function nullFunc_viii(x){Module["printErr"]("Invalid function pointer called with signature 'viii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x)}function nullFunc_v(x){Module["printErr"]("Invalid function pointer called with signature 'v'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x)}function nullFunc_iiiii(x){Module["printErr"]("Invalid function pointer called with signature 'iiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x)}function nullFunc_viiiiii(x){Module["printErr"]("Invalid function pointer called with signature 'viiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x)}function nullFunc_iii(x){Module["printErr"]("Invalid function pointer called with signature 'iii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x)}function nullFunc_viiii(x){Module["printErr"]("Invalid function pointer called with signature 'viiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x)}function invoke_iiii(index,a1,a2,a3){try{return Module["dynCall_iiii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){try{Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_vi(index,a1){try{Module["dynCall_vi"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_vii(index,a1,a2){try{Module["dynCall_vii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_ii(index,a1){try{return Module["dynCall_ii"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_viii(index,a1,a2,a3){try{Module["dynCall_viii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_v(index){try{Module["dynCall_v"](index)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){try{return Module["dynCall_iiiii"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){try{Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_iii(index,a1,a2){try{return Module["dynCall_iii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_viiii(index,a1,a2,a3,a4){try{Module["dynCall_viiii"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}Module.asmGlobalArg={"Math":Math,"Int8Array":Int8Array,"Int16Array":Int16Array,"Int32Array":Int32Array,"Uint8Array":Uint8Array,"Uint16Array":Uint16Array,"Uint32Array":Uint32Array,"Float32Array":Float32Array,"Float64Array":Float64Array,"NaN":NaN,"Infinity":Infinity};Module.asmLibraryArg={"abort":abort,"assert":assert,"enlargeMemory":enlargeMemory,"getTotalMemory":getTotalMemory,"abortOnCannotGrowMemory":abortOnCannotGrowMemory,"abortStackOverflow":abortStackOverflow,"nullFunc_iiii":nullFunc_iiii,"nullFunc_viiiii":nullFunc_viiiii,"nullFunc_vi":nullFunc_vi,"nullFunc_vii":nullFunc_vii,"nullFunc_ii":nullFunc_ii,"nullFunc_viii":nullFunc_viii,"nullFunc_v":nullFunc_v,"nullFunc_iiiii":nullFunc_iiiii,"nullFunc_viiiiii":nullFunc_viiiiii,"nullFunc_iii":nullFunc_iii,"nullFunc_viiii":nullFunc_viiii,"invoke_iiii":invoke_iiii,"invoke_viiiii":invoke_viiiii,"invoke_vi":invoke_vi,"invoke_vii":invoke_vii,"invoke_ii":invoke_ii,"invoke_viii":invoke_viii,"invoke_v":invoke_v,"invoke_iiiii":invoke_iiiii,"invoke_viiiiii":invoke_viiiiii,"invoke_iii":invoke_iii,"invoke_viiii":invoke_viiii,"_pthread_cleanup_pop":_pthread_cleanup_pop,"___syscall221":___syscall221,"_pthread_mutex_init":_pthread_mutex_init,"___syscall64":___syscall64,"_abort":_abort,"___syscall202":___syscall202,"_pthread_cleanup_push":_pthread_cleanup_push,"___syscall20":___syscall20,"_llvm_stackrestore":_llvm_stackrestore,"___assert_fail":___assert_fail,"___buildEnvironment":___buildEnvironment,"__addDays":__addDays,"_localtime_r":_localtime_r,"_tzset":_tzset,"___setErrNo":___setErrNo,"___syscall192":___syscall192,"___syscall191":___syscall191,"___syscall197":___syscall197,"___syscall195":___syscall195,"___syscall194":___syscall194,"___syscall199":___syscall199,"_sysconf":_sysconf,"_strftime":_strftime,"_clock":_clock,"__arraySum":__arraySum,"_emscripten_memcpy_big":_emscripten_memcpy_big,"___syscall91":___syscall91,"___syscall75":___syscall75,"_pthread_mutex_destroy":_pthread_mutex_destroy,"_llvm_stacksave":_llvm_stacksave,"___syscall77":___syscall77,"_getenv":_getenv,"___syscall33":___syscall33,"___syscall54":___syscall54,"___unlock":___unlock,"__isLeapYear":__isLeapYear,"___syscall3":___syscall3,"___syscall340":___syscall340,"___lock":___lock,"___syscall6":___syscall6,"___syscall5":___syscall5,"___syscall4":___syscall4,"_time":_time,"_gettimeofday":_gettimeofday,"___syscall201":___syscall201,"_atexit":_atexit,"___syscall140":___syscall140,"_localtime":_localtime,"___syscall142":___syscall142,"___syscall145":___syscall145,"___syscall146":___syscall146,"DYNAMICTOP_PTR":DYNAMICTOP_PTR,"tempDoublePtr":tempDoublePtr,"ABORT":ABORT,"STACKTOP":STACKTOP,"STACK_MAX":STACK_MAX,"cttz_i8":cttz_i8};// EMSCRIPTEN_START_ASM +var Module;if(!Module)Module=(typeof TalerEmscriptenLib!=="undefined"?TalerEmscriptenLib: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"&&typeof require==="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=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);var ret=nodeFS["readFileSync"](filename);return binary?ret:ret.toString()};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};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(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function read(){throw"no read() available"}}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){abort("NO_DYNAMIC_EXECUTION=1 was set, cannot eval")}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;return 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){assert(args.length==sig.length-1);assert("dynCall_"+sig in Module,"bad function pointer type - no table for sig '"+sig+"'");return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}else{assert(sig.length==1);assert("dynCall_"+sig in Module,"bad function pointer type - no table for sig '"+sig+"'");return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i<Runtime.functionPointers.length;i++){if(!Runtime.functionPointers[i]){Runtime.functionPointers[i]=func;return 2*(1+i)}}throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."}),removeFunction:(function(index){Runtime.functionPointers[(index-2)/2]=null}),warnOnce:(function(text){if(!Runtime.warnOnce.shown)Runtime.warnOnce.shown={};if(!Runtime.warnOnce.shown[text]){Runtime.warnOnce.shown[text]=1;Module.printErr(text)}}),funcWrappers:{},getFuncWrapper:(function(func,sig){assert(sig);if(!Runtime.funcWrappers[sig]){Runtime.funcWrappers[sig]={}}var sigCache=Runtime.funcWrappers[sig];if(!sigCache[func]){if(sig.length===1){sigCache[func]=function dynCall_wrapper(){return Runtime.dynCall(sig,func)}}else if(sig.length===2){sigCache[func]=function dynCall_wrapper(arg){return Runtime.dynCall(sig,func,[arg])}}else{sigCache[func]=function dynCall_wrapper(){return Runtime.dynCall(sig,func,Array.prototype.slice.call(arguments))}}}return sigCache[func]}),getCompilerSetting:(function(name){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"}),stackAlloc:(function(size){var ret=STACKTOP;STACKTOP=STACKTOP+size|0;STACKTOP=STACKTOP+15&-16;assert((STACKTOP|0)<(STACK_MAX|0)|0)|0;return ret}),staticAlloc:(function(size){var ret=STATICTOP;STATICTOP=STATICTOP+(assert(!staticSealed),size)|0;STATICTOP=STATICTOP+15&-16;return ret}),dynamicAlloc:(function(size){assert(DYNAMICTOP_PTR);var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=(ret+size+15|0)&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;if(end>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){HEAP32[DYNAMICTOP_PTR>>2]=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];if(!func){abort("NO_DYNAMIC_EXECUTION=1 was set, cannot eval")}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall;((function(){var JSfuncs={"stackSave":(function(){Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore()}),"arrayToC":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=Runtime.stackAlloc(len);stringToUTF8(str,ret,len)}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;assert(returnType!=="array",'Return type should not be "array".');if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=Runtime.stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);if((!opts||!opts.async)&&typeof EmterpreterAsync==="object"){assert(!EmterpreterAsync.state,"cannot start async op with normal JS calling ccall")}if(opts&&opts.async)assert(!returnType,"async ccalls cannot return values");if(returnType==="string")ret=Pointer_stringify(ret);if(stack!==0){if(opts&&opts.async){EmterpreterAsync.asyncFinalizers.push((function(){Runtime.stackRestore(stack)}));return}Runtime.stackRestore(stack)}return ret};cwrap=function cwrap(ident,returnType,argTypes){return(function(){Runtime.warnOnce("NO_DYNAMIC_EXECUTION was set, "+"using slow cwrap implementation");return ccall(ident,returnType,argTypes,arguments)})}}))();Module["ccall"]=ccall;Module["cwrap"]=cwrap;function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}Module["setValue"]=setValue;function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STACK=1;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;Module["ALLOC_NORMAL"]=ALLOC_NORMAL;Module["ALLOC_STACK"]=ALLOC_STACK;Module["ALLOC_STATIC"]=ALLOC_STATIC;Module["ALLOC_DYNAMIC"]=ALLOC_DYNAMIC;Module["ALLOC_NONE"]=ALLOC_NONE;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[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<stop;ptr+=4){HEAP32[ptr>>2]=0}stop=ret+size;while(ptr<stop){HEAP8[ptr++>>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i<size){var curr=slab[i];if(typeof curr==="function"){curr=Runtime.getFunctionIndex(curr)}type=singleType||types[i];if(type===0){i++;continue}assert(type,"Must know what type to store in allocate!");if(type=="i64")type="i32";setValue(ret+i,curr,type);if(previousType!==type){typeSize=Runtime.getNativeTypeSize(type);previousType=type}i+=typeSize}return ret}Module["allocate"]=allocate;function getMemory(size){if(!staticSealed)return Runtime.staticAlloc(size);if(!runtimeInitialized)return Runtime.dynamicAlloc(size);return _malloc(size)}Module["getMemory"]=getMemory;function Pointer_stringify(ptr,length){if(length===0||!ptr)return"";var hasUtf=0;var t;var i=0;while(1){assert(ptr+i<TOTAL_MEMORY);t=HEAPU8[ptr+i>>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify;function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString;function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}Module["stringToUTF8Array"]=stringToUTF8Array;function stringToUTF8(str,outPtr,maxBytesToWrite){assert(typeof maxBytesToWrite=="number","stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!");return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}Module["stringToUTF8"]=stringToUTF8;function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}Module["lengthBytesUTF8"]=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function demangle(func){var __cxa_demangle_func=Module["___cxa_demangle"]||Module["__cxa_demangle"];if(__cxa_demangle_func){try{var s=func.substr(1);var len=lengthBytesUTF8(s)+1;var buf=_malloc(len);stringToUTF8(s,buf,len);var status=_malloc(4);var ret=__cxa_demangle_func(buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}return func}Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling");return func}function demangleAll(text){var regex=/__Z[\w\d_]+/g;return text.replace(regex,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}Module["stackTrace"]=stackTrace;var PAGE_SIZE=16384;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,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function writeStackCookie(){assert((STACK_MAX&3)==0);HEAPU32[(STACK_MAX>>2)-1]=34821223;HEAPU32[(STACK_MAX>>2)-2]=2310721022}function checkStackCookie(){if(HEAPU32[(STACK_MAX>>2)-1]!=34821223||HEAPU32[(STACK_MAX>>2)-2]!=2310721022){abort("Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x02135467, but received 0x"+HEAPU32[(STACK_MAX>>2)-2].toString(16)+" "+HEAPU32[(STACK_MAX>>2)-1].toString(16))}if(HEAP32[0]!==1668509029)throw"Runtime error: The application has corrupted its heap memory area (address zero)!"}function abortStackOverflow(allocSize){abort("Stack overflow! Attempted to allocate "+allocSize+" bytes on the stack, but stack has only "+(STACK_MAX-asm.stackSave()+allocSize)+" bytes available!")}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;if(TOTAL_MEMORY<TOTAL_STACK)Module.printErr("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+TOTAL_MEMORY+"! (TOTAL_STACK="+TOTAL_STACK+")");assert(typeof Int32Array!=="undefined"&&typeof Float64Array!=="undefined"&&!!(new Int32Array(1))["subarray"]&&!!(new Int32Array(1))["set"],"JS engine does not provide full typed array support");if(Module["buffer"]){buffer=Module["buffer"];assert(buffer.byteLength===TOTAL_MEMORY,"provided buffer should be "+TOTAL_MEMORY+" bytes, but it is "+buffer.byteLength)}else{{buffer=new ArrayBuffer(TOTAL_MEMORY)}assert(buffer.byteLength===TOTAL_MEMORY)}updateGlobalBufferViews();function getTotalMemory(){return TOTAL_MEMORY}HEAP32[0]=1668509029;HEAP16[1]=25459;if(HEAPU8[2]!==115||HEAPU8[3]!==99)throw"Runtime error: expected the system to be little-endian!";Module["HEAP"]=HEAP;Module["buffer"]=buffer;Module["HEAP8"]=HEAP8;Module["HEAP16"]=HEAP16;Module["HEAP32"]=HEAP32;Module["HEAPU8"]=HEAPU8;Module["HEAPU16"]=HEAPU16;Module["HEAPU32"]=HEAPU32;Module["HEAPF32"]=HEAPF32;Module["HEAPF64"]=HEAPF64;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){checkStackCookie();if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){checkStackCookie();callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){checkStackCookie();callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){checkStackCookie();if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}Module["addOnPreRun"]=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=addOnPreMain;function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=addOnPostRun;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}Module["intArrayFromString"]=intArrayFromString;function intArrayToString(array){var ret=[];for(var i=0;i<array.length;i++){var chr=array[i];if(chr>255){assert(false,"Character code "+chr+" ("+String.fromCharCode(chr)+") at offset "+i+" not in 0x00-0xFF.");chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var lastChar,end;if(dontAddNull){end=buffer+lengthBytesUTF8(string);lastChar=HEAP8[end]}stringToUTF8(string,buffer,Infinity);if(dontAddNull)HEAP8[end]=lastChar}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){assert(array.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)");HEAP8.set(array,buffer)}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){assert(str.charCodeAt(i)===str.charCodeAt(i)&255);HEAP8[buffer++>>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}Module["writeAsciiToMemory"]=writeAsciiToMemory;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"];if(!Math["trunc"])Math["trunc"]=(function(x){return x<0?Math.ceil(x):Math.floor(x)});Math.trunc=Math["trunc"];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_round=Math.round;var Math_min=Math.min;var Math_clz32=Math.clz32;var Math_trunc=Math.trunc;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;var runDependencyTracking={};function getUniqueRunDependency(id){var orig=id;while(1){if(!runDependencyTracking[id])return id;id=orig+Math.random()}return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(id){assert(!runDependencyTracking[id]);runDependencyTracking[id]=1;if(runDependencyWatcher===null&&typeof setInterval!=="undefined"){runDependencyWatcher=setInterval((function(){if(ABORT){clearInterval(runDependencyWatcher);runDependencyWatcher=null;return}var shown=false;for(var dep in runDependencyTracking){if(!shown){shown=true;Module.printErr("still waiting on run dependencies:")}Module.printErr("dependency: "+dep)}if(shown){Module.printErr("(end of list)")}}),1e4)}}else{Module.printErr("warning: run dependency added without ID")}}Module["addRunDependency"]=addRunDependency;function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(id){assert(runDependencyTracking[id]);delete runDependencyTracking[id]}else{Module.printErr("warning: run dependency removed without ID")}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["removeRunDependency"]=removeRunDependency;Module["preloadedImages"]={};Module["preloadedAudios"]={};var ASM_CONSTS=[];STATIC_BASE=8;STATICTOP=STATIC_BASE+72896;__ATINIT__.push({func:(function(){_GNUNET_util_cl_init()})},{func:(function(){_GNUNET_CRYPTO_random_init()})},{func:(function(){_gpg_err_init()})},{func:(function(){_TALER_gcrypt_init()})});allocate([0,0,0,0,0,0,0,0,102,154,0,127,199,106,69,159,152,186,249,23,254,223,149,34,17,154,0,127,199,106,69,159,152,186,249,23,254,223,149,51,6,154,0,127,199,106,69,159,152,186,249,23,254,223,149,33,255,255,255,255,255,255,255,255,34,174,40,215,152,47,138,66,205,101,239,35,145,68,55,113,47,59,77,236,207,251,192,181,188,219,137,129,165,219,181,233,56,181,72,243,91,194,86,57,25,208,5,182,241,17,241,89,155,79,25,175,164,130,63,146,24,129,109,218,213,94,28,171,66,2,3,163,152,170,7,216,190,111,112,69,1,91,131,18,140,178,228,78,190,133,49,36,226,180,255,213,195,125,12,85,111,137,123,242,116,93,190,114,177,150,22,59,254,177,222,128,53,18,199,37,167,6,220,155,148,38,105,207,116,241,155,193,210,74,241,158,193,105,155,228,227,37,79,56,134,71,190,239,181,213,140,139,198,157,193,15,101,156,172,119,204,161,12,36,117,2,43,89,111,44,233,45,131,228,166,110,170,132,116,74,212,251,65,189,220,169,176,92,181,83,17,131,218,136,249,118,171,223,102,238,82,81,62,152,16,50,180,45,109,198,49,168,63,33,251,152,200,39,3,176,228,14,239,190,199,127,89,191,194,143,168,61,243,11,224,198,37,167,10,147,71,145,167,213,111,130,3,224,81,99,202,6,112,110,14,10,103,41,41,20,252,47,210,70,133,10,183,39,38,201,38,92,56,33,27,46,237,42,196,90,252,109,44,77,223,179,149,157,19,13,56,83,222,99,175,139,84,115,10,101,168,178,119,60,187,10,106,118,230,174,237,71,46,201,194,129,59,53,130,20,133,44,114,146,100,3,241,76,161,232,191,162,1,48,66,188,75,102,26,168,145,151,248,208,112,139,75,194,48,190,84,6,163,81,108,199,24,82,239,214,25,232,146,209,16,169,101,85,36,6,153,214,42,32,113,87,133,53,14,244,184,209,187,50,112,160,106,16,200,208,210,184,22,193,164,25,83,171,65,81,8,108,55,30,153,235,142,223,76,119,72,39,168,72,155,225,181,188,176,52,99,90,201,197,179,12,28,57,203,138,65,227,74,170,216,78,115,227,99,119,79,202,156,91,163,184,178,214,243,111,46,104,252,178,239,93,238,130,143,116,96,47,23,67,111,99,165,120,114,171,240,161,20,120,200,132,236,57,100,26,8,2,199,140,40,30,99,35,250,255,190,144,233,189,130,222,235,108,80,164,21,121,198,178,247,163,249,190,43,83,114,227,242,120,113,198,156,97,38,234,206,62,39,202,7,194,192,33,199,184,134,209,30,235,224,205,214,125,218,234,120,209,110,238,127,79,125,245,186,111,23,114,170,103,240,6,166,152,200,162,197,125,99,10,174,13,249,190,4,152,63,17,27,71,28,19,53,11,113,27,132,125,4,35,245,119,219,40,147,36,199,64,123,171,202,50,188,190,201,21,10,190,158,60,76,13,16,156,196,103,29,67,182,66,62,203,190,212,197,76,42,126,101,252,156,41,127,89,236,250,214,58,171,111,203,95,23,88,71,74,140,25,68,108,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,210,84,0,0,255,255,255,255,255,255,255,255,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,1,0,0,0,145,88,0,0,2,0,0,0,157,88,0,0,4,0,0,0,169,88,0,0,8,0,0,0,181,88,0,0,16,0,0,0,194,88,0,0,32,0,0,0,204,88,0,0,64,0,0,0,215,88,0,0,128,0,0,0,227,88,0,0,0,1,0,0,240,88,0,0,0,2,0,0,252,88,0,0,0,4,0,0,9,89,0,0,0,8,0,0,19,89,0,0,0,16,0,0,30,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,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,223,139,0,0,0,1,0,0,0,0,0,0,2,0,0,0,1,0,0,0,213,98,0,0,24,99,0,0,30,99,0,0,98,99,0,0,165,99,0,0,232,99,0,0,43,100,0,0,147,95,0,0,192,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,48,100,0,0,99,100,0,0,150,100,0,0,201,100,0,0,252,100,0,0,47,101,0,0,98,101,0,0,208,95,0,0,224,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,103,101,0,0,162,101,0,0,221,101,0,0,24,102,0,0,83,102,0,0,142,102,0,0,98,101,0,0,251,95,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,201,102,0,0,12,103,0,0,79,103,0,0,146,103,0,0,213,103,0,0,24,104,0,0,98,101,0,0,56,96,0,0,128,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,91,104,0,0,190,104,0,0,33,105,0,0,132,105,0,0,231,105,0,0,74,106,0,0,98,101,0,0,99,96,0,0,9,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,173,106,0,0,52,107,0,0,187,107,0,0,65,108,0,0,199,108,0,0,78,109,0,0,98,101,0,0,142,96,0,0,160,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,213,109,0,0,0,110,0,0,43,110,0,0,86,110,0,0,129,110,0,0,172,110,0,0,98,101,0,0,179,96,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,215,110,0,0,10,111,0,0,61,111,0,0,112,111,0,0,163,111,0,0,214,111,0,0,98,101,0,0,216,96,0,0,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,112,0,0,68,112,0,0,127,112,0,0,186,112,0,0,245,112,0,0,48,113,0,0,98,101,0,0,253,96,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,107,113,0,0,174,113,0,0,241,113,0,0,52,114,0,0,119,114,0,0,186,114,0,0,98,101,0,0,34,97,0,0,64,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,253,114,0,0,80,115,0,0,163,115,0,0,246,115,0,0,73,116,0,0,156,116,0,0,98,101,0,0,71,97,0,0,128,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,239,116,0,0,82,117,0,0,181,117,0,0,24,118,0,0,123,118,0,0,222,118,0,0,98,101,0,0,109,97,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,119,0,0,196,119,0,0,71,120,0,0,202,120,0,0,77,121,0,0,208,121,0,0,98,101,0,0,147,97,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,122,0,0,150,122,0,0,217,122,0,0,28,123,0,0,95,123,0,0,162,123,0,0,98,101,0,0,178,97,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,229,123,0,0,40,124,0,0,107,124,0,0,174,124,0,0,241,124,0,0,52,125,0,0,98,101,0,0,216,97,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,119,125,0,0,186,125,0,0,253,125,0,0,64,126,0,0,241,124,0,0,131,126,0,0,98,101,0,0,254,97,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,198,126,0,0,9,127,0,0,76,127,0,0,143,127,0,0,210,127,0,0,21,128,0,0,98,101,0,0,88,128,0,0,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,102,128,0,0,150,122,0,0,233,128,0,0,108,129,0,0,239,129,0,0,114,130,0,0,98,101,0,0,118,98,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,245,130,0,0,120,131,0,0,251,131,0,0,126,132,0,0,1,133,0,0,132,133,0,0,98,101,0,0,154,98,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,134,0,0,138,134,0,0,13,135,0,0,144,135,0,0,19,136,0,0,150,136,0,0,98,101,0,0,190,98,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25,137,0,0,210,127,0,0,150,122,0,0,92,137,0,0,159,137,0,0,226,137,0,0,98,101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,223,139,0,0,124,95,0,0,147,95,0,0,158,95,0,0,147,95,0,0,178,95,0,0,147,95,0,0,189,95,0,0,147,95,0,0,199,95,0,0,208,95,0,0,219,95,0,0,208,95,0,0,229,95,0,0,208,95,0,0,242,95,0,0,251,95,0,0,6,96,0,0,251,95,0,0,26,96,0,0,251,95,0,0,37,96,0,0,251,95,0,0,47,96,0,0,56,96,0,0,67,96,0,0,56,96,0,0,77,96,0,0,56,96,0,0,90,96,0,0,99,96,0,0,110,96,0,0,99,96,0,0,120,96,0,0,99,96,0,0,133,96,0,0,142,96,0,0,158,96,0,0,179,96,0,0,195,96,0,0,216,96,0,0,232,96,0,0,253,96,0,0,13,97,0,0,34,97,0,0,50,97,0,0,71,97,0,0,87,97,0,0,109,97,0,0,125,97,0,0,147,97,0,0,161,97,0,0,178,97,0,0,199,97,0,0,216,97,0,0,237,97,0,0,254,97,0,0,19,98,0,0,178,97,0,0,36,98,0,0,254,97,0,0,60,98,0,0,178,97,0,0,84,98,0,0,254,97,0,0,101,98,0,0,118,98,0,0,134,98,0,0,154,98,0,0,170,98,0,0,190,98,0,0,200,98,0,0,0,0,0,0,0,0,0,0,79,141,0,0,93,141,0,0,122,141,0,0,163,14,1,9,139,198,219,191,69,105,15,58,126,158,109,15,139,190,162,163,158,97,72,0,143,208,94,68,127,141,0,0,141,141,0,0,150,141,0,0,137,111,177,18,138,187,223,25,104,50,16,124,212,157,243,63,71,180,177,22,153,18,186,79,83,104,75,34,171,141,0,0,186,141,0,0,237,141,0,0,127,179,203,53,136,198,193,246,255,169,105,77,125,106,210,100,147,101,176,193,246,93,105,209,236,131,51,234,2,142,0,0,17,142,0,0,68,142,0,0,108,17,80,104,116,1,60,172,106,42,188,27,179,130,98,124,236,106,144,216,110,252,1,45,231,175,236,90,94,142,0,0,110,142,0,0,165,142,0,0,149,233,160,219,150,32,149,173,174,190,155,45,111,13,188,226,212,153,241,18,242,210,183,39,63,166,135,14,41,143,0,0,58,143,0,0,165,142,0,0,58,133,65,102,172,93,159,2,63,84,213,23,208,179,157,189,148,103,112,219,156,43,149,201,246,245,101,209,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,79,141,0,0,93,141,0,0,122,141,0,0,91,220,193,70,191,96,117,78,106,4,36,38,8,149,117,199,90,0,63,8,157,39,57,131,157,236,88,185,100,236,56,67,127,141,0,0,141,141,0,0,150,141,0,0,176,52,76,97,216,219,56,83,92,168,175,206,175,11,241,43,136,29,194,0,201,131,61,167,38,233,55,108,46,50,207,247,171,141,0,0,186,141,0,0,237,141,0,0,119,62,169,30,54,128,14,70,133,77,184,235,208,145,129,167,41,89,9,139,62,248,193,34,217,99,85,20,206,213,101,254,2,142,0,0,17,142,0,0,68,142,0,0,130,85,138,56,154,68,60,14,164,204,129,152,153,242,8,58,133,240,250,163,229,120,248,7,122,46,63,244,103,41,102,91,94,142,0,0,110,142,0,0,165,142,0,0,96,228,49,89,30,224,182,127,13,138,38,170,203,245,183,127,142,11,198,33,55,40,197,20,5,70,4,15,14,227,127,84,41,143,0,0,58,143,0,0,165,142,0,0,155,9,255,167,27,148,47,203,39,99,95,188,213,176,233,68,191,220,99,100,79,7,19,147,138,127,81,83,92,58,53,226,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,79,141,0,0,93,141,0,0,122,141,0,0,175,69,210,227,118,72,64,49,97,127,120,210,181,138,107,27,156,126,244,100,245,160,27,71,228,46,195,115,99,34,68,94,142,34,64,202,94,105,226,199,139,50,57,236,250,178,22,73,127,141,0,0,141,141,0,0,150,141,0,0,175,208,57,68,216,72,149,98,107,8,37,244,171,70,144,127,21,249,218,219,228,16,30,198,130,170,3,76,124,235,197,156,250,234,158,169,7,110,222,127,74,241,82,232,178,250,156,182,171,141,0,0,186,141,0,0,237,141,0,0,136,6,38,8,211,230,173,138,10,162,172,224,20,200,168,111,10,166,53,217,71,172,159,235,232,62,244,229,89,102,20,75,42,90,179,157,193,56,20,185,78,58,182,225,1,163,79,39,2,142,0,0,17,142,0,0,68,142,0,0,62,138,105,183,120,60,37,133,25,51,171,98,144,175,108,167,122,153,129,72,8,80,0,156,197,87,124,110,31,87,59,78,104,1,221,35,196,167,214,121,204,248,163,134,198,116,207,251,94,142,0,0,110,142,0,0,165,142,0,0,78,206,8,68,133,129,62,144,136,210,198,58,4,27,197,180,79,158,241,1,42,43,88,143,60,209,31,5,3,58,196,198,12,46,246,171,64,48,254,130,150,36,141,241,99,244,73,82,41,143,0,0,58,143,0,0,165,142,0,0,102,23,23,142,148,31,2,13,53,30,47,37,78,143,211,44,96,36,32,254,176,184,251,154,220,206,187,130,70,30,153,197,166,120,204,49,231,153,23,109,56,96,230,17,12,70,82,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,79,141,0,0,93,141,0,0,122,141,0,0,22,75,122,123,252,248,25,226,227,149,251,231,59,86,224,163,135,189,100,34,46,131,31,214,16,39,12,215,234,37,5,84,151,88,191,117,192,90,153,74,109,3,79,101,248,240,230,253,202,234,177,163,77,74,107,75,99,110,7,10,56,188,231,55,127,141,0,0,141,141,0,0,150,141,0,0,135,170,124,222,165,239,97,157,79,240,180,36,26,29,108,176,35,121,244,226,206,78,194,120,122,208,179,5,69,225,124,222,218,168,51,183,214,184,167,2,3,139,39,78,174,163,244,228,190,157,145,78,235,97,241,112,46,105,108,32,58,18,104,84,171,141,0,0,186,141,0,0,237,141,0,0,250,115,176,8,157,86,162,132,239,176,240,117,108,137,11,233,177,181,219,221,142,232,26,54,85,248,62,51,178,39,157,57,191,62,132,130,121,167,34,200,6,180,133,164,126,103,200,7,185,70,163,55,190,232,148,38,116,39,136,89,225,50,146,251,2,142,0,0,17,142,0,0,68,142,0,0,176,186,70,86,55,69,140,105,144,229,168,197,246,29,74,247,229,118,217,127,249,75,135,45,231,111,128,80,54,30,227,219,169,28,165,193,26,162,94,180,214,121,39,92,197,120,128,99,165,241,151,65,18,12,79,45,226,173,235,235,16,162,152,221,94,142,0,0,110,142,0,0,165,142,0,0,128,178,66,99,199,193,163,235,183,20,147,193,221,123,232,180,155,70,209,244,27,74,238,193,18,27,1,55,131,248,243,82,107,86,208,55,224,95,37,152,189,15,210,33,93,106,30,82,149,230,79,115,246,63,10,236,139,145,90,152,93,120,101,152,41,143,0,0,58,143,0,0,165,142,0,0,227,123,106,119,93,200,125,186,164,223,169,249,110,94,63,253,222,189,113,248,134,114,137,134,93,245,163,45,32,205,201,68,182,2,44,172,60,73,130,177,13,94,235,85,195,228,222,21,19,70,118,251,109,224,68,96,101,201,116,64,250,140,106,88,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,193,146,0,0,2,0,0,0,198,146,0,0,1,0,0,0,202,146,0,0,8,0,0,0,209,146,0,0,3,0,0,0,219,146,0,0,3,0,0,0,226,146,0,0,9,0,0,0,233,146,0,0,10,0,0,0,240,146,0,0,11,0,0,0,247,146,0,0,5,0,0,0,251,146,0,0,45,1,0,0,255,146,0,0,6,0,0,0,5,147,0,0,7,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,2,0,0,0,133,147,0,0,64,17,0,0,80,17,0,0,16,0,0,0,128,0,0,0,248,1,0,0,1,0,0,0,2,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,215,149,0,0,224,149,0,0,231,149,0,0,0,0,0,0,123,149,0,0,1,0,0,0,146,149,0,0,3,0,0,0,169,149,0,0,5,0,0,0,192,149,0,0,2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,43,126,21,22,40,174,210,166,171,247,21,136,9,207,79,60,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,107,193,190,226,46,64,159,150,233,61,126,17,115,147,23,42,59,63,217,46,183,45,173,32,51,52,73,248,232,60,251,74,174,45,138,87,30,3,172,156,158,183,111,172,69,175,142,81,200,166,69,55,160,179,169,63,205,227,205,173,159,28,229,139,48,200,28,70,163,92,228,17,229,251,193,25,26,10,82,239,38,117,31,103,163,203,177,64,177,128,140,241,135,164,244,223,246,159,36,69,223,79,155,23,173,43,65,123,230,108,55,16,192,75,5,53,124,93,28,14,234,196,198,111,159,247,242,230,5,0,0,0,43,126,21,22,40,174,210,166,171,247,21,136,9,207,79,60,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,107,193,190,226,46,64,159,150,233,61,126,17,115,147,23,42,59,63,217,46,183,45,173,32,51,52,73,248,232,60,251,74,174,45,138,87,30,3,172,156,158,183,111,172,69,175,142,81,119,137,80,141,22,145,143,3,245,60,82,218,197,78,216,37,48,200,28,70,163,92,228,17,229,251,193,25,26,10,82,239,151,64,5,30,156,95,236,246,67,68,247,168,34,96,237,204,246,159,36,69,223,79,155,23,173,43,65,123,230,108,55,16,48,76,101,40,246,89,199,120,102,165,16,217,193,214,174,94,198,99,99,165,248,124,124,132,238,119,119,153,246,123,123,141,255,242,242,13,214,107,107,189,222,111,111,177,145,197,197,84,96,48,48,80,2,1,1,3,206,103,103,169,86,43,43,125,231,254,254,25,181,215,215,98,77,171,171,230,236,118,118,154,143,202,202,69,31,130,130,157,137,201,201,64,250,125,125,135,239,250,250,21,178,89,89,235,142,71,71,201,251,240,240,11,65,173,173,236,179,212,212,103,95,162,162,253,69,175,175,234,35,156,156,191,83,164,164,247,228,114,114,150,155,192,192,91,117,183,183,194,225,253,253,28,61,147,147,174,76,38,38,106,108,54,54,90,126,63,63,65,245,247,247,2,131,204,204,79,104,52,52,92,81,165,165,244,209,229,229,52,249,241,241,8,226,113,113,147,171,216,216,115,98,49,49,83,42,21,21,63,8,4,4,12,149,199,199,82,70,35,35,101,157,195,195,94,48,24,24,40,55,150,150,161,10,5,5,15,47,154,154,181,14,7,7,9,36,18,18,54,27,128,128,155,223,226,226,61,205,235,235,38,78,39,39,105,127,178,178,205,234,117,117,159,18,9,9,27,29,131,131,158,88,44,44,116,52,26,26,46,54,27,27,45,220,110,110,178,180,90,90,238,91,160,160,251,164,82,82,246,118,59,59,77,183,214,214,97,125,179,179,206,82,41,41,123,221,227,227,62,94,47,47,113,19,132,132,151,166,83,83,245,185,209,209,104,0,0,0,0,193,237,237,44,64,32,32,96,227,252,252,31,121,177,177,200,182,91,91,237,212,106,106,190,141,203,203,70,103,190,190,217,114,57,57,75,148,74,74,222,152,76,76,212,176,88,88,232,133,207,207,74,187,208,208,107,197,239,239,42,79,170,170,229,237,251,251,22,134,67,67,197,154,77,77,215,102,51,51,85,17,133,133,148,138,69,69,207,233,249,249,16,4,2,2,6,254,127,127,129,160,80,80,240,120,60,60,68,37,159,159,186,75,168,168,227,162,81,81,243,93,163,163,254,128,64,64,192,5,143,143,138,63,146,146,173,33,157,157,188,112,56,56,72,241,245,245,4,99,188,188,223,119,182,182,193,175,218,218,117,66,33,33,99,32,16,16,48,229,255,255,26,253,243,243,14,191,210,210,109,129,205,205,76,24,12,12,20,38,19,19,53,195,236,236,47,190,95,95,225,53,151,151,162,136,68,68,204,46,23,23,57,147,196,196,87,85,167,167,242,252,126,126,130,122,61,61,71,200,100,100,172,186,93,93,231,50,25,25,43,230,115,115,149,192,96,96,160,25,129,129,152,158,79,79,209,163,220,220,127,68,34,34,102,84,42,42,126,59,144,144,171,11,136,136,131,140,70,70,202,199,238,238,41,107,184,184,211,40,20,20,60,167,222,222,121,188,94,94,226,22,11,11,29,173,219,219,118,219,224,224,59,100,50,50,86,116,58,58,78,20,10,10,30,146,73,73,219,12,6,6,10,72,36,36,108,184,92,92,228,159,194,194,93,189,211,211,110,67,172,172,239,196,98,98,166,57,145,145,168,49,149,149,164,211,228,228,55,242,121,121,139,213,231,231,50,139,200,200,67,110,55,55,89,218,109,109,183,1,141,141,140,177,213,213,100,156,78,78,210,73,169,169,224,216,108,108,180,172,86,86,250,243,244,244,7,207,234,234,37,202,101,101,175,244,122,122,142,71,174,174,233,16,8,8,24,111,186,186,213,240,120,120,136,74,37,37,111,92,46,46,114,56,28,28,36,87,166,166,241,115,180,180,199,151,198,198,81,203,232,232,35,161,221,221,124,232,116,116,156,62,31,31,33,150,75,75,221,97,189,189,220,13,139,139,134,15,138,138,133,224,112,112,144,124,62,62,66,113,181,181,196,204,102,102,170,144,72,72,216,6,3,3,5,247,246,246,1,28,14,14,18,194,97,97,163,106,53,53,95,174,87,87,249,105,185,185,208,23,134,134,145,153,193,193,88,58,29,29,39,39,158,158,185,217,225,225,56,235,248,248,19,43,152,152,179,34,17,17,51,210,105,105,187,169,217,217,112,7,142,142,137,51,148,148,167,45,155,155,182,60,30,30,34,21,135,135,146,201,233,233,32,135,206,206,73,170,85,85,255,80,40,40,120,165,223,223,122,3,140,140,143,89,161,161,248,9,137,137,128,26,13,13,23,101,191,191,218,215,230,230,49,132,66,66,198,208,104,104,184,130,65,65,195,41,153,153,176,90,45,45,119,30,15,15,17,123,176,176,203,168,84,84,252,109,187,187,214,44,22,22,58,81,244,167,80,126,65,101,83,26,23,164,195,58,39,94,150,59,171,107,203,31,157,69,241,172,250,88,171,75,227,3,147,32,48,250,85,173,118,109,246,136,204,118,145,245,2,76,37,79,229,215,252,197,42,203,215,38,53,68,128,181,98,163,143,222,177,90,73,37,186,27,103,69,234,14,152,93,254,192,225,195,47,117,2,129,76,240,18,141,70,151,163,107,211,249,198,3,143,95,231,21,146,156,149,191,109,122,235,149,82,89,218,212,190,131,45,88,116,33,211,73,224,105,41,142,201,200,68,117,194,137,106,244,142,121,120,153,88,62,107,39,185,113,221,190,225,79,182,240,136,173,23,201,32,172,102,125,206,58,180,99,223,74,24,229,26,49,130,151,81,51,96,98,83,127,69,177,100,119,224,187,107,174,132,254,129,160,28,249,8,43,148,112,72,104,88,143,69,253,25,148,222,108,135,82,123,248,183,171,115,211,35,114,75,2,226,227,31,143,87,102,85,171,42,178,235,40,7,47,181,194,3,134,197,123,154,211,55,8,165,48,40,135,242,35,191,165,178,2,3,106,186,237,22,130,92,138,207,28,43,167,121,180,146,243,7,242,240,78,105,226,161,101,218,244,205,6,5,190,213,209,52,98,31,196,166,254,138,52,46,83,157,162,243,85,160,5,138,225,50,164,246,235,117,11,131,236,57,64,96,239,170,94,113,159,6,189,110,16,81,62,33,138,249,150,221,6,61,221,62,5,174,77,230,189,70,145,84,141,181,113,196,93,5,4,6,212,111,96,80,21,255,25,152,251,36,214,189,233,151,137,64,67,204,103,217,158,119,176,232,66,189,7,137,139,136,231,25,91,56,121,200,238,219,161,124,10,71,124,66,15,233,248,132,30,201,0,0,0,0,9,128,134,131,50,43,237,72,30,17,112,172,108,90,114,78,253,14,255,251,15,133,56,86,61,174,213,30,54,45,57,39,10,15,217,100,104,92,166,33,155,91,84,209,36,54,46,58,12,10,103,177,147,87,231,15,180,238,150,210,27,155,145,158,128,192,197,79,97,220,32,162,90,119,75,105,28,18,26,22,226,147,186,10,192,160,42,229,60,34,224,67,18,27,23,29,14,9,13,11,242,139,199,173,45,182,168,185,20,30,169,200,87,241,25,133,175,117,7,76,238,153,221,187,163,127,96,253,247,1,38,159,92,114,245,188,68,102,59,197,91,251,126,52,139,67,41,118,203,35,198,220,182,237,252,104,184,228,241,99,215,49,220,202,66,99,133,16,19,151,34,64,132,198,17,32,133,74,36,125,210,187,61,248,174,249,50,17,199,41,161,109,29,158,47,75,220,178,48,243,13,134,82,236,119,193,227,208,43,179,22,108,169,112,185,153,17,148,72,250,71,233,100,34,168,252,140,196,160,240,63,26,86,125,44,216,34,51,144,239,135,73,78,199,217,56,209,193,140,202,162,254,152,212,11,54,166,245,129,207,165,122,222,40,218,183,142,38,63,173,191,164,44,58,157,228,80,120,146,13,106,95,204,155,84,126,70,98,246,141,19,194,144,216,184,232,46,57,247,94,130,195,175,245,159,93,128,190,105,208,147,124,111,213,45,169,207,37,18,179,200,172,153,59,16,24,125,167,232,156,99,110,219,59,187,123,205,38,120,9,110,89,24,244,236,154,183,1,131,79,154,168,230,149,110,101,170,255,230,126,33,188,207,8,239,21,232,230,186,231,155,217,74,111,54,206,234,159,9,212,41,176,124,214,49,164,178,175,42,63,35,49,198,165,148,48,53,162,102,192,116,78,188,55,252,130,202,166,224,144,208,176,51,167,216,21,241,4,152,74,65,236,218,247,127,205,80,14,23,145,246,47,118,77,214,141,67,239,176,77,204,170,77,84,228,150,4,223,158,209,181,227,76,106,136,27,193,44,31,184,70,101,81,127,157,94,234,4,1,140,53,93,250,135,116,115,251,11,65,46,179,103,29,90,146,219,210,82,233,16,86,51,109,214,71,19,154,215,97,140,55,161,12,122,89,248,20,142,235,19,60,137,206,169,39,238,183,97,201,53,225,28,229,237,122,71,177,60,156,210,223,89,85,242,115,63,24,20,206,121,115,199,55,191,83,247,205,234,95,253,170,91,223,61,111,20,120,68,219,134,202,175,243,129,185,104,196,62,56,36,52,44,194,163,64,95,22,29,195,114,188,226,37,12,40,60,73,139,255,13,149,65,57,168,1,113,8,12,179,222,216,180,228,156,100,86,193,144,123,203,132,97,213,50,182,112,72,108,92,116,208,184,87,66,82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125,1,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,16,0,0,0,32,0,0,0,64,0,0,0,128,0,0,0,27,0,0,0,54,0,0,0,108,0,0,0,216,0,0,0,171,0,0,0,77,0,0,0,154,0,0,0,47,0,0,0,94,0,0,0,188,0,0,0,99,0,0,0,198,0,0,0,151,0,0,0,53,0,0,0,106,0,0,0,212,0,0,0,179,0,0,0,125,0,0,0,250,0,0,0,239,0,0,0,197,0,0,0,145,0,0,0,8,0,0,0,2,0,0,0,239,149,0,0,120,28,0,0,132,28,0,0,16,0,0,0,192,0,0,0,248,1,0,0,1,0,0,0,2,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,86,150,0,0,98,150,0,0,0,0,0,0,246,149,0,0,1,0,0,0,14,150,0,0,3,0,0,0,38,150,0,0,5,0,0,0,62,150,0,0,2,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,2,0,0,0,106,150,0,0,236,28,0,0,248,28,0,0,16,0,0,0,0,1,0,0,248,1,0,0,1,0,0,0,2,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,209,150,0,0,221,150,0,0,0,0,0,0,113,150,0,0,1,0,0,0,137,150,0,0,3,0,0,0,161,150,0,0,5,0,0,0,185,150,0,0,2,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,229,150,0,0,239,150,0,0,15,0,0,0,84,29,0,0,20,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,184,0,0,0,0,0,0,0,254,150,0,0,13,151,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,145,152,0,0,180,29,0,0,149,152,0,0,152,152,0,0,159,152,0,0,161,152,0,0,163,152,0,0,1,0,0,0,2,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,245,158,0,0,246,163,0,0,2,164,0,0,0,0,0,0,2,0,0,0,2,0,0,0,27,164,0,0,32,164,0,0,15,0,0,0,248,29,0,0,20,0,0,0,2,0,0,0,1,0,0,0,2,0,0,0,4,0,0,0,184,0,0,0,10,0,0,0,110,164,0,0,131,164,0,0,149,164,0,0,163,164,0,0,177,164,0,0,0,0,0,0,11,0,0,0,2,0,0,0,195,164,0,0,202,164,0,0,19,0,0,0,68,30,0,0,28,0,0,0,3,0,0,0,1,0,0,0,3,0,0,0,5,0,0,0,192,0,0,0,11,0,0,0,208,165,0,0,0,0,0,0,8,0,0,0,2,0,0,0,231,165,0,0,238,165,0,0,19,0,0,0,128,30,0,0,32,0,0,0,4,0,0,0,1,0,0,0,3,0,0,0,5,0,0,0,192,0,0,0,11,0,0,0,1,166,0,0,24,166,0,0,0,0,0,0,10,0,0,0,2,0,0,0,46,166,0,0,53,166,0,0,19,0,0,0,192,30,0,0,64,0,0,0,5,0,0,0,1,0,0,0,4,0,0,0,6,0,0,0,224,0,0,0,12,0,0,0,67,168,0,0,90,168,0,0,0,0,0,0,9,0,0,0,2,0,0,0,112,168,0,0,119,168,0,0,19,0,0,0,0,31,0,0,48,0,0,0,6,0,0,0,1,0,0,0,4,0,0,0,6,0,0,0,224,0,0,0,12,0,0,0,138,168,0,0,161,168,0,0,0,0,0,0,10,0,0,0,0,0,0,0,183,168,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,1,0,0,160,16,0,0,13,0,0,0,14,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,117,50,188,188,243,33,236,236,198,67,32,32,244,201,179,179,219,3,218,218,123,139,2,2,251,43,226,226,200,250,158,158,74,236,201,201,211,9,212,212,230,107,24,24,107,159,30,30,69,14,152,152,125,56,178,178,232,210,166,166,75,183,38,38,214,87,60,60,50,138,147,147,216,238,130,130,253,152,82,82,55,212,123,123,113,55,187,187,241,151,91,91,225,131,71,71,48,60,36,36,15,226,81,81,248,198,186,186,27,243,74,74,135,72,191,191,250,112,13,13,6,179,176,176,63,222,117,117,94,253,210,210,186,32,125,125,174,49,102,102,91,163,58,58,138,28,89,89,0,0,0,0,188,147,205,205,157,224,26,26,109,44,174,174,193,171,127,127,177,199,43,43,14,185,190,190,128,160,224,224,93,16,138,138,210,82,59,59,213,186,100,100,160,136,216,216,132,165,231,231,7,232,95,95,20,17,27,27,181,194,44,44,144,180,252,252,44,39,49,49,163,101,128,128,178,42,115,115,115,129,12,12,76,95,121,121,84,65,107,107,146,2,75,75,116,105,83,83,54,143,148,148,81,31,131,131,56,54,42,42,176,156,196,196,189,200,34,34,90,248,213,213,252,195,189,189,96,120,72,72,98,206,255,255,150,7,76,76,108,119,65,65,66,230,199,199,247,36,235,235,16,20,28,28,124,99,93,93,40,34,54,54,39,192,103,103,140,175,233,233,19,249,68,68,149,234,20,20,156,187,245,245,199,24,207,207,36,45,63,63,70,227,192,192,59,219,114,114,112,108,84,84,202,76,41,41,227,53,240,240,133,254,8,8,203,23,198,198,17,79,243,243,208,228,140,140,147,89,164,164,184,150,202,202,166,59,104,104,131,77,184,184,32,40,56,56,255,46,229,229,159,86,173,173,119,132,11,11,195,29,200,200,204,255,153,153,3,237,88,88,111,154,25,25,8,10,14,14,191,126,149,149,64,80,112,112,231,48,247,247,43,207,110,110,226,110,31,31,121,61,181,181,12,15,9,9,170,52,97,97,130,22,87,87,65,11,159,159,58,128,157,157,234,100,17,17,185,205,37,37,228,221,175,175,154,8,69,69,164,141,223,223,151,92,163,163,126,213,234,234,218,88,53,53,122,208,237,237,23,252,67,67,102,203,248,248,148,177,251,251,161,211,55,55,29,64,250,250,61,104,194,194,240,204,180,180,222,93,50,50,179,113,156,156,11,231,86,86,114,218,227,227,167,96,135,135,28,27,21,21,239,58,249,249,209,191,99,99,83,169,52,52,62,133,154,154,143,66,177,177,51,209,124,124,38,155,136,136,95,166,61,61,236,215,161,161,118,223,228,228,42,148,129,129,73,1,145,145,129,251,15,15,136,170,238,238,238,97,22,22,33,115,215,215,196,245,151,151,26,168,165,165,235,63,254,254,217,181,109,109,197,174,120,120,57,109,197,197,153,229,29,29,205,164,118,118,173,220,62,62,49,103,203,203,139,71,182,182,1,91,239,239,24,30,18,18,35,197,96,96,221,176,106,106,31,246,77,77,78,233,206,206,45,124,222,222,249,157,85,85,72,90,126,126,79,178,33,33,242,122,3,3,101,38,160,160,142,25,94,94,120,102,90,90,92,75,101,101,88,78,98,98,25,69,253,253,141,244,6,6,229,134,64,64,152,190,242,242,87,172,51,51,103,144,23,23,127,142,5,5,5,94,232,232,100,125,79,79,175,106,137,137,99,149,16,16,182,47,116,116,254,117,10,10,245,146,92,92,183,116,155,155,60,51,45,45,165,214,48,48,206,73,46,46,233,137,73,73,104,114,70,70,68,85,119,119,224,216,168,168,77,4,150,150,67,189,40,40,105,41,169,169,41,121,217,217,46,145,134,134,172,135,209,209,21,74,244,244,89,21,141,141,168,130,214,214,10,188,185,185,158,13,66,66,110,193,246,246,71,184,47,47,223,6,221,221,52,57,35,35,53,98,204,204,106,196,241,241,207,18,193,193,220,235,133,133,34,158,143,143,201,161,113,113,192,240,144,144,155,83,170,170,137,241,1,1,212,225,139,139,237,140,78,78,171,111,142,142,18,162,171,171,162,62,111,111,13,84,230,230,82,242,219,219,187,123,146,146,2,182,183,183,47,202,105,105,169,217,57,57,215,12,211,211,97,35,167,167,30,173,162,162,180,153,195,195,80,68,108,108,4,5,7,7,246,127,4,4,194,70,39,39,22,167,172,172,37,118,208,208,134,19,80,80,86,247,220,220,85,26,132,132,9,81,225,225,190,37,122,122,145,239,19,19,57,57,217,169,23,23,144,103,156,156,113,179,166,166,210,232,7,7,5,4,82,82,152,253,128,128,101,163,228,228,223,118,69,69,8,154,75,75,2,146,224,224,160,128,90,90,102,120,175,175,221,228,106,106,176,221,99,99,191,209,42,42,54,56,230,230,84,13,32,32,67,198,204,204,98,53,242,242,190,152,18,18,30,24,235,235,36,247,161,161,215,236,65,65,119,108,40,40,189,67,188,188,50,117,123,123,212,55,136,136,155,38,13,13,112,250,68,68,249,19,251,251,177,148,126,126,90,72,3,3,122,242,140,140,228,208,182,182,71,139,36,36,60,48,231,231,165,132,107,107,65,84,221,221,6,223,96,96,197,35,253,253,69,25,58,58,163,91,194,194,104,61,141,141,21,89,236,236,33,243,102,102,49,174,111,111,62,162,87,87,22,130,16,16,149,99,239,239,91,1,184,184,77,131,134,134,145,46,109,109,181,217,131,131,31,81,170,170,83,155,93,93,99,124,104,104,59,166,254,254,63,235,48,48,214,165,122,122,37,190,172,172,167,22,9,9,15,12,240,240,53,227,167,167,35,97,144,144,240,192,233,233,175,140,157,157,128,58,92,92,146,245,12,12,129,115,49,49,39,44,208,208,118,37,86,86,231,11,146,146,123,187,206,206,233,78,1,1,241,137,30,30,159,107,52,52,169,83,241,241,196,106,195,195,153,180,91,91,151,241,71,71,131,225,24,24,107,230,34,34,200,189,152,152,14,69,31,31,110,226,179,179,201,244,116,116,47,182,248,248,203,102,153,153,255,204,20,20,234,149,88,88,237,3,220,220,247,86,139,139,225,212,21,21,27,28,162,162,173,30,211,211,12,215,226,226,43,251,200,200,29,195,94,94,25,142,44,44,194,181,73,73,137,233,193,193,18,207,149,149,126,191,125,125,32,186,17,17,100,234,11,11,132,119,197,197,109,57,137,137,106,175,124,124,209,51,113,113,161,201,255,255,206,98,187,187,55,113,15,15,251,129,181,181,61,121,225,225,81,9,62,62,220,173,63,63,45,36,118,118,164,205,85,85,157,249,130,130,238,216,64,64,134,229,120,120,174,197,37,37,205,185,150,150,4,77,119,119,85,68,14,14,10,8,80,80,19,134,247,247,48,231,55,55,211,161,250,250,64,29,97,97,52,170,78,78,140,237,176,176,179,6,84,84,108,112,115,115,42,178,59,59,82,210,159,159,11,65,2,2,139,123,216,216,136,160,243,243,79,17,203,203,103,49,39,39,70,194,103,103,192,39,252,252,180,144,56,56,40,32,4,4,127,246,72,72,120,96,229,229,46,255,76,76,7,150,101,101,75,92,43,43,199,177,142,142,111,171,66,66,13,158,245,245,187,156,219,219,242,82,74,74,243,27,61,61,166,95,164,164,89,147,185,185,188,10,249,249,58,239,19,19,239,145,8,8,254,133,145,145,1,73,22,22,97,238,222,222,124,45,33,33,178,79,177,177,66,143,114,114,219,59,47,47,184,71,191,191,72,135,174,174,44,109,192,192,227,70,60,60,87,214,154,154,133,62,169,169,41,105,79,79,125,100,129,129,148,42,46,46,73,206,198,198,23,203,105,105,202,47,189,189,195,252,163,163,92,151,232,232,94,5,237,237,208,122,209,209,135,172,5,5,142,127,100,100,186,213,165,165,168,26,38,38,183,75,190,190,185,14,135,135,96,167,213,213,248,90,54,54,34,40,27,27,17,20,117,117,222,63,217,217,121,41,238,238,170,136,45,45,51,60,121,121,95,76,183,183,182,2,202,202,150,184,53,53,88,218,196,196,156,176,67,67,252,23,132,132,26,85,77,77,246,31,89,89,28,138,178,178,56,125,51,51,172,87,207,207,24,199,6,6,244,141,83,83,105,116,155,155,116,183,151,151,245,196,173,173,86,159,227,227,218,114,234,234,213,126,244,244,74,21,143,143,158,34,171,171,162,18,98,98,78,88,95,95,232,7,29,29,229,153,35,35,57,52,246,246,193,110,108,108,68,80,50,50,93,222,70,70,114,104,160,160,38,101,205,205,147,188,218,218,3,219,186,186,198,248,158,158,250,200,214,214,130,168,110,110,207,43,112,112,80,64,133,133,235,220,10,10,117,254,147,147,138,50,223,223,141,164,41,41,76,202,28,28,20,16,215,215,115,33,180,180,204,240,212,212,9,211,138,138,16,93,81,81,226,15,0,0,0,0,25,25,154,111,26,26,224,157,148,148,143,54,199,199,230,66,201,201,236,74,210,210,253,94,127,127,171,193,168,168,216,224,50,188,117,188,33,236,243,236,67,32,198,32,201,179,244,179,3,218,219,218,139,2,123,2,43,226,251,226,250,158,200,158,236,201,74,201,9,212,211,212,107,24,230,24,159,30,107,30,14,152,69,152,56,178,125,178,210,166,232,166,183,38,75,38,87,60,214,60,138,147,50,147,238,130,216,130,152,82,253,82,212,123,55,123,55,187,113,187,151,91,241,91,131,71,225,71,60,36,48,36,226,81,15,81,198,186,248,186,243,74,27,74,72,191,135,191,112,13,250,13,179,176,6,176,222,117,63,117,253,210,94,210,32,125,186,125,49,102,174,102,163,58,91,58,28,89,138,89,0,0,0,0,147,205,188,205,224,26,157,26,44,174,109,174,171,127,193,127,199,43,177,43,185,190,14,190,160,224,128,224,16,138,93,138,82,59,210,59],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);allocate([186,100,213,100,136,216,160,216,165,231,132,231,232,95,7,95,17,27,20,27,194,44,181,44,180,252,144,252,39,49,44,49,101,128,163,128,42,115,178,115,129,12,115,12,95,121,76,121,65,107,84,107,2,75,146,75,105,83,116,83,143,148,54,148,31,131,81,131,54,42,56,42,156,196,176,196,200,34,189,34,248,213,90,213,195,189,252,189,120,72,96,72,206,255,98,255,7,76,150,76,119,65,108,65,230,199,66,199,36,235,247,235,20,28,16,28,99,93,124,93,34,54,40,54,192,103,39,103,175,233,140,233,249,68,19,68,234,20,149,20,187,245,156,245,24,207,199,207,45,63,36,63,227,192,70,192,219,114,59,114,108,84,112,84,76,41,202,41,53,240,227,240,254,8,133,8,23,198,203,198,79,243,17,243,228,140,208,140,89,164,147,164,150,202,184,202,59,104,166,104,77,184,131,184,40,56,32,56,46,229,255,229,86,173,159,173,132,11,119,11,29,200,195,200,255,153,204,153,237,88,3,88,154,25,111,25,10,14,8,14,126,149,191,149,80,112,64,112,48,247,231,247,207,110,43,110,110,31,226,31,61,181,121,181,15,9,12,9,52,97,170,97,22,87,130,87,11,159,65,159,128,157,58,157,100,17,234,17,205,37,185,37,221,175,228,175,8,69,154,69,141,223,164,223,92,163,151,163,213,234,126,234,88,53,218,53,208,237,122,237,252,67,23,67,203,248,102,248,177,251,148,251,211,55,161,55,64,250,29,250,104,194,61,194,204,180,240,180,93,50,222,50,113,156,179,156,231,86,11,86,218,227,114,227,96,135,167,135,27,21,28,21,58,249,239,249,191,99,209,99,169,52,83,52,133,154,62,154,66,177,143,177,209,124,51,124,155,136,38,136,166,61,95,61,215,161,236,161,223,228,118,228,148,129,42,129,1,145,73,145,251,15,129,15,170,238,136,238,97,22,238,22,115,215,33,215,245,151,196,151,168,165,26,165,63,254,235,254,181,109,217,109,174,120,197,120,109,197,57,197,229,29,153,29,164,118,205,118,220,62,173,62,103,203,49,203,71,182,139,182,91,239,1,239,30,18,24,18,197,96,35,96,176,106,221,106,246,77,31,77,233,206,78,206,124,222,45,222,157,85,249,85,90,126,72,126,178,33,79,33,122,3,242,3,38,160,101,160,25,94,142,94,102,90,120,90,75,101,92,101,78,98,88,98,69,253,25,253,244,6,141,6,134,64,229,64,190,242,152,242,172,51,87,51,144,23,103,23,142,5,127,5,94,232,5,232,125,79,100,79,106,137,175,137,149,16,99,16,47,116,182,116,117,10,254,10,146,92,245,92,116,155,183,155,51,45,60,45,214,48,165,48,73,46,206,46,137,73,233,73,114,70,104,70,85,119,68,119,216,168,224,168,4,150,77,150,189,40,67,40,41,169,105,169,121,217,41,217,145,134,46,134,135,209,172,209,74,244,21,244,21,141,89,141,130,214,168,214,188,185,10,185,13,66,158,66,193,246,110,246,184,47,71,47,6,221,223,221,57,35,52,35,98,204,53,204,196,241,106,241,18,193,207,193,235,133,220,133,158,143,34,143,161,113,201,113,240,144,192,144,83,170,155,170,241,1,137,1,225,139,212,139,140,78,237,78,111,142,171,142,162,171,18,171,62,111,162,111,84,230,13,230,242,219,82,219,123,146,187,146,182,183,2,183,202,105,47,105,217,57,169,57,12,211,215,211,35,167,97,167,173,162,30,162,153,195,180,195,68,108,80,108,5,7,4,7,127,4,246,4,70,39,194,39,167,172,22,172,118,208,37,208,19,80,134,80,247,220,86,220,26,132,85,132,81,225,9,225,37,122,190,122,239,19,145,19,217,169,57,217,144,103,23,144,113,179,156,113,210,232,166,210,5,4,7,5,152,253,82,152,101,163,128,101,223,118,228,223,8,154,69,8,2,146,75,2,160,128,224,160,102,120,90,102,221,228,175,221,176,221,106,176,191,209,99,191,54,56,42,54,84,13,230,84,67,198,32,67,98,53,204,98,190,152,242,190,30,24,18,30,36,247,235,36,215,236,161,215,119,108,65,119,189,67,40,189,50,117,188,50,212,55,123,212,155,38,136,155,112,250,13,112,249,19,68,249,177,148,251,177,90,72,126,90,122,242,3,122,228,208,140,228,71,139,182,71,60,48,36,60,165,132,231,165,65,84,107,65,6,223,221,6,197,35,96,197,69,25,253,69,163,91,58,163,104,61,194,104,21,89,141,21,33,243,236,33,49,174,102,49,62,162,111,62,22,130,87,22,149,99,16,149,91,1,239,91,77,131,184,77,145,46,134,145,181,217,109,181,31,81,131,31,83,155,170,83,99,124,93,99,59,166,104,59,63,235,254,63,214,165,48,214,37,190,122,37,167,22,172,167,15,12,9,15,53,227,240,53,35,97,167,35,240,192,144,240,175,140,233,175,128,58,157,128,146,245,92,146,129,115,12,129,39,44,49,39,118,37,208,118,231,11,86,231,123,187,146,123,233,78,206,233,241,137,1,241,159,107,30,159,169,83,52,169,196,106,241,196,153,180,195,153,151,241,91,151,131,225,71,131,107,230,24,107,200,189,34,200,14,69,152,14,110,226,31,110,201,244,179,201,47,182,116,47,203,102,248,203,255,204,153,255,234,149,20,234,237,3,88,237,247,86,220,247,225,212,139,225,27,28,21,27,173,30,162,173,12,215,211,12,43,251,226,43,29,195,200,29,25,142,94,25,194,181,44,194,137,233,73,137,18,207,193,18,126,191,149,126,32,186,125,32,100,234,17,100,132,119,11,132,109,57,197,109,106,175,137,106,209,51,124,209,161,201,113,161,206,98,255,206,55,113,187,55,251,129,15,251,61,121,181,61,81,9,225,81,220,173,62,220,45,36,63,45,164,205,118,164,157,249,85,157,238,216,130,238,134,229,64,134,174,197,120,174,205,185,37,205,4,77,150,4,85,68,119,85,10,8,14,10,19,134,80,19,48,231,247,48,211,161,55,211,64,29,250,64,52,170,97,52,140,237,78,140,179,6,176,179,108,112,84,108,42,178,115,42,82,210,59,82,11,65,159,11,139,123,2,139,136,160,216,136,79,17,243,79,103,49,203,103,70,194,39,70,192,39,103,192,180,144,252,180,40,32,56,40,127,246,4,127,120,96,72,120,46,255,229,46,7,150,76,7,75,92,101,75,199,177,43,199,111,171,142,111,13,158,66,13,187,156,245,187,242,82,219,242,243,27,74,243,166,95,61,166,89,147,164,89,188,10,185,188,58,239,249,58,239,145,19,239,254,133,8,254,1,73,145,1,97,238,22,97,124,45,222,124,178,79,33,178,66,143,177,66,219,59,114,219,184,71,47,184,72,135,191,72,44,109,174,44,227,70,192,227,87,214,60,87,133,62,154,133,41,105,169,41,125,100,79,125,148,42,129,148,73,206,46,73,23,203,198,23,202,47,105,202,195,252,189,195,92,151,163,92,94,5,232,94,208,122,237,208,135,172,209,135,142,127,5,142,186,213,100,186,168,26,165,168,183,75,38,183,185,14,190,185,96,167,135,96,248,90,213,248,34,40,54,34,17,20,27,17,222,63,117,222,121,41,217,121,170,136,238,170,51,60,45,51,95,76,121,95,182,2,183,182,150,184,202,150,88,218,53,88,156,176,196,156,252,23,67,252,26,85,132,26,246,31,77,246,28,138,89,28,56,125,178,56,172,87,51,172,24,199,207,24,244,141,6,244,105,116,83,105,116,183,155,116,245,196,151,245,86,159,173,86,218,114,227,218,213,126,234,213,74,21,244,74,158,34,143,158,162,18,171,162,78,88,98,78,232,7,95,232,229,153,29,229,57,52,35,57,193,110,246,193,68,80,108,68,93,222,50,93,114,104,70,114,38,101,160,38,147,188,205,147,3,219,218,3,198,248,186,198,250,200,158,250,130,168,214,130,207,43,110,207,80,64,112,80,235,220,133,235,117,254,10,117,138,50,147,138,141,164,223,141,76,202,41,76,20,16,28,20,115,33,215,115,204,240,180,204,9,211,212,9,16,93,138,16,226,15,81,226,0,0,0,0,154,111,25,154,224,157,26,224,143,54,148,143,230,66,199,230,236,74,201,236,253,94,210,253,171,193,127,171,216,224,168,216,47,1,0,0,0,0,0,0,174,176,0,0,0,0,0,0,0,0,0,0,16,0,0,0,128,0,0,0,160,16,0,0,13,0,0,0,14,0,0,0,15,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,152,47,138,66,145,68,55,113,207,251,192,181,165,219,181,233,91,194,86,57,241,17,241,89,164,130,63,146,213,94,28,171,152,170,7,216,1,91,131,18,190,133,49,36,195,125,12,85,116,93,190,114,254,177,222,128,167,6,220,155,116,241,155,193,193,105,155,228,134,71,190,239,198,157,193,15,204,161,12,36,111,44,233,45,170,132,116,74,220,169,176,92,218,136,249,118,82,81,62,152,109,198,49,168,200,39,3,176,199,127,89,191,243,11,224,198,71,145,167,213,81,99,202,6,103,41,41,20,133,10,183,39,56,33,27,46,252,109,44,77,19,13,56,83,84,115,10,101,187,10,106,118,46,201,194,129,133,44,114,146,161,232,191,162,75,102,26,168,112,139,75,194,163,81,108,199,25,232,146,209,36,6,153,214,133,53,14,244,112,160,106,16,22,193,164,25,8,108,55,30,76,119,72,39,181,188,176,52,179,12,28,57,74,170,216,78,79,202,156,91,243,111,46,104,238,130,143,116,111,99,165,120,20,120,200,132,8,2,199,140,250,255,190,144,235,108,80,164,247,163,249,190,242,120,113,198,18,0,0,0,0,0,0,0,3,0,0,0,10,183,0,0,12,49,0,0,14,183,0,0,22,183,0,0,31,183,0,0,34,183,0,0,14,183,0,0,3,0,0,0,7,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,8,0,0,0,20,0,0,0,4,0,0,0,21,0,0,0,9,0,0,0,191,193,0,0,195,193,0,0,201,193,0,0,206,193,0,0,212,193,0,0,0,0,0,0,16,0,0,0,7,0,0,0,22,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,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,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,255,255,255,255,255,255,255,255,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,8,0,0,0,22,0,0,0,37,0,0,0,63,0,0,0,92,0,0,0,117,0,0,0,132,0,0,0,147,0,0,0,161,0,0,0,175,0,0,0,190,0,0,0,205,0,0,0,230,0,0,0,243,0,0,0,2,1,0,0,16,1,0,0,27,1,0,0,41,1,0,0,63,1,0,0,79,1,0,0,109,1,0,0,129,1,0,0,153,1,0,0,179,1,0,0,204,1,0,0,222,1,0,0,231,1,0,0,241,1,0,0,1,2,0,0,14,2,0,0,28,2,0,0,47,2,0,0,71,2,0,0,91,2,0,0,107,2,0,0,122,2,0,0,138,2,0,0,154,2,0,0,171,2,0,0,185,2,0,0,201,2,0,0,228,2,0,0,245,2,0,0,9,3,0,0,28,3,0,0,45,3,0,0,65,3,0,0,77,3,0,0,91,3,0,0,104,3,0,0,120,3,0,0,139,3,0,0,158,3,0,0,178,3,0,0,198,3,0,0,212,3,0,0,234,3,0,0,254,3,0,0,6,4,0,0,10,4,0,0,24,4,0,0,47,4,0,0,55,4,0,0,70,4,0,0,83,4,0,0,98,4,0,0,127,4,0,0,156,4,0,0,179,4,0,0,195,4,0,0,211,4,0,0,231,4,0,0,244,4,0,0,3,5,0,0,20,5,0,0,36,5,0,0,53,5,0,0,70,5,0,0,82,5,0,0,95,5,0,0,126,5,0,0,147,5,0,0,167,5,0,0,188,5,0,0,210,5,0,0,222,5,0,0,237,5,0,0,245,5,0,0,2,6,0,0,11,6,0,0,29,6,0,0,40,6,0,0,51,6,0,0,65,6,0,0,85,6,0,0,98,6,0,0,110,6,0,0,124,6,0,0,136,6,0,0,156,6,0,0,175,6,0,0,195,6,0,0,217,6,0,0,241,6,0,0,6,7,0,0,29,7,0,0,50,7,0,0,65,7,0,0,76,7,0,0,96,7,0,0,109,7,0,0,122,7,0,0,139,7,0,0,161,7,0,0,175,7,0,0,195,7,0,0,211,7,0,0,225,7,0,0,236,7,0,0,0,8,0,0,23,8,0,0,44,8,0,0,59,8,0,0,80,8,0,0,102,8,0,0,118,8,0,0,132,8,0,0,148,8,0,0,162,8,0,0,179,8,0,0,191,8,0,0,223,8,0,0,243,8,0,0,255,8,0,0,9,9,0,0,21,9,0,0,39,9,0,0,60,9,0,0,72,9,0,0,87,9,0,0,104,9,0,0,119,9,0,0,135,9,0,0,149,9,0,0,168,9,0,0,187,9,0,0,210,9,0,0,231,9,0,0,255,9,0,0,17,10,0,0,39,10,0,0,62,10,0,0,80,10,0,0,92,10,0,0,110,10,0,0,127,10,0,0,141,10,0,0,158,10,0,0,173,10,0,0,196,10,0,0,215,10,0,0,228,10,0,0,247,10,0,0,15,11,0,0,42,11,0,0,55,11,0,0,80,11,0,0,91,11,0,0,110,11,0,0,122,11,0,0,138,11,0,0,156,11,0,0,183,11,0,0,190,11,0,0,205,11,0,0,221,11,0,0,237,11,0,0,1,12,0,0,14,12,0,0,26,12,0,0,43,12,0,0,55,12,0,0,72,12,0,0,86,12,0,0,102,12,0,0,129,12,0,0,152,12,0,0,175,12,0,0,198,12,0,0,213,12,0,0,230,12,0,0,248,12,0,0,13,13,0,0,32,13,0,0,63,13,0,0,81,13,0,0,99,13,0,0,121,13,0,0,147,13,0,0,174,13,0,0,191,13,0,0,232,13,0,0,8,14,0,0,46,14,0,0,73,14,0,0,103,14,0,0,133,14,0,0,161,14,0,0,198,14,0,0,222,14,0,0,14,15,0,0,56,15,0,0,96,15,0,0,132,15,0,0,143,15,0,0,161,15,0,0,178,15,0,0,209,15,0,0,230,15,0,0,255,15,0,0,14,16,0,0,38,16,0,0,57,16,0,0,93,16,0,0,114,16,0,0,143,16,0,0,163,16,0,0,190,16,0,0,218,16,0,0,233,16,0,0,244,16,0,0,5,17,0,0,42,17,0,0,87,17,0,0,131,17,0,0,171,17,0,0,209,17,0,0,247,17,0,0,33,18,0,0,67,18,0,0,112,18,0,0,157,18,0,0,170,18,0,0,180,18,0,0,193,18,0,0,228,18,0,0,248,18,0,0,10,19,0,0,33,19,0,0,57,19,0,0,78,19,0,0,106,19,0,0,136,19,0,0,164,19,0,0,184,19,0,0,208,19,0,0,235,19,0,0,253,19,0,0,15,20,0,0,43,20,0,0,58,20,0,0,74,20,0,0,102,20,0,0,125,20,0,0,145,20,0,0,162,20,0,0,190,20,0,0,214,20,0,0,239,20,0,0,3,21,0,0,23,21,0,0,42,21,0,0,71,21,0,0,95,21,0,0,123,21,0,0,150,21,0,0,176,21,0,0,205,21,0,0,229,21,0,0,254,21,0,0,25,22,0,0,54,22,0,0,71,22,0,0,96,22,0,0,119,22,0,0,141,22,0,0,160,22,0,0,182,22,0,0,215,22,0,0,245,22,0,0,12,23,0,0,47,23,0,0,63,23,0,0,83,23,0,0,103,23,0,0,120,23,0,0,147,23,0,0,160,23,0,0,182,23,0,0,202,23,0,0,230,23,0,0,2,24,0,0,21,24,0,0,39,24,0,0,80,24,0,0,120,24,0,0,159,24,0,0,173,24,0,0,208,24,0,0,247,24,0,0,24,25,0,0,51,25,0,0,74,25,0,0,104,25,0,0,135,25,0,0,164,25,0,0,190,25,0,0,213,25,0,0,233,25,0,0,252,25,0,0,22,26,0,0,43,26,0,0,76,26,0,0,113,26,0,0,147,26,0,0,172,26,0,0,201,26,0,0,221,26,0,0,248,26,0,0,28,27,0,0,50,27,0,0,72,27,0,0,100,27,0,0,139,27,0,0,173,27,0,0,195,27,0,0,227,27,0,0,250,27,0,0,31,28,0,0,60,28,0,0,77,28,0,0,105,28,0,0,132,28,0,0,153,28,0,0,180,28,0,0,204,28,0,0,219,28,0,0,247,28,0,0,15,29,0,0,34,29,0,0,56,29,0,0,93,29,0,0,119,29,0,0,145,29,0,0,171,29,0,0,197,29,0,0,223,29,0,0,249,29,0,0,19,30,0,0,45,30,0,0,71,30,0,0,98,30,0,0,125,30,0,0,152,30,0,0,179,30,0,0,206,30,0,0,233,30,0,0,4,31,0,0,27,31,0,0,48,31,0,0,60,31,0,0,7,0,0,0,13,0,0,0,98,0,0,0,99,0,0,0,68,0,0,0,97,0,0,0,11,0,0,0,114,0,0,0,0,0,0,0,0,0,0,0,52,0,0,0,9,0,0,0,77,0,0,0,74,0,0,0,53,0,0,0,0,0,0,0,56,0,0,0,57,0,0,0,59,0,0,0,16,0,0,0,125,0,0,0,10,0,0,0,44,0,0,0,70,0,0,0,103,0,0,0,111,0,0,0,104,0,0,0,0,0,0,0,35,0,0,0,35,0,0,0,89,0,0,0,0,0,0,0,33,0,0,0,73,0,0,0,122,0,0,0,17,0,0,0,14,0,0,0,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,0,0,0,113,0,0,0,43,0,0,0,0,0,0,0,84,0,0,0,115,0,0,0,4,0,0,0,22,0,0,0,5,0,0,0,106,0,0,0,21,0,0,0,120,0,0,0,51,0,0,0,45,0,0,0,46,0,0,0,47,0,0,0,79,0,0,0,80,0,0,0,83,0,0,0,82,0,0,0,81,0,0,0,48,0,0,0,40,0,0,0,124,0,0,0,24,0,0,0,31,0,0,0,90,0,0,0,72,0,0,0,36,0,0,0,119,0,0,0,0,0,0,0,100,0,0,0,102,0,0,0,101,0,0,0,23,0,0,0,55,0,0,0,105,0,0,0,50,0,0,0,61,0,0,0,19,0,0,0,2,0,0,0,8,0,0,0,37,0,0,0,67,0,0,0,123,0,0,0,12,0,0,0,42,0,0,0,64,0,0,0,65,0,0,0,92,0,0,0,28,0,0,0,63,0,0,0,60,0,0,0,38,0,0,0,15,0,0,0,107,0,0,0,20,0,0,0,39,0,0,0,118,0,0,0,88,0,0,0,95,0,0,0,25,0,0,0,76,0,0,0,6,0,0,0,95,0,0,0,75,0,0,0,1,0,0,0,96,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,71,0,0,0,93,0,0,0,91,0,0,0,34,0,0,0,78,0,0,0,66,0,0,0,121,0,0,0,85,0,0,0,30,0,0,0,0,0,0,0,108,0,0,0,94,0,0,0,29,0,0,0,3,0,0,0,69,0,0,0,116,0,0,0,86,0,0,0,62,0,0,0,110,0,0,0,109,0,0,0,26,0,0,0,117,0,0,0,49,0,0,0,87,0,0,0,11,0,0,0,18,0,0,0,54,0,0,0,107,128,0,0,81,128,0,0,127,128,0,0,47,128,0,0,49,128,0,0,104,128,0,0,0,128,0,0,82,128,0,0,11,128,0,0,21,128,0,0,6,128,0,0,138,128,0,0,86,128,0,0,1,128,0,0,36,128,0,0,95,128,0,0,19,128,0,0,35,128,0,0,139,128,0,0,80,128,0,0,97,128,0,0,51,128,0,0,48,128,0,0,75,128,0,0,65,128,0,0,102,128,0,0,134,128,0,0,37,128,0,0,91,128,0,0,126,128,0,0,122,128,0,0,66,128,0,0,109,128,0,0,32,128,0,0,117,128,0,0,28,128,0,0,29,128,0,0,69,128,0,0,83,128,0,0,94,128,0,0,98,128,0,0,63,128,0,0,87,128,0,0,43,128,0,0,22,128,0,0,54,128,0,0,55,128,0,0,56,128,0,0,62,128,0,0,136,128,0,0,78,128,0,0,53,128,0,0,10,128,0,0,14,128,0,0,140,128,0,0,76,128,0,0,16,128,0,0,17,128,0,0,18,128,0,0,93,128,0,0,79,128,0,0,131,128,0,0,92,128,0,0,88,128,0,0,89,128,0,0,119,128,0,0,84,128,0,0,4,128,0,0,128,128,0,0,23,128,0,0,114,128,0,0,68,128,0,0,33,128,0,0,13,128,0,0,106,128,0,0,103,128,0,0,12,128,0,0,118,128,0,0,57,128,0,0,58,128,0,0,61,128,0,0,60,128,0,0,59,128,0,0,45,128,0,0,121,128,0,0,130,128,0,0,137,128,0,0,100,128,0,0,30,128,0,0,67,128,0,0,116,128,0,0,90,128,0,0,115,128,0,0,125,128,0,0,101,128,0,0,105,128,0,0,108,128,0,0,5,128,0,0,2,128,0,0,3,128,0,0,72,128,0,0,74,128,0,0,73,128,0,0,24,128,0,0,26,128,0,0,77,128,0,0,50,128,0,0,96,128,0,0,124,128,0,0,133,128,0,0,132,128,0,0,25,128,0,0,41,128,0,0,42,128,0,0,7,128,0,0,46,128,0,0,129,128,0,0,135,128,0,0,99,128,0,0,70,128,0,0,52,128,0,0,120,128,0,0,34,128,0,0,85,128,0,0,64,128,0,0,20,128,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,0,0,0,24,0,0,0,176,24,1,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,20,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,8,60,0,0,128,61,0,0,5,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25,0,0,0,24,0,0,0,184,28,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,192,3,0,0,192,4,0,0,192,5,0,0,192,6,0,0,192,7,0,0,192,8,0,0,192,9,0,0,192,10,0,0,192,11,0,0,192,12,0,0,192,13,0,0,192,14,0,0,192,15,0,0,192,16,0,0,192,17,0,0,192,18,0,0,192,19,0,0,192,20,0,0,192,21,0,0,192,22,0,0,192,23,0,0,192,24,0,0,192,25,0,0,192,26,0,0,192,27,0,0,192,28,0,0,192,29,0,0,192,30,0,0,192,31,0,0,192,0,0,0,179,1,0,0,195,2,0,0,195,3,0,0,195,4,0,0,195,5,0,0,195,6,0,0,195,7,0,0,195,8,0,0,195,9,0,0,195,10,0,0,195,11,0,0,195,12,0,0,195,13,0,0,211,14,0,0,195,15,0,0,195,0,0,12,187,1,0,12,195,2,0,12,195,3,0,12,195,4,0,12,211,32,0,0,0,9,0,0,0,10,0,0,0,13,0,0,0,11,0,0,0,12,0,0,0,133,0,0,0,0,32,0,0,1,32,0,0,2,32,0,0,3,32,0,0,4,32,0,0,5,32,0,0,6,32,0,0,8,32,0,0,9,32,0,0,10,32,0,0,40,32,0,0,41,32,0,0,95,32,0,0,0,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,0,0,0,172,63,0,0,3,0,0,0,0,0,0,0,45,244,81,88,207,140,177,192,70,246,181,203,41,49,3,199,4,91,112,48,180,93,253,32,120,127,139,154,216,89,41,80,104,72,137,171,167,86,3,108,255,183,205,136,63,212,119,180,43,165,163,112,241,186,228,168,252,65,131,253,217,111,225,138,122,47,45,116,150,7,31,13,9,94,3,118,44,112,247,64,165,44,167,111,87,65,168,170,116,223,160,88,100,3,74,199,196,60,83,174,175,95,24,4,21,177,227,109,40,134,171,12,164,191,67,240,233,80,129,57,87,22,82,55,3,0,5,0,7,0,11,0,13,0,17,0,19,0,23,0,29,0,31,0,37,0,41,0,43,0,47,0,53,0,59,0,61,0,67,0,71,0,73,0,79,0,83,0,89,0,97,0,101,0,103,0,107,0,109,0,113,0,127,0,131,0,137,0,139,0,149,0,151,0,157,0,163,0,167,0,173,0,179,0,181,0,191,0,193,0,197,0,199,0,211,0,223,0,227,0,229,0,233,0,239,0,241,0,251,0,1,1,7,1,13,1,15,1,21,1,25,1,27,1,37,1,51,1,55,1,57,1,61,1,75,1,81,1,91,1,93,1,97,1,103,1,111,1,117,1,123,1,127,1,133,1,141,1,145,1,153,1,163,1,165,1,175,1,177,1,183,1,187,1,193,1,201,1,205,1,207,1,211,1,223,1,231,1,235,1,243,1,247,1,253,1,9,2,11,2,29,2,35,2,45,2,51,2,57,2,59,2,65,2,75,2,81,2,87,2,89,2,95,2,101,2,105,2,107,2,119,2,129,2,131,2,135,2,141,2,147,2,149,2,161,2,165,2,171,2,179,2,189,2,197,2,207,2,215,2,221,2,227,2,231,2,239,2,245,2,249,2,1,3,5,3,19,3,29,3,41,3,43,3,53,3,55,3,59,3,61,3,71,3,85,3,89,3,91,3,95,3,109,3,113,3,115,3,119,3,139,3,143,3,151,3,161,3,169,3,173,3,179,3,185,3,199,3,203,3,209,3,215,3,223,3,229,3,241,3,245,3,251,3,253,3,7,4,9,4,15,4,25,4,27,4,37,4,39,4,45,4,63,4,67,4,69,4,73,4,79,4,85,4,93,4,99,4,105,4,127,4,129,4,139,4,147,4,157,4,163,4,169,4,177,4,189,4,193,4,199,4,205,4,207,4,213,4,225,4,235,4,253,4,255,4,3,5,9,5,11,5,17,5,21,5,23,5,27,5,39,5,41,5,47,5,81,5,87,5,93,5,101,5,119,5,129,5,143,5,147,5,149,5,153,5,159,5,167,5,171,5,173,5,179,5,191,5,201,5,203,5,207,5,209,5,213,5,219,5,231,5,243,5,251,5,7,6,13,6,17,6,23,6,31,6,35,6,43,6,47,6,61,6,65,6,71,6,73,6,77,6,83,6,85,6,91,6,101,6,121,6,127,6,131,6,133,6,157,6,161,6,163,6,173,6,185,6,187,6,197,6,205,6,211,6,217,6,223,6,241,6,247,6,251,6,253,6,9,7,19,7,31,7,39,7,55,7,69,7,75,7,79,7,81,7,85,7,87,7,97,7,109,7,115,7,121,7,139,7,141,7,157,7,159,7,181,7,187,7,195,7,201,7,205,7,207,7,211,7,219,7,225,7,235,7,237,7,247,7,5,8,15,8,21,8,33,8,35,8,39,8,41,8,51,8,63,8,65,8,81,8,83,8,89,8,93,8,95,8,105,8,113,8,131,8,155,8,159,8,165,8,173,8,189,8,191,8,195,8,203,8,219,8,221,8,225,8,233,8,239,8,245,8,249,8,5,9,7,9,29,9,35,9,37,9,43,9,47,9,53,9,67,9,73,9,77,9,79,9,85,9,89,9,95,9,107,9,113,9,119,9,133,9,137,9,143,9,155,9,163,9,169,9,173,9,199,9,217,9,227,9,235,9,239,9,245,9,247,9,253,9,19,10,31,10,33,10,49,10,57,10,61,10,73,10,87,10,97,10,99,10,103,10,111,10,117,10,123,10,127,10,129,10,133,10,139,10,147,10,151,10,153,10,159,10,169,10,171,10,181,10,189,10,193,10,207,10,217,10,229,10,231,10,237,10,241,10,243,10,3,11,17,11,21,11,27,11,35,11,41,11,45,11,63,11,71,11,81,11,87,11,93,11,101,11,111,11,123,11,137,11,141,11,147,11,153,11,155,11,183,11,185,11,195,11,203,11,207,11,221,11,225,11,233,11,245,11,251,11,7,12,11,12,17,12,37,12,47,12,49,12,65,12,91,12,95,12,97,12,109,12,115,12,119,12,131,12,137,12,145,12,149,12,157,12,179,12,181,12,185,12,187,12,199,12,227,12,229,12,235,12,241,12,247,12,251,12,1,13,3,13,15,13,19,13,31,13,33,13,43,13,45,13,61,13,63,13,79,13,85,13,105,13,121,13,129,13,133,13,135,13,139,13,141,13,163,13,171,13,183,13,189,13,199,13,201,13,205,13,211,13,213,13,219,13,229,13,231,13,243,13,253,13,255,13,9,14,23,14,29,14,33,14,39,14,47,14,53,14,59,14,75,14,87,14,89,14,93,14,107,14,113,14,117,14,125,14,135,14,143,14,149,14,155,14,177,14,183,14,185,14,195,14,209,14,213,14,219,14,237,14,239,14,249,14,7,15,11,15,13,15,23,15,37,15,41,15,49,15,67,15,71,15,77,15,79,15,83,15,89,15,91,15,103,15,107,15,127,15,149,15,161,15,163,15,167,15,173,15,179,15,181,15,187,15,209,15,211,15,217,15,233,15,239,15,251,15,253,15,3,16,15,16,31,16,33,16,37,16,43,16,57,16,61,16,63,16,81,16,105,16,115,16,121,16,123,16,133,16,135,16,145,16,147,16,157,16,163,16,165,16,175,16,177,16,187,16,193,16,201,16,231,16,241,16,243,16,253,16,5,17,11,17,21,17,39,17,45,17,57,17,69,17,71,17,89,17,95,17,99,17,105,17,111,17,129,17,131,17,141,17,155,17,161,17,165,17,167,17,171,17,195,17,197,17,209,17,215,17,231,17,239,17,245,17,251,17,13,18,29,18,31,18,35,18,41,18,43,18,49,18,55,18,65,18,71,18,83,18,95,18,113,18,115,18,121,18,125,18,143,18,151,18,175,18,179,18,181,18,185,18,191,18,193,18,205,18,209,18,223,18,253,18,7,19,13,19,25,19,39,19,45,19,55,19,67,19,69,19,73,19,79,19,87,19,93,19,103,19,105,19,109,19,123,19,129,19,135,19,0,0,0,0,194,1,132,3,70,2,8,7,202,6,140,4,78,5,16,14,210,15,148,13,86,12,24,9,218,8,156,10,94,11,32,28,226,29,164,31,102,30,40,27,234,26,172,24,110,25,48,18,242,19,180,17,118,16,56,21,250,20,188,22,126,23,64,56,130,57,196,59,6,58,72,63,138,62,204,60,14,61,80,54,146,55,212,53,22,52,88,49,154,48,220,50,30,51,96,36,162,37,228,39,38,38,104,35,170,34,236,32,46,33,112,42,178,43,244,41,54,40,120,45,186,44,252,46,62,47,128,112,66,113,4,115,198,114,136,119,74,118,12,116,206,117,144,126,82,127,20,125,214,124,152,121,90,120,28,122,222,123,160,108,98,109,36,111,230,110,168,107,106,106,44,104,238,105,176,98,114,99,52,97,246,96,184,101,122,100,60,102,254,103,192,72,2,73,68,75,134,74,200,79,10,78,76,76,142,77,208,70,18,71,84,69,150,68,216,65,26,64,92,66,158,67,224,84,34,85,100,87,166,86,232,83,42,82,108,80,174,81,240,90,50,91,116,89,182,88,248,93,58,92,124,94,190,95,0,225,194,224,132,226,70,227,8,230,202,231,140,229,78,228,16,239,210,238,148,236,86,237,24,232,218,233,156,235,94,234,32,253,226,252,164,254,102,255,40,250,234,251,172,249,110,248,48,243,242,242,180,240,118,241,56,244,250,245,188,247,126,246,64,217,130,216,196,218,6,219,72,222,138,223,204,221,14,220,80,215,146,214,212,212,22,213,88,208,154,209,220,211,30,210,96,197,162,196,228,198,38,199,104,194,170,195,236,193,46,192,112,203,178,202,244,200,54,201,120,204,186,205,252,207,62,206,128,145,66,144,4,146,198,147,136,150,74,151,12,149,206,148,144,159,82,158,20,156,214,157,152,152,90,153,28,155,222,154,160,141,98,140,36,142,230,143,168,138,106,139,44,137,238,136,176,131,114,130,52,128,246,129,184,132,122,133,60,135,254,134,192,169,2,168,68,170,134,171,200,174,10,175,76,173,142,172,208,167,18,166,84,164,150,165,216,160,26,161,92,163,158,162,224,181,34,180,100,182,166,183,232,178,42,179,108,177,174,176,240,187,50,186,116,184,182,185,248,188,58,189,124,191,190,190,73,0,49,1,83,0,127,1,48,1,105,0,120,1,255,0,129,1,83,2,130,1,131,1,132,1,133,1,134,1,84,2,135,1,136,1,137,1,86,2,138,1,87,2,139,1,140,1,142,1,221,1,143,1,89,2,144,1,91,2,145,1,146,1,147,1,96,2,148,1,99,2,150,1,105,2,151,1,104,2,152,1,153,1,156,1,111,2,157,1,114,2,159,1,117,2,166,1,128,2,167,1,168,1,169,1,131,2,172,1,173,1,174,1,136,2,175,1,176,1,177,1,138,2,178,1,139,2,183,1,146,2,184,1,185,1,188,1,189,1,196,1,198,1,196,1,197,1,197,1,198,1,199,1,201,1,199,1,200,1,200,1,201,1,202,1,204,1,202,1,203,1,203,1,204,1,241,1,243,1,241,1,242,1,242,1,243,1,244,1,245,1,246,1,149,1,247,1,191,1,32,2,158,1,134,3,172,3,136,3,173,3,137,3,174,3,138,3,175,3,140,3,204,3,142,3,205,3,143,3,206,3,153,3,69,3,153,3,190,31,163,3,194,3,247,3,248,3,250,3,251,3,96,30,155,30,158,30,223,0,89,31,81,31,91,31,83,31,93,31,85,31,95,31,87,31,188,31,179,31,204,31,195,31,236,31,229,31,252,31,243,31,58,2,101,44,59,2,60,2,61,2,154,1,62,2,102,44,65,2,66,2,67,2,128,1,68,2,137,2,69,2,140,2,244,3,184,3,249,3,242,3,253,3,123,3,254,3,124,3,255,3,125,3,192,4,207,4,38,33,201,3,42,33,107,0,43,33,229,0,50,33,78,33,131,33,132,33,96,44,97,44,98,44,107,2,99,44,125,29,100,44,125,2,109,44,81,2,110,44,113,2,111,44,80,2,112,44,82,2,114,44,115,44,117,44,118,44,126,44,63,2,127,44,64,2,242,44,243,44,125,167,121,29,139,167,140,167,141,167,101,2,170,167,102,2,199,16,39,45,205,16,45,45,118,3,119,3,156,3,181,0,146,3,208,3,152,3,209,3,166,3,213,3,160,3,214,3,154,3,240,3,161,3,241,3,149,3,245,3,207,3,215,3,0,0,0,0,65,0,32,26,192,0,32,31,0,1,1,47,50,1,1,5,57,1,1,15,74,1,1,45,121,1,1,5,112,3,1,3,145,3,32,17,163,3,32,9,0,4,80,16,16,4,32,32,96,4,1,33,138,4,1,53,193,4,1,13,208,4,1,63,20,5,1,19,49,5,48,38,160,1,1,5,179,1,1,3,205,1,1,15,222,1,1,17,248,1,1,39,34,2,1,17,216,3,1,23,0,30,1,149,160,30,1,95,8,31,248,8,24,31,248,6,40,31,248,8,56,31,248,8,72,31,248,6,104,31,248,8,136,31,248,8,152,31,248,8,168,31,248,8,184,31,248,2,186,31,182,2,200,31,170,4,216,31,248,2,218,31,156,2,232,31,248,2,234,31,144,2,248,31,128,2,250,31,130,2,70,2,1,9,16,5,1,3,96,33,16,16,0,44,48,47,103,44,1,5,128,44,1,99,235,44,1,3,64,166,1,45,128,166,1,23,34,167,1,13,50,167,1,61,121,167,1,3,126,167,1,9,144,167,1,3,160,167,1,9,33,255,32,26,0,0,0,0,119,114,97,112,46,99,0,99,111,109,109,111,110,95,97,108,108,111,99,97,116,105,111,110,46,99,0,71,78,85,78,69,84,95,120,109,97,108,108,111,99,95,0,109,97,108,108,111,99,0,71,78,85,78,69,84,95,120,102,114,101,101,95,0,71,78,85,78,69,84,95,115,110,112,114,105,110,116,102,0,99,111,109,109,111,110,95,108,111,103,103,105,110,103,46,99,0,37,115,45,37,100,0,109,121,108,111,103,0,108,111,99,97,108,116,105,109,101,32,101,114,114,111,114,0,37,98,32,37,100,32,37,72,58,37,77,58,37,83,45,37,37,48,54,117,0,42,32,37,115,0,37,115,32,37,115,32,37,115,32,37,115,0,69,82,82,79,82,0,87,65,82,78,73,78,71,0,77,69,83,83,65,71,69,0,73,78,70,79,0,68,69,66,85,71,0,78,79,78,69,0,73,78,86,65,76,73,68,0,77,101,115,115,97,103,101,32,96,37,46,42,115,39,32,114,101,112,101,97,116,101,100,32,37,117,32,116,105,109,101,115,32,105,110,32,116,104,101,32,108,97,115,116,32,37,115,10,0,71,78,85,78,69,84,95,108,111,103,95,115,107,105,112,0,99,114,121,112,116,111,95,115,121,109,109,101,116,114,105,99,46,99,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,115,121,109,109,101,116,114,105,99,95,101,110,99,114,121,112,116,0,115,101,116,117,112,95,99,105,112,104,101,114,95,116,119,111,102,105,115,104,0,115,101,116,117,112,95,99,105,112,104,101,114,95,97,101,115,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,115,121,109,109,101,116,114,105,99,95,100,101,99,114,121,112,116,0,99,114,121,112,116,111,95,101,99,99,46,99,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,101,99,100,115,97,95,107,101,121,95,103,101,116,95,112,117,98,108,105,99,0,113,64,101,100,100,115,97,0,40,112,114,105,118,97,116,101,45,107,101,121,40,101,99,99,40,99,117,114,118,101,32,34,69,100,50,53,53,49,57,34,41,40,100,32,37,98,41,41,41,0,100,101,99,111,100,101,95,112,114,105,118,97,116,101,95,101,99,100,115,97,95,107,101,121,0,103,99,114,121,95,115,101,120,112,95,98,117,105,108,100,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,101,100,100,115,97,95,107,101,121,95,103,101,116,95,112,117,98,108,105,99,0,40,112,114,105,118,97,116,101,45,107,101,121,40,101,99,99,40,99,117,114,118,101,32,34,69,100,50,53,53,49,57,34,41,40,102,108,97,103,115,32,101,100,100,115,97,41,40,100,32,37,98,41,41,41,0,100,101,99,111,100,101,95,112,114,105,118,97,116,101,95,101,100,100,115,97,95,107,101,121,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,101,99,100,104,101,95,107,101,121,95,103,101,116,95,112,117,98,108,105,99,0,100,101,99,111,100,101,95,112,114,105,118,97,116,101,95,101,99,100,104,101,95,107,101,121,0,40,103,101,110,107,101,121,40,101,99,99,40,99,117,114,118,101,32,34,69,100,50,53,53,49,57,34,41,40,102,108,97,103,115,32,101,100,100,115,97,32,110,111,45,107,101,121,116,101,115,116,41,41,41,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,101,99,100,104,101,95,107,101,121,95,99,114,101,97,116,101,0,103,99,114,121,95,112,107,95,103,101,110,107,101,121,0,107,101,121,95,102,114,111,109,95,115,101,120,112,0,40,103,101,110,107,101,121,40,101,99,99,40,99,117,114,118,101,32,34,69,100,50,53,53,49,57,34,41,40,102,108,97,103,115,41,41,41,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,101,99,100,115,97,95,107,101,121,95,99,114,101,97,116,101,0,40,103,101,110,107,101,121,40,101,99,99,40,99,117,114,118,101,32,34,69,100,50,53,53,49,57,34,41,40,102,108,97,103,115,32,101,100,100,115,97,41,41,41,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,101,100,100,115,97,95,107,101,121,95,99,114,101,97,116,101,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,101,100,100,115,97,95,115,105,103,110,0,69,100,68,83,65,32,115,105,103,110,105,110,103,32,102,97,105,108,101,100,32,97,116,32,37,115,58,37,100,58,32,37,115,10,0,40,100,97,116,97,40,102,108,97,103,115,32,101,100,100,115,97,41,40,104,97,115,104,45,97,108,103,111,32,37,115,41,40,118,97,108,117,101,32,37,98,41,41,0,100,97,116,97,95,116,111,95,101,100,100,115,97,95,118,97,108,117,101,0,40,112,117,98,108,105,99,45,107,101,121,40,101,99,99,40,99,117,114,118,101,32,69,100,50,53,53,49,57,41,40,113,32,37,98,41,41,41,0,40,115,105,103,45,118,97,108,40,101,100,100,115,97,40,114,32,37,98,41,40,115,32,37,98,41,41,41,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,101,100,100,115,97,95,118,101,114,105,102,121,0,40,112,117,98,108,105,99,45,107,101,121,40,101,99,99,40,99,117,114,118,101,32,69,100,50,53,53,49,57,41,40,102,108,97,103,115,32,101,100,100,115,97,41,40,113,32,37,98,41,41,41,0,69,100,68,83,65,32,115,105,103,110,97,116,117,114,101,32,118,101,114,105,102,105,99,97,116,105,111,110,32,102,97,105,108,101,100,32,97,116,32,37,115,58,37,100,58,32,37,115,10,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,101,99,99,95,101,99,100,104,0,103,101,116,95,97,102,102,105,110,101,32,102,97,105,108,101,100,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,101,99,100,104,95,101,100,100,115,97,0,99,114,121,112,116,111,95,104,97,115,104,46,99,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,104,97,115,104,95,99,111,110,116,101,120,116,95,115,116,97,114,116,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,104,97,115,104,95,99,111,110,116,101,120,116,95,102,105,110,105,115,104,0,99,114,121,112,116,111,95,107,100,102,46,99,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,107,100,102,95,109,111,100,95,109,112,105,0,99,114,121],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+10240);allocate([112,116,111,95,109,112,105,46,99,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,109,112,105,95,112,114,105,110,116,95,117,110,115,105,103,110,101,100,0,96,37,115,39,32,102,97,105,108,101,100,32,97,116,32,37,115,58,37,100,32,119,105,116,104,32,101,114,114,111,114,58,32,37,115,10,0,103,99,114,121,95,109,112,105,95,112,114,105,110,116,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,109,112,105,95,115,99,97,110,95,117,110,115,105,103,110,101,100,0,103,99,114,121,95,109,112,105,95,115,99,97,110,0,49,46,54,46,48,0,108,105,98,103,99,114,121,112,116,32,104,97,115,32,110,111,116,32,116,104,101,32,101,120,112,101,99,116,101,100,32,118,101,114,115,105,111,110,32,40,118,101,114,115,105,111,110,32,37,115,32,105,115,32,114,101,113,117,105,114,101,100,41,46,10,0,99,114,121,112,116,111,95,114,97,110,100,111,109,46,99,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,97,110,100,111,109,95,105,110,105,116,0,70,97,105,108,101,100,32,116,111,32,115,101,116,32,108,105,98,103,99,114,121,112,116,32,111,112,116,105,111,110,32,37,115,58,32,37,115,10,0,68,73,83,65,66,76,69,95,83,69,67,77,69,77,0,69,78,65,66,76,69,95,81,85,73,67,75,95,82,65,78,68,79,77,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,97,110,100,111,109,95,117,51,50,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,97,110,100,111,109,95,98,108,111,99,107,0,40,103,101,110,107,101,121,40,114,115,97,40,110,98,105,116,115,32,37,100,41,41,41,0,99,114,121,112,116,111,95,114,115,97,46,99,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,115,97,95,112,114,105,118,97,116,101,95,107,101,121,95,99,114,101,97,116,101,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,115,97,95,112,114,105,118,97,116,101,95,107,101,121,95,101,110,99,111,100,101,0,117,116,105,108,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,115,97,95,112,114,105,118,97,116,101,95,107,101,121,95,100,101,99,111,100,101,0,68,101,99,111,100,101,100,32,112,114,105,118,97,116,101,32,107,101,121,32,105,115,32,110,111,116,32,118,97,108,105,100,10,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,115,97,95,112,114,105,118,97,116,101,95,107,101,121,95,103,101,116,95,112,117,98,108,105,99,0,69,120,116,101,114,110,97,108,32,112,114,111,116,111,99,111,108,32,118,105,111,108,97,116,105,111,110,32,100,101,116,101,99,116,101,100,32,97,116,32,37,115,58,37,100,46,10,0,40,112,117,98,108,105,99,45,107,101,121,40,114,115,97,40,110,32,37,109,41,40,101,32,37,109,41,41,41,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,115,97,95,112,117,98,108,105,99,95,107,101,121,95,101,110,99,111,100,101,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,115,97,95,112,117,98,108,105,99,95,107,101,121,95,100,101,99,111,100,101,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,115,97,95,115,105,103,110,97,116,117,114,101,95,101,110,99,111,100,101,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,115,97,95,98,108,105,110,100,0,110,117,109,101,114,105,99,95,109,112,105,95,97,108,108,111,99,95,110,95,112,114,105,110,116,0,66,108,105,110,100,105,110,103,32,75,68,70,32,101,120,116,114,97,116,111,114,32,72,77,65,67,32,107,101,121,0,114,115,97,95,98,108,105,110,100,105,110,103,95,107,101,121,95,100,101,114,105,118,101,0,66,108,105,110,100,105,110,103,32,75,68,70,0,114,115,97,95,102,117,108,108,95,100,111,109,97,105,110,95,104,97,115,104,0,82,83,65,45,70,68,65,32,70,84,112,115,87,33,0,40,100,97,116,97,32,40,102,108,97,103,115,32,114,97,119,41,32,40,118,97,108,117,101,32,37,77,41,41,0,109,112,105,95,116,111,95,115,101,120,112,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,115,97,95,115,105,103,110,97,116,117,114,101,95,100,101,99,111,100,101,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,115,97,95,117,110,98,108,105,110,100,0,40,115,105,103,45,118,97,108,32,40,114,115,97,32,40,115,32,37,77,41,41,41,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,115,97,95,118,101,114,105,102,121,0,82,83,65,32,115,105,103,110,97,116,117,114,101,32,118,101,114,105,102,105,99,97,116,105,111,110,32,102,97,105,108,101,100,32,97,116,32,37,115,58,37,100,58,32,37,115,10,0,115,116,114,105,110,103,115,46,99,0,37,108,108,117,32,37,115,0,102,111,114,101,118,101,114,0,109,115,0,109,0,100,97,121,0,100,97,121,115,0,194,181,115,0,48,32,109,115,0,71,78,85,78,69,84,95,83,84,82,73,78,71,83,95,100,97,116,97,95,116,111,95,115,116,114,105,110,103,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,71,72,74,75,77,78,80,81,82,83,84,86,87,88,89,90,0,71,78,85,78,69,84,95,83,84,82,73,78,71,83,95,115,116,114,105,110,103,95,116,111,95,100,97,116,97,0,118,105,115,105,98,105,108,105,116,121,46,99,0,103,99,114,121,95,109,100,95,104,97,115,104,95,98,117,102,102,101,114,0,99,97,108,108,101,100,32,105,110,32,110,111,110,45,111,112,101,114,97,116,105,111,110,97,108,32,115,116,97,116,101,0,103,99,114,121,95,109,100,95,103,101,116,95,97,108,103,111,0,117,115,101,100,32,105,110,32,110,111,110,45,111,112,101,114,97,116,105,111,110,97,108,32,115,116,97,116,101,0,103,99,114,121,95,114,97,110,100,111,109,105,122,101,0,103,99,114,121,95,99,114,101,97,116,101,95,110,111,110,99,101,0,109,105,115,99,46,99,0,95,103,99,114,121,95,102,97,116,97,108,95,101,114,114,111,114,0,10,70,97,116,97,108,32,101,114,114,111,114,58,32,0,70,97,116,97,108,58,32,0,79,104,104,104,104,32,106,101,101,101,101,58,32,0,68,66,71,58,32,0,91,85,110,107,110,111,119,110,32,108,111,103,32,108,101,118,101,108,32,37,100,93,58,32,0,95,103,99,114,121,95,108,111,103,118,0,105,110,116,101,114,110,97,108,32,101,114,114,111,114,32,40,102,97,116,97,108,32,111,114,32,98,117,103,41,0,46,46,46,32,116,104,105,115,32,105,115,32,97,32,98,117,103,32,40,37,115,58,37,100,58,37,115,41,10,0,65,115,115,101,114,116,105,111,110,32,96,37,115,39,32,102,97,105,108,101,100,32,40,37,115,58,37,100,58,37,115,41,10,0,32,0,37,115,58,37,115,0,37,42,115,32,32,0,37,48,50,120,0,32,92,10,0,37,42,115,32,37,42,115,0,32,40,110,117,108,108,41,0,32,91,37,117,32,98,105,116,93,0,32,91,111,117,116,32,111,102,32,99,111,114,101,93,0,45,0,43,0,100,105,118,105,100,101,32,98,121,32,122,101,114,111,0,103,108,111,98,97,108,46,99,0,103,108,111,98,97,108,95,105,110,105,116,0,49,46,55,46,48,45,98,101,116,97,50,51,48,0,118,101,114,115,105,111,110,58,37,115,58,10,0,99,105,112,104,101,114,115,58,37,115,58,10,0,97,101,115,58,116,119,111,102,105,115,104,0,112,117,98,107,101,121,115,58,37,115,58,10,0,114,115,97,58,101,99,99,0,100,105,103,101,115,116,115,58,37,115,58,10,0,115,104,97,50,53,54,58,115,104,97,53,49,50,0,114,110,100,45,109,111,100,58,108,105,110,117,120,58,10,0,99,112,117,45,97,114,99,104,58,58,10,0,109,112,105,45,97,115,109,58,37,115,58,10,0,104,119,102,108,105,115,116,58,0,37,115,58,0,10,0,102,105,112,115,45,109,111,100,101,58,37,99,58,37,99,58,10,0,112,114,105,110,116,95,99,111,110,102,105,103,0,115,121,115,116,101,109,0,102,105,112,115,0,115,116,97,110,100,97,114,100,0,114,110,103,45,116,121,112,101,58,37,115,58,37,100,58,10,0,111,117,116,32,111,102,32,99,111,114,101,32,105,110,32,115,101,99,117,114,101,32,109,101,109,111,114,121,0,92,120,37,48,50,120,0,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,48,49,50,51,52,53,54,55,56,57,45,46,47,95,58,42,43,61,0,115,101,120,112,46,99,0,100,111,95,118,115,101,120,112,95,115,115,99,97,110,0,37,100,0,37,117,0,38,92,0,95,103,99,114,121,95,115,101,120,112,95,102,105,110,100,95,116,111,107,101,110,0,95,103,99,114,121,95,115,101,120,112,95,110,116,104,0,3,4,0,8,9,11,10,12,13,34,39,92,0,45,46,47,95,58,42,43,61,0,37,48,50,88,0,37,117,58,0,95,103,99,114,121,95,115,101,120,112,95,115,112,114,105,110,116,0,112,97,100,108,111,99,107,45,114,110,103,0,112,97,100,108,111,99,107,45,97,101,115,0,112,97,100,108,111,99,107,45,115,104,97,0,112,97,100,108,111,99,107,45,109,109,117,108,0,105,110,116,101,108,45,99,112,117,0,105,110,116,101,108,45,98,109,105,50,0,105,110,116,101,108,45,115,115,115,101,51,0,105,110,116,101,108,45,112,99,108,109,117,108,0,105,110,116,101,108,45,97,101,115,110,105,0,105,110,116,101,108,45,114,100,114,97,110,100,0,105,110,116,101,108,45,97,118,120,0,105,110,116,101,108,45,97,118,120,50,0,97,114,109,45,110,101,111,110,0,47,101,116,99,47,103,99,114,121,112,116,47,104,119,102,46,100,101,110,121,0,109,101,109,111,114,121,32,97,116,32,37,112,32,99,111,114,114,117,112,116,101,100,32,40,117,110,100,101,114,102,108,111,119,61,37,48,50,120,41,10,0,109,101,109,111,114,121,32,97,116,32,37,112,32,99,111,114,114,117,112,116,101,100,32,40,111,118,101,114,102,108,111,119,61,37,48,50,120,41,10,0,102,97,105,108,101,100,32,116,111,32,100,114,111,112,32,115,101,116,117,105,100,10,0,115,101,99,117,114,101,32,109,101,109,111,114,121,32,105,115,32,100,105,115,97,98,108,101,100,0,99,97,110,39,116,32,109,109,97,112,32,112,111,111,108,32,111,102,32,37,117,32,98,121,116,101,115,58,32,37,115,32,45,32,117,115,105,110,103,32,109,97,108,108,111,99,10,0,99,97,110,39,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,112,111,111,108,32,111,102,32,37,117,32,98,121,116,101,115,10,0,80,108,101,97,115,101,32,110,111,116,101,32,116,104,97,116,32,121,111,117,32,100,111,110,39,116,32,104,97,118,101,32,115,101,99,117,114,101,32,109,101,109,111,114,121,32,111,110,32,116,104,105,115,32,115,121,115,116,101,109,10,0,79,111,112,115,44,32,115,101,99,117,114,101,32,109,101,109,111,114,121,32,112,111,111,108,32,97,108,114,101,97,100,121,32,105,110,105,116,105,97,108,105,122,101,100,10,0,111,112,101,114,97,116,105,111,110,32,105,115,32,110,111,116,32,112,111,115,115,105,98,108,101,32,119,105,116,104,111,117,116,32,105,110,105,116,105,97,108,105,122,101,100,32,115,101,99,117,114,101,32,109,101,109,111,114,121,10,0,115,101,99,109,101,109,32,117,115,97,103,101,58,32,37,117,47,37,108,117,32,98,121,116,101,115,32,105,110,32,37,117,32,98,108,111,99,107,115,10,0,33,100,111,110,101,0,102,105,112,115,46,99,0,95,103,99,114,121,95,105,110,105,116,105,97,108,105,122,101,95,102,105,112,115,95,109,111,100,101,0,33,110,111,95,102,105,112,115,95,109,111,100,101,95,114,101,113,117,105,114,101,100,0,47,101,116,99,47,103,99,114,121,112,116,47,102,105,112,115,95,101,110,97,98,108,101,100,0,47,112,114,111,99,47,115,121,115,47,99,114,121,112,116,111,47,102,105,112,115,95,101,110,97,98,108,101,100,0,114,0,47,112,114,111,99,47,118,101,114,115,105,111,110,0,70,65,84,65,76,58,32,101,114,114,111,114,32,114,101,97,100,105,110,103,32,96,37,115,39,32,105,110,32,108,105,98,103,99,114,121,112,116,58,32,37,115,10,0,70,65,84,65,76,58,32,102,97,105,108,101,100,32,116,111,32,99,114,101,97,116,101,32,116,104,101,32,70,83,77,32,108,111,99,107,32,105,110,32,108,105,98,103,99,114,121,112,116,58,32,37,115,10,0,70,65,84,65,76,58,32,102,97,105,108,101,100,32,116,111,32,97,99,113,117,105,114,101,32,116,104,101,32,70,83,77,32,108,111,99,107,32,105,110,32,108,105,98,103,114,121,112,116,58,32,37,115,10,0,70,65,84,65,76,58,32,102,97,105,108,101,100,32,116,111,32,114,101,108,101,97,115,101,32,116,104,101,32,70,83,77,32,108,111,99,107,32,105,110,32,108,105,98,103,114,121,112,116,58,32,37,115,10,0,83,104,117,116,100,111,119,110,0,70,97,116,97,108,45,69,114,114,111,114,0,69,114,114,111,114,0,79,112,101,114,97,116,105,111,110,97,108,0,83,101,108,102,45,84,101,115,116,0,73,110,105,116,0,80,111,119,101,114,45,79,110,0,103,114,97,110,116,101,100,0,100,101,110,105,101,100,0,108,105,98,103,99,114,121,112,116,32,115,116,97,116,101,32,116,114,97,110,115,105,116,105,111,110,32,37,115,32,61,62,32,37,115,32,37,115,10,0,95,103,99,114,121,95,102,105,112,115,95,109,111,100,101,32,40,41,0,95,103,99,114,121,95,105,110,97,99,116,105,118,97,116,101,95,102,105,112,115,95,109,111,100,101,0,110,111,32,100,101,115,99,114,105,112,116,105,111,110,32,97,118,97,105,108,97,98,108,101,0,37,115,101,114,114,111,114,32,105,110,32,108,105,98,103,99,114,121,112,116,44,32,102,105,108,101,32,37,115,44,32,108,105,110,101,32,37,100,37,115,37,115,58,32,37,115,10,0,44,32,102,117,110,99,116,105,111,110,32,0,102,97,116,97,108,32,0,72,77,65,67,45,0,79,107,97,121,0,32,40,0,108,105,98,103,99,114,121,112,116,32,115,101,108,102,116,101,115,116,58,32,37,115,32,37,115,37,115,32,40,37,100,41,58,32,37,115,37,115,37,115,37,115,10,0,98,97,100,32,99,111,110,116,101,120,116,32,116,121,112,101,32,37,100,32,103,105,118,101,110,32,116,111,32,95,103,99,114,121,95,99,116,120,95,97,108,108,111,99,10,0,99,84,120,0,98,97,100,32,112,111,105,110,116,101,114,32,37,112,32,112,97,115,115,101,100,32,116,111,32,95,103,99,114,121,95,99,116,120,95,103,101,116,95,112,111,105,110,116,101,114,10,0,119,114,111,110,103,32,99,111,110,116,101,120,116,32,116,121,112,101,32,37,100,32,114,101,113,117,101,115,116,32,102,111,114,32,99,111,110,116,101,120,116,32,37,112,32,111,102,32,116,121,112,101,32,37,100,10,0,98,97,100,32,112,111,105,110,116,101,114,32,37,112,32,112,97,115,115,101,100,32,116,111,32,103,99,114,121,95,99,116,120,95,114,101,108,97,115,101,10,0,98,97,100,32,99,111,110,116,101,120,116,32,116,121,112,101,32,37,100,32,100,101,116,101,99,116,101,100,32,105,110,32,103,99,114,121,95,99,116,120,95,114,101,108,97,115,101,10,0,103,99,114,121,95,99,105,112,104,101,114,95,99,108,111,115,101,58,32,97,108,114,101,97,100,121,32,99,108,111,115,101,100,47,105,110,118,97,108,105,100,32,104,97,110,100,108,101,0,99,105,112,104,101,114,46,99,0,99,105,112,104,101,114,95,101,110,99,114,121,112,116,0,99,105,112,104,101,114,32,109,111,100,101,32,78,79,78,69,32,117,115,101,100,0,99,105,112,104,101,114,95,101,110,99,114,121,112,116,58,32,105,110,118,97,108,105,100,32,109,111,100,101,32,37,100,10,0,99,105,112,104,101,114,95,100,101,99,114,121,112,116,0,99,105,112,104,101,114,95,100,101,99,114,121,112,116,58,32,105,110,118,97,108,105,100,32,109,111,100,101,32,37,100,10,0,87,65,82,78,73,78,71,58,32,99,105,112,104,101,114,95,115,101,116,105,118,58,32,105,118,108,101,110,61,37,117,32,98,108,107,108,101,110,61,37,117,10,0,99,105,112,104,101,114,95,115,101,116,105,118,0,73,86,32,108,101,110,103,116,104,32,100,111,101,115,32,110,111,116,32,109,97,116,99,104,32,98,108,111,99,107,108,101,110,103,116,104,0,49,46,51,46,54,46,49,46,52,46,49,46,49,49,53,57,49,46,49,53,46,49,0,78,73,83,84,32,80,45,49,57,50,0,49,46,50,46,56,52,48,46,49,48,48,52,53,46,51,46,49,46,49,0,112,114,105,109,101,49,57,50,118,49,0,115,101,99,112,49,57,50,114,49,0,110,105,115,116,112,49,57,50,0,78,73,83,84,32,80,45,50,50,52,0,115,101,99,112,50,50,52,114,49,0,49,46,51,46,49,51,50,46,48,46,51,51,0,110,105,115,116,112,50,50,52,0,78,73,83,84,32,80,45,50,53,54,0,49,46,50,46,56,52,48,46,49,48,48,52,53,46,51,46,49,46,55,0,112,114,105,109,101,50,53,54,118,49,0,115,101,99,112,50,53,54,114,49,0,110,105,115,116,112,50,53,54,0,78,73,83,84,32,80,45,51,56,52,0,115,101,99,112,51,56,52,114,49,0,49,46,51,46,49,51,50,46,48,46,51,52,0,110,105,115,116,112,51,56,52,0,78,73,83,84,32,80,45,53,50,49,0,115,101,99,112,53,50,49,114,49,0,49,46,51,46,49,51,50,46,48,46,51,53,0,110,105,115,116,112,53,50,49,0,98,114,97,105,110,112,111,111,108,80,49,54,48,114,49,0,49,46,51,46,51,54,46,51,46,51,46,50,46,56,46,49,46,49,46,49,0,98,114,97,105,110,112,111,111,108,80,49,57,50,114,49,0,49,46,51,46,51,54,46,51,46,51,46,50,46,56,46,49,46,49,46,51,0,98,114,97,105,110,112,111,111,108,80,50,50,52,114,49,0,49,46,51,46,51,54,46,51,46,51,46,50,46,56,46,49,46,49,46,53,0,98,114,97,105,110,112,111,111,108,80,50,53,54,114,49,0,49,46,51,46,51,54,46,51,46,51,46,50,46,56,46,49,46,49,46,55,0,98,114,97,105,110,112,111,111,108,80,51,50,48,114,49,0,49,46,51,46,51,54,46,51,46,51,46,50,46,56,46,49,46,49,46,57,0,98,114,97,105,110,112,111,111,108,80,51,56,52,114,49,0,49,46,51,46,51,54,46,51,46,51,46,50,46,56,46,49,46,49,46,49,49,0,98,114,97,105,110,112,111,111,108,80,53,49,50,114,49,0,49,46,51,46,51,54,46,51,46,51,46,50,46,56,46,49,46,49,46,49,51,0,71,79,83,84,50,48,48,49,45,116,101,115,116,0,49,46,50,46,54,52,51,46,50,46,50,46,51,53,46,48,0,71,79,83,84,50,48,48,49,45,67,114,121,112,116,111,80,114,111,45,65,0,49,46,50,46,54,52,51,46,50,46,50,46,51,53,46,49,0,71,79,83,84,50,48,48,49,45,67,114,121,112,116,111,80,114,111,45,66,0,49,46,50,46,54,52,51,46,50,46,50,46,51,53,46,50,0,71,79,83,84,50,48,48,49,45,67,114,121,112,116,111,80,114,111,45,67,0,49,46,50,46,54,52,51,46,50,46,50,46,51,53,46,51,0,71,79,83,84,50,48,48,49,45,67,114,121,112,116,111,80,114,111,45,88,99,104,65,0,71,79,83,84,50,48,48,49,45,67,114,121,112,116,111,80,114,111,45,88,99,104,66,0,49,46,50,46,54,52,51,46,50,46,50,46,51,54,46,48,0,49,46,50,46,54,52,51,46,50,46,50,46,51,54,46,49,0,71,79,83,84,50,48,49,50,45,116,99,50,54,45,65,0,49,46,50,46,54,52,51,46,55,46,49,46,50,46,49,46,50,46,49,0,71,79,83,84,50,48,49,50,45,116,99,50,54,45,66,0,49,46,50,46,54,52,51,46,55,46,49,46,50,46,49,46,50,46,50,0,115,101,99,112,50,53,54,107,49,0,49,46,51,46,49,51,50,46,48,46,49,48,0,48,120,55,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,69,68,0,45,48,120,48,49,0,45,48,120,50,68,70,67,57,51,49,49,68,52,57,48,48,49,56,67,55,51,51,56,66,70,56,54,56,56,56,54,49,55,54,55,70,70,56,70,70,53,66,50,66,69,66,69,50,55,53,52,56,65,49,52,66,50,51,53,69,67,65,54,56,55,52,65,0,48,120,49,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,49,52,68,69,70,57,68,69,65,50,70,55,57,67,68,54,53,56,49,50,54,51,49,65,53,67,70,53,68,51,69,68,0,48,120,50,49,54,57,51,54,68,51,67,68,54,69,53,51,70,69,67,48,65,52,69,50,51,49,70,68,68,54,68,67,53,67,54,57,50,67,67,55,54,48,57,53,50,53,65,55,66,50,67,57,53,54,50,68,54,48,56,70,50,53,68,53,49,65,0,48,120,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,53,56,0,48,120,48,56,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,101,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,101,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,99,0,48,120,54,52,50,49,48,53,49,57,101,53,57,99,56,48,101,55,48,102,97,55,101,57,97,98,55,50,50,52,51,48,52,57,102,101,98,56,100,101,101,99,99,49,52,54,98,57,98,49,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,57,57,100,101,102,56,51,54,49,52,54,98,99,57,98,49,98,52,100,50,50,56,51,49,0,48,120,49,56,56,100,97,56,48,101,98,48,51,48,57,48,102,54,55,99,98,102,50,48,101,98,52,51,97,49,56,56,48,48,102,52,102,102,48,97,102,100,56,50,102,102,49,48,49,50,0,48,120,48,55,49,57,50,98,57,53,102,102,99,56,100,97,55,56,54,51,49,48,49,49,101,100,54,98,50,52,99,100,100,53,55,51,102,57,55,55,97,49,49,101,55,57,52,56,49,49,0,48,120,48,49,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,49,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,101,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,101,0,48,120,98,52,48,53,48,97,56,53,48,99,48,52,98,51,97,98,102,53,52,49,51,50,53,54,53,48,52,52,98,48,98,55,100,55,98,102,100,56,98,97,50,55,48,98,51,57,52,51,50,51,53,53,102,102,98,52,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,49,54,97,50,101,48,98,56,102,48,51,101,49,51,100,100,50,57,52,53,53,99,53,99,50,97,51,100,0,48,120,98,55,48,101,48,99,98,100,54,98,98,52,98,102,55,102,51,50,49,51,57,48,98,57,52,97,48,51,99,49,100,51,53,54,99,50,49,49,50,50,51,52,51,50,56,48,100,54,49,49,53,99,49,100,50,49,0,48,120,98,100,51,55,54,51,56,56,98,53,102,55,50,51,102,98,52,99,50,50,100,102,101,54,99,100,52,51,55,53,97,48,53,97,48,55,52,55,54,52,52,52,100,53,56,49,57,57,56,53,48,48,55,101,51,52,0,48,120,102,102,102,102,102,102,102,102,48,48,48,48,48,48,48,49,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,0,48,120,102,102,102,102,102,102,102,102,48,48,48,48,48,48,48,49,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,99,0,48,120,53,97,99,54,51,53,100,56,97,97,51,97,57,51,101,55,98,51,101,98,98,100,53,53,55,54,57,56,56,54,98,99,54,53,49,100,48,54,98,48,99,99,53,51,98,48,102,54,51,98,99,101,51,99,51,101,50,55,100,50,54,48,52,98,0,48,120,102,102,102,102,102,102,102,102,48,48,48,48,48,48,48,48,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,98,99,101,54,102,97,97,100,97,55,49,55,57,101,56,52,102,51,98,57,99,97,99,50,102,99,54,51,50,53,53,49,0,48,120,54,98,49,55,100,49,102,50,101,49,50,99,52,50,52,55,102,56,98,99,101,54,101,53,54,51,97,52,52,48,102,50,55,55,48,51,55,100,56,49,50,100,101,98,51,51,97,48,102,52,97,49,51,57,52,53,100,56,57,56,99,50,57,54,0,48,120,52,102,101,51,52,50,101,50,102,101,49,97,55,102,57,98,56,101,101,55,101,98,52,97,55,99,48,102,57,101,49,54,50,98,99,101,51,51,53,55,54,98,51,49,53,101,99,101,99,98,98,54,52,48,54,56,51,55,98,102,53,49,102,53,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,101,102,102,102,102,102,102,102,102,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,102,102,102,102,102,102,102,102,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,101,102,102,102,102,102,102,102,102,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,102,102,102,102,102,102,102,99,0,48,120,98,51,51,49,50,102,97,55,101,50,51,101,101,55,101,52,57,56,56,101,48,53,54,98,101,51,102,56,50,100,49,57,49,56,49,100,57,99,54,101,102,101,56,49,52,49,49,50,48,51,49,52,48,56,56,102,53,48,49,51,56,55,53,97,99,54,53,54,51,57,56,100,56,97,50,101,100,49,57,100,50,97,56,53,99,56,101,100,100,51,101,99,50,97,101,102,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,99,55,54,51,52,100,56,49,102,52,51,55,50,100,100,102,53,56,49,97,48,100,98,50,52,56,98,48,97,55,55,97,101,99,101,99,49,57,54,97,99,99,99,53,50,57,55,51,0,48,120,97,97,56,55,99,97,50,50,98,101,56,98,48,53,51,55,56,101,98,49,99,55,49,101,102,51,50,48,97,100,55,52,54,101,49,100,51,98,54,50,56,98,97,55,57,98,57,56,53,57,102,55,52,49,101,48,56,50,53,52,50,97,51,56,53,53,48,50,102,50,53,100,98,102,53,53,50,57,54,99,51,97,53,52,53,101,51,56,55,50,55,54,48,97,98,55,0,48,120,51,54,49,55,100,101,52,97,57,54,50,54,50,99,54,102,53,100,57,101,57,56,98,102,57,50,57,50,100,99,50,57,102,56,102,52,49,100,98,100,50,56,57,97,49,52,55,99,101,57,100,97,51,49,49,51,98,53,102,48,98,56,99,48,48,97,54,48,98,49,99,101,49,100,55,101,56,49,57,100,55,97,52,51,49,100,55,99,57,48,101,97,48,101,53,102,0,48,120,48,49,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,0,48,120,48,49,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,99,0,48,120,48,53,49,57,53,51,101,98,57,54,49,56,101,49,99,57,97,49,102,57,50,57,97,50,49,97,48,98,54,56,53,52,48,101,101,97,50,100,97,55,50,53,98,57,57,98,51,49,53,102,51,98,56,98,52,56,57,57,49,56,101,102,49,48,57,101,49,53,54,49,57,51,57,53,49,101,99,55,101,57,51,55,98,49,54,53,50,99,48,98,100,51,98,98,49,98,102,48,55,51,53,55,51,100,102,56,56,51,100,50,99,51,52,102,49,101,102,52,53,49,102,100,52,54,98,53,48,51,102,48,48,0,48,120,49,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,97,53,49,56,54,56,55,56,51,98,102,50,102,57,54,54,98,55,102,99,99,48,49,52,56,102,55,48,57,97,53,100,48,51,98,98,53,99,57,98,56,56,57,57,99,52,55,97,101,98,98,54,102,98,55,49,101,57,49,51,56,54,52,48,57,0,48,120,48,48,99,54,56,53,56,101,48,54,98,55,48,52,48,52,101,57,99,100,57,101,51,101,99,98,54,54,50,51,57,53,98,52,52,50,57,99,54,52,56,49,51,57,48,53,51,102,98,53,50,49,102,56,50,56,97,102,54,48,54,98,52,100,51,100,98,97,97,49,52,98,53,101,55,55,101,102,101,55,53,57,50,56,102,101,49,100,99,49,50,55,97,50,102,102,97,56,100,101,51,51,52,56,98,51,99,49,56,53,54,97,52,50,57,98,102,57,55,101,55,101,51,49,99,50,101,53,98,100,54,54,0,48,120,48,49,49,56,51,57,50,57,54,97,55,56,57,97,51,98,99,48,48,52,53,99,56,97,53,102,98,52,50,99,55,100,49,98,100,57,57,56,102,53,52,52,52,57,53,55,57,98,52,52,54,56,49,55,97,102,98,100,49,55,50,55,51,101,54,54,50,99,57,55,101,101,55,50,57,57,53,101,102,52,50,54,52,48,99,53,53,48,98,57,48,49,51,102,97,100,48,55,54,49,51,53,51,99,55,48,56,54,97,50,55,50,99,50,52,48,56,56,98,101,57,52,55,54,57,102,100,49,54,54,53,48,0,48,120,101,57,53,101,52,97,53,102,55,51,55,48,53,57,100,99,54,48,100,102,99,55,97,100,57,53,98,51,100,56,49,51,57,53,49,53,54,50,48,102,0,48,120,51,52,48,101,55,98,101,50,97,50,56,48,101,98,55,52,101,50,98,101,54,49,98,97,100,97,55,52,53,100,57,55,101,56,102,55,99,51,48,48,0,48,120,49,101,53,56,57,97,56,53,57,53,52,50,51,52,49,50,49,51,52,102,97,97,50,100,98,100,101,99,57,53,99,56,100,56,54,55,53,101,53,56,0,48,120,101,57,53,101,52,97,53,102,55,51,55,48,53,57,100,99,54,48,100,102,53,57,57,49,100,52,53,48,50,57,52,48,57,101,54,48,102,99,48,57,0,48,120,98,101,100,53,97,102,49,54,101,97,51,102,54,97,52,102,54,50,57,51,56,99,52,54,51,49,101,98,53,97,102,55,98,100,98,99,100,98,99,51,0,48,120,49,54,54,55,99,98,52,55,55,97,49,97,56,101,99,51,51,56,102,57,52,55,52,49,54,54,57,99,57,55,54,51,49,54,100,97,54,51,50,49,0,48,120,99,51,48,50,102,52,49,100,57,51,50,97,51,54,99,100,97,55,97,51,52,54,51,48,57,51,100,49,56,100,98,55,56,102,99,101,52,55,54,100,101,49,97,56,54,50,57,55,0,48,120,54,97,57,49,49,55,52,48,55,54,98,49,101,48,101,49,57,99,51,57,99,48,51,49,102,101,56,54,56,53,99,49,99,97,101,48,52,48,101,53,99,54,57,97,50,56,101,102,0,48,120,52,54,57,97,50,56,101,102,55,99,50,56,99,99,97,51,100,99,55,50,49,100,48,52,52,102,52,52,57,54,98,99,99,97,55,101,102,52,49,52,54,102,98,102,50,53,99,57,0,48,120,99,51,48,50,102,52,49,100,57,51,50,97,51,54,99,100,97,55,97,51,52,54,50,102,57,101,57,101,57,49,54,98,53,98,101,56,102,49,48,50,57,97,99,52,97,99,99,49,0,48,120,99,48,97,48,54,52,55,101,97,97,98,54,97,52,56,55,53,51,98,48,51,51,99,53,54,99,98,48,102,48,57,48,48,97,50,102,53,99,52,56,53,51,51,55,53,102,100,54,0,48,120,49,52,98,54,57,48,56,54,54,97,98,100,53,98,98,56,56,98,53,102,52,56,50,56,99,49,52,57,48,48,48,50,101,54,55,55,51,102,97,50,102,97,50,57,57,98,56,102,0,48,120,100,55,99,49,51,52,97,97,50,54,52,51,54,54,56,54,50,97,49,56,51,48,50,53,55,53,100,49,100,55,56,55,98,48,57,102,48,55,53,55,57,55,100,97,56,57,102,53,55,101,99,56,99,48,102,102,0,48,120,54,56,97,53,101,54,50,99,97,57,99,101,54,99,49,99,50,57,57,56,48,51,97,54,99,49,53,51,48,98,53,49,52,101,49,56,50,97,100,56,98,48,48,52,50,97,53,57,99,97,100,50,57,102,52,51,0,48,120,50,53,56,48,102,54,51,99,99,102,101,52,52,49,51,56,56,55,48,55,49,51,98,49,97,57,50,51,54,57,101,51,51,101,50,49,51,53,100,50,54,54,100,98,98,51,55,50,51,56,54,99,52,48,48,98,0,48,120,100,55,99,49,51,52,97,97,50,54,52,51,54,54,56,54,50,97,49,56,51,48,50,53,55,53,100,48,102,98,57,56,100,49,49,54,98,99,52,98,54,100,100,101,98,99,97,51,97,53,97,55,57,51,57,102,0,48,120,48,100,57,48,50,57,97,100,50,99,55,101,53,99,102,52,51,52,48,56,50,51,98,50,97,56,55,100,99,54,56,99,57,101,52,99,101,51,49,55,52,99,49,101,54,101,102,100,101,101,49,50,99,48,55,100,0,48,120,53,56,97,97,53,54,102,55,55,50,99,48,55,50,54,102,50,52,99,54,98,56,57,101,52,101,99,100,97,99,50,52,51,53,52,98,57,101,57,57,99,97,97,51,102,54,100,51,55,54,49,52,48,50,99,100,0,48,120,97,57,102,98,53,55,100,98,97,49,101,101,97,57,98,99,51,101,54,54,48,97,57,48,57,100,56,51,56,100,55,50,54,101,51,98,102,54,50,51,100,53,50,54,50,48,50,56,50,48,49,51,52,56,49,100,49,102,54,101,53,51,55,55,0,48,120,55,100,53,97,48,57,55,53,102,99,50,99,51,48,53,55,101,101,102,54,55,53,51,48,52,49,55,97,102,102,101,55,102,98,56,48,53,53,99,49,50,54,100,99,53,99,54,99,101,57,52,97,52,98,52,52,102,51,51,48,98,53,100,57,0,48,120,50,54,100,99,53,99,54,99,101,57,52,97,52,98,52,52,102,51,51,48,98,53,100,57,98,98,100,55,55,99,98,102,57,53,56,52,49,54,50,57,53,99,102,55,101,49,99,101,54,98,99,99,100,99,49,56,102,102,56,99,48,55,98,54,0,48,120,97,57,102,98,53,55,100,98,97,49,101,101,97,57,98,99,51,101,54,54,48,97,57,48,57,100,56,51,56,100,55,49,56,99,51,57,55,97,97,51,98,53,54,49,97,54,102,55,57,48,49,101,48,101,56,50,57,55,52,56,53,54,97,55,0,48,120,56,98,100,50,97,101,98,57,99,98,55,101,53,55,99,98,50,99,52,98,52,56,50,102,102,99,56,49,98,55,97,102,98,57,100,101,50,55,101,49,101,51,98,100,50,51,99,50,51,97,52,52,53,51,98,100,57,97,99,101,51,50,54,50,0,48,120,53,52,55,101,102,56,51,53,99,51,100,97,99,52,102,100,57,55,102,56,52,54,49,97,49,52,54,49,49,100,99,57,99,50,55,55,52,53,49,51,50,100,101,100,56,101,53,52,53,99,49,100,53,52,99,55,50,102,48,52,54,57,57,55,0,48,120,100,51,53,101,52,55,50,48,51,54,98,99,52,102,98,55,101,49,51,99,55,56,53,101,100,50,48,49,101,48,54,53,102,57,56,102,99,102,97,54,102,54,102,52,48,100,101,102,52,102,57,50,98,57,101,99,55,56,57,51,101,99,50,56,102,99,100,52,49,50,98,49,102,49,98,51,50,101,50,55,0,48,120,51,101,101,51,48,98,53,54,56,102,98,97,98,48,102,56,56,51,99,99,101,98,100,52,54,100,51,102,51,98,98,56,97,50,97,55,51,53,49,51,102,53,101,98,55,57,100,97,54,54,49,57,48,101,98,48,56,53,102,102,97,57,102,52,57,50,102,51,55,53,97,57,55,100,56,54,48,101,98,52,0,48,120,53,50,48,56,56,51,57,52,57,100,102,100,98,99,52,50,100,51,97,100,49,57,56,54,52,48,54,56,56,97,54,102,101,49,51,102,52,49,51,52,57,53,53,52,98,52,57,97,99,99,51,49,100,99,99,100,56,56,52,53,51,57,56,49,54,102,53,101,98,52,97,99,56,102,98,49,102,49,97,54,0,48,120,100,51,53,101,52,55,50,48,51,54,98,99,52,102,98,55,101,49,51,99,55,56,53,101,100,50,48,49,101,48,54,53,102,57,56,102,99,102,97,53,98,54,56,102,49,50,97,51,50,100,52,56,50,101,99,55,101,101,56,54,53,56,101,57,56,54,57,49,53,53,53,98,52,52,99,53,57,51,49,49,0,48,120,52,51,98,100,55,101,57,97,102,98,53,51,100,56,98,56,53,50,56,57,98,99,99,52,56,101,101,53,98,102,101,54,102,50,48,49,51,55,100,49,48,97,48,56,55,101,98,54,101,55,56,55,49,101,50,97,49,48,97,53,57,57,99,55,49,48,97,102,56,100,48,100,51,57,101,50,48,54,49,49,0,48,120,49,52,102,100,100,48,53,53,52,53,101,99,49,99,99,56,97,98,52,48,57,51,50,52,55,102,55,55,50,55,53,101,48,55,52,51,102,102,101,100,49,49,55,49,56,50,101,97,97,57,99,55,55,56,55,55,97,97,97,99,54,97,99,55,100,51,53,50,52,53,100,49,54,57,50,101,56,101,101,49,0,48,120,56,99,98,57,49,101,56,50,97,51,51,56,54,100,50,56,48,102,53,100,54,102,55,101,53,48,101,54,52,49,100,102,49,53,50,102,55,49,48,57,101,100,53,52,53,54,98,52,49,50,98,49,100,97,49,57,55,102,98,55,49,49,50,51,97,99,100,51,97,55,50,57,57,48,49,100,49,97,55,49,56,55,52,55,48,48,49,51,51,49,48,55,101,99,53,51,0,48,120,55,98,99,51,56,50,99,54,51,100,56,99,49,53,48,99,51,99,55,50,48,56,48,97,99,101,48,53,97,102,97,48,99,50,98,101,97,50,56,101,52,102,98,50,50,55,56,55,49,51,57,49,54,53,101,102,98,97,57,49,102,57,48,102,56,97,97,53,56,49,52,97,53,48,51,97,100,52,101,98,48,52,97,56,99,55,100,100,50,50,99,101,50,56,50,54,0,48,120,48,52,97,56,99,55,100,100,50,50,99,101,50,56,50,54,56,98,51,57,98,53,53,52,49,54,102,48,52,52,55,99,50,102,98,55,55,100,101,49,48,55,100,99,100,50,97,54,50,101,56,56,48,101,97,53,51,101,101,98,54,50,100,53,55,99,98,52,51,57,48,50,57,53,100,98,99,57,57,52,51,97,98,55,56,54,57,54,102,97,53,48,52,99,49,49,0,48,120,56,99,98,57,49,101,56,50,97,51,51,56,54,100,50,56,48,102,53,100,54,102,55,101,53,48,101,54,52,49,100,102,49,53,50,102,55,49,48,57,101,100,53,52,53,54,98,51,49,102,49,54,54,101,54,99,97,99,48,52,50,53,97,55,99,102,51,97,98,54,97,102,54,98,55,102,99,51,49,48,51,98,56,56,51,50,48,50,101,57,48,52,54,53,54,53,0,48,120,49,100,49,99,54,52,102,48,54,56,99,102,52,53,102,102,97,50,97,54,51,97,56,49,98,55,99,49,51,102,54,98,56,56,52,55,97,51,101,55,55,101,102,49,52,102,101,51,100,98,55,102,99,97,102,101,48,99,98,100,49,48,101,56,101,56,50,54,101,48,51,52,51,54,100,54,52,54,97,97,101,102,56,55,98,50,101,50,52,55,100,52,97,102,49,101,0,48,120,56,97,98,101,49,100,55,53,50,48,102,57,99,50,97,52,53,99,98,49,101,98,56,101,57,53,99,102,100,53,53,50,54,50,98,55,48,98,50,57,102,101,101,99,53,56,54,52,101,49,57,99,48,53,52,102,102,57,57,49,50,57,50,56,48,101,52,54,52,54,50,49,55,55,57,49,56,49,49,49,52,50,56,50,48,51,52,49,50,54,51,99,53,51,49,53,0,48,120,97,97,100,100,57,100,98,56,100,98,101,57,99,52,56,98,51,102,100,52,101,54,97,101,51,51,99,57,102,99,48,55,99,98,51,48,56,100,98,51,98,51,99,57,100,50,48,101,100,54,54,51,57,99,99,97,55,48,51,51,48,56,55,49,55,100,52,100,57,98,48,48,57,98,99,54,54,56,52,50,97,101,99,100,97,49,50,97,101,54,97,51,56,48,101,54,50,56,56,49,102,102,50,102,50,100,56,50,99,54,56,53,50,56,97,97,54,48,53,54,53,56,51,97,52,56,102,51,0,48,120,55,56,51,48,97,51,51,49,56,98,54,48,51,98,56,57,101,50,51,50,55,49,52,53,97,99,50,51,52,99,99,53,57,52,99,98,100,100,56,100,51,100,102,57,49,54,49,48,97,56,51,52,52,49,99,97,101,97,57,56,54,51,98,99,50,100],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+20480);allocate([101,100,53,100,53,97,97,56,50,53,51,97,97,49,48,97,50,101,102,49,99,57,56,98,57,97,99,56,98,53,55,102,49,49,49,55,97,55,50,98,102,50,99,55,98,57,101,55,99,49,97,99,52,100,55,55,102,99,57,52,99,97,0,48,120,51,100,102,57,49,54,49,48,97,56,51,52,52,49,99,97,101,97,57,56,54,51,98,99,50,100,101,100,53,100,53,97,97,56,50,53,51,97,97,49,48,97,50,101,102,49,99,57,56,98,57,97,99,56,98,53,55,102,49,49,49,55,97,55,50,98,102,50,99,55,98,57,101,55,99,49,97,99,52,100,55,55,102,99,57,52,99,97,100,99,48,56,51,101,54,55,57,56,52,48,53,48,98,55,53,101,98,97,101,53,100,100,50,56,48,57,98,100,54,51,56,48,49,54,102,55,50,51,0,48,120,97,97,100,100,57,100,98,56,100,98,101,57,99,52,56,98,51,102,100,52,101,54,97,101,51,51,99,57,102,99,48,55,99,98,51,48,56,100,98,51,98,51,99,57,100,50,48,101,100,54,54,51,57,99,99,97,55,48,51,51,48,56,55,48,53,53,51,101,53,99,52,49,52,99,97,57,50,54,49,57,52,49,56,54,54,49,49,57,55,102,97,99,49,48,52,55,49,100,98,49,100,51,56,49,48,56,53,100,100,97,100,100,98,53,56,55,57,54,56,50,57,99,97,57,48,48,54,57,0,48,120,56,49,97,101,101,52,98,100,100,56,50,101,100,57,54,52,53,97,50,49,51,50,50,101,57,99,52,99,54,97,57,51,56,53,101,100,57,102,55,48,98,53,100,57,49,54,99,49,98,52,51,98,54,50,101,101,102,52,100,48,48,57,56,101,102,102,51,98,49,102,55,56,101,50,100,48,100,52,56,100,53,48,100,49,54,56,55,98,57,51,98,57,55,100,53,102,55,99,54,100,53,48,52,55,52,48,54,97,53,101,54,56,56,98,51,53,50,50,48,57,98,99,98,57,102,56,50,50,0,48,120,55,100,100,101,51,56,53,100,53,54,54,51,51,50,101,99,99,48,101,97,98,102,97,57,99,102,55,56,50,50,102,100,102,50,48,57,102,55,48,48,50,52,97,53,55,98,49,97,97,48,48,48,99,53,53,98,56,56,49,102,56,49,49,49,98,50,100,99,100,101,52,57,52,97,53,102,52,56,53,101,53,98,99,97,52,98,100,56,56,97,50,55,54,51,97,101,100,49,99,97,50,98,50,102,97,56,102,48,53,52,48,54,55,56,99,100,49,101,48,102,51,97,100,56,48,56,57,50,0,48,120,56,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,52,51,49,0,48,120,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,55,0,48,120,53,102,98,102,102,52,57,56,97,97,57,51,56,99,101,55,51,57,98,56,101,48,50,50,102,98,97,102,101,102,52,48,53,54,51,102,54,101,54,97,51,52,55,50,102,99,50,97,53,49,52,99,48,99,101,57,100,97,101,50,51,98,55,101,0,48,120,56,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,49,53,48,102,101,56,97,49,56,57,50,57,55,54,49,53,52,99,53,57,99,102,99,49,57,51,97,99,99,102,53,98,51,0,48,120,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,50,0,48,120,48,56,101,50,97,56,97,48,101,54,53,49,52,55,100,52,98,100,54,51,49,54,48,51,48,101,49,54,100,49,57,99,56,53,99,57,55,102,48,97,57,99,97,50,54,55,49,50,50,98,57,54,97,98,98,99,101,97,55,101,56,102,99,56,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,100,57,55,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,100,57,52,0,48,120,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,97,54,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,54,99,54,49,49,48,55,48,57,57,53,97,100,49,48,48,52,53,56,52,49,98,48,57,98,55,54,49,98,56,57,51,0,48,120,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,49,0,48,120,56,100,57,49,101,52,55,49,101,48,57,56,57,99,100,97,50,55,100,102,53,48,53,97,52,53,51,102,50,98,55,54,51,53,50,57,52,102,50,100,100,102,50,51,101,51,98,49,50,50,97,99,99,57,57,99,57,101,57,102,49,101,49,52,0,48,120,56,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,99,57,57,0,48,120,56,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,99,57,54,0,48,120,51,101,49,97,102,52,49,57,97,50,54,57,97,53,102,56,54,54,97,55,100,51,99,50,53,99,51,100,102,56,48,97,101,57,55,57,50,53,57,51,55,51,102,102,50,98,49,56,50,102,52,57,100,52,99,101,55,101,49,98,98,99,56,98,0,48,120,56,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,49,53,102,55,48,48,99,102,102,102,49,97,54,50,52,101,53,101,52,57,55,49,54,49,98,99,99,56,97,49,57,56,102,0,48,120,51,102,97,56,49,50,52,51,53,57,102,57,54,54,56,48,98,56,51,100,49,99,51,101,98,50,99,48,55,48,101,53,99,53,52,53,99,57,56,53,56,100,48,51,101,99,102,98,55,52,52,98,102,56,100,55,49,55,55,49,55,101,102,99,0,48,120,57,98,57,102,54,48,53,102,53,97,56,53,56,49,48,55,97,98,49,101,99,56,53,101,54,98,52,49,99,56,97,97,99,102,56,52,54,101,56,54,55,56,57,48,53,49,100,51,55,57,57,56,102,55,98,57,48,50,50,100,55,53,57,98,0,48,120,57,98,57,102,54,48,53,102,53,97,56,53,56,49,48,55,97,98,49,101,99,56,53,101,54,98,52,49,99,56,97,97,99,102,56,52,54,101,56,54,55,56,57,48,53,49,100,51,55,57,57,56,102,55,98,57,48,50,50,100,55,53,57,56,0,48,120,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,56,48,53,97,0,48,120,57,98,57,102,54,48,53,102,53,97,56,53,56,49,48,55,97,98,49,101,99,56,53,101,54,98,52,49,99,56,97,97,53,56,50,99,97,51,53,49,49,101,100,100,102,98,55,52,102,48,50,102,51,97,54,53,57,56,57,56,48,98,98,57,0,48,120,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,0,48,120,52,49,101,99,101,53,53,55,52,51,55,49,49,97,56,99,51,99,98,102,51,55,56,51,99,100,48,56,99,48,101,101,52,100,52,100,99,52,52,48,100,52,54,52,49,97,56,102,51,54,54,101,53,53,48,100,102,100,98,51,98,98,54,55,0,71,79,83,84,50,48,49,50,45,116,101,115,116,0,48,120,52,53,51,49,97,99,100,49,102,101,48,48,50,51,99,55,53,53,48,100,50,54,55,98,54,98,50,102,101,101,56,48,57,50,50,98,49,52,98,50,102,102,98,57,48,102,48,52,100,52,101,98,55,99,48,57,98,53,100,50,100,49,53,100,102,49,100,56,53,50,55,52,49,97,102,52,55,48,52,97,48,52,53,56,48,52,55,101,56,48,101,52,53,52,54,100,51,53,98,56,51,51,54,102,97,99,50,50,52,100,100,56,49,54,54,52,98,98,102,53,50,56,98,101,54,51,55,51,0,48,120,49,99,102,102,48,56,48,54,97,51,49,49,49,54,100,97,50,57,100,56,99,102,97,53,52,101,53,55,101,98,55,52,56,98,99,53,102,51,55,55,101,52,57,52,48,48,102,100,100,55,56,56,98,54,52,57,101,99,97,49,97,99,52,51,54,49,56,51,52,48,49,51,98,50,97,100,55,51,50,50,52,56,48,97,56,57,99,97,53,56,101,48,99,102,55,52,98,99,57,101,53,52,48,99,50,97,100,100,54,56,57,55,102,97,100,48,97,51,48,56,52,102,51,48,50,97,100,99,0,48,120,52,53,51,49,97,99,100,49,102,101,48,48,50,51,99,55,53,53,48,100,50,54,55,98,54,98,50,102,101,101,56,48,57,50,50,98,49,52,98,50,102,102,98,57,48,102,48,52,100,52,101,98,55,99,48,57,98,53,100,50,100,49,53,100,97,56,50,102,50,100,55,101,99,98,49,100,98,97,99,55,49,57,57,48,53,99,53,101,101,99,99,52,50,51,102,49,100,56,54,101,50,53,101,100,98,101,50,51,99,53,57,53,100,54,52,52,97,97,102,49,56,55,101,54,101,54,100,102,0,48,120,50,52,100,49,57,99,99,54,52,53,55,50,101,101,51,48,102,51,57,54,98,102,54,101,98,98,102,100,55,97,54,99,53,50,49,51,98,51,98,51,100,55,48,53,55,99,99,56,50,53,102,57,49,48,57,51,97,54,56,99,100,55,54,50,102,100,54,48,54,49,49,50,54,50,99,100,56,51,56,100,99,54,98,54,48,97,97,55,101,101,101,56,48,52,101,50,56,98,99,56,52,57,57,55,55,102,97,99,51,51,98,52,98,53,51,48,102,49,98,49,50,48,50,52,56,97,57,97,0,48,120,50,98,98,51,49,50,97,52,51,98,100,50,99,101,54,101,48,100,48,50,48,54,49,51,99,56,53,55,97,99,100,100,99,102,98,102,48,54,49,101,57,49,101,53,102,50,99,51,102,51,50,52,52,55,99,50,53,57,102,51,57,98,50,99,56,51,97,98,49,53,54,100,55,55,102,49,52,57,54,98,102,55,101,98,51,51,53,49,101,49,101,101,52,101,52,51,100,99,49,97,49,56,98,57,49,98,50,52,54,52,48,98,54,100,98,98,57,50,99,98,49,97,100,100,51,55,49,101,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,100,99,55,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,100,99,52,0,48,120,101,56,99,50,53,48,53,100,101,100,102,99,56,54,100,100,99,49,98,100,48,98,50,98,54,54,54,55,102,49,100,97,51,52,98,56,50,53,55,52,55,54,49,99,98,48,101,56,55,57,98,100,48,56,49,99,102,100,48,98,54,50,54,53,101,101,51,99,98,48,57,48,102,51,48,100,50,55,54,49,52,99,98,52,53,55,52,48,49,48,100,97,57,48,100,100,56,54,50,101,102,57,100,52,101,98,101,101,52,55,54,49,53,48,51,49,57,48,55,56,53,97,55,49,99,55,54,48,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,50,55,101,54,57,53,51,50,102,52,56,100,56,57,49,49,54,102,102,50,50,98,56,100,52,101,48,53,54,48,54,48,57,98,52,98,51,56,97,98,102,97,100,50,98,56,53,100,99,97,99,100,98,49,52,49,49,102,49,48,98,50,55,53,0,48,120,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,51,0,48,120,55,53,48,51,99,102,101,56,55,97,56,51,54,97,101,51,97,54,49,98,56,56,49,54,101,50,53,52,53,48,101,54,99,101,53,101,49,99,57,51,97,99,102,49,97,98,99,49,55,55,56,48,54,52,102,100,99,98,101,102,97,57,50,49,100,102,49,54,50,54,98,101,52,102,100,48,51,54,101,57,51,100,55,53,101,54,97,53,48,101,51,97,52,49,101,57,56,48,50,56,102,101,53,102,99,50,51,53,102,53,98,56,56,57,97,53,56,57,99,98,53,50,49,53,102,50,97,52,0,48,120,56,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,54,102,0,48,120,56,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,54,99,0,48,120,54,56,55,100,49,98,52,53,57,100,99,56,52,49,52,53,55,101,51,101,48,54,99,102,54,102,53,101,50,53,49,55,98,57,55,99,55,100,54,49,52,97,102,49,51,56,98,99,98,102,56,53,100,99,56,48,54,99,52,98,50,56,57,102,51,101,57,54,53,100,50,100,98,49,52,49,54,100,50,49,55,102,56,98,50,55,54,102,97,100,49,97,98,54,57,99,53,48,102,55,56,98,101,101,49,102,97,51,49,48,54,101,102,98,56,99,99,98,99,55,99,53,49,52,48,49,49,54,0,48,120,56,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,49,52,57,97,49,101,99,49,52,50,53,54,53,97,53,52,53,97,99,102,100,98,55,55,98,100,57,100,52,48,99,102,97,56,98,57,57,54,55,49,50,49,48,49,98,101,97,48,101,99,54,51,52,54,99,53,52,51,55,52,102,50,53,98,100,0,48,120,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,50,0,48,120,49,97,56,102,55,101,100,97,51,56,57,98,48,57,52,99,50,99,48,55,49,101,51,54,52,55,97,56,57,52,48,102,51,99,49,50,51,98,54,57,55,53,55,56,99,50,49,51,98,101,54,100,100,57,101,54,99,56,101,99,55,51,51,53,100,99,98,50,50,56,102,100,49,101,100,102,52,97,51,57,49,53,50,99,98,99,97,97,102,56,99,48,51,57,56,56,50,56,48,52,49,48,53,53,102,57,52,99,101,101,101,99,55,101,50,49,51,52,48,55,56,48,102,101,52,49,98,100,0,48,120,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,69,70,70,70,70,70,67,50,70,0,48,120,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,69,66,65,65,69,68,67,69,54,65,70,52,56,65,48,51,66,66,70,68,50,53,69,56,67,68,48,51,54,52,49,52,49,0,48,120,55,57,66,69,54,54,55,69,70,57,68,67,66,66,65,67,53,53,65,48,54,50,57,53,67,69,56,55,48,66,48,55,48,50,57,66,70,67,68,66,50,68,67,69,50,56,68,57,53,57,70,50,56,49,53,66,49,54,70,56,49,55,57,56,0,48,120,52,56,51,65,68,65,55,55,50,54,65,51,67,52,54,53,53,68,65,52,70,66,70,67,48,69,49,49,48,56,65,56,70,68,49,55,66,52,52,56,65,54,56,53,53,52,49,57,57,67,52,55,68,48,56,70,70,66,49,48,68,52,66,56,0,48,120,48,52,0,45,112,97,98,103,110,104,0,98,0,103,0,104,0,100,0,46,120,0,46,121,0,46,122,0,101,99,99,32,103,101,116,32,112,97,114,97,109,58,32,70,97,105,108,101,100,32,116,111,32,103,101,116,32,97,102,102,105,110,101,32,99,111,111,114,100,105,110,97,116,101,115,10,0,40,112,117,98,108,105,99,45,107,101,121,40,101,99,99,40,112,37,109,41,40,97,37,109,41,40,98,37,109,41,40,103,37,109,41,40,110,37,109,41,40,104,37,109,41,41,41,0,103,46,120,0,103,46,121,0,113,46,120,0,113,46,121,0,101,100,100,115,97,95,101,110,99,111,100,101,112,111,105,110,116,58,32,70,97,105,108,101,100,32,116,111,32,103,101,116,32,97,102,102,105,110,101,32,99,111,111,114,100,105,110,97,116,101,115,10,0,48,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,68,0,115,99,97,110,110,105,110,103,32,69,67,67,32,112,97,114,97,109,101,116,101,114,32,102,97,105,108,101,100,58,32,37,115,10,0,50,66,56,51,50,52,56,48,52,70,67,49,68,70,48,66,50,66,52,68,48,48,57,57,51,68,70,66,68,55,65,55,50,70,52,51,49,56,48,54,65,68,50,70,69,52,55,56,67,52,69,69,49,66,50,55,52,65,48,69,65,48,66,48,0,101,99,103,101,110,32,32,32,32,32,32,112,107,0,42,32,101,95,112,107,0,32,32,101,95,112,107,0,32,32,32,32,32,109,0,32,32,32,114,0,32,32,32,101,95,114,0,32,72,40,82,43,41,0,32,32,32,101,95,115,0,69,100,119,97,114,100,115,0,87,101,105,101,114,115,116,114,97,115,115,0,69,100,50,53,53,49,57,0,83,116,97,110,100,97,114,100,0,109,112,105,95,112,114,105,110,116,32,102,97,105,108,101,100,58,32,37,115,10,0,109,112,105,95,115,99,97,110,32,102,97,105,108,101,100,58,32,37,115,10,0,83,97,109,112,108,101,32,35,49,0,79,76,163,213,214,139,167,204,10,18,8,201,198,30,156,93,160,64,60,10,0,83,97,109,112,108,101,32,35,50,0,9,34,211,64,95,170,61,25,79,130,164,88,48,115,125,92,198,199,93,36,0,83,97,109,112,108,101,32,35,51,0,188,244,30,171,139,178,216,2,243,208,92,175,124,176,146,236,248,209,163,170,0,83,97,109,112,108,101,32,35,52,0,158,168,134,239,226,104,219,236,206,66,12,117,36,223,50,224,117,26,42,38,0,70,73,80,83,45,49,57,56,97,44,32,65,46,49,0,70,73,80,83,45,49,57,56,97,44,32,65,46,50,0,70,73,80,83,45,49,57,56,97,44,32,65,46,51,0,70,73,80,83,45,49,57,56,97,44,32,65,46,52,0,104,109,97,99,0,95,103,99,114,121,95,104,109,97,99,50,53,54,95,110,101,119,32,102,97,105,108,101,100,0,95,103,99,114,121,95,104,109,97,99,50,53,54,95,102,105,110,97,108,105,122,101,32,102,97,105,108,101,100,0,100,111,101,115,32,110,111,116,32,109,97,116,99,104,32,105,110,32,115,101,99,111,110,100,32,105,109,112,108,101,109,101,110,116,97,116,105,111,110,0,97,108,103,111,114,105,116,104,109,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,100,97,116,97,45,50,56,32,107,101,121,45,52,0,119,104,97,116,32,100,111,32,121,97,32,119,97,110,116,32,102,111,114,32,110,111,116,104,105,110,103,63,0,74,101,102,101,0,100,97,116,97,45,57,32,107,101,121,45,50,48,0,72,105,32,84,104,101,114,101,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,100,97,116,97,45,53,48,32,107,101,121,45,50,48,0,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,0,100,97,116,97,45,53,48,32,107,101,121,45,50,54,0,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,100,97,116,97,45,53,52,32,107,101,121,45,49,51,49,0,84,101,115,116,32,85,115,105,110,103,32,76,97,114,103,101,114,32,84,104,97,110,32,66,108,111,99,107,45,83,105,122,101,32,75,101,121,32,45,32,72,97,115,104,32,75,101,121,32,70,105,114,115,116,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,0,100,97,116,97,45,49,53,50,32,107,101,121,45,49,51,49,0,84,104,105,115,32,105,115,32,97,32,116,101,115,116,32,117,115,105,110,103,32,97,32,108,97,114,103,101,114,32,116,104,97,110,32,98,108,111,99,107,45,115,105,122,101,32,107,101,121,32,97,110,100,32,97,32,108,97,114,103,101,114,32,116,104,97,110,32,98,108,111,99,107,45,115,105,122,101,32,100,97,116,97,46,32,84,104,101,32,107,101,121,32,110,101,101,100,115,32,116,111,32,98,101,32,104,97,115,104,101,100,32,98,101,102,111,114,101,32,98,101,105,110,103,32,117,115,101,100,32,98,121,32,116,104,101,32,72,77,65,67,32,97,108,103,111,114,105,116,104,109,46,0,100,111,101,115,32,110,111,116,32,109,97,116,99,104,0,103,99,114,121,95,109,100,95,115,101,116,107,101,121,32,102,97,105,108,101,100,0,103,99,114,121,95,109,100,95,114,101,97,100,32,102,97,105,108,101,100,0,105,110,118,97,108,105,100,32,116,101,115,116,115,32,100,97,116,97,0,111,105,100,46,0,79,73,68,46,0,109,100,95,101,110,97,98,108,101,58,32,97,108,103,111,114,105,116,104,109,32,37,100,32,110,111,116,32,97,118,97,105,108,97,98,108,101,10,0,77,68,53,32,117,115,101,100,0,109,100,46,99,0,109,100,95,119,114,105,116,101,0,109,100,95,103,101,116,95,97,108,103,111,0,112,111,115,115,105,98,108,101,32,117,115,97,103,101,32,101,114,114,111,114,0,87,65,82,78,73,78,71,58,32,109,111,114,101,32,116,104,97,110,32,111,110,101,32,97,108,103,111,114,105,116,104,109,32,105,110,32,109,100,95,103,101,116,95,97,108,103,111,40,41,10,0,109,111,114,101,32,116,104,97,110,32,111,110,101,32,97,108,103,111,114,105,116,104,109,32,105,110,32,109,100,95,114,101,97,100,40,48,41,10,0,109,100,95,114,101,97,100,0,107,101,121,108,101,110,32,60,61,32,104,100,45,62,99,116,120,45,62,109,97,99,112,97,100,115,95,66,115,105,122,101,0,112,114,101,112,97,114,101,95,109,97,99,112,97,100,115,0,103,99,114,121,95,109,100,95,111,112,101,110,32,102,97,105,108,101,100,32,102,111,114,32,97,108,103,111,32,37,100,58,32,37,115,0,110,111,32,65,83,78,46,49,32,79,73,68,32,102,111,114,32,109,100,32,97,108,103,111,32,37,100,10,0,112,114,105,109,101,103,101,110,0,99,97,110,39,116,32,103,101,110,101,114,97,116,101,32,97,32,112,114,105,109,101,32,119,105,116,104,32,108,101,115,115,32,116,104,97,110,32,37,100,32,98,105,116,115,10,0,111,118,101,114,102,108,111,119,32,105,110,32,112,114,105,109,101,32,103,101,110,101,114,97,116,105,111,110,10,0,95,103,99,114,121,95,109,112,105,95,99,109,112,40,32,40,120,41,44,32,40,110,109,105,110,117,115,49,41,32,41,32,60,32,48,32,38,38,32,95,103,99,114,121,95,109,112,105,95,99,109,112,95,117,105,40,32,40,120,41,44,32,40,49,41,32,41,32,62,32,48,0,112,114,105,109,101,103,101,110,46,99,0,105,115,95,112,114,105,109,101,0,112,115,115,0,114,97,119,0,99,111,109,112,0,111,97,101,112,0,112,107,99,115,49,0,112,97,114,97,109,0,110,111,99,111,109,112,0,114,102,99,54,57,55,57,0,110,111,112,97,114,97,109,0,112,107,99,115,49,45,114,97,119,0,105,103,110,105,110,118,102,108,97,103,0,110,111,45,107,101,121,116,101,115,116,0,110,111,45,98,108,105,110,100,105,110,103,0,117,115,101,45,102,105,112,115,49,56,54,0,117,115,101,45,102,105,112,115,49,56,54,45,50,0,110,98,105,116,115,0,114,115,97,45,117,115,101,45,101,0,115,105,103,45,118,97,108,0,104,97,115,104,45,97,108,103,111,0,108,97,98,101,108,0,114,97,110,100,111,109,45,111,118,101,114,114,105,100,101,0,115,104,97,49,0,109,100,53,0,115,104,97,50,53,54,0,114,105,112,101,109,100,49,54,48,0,114,109,100,49,54,48,0,115,104,97,51,56,52,0,115,104,97,53,49,50,0,115,104,97,50,50,52,0,109,100,50,0,109,100,52,0,116,105,103,101,114,0,104,97,118,97,108,0,100,97,116,97,0,104,97,115,104,0,115,97,108,116,45,108,101,110,103,116,104,0,63,0,112,114,105,118,97,116,101,45,107,101,121,0,112,117,98,108,105,99,45,107,101,121,0,103,101,110,107,101,121,0,97,108,103,111,114,105,116,104,109,32,100,105,115,97,98,108,101,100,0,97,108,103,111,114,105,116,104,109,32,110,111,116,32,102,111,117,110,100,0,110,111,32,115,101,108,102,116,101,115,116,32,97,118,97,105,108,97,98,108,101,0,109,111,100,117,108,101,0,65,69,83,0,232,233,234,235,237,238,239,240,242,243,244,245,247,248,249,250,1,75,175,34,120,166,157,51,29,81,128,16,54,67,233,154,103,67,195,209,81,154,180,242,205,154,120,171,9,165,17,189,65,69,83,45,49,50,56,32,116,101,115,116,32,100,101,99,114,121,112,116,105,111,110,32,102,97,105,108,101,100,46,0,65,69,83,45,49,50,56,32,116,101,115,116,32,101,110,99,114,121,112,116,105,111,110,32,102,97,105,108,101,100,46,0,99,102,98,0,111,102,98,0,108,111,119,45,108,101,118,101,108,0,99,105,112,104,101,114,0,4,5,6,7,9,10,11,12,14,15,16,17,19,20,21,22,24,25,26,27,29,30,31,32,118,119,116,117,241,242,243,244,248,249,230,231,119,112,113,114,93,30,242,13,206,214,188,188,18,19,26,199,197,71,136,170,65,69,83,45,49,57,50,32,116,101,115,116,32,100,101,99,114,121,112,116,105,111,110,32,102,97,105,108,101,100,46,0,65,69,83,45,49,57,50,32,116,101,115,116,32,101,110,99,114,121,112,116,105,111,110,32,102,97,105,108,101,100,46,0,8,9,10,11,13,14,15,16,18,19,20,21,23,24,25,26,28,29,30,31,33,34,35,36,38,39,40,41,43,44,45,46,6,154,0,127,199,106,69,159,152,186,249,23,254,223,149,33,8,14,149,23,235,22,119,113,154,207,114,128,134,4,10,227,65,69,83,45,50,53,54,32,116,101,115,116,32,100,101,99,114,121,112,116,105,111,110,32,102,97,105,108,101,100,46,0,65,69,83,45,50,53,54,32,116,101,115,116,32,101,110,99,114,121,112,116,105,111,110,32,102,97,105,108,101,100,46,0,110,111,32,116,101,115,116,32,100,97,116,97,32,102,111,114,32,116,104,105,115,32,109,111,100,101,0,111,112,101,110,0,115,101,116,32,107,101,121,0,115,101,116,32,73,86,0,101,110,99,114,121,112,116,32,99,111,109,109,97,110,100,0,101,110,99,114,121,112,116,32,109,105,115,109,97,116,99,104,0,100,101,99,114,121,112,116,32,99,111,109,109,97,110,100,0,100,101,99,114,121,112,116,32,109,105,115,109,97,116,99,104,0,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,49,46,49,0,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,49,46,50,0,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,49,46,51,0,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,49,46,52,0,82,73,74,78,68,65,69,76,0,65,69,83,49,50,56,0,65,69,83,45,49,50,56,0,65,69,83,49,57,50,0,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,49,46,50,49,0,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,49,46,50,50,0,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,49,46,50,51,0,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,49,46,50,52,0,82,73,74,78,68,65,69,76,49,57,50,0,65,69,83,45,49,57,50,0,65,69,83,50,53,54,0,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,49,46,52,49,0,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,49,46,52,50,0,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,49,46,52,51,0,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,49,46,52,52,0,82,73,74,78,68,65,69,76,50,53,54,0,65,69,83,45,50,53,54,0,82,73,80,69,77,68,49,54,48,0,48,33,48,9,6,5,43,36,3,2,1,5,0,4,20,49,46,51,46,51,54,46,51,46,51,46,49,46,50,0,49,46,51,46,51,54,46,51,46,50,46,49,0,105,32,62,32,48,0,114,115,97,45,99,111,109,109,111,110,46,99,0,95,103,99,114,121,95,114,115,97,95,112,107,99,115,49,95,101,110,99,111,100,101,95,102,111,114,95,101,110,99,0,110,32,61,61,32,110,102,114,97,109,101,0,80,75,67,83,35,49,32,98,108,111,99,107,32,116,121,112,101,32,50,32,101,110,99,111,100,101,100,32,100,97,116,97,0,118,97,108,117,101,32,101,120,116,114,97,99,116,101,100,32,102,114,111,109,32,80,75,67,83,35,49,32,98,108,111,99,107,32,116,121,112,101,32,50,32,101,110,99,111,100,101,100,32,100,97,116,97,0,105,32,62,32,49,0,95,103,99,114,121,95,114,115,97,95,112,107,99,115,49,95,101,110,99,111,100,101,95,102,111,114,95,115,105,103,0,80,75,67,83,35,49,32,98,108,111,99,107,32,116,121,112,101,32,49,32,101,110,99,111,100,101,100,32,100,97,116,97,0,95,103,99,114,121,95,114,115,97,95,112,107,99,115,49,95,101,110,99,111,100,101,95,114,97,119,95,102,111,114,95,115,105,103,0,79,65,69,80,32,101,110,99,111,100,101,100,32,100,97,116,97,0,118,97,108,117,101,32,101,120,116,114,97,99,116,101,100,32,102,114,111,109,32,79,65,69,80,32,101,110,99,111,100,101,100,32,100,97,116,97,0,104,108,101,110,0,95,103,99,114,121,95,114,115,97,95,112,115,115,95,101,110,99,111,100,101,0,80,83,83,32,101,110,99,111,100,101,100,32,100,97,116,97,0,95,103,99,114,121,95,114,115,97,95,112,115,115,95,118,101,114,105,102,121,0,82,83,65,0,110,101,0,110,101,100,112,113,117,0,97,0,115,0,110,0,40,112,114,105,118,97,116,101,45,107,101,121,32,40,114,115,97,32,32,40,110,32,35,48,48,101,48,99,101,57,54,102,57,48,98,54,99,57,101,48,50,102,51,57,50,50,98,101,97,100,97,57,51,102,101,53,48,97,56,55,53,101,97,99,54,98,99,99,49,56,98,98,57,97,57,99,102,50,101,56,52,57,54,53,99,97,97,32,32,32,32,32,32,50,100,49,102,102,57,53,97,55,102,53,52,50,52,54,53,99,54,99,48,99,49,57,100,50,55,54,101,52,53,50,54,99,101,48,52,56,56,54,56,97,55,97,57,49,52,102,100,51,52,51,99,99,51,97,56,55,100,100,55,52,50,57,49,32,32,32,32,32,32,102,102,99,53,54,53,53,48,54,100,53,98,98,98,50,53,99,98,97,99,54,97,48,101,50,100,100,49,102,56,98,99,97,97,98,48,100,52,97,50,57,99,50,102,51,55,99,57,53,48,102,51,54,51,52,56,52,98,102,50,54,57,102,55,32,32,32,32,32,32,56,57,49,52,52,48,52,54,52,98,97,102,55,57,56,50,55,101,48,51,97,51,54,101,55,48,98,56,49,52,57,51,56,101,101,98,100,99,54,51,101,57,54,52,50,52,55,98,101,55,53,100,99,53,56,98,48,49,52,98,55,101,97,50,53,49,35,41,32,32,40,101,32,35,48,49,48,48,48,49,35,41,32,32,40,100,32,35,48,52,54,49,50,57,102,50,52,56,57,100,55,49,53,55,57,98,101,48,97,55,53,102,101,48,50,57,98,100,54,99,100,98,53,55,52,101,98,102,53,55,101,97,56,97,53,98,48,102,100,97,57,52,50,99,97,98,57,52,51,98,49,49,32,32,32,32,32,32,55,100,55,98,98,57,53,101,53,100,50,56,56,55,53,101,48,102,57,102,99,53,102,99,99,48,54,97,55,50,102,54,100,53,48,50,52,54,52,100,97,98,100,101,100,55,56,101,102,54,98,55,49,54,49,55,55,98,56,51,100,53,98,100,32,32,32,32,32,32,99,53,52,51,100,99,53,100,51,102,101,100,57,51,50,101,53,57,102,53,56,57,55,101,57,50,101,54,102,53,56,97,48,102,51,51,52,50,52,49,48,54,97,51,98,54,102,97,50,99,98,102,56,55,55,53,49,48,101,52,97,99,50,49,32,32,32,32,32,32,99,51,101,101,52,55,56,53,49,101,57,55,100,49,50,57,57,54,50,50,50,97,99,51,53,54,54,100,52,99,99,98,48,98,56,51,100,49,54,52,48,55,52,97,98,102,55,100,101,54,53,53,102,99,50,52,52,54,100,97,49,55,56,49,35,41,32,32,40,112,32,35,48,48,101,56,54,49,98,55,48,48,101,49,55,101,56,97,102,101,54,56,51,55,101,55,53,49,50,101,51,53,98,54,99,97,49,49,100,48,97,101,52,55,100,56,98,56,53,49,54,49,99,54,55,98,97,102,54,52,51,55,55,50,49,51,32,32,32,32,32,32,102,101,53,50,100,55,55,50,102,50,48,51,53,98,51,99,97,56,51,48,97,102,52,49,100,56,97,52,49,50,48,101,49,99,49,99,55,48,100,49,50,99,99,50,50,102,48,48,100,50,56,100,51,49,100,100,52,56,97,56,100,52,50,52,102,49,35,41,32,32,40,113,32,35,48,48,102,55,97,55,99,97,53,51,54,55,99,54,54,49,102,56,101,54,50,100,102,51,52,102,48,100,48,53,99,49,48,99,56,56,101,53,52,57,50,51,52,56,100,100,55,98,100,100,99,57,52,50,99,57,97,56,102,51,54,57,102,57,32,32,32,32,32,32,51,53,97,48,55,55,56,53,100,50,100,98,56,48,53,50,49,53,101,100,55,56,54,101,52,50,56,53,100,102,49,54,53,56,101,101,100,51,99,101,56,52,102,52,54,57,98,56,49,98,53,48,100,51,53,56,52,48,55,98,52,97,100,51,54,49,35,41,32,32,40,117,32,35,51,48,52,53,53,57,97,57,101,97,100,53,54,100,50,51,48,57,100,50,48,51,56,49,49,97,54,52,49,98,98,49,97,48,57,54,50,54,98,99,56,101,98,51,54,102,102,102,97,50,51,99,57,54,56,101,99,53,98,100,56,57,49,101,32,32,32,32,32,32,101,98,98,97,102,99,55,51,97,101,54,54,54,101,48,49,98,97,55,99,56,57,57,48,98,97,101,48,54,99,99,50,98,98,101,49,48,98,55,53,101,54,57,102,99,97,99,98,51,53,51,97,54,52,55,51,48,55,57,100,56,101,57,98,35,41,41,41,0,40,112,117,98,108,105,99,45,107,101,121,32,40,114,115,97,32,32,40,110,32,35,48,48,101,48,99,101,57,54,102,57,48,98,54,99,57,101,48,50,102,51,57,50,50,98,101,97,100,97,57,51,102,101,53,48,97,56,55,53,101,97,99,54,98,99,99,49,56,98,98,57,97,57,99,102,50,101,56,52,57,54,53,99,97,97,32,32,32,32,32,32,50,100,49,102,102,57,53,97,55,102,53,52,50,52,54,53,99,54,99,48,99,49,57,100,50,55,54,101,52,53,50,54,99,101,48,52,56,56,54,56,97,55,97,57,49,52,102,100,51,52,51,99,99,51,97,56,55,100,100,55,52,50,57,49,32,32,32,32,32,32,102,102,99,53,54,53,53,48,54,100,53,98,98,98,50,53,99,98,97,99,54,97,48,101,50,100,100,49,102,56,98,99,97,97,98,48,100,52,97,50,57,99,50,102,51,55,99,57,53,48,102,51,54,51,52,56,52,98,102,50,54,57,102,55,32,32,32,32,32,32,56,57,49,52,52,48,52,54,52,98,97,102,55,57,56,50,55,101,48,51,97,51,54,101,55,48,98,56,49,52,57,51,56,101,101,98,100,99,54,51,101,57,54,52,50,52,55,98,101,55,53,100,99,53,56,98,48,49,52,98,55,101,97,50,53,49,35,41,32,32,40,101,32,35,48,49,48,48,48,49,35,41,41,41,0,40,100,97,116,97,32,40,102,108,97,103,115,32,112,107,99,115,49,41,32,40,104,97,115,104,32,115,104,97,49,32,35,49,49,50,50,51,51,52,52,53,53,54,54,55,55,56,56,57,57,48,48,97,97,98,98,99,99,100,100,101,101,102,102,49,48,50,48,51,48,52,48,35,41,41,0,40,100,97,116,97,32,40,102,108,97,103,115,32,112,107,99,115,49,41,32,40,104,97,115,104,32,115,104,97,49,32,35,49,49,50,50,51,51,52,52,53,53,54,54,55,55,56,56,57,57,48,48,97,97,98,98,99,99,100,100,101,101,102,102,56,48,50,48,51,48,52,48,35,41,41,0,98,97,100,32,115,105,103,110,97,116,117,114,101,32,110,111,116,32,100,101,116,101,99,116,101,100,0,99,111,110,118,101,114,116,105,110,103,32,100,97,116,97,32,102,97,105,108,101,100,0,115,105,103,110,105,110,103,32,102,97,105,108,101,100,0,118,101,114,105,102,121,32,102,97,105,108,101,100,0,40,100,97,116,97,32,40,102,108,97,103,115,32,114,97,119,41,32,40,118,97,108,117,101,32,37,109,41,41,0,101,110,99,45,118,97,108,0,114,115,97,0,118,97,108,117,101,0,109,105,115,109,97,116,99,104,0,101,110,99,114,121,112,116,32,102,97,105,108,101,100,0,103,99,114,121,95,112,107,95,100,101,99,114,121,112,116,32,114,101,116,117,114,110,101,100,32,103,97,114,98,97,103,101,0,99,105,112,104,101,114,116,101,120,116,32,109,97,116,99,104,101,115,32,112,108,97,105,110,116,101,120,116,0,100,101,99,114,121,112,116,32,102,97,105,108,101,100,0,100,101,99,114,121,112,116,32,114,101,116,117,114,110,101,100,32,110,111,32,112,108,97,105,110,116,101,120,116,0,99,111,110,118,101,114,116,0,107,101,121,32,99,111,110,115,105,115,116,101,110,99,121,0,115,105,103,110,0,101,110,99,114,121,112,116,0,112,117,98,107,101,121,0,114,115,97,95,118,101,114,105,102,121,32,100,97,116,97,0,114,115,97,95,118,101,114,105,102,121,32,32,115,105,103,0,114,115,97,95,118,101,114,105,102,121,32,32,32,32,110,0,114,115,97,95,118,101,114,105,102,121,32,32,32,32,101,0,114,115,97,95,118,101,114,105,102,121,32,32,99,109,112,0,114,115,97,95,118,101,114,105,102,121],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+30720);allocate([32,32,32,32,61,62,32,37,115,10,0,114,115,97,95,115,105,103,110,32,32,32,100,97,116,97,0,110,101,100,112,63,113,63,117,63,0,114,115,97,95,115,105,103,110,32,32,32,32,32,32,110,0,114,115,97,95,115,105,103,110,32,32,32,32,32,32,101,0,114,115,97,95,115,105,103,110,32,32,32,32,32,32,100,0,114,115,97,95,115,105,103,110,32,32,32,32,32,32,112,0,114,115,97,95,115,105,103,110,32,32,32,32,32,32,113,0,114,115,97,95,115,105,103,110,32,32,32,32,32,32,117,0,114,115,97,95,115,105,103,110,32,32,32,32,114,101,115,0,40,115,105,103,45,118,97,108,40,114,115,97,40,115,37,98,41,41,41,0,40,115,105,103,45,118,97,108,40,114,115,97,40,115,37,77,41,41,41,0,114,115,97,95,115,105,103,110,32,32,32,32,32,32,61,62,32,37,115,10,0,114,115,97,95,100,101,99,114,121,112,116,32,100,97,116,97,0,114,115,97,95,100,101,99,114,121,112,116,32,32,32,32,110,0,114,115,97,95,100,101,99,114,121,112,116,32,32,32,32,101,0,114,115,97,95,100,101,99,114,121,112,116,32,32,32,32,100,0,114,115,97,95,100,101,99,114,121,112,116,32,32,32,32,112,0,114,115,97,95,100,101,99,114,121,112,116,32,32,32,32,113,0,114,115,97,95,100,101,99,114,121,112,116,32,32,32,32,117,0,114,115,97,95,100,101,99,114,121,112,116,32,32,114,101,115,0,40,118,97,108,117,101,32,37,98,41,0,37,109,0,114,115,97,95,100,101,99,114,121,112,116,32,32,32,32,61,62,32,37,115,10,0,114,115,97,95,101,110,99,114,121,112,116,32,100,97,116,97,0,114,115,97,95,101,110,99,114,121,112,116,32,32,32,32,110,0,114,115,97,95,101,110,99,114,121,112,116,32,32,32,32,101,0,114,115,97,95,101,110,99,114,121,112,116,32,32,114,101,115,0,40,101,110,99,45,118,97,108,40,114,115,97,40,97,37,98,41,41,41,0,40,101,110,99,45,118,97,108,40,114,115,97,40,97,37,109,41,41,41,0,114,115,97,95,101,110,99,114,121,112,116,32,32,32,32,61,62,32,37,115,10,0,114,115,97,95,116,101,115,116,107,101,121,32,32,32,32,61,62,32,37,115,10,0,100,101,114,105,118,101,45,112,97,114,109,115,0,117,115,101,45,120,57,51,49,0,95,103,99,114,121,95,109,112,105,95,103,101,116,95,110,98,105,116,115,32,40,40,120,112,41,41,32,61,61,32,110,98,105,116,115,0,114,115,97,46,99,0,103,101,110,95,120,57,51,49,95,112,97,114,109,95,120,112,0,95,103,99,114,121,95,109,112,105,95,103,101,116,95,110,98,105,116,115,32,40,40,120,105,41,41,32,61,61,32,49,48,49,0,103,101,110,95,120,57,51,49,95,112,97,114,109,95,120,105,0,88,112,49,0,88,112,50,0,88,112,0,88,113,49,0,88,113,50,0,88,113,0,95,103,99,114,121,95,109,112,105,95,103,99,100,32,40,32,40,103,41,44,32,40,101,41,44,32,40,112,104,105,41,32,41,0,103,101,110,101,114,97,116,101,95,120,57,51,49,0,112,32,97,110,100,32,113,32,97,114,101,32,115,119,97,112,112,101,100,10,0,32,32,113,0,32,32,110,0,32,32,101,0,32,32,100,0,32,32,117,0,115,101,108,102,45,116,101,115,116,32,97,102,116,101,114,32,107,101,121,32,103,101,110,101,114,97,116,105,111,110,32,102,97,105,108,101,100,0,40,109,105,115,99,45,107,101,121,45,105,110,102,111,40,112,45,113,45,115,119,97,112,112,101,100,41,41,0,103,101,110,101,114,97,116,101,95,115,116,100,0,32,32,112,61,32,0,32,32,113,61,32,0,112,104,105,61,32,0,32,32,103,61,32,0,32,32,102,61,32,0,32,32,110,61,32,0,32,32,101,61,32,0,32,32,100,61,32,0,32,32,117,61,32,0,40,107,101,121,45,100,97,116,97,32,40,112,117,98,108,105,99,45,107,101,121,32,32,40,114,115,97,40,110,37,109,41,40,101,37,109,41,41,41,32,40,112,114,105,118,97,116,101,45,107,101,121,32,32,40,114,115,97,40,110,37,109,41,40,101,37,109,41,40,100,37,109,41,40,112,37,109,41,40,113,37,109,41,40,117,37,109,41,41,41,32,37,83,41,0,111,112,101,110,112,103,112,45,114,115,97,0,111,105,100,46,49,46,50,46,56,52,48,46,49,49,51,53,52,57,46,49,46,49,46,49,0,83,72,65,49,0,48,33,48,9,6,5,43,14,3,2,26,5,0,4,20,169,153,62,54,71,6,129,106,186,62,37,113,120,80,194,108,156,208,216,157,0,132,152,62,68,28,59,210,110,186,174,74,161,249,81,41,229,229,70,112,241,0,52,170,151,60,212,196,218,164,246,30,235,43,219,173,39,49,101,52,1,111,0,49,46,50,46,56,52,48,46,49,49,51,53,52,57,46,49,46,49,46,53,0,49,46,50,46,56,52,48,46,49,48,48,52,48,46,52,46,51,0,49,46,51,46,49,52,46,51,46,50,46,50,54,0,49,46,51,46,49,52,46,51,46,50,46,50,57,0,49,46,50,46,56,52,48,46,49,48,48,52,53,46,52,46,49,0,83,72,65,50,50,52,0,48,45,48,13,6,9,96,134,72,1,101,3,4,2,4,5,0,4,28,35,9,125,34,52,5,216,34,134,66,164,119,189,162,85,179,42,173,188,228,189,160,179,247,227,108,157,167,0,97,98,99,100,98,99,100,101,99,100,101,102,100,101,102,103,101,102,103,104,102,103,104,105,103,104,105,106,104,105,106,107,105,106,107,108,106,107,108,109,107,108,109,110,108,109,110,111,109,110,111,112,110,111,112,113,0,117,56,139,22,81,39,118,204,93,186,93,161,253,137,1,80,176,198,69,92,180,245,139,25,82,82,37,37,0,32,121,70,85,152,12,145,216,187,180,193,234,151,97,138,75,240,63,66,88,25,72,178,238,78,231,173,103,0,186,120,22,191,143,1,207,234,65,65,64,222,93,174,34,35,176,3,97,163,150,23,122,156,180,16,255,97,242,0,21,173,0,36,141,106,97,210,6,56,184,229,192,38,147,12,62,96,57,163,60,228,89,100,255,33,103,246,236,237,212,25,219,6,193,0,205,199,110,92,153,20,251,146,129,161,199,226,132,215,62,103,241,128,154,72,164,151,32,14,4,109,57,204,199,17,44,208,0,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,50,46,52,0,83,72,65,50,53,54,0,48,49,48,13,6,9,96,134,72,1,101,3,4,2,1,5,0,4,32,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,50,46,49,0,49,46,50,46,56,52,48,46,49,49,51,53,52,57,46,49,46,49,46,49,49,0,83,72,65,53,49,50,0,48,81,48,13,6,9,96,134,72,1,101,3,4,2,3,5,0,4,64,97,98,99,0,203,0,117,63,69,163,94,139,181,160,61,105,154,198,80,7,39,44,50,171,14,222,209,99,26,139,96,90,67,255,91,237,128,134,7,43,161,231,204,35,88,186,236,161,52,200,37,167,0,97,98,99,100,101,102,103,104,98,99,100,101,102,103,104,105,99,100,101,102,103,104,105,106,100,101,102,103,104,105,106,107,101,102,103,104,105,106,107,108,102,103,104,105,106,107,108,109,103,104,105,106,107,108,109,110,104,105,106,107,108,109,110,111,105,106,107,108,109,110,111,112,106,107,108,109,110,111,112,113,107,108,109,110,111,112,113,114,108,109,110,111,112,113,114,115,109,110,111,112,113,114,115,116,110,111,112,113,114,115,116,117,0,9,51,12,51,247,17,71,232,61,25,47,199,130,205,27,71,83,17,27,23,59,59,5,210,47,160,128,134,227,176,247,18,252,199,199,26,85,126,45,185,102,195,233,250,145,116,96,57,0,157,14,24,9,113,100,116,203,8,110,131,78,49,10,74,28,237,20,158,156,0,242,72,82,121,114,206,197,112,76,42,91,7,184,179,220,56,236,196,235,174,151,221,216,127,61,137,133,0,115,104,111,114,116,32,115,116,114,105,110,103,0,108,111,110,103,32,115,116,114,105,110,103,0,111,110,101,32,109,105,108,108,105,111,110,32,34,97,34,0,100,105,103,101,115,116,0,221,175,53,161,147,97,122,186,204,65,115,73,174,32,65,49,18,230,250,78,137,169,126,162,10,158,238,230,75,85,211,154,33,146,153,42,39,79,193,168,54,186,60,35,163,254,235,189,69,77,68,35,100,60,232,14,42,154,201,79,165,76,164,159,0,142,149,155,117,218,227,19,218,140,244,247,40,20,252,20,63,143,119,121,198,235,159,127,161,114,153,174,173,182,136,144,24,80,29,40,158,73,0,247,228,51,27,153,222,196,181,67,58,199,211,41,238,182,221,38,84,94,150,229,91,135,75,233,9,0,231,24,72,61,12,231,105,100,78,46,66,199,188,21,180,99,142,31,152,177,59,32,68,40,86,50,168,3,175,169,115,235,222,15,242,68,135,126,166,10,76,176,67,44,229,119,195,27,235,0,156,92,44,73,170,46,78,173,178,23,173,140,192,155,0,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,50,46,51,0,49,46,50,46,56,52,48,46,49,49,51,53,52,57,46,49,46,49,46,49,51,0,83,72,65,51,56,52,0,48,65,48,13,6,9,96,134,72,1,101,3,4,2,2,5,0,4,48,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,50,46,50,0,49,46,50,46,56,52,48,46,49,49,51,53,52,57,46,49,46,49,46,49,50,0,84,87,79,70,73,83,72,0,159,88,159,92,246,18,44,50,182,191,236,47,42,232,195,90,212,145,219,22,231,177,195,158,134,203,8,107,120,159,84,25,1,159,152,9,222,23,17,133,143,170,195,163,186,32,251,195,212,59,183,85,110,163,46,70,242,162,130,183,212,91,78,13,87,255,115,157,77,201,44,27,215,252,1,112,12,200,33,111,144,175,233,27,178,136,84,79,44,50,220,35,155,38,53,230,108,180,86,28,64,191,10,151,5,147,28,182,212,8,231,250,84,119,111,102,105,115,104,45,50,53,54,32,116,101,115,116,32,100,101,99,114,121,112,116,105,111,110,32,102,97,105,108,101,100,46,0,84,119,111,102,105,115,104,45,50,53,54,32,116,101,115,116,32,101,110,99,114,121,112,116,105,111,110,32,102,97,105,108,101,100,46,0,84,119,111,102,105,115,104,45,49,50,56,32,116,101,115,116,32,100,101,99,114,121,112,116,105,111,110,32,102,97,105,108,101,100,46,0,84,119,111,102,105,115,104,45,49,50,56,32,116,101,115,116,32,101,110,99,114,121,112,116,105,111,110,32,102,97,105,108,101,100,46,0,37,115,10,0,0,1,23,2,46,24,83,3,106,47,147,25,52,84,69,4,92,107,182,48,166,148,75,26,140,53,129,85,170,70,13,5,36,93,135,108,155,183,193,49,43,167,163,149,152,76,202,27,230,141,115,54,205,130,18,86,98,171,240,71,79,14,189,6,212,37,210,94,39,136,102,109,214,156,121,184,8,194,223,50,104,44,253,168,138,164,90,150,41,153,34,77,96,203,228,28,123,231,59,142,158,116,244,55,216,206,249,131,111,19,178,87,225,99,220,172,196,241,175,72,10,80,66,15,186,190,199,7,222,213,120,38,101,211,209,95,227,40,33,137,89,103,252,110,177,215,248,157,243,122,58,185,198,9,65,195,174,224,219,51,68,105,146,45,82,254,22,169,12,139,128,165,74,91,181,151,201,42,162,154,192,35,134,78,188,97,239,204,17,229,114,29,61,124,235,232,233,60,234,143,125,159,236,117,30,245,62,56,246,217,63,207,118,250,31,132,160,112,237,20,144,179,126,88,251,226,32,100,208,221,119,173,218,197,64,242,57,176,247,73,180,11,127,81,21,67,145,16,113,187,238,191,133,200,161,1,2,4,8,16,32,64,128,77,154,121,242,169,31,62,124,248,189,55,110,220,245,167,3,6,12,24,48,96,192,205,215,227,139,91,182,33,66,132,69,138,89,178,41,82,164,5,10,20,40,80,160,13,26,52,104,208,237,151,99,198,193,207,211,235,155,123,246,161,15,30,60,120,240,173,23,46,92,184,61,122,244,165,7,14,28,56,112,224,141,87,174,17,34,68,136,93,186,57,114,228,133,71,142,81,162,9,18,36,72,144,109,218,249,191,51,102,204,213,231,131,75,150,97,194,201,223,243,171,27,54,108,216,253,183,35,70,140,85,170,25,50,100,200,221,247,163,11,22,44,88,176,45,90,180,37,74,148,101,202,217,255,179,43,86,172,21,42,84,168,29,58,116,232,157,119,238,145,111,222,241,175,19,38,76,152,125,250,185,63,126,252,181,39,78,156,117,234,153,127,254,177,47,94,188,53,106,212,229,135,67,134,65,130,73,146,105,210,233,159,115,230,129,79,158,113,226,137,95,190,49,98,196,197,199,195,203,219,251,187,59,118,236,149,103,206,209,239,147,107,214,225,143,83,166,1,2,4,8,16,32,64,128,77,154,121,242,169,31,62,124,248,189,55,110,220,245,167,3,6,12,24,48,96,192,205,215,227,139,91,182,33,66,132,69,138,89,178,41,82,164,5,10,20,40,80,160,13,26,52,104,208,237,151,99,198,193,207,211,235,155,123,246,161,15,30,60,120,240,173,23,46,92,184,61,122,244,165,7,14,28,56,112,224,141,87,174,17,34,68,136,93,186,57,114,228,133,71,142,81,162,9,18,36,72,144,109,218,249,191,51,102,204,213,231,131,75,150,97,194,201,223,243,171,27,54,108,216,253,183,35,70,140,85,170,25,50,100,200,221,247,163,11,22,44,88,176,45,90,180,37,74,148,101,202,217,255,179,43,86,172,21,42,84,168,29,58,116,232,157,119,238,145,111,222,241,175,19,38,76,152,125,250,185,63,126,252,181,39,78,156,117,234,153,127,254,177,47,94,188,53,106,212,229,135,67,134,65,130,73,146,105,210,233,159,115,230,129,79,158,113,226,137,95,190,49,98,196,197,199,195,203,169,117,103,243,179,198,232,244,4,219,253,123,163,251,118,200,154,74,146,211,128,230,120,107,228,69,221,125,209,232,56,75,13,214,198,50,53,216,152,253,24,55,247,113,236,241,108,225,67,48,117,15,55,248,38,27,250,135,19,250,148,6,72,63,242,94,208,186,139,174,48,91,132,138,84,0,223,188,35,157,25,109,91,193,61,177,89,14,243,128,174,93,162,210,130,213,99,160,1,132,131,7,46,20,217,181,81,144,155,44,124,163,166,178,235,115,165,76,190,84,22,146,12,116,227,54,97,81,192,56,140,176,58,189,245,90,115,252,44,96,37,98,11,150,187,108,78,66,137,247,107,16,83,124,106,40,180,39,241,140,225,19,230,149,189,156,69,199,226,36,244,70,182,59,102,112,204,202,149,227,3,133,86,203,212,17,28,208,30,147,215,184,251,166,195,131,142,32,181,255,233,159,207,119,191,195,186,204,234,3,119,111,57,8,175,191,51,64,201,231,98,43,113,226,129,121,121,12,9,170,173,130,36,65,205,58,249,234,216,185,229,228,197,154,185,164,77,151,68,126,8,218,134,122,231,23,161,102,29,148,170,161,237,29,6,61,112,240,178,222,210,179,65,11,123,114,160,167,17,28,49,239,194,209,39,83,144,62,32,143,246,51,96,38,255,95,150,236,92,118,177,42,171,73,158,129,156,136,82,238,27,33,95,196,147,26,10,235,239,217,145,197,133,57,73,153,238,205,45,173,79,49,143,139,59,1,71,24,135,35,109,221,70,31,214,78,62,45,105,249,100,72,42,79,206,242,203,101,47,142,252,120,151,92,5,88,122,25,172,141,127,229,213,152,26,87,75,103,14,127,167,5,90,100,40,175,20,99,63,182,41,254,136,245,60,183,76,60,2,165,184,206,218,233,176,104,23,68,85,224,31,77,138,67,125,105,87,41,199,46,141,172,116,21,183,89,196,168,159,10,114,158,126,110,21,71,34,223,18,52,88,53,7,106,153,207,52,220,110,34,80,201,222,192,104,155,101,137,188,212,219,237,248,171,200,18,168,162,43,13,64,82,220,187,254,2,50,47,164,169,202,215,16,97,33,30,240,180,211,80,93,4,15,246,0,194,111,22,157,37,54,134,66,86,74,85,94,9,193,190,224,145,117,243,198,244,219,123,251,200,74,211,230,107,69,125,232,75,214,50,216,253,55,113,241,225,48,15,248,27,135,250,6,63,94,186,174,91,138,0,188,157,109,193,177,14,128,93,210,213,160,132,7,20,181,144,44,163,178,115,76,84,146,116,54,81,56,176,189,90,252,96,98,150,108,66,247,16,124,40,39,140,19,149,156,199,36,70,59,112,202,227,133,203,17,208,147,184,166,131,32,255,159,119,195,204,3,111,8,191,64,231,43,226,121,12,170,130,65,58,234,185,228,154,164,151,126,218,122,23,102,148,161,29,61,240,222,179,11,114,167,28,239,209,83,62,143,51,38,95,236,118,42,73,129,136,238,33,196,26,235,217,197,57,153,205,173,49,139,1,24,35,221,31,78,45,249,72,79,242,101,142,120,92,88,25,141,229,152,87,103,127,5,100,175,99,182,254,245,183,60,165,206,233,104,68,224,77,67,105,41,46,172,21,89,168,10,158,110,71,223,52,53,106,207,220,34,201,192,155,137,212,237,171,18,162,13,82,187,2,47,169,215,97,30,180,80,4,246,194,22,37,134,86,85,9,190,145,169,103,179,232,4,253,163,118,154,146,128,120,228,221,209,56,13,198,53,152,24,247,236,108,67,117,55,38,250,19,148,72,242,208,139,48,132,84,223,35,25,91,61,89,243,174,162,130,99,1,131,46,217,81,155,124,166,235,165,190,22,12,227,97,192,140,58,245,115,44,37,11,187,78,137,107,83,106,180,241,225,230,189,69,226,244,182,102,204,149,3,86,212,28,30,215,251,195,142,181,233,207,191,186,234,119,57,175,51,201,98,113,129,121,9,173,36,205,249,216,229,197,185,77,68,8,134,231,161,29,170,237,6,112,178,210,65,123,160,17,49,194,39,144,32,246,96,255,150,92,177,171,158,156,82,27,95,147,10,239,145,133,73,238,45,79,143,59,71,135,109,70,214,62,105,100,42,206,203,47,252,151,5,122,172,127,213,26,75,14,167,90,40,20,63,41,136,60,76,2,184,218,176,23,85,31,138,125,87,199,141,116,183,196,159,114,126,21,34,18,88,7,153,52,110,80,222,104,101,188,219,248,200,168,43,64,220,254,50,164,202,16,33,240,211,93,15,0,111,157,54,66,74,94,193,224,84,87,79,70,73,83,72,49,50,56,0,102,97,105,108,101,100,32,116,111,32,97,99,113,117,105,114,101,32,116,104,101,32,110,111,110,99,101,32,98,117,102,102,101,114,32,108,111,99,107,58,32,37,115,10,0,102,97,105,108,101,100,32,116,111,32,114,101,108,101,97,115,101,32,116,104,101,32,110,111,110,99,101,32,98,117,102,102,101,114,32,108,111,99,107,58,32,37,115,10,0,37,115,46,42,0,37,115,46,88,0,101,99,95,105,110,118,109,58,32,105,110,118,101,114,115,101,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,58,10,0,32,32,97,0,32,32,112,0,37,115,58,32,71,101,116,116,105,110,103,32,89,45,99,111,111,114,100,105,110,97,116,101,32,111,110,32,37,115,32,105,115,32,110,111,116,32,115,117,112,112,111,114,116,101,100,10,0,95,103,99,114,121,95,109,112,105,95,101,99,95,103,101,116,95,97,102,102,105,110,101,0,77,111,110,116,103,111,109,101,114,121,0,71,67,82,89,80,84,95,66,65,82,82,69,84,84,0,37,115,58,32,37,115,32,110,111,116,32,121,101,116,32,115,117,112,112,111,114,116,101,100,10,0,95,103,99,114,121,95,109,112,105,95,101,99,95,100,117,112,95,112,111,105,110,116,0,95,103,99,114,121,95,109,112,105,95,101,99,95,97,100,100,95,112,111,105,110,116,115,0,0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,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,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,33,98,112,95,109,97,114,107,101,114,0,109,112,105,45,112,111,119,46,99,0,95,103,99,114,121,95,109,112,105,95,112,111,119,109,0,114,101,115,45,62,100,32,61,61,32,114,112,0,105,32,61,61,32,110,108,105,109,98,115,0,109,112,105,99,111,100,101,114,46,99,0,95,103,99,114,121,95,109,112,105,95,115,101,116,95,98,117,102,102,101,114,0,58,103,101,110,101,114,105,99,47,109,112,105,104,45,97,100,100,49,46,99,58,103,101,110,101,114,105,99,47,109,112,105,104,45,115,117,98,49,46,99,58,103,101,110,101,114,105,99,47,109,112,105,104,45,109,117,108,49,46,99,58,103,101,110,101,114,105,99,47,109,112,105,104,45,109,117,108,50,46,99,58,103,101,110,101,114,105,99,47,109,112,105,104,45,109,117,108,51,46,99,58,103,101,110,101,114,105,99,47,109,112,105,104,45,108,115,104,105,102,116,46,99,58,103,101,110,101,114,105,99,47,109,112,105,104,45,114,115,104,105,102,116,46,99,0,87,97,114,110,105,110,103,58,32,116,114,121,105,110,103,32,116,111,32,99,104,97,110,103,101,32,97,110,32,105,109,109,117,116,97,98,108,101,32,77,80,73,10,0,105,110,118,97,108,105,100,32,102,108,97,103,32,118,97,108,117,101,32,105,110,32,109,112,105,95,102,114,101,101,10,0,109,112,105,95,103,101,116,95,111,112,97,113,117,101,32,111,110,32,110,111,114,109,97,108,32,109,112,105,10,0,109,112,105,95,115,101,116,95,99,111,110,100,58,32,100,105,102,102,101,114,101,110,116,32,115,105,122,101,115,10,0,109,112,105,95,115,119,97,112,95,99,111,110,100,58,32,100,105,102,102,101,114,101,110,116,32,115,105,122,101,115,10,0,105,110,118,97,108,105,100,32,102,108,97,103,32,118,97,108,117,101,10,0,105,110,118,97,108,105,100,32,109,112,105,95,99,111,110,115,116,32,115,101,108,101,99,116,111,114,32,37,100,10,0,77,80,73,32,115,117,98,115,121,115,116,101,109,32,110,111,116,32,105,110,105,116,105,97,108,105,122,101,100,10,0,10,10,84,104,105,115,32,105,115,32,76,105,98,103,99,114,121,112,116,32,49,46,55,46,48,45,98,101,116,97,50,51,48,32,45,32,84,104,101,32,71,78,85,32,67,114,121,112,116,111,32,76,105,98,114,97,114,121,10,67,111,112,121,114,105,103,104,116,32,40,67,41,32,50,48,48,48,45,50,48,49,50,32,70,114,101,101,32,83,111,102,116,119,97,114,101,32,70,111,117,110,100,97,116,105,111,110,44,32,73,110,99,46,10,67,111,112,121,114,105,103,104,116,32,40,67,41,32,50,48,49,50,45,50,48,49,52,32,103,49,48,32,67,111,100,101,32,71,109,98,72,10,67,111,112,121,114,105,103,104,116,32,40,67,41,32,50,48,49,51,45,50,48,49,52,32,74,117,115,115,105,32,75,105,118,105,108,105,110,110,97,10,10,40,97,51,54,101,101,55,53,48,32,50,48,49,55,45,48,51,45,49,48,84,50,49,58,51,54,43,48,48,48,48,41,10,10,10,0,99,105,112,104,101,114,45,99,109,97,99,46,99,0,99,109,97,99,95,103,101,110,101,114,97,116,101,95,115,117,98,107,101,121,115,0,99,45,62,117,110,117,115,101,100,32,60,32,98,108,111,99,107,115,105,122,101,0,99,105,112,104,101,114,45,99,116,114,46,99,0,95,103,99,114,121,95,99,105,112,104,101,114,95,99,116,114,95,101,110,99,114,121,112,116,0,117,110,117,115,101,100,32,61,61,32,98,108,111,99,107,115,105,122,101,0,99,105,112,104,101,114,45,103,99,109,46,99,0,100,111,95,103,104,97,115,104,95,98,117,102,0,115,101,108,102,116,101,115,116,32,102,111,114,32,67,66,67,32,102,97,105,108,101,100,32,45,32,115,101,101,32,115,121,115,108,111,103,32,102,111,114,32,100,101,116,97,105,108,115,0,115,101,116,107,101,121,32,102,97,105,108,101,100,0,102,97,105,108,101,100,32,116,111,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,0,115,101,108,102,116,101,115,116,32,102,111,114,32,67,70,66,32,102,97,105,108,101,100,32,45,32,115,101,101,32,115,121,115,108,111,103,32,102,111,114,32,100,101,116,97,105,108,115,0,115,101,108,102,116,101,115,116,32,102,111,114,32,67,84,82,32,102,97,105,108,101,100,32,45,32,115,101,101,32,115,121,115,108,111,103,32,102,111,114,32,100,101,116,97,105,108,115,0,69,67,67,0,112,97,98,103,110,104,113,0,112,97,98,103,110,104,113,100,0,115,119,0,114,115,0,102,108,97,103,115,0,112,63,97,63,98,63,103,63,110,63,104,63,47,113,0,112,63,97,63,98,63,103,63,110,63,104,63,113,0,47,113,0,113,0,99,117,114,118,101,0,112,97,98,103,110,104,113,40,49,58,37,99,37,117,58,0,41,0,112,0,101,99,99,95,118,101,114,105,102,121,32,100,97,116,97,0,47,114,115,0,101,99,99,95,118,101,114,105,102,121,32,32,115,95,114,0,101,99,99,95,118,101,114,105,102,121,32,32,115,95,115,0,45,112,63,97,63,98,63,103,63,110,63,104,63,47,113,0,43,69,100,68,83,65,0,101,99,99,95,118,101,114,105,102,121,32,105,110,102,111,58,32,37,115,47,37,115,37,115,10,0,101,99,99,95,118,101,114,105,102,121,32,110,97,109,101,58,32,37,115,10,0,101,99,99,95,118,101,114,105,102,121,32,32,32,32,112,0,101,99,99,95,118,101,114,105,102,121,32,32,32,32,97,0,101,99,99,95,118,101,114,105,102,121,32,32,32,32,98,0,101,99,99,95,118,101,114,105,102,121,32,32,103,0,101,99,99,95,118,101,114,105,102,121,32,32,32,32,110,0,101,99,99,95,118,101,114,105,102,121,32,32,32,32,104,0,101,99,99,95,118,101,114,105,102,121,32,32,32,32,113,0,71,111,111,100,0,101,99,99,95,118,101,114,105,102,121,32,32,32,32,61,62,32,37,115,10,0,101,99,99,95,115,105,103,110,32,32,32,100,97,116,97,0,45,112,63,97,63,98,63,103,63,110,63,104,63,47,113,63,43,100,0,47,113,63,43,100,0,101,99,99,95,115,105,103,110,32,32,32,105,110,102,111,58,32,37,115,47,37,115,37,115,10,0,101,99,99,95,115,105,103,110,32,32,32,110,97,109,101,58,32,37,115,10,0,101,99,99,95,115,105,103,110,32,32,32,32,32,32,112,0,101,99,99,95,115,105,103,110,32,32,32,32,32,32,97,0,101,99,99,95,115,105,103,110,32,32,32,32,32,32,98,0,101,99,99,95,115,105,103,110,32,32,32,32,103,0,101,99,99,95,115,105,103,110,32,32,32,32,32,32,110,0,101,99,99,95,115,105,103,110,32,32,32,32,32,32,104,0,101,99,99,95,115,105,103,110,32,32,32,32,32,32,113,0,101,99,99,95,115,105,103,110,32,32,32,32,32,32,100,0,40,115,105,103,45,118,97,108,40,101,100,100,115,97,40,114,37,77,41,40,115,37,77,41,41,41,0,40,115,105,103,45,118,97,108,40,103,111,115,116,40,114,37,77,41,40,115,37,77,41,41,41,0,40,115,105,103,45,118,97,108,40,101,99,100,115,97,40,114,37,77,41,40,115,37,77,41,41,41,0,101,99,99,95,115,105,103,110,32,32,32,32,32,32,61,62,32,37,115,10,0,101,0,101,99,99,95,100,101,99,114,121,112,116,32,32,100,95,101,0,45,112,63,97,63,98,63,103,63,110,63,104,63,43,100,0,101,99,99,95,100,101,99,114,121,112,116,32,105,110,102,111,58,32,37,115,47,37,115,10,0,101,99,99,95,100,101,99,114,121,112,116,32,110,97,109,101,58,32,37,115,10,0,101,99,99,95,100,101,99,114,121,112,116,32,32,32,32,112,0,101,99,99,95,100,101,99,114,121,112,116,32,32,32,32,97,0,101,99,99,95,100,101,99,114,121,112,116,32,32,32,32,98,0,101,99,99,95,100,101,99,114,121,112,116,32,32,103,0,101,99,99,95,100,101,99,114,121,112,116,32,32,32,32,110,0,101,99,99,95,100,101,99,114,121,112,116,32,32,32,32,104,0,101,99,99,95,100,101,99,114,121,112,116,32,32,32,32,100,0,101,99,100,104,58,32,70,97,105,108,101,100,32,116,111,32,103,101,116,32,97,102,102,105,110,101,32,99,111,111,114,100,105,110,97,116,101,115,10,0,101,99,99,95,100,101,99,114,121,112,116,32,32,114,101,115,0,40,118,97,108,117,101,32,37,109,41,0,101,99,99,95,100,101,99,114,121,112,116,32,32,32,32,61,62,32,37,115,10,0,101,99,99,95,101,110,99,114,121,112,116,32,100,97,116,97,0,45,112,63,97,63,98,63,103,63,110,63,104,63,43,113,0,101,99,99,95,101,110,99,114,121,112,116,32,105,110,102,111,58,32,37,115,47,37,115,10,0,101,99,99,95,101,110,99,114,121,112,116,32,110,97,109,101,58,32,37,115,10,0,101,99,99,95,101,110,99,114,121,112,116,32,32,32,32,112,0,101,99,99,95,101,110,99,114,121,112,116,32,32,32,32,97,0,101,99,99,95,101,110,99,114,121,112,116,32,32,32,32,98,0,101,99,99,95,101,110,99,114,121,112,116,32,32,103,0,101,99,99,95,101,110,99,114,121,112,116,32,32,32,32,110,0,101,99,99,95,101,110,99,114,121,112,116,32,32,32,32,104,0,101,99,99,95,101,110,99,114,121,112,116,32,32,32,32,113,0,101,99,100,104,58,32,70,97,105,108,101,100,32,116,111,32,103,101,116,32,97,102,102,105,110,101,32,99,111,111,114,100,105,110,97,116,101,115,32,102,111,114,32,107,100,71,10,0,101,99,100,104,58,32,70,97,105,108,101,100,32,116,111,32,103,101,116,32,97,102,102,105,110,101,32,99,111,111,114,100,105,110,97,116,101,115,32,102,111,114,32,107,71,10,0,40,101,110,99,45,118,97,108,40,101,99,100,104,40,115,37,109,41,40,101,37,109,41,41,41,0,101,99,99,95,101,110,99,114,121,112,116,32,32,32,32,61,62,32,37,115,10,0,101,99,99,95,116,101,115,116,107,101,121,32,105,110,102,58,32,37,115,47,37,115,10,0,101,99,99,95,116,101,115,116,107,101,121,32,110,97,109,58,32,37,115,10,0,101,99,99,95,116,101,115,116,107,101,121,32,32,32,112,0,101,99,99,95,116,101,115,116,107,101,121,32,32,32,97,0,101,99,99,95,116,101,115,116,107,101,121,32,32,32,98,0,101,99,99,95,116,101,115,116,107,101,121,32,103,0,101,99,99,95,116,101,115,116,107,101,121,32,32,32,110,0,101,99,99,95,116,101,115,116,107,101,121,32,32,32,104,0,101,99,99,95,116,101,115,116,107,101,121,32,32,32,113,0,101,99,99,95,116,101,115,116,107,101,121,32,32,32,100,0,66,97,100,32,99,104,101,99,107,58,32,80,111,105,110,116,32,39,71,39,32,100,111,101,115,32,110,111,116,32,98,101,108,111,110,103,32,116,111,32,99,117,114,118,101,32,39,69,39,33,10,0,66,97,100,32,99,104,101,99,107,58,32,39,71,39,32,99,97,110,110,111,116,32,98,101,32,80,111,105,110,116,32,97,116,32,73,110,102,105,110,105,116,121,33,10,0,99,104,101,99,107,95,115,101,99,114,101,116,95,107,101,121,58,32,69,32,105,115,32,110,111,116,32,97,32,99,117,114,118,101,32,111,102,32,111,114,100,101,114,32,110,10,0,66,97,100,32,99,104,101,99,107,58,32,81,32,99,97,110,32,110,111,116,32,98,101,32,97,32,80,111,105,110,116,32,97,116,32,73,110,102,105,110,105,116,121,33,10,0,66,97,100,32,99,104,101,99,107,58,32,99,111,109,112,117,116,97,116,105,111,110,32,111,102,32,100,71,32,102,97,105,108,101,100,10,0,66,97,100,32,99,104,101,99,107,58,32,84,104,101,114,101,32,105,115,32,78,79,32,99,111,114,114,101,115,112,111,110,100,101,110,99,101,32,98,101,116,119,101,101,110,32,39,100,39,32,97,110,100,32,39,81,39,33,10,0,101,99,99,95,116,101,115,116,107,101,121,32,32,32,61,62,32,37,115,10,0,116,114,97,110,115,105,101,110,116,45,107,101,121,0,101,99,103,101,110,32,99,117,114,118,101,32,105,110,102,111,58,32,37,115,47,37,115,10,0,101,99,103,101,110,32,99,117,114,118,101,32,117,115,101,100,58,32,37,115,10,0,101,99,103,101,110,32,99,117,114,118,101,32,32,32,112,0,101,99,103,101,110,32,99,117,114,118,101,32,32,32,97,0,101,99,103,101,110,32,99,117,114,118,101,32,32,32,98,0,101,99,103,101,110,32,99,117,114,118,101,32,32,32,110,0,101,99,103,101,110,32,99,117,114,118,101,32,32,32,104,0,101,99,103,101,110,32,99,117,114,118,101,32,71,0,101,99,103,101,110,58,32,70,97,105,108,101,100,32,116,111,32,103,101,116,32,97,102,102,105,110,101,32,99,111,111,114,100,105,110,97,116,101,115,32,102,111,114,32,37,115,10,0,81,0,101,99,103,101,110,32,99,111,110,118,101,114,116,101,100,32,81,32,116,111,32,97,32,99,111,109,112,108,105,97,110,116,32,112,111,105,110,116,10,0,101,99,103,101,110,32,100,105,100,110,39,116,32,110,101,101,100,32,116,111,32,99,111,110,118,101,114,116,32,81,32,116,111,32,97,32,99,111,109,112,108,105,97,110,116,32,112,111,105,110,116,10,0,84,101,115,116,105,110,103,32,107,101,121,46,10,0,69,67,68,83,65,32,111,112,101,114,97,116,105,111,110,58,32,115,105,103,110,32,102,97,105,108,101,100,10,0,69,67,68,83,65,32,111,112,101,114,97,116,105,111,110,58,32,115,105,103,110,44,32,118,101,114,105,102,121,32,102,97,105,108,101,100,10,0,69,67,68,83,65,32,111,112,101,114,97,116,105,111,110,58,32,115,105,103,110,44,32,118,101,114,105,102,121,32,111,107,46,10,0,101,99,100,104,58,32,70,97,105,108,101,100,32,116,111,32,103,101,116,32,97,102,102,105,110,101,32,99,111,111,114,100,105,110,97,116,101,115,32,102,111,114,32,104,107,81,10,0,101,99,100,104,58,32,70,97,105,108,101,100,32,116,111,32,103,101,116,32,97,102,102,105,110,101,32,99,111,111,114,100,105,110,97,116,101,115,32,102,111,114,32,104,100,107,71,10,0,69,67,68,72,32,116,101,115,116,32,102,97,105,108,101,100,46,10,0,71,0,40,99,117,114,118,101,32,37,115,41,0,40,102,108,97,103,115,32,112,97,114,97,109,41,0,40,102,108,97,103,115,32,101,100,100,115,97,41,0,40,102,108,97,103,115,32,112,97,114,97,109,32,101,100,100,115,97,41,0,40,107,101,121,45,100,97,116,97,32,40,112,117,98,108,105,99,45,107,101,121,32,32,40,101,99,99,37,83,37,83,40,112,37,109,41,40,97,37,109,41,40,98,37,109,41,40,103,37,109,41,40,110,37,109,41,40,104,37,109,41,40,113,37,109,41,41,41,32,40,112,114,105,118,97,116,101,45,107,101,121,32,32,40,101,99,99,37,83,37,83,40,112,37,109,41,40,97,37,109,41,40,98,37,109,41,40,103,37,109,41,40,110,37,109,41,40,104,37,109,41,40,113,37,109,41,40,100,37,109,41,41,41,32,41,0,40,107,101,121,45,100,97,116,97,32,40,112,117,98,108,105,99,45,107,101,121,32,32,40,101,99,99,37,83,37,83,40,113,37,109,41,41,41,32,40,112,114,105,118,97,116,101,45,107,101,121,32,32,40,101,99,99,37,83,37,83,40,113,37,109,41,40,100,37,109,41,41,41,32,41,0,101,99,103,101,110,32,114,101,115,117,108,116,32,32,112,0,101,99,103,101,110,32,114,101,115,117,108,116,32,32,97,0,101,99,103,101,110,32,114,101,115,117,108,116,32,32,98,0,101,99,103,101,110,32,114,101,115,117,108,116,32,32,71,0,101,99,103,101,110,32,114,101,115,117,108,116,32,32,110,0,101,99,103,101,110,32,114,101,115,117,108,116,32,32,104,0,101,99,103,101,110,32,114,101,115,117,108,116,32,32,81,0,101,99,103,101,110,32,114,101,115,117,108,116,32,32,100,0,101,99,103,101,110,32,114,101,115,117,108,116,32,32,117,115,105,110,103,32,69,100,50,53,53,49,57,43,69,100,68,83,65,10,0,101,99,99,0,101,99,100,115,97,0,101,99,100,104,0,101,100,100,115,97,0,103,111,115,116,0,100,105,103,101,115,116,32,109,105,115,109,97,116,99,104,0,105,110,118,97,108,105,100,32,68,65,84,65,77,79,68,69,0,100,105,103,101,115,116,32,115,105,122,101,32,100,111,101,115,32,110,111,116,32,109,97,116,99,104,32,101,120,112,101,99,116,101,100,32,115,105,122,101,0,103,99,114,121,95,109,100,95,111,112,101,110,32,102,97,105,108,101,100,0,104,97,115,104,45,99,111,109,109,111,110,46,99,0,95,103,99,114,121,95,109,100,95,98,108,111,99,107,95,119,114,105,116,101,0,238,166,167,37,28,30,114,145,109,17,194,203,33,77,60,37,37,57,18,29,142,35,78,101,45,101,31,164,200,207,248,128,142,153,59,159,72,104,18,115,194,150,80,186,50,252,118,206,72,51,46,167,22,77,150,164,71,111,184,197,49,161,24,106,192,223,193,124,152,220,232,123,77,167,240,17,236,72,201,114,113,210,194,15,155,146,143,226,39,13,111,184,99,213,23,56,180,142,238,227,20,167,204,138,185,50,22,69,72,229,38,174,144,34,67,104,81,122,207,234,189,107,179,115,43,192,233,218,153,131,43,97,202,1,182,222,86,36,74,158,136,213,249,179,121,115,246,34,164,61,20,166,89,155,31,101,76,180,90,116,227,85,165,243,255,199,112,63,148,0,229,42,125,251,75,61,51,5,217,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,255,254,253,252,251,250,249,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,100,175,226,232,214,173,123,189,210,135,249,124,68,98,61,57,80,111,108,121,49,51,48,53,32,116,101,115,116,32,52,32,102,97,105,108,101,100,46,0,80,111,108,121,49,51,48,53,32,116,101,115,116,32,49,32,102,97,105,108,101,100,46,0,80,111,108,121,49,51,48,53,32,116,101,115,116,32,50,32,102,97,105,108,101,100,46,0,80,111,108,121,49,51,48,53,32,116,101,115,116,32,51,32,102,97,105,108,101,100,46,0,80,111,108,121,49,51,48,53,32,115,101,108,102,116,101,115,116,32,102,97,105,108,101,100,32,40,37,115,41,10,0,102,97,105,108,101,100,32,116,111,32,97,99,113,117,105,114,101,32,116,104,101,32,112,111,111,108,32,108,111,99,107,58,32,37,115,10,0,110,111,32,101,110,116,114,111,112,121,32,103,97,116,104,101,114,105,110,103,32,109,111,100,117,108,101,32,100,101,116,101,99,116,101,100,10,0,102,97,105,108,101,100,32,116,111,32,114,101,108,101,97,115,101,32,116,104,101,32,112,111,111,108,32,108,111,99,107,58,32,37,115,10,0,32,40,104,119,114,110,103,32,102,97,105,108,101,100,41,0,114,97,110,100,111,109,32,117,115,97,103,101,58,32,112,111,111,108,115,105,122,101,61,37,100,32,109,105,120,101,100,61,37,108,117,32,112,111,108,108,115,61,37,108,117,47,37,108,117,32,97,100,100,101,100,61,37,108,117,47,37,108,117,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,111,117,116,109,105,120,61,37,108,117,32,103,101,116,108,118,108,49,61,37,108,117,47,37,108,117,32,103,101,116,108,118,108,50,61,37,108,117,47,37,108,117,37,115,10,0,112,111,111,108,95,105,115,95,108,111,99,107,101,100,0,114,97,110,100,111,109,45,99,115,112,114,110,103,46,99,0,109,105,120,95,112,111,111,108,0,114,101,97,100,95,112,111,111,108,0,97,100,100,95,114,97,110,100,111,109,110,101,115,115,0,116,111,111,32,109,97,110,121,32,114,97,110,100,111,109,32,98,105,116,115,32,114,101,113,117,101,115,116,101,100,10,0,99,97,110,39,116,32,111,112,101,110,32,96,37,115,39,58,32,37,115,10,0,99,97,110,39,116,32,115,116,97,116,32,96,37,115,39,58,32,37,115,10,0,96,37,115,39,32,105,115,32,110,111,116,32,97,32,114,101,103,117,108,97,114,32,102,105,108,101,32,45,32,105,103,110,111,114,101,100,10,0,110,111,116,101,58,32,114,97,110,100,111,109,95,115,101,101,100,32,102,105,108,101,32,105,115,32,101,109,112,116,121,10,0,119,97,114,110,105,110,103,58,32,105,110,118,97,108,105,100,32,115,105,122,101,32,111,102,32,114,97,110,100,111,109,95,115,101,101,100,32,102,105,108,101,32,45,32,110,111,116,32,117,115,101,100,10,0,99,97,110,39,116,32,114,101,97,100,32,96,37,115,39,58,32,37,115,10,0,83,108,111,119,32,101,110,116,114,111,112,121,32,103,97,116,104,101,114,105,110,103,32,109,111,100,117,108,101,32,110,111,116,32,121,101,116,32,105,110,105,116,105,97,108,105,122,101,100,10,0,78,111,32,119,97,121,32,116,111,32,103,97,116,104,101,114,32,101,110,116,114,111,112,121,32,102,111,114,32,116,104,101,32,82,78,71,10,0,100,111,95,102,97,115,116,95,114,97,110,100,111,109,95,112,111,108,108,0,99,97,110,39,116,32,108,111,99,107,32,96,37,115,39,58,32,37,115,10,0,119,97,105,116,105,110,103,32,102,111,114,32,108,111,99,107,32,111,110,32,96,37,115,39,46,46,46,10,0,95,103,99,114,121,95,114,110,103,99,115,112,114,110,103,95,115,101,116,95,115,101,101,100,95,102,105,108,101,0,110,111,116,101,58,32,114,97,110,100,111,109,95,115,101,101,100,32,102,105,108,101,32,110,111,116,32,117,112,100,97,116,101,100,10,0,99,97,110,39,116,32,99,114,101,97,116,101,32,96,37,115,39,58,32,37,115,10,0,99,97,110,39,116,32,119,114,105,116,101,32,96,37,115,39,58,32,37,115,10,0,99,97,110,39,116,32,99,108,111,115,101,32,96,37,115,39,58,32,37,115,10,0,102,97,105,108,101,100,32,116,111,32,97,99,113,117,105,114,101,32,116,104,101,32,82,78,71,32,108,111,99,107,58,32,37,115,10,0,33,110,111,110,99,101,95,99,111,110,116,101,120,116,45,62,116,101,115,116,95,100,116,95,112,116,114,0,114,97,110,100,111,109,45,102,105,112,115,46,99,0,95,103,99,114,121,95,114,110,103,102,105,112,115,95,105,110,105,116,105,97,108,105,122,101,0,33,115,116,100,95,114,110,103,95,99,111,110,116,101,120,116,45,62,116,101,115,116,95,100,116,95,112,116,114,0,33,115,116,114,111,110,103,95,114,110,103,95,99,111,110,116,101,120,116,45,62,116,101,115,116,95,100,116,95,112,116,114,0,109,101,109,111,114,121,32,99,111,114,114,117,112,116,105,111,110,32,100,101,116,101,99,116,101,100,32,105,110,32,82,78,71,32,99,111,110,116,101,120,116],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+40960);allocate([32,37,112,10,0,102,97,105,108,101,100,32,116,111,32,114,101,108,101,97,115,101,32,116,104,101,32,82,78,71,32,108,111,99,107,58,32,37,115,10,0,114,110,103,95,99,116,120,0,102,111,114,107,32,119,105,116,104,111,117,116,32,112,114,111,112,101,114,32,114,101,45,105,110,105,116,105,97,108,105,122,97,116,105,111,110,32,100,101,116,101,99,116,101,100,32,105,110,32,82,78,71,0,115,101,118,101,114,101,32,101,114,114,111,114,32,103,101,116,116,105,110,103,32,114,97,110,100,111,109,10,0,102,105,112,115,95,114,110,103,95,105,115,95,108,111,99,107,101,100,0,120,57,51,49,95,97,101,115,95,100,114,105,118,101,114,0,114,110,103,95,99,116,120,45,62,99,105,112,104,101,114,95,104,100,0,114,110,103,95,99,116,120,45,62,105,115,95,115,101,101,100,101,100,0,116,101,109,112,118,97,108,117,101,95,102,111,114,95,120,57,51,49,95,97,101,115,95,100,114,105,118,101,114,0,120,57,51,49,95,103,101,116,95,100,116,0,103,101,116,116,105,109,101,111,102,100,97,121,40,41,32,102,97,105,108,101,100,58,32,37,115,10,0,65,69,83,32,101,110,99,114,121,112,116,105,111,110,32,105,110,32,82,78,71,32,102,97,105,108,101,100,58,32,37,115,10,0,100,117,112,108,105,99,97,116,101,32,49,50,56,32,98,105,116,32,98,108,111,99,107,32,114,101,116,117,114,110,101,100,32,98,121,32,82,78,71,0,120,57,51,49,95,114,101,115,101,101,100,0,33,101,110,116,114,111,112,121,95,99,111,108,108,101,99,116,95,98,117,102,102,101,114,0,103,101,116,95,101,110,116,114,111,112,121,0,101,114,114,111,114,32,103,101,116,116,105,110,103,32,101,110,116,114,111,112,121,32,100,97,116,97,10,0,101,110,116,114,111,112,121,95,99,111,108,108,101,99,116,95,99,98,0,101,110,116,114,111,112,121,95,99,111,108,108,101,99,116,95,98,117,102,102,101,114,0,120,57,51,49,95,103,101,110,101,114,97,116,101,95,107,101,121,0,101,114,114,111,114,32,99,114,101,97,116,105,110,103,32,99,105,112,104,101,114,32,99,111,110,116,101,120,116,32,102,111,114,32,82,78,71,58,32,37,115,10,0,101,114,114,111,114,32,99,114,101,97,116,105,110,103,32,107,101,121,32,102,111,114,32,82,78,71,58,32,37,115,10,0,115,101,108,102,116,101,115,116,95,107,97,116,0,185,202,127,214,160,245,211,66,25,109,132,145,118,28,59,190,72,178,130,152,104,194,128,0,0,0,40,24,0,0,37,0,82,23,141,41,162,213,132,18,157,137,154,69,130,2,247,119,66,156,8,61,130,244,138,64,102,181,73,39,171,66,199,195,14,183,97,60,254,176,190,115,247,110,109,111,29,163,20,250,187,75,193,14,197,251,205,70,190,40,97,231,3,43,55,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,247,149,189,74,82,226,158,215,19,211,19,250,32,233,141,188,200,209,229,17,89,82,247,250,55,56,180,197,206,178,176,154,13,156,197,13,22,225,188,237,207,96,98,9,157,32,131,126,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,128,0,129,1,130,2,131,3,160,32,161,33,162,34,163,35,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,150,237,204,195,221,4,127,117,99,25,55,111,21,34,87,86,122,20,118,119,149,23,126,200,146,232,221,21,203,31,188,177,37,62,46,162,65,27,221,245,33,72,65,113,179,141,47,76,88,57,46,51,49,32,82,78,71,32,99,111,114,101,32,102,117,110,99,116,105,111,110,32,102,97,105,108,101,100,0,82,78,71,32,111,117,116,112,117,116,32,100,111,101,115,32,110,111,116,32,109,97,116,99,104,32,107,110,111,119,110,32,118,97,108,117,101,0,101,114,114,111,114,32,99,114,101,97,116,105,110,103,32,99,105,112,104,101,114,32,99,111,110,116,101,120,116,32,102,111,114,32,82,78,71,0,101,114,114,111,114,32,115,101,116,116,105,110,103,32,107,101,121,32,102,111,114,32,82,78,71,0,102,111,114,107,32,100,101,116,101,99,116,105,111,110,32,102,97,105,108,101,100,0,114,97,110,100,111,109,0,75,65,84,0,102,97,105,108,101,100,32,116,111,32,97,99,113,117,105,114,101,32,116,104,101,32,83,121,115,116,101,109,32,82,78,71,32,108,111,99,107,58,32,37,115,10,0,102,97,105,108,101,100,32,116,111,32,114,101,108,101,97,115,101,32,116,104,101,32,83,121,115,116,101,109,32,82,78,71,32,108,111,99,107,58,32,37,115,10,0,98,117,102,102,101,114,0,114,97,110,100,111,109,45,115,121,115,116,101,109,46,99,0,103,101,116,95,114,97,110,100,111,109,0,101,114,114,111,114,32,114,101,97,100,105,110,103,32,114,97,110,100,111,109,32,102,114,111,109,32,115,121,115,116,101,109,32,82,78,71,32,40,114,99,61,37,100,41,10,0,115,121,115,116,101,109,95,114,110,103,95,105,115,95,108,111,99,107,101,100,0,114,101,97,100,95,99,98,0,114,101,97,100,95,99,98,95,98,117,102,102,101,114,0,47,100,101,118,47,114,97,110,100,111,109,0,47,100,101,118,47,117,114,97,110,100,111,109,0,110,101,101,100,95,101,110,116,114,111,112,121,0,115,101,108,101,99,116,40,41,32,101,114,114,111,114,58,32,37,115,10,0,98,111,103,117,115,32,114,101,97,100,32,102,114,111,109,32,114,97,110,100,111,109,32,100,101,118,105,99,101,32,40,110,61,37,100,41,10,0,114,101,97,100,32,101,114,114,111,114,32,111,110,32,114,97,110,100,111,109,32,100,101,118,105,99,101,58,32,37,115,10,0,111,112,101,110,95,100,101,118,95,114,97,110,100,111,109,0,119,97,105,116,95,100,101,118,95,114,97,110,100,111,109,0,99,97,110,39,116,32,111,112,101,110,32,37,115,58,32,37,115,10,0,101,114,114,111,114,32,115,101,116,116,105,110,103,32,70,68,95,67,76,79,69,88,69,67,32,111,110,32,102,100,32,37,100,58,32,37,115,10,0,99,104,111,111,115,105,110,103,32,97,32,114,97,110,100,111,109,32,107,32,111,102,32,37,117,32,98,105,116,115,32,97,116,32,115,101,99,108,101,118,101,108,32,37,100,10,0,9,107,32,116,111,111,32,108,97,114,103,101,32,45,32,97,103,97,105,110,10,0,9,107,32,105,115,32,122,101,114,111,32,45,32,97,103,97,105,110,10,0,1,0,101,99,100,115,97,32,115,105,103,110,32,104,97,115,104,32,32,0,101,99,100,115,97,32,115,105,103,110,32,114,101,115,117,108,116,32,114,32,0,101,99,100,115,97,32,115,105,103,110,32,114,101,115,117,108,116,32,115,32,0,103,111,115,116,32,115,105,103,110,32,104,97,115,104,32,32,0,101,99,99,32,115,105,103,110,58,32,70,97,105,108,101,100,32,116,111,32,103,101,116,32,97,102,102,105,110,101,32,99,111,111,114,100,105,110,97,116,101,115,10,0,103,111,115,116,32,115,105,103,110,32,114,101,115,117,108,116,32,114,32,0,103,111,115,116,32,115,105,103,110,32,114,101,115,117,108,116,32,115,32,0,101,99,99,32,118,101,114,105,102,121,58,32,82,101,106,101,99,116,101,100,10,0,101,99,99,32,118,101,114,105,102,121,58,32,70,97,105,108,101,100,32,116,111,32,103,101,116,32,97,102,102,105,110,101,32,99,111,111,114,100,105,110,97,116,101,115,10,0,32,32,32,32,32,120,0,32,32,32,32,32,114,0,32,32,32,32,32,115,0,101,99,99,32,118,101,114,105,102,121,58,32,78,111,116,32,118,101,114,105,102,105,101,100,10,0,101,99,99,32,118,101,114,105,102,121,58,32,65,99,99,101,112,116,101,100,10,0,33,34,108,111,99,107,32,65,66,73,32,118,101,114,115,105,111,110,34,0,112,111,115,105,120,45,108,111,99,107,46,99,0,103,101,116,95,108,111,99,107,95,111,98,106,101,99,116,0,115,116,114,101,97,109,45,62,102,108,97,103,115,46,119,114,105,116,105,110,103,0,101,115,116,114,101,97,109,46,99,0,101,115,95,102,108,117,115,104,0,83,117,99,99,101,115,115,0,71,101,110,101,114,97,108,32,101,114,114,111,114,0,85,110,107,110,111,119,110,32,112,97,99,107,101,116,0,85,110,107,110,111,119,110,32,118,101,114,115,105,111,110,32,105,110,32,112,97,99,107,101,116,0,73,110,118,97,108,105,100,32,112,117,98,108,105,99,32,107,101,121,32,97,108,103,111,114,105,116,104,109,0,73,110,118,97,108,105,100,32,100,105,103,101,115,116,32,97,108,103,111,114,105,116,104,109,0,66,97,100,32,112,117,98,108,105,99,32,107,101,121,0,66,97,100,32,115,101,99,114,101,116,32,107,101,121,0,66,97,100,32,115,105,103,110,97,116,117,114,101,0,78,111,32,112,117,98,108,105,99,32,107,101,121,0,67,104,101,99,107,115,117,109,32,101,114,114,111,114,0,66,97,100,32,112,97,115,115,112,104,114,97,115,101,0,73,110,118,97,108,105,100,32,99,105,112,104,101,114,32,97,108,103,111,114,105,116,104,109,0,75,101,121,114,105,110,103,32,111,112,101,110,0,73,110,118,97,108,105,100,32,112,97,99,107,101,116,0,73,110,118,97,108,105,100,32,97,114,109,111,114,0,78,111,32,117,115,101,114,32,73,68,0,78,111,32,115,101,99,114,101,116,32,107,101,121,0,87,114,111,110,103,32,115,101,99,114,101,116,32,107,101,121,32,117,115,101,100,0,66,97,100,32,115,101,115,115,105,111,110,32,107,101,121,0,85,110,107,110,111,119,110,32,99,111,109,112,114,101,115,115,105,111,110,32,97,108,103,111,114,105,116,104,109,0,78,117,109,98,101,114,32,105,115,32,110,111,116,32,112,114,105,109,101,0,73,110,118,97,108,105,100,32,101,110,99,111,100,105,110,103,32,109,101,116,104,111,100,0,73,110,118,97,108,105,100,32,101,110,99,114,121,112,116,105,111,110,32,115,99,104,101,109,101,0,73,110,118,97,108,105,100,32,115,105,103,110,97,116,117,114,101,32,115,99,104,101,109,101,0,73,110,118,97,108,105,100,32,97,116,116,114,105,98,117,116,101,0,78,111,32,118,97,108,117,101,0,78,111,116,32,102,111,117,110,100,0,86,97,108,117,101,32,110,111,116,32,102,111,117,110,100,0,83,121,110,116,97,120,32,101,114,114,111,114,0,66,97,100,32,77,80,73,32,118,97,108,117,101,0,73,110,118,97,108,105,100,32,112,97,115,115,112,104,114,97,115,101,0,73,110,118,97,108,105,100,32,115,105,103,110,97,116,117,114,101,32,99,108,97,115,115,0,82,101,115,111,117,114,99,101,115,32,101,120,104,97,117,115,116,101,100,0,73,110,118,97,108,105,100,32,107,101,121,114,105,110,103,0,84,114,117,115,116,32,68,66,32,101,114,114,111,114,0,66,97,100,32,99,101,114,116,105,102,105,99,97,116,101,0,73,110,118,97,108,105,100,32,117,115,101,114,32,73,68,0,85,110,101,120,112,101,99,116,101,100,32,101,114,114,111,114,0,84,105,109,101,32,99,111,110,102,108,105,99,116,0,75,101,121,115,101,114,118,101,114,32,101,114,114,111,114,0,87,114,111,110,103,32,112,117,98,108,105,99,32,107,101,121,32,97,108,103,111,114,105,116,104,109,0,84,114,105,98,117,116,101,32,116,111,32,68,46,32,65,46,0,87,101,97,107,32,101,110,99,114,121,112,116,105,111,110,32,107,101,121,0,73,110,118,97,108,105,100,32,107,101,121,32,108,101,110,103,116,104,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,83,121,110,116,97,120,32,101,114,114,111,114,32,105,110,32,85,82,73,0,73,110,118,97,108,105,100,32,85,82,73,0,78,101,116,119,111,114,107,32,101,114,114,111,114,0,85,110,107,110,111,119,110,32,104,111,115,116,0,83,101,108,102,116,101,115,116,32,102,97,105,108,101,100,0,68,97,116,97,32,110,111,116,32,101,110,99,114,121,112,116,101,100,0,68,97,116,97,32,110,111,116,32,112,114,111,99,101,115,115,101,100,0,85,110,117,115,97,98,108,101,32,112,117,98,108,105,99,32,107,101,121,0,85,110,117,115,97,98,108,101,32,115,101,99,114,101,116,32,107,101,121,0,73,110,118,97,108,105,100,32,118,97,108,117,101,0,66,97,100,32,99,101,114,116,105,102,105,99,97,116,101,32,99,104,97,105,110,0,77,105,115,115,105,110,103,32,99,101,114,116,105,102,105,99,97,116,101,0,78,111,32,100,97,116,97,0,66,117,103,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,73,110,118,97,108,105,100,32,111,112,101,114,97,116,105,111,110,32,99,111,100,101,0,84,105,109,101,111,117,116,0,73,110,116,101,114,110,97,108,32,101,114,114,111,114,0,69,79,70,32,40,103,99,114,121,112,116,41,0,73,110,118,97,108,105,100,32,111,98,106,101,99,116,0,80,114,111,118,105,100,101,100,32,111,98,106,101,99,116,32,105,115,32,116,111,111,32,115,104,111,114,116,0,80,114,111,118,105,100,101,100,32,111,98,106,101,99,116,32,105,115,32,116,111,111,32,108,97,114,103,101,0,77,105,115,115,105,110,103,32,105,116,101,109,32,105,110,32,111,98,106,101,99,116,0,78,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,67,111,110,102,108,105,99,116,105,110,103,32,117,115,101,0,73,110,118,97,108,105,100,32,99,105,112,104,101,114,32,109,111,100,101,0,73,110,118,97,108,105,100,32,102,108,97,103,0,73,110,118,97,108,105,100,32,104,97,110,100,108,101,0,82,101,115,117,108,116,32,116,114,117,110,99,97,116,101,100,0,73,110,99,111,109,112,108,101,116,101,32,108,105,110,101,0,73,110,118,97,108,105,100,32,114,101,115,112,111,110,115,101,0,78,111,32,97,103,101,110,116,32,114,117,110,110,105,110,103,0,65,103,101,110,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,100,97,116,97,0,85,110,115,112,101,99,105,102,105,99,32,65,115,115,117,97,110,32,115,101,114,118,101,114,32,102,97,117,108,116,0,71,101,110,101,114,97,108,32,65,115,115,117,97,110,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,115,101,115,115,105,111,110,32,107,101,121,0,73,110,118,97,108,105,100,32,83,45,101,120,112,114,101,115,115,105,111,110,0,85,110,115,117,112,112,111,114,116,101,100,32,97,108,103,111,114,105,116,104,109,0,78,111,32,112,105,110,101,110,116,114,121,0,112,105,110,101,110,116,114,121,32,101,114,114,111,114,0,66,97,100,32,80,73,78,0,73,110,118,97,108,105,100,32,110,97,109,101,0,66,97,100,32,100,97,116,97,0,73,110,118,97,108,105,100,32,112,97,114,97,109,101,116,101,114,0,87,114,111,110,103,32,99,97,114,100,0,78,111,32,100,105,114,109,110,103,114,0,100,105,114,109,110,103,114,32,101,114,114,111,114,0,67,101,114,116,105,102,105,99,97,116,101,32,114,101,118,111,107,101,100,0,78,111,32,67,82,76,32,107,110,111,119,110,0,67,82,76,32,116,111,111,32,111,108,100,0,76,105,110,101,32,116,111,111,32,108,111,110,103,0,78,111,116,32,116,114,117,115,116,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,108,101,100,0,66,97,100,32,67,65,32,99,101,114,116,105,102,105,99,97,116,101,0,67,101,114,116,105,102,105,99,97,116,101,32,101,120,112,105,114,101,100,0,67,101,114,116,105,102,105,99,97,116,101,32,116,111,111,32,121,111,117,110,103,0,85,110,115,117,112,112,111,114,116,101,100,32,99,101,114,116,105,102,105,99,97,116,101,0,85,110,107,110,111,119,110,32,83,45,101,120,112,114,101,115,115,105,111,110,0,85,110,115,117,112,112,111,114,116,101,100,32,112,114,111,116,101,99,116,105,111,110,0,67,111,114,114,117,112,116,101,100,32,112,114,111,116,101,99,116,105,111,110,0,65,109,98,105,103,117,111,117,115,32,110,97,109,101,0,67,97,114,100,32,101,114,114,111,114,0,67,97,114,100,32,114,101,115,101,116,32,114,101,113,117,105,114,101,100,0,67,97,114,100,32,114,101,109,111,118,101,100,0,73,110,118,97,108,105,100,32,99,97,114,100,0,67,97,114,100,32,110,111,116,32,112,114,101,115,101,110,116,0,78,111,32,80,75,67,83,49,53,32,97,112,112,108,105,99,97,116,105,111,110,0,78,111,116,32,99,111,110,102,105,114,109,101,100,0,67,111,110,102,105,103,117,114,97,116,105,111,110,32,101,114,114,111,114,0,78,111,32,112,111,108,105,99,121,32,109,97,116,99,104,0,73,110,118,97,108,105,100,32,105,110,100,101,120,0,73,110,118,97,108,105,100,32,73,68,0,78,111,32,83,109,97,114,116,67,97,114,100,32,100,97,101,109,111,110,0,83,109,97,114,116,67,97,114,100,32,100,97,101,109,111,110,32,101,114,114,111,114,0,85,110,115,117,112,112,111,114,116,101,100,32,112,114,111,116,111,99,111,108,0,66,97,100,32,80,73,78,32,109,101,116,104,111,100,0,67,97,114,100,32,110,111,116,32,105,110,105,116,105,97,108,105,122,101,100,0,85,110,115,117,112,112,111,114,116,101,100,32,111,112,101,114,97,116,105,111,110,0,87,114,111,110,103,32,107,101,121,32,117,115,97,103,101,0,78,111,116,104,105,110,103,32,102,111,117,110,100,0,87,114,111,110,103,32,98,108,111,98,32,116,121,112,101,0,77,105,115,115,105,110,103,32,118,97,108,117,101,0,72,97,114,100,119,97,114,101,32,112,114,111,98,108,101,109,0,80,73,78,32,98,108,111,99,107,101,100,0,67,111,110,100,105,116,105,111,110,115,32,111,102,32,117,115,101,32,110,111,116,32,115,97,116,105,115,102,105,101,100,0,80,73,78,115,32,97,114,101,32,110,111,116,32,115,121,110,99,101,100,0,73,110,118,97,108,105,100,32,67,82,76,0,66,69,82,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,66,69,82,0,69,108,101,109,101,110,116,32,110,111,116,32,102,111,117,110,100,0,73,100,101,110,116,105,102,105,101,114,32,110,111,116,32,102,111,117,110,100,0,73,110,118,97,108,105,100,32,116,97,103,0,73,110,118,97,108,105,100,32,108,101,110,103,116,104,0,73,110,118,97,108,105,100,32,107,101,121,32,105,110,102,111,0,85,110,101,120,112,101,99,116,101,100,32,116,97,103,0,78,111,116,32,68,69,82,32,101,110,99,111,100,101,100,0,78,111,32,67,77,83,32,111,98,106,101,99,116,0,73,110,118,97,108,105,100,32,67,77,83,32,111,98,106,101,99,116,0,85,110,107,110,111,119,110,32,67,77,83,32,111,98,106,101,99,116,0,85,110,115,117,112,112,111,114,116,101,100,32,67,77,83,32,111,98,106,101,99,116,0,85,110,115,117,112,112,111,114,116,101,100,32,101,110,99,111,100,105,110,103,0,85,110,115,117,112,112,111,114,116,101,100,32,67,77,83,32,118,101,114,115,105,111,110,0,85,110,107,110,111,119,110,32,97,108,103,111,114,105,116,104,109,0,73,110,118,97,108,105,100,32,99,114,121,112,116,111,32,101,110,103,105,110,101,0,80,117,98,108,105,99,32,107,101,121,32,110,111,116,32,116,114,117,115,116,101,100,0,68,101,99,114,121,112,116,105,111,110,32,102,97,105,108,101,100,0,75,101,121,32,101,120,112,105,114,101,100,0,83,105,103,110,97,116,117,114,101,32,101,120,112,105,114,101,100,0,69,110,99,111,100,105,110,103,32,112,114,111,98,108,101,109,0,73,110,118,97,108,105,100,32,115,116,97,116,101,0,68,117,112,108,105,99,97,116,101,100,32,118,97,108,117,101,0,77,105,115,115,105,110,103,32,97,99,116,105,111,110,0,65,83,78,46,49,32,109,111,100,117,108,101,32,110,111,116,32,102,111,117,110,100,0,73,110,118,97,108,105,100,32,79,73,68,32,115,116,114,105,110,103,0,73,110,118,97,108,105,100,32,116,105,109,101,0,73,110,118,97,108,105,100,32,67,82,76,32,111,98,106,101,99,116,0,85,110,115,117,112,112,111,114,116,101,100,32,67,82,76,32,118,101,114,115,105,111,110,0,73,110,118,97,108,105,100,32,99,101,114,116,105,102,105,99,97,116,101,32,111,98,106,101,99,116,0,85,110,107,110,111,119,110,32,110,97,109,101,0,65,32,108,111,99,97,108,101,32,102,117,110,99,116,105,111,110,32,102,97,105,108,101,100,0,78,111,116,32,108,111,99,107,101,100,0,80,114,111,116,111,99,111,108,32,118,105,111,108,97,116,105,111,110,0,73,110,118,97,108,105,100,32,77,65,67,0,73,110,118,97,108,105,100,32,114,101,113,117,101,115,116,0,85,110,107,110,111,119,110,32,101,120,116,101,110,115,105,111,110,0,85,110,107,110,111,119,110,32,99,114,105,116,105,99,97,108,32,101,120,116,101,110,115,105,111,110,0,76,111,99,107,101,100,0,85,110,107,110,111,119,110,32,111,112,116,105,111,110,0,85,110,107,110,111,119,110,32,99,111,109,109,97,110,100,0,78,111,116,32,111,112,101,114,97,116,105,111,110,97,108,0,78,111,32,112,97,115,115,112,104,114,97,115,101,32,103,105,118,101,110,0,78,111,32,80,73,78,32,103,105,118,101,110,0,78,111,116,32,101,110,97,98,108,101,100,0,78,111,32,99,114,121,112,116,111,32,101,110,103,105,110,101,0,77,105,115,115,105,110,103,32,107,101,121,0,84,111,111,32,109,97,110,121,32,111,98,106,101,99,116,115,0,76,105,109,105,116,32,114,101,97,99,104,101,100,0,78,111,116,32,105,110,105,116,105,97,108,105,122,101,100,0,77,105,115,115,105,110,103,32,105,115,115,117,101,114,32,99,101,114,116,105,102,105,99,97,116,101,0,78,111,32,107,101,121,115,101,114,118,101,114,32,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,101,108,108,105,112,116,105,99,32,99,117,114,118,101,0,85,110,107,110,111,119,110,32,101,108,108,105,112,116,105,99,32,99,117,114,118,101,0,68,117,112,108,105,99,97,116,101,100,32,107,101,121,0,65,109,98,105,103,117,111,117,115,32,114,101,115,117,108,116,0,78,111,32,99,114,121,112,116,111,32,99,111,110,116,101,120,116,0,87,114,111,110,103,32,99,114,121,112,116,111,32,99,111,110,116,101,120,116,0,66,97,100,32,99,114,121,112,116,111,32,99,111,110,116,101,120,116,0,67,111,110,102,108,105,99,116,32,105,110,32,116,104,101,32,99,114,121,112,116,111,32,99,111,110,116,101,120,116,0,66,114,111,107,101,110,32,112,117,98,108,105,99,32,107,101,121,0,66,114,111,107,101,110,32,115,101,99,114,101,116,32,107,101,121,0,73,110,118,97,108,105,100,32,77,65,67,32,97,108,103,111,114,105,116,104,109,0,79,112,101,114,97,116,105,111,110,32,102,117,108,108,121,32,99,97,110,99,101,108,108,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,121,101,116,32,102,105,110,105,115,104,101,100,0,66,117,102,102,101,114,32,116,111,111,32,115,104,111,114,116,0,73,110,118,97,108,105,100,32,108,101,110,103,116,104,32,115,112,101,99,105,102,105,101,114,32,105,110,32,83,45,101,120,112,114,101,115,115,105,111,110,0,83,116,114,105,110,103,32,116,111,111,32,108,111,110,103,32,105,110,32,83,45,101,120,112,114,101,115,115,105,111,110,0,85,110,109,97,116,99,104,101,100,32,112,97,114,101,110,116,104,101,115,101,115,32,105,110,32,83,45,101,120,112,114,101,115,115,105,111,110,0,83,45,101,120,112,114,101,115,115,105,111,110,32,110,111,116,32,99,97,110,111,110,105,99,97,108,0,66,97,100,32,99,104,97,114,97,99,116,101,114,32,105,110,32,83,45,101,120,112,114,101,115,115,105,111,110,0,66,97,100,32,113,117,111,116,97,116,105,111,110,32,105,110,32,83,45,101,120,112,114,101,115,115,105,111,110,0,90,101,114,111,32,112,114,101,102,105,120,32,105,110,32,83,45,101,120,112,114,101,115,115,105,111,110,0,78,101,115,116,101,100,32,100,105,115,112,108,97,121,32,104,105,110,116,115,32,105,110,32,83,45,101,120,112,114,101,115,115,105,111,110,0,85,110,109,97,116,99,104,101,100,32,100,105,115,112,108,97,121,32,104,105,110,116,115,0,85,110,101,120,112,101,99,116,101,100,32,114,101,115,101,114,118,101,100,32,112,117,110,99,116,117,97,116,105,111,110,32,105,110,32,83,45,101,120,112,114,101,115,115,105,111,110,0,66,97,100,32,104,101,120,97,100,101,99,105,109,97,108,32,99,104,97,114,97,99,116,101,114,32,105,110,32,83,45,101,120,112,114,101,115,115,105,111,110,0,79,100,100,32,104,101,120,97,100,101,99,105,109,97,108,32,110,117,109,98,101,114,115,32,105,110,32,83,45,101,120,112,114,101,115,115,105,111,110,0,66,97,100,32,111,99,116,97,108,32,99,104,97,114,97,99,116,101,114,32,105,110,32,83,45,101,120,112,114,101,115,115,105,111,110,0,76,101,103,97,99,121,32,107,101,121,0,82,101,113,117,101,115,116,32,116,111,111,32,115,104,111,114,116,0,82,101,113,117,101,115,116,32,116,111,111,32,108,111,110,103,0,79,98,106,101,99,116,32,105,115,32,105,110,32,116,101,114,109,105,110,97,116,105,111,110,32,115,116,97,116,101,0,78,111,32,99,101,114,116,105,102,105,99,97,116,101,32,99,104,97,105,110,0,67,101,114,116,105,102,105,99,97,116,101,32,105,115,32,116,111,111,32,108,97,114,103,101,0,73,110,118,97,108,105,100,32,114,101,99,111,114,100,0,84,104,101,32,77,65,67,32,100,111,101,115,32,110,111,116,32,118,101,114,105,102,121,0,85,110,101,120,112,101,99,116,101,100,32,109,101,115,115,97,103,101,0,67,111,109,112,114,101,115,115,105,111,110,32,111,114,32,100,101,99,111,109,112,114,101,115,115,105,111,110,32,102,97,105,108,101,100,0,65,32,99,111,117,110,116,101,114,32,119,111,117,108,100,32,119,114,97,112,0,70,97,116,97,108,32,97,108,101,114,116,32,109,101,115,115,97,103,101,32,114,101,99,101,105,118,101,100,0,78,111,32,99,105,112,104,101,114,32,97,108,103,111,114,105,116,104,109,0,77,105,115,115,105,110,103,32,99,108,105,101,110,116,32,99,101,114,116,105,102,105,99,97,116,101,0,67,108,111,115,101,32,110,111,116,105,102,105,99,97,116,105,111,110,32,114,101,99,101,105,118,101,100,0,84,105,99,107,101,116,32,101,120,112,105,114,101,100,0,66,97,100,32,116,105,99,107,101,116,0,85,110,107,110,111,119,110,32,105,100,101,110,116,105,116,121,0,66,97,100,32,99,101,114,116,105,102,105,99,97,116,101,32,109,101,115,115,97,103,101,32,105,110,32,104,97,110,100,115,104,97,107,101,0,66,97,100,32,99,101,114,116,105,102,105,99,97,116,101,32,114,101,113,117,101,115,116,32,109,101,115,115,97,103,101,32,105,110,32,104,97,110,100,115,104,97,107,101,0,66,97,100,32,99,101,114,116,105,102,105,99,97,116,101,32,118,101,114,105,102,121,32,109,101,115,115,97,103,101,32,105,110,32,104,97,110,100,115,104,97,107,101,0,66,97,100,32,99,104,97,110,103,101,32,99,105,112,104,101,114,32,109,101,115,115,115,97,103,101,32,105,110,32,104,97,110,100,115,104,97,107,101,0,66,97,100,32,99,108,105,101,110,116,32,104,101,108,108,111,32,109,101,115,115,97,103,101,32,105,110,32,104,97,110,100,115,104,97,107,101,0,66,97,100,32,115,101,114,118,101,114,32,104,101,108,108,111,32,109,101,115,115,97,103,101,32,105,110,32,104,97,110,100,115,104,97,107,101,0,66,97,100,32,115,101,114,118,101,114,32,104,101,108,108,111,32,100,111,110,101,32,109,101,115,115,97,103,101,32,105,110,32,104,97,110,115,104,97,107,101,0,66,97,100,32,102,105,110,105,115,104,101,100,32,109,101,115,115,97,103,101,32,105,110,32,104,97,110,100,115,104,97,107,101,0,66,97,100,32,115,101,114,118,101,114,32,107,101,121,32,101,120,99,104,97,110,103,101,32,109,101,115,115,97,103,101,32,105,110,32,104,97,110,100,115,104,97,107,101,0,66,97,100,32,99,108,105,101,110,116,32,107,101,121,32,101,120,99,104,97,110,103,101,32,109,101,115,115,97,103,101,32,105,110,32,104,97,110,100,115,104,97,107,101,0,66,111,103,117,115,32,115,116,114,105,110,103,0,70,111,114,98,105,100,100,101,110,0,75,101,121,32,100,105,115,97,98,108,101,100,0,78,111,116,32,112,111,115,115,105,98,108,101,32,119,105,116,104,32,97,32,99,97,114,100,32,98,97,115,101,100,32,107,101,121,0,73,110,118,97,108,105,100,32,108,111,99,107,32,111,98,106,101,99,116,0,71,101,110,101,114,97,108,32,73,80,67,32,101,114,114,111,114,0,73,80,67,32,97,99,99,101,112,116,32,99,97,108,108,32,102,97,105,108,101,100,0,73,80,67,32,99,111,110,110,101,99,116,32,99,97,108,108,32,102,97,105,108,101,100,0,73,110,118,97,108,105,100,32,73,80,67,32,114,101,115,112,111,110,115,101,0,73,110,118,97,108,105,100,32,118,97,108,117,101,32,112,97,115,115,101,100,32,116,111,32,73,80,67,0,73,110,99,111,109,112,108,101,116,101,32,108,105,110,101,32,112,97,115,115,101,100,32,116,111,32,73,80,67,0,76,105,110,101,32,112,97,115,115,101,100,32,116,111,32,73,80,67,32,116,111,111,32,108,111,110,103,0,78,101,115,116,101,100,32,73,80,67,32,99,111,109,109,97,110,100,115,0,78,111,32,100,97,116,97,32,99,97,108,108,98,97,99,107,32,105,110,32,73,80,67,0,78,111,32,105,110,113,117,105,114,101,32,99,97,108,108,98,97,99,107,32,105,110,32,73,80,67,0,78,111,116,32,97,110,32,73,80,67,32,115,101,114,118,101,114,0,78,111,116,32,97,110,32,73,80,67,32,99,108,105,101,110,116,0,80,114,111,98,108,101,109,32,115,116,97,114,116,105,110,103,32,73,80,67,32,115,101,114,118,101,114,0,73,80,67,32,114,101,97,100,32,101,114,114,111,114,0,73,80,67,32,119,114,105,116,101,32,101,114,114,111,114,0,84,111,111,32,109,117,99,104,32,100,97,116,97,32,102,111,114,32,73,80,67,32,108,97,121,101,114,0,85,110,101,120,112,101,99,116,101,100,32,73,80,67,32,99,111,109,109,97,110,100,0,85,110,107,110,111,119,110,32,73,80,67,32,99,111,109,109,97,110,100,0,73,80,67,32,115,121,110,116,97,120,32,101,114,114,111,114,0,73,80,67,32,99,97,108,108,32,104,97,115,32,98,101,101,110,32,99,97,110,99,101,108,108,101,100,0,78,111,32,105,110,112,117,116,32,115,111,117,114,99,101,32,102,111,114,32,73,80,67,0,78,111,32,111,117,116,112,117,116,32,115,111,117,114,99,101,32,102,111,114,32,73,80,67,0,73,80,67,32,112,97,114,97,109,101,116,101,114,32,101,114,114,111,114,0,85,110,107,110,111,119,110,32,73,80,67,32,105,110,113,117,105,114,101,0,71,101,110,101,114,97,108,32,76,68,65,80,32,101,114,114,111,114,0,71,101,110,101,114,97,108,32,76,68,65,80,32,97,116,116,114,105,98,117,116,101,32,101,114,114,111,114,0,71,101,110,101,114,97,108,32,76,68,65,80,32,110,97,109,101,32,101,114,114,111,114,0,71,101,110,101,114,97,108,32,76,68,65,80,32,115,101,99,117,114,105,116,121,32,101,114,114,111,114,0,71,101,110,101,114,97,108,32,76,68,65,80,32,115,101,114,118,105,99,101,32,101,114,114,111,114,0,71,101,110,101,114,97,108,32,76,68,65,80,32,117,112,100,97,116,101,32,101,114,114,111,114,0,69,120,112,101,114,105,109,101,110,116,97,108,32,76,68,65,80,32,101,114,114,111,114,32,99,111,100,101,0,80,114,105,118,97,116,101,32,76,68,65,80,32,101,114,114,111,114,32,99,111,100,101,0,79,116,104,101,114,32,103,101,110,101,114,97,108,32,76,68,65,80,32,101,114,114,111,114,0,76,68,65,80,32,99,111,110,110,101,99,116,105,110,103,32,102,97,105,108,101,100,32,40,88,41,0,76,68,65,80,32,114,101,102,101,114,114,97,108,32,108,105,109,105,116,32,101,120,99,101,101,100,101,100,0,76,68,65,80,32,99,108,105,101,110,116,32,108,111,111,112,0,78,111,32,76,68,65,80,32,114,101,115,117,108,116,115,32,114,101,116,117,114,110,101,100,0,76,68,65,80,32,99,111,110,116,114,111,108,32,110,111,116,32,102,111,117,110,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,76,68,65,80,0,76,68,65,80,32,99,111,110,110,101,99,116,32,101,114,114,111,114,0,79,117,116,32,111,102,32,109,101,109,111,114,121,32,105,110,32,76,68,65,80,0,66,97,100,32,112,97,114,97,109,101,116,101,114,32,116,111,32,97,110,32,76,68,65,80,32,114,111,117,116,105,110,101,0,85,115,101,114,32,99,97,110,99,101,108,108,101,100,32,76,68,65,80,32,111,112,101,114,97,116,105,111,110,0,66,97,100,32,76,68,65,80,32,115,101,97,114,99,104,32,102,105,108,116,101,114,0,85,110,107,110,111,119,110,32,76,68,65,80,32,97,117,116,104,101,110,116,105,99,97,116,105,111,110,32,109,101,116,104,111,100,0,84,105,109,101,111,117,116,32,105,110,32,76,68,65,80,0,76,68,65,80,32,100,101,99,111,100,105,110,103,32,101,114,114,111,114,0,76,68,65,80,32,101,110,99,111,100,105,110,103,32,101,114,114,111,114,0,76,68,65,80,32,108,111,99,97,108,32,101,114,114,111,114,0,67,97,110,110,111,116,32,99,111,110,116,97,99,116,32,76,68,65,80,32,115,101,114,118,101,114,0,76,68,65,80,32,115,117,99,99,101,115,115,0,76,68,65,80,32,111,112,101,114,97,116,105,111,110,115,32,101,114,114,111,114,0,76,68,65,80,32,112,114,111,116,111,99,111,108,32,101,114,114,111,114,0,84,105,109,101,32,108,105,109,105,116,32,101,120,99,101,101,100,101,100,32,105,110,32,76,68,65,80,0,83,105,122,101,32,108,105,109,105,116,32,101,120,99,101,101,100,101,100,32,105,110,32,76,68,65,80,0,76,68,65,80,32,99,111,109,112,97,114,101,32,102,97,108,115,101,0,76,68,65,80,32,99,111,109,112,97,114,101,32,116,114,117,101,0,76,68,65,80,32,97,117,116,104,101,110,116,105,99,97,116,105,111,110,32,109,101,116,104,111,100,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,116,114,111,110,103,40,101,114,41,32,76,68,65,80,32,97,117,116,104,101,110,116,105,99,97,116,105,111,110,32,114,101,113,117,105,114,101,100,0,80,97,114,116,105,97,108,32,76,68,65,80,32,114,101,115,117,108,116,115,43,114,101,102,101,114,114,97,108,32,114,101,99,101,105,118,101,100,0,76,68,65,80,32,114,101,102,101,114,114,97,108,0,65,100,109,105,110,105,115,116,114,97,116,105,118,101,32,76,68,65,80,32,108,105,109,105,116,32,101,120,99,101,101,100,101,100,0,67,114,105,116,105,99,97,108,32,76,68,65,80,32,101,120,116,101,110,115,105,111,110,32,105,115,32,117,110,97,118,97,105,108,97,98,108,101,0,67,111,110,102,105,100,101,110,116,105,97,108,105,116,121,32,114,101,113,117,105,114,101,100,32,98,121,32,76,68,65,80,0,76,68,65,80,32,83,65,83,76,32,98,105,110,100,32,105,110,32,112,114,111,103,114,101,115,115,0,78,111,32,115,117,99,104,32,76,68,65,80,32,97,116,116,114,105,98,117,116,101,0,85,110,100,101,102,105,110,101,100,32,76,68,65,80,32,97,116,116,114,105,98,117,116,101,32,116,121,112,101,0,73,110,97,112,112,114,111,112,114,105,97,116,101,32,109,97,116,99,104,105,110,103,32,105,110,32,76,68,65,80,0,67,111,110,115,116,114,97,105,110,116,32,118,105,111,108,97,116,105,111,110,32,105,110,32,76,68,65,80,0,76,68,65,80,32,116,121,112,101,32,111,114,32,118,97,108,117,101,32,101,120,105,115,116,115,0,73,110,118,97,108,105,100,32,115,121,110,116,97,120,32,105,110,32,76,68,65,80,0,78,111,32,115,117,99,104,32,76,68,65,80,32,111,98,106,101,99,116,0,76,68,65,80,32,97,108,105,97,115,32,112,114,111,98,108,101,109,0,73,110,118,97,108,105,100,32,68,78,32,115,121,110,116,97,120,32,105,110,32,76,68,65,80,0,76,68,65,80,32,101,110,116,114,121,32,105,115,32,97,32,108,101,97,102,0,76,68,65,80,32,97,108,105,97,115,32,100,101,114,101,102,101,114,101,110,99,105,110,103,32,112,114,111,98,108,101,109,0,76,68,65,80,32,112,114,111,120,121,32,97,117,116,104,111,114,105,122,97,116,105,111,110,32,102,97,105,108,117,114,101,32,40,88,41,0,73,110,97,112,112,114,111,112,114,105,97,116,101,32,76,68,65,80,32,97,117,116,104,101,110,116,105,99,97,116,105,111,110,0,73,110,118,97,108,105,100,32,76,68,65,80,32,99,114,101,100,101,110,116,105,97,108,115,0,73,110,115,117,102,102,105,99,105,101,110,116,32,97,99,99,101,115,115,32,102,111,114,32,76,68,65,80,0,76,68,65,80,32,115,101,114,118,101,114,32,105,115,32,98,117,115,121,0,76,68,65,80,32,115,101,114,118,101,114,32,105,115,32,117,110,97,118,97,105,108,97,98,108,101,0,76,68,65,80,32,115,101,114,118,101,114,32,105,115,32,117,110,119,105,108,108,105,110,103,32,116,111,32,112,101,114,102,111,114,109,0,76,111,111,112,32,100,101,116,101,99,116,101,100,32,98,121,32,76,68,65,80,0,76,68,65,80,32,110,97,109,105,110,103,32,118,105,111,108,97,116,105,111,110,0,76,68,65,80,32,111,98,106,101,99,116,32,99,108,97,115,115,32,118,105,111,108,97,116,105,111,110,0,76,68,65,80,32,111,112,101,114,97,116,105,111,110,32,110,111,116,32,97,108,108,111,119,101,100,32,111,110,32,110,111,110,45,108,101,97,102,0,76,68,65,80,32,111,112,101,114,97,116,105,111,110,32,110,111,116,32,97,108,108,111,119,101,100,32,111,110,32,82,68,78,0,65,108,114,101,97,100,121,32,101,120,105,115,116,115,32,40,76,68,65,80,41,0,67,97,110,110,111,116,32,109,111,100,105,102,121,32,76,68,65,80,32,111,98,106,101,99,116,32,99,108,97,115,115,0,76,68,65,80,32,114,101,115,117,108,116,115,32,116,111,111,32,108,97,114,103,101,0,76,68,65,80,32,111,112,101,114,97,116,105,111,110,32,97,102,102,101,99,116,115,32,109,117,108,116,105,112,108,101,32,68,83,65,115,0,86,105,114,116,117,97,108,32,76,68,65,80,32,108,105,115,116,32,118,105,101,119,32,101,114,114,111,114,0,79,116,104,101,114,32,76,68,65,80,32,101,114,114,111,114,0,82,101,115,111,117,114,99,101,115,32,101,120,104,97,117,115,116,101,100,32,105,110,32,76,67,85,80,0,83,101,99,117,114,105,116,121,32,118,105,111,108,97,116,105,111,110,32,105,110,32,76,67,85,80,0,73,110,118,97,108,105,100,32,100,97,116,97,32,105,110,32,76,67,85,80,0,85,110,115,117,112,112,111,114,116,101,100,32,115,99,104,101,109,101,32,105,110,32,76,67,85,80,0,82,101,108,111,97,100,32,114,101,113,117,105,114,101,100,32,105,110,32,76,67,85,80,0,76,68,65,80,32,99,97,110,99,101,108,108,101,100,0,78,111,32,76,68,65,80,32,111,112,101,114,97,116,105,111,110,32,116,111,32,99,97,110,99,101,108,0,84,111,111,32,108,97,116,101,32,116,111,32,99,97,110,99,101,108,32,76,68,65,80,0,67,97,110,110,111,116,32,99,97,110,99,101,108,32,76,68,65,80,0,76,68,65,80,32,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,0,80,114,111,120,105,101,100,32,97,117,116,104,111,114,105,122,97,116,105,111,110,32,100,101,110,105,101,100,32,98,121,32,76,68,65,80,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,49,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,50,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,51,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,52,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,53,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,54,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,55,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,56,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,57,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,49,48,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,49,49,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,49,50,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,49,51,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,49,52,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,49,53,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,49,54,0,83,121,115,116,101,109,32,101,114,114,111,114,32,119,47,111,32,101,114,114,110,111,0,85,110,107,110,111,119,110,32,115,121,115,116,101,109,32,101,114,114,111,114,0,69,110,100,32,111,102,32,102,105,108,101,0,85,110,107,110,111,119,110,32,101,114,114,111,114,32,99,111,100,101,0,97,109,111,117,110,116,46,99,0,84,65,76,69,82,95,97,109,111,117,110,116,95,99,109,112,0,84,65,76,69,82,95,97,109,111,117,110,116,95,115,117,98,116,114,97,99,116,0,84,65,76,69,82,95,97,109,111,117,110,116,95,97,100,100,0,49,46,54,46,49,0,108,105,98,103,99,114,121,112,116,32,118,101,114,115,105,111,110,32,109,105,115,109,97,116,99,104,10,0,70,97,116,97,108,32,101,114,114,111,114,32,105,110,32,108,105,98,103,99,114,121,112,116,58,32,37,115,10,0,99,114,121,112,116,111,46,99,0,65,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,32,97,116,32,37,115,58,37,100,46,10,0,116,97,108,101,114,45,99,111,105,110,45,100,101,114,105,118,97,116,105,111,110,0,84,65,76,69,82,95,115,101,116,117,112,95,102,114,101,115,104,95,99,111,105,110,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,255,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+51200);allocate([24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,4,7,3,6,5,0,18,17,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,17,34,35,36,17,37,38,39,40,41,42,43,44,17,45,46,47,16,16,48,16,16,16,16,16,16,16,49,50,51,16,52,53,16,16,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,54,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,55,17,17,17,17,56,17,57,58,59,60,61,62,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,63,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,64,65,17,66,67,68,69,70,71,72,73,16,16,16,74,75,76,77,78,16,16,16,79,80,16,16,16,16,81,16,16,16,16,16,16,16,16,16,17,17,17,82,83,16,16,16,16,16,16,16,16,16,16,16,17,17,17,17,84,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,17,85,16,16,16,16,86,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,87,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,88,89,90,91,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,92,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,254,255,255,7,254,255,255,7,0,0,0,0,0,4,32,4,255,255,127,255,255,255,127,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,195,255,3,0,31,80,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,223,60,64,215,255,255,251,255,255,255,255,255,255,255,255,255,191,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,3,252,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,254,255,255,255,127,2,254,255,255,255,255,0,0,0,0,0,255,191,182,0,255,255,255,7,7,0,0,0,255,7,255,255,255,255,255,255,255,254,255,195,255,255,255,255,255,255,255,255,255,255,255,255,239,31,254,225,255,159,0,0,255,255,255,255,255,255,0,224,255,255,255,255,255,255,255,255,255,255,255,255,3,0,255,255,255,255,255,7,48,4,255,255,255,252,255,31,0,0,255,255,255,1,0,0,0,0,0,0,0,0,253,31,0,0,0,0,0,0,240,3,255,127,255,255,255,255,255,255,255,239,255,223,225,255,207,255,254,254,238,159,249,255,255,253,197,227,159,89,128,176,207,255,3,0,238,135,249,255,255,253,109,195,135,25,2,94,192,255,63,0,238,191,251,255,255,253,237,227,191,27,1,0,207,255,0,0,238,159,249,255,255,253,237,227,159,25,192,176,207,255,2,0,236,199,61,214,24,199,255,195,199,29,129,0,192,255,0,0,238,223,253,255,255,253,239,227,223,29,96,3,207,255,0,0,236,223,253,255,255,253,239,227,223,29,96,64,207,255,6,0,236,223,253,255,255,255,255,231,223,93,128,0,207,255,0,252,236,255,127,252,255,255,251,47,127,128,95,255,0,0,12,0,254,255,255,255,255,127,255,7,63,32,255,3,0,0,0,0,150,37,240,254,174,236,255,59,95,32,255,243,0,0,0,0,1,0,0,0,255,3,0,0,255,254,255,255,255,31,254,255,3,255,255,254,255,255,255,31,0,0,0,0,0,0,0,0,255,255,255,255,255,255,127,249,255,3,255,255,231,193,255,255,127,64,255,51,255,255,255,255,191,32,255,255,255,255,255,247,255,255,255,255,255,255,255,255,255,61,127,61,255,255,255,255,255,61,255,255,255,255,61,127,61,255,127,255,255,255,255,255,255,255,61,255,255,255,255,255,255,255,255,135,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,31,0,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,159,255,255,254,255,255,7,255,255,255,255,255,255,255,255,255,199,1,0,255,223,15,0,255,255,15,0,255,255,15,0,255,223,13,0,255,255,255,255,255,255,207,255,255,1,128,16,255,3,0,0,0,0,255,3,255,255,255,255,255,255,255,255,255,255,255,0,255,255,255,255,255,7,255,255,255,255,255,255,255,255,63,0,255,255,255,31,255,15,255,1,192,255,255,255,255,63,31,0,255,255,255,255,255,15,255,255,255,3,255,3,0,0,0,0,255,255,255,15,255,255,255,255,255,255,255,127,254,255,31,0,255,3,255,3,128,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,239,255,239,15,255,3,0,0,0,0,255,255,255,255,255,243,255,255,255,255,255,255,191,255,3,0,255,255,255,255,255,255,63,0,255,227,255,255,255,255,255,63,0,0,0,0,0,0,0,0,0,0,0,0,0,222,111,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,63,63,255,255,255,255,63,63,255,170,255,255,255,63,255,255,255,255,255,255,223,95,220,31,207,15,255,31,220,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,128,0,0,255,31,0,0,0,0,0,0,0,0,0,0,0,0,132,252,47,62,80,189,255,243,224,67,0,0,255,255,255,255,255,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,192,255,255,255,255,255,255,3,0,0,255,255,255,255,255,127,255,255,255,255,255,127,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,31,120,12,0,255,255,255,255,191,32,255,255,255,255,255,255,255,128,0,0,255,255,127,0,127,127,127,127,127,127,127,127,255,255,255,255,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,0,0,0,254,3,62,31,254,255,255,255,255,255,255,255,255,255,127,224,254,255,255,255,255,255,255,255,255,255,255,247,224,255,255,255,255,63,254,255,255,255,255,255,255,255,255,255,255,127,0,0,255,255,255,7,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,63,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,31,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,31,0,0,0,0,0,0,0,0,255,255,255,255,255,63,255,31,255,255,255,15,0,0,255,255,255,255,255,127,240,143,255,255,255,128,255,255,255,255,255,255,255,255,255,255,0,0,0,0,128,255,252,255,255,255,255,255,255,255,255,255,255,255,255,121,15,0,255,7,0,0,0,0,0,0,0,0,0,255,187,247,255,255,255,0,0,0,255,255,255,255,255,255,15,0,255,255,255,255,255,255,255,255,15,0,255,3,0,0,252,8,255,255,255,255,255,7,255,255,255,255,7,0,255,255,255,31,255,255,255,255,255,255,247,255,0,128,255,3,0,0,0,0,255,255,255,255,255,255,127,0,255,63,255,3,255,255,127,4,255,255,255,255,255,255,255,127,5,0,0,56,255,255,60,0,126,126,126,0,127,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,7,255,3,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,15,0,255,255,127,248,255,255,255,255,255,15,255,255,255,255,255,255,255,255,255,255,255,255,255,63,255,255,255,255,255,255,255,255,255,255,255,255,255,3,0,0,0,0,127,0,248,224,255,253,127,95,219,255,255,255,255,255,255,255,255,255,255,255,255,255,3,0,0,0,248,255,255,255,255,255,255,255,255,255,255,255,255,63,0,0,255,255,255,255,255,255,255,255,252,255,255,255,255,255,255,0,0,0,0,0,255,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,31,0,0,255,3,254,255,255,7,254,255,255,7,192,255,255,255,255,255,255,255,255,255,255,127,252,252,252,28,0,0,0,0,255,239,255,255,127,255,255,183,255,63,255,63,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,7,0,0,0,0,0,0,0,0,255,255,255,255,255,255,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,31,255,255,255,255,255,255,1,0,0,0,0,0,255,255,255,127,0,0,255,255,255,7,0,0,0,0,0,0,255,255,255,63,255,255,255,255,15,255,62,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,63,255,3,0,0,0,0,0,0,0,0,0,0,63,253,255,255,255,255,191,145,255,255,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,63,0,255,255,255,3,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,192,0,0,0,0,0,0,0,0,111,240,239,254,255,255,15,0,0,0,0,0,255,255,255,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,63,0,255,255,63,0,255,255,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,63,0,0,0,192,255,0,0,252,255,255,255,255,255,255,1,0,0,255,255,255,1,255,3,255,255,255,255,255,255,199,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,30,0,255,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,63,0,255,3,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,31,0,255,255,255,255,255,127,0,0,248,255,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,223,100,222,255,235,239,255,255,255,255,255,255,255,191,231,223,223,255,255,255,123,95,252,253,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,63,255,255,255,253,255,255,247,255,255,255,247,255,255,223,255,255,255,223,255,255,127,255,255,255,127,255,255,255,253,255,255,255,253,255,255,247,207,255,255,255,255,255,255,239,255,255,255,150,254,247,10,132,234,150,170,150,247,247,94,255,251,255,15,238,251,255,15,0,0,0,0,0,0,0,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,46,0,18,16,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,16,16,34,35,16,36,37,38,39,40,41,42,43,16,44,45,46,17,47,48,17,17,49,17,17,17,50,51,52,53,54,55,56,57,17,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,58,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,59,16,60,61,62,63,64,65,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,66,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,67,16,16,68,16,69,70,71,16,72,16,73,16,16,16,16,74,75,76,77,16,16,78,16,79,80,16,16,16,16,81,16,16,16,16,16,16,16,16,16,16,16,16,16,82,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,83,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,84,85,86,87,16,16,88,89,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,90,16,91,92,93,94,95,96,97,98,16,16,16,16,16,16,16,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,254,255,0,252,1,0,0,248,1,0,0,120,0,0,0,0,255,251,223,251,0,0,128,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,60,0,252,255,224,175,255,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,32,64,176,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252,0,0,0,0,0,134,254,255,255,255,0,64,73,0,0,0,0,0,24,0,223,255,0,200,0,0,0,0,0,0,0,1,0,60,0,0,0,0,0,0,0,0,0,0,0,0,16,224,1,30,0,96,255,191,0,0,0,0,0,0,255,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,207,3,0,0,0,3,0,32,255,127,0,0,0,78,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252,0,0,0,0,0,0,0,0,0,16,0,32,30,0,48,0,1,0,0,0,0,0,0,0,0,16,0,32,0,0,0,0,252,15,0,0,0,0,0,0,0,16,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,32,0,0,0,0,3,0,0,0,0,0,0,0,0,16,0,32,0,0,0,0,253,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,255,7,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,255,0,0,0,0,0,0,0,16,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,63,2,0,0,0,0,0,0,0,0,0,4,0,0,0,0,16,0,0,0,0,0,0,128,0,128,192,223,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,31,0,0,0,0,0,0,254,255,255,255,0,252,255,255,0,0,0,0,0,0,0,0,252,0,0,0,0,0,0,192,255,223,255,7,0,0,0,0,0,0,0,0,0,0,128,6,0,252,0,0,24,62,0,0,128,191,0,204,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,96,255,255,255,31,0,0,255,3,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,0,0,1,0,0,24,0,0,0,0,0,0,0,0,0,56,0,0,0,0,16,0,0,0,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,0,0,254,127,47,0,0,255,3,255,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,196,255,255,255,255,0,0,0,192,0,0,0,0,0,0,0,0,1,0,224,159,0,0,0,0,127,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,16,0,0,252,255,255,255,31,0,0,0,0,0,12,0,0,0,0,0,0,64,0,12,240,0,0,0,0,0,0,192,248,0,0,0,0,0,0,0,192,0,0,0,0,0,0,0,0,255,0,255,255,255,33,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,127,0,0,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,3,224,0,224,0,224,0,96,128,248,255,255,255,252,255,255,255,255,255,127,31,252,241,127,255,127,0,0,255,255,255,3,0,0,255,255,255,255,1,0,123,3,208,193,175,66,0,12,31,188,255,255,0,0,0,0,0,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,15,0,255,255,255,255,127,0,0,0,255,7,0,0,255,255,255,255,255,255,255,255,255,255,63,0,0,0,0,0,0,252,255,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,31,255,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,135,3,254,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,127,255,15,0,0,0,0,0,0,0,0,255,255,255,251,255,255,255,255,255,255,255,255,255,255,15,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,63,0,0,0,255,15,30,255,255,255,1,252,193,224,0,0,0,0,0,0,0,0,0,0,0,30,1,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,15,0,0,0,255,255,255,127,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,127,0,0,0,0,0,0,192,0,224,0,0,0,0,0,0,0,0,0,0,0,128,15,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,255,255,127,0,3,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,68,8,0,0,0,15,255,3,0,0,0,0,0,0,240,0,0,0,0,0,0,0,0,0,16,192,0,0,255,255,3,7,0,0,0,0,0,248,0,0,0,0,8,128,0,0,0,0,0,0,0,0,0,0,8,0,255,63,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,0,0,128,11,0,0,0,0,0,0,0,128,2,0,0,192,0,0,67,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,0,0,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,128,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252,255,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,255,255,255,3,127,0,255,255,255,255,247,255,127,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,254,255,0,252,1,0,0,248,1,0,0,248,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,127,0,48,135,255,255,255,255,255,143,255,0,0,0,0,0,0,224,255,255,7,255,15,0,0,0,0,0,0,255,255,255,255,255,63,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,143,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,135,255,0,255,1,0,0,0,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,254,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,63,252,255,63,0,0,0,3,0,0,0,0,0,0,254,3,0,0,0,0,0,0,0,0,0,0,0,0,0,24,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,225,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,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,7,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,63,0,255,255,255,255,127,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,63,0,0,0,0,255,255,255,255,255,255,255,255,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,127,0,255,255,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,8,0,0,0,8,0,0,32,0,0,0,32,0,0,128,0,0,0,128,0,0,0,2,0,0,0,2,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,255,255,255,255,255,15,255,255,255,255,255,255,255,255,255,255,255,255,15,0,255,127,254,127,254,255,254,255,0,0,0,0,255,7,255,255,255,127,255,255,255,255,255,255,255,15,255,255,255,255,255,7,0,0,0,0,0,0,0,0,192,255,255,255,7,0,255,255,255,255,255,7,255,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,191,255,255,255,255,255,255,255,255,31,255,255,15,0,255,255,255,255,223,7,0,0,255,255,1,0,255,255,255,255,255,255,255,127,253,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,30,255,255,255,255,255,255,255,63,15,0,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,255,255,255,255,255,255,255,255,225,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,63,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,119,97,0,47,112,114,111,99,47,115,101,108,102,47,102,100,47,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+61440);var tempDoublePtr=STATICTOP;STATICTOP+=16;assert(tempDoublePtr%8==0);var PROCINFO={ppid:1,pid:42,sid:42,pgid:42};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};var ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"};function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;else Module.printErr("failed to set errno from JS");return value}var PATH={splitPath:(function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)}),normalizeArray:(function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up--;up){parts.unshift("..")}}return parts}),normalize:(function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path}),dirname:(function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir}),basename:(function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)}),extname:(function(path){return PATH.splitPath(path)[3]}),join:(function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))}),join2:(function(l,r){return PATH.normalize(l+"/"+r)}),resolve:(function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter((function(p){return!!p})),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."}),relative:(function(from,to){from=PATH.resolve(from).substr(1);to=PATH.resolve(to).substr(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!=="")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push("..")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/")})};var TTY={ttys:[],init:(function(){}),shutdown:(function(){}),register:(function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)}),stream_ops:{open:(function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}stream.tty=tty;stream.seekable=false}),close:(function(stream){stream.tty.ops.flush(stream.tty)}),flush:(function(stream){stream.tty.ops.flush(stream.tty)}),read:(function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(ERRNO_CODES.ENXIO)}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty)}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(ERRNO_CODES.EAGAIN)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead}),write:(function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(ERRNO_CODES.ENXIO)}for(var i=0;i<length;i++){try{stream.tty.ops.put_char(stream.tty,buffer[offset+i])}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}}if(length){stream.node.timestamp=Date.now()}return i})},default_tty_ops:{get_char:(function(tty){if(!tty.input.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=new Buffer(BUFSIZE);var bytesRead=0;var isPosixPlatform=process.platform!="win32";var fd=process.stdin.fd;if(isPosixPlatform){var usingDevice=false;try{fd=fs.openSync("/dev/stdin","r");usingDevice=true}catch(e){}}try{bytesRead=fs.readSync(fd,buf,0,BUFSIZE,null)}catch(e){if(e.toString().indexOf("EOF")!=-1)bytesRead=0;else throw e}if(usingDevice){fs.closeSync(fd)}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()}),put_char:(function(tty,val){if(val===null||val===10){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}})},default_tty1_ops:{put_char:(function(tty,val){if(val===null||val===10){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}})}};var MEMFS={ops_table:null,mount:(function(mount){return MEMFS.createNode(null,"/",16384|511,0)}),createNode:(function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node}),getFileDataAsRegularArray:(function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;i<node.usedBytes;++i)arr.push(node.contents[i]);return arr}return node.contents}),getFileDataAsTypedArray:(function(node){if(!node.contents)return new Uint8Array;if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)}),expandFileStorage:(function(node,newCapacity){if(node.contents&&node.contents.subarray&&newCapacity>node.contents.length){node.contents=MEMFS.getFileDataAsRegularArray(node);node.usedBytes=node.contents.length}if(!node.contents||node.contents.subarray){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)|0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return}if(!node.contents&&newCapacity>0)node.contents=[];while(node.contents.length<newCapacity)node.contents.push(0)}),resizeFileStorage:(function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0;return}if(!node.contents||node.contents.subarray){var oldContents=node.contents;node.contents=new Uint8Array(new ArrayBuffer(newSize));if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize;return}if(!node.contents)node.contents=[];if(node.contents.length>newSize)node.contents.length=newSize;else while(node.contents.length<newSize)node.contents.push(0);node.usedBytes=newSize}),node_ops:{getattr:(function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr}),setattr:(function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}}),lookup:(function(parent,name){throw FS.genericErrors[ERRNO_CODES.ENOENT]}),mknod:(function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)}),rename:(function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}}}delete old_node.parent.contents[old_node.name];old_node.name=new_name;new_dir.contents[new_name]=old_node;old_node.parent=new_dir}),unlink:(function(parent,name){delete parent.contents[name]}),rmdir:(function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}delete parent.contents[name]}),readdir:(function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries}),symlink:(function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node}),readlink:(function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return node.link})},stream_ops:{read:(function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);assert(size>=0);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i<size;i++)buffer[offset+i]=contents[position+i]}return size}),write:(function(stream,buffer,offset,length,position,canOwn){if(!length)return 0;var node=stream.node;node.timestamp=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){assert(position===0,"canOwn must imply no weird position inside the file");node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length}else if(node.usedBytes===0&&position===0){node.contents=new Uint8Array(buffer.subarray(offset,offset+length));node.usedBytes=length;return length}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray)node.contents.set(buffer.subarray(offset,offset+length),position);else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i]}}node.usedBytes=Math.max(node.usedBytes,position+length);return length}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position}),allocate:(function(stream,offset,length){MEMFS.expandFileStorage(stream.node,offset+length);stream.node.usedBytes=Math.max(stream.node.usedBytes,offset+length)}),mmap:(function(stream,buffer,offset,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&(contents.buffer===buffer||contents.buffer===buffer.buffer)){allocated=false;ptr=contents.byteOffset}else{if(position>0||position+length<stream.node.usedBytes){if(contents.subarray){contents=contents.subarray(position,position+length)}else{contents=Array.prototype.slice.call(contents,position,position+length)}}allocated=true;ptr=_malloc(length);if(!ptr){throw new FS.ErrnoError(ERRNO_CODES.ENOMEM)}buffer.set(contents,ptr)}return{ptr:ptr,allocated:allocated}}),msync:(function(stream,buffer,offset,length,mmapFlags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}if(mmapFlags&2){return 0}var bytesWritten=MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0})}};var IDBFS={dbs:{},indexedDB:(function(){if(typeof indexedDB!=="undefined")return indexedDB;var ret=null;if(typeof window==="object")ret=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB;assert(ret,"IDBFS used, but indexedDB not supported");return ret}),DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:(function(mount){return MEMFS.mount.apply(null,arguments)}),syncfs:(function(mount,populate,callback){IDBFS.getLocalSet(mount,(function(err,local){if(err)return callback(err);IDBFS.getRemoteSet(mount,(function(err,remote){if(err)return callback(err);var src=populate?remote:local;var dst=populate?local:remote;IDBFS.reconcile(src,dst,callback)}))}))}),getDB:(function(name,callback){var db=IDBFS.dbs[name];if(db){return callback(null,db)}var req;try{req=IDBFS.indexedDB().open(name,IDBFS.DB_VERSION)}catch(e){return callback(e)}if(!req){return callback("Unable to connect to IndexedDB")}req.onupgradeneeded=(function(e){var db=e.target.result;var transaction=e.target.transaction;var fileStore;if(db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)){fileStore=transaction.objectStore(IDBFS.DB_STORE_NAME)}else{fileStore=db.createObjectStore(IDBFS.DB_STORE_NAME)}if(!fileStore.indexNames.contains("timestamp")){fileStore.createIndex("timestamp","timestamp",{unique:false})}});req.onsuccess=(function(){db=req.result;IDBFS.dbs[name]=db;callback(null,db)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),getLocalSet:(function(mount,callback){var entries={};function isRealDir(p){return p!=="."&&p!==".."}function toAbsolute(root){return(function(p){return PATH.join2(root,p)})}var check=FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint));while(check.length){var path=check.pop();var stat;try{stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){check.push.apply(check,FS.readdir(path).filter(isRealDir).map(toAbsolute(path)))}entries[path]={timestamp:stat.mtime}}return callback(null,{type:"local",entries:entries})}),getRemoteSet:(function(mount,callback){var entries={};IDBFS.getDB(mount.mountpoint,(function(err,db){if(err)return callback(err);var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readonly");transaction.onerror=(function(e){callback(this.error);e.preventDefault()});var store=transaction.objectStore(IDBFS.DB_STORE_NAME);var index=store.index("timestamp");index.openKeyCursor().onsuccess=(function(event){var cursor=event.target.result;if(!cursor){return callback(null,{type:"remote",db:db,entries:entries})}entries[cursor.primaryKey]={timestamp:cursor.key};cursor.continue()})}))}),loadLocalEntry:(function(path,callback){var stat,node;try{var lookup=FS.lookupPath(path);node=lookup.node;stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){return callback(null,{timestamp:stat.mtime,mode:stat.mode})}else if(FS.isFile(stat.mode)){node.contents=MEMFS.getFileDataAsTypedArray(node);return callback(null,{timestamp:stat.mtime,mode:stat.mode,contents:node.contents})}else{return callback(new Error("node type not supported"))}}),storeLocalEntry:(function(path,entry,callback){try{if(FS.isDir(entry.mode)){FS.mkdir(path,entry.mode)}else if(FS.isFile(entry.mode)){FS.writeFile(path,entry.contents,{encoding:"binary",canOwn:true})}else{return callback(new Error("node type not supported"))}FS.chmod(path,entry.mode);FS.utime(path,entry.timestamp,entry.timestamp)}catch(e){return callback(e)}callback(null)}),removeLocalEntry:(function(path,callback){try{var lookup=FS.lookupPath(path);var stat=FS.stat(path);if(FS.isDir(stat.mode)){FS.rmdir(path)}else if(FS.isFile(stat.mode)){FS.unlink(path)}}catch(e){return callback(e)}callback(null)}),loadRemoteEntry:(function(store,path,callback){var req=store.get(path);req.onsuccess=(function(event){callback(null,event.target.result)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),storeRemoteEntry:(function(store,path,entry,callback){var req=store.put(entry,path);req.onsuccess=(function(){callback(null)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),removeRemoteEntry:(function(store,path,callback){var req=store.delete(path);req.onsuccess=(function(){callback(null)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),reconcile:(function(src,dst,callback){var total=0;var create=[];Object.keys(src.entries).forEach((function(key){var e=src.entries[key];var e2=dst.entries[key];if(!e2||e.timestamp>e2.timestamp){create.push(key);total++}}));var remove=[];Object.keys(dst.entries).forEach((function(key){var e=dst.entries[key];var e2=src.entries[key];if(!e2){remove.push(key);total++}}));if(!total){return callback(null)}var completed=0;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=total){return callback(null)}}transaction.onerror=(function(e){done(this.error);e.preventDefault()});create.sort().forEach((function(path){if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,(function(err,entry){if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)}))}else{IDBFS.loadLocalEntry(path,(function(err,entry){if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)}))}}));remove.sort().reverse().forEach((function(path){if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}}))})};var NODEFS={isWindows:false,staticInit:(function(){NODEFS.isWindows=!!process.platform.match(/^win/)}),mount:(function(mount){assert(ENVIRONMENT_IS_NODE);return NODEFS.createNode(null,"/",NODEFS.getMode(mount.opts.root),0)}),createNode:(function(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=FS.createNode(parent,name,mode);node.node_ops=NODEFS.node_ops;node.stream_ops=NODEFS.stream_ops;return node}),getMode:(function(path){var stat;try{stat=fs.lstatSync(path);if(NODEFS.isWindows){stat.mode=stat.mode|(stat.mode&146)>>1}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return stat.mode}),realPath:(function(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join.apply(null,parts)}),flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:(function(flags){flags&=~2097152;flags&=~2048;flags&=~32768;flags&=~524288;if(flags in NODEFS.flagsToPermissionStringMap){return NODEFS.flagsToPermissionStringMap[flags]}else{throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}}),node_ops:{getattr:(function(node){var path=NODEFS.realPath(node);var stat;try{stat=fs.lstatSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(NODEFS.isWindows&&!stat.blksize){stat.blksize=4096}if(NODEFS.isWindows&&!stat.blocks){stat.blocks=(stat.size+stat.blksize-1)/stat.blksize|0}return{dev:stat.dev,ino:stat.ino,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}}),setattr:(function(node,attr){var path=NODEFS.realPath(node);try{if(attr.mode!==undefined){fs.chmodSync(path,attr.mode);node.mode=attr.mode}if(attr.timestamp!==undefined){var date=new Date(attr.timestamp);fs.utimesSync(path,date,date)}if(attr.size!==undefined){fs.truncateSync(path,attr.size)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),lookup:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode)}),mknod:(function(parent,name,mode,dev){var node=NODEFS.createNode(parent,name,mode,dev);var path=NODEFS.realPath(node);try{if(FS.isDir(node.mode)){fs.mkdirSync(path,node.mode)}else{fs.writeFileSync(path,"",{mode:node.mode})}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return node}),rename:(function(oldNode,newDir,newName){var oldPath=NODEFS.realPath(oldNode);var newPath=PATH.join2(NODEFS.realPath(newDir),newName);try{fs.renameSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),unlink:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.unlinkSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),rmdir:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.rmdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readdir:(function(node){var path=NODEFS.realPath(node);try{return fs.readdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),symlink:(function(parent,newName,oldPath){var newPath=PATH.join2(NODEFS.realPath(parent),newName);try{fs.symlinkSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readlink:(function(node){var path=NODEFS.realPath(node);try{path=fs.readlinkSync(path);path=NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root),path);return path}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}})},stream_ops:{open:(function(stream){var path=NODEFS.realPath(stream.node);try{if(FS.isFile(stream.node.mode)){stream.nfd=fs.openSync(path,NODEFS.flagsToPermissionString(stream.flags))}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),close:(function(stream){try{if(FS.isFile(stream.node.mode)&&stream.nfd){fs.closeSync(stream.nfd)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),read:(function(stream,buffer,offset,length,position){if(length===0)return 0;var nbuffer=new Buffer(length);var res;try{res=fs.readSync(stream.nfd,nbuffer,0,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(res>0){for(var i=0;i<res;i++){buffer[offset+i]=nbuffer[i]}}return res}),write:(function(stream,buffer,offset,length,position){var nbuffer=new Buffer(buffer.subarray(offset,offset+length));var res;try{res=fs.writeSync(stream.nfd,nbuffer,0,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}return res}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){try{var stat=fs.fstatSync(stream.nfd);position+=stat.size}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position})}};var WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:(function(mount){assert(ENVIRONMENT_IS_WORKER);if(!WORKERFS.reader)WORKERFS.reader=new FileReaderSync;var root=WORKERFS.createNode(null,"/",WORKERFS.DIR_MODE,0);var createdParents={};function ensureParent(path){var parts=path.split("/");var parent=root;for(var i=0;i<parts.length-1;i++){var curr=parts.slice(0,i+1).join("/");if(!createdParents[curr]){createdParents[curr]=WORKERFS.createNode(parent,parts[i],WORKERFS.DIR_MODE,0)}parent=createdParents[curr]}return parent}function base(path){var parts=path.split("/");return parts[parts.length-1]}Array.prototype.forEach.call(mount.opts["files"]||[],(function(file){WORKERFS.createNode(ensureParent(file.name),base(file.name),WORKERFS.FILE_MODE,0,file,file.lastModifiedDate)}));(mount.opts["blobs"]||[]).forEach((function(obj){WORKERFS.createNode(ensureParent(obj["name"]),base(obj["name"]),WORKERFS.FILE_MODE,0,obj["data"])}));(mount.opts["packages"]||[]).forEach((function(pack){pack["metadata"].files.forEach((function(file){var name=file.filename.substr(1);WORKERFS.createNode(ensureParent(name),base(name),WORKERFS.FILE_MODE,0,pack["blob"].slice(file.start,file.end))}))}));return root}),createNode:(function(parent,name,mode,dev,contents,mtime){var node=FS.createNode(parent,name,mode);node.mode=mode;node.node_ops=WORKERFS.node_ops;node.stream_ops=WORKERFS.stream_ops;node.timestamp=(mtime||new Date).getTime();assert(WORKERFS.FILE_MODE!==WORKERFS.DIR_MODE);if(mode===WORKERFS.FILE_MODE){node.size=contents.size;node.contents=contents}else{node.size=4096;node.contents={}}if(parent){parent.contents[name]=node}return node}),node_ops:{getattr:(function(node){return{dev:1,ino:undefined,mode:node.mode,nlink:1,uid:0,gid:0,rdev:undefined,size:node.size,atime:new Date(node.timestamp),mtime:new Date(node.timestamp),ctime:new Date(node.timestamp),blksize:4096,blocks:Math.ceil(node.size/4096)}}),setattr:(function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}}),lookup:(function(parent,name){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}),mknod:(function(parent,name,mode,dev){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),rename:(function(oldNode,newDir,newName){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),unlink:(function(parent,name){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),rmdir:(function(parent,name){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),readdir:(function(node){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),symlink:(function(parent,newName,oldPath){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),readlink:(function(node){throw new FS.ErrnoError(ERRNO_CODES.EPERM)})},stream_ops:{read:(function(stream,buffer,offset,length,position){if(position>=stream.node.size)return 0;var chunk=stream.node.contents.slice(position,position+length);var ab=WORKERFS.reader.readAsArrayBuffer(chunk);buffer.set(new Uint8Array(ab),offset);return chunk.size}),write:(function(stream,buffer,offset,length,position){throw new FS.ErrnoError(ERRNO_CODES.EIO)}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.size}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position})}};STATICTOP+=16;STATICTOP+=16;STATICTOP+=16;var FS={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:(function(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return ___setErrNo(e.errno)}),lookupPath:(function(path,opts){path=PATH.resolve(FS.cwd(),path);opts=opts||{};if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};for(var key in defaults){if(opts[key]===undefined){opts[key]=defaults[key]}}if(opts.recurse_count>8){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}var parts=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),false);var current=FS.root;var current_path="/";for(var i=0;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break}current=FS.lookupNode(current,parts[i]);current_path=PATH.join2(current_path,parts[i]);if(FS.isMountpoint(current)){if(!islast||islast&&opts.follow_mount){current=current.mounted.root}}if(!islast||opts.follow){var count=0;while(FS.isLink(current.mode)){var link=FS.readlink(current_path);current_path=PATH.resolve(PATH.dirname(current_path),link);var lookup=FS.lookupPath(current_path,{recurse_count:opts.recurse_count});current=lookup.node;if(count++>40){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}}}}return{path:current_path,node:current}}),getPath:(function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}}),hashName:(function(parentid,name){var hash=0;for(var i=0;i<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0}return(parentid+hash>>>0)%FS.nameTable.length}),hashAddNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node}),hashRemoveNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}}),lookupNode:(function(parent,name){var err=FS.mayLookup(parent);if(err){throw new FS.ErrnoError(err,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)}),createNode:(function(parent,name,mode,rdev){if(!FS.FSNode){FS.FSNode=(function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev});FS.FSNode.prototype={};var readMode=292|73;var writeMode=146;Object.defineProperties(FS.FSNode.prototype,{read:{get:(function(){return(this.mode&readMode)===readMode}),set:(function(val){val?this.mode|=readMode:this.mode&=~readMode})},write:{get:(function(){return(this.mode&writeMode)===writeMode}),set:(function(val){val?this.mode|=writeMode:this.mode&=~writeMode})},isFolder:{get:(function(){return FS.isDir(this.mode)})},isDevice:{get:(function(){return FS.isChrdev(this.mode)})}})}var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node}),destroyNode:(function(node){FS.hashRemoveNode(node)}),isRoot:(function(node){return node===node.parent}),isMountpoint:(function(node){return!!node.mounted}),isFile:(function(mode){return(mode&61440)===32768}),isDir:(function(mode){return(mode&61440)===16384}),isLink:(function(mode){return(mode&61440)===40960}),isChrdev:(function(mode){return(mode&61440)===8192}),isBlkdev:(function(mode){return(mode&61440)===24576}),isFIFO:(function(mode){return(mode&61440)===4096}),isSocket:(function(mode){return(mode&49152)===49152}),flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:(function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags}),flagsToPermissionString:(function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms}),nodePermissions:(function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return ERRNO_CODES.EACCES}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return ERRNO_CODES.EACCES}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return ERRNO_CODES.EACCES}return 0}),mayLookup:(function(dir){var err=FS.nodePermissions(dir,"x");if(err)return err;if(!dir.node_ops.lookup)return ERRNO_CODES.EACCES;return 0}),mayCreate:(function(dir,name){try{var node=FS.lookupNode(dir,name);return ERRNO_CODES.EEXIST}catch(e){}return FS.nodePermissions(dir,"wx")}),mayDelete:(function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var err=FS.nodePermissions(dir,"wx");if(err){return err}if(isdir){if(!FS.isDir(node.mode)){return ERRNO_CODES.ENOTDIR}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return ERRNO_CODES.EBUSY}}else{if(FS.isDir(node.mode)){return ERRNO_CODES.EISDIR}}return 0}),mayOpen:(function(node,flags){if(!node){return ERRNO_CODES.ENOENT}if(FS.isLink(node.mode)){return ERRNO_CODES.ELOOP}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return ERRNO_CODES.EISDIR}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))}),MAX_OPEN_FDS:4096,nextfd:(function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(ERRNO_CODES.EMFILE)}),getStream:(function(fd){return FS.streams[fd]}),createStream:(function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=(function(){});FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:(function(){return this.node}),set:(function(val){this.node=val})},isRead:{get:(function(){return(this.flags&2097155)!==1})},isWrite:{get:(function(){return(this.flags&2097155)!==0})},isAppend:{get:(function(){return this.flags&1024})}})}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream}),closeStream:(function(fd){FS.streams[fd]=null}),chrdev_stream_ops:{open:(function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}}),llseek:(function(){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)})},major:(function(dev){return dev>>8}),minor:(function(dev){return dev&255}),makedev:(function(ma,mi){return ma<<8|mi}),registerDevice:(function(dev,ops){FS.devices[dev]={stream_ops:ops}}),getDevice:(function(dev){return FS.devices[dev]}),getMounts:(function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts}),syncfs:(function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){console.log("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(err){assert(FS.syncFSRequests>0);FS.syncFSRequests--;return callback(err)}function done(err){if(err){if(!done.errored){done.errored=true;return doCallback(err)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach((function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)}))}),mount:(function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot}),unmount:(function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach((function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}}));node.mounted=null;var idx=node.mount.mounts.indexOf(mount);assert(idx!==-1);node.mount.mounts.splice(idx,1)}),lookup:(function(parent,name){return parent.node_ops.lookup(parent,name)}),mknod:(function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.mayCreate(parent,name);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.mknod(parent,name,mode,dev)}),create:(function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)}),mkdir:(function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)}),mkdirTree:(function(path,mode){var dirs=path.split("/");var d="";for(var i=0;i<dirs.length;++i){if(!dirs[i])continue;d+="/"+dirs[i];try{FS.mkdir(d,mode)}catch(e){if(e.errno!=ERRNO_CODES.EEXIST)throw e}}}),mkdev:(function(path,mode,dev){if(typeof dev==="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)}),symlink:(function(oldpath,newpath){if(!PATH.resolve(oldpath)){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var newname=PATH.basename(newpath);var err=FS.mayCreate(parent,newname);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.symlink(parent,newname,oldpath)}),rename:(function(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;try{lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!old_dir||!new_dir)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(ERRNO_CODES.EXDEV)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}relative=PATH.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var err=FS.mayDelete(old_dir,old_name,isdir);if(err){throw new FS.ErrnoError(err)}err=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(err){throw new FS.ErrnoError(err)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(new_dir!==old_dir){err=FS.nodePermissions(old_dir,"w");if(err){throw new FS.ErrnoError(err)}}try{if(FS.trackingDelegate["willMovePath"]){FS.trackingDelegate["willMovePath"](old_path,new_path)}}catch(e){console.log("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}try{if(FS.trackingDelegate["onMovePath"])FS.trackingDelegate["onMovePath"](old_path,new_path)}catch(e){console.log("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}}),rmdir:(function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,true);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}return node.node_ops.readdir(node)}),unlink:(function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,false);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.unlink(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readlink:(function(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!link.node_ops.readlink){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return PATH.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))}),stat:(function(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!node.node_ops.getattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return node.node_ops.getattr(node)}),lstat:(function(path){return FS.stat(path,true)}),chmod:(function(path,mode,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})}),lchmod:(function(path,mode){FS.chmod(path,mode,true)}),fchmod:(function(fd,mode){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chmod(stream.node,mode)}),chown:(function(path,uid,gid,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{timestamp:Date.now()})}),lchown:(function(path,uid,gid){FS.chown(path,uid,gid,true)}),fchown:(function(fd,uid,gid){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chown(stream.node,uid,gid)}),truncate:(function(path,len){if(len<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.nodePermissions(node,"w");if(err){throw new FS.ErrnoError(err)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})}),ftruncate:(function(fd,len){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}FS.truncate(stream.node,len)}),utime:(function(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})}),open:(function(path,flags,mode,fd_start,fd_end){if(path===""){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}flags=typeof flags==="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode==="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path==="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(ERRNO_CODES.EEXIST)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}if(!created){var err=FS.mayOpen(node,flags);if(err){throw new FS.ErrnoError(err)}}if(flags&512){FS.truncate(node,0)}flags&=~(128|512);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false},fd_start,fd_end);if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1;Module["printErr"]("read file: "+path)}}try{if(FS.trackingDelegate["onOpenFile"]){var trackingFlags=0;if((flags&2097155)!==1){trackingFlags|=FS.tracking.openFlags.READ}if((flags&2097155)!==0){trackingFlags|=FS.tracking.openFlags.WRITE}FS.trackingDelegate["onOpenFile"](path,trackingFlags)}}catch(e){console.log("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: "+e.message)}return stream}),close:(function(stream){if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}}),llseek:(function(stream,offset,whence){if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position}),read:(function(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.read){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead}),write:(function(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.write){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if(stream.flags&1024){FS.llseek(stream,0,2)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;try{if(stream.path&&FS.trackingDelegate["onWriteToFile"])FS.trackingDelegate["onWriteToFile"](stream.path)}catch(e){console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: "+e.message)}return bytesWritten}),allocate:(function(stream,offset,length){if(offset<0||length<=0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP)}stream.stream_ops.allocate(stream,offset,length)}),mmap:(function(stream,buffer,offset,length,position,prot,flags){if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EACCES)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}return stream.stream_ops.mmap(stream,buffer,offset,length,position,prot,flags)}),msync:(function(stream,buffer,offset,length,mmapFlags){if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)}),munmap:(function(stream){return 0}),ioctl:(function(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(ERRNO_CODES.ENOTTY)}return stream.stream_ops.ioctl(stream,cmd,arg)}),readFile:(function(path,opts){opts=opts||{};opts.flags=opts.flags||"r";opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret}),writeFile:(function(path,data,opts){opts=opts||{};opts.flags=opts.flags||"w";opts.encoding=opts.encoding||"utf8";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var stream=FS.open(path,opts.flags,opts.mode);if(opts.encoding==="utf8"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,0,opts.canOwn)}else if(opts.encoding==="binary"){FS.write(stream,data,0,data.length,0,opts.canOwn)}FS.close(stream)}),cwd:(function(){return FS.currentPath}),chdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}var err=FS.nodePermissions(lookup.node,"x");if(err){throw new FS.ErrnoError(err)}FS.currentPath=lookup.path}),createDefaultDirectories:(function(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")}),createDefaultDevices:(function(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:(function(){return 0}),write:(function(stream,buffer,offset,length,pos){return length})});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device;if(typeof crypto!=="undefined"){var randomBuffer=new Uint8Array(1);random_device=(function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]})}else if(ENVIRONMENT_IS_NODE){random_device=(function(){return require("crypto").randomBytes(1)[0]})}else{random_device=(function(){return Math.random()*256|0})}FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")}),createSpecialDirectories:(function(){FS.mkdir("/proc");FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:(function(){var node=FS.createNode("/proc/self","fd",16384|511,73);node.node_ops={lookup:(function(parent,name){var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:(function(){return stream.path})}};ret.parent=ret;return ret})};return node})},{},"/proc/self/fd")}),createStandardStreams:(function(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin","r");assert(stdin.fd===0,"invalid handle for stdin ("+stdin.fd+")");var stdout=FS.open("/dev/stdout","w");assert(stdout.fd===1,"invalid handle for stdout ("+stdout.fd+")");var stderr=FS.open("/dev/stderr","w");assert(stderr.fd===2,"invalid handle for stderr ("+stderr.fd+")")}),ensureErrnoError:(function(){if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=(function(errno){this.errno=errno;for(var key in ERRNO_CODES){if(ERRNO_CODES[key]===errno){this.code=key;break}}});this.setErrno(errno);this.message=ERRNO_MESSAGES[errno];if(this.stack)this.stack=demangleAll(this.stack)};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[ERRNO_CODES.ENOENT].forEach((function(code){FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack="<generic error, no stack>"}))}),staticInit:(function(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS,"IDBFS":IDBFS,"NODEFS":NODEFS,"WORKERFS":WORKERFS}}),init:(function(input,output,error){assert(!FS.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()}),quit:(function(){FS.init.initialized=false;var fflush=Module["_fflush"];if(fflush)fflush(0);for(var i=0;i<FS.streams.length;i++){var stream=FS.streams[i];if(!stream){continue}FS.close(stream)}}),getMode:(function(canRead,canWrite){var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode}),joinPath:(function(parts,forceRelative){var path=PATH.join.apply(null,parts);if(forceRelative&&path[0]=="/")path=path.substr(1);return path}),absolutePath:(function(relative,base){return PATH.resolve(base,relative)}),standardizePath:(function(path){return PATH.normalize(path)}),findObject:(function(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(ret.exists){return ret.object}else{___setErrNo(ret.error);return null}}),analyzePath:(function(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret}),createFolder:(function(parent,name,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.mkdir(path,mode)}),createPath:(function(parent,path,canRead,canWrite){parent=typeof parent==="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current}),createFile:(function(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)}),createDataFile:(function(parent,name,data,canRead,canWrite,canOwn){var path=name?PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name):parent;var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data==="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i)arr[i]=data.charCodeAt(i);data=arr}FS.chmod(node,mode|146);var stream=FS.open(node,"w");FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode)}return node}),createDevice:(function(parent,name,input,output){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:(function(stream){stream.seekable=false}),close:(function(stream){if(output&&output.buffer&&output.buffer.length){output(10)}}),read:(function(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input()}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(ERRNO_CODES.EAGAIN)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead}),write:(function(stream,buffer,offset,length,pos){for(var i=0;i<length;i++){try{output(buffer[offset+i])}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}}if(length){stream.node.timestamp=Date.now()}return i})});return FS.mkdev(path,mode,dev)}),createLink:(function(parent,name,target,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);return FS.symlink(target,path)}),forceLoadFile:(function(obj){if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;var success=true;if(typeof XMLHttpRequest!=="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else if(Module["read"]){try{obj.contents=intArrayFromString(Module["read"](obj.url),true);obj.usedBytes=obj.contents.length}catch(e){success=false}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}if(!success)___setErrNo(ERRNO_CODES.EIO);return success}),createLazyFile:(function(parent,name,url,canRead,canWrite){function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}});var lazyArray=this;lazyArray.setDataGetter((function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]}));if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;console.log("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._length})},chunkSize:{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize})}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:(function(){return this.contents.length})}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach((function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}return fn.apply(null,arguments)}}));stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);assert(size>=0);if(contents.slice){for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i]}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i)}}return size};node.stream_ops=stream_ops;return node}),createPreloadedFile:(function(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish){Browser.init();var fullname=name?PATH.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency("cp "+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}var handled=false;Module["preloadPlugins"].forEach((function(plugin){if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,(function(){if(onerror)onerror();removeRunDependency(dep)}));handled=true}}));if(!handled)finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){Browser.asyncLoad(url,(function(byteArray){processData(byteArray)}),onerror)}else{processData(url)}}),indexedDB:(function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB}),DB_NAME:(function(){return"EM_FS_"+window.location.pathname}),DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(function(paths,onload,onerror){onload=onload||(function(){});onerror=onerror||(function(){});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=function openRequest_onupgradeneeded(){console.log("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)};openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach((function(path){var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=function putRequest_onsuccess(){ok++;if(ok+fail==total)finish()};putRequest.onerror=function putRequest_onerror(){fail++;if(ok+fail==total)finish()}}));transaction.onerror=onerror};openRequest.onerror=onerror}),loadFilesFromDB:(function(paths,onload,onerror){onload=onload||(function(){});onerror=onerror||(function(){});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach((function(path){var getRequest=files.get(path);getRequest.onsuccess=function getRequest_onsuccess(){if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()};getRequest.onerror=function getRequest_onerror(){fail++;if(ok+fail==total)finish()}}));transaction.onerror=onerror};openRequest.onerror=onerror})};var SYSCALLS={DEFAULT_POLLMASK:5,mappings:{},umask:511,calculateAt:(function(dirfd,path){if(path[0]!=="/"){var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);dir=dirstream.path}path=PATH.join2(dir,path)}return path}),doStat:(function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-ERRNO_CODES.ENOTDIR}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;HEAP32[buf+36>>2]=stat.size;HEAP32[buf+40>>2]=4096;HEAP32[buf+44>>2]=stat.blocks;HEAP32[buf+48>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+52>>2]=0;HEAP32[buf+56>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ino;return 0}),doMsync:(function(addr,stream,len,flags){var buffer=new Uint8Array(HEAPU8.subarray(addr,addr+len));FS.msync(stream,buffer,0,len,flags)}),doMkdir:(function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0}),doMknod:(function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-ERRNO_CODES.EINVAL}FS.mknod(path,mode,dev);return 0}),doReadlink:(function(path,buf,bufsize){if(bufsize<=0)return-ERRNO_CODES.EINVAL;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len}),doAccess:(function(path,amode){if(amode&~7){return-ERRNO_CODES.EINVAL}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-ERRNO_CODES.EACCES}return 0}),doDup:(function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd}),doReadv:(function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len)break}return ret}),doWritev:(function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret}),varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),getStreamFromFD:(function(){var stream=FS.getStream(SYSCALLS.get());if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return stream}),getSocketFromFD:(function(){var socket=SOCKFS.getSocket(SYSCALLS.get());if(!socket)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return socket}),getSocketAddress:(function(allowNull){var addrp=SYSCALLS.get(),addrlen=SYSCALLS.get();if(allowNull&&addrp===0)return null;var info=__read_sockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall64(which,varargs){SYSCALLS.varargs=varargs;try{return PROCINFO.ppid}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["_i64Subtract"]=_i64Subtract;function _sysconf(name){switch(name){case 30:return PAGE_SIZE;case 85:var maxHeapSize=2*1024*1024*1024-16777216;maxHeapSize=HEAPU8.length;return maxHeapSize/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 ___syscall20(which,varargs){SYSCALLS.varargs=varargs;try{return PROCINFO.pid}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function _pthread_mutex_destroy(){}Module["_memset"]=_memset;Module["_pthread_mutex_lock"]=_pthread_mutex_lock;function _atexit(func,arg){__ATEXIT__.unshift({func:func,arg:arg})}function _abort(){Module["abort"]()}function ___syscall195(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr(),buf=SYSCALLS.get();return SYSCALLS.doStat(FS.stat,path,buf)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall194(which,varargs){SYSCALLS.varargs=varargs;try{var fd=SYSCALLS.get(),zero=SYSCALLS.getZero(),length=SYSCALLS.get64();FS.ftruncate(fd,length);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall197(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),buf=SYSCALLS.get();return SYSCALLS.doStat(FS.stat,stream.path,buf)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall202(which,varargs){SYSCALLS.varargs=varargs;try{return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall199(){return ___syscall202.apply(null,arguments)}Module["_i64Add"]=_i64Add;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_STATIC);Module["_llvm_cttz_i32"]=_llvm_cttz_i32;Module["___udivmoddi4"]=___udivmoddi4;Module["___divdi3"]=___divdi3;function _pthread_mutex_init(){}function ___lock(){}function ___unlock(){}function ___assert_fail(condition,filename,line,func){ABORT=true;throw"Assertion failed: "+Pointer_stringify(condition)+", at: "+[filename?Pointer_stringify(filename):"unknown filename",line,func?Pointer_stringify(func):"unknown function"]+" at "+stackTrace()}function _clock(){if(_clock.start===undefined)_clock.start=Date.now();return(Date.now()-_clock.start)*(1e6/1e3)|0}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;Module["_memmove"]=_memmove;function ___syscall91(which,varargs){SYSCALLS.varargs=varargs;try{var addr=SYSCALLS.get(),len=SYSCALLS.get();var info=SYSCALLS.mappings[addr];if(!info)return 0;if(len===info.len){var stream=FS.getStream(info.fd);SYSCALLS.doMsync(addr,stream,len,info.flags);FS.munmap(stream);SYSCALLS.mappings[addr]=null;if(info.allocated){_free(info.malloc)}}return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["_llvm_bswap_i32"]=_llvm_bswap_i32;function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),op=SYSCALLS.get();switch(op){case 21505:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21506:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21519:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0};case 21520:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return-ERRNO_CODES.EINVAL};case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)};case 21523:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var ___tm_current=STATICTOP;STATICTOP+=48;var ___tm_timezone=allocate(intArrayFromString("GMT"),"i8",ALLOC_STATIC);var _tzname=STATICTOP;STATICTOP+=16;var _daylight=STATICTOP;STATICTOP+=16;var _timezone=STATICTOP;STATICTOP+=16;function _tzset(){if(_tzset.called)return;_tzset.called=true;HEAP32[_timezone>>2]=-(new Date).getTimezoneOffset()*60;var winter=new Date(2e3,0,1);var summer=new Date(2e3,6,1);HEAP32[_daylight>>2]=Number(winter.getTimezoneOffset()!=summer.getTimezoneOffset());function extractZone(date){var match=date.toTimeString().match(/\(([A-Za-z ]+)\)$/);return match?match[1]:"GMT"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=allocate(intArrayFromString(winterName),"i8",ALLOC_NORMAL);var summerNamePtr=allocate(intArrayFromString(summerName),"i8",ALLOC_NORMAL);if(summer.getTimezoneOffset()<winter.getTimezoneOffset()){HEAP32[_tzname>>2]=winterNamePtr;HEAP32[_tzname+4>>2]=summerNamePtr}else{HEAP32[_tzname>>2]=summerNamePtr;HEAP32[_tzname+4>>2]=winterNamePtr}}function _localtime_r(time,tmPtr){_tzset();var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var start=new Date(date.getFullYear(),0,1);var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var summerOffset=(new Date(2e3,6,1)).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=date.getTimezoneOffset()==Math.min(winterOffset,summerOffset)|0;HEAP32[tmPtr+32>>2]=dst;var zonePtr=HEAP32[_tzname+(dst?Runtime.QUANTUM_SIZE:0)>>2];HEAP32[tmPtr+40>>2]=zonePtr;return tmPtr}function _localtime(time){return _localtime_r(time,___tm_current)}function ___syscall77(which,varargs){SYSCALLS.varargs=varargs;try{var who=SYSCALLS.get(),usage=SYSCALLS.get();_memset(usage,0,136);HEAP32[usage>>2]=1;HEAP32[usage+4>>2]=2;HEAP32[usage+8>>2]=3;HEAP32[usage+12>>2]=4;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["_bitshift64Ashr"]=_bitshift64Ashr;Module["_bitshift64Lshr"]=_bitshift64Lshr;function ___syscall33(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr(),amode=SYSCALLS.get();return SYSCALLS.doAccess(path,amode)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var _environ=STATICTOP;STATICTOP+=16;function ___buildEnvironment(env){var MAX_ENV_VALUES=64;var TOTAL_ENV_SIZE=1024;var poolPtr;var envPtr;if(!___buildEnvironment.called){___buildEnvironment.called=true;ENV["USER"]=ENV["LOGNAME"]="web_user";ENV["PATH"]="/";ENV["PWD"]="/";ENV["HOME"]="/home/web_user";ENV["LANG"]="C";ENV["_"]=Module["thisProgram"];poolPtr=allocate(TOTAL_ENV_SIZE,"i8",ALLOC_STATIC);envPtr=allocate(MAX_ENV_VALUES*4,"i8*",ALLOC_STATIC);HEAP32[envPtr>>2]=poolPtr;HEAP32[_environ>>2]=envPtr}else{envPtr=HEAP32[_environ>>2];poolPtr=HEAP32[envPtr>>2]}var strings=[];var totalSize=0;for(var key in env){if(typeof env[key]==="string"){var line=key+"="+env[key];strings.push(line);totalSize+=line.length}}if(totalSize>TOTAL_ENV_SIZE){throw new Error("Environment size exceeded TOTAL_ENV_SIZE!")}var ptrSize=4;for(var i=0;i<strings.length;i++){var line=strings[i];writeAsciiToMemory(line,poolPtr);HEAP32[envPtr+i*ptrSize>>2]=poolPtr;poolPtr+=line.length+1}HEAP32[envPtr+strings.length*ptrSize>>2]=0}var ENV={};function _getenv(name){if(name===0)return 0;name=Pointer_stringify(name);if(!ENV.hasOwnProperty(name))return 0;if(_getenv.ret)_free(_getenv.ret);_getenv.ret=allocate(intArrayFromString(ENV[name]),"i8",ALLOC_NORMAL);return _getenv.ret}function _gettimeofday(ptr){var now=Date.now();HEAP32[ptr>>2]=now/1e3|0;HEAP32[ptr+4>>2]=now%1e3*1e3|0;return 0}Module["_pthread_mutex_unlock"]=_pthread_mutex_unlock;function ___syscall3(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),buf=SYSCALLS.get(),count=SYSCALLS.get();return FS.read(stream,HEAP8,buf,count)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall5(which,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(),flags=SYSCALLS.get(),mode=SYSCALLS.get();var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function _llvm_stackrestore(p){var self=_llvm_stacksave;var ret=self.LLVM_SAVEDSTACKS[p];self.LLVM_SAVEDSTACKS.splice(p,1);Runtime.stackRestore(ret)}Module["___udivdi3"]=___udivdi3;Module["___muldsi3"]=___muldsi3;Module["___muldi3"]=___muldi3;Module["_sbrk"]=_sbrk;Module["_bitshift64Shl"]=_bitshift64Shl;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["___uremdi3"]=___uremdi3;function ___syscall4(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),buf=SYSCALLS.get(),count=SYSCALLS.get();return FS.write(stream,HEAP8,buf,count)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall192(which,varargs){SYSCALLS.varargs=varargs;try{var addr=SYSCALLS.get(),len=SYSCALLS.get(),prot=SYSCALLS.get(),flags=SYSCALLS.get(),fd=SYSCALLS.get(),off=SYSCALLS.get();off<<=12;var ptr;var allocated=false;if(fd===-1){ptr=_memalign(PAGE_SIZE,len);if(!ptr)return-ERRNO_CODES.ENOMEM;_memset(ptr,0,len);allocated=true}else{var info=FS.getStream(fd);if(!info)return-ERRNO_CODES.EBADF;var res=FS.mmap(info,HEAPU8,addr,len,off,prot,flags);ptr=res.ptr;allocated=res.allocated}SYSCALLS.mappings[ptr]={malloc:ptr,len:len,allocated:allocated,fd:fd,flags:flags};return ptr}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall201(){return ___syscall202.apply(null,arguments)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]);return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?Pointer_stringify(tm_zone):""};var pattern=Pointer_stringify(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length<digits){str=character[0]+str}return str}function leadingNulls(value,digits){return leadingSomething(value,digits,"0")}function compareByDay(date1,date2){function sgn(value){return value<0?-1:value>0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":(function(date){return WEEKDAYS[date.tm_wday].substring(0,3)}),"%A":(function(date){return WEEKDAYS[date.tm_wday]}),"%b":(function(date){return MONTHS[date.tm_mon].substring(0,3)}),"%B":(function(date){return MONTHS[date.tm_mon]}),"%C":(function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)}),"%d":(function(date){return leadingNulls(date.tm_mday,2)}),"%e":(function(date){return leadingSomething(date.tm_mday,2," ")}),"%g":(function(date){return getWeekBasedYear(date).toString().substring(2)}),"%G":(function(date){return getWeekBasedYear(date)}),"%H":(function(date){return leadingNulls(date.tm_hour,2)}),"%I":(function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)}),"%j":(function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)}),"%m":(function(date){return leadingNulls(date.tm_mon+1,2)}),"%M":(function(date){return leadingNulls(date.tm_min,2)}),"%n":(function(){return"\n"}),"%p":(function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}}),"%S":(function(date){return leadingNulls(date.tm_sec,2)}),"%t":(function(){return"\t"}),"%u":(function(date){var day=new Date(date.tm_year+1900,date.tm_mon+1,date.tm_mday,0,0,0,0);return day.getDay()||7}),"%U":(function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"}),"%V":(function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()<date.tm_year+1900){daysDifference=date.tm_yday+32-firstWeekStartThisYear.getDate()}else{daysDifference=date.tm_yday+1-firstWeekStartThisYear.getDate()}return leadingNulls(Math.ceil(daysDifference/7),2)}),"%w":(function(date){var day=new Date(date.tm_year+1900,date.tm_mon+1,date.tm_mday,0,0,0,0);return day.getDay()}),"%W":(function(date){var janFirst=new Date(date.tm_year,0,1);var firstMonday=janFirst.getDay()===1?janFirst:__addDays(janFirst,janFirst.getDay()===0?1:7-janFirst.getDay()+1);var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstMonday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstMondayUntilEndJanuary=31-firstMonday.getDate();var days=firstMondayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstMonday,janFirst)===0?"01":"00"}),"%y":(function(date){return(date.tm_year+1900).toString().substring(2)}),"%Y":(function(date){return date.tm_year+1900}),"%z":(function(date){var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)}),"%Z":(function(date){return date.tm_zone}),"%%":(function(){return"%"})};for(var rule in EXPANSION_RULES_2){if(pattern.indexOf(rule)>=0){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}function ___syscall142(which,varargs){SYSCALLS.varargs=varargs;try{var nfds=SYSCALLS.get(),readfds=SYSCALLS.get(),writefds=SYSCALLS.get(),exceptfds=SYSCALLS.get(),timeout=SYSCALLS.get();assert(nfds<=64,"nfds must be less than or equal to 64");assert(!exceptfds,"exceptfds not supported");var total=0;var srcReadLow=readfds?HEAP32[readfds>>2]:0,srcReadHigh=readfds?HEAP32[readfds+4>>2]:0;var srcWriteLow=writefds?HEAP32[writefds>>2]:0,srcWriteHigh=writefds?HEAP32[writefds+4>>2]:0;var srcExceptLow=exceptfds?HEAP32[exceptfds>>2]:0,srcExceptHigh=exceptfds?HEAP32[exceptfds+4>>2]:0;var dstReadLow=0,dstReadHigh=0;var dstWriteLow=0,dstWriteHigh=0;var dstExceptLow=0,dstExceptHigh=0;var allLow=(readfds?HEAP32[readfds>>2]:0)|(writefds?HEAP32[writefds>>2]:0)|(exceptfds?HEAP32[exceptfds>>2]:0);var allHigh=(readfds?HEAP32[readfds+4>>2]:0)|(writefds?HEAP32[writefds+4>>2]:0)|(exceptfds?HEAP32[exceptfds+4>>2]:0);function check(fd,low,high,val){return fd<32?low&val:high&val}for(var fd=0;fd<nfds;fd++){var mask=1<<fd%32;if(!check(fd,allLow,allHigh,mask)){continue}var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);var flags=SYSCALLS.DEFAULT_POLLMASK;if(stream.stream_ops.poll){flags=stream.stream_ops.poll(stream)}if(flags&1&&check(fd,srcReadLow,srcReadHigh,mask)){fd<32?dstReadLow=dstReadLow|mask:dstReadHigh=dstReadHigh|mask;total++}if(flags&4&&check(fd,srcWriteLow,srcWriteHigh,mask)){fd<32?dstWriteLow=dstWriteLow|mask:dstWriteHigh=dstWriteHigh|mask;total++}if(flags&2&&check(fd,srcExceptLow,srcExceptHigh,mask)){fd<32?dstExceptLow=dstExceptLow|mask:dstExceptHigh=dstExceptHigh|mask;total++}}if(readfds){HEAP32[readfds>>2]=dstReadLow;HEAP32[readfds+4>>2]=dstReadHigh}if(writefds){HEAP32[writefds>>2]=dstWriteLow;HEAP32[writefds+4>>2]=dstWriteHigh}if(exceptfds){HEAP32[exceptfds>>2]=dstExceptLow;HEAP32[exceptfds+4>>2]=dstExceptHigh}return total}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;assert(offset_high===0);FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doWritev(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___remdi3"]=___remdi3;function ___syscall221(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),cmd=SYSCALLS.get();switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-ERRNO_CODES.EINVAL}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd};case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0};case 12:case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0};case 13:case 14:case 13:case 14:return 0;case 16:case 8:return-ERRNO_CODES.EINVAL;case 9:___setErrNo(ERRNO_CODES.EINVAL);return-1;default:{return-ERRNO_CODES.EINVAL}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall145(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doReadv(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}FS.staticInit();__ATINIT__.unshift((function(){if(!Module["noFSInit"]&&!FS.init.initialized)FS.init()}));__ATMAIN__.push((function(){FS.ignorePermissions=false}));__ATEXIT__.push((function(){FS.quit()}));Module["FS_createFolder"]=FS.createFolder;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createLink"]=FS.createLink;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;__ATINIT__.unshift((function(){TTY.init()}));__ATEXIT__.push((function(){TTY.shutdown()}));if(ENVIRONMENT_IS_NODE){var fs=require("fs");var NODEJS_PATH=require("path");NODEFS.staticInit()}___buildEnvironment(ENV);DYNAMICTOP_PTR=allocate(1,"i32",ALLOC_STATIC);STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=Runtime.alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;assert(DYNAMIC_BASE<TOTAL_MEMORY,"TOTAL_MEMORY not big enough for stack");function nullFunc_iiii(x){Module["printErr"]("Invalid function pointer called with signature 'iiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x)}function nullFunc_viiiii(x){Module["printErr"]("Invalid function pointer called with signature 'viiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x)}function nullFunc_vi(x){Module["printErr"]("Invalid function pointer called with signature 'vi'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x)}function nullFunc_vii(x){Module["printErr"]("Invalid function pointer called with signature 'vii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x)}function nullFunc_ii(x){Module["printErr"]("Invalid function pointer called with signature 'ii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x)}function nullFunc_viii(x){Module["printErr"]("Invalid function pointer called with signature 'viii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x)}function nullFunc_v(x){Module["printErr"]("Invalid function pointer called with signature 'v'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x)}function nullFunc_iiiii(x){Module["printErr"]("Invalid function pointer called with signature 'iiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x)}function nullFunc_viiiiii(x){Module["printErr"]("Invalid function pointer called with signature 'viiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x)}function nullFunc_iii(x){Module["printErr"]("Invalid function pointer called with signature 'iii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x)}function nullFunc_viiii(x){Module["printErr"]("Invalid function pointer called with signature 'viiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x)}function invoke_iiii(index,a1,a2,a3){try{return Module["dynCall_iiii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){try{Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_vi(index,a1){try{Module["dynCall_vi"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_vii(index,a1,a2){try{Module["dynCall_vii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_ii(index,a1){try{return Module["dynCall_ii"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viii(index,a1,a2,a3){try{Module["dynCall_viii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_v(index){try{Module["dynCall_v"](index)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){try{return Module["dynCall_iiiii"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){try{Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iii(index,a1,a2){try{return Module["dynCall_iii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiii(index,a1,a2,a3,a4){try{Module["dynCall_viiii"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}Module.asmGlobalArg={"Math":Math,"Int8Array":Int8Array,"Int16Array":Int16Array,"Int32Array":Int32Array,"Uint8Array":Uint8Array,"Uint16Array":Uint16Array,"Uint32Array":Uint32Array,"Float32Array":Float32Array,"Float64Array":Float64Array,"NaN":NaN,"Infinity":Infinity};Module.asmLibraryArg={"abort":abort,"assert":assert,"enlargeMemory":enlargeMemory,"getTotalMemory":getTotalMemory,"abortOnCannotGrowMemory":abortOnCannotGrowMemory,"abortStackOverflow":abortStackOverflow,"nullFunc_iiii":nullFunc_iiii,"nullFunc_viiiii":nullFunc_viiiii,"nullFunc_vi":nullFunc_vi,"nullFunc_vii":nullFunc_vii,"nullFunc_ii":nullFunc_ii,"nullFunc_viii":nullFunc_viii,"nullFunc_v":nullFunc_v,"nullFunc_iiiii":nullFunc_iiiii,"nullFunc_viiiiii":nullFunc_viiiiii,"nullFunc_iii":nullFunc_iii,"nullFunc_viiii":nullFunc_viiii,"invoke_iiii":invoke_iiii,"invoke_viiiii":invoke_viiiii,"invoke_vi":invoke_vi,"invoke_vii":invoke_vii,"invoke_ii":invoke_ii,"invoke_viii":invoke_viii,"invoke_v":invoke_v,"invoke_iiiii":invoke_iiiii,"invoke_viiiiii":invoke_viiiiii,"invoke_iii":invoke_iii,"invoke_viiii":invoke_viiii,"___syscall221":___syscall221,"_pthread_mutex_init":_pthread_mutex_init,"___syscall64":___syscall64,"_abort":_abort,"___syscall202":___syscall202,"___syscall20":___syscall20,"_llvm_stackrestore":_llvm_stackrestore,"___assert_fail":___assert_fail,"___buildEnvironment":___buildEnvironment,"__addDays":__addDays,"_localtime_r":_localtime_r,"_tzset":_tzset,"___setErrNo":___setErrNo,"___syscall192":___syscall192,"___syscall197":___syscall197,"___syscall195":___syscall195,"___syscall194":___syscall194,"___syscall199":___syscall199,"_sysconf":_sysconf,"_strftime":_strftime,"_clock":_clock,"__arraySum":__arraySum,"_emscripten_memcpy_big":_emscripten_memcpy_big,"___syscall91":___syscall91,"_pthread_mutex_destroy":_pthread_mutex_destroy,"_llvm_stacksave":_llvm_stacksave,"___syscall77":___syscall77,"_getenv":_getenv,"___syscall33":___syscall33,"___syscall54":___syscall54,"___unlock":___unlock,"__isLeapYear":__isLeapYear,"___syscall3":___syscall3,"___lock":___lock,"___syscall6":___syscall6,"___syscall5":___syscall5,"___syscall4":___syscall4,"_time":_time,"_gettimeofday":_gettimeofday,"___syscall201":___syscall201,"_atexit":_atexit,"___syscall140":___syscall140,"_localtime":_localtime,"___syscall142":___syscall142,"___syscall145":___syscall145,"___syscall146":___syscall146,"DYNAMICTOP_PTR":DYNAMICTOP_PTR,"tempDoublePtr":tempDoublePtr,"ABORT":ABORT,"STACKTOP":STACKTOP,"STACK_MAX":STACK_MAX,"cttz_i8":cttz_i8};// EMSCRIPTEN_START_ASM var asm=(function(global,env,buffer) { -"use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.DYNAMICTOP_PTR|0;var j=env.tempDoublePtr|0;var k=env.ABORT|0;var l=env.STACKTOP|0;var m=env.STACK_MAX|0;var n=env.cttz_i8|0;var o=0;var p=0;var q=0;var r=0;var s=global.NaN,t=global.Infinity;var u=0,v=0,w=0,x=0,y=0.0,z=0,A=0,B=0,C=0.0;var D=0;var E=global.Math.floor;var F=global.Math.abs;var G=global.Math.sqrt;var H=global.Math.pow;var I=global.Math.cos;var J=global.Math.sin;var K=global.Math.tan;var L=global.Math.acos;var M=global.Math.asin;var N=global.Math.atan;var O=global.Math.atan2;var P=global.Math.exp;var Q=global.Math.log;var R=global.Math.ceil;var S=global.Math.imul;var T=global.Math.min;var U=global.Math.max;var V=global.Math.clz32;var W=env.abort;var X=env.assert;var Y=env.enlargeMemory;var Z=env.getTotalMemory;var _=env.abortOnCannotGrowMemory;var $=env.abortStackOverflow;var aa=env.nullFunc_iiii;var ba=env.nullFunc_viiiii;var ca=env.nullFunc_vi;var da=env.nullFunc_vii;var ea=env.nullFunc_ii;var fa=env.nullFunc_viii;var ga=env.nullFunc_v;var ha=env.nullFunc_iiiii;var ia=env.nullFunc_viiiiii;var ja=env.nullFunc_iii;var ka=env.nullFunc_viiii;var la=env.invoke_iiii;var ma=env.invoke_viiiii;var na=env.invoke_vi;var oa=env.invoke_vii;var pa=env.invoke_ii;var qa=env.invoke_viii;var ra=env.invoke_v;var sa=env.invoke_iiiii;var ta=env.invoke_viiiiii;var ua=env.invoke_iii;var va=env.invoke_viiii;var wa=env._pthread_cleanup_pop;var xa=env.___syscall221;var ya=env._pthread_mutex_init;var za=env.___syscall64;var Aa=env._abort;var Ba=env.___syscall202;var Ca=env._pthread_cleanup_push;var Da=env.___syscall20;var Ea=env._llvm_stackrestore;var Fa=env.___assert_fail;var Ga=env.___buildEnvironment;var Ha=env.__addDays;var Ia=env._localtime_r;var Ja=env._tzset;var Ka=env.___setErrNo;var La=env.___syscall192;var Ma=env.___syscall191;var Na=env.___syscall197;var Oa=env.___syscall195;var Pa=env.___syscall194;var Qa=env.___syscall199;var Ra=env._sysconf;var Sa=env._strftime;var Ta=env._clock;var Ua=env.__arraySum;var Va=env._emscripten_memcpy_big;var Wa=env.___syscall91;var Xa=env.___syscall75;var Ya=env._pthread_mutex_destroy;var Za=env._llvm_stacksave;var _a=env.___syscall77;var $a=env._getenv;var ab=env.___syscall33;var bb=env.___syscall54;var cb=env.___unlock;var db=env.__isLeapYear;var eb=env.___syscall3;var fb=env.___syscall340;var gb=env.___lock;var hb=env.___syscall6;var ib=env.___syscall5;var jb=env.___syscall4;var kb=env._time;var lb=env._gettimeofday;var mb=env.___syscall201;var nb=env._atexit;var ob=env.___syscall140;var pb=env._localtime;var qb=env.___syscall142;var rb=env.___syscall145;var sb=env.___syscall146;var tb=0.0; +"use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.DYNAMICTOP_PTR|0;var j=env.tempDoublePtr|0;var k=env.ABORT|0;var l=env.STACKTOP|0;var m=env.STACK_MAX|0;var n=env.cttz_i8|0;var o=0;var p=0;var q=0;var r=0;var s=global.NaN,t=global.Infinity;var u=0,v=0,w=0,x=0,y=0.0,z=0,A=0,B=0,C=0.0;var D=0;var E=global.Math.floor;var F=global.Math.abs;var G=global.Math.sqrt;var H=global.Math.pow;var I=global.Math.cos;var J=global.Math.sin;var K=global.Math.tan;var L=global.Math.acos;var M=global.Math.asin;var N=global.Math.atan;var O=global.Math.atan2;var P=global.Math.exp;var Q=global.Math.log;var R=global.Math.ceil;var S=global.Math.imul;var T=global.Math.min;var U=global.Math.max;var V=global.Math.clz32;var W=env.abort;var X=env.assert;var Y=env.enlargeMemory;var Z=env.getTotalMemory;var _=env.abortOnCannotGrowMemory;var $=env.abortStackOverflow;var aa=env.nullFunc_iiii;var ba=env.nullFunc_viiiii;var ca=env.nullFunc_vi;var da=env.nullFunc_vii;var ea=env.nullFunc_ii;var fa=env.nullFunc_viii;var ga=env.nullFunc_v;var ha=env.nullFunc_iiiii;var ia=env.nullFunc_viiiiii;var ja=env.nullFunc_iii;var ka=env.nullFunc_viiii;var la=env.invoke_iiii;var ma=env.invoke_viiiii;var na=env.invoke_vi;var oa=env.invoke_vii;var pa=env.invoke_ii;var qa=env.invoke_viii;var ra=env.invoke_v;var sa=env.invoke_iiiii;var ta=env.invoke_viiiiii;var ua=env.invoke_iii;var va=env.invoke_viiii;var wa=env.___syscall221;var xa=env._pthread_mutex_init;var ya=env.___syscall64;var za=env._abort;var Aa=env.___syscall202;var Ba=env.___syscall20;var Ca=env._llvm_stackrestore;var Da=env.___assert_fail;var Ea=env.___buildEnvironment;var Fa=env.__addDays;var Ga=env._localtime_r;var Ha=env._tzset;var Ia=env.___setErrNo;var Ja=env.___syscall192;var Ka=env.___syscall197;var La=env.___syscall195;var Ma=env.___syscall194;var Na=env.___syscall199;var Oa=env._sysconf;var Pa=env._strftime;var Qa=env._clock;var Ra=env.__arraySum;var Sa=env._emscripten_memcpy_big;var Ta=env.___syscall91;var Ua=env._pthread_mutex_destroy;var Va=env._llvm_stacksave;var Wa=env.___syscall77;var Xa=env._getenv;var Ya=env.___syscall33;var Za=env.___syscall54;var _a=env.___unlock;var $a=env.__isLeapYear;var ab=env.___syscall3;var bb=env.___lock;var cb=env.___syscall6;var db=env.___syscall5;var eb=env.___syscall4;var fb=env._time;var gb=env._gettimeofday;var hb=env.___syscall201;var ib=env._atexit;var jb=env.___syscall140;var kb=env._localtime;var lb=env.___syscall142;var mb=env.___syscall145;var nb=env.___syscall146;var ob=0.0; // EMSCRIPTEN_START_FUNCS -function Fb(a){a=a|0;var b=0;b=l;l=l+a|0;l=l+15&-16;if((l|0)>=(m|0))$(a|0);return b|0}function Gb(){return l|0}function Hb(a){a=a|0;l=a}function Ib(a,b){a=a|0;b=b|0;l=a;m=b}function Jb(a,b){a=a|0;b=b|0;if(!o){o=a;p=b}}function Kb(a){a=a|0;D=a}function Lb(){return D|0}function Mb(a){a=a|0;var b=0;b=Ub(32,19158,38)|0;oc(a,b);return b|0}function Nb(a){a=a|0;var b=0;b=Ub(32,19158,56)|0;mc(a,b);return b|0}function Ob(a){a=a|0;var b=0;b=Ub(32,19158,73)|0;qc(a,b);return b|0}function Pb(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;e=d+8|0;f=Ub(e,19158,87)|0;_w(f+8|0,c|0,d|0)|0;d=Iv(b)|0;b=f+4|0;a[b>>0]=d;a[b+1>>0]=d>>8;a[b+2>>0]=d>>16;a[b+3>>0]=d>>24;d=Iv(e)|0;a[f>>0]=d;a[f+1>>0]=d>>8;a[f+2>>0]=d>>16;a[f+3>>0]=d>>24;return f|0}function Qb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f;if((iu(e,g)|0)!=1){h=0;l=f;return h|0}e=g;c[e>>2]=a;c[e+4>>2]=b;c[g+8>>2]=d;d=Ub(24,19158,117)|0;c[d>>2]=c[g>>2];c[d+4>>2]=c[g+4>>2];c[d+8>>2]=c[g+8>>2];c[d+12>>2]=c[g+12>>2];c[d+16>>2]=c[g+16>>2];c[d+20>>2]=c[g+20>>2];h=d;l=f;return h|0}function Rb(a){a=a|0;var b=0;b=a;D=c[b+4>>2]|0;return c[b>>2]|0}function Sb(a){a=a|0;return c[a+8>>2]|0}function Tb(a){a=a|0;return a+12|0}function Ub(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;e=l;l=l+64|0;if((l|0)>=(m|0))$(64);f=e+24|0;g=e+8|0;h=e;i=e+56|0;j=e+52|0;k=e+48|0;n=e+44|0;o=e+40|0;p=e+36|0;q=e+32|0;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;if((c[i>>2]|0)>>>0>41943040){c[o>>2]=74;if((c[182]|0)==-1)c[182]=$b(1,0,19165,19185,c[o>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[182]|0))_b();o=c[k>>2]|0;c[h>>2]=c[j>>2];c[h+4>>2]=o;cc(1,61747,h);_b()}c[n>>2]=Vb(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0)|0;if(c[n>>2]|0){l=e;return c[n>>2]|0}c[p>>2]=81;if((c[183]|0)==-1)c[183]=$b(1,21128,19165,19185,c[p>>2]|0)|0;if((ac()|0)<=0){if(c[183]|0){p=Nu(c[(xu()|0)>>2]|0)|0;c[g>>2]=19201;c[g+4>>2]=19165;c[g+8>>2]=81;c[g+12>>2]=p;hc(1,21128,20679,g)}}else bc(-1,0);c[q>>2]=82;if((c[184]|0)==-1)c[184]=$b(1,0,19165,19185,c[q>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[184]|0))_b();c[f>>2]=19165;c[f+4>>2]=82;cc(1,61747,f);_b();return 0}function Vb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e+16|0;g=e+12|0;h=e;c[g>>2]=a;c[e+8>>2]=b;c[e+4>>2]=d;c[h>>2]=Kw(c[g>>2]|0)|0;if(!(c[h>>2]|0)){c[f>>2]=0;i=c[f>>2]|0;l=e;return i|0}else{Uw(c[h>>2]|0,0,c[g>>2]|0)|0;c[f>>2]=c[h>>2];i=c[f>>2]|0;l=e;return i|0}return 0}function Wb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e;g=e+20|0;h=e+16|0;i=e+12|0;j=e+8|0;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;if(c[g>>2]|0){Lw(c[g>>2]|0);l=e;return}c[j>>2]=311;if((c[185]|0)==-1)c[185]=$b(1,0,19165,19208,c[j>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[185]|0))_b();j=c[i>>2]|0;c[f>>2]=c[h>>2];c[f+4>>2]=j;cc(1,61747,f);_b()}function Xb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;f=l;l=l+48|0;if((l|0)>=(m|0))$(48);g=f;h=f+44|0;i=f+40|0;j=f+36|0;k=f+32|0;n=f+16|0;o=f+8|0;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[n>>2]=e;c[k>>2]=Tu(c[h>>2]|0,c[i>>2]|0,c[j>>2]|0,n)|0;if((c[k>>2]|0)>>>0<(c[i>>2]|0)>>>0){l=f;return c[k>>2]|0}c[o>>2]=506;if((c[186]|0)==-1)c[186]=$b(1,0,19165,19222,c[o>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[186]|0))_b();c[g>>2]=19165;c[g+4>>2]=506;cc(1,61747,g);_b();return 0}function Yb(){c[17680]=c[3977];return}function Zb(){return}function _b(){Aa()}function $b(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=l;l=l+48|0;if((l|0)>=(m|0))$(48);h=g+32|0;i=g+28|0;j=g+24|0;k=g+20|0;n=g+16|0;o=g+12|0;p=g+8|0;q=g+4|0;r=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[n>>2]=e;c[o>>2]=f;if(!(c[j>>2]|0))c[j>>2]=c[17681];if((c[17682]|0)>=0&0==(c[17683]|0)){c[h>>2]=(c[i>>2]|0)<=(c[17682]|0)&1;s=c[h>>2]|0;l=g;return s|0}c[r>>2]=(c[17682]|0)>=0&1;c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[17684]|0))break;c[p>>2]=(c[17685]|0)+((c[q>>2]|0)*112|0);if(!(c[r>>2]|0?!(c[(c[p>>2]|0)+108>>2]|0):0))t=9;if((((((t|0)==9?(t=0,(c[o>>2]|0)>=(c[(c[p>>2]|0)+96>>2]|0)):0)?(c[o>>2]|0)<=(c[(c[p>>2]|0)+100>>2]|0):0)?0==(Gw(c[p>>2]|0,c[j>>2]|0,0,0,0)|0):0)?0==(Gw((c[p>>2]|0)+32|0,c[k>>2]|0,0,0,0)|0):0)?0==(Gw((c[p>>2]|0)+64|0,c[n>>2]|0,0,0,0)|0):0){t=14;break}c[q>>2]=(c[q>>2]|0)+1}if((t|0)==14){c[h>>2]=(c[i>>2]|0)<=(c[(c[p>>2]|0)+104>>2]|0)&1;s=c[h>>2]|0;l=g;return s|0}p=c[i>>2]|0;if((c[17682]|0)>=0){c[h>>2]=(p|0)<=(c[17682]|0)&1;s=c[h>>2]|0;l=g;return s|0}else{c[h>>2]=(p|0)<=4&1;s=c[h>>2]|0;l=g;return s|0}return 0}function ac(){return c[17690]|0}function bc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d;f=d+20|0;g=d+16|0;h=d+12|0;i=d+8|0;c[f>>2]=a;c[g>>2]=b;if(c[f>>2]|0){c[17690]=(c[17690]|0)+(c[f>>2]|0);l=d;return}c[h>>2]=0==(c[17690]|0)&1;c[17690]=0;if((c[g>>2]|0)==0|(c[h>>2]|0)!=0){l=d;return}c[i>>2]=906;if((c[188]|0)==-1)c[188]=$b(1,0,19238,19416,c[i>>2]|0)|0;if((ac()|0)>0){bc(-1,0);l=d;return}if(!(c[188]|0)){l=d;return}c[e>>2]=19238;c[e+4>>2]=906;cc(1,61747,e);l=d;return}function cc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e+20|0;g=e+16|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;dc(c[f>>2]|0,c[17686]|0,c[g>>2]|0,h);l=e;return}function dc(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0;g=l;l=l+240|0;if((l|0)>=(m|0))$(240);h=g+40|0;i=g+32|0;j=g+24|0;k=g+108|0;n=g+104|0;o=g+100|0;p=g+96|0;q=g+176|0;r=g+112|0;s=g+92|0;t=g+88|0;u=g+72|0;v=g+68|0;w=g+64|0;x=g+16|0;y=g+56|0;z=g+8|0;A=g+48|0;B=g;c[k>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[u>>2]=c[c[p>>2]>>2];c[t>>2]=(Tu(0,0,c[o>>2]|0,u)|0)+1;if(!(c[t>>2]|0)){c[v>>2]=952;if((c[187]|0)==-1)c[187]=$b(1,0,19238,19261,c[v>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[187]|0))_b();c[j>>2]=19238;c[j+4>>2]=952;cc(1,61747,j);_b()}j=q;v=j+64|0;do{a[j>>0]=0;j=j+1|0}while((j|0)<(v|0));j=c[t>>2]|0;c[w>>2]=Za()|0;v=j;j=l;l=l+((1*v|0)+15&-16)|0;if((l|0)>=(m|0))$((1*v|0)+15&-16|0);lb(y|0,0)|0;v=vd()|0;u=x;c[u>>2]=v;c[u+4>>2]=D;u=x;v=c[u+4>>2]|0;f=(v|0)>0|(v|0)==0&(c[u>>2]|0)>>>0>0;u=x;v=Zw(c[u>>2]|0,c[u+4>>2]|0,1e3,0)|0;u=c[y>>2]|0;e=Ww(u|0,((u|0)<0)<<31>>31|0,v|0,D|0)|0;c[y>>2]=e;do if(f){e=x;v=lx(c[e>>2]|0,c[e+4>>2]|0,1e3,0)|0;e=gx(v|0,D|0,1e3,0)|0;v=y+4|0;u=c[v>>2]|0;d=Ww(u|0,((u|0)<0)<<31>>31|0,e|0,D|0)|0;c[v>>2]=d;d=c[y+4>>2]|0;v=((d|0)<0)<<31>>31;if((v|0)>0|(v|0)==0&d>>>0>1e6){d=y+4|0;v=c[d>>2]|0;e=Tw(v|0,((v|0)<0)<<31>>31|0,1e6,0)|0;c[d>>2]=e;c[y>>2]=(c[y>>2]|0)+1}}else{e=c[y+4>>2]|0;d=((e|0)<0)<<31>>31;v=x;u=lx(c[v>>2]|0,c[v+4>>2]|0,1e3,0)|0;v=Tw(0,0,u|0,D|0)|0;u=gx(v|0,D|0,1e3,0)|0;v=D;b=x;C=lx(c[b>>2]|0,c[b+4>>2]|0,1e3,0)|0;b=gx(C|0,D|0,1e3,0)|0;C=D;if((d|0)>(v|0)|(d|0)==(v|0)&e>>>0>u>>>0){u=y+4|0;e=c[u>>2]|0;v=Ww(e|0,((e|0)<0)<<31>>31|0,b|0,C|0)|0;c[u>>2]=v;break}else{v=Ww(1e6,0,b|0,C|0)|0;C=y+4|0;b=c[C>>2]|0;u=Ww(b|0,((b|0)<0)<<31>>31|0,v|0,D|0)|0;c[C>>2]=u;c[y>>2]=(c[y>>2]|0)+-1;break}}while(0);c[s>>2]=pb(y|0)|0;if(!(c[s>>2]|0))tv(q,19267)|0;else{Sa(r|0,64,19283,c[s>>2]|0)|0;c[i>>2]=c[y+4>>2];Su(q,64,r,i)|0}Tu(j,c[t>>2]|0,c[o>>2]|0,c[p>>2]|0)|0;p=70688;if(0!=(c[k>>2]&64|0)&(0!=(c[p>>2]|0)?1:0!=(c[p+4>>2]|0))?0==(Hv(j,71806,256)|0):0){c[17687]=(c[17687]|0)+1;c[h>>2]=c[17672];c[h+4>>2]=c[17673];p=zd(h)|0;h=z;c[h>>2]=p;c[h+4>>2]=D;h=z;z=c[h+4>>2]|0;if(z>>>0>10|(z|0)==10&(c[h>>2]|0)>>>0>250327040|(c[17687]|0)>>>0>1e3)ec(q);c[A>>2]=1;E=c[w>>2]|0;Ea(E|0);l=g;return}ec(q);Nv(71806,j,256)|0;c[17687]=0;c[17688]=c[k>>2];h=xd()|0;z=B;c[z>>2]=h;c[z+4>>2]=D;c[17672]=c[B>>2];c[17673]=c[B+4>>2];Nv(72062,c[n>>2]|0,32)|0;fc(c[k>>2]|0,c[n>>2]|0,q,j);c[A>>2]=0;E=c[w>>2]|0;Ea(E|0);l=g;return}function ec(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;d=l;l=l+640|0;if((l|0)>=(m|0))$(640);e=d+32|0;f=d+16|0;g=d+52|0;h=d+56|0;i=d+48|0;j=d+44|0;k=d+40|0;n=d+8|0;o=d;c[g>>2]=b;b=70688;if((0==(c[b>>2]|0)?0==(c[b+4>>2]|0):0)|0==(c[17687]|0)){l=d;return}c[i>>2]=0;c[j>>2]=_u(71806,0,256)|0;if(c[j>>2]|0){if((c[j>>2]|0)!=71806)c[j>>2]=(c[j>>2]|0)+-1}else c[j>>2]=72061;if((a[c[j>>2]>>0]|0)==10){c[i>>2]=1;a[c[j>>2]>>0]=0};c[e>>2]=c[17672];c[e+4>>2]=c[17673];b=zd(e)|0;p=n;c[p>>2]=b;c[p+4>>2]=D;c[e>>2]=c[n>>2];c[e+4>>2]=c[n+4>>2];c[k>>2]=qd(e,1)|0;e=c[17687]|0;n=c[k>>2]|0;c[f>>2]=256;c[f+4>>2]=71806;c[f+8>>2]=e;c[f+12>>2]=n;Su(h,576,19367,f)|0;if((c[i>>2]|0)==1)a[c[j>>2]>>0]=10;fc(c[17688]|0,72062,c[g>>2]|0,h);h=xd()|0;g=o;c[g>>2]=h;c[g+4>>2]=D;c[17672]=c[o>>2];c[17673]=c[o+4>>2];c[17687]=0;l=d;return}function fc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;f=l;l=l+48|0;if((l|0)>=(m|0))$(48);g=f+8|0;h=f;i=f+40|0;j=f+36|0;k=f+32|0;n=f+28|0;o=f+24|0;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[n>>2]=e;if(0!=(c[17680]|0)&0==(c[17689]|0)){e=c[17680]|0;if((c[i>>2]|0)==4){c[h>>2]=c[n>>2];Fv(e,19304,h)|0}else{h=c[k>>2]|0;d=c[j>>2]|0;b=gc(c[i>>2]|0)|0;a=c[n>>2]|0;c[g>>2]=h;c[g+4>>2]=d;c[g+8>>2]=b;c[g+12>>2]=a;Fv(e,19309,g)|0}Rv(c[17680]|0)|0}c[o>>2]=c[17689];while(1){if(!(c[o>>2]|0))break;vb[c[(c[o>>2]|0)+4>>2]&15](c[(c[o>>2]|0)+8>>2]|0,c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[n>>2]|0);c[o>>2]=c[c[o>>2]>>2]}l=f;return}function gc(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[e>>2]=a;do if((c[e>>2]&1|0)<=0){if((c[e>>2]&2|0)>0){c[d>>2]=19327;break}if((c[e>>2]&4|0)>0){c[d>>2]=19335;break}if((c[e>>2]&8|0)>0){c[d>>2]=19343;break}if((c[e>>2]&16|0)>0){c[d>>2]=19348;break}if(!(c[e>>2]&-65)){c[d>>2]=19354;break}else{c[d>>2]=19359;break}}else c[d>>2]=19321;while(0);l=b;return c[d>>2]|0}function hc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0;f=l;l=l+176|0;if((l|0)>=(m|0))$(176);g=f;h=f+32|0;i=f+28|0;j=f+24|0;k=f+8|0;n=f+40|0;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;if(!(c[i>>2]|0))c[i>>2]=c[17681];c[k>>2]=e;e=c[i>>2]|0;i=_v()|0;c[g>>2]=e;c[g+4>>2]=i;Xb(n,128,19255,g)|0;dc(c[h>>2]|0,n,c[j>>2]|0,k);l=f;return}function ic(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;g=l;l=l+64|0;if((l|0)>=(m|0))$(64);h=g+8|0;i=g;j=g+56|0;k=g+52|0;n=g+48|0;o=g+44|0;p=g+40|0;q=g+36|0;r=g+32|0;s=g+28|0;t=g+24|0;u=g+20|0;v=g+16|0;c[k>>2]=a;c[n>>2]=b;c[o>>2]=d;c[p>>2]=e;c[q>>2]=f;f=c[n>>2]|0;c[s>>2]=Za()|0;e=f;d=l;l=l+((1*e|0)+15&-16)|0;if((l|0)>=(m|0))$((1*e|0)+15&-16|0);if(1!=(jc(r,c[o>>2]|0,c[p>>2]|0)|0)){c[j>>2]=-1;c[t>>2]=1;w=c[s>>2]|0;Ea(w|0);x=c[j>>2]|0;l=g;return x|0}if(oe(c[r>>2]|0,d,c[n>>2]|0,c[k>>2]|0,c[n>>2]|0)|0){c[u>>2]=136;if((c[189]|0)==-1)c[189]=$b(1,0,19432,19451,c[u>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[189]|0))_b();c[i>>2]=19432;c[i+4>>2]=136;cc(1,61747,i);_b()}je(c[r>>2]|0);if(1!=(kc(r,c[o>>2]|0,c[p>>2]|0)|0)){c[j>>2]=-1;c[t>>2]=1;w=c[s>>2]|0;Ea(w|0);x=c[j>>2]|0;l=g;return x|0}if(!(oe(c[r>>2]|0,c[q>>2]|0,c[n>>2]|0,d,c[n>>2]|0)|0)){je(c[r>>2]|0);Uw(d|0,0,f|0)|0;c[j>>2]=c[n>>2];c[t>>2]=1;w=c[s>>2]|0;Ea(w|0);x=c[j>>2]|0;l=g;return x|0}c[v>>2]=140;if((c[190]|0)==-1)c[190]=$b(1,0,19432,19451,c[v>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[190]|0))_b();c[h>>2]=19432;c[h+4>>2]=140;cc(1,61747,h);_b();return 0}function jc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;e=l;l=l+64|0;if((l|0)>=(m|0))$(64);f=e+16|0;g=e+8|0;h=e;i=e+48|0;j=e+44|0;k=e+40|0;n=e+36|0;o=e+32|0;p=e+28|0;q=e+24|0;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;if(ie(c[i>>2]|0,9,2,0)|0){c[o>>2]=68;if((c[194]|0)==-1)c[194]=$b(1,0,19432,19504,c[o>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[194]|0))_b();c[h>>2]=19432;c[h+4>>2]=68;cc(1,61747,h);_b()}c[n>>2]=ke(c[c[i>>2]>>2]|0,c[j>>2]|0,32)|0;if(0!=(c[n>>2]|0)?((c[n>>2]&255)<<24>>24|0)!=43:0){c[p>>2]=72;if((c[195]|0)==-1)c[195]=$b(1,0,19432,19504,c[p>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[195]|0))_b();c[g>>2]=19432;c[g+4>>2]=72;cc(1,61747,g);_b()}c[n>>2]=ne(c[c[i>>2]>>2]|0,c[k>>2]|0,16)|0;if(!(c[n>>2]|0)){l=e;return 1}if(((c[n>>2]&255)<<24>>24|0)==43){l=e;return 1}c[q>>2]=76;if((c[196]|0)==-1)c[196]=$b(1,0,19432,19504,c[q>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[196]|0))_b();c[f>>2]=19432;c[f+4>>2]=76;cc(1,61747,f);_b();return 0}function kc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;e=l;l=l+64|0;if((l|0)>=(m|0))$(64);f=e+16|0;g=e+8|0;h=e;i=e+48|0;j=e+44|0;k=e+40|0;n=e+36|0;o=e+32|0;p=e+28|0;q=e+24|0;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;if(ie(c[i>>2]|0,10,2,0)|0){c[o>>2]=98;if((c[191]|0)==-1)c[191]=$b(1,0,19432,19483,c[o>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[191]|0))_b();c[h>>2]=19432;c[h+4>>2]=98;cc(1,61747,h);_b()}c[n>>2]=ke(c[c[i>>2]>>2]|0,(c[j>>2]|0)+32|0,32)|0;if(0!=(c[n>>2]|0)?((c[n>>2]&255)<<24>>24|0)!=43:0){c[p>>2]=102;if((c[192]|0)==-1)c[192]=$b(1,0,19432,19483,c[p>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[192]|0))_b();c[g>>2]=19432;c[g+4>>2]=102;cc(1,61747,g);_b()}c[n>>2]=ne(c[c[i>>2]>>2]|0,(c[k>>2]|0)+16|0,16)|0;if(!(c[n>>2]|0)){l=e;return 1}if(((c[n>>2]&255)<<24>>24|0)==43){l=e;return 1}c[q>>2]=106;if((c[193]|0)==-1)c[193]=$b(1,0,19432,19483,c[q>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[193]|0))_b();c[f>>2]=19432;c[f+4>>2]=106;cc(1,61747,f);_b();return 0}function lc(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;g=l;l=l+64|0;if((l|0)>=(m|0))$(64);h=g+8|0;i=g;j=g+56|0;k=g+52|0;n=g+48|0;o=g+44|0;p=g+40|0;q=g+36|0;r=g+32|0;s=g+28|0;t=g+24|0;u=g+20|0;v=g+16|0;c[k>>2]=a;c[n>>2]=b;c[o>>2]=d;c[p>>2]=e;c[q>>2]=f;f=c[n>>2]|0;c[s>>2]=Za()|0;e=f;d=l;l=l+((1*e|0)+15&-16)|0;if((l|0)>=(m|0))$((1*e|0)+15&-16|0);if(1!=(kc(r,c[o>>2]|0,c[p>>2]|0)|0)){c[j>>2]=-1;c[t>>2]=1;w=c[s>>2]|0;Ea(w|0);x=c[j>>2]|0;l=g;return x|0}if(pe(c[r>>2]|0,d,c[n>>2]|0,c[k>>2]|0,c[n>>2]|0)|0){c[u>>2]=172;if((c[197]|0)==-1)c[197]=$b(1,0,19432,19521,c[u>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[197]|0))_b();c[i>>2]=19432;c[i+4>>2]=172;cc(1,61747,i);_b()}je(c[r>>2]|0);if(1!=(jc(r,c[o>>2]|0,c[p>>2]|0)|0)){c[j>>2]=-1;c[t>>2]=1;w=c[s>>2]|0;Ea(w|0);x=c[j>>2]|0;l=g;return x|0}if(!(pe(c[r>>2]|0,c[q>>2]|0,c[n>>2]|0,d,c[n>>2]|0)|0)){je(c[r>>2]|0);Uw(d|0,0,f|0)|0;c[j>>2]=c[n>>2];c[t>>2]=1;w=c[s>>2]|0;Ea(w|0);x=c[j>>2]|0;l=g;return x|0}c[v>>2]=176;if((c[198]|0)==-1)c[198]=$b(1,0,19432,19521,c[v>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[198]|0))_b();c[h>>2]=19432;c[h+4>>2]=176;cc(1,61747,h);_b();return 0}function mc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;d=l;l=l+64|0;if((l|0)>=(m|0))$(64);e=d+16|0;f=d+8|0;g=d;h=d+52|0;i=d+48|0;j=d+44|0;k=d+40|0;n=d+36|0;o=d+32|0;p=d+28|0;q=d+24|0;c[h>>2]=a;c[i>>2]=b;c[j>>2]=nc(c[h>>2]|0)|0;if(!(c[j>>2]|0)){c[o>>2]=231;if((c[199]|0)==-1)c[199]=$b(1,0,19553,19566,c[o>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[199]|0))_b();c[g>>2]=19553;c[g+4>>2]=231;cc(1,61747,g);_b()}if(_d(k,c[j>>2]|0,0)|0){c[p>>2]=232;if((c[200]|0)==-1)c[200]=$b(1,0,19553,19566,c[p>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[200]|0))_b();c[f>>2]=19553;c[f+4>>2]=232;cc(1,61747,f);_b()}Kd(c[j>>2]|0);c[n>>2]=$d(19601,c[k>>2]|0,0)|0;if(c[n>>2]|0){Oc(c[i>>2]|0,32,c[n>>2]|0);Qd(c[n>>2]|0);Fe(c[k>>2]|0);l=d;return}c[q>>2]=235;if((c[201]|0)==-1)c[201]=$b(1,0,19553,19566,c[q>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[201]|0))_b();c[e>>2]=19553;c[e+4>>2]=235;cc(1,61747,e);_b()}function nc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;b=l;l=l+64|0;if((l|0)>=(m|0))$(64);d=b+24|0;e=b+8|0;f=b;g=b+48|0;h=b+44|0;i=b+40|0;j=b+36|0;k=b+32|0;c[g>>2]=a;a=c[g>>2]|0;c[f>>2]=32;c[f+4>>2]=a;c[i>>2]=Jd(h,0,19609,f)|0;if(!(c[i>>2]|0)){l=b;return c[h>>2]|0}c[j>>2]=136;if((c[202]|0)==-1)c[202]=$b(1,21128,19553,19651,c[j>>2]|0)|0;if((ac()|0)<=0){if(c[202]|0){j=Cd(c[i>>2]|0)|0;c[e>>2]=19676;c[e+4>>2]=19553;c[e+8>>2]=136;c[e+12>>2]=j;hc(1,21128,20679,e)}}else bc(-1,0);c[k>>2]=137;if((c[203]|0)==-1)c[203]=$b(1,0,19553,19651,c[k>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[203]|0))_b();c[d>>2]=19553;c[d+4>>2]=137;cc(1,61747,d);_b();return 0}function oc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;d=l;l=l+64|0;if((l|0)>=(m|0))$(64);e=d+16|0;f=d+8|0;g=d;h=d+52|0;i=d+48|0;j=d+44|0;k=d+40|0;n=d+36|0;o=d+32|0;p=d+28|0;q=d+24|0;c[h>>2]=a;c[i>>2]=b;c[j>>2]=pc(c[h>>2]|0)|0;if(!(c[j>>2]|0)){c[o>>2]=257;if((c[204]|0)==-1)c[204]=$b(1,0,19553,19692,c[o>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[204]|0))_b();c[g>>2]=19553;c[g+4>>2]=257;cc(1,61747,g);_b()}if(_d(k,c[j>>2]|0,0)|0){c[p>>2]=258;if((c[205]|0)==-1)c[205]=$b(1,0,19553,19692,c[p>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[205]|0))_b();c[f>>2]=19553;c[f+4>>2]=258;cc(1,61747,f);_b()}Kd(c[j>>2]|0);c[n>>2]=$d(19601,c[k>>2]|0,0)|0;if(c[n>>2]|0){Oc(c[i>>2]|0,32,c[n>>2]|0);Qd(c[n>>2]|0);Fe(c[k>>2]|0);l=d;return}c[q>>2]=261;if((c[206]|0)==-1)c[206]=$b(1,0,19553,19692,c[q>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[206]|0))_b();c[e>>2]=19553;c[e+4>>2]=261;cc(1,61747,e);_b()}function pc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;b=l;l=l+64|0;if((l|0)>=(m|0))$(64);d=b+24|0;e=b+8|0;f=b;g=b+48|0;h=b+44|0;i=b+40|0;j=b+36|0;k=b+32|0;c[g>>2]=a;a=c[g>>2]|0;c[f>>2]=32;c[f+4>>2]=a;c[i>>2]=Jd(h,0,19727,f)|0;if(!(c[i>>2]|0)){l=b;return c[h>>2]|0}c[j>>2]=169;if((c[207]|0)==-1)c[207]=$b(1,21128,19553,19782,c[j>>2]|0)|0;if((ac()|0)<=0){if(c[207]|0){j=Cd(c[i>>2]|0)|0;c[e>>2]=19676;c[e+4>>2]=19553;c[e+8>>2]=169;c[e+12>>2]=j;hc(1,21128,20679,e)}}else bc(-1,0);c[k>>2]=170;if((c[208]|0)==-1)c[208]=$b(1,0,19553,19782,c[k>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[208]|0))_b();c[d>>2]=19553;c[d+4>>2]=170;cc(1,61747,d);_b();return 0}function qc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;d=l;l=l+64|0;if((l|0)>=(m|0))$(64);e=d+16|0;f=d+8|0;g=d;h=d+52|0;i=d+48|0;j=d+44|0;k=d+40|0;n=d+36|0;o=d+32|0;p=d+28|0;q=d+24|0;c[h>>2]=a;c[i>>2]=b;c[j>>2]=rc(c[h>>2]|0)|0;if(!(c[j>>2]|0)){c[o>>2]=283;if((c[209]|0)==-1)c[209]=$b(1,0,19553,19807,c[o>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[209]|0))_b();c[g>>2]=19553;c[g+4>>2]=283;cc(1,61747,g);_b()}if(_d(k,c[j>>2]|0,0)|0){c[p>>2]=284;if((c[210]|0)==-1)c[210]=$b(1,0,19553,19807,c[p>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[210]|0))_b();c[f>>2]=19553;c[f+4>>2]=284;cc(1,61747,f);_b()}Kd(c[j>>2]|0);c[n>>2]=$d(19601,c[k>>2]|0,0)|0;if(c[n>>2]|0){Oc(c[i>>2]|0,32,c[n>>2]|0);Qd(c[n>>2]|0);Fe(c[k>>2]|0);l=d;return}c[q>>2]=287;if((c[211]|0)==-1)c[211]=$b(1,0,19553,19807,c[q>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[211]|0))_b();c[e>>2]=19553;c[e+4>>2]=287;cc(1,61747,e);_b()}function rc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;b=l;l=l+64|0;if((l|0)>=(m|0))$(64);d=b+24|0;e=b+8|0;f=b;g=b+48|0;h=b+44|0;i=b+40|0;j=b+36|0;k=b+32|0;c[g>>2]=a;a=c[g>>2]|0;c[f>>2]=32;c[f+4>>2]=a;c[i>>2]=Jd(h,0,19609,f)|0;if(!(c[i>>2]|0)){l=b;return c[h>>2]|0}c[j>>2]=202;if((c[212]|0)==-1)c[212]=$b(1,21128,19553,19842,c[j>>2]|0)|0;if((ac()|0)<=0){if(c[212]|0){j=Cd(c[i>>2]|0)|0;c[e>>2]=19676;c[e+4>>2]=19553;c[e+8>>2]=202;c[e+12>>2]=j;hc(1,21128,20679,e)}}else bc(-1,0);c[k>>2]=203;if((c[213]|0)==-1)c[213]=$b(1,0,19553,19842,c[k>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[213]|0))_b();c[d>>2]=19553;c[d+4>>2]=203;cc(1,61747,d);_b();return 0}function sc(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0;a=l;l=l+96|0;if((l|0)>=(m|0))$(96);b=a+40|0;d=a+24|0;e=a+8|0;f=a+88|0;g=a+84|0;h=a+80|0;i=a+76|0;j=a+72|0;k=a+68|0;n=a+64|0;o=a+60|0;p=a+56|0;q=Jd(i,0,19867,a)|0;c[k>>2]=q;if(q){c[n>>2]=505;if((c[214]|0)==-1)c[214]=$b(1,21128,19553,19922,c[n>>2]|0)|0;if((ac()|0)<=0){if(c[214]|0){n=Cd(c[k>>2]|0)|0;c[e>>2]=19676;c[e+4>>2]=19553;c[e+8>>2]=505;c[e+12>>2]=n;hc(1,21128,20679,e)}}else bc(-1,0);c[f>>2]=0;r=c[f>>2]|0;l=a;return r|0}e=te(h,c[i>>2]|0)|0;c[k>>2]=e;if(e){c[o>>2]=510;if((c[215]|0)==-1)c[215]=$b(1,21128,19553,19922,c[o>>2]|0)|0;if((ac()|0)<=0){if(c[215]|0){o=Cd(c[k>>2]|0)|0;c[d>>2]=19953;c[d+4>>2]=19553;c[d+8>>2]=510;c[d+12>>2]=o;hc(1,21128,20679,d)}}else bc(-1,0);Kd(c[i>>2]|0);c[f>>2]=0;r=c[f>>2]|0;l=a;return r|0}Kd(c[i>>2]|0);i=tc(j,c[h>>2]|0,37977,35618)|0;c[k>>2]=i;if(!i){Kd(c[h>>2]|0);c[g>>2]=Ub(32,19553,530)|0;Oc(c[g>>2]|0,32,c[j>>2]|0);Qd(c[j>>2]|0);c[f>>2]=c[g>>2];r=c[f>>2]|0;l=a;return r|0}c[p>>2]=525;if((c[216]|0)==-1)c[216]=$b(1,21128,19553,19922,c[p>>2]|0)|0;if((ac()|0)<=0){if(c[216]|0){p=Cd(c[k>>2]|0)|0;c[b>>2]=19968;c[b+4>>2]=19553;c[b+8>>2]=525;c[b+12>>2]=p;hc(1,21128,20679,b)}}else bc(-1,0);Kd(c[h>>2]|0);c[f>>2]=0;r=c[f>>2]|0;l=a;return r|0}function tc(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;g=l;l=l+48|0;if((l|0)>=(m|0))$(48);h=g+36|0;i=g+32|0;j=g+28|0;k=g+24|0;n=g+20|0;o=g+16|0;p=g+12|0;q=g+8|0;r=g+4|0;s=g;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[n>>2]=f;c[o>>2]=Md(c[j>>2]|0,c[k>>2]|0,0)|0;if(!(c[o>>2]|0)){c[h>>2]=1;t=c[h>>2]|0;l=g;return t|0}c[p>>2]=Nd(c[o>>2]|0)|0;Kd(c[o>>2]|0);c[o>>2]=c[p>>2];if(!(c[o>>2]|0)){c[h>>2]=2;t=c[h>>2]|0;l=g;return t|0}c[s>>2]=0;c[q>>2]=c[n>>2];while(1){u=c[o>>2]|0;if(!(a[c[q>>2]>>0]|0)){v=18;break}c[p>>2]=Md(u,c[q>>2]|0,1)|0;if(!(c[p>>2]|0)){v=8;break}n=Od(c[p>>2]|0,1,5)|0;c[(c[i>>2]|0)+(c[s>>2]<<2)>>2]=n;Kd(c[p>>2]|0);if(!(c[(c[i>>2]|0)+(c[s>>2]<<2)>>2]|0)){v=13;break}c[q>>2]=(c[q>>2]|0)+1;c[s>>2]=(c[s>>2]|0)+1}if((v|0)==8){c[r>>2]=0;while(1){if((c[r>>2]|0)>>>0>=(c[s>>2]|0)>>>0)break;Ie(c[(c[i>>2]|0)+(c[r>>2]<<2)>>2]|0);c[(c[i>>2]|0)+(c[r>>2]<<2)>>2]=0;c[r>>2]=(c[r>>2]|0)+1}Kd(c[o>>2]|0);c[h>>2]=3;t=c[h>>2]|0;l=g;return t|0}else if((v|0)==13){c[r>>2]=0;while(1){if((c[r>>2]|0)>>>0>=(c[s>>2]|0)>>>0)break;Ie(c[(c[i>>2]|0)+(c[r>>2]<<2)>>2]|0);c[(c[i>>2]|0)+(c[r>>2]<<2)>>2]=0;c[r>>2]=(c[r>>2]|0)+1}Kd(c[o>>2]|0);c[h>>2]=4;t=c[h>>2]|0;l=g;return t|0}else if((v|0)==18){Kd(u);c[h>>2]=0;t=c[h>>2]|0;l=g;return t|0}return 0}function uc(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0;a=l;l=l+96|0;if((l|0)>=(m|0))$(96);b=a+40|0;d=a+24|0;e=a+8|0;f=a+88|0;g=a+84|0;h=a+80|0;i=a+76|0;j=a+72|0;k=a+68|0;n=a+64|0;o=a+60|0;p=a+56|0;q=Jd(i,0,19982,a)|0;c[k>>2]=q;if(q){c[n>>2]=555;if((c[217]|0)==-1)c[217]=$b(1,21128,19553,20020,c[n>>2]|0)|0;if((ac()|0)<=0){if(c[217]|0){n=Cd(c[k>>2]|0)|0;c[e>>2]=19676;c[e+4>>2]=19553;c[e+8>>2]=555;c[e+12>>2]=n;hc(1,21128,20679,e)}}else bc(-1,0);c[f>>2]=0;r=c[f>>2]|0;l=a;return r|0}e=te(h,c[i>>2]|0)|0;c[k>>2]=e;if(e){c[o>>2]=560;if((c[218]|0)==-1)c[218]=$b(1,21128,19553,20020,c[o>>2]|0)|0;if((ac()|0)<=0){if(c[218]|0){o=Cd(c[k>>2]|0)|0;c[d>>2]=19953;c[d+4>>2]=19553;c[d+8>>2]=560;c[d+12>>2]=o;hc(1,21128,20679,d)}}else bc(-1,0);Kd(c[i>>2]|0);c[f>>2]=0;r=c[f>>2]|0;l=a;return r|0}Kd(c[i>>2]|0);i=tc(j,c[h>>2]|0,37977,35618)|0;c[k>>2]=i;if(!i){Kd(c[h>>2]|0);c[g>>2]=Ub(32,19553,580)|0;Oc(c[g>>2]|0,32,c[j>>2]|0);Qd(c[j>>2]|0);c[f>>2]=c[g>>2];r=c[f>>2]|0;l=a;return r|0}c[p>>2]=575;if((c[219]|0)==-1)c[219]=$b(1,21128,19553,20020,c[p>>2]|0)|0;if((ac()|0)<=0){if(c[219]|0){p=Cd(c[k>>2]|0)|0;c[b>>2]=19968;c[b+4>>2]=19553;c[b+8>>2]=575;c[b+12>>2]=p;hc(1,21128,20679,b)}}else bc(-1,0);Kd(c[h>>2]|0);c[f>>2]=0;r=c[f>>2]|0;l=a;return r|0}function vc(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0;a=l;l=l+96|0;if((l|0)>=(m|0))$(96);b=a+40|0;d=a+24|0;e=a+8|0;f=a+88|0;g=a+84|0;h=a+80|0;i=a+76|0;j=a+72|0;k=a+68|0;n=a+64|0;o=a+60|0;p=a+56|0;q=Jd(i,0,20051,a)|0;c[k>>2]=q;if(q){c[n>>2]=604;if((c[220]|0)==-1)c[220]=$b(1,21128,19553,20095,c[n>>2]|0)|0;if((ac()|0)<=0){if(c[220]|0){n=Cd(c[k>>2]|0)|0;c[e>>2]=19676;c[e+4>>2]=19553;c[e+8>>2]=604;c[e+12>>2]=n;hc(1,21128,20679,e)}}else bc(-1,0);c[f>>2]=0;r=c[f>>2]|0;l=a;return r|0}e=te(h,c[i>>2]|0)|0;c[k>>2]=e;if(e){c[o>>2]=609;if((c[221]|0)==-1)c[221]=$b(1,21128,19553,20095,c[o>>2]|0)|0;if((ac()|0)<=0){if(c[221]|0){o=Cd(c[k>>2]|0)|0;c[d>>2]=19953;c[d+4>>2]=19553;c[d+8>>2]=609;c[d+12>>2]=o;hc(1,21128,20679,d)}}else bc(-1,0);Kd(c[i>>2]|0);c[f>>2]=0;r=c[f>>2]|0;l=a;return r|0}Kd(c[i>>2]|0);i=tc(j,c[h>>2]|0,37977,35618)|0;c[k>>2]=i;if(!i){Kd(c[h>>2]|0);c[g>>2]=Ub(32,19553,629)|0;Oc(c[g>>2]|0,32,c[j>>2]|0);Qd(c[j>>2]|0);c[f>>2]=c[g>>2];r=c[f>>2]|0;l=a;return r|0}c[p>>2]=624;if((c[222]|0)==-1)c[222]=$b(1,21128,19553,20095,c[p>>2]|0)|0;if((ac()|0)<=0){if(c[222]|0){p=Cd(c[k>>2]|0)|0;c[b>>2]=19968;c[b+4>>2]=19553;c[b+8>>2]=624;c[b+12>>2]=p;hc(1,21128,20679,b)}}else bc(-1,0);Kd(c[h>>2]|0);c[f>>2]=0;r=c[f>>2]|0;l=a;return r|0}function wc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;e=l;l=l+80|0;if((l|0)>=(m|0))$(80);f=e+16|0;g=e;h=e+68|0;i=e+64|0;j=e+60|0;k=e+56|0;n=e+52|0;o=e+48|0;p=e+44|0;q=e+40|0;r=e+32|0;s=e+28|0;t=e+24|0;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[n>>2]=pc(c[i>>2]|0)|0;c[p>>2]=xc(c[j>>2]|0)|0;j=qe(o,c[p>>2]|0,c[n>>2]|0)|0;c[q>>2]=j;if(j){c[s>>2]=807;if((c[223]|0)==-1)c[223]=$b(2,21128,19553,20126,c[s>>2]|0)|0;if((ac()|0)<=0){if(c[223]|0){s=Cd(c[q>>2]|0)|0;c[g>>2]=19553;c[g+4>>2]=807;c[g+8>>2]=s;hc(2,21128,20151,g)}}else bc(-1,0);Kd(c[p>>2]|0);Kd(c[n>>2]|0);c[h>>2]=-1;u=c[h>>2]|0;l=e;return u|0}Kd(c[n>>2]|0);Kd(c[p>>2]|0);p=tc(r,c[o>>2]|0,37839,47175)|0;c[q>>2]=p;if(!p){Kd(c[o>>2]|0);Oc(c[k>>2]|0,32,c[r>>2]|0);Oc((c[k>>2]|0)+32|0,32,c[r+4>>2]|0);Qd(c[r>>2]|0);Qd(c[r+4>>2]|0);c[h>>2]=1;u=c[h>>2]|0;l=e;return u|0}c[t>>2]=819;if((c[224]|0)==-1)c[224]=$b(1,0,19553,20126,c[t>>2]|0)|0;if((ac()|0)<=0){if(c[224]|0){c[f>>2]=19553;c[f+4>>2]=819;cc(1,61747,f)}}else bc(-1,0);Kd(c[o>>2]|0);c[h>>2]=-1;u=c[h>>2]|0;l=e;return u|0}function xc(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;b=l;l=l+128|0;if((l|0)>=(m|0))$(128);e=b+16|0;f=b;g=b+116|0;h=b+112|0;i=b+48|0;j=b+40|0;k=b+36|0;n=b+32|0;c[h>>2]=a;a=c[h>>2]|0;o=c[h>>2]|0;Bc(a,Mv(d[o>>0]|d[o+1>>0]<<8|d[o+2>>0]<<16|d[o+3>>0]<<24)|0,i);c[f>>2]=37919;c[f+4>>2]=64;c[f+8>>2]=i;i=Jd(j,0,20186,f)|0;c[k>>2]=i;if(!i){c[g>>2]=c[j>>2];p=c[g>>2]|0;l=b;return p|0}c[n>>2]=698;if((c[225]|0)==-1)c[225]=$b(1,21128,19553,20230,c[n>>2]|0)|0;if((ac()|0)<=0){if(c[225]|0){n=Cd(c[k>>2]|0)|0;c[e>>2]=19676;c[e+4>>2]=19553;c[e+8>>2]=698;c[e+12>>2]=n;hc(1,21128,20679,e)}}else bc(-1,0);c[g>>2]=0;p=c[g>>2]|0;l=b;return p|0}function yc(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;g=l;l=l+96|0;if((l|0)>=(m|0))$(96);h=g+40|0;i=g+32|0;j=g+16|0;k=g;n=g+92|0;o=g+88|0;p=g+84|0;q=g+80|0;r=g+76|0;s=g+72|0;t=g+68|0;u=g+64|0;v=g+60|0;w=g+56|0;x=g+52|0;c[o>>2]=a;c[p>>2]=b;c[q>>2]=e;c[r>>2]=f;f=c[o>>2]|0;o=(c[p>>2]|0)+4|0;if((f|0)!=(Mv(d[o>>0]|d[o+1>>0]<<8|d[o+2>>0]<<16|d[o+3>>0]<<24)|0)){c[n>>2]=-1;y=c[n>>2]|0;l=g;return y|0}o=c[q>>2]|0;f=(c[q>>2]|0)+32|0;c[k>>2]=32;c[k+4>>2]=o;c[k+8>>2]=32;c[k+12>>2]=f;f=Jd(t,0,20289,k)|0;c[v>>2]=f;if(f){c[w>>2]=918;if((c[226]|0)==-1)c[226]=$b(1,21128,19553,20318,c[w>>2]|0)|0;if((ac()|0)<=0){if(c[226]|0){w=Cd(c[v>>2]|0)|0;c[j>>2]=19676;c[j+4>>2]=19553;c[j+8>>2]=918;c[j+12>>2]=w;hc(1,21128,20679,j)}}else bc(-1,0);c[n>>2]=-1;y=c[n>>2]|0;l=g;return y|0}c[s>>2]=xc(c[p>>2]|0)|0;p=c[r>>2]|0;c[i>>2]=32;c[i+4>>2]=p;p=Jd(u,0,20345,i)|0;c[v>>2]=p;if(p){Kd(c[s>>2]|0);Kd(c[t>>2]|0);c[n>>2]=-1;y=c[n>>2]|0;l=g;return y|0}c[v>>2]=re(c[t>>2]|0,c[s>>2]|0,c[u>>2]|0)|0;Kd(c[u>>2]|0);Kd(c[s>>2]|0);Kd(c[t>>2]|0);if(!(c[v>>2]|0)){c[n>>2]=1;y=c[n>>2]|0;l=g;return y|0}c[x>>2]=938;if((c[227]|0)==-1)c[227]=$b(8,21128,19553,20318,c[x>>2]|0)|0;if((ac()|0)<=0){if(c[227]|0){x=Cd(c[v>>2]|0)|0;c[h>>2]=19553;c[h+4>>2]=938;c[h+8>>2]=x;hc(8,21128,20397,h)}}else bc(-1,0);c[n>>2]=-1;y=c[n>>2]|0;l=g;return y|0}function zc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;e=l;l=l+144|0;if((l|0)>=(m|0))$(144);f=e+40|0;g=e+32|0;h=e+16|0;i=e+8|0;j=e;k=e+104|0;n=e+100|0;o=e+96|0;p=e+92|0;q=e+88|0;r=e+84|0;s=e+80|0;t=e+76|0;u=e+72|0;v=e+68|0;w=e+112|0;x=e+64|0;y=e+60|0;z=e+56|0;A=e+52|0;B=e+48|0;c[n>>2]=a;c[o>>2]=b;c[p>>2]=d;d=c[o>>2]|0;c[j>>2]=32;c[j+4>>2]=d;if(Jd(u,0,20250,j)|0){c[k>>2]=-1;C=c[k>>2]|0;l=e;return C|0}if(_d(t,c[u>>2]|0,0)|0){c[y>>2]=972;if((c[228]|0)==-1)c[228]=$b(1,0,19553,20447,c[y>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[228]|0))_b();c[i>>2]=19553;c[i+4>>2]=972;cc(1,61747,i);_b()}Kd(c[u>>2]|0);c[r>>2]=ae(47216,c[t>>2]|0,0)|0;Qc(s,c[n>>2]|0,32);c[q>>2]=Yd(0)|0;ce(c[q>>2]|0,c[s>>2]|0,c[r>>2]|0,c[t>>2]|0);Zd(c[r>>2]|0);Qd(c[s>>2]|0);c[v>>2]=Pd(256)|0;if(be(c[v>>2]|0,0,c[q>>2]|0,c[t>>2]|0)|0){c[z>>2]=989;if((c[229]|0)==-1)c[229]=$b(1,21128,19553,20447,c[z>>2]|0)|0;if((ac()|0)<=0){if(c[229]|0){z=Cd(0)|0;c[h>>2]=20470;c[h+4>>2]=19553;c[h+8>>2]=989;c[h+12>>2]=z;hc(1,21128,20679,h)}}else bc(-1,0);Zd(c[q>>2]|0);Fe(c[t>>2]|0);c[k>>2]=-1;C=c[k>>2]|0;l=e;return C|0}Zd(c[q>>2]|0);Fe(c[t>>2]|0);c[x>>2]=32;if(he(c[v>>2]|0,2)|0){c[A>>2]=998;if((c[230]|0)==-1)c[230]=$b(1,0,19553,20447,c[A>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[230]|0))_b();c[g>>2]=19553;c[g+4>>2]=998;cc(1,61747,g);_b()}if(!(Td(1,w,c[x>>2]|0,x,c[v>>2]|0)|0)){Bc(w,c[x>>2]|0,c[p>>2]|0);Qd(c[v>>2]|0);c[k>>2]=1;C=c[k>>2]|0;l=e;return C|0}c[B>>2]=1005;if((c[231]|0)==-1)c[231]=$b(1,0,19553,20447,c[B>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[231]|0))_b();c[f>>2]=19553;c[f+4>>2]=1005;cc(1,61747,f);_b();return 0}function Ac(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;e=l;l=l+144|0;if((l|0)>=(m|0))$(144);f=e+40|0;g=e+32|0;h=e+16|0;i=e+8|0;j=e;k=e+104|0;n=e+100|0;o=e+96|0;p=e+92|0;q=e+88|0;r=e+84|0;s=e+80|0;t=e+76|0;u=e+72|0;v=e+68|0;w=e+112|0;x=e+64|0;y=e+60|0;z=e+56|0;A=e+52|0;B=e+48|0;c[n>>2]=a;c[o>>2]=b;c[p>>2]=d;d=c[o>>2]|0;c[j>>2]=32;c[j+4>>2]=d;if(Jd(u,0,20250,j)|0){c[k>>2]=-1;C=c[k>>2]|0;l=e;return C|0}if(_d(t,c[u>>2]|0,0)|0){c[y>>2]=1403;if((c[232]|0)==-1)c[232]=$b(1,0,19553,20488,c[y>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[232]|0))_b();c[i>>2]=19553;c[i+4>>2]=1403;cc(1,61747,i);_b()}Kd(c[u>>2]|0);c[r>>2]=ae(47216,c[t>>2]|0,0)|0;Qc(s,c[n>>2]|0,32);c[q>>2]=Yd(0)|0;ce(c[q>>2]|0,c[s>>2]|0,c[r>>2]|0,c[t>>2]|0);Zd(c[r>>2]|0);Qd(c[s>>2]|0);c[v>>2]=Pd(256)|0;if(be(c[v>>2]|0,0,c[q>>2]|0,c[t>>2]|0)|0){c[z>>2]=1420;if((c[233]|0)==-1)c[233]=$b(1,21128,19553,20488,c[z>>2]|0)|0;if((ac()|0)<=0){if(c[233]|0){z=Cd(0)|0;c[h>>2]=20470;c[h+4>>2]=19553;c[h+8>>2]=1420;c[h+12>>2]=z;hc(1,21128,20679,h)}}else bc(-1,0);Zd(c[q>>2]|0);Fe(c[t>>2]|0);c[k>>2]=-1;C=c[k>>2]|0;l=e;return C|0}Zd(c[q>>2]|0);Fe(c[t>>2]|0);c[x>>2]=32;if(he(c[v>>2]|0,2)|0){c[A>>2]=1429;if((c[234]|0)==-1)c[234]=$b(1,0,19553,20488,c[A>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[234]|0))_b();c[g>>2]=19553;c[g+4>>2]=1429;cc(1,61747,g);_b()}if(!(Td(1,w,c[x>>2]|0,x,c[v>>2]|0)|0)){Bc(w,c[x>>2]|0,c[p>>2]|0);Qd(c[v>>2]|0);c[k>>2]=1;C=c[k>>2]|0;l=e;return C|0}c[B>>2]=1436;if((c[235]|0)==-1)c[235]=$b(1,0,19553,20488,c[B>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[235]|0))_b();c[f>>2]=19553;c[f+4>>2]=1436;cc(1,61747,f);_b();return 0}function Bc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;ze(10,c[h>>2]|0,c[f>>2]|0,c[g>>2]|0);l=e;return}function Cc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=15;while(1){if((c[g>>2]|0)<0)break;b=Sc(c[e>>2]|0,-1)|0;c[(c[f>>2]|0)+(c[g>>2]<<2)>>2]=b;c[g>>2]=(c[g>>2]|0)+-1}l=d;return}function Dc(){var a=0,b=0,d=0,e=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=a;d=a+12|0;e=a+8|0;c[d>>2]=Ub(4,20513,425)|0;if(!(ue(c[d>>2]|0,10,0)|0)){l=a;return c[d>>2]|0}c[e>>2]=429;if((c[236]|0)==-1)c[236]=$b(1,0,20513,20527,c[e>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[236]|0))_b();c[b>>2]=20513;c[b+4>>2]=429;cc(1,61747,b);_b();return 0}function Ec(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;xe(c[c[f>>2]>>2]|0,c[g>>2]|0,c[h>>2]|0);l=e;return}function Fc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e;g=e+20|0;h=e+16|0;i=e+12|0;j=e+8|0;c[g>>2]=b;c[h>>2]=d;c[i>>2]=ye(c[c[g>>2]>>2]|0,0)|0;if(c[i>>2]|0){if(!(c[h>>2]|0)){k=c[g>>2]|0;Gc(k);l=e;return}d=c[h>>2]|0;h=c[i>>2]|0;i=d+64|0;do{a[d>>0]=a[h>>0]|0;d=d+1|0;h=h+1|0}while((d|0)<(i|0));k=c[g>>2]|0;Gc(k);l=e;return}c[j>>2]=462;if((c[237]|0)==-1)c[237]=$b(1,0,20513,20560,c[j>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[237]|0))_b();c[f>>2]=20513;c[f+4>>2]=462;cc(1,61747,f);_b()}function Gc(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;ve(c[c[d>>2]>>2]|0);Wb(c[d>>2]|0,20513,480);l=b;return}function Hc(b,d,e,f,g,h,i,j,k){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0;n=l;l=l+144|0;if((l|0)>=(m|0))$(144);o=n+136|0;p=n+132|0;q=n+128|0;r=n+124|0;s=n+120|0;t=n+116|0;u=n+112|0;v=n+108|0;w=n+104|0;x=n+100|0;y=n+96|0;z=n+92|0;A=n+88|0;B=n+84|0;C=n+80|0;D=n+76|0;E=n+72|0;F=n+68|0;G=n+64|0;H=n+60|0;I=n+56|0;J=n+40|0;K=n+36|0;L=n+32|0;M=n+28|0;N=n+24|0;O=n+20|0;P=n+16|0;Q=n+12|0;R=n+8|0;S=n+4|0;T=n;c[p>>2]=b;c[q>>2]=d;c[r>>2]=e;c[s>>2]=f;c[t>>2]=g;c[u>>2]=h;c[v>>2]=i;c[w>>2]=j;c[x>>2]=k;c[E>>2]=Be(c[s>>2]|0)|0;c[F>>2]=Be(c[r>>2]|0)|0;k=c[F>>2]|0;c[G>>2]=Za()|0;j=k;k=l;l=l+((1*j|0)+15&-16)|0;if((l|0)>=(m|0))$((1*j|0)+15&-16|0);if(!(c[E>>2]|0)){c[o>>2]=-1;c[K>>2]=1;U=c[G>>2]|0;Ea(U|0);V=c[o>>2]|0;l=n;return V|0}if(ue(y,c[r>>2]|0,2)|0){c[o>>2]=-1;c[K>>2]=1;U=c[G>>2]|0;Ea(U|0);V=c[o>>2]|0;l=n;return V|0}if(ue(z,c[s>>2]|0,2)|0){ve(c[y>>2]|0);c[o>>2]=-1;c[K>>2]=1;U=c[G>>2]|0;Ea(U|0);V=c[o>>2]|0;l=n;return V|0}c[J>>2]=c[c[x>>2]>>2];c[I>>2]=0;while(1){s=(c[J>>2]|0)+(4-1)&~(4-1);r=c[s>>2]|0;c[J>>2]=s+4;c[L>>2]=r;if(!(c[L>>2]|0))break;r=(c[J>>2]|0)+(4-1)&~(4-1);s=c[r>>2]|0;c[J>>2]=r+4;c[M>>2]=s;c[I>>2]=(c[I>>2]|0)+(c[M>>2]|0)}Uw(c[p>>2]|0,0,c[q>>2]|0)|0;a:do if((Ic(c[y>>2]|0,c[t>>2]|0,c[u>>2]|0,c[v>>2]|0,c[w>>2]|0,k)|0)!=1)W=45;else{c[C>>2]=((c[q>>2]|0)>>>0)/((c[E>>2]|0)>>>0)|0;c[D>>2]=((c[q>>2]|0)>>>0)%((c[E>>2]|0)>>>0)|0;c[N>>2]=(c[E>>2]|0)+(c[I>>2]|0)+1;M=c[N>>2]|0;c[O>>2]=Za()|0;L=M;M=l;l=l+((1*L|0)+15&-16)|0;if((l|0)>=(m|0))$((1*L|0)+15&-16|0);c[Q>>2]=M+(c[E>>2]|0);c[J>>2]=c[c[x>>2]>>2];while(1){L=(c[J>>2]|0)+(4-1)&~(4-1);s=c[L>>2]|0;c[J>>2]=L+4;c[R>>2]=s;s=c[R>>2]|0;c[P>>2]=s;if(!s)break;s=(c[J>>2]|0)+(4-1)&~(4-1);L=c[s>>2]|0;c[J>>2]=s+4;c[T>>2]=L;c[S>>2]=c[T>>2];if(c[S>>2]|0)_w(c[Q>>2]|0,c[P>>2]|0,c[S>>2]|0)|0;c[Q>>2]=(c[Q>>2]|0)+(c[S>>2]|0)}do if((c[C>>2]|0)>>>0>0){a[M+(c[E>>2]|0)+(c[I>>2]|0)>>0]=1;c[A>>2]=Jc(c[z>>2]|0,k,c[F>>2]|0,M+(c[E>>2]|0)|0,(c[I>>2]|0)+1|0)|0;if(!(c[A>>2]|0)){c[K>>2]=4;break}if(c[E>>2]|0)_w(c[p>>2]|0,c[A>>2]|0,c[E>>2]|0)|0;c[p>>2]=(c[p>>2]|0)+(c[E>>2]|0);W=22}else W=22;while(0);do if((W|0)==22){c[B>>2]=1;while(1){if((c[B>>2]|0)>>>0>=(c[C>>2]|0)>>>0)break;if(c[E>>2]|0)_w(M|0,(c[p>>2]|0)+(0-(c[E>>2]|0))|0,c[E>>2]|0)|0;Uw(M+(c[E>>2]|0)+(c[I>>2]|0)|0,(c[B>>2]|0)+1&255|0,1)|0;we(c[z>>2]|0);c[A>>2]=Jc(c[z>>2]|0,k,c[F>>2]|0,M,c[N>>2]|0)|0;if(!(c[A>>2]|0)){W=27;break}if(c[E>>2]|0)_w(c[p>>2]|0,c[A>>2]|0,c[E>>2]|0)|0;c[p>>2]=(c[p>>2]|0)+(c[E>>2]|0);c[B>>2]=(c[B>>2]|0)+1}if((W|0)==27){c[K>>2]=4;break}if((c[D>>2]|0)>>>0>0){if((c[C>>2]|0)>>>0>0){if(c[E>>2]|0)_w(M|0,(c[p>>2]|0)+(0-(c[E>>2]|0))|0,c[E>>2]|0)|0;c[B>>2]=(c[B>>2]|0)+1}Uw(M+(c[E>>2]|0)+(c[I>>2]|0)|0,c[B>>2]&255|0,1)|0;we(c[z>>2]|0);L=c[z>>2]|0;s=c[F>>2]|0;if((c[C>>2]|0)>>>0>0)c[A>>2]=Jc(L,k,s,M,c[N>>2]|0)|0;else c[A>>2]=Jc(L,k,s,M+(c[E>>2]|0)|0,(c[N>>2]|0)-(c[E>>2]|0)|0)|0;if(!(c[A>>2]|0)){c[K>>2]=4;break}if(c[D>>2]|0)_w(c[p>>2]|0,c[A>>2]|0,c[D>>2]|0)|0}c[H>>2]=1;c[K>>2]=22}while(0);Ea(c[O>>2]|0);switch(c[K>>2]|0){case 4:{W=45;break a;break}case 22:{break a;break}default:{}}U=c[G>>2]|0;Ea(U|0);V=c[o>>2]|0;l=n;return V|0}while(0);if((W|0)==45)c[H>>2]=-1;ve(c[y>>2]|0);ve(c[z>>2]|0);c[o>>2]=c[H>>2];c[K>>2]=1;U=c[G>>2]|0;Ea(U|0);V=c[o>>2]|0;l=n;return V|0}function Ic(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;h=l;l=l+32|0;if((l|0)>=(m|0))$(32);i=h+28|0;j=h+24|0;k=h+20|0;n=h+16|0;o=h+12|0;p=h+8|0;q=h+4|0;r=h;c[j>>2]=a;c[k>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=Jc(c[j>>2]|0,c[k>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0)|0;if(!(c[r>>2]|0)){c[i>>2]=-1;s=c[i>>2]|0;l=h;return s|0}if(Be(Ae(c[j>>2]|0)|0)|0){p=c[q>>2]|0;q=c[r>>2]|0;_w(p|0,q|0,Be(Ae(c[j>>2]|0)|0)|0)|0}c[i>>2]=1;s=c[i>>2]|0;l=h;return s|0}function Jc(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0;g=l;l=l+32|0;if((l|0)>=(m|0))$(32);h=g+16|0;i=g+12|0;j=g+8|0;k=g+4|0;n=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[n>>2]=f;Ce(c[h>>2]|0,c[i>>2]|0,c[j>>2]|0)|0;xe(c[h>>2]|0,c[k>>2]|0,c[n>>2]|0);n=ye(c[h>>2]|0,0)|0;l=g;return n|0}function Kc(a,b,d,e,f,g,h,i,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;k=l;l=l+64|0;if((l|0)>=(m|0))$(64);n=k+52|0;o=k+48|0;p=k+44|0;q=k+40|0;r=k+36|0;s=k+32|0;t=k+28|0;u=k+24|0;v=k+8|0;w=k;c[n>>2]=a;c[o>>2]=b;c[p>>2]=d;c[q>>2]=e;c[r>>2]=f;c[s>>2]=g;c[t>>2]=h;c[u>>2]=i;c[v>>2]=j;c[w>>2]=Hc(c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0,c[r>>2]|0,c[s>>2]|0,c[t>>2]|0,c[u>>2]|0,v)|0;l=k;return c[w>>2]|0}function Lc(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0;i=l;l=l+32|0;if((l|0)>=(m|0))$(32);j=i+24|0;k=i+20|0;n=i+16|0;o=i+12|0;p=i+8|0;q=i+4|0;r=i;c[j>>2]=a;c[k>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;h=Hc(c[j>>2]|0,c[k>>2]|0,10,8,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0,c[r>>2]|0)|0;l=i;return h|0}function Mc(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;i=l;l=l+48|0;if((l|0)>=(m|0))$(48);j=i+44|0;k=i+40|0;n=i+36|0;o=i+32|0;p=i+28|0;q=i+24|0;r=i+8|0;s=i;c[j>>2]=a;c[k>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=Lc(c[j>>2]|0,c[k>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0,r)|0;l=i;return c[s>>2]|0}function Nc(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;i=l;l=l+112|0;if((l|0)>=(m|0))$(112);j=i+40|0;k=i+32|0;n=i+24|0;o=i;p=i+108|0;q=i+104|0;r=i+100|0;s=i+96|0;t=i+92|0;u=i+88|0;v=i+84|0;w=i+80|0;x=i+76|0;y=i+72|0;z=i+68|0;A=i+64|0;B=i+60|0;C=i+56|0;D=i+52|0;E=i+48|0;c[p>>2]=a;c[q>>2]=b;c[r>>2]=d;c[s>>2]=e;c[t>>2]=f;c[u>>2]=g;c[v>>2]=h;c[x>>2]=de(c[q>>2]|0)|0;c[z>>2]=0;while(1){h=((((c[x>>2]|0)-1|0)>>>0)/8|0)+1|0;c[A>>2]=Za()|0;g=h;f=l;l=l+((1*g|0)+15&-16)|0;if((l|0)>=(m|0))$((1*g|0)+15&-16|0);g=c[r>>2]|0;e=c[s>>2]|0;d=c[t>>2]|0;b=c[u>>2]|0;a=c[v>>2]|0;F=hv(c[v>>2]|0)|0;c[o>>2]=a;c[o+4>>2]=F;c[o+8>>2]=z;c[o+12>>2]=4;c[o+16>>2]=0;c[o+20>>2]=0;c[w>>2]=Mc(f,h,g,e,d,b,o)|0;if(1!=(c[w>>2]|0)){G=3;break}c[w>>2]=Sd(c[p>>2]|0,5,f,h,y)|0;if(c[w>>2]|0){G=11;break}fe(c[c[p>>2]>>2]|0,c[x>>2]|0);if(ee(c[c[p>>2]>>2]|0,c[x>>2]|0)|0){G=19;break}c[z>>2]=(c[z>>2]|0)+1;if(0>(Rd(c[c[p>>2]>>2]|0,c[q>>2]|0)|0))c[E>>2]=3;else{Qd(c[c[p>>2]>>2]|0);c[E>>2]=0}Ea(c[A>>2]|0);if((c[E>>2]|0)>>>0>=1){G=30;break}}if((G|0)==3){c[B>>2]=155;if((c[238]|0)==-1)c[238]=$b(1,0,20594,20607,c[B>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[238]|0))_b();c[n>>2]=20594;c[n+4>>2]=155;cc(1,61747,n);_b()}else if((G|0)==11){c[C>>2]=162;if((c[239]|0)==-1)c[239]=$b(1,0,20594,20607,c[C>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[239]|0))_b();c[k>>2]=20594;c[k+4>>2]=162;cc(1,61747,k);_b()}else if((G|0)==19){c[D>>2]=165;if((c[240]|0)==-1)c[240]=$b(1,0,20594,20607,c[D>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[240]|0))_b();c[j>>2]=20594;c[j+4>>2]=165;cc(1,61747,j);_b()}else if((G|0)==30){l=i;return}}function Oc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;e=l;l=l+80|0;if((l|0)>=(m|0))$(80);f=e+24|0;g=e+8|0;h=e;i=e+68|0;j=e+64|0;k=e+60|0;n=e+56|0;o=e+52|0;p=e+48|0;q=e+44|0;r=e+40|0;s=e+36|0;t=e+32|0;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;if(he(c[k>>2]|0,2)|0){c[q>>2]=ge(c[k>>2]|0,p)|0;if(c[q>>2]|0){c[n>>2]=(((c[p>>2]|0)+7|0)>>>0)/8|0;if((c[n>>2]|0)>>>0>(c[j>>2]|0)>>>0)c[n>>2]=c[j>>2];if(c[n>>2]|0)_w(c[i>>2]|0,c[q>>2]|0,c[n>>2]|0)|0;if((c[n>>2]|0)>>>0>=(c[j>>2]|0)>>>0){l=e;return}Uw((c[i>>2]|0)+(c[n>>2]|0)|0,0,(c[j>>2]|0)-(c[n>>2]|0)|0)|0;l=e;return}c[r>>2]=89;if((c[241]|0)==-1)c[241]=$b(1,0,20633,20646,c[r>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[241]|0))_b();c[h>>2]=20633;c[h+4>>2]=89;cc(1,61747,h);_b()}else{c[n>>2]=c[j>>2];h=Td(5,c[i>>2]|0,c[n>>2]|0,n,c[k>>2]|0)|0;c[o>>2]=h;if(!h){Pc(c[i>>2]|0,c[n>>2]|0,c[j>>2]|0);l=e;return}c[s>>2]=110;if((c[242]|0)==-1)c[242]=$b(1,21128,20633,20646,c[s>>2]|0)|0;if((ac()|0)<=0){if(c[242]|0){s=Cd(c[o>>2]|0)|0;c[g>>2]=20716;c[g+4>>2]=20633;c[g+8>>2]=110;c[g+12>>2]=s;hc(1,21128,20679,g)}}else bc(-1,0);c[t>>2]=111;if((c[243]|0)==-1)c[243]=$b(1,0,20633,20646,c[t>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[243]|0))_b();c[f>>2]=20633;c[f+4>>2]=111;cc(1,61747,f);_b()}}function Pc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[f>>2];if((c[g>>2]|0)>>>0>=(c[h>>2]|0)>>>0){l=e;return}$w((c[i>>2]|0)+((c[h>>2]|0)-(c[g>>2]|0))|0,c[f>>2]|0,c[g>>2]|0)|0;Uw(c[f>>2]|0,0,(c[h>>2]|0)-(c[g>>2]|0)|0)|0;l=e;return}function Qc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;e=l;l=l+48|0;if((l|0)>=(m|0))$(48);f=e+16|0;g=e;h=e+44|0;i=e+40|0;j=e+36|0;k=e+32|0;n=e+28|0;o=e+24|0;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;d=Sd(c[h>>2]|0,5,c[i>>2]|0,c[j>>2]|0,j)|0;c[k>>2]=d;if(!d){l=e;return}c[n>>2]=140;if((c[244]|0)==-1)c[244]=$b(1,21128,20633,20731,c[n>>2]|0)|0;if((ac()|0)<=0){if(c[244]|0){n=Cd(c[k>>2]|0)|0;c[g>>2]=20763;c[g+4>>2]=20633;c[g+8>>2]=140;c[g+12>>2]=n;hc(1,21128,20679,g)}}else bc(-1,0);c[o>>2]=141;if((c[245]|0)==-1)c[245]=$b(1,0,20633,20731,c[o>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[245]|0))_b();c[f>>2]=20633;c[f+4>>2]=141;cc(1,61747,f);_b()}function Rc(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0;a=l;l=l+80|0;if((l|0)>=(m|0))$(80);b=a+56|0;d=a+48|0;e=a+40|0;f=a+32|0;g=a+24|0;h=a+16|0;i=a+8|0;j=a;k=a+64|0;n=a+60|0;if(Gd(20777)|0){c[h>>2]=0;o=Hd(37,h)|0;c[k>>2]=o;if(o|0){o=c[3977]|0;h=Cd(c[k>>2]|0)|0;c[g>>2]=20930;c[g+4>>2]=h;Fv(o,20891,g)|0}c[f>>2]=0;g=Hd(44,f)|0;c[k>>2]=g;if(!g){c[d>>2]=0;Hd(38,d)|0;c[b>>2]=0;Hd(48,b)|0;p=kb(0)|0;q=Sc(2,-1)|0;r=p^q;Tc(r);l=a;return}g=c[3977]|0;f=Cd(c[k>>2]|0)|0;c[e>>2]=20945;c[e+4>>2]=f;Fv(g,20891,e)|0;c[d>>2]=0;Hd(38,d)|0;c[b>>2]=0;Hd(48,b)|0;p=kb(0)|0;q=Sc(2,-1)|0;r=p^q;Tc(r);l=a;return}a=c[3977]|0;c[j>>2]=20777;Fv(a,20783,j)|0;c[n>>2]=286;if((c[246]|0)==-1)c[246]=$b(1,0,20849,20865,c[n>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[246]|0))_b();c[i>>2]=20849;c[i+4>>2]=286;cc(1,61747,i);_b()}function Sc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0.0;d=l;l=l+64|0;if((l|0)>=(m|0))$(64);e=d+16|0;f=d+8|0;g=d;h=d+48|0;i=d+44|0;j=d+40|0;k=d+36|0;n=d+32|0;o=d+28|0;p=d+24|0;c[i>>2]=a;c[j>>2]=b;if((c[j>>2]|0)>>>0<=0){c[o>>2]=157;if((c[247]|0)==-1)c[247]=$b(1,0,20849,20965,c[o>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[247]|0))_b();c[g>>2]=20849;c[g+4>>2]=157;cc(1,61747,g);_b()}switch(c[i>>2]|0){case 1:{i=c[17691]|0;c[17691]=i+1;if(!((i>>>0)%256|0)){c[f>>2]=0;Hd(48,f)|0}c[n>>2]=-1-(4294967295%((c[j>>2]|0)>>>0)|0);do De(k,4,1);while((c[k>>2]|0)>>>0>=(c[n>>2]|0)>>>0);c[h>>2]=((c[k>>2]|0)>>>0)%((c[j>>2]|0)>>>0)|0;q=c[h>>2]|0;l=d;return q|0}case 2:{c[n>>2]=-1-(4294967295%((c[j>>2]|0)>>>0)|0);do Ee(k,4);while((c[k>>2]|0)>>>0>=(c[n>>2]|0)>>>0);c[h>>2]=((c[k>>2]|0)>>>0)%((c[j>>2]|0)>>>0)|0;q=c[h>>2]|0;l=d;return q|0}case 0:{r=+((c[j>>2]|0)>>>0);c[k>>2]=~~(r*+Uc())>>>0;if((c[k>>2]|0)>>>0>=(c[j>>2]|0)>>>0)c[k>>2]=(c[j>>2]|0)-1;c[h>>2]=c[k>>2];q=c[h>>2]|0;l=d;return q|0}default:{c[p>>2]=189;if((c[248]|0)==-1)c[248]=$b(1,0,20849,20965,c[p>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[248]|0))_b();c[e>>2]=20849;c[e+4>>2]=189;cc(1,61747,e);_b()}}return 0}function Tc(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;xw(c[d>>2]|0);l=b;return}function Uc(){return +(+(zw()|0)/2147483647.0)}function Vc(){Ge(0,0);return}function Wc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0;e=l;l=l+48|0;if((l|0)>=(m|0))$(48);f=e+16|0;g=e+8|0;h=e;i=e+36|0;j=e+32|0;k=e+28|0;n=e+24|0;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;switch(c[i>>2]|0){case 1:{i=c[17692]|0;c[17692]=i+1;if(!((i>>>0)%256|0)){c[h>>2]=0;Hd(48,h)|0}De(c[j>>2]|0,c[k>>2]|0,1);l=e;return}case 2:{Ee(c[j>>2]|0,c[k>>2]|0);l=e;return}case 0:{h=c[17692]|0;c[17692]=h+1;if(!((h>>>0)%256|0)){c[g>>2]=0;Hd(48,g)|0}De(c[j>>2]|0,c[k>>2]|0,0);l=e;return}default:{c[n>>2]=135;if((c[249]|0)==-1)c[249]=$b(1,0,20849,20990,c[n>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[249]|0))_b();c[f>>2]=20849;c[f+4>>2]=135;cc(1,61747,f);_b()}}}function Xc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0;b=l;l=l+48|0;if((l|0)>=(m|0))$(48);d=b+16|0;e=b+8|0;f=b;g=b+44|0;h=b+40|0;i=b+36|0;j=b+32|0;k=b+28|0;n=b+24|0;c[g>>2]=a;c[f>>2]=c[g>>2];if(Jd(j,0,21017,f)|0){c[k>>2]=155;if((c[250]|0)==-1)c[250]=$b(1,0,21041,21054,c[k>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[250]|0))_b();c[e>>2]=21041;c[e+4>>2]=155;cc(1,61747,e);_b()}if(!(te(i,c[j>>2]|0)|0)){Kd(c[j>>2]|0);c[h>>2]=Ub(4,21041,164)|0;c[c[h>>2]>>2]=c[i>>2];l=b;return c[h>>2]|0}c[n>>2]=158;if((c[251]|0)==-1)c[251]=$b(1,0,21041,21054,c[n>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[251]|0))_b();c[d>>2]=21041;c[d+4>>2]=158;cc(1,61747,d);_b();return 0}function Yc(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;Kd(c[c[d>>2]>>2]|0);Wb(c[d>>2]|0,21041,179);l=b;return}function Zc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d;f=d+24|0;g=d+20|0;h=d+16|0;i=d+12|0;j=d+8|0;c[f>>2]=a;c[g>>2]=b;c[h>>2]=Ld(c[c[f>>2]>>2]|0,0,0,0)|0;c[i>>2]=Ub(c[h>>2]|0,21041,202)|0;b=(c[h>>2]|0)-1|0;if((b|0)==(Ld(c[c[f>>2]>>2]|0,0,c[i>>2]|0,c[h>>2]|0)|0)){c[c[g>>2]>>2]=c[i>>2];l=d;return c[h>>2]|0}c[j>>2]=207;if((c[252]|0)==-1)c[252]=$b(1,0,21041,21091,c[j>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[252]|0))_b();c[e>>2]=21041;c[e+4>>2]=207;cc(1,61747,e);_b();return 0}function _c(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;d=l;l=l+48|0;if((l|0)>=(m|0))$(48);e=d+8|0;f=d;g=d+32|0;h=d+28|0;i=d+24|0;j=d+20|0;k=d+16|0;n=d+12|0;c[h>>2]=a;c[i>>2]=b;c[j>>2]=Ub(4,21041,226)|0;if(Id(c[j>>2]|0,c[h>>2]|0,c[i>>2]|0,0)|0){c[k>>2]=234;if((c[253]|0)==-1)c[253]=$b(2,21128,21041,21133,c[k>>2]|0)|0;if((ac()|0)<=0){if(c[253]|0)hc(2,21128,21170,f)}else bc(-1,0);Wb(c[j>>2]|0,21041,235);c[g>>2]=0;o=c[g>>2]|0;l=d;return o|0}if(!(se(c[c[j>>2]>>2]|0)|0)){c[g>>2]=c[j>>2];o=c[g>>2]|0;l=d;return o|0}c[n>>2]=241;if((c[254]|0)==-1)c[254]=$b(2,21128,21041,21133,c[n>>2]|0)|0;if((ac()|0)<=0){if(c[254]|0)hc(2,21128,21170,e)}else bc(-1,0);Yc(c[j>>2]|0);c[g>>2]=0;o=c[g>>2]|0;l=d;return o|0}function $c(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;b=l;l=l+64|0;if((l|0)>=(m|0))$(64);d=b+8|0;e=b;f=b+48|0;g=b+44|0;h=b+40|0;i=b+32|0;j=b+24|0;k=b+20|0;n=b+16|0;c[g>>2]=a;c[j>>2]=ad(i,c[c[g>>2]>>2]|0,37989,39361)|0;if(c[j>>2]|0)c[j>>2]=ad(i,c[c[g>>2]>>2]|0,37977,39361)|0;if(c[j>>2]|0)c[j>>2]=ad(i,c[c[g>>2]>>2]|0,40959,39361)|0;if(!(c[j>>2]|0)){g=c[i+4>>2]|0;c[d>>2]=c[i>>2];c[d+4>>2]=g;c[j>>2]=Jd(k,0,21293,d)|0;Qd(c[i>>2]|0);Qd(c[i+4>>2]|0);c[h>>2]=Ub(4,21041,280)|0;c[c[h>>2]>>2]=c[k>>2];c[f>>2]=c[h>>2];o=c[f>>2]|0;l=b;return o|0}c[n>>2]=270;if((c[255]|0)==-1)c[255]=$b(2,0,21041,21204,c[n>>2]|0)|0;if((ac()|0)<=0){if(c[255]|0){c[e>>2]=21041;c[e+4>>2]=270;cc(66,21245,e)}}else bc(-1,0);c[f>>2]=0;o=c[f>>2]|0;l=b;return o|0}function ad(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;g=l;l=l+48|0;if((l|0)>=(m|0))$(48);h=g+36|0;i=g+32|0;j=g+28|0;k=g+24|0;n=g+20|0;o=g+16|0;p=g+12|0;q=g+8|0;r=g+4|0;s=g;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[n>>2]=f;f=Md(c[j>>2]|0,c[k>>2]|0,0)|0;c[o>>2]=f;if(!f){c[h>>2]=1;t=c[h>>2]|0;l=g;return t|0}c[p>>2]=Nd(c[o>>2]|0)|0;Kd(c[o>>2]|0);c[o>>2]=c[p>>2];if(!(c[o>>2]|0)){c[h>>2]=2;t=c[h>>2]|0;l=g;return t|0}c[s>>2]=0;c[q>>2]=c[n>>2];while(1){u=c[o>>2]|0;if(!(a[c[q>>2]>>0]|0)){v=18;break}n=Md(u,c[q>>2]|0,1)|0;c[p>>2]=n;if(!n){v=8;break}n=Od(c[p>>2]|0,1,5)|0;c[(c[i>>2]|0)+(c[s>>2]<<2)>>2]=n;Kd(c[p>>2]|0);if(!(c[(c[i>>2]|0)+(c[s>>2]<<2)>>2]|0)){v=13;break}c[q>>2]=(c[q>>2]|0)+1;c[s>>2]=(c[s>>2]|0)+1}if((v|0)==8){c[r>>2]=0;while(1){if((c[r>>2]|0)>>>0>=(c[s>>2]|0)>>>0)break;Ie(c[(c[i>>2]|0)+(c[r>>2]<<2)>>2]|0);c[(c[i>>2]|0)+(c[r>>2]<<2)>>2]=0;c[r>>2]=(c[r>>2]|0)+1}Kd(c[o>>2]|0);c[h>>2]=3;t=c[h>>2]|0;l=g;return t|0}else if((v|0)==13){c[r>>2]=0;while(1){if((c[r>>2]|0)>>>0>=(c[s>>2]|0)>>>0)break;Ie(c[(c[i>>2]|0)+(c[r>>2]<<2)>>2]|0);c[(c[i>>2]|0)+(c[r>>2]<<2)>>2]=0;c[r>>2]=(c[r>>2]|0)+1}Kd(c[o>>2]|0);c[h>>2]=4;t=c[h>>2]|0;l=g;return t|0}else if((v|0)==18){Kd(u);c[h>>2]=0;t=c[h>>2]|0;l=g;return t|0}return 0}function bd(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;Kd(c[c[d>>2]>>2]|0);Wb(c[d>>2]|0,21041,295);l=b;return}function cd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d;f=d+24|0;g=d+20|0;h=d+16|0;i=d+12|0;j=d+8|0;c[f>>2]=a;c[g>>2]=b;c[h>>2]=Ld(c[c[f>>2]>>2]|0,3,0,0)|0;c[i>>2]=Ub(c[h>>2]|0,21041,318)|0;b=(c[h>>2]|0)-1|0;if((b|0)==(Ld(c[c[f>>2]>>2]|0,3,c[i>>2]|0,c[h>>2]|0)|0)){c[c[g>>2]>>2]=c[i>>2];l=d;return c[h>>2]|0}c[j>>2]=323;if((c[256]|0)==-1)c[256]=$b(1,0,21041,21323,c[j>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[256]|0))_b();c[e>>2]=21041;c[e+4>>2]=323;cc(1,61747,e);_b();return 0}function dd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;d=l;l=l+48|0;if((l|0)>=(m|0))$(48);e=d+8|0;f=d;g=d+44|0;h=d+40|0;i=d+36|0;j=d+32|0;k=d+28|0;n=d+24|0;o=d+20|0;p=d+16|0;c[h>>2]=a;c[i>>2]=b;c[j>>2]=Ub(4,21041,367)|0;if(Id(c[j>>2]|0,c[h>>2]|0,c[i>>2]|0,0)|0){c[o>>2]=374;if((c[257]|0)==-1)c[257]=$b(2,0,21041,21359,c[o>>2]|0)|0;if((ac()|0)<=0){if(c[257]|0){c[f>>2]=21041;c[f+4>>2]=374;cc(66,21245,f)}}else bc(-1,0);Wb(c[j>>2]|0,21041,375);c[g>>2]=0;q=c[g>>2]|0;l=d;return q|0}c[n>>2]=ad(k,c[c[j>>2]>>2]|0,37989,39375)|0;if(c[n>>2]|0)c[n>>2]=ad(k,c[c[j>>2]>>2]|0,40959,39375)|0;if(!(c[n>>2]|0)){Qd(c[k>>2]|0);c[g>>2]=c[j>>2];q=c[g>>2]|0;l=d;return q|0}c[p>>2]=385;if((c[258]|0)==-1)c[258]=$b(1,0,21041,21359,c[p>>2]|0)|0;if((ac()|0)<=0){if(c[258]|0){c[e>>2]=21041;c[e+4>>2]=385;cc(1,61747,e)}}else bc(-1,0);Kd(c[c[j>>2]>>2]|0);Wb(c[j>>2]|0,21041,387);c[g>>2]=0;q=c[g>>2]|0;l=d;return q|0}function ed(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d;f=d+24|0;g=d+20|0;h=d+16|0;i=d+12|0;j=d+8|0;c[f>>2]=a;c[g>>2]=b;c[h>>2]=Ld(c[c[f>>2]>>2]|0,3,0,0)|0;c[i>>2]=Ub(c[h>>2]|0,21041,958)|0;b=(c[h>>2]|0)-1|0;if((b|0)==(Ld(c[c[f>>2]>>2]|0,3,c[i>>2]|0,c[h>>2]|0)|0)){c[c[g>>2]>>2]=c[i>>2];l=d;return c[h>>2]|0}c[j>>2]=963;if((c[259]|0)==-1)c[259]=$b(1,0,21041,21395,c[j>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[259]|0))_b();c[e>>2]=21041;c[e+4>>2]=963;cc(1,61747,e);_b();return 0}function fd(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;g=l;l=l+80|0;if((l|0)>=(m|0))$(80);h=g+8|0;i=g;j=g+76|0;k=g+72|0;n=g+68|0;o=g+64|0;p=g+60|0;q=g+56|0;r=g+52|0;s=g+48|0;t=g+40|0;u=g+32|0;v=g+28|0;w=g+24|0;x=g+20|0;y=g+16|0;c[k>>2]=a;c[n>>2]=b;c[o>>2]=d;c[p>>2]=e;c[q>>2]=f;if(!((c[p>>2]|0)!=0&(c[q>>2]|0)!=0)){c[x>>2]=738;if((c[260]|0)==-1)c[260]=$b(1,0,21041,21430,c[x>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[260]|0))_b();c[i>>2]=21041;c[i+4>>2]=738;cc(1,61747,i);_b()}c[w>>2]=ad(t,c[c[o>>2]>>2]|0,37989,39361)|0;if(c[w>>2]|0)c[w>>2]=ad(t,c[c[o>>2]>>2]|0,40959,39361)|0;if(!(c[w>>2]|0)){c[s>>2]=gd(c[o>>2]|0,c[k>>2]|0)|0;do if(c[s>>2]|0){c[r>>2]=hd(c[o>>2]|0,c[n>>2]|0)|0;if(!(c[r>>2]|0)){Qd(c[s>>2]|0);break}c[u>>2]=Pd(0)|0;Vd(c[u>>2]|0,c[c[r>>2]>>2]|0,c[t+4>>2]|0,c[t>>2]|0);c[v>>2]=Pd(0)|0;Ud(c[v>>2]|0,c[s>>2]|0,c[u>>2]|0,c[t>>2]|0);Qd(c[s>>2]|0);Qd(c[t>>2]|0);Qd(c[t+4>>2]|0);Qd(c[u>>2]|0);id(c[r>>2]|0);k=jd(c[v>>2]|0,c[p>>2]|0)|0;c[c[q>>2]>>2]=k;Qd(c[v>>2]|0);c[j>>2]=1;z=c[j>>2]|0;l=g;return z|0}while(0);Qd(c[t>>2]|0);Qd(c[t+4>>2]|0);c[c[p>>2]>>2]=0;c[c[q>>2]>>2]=0;c[j>>2]=0;z=c[j>>2]|0;l=g;return z|0}c[y>>2]=744;if((c[261]|0)==-1)c[261]=$b(1,0,21041,21430,c[y>>2]|0)|0;if((ac()|0)<=0){if(c[261]|0){c[h>>2]=21041;c[h+4>>2]=744;cc(1,61747,h)}}else bc(-1,0);c[c[p>>2]>>2]=0;c[c[q>>2]>>2]=0;c[j>>2]=0;z=c[j>>2]|0;l=g;return z|0}function gd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;d=l;l=l+64|0;if((l|0)>=(m|0))$(64);e=d+8|0;f=d;g=d+52|0;h=d+48|0;i=d+44|0;j=d+40|0;k=d+36|0;n=d+32|0;o=d+28|0;p=d+24|0;q=d+20|0;r=d+16|0;c[h>>2]=a;c[i>>2]=b;if(ad(k,c[c[h>>2]>>2]|0,40959,39375)|0){c[q>>2]=689;if((c[266]|0)==-1)c[266]=$b(1,0,21041,21548,c[q>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[266]|0))_b();c[f>>2]=21041;c[f+4>>2]=689;cc(1,61747,f);_b()}if(!(he(c[k>>2]|0,2)|0)){c[o>>2]=cd(c[h>>2]|0,n)|0;Nc(j,c[k>>2]|0,c[n>>2]|0,c[o>>2]|0,c[i>>2]|0,64,21569);Wb(c[n>>2]|0,21041,704);c[p>>2]=kd(c[j>>2]|0,c[k>>2]|0)|0;Qd(c[k>>2]|0);k=c[j>>2]|0;if(c[p>>2]|0){c[g>>2]=k;s=c[g>>2]|0;l=d;return s|0}else{Qd(k);c[g>>2]=0;s=c[g>>2]|0;l=d;return s|0}}c[r>>2]=691;if((c[267]|0)==-1)c[267]=$b(1,0,21041,21548,c[r>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[267]|0))_b();c[e>>2]=21041;c[e+4>>2]=691;cc(1,61747,e);_b();return 0}function hd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;d=l;l=l+64|0;if((l|0)>=(m|0))$(64);e=d+16|0;f=d+8|0;g=d;h=d+52|0;i=d+48|0;j=d+44|0;k=d+40|0;n=d+36|0;o=d+32|0;p=d+28|0;q=d+24|0;c[h>>2]=a;c[i>>2]=b;c[j>>2]=21480;c[k>>2]=Ub(4,21041,434)|0;if(!(c[k>>2]|0)){c[o>>2]=435;if((c[263]|0)==-1)c[263]=$b(1,0,21041,21511,c[o>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[263]|0))_b();c[g>>2]=21041;c[g+4>>2]=435;cc(1,61747,g);_b()}if(ad(n,c[c[h>>2]>>2]|0,40959,39375)|0){c[p>>2]=438;if((c[264]|0)==-1)c[264]=$b(1,0,21041,21511,c[p>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[264]|0))_b();c[f>>2]=21041;c[f+4>>2]=438;cc(1,61747,f);_b()}if(!(he(c[n>>2]|0,2)|0)){f=c[k>>2]|0;p=c[n>>2]|0;h=c[j>>2]|0;g=hv(c[j>>2]|0)|0;Nc(f,p,h,g,c[i>>2]|0,32,21535);if(kd(c[c[k>>2]>>2]|0,c[n>>2]|0)|0){r=c[n>>2]|0;Qd(r);s=c[k>>2]|0;l=d;return s|0}Wb(c[k>>2]|0,21041,448);c[k>>2]=0;r=c[n>>2]|0;Qd(r);s=c[k>>2]|0;l=d;return s|0}c[q>>2]=440;if((c[265]|0)==-1)c[265]=$b(1,0,21041,21511,c[q>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[265]|0))_b();c[e>>2]=21041;c[e+4>>2]=440;cc(1,61747,e);_b();return 0}function id(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;Qd(c[c[d>>2]>>2]|0);Wb(c[d>>2]|0,21041,631);l=b;return}function jd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d;f=d+28|0;g=d+24|0;h=d+20|0;i=d+16|0;j=d+8|0;c[f>>2]=a;c[g>>2]=b;Td(5,0,0,h,c[f>>2]|0)|0;c[i>>2]=Ub(c[h>>2]|0,21041,655)|0;if(!(Td(5,c[i>>2]|0,c[h>>2]|0,d+12|0,c[f>>2]|0)|0)){c[c[g>>2]>>2]=c[i>>2];l=d;return c[h>>2]|0}c[j>>2]=661;if((c[262]|0)==-1)c[262]=$b(1,0,21041,21454,c[j>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[262]|0))_b();c[e>>2]=21041;c[e+4>>2]=661;cc(1,61747,e);_b();return 0}function kd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+12|0;f=d+8|0;g=d+4|0;h=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=Pd(0)|0;c[h>>2]=Wd(c[g>>2]|0,c[e>>2]|0,c[f>>2]|0)|0;Qd(c[g>>2]|0);l=d;return c[h>>2]|0}function ld(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=l;l=l+32|0;if((l|0)>=(m|0))$(32);d=b+8|0;e=b;f=b+24|0;g=b+20|0;h=b+16|0;c[f>>2]=a;c[g>>2]=0;c[e>>2]=c[f>>2];if(!(Jd(g,0,21584,e)|0)){l=b;return c[g>>2]|0}c[h>>2]=806;if((c[268]|0)==-1)c[268]=$b(1,0,21041,21614,c[h>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[268]|0))_b();c[d>>2]=21041;c[d+4>>2]=806;cc(1,61747,d);_b();return 0}function md(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;Kd(c[c[d>>2]>>2]|0);Wb(c[d>>2]|0,21041,936);l=b;return}function nd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;d=l;l=l+48|0;if((l|0)>=(m|0))$(48);e=d+8|0;f=d;g=d+44|0;h=d+40|0;i=d+36|0;j=d+32|0;k=d+28|0;n=d+24|0;o=d+20|0;p=d+16|0;c[h>>2]=a;c[i>>2]=b;c[j>>2]=Ub(4,21041,985)|0;if(Id(c[j>>2]|0,c[h>>2]|0,c[i>>2]|0,0)|0){c[o>>2]=992;if((c[269]|0)==-1)c[269]=$b(2,0,21041,21626,c[o>>2]|0)|0;if((ac()|0)<=0){if(c[269]|0){c[f>>2]=21041;c[f+4>>2]=992;cc(66,21245,f)}}else bc(-1,0);Wb(c[j>>2]|0,21041,993);c[g>>2]=0;q=c[g>>2]|0;l=d;return q|0}c[k>>2]=ad(n,c[c[j>>2]>>2]|0,37839,39373)|0;if(c[k>>2]|0)c[k>>2]=ad(n,c[c[j>>2]>>2]|0,40959,39373)|0;if(!(c[k>>2]|0)){Qd(c[n>>2]|0);c[g>>2]=c[j>>2];q=c[g>>2]|0;l=d;return q|0}c[p>>2]=1003;if((c[270]|0)==-1)c[270]=$b(2,0,21041,21626,c[p>>2]|0)|0;if((ac()|0)<=0){if(c[270]|0){c[e>>2]=21041;c[e+4>>2]=1003;cc(66,21245,e)}}else bc(-1,0);Kd(c[c[j>>2]>>2]|0);Wb(c[j>>2]|0,21041,1005);c[g>>2]=0;q=c[g>>2]|0;l=d;return q|0}function od(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;e=l;l=l+112|0;if((l|0)>=(m|0))$(112);f=e+40|0;g=e+32|0;h=e+24|0;i=e+16|0;j=e+8|0;k=e;n=e+108|0;o=e+104|0;p=e+100|0;q=e+96|0;r=e+92|0;s=e+88|0;t=e+84|0;u=e+80|0;v=e+76|0;w=e+72|0;x=e+68|0;y=e+64|0;z=e+60|0;A=e+56|0;B=e+52|0;C=e+48|0;c[o>>2]=a;c[p>>2]=b;c[q>>2]=d;c[w>>2]=ad(s,c[c[q>>2]>>2]|0,37989,39375)|0;if(c[w>>2]|0)c[w>>2]=ad(s,c[c[q>>2]>>2]|0,40959,39375)|0;if(c[w>>2]|0){c[y>>2]=1066;if((c[271]|0)==-1)c[271]=$b(2,0,21041,21661,c[y>>2]|0)|0;if((ac()|0)<=0){if(c[271]|0){c[k>>2]=21041;c[k+4>>2]=1066;cc(66,21245,k)}}else bc(-1,0);c[n>>2]=0;D=c[n>>2]|0;l=e;return D|0}c[w>>2]=ad(t,c[c[o>>2]>>2]|0,37839,39373)|0;if(c[w>>2]|0)c[w>>2]=ad(t,c[c[o>>2]>>2]|0,40959,39373)|0;if(c[w>>2]|0){Qd(c[s>>2]|0);c[z>>2]=1075;if((c[272]|0)==-1)c[272]=$b(2,0,21041,21661,c[z>>2]|0)|0;if((ac()|0)<=0){if(c[272]|0){c[j>>2]=21041;c[j+4>>2]=1075;cc(66,21245,j)}}else bc(-1,0);c[n>>2]=0;D=c[n>>2]|0;l=e;return D|0}c[r>>2]=hd(c[q>>2]|0,c[p>>2]|0)|0;if(!(c[r>>2]|0)){c[A>>2]=1086;if((c[273]|0)==-1)c[273]=$b(2,0,21041,21661,c[A>>2]|0)|0;if((ac()|0)<=0){if(c[273]|0){c[i>>2]=21041;c[i+4>>2]=1086;cc(66,21245,i)}}else bc(-1,0);Qd(c[s>>2]|0);Qd(c[t>>2]|0);c[n>>2]=0;D=c[n>>2]|0;l=e;return D|0}c[u>>2]=Pd(0)|0;if(1!=(Xd(c[u>>2]|0,c[c[r>>2]>>2]|0,c[s>>2]|0)|0)){c[B>>2]=1100;if((c[274]|0)==-1)c[274]=$b(2,0,21041,21661,c[B>>2]|0)|0;if((ac()|0)<=0){if(c[274]|0){c[h>>2]=21041;c[h+4>>2]=1100;cc(66,21245,h)}}else bc(-1,0);Qd(c[u>>2]|0);id(c[r>>2]|0);Qd(c[s>>2]|0);Qd(c[t>>2]|0);c[n>>2]=0;D=c[n>>2]|0;l=e;return D|0}c[v>>2]=Pd(0)|0;Ud(c[v>>2]|0,c[t>>2]|0,c[u>>2]|0,c[s>>2]|0);Qd(c[s>>2]|0);Qd(c[u>>2]|0);Qd(c[t>>2]|0);id(c[r>>2]|0);c[x>>2]=Ub(4,21041,1115)|0;r=c[x>>2]|0;c[g>>2]=c[v>>2];if(!(Jd(r,0,21687,g)|0)){Qd(c[v>>2]|0);c[n>>2]=c[x>>2];D=c[n>>2]|0;l=e;return D|0}c[C>>2]=1120;if((c[275]|0)==-1)c[275]=$b(1,0,21041,21661,c[C>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[275]|0))_b();c[f>>2]=21041;c[f+4>>2]=1120;cc(1,61747,f);_b();return 0}function pd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;e=l;l=l+64|0;if((l|0)>=(m|0))$(64);f=e+8|0;g=e;h=e+52|0;i=e+48|0;j=e+44|0;k=e+40|0;n=e+36|0;o=e+32|0;p=e+28|0;q=e+24|0;r=e+20|0;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[o>>2]=gd(c[k>>2]|0,c[i>>2]|0)|0;if(!(c[o>>2]|0)){c[q>>2]=1146;if((c[276]|0)==-1)c[276]=$b(2,0,21041,21710,c[q>>2]|0)|0;if((ac()|0)<=0){if(c[276]|0){c[g>>2]=21041;c[g+4>>2]=1146;cc(66,21245,g)}}else bc(-1,0);c[h>>2]=0;s=c[h>>2]|0;l=e;return s|0}c[n>>2]=ld(c[o>>2]|0)|0;Qd(c[o>>2]|0);c[p>>2]=re(c[c[j>>2]>>2]|0,c[n>>2]|0,c[c[k>>2]>>2]|0)|0;Kd(c[n>>2]|0);if(!(c[p>>2]|0)){c[h>>2]=1;s=c[h>>2]|0;l=e;return s|0}c[r>>2]=1169;if((c[277]|0)==-1)c[277]=$b(2,21128,21041,21710,c[r>>2]|0)|0;if((ac()|0)<=0){if(c[277]|0){r=Cd(c[p>>2]|0)|0;c[f>>2]=21041;c[f+4>>2]=1168;c[f+8>>2]=r;hc(2,21128,21735,f)}}else bc(-1,0);c[h>>2]=-1;s=c[h>>2]|0;l=e;return s|0}function qd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;d=l;l=l+48|0;if((l|0)>=(m|0))$(48);e=d+16|0;f=d+40|0;g=d+36|0;h=d+32|0;i=d+8|0;j=d;c[g>>2]=b;c[h>>2]=21823;b=a;k=c[b+4>>2]|0;n=i;c[n>>2]=c[b>>2];c[n+4>>2]=k;k=wd()|0;n=j;c[n>>2]=k;c[n+4>>2]=D;n=j;j=a;if((c[n>>2]|0)==(c[j>>2]|0)?(c[n+4>>2]|0)==(c[j+4>>2]|0):0){c[f>>2]=21801;o=c[f>>2]|0;l=d;return o|0}j=a;if(0==(c[j>>2]|0)?0==(c[j+4>>2]|0):0){c[f>>2]=21827;o=c[f>>2]|0;l=d;return o|0}j=i;a=c[j+4>>2]|0;if(!(!(1==(c[g>>2]|0)&(a>>>0>0|(a|0)==0&(c[j>>2]|0)>>>0>5e3))?(j=i,a=jx(c[j>>2]|0,c[j+4>>2]|0,1e3,0)|0,!(0==(a|0)&0==(D|0))):0))p=7;do if((p|0)==7){a=i;j=ex(c[a>>2]|0,c[a+4>>2]|0,1e3,0)|0;a=i;c[a>>2]=j;c[a+4>>2]=D;c[h>>2]=21809;a=i;j=c[a+4>>2]|0;if(!(1==(c[g>>2]|0)&(j>>>0>0|(j|0)==0&(c[a>>2]|0)>>>0>5e3))?(a=i,j=jx(c[a>>2]|0,c[a+4>>2]|0,1e3,0)|0,!(0==(j|0)&0==(D|0))):0)break;j=i;a=ex(c[j>>2]|0,c[j+4>>2]|0,1e3,0)|0;j=i;c[j>>2]=a;c[j+4>>2]=D;c[h>>2]=39373;j=i;a=c[j+4>>2]|0;if(!(1==(c[g>>2]|0)&(a>>>0>0|(a|0)==0&(c[j>>2]|0)>>>0>300))?(j=i,a=jx(c[j>>2]|0,c[j+4>>2]|0,60,0)|0,!(0==(a|0)&0==(D|0))):0)break;a=i;j=ex(c[a>>2]|0,c[a+4>>2]|0,60,0)|0;a=i;c[a>>2]=j;c[a+4>>2]=D;c[h>>2]=21812;a=i;j=c[a+4>>2]|0;if(!(1==(c[g>>2]|0)&(j>>>0>0|(j|0)==0&(c[a>>2]|0)>>>0>300))?(a=i,j=jx(c[a>>2]|0,c[a+4>>2]|0,60,0)|0,!(0==(j|0)&0==(D|0))):0)break;j=i;a=ex(c[j>>2]|0,c[j+4>>2]|0,60,0)|0;j=i;c[j>>2]=a;c[j+4>>2]=D;c[h>>2]=35616;j=i;a=c[j+4>>2]|0;if(!(1==(c[g>>2]|0)&(a>>>0>0|(a|0)==0&(c[j>>2]|0)>>>0>120))?(j=i,a=jx(c[j>>2]|0,c[j+4>>2]|0,24,0)|0,!(0==(a|0)&0==(D|0))):0)break;a=i;j=ex(c[a>>2]|0,c[a+4>>2]|0,24,0)|0;a=i;c[a>>2]=j;c[a+4>>2]=D;a=i;if(1==(c[a>>2]|0)?0==(c[a+4>>2]|0):0){c[h>>2]=21814;break}else{c[h>>2]=21818;break}}while(0);g=i;i=c[g+4>>2]|0;p=c[h>>2]|0;h=e;c[h>>2]=c[g>>2];c[h+4>>2]=i;c[e+8>>2]=p;Xb(72095,128,21793,e)|0;c[f>>2]=72095;o=c[f>>2]|0;l=d;return o|0}function rd(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;h=l;l=l+96|0;if((l|0)>=(m|0))$(96);i=h+24|0;j=h+16|0;k=h+8|0;n=h;o=h+84|0;p=h+80|0;q=h+76|0;r=h+72|0;s=h+68|0;t=h+64|0;u=h+60|0;v=h+56|0;w=h+52|0;x=h+48|0;y=h+44|0;z=h+40|0;A=h+36|0;B=h+32|0;c[p>>2]=b;c[q>>2]=e;c[r>>2]=f;c[s>>2]=g;c[x>>2]=c[p>>2];if((c[s>>2]|0)>>>0<((((c[q>>2]<<3)+4|0)>>>0)/5|0)>>>0){c[y>>2]=883;if((c[278]|0)==-1)c[278]=$b(1,0,21783,21832,c[y>>2]|0)|0;if((ac()|0)<=0){if(c[278]|0){c[n>>2]=21783;c[n+4>>2]=883;cc(1,61747,n)}}else bc(-1,0);c[o>>2]=0;C=c[o>>2]|0;l=h;return C|0}c[w>>2]=0;c[t>>2]=0;c[u>>2]=0;c[v>>2]=0;while(1){if(!((c[u>>2]|0)>>>0<(c[q>>2]|0)>>>0?1:(c[w>>2]|0)>>>0>0)){D=32;break}if((c[w>>2]|0)>>>0<5?(c[u>>2]|0)>>>0<(c[q>>2]|0)>>>0:0){n=c[v>>2]<<8;y=c[u>>2]|0;c[u>>2]=y+1;c[v>>2]=n|(d[(c[x>>2]|0)+y>>0]|0);c[w>>2]=(c[w>>2]|0)+8}if((c[w>>2]|0)>>>0<5){c[v>>2]=c[v>>2]<<5-(c[w>>2]|0);if((c[w>>2]|0)!=((c[q>>2]<<3>>>0)%5|0|0)){D=15;break}c[w>>2]=5}if((c[t>>2]|0)>>>0>=(c[s>>2]|0)>>>0){D=24;break}y=a[(c[281]|0)+((c[v>>2]|0)>>>((c[w>>2]|0)-5|0)&31)>>0]|0;n=c[t>>2]|0;c[t>>2]=n+1;a[(c[r>>2]|0)+n>>0]=y;c[w>>2]=(c[w>>2]|0)-5}if((D|0)==15){c[z>>2]=900;if((c[279]|0)==-1)c[279]=$b(1,0,21783,21832,c[z>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[279]|0))_b();c[k>>2]=21783;c[k+4>>2]=900;cc(1,61747,k);_b()}else if((D|0)==24){c[A>>2]=905;if((c[280]|0)==-1)c[280]=$b(1,0,21783,21832,c[A>>2]|0)|0;if((ac()|0)<=0){if(c[280]|0){c[j>>2]=21783;c[j+4>>2]=905;cc(1,61747,j)}}else bc(-1,0);c[o>>2]=0;C=c[o>>2]|0;l=h;return C|0}else if((D|0)==32){if(!(c[w>>2]|0)){if((c[t>>2]|0)>>>0<(c[s>>2]|0)>>>0)a[(c[r>>2]|0)+(c[t>>2]|0)>>0]=0;c[o>>2]=(c[r>>2]|0)+(c[t>>2]|0);C=c[o>>2]|0;l=h;return C|0}c[B>>2]=911;if((c[282]|0)==-1)c[282]=$b(1,0,21783,21832,c[B>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[282]|0))_b();c[i>>2]=21783;c[i+4>>2]=911;cc(1,61747,i);_b()}return 0}function sd(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[g>>2]=b;c[h>>2]=d;c[j>>2]=c[h>>2]<<3;if((((c[j>>2]|0)>>>0)%5|0)>>>0>0)c[j>>2]=(c[j>>2]|0)+(5-(((c[j>>2]|0)>>>0)%5|0));c[j>>2]=((c[j>>2]|0)>>>0)/5|0;c[i>>2]=Ub((c[j>>2]|0)+1|0,21783,939)|0;c[k>>2]=rd(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0,c[j>>2]|0)|0;if(!(c[k>>2]|0)){Wb(c[i>>2]|0,21783,943);c[f>>2]=0;n=c[f>>2]|0;l=e;return n|0}else{a[c[k>>2]>>0]=0;c[f>>2]=c[i>>2];n=c[f>>2]|0;l=e;return n|0}return 0}function td(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;g=l;l=l+64|0;if((l|0)>=(m|0))$(64);h=g;i=g+60|0;j=g+56|0;k=g+52|0;n=g+48|0;o=g+44|0;p=g+40|0;q=g+36|0;r=g+32|0;s=g+28|0;t=g+24|0;u=g+20|0;v=g+16|0;w=g+12|0;x=g+8|0;c[j>>2]=b;c[k>>2]=d;c[n>>2]=e;c[o>>2]=f;c[w>>2]=c[o>>2]<<3;if(!(c[k>>2]|0))if(!(c[o>>2]|0)){c[i>>2]=1;y=c[i>>2]|0;l=g;return y|0}else{c[i>>2]=-1;y=c[i>>2]|0;l=g;return y|0}c[v>>2]=c[n>>2];c[q>>2]=c[o>>2];c[p>>2]=c[k>>2];if((((c[w>>2]|0)>>>0)%5|0)>>>0>0){c[s>>2]=((c[w>>2]|0)>>>0)%5|0;c[u>>2]=5-(c[s>>2]|0);o=(c[p>>2]|0)+-1|0;c[p>>2]=o;n=ud(a[(c[j>>2]|0)+o>>0]|0)|0;c[t>>2]=n;c[r>>2]=n>>c[u>>2]}else{c[s>>2]=5;c[u>>2]=0;n=(c[p>>2]|0)+-1|0;c[p>>2]=n;o=ud(a[(c[j>>2]|0)+n>>0]|0)|0;c[t>>2]=o;c[r>>2]=o}if(((((c[w>>2]|0)+(c[u>>2]|0)|0)>>>0)/5|0|0)!=(c[k>>2]|0)){c[i>>2]=-1;y=c[i>>2]|0;l=g;return y|0}if(-1==(c[t>>2]|0)){c[i>>2]=-1;y=c[i>>2]|0;l=g;return y|0}while(1){z=c[p>>2]|0;if((c[q>>2]|0)>>>0<=0){A=25;break}if(!z){A=14;break}k=(c[p>>2]|0)+-1|0;c[p>>2]=k;u=ud(a[(c[j>>2]|0)+k>>0]|0)|0;c[t>>2]=u;c[r>>2]=u<<c[s>>2]|c[r>>2];if(-1==(c[t>>2]|0)){A=22;break}c[s>>2]=(c[s>>2]|0)+5;if((c[s>>2]|0)>>>0<8)continue;u=c[r>>2]&255;k=(c[q>>2]|0)+-1|0;c[q>>2]=k;a[(c[v>>2]|0)+k>>0]=u;c[r>>2]=(c[r>>2]|0)>>>8;c[s>>2]=(c[s>>2]|0)-8}if((A|0)==14){c[x>>2]=1003;if((c[283]|0)==-1)c[283]=$b(1,0,21783,21895,c[x>>2]|0)|0;if((ac()|0)<=0){if(c[283]|0){c[h>>2]=21783;c[h+4>>2]=1003;cc(1,61747,h)}}else bc(-1,0);c[i>>2]=-1;y=c[i>>2]|0;l=g;return y|0}else if((A|0)==22){c[i>>2]=-1;y=c[i>>2]|0;l=g;return y|0}else if((A|0)==25)if(0!=(z|0)|0!=(c[s>>2]|0)){c[i>>2]=-1;y=c[i>>2]|0;l=g;return y|0}else{c[i>>2]=1;y=c[i>>2]|0;l=g;return y|0}return 0}function ud(b){b=b|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+4|0;g=e+8|0;h=e;a[g>>0]=b;switch(d[g>>0]|0|0){case 111:case 79:{a[g>>0]=48;break}case 76:case 108:case 73:case 105:{a[g>>0]=49;break}case 85:case 117:{a[g>>0]=86;break}default:{}}if((d[g>>0]|0|0)>=48?(d[g>>0]|0|0)<=57:0){c[f>>2]=(d[g>>0]|0)-48;i=c[f>>2]|0;l=e;return i|0}if((d[g>>0]|0|0)>=97?(d[g>>0]|0|0)<=122:0)a[g>>0]=gv(d[g>>0]|0)|0;c[h>>2]=0;if((d[g>>0]|0|0)>=65?(d[g>>0]|0|0)<=90:0){if(73<(d[g>>0]|0|0))c[h>>2]=(c[h>>2]|0)+1;if(76<(d[g>>0]|0|0))c[h>>2]=(c[h>>2]|0)+1;if(79<(d[g>>0]|0|0))c[h>>2]=(c[h>>2]|0)+1;if(85<(d[g>>0]|0|0))c[h>>2]=(c[h>>2]|0)+1;c[f>>2]=(d[g>>0]|0)-65+10-(c[h>>2]|0);i=c[f>>2]|0;l=e;return i|0}c[f>>2]=-1;i=c[f>>2]|0;l=e;return i|0}function vd(){var a=0;a=70696;D=c[a+4>>2]|0;return c[a>>2]|0}function wd(){var a=0,b=0,d=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=a;c[b>>2]=c[16];c[b+4>>2]=c[17];d=b;D=c[d+4>>2]|0;l=a;return c[d>>2]|0}function xd(){var a=0,b=0,d=0,e=0,f=0,g=0;a=l;l=l+32|0;if((l|0)>=(m|0))$(32);b=a+8|0;d=a;e=a+16|0;lb(e|0,0)|0;f=c[e>>2]|0;g=gx(f|0,((f|0)<0)<<31>>31|0,1e3,0)|0;f=gx(g|0,D|0,1e3,0)|0;g=c[e+4>>2]|0;e=Ww(f|0,D|0,g|0,((g|0)<0)<<31>>31|0)|0;g=70696;f=Ww(e|0,D|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=d;c[g>>2]=f;c[g+4>>2]=D;c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];d=b;D=c[d+4>>2]|0;l=a;return c[d>>2]|0}function yd(){var a=0,b=0,d=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=a;c[b>>2]=c[17676];c[b+4>>2]=c[17677];d=b;D=c[d+4>>2]|0;l=a;return c[d>>2]|0}function zd(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0;b=l;l=l+32|0;if((l|0)>=(m|0))$(32);d=b+24|0;e=b+16|0;f=b+8|0;g=b;h=xd()|0;i=g;c[i>>2]=h;c[i+4>>2]=D;c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];g=a;i=c[g+4>>2]|0;h=e;j=c[h+4>>2]|0;if(i>>>0>j>>>0|((i|0)==(j|0)?(c[g>>2]|0)>>>0>(c[h>>2]|0)>>>0:0)){h=yd()|0;g=d;c[g>>2]=h;c[g+4>>2]=D;k=d;n=k;o=c[n>>2]|0;p=k+4|0;q=p;r=c[q>>2]|0;D=r;l=b;return o|0}else{g=e;e=a;a=Tw(c[g>>2]|0,c[g+4>>2]|0,c[e>>2]|0,c[e+4>>2]|0)|0;e=f;c[e>>2]=a;c[e+4>>2]=D;c[d>>2]=c[f>>2];c[d+4>>2]=c[f+4>>2];k=d;n=k;o=c[n>>2]|0;p=k+4|0;q=p;r=c[q>>2]|0;D=r;l=b;return o|0}return 0}function Ad(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d;f=e;c[f>>2]=a;c[f+4>>2]=b;b=Iv(c[e>>2]|0)|0;f=Ww(0,b|0,Iv(c[e+4>>2]|0)|0,0)|0;l=d;return f|0}function Bd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d;f=e;c[f>>2]=a;c[f+4>>2]=b;b=Mv(c[e>>2]|0)|0;f=Ww(0,b|0,Mv(c[e+4>>2]|0)|0,0)|0;l=d;return f|0}function Cd(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=Dd(c[d>>2]|0)|0;l=b;return a|0}function Dd(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=Bt(c[d>>2]|0)|0;l=b;return a|0}function Ed(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;if(!(c[f>>2]|0)){g=0;l=d;return g|0}g=(c[e>>2]&127)<<24|c[f>>2]&65535;l=d;return g|0}function Fd(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=Ed(1,c[d>>2]|0)|0;l=b;return a|0}function Gd(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=gf(c[d>>2]|0)|0;l=b;return a|0}function Hd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+20|0;f=d+16|0;g=d;c[e>>2]=a;c[g>>2]=b;c[f>>2]=Fd(kf(c[e>>2]|0,g)|0)|0;l=d;return c[f>>2]|0}function Id(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f+12|0;h=f+8|0;i=f+4|0;j=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;e=Fd(Sf(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0,c[j>>2]|0)|0)|0;l=f;return e|0}function Jd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f+28|0;h=f+24|0;i=f+20|0;j=f+16|0;k=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[k>>2]=e;c[j>>2]=dg(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0,k)|0;k=Fd(c[j>>2]|0)|0;l=f;return k|0}function Kd(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;Rf(c[d>>2]|0);l=b;return}function Ld(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f+12|0;h=f+8|0;i=f+4|0;j=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;e=fg(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0,c[j>>2]|0)|0;l=f;return e|0}function Md(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;d=Tf(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;l=e;return d|0}function Nd(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=bg(c[d>>2]|0)|0;l=b;return a|0}function Od(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;d=$f(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;l=e;return d|0}function Pd(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=Rp(c[d>>2]|0)|0;l=b;return a|0}function Qd(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;Tp(c[d>>2]|0);l=b;return}function Rd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=wo(c[e>>2]|0,c[f>>2]|0)|0;l=d;return b|0}function Sd(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0;g=l;l=l+32|0;if((l|0)>=(m|0))$(32);h=g+16|0;i=g+12|0;j=g+8|0;k=g+4|0;n=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[n>>2]=f;f=Fd(Zo(c[h>>2]|0,c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[n>>2]|0)|0)|0;l=g;return f|0}function Td(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0;g=l;l=l+32|0;if((l|0)>=(m|0))$(32);h=g+16|0;i=g+12|0;j=g+8|0;k=g+4|0;n=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[n>>2]=f;f=Fd(bp(c[h>>2]|0,c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[n>>2]|0)|0)|0;l=g;return f|0}function Ud(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f+12|0;h=f+8|0;i=f+4|0;j=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;Ro(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0,c[j>>2]|0);l=f;return}function Vd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f+12|0;h=f+8|0;i=f+4|0;j=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;So(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0,c[j>>2]|0);l=f;return}function Wd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;d=Fo(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;l=e;return d|0}function Xd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;d=Lo(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;l=e;return d|0}function Yd(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=xn(c[d>>2]|0)|0;l=b;return a|0}function Zd(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;zn(c[d>>2]|0);l=b;return}function _d(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;d=Fd(Wh(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0)|0)|0;l=e;return d|0}function $d(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;d=Jn(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;l=e;return d|0}function ae(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;d=Kn(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;l=e;return d|0}function be(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f+12|0;h=f+8|0;i=f+4|0;j=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;e=c[g>>2]|0;g=c[h>>2]|0;h=c[i>>2]|0;i=tn(e,g,h,rh(c[j>>2]|0,1)|0)|0;l=f;return i|0}function ce(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f+12|0;h=f+8|0;i=f+4|0;j=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;e=c[g>>2]|0;g=c[h>>2]|0;h=c[i>>2]|0;$n(e,g,h,rh(c[j>>2]|0,1)|0);l=f;return}function de(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=lo(c[d>>2]|0)|0;l=b;return a|0}function ee(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=mo(c[e>>2]|0,c[f>>2]|0)|0;l=d;return b|0}function fe(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;po(c[e>>2]|0,c[f>>2]|0);l=d;return}function ge(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=Gp(c[e>>2]|0,c[f>>2]|0)|0;l=d;return b|0}function he(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=Vp(c[e>>2]|0,c[f>>2]|0)|0;l=d;return b|0}function ie(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;e=(ef()|0)!=0;d=c[h>>2]|0;if(e){c[g>>2]=Fd(wh(d,c[i>>2]|0,c[j>>2]|0,c[k>>2]|0)|0)|0;n=c[g>>2]|0;l=f;return n|0}else{c[d>>2]=0;c[g>>2]=Fd(176)|0;n=c[g>>2]|0;l=f;return n|0}return 0}function je(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;Bh(c[d>>2]|0);l=b;return}function ke(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;if(ef()|0){c[f>>2]=le(Jh(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0)|0)|0;j=c[f>>2]|0;l=e;return j|0}else{c[f>>2]=Fd(176)|0;j=c[f>>2]|0;l=e;return j|0}return 0}function le(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=me(32,c[d>>2]|0)|0;l=b;return a|0}function me(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=Ed(c[e>>2]|0,c[f>>2]|0)|0;l=d;return b|0}function ne(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;if(ef()|0){c[f>>2]=le(Lh(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0)|0)|0;j=c[f>>2]|0;l=e;return j|0}else{c[f>>2]=Fd(176)|0;j=c[f>>2]|0;l=e;return j|0}return 0}function oe(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;g=l;l=l+32|0;if((l|0)>=(m|0))$(32);h=g+20|0;i=g+16|0;j=g+12|0;k=g+8|0;n=g+4|0;o=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[n>>2]=e;c[o>>2]=f;if(ef()|0){c[h>>2]=Fd(Ch(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[n>>2]|0,c[o>>2]|0)|0)|0;p=c[h>>2]|0;l=g;return p|0}if(c[j>>2]|0)Uw(c[j>>2]|0,66,c[k>>2]|0)|0;c[h>>2]=Fd(176)|0;p=c[h>>2]|0;l=g;return p|0}function pe(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;g=l;l=l+32|0;if((l|0)>=(m|0))$(32);h=g+20|0;i=g+16|0;j=g+12|0;k=g+8|0;n=g+4|0;o=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[n>>2]=e;c[o>>2]=f;if(ef()|0){c[h>>2]=Fd(Gh(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[n>>2]|0,c[o>>2]|0)|0)|0;p=c[h>>2]|0;l=g;return p|0}else{c[h>>2]=Fd(176)|0;p=c[h>>2]|0;l=g;return p|0}return 0}function qe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;d=(ef()|0)!=0;b=c[g>>2]|0;if(d){c[f>>2]=Fd(Wj(b,c[h>>2]|0,c[i>>2]|0)|0)|0;j=c[f>>2]|0;l=e;return j|0}else{c[b>>2]=0;c[f>>2]=Fd(176)|0;j=c[f>>2]|0;l=e;return j|0}return 0}function re(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;if(ef()|0){c[f>>2]=Fd(Xj(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0)|0)|0;j=c[f>>2]|0;l=e;return j|0}else{c[f>>2]=Fd(176)|0;j=c[f>>2]|0;l=e;return j|0}return 0}function se(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[e>>2]=a;if(ef()|0){c[d>>2]=Fd(Yj(c[e>>2]|0)|0)|0;f=c[d>>2]|0;l=b;return f|0}else{c[d>>2]=Fd(176)|0;f=c[d>>2]|0;l=b;return f|0}return 0}function te(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+8|0;f=d+4|0;g=d;c[f>>2]=a;c[g>>2]=b;b=(ef()|0)!=0;a=c[f>>2]|0;if(b){c[e>>2]=Fd(Zj(a,c[g>>2]|0)|0)|0;h=c[e>>2]|0;l=d;return h|0}else{c[a>>2]=0;c[e>>2]=Fd(176)|0;h=c[e>>2]|0;l=d;return h|0}return 0}function ue(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;d=(ef()|0)!=0;b=c[g>>2]|0;if(d){c[f>>2]=Fd(Si(b,c[h>>2]|0,c[i>>2]|0)|0)|0;j=c[f>>2]|0;l=e;return j|0}else{c[b>>2]=0;c[f>>2]=Fd(176)|0;j=c[f>>2]|0;l=e;return j|0}return 0}function ve(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;_i(c[d>>2]|0);l=b;return}function we(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;Zi(c[d>>2]|0);l=b;return}function xe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;if(!(ef()|0)){l=e;return}$i(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0);l=e;return}function ye(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=lj(c[e>>2]|0,c[f>>2]|0)|0;l=d;return b|0}function ze(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f+12|0;h=f+8|0;i=f+4|0;j=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;if(!(ef()|0))dh(21925,1175,21938,0,21958);hj(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0,c[j>>2]|0);l=f;return}function Ae(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[e>>2]=a;if(ef()|0){c[d>>2]=nj(c[e>>2]|0)|0;f=c[d>>2]|0;l=b;return f|0}else{dh(21925,1198,21990,0,22007);c[d>>2]=0;f=c[d>>2]|0;l=b;return f|0}return 0}function Be(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=oj(c[d>>2]|0)|0;l=b;return a|0}function Ce(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;if(ef()|0){c[f>>2]=Fd(fj(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0)|0)|0;j=c[f>>2]|0;l=e;return j|0}else{c[f>>2]=Fd(176)|0;j=c[f>>2]|0;l=e;return j|0}return 0}function De(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;if(!(ef()|0)){dh(21925,1287,22037,1,21958);Yg()}jn(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0);l=e;return}function Ee(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;if(!(ef()|0)){dh(21925,1340,22052,1,21958);Yg()}nn(c[e>>2]|0,c[f>>2]|0);l=d;return}function Fe(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;sh(c[d>>2]|0);l=b;return}function Ge(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;Gf(c[e>>2]|0,c[f>>2]|0);l=d;return}function He(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;Ke(c[e>>2]|0,c[f>>2]|0);l=d;return}function Ie(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;vf(c[d>>2]|0);l=b;return}function Je(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[e>>2]=a;if(c[17693]|0){c[d>>2]=yb[c[17693]&15](c[e>>2]|0)|0;f=c[d>>2]|0;l=b;return f|0}else{c[d>>2]=c[e>>2];f=c[d>>2]|0;l=b;return f|0}return 0}function Ke(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;c[17694]=c[f>>2];c[17695]=c[e>>2];l=d;return}function Le(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;if(!(c[f>>2]|0))c[f>>2]=Bt(c[e>>2]|0)|0;if(c[17695]|0?(Wg()|0)==0:0)zb[c[17695]&7](c[17694]|0,c[e>>2]|0,c[f>>2]|0);dh(22070,86,22077,1,c[f>>2]|0);Me(22095);Me(c[f>>2]|0);Me(22526);Tg();Aa()}function Me(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;c[d>>2]=a;a=c[d>>2]|0;c[b>>2]=ew(2,a,hv(c[d>>2]|0)|0)|0;l=b;return}function Ne(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;c[17698]=c[d>>2];l=b;return}function Oe(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;l=b;return (c[17698]|0)>=(c[d>>2]|0)|0}function Pe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e;g=e+12|0;h=e+8|0;i=e+4|0;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;if(c[17696]|0)Eb[c[17696]&1](c[17697]|0,c[g>>2]|0,c[h>>2]|0,c[i>>2]|0);else{switch(c[g>>2]|0){case 30:case 20:case 10:case 0:break;case 40:{Yv(22110,c[3977]|0)|0;break}case 50:{Yv(22118,c[3977]|0)|0;break}case 100:{Yv(22132,c[3977]|0)|0;break}default:{d=c[3977]|0;c[f>>2]=c[g>>2];Fv(d,22138,f)|0}}Uu(c[3977]|0,c[h>>2]|0,c[i>>2]|0)|0}if((c[g>>2]|0)==40|(c[g>>2]|0)==50){dh(22070,140,22163,1,22174);Tg();Aa()}else{l=e;return}}function Qe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e+20|0;g=e+16|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;Pe(c[f>>2]|0,c[g>>2]|0,h);l=e;return}function Re(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e;g=e+20|0;h=e+16|0;i=e+12|0;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;d=c[h>>2]|0;h=c[i>>2]|0;c[f>>2]=c[g>>2];c[f+4>>2]=d;c[f+8>>2]=h;Qe(50,22204,f);Aa()}function Se(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f;h=f+28|0;i=f+24|0;j=f+20|0;k=f+16|0;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;e=c[i>>2]|0;i=c[j>>2]|0;j=c[k>>2]|0;c[g>>2]=c[h>>2];c[g+4>>2]=e;c[g+8>>2]=i;c[g+12>>2]=j;Qe(50,22234,g);Aa()}function Te(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+16|0;f=d;c[e>>2]=a;c[f>>2]=b;Pe(10,c[e>>2]|0,f);l=d;return}function Ue(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e+16|0;g=e;c[e+20>>2]=a;c[f>>2]=b;c[g>>2]=d;Pe(10,c[f>>2]|0,g);l=e;return 0}function Ve(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+16|0;f=d;c[e>>2]=a;c[f>>2]=b;Pe(30,c[e>>2]|0,f);l=d;return}function We(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+16|0;f=d;c[e>>2]=a;c[f>>2]=b;Pe(40,c[e>>2]|0,f);Aa()}function Xe(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+16|0;f=d;c[e>>2]=a;c[f>>2]=b;Pe(50,c[e>>2]|0,f);Aa()}function Ye(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+16|0;f=d;c[e>>2]=a;c[f>>2]=b;Pe(100,c[e>>2]|0,f);l=d;return}function Ze(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+16|0;f=d;c[e>>2]=a;if(!(c[e>>2]|0)){l=d;return}c[f>>2]=b;Pe(0,c[e>>2]|0,f);l=d;return}function _e(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;$e(c[f>>2]|0,22268,c[g>>2]|0,c[h>>2]|0);l=e;return}function $e(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;h=l;l=l+96|0;if((l|0)>=(m|0))$(96);i=h+56|0;j=h+40|0;k=h+32|0;n=h+24|0;o=h+16|0;p=h+8|0;q=h;r=h+84|0;s=h+80|0;t=h+76|0;u=h+72|0;v=h+68|0;w=h+64|0;x=h+60|0;c[r>>2]=b;c[s>>2]=e;c[t>>2]=f;c[u>>2]=g;c[v>>2]=0;c[w>>2]=0;if((c[r>>2]|0?a[c[r>>2]>>0]|0:0)?(c[v>>2]=1,g=c[s>>2]|0,c[q>>2]=c[r>>2],c[q+4>>2]=g,Ye(22270,q),(c[u>>2]|0?(a[(c[s>>2]|0)+1>>0]|0)==91:0)&(c[t>>2]|0)!=0):0){Ze(22526,p);c[s>>2]=22268;c[o>>2]=hv(c[r>>2]|0)|0;c[o+4>>2]=72319;Ye(22276,o)}a:do if(c[u>>2]|0){c[x>>2]=c[t>>2];while(1){o=c[u>>2]|0;c[u>>2]=o+-1;if(!o)break a;c[n>>2]=d[c[x>>2]>>0];Ze(22282,n);if(c[v>>2]|0?(o=(c[w>>2]|0)+1|0,c[w>>2]=o,(o|0)==32&(c[u>>2]|0)!=0):0){c[w>>2]=0;Ze(22287,k);o=hv(c[r>>2]|0)|0;p=hv(c[s>>2]|0)|0;c[j>>2]=o;c[j+4>>2]=72319;c[j+8>>2]=p;c[j+12>>2]=72319;Ye(22291,j)}c[x>>2]=(c[x>>2]|0)+1}}while(0);if(!(c[r>>2]|0)){l=h;return}Ze(22526,i);l=h;return}function af(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;d=l;l=l+64|0;if((l|0)>=(m|0))$(64);e=d;f=d+28|0;g=d+24|0;h=d+20|0;i=d+16|0;j=d+12|0;k=d+8|0;n=d+4|0;o=d+32|0;c[f>>2]=a;c[g>>2]=b;if(!(c[g>>2]|0)){$e(c[f>>2]|0?c[f>>2]|0:22268,22299,0,0);l=d;return}if(c[g>>2]|0?c[(c[g>>2]|0)+12>>2]&4|0:0){c[n>>2]=Gp(c[g>>2]|0,k)|0;c[e>>2]=c[k>>2];Su(o,30,22307,e)|0;$e(c[f>>2]|0?c[f>>2]|0:22268,o,c[n>>2]|0,(((c[k>>2]|0)+7|0)>>>0)/8|0);l=d;return}c[h>>2]=Vo(c[g>>2]|0,0,i,j)|0;if(!(c[h>>2]|0)){$e(c[f>>2]|0?c[f>>2]|0:22268,22317,0,0);l=d;return}g=c[f>>2]|0;f=c[j>>2]|0?22332:22334;if(c[i>>2]|0)$e(g,f,c[h>>2]|0,c[i>>2]|0);else $e(g,f,72319,1);vf(c[h>>2]|0);l=d;return}function bf(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;e=l;l=l+48|0;if((l|0)>=(m|0))$(48);f=e+28|0;g=e+24|0;h=e+20|0;i=e+16|0;j=e+12|0;k=e+32|0;n=e;o=e+8|0;c[f>>2]=b;c[g>>2]=(((c[f>>2]|0)!=0^1)&1)+(c[f>>2]|0)+63&-64;f=c[g>>2]|0;c[h>>2]=Za()|0;g=f;b=l;l=l+((1*g|0)+15&-16)|0;if((l|0)>=(m|0))$((1*g|0)+15&-16|0);c[i>>2]=b;c[j>>2]=f;a[k>>0]=0;f=n;c[f>>2]=d[k>>0];c[f+4>>2]=0;while(1){if(!(c[i>>2]&7|0?(c[j>>2]|0)!=0:0))break;a[c[i>>2]>>0]=a[k>>0]|0;c[i>>2]=(c[i>>2]|0)+1;c[j>>2]=(c[j>>2]|0)+-1}if((c[j>>2]|0)>>>0>=8){f=n;b=gx(c[f>>2]|0,c[f+4>>2]|0,16843009,16843009)|0;f=n;c[f>>2]=b;c[f+4>>2]=D;do{c[o>>2]=c[i>>2];f=n;b=c[f+4>>2]|0;g=c[o>>2]|0;c[g>>2]=c[f>>2];c[g+4>>2]=b;c[j>>2]=(c[j>>2]|0)-8;c[i>>2]=(c[i>>2]|0)+8}while((c[j>>2]|0)>>>0>=8)}while(1){if(!(c[j>>2]|0))break;a[c[i>>2]>>0]=a[k>>0]|0;c[i>>2]=(c[i>>2]|0)+1;c[j>>2]=(c[j>>2]|0)+-1}Ea(c[h>>2]|0);l=e;return}function cf(){return}function df(){Ft(33);Le(Ct(c[(xu()|0)>>2]|0)|0,22336)}function ef(){if(!(c[17699]|0))ff();return fh()|0}function ff(){var a=0,b=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=a;c[b>>2]=0;if(c[17699]|0){l=a;return}c[17699]=1;Xm(0);Vg(c[17700]|0);rg();c[b>>2]=Nh()|0;if((((((c[b>>2]|0)==0?(c[b>>2]=vj()|0,(c[b>>2]|0)==0):0)?(c[b>>2]=_j()|0,(c[b>>2]|0)==0):0)?(c[b>>2]=wj()|0,(c[b>>2]|0)==0):0)?(c[b>>2]=Gg()|0,(c[b>>2]|0)==0):0)?(c[b>>2]=tp()|0,(c[b>>2]|0)==0):0){l=a;return}Re(22351,123,22360)}function gf(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;d=l;l=l+48|0;if((l|0)>=(m|0))$(48);e=d+36|0;f=d+32|0;g=d+28|0;h=d+24|0;i=d+20|0;j=d+16|0;k=d+12|0;n=d+8|0;o=d+4|0;p=d;c[f>>2]=b;c[g>>2]=22372;if((c[f>>2]|0?(a[c[f>>2]>>0]|0)==1:0)?(a[(c[f>>2]|0)+1>>0]|0)==1:0){c[e>>2]=Xp()|0;q=c[e>>2]|0;l=d;return q|0}ff();b=c[g>>2]|0;if(!(c[f>>2]|0)){c[e>>2]=b;q=c[e>>2]|0;l=d;return q|0}c[p>>2]=hf(b,h,i,j)|0;if(!(c[p>>2]|0)){c[e>>2]=0;q=c[e>>2]|0;l=d;return q|0}if(!(hf(c[f>>2]|0,k,n,o)|0)){c[e>>2]=0;q=c[e>>2]|0;l=d;return q|0}do if((c[h>>2]|0)<=(c[k>>2]|0)){if((c[h>>2]|0)==(c[k>>2]|0)?(c[i>>2]|0)>(c[n>>2]|0):0)break;if(((c[h>>2]|0)==(c[k>>2]|0)?(c[i>>2]|0)==(c[n>>2]|0):0)?(c[j>>2]|0)>(c[o>>2]|0):0)break;if(((c[h>>2]|0)==(c[k>>2]|0)?(c[i>>2]|0)==(c[n>>2]|0):0)?(c[j>>2]|0)==(c[o>>2]|0):0)break;c[e>>2]=0;q=c[e>>2]|0;l=d;return q|0}while(0);c[e>>2]=c[g>>2];q=c[e>>2]|0;l=d;return q|0}function hf(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0;g=l;l=l+32|0;if((l|0)>=(m|0))$(32);h=g+16|0;i=g+12|0;j=g+8|0;k=g+4|0;n=g;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[n>>2]=f;c[i>>2]=jf(c[i>>2]|0,c[j>>2]|0)|0;if(c[i>>2]|0?(a[c[i>>2]>>0]|0)==46:0){c[i>>2]=(c[i>>2]|0)+1;c[i>>2]=jf(c[i>>2]|0,c[k>>2]|0)|0;if(c[i>>2]|0?(a[c[i>>2]>>0]|0)==46:0){c[i>>2]=(c[i>>2]|0)+1;c[i>>2]=jf(c[i>>2]|0,c[n>>2]|0)|0;if(c[i>>2]|0){c[h>>2]=c[i>>2];o=c[h>>2]|0;l=g;return o|0}else{c[h>>2]=0;o=c[h>>2]|0;l=g;return o|0}}c[h>>2]=0;o=c[h>>2]|0;l=g;return o|0}c[h>>2]=0;o=c[h>>2]|0;l=g;return o|0}function jf(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[g>>2]=b;c[h>>2]=d;c[i>>2]=0;if((a[c[g>>2]>>0]|0)==48?Cw(a[(c[g>>2]|0)+1>>0]|0)|0:0){c[f>>2]=0;j=c[f>>2]|0;l=e;return j|0}while(1){d=(Cw(a[c[g>>2]>>0]|0)|0)!=0;k=c[i>>2]|0;if(!d)break;c[i>>2]=k*10;c[i>>2]=(c[i>>2]|0)+((a[c[g>>2]>>0]|0)-48);c[g>>2]=(c[g>>2]|0)+1}c[c[h>>2]>>2]=k;c[f>>2]=(c[i>>2]|0)<0?0:c[g>>2]|0;j=c[f>>2]|0;l=e;return j|0}function kf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0;d=l;l=l+176|0;if((l|0)>=(m|0))$(176);e=d+168|0;f=d+164|0;g=d+160|0;h=d+156|0;i=d+152|0;j=d+148|0;k=d+144|0;n=d+140|0;o=d+136|0;p=d+132|0;q=d+128|0;r=d+124|0;s=d+120|0;t=d+116|0;u=d+112|0;v=d+108|0;w=d+104|0;x=d+100|0;y=d+96|0;z=d+92|0;A=d+88|0;B=d+84|0;C=d+80|0;D=d+76|0;E=d+72|0;F=d+68|0;G=d+64|0;H=d+60|0;I=d+56|0;J=d+52|0;K=d+48|0;L=d+44|0;M=d+40|0;N=d+36|0;O=d+32|0;P=d+28|0;Q=d+24|0;R=d+20|0;S=d+16|0;T=d+12|0;U=d+8|0;V=d+4|0;W=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=0;do switch(c[e>>2]|0){case 31:{tg();X=c[g>>2]|0;l=d;return X|0}case 44:{Xm(0);bn();X=c[g>>2]|0;l=d;return X|0}case 51:{if(!(en()|0)){X=c[g>>2]|0;l=d;return X|0}c[g>>2]=1;X=c[g>>2]|0;l=d;return X|0}case 13:{$m();X=c[g>>2]|0;l=d;return X|0}case 14:{Ug();X=c[g>>2]|0;l=d;return X|0}case 30:{ff();Cg(0);X=c[g>>2]|0;l=d;return X|0}case 37:{ff();c[17701]=1;X=c[g>>2]|0;l=d;return X|0}case 24:{ff();b=c[f>>2]|0;a=(c[b>>2]|0)+(4-1)&~(4-1);Y=c[a>>2]|0;c[b>>2]=a+4;c[h>>2]=Y;Cg(c[h>>2]|0);if(!((Bg()|0)&4)){X=c[g>>2]|0;l=d;return X|0}c[g>>2]=1;X=c[g>>2]|0;l=d;return X|0}case 25:{ff();Tg();X=c[g>>2]|0;l=d;return X|0}case 27:{Xm(0);zg(Bg()|0|1);X=c[g>>2]|0;l=d;return X|0}case 28:{Xm(0);zg(Bg()|0|2);X=c[g>>2]|0;l=d;return X|0}case 29:{Xm(0);zg((Bg()|0)&-3);X=c[g>>2]|0;l=d;return X|0}case 22:{ff();an();X=c[g>>2]|0;l=d;return X|0}case 45:{Xm(0);Y=c[f>>2]|0;a=(c[Y>>2]|0)+(4-1)&~(4-1);b=c[a>>2]|0;c[Y>>2]=a+4;c[i>>2]=b;kn(c[i>>2]|0);X=c[g>>2]|0;l=d;return X|0}case 46:{Xm(0);if(!(ef()|0)){X=c[g>>2]|0;l=d;return X|0}ln();X=c[g>>2]|0;l=d;return X|0}case 19:{Xm(0);b=c[f>>2]|0;a=(c[b>>2]|0)+(4-1)&~(4-1);Y=c[a>>2]|0;c[b>>2]=a+4;c[j>>2]=Y;Ne(c[j>>2]|0);X=c[g>>2]|0;l=d;return X|0}case 20:{Y=c[f>>2]|0;a=(c[Y>>2]|0)+(4-1)&~(4-1);b=c[a>>2]|0;c[Y>>2]=a+4;c[k>>2]=b;c[17702]=c[17702]|c[k>>2];X=c[g>>2]|0;l=d;return X|0}case 21:{b=c[f>>2]|0;a=(c[b>>2]|0)+(4-1)&~(4-1);Y=c[a>>2]|0;c[b>>2]=a+4;c[n>>2]=Y;c[17702]=c[17702]&~c[n>>2];X=c[g>>2]|0;l=d;return X|0}case 36:{ff();X=c[g>>2]|0;l=d;return X|0}case 40:{if(!(c[17699]|0)){X=c[g>>2]|0;l=d;return X|0}c[g>>2]=1;X=c[g>>2]|0;l=d;return X|0}case 39:{if(!(c[17703]|0)){X=c[g>>2]|0;l=d;return X|0}c[g>>2]=1;X=c[g>>2]|0;l=d;return X|0}case 38:{if(c[17703]|0){X=c[g>>2]|0;l=d;return X|0}ff();Ym(0);c[17703]=1;ef()|0;X=c[g>>2]|0;l=d;return X|0}case 47:{Xm(0);ff();X=c[g>>2]|0;l=d;return X|0}case 48:{Xm(0);Ym(1);if(!(ef()|0)){X=c[g>>2]|0;l=d;return X|0}mn();X=c[g>>2]|0;l=d;return X|0}case 52:{c[g>>2]=lf(60)|0;X=c[g>>2]|0;l=d;return X|0}case 49:{Xm(0);Y=c[f>>2]|0;a=(c[Y>>2]|0)+(4-1)&~(4-1);b=c[a>>2]|0;c[Y>>2]=a+4;c[o>>2]=b;cn(c[o>>2]|0);X=c[g>>2]|0;l=d;return X|0}case 50:{Xm(0);Ym(1);b=c[f>>2]|0;a=(c[b>>2]|0)+(4-1)&~(4-1);Y=c[a>>2]|0;c[b>>2]=a+4;c[p>>2]=Y;dn(((c[p>>2]|0)!=0^1^1)&1)|0;X=c[g>>2]|0;l=d;return X|0}case 70:{Zm();X=c[g>>2]|0;l=d;return X|0}case 53:{Y=c[f>>2]|0;a=(c[Y>>2]|0)+(4-1)&~(4-1);b=c[a>>2]|0;c[Y>>2]=a+4;c[r>>2]=b;c[q>>2]=c[r>>2];Xm(0);mf(c[q>>2]|0?28:27,c[q>>2]|0);X=c[g>>2]|0;l=d;return X|0}case 54:{Xm(0);if(!(oh()|0)){X=c[g>>2]|0;l=d;return X|0}c[g>>2]=1;X=c[g>>2]|0;l=d;return X|0}case 55:{if(!(Wg()|0)){X=c[g>>2]|0;l=d;return X|0}if((eh()|0)!=0|(c[17701]|0)!=0){X=c[g>>2]|0;l=d;return X|0}c[g>>2]=1;X=c[g>>2]|0;l=d;return X|0}case 56:{Xm(0);if(!(c[17699]|0)){c[17700]=1;X=c[g>>2]|0;l=d;return X|0}if(ph()|0)gh(1)|0;if(!(fh()|0)){X=c[g>>2]|0;l=d;return X|0}c[g>>2]=1;X=c[g>>2]|0;l=d;return X|0}case 57:{ff();c[g>>2]=gh(1)|0;X=c[g>>2]|0;l=d;return X|0}case 58:{b=c[f>>2]|0;a=(c[b>>2]|0)+(4-1)&~(4-1);Y=c[a>>2]|0;c[b>>2]=a+4;c[t>>2]=Y;c[s>>2]=c[t>>2];Y=c[f>>2]|0;a=(c[Y>>2]|0)+(4-1)&~(4-1);b=c[a>>2]|0;c[Y>>2]=a+4;c[v>>2]=b;c[u>>2]=c[v>>2];b=c[f>>2]|0;a=(c[b>>2]|0)+(4-1)&~(4-1);Y=c[a>>2]|0;c[b>>2]=a+4;c[x>>2]=Y;c[w>>2]=c[x>>2];Y=c[f>>2]|0;a=(c[Y>>2]|0)+(4-1)&~(4-1);b=c[a>>2]|0;c[Y>>2]=a+4;c[z>>2]=b;c[y>>2]=c[z>>2];b=c[f>>2]|0;a=(c[b>>2]|0)+(4-1)&~(4-1);Y=c[a>>2]|0;c[b>>2]=a+4;c[B>>2]=Y;c[A>>2]=c[B>>2];Y=c[f>>2]|0;a=(c[Y>>2]|0)+(4-1)&~(4-1);b=c[a>>2]|0;c[Y>>2]=a+4;c[D>>2]=b;c[C>>2]=c[D>>2];b=c[f>>2]|0;a=(c[b>>2]|0)+(4-1)&~(4-1);Y=c[a>>2]|0;c[b>>2]=a+4;c[F>>2]=Y;c[E>>2]=c[F>>2];Y=c[f>>2]|0;a=(c[Y>>2]|0)+(4-1)&~(4-1);b=c[a>>2]|0;c[Y>>2]=a+4;c[H>>2]=b;c[G>>2]=c[H>>2];if(ef()|0){c[g>>2]=pn(c[s>>2]|0,c[u>>2]|0,c[w>>2]|0,c[y>>2]|0,c[A>>2]|0,c[C>>2]|0,c[E>>2]|0,c[G>>2]|0)|0;X=c[g>>2]|0;l=d;return X|0}else{c[g>>2]=176;X=c[g>>2]|0;l=d;return X|0}break}case 59:{b=c[f>>2]|0;a=(c[b>>2]|0)+(4-1)&~(4-1);Y=c[a>>2]|0;c[b>>2]=a+4;c[J>>2]=Y;c[I>>2]=c[J>>2];Y=c[f>>2]|0;a=(c[Y>>2]|0)+(4-1)&~(4-1);b=c[a>>2]|0;c[Y>>2]=a+4;c[L>>2]=b;c[K>>2]=c[L>>2];b=c[f>>2]|0;a=(c[b>>2]|0)+(4-1)&~(4-1);Y=c[a>>2]|0;c[b>>2]=a+4;c[N>>2]=Y;c[M>>2]=c[N>>2];if(ef()|0){c[g>>2]=qn(c[I>>2]|0,c[K>>2]|0,c[M>>2]|0)|0;X=c[g>>2]|0;l=d;return X|0}else{c[g>>2]=176;X=c[g>>2]|0;l=d;return X|0}break}case 60:{Y=c[f>>2]|0;a=(c[Y>>2]|0)+(4-1)&~(4-1);b=c[a>>2]|0;c[Y>>2]=a+4;c[P>>2]=b;c[O>>2]=c[P>>2];rn(c[O>>2]|0);X=c[g>>2]|0;l=d;return X|0}case 61:{b=c[f>>2]|0;a=(c[b>>2]|0)+(4-1)&~(4-1);Y=c[a>>2]|0;c[b>>2]=a+4;c[Q>>2]=Y;c[g>>2]=nf(c[Q>>2]|0)|0;X=c[g>>2]|0;l=d;return X|0}case 63:{Y=c[f>>2]|0;a=(c[Y>>2]|0)+(4-1)&~(4-1);b=c[a>>2]|0;c[Y>>2]=a+4;c[S>>2]=b;c[R>>2]=c[S>>2];c[g>>2]=og(c[R>>2]|0)|0;X=c[g>>2]|0;l=d;return X|0}case 64:{if(c[17699]|0){c[g>>2]=1;X=c[g>>2]|0;l=d;return X|0}else{Xm(0);bh();X=c[g>>2]|0;l=d;return X|0}break}case 65:{b=c[f>>2]|0;a=(c[b>>2]|0)+(4-1)&~(4-1);Y=c[a>>2]|0;c[b>>2]=a+4;c[U>>2]=Y;c[T>>2]=c[U>>2];if((c[T>>2]|0)<=0){X=c[g>>2]|0;l=d;return X|0}Xm(c[T>>2]|0);X=c[g>>2]|0;l=d;return X|0}case 66:{Y=c[f>>2]|0;a=(c[Y>>2]|0)+(4-1)&~(4-1);b=c[a>>2]|0;c[Y>>2]=a+4;c[W>>2]=b;c[V>>2]=c[W>>2];if(!(c[V>>2]|0)){X=c[g>>2]|0;l=d;return X|0}b=_m(((c[17699]|0)!=0^1)&1)|0;c[c[V>>2]>>2]=b;X=c[g>>2]|0;l=d;return X|0}case 67:{Xm(0);zg(Bg()|0|8);X=c[g>>2]|0;l=d;return X|0}case 68:{Xm(0);zg(Bg()|0|16);X=c[g>>2]|0;l=d;return X|0}case 72:case 71:{c[g>>2]=69;X=c[g>>2]|0;l=d;return X|0}case 62:case 23:{X=c[g>>2]|0;l=d;return X|0}default:{Xm(0);c[g>>2]=61;X=c[g>>2]|0;l=d;return X|0}}while(0);return 0}function lf(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=of(1,c[d>>2]|0)|0;l=b;return a|0}function mf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;d=l;l=l+128|0;if((l|0)>=(m|0))$(128);e=d+88|0;f=d+80|0;g=d+72|0;h=d+64|0;i=d+48|0;j=d+24|0;k=d+16|0;n=d+8|0;o=d;p=d+116|0;q=d+112|0;r=d+108|0;s=d+104|0;t=d+100|0;u=d+96|0;c[p>>2]=a;c[q>>2]=b;b=c[p>>2]|0;a=c[q>>2]|0;c[o>>2]=22372;ub[b&63](a,22386,o)|0;o=c[p>>2]|0;a=c[q>>2]|0;c[n>>2]=22412;ub[o&63](a,22399,n)|0;n=c[p>>2]|0;a=c[q>>2]|0;c[k>>2]=22437;ub[n&63](a,22424,k)|0;k=c[p>>2]|0;a=c[q>>2]|0;c[j>>2]=22458;ub[k&63](a,22445,j)|0;ub[c[p>>2]&63](c[q>>2]|0,22472,d+32|0)|0;ub[c[p>>2]&63](c[q>>2]|0,22488,d+40|0)|0;j=c[p>>2]|0;a=c[q>>2]|0;c[i>>2]=sp()|0;ub[j&63](a,22500,i)|0;c[r>>2]=pg()|0;ub[c[p>>2]&63](c[q>>2]|0,22513,d+56|0)|0;c[t>>2]=0;while(1){i=qg(c[t>>2]|0,s)|0;c[u>>2]=i;if(!i)break;if(c[r>>2]&c[s>>2]|0){i=c[p>>2]|0;a=c[q>>2]|0;c[h>>2]=c[u>>2];ub[i&63](a,22522,h)|0}c[t>>2]=(c[t>>2]|0)+1}ub[c[p>>2]&63](c[q>>2]|0,22526,g)|0;g=c[p>>2]|0;h=c[q>>2]|0;s=(Wg()|0)!=0;r=(ah()|0)!=0;c[f>>2]=s?121:110;c[f+4>>2]=r?121:110;ub[g&63](h,22528,f)|0;c[t>>2]=_m(0)|0;switch(c[t>>2]|0){case 1:{c[u>>2]=22546;v=c[p>>2]|0;w=c[q>>2]|0;x=c[u>>2]|0;y=c[t>>2]|0;c[e>>2]=x;z=e+4|0;c[z>>2]=y;ub[v&63](w,22580,e)|0;l=d;return}case 2:{c[u>>2]=22555;v=c[p>>2]|0;w=c[q>>2]|0;x=c[u>>2]|0;y=c[t>>2]|0;c[e>>2]=x;z=e+4|0;c[z>>2]=y;ub[v&63](w,22580,e)|0;l=d;return}case 3:{c[u>>2]=22560;v=c[p>>2]|0;w=c[q>>2]|0;x=c[u>>2]|0;y=c[t>>2]|0;c[e>>2]=x;z=e+4|0;c[z>>2]=y;ub[v&63](w,22580,e)|0;l=d;return}default:Re(22351,321,22567)}}function nf(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=0;switch(c[d>>2]|0){case 30111:{c[e>>2]=Gt(1136)|0;break}case 30112:{c[e>>2]=Ht(1136)|0;break}case 30113:{c[e>>2]=It(1136)|0;break}case 30114:{c[e>>2]=Jt(1136)|0;break}default:c[e>>2]=61}l=b;return c[e>>2]|0}function of(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;if(!(c[f>>2]|0)){g=0;l=d;return g|0}g=(c[e>>2]&127)<<24|c[f>>2]&65535;l=d;return g|0}function pf(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=0;qf(c[d>>2]|0,0,e)|0;l=b;return c[e>>2]|0}function qf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;j=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=0;do if(c[g>>2]&1|0?!(rf()|0):0)if(c[17705]|0){c[j>>2]=yb[c[17705]&15](c[f>>2]|0)|0;break}else{c[j>>2]=vg(c[f>>2]|0)|0;break}else k=6;while(0);do if((k|0)==6)if(c[17704]|0){c[j>>2]=yb[c[17704]&15](c[f>>2]|0)|0;break}else{c[j>>2]=ug(c[f>>2]|0)|0;break}while(0);if(c[j>>2]|0){c[c[h>>2]>>2]=c[j>>2];n=c[i>>2]|0;l=e;return n|0}if(!(c[(xu()|0)>>2]|0))Ft(12);c[i>>2]=Ct(c[(xu()|0)>>2]|0)|0;n=c[i>>2]|0;l=e;return n|0}function rf(){var a=0,b=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=a;do if(c[17701]|0)if(ah()|0){c[17701]=0;c[b>>2]=0;break}else{c[b>>2]=c[17701];break}else c[b>>2]=0;while(0);l=a;return c[b>>2]|0}function sf(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=0;qf(c[d>>2]|0,1,e)|0;l=b;return c[e>>2]|0}function tf(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[e>>2]=a;do if(!(rf()|0))if(c[17706]|0){c[d>>2]=yb[c[17706]&15](c[e>>2]|0)|0;break}else{c[d>>2]=Sg(c[e>>2]|0)|0;break}else c[d>>2]=0;while(0);l=b;return c[d>>2]|0}function uf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+12|0;f=d+8|0;g=d+4|0;h=d;c[f>>2]=a;c[g>>2]=b;b=c[g>>2]|0;if(!(c[f>>2]|0)){c[e>>2]=pf(b)|0;i=c[e>>2]|0;l=d;return i|0}if(!b){vf(c[f>>2]|0);c[e>>2]=0;i=c[e>>2]|0;l=d;return i|0}if(c[17707]|0)c[h>>2]=Db[c[17707]&7](c[f>>2]|0,c[g>>2]|0)|0;else c[h>>2]=wg(c[f>>2]|0,c[g>>2]|0)|0;if((c[h>>2]|0)==0?(c[(xu()|0)>>2]|0)==0:0)Ft(12);c[e>>2]=c[h>>2];i=c[e>>2]|0;l=d;return i|0}function vf(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[d>>2]=a;if(!(c[d>>2]|0)){l=b;return}c[e>>2]=c[(xu()|0)>>2];if(c[17708]|0)wb[c[17708]&15](c[d>>2]|0);else yg(c[d>>2]|0);if(!(c[e>>2]|0)){l=b;return}Ft(c[e>>2]|0);l=b;return}function wf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+16|0;f=d+12|0;g=d+8|0;h=d+4|0;i=d;c[f>>2]=a;c[g>>2]=b;c[h>>2]=S(c[f>>2]|0,c[g>>2]|0)|0;if(c[g>>2]|0?(((c[h>>2]|0)>>>0)/((c[g>>2]|0)>>>0)|0|0)!=(c[f>>2]|0):0){Ft(12);c[e>>2]=0;j=c[e>>2]|0;l=d;return j|0}c[i>>2]=pf(c[h>>2]|0)|0;if(c[i>>2]|0)Uw(c[i>>2]|0,0,c[h>>2]|0)|0;c[e>>2]=c[i>>2];j=c[e>>2]|0;l=d;return j|0}function xf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+16|0;f=d+12|0;g=d+8|0;h=d+4|0;i=d;c[f>>2]=a;c[g>>2]=b;c[h>>2]=S(c[f>>2]|0,c[g>>2]|0)|0;if(c[g>>2]|0?(((c[h>>2]|0)>>>0)/((c[g>>2]|0)>>>0)|0|0)!=(c[f>>2]|0):0){Ft(12);c[e>>2]=0;j=c[e>>2]|0;l=d;return j|0}c[i>>2]=sf(c[h>>2]|0)|0;if(c[i>>2]|0)Uw(c[i>>2]|0,0,c[h>>2]|0)|0;c[e>>2]=c[i>>2];j=c[e>>2]|0;l=d;return j|0}function yf(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+8|0;e=b+4|0;f=b;c[d>>2]=a;c[e>>2]=0;c[f>>2]=0;c[f>>2]=hv(c[d>>2]|0)|0;a=(tf(c[d>>2]|0)|0)!=0;g=(c[f>>2]|0)+1|0;if(a)c[e>>2]=sf(g)|0;else c[e>>2]=pf(g)|0;if(!(c[e>>2]|0)){h=c[e>>2]|0;l=b;return h|0}tv(c[e>>2]|0,c[d>>2]|0)|0;h=c[e>>2]|0;l=b;return h|0}function zf(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[d>>2]=a;while(1){a=pf(c[d>>2]|0)|0;c[e>>2]=a;if(!((a|0)!=0^1)){f=6;break}a=(Wg()|0)==0;if(!(a&(c[17709]|0)!=0)){f=5;break}if(!(ub[c[17709]&63](c[17710]|0,c[d>>2]|0,0)|0)){f=5;break}}if((f|0)==5)Le(Ct(c[(xu()|0)>>2]|0)|0,0);else if((f|0)==6){l=b;return c[e>>2]|0}return 0}function Af(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;while(1){b=uf(c[e>>2]|0,c[f>>2]|0)|0;c[g>>2]=b;if(!((b|0)!=0^1)){h=6;break}b=(Wg()|0)==0;if(!(b&(c[17709]|0)!=0)){h=5;break}b=c[17709]|0;a=c[17710]|0;i=c[f>>2]|0;j=(tf(c[e>>2]|0)|0)!=0;if(!(ub[b&63](a,i,j?3:2)|0)){h=5;break}}if((h|0)==5)Le(Ct(c[(xu()|0)>>2]|0)|0,0);else if((h|0)==6){l=d;return c[g>>2]|0}return 0}function Bf(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[d>>2]=a;while(1){a=sf(c[d>>2]|0)|0;c[e>>2]=a;if(!((a|0)!=0^1)){f=6;break}a=(Wg()|0)==0;if(!(a&(c[17709]|0)!=0)){f=5;break}if(!(ub[c[17709]&63](c[17710]|0,c[d>>2]|0,1)|0)){f=5;break}}if((f|0)==5){d=Ct(c[(xu()|0)>>2]|0)|0;Le(d,Je(22597)|0)}else if((f|0)==6){l=b;return c[e>>2]|0}return 0}function Cf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+12|0;f=d+8|0;g=d+4|0;h=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=S(c[e>>2]|0,c[f>>2]|0)|0;if(c[f>>2]|0?(((c[g>>2]|0)>>>0)/((c[f>>2]|0)>>>0)|0|0)!=(c[e>>2]|0):0){Ft(12);Le(Ct(c[(xu()|0)>>2]|0)|0,0)}c[h>>2]=zf(c[g>>2]|0)|0;Uw(c[h>>2]|0,0,c[g>>2]|0)|0;l=d;return c[h>>2]|0}function Df(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+12|0;f=d+8|0;g=d+4|0;h=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=S(c[e>>2]|0,c[f>>2]|0)|0;if(c[f>>2]|0?(((c[g>>2]|0)>>>0)/((c[f>>2]|0)>>>0)|0|0)!=(c[e>>2]|0):0){Ft(12);Le(Ct(c[(xu()|0)>>2]|0)|0,0)}c[h>>2]=Bf(c[g>>2]|0)|0;Uw(c[h>>2]|0,0,c[g>>2]|0)|0;l=d;return c[h>>2]|0}function Ef(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+12|0;e=b+8|0;f=b+4|0;g=b;c[d>>2]=a;do{a=yf(c[d>>2]|0)|0;c[e>>2]=a;if(!((a|0)!=0^1)){h=8;break}c[f>>2]=hv(c[d>>2]|0)|0;c[g>>2]=((tf(c[d>>2]|0)|0)!=0^1^1)&1;a=(Wg()|0)==0;if(!(a&(c[17709]|0)!=0))break}while((ub[c[17709]&63](c[17710]|0,c[f>>2]|0,c[g>>2]|0)|0)!=0);if((h|0)==8){l=b;return c[e>>2]|0}e=Ct(c[(xu()|0)>>2]|0)|0;if(!(c[g>>2]|0)){i=0;Le(e,i)}i=Je(22597)|0;Le(e,i);return 0}function Ff(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[e>>2]=a;if(Wg()|0)c[d>>2]=0;else c[d>>2]=c[17702]&c[e>>2];l=b;return c[d>>2]|0}function Gf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;xj(c[e>>2]|0,c[f>>2]|0);Vm(c[e>>2]|0,c[f>>2]|0);l=d;return}function Hf(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;g=l;l=l+48|0;if((l|0)>=(m|0))$(48);h=g;i=g+32|0;j=g+28|0;k=g+24|0;n=g+20|0;o=g+16|0;p=g+12|0;q=g+8|0;r=g+4|0;c[j>>2]=a;c[k>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;if(!(c[j>>2]|0)){c[i>>2]=45;s=c[i>>2]|0;l=g;return s|0}c[c[j>>2]>>2]=0;if(!((((c[o>>2]|0)<0|(c[o>>2]|0)>1)^1)&(c[k>>2]|0)!=0)){c[i>>2]=45;s=c[i>>2]|0;l=g;return s|0}if((c[n>>2]|0)!=0|(c[o>>2]|0)!=0){if((c[n>>2]|0)==0&(c[o>>2]|0)!=0)c[n>>2]=hv(c[k>>2]|0)|0}else{c[n>>2]=If(c[k>>2]|0,0,0,q)|0;if(!(c[n>>2]|0)){c[i>>2]=c[q>>2];s=c[i>>2]|0;l=g;return s|0}}c[q>>2]=Jf(r,0,c[k>>2]|0,c[n>>2]|0,0,0,h)|0;if(c[q>>2]|0){c[i>>2]=c[q>>2];s=c[i>>2]|0;l=g;return s|0}c[c[j>>2]>>2]=c[r>>2];if(c[p>>2]|0)wb[c[p>>2]&15](c[k>>2]|0);c[i>>2]=0;s=c[i>>2]|0;l=g;return s|0}function If(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;g=l;l=l+48|0;if((l|0)>=(m|0))$(48);h=g+44|0;i=g+40|0;j=g+36|0;k=g+32|0;n=g+28|0;o=g+24|0;p=g+20|0;q=g+16|0;r=g+4|0;s=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=e;c[n>>2]=f;c[p>>2]=0;c[q>>2]=0;c[r>>2]=0;c[s>>2]=0;if(!(c[k>>2]|0))c[k>>2]=g+12;if(!(c[n>>2]|0))c[n>>2]=g+8;c[c[n>>2]>>2]=0;c[c[k>>2]>>2]=0;if(!(c[i>>2]|0)){c[h>>2]=0;t=c[h>>2]|0;l=g;return t|0}if((d[c[i>>2]>>0]|0|0)!=40){c[c[n>>2]>>2]=204;c[h>>2]=0;t=c[h>>2]|0;l=g;return t|0}c[o>>2]=c[i>>2];a:while(1){if(c[j>>2]|0?(c[r>>2]|0)>>>0>=(c[j>>2]|0)>>>0:0){u=12;break}i=d[c[o>>2]>>0]|0;do if(c[q>>2]|0)if((i|0)==58){if(c[j>>2]|0?((c[r>>2]|0)+(c[q>>2]|0)|0)>>>0>=(c[j>>2]|0)>>>0:0){u=17;break a}c[r>>2]=(c[r>>2]|0)+(c[q>>2]|0);c[o>>2]=(c[o>>2]|0)+(c[q>>2]|0);c[q>>2]=0;break}else{if((d[c[o>>2]>>0]|0|0)<48){u=22;break a}if((d[c[o>>2]>>0]|0|0)>57){u=22;break a}c[q>>2]=((c[q>>2]|0)*10|0)+((d[c[o>>2]>>0]|0)-48);break}else{if((i|0)==40){if(c[p>>2]|0){u=25;break a}c[s>>2]=(c[s>>2]|0)+1;break}if((d[c[o>>2]>>0]|0|0)==41){if(!(c[s>>2]|0)){u=29;break a}if(c[p>>2]|0){u=31;break a}f=(c[s>>2]|0)+-1|0;c[s>>2]=f;if(f|0)break;else{u=33;break a}}if((d[c[o>>2]>>0]|0|0)==91){if(c[p>>2]|0){u=36;break a}c[p>>2]=c[o>>2];break}if((d[c[o>>2]>>0]|0|0)==93){if(!(c[p>>2]|0)){u=40;break a}c[p>>2]=0;break}if((d[c[o>>2]>>0]|0|0)<48){u=47;break a}if((d[c[o>>2]>>0]|0|0)>57){u=47;break a}if((d[c[o>>2]>>0]|0|0)==48){u=45;break a}c[q>>2]=(d[c[o>>2]>>0]|0)-48}while(0);c[o>>2]=(c[o>>2]|0)+1;c[r>>2]=(c[r>>2]|0)+1}switch(u|0){case 12:{c[c[k>>2]>>2]=c[r>>2];c[c[n>>2]>>2]=202;c[h>>2]=0;t=c[h>>2]|0;l=g;return t|0}case 17:{c[c[k>>2]>>2]=c[r>>2];c[c[n>>2]>>2]=202;c[h>>2]=0;t=c[h>>2]|0;l=g;return t|0}case 22:{c[c[k>>2]>>2]=c[r>>2];c[c[n>>2]>>2]=201;c[h>>2]=0;t=c[h>>2]|0;l=g;return t|0}case 25:{c[c[k>>2]>>2]=c[r>>2];c[c[n>>2]>>2]=209;c[h>>2]=0;t=c[h>>2]|0;l=g;return t|0}case 29:{c[c[k>>2]>>2]=c[r>>2];c[c[n>>2]>>2]=203;c[h>>2]=0;t=c[h>>2]|0;l=g;return t|0}case 31:{c[c[k>>2]>>2]=c[r>>2];c[c[n>>2]>>2]=209;c[h>>2]=0;t=c[h>>2]|0;l=g;return t|0}case 33:{u=(c[r>>2]|0)+1|0;c[r>>2]=u;c[h>>2]=u;t=c[h>>2]|0;l=g;return t|0}case 36:{c[c[k>>2]>>2]=c[r>>2];c[c[n>>2]>>2]=208;c[h>>2]=0;t=c[h>>2]|0;l=g;return t|0}case 40:{c[c[k>>2]>>2]=c[r>>2];c[c[n>>2]>>2]=209;c[h>>2]=0;t=c[h>>2]|0;l=g;return t|0}case 45:{c[c[k>>2]>>2]=c[r>>2];c[c[n>>2]>>2]=207;c[h>>2]=0;t=c[h>>2]|0;l=g;return t|0}case 47:{if((d[c[o>>2]>>0]|0|0)!=38?(d[c[o>>2]>>0]|0|0)!=92:0){c[c[k>>2]>>2]=c[r>>2];c[c[n>>2]>>2]=205;c[h>>2]=0;t=c[h>>2]|0;l=g;return t|0}c[c[k>>2]>>2]=c[r>>2];c[c[n>>2]>>2]=210;c[h>>2]=0;t=c[h>>2]|0;l=g;return t|0}}return 0}function Jf(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;i=l;l=l+48|0;if((l|0)>=(m|0))$(48);j=i+40|0;k=i+36|0;n=i+32|0;o=i+28|0;p=i+24|0;q=i+20|0;r=i+16|0;s=i;c[j>>2]=a;c[k>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[s>>2]=h;c[r>>2]=Kf(c[j>>2]|0,c[k>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0,s)|0;l=i;return c[r>>2]|0}function Kf(e,f,g,h,i,j,k){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0;n=l;l=l+432|0;if((l|0)>=(m|0))$(432);o=n+16|0;p=n+8|0;q=n+320|0;r=n+316|0;s=n+312|0;t=n+308|0;u=n+304|0;v=n+300|0;w=n+296|0;x=n+292|0;y=n+288|0;z=n+284|0;A=n+280|0;B=n+276|0;C=n+272|0;E=n+268|0;F=n+264|0;G=n+260|0;H=n+256|0;I=n+252|0;J=n+248|0;K=n+244|0;L=n+240|0;M=n+224|0;N=n+220|0;O=n+216|0;P=n+212|0;Q=n+344|0;R=n+208|0;S=n+204|0;T=n+200|0;U=n+342|0;V=n+340|0;W=n+196|0;X=n+338|0;Y=n+192|0;Z=n+188|0;_=n+336|0;aa=n+184|0;ba=n+180|0;ca=n+176|0;da=n+172|0;ea=n+168|0;fa=n+164|0;ga=n+160|0;ha=n+156|0;ia=n+152|0;ja=n+334|0;ka=n+148|0;la=n+144|0;ma=n+140|0;na=n+332|0;oa=n+136|0;pa=n+132|0;qa=n+128|0;ra=n+124|0;sa=n+330|0;ta=n+120|0;ua=n+116|0;va=n+112|0;wa=n+108|0;xa=n+104|0;ya=n+100|0;za=n+96|0;Aa=n+328|0;Ba=n+92|0;Ca=n+88|0;Da=n+382|0;Ea=n+84|0;Fa=n+80|0;Ga=n+326|0;Ha=n+76|0;Ia=n+72|0;Ja=n+347|0;Ka=n+68|0;La=n+64|0;Ma=n+324|0;Na=n+60|0;Oa=n+56|0;Pa=n+52|0;Qa=n+48|0;Ra=n+44|0;Sa=n+40|0;Ta=n+36|0;Ua=n+32|0;Va=n+28|0;Wa=n+24|0;Xa=n+346|0;Ya=n;Za=n+20|0;c[r>>2]=e;c[s>>2]=f;c[t>>2]=g;c[u>>2]=h;c[v>>2]=i;c[w>>2]=j;c[x>>2]=k;c[y>>2]=0;c[B>>2]=0;c[C>>2]=0;c[E>>2]=0;c[F>>2]=0;c[G>>2]=0;c[H>>2]=0;c[I>>2]=0;c[J>>2]=0;c[K>>2]=0;c[L>>2]=0;c[N>>2]=0;c[O>>2]=0;if(!(c[r>>2]|0)){c[q>>2]=45;_a=c[q>>2]|0;l=n;return _a|0}c[c[r>>2]>>2]=0;if(!(c[t>>2]|0)){c[q>>2]=45;_a=c[q>>2]|0;l=n;return _a|0}if(!(c[s>>2]|0))c[s>>2]=n+236;c[M+4>>2]=(c[u>>2]|0)+2;if(c[u>>2]|0?tf(c[t>>2]|0)|0:0)c[M>>2]=sf(1+(c[M+4>>2]|0)-1|0)|0;else c[M>>2]=pf(1+(c[M+4>>2]|0)-1|0)|0;a:do if(c[M>>2]|0){c[M+8>>2]=c[M>>2];c[z>>2]=c[t>>2];c[A>>2]=c[u>>2];b:while(1){if(!(c[A>>2]|0)){$a=220;break}if(!((c[E>>2]|0)==0|(c[F>>2]|0)!=0)){if(!(Vv(22633,a[c[z>>2]>>0]|0)|0)){c[L>>2]=(c[z>>2]|0)-(c[E>>2]|0);c[P>>2]=Lf(M,c[L>>2]|0)|0;if(c[P>>2]|0){$a=18;break}k=M+8|0;j=c[k>>2]|0;c[k>>2]=j+1;a[j>>0]=1;b[Q>>1]=c[L>>2];j=c[M+8>>2]|0;a[j>>0]=a[Q>>0]|0;a[j+1>>0]=a[Q+1>>0]|0;j=M+8|0;c[j>>2]=(c[j>>2]|0)+2;_w(c[M+8>>2]|0,c[E>>2]|0,c[L>>2]|0)|0;j=M+8|0;c[j>>2]=(c[j>>2]|0)+(c[L>>2]|0);c[E>>2]=0;$a=20}}else $a=20;c:do if(($a|0)==20){$a=0;if(c[C>>2]|0){j=a[c[z>>2]>>0]|0;if(!(c[K>>2]|0)){if((j|0)==92){c[K>>2]=1;break}if((a[c[z>>2]>>0]|0)!=34)break;c[C>>2]=(c[C>>2]|0)+1;c[T>>2]=Lf(M,(c[z>>2]|0)-(c[C>>2]|0)|0)|0;if(c[T>>2]|0){$a=59;break b}k=M+8|0;i=c[k>>2]|0;c[k>>2]=i+1;a[i>>0]=1;c[R>>2]=c[M+8>>2];b[U>>1]=0;i=c[M+8>>2]|0;a[i>>0]=a[U>>0]|0;a[i+1>>0]=a[U+1>>0]|0;i=M+8|0;c[i>>2]=(c[i>>2]|0)+2;c[S>>2]=Mf(c[C>>2]|0,(c[z>>2]|0)-(c[C>>2]|0)|0,c[M+8>>2]|0)|0;i=M+8|0;c[i>>2]=(c[i>>2]|0)+(c[S>>2]|0);b[V>>1]=c[S>>2];i=c[R>>2]|0;a[i>>0]=a[V>>0]|0;a[i+1>>0]=a[V+1>>0]|0;c[R>>2]=(c[R>>2]|0)+2;c[C>>2]=0;break}switch(j|0){case 92:case 39:case 34:case 114:case 102:case 110:case 118:case 116:case 98:{c[K>>2]=0;break c;break}case 55:case 54:case 53:case 52:case 51:case 50:case 49:case 48:{if((c[A>>2]|0)>>>0<=2){$a=29;break b}if((a[(c[z>>2]|0)+1>>0]|0)<48){$a=29;break b}if((a[(c[z>>2]|0)+1>>0]|0)>55){$a=29;break b}if((a[(c[z>>2]|0)+2>>0]|0)<48){$a=29;break b}if((a[(c[z>>2]|0)+2>>0]|0)>55){$a=29;break b}c[z>>2]=(c[z>>2]|0)+2;c[A>>2]=(c[A>>2]|0)-2;c[K>>2]=0;break c;break}case 120:{if((c[A>>2]|0)>>>0<=2){$a=44;break b}if(!((a[(c[z>>2]|0)+1>>0]|0)>=48?(a[(c[z>>2]|0)+1>>0]|0)<=57:0))$a=34;do if(($a|0)==34){$a=0;if((a[(c[z>>2]|0)+1>>0]|0)>=65?(a[(c[z>>2]|0)+1>>0]|0)<=70:0)break;if((a[(c[z>>2]|0)+1>>0]|0)<97){$a=44;break b}if((a[(c[z>>2]|0)+1>>0]|0)>102){$a=44;break b}}while(0);if(!((a[(c[z>>2]|0)+2>>0]|0)>=48?(a[(c[z>>2]|0)+2>>0]|0)<=57:0))$a=40;do if(($a|0)==40){$a=0;if((a[(c[z>>2]|0)+2>>0]|0)>=65?(a[(c[z>>2]|0)+2>>0]|0)<=70:0)break;if((a[(c[z>>2]|0)+2>>0]|0)<97){$a=44;break b}if((a[(c[z>>2]|0)+2>>0]|0)>102){$a=44;break b}}while(0);c[z>>2]=(c[z>>2]|0)+2;c[A>>2]=(c[A>>2]|0)-2;c[K>>2]=0;break c;break}case 13:{if(c[A>>2]|0?(a[(c[z>>2]|0)+1>>0]|0)==10:0){c[z>>2]=(c[z>>2]|0)+1;c[A>>2]=(c[A>>2]|0)+-1}c[K>>2]=0;break c;break}case 10:{if(c[A>>2]|0?(a[(c[z>>2]|0)+1>>0]|0)==13:0){c[z>>2]=(c[z>>2]|0)+1;c[A>>2]=(c[A>>2]|0)+-1}c[K>>2]=0;break c;break}default:{$a=54;break b}}}if(c[F>>2]|0){if(Ru(a[c[z>>2]>>0]|0)|0){c[J>>2]=(c[J>>2]|0)+1;break}if((a[c[z>>2]>>0]|0)!=35)if(Nf(c[z>>2]|0)|0)break;else{$a=82;break b}if(c[J>>2]&1|0){$a=66;break b}c[L>>2]=(c[J>>2]|0)/2|0;c[W>>2]=Lf(M,c[L>>2]|0)|0;if(c[W>>2]|0){$a=68;break b}j=M+8|0;i=c[j>>2]|0;c[j>>2]=i+1;a[i>>0]=1;b[X>>1]=c[L>>2];i=c[M+8>>2]|0;a[i>>0]=a[X>>0]|0;a[i+1>>0]=a[X+1>>0]|0;i=M+8|0;c[i>>2]=(c[i>>2]|0)+2;c[F>>2]=(c[F>>2]|0)+1;while(1){if((c[F>>2]|0)>>>0>=(c[z>>2]|0)>>>0)break;if(!(Nf(c[F>>2]|0)|0)){c[Y>>2]=Of(d[c[F>>2]>>0]|0)|0;c[F>>2]=(c[F>>2]|0)+1;while(1){if((c[F>>2]|0)>>>0>=(c[z>>2]|0)>>>0)break;if(!(Nf(c[F>>2]|0)|0))break;c[F>>2]=(c[F>>2]|0)+1}if((c[F>>2]|0)>>>0<(c[z>>2]|0)>>>0){c[Y>>2]=c[Y>>2]<<4;i=Of(d[c[F>>2]>>0]|0)|0;c[Y>>2]=(c[Y>>2]|0)+i}i=c[Y>>2]&255;j=M+8|0;k=c[j>>2]|0;c[j>>2]=k+1;a[k>>0]=i}c[F>>2]=(c[F>>2]|0)+1}c[F>>2]=0;break}if(c[G>>2]|0){if((a[c[z>>2]>>0]|0)!=124)break;c[G>>2]=0;break}if(c[B>>2]|0){if((a[c[z>>2]>>0]|0)>=48?(a[c[z>>2]>>0]|0)<=57:0)break;if((a[c[z>>2]>>0]|0)==58){c[L>>2]=Aw(c[B>>2]|0)|0;c[B>>2]=0;if((c[L>>2]|0)>>>0>((c[A>>2]|0)-1|0)>>>0){$a=91;break b}c[Z>>2]=Lf(M,c[L>>2]|0)|0;if(c[Z>>2]|0){$a=93;break b}i=M+8|0;k=c[i>>2]|0;c[i>>2]=k+1;a[k>>0]=1;b[_>>1]=c[L>>2];k=c[M+8>>2]|0;a[k>>0]=a[_>>0]|0;a[k+1>>0]=a[_+1>>0]|0;k=M+8|0;c[k>>2]=(c[k>>2]|0)+2;_w(c[M+8>>2]|0,(c[z>>2]|0)+1|0,c[L>>2]|0)|0;k=M+8|0;c[k>>2]=(c[k>>2]|0)+(c[L>>2]|0);c[A>>2]=(c[A>>2]|0)-(c[L>>2]|0);c[z>>2]=(c[z>>2]|0)+(c[L>>2]|0);break}if((a[c[z>>2]>>0]|0)==34){c[B>>2]=0;c[C>>2]=c[z>>2];c[K>>2]=0;break}if((a[c[z>>2]>>0]|0)==35){c[B>>2]=0;c[F>>2]=c[z>>2];c[J>>2]=0;break}if((a[c[z>>2]>>0]|0)!=124){$a=101;break b}c[B>>2]=0;c[G>>2]=c[z>>2];break}k=a[c[z>>2]>>0]|0;if(!(c[I>>2]|0)){if((k|0)==40){if(c[H>>2]|0){$a=179;break b}c[Sa>>2]=Lf(M,0)|0;if(c[Sa>>2]|0){$a=181;break b}i=M+8|0;j=c[i>>2]|0;c[i>>2]=j+1;a[j>>0]=3;c[O>>2]=(c[O>>2]|0)+1;break}if((a[c[z>>2]>>0]|0)==41){if(c[H>>2]|0){$a=185;break b}c[Ta>>2]=Lf(M,0)|0;if(c[Ta>>2]|0){$a=187;break b}j=M+8|0;i=c[j>>2]|0;c[j>>2]=i+1;a[i>>0]=4;c[O>>2]=(c[O>>2]|0)+-1;break}i=c[z>>2]|0;if((a[c[z>>2]>>0]|0)==34){c[C>>2]=i;c[K>>2]=0;break}j=c[z>>2]|0;if((a[i>>0]|0)==35){c[F>>2]=j;c[J>>2]=0;break}i=c[z>>2]|0;if((a[j>>0]|0)==124){c[G>>2]=i;break}if((a[i>>0]|0)==91){ab=c[z>>2]|0;if(c[H>>2]|0){$a=197;break b}c[H>>2]=ab;break}if((a[c[z>>2]>>0]|0)==93){if(!(c[H>>2]|0)){$a=201;break b}c[H>>2]=0;break}do if((a[c[z>>2]>>0]|0)>=48){if((a[c[z>>2]>>0]|0)>57)break;bb=c[z>>2]|0;if((a[c[z>>2]>>0]|0)==48){$a=206;break b}c[B>>2]=bb;break c}while(0);i=(Vv(22633,a[c[z>>2]>>0]|0)|0)!=0;j=c[z>>2]|0;if(i){c[E>>2]=j;break}if(Nf(j)|0)break;cb=c[z>>2]|0;if((a[c[z>>2]>>0]|0)==123){$a=212;break b}if(Vv(22732,a[cb>>0]|0)|0){$a=214;break b}if(!(c[v>>2]|0)){$a=218;break b}if((a[c[z>>2]>>0]|0)!=37){$a=218;break b}c[I>>2]=c[z>>2];break}do if((k|0)!=109?(a[c[z>>2]>>0]|0)!=77:0){if((a[c[z>>2]>>0]|0)==115){if(c[w>>2]|0){j=c[N>>2]|0;c[N>>2]=j+1;c[oa>>2]=c[c[(c[w>>2]|0)+(j<<2)>>2]>>2]}else{j=c[x>>2]|0;i=(c[j>>2]|0)+(4-1)&~(4-1);h=c[i>>2]|0;c[j>>2]=i+4;c[qa>>2]=h;c[oa>>2]=c[qa>>2]}c[pa>>2]=hv(c[oa>>2]|0)|0;c[ra>>2]=Lf(M,c[pa>>2]|0)|0;if(c[ra>>2]|0){$a=135;break b}h=M+8|0;i=c[h>>2]|0;c[h>>2]=i+1;a[i>>0]=1;b[sa>>1]=c[pa>>2];i=c[M+8>>2]|0;a[i>>0]=a[sa>>0]|0;a[i+1>>0]=a[sa+1>>0]|0;i=M+8|0;c[i>>2]=(c[i>>2]|0)+2;_w(c[M+8>>2]|0,c[oa>>2]|0,c[pa>>2]|0)|0;i=M+8|0;c[i>>2]=(c[i>>2]|0)+(c[pa>>2]|0);break}if((a[c[z>>2]>>0]|0)==98){if(c[w>>2]|0){i=c[N>>2]|0;c[N>>2]=i+1;c[ua>>2]=c[c[(c[w>>2]|0)+(i<<2)>>2]>>2]}else{i=c[x>>2]|0;h=(c[i>>2]|0)+(4-1)&~(4-1);j=c[h>>2]|0;c[i>>2]=h+4;c[va>>2]=j;c[ua>>2]=c[va>>2]}if(c[w>>2]|0){j=c[N>>2]|0;c[N>>2]=j+1;c[ta>>2]=c[c[(c[w>>2]|0)+(j<<2)>>2]>>2]}else{j=c[x>>2]|0;h=(c[j>>2]|0)+(4-1)&~(4-1);i=c[h>>2]|0;c[j>>2]=h+4;c[wa>>2]=i;c[ta>>2]=c[wa>>2]}c[xa>>2]=Lf(M,c[ua>>2]|0)|0;if(c[xa>>2]|0){$a=145;break b}do if(c[ua>>2]|0){if(tf(c[M>>2]|0)|0)break;if(!(tf(c[ta>>2]|0)|0))break;c[ya>>2]=sf(1+(c[M+4>>2]|0)-1|0)|0;if(!(c[ya>>2]|0)){$a=150;break b}c[za>>2]=c[ya>>2];_w(c[za>>2]|0,c[M>>2]|0,(c[M+8>>2]|0)-(c[M>>2]|0)|0)|0;c[M+8>>2]=(c[za>>2]|0)+((c[M+8>>2]|0)-(c[M>>2]|0));vf(c[M>>2]|0);c[M>>2]=c[ya>>2]}while(0);i=M+8|0;h=c[i>>2]|0;c[i>>2]=h+1;a[h>>0]=1;b[Aa>>1]=c[ua>>2];h=c[M+8>>2]|0;a[h>>0]=a[Aa>>0]|0;a[h+1>>0]=a[Aa+1>>0]|0;h=M+8|0;c[h>>2]=(c[h>>2]|0)+2;_w(c[M+8>>2]|0,c[ta>>2]|0,c[ua>>2]|0)|0;h=M+8|0;c[h>>2]=(c[h>>2]|0)+(c[ua>>2]|0);break}if((a[c[z>>2]>>0]|0)==100){if(c[w>>2]|0){h=c[N>>2]|0;c[N>>2]=h+1;c[Ba>>2]=c[c[(c[w>>2]|0)+(h<<2)>>2]>>2]}else{h=c[x>>2]|0;i=(c[h>>2]|0)+(4-1)&~(4-1);j=c[i>>2]|0;c[h>>2]=i+4;c[Ea>>2]=j;c[Ba>>2]=c[Ea>>2]}c[p>>2]=c[Ba>>2];Dv(Da,22726,p)|0;c[Ca>>2]=hv(Da)|0;c[Fa>>2]=Lf(M,c[Ca>>2]|0)|0;if(c[Fa>>2]|0){$a=158;break b}j=M+8|0;i=c[j>>2]|0;c[j>>2]=i+1;a[i>>0]=1;b[Ga>>1]=c[Ca>>2];i=c[M+8>>2]|0;a[i>>0]=a[Ga>>0]|0;a[i+1>>0]=a[Ga+1>>0]|0;i=M+8|0;c[i>>2]=(c[i>>2]|0)+2;_w(c[M+8>>2]|0,Da|0,c[Ca>>2]|0)|0;i=M+8|0;c[i>>2]=(c[i>>2]|0)+(c[Ca>>2]|0);break}if((a[c[z>>2]>>0]|0)==117){if(c[w>>2]|0){i=c[N>>2]|0;c[N>>2]=i+1;c[Ha>>2]=c[c[(c[w>>2]|0)+(i<<2)>>2]>>2]}else{i=c[x>>2]|0;j=(c[i>>2]|0)+(4-1)&~(4-1);h=c[j>>2]|0;c[i>>2]=j+4;c[Ka>>2]=h;c[Ha>>2]=c[Ka>>2]}c[o>>2]=c[Ha>>2];Dv(Ja,22729,o)|0;c[Ia>>2]=hv(Ja)|0;c[La>>2]=Lf(M,c[Ia>>2]|0)|0;if(c[La>>2]|0){$a=165;break b}h=M+8|0;j=c[h>>2]|0;c[h>>2]=j+1;a[j>>0]=1;b[Ma>>1]=c[Ia>>2];j=c[M+8>>2]|0;a[j>>0]=a[Ma>>0]|0;a[j+1>>0]=a[Ma+1>>0]|0;j=M+8|0;c[j>>2]=(c[j>>2]|0)+2;_w(c[M+8>>2]|0,Ja|0,c[Ia>>2]|0)|0;j=M+8|0;c[j>>2]=(c[j>>2]|0)+(c[Ia>>2]|0);break}if((a[c[z>>2]>>0]|0)!=83){$a=175;break b}if(c[w>>2]|0){j=c[N>>2]|0;c[N>>2]=j+1;c[Na>>2]=c[c[(c[w>>2]|0)+(j<<2)>>2]>>2]}else{j=c[x>>2]|0;h=(c[j>>2]|0)+(4-1)&~(4-1);i=c[h>>2]|0;c[j>>2]=h+4;c[Qa>>2]=i;c[Na>>2]=c[Qa>>2]}c[Oa>>2]=Pf(c[Na>>2]|0,Pa)|0;if(!(c[Oa>>2]|0))break;c[Ra>>2]=Lf(M,c[Oa>>2]|0)|0;if(c[Ra>>2]|0){$a=173;break b}_w(c[M+8>>2]|0,(c[Na>>2]|0)+(c[Pa>>2]|0)|0,c[Oa>>2]|0)|0;i=M+8|0;c[i>>2]=(c[i>>2]|0)+(c[Oa>>2]|0)}else $a=105;while(0);do if(($a|0)==105){$a=0;c[ba>>2]=0;c[ca>>2]=(a[c[z>>2]>>0]|0)==109?1:5;if(c[w>>2]|0){k=c[N>>2]|0;c[N>>2]=k+1;c[aa>>2]=c[c[(c[w>>2]|0)+(k<<2)>>2]>>2]}else{k=c[x>>2]|0;i=(c[k>>2]|0)+(4-1)&~(4-1);h=c[i>>2]|0;c[k>>2]=i+4;c[da>>2]=h;c[aa>>2]=c[da>>2]}if(Vp(c[aa>>2]|0,2)|0){c[ea>>2]=Gp(c[aa>>2]|0,fa)|0;c[ba>>2]=(((c[fa>>2]|0)+7|0)>>>0)/8|0;if(!((c[ea>>2]|0)!=0&(c[ba>>2]|0)!=0))break;c[ga>>2]=Lf(M,c[ba>>2]|0)|0;if(c[ga>>2]|0){$a=111;break b}do if(!(tf(c[M>>2]|0)|0)){if(!(Vp(c[aa>>2]|0,1)|0))break;c[ha>>2]=sf(1+(c[M+4>>2]|0)-1|0)|0;if(!(c[ha>>2]|0)){$a=115;break b}c[ia>>2]=c[ha>>2];_w(c[ia>>2]|0,c[M>>2]|0,(c[M+8>>2]|0)-(c[M>>2]|0)|0)|0;c[M+8>>2]=(c[ia>>2]|0)+((c[M+8>>2]|0)-(c[M>>2]|0));vf(c[M>>2]|0);c[M>>2]=c[ha>>2]}while(0);h=M+8|0;i=c[h>>2]|0;c[h>>2]=i+1;a[i>>0]=1;b[ja>>1]=c[ba>>2];i=c[M+8>>2]|0;a[i>>0]=a[ja>>0]|0;a[i+1>>0]=a[ja+1>>0]|0;i=M+8|0;c[i>>2]=(c[i>>2]|0)+2;_w(c[M+8>>2]|0,c[ea>>2]|0,c[ba>>2]|0)|0;i=M+8|0;c[i>>2]=(c[i>>2]|0)+(c[ba>>2]|0);break}if(bp(c[ca>>2]|0,0,0,ba,c[aa>>2]|0)|0){$a=119;break b}c[ka>>2]=Lf(M,c[ba>>2]|0)|0;if(c[ka>>2]|0){$a=121;break b}do if(!(tf(c[M>>2]|0)|0)){if(!(Vp(c[aa>>2]|0,1)|0))break;c[la>>2]=sf(1+(c[M+4>>2]|0)-1|0)|0;if(!(c[la>>2]|0)){$a=125;break b}c[ma>>2]=c[la>>2];_w(c[ma>>2]|0,c[M>>2]|0,(c[M+8>>2]|0)-(c[M>>2]|0)|0)|0;c[M+8>>2]=(c[ma>>2]|0)+((c[M+8>>2]|0)-(c[M>>2]|0));vf(c[M>>2]|0);c[M>>2]=c[la>>2]}while(0);i=M+8|0;h=c[i>>2]|0;c[i>>2]=h+1;a[h>>0]=1;b[na>>1]=c[ba>>2];h=c[M+8>>2]|0;a[h>>0]=a[na>>0]|0;a[h+1>>0]=a[na+1>>0]|0;h=M+8|0;c[h>>2]=(c[h>>2]|0)+2;if(bp(c[ca>>2]|0,c[M+8>>2]|0,c[ba>>2]|0,ba,c[aa>>2]|0)|0){$a=128;break b}h=M+8|0;c[h>>2]=(c[h>>2]|0)+(c[ba>>2]|0)}while(0);c[I>>2]=0}while(0);c[z>>2]=(c[z>>2]|0)+1;c[A>>2]=(c[A>>2]|0)+-1}switch($a|0){case 18:{c[y>>2]=c[P>>2];c[c[s>>2]>>2]=(c[z>>2]|0)-(c[t>>2]|0);break a;break}case 29:{c[c[s>>2]>>2]=(c[z>>2]|0)-(c[t>>2]|0);c[y>>2]=206;break a;break}case 44:{c[c[s>>2]>>2]=(c[z>>2]|0)-(c[t>>2]|0);c[y>>2]=206;break a;break}case 54:{c[c[s>>2]>>2]=(c[z>>2]|0)-(c[t>>2]|0);c[y>>2]=206;break a;break}case 59:{c[y>>2]=c[T>>2];c[c[s>>2]>>2]=(c[z>>2]|0)-(c[t>>2]|0);break a;break}case 66:{c[c[s>>2]>>2]=(c[z>>2]|0)-(c[t>>2]|0);c[y>>2]=212;break a;break}case 68:{c[y>>2]=c[W>>2];c[c[s>>2]>>2]=(c[z>>2]|0)-(c[t>>2]|0);break a;break}case 82:{c[c[s>>2]>>2]=(c[z>>2]|0)-(c[t>>2]|0);c[y>>2]=211;break a;break}case 91:{c[c[s>>2]>>2]=(c[z>>2]|0)-(c[t>>2]|0);c[y>>2]=202;break a;break}case 93:{c[y>>2]=c[Z>>2];c[c[s>>2]>>2]=(c[z>>2]|0)-(c[t>>2]|0);break a;break}case 101:{c[c[s>>2]>>2]=(c[z>>2]|0)-(c[t>>2]|0);c[y>>2]=201;break a;break}case 111:{c[y>>2]=c[ga>>2];c[c[s>>2]>>2]=(c[z>>2]|0)-(c[t>>2]|0);break a;break}case 115:{c[y>>2]=Ct(c[(xu()|0)>>2]|0)|0;break a;break}case 119:{Re(22704,1433,22711);break}case 121:{c[y>>2]=c[ka>>2];c[c[s>>2]>>2]=(c[z>>2]|0)-(c[t>>2]|0);break a;break}case 125:{c[y>>2]=Ct(c[(xu()|0)>>2]|0)|0;break a;break}case 128:{Re(22704,1460,22711);break}case 135:{c[y>>2]=c[ra>>2];c[c[s>>2]>>2]=(c[z>>2]|0)-(c[t>>2]|0);break a;break}case 145:{c[y>>2]=c[xa>>2];c[c[s>>2]>>2]=(c[z>>2]|0)-(c[t>>2]|0);break a;break}case 150:{c[y>>2]=Ct(c[(xu()|0)>>2]|0)|0;break a;break}case 158:{c[y>>2]=c[Fa>>2];c[c[s>>2]>>2]=(c[z>>2]|0)-(c[t>>2]|0);break a;break}case 165:{c[y>>2]=c[La>>2];c[c[s>>2]>>2]=(c[z>>2]|0)-(c[t>>2]|0);break a;break}case 173:{c[y>>2]=c[Ra>>2];c[c[s>>2]>>2]=(c[z>>2]|0)-(c[t>>2]|0);break a;break}case 175:{c[c[s>>2]>>2]=(c[z>>2]|0)-(c[t>>2]|0);c[y>>2]=201;break a;break}case 179:{c[c[s>>2]>>2]=(c[z>>2]|0)-(c[t>>2]|0);c[y>>2]=209;break a;break}case 181:{c[y>>2]=c[Sa>>2];c[c[s>>2]>>2]=(c[z>>2]|0)-(c[t>>2]|0);break a;break}case 185:{c[c[s>>2]>>2]=(c[z>>2]|0)-(c[t>>2]|0);c[y>>2]=209;break a;break}case 187:{c[y>>2]=c[Ta>>2];c[c[s>>2]>>2]=(c[z>>2]|0)-(c[t>>2]|0);break a;break}case 197:{c[c[s>>2]>>2]=ab-(c[t>>2]|0);c[y>>2]=208;break a;break}case 201:{c[c[s>>2]>>2]=(c[z>>2]|0)-(c[t>>2]|0);c[y>>2]=209;break a;break}case 206:{c[c[s>>2]>>2]=bb-(c[t>>2]|0);c[y>>2]=207;break a;break}case 212:{c[c[s>>2]>>2]=cb-(c[t>>2]|0);c[y>>2]=210;break a;break}case 214:{c[c[s>>2]>>2]=(c[z>>2]|0)-(c[t>>2]|0);c[y>>2]=210;break a;break}case 218:{c[c[s>>2]>>2]=(c[z>>2]|0)-(c[t>>2]|0);c[y>>2]=205;break a;break}case 220:{c[Ua>>2]=Lf(M,0)|0;if(c[Ua>>2]|0){c[y>>2]=c[Ua>>2];c[c[s>>2]>>2]=(c[z>>2]|0)-(c[t>>2]|0);break a}h=M+8|0;i=c[h>>2]|0;c[h>>2]=i+1;a[i>>0]=0;if((c[O>>2]|0)==0|(c[y>>2]|0)!=0)break a;c[y>>2]=203;break a;break}}}else{c[y>>2]=Ct(c[(xu()|0)>>2]|0)|0;c[c[s>>2]>>2]=0}while(0);s=c[M>>2]|0;if(c[y>>2]|0){if(s|0){d:do if(tf(c[M>>2]|0)|0){c[Va>>2]=c[M>>2];c[Wa>>2]=1+(c[M+4>>2]|0)-1;a[Xa>>0]=0;O=Ya;c[O>>2]=d[Xa>>0];c[O+4>>2]=0;while(1){if(!(c[Va>>2]&7|0?(c[Wa>>2]|0)!=0:0))break;a[c[Va>>2]>>0]=a[Xa>>0]|0;c[Va>>2]=(c[Va>>2]|0)+1;c[Wa>>2]=(c[Wa>>2]|0)+-1}if((c[Wa>>2]|0)>>>0>=8){O=Ya;t=gx(c[O>>2]|0,c[O+4>>2]|0,16843009,16843009)|0;O=Ya;c[O>>2]=t;c[O+4>>2]=D;do{c[Za>>2]=c[Va>>2];O=Ya;t=c[O+4>>2]|0;z=c[Za>>2]|0;c[z>>2]=c[O>>2];c[z+4>>2]=t;c[Wa>>2]=(c[Wa>>2]|0)-8;c[Va>>2]=(c[Va>>2]|0)+8}while((c[Wa>>2]|0)>>>0>=8)}while(1){if(!(c[Wa>>2]|0))break d;a[c[Va>>2]>>0]=a[Xa>>0]|0;c[Va>>2]=(c[Va>>2]|0)+1;c[Wa>>2]=(c[Wa>>2]|0)+-1}}while(0);vf(c[M>>2]|0)}}else{M=Qf(s)|0;c[c[r>>2]>>2]=M}c[q>>2]=c[y>>2];_a=c[q>>2]|0;l=n;return _a|0}function Lf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+24|0;f=d+20|0;g=d+16|0;h=d+12|0;i=d+8|0;j=d+4|0;k=d;c[f>>2]=a;c[g>>2]=b;c[h>>2]=(c[(c[f>>2]|0)+8>>2]|0)-(c[c[f>>2]>>2]|0);do if(((c[h>>2]|0)+(c[g>>2]|0)+2+1|0)>>>0>=(c[(c[f>>2]|0)+4>>2]|0)>>>0){c[k>>2]=(c[(c[f>>2]|0)+4>>2]|0)+((c[g>>2]|0)+2+1<<1);if((c[k>>2]|0)>>>0<=(c[(c[f>>2]|0)+4>>2]|0)>>>0){c[e>>2]=67;n=c[e>>2]|0;l=d;return n|0}c[i>>2]=uf(c[c[f>>2]>>2]|0,1+(c[k>>2]|0)-1|0)|0;if(c[i>>2]|0){c[(c[f>>2]|0)+4>>2]=c[k>>2];c[j>>2]=c[i>>2];c[(c[f>>2]|0)+8>>2]=(c[j>>2]|0)+(c[h>>2]|0);c[c[f>>2]>>2]=c[i>>2];break}c[e>>2]=Ct(c[(xu()|0)>>2]|0)|0;n=c[e>>2]|0;l=d;return n|0}while(0);c[e>>2]=0;n=c[e>>2]|0;l=d;return n|0}function Mf(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;g=l;l=l+32|0;if((l|0)>=(m|0))$(32);h=g+24|0;i=g+20|0;j=g+16|0;k=g+12|0;n=g+8|0;o=g+4|0;p=g;c[h>>2]=b;c[i>>2]=e;c[j>>2]=f;c[k>>2]=0;c[n>>2]=c[h>>2];c[o>>2]=c[j>>2];c[p>>2]=c[i>>2];while(1){if(!(c[p>>2]|0))break;i=d[c[n>>2]>>0]|0;do if(!(c[k>>2]|0))if((i|0)==92){c[k>>2]=1;break}else{h=a[c[n>>2]>>0]|0;f=c[o>>2]|0;c[o>>2]=f+1;a[f>>0]=h;break}else{a:do switch(i|0){case 98:{h=c[o>>2]|0;c[o>>2]=h+1;a[h>>0]=8;break}case 116:{h=c[o>>2]|0;c[o>>2]=h+1;a[h>>0]=9;break}case 118:{h=c[o>>2]|0;c[o>>2]=h+1;a[h>>0]=11;break}case 110:{h=c[o>>2]|0;c[o>>2]=h+1;a[h>>0]=10;break}case 102:{h=c[o>>2]|0;c[o>>2]=h+1;a[h>>0]=12;break}case 114:{h=c[o>>2]|0;c[o>>2]=h+1;a[h>>0]=13;break}case 34:{h=c[o>>2]|0;c[o>>2]=h+1;a[h>>0]=34;break}case 39:{h=c[o>>2]|0;c[o>>2]=h+1;a[h>>0]=39;break}case 92:{h=c[o>>2]|0;c[o>>2]=h+1;a[h>>0]=92;break}case 13:{if((c[p>>2]|0)>>>0>1?(d[(c[n>>2]|0)+1>>0]|0|0)==10:0){c[n>>2]=(c[n>>2]|0)+1;c[p>>2]=(c[p>>2]|0)+-1}break}case 10:{if((c[p>>2]|0)>>>0>1?(d[(c[n>>2]|0)+1>>0]|0|0)==13:0){c[n>>2]=(c[n>>2]|0)+1;c[p>>2]=(c[p>>2]|0)+-1}break}case 120:{if((c[p>>2]|0)>>>0>2){if(!((d[(c[n>>2]|0)+1>>0]|0|0)>=48?(d[(c[n>>2]|0)+1>>0]|0|0)<=57:0))q=23;do if((q|0)==23){q=0;if((d[(c[n>>2]|0)+1>>0]|0|0)>=65?(d[(c[n>>2]|0)+1>>0]|0|0)<=70:0)break;if((d[(c[n>>2]|0)+1>>0]|0|0)<97)break a;if((d[(c[n>>2]|0)+1>>0]|0|0)>102)break a}while(0);if(!((d[(c[n>>2]|0)+2>>0]|0|0)>=48?(d[(c[n>>2]|0)+2>>0]|0|0)<=57:0))q=29;do if((q|0)==29){q=0;if((d[(c[n>>2]|0)+2>>0]|0|0)>=65?(d[(c[n>>2]|0)+2>>0]|0|0)<=70:0)break;if((d[(c[n>>2]|0)+2>>0]|0|0)<97)break a;if((d[(c[n>>2]|0)+2>>0]|0|0)>102)break a}while(0);c[n>>2]=(c[n>>2]|0)+1;c[p>>2]=(c[p>>2]|0)+-1;h=d[c[n>>2]>>0]|0;if((d[c[n>>2]>>0]|0|0)<=57)r=h-48|0;else{f=d[c[n>>2]>>0]|0;r=((h|0)<=70?f-65|0:f-97|0)+10|0}f=d[(c[n>>2]|0)+1>>0]|0;if((d[(c[n>>2]|0)+1>>0]|0|0)<=57)s=f-48|0;else{h=d[(c[n>>2]|0)+1>>0]|0;s=((f|0)<=70?h-65|0:h-97|0)+10|0}h=c[o>>2]|0;c[o>>2]=h+1;a[h>>0]=(r<<4)+s;c[n>>2]=(c[n>>2]|0)+1;c[p>>2]=(c[p>>2]|0)+-1}break}default:if(((((((c[p>>2]|0)>>>0>2?(d[c[n>>2]>>0]|0|0)>=48:0)?(d[c[n>>2]>>0]|0|0)<=55:0)?(d[(c[n>>2]|0)+1>>0]|0|0)>=48:0)?(d[(c[n>>2]|0)+1>>0]|0|0)<=55:0)?(d[(c[n>>2]|0)+2>>0]|0|0)>=48:0)?(d[(c[n>>2]|0)+2>>0]|0|0)<=55:0){h=((d[c[n>>2]>>0]|0)-48<<6)+((d[(c[n>>2]|0)+1>>0]|0)-48<<3)+((d[(c[n>>2]|0)+2>>0]|0)-48)&255;f=c[o>>2]|0;c[o>>2]=f+1;a[f>>0]=h;c[n>>2]=(c[n>>2]|0)+2;c[p>>2]=(c[p>>2]|0)-2}}while(0);c[k>>2]=0}while(0);c[p>>2]=(c[p>>2]|0)+-1;c[n>>2]=(c[n>>2]|0)+1}l=g;return (c[o>>2]|0)-(c[j>>2]|0)|0}function Nf(b){b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[f>>2]=b;switch(a[c[f>>2]>>0]|0){case 10:case 13:case 12:case 11:case 9:case 32:{c[e>>2]=1;break}default:c[e>>2]=0}l=d;return c[e>>2]|0}function Of(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[e>>2]=a;a=c[e>>2]|0;do if(!((c[e>>2]|0)>=48&(c[e>>2]|0)<=57)){f=c[e>>2]|0;if((a|0)>=65&(c[e>>2]|0)<=70){c[d>>2]=10+f-65;break}if((f|0)>=97&(c[e>>2]|0)<=102){c[d>>2]=10+(c[e>>2]|0)-97;break}else{c[d>>2]=0;break}}else c[d>>2]=a-48;while(0);l=b;return c[d>>2]|0}function Pf(b,f){b=b|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;g=l;l=l+32|0;if((l|0)>=(m|0))$(32);h=g+20|0;i=g+16|0;j=g+12|0;k=g+8|0;n=g+24|0;o=g+4|0;p=g;c[i>>2]=b;c[j>>2]=f;c[p>>2]=0;c[c[j>>2]>>2]=0;a:do if(c[i>>2]|0){c[k>>2]=c[i>>2];while(1){f=d[c[k>>2]>>0]|0;c[o>>2]=f;if(!f)break a;c[k>>2]=(c[k>>2]|0)+1;if((c[o>>2]|0)==1){f=c[k>>2]|0;a[n>>0]=a[f>>0]|0;a[n+1>>0]=a[f+1>>0]|0;c[k>>2]=(c[k>>2]|0)+(2+(e[n>>1]|0));continue}if((c[o>>2]|0)!=3){if((c[o>>2]|0)!=4)continue;c[p>>2]=(c[p>>2]|0)+-1;if(c[p>>2]|0)continue;else break}if(!(c[p>>2]|0))c[c[j>>2]>>2]=(c[k>>2]|0)+-1-(c[i>>2]|0);c[p>>2]=(c[p>>2]|0)+1}c[h>>2]=(c[k>>2]|0)-(c[i>>2]|0);q=c[h>>2]|0;l=g;return q|0}while(0);c[h>>2]=0;q=c[h>>2]|0;l=g;return q|0}function Qf(a){a=a|0;var b=0,e=0,f=0,g=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=b+8|0;f=b+4|0;g=b;c[f>>2]=a;do if(c[f>>2]|0){c[g>>2]=c[f>>2];if(!(d[c[g>>2]>>0]|0)){Rf(c[f>>2]|0);c[e>>2]=0;break}if((d[c[g>>2]>>0]|0|0)==3?(d[(c[g>>2]|0)+1>>0]|0|0)==4:0){Rf(c[f>>2]|0);c[e>>2]=0;break}c[e>>2]=c[f>>2]}else c[e>>2]=0;while(0);l=b;return c[e>>2]|0}function Rf(b){b=b|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;f=l;l=l+48|0;if((l|0)>=(m|0))$(48);g=f+28|0;h=f+24|0;i=f+20|0;j=f+32|0;k=f+16|0;n=f+12|0;o=f+34|0;p=f;q=f+8|0;c[g>>2]=b;if(!(c[g>>2]|0)){l=f;return}a:do if(tf(c[g>>2]|0)|0){c[h>>2]=c[g>>2];while(1){b=d[c[h>>2]>>0]|0;c[i>>2]=b;if(!b)break;c[h>>2]=(c[h>>2]|0)+1;if((c[i>>2]|0)!=1)continue;b=c[h>>2]|0;a[j>>0]=a[b>>0]|0;a[j+1>>0]=a[b+1>>0]|0;c[h>>2]=(c[h>>2]|0)+2;c[h>>2]=(c[h>>2]|0)+(e[j>>1]|0)}c[k>>2]=c[g>>2];c[n>>2]=(c[h>>2]|0)-(c[g>>2]|0);a[o>>0]=0;b=p;c[b>>2]=d[o>>0];c[b+4>>2]=0;while(1){if(!(c[k>>2]&7|0?(c[n>>2]|0)!=0:0))break;a[c[k>>2]>>0]=a[o>>0]|0;c[k>>2]=(c[k>>2]|0)+1;c[n>>2]=(c[n>>2]|0)+-1}if((c[n>>2]|0)>>>0>=8){b=p;r=gx(c[b>>2]|0,c[b+4>>2]|0,16843009,16843009)|0;b=p;c[b>>2]=r;c[b+4>>2]=D;do{c[q>>2]=c[k>>2];b=p;r=c[b+4>>2]|0;s=c[q>>2]|0;c[s>>2]=c[b>>2];c[s+4>>2]=r;c[n>>2]=(c[n>>2]|0)-8;c[k>>2]=(c[k>>2]|0)+8}while((c[n>>2]|0)>>>0>=8)}while(1){if(!(c[n>>2]|0))break a;a[c[k>>2]>>0]=a[o>>0]|0;c[k>>2]=(c[k>>2]|0)+1;c[n>>2]=(c[n>>2]|0)+-1}}while(0);vf(c[g>>2]|0);l=f;return}function Sf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f+12|0;h=f+8|0;i=f+4|0;j=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;e=Hf(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0,c[j>>2]|0,0)|0;l=f;return e|0}function Tf(f,g,h){f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;i=l;l=l+48|0;if((l|0)>=(m|0))$(48);j=i+32|0;k=i+28|0;n=i+24|0;o=i+20|0;p=i+16|0;q=i+36|0;r=i+12|0;s=i+8|0;t=i+4|0;u=i;c[k>>2]=f;c[n>>2]=g;c[o>>2]=h;if(!(c[k>>2]|0)){c[j>>2]=0;v=c[j>>2]|0;l=i;return v|0}if(!(c[o>>2]|0))c[o>>2]=hv(c[n>>2]|0)|0;c[p>>2]=c[k>>2];while(1){if(!(d[c[p>>2]>>0]|0)){w=29;break}if((d[c[p>>2]>>0]|0|0)==3?(d[(c[p>>2]|0)+1>>0]|0|0)==1:0){c[r>>2]=c[p>>2];c[p>>2]=(c[p>>2]|0)+2;k=c[p>>2]|0;a[q>>0]=a[k>>0]|0;a[q+1>>0]=a[k+1>>0]|0;c[p>>2]=(c[p>>2]|0)+2;if((e[q>>1]|0|0)==(c[o>>2]|0)?(Jv(c[p>>2]|0,c[n>>2]|0,c[o>>2]|0)|0)==0:0)break;c[p>>2]=(c[p>>2]|0)+(e[q>>1]|0);continue}if((d[c[p>>2]>>0]|0|0)==1){k=(c[p>>2]|0)+1|0;c[p>>2]=k;a[q>>0]=a[k>>0]|0;a[q+1>>0]=a[k+1>>0]|0;c[p>>2]=(c[p>>2]|0)+2;c[p>>2]=(c[p>>2]|0)+(e[q>>1]|0);continue}else{c[p>>2]=(c[p>>2]|0)+1;continue}}if((w|0)==29){c[j>>2]=0;v=c[j>>2]|0;l=i;return v|0}c[u>>2]=1;c[p>>2]=(c[p>>2]|0)+(e[q>>1]|0);a:while(1){x=c[p>>2]|0;if(!(c[u>>2]|0))break;do if((d[x>>0]|0|0)!=1){if((d[c[p>>2]>>0]|0|0)==3){c[u>>2]=(c[u>>2]|0)+1;break}if((d[c[p>>2]>>0]|0|0)!=4)if(!(d[c[p>>2]>>0]|0)){w=20;break a}else break;else{c[u>>2]=(c[u>>2]|0)+-1;break}}else{o=(c[p>>2]|0)+1|0;c[p>>2]=o;a[q>>0]=a[o>>0]|0;a[q+1>>0]=a[o+1>>0]|0;c[p>>2]=(c[p>>2]|0)+(2+(e[q>>1]|0));c[p>>2]=(c[p>>2]|0)+-1}while(0);c[p>>2]=(c[p>>2]|0)+1}if((w|0)==20)Re(22704,481,22735);b[q>>1]=x-(c[r>>2]|0);c[s>>2]=pf(1+(e[q>>1]|0)|0)|0;if(c[s>>2]|0){c[t>>2]=c[s>>2];_w(c[t>>2]|0,c[r>>2]|0,e[q>>1]|0|0)|0;c[t>>2]=(c[t>>2]|0)+(e[q>>1]|0);q=c[t>>2]|0;c[t>>2]=q+1;a[q>>0]=0;c[j>>2]=Qf(c[s>>2]|0)|0;v=c[j>>2]|0;l=i;return v|0}else{c[j>>2]=0;v=c[j>>2]|0;l=i;return v|0}return 0}function Uf(b){b=b|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f+20|0;h=f+16|0;i=f+12|0;j=f+24|0;k=f+8|0;n=f+4|0;o=f;c[h>>2]=b;c[n>>2]=0;c[o>>2]=0;if(!(c[h>>2]|0)){c[g>>2]=0;p=c[g>>2]|0;l=f;return p|0}c[i>>2]=c[h>>2];while(1){h=d[c[i>>2]>>0]|0;c[k>>2]=h;if(!h)break;c[i>>2]=(c[i>>2]|0)+1;if((c[k>>2]|0)==1){h=c[i>>2]|0;a[j>>0]=a[h>>0]|0;a[j+1>>0]=a[h+1>>0]|0;c[i>>2]=(c[i>>2]|0)+(2+(e[j>>1]|0));if((c[o>>2]|0)!=1)continue;c[n>>2]=(c[n>>2]|0)+1;continue}if((c[k>>2]|0)!=3){if((c[k>>2]|0)!=4)continue;c[o>>2]=(c[o>>2]|0)+-1;continue}if((c[o>>2]|0)==1)c[n>>2]=(c[n>>2]|0)+1;c[o>>2]=(c[o>>2]|0)+1}c[g>>2]=c[n>>2];p=c[g>>2]|0;l=f;return p|0}function Vf(f,g){f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;h=l;l=l+48|0;if((l|0)>=(m|0))$(48);i=h+28|0;j=h+24|0;k=h+20|0;n=h+16|0;o=h+32|0;p=h+12|0;q=h+8|0;r=h+4|0;s=h;c[j>>2]=f;c[k>>2]=g;c[r>>2]=0;if(c[j>>2]|0?(d[c[j>>2]>>0]|0|0)==3:0){c[n>>2]=c[j>>2];while(1){j=(c[k>>2]|0)>0;c[n>>2]=(c[n>>2]|0)+1;t=(d[c[n>>2]>>0]|0|0)==1;if(!j)break;if(t){j=(c[n>>2]|0)+1|0;c[n>>2]=j;a[o>>0]=a[j>>0]|0;a[o+1>>0]=a[j+1>>0]|0;c[n>>2]=(c[n>>2]|0)+(2+(e[o>>1]|0));c[n>>2]=(c[n>>2]|0)+-1;if(c[r>>2]|0)continue;c[k>>2]=(c[k>>2]|0)+-1;continue}if((d[c[n>>2]>>0]|0|0)==3){c[r>>2]=(c[r>>2]|0)+1;continue}if((d[c[n>>2]>>0]|0|0)!=4)if(!(d[c[n>>2]>>0]|0)){u=15;break}else continue;c[r>>2]=(c[r>>2]|0)+-1;if(c[r>>2]|0)continue;c[k>>2]=(c[k>>2]|0)+-1}if((u|0)==15){c[i>>2]=0;v=c[i>>2]|0;l=h;return v|0}do if(t){k=(c[n>>2]|0)+1|0;a[o>>0]=a[k>>0]|0;a[o+1>>0]=a[k+1>>0]|0;c[p>>2]=pf(5+(e[o>>1]|0)+1|0)|0;if(c[p>>2]|0){c[q>>2]=c[p>>2];k=c[q>>2]|0;c[q>>2]=k+1;a[k>>0]=3;_w(c[q>>2]|0,c[n>>2]|0,3+(e[o>>1]|0)|0)|0;c[q>>2]=(c[q>>2]|0)+(3+(e[o>>1]|0));k=c[q>>2]|0;c[q>>2]=k+1;a[k>>0]=4;a[c[q>>2]>>0]=0;break}c[i>>2]=0;v=c[i>>2]|0;l=h;return v|0}else{if((d[c[n>>2]>>0]|0|0)!=3){c[p>>2]=0;break}c[s>>2]=c[n>>2];c[r>>2]=1;a:do{c[n>>2]=(c[n>>2]|0)+1;do if((d[c[n>>2]>>0]|0|0)!=1){if((d[c[n>>2]>>0]|0|0)==3){c[r>>2]=(c[r>>2]|0)+1;break}if((d[c[n>>2]>>0]|0|0)!=4)if(!(d[c[n>>2]>>0]|0)){u=29;break a}else break;else{c[r>>2]=(c[r>>2]|0)+-1;break}}else{k=(c[n>>2]|0)+1|0;c[n>>2]=k;a[o>>0]=a[k>>0]|0;a[o+1>>0]=a[k+1>>0]|0;c[n>>2]=(c[n>>2]|0)+(2+(e[o>>1]|0));c[n>>2]=(c[n>>2]|0)+-1}while(0)}while((c[r>>2]|0)!=0);if((u|0)==29)Re(22704,673,22757);b[o>>1]=(c[n>>2]|0)+1-(c[s>>2]|0);c[p>>2]=pf(1+(e[o>>1]|0)|0)|0;if(c[p>>2]|0){c[q>>2]=c[p>>2];_w(c[q>>2]|0,c[s>>2]|0,e[o>>1]|0|0)|0;c[q>>2]=(c[q>>2]|0)+(e[o>>1]|0);k=c[q>>2]|0;c[q>>2]=k+1;a[k>>0]=0;break}c[i>>2]=0;v=c[i>>2]|0;l=h;return v|0}while(0);c[i>>2]=Qf(c[p>>2]|0)|0;v=c[i>>2]|0;l=h;return v|0}c[i>>2]=0;v=c[i>>2]|0;l=h;return v|0}function Wf(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=Vf(c[d>>2]|0,0)|0;l=b;return a|0}function Xf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;d=Yf(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;l=e;return d|0}function Yf(b,f,g){b=b|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;h=l;l=l+32|0;if((l|0)>=(m|0))$(32);i=h+20|0;j=h+16|0;k=h+12|0;n=h+8|0;o=h+4|0;p=h+24|0;q=h;c[j>>2]=b;c[k>>2]=f;c[n>>2]=g;c[q>>2]=0;c[c[n>>2]>>2]=0;if(!(c[j>>2]|0)){c[i>>2]=0;r=c[i>>2]|0;l=h;return r|0}c[o>>2]=c[j>>2];if((d[c[o>>2]>>0]|0|0)!=3){if(c[k>>2]|0){c[i>>2]=0;r=c[i>>2]|0;l=h;return r|0}}else c[o>>2]=(c[o>>2]|0)+1;a:while(1){s=(d[c[o>>2]>>0]|0|0)==1;if((c[k>>2]|0)<=0)break;do if(s){j=(c[o>>2]|0)+1|0;c[o>>2]=j;a[p>>0]=a[j>>0]|0;a[p+1>>0]=a[j+1>>0]|0;c[o>>2]=(c[o>>2]|0)+(2+(e[p>>1]|0));c[o>>2]=(c[o>>2]|0)+-1;if(!(c[q>>2]|0))c[k>>2]=(c[k>>2]|0)+-1}else{if((d[c[o>>2]>>0]|0|0)==3){c[q>>2]=(c[q>>2]|0)+1;break}if((d[c[o>>2]>>0]|0|0)!=4)if(!(d[c[o>>2]>>0]|0)){t=17;break a}else break;c[q>>2]=(c[q>>2]|0)+-1;if(!(c[q>>2]|0))c[k>>2]=(c[k>>2]|0)+-1}while(0);c[o>>2]=(c[o>>2]|0)+1}if((t|0)==17){c[i>>2]=0;r=c[i>>2]|0;l=h;return r|0}if(s){s=(c[o>>2]|0)+1|0;c[o>>2]=s;a[p>>0]=a[s>>0]|0;a[p+1>>0]=a[s+1>>0]|0;c[c[n>>2]>>2]=e[p>>1];c[i>>2]=(c[o>>2]|0)+2;r=c[i>>2]|0;l=h;return r|0}else{c[i>>2]=0;r=c[i>>2]|0;l=h;return r|0}return 0}function Zf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e+24|0;g=e+20|0;h=e+16|0;i=e+12|0;j=e+8|0;k=e+4|0;n=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[c[i>>2]>>2]=0;c[j>>2]=Yf(c[g>>2]|0,c[h>>2]|0,k)|0;if(!((c[j>>2]|0)!=0&(c[k>>2]|0)!=0)){c[f>>2]=0;o=c[f>>2]|0;l=e;return o|0}c[n>>2]=pf(c[k>>2]|0)|0;if(c[n>>2]|0){_w(c[n>>2]|0,c[j>>2]|0,c[k>>2]|0)|0;c[c[i>>2]>>2]=c[k>>2];c[f>>2]=c[n>>2];o=c[f>>2]|0;l=e;return o|0}else{c[f>>2]=0;o=c[f>>2]|0;l=e;return o|0}return 0}function _f(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[g>>2]=b;c[h>>2]=d;c[i>>2]=Yf(c[g>>2]|0,c[h>>2]|0,j)|0;if(!((c[i>>2]|0)==0|(c[j>>2]|0)>>>0<1)?((c[j>>2]|0)+1|0)>>>0>=1:0){c[k>>2]=pf((c[j>>2]|0)+1|0)|0;if(c[k>>2]|0){_w(c[k>>2]|0,c[i>>2]|0,c[j>>2]|0)|0;a[(c[k>>2]|0)+(c[j>>2]|0)>>0]=0;c[f>>2]=c[k>>2];n=c[f>>2]|0;l=e;return n|0}else{c[f>>2]=0;n=c[f>>2]|0;l=e;return n|0}}c[f>>2]=0;n=c[f>>2]|0;l=e;return n|0}function $f(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e+28|0;g=e+24|0;h=e+20|0;i=e+16|0;j=e+12|0;k=e+8|0;n=e+4|0;o=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;do if((c[i>>2]|0)==8){c[n>>2]=Zf(c[g>>2]|0,c[h>>2]|0,j)|0;if(!(c[n>>2]|0)){c[f>>2]=0;p=c[f>>2]|0;l=e;return p|0}if(tf(c[g>>2]|0)|0)q=Sp(0)|0;else q=Rp(0)|0;c[k>>2]=q;if(c[k>>2]|0){Ep(c[k>>2]|0,c[n>>2]|0,c[j>>2]<<3)|0;break}else{vf(c[n>>2]|0);break}}else{if(!(c[i>>2]|0))c[i>>2]=1;c[o>>2]=Yf(c[g>>2]|0,c[h>>2]|0,j)|0;if(!(c[o>>2]|0)){c[f>>2]=0;p=c[f>>2]|0;l=e;return p|0}if(Zo(k,c[i>>2]|0,c[o>>2]|0,c[j>>2]|0,0)|0){c[f>>2]=0;p=c[f>>2]|0;l=e;return p|0}}while(0);c[f>>2]=c[k>>2];p=c[f>>2]|0;l=e;return p|0}function ag(f){f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;g=l;l=l+48|0;if((l|0)>=(m|0))$(48);h=g+28|0;i=g+24|0;j=g+20|0;k=g+16|0;n=g+32|0;o=g+12|0;p=g+8|0;q=g+4|0;r=g;c[i>>2]=f;c[q>>2]=0;c[r>>2]=1;if(c[i>>2]|0?(d[c[i>>2]>>0]|0|0)==3:0){c[j>>2]=c[i>>2];while(1){i=(c[r>>2]|0)>0;c[j>>2]=(c[j>>2]|0)+1;s=c[j>>2]|0;if(!i)break;if((d[s>>0]|0|0)==1){i=(c[j>>2]|0)+1|0;c[j>>2]=i;a[n>>0]=a[i>>0]|0;a[n+1>>0]=a[i+1>>0]|0;c[j>>2]=(c[j>>2]|0)+(2+(e[n>>1]|0));c[j>>2]=(c[j>>2]|0)+-1;if(c[q>>2]|0)continue;c[r>>2]=(c[r>>2]|0)+-1;continue}if((d[c[j>>2]>>0]|0|0)==3){c[q>>2]=(c[q>>2]|0)+1;continue}if((d[c[j>>2]>>0]|0|0)!=4)if(!(d[c[j>>2]>>0]|0)){t=15;break}else continue;c[q>>2]=(c[q>>2]|0)+-1;if(c[q>>2]|0)continue;c[r>>2]=(c[r>>2]|0)+-1}if((t|0)==15){c[h>>2]=0;u=c[h>>2]|0;l=g;return u|0}c[k>>2]=s;c[q>>2]=0;a:do{do if((d[c[j>>2]>>0]|0|0)!=1){if((d[c[j>>2]>>0]|0|0)==3){c[q>>2]=(c[q>>2]|0)+1;break}if((d[c[j>>2]>>0]|0|0)!=4)if(!(d[c[j>>2]>>0]|0)){t=24;break a}else break;else{c[q>>2]=(c[q>>2]|0)+-1;break}}else{s=(c[j>>2]|0)+1|0;c[j>>2]=s;a[n>>0]=a[s>>0]|0;a[n+1>>0]=a[s+1>>0]|0;c[j>>2]=(c[j>>2]|0)+(2+(e[n>>1]|0));c[j>>2]=(c[j>>2]|0)+-1}while(0);c[j>>2]=(c[j>>2]|0)+1}while((c[q>>2]|0)!=0);if((t|0)==24){c[h>>2]=0;u=c[h>>2]|0;l=g;return u|0}b[n>>1]=(c[j>>2]|0)-(c[k>>2]|0);c[o>>2]=pf(1+(e[n>>1]|0)+2|0)|0;if(c[o>>2]|0){c[p>>2]=c[o>>2];j=c[p>>2]|0;c[p>>2]=j+1;a[j>>0]=3;_w(c[p>>2]|0,c[k>>2]|0,e[n>>1]|0|0)|0;c[p>>2]=(c[p>>2]|0)+(e[n>>1]|0);n=c[p>>2]|0;c[p>>2]=n+1;a[n>>0]=4;n=c[p>>2]|0;c[p>>2]=n+1;a[n>>0]=0;c[h>>2]=Qf(c[o>>2]|0)|0;u=c[h>>2]|0;l=g;return u|0}else{c[h>>2]=0;u=c[h>>2]|0;l=g;return u|0}}c[h>>2]=0;u=c[h>>2]|0;l=g;return u|0}function bg(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+8|0;e=b+4|0;f=b;c[d>>2]=a;c[e>>2]=ag(c[d>>2]|0)|0;c[f>>2]=Wf(c[e>>2]|0)|0;Rf(c[e>>2]|0);l=b;return c[f>>2]|0}function cg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f+28|0;h=f+24|0;i=f+20|0;j=f+16|0;k=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[k>>2]=e;e=c[g>>2]|0;g=c[h>>2]|0;h=c[i>>2]|0;c[j>>2]=Kf(e,g,h,hv(c[i>>2]|0)|0,1,0,k)|0;l=f;return c[j>>2]|0}function dg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f+12|0;h=f+8|0;i=f+4|0;j=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;e=c[g>>2]|0;g=c[h>>2]|0;h=c[i>>2]|0;d=hv(c[i>>2]|0)|0;i=Kf(e,g,h,d,1,0,c[j>>2]|0)|0;l=f;return i|0}function eg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;e=Jf(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0,c[j>>2]|0,0,0,f)|0;l=f;return e|0} -function Yn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f+12|0;h=f+8|0;i=f+4|0;j=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;vn(c[(c[j>>2]|0)+48+16>>2]|0,c[(c[h>>2]|0)+8>>2]|0,c[(c[i>>2]|0)+8>>2]|0,c[j>>2]|0);Qn(c[(c[j>>2]|0)+48+16+4>>2]|0,c[(c[j>>2]|0)+48+16>>2]|0,c[j>>2]|0);vn(c[(c[j>>2]|0)+48+16+8>>2]|0,c[c[h>>2]>>2]|0,c[c[i>>2]>>2]|0,c[j>>2]|0);vn(c[(c[j>>2]|0)+48+16+12>>2]|0,c[(c[h>>2]|0)+4>>2]|0,c[(c[i>>2]|0)+4>>2]|0,c[j>>2]|0);vn(c[(c[j>>2]|0)+48+16+16>>2]|0,c[(c[j>>2]|0)+24>>2]|0,c[(c[j>>2]|0)+48+16+8>>2]|0,c[j>>2]|0);vn(c[(c[j>>2]|0)+48+16+16>>2]|0,c[(c[j>>2]|0)+48+16+16>>2]|0,c[(c[j>>2]|0)+48+16+12>>2]|0,c[j>>2]|0);Sn(c[(c[j>>2]|0)+48+16+20>>2]|0,c[(c[j>>2]|0)+48+16+4>>2]|0,c[(c[j>>2]|0)+48+16+16>>2]|0,c[j>>2]|0);Pn(c[(c[j>>2]|0)+48+16+24>>2]|0,c[(c[j>>2]|0)+48+16+4>>2]|0,c[(c[j>>2]|0)+48+16+16>>2]|0,c[j>>2]|0);Pn(c[(c[j>>2]|0)+48+16+28>>2]|0,c[c[h>>2]>>2]|0,c[(c[h>>2]|0)+4>>2]|0,c[j>>2]|0);Pn(c[c[g>>2]>>2]|0,c[c[i>>2]>>2]|0,c[(c[i>>2]|0)+4>>2]|0,c[j>>2]|0);vn(c[c[g>>2]>>2]|0,c[c[g>>2]>>2]|0,c[(c[j>>2]|0)+48+16+28>>2]|0,c[j>>2]|0);Sn(c[c[g>>2]>>2]|0,c[c[g>>2]>>2]|0,c[(c[j>>2]|0)+48+16+8>>2]|0,c[j>>2]|0);Sn(c[c[g>>2]>>2]|0,c[c[g>>2]>>2]|0,c[(c[j>>2]|0)+48+16+12>>2]|0,c[j>>2]|0);vn(c[c[g>>2]>>2]|0,c[c[g>>2]>>2]|0,c[(c[j>>2]|0)+48+16+20>>2]|0,c[j>>2]|0);vn(c[c[g>>2]>>2]|0,c[c[g>>2]>>2]|0,c[(c[j>>2]|0)+48+16>>2]|0,c[j>>2]|0);i=c[(c[g>>2]|0)+4>>2]|0;h=c[j>>2]|0;if((c[(c[j>>2]|0)+4>>2]|0)==1){Kp(i,c[h+48+16+8>>2]|0)|0;Jp(c[(c[g>>2]|0)+4>>2]|0,c[(c[g>>2]|0)+4>>2]|0);Sn(c[(c[g>>2]|0)+4>>2]|0,c[(c[j>>2]|0)+48+16+12>>2]|0,c[(c[g>>2]|0)+4>>2]|0,c[j>>2]|0);k=c[g>>2]|0;n=k+4|0;o=c[n>>2]|0;p=c[g>>2]|0;q=p+4|0;r=c[q>>2]|0;s=c[j>>2]|0;t=s+48|0;u=t+16|0;v=u+24|0;w=c[v>>2]|0;x=c[j>>2]|0;vn(o,r,w,x);y=c[g>>2]|0;z=y+4|0;A=c[z>>2]|0;B=c[g>>2]|0;C=B+4|0;D=c[C>>2]|0;E=c[j>>2]|0;F=E+48|0;G=F+16|0;H=c[G>>2]|0;I=c[j>>2]|0;vn(A,D,H,I);J=c[g>>2]|0;K=J+8|0;L=c[K>>2]|0;M=c[j>>2]|0;N=M+48|0;O=N+16|0;P=O+20|0;Q=c[P>>2]|0;R=c[j>>2]|0;S=R+48|0;T=S+16|0;U=T+24|0;V=c[U>>2]|0;W=c[j>>2]|0;vn(L,Q,V,W);l=f;return}else{vn(i,c[h+20>>2]|0,c[(c[j>>2]|0)+48+16+8>>2]|0,c[j>>2]|0);Sn(c[(c[g>>2]|0)+4>>2]|0,c[(c[j>>2]|0)+48+16+12>>2]|0,c[(c[g>>2]|0)+4>>2]|0,c[j>>2]|0);k=c[g>>2]|0;n=k+4|0;o=c[n>>2]|0;p=c[g>>2]|0;q=p+4|0;r=c[q>>2]|0;s=c[j>>2]|0;t=s+48|0;u=t+16|0;v=u+24|0;w=c[v>>2]|0;x=c[j>>2]|0;vn(o,r,w,x);y=c[g>>2]|0;z=y+4|0;A=c[z>>2]|0;B=c[g>>2]|0;C=B+4|0;D=c[C>>2]|0;E=c[j>>2]|0;F=E+48|0;G=F+16|0;H=c[G>>2]|0;I=c[j>>2]|0;vn(A,D,H,I);J=c[g>>2]|0;K=J+8|0;L=c[K>>2]|0;M=c[j>>2]|0;N=M+48|0;O=N+16|0;P=O+20|0;Q=c[P>>2]|0;R=c[j>>2]|0;S=R+48|0;T=S+16|0;U=T+24|0;V=c[U>>2]|0;W=c[j>>2]|0;vn(L,Q,V,W);l=f;return}}function Zn(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e;c[f>>2]=b;if((d[(c[f>>2]|0)+48>>0]|0)>>>1&1|0){g=c[f>>2]|0;h=g+48|0;i=h+8|0;j=c[i>>2]|0;l=e;return j|0}b=(c[f>>2]|0)+48|0;a[b>>0]=a[b>>0]&-3|2;if(!(c[(c[f>>2]|0)+48+8>>2]|0)){b=vp(0)|0;c[(c[f>>2]|0)+48+8>>2]=b}b=c[(c[f>>2]|0)+48+8>>2]|0;k=Wp(2)|0;un(b,k,c[f>>2]|0);g=c[f>>2]|0;h=g+48|0;i=h+8|0;j=c[i>>2]|0;l=e;return j|0}function _n(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;Kp(c[c[e>>2]>>2]|0,c[c[f>>2]>>2]|0)|0;Kp(c[(c[e>>2]|0)+4>>2]|0,c[(c[f>>2]|0)+4>>2]|0)|0;Kp(c[(c[e>>2]|0)+8>>2]|0,c[(c[f>>2]|0)+8>>2]|0)|0;l=d;return}function $n(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;f=l;l=l+176|0;if((l|0)>=(m|0))$(176);g=f+168|0;h=f+164|0;i=f+160|0;j=f+156|0;k=f+152|0;n=f+148|0;o=f+144|0;p=f+140|0;q=f+136|0;r=f+132|0;s=f+128|0;t=f+124|0;u=f+112|0;v=f+100|0;w=f+88|0;x=f+84|0;y=f+80|0;z=f+68|0;A=f+64|0;B=f+60|0;C=f+48|0;D=f+36|0;E=f+32|0;F=f+28|0;G=f+24|0;H=f+20|0;I=f+16|0;J=f+12|0;K=f+8|0;L=f+4|0;M=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;if((c[c[j>>2]>>2]|0)==2){c[x>>2]=lo(c[h>>2]|0)|0;Op(c[c[g>>2]>>2]|0,0)|0;Op(c[(c[g>>2]|0)+4>>2]|0,1)|0;Op(c[(c[g>>2]|0)+8>>2]|0,1)|0;if(c[h>>2]|0?c[(c[h>>2]|0)+12>>2]&1|0:0){yn(z);c[y>>2]=(c[x>>2]|0)-1;while(1){if((c[y>>2]|0)<0)break;Ln(c[g>>2]|0,c[g>>2]|0,c[j>>2]|0);Vn(z,c[g>>2]|0,c[i>>2]|0,c[j>>2]|0);if(mo(c[h>>2]|0,c[y>>2]|0)|0)_n(c[g>>2]|0,z);c[y>>2]=(c[y>>2]|0)+-1}An(z);l=f;return}c[y>>2]=(c[x>>2]|0)-1;while(1){if((c[y>>2]|0)<0)break;Ln(c[g>>2]|0,c[g>>2]|0,c[j>>2]|0);if(mo(c[h>>2]|0,c[y>>2]|0)|0)Vn(c[g>>2]|0,c[g>>2]|0,c[i>>2]|0,c[j>>2]|0);c[y>>2]=(c[y>>2]|0)+-1}l=f;return}if((c[c[j>>2]>>2]|0)==1){c[A>>2]=lo(c[h>>2]|0)|0;yn(u);yn(v);yn(C);yn(D);Op(c[u>>2]|0,1)|0;Dp(c[v>>2]|0);c[v>>2]=Ip(c[c[i>>2]>>2]|0)|0;Op(c[v+8>>2]|0,1)|0;c[J>>2]=(((c[A>>2]|0)+32-1<<1>>>0)/32|0)+1;Ap(c[u>>2]|0,c[J>>2]|0);Ap(c[u+8>>2]|0,c[J>>2]|0);Ap(c[v>>2]|0,c[J>>2]|0);Ap(c[v+8>>2]|0,c[J>>2]|0);Ap(c[C>>2]|0,c[J>>2]|0);Ap(c[C+8>>2]|0,c[J>>2]|0);Ap(c[D>>2]|0,c[J>>2]|0);Ap(c[D+8>>2]|0,c[J>>2]|0);c[E>>2]=u;c[F>>2]=v;c[G>>2]=C;c[H>>2]=D;c[B>>2]=(c[A>>2]|0)-1;while(1){if((c[B>>2]|0)<0)break;c[I>>2]=mo(c[h>>2]|0,c[B>>2]|0)|0;Qp(c[c[E>>2]>>2]|0,c[c[F>>2]>>2]|0,c[I>>2]|0);Qp(c[(c[E>>2]|0)+8>>2]|0,c[(c[F>>2]|0)+8>>2]|0,c[I>>2]|0);ao(c[G>>2]|0,c[H>>2]|0,c[E>>2]|0,c[F>>2]|0,c[c[i>>2]>>2]|0,c[j>>2]|0);Qp(c[c[G>>2]>>2]|0,c[c[H>>2]>>2]|0,c[I>>2]|0);Qp(c[(c[G>>2]|0)+8>>2]|0,c[(c[H>>2]|0)+8>>2]|0,c[I>>2]|0);c[K>>2]=c[E>>2];c[E>>2]=c[G>>2];c[G>>2]=c[K>>2];c[K>>2]=c[F>>2];c[F>>2]=c[H>>2];c[H>>2]=c[K>>2];c[B>>2]=(c[B>>2]|0)+-1}Bp(c[(c[g>>2]|0)+4>>2]|0);c[I>>2]=c[A>>2]&1;Qp(c[u>>2]|0,c[C>>2]|0,c[I>>2]|0);Qp(c[u+8>>2]|0,c[C+8>>2]|0,c[I>>2]|0);if(!(c[(c[u+8>>2]|0)+4>>2]|0)){Op(c[c[g>>2]>>2]|0,1)|0;Op(c[(c[g>>2]|0)+8>>2]|0,0)|0}else{c[o>>2]=Rp(0)|0;un(c[o>>2]|0,c[u+8>>2]|0,c[j>>2]|0);vn(c[c[g>>2]>>2]|0,c[u>>2]|0,c[o>>2]|0,c[j>>2]|0);Op(c[(c[g>>2]|0)+8>>2]|0,1)|0;Dp(c[o>>2]|0)}An(u);An(v);An(C);An(D);l=f;return}c[k>>2]=Lp(c[(c[j>>2]|0)+16>>2]|0)|0;c[n>>2]=Lp(c[(c[j>>2]|0)+16>>2]|0)|0;c[q>>2]=Lp(c[(c[j>>2]|0)+16>>2]|0)|0;c[p>>2]=Ip(c[h>>2]|0)|0;c[r>>2]=Ip(c[(c[i>>2]|0)+4>>2]|0)|0;if(c[(c[p>>2]|0)+8>>2]|0){c[(c[p>>2]|0)+8>>2]=0;un(c[r>>2]|0,c[r>>2]|0,c[j>>2]|0)}if(vo(c[(c[i>>2]|0)+8>>2]|0,1)|0){c[L>>2]=Lp(c[(c[j>>2]|0)+16>>2]|0)|0;c[M>>2]=Lp(c[(c[j>>2]|0)+16>>2]|0)|0;vn(c[L>>2]|0,c[(c[i>>2]|0)+8>>2]|0,c[(c[i>>2]|0)+8>>2]|0,c[j>>2]|0);vn(c[M>>2]|0,c[(c[i>>2]|0)+8>>2]|0,c[L>>2]|0,c[j>>2]|0);un(c[L>>2]|0,c[L>>2]|0,c[j>>2]|0);vn(c[k>>2]|0,c[c[i>>2]>>2]|0,c[L>>2]|0,c[j>>2]|0);un(c[M>>2]|0,c[M>>2]|0,c[j>>2]|0);vn(c[n>>2]|0,c[r>>2]|0,c[M>>2]|0,c[j>>2]|0);Dp(c[L>>2]|0);Dp(c[M>>2]|0)}else{Kp(c[k>>2]|0,c[c[i>>2]>>2]|0)|0;Kp(c[n>>2]|0,c[r>>2]|0)|0}c[o>>2]=Ip(Wp(1)|0)|0;M=c[q>>2]|0;L=c[p>>2]|0;Qo(M,L,Wp(3)|0);c[t>>2]=lo(c[q>>2]|0)|0;if((c[t>>2]|0)>>>0<2){c[t>>2]=2;Bp(c[c[g>>2]>>2]|0);Bp(c[(c[g>>2]|0)+4>>2]|0);Bp(c[(c[g>>2]|0)+8>>2]|0)}else{Kp(c[c[g>>2]>>2]|0,c[c[i>>2]>>2]|0)|0;Kp(c[(c[g>>2]|0)+4>>2]|0,c[r>>2]|0)|0;Kp(c[(c[g>>2]|0)+8>>2]|0,c[(c[i>>2]|0)+8>>2]|0)|0}Dp(c[r>>2]|0);c[r>>2]=0;c[u>>2]=c[k>>2];c[k>>2]=0;c[u+4>>2]=c[n>>2];c[n>>2]=0;c[u+8>>2]=c[o>>2];c[o>>2]=0;yn(v);yn(w);c[s>>2]=(c[t>>2]|0)-2;while(1){if((c[s>>2]|0)>>>0<=0)break;Ln(c[g>>2]|0,c[g>>2]|0,c[j>>2]|0);if((mo(c[q>>2]|0,c[s>>2]|0)|0)==1?(mo(c[p>>2]|0,c[s>>2]|0)|0)==0:0){_n(v,c[g>>2]|0);Vn(c[g>>2]|0,v,u,c[j>>2]|0)}if((mo(c[q>>2]|0,c[s>>2]|0)|0)==0?(mo(c[p>>2]|0,c[s>>2]|0)|0)==1:0){_n(v,c[g>>2]|0);_n(w,u);Sn(c[w+4>>2]|0,c[(c[j>>2]|0)+16>>2]|0,c[w+4>>2]|0,c[j>>2]|0);Vn(c[g>>2]|0,v,w,c[j>>2]|0)}c[s>>2]=(c[s>>2]|0)+-1}An(u);An(v);An(w);Dp(c[q>>2]|0);Dp(c[p>>2]|0);l=f;return}function ao(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0;h=l;l=l+32|0;if((l|0)>=(m|0))$(32);i=h+20|0;j=h+16|0;k=h+12|0;n=h+8|0;o=h+4|0;p=h;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;Pn(c[c[j>>2]>>2]|0,c[c[n>>2]>>2]|0,c[(c[n>>2]|0)+8>>2]|0,c[p>>2]|0);Sn(c[(c[n>>2]|0)+8>>2]|0,c[c[n>>2]>>2]|0,c[(c[n>>2]|0)+8>>2]|0,c[p>>2]|0);Pn(c[c[i>>2]>>2]|0,c[c[k>>2]>>2]|0,c[(c[k>>2]|0)+8>>2]|0,c[p>>2]|0);Sn(c[(c[k>>2]|0)+8>>2]|0,c[c[k>>2]>>2]|0,c[(c[k>>2]|0)+8>>2]|0,c[p>>2]|0);vn(c[c[n>>2]>>2]|0,c[(c[k>>2]|0)+8>>2]|0,c[c[j>>2]>>2]|0,c[p>>2]|0);vn(c[(c[n>>2]|0)+8>>2]|0,c[c[i>>2]>>2]|0,c[(c[n>>2]|0)+8>>2]|0,c[p>>2]|0);Qn(c[c[k>>2]>>2]|0,c[c[i>>2]>>2]|0,c[p>>2]|0);Qn(c[(c[k>>2]|0)+8>>2]|0,c[(c[k>>2]|0)+8>>2]|0,c[p>>2]|0);Pn(c[c[j>>2]>>2]|0,c[c[n>>2]>>2]|0,c[(c[n>>2]|0)+8>>2]|0,c[p>>2]|0);Sn(c[(c[n>>2]|0)+8>>2]|0,c[c[n>>2]>>2]|0,c[(c[n>>2]|0)+8>>2]|0,c[p>>2]|0);vn(c[c[i>>2]>>2]|0,c[c[k>>2]>>2]|0,c[(c[k>>2]|0)+8>>2]|0,c[p>>2]|0);Sn(c[(c[k>>2]|0)+8>>2]|0,c[c[k>>2]>>2]|0,c[(c[k>>2]|0)+8>>2]|0,c[p>>2]|0);Qn(c[c[j>>2]>>2]|0,c[c[j>>2]>>2]|0,c[p>>2]|0);Qn(c[(c[j>>2]|0)+8>>2]|0,c[(c[n>>2]|0)+8>>2]|0,c[p>>2]|0);vn(c[(c[i>>2]|0)+8>>2]|0,c[(c[k>>2]|0)+8>>2]|0,c[(c[p>>2]|0)+20>>2]|0,c[p>>2]|0);vn(c[(c[j>>2]|0)+8>>2]|0,c[(c[j>>2]|0)+8>>2]|0,c[o>>2]|0,c[p>>2]|0);Pn(c[(c[i>>2]|0)+8>>2]|0,c[c[k>>2]>>2]|0,c[(c[i>>2]|0)+8>>2]|0,c[p>>2]|0);vn(c[(c[i>>2]|0)+8>>2]|0,c[(c[i>>2]|0)+8>>2]|0,c[(c[k>>2]|0)+8>>2]|0,c[p>>2]|0);l=h;return}function bo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+28|0;f=d+24|0;g=d+20|0;h=d+16|0;i=d+12|0;j=d+8|0;k=d+4|0;n=d;c[f>>2]=a;c[g>>2]=b;c[h>>2]=0;c[i>>2]=Rp(0)|0;c[j>>2]=Rp(0)|0;c[k>>2]=Rp(0)|0;a:do switch(c[c[g>>2]>>2]|0){case 0:{c[n>>2]=Rp(0)|0;if(tn(c[i>>2]|0,c[j>>2]|0,c[f>>2]|0,c[g>>2]|0)|0){c[e>>2]=0;o=c[e>>2]|0;l=d;return o|0}Qn(c[j>>2]|0,c[j>>2]|0,c[g>>2]|0);co(c[n>>2]|0,c[i>>2]|0,c[g>>2]|0);vn(c[k>>2]|0,c[(c[g>>2]|0)+20>>2]|0,c[i>>2]|0,c[g>>2]|0);Pn(c[k>>2]|0,c[k>>2]|0,c[(c[g>>2]|0)+24>>2]|0,c[g>>2]|0);Pn(c[k>>2]|0,c[k>>2]|0,c[n>>2]|0,c[g>>2]|0);if(!(wo(c[j>>2]|0,c[k>>2]|0)|0))c[h>>2]=1;Tp(c[n>>2]|0);break}case 1:{if(!(tn(c[i>>2]|0,0,c[f>>2]|0,c[g>>2]|0)|0)){b=c[k>>2]|0;a=c[(c[g>>2]|0)+20>>2]|0;p=Wp(4)|0;vn(b,a,p,c[g>>2]|0);p=c[k>>2]|0;a=c[k>>2]|0;b=Wp(2)|0;Pn(p,a,b,c[g>>2]|0);vn(c[k>>2]|0,c[k>>2]|0,c[i>>2]|0,c[g>>2]|0);Qn(c[j>>2]|0,c[i>>2]|0,c[g>>2]|0);Pn(c[k>>2]|0,c[k>>2]|0,c[j>>2]|0,c[g>>2]|0);b=c[k>>2]|0;a=c[k>>2]|0;p=Wp(1)|0;Pn(b,a,p,c[g>>2]|0);vn(c[k>>2]|0,c[k>>2]|0,c[i>>2]|0,c[g>>2]|0);vn(c[k>>2]|0,c[k>>2]|0,c[(c[g>>2]|0)+24>>2]|0,c[g>>2]|0);p=c[j>>2]|0;a=c[(c[g>>2]|0)+16>>2]|0;b=Wp(1)|0;Sn(p,a,b,c[g>>2]|0);so(c[j>>2]|0,c[j>>2]|0,1);Un(c[k>>2]|0,c[k>>2]|0,c[j>>2]|0,c[g>>2]|0);c[h>>2]=vo(c[k>>2]|0,1)|0;break a}c[e>>2]=0;o=c[e>>2]|0;l=d;return o|0}case 2:{if(tn(c[i>>2]|0,c[j>>2]|0,c[f>>2]|0,c[g>>2]|0)|0){c[e>>2]=0;o=c[e>>2]|0;l=d;return o|0}Qn(c[i>>2]|0,c[i>>2]|0,c[g>>2]|0);Qn(c[j>>2]|0,c[j>>2]|0,c[g>>2]|0);b=c[k>>2]|0;if((c[(c[g>>2]|0)+4>>2]|0)==1){Kp(b,c[i>>2]|0)|0;Jp(c[k>>2]|0,c[k>>2]|0)}else vn(b,c[(c[g>>2]|0)+20>>2]|0,c[i>>2]|0,c[g>>2]|0);Pn(c[k>>2]|0,c[k>>2]|0,c[j>>2]|0,c[g>>2]|0);Sn(c[k>>2]|0,c[k>>2]|0,Wp(1)|0,c[g>>2]|0);vn(c[i>>2]|0,c[i>>2]|0,c[j>>2]|0,c[g>>2]|0);vn(c[i>>2]|0,c[i>>2]|0,c[(c[g>>2]|0)+24>>2]|0,c[g>>2]|0);Sn(c[k>>2]|0,c[k>>2]|0,c[i>>2]|0,c[g>>2]|0);if(!(vo(c[k>>2]|0,0)|0))c[h>>2]=1;break}default:{}}while(0);Tp(c[k>>2]|0);Tp(c[i>>2]|0);Tp(c[j>>2]|0);c[e>>2]=c[h>>2];o=c[e>>2]|0;l=d;return o|0}function co(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;d=c[f>>2]|0;f=c[g>>2]|0;g=Wp(3)|0;So(d,f,g,c[(c[h>>2]|0)+16>>2]|0);l=e;return}function eo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;e=l;l=l+48|0;if((l|0)>=(m|0))$(48);f=e+36|0;g=e+32|0;h=e+28|0;i=e+24|0;j=e+20|0;k=e+16|0;n=e+12|0;o=e+8|0;p=e+4|0;q=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[k>>2]=c[(c[g>>2]|0)+4>>2];c[o>>2]=c[(c[g>>2]|0)+8>>2];c[p>>2]=0;c[n>>2]=(c[k>>2]|0)+1;if((c[c[f>>2]>>2]|0)<(c[n>>2]|0))Ap(c[f>>2]|0,c[n>>2]|0);c[j>>2]=c[(c[g>>2]|0)+16>>2];c[i>>2]=c[(c[f>>2]|0)+16>>2];do if(c[k>>2]|0){if(!(c[o>>2]|0)){c[q>>2]=Go(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[h>>2]|0)|0;c[(c[i>>2]|0)+(c[k>>2]<<2)>>2]=c[q>>2];c[n>>2]=(c[k>>2]|0)+(c[q>>2]|0);break}if((c[k>>2]|0)==1?(c[c[j>>2]>>2]|0)>>>0<(c[h>>2]|0)>>>0:0){c[c[i>>2]>>2]=(c[h>>2]|0)-(c[c[j>>2]>>2]|0);c[n>>2]=1;break}Io(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[h>>2]|0)|0;c[n>>2]=(c[k>>2]|0)-((c[(c[i>>2]|0)+((c[k>>2]|0)-1<<2)>>2]|0)==0&1);c[p>>2]=1}else{c[c[i>>2]>>2]=c[h>>2];c[n>>2]=c[h>>2]|0?1:0}while(0);c[(c[f>>2]|0)+4>>2]=c[n>>2];c[(c[f>>2]|0)+8>>2]=c[p>>2];l=e;return}function fo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;e=l;l=l+64|0;if((l|0)>=(m|0))$(64);f=e+52|0;g=e+48|0;h=e+44|0;i=e+40|0;j=e+36|0;k=e+32|0;n=e+28|0;o=e+24|0;p=e+20|0;q=e+16|0;r=e+12|0;s=e+8|0;t=e+4|0;u=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;if((c[(c[g>>2]|0)+4>>2]|0)<(c[(c[h>>2]|0)+4>>2]|0)){c[n>>2]=c[(c[h>>2]|0)+4>>2];c[q>>2]=c[(c[h>>2]|0)+8>>2];c[o>>2]=c[(c[g>>2]|0)+4>>2];c[r>>2]=c[(c[g>>2]|0)+8>>2];c[p>>2]=(c[n>>2]|0)+1;if((c[c[f>>2]>>2]|0)<(c[p>>2]|0))Ap(c[f>>2]|0,c[p>>2]|0);c[j>>2]=c[(c[h>>2]|0)+16>>2];c[k>>2]=c[(c[g>>2]|0)+16>>2]}else{c[n>>2]=c[(c[g>>2]|0)+4>>2];c[q>>2]=c[(c[g>>2]|0)+8>>2];c[o>>2]=c[(c[h>>2]|0)+4>>2];c[r>>2]=c[(c[h>>2]|0)+8>>2];c[p>>2]=(c[n>>2]|0)+1;if((c[c[f>>2]>>2]|0)<(c[p>>2]|0))Ap(c[f>>2]|0,c[p>>2]|0);c[j>>2]=c[(c[g>>2]|0)+16>>2];c[k>>2]=c[(c[h>>2]|0)+16>>2]}c[i>>2]=c[(c[f>>2]|0)+16>>2];c[s>>2]=0;do if(c[o>>2]|0){if((c[q>>2]|0)==(c[r>>2]|0)){c[u>>2]=Ho(c[i>>2]|0,c[j>>2]|0,c[n>>2]|0,c[k>>2]|0,c[o>>2]|0)|0;c[(c[i>>2]|0)+(c[n>>2]<<2)>>2]=c[u>>2];c[p>>2]=(c[n>>2]|0)+(c[u>>2]|0);if(!(c[q>>2]|0))break;c[s>>2]=1;break}if((c[n>>2]|0)!=(c[o>>2]|0)){Jo(c[i>>2]|0,c[j>>2]|0,c[n>>2]|0,c[k>>2]|0,c[o>>2]|0)|0;c[p>>2]=c[n>>2];while(1){if((c[p>>2]|0)<=0)break;if(c[(c[i>>2]|0)+((c[p>>2]|0)-1<<2)>>2]|0)break;c[p>>2]=(c[p>>2]|0)+-1}c[s>>2]=c[q>>2];break}h=(Ko(c[j>>2]|0,c[k>>2]|0,c[n>>2]|0)|0)<0;g=c[i>>2]|0;if(h){rp(g,c[k>>2]|0,c[j>>2]|0,c[n>>2]|0)|0;c[p>>2]=c[n>>2];while(1){if((c[p>>2]|0)<=0)break;if(c[(c[i>>2]|0)+((c[p>>2]|0)-1<<2)>>2]|0)break;c[p>>2]=(c[p>>2]|0)+-1}if(c[q>>2]|0)break;c[s>>2]=1;break}else{rp(g,c[j>>2]|0,c[k>>2]|0,c[n>>2]|0)|0;c[p>>2]=c[n>>2];while(1){if((c[p>>2]|0)<=0)break;if(c[(c[i>>2]|0)+((c[p>>2]|0)-1<<2)>>2]|0)break;c[p>>2]=(c[p>>2]|0)+-1}if(!(c[q>>2]|0))break;c[s>>2]=1;break}}else{c[t>>2]=0;while(1){if((c[t>>2]|0)>=(c[n>>2]|0))break;c[(c[i>>2]|0)+(c[t>>2]<<2)>>2]=c[(c[j>>2]|0)+(c[t>>2]<<2)>>2];c[t>>2]=(c[t>>2]|0)+1}c[p>>2]=c[n>>2];c[s>>2]=c[q>>2]}while(0);c[(c[f>>2]|0)+4>>2]=c[p>>2];c[(c[f>>2]|0)+8>>2]=c[s>>2];l=e;return}function go(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;e=l;l=l+48|0;if((l|0)>=(m|0))$(48);f=e+36|0;g=e+32|0;h=e+28|0;i=e+24|0;j=e+20|0;k=e+16|0;n=e+12|0;o=e+8|0;p=e+4|0;q=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[k>>2]=c[(c[g>>2]|0)+4>>2];c[o>>2]=c[(c[g>>2]|0)+8>>2];c[p>>2]=0;c[n>>2]=(c[k>>2]|0)+1;if((c[c[f>>2]>>2]|0)<(c[n>>2]|0))Ap(c[f>>2]|0,c[n>>2]|0);c[j>>2]=c[(c[g>>2]|0)+16>>2];c[i>>2]=c[(c[f>>2]|0)+16>>2];do if(c[k>>2]|0){if(c[o>>2]|0){c[q>>2]=Go(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[h>>2]|0)|0;c[(c[i>>2]|0)+(c[k>>2]<<2)>>2]=c[q>>2];c[n>>2]=(c[k>>2]|0)+(c[q>>2]|0);break}if((c[k>>2]|0)==1?(c[c[j>>2]>>2]|0)>>>0<(c[h>>2]|0)>>>0:0){c[c[i>>2]>>2]=(c[h>>2]|0)-(c[c[j>>2]>>2]|0);c[n>>2]=1;c[p>>2]=1;break}Io(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[h>>2]|0)|0;c[n>>2]=(c[k>>2]|0)-((c[(c[i>>2]|0)+((c[k>>2]|0)-1<<2)>>2]|0)==0&1)}else{c[c[i>>2]>>2]=c[h>>2];c[n>>2]=c[h>>2]|0?1:0;c[p>>2]=1}while(0);c[(c[f>>2]|0)+4>>2]=c[n>>2];c[(c[f>>2]|0)+8>>2]=c[p>>2];l=e;return}function ho(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=Ip(c[h>>2]|0)|0;c[(c[i>>2]|0)+8>>2]=((c[(c[i>>2]|0)+8>>2]|0)!=0^1)&1;fo(c[f>>2]|0,c[g>>2]|0,c[i>>2]|0);Dp(c[i>>2]|0);l=e;return}function io(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f+12|0;h=f+8|0;i=f+4|0;j=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;fo(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0);Mo(c[g>>2]|0,c[g>>2]|0,c[j>>2]|0);l=f;return}function jo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f+12|0;h=f+8|0;i=f+4|0;j=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;ho(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0);Mo(c[g>>2]|0,c[g>>2]|0,c[j>>2]|0);l=f;return}function ko(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;if(c[d>>2]|0?c[(c[d>>2]|0)+12>>2]&4|0:0){l=b;return}while(1){if(!(c[(c[d>>2]|0)+4>>2]|0)){e=6;break}if(!((c[(c[(c[d>>2]|0)+16>>2]|0)+((c[(c[d>>2]|0)+4>>2]|0)-1<<2)>>2]|0)!=0^1)){e=6;break}a=(c[d>>2]|0)+4|0;c[a>>2]=(c[a>>2]|0)+-1}if((e|0)==6){l=b;return}}function lo(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;b=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=b+20|0;f=b+16|0;g=b+12|0;h=b+8|0;i=b+4|0;j=b;c[f>>2]=a;if(c[f>>2]|0?c[(c[f>>2]|0)+12>>2]&4|0:0){c[e>>2]=c[(c[f>>2]|0)+8>>2];k=c[e>>2]|0;l=b;return k|0}ko(c[f>>2]|0);if(c[(c[f>>2]|0)+4>>2]|0){c[h>>2]=c[(c[(c[f>>2]|0)+16>>2]|0)+((c[(c[f>>2]|0)+4>>2]|0)-1<<2)>>2];if(c[h>>2]|0){c[i>>2]=c[h>>2];h=c[i>>2]|0;c[j>>2]=(c[i>>2]|0)>>>0<65536?(h>>>0<256?0:8):h>>>0<16777216?16:24;c[g>>2]=32-((d[45848+((c[i>>2]|0)>>>(c[j>>2]|0))>>0]|0)+(c[j>>2]|0))}else c[g>>2]=32;c[g>>2]=32-(c[g>>2]|0)+((c[(c[f>>2]|0)+4>>2]|0)-1<<5)}else c[g>>2]=0;c[e>>2]=c[g>>2];k=c[e>>2]|0;l=b;return k|0}function mo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+20|0;f=d+16|0;g=d+12|0;h=d+8|0;i=d+4|0;j=d;c[f>>2]=a;c[g>>2]=b;c[h>>2]=((c[g>>2]|0)>>>0)/32|0;c[i>>2]=((c[g>>2]|0)>>>0)%32|0;if((c[h>>2]|0)>>>0>=(c[(c[f>>2]|0)+4>>2]|0)>>>0){c[e>>2]=0;k=c[e>>2]|0;l=d;return k|0}else{c[j>>2]=c[(c[(c[f>>2]|0)+16>>2]|0)+(c[h>>2]<<2)>>2];c[e>>2]=c[j>>2]&1<<c[i>>2]|0?1:0;k=c[e>>2]|0;l=d;return k|0}return 0}function no(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+16|0;f=d+12|0;g=d+8|0;h=d+4|0;i=d;c[e>>2]=a;c[f>>2]=b;if(c[e>>2]|0?c[(c[e>>2]|0)+12>>2]&16|0:0){Cp();l=d;return}c[h>>2]=((c[f>>2]|0)>>>0)/32|0;c[i>>2]=((c[f>>2]|0)>>>0)%32|0;if((c[h>>2]|0)>>>0>=(c[(c[e>>2]|0)+4>>2]|0)>>>0){c[g>>2]=c[(c[e>>2]|0)+4>>2];while(1){if((c[g>>2]|0)>>>0>=(c[c[e>>2]>>2]|0)>>>0)break;c[(c[(c[e>>2]|0)+16>>2]|0)+(c[g>>2]<<2)>>2]=0;c[g>>2]=(c[g>>2]|0)+1}Ap(c[e>>2]|0,(c[h>>2]|0)+1|0);c[(c[e>>2]|0)+4>>2]=(c[h>>2]|0)+1}g=(c[(c[e>>2]|0)+16>>2]|0)+(c[h>>2]<<2)|0;c[g>>2]=c[g>>2]|1<<c[i>>2];l=d;return}function oo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+16|0;f=d+12|0;g=d+8|0;h=d+4|0;i=d;c[e>>2]=a;c[f>>2]=b;if(c[e>>2]|0?c[(c[e>>2]|0)+12>>2]&16|0:0){Cp();l=d;return}c[h>>2]=((c[f>>2]|0)>>>0)/32|0;c[i>>2]=((c[f>>2]|0)>>>0)%32|0;if((c[h>>2]|0)>>>0>=(c[(c[e>>2]|0)+4>>2]|0)>>>0){c[g>>2]=c[(c[e>>2]|0)+4>>2];while(1){if((c[g>>2]|0)>>>0>=(c[c[e>>2]>>2]|0)>>>0)break;c[(c[(c[e>>2]|0)+16>>2]|0)+(c[g>>2]<<2)>>2]=0;c[g>>2]=(c[g>>2]|0)+1}Ap(c[e>>2]|0,(c[h>>2]|0)+1|0);c[(c[e>>2]|0)+4>>2]=(c[h>>2]|0)+1}g=(c[(c[e>>2]|0)+16>>2]|0)+(c[h>>2]<<2)|0;c[g>>2]=c[g>>2]|1<<c[i>>2];c[i>>2]=(c[i>>2]|0)+1;while(1){if((c[i>>2]|0)>>>0>=32)break;g=(c[(c[e>>2]|0)+16>>2]|0)+(c[h>>2]<<2)|0;c[g>>2]=c[g>>2]&~(1<<c[i>>2]);c[i>>2]=(c[i>>2]|0)+1}c[(c[e>>2]|0)+4>>2]=(c[h>>2]|0)+1;l=d;return}function po(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+12|0;f=d+8|0;g=d+4|0;h=d;c[e>>2]=a;c[f>>2]=b;if(c[e>>2]|0?c[(c[e>>2]|0)+12>>2]&16|0:0){Cp();l=d;return}c[g>>2]=((c[f>>2]|0)>>>0)/32|0;c[h>>2]=((c[f>>2]|0)>>>0)%32|0;if((c[g>>2]|0)>>>0>=(c[(c[e>>2]|0)+4>>2]|0)>>>0){l=d;return}while(1){if((c[h>>2]|0)>>>0>=32)break;f=(c[(c[e>>2]|0)+16>>2]|0)+(c[g>>2]<<2)|0;c[f>>2]=c[f>>2]&~(1<<c[h>>2]);c[h>>2]=(c[h>>2]|0)+1}c[(c[e>>2]|0)+4>>2]=(c[g>>2]|0)+1;l=d;return}function qo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+12|0;f=d+8|0;g=d+4|0;h=d;c[e>>2]=a;c[f>>2]=b;if(c[e>>2]|0?c[(c[e>>2]|0)+12>>2]&16|0:0){Cp();l=d;return}c[g>>2]=((c[f>>2]|0)>>>0)/32|0;c[h>>2]=((c[f>>2]|0)>>>0)%32|0;if((c[g>>2]|0)>>>0>=(c[(c[e>>2]|0)+4>>2]|0)>>>0){l=d;return}f=(c[(c[e>>2]|0)+16>>2]|0)+(c[g>>2]<<2)|0;c[f>>2]=c[f>>2]&~(1<<c[h>>2]);l=d;return}function ro(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+16|0;f=d+12|0;g=d+8|0;h=d+4|0;i=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=c[(c[e>>2]|0)+16>>2];c[h>>2]=c[(c[e>>2]|0)+4>>2];if(c[e>>2]|0?c[(c[e>>2]|0)+12>>2]&16|0:0){Cp();l=d;return}if((c[f>>2]|0)>>>0>=(c[h>>2]|0)>>>0){c[(c[e>>2]|0)+4>>2]=0;l=d;return}c[i>>2]=0;while(1){j=c[i>>2]|0;if((c[i>>2]|0)>>>0>=((c[h>>2]|0)-(c[f>>2]|0)|0)>>>0)break;c[(c[g>>2]|0)+(c[i>>2]<<2)>>2]=c[(c[g>>2]|0)+(j+(c[f>>2]|0)<<2)>>2];c[i>>2]=(c[i>>2]|0)+1}c[(c[g>>2]|0)+(j<<2)>>2]=0;j=(c[e>>2]|0)+4|0;c[j>>2]=(c[j>>2]|0)-(c[f>>2]|0);l=d;return}function so(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e+24|0;g=e+20|0;h=e+16|0;i=e+12|0;j=e+8|0;k=e+4|0;n=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[k>>2]=((c[h>>2]|0)>>>0)/32|0;c[n>>2]=((c[h>>2]|0)>>>0)%32|0;if(c[f>>2]|0?c[(c[f>>2]|0)+12>>2]&16|0:0){Cp();l=e;return}h=c[k>>2]|0;a:do if((c[f>>2]|0)==(c[g>>2]|0)){if(h>>>0>=(c[(c[f>>2]|0)+4>>2]|0)>>>0){c[(c[f>>2]|0)+4>>2]=0;l=e;return}if(c[k>>2]|0){c[j>>2]=0;while(1){o=c[j>>2]|0;if((c[j>>2]|0)>>>0>=((c[(c[f>>2]|0)+4>>2]|0)-(c[k>>2]|0)|0)>>>0)break;c[(c[(c[f>>2]|0)+16>>2]|0)+(c[j>>2]<<2)>>2]=c[(c[(c[f>>2]|0)+16>>2]|0)+(o+(c[k>>2]|0)<<2)>>2];c[j>>2]=(c[j>>2]|0)+1}c[(c[(c[f>>2]|0)+16>>2]|0)+(o<<2)>>2]=0;d=(c[f>>2]|0)+4|0;c[d>>2]=(c[d>>2]|0)-(c[k>>2]|0)}if(c[n>>2]|0?(c[(c[f>>2]|0)+4>>2]|0)!=0:0)qp(c[(c[f>>2]|0)+16>>2]|0,c[(c[f>>2]|0)+16>>2]|0,c[(c[f>>2]|0)+4>>2]|0,c[n>>2]|0)|0}else{c[i>>2]=c[(c[g>>2]|0)+4>>2];c[(c[f>>2]|0)+8>>2]=c[(c[g>>2]|0)+8>>2];d=(c[c[f>>2]>>2]|0)<(c[i>>2]|0);if(!h){if(d)Ap(c[f>>2]|0,c[i>>2]|0);c[(c[f>>2]|0)+4>>2]=c[i>>2];if(!(c[i>>2]|0))break;if(c[n>>2]|0){qp(c[(c[f>>2]|0)+16>>2]|0,c[(c[g>>2]|0)+16>>2]|0,c[(c[f>>2]|0)+4>>2]|0,c[n>>2]|0)|0;break}c[j>>2]=0;while(1){if((c[j>>2]|0)>>>0>=(c[(c[f>>2]|0)+4>>2]|0)>>>0)break a;c[(c[(c[f>>2]|0)+16>>2]|0)+(c[j>>2]<<2)>>2]=c[(c[(c[g>>2]|0)+16>>2]|0)+(c[j>>2]<<2)>>2];c[j>>2]=(c[j>>2]|0)+1}}if(d)Ap(c[f>>2]|0,c[i>>2]|0);c[(c[f>>2]|0)+4>>2]=c[i>>2];c[j>>2]=0;while(1){p=c[j>>2]|0;if((c[j>>2]|0)>>>0>=(c[(c[g>>2]|0)+4>>2]|0)>>>0)break;c[(c[(c[f>>2]|0)+16>>2]|0)+(c[j>>2]<<2)>>2]=c[(c[(c[g>>2]|0)+16>>2]|0)+(p<<2)>>2];c[j>>2]=(c[j>>2]|0)+1}c[(c[f>>2]|0)+4>>2]=p;if((c[k>>2]|0)>>>0>=(c[(c[f>>2]|0)+4>>2]|0)>>>0){c[(c[f>>2]|0)+4>>2]=0;l=e;return}if(c[k>>2]|0){c[j>>2]=0;while(1){q=c[j>>2]|0;if((c[j>>2]|0)>>>0>=((c[(c[f>>2]|0)+4>>2]|0)-(c[k>>2]|0)|0)>>>0)break;c[(c[(c[f>>2]|0)+16>>2]|0)+(c[j>>2]<<2)>>2]=c[(c[(c[f>>2]|0)+16>>2]|0)+(q+(c[k>>2]|0)<<2)>>2];c[j>>2]=(c[j>>2]|0)+1}c[(c[(c[f>>2]|0)+16>>2]|0)+(q<<2)>>2]=0;d=(c[f>>2]|0)+4|0;c[d>>2]=(c[d>>2]|0)-(c[k>>2]|0)}if(c[n>>2]|0?(c[(c[f>>2]|0)+4>>2]|0)!=0:0)qp(c[(c[f>>2]|0)+16>>2]|0,c[(c[f>>2]|0)+16>>2]|0,c[(c[f>>2]|0)+4>>2]|0,c[n>>2]|0)|0}while(0);while(1){if((c[(c[f>>2]|0)+4>>2]|0)<=0){r=40;break}if(c[(c[(c[f>>2]|0)+16>>2]|0)+((c[(c[f>>2]|0)+4>>2]|0)-1<<2)>>2]|0){r=40;break}n=(c[f>>2]|0)+4|0;c[n>>2]=(c[n>>2]|0)+-1}if((r|0)==40){l=e;return}}function to(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+16|0;f=d+12|0;g=d+8|0;h=d+4|0;i=d;c[e>>2]=a;c[f>>2]=b;c[h>>2]=c[(c[e>>2]|0)+4>>2];if(!((c[f>>2]|0)!=0&(c[h>>2]|0)!=0)){l=d;return}if((c[c[e>>2]>>2]|0)>>>0<((c[h>>2]|0)+(c[f>>2]|0)|0)>>>0)Ap(c[e>>2]|0,(c[h>>2]|0)+(c[f>>2]|0)|0);c[g>>2]=c[(c[e>>2]|0)+16>>2];c[i>>2]=(c[h>>2]|0)-1;while(1){if((c[i>>2]|0)<0)break;c[(c[g>>2]|0)+((c[i>>2]|0)+(c[f>>2]|0)<<2)>>2]=c[(c[g>>2]|0)+(c[i>>2]<<2)>>2];c[i>>2]=(c[i>>2]|0)+-1}c[i>>2]=0;while(1){if((c[i>>2]|0)>>>0>=(c[f>>2]|0)>>>0)break;c[(c[g>>2]|0)+(c[i>>2]<<2)>>2]=0;c[i>>2]=(c[i>>2]|0)+1}i=(c[e>>2]|0)+4|0;c[i>>2]=(c[i>>2]|0)+(c[f>>2]|0);l=d;return}function uo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0;e=l;l=l+48|0;if((l|0)>=(m|0))$(48);f=e+36|0;g=e+32|0;h=e+28|0;i=e+24|0;j=e+20|0;k=e+16|0;n=e+12|0;o=e+8|0;p=e+4|0;q=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=((c[h>>2]|0)>>>0)/32|0;c[j>>2]=((c[h>>2]|0)>>>0)%32|0;if(c[f>>2]|0?c[(c[f>>2]|0)+12>>2]&16|0:0){Cp();l=e;return}if(!(c[h>>2]|0?1:(c[f>>2]|0)!=(c[g>>2]|0))){l=e;return}if((c[f>>2]|0)!=(c[g>>2]|0)){c[k>>2]=c[(c[g>>2]|0)+4>>2];c[n>>2]=c[(c[g>>2]|0)+8>>2];if((c[c[f>>2]>>2]|0)>>>0<((c[k>>2]|0)+(c[i>>2]|0)+1|0)>>>0)Ap(c[f>>2]|0,(c[k>>2]|0)+(c[i>>2]|0)+1|0);c[o>>2]=c[(c[f>>2]|0)+16>>2];c[p>>2]=c[(c[g>>2]|0)+16>>2];c[q>>2]=0;while(1){if((c[q>>2]|0)>>>0>=(c[k>>2]|0)>>>0)break;c[(c[o>>2]|0)+(c[q>>2]<<2)>>2]=c[(c[p>>2]|0)+(c[q>>2]<<2)>>2];c[q>>2]=(c[q>>2]|0)+1}c[(c[f>>2]|0)+4>>2]=c[k>>2];c[(c[f>>2]|0)+12>>2]=c[(c[g>>2]|0)+12>>2];c[(c[f>>2]|0)+8>>2]=c[n>>2]}if((c[i>>2]|0)==0|(c[j>>2]|0)!=0){if(c[h>>2]|0){to(c[f>>2]|0,(c[i>>2]|0)+1|0);so(c[f>>2]|0,c[f>>2]|0,32-(c[j>>2]|0)|0)}}else to(c[f>>2]|0,c[i>>2]|0);while(1){if((c[(c[f>>2]|0)+4>>2]|0)<=0){r=19;break}if(c[(c[(c[f>>2]|0)+16>>2]|0)+((c[(c[f>>2]|0)+4>>2]|0)-1<<2)>>2]|0){r=19;break}i=(c[f>>2]|0)+4|0;c[i>>2]=(c[i>>2]|0)+-1}if((r|0)==19){l=e;return}}function vo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+12|0;f=d+8|0;g=d+4|0;h=d;c[f>>2]=a;c[g>>2]=b;c[h>>2]=c[g>>2];ko(c[f>>2]|0);do if(c[(c[f>>2]|0)+4>>2]|0){if(c[(c[f>>2]|0)+8>>2]|0){c[e>>2]=-1;break}if((c[(c[f>>2]|0)+4>>2]|0)!=1){c[e>>2]=1;break}if((c[c[(c[f>>2]|0)+16>>2]>>2]|0)>>>0>(c[h>>2]|0)>>>0){c[e>>2]=1;break}if((c[c[(c[f>>2]|0)+16>>2]>>2]|0)>>>0<(c[h>>2]|0)>>>0){c[e>>2]=-1;break}else{c[e>>2]=0;break}}else c[e>>2]=0-((c[h>>2]|0)!=0&1);while(0);l=d;return c[e>>2]|0}function wo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+20|0;f=d+16|0;g=d+12|0;h=d+8|0;i=d+4|0;j=d;c[f>>2]=a;c[g>>2]=b;if(!(c[f>>2]|0?(c[(c[f>>2]|0)+12>>2]&4|0)!=0:0))k=3;do if((k|0)==3){if(c[g>>2]|0?c[(c[g>>2]|0)+12>>2]&4|0:0)break;ko(c[f>>2]|0);ko(c[g>>2]|0);c[h>>2]=c[(c[f>>2]|0)+4>>2];c[i>>2]=c[(c[g>>2]|0)+4>>2];if((c[(c[f>>2]|0)+8>>2]|0)==0?c[(c[g>>2]|0)+8>>2]|0:0){c[e>>2]=1;n=c[e>>2]|0;l=d;return n|0}if(c[(c[f>>2]|0)+8>>2]|0?(c[(c[g>>2]|0)+8>>2]|0)==0:0){c[e>>2]=-1;n=c[e>>2]|0;l=d;return n|0}if(((c[h>>2]|0)!=(c[i>>2]|0)?(c[(c[f>>2]|0)+8>>2]|0)==0:0)?(c[(c[g>>2]|0)+8>>2]|0)==0:0){c[e>>2]=(c[h>>2]|0)-(c[i>>2]|0);n=c[e>>2]|0;l=d;return n|0}if(((c[h>>2]|0)!=(c[i>>2]|0)?c[(c[f>>2]|0)+8>>2]|0:0)?c[(c[g>>2]|0)+8>>2]|0:0){c[e>>2]=(c[i>>2]|0)+(c[h>>2]|0);n=c[e>>2]|0;l=d;return n|0}if(!(c[h>>2]|0)){c[e>>2]=0;n=c[e>>2]|0;l=d;return n|0}b=Ko(c[(c[f>>2]|0)+16>>2]|0,c[(c[g>>2]|0)+16>>2]|0,c[h>>2]|0)|0;c[j>>2]=b;if(!b){c[e>>2]=0;n=c[e>>2]|0;l=d;return n|0}if((((c[j>>2]|0)<0?1:0)|0)==((c[(c[f>>2]|0)+8>>2]|0?1:0)|0)){c[e>>2]=1;n=c[e>>2]|0;l=d;return n|0}else{c[e>>2]=-1;n=c[e>>2]|0;l=d;return n|0}}while(0);do if(c[f>>2]|0?c[(c[f>>2]|0)+12>>2]&4|0:0){if(c[g>>2]|0?c[(c[g>>2]|0)+12>>2]&4|0:0)break;c[e>>2]=-1;n=c[e>>2]|0;l=d;return n|0}while(0);if(c[f>>2]|0){if(c[g>>2]|0?(c[(c[f>>2]|0)+12>>2]&4|0)==0:0)k=13}else if(c[g>>2]|0)k=13;if((k|0)==13?c[(c[g>>2]|0)+12>>2]&4|0:0){c[e>>2]=1;n=c[e>>2]|0;l=d;return n|0}if((c[(c[f>>2]|0)+8>>2]|0)==0?(c[(c[g>>2]|0)+8>>2]|0)==0:0){c[e>>2]=0;n=c[e>>2]|0;l=d;return n|0}if((c[(c[f>>2]|0)+8>>2]|0)<(c[(c[g>>2]|0)+8>>2]|0)){c[e>>2]=-1;n=c[e>>2]|0;l=d;return n|0}if((c[(c[f>>2]|0)+8>>2]|0)>(c[(c[g>>2]|0)+8>>2]|0)){c[e>>2]=1;n=c[e>>2]|0;l=d;return n|0}else{c[e>>2]=Jv(c[(c[f>>2]|0)+16>>2]|0,c[(c[g>>2]|0)+16>>2]|0,((c[(c[f>>2]|0)+8>>2]|0)+7|0)/8|0)|0;n=c[e>>2]|0;l=d;return n|0}return 0}function xo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;j=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[(c[h>>2]|0)+8>>2];c[j>>2]=0;if((c[f>>2]|0)==(c[h>>2]|0)){c[j>>2]=Ip(c[h>>2]|0)|0;c[h>>2]=c[j>>2]}yo(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0);if((c[i>>2]|0?1:0)^(c[(c[g>>2]|0)+8>>2]|0?1:0)|0?c[(c[f>>2]|0)+4>>2]|0:0)fo(c[f>>2]|0,c[f>>2]|0,c[h>>2]|0);if(!(c[j>>2]|0)){l=e;return}Dp(c[j>>2]|0);l=e;return}function yo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;zo(0,c[f>>2]|0,c[g>>2]|0,c[h>>2]|0);l=e;return}function zo(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0;g=l;l=l+160|0;if((l|0)>=(m|0))$(160);h=g+144|0;i=g+140|0;j=g+136|0;k=g+132|0;n=g+128|0;o=g+124|0;p=g+120|0;q=g+116|0;r=g+112|0;s=g+108|0;t=g+104|0;u=g+100|0;v=g+96|0;w=g+92|0;x=g+88|0;y=g+84|0;z=g+64|0;A=g+44|0;B=g+40|0;C=g+36|0;D=g+32|0;E=g+28|0;F=g+24|0;G=g+20|0;H=g+16|0;I=g+12|0;J=g+8|0;K=g+4|0;L=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[r>>2]=c[(c[j>>2]|0)+4>>2];c[s>>2]=c[(c[k>>2]|0)+4>>2];c[v>>2]=c[(c[j>>2]|0)+8>>2];c[w>>2]=c[(c[j>>2]|0)+8>>2]^c[(c[k>>2]|0)+8>>2];c[B>>2]=0;c[u>>2]=(c[r>>2]|0)+1;Ap(c[i>>2]|0,c[u>>2]|0);c[t>>2]=(c[u>>2]|0)-(c[s>>2]|0);if((c[t>>2]|0)<=0){a:do if((c[j>>2]|0)!=(c[i>>2]|0)){c[(c[i>>2]|0)+4>>2]=c[(c[j>>2]|0)+4>>2];c[(c[i>>2]|0)+8>>2]=c[(c[j>>2]|0)+8>>2];c[C>>2]=0;while(1){if((c[C>>2]|0)>=(c[r>>2]|0))break a;c[(c[(c[i>>2]|0)+16>>2]|0)+(c[C>>2]<<2)>>2]=c[(c[(c[j>>2]|0)+16>>2]|0)+(c[C>>2]<<2)>>2];c[C>>2]=(c[C>>2]|0)+1}}while(0);if(!(c[h>>2]|0)){l=g;return}c[(c[h>>2]|0)+4>>2]=0;c[(c[h>>2]|0)+8>>2]=0;l=g;return}if(c[h>>2]|0)Ap(c[h>>2]|0,c[t>>2]|0);c[n>>2]=c[(c[j>>2]|0)+16>>2];c[o>>2]=c[(c[k>>2]|0)+16>>2];c[q>>2]=c[(c[i>>2]|0)+16>>2];j=(c[h>>2]|0)!=0;if((c[s>>2]|0)==1){if(j){c[p>>2]=c[(c[h>>2]|0)+16>>2];c[D>>2]=hp(c[p>>2]|0,c[n>>2]|0,c[r>>2]|0,c[c[o>>2]>>2]|0)|0;c[t>>2]=(c[t>>2]|0)-((c[(c[p>>2]|0)+((c[t>>2]|0)-1<<2)>>2]|0)==0&1);c[(c[h>>2]|0)+4>>2]=c[t>>2];c[(c[h>>2]|0)+8>>2]=c[w>>2]}else c[D>>2]=fp(c[n>>2]|0,c[r>>2]|0,c[c[o>>2]>>2]|0)|0;c[c[q>>2]>>2]=c[D>>2];c[u>>2]=c[D>>2]|0?1:0;c[(c[i>>2]|0)+4>>2]=c[u>>2];c[(c[i>>2]|0)+8>>2]=c[v>>2];l=g;return}b:do if(j){c[p>>2]=c[(c[h>>2]|0)+16>>2];if((c[p>>2]|0)==(c[n>>2]|0)){c[A+(c[B>>2]<<2)>>2]=c[r>>2];if(c[h>>2]|0)M=(c[(c[h>>2]|0)+12>>2]&1|0)!=0;else M=0;D=wp(c[r>>2]|0,M&1)|0;C=c[B>>2]|0;c[B>>2]=C+1;c[z+(C<<2)>>2]=D;c[n>>2]=D;c[E>>2]=0;while(1){if((c[E>>2]|0)>=(c[r>>2]|0))break b;c[(c[n>>2]|0)+(c[E>>2]<<2)>>2]=c[(c[p>>2]|0)+(c[E>>2]<<2)>>2];c[E>>2]=(c[E>>2]|0)+1}}}else c[p>>2]=(c[q>>2]|0)+(c[s>>2]<<2);while(0);c[F>>2]=c[(c[o>>2]|0)+((c[s>>2]|0)-1<<2)>>2];E=c[F>>2]|0;c[G>>2]=(c[F>>2]|0)>>>0<65536?(E>>>0<256?0:8):E>>>0<16777216?16:24;c[x>>2]=32-((d[45848+((c[F>>2]|0)>>>(c[G>>2]|0))>>0]|0)+(c[G>>2]|0));do if(c[x>>2]|0){c[A+(c[B>>2]<<2)>>2]=c[s>>2];if(c[k>>2]|0)N=(c[(c[k>>2]|0)+12>>2]&1|0)!=0;else N=0;G=wp(c[s>>2]|0,N&1)|0;F=c[B>>2]|0;c[B>>2]=F+1;c[z+(F<<2)>>2]=G;c[H>>2]=G;ip(c[H>>2]|0,c[o>>2]|0,c[s>>2]|0,c[x>>2]|0)|0;c[o>>2]=c[H>>2];c[I>>2]=ip(c[q>>2]|0,c[n>>2]|0,c[r>>2]|0,c[x>>2]|0)|0;if(c[I>>2]|0){c[(c[q>>2]|0)+(c[r>>2]<<2)>>2]=c[I>>2];c[u>>2]=(c[r>>2]|0)+1;break}else{c[u>>2]=c[r>>2];break}}else{if((c[o>>2]|0)!=(c[q>>2]|0)){if(c[h>>2]|0?(c[o>>2]|0)==(c[p>>2]|0):0)O=32}else O=32;if((O|0)==32){c[A+(c[B>>2]<<2)>>2]=c[s>>2];if(c[k>>2]|0)P=(c[(c[k>>2]|0)+12>>2]&1|0)!=0;else P=0;G=wp(c[s>>2]|0,P&1)|0;F=c[B>>2]|0;c[B>>2]=F+1;c[z+(F<<2)>>2]=G;c[J>>2]=G;c[K>>2]=0;while(1){if((c[K>>2]|0)>=(c[s>>2]|0))break;c[(c[J>>2]|0)+(c[K>>2]<<2)>>2]=c[(c[o>>2]|0)+(c[K>>2]<<2)>>2];c[K>>2]=(c[K>>2]|0)+1}c[o>>2]=c[J>>2]}c:do if((c[q>>2]|0)!=(c[n>>2]|0)){c[L>>2]=0;while(1){if((c[L>>2]|0)>=(c[r>>2]|0))break c;c[(c[q>>2]|0)+(c[L>>2]<<2)>>2]=c[(c[n>>2]|0)+(c[L>>2]<<2)>>2];c[L>>2]=(c[L>>2]|0)+1}}while(0);c[u>>2]=c[r>>2]}while(0);c[y>>2]=gp(c[p>>2]|0,0,c[q>>2]|0,c[u>>2]|0,c[o>>2]|0,c[s>>2]|0)|0;if(c[h>>2]|0){c[t>>2]=(c[u>>2]|0)-(c[s>>2]|0);if(c[y>>2]|0){c[(c[p>>2]|0)+(c[t>>2]<<2)>>2]=c[y>>2];c[t>>2]=(c[t>>2]|0)+1}c[(c[h>>2]|0)+4>>2]=c[t>>2];c[(c[h>>2]|0)+8>>2]=c[w>>2]}c[u>>2]=c[s>>2];while(1){if((c[u>>2]|0)<=0)break;if(c[(c[q>>2]|0)+((c[u>>2]|0)-1<<2)>>2]|0)break;c[u>>2]=(c[u>>2]|0)+-1}if((c[x>>2]|0)!=0&(c[u>>2]|0)!=0){qp(c[q>>2]|0,c[q>>2]|0,c[u>>2]|0,c[x>>2]|0)|0;c[u>>2]=(c[u>>2]|0)-((c[(c[q>>2]|0)+((c[u>>2]|0)-1<<2)>>2]|0)==0?1:0)}c[(c[i>>2]|0)+4>>2]=c[u>>2];c[(c[i>>2]|0)+8>>2]=c[v>>2];while(1){if(!(c[B>>2]|0))break;c[B>>2]=(c[B>>2]|0)+-1;yp(c[z+(c[B>>2]<<2)>>2]|0,c[A+(c[B>>2]<<2)>>2]|0)}l=g;return}function Ao(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=fp(c[(c[g>>2]|0)+16>>2]|0,c[(c[g>>2]|0)+4>>2]|0,c[h>>2]|0)|0;if(c[i>>2]|0?c[(c[g>>2]|0)+8>>2]|0:0)c[i>>2]=(c[h>>2]|0)-(c[i>>2]|0);if(!(c[f>>2]|0)){j=c[i>>2]|0;l=e;return j|0}c[c[(c[f>>2]|0)+16>>2]>>2]=c[i>>2];c[(c[f>>2]|0)+4>>2]=c[i>>2]|0?1:0;j=c[i>>2]|0;l=e;return j|0}function Bo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=vp(c[(c[f>>2]|0)+4>>2]|0)|0;Co(c[f>>2]|0,c[i>>2]|0,c[g>>2]|0,c[h>>2]|0);Dp(c[i>>2]|0);l=e;return}function Co(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f+20|0;h=f+16|0;i=f+12|0;j=f+8|0;k=f+4|0;n=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[k>>2]=c[(c[j>>2]|0)+8>>2];c[n>>2]=0;if(!((c[g>>2]|0)!=(c[j>>2]|0)?(c[h>>2]|0)!=(c[j>>2]|0):0)){c[n>>2]=Ip(c[j>>2]|0)|0;c[j>>2]=c[n>>2]}zo(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0,c[j>>2]|0);if(c[k>>2]^c[(c[i>>2]|0)+8>>2]|0?c[(c[h>>2]|0)+4>>2]|0:0){go(c[g>>2]|0,c[g>>2]|0,1);fo(c[h>>2]|0,c[h>>2]|0,c[j>>2]|0)}if(!(c[n>>2]|0)){l=f;return}Dp(c[n>>2]|0);l=f;return}function Do(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;e=l;l=l+48|0;if((l|0)>=(m|0))$(48);f=e+32|0;g=e+28|0;h=e+24|0;i=e+20|0;j=e+16|0;k=e+12|0;n=e+8|0;o=e+4|0;p=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[(c[g>>2]|0)+4>>2];c[k>>2]=((c[h>>2]|0)>>>0)/32|0;c[j>>2]=(c[i>>2]|0)-(c[k>>2]|0);d=c[f>>2]|0;if((c[k>>2]|0)>=(c[i>>2]|0)){c[d+4>>2]=0;l=e;return}if((c[d>>2]|0)<(c[j>>2]|0))Ap(c[f>>2]|0,c[j>>2]|0);c[n>>2]=c[(c[f>>2]|0)+16>>2];c[o>>2]=c[(c[g>>2]|0)+16>>2];c[h>>2]=((c[h>>2]|0)>>>0)%32|0;a:do if(c[h>>2]|0){qp(c[n>>2]|0,(c[o>>2]|0)+(c[k>>2]<<2)|0,c[j>>2]|0,c[h>>2]|0)|0;c[j>>2]=(c[j>>2]|0)-(((c[(c[n>>2]|0)+((c[j>>2]|0)-1<<2)>>2]|0)!=0^1)&1)}else{c[p>>2]=0;while(1){if((c[p>>2]|0)>=(c[j>>2]|0))break a;c[(c[n>>2]|0)+(c[p>>2]<<2)>>2]=c[(c[o>>2]|0)+(c[k>>2]<<2)+(c[p>>2]<<2)>>2];c[p>>2]=(c[p>>2]|0)+1}}while(0);c[(c[f>>2]|0)+4>>2]=c[j>>2];l=e;return}function Eo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=((fp(c[(c[e>>2]|0)+16>>2]|0,c[(c[e>>2]|0)+4>>2]|0,c[f>>2]|0)|0)!=0^1)&1;l=d;return b|0}function Fo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;j=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=Ip(c[g>>2]|0)|0;c[j>>2]=Ip(c[h>>2]|0)|0;c[(c[i>>2]|0)+8>>2]=0;c[(c[j>>2]|0)+8>>2]=0;while(1){h=(vo(c[j>>2]|0,0)|0)!=0;k=c[f>>2]|0;n=c[i>>2]|0;if(!h)break;xo(k,n,c[j>>2]|0);Kp(c[i>>2]|0,c[j>>2]|0)|0;Kp(c[j>>2]|0,c[f>>2]|0)|0}Kp(k,n)|0;Dp(c[i>>2]|0);Dp(c[j>>2]|0);j=((vo(c[f>>2]|0,1)|0)!=0^1)&1;l=e;return j|0}function Go(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f+24|0;h=f+20|0;i=f+16|0;j=f+12|0;k=f+8|0;n=f+4|0;o=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;e=c[i>>2]|0;c[i>>2]=e+4;c[n>>2]=c[e>>2];c[k>>2]=(c[k>>2]|0)+(c[n>>2]|0);e=c[k>>2]|0;d=c[h>>2]|0;c[h>>2]=d+4;c[d>>2]=e;a:do if((c[k>>2]|0)>>>0<(c[n>>2]|0)>>>0){while(1){e=(c[j>>2]|0)+-1|0;c[j>>2]=e;if(!e)break;e=c[i>>2]|0;c[i>>2]=e+4;c[n>>2]=(c[e>>2]|0)+1;e=c[n>>2]|0;d=c[h>>2]|0;c[h>>2]=d+4;c[d>>2]=e;if(c[n>>2]|0)break a}c[g>>2]=1;p=c[g>>2]|0;l=f;return p|0}while(0);b:do if((c[h>>2]|0)!=(c[i>>2]|0)){c[o>>2]=0;while(1){if((c[o>>2]|0)>=((c[j>>2]|0)-1|0))break b;c[(c[h>>2]|0)+(c[o>>2]<<2)>>2]=c[(c[i>>2]|0)+(c[o>>2]<<2)>>2];c[o>>2]=(c[o>>2]|0)+1}}while(0);c[g>>2]=0;p=c[g>>2]|0;l=f;return p|0}function Ho(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;g=l;l=l+32|0;if((l|0)>=(m|0))$(32);h=g+20|0;i=g+16|0;j=g+12|0;k=g+8|0;n=g+4|0;o=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[n>>2]=f;c[o>>2]=0;if(c[n>>2]|0)c[o>>2]=ep(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[n>>2]|0)|0;if(!((c[j>>2]|0)-(c[n>>2]|0)|0)){p=c[o>>2]|0;l=g;return p|0}c[o>>2]=Go((c[h>>2]|0)+(c[n>>2]<<2)|0,(c[i>>2]|0)+(c[n>>2]<<2)|0,(c[j>>2]|0)-(c[n>>2]|0)|0,c[o>>2]|0)|0;p=c[o>>2]|0;l=g;return p|0}function Io(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f+24|0;h=f+20|0;i=f+16|0;j=f+12|0;k=f+8|0;n=f+4|0;o=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;e=c[i>>2]|0;c[i>>2]=e+4;c[n>>2]=c[e>>2];c[k>>2]=(c[n>>2]|0)-(c[k>>2]|0);e=c[k>>2]|0;d=c[h>>2]|0;c[h>>2]=d+4;c[d>>2]=e;a:do if((c[k>>2]|0)>>>0>(c[n>>2]|0)>>>0){while(1){e=(c[j>>2]|0)+-1|0;c[j>>2]=e;if(!e)break;e=c[i>>2]|0;c[i>>2]=e+4;c[n>>2]=c[e>>2];e=(c[n>>2]|0)-1|0;d=c[h>>2]|0;c[h>>2]=d+4;c[d>>2]=e;if(c[n>>2]|0)break a}c[g>>2]=1;p=c[g>>2]|0;l=f;return p|0}while(0);b:do if((c[h>>2]|0)!=(c[i>>2]|0)){c[o>>2]=0;while(1){if((c[o>>2]|0)>=((c[j>>2]|0)-1|0))break b;c[(c[h>>2]|0)+(c[o>>2]<<2)>>2]=c[(c[i>>2]|0)+(c[o>>2]<<2)>>2];c[o>>2]=(c[o>>2]|0)+1}}while(0);c[g>>2]=0;p=c[g>>2]|0;l=f;return p|0}function Jo(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;g=l;l=l+32|0;if((l|0)>=(m|0))$(32);h=g+20|0;i=g+16|0;j=g+12|0;k=g+8|0;n=g+4|0;o=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[n>>2]=f;c[o>>2]=0;if(c[n>>2]|0)c[o>>2]=rp(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[n>>2]|0)|0;if(!((c[j>>2]|0)-(c[n>>2]|0)|0)){p=c[o>>2]|0;l=g;return p|0}c[o>>2]=Io((c[h>>2]|0)+(c[n>>2]<<2)|0,(c[i>>2]|0)+(c[n>>2]<<2)|0,(c[j>>2]|0)-(c[n>>2]|0)|0,c[o>>2]|0)|0;p=c[o>>2]|0;l=g;return p|0}function Ko(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e+24|0;g=e+20|0;h=e+16|0;i=e+12|0;j=e+8|0;k=e+4|0;n=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=(c[i>>2]|0)-1;while(1){if((c[j>>2]|0)<0){o=5;break}c[k>>2]=c[(c[g>>2]|0)+(c[j>>2]<<2)>>2];c[n>>2]=c[(c[h>>2]|0)+(c[j>>2]<<2)>>2];if((c[k>>2]|0)!=(c[n>>2]|0)){o=6;break}c[j>>2]=(c[j>>2]|0)+-1}if((o|0)==5){c[f>>2]=0;p=c[f>>2]|0;l=e;return p|0}else if((o|0)==6){c[f>>2]=(c[k>>2]|0)>>>0>(c[n>>2]|0)>>>0?1:-1;p=c[f>>2]|0;l=e;return p|0}return 0}function Lo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;e=l;l=l+80|0;if((l|0)>=(m|0))$(80);f=e+68|0;g=e+64|0;h=e+60|0;i=e+56|0;j=e+52|0;k=e+48|0;n=e+44|0;o=e+40|0;p=e+36|0;q=e+32|0;r=e+28|0;s=e+24|0;t=e+20|0;u=e+16|0;v=e+12|0;w=e+8|0;x=e+4|0;y=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[o>>2]=0;c[r>>2]=0;c[u>>2]=0;if(!(vo(c[h>>2]|0,0)|0)){c[f>>2]=0;z=c[f>>2]|0;l=e;return z|0}if(!(vo(c[i>>2]|0,1)|0)){c[f>>2]=0;z=c[f>>2]|0;l=e;return z|0}c[j>>2]=Ip(c[h>>2]|0)|0;c[k>>2]=Ip(c[i>>2]|0)|0;c[w>>2]=0;while(1){if(mo(c[j>>2]|0,0)|0)break;if(!((mo(c[k>>2]|0,0)|0)!=0^1))break;so(c[j>>2]|0,c[j>>2]|0,1);so(c[k>>2]|0,c[k>>2]|0,1);c[w>>2]=(c[w>>2]|0)+1}c[y>>2]=mo(c[k>>2]|0,0)|0;c[n>>2]=up(1)|0;if(!(c[y>>2]|0))c[o>>2]=up(0)|0;c[p>>2]=Ip(c[j>>2]|0)|0;c[q>>2]=Ip(c[k>>2]|0)|0;if(!(c[y>>2]|0)){c[r>>2]=vp(c[(c[j>>2]|0)+4>>2]|0)|0;ho(c[r>>2]|0,c[n>>2]|0,c[j>>2]|0)}c[s>>2]=Ip(c[k>>2]|0)|0;if(mo(c[j>>2]|0,0)|0){c[t>>2]=up(0)|0;if(!(c[y>>2]|0)){c[u>>2]=up(1)|0;c[(c[u>>2]|0)+8>>2]=1}c[v>>2]=Ip(c[k>>2]|0)|0;c[(c[v>>2]|0)+8>>2]=((c[(c[v>>2]|0)+8>>2]|0)!=0^1)&1}else{c[t>>2]=up(1)|0;if(!(c[y>>2]|0))c[u>>2]=up(0)|0;c[v>>2]=Ip(c[j>>2]|0)|0;A=20}while(1){if((A|0)==20){A=0;w=(c[y>>2]|0)!=0;i=(mo(c[t>>2]|0,0)|0)!=0;if(w){if(i)fo(c[t>>2]|0,c[t>>2]|0,c[k>>2]|0);so(c[t>>2]|0,c[t>>2]|0,1);so(c[v>>2]|0,c[v>>2]|0,1);continue}if(!(!i?!(mo(c[u>>2]|0,0)|0):0)){fo(c[t>>2]|0,c[t>>2]|0,c[k>>2]|0);ho(c[u>>2]|0,c[u>>2]|0,c[j>>2]|0)}so(c[t>>2]|0,c[t>>2]|0,1);so(c[u>>2]|0,c[u>>2]|0,1);so(c[v>>2]|0,c[v>>2]|0,1)}if((mo(c[v>>2]|0,0)|0)!=0^1){A=20;continue}if(c[(c[v>>2]|0)+8>>2]|0){ho(c[q>>2]|0,c[k>>2]|0,c[t>>2]|0);c[x>>2]=c[(c[j>>2]|0)+8>>2];c[(c[j>>2]|0)+8>>2]=((c[(c[j>>2]|0)+8>>2]|0)!=0^1)&1;if(!(c[y>>2]|0))ho(c[r>>2]|0,c[j>>2]|0,c[u>>2]|0);c[(c[j>>2]|0)+8>>2]=c[x>>2];c[x>>2]=c[(c[v>>2]|0)+8>>2];c[(c[v>>2]|0)+8>>2]=((c[(c[v>>2]|0)+8>>2]|0)!=0^1)&1;Kp(c[s>>2]|0,c[v>>2]|0)|0;c[(c[v>>2]|0)+8>>2]=c[x>>2]}else{Kp(c[n>>2]|0,c[t>>2]|0)|0;if(!(c[y>>2]|0))Kp(c[o>>2]|0,c[u>>2]|0)|0;Kp(c[p>>2]|0,c[v>>2]|0)|0}ho(c[t>>2]|0,c[n>>2]|0,c[q>>2]|0);if(!(c[y>>2]|0))ho(c[u>>2]|0,c[o>>2]|0,c[r>>2]|0);ho(c[v>>2]|0,c[p>>2]|0,c[s>>2]|0);if(c[(c[t>>2]|0)+8>>2]|0?(fo(c[t>>2]|0,c[t>>2]|0,c[k>>2]|0),(c[y>>2]|0)==0):0)ho(c[u>>2]|0,c[u>>2]|0,c[j>>2]|0);if(vo(c[v>>2]|0,0)|0)A=20;else break}Kp(c[g>>2]|0,c[n>>2]|0)|0;Dp(c[n>>2]|0);Dp(c[q>>2]|0);Dp(c[t>>2]|0);if(!(c[y>>2]|0)){Dp(c[o>>2]|0);Dp(c[r>>2]|0);Dp(c[u>>2]|0)}Dp(c[p>>2]|0);Dp(c[s>>2]|0);Dp(c[v>>2]|0);Dp(c[j>>2]|0);Dp(c[k>>2]|0);c[f>>2]=1;z=c[f>>2]|0;l=e;return z|0}function Mo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;xo(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0);l=e;return}function No(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+12|0;f=d+8|0;g=d+4|0;h=d;c[e>>2]=a;c[f>>2]=b;ko(c[e>>2]|0);c[g>>2]=Cf(1,28)|0;b=c[e>>2]|0;if(c[f>>2]|0){f=Ip(b)|0;c[c[g>>2]>>2]=f;c[(c[g>>2]|0)+4>>2]=1}else c[c[g>>2]>>2]=b;c[(c[g>>2]|0)+8>>2]=c[(c[e>>2]|0)+4>>2];c[h>>2]=vp((c[(c[g>>2]|0)+8>>2]|0)+1|0)|0;Op(c[h>>2]|0,1)|0;to(c[h>>2]|0,c[(c[g>>2]|0)+8>>2]<<1);Bo(c[h>>2]|0,c[h>>2]|0,c[e>>2]|0);c[(c[g>>2]|0)+12>>2]=c[h>>2];h=vp((c[(c[g>>2]|0)+8>>2]<<1)+1|0)|0;c[(c[g>>2]|0)+16>>2]=h;h=vp((c[(c[g>>2]|0)+8>>2]<<1)+1|0)|0;c[(c[g>>2]|0)+20>>2]=h;l=d;return c[g>>2]|0}function Oo(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;if(!(c[d>>2]|0)){l=b;return}Dp(c[(c[d>>2]|0)+12>>2]|0);Dp(c[(c[d>>2]|0)+16>>2]|0);Dp(c[(c[d>>2]|0)+20>>2]|0);if(c[(c[d>>2]|0)+24>>2]|0)Dp(c[(c[d>>2]|0)+24>>2]|0);if(c[(c[d>>2]|0)+4>>2]|0)Dp(c[c[d>>2]>>2]|0);vf(c[d>>2]|0);l=b;return}function Po(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;e=l;l=l+48|0;if((l|0)>=(m|0))$(48);f=e+32|0;g=e+28|0;h=e+24|0;i=e+20|0;j=e+16|0;k=e+12|0;n=e+8|0;o=e+4|0;p=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[c[h>>2]>>2];c[j>>2]=c[(c[h>>2]|0)+8>>2];c[k>>2]=c[(c[h>>2]|0)+12>>2];c[n>>2]=c[(c[h>>2]|0)+16>>2];c[o>>2]=c[(c[h>>2]|0)+20>>2];ko(c[g>>2]|0);if((c[(c[g>>2]|0)+4>>2]|0)>(c[j>>2]<<1|0)){Mo(c[f>>2]|0,c[g>>2]|0,c[i>>2]|0);l=e;return}c[p>>2]=c[(c[g>>2]|0)+8>>2];c[(c[g>>2]|0)+8>>2]=0;Kp(c[o>>2]|0,c[g>>2]|0)|0;ro(c[o>>2]|0,(c[j>>2]|0)-1|0);Qo(c[o>>2]|0,c[o>>2]|0,c[k>>2]|0);ro(c[o>>2]|0,(c[j>>2]|0)+1|0);Kp(c[n>>2]|0,c[g>>2]|0)|0;if((c[(c[n>>2]|0)+4>>2]|0)>((c[j>>2]|0)+1|0))c[(c[n>>2]|0)+4>>2]=(c[j>>2]|0)+1;Qo(c[o>>2]|0,c[o>>2]|0,c[i>>2]|0);if((c[(c[o>>2]|0)+4>>2]|0)>((c[j>>2]|0)+1|0))c[(c[o>>2]|0)+4>>2]=(c[j>>2]|0)+1;ho(c[f>>2]|0,c[n>>2]|0,c[o>>2]|0);if(c[(c[f>>2]|0)+8>>2]|0){if(!(c[(c[h>>2]|0)+24>>2]|0)){o=vp((c[j>>2]|0)+2|0)|0;c[(c[h>>2]|0)+24>>2]=o;Op(c[(c[h>>2]|0)+24>>2]|0,1)|0;to(c[(c[h>>2]|0)+24>>2]|0,(c[j>>2]|0)+1|0)}fo(c[f>>2]|0,c[f>>2]|0,c[(c[h>>2]|0)+24>>2]|0)}while(1){if((wo(c[f>>2]|0,c[i>>2]|0)|0)<0)break;ho(c[f>>2]|0,c[f>>2]|0,c[i>>2]|0)}c[(c[g>>2]|0)+8>>2]=c[p>>2];l=e;return}function Qo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;e=l;l=l+96|0;if((l|0)>=(m|0))$(96);f=e+84|0;g=e+80|0;h=e+76|0;i=e+72|0;j=e+68|0;k=e+64|0;n=e+60|0;o=e+56|0;p=e+52|0;q=e+48|0;r=e+44|0;s=e+40|0;t=e+36|0;u=e+32|0;v=e+28|0;w=e+24|0;x=e+20|0;y=e+16|0;z=e+12|0;A=e+8|0;B=e+4|0;C=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[w>>2]=0;c[x>>2]=0;c[y>>2]=0;if((c[(c[g>>2]|0)+4>>2]|0)<(c[(c[h>>2]|0)+4>>2]|0)){c[i>>2]=c[(c[h>>2]|0)+4>>2];c[r>>2]=c[(c[h>>2]|0)+8>>2];if(c[h>>2]|0)D=(c[(c[h>>2]|0)+12>>2]&1|0)!=0;else D=0;c[t>>2]=D&1;c[n>>2]=c[(c[h>>2]|0)+16>>2];c[j>>2]=c[(c[g>>2]|0)+4>>2];c[s>>2]=c[(c[g>>2]|0)+8>>2];if(c[g>>2]|0)E=(c[(c[g>>2]|0)+12>>2]&1|0)!=0;else E=0;c[u>>2]=E&1;c[o>>2]=c[(c[g>>2]|0)+16>>2]}else{c[i>>2]=c[(c[g>>2]|0)+4>>2];c[r>>2]=c[(c[g>>2]|0)+8>>2];if(c[g>>2]|0)F=(c[(c[g>>2]|0)+12>>2]&1|0)!=0;else F=0;c[t>>2]=F&1;c[n>>2]=c[(c[g>>2]|0)+16>>2];c[j>>2]=c[(c[h>>2]|0)+4>>2];c[s>>2]=c[(c[h>>2]|0)+8>>2];if(c[h>>2]|0)G=(c[(c[h>>2]|0)+12>>2]&1|0)!=0;else G=0;c[u>>2]=G&1;c[o>>2]=c[(c[h>>2]|0)+16>>2]}c[v>>2]=c[r>>2]^c[s>>2];c[p>>2]=c[(c[f>>2]|0)+16>>2];c[k>>2]=(c[i>>2]|0)+(c[j>>2]|0);if(c[f>>2]|0?c[(c[f>>2]|0)+12>>2]&1|0:0)H=19;else H=14;do if((H|0)==14){if(!(c[g>>2]|0?(c[(c[g>>2]|0)+12>>2]&1|0)!=0:0)){if(!(c[h>>2]|0)){H=19;break}if(!(c[(c[h>>2]|0)+12>>2]&1)){H=19;break}}c[p>>2]=wp(c[k>>2]|0,1)|0;c[w>>2]=2}while(0);a:do if((H|0)==19){h=(c[p>>2]|0)==(c[n>>2]|0);if((c[c[f>>2]>>2]|0)<(c[k>>2]|0)){if(!h?(c[p>>2]|0)!=(c[o>>2]|0):0){Ap(c[f>>2]|0,c[k>>2]|0);c[p>>2]=c[(c[f>>2]|0)+16>>2];break}if(c[f>>2]|0)I=(c[(c[f>>2]|0)+12>>2]&1|0)!=0;else I=0;c[p>>2]=wp(c[k>>2]|0,I&1)|0;c[w>>2]=1;break}if(!h){if((c[p>>2]|0)!=(c[o>>2]|0))break;c[y>>2]=c[j>>2];h=wp(c[j>>2]|0,c[u>>2]|0)|0;c[x>>2]=h;c[o>>2]=h;c[A>>2]=0;while(1){if((c[A>>2]|0)>=(c[j>>2]|0))break a;c[(c[o>>2]|0)+(c[A>>2]<<2)>>2]=c[(c[p>>2]|0)+(c[A>>2]<<2)>>2];c[A>>2]=(c[A>>2]|0)+1}}c[y>>2]=c[i>>2];h=wp(c[i>>2]|0,c[t>>2]|0)|0;c[x>>2]=h;c[n>>2]=h;if((c[p>>2]|0)==(c[o>>2]|0))c[o>>2]=c[n>>2];c[z>>2]=0;while(1){if((c[z>>2]|0)>=(c[i>>2]|0))break a;c[(c[n>>2]|0)+(c[z>>2]<<2)>>2]=c[(c[p>>2]|0)+(c[z>>2]<<2)>>2];c[z>>2]=(c[z>>2]|0)+1}}while(0);if(c[j>>2]|0){c[q>>2]=op(c[p>>2]|0,c[n>>2]|0,c[i>>2]|0,c[o>>2]|0,c[j>>2]|0)|0;c[k>>2]=(c[k>>2]|0)-(c[q>>2]|0?0:1)}else c[k>>2]=0;if(c[w>>2]|0){if((c[w>>2]|0)==2){c[B>>2]=wp(c[k>>2]|0,0)|0;c[C>>2]=0;while(1){if((c[C>>2]|0)>=(c[k>>2]|0))break;c[(c[B>>2]|0)+(c[C>>2]<<2)>>2]=c[(c[p>>2]|0)+(c[C>>2]<<2)>>2];c[C>>2]=(c[C>>2]|0)+1}yp(c[p>>2]|0,0);c[p>>2]=c[B>>2]}zp(c[f>>2]|0,c[p>>2]|0,c[k>>2]|0)}c[(c[f>>2]|0)+4>>2]=c[k>>2];c[(c[f>>2]|0)+8>>2]=c[v>>2];if(!(c[x>>2]|0)){l=e;return}yp(c[x>>2]|0,c[y>>2]|0);l=e;return}function Ro(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f+12|0;h=f+8|0;i=f+4|0;j=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;Qo(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0);yo(c[g>>2]|0,c[g>>2]|0,c[j>>2]|0);l=f;return}function So(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0;g=l;l=l+512|0;if((l|0)>=(m|0))$(512);h=g+504|0;i=g+500|0;j=g+496|0;k=g+492|0;n=g+488|0;o=g+484|0;p=g+480|0;q=g+476|0;r=g+472|0;s=g+468|0;t=g+464|0;u=g+460|0;v=g+456|0;w=g+452|0;x=g+448|0;y=g+444|0;z=g+440|0;A=g+436|0;B=g+432|0;C=g+428|0;D=g+424|0;E=g+420|0;F=g+416|0;G=g+412|0;H=g+408|0;I=g+404|0;J=g+400|0;K=g+396|0;L=g+392|0;M=g+328|0;N=g+264|0;O=g+260|0;P=g+256|0;Q=g+252|0;R=g+248|0;S=g+244|0;T=g+240|0;U=g+236|0;V=g+232|0;W=g+228|0;X=g+224|0;Y=g+220|0;Z=g+216|0;_=g+212|0;aa=g+208|0;ba=g+204|0;ca=g+200|0;da=g+196|0;ea=g+192|0;fa=g+164|0;ga=g+160|0;ha=g+156|0;ia=g+152|0;ja=g+148|0;ka=g+144|0;la=g+140|0;ma=g+136|0;na=g+132|0;oa=g+128|0;pa=g+124|0;qa=g+120|0;ra=g+116|0;sa=g+112|0;ta=g+108|0;ua=g+104|0;va=g+100|0;wa=g+80|0;xa=g+60|0;ya=g+56|0;za=g+52|0;Aa=g+48|0;Ba=g+44|0;Ca=g+24|0;Da=g+4|0;Ea=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[E>>2]=0;c[F>>2]=0;c[G>>2]=0;c[H>>2]=0;c[I>>2]=0;c[J>>2]=0;c[K>>2]=0;c[L>>2]=0;c[r>>2]=c[(c[j>>2]|0)+4>>2];c[s>>2]=c[(c[k>>2]|0)+4>>2];c[B>>2]=c[s>>2]<<1;c[v>>2]=c[(c[k>>2]|0)+8>>2];do if((c[r>>2]<<5|0)<=512){if((c[r>>2]<<5|0)>256){c[O>>2]=4;break}if((c[r>>2]<<5|0)>128){c[O>>2]=3;break}if((c[r>>2]<<5|0)>64){c[O>>2]=2;break}else{c[O>>2]=1;break}}else c[O>>2]=5;while(0);if(c[j>>2]|0)Fa=(c[(c[j>>2]|0)+12>>2]&1|0)!=0;else Fa=0;c[y>>2]=Fa&1;if(c[k>>2]|0)Ga=(c[(c[k>>2]|0)+12>>2]&1|0)!=0;else Ga=0;c[z>>2]=Ga&1;if(c[i>>2]|0)Ha=(c[(c[i>>2]|0)+12>>2]&1|0)!=0;else Ha=0;c[A>>2]=Ha&1;c[n>>2]=c[(c[h>>2]|0)+16>>2];c[o>>2]=c[(c[j>>2]|0)+16>>2];if(!(c[s>>2]|0))df();do if(c[r>>2]|0){c[I>>2]=c[z>>2]|0?c[s>>2]|0:0;j=wp(c[s>>2]|0,c[z>>2]|0)|0;c[E>>2]=j;c[p>>2]=j;c[S>>2]=c[(c[(c[k>>2]|0)+16>>2]|0)+((c[s>>2]|0)-1<<2)>>2];j=c[S>>2]|0;c[T>>2]=(c[S>>2]|0)>>>0<65536?(j>>>0<256?0:8):j>>>0<16777216?16:24;c[C>>2]=32-((d[45848+((c[S>>2]|0)>>>(c[T>>2]|0))>>0]|0)+(c[T>>2]|0));a:do if(c[C>>2]|0)ip(c[p>>2]|0,c[(c[k>>2]|0)+16>>2]|0,c[s>>2]|0,c[C>>2]|0)|0;else{c[U>>2]=0;while(1){if((c[U>>2]|0)>=(c[s>>2]|0))break a;c[(c[p>>2]|0)+(c[U>>2]<<2)>>2]=c[(c[(c[k>>2]|0)+16>>2]|0)+(c[U>>2]<<2)>>2];c[U>>2]=(c[U>>2]|0)+1}}while(0);c[t>>2]=c[(c[i>>2]|0)+4>>2];c[w>>2]=c[(c[i>>2]|0)+8>>2];b:do if((c[t>>2]|0)>(c[s>>2]|0)){c[J>>2]=c[A>>2]|0?(c[t>>2]|0)+1|0:0;j=wp((c[t>>2]|0)+1|0,c[A>>2]|0)|0;c[F>>2]=j;c[q>>2]=j;c[V>>2]=0;while(1){if((c[V>>2]|0)>=(c[t>>2]|0))break;c[(c[q>>2]|0)+(c[V>>2]<<2)>>2]=c[(c[(c[i>>2]|0)+16>>2]|0)+(c[V>>2]<<2)>>2];c[V>>2]=(c[V>>2]|0)+1}gp((c[q>>2]|0)+(c[s>>2]<<2)|0,0,c[q>>2]|0,c[t>>2]|0,c[p>>2]|0,c[s>>2]|0)|0;c[t>>2]=c[s>>2];while(1){if((c[t>>2]|0)<=0)break b;if(c[(c[q>>2]|0)+((c[t>>2]|0)-1<<2)>>2]|0)break b;c[t>>2]=(c[t>>2]|0)+-1}}else c[q>>2]=c[(c[i>>2]|0)+16>>2];while(0);if(!(c[t>>2]|0)){c[(c[h>>2]|0)+4>>2]=0;c[(c[h>>2]|0)+8>>2]=0;break}c:do if((c[n>>2]|0)==(c[q>>2]|0)){if(c[F>>2]|0)Se(46104,46115,515,46125);c[J>>2]=c[A>>2]|0?c[t>>2]|0:0;j=wp(c[t>>2]|0,c[A>>2]|0)|0;c[F>>2]=j;c[q>>2]=j;c[W>>2]=0;while(1){if((c[W>>2]|0)>=(c[t>>2]|0))break c;c[(c[q>>2]|0)+(c[W>>2]<<2)>>2]=c[(c[n>>2]|0)+(c[W>>2]<<2)>>2];c[W>>2]=(c[W>>2]|0)+1}}while(0);d:do if((c[n>>2]|0)==(c[o>>2]|0)){c[K>>2]=c[y>>2]|0?c[r>>2]|0:0;j=wp(c[r>>2]|0,c[y>>2]|0)|0;c[G>>2]=j;c[o>>2]=j;c[X>>2]=0;while(1){if((c[X>>2]|0)>=(c[r>>2]|0))break d;c[(c[o>>2]|0)+(c[X>>2]<<2)>>2]=c[(c[n>>2]|0)+(c[X>>2]<<2)>>2];c[X>>2]=(c[X>>2]|0)+1}}while(0);if((c[c[h>>2]>>2]|0)<(c[B>>2]|0)){Ap(c[h>>2]|0,c[B>>2]|0);c[n>>2]=c[(c[h>>2]|0)+16>>2]}if(c[z>>2]|0)Ia=(c[s>>2]|0)+1<<1;else Ia=0;c[L>>2]=Ia;j=wp((c[s>>2]|0)+1<<1,c[z>>2]|0)|0;c[H>>2]=j;c[aa>>2]=j;c[fa>>2]=0;c[fa+4>>2]=0;c[fa+8>>2]=0;c[fa+12>>2]=0;c[fa+16>>2]=0;c[fa+20>>2]=0;c[fa+24>>2]=0;c[D>>2]=(c[c[o>>2]>>2]&1|0?(c[w>>2]|0)!=0:0)&1;if((c[O>>2]|0)>1)To(c[aa>>2]|0,ba,c[q>>2]|0,c[t>>2]|0,c[q>>2]|0,c[t>>2]|0,c[p>>2]|0,c[s>>2]|0,fa);j=wp(c[t>>2]|0,c[y>>2]|0)|0;c[M>>2]=j;c[P>>2]=j;j=c[t>>2]|0;c[N>>2]=j;c[R>>2]=j;c[Q>>2]=j;c[ha>>2]=0;while(1){if((c[ha>>2]|0)>=(c[t>>2]|0))break;c[(c[M>>2]|0)+(c[ha>>2]<<2)>>2]=c[(c[q>>2]|0)+(c[ha>>2]<<2)>>2];c[ha>>2]=(c[ha>>2]|0)+1}c[Y>>2]=1;while(1){if((c[Y>>2]|0)>=(1<<(c[O>>2]|0)-1|0))break;j=c[n>>2]|0;if((c[ba>>2]|0)>=(c[Q>>2]|0))To(j,u,c[aa>>2]|0,c[ba>>2]|0,c[P>>2]|0,c[Q>>2]|0,c[p>>2]|0,c[s>>2]|0,fa);else To(j,u,c[P>>2]|0,c[Q>>2]|0,c[aa>>2]|0,c[ba>>2]|0,c[p>>2]|0,c[s>>2]|0,fa);j=wp(c[u>>2]|0,c[y>>2]|0)|0;c[M+(c[Y>>2]<<2)>>2]=j;c[P>>2]=j;j=c[u>>2]|0;c[N+(c[Y>>2]<<2)>>2]=j;c[Q>>2]=j;if((c[R>>2]|0)<(c[Q>>2]|0))c[R>>2]=c[Q>>2];c[ia>>2]=0;while(1){if((c[ia>>2]|0)>=(c[u>>2]|0))break;c[(c[M+(c[Y>>2]<<2)>>2]|0)+(c[ia>>2]<<2)>>2]=c[(c[n>>2]|0)+(c[ia>>2]<<2)>>2];c[ia>>2]=(c[ia>>2]|0)+1}c[Y>>2]=(c[Y>>2]|0)+1}c[P>>2]=wp(c[R>>2]|0,c[y>>2]|0)|0;c[ja>>2]=0;while(1){if((c[ja>>2]|0)>=(c[R>>2]|0))break;c[(c[P>>2]|0)+(c[ja>>2]<<2)>>2]=0;c[ja>>2]=(c[ja>>2]|0)+1}c[Y>>2]=(c[r>>2]|0)-1;c[x>>2]=0;e:do if((c[O>>2]|0)==1)c[u>>2]=c[t>>2];else{c[u>>2]=c[s>>2];c[ka>>2]=0;while(1){if((c[ka>>2]|0)>=(c[u>>2]|0))break e;c[(c[n>>2]|0)+(c[ka>>2]<<2)>>2]=0;c[ka>>2]=(c[ka>>2]|0)+1}}while(0);c[la>>2]=0;while(1){if((c[la>>2]|0)>=(c[t>>2]|0))break;c[(c[n>>2]|0)+(c[la>>2]<<2)>>2]=c[(c[q>>2]|0)+(c[la>>2]<<2)>>2];c[la>>2]=(c[la>>2]|0)+1}c[da>>2]=c[(c[o>>2]|0)+(c[Y>>2]<<2)>>2];c[ma>>2]=c[da>>2];j=c[ma>>2]|0;c[na>>2]=(c[ma>>2]|0)>>>0<65536?(j>>>0<256?0:8):j>>>0<16777216?16:24;c[ca>>2]=32-((d[45848+((c[ma>>2]|0)>>>(c[na>>2]|0))>>0]|0)+(c[na>>2]|0));c[da>>2]=c[da>>2]<<c[ca>>2]<<1;c[ca>>2]=31-(c[ca>>2]|0);c[Z>>2]=0;while(1){if(!(c[da>>2]|0)){c[Z>>2]=(c[Z>>2]|0)+(c[ca>>2]|0);c[Y>>2]=(c[Y>>2]|0)+-1;if((c[Y>>2]|0)<0){Ja=86;break}c[da>>2]=c[(c[o>>2]|0)+(c[Y>>2]<<2)>>2];c[ca>>2]=32;continue}c[qa>>2]=c[da>>2];j=c[qa>>2]|0;c[ra>>2]=(c[qa>>2]|0)>>>0<65536?(j>>>0<256?0:8):j>>>0<16777216?16:24;c[oa>>2]=32-((d[45848+((c[qa>>2]|0)>>>(c[ra>>2]|0))>>0]|0)+(c[ra>>2]|0));c[da>>2]=c[da>>2]<<c[oa>>2];c[ca>>2]=(c[ca>>2]|0)-(c[oa>>2]|0);c[Z>>2]=(c[Z>>2]|0)+(c[oa>>2]|0);if((c[ca>>2]|0)>=(c[O>>2]|0)){c[pa>>2]=(c[da>>2]|0)>>>(32-(c[O>>2]|0)|0);c[da>>2]=c[da>>2]<<c[O>>2];c[ca>>2]=(c[ca>>2]|0)-(c[O>>2]|0)}else{c[Y>>2]=(c[Y>>2]|0)+-1;if((c[Y>>2]|0)<0){Ja=91;break}c[oa>>2]=c[ca>>2];c[pa>>2]=(c[da>>2]|0)>>>(32-(c[O>>2]|0)|0)|(c[(c[o>>2]|0)+(c[Y>>2]<<2)>>2]|0)>>>(32-(c[O>>2]|0)+(c[oa>>2]|0)|0);c[da>>2]=c[(c[o>>2]|0)+(c[Y>>2]<<2)>>2]<<(c[O>>2]|0)-(c[oa>>2]|0);c[ca>>2]=32-(c[O>>2]|0)+(c[oa>>2]|0)}c[sa>>2]=c[pa>>2];c[ua>>2]=c[sa>>2]&0-(c[sa>>2]|0);j=c[ua>>2]|0;c[va>>2]=(c[ua>>2]|0)>>>0<65536?(j>>>0<256?0:8):j>>>0<16777216?16:24;c[ta>>2]=32-((d[45848+((c[ua>>2]|0)>>>(c[va>>2]|0))>>0]|0)+(c[va>>2]|0));c[oa>>2]=31-(c[ta>>2]|0);c[pa>>2]=(c[pa>>2]|0)>>>(c[oa>>2]|0)>>>1;c[Z>>2]=(c[Z>>2]|0)+((c[O>>2]|0)-(c[oa>>2]|0));while(1){if(!(c[Z>>2]|0))break;To(c[aa>>2]|0,ba,c[n>>2]|0,c[u>>2]|0,c[n>>2]|0,c[u>>2]|0,c[p>>2]|0,c[s>>2]|0,fa);c[ga>>2]=c[n>>2];c[n>>2]=c[aa>>2];c[aa>>2]=c[ga>>2];c[u>>2]=c[ba>>2];c[Z>>2]=(c[Z>>2]|0)+-1}c[Q>>2]=0;c[_>>2]=0;while(1){if((c[_>>2]|0)>=(1<<(c[O>>2]|0)-1|0))break;j=c[N+(c[_>>2]<<2)>>2]|0;c[wa+4>>2]=j;c[wa>>2]=j;j=c[N+(c[_>>2]<<2)>>2]|0;c[xa+4>>2]=j;c[xa>>2]=j;c[xa+8>>2]=0;c[wa+8>>2]=0;c[xa+12>>2]=0;c[wa+12>>2]=0;c[wa+16>>2]=c[P>>2];c[xa+16>>2]=c[M+(c[_>>2]<<2)>>2];Np(wa,xa,(c[_>>2]|0)==(c[pa>>2]|0)&1)|0;c[Q>>2]=c[Q>>2]|c[N+(c[_>>2]<<2)>>2]&0-((c[_>>2]|0)==(c[pa>>2]|0)&1);c[_>>2]=(c[_>>2]|0)+1}To(c[aa>>2]|0,ba,c[n>>2]|0,c[u>>2]|0,c[P>>2]|0,c[Q>>2]|0,c[p>>2]|0,c[s>>2]|0,fa);c[ga>>2]=c[n>>2];c[n>>2]=c[aa>>2];c[aa>>2]=c[ga>>2];c[u>>2]=c[ba>>2];c[Z>>2]=c[oa>>2]}if((Ja|0)==86)c[ca>>2]=0;else if((Ja|0)==91)c[da>>2]=(c[da>>2]|0)>>>(32-(c[ca>>2]|0)|0);if(c[ca>>2]|0){c[Z>>2]=(c[Z>>2]|0)+(c[ca>>2]|0);c[ya>>2]=c[da>>2];c[Aa>>2]=c[ya>>2]&0-(c[ya>>2]|0);j=c[Aa>>2]|0;c[Ba>>2]=(c[Aa>>2]|0)>>>0<65536?(j>>>0<256?0:8):j>>>0<16777216?16:24;c[za>>2]=32-((d[45848+((c[Aa>>2]|0)>>>(c[Ba>>2]|0))>>0]|0)+(c[Ba>>2]|0));c[ca>>2]=31-(c[za>>2]|0);c[da>>2]=(c[da>>2]|0)>>>(c[ca>>2]|0);c[Z>>2]=(c[Z>>2]|0)-(c[ca>>2]|0)}while(1){j=c[Z>>2]|0;c[Z>>2]=j+-1;if(!j)break;To(c[aa>>2]|0,ba,c[n>>2]|0,c[u>>2]|0,c[n>>2]|0,c[u>>2]|0,c[p>>2]|0,c[s>>2]|0,fa);c[ga>>2]=c[n>>2];c[n>>2]=c[aa>>2];c[aa>>2]=c[ga>>2];c[u>>2]=c[ba>>2]}f:do if(c[da>>2]|0){c[Q>>2]=0;c[_>>2]=0;while(1){if((c[_>>2]|0)>=(1<<(c[O>>2]|0)-1|0))break;j=c[N+(c[_>>2]<<2)>>2]|0;c[Ca+4>>2]=j;c[Ca>>2]=j;j=c[N+(c[_>>2]<<2)>>2]|0;c[Da+4>>2]=j;c[Da>>2]=j;c[Da+8>>2]=0;c[Ca+8>>2]=0;c[Da+12>>2]=0;c[Ca+12>>2]=0;c[Ca+16>>2]=c[P>>2];c[Da+16>>2]=c[M+(c[_>>2]<<2)>>2];Np(Ca,Da,(c[_>>2]|0)==((c[da>>2]|0)>>>1|0)&1)|0;c[Q>>2]=c[Q>>2]|c[N+(c[_>>2]<<2)>>2]&0-((c[_>>2]|0)==((c[da>>2]|0)>>>1|0)&1);c[_>>2]=(c[_>>2]|0)+1}To(c[aa>>2]|0,ba,c[n>>2]|0,c[u>>2]|0,c[P>>2]|0,c[Q>>2]|0,c[p>>2]|0,c[s>>2]|0,fa);c[ga>>2]=c[n>>2];c[n>>2]=c[aa>>2];c[aa>>2]=c[ga>>2];c[u>>2]=c[ba>>2];while(1){if(!(c[ca>>2]|0))break f;To(c[aa>>2]|0,ba,c[n>>2]|0,c[u>>2]|0,c[n>>2]|0,c[u>>2]|0,c[p>>2]|0,c[s>>2]|0,fa);c[ga>>2]=c[n>>2];c[n>>2]=c[aa>>2];c[aa>>2]=c[ga>>2];c[u>>2]=c[ba>>2];c[ca>>2]=(c[ca>>2]|0)+-1}}while(0);j=c[(c[h>>2]|0)+16>>2]|0;Ha=c[n>>2]|0;do if(c[C>>2]|0){c[ea>>2]=ip(j,Ha,c[u>>2]|0,c[C>>2]|0)|0;c[n>>2]=c[(c[h>>2]|0)+16>>2];if(!(c[ea>>2]|0))break;c[(c[n>>2]|0)+(c[u>>2]<<2)>>2]=c[ea>>2];c[u>>2]=(c[u>>2]|0)+1}else{if((j|0)==(Ha|0))break;c[Ea>>2]=0;while(1){if((c[Ea>>2]|0)>=(c[u>>2]|0))break;c[(c[(c[h>>2]|0)+16>>2]|0)+(c[Ea>>2]<<2)>>2]=c[(c[n>>2]|0)+(c[Ea>>2]<<2)>>2];c[Ea>>2]=(c[Ea>>2]|0)+1}c[n>>2]=c[(c[h>>2]|0)+16>>2]}while(0);if((c[u>>2]|0)>=(c[s>>2]|0)){gp((c[n>>2]|0)+(c[s>>2]<<2)|0,0,c[n>>2]|0,c[u>>2]|0,c[p>>2]|0,c[s>>2]|0)|0;c[u>>2]=c[s>>2]}if(c[C>>2]|0)qp(c[n>>2]|0,c[n>>2]|0,c[u>>2]|0,c[C>>2]|0)|0;while(1){if((c[u>>2]|0)<=0)break;if(c[(c[n>>2]|0)+((c[u>>2]|0)-1<<2)>>2]|0)break;c[u>>2]=(c[u>>2]|0)+-1}pp(fa);c[Y>>2]=0;while(1){if((c[Y>>2]|0)>=(1<<(c[O>>2]|0)-1|0))break;if(c[y>>2]|0)Ka=c[N+(c[Y>>2]<<2)>>2]|0;else Ka=0;yp(c[M+(c[Y>>2]<<2)>>2]|0,Ka);c[Y>>2]=(c[Y>>2]|0)+1}yp(c[P>>2]|0,c[y>>2]|0?c[R>>2]|0:0);g:do if((c[D>>2]|0)!=0&(c[u>>2]|0)!=0){if(c[C>>2]|0)qp(c[p>>2]|0,c[p>>2]|0,c[s>>2]|0,c[C>>2]|0)|0;Jo(c[n>>2]|0,c[p>>2]|0,c[s>>2]|0,c[n>>2]|0,c[u>>2]|0)|0;c[u>>2]=c[s>>2];c[x>>2]=c[v>>2];while(1){if((c[u>>2]|0)<=0)break g;if(c[(c[n>>2]|0)+((c[u>>2]|0)-1<<2)>>2]|0)break g;c[u>>2]=(c[u>>2]|0)+-1}}while(0);if((c[(c[h>>2]|0)+16>>2]|0)==(c[n>>2]|0)){c[(c[h>>2]|0)+4>>2]=c[u>>2];c[(c[h>>2]|0)+8>>2]=c[x>>2];break}else Se(46140,46115,786,46125)}else{if((c[s>>2]|0)==1)La=(c[c[(c[k>>2]|0)+16>>2]>>2]|0)==1;else La=0;c[(c[h>>2]|0)+4>>2]=La?0:1;if(c[(c[h>>2]|0)+4>>2]|0){if((c[c[h>>2]>>2]|0)<1)Ap(c[h>>2]|0,1);c[n>>2]=c[(c[h>>2]|0)+16>>2];c[c[n>>2]>>2]=1}c[(c[h>>2]|0)+8>>2]=0}while(0);if(c[E>>2]|0)yp(c[E>>2]|0,c[I>>2]|0);if(c[F>>2]|0)yp(c[F>>2]|0,c[J>>2]|0);if(c[G>>2]|0)yp(c[G>>2]|0,c[K>>2]|0);if(!(c[H>>2]|0)){l=g;return}yp(c[H>>2]|0,c[L>>2]|0);l=g;return}function To(a,b,d,e,f,g,h,i,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;k=l;l=l+48|0;if((l|0)>=(m|0))$(48);n=k+32|0;o=k+28|0;p=k+24|0;q=k+20|0;r=k+16|0;s=k+12|0;t=k+8|0;u=k+4|0;v=k;c[n>>2]=a;c[o>>2]=b;c[p>>2]=d;c[q>>2]=e;c[r>>2]=f;c[s>>2]=g;c[t>>2]=h;c[u>>2]=i;c[v>>2]=j;j=c[n>>2]|0;i=c[p>>2]|0;p=c[q>>2]|0;h=c[r>>2]|0;r=c[s>>2]|0;if((c[s>>2]|0)<16)op(j,i,p,h,r)|0;else np(j,i,p,h,r,c[v>>2]|0);if(((c[q>>2]|0)+(c[s>>2]|0)|0)>(c[u>>2]|0)){gp((c[n>>2]|0)+(c[u>>2]<<2)|0,0,c[n>>2]|0,(c[q>>2]|0)+(c[s>>2]|0)|0,c[t>>2]|0,c[u>>2]|0)|0;c[c[o>>2]>>2]=c[u>>2];l=k;return}else{c[c[o>>2]>>2]=(c[q>>2]|0)+(c[s>>2]|0);l=k;return}}function Uo(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;b=l;l=l+48|0;if((l|0)>=(m|0))$(48);e=b+32|0;f=b+28|0;g=b+24|0;h=b+20|0;i=b+16|0;j=b+12|0;k=b+8|0;n=b+4|0;o=b;c[e>>2]=a;c[g>>2]=0;c[f>>2]=0;while(1){if((c[f>>2]|0)>>>0>=(c[(c[e>>2]|0)+4>>2]|0)>>>0){p=6;break}if(c[(c[(c[e>>2]|0)+16>>2]|0)+(c[f>>2]<<2)>>2]|0)break;c[g>>2]=(c[g>>2]|0)+32;c[f>>2]=(c[f>>2]|0)+1}if((p|0)==6){q=c[g>>2]|0;l=b;return q|0}c[i>>2]=c[(c[(c[e>>2]|0)+16>>2]|0)+(c[f>>2]<<2)>>2];c[j>>2]=c[i>>2];c[n>>2]=c[j>>2]&0-(c[j>>2]|0);j=c[n>>2]|0;c[o>>2]=(c[n>>2]|0)>>>0<65536?(j>>>0<256?0:8):j>>>0<16777216?16:24;c[k>>2]=32-((d[45848+((c[n>>2]|0)>>>(c[o>>2]|0))>>0]|0)+(c[o>>2]|0));c[h>>2]=31-(c[k>>2]|0);c[g>>2]=(c[g>>2]|0)+(c[h>>2]|0);q=c[g>>2]|0;l=b;return q|0}function Vo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f+12|0;h=f+8|0;i=f+4|0;j=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;e=Wo(c[g>>2]|0,c[h>>2]|0,0,c[i>>2]|0,c[j>>2]|0,0)|0;l=f;return e|0}function Wo(b,e,f,g,h,i){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;j=l;l=l+64|0;if((l|0)>=(m|0))$(64);k=j+60|0;n=j+56|0;o=j+52|0;p=j+48|0;q=j+44|0;r=j+40|0;s=j+36|0;t=j+32|0;u=j+28|0;v=j+24|0;w=j+20|0;x=j+16|0;y=j+12|0;z=j+8|0;A=j+4|0;B=j;c[n>>2]=b;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;if(c[r>>2]|0)c[c[r>>2]>>2]=c[(c[n>>2]|0)+8>>2];c[c[q>>2]>>2]=c[(c[n>>2]|0)+4>>2]<<2;if(c[c[q>>2]>>2]|0)C=c[c[q>>2]>>2]|0;else C=1;c[A>>2]=C;if((c[A>>2]|0)>>>0<(c[o>>2]|0)>>>0)c[A>>2]=c[o>>2];C=c[A>>2]|0;A=c[p>>2]|0;if((c[p>>2]|0)<0)c[B>>2]=C+(0-A);else c[B>>2]=C+A;do if(c[s>>2]|0)D=13;else{if(c[n>>2]|0?c[(c[n>>2]|0)+12>>2]&1|0:0){D=13;break}E=pf(c[B>>2]|0)|0}while(0);if((D|0)==13)E=sf(c[B>>2]|0)|0;c[v>>2]=E;if(!(c[v>>2]|0)){c[k>>2]=0;F=c[k>>2]|0;l=j;return F|0}E=c[v>>2]|0;if((c[p>>2]|0)<0)c[u>>2]=E+(0-(c[p>>2]|0));else c[u>>2]=E;c[t>>2]=c[u>>2];c[z>>2]=(c[(c[n>>2]|0)+4>>2]|0)-1;while(1){if((c[z>>2]|0)<0)break;c[y>>2]=c[(c[(c[n>>2]|0)+16>>2]|0)+(c[z>>2]<<2)>>2];E=(c[y>>2]|0)>>>24&255;p=c[t>>2]|0;c[t>>2]=p+1;a[p>>0]=E;E=(c[y>>2]|0)>>>16&255;p=c[t>>2]|0;c[t>>2]=p+1;a[p>>0]=E;E=(c[y>>2]|0)>>>8&255;p=c[t>>2]|0;c[t>>2]=p+1;a[p>>0]=E;E=c[y>>2]&255;p=c[t>>2]|0;c[t>>2]=p+1;a[p>>0]=E;c[z>>2]=(c[z>>2]|0)+-1}if(c[o>>2]|0){c[w>>2]=c[c[q>>2]>>2];c[z>>2]=0;while(1){if((c[z>>2]|0)>>>0>=(((c[w>>2]|0)>>>0)/2|0)>>>0)break;c[x>>2]=d[(c[u>>2]|0)+(c[z>>2]|0)>>0];a[(c[u>>2]|0)+(c[z>>2]|0)>>0]=a[(c[u>>2]|0)+((c[w>>2]|0)-1-(c[z>>2]|0))>>0]|0;a[(c[u>>2]|0)+((c[w>>2]|0)-1-(c[z>>2]|0))>>0]=c[x>>2];c[z>>2]=(c[z>>2]|0)+1}c[t>>2]=(c[u>>2]|0)+(c[w>>2]|0);while(1){if((c[w>>2]|0)>>>0>=(c[o>>2]|0)>>>0)break;z=c[t>>2]|0;c[t>>2]=z+1;a[z>>0]=0;c[w>>2]=(c[w>>2]|0)+1}c[c[q>>2]>>2]=c[w>>2];c[k>>2]=c[v>>2];F=c[k>>2]|0;l=j;return F|0}else{c[t>>2]=c[u>>2];while(1){if(!(c[c[q>>2]>>2]|0))break;if(!((a[c[t>>2]>>0]|0)!=0^1))break;c[t>>2]=(c[t>>2]|0)+1;w=c[q>>2]|0;c[w>>2]=(c[w>>2]|0)+-1}if((c[t>>2]|0)!=(c[u>>2]|0))$w(c[u>>2]|0,c[t>>2]|0,c[c[q>>2]>>2]|0)|0;c[k>>2]=c[v>>2];F=c[k>>2]|0;l=j;return F|0}return 0}function Xo(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0;g=l;l=l+32|0;if((l|0)>=(m|0))$(32);h=g+16|0;i=g+12|0;j=g+8|0;k=g+4|0;n=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[n>>2]=f;f=Wo(c[h>>2]|0,c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[n>>2]|0,0)|0;l=g;return f|0}function Yo(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;g=l;l=l+48|0;if((l|0)>=(m|0))$(48);h=g+32|0;i=g+28|0;j=g+24|0;k=g+20|0;n=g+16|0;o=g+12|0;p=g+8|0;q=g+4|0;r=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[n>>2]=c[i>>2];if(c[h>>2]|0?c[(c[h>>2]|0)+12>>2]&16|0:0){Cp();l=g;return}c[q>>2]=(((c[j>>2]|0)+4-1|0)>>>0)/4|0;if((c[c[h>>2]>>2]|0)<(c[q>>2]|0))Ap(c[h>>2]|0,c[q>>2]|0);c[(c[h>>2]|0)+8>>2]=c[k>>2];c[r>>2]=0;c[o>>2]=(c[n>>2]|0)+(c[j>>2]|0)+-1;while(1){s=c[o>>2]|0;if((c[o>>2]|0)>>>0<((c[n>>2]|0)+4|0)>>>0)break;c[o>>2]=s+-1;c[p>>2]=d[s>>0];j=c[o>>2]|0;c[o>>2]=j+-1;c[p>>2]=c[p>>2]|(d[j>>0]|0)<<8;j=c[o>>2]|0;c[o>>2]=j+-1;c[p>>2]=c[p>>2]|(d[j>>0]|0)<<16;j=c[o>>2]|0;c[o>>2]=j+-1;c[p>>2]=c[p>>2]|(d[j>>0]|0)<<24;j=c[p>>2]|0;k=c[r>>2]|0;c[r>>2]=k+1;c[(c[(c[h>>2]|0)+16>>2]|0)+(k<<2)>>2]=j}if(s>>>0>=(c[n>>2]|0)>>>0){s=c[o>>2]|0;c[o>>2]=s+-1;c[p>>2]=d[s>>0];if((c[o>>2]|0)>>>0>=(c[n>>2]|0)>>>0){s=c[o>>2]|0;c[o>>2]=s+-1;c[p>>2]=c[p>>2]|(d[s>>0]|0)<<8}if((c[o>>2]|0)>>>0>=(c[n>>2]|0)>>>0){s=c[o>>2]|0;c[o>>2]=s+-1;c[p>>2]=c[p>>2]|(d[s>>0]|0)<<16}if((c[o>>2]|0)>>>0>=(c[n>>2]|0)>>>0){n=c[o>>2]|0;c[o>>2]=n+-1;c[p>>2]=c[p>>2]|(d[n>>0]|0)<<24}n=c[p>>2]|0;p=c[r>>2]|0;c[r>>2]=p+1;c[(c[(c[h>>2]|0)+16>>2]|0)+(p<<2)>>2]=n}c[(c[h>>2]|0)+4>>2]=c[r>>2];if((c[r>>2]|0)==(c[q>>2]|0)){l=g;return}else Se(46153,46165,377,46176)}function Zo(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;h=l;l=l+64|0;if((l|0)>=(m|0))$(64);i=h+48|0;j=h+44|0;k=h+40|0;n=h+36|0;o=h+32|0;p=h+28|0;q=h+24|0;r=h+20|0;s=h+16|0;t=h+12|0;u=h+8|0;v=h+4|0;w=h;c[j>>2]=a;c[k>>2]=b;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=c[n>>2];c[r>>2]=0;if(c[q>>2]|0)x=(tf(c[q>>2]|0)|0)!=0;else x=0;c[t>>2]=x&1;if((c[k>>2]|0)==3)c[s>>2]=0;else c[s>>2]=c[o>>2];if((c[k>>2]|0)==1){c[u>>2]=c[q>>2];x=(((c[s>>2]|0)+4-1|0)>>>0)/4|0;if(c[t>>2]|0)y=xp(x)|0;else y=vp(x)|0;c[r>>2]=y;if(c[s>>2]|0?(Yo(c[r>>2]|0,c[u>>2]|0,c[s>>2]|0,0),c[(c[r>>2]|0)+8>>2]=(((d[c[u>>2]>>0]|0)&128|0)!=0^1^1)&1,c[(c[r>>2]|0)+8>>2]|0):0){_o(c[r>>2]|0);eo(c[r>>2]|0,c[r>>2]|0,1);c[(c[r>>2]|0)+8>>2]=1}u=c[r>>2]|0;if(c[j>>2]|0){ko(u);c[c[j>>2]>>2]=c[r>>2]}else Dp(u);if(c[p>>2]|0)c[c[p>>2]>>2]=c[s>>2];c[i>>2]=0;z=c[i>>2]|0;l=h;return z|0}if((c[k>>2]|0)==5){u=(((c[s>>2]|0)+4-1|0)>>>0)/4|0;if(c[t>>2]|0)A=xp(u)|0;else A=vp(u)|0;c[r>>2]=A;if(c[s>>2]|0)Yo(c[r>>2]|0,c[q>>2]|0,c[s>>2]|0,0);A=c[r>>2]|0;if(c[j>>2]|0){ko(A);c[c[j>>2]>>2]=c[r>>2]}else Dp(A);if(c[p>>2]|0)c[c[p>>2]>>2]=c[s>>2];c[i>>2]=0;z=c[i>>2]|0;l=h;return z|0}if((c[k>>2]|0)==2){c[r>>2]=$o(c[q>>2]|0,s,c[t>>2]|0)|0;if(c[p>>2]|0)c[c[p>>2]>>2]=c[s>>2];A=c[r>>2]|0;if(!((c[j>>2]|0)!=0&(c[r>>2]|0)!=0)){if(A|0){Dp(c[r>>2]|0);c[r>>2]=0}}else{ko(A);c[c[j>>2]>>2]=c[r>>2]}c[i>>2]=c[r>>2]|0?0:65;z=c[i>>2]|0;l=h;return z|0}if((c[k>>2]|0)!=3){if((c[k>>2]|0)!=4){c[i>>2]=45;z=c[i>>2]|0;l=h;return z|0}if(c[o>>2]|0){c[i>>2]=45;z=c[i>>2]|0;l=h;return z|0}if(c[t>>2]|0)B=xp(0)|0;else B=vp(0)|0;c[r>>2]=B;if(ap(c[r>>2]|0,c[q>>2]|0)|0){Dp(c[r>>2]|0);c[i>>2]=65;z=c[i>>2]|0;l=h;return z|0}B=c[r>>2]|0;if(c[j>>2]|0){ko(B);c[c[j>>2]>>2]=c[r>>2]}else Dp(B);if(c[p>>2]|0){B=hv(c[q>>2]|0)|0;c[c[p>>2]>>2]=B}c[i>>2]=0;z=c[i>>2]|0;l=h;return z|0}c[v>>2]=c[q>>2];if((c[s>>2]|0)!=0&(c[s>>2]|0)>>>0<4){c[i>>2]=66;z=c[i>>2]|0;l=h;return z|0}c[w>>2]=(d[c[v>>2]>>0]|0)<<24|(d[(c[v>>2]|0)+1>>0]|0)<<16|(d[(c[v>>2]|0)+2>>0]|0)<<8|(d[(c[v>>2]|0)+3>>0]|0);c[v>>2]=(c[v>>2]|0)+4;if(c[s>>2]|0)c[s>>2]=(c[s>>2]|0)-4;if(c[s>>2]|0?(c[w>>2]|0)>>>0>(c[s>>2]|0)>>>0:0){c[i>>2]=67;z=c[i>>2]|0;l=h;return z|0}s=(((c[w>>2]|0)+4-1|0)>>>0)/4|0;if(c[t>>2]|0)C=xp(s)|0;else C=vp(s)|0;c[r>>2]=C;if(c[w>>2]|0?(Yo(c[r>>2]|0,c[v>>2]|0,c[w>>2]|0,0),c[(c[r>>2]|0)+8>>2]=(((d[c[v>>2]>>0]|0)&128|0)!=0^1^1)&1,c[(c[r>>2]|0)+8>>2]|0):0){_o(c[r>>2]|0);eo(c[r>>2]|0,c[r>>2]|0,1);c[(c[r>>2]|0)+8>>2]=1}if(c[p>>2]|0)c[c[p>>2]>>2]=(c[w>>2]|0)+4;w=c[r>>2]|0;if(c[j>>2]|0){ko(w);c[c[j>>2]>>2]=c[r>>2]}else Dp(w);c[i>>2]=0;z=c[i>>2]|0;l=h;return z|0}function _o(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=l;l=l+32|0;if((l|0)>=(m|0))$(32);d=b+16|0;e=b+12|0;f=b+8|0;g=b+4|0;h=b;c[d>>2]=a;c[h>>2]=lo(c[d>>2]|0)|0;if(c[d>>2]|0?c[(c[d>>2]|0)+12>>2]&16|0:0){Cp();l=b;return}ko(c[d>>2]|0);c[e>>2]=c[(c[d>>2]|0)+16>>2];c[f>>2]=c[(c[d>>2]|0)+4>>2];c[g>>2]=0;while(1){if((c[g>>2]|0)>>>0>=(c[f>>2]|0)>>>0)break;a=(c[e>>2]|0)+(c[g>>2]<<2)|0;c[a>>2]=~c[a>>2];c[g>>2]=(c[g>>2]|0)+1}c[(c[d>>2]|0)+8>>2]=0;po(c[d>>2]|0,(c[h>>2]|0)-1|0);l=b;return}function $o(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;f=l;l=l+48|0;if((l|0)>=(m|0))$(48);g=f+40|0;h=f+36|0;i=f+32|0;j=f+28|0;k=f+24|0;n=f+20|0;o=f+16|0;p=f+12|0;q=f+8|0;r=f+4|0;s=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=e;c[q>>2]=0;c[s>>2]=0;if((c[c[h>>2]>>2]|0)>>>0<2){t=c[q>>2]|0;u=c[h>>2]|0;c[u>>2]=t;v=c[s>>2]|0;l=f;return v|0}c[n>>2]=(d[c[g>>2]>>0]|0)<<8|(d[(c[g>>2]|0)+1>>0]|0);if((c[n>>2]|0)>>>0>16384){t=c[q>>2]|0;u=c[h>>2]|0;c[u>>2]=t;v=c[s>>2]|0;l=f;return v|0}c[g>>2]=(c[g>>2]|0)+2;c[q>>2]=2;c[o>>2]=(((c[n>>2]|0)+7|0)>>>0)/8|0;c[p>>2]=(((c[o>>2]|0)+4-1|0)>>>0)/4|0;n=c[p>>2]|0;if(c[i>>2]|0)w=xp(n)|0;else w=vp(n)|0;c[s>>2]=w;c[j>>2]=4-(((c[o>>2]|0)>>>0)%4|0);c[j>>2]=(c[j>>2]|0)%4|0;o=c[p>>2]|0;c[(c[s>>2]|0)+4>>2]=o;c[k>>2]=o;c[(c[s>>2]|0)+8>>2]=0;a:while(1){if((c[k>>2]|0)<=0){x=14;break}c[r>>2]=0;while(1){if((c[j>>2]|0)>=4)break;o=(c[q>>2]|0)+1|0;c[q>>2]=o;if(o>>>0>(c[c[h>>2]>>2]|0)>>>0)break a;c[r>>2]=c[r>>2]<<8;o=c[g>>2]|0;c[g>>2]=o+1;c[r>>2]=c[r>>2]|(d[o>>0]|0);c[j>>2]=(c[j>>2]|0)+1}c[j>>2]=0;c[(c[(c[s>>2]|0)+16>>2]|0)+((c[k>>2]|0)-1<<2)>>2]=c[r>>2];c[k>>2]=(c[k>>2]|0)+-1}if((x|0)==14){t=c[q>>2]|0;u=c[h>>2]|0;c[u>>2]=t;v=c[s>>2]|0;l=f;return v|0}Dp(c[s>>2]|0);c[s>>2]=0;t=c[q>>2]|0;u=c[h>>2]|0;c[u>>2]=t;v=c[s>>2]|0;l=f;return v|0}function ap(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;e=l;l=l+64|0;if((l|0)>=(m|0))$(64);f=e+52|0;g=e+48|0;h=e+44|0;i=e+40|0;j=e+36|0;k=e+32|0;n=e+28|0;o=e+24|0;p=e+20|0;q=e+16|0;r=e+12|0;s=e+8|0;t=e+4|0;u=e;c[g>>2]=b;c[h>>2]=d;c[i>>2]=0;c[j>>2]=0;if((a[c[h>>2]>>0]|0)==45){c[i>>2]=1;c[h>>2]=(c[h>>2]|0)+1}if((a[c[h>>2]>>0]|0)==48?(a[(c[h>>2]|0)+1>>0]|0)==120:0)c[h>>2]=(c[h>>2]|0)+2;c[r>>2]=(hv(c[h>>2]|0)|0)<<2;if(((c[r>>2]|0)>>>0)%8|0|0)c[j>>2]=1;c[s>>2]=(((c[r>>2]|0)+7|0)>>>0)/8|0;c[t>>2]=(((c[s>>2]|0)+4-1|0)>>>0)/4|0;if((c[c[g>>2]>>2]|0)>>>0<(c[t>>2]|0)>>>0)Ap(c[g>>2]|0,c[t>>2]|0);c[k>>2]=4-(((c[s>>2]|0)>>>0)%4|0);c[k>>2]=(c[k>>2]|0)%4|0;s=c[t>>2]|0;c[(c[g>>2]|0)+4>>2]=s;c[n>>2]=s;c[(c[g>>2]|0)+8>>2]=c[i>>2];a:while(1){if((c[n>>2]|0)<=0){v=37;break}c[u>>2]=0;while(1){if((c[k>>2]|0)>=4)break;if(c[j>>2]|0){c[p>>2]=48;c[j>>2]=0}else{i=c[h>>2]|0;c[h>>2]=i+1;c[p>>2]=a[i>>0]}if(!(c[p>>2]|0)){v=18;break a}i=c[h>>2]|0;c[h>>2]=i+1;c[q>>2]=a[i>>0];if(!(c[q>>2]|0)){v=20;break a}i=c[p>>2]|0;do if((c[p>>2]|0)>=48&(c[p>>2]|0)<=57)c[o>>2]=i-48;else{s=c[p>>2]|0;if((i|0)>=97&(c[p>>2]|0)<=102){c[o>>2]=s-97+10;break}if(!((s|0)>=65&(c[p>>2]|0)<=70)){v=27;break a}c[o>>2]=(c[p>>2]|0)-65+10}while(0);c[o>>2]=c[o>>2]<<4;i=c[q>>2]|0;do if((c[q>>2]|0)>=48&(c[q>>2]|0)<=57)c[o>>2]=c[o>>2]|i-48;else{s=c[q>>2]|0;if((i|0)>=97&(c[q>>2]|0)<=102){c[o>>2]=c[o>>2]|s-97+10;break}if(!((s|0)>=65&(c[q>>2]|0)<=70)){v=34;break a}c[o>>2]=c[o>>2]|(c[q>>2]|0)-65+10}while(0);c[u>>2]=c[u>>2]<<8;c[u>>2]=c[u>>2]|c[o>>2];c[k>>2]=(c[k>>2]|0)+1}c[k>>2]=0;c[(c[(c[g>>2]|0)+16>>2]|0)+((c[n>>2]|0)-1<<2)>>2]=c[u>>2];c[n>>2]=(c[n>>2]|0)+-1}if((v|0)==18){Bp(c[g>>2]|0);c[f>>2]=1;w=c[f>>2]|0;l=e;return w|0}else if((v|0)==20){Bp(c[g>>2]|0);c[f>>2]=1;w=c[f>>2]|0;l=e;return w|0}else if((v|0)==27){Bp(c[g>>2]|0);c[f>>2]=1;w=c[f>>2]|0;l=e;return w|0}else if((v|0)==34){Bp(c[g>>2]|0);c[f>>2]=1;w=c[f>>2]|0;l=e;return w|0}else if((v|0)==37){c[f>>2]=0;w=c[f>>2]|0;l=e;return w|0}return 0}function bp(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;i=l;l=l+128|0;if((l|0)>=(m|0))$(128);j=i+112|0;k=i+108|0;n=i+104|0;o=i+100|0;p=i+96|0;q=i+92|0;r=i+88|0;s=i+84|0;t=i+76|0;u=i+72|0;v=i+68|0;w=i+64|0;x=i+60|0;y=i+56|0;z=i+52|0;A=i+48|0;B=i+44|0;C=i+40|0;D=i+36|0;E=i+32|0;F=i+28|0;G=i+24|0;H=i+20|0;I=i+16|0;J=i+12|0;K=i+8|0;L=i+4|0;M=i;c[k>>2]=b;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;c[r>>2]=lo(c[q>>2]|0)|0;if(!(c[p>>2]|0))c[p>>2]=i+80;if(c[(c[q>>2]|0)+8>>2]|0?vo(c[q>>2]|0,0)|0:0)c[t>>2]=1;else c[t>>2]=0;c[s>>2]=c[o>>2];c[c[p>>2]>>2]=0;if((c[k>>2]|0)==1){c[v>>2]=0;c[u>>2]=Vo(c[q>>2]|0,0,w,0)|0;if(!(c[u>>2]|0)){c[j>>2]=Et()|0;N=c[j>>2]|0;l=i;return N|0}if(c[t>>2]|0){cp(c[u>>2]|0,c[w>>2]|0);if(!((d[c[u>>2]>>0]|0)&128)){c[w>>2]=(c[w>>2]|0)+1;c[v>>2]=2}}else if(c[w>>2]|0?(d[c[u>>2]>>0]|0)&128|0:0){c[w>>2]=(c[w>>2]|0)+1;c[v>>2]=1}if(c[n>>2]|0?(c[w>>2]|0)>>>0>(c[s>>2]|0)>>>0:0){vf(c[u>>2]|0);c[j>>2]=66;N=c[j>>2]|0;l=i;return N|0}if(c[n>>2]|0){c[x>>2]=c[n>>2];if((c[v>>2]|0)!=1){if(c[v>>2]|0){o=c[x>>2]|0;c[x>>2]=o+1;a[o>>0]=-1}}else{o=c[x>>2]|0;c[x>>2]=o+1;a[o>>0]=0}_w(c[x>>2]|0,c[u>>2]|0,(c[w>>2]|0)-(((c[v>>2]|0)!=0^1^1)&1)|0)|0}vf(c[u>>2]|0);c[c[p>>2]>>2]=c[w>>2];c[j>>2]=0;N=c[j>>2]|0;l=i;return N|0}if((c[k>>2]|0)==5){c[y>>2]=(((c[r>>2]|0)+7|0)>>>0)/8|0;if(c[n>>2]|0?(c[y>>2]|0)>>>0>(c[s>>2]|0)>>>0:0){c[j>>2]=66;N=c[j>>2]|0;l=i;return N|0}do if(c[n>>2]|0){c[z>>2]=Vo(c[q>>2]|0,0,y,0)|0;if(c[z>>2]|0){_w(c[n>>2]|0,c[z>>2]|0,c[y>>2]|0)|0;vf(c[z>>2]|0);break}c[j>>2]=Et()|0;N=c[j>>2]|0;l=i;return N|0}while(0);c[c[p>>2]>>2]=c[y>>2];c[j>>2]=0;N=c[j>>2]|0;l=i;return N|0}if((c[k>>2]|0)==2){c[A>>2]=(((c[r>>2]|0)+7|0)>>>0)/8|0;if(c[t>>2]|0){c[j>>2]=45;N=c[j>>2]|0;l=i;return N|0}if(c[n>>2]|0?((c[A>>2]|0)+2|0)>>>0>(c[s>>2]|0)>>>0:0){c[j>>2]=66;N=c[j>>2]|0;l=i;return N|0}do if(c[n>>2]|0){c[C>>2]=c[n>>2];a[c[C>>2]>>0]=(c[r>>2]|0)>>>8;a[(c[C>>2]|0)+1>>0]=c[r>>2];c[B>>2]=Vo(c[q>>2]|0,0,A,0)|0;if(c[B>>2]|0){_w((c[C>>2]|0)+2|0,c[B>>2]|0,c[A>>2]|0)|0;vf(c[B>>2]|0);break}c[j>>2]=Et()|0;N=c[j>>2]|0;l=i;return N|0}while(0);c[c[p>>2]>>2]=(c[A>>2]|0)+2;c[j>>2]=0;N=c[j>>2]|0;l=i;return N|0}if((c[k>>2]|0)==3){c[E>>2]=0;c[D>>2]=Vo(c[q>>2]|0,0,F,0)|0;if(!(c[D>>2]|0)){c[j>>2]=Et()|0;N=c[j>>2]|0;l=i;return N|0}if(c[t>>2]|0){cp(c[D>>2]|0,c[F>>2]|0);if(!((d[c[D>>2]>>0]|0)&128)){c[F>>2]=(c[F>>2]|0)+1;c[E>>2]=2}}else if(c[F>>2]|0?(d[c[D>>2]>>0]|0)&128|0:0){c[F>>2]=(c[F>>2]|0)+1;c[E>>2]=1}if(c[n>>2]|0?((c[F>>2]|0)+4|0)>>>0>(c[s>>2]|0)>>>0:0){vf(c[D>>2]|0);c[j>>2]=66;N=c[j>>2]|0;l=i;return N|0}if(c[n>>2]|0){c[G>>2]=c[n>>2];A=(c[F>>2]|0)>>>24&255;B=c[G>>2]|0;c[G>>2]=B+1;a[B>>0]=A;A=(c[F>>2]|0)>>>16&255;B=c[G>>2]|0;c[G>>2]=B+1;a[B>>0]=A;A=(c[F>>2]|0)>>>8&255;B=c[G>>2]|0;c[G>>2]=B+1;a[B>>0]=A;A=c[F>>2]&255;B=c[G>>2]|0;c[G>>2]=B+1;a[B>>0]=A;if((c[E>>2]|0)!=1){if(c[E>>2]|0){A=c[G>>2]|0;c[G>>2]=A+1;a[A>>0]=-1}}else{A=c[G>>2]|0;c[G>>2]=A+1;a[A>>0]=0}_w(c[G>>2]|0,c[D>>2]|0,(c[F>>2]|0)-(((c[E>>2]|0)!=0^1^1)&1)|0)|0}vf(c[D>>2]|0);c[c[p>>2]>>2]=4+(c[F>>2]|0);c[j>>2]=0;N=c[j>>2]|0;l=i;return N|0}if((c[k>>2]|0)!=4){c[j>>2]=45;N=c[j>>2]|0;l=i;return N|0}c[J>>2]=0;c[K>>2]=0;c[H>>2]=Vo(c[q>>2]|0,0,K,0)|0;if(!(c[H>>2]|0)){c[j>>2]=Et()|0;N=c[j>>2]|0;l=i;return N|0}if(!(c[K>>2]|0?!((d[c[H>>2]>>0]|0)&128|0):0))c[J>>2]=2;if(c[n>>2]|0?((c[K>>2]<<1)+(c[J>>2]|0)+(c[t>>2]|0)+1|0)>>>0>(c[s>>2]|0)>>>0:0){vf(c[H>>2]|0);c[j>>2]=66;N=c[j>>2]|0;l=i;return N|0}if(c[n>>2]|0){c[L>>2]=c[n>>2];if(c[t>>2]|0){s=c[L>>2]|0;c[L>>2]=s+1;a[s>>0]=45}if(c[J>>2]|0){s=c[L>>2]|0;c[L>>2]=s+1;a[s>>0]=48;s=c[L>>2]|0;c[L>>2]=s+1;a[s>>0]=48}c[I>>2]=0;while(1){if((c[I>>2]|0)>>>0>=(c[K>>2]|0)>>>0)break;c[M>>2]=d[(c[H>>2]|0)+(c[I>>2]|0)>>0];s=(c[M>>2]|0)>>>4;q=((c[M>>2]|0)>>>4>>>0<10?48+s|0:65+s-10|0)&255;s=c[L>>2]|0;c[L>>2]=s+1;a[s>>0]=q;c[M>>2]=c[M>>2]&15;q=c[M>>2]|0;s=((c[M>>2]|0)>>>0<10?48+q|0:65+q-10|0)&255;q=c[L>>2]|0;c[L>>2]=q+1;a[q>>0]=s;c[I>>2]=(c[I>>2]|0)+1}I=c[L>>2]|0;c[L>>2]=I+1;a[I>>0]=0;c[c[p>>2]>>2]=(c[L>>2]|0)-(c[n>>2]|0)}else c[c[p>>2]>>2]=(c[K>>2]<<1)+(c[J>>2]|0)+(c[t>>2]|0)+1;vf(c[H>>2]|0);c[j>>2]=0;N=c[j>>2]|0;l=i;return N|0}function cp(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f+8|0;h=f+4|0;i=f;c[g>>2]=b;c[h>>2]=e;c[i>>2]=(c[h>>2]|0)-1;while(1){if((c[i>>2]|0)<0)break;if(!((a[(c[g>>2]|0)+(c[i>>2]|0)>>0]|0)!=0^1))break;c[i>>2]=(c[i>>2]|0)+-1}if((c[i>>2]|0)<0){l=f;return}h=d[(c[g>>2]|0)+(c[i>>2]|0)>>0]|0;do if(!(d[(c[g>>2]|0)+(c[i>>2]|0)>>0]&1|0)){e=d[(c[g>>2]|0)+(c[i>>2]|0)>>0]|0;if(h&2|0){a[(c[g>>2]|0)+(c[i>>2]|0)>>0]=(e^252|2)&254;break}b=d[(c[g>>2]|0)+(c[i>>2]|0)>>0]|0;if(e&4|0){a[(c[g>>2]|0)+(c[i>>2]|0)>>0]=(b^248|4)&252;break}e=d[(c[g>>2]|0)+(c[i>>2]|0)>>0]|0;if(b&8|0){a[(c[g>>2]|0)+(c[i>>2]|0)>>0]=(e^240|8)&248;break}b=d[(c[g>>2]|0)+(c[i>>2]|0)>>0]|0;if(e&16|0){a[(c[g>>2]|0)+(c[i>>2]|0)>>0]=(b^224|16)&240;break}e=d[(c[g>>2]|0)+(c[i>>2]|0)>>0]|0;if(b&32|0){a[(c[g>>2]|0)+(c[i>>2]|0)>>0]=(e^192|32)&224;break}b=(c[g>>2]|0)+(c[i>>2]|0)|0;if(e&64|0){a[(c[g>>2]|0)+(c[i>>2]|0)>>0]=(d[b>>0]^128|64)&192;break}else{a[b>>0]=-128;break}}else a[(c[g>>2]|0)+(c[i>>2]|0)>>0]=h^254|1;while(0);c[i>>2]=(c[i>>2]|0)+-1;while(1){if((c[i>>2]|0)<0)break;h=(c[g>>2]|0)+(c[i>>2]|0)|0;a[h>>0]=d[h>>0]^255;c[i>>2]=(c[i>>2]|0)+-1}l=f;return}function dp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;f=l;l=l+48|0;if((l|0)>=(m|0))$(48);g=f+36|0;h=f+32|0;i=f+28|0;j=f+24|0;k=f+20|0;n=f+16|0;o=f+12|0;p=f+8|0;q=f+4|0;r=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;if((((c[h>>2]|0)!=0^1)&1|0)==(((c[i>>2]|0)!=0^1)&1|0)){c[g>>2]=45;s=c[g>>2]|0;l=f;return s|0}if(c[h>>2]|0)c[c[h>>2]>>2]=0;c[n>>2]=bp(5,0,0,o,c[j>>2]|0)|0;if(c[n>>2]|0){c[g>>2]=c[n>>2];s=c[g>>2]|0;l=f;return s|0}if((c[o>>2]|0)>>>0>(c[k>>2]|0)>>>0){c[g>>2]=67;s=c[g>>2]|0;l=f;return s|0}if((c[o>>2]|0)>>>0<(c[k>>2]|0)>>>0)t=(c[k>>2]|0)-(c[o>>2]|0)|0;else t=0;c[p>>2]=t;c[q>>2]=(c[o>>2]|0)+(c[p>>2]|0);if(!(c[i>>2]|0)){if(c[j>>2]|0?c[(c[j>>2]|0)+12>>2]&1|0:0)u=sf(c[q>>2]|0)|0;else u=pf(c[q>>2]|0)|0;c[r>>2]=u;if(!(c[r>>2]|0)){c[n>>2]=Et()|0;c[g>>2]=c[n>>2];s=c[g>>2]|0;l=f;return s|0}}else c[r>>2]=c[i>>2];if(c[p>>2]|0)Uw(c[r>>2]|0,0,c[p>>2]|0)|0;c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[n>>2]=bp(5,(c[r>>2]|0)+(c[p>>2]|0)|0,(c[o>>2]|0)-(c[p>>2]|0)|0,0,c[j>>2]|0)|0;if(c[n>>2]|0){vf(c[r>>2]|0);c[g>>2]=c[n>>2];s=c[g>>2]|0;l=f;return s|0}if(c[h>>2]|0)c[c[h>>2]>>2]=c[r>>2];c[g>>2]=0;s=c[g>>2]|0;l=f;return s|0}function ep(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f+28|0;h=f+24|0;i=f+20|0;j=f+16|0;k=f+12|0;n=f+8|0;o=f+4|0;p=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[p>>2]=0-(c[j>>2]|0);c[h>>2]=(c[h>>2]|0)+(0-(c[p>>2]|0)<<2);c[i>>2]=(c[i>>2]|0)+(0-(c[p>>2]|0)<<2);c[g>>2]=(c[g>>2]|0)+(0-(c[p>>2]|0)<<2);c[o>>2]=0;do{c[n>>2]=c[(c[i>>2]|0)+(c[p>>2]<<2)>>2];c[k>>2]=c[(c[h>>2]|0)+(c[p>>2]<<2)>>2];c[n>>2]=(c[n>>2]|0)+(c[o>>2]|0);c[o>>2]=(c[n>>2]|0)>>>0<(c[o>>2]|0)>>>0&1;c[n>>2]=(c[n>>2]|0)+(c[k>>2]|0);c[o>>2]=(c[o>>2]|0)+((c[n>>2]|0)>>>0<(c[k>>2]|0)>>>0&1);c[(c[g>>2]|0)+(c[p>>2]<<2)>>2]=c[n>>2];j=(c[p>>2]|0)+1|0;c[p>>2]=j}while((j|0)!=0);l=f;return c[o>>2]|0}function fp(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0;f=l;l=l+144|0;if((l|0)>=(m|0))$(144);g=f+128|0;h=f+124|0;i=f+120|0;j=f+116|0;k=f+112|0;n=f+108|0;o=f+104|0;p=f+100|0;q=f+96|0;r=f+92|0;s=f+88|0;t=f+84|0;u=f+80|0;v=f+76|0;w=f+72|0;x=f+68|0;y=f+64|0;z=f+60|0;A=f+56|0;B=f+52|0;C=f+48|0;D=f+44|0;E=f+40|0;F=f+36|0;G=f+32|0;H=f+28|0;I=f+24|0;J=f+20|0;K=f+16|0;L=f+12|0;M=f+8|0;N=f+4|0;O=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=e;if(!(c[i>>2]|0)){c[g>>2]=0;P=c[g>>2]|0;l=f;return P|0}c[s>>2]=c[j>>2];e=c[s>>2]|0;c[t>>2]=(c[s>>2]|0)>>>0<65536?(e>>>0<256?0:8):e>>>0<16777216?16:24;c[r>>2]=32-((d[45848+((c[s>>2]|0)>>>(c[t>>2]|0))>>0]|0)+(c[t>>2]|0));if(!(c[r>>2]|0)){c[k>>2]=(c[i>>2]|0)-1;c[p>>2]=c[(c[h>>2]|0)+(c[k>>2]<<2)>>2];if((c[p>>2]|0)>>>0>=(c[j>>2]|0)>>>0)c[p>>2]=0;else c[k>>2]=(c[k>>2]|0)+-1;while(1){if((c[k>>2]|0)<0)break;c[o>>2]=c[(c[h>>2]|0)+(c[k>>2]<<2)>>2];c[I>>2]=(c[j>>2]|0)>>>16;c[J>>2]=c[j>>2]&65535;c[M>>2]=((c[p>>2]|0)>>>0)%((c[I>>2]|0)>>>0)|0;c[K>>2]=((c[p>>2]|0)>>>0)/((c[I>>2]|0)>>>0)|0;c[O>>2]=S(c[K>>2]|0,c[J>>2]|0)|0;c[M>>2]=c[M>>2]<<16|(c[o>>2]|0)>>>16;if(((c[M>>2]|0)>>>0<(c[O>>2]|0)>>>0?(c[K>>2]=(c[K>>2]|0)+-1,c[M>>2]=(c[M>>2]|0)+(c[j>>2]|0),(c[M>>2]|0)>>>0>=(c[j>>2]|0)>>>0):0)?(c[M>>2]|0)>>>0<(c[O>>2]|0)>>>0:0){c[K>>2]=(c[K>>2]|0)+-1;c[M>>2]=(c[M>>2]|0)+(c[j>>2]|0)}c[M>>2]=(c[M>>2]|0)-(c[O>>2]|0);c[N>>2]=((c[M>>2]|0)>>>0)%((c[I>>2]|0)>>>0)|0;c[L>>2]=((c[M>>2]|0)>>>0)/((c[I>>2]|0)>>>0)|0;c[O>>2]=S(c[L>>2]|0,c[J>>2]|0)|0;c[N>>2]=c[N>>2]<<16|c[o>>2]&65535;if(((c[N>>2]|0)>>>0<(c[O>>2]|0)>>>0?(c[L>>2]=(c[L>>2]|0)+-1,c[N>>2]=(c[N>>2]|0)+(c[j>>2]|0),(c[N>>2]|0)>>>0>=(c[j>>2]|0)>>>0):0)?(c[N>>2]|0)>>>0<(c[O>>2]|0)>>>0:0){c[L>>2]=(c[L>>2]|0)+-1;c[N>>2]=(c[N>>2]|0)+(c[j>>2]|0)}c[N>>2]=(c[N>>2]|0)-(c[O>>2]|0);c[q>>2]=c[K>>2]<<16|c[L>>2];c[p>>2]=c[N>>2];c[k>>2]=(c[k>>2]|0)+-1}c[g>>2]=c[p>>2];P=c[g>>2]|0;l=f;return P|0}c[j>>2]=c[j>>2]<<c[r>>2];c[n>>2]=c[(c[h>>2]|0)+((c[i>>2]|0)-1<<2)>>2];c[p>>2]=(c[n>>2]|0)>>>(32-(c[r>>2]|0)|0);c[k>>2]=(c[i>>2]|0)-2;while(1){if((c[k>>2]|0)<0)break;c[o>>2]=c[(c[h>>2]|0)+(c[k>>2]<<2)>>2];c[u>>2]=(c[j>>2]|0)>>>16;c[v>>2]=c[j>>2]&65535;c[y>>2]=((c[p>>2]|0)>>>0)%((c[u>>2]|0)>>>0)|0;c[w>>2]=((c[p>>2]|0)>>>0)/((c[u>>2]|0)>>>0)|0;c[A>>2]=S(c[w>>2]|0,c[v>>2]|0)|0;c[y>>2]=c[y>>2]<<16|(c[n>>2]<<c[r>>2]|(c[o>>2]|0)>>>(32-(c[r>>2]|0)|0))>>>16;if(((c[y>>2]|0)>>>0<(c[A>>2]|0)>>>0?(c[w>>2]=(c[w>>2]|0)+-1,c[y>>2]=(c[y>>2]|0)+(c[j>>2]|0),(c[y>>2]|0)>>>0>=(c[j>>2]|0)>>>0):0)?(c[y>>2]|0)>>>0<(c[A>>2]|0)>>>0:0){c[w>>2]=(c[w>>2]|0)+-1;c[y>>2]=(c[y>>2]|0)+(c[j>>2]|0)}c[y>>2]=(c[y>>2]|0)-(c[A>>2]|0);c[z>>2]=((c[y>>2]|0)>>>0)%((c[u>>2]|0)>>>0)|0;c[x>>2]=((c[y>>2]|0)>>>0)/((c[u>>2]|0)>>>0)|0;c[A>>2]=S(c[x>>2]|0,c[v>>2]|0)|0;c[z>>2]=c[z>>2]<<16|(c[n>>2]<<c[r>>2]|(c[o>>2]|0)>>>(32-(c[r>>2]|0)|0))&65535;if(((c[z>>2]|0)>>>0<(c[A>>2]|0)>>>0?(c[x>>2]=(c[x>>2]|0)+-1,c[z>>2]=(c[z>>2]|0)+(c[j>>2]|0),(c[z>>2]|0)>>>0>=(c[j>>2]|0)>>>0):0)?(c[z>>2]|0)>>>0<(c[A>>2]|0)>>>0:0){c[x>>2]=(c[x>>2]|0)+-1;c[z>>2]=(c[z>>2]|0)+(c[j>>2]|0)}c[z>>2]=(c[z>>2]|0)-(c[A>>2]|0);c[q>>2]=c[w>>2]<<16|c[x>>2];c[p>>2]=c[z>>2];c[n>>2]=c[o>>2];c[k>>2]=(c[k>>2]|0)+-1}c[B>>2]=(c[j>>2]|0)>>>16;c[C>>2]=c[j>>2]&65535;c[F>>2]=((c[p>>2]|0)>>>0)%((c[B>>2]|0)>>>0)|0;c[D>>2]=((c[p>>2]|0)>>>0)/((c[B>>2]|0)>>>0)|0;c[H>>2]=S(c[D>>2]|0,c[C>>2]|0)|0;c[F>>2]=c[F>>2]<<16|c[n>>2]<<c[r>>2]>>>16;if(((c[F>>2]|0)>>>0<(c[H>>2]|0)>>>0?(c[D>>2]=(c[D>>2]|0)+-1,c[F>>2]=(c[F>>2]|0)+(c[j>>2]|0),(c[F>>2]|0)>>>0>=(c[j>>2]|0)>>>0):0)?(c[F>>2]|0)>>>0<(c[H>>2]|0)>>>0:0){c[D>>2]=(c[D>>2]|0)+-1;c[F>>2]=(c[F>>2]|0)+(c[j>>2]|0)}c[F>>2]=(c[F>>2]|0)-(c[H>>2]|0);c[G>>2]=((c[F>>2]|0)>>>0)%((c[B>>2]|0)>>>0)|0;c[E>>2]=((c[F>>2]|0)>>>0)/((c[B>>2]|0)>>>0)|0;c[H>>2]=S(c[E>>2]|0,c[C>>2]|0)|0;c[G>>2]=c[G>>2]<<16|c[n>>2]<<c[r>>2]&65535;if(((c[G>>2]|0)>>>0<(c[H>>2]|0)>>>0?(c[E>>2]=(c[E>>2]|0)+-1,c[G>>2]=(c[G>>2]|0)+(c[j>>2]|0),(c[G>>2]|0)>>>0>=(c[j>>2]|0)>>>0):0)?(c[G>>2]|0)>>>0<(c[H>>2]|0)>>>0:0){c[E>>2]=(c[E>>2]|0)+-1;c[G>>2]=(c[G>>2]|0)+(c[j>>2]|0)}c[G>>2]=(c[G>>2]|0)-(c[H>>2]|0);c[q>>2]=c[D>>2]<<16|c[E>>2];c[p>>2]=c[G>>2];c[g>>2]=(c[p>>2]|0)>>>(c[r>>2]|0);P=c[g>>2]|0;l=f;return P|0}function gp(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0;h=l;l=l+320|0;if((l|0)>=(m|0))$(320);i=h+316|0;j=h+312|0;k=h+308|0;n=h+304|0;o=h+300|0;p=h+296|0;q=h+292|0;r=h+288|0;s=h+284|0;t=h+280|0;u=h+276|0;v=h+272|0;w=h+268|0;x=h+264|0;y=h+260|0;z=h+256|0;A=h+252|0;B=h+248|0;C=h+244|0;D=h+240|0;E=h+236|0;F=h+232|0;G=h+228|0;H=h+224|0;I=h+220|0;J=h+216|0;K=h+212|0;L=h+208|0;M=h+204|0;N=h+200|0;O=h+196|0;P=h+192|0;Q=h+188|0;R=h+184|0;T=h+180|0;U=h+176|0;V=h+172|0;W=h+168|0;X=h+164|0;Y=h+160|0;Z=h+156|0;_=h+152|0;aa=h+148|0;ba=h+144|0;ca=h+140|0;da=h+136|0;ea=h+132|0;fa=h+128|0;ga=h+124|0;ha=h+120|0;ia=h+116|0;ja=h+112|0;ka=h+108|0;la=h+104|0;ma=h+100|0;na=h+96|0;oa=h+92|0;pa=h+88|0;qa=h+84|0;ra=h+80|0;sa=h+76|0;ta=h+72|0;ua=h+68|0;va=h+64|0;wa=h+60|0;xa=h+56|0;ya=h+52|0;za=h+48|0;Aa=h+44|0;Ba=h+40|0;Ca=h+36|0;Da=h+32|0;Ea=h+28|0;Fa=h+24|0;Ga=h+20|0;Ha=h+16|0;Ia=h+12|0;Ja=h+8|0;Ka=h+4|0;La=h;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=0;switch(c[p>>2]|0){case 0:{df();break}case 1:{c[t>>2]=c[c[o>>2]>>2];c[s>>2]=c[(c[k>>2]|0)+((c[n>>2]|0)-1<<2)>>2];if((c[s>>2]|0)>>>0>=(c[t>>2]|0)>>>0){c[s>>2]=(c[s>>2]|0)-(c[t>>2]|0);c[q>>2]=1}c[i>>2]=(c[i>>2]|0)+(c[j>>2]<<2);c[r>>2]=(c[n>>2]|0)-2;while(1){if((c[r>>2]|0)<0)break;c[u>>2]=(c[t>>2]|0)>>>16;c[v>>2]=c[t>>2]&65535;c[y>>2]=((c[s>>2]|0)>>>0)%((c[u>>2]|0)>>>0)|0;c[w>>2]=((c[s>>2]|0)>>>0)/((c[u>>2]|0)>>>0)|0;c[A>>2]=S(c[w>>2]|0,c[v>>2]|0)|0;c[y>>2]=c[y>>2]<<16|(c[(c[k>>2]|0)+(c[r>>2]<<2)>>2]|0)>>>16;if(((c[y>>2]|0)>>>0<(c[A>>2]|0)>>>0?(c[w>>2]=(c[w>>2]|0)+-1,c[y>>2]=(c[y>>2]|0)+(c[t>>2]|0),(c[y>>2]|0)>>>0>=(c[t>>2]|0)>>>0):0)?(c[y>>2]|0)>>>0<(c[A>>2]|0)>>>0:0){c[w>>2]=(c[w>>2]|0)+-1;c[y>>2]=(c[y>>2]|0)+(c[t>>2]|0)}c[y>>2]=(c[y>>2]|0)-(c[A>>2]|0);c[z>>2]=((c[y>>2]|0)>>>0)%((c[u>>2]|0)>>>0)|0;c[x>>2]=((c[y>>2]|0)>>>0)/((c[u>>2]|0)>>>0)|0;c[A>>2]=S(c[x>>2]|0,c[v>>2]|0)|0;c[z>>2]=c[z>>2]<<16|c[(c[k>>2]|0)+(c[r>>2]<<2)>>2]&65535;if(((c[z>>2]|0)>>>0<(c[A>>2]|0)>>>0?(c[x>>2]=(c[x>>2]|0)+-1,c[z>>2]=(c[z>>2]|0)+(c[t>>2]|0),(c[z>>2]|0)>>>0>=(c[t>>2]|0)>>>0):0)?(c[z>>2]|0)>>>0<(c[A>>2]|0)>>>0:0){c[x>>2]=(c[x>>2]|0)+-1;c[z>>2]=(c[z>>2]|0)+(c[t>>2]|0)}c[z>>2]=(c[z>>2]|0)-(c[A>>2]|0);c[(c[i>>2]|0)+(c[r>>2]<<2)>>2]=c[w>>2]<<16|c[x>>2];c[s>>2]=c[z>>2];c[r>>2]=(c[r>>2]|0)+-1}c[i>>2]=(c[i>>2]|0)+(0-(c[j>>2]|0)<<2);c[r>>2]=(c[j>>2]|0)-1;while(1){if((c[r>>2]|0)<0)break;c[B>>2]=(c[t>>2]|0)>>>16;c[C>>2]=c[t>>2]&65535;c[F>>2]=((c[s>>2]|0)>>>0)%((c[B>>2]|0)>>>0)|0;c[D>>2]=((c[s>>2]|0)>>>0)/((c[B>>2]|0)>>>0)|0;c[H>>2]=S(c[D>>2]|0,c[C>>2]|0)|0;c[F>>2]=c[F>>2]<<16;if(((c[F>>2]|0)>>>0<(c[H>>2]|0)>>>0?(c[D>>2]=(c[D>>2]|0)+-1,c[F>>2]=(c[F>>2]|0)+(c[t>>2]|0),(c[F>>2]|0)>>>0>=(c[t>>2]|0)>>>0):0)?(c[F>>2]|0)>>>0<(c[H>>2]|0)>>>0:0){c[D>>2]=(c[D>>2]|0)+-1;c[F>>2]=(c[F>>2]|0)+(c[t>>2]|0)}c[F>>2]=(c[F>>2]|0)-(c[H>>2]|0);c[G>>2]=((c[F>>2]|0)>>>0)%((c[B>>2]|0)>>>0)|0;c[E>>2]=((c[F>>2]|0)>>>0)/((c[B>>2]|0)>>>0)|0;c[H>>2]=S(c[E>>2]|0,c[C>>2]|0)|0;c[G>>2]=c[G>>2]<<16;if(((c[G>>2]|0)>>>0<(c[H>>2]|0)>>>0?(c[E>>2]=(c[E>>2]|0)+-1,c[G>>2]=(c[G>>2]|0)+(c[t>>2]|0),(c[G>>2]|0)>>>0>=(c[t>>2]|0)>>>0):0)?(c[G>>2]|0)>>>0<(c[H>>2]|0)>>>0:0){c[E>>2]=(c[E>>2]|0)+-1;c[G>>2]=(c[G>>2]|0)+(c[t>>2]|0)}c[G>>2]=(c[G>>2]|0)-(c[H>>2]|0);c[(c[i>>2]|0)+(c[r>>2]<<2)>>2]=c[D>>2]<<16|c[E>>2];c[s>>2]=c[G>>2];c[r>>2]=(c[r>>2]|0)+-1}c[c[k>>2]>>2]=c[s>>2];Ma=c[q>>2]|0;l=h;return Ma|0}case 2:{c[k>>2]=(c[k>>2]|0)+((c[n>>2]|0)-2<<2);c[M>>2]=c[(c[o>>2]|0)+4>>2];c[N>>2]=c[c[o>>2]>>2];c[J>>2]=c[(c[k>>2]|0)+4>>2];c[K>>2]=c[c[k>>2]>>2];do if((c[J>>2]|0)>>>0>=(c[M>>2]|0)>>>0){if((c[J>>2]|0)>>>0<=(c[M>>2]|0)>>>0?(c[K>>2]|0)>>>0<(c[N>>2]|0)>>>0:0)break;c[O>>2]=(c[K>>2]|0)-(c[N>>2]|0);c[J>>2]=(c[J>>2]|0)-(c[M>>2]|0)-((c[O>>2]|0)>>>0>(c[K>>2]|0)>>>0&1);c[K>>2]=c[O>>2];c[q>>2]=1}while(0);c[I>>2]=(c[j>>2]|0)+(c[n>>2]|0)-2-1;while(1){if((c[I>>2]|0)<0)break;O=c[k>>2]|0;if((c[I>>2]|0)>=(c[j>>2]|0))c[k>>2]=O+-4;else c[O>>2]=0;do if((c[J>>2]|0)==(c[M>>2]|0)){c[P>>2]=-1;c[Q>>2]=(c[K>>2]|0)+(c[M>>2]|0);if((c[Q>>2]|0)>>>0<(c[M>>2]|0)>>>0){c[R>>2]=(c[c[k>>2]>>2]|0)+(c[N>>2]|0);c[J>>2]=(c[Q>>2]|0)-(c[N>>2]|0)+0+((c[R>>2]|0)>>>0<(c[c[k>>2]>>2]|0)>>>0&1);c[K>>2]=c[R>>2];c[(c[i>>2]|0)+(c[I>>2]<<2)>>2]=c[P>>2];break}else{c[J>>2]=(c[N>>2]|0)-(c[N>>2]|0?1:0);c[K>>2]=0-(c[N>>2]|0);Na=52;break}}else{c[T>>2]=(c[M>>2]|0)>>>16;c[U>>2]=c[M>>2]&65535;c[X>>2]=((c[J>>2]|0)>>>0)%((c[T>>2]|0)>>>0)|0;c[V>>2]=((c[J>>2]|0)>>>0)/((c[T>>2]|0)>>>0)|0;c[Z>>2]=S(c[V>>2]|0,c[U>>2]|0)|0;c[X>>2]=c[X>>2]<<16|(c[K>>2]|0)>>>16;if(((c[X>>2]|0)>>>0<(c[Z>>2]|0)>>>0?(c[V>>2]=(c[V>>2]|0)+-1,c[X>>2]=(c[X>>2]|0)+(c[M>>2]|0),(c[X>>2]|0)>>>0>=(c[M>>2]|0)>>>0):0)?(c[X>>2]|0)>>>0<(c[Z>>2]|0)>>>0:0){c[V>>2]=(c[V>>2]|0)+-1;c[X>>2]=(c[X>>2]|0)+(c[M>>2]|0)}c[X>>2]=(c[X>>2]|0)-(c[Z>>2]|0);c[Y>>2]=((c[X>>2]|0)>>>0)%((c[T>>2]|0)>>>0)|0;c[W>>2]=((c[X>>2]|0)>>>0)/((c[T>>2]|0)>>>0)|0;c[Z>>2]=S(c[W>>2]|0,c[U>>2]|0)|0;c[Y>>2]=c[Y>>2]<<16|c[K>>2]&65535;if(((c[Y>>2]|0)>>>0<(c[Z>>2]|0)>>>0?(c[W>>2]=(c[W>>2]|0)+-1,c[Y>>2]=(c[Y>>2]|0)+(c[M>>2]|0),(c[Y>>2]|0)>>>0>=(c[M>>2]|0)>>>0):0)?(c[Y>>2]|0)>>>0<(c[Z>>2]|0)>>>0:0){c[W>>2]=(c[W>>2]|0)+-1;c[Y>>2]=(c[Y>>2]|0)+(c[M>>2]|0)}c[Y>>2]=(c[Y>>2]|0)-(c[Z>>2]|0);c[P>>2]=c[V>>2]<<16|c[W>>2];c[Q>>2]=c[Y>>2];c[ha>>2]=c[N>>2];c[ia>>2]=c[P>>2];c[da>>2]=c[ha>>2]&65535;c[fa>>2]=(c[ha>>2]|0)>>>16;c[ea>>2]=c[ia>>2]&65535;c[ga>>2]=(c[ia>>2]|0)>>>16;c[_>>2]=S(c[da>>2]|0,c[ea>>2]|0)|0;c[aa>>2]=S(c[da>>2]|0,c[ga>>2]|0)|0;c[ba>>2]=S(c[fa>>2]|0,c[ea>>2]|0)|0;c[ca>>2]=S(c[fa>>2]|0,c[ga>>2]|0)|0;c[aa>>2]=(c[aa>>2]|0)+((c[_>>2]|0)>>>16);c[aa>>2]=(c[aa>>2]|0)+(c[ba>>2]|0);if((c[aa>>2]|0)>>>0<(c[ba>>2]|0)>>>0)c[ca>>2]=(c[ca>>2]|0)+65536;c[J>>2]=(c[ca>>2]|0)+((c[aa>>2]|0)>>>16);c[K>>2]=((c[aa>>2]&65535)<<16)+(c[_>>2]&65535);Na=52}while(0);if((Na|0)==52){Na=0;c[L>>2]=c[c[k>>2]>>2];do{if((c[J>>2]|0)>>>0<=(c[Q>>2]|0)>>>0){if((c[J>>2]|0)!=(c[Q>>2]|0))break;if((c[K>>2]|0)>>>0<=(c[L>>2]|0)>>>0)break}c[P>>2]=(c[P>>2]|0)+-1;c[ja>>2]=(c[K>>2]|0)-(c[N>>2]|0);c[J>>2]=(c[J>>2]|0)-0-((c[ja>>2]|0)>>>0>(c[K>>2]|0)>>>0&1);c[K>>2]=c[ja>>2];c[Q>>2]=(c[Q>>2]|0)+(c[M>>2]|0)}while((c[Q>>2]|0)>>>0>=(c[M>>2]|0)>>>0);c[(c[i>>2]|0)+(c[I>>2]<<2)>>2]=c[P>>2];c[ka>>2]=(c[L>>2]|0)-(c[K>>2]|0);c[J>>2]=(c[Q>>2]|0)-(c[J>>2]|0)-((c[ka>>2]|0)>>>0>(c[L>>2]|0)>>>0&1);c[K>>2]=c[ka>>2]}c[I>>2]=(c[I>>2]|0)+-1}c[(c[k>>2]|0)+4>>2]=c[J>>2];c[c[k>>2]>>2]=c[K>>2];Ma=c[q>>2]|0;l=h;return Ma|0}default:{c[k>>2]=(c[k>>2]|0)+((c[n>>2]|0)-(c[p>>2]|0)<<2);c[ma>>2]=c[(c[o>>2]|0)+((c[p>>2]|0)-1<<2)>>2];c[na>>2]=c[(c[o>>2]|0)+((c[p>>2]|0)-2<<2)>>2];c[oa>>2]=c[(c[k>>2]|0)+((c[p>>2]|0)-1<<2)>>2];do if((c[oa>>2]|0)>>>0>=(c[ma>>2]|0)>>>0){if((c[oa>>2]|0)>>>0<=(c[ma>>2]|0)>>>0?(Ko(c[k>>2]|0,c[o>>2]|0,(c[p>>2]|0)-1|0)|0)<0:0)break;rp(c[k>>2]|0,c[k>>2]|0,c[o>>2]|0,c[p>>2]|0)|0;c[oa>>2]=c[(c[k>>2]|0)+((c[p>>2]|0)-1<<2)>>2];c[q>>2]=1}while(0);c[la>>2]=(c[j>>2]|0)+(c[n>>2]|0)-(c[p>>2]|0)-1;while(1){if((c[la>>2]|0)<0)break;if((c[la>>2]|0)>=(c[j>>2]|0)){c[k>>2]=(c[k>>2]|0)+-4;c[ra>>2]=c[(c[k>>2]|0)+(c[p>>2]<<2)>>2]}else{c[ra>>2]=c[(c[k>>2]|0)+((c[p>>2]|0)-1<<2)>>2];c[ta>>2]=(c[p>>2]|0)-1-1;while(1){if((c[ta>>2]|0)<0)break;c[(c[k>>2]|0)+4+(c[ta>>2]<<2)>>2]=c[(c[k>>2]|0)+(c[ta>>2]<<2)>>2];c[ta>>2]=(c[ta>>2]|0)+-1}c[c[k>>2]>>2]=0}a:do if((c[oa>>2]|0)==(c[ma>>2]|0))c[pa>>2]=-1;else{c[va>>2]=(c[ma>>2]|0)>>>16;c[wa>>2]=c[ma>>2]&65535;c[za>>2]=((c[oa>>2]|0)>>>0)%((c[va>>2]|0)>>>0)|0;c[xa>>2]=((c[oa>>2]|0)>>>0)/((c[va>>2]|0)>>>0)|0;c[Ba>>2]=S(c[xa>>2]|0,c[wa>>2]|0)|0;c[za>>2]=c[za>>2]<<16|(c[(c[k>>2]|0)+((c[p>>2]|0)-1<<2)>>2]|0)>>>16;if(((c[za>>2]|0)>>>0<(c[Ba>>2]|0)>>>0?(c[xa>>2]=(c[xa>>2]|0)+-1,c[za>>2]=(c[za>>2]|0)+(c[ma>>2]|0),(c[za>>2]|0)>>>0>=(c[ma>>2]|0)>>>0):0)?(c[za>>2]|0)>>>0<(c[Ba>>2]|0)>>>0:0){c[xa>>2]=(c[xa>>2]|0)+-1;c[za>>2]=(c[za>>2]|0)+(c[ma>>2]|0)}c[za>>2]=(c[za>>2]|0)-(c[Ba>>2]|0);c[Aa>>2]=((c[za>>2]|0)>>>0)%((c[va>>2]|0)>>>0)|0;c[ya>>2]=((c[za>>2]|0)>>>0)/((c[va>>2]|0)>>>0)|0;c[Ba>>2]=S(c[ya>>2]|0,c[wa>>2]|0)|0;c[Aa>>2]=c[Aa>>2]<<16|c[(c[k>>2]|0)+((c[p>>2]|0)-1<<2)>>2]&65535;if(((c[Aa>>2]|0)>>>0<(c[Ba>>2]|0)>>>0?(c[ya>>2]=(c[ya>>2]|0)+-1,c[Aa>>2]=(c[Aa>>2]|0)+(c[ma>>2]|0),(c[Aa>>2]|0)>>>0>=(c[ma>>2]|0)>>>0):0)?(c[Aa>>2]|0)>>>0<(c[Ba>>2]|0)>>>0:0){c[ya>>2]=(c[ya>>2]|0)+-1;c[Aa>>2]=(c[Aa>>2]|0)+(c[ma>>2]|0)}c[Aa>>2]=(c[Aa>>2]|0)-(c[Ba>>2]|0);c[pa>>2]=c[xa>>2]<<16|c[ya>>2];c[ua>>2]=c[Aa>>2];c[Ka>>2]=c[na>>2];c[La>>2]=c[pa>>2];c[Ga>>2]=c[Ka>>2]&65535;c[Ia>>2]=(c[Ka>>2]|0)>>>16;c[Ha>>2]=c[La>>2]&65535;c[Ja>>2]=(c[La>>2]|0)>>>16;c[Ca>>2]=S(c[Ga>>2]|0,c[Ha>>2]|0)|0;c[Da>>2]=S(c[Ga>>2]|0,c[Ja>>2]|0)|0;c[Ea>>2]=S(c[Ia>>2]|0,c[Ha>>2]|0)|0;c[Fa>>2]=S(c[Ia>>2]|0,c[Ja>>2]|0)|0;c[Da>>2]=(c[Da>>2]|0)+((c[Ca>>2]|0)>>>16);c[Da>>2]=(c[Da>>2]|0)+(c[Ea>>2]|0);if((c[Da>>2]|0)>>>0<(c[Ea>>2]|0)>>>0)c[Fa>>2]=(c[Fa>>2]|0)+65536;c[qa>>2]=(c[Fa>>2]|0)+((c[Da>>2]|0)>>>16);c[oa>>2]=((c[Da>>2]&65535)<<16)+(c[Ca>>2]&65535);while(1){if((c[qa>>2]|0)>>>0<=(c[ua>>2]|0)>>>0){if((c[qa>>2]|0)!=(c[ua>>2]|0))break a;if((c[oa>>2]|0)>>>0<=(c[(c[k>>2]|0)+((c[p>>2]|0)-2<<2)>>2]|0)>>>0)break a}c[pa>>2]=(c[pa>>2]|0)+-1;c[ua>>2]=(c[ua>>2]|0)+(c[ma>>2]|0);if((c[ua>>2]|0)>>>0<(c[ma>>2]|0)>>>0)break a;c[qa>>2]=(c[qa>>2]|0)-((c[oa>>2]|0)>>>0<(c[na>>2]|0)>>>0&1);c[oa>>2]=(c[oa>>2]|0)-(c[na>>2]|0)}}while(0);c[sa>>2]=kp(c[k>>2]|0,c[o>>2]|0,c[p>>2]|0,c[pa>>2]|0)|0;if((c[ra>>2]|0)!=(c[sa>>2]|0)){ep(c[k>>2]|0,c[k>>2]|0,c[o>>2]|0,c[p>>2]|0)|0;c[pa>>2]=(c[pa>>2]|0)+-1}c[(c[i>>2]|0)+(c[la>>2]<<2)>>2]=c[pa>>2];c[oa>>2]=c[(c[k>>2]|0)+((c[p>>2]|0)-1<<2)>>2];c[la>>2]=(c[la>>2]|0)+-1}Ma=c[q>>2]|0;l=h;return Ma|0}}return 0}function hp(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;g=l;l=l+144|0;if((l|0)>=(m|0))$(144);h=g+128|0;i=g+124|0;j=g+120|0;k=g+116|0;n=g+112|0;o=g+108|0;p=g+104|0;q=g+100|0;r=g+96|0;s=g+92|0;t=g+88|0;u=g+84|0;v=g+80|0;w=g+76|0;x=g+72|0;y=g+68|0;z=g+64|0;A=g+60|0;B=g+56|0;C=g+52|0;D=g+48|0;E=g+44|0;F=g+40|0;G=g+36|0;H=g+32|0;I=g+28|0;J=g+24|0;K=g+20|0;L=g+16|0;M=g+12|0;N=g+8|0;O=g+4|0;P=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=e;c[n>>2]=f;if(!(c[k>>2]|0)){c[h>>2]=0;Q=c[h>>2]|0;l=g;return Q|0}c[t>>2]=c[n>>2];f=c[t>>2]|0;c[u>>2]=(c[t>>2]|0)>>>0<65536?(f>>>0<256?0:8):f>>>0<16777216?16:24;c[s>>2]=32-((d[45848+((c[t>>2]|0)>>>(c[u>>2]|0))>>0]|0)+(c[u>>2]|0));if(!(c[s>>2]|0)){c[o>>2]=(c[k>>2]|0)-1;c[r>>2]=c[(c[j>>2]|0)+(c[o>>2]<<2)>>2];if((c[r>>2]|0)>>>0>=(c[n>>2]|0)>>>0)c[r>>2]=0;else{u=c[o>>2]|0;c[o>>2]=u+-1;c[(c[i>>2]|0)+(u<<2)>>2]=0}while(1){if((c[o>>2]|0)<0)break;c[q>>2]=c[(c[j>>2]|0)+(c[o>>2]<<2)>>2];c[J>>2]=(c[n>>2]|0)>>>16;c[K>>2]=c[n>>2]&65535;c[N>>2]=((c[r>>2]|0)>>>0)%((c[J>>2]|0)>>>0)|0;c[L>>2]=((c[r>>2]|0)>>>0)/((c[J>>2]|0)>>>0)|0;c[P>>2]=S(c[L>>2]|0,c[K>>2]|0)|0;c[N>>2]=c[N>>2]<<16|(c[q>>2]|0)>>>16;if(((c[N>>2]|0)>>>0<(c[P>>2]|0)>>>0?(c[L>>2]=(c[L>>2]|0)+-1,c[N>>2]=(c[N>>2]|0)+(c[n>>2]|0),(c[N>>2]|0)>>>0>=(c[n>>2]|0)>>>0):0)?(c[N>>2]|0)>>>0<(c[P>>2]|0)>>>0:0){c[L>>2]=(c[L>>2]|0)+-1;c[N>>2]=(c[N>>2]|0)+(c[n>>2]|0)}c[N>>2]=(c[N>>2]|0)-(c[P>>2]|0);c[O>>2]=((c[N>>2]|0)>>>0)%((c[J>>2]|0)>>>0)|0;c[M>>2]=((c[N>>2]|0)>>>0)/((c[J>>2]|0)>>>0)|0;c[P>>2]=S(c[M>>2]|0,c[K>>2]|0)|0;c[O>>2]=c[O>>2]<<16|c[q>>2]&65535;if(((c[O>>2]|0)>>>0<(c[P>>2]|0)>>>0?(c[M>>2]=(c[M>>2]|0)+-1,c[O>>2]=(c[O>>2]|0)+(c[n>>2]|0),(c[O>>2]|0)>>>0>=(c[n>>2]|0)>>>0):0)?(c[O>>2]|0)>>>0<(c[P>>2]|0)>>>0:0){c[M>>2]=(c[M>>2]|0)+-1;c[O>>2]=(c[O>>2]|0)+(c[n>>2]|0)}c[O>>2]=(c[O>>2]|0)-(c[P>>2]|0);c[(c[i>>2]|0)+(c[o>>2]<<2)>>2]=c[L>>2]<<16|c[M>>2];c[r>>2]=c[O>>2];c[o>>2]=(c[o>>2]|0)+-1}c[h>>2]=c[r>>2];Q=c[h>>2]|0;l=g;return Q|0}c[n>>2]=c[n>>2]<<c[s>>2];c[p>>2]=c[(c[j>>2]|0)+((c[k>>2]|0)-1<<2)>>2];c[r>>2]=(c[p>>2]|0)>>>(32-(c[s>>2]|0)|0);c[o>>2]=(c[k>>2]|0)-2;while(1){if((c[o>>2]|0)<0)break;c[q>>2]=c[(c[j>>2]|0)+(c[o>>2]<<2)>>2];c[v>>2]=(c[n>>2]|0)>>>16;c[w>>2]=c[n>>2]&65535;c[z>>2]=((c[r>>2]|0)>>>0)%((c[v>>2]|0)>>>0)|0;c[x>>2]=((c[r>>2]|0)>>>0)/((c[v>>2]|0)>>>0)|0;c[B>>2]=S(c[x>>2]|0,c[w>>2]|0)|0;c[z>>2]=c[z>>2]<<16|(c[p>>2]<<c[s>>2]|(c[q>>2]|0)>>>(32-(c[s>>2]|0)|0))>>>16;if(((c[z>>2]|0)>>>0<(c[B>>2]|0)>>>0?(c[x>>2]=(c[x>>2]|0)+-1,c[z>>2]=(c[z>>2]|0)+(c[n>>2]|0),(c[z>>2]|0)>>>0>=(c[n>>2]|0)>>>0):0)?(c[z>>2]|0)>>>0<(c[B>>2]|0)>>>0:0){c[x>>2]=(c[x>>2]|0)+-1;c[z>>2]=(c[z>>2]|0)+(c[n>>2]|0)}c[z>>2]=(c[z>>2]|0)-(c[B>>2]|0);c[A>>2]=((c[z>>2]|0)>>>0)%((c[v>>2]|0)>>>0)|0;c[y>>2]=((c[z>>2]|0)>>>0)/((c[v>>2]|0)>>>0)|0;c[B>>2]=S(c[y>>2]|0,c[w>>2]|0)|0;c[A>>2]=c[A>>2]<<16|(c[p>>2]<<c[s>>2]|(c[q>>2]|0)>>>(32-(c[s>>2]|0)|0))&65535;if(((c[A>>2]|0)>>>0<(c[B>>2]|0)>>>0?(c[y>>2]=(c[y>>2]|0)+-1,c[A>>2]=(c[A>>2]|0)+(c[n>>2]|0),(c[A>>2]|0)>>>0>=(c[n>>2]|0)>>>0):0)?(c[A>>2]|0)>>>0<(c[B>>2]|0)>>>0:0){c[y>>2]=(c[y>>2]|0)+-1;c[A>>2]=(c[A>>2]|0)+(c[n>>2]|0)}c[A>>2]=(c[A>>2]|0)-(c[B>>2]|0);c[(c[i>>2]|0)+((c[o>>2]|0)+1<<2)>>2]=c[x>>2]<<16|c[y>>2];c[r>>2]=c[A>>2];c[p>>2]=c[q>>2];c[o>>2]=(c[o>>2]|0)+-1}c[C>>2]=(c[n>>2]|0)>>>16;c[D>>2]=c[n>>2]&65535;c[G>>2]=((c[r>>2]|0)>>>0)%((c[C>>2]|0)>>>0)|0;c[E>>2]=((c[r>>2]|0)>>>0)/((c[C>>2]|0)>>>0)|0;c[I>>2]=S(c[E>>2]|0,c[D>>2]|0)|0;c[G>>2]=c[G>>2]<<16|c[p>>2]<<c[s>>2]>>>16;if(((c[G>>2]|0)>>>0<(c[I>>2]|0)>>>0?(c[E>>2]=(c[E>>2]|0)+-1,c[G>>2]=(c[G>>2]|0)+(c[n>>2]|0),(c[G>>2]|0)>>>0>=(c[n>>2]|0)>>>0):0)?(c[G>>2]|0)>>>0<(c[I>>2]|0)>>>0:0){c[E>>2]=(c[E>>2]|0)+-1;c[G>>2]=(c[G>>2]|0)+(c[n>>2]|0)}c[G>>2]=(c[G>>2]|0)-(c[I>>2]|0);c[H>>2]=((c[G>>2]|0)>>>0)%((c[C>>2]|0)>>>0)|0;c[F>>2]=((c[G>>2]|0)>>>0)/((c[C>>2]|0)>>>0)|0;c[I>>2]=S(c[F>>2]|0,c[D>>2]|0)|0;c[H>>2]=c[H>>2]<<16|c[p>>2]<<c[s>>2]&65535;if(((c[H>>2]|0)>>>0<(c[I>>2]|0)>>>0?(c[F>>2]=(c[F>>2]|0)+-1,c[H>>2]=(c[H>>2]|0)+(c[n>>2]|0),(c[H>>2]|0)>>>0>=(c[n>>2]|0)>>>0):0)?(c[H>>2]|0)>>>0<(c[I>>2]|0)>>>0:0){c[F>>2]=(c[F>>2]|0)+-1;c[H>>2]=(c[H>>2]|0)+(c[n>>2]|0)}c[H>>2]=(c[H>>2]|0)-(c[I>>2]|0);c[c[i>>2]>>2]=c[E>>2]<<16|c[F>>2];c[r>>2]=c[H>>2];c[h>>2]=(c[r>>2]|0)>>>(c[s>>2]|0);Q=c[h>>2]|0;l=g;return Q|0}function ip(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0;f=l;l=l+48|0;if((l|0)>=(m|0))$(48);g=f+36|0;h=f+32|0;i=f+28|0;j=f+24|0;k=f+20|0;n=f+16|0;o=f+12|0;p=f+8|0;q=f+4|0;r=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[o>>2]=c[j>>2];c[g>>2]=(c[g>>2]|0)+4;c[p>>2]=32-(c[o>>2]|0);c[q>>2]=(c[i>>2]|0)-1;c[n>>2]=c[(c[h>>2]|0)+(c[q>>2]<<2)>>2];c[r>>2]=(c[n>>2]|0)>>>(c[p>>2]|0);c[k>>2]=c[n>>2];while(1){i=(c[q>>2]|0)+-1|0;c[q>>2]=i;if((i|0)<0)break;c[n>>2]=c[(c[h>>2]|0)+(c[q>>2]<<2)>>2];c[(c[g>>2]|0)+(c[q>>2]<<2)>>2]=c[k>>2]<<c[o>>2]|(c[n>>2]|0)>>>(c[p>>2]|0);c[k>>2]=c[n>>2]}c[(c[g>>2]|0)+(c[q>>2]<<2)>>2]=c[k>>2]<<c[o>>2];l=f;return c[r>>2]|0}function jp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;f=l;l=l+80|0;if((l|0)>=(m|0))$(80);g=f+68|0;h=f+64|0;i=f+60|0;j=f+56|0;k=f+52|0;n=f+48|0;o=f+44|0;p=f+40|0;q=f+36|0;r=f+32|0;s=f+28|0;t=f+24|0;u=f+20|0;v=f+16|0;w=f+12|0;x=f+8|0;y=f+4|0;z=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[n>>2]=0-(c[i>>2]|0);c[h>>2]=(c[h>>2]|0)+(0-(c[n>>2]|0)<<2);c[g>>2]=(c[g>>2]|0)+(0-(c[n>>2]|0)<<2);c[k>>2]=0;do{c[y>>2]=c[(c[h>>2]|0)+(c[n>>2]<<2)>>2];c[z>>2]=c[j>>2];c[u>>2]=c[y>>2]&65535;c[w>>2]=(c[y>>2]|0)>>>16;c[v>>2]=c[z>>2]&65535;c[x>>2]=(c[z>>2]|0)>>>16;c[q>>2]=S(c[u>>2]|0,c[v>>2]|0)|0;c[r>>2]=S(c[u>>2]|0,c[x>>2]|0)|0;c[s>>2]=S(c[w>>2]|0,c[v>>2]|0)|0;c[t>>2]=S(c[w>>2]|0,c[x>>2]|0)|0;c[r>>2]=(c[r>>2]|0)+((c[q>>2]|0)>>>16);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);if((c[r>>2]|0)>>>0<(c[s>>2]|0)>>>0)c[t>>2]=(c[t>>2]|0)+65536;c[o>>2]=(c[t>>2]|0)+((c[r>>2]|0)>>>16);c[p>>2]=((c[r>>2]&65535)<<16)+(c[q>>2]&65535);c[p>>2]=(c[p>>2]|0)+(c[k>>2]|0);c[k>>2]=((c[p>>2]|0)>>>0<(c[k>>2]|0)>>>0?1:0)+(c[o>>2]|0);c[(c[g>>2]|0)+(c[n>>2]<<2)>>2]=c[p>>2];i=(c[n>>2]|0)+1|0;c[n>>2]=i}while((i|0)!=0);l=f;return c[k>>2]|0}function kp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;f=l;l=l+80|0;if((l|0)>=(m|0))$(80);g=f+72|0;h=f+68|0;i=f+64|0;j=f+60|0;k=f+56|0;n=f+52|0;o=f+48|0;p=f+44|0;q=f+40|0;r=f+36|0;s=f+32|0;t=f+28|0;u=f+24|0;v=f+20|0;w=f+16|0;x=f+12|0;y=f+8|0;z=f+4|0;A=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[n>>2]=0-(c[i>>2]|0);c[g>>2]=(c[g>>2]|0)+(0-(c[n>>2]|0)<<2);c[h>>2]=(c[h>>2]|0)+(0-(c[n>>2]|0)<<2);c[k>>2]=0;do{c[z>>2]=c[(c[h>>2]|0)+(c[n>>2]<<2)>>2];c[A>>2]=c[j>>2];c[v>>2]=c[z>>2]&65535;c[x>>2]=(c[z>>2]|0)>>>16;c[w>>2]=c[A>>2]&65535;c[y>>2]=(c[A>>2]|0)>>>16;c[r>>2]=S(c[v>>2]|0,c[w>>2]|0)|0;c[s>>2]=S(c[v>>2]|0,c[y>>2]|0)|0;c[t>>2]=S(c[x>>2]|0,c[w>>2]|0)|0;c[u>>2]=S(c[x>>2]|0,c[y>>2]|0)|0;c[s>>2]=(c[s>>2]|0)+((c[r>>2]|0)>>>16);c[s>>2]=(c[s>>2]|0)+(c[t>>2]|0);if((c[s>>2]|0)>>>0<(c[t>>2]|0)>>>0)c[u>>2]=(c[u>>2]|0)+65536;c[o>>2]=(c[u>>2]|0)+((c[s>>2]|0)>>>16);c[p>>2]=((c[s>>2]&65535)<<16)+(c[r>>2]&65535);c[p>>2]=(c[p>>2]|0)+(c[k>>2]|0);c[k>>2]=((c[p>>2]|0)>>>0<(c[k>>2]|0)>>>0?1:0)+(c[o>>2]|0);c[q>>2]=c[(c[g>>2]|0)+(c[n>>2]<<2)>>2];c[p>>2]=(c[q>>2]|0)-(c[p>>2]|0);c[k>>2]=(c[k>>2]|0)+((c[p>>2]|0)>>>0>(c[q>>2]|0)>>>0?1:0);c[(c[g>>2]|0)+(c[n>>2]<<2)>>2]=c[p>>2];i=(c[n>>2]|0)+1|0;c[n>>2]=i}while((i|0)!=0);l=f;return c[k>>2]|0}function lp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;f=l;l=l+48|0;if((l|0)>=(m|0))$(48);g=f+32|0;h=f+28|0;i=f+24|0;j=f+20|0;k=f+16|0;n=f+12|0;o=f+8|0;p=f+4|0;q=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[o>>2]=c[c[i>>2]>>2];if((c[o>>2]|0)>>>0<=1){a:do if((c[o>>2]|0)==1){c[p>>2]=0;while(1){if((c[p>>2]|0)>=(c[j>>2]|0))break a;c[(c[g>>2]|0)+(c[p>>2]<<2)>>2]=c[(c[h>>2]|0)+(c[p>>2]<<2)>>2];c[p>>2]=(c[p>>2]|0)+1}}else{c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[j>>2]|0))break a;c[(c[g>>2]|0)+(c[q>>2]<<2)>>2]=0;c[q>>2]=(c[q>>2]|0)+1}}while(0);c[n>>2]=0}else c[n>>2]=jp(c[g>>2]|0,c[h>>2]|0,c[j>>2]|0,c[o>>2]|0)|0;c[(c[g>>2]|0)+(c[j>>2]<<2)>>2]=c[n>>2];c[g>>2]=(c[g>>2]|0)+4;c[k>>2]=1;while(1){if((c[k>>2]|0)>=(c[j>>2]|0))break;c[o>>2]=c[(c[i>>2]|0)+(c[k>>2]<<2)>>2];if((c[o>>2]|0)>>>0<=1){c[n>>2]=0;if((c[o>>2]|0)==1)c[n>>2]=ep(c[g>>2]|0,c[g>>2]|0,c[h>>2]|0,c[j>>2]|0)|0}else c[n>>2]=qt(c[g>>2]|0,c[h>>2]|0,c[j>>2]|0,c[o>>2]|0)|0;c[(c[g>>2]|0)+(c[j>>2]<<2)>>2]=c[n>>2];c[g>>2]=(c[g>>2]|0)+4;c[k>>2]=(c[k>>2]|0)+1}l=f;return c[n>>2]|0}function mp(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;g=l;l=l+48|0;if((l|0)>=(m|0))$(48);h=g+44|0;i=g+40|0;j=g+36|0;k=g+32|0;n=g+28|0;o=g+24|0;p=g+20|0;q=g+16|0;r=g+12|0;s=g+8|0;t=g+4|0;u=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[n>>2]=f;f=c[k>>2]|0;if(c[k>>2]&1|0){c[o>>2]=f-1;e=c[h>>2]|0;d=c[i>>2]|0;b=c[j>>2]|0;a=c[o>>2]|0;if((c[o>>2]|0)<16)lp(e,d,b,a)|0;else mp(e,d,b,a,c[n>>2]|0);c[p>>2]=qt((c[h>>2]|0)+(c[o>>2]<<2)|0,c[i>>2]|0,c[o>>2]|0,c[(c[j>>2]|0)+(c[o>>2]<<2)>>2]|0)|0;c[(c[h>>2]|0)+((c[o>>2]|0)+(c[o>>2]|0)<<2)>>2]=c[p>>2];c[p>>2]=qt((c[h>>2]|0)+(c[o>>2]<<2)|0,c[j>>2]|0,c[k>>2]|0,c[(c[i>>2]|0)+(c[o>>2]<<2)>>2]|0)|0;c[(c[h>>2]|0)+((c[o>>2]|0)+(c[k>>2]|0)<<2)>>2]=c[p>>2];l=g;return}c[q>>2]=f>>1;f=(c[h>>2]|0)+(c[k>>2]<<2)|0;p=(c[i>>2]|0)+(c[q>>2]<<2)|0;o=(c[j>>2]|0)+(c[q>>2]<<2)|0;a=c[q>>2]|0;if((c[q>>2]|0)<16)lp(f,p,o,a)|0;else mp(f,p,o,a,c[n>>2]|0);a=(Ko((c[i>>2]|0)+(c[q>>2]<<2)|0,c[i>>2]|0,c[q>>2]|0)|0)>=0;o=c[h>>2]|0;p=c[i>>2]|0;if(a){rp(o,p+(c[q>>2]<<2)|0,c[i>>2]|0,c[q>>2]|0)|0;c[s>>2]=0}else{rp(o,p,(c[i>>2]|0)+(c[q>>2]<<2)|0,c[q>>2]|0)|0;c[s>>2]=1}p=(Ko((c[j>>2]|0)+(c[q>>2]<<2)|0,c[j>>2]|0,c[q>>2]|0)|0)>=0;o=(c[h>>2]|0)+(c[q>>2]<<2)|0;a=c[j>>2]|0;if(p){rp(o,a+(c[q>>2]<<2)|0,c[j>>2]|0,c[q>>2]|0)|0;c[s>>2]=c[s>>2]^1}else rp(o,a,(c[j>>2]|0)+(c[q>>2]<<2)|0,c[q>>2]|0)|0;a=c[n>>2]|0;o=c[h>>2]|0;p=(c[h>>2]|0)+(c[q>>2]<<2)|0;f=c[q>>2]|0;if((c[q>>2]|0)<16)lp(a,o,p,f)|0;else mp(a,o,p,f,(c[n>>2]|0)+(c[k>>2]<<2)|0);c[t>>2]=0;while(1){if((c[t>>2]|0)>=(c[q>>2]|0))break;c[(c[h>>2]|0)+(c[q>>2]<<2)+(c[t>>2]<<2)>>2]=c[(c[h>>2]|0)+(c[k>>2]<<2)+(c[t>>2]<<2)>>2];c[t>>2]=(c[t>>2]|0)+1}c[r>>2]=ep((c[h>>2]|0)+(c[k>>2]<<2)|0,(c[h>>2]|0)+(c[k>>2]<<2)|0,(c[h>>2]|0)+(c[k>>2]<<2)+(c[q>>2]<<2)|0,c[q>>2]|0)|0;t=(c[h>>2]|0)+(c[q>>2]<<2)|0;f=(c[h>>2]|0)+(c[q>>2]<<2)|0;p=c[n>>2]|0;o=c[k>>2]|0;if(c[s>>2]|0){s=rp(t,f,p,o)|0;c[r>>2]=(c[r>>2]|0)-s}else{s=ep(t,f,p,o)|0;c[r>>2]=(c[r>>2]|0)+s}s=c[n>>2]|0;o=c[i>>2]|0;i=c[j>>2]|0;j=c[q>>2]|0;if((c[q>>2]|0)<16)lp(s,o,i,j)|0;else mp(s,o,i,j,(c[n>>2]|0)+(c[k>>2]<<2)|0);j=ep((c[h>>2]|0)+(c[q>>2]<<2)|0,(c[h>>2]|0)+(c[q>>2]<<2)|0,c[n>>2]|0,c[k>>2]|0)|0;c[r>>2]=(c[r>>2]|0)+j;if(c[r>>2]|0)Go((c[h>>2]|0)+(c[q>>2]<<2)+(c[k>>2]<<2)|0,(c[h>>2]|0)+(c[q>>2]<<2)+(c[k>>2]<<2)|0,c[q>>2]|0,c[r>>2]|0)|0;c[u>>2]=0;while(1){if((c[u>>2]|0)>=(c[q>>2]|0))break;c[(c[h>>2]|0)+(c[u>>2]<<2)>>2]=c[(c[n>>2]|0)+(c[u>>2]<<2)>>2];c[u>>2]=(c[u>>2]|0)+1}c[r>>2]=ep((c[h>>2]|0)+(c[q>>2]<<2)|0,(c[h>>2]|0)+(c[q>>2]<<2)|0,(c[n>>2]|0)+(c[q>>2]<<2)|0,c[q>>2]|0)|0;if(!(c[r>>2]|0)){l=g;return}Go((c[h>>2]|0)+(c[k>>2]<<2)|0,(c[h>>2]|0)+(c[k>>2]<<2)|0,c[k>>2]|0,1)|0;l=g;return}function np(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;h=l;l=l+32|0;if((l|0)>=(m|0))$(32);i=h+24|0;j=h+20|0;k=h+16|0;n=h+12|0;o=h+8|0;p=h+4|0;q=h;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;if(!(c[(c[p>>2]|0)+4>>2]|0?(c[(c[p>>2]|0)+12>>2]|0)>=(c[o>>2]|0):0)){if(c[(c[p>>2]|0)+4>>2]|0)yp(c[(c[p>>2]|0)+4>>2]|0,c[(c[p>>2]|0)+8>>2]|0);c[(c[p>>2]|0)+8>>2]=c[o>>2]<<1;g=c[o>>2]<<1;if(tf(c[j>>2]|0)|0)r=1;else r=(tf(c[n>>2]|0)|0)!=0;f=wp(g,r&1)|0;c[(c[p>>2]|0)+4>>2]=f;c[(c[p>>2]|0)+12>>2]=c[o>>2]}f=c[i>>2]|0;r=c[j>>2]|0;g=c[n>>2]|0;e=c[o>>2]|0;if((c[o>>2]|0)<16)lp(f,r,g,e)|0;else mp(f,r,g,e,c[(c[p>>2]|0)+4>>2]|0);c[i>>2]=(c[i>>2]|0)+(c[o>>2]<<2);c[j>>2]=(c[j>>2]|0)+(c[o>>2]<<2);c[k>>2]=(c[k>>2]|0)-(c[o>>2]|0);if((c[k>>2]|0)>=(c[o>>2]|0)){if(!(c[(c[p>>2]|0)+16>>2]|0?(c[(c[p>>2]|0)+24>>2]|0)>=(c[o>>2]|0):0)){if(c[(c[p>>2]|0)+16>>2]|0)yp(c[(c[p>>2]|0)+16>>2]|0,c[(c[p>>2]|0)+20>>2]|0);c[(c[p>>2]|0)+20>>2]=c[o>>2]<<1;e=c[o>>2]<<1;if(tf(c[j>>2]|0)|0)s=1;else s=(tf(c[n>>2]|0)|0)!=0;g=wp(e,s&1)|0;c[(c[p>>2]|0)+16>>2]=g;c[(c[p>>2]|0)+24>>2]=c[o>>2]}do{g=c[(c[p>>2]|0)+16>>2]|0;s=c[j>>2]|0;e=c[n>>2]|0;r=c[o>>2]|0;if((c[o>>2]|0)<16)lp(g,s,e,r)|0;else mp(g,s,e,r,c[(c[p>>2]|0)+4>>2]|0);c[q>>2]=ep(c[i>>2]|0,c[i>>2]|0,c[(c[p>>2]|0)+16>>2]|0,c[o>>2]|0)|0;Go((c[i>>2]|0)+(c[o>>2]<<2)|0,(c[(c[p>>2]|0)+16>>2]|0)+(c[o>>2]<<2)|0,c[o>>2]|0,c[q>>2]|0)|0;c[i>>2]=(c[i>>2]|0)+(c[o>>2]<<2);c[j>>2]=(c[j>>2]|0)+(c[o>>2]<<2);c[k>>2]=(c[k>>2]|0)-(c[o>>2]|0)}while((c[k>>2]|0)>=(c[o>>2]|0))}if(!(c[k>>2]|0)){l=h;return}r=c[p>>2]|0;if((c[k>>2]|0)<16)op(c[r+4>>2]|0,c[n>>2]|0,c[o>>2]|0,c[j>>2]|0,c[k>>2]|0)|0;else{if(!(c[r>>2]|0)){r=Cf(1,28)|0;c[c[p>>2]>>2]=r}np(c[(c[p>>2]|0)+4>>2]|0,c[n>>2]|0,c[o>>2]|0,c[j>>2]|0,c[k>>2]|0,c[c[p>>2]>>2]|0)}c[q>>2]=ep(c[i>>2]|0,c[i>>2]|0,c[(c[p>>2]|0)+4>>2]|0,c[o>>2]|0)|0;Go((c[i>>2]|0)+(c[o>>2]<<2)|0,(c[(c[p>>2]|0)+4>>2]|0)+(c[o>>2]<<2)|0,c[k>>2]|0,c[q>>2]|0)|0;l=h;return}function op(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;g=l;l=l+80|0;if((l|0)>=(m|0))$(80);h=g+72|0;i=g+68|0;j=g+64|0;k=g+60|0;n=g+56|0;o=g+52|0;p=g+48|0;q=g+44|0;r=g+16|0;s=g+12|0;t=g+8|0;u=g+4|0;v=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=(c[i>>2]|0)+(c[k>>2]<<2)+(c[o>>2]<<2)+-4;if((c[o>>2]|0)>=16){c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;c[r+12>>2]=0;c[r+16>>2]=0;c[r+20>>2]=0;c[r+24>>2]=0;np(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[n>>2]|0,c[o>>2]|0,r);pp(r);c[h>>2]=c[c[p>>2]>>2];w=c[h>>2]|0;l=g;return w|0}if(!(c[o>>2]|0)){c[h>>2]=0;w=c[h>>2]|0;l=g;return w|0}c[t>>2]=c[c[n>>2]>>2];if((c[t>>2]|0)>>>0<=1){a:do if((c[t>>2]|0)==1){c[u>>2]=0;while(1){if((c[u>>2]|0)>=(c[k>>2]|0))break a;c[(c[i>>2]|0)+(c[u>>2]<<2)>>2]=c[(c[j>>2]|0)+(c[u>>2]<<2)>>2];c[u>>2]=(c[u>>2]|0)+1}}else{c[v>>2]=0;while(1){if((c[v>>2]|0)>=(c[k>>2]|0))break a;c[(c[i>>2]|0)+(c[v>>2]<<2)>>2]=0;c[v>>2]=(c[v>>2]|0)+1}}while(0);c[q>>2]=0}else c[q>>2]=jp(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[t>>2]|0)|0;c[(c[i>>2]|0)+(c[k>>2]<<2)>>2]=c[q>>2];c[i>>2]=(c[i>>2]|0)+4;c[s>>2]=1;while(1){if((c[s>>2]|0)>=(c[o>>2]|0))break;c[t>>2]=c[(c[n>>2]|0)+(c[s>>2]<<2)>>2];if((c[t>>2]|0)>>>0<=1){c[q>>2]=0;if((c[t>>2]|0)==1)c[q>>2]=ep(c[i>>2]|0,c[i>>2]|0,c[j>>2]|0,c[k>>2]|0)|0}else c[q>>2]=qt(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[t>>2]|0)|0;c[(c[i>>2]|0)+(c[k>>2]<<2)>>2]=c[q>>2];c[i>>2]=(c[i>>2]|0)+4;c[s>>2]=(c[s>>2]|0)+1}c[h>>2]=c[q>>2];w=c[h>>2]|0;l=g;return w|0}function pp(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[d>>2]=a;if(c[(c[d>>2]|0)+16>>2]|0)yp(c[(c[d>>2]|0)+16>>2]|0,c[(c[d>>2]|0)+20>>2]|0);if(c[(c[d>>2]|0)+4>>2]|0)yp(c[(c[d>>2]|0)+4>>2]|0,c[(c[d>>2]|0)+8>>2]|0);c[d>>2]=c[c[d>>2]>>2];while(1){if(!(c[d>>2]|0))break;c[e>>2]=c[c[d>>2]>>2];if(c[(c[d>>2]|0)+16>>2]|0)yp(c[(c[d>>2]|0)+16>>2]|0,c[(c[d>>2]|0)+20>>2]|0);if(c[(c[d>>2]|0)+4>>2]|0)yp(c[(c[d>>2]|0)+4>>2]|0,c[(c[d>>2]|0)+8>>2]|0);vf(c[d>>2]|0);c[d>>2]=c[e>>2]}l=b;return}function qp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0;f=l;l=l+48|0;if((l|0)>=(m|0))$(48);g=f+36|0;h=f+32|0;i=f+28|0;j=f+24|0;k=f+20|0;n=f+16|0;o=f+12|0;p=f+8|0;q=f+4|0;r=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[o>>2]=c[j>>2];c[g>>2]=(c[g>>2]|0)+-4;c[p>>2]=32-(c[o>>2]|0);c[k>>2]=c[c[h>>2]>>2];c[r>>2]=c[k>>2]<<c[p>>2];c[n>>2]=c[k>>2];c[q>>2]=1;while(1){if((c[q>>2]|0)>=(c[i>>2]|0))break;c[k>>2]=c[(c[h>>2]|0)+(c[q>>2]<<2)>>2];c[(c[g>>2]|0)+(c[q>>2]<<2)>>2]=(c[n>>2]|0)>>>(c[o>>2]|0)|c[k>>2]<<c[p>>2];c[n>>2]=c[k>>2];c[q>>2]=(c[q>>2]|0)+1}c[(c[g>>2]|0)+(c[q>>2]<<2)>>2]=(c[n>>2]|0)>>>(c[o>>2]|0);l=f;return c[r>>2]|0}function rp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f+28|0;h=f+24|0;i=f+20|0;j=f+16|0;k=f+12|0;n=f+8|0;o=f+4|0;p=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[p>>2]=0-(c[j>>2]|0);c[h>>2]=(c[h>>2]|0)+(0-(c[p>>2]|0)<<2);c[i>>2]=(c[i>>2]|0)+(0-(c[p>>2]|0)<<2);c[g>>2]=(c[g>>2]|0)+(0-(c[p>>2]|0)<<2);c[o>>2]=0;do{c[n>>2]=c[(c[i>>2]|0)+(c[p>>2]<<2)>>2];c[k>>2]=c[(c[h>>2]|0)+(c[p>>2]<<2)>>2];c[n>>2]=(c[n>>2]|0)+(c[o>>2]|0);c[o>>2]=(c[n>>2]|0)>>>0<(c[o>>2]|0)>>>0&1;c[n>>2]=(c[k>>2]|0)-(c[n>>2]|0);c[o>>2]=(c[o>>2]|0)+((c[n>>2]|0)>>>0>(c[k>>2]|0)>>>0&1);c[(c[g>>2]|0)+(c[p>>2]<<2)>>2]=c[n>>2];j=(c[p>>2]|0)+1|0;c[p>>2]=j}while((j|0)!=0);l=f;return c[o>>2]|0}function sp(){return 46198}function tp(){var a=0,b=0,d=0,e=0,f=0,g=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=a;d=a+8|0;e=a+4|0;c[d>>2]=0;a:while(1){if((c[d>>2]|0)>=6){f=12;break}switch(c[d>>2]|0){case 0:{c[e>>2]=0;break}case 1:{c[e>>2]=1;break}case 2:{c[e>>2]=2;break}case 3:{c[e>>2]=3;break}case 4:{c[e>>2]=4;break}case 5:{c[e>>2]=8;break}default:{f=10;break a}}g=up(c[e>>2]|0)|0;c[71004+(c[d>>2]<<2)>>2]=g;c[(c[71004+(c[d>>2]<<2)>>2]|0)+12>>2]=48;c[d>>2]=(c[d>>2]|0)+1}if((f|0)==10){c[b>>2]=c[d>>2];Xe(46342,b)}else if((f|0)==12){l=a;return 0}return 0}function up(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=vp(1)|0;c[c[(c[e>>2]|0)+16>>2]>>2]=c[d>>2];c[(c[e>>2]|0)+4>>2]=c[d>>2]|0?1:0;c[(c[e>>2]|0)+8>>2]=0;l=b;return c[e>>2]|0}function vp(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=zf(20)|0;if(c[d>>2]|0)f=wp(c[d>>2]|0,0)|0;else f=0;c[(c[e>>2]|0)+16>>2]=f;c[c[e>>2]>>2]=c[d>>2];c[(c[e>>2]|0)+4>>2]=0;c[(c[e>>2]|0)+8>>2]=0;c[(c[e>>2]|0)+12>>2]=0;l=b;return c[e>>2]|0}function wp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+12|0;f=d+8|0;g=d+4|0;h=d;c[e>>2]=a;c[f>>2]=b;c[h>>2]=(c[e>>2]|0?c[e>>2]|0:1)<<2;b=c[h>>2]|0;if(c[f>>2]|0)i=Bf(b)|0;else i=zf(b)|0;c[g>>2]=i;if(c[e>>2]|0){j=c[g>>2]|0;l=d;return j|0}c[c[g>>2]>>2]=0;j=c[g>>2]|0;l=d;return j|0}function xp(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=zf(20)|0;if(c[d>>2]|0)f=wp(c[d>>2]|0,1)|0;else f=0;c[(c[e>>2]|0)+16>>2]=f;c[c[e>>2]>>2]=c[d>>2];c[(c[e>>2]|0)+12>>2]=1;c[(c[e>>2]|0)+4>>2]=0;c[(c[e>>2]|0)+8>>2]=0;l=b;return c[e>>2]|0}function yp(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;f=l;l=l+48|0;if((l|0)>=(m|0))$(48);g=f+28|0;h=f+24|0;i=f+20|0;j=f+16|0;k=f+12|0;n=f+32|0;o=f;p=f+8|0;c[g>>2]=b;c[h>>2]=e;if(!(c[g>>2]|0)){l=f;return}c[i>>2]=c[h>>2]<<2;a:do if(c[i>>2]|0){c[j>>2]=c[g>>2];c[k>>2]=c[i>>2];a[n>>0]=0;h=o;c[h>>2]=d[n>>0];c[h+4>>2]=0;while(1){if(!(c[j>>2]&7|0?(c[k>>2]|0)!=0:0))break;a[c[j>>2]>>0]=a[n>>0]|0;c[j>>2]=(c[j>>2]|0)+1;c[k>>2]=(c[k>>2]|0)+-1}if((c[k>>2]|0)>>>0>=8){h=o;e=gx(c[h>>2]|0,c[h+4>>2]|0,16843009,16843009)|0;h=o;c[h>>2]=e;c[h+4>>2]=D;do{c[p>>2]=c[j>>2];h=o;e=c[h+4>>2]|0;b=c[p>>2]|0;c[b>>2]=c[h>>2];c[b+4>>2]=e;c[k>>2]=(c[k>>2]|0)-8;c[j>>2]=(c[j>>2]|0)+8}while((c[k>>2]|0)>>>0>=8)}while(1){if(!(c[k>>2]|0))break a;a[c[j>>2]>>0]=a[n>>0]|0;c[j>>2]=(c[j>>2]|0)+1;c[k>>2]=(c[k>>2]|0)+-1}}while(0);vf(c[g>>2]|0);l=f;return}function zp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;yp(c[(c[f>>2]|0)+16>>2]|0,c[c[f>>2]>>2]|0);c[(c[f>>2]|0)+16>>2]=c[g>>2];c[c[f>>2]>>2]=c[h>>2];l=e;return}function Ap(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;b=c[e>>2]|0;if((c[f>>2]|0)>>>0<=(c[c[e>>2]>>2]|0)>>>0){c[g>>2]=c[b+4>>2];while(1){if((c[g>>2]|0)>>>0>=(c[c[e>>2]>>2]|0)>>>0)break;c[(c[(c[e>>2]|0)+16>>2]|0)+(c[g>>2]<<2)>>2]=0;c[g>>2]=(c[g>>2]|0)+1}l=d;return}a=c[e>>2]|0;a:do if(!(c[b+16>>2]|0)){h=c[f>>2]|0;if(c[a+12>>2]&1|0){i=Df(h,4)|0;c[(c[e>>2]|0)+16>>2]=i;break}else{i=Cf(h,4)|0;c[(c[e>>2]|0)+16>>2]=i;break}}else{i=Af(c[a+16>>2]|0,c[f>>2]<<2)|0;c[(c[e>>2]|0)+16>>2]=i;c[g>>2]=c[c[e>>2]>>2];while(1){if((c[g>>2]|0)>>>0>=(c[f>>2]|0)>>>0)break a;c[(c[(c[e>>2]|0)+16>>2]|0)+(c[g>>2]<<2)>>2]=0;c[g>>2]=(c[g>>2]|0)+1}}while(0);c[c[e>>2]>>2]=c[f>>2];l=d;return}function Bp(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;if(c[d>>2]|0?c[(c[d>>2]|0)+12>>2]&16|0:0){Cp();l=b;return}c[(c[d>>2]|0)+4>>2]=0;c[(c[d>>2]|0)+12>>2]=0;l=b;return}function Cp(){var a=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);Te(46373,a);l=a;return}function Dp(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;c[d>>2]=a;if(!(c[d>>2]|0)){l=b;return}if(c[(c[d>>2]|0)+12>>2]&32|0){l=b;return}a=c[(c[d>>2]|0)+16>>2]|0;if(c[(c[d>>2]|0)+12>>2]&4|0)vf(a);else yp(a,c[c[d>>2]>>2]|0);if(c[(c[d>>2]|0)+12>>2]&-3864|0)Xe(46417,b);vf(c[d>>2]|0);l=b;return}function Ep(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;if(!(c[g>>2]|0))c[g>>2]=vp(0)|0;if(c[g>>2]|0?c[(c[g>>2]|0)+12>>2]&16|0:0){Cp();c[f>>2]=c[g>>2];j=c[f>>2]|0;l=e;return j|0}d=c[(c[g>>2]|0)+16>>2]|0;if(c[(c[g>>2]|0)+12>>2]&4|0)vf(d);else yp(d,c[c[g>>2]>>2]|0);c[(c[g>>2]|0)+16>>2]=c[h>>2];c[c[g>>2]>>2]=0;c[(c[g>>2]|0)+4>>2]=0;c[(c[g>>2]|0)+8>>2]=c[i>>2];c[(c[g>>2]|0)+12>>2]=4|c[(c[g>>2]|0)+12>>2]&3840;if(tf(c[(c[g>>2]|0)+16>>2]|0)|0){i=(c[g>>2]|0)+12|0;c[i>>2]=c[i>>2]|1}c[f>>2]=c[g>>2];j=c[f>>2]|0;l=e;return j|0}function Fp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[k>>2]=(((c[i>>2]|0)+7|0)>>>0)/8|0;d=(tf(c[h>>2]|0)|0)!=0;b=c[k>>2]|0;if(d)n=sf(b)|0;else n=pf(b)|0;c[j>>2]=n;if(c[j>>2]|0){_w(c[j>>2]|0,c[h>>2]|0,c[k>>2]|0)|0;c[f>>2]=Ep(c[g>>2]|0,c[j>>2]|0,c[i>>2]|0)|0;o=c[f>>2]|0;l=e;return o|0}else{c[f>>2]=0;o=c[f>>2]|0;l=e;return o|0}return 0}function Gp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+8|0;f=d+4|0;c[e>>2]=a;c[f>>2]=b;if(!(c[(c[e>>2]|0)+12>>2]&4))Xe(46449,d);if(c[f>>2]|0)c[c[f>>2]>>2]=c[(c[e>>2]|0)+8>>2];l=d;return c[(c[e>>2]|0)+16>>2]|0}function Hp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+20|0;f=d+16|0;g=d+12|0;h=d+8|0;i=d+4|0;j=d;c[f>>2]=a;c[g>>2]=b;c[h>>2]=Gp(c[f>>2]|0,c[g>>2]|0)|0;if((c[h>>2]|0)==0&(c[g>>2]|0)!=0){c[e>>2]=0;k=c[e>>2]|0;l=d;return k|0}c[j>>2]=(((c[c[g>>2]>>2]|0)+7|0)>>>0)/8|0;g=(tf(c[h>>2]|0)|0)!=0;f=c[j>>2]|0;if(g)n=sf(f)|0;else n=pf(f)|0;c[i>>2]=n;if(c[i>>2]|0)_w(c[i>>2]|0,c[h>>2]|0,c[j>>2]|0)|0;c[e>>2]=c[i>>2];k=c[e>>2]|0;l=d;return k|0}function Ip(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+12|0;e=b+8|0;f=b+4|0;g=b;c[d>>2]=a;if(c[d>>2]|0?c[(c[d>>2]|0)+12>>2]&4|0:0){a=(tf(c[(c[d>>2]|0)+16>>2]|0)|0)!=0;h=((c[(c[d>>2]|0)+8>>2]|0)+7|0)/8|0;if(a)i=Bf(h)|0;else i=zf(h)|0;c[g>>2]=i;if(c[(c[d>>2]|0)+16>>2]|0)_w(c[g>>2]|0,c[(c[d>>2]|0)+16>>2]|0,((c[(c[d>>2]|0)+8>>2]|0)+7|0)/8|0|0)|0;c[f>>2]=Ep(0,c[g>>2]|0,c[(c[d>>2]|0)+8>>2]|0)|0;g=(c[f>>2]|0)+12|0;c[g>>2]=c[g>>2]&-49;j=c[f>>2]|0;l=b;return j|0}if(!(c[d>>2]|0)){c[f>>2]=0;j=c[f>>2]|0;l=b;return j|0}if(c[d>>2]|0?c[(c[d>>2]|0)+12>>2]&1|0:0)k=xp(c[(c[d>>2]|0)+4>>2]|0)|0;else k=vp(c[(c[d>>2]|0)+4>>2]|0)|0;c[f>>2]=k;c[(c[f>>2]|0)+4>>2]=c[(c[d>>2]|0)+4>>2];c[(c[f>>2]|0)+8>>2]=c[(c[d>>2]|0)+8>>2];c[(c[f>>2]|0)+12>>2]=c[(c[d>>2]|0)+12>>2];k=(c[f>>2]|0)+12|0;c[k>>2]=c[k>>2]&-49;c[e>>2]=0;while(1){if((c[e>>2]|0)>=(c[(c[f>>2]|0)+4>>2]|0))break;c[(c[(c[f>>2]|0)+16>>2]|0)+(c[e>>2]<<2)>>2]=c[(c[(c[d>>2]|0)+16>>2]|0)+(c[e>>2]<<2)>>2];c[e>>2]=(c[e>>2]|0)+1}j=c[f>>2]|0;l=b;return j|0}function Jp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=c[e>>2]|0;if((c[e>>2]|0)==(c[f>>2]|0)){if(b|0?c[(c[e>>2]|0)+12>>2]&16|0:0){Cp();l=d;return}}else Kp(b,c[f>>2]|0)|0;c[(c[e>>2]|0)+8>>2]=((c[(c[f>>2]|0)+8>>2]|0)!=0^1)&1;l=d;return}function Kp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+28|0;f=d+24|0;g=d+20|0;h=d+16|0;i=d+12|0;j=d+8|0;k=d+4|0;n=d;c[f>>2]=a;c[g>>2]=b;c[j>>2]=c[(c[g>>2]|0)+4>>2];c[k>>2]=c[(c[g>>2]|0)+8>>2];if(!(c[f>>2]|0))c[f>>2]=vp(c[(c[g>>2]|0)+4>>2]|0)|0;if(c[f>>2]|0?c[(c[f>>2]|0)+12>>2]&16|0:0){Cp();c[e>>2]=c[f>>2];o=c[e>>2]|0;l=d;return o|0}if((c[c[f>>2]>>2]|0)<(c[j>>2]|0))Ap(c[f>>2]|0,c[j>>2]|0);c[h>>2]=c[(c[f>>2]|0)+16>>2];c[i>>2]=c[(c[g>>2]|0)+16>>2];c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[j>>2]|0))break;c[(c[h>>2]|0)+(c[n>>2]<<2)>>2]=c[(c[i>>2]|0)+(c[n>>2]<<2)>>2];c[n>>2]=(c[n>>2]|0)+1}c[(c[f>>2]|0)+4>>2]=c[j>>2];c[(c[f>>2]|0)+12>>2]=c[(c[g>>2]|0)+12>>2];g=(c[f>>2]|0)+12|0;c[g>>2]=c[g>>2]&-49;c[(c[f>>2]|0)+8>>2]=c[k>>2];c[e>>2]=c[f>>2];o=c[e>>2]|0;l=d;return o|0}function Lp(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+12|0;e=b+8|0;f=b+4|0;g=b;c[d>>2]=a;if(c[d>>2]|0?c[(c[d>>2]|0)+12>>2]&4|0:0){c[f>>2]=((c[(c[d>>2]|0)+8>>2]|0)+7|0)/8|0;a=(tf(c[(c[d>>2]|0)+16>>2]|0)|0)!=0;h=c[f>>2]|0;if(a)i=sf(h)|0;else i=pf(h)|0;c[g>>2]=i;_w(c[g>>2]|0,c[(c[d>>2]|0)+16>>2]|0,c[f>>2]|0)|0;c[e>>2]=Ep(0,c[g>>2]|0,c[(c[d>>2]|0)+8>>2]|0)|0;j=c[e>>2]|0;l=b;return j|0}if(!(c[d>>2]|0)){c[e>>2]=0;j=c[e>>2]|0;l=b;return j|0}if(c[d>>2]|0?c[(c[d>>2]|0)+12>>2]&1|0:0)k=xp(c[(c[d>>2]|0)+4>>2]|0)|0;else k=vp(c[(c[d>>2]|0)+4>>2]|0)|0;c[e>>2]=k;c[(c[e>>2]|0)+4>>2]=0;c[(c[e>>2]|0)+8>>2]=0;c[(c[e>>2]|0)+12>>2]=c[(c[d>>2]|0)+12>>2];j=c[e>>2]|0;l=b;return j|0}function Mp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;if(c[e>>2]|0){if(c[e>>2]|0?c[(c[e>>2]|0)+12>>2]&16|0:0){Cp();l=d;return}zp(c[e>>2]|0,c[(c[f>>2]|0)+16>>2]|0,c[c[f>>2]>>2]|0);c[(c[e>>2]|0)+4>>2]=c[(c[f>>2]|0)+4>>2];c[(c[e>>2]|0)+8>>2]=c[(c[f>>2]|0)+8>>2];c[(c[e>>2]|0)+12>>2]=c[(c[f>>2]|0)+12>>2];c[c[f>>2]>>2]=0;c[(c[f>>2]|0)+4>>2]=0;c[(c[f>>2]|0)+16>>2]=0}Dp(c[f>>2]|0);l=d;return}function Np(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e+28|0;g=e+24|0;h=e+20|0;i=e+16|0;j=e+12|0;k=e+8|0;n=e+4|0;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[j>>2]=c[c[g>>2]>>2];c[k>>2]=0-(((c[h>>2]|0)!=0^1^1)&1);if((c[c[f>>2]>>2]|0)!=(c[c[g>>2]>>2]|0))Xe(46479,e);c[i>>2]=0;while(1){o=c[k>>2]|0;if((c[i>>2]|0)>=(c[j>>2]|0))break;c[n>>2]=o&(c[(c[(c[f>>2]|0)+16>>2]|0)+(c[i>>2]<<2)>>2]^c[(c[(c[g>>2]|0)+16>>2]|0)+(c[i>>2]<<2)>>2]);c[(c[(c[f>>2]|0)+16>>2]|0)+(c[i>>2]<<2)>>2]=c[(c[(c[f>>2]|0)+16>>2]|0)+(c[i>>2]<<2)>>2]^c[n>>2];c[i>>2]=(c[i>>2]|0)+1}c[n>>2]=o&(c[(c[f>>2]|0)+4>>2]^c[(c[g>>2]|0)+4>>2]);c[(c[f>>2]|0)+4>>2]=c[(c[f>>2]|0)+4>>2]^c[n>>2];c[n>>2]=c[k>>2]&(c[(c[f>>2]|0)+8>>2]^c[(c[g>>2]|0)+8>>2]);c[(c[f>>2]|0)+8>>2]=c[(c[f>>2]|0)+8>>2]^c[n>>2];l=e;return c[f>>2]|0}function Op(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+8|0;f=d+4|0;g=d;c[f>>2]=a;c[g>>2]=b;if(!(c[f>>2]|0))c[f>>2]=vp(1)|0;if(c[f>>2]|0?c[(c[f>>2]|0)+12>>2]&16|0:0){Cp();c[e>>2]=c[f>>2];h=c[e>>2]|0;l=d;return h|0}if((c[c[f>>2]>>2]|0)<1)Ap(c[f>>2]|0,1);c[c[(c[f>>2]|0)+16>>2]>>2]=c[g>>2];c[(c[f>>2]|0)+4>>2]=c[g>>2]|0?1:0;c[(c[f>>2]|0)+8>>2]=0;c[(c[f>>2]|0)+12>>2]=0;c[e>>2]=c[f>>2];h=c[e>>2]|0;l=d;return h|0}function Pp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+24|0;f=d+20|0;g=d;c[e>>2]=a;c[f>>2]=b;b=c[e>>2]|0;c[g>>2]=c[b>>2];c[g+4>>2]=c[b+4>>2];c[g+8>>2]=c[b+8>>2];c[g+12>>2]=c[b+12>>2];c[g+16>>2]=c[b+16>>2];b=c[e>>2]|0;e=c[f>>2]|0;c[b>>2]=c[e>>2];c[b+4>>2]=c[e+4>>2];c[b+8>>2]=c[e+8>>2];c[b+12>>2]=c[e+12>>2];c[b+16>>2]=c[e+16>>2];e=c[f>>2]|0;c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];c[e+8>>2]=c[g+8>>2];c[e+12>>2]=c[g+12>>2];c[e+16>>2]=c[g+16>>2];l=d;return}function Qp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e+28|0;g=e+24|0;h=e+20|0;i=e+16|0;j=e+12|0;k=e+8|0;n=e+4|0;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[j>>2]=c[c[f>>2]>>2];c[k>>2]=0-(((c[h>>2]|0)!=0^1^1)&1);if((c[c[f>>2]>>2]|0)!=(c[c[g>>2]>>2]|0))Xe(46510,e);c[i>>2]=0;while(1){o=c[k>>2]|0;if((c[i>>2]|0)>=(c[j>>2]|0))break;c[n>>2]=o&(c[(c[(c[f>>2]|0)+16>>2]|0)+(c[i>>2]<<2)>>2]^c[(c[(c[g>>2]|0)+16>>2]|0)+(c[i>>2]<<2)>>2]);c[(c[(c[f>>2]|0)+16>>2]|0)+(c[i>>2]<<2)>>2]=c[(c[(c[f>>2]|0)+16>>2]|0)+(c[i>>2]<<2)>>2]^c[n>>2];c[(c[(c[g>>2]|0)+16>>2]|0)+(c[i>>2]<<2)>>2]=c[(c[(c[g>>2]|0)+16>>2]|0)+(c[i>>2]<<2)>>2]^c[n>>2];c[i>>2]=(c[i>>2]|0)+1}c[n>>2]=o&(c[(c[f>>2]|0)+4>>2]^c[(c[g>>2]|0)+4>>2]);c[(c[f>>2]|0)+4>>2]=c[(c[f>>2]|0)+4>>2]^c[n>>2];c[(c[g>>2]|0)+4>>2]=c[(c[g>>2]|0)+4>>2]^c[n>>2];c[n>>2]=c[k>>2]&(c[(c[f>>2]|0)+8>>2]^c[(c[g>>2]|0)+8>>2]);c[(c[f>>2]|0)+8>>2]=c[(c[f>>2]|0)+8>>2]^c[n>>2];c[(c[g>>2]|0)+8>>2]=c[(c[g>>2]|0)+8>>2]^c[n>>2];l=e;return}function Rp(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=vp((((c[d>>2]|0)+32-1|0)>>>0)/32|0)|0;l=b;return a|0}function Sp(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=xp((((c[d>>2]|0)+32-1|0)>>>0)/32|0)|0;l=b;return a|0}function Tp(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;Dp(c[d>>2]|0);l=b;return}function Up(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;j=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[j>>2]=(((c[g>>2]|0)+7|0)>>>0)/8|0;if(c[f>>2]|0?c[(c[f>>2]|0)+12>>2]&16|0:0){Cp();l=e;return}g=(c[f>>2]|0)!=0;if(!(c[h>>2]|0)){if(g?c[(c[f>>2]|0)+12>>2]&1|0:0)k=Bf(c[j>>2]|0)|0;else k=zf(c[j>>2]|0)|0;c[i>>2]=k;nn(c[i>>2]|0,c[j>>2]|0)}else{if(g?c[(c[f>>2]|0)+12>>2]&1|0:0)n=hn(c[j>>2]|0,c[h>>2]|0)|0;else n=fn(c[j>>2]|0,c[h>>2]|0)|0;c[i>>2]=n}Yo(c[f>>2]|0,c[i>>2]|0,c[j>>2]|0,0);vf(c[i>>2]|0);l=e;return}function Vp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+12|0;f=d+8|0;g=d+4|0;c[f>>2]=a;c[g>>2]=b;switch(c[g>>2]|0){case 1:{c[e>>2]=((c[(c[f>>2]|0)+12>>2]&1|0)!=0^1^1)&1;h=c[e>>2]|0;l=d;return h|0}case 2:{c[e>>2]=((c[(c[f>>2]|0)+12>>2]&4|0)!=0^1^1)&1;h=c[e>>2]|0;l=d;return h|0}case 4:{c[e>>2]=((c[(c[f>>2]|0)+12>>2]&16|0)!=0^1^1)&1;h=c[e>>2]|0;l=d;return h|0}case 8:{c[e>>2]=((c[(c[f>>2]|0)+12>>2]&32|0)!=0^1^1)&1;h=c[e>>2]|0;l=d;return h|0}case 2048:case 1024:case 512:case 256:{c[e>>2]=((c[(c[f>>2]|0)+12>>2]&c[g>>2]|0)!=0^1^1)&1;h=c[e>>2]|0;l=d;return h|0}default:Xe(46542,d)}return 0}function Wp(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;e=b+12|0;c[e>>2]=a;a=c[e>>2]|0;if((c[e>>2]|0)<0|(c[e>>2]|0)>>>0>6){c[d>>2]=a;Xe(46342,d)}if(c[71004+(a<<2)>>2]|0){l=b;return c[71004+(c[e>>2]<<2)>>2]|0}else Xe(46562,b+8|0);return 0}function Xp(){return 46593}function Yp(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;f=l;l=l+96|0;if((l|0)>=(m|0))$(96);g=f+28|0;h=f+24|0;i=f+20|0;j=f+16|0;k=f+12|0;n=f+32|0;o=f+8|0;p=f+4|0;q=f;c[h>>2]=b;c[i>>2]=e;c[j>>2]=Kw(172)|0;if(!(c[j>>2]|0)){c[g>>2]=0;r=c[g>>2]|0;l=f;return r|0}c[c[j>>2]>>2]=1779033703;c[(c[j>>2]|0)+4>>2]=-1150833019;c[(c[j>>2]|0)+8>>2]=1013904242;c[(c[j>>2]|0)+12>>2]=-1521486534;c[(c[j>>2]|0)+16>>2]=1359893119;c[(c[j>>2]|0)+20>>2]=-1694144372;c[(c[j>>2]|0)+24>>2]=528734635;c[(c[j>>2]|0)+28>>2]=1541459225;c[(c[j>>2]|0)+32>>2]=0;c[(c[j>>2]|0)+36>>2]=0;e=(c[j>>2]|0)+40|0;a[e>>0]=a[e>>0]&-2;e=(c[j>>2]|0)+40|0;a[e>>0]=a[e>>0]&-3;a:do if(c[h>>2]|0){e=n;b=e+64|0;do{a[e>>0]=0;e=e+1|0}while((e|0)<(b|0));e=(c[j>>2]|0)+105|0;b=e+64|0;do{a[e>>0]=0;e=e+1|0}while((e|0)<(b|0));do if((c[i>>2]|0)>>>0<=64){_w(n|0,c[h>>2]|0,c[i>>2]|0)|0;_w((c[j>>2]|0)+105|0,c[h>>2]|0,c[i>>2]|0)|0}else{c[o>>2]=Yp(0,0)|0;if(c[o>>2]|0){Zp(c[o>>2]|0,c[h>>2]|0,c[i>>2]|0);_p(c[o>>2]|0);e=n;s=(c[o>>2]|0)+41|0;b=e+32|0;do{a[e>>0]=a[s>>0]|0;e=e+1|0;s=s+1|0}while((e|0)<(b|0));e=(c[j>>2]|0)+105|0;s=(c[o>>2]|0)+41|0;b=e+32|0;do{a[e>>0]=a[s>>0]|0;e=e+1|0;s=s+1|0}while((e|0)<(b|0));$p(c[o>>2]|0);break}Lw(c[j>>2]|0);c[g>>2]=0;r=c[g>>2]|0;l=f;return r|0}while(0);c[k>>2]=0;while(1){if((c[k>>2]|0)>=64)break;e=n+(c[k>>2]|0)|0;a[e>>0]=(d[e>>0]|0)^54;e=(c[j>>2]|0)+105+(c[k>>2]|0)|0;a[e>>0]=(d[e>>0]|0)^92;c[k>>2]=(c[k>>2]|0)+1}e=(c[j>>2]|0)+40|0;a[e>>0]=a[e>>0]&-3|2;Zp(c[j>>2]|0,n,64);c[p>>2]=n;c[q>>2]=64;while(1){if(!(c[q>>2]|0))break a;a[c[p>>2]>>0]=0;c[p>>2]=(c[p>>2]|0)+1;c[q>>2]=(c[q>>2]|0)+-1}}while(0);c[g>>2]=c[j>>2];r=c[g>>2]|0;l=f;return r|0}function Zp(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f+12|0;h=f+8|0;i=f+4|0;j=f;c[g>>2]=b;c[h>>2]=d;c[i>>2]=e;c[j>>2]=c[h>>2];if((a[(c[g>>2]|0)+40>>0]<<7&255)<<24>>24>>7<<24>>24|0){l=f;return}if((c[(c[g>>2]|0)+36>>2]|0)==64){aq(c[g>>2]|0,(c[g>>2]|0)+41|0);c[(c[g>>2]|0)+36>>2]=0;h=(c[g>>2]|0)+32|0;c[h>>2]=(c[h>>2]|0)+1}if(!(c[j>>2]|0)){l=f;return}if(c[(c[g>>2]|0)+36>>2]|0){while(1){if(!(c[i>>2]|0))break;if((c[(c[g>>2]|0)+36>>2]|0)>=64)break;h=c[j>>2]|0;c[j>>2]=h+1;e=a[h>>0]|0;h=(c[g>>2]|0)+36|0;d=c[h>>2]|0;c[h>>2]=d+1;a[(c[g>>2]|0)+41+d>>0]=e;c[i>>2]=(c[i>>2]|0)+-1}Zp(c[g>>2]|0,0,0);if(!(c[i>>2]|0)){l=f;return}}while(1){if((c[i>>2]|0)>>>0<64)break;aq(c[g>>2]|0,c[j>>2]|0);c[(c[g>>2]|0)+36>>2]=0;e=(c[g>>2]|0)+32|0;c[e>>2]=(c[e>>2]|0)+1;c[i>>2]=(c[i>>2]|0)-64;c[j>>2]=(c[j>>2]|0)+64}while(1){if(!(c[i>>2]|0)){k=15;break}if((c[(c[g>>2]|0)+36>>2]|0)>=64){k=15;break}e=c[j>>2]|0;c[j>>2]=e+1;d=a[e>>0]|0;e=(c[g>>2]|0)+36|0;h=c[e>>2]|0;c[e>>2]=h+1;a[(c[g>>2]|0)+41+h>>0]=d;c[i>>2]=(c[i>>2]|0)+-1}if((k|0)==15){l=f;return}}function _p(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+16|0;f=d+12|0;g=d+8|0;h=d+4|0;i=d;c[e>>2]=b;if((a[(c[e>>2]|0)+40>>0]<<7&255)<<24>>24>>7<<24>>24|0){l=d;return}Zp(c[e>>2]|0,0,0);c[f>>2]=c[(c[e>>2]|0)+32>>2];c[h>>2]=c[f>>2]<<6;c[g>>2]=(c[f>>2]|0)>>>26;c[f>>2]=c[h>>2];b=(c[h>>2]|0)+(c[(c[e>>2]|0)+36>>2]|0)|0;c[h>>2]=b;if(b>>>0<(c[f>>2]|0)>>>0)c[g>>2]=(c[g>>2]|0)+1;c[f>>2]=c[h>>2];c[h>>2]=c[h>>2]<<3;c[g>>2]=c[g>>2]<<3;c[g>>2]=c[g>>2]|(c[f>>2]|0)>>>29;f=(c[(c[e>>2]|0)+36>>2]|0)<56;b=(c[e>>2]|0)+36|0;j=c[b>>2]|0;c[b>>2]=j+1;a[(c[e>>2]|0)+41+j>>0]=-128;a:do if(f)while(1){if((c[(c[e>>2]|0)+36>>2]|0)>=56)break a;j=(c[e>>2]|0)+36|0;b=c[j>>2]|0;c[j>>2]=b+1;a[(c[e>>2]|0)+41+b>>0]=0}else{while(1){k=c[e>>2]|0;if((c[(c[e>>2]|0)+36>>2]|0)>=64)break;b=k+36|0;j=c[b>>2]|0;c[b>>2]=j+1;a[(c[e>>2]|0)+41+j>>0]=0}Zp(k,0,0);j=(c[e>>2]|0)+41|0;b=j+56|0;do{a[j>>0]=0;j=j+1|0}while((j|0)<(b|0))}while(0);a[(c[e>>2]|0)+41+56>>0]=(c[g>>2]|0)>>>24;a[(c[e>>2]|0)+41+57>>0]=(c[g>>2]|0)>>>16;a[(c[e>>2]|0)+41+58>>0]=(c[g>>2]|0)>>>8;a[(c[e>>2]|0)+41+59>>0]=c[g>>2];a[(c[e>>2]|0)+41+60>>0]=(c[h>>2]|0)>>>24;a[(c[e>>2]|0)+41+61>>0]=(c[h>>2]|0)>>>16;a[(c[e>>2]|0)+41+62>>0]=(c[h>>2]|0)>>>8;a[(c[e>>2]|0)+41+63>>0]=c[h>>2];aq(c[e>>2]|0,(c[e>>2]|0)+41|0);c[i>>2]=(c[e>>2]|0)+41;h=(c[c[e>>2]>>2]|0)>>>24&255;g=c[i>>2]|0;c[i>>2]=g+1;a[g>>0]=h;h=(c[c[e>>2]>>2]|0)>>>16&255;g=c[i>>2]|0;c[i>>2]=g+1;a[g>>0]=h;h=(c[c[e>>2]>>2]|0)>>>8&255;g=c[i>>2]|0;c[i>>2]=g+1;a[g>>0]=h;h=c[c[e>>2]>>2]&255;g=c[i>>2]|0;c[i>>2]=g+1;a[g>>0]=h;h=(c[(c[e>>2]|0)+4>>2]|0)>>>24&255;g=c[i>>2]|0;c[i>>2]=g+1;a[g>>0]=h;h=(c[(c[e>>2]|0)+4>>2]|0)>>>16&255;g=c[i>>2]|0;c[i>>2]=g+1;a[g>>0]=h;h=(c[(c[e>>2]|0)+4>>2]|0)>>>8&255;g=c[i>>2]|0;c[i>>2]=g+1;a[g>>0]=h;h=c[(c[e>>2]|0)+4>>2]&255;g=c[i>>2]|0;c[i>>2]=g+1;a[g>>0]=h;h=(c[(c[e>>2]|0)+8>>2]|0)>>>24&255;g=c[i>>2]|0;c[i>>2]=g+1;a[g>>0]=h;h=(c[(c[e>>2]|0)+8>>2]|0)>>>16&255;g=c[i>>2]|0;c[i>>2]=g+1;a[g>>0]=h;h=(c[(c[e>>2]|0)+8>>2]|0)>>>8&255;g=c[i>>2]|0;c[i>>2]=g+1;a[g>>0]=h;h=c[(c[e>>2]|0)+8>>2]&255;g=c[i>>2]|0;c[i>>2]=g+1;a[g>>0]=h;h=(c[(c[e>>2]|0)+12>>2]|0)>>>24&255;g=c[i>>2]|0;c[i>>2]=g+1;a[g>>0]=h;h=(c[(c[e>>2]|0)+12>>2]|0)>>>16&255;g=c[i>>2]|0;c[i>>2]=g+1;a[g>>0]=h;h=(c[(c[e>>2]|0)+12>>2]|0)>>>8&255;g=c[i>>2]|0;c[i>>2]=g+1;a[g>>0]=h;h=c[(c[e>>2]|0)+12>>2]&255;g=c[i>>2]|0;c[i>>2]=g+1;a[g>>0]=h;h=(c[(c[e>>2]|0)+16>>2]|0)>>>24&255;g=c[i>>2]|0;c[i>>2]=g+1;a[g>>0]=h;h=(c[(c[e>>2]|0)+16>>2]|0)>>>16&255;g=c[i>>2]|0;c[i>>2]=g+1;a[g>>0]=h;h=(c[(c[e>>2]|0)+16>>2]|0)>>>8&255;g=c[i>>2]|0;c[i>>2]=g+1;a[g>>0]=h;h=c[(c[e>>2]|0)+16>>2]&255;g=c[i>>2]|0;c[i>>2]=g+1;a[g>>0]=h;h=(c[(c[e>>2]|0)+20>>2]|0)>>>24&255;g=c[i>>2]|0;c[i>>2]=g+1;a[g>>0]=h;h=(c[(c[e>>2]|0)+20>>2]|0)>>>16&255;g=c[i>>2]|0;c[i>>2]=g+1;a[g>>0]=h;h=(c[(c[e>>2]|0)+20>>2]|0)>>>8&255;g=c[i>>2]|0;c[i>>2]=g+1;a[g>>0]=h;h=c[(c[e>>2]|0)+20>>2]&255;g=c[i>>2]|0;c[i>>2]=g+1;a[g>>0]=h;h=(c[(c[e>>2]|0)+24>>2]|0)>>>24&255;g=c[i>>2]|0;c[i>>2]=g+1;a[g>>0]=h;h=(c[(c[e>>2]|0)+24>>2]|0)>>>16&255;g=c[i>>2]|0;c[i>>2]=g+1;a[g>>0]=h;h=(c[(c[e>>2]|0)+24>>2]|0)>>>8&255;g=c[i>>2]|0;c[i>>2]=g+1;a[g>>0]=h;h=c[(c[e>>2]|0)+24>>2]&255;g=c[i>>2]|0;c[i>>2]=g+1;a[g>>0]=h;h=(c[(c[e>>2]|0)+28>>2]|0)>>>24&255;g=c[i>>2]|0;c[i>>2]=g+1;a[g>>0]=h;h=(c[(c[e>>2]|0)+28>>2]|0)>>>16&255;g=c[i>>2]|0;c[i>>2]=g+1;a[g>>0]=h;h=(c[(c[e>>2]|0)+28>>2]|0)>>>8&255;g=c[i>>2]|0;c[i>>2]=g+1;a[g>>0]=h;h=c[(c[e>>2]|0)+28>>2]&255;g=c[i>>2]|0;c[i>>2]=g+1;a[g>>0]=h;h=(c[e>>2]|0)+40|0;a[h>>0]=a[h>>0]&-2|1;l=d;return}function $p(b){b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+8|0;f=d+4|0;g=d;c[e>>2]=b;if(!(c[e>>2]|0)){l=d;return}a:do if((a[(c[e>>2]|0)+40>>0]<<6&255)<<24>>24>>7<<24>>24|0){c[f>>2]=(c[e>>2]|0)+105;c[g>>2]=64;while(1){if(!(c[g>>2]|0))break a;a[c[f>>2]>>0]=0;c[f>>2]=(c[f>>2]|0)+1;c[g>>2]=(c[g>>2]|0)+-1}}while(0);Lw(c[e>>2]|0);l=d;return}function aq(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;e=l;l=l+384|0;if((l|0)>=(m|0))$(384);f=e+376|0;g=e+372|0;h=e+368|0;i=e+364|0;j=e+360|0;k=e+356|0;n=e+352|0;o=e+348|0;p=e+344|0;q=e+340|0;r=e+336|0;s=e+332|0;t=e+328|0;u=e+264|0;v=e+8|0;w=e+4|0;x=e;c[f>>2]=b;c[g>>2]=d;c[h>>2]=c[g>>2];c[i>>2]=c[c[f>>2]>>2];c[j>>2]=c[(c[f>>2]|0)+4>>2];c[k>>2]=c[(c[f>>2]|0)+8>>2];c[n>>2]=c[(c[f>>2]|0)+12>>2];c[o>>2]=c[(c[f>>2]|0)+16>>2];c[p>>2]=c[(c[f>>2]|0)+20>>2];c[q>>2]=c[(c[f>>2]|0)+24>>2];c[r>>2]=c[(c[f>>2]|0)+28>>2];c[w>>2]=0;c[x>>2]=u;while(1){if((c[w>>2]|0)>=16)break;g=c[h>>2]|0;c[h>>2]=g+1;a[(c[x>>2]|0)+3>>0]=a[g>>0]|0;g=c[h>>2]|0;c[h>>2]=g+1;a[(c[x>>2]|0)+2>>0]=a[g>>0]|0;g=c[h>>2]|0;c[h>>2]=g+1;a[(c[x>>2]|0)+1>>0]=a[g>>0]|0;g=c[h>>2]|0;c[h>>2]=g+1;a[c[x>>2]>>0]=a[g>>0]|0;c[w>>2]=(c[w>>2]|0)+1;c[x>>2]=(c[x>>2]|0)+4}c[w>>2]=0;while(1){if((c[w>>2]|0)>=16)break;c[v+(c[w>>2]<<2)>>2]=c[u+(c[w>>2]<<2)>>2];c[w>>2]=(c[w>>2]|0)+1}while(1){if((c[w>>2]|0)>=64)break;u=bq(c[v+((c[w>>2]|0)-2<<2)>>2]|0,17)|0;x=u^(bq(c[v+((c[w>>2]|0)-2<<2)>>2]|0,19)|0);u=(x^(c[v+((c[w>>2]|0)-2<<2)>>2]|0)>>>10)+(c[v+((c[w>>2]|0)-7<<2)>>2]|0)|0;x=bq(c[v+((c[w>>2]|0)-15<<2)>>2]|0,7)|0;h=x^(bq(c[v+((c[w>>2]|0)-15<<2)>>2]|0,18)|0);c[v+(c[w>>2]<<2)>>2]=u+(h^(c[v+((c[w>>2]|0)-15<<2)>>2]|0)>>>3)+(c[v+((c[w>>2]|0)-16<<2)>>2]|0);c[w>>2]=(c[w>>2]|0)+1}c[w>>2]=0;while(1){if((c[w>>2]|0)>=64)break;h=c[r>>2]|0;u=bq(c[o>>2]|0,6)|0;x=u^(bq(c[o>>2]|0,11)|0);u=h+(x^(bq(c[o>>2]|0,25)|0))|0;c[s>>2]=u+(c[q>>2]^c[o>>2]&(c[p>>2]^c[q>>2]))+(c[12636+(c[w>>2]<<2)>>2]|0)+(c[v+(c[w>>2]<<2)>>2]|0);u=bq(c[i>>2]|0,2)|0;x=u^(bq(c[i>>2]|0,13)|0);u=x^(bq(c[i>>2]|0,22)|0);c[t>>2]=u+(c[i>>2]&c[j>>2]|c[k>>2]&(c[i>>2]|c[j>>2]));c[r>>2]=c[q>>2];c[q>>2]=c[p>>2];c[p>>2]=c[o>>2];c[o>>2]=(c[n>>2]|0)+(c[s>>2]|0);c[n>>2]=c[k>>2];c[k>>2]=c[j>>2];c[j>>2]=c[i>>2];c[i>>2]=(c[s>>2]|0)+(c[t>>2]|0);c[w>>2]=(c[w>>2]|0)+1}w=c[f>>2]|0;c[w>>2]=(c[w>>2]|0)+(c[i>>2]|0);i=(c[f>>2]|0)+4|0;c[i>>2]=(c[i>>2]|0)+(c[j>>2]|0);j=(c[f>>2]|0)+8|0;c[j>>2]=(c[j>>2]|0)+(c[k>>2]|0);k=(c[f>>2]|0)+12|0;c[k>>2]=(c[k>>2]|0)+(c[n>>2]|0);n=(c[f>>2]|0)+16|0;c[n>>2]=(c[n>>2]|0)+(c[o>>2]|0);o=(c[f>>2]|0)+20|0;c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);p=(c[f>>2]|0)+24|0;c[p>>2]=(c[p>>2]|0)+(c[q>>2]|0);q=(c[f>>2]|0)+28|0;c[q>>2]=(c[q>>2]|0)+(c[r>>2]|0);l=e;return}function bq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;l=d;return (c[e>>2]|0)>>>(c[f>>2]|0)|c[e>>2]<<32-(c[f>>2]|0)|0}function cq(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[g>>2]=b;c[h>>2]=d;_p(c[g>>2]|0);do if((a[(c[g>>2]|0)+40>>0]<<6&255)<<24>>24>>7<<24>>24|0){c[i>>2]=Yp(0,0)|0;if(c[i>>2]|0){Zp(c[i>>2]|0,(c[g>>2]|0)+105|0,64);Zp(c[i>>2]|0,(c[g>>2]|0)+41|0,32);_p(c[i>>2]|0);d=(c[g>>2]|0)+41|0;b=(c[i>>2]|0)+41|0;j=d+32|0;do{a[d>>0]=a[b>>0]|0;d=d+1|0;b=b+1|0}while((d|0)<(j|0));$p(c[i>>2]|0);break}Lw(c[g>>2]|0);c[f>>2]=0;k=c[f>>2]|0;l=e;return k|0}while(0);if(c[h>>2]|0)c[c[h>>2]>>2]=32;c[f>>2]=(c[g>>2]|0)+41;k=c[f>>2]|0;l=e;return k|0}function dq(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;i=l;l=l+80|0;if((l|0)>=(m|0))$(80);j=i+56|0;k=i+52|0;n=i+48|0;o=i+44|0;p=i+40|0;q=i+36|0;r=i+32|0;s=i+28|0;t=i+24|0;u=i+20|0;v=i+16|0;w=i+12|0;x=i+8|0;y=i+64|0;z=i+4|0;A=i;c[k>>2]=b;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;if((c[(c[(c[k>>2]|0)+12>>2]|0)+20>>2]|0)!=16){c[j>>2]=139;B=c[j>>2]|0;l=i;return B|0}if((c[o>>2]|0)>>>0<((c[q>>2]|0)+8|0)>>>0){c[j>>2]=200;B=c[j>>2]|0;l=i;return B|0}if(((c[q>>2]|0)>>>0)%8|0|0){c[j>>2]=45;B=c[j>>2]|0;l=i;return B|0}c[t>>2]=((c[q>>2]|0)>>>0)/8|0;if((c[t>>2]|0)>>>0<2){c[j>>2]=45;B=c[j>>2]|0;l=i;return B|0}c[z>>2]=0;c[v>>2]=c[n>>2];c[w>>2]=c[n>>2];c[x>>2]=(c[k>>2]|0)+80;n=c[w>>2]|0;if((d[(c[k>>2]|0)+56>>0]|0)>>>1&1|0){o=(c[k>>2]|0)+64|0;a[n>>0]=a[o>>0]|0;a[n+1>>0]=a[o+1>>0]|0;a[n+2>>0]=a[o+2>>0]|0;a[n+3>>0]=a[o+3>>0]|0;a[n+4>>0]=a[o+4>>0]|0;a[n+5>>0]=a[o+5>>0]|0;a[n+6>>0]=a[o+6>>0]|0;a[n+7>>0]=a[o+7>>0]|0}else{a[n>>0]=166;a[n+1>>0]=166;a[n+2>>0]=166;a[n+3>>0]=166;a[n+4>>0]=166;a[n+5>>0]=166;a[n+6>>0]=166;a[n+7>>0]=166}$w((c[v>>2]|0)+8|0,c[p>>2]|0,c[q>>2]|0)|0;a[y>>0]=0;a[y+1>>0]=0;a[y+2>>0]=0;a[y+3>>0]=0;a[y+4>>0]=0;a[y+5>>0]=0;a[y+6>>0]=0;a[y+7>>0]=0;c[r>>2]=0;while(1){if((c[r>>2]|0)>5)break;c[u>>2]=1;while(1){if((c[u>>2]|0)>>>0>(c[t>>2]|0)>>>0)break;q=c[x>>2]|0;p=c[w>>2]|0;a[q>>0]=a[p>>0]|0;a[q+1>>0]=a[p+1>>0]|0;a[q+2>>0]=a[p+2>>0]|0;a[q+3>>0]=a[p+3>>0]|0;a[q+4>>0]=a[p+4>>0]|0;a[q+5>>0]=a[p+5>>0]|0;a[q+6>>0]=a[p+6>>0]|0;a[q+7>>0]=a[p+7>>0]|0;p=(c[x>>2]|0)+8|0;q=(c[v>>2]|0)+(c[u>>2]<<3)|0;a[p>>0]=a[q>>0]|0;a[p+1>>0]=a[q+1>>0]|0;a[p+2>>0]=a[q+2>>0]|0;a[p+3>>0]=a[q+3>>0]|0;a[p+4>>0]=a[q+4>>0]|0;a[p+5>>0]=a[q+5>>0]|0;a[p+6>>0]=a[q+6>>0]|0;a[p+7>>0]=a[q+7>>0]|0;c[A>>2]=ub[c[(c[(c[k>>2]|0)+12>>2]|0)+36>>2]&63]((c[k>>2]|0)+496|0,c[x>>2]|0,c[x>>2]|0)|0;c[z>>2]=(c[A>>2]|0)>>>0>(c[z>>2]|0)>>>0?c[A>>2]|0:c[z>>2]|0;c[s>>2]=7;while(1){if((c[s>>2]|0)<0)break;q=y+(c[s>>2]|0)|0;a[q>>0]=(a[q>>0]|0)+1<<24>>24;if(a[y+(c[s>>2]|0)>>0]|0)break;c[s>>2]=(c[s>>2]|0)+-1}eq(c[w>>2]|0,c[x>>2]|0,y,8);q=(c[v>>2]|0)+(c[u>>2]<<3)|0;p=(c[x>>2]|0)+8|0;a[q>>0]=a[p>>0]|0;a[q+1>>0]=a[p+1>>0]|0;a[q+2>>0]=a[p+2>>0]|0;a[q+3>>0]=a[p+3>>0]|0;a[q+4>>0]=a[p+4>>0]|0;a[q+5>>0]=a[p+5>>0]|0;a[q+6>>0]=a[p+6>>0]|0;a[q+7>>0]=a[p+7>>0]|0;c[u>>2]=(c[u>>2]|0)+1}c[r>>2]=(c[r>>2]|0)+1}if((c[z>>2]|0)>>>0>0){bf((c[z>>2]|0)+16|0);cf()}c[j>>2]=0;B=c[j>>2]|0;l=i;return B|0}function eq(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;h=l;l=l+48|0;if((l|0)>=(m|0))$(48);i=h+40|0;j=h+36|0;k=h+32|0;n=h+28|0;o=h+24|0;p=h+20|0;q=h+16|0;r=h+12|0;s=h+8|0;t=h+4|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[n>>2]=g;c[o>>2]=c[i>>2];c[p>>2]=c[j>>2];c[q>>2]=c[k>>2];c[h>>2]=3;if(!((c[o>>2]|c[p>>2]|c[q>>2])&3)){c[r>>2]=c[o>>2];c[s>>2]=c[p>>2];c[t>>2]=c[q>>2];while(1){if((c[n>>2]|0)>>>0<4)break;k=c[s>>2]|0;c[s>>2]=k+4;j=c[k>>2]|0;k=c[t>>2]|0;c[t>>2]=k+4;i=j^c[k>>2];k=c[r>>2]|0;c[r>>2]=k+4;c[k>>2]=i;c[n>>2]=(c[n>>2]|0)-4}c[o>>2]=c[r>>2];c[p>>2]=c[s>>2];c[q>>2]=c[t>>2]}while(1){if(!(c[n>>2]|0))break;t=c[p>>2]|0;c[p>>2]=t+1;s=d[t>>0]|0;t=c[q>>2]|0;c[q>>2]=t+1;r=(s^(d[t>>0]|0))&255;t=c[o>>2]|0;c[o>>2]=t+1;a[t>>0]=r;c[n>>2]=(c[n>>2]|0)+-1}l=h;return}function fq(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;i=l;l=l+80|0;if((l|0)>=(m|0))$(80);j=i+56|0;k=i+52|0;n=i+48|0;o=i+44|0;p=i+40|0;q=i+36|0;r=i+32|0;s=i+28|0;t=i+24|0;u=i+20|0;v=i+16|0;w=i+12|0;x=i+8|0;y=i+64|0;z=i+4|0;A=i;c[k>>2]=b;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;if((c[(c[(c[k>>2]|0)+12>>2]|0)+20>>2]|0)!=16){c[j>>2]=139;B=c[j>>2]|0;l=i;return B|0}if(((c[o>>2]|0)+8|0)>>>0<(c[q>>2]|0)>>>0){c[j>>2]=200;B=c[j>>2]|0;l=i;return B|0}if(((c[q>>2]|0)>>>0)%8|0|0){c[j>>2]=45;B=c[j>>2]|0;l=i;return B|0}c[t>>2]=((c[q>>2]|0)>>>0)/8|0;if((c[t>>2]|0)>>>0<3){c[j>>2]=45;B=c[j>>2]|0;l=i;return B|0}c[z>>2]=0;c[v>>2]=c[n>>2];c[w>>2]=(c[k>>2]|0)+96;c[x>>2]=(c[k>>2]|0)+80;n=c[w>>2]|0;o=c[p>>2]|0;a[n>>0]=a[o>>0]|0;a[n+1>>0]=a[o+1>>0]|0;a[n+2>>0]=a[o+2>>0]|0;a[n+3>>0]=a[o+3>>0]|0;a[n+4>>0]=a[o+4>>0]|0;a[n+5>>0]=a[o+5>>0]|0;a[n+6>>0]=a[o+6>>0]|0;a[n+7>>0]=a[o+7>>0]|0;$w(c[v>>2]|0,(c[p>>2]|0)+8|0,(c[q>>2]|0)-8|0)|0;c[t>>2]=(c[t>>2]|0)+-1;c[u>>2]=(c[t>>2]|0)*6;c[s>>2]=0;while(1){if(!((c[s>>2]|0)<8?(c[s>>2]|0)>>>0<4:0))break;a[y+(7-(c[s>>2]|0))>>0]=(c[u>>2]|0)>>>(c[s>>2]<<3);c[s>>2]=(c[s>>2]|0)+1}while(1){if((c[s>>2]|0)>=8)break;a[y+(7-(c[s>>2]|0))>>0]=0;c[s>>2]=(c[s>>2]|0)+1}c[r>>2]=5;while(1){if((c[r>>2]|0)<0)break;c[u>>2]=c[t>>2];while(1){if((c[u>>2]|0)>>>0<1)break;eq(c[x>>2]|0,c[w>>2]|0,y,8);q=(c[x>>2]|0)+8|0;p=(c[v>>2]|0)+((c[u>>2]|0)-1<<3)|0;a[q>>0]=a[p>>0]|0;a[q+1>>0]=a[p+1>>0]|0;a[q+2>>0]=a[p+2>>0]|0;a[q+3>>0]=a[p+3>>0]|0;a[q+4>>0]=a[p+4>>0]|0;a[q+5>>0]=a[p+5>>0]|0;a[q+6>>0]=a[p+6>>0]|0;a[q+7>>0]=a[p+7>>0]|0;c[A>>2]=ub[c[(c[(c[k>>2]|0)+12>>2]|0)+40>>2]&63]((c[k>>2]|0)+496|0,c[x>>2]|0,c[x>>2]|0)|0;c[z>>2]=(c[A>>2]|0)>>>0>(c[z>>2]|0)>>>0?c[A>>2]|0:c[z>>2]|0;c[s>>2]=7;while(1){if((c[s>>2]|0)<0)break;p=y+(c[s>>2]|0)|0;a[p>>0]=(a[p>>0]|0)+-1<<24>>24;if((d[y+(c[s>>2]|0)>>0]|0|0)!=255)break;c[s>>2]=(c[s>>2]|0)+-1}p=c[w>>2]|0;q=c[x>>2]|0;a[p>>0]=a[q>>0]|0;a[p+1>>0]=a[q+1>>0]|0;a[p+2>>0]=a[q+2>>0]|0;a[p+3>>0]=a[q+3>>0]|0;a[p+4>>0]=a[q+4>>0]|0;a[p+5>>0]=a[q+5>>0]|0;a[p+6>>0]=a[q+6>>0]|0;a[p+7>>0]=a[q+7>>0]|0;q=(c[v>>2]|0)+((c[u>>2]|0)-1<<3)|0;p=(c[x>>2]|0)+8|0;a[q>>0]=a[p>>0]|0;a[q+1>>0]=a[p+1>>0]|0;a[q+2>>0]=a[p+2>>0]|0;a[q+3>>0]=a[p+3>>0]|0;a[q+4>>0]=a[p+4>>0]|0;a[q+5>>0]=a[p+5>>0]|0;a[q+6>>0]=a[p+6>>0]|0;a[q+7>>0]=a[p+7>>0]|0;c[u>>2]=(c[u>>2]|0)+-1}c[r>>2]=(c[r>>2]|0)+-1}a:do if((d[(c[k>>2]|0)+56>>0]|0)>>>1&1|0)c[r>>2]=Jv(c[w>>2]|0,(c[k>>2]|0)+64|0,8)|0;else{c[r>>2]=0;c[s>>2]=0;while(1){if((c[s>>2]|0)>=8)break a;if((d[(c[w>>2]|0)+(c[s>>2]|0)>>0]|0|0)!=166)break;c[s>>2]=(c[s>>2]|0)+1}c[r>>2]=1}while(0);if((c[z>>2]|0)>>>0>0){bf((c[z>>2]|0)+16|0);cf()}c[j>>2]=c[r>>2]|0?10:0;B=c[j>>2]|0;l=i;return B|0} -function fg(b,f,g,h){b=b|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;i=l;l=l+80|0;if((l|0)>=(m|0))$(80);j=i;k=i+48|0;n=i+44|0;o=i+40|0;p=i+36|0;q=i+32|0;r=i+28|0;s=i+24|0;t=i+52|0;u=i+56|0;v=i+20|0;w=i+16|0;x=i+12|0;y=i+8|0;z=i+4|0;c[n>>2]=b;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;c[v>>2]=0;c[x>>2]=0;c[r>>2]=c[n>>2]|0?c[n>>2]|0:22772;c[s>>2]=c[p>>2];a:while(1){if(!(d[c[r>>2]>>0]|0)){A=55;break}switch(d[c[r>>2]>>0]|0|0){case 3:{c[r>>2]=(c[r>>2]|0)+1;if((c[o>>2]|0)!=1){if(c[x>>2]|0)c[v>>2]=(c[v>>2]|0)+1;c[v>>2]=(c[v>>2]|0)+(c[x>>2]|0)}c[v>>2]=(c[v>>2]|0)+1;if(c[p>>2]|0){if((c[v>>2]|0)>>>0>=(c[q>>2]|0)>>>0){A=10;break a}b:do if((c[o>>2]|0)!=1){if(c[x>>2]|0){n=c[s>>2]|0;c[s>>2]=n+1;a[n>>0]=10}c[w>>2]=0;while(1){if((c[w>>2]|0)>=(c[x>>2]|0))break b;n=c[s>>2]|0;c[s>>2]=n+1;a[n>>0]=32;c[w>>2]=(c[w>>2]|0)+1}}while(0);n=c[s>>2]|0;c[s>>2]=n+1;a[n>>0]=40}c[x>>2]=(c[x>>2]|0)+1;continue a;break}case 4:{c[r>>2]=(c[r>>2]|0)+1;c[v>>2]=(c[v>>2]|0)+1;if(c[p>>2]|0){if((c[v>>2]|0)>>>0>=(c[q>>2]|0)>>>0){A=21;break a}n=c[s>>2]|0;c[s>>2]=n+1;a[n>>0]=41}c[x>>2]=(c[x>>2]|0)+-1;if((d[c[r>>2]>>0]|0|0)==3)continue a;if(!((c[o>>2]|0)!=1?(d[c[r>>2]>>0]|0|0)!=0:0))continue a;c[v>>2]=(c[v>>2]|0)+1;c[v>>2]=(c[v>>2]|0)+(c[x>>2]|0);if(!(c[p>>2]|0))continue a;if((c[v>>2]|0)>>>0>=(c[q>>2]|0)>>>0){A=27;break a}n=c[s>>2]|0;c[s>>2]=n+1;a[n>>0]=10;c[w>>2]=0;while(1){if((c[w>>2]|0)>=(c[x>>2]|0))continue a;n=c[s>>2]|0;c[s>>2]=n+1;a[n>>0]=32;c[w>>2]=(c[w>>2]|0)+1}break}case 1:{c[r>>2]=(c[r>>2]|0)+1;n=c[r>>2]|0;a[t>>0]=a[n>>0]|0;a[t+1>>0]=a[n+1>>0]|0;c[r>>2]=(c[r>>2]|0)+2;if((c[o>>2]|0)==3){n=gg(c[r>>2]|0,e[t>>1]|0)|0;c[y>>2]=n;switch(n|0){case 1:{c[z>>2]=hg(c[r>>2]|0,e[t>>1]|0,0)|0;break}case 2:{c[z>>2]=ig(c[r>>2]|0,e[t>>1]|0,0)|0;break}default:c[z>>2]=jg(c[r>>2]|0,e[t>>1]|0,0)|0}c[v>>2]=(c[v>>2]|0)+(c[z>>2]|0);if(c[p>>2]|0){if((c[v>>2]|0)>>>0>=(c[q>>2]|0)>>>0){A=38;break a}switch(c[y>>2]|0){case 1:{hg(c[r>>2]|0,e[t>>1]|0,c[s>>2]|0)|0;break}case 2:{ig(c[r>>2]|0,e[t>>1]|0,c[s>>2]|0)|0;break}default:jg(c[r>>2]|0,e[t>>1]|0,c[s>>2]|0)|0}c[s>>2]=(c[s>>2]|0)+(c[z>>2]|0)}if((d[(c[r>>2]|0)+(e[t>>1]|0)>>0]|0|0)!=4?(c[v>>2]=(c[v>>2]|0)+1,c[p>>2]|0):0){if((c[v>>2]|0)>>>0>=(c[q>>2]|0)>>>0){A=47;break a}n=c[s>>2]|0;c[s>>2]=n+1;a[n>>0]=32}}else{c[j>>2]=e[t>>1];Dv(u,22775,j)|0;n=hv(u)|0;c[v>>2]=(c[v>>2]|0)+(n+(e[t>>1]|0));if(c[p>>2]|0){if((c[v>>2]|0)>>>0>=(c[q>>2]|0)>>>0){A=51;break a}c[s>>2]=uv(c[s>>2]|0,u)|0;_w(c[s>>2]|0,c[r>>2]|0,e[t>>1]|0|0)|0;c[s>>2]=(c[s>>2]|0)+(e[t>>1]|0)}}c[r>>2]=(c[r>>2]|0)+(e[t>>1]|0);continue a;break}default:{A=54;break a}}}if((A|0)==10){c[k>>2]=0;B=c[k>>2]|0;l=i;return B|0}else if((A|0)==21){c[k>>2]=0;B=c[k>>2]|0;l=i;return B|0}else if((A|0)==27){c[k>>2]=0;B=c[k>>2]|0;l=i;return B|0}else if((A|0)==38){c[k>>2]=0;B=c[k>>2]|0;l=i;return B|0}else if((A|0)==47){c[k>>2]=0;B=c[k>>2]|0;l=i;return B|0}else if((A|0)==51){c[k>>2]=0;B=c[k>>2]|0;l=i;return B|0}else if((A|0)==54)Re(22704,2008,22779);else if((A|0)==55){do if((c[o>>2]|0)!=1?(c[v>>2]=(c[v>>2]|0)+1,c[p>>2]|0):0){if((c[v>>2]|0)>>>0<(c[q>>2]|0)>>>0){A=c[s>>2]|0;c[s>>2]=A+1;a[A>>0]=10;break}c[k>>2]=0;B=c[k>>2]|0;l=i;return B|0}while(0);o=c[v>>2]|0;do if(c[p>>2]|0){if(o>>>0<(c[q>>2]|0)>>>0){A=c[s>>2]|0;c[s>>2]=A+1;a[A>>0]=0;break}c[k>>2]=0;B=c[k>>2]|0;l=i;return B|0}else c[v>>2]=o+1;while(0);c[k>>2]=c[v>>2];B=c[k>>2]|0;l=i;return B|0}return 0}function gg(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[h>>2]=b;c[i>>2]=e;c[k>>2]=1;if(!(c[i>>2]|0)){c[g>>2]=1;n=c[g>>2]|0;l=f;return n|0}if(d[c[h>>2]>>0]&128|0){c[g>>2]=0;n=c[g>>2]|0;l=f;return n|0}if(!(a[c[h>>2]>>0]|0)){c[g>>2]=0;n=c[g>>2]|0;l=f;return n|0}c[j>>2]=c[h>>2];while(1){if(!(c[i>>2]|0))break;if((d[c[j>>2]>>0]|0)>=32){if((d[c[j>>2]>>0]|0)>=127?(d[c[j>>2]>>0]|0)<=160:0)o=12}else o=12;if((o|0)==12?(o=0,(Vv(22802,d[c[j>>2]>>0]|0)|0)==0):0){o=13;break}do if(c[k>>2]|0){if((d[c[j>>2]>>0]|0)>=65?(d[c[j>>2]>>0]|0)<=90:0)break;if((d[c[j>>2]>>0]|0)>=97?(d[c[j>>2]>>0]|0)<=122:0)break;if((d[c[j>>2]>>0]|0)>=48?(d[c[j>>2]>>0]|0)<=57:0)break;if(!(Vv(22812,d[c[j>>2]>>0]|0)|0))c[k>>2]=0}while(0);c[j>>2]=(c[j>>2]|0)+1;c[i>>2]=(c[i>>2]|0)+-1}if((o|0)==13){c[g>>2]=0;n=c[g>>2]|0;l=f;return n|0}c[j>>2]=c[h>>2];do if(c[k>>2]|0){if((d[c[j>>2]>>0]|0)>=48?(d[c[j>>2]>>0]|0)<=57:0)break;c[g>>2]=2;n=c[g>>2]|0;l=f;return n|0}while(0);c[g>>2]=1;n=c[g>>2]|0;l=f;return n|0}function hg(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;g=l;l=l+32|0;if((l|0)>=(m|0))$(32);h=g;i=g+24|0;j=g+20|0;k=g+16|0;n=g+12|0;o=g+8|0;p=g+4|0;c[j>>2]=b;c[k>>2]=e;c[n>>2]=f;if(!(c[n>>2]|0)){c[p>>2]=2;while(1){if(!(c[k>>2]|0))break;a:do switch(d[c[j>>2]>>0]|0|0){case 92:case 39:case 34:case 13:case 12:case 10:case 11:case 9:case 8:{c[p>>2]=(c[p>>2]|0)+2;break}default:{do if((d[c[j>>2]>>0]|0|0)>=32){if((d[c[j>>2]>>0]|0|0)>=127?(d[c[j>>2]>>0]|0|0)<=160:0)break;c[p>>2]=(c[p>>2]|0)+1;break a}while(0);c[p>>2]=(c[p>>2]|0)+4}}while(0);c[k>>2]=(c[k>>2]|0)+-1;c[j>>2]=(c[j>>2]|0)+1}c[i>>2]=c[p>>2];q=c[i>>2]|0;l=g;return q|0}c[o>>2]=c[n>>2];p=c[o>>2]|0;c[o>>2]=p+1;a[p>>0]=34;while(1){if(!(c[k>>2]|0))break;b:do switch(d[c[j>>2]>>0]|0|0){case 8:{p=c[o>>2]|0;c[o>>2]=p+1;a[p>>0]=92;p=c[o>>2]|0;c[o>>2]=p+1;a[p>>0]=98;break}case 9:{p=c[o>>2]|0;c[o>>2]=p+1;a[p>>0]=92;p=c[o>>2]|0;c[o>>2]=p+1;a[p>>0]=116;break}case 11:{p=c[o>>2]|0;c[o>>2]=p+1;a[p>>0]=92;p=c[o>>2]|0;c[o>>2]=p+1;a[p>>0]=118;break}case 10:{p=c[o>>2]|0;c[o>>2]=p+1;a[p>>0]=92;p=c[o>>2]|0;c[o>>2]=p+1;a[p>>0]=110;break}case 12:{p=c[o>>2]|0;c[o>>2]=p+1;a[p>>0]=92;p=c[o>>2]|0;c[o>>2]=p+1;a[p>>0]=102;break}case 13:{p=c[o>>2]|0;c[o>>2]=p+1;a[p>>0]=92;p=c[o>>2]|0;c[o>>2]=p+1;a[p>>0]=114;break}case 34:{p=c[o>>2]|0;c[o>>2]=p+1;a[p>>0]=92;p=c[o>>2]|0;c[o>>2]=p+1;a[p>>0]=34;break}case 39:{p=c[o>>2]|0;c[o>>2]=p+1;a[p>>0]=92;p=c[o>>2]|0;c[o>>2]=p+1;a[p>>0]=39;break}case 92:{p=c[o>>2]|0;c[o>>2]=p+1;a[p>>0]=92;p=c[o>>2]|0;c[o>>2]=p+1;a[p>>0]=92;break}default:{do if((d[c[j>>2]>>0]|0|0)>=32){if((d[c[j>>2]>>0]|0|0)>=127?(d[c[j>>2]>>0]|0|0)<=160:0)break;p=a[c[j>>2]>>0]|0;f=c[o>>2]|0;c[o>>2]=f+1;a[f>>0]=p;break b}while(0);p=c[o>>2]|0;c[h>>2]=d[c[j>>2]>>0];Dv(p,22626,h)|0;c[o>>2]=(c[o>>2]|0)+4}}while(0);c[k>>2]=(c[k>>2]|0)+-1;c[j>>2]=(c[j>>2]|0)+1}j=c[o>>2]|0;c[o>>2]=j+1;a[j>>0]=34;c[i>>2]=(c[o>>2]|0)-(c[n>>2]|0);q=c[i>>2]|0;l=g;return q|0}function ig(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;if(!(c[h>>2]|0)){i=c[g>>2]|0;l=e;return i|0}_w(c[h>>2]|0,c[f>>2]|0,c[g>>2]|0)|0;i=c[g>>2]|0;l=e;return i|0}function jg(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0;g=l;l=l+32|0;if((l|0)>=(m|0))$(32);h=g;i=g+16|0;j=g+12|0;k=g+8|0;n=g+4|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;if(!(c[k>>2]|0)){o=c[j>>2]|0;p=o<<1;q=p+2|0;l=g;return q|0}f=c[k>>2]|0;c[k>>2]=f+1;a[f>>0]=35;c[n>>2]=0;while(1){r=c[k>>2]|0;if((c[n>>2]|0)>>>0>=(c[j>>2]|0)>>>0)break;c[h>>2]=d[(c[i>>2]|0)+(c[n>>2]|0)>>0];Dv(r,22797,h)|0;c[n>>2]=(c[n>>2]|0)+1;c[k>>2]=(c[k>>2]|0)+2}c[k>>2]=r+1;a[r>>0]=35;o=c[j>>2]|0;p=o<<1;q=p+2|0;l=g;return q|0}function kg(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;g=l;l=l+192|0;if((l|0)>=(m|0))$(192);h=g+164|0;i=g+160|0;j=g+156|0;k=g+152|0;n=g+148|0;o=g+144|0;p=g+140|0;q=g+136|0;r=g+56|0;s=g+168|0;t=g+48|0;u=g+44|0;v=g+40|0;w=g+36|0;x=g+32|0;y=g+28|0;z=g+24|0;A=g+20|0;B=g+16|0;C=g+12|0;D=g+8|0;E=g+4|0;F=g;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[n>>2]=f;c[v>>2]=43;c[w>>2]=0;f=s;e=f+20|0;do{a[f>>0]=0;f=f+1|0}while((f|0)<(e|0));c[p>>2]=c[k>>2];c[t>>2]=0;while(1){G=a[c[p>>2]>>0]|0;if(!(a[c[p>>2]>>0]|0?(c[t>>2]|0)>>>0<20:0)){H=18;break}if((((((G<<24>>24|0)!=38?(a[c[p>>2]>>0]|0)!=43:0)?(a[c[p>>2]>>0]|0)!=45:0)?(a[c[p>>2]>>0]|0)!=47:0)?(a[c[p>>2]>>0]|0)!=63:0)?(Nf(c[p>>2]|0)|0)==0:0){if((a[c[p>>2]>>0]|0)==39){c[p>>2]=(c[p>>2]|0)+1;c[q>>2]=Vv(c[p>>2]|0,39)|0;if(!(c[q>>2]|0)){H=12;break}if((c[q>>2]|0)==(c[p>>2]|0)){H=12;break}c[p>>2]=c[q>>2]}f=c[n>>2]|0;e=(c[f>>2]|0)+(4-1)&~(4-1);d=c[e>>2]|0;c[f>>2]=e+4;c[x>>2]=d;c[r+(c[t>>2]<<2)>>2]=c[x>>2];if(!(c[r+(c[t>>2]<<2)>>2]|0)){H=15;break}c[t>>2]=(c[t>>2]|0)+1}c[p>>2]=(c[p>>2]|0)+1}if((H|0)==12){c[h>>2]=29;I=c[h>>2]|0;l=g;return I|0}else if((H|0)==15){c[h>>2]=128;I=c[h>>2]|0;l=g;return I|0}else if((H|0)==18){if(G<<24>>24){c[h>>2]=183;I=c[h>>2]|0;l=g;return I|0}G=c[n>>2]|0;n=(c[G>>2]|0)+(4-1)&~(4-1);x=c[n>>2]|0;c[G>>2]=n+4;c[y>>2]=x;if(c[y>>2]|0){c[h>>2]=45;I=c[h>>2]|0;l=g;return I|0}while(1){if(!(c[j>>2]|0)){H=33;break}if(!(a[c[j>>2]>>0]|0)){H=33;break}c[p>>2]=Vv(c[j>>2]|0,33)|0;if((c[p>>2]|0)==(c[j>>2]|0)){H=25;break}if(c[p>>2]|0)J=(c[p>>2]|0)-(c[j>>2]|0)|0;else J=0;c[z>>2]=J;c[u>>2]=Tf(c[i>>2]|0,c[j>>2]|0,c[z>>2]|0)|0;if(!(c[u>>2]|0)){H=29;break}c[i>>2]=c[u>>2];c[u>>2]=0;Rf(c[w>>2]|0);c[w>>2]=c[i>>2];if(c[z>>2]|0){c[j>>2]=(c[j>>2]|0)+((c[z>>2]|0)+1);continue}else{c[j>>2]=0;continue}}do if((H|0)==25)c[o>>2]=27;else if((H|0)==29)c[o>>2]=27;else if((H|0)==33){c[p>>2]=c[k>>2];c[t>>2]=0;a:while(1){if(!(a[c[p>>2]>>0]|0)){H=76;break}if((((a[c[p>>2]>>0]|0)!=38?(a[c[p>>2]>>0]|0)!=43:0)?(a[c[p>>2]>>0]|0)!=45:0)?(a[c[p>>2]>>0]|0)!=47:0){if((Nf(c[p>>2]|0)|0)==0?(a[c[p>>2]>>0]|0)!=63:0){if((a[c[p>>2]>>0]|0)==39){c[p>>2]=(c[p>>2]|0)+1;c[q>>2]=Vv(c[p>>2]|0,39)|0;if(!(c[q>>2]|0)){H=45;break}if((c[q>>2]|0)==(c[p>>2]|0)){H=45;break}c[u>>2]=Tf(c[i>>2]|0,c[p>>2]|0,(c[q>>2]|0)-(c[p>>2]|0)|0)|0;c[p>>2]=c[q>>2]}else c[u>>2]=Tf(c[i>>2]|0,c[p>>2]|0,1)|0;do if(!(c[u>>2]|0)?(a[(c[p>>2]|0)+1>>0]|0)==63:0){j=c[r+(c[t>>2]<<2)>>2]|0;if((c[v>>2]|0)!=38){c[j>>2]=0;break}c[A>>2]=j;if(!(c[(c[A>>2]|0)+12>>2]|0)){c[c[A>>2]>>2]=0;c[(c[A>>2]|0)+4>>2]=0}c[(c[A>>2]|0)+8>>2]=0}else H=55;while(0);if((H|0)==55){H=0;if(!(c[u>>2]|0)){H=56;break}do if((c[v>>2]|0)!=38){if((c[v>>2]|0)==47){j=$f(c[u>>2]|0,1,8)|0;c[c[r+(c[t>>2]<<2)>>2]>>2]=j;break}j=c[u>>2]|0;if((c[v>>2]|0)==45){z=$f(j,1,1)|0;c[c[r+(c[t>>2]<<2)>>2]>>2]=z;break}else{z=$f(j,1,5)|0;c[c[r+(c[t>>2]<<2)>>2]>>2]=z;break}}else{c[B>>2]=c[r+(c[t>>2]<<2)>>2];z=c[u>>2]|0;if(!(c[(c[B>>2]|0)+12>>2]|0)){j=Zf(z,1,c[B>>2]|0)|0;c[(c[B>>2]|0)+12>>2]=j;if(!(c[(c[B>>2]|0)+12>>2]|0)){H=65;break a}c[(c[B>>2]|0)+8>>2]=c[c[B>>2]>>2];c[(c[B>>2]|0)+4>>2]=0;a[s+(c[t>>2]|0)>>0]=2;break}c[C>>2]=Xf(z,1,D)|0;if(!((c[C>>2]|0)!=0&(c[D>>2]|0)!=0)){H=60;break a}if(((c[(c[B>>2]|0)+4>>2]|0)+(c[D>>2]|0)|0)>>>0>(c[c[B>>2]>>2]|0)>>>0){H=62;break a}_w((c[(c[B>>2]|0)+12>>2]|0)+(c[(c[B>>2]|0)+4>>2]|0)|0,c[C>>2]|0,c[D>>2]|0)|0;c[(c[B>>2]|0)+8>>2]=c[D>>2];a[s+(c[t>>2]|0)>>0]=1}while(0);Rf(c[u>>2]|0);c[u>>2]=0;if(!(c[c[r+(c[t>>2]<<2)>>2]>>2]|0)){H=73;break}}c[t>>2]=(c[t>>2]|0)+1}}else c[v>>2]=a[c[p>>2]>>0];c[p>>2]=(c[p>>2]|0)+1}if((H|0)==45){c[o>>2]=29;break}else if((H|0)==56){c[o>>2]=68;break}else if((H|0)==60){c[o>>2]=65;break}else if((H|0)==62){c[o>>2]=200;break}else if((H|0)==65){c[o>>2]=65;break}else if((H|0)==73){c[o>>2]=65;break}else if((H|0)==76){Rf(c[w>>2]|0);c[h>>2]=0;I=c[h>>2]|0;l=g;return I|0}}while(0);Rf(c[w>>2]|0);Rf(c[u>>2]|0);while(1){u=c[t>>2]|0;c[t>>2]=u+-1;if(!u)break;u=c[t>>2]|0;if(!(a[s+(c[t>>2]|0)>>0]|0)){Tp(c[c[r+(u<<2)>>2]>>2]|0);c[c[r+(c[t>>2]<<2)>>2]>>2]=0;continue}w=c[r+(c[t>>2]<<2)>>2]|0;if((((a[s+u>>0]|0)!=0^1)&1|0)==1){c[E>>2]=w;c[(c[E>>2]|0)+8>>2]=0;continue}else{c[F>>2]=w;vf(c[(c[F>>2]|0)+12>>2]|0);c[(c[F>>2]|0)+12>>2]=0;c[(c[F>>2]|0)+8>>2]=0;c[(c[F>>2]|0)+4>>2]=0;c[c[F>>2]>>2]=0;continue}}c[h>>2]=c[o>>2];I=c[h>>2]|0;l=g;return I|0}return 0}function lg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f+28|0;h=f+24|0;i=f+20|0;j=f+16|0;k=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[k>>2]=e;c[j>>2]=kg(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0,k)|0;k=mg(c[j>>2]|0)|0;l=f;return k|0}function mg(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=ng(1,c[d>>2]|0)|0;l=b;return a|0}function ng(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;if(!(c[f>>2]|0)){g=0;l=d;return g|0}g=(c[e>>2]&127)<<24|c[f>>2]&65535;l=d;return g|0}function og(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+8|0;e=b+4|0;f=b;c[e>>2]=a;c[f>>2]=0;while(1){if((c[f>>2]|0)>>>0>=13){g=6;break}a=(Fu(c[1180+(c[f>>2]<<3)+4>>2]|0,c[e>>2]|0)|0)!=0;h=c[f>>2]|0;if(!a){g=4;break}c[f>>2]=h+1}if((g|0)==4){c[17711]=c[17711]|c[1180+(h<<3)>>2];c[d>>2]=0;i=c[d>>2]|0;l=b;return i|0}else if((g|0)==6){c[d>>2]=88;i=c[d>>2]|0;l=b;return i|0}return 0}function pg(){return c[17712]|0}function qg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+8|0;f=d+4|0;g=d;c[f>>2]=a;c[g>>2]=b;if((c[f>>2]|0)<0|(c[f>>2]|0)>>>0>=13){c[e>>2]=0;h=c[e>>2]|0;l=d;return h|0}if(c[g>>2]|0)c[c[g>>2]>>2]=c[1180+(c[f>>2]<<3)>>2];c[e>>2]=c[1180+(c[f>>2]<<3)+4>>2];h=c[e>>2]|0;l=d;return h|0}function rg(){c[17712]=0;if(Wg()|0)return;sg();c[17712]=c[17712]&~c[17711];return}function sg(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;b=l;l=l+288|0;if((l|0)>=(m|0))$(288);d=b+20|0;e=b+16|0;f=b+24|0;g=b+12|0;h=b+8|0;i=b+4|0;j=b;c[d>>2]=22971;c[j>>2]=0;c[e>>2]=Pv(c[d>>2]|0,23624)|0;if(!(c[e>>2]|0)){l=b;return}while(1){if(!(Gv(f,256,c[e>>2]|0)|0))break;c[j>>2]=(c[j>>2]|0)+1;c[g>>2]=f;while(1){if(a[c[g>>2]>>0]&128|0)break;if(!(vv(a[c[g>>2]>>0]|0)|0))break;c[g>>2]=(c[g>>2]|0)+1}c[h>>2]=Vv(c[g>>2]|0,10)|0;if(c[h>>2]|0)a[c[h>>2]>>0]=0;d=c[g>>2]|0;if(a[c[g>>2]>>0]|0)k=(hv(c[g>>2]|0)|0)-1|0;else k=0;c[h>>2]=d+k;while(1){if((c[h>>2]|0)>>>0<=(c[g>>2]|0)>>>0)break;if((a[c[h>>2]>>0]&128|0)==0?vv(a[c[h>>2]>>0]|0)|0:0)a[c[h>>2]>>0]=0;c[h>>2]=(c[h>>2]|0)+-1}if(!(a[c[g>>2]>>0]|0))continue;if((a[c[g>>2]>>0]|0)==35)continue;c[i>>2]=0;while(1){if((c[i>>2]|0)>>>0>=13)break;d=(Fu(c[1180+(c[i>>2]<<3)+4>>2]|0,c[g>>2]|0)|0)!=0;n=c[i>>2]|0;if(!d){o=23;break}c[i>>2]=n+1}if((o|0)==23){o=0;c[17711]=c[17711]|c[1180+(n<<3)>>2]}}aw(c[e>>2]|0)|0;Qv(c[e>>2]|0)|0;l=b;return}function tg(){c[17713]=1;return}function ug(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+8|0;f=d+4|0;g=d;c[f>>2]=b;if(!(c[f>>2]|0)){Ft(22);c[e>>2]=0;h=c[e>>2]|0;l=d;return h|0}b=c[f>>2]|0;if(!(c[17713]|0)){c[e>>2]=Kw(b)|0;h=c[e>>2]|0;l=d;return h|0}i=Kw(b+0+5|0)|0;c[g>>2]=i;if(i|0){a[c[g>>2]>>0]=c[f>>2];a[(c[g>>2]|0)+1>>0]=(c[f>>2]|0)>>>8;a[(c[g>>2]|0)+2>>0]=(c[f>>2]|0)>>>16;a[(c[g>>2]|0)+3>>0]=85;a[(c[g>>2]|0)+(4+(c[f>>2]|0))>>0]=-86;c[e>>2]=(c[g>>2]|0)+4;h=c[e>>2]|0;l=d;return h|0}else{c[e>>2]=0;h=c[e>>2]|0;l=d;return h|0}return 0}function vg(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+8|0;f=d+4|0;g=d;c[f>>2]=b;if(!(c[f>>2]|0)){Ft(22);c[e>>2]=0;h=c[e>>2]|0;l=d;return h|0}b=c[f>>2]|0;if(!(c[17713]|0)){c[e>>2]=Hg(b)|0;h=c[e>>2]|0;l=d;return h|0}i=Hg(b+0+5|0)|0;c[g>>2]=i;if(i|0){a[c[g>>2]>>0]=c[f>>2];a[(c[g>>2]|0)+1>>0]=(c[f>>2]|0)>>>8;a[(c[g>>2]|0)+2>>0]=(c[f>>2]|0)>>>16;a[(c[g>>2]|0)+3>>0]=-52;a[(c[g>>2]|0)+(4+(c[f>>2]|0))>>0]=-86;c[e>>2]=(c[g>>2]|0)+4;h=c[e>>2]|0;l=d;return h|0}else{c[e>>2]=0;h=c[e>>2]|0;l=d;return h|0}return 0}function wg(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[g>>2]=a;c[h>>2]=b;b=c[g>>2]|0;if(!(c[17713]|0)){a=(Sg(b)|0)!=0;n=c[g>>2]|0;o=c[h>>2]|0;if(a){c[f>>2]=Rg(n,o)|0;p=c[f>>2]|0;l=e;return p|0}else{c[f>>2]=Nw(n,o)|0;p=c[f>>2]|0;l=e;return p|0}}c[i>>2]=b;if(!(c[g>>2]|0)){c[f>>2]=ug(c[h>>2]|0)|0;p=c[f>>2]|0;l=e;return p|0}xg(c[i>>2]|0);c[k>>2]=d[(c[i>>2]|0)+-4>>0];c[k>>2]=c[k>>2]|(d[(c[i>>2]|0)+-3>>0]|0)<<8;c[k>>2]=c[k>>2]|(d[(c[i>>2]|0)+-2>>0]|0)<<16;if((c[k>>2]|0)>>>0>=(c[h>>2]|0)>>>0){c[f>>2]=c[g>>2];p=c[f>>2]|0;l=e;return p|0}b=c[h>>2]|0;if((d[(c[i>>2]|0)+-1>>0]|0|0)==204)c[j>>2]=vg(b)|0;else c[j>>2]=ug(b)|0;if(c[j>>2]|0){_w(c[j>>2]|0,c[g>>2]|0,c[k>>2]|0)|0;Uw((c[j>>2]|0)+(c[k>>2]|0)|0,0,(c[h>>2]|0)-(c[k>>2]|0)|0)|0;yg(c[i>>2]|0);c[f>>2]=c[j>>2];p=c[f>>2]|0;l=e;return p|0}else{c[f>>2]=0;p=c[f>>2]|0;l=e;return p|0}return 0}function xg(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=b+8|0;f=b;g=b+24|0;h=b+20|0;i=b+16|0;c[g>>2]=a;if(!(c[17713]|0)){l=b;return}c[h>>2]=c[g>>2];if(!(c[h>>2]|0)){l=b;return}if((d[(c[h>>2]|0)+-1>>0]|0|0)!=85?(d[(c[h>>2]|0)+-1>>0]|0|0)!=204:0){g=d[(c[h>>2]|0)+-1>>0]|0;c[f>>2]=c[h>>2];c[f+4>>2]=g;We(22992,f)}c[i>>2]=d[(c[h>>2]|0)+-4>>0];c[i>>2]=c[i>>2]|(d[(c[h>>2]|0)+-3>>0]|0)<<8;c[i>>2]=c[i>>2]|(d[(c[h>>2]|0)+-2>>0]|0)<<16;if((d[(c[h>>2]|0)+(c[i>>2]|0)>>0]|0|0)!=170){i=d[(c[h>>2]|0)+-1>>0]|0;c[e>>2]=c[h>>2];c[e+4>>2]=i;We(23033,e)}else{l=b;return}}function yg(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=c[d>>2];if(!(c[e>>2]|0)){l=b;return}if(c[17713]|0){xg(c[e>>2]|0);a=(Sg(c[d>>2]|0)|0)!=0;f=(c[e>>2]|0)+-4|0;if(a){Pg(f);l=b;return}else{Lw(f);l=b;return}}else{f=(Sg(c[d>>2]|0)|0)!=0;d=c[e>>2]|0;if(f){Pg(d);l=b;return}else{Lw(d);l=b;return}}}function zg(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[d>>2]=a;Ht(1284)|0;c[e>>2]=c[17714];c[17715]=c[d>>2]&1;c[17714]=c[d>>2]&2;c[17716]=c[d>>2]&8;c[17717]=c[d>>2]&16;if(!((((c[e>>2]|0)==0|(c[17714]|0)!=0)^1)&(c[17718]|0)!=0)){It(1284)|0;l=b;return}c[17718]=0;Ag();It(1284)|0;l=b;return}function Ag(){var a=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);if(c[17715]|0){l=a;return}Te(Je(23073)|0,a);l=a;return}function Bg(){var a=0,b=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=a;Ht(1284)|0;c[b>>2]=c[17715]|0?1:0;c[b>>2]=c[b>>2]|(c[17714]|0?2:0);c[b>>2]=c[b>>2]|(c[17719]|0?4:0);c[b>>2]=c[b>>2]|(c[17716]|0?8:0);c[b>>2]=c[b>>2]|(c[17717]|0?16:0);It(1284)|0;l=a;return c[b>>2]|0}function Cg(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;Ht(1284)|0;Dg(c[d>>2]|0);It(1284)|0;l=b;return}function Dg(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+32|0;if((l|0)>=(m|0))$(32);d=b+8|0;e=b;f=b+16|0;g=b+12|0;c[f>>2]=a;if(c[f>>2]|0){if((c[f>>2]|0)>>>0<16384)c[f>>2]=16384;if(c[17721]|0){Ve(23129,d);l=b;return}else{Eg(c[f>>2]|0);Fg(c[17722]|0,c[f>>2]|0);l=b;return}}c[17720]=1;c[g>>2]=kw()|0;f=c[g>>2]|0;if((f|0)==(nw()|0)){l=b;return}if(ow(c[g>>2]|0)|0)We(23106,e);g=kw()|0;if((g|0)!=(nw()|0))We(23106,e);if(ow(0)|0){l=b;return}else We(23106,e)}function Eg(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;b=l;l=l+48|0;if((l|0)>=(m|0))$(48);d=b+16|0;e=b+8|0;f=b+32|0;g=b+28|0;h=b+24|0;i=b+20|0;c[f>>2]=a;c[17723]=c[f>>2];if(c[17720]|0)Xe(23237,b);c[h>>2]=Ra(30)|0;c[g>>2]=(c[h>>2]|0)!=-1&(c[h>>2]|0)>0?c[h>>2]|0:4096;c[17723]=(c[17723]|0)+(c[g>>2]|0)-1&~((c[g>>2]|0)-1);c[17722]=rw(0,c[17723]|0,3,34,-1,0)|0;if((c[17722]|0)==(-1|0)){g=c[17723]|0;h=Nu(c[(xu()|0)>>2]|0)|0;c[e>>2]=g;c[e+4>>2]=h;Te(23263,e)}else{c[17724]=1;c[17721]=1}if(c[17721]|0){j=c[17722]|0;c[i>>2]=j;k=c[17723]|0;n=c[i>>2]|0;c[n>>2]=k;o=c[i>>2]|0;p=o+4|0;c[p>>2]=0;l=b;return}c[17722]=Kw(c[17723]|0)|0;if(!(c[17722]|0)){c[d>>2]=c[17723];We(23311,d)}c[17721]=1;j=c[17722]|0;c[i>>2]=j;k=c[17723]|0;n=c[i>>2]|0;c[n>>2]=k;o=c[i>>2]|0;p=o+4|0;c[p>>2]=0;l=b;return}function Fg(a,b){a=a|0;b=b|0;var d=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);c[d+8>>2]=a;c[d+4>>2]=b;if(c[17716]|0){l=d;return}Te(23175,d);l=d;return}function Gg(){return 0}function Hg(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[d>>2]=a;Ht(1284)|0;c[e>>2]=Ig(c[d>>2]|0)|0;It(1284)|0;l=b;return c[e>>2]|0}function Ig(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+32|0;if((l|0)>=(m|0))$(32);d=b+8|0;e=b;f=b+20|0;g=b+16|0;h=b+12|0;c[g>>2]=a;if((c[17721]|0)==0?(Dg(32768),(c[17721]|0)==0):0){Te(Je(23351)|0,e);Ft(12);c[f>>2]=0;i=c[f>>2]|0;l=b;return i|0}if(c[17719]|0?Wg()|0:0){Te(Je(23412)|0,d);Ft(12);c[f>>2]=0;i=c[f>>2]|0;l=b;return i|0}if(!((c[17718]|0)==0|(c[17714]|0)!=0)){c[17718]=0;Ag()}c[g>>2]=((((c[g>>2]|0)+31|0)>>>0)/32|0)<<5;c[h>>2]=Jg(c[17722]|0,c[g>>2]|0)|0;if(c[h>>2]|0)Kg(c[g>>2]|0,0);c[f>>2]=c[h>>2]|0?(c[h>>2]|0)+8|0:0;i=c[f>>2]|0;l=b;return i|0}function Jg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+12|0;f=d+8|0;g=d+4|0;h=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=c[e>>2];while(1){if(!(Lg(c[g>>2]|0)|0))break;if((c[(c[g>>2]|0)+4>>2]&1|0)==0?(c[c[g>>2]>>2]|0)>>>0>=(c[f>>2]|0)>>>0:0){i=5;break}c[g>>2]=Ng(c[g>>2]|0)|0}if((i|0)==5?(i=(c[g>>2]|0)+4|0,c[i>>2]=c[i>>2]|1,((c[c[g>>2]>>2]|0)-(c[f>>2]|0)|0)>>>0>8):0){c[h>>2]=(c[g>>2]|0)+8+(c[f>>2]|0);c[c[h>>2]>>2]=(c[c[g>>2]>>2]|0)-(c[f>>2]|0)-8;c[(c[h>>2]|0)+4>>2]=0;c[c[g>>2]>>2]=c[f>>2];Mg(c[h>>2]|0)}if(Lg(c[g>>2]|0)|0){j=c[g>>2]|0;l=d;return j|0}Ft(12);c[g>>2]=0;j=c[g>>2]|0;l=d;return j|0}function Kg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;if(c[e>>2]|0){c[17725]=(c[17725]|0)+(c[e>>2]|0);c[17726]=(c[17726]|0)+1}if(!(c[f>>2]|0)){l=d;return}c[17725]=(c[17725]|0)-(c[f>>2]|0);c[17726]=(c[17726]|0)+-1;l=d;return}function Lg(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+8|0;e=b+4|0;f=b;c[d>>2]=a;c[e>>2]=c[d>>2];c[f>>2]=c[17722];if((c[e>>2]|0)>>>0<(c[f>>2]|0)>>>0){g=0;h=g&1;l=b;return h|0}g=(c[e>>2]|0)>>>0<((c[f>>2]|0)+(c[17723]|0)|0)>>>0;h=g&1;l=b;return h|0}function Mg(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+8|0;e=b+4|0;f=b;c[d>>2]=a;c[e>>2]=Og(c[d>>2]|0)|0;c[f>>2]=Ng(c[d>>2]|0)|0;if(c[e>>2]|0?(c[(c[e>>2]|0)+4>>2]&1|0)==0:0){a=c[e>>2]|0;c[a>>2]=(c[a>>2]|0)+(8+(c[c[d>>2]>>2]|0));c[d>>2]=c[e>>2]}if(!(c[f>>2]|0)){l=b;return}if(c[(c[f>>2]|0)+4>>2]&1|0){l=b;return}e=c[d>>2]|0;c[e>>2]=(c[e>>2]|0)+(8+(c[c[f>>2]>>2]|0));l=b;return}function Ng(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=(c[d>>2]|0)+8+(c[c[d>>2]>>2]|0);if(Lg(c[e>>2]|0)|0){f=c[e>>2]|0;l=b;return f|0}c[e>>2]=0;f=c[e>>2]|0;l=b;return f|0}function Og(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+8|0;e=b+4|0;f=b;c[d>>2]=a;if((c[d>>2]|0)==(c[17722]|0)){c[e>>2]=0;g=c[e>>2]|0;l=b;return g|0}c[e>>2]=c[17722];while(1){c[f>>2]=Ng(c[e>>2]|0)|0;if((c[f>>2]|0)==(c[d>>2]|0))break;c[e>>2]=c[f>>2]}g=c[e>>2]|0;l=b;return g|0}function Pg(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;Ht(1284)|0;Qg(c[d>>2]|0);It(1284)|0;l=b;return}function Qg(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0;e=l;l=l+96|0;if((l|0)>=(m|0))$(96);f=e+88|0;g=e+84|0;h=e+80|0;i=e+76|0;j=e+72|0;k=e+95|0;n=e+24|0;o=e+68|0;p=e+64|0;q=e+60|0;r=e+94|0;s=e+16|0;t=e+56|0;u=e+52|0;v=e+48|0;w=e+93|0;x=e+8|0;y=e+44|0;z=e+40|0;A=e+36|0;B=e+92|0;C=e;E=e+32|0;c[f>>2]=b;if(!(c[f>>2]|0)){l=e;return}c[g>>2]=(c[f>>2]|0)+-8;c[h>>2]=c[c[g>>2]>>2];c[i>>2]=(c[g>>2]|0)+8;c[j>>2]=c[h>>2];a[k>>0]=-1;f=n;c[f>>2]=d[k>>0];c[f+4>>2]=0;while(1){if(!(c[i>>2]&7|0?(c[j>>2]|0)!=0:0))break;a[c[i>>2]>>0]=a[k>>0]|0;c[i>>2]=(c[i>>2]|0)+1;c[j>>2]=(c[j>>2]|0)+-1}if((c[j>>2]|0)>>>0>=8){f=n;b=gx(c[f>>2]|0,c[f+4>>2]|0,16843009,16843009)|0;f=n;c[f>>2]=b;c[f+4>>2]=D;do{c[o>>2]=c[i>>2];f=n;b=c[f+4>>2]|0;F=c[o>>2]|0;c[F>>2]=c[f>>2];c[F+4>>2]=b;c[j>>2]=(c[j>>2]|0)-8;c[i>>2]=(c[i>>2]|0)+8}while((c[j>>2]|0)>>>0>=8)}while(1){if(!(c[j>>2]|0))break;a[c[i>>2]>>0]=a[k>>0]|0;c[i>>2]=(c[i>>2]|0)+1;c[j>>2]=(c[j>>2]|0)+-1}c[p>>2]=(c[g>>2]|0)+8;c[q>>2]=c[h>>2];a[r>>0]=-86;j=s;c[j>>2]=d[r>>0];c[j+4>>2]=0;while(1){if(!(c[p>>2]&7|0?(c[q>>2]|0)!=0:0))break;a[c[p>>2]>>0]=a[r>>0]|0;c[p>>2]=(c[p>>2]|0)+1;c[q>>2]=(c[q>>2]|0)+-1}if((c[q>>2]|0)>>>0>=8){j=s;i=gx(c[j>>2]|0,c[j+4>>2]|0,16843009,16843009)|0;j=s;c[j>>2]=i;c[j+4>>2]=D;do{c[t>>2]=c[p>>2];j=s;i=c[j+4>>2]|0;k=c[t>>2]|0;c[k>>2]=c[j>>2];c[k+4>>2]=i;c[q>>2]=(c[q>>2]|0)-8;c[p>>2]=(c[p>>2]|0)+8}while((c[q>>2]|0)>>>0>=8)}while(1){if(!(c[q>>2]|0))break;a[c[p>>2]>>0]=a[r>>0]|0;c[p>>2]=(c[p>>2]|0)+1;c[q>>2]=(c[q>>2]|0)+-1}c[u>>2]=(c[g>>2]|0)+8;c[v>>2]=c[h>>2];a[w>>0]=85;q=x;c[q>>2]=d[w>>0];c[q+4>>2]=0;while(1){if(!(c[u>>2]&7|0?(c[v>>2]|0)!=0:0))break;a[c[u>>2]>>0]=a[w>>0]|0;c[u>>2]=(c[u>>2]|0)+1;c[v>>2]=(c[v>>2]|0)+-1}if((c[v>>2]|0)>>>0>=8){q=x;p=gx(c[q>>2]|0,c[q+4>>2]|0,16843009,16843009)|0;q=x;c[q>>2]=p;c[q+4>>2]=D;do{c[y>>2]=c[u>>2];q=x;p=c[q+4>>2]|0;r=c[y>>2]|0;c[r>>2]=c[q>>2];c[r+4>>2]=p;c[v>>2]=(c[v>>2]|0)-8;c[u>>2]=(c[u>>2]|0)+8}while((c[v>>2]|0)>>>0>=8)}while(1){if(!(c[v>>2]|0))break;a[c[u>>2]>>0]=a[w>>0]|0;c[u>>2]=(c[u>>2]|0)+1;c[v>>2]=(c[v>>2]|0)+-1}c[z>>2]=(c[g>>2]|0)+8;c[A>>2]=c[h>>2];a[B>>0]=0;v=C;c[v>>2]=d[B>>0];c[v+4>>2]=0;while(1){if(!(c[z>>2]&7|0?(c[A>>2]|0)!=0:0))break;a[c[z>>2]>>0]=a[B>>0]|0;c[z>>2]=(c[z>>2]|0)+1;c[A>>2]=(c[A>>2]|0)+-1}if((c[A>>2]|0)>>>0>=8){v=C;u=gx(c[v>>2]|0,c[v+4>>2]|0,16843009,16843009)|0;v=C;c[v>>2]=u;c[v+4>>2]=D;do{c[E>>2]=c[z>>2];v=C;u=c[v+4>>2]|0;w=c[E>>2]|0;c[w>>2]=c[v>>2];c[w+4>>2]=u;c[A>>2]=(c[A>>2]|0)-8;c[z>>2]=(c[z>>2]|0)+8}while((c[A>>2]|0)>>>0>=8)}while(1){if(!(c[A>>2]|0))break;a[c[z>>2]>>0]=a[B>>0]|0;c[z>>2]=(c[z>>2]|0)+1;c[A>>2]=(c[A>>2]|0)+-1}Kg(0,c[h>>2]|0);h=(c[g>>2]|0)+4|0;c[h>>2]=c[h>>2]&-2;Mg(c[g>>2]|0);l=e;return}function Rg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+16|0;f=d+12|0;g=d+8|0;h=d+4|0;i=d;c[e>>2]=a;c[f>>2]=b;Ht(1284)|0;c[g>>2]=(c[e>>2]|0)+(0-8);c[h>>2]=c[c[g>>2]>>2];if((c[f>>2]|0)>>>0<(c[h>>2]|0)>>>0){c[i>>2]=c[e>>2];It(1284)|0;j=c[i>>2]|0;l=d;return j|0}c[i>>2]=Ig(c[f>>2]|0)|0;if(!(c[i>>2]|0)){It(1284)|0;j=c[i>>2]|0;l=d;return j|0}_w(c[i>>2]|0,c[e>>2]|0,c[h>>2]|0)|0;Uw((c[i>>2]|0)+(c[h>>2]|0)|0,0,(c[f>>2]|0)-(c[h>>2]|0)|0)|0;Qg(c[e>>2]|0);It(1284)|0;j=c[i>>2]|0;l=d;return j|0}function Sg(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;if(c[17721]|0)e=(Lg(c[d>>2]|0)|0)!=0;else e=0;l=b;return e&1|0}function Tg(){var b=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;b=l;l=l+96|0;if((l|0)>=(m|0))$(96);e=b+76|0;f=b+72|0;g=b+83|0;h=b+24|0;i=b+68|0;j=b+64|0;k=b+60|0;n=b+82|0;o=b+16|0;p=b+56|0;q=b+52|0;r=b+48|0;s=b+81|0;t=b+8|0;u=b+44|0;v=b+40|0;w=b+36|0;x=b+80|0;y=b;z=b+32|0;if(!(c[17721]|0)){l=b;return}c[e>>2]=c[17722];c[f>>2]=c[17723];a[g>>0]=-1;A=h;c[A>>2]=d[g>>0];c[A+4>>2]=0;while(1){if(!(c[e>>2]&7|0?(c[f>>2]|0)!=0:0))break;a[c[e>>2]>>0]=a[g>>0]|0;c[e>>2]=(c[e>>2]|0)+1;c[f>>2]=(c[f>>2]|0)+-1}if((c[f>>2]|0)>>>0>=8){A=h;B=gx(c[A>>2]|0,c[A+4>>2]|0,16843009,16843009)|0;A=h;c[A>>2]=B;c[A+4>>2]=D;do{c[i>>2]=c[e>>2];A=h;B=c[A+4>>2]|0;C=c[i>>2]|0;c[C>>2]=c[A>>2];c[C+4>>2]=B;c[f>>2]=(c[f>>2]|0)-8;c[e>>2]=(c[e>>2]|0)+8}while((c[f>>2]|0)>>>0>=8)}while(1){if(!(c[f>>2]|0))break;a[c[e>>2]>>0]=a[g>>0]|0;c[e>>2]=(c[e>>2]|0)+1;c[f>>2]=(c[f>>2]|0)+-1}c[j>>2]=c[17722];c[k>>2]=c[17723];a[n>>0]=-86;f=o;c[f>>2]=d[n>>0];c[f+4>>2]=0;while(1){if(!(c[j>>2]&7|0?(c[k>>2]|0)!=0:0))break;a[c[j>>2]>>0]=a[n>>0]|0;c[j>>2]=(c[j>>2]|0)+1;c[k>>2]=(c[k>>2]|0)+-1}if((c[k>>2]|0)>>>0>=8){f=o;e=gx(c[f>>2]|0,c[f+4>>2]|0,16843009,16843009)|0;f=o;c[f>>2]=e;c[f+4>>2]=D;do{c[p>>2]=c[j>>2];f=o;e=c[f+4>>2]|0;g=c[p>>2]|0;c[g>>2]=c[f>>2];c[g+4>>2]=e;c[k>>2]=(c[k>>2]|0)-8;c[j>>2]=(c[j>>2]|0)+8}while((c[k>>2]|0)>>>0>=8)}while(1){if(!(c[k>>2]|0))break;a[c[j>>2]>>0]=a[n>>0]|0;c[j>>2]=(c[j>>2]|0)+1;c[k>>2]=(c[k>>2]|0)+-1}c[q>>2]=c[17722];c[r>>2]=c[17723];a[s>>0]=85;k=t;c[k>>2]=d[s>>0];c[k+4>>2]=0;while(1){if(!(c[q>>2]&7|0?(c[r>>2]|0)!=0:0))break;a[c[q>>2]>>0]=a[s>>0]|0;c[q>>2]=(c[q>>2]|0)+1;c[r>>2]=(c[r>>2]|0)+-1}if((c[r>>2]|0)>>>0>=8){k=t;j=gx(c[k>>2]|0,c[k+4>>2]|0,16843009,16843009)|0;k=t;c[k>>2]=j;c[k+4>>2]=D;do{c[u>>2]=c[q>>2];k=t;j=c[k+4>>2]|0;n=c[u>>2]|0;c[n>>2]=c[k>>2];c[n+4>>2]=j;c[r>>2]=(c[r>>2]|0)-8;c[q>>2]=(c[q>>2]|0)+8}while((c[r>>2]|0)>>>0>=8)}while(1){if(!(c[r>>2]|0))break;a[c[q>>2]>>0]=a[s>>0]|0;c[q>>2]=(c[q>>2]|0)+1;c[r>>2]=(c[r>>2]|0)+-1}c[v>>2]=c[17722];c[w>>2]=c[17723];a[x>>0]=0;r=y;c[r>>2]=d[x>>0];c[r+4>>2]=0;while(1){if(!(c[v>>2]&7|0?(c[w>>2]|0)!=0:0))break;a[c[v>>2]>>0]=a[x>>0]|0;c[v>>2]=(c[v>>2]|0)+1;c[w>>2]=(c[w>>2]|0)+-1}if((c[w>>2]|0)>>>0>=8){r=y;q=gx(c[r>>2]|0,c[r+4>>2]|0,16843009,16843009)|0;r=y;c[r>>2]=q;c[r+4>>2]=D;do{c[z>>2]=c[v>>2];r=y;q=c[r+4>>2]|0;s=c[z>>2]|0;c[s>>2]=c[r>>2];c[s+4>>2]=q;c[w>>2]=(c[w>>2]|0)-8;c[v>>2]=(c[v>>2]|0)+8}while((c[w>>2]|0)>>>0>=8)}while(1){if(!(c[w>>2]|0))break;a[c[v>>2]>>0]=a[x>>0]|0;c[v>>2]=(c[v>>2]|0)+1;c[w>>2]=(c[w>>2]|0)+-1}if(c[17724]|0)uw(c[17722]|0,c[17723]|0)|0;c[17722]=0;c[17721]=0;c[17723]=0;c[17719]=0;l=b;return}function Ug(){var a=0,b=0,d=0,e=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=a;Ht(1284)|0;if(!(c[17721]|0)){It(1284)|0;l=a;return}d=c[17723]|0;e=c[17726]|0;c[b>>2]=c[17725];c[b+4>>2]=d;c[b+8>>2]=e;Te(23465,b);It(1284)|0;l=a;return}function Vg(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0;b=l;l=l+544|0;if((l|0)>=(m|0))$(544);d=b+8|0;e=b;f=b+28|0;g=b+24|0;h=b+20|0;i=b+16|0;j=b+288|0;k=b+12|0;n=b+32|0;c[f>>2]=a;if(c[17727]|0){if(Wg()|0){Xg(5);Yg()}if(c[17727]|0)Se(23506,23512,114,23519)}c[17727]=1;do if(c[f>>2]|0){if(c[17728]|0)Se(23546,23512,121,23519)}else{if(!($v(23569,0)|0)){if(!(c[17728]|0))break;Se(23546,23512,132,23519)}c[h>>2]=Pv(23594,23624)|0;if(!(c[h>>2]|0)){a=c[(xu()|0)>>2]|0;c[i>>2]=a;if((a|0)!=2&(c[i>>2]|0)!=13?($v(23626,0)|0)==0:0){a=Nu(c[i>>2]|0)|0;c[e>>2]=23594;c[e+4>>2]=a;Te(23640,e);Aa()}}else{if(Gv(j,256,c[h>>2]|0)|0?Aw(j)|0:0){Qv(c[h>>2]|0)|0;if(!(c[17728]|0))break;Se(23546,23512,151,23519)}Qv(c[h>>2]|0)|0}c[17728]=1}while(0);if(c[17728]|0){l=b;return}c[g>>2]=Gt(1328)|0;if(c[g>>2]|0){c[d>>2]=Bt(c[g>>2]|0)|0;Te(23684,d);Aa()}c[k>>2]=Pv(23569,23624)|0;if(c[k>>2]|0){if(Gv(n,256,c[k>>2]|0)|0?Aw(n)|0:0)c[17729]=1;Qv(c[k>>2]|0)|0}Xg(1);l=b;return}function Wg(){return ((c[17728]|0)!=0^1)&1|0}function Xg(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+32|0;if((l|0)>=(m|0))$(32);d=b;e=b+20|0;f=b+16|0;g=b+12|0;c[e>>2]=a;c[f>>2]=0;Zg();c[g>>2]=c[17730];switch(c[17730]|0){case 0:{if((c[e>>2]|0)==1|(c[e>>2]|0)==4|(c[e>>2]|0)==5)c[f>>2]=1;break}case 1:{if((c[e>>2]|0)==2|(c[e>>2]|0)==4|(c[e>>2]|0)==5)c[f>>2]=1;break}case 2:{if((c[e>>2]|0)==3|(c[e>>2]|0)==4|(c[e>>2]|0)==5)c[f>>2]=1;break}case 3:{if((c[e>>2]|0)==6|(c[e>>2]|0)==2|(c[e>>2]|0)==4|(c[e>>2]|0)==5)c[f>>2]=1;break}case 4:{if((c[e>>2]|0)==6|(c[e>>2]|0)==4|(c[e>>2]|0)==5|(c[e>>2]|0)==2)c[f>>2]=1;break}case 5:{if((c[e>>2]|0)==6)c[f>>2]=1;break}default:{}}if(c[f>>2]|0)c[17730]=c[e>>2];_g();if(!(c[f>>2]|0?!(Oe(2)|0):0)){a=$g(c[g>>2]|0)|0;g=$g(c[e>>2]|0)|0;e=c[f>>2]|0?23739:23747;c[d>>2]=a;c[d+4>>2]=g;c[d+8>>2]=e;Te(23754,d)}if(c[f>>2]|0){l=b;return}else{Yg();l=b;return}}function Yg(){Rv(0)|0;Aa()}function Zg(){var a=0,b=0,d=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=a;d=a+4|0;c[d>>2]=Ht(1328)|0;if(c[d>>2]|0){c[b>>2]=Bt(c[d>>2]|0)|0;Te(23912,b);Aa()}else{l=a;return}}function _g(){var a=0,b=0,d=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=a;d=a+4|0;c[d>>2]=It(1328)|0;if(c[d>>2]|0){c[b>>2]=Bt(c[d>>2]|0)|0;Te(23857,b);Aa()}else{l=a;return}}function $g(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[d>>2]=a;switch(c[d>>2]|0){case 0:{c[e>>2]=23794;break}case 1:{c[e>>2]=23803;break}case 2:{c[e>>2]=23808;break}case 3:{c[e>>2]=23818;break}case 4:{c[e>>2]=23830;break}case 5:{c[e>>2]=23836;break}case 6:{c[e>>2]=23848;break}default:c[e>>2]=37975}l=b;return c[e>>2]|0}function ah(){var a=0,b=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=a;if(Wg()|0)c[b>>2]=c[17729];else c[b>>2]=0;l=a;return c[b>>2]|0}function bh(){c[17729]=1;return}function ch(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;if(!(Wg()|0))Se(23967,23512,295,23986);if(ah()|0){dh(23512,300,23986,0,c[d>>2]|0);l=b;return}Zg();if(c[17731]|0){_g();l=b;return}else{c[17731]=1;_g();l=b;return}}function dh(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0;g=l;l=l+48|0;if((l|0)>=(m|0))$(48);h=g;i=g+40|0;j=g+36|0;k=g+32|0;n=g+28|0;o=g+24|0;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[n>>2]=e;c[o>>2]=f;if(!(Wg()|0)){l=g;return}Xg(c[n>>2]|0?5:4);f=c[i>>2]|0;i=c[j>>2]|0;j=c[k>>2]|0?24020:72319;e=c[k>>2]|0?c[k>>2]|0:72319;k=c[o>>2]|0?c[o>>2]|0:24032;c[h>>2]=c[n>>2]|0?24013:72319;c[h+4>>2]=f;c[h+8>>2]=i;c[h+12>>2]=j;c[h+16>>2]=e;c[h+20>>2]=k;Te(24057,h);l=g;return}function eh(){var a=0,b=0,d=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=a+4|0;d=a;if(Wg()|0){Zg();c[d>>2]=c[17731];_g();c[b>>2]=c[d>>2]}else c[b>>2]=0;l=a;return c[b>>2]|0}function fh(){var a=0,b=0,d=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=a;if(!(Wg()|0)){c[b>>2]=1;d=c[b>>2]|0;l=a;return d|0}Zg();if((c[17730]|0)==1){_g();gh(0)|0;Zg()}c[b>>2]=(c[17730]|0)==3&1;_g();d=c[b>>2]|0;l=a;return d|0}function gh(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+8|0;e=b+4|0;f=b;c[d>>2]=a;c[e>>2]=4;c[f>>2]=50;if(Wg()|0)Xg(2);if((((((hh(c[d>>2]|0)|0)==0?(ih(c[d>>2]|0)|0)==0:0)?(jh(c[d>>2]|0)|0)==0:0)?(kh()|0)==0:0)?(lh(c[d>>2]|0)|0)==0:0)?(mh()|0)==0:0){c[e>>2]=3;c[f>>2]=0}if(!(Wg()|0)){g=c[f>>2]|0;l=b;return g|0}Xg(c[e>>2]|0);g=c[f>>2]|0;l=b;return g|0}function hh(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+12|0;e=b+8|0;f=b+4|0;g=b;c[d>>2]=a;c[g>>2]=0;c[e>>2]=0;while(1){if(!(c[1432+(c[e>>2]<<2)>>2]|0))break;c[f>>2]=Oh(c[1432+(c[e>>2]<<2)>>2]|0,c[d>>2]|0,1)|0;a=c[1432+(c[e>>2]<<2)>>2]|0;if(c[f>>2]|0)h=Bt(c[f>>2]|0)|0;else h=0;nh(38079,a,0,h);if(c[f>>2]|0)c[g>>2]=1;c[e>>2]=(c[e>>2]|0)+1}l=b;return c[g>>2]|0}function ih(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+12|0;e=b+8|0;f=b+4|0;g=b;c[d>>2]=a;c[g>>2]=0;c[e>>2]=0;while(1){if(!(c[1408+(c[e>>2]<<2)>>2]|0))break;c[f>>2]=sj(c[1408+(c[e>>2]<<2)>>2]|0,c[d>>2]|0,1)|0;a=c[1408+(c[e>>2]<<2)>>2]|0;if(c[f>>2]|0)h=Bt(c[f>>2]|0)|0;else h=0;nh(43214,a,0,h);if(c[f>>2]|0)c[g>>2]=1;c[e>>2]=(c[e>>2]|0)+1}l=b;return c[g>>2]|0}function jh(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+12|0;e=b+8|0;f=b+4|0;g=b;c[d>>2]=a;c[g>>2]=0;c[e>>2]=0;while(1){if(!(c[1384+(c[e>>2]<<2)>>2]|0))break;c[f>>2]=Bi(c[1384+(c[e>>2]<<2)>>2]|0,c[d>>2]|0,1)|0;a=c[1384+(c[e>>2]<<2)>>2]|0;if(c[f>>2]|0)h=Bt(c[f>>2]|0)|0;else h=0;nh(36101,a,0,h);if(c[f>>2]|0)c[g>>2]=1;c[e>>2]=(c[e>>2]|0)+1}l=b;return c[g>>2]|0}function kh(){var a=0,b=0,d=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=a;c[b>>2]=on(1)|0;if(c[b>>2]|0)d=Bt(c[b>>2]|0)|0;else d=0;nh(52643,0,0,d);l=a;return ((c[b>>2]|0)!=0^1^1)&1|0}function lh(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+12|0;e=b+8|0;f=b+4|0;g=b;c[d>>2]=a;c[g>>2]=0;c[e>>2]=0;while(1){if(!(c[1372+(c[e>>2]<<2)>>2]|0))break;c[f>>2]=$j(c[1372+(c[e>>2]<<2)>>2]|0,c[d>>2]|0,1)|0;a=c[1372+(c[e>>2]<<2)>>2]|0;if(c[f>>2]|0)h=Bt(c[f>>2]|0)|0;else h=0;nh(47252,a,0,h);if(c[f>>2]|0)c[g>>2]=1;c[e>>2]=(c[e>>2]|0)+1}l=b;return c[g>>2]|0}function mh(){return 0}function nh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0;f=l;l=l+48|0;if((l|0)>=(m|0))$(48);g=f;h=f+44|0;i=f+40|0;j=f+36|0;k=f+32|0;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;if((c[k>>2]|0)==0?(Oe(2)|0)==0:0){l=f;return}e=(Fu(c[h>>2]|0,36101)|0)!=0;d=e?c[h>>2]|0:43214;e=(Fu(c[h>>2]|0,36101)|0)!=0^1;b=e?24105:72319;do if(Fu(c[h>>2]|0,38079)|0){if(!(Fu(c[h>>2]|0,43214)|0)){n=Pi(c[i>>2]|0)|0;break}if(!(Fu(c[h>>2]|0,36101)|0)){n=Pi(c[i>>2]|0)|0;break}if(Fu(c[h>>2]|0,47252)|0)n=72319;else n=Qj(c[i>>2]|0)|0}else n=th(c[i>>2]|0)|0;while(0);h=c[i>>2]|0;i=c[k>>2]|0?c[k>>2]|0:24111;k=c[j>>2]|0?24116:72319;e=c[j>>2]|0?c[j>>2]|0:72319;a=c[j>>2]|0?47240:72319;c[g>>2]=d;c[g+4>>2]=b;c[g+8>>2]=n;c[g+12>>2]=h;c[g+16>>2]=i;c[g+20>>2]=k;c[g+24>>2]=e;c[g+28>>2]=a;Te(24119,g);l=f;return}function oh(){var a=0,b=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=a;if(Wg()|0){Zg();c[b>>2]=(c[17730]|0)==3&1;_g()}else c[b>>2]=1;l=a;return c[b>>2]|0}function ph(){var a=0,b=0,d=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=a;if(Wg()|0){Zg();c[b>>2]=((c[17730]|0)==3?1:(c[17730]|0)==4)&1;_g();d=c[b>>2]|0;l=a;return d|0}else{c[b>>2]=1;d=c[b>>2]|0;l=a;return d|0}return 0}function qh(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f;h=f+20|0;i=f+16|0;j=f+12|0;k=f+8|0;n=f+4|0;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;if((c[i>>2]|0)!=1){c[g>>2]=c[i>>2];Xe(24163,g)}if((c[j>>2]|0)>>>0<8)c[j>>2]=8;c[n>>2]=wf(1,8+(c[j>>2]|0)|0)|0;if(c[n>>2]|0){j=c[n>>2]|0;a[j>>0]=a[24209]|0;a[j+1>>0]=a[24210]|0;a[j+2>>0]=a[24211]|0;a[(c[n>>2]|0)+3>>0]=c[i>>2];c[(c[n>>2]|0)+4>>2]=c[k>>2];c[h>>2]=c[n>>2];o=c[h>>2]|0;l=f;return o|0}else{c[h>>2]=0;o=c[h>>2]|0;l=f;return o|0}return 0}function rh(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e+8|0;g=e;h=e+24|0;i=e+20|0;c[h>>2]=b;c[i>>2]=d;if(!(c[h>>2]|0)){j=c[h>>2]|0;c[g>>2]=j;We(24213,g)}if(Jv(c[h>>2]|0,24209,3)|0){j=c[h>>2]|0;c[g>>2]=j;We(24213,g)}if((a[(c[h>>2]|0)+3>>0]|0)!=(c[i>>2]|0)){g=c[h>>2]|0;j=a[(c[h>>2]|0)+3>>0]|0;c[f>>2]=c[i>>2];c[f+4>>2]=g;c[f+8>>2]=j;We(24261,f)}else{l=e;return (c[h>>2]|0)+8|0}return 0}function sh(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+8|0;f=d;g=d+12|0;c[g>>2]=b;if(!(c[g>>2]|0)){l=d;return}b=(Jv(c[g>>2]|0,24209,3)|0)!=0;h=c[g>>2]|0;if(b){c[f>>2]=h;We(24318,f)}f=c[g>>2]|0;if((a[h+3>>0]|0)!=1){c[e>>2]=a[f+3>>0];We(24360,e)}if(c[f+4>>2]|0)wb[c[(c[g>>2]|0)+4>>2]&15]((c[g>>2]|0)+8|0);vf(c[g>>2]|0);l=d;return}function th(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=uh(c[d>>2]|0)|0;if(!(c[e>>2]|0)){f=37975;l=b;return f|0}f=c[(c[e>>2]|0)+8>>2]|0;l=b;return f|0}function uh(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+12|0;e=b+8|0;f=b+4|0;g=b;c[e>>2]=a;c[e>>2]=vh(c[e>>2]|0)|0;c[f>>2]=0;while(1){a=c[1452+(c[f>>2]<<2)>>2]|0;c[g>>2]=a;if(!a){h=6;break}if((c[e>>2]|0)==(c[c[g>>2]>>2]|0)){h=4;break}c[f>>2]=(c[f>>2]|0)+1}if((h|0)==4){c[d>>2]=c[g>>2];i=c[d>>2]|0;l=b;return i|0}else if((h|0)==6){c[d>>2]=0;i=c[d>>2]|0;l=b;return i|0}return 0}function vh(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;l=b;return c[d>>2]|0}function wh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f+20|0;h=f+16|0;i=f+12|0;j=f+8|0;k=f+4|0;n=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[n>>2]=0;if((c[i>>2]|0)>=65536)c[k>>2]=71;else c[k>>2]=xh(n,c[h>>2]|0,c[i>>2]|0,c[j>>2]|0)|0;c[c[g>>2]>>2]=c[k>>2]|0?0:c[n>>2]|0;l=f;return c[k>>2]|0}function xh(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;g=l;l=l+48|0;if((l|0)>=(m|0))$(48);h=g+36|0;i=g+32|0;j=g+28|0;k=g+24|0;n=g+20|0;o=g+16|0;p=g+12|0;q=g+8|0;r=g+4|0;s=g;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[k>>2]=f;c[n>>2]=c[k>>2]&1;c[p>>2]=0;mn();c[o>>2]=uh(c[i>>2]|0)|0;do if(c[o>>2]|0)if(a[(c[o>>2]|0)+4>>0]&1|0){c[q>>2]=12;break}else{c[q>>2]=0;break}else c[q>>2]=12;while(0);do if(!(c[q>>2]|0)){if((c[k>>2]&-16|0)==0?(c[k>>2]&0|0)==0:0)break;c[q>>2]=12}while(0);a:do if(!(c[q>>2]|0)){f=c[j>>2]|0;b:do if((f|0)<6)switch(f|0){case 5:case 2:case 3:case 1:{break b;break}case 4:{if(c[(c[o>>2]|0)+44>>2]|0?c[(c[o>>2]|0)+48>>2]|0:0)break a;c[q>>2]=71;break a;break}case 0:{if((Wg()|0)==0?Ff(0)|0:0)break a;c[q>>2]=71;break a;break}default:{t=37;break b}}else{if((f|0)<9){switch(f|0){case 7:case 6:{break b;break}case 8:break;default:{t=37;break b}}if((c[(c[o>>2]|0)+20>>2]|0)!=16)c[q>>2]=71;if(c[(c[o>>2]|0)+36>>2]|0?c[(c[o>>2]|0)+40>>2]|0:0)break a;c[q>>2]=71;break a}if((f|0)<11){switch(f|0){case 9:{break b;break}case 10:break;default:{t=37;break b}}if((c[(c[o>>2]|0)+44>>2]|0?c[(c[o>>2]|0)+48>>2]|0:0)?c[(c[o>>2]|0)+60>>2]|0:0){if((c[c[o>>2]>>2]|0)==316)break a;c[q>>2]=71;break a}c[q>>2]=71;break a}if((f|0)>=65537)switch(f|0){case 65537:{break b;break}default:{t=37;break b}}switch(f|0){case 11:break;default:{t=37;break b}}if(c[(c[o>>2]|0)+36>>2]|0?c[(c[o>>2]|0)+40>>2]|0:0){if((c[(c[o>>2]|0)+20>>2]|0)==16)break a;c[q>>2]=71;break a}c[q>>2]=71;break a}while(0);if((t|0)==37){c[q>>2]=71;break}if(c[(c[o>>2]|0)+36>>2]|0?c[(c[o>>2]|0)+40>>2]|0:0)break;c[q>>2]=71}while(0);if(c[q>>2]|0){u=c[q>>2]|0;v=(u|0)!=0;w=c[p>>2]|0;x=v?0:w;y=c[h>>2]|0;c[y>>2]=x;z=c[q>>2]|0;A=yh(z)|0;l=g;return A|0}c[r>>2]=512+(c[(c[o>>2]|0)+28>>2]<<1)-16+15;t=c[r>>2]|0;if(c[n>>2]|0)c[p>>2]=xf(1,t)|0;else c[p>>2]=wf(1,t)|0;if(!(c[p>>2]|0)){c[q>>2]=Et()|0;u=c[q>>2]|0;v=(u|0)!=0;w=c[p>>2]|0;x=v?0:w;y=c[h>>2]|0;c[y>>2]=x;z=c[q>>2]|0;A=yh(z)|0;l=g;return A|0}c[s>>2]=0;if(c[p>>2]&15|0){c[s>>2]=16-(c[p>>2]&15);c[p>>2]=(c[p>>2]|0)+(c[s>>2]|0)}c[c[p>>2]>>2]=c[n>>2]|0?1183944770:604576100;c[(c[p>>2]|0)+4>>2]=(c[r>>2]|0)-(c[s>>2]|0);c[(c[p>>2]|0)+8>>2]=c[s>>2];c[(c[p>>2]|0)+12>>2]=c[o>>2];c[(c[p>>2]|0)+16>>2]=c[i>>2];c[(c[p>>2]|0)+48>>2]=c[j>>2];c[(c[p>>2]|0)+52>>2]=c[k>>2];switch(c[i>>2]|0){case 9:case 8:case 7:{c[(c[p>>2]|0)+20>>2]=1;c[(c[p>>2]|0)+20+4>>2]=2;c[(c[p>>2]|0)+20+8>>2]=1;c[(c[p>>2]|0)+20+12>>2]=3;c[(c[p>>2]|0)+20+16>>2]=4;c[(c[p>>2]|0)+20+20>>2]=5;c[(c[p>>2]|0)+20+24>>2]=2;break}case 303:case 10:{c[(c[p>>2]|0)+20+12>>2]=6;c[(c[p>>2]|0)+20+4>>2]=7;c[(c[p>>2]|0)+20+16>>2]=8;break}default:{}}if((c[j>>2]|0)!=11){u=c[q>>2]|0;v=(u|0)!=0;w=c[p>>2]|0;x=v?0:w;y=c[h>>2]|0;c[y>>2]=x;z=c[q>>2]|0;A=yh(z)|0;l=g;return A|0}a[(c[p>>2]|0)+128+352>>0]=16;u=c[q>>2]|0;v=(u|0)!=0;w=c[p>>2]|0;x=v?0:w;y=c[h>>2]|0;c[y>>2]=x;z=c[q>>2]|0;A=yh(z)|0;l=g;return A|0}function yh(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=zh(32,c[d>>2]|0)|0;l=b;return a|0}function zh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=Ah(c[e>>2]|0,c[f>>2]|0)|0;l=d;return b|0}function Ah(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;if(!(c[f>>2]|0)){g=0;l=d;return g|0}g=(c[e>>2]&127)<<24|c[f>>2]&65535;l=d;return g|0}function Bh(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e+24|0;g=e+20|0;h=e+16|0;i=e+12|0;j=e+28|0;k=e;n=e+8|0;c[f>>2]=b;if(!(c[f>>2]|0)){l=e;return}if((c[c[f>>2]>>2]|0)!=1183944770?(c[c[f>>2]>>2]|0)!=604576100:0)Le(63,24409);c[c[f>>2]>>2]=0;c[g>>2]=c[(c[f>>2]|0)+8>>2];c[h>>2]=c[f>>2];c[i>>2]=c[(c[f>>2]|0)+4>>2];a[j>>0]=0;b=k;c[b>>2]=d[j>>0];c[b+4>>2]=0;while(1){if(!(c[h>>2]&7|0?(c[i>>2]|0)!=0:0))break;a[c[h>>2]>>0]=a[j>>0]|0;c[h>>2]=(c[h>>2]|0)+1;c[i>>2]=(c[i>>2]|0)+-1}if((c[i>>2]|0)>>>0>=8){b=k;o=gx(c[b>>2]|0,c[b+4>>2]|0,16843009,16843009)|0;b=k;c[b>>2]=o;c[b+4>>2]=D;do{c[n>>2]=c[h>>2];b=k;o=c[b+4>>2]|0;p=c[n>>2]|0;c[p>>2]=c[b>>2];c[p+4>>2]=o;c[i>>2]=(c[i>>2]|0)-8;c[h>>2]=(c[h>>2]|0)+8}while((c[i>>2]|0)>>>0>=8)}while(1){if(!(c[i>>2]|0))break;a[c[h>>2]>>0]=a[j>>0]|0;c[h>>2]=(c[h>>2]|0)+1;c[i>>2]=(c[i>>2]|0)+-1}vf((c[f>>2]|0)+(0-(c[g>>2]|0))|0);l=e;return}function Ch(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;g=l;l=l+32|0;if((l|0)>=(m|0))$(32);h=g+20|0;i=g+16|0;j=g+12|0;k=g+8|0;n=g+4|0;o=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[n>>2]=f;if(!(c[k>>2]|0)){c[k>>2]=c[i>>2];c[n>>2]=c[j>>2]}c[o>>2]=Dh(c[h>>2]|0,c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[n>>2]|0)|0;if(!((c[o>>2]|0)!=0&(c[i>>2]|0)!=0)){p=c[o>>2]|0;l=g;return p|0}Uw(c[i>>2]|0,66,c[j>>2]|0)|0;p=c[o>>2]|0;l=g;return p|0}function Dh(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;g=l;l=l+32|0;if((l|0)>=(m|0))$(32);h=g;i=g+24|0;j=g+20|0;k=g+16|0;n=g+12|0;o=g+8|0;p=g+4|0;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[n>>2]=e;c[o>>2]=f;f=c[(c[i>>2]|0)+48>>2]|0;a:do if((f|0)>=6){if((f|0)<9)switch(f|0){case 6:{c[p>>2]=yq(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;break a;break}case 7:{c[p>>2]=dq(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;break a;break}case 8:{c[p>>2]=oq(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;break a;break}default:{q=c[i>>2]|0;r=q+48|0;s=c[r>>2]|0;c[h>>2]=s;We(24504,h)}}if((f|0)<11)switch(f|0){case 9:{c[p>>2]=Bq(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;break a;break}case 10:{c[p>>2]=nr(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;break a;break}default:{q=c[i>>2]|0;r=q+48|0;s=c[r>>2]|0;c[h>>2]=s;We(24504,h)}}if((f|0)<65537)switch(f|0){case 11:{c[p>>2]=er(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;break a;break}default:{q=c[i>>2]|0;r=q+48|0;s=c[r>>2]|0;c[h>>2]=s;We(24504,h)}}else switch(f|0){case 65537:{c[p>>2]=71;break a;break}default:{q=c[i>>2]|0;r=q+48|0;s=c[r>>2]|0;c[h>>2]=s;We(24504,h)}}}else switch(f|0){case 1:{c[p>>2]=Eh(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;break a;break}case 3:{c[p>>2]=gq(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;break a;break}case 2:{c[p>>2]=qq(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;break a;break}case 5:{c[p>>2]=ir(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;break a;break}case 4:{Eb[c[(c[(c[i>>2]|0)+12>>2]|0)+44>>2]&1]((c[i>>2]|0)+496|0,c[j>>2]|0,c[n>>2]|0,c[o>>2]|0);c[p>>2]=0;break a;break}case 0:{if((Wg()|0)==0?Ff(0)|0:0){if((c[n>>2]|0)!=(c[j>>2]|0))$w(c[j>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;c[p>>2]=0;break a}dh(24458,875,24467,0,24482);c[p>>2]=71;break a;break}default:{q=c[i>>2]|0;r=q+48|0;s=c[r>>2]|0;c[h>>2]=s;We(24504,h)}}while(0);l=g;return c[p>>2]|0}function Eh(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0;g=l;l=l+32|0;if((l|0)>=(m|0))$(32);h=g+16|0;i=g+12|0;j=g+8|0;k=g+4|0;n=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[n>>2]=f;f=Fh(c[h>>2]|0,c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[n>>2]|0,c[(c[(c[h>>2]|0)+12>>2]|0)+36>>2]|0)|0;l=g;return f|0}function Fh(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;h=l;l=l+48|0;if((l|0)>=(m|0))$(48);i=h+44|0;j=h+40|0;k=h+36|0;n=h+32|0;o=h+28|0;p=h+24|0;q=h+20|0;r=h+16|0;s=h+12|0;t=h+8|0;u=h+4|0;v=h;c[j>>2]=a;c[k>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=c[(c[(c[j>>2]|0)+12>>2]|0)+20>>2];if((c[n>>2]|0)>>>0<(c[p>>2]|0)>>>0){c[i>>2]=200;w=c[i>>2]|0;l=h;return w|0}if(((c[p>>2]|0)>>>0)%((c[r>>2]|0)>>>0)|0|0){c[i>>2]=139;w=c[i>>2]|0;l=h;return w|0}c[t>>2]=((c[p>>2]|0)>>>0)/((c[r>>2]|0)>>>0)|0;c[u>>2]=0;c[s>>2]=0;while(1){if((c[s>>2]|0)>>>0>=(c[t>>2]|0)>>>0)break;c[v>>2]=ub[c[q>>2]&63]((c[j>>2]|0)+496|0,c[k>>2]|0,c[o>>2]|0)|0;c[u>>2]=(c[v>>2]|0)>>>0>(c[u>>2]|0)>>>0?c[v>>2]|0:c[u>>2]|0;c[o>>2]=(c[o>>2]|0)+(c[r>>2]|0);c[k>>2]=(c[k>>2]|0)+(c[r>>2]|0);c[s>>2]=(c[s>>2]|0)+1}if((c[u>>2]|0)>>>0>0){bf((c[u>>2]|0)+16|0);cf()}c[i>>2]=0;w=c[i>>2]|0;l=h;return w|0}function Gh(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0;g=l;l=l+32|0;if((l|0)>=(m|0))$(32);h=g+16|0;i=g+12|0;j=g+8|0;k=g+4|0;n=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[n>>2]=f;if(!(c[k>>2]|0)){c[k>>2]=c[i>>2];c[n>>2]=c[j>>2]}f=Hh(c[h>>2]|0,c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[n>>2]|0)|0;l=g;return f|0}function Hh(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;g=l;l=l+32|0;if((l|0)>=(m|0))$(32);h=g;i=g+24|0;j=g+20|0;k=g+16|0;n=g+12|0;o=g+8|0;p=g+4|0;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[n>>2]=e;c[o>>2]=f;f=c[(c[i>>2]|0)+48>>2]|0;a:do if((f|0)>=6){if((f|0)<9)switch(f|0){case 6:{c[p>>2]=yq(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;break a;break}case 7:{c[p>>2]=fq(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;break a;break}case 8:{c[p>>2]=pq(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;break a;break}default:{q=c[i>>2]|0;r=q+48|0;s=c[r>>2]|0;c[h>>2]=s;We(24552,h)}}if((f|0)<11)switch(f|0){case 9:{c[p>>2]=Kq(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;break a;break}case 10:{c[p>>2]=qr(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;break a;break}default:{q=c[i>>2]|0;r=q+48|0;s=c[r>>2]|0;c[h>>2]=s;We(24552,h)}}if((f|0)<65537)switch(f|0){case 11:{c[p>>2]=hr(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;break a;break}default:{q=c[i>>2]|0;r=q+48|0;s=c[r>>2]|0;c[h>>2]=s;We(24552,h)}}else switch(f|0){case 65537:{c[p>>2]=71;break a;break}default:{q=c[i>>2]|0;r=q+48|0;s=c[r>>2]|0;c[h>>2]=s;We(24552,h)}}}else switch(f|0){case 1:{c[p>>2]=Ih(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;break a;break}case 3:{c[p>>2]=jq(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;break a;break}case 2:{c[p>>2]=tq(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;break a;break}case 5:{c[p>>2]=ir(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;break a;break}case 4:{Eb[c[(c[(c[i>>2]|0)+12>>2]|0)+48>>2]&1]((c[i>>2]|0)+496|0,c[j>>2]|0,c[n>>2]|0,c[o>>2]|0);c[p>>2]=0;break a;break}case 0:{if((Wg()|0)==0?Ff(0)|0:0){if((c[n>>2]|0)!=(c[j>>2]|0))$w(c[j>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;c[p>>2]=0;break a}dh(24458,992,24537,0,24482);c[p>>2]=71;break a;break}default:{q=c[i>>2]|0;r=q+48|0;s=c[r>>2]|0;c[h>>2]=s;We(24552,h)}}while(0);l=g;return c[p>>2]|0}function Ih(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0;g=l;l=l+32|0;if((l|0)>=(m|0))$(32);h=g+16|0;i=g+12|0;j=g+8|0;k=g+4|0;n=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[n>>2]=f;f=Fh(c[h>>2]|0,c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[n>>2]|0,c[(c[(c[h>>2]|0)+12>>2]|0)+40>>2]|0)|0;l=g;return f|0}function Jh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;d=Kh(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;l=e;return d|0}function Kh(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f+12|0;h=f+8|0;i=f+4|0;j=f;c[g>>2]=b;c[h>>2]=d;c[i>>2]=e;c[j>>2]=ub[c[(c[(c[g>>2]|0)+12>>2]|0)+32>>2]&63]((c[g>>2]|0)+496|0,c[h>>2]|0,c[i>>2]|0)|0;i=c[g>>2]|0;a:do if(!(c[j>>2]|0)){_w(i+496+(c[(c[(c[g>>2]|0)+12>>2]|0)+28>>2]|0)|0,(c[g>>2]|0)+496|0,c[(c[(c[g>>2]|0)+12>>2]|0)+28>>2]|0)|0;h=(c[g>>2]|0)+56|0;a[h>>0]=a[h>>0]&-2|1;h=c[(c[g>>2]|0)+48>>2]|0;if((h|0)<10){switch(h|0){case 9:break;default:break a}Lq(c[g>>2]|0);break}if((h|0)<65537){switch(h|0){case 10:break;default:break a}rr(c[g>>2]|0);break}else{switch(h|0){case 65537:break;default:break a}wq(c[g>>2]|0)|0;break}}else{h=i+56|0;a[h>>0]=a[h>>0]&-2}while(0);l=f;return c[j>>2]|0}function Lh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=0;switch(c[(c[f>>2]|0)+48>>2]|0){case 8:{c[i>>2]=lq(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;break}case 9:{c[i>>2]=Cq(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;break}case 10:{c[i>>2]=mr(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;break}case 11:{c[i>>2]=ar(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;break}default:c[i>>2]=Mh(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0)|0}l=e;return c[i>>2]|0}function Mh(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f;h=f+20|0;i=f+16|0;j=f+12|0;k=f+8|0;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;e=c[i>>2]|0;if(c[(c[(c[i>>2]|0)+12>>2]|0)+60>>2]|0){zb[c[(c[e+12>>2]|0)+60>>2]&7]((c[i>>2]|0)+496|0,c[j>>2]|0,c[k>>2]|0);c[h>>2]=0;n=c[h>>2]|0;l=f;return n|0}Uw(e+64|0,0,c[(c[(c[i>>2]|0)+12>>2]|0)+20>>2]|0)|0;if(c[j>>2]|0){if((c[k>>2]|0)!=(c[(c[(c[i>>2]|0)+12>>2]|0)+20>>2]|0)){e=c[(c[(c[i>>2]|0)+12>>2]|0)+20>>2]|0;c[g>>2]=c[k>>2];c[g+4>>2]=e;Te(24585,g);dh(24458,682,24628,0,24641)}if((c[k>>2]|0)>>>0>(c[(c[(c[i>>2]|0)+12>>2]|0)+20>>2]|0)>>>0)c[k>>2]=c[(c[(c[i>>2]|0)+12>>2]|0)+20>>2];_w((c[i>>2]|0)+64|0,c[j>>2]|0,c[k>>2]|0)|0;k=(c[i>>2]|0)+56|0;a[k>>0]=a[k>>0]&-3|2}else{k=(c[i>>2]|0)+56|0;a[k>>0]=a[k>>0]&-3}c[(c[i>>2]|0)+112>>2]=0;c[h>>2]=0;n=c[h>>2]|0;l=f;return n|0}function Nh(){return 0}function Oh(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[g>>2]=b;c[h>>2]=d;c[i>>2]=e;c[j>>2]=0;c[k>>2]=uh(c[g>>2]|0)|0;if((c[k>>2]|0?(a[(c[k>>2]|0)+4>>0]&1|0)==0:0)?c[(c[k>>2]|0)+52>>2]|0:0){c[j>>2]=ub[c[(c[k>>2]|0)+52>>2]&63](c[g>>2]|0,c[h>>2]|0,c[i>>2]|0)|0;n=c[j>>2]|0;o=Ph(n)|0;l=f;return o|0}c[j>>2]=12;if(!(c[i>>2]|0)){n=c[j>>2]|0;o=Ph(n)|0;l=f;return o|0}h=c[i>>2]|0;i=c[g>>2]|0;if(c[k>>2]|0?!(a[(c[k>>2]|0)+4>>0]&1|0):0)p=38046;else p=c[k>>2]|0?38007:38026;Eb[h&1](38079,i,38068,p);n=c[j>>2]|0;o=Ph(n)|0;l=f;return o|0}function Ph(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=Ah(1,c[d>>2]|0)|0;l=b;return a|0}function Qh(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;g=l;l=l+32|0;if((l|0)>=(m|0))$(32);h=g+24|0;i=g+20|0;j=g+16|0;k=g+12|0;n=g+8|0;o=g+4|0;p=g;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[n>>2]=f;c[p>>2]=0;if(!(c[j>>2]|0)){c[o>>2]=0;while(1){if(!(c[1476+((c[o>>2]|0)*48|0)>>2]|0))break;if((c[i>>2]|0)==(c[1476+((c[o>>2]|0)*48|0)+4>>2]|0)?(c[1476+((c[o>>2]|0)*48|0)+12>>2]|0)==0:0)break;c[o>>2]=(c[o>>2]|0)+1}if(!(c[1476+((c[o>>2]|0)*48|0)>>2]|0))c[o>>2]=-1}else c[o>>2]=Rh(c[j>>2]|0)|0;if((c[o>>2]|0)<0){c[h>>2]=188;q=c[h>>2]|0;l=g;return q|0}c[p>>2]=c[1476+((c[o>>2]|0)*48|0)>>2];if(Wg()|0?(a[1476+((c[o>>2]|0)*48|0)+8>>0]&1|0)==0:0){c[h>>2]=60;q=c[h>>2]|0;l=g;return q|0}if((c[1476+((c[o>>2]|0)*48|0)+12>>2]|0)>>>0>=3){c[h>>2]=59;q=c[h>>2]|0;l=g;return q|0}if(c[n>>2]|0)c[c[n>>2]>>2]=c[1476+((c[o>>2]|0)*48|0)+4>>2];if(c[k>>2]|0){c[c[k>>2]>>2]=c[1476+((c[o>>2]|0)*48|0)+12>>2];c[(c[k>>2]|0)+4>>2]=c[1476+((c[o>>2]|0)*48|0)+16>>2];if(!(c[(c[k>>2]|0)+8>>2]|0)){n=Sh(c[1476+((c[o>>2]|0)*48|0)+20>>2]|0)|0;c[(c[k>>2]|0)+8>>2]=n}if(!(c[(c[k>>2]|0)+12>>2]|0)){n=Sh(c[1476+((c[o>>2]|0)*48|0)+24>>2]|0)|0;c[(c[k>>2]|0)+12>>2]=n}if(!(c[(c[k>>2]|0)+16>>2]|0)){n=Sh(c[1476+((c[o>>2]|0)*48|0)+28>>2]|0)|0;c[(c[k>>2]|0)+16>>2]=n}if(!(c[(c[k>>2]|0)+32>>2]|0)){n=Sh(c[1476+((c[o>>2]|0)*48|0)+32>>2]|0)|0;c[(c[k>>2]|0)+32>>2]=n}if(!(c[(c[k>>2]|0)+36>>2]|0)){n=Sh(c[1476+((c[o>>2]|0)*48|0)+44>>2]|0)|0;c[(c[k>>2]|0)+36>>2]=n}if(!(c[(c[k>>2]|0)+20>>2]|0)){n=Sh(c[1476+((c[o>>2]|0)*48|0)+36>>2]|0)|0;c[(c[k>>2]|0)+20>>2]=n}if(!(c[(c[k>>2]|0)+20+4>>2]|0)){n=Sh(c[1476+((c[o>>2]|0)*48|0)+40>>2]|0)|0;c[(c[k>>2]|0)+20+4>>2]=n}if(!(c[(c[k>>2]|0)+20+8>>2]|0)){n=up(1)|0;c[(c[k>>2]|0)+20+8>>2]=n}if(!(c[(c[k>>2]|0)+40>>2]|0))c[(c[k>>2]|0)+40>>2]=c[p>>2]}c[h>>2]=0;q=c[h>>2]|0;l=g;return q|0}function Rh(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+12|0;e=b+8|0;f=b+4|0;g=b;c[e>>2]=a;c[f>>2]=0;while(1){if(!(c[1476+((c[f>>2]|0)*48|0)>>2]|0))break;a=(Fu(c[e>>2]|0,c[1476+((c[f>>2]|0)*48|0)>>2]|0)|0)!=0;h=c[f>>2]|0;if(!a){i=4;break}c[f>>2]=h+1}if((i|0)==4){c[d>>2]=h;j=c[d>>2]|0;l=b;return j|0}a:do if(!(c[1476+((c[f>>2]|0)*48|0)>>2]|0)){c[g>>2]=0;while(1){if(!(c[2532+(c[g>>2]<<3)>>2]|0))break;if(!(Fu(c[e>>2]|0,c[2532+(c[g>>2]<<3)+4>>2]|0)|0))break;c[g>>2]=(c[g>>2]|0)+1}if(c[2532+(c[g>>2]<<3)>>2]|0){c[f>>2]=0;while(1){if(!(c[1476+((c[f>>2]|0)*48|0)>>2]|0))break a;h=(Fu(c[2532+(c[g>>2]<<3)>>2]|0,c[1476+((c[f>>2]|0)*48|0)>>2]|0)|0)!=0;k=c[f>>2]|0;if(!h)break;c[f>>2]=k+1}c[d>>2]=k;j=c[d>>2]|0;l=b;return j|0}}while(0);c[d>>2]=-1;j=c[d>>2]|0;l=b;return j|0}function Sh(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;e=b+12|0;f=b+8|0;g=b+4|0;c[e>>2]=a;c[f>>2]=Zo(g,4,c[e>>2]|0,0,0)|0;if(c[f>>2]|0){c[d>>2]=Bt(c[f>>2]|0)|0;We(35925,d)}else{l=b;return c[g>>2]|0}return 0}function Th(a,b,d,e,f,g,h,i,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;k=l;l=l+64|0;if((l|0)>=(m|0))$(64);n=k+48|0;o=k+44|0;p=k+40|0;q=k+36|0;r=k+32|0;s=k+28|0;t=k+24|0;u=k+20|0;v=k+16|0;w=k+12|0;x=k+8|0;y=k+4|0;z=k;c[o>>2]=a;c[p>>2]=b;c[q>>2]=d;c[r>>2]=e;c[s>>2]=f;c[t>>2]=g;c[u>>2]=h;c[v>>2]=i;c[w>>2]=j;c[x>>2]=Rh(c[o>>2]|0)|0;if((c[x>>2]|0)<0){c[n>>2]=188;A=c[n>>2]|0;l=k;return A|0}do if(c[u>>2]|0){c[z>>2]=4;o=hv((c[1476+((c[x>>2]|0)*48|0)+36>>2]|0)+2|0)|0;c[z>>2]=(c[z>>2]|0)+o;o=hv((c[1476+((c[x>>2]|0)*48|0)+40>>2]|0)+2|0)|0;c[z>>2]=(c[z>>2]|0)+o;c[z>>2]=(c[z>>2]|0)+1;c[y>>2]=pf(c[z>>2]|0)|0;if(c[y>>2]|0){o=uv(c[y>>2]|0,35599)|0;j=uv(o,(c[1476+((c[x>>2]|0)*48|0)+36>>2]|0)+2|0)|0;tv(j,(c[1476+((c[x>>2]|0)*48|0)+40>>2]|0)+2|0)|0;Tp(c[c[u>>2]>>2]|0);j=Sh(c[y>>2]|0)|0;c[c[u>>2]>>2]=j;vf(c[y>>2]|0);break}c[n>>2]=Et()|0;A=c[n>>2]|0;l=k;return A|0}while(0);if(c[p>>2]|0)c[c[p>>2]>>2]=c[1476+((c[x>>2]|0)*48|0)+12>>2];if(c[q>>2]|0)c[c[q>>2]>>2]=c[1476+((c[x>>2]|0)*48|0)+16>>2];if(c[r>>2]|0){Tp(c[c[r>>2]>>2]|0);q=Sh(c[1476+((c[x>>2]|0)*48|0)+20>>2]|0)|0;c[c[r>>2]>>2]=q}if(c[s>>2]|0){Tp(c[c[s>>2]>>2]|0);q=Sh(c[1476+((c[x>>2]|0)*48|0)+24>>2]|0)|0;c[c[s>>2]>>2]=q}if(c[t>>2]|0){Tp(c[c[t>>2]>>2]|0);q=Sh(c[1476+((c[x>>2]|0)*48|0)+28>>2]|0)|0;c[c[t>>2]>>2]=q}if(c[v>>2]|0){Tp(c[c[v>>2]>>2]|0);q=Sh(c[1476+((c[x>>2]|0)*48|0)+32>>2]|0)|0;c[c[v>>2]>>2]=q}if(c[w>>2]|0){Tp(c[c[w>>2]>>2]|0);q=Sh(c[1476+((c[x>>2]|0)*48|0)+44>>2]|0)|0;c[c[w>>2]>>2]=q}c[n>>2]=0;A=c[n>>2]|0;l=k;return A|0}function Uh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;e=l;l=l+128|0;if((l|0)>=(m|0))$(128);f=e;g=e+112|0;h=e+108|0;i=e+104|0;j=e+100|0;k=e+96|0;n=e+92|0;o=e+48|0;p=e+44|0;q=e+40|0;r=e+36|0;s=e+32|0;t=e+28|0;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[n>>2]=0;c[p>>2]=0;c[q>>2]=0;d=o;b=d+44|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(b|0));if(c[j>>2]|0)c[c[j>>2]>>2]=0;if(!(c[h>>2]|0)){c[r>>2]=c[i>>2];if((c[r>>2]|0)>=0&(c[r>>2]|0)>>>0<22?(c[n>>2]=c[1476+((c[r>>2]|0)*48|0)>>2],c[j>>2]|0):0)c[c[j>>2]>>2]=c[1476+((c[r>>2]|0)*48|0)+4>>2];c[g>>2]=c[n>>2];u=c[g>>2]|0;l=e;return u|0}i=c[h>>2]|0;c[f>>2]=o+8;c[f+4>>2]=o+12;c[f+8>>2]=o+16;c[f+12>>2]=p;c[f+16>>2]=o+32;c[f+20>>2]=o+36;c[f+24>>2]=0;c[k>>2]=Vh(lg(i,0,35604,f)|0)|0;a:do if((c[k>>2]|0)==68){c[s>>2]=Tf(c[h>>2]|0,47218,5)|0;if(c[s>>2]|0?(c[t>>2]=_f(c[s>>2]|0,1)|0,Rf(c[s>>2]|0),c[t>>2]|0):0){c[r>>2]=Rh(c[t>>2]|0)|0;vf(c[t>>2]|0);if((c[r>>2]|0)>=0?(c[n>>2]=c[1476+((c[r>>2]|0)*48|0)>>2],c[j>>2]|0):0)c[c[j>>2]>>2]=c[1476+((c[r>>2]|0)*48|0)+4>>2];c[g>>2]=c[n>>2];u=c[g>>2]|0;l=e;return u|0}}else if(!(c[k>>2]|0)){if(c[p>>2]|0?(yn(o+20|0),zi(o+20|0,c[p>>2]|0)|0):0)break;c[r>>2]=0;while(1){if(!(c[1476+((c[r>>2]|0)*48|0)>>2]|0))break a;Dp(c[q>>2]|0);c[q>>2]=Sh(c[1476+((c[r>>2]|0)*48|0)+20>>2]|0)|0;if(((((((wo(c[q>>2]|0,c[o+8>>2]|0)|0)==0?(Dp(c[q>>2]|0),c[q>>2]=Sh(c[1476+((c[r>>2]|0)*48|0)+24>>2]|0)|0,(wo(c[q>>2]|0,c[o+12>>2]|0)|0)==0):0)?(Dp(c[q>>2]|0),c[q>>2]=Sh(c[1476+((c[r>>2]|0)*48|0)+28>>2]|0)|0,(wo(c[q>>2]|0,c[o+16>>2]|0)|0)==0):0)?(Dp(c[q>>2]|0),c[q>>2]=Sh(c[1476+((c[r>>2]|0)*48|0)+32>>2]|0)|0,(wo(c[q>>2]|0,c[o+32>>2]|0)|0)==0):0)?(Dp(c[q>>2]|0),c[q>>2]=Sh(c[1476+((c[r>>2]|0)*48|0)+44>>2]|0)|0,(wo(c[q>>2]|0,c[o+36>>2]|0)|0)==0):0)?(Dp(c[q>>2]|0),c[q>>2]=Sh(c[1476+((c[r>>2]|0)*48|0)+36>>2]|0)|0,(wo(c[q>>2]|0,c[o+20>>2]|0)|0)==0):0)?(Dp(c[q>>2]|0),c[q>>2]=Sh(c[1476+((c[r>>2]|0)*48|0)+40>>2]|0)|0,(wo(c[q>>2]|0,c[o+20+4>>2]|0)|0)==0):0)break;c[r>>2]=(c[r>>2]|0)+1}c[n>>2]=c[1476+((c[r>>2]|0)*48|0)>>2];if(c[j>>2]|0)c[c[j>>2]>>2]=c[1476+((c[r>>2]|0)*48|0)+4>>2]}while(0);Tp(c[q>>2]|0);Tp(c[o+8>>2]|0);Tp(c[o+12>>2]|0);Tp(c[o+16>>2]|0);Tp(c[p>>2]|0);An(o+20|0);Tp(c[o+32>>2]|0);Tp(c[o+36>>2]|0);c[g>>2]=c[n>>2];u=c[g>>2]|0;l=e;return u|0}function Vh(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;l=b;return c[d>>2]&65535|0}function Wh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;e=l;l=l+80|0;if((l|0)>=(m|0))$(80);f=e+76|0;g=e+72|0;h=e+68|0;i=e+64|0;j=e+60|0;k=e+56|0;n=e+52|0;o=e+48|0;p=e+44|0;q=e+40|0;r=e+36|0;s=e+32|0;t=e+28|0;u=e+24|0;v=e+20|0;w=e+16|0;x=e+12|0;y=e+8|0;z=e+4|0;A=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[j>>2]=0;c[k>>2]=0;c[n>>2]=0;c[o>>2]=0;c[p>>2]=0;c[q>>2]=0;c[r>>2]=0;c[s>>2]=0;c[t>>2]=0;c[u>>2]=0;c[v>>2]=0;c[w>>2]=0;c[c[f>>2]>>2]=0;do if(c[g>>2]|0){c[x>>2]=Tf(c[g>>2]|0,47178,0)|0;if(c[x>>2]|0?(c[i>>2]=Fj(c[x>>2]|0,w,0)|0,Rf(c[x>>2]|0),c[x>>2]=0,c[i>>2]|0):0)break;c[x>>2]=Tf(c[g>>2]|0,47218,5)|0;if(c[x>>2]|0?(c[w>>2]&512|0)==0:0){B=13;break}c[i>>2]=Xh(o,c[g>>2]|0,47259)|0;if((((((c[i>>2]|0)==0?(c[i>>2]=Xh(p,c[g>>2]|0,39371)|0,(c[i>>2]|0)==0):0)?(c[i>>2]=Xh(q,c[g>>2]|0,35612)|0,(c[i>>2]|0)==0):0)?(c[i>>2]=Yh(r,c[g>>2]|0,35614,0)|0,(c[i>>2]|0)==0):0)?(c[i>>2]=Xh(s,c[g>>2]|0,39375)|0,(c[i>>2]|0)==0):0)?(c[i>>2]=Xh(t,c[g>>2]|0,35616)|0,(c[i>>2]|0)==0):0)B=13}else{c[x>>2]=0;B=13}while(0);do if((B|0)==13){if((c[x>>2]|0)!=0|(c[h>>2]|0)!=0){if(c[x>>2]|0){c[y>>2]=_f(c[x>>2]|0,1)|0;Rf(c[x>>2]|0);if(!(c[y>>2]|0)){c[i>>2]=65;break}}else c[y>>2]=0;c[z>>2]=wf(1,44)|0;if(!(c[z>>2]|0)){c[i>>2]=Et()|0;vf(c[y>>2]|0);break}c[i>>2]=Qh(0,c[y>>2]|0?c[y>>2]|0:c[h>>2]|0,c[z>>2]|0,0)|0;vf(c[y>>2]|0);d=c[z>>2]|0;if(c[i>>2]|0){vf(d);break}c[k>>2]=c[d>>2];c[n>>2]=c[(c[z>>2]|0)+4>>2];if(!(c[o>>2]|0)){c[o>>2]=c[(c[z>>2]|0)+8>>2];c[(c[z>>2]|0)+8>>2]=0}if(!(c[p>>2]|0)){c[p>>2]=c[(c[z>>2]|0)+12>>2];c[(c[z>>2]|0)+12>>2]=0}if(!(c[q>>2]|0)){c[q>>2]=c[(c[z>>2]|0)+16>>2];c[(c[z>>2]|0)+16>>2]=0}if(!(c[r>>2]|0)){c[r>>2]=Cn(0,c[(c[z>>2]|0)+20>>2]|0,c[(c[z>>2]|0)+20+4>>2]|0,c[(c[z>>2]|0)+20+8>>2]|0)|0;c[(c[z>>2]|0)+20>>2]=0;c[(c[z>>2]|0)+20+4>>2]=0;c[(c[z>>2]|0)+20+8>>2]=0}if(!(c[s>>2]|0)){c[s>>2]=c[(c[z>>2]|0)+32>>2];c[(c[z>>2]|0)+32>>2]=0}if(!(c[t>>2]|0)){c[t>>2]=c[(c[z>>2]|0)+36>>2];c[(c[z>>2]|0)+36>>2]=0}si(c[z>>2]|0);vf(c[z>>2]|0)}c[i>>2]=Gn(j,c[k>>2]|0,c[n>>2]|0,c[w>>2]|0,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0)|0;if(!(c[i>>2]|0)){c[A>>2]=rh(c[j>>2]|0,1)|0;if(c[q>>2]|0){Dp(c[(c[A>>2]|0)+24>>2]|0);c[(c[A>>2]|0)+24>>2]=c[q>>2];c[q>>2]=0}if(c[r>>2]|0){c[(c[A>>2]|0)+28>>2]=c[r>>2];c[r>>2]=0}if(c[s>>2]|0){c[(c[A>>2]|0)+32>>2]=c[s>>2];c[s>>2]=0}if(c[t>>2]|0){c[(c[A>>2]|0)+36>>2]=c[t>>2];c[t>>2]=0}if(c[g>>2]|0){c[i>>2]=Yh(u,c[g>>2]|0,47216,c[A>>2]|0)|0;if(c[i>>2]|0)break;c[i>>2]=Xh(v,c[g>>2]|0,35618)|0;if(c[i>>2]|0)break}if(c[u>>2]|0){c[(c[A>>2]|0)+40>>2]=c[u>>2];c[u>>2]=0}if(c[v>>2]|0){c[(c[A>>2]|0)+44>>2]=c[v>>2];c[v>>2]=0}c[c[f>>2]>>2]=c[j>>2];c[j>>2]=0}}while(0);sh(c[j>>2]|0);Dp(c[o>>2]|0);Dp(c[p>>2]|0);Dp(c[q>>2]|0);zn(c[r>>2]|0);Dp(c[s>>2]|0);Dp(c[t>>2]|0);zn(c[u>>2]|0);Dp(c[v>>2]|0);l=e;return c[i>>2]|0}function Xh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;j=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=0;c[j>>2]=Tf(c[g>>2]|0,c[h>>2]|0,0)|0;if(!(c[j>>2]|0)){k=c[i>>2]|0;l=e;return k|0}h=$f(c[j>>2]|0,1,5)|0;c[c[f>>2]>>2]=h;Rf(c[j>>2]|0);if(c[c[f>>2]>>2]|0){k=c[i>>2]|0;l=e;return k|0}c[i>>2]=65;k=c[i>>2]|0;l=e;return k|0}function Yh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;f=l;l=l+64|0;if((l|0)>=(m|0))$(64);g=f+48|0;h=f+44|0;i=f+40|0;j=f+36|0;k=f+32|0;n=f+28|0;o=f+24|0;p=f+20|0;q=f+16|0;r=f+12|0;s=f+8|0;t=f+4|0;u=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[o>>2]=Tf(c[i>>2]|0,c[j>>2]|0,0)|0;if(c[o>>2]|0){c[q>>2]=$f(c[o>>2]|0,1,8)|0;Rf(c[o>>2]|0);if(!(c[q>>2]|0)){c[g>>2]=65;v=c[g>>2]|0;l=f;return v|0}c[p>>2]=xn(0)|0;if(c[k>>2]|0?(c[(c[k>>2]|0)+4>>2]|0)==1:0)c[n>>2]=hi(c[q>>2]|0,c[k>>2]|0,c[p>>2]|0,0,0)|0;else c[n>>2]=zi(c[p>>2]|0,c[q>>2]|0)|0;Dp(c[q>>2]|0);if(c[n>>2]|0){zn(c[p>>2]|0);c[p>>2]=0;c[g>>2]=c[n>>2];v=c[g>>2]|0;l=f;return v|0}}else{c[s>>2]=0;c[t>>2]=0;c[u>>2]=0;c[r>>2]=pf((hv(c[j>>2]|0)|0)+2+1|0)|0;if(!(c[r>>2]|0)){c[g>>2]=Et()|0;v=c[g>>2]|0;l=f;return v|0}tv(uv(c[r>>2]|0,c[j>>2]|0)|0,35620)|0;c[n>>2]=Xh(s,c[i>>2]|0,c[r>>2]|0)|0;q=c[r>>2]|0;if(c[n>>2]|0){vf(q);c[g>>2]=c[n>>2];v=c[g>>2]|0;l=f;return v|0}tv(uv(q,c[j>>2]|0)|0,35623)|0;c[n>>2]=Xh(t,c[i>>2]|0,c[r>>2]|0)|0;if(c[n>>2]|0){Dp(c[s>>2]|0);vf(c[r>>2]|0);c[g>>2]=c[n>>2];v=c[g>>2]|0;l=f;return v|0}tv(uv(c[r>>2]|0,c[j>>2]|0)|0,35626)|0;c[n>>2]=Xh(u,c[i>>2]|0,c[r>>2]|0)|0;if(c[n>>2]|0){Dp(c[t>>2]|0);Dp(c[s>>2]|0);vf(c[r>>2]|0);c[g>>2]=c[n>>2];v=c[g>>2]|0;l=f;return v|0}if(!(c[u>>2]|0))c[u>>2]=Op(0,1)|0;n=c[s>>2]|0;if((c[s>>2]|0)!=0&(c[t>>2]|0)!=0)c[p>>2]=Cn(0,n,c[t>>2]|0,c[u>>2]|0)|0;else{Dp(n);Dp(c[t>>2]|0);Dp(c[u>>2]|0);c[p>>2]=0}vf(c[r>>2]|0)}if(c[p>>2]|0)c[c[h>>2]>>2]=c[p>>2];c[g>>2]=0;v=c[g>>2]|0;l=f;return v|0}function Zh(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;b=l;l=l+144|0;if((l|0)>=(m|0))$(144);d=b+8|0;e=b;f=b+132|0;g=b+128|0;h=b+124|0;i=b+80|0;j=b+76|0;k=b+72|0;n=b+68|0;o=b+40|0;p=b+36|0;q=b+32|0;c[g>>2]=a;a=i;r=a+44|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(r|0));if(Qh(0,c[g>>2]|0,i,h)|0){c[f>>2]=0;s=c[f>>2]|0;l=b;return s|0}c[k>>2]=Rp(0)|0;c[n>>2]=Rp(0)|0;c[j>>2]=En(0,0,0,c[i+8>>2]|0,c[i+12>>2]|0,0)|0;if(tn(c[k>>2]|0,c[n>>2]|0,i+20|0,c[j>>2]|0)|0)We(35629,e);In(c[j>>2]|0);An(i+20|0);c[o>>2]=c[i+8>>2];c[o+4>>2]=c[i+12>>2];c[o+8>>2]=c[i+16>>2];c[o+12>>2]=xi(c[k>>2]|0,c[n>>2]|0,c[i+8>>2]|0)|0;c[o+16>>2]=c[i+32>>2];c[o+20>>2]=c[i+36>>2];c[o+24>>2]=0;Dp(c[k>>2]|0);Dp(c[n>>2]|0);n=c[o+4>>2]|0;k=c[o+8>>2]|0;i=c[o+12>>2]|0;j=c[o+16>>2]|0;e=c[o+20>>2]|0;c[d>>2]=c[o>>2];c[d+4>>2]=n;c[d+8>>2]=k;c[d+12>>2]=i;c[d+16>>2]=j;c[d+20>>2]=e;if(cg(p,0,35678,d)|0)c[p>>2]=0;c[q>>2]=0;while(1){if(!(c[o+(c[q>>2]<<2)>>2]|0))break;Tp(c[o+(c[q>>2]<<2)>>2]|0);c[q>>2]=(c[q>>2]|0)+1}c[f>>2]=c[p>>2];s=c[f>>2]|0;l=b;return s|0}function _h(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f+20|0;h=f+16|0;i=f+12|0;j=f+8|0;k=f+4|0;n=f;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;if(!(a[c[h>>2]>>0]|0)){c[g>>2]=0;o=c[g>>2]|0;l=f;return o|0}if((Fu(c[h>>2]|0,47259)|0)==0?c[(c[i>>2]|0)+16>>2]|0:0){if(c[(c[i>>2]|0)+16>>2]|0?!(c[j>>2]|0?1:(c[(c[(c[i>>2]|0)+16>>2]|0)+12>>2]&32|0)==0):0)p=c[(c[i>>2]|0)+16>>2]|0;else p=Ip(c[(c[i>>2]|0)+16>>2]|0)|0;c[g>>2]=p;o=c[g>>2]|0;l=f;return o|0}if((Fu(c[h>>2]|0,39371)|0)==0?c[(c[i>>2]|0)+20>>2]|0:0){if(c[(c[i>>2]|0)+20>>2]|0?!(c[j>>2]|0?1:(c[(c[(c[i>>2]|0)+20>>2]|0)+12>>2]&32|0)==0):0)q=c[(c[i>>2]|0)+20>>2]|0;else q=Ip(c[(c[i>>2]|0)+20>>2]|0)|0;c[g>>2]=q;o=c[g>>2]|0;l=f;return o|0}if((Fu(c[h>>2]|0,35612)|0)==0?c[(c[i>>2]|0)+24>>2]|0:0){if(c[(c[i>>2]|0)+24>>2]|0?!(c[j>>2]|0?1:(c[(c[(c[i>>2]|0)+24>>2]|0)+12>>2]&32|0)==0):0)r=c[(c[i>>2]|0)+24>>2]|0;else r=Ip(c[(c[i>>2]|0)+24>>2]|0)|0;c[g>>2]=r;o=c[g>>2]|0;l=f;return o|0}if((Fu(c[h>>2]|0,39375)|0)==0?c[(c[i>>2]|0)+32>>2]|0:0){if(c[(c[i>>2]|0)+32>>2]|0?!(c[j>>2]|0?1:(c[(c[(c[i>>2]|0)+32>>2]|0)+12>>2]&32|0)==0):0)s=c[(c[i>>2]|0)+32>>2]|0;else s=Ip(c[(c[i>>2]|0)+32>>2]|0)|0;c[g>>2]=s;o=c[g>>2]|0;l=f;return o|0}if((Fu(c[h>>2]|0,35616)|0)==0?c[(c[i>>2]|0)+36>>2]|0:0){if(c[(c[i>>2]|0)+36>>2]|0?!(c[j>>2]|0?1:(c[(c[(c[i>>2]|0)+36>>2]|0)+12>>2]&32|0)==0):0)t=c[(c[i>>2]|0)+36>>2]|0;else t=Ip(c[(c[i>>2]|0)+36>>2]|0)|0;c[g>>2]=t;o=c[g>>2]|0;l=f;return o|0}if((Fu(c[h>>2]|0,35618)|0)==0?c[(c[i>>2]|0)+44>>2]|0:0){if(c[(c[i>>2]|0)+44>>2]|0?!(c[j>>2]|0?1:(c[(c[(c[i>>2]|0)+44>>2]|0)+12>>2]&32|0)==0):0)u=c[(c[i>>2]|0)+44>>2]|0;else u=Ip(c[(c[i>>2]|0)+44>>2]|0)|0;c[g>>2]=u;o=c[g>>2]|0;l=f;return o|0}if(((Fu(c[h>>2]|0,35726)|0)==0?c[(c[i>>2]|0)+28>>2]|0:0)?c[c[(c[i>>2]|0)+28>>2]>>2]|0:0){if(c[c[(c[i>>2]|0)+28>>2]>>2]|0?!(c[j>>2]|0?1:(c[(c[c[(c[i>>2]|0)+28>>2]>>2]|0)+12>>2]&32|0)==0):0)v=c[c[(c[i>>2]|0)+28>>2]>>2]|0;else v=Ip(c[c[(c[i>>2]|0)+28>>2]>>2]|0)|0;c[g>>2]=v;o=c[g>>2]|0;l=f;return o|0}if(((Fu(c[h>>2]|0,35730)|0)==0?c[(c[i>>2]|0)+28>>2]|0:0)?c[(c[(c[i>>2]|0)+28>>2]|0)+4>>2]|0:0){if(c[(c[(c[i>>2]|0)+28>>2]|0)+4>>2]|0?!(c[j>>2]|0?1:(c[(c[(c[(c[i>>2]|0)+28>>2]|0)+4>>2]|0)+12>>2]&32|0)==0):0)w=c[(c[(c[i>>2]|0)+28>>2]|0)+4>>2]|0;else w=Ip(c[(c[(c[i>>2]|0)+28>>2]|0)+4>>2]|0)|0;c[g>>2]=w;o=c[g>>2]|0;l=f;return o|0}if(((Fu(c[h>>2]|0,35734)|0)==0?c[(c[i>>2]|0)+40>>2]|0:0)?c[c[(c[i>>2]|0)+40>>2]>>2]|0:0){if(c[c[(c[i>>2]|0)+40>>2]>>2]|0?!(c[j>>2]|0?1:(c[(c[c[(c[i>>2]|0)+40>>2]>>2]|0)+12>>2]&32|0)==0):0)x=c[c[(c[i>>2]|0)+40>>2]>>2]|0;else x=Ip(c[c[(c[i>>2]|0)+40>>2]>>2]|0)|0;c[g>>2]=x;o=c[g>>2]|0;l=f;return o|0}if(((Fu(c[h>>2]|0,35738)|0)==0?c[(c[i>>2]|0)+40>>2]|0:0)?c[(c[(c[i>>2]|0)+40>>2]|0)+4>>2]|0:0){if(c[(c[(c[i>>2]|0)+28>>2]|0)+4>>2]|0?!(c[j>>2]|0?1:(c[(c[(c[(c[i>>2]|0)+28>>2]|0)+4>>2]|0)+12>>2]&32|0)==0):0)y=c[(c[(c[i>>2]|0)+40>>2]|0)+4>>2]|0;else y=Ip(c[(c[(c[i>>2]|0)+40>>2]|0)+4>>2]|0)|0;c[g>>2]=y;o=c[g>>2]|0;l=f;return o|0}if((Fu(c[h>>2]|0,35614)|0)==0?c[(c[i>>2]|0)+28>>2]|0:0){c[g>>2]=yi(c[(c[i>>2]|0)+28>>2]|0,c[i>>2]|0)|0;o=c[g>>2]|0;l=f;return o|0}do if((a[c[h>>2]>>0]|0)==113){if(a[(c[h>>2]|0)+1>>0]|0?(a[(c[h>>2]|0)+1>>0]|0)!=64:0)break;if(!(c[(c[i>>2]|0)+40>>2]|0)){y=Ai(0,c[i>>2]|0,0,0)|0;c[(c[i>>2]|0)+40>>2]=y}if(!(c[(c[i>>2]|0)+40>>2]|0)){c[g>>2]=0;o=c[g>>2]|0;l=f;return o|0}if((a[(c[h>>2]|0)+1>>0]|0)!=64){c[g>>2]=yi(c[(c[i>>2]|0)+40>>2]|0,c[i>>2]|0)|0;o=c[g>>2]|0;l=f;return o|0}if((Fu((c[h>>2]|0)+2|0,49924)|0)==0?(c[c[i>>2]>>2]|0)==2:0){if(ci(c[(c[i>>2]|0)+40>>2]|0,c[i>>2]|0,0,0,0,k,n)|0)break;c[g>>2]=Ep(0,c[k>>2]|0,c[n>>2]<<3)|0;o=c[g>>2]|0;l=f;return o|0}}while(0);c[g>>2]=0;o=c[g>>2]|0;l=f;return o|0}function $h(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+8|0;f=d+4|0;g=d;c[f>>2]=a;c[g>>2]=b;if((Fu(c[f>>2]|0,35614)|0)==0?c[(c[g>>2]|0)+28>>2]|0:0){c[e>>2]=ai(c[(c[g>>2]|0)+28>>2]|0)|0;h=c[e>>2]|0;l=d;return h|0}if(!(Fu(c[f>>2]|0,47216)|0)){if(!(c[(c[g>>2]|0)+40>>2]|0)){f=Ai(0,c[g>>2]|0,0,0)|0;c[(c[g>>2]|0)+40>>2]=f}if(c[(c[g>>2]|0)+40>>2]|0){c[e>>2]=ai(c[(c[g>>2]|0)+40>>2]|0)|0;h=c[e>>2]|0;l=d;return h|0}}c[e>>2]=0;h=c[e>>2]|0;l=d;return h|0}function ai(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[d>>2]=a;if(c[d>>2]|0){c[e>>2]=xn(0)|0;bi(c[e>>2]|0,c[d>>2]|0);f=c[e>>2]|0;l=b;return f|0}else{c[e>>2]=0;f=c[e>>2]|0;l=b;return f|0}return 0}function bi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;Kp(c[c[e>>2]>>2]|0,c[c[f>>2]>>2]|0)|0;Kp(c[(c[e>>2]|0)+4>>2]|0,c[(c[f>>2]|0)+4>>2]|0)|0;Kp(c[(c[e>>2]|0)+8>>2]|0,c[(c[f>>2]|0)+8>>2]|0)|0;l=d;return}function ci(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;i=l;l=l+48|0;if((l|0)>=(m|0))$(48);j=i+40|0;k=i+36|0;n=i+32|0;o=i+28|0;p=i+24|0;q=i+20|0;r=i+16|0;s=i+12|0;t=i+8|0;u=i+4|0;c[j>>2]=a;c[k>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;if(c[n>>2]|0)v=c[n>>2]|0;else v=Rp(0)|0;c[t>>2]=v;if(c[o>>2]|0)w=c[o>>2]|0;else w=Rp(0)|0;c[u>>2]=w;if(tn(c[t>>2]|0,c[u>>2]|0,c[j>>2]|0,c[k>>2]|0)|0){Ve(35742,i);c[s>>2]=63}else c[s>>2]=di(c[t>>2]|0,c[u>>2]|0,((c[(c[k>>2]|0)+12>>2]|0)>>>0)/8|0,c[p>>2]|0,c[q>>2]|0,c[r>>2]|0)|0;if(!(c[n>>2]|0))Dp(c[t>>2]|0);if(c[o>>2]|0){x=c[s>>2]|0;l=i;return x|0}Dp(c[u>>2]|0);x=c[s>>2]|0;l=i;return x|0}function di(b,e,f,g,h,i){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;j=l;l=l+48|0;if((l|0)>=(m|0))$(48);k=j+36|0;n=j+32|0;o=j+28|0;p=j+24|0;q=j+20|0;r=j+16|0;s=j+12|0;t=j+8|0;u=j+4|0;v=j;c[n>>2]=b;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[v>>2]=c[q>>2]|0?1:0;c[t>>2]=Xo(c[o>>2]|0,c[p>>2]|0,c[v>>2]|0?-1:0,u,0)|0;if(!(c[t>>2]|0)){c[k>>2]=Et()|0;w=c[k>>2]|0;l=j;return w|0}p=(mo(c[n>>2]|0,0)|0)!=0;if(p&(c[u>>2]|0)!=0){p=(c[t>>2]|0)+((c[v>>2]|0)+(c[u>>2]|0)-1)|0;a[p>>0]=d[p>>0]|0|128}if(c[v>>2]|0)a[c[t>>2]>>0]=64;c[c[r>>2]>>2]=c[t>>2];c[c[s>>2]>>2]=(c[u>>2]|0)+(c[v>>2]|0);c[k>>2]=0;w=c[k>>2]|0;l=j;return w|0}function ei(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0;e=l;l=l+48|0;if((l|0)>=(m|0))$(48);f=e+36|0;g=e+32|0;h=e+28|0;i=e+24|0;j=e+20|0;k=e+16|0;n=e+12|0;o=e+8|0;p=e+4|0;q=e;c[g>>2]=a;c[h>>2]=b;if(c[g>>2]|0?c[(c[g>>2]|0)+12>>2]&4|0:0){c[j>>2]=Gp(c[g>>2]|0,k)|0;if(!(c[j>>2]|0)){c[f>>2]=65;r=c[f>>2]|0;l=e;return r|0}c[k>>2]=(((c[k>>2]|0)+7|0)>>>0)/8|0;do if((c[k>>2]|0)>>>0>1?((c[k>>2]|0)>>>0)%2|0|0:0){b=c[j>>2]|0;if((d[c[j>>2]>>0]|0|0)!=4){if((d[b>>0]|0|0)!=64)break;if(Fp(c[g>>2]|0,(c[j>>2]|0)+1|0,(c[k>>2]|0)-1<<3)|0)break;c[f>>2]=Et()|0;r=c[f>>2]|0;l=e;return r|0}c[i>>2]=Zo(n,1,b+1|0,(((c[k>>2]|0)-1|0)>>>0)/2|0,0)|0;if(c[i>>2]|0){c[f>>2]=c[i>>2];r=c[f>>2]|0;l=e;return r|0}c[i>>2]=Zo(o,1,(c[j>>2]|0)+1+((((c[k>>2]|0)-1|0)>>>0)/2|0)|0,(((c[k>>2]|0)-1|0)>>>0)/2|0,0)|0;b=c[n>>2]|0;if(c[i>>2]|0){Dp(b);c[f>>2]=c[i>>2];r=c[f>>2]|0;l=e;return r|0}c[i>>2]=di(b,c[o>>2]|0,((c[h>>2]|0)>>>0)/8|0,0,p,q)|0;Dp(c[n>>2]|0);Dp(c[o>>2]|0);if(!(c[i>>2]|0)){Ep(c[g>>2]|0,c[p>>2]|0,c[q>>2]<<3)|0;break}c[f>>2]=c[i>>2];r=c[f>>2]|0;l=e;return r|0}while(0);c[f>>2]=0;r=c[f>>2]|0;l=e;return r|0}c[f>>2]=65;r=c[f>>2]|0;l=e;return r|0}function fi(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;f=l;l=l+48|0;if((l|0)>=(m|0))$(48);g=f+36|0;h=f+32|0;i=f+28|0;j=f+24|0;k=f+20|0;n=f+16|0;o=f+12|0;p=f+8|0;q=f+4|0;r=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[n>>2]=0;if((c[(c[k>>2]|0)+4>>2]|0)!=1){c[g>>2]=69;s=c[g>>2]|0;l=f;return s|0}if(!(c[17732]|0))c[17732]=gi(35795)|0;if(!(c[17733]|0))c[17733]=Op(0,7)|0;c[o>>2]=Rp(0)|0;c[p>>2]=Rp(0)|0;c[q>>2]=Rp(0)|0;c[r>>2]=Rp(0)|0;Ro(c[o>>2]|0,c[i>>2]|0,c[i>>2]|0,c[(c[k>>2]|0)+16>>2]|0);Ro(c[p>>2]|0,c[(c[k>>2]|0)+24>>2]|0,c[o>>2]|0,c[(c[k>>2]|0)+16>>2]|0);go(c[o>>2]|0,c[o>>2]|0,1);eo(c[p>>2]|0,c[p>>2]|0,1);i=c[q>>2]|0;e=c[p>>2]|0;d=Wp(3)|0;So(i,e,d,c[(c[k>>2]|0)+16>>2]|0);So(c[r>>2]|0,c[p>>2]|0,c[17733]|0,c[(c[k>>2]|0)+16>>2]|0);Ro(c[r>>2]|0,c[r>>2]|0,c[o>>2]|0,c[(c[k>>2]|0)+16>>2]|0);So(c[r>>2]|0,c[r>>2]|0,c[17732]|0,c[(c[k>>2]|0)+16>>2]|0);Ro(c[r>>2]|0,c[r>>2]|0,c[o>>2]|0,c[(c[k>>2]|0)+16>>2]|0);Ro(c[h>>2]|0,c[r>>2]|0,c[q>>2]|0,c[(c[k>>2]|0)+16>>2]|0);Ro(c[r>>2]|0,c[h>>2]|0,c[h>>2]|0,c[(c[k>>2]|0)+16>>2]|0);Ro(c[r>>2]|0,c[r>>2]|0,c[p>>2]|0,c[(c[k>>2]|0)+16>>2]|0);Jp(c[r>>2]|0,c[r>>2]|0);if(!(wo(c[r>>2]|0,c[o>>2]|0)|0)){if(!(c[17734]|0))c[17734]=gi(35860)|0;Ro(c[h>>2]|0,c[h>>2]|0,c[17734]|0,c[(c[k>>2]|0)+16>>2]|0);Ro(c[r>>2]|0,c[h>>2]|0,c[h>>2]|0,c[(c[k>>2]|0)+16>>2]|0);Ro(c[r>>2]|0,c[r>>2]|0,c[p>>2]|0,c[(c[k>>2]|0)+16>>2]|0);Jp(c[r>>2]|0,c[r>>2]|0);if(!(wo(c[r>>2]|0,c[o>>2]|0)|0))c[n>>2]=65}d=mo(c[h>>2]|0,0)|0;if((d|0)!=(((c[j>>2]|0)!=0^1^1)&1|0))ho(c[h>>2]|0,c[(c[k>>2]|0)+16>>2]|0,c[h>>2]|0);Dp(c[r>>2]|0);Dp(c[q>>2]|0);Dp(c[p>>2]|0);Dp(c[o>>2]|0);c[g>>2]=c[n>>2];s=c[g>>2]|0;l=f;return s|0}function gi(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;e=b+12|0;f=b+8|0;g=b+4|0;c[e>>2]=a;c[f>>2]=Zo(g,4,c[e>>2]|0,0,0)|0;if(c[f>>2]|0){c[d>>2]=Bt(c[f>>2]|0)|0;We(35925,d)}else{l=b;return c[g>>2]|0}return 0}function hi(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;i=l;l=l+64|0;if((l|0)>=(m|0))$(64);j=i+48|0;k=i+44|0;n=i+40|0;o=i+36|0;p=i+32|0;q=i+28|0;r=i+24|0;s=i+20|0;t=i+16|0;u=i+12|0;v=i+8|0;w=i+4|0;x=i;c[k>>2]=b;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;do if(c[k>>2]|0?c[(c[k>>2]|0)+12>>2]&4|0:0){c[v>>2]=Gp(c[k>>2]|0,t)|0;if(!(c[v>>2]|0)){c[j>>2]=65;y=c[j>>2]|0;l=i;return y|0}c[t>>2]=(((c[t>>2]|0)+7|0)>>>0)/8|0;do if((c[t>>2]|0)>>>0>1?((c[t>>2]|0)>>>0)%2|0|0:0){h=c[v>>2]|0;if((d[c[v>>2]>>0]|0|0)!=4){if((d[h>>0]|0|0)!=64)break;c[t>>2]=(c[t>>2]|0)+-1;c[v>>2]=(c[v>>2]|0)+1;break}c[r>>2]=Zo(w,1,h+1|0,(((c[t>>2]|0)-1|0)>>>0)/2|0,0)|0;if(c[r>>2]|0){c[j>>2]=c[r>>2];y=c[j>>2]|0;l=i;return y|0}c[r>>2]=Zo(x,1,(c[v>>2]|0)+1+((((c[t>>2]|0)-1|0)>>>0)/2|0)|0,(((c[t>>2]|0)-1|0)>>>0)/2|0,0)|0;if(c[r>>2]|0){Dp(c[w>>2]|0);c[j>>2]=c[r>>2];y=c[j>>2]|0;l=i;return y|0}if(c[p>>2]|0?(c[r>>2]=di(c[w>>2]|0,c[x>>2]|0,((c[(c[n>>2]|0)+12>>2]|0)>>>0)/8|0,0,c[p>>2]|0,c[q>>2]|0)|0,c[r>>2]|0):0){Dp(c[w>>2]|0);Dp(c[x>>2]|0);c[j>>2]=c[r>>2];y=c[j>>2]|0;l=i;return y|0}Mp(c[c[o>>2]>>2]|0,c[w>>2]|0);Mp(c[(c[o>>2]|0)+4>>2]|0,c[x>>2]|0);Op(c[(c[o>>2]|0)+8>>2]|0,1)|0;c[j>>2]=0;y=c[j>>2]|0;l=i;return y|0}while(0);c[s>>2]=pf(c[t>>2]|0?c[t>>2]|0:1)|0;if(c[s>>2]|0){_w(c[s>>2]|0,c[v>>2]|0,c[t>>2]|0)|0;ii(c[s>>2]|0,c[t>>2]|0);break}c[j>>2]=Et()|0;y=c[j>>2]|0;l=i;return y|0}else z=21;while(0);if((z|0)==21?(c[s>>2]=Vo(c[k>>2]|0,((c[(c[n>>2]|0)+12>>2]|0)>>>0)/8|0,t,0)|0,(c[s>>2]|0)==0):0){c[j>>2]=Et()|0;y=c[j>>2]|0;l=i;return y|0}if(c[t>>2]|0){c[u>>2]=(((d[c[s>>2]>>0]|0)&128|0)!=0^1^1)&1;k=c[s>>2]|0;a[k>>0]=(d[k>>0]|0)&127}else c[u>>2]=0;Yo(c[(c[o>>2]|0)+4>>2]|0,c[s>>2]|0,c[t>>2]|0,0);if(c[p>>2]|0){if((c[u>>2]|0)!=0&(c[t>>2]|0)!=0){k=c[s>>2]|0;a[k>>0]=d[k>>0]|0|128}ii(c[s>>2]|0,c[t>>2]|0);c[c[p>>2]>>2]=c[s>>2];if(c[q>>2]|0)c[c[q>>2]>>2]=c[t>>2]}else vf(c[s>>2]|0);c[r>>2]=fi(c[c[o>>2]>>2]|0,c[(c[o>>2]|0)+4>>2]|0,c[u>>2]|0,c[n>>2]|0)|0;Op(c[(c[o>>2]|0)+8>>2]|0,1)|0;c[j>>2]=c[r>>2];y=c[j>>2]|0;l=i;return y|0}function ii(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f+12|0;h=f+8|0;i=f+4|0;j=f;c[g>>2]=b;c[h>>2]=e;c[j>>2]=0;while(1){if((c[j>>2]|0)>>>0>=(((c[h>>2]|0)>>>0)/2|0)>>>0)break;c[i>>2]=d[(c[g>>2]|0)+(c[j>>2]|0)>>0];a[(c[g>>2]|0)+(c[j>>2]|0)>>0]=a[(c[g>>2]|0)+((c[h>>2]|0)-1-(c[j>>2]|0))>>0]|0;a[(c[g>>2]|0)+((c[h>>2]|0)-1-(c[j>>2]|0))>>0]=c[i>>2];c[j>>2]=(c[j>>2]|0)+1}l=f;return}function ji(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;g=l;l=l+80|0;if((l|0)>=(m|0))$(80);h=g+68|0;i=g+64|0;j=g+60|0;k=g+56|0;n=g+52|0;o=g+48|0;p=g+44|0;q=g+40|0;r=g+8|0;s=g+4|0;t=g;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[o>>2]=0;c[c[i>>2]>>2]=0;c[s>>2]=10;if((c[s>>2]|0)!=10){c[h>>2]=5;u=c[h>>2]|0;l=g;return u|0}c[t>>2]=(((c[(c[k>>2]|0)+12>>2]|0)+7|0)>>>0)/8|0;if((c[t>>2]|0)!=32){c[h>>2]=63;u=c[h>>2]|0;l=g;return u|0}c[q>>2]=xf(2,c[t>>2]|0)|0;if(!(c[q>>2]|0)){c[h>>2]=Et()|0;u=c[h>>2]|0;l=g;return u|0};c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;c[r+12>>2]=0;c[r+16>>2]=0;c[r+20>>2]=0;c[r+24>>2]=0;c[r+28>>2]=0;c[o>>2]=Vo(c[j>>2]|0,0,p,0)|0;j=c[q>>2]|0;if(!(c[o>>2]|0)){vf(j);c[h>>2]=Et()|0;u=c[h>>2]|0;l=g;return u|0}c[r+12>>2]=j;c[r+4>>2]=0;if((c[t>>2]|0)>>>0>(c[p>>2]|0)>>>0)v=(c[t>>2]|0)-(c[p>>2]|0)|0;else v=0;c[r+8>>2]=v;c[r+16+12>>2]=c[o>>2];c[r+16+4>>2]=0;c[r+16+8>>2]=c[p>>2];c[n>>2]=mj(c[s>>2]|0,0,c[q>>2]|0,r,2)|0;vf(c[o>>2]|0);o=c[q>>2]|0;if(c[n>>2]|0){vf(o);c[h>>2]=c[n>>2];u=c[h>>2]|0;l=g;return u|0}else{ii(o,32);a[c[q>>2]>>0]=(d[c[q>>2]>>0]|0)&127|64;o=(c[q>>2]|0)+31|0;a[o>>0]=(d[o>>0]|0)&248;c[c[i>>2]>>2]=c[q>>2];c[h>>2]=0;u=c[h>>2]|0;l=g;return u|0}return 0}function ki(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;h=l;l=l+96|0;if((l|0)>=(m|0))$(96);i=h+80|0;j=h+76|0;k=h+72|0;n=h+68|0;o=h+64|0;p=h+60|0;q=h+56|0;r=h+52|0;s=h+48|0;t=h+36|0;u=h+32|0;v=h+28|0;w=h+24|0;x=h+8|0;y=h;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[n>>2]=g;c[p>>2]=32;c[y>>2]=0;yn(t);c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;c[x+12>>2]=0;if(c[n>>2]&32|0)c[u>>2]=1;else c[u>>2]=2;c[q>>2]=Sp(0)|0;c[r>>2]=Rp(0)|0;c[s>>2]=Rp(0)|0;c[y>>2]=sf(c[p>>2]<<1)|0;if(!(c[y>>2]|0)){c[o>>2]=li()|0;An(t);z=c[q>>2]|0;Tp(z);A=c[r>>2]|0;Tp(A);B=c[s>>2]|0;Tp(B);C=c[y>>2]|0;vf(C);D=c[o>>2]|0;l=h;return D|0}c[w>>2]=c[p>>2];c[v>>2]=hn(c[w>>2]|0,c[u>>2]|0)|0;c[x+12>>2]=c[v>>2];c[x+8>>2]=c[w>>2];c[o>>2]=mj(10,0,c[y>>2]|0,x,1)|0;if(c[o>>2]|0){An(t);z=c[q>>2]|0;Tp(z);A=c[r>>2]|0;Tp(A);B=c[s>>2]|0;Tp(B);C=c[y>>2]|0;vf(C);D=c[o>>2]|0;l=h;return D|0}x=Ep(0,c[v>>2]|0,c[w>>2]<<3)|0;c[(c[i>>2]|0)+56>>2]=x;c[v>>2]=0;ii(c[y>>2]|0,32);a[c[y>>2]>>0]=(d[c[y>>2]>>0]|0)&127|64;v=(c[y>>2]|0)+31|0;a[v>>0]=(d[v>>0]|0)&248;Yo(c[q>>2]|0,c[y>>2]|0,32,0);vf(c[y>>2]|0);c[y>>2]=0;$n(t,c[q>>2]|0,(c[j>>2]|0)+20|0,c[k>>2]|0);if(Ff(1)|0)sn(35960,t,c[k>>2]|0);c[c[i>>2]>>2]=c[c[j>>2]>>2];c[(c[i>>2]|0)+4>>2]=c[(c[j>>2]|0)+4>>2];k=Ip(c[(c[j>>2]|0)+8>>2]|0)|0;c[(c[i>>2]|0)+8>>2]=k;k=Ip(c[(c[j>>2]|0)+12>>2]|0)|0;c[(c[i>>2]|0)+12>>2]=k;k=Ip(c[(c[j>>2]|0)+16>>2]|0)|0;c[(c[i>>2]|0)+16>>2]=k;yn((c[i>>2]|0)+20|0);mi((c[i>>2]|0)+20|0,(c[j>>2]|0)+20|0);k=Ip(c[(c[j>>2]|0)+32>>2]|0)|0;c[(c[i>>2]|0)+32>>2]=k;k=Ip(c[(c[j>>2]|0)+36>>2]|0)|0;c[(c[i>>2]|0)+36>>2]=k;yn((c[i>>2]|0)+44|0);mi((c[i>>2]|0)+44|0,t);An(t);z=c[q>>2]|0;Tp(z);A=c[r>>2]|0;Tp(A);B=c[s>>2]|0;Tp(B);C=c[y>>2]|0;vf(C);D=c[o>>2]|0;l=h;return D|0}function li(){return ni(Et()|0)|0}function mi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;Kp(c[c[e>>2]>>2]|0,c[c[f>>2]>>2]|0)|0;Kp(c[(c[e>>2]|0)+4>>2]|0,c[(c[f>>2]|0)+4>>2]|0)|0;Kp(c[(c[e>>2]|0)+8>>2]|0,c[(c[f>>2]|0)+8>>2]|0)|0;l=d;return}function ni(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=oi(1,c[d>>2]|0)|0;l=b;return a|0}function oi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;if(!(c[f>>2]|0)){g=0;l=d;return g|0}g=(c[e>>2]&127)<<24|c[f>>2]&65535;l=d;return g|0}function pi(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;h=l;l=l+160|0;if((l|0)>=(m|0))$(160);i=h+156|0;j=h+152|0;k=h+148|0;n=h+144|0;o=h+140|0;p=h+136|0;q=h+132|0;r=h+128|0;s=h+124|0;t=h+120|0;u=h+116|0;v=h+112|0;w=h+64|0;x=h+60|0;y=h+56|0;z=h+52|0;A=h+48|0;B=h+44|0;C=h+40|0;D=h+28|0;E=h+16|0;F=h+12|0;G=h+8|0;H=h+4|0;I=h;c[j>>2]=a;c[k>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[s>>2]=0;c[z>>2]=0;c[B>>2]=0;g=w;f=g+48|0;do{c[g>>2]=0;g=g+4|0}while((g|0)<(f|0));if(c[j>>2]|0?c[(c[j>>2]|0)+12>>2]&4|0:0){yn(D);yn(E);c[F>>2]=Sp(0)|0;c[G>>2]=Rp(0)|0;c[H>>2]=Rp(0)|0;c[I>>2]=Rp(0)|0;c[s>>2]=En(c[c[k>>2]>>2]|0,c[(c[k>>2]|0)+4>>2]|0,0,c[(c[k>>2]|0)+8>>2]|0,c[(c[k>>2]|0)+12>>2]|0,c[(c[k>>2]|0)+16>>2]|0)|0;c[t>>2]=(((c[(c[s>>2]|0)+12>>2]|0)+7|0)>>>0)/8|0;if((c[t>>2]|0)!=32){c[i>>2]=63;J=c[i>>2]|0;l=h;return J|0}c[r>>2]=ji(v,c[(c[k>>2]|0)+56>>2]|0,c[s>>2]|0)|0;do if(!(c[r>>2]|0)){Yo(c[F>>2]|0,c[v>>2]|0,32,0);if(c[q>>2]|0){c[r>>2]=hi(c[q>>2]|0,c[s>>2]|0,E,B,C)|0;if(c[r>>2]|0)break;if(Ff(1)|0)_e(35974,c[B>>2]|0,c[C>>2]|0);if(!(bo(E,c[s>>2]|0)|0)){c[r>>2]=195;break}}else{$n(E,c[F>>2]|0,(c[k>>2]|0)+20|0,c[s>>2]|0);c[r>>2]=ci(E,c[s>>2]|0,c[G>>2]|0,c[H>>2]|0,0,B,C)|0;if(c[r>>2]|0)break;if(Ff(1)|0)_e(35981,c[B>>2]|0,c[C>>2]|0)}c[x>>2]=Gp(c[j>>2]|0,u)|0;c[y>>2]=(((c[u>>2]|0)+7|0)>>>0)/8|0;if(Ff(1)|0)_e(35988,c[x>>2]|0,c[y>>2]|0);c[w+12>>2]=c[v>>2];c[w+4>>2]=32;c[w+8>>2]=32;c[w+16+12>>2]=c[x>>2];c[w+16+8>>2]=c[y>>2];c[r>>2]=mj(c[p>>2]|0,0,c[v>>2]|0,w,2)|0;if(!(c[r>>2]|0)){ii(c[v>>2]|0,64);if(Ff(1)|0)_e(53410,c[v>>2]|0,64);Yo(c[I>>2]|0,c[v>>2]|0,64,0);$n(D,c[I>>2]|0,(c[k>>2]|0)+20|0,c[s>>2]|0);if(Ff(1)|0)sn(35995,D,c[s>>2]|0);c[r>>2]=ci(D,c[s>>2]|0,c[G>>2]|0,c[H>>2]|0,0,z,A)|0;if(!(c[r>>2]|0)){if(Ff(1)|0)_e(36e3,c[z>>2]|0,c[A>>2]|0);c[w+12>>2]=c[z>>2];c[w+4>>2]=0;c[w+8>>2]=c[A>>2];c[w+16+12>>2]=c[B>>2];c[w+16+4>>2]=0;c[w+16+8>>2]=c[C>>2];c[w+32+12>>2]=c[x>>2];c[w+32+4>>2]=0;c[w+32+8>>2]=c[y>>2];c[r>>2]=mj(c[p>>2]|0,0,c[v>>2]|0,w,3)|0;if(!(c[r>>2]|0)){Ep(c[n>>2]|0,c[z>>2]|0,c[A>>2]<<3)|0;c[z>>2]=0;ii(c[v>>2]|0,64);if(Ff(1)|0)_e(36007,c[v>>2]|0,64);Yo(c[o>>2]|0,c[v>>2]|0,64,0);Ro(c[o>>2]|0,c[o>>2]|0,c[F>>2]|0,c[(c[k>>2]|0)+32>>2]|0);io(c[o>>2]|0,c[o>>2]|0,c[I>>2]|0,c[(c[k>>2]|0)+32>>2]|0);c[r>>2]=qi(c[o>>2]|0,c[t>>2]|0,z,A)|0;if(!(c[r>>2]|0)){if(Ff(1)|0)_e(36014,c[z>>2]|0,c[A>>2]|0);Ep(c[o>>2]|0,c[z>>2]|0,c[A>>2]<<3)|0;c[z>>2]=0;c[r>>2]=0}}}}}while(0);Tp(c[F>>2]|0);Tp(c[G>>2]|0);Tp(c[H>>2]|0);Tp(c[I>>2]|0);vf(c[v>>2]|0);In(c[s>>2]|0);An(D);An(E);vf(c[B>>2]|0);vf(c[z>>2]|0);c[i>>2]=c[r>>2];J=c[i>>2]|0;l=h;return J|0}c[i>>2]=79;J=c[i>>2]|0;l=h;return J|0}function qi(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f+24|0;h=f+20|0;i=f+16|0;j=f+12|0;k=f+8|0;n=f+4|0;o=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[n>>2]=Vo(c[h>>2]|0,c[i>>2]|0,o,0)|0;if(c[n>>2]|0){c[c[j>>2]>>2]=c[n>>2];c[c[k>>2]>>2]=c[o>>2];c[g>>2]=0;p=c[g>>2]|0;l=f;return p|0}else{c[g>>2]=Et()|0;p=c[g>>2]|0;l=f;return p|0}return 0}function ri(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;h=l;l=l+240|0;if((l|0)>=(m|0))$(240);i=h+172|0;j=h+168|0;k=h+164|0;n=h+160|0;o=h+156|0;p=h+152|0;q=h+148|0;r=h+144|0;s=h+140|0;t=h+136|0;u=h+132|0;v=h+120|0;w=h+116|0;x=h+112|0;y=h+108|0;z=h+104|0;A=h+100|0;B=h+96|0;C=h+92|0;D=h+88|0;E=h+176|0;F=h+40|0;G=h+36|0;H=h+32|0;I=h+20|0;J=h+8|0;K=h+4|0;L=h;c[j>>2]=a;c[k>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[s>>2]=0;c[w>>2]=0;c[A>>2]=0;if(((c[j>>2]|0?(c[n>>2]|0?(c[(c[j>>2]|0)+12>>2]&4|0)!=0:0):0)?(c[o>>2]|0?(c[(c[n>>2]|0)+12>>2]&4|0)!=0:0):0)?c[(c[o>>2]|0)+12>>2]&4|0:0){if((c[p>>2]|0)!=10){c[i>>2]=5;M=c[i>>2]|0;l=h;return M|0}yn(v);yn(I);yn(J);c[G>>2]=Rp(0)|0;c[H>>2]=Rp(0)|0;c[s>>2]=En(c[c[k>>2]>>2]|0,c[(c[k>>2]|0)+4>>2]|0,0,c[(c[k>>2]|0)+8>>2]|0,c[(c[k>>2]|0)+12>>2]|0,c[(c[k>>2]|0)+16>>2]|0)|0;c[t>>2]=((c[(c[s>>2]|0)+12>>2]|0)>>>0)/8|0;if((c[t>>2]|0)!=32){c[i>>2]=63;M=c[i>>2]|0;l=h;return M|0}c[r>>2]=hi(c[q>>2]|0,c[s>>2]|0,v,w,x)|0;a:do if(!(c[r>>2]|0)){if(!(bo(v,c[s>>2]|0)|0)){c[r>>2]=195;break}if(Ff(1)|0)_e(35981,c[w>>2]|0,c[x>>2]|0);if((c[x>>2]|0)!=(c[t>>2]|0)){c[r>>2]=139;break}c[y>>2]=Gp(c[j>>2]|0,u)|0;c[B>>2]=(((c[u>>2]|0)+7|0)>>>0)/8|0;if(Ff(1)|0)_e(35988,c[y>>2]|0,c[B>>2]|0);c[z>>2]=Gp(c[n>>2]|0,u)|0;c[C>>2]=(((c[u>>2]|0)+7|0)>>>0)/8|0;if(Ff(1)|0)_e(53410,c[z>>2]|0,c[C>>2]|0);if((c[C>>2]|0)!=(c[t>>2]|0)){c[r>>2]=139;break}c[F+12>>2]=c[z>>2];c[F+4>>2]=0;c[F+8>>2]=c[C>>2];c[F+16+12>>2]=c[w>>2];c[F+16+4>>2]=0;c[F+16+8>>2]=c[x>>2];c[F+32+12>>2]=c[y>>2];c[F+32+4>>2]=0;c[F+32+8>>2]=c[B>>2];c[r>>2]=mj(c[p>>2]|0,0,E,F,3)|0;if(!(c[r>>2]|0)){ii(E,64);if(Ff(1)|0)_e(36007,E,64);Yo(c[G>>2]|0,E,64,0);c[K>>2]=Hp(c[o>>2]|0,u)|0;c[L>>2]=(((c[u>>2]|0)+7|0)>>>0)/8|0;ii(c[K>>2]|0,c[L>>2]|0);if(Ff(1)|0)_e(53417,c[K>>2]|0,c[L>>2]|0);Yo(c[H>>2]|0,c[K>>2]|0,c[L>>2]|0,0);vf(c[K>>2]|0);if((c[L>>2]|0)!=(c[t>>2]|0)){c[r>>2]=139;break}$n(I,c[H>>2]|0,(c[k>>2]|0)+20|0,c[s>>2]|0);$n(J,c[G>>2]|0,v,c[s>>2]|0);Jp(c[J>>2]|0,c[J>>2]|0);Vn(I,I,J,c[s>>2]|0);c[r>>2]=ci(I,c[s>>2]|0,c[H>>2]|0,c[G>>2]|0,0,A,D)|0;if(!(c[r>>2]|0)){do if((c[D>>2]|0)==(c[C>>2]|0)){if(Jv(c[A>>2]|0,c[z>>2]|0,c[D>>2]|0)|0)break;c[r>>2]=0;break a}while(0);c[r>>2]=8}}}while(0);vf(c[w>>2]|0);vf(c[A>>2]|0);In(c[s>>2]|0);Tp(c[H>>2]|0);Tp(c[G>>2]|0);An(I);An(J);An(v);c[i>>2]=c[r>>2];M=c[i>>2]|0;l=h;return M|0}c[i>>2]=79;M=c[i>>2]|0;l=h;return M|0}function si(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;Dp(c[(c[d>>2]|0)+8>>2]|0);c[(c[d>>2]|0)+8>>2]=0;Dp(c[(c[d>>2]|0)+12>>2]|0);c[(c[d>>2]|0)+12>>2]=0;Dp(c[(c[d>>2]|0)+16>>2]|0);c[(c[d>>2]|0)+16>>2]=0;An((c[d>>2]|0)+20|0);Dp(c[(c[d>>2]|0)+32>>2]|0);c[(c[d>>2]|0)+32>>2]=0;Dp(c[(c[d>>2]|0)+36>>2]|0);c[(c[d>>2]|0)+36>>2]=0;l=b;return}function ti(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+48|0;if((l|0)>=(m|0))$(48);e=d;c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+40>>2]=c[b+40>>2];c[e+8>>2]=Ip(c[b+8>>2]|0)|0;c[e+12>>2]=Ip(c[b+12>>2]|0)|0;c[e+16>>2]=Ip(c[b+16>>2]|0)|0;yn(e+20|0);ui(e+20|0,b+20|0);c[e+32>>2]=Ip(c[b+32>>2]|0)|0;c[e+36>>2]=Ip(c[b+36>>2]|0)|0;b=a;a=e;e=b+44|0;do{c[b>>2]=c[a>>2];b=b+4|0;a=a+4|0}while((b|0)<(e|0));l=d;return}function ui(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;Kp(c[c[e>>2]>>2]|0,c[c[f>>2]>>2]|0)|0;Kp(c[(c[e>>2]|0)+4>>2]|0,c[(c[f>>2]|0)+4>>2]|0)|0;Kp(c[(c[e>>2]|0)+8>>2]|0,c[(c[f>>2]|0)+8>>2]|0)|0;l=d;return}function vi(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=37975;switch(c[d>>2]|0){case 0:{c[e>>2]=36021;break}case 1:{c[e>>2]=45707;break}case 2:{c[e>>2]=36033;break}default:{}}l=b;return c[e>>2]|0}function wi(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=37975;switch(c[d>>2]|0){case 0:{c[e>>2]=36041;break}case 1:{c[e>>2]=36050;break}default:{}}l=b;return c[e>>2]|0}function xi(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;f=l;l=l+64|0;if((l|0)>=(m|0))$(64);g=f+16|0;h=f+8|0;i=f;j=f+52|0;k=f+48|0;n=f+44|0;o=f+40|0;p=f+36|0;q=f+32|0;r=f+28|0;s=f+24|0;t=f+20|0;c[j>>2]=b;c[k>>2]=d;c[n>>2]=e;c[p>>2]=(((lo(c[n>>2]|0)|0)+7|0)>>>0)/8|0;c[r>>2]=zf(1+(c[p>>2]<<1)|0)|0;a[c[r>>2]>>0]=4;c[s>>2]=(c[r>>2]|0)+1;c[o>>2]=bp(5,c[s>>2]|0,c[p>>2]|0,q,c[j>>2]|0)|0;if(c[o>>2]|0){c[i>>2]=Bt(c[o>>2]|0)|0;We(36058,i)}if((c[q>>2]|0)>>>0<(c[p>>2]|0)>>>0){$w((c[s>>2]|0)+((c[p>>2]|0)-(c[q>>2]|0))|0,c[s>>2]|0,c[q>>2]|0)|0;Uw(c[s>>2]|0,0,(c[p>>2]|0)-(c[q>>2]|0)|0)|0}c[s>>2]=(c[s>>2]|0)+(c[p>>2]|0);c[o>>2]=bp(5,c[s>>2]|0,c[p>>2]|0,q,c[k>>2]|0)|0;if(c[o>>2]|0){c[h>>2]=Bt(c[o>>2]|0)|0;We(36058,h)}if((c[q>>2]|0)>>>0<(c[p>>2]|0)>>>0){$w((c[s>>2]|0)+((c[p>>2]|0)-(c[q>>2]|0))|0,c[s>>2]|0,c[q>>2]|0)|0;Uw(c[s>>2]|0,0,(c[p>>2]|0)-(c[q>>2]|0)|0)|0}c[o>>2]=Zo(t,5,c[r>>2]|0,1+(c[p>>2]<<1)|0,0)|0;if(c[o>>2]|0){c[g>>2]=Bt(c[o>>2]|0)|0;We(36080,g)}else{vf(c[r>>2]|0);l=f;return c[t>>2]|0}return 0}function yi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+16|0;f=d+12|0;g=d+8|0;h=d+4|0;i=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=Rp(0)|0;c[h>>2]=Rp(0)|0;if(tn(c[g>>2]|0,c[h>>2]|0,c[e>>2]|0,c[f>>2]|0)|0)c[i>>2]=0;else c[i>>2]=xi(c[g>>2]|0,c[h>>2]|0,c[(c[f>>2]|0)+16>>2]|0)|0;Dp(c[g>>2]|0);Dp(c[h>>2]|0);l=d;return c[i>>2]|0}function zi(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;e=l;l=l+48|0;if((l|0)>=(m|0))$(48);f=e+36|0;g=e+32|0;h=e+28|0;i=e+24|0;j=e+20|0;k=e+16|0;n=e+12|0;o=e+8|0;p=e+4|0;q=e;c[g>>2]=a;c[h>>2]=b;do if(c[h>>2]|0?c[(c[h>>2]|0)+12>>2]&4|0:0){c[k>>2]=Gp(c[h>>2]|0,q)|0;if(c[k>>2]|0){c[j>>2]=(((c[q>>2]|0)+7|0)>>>0)/8|0;c[n>>2]=0;break}c[f>>2]=65;r=c[f>>2]|0;l=e;return r|0}else s=6;while(0);do if((s|0)==6){c[j>>2]=(((lo(c[h>>2]|0)|0)+7|0)>>>0)/8|0;c[n>>2]=zf(c[j>>2]|0)|0;c[i>>2]=bp(5,c[n>>2]|0,c[j>>2]|0,j,c[h>>2]|0)|0;q=c[n>>2]|0;if(!(c[i>>2]|0)){c[k>>2]=q;break}vf(q);c[f>>2]=c[i>>2];r=c[f>>2]|0;l=e;return r|0}while(0);if((c[j>>2]|0)>>>0<1){vf(c[n>>2]|0);c[f>>2]=65;r=c[f>>2]|0;l=e;return r|0}if((d[c[k>>2]>>0]|0|0)!=4){vf(c[n>>2]|0);c[f>>2]=69;r=c[f>>2]|0;l=e;return r|0}if((((c[j>>2]|0)-1|0)>>>0)%2|0|0){vf(c[n>>2]|0);c[f>>2]=65;r=c[f>>2]|0;l=e;return r|0}c[j>>2]=(((c[j>>2]|0)-1|0)>>>0)/2|0;c[i>>2]=Zo(o,5,(c[k>>2]|0)+1|0,c[j>>2]|0,0)|0;if(c[i>>2]|0){vf(c[n>>2]|0);c[f>>2]=c[i>>2];r=c[f>>2]|0;l=e;return r|0}c[i>>2]=Zo(p,5,(c[k>>2]|0)+1+(c[j>>2]|0)|0,c[j>>2]|0,0)|0;vf(c[n>>2]|0);if(c[i>>2]|0){Dp(c[o>>2]|0);c[f>>2]=c[i>>2];r=c[f>>2]|0;l=e;return r|0}else{Kp(c[c[g>>2]>>2]|0,c[o>>2]|0)|0;Kp(c[(c[g>>2]|0)+4>>2]|0,c[p>>2]|0)|0;Op(c[(c[g>>2]|0)+8>>2]|0,1)|0;Dp(c[o>>2]|0);Dp(c[p>>2]|0);c[f>>2]=0;r=c[f>>2]|0;l=e;return r|0}return 0}function Ai(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f+24|0;h=f+20|0;i=f+16|0;j=f+12|0;k=f+8|0;n=f+4|0;o=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;if(!(c[j>>2]|0))c[j>>2]=c[(c[i>>2]|0)+28>>2];if(!(c[k>>2]|0))c[k>>2]=c[(c[i>>2]|0)+44>>2];if(((c[k>>2]|0)!=0&(c[j>>2]|0)!=0?c[(c[i>>2]|0)+16>>2]|0:0)?c[(c[i>>2]|0)+20>>2]|0:0){if((c[c[i>>2]>>2]|0)==2?(c[(c[i>>2]|0)+24>>2]|0)==0:0){c[g>>2]=0;p=c[g>>2]|0;l=f;return p|0}if((c[(c[i>>2]|0)+4>>2]|0)==1?c[(c[i>>2]|0)+8>>2]&4096|0:0){if(ji(o,c[k>>2]|0,c[i>>2]|0)|0){c[g>>2]=0;p=c[g>>2]|0;l=f;return p|0}c[n>>2]=Sp(0)|0;Yo(c[n>>2]|0,c[o>>2]|0,32,0);vf(c[o>>2]|0);if(!(c[h>>2]|0))c[h>>2]=xn(0)|0;if(c[h>>2]|0)$n(c[h>>2]|0,c[n>>2]|0,c[j>>2]|0,c[i>>2]|0);Dp(c[n>>2]|0)}else{if(!(c[h>>2]|0))c[h>>2]=xn(0)|0;if(c[h>>2]|0)$n(c[h>>2]|0,c[k>>2]|0,c[j>>2]|0,c[i>>2]|0)}c[g>>2]=c[h>>2];p=c[g>>2]|0;l=f;return p|0}c[g>>2]=0;p=c[g>>2]|0;l=f;return p|0}function Bi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=0;if(pj(c[f>>2]|0,8,0,0)|0){c[i>>2]=5;if(c[h>>2]|0)Eb[c[h>>2]&1](36101,c[f>>2]|0,38068,36106)}else c[i>>2]=Ci(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;h=Di(c[i>>2]|0)|0;l=e;return h|0}function Ci(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;switch(c[f>>2]|0){case 2:{c[i>>2]=Fi(c[g>>2]|0,c[h>>2]|0)|0;break}case 11:{c[i>>2]=Gi(c[g>>2]|0,c[h>>2]|0)|0;break}case 8:{c[i>>2]=Hi(c[g>>2]|0,c[h>>2]|0)|0;break}case 9:{c[i>>2]=Ii(c[g>>2]|0,c[h>>2]|0)|0;break}case 10:{c[i>>2]=Ji(c[g>>2]|0,c[h>>2]|0)|0;break}default:c[i>>2]=5}l=e;return c[i>>2]|0}function Di(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=Ei(1,c[d>>2]|0)|0;l=b;return a|0}function Ei(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;if(!(c[f>>2]|0)){g=0;l=d;return g|0}g=(c[e>>2]&127)<<24|c[f>>2]&65535;l=d;return g|0}function Fi(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;e=l;l=l+160|0;if((l|0)>=(m|0))$(160);f=e+24|0;g=e+20|0;h=e+16|0;i=e+12|0;j=e+8|0;k=e+32|0;n=e+4|0;o=e;c[g>>2]=b;c[h>>2]=d;c[i>>2]=36945;c[n>>2]=0;while(1){if((c[n>>2]|0)>=64)break;a[k+(c[n>>2]|0)>>0]=c[n>>2];c[n>>2]=(c[n>>2]|0)+1}c[j>>2]=Ki(2,36960,9,k,64,36970,20)|0;do if(!(c[j>>2]|0)){if(c[g>>2]|0){c[i>>2]=36991;c[n>>2]=0;c[o>>2]=48;while(1){if((c[n>>2]|0)>=20)break;d=c[o>>2]|0;c[o>>2]=d+1;a[k+(c[n>>2]|0)>>0]=d;c[n>>2]=(c[n>>2]|0)+1}c[j>>2]=Ki(2,37006,9,k,20,37016,20)|0;if(c[j>>2]|0)break;c[i>>2]=37037;c[n>>2]=0;c[o>>2]=80;while(1){if((c[n>>2]|0)>=100)break;d=c[o>>2]|0;c[o>>2]=d+1;a[k+(c[n>>2]|0)>>0]=d;c[n>>2]=(c[n>>2]|0)+1}c[j>>2]=Ki(2,37052,9,k,100,37062,20)|0;if(c[j>>2]|0)break;c[i>>2]=37083;c[n>>2]=0;c[o>>2]=112;while(1){if((c[n>>2]|0)>=49)break;d=c[o>>2]|0;c[o>>2]=d+1;a[k+(c[n>>2]|0)>>0]=d;c[n>>2]=(c[n>>2]|0)+1}c[j>>2]=Ki(2,37098,9,k,49,37108,20)|0;if(c[j>>2]|0)break}c[f>>2]=0;p=c[f>>2]|0;l=e;return p|0}while(0);if(c[h>>2]|0)Eb[c[h>>2]&1](36101,2,c[i>>2]|0,c[j>>2]|0);c[f>>2]=50;p=c[f>>2]|0;l=e;return p|0}function Gi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+20|0;f=d+16|0;g=d+12|0;h=d+8|0;i=d+4|0;j=d;c[f>>2]=a;c[g>>2]=b;c[j>>2]=0;while(1){if(!(c[4088+((c[j>>2]|0)*40|0)>>2]|0)){k=6;break}c[h>>2]=c[4088+((c[j>>2]|0)*40|0)>>2];b=c[4088+((c[j>>2]|0)*40|0)+4>>2]|0;a=hv(c[4088+((c[j>>2]|0)*40|0)+4>>2]|0)|0;n=c[4088+((c[j>>2]|0)*40|0)+8>>2]|0;o=hv(c[4088+((c[j>>2]|0)*40|0)+8>>2]|0)|0;c[i>>2]=Ki(11,b,a,n,o,4088+((c[j>>2]|0)*40|0)+12|0,28)|0;if(c[i>>2]|0)break;if(!(c[f>>2]|0)){k=6;break}c[j>>2]=(c[j>>2]|0)+1}if((k|0)==6){c[e>>2]=0;p=c[e>>2]|0;l=d;return p|0}if(c[g>>2]|0)Eb[c[g>>2]&1](36101,11,c[h>>2]|0,c[i>>2]|0);c[e>>2]=50;p=c[e>>2]|0;l=d;return p|0}function Hi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;d=l;l=l+48|0;if((l|0)>=(m|0))$(48);e=d+32|0;f=d+28|0;g=d+24|0;h=d+20|0;i=d+16|0;j=d+12|0;k=d+8|0;n=d+4|0;o=d;c[f>>2]=a;c[g>>2]=b;c[j>>2]=0;while(1){if(!(c[3780+((c[j>>2]|0)*44|0)>>2]|0)){p=13;break}c[h>>2]=c[3780+((c[j>>2]|0)*44|0)>>2];b=c[3780+((c[j>>2]|0)*44|0)+4>>2]|0;a=hv(c[3780+((c[j>>2]|0)*44|0)+4>>2]|0)|0;q=c[3780+((c[j>>2]|0)*44|0)+8>>2]|0;r=hv(c[3780+((c[j>>2]|0)*44|0)+8>>2]|0)|0;c[i>>2]=Ki(8,b,a,q,r,3780+((c[j>>2]|0)*44|0)+12|0,32)|0;if(c[i>>2]|0)break;r=c[3780+((c[j>>2]|0)*44|0)+8>>2]|0;c[k>>2]=Yp(r,hv(c[3780+((c[j>>2]|0)*44|0)+8>>2]|0)|0)|0;if(!(c[k>>2]|0)){p=5;break}r=c[k>>2]|0;q=c[3780+((c[j>>2]|0)*44|0)+4>>2]|0;Zp(r,q,hv(c[3780+((c[j>>2]|0)*44|0)+4>>2]|0)|0);c[n>>2]=cq(c[k>>2]|0,o)|0;if(!(c[n>>2]|0)){p=7;break}if((c[o>>2]|0)!=32){p=10;break}if(Jv(c[n>>2]|0,3780+((c[j>>2]|0)*44|0)+12|0,32)|0){p=10;break}$p(c[k>>2]|0);if(!(c[f>>2]|0)){p=13;break}c[j>>2]=(c[j>>2]|0)+1}if((p|0)==5)c[i>>2]=36850;else if((p|0)==7){c[i>>2]=36875;$p(c[k>>2]|0)}else if((p|0)==10){c[i>>2]=36905;$p(c[k>>2]|0)}else if((p|0)==13){c[e>>2]=0;s=c[e>>2]|0;l=d;return s|0}if(c[g>>2]|0)Eb[c[g>>2]&1](36101,8,c[h>>2]|0,c[i>>2]|0);c[e>>2]=50;s=c[e>>2]|0;l=d;return s|0}function Ii(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+20|0;f=d+16|0;g=d+12|0;h=d+8|0;i=d+4|0;j=d;c[f>>2]=a;c[g>>2]=b;c[j>>2]=0;while(1){if(!(c[3360+((c[j>>2]|0)*60|0)>>2]|0)){k=6;break}c[h>>2]=c[3360+((c[j>>2]|0)*60|0)>>2];b=c[3360+((c[j>>2]|0)*60|0)+4>>2]|0;a=hv(c[3360+((c[j>>2]|0)*60|0)+4>>2]|0)|0;n=c[3360+((c[j>>2]|0)*60|0)+8>>2]|0;o=hv(c[3360+((c[j>>2]|0)*60|0)+8>>2]|0)|0;c[i>>2]=Ki(9,b,a,n,o,3360+((c[j>>2]|0)*60|0)+12|0,48)|0;if(c[i>>2]|0)break;if(!(c[f>>2]|0)){k=6;break}c[j>>2]=(c[j>>2]|0)+1}if((k|0)==6){c[e>>2]=0;p=c[e>>2]|0;l=d;return p|0}if(c[g>>2]|0)Eb[c[g>>2]&1](36101,9,c[h>>2]|0,c[i>>2]|0);c[e>>2]=50;p=c[e>>2]|0;l=d;return p|0}function Ji(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+20|0;f=d+16|0;g=d+12|0;h=d+8|0;i=d+4|0;j=d;c[f>>2]=a;c[g>>2]=b;c[j>>2]=0;while(1){if(!(c[2828+((c[j>>2]|0)*76|0)>>2]|0)){k=6;break}c[h>>2]=c[2828+((c[j>>2]|0)*76|0)>>2];b=c[2828+((c[j>>2]|0)*76|0)+4>>2]|0;a=hv(c[2828+((c[j>>2]|0)*76|0)+4>>2]|0)|0;n=c[2828+((c[j>>2]|0)*76|0)+8>>2]|0;o=hv(c[2828+((c[j>>2]|0)*76|0)+8>>2]|0)|0;c[i>>2]=Ki(10,b,a,n,o,2828+((c[j>>2]|0)*76|0)+12|0,64)|0;if(c[i>>2]|0)break;if(!(c[f>>2]|0)){k=6;break}c[j>>2]=(c[j>>2]|0)+1}if((k|0)==6){c[e>>2]=0;p=c[e>>2]|0;l=d;return p|0}if(c[g>>2]|0)Eb[c[g>>2]&1](36101,10,c[h>>2]|0,c[i>>2]|0);c[e>>2]=50;p=c[e>>2]|0;l=d;return p|0}function Ki(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;i=l;l=l+48|0;if((l|0)>=(m|0))$(48);j=i+36|0;k=i+32|0;n=i+28|0;o=i+24|0;p=i+20|0;q=i+16|0;r=i+12|0;s=i+8|0;t=i+4|0;u=i;c[k>>2]=a;c[n>>2]=b;c[o>>2]=d;c[p>>2]=e;c[q>>2]=f;c[r>>2]=g;c[s>>2]=h;h=oj(c[k>>2]|0)|0;do if((h|0)==(c[s>>2]|0)){if(Si(t,c[k>>2]|0,2)|0){c[j>>2]=49976;break}g=(fj(c[t>>2]|0,c[p>>2]|0,c[q>>2]|0)|0)!=0;f=c[t>>2]|0;if(g){_i(f);c[j>>2]=36149;break}$i(f,c[n>>2]|0,c[o>>2]|0);c[u>>2]=lj(c[t>>2]|0,c[k>>2]|0)|0;if(!(c[u>>2]|0)){_i(c[t>>2]|0);c[j>>2]=36171;break}f=(Jv(c[u>>2]|0,c[r>>2]|0,c[s>>2]|0)|0)!=0;_i(c[t>>2]|0);if(f){c[j>>2]=36191;break}else{c[j>>2]=0;break}}else c[j>>2]=36130;while(0);l=i;return c[j>>2]|0}function Li(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+8|0;e=b+4|0;f=b;c[e>>2]=a;do if(c[e>>2]|0){c[f>>2]=Mi(c[e>>2]|0,0)|0;if(c[f>>2]|0){c[d>>2]=c[c[f>>2]>>2];break}c[f>>2]=Ni(c[e>>2]|0)|0;if(c[f>>2]|0){c[d>>2]=c[c[f>>2]>>2];break}else{c[d>>2]=0;break}}else c[d>>2]=0;while(0);l=b;return c[d>>2]|0}function Mi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+16|0;f=d+12|0;g=d+8|0;h=d+4|0;i=d;c[f>>2]=a;c[g>>2]=b;do if(c[f>>2]|0){if(Hv(c[f>>2]|0,37129,4)|0?Hv(c[f>>2]|0,37134,4)|0:0)break;c[f>>2]=(c[f>>2]|0)+4}while(0);c[h>>2]=Oi(c[f>>2]|0)|0;a:do if(c[h>>2]|0?c[(c[h>>2]|0)+20>>2]|0:0){c[i>>2]=0;while(1){if(!(c[(c[(c[h>>2]|0)+20>>2]|0)+(c[i>>2]<<2)>>2]|0))break a;if(!(sv(c[f>>2]|0,c[(c[(c[h>>2]|0)+20>>2]|0)+(c[i>>2]<<2)>>2]|0)|0))break;c[i>>2]=(c[i>>2]|0)+1}if(c[g>>2]|0)c[c[g>>2]>>2]=c[(c[(c[h>>2]|0)+20>>2]|0)+(c[i>>2]<<2)>>2];c[e>>2]=c[h>>2];j=c[e>>2]|0;l=d;return j|0}while(0);c[e>>2]=0;j=c[e>>2]|0;l=d;return j|0}function Ni(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+12|0;e=b+8|0;f=b+4|0;g=b;c[e>>2]=a;c[g>>2]=0;while(1){a=c[4368+(c[g>>2]<<2)>>2]|0;c[f>>2]=a;if(!a){h=6;break}if(!(sv(c[e>>2]|0,c[(c[f>>2]|0)+8>>2]|0)|0)){h=4;break}c[g>>2]=(c[g>>2]|0)+1}if((h|0)==4){c[d>>2]=c[f>>2];i=c[d>>2]|0;l=b;return i|0}else if((h|0)==6){c[d>>2]=0;i=c[d>>2]|0;l=b;return i|0}return 0}function Oi(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;b=l;l=l+32|0;if((l|0)>=(m|0))$(32);d=b+20|0;e=b+16|0;f=b+12|0;g=b+8|0;h=b+4|0;i=b;c[e>>2]=a;c[h>>2]=0;a:while(1){a=c[4368+(c[h>>2]<<2)>>2]|0;c[f>>2]=a;if(!a){j=10;break}c[g>>2]=c[(c[f>>2]|0)+20>>2];b:do if(c[g>>2]|0){c[i>>2]=0;while(1){if(!(c[(c[g>>2]|0)+(c[i>>2]<<2)>>2]|0))break b;if(!(sv(c[e>>2]|0,c[(c[g>>2]|0)+(c[i>>2]<<2)>>2]|0)|0)){j=7;break a}c[i>>2]=(c[i>>2]|0)+1}}while(0);c[h>>2]=(c[h>>2]|0)+1}if((j|0)==7){c[d>>2]=c[f>>2];k=c[d>>2]|0;l=b;return k|0}else if((j|0)==10){c[d>>2]=0;k=c[d>>2]|0;l=b;return k|0}return 0}function Pi(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=Qi(c[d>>2]|0)|0;if(!(c[e>>2]|0)){f=37975;l=b;return f|0}f=c[(c[e>>2]|0)+8>>2]|0;l=b;return f|0}function Qi(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+12|0;e=b+8|0;f=b+4|0;g=b;c[e>>2]=a;c[e>>2]=Ri(c[e>>2]|0)|0;c[f>>2]=0;while(1){a=c[4368+(c[f>>2]<<2)>>2]|0;c[g>>2]=a;if(!a){h=6;break}if((c[e>>2]|0)==(c[c[g>>2]>>2]|0)){h=4;break}c[f>>2]=(c[f>>2]|0)+1}if((h|0)==4){c[d>>2]=c[g>>2];i=c[d>>2]|0;l=b;return i|0}else if((h|0)==6){c[d>>2]=0;i=c[d>>2]|0;l=b;return i|0}return 0}function Ri(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;l=b;return c[d>>2]|0}function Si(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;j=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;if(c[h>>2]&-260|0)c[i>>2]=45;else c[i>>2]=Ti(j,c[g>>2]|0,c[h>>2]|0)|0;c[c[f>>2]>>2]=c[i>>2]|0?0:c[j>>2]|0;l=e;return c[i>>2]|0}function Ti(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;f=l;l=l+48|0;if((l|0)>=(m|0))$(48);g=f+36|0;h=f+32|0;i=f+28|0;j=f+24|0;k=f+20|0;n=f+16|0;o=f+12|0;p=f+8|0;q=f+4|0;r=f;c[g>>2]=b;c[h>>2]=d;c[i>>2]=e;c[j>>2]=0;c[k>>2]=((c[i>>2]&1|0)!=0^1^1)&1;c[n>>2]=((c[i>>2]&2|0)!=0^1^1)&1;c[o>>2]=c[k>>2]|0?512:1024;c[r>>2]=16+(c[o>>2]|0);c[r>>2]=((((c[r>>2]|0)+8-1|0)>>>0)/8|0)<<3;o=(c[r>>2]|0)+28|0;if(c[k>>2]|0)c[q>>2]=sf(o)|0;else c[q>>2]=pf(o)|0;if(!(c[q>>2]|0))c[j>>2]=Ct(c[(xu()|0)>>2]|0)|0;if((c[j>>2]|0)==0?(o=(c[q>>2]|0)+(c[r>>2]|0)|0,c[p>>2]=o,c[c[q>>2]>>2]=o,c[(c[q>>2]|0)+8>>2]=(c[r>>2]|0)-16+1,c[(c[q>>2]|0)+4>>2]=0,o=c[c[q>>2]>>2]|0,c[o>>2]=0,c[o+4>>2]=0,c[o+8>>2]=0,c[o+12>>2]=0,c[o+16>>2]=0,c[o+20>>2]=0,c[o+24>>2]=0,c[c[p>>2]>>2]=c[k>>2]|0?378630161:285677921,c[(c[p>>2]|0)+4>>2]=(c[r>>2]|0)+28,r=(c[p>>2]|0)+12|0,a[r>>0]=a[r>>0]&-2|c[k>>2]&1,k=(c[p>>2]|0)+12|0,a[k>>0]=a[k>>0]&-5|(((c[i>>2]&256|0)!=0^1^1)&1)<<2&255,c[n>>2]|0):0){switch(c[h>>2]|0){case 10:case 9:{c[(c[p>>2]|0)+24>>2]=128;break}case 311:case 308:{c[(c[p>>2]|0)+24>>2]=32;break}default:c[(c[p>>2]|0)+24>>2]=64}n=sf(c[(c[p>>2]|0)+24>>2]<<1)|0;c[(c[p>>2]|0)+20>>2]=n;if(!(c[(c[p>>2]|0)+20>>2]|0)){c[j>>2]=Ct(c[(xu()|0)>>2]|0)|0;Ui(c[q>>2]|0)}}if(((c[j>>2]|0)==0?(mn(),c[h>>2]|0):0)?(c[j>>2]=Vi(c[q>>2]|0,c[h>>2]|0)|0,c[j>>2]|0):0)Ui(c[q>>2]|0);if(c[j>>2]|0){s=c[j>>2]|0;l=f;return s|0}c[c[g>>2]>>2]=c[q>>2];s=c[j>>2]|0;l=f;return s|0}function Ui(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;e=l;l=l+80|0;if((l|0)>=(m|0))$(80);f=e+68|0;g=e+64|0;h=e+60|0;i=e+56|0;j=e+52|0;k=e+74|0;n=e+16|0;o=e+48|0;p=e+44|0;q=e+40|0;r=e+73|0;s=e+8|0;t=e+36|0;u=e+32|0;v=e+28|0;w=e+72|0;x=e;y=e+24|0;c[f>>2]=b;if(!(c[f>>2]|0)){l=e;return}if(c[(c[c[f>>2]>>2]|0)+8>>2]|0)Wi(c[f>>2]|0);c[g>>2]=c[(c[c[f>>2]>>2]|0)+16>>2];while(1){if(!(c[g>>2]|0))break;c[h>>2]=c[(c[g>>2]|0)+4>>2];c[i>>2]=c[g>>2];c[j>>2]=c[(c[g>>2]|0)+8>>2];a[k>>0]=0;b=n;c[b>>2]=d[k>>0];c[b+4>>2]=0;while(1){if(!(c[i>>2]&7|0?(c[j>>2]|0)!=0:0))break;a[c[i>>2]>>0]=a[k>>0]|0;c[i>>2]=(c[i>>2]|0)+1;c[j>>2]=(c[j>>2]|0)+-1}if((c[j>>2]|0)>>>0>=8){b=n;z=gx(c[b>>2]|0,c[b+4>>2]|0,16843009,16843009)|0;b=n;c[b>>2]=z;c[b+4>>2]=D;do{c[o>>2]=c[i>>2];b=n;z=c[b+4>>2]|0;A=c[o>>2]|0;c[A>>2]=c[b>>2];c[A+4>>2]=z;c[j>>2]=(c[j>>2]|0)-8;c[i>>2]=(c[i>>2]|0)+8}while((c[j>>2]|0)>>>0>=8)}while(1){if(!(c[j>>2]|0))break;a[c[i>>2]>>0]=a[k>>0]|0;c[i>>2]=(c[i>>2]|0)+1;c[j>>2]=(c[j>>2]|0)+-1}vf(c[g>>2]|0);c[g>>2]=c[h>>2]}if(c[(c[c[f>>2]>>2]|0)+20>>2]|0){c[p>>2]=c[(c[c[f>>2]>>2]|0)+20>>2];c[q>>2]=c[(c[c[f>>2]>>2]|0)+24>>2]<<1;a[r>>0]=0;h=s;c[h>>2]=d[r>>0];c[h+4>>2]=0;while(1){if(!(c[p>>2]&7|0?(c[q>>2]|0)!=0:0))break;a[c[p>>2]>>0]=a[r>>0]|0;c[p>>2]=(c[p>>2]|0)+1;c[q>>2]=(c[q>>2]|0)+-1}if((c[q>>2]|0)>>>0>=8){h=s;g=gx(c[h>>2]|0,c[h+4>>2]|0,16843009,16843009)|0;h=s;c[h>>2]=g;c[h+4>>2]=D;do{c[t>>2]=c[p>>2];h=s;g=c[h+4>>2]|0;j=c[t>>2]|0;c[j>>2]=c[h>>2];c[j+4>>2]=g;c[q>>2]=(c[q>>2]|0)-8;c[p>>2]=(c[p>>2]|0)+8}while((c[q>>2]|0)>>>0>=8)}while(1){if(!(c[q>>2]|0))break;a[c[p>>2]>>0]=a[r>>0]|0;c[p>>2]=(c[p>>2]|0)+1;c[q>>2]=(c[q>>2]|0)+-1}vf(c[(c[c[f>>2]>>2]|0)+20>>2]|0)}c[u>>2]=c[f>>2];c[v>>2]=c[(c[c[f>>2]>>2]|0)+4>>2];a[w>>0]=0;q=x;c[q>>2]=d[w>>0];c[q+4>>2]=0;while(1){if(!(c[u>>2]&7|0?(c[v>>2]|0)!=0:0))break;a[c[u>>2]>>0]=a[w>>0]|0;c[u>>2]=(c[u>>2]|0)+1;c[v>>2]=(c[v>>2]|0)+-1}if((c[v>>2]|0)>>>0>=8){q=x;p=gx(c[q>>2]|0,c[q+4>>2]|0,16843009,16843009)|0;q=x;c[q>>2]=p;c[q+4>>2]=D;do{c[y>>2]=c[u>>2];q=x;p=c[q+4>>2]|0;r=c[y>>2]|0;c[r>>2]=c[q>>2];c[r+4>>2]=p;c[v>>2]=(c[v>>2]|0)-8;c[u>>2]=(c[u>>2]|0)+8}while((c[v>>2]|0)>>>0>=8)}while(1){if(!(c[v>>2]|0))break;a[c[u>>2]>>0]=a[w>>0]|0;c[u>>2]=(c[u>>2]|0)+1;c[v>>2]=(c[v>>2]|0)+-1}vf(c[f>>2]|0);l=e;return}function Vi(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;f=l;l=l+48|0;if((l|0)>=(m|0))$(48);g=f;h=f+32|0;i=f+28|0;j=f+24|0;k=f+20|0;n=f+16|0;o=f+12|0;p=f+8|0;q=f+4|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=c[c[i>>2]>>2];c[p>>2]=0;c[o>>2]=c[(c[k>>2]|0)+16>>2];while(1){if(!(c[o>>2]|0))break;if((c[c[c[o>>2]>>2]>>2]|0)==(c[j>>2]|0)){r=4;break}c[o>>2]=c[(c[o>>2]|0)+4>>2]}if((r|0)==4){c[h>>2]=0;s=c[h>>2]|0;l=f;return s|0}c[n>>2]=Qi(c[j>>2]|0)|0;if(!(c[n>>2]|0)){c[g>>2]=c[j>>2];Ye(37139,g);c[p>>2]=5}if(((c[p>>2]|0)==0&(c[j>>2]|0)==1?Wg()|0:0)?(ch(37178),ah()|0):0)c[p>>2]=5;do if(!(c[p>>2]|0)){c[q>>2]=24+(c[(c[n>>2]|0)+44>>2]|0)-8;j=c[q>>2]|0;if(a[(c[k>>2]|0)+12>>0]&1|0)c[o>>2]=sf(j)|0;else c[o>>2]=pf(j)|0;if(c[o>>2]|0){c[c[o>>2]>>2]=c[n>>2];c[(c[o>>2]|0)+4>>2]=c[(c[k>>2]|0)+16>>2];c[(c[o>>2]|0)+8>>2]=c[q>>2];c[(c[k>>2]|0)+16>>2]=c[o>>2];xb[c[(c[c[o>>2]>>2]|0)+28>>2]&7]((c[o>>2]|0)+16|0,(d[(c[k>>2]|0)+12>>0]|0)>>>2&1|0?256:0);break}else{c[p>>2]=Ct(c[(xu()|0)>>2]|0)|0;break}}while(0);c[h>>2]=c[p>>2];s=c[h>>2]|0;l=f;return s|0}function Wi(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+32|0;if((l|0)>=(m|0))$(32);d=b+20|0;e=b+16|0;f=b+8|0;g=b;c[d>>2]=a;if(c[(c[c[d>>2]>>2]|0)+8>>2]|0){if(c[(c[d>>2]|0)+4>>2]|0)Xi(c[d>>2]|0,0,0);Qv(c[(c[c[d>>2]>>2]|0)+8>>2]|0)|0;c[(c[c[d>>2]>>2]|0)+8>>2]=0}c[e>>2]=c[d>>2];d=f;c[d>>2]=42;c[d+4>>2]=0;d=f;f=gx(c[e>>2]|0,0,c[d>>2]|0,c[d+4>>2]|0)|0;d=g;c[d>>2]=f;c[d+4>>2]=D;l=b;return}function Xi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;if(c[(c[c[f>>2]>>2]|0)+8>>2]|0){if(c[(c[f>>2]|0)+4>>2]|0?(Zv((c[f>>2]|0)+12|0,c[(c[f>>2]|0)+4>>2]|0,1,c[(c[c[f>>2]>>2]|0)+8>>2]|0)|0)!=1:0)Re(37187,630,37192);if(c[h>>2]|0?(Zv(c[g>>2]|0,c[h>>2]|0,1,c[(c[c[f>>2]>>2]|0)+8>>2]|0)|0)!=1:0)Re(37187,632,37192)}c[i>>2]=c[(c[c[f>>2]>>2]|0)+16>>2];while(1){j=(c[f>>2]|0)+4|0;if(!(c[i>>2]|0))break;if(c[j>>2]|0)zb[c[(c[c[i>>2]>>2]|0)+32>>2]&7]((c[i>>2]|0)+16|0,(c[f>>2]|0)+12|0,c[(c[f>>2]|0)+4>>2]|0);zb[c[(c[c[i>>2]>>2]|0)+32>>2]&7]((c[i>>2]|0)+16|0,c[g>>2]|0,c[h>>2]|0);c[i>>2]=c[(c[i>>2]|0)+4>>2]}c[j>>2]=0;l=e;return}function Yi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=l;l=l+80|0;if((l|0)>=(m|0))$(80);e=d+16|0;f=d+8|0;g=d+24|0;h=d+20|0;i=d+28|0;c[g>>2]=a;c[h>>2]=b;if(Wg()|0){l=d;return}if(c[(c[c[g>>2]>>2]|0)+8>>2]|0){Ye(37201,d);l=d;return}c[17735]=(c[17735]|0)+1;b=c[h>>2]|0;c[f>>2]=c[17735];c[f+4>>2]=b;Su(i,49,37233,f)|0;f=Pv(i,37250)|0;c[(c[c[g>>2]>>2]|0)+8>>2]=f;if(c[(c[c[g>>2]>>2]|0)+8>>2]|0){l=d;return}c[e>>2]=i;Ye(37252,e);l=d;return}function Zi(b){b=b|0;var e=0,f=0,g=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+4|0;g=e;c[f>>2]=b;b=(c[c[f>>2]>>2]|0)+12|0;a[b>>0]=a[b>>0]&-3;c[(c[f>>2]|0)+4>>2]=0;c[g>>2]=c[(c[c[f>>2]>>2]|0)+16>>2];while(1){if(!(c[g>>2]|0))break;Uw((c[g>>2]|0)+16|0,0,c[(c[c[g>>2]>>2]|0)+44>>2]|0)|0;xb[c[(c[c[g>>2]>>2]|0)+28>>2]&7]((c[g>>2]|0)+16|0,(d[(c[c[f>>2]>>2]|0)+12>>0]|0)>>>2&1|0?256:0);c[g>>2]=c[(c[g>>2]|0)+4>>2]}if(!(c[(c[c[f>>2]>>2]|0)+20>>2]|0)){l=e;return}Xi(c[f>>2]|0,c[(c[c[f>>2]>>2]|0)+20>>2]|0,c[(c[c[f>>2]>>2]|0)+24>>2]|0);l=e;return}function _i(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;Ui(c[d>>2]|0);l=b;return}function $i(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;Xi(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0);l=e;return}function aj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f+16|0;h=f+12|0;i=f+8|0;j=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[f+4>>2]=e;c[j>>2]=0;switch(c[h>>2]|0){case 5:{bj(c[g>>2]|0);break}case 32:{Yi(c[g>>2]|0,c[i>>2]|0);break}case 33:{Wi(c[g>>2]|0);break}default:c[j>>2]=61}l=f;return c[j>>2]|0}function bj(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e+24|0;g=e+20|0;h=e+16|0;i=e+12|0;j=e+8|0;k=e+4|0;n=e;c[f>>2]=b;if((d[(c[c[f>>2]>>2]|0)+12>>0]|0)>>>1&1|0){l=e;return}if(c[(c[f>>2]|0)+4>>2]|0)Xi(c[f>>2]|0,0,0);c[g>>2]=c[(c[c[f>>2]>>2]|0)+16>>2];while(1){if(!(c[g>>2]|0))break;wb[c[(c[c[g>>2]>>2]|0)+36>>2]&15]((c[g>>2]|0)+16|0);c[g>>2]=c[(c[g>>2]|0)+4>>2]}g=(c[c[f>>2]>>2]|0)+12|0;a[g>>0]=a[g>>0]&-3|2;if(!(c[(c[c[f>>2]>>2]|0)+20>>2]|0)){l=e;return}c[h>>2]=cj(c[f>>2]|0)|0;c[i>>2]=dj(c[f>>2]|0,c[h>>2]|0)|0;c[j>>2]=ej(c[h>>2]|0)|0;c[n>>2]=Ti(k,c[h>>2]|0,(a[(c[c[f>>2]>>2]|0)+12>>0]&1|0?1:0)|((d[(c[c[f>>2]>>2]|0)+12>>0]|0)>>>2&1|0?256:0))|0;if(c[n>>2]|0)Le(c[n>>2]|0,0);Xi(c[k>>2]|0,(c[(c[c[f>>2]>>2]|0)+20>>2]|0)+(c[(c[c[f>>2]>>2]|0)+24>>2]|0)|0,c[(c[c[f>>2]>>2]|0)+24>>2]|0);Xi(c[k>>2]|0,c[i>>2]|0,c[j>>2]|0);bj(c[k>>2]|0);f=c[i>>2]|0;i=dj(c[k>>2]|0,c[h>>2]|0)|0;_w(f|0,i|0,c[j>>2]|0)|0;Ui(c[k>>2]|0);l=e;return}function cj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;e=b+8|0;f=b+4|0;c[e>>2]=a;c[f>>2]=c[(c[c[e>>2]>>2]|0)+16>>2];if(c[f>>2]|0?c[(c[f>>2]|0)+4>>2]|0:0){dh(37187,980,37324,0,37336);Ve(37357,d)}if(!(c[f>>2]|0)){g=0;l=b;return g|0}g=c[c[c[f>>2]>>2]>>2]|0;l=b;return g|0}function dj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d;f=d+16|0;g=d+12|0;h=d+8|0;i=d+4|0;c[g>>2]=a;c[h>>2]=b;c[i>>2]=c[(c[c[g>>2]>>2]|0)+16>>2];if(!(c[h>>2]|0)){if(!(c[i>>2]|0))Re(37187,816,37316);if(c[(c[i>>2]|0)+4>>2]|0)Ye(37277,e);c[f>>2]=yb[c[(c[c[i>>2]>>2]|0)+40>>2]&15]((c[i>>2]|0)+16|0)|0;j=c[f>>2]|0;l=d;return j|0}c[i>>2]=c[(c[c[g>>2]>>2]|0)+16>>2];while(1){if(!(c[i>>2]|0)){k=11;break}n=c[i>>2]|0;if((c[c[c[i>>2]>>2]>>2]|0)==(c[h>>2]|0))break;c[i>>2]=c[n+4>>2]}if((k|0)==11)Re(37187,816,37316);c[f>>2]=yb[c[(c[n>>2]|0)+40>>2]&15]((c[i>>2]|0)+16|0)|0;j=c[f>>2]|0;l=d;return j|0}function ej(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=Qi(c[d>>2]|0)|0;if(!(c[e>>2]|0)){f=0;l=b;return f|0}f=c[(c[e>>2]|0)+24>>2]|0;l=b;return f|0}function fj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;if(c[(c[c[f>>2]>>2]|0)+20>>2]|0){c[i>>2]=gj(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;if(!(c[i>>2]|0))Zi(c[f>>2]|0)}else c[i>>2]=70;l=e;return c[i>>2]|0}function gj(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;g=l;l=l+48|0;if((l|0)>=(m|0))$(48);h=g+32|0;i=g+28|0;j=g+24|0;k=g+20|0;n=g+16|0;o=g+12|0;p=g+8|0;q=g+4|0;r=g;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[o>>2]=cj(c[i>>2]|0)|0;c[p>>2]=0;if(!(c[o>>2]|0)){c[h>>2]=5;s=c[h>>2]|0;l=g;return s|0}do if((c[k>>2]|0)>>>0>(c[(c[c[i>>2]>>2]|0)+24>>2]|0)>>>0){c[p>>2]=sf(ej(c[o>>2]|0)|0)|0;if(c[p>>2]|0){hj(c[o>>2]|0,c[p>>2]|0,c[j>>2]|0,c[k>>2]|0);c[j>>2]=c[p>>2];c[k>>2]=ej(c[o>>2]|0)|0;if((c[k>>2]|0)>>>0<=(c[(c[c[i>>2]>>2]|0)+24>>2]|0)>>>0)break;Se(37408,37187,716,37441)}else{c[h>>2]=Ct(c[(xu()|0)>>2]|0)|0;s=c[h>>2]|0;l=g;return s|0}}while(0);Uw(c[(c[c[i>>2]>>2]|0)+20>>2]|0,0,c[(c[c[i>>2]>>2]|0)+24>>2]<<1|0)|0;c[q>>2]=c[(c[c[i>>2]>>2]|0)+20>>2];c[r>>2]=(c[(c[c[i>>2]>>2]|0)+20>>2]|0)+(c[(c[c[i>>2]>>2]|0)+24>>2]|0);_w(c[q>>2]|0,c[j>>2]|0,c[k>>2]|0)|0;_w(c[r>>2]|0,c[j>>2]|0,c[k>>2]|0)|0;c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[(c[c[i>>2]>>2]|0)+24>>2]|0))break;k=(c[q>>2]|0)+(c[n>>2]|0)|0;a[k>>0]=(d[k>>0]|0)^54;k=(c[r>>2]|0)+(c[n>>2]|0)|0;a[k>>0]=(d[k>>0]|0)^92;c[n>>2]=(c[n>>2]|0)+1}vf(c[p>>2]|0);c[h>>2]=0;s=c[h>>2]|0;l=g;return s|0}function hj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f;h=f+28|0;i=f+24|0;j=f+20|0;k=f+16|0;n=f+12|0;o=f+8|0;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;if((c[h>>2]|0)==2){Xl(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0);l=f;return}if((c[h>>2]|0)==3?(Wg()|0)==0:0){bl(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0);l=f;return}if(((c[h>>2]|0)==1?Wg()|0:0)?(ch(37178),ah()|0):0)Yg();c[o>>2]=Ti(n,c[h>>2]|0,0)|0;if(c[o>>2]|0){e=c[h>>2]|0;d=Bt(ij(c[o>>2]|0)|0)|0;c[g>>2]=e;c[g+4>>2]=d;Xe(37457,g)}Xi(c[n>>2]|0,c[j>>2]|0,c[k>>2]|0);bj(c[n>>2]|0);k=c[i>>2]|0;i=dj(c[n>>2]|0,c[h>>2]|0)|0;_w(k|0,i|0,ej(c[h>>2]|0)|0)|0;Ui(c[n>>2]|0);l=f;return}function ij(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=jj(32,c[d>>2]|0)|0;l=b;return a|0}function jj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=kj(c[e>>2]|0,c[f>>2]|0)|0;l=d;return b|0}function kj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;if(!(c[f>>2]|0)){g=0;l=d;return g|0}g=(c[e>>2]&127)<<24|c[f>>2]&65535;l=d;return g|0}function lj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;aj(c[e>>2]|0,5,0,0)|0;b=dj(c[e>>2]|0,c[f>>2]|0)|0;l=d;return b|0}function mj(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=l;l=l+48|0;if((l|0)>=(m|0))$(48);h=g+32|0;i=g+28|0;j=g+24|0;k=g+20|0;n=g+16|0;o=g+12|0;p=g+8|0;q=g+4|0;r=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[n>>2]=e;c[o>>2]=f;if((c[n>>2]|0)==0|(c[o>>2]|0)<0){c[h>>2]=45;s=c[h>>2]|0;l=g;return s|0}if(c[j>>2]&-3|0){c[h>>2]=45;s=c[h>>2]|0;l=g;return s|0}c[p>>2]=((c[j>>2]&2|0)!=0^1^1)&1;if((c[p>>2]|0)!=0&(c[o>>2]|0)<1){c[h>>2]=45;s=c[h>>2]|0;l=g;return s|0}if((c[i>>2]|0)!=2|(c[p>>2]|0)!=0){if(((c[i>>2]|0)==1?Wg()|0:0)?(ch(37178),ah()|0):0)Yg();c[r>>2]=Ti(q,c[i>>2]|0,c[p>>2]|0?2:0)|0;if(c[r>>2]|0){c[h>>2]=c[r>>2];s=c[h>>2]|0;l=g;return s|0}do if(c[p>>2]|0){c[r>>2]=fj(c[q>>2]|0,(c[(c[n>>2]|0)+12>>2]|0)+(c[(c[n>>2]|0)+4>>2]|0)|0,c[(c[n>>2]|0)+8>>2]|0)|0;if(!(c[r>>2]|0)){c[n>>2]=(c[n>>2]|0)+16;c[o>>2]=(c[o>>2]|0)+-1;break}Ui(c[q>>2]|0);c[h>>2]=c[r>>2];s=c[h>>2]|0;l=g;return s|0}while(0);while(1){t=c[q>>2]|0;if(!(c[o>>2]|0))break;Xi(t,(c[(c[n>>2]|0)+12>>2]|0)+(c[(c[n>>2]|0)+4>>2]|0)|0,c[(c[n>>2]|0)+8>>2]|0);c[n>>2]=(c[n>>2]|0)+16;c[o>>2]=(c[o>>2]|0)+-1}bj(t);t=c[k>>2]|0;r=dj(c[q>>2]|0,c[i>>2]|0)|0;_w(t|0,r|0,ej(c[i>>2]|0)|0)|0;Ui(c[q>>2]|0)}else Yl(c[k>>2]|0,c[n>>2]|0,c[o>>2]|0);c[h>>2]=0;s=c[h>>2]|0;l=g;return s|0}function nj(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=cj(c[d>>2]|0)|0;l=b;return a|0}function oj(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=ej(c[d>>2]|0)|0;l=b;return a|0}function pj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f+24|0;h=f+20|0;i=f+16|0;j=f+12|0;k=f+8|0;n=f+4|0;o=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;a:do switch(c[h>>2]|0){case 8:{if((c[i>>2]|0)!=0|(c[j>>2]|0)!=0){c[k>>2]=45;break a}else{c[k>>2]=qj(c[g>>2]|0)|0;break a}break}case 10:{c[k>>2]=qj(c[g>>2]|0)|0;if(!(c[k>>2]|0)){c[n>>2]=rj(c[g>>2]|0,o,0)|0;if(c[i>>2]|0?(c[c[j>>2]>>2]|0)>>>0>=(c[o>>2]|0)>>>0:0){_w(c[i>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;c[c[j>>2]>>2]=c[o>>2];break a}if((c[i>>2]|0)==0&(c[j>>2]|0)!=0){c[c[j>>2]>>2]=c[o>>2];break a}if(c[i>>2]|0){c[k>>2]=66;break a}else{c[k>>2]=45;break a}}break}case 57:{if(c[j>>2]|0)p=c[c[j>>2]>>2]|0;else p=0;c[k>>2]=tj(sj(c[g>>2]|0,p,0)|0)|0;break}default:c[k>>2]=61}while(0);l=f;return c[k>>2]|0}function qj(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+8|0;f=d+4|0;g=d;c[f>>2]=b;c[g>>2]=Qi(c[f>>2]|0)|0;if(c[g>>2]|0?(a[(c[g>>2]|0)+4>>0]&1|0)==0:0){c[e>>2]=0;h=c[e>>2]|0;l=d;return h|0}c[e>>2]=5;h=c[e>>2]|0;l=d;return h|0}function rj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e;g=e+20|0;h=e+16|0;i=e+12|0;j=e+8|0;k=e+4|0;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[k>>2]=0;c[j>>2]=Qi(c[g>>2]|0)|0;if(!(c[j>>2]|0)){c[f>>2]=c[g>>2];Xe(37493,f)}if(c[h>>2]|0)c[c[h>>2]>>2]=c[(c[j>>2]|0)+16>>2];if(!(c[i>>2]|0)){n=c[j>>2]|0;o=n+12|0;p=c[o>>2]|0;c[k>>2]=p;q=c[k>>2]|0;l=e;return q|0}c[c[i>>2]>>2]=c[(c[j>>2]|0)+24>>2];n=c[j>>2]|0;o=n+12|0;p=c[o>>2]|0;c[k>>2]=p;q=c[k>>2]|0;l=e;return q|0}function sj(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[g>>2]=b;c[h>>2]=d;c[i>>2]=e;c[j>>2]=0;c[k>>2]=Qi(c[g>>2]|0)|0;if((c[k>>2]|0?(a[(c[k>>2]|0)+4>>0]&1|0)==0:0)?c[(c[k>>2]|0)+48>>2]|0:0){c[j>>2]=ub[c[(c[k>>2]|0)+48>>2]&63](c[g>>2]|0,c[h>>2]|0,c[i>>2]|0)|0;n=c[j>>2]|0;o=uj(n)|0;l=f;return o|0}if(c[k>>2]|0)p=(c[(c[k>>2]|0)+48>>2]|0)!=0;else p=0;c[j>>2]=p?5:69;if(!(c[i>>2]|0)){n=c[j>>2]|0;o=uj(n)|0;l=f;return o|0}p=c[i>>2]|0;i=c[g>>2]|0;if(c[k>>2]|0?!(a[(c[k>>2]|0)+4>>0]&1|0):0)q=38046;else q=c[k>>2]|0?38007:38026;Eb[p&1](43214,i,38068,q);n=c[j>>2]|0;o=uj(n)|0;l=f;return o|0}function tj(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;l=b;return c[d>>2]&65535|0}function uj(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=kj(1,c[d>>2]|0)|0;l=b;return a|0}function vj(){return 0}function wj(){return 0}function xj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;c[17736]=c[e>>2];c[17737]=c[f>>2];l=d;return}function yj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[k>>2]=zj(c[g>>2]|0,1,c[h>>2]|0,c[i>>2]|0,c[j>>2]|0)|0;Aj(10);l=f;return c[k>>2]|0}function zj(a,b,d,f,g){a=a|0;b=b|0;d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;h=l;l=l+96|0;if((l|0)>=(m|0))$(96);i=h+8|0;j=h;k=h+80|0;n=h+76|0;o=h+72|0;p=h+68|0;q=h+64|0;r=h+60|0;s=h+56|0;t=h+52|0;u=h+48|0;v=h+44|0;w=h+40|0;x=h+36|0;y=h+32|0;z=h+28|0;A=h+24|0;B=h+20|0;C=h+16|0;D=h+12|0;c[k>>2]=a;c[n>>2]=b;c[o>>2]=d;c[p>>2]=f;c[q>>2]=g;if((c[k>>2]|0)>>>0<16){c[j>>2]=16;We(37531,j)}c[C>>2]=zf(c[1099]<<2)|0;c[u>>2]=up(2)|0;c[v>>2]=up(3)|0;j=c[k>>2]|0;if(c[n>>2]|0)E=Sp(j)|0;else E=Rp(j)|0;c[r>>2]=E;c[w>>2]=Lp(c[r>>2]|0)|0;c[t>>2]=Lp(c[r>>2]|0)|0;c[s>>2]=Lp(c[r>>2]|0)|0;c[B>>2]=0;c[A>>2]=0;a:while(1){c[D>>2]=0;Up(c[r>>2]|0,c[k>>2]|0,c[o>>2]|0);oo(c[r>>2]|0,(c[k>>2]|0)-1|0);if(c[n>>2]|0)no(c[r>>2]|0,(c[k>>2]|0)-2|0);no(c[r>>2]|0,0);c[x>>2]=0;while(1){E=e[16568+(c[x>>2]<<1)>>1]|0;c[y>>2]=E;if(!E)break;E=Ao(0,c[r>>2]|0,c[y>>2]|0)|0;c[(c[C>>2]|0)+(c[x>>2]<<2)>>2]=E;c[x>>2]=(c[x>>2]|0)+1}c[z>>2]=0;while(1){if((c[z>>2]|0)>>>0>=2e4)break;c[A>>2]=(c[A>>2]|0)+1;c[x>>2]=0;while(1){E=e[16568+(c[x>>2]<<1)>>1]|0;c[y>>2]=E;if(!E)break;while(1){if(((c[(c[C>>2]|0)+(c[x>>2]<<2)>>2]|0)+(c[z>>2]|0)|0)>>>0<(c[y>>2]|0)>>>0)break;E=(c[C>>2]|0)+(c[x>>2]<<2)|0;c[E>>2]=(c[E>>2]|0)-(c[y>>2]|0)}if(!((c[(c[C>>2]|0)+(c[x>>2]<<2)>>2]|0)+(c[z>>2]|0)|0))break;c[x>>2]=(c[x>>2]|0)+1}if(!(c[y>>2]|0)){eo(c[s>>2]|0,c[r>>2]|0,c[z>>2]|0);c[B>>2]=(c[B>>2]|0)+1;go(c[t>>2]|0,c[s>>2]|0,1);So(c[w>>2]|0,c[u>>2]|0,c[t>>2]|0,c[s>>2]|0);if((vo(c[w>>2]|0,1)|0)==0?Bj(c[s>>2]|0,5,B)|0:0){if(!(mo(c[s>>2]|0,(c[k>>2]|0)-1-(c[n>>2]|0)|0)|0)){F=24;break}if(!(c[p>>2]|0)){F=28;break a}if(!(Db[c[p>>2]&7](c[q>>2]|0,c[s>>2]|0)|0)){F=28;break a}Aj(47)}E=(c[D>>2]|0)+1|0;c[D>>2]=E;if((E|0)==10){Aj(46);c[D>>2]=0}}c[z>>2]=(c[z>>2]|0)+2}if((F|0)==24){F=0;Aj(10);Ye(37578,i)}Aj(58)}if((F|0)==28){Dp(c[u>>2]|0);Dp(c[v>>2]|0);Dp(c[w>>2]|0);Dp(c[t>>2]|0);Dp(c[r>>2]|0);vf(c[C>>2]|0);l=h;return c[s>>2]|0}return 0}function Aj(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;if(!(c[17736]|0)){l=b;return}vb[c[17736]&15](c[17737]|0,37522,c[d>>2]|0,0,0);l=b;return}function Bj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;e=l;l=l+64|0;if((l|0)>=(m|0))$(64);f=e+52|0;g=e+48|0;h=e+44|0;i=e+40|0;j=e+36|0;k=e+32|0;n=e+28|0;o=e+24|0;p=e+20|0;q=e+16|0;r=e+12|0;s=e+8|0;t=e+4|0;u=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=vp(c[(c[f>>2]|0)+4>>2]|0)|0;c[j>>2]=vp(c[(c[f>>2]|0)+4>>2]|0)|0;c[k>>2]=vp(c[(c[f>>2]|0)+4>>2]|0)|0;c[n>>2]=vp(c[(c[f>>2]|0)+4>>2]|0)|0;c[o>>2]=up(2)|0;c[t>>2]=0;c[u>>2]=lo(c[f>>2]|0)|0;if((c[g>>2]|0)<5)c[g>>2]=5;go(c[n>>2]|0,c[f>>2]|0,1);c[p>>2]=Ip(c[n>>2]|0)|0;c[s>>2]=Uo(c[p>>2]|0)|0;Do(c[p>>2]|0,c[p>>2]|0,c[s>>2]|0);c[q>>2]=0;a:while(1){if((c[q>>2]|0)>>>0>=(c[g>>2]|0)>>>0){v=22;break}d=c[h>>2]|0;c[d>>2]=(c[d>>2]|0)+1;d=c[i>>2]|0;if(c[q>>2]|0){Up(d,c[u>>2]|0,0);b=(mo(c[i>>2]|0,(c[u>>2]|0)-2|0)|0)!=0;oo(c[i>>2]|0,(c[u>>2]|0)-2|0);if(!b)qo(c[i>>2]|0,(c[u>>2]|0)-2|0);if((wo(c[i>>2]|0,c[n>>2]|0)|0)>=0){v=11;break}if((vo(c[i>>2]|0,1)|0)<=0){v=11;break}}else Op(d,2)|0;So(c[j>>2]|0,c[i>>2]|0,c[p>>2]|0,c[f>>2]|0);if(vo(c[j>>2]|0,1)|0?wo(c[j>>2]|0,c[n>>2]|0)|0:0){c[r>>2]=1;while(1){if((c[r>>2]|0)>>>0<(c[s>>2]|0)>>>0)w=(wo(c[j>>2]|0,c[n>>2]|0)|0)!=0;else w=0;x=c[j>>2]|0;if(!w)break;So(x,c[j>>2]|0,c[o>>2]|0,c[f>>2]|0);if(!(vo(c[j>>2]|0,1)|0)){v=23;break a}c[r>>2]=(c[r>>2]|0)+1}if(wo(x,c[n>>2]|0)|0){v=23;break}}Aj(43);c[q>>2]=(c[q>>2]|0)+1}if((v|0)==11)Se(37608,37680,951,37691);else if((v|0)==22){c[t>>2]=1;y=c[i>>2]|0;Dp(y);z=c[j>>2]|0;Dp(z);A=c[k>>2]|0;Dp(A);B=c[n>>2]|0;Dp(B);C=c[p>>2]|0;Dp(C);D=c[o>>2]|0;Dp(D);E=c[t>>2]|0;l=e;return E|0}else if((v|0)==23){y=c[i>>2]|0;Dp(y);z=c[j>>2]|0;Dp(z);A=c[k>>2]|0;Dp(A);B=c[n>>2]|0;Dp(B);C=c[p>>2]|0;Dp(C);D=c[o>>2]|0;Dp(D);E=c[t>>2]|0;l=e;return E|0}return 0}function Cj(a,b,d,f,g){a=a|0;b=b|0;d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;h=l;l=l+48|0;if((l|0)>=(m|0))$(48);i=h+40|0;j=h+36|0;k=h+32|0;n=h+28|0;o=h+24|0;p=h+20|0;q=h+16|0;r=h+12|0;s=h+8|0;t=h+4|0;u=h;c[j>>2]=a;c[k>>2]=b;c[n>>2]=d;c[o>>2]=f;c[p>>2]=g;c[s>>2]=0;c[q>>2]=0;while(1){g=e[16568+(c[q>>2]<<1)>>1]|0;c[r>>2]=g;v=c[j>>2]|0;if(!g)break;if(Eo(v,c[r>>2]|0)|0){w=4;break}c[q>>2]=(c[q>>2]|0)+1}if((w|0)==4){c[i>>2]=((vo(c[j>>2]|0,c[r>>2]|0)|0)!=0^1)&1;x=c[i>>2]|0;l=h;return x|0}c[t>>2]=Lp(v)|0;c[u>>2]=Lp(c[j>>2]|0)|0;go(c[u>>2]|0,c[j>>2]|0,1);So(c[t>>2]|0,c[k>>2]|0,c[u>>2]|0,c[j>>2]|0);Dp(c[u>>2]|0);u=(vo(c[t>>2]|0,1)|0)!=0;Dp(c[t>>2]|0);if(u){Aj(46);c[i>>2]=0;x=c[i>>2]|0;l=h;return x|0}if(!(c[o>>2]|0?!(ub[c[o>>2]&63](c[p>>2]|0,2,c[j>>2]|0)|0):0))w=10;do if((w|0)==10?Bj(c[j>>2]|0,c[n>>2]|0,s)|0:0){if(c[o>>2]|0?(ub[c[o>>2]&63](c[p>>2]|0,1,c[j>>2]|0)|0)==0:0)break;c[i>>2]=1;x=c[i>>2]|0;l=h;return x|0}while(0);Aj(46);c[i>>2]=0;x=c[i>>2]|0;l=h;return x|0}function Dj(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;h=l;l=l+64|0;if((l|0)>=(m|0))$(64);i=h+60|0;j=h+56|0;k=h+52|0;n=h+48|0;o=h+44|0;p=h+40|0;q=h+36|0;r=h+32|0;s=h+28|0;t=h+24|0;u=h+20|0;v=h+16|0;w=h+12|0;x=h+8|0;y=h+4|0;z=h;c[j>>2]=a;c[k>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;if(!((c[j>>2]|0)!=0&(c[k>>2]|0)!=0&(c[n>>2]|0)!=0)){c[i>>2]=0;A=c[i>>2]|0;l=h;return A|0}if(c[o>>2]|0?mo(c[o>>2]|0,0)|0:0){c[r>>2]=Ej(c[k>>2]|0)|0;c[s>>2]=Ej(c[n>>2]|0)|0;c[t>>2]=Lp(c[j>>2]|0)|0;Qo(c[t>>2]|0,c[r>>2]|0,c[s>>2]|0);c[w>>2]=Lp(c[r>>2]|0)|0;Lo(c[w>>2]|0,c[s>>2]|0,c[r>>2]|0)|0;Qo(c[w>>2]|0,c[w>>2]|0,c[s>>2]|0);c[v>>2]=c[w>>2];c[w>>2]=Lp(c[s>>2]|0)|0;Lo(c[w>>2]|0,c[r>>2]|0,c[s>>2]|0)|0;Qo(c[w>>2]|0,c[w>>2]|0,c[r>>2]|0);ho(c[v>>2]|0,c[v>>2]|0,c[w>>2]|0);if(c[(c[v>>2]|0)+8>>2]|0)fo(c[v>>2]|0,c[v>>2]|0,c[t>>2]|0);c[u>>2]=c[w>>2];c[w>>2]=0;jo(c[u>>2]|0,c[v>>2]|0,c[j>>2]|0,c[t>>2]|0);fo(c[u>>2]|0,c[u>>2]|0,c[j>>2]|0);Dp(c[v>>2]|0);if((wo(c[u>>2]|0,c[j>>2]|0)|0)<0)fo(c[u>>2]|0,c[u>>2]|0,c[t>>2]|0);c[x>>2]=up(2)|0;c[y>>2]=Lp(c[u>>2]|0)|0;go(c[t>>2]|0,c[t>>2]|0,1);go(c[u>>2]|0,c[u>>2]|0,1);while(1){c[z>>2]=Fo(c[y>>2]|0,c[o>>2]|0,c[u>>2]|0)|0;eo(c[u>>2]|0,c[u>>2]|0,1);if(c[z>>2]|0){if(Cj(c[u>>2]|0,c[x>>2]|0,64,0,0)|0)break}else Aj(47);fo(c[u>>2]|0,c[u>>2]|0,c[t>>2]|0)}Dp(c[y>>2]|0);Dp(c[x>>2]|0);Dp(c[t>>2]|0);Aj(10);t=c[r>>2]|0;if(c[p>>2]|0)c[c[p>>2]>>2]=t;else Dp(t);t=c[s>>2]|0;if(c[q>>2]|0)c[c[q>>2]>>2]=t;else Dp(t);c[i>>2]=c[u>>2];A=c[i>>2]|0;l=h;return A|0}c[i>>2]=0;A=c[i>>2]|0;l=h;return A|0}function Ej(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+8|0;e=b+4|0;f=b;c[d>>2]=a;c[e>>2]=up(2)|0;c[f>>2]=Ip(c[d>>2]|0)|0;no(c[f>>2]|0,0);while(1){if(!((Cj(c[f>>2]|0,c[e>>2]|0,64,0,0)|0)!=0^1))break;eo(c[f>>2]|0,c[f>>2]|0,2)}Dp(c[e>>2]|0);l=b;return c[f>>2]|0}function Fj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;e=l;l=l+48|0;if((l|0)>=(m|0))$(48);f=e+36|0;g=e+32|0;h=e+28|0;i=e+24|0;j=e+20|0;k=e+16|0;n=e+12|0;o=e+8|0;p=e+4|0;q=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=0;c[o>>2]=5;c[p>>2]=0;c[q>>2]=0;if(c[f>>2]|0)r=(Uf(c[f>>2]|0)|0)-1|0;else r=0;c[n>>2]=r;while(1){if((c[n>>2]|0)<=0)break;c[j>>2]=Xf(c[f>>2]|0,c[n>>2]|0,k)|0;a:do if(c[j>>2]|0)do switch(c[k>>2]|0){case 3:{if((Jv(c[j>>2]|0,37700,3)|0)==0&(c[o>>2]|0)==5){c[o>>2]=4;c[p>>2]=c[p>>2]|4;break a}if((Jv(c[j>>2]|0,37704,3)|0)==0&(c[o>>2]|0)==5){c[o>>2]=0;c[p>>2]=c[p>>2]|16;break a}if(c[q>>2]|0)break a;c[i>>2]=72;break a;break}case 4:{if(!(Jv(c[j>>2]|0,37708,4)|0)){c[p>>2]=c[p>>2]|1024;break a}if((Jv(c[j>>2]|0,37713,4)|0)==0&(c[o>>2]|0)==5){c[o>>2]=3;c[p>>2]=c[p>>2]|4;break a}if(!(Jv(c[j>>2]|0,49930,4)|0)){c[o>>2]=0;c[p>>2]=c[p>>2]|8192;break a}if(c[q>>2]|0)break a;c[i>>2]=72;break a;break}case 5:{if(!(Jv(c[j>>2]|0,49924,5)|0)){c[o>>2]=0;c[p>>2]=c[p>>2]|4096;break a}if((Jv(c[j>>2]|0,37718,5)|0)==0&(c[o>>2]|0)==5){c[o>>2]=1;c[p>>2]=c[p>>2]|4;break a}if(!(Jv(c[j>>2]|0,37724,5)|0)){c[p>>2]=c[p>>2]|512;break a}if(c[q>>2]|0)break a;c[i>>2]=72;break a;break}case 6:{if(!(Jv(c[j>>2]|0,37730,6)|0)){c[p>>2]=c[p>>2]|2048;break a}if(c[q>>2]|0)break a;c[i>>2]=72;break a;break}case 7:{if(!(Jv(c[j>>2]|0,37737,7)|0)){c[p>>2]=c[p>>2]|2;break a}if((Jv(c[j>>2]|0,37745,7)|0)==0|(c[q>>2]|0)!=0)break a;c[i>>2]=72;break a;break}case 8:{if(!(Jv(c[j>>2]|0,41808,8)|0)){c[p>>2]=c[p>>2]|64;break a}if(c[q>>2]|0)break a;c[i>>2]=72;break a;break}case 9:{if((Jv(c[j>>2]|0,37753,9)|0)==0&(c[o>>2]|0)==5){c[o>>2]=2;c[p>>2]=c[p>>2]|4;break a}if(c[q>>2]|0)break a;c[i>>2]=72;break a;break}case 10:{if(!(Jv(c[j>>2]|0,37763,10)|0)){c[q>>2]=1;break a}if(!(Jv(c[j>>2]|0,37774,10)|0)){c[p>>2]=c[p>>2]|16384;break a}if(c[q>>2]|0)break a;c[i>>2]=72;break a;break}case 11:{if(!(Jv(c[j>>2]|0,37785,11)|0)){c[p>>2]=c[p>>2]|1;break a}if(!(Jv(c[j>>2]|0,37797,11)|0)){c[p>>2]=c[p>>2]|128;break a}if(c[q>>2]|0)break a;c[i>>2]=72;break a;break}case 13:{if(!(Jv(c[j>>2]|0,37809,13)|0)){c[p>>2]=c[p>>2]|256;break a}if(!(Jv(c[j>>2]|0,48942,13)|0)){c[p>>2]=c[p>>2]|32;break a}if(c[q>>2]|0)break a;c[i>>2]=72;break a;break}default:{if(c[q>>2]|0)break a;c[i>>2]=72;break a}}while(0);while(0);c[n>>2]=(c[n>>2]|0)+-1}if(c[g>>2]|0)c[c[g>>2]>>2]=c[p>>2];if(!(c[h>>2]|0)){s=c[i>>2]|0;l=e;return s|0}c[c[h>>2]>>2]=c[o>>2];s=c[i>>2]|0;l=e;return s|0}function Gj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0;e=l;l=l+80|0;if((l|0)>=(m|0))$(80);f=e+16|0;g=e+12|0;h=e+8|0;i=e+20|0;j=e+4|0;k=e;c[g>>2]=b;c[h>>2]=d;c[c[h>>2]>>2]=0;c[g>>2]=Tf(c[g>>2]|0,37823,0)|0;if(!(c[g>>2]|0)){c[f>>2]=0;n=c[f>>2]|0;l=e;return n|0}c[j>>2]=Xf(c[g>>2]|0,1,k)|0;if((c[j>>2]|0)==0|(c[k>>2]|0)>>>0>=49){Rf(c[g>>2]|0);c[f>>2]=65;n=c[f>>2]|0;l=e;return n|0}else{_w(i|0,c[j>>2]|0,c[k>>2]|0)|0;a[i+(c[k>>2]|0)>>0]=0;k=wv(i,0,0)|0;c[c[h>>2]>>2]=k;Rf(c[g>>2]|0);c[f>>2]=0;n=c[f>>2]|0;l=e;return n|0}return 0}function Hj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0;e=l;l=l+80|0;if((l|0)>=(m|0))$(80);f=e+16|0;g=e+12|0;h=e+8|0;i=e+20|0;j=e+4|0;k=e;c[g>>2]=b;c[h>>2]=d;c[c[h>>2]>>2]=0;c[g>>2]=Tf(c[g>>2]|0,37829,0)|0;if(!(c[g>>2]|0)){c[c[h>>2]>>2]=65537;c[f>>2]=0;n=c[f>>2]|0;l=e;return n|0}c[j>>2]=Xf(c[g>>2]|0,1,k)|0;if((c[j>>2]|0)==0|(c[k>>2]|0)>>>0>=49){Rf(c[g>>2]|0);c[f>>2]=65;n=c[f>>2]|0;l=e;return n|0}else{_w(i|0,c[j>>2]|0,c[k>>2]|0)|0;a[i+(c[k>>2]|0)>>0]=0;k=wv(i,0,0)|0;c[c[h>>2]>>2]=k;Rf(c[g>>2]|0);c[f>>2]=0;n=c[f>>2]|0;l=e;return n|0}return 0}function Ij(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;f=l;l=l+48|0;if((l|0)>=(m|0))$(48);g=f+32|0;h=f+28|0;i=f+24|0;j=f+20|0;k=f+16|0;n=f+12|0;o=f+8|0;p=f+4|0;q=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[n>>2]=0;c[o>>2]=0;c[p>>2]=0;c[c[i>>2]>>2]=0;if(c[j>>2]|0)c[c[j>>2]>>2]=0;c[n>>2]=Tf(c[g>>2]|0,37839,0)|0;do if(c[n>>2]|0){c[o>>2]=Vf(c[n>>2]|0,1)|0;if(!(c[o>>2]|0)){c[k>>2]=68;break}c[p>>2]=_f(c[o>>2]|0,0)|0;if(!(c[p>>2]|0)){c[k>>2]=65;break}if(!(Fu(c[p>>2]|0,47178)|0)){Rf(c[o>>2]|0);c[o>>2]=Vf(c[n>>2]|0,2)|0;if(!(c[o>>2]|0)){c[k>>2]=65;break}vf(c[p>>2]|0);c[p>>2]=_f(c[o>>2]|0,0)|0;if(!(c[p>>2]|0)){c[k>>2]=65;break}}c[q>>2]=0;while(1){if(!(c[(c[h>>2]|0)+(c[q>>2]<<2)>>2]|0))break;if(!(sv(c[p>>2]|0,c[(c[h>>2]|0)+(c[q>>2]<<2)>>2]|0)|0))break;c[q>>2]=(c[q>>2]|0)+1}if(!(c[(c[h>>2]|0)+(c[q>>2]<<2)>>2]|0)){c[k>>2]=70;break}if(c[j>>2]|0){if(!(Fu(c[p>>2]|0,49924)|0))c[c[j>>2]>>2]=4096;if(!(Fu(c[p>>2]|0,49930)|0))c[c[j>>2]>>2]=8192}c[c[i>>2]>>2]=c[o>>2];c[o>>2]=0;c[k>>2]=0}else c[k>>2]=65;while(0);vf(c[p>>2]|0);Rf(c[o>>2]|0);Rf(c[n>>2]|0);l=f;return c[k>>2]|0}function Jj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;f=l;l=l+48|0;if((l|0)>=(m|0))$(48);g=f+44|0;h=f+40|0;i=f+36|0;j=f+32|0;k=f+28|0;n=f+24|0;o=f+20|0;p=f+16|0;q=f+12|0;r=f+8|0;s=f+4|0;t=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[k>>2]=0;c[n>>2]=0;c[o>>2]=0;c[p>>2]=0;c[r>>2]=0;c[c[i>>2]>>2]=0;c[n>>2]=Tf(c[g>>2]|0,40951,0)|0;do if(c[n>>2]|0){c[o>>2]=Vf(c[n>>2]|0,1)|0;if(!(c[o>>2]|0)){c[k>>2]=68;break}c[p>>2]=_f(c[o>>2]|0,0)|0;if(!(c[p>>2]|0)){c[k>>2]=65;break}if(!(Fu(c[p>>2]|0,47178)|0)){c[k>>2]=Fj(c[o>>2]|0,r,(c[j>>2]|0)+8|0)|0;if(c[k>>2]|0)break;if((c[(c[j>>2]|0)+8>>2]|0)==4){c[k>>2]=70;break}if((c[(c[j>>2]|0)+8>>2]|0)==3){Rf(c[o>>2]|0);c[o>>2]=Tf(c[n>>2]|0,37847,0)|0;if(c[o>>2]|0){c[t>>2]=Xf(c[o>>2]|0,1,q)|0;if(c[t>>2]|0){g=Kj(c[t>>2]|0,c[q>>2]|0)|0;c[(c[j>>2]|0)+16>>2]=g;if(!(c[(c[j>>2]|0)+16>>2]|0))c[k>>2]=5}else c[k>>2]=68;if(c[k>>2]|0)break}Rf(c[o>>2]|0);c[o>>2]=Tf(c[n>>2]|0,37857,0)|0;if(c[o>>2]|0){c[t>>2]=Xf(c[o>>2]|0,1,q)|0;do if(c[t>>2]|0){if((c[q>>2]|0)>>>0>0){g=pf(c[q>>2]|0)|0;c[(c[j>>2]|0)+20>>2]=g;if(c[(c[j>>2]|0)+20>>2]|0){_w(c[(c[j>>2]|0)+20>>2]|0,c[t>>2]|0,c[q>>2]|0)|0;c[(c[j>>2]|0)+24>>2]=c[q>>2];break}else{c[k>>2]=Et()|0;break}}}else c[k>>2]=68;while(0);if(c[k>>2]|0)break}}c[s>>2]=2;a:while(1){Rf(c[o>>2]|0);g=Vf(c[n>>2]|0,c[s>>2]|0)|0;c[o>>2]=g;if(!g)break;c[t>>2]=Xf(c[o>>2]|0,0,q)|0;if(!((c[q>>2]|0)==9?!(Jv(c[t>>2]|0,37847,9)|0):0))u=30;do if((u|0)==30){u=0;if((c[q>>2]|0)==5?(Jv(c[t>>2]|0,37857,5)|0)==0:0)break;if((c[q>>2]|0)!=15)break a;if(Jv(c[t>>2]|0,37863,15)|0)break a}while(0);c[s>>2]=(c[s>>2]|0)+1}if(!(c[o>>2]|0)){c[k>>2]=68;break}vf(c[p>>2]|0);c[p>>2]=_f(c[o>>2]|0,0)|0;if(!(c[p>>2]|0)){c[k>>2]=65;break}}else c[r>>2]=c[r>>2]|8;c[s>>2]=0;while(1){if(!(c[(c[h>>2]|0)+(c[s>>2]<<2)>>2]|0))break;if(!(sv(c[p>>2]|0,c[(c[h>>2]|0)+(c[s>>2]<<2)>>2]|0)|0))break;c[s>>2]=(c[s>>2]|0)+1}if(c[(c[h>>2]|0)+(c[s>>2]<<2)>>2]|0){c[c[i>>2]>>2]=c[o>>2];c[o>>2]=0;g=(c[j>>2]|0)+12|0;c[g>>2]=c[g>>2]|c[r>>2];c[k>>2]=0;break}else{c[k>>2]=70;break}}else c[k>>2]=65;while(0);vf(c[p>>2]|0);Rf(c[o>>2]|0);Rf(c[n>>2]|0);l=f;return c[k>>2]|0}function Kj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;j=e;c[f>>2]=b;c[g>>2]=d;c[i>>2]=0;while(1){if(!(c[4400+(c[i>>2]<<3)>>2]|0))break;d=hv(c[4400+(c[i>>2]<<3)>>2]|0)|0;if((d|0)==(c[g>>2]|0)?(Jv(c[4400+(c[i>>2]<<3)>>2]|0,c[f>>2]|0,c[g>>2]|0)|0)==0:0)break;c[i>>2]=(c[i>>2]|0)+1}if(c[4400+(c[i>>2]<<3)>>2]|0){c[h>>2]=c[4400+(c[i>>2]<<3)+4>>2];k=c[h>>2]|0;l=e;return k|0}c[j>>2]=pf((c[g>>2]|0)+1|0)|0;if(c[j>>2]|0){_w(c[j>>2]|0,c[f>>2]|0,c[g>>2]|0)|0;a[(c[j>>2]|0)+(c[g>>2]|0)>>0]=0;c[h>>2]=Li(c[j>>2]|0)|0;vf(c[j>>2]|0);k=c[h>>2]|0;l=e;return k|0}else{c[h>>2]=0;k=c[h>>2]|0;l=e;return k|0}return 0}function Lj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[c[f>>2]>>2]=c[g>>2];c[(c[f>>2]|0)+4>>2]=c[h>>2];c[(c[f>>2]|0)+8>>2]=5;c[(c[f>>2]|0)+12>>2]=0;c[(c[f>>2]|0)+16>>2]=2;c[(c[f>>2]|0)+20>>2]=0;c[(c[f>>2]|0)+24>>2]=0;c[(c[f>>2]|0)+28>>2]=20;c[(c[f>>2]|0)+32>>2]=0;c[(c[f>>2]|0)+36>>2]=0;l=e;return}function Mj(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;vf(c[(c[d>>2]|0)+20>>2]|0);l=b;return} -function gq(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;i=l;l=l+64|0;if((l|0)>=(m|0))$(64);j=i+56|0;k=i+52|0;n=i+48|0;o=i+44|0;p=i+40|0;q=i+36|0;r=i+32|0;s=i+28|0;t=i+24|0;u=i+20|0;v=i+16|0;w=i+12|0;x=i+8|0;y=i+4|0;z=i;A=i+60|0;c[k>>2]=b;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;c[u>>2]=c[(c[(c[k>>2]|0)+12>>2]|0)+20>>2];c[v>>2]=c[(c[(c[k>>2]|0)+12>>2]|0)+36>>2];c[w>>2]=((c[q>>2]|0)>>>0)/((c[u>>2]|0)>>>0)|0;if((c[o>>2]|0)>>>0<(c[(c[k>>2]|0)+52>>2]&8|0?c[u>>2]|0:c[q>>2]|0)>>>0){c[j>>2]=200;B=c[j>>2]|0;l=i;return B|0}do if(((c[q>>2]|0)>>>0)%((c[u>>2]|0)>>>0)|0|0){if((c[q>>2]|0)>>>0>(c[u>>2]|0)>>>0?c[(c[k>>2]|0)+52>>2]&4|0:0)break;c[j>>2]=139;B=c[j>>2]|0;l=i;return B|0}while(0);c[x>>2]=0;if((c[(c[k>>2]|0)+52>>2]&4|0?(c[q>>2]|0)>>>0>(c[u>>2]|0)>>>0:0)?(((c[q>>2]|0)>>>0)%((c[u>>2]|0)>>>0)|0|0)==0:0)c[w>>2]=(c[w>>2]|0)+-1;o=c[k>>2]|0;if(c[(c[k>>2]|0)+20+8>>2]|0){Cb[c[o+20+8>>2]&1]((c[k>>2]|0)+496|0,(c[k>>2]|0)+64|0,c[n>>2]|0,c[p>>2]|0,c[w>>2]|0,c[(c[k>>2]|0)+52>>2]&8);h=S(c[w>>2]|0,c[u>>2]|0)|0;c[p>>2]=(c[p>>2]|0)+h;if(!(c[(c[k>>2]|0)+52>>2]&8)){h=S(c[w>>2]|0,c[u>>2]|0)|0;c[n>>2]=(c[n>>2]|0)+h}}else{c[s>>2]=o+64;c[r>>2]=0;while(1){if((c[r>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break;hq(c[n>>2]|0,c[p>>2]|0,c[s>>2]|0,c[u>>2]|0);c[y>>2]=ub[c[v>>2]&63]((c[k>>2]|0)+496|0,c[n>>2]|0,c[n>>2]|0)|0;c[x>>2]=(c[y>>2]|0)>>>0>(c[x>>2]|0)>>>0?c[y>>2]|0:c[x>>2]|0;c[s>>2]=c[n>>2];c[p>>2]=(c[p>>2]|0)+(c[u>>2]|0);if(!(c[(c[k>>2]|0)+52>>2]&8))c[n>>2]=(c[n>>2]|0)+(c[u>>2]|0);c[r>>2]=(c[r>>2]|0)+1}if((c[s>>2]|0)!=((c[k>>2]|0)+64|0))iq((c[k>>2]|0)+64|0,c[s>>2]|0,c[u>>2]|0)}if(c[(c[k>>2]|0)+52>>2]&4|0?(c[q>>2]|0)>>>0>(c[u>>2]|0)>>>0:0){if(!(((c[q>>2]|0)>>>0)%((c[u>>2]|0)>>>0)|0))c[z>>2]=c[u>>2];else c[z>>2]=((c[q>>2]|0)>>>0)%((c[u>>2]|0)>>>0)|0;c[n>>2]=(c[n>>2]|0)+(0-(c[u>>2]|0));c[s>>2]=(c[k>>2]|0)+64;c[t>>2]=0;while(1){if((c[t>>2]|0)>>>0>=(c[z>>2]|0)>>>0)break;a[A>>0]=a[(c[p>>2]|0)+(c[t>>2]|0)>>0]|0;a[(c[n>>2]|0)+((c[u>>2]|0)+(c[t>>2]|0))>>0]=a[(c[n>>2]|0)+(c[t>>2]|0)>>0]|0;q=d[A>>0]|0;r=c[s>>2]|0;c[s>>2]=r+1;a[(c[n>>2]|0)+(c[t>>2]|0)>>0]=q^(d[r>>0]|0);c[t>>2]=(c[t>>2]|0)+1}while(1){if((c[t>>2]|0)>>>0>=(c[u>>2]|0)>>>0)break;A=c[s>>2]|0;c[s>>2]=A+1;a[(c[n>>2]|0)+(c[t>>2]|0)>>0]=0^(d[A>>0]|0);c[t>>2]=(c[t>>2]|0)+1}c[y>>2]=ub[c[v>>2]&63]((c[k>>2]|0)+496|0,c[n>>2]|0,c[n>>2]|0)|0;c[x>>2]=(c[y>>2]|0)>>>0>(c[x>>2]|0)>>>0?c[y>>2]|0:c[x>>2]|0;iq((c[k>>2]|0)+64|0,c[n>>2]|0,c[u>>2]|0)}if((c[x>>2]|0)>>>0>0){bf((c[x>>2]|0)+16|0);cf()}c[j>>2]=0;B=c[j>>2]|0;l=i;return B|0}function hq(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;h=l;l=l+48|0;if((l|0)>=(m|0))$(48);i=h+40|0;j=h+36|0;k=h+32|0;n=h+28|0;o=h+24|0;p=h+20|0;q=h+16|0;r=h+12|0;s=h+8|0;t=h+4|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[n>>2]=g;c[o>>2]=c[i>>2];c[p>>2]=c[j>>2];c[q>>2]=c[k>>2];c[h>>2]=3;if(!((c[o>>2]|c[p>>2]|c[q>>2])&3)){c[r>>2]=c[o>>2];c[s>>2]=c[p>>2];c[t>>2]=c[q>>2];while(1){if((c[n>>2]|0)>>>0<4)break;k=c[s>>2]|0;c[s>>2]=k+4;j=c[k>>2]|0;k=c[t>>2]|0;c[t>>2]=k+4;i=j^c[k>>2];k=c[r>>2]|0;c[r>>2]=k+4;c[k>>2]=i;c[n>>2]=(c[n>>2]|0)-4}c[o>>2]=c[r>>2];c[p>>2]=c[s>>2];c[q>>2]=c[t>>2]}while(1){if(!(c[n>>2]|0))break;t=c[p>>2]|0;c[p>>2]=t+1;s=d[t>>0]|0;t=c[q>>2]|0;c[q>>2]=t+1;r=(s^(d[t>>0]|0))&255;t=c[o>>2]|0;c[o>>2]=t+1;a[t>>0]=r;c[n>>2]=(c[n>>2]|0)+-1}l=h;return}function iq(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f+28|0;h=f+24|0;i=f+20|0;j=f+16|0;k=f+12|0;n=f+8|0;o=f+4|0;c[g>>2]=b;c[h>>2]=d;c[i>>2]=e;c[j>>2]=c[g>>2];c[k>>2]=c[h>>2];c[f>>2]=3;if(!((c[j>>2]|c[k>>2])&3)){c[n>>2]=c[j>>2];c[o>>2]=c[k>>2];while(1){if((c[i>>2]|0)>>>0<4)break;h=c[o>>2]|0;c[o>>2]=h+4;g=c[h>>2]|0;h=c[n>>2]|0;c[n>>2]=h+4;c[h>>2]=g;c[i>>2]=(c[i>>2]|0)-4}c[j>>2]=c[n>>2];c[k>>2]=c[o>>2]}while(1){if(!(c[i>>2]|0))break;o=c[k>>2]|0;c[k>>2]=o+1;n=a[o>>0]|0;o=c[j>>2]|0;c[j>>2]=o+1;a[o>>0]=n;c[i>>2]=(c[i>>2]|0)+-1}l=f;return}function jq(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;h=l;l=l+64|0;if((l|0)>=(m|0))$(64);i=h+52|0;j=h+48|0;k=h+44|0;n=h+40|0;o=h+36|0;p=h+32|0;q=h+28|0;r=h+24|0;s=h+20|0;t=h+16|0;u=h+12|0;v=h+8|0;w=h+4|0;x=h;c[j>>2]=b;c[k>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[s>>2]=c[(c[(c[j>>2]|0)+12>>2]|0)+20>>2];c[t>>2]=c[(c[(c[j>>2]|0)+12>>2]|0)+40>>2];c[u>>2]=((c[p>>2]|0)>>>0)/((c[s>>2]|0)>>>0)|0;if((c[n>>2]|0)>>>0<(c[p>>2]|0)>>>0){c[i>>2]=200;y=c[i>>2]|0;l=h;return y|0}do if(((c[p>>2]|0)>>>0)%((c[s>>2]|0)>>>0)|0|0){if((c[p>>2]|0)>>>0>(c[s>>2]|0)>>>0?c[(c[j>>2]|0)+52>>2]&4|0:0)break;c[i>>2]=139;y=c[i>>2]|0;l=h;return y|0}while(0);c[v>>2]=0;if(c[(c[j>>2]|0)+52>>2]&4|0?(c[p>>2]|0)>>>0>(c[s>>2]|0)>>>0:0){c[u>>2]=(c[u>>2]|0)+-1;if(!(((c[p>>2]|0)>>>0)%((c[s>>2]|0)>>>0)|0))c[u>>2]=(c[u>>2]|0)+-1;iq((c[j>>2]|0)+96|0,(c[j>>2]|0)+64|0,c[s>>2]|0)}a:do if(c[(c[j>>2]|0)+20+12>>2]|0){vb[c[(c[j>>2]|0)+20+12>>2]&15]((c[j>>2]|0)+496|0,(c[j>>2]|0)+64|0,c[k>>2]|0,c[o>>2]|0,c[u>>2]|0);n=S(c[u>>2]|0,c[s>>2]|0)|0;c[o>>2]=(c[o>>2]|0)+n;n=S(c[u>>2]|0,c[s>>2]|0)|0;c[k>>2]=(c[k>>2]|0)+n}else{c[q>>2]=0;while(1){if((c[q>>2]|0)>>>0>=(c[u>>2]|0)>>>0)break a;c[w>>2]=ub[c[t>>2]&63]((c[j>>2]|0)+496|0,(c[j>>2]|0)+96|0,c[o>>2]|0)|0;c[v>>2]=(c[w>>2]|0)>>>0>(c[v>>2]|0)>>>0?c[w>>2]|0:c[v>>2]|0;kq(c[k>>2]|0,(c[j>>2]|0)+96|0,(c[j>>2]|0)+64|0,c[o>>2]|0,c[s>>2]|0);c[o>>2]=(c[o>>2]|0)+(c[s>>2]|0);c[k>>2]=(c[k>>2]|0)+(c[s>>2]|0);c[q>>2]=(c[q>>2]|0)+1}}while(0);if(c[(c[j>>2]|0)+52>>2]&4|0?(c[p>>2]|0)>>>0>(c[s>>2]|0)>>>0:0){if(!(((c[p>>2]|0)>>>0)%((c[s>>2]|0)>>>0)|0))c[x>>2]=c[s>>2];else c[x>>2]=((c[p>>2]|0)>>>0)%((c[s>>2]|0)>>>0)|0;iq((c[j>>2]|0)+96|0,(c[j>>2]|0)+64|0,c[s>>2]|0);iq((c[j>>2]|0)+64|0,(c[o>>2]|0)+(c[s>>2]|0)|0,c[x>>2]|0);c[w>>2]=ub[c[t>>2]&63]((c[j>>2]|0)+496|0,c[k>>2]|0,c[o>>2]|0)|0;c[v>>2]=(c[w>>2]|0)>>>0>(c[v>>2]|0)>>>0?c[w>>2]|0:c[v>>2]|0;hq(c[k>>2]|0,c[k>>2]|0,(c[j>>2]|0)+64|0,c[x>>2]|0);iq((c[k>>2]|0)+(c[s>>2]|0)|0,c[k>>2]|0,c[x>>2]|0);c[r>>2]=c[x>>2];while(1){if((c[r>>2]|0)>>>0>=(c[s>>2]|0)>>>0)break;a[(c[j>>2]|0)+64+(c[r>>2]|0)>>0]=a[(c[k>>2]|0)+(c[r>>2]|0)>>0]|0;c[r>>2]=(c[r>>2]|0)+1}c[w>>2]=ub[c[t>>2]&63]((c[j>>2]|0)+496|0,c[k>>2]|0,(c[j>>2]|0)+64|0)|0;c[v>>2]=(c[w>>2]|0)>>>0>(c[v>>2]|0)>>>0?c[w>>2]|0:c[v>>2]|0;hq(c[k>>2]|0,c[k>>2]|0,(c[j>>2]|0)+96|0,c[s>>2]|0)}if((c[v>>2]|0)>>>0>0){bf((c[v>>2]|0)+16|0);cf()}c[i>>2]=0;y=c[i>>2]|0;l=h;return y|0}function kq(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;i=l;l=l+64|0;if((l|0)>=(m|0))$(64);j=i+56|0;k=i+52|0;n=i+48|0;o=i+44|0;p=i+40|0;q=i+36|0;r=i+32|0;s=i+28|0;t=i+24|0;u=i+60|0;v=i+20|0;w=i+16|0;x=i+12|0;y=i+8|0;z=i+4|0;c[j>>2]=b;c[k>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;c[q>>2]=c[j>>2];c[r>>2]=c[n>>2];c[s>>2]=c[k>>2];c[t>>2]=c[o>>2];c[i>>2]=3;if(!((c[t>>2]|c[s>>2]|c[q>>2]|c[r>>2])&3)){c[v>>2]=c[q>>2];c[y>>2]=c[s>>2];c[w>>2]=c[r>>2];c[x>>2]=c[t>>2];while(1){if((c[p>>2]|0)>>>0<4)break;o=c[x>>2]|0;c[x>>2]=o+4;c[z>>2]=c[o>>2];o=c[c[w>>2]>>2]|0;k=c[y>>2]|0;c[y>>2]=k+4;n=o^c[k>>2];k=c[v>>2]|0;c[v>>2]=k+4;c[k>>2]=n;n=c[z>>2]|0;k=c[w>>2]|0;c[w>>2]=k+4;c[k>>2]=n;c[p>>2]=(c[p>>2]|0)-4}c[q>>2]=c[v>>2];c[s>>2]=c[y>>2];c[r>>2]=c[w>>2];c[t>>2]=c[x>>2]}while(1){if(!(c[p>>2]|0))break;x=c[t>>2]|0;c[t>>2]=x+1;a[u>>0]=a[x>>0]|0;x=d[c[r>>2]>>0]|0;w=c[s>>2]|0;c[s>>2]=w+1;y=(x^(d[w>>0]|0))&255;w=c[q>>2]|0;c[q>>2]=w+1;a[w>>0]=y;y=a[u>>0]|0;w=c[r>>2]|0;c[r>>2]=w+1;a[w>>0]=y;c[p>>2]=(c[p>>2]|0)+-1}l=i;return}function lq(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f+20|0;h=f+16|0;i=f+12|0;j=f+8|0;k=f+4|0;n=f;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[k>>2]=15-(c[j>>2]|0);c[n>>2]=(c[k>>2]|0)-1;if(!(c[i>>2]|0)){c[g>>2]=45;o=c[g>>2]|0;l=f;return o|0}if((c[k>>2]|0)>>>0<2|(c[k>>2]|0)>>>0>8){c[g>>2]=139;o=c[g>>2]|0;l=f;return o|0}else{Uw((c[h>>2]|0)+128|0,0,368)|0;c[(c[h>>2]|0)+56>>2]=0;e=(c[h>>2]|0)+64|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;e=(c[h>>2]|0)+80|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;e=(c[h>>2]|0)+96|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[(c[h>>2]|0)+112>>2]=0;a[(c[h>>2]|0)+80>>0]=c[n>>2];_w((c[h>>2]|0)+80+1|0,c[i>>2]|0,c[j>>2]|0)|0;Uw((c[h>>2]|0)+80+(1+(c[j>>2]|0))|0,0,c[k>>2]|0)|0;a[(c[h>>2]|0)+64>>0]=c[n>>2];_w((c[h>>2]|0)+64+1|0,c[i>>2]|0,c[j>>2]|0)|0;Uw((c[h>>2]|0)+64+(1+(c[j>>2]|0))|0,0,c[k>>2]|0)|0;k=(c[h>>2]|0)+128+56|0;a[k>>0]=a[k>>0]&-2|1;c[g>>2]=0;o=c[g>>2]|0;l=f;return o|0}return 0}function mq(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;h=l;l=l+96|0;if((l|0)>=(m|0))$(96);i=h+64|0;j=h+60|0;k=h+56|0;n=h+52|0;o=h+48|0;p=h+40|0;q=h+72|0;r=h+36|0;s=h+32|0;t=h+28|0;u=h+24|0;v=h+20|0;w=h+16|0;x=h+68|0;y=h;z=h+12|0;A=h+8|0;c[j>>2]=b;c[k>>2]=e;c[n>>2]=f;c[o>>2]=g;c[h+44>>2]=16;c[p>>2]=c[(c[(c[j>>2]|0)+12>>2]|0)+36>>2];c[r>>2]=0;c[s>>2]=c[(c[j>>2]|0)+128+36>>2];if((c[n>>2]|0)==0?!((c[s>>2]|0)!=0&(c[o>>2]|0)!=0):0){c[i>>2]=0;B=c[i>>2]|0;l=h;return B|0}a:do{b:do if((c[s>>2]|0)>>>0>0?1:((c[n>>2]|0)+(c[s>>2]|0)|0)>>>0<16)while(1){if(!(c[n>>2]|0?(c[s>>2]|0)>>>0<16:0))break b;g=c[k>>2]|0;c[k>>2]=g+1;f=a[g>>0]|0;g=c[s>>2]|0;c[s>>2]=g+1;a[(c[j>>2]|0)+128+20+g>>0]=f;c[n>>2]=(c[n>>2]|0)+-1}while(0);c:do if(!(c[n>>2]|0)){if(!(c[o>>2]|0))break a;while(1){if((c[s>>2]|0)>>>0>=16)break c;f=c[s>>2]|0;c[s>>2]=f+1;a[(c[j>>2]|0)+128+20+f>>0]=0}}while(0);if((c[s>>2]|0)>>>0>0){nq((c[j>>2]|0)+64|0,(c[j>>2]|0)+64|0,(c[j>>2]|0)+128+20|0,16);c[u>>2]=ub[c[p>>2]&63]((c[j>>2]|0)+496|0,(c[j>>2]|0)+64|0,(c[j>>2]|0)+64|0)|0;c[r>>2]=(c[r>>2]|0)>>>0>(c[u>>2]|0)>>>0?c[r>>2]|0:c[u>>2]|0;c[s>>2]=0}d:do if(c[(c[j>>2]|0)+20+8>>2]|0){c[t>>2]=((c[n>>2]|0)>>>0)/16|0;Cb[c[(c[j>>2]|0)+20+8>>2]&1]((c[j>>2]|0)+496|0,(c[j>>2]|0)+64|0,q,c[k>>2]|0,c[t>>2]|0,1);c[k>>2]=(c[k>>2]|0)+(c[t>>2]<<4);c[n>>2]=(c[n>>2]|0)-(c[t>>2]<<4);c[v>>2]=q;c[w>>2]=16;a[x>>0]=0;f=y;c[f>>2]=d[x>>0];c[f+4>>2]=0;while(1){if(!(c[v>>2]&7|0?(c[w>>2]|0)!=0:0))break;a[c[v>>2]>>0]=a[x>>0]|0;c[v>>2]=(c[v>>2]|0)+1;c[w>>2]=(c[w>>2]|0)+-1}if((c[w>>2]|0)>>>0>=8){f=y;g=gx(c[f>>2]|0,c[f+4>>2]|0,16843009,16843009)|0;f=y;c[f>>2]=g;c[f+4>>2]=D;do{c[z>>2]=c[v>>2];f=y;g=c[f+4>>2]|0;e=c[z>>2]|0;c[e>>2]=c[f>>2];c[e+4>>2]=g;c[w>>2]=(c[w>>2]|0)-8;c[v>>2]=(c[v>>2]|0)+8}while((c[w>>2]|0)>>>0>=8)}while(1){if(!(c[w>>2]|0))break d;a[c[v>>2]>>0]=a[x>>0]|0;c[v>>2]=(c[v>>2]|0)+1;c[w>>2]=(c[w>>2]|0)+-1}}else while(1){if((c[n>>2]|0)>>>0<16)break d;nq((c[j>>2]|0)+64|0,(c[j>>2]|0)+64|0,c[k>>2]|0,16);c[A>>2]=ub[c[p>>2]&63]((c[j>>2]|0)+496|0,(c[j>>2]|0)+64|0,(c[j>>2]|0)+64|0)|0;c[r>>2]=(c[r>>2]|0)>>>0>(c[A>>2]|0)>>>0?c[r>>2]|0:c[A>>2]|0;c[n>>2]=(c[n>>2]|0)-16;c[k>>2]=(c[k>>2]|0)+16}while(0)}while((c[n>>2]|0)>>>0>0);c[(c[j>>2]|0)+128+36>>2]=c[s>>2];if(c[r>>2]|0)c[r>>2]=(c[r>>2]|0)+16;c[i>>2]=c[r>>2];B=c[i>>2]|0;l=h;return B|0}function nq(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;h=l;l=l+48|0;if((l|0)>=(m|0))$(48);i=h+40|0;j=h+36|0;k=h+32|0;n=h+28|0;o=h+24|0;p=h+20|0;q=h+16|0;r=h+12|0;s=h+8|0;t=h+4|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[n>>2]=g;c[o>>2]=c[i>>2];c[p>>2]=c[j>>2];c[q>>2]=c[k>>2];c[h>>2]=3;if(!((c[o>>2]|c[p>>2]|c[q>>2])&3)){c[r>>2]=c[o>>2];c[s>>2]=c[p>>2];c[t>>2]=c[q>>2];while(1){if((c[n>>2]|0)>>>0<4)break;k=c[s>>2]|0;c[s>>2]=k+4;j=c[k>>2]|0;k=c[t>>2]|0;c[t>>2]=k+4;i=j^c[k>>2];k=c[r>>2]|0;c[r>>2]=k+4;c[k>>2]=i;c[n>>2]=(c[n>>2]|0)-4}c[o>>2]=c[r>>2];c[p>>2]=c[s>>2];c[q>>2]=c[t>>2]}while(1){if(!(c[n>>2]|0))break;t=c[p>>2]|0;c[p>>2]=t+1;s=d[t>>0]|0;t=c[q>>2]|0;c[q>>2]=t+1;r=(s^(d[t>>0]|0))&255;t=c[o>>2]|0;c[o>>2]=t+1;a[t>>0]=r;c[n>>2]=(c[n>>2]|0)+-1}l=h;return}function oq(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;i=l;l=l+32|0;if((l|0)>=(m|0))$(32);j=i+24|0;k=i+20|0;n=i+16|0;o=i+12|0;p=i+8|0;q=i+4|0;r=i;c[k>>2]=b;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;if((c[o>>2]|0)>>>0<(c[q>>2]|0)>>>0){c[j>>2]=200;s=c[j>>2]|0;l=i;return s|0}if(((a[(c[k>>2]|0)+128+56>>0]&1|0?((d[(c[k>>2]|0)+56>>0]|0)>>>2&1|0)==0:0)?(d[(c[k>>2]|0)+128+56>>0]|0)>>>1&1|0:0)?(h=(c[k>>2]|0)+128+8|0,g=c[h+4>>2]|0,!(g>>>0>0|(g|0)==0&(c[h>>2]|0)>>>0>0)):0){h=(c[k>>2]|0)+128|0;g=c[h+4>>2]|0;if(0>g>>>0|(0==(g|0)?(c[q>>2]|0)>>>0>(c[h>>2]|0)>>>0:0)){c[j>>2]=139;s=c[j>>2]|0;l=i;return s|0}h=(c[k>>2]|0)+128|0;g=h;f=Tw(c[g>>2]|0,c[g+4>>2]|0,c[q>>2]|0,0)|0;g=h;c[g>>2]=f;c[g+4>>2]=D;c[r>>2]=mq(c[k>>2]|0,c[p>>2]|0,c[q>>2]|0,0)|0;if(c[r>>2]|0){bf((c[r>>2]|0)+20|0);cf()}c[j>>2]=yq(c[k>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0)|0;s=c[j>>2]|0;l=i;return s|0}c[j>>2]=156;s=c[j>>2]|0;l=i;return s|0}function pq(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;i=l;l=l+32|0;if((l|0)>=(m|0))$(32);j=i+28|0;k=i+24|0;n=i+20|0;o=i+16|0;p=i+12|0;q=i+8|0;r=i+4|0;s=i;c[k>>2]=b;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;if((c[o>>2]|0)>>>0<(c[q>>2]|0)>>>0){c[j>>2]=200;t=c[j>>2]|0;l=i;return t|0}if(((a[(c[k>>2]|0)+128+56>>0]&1|0?((d[(c[k>>2]|0)+56>>0]|0)>>>2&1|0)==0:0)?(d[(c[k>>2]|0)+128+56>>0]|0)>>>1&1|0:0)?(h=(c[k>>2]|0)+128+8|0,g=c[h+4>>2]|0,!(g>>>0>0|(g|0)==0&(c[h>>2]|0)>>>0>0)):0){h=(c[k>>2]|0)+128|0;g=c[h+4>>2]|0;if(0>g>>>0|(0==(g|0)?(c[q>>2]|0)>>>0>(c[h>>2]|0)>>>0:0)){c[j>>2]=139;t=c[j>>2]|0;l=i;return t|0}c[r>>2]=yq(c[k>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0)|0;if(c[r>>2]|0){c[j>>2]=c[r>>2];t=c[j>>2]|0;l=i;return t|0}p=(c[k>>2]|0)+128|0;o=p;h=Tw(c[o>>2]|0,c[o+4>>2]|0,c[q>>2]|0,0)|0;o=p;c[o>>2]=h;c[o+4>>2]=D;c[s>>2]=mq(c[k>>2]|0,c[n>>2]|0,c[q>>2]|0,0)|0;if(c[s>>2]|0){bf((c[s>>2]|0)+20|0);cf()}c[j>>2]=c[r>>2];t=c[j>>2]|0;l=i;return t|0}c[j>>2]=156;t=c[j>>2]|0;l=i;return t|0}function qq(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;g=l;l=l+64|0;if((l|0)>=(m|0))$(64);h=g+48|0;i=g+44|0;j=g+40|0;k=g+36|0;n=g+32|0;o=g+28|0;p=g+24|0;q=g+20|0;r=g+16|0;s=g+12|0;t=g+8|0;u=g+4|0;v=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[n>>2]=e;c[o>>2]=f;c[q>>2]=c[(c[(c[i>>2]|0)+12>>2]|0)+36>>2];c[r>>2]=c[(c[(c[i>>2]|0)+12>>2]|0)+20>>2];c[s>>2]=(c[r>>2]|0)+(c[r>>2]|0);if((c[k>>2]|0)>>>0<(c[o>>2]|0)>>>0){c[h>>2]=200;w=c[h>>2]|0;l=g;return w|0}if((c[o>>2]|0)>>>0<=(c[(c[i>>2]|0)+112>>2]|0)>>>0){c[p>>2]=(c[i>>2]|0)+64+(c[r>>2]|0)+(0-(c[(c[i>>2]|0)+112>>2]|0));rq(c[j>>2]|0,c[p>>2]|0,c[n>>2]|0,c[o>>2]|0);k=(c[i>>2]|0)+112|0;c[k>>2]=(c[k>>2]|0)-(c[o>>2]|0);c[h>>2]=0;w=c[h>>2]|0;l=g;return w|0}c[t>>2]=0;if(c[(c[i>>2]|0)+112>>2]|0){c[o>>2]=(c[o>>2]|0)-(c[(c[i>>2]|0)+112>>2]|0);c[p>>2]=(c[i>>2]|0)+64+(c[r>>2]|0)+(0-(c[(c[i>>2]|0)+112>>2]|0));rq(c[j>>2]|0,c[p>>2]|0,c[n>>2]|0,c[(c[i>>2]|0)+112>>2]|0);c[j>>2]=(c[j>>2]|0)+(c[(c[i>>2]|0)+112>>2]|0);c[n>>2]=(c[n>>2]|0)+(c[(c[i>>2]|0)+112>>2]|0);c[(c[i>>2]|0)+112>>2]=0}if((c[o>>2]|0)>>>0>=(c[s>>2]|0)>>>0?c[(c[i>>2]|0)+20>>2]|0:0){c[v>>2]=((c[o>>2]|0)>>>0)/((c[r>>2]|0)>>>0)|0;vb[c[(c[i>>2]|0)+20>>2]&15]((c[i>>2]|0)+496|0,(c[i>>2]|0)+64|0,c[j>>2]|0,c[n>>2]|0,c[v>>2]|0);p=S(c[v>>2]|0,c[r>>2]|0)|0;c[j>>2]=(c[j>>2]|0)+p;p=S(c[v>>2]|0,c[r>>2]|0)|0;c[n>>2]=(c[n>>2]|0)+p;p=S(c[v>>2]|0,c[r>>2]|0)|0;c[o>>2]=(c[o>>2]|0)-p}else x=10;a:do if((x|0)==10)while(1){x=0;if((c[o>>2]|0)>>>0<(c[s>>2]|0)>>>0)break a;c[u>>2]=ub[c[q>>2]&63]((c[i>>2]|0)+496|0,(c[i>>2]|0)+64|0,(c[i>>2]|0)+64|0)|0;c[t>>2]=(c[u>>2]|0)>>>0>(c[t>>2]|0)>>>0?c[u>>2]|0:c[t>>2]|0;rq(c[j>>2]|0,(c[i>>2]|0)+64|0,c[n>>2]|0,c[r>>2]|0);c[j>>2]=(c[j>>2]|0)+(c[r>>2]|0);c[n>>2]=(c[n>>2]|0)+(c[r>>2]|0);c[o>>2]=(c[o>>2]|0)-(c[r>>2]|0);x=10}while(0);if((c[o>>2]|0)>>>0>=(c[r>>2]|0)>>>0){sq((c[i>>2]|0)+96|0,(c[i>>2]|0)+64|0,c[r>>2]|0);c[u>>2]=ub[c[q>>2]&63]((c[i>>2]|0)+496|0,(c[i>>2]|0)+64|0,(c[i>>2]|0)+64|0)|0;c[t>>2]=(c[u>>2]|0)>>>0>(c[t>>2]|0)>>>0?c[u>>2]|0:c[t>>2]|0;rq(c[j>>2]|0,(c[i>>2]|0)+64|0,c[n>>2]|0,c[r>>2]|0);c[j>>2]=(c[j>>2]|0)+(c[r>>2]|0);c[n>>2]=(c[n>>2]|0)+(c[r>>2]|0);c[o>>2]=(c[o>>2]|0)-(c[r>>2]|0)}if(c[o>>2]|0){sq((c[i>>2]|0)+96|0,(c[i>>2]|0)+64|0,c[r>>2]|0);c[u>>2]=ub[c[q>>2]&63]((c[i>>2]|0)+496|0,(c[i>>2]|0)+64|0,(c[i>>2]|0)+64|0)|0;c[t>>2]=(c[u>>2]|0)>>>0>(c[t>>2]|0)>>>0?c[u>>2]|0:c[t>>2]|0;c[(c[i>>2]|0)+112>>2]=c[r>>2];r=(c[i>>2]|0)+112|0;c[r>>2]=(c[r>>2]|0)-(c[o>>2]|0);rq(c[j>>2]|0,(c[i>>2]|0)+64|0,c[n>>2]|0,c[o>>2]|0);c[j>>2]=(c[j>>2]|0)+(c[o>>2]|0);c[n>>2]=(c[n>>2]|0)+(c[o>>2]|0);c[o>>2]=0}if((c[t>>2]|0)>>>0>0){bf((c[t>>2]|0)+16|0);cf()}c[h>>2]=0;w=c[h>>2]|0;l=g;return w|0}function rq(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;h=l;l=l+48|0;if((l|0)>=(m|0))$(48);i=h+40|0;j=h+36|0;k=h+32|0;n=h+28|0;o=h+24|0;p=h+20|0;q=h+16|0;r=h+12|0;s=h+8|0;t=h+4|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[n>>2]=g;c[o>>2]=c[i>>2];c[p>>2]=c[j>>2];c[q>>2]=c[k>>2];c[h>>2]=3;if(!((c[q>>2]|c[o>>2]|c[p>>2])&3)){c[r>>2]=c[o>>2];c[s>>2]=c[p>>2];c[t>>2]=c[q>>2];while(1){if((c[n>>2]|0)>>>0<4)break;k=c[t>>2]|0;c[t>>2]=k+4;j=c[k>>2]|0;k=c[s>>2]|0;c[s>>2]=k+4;i=c[k>>2]^j;c[k>>2]=i;k=c[r>>2]|0;c[r>>2]=k+4;c[k>>2]=i;c[n>>2]=(c[n>>2]|0)-4}c[o>>2]=c[r>>2];c[p>>2]=c[s>>2];c[q>>2]=c[t>>2]}while(1){if(!(c[n>>2]|0))break;t=c[q>>2]|0;c[q>>2]=t+1;s=d[t>>0]|0;t=c[p>>2]|0;c[p>>2]=t+1;r=((d[t>>0]|0)^s)&255;a[t>>0]=r;t=c[o>>2]|0;c[o>>2]=t+1;a[t>>0]=r;c[n>>2]=(c[n>>2]|0)+-1}l=h;return}function sq(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f+28|0;h=f+24|0;i=f+20|0;j=f+16|0;k=f+12|0;n=f+8|0;o=f+4|0;c[g>>2]=b;c[h>>2]=d;c[i>>2]=e;c[j>>2]=c[g>>2];c[k>>2]=c[h>>2];c[f>>2]=3;if(!((c[j>>2]|c[k>>2])&3)){c[n>>2]=c[j>>2];c[o>>2]=c[k>>2];while(1){if((c[i>>2]|0)>>>0<4)break;h=c[o>>2]|0;c[o>>2]=h+4;g=c[h>>2]|0;h=c[n>>2]|0;c[n>>2]=h+4;c[h>>2]=g;c[i>>2]=(c[i>>2]|0)-4}c[j>>2]=c[n>>2];c[k>>2]=c[o>>2]}while(1){if(!(c[i>>2]|0))break;o=c[k>>2]|0;c[k>>2]=o+1;n=a[o>>0]|0;o=c[j>>2]|0;c[j>>2]=o+1;a[o>>0]=n;c[i>>2]=(c[i>>2]|0)+-1}l=f;return}function tq(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;g=l;l=l+64|0;if((l|0)>=(m|0))$(64);h=g+48|0;i=g+44|0;j=g+40|0;k=g+36|0;n=g+32|0;o=g+28|0;p=g+24|0;q=g+20|0;r=g+16|0;s=g+12|0;t=g+8|0;u=g+4|0;v=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[n>>2]=e;c[o>>2]=f;c[q>>2]=c[(c[(c[i>>2]|0)+12>>2]|0)+36>>2];c[r>>2]=c[(c[(c[i>>2]|0)+12>>2]|0)+20>>2];c[s>>2]=(c[r>>2]|0)+(c[r>>2]|0);if((c[k>>2]|0)>>>0<(c[o>>2]|0)>>>0){c[h>>2]=200;w=c[h>>2]|0;l=g;return w|0}if((c[o>>2]|0)>>>0<=(c[(c[i>>2]|0)+112>>2]|0)>>>0){c[p>>2]=(c[i>>2]|0)+64+(c[r>>2]|0)+(0-(c[(c[i>>2]|0)+112>>2]|0));uq(c[j>>2]|0,c[p>>2]|0,c[n>>2]|0,c[o>>2]|0);k=(c[i>>2]|0)+112|0;c[k>>2]=(c[k>>2]|0)-(c[o>>2]|0);c[h>>2]=0;w=c[h>>2]|0;l=g;return w|0}c[t>>2]=0;if(c[(c[i>>2]|0)+112>>2]|0){c[o>>2]=(c[o>>2]|0)-(c[(c[i>>2]|0)+112>>2]|0);c[p>>2]=(c[i>>2]|0)+64+(c[r>>2]|0)+(0-(c[(c[i>>2]|0)+112>>2]|0));uq(c[j>>2]|0,c[p>>2]|0,c[n>>2]|0,c[(c[i>>2]|0)+112>>2]|0);c[j>>2]=(c[j>>2]|0)+(c[(c[i>>2]|0)+112>>2]|0);c[n>>2]=(c[n>>2]|0)+(c[(c[i>>2]|0)+112>>2]|0);c[(c[i>>2]|0)+112>>2]=0}if((c[o>>2]|0)>>>0>=(c[s>>2]|0)>>>0?c[(c[i>>2]|0)+20+4>>2]|0:0){c[v>>2]=((c[o>>2]|0)>>>0)/((c[r>>2]|0)>>>0)|0;vb[c[(c[i>>2]|0)+20+4>>2]&15]((c[i>>2]|0)+496|0,(c[i>>2]|0)+64|0,c[j>>2]|0,c[n>>2]|0,c[v>>2]|0);p=S(c[v>>2]|0,c[r>>2]|0)|0;c[j>>2]=(c[j>>2]|0)+p;p=S(c[v>>2]|0,c[r>>2]|0)|0;c[n>>2]=(c[n>>2]|0)+p;p=S(c[v>>2]|0,c[r>>2]|0)|0;c[o>>2]=(c[o>>2]|0)-p}else x=10;a:do if((x|0)==10)while(1){x=0;if((c[o>>2]|0)>>>0<(c[s>>2]|0)>>>0)break a;c[u>>2]=ub[c[q>>2]&63]((c[i>>2]|0)+496|0,(c[i>>2]|0)+64|0,(c[i>>2]|0)+64|0)|0;c[t>>2]=(c[u>>2]|0)>>>0>(c[t>>2]|0)>>>0?c[u>>2]|0:c[t>>2]|0;uq(c[j>>2]|0,(c[i>>2]|0)+64|0,c[n>>2]|0,c[r>>2]|0);c[j>>2]=(c[j>>2]|0)+(c[r>>2]|0);c[n>>2]=(c[n>>2]|0)+(c[r>>2]|0);c[o>>2]=(c[o>>2]|0)-(c[r>>2]|0);x=10}while(0);if((c[o>>2]|0)>>>0>=(c[r>>2]|0)>>>0){sq((c[i>>2]|0)+96|0,(c[i>>2]|0)+64|0,c[r>>2]|0);c[u>>2]=ub[c[q>>2]&63]((c[i>>2]|0)+496|0,(c[i>>2]|0)+64|0,(c[i>>2]|0)+64|0)|0;c[t>>2]=(c[u>>2]|0)>>>0>(c[t>>2]|0)>>>0?c[u>>2]|0:c[t>>2]|0;uq(c[j>>2]|0,(c[i>>2]|0)+64|0,c[n>>2]|0,c[r>>2]|0);c[j>>2]=(c[j>>2]|0)+(c[r>>2]|0);c[n>>2]=(c[n>>2]|0)+(c[r>>2]|0);c[o>>2]=(c[o>>2]|0)-(c[r>>2]|0)}if(c[o>>2]|0){sq((c[i>>2]|0)+96|0,(c[i>>2]|0)+64|0,c[r>>2]|0);c[u>>2]=ub[c[q>>2]&63]((c[i>>2]|0)+496|0,(c[i>>2]|0)+64|0,(c[i>>2]|0)+64|0)|0;c[t>>2]=(c[u>>2]|0)>>>0>(c[t>>2]|0)>>>0?c[u>>2]|0:c[t>>2]|0;c[(c[i>>2]|0)+112>>2]=c[r>>2];r=(c[i>>2]|0)+112|0;c[r>>2]=(c[r>>2]|0)-(c[o>>2]|0);uq(c[j>>2]|0,(c[i>>2]|0)+64|0,c[n>>2]|0,c[o>>2]|0);c[j>>2]=(c[j>>2]|0)+(c[o>>2]|0);c[n>>2]=(c[n>>2]|0)+(c[o>>2]|0);c[o>>2]=0}if((c[t>>2]|0)>>>0>0){bf((c[t>>2]|0)+16|0);cf()}c[h>>2]=0;w=c[h>>2]|0;l=g;return w|0}function uq(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f+12|0;h=f+8|0;i=f+4|0;j=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;vq(c[g>>2]|0,c[i>>2]|0,c[h>>2]|0,c[i>>2]|0,c[j>>2]|0);l=f;return}function vq(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;i=l;l=l+64|0;if((l|0)>=(m|0))$(64);j=i+56|0;k=i+52|0;n=i+48|0;o=i+44|0;p=i+40|0;q=i+36|0;r=i+32|0;s=i+28|0;t=i+24|0;u=i+60|0;v=i+20|0;w=i+16|0;x=i+12|0;y=i+8|0;z=i+4|0;c[j>>2]=b;c[k>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;c[q>>2]=c[j>>2];c[r>>2]=c[n>>2];c[s>>2]=c[k>>2];c[t>>2]=c[o>>2];c[i>>2]=3;if(!((c[t>>2]|c[s>>2]|c[q>>2]|c[r>>2])&3)){c[v>>2]=c[q>>2];c[y>>2]=c[s>>2];c[w>>2]=c[r>>2];c[x>>2]=c[t>>2];while(1){if((c[p>>2]|0)>>>0<4)break;o=c[x>>2]|0;c[x>>2]=o+4;c[z>>2]=c[o>>2];o=c[c[w>>2]>>2]|0;k=c[y>>2]|0;c[y>>2]=k+4;n=o^c[k>>2];k=c[v>>2]|0;c[v>>2]=k+4;c[k>>2]=n;n=c[z>>2]|0;k=c[w>>2]|0;c[w>>2]=k+4;c[k>>2]=n;c[p>>2]=(c[p>>2]|0)-4}c[q>>2]=c[v>>2];c[s>>2]=c[y>>2];c[r>>2]=c[w>>2];c[t>>2]=c[x>>2]}while(1){if(!(c[p>>2]|0))break;x=c[t>>2]|0;c[t>>2]=x+1;a[u>>0]=a[x>>0]|0;x=d[c[r>>2]>>0]|0;w=c[s>>2]|0;c[s>>2]=w+1;y=(x^(d[w>>0]|0))&255;w=c[q>>2]|0;c[q>>2]=w+1;a[w>>0]=y;y=a[u>>0]|0;w=c[r>>2]|0;c[r>>2]=w+1;a[w>>0]=y;c[p>>2]=(c[p>>2]|0)+-1}l=i;return}function wq(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;xq(c[d>>2]|0);l=b;return 0}function xq(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;e=l;l=l+80|0;if((l|0)>=(m|0))$(80);f=e+56|0;g=e+52|0;h=e+64|0;i=e+63|0;j=e+62|0;k=e+61|0;n=e+48|0;o=e+44|0;p=e+40|0;q=e+24|0;r=e+16|0;s=e+12|0;t=e+60|0;u=e;v=e+8|0;c[f>>2]=b;c[g>>2]=c[(c[(c[f>>2]|0)+12>>2]|0)+20>>2];if(16<(c[g>>2]|0)>>>0)Re(46822,113,46836);Uw(q|0,0,c[g>>2]|0)|0;c[n>>2]=ub[c[(c[(c[f>>2]|0)+12>>2]|0)+36>>2]&63]((c[f>>2]|0)+496|0,q,q)|0;a[h>>0]=(c[g>>2]|0)==16?135:27;c[p>>2]=0;while(1){if((c[p>>2]|0)>=2)break;a[i>>0]=0;c[o>>2]=(c[g>>2]|0)-1;while(1){if((c[o>>2]|0)<0)break;a[k>>0]=a[q+(c[o>>2]|0)>>0]|0;a[j>>0]=d[i>>0]|0|(d[k>>0]|0)<<1;a[i>>0]=(d[k>>0]|0)>>7;a[q+(c[o>>2]|0)>>0]=d[j>>0]|0;a[(c[f>>2]|0)+128+1+(c[p>>2]<<4)+(c[o>>2]|0)>>0]=a[q+(c[o>>2]|0)>>0]|0;c[o>>2]=(c[o>>2]|0)+-1}b=q+((c[g>>2]|0)-1)|0;a[b>>0]=(d[b>>0]|0)^(d[i>>0]|0|0?d[h>>0]|0:0);a[(c[f>>2]|0)+128+1+(c[p>>2]<<4)+((c[g>>2]|0)-1)>>0]=a[q+((c[g>>2]|0)-1)>>0]|0;c[p>>2]=(c[p>>2]|0)+1}c[r>>2]=q;c[s>>2]=16;a[t>>0]=0;q=u;c[q>>2]=d[t>>0];c[q+4>>2]=0;while(1){if(!(c[r>>2]&7|0?(c[s>>2]|0)!=0:0))break;a[c[r>>2]>>0]=a[t>>0]|0;c[r>>2]=(c[r>>2]|0)+1;c[s>>2]=(c[s>>2]|0)+-1}if((c[s>>2]|0)>>>0>=8){q=u;p=gx(c[q>>2]|0,c[q+4>>2]|0,16843009,16843009)|0;q=u;c[q>>2]=p;c[q+4>>2]=D;do{c[v>>2]=c[r>>2];q=u;p=c[q+4>>2]|0;g=c[v>>2]|0;c[g>>2]=c[q>>2];c[g+4>>2]=p;c[s>>2]=(c[s>>2]|0)-8;c[r>>2]=(c[r>>2]|0)+8}while((c[s>>2]|0)>>>0>=8)}while(1){if(!(c[s>>2]|0))break;a[c[r>>2]>>0]=a[t>>0]|0;c[r>>2]=(c[r>>2]|0)+1;c[s>>2]=(c[s>>2]|0)+-1}if(!(c[n>>2]|0)){l=e;return}bf((c[n>>2]|0)+16|0);cf();l=e;return}function yq(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0;i=l;l=l+96|0;if((l|0)>=(m|0))$(96);j=i+68|0;k=i+64|0;n=i+60|0;o=i+56|0;p=i+52|0;q=i+48|0;r=i+44|0;s=i+40|0;t=i+36|0;u=i+32|0;v=i+28|0;w=i+24|0;x=i+20|0;y=i+80|0;z=i+16|0;A=i+12|0;B=i+72|0;C=i;E=i+8|0;c[k>>2]=b;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;c[t>>2]=c[(c[(c[k>>2]|0)+12>>2]|0)+36>>2];c[u>>2]=c[(c[(c[k>>2]|0)+12>>2]|0)+20>>2];if((c[o>>2]|0)>>>0<(c[q>>2]|0)>>>0){c[j>>2]=200;F=c[j>>2]|0;l=i;return F|0}c[w>>2]=0;if(c[(c[k>>2]|0)+112>>2]|0){if((c[(c[k>>2]|0)+112>>2]|0)>>>0>=(c[u>>2]|0)>>>0)Se(46858,46880,53,46893);c[s>>2]=(c[u>>2]|0)-(c[(c[k>>2]|0)+112>>2]|0);if((c[(c[k>>2]|0)+112>>2]|0)>>>0>(c[q>>2]|0)>>>0)G=c[q>>2]|0;else G=c[(c[k>>2]|0)+112>>2]|0;c[r>>2]=G;zq(c[n>>2]|0,c[p>>2]|0,(c[k>>2]|0)+96+(c[s>>2]|0)|0,c[r>>2]|0);G=(c[k>>2]|0)+112|0;c[G>>2]=(c[G>>2]|0)-(c[r>>2]|0);c[p>>2]=(c[p>>2]|0)+(c[r>>2]|0);c[n>>2]=(c[n>>2]|0)+(c[r>>2]|0);c[q>>2]=(c[q>>2]|0)-(c[r>>2]|0)}c[v>>2]=((c[q>>2]|0)>>>0)/((c[u>>2]|0)>>>0)|0;if(c[v>>2]|0?c[(c[k>>2]|0)+20+16>>2]|0:0){vb[c[(c[k>>2]|0)+20+16>>2]&15]((c[k>>2]|0)+496|0,(c[k>>2]|0)+80|0,c[n>>2]|0,c[p>>2]|0,c[v>>2]|0);G=S(c[v>>2]|0,c[u>>2]|0)|0;c[p>>2]=(c[p>>2]|0)+G;G=S(c[v>>2]|0,c[u>>2]|0)|0;c[n>>2]=(c[n>>2]|0)+G;G=S(c[v>>2]|0,c[u>>2]|0)|0;c[q>>2]=(c[q>>2]|0)-G}a:do if(c[q>>2]|0){do{c[x>>2]=ub[c[t>>2]&63]((c[k>>2]|0)+496|0,y,(c[k>>2]|0)+80|0)|0;c[w>>2]=(c[x>>2]|0)>>>0>(c[w>>2]|0)>>>0?c[x>>2]|0:c[w>>2]|0;c[s>>2]=c[u>>2];while(1){if((c[s>>2]|0)<=0)break;G=(c[k>>2]|0)+80+((c[s>>2]|0)-1)|0;a[G>>0]=(a[G>>0]|0)+1<<24>>24;if(d[(c[k>>2]|0)+80+((c[s>>2]|0)-1)>>0]|0|0)break;c[s>>2]=(c[s>>2]|0)+-1}c[r>>2]=(c[u>>2]|0)>>>0<(c[q>>2]|0)>>>0?c[u>>2]|0:c[q>>2]|0;zq(c[n>>2]|0,c[p>>2]|0,y,c[r>>2]|0);c[q>>2]=(c[q>>2]|0)-(c[r>>2]|0);c[n>>2]=(c[n>>2]|0)+(c[r>>2]|0);c[p>>2]=(c[p>>2]|0)+(c[r>>2]|0)}while((c[q>>2]|0)!=0);c[(c[k>>2]|0)+112>>2]=(c[u>>2]|0)-(c[r>>2]|0);if(c[(c[k>>2]|0)+112>>2]|0)Aq((c[k>>2]|0)+96+(c[r>>2]|0)|0,y+(c[r>>2]|0)|0,c[(c[k>>2]|0)+112>>2]|0);c[z>>2]=y;c[A>>2]=16;a[B>>0]=0;G=C;c[G>>2]=d[B>>0];c[G+4>>2]=0;while(1){if(!(c[z>>2]&7|0?(c[A>>2]|0)!=0:0))break;a[c[z>>2]>>0]=a[B>>0]|0;c[z>>2]=(c[z>>2]|0)+1;c[A>>2]=(c[A>>2]|0)+-1}if((c[A>>2]|0)>>>0>=8){G=C;v=gx(c[G>>2]|0,c[G+4>>2]|0,16843009,16843009)|0;G=C;c[G>>2]=v;c[G+4>>2]=D;do{c[E>>2]=c[z>>2];G=C;v=c[G+4>>2]|0;o=c[E>>2]|0;c[o>>2]=c[G>>2];c[o+4>>2]=v;c[A>>2]=(c[A>>2]|0)-8;c[z>>2]=(c[z>>2]|0)+8}while((c[A>>2]|0)>>>0>=8)}while(1){if(!(c[A>>2]|0))break a;a[c[z>>2]>>0]=a[B>>0]|0;c[z>>2]=(c[z>>2]|0)+1;c[A>>2]=(c[A>>2]|0)+-1}}while(0);if((c[w>>2]|0)>>>0>0){bf((c[w>>2]|0)+16|0);cf()}c[j>>2]=0;F=c[j>>2]|0;l=i;return F|0}function zq(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;h=l;l=l+48|0;if((l|0)>=(m|0))$(48);i=h+40|0;j=h+36|0;k=h+32|0;n=h+28|0;o=h+24|0;p=h+20|0;q=h+16|0;r=h+12|0;s=h+8|0;t=h+4|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[n>>2]=g;c[o>>2]=c[i>>2];c[p>>2]=c[j>>2];c[q>>2]=c[k>>2];c[h>>2]=3;if(!((c[o>>2]|c[p>>2]|c[q>>2])&3)){c[r>>2]=c[o>>2];c[s>>2]=c[p>>2];c[t>>2]=c[q>>2];while(1){if((c[n>>2]|0)>>>0<4)break;k=c[s>>2]|0;c[s>>2]=k+4;j=c[k>>2]|0;k=c[t>>2]|0;c[t>>2]=k+4;i=j^c[k>>2];k=c[r>>2]|0;c[r>>2]=k+4;c[k>>2]=i;c[n>>2]=(c[n>>2]|0)-4}c[o>>2]=c[r>>2];c[p>>2]=c[s>>2];c[q>>2]=c[t>>2]}while(1){if(!(c[n>>2]|0))break;t=c[p>>2]|0;c[p>>2]=t+1;s=d[t>>0]|0;t=c[q>>2]|0;c[q>>2]=t+1;r=(s^(d[t>>0]|0))&255;t=c[o>>2]|0;c[o>>2]=t+1;a[t>>0]=r;c[n>>2]=(c[n>>2]|0)+-1}l=h;return}function Aq(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f+28|0;h=f+24|0;i=f+20|0;j=f+16|0;k=f+12|0;n=f+8|0;o=f+4|0;c[g>>2]=b;c[h>>2]=d;c[i>>2]=e;c[j>>2]=c[g>>2];c[k>>2]=c[h>>2];c[f>>2]=3;if(!((c[j>>2]|c[k>>2])&3)){c[n>>2]=c[j>>2];c[o>>2]=c[k>>2];while(1){if((c[i>>2]|0)>>>0<4)break;h=c[o>>2]|0;c[o>>2]=h+4;g=c[h>>2]|0;h=c[n>>2]|0;c[n>>2]=h+4;c[h>>2]=g;c[i>>2]=(c[i>>2]|0)-4}c[j>>2]=c[n>>2];c[k>>2]=c[o>>2]}while(1){if(!(c[i>>2]|0))break;o=c[k>>2]|0;c[k>>2]=o+1;n=a[o>>0]|0;o=c[j>>2]|0;c[j>>2]=o+1;a[o>>0]=n;c[i>>2]=(c[i>>2]|0)+-1}l=f;return}function Bq(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;i=l;l=l+32|0;if((l|0)>=(m|0))$(32);j=i+24|0;k=i+20|0;n=i+16|0;o=i+12|0;p=i+8|0;q=i+4|0;r=i;c[k>>2]=b;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;if((c[(c[(c[k>>2]|0)+12>>2]|0)+20>>2]|0)!=16){c[j>>2]=12;s=c[j>>2]|0;l=i;return s|0}if((c[o>>2]|0)>>>0<(c[q>>2]|0)>>>0){c[j>>2]=200;s=c[j>>2]|0;l=i;return s|0}if((d[(c[k>>2]|0)+128+68>>0]|0)>>>2&1|0){c[j>>2]=139;s=c[j>>2]|0;l=i;return s|0}if(((d[(c[k>>2]|0)+56>>0]|0)>>>2&1|0)==0?(a[(c[k>>2]|0)+128+68>>0]&1|0)==0:0){if(!((d[(c[k>>2]|0)+56>>0]|0)>>>1&1))Cq(c[k>>2]|0,72251,16)|0;if((d[(c[k>>2]|0)+128+68>>0]|0)>>>3&1|0){c[j>>2]=156;s=c[j>>2]|0;l=i;return s|0}if(!((d[(c[k>>2]|0)+128+68>>0]|0)>>>1&1)){Dq(c[k>>2]|0,(c[k>>2]|0)+128|0,0,0,1);h=(c[k>>2]|0)+128+68|0;a[h>>0]=a[h>>0]&-3|2}Eq((c[k>>2]|0)+128+44|0,c[q>>2]|0);h=(Fq((c[k>>2]|0)+128+44|0)|0)!=0;g=c[k>>2]|0;if(!h){h=g+128+68|0;a[h>>0]=a[h>>0]&-5|4;c[j>>2]=139;s=c[j>>2]|0;l=i;return s|0}c[r>>2]=yq(g,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0)|0;if(c[r>>2]|0){c[j>>2]=c[r>>2];s=c[j>>2]|0;l=i;return s|0}else{Dq(c[k>>2]|0,(c[k>>2]|0)+128|0,c[n>>2]|0,c[q>>2]|0,0);c[j>>2]=0;s=c[j>>2]|0;l=i;return s|0}}c[j>>2]=156;s=c[j>>2]|0;l=i;return s|0}function Cq(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f+8|0;h=f+4|0;i=f;c[g>>2]=b;c[h>>2]=d;c[i>>2]=e;e=(c[g>>2]|0)+56|0;a[e>>0]=a[e>>0]&-3;e=(c[g>>2]|0)+56|0;a[e>>0]=a[e>>0]&-5;e=(c[g>>2]|0)+128+68|0;a[e>>0]=a[e>>0]&-9;if(!(Wg()|0)){j=c[g>>2]|0;k=c[h>>2]|0;n=c[i>>2]|0;o=Hq(j,k,n)|0;l=f;return o|0}e=(c[g>>2]|0)+128+68|0;a[e>>0]=a[e>>0]&-9|8;j=c[g>>2]|0;k=c[h>>2]|0;n=c[i>>2]|0;o=Hq(j,k,n)|0;l=f;return o|0}function Dq(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;h=l;l=l+48|0;if((l|0)>=(m|0))$(48);i=h+40|0;j=h+36|0;k=h+32|0;n=h+28|0;o=h+24|0;p=h+20|0;q=h+16|0;r=h+12|0;s=h+8|0;t=h+4|0;u=h;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=16;c[q>>2]=c[(c[i>>2]|0)+128+32>>2];c[r>>2]=c[(c[i>>2]|0)+128+96>>2];c[u>>2]=0;if((c[n>>2]|0)==0?!((c[q>>2]|0)!=0&(c[o>>2]|0)!=0):0){l=h;return}a:do{if((c[q>>2]|0)>>>0>0?1:((c[n>>2]|0)+(c[q>>2]|0)|0)>>>0<(c[p>>2]|0)>>>0){c[t>>2]=(c[p>>2]|0)-(c[q>>2]|0);c[t>>2]=(c[t>>2]|0)>>>0<(c[n>>2]|0)>>>0?c[t>>2]|0:c[n>>2]|0;Gq((c[i>>2]|0)+128+16+(c[q>>2]|0)|0,c[k>>2]|0,c[t>>2]|0);c[q>>2]=(c[q>>2]|0)+(c[t>>2]|0);c[k>>2]=(c[k>>2]|0)+(c[t>>2]|0);c[n>>2]=(c[n>>2]|0)-(c[t>>2]|0)}b:do if(!(c[n>>2]|0)){if(!(c[o>>2]|0))break a;while(1){if((c[q>>2]|0)>>>0>=(c[p>>2]|0)>>>0)break b;g=c[q>>2]|0;c[q>>2]=g+1;a[(c[i>>2]|0)+128+16+g>>0]=0}}while(0);if((c[q>>2]|0)>>>0>0){if((c[q>>2]|0)!=(c[p>>2]|0)){v=11;break}c[u>>2]=Bb[c[r>>2]&7](c[i>>2]|0,c[j>>2]|0,(c[i>>2]|0)+128+16|0,1)|0;c[q>>2]=0}c[s>>2]=((c[n>>2]|0)>>>0)/((c[p>>2]|0)>>>0)|0;if(c[s>>2]|0){c[u>>2]=Bb[c[r>>2]&7](c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[s>>2]|0)|0;g=S(c[p>>2]|0,c[s>>2]|0)|0;c[k>>2]=(c[k>>2]|0)+g;g=S(c[p>>2]|0,c[s>>2]|0)|0;c[n>>2]=(c[n>>2]|0)-g}}while((c[n>>2]|0)>>>0>0);if((v|0)==11)Se(46918,46938,499,46951);c[(c[i>>2]|0)+128+32>>2]=c[q>>2];if(!(c[u>>2]|0)){l=h;return}bf(c[u>>2]|0);cf();l=h;return}function Eq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=c[e>>2]|0;c[b>>2]=(c[b>>2]|0)+(c[f>>2]|0);if((c[c[e>>2]>>2]|0)>>>0>=(c[f>>2]|0)>>>0){l=d;return}f=(c[e>>2]|0)+4|0;c[f>>2]=(c[f>>2]|0)+1;l=d;return}function Fq(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[e>>2]=a;do if((c[(c[e>>2]|0)+4>>2]|0)>>>0<=15){if((c[(c[e>>2]|0)+4>>2]|0)>>>0<15){c[d>>2]=1;break}if((c[c[e>>2]>>2]|0)>>>0<=4294967264){c[d>>2]=1;break}else{c[d>>2]=0;break}}else c[d>>2]=0;while(0);l=b;return c[d>>2]|0}function Gq(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f+28|0;h=f+24|0;i=f+20|0;j=f+16|0;k=f+12|0;n=f+8|0;o=f+4|0;c[g>>2]=b;c[h>>2]=d;c[i>>2]=e;c[j>>2]=c[g>>2];c[k>>2]=c[h>>2];c[f>>2]=3;if(!((c[j>>2]|c[k>>2])&3)){c[n>>2]=c[j>>2];c[o>>2]=c[k>>2];while(1){if((c[i>>2]|0)>>>0<4)break;h=c[o>>2]|0;c[o>>2]=h+4;g=c[h>>2]|0;h=c[n>>2]|0;c[n>>2]=h+4;c[h>>2]=g;c[i>>2]=(c[i>>2]|0)-4}c[j>>2]=c[n>>2];c[k>>2]=c[o>>2]}while(1){if(!(c[i>>2]|0))break;o=c[k>>2]|0;c[k>>2]=o+1;n=a[o>>0]|0;o=c[j>>2]|0;c[j>>2]=o+1;a[o>>0]=n;c[i>>2]=(c[i>>2]|0)+-1}l=f;return}function Hq(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;g=l;l=l+96|0;if((l|0)>=(m|0))$(96);h=g+76|0;i=g+72|0;j=g+68|0;k=g+64|0;n=g+56|0;o=g+40|0;p=g+36|0;q=g+32|0;r=g+81|0;s=g+8|0;t=g+28|0;u=g+24|0;v=g+20|0;w=g+80|0;x=g;y=g+16|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;f=(c[i>>2]|0)+128+36|0;c[f>>2]=0;c[f+4>>2]=0;f=(c[i>>2]|0)+128+44|0;c[f>>2]=0;c[f+4>>2]=0;f=(c[i>>2]|0)+128|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;f=(c[i>>2]|0)+128+68|0;a[f>>0]=a[f>>0]&-5;f=(c[i>>2]|0)+128+68|0;a[f>>0]=a[f>>0]&-2;f=(c[i>>2]|0)+128+68|0;a[f>>0]=a[f>>0]&-3;if(!(c[k>>2]|0)){c[h>>2]=139;z=c[h>>2]|0;l=g;return z|0}a:do if((c[k>>2]|0)!=12){c[n>>2]=0;c[n+4>>2]=0;f=(c[i>>2]|0)+80|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;Eq(n,c[k>>2]|0);f=(Iq(n)|0)!=0;e=c[i>>2]|0;if(!f){f=e+128+68|0;a[f>>0]=a[f>>0]&-5|4;c[h>>2]=139;z=c[h>>2]|0;l=g;return z|0}Dq(e,(c[i>>2]|0)+80|0,c[j>>2]|0,c[k>>2]|0,1);c[o+8+4>>2]=ax(c[n>>2]<<3|0)|0;c[o+8>>2]=ax((c[n>>2]|0)>>>29|c[n+4>>2]<<3|0)|0;c[o+4>>2]=0;c[o>>2]=0;Dq(c[i>>2]|0,(c[i>>2]|0)+80|0,o,16,1);c[p>>2]=n;c[q>>2]=8;a[r>>0]=0;e=s;c[e>>2]=d[r>>0];c[e+4>>2]=0;while(1){if(!(c[p>>2]&7|0?(c[q>>2]|0)!=0:0))break;a[c[p>>2]>>0]=a[r>>0]|0;c[p>>2]=(c[p>>2]|0)+1;c[q>>2]=(c[q>>2]|0)+-1}if((c[q>>2]|0)>>>0>=8){e=s;f=gx(c[e>>2]|0,c[e+4>>2]|0,16843009,16843009)|0;e=s;c[e>>2]=f;c[e+4>>2]=D;do{c[t>>2]=c[p>>2];e=s;f=c[e+4>>2]|0;b=c[t>>2]|0;c[b>>2]=c[e>>2];c[b+4>>2]=f;c[q>>2]=(c[q>>2]|0)-8;c[p>>2]=(c[p>>2]|0)+8}while((c[q>>2]|0)>>>0>=8)}while(1){if(!(c[q>>2]|0))break;a[c[p>>2]>>0]=a[r>>0]|0;c[p>>2]=(c[p>>2]|0)+1;c[q>>2]=(c[q>>2]|0)+-1}c[u>>2]=o;c[v>>2]=16;a[w>>0]=0;f=x;c[f>>2]=d[w>>0];c[f+4>>2]=0;while(1){if(!(c[u>>2]&7|0?(c[v>>2]|0)!=0:0))break;a[c[u>>2]>>0]=a[w>>0]|0;c[u>>2]=(c[u>>2]|0)+1;c[v>>2]=(c[v>>2]|0)+-1}if((c[v>>2]|0)>>>0>=8){f=x;b=gx(c[f>>2]|0,c[f+4>>2]|0,16843009,16843009)|0;f=x;c[f>>2]=b;c[f+4>>2]=D;do{c[y>>2]=c[u>>2];f=x;b=c[f+4>>2]|0;e=c[y>>2]|0;c[e>>2]=c[f>>2];c[e+4>>2]=b;c[v>>2]=(c[v>>2]|0)-8;c[u>>2]=(c[u>>2]|0)+8}while((c[v>>2]|0)>>>0>=8)}while(1){if(!(c[v>>2]|0))break a;a[c[u>>2]>>0]=a[w>>0]|0;c[u>>2]=(c[u>>2]|0)+1;c[v>>2]=(c[v>>2]|0)+-1}}else{_w((c[i>>2]|0)+80|0,c[j>>2]|0,c[k>>2]|0)|0;a[(c[i>>2]|0)+80+14>>0]=0;a[(c[i>>2]|0)+80+13>>0]=0;a[(c[i>>2]|0)+80+12>>0]=0;a[(c[i>>2]|0)+80+15>>0]=1}while(0);ub[c[(c[(c[i>>2]|0)+12>>2]|0)+36>>2]&63]((c[i>>2]|0)+496|0,(c[i>>2]|0)+128+52|0,(c[i>>2]|0)+80|0)|0;Jq((c[i>>2]|0)+80|0,1)|0;c[(c[i>>2]|0)+112>>2]=0;k=(c[i>>2]|0)+56|0;a[k>>0]=a[k>>0]&-3|2;k=(c[i>>2]|0)+56|0;a[k>>0]=a[k>>0]&-5;c[h>>2]=0;z=c[h>>2]|0;l=g;return z|0}function Iq(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[e>>2]=a;do if((c[(c[e>>2]|0)+4>>2]|0)>>>0<=536870911){if((c[(c[e>>2]|0)+4>>2]|0)>>>0<536870911){c[d>>2]=1;break}if((c[c[e>>2]>>2]|0)>>>0<=4294967295){c[d>>2]=1;break}else{c[d>>2]=0;break}}else c[d>>2]=0;while(0);l=b;return c[d>>2]|0}function Jq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+16|0;f=d+12|0;g=d+4|0;h=d;c[e>>2]=a;c[f>>2]=b;c[d+8>>2]=16;c[g>>2]=(c[e>>2]|0)+16+-4;e=ax(c[c[g>>2]>>2]|0)|0;c[h>>2]=e+(c[f>>2]|0);f=ax(c[h>>2]|0)|0;c[c[g>>2]>>2]=f;l=d;return c[h>>2]|0}function Kq(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0;i=l;l=l+32|0;if((l|0)>=(m|0))$(32);j=i+20|0;k=i+16|0;n=i+12|0;o=i+8|0;p=i+4|0;q=i;c[k>>2]=b;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;if((c[(c[(c[k>>2]|0)+12>>2]|0)+20>>2]|0)!=16){c[j>>2]=12;r=c[j>>2]|0;l=i;return r|0}if((c[o>>2]|0)>>>0<(c[q>>2]|0)>>>0){c[j>>2]=200;r=c[j>>2]|0;l=i;return r|0}if((d[(c[k>>2]|0)+128+68>>0]|0)>>>2&1|0){c[j>>2]=139;r=c[j>>2]|0;l=i;return r|0}if(((d[(c[k>>2]|0)+56>>0]|0)>>>2&1|0)==0?(a[(c[k>>2]|0)+128+68>>0]&1|0)==0:0){if(!((d[(c[k>>2]|0)+56>>0]|0)>>>1&1))Cq(c[k>>2]|0,72267,16)|0;if(!((d[(c[k>>2]|0)+128+68>>0]|0)>>>1&1)){Dq(c[k>>2]|0,(c[k>>2]|0)+128|0,0,0,1);h=(c[k>>2]|0)+128+68|0;a[h>>0]=a[h>>0]&-3|2}Eq((c[k>>2]|0)+128+44|0,c[q>>2]|0);h=(Fq((c[k>>2]|0)+128+44|0)|0)!=0;g=c[k>>2]|0;if(h){Dq(g,(c[k>>2]|0)+128|0,c[p>>2]|0,c[q>>2]|0,0);c[j>>2]=yq(c[k>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0)|0;r=c[j>>2]|0;l=i;return r|0}else{q=g+128+68|0;a[q>>0]=a[q>>0]&-5|4;c[j>>2]=139;r=c[j>>2]|0;l=i;return r|0}}c[j>>2]=156;r=c[j>>2]|0;l=i;return r|0}function Lq(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=(c[d>>2]|0)+128+80|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;ub[c[(c[(c[d>>2]|0)+12>>2]|0)+36>>2]&63]((c[d>>2]|0)+496|0,(c[d>>2]|0)+128+80|0,(c[d>>2]|0)+128+80|0)|0;Mq(c[d>>2]|0);l=b;return}function Mq(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;c[(c[d>>2]|0)+128+96>>2]=2;Oq((c[d>>2]|0)+128+80|0,(c[d>>2]|0)+128+100|0);l=b;return}function Nq(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f+20|0;h=f+16|0;i=f+12|0;j=f+8|0;k=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[f+4>>2]=16;c[k>>2]=0;while(1){if(!(c[j>>2]|0))break;c[k>>2]=Rq(c[h>>2]|0,c[i>>2]|0,(c[g>>2]|0)+128+100|0)|0;c[i>>2]=(c[i>>2]|0)+16;c[j>>2]=(c[j>>2]|0)+-1}l=f;return (c[k>>2]|0)+(c[k>>2]|0?20:0)|0}function Oq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+12|0;f=d+8|0;g=d+4|0;h=d;c[e>>2]=a;c[f>>2]=b;c[c[f>>2]>>2]=0;c[(c[f>>2]|0)+4>>2]=0;c[(c[f>>2]|0)+8>>2]=0;c[(c[f>>2]|0)+12>>2]=0;b=Pq(c[e>>2]|0)|0;c[(c[f>>2]|0)+128>>2]=b;b=Pq((c[e>>2]|0)+4|0)|0;c[(c[f>>2]|0)+132>>2]=b;b=Pq((c[e>>2]|0)+8|0)|0;c[(c[f>>2]|0)+136>>2]=b;b=Pq((c[e>>2]|0)+12|0)|0;c[(c[f>>2]|0)+140>>2]=b;c[g>>2]=4;while(1){if((c[g>>2]|0)<=0)break;c[(c[f>>2]|0)+((c[g>>2]<<2)+0<<2)>>2]=c[(c[f>>2]|0)+((c[g>>2]<<1<<2)+0<<2)>>2];c[(c[f>>2]|0)+((c[g>>2]<<2)+1<<2)>>2]=c[(c[f>>2]|0)+((c[g>>2]<<1<<2)+1<<2)>>2];c[(c[f>>2]|0)+((c[g>>2]<<2)+2<<2)>>2]=c[(c[f>>2]|0)+((c[g>>2]<<1<<2)+2<<2)>>2];c[(c[f>>2]|0)+((c[g>>2]<<2)+3<<2)>>2]=c[(c[f>>2]|0)+((c[g>>2]<<1<<2)+3<<2)>>2];Qq(c[f>>2]|0,c[g>>2]|0);c[g>>2]=(c[g>>2]|0)/2|0}c[g>>2]=2;while(1){if((c[g>>2]|0)>=16)break;c[h>>2]=1;while(1){i=c[g>>2]|0;if((c[h>>2]|0)>=(c[g>>2]|0))break;c[(c[f>>2]|0)+(((c[g>>2]|0)+(c[h>>2]|0)<<2)+0<<2)>>2]=c[(c[f>>2]|0)+((i<<2)+0<<2)>>2]^c[(c[f>>2]|0)+((c[h>>2]<<2)+0<<2)>>2];c[(c[f>>2]|0)+(((c[g>>2]|0)+(c[h>>2]|0)<<2)+1<<2)>>2]=c[(c[f>>2]|0)+((c[g>>2]<<2)+1<<2)>>2]^c[(c[f>>2]|0)+((c[h>>2]<<2)+1<<2)>>2];c[(c[f>>2]|0)+(((c[g>>2]|0)+(c[h>>2]|0)<<2)+2<<2)>>2]=c[(c[f>>2]|0)+((c[g>>2]<<2)+2<<2)>>2]^c[(c[f>>2]|0)+((c[h>>2]<<2)+2<<2)>>2];c[(c[f>>2]|0)+(((c[g>>2]|0)+(c[h>>2]|0)<<2)+3<<2)>>2]=c[(c[f>>2]|0)+((c[g>>2]<<2)+3<<2)>>2]^c[(c[f>>2]|0)+((c[h>>2]<<2)+3<<2)>>2];c[h>>2]=(c[h>>2]|0)+1}c[g>>2]=i<<1}l=d;return}function Pq(a){a=a|0;var b=0,e=0,f=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=b+4|0;f=b;c[e>>2]=a;c[f>>2]=c[e>>2];l=b;return (d[c[f>>2]>>0]|0)<<24|(d[(c[f>>2]|0)+1>>0]|0)<<16|(d[(c[f>>2]|0)+2>>0]|0)<<8|(d[(c[f>>2]|0)+3>>0]|0)|0}function Qq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+28|0;f=d+24|0;g=d+8|0;h=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=c[(c[e>>2]|0)+((c[f>>2]<<2)+0<<2)>>2];c[g+4>>2]=c[(c[e>>2]|0)+((c[f>>2]<<2)+1<<2)>>2];c[g+8>>2]=c[(c[e>>2]|0)+((c[f>>2]<<2)+2<<2)>>2];c[g+12>>2]=c[(c[e>>2]|0)+((c[f>>2]<<2)+3<<2)>>2];c[h>>2]=c[g+12>>2]&1|0?225:0;c[(c[e>>2]|0)+((c[f>>2]<<2)+3<<2)>>2]=(c[g+12>>2]|0)>>>1^c[g+8>>2]<<31;c[(c[e>>2]|0)+((c[f>>2]<<2)+2<<2)>>2]=(c[g+8>>2]|0)>>>1^c[g+4>>2]<<31;c[(c[e>>2]|0)+((c[f>>2]<<2)+1<<2)>>2]=(c[g+4>>2]|0)>>>1^c[g>>2]<<31;c[(c[e>>2]|0)+((c[f>>2]<<2)+0<<2)>>2]=(c[g>>2]|0)>>>1^c[h>>2]<<24;l=d;return}function Rq(a,b,f){a=a|0;b=b|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;g=l;l=l+80|0;if((l|0)>=(m|0))$(80);h=g+56|0;i=g+52|0;j=g+48|0;k=g+64|0;n=g+32|0;o=g+24|0;p=g+20|0;q=g+16|0;r=g+4|0;s=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=f;Sq(k,c[h>>2]|0,c[i>>2]|0,16);c[s>>2]=15;c[o>>2]=d[k+(c[s>>2]|0)>>0];c[p>>2]=(c[j>>2]|0)+((c[o>>2]&15)<<2<<2);c[o>>2]=(c[o>>2]&240)>>>4;c[q>>2]=(c[j>>2]|0)+(c[o>>2]<<2<<2);i=(c[s>>2]|0)+-1|0;c[s>>2]=i;c[o>>2]=d[k+i>>0];i=(c[c[p>>2]>>2]|0)>>>4;f=ix(e[17906+((c[(c[p>>2]|0)+12>>2]<<4&240)<<1)>>1]|0|0,0,16)|0;c[n>>2]=i^f^c[c[q>>2]>>2];c[n+4>>2]=(c[(c[p>>2]|0)+4>>2]|0)>>>4^c[c[p>>2]>>2]<<28^c[(c[q>>2]|0)+4>>2];c[n+8>>2]=(c[(c[p>>2]|0)+8>>2]|0)>>>4^c[(c[p>>2]|0)+4>>2]<<28^c[(c[q>>2]|0)+8>>2];c[n+12>>2]=(c[(c[p>>2]|0)+12>>2]|0)>>>4^c[(c[p>>2]|0)+8>>2]<<28^c[(c[q>>2]|0)+12>>2];while(1){c[p>>2]=(c[j>>2]|0)+((c[o>>2]&15)<<2<<2);c[o>>2]=(c[o>>2]&240)>>>4;c[q>>2]=(c[j>>2]|0)+(c[o>>2]<<2<<2);c[r>>2]=c[n>>2];c[r+4>>2]=c[n+4>>2];c[r+8>>2]=c[n+8>>2];c[n>>2]=(c[r>>2]|0)>>>8^(e[17906+((c[n+12>>2]&255)<<1)>>1]|0)<<16^c[c[q>>2]>>2];c[n+4>>2]=c[r>>2]<<24^(c[n+4>>2]|0)>>>8^c[(c[q>>2]|0)+4>>2];c[n+8>>2]=c[r+4>>2]<<24^(c[n+8>>2]|0)>>>8^c[(c[q>>2]|0)+8>>2];c[n+12>>2]=c[r+8>>2]<<24^(c[n+12>>2]|0)>>>8^c[(c[q>>2]|0)+12>>2];f=(c[c[p>>2]>>2]|0)>>>4;i=ix(e[17906+((c[(c[p>>2]|0)+12>>2]<<4&240)<<1)>>1]|0|0,0,16)|0;c[n>>2]=c[n>>2]^(f^i);i=n+4|0;c[i>>2]=c[i>>2]^((c[(c[p>>2]|0)+4>>2]|0)>>>4^c[c[p>>2]>>2]<<28);i=n+8|0;c[i>>2]=c[i>>2]^((c[(c[p>>2]|0)+8>>2]|0)>>>4^c[(c[p>>2]|0)+4>>2]<<28);i=n+12|0;c[i>>2]=c[i>>2]^((c[(c[p>>2]|0)+12>>2]|0)>>>4^c[(c[p>>2]|0)+8>>2]<<28);if(!(c[s>>2]|0))break;i=(c[s>>2]|0)+-1|0;c[s>>2]=i;c[o>>2]=d[k+i>>0]}Tq(c[h>>2]|0,c[n>>2]|0);Tq((c[h>>2]|0)+4|0,c[n+4>>2]|0);Tq((c[h>>2]|0)+8|0,c[n+8>>2]|0);Tq((c[h>>2]|0)+12|0,c[n+12>>2]|0);l=g;return 76}function Sq(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;h=l;l=l+48|0;if((l|0)>=(m|0))$(48);i=h+40|0;j=h+36|0;k=h+32|0;n=h+28|0;o=h+24|0;p=h+20|0;q=h+16|0;r=h+12|0;s=h+8|0;t=h+4|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[n>>2]=g;c[o>>2]=c[i>>2];c[p>>2]=c[j>>2];c[q>>2]=c[k>>2];c[h>>2]=3;if(!((c[o>>2]|c[p>>2]|c[q>>2])&3)){c[r>>2]=c[o>>2];c[s>>2]=c[p>>2];c[t>>2]=c[q>>2];while(1){if((c[n>>2]|0)>>>0<4)break;k=c[s>>2]|0;c[s>>2]=k+4;j=c[k>>2]|0;k=c[t>>2]|0;c[t>>2]=k+4;i=j^c[k>>2];k=c[r>>2]|0;c[r>>2]=k+4;c[k>>2]=i;c[n>>2]=(c[n>>2]|0)-4}c[o>>2]=c[r>>2];c[p>>2]=c[s>>2];c[q>>2]=c[t>>2]}while(1){if(!(c[n>>2]|0))break;t=c[p>>2]|0;c[p>>2]=t+1;s=d[t>>0]|0;t=c[q>>2]|0;c[q>>2]=t+1;r=(s^(d[t>>0]|0))&255;t=c[o>>2]|0;c[o>>2]=t+1;a[t>>0]=r;c[n>>2]=(c[n>>2]|0)+-1}l=h;return}function Tq(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=b;c[g>>2]=d;c[h>>2]=c[f>>2];a[c[h>>2]>>0]=(c[g>>2]|0)>>>24;a[(c[h>>2]|0)+1>>0]=(c[g>>2]|0)>>>16;a[(c[h>>2]|0)+2>>0]=(c[g>>2]|0)>>>8;a[(c[h>>2]|0)+3>>0]=c[g>>2];l=e;return}function Uq(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f+20|0;h=f+16|0;i=f+12|0;j=f;k=f+8|0;c[h>>2]=a;c[i>>2]=b;b=j;c[b>>2]=d;c[b+4>>2]=e;e=j;c[k>>2]=Vq(c[e>>2]|0,c[e+4>>2]|0)|0;if((c[k>>2]|0)<16){c[g>>2]=(c[h>>2]|0)+128+32+(c[k>>2]<<4);n=c[g>>2]|0;l=f;return n|0}Wq(c[i>>2]|0,(c[h>>2]|0)+128+32+240|0);c[k>>2]=(c[k>>2]|0)-16;while(1){o=c[i>>2]|0;if(!(c[k>>2]|0))break;Xq(o);c[k>>2]=(c[k>>2]|0)+-1}c[g>>2]=o;n=c[g>>2]|0;l=f;return n|0}function Vq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+8|0;f=d;g=f;c[g>>2]=a;c[g+4>>2]=b;b=f;g=c[b+4>>2]|0;if((c[f>>2]|0)!=0|0!=0){c[e>>2]=$q(c[b>>2]|0)|0;h=c[e>>2]|0;l=d;return h|0}else{c[e>>2]=32+($q(g)|0);h=c[e>>2]|0;l=d;return h|0}return 0}function Wq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;if((c[e>>2]|0)!=(c[f>>2]|0))_q(c[e>>2]|0,c[f>>2]|0,16);Xq(c[e>>2]|0);l=d;return}function Xq(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=l;l=l+32|0;if((l|0)>=(m|0))$(32);d=b+24|0;e=b+16|0;f=b+8|0;g=b;c[d>>2]=a;a=Yq(c[d>>2]|0)|0;h=f;c[h>>2]=a;c[h+4>>2]=D;h=Yq((c[d>>2]|0)+8|0)|0;a=g;c[a>>2]=h;c[a+4>>2]=D;a=f;h=bx(c[a>>2]|0,c[a+4>>2]|0,63)|0;a=e;c[a>>2]=h;c[a+4>>2]=D;a=f;h=f;i=Ww(c[a>>2]|0,c[a+4>>2]|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=D;a=g;j=cx(c[a>>2]|0,c[a+4>>2]|0,63)|0;a=f;c[a>>2]=i^j;c[a+4>>2]=h^D;h=g;a=g;j=Ww(c[h>>2]|0,c[h+4>>2]|0,c[a>>2]|0,c[a+4>>2]|0)|0;a=g;c[a>>2]=j^c[e>>2]&135;c[a+4>>2]=D;a=f;Zq(c[d>>2]|0,c[a>>2]|0,c[a+4>>2]|0);a=g;Zq((c[d>>2]|0)+8|0,c[a>>2]|0,c[a+4>>2]|0);l=b;return}function Yq(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=b+4|0;f=b;c[e>>2]=a;c[f>>2]=c[e>>2];e=ix(d[c[f>>2]>>0]|0|0,0,56)|0;a=D;g=ix(d[(c[f>>2]|0)+1>>0]|0|0,0,48)|0;h=a|D;a=ix(d[(c[f>>2]|0)+2>>0]|0|0,0,40)|0;i=h|D|(d[(c[f>>2]|0)+3>>0]|0);h=ix(d[(c[f>>2]|0)+4>>0]|0|0,0,24)|0;j=i|D;i=ix(d[(c[f>>2]|0)+5>>0]|0|0,0,16)|0;k=j|D;j=ix(d[(c[f>>2]|0)+6>>0]|0|0,0,8)|0;D=k|D;l=b;return e|g|a|h|i|j|(d[(c[f>>2]|0)+7>>0]|0)|0}function Zq(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f+12|0;h=f;i=f+8|0;c[g>>2]=b;b=h;c[b>>2]=d;c[b+4>>2]=e;c[i>>2]=c[g>>2];g=h;e=cx(c[g>>2]|0,c[g+4>>2]|0,56)|0;a[c[i>>2]>>0]=e;e=h;g=cx(c[e>>2]|0,c[e+4>>2]|0,48)|0;a[(c[i>>2]|0)+1>>0]=g;g=h;e=cx(c[g>>2]|0,c[g+4>>2]|0,40)|0;a[(c[i>>2]|0)+2>>0]=e;a[(c[i>>2]|0)+3>>0]=c[h+4>>2];e=h;g=cx(c[e>>2]|0,c[e+4>>2]|0,24)|0;a[(c[i>>2]|0)+4>>0]=g;g=h;e=cx(c[g>>2]|0,c[g+4>>2]|0,16)|0;a[(c[i>>2]|0)+5>>0]=e;e=h;g=cx(c[e>>2]|0,c[e+4>>2]|0,8)|0;a[(c[i>>2]|0)+6>>0]=g;a[(c[i>>2]|0)+7>>0]=c[h>>2];l=f;return}function _q(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f+28|0;h=f+24|0;i=f+20|0;j=f+16|0;k=f+12|0;n=f+8|0;o=f+4|0;c[g>>2]=b;c[h>>2]=d;c[i>>2]=e;c[j>>2]=c[g>>2];c[k>>2]=c[h>>2];c[f>>2]=3;if(!((c[j>>2]|c[k>>2])&3)){c[n>>2]=c[j>>2];c[o>>2]=c[k>>2];while(1){if((c[i>>2]|0)>>>0<4)break;h=c[o>>2]|0;c[o>>2]=h+4;g=c[h>>2]|0;h=c[n>>2]|0;c[n>>2]=h+4;c[h>>2]=g;c[i>>2]=(c[i>>2]|0)-4}c[j>>2]=c[n>>2];c[k>>2]=c[o>>2]}while(1){if(!(c[i>>2]|0))break;o=c[k>>2]|0;c[k>>2]=o+1;n=a[o>>0]|0;o=c[j>>2]|0;c[j>>2]=o+1;a[o>>0]=n;c[i>>2]=(c[i>>2]|0)+-1}l=f;return}function $q(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=(c[d>>2]|0)!=0;e=Xw(c[d>>2]|0)|0;l=b;return (a?e:32)|0}function ar(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0;g=l;l=l+128|0;if((l|0)>=(m|0))$(128);h=g+68|0;i=g+64|0;j=g+60|0;k=g+56|0;n=g+104|0;o=g+80|0;p=g+52|0;q=g+48|0;r=g+44|0;s=g+40|0;t=g+36|0;u=g+32|0;v=g+73|0;w=g+8|0;x=g+28|0;y=g+24|0;z=g+20|0;A=g+72|0;B=g;C=g+16|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[r>>2]=0;if(!(a[(c[i>>2]|0)+56>>0]&1)){c[h>>2]=156;E=c[h>>2]|0;l=g;return E|0}switch(d[(c[i>>2]|0)+128+352>>0]|0|0){case 16:case 12:case 8:break;default:{c[h>>2]=59;E=c[h>>2]|0;l=g;return E|0}}if((c[(c[(c[i>>2]|0)+12>>2]|0)+20>>2]|0)!=16){c[h>>2]=12;E=c[h>>2]|0;l=g;return E|0}if(!(c[j>>2]|0)){c[h>>2]=45;E=c[h>>2]|0;l=g;return E|0}if((c[k>>2]|0)>>>0>15|(c[k>>2]|0)>>>0<8|(c[k>>2]|0)>>>0>=16){c[h>>2]=139;E=c[h>>2]|0;l=g;return E|0}f=n;e=f+16|0;do{a[f>>0]=0;f=f+1|0}while((f|0)<(e|0));c[s>>2]=ub[c[(c[(c[i>>2]|0)+12>>2]|0)+36>>2]&63]((c[i>>2]|0)+496|0,(c[i>>2]|0)+128|0,n)|0;c[r>>2]=(c[s>>2]|0)>>>0>(c[r>>2]|0)>>>0?c[s>>2]|0:c[r>>2]|0;Wq((c[i>>2]|0)+128+16|0,(c[i>>2]|0)+128|0);Wq((c[i>>2]|0)+128+32|0,(c[i>>2]|0)+128+16|0);c[q>>2]=1;while(1){if((c[q>>2]|0)>=16)break;Wq((c[i>>2]|0)+128+32+(c[q>>2]<<4)|0,(c[i>>2]|0)+128+32+((c[q>>2]|0)-1<<4)|0);c[q>>2]=(c[q>>2]|0)+1}Uw(n|0,0,16-(c[k>>2]|0)|0)|0;_q(n+(16-(c[k>>2]|0))|0,c[j>>2]|0,c[k>>2]|0);a[n>>0]=(((d[(c[i>>2]|0)+128+352>>0]|0)<<3|0)%128|0)<<1;j=n+(16-(c[k>>2]|0)-1)|0;a[j>>0]=d[j>>0]|0|1;c[p>>2]=(d[n+15>>0]|0)&63;j=n+15|0;a[j>>0]=(d[j>>0]|0)&192;c[s>>2]=ub[c[(c[(c[i>>2]|0)+12>>2]|0)+36>>2]&63]((c[i>>2]|0)+496|0,n,n)|0;c[r>>2]=(c[s>>2]|0)>>>0>(c[r>>2]|0)>>>0?c[s>>2]|0:c[r>>2]|0;_q(o,n,16);br(o+16|0,n,n+1|0,8);cr((c[i>>2]|0)+64|0,o,c[p>>2]|0,16);p=(c[i>>2]|0)+56|0;a[p>>0]=a[p>>0]&-3|2;p=(c[i>>2]|0)+80|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;p=(c[i>>2]|0)+128+304|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;p=(c[i>>2]|0)+128+320|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;p=(c[i>>2]|0)+96|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;c[(c[i>>2]|0)+112>>2]=0;p=(c[i>>2]|0)+56|0;a[p>>0]=a[p>>0]&-5;p=(c[i>>2]|0)+56|0;a[p>>0]=a[p>>0]&-9;p=(c[i>>2]|0)+128+336|0;c[p>>2]=0;c[p+4>>2]=0;p=(c[i>>2]|0)+128+344|0;c[p>>2]=0;c[p+4>>2]=0;p=(c[i>>2]|0)+128+353|0;a[p>>0]=a[p>>0]&-2;p=(c[i>>2]|0)+128+353|0;a[p>>0]=a[p>>0]&-3;c[t>>2]=n;c[u>>2]=16;a[v>>0]=0;n=w;c[n>>2]=d[v>>0];c[n+4>>2]=0;while(1){if(!(c[t>>2]&7|0?(c[u>>2]|0)!=0:0))break;a[c[t>>2]>>0]=a[v>>0]|0;c[t>>2]=(c[t>>2]|0)+1;c[u>>2]=(c[u>>2]|0)+-1}if((c[u>>2]|0)>>>0>=8){n=w;p=gx(c[n>>2]|0,c[n+4>>2]|0,16843009,16843009)|0;n=w;c[n>>2]=p;c[n+4>>2]=D;do{c[x>>2]=c[t>>2];n=w;p=c[n+4>>2]|0;i=c[x>>2]|0;c[i>>2]=c[n>>2];c[i+4>>2]=p;c[u>>2]=(c[u>>2]|0)-8;c[t>>2]=(c[t>>2]|0)+8}while((c[u>>2]|0)>>>0>=8)}while(1){if(!(c[u>>2]|0))break;a[c[t>>2]>>0]=a[v>>0]|0;c[t>>2]=(c[t>>2]|0)+1;c[u>>2]=(c[u>>2]|0)+-1}c[y>>2]=o;c[z>>2]=24;a[A>>0]=0;o=B;c[o>>2]=d[A>>0];c[o+4>>2]=0;while(1){if(!(c[y>>2]&7|0?(c[z>>2]|0)!=0:0))break;a[c[y>>2]>>0]=a[A>>0]|0;c[y>>2]=(c[y>>2]|0)+1;c[z>>2]=(c[z>>2]|0)+-1}if((c[z>>2]|0)>>>0>=8){o=B;u=gx(c[o>>2]|0,c[o+4>>2]|0,16843009,16843009)|0;o=B;c[o>>2]=u;c[o+4>>2]=D;do{c[C>>2]=c[y>>2];o=B;u=c[o+4>>2]|0;t=c[C>>2]|0;c[t>>2]=c[o>>2];c[t+4>>2]=u;c[z>>2]=(c[z>>2]|0)-8;c[y>>2]=(c[y>>2]|0)+8}while((c[z>>2]|0)>>>0>=8)}while(1){if(!(c[z>>2]|0))break;a[c[y>>2]>>0]=a[A>>0]|0;c[y>>2]=(c[y>>2]|0)+1;c[z>>2]=(c[z>>2]|0)+-1}if((c[r>>2]|0)>>>0>0){bf((c[r>>2]|0)+16|0);cf()}c[h>>2]=0;E=c[h>>2]|0;l=g;return E|0}function br(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;h=l;l=l+48|0;if((l|0)>=(m|0))$(48);i=h+40|0;j=h+36|0;k=h+32|0;n=h+28|0;o=h+24|0;p=h+20|0;q=h+16|0;r=h+12|0;s=h+8|0;t=h+4|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[n>>2]=g;c[o>>2]=c[i>>2];c[p>>2]=c[j>>2];c[q>>2]=c[k>>2];c[h>>2]=3;if(!((c[o>>2]|c[p>>2]|c[q>>2])&3)){c[r>>2]=c[o>>2];c[s>>2]=c[p>>2];c[t>>2]=c[q>>2];while(1){if((c[n>>2]|0)>>>0<4)break;k=c[s>>2]|0;c[s>>2]=k+4;j=c[k>>2]|0;k=c[t>>2]|0;c[t>>2]=k+4;i=j^c[k>>2];k=c[r>>2]|0;c[r>>2]=k+4;c[k>>2]=i;c[n>>2]=(c[n>>2]|0)-4}c[o>>2]=c[r>>2];c[p>>2]=c[s>>2];c[q>>2]=c[t>>2]}while(1){if(!(c[n>>2]|0))break;t=c[p>>2]|0;c[p>>2]=t+1;s=d[t>>0]|0;t=c[q>>2]|0;c[q>>2]=t+1;r=(s^(d[t>>0]|0))&255;t=c[o>>2]|0;c[o>>2]=t+1;a[t>>0]=r;c[n>>2]=(c[n>>2]|0)+-1}l=h;return}function cr(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0;h=l;l=l+32|0;if((l|0)>=(m|0))$(32);i=h+16|0;j=h+12|0;k=h+8|0;n=h+4|0;o=h;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[n>>2]=g;c[j>>2]=(c[j>>2]|0)+(((c[k>>2]|0)>>>0)/8|0);c[o>>2]=((c[k>>2]|0)>>>0)%8|0;if(c[o>>2]|0){while(1){if(!(c[n>>2]|0))break;a[c[i>>2]>>0]=(d[c[j>>2]>>0]|0)<<c[o>>2]|(d[(c[j>>2]|0)+1>>0]|0)>>8-(c[o>>2]|0);c[n>>2]=(c[n>>2]|0)+-1;c[i>>2]=(c[i>>2]|0)+1;c[j>>2]=(c[j>>2]|0)+1}l=h;return}else{while(1){if(!(c[n>>2]|0))break;a[c[i>>2]>>0]=a[c[j>>2]>>0]|0;c[n>>2]=(c[n>>2]|0)+-1;c[i>>2]=(c[i>>2]|0)+1;c[j>>2]=(c[j>>2]|0)+1}l=h;return}}function dr(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;g=l;l=l+32|0;if((l|0)>=(m|0))$(32);h=g+28|0;i=g+24|0;j=g+20|0;k=g+16|0;n=g+12|0;o=g+8|0;p=g+4|0;c[h>>2]=b;c[i>>2]=e;c[j>>2]=f;c[k>>2]=c[h>>2];c[n>>2]=c[i>>2];c[g>>2]=3;if(!((c[k>>2]|c[n>>2])&3)){c[o>>2]=c[k>>2];c[p>>2]=c[n>>2];while(1){if((c[j>>2]|0)>>>0<4)break;i=c[p>>2]|0;c[p>>2]=i+4;h=c[i>>2]|0;i=c[o>>2]|0;c[o>>2]=i+4;c[i>>2]=c[i>>2]^h;c[j>>2]=(c[j>>2]|0)-4}c[k>>2]=c[o>>2];c[n>>2]=c[p>>2]}while(1){if(!(c[j>>2]|0))break;p=c[n>>2]|0;c[n>>2]=p+1;o=d[p>>0]|0;p=c[k>>2]|0;c[k>>2]=p+1;a[p>>0]=(d[p>>0]|0)^o;c[j>>2]=(c[j>>2]|0)+-1}l=g;return}function er(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0;g=l;l=l+32|0;if((l|0)>=(m|0))$(32);h=g+16|0;i=g+12|0;j=g+8|0;k=g+4|0;n=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[n>>2]=f;f=fr(c[h>>2]|0,1,c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[n>>2]|0)|0;l=g;return f|0}function fr(b,e,f,g,h,i){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;j=l;l=l+80|0;if((l|0)>=(m|0))$(80);k=j+40|0;n=j+36|0;o=j+32|0;p=j+28|0;q=j+24|0;r=j+20|0;s=j+16|0;t=j+64|0;u=j+12|0;v=j+8|0;w=j+4|0;x=j;y=j+48|0;c[n>>2]=b;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[u>>2]=0;c[w>>2]=((c[s>>2]|0)>>>0)/16|0;if((d[(c[n>>2]|0)+56>>0]|0)>>>1&1|0?(a[(c[n>>2]|0)+128+353>>0]&1|0)==0:0){if((c[(c[(c[n>>2]|0)+12>>2]|0)+20>>2]|0)!=16){c[k>>2]=12;z=c[k>>2]|0;l=j;return z|0}if((c[q>>2]|0)>>>0<(c[s>>2]|0)>>>0){c[k>>2]=200;z=c[k>>2]|0;l=j;return z|0}if(((d[(c[n>>2]|0)+56>>0]|0)>>>3&1|0)==0?((c[s>>2]|0)>>>0)%16|0|0:0){c[k>>2]=139;z=c[k>>2]|0;l=j;return z|0}if(c[w>>2]|0?c[(c[n>>2]|0)+20+20>>2]|0:0){vb[c[(c[n>>2]|0)+20+20>>2]&15](c[n>>2]|0,c[p>>2]|0,c[r>>2]|0,c[w>>2]|0,c[o>>2]|0);c[r>>2]=(c[r>>2]|0)+(c[w>>2]<<4);c[p>>2]=(c[p>>2]|0)+(c[w>>2]<<4);c[s>>2]=(c[s>>2]|0)-(c[w>>2]<<4);c[q>>2]=(c[q>>2]|0)-(c[w>>2]<<4);c[w>>2]=0}if(c[w>>2]|0){i=c[(c[n>>2]|0)+12>>2]|0;if(c[o>>2]|0)A=c[i+36>>2]|0;else A=c[i+40>>2]|0;c[x>>2]=A;if(c[o>>2]|0)gr((c[n>>2]|0)+80|0,c[r>>2]|0,c[w>>2]|0);while(1){if((c[s>>2]|0)>>>0<16)break;A=(c[n>>2]|0)+128+336|0;i=A;h=Ww(c[i>>2]|0,c[i+4>>2]|0,1,0)|0;i=A;c[i>>2]=h;c[i+4>>2]=D;i=(c[n>>2]|0)+64|0;h=(c[n>>2]|0)+128+336|0;dr(i,Uq(c[n>>2]|0,t,c[h>>2]|0,c[h+4>>2]|0)|0,16);br(c[p>>2]|0,(c[n>>2]|0)+64|0,c[r>>2]|0,16);c[v>>2]=ub[c[x>>2]&63]((c[n>>2]|0)+496|0,c[p>>2]|0,c[p>>2]|0)|0;c[u>>2]=(c[v>>2]|0)>>>0>(c[u>>2]|0)>>>0?c[v>>2]|0:c[u>>2]|0;dr(c[p>>2]|0,(c[n>>2]|0)+64|0,16);c[r>>2]=(c[r>>2]|0)+16;c[s>>2]=(c[s>>2]|0)-16;c[p>>2]=(c[p>>2]|0)+16;c[q>>2]=-16}if(!(c[o>>2]|0))gr((c[n>>2]|0)+80|0,(c[p>>2]|0)+(0-(c[w>>2]<<4))|0,c[w>>2]|0)}do if(c[s>>2]|0){dr((c[n>>2]|0)+64|0,(c[n>>2]|0)+128|0,16);c[v>>2]=ub[c[(c[(c[n>>2]|0)+12>>2]|0)+36>>2]&63]((c[n>>2]|0)+496|0,y,(c[n>>2]|0)+64|0)|0;c[u>>2]=(c[v>>2]|0)>>>0>(c[u>>2]|0)>>>0?c[v>>2]|0:c[u>>2]|0;if(c[o>>2]|0){_q(t,c[r>>2]|0,c[s>>2]|0);Uw(t+(c[s>>2]|0)|0,0,16-(c[s>>2]|0)|0)|0;a[t+(c[s>>2]|0)>>0]=-128;dr((c[n>>2]|0)+80|0,t,16);br(c[p>>2]|0,c[r>>2]|0,y,c[s>>2]|0);break}else{_q(t,y,16);_q(t,c[r>>2]|0,c[s>>2]|0);dr(t,y,16);a[t+(c[s>>2]|0)>>0]=-128;_q(c[p>>2]|0,t,c[s>>2]|0);dr((c[n>>2]|0)+80|0,t,16);break}}while(0);if((d[(c[n>>2]|0)+56>>0]|0)>>>3&1|0){br((c[n>>2]|0)+128+288|0,(c[n>>2]|0)+80|0,(c[n>>2]|0)+64|0,16);dr((c[n>>2]|0)+128+288|0,(c[n>>2]|0)+128+16|0,16);c[v>>2]=ub[c[(c[(c[n>>2]|0)+12>>2]|0)+36>>2]&63]((c[n>>2]|0)+496|0,(c[n>>2]|0)+128+288|0,(c[n>>2]|0)+128+288|0)|0;c[u>>2]=(c[v>>2]|0)>>>0>(c[u>>2]|0)>>>0?c[v>>2]|0:c[u>>2]|0;v=(c[n>>2]|0)+128+353|0;a[v>>0]=a[v>>0]&-2|1}if((c[u>>2]|0)>>>0>0){bf((c[u>>2]|0)+16|0);cf()}c[k>>2]=0;z=c[k>>2]|0;l=j;return z|0}c[k>>2]=156;z=c[k>>2]|0;l=j;return z|0}function gr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;while(1){if((c[h>>2]|0)>>>0<=0)break;dr(c[f>>2]|0,c[g>>2]|0,16);c[g>>2]=(c[g>>2]|0)+16;c[h>>2]=(c[h>>2]|0)+-1}l=e;return}function hr(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0;g=l;l=l+32|0;if((l|0)>=(m|0))$(32);h=g+16|0;i=g+12|0;j=g+8|0;k=g+4|0;n=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[n>>2]=f;f=fr(c[h>>2]|0,0,c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[n>>2]|0)|0;l=g;return f|0}function ir(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;g=l;l=l+48|0;if((l|0)>=(m|0))$(48);h=g+40|0;i=g+36|0;j=g+32|0;k=g+28|0;n=g+24|0;o=g+20|0;p=g+16|0;q=g+12|0;r=g+8|0;s=g+4|0;t=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[n>>2]=e;c[o>>2]=f;c[q>>2]=c[(c[(c[i>>2]|0)+12>>2]|0)+36>>2];c[r>>2]=c[(c[(c[i>>2]|0)+12>>2]|0)+20>>2];if((c[k>>2]|0)>>>0<(c[o>>2]|0)>>>0){c[h>>2]=200;u=c[h>>2]|0;l=g;return u|0}if((c[o>>2]|0)>>>0<=(c[(c[i>>2]|0)+112>>2]|0)>>>0){c[p>>2]=(c[i>>2]|0)+64+(c[r>>2]|0)+(0-(c[(c[i>>2]|0)+112>>2]|0));jr(c[j>>2]|0,c[p>>2]|0,c[n>>2]|0,c[o>>2]|0);k=(c[i>>2]|0)+112|0;c[k>>2]=(c[k>>2]|0)-(c[o>>2]|0);c[h>>2]=0;u=c[h>>2]|0;l=g;return u|0}c[s>>2]=0;if(c[(c[i>>2]|0)+112>>2]|0){c[o>>2]=(c[o>>2]|0)-(c[(c[i>>2]|0)+112>>2]|0);c[p>>2]=(c[i>>2]|0)+64+(c[r>>2]|0)+(0-(c[(c[i>>2]|0)+112>>2]|0));jr(c[j>>2]|0,c[p>>2]|0,c[n>>2]|0,c[(c[i>>2]|0)+112>>2]|0);c[j>>2]=(c[j>>2]|0)+(c[(c[i>>2]|0)+112>>2]|0);c[n>>2]=(c[n>>2]|0)+(c[(c[i>>2]|0)+112>>2]|0);c[(c[i>>2]|0)+112>>2]=0}while(1){if((c[o>>2]|0)>>>0<(c[r>>2]|0)>>>0)break;c[t>>2]=ub[c[q>>2]&63]((c[i>>2]|0)+496|0,(c[i>>2]|0)+64|0,(c[i>>2]|0)+64|0)|0;c[s>>2]=(c[t>>2]|0)>>>0>(c[s>>2]|0)>>>0?c[t>>2]|0:c[s>>2]|0;jr(c[j>>2]|0,(c[i>>2]|0)+64|0,c[n>>2]|0,c[r>>2]|0);c[j>>2]=(c[j>>2]|0)+(c[r>>2]|0);c[n>>2]=(c[n>>2]|0)+(c[r>>2]|0);c[o>>2]=(c[o>>2]|0)-(c[r>>2]|0)}if(c[o>>2]|0){c[t>>2]=ub[c[q>>2]&63]((c[i>>2]|0)+496|0,(c[i>>2]|0)+64|0,(c[i>>2]|0)+64|0)|0;c[s>>2]=(c[t>>2]|0)>>>0>(c[s>>2]|0)>>>0?c[t>>2]|0:c[s>>2]|0;c[(c[i>>2]|0)+112>>2]=c[r>>2];r=(c[i>>2]|0)+112|0;c[r>>2]=(c[r>>2]|0)-(c[o>>2]|0);jr(c[j>>2]|0,(c[i>>2]|0)+64|0,c[n>>2]|0,c[o>>2]|0);c[j>>2]=(c[j>>2]|0)+(c[o>>2]|0);c[n>>2]=(c[n>>2]|0)+(c[o>>2]|0);c[o>>2]=0}if((c[s>>2]|0)>>>0>0){bf((c[s>>2]|0)+16|0);cf()}c[h>>2]=0;u=c[h>>2]|0;l=g;return u|0}function jr(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;h=l;l=l+48|0;if((l|0)>=(m|0))$(48);i=h+40|0;j=h+36|0;k=h+32|0;n=h+28|0;o=h+24|0;p=h+20|0;q=h+16|0;r=h+12|0;s=h+8|0;t=h+4|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[n>>2]=g;c[o>>2]=c[i>>2];c[p>>2]=c[j>>2];c[q>>2]=c[k>>2];c[h>>2]=3;if(!((c[o>>2]|c[p>>2]|c[q>>2])&3)){c[r>>2]=c[o>>2];c[s>>2]=c[p>>2];c[t>>2]=c[q>>2];while(1){if((c[n>>2]|0)>>>0<4)break;k=c[s>>2]|0;c[s>>2]=k+4;j=c[k>>2]|0;k=c[t>>2]|0;c[t>>2]=k+4;i=j^c[k>>2];k=c[r>>2]|0;c[r>>2]=k+4;c[k>>2]=i;c[n>>2]=(c[n>>2]|0)-4}c[o>>2]=c[r>>2];c[p>>2]=c[s>>2];c[q>>2]=c[t>>2]}while(1){if(!(c[n>>2]|0))break;t=c[p>>2]|0;c[p>>2]=t+1;s=d[t>>0]|0;t=c[q>>2]|0;c[q>>2]=t+1;r=(s^(d[t>>0]|0))&255;t=c[o>>2]|0;c[o>>2]=t+1;a[t>>0]=r;c[n>>2]=(c[n>>2]|0)+-1}l=h;return}function kr(b){b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d;f=d+8|0;c[e>>2]=b;a[f>>0]=0;a[f+1>>0]=0;a[f+2>>0]=0;a[f+3>>0]=0;a[f+4>>0]=0;a[f+5>>0]=0;a[f+6>>0]=0;a[f+7>>0]=0;b=mr(c[e>>2]|0,f,8)|0;l=d;return b|0}function lr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+12|0;f=d+8|0;g=d+4|0;h=d;c[f>>2]=a;c[g>>2]=b;c[h>>2]=0;b=c[f>>2]|0;c[b>>2]=(c[b>>2]|0)+(c[g>>2]|0);if((c[c[f>>2]>>2]|0)>>>0>=(c[g>>2]|0)>>>0){c[e>>2]=c[h>>2];i=c[e>>2]|0;l=d;return i|0}else{g=(c[f>>2]|0)+4|0;c[g>>2]=(c[g>>2]|0)+1;c[e>>2]=((c[(c[f>>2]|0)+4>>2]|0)>>>0<1?1:(c[h>>2]|0)!=0)&1;i=c[e>>2]|0;l=d;return i|0}return 0}function mr(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;g=l;l=l+112|0;if((l|0)>=(m|0))$(112);h=g+36|0;i=g+32|0;j=g+28|0;k=g+24|0;n=g+48|0;o=g+20|0;p=g+16|0;q=g+12|0;r=g+40|0;s=g;t=g+8|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;if((c[j>>2]|0)==0&(c[k>>2]|0)!=12){c[h>>2]=45;u=c[h>>2]|0;l=g;return u|0}f=(c[i>>2]|0)+128+20|0;e=f+92|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(e|0));c[(c[i>>2]|0)+128>>2]=0;c[(c[i>>2]|0)+128+4>>2]=0;c[(c[i>>2]|0)+128+8>>2]=0;c[(c[i>>2]|0)+128+8+4>>2]=0;b=(c[i>>2]|0)+128+16|0;a[b>>0]=a[b>>0]&-3;b=(c[i>>2]|0)+128+16|0;a[b>>0]=a[b>>0]&-2;b=(c[i>>2]|0)+56|0;a[b>>0]=a[b>>0]&-5;b=(c[i>>2]|0)+56|0;a[b>>0]=a[b>>0]&-3;zb[c[(c[(c[i>>2]|0)+12>>2]|0)+60>>2]&7]((c[i>>2]|0)+496|0,c[j>>2]|0,c[k>>2]|0);f=n;e=f+64|0;do{a[f>>0]=0;f=f+1|0}while((f|0)<(e|0));Eb[c[(c[(c[i>>2]|0)+12>>2]|0)+44>>2]&1]((c[i>>2]|0)+496|0,n,n,64);c[o>>2]=Sr((c[i>>2]|0)+128+20|0,n,32)|0;c[p>>2]=n;c[q>>2]=64;a[r>>0]=0;n=s;c[n>>2]=d[r>>0];c[n+4>>2]=0;while(1){if(!(c[p>>2]&7|0?(c[q>>2]|0)!=0:0))break;a[c[p>>2]>>0]=a[r>>0]|0;c[p>>2]=(c[p>>2]|0)+1;c[q>>2]=(c[q>>2]|0)+-1}if((c[q>>2]|0)>>>0>=8){n=s;f=gx(c[n>>2]|0,c[n+4>>2]|0,16843009,16843009)|0;n=s;c[n>>2]=f;c[n+4>>2]=D;do{c[t>>2]=c[p>>2];n=s;f=c[n+4>>2]|0;e=c[t>>2]|0;c[e>>2]=c[n>>2];c[e+4>>2]=f;c[q>>2]=(c[q>>2]|0)-8;c[p>>2]=(c[p>>2]|0)+8}while((c[q>>2]|0)>>>0>=8)}while(1){if(!(c[q>>2]|0))break;a[c[p>>2]>>0]=a[r>>0]|0;c[p>>2]=(c[p>>2]|0)+1;c[q>>2]=(c[q>>2]|0)+-1}if(c[o>>2]|0){c[h>>2]=c[o>>2];u=c[h>>2]|0;l=g;return u|0}else{o=(c[i>>2]|0)+56|0;a[o>>0]=a[o>>0]&-3|2;c[h>>2]=0;u=c[h>>2]|0;l=g;return u|0}return 0}function nr(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;i=l;l=l+32|0;if((l|0)>=(m|0))$(32);j=i+24|0;k=i+20|0;n=i+16|0;o=i+12|0;p=i+8|0;q=i+4|0;r=i;c[k>>2]=b;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;if((c[o>>2]|0)>>>0<(c[q>>2]|0)>>>0){c[j>>2]=200;s=c[j>>2]|0;l=i;return s|0}if((d[(c[k>>2]|0)+56>>0]|0)>>>2&1|0){c[j>>2]=156;s=c[j>>2]|0;l=i;return s|0}if((d[(c[k>>2]|0)+128+16>>0]|0)>>>1&1|0){c[j>>2]=139;s=c[j>>2]|0;l=i;return s|0}if(((d[(c[k>>2]|0)+56>>0]|0)>>>1&1|0)==0?(c[r>>2]=kr(c[k>>2]|0)|0,c[r>>2]|0):0){c[j>>2]=c[r>>2];s=c[j>>2]|0;l=i;return s|0}if(!(a[(c[k>>2]|0)+128+16>>0]&1))or(c[k>>2]|0);r=(lr((c[k>>2]|0)+128+8|0,c[q>>2]|0)|0)!=0;o=c[k>>2]|0;if(r){r=o+128+16|0;a[r>>0]=a[r>>0]&-3|2;c[j>>2]=139;s=c[j>>2]|0;l=i;return s|0}else{Eb[c[(c[o+12>>2]|0)+44>>2]&1]((c[k>>2]|0)+496|0,c[n>>2]|0,c[p>>2]|0,c[q>>2]|0);Or((c[k>>2]|0)+128+20|0,c[n>>2]|0,c[q>>2]|0);c[j>>2]=0;s=c[j>>2]|0;l=i;return s|0}return 0}function or(b){b=b|0;var d=0,e=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d;c[e>>2]=b;pr(c[e>>2]|0,(c[e>>2]|0)+128|0);b=(c[e>>2]|0)+128+16|0;a[b>>0]=a[b>>0]&-2|1;c[(c[e>>2]|0)+128+8>>2]=0;c[(c[e>>2]|0)+128+8+4>>2]=0;l=d;return}function pr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;if((((c[c[f>>2]>>2]|0)>>>0)%16|0)>>>0<=0){l=d;return}c[g>>2]=16-(((c[c[f>>2]>>2]|0)>>>0)%16|0);Or((c[e>>2]|0)+128+20|0,72283,c[g>>2]|0);l=d;return}function qr(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;i=l;l=l+32|0;if((l|0)>=(m|0))$(32);j=i+24|0;k=i+20|0;n=i+16|0;o=i+12|0;p=i+8|0;q=i+4|0;r=i;c[k>>2]=b;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;if((c[o>>2]|0)>>>0<(c[q>>2]|0)>>>0){c[j>>2]=200;s=c[j>>2]|0;l=i;return s|0}if((d[(c[k>>2]|0)+56>>0]|0)>>>2&1|0){c[j>>2]=156;s=c[j>>2]|0;l=i;return s|0}if((d[(c[k>>2]|0)+128+16>>0]|0)>>>1&1|0){c[j>>2]=139;s=c[j>>2]|0;l=i;return s|0}if(((d[(c[k>>2]|0)+56>>0]|0)>>>1&1|0)==0?(c[r>>2]=kr(c[k>>2]|0)|0,c[r>>2]|0):0){c[j>>2]=c[r>>2];s=c[j>>2]|0;l=i;return s|0}if(!(a[(c[k>>2]|0)+128+16>>0]&1))or(c[k>>2]|0);r=(lr((c[k>>2]|0)+128+8|0,c[q>>2]|0)|0)!=0;o=(c[k>>2]|0)+128|0;if(r){r=o+16|0;a[r>>0]=a[r>>0]&-3|2;c[j>>2]=139;s=c[j>>2]|0;l=i;return s|0}else{Or(o+20|0,c[p>>2]|0,c[q>>2]|0);Eb[c[(c[(c[k>>2]|0)+12>>2]|0)+48>>2]&1]((c[k>>2]|0)+496|0,c[n>>2]|0,c[p>>2]|0,c[q>>2]|0);c[j>>2]=0;s=c[j>>2]|0;l=i;return s|0}return 0}function rr(b){b=b|0;var d=0,e=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d;c[e>>2]=b;c[(c[e>>2]|0)+128>>2]=0;c[(c[e>>2]|0)+128+4>>2]=0;c[(c[e>>2]|0)+128+8>>2]=0;c[(c[e>>2]|0)+128+8+4>>2]=0;b=(c[e>>2]|0)+128+16|0;a[b>>0]=a[b>>0]&-3;b=(c[e>>2]|0)+128+16|0;a[b>>0]=a[b>>0]&-2;b=(c[e>>2]|0)+56|0;a[b>>0]=a[b>>0]&-5;b=(c[e>>2]|0)+56|0;a[b>>0]=a[b>>0]&-3;l=d;return}function sr(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;j=l;l=l+80|0;if((l|0)>=(m|0))$(80);k=j+72|0;n=j+64|0;o=j+60|0;p=j+56|0;q=j+52|0;r=j+48|0;s=j+44|0;t=j+40|0;u=j+36|0;v=j+32|0;w=j+28|0;x=j+24|0;y=j+20|0;z=j+16|0;A=j+12|0;B=j+8|0;C=j+4|0;D=j;c[j+68>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[C>>2]=(c[s>>2]|0)+15;c[C>>2]=(c[C>>2]|0)-(c[C>>2]&15);c[D>>2]=(c[C>>2]|0)+(c[r>>2]<<1)+((S(c[r>>2]|0,c[q>>2]|0)|0)*3|0)+16;c[B>>2]=wf(1,c[D>>2]|0)|0;if(!(c[B>>2]|0)){c[k>>2]=46964;E=c[k>>2]|0;l=j;return E|0}c[u>>2]=16-(c[B>>2]&15)&15;c[v>>2]=(c[B>>2]|0)+(c[u>>2]|0);c[z>>2]=(c[v>>2]|0)+(c[C>>2]|0);c[A>>2]=(c[z>>2]|0)+(c[r>>2]|0);c[w>>2]=(c[A>>2]|0)+(c[r>>2]|0);c[x>>2]=(c[w>>2]|0)+(S(c[q>>2]|0,c[r>>2]|0)|0);c[y>>2]=(c[x>>2]|0)+(S(c[q>>2]|0,c[r>>2]|0)|0);if(ub[c[n>>2]&63](c[v>>2]|0,16,16)|0){vf(c[B>>2]|0);c[k>>2]=46990;E=c[k>>2]|0;l=j;return E|0}Uw(c[z>>2]|0,78,c[r>>2]|0)|0;Uw(c[A>>2]|0,78,c[r>>2]|0)|0;c[t>>2]=0;while(1){if((c[t>>2]|0)>=(c[r>>2]|0))break;a[(c[w>>2]|0)+(c[t>>2]|0)>>0]=c[t>>2];c[t>>2]=(c[t>>2]|0)+1}tr(c[y>>2]|0,c[z>>2]|0,c[w>>2]|0,c[r>>2]|0);ub[c[o>>2]&63](c[v>>2]|0,c[y>>2]|0,c[y>>2]|0)|0;_w(c[z>>2]|0,c[y>>2]|0,c[r>>2]|0)|0;vb[c[p>>2]&15](c[v>>2]|0,c[A>>2]|0,c[x>>2]|0,c[y>>2]|0,1);if(Jv(c[x>>2]|0,c[w>>2]|0,c[r>>2]|0)|0){vf(c[B>>2]|0);c[k>>2]=47004;E=c[k>>2]|0;l=j;return E|0}if(Jv(c[A>>2]|0,c[z>>2]|0,c[r>>2]|0)|0){vf(c[B>>2]|0);c[k>>2]=47004;E=c[k>>2]|0;l=j;return E|0}Uw(c[z>>2]|0,95,c[r>>2]|0)|0;Uw(c[A>>2]|0,95,c[r>>2]|0)|0;c[t>>2]=0;while(1){if((c[t>>2]|0)>=(S(c[q>>2]|0,c[r>>2]|0)|0))break;a[(c[w>>2]|0)+(c[t>>2]|0)>>0]=c[t>>2];c[t>>2]=(c[t>>2]|0)+1}c[t>>2]=0;while(1){if((c[t>>2]|0)>=(S(c[q>>2]|0,c[r>>2]|0)|0))break;tr((c[y>>2]|0)+(c[t>>2]|0)|0,c[z>>2]|0,(c[w>>2]|0)+(c[t>>2]|0)|0,c[r>>2]|0);ub[c[o>>2]&63](c[v>>2]|0,(c[y>>2]|0)+(c[t>>2]|0)|0,(c[y>>2]|0)+(c[t>>2]|0)|0)|0;_w(c[z>>2]|0,(c[y>>2]|0)+(c[t>>2]|0)|0,c[r>>2]|0)|0;c[t>>2]=(c[t>>2]|0)+(c[r>>2]|0)}vb[c[p>>2]&15](c[v>>2]|0,c[A>>2]|0,c[x>>2]|0,c[y>>2]|0,c[q>>2]|0);if(Jv(c[x>>2]|0,c[w>>2]|0,S(c[q>>2]|0,c[r>>2]|0)|0)|0){vf(c[B>>2]|0);c[k>>2]=47004;E=c[k>>2]|0;l=j;return E|0}q=(Jv(c[A>>2]|0,c[z>>2]|0,c[r>>2]|0)|0)!=0;vf(c[B>>2]|0);if(q){c[k>>2]=47004;E=c[k>>2]|0;l=j;return E|0}else{c[k>>2]=0;E=c[k>>2]|0;l=j;return E|0}return 0}function tr(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;h=l;l=l+48|0;if((l|0)>=(m|0))$(48);i=h+40|0;j=h+36|0;k=h+32|0;n=h+28|0;o=h+24|0;p=h+20|0;q=h+16|0;r=h+12|0;s=h+8|0;t=h+4|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[n>>2]=g;c[o>>2]=c[i>>2];c[p>>2]=c[j>>2];c[q>>2]=c[k>>2];c[h>>2]=3;if(!((c[o>>2]|c[p>>2]|c[q>>2])&3)){c[r>>2]=c[o>>2];c[s>>2]=c[p>>2];c[t>>2]=c[q>>2];while(1){if((c[n>>2]|0)>>>0<4)break;k=c[s>>2]|0;c[s>>2]=k+4;j=c[k>>2]|0;k=c[t>>2]|0;c[t>>2]=k+4;i=j^c[k>>2];k=c[r>>2]|0;c[r>>2]=k+4;c[k>>2]=i;c[n>>2]=(c[n>>2]|0)-4}c[o>>2]=c[r>>2];c[p>>2]=c[s>>2];c[q>>2]=c[t>>2]}while(1){if(!(c[n>>2]|0))break;t=c[p>>2]|0;c[p>>2]=t+1;s=d[t>>0]|0;t=c[q>>2]|0;c[q>>2]=t+1;r=(s^(d[t>>0]|0))&255;t=c[o>>2]|0;c[o>>2]=t+1;a[t>>0]=r;c[n>>2]=(c[n>>2]|0)+-1}l=h;return}function ur(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;j=l;l=l+80|0;if((l|0)>=(m|0))$(80);k=j+72|0;n=j+64|0;o=j+60|0;p=j+56|0;q=j+52|0;r=j+48|0;s=j+44|0;t=j+40|0;u=j+36|0;v=j+32|0;w=j+28|0;x=j+24|0;y=j+20|0;z=j+16|0;A=j+12|0;B=j+8|0;C=j+4|0;D=j;c[j+68>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[C>>2]=(c[s>>2]|0)+15;c[C>>2]=(c[C>>2]|0)-(c[C>>2]&15);c[D>>2]=(c[C>>2]|0)+(c[r>>2]<<1)+((S(c[r>>2]|0,c[q>>2]|0)|0)*3|0)+16;c[B>>2]=wf(1,c[D>>2]|0)|0;if(!(c[B>>2]|0)){c[k>>2]=46964;E=c[k>>2]|0;l=j;return E|0}c[u>>2]=16-(c[B>>2]&15)&15;c[v>>2]=(c[B>>2]|0)+(c[u>>2]|0);c[z>>2]=(c[v>>2]|0)+(c[C>>2]|0);c[A>>2]=(c[z>>2]|0)+(c[r>>2]|0);c[w>>2]=(c[A>>2]|0)+(c[r>>2]|0);c[x>>2]=(c[w>>2]|0)+(S(c[q>>2]|0,c[r>>2]|0)|0);c[y>>2]=(c[x>>2]|0)+(S(c[q>>2]|0,c[r>>2]|0)|0);if(ub[c[n>>2]&63](c[v>>2]|0,32,16)|0){vf(c[B>>2]|0);c[k>>2]=46990;E=c[k>>2]|0;l=j;return E|0}Uw(c[z>>2]|0,-45,c[r>>2]|0)|0;Uw(c[A>>2]|0,-45,c[r>>2]|0)|0;c[t>>2]=0;while(1){if((c[t>>2]|0)>=(c[r>>2]|0))break;a[(c[w>>2]|0)+(c[t>>2]|0)>>0]=c[t>>2];c[t>>2]=(c[t>>2]|0)+1}ub[c[o>>2]&63](c[v>>2]|0,c[y>>2]|0,c[z>>2]|0)|0;vr(c[z>>2]|0,c[y>>2]|0,c[w>>2]|0,c[r>>2]|0);vb[c[p>>2]&15](c[v>>2]|0,c[A>>2]|0,c[x>>2]|0,c[y>>2]|0,1);if(Jv(c[x>>2]|0,c[w>>2]|0,c[r>>2]|0)|0){vf(c[B>>2]|0);c[k>>2]=47053;E=c[k>>2]|0;l=j;return E|0}if(Jv(c[A>>2]|0,c[z>>2]|0,c[r>>2]|0)|0){vf(c[B>>2]|0);c[k>>2]=47053;E=c[k>>2]|0;l=j;return E|0}Uw(c[z>>2]|0,-26,c[r>>2]|0)|0;Uw(c[A>>2]|0,-26,c[r>>2]|0)|0;c[t>>2]=0;while(1){if((c[t>>2]|0)>=(S(c[q>>2]|0,c[r>>2]|0)|0))break;a[(c[w>>2]|0)+(c[t>>2]|0)>>0]=c[t>>2];c[t>>2]=(c[t>>2]|0)+1}c[t>>2]=0;while(1){if((c[t>>2]|0)>=(S(c[q>>2]|0,c[r>>2]|0)|0))break;ub[c[o>>2]&63](c[v>>2]|0,(c[y>>2]|0)+(c[t>>2]|0)|0,c[z>>2]|0)|0;vr(c[z>>2]|0,(c[y>>2]|0)+(c[t>>2]|0)|0,(c[w>>2]|0)+(c[t>>2]|0)|0,c[r>>2]|0);c[t>>2]=(c[t>>2]|0)+(c[r>>2]|0)}vb[c[p>>2]&15](c[v>>2]|0,c[A>>2]|0,c[x>>2]|0,c[y>>2]|0,c[q>>2]|0);if(Jv(c[x>>2]|0,c[w>>2]|0,S(c[q>>2]|0,c[r>>2]|0)|0)|0){vf(c[B>>2]|0);c[k>>2]=47053;E=c[k>>2]|0;l=j;return E|0}q=(Jv(c[A>>2]|0,c[z>>2]|0,c[r>>2]|0)|0)!=0;vf(c[B>>2]|0);if(q){c[k>>2]=47053;E=c[k>>2]|0;l=j;return E|0}else{c[k>>2]=0;E=c[k>>2]|0;l=j;return E|0}return 0}function vr(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;h=l;l=l+48|0;if((l|0)>=(m|0))$(48);i=h+40|0;j=h+36|0;k=h+32|0;n=h+28|0;o=h+24|0;p=h+20|0;q=h+16|0;r=h+12|0;s=h+8|0;t=h+4|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[n>>2]=g;c[o>>2]=c[i>>2];c[p>>2]=c[j>>2];c[q>>2]=c[k>>2];c[h>>2]=3;if(!((c[q>>2]|c[o>>2]|c[p>>2])&3)){c[r>>2]=c[o>>2];c[s>>2]=c[p>>2];c[t>>2]=c[q>>2];while(1){if((c[n>>2]|0)>>>0<4)break;k=c[t>>2]|0;c[t>>2]=k+4;j=c[k>>2]|0;k=c[s>>2]|0;c[s>>2]=k+4;i=c[k>>2]^j;c[k>>2]=i;k=c[r>>2]|0;c[r>>2]=k+4;c[k>>2]=i;c[n>>2]=(c[n>>2]|0)-4}c[o>>2]=c[r>>2];c[p>>2]=c[s>>2];c[q>>2]=c[t>>2]}while(1){if(!(c[n>>2]|0))break;t=c[q>>2]|0;c[q>>2]=t+1;s=d[t>>0]|0;t=c[p>>2]|0;c[p>>2]=t+1;r=((d[t>>0]|0)^s)&255;a[t>>0]=r;t=c[o>>2]|0;c[o>>2]=t+1;a[t>>0]=r;c[n>>2]=(c[n>>2]|0)+-1}l=h;return}function wr(b,e,f,g,h,i,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;k=l;l=l+96|0;if((l|0)>=(m|0))$(96);n=k+84|0;o=k+76|0;p=k+72|0;q=k+68|0;r=k+64|0;s=k+60|0;t=k+56|0;u=k+52|0;v=k+48|0;w=k+44|0;x=k+40|0;y=k+36|0;z=k+32|0;A=k+28|0;B=k+24|0;C=k+20|0;D=k+16|0;E=k+12|0;F=k+8|0;G=k+4|0;H=k;c[k+80>>2]=b;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=j;c[G>>2]=(c[t>>2]|0)+15;c[G>>2]=(c[G>>2]|0)-(c[G>>2]&15);c[H>>2]=(c[G>>2]|0)+(c[s>>2]<<1)+((S(c[s>>2]|0,c[r>>2]|0)|0)<<2)+16;c[F>>2]=wf(1,c[H>>2]|0)|0;if(!(c[F>>2]|0)){c[n>>2]=46964;I=c[n>>2]|0;l=k;return I|0}c[w>>2]=16-(c[F>>2]&15)&15;c[y>>2]=(c[F>>2]|0)+(c[w>>2]|0);c[D>>2]=(c[y>>2]|0)+(c[G>>2]|0);c[E>>2]=(c[D>>2]|0)+(c[s>>2]|0);c[z>>2]=(c[E>>2]|0)+(c[s>>2]|0);c[A>>2]=(c[z>>2]|0)+(S(c[r>>2]|0,c[s>>2]|0)|0);c[B>>2]=(c[A>>2]|0)+(S(c[r>>2]|0,c[s>>2]|0)|0);c[C>>2]=(c[B>>2]|0)+(S(c[r>>2]|0,c[s>>2]|0)|0);if(ub[c[o>>2]&63](c[y>>2]|0,48,16)|0){vf(c[F>>2]|0);c[n>>2]=46990;I=c[n>>2]|0;l=k;return I|0}Uw(c[D>>2]|0,-1,c[s>>2]|0)|0;c[u>>2]=0;while(1){if((c[u>>2]|0)>=(c[s>>2]|0))break;a[(c[z>>2]|0)+(c[u>>2]|0)>>0]=c[u>>2];c[u>>2]=(c[u>>2]|0)+1}ub[c[p>>2]&63](c[y>>2]|0,c[B>>2]|0,c[D>>2]|0)|0;c[u>>2]=0;while(1){if((c[u>>2]|0)>=(c[s>>2]|0))break;o=(c[B>>2]|0)+(c[u>>2]|0)|0;a[o>>0]=d[o>>0]^d[(c[z>>2]|0)+(c[u>>2]|0)>>0];c[u>>2]=(c[u>>2]|0)+1}c[u>>2]=c[s>>2];while(1){if((c[u>>2]|0)<=0)break;o=(c[D>>2]|0)+((c[u>>2]|0)-1)|0;a[o>>0]=(a[o>>0]|0)+1<<24>>24;if(a[(c[D>>2]|0)+((c[u>>2]|0)-1)>>0]|0)break;c[u>>2]=(c[u>>2]|0)+-1}Uw(c[E>>2]|0,-1,c[s>>2]|0)|0;vb[c[q>>2]&15](c[y>>2]|0,c[E>>2]|0,c[A>>2]|0,c[B>>2]|0,1);if(Jv(c[A>>2]|0,c[z>>2]|0,c[s>>2]|0)|0){vf(c[F>>2]|0);c[n>>2]=47102;I=c[n>>2]|0;l=k;return I|0}if(Jv(c[E>>2]|0,c[D>>2]|0,c[s>>2]|0)|0){vf(c[F>>2]|0);c[n>>2]=47102;I=c[n>>2]|0;l=k;return I|0}Uw(c[D>>2]|0,87,(c[s>>2]|0)-4|0)|0;a[(c[D>>2]|0)+((c[s>>2]|0)-1)>>0]=1;a[(c[D>>2]|0)+((c[s>>2]|0)-2)>>0]=0;a[(c[D>>2]|0)+((c[s>>2]|0)-3)>>0]=0;a[(c[D>>2]|0)+((c[s>>2]|0)-4)>>0]=0;Uw(c[E>>2]|0,87,(c[s>>2]|0)-4|0)|0;a[(c[E>>2]|0)+((c[s>>2]|0)-1)>>0]=1;a[(c[E>>2]|0)+((c[s>>2]|0)-2)>>0]=0;a[(c[E>>2]|0)+((c[s>>2]|0)-3)>>0]=0;a[(c[E>>2]|0)+((c[s>>2]|0)-4)>>0]=0;c[u>>2]=0;while(1){if((c[u>>2]|0)>=(S(c[s>>2]|0,c[r>>2]|0)|0))break;o=c[u>>2]&255;a[(c[z>>2]|0)+(c[u>>2]|0)>>0]=o;a[(c[A>>2]|0)+(c[u>>2]|0)>>0]=o;c[u>>2]=(c[u>>2]|0)+1}c[u>>2]=0;while(1){if((c[u>>2]|0)>=(S(c[s>>2]|0,c[r>>2]|0)|0))break;ub[c[p>>2]&63](c[y>>2]|0,(c[B>>2]|0)+(c[u>>2]|0)|0,c[D>>2]|0)|0;c[v>>2]=0;while(1){if((c[v>>2]|0)>=(c[s>>2]|0))break;o=(c[B>>2]|0)+((c[u>>2]|0)+(c[v>>2]|0))|0;a[o>>0]=d[o>>0]^d[(c[z>>2]|0)+((c[u>>2]|0)+(c[v>>2]|0))>>0];c[v>>2]=(c[v>>2]|0)+1}c[v>>2]=c[s>>2];while(1){if((c[v>>2]|0)<=0)break;o=(c[D>>2]|0)+((c[v>>2]|0)-1)|0;a[o>>0]=(a[o>>0]|0)+1<<24>>24;if(a[(c[D>>2]|0)+((c[v>>2]|0)-1)>>0]|0)break;c[v>>2]=(c[v>>2]|0)+-1}c[u>>2]=(c[u>>2]|0)+(c[s>>2]|0)}vb[c[q>>2]&15](c[y>>2]|0,c[E>>2]|0,c[C>>2]|0,c[A>>2]|0,c[r>>2]|0);if(Jv(c[C>>2]|0,c[B>>2]|0,S(c[s>>2]|0,c[r>>2]|0)|0)|0){vf(c[F>>2]|0);c[n>>2]=47102;I=c[n>>2]|0;l=k;return I|0}if(Jv(c[E>>2]|0,c[D>>2]|0,c[s>>2]|0)|0){vf(c[F>>2]|0);c[n>>2]=47102;I=c[n>>2]|0;l=k;return I|0}c[x>>2]=0;while(1){if((c[x>>2]|0)>=(c[r>>2]|0)){J=56;break}Uw(c[D>>2]|0,-1,c[s>>2]|0)|0;C=(c[D>>2]|0)+((c[s>>2]|0)-1)|0;a[C>>0]=(d[C>>0]|0)-(c[x>>2]|0);a[(c[D>>2]|0)+1>>0]=0;a[c[D>>2]>>0]=0;a[(c[D>>2]|0)+2>>0]=7;c[u>>2]=0;while(1){if((c[u>>2]|0)>=(S(c[s>>2]|0,c[r>>2]|0)|0))break;a[(c[z>>2]|0)+(c[u>>2]|0)>>0]=c[u>>2];c[u>>2]=(c[u>>2]|0)+1}c[u>>2]=0;while(1){if((c[u>>2]|0)>=(S(c[s>>2]|0,c[r>>2]|0)|0))break;ub[c[p>>2]&63](c[y>>2]|0,(c[B>>2]|0)+(c[u>>2]|0)|0,c[D>>2]|0)|0;c[v>>2]=0;while(1){if((c[v>>2]|0)>=(c[s>>2]|0))break;C=(c[B>>2]|0)+((c[u>>2]|0)+(c[v>>2]|0))|0;a[C>>0]=d[C>>0]^d[(c[z>>2]|0)+((c[u>>2]|0)+(c[v>>2]|0))>>0];c[v>>2]=(c[v>>2]|0)+1}c[v>>2]=c[s>>2];while(1){if((c[v>>2]|0)<=0)break;C=(c[D>>2]|0)+((c[v>>2]|0)-1)|0;a[C>>0]=(a[C>>0]|0)+1<<24>>24;if(a[(c[D>>2]|0)+((c[v>>2]|0)-1)>>0]|0)break;c[v>>2]=(c[v>>2]|0)+-1}c[u>>2]=(c[u>>2]|0)+(c[s>>2]|0)}Uw(c[E>>2]|0,-1,c[s>>2]|0)|0;C=(c[E>>2]|0)+((c[s>>2]|0)-1)|0;a[C>>0]=(d[C>>0]|0)-(c[x>>2]|0);a[(c[E>>2]|0)+1>>0]=0;a[c[E>>2]>>0]=0;a[(c[E>>2]|0)+2>>0]=7;vb[c[q>>2]&15](c[y>>2]|0,c[E>>2]|0,c[A>>2]|0,c[B>>2]|0,c[r>>2]|0);if(Jv(c[A>>2]|0,c[z>>2]|0,S(c[s>>2]|0,c[r>>2]|0)|0)|0){J=52;break}if(Jv(c[E>>2]|0,c[D>>2]|0,c[s>>2]|0)|0){J=54;break}c[x>>2]=(c[x>>2]|0)+1}if((J|0)==52){vf(c[F>>2]|0);c[n>>2]=47102;I=c[n>>2]|0;l=k;return I|0}else if((J|0)==54){vf(c[F>>2]|0);c[n>>2]=47102;I=c[n>>2]|0;l=k;return I|0}else if((J|0)==56){vf(c[F>>2]|0);c[n>>2]=0;I=c[n>>2]|0;l=k;return I|0}return 0}function xr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0;d=l;l=l+352|0;if((l|0)>=(m|0))$(352);e=d+160|0;f=d+128|0;g=d+48|0;h=d+40|0;i=d+32|0;j=d+24|0;k=d+16|0;n=d+8|0;o=d;p=d+344|0;q=d+340|0;r=d+336|0;s=d+332|0;t=d+328|0;u=d+284|0;v=d+224|0;w=d+220|0;x=d+216|0;y=d+212|0;z=d+208|0;A=d+204|0;B=d+200|0;C=d+196|0;D=d+192|0;E=d+188|0;F=d+184|0;G=d+180|0;H=d+176|0;I=d+172|0;J=d+168|0;K=d+164|0;c[q>>2]=a;c[r>>2]=b;c[w>>2]=0;c[x>>2]=0;c[y>>2]=0;c[z>>2]=0;c[A>>2]=0;c[C>>2]=0;c[D>>2]=0;c[E>>2]=0;c[F>>2]=0;c[G>>2]=0;c[H>>2]=0;c[I>>2]=0;b=u;a=b+44|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(a|0));b=v;a=b+60|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(a|0));c[s>>2]=Gj(c[q>>2]|0,t)|0;if(c[s>>2]|0){c[p>>2]=c[s>>2];L=c[p>>2]|0;l=d;return L|0}c[B>>2]=Tf(c[q>>2]|0,47218,0)|0;if(c[B>>2]|0?(c[A>>2]=_f(c[B>>2]|0,1)|0,Rf(c[B>>2]|0),(c[A>>2]|0)==0):0){c[p>>2]=65;L=c[p>>2]|0;l=d;return L|0}c[B>>2]=Tf(c[q>>2]|0,47178,0)|0;if(!(c[B>>2]|0?(c[s>>2]=Fj(c[B>>2]|0,I,0)|0,Rf(c[B>>2]|0),(c[s>>2]|0)!=0):0))M=8;do if((M|0)==8){c[B>>2]=Tf(c[q>>2]|0,48942,0)|0;if(c[B>>2]|0){c[I>>2]=c[I>>2]|32;Rf(c[B>>2]|0)}if(!((c[t>>2]|0)!=0|(c[A>>2]|0)!=0)){c[p>>2]=68;L=c[p>>2]|0;l=d;return L|0}c[s>>2]=Qh(c[t>>2]|0,c[A>>2]|0,u,t)|0;vf(c[A>>2]|0);c[A>>2]=0;if(!(c[s>>2]|0)){if(Ff(1)|0){b=vi(c[u>>2]|0)|0;a=wi(c[u+4>>2]|0)|0;c[o>>2]=b;c[o+4>>2]=a;Ye(48956,o);if(c[u+40>>2]|0){c[n>>2]=c[u+40>>2];Ye(48981,n)}af(49003,c[u+8>>2]|0);af(49019,c[u+12>>2]|0);af(49035,c[u+16>>2]|0);af(49051,c[u+32>>2]|0);af(49067,c[u+36>>2]|0);sn(49083,u+20|0,0)}c[C>>2]=En(c[u>>2]|0,c[u+4>>2]|0,0,c[u+8>>2]|0,c[u+12>>2]|0,c[u+16>>2]|0)|0;a=c[C>>2]|0;b=c[I>>2]|0;if(c[I>>2]&4096|0)c[s>>2]=ki(v,u,a,b)|0;else c[s>>2]=Ir(v,u,a,b,c[t>>2]|0,y,z)|0;if(!(c[s>>2]|0)){c[w>>2]=Rp(0)|0;c[x>>2]=Rp(0)|0;if(tn(c[w>>2]|0,c[x>>2]|0,v+20|0,c[C>>2]|0)|0){c[k>>2]=49145;We(49097,k)}c[F>>2]=xi(c[w>>2]|0,c[x>>2]|0,c[v+8>>2]|0)|0;do if((c[v+4>>2]|0)==1?!(c[I>>2]&2048|0):0){c[s>>2]=ci(v+44|0,c[C>>2]|0,c[w>>2]|0,c[x>>2]|0,((c[I>>2]&1024|0)!=0^1^1)&1,J,K)|0;if(!(c[s>>2]|0)){c[G>>2]=Rp(0)|0;Ep(c[G>>2]|0,c[J>>2]|0,c[K>>2]<<3)|0;c[J>>2]=0;break}c[p>>2]=c[s>>2];L=c[p>>2]|0;l=d;return L|0}else M=28;while(0);if((M|0)==28){if((c[y>>2]|0)==0?(c[y>>2]=Rp(0)|0,c[z>>2]=Rp(0)|0,tn(c[y>>2]|0,c[z>>2]|0,v+44|0,c[C>>2]|0)|0):0){c[j>>2]=49147;We(49097,j)}c[G>>2]=xi(c[y>>2]|0,c[z>>2]|0,c[v+8>>2]|0)|0}c[H>>2]=c[v+56>>2];c[v+56>>2]=0;if(c[u+40>>2]|0?(c[i>>2]=c[u+40>>2],c[s>>2]=cg(D,0,49149,i)|0,c[s>>2]|0):0)break;if(!(!(c[I>>2]&512|0)?!(c[I>>2]&4096|0):0)){if(c[I>>2]&512|0?c[I>>2]&4096|0:0)N=49188;else N=c[I>>2]&512|0?49160:49174;c[s>>2]=cg(E,0,N,h)|0;if(c[s>>2]|0)break}if(c[I>>2]&512|0?c[u+40>>2]|0:0){b=c[r>>2]|0;a=c[E>>2]|0;O=c[v+8>>2]|0;P=c[v+12>>2]|0;Q=c[v+16>>2]|0;R=c[F>>2]|0;S=c[v+32>>2]|0;T=c[v+36>>2]|0;U=c[G>>2]|0;V=c[D>>2]|0;W=c[E>>2]|0;X=c[v+8>>2]|0;Y=c[v+12>>2]|0;Z=c[v+16>>2]|0;_=c[F>>2]|0;aa=c[v+32>>2]|0;ba=c[v+36>>2]|0;ca=c[G>>2]|0;da=c[H>>2]|0;c[g>>2]=c[D>>2];c[g+4>>2]=a;c[g+8>>2]=O;c[g+12>>2]=P;c[g+16>>2]=Q;c[g+20>>2]=R;c[g+24>>2]=S;c[g+28>>2]=T;c[g+32>>2]=U;c[g+36>>2]=V;c[g+40>>2]=W;c[g+44>>2]=X;c[g+48>>2]=Y;c[g+52>>2]=Z;c[g+56>>2]=_;c[g+60>>2]=aa;c[g+64>>2]=ba;c[g+68>>2]=ca;c[g+72>>2]=da;c[s>>2]=cg(b,0,49208,g)|0}else{b=c[r>>2]|0;da=c[E>>2]|0;ca=c[G>>2]|0;ba=c[D>>2]|0;aa=c[E>>2]|0;_=c[G>>2]|0;Z=c[H>>2]|0;c[f>>2]=c[D>>2];c[f+4>>2]=da;c[f+8>>2]=ca;c[f+12>>2]=ba;c[f+16>>2]=aa;c[f+20>>2]=_;c[f+24>>2]=Z;c[s>>2]=cg(b,0,49344,f)|0}if(((c[s>>2]|0)==0?Ff(1)|0:0)?(af(49420,c[v+8>>2]|0),af(49436,c[v+12>>2]|0),af(49452,c[v+16>>2]|0),af(49468,c[F>>2]|0),af(49484,c[v+32>>2]|0),af(49500,c[v+36>>2]|0),af(49516,c[G>>2]|0),af(49532,c[H>>2]|0),c[I>>2]&4096|0):0)Ye(49548,e)}}}while(0);Dp(c[H>>2]|0);Dp(c[G>>2]|0);Dp(c[F>>2]|0);si(v);An(v+44|0);Dp(c[v+56>>2]|0);si(u);Dp(c[w>>2]|0);Dp(c[x>>2]|0);Dp(c[y>>2]|0);Dp(c[z>>2]|0);In(c[C>>2]|0);Rf(c[E>>2]|0);Rf(c[D>>2]|0);c[p>>2]=c[s>>2];L=c[p>>2]|0;l=d;return L|0}function yr(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;b=l;l=l+176|0;if((l|0)>=(m|0))$(176);d=b+72|0;e=b+64|0;f=b+56|0;g=b+40|0;h=b;i=b+168|0;j=b+164|0;k=b+160|0;n=b+156|0;o=b+152|0;p=b+148|0;q=b+144|0;r=b+140|0;s=b+80|0;t=b+76|0;c[j>>2]=a;c[n>>2]=0;c[o>>2]=0;c[p>>2]=0;c[q>>2]=0;c[r>>2]=0;c[t>>2]=0;a=s;u=a+60|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(u|0));c[n>>2]=Tf(c[j>>2]|0,47178,0)|0;if(!(c[n>>2]|0?(c[k>>2]=Fj(c[n>>2]|0,o,0)|0,(c[k>>2]|0)!=0):0))v=3;do if((v|0)==3){a=c[j>>2]|0;if(c[o>>2]&512|0){c[h>>2]=s+8;c[h+4>>2]=s+12;c[h+8>>2]=s+16;c[h+12>>2]=q;c[h+16>>2]=s+32;c[h+20>>2]=s+36;c[h+24>>2]=r;c[h+28>>2]=s+56;c[h+32>>2]=0;c[k>>2]=lg(a,0,47535,h)|0}else{c[g>>2]=r;c[g+4>>2]=s+56;c[g+8>>2]=0;c[k>>2]=lg(a,0,47554,g)|0}if(!(c[k>>2]|0)){Rf(c[n>>2]|0);c[n>>2]=Tf(c[j>>2]|0,47218,5)|0;if((c[n>>2]|0?(c[p>>2]=_f(c[n>>2]|0,1)|0,c[p>>2]|0):0)?(c[k>>2]=Th(c[p>>2]|0,s,s+4|0,s+8|0,s+12|0,s+16|0,q,s+32|0,s+36|0)|0,c[k>>2]|0):0){c[i>>2]=c[k>>2];w=c[i>>2]|0;l=b;return w|0}if(c[q>>2]|0?(yn(s+20|0),c[k>>2]=zi(s+20|0,c[q>>2]|0)|0,c[k>>2]|0):0)break;if(!(c[p>>2]|0)){c[s>>2]=c[o>>2]&4096|0?2:0;c[s+4>>2]=c[o>>2]&4096|0?1:0}if(Ff(1)|0){a=vi(c[s>>2]|0)|0;u=wi(c[s+4>>2]|0)|0;c[f>>2]=a;c[f+4>>2]=u;Ye(48463,f);if(c[s+40>>2]|0){c[e>>2]=c[s+40>>2];Ye(48487,e)}af(48508,c[s+8>>2]|0);af(48524,c[s+12>>2]|0);af(48540,c[s+16>>2]|0);sn(48556,s+20|0,0);af(48570,c[s+32>>2]|0);af(48586,c[s+36>>2]|0);af(48602,c[r>>2]|0);if(!(Wg()|0))af(48618,c[s+56>>2]|0)}if((((((c[s+8>>2]|0?c[s+12>>2]|0:0)?c[s+16>>2]|0:0)?c[s+20>>2]|0:0)?c[s+32>>2]|0:0)?c[s+36>>2]|0:0)?c[s+56>>2]|0:0){c[t>>2]=En(c[s>>2]|0,c[s+4>>2]|0,0,c[s+8>>2]|0,c[s+12>>2]|0,c[s+16>>2]|0)|0;if(!(c[r>>2]|0)){c[k>>2]=68;break}yn(s+44|0);if((c[(c[t>>2]|0)+4>>2]|0)==1)c[k>>2]=hi(c[r>>2]|0,c[t>>2]|0,s+44|0,0,0)|0;else c[k>>2]=zi(s+44|0,c[r>>2]|0)|0;if(c[k>>2]|0)break;if(!(Hr(s,c[t>>2]|0,c[o>>2]|0)|0))break;c[k>>2]=7;break}c[k>>2]=68}}while(0);In(c[t>>2]|0);Tp(c[s+8>>2]|0);Tp(c[s+12>>2]|0);Tp(c[s+16>>2]|0);Tp(c[q>>2]|0);An(s+20|0);Tp(c[s+32>>2]|0);Tp(c[s+36>>2]|0);Tp(c[r>>2]|0);An(s+44|0);Tp(c[s+56>>2]|0);vf(c[p>>2]|0);Rf(c[n>>2]|0);if(Ff(1)|0){c[d>>2]=Bt(c[k>>2]|0)|0;Ye(48634,d)}c[i>>2]=c[k>>2];w=c[i>>2]|0;l=b;return w|0}function zr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;e=l;l=l+256|0;if((l|0)>=(m|0))$(256);f=e+72|0;g=e+64|0;h=e+56|0;i=e+48|0;j=e+40|0;k=e+32|0;n=e;o=e+248|0;p=e+244|0;q=e+240|0;r=e+236|0;s=e+232|0;t=e+192|0;u=e+184|0;v=e+180|0;w=e+176|0;x=e+172|0;y=e+168|0;z=e+164|0;A=e+160|0;B=e+104|0;C=e+96|0;D=e+84|0;E=e+80|0;F=e+76|0;c[p>>2]=a;c[q>>2]=b;c[r>>2]=d;c[u>>2]=0;c[v>>2]=0;c[w>>2]=0;c[x>>2]=0;c[y>>2]=0;c[z>>2]=0;c[A>>2]=0;c[C>>2]=0;d=B;b=d+56|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(b|0));Lj(t,0,Dr(c[r>>2]|0)|0);c[s>>2]=Nj(c[q>>2]|0,A,t)|0;do if(!(c[s>>2]|0)){if(Ff(1)|0)af(48123,c[A>>2]|0);if(c[A>>2]|0?c[(c[A>>2]|0)+12>>2]&4|0:0){c[s>>2]=79;break}q=c[r>>2]|0;c[n>>2]=B+8;c[n+4>>2]=B+12;c[n+8>>2]=B+16;c[n+12>>2]=w;c[n+16>>2]=B+32;c[n+20>>2]=B+36;c[n+24>>2]=x;c[n+28>>2]=0;c[s>>2]=lg(q,0,48140,n)|0;if(!(c[s>>2]|0)){if(c[w>>2]|0?(yn(B+20|0),c[s>>2]=zi(B+20|0,c[w>>2]|0)|0,c[s>>2]|0):0)break;Rf(c[u>>2]|0);c[u>>2]=Tf(c[r>>2]|0,47218,5)|0;if((c[u>>2]|0?(c[v>>2]=_f(c[u>>2]|0,1)|0,c[v>>2]|0):0)?(c[s>>2]=Qh(0,c[v>>2]|0,B,0)|0,c[s>>2]|0):0){c[o>>2]=c[s>>2];G=c[o>>2]|0;l=e;return G|0}if(!(c[v>>2]|0)){c[B>>2]=0;c[B+4>>2]=0}if(Ff(1)|0){q=vi(c[B>>2]|0)|0;d=wi(c[B+4>>2]|0)|0;c[k>>2]=q;c[k+4>>2]=d;Ye(48156,k);if(c[B+40>>2]|0){c[j>>2]=c[B+40>>2];Ye(48181,j)}af(48203,c[B+8>>2]|0);af(48220,c[B+12>>2]|0);af(48237,c[B+16>>2]|0);sn(48254,B+20|0,0);af(48269,c[B+32>>2]|0);af(48286,c[B+36>>2]|0);af(48303,c[x>>2]|0)}if(((((c[B+8>>2]|0?c[B+12>>2]|0:0)?c[B+16>>2]|0:0)?c[B+20>>2]|0:0)?c[B+32>>2]|0:0)?(c[B+36>>2]|0)!=0&(c[x>>2]|0)!=0:0){if(c[x>>2]|0?(yn(B+44|0),c[s>>2]=zi(B+44|0,c[x>>2]|0)|0,c[s>>2]|0):0)break;c[C>>2]=En(c[B>>2]|0,c[B+4>>2]|0,0,c[B+8>>2]|0,c[B+12>>2]|0,c[B+16>>2]|0)|0;c[E>>2]=Rp(0)|0;c[F>>2]=Rp(0)|0;yn(D);$n(D,c[A>>2]|0,B+44|0,c[C>>2]|0);if(tn(c[E>>2]|0,c[F>>2]|0,D,c[C>>2]|0)|0)We(48320,i);c[y>>2]=xi(c[E>>2]|0,c[F>>2]|0,c[B+8>>2]|0)|0;$n(D,c[A>>2]|0,B+20|0,c[C>>2]|0);if(tn(c[E>>2]|0,c[F>>2]|0,D,c[C>>2]|0)|0)We(48368,h);else{c[z>>2]=xi(c[E>>2]|0,c[F>>2]|0,c[B+8>>2]|0)|0;Dp(c[E>>2]|0);Dp(c[F>>2]|0);An(D);d=c[p>>2]|0;q=c[z>>2]|0;c[g>>2]=c[y>>2];c[g+4>>2]=q;c[s>>2]=cg(d,0,48415,g)|0;break}}c[s>>2]=68}}while(0);Tp(c[B+8>>2]|0);Tp(c[B+12>>2]|0);Tp(c[B+16>>2]|0);Tp(c[w>>2]|0);An(B+20|0);Tp(c[B+32>>2]|0);Tp(c[B+36>>2]|0);Tp(c[x>>2]|0);An(B+44|0);Tp(c[A>>2]|0);Tp(c[y>>2]|0);Tp(c[z>>2]|0);vf(c[v>>2]|0);In(c[C>>2]|0);Mj(t);if(Ff(1)|0){c[f>>2]=Bt(c[s>>2]|0)|0;Ye(48441,f)}c[o>>2]=c[s>>2];G=c[o>>2]|0;l=e;return G|0}function Ar(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;e=l;l=l+256|0;if((l|0)>=(m|0))$(256);f=e+72|0;g=e+64|0;h=e+56|0;i=e+48|0;j=e+40|0;k=e+8|0;n=e;o=e+248|0;p=e+244|0;q=e+240|0;r=e+236|0;s=e+232|0;t=e+192|0;u=e+188|0;v=e+184|0;w=e+124|0;x=e+120|0;y=e+116|0;z=e+112|0;A=e+100|0;B=e+88|0;C=e+84|0;D=e+80|0;E=e+76|0;c[p>>2]=a;c[q>>2]=b;c[r>>2]=d;c[u>>2]=0;c[v>>2]=0;c[x>>2]=0;c[y>>2]=0;c[z>>2]=0;c[C>>2]=0;d=w;b=d+60|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(b|0));yn(A);yn(B);Lj(t,1,Dr(c[r>>2]|0)|0);c[s>>2]=Jj(c[q>>2]|0,12976,u,t)|0;do if((c[s>>2]|0)==0?(q=c[u>>2]|0,c[n>>2]=v,c[n+4>>2]=0,c[s>>2]=lg(q,0,47834,n)|0,(c[s>>2]|0)==0):0){if(Ff(1)|0)af(47836,c[v>>2]|0);if(c[v>>2]|0?c[(c[v>>2]|0)+12>>2]&4|0:0){c[s>>2]=79;break}q=c[r>>2]|0;c[k>>2]=w+8;c[k+4>>2]=w+12;c[k+8>>2]=w+16;c[k+12>>2]=x;c[k+16>>2]=w+32;c[k+20>>2]=w+36;c[k+24>>2]=w+56;c[k+28>>2]=0;c[s>>2]=lg(q,0,47853,k)|0;if(!(c[s>>2]|0)){if(c[x>>2]|0?(yn(w+20|0),c[s>>2]=zi(w+20|0,c[x>>2]|0)|0,c[s>>2]|0):0)break;Rf(c[u>>2]|0);c[u>>2]=Tf(c[r>>2]|0,47218,5)|0;if((c[u>>2]|0?(c[y>>2]=_f(c[u>>2]|0,1)|0,c[y>>2]|0):0)?(c[s>>2]=Qh(0,c[y>>2]|0,w,0)|0,c[s>>2]|0):0){c[o>>2]=c[s>>2];F=c[o>>2]|0;l=e;return F|0}if(!(c[y>>2]|0)){c[w>>2]=0;c[w+4>>2]=0}if(Ff(1)|0){q=vi(c[w>>2]|0)|0;d=wi(c[w+4>>2]|0)|0;c[j>>2]=q;c[j+4>>2]=d;Ye(47869,j);if(c[w+40>>2]|0){c[i>>2]=c[w+40>>2];Ye(47894,i)}af(47916,c[w+8>>2]|0);af(47933,c[w+12>>2]|0);af(47950,c[w+16>>2]|0);sn(47967,w+20|0,0);af(47982,c[w+32>>2]|0);af(47999,c[w+36>>2]|0);if(!(Wg()|0))af(48016,c[w+56>>2]|0)}if((((((c[w+8>>2]|0?c[w+12>>2]|0:0)?c[w+16>>2]|0:0)?c[w+20>>2]|0:0)?c[w+32>>2]|0:0)?c[w+36>>2]|0:0)?c[w+56>>2]|0:0){c[s>>2]=zi(A,c[v>>2]|0)|0;if(c[s>>2]|0){An(A);c[o>>2]=c[s>>2];F=c[o>>2]|0;l=e;return F|0}c[z>>2]=En(c[w>>2]|0,c[w+4>>2]|0,0,c[w+8>>2]|0,c[w+12>>2]|0,c[w+16>>2]|0)|0;$n(B,c[w+56>>2]|0,A,c[z>>2]|0);c[D>>2]=Rp(0)|0;c[E>>2]=Rp(0)|0;if(tn(c[D>>2]|0,c[E>>2]|0,B,c[z>>2]|0)|0)We(48033,h);c[C>>2]=xi(c[D>>2]|0,c[E>>2]|0,c[w+8>>2]|0)|0;if(c[C>>2]|0)c[s>>2]=0;else c[s>>2]=Et()|0;Dp(c[D>>2]|0);Dp(c[E>>2]|0);if(Ff(1)|0)af(48073,c[C>>2]|0);if(c[s>>2]|0)break;d=c[p>>2]|0;c[g>>2]=c[C>>2];c[s>>2]=cg(d,0,48090,g)|0;break}c[s>>2]=68}}while(0);An(B);An(A);Tp(c[C>>2]|0);Tp(c[w+8>>2]|0);Tp(c[w+12>>2]|0);Tp(c[w+16>>2]|0);Tp(c[x>>2]|0);An(w+20|0);Tp(c[w+32>>2]|0);Tp(c[w+36>>2]|0);Tp(c[w+56>>2]|0);Tp(c[v>>2]|0);vf(c[y>>2]|0);Rf(c[u>>2]|0);In(c[z>>2]|0);Mj(t);if(Ff(1)|0){c[f>>2]=Bt(c[s>>2]|0)|0;Ye(48101,f)}c[o>>2]=c[s>>2];F=c[o>>2]|0;l=e;return F|0}function Br(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;e=l;l=l+272|0;if((l|0)>=(m|0))$(272);f=e+104|0;g=e+96|0;h=e+88|0;i=e+80|0;j=e+72|0;k=e+56|0;n=e+40|0;o=e;p=e+256|0;q=e+252|0;r=e+248|0;s=e+244|0;t=e+240|0;u=e+200|0;v=e+192|0;w=e+188|0;x=e+184|0;y=e+180|0;z=e+176|0;A=e+116|0;B=e+112|0;C=e+108|0;c[q>>2]=a;c[r>>2]=b;c[s>>2]=d;c[v>>2]=0;c[w>>2]=0;c[x>>2]=0;c[y>>2]=0;c[z>>2]=0;c[B>>2]=0;c[C>>2]=0;d=A;b=d+60|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(b|0));Lj(u,2,0);c[t>>2]=Nj(c[r>>2]|0,v,u)|0;do if(!(c[t>>2]|0)){if(Ff(1)|0)af(47519,c[v>>2]|0);r=c[s>>2]|0;if(c[u+12>>2]&512|0){c[o>>2]=A+8;c[o+4>>2]=A+12;c[o+8>>2]=A+16;c[o+12>>2]=y;c[o+16>>2]=A+32;c[o+20>>2]=A+36;c[o+24>>2]=z;c[o+28>>2]=A+56;c[o+32>>2]=0;c[t>>2]=lg(r,0,47535,o)|0}else{c[n>>2]=z;c[n+4>>2]=A+56;c[n+8>>2]=0;c[t>>2]=lg(r,0,47554,n)|0}if(!(c[t>>2]|0)){if(c[y>>2]|0?(yn(A+20|0),c[t>>2]=zi(A+20|0,c[y>>2]|0)|0,c[t>>2]|0):0)break;Rf(c[w>>2]|0);c[w>>2]=Tf(c[s>>2]|0,47218,5)|0;if((c[w>>2]|0?(c[x>>2]=_f(c[w>>2]|0,1)|0,c[x>>2]|0):0)?(c[t>>2]=Qh(0,c[x>>2]|0,A,0)|0,c[t>>2]|0):0){c[p>>2]=c[t>>2];D=c[p>>2]|0;l=e;return D|0}if(!(c[x>>2]|0)){c[A>>2]=c[u+12>>2]&4096|0?2:0;c[A+4>>2]=c[u+12>>2]&4096|0?1:0}if(Ff(1)|0){r=vi(c[A>>2]|0)|0;d=wi(c[A+4>>2]|0)|0;b=c[u+12>>2]&4096|0?47329:72319;c[k>>2]=r;c[k+4>>2]=d;c[k+8>>2]=b;Ye(47560,k);if(c[A+40>>2]|0){c[j>>2]=c[A+40>>2];Ye(47586,j)}af(47607,c[A+8>>2]|0);af(47623,c[A+12>>2]|0);af(47639,c[A+16>>2]|0);sn(47655,A+20|0,0);af(47669,c[A+32>>2]|0);af(47685,c[A+36>>2]|0);af(47701,c[z>>2]|0);if(!(Wg()|0))af(47717,c[A+56>>2]|0)}if((((((c[A+8>>2]|0?c[A+12>>2]|0:0)?c[A+16>>2]|0:0)?c[A+20>>2]|0:0)?c[A+32>>2]|0:0)?c[A+36>>2]|0:0)?c[A+56>>2]|0:0){c[B>>2]=Rp(0)|0;c[C>>2]=Rp(0)|0;if(c[u+12>>2]&4096|0){c[t>>2]=pi(c[v>>2]|0,A,c[B>>2]|0,c[C>>2]|0,c[u+16>>2]|0,c[z>>2]|0)|0;if(c[t>>2]|0)break;b=c[q>>2]|0;d=c[C>>2]|0;c[i>>2]=c[B>>2];c[i+4>>2]=d;c[t>>2]=cg(b,0,47733,i)|0;break}b=c[v>>2]|0;d=c[B>>2]|0;r=c[C>>2]|0;if(c[u+12>>2]&8192|0){c[t>>2]=yt(b,A,d,r)|0;if(c[t>>2]|0)break;a=c[q>>2]|0;E=c[C>>2]|0;c[h>>2]=c[B>>2];c[h+4>>2]=E;c[t>>2]=cg(a,0,47760,h)|0;break}else{c[t>>2]=wt(b,A,d,r,c[u+12>>2]|0,c[u+16>>2]|0)|0;if(c[t>>2]|0)break;r=c[q>>2]|0;d=c[C>>2]|0;c[g>>2]=c[B>>2];c[g+4>>2]=d;c[t>>2]=cg(r,0,47786,g)|0;break}}c[t>>2]=68}}while(0);Tp(c[A+8>>2]|0);Tp(c[A+12>>2]|0);Tp(c[A+16>>2]|0);Tp(c[y>>2]|0);An(A+20|0);Tp(c[A+32>>2]|0);Tp(c[A+36>>2]|0);Tp(c[z>>2]|0);An(A+44|0);Tp(c[A+56>>2]|0);Tp(c[B>>2]|0);Tp(c[C>>2]|0);vf(c[x>>2]|0);Tp(c[v>>2]|0);Rf(c[w>>2]|0);Mj(u);if(Ff(1)|0){c[f>>2]=Bt(c[t>>2]|0)|0;Ye(47813,f)}c[p>>2]=c[t>>2];D=c[p>>2]|0;l=e;return D|0}function Cr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;e=l;l=l+272|0;if((l|0)>=(m|0))$(272);f=e+80|0;g=e+72|0;h=e+56|0;i=e+48|0;j=e+16|0;k=e;n=e+256|0;o=e+252|0;p=e+248|0;q=e+244|0;r=e+240|0;s=e+200|0;t=e+192|0;u=e+188|0;v=e+184|0;w=e+180|0;x=e+176|0;y=e+172|0;z=e+168|0;A=e+112|0;B=e+104|0;C=e+100|0;D=e+96|0;E=e+92|0;F=e+88|0;G=e+84|0;c[o>>2]=a;c[p>>2]=b;c[q>>2]=d;c[t>>2]=0;c[u>>2]=0;c[v>>2]=0;c[w>>2]=0;c[x>>2]=0;c[y>>2]=0;c[z>>2]=0;d=A;b=d+56|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(b|0));Lj(s,3,Dr(c[q>>2]|0)|0);c[r>>2]=Nj(c[p>>2]|0,z,s)|0;a:do if(!(c[r>>2]|0)){if(Ff(1)|0)af(47261,c[z>>2]|0);c[r>>2]=Ij(c[o>>2]|0,12976,t,B)|0;if((c[r>>2]|0)==0?(p=c[t>>2]|0,d=c[B>>2]&4096|0?47277:47175,c[k>>2]=x,c[k+4>>2]=y,c[k+8>>2]=0,c[r>>2]=lg(p,0,d,k)|0,(c[r>>2]|0)==0):0){if(Ff(1)|0){af(47281,c[x>>2]|0);af(47297,c[y>>2]|0)}if(c[s+12>>2]&4096^c[B>>2]&4096|0){c[r>>2]=70;break}d=c[q>>2]|0;if(c[s+12>>2]&512|0){c[j>>2]=A+8;c[j+4>>2]=A+12;c[j+8>>2]=A+16;c[j+12>>2]=v;c[j+16>>2]=A+32;c[j+20>>2]=A+32;c[j+24>>2]=w;c[j+28>>2]=0;c[r>>2]=lg(d,0,47313,j)|0}else{c[i>>2]=w;c[i+4>>2]=0;c[r>>2]=lg(d,0,47213,i)|0}if(!(c[r>>2]|0)){if(c[v>>2]|0?(yn(A+20|0),c[r>>2]=zi(A+20|0,c[v>>2]|0)|0,c[r>>2]|0):0)break;Rf(c[t>>2]|0);c[t>>2]=Tf(c[q>>2]|0,47218,5)|0;if((c[t>>2]|0?(c[u>>2]=_f(c[t>>2]|0,1)|0,c[u>>2]|0):0)?(c[r>>2]=Qh(0,c[u>>2]|0,A,0)|0,c[r>>2]|0):0){c[n>>2]=c[r>>2];H=c[n>>2]|0;l=e;return H|0}if(!(c[u>>2]|0)){c[A>>2]=c[B>>2]&4096|0?2:0;c[A+4>>2]=c[B>>2]&4096|0?1:0}if(Ff(1)|0){d=vi(c[A>>2]|0)|0;p=wi(c[A+4>>2]|0)|0;b=c[B>>2]&4096|0?47329:72319;c[h>>2]=d;c[h+4>>2]=p;c[h+8>>2]=b;Ye(47336,h);if(c[A+40>>2]|0){c[g>>2]=c[A+40>>2];Ye(47362,g)}af(47383,c[A+8>>2]|0);af(47399,c[A+12>>2]|0);af(47415,c[A+16>>2]|0);sn(47431,A+20|0,0);af(47445,c[A+32>>2]|0);af(47461,c[A+36>>2]|0);af(47477,c[w>>2]|0)}if(((((c[A+8>>2]|0?c[A+12>>2]|0:0)?c[A+16>>2]|0:0)?c[A+20>>2]|0:0)?c[A+32>>2]|0:0)?(c[A+36>>2]|0)!=0&(c[w>>2]|0)!=0:0){if(c[B>>2]&4096|0){c[r>>2]=ri(c[z>>2]|0,A,c[x>>2]|0,c[y>>2]|0,c[s+16>>2]|0,c[w>>2]|0)|0;break}b=(c[B>>2]&8192|0)!=0;yn(A+44|0);if(b){c[r>>2]=zi(A+44|0,c[w>>2]|0)|0;if(c[r>>2]|0)break;c[r>>2]=zt(c[z>>2]|0,A,c[x>>2]|0,c[y>>2]|0)|0;break}if((c[A+4>>2]|0)==1){c[C>>2]=En(c[A>>2]|0,c[A+4>>2]|0,0,c[A+8>>2]|0,c[A+12>>2]|0,c[A+16>>2]|0)|0;c[r>>2]=hi(c[w>>2]|0,c[C>>2]|0,A+44|0,0,0)|0;In(c[C>>2]|0)}else c[r>>2]=zi(A+44|0,c[w>>2]|0)|0;if(c[r>>2]|0)break;do if(c[z>>2]|0){if(!(c[(c[z>>2]|0)+12>>2]&4))break;c[F>>2]=lo(c[A+32>>2]|0)|0;c[D>>2]=Gp(c[z>>2]|0,E)|0;c[r>>2]=Zo(G,5,c[D>>2]|0,(((c[E>>2]|0)+7|0)>>>0)/8|0,0)|0;if(c[r>>2]|0)break a;if((c[E>>2]|0)>>>0>(c[F>>2]|0)>>>0)so(c[G>>2]|0,c[G>>2]|0,(c[E>>2]|0)-(c[F>>2]|0)|0);c[r>>2]=xt(c[G>>2]|0,A,c[x>>2]|0,c[y>>2]|0)|0;Tp(c[G>>2]|0);break a}while(0);c[r>>2]=xt(c[z>>2]|0,A,c[x>>2]|0,c[y>>2]|0)|0;break}c[r>>2]=68}}}while(0);Tp(c[A+8>>2]|0);Tp(c[A+12>>2]|0);Tp(c[A+16>>2]|0);Tp(c[v>>2]|0);An(A+20|0);Tp(c[A+32>>2]|0);Tp(c[A+36>>2]|0);Tp(c[w>>2]|0);An(A+44|0);Tp(c[z>>2]|0);Tp(c[x>>2]|0);Tp(c[y>>2]|0);vf(c[u>>2]|0);Rf(c[t>>2]|0);Mj(s);if(Ff(1)|0){if(c[r>>2]|0)I=Bt(c[r>>2]|0)|0;else I=47493;c[f>>2]=I;Ye(47498,f)}c[n>>2]=c[r>>2];H=c[n>>2]|0;l=e;return H|0}function Dr(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=l;l=l+32|0;if((l|0)>=(m|0))$(32);d=b+20|0;e=b+16|0;f=b+12|0;g=b+8|0;h=b+4|0;i=b;c[e>>2]=a;c[h>>2]=0;c[f>>2]=Tf(c[e>>2]|0,47259,1)|0;if(c[f>>2]|0){c[g>>2]=$f(c[f>>2]|0,1,5)|0;Rf(c[f>>2]|0);if(c[g>>2]|0){c[h>>2]=lo(c[g>>2]|0)|0;Tp(c[g>>2]|0)}}else{c[f>>2]=Tf(c[e>>2]|0,47218,5)|0;if(!(c[f>>2]|0)){c[d>>2]=0;j=c[d>>2]|0;l=b;return j|0}c[i>>2]=_f(c[f>>2]|0,1)|0;Rf(c[f>>2]|0);if(!(c[i>>2]|0)){c[d>>2]=0;j=c[d>>2]|0;l=b;return j|0}if(Qh(0,c[i>>2]|0,0,h)|0)c[h>>2]=0;vf(c[i>>2]|0)}c[d>>2]=c[h>>2];j=c[d>>2]|0;l=b;return j|0}function Er(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+12|0;g=e+8|0;h=e;c[g>>2]=a;c[e+4>>2]=b;c[h>>2]=d;if((c[g>>2]|0)!=18){c[f>>2]=4;i=c[f>>2]|0;l=e;return i|0}else{c[f>>2]=Gr(c[h>>2]|0)|0;i=c[f>>2]|0;l=e;return i|0}return 0}function Fr(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;e=l;l=l+208|0;if((l|0)>=(m|0))$(208);f=e+88|0;g=e+80|0;h=e+72|0;i=e+64|0;j=e+32|0;k=e;n=e+172|0;o=e+168|0;p=e+164|0;q=e+160|0;r=e+132|0;s=e+128|0;t=e+124|0;u=e+120|0;v=e+116|0;w=e+112|0;x=e+176|0;y=e+108|0;z=e+104|0;A=e+100|0;B=e+96|0;c[n>>2]=b;c[o>>2]=d;c[t>>2]=0;c[u>>2]=0;c[v>>2]=0;c[w>>2]=0;c[s>>2]=0;while(1){if((c[s>>2]|0)>=7)break;c[r+(c[s>>2]<<2)>>2]=0;c[s>>2]=(c[s>>2]|0)+1}c[q>>2]=Tf(c[o>>2]|0,47178,0)|0;if(!(c[q>>2]|0?(c[p>>2]=Fj(c[q>>2]|0,u,0)|0,(c[p>>2]|0)!=0):0))C=6;a:do if((C|0)==6){d=(c[u>>2]&4096|0)!=0;b=c[o>>2]|0;do if(c[u>>2]&512|0){D=r+4|0;E=r+8|0;F=r+12|0;G=r+16|0;H=r+20|0;I=r+24|0;if(d){c[k>>2]=r;c[k+4>>2]=D;c[k+8>>2]=E;c[k+12>>2]=F;c[k+16>>2]=G;c[k+20>>2]=H;c[k+24>>2]=I;c[k+28>>2]=0;c[p>>2]=lg(b,0,47184,k)|0;break}else{c[j>>2]=r;c[j+4>>2]=D;c[j+8>>2]=E;c[j+12>>2]=F;c[j+16>>2]=G;c[j+20>>2]=H;c[j+24>>2]=I;c[j+28>>2]=0;c[p>>2]=lg(b,0,47199,j)|0;break}}else{I=r+24|0;if(d){c[i>>2]=I;c[i+4>>2]=0;c[p>>2]=lg(b,0,47213,i)|0;break}else{c[h>>2]=I;c[h+4>>2]=0;c[p>>2]=lg(b,0,47216,h)|0;break}}while(0);if(!(c[p>>2]|0)){Rf(c[q>>2]|0);c[q>>2]=Tf(c[o>>2]|0,47218,5)|0;if((c[q>>2]|0?(c[t>>2]=_f(c[q>>2]|0,1)|0,c[t>>2]|0):0)?(c[p>>2]=Th(c[t>>2]|0,v,w,r,r+4|0,r+8|0,r+12|0,r+16|0,r+20|0)|0,c[p>>2]|0):0)break;if(!(c[t>>2]|0)){c[v>>2]=c[u>>2]&4096|0?2:0;c[w>>2]=c[u>>2]&4096|0?1:0}c[s>>2]=0;while(1){if((c[s>>2]|0)>=7)break;if(!(c[r+(c[s>>2]<<2)>>2]|0)){C=22;break}ko(c[r+(c[s>>2]<<2)>>2]|0);c[s>>2]=(c[s>>2]|0)+1}if((C|0)==22){c[p>>2]=68;break}if(c[u>>2]&4096|0){if((c[w>>2]|0)==1)c[p>>2]=ei(c[r+24>>2]|0,256)|0;else c[p>>2]=69;if(c[p>>2]|0)break}c[s>>2]=0;b:while(1){if((c[s>>2]|0)>=7)break a;do if((c[s>>2]|0)!=5){if(c[r+(c[s>>2]<<2)>>2]|0?c[(c[r+(c[s>>2]<<2)>>2]|0)+12>>2]&4|0:0){c[y>>2]=Gp(c[r+(c[s>>2]<<2)>>2]|0,z)|0;c[z>>2]=(((c[z>>2]|0)+7|0)>>>0)/8|0;b=c[z>>2]|0;c[g>>2]=a[47224+(c[s>>2]|0)>>0];c[g+4>>2]=b;Su(x,30,47231,g)|0;b=c[n>>2]|0;$i(b,x,hv(x)|0);$i(c[n>>2]|0,c[y>>2]|0,c[z>>2]|0);$i(c[n>>2]|0,47240,1);break}c[A>>2]=Vo(c[r+(c[s>>2]<<2)>>2]|0,0,B,0)|0;if(!(c[A>>2]|0))break b;b=c[B>>2]|0;c[f>>2]=a[47224+(c[s>>2]|0)>>0];c[f+4>>2]=b;Su(x,30,47231,f)|0;b=c[n>>2]|0;$i(b,x,hv(x)|0);$i(c[n>>2]|0,c[A>>2]|0,c[B>>2]|0);$i(c[n>>2]|0,47240,1);vf(c[A>>2]|0)}while(0);c[s>>2]=(c[s>>2]|0)+1}c[p>>2]=Et()|0}}while(0);vf(c[t>>2]|0);Rf(c[q>>2]|0);c[s>>2]=0;while(1){if((c[s>>2]|0)>=7)break;Tp(c[r+(c[s>>2]<<2)>>2]|0);c[s>>2]=(c[s>>2]|0)+1}l=e;return c[p>>2]|0}function Gr(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+12|0;e=b+8|0;f=b+4|0;g=b;c[e>>2]=a;c[f>>2]=47242;c[g>>2]=0;if(!(c[g>>2]|0)){c[d>>2]=0;h=c[d>>2]|0;l=b;return h|0}if(c[e>>2]|0)Eb[c[e>>2]&1](47252,18,c[f>>2]|0,c[g>>2]|0);c[d>>2]=50;h=c[d>>2]|0;l=b;return h|0}function Hr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;e=l;l=l+112|0;if((l|0)>=(m|0))$(112);f=e+64|0;g=e+56|0;h=e+48|0;i=e+40|0;j=e+32|0;k=e+24|0;n=e+16|0;o=e+8|0;p=e;q=e+108|0;r=e+104|0;s=e+100|0;t=e+96|0;u=e+84|0;v=e+80|0;w=e+76|0;x=e+72|0;y=e+68|0;c[q>>2]=a;c[r>>2]=b;c[s>>2]=d;c[t>>2]=1;c[x>>2]=0;c[y>>2]=0;yn(u);c[v>>2]=Rp(0)|0;if((c[c[r>>2]>>2]|0)==1)c[w>>2]=0;else c[w>>2]=Rp(0)|0;a:do if(!(bo((c[q>>2]|0)+20|0,c[r>>2]|0)|0)){if(Ff(1)|0)Ye(48655,p)}else{if(!(vo(c[(c[q>>2]|0)+20+8>>2]|0,0)|0)){if(!(Ff(1)|0))break;Ye(48707,o);break}if((c[(c[q>>2]|0)+4>>2]|0)!=1?($n(u,c[(c[q>>2]|0)+32>>2]|0,(c[q>>2]|0)+20|0,c[r>>2]|0),vo(c[u+8>>2]|0,0)|0):0){if(!(Ff(1)|0))break;Ye(48752,n);break}if(!(vo(c[(c[q>>2]|0)+44+8>>2]|0,0)|0)){if(!(Ff(1)|0))break;Ye(48799,k);break}if(!(Ai(u,c[r>>2]|0,(c[q>>2]|0)+20|0,c[(c[q>>2]|0)+56>>2]|0)|0)){if(!(Ff(1)|0))break;Ye(48845,j);break}if(tn(c[v>>2]|0,c[w>>2]|0,u,c[r>>2]|0)|0){if(!(Ff(1)|0))break;Ye(48799,i);break}do if(!(c[s>>2]&4096)){if(!(vo(c[(c[q>>2]|0)+44+8>>2]|0,1)|0)){if(!(wo(c[v>>2]|0,c[(c[q>>2]|0)+44>>2]|0)|0)){if(c[w>>2]|0)break;if(!(wo(c[w>>2]|0,c[(c[q>>2]|0)+44+4>>2]|0)|0))break}if(!(Ff(1)|0))break a;Ye(48882,h);break a}c[x>>2]=Rp(0)|0;c[y>>2]=Rp(0)|0;if(tn(c[x>>2]|0,c[y>>2]|0,(c[q>>2]|0)+44|0,c[r>>2]|0)|0){if(!(Ff(1)|0))break a;Ye(48799,g);break a}if((wo(c[v>>2]|0,c[x>>2]|0)|0)==0?(wo(c[w>>2]|0,c[y>>2]|0)|0)==0:0)break;if(!(Ff(1)|0))break a;Ye(48882,f);break a}while(0);c[t>>2]=0}while(0);Dp(c[x>>2]|0);Dp(c[v>>2]|0);Dp(c[w>>2]|0);Dp(c[y>>2]|0);An(u);l=e;return c[t>>2]|0}function Ir(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;j=l;l=l+96|0;if((l|0)>=(m|0))$(96);k=j+16|0;n=j+8|0;o=j;p=j+80|0;q=j+76|0;r=j+72|0;s=j+68|0;t=j+64|0;u=j+60|0;v=j+56|0;w=j+44|0;x=j+40|0;y=j+36|0;z=j+32|0;A=j+28|0;B=j+24|0;C=j+20|0;c[p>>2]=b;c[q>>2]=d;c[r>>2]=e;c[s>>2]=f;c[t>>2]=g;c[u>>2]=h;c[v>>2]=i;c[A>>2]=lo(c[(c[q>>2]|0)+8>>2]|0)|0;yn(w);if(c[s>>2]&32|0)c[x>>2]=1;else c[x>>2]=2;if((c[(c[r>>2]|0)+4>>2]|0)==1){i=Sp(256)|0;c[(c[p>>2]|0)+56>>2]=i;c[B>>2]=hn(32,c[x>>2]|0)|0;i=c[B>>2]|0;a[i>>0]=a[i>>0]&127;i=c[B>>2]|0;a[i>>0]=a[i>>0]|64;i=(c[B>>2]|0)+31|0;a[i>>0]=a[i>>0]&248;Yo(c[(c[p>>2]|0)+56>>2]|0,c[B>>2]|0,32,0);vf(c[B>>2]|0)}else{B=rt(c[(c[q>>2]|0)+32>>2]|0,c[x>>2]|0)|0;c[(c[p>>2]|0)+56>>2]=B}$n(w,c[(c[p>>2]|0)+56>>2]|0,(c[q>>2]|0)+20|0,c[r>>2]|0);c[c[p>>2]>>2]=c[c[q>>2]>>2];c[(c[p>>2]|0)+4>>2]=c[(c[q>>2]|0)+4>>2];B=Ip(c[(c[q>>2]|0)+8>>2]|0)|0;c[(c[p>>2]|0)+8>>2]=B;B=Ip(c[(c[q>>2]|0)+12>>2]|0)|0;c[(c[p>>2]|0)+12>>2]=B;B=Ip(c[(c[q>>2]|0)+16>>2]|0)|0;c[(c[p>>2]|0)+16>>2]=B;yn((c[p>>2]|0)+20|0);Jr((c[p>>2]|0)+20|0,(c[q>>2]|0)+20|0);B=Ip(c[(c[q>>2]|0)+32>>2]|0)|0;c[(c[p>>2]|0)+32>>2]=B;B=Ip(c[(c[q>>2]|0)+36>>2]|0)|0;c[(c[p>>2]|0)+36>>2]=B;yn((c[p>>2]|0)+44|0);c[y>>2]=Rp(c[A>>2]|0)|0;c[z>>2]=Rp(c[A>>2]|0)|0;if(tn(c[y>>2]|0,c[z>>2]|0,w,c[r>>2]|0)|0){c[o>>2]=49147;We(49097,o)}do if((c[(c[q>>2]|0)+4>>2]|0)!=1){c[C>>2]=Rp(c[A>>2]|0)|0;o=c[C>>2]|0;r=c[(c[q>>2]|0)+8>>2]|0;if(!(c[c[q>>2]>>2]|0))ho(o,r,c[z>>2]|0);else ho(o,r,c[y>>2]|0);if((wo(c[C>>2]|0,c[z>>2]|0)|0)>=0){Dp(c[C>>2]|0);Jr((c[p>>2]|0)+44|0,w);if(!(Ff(1)|0))break;Ye(49623,k);break}if(!(c[c[q>>2]>>2]|0)){Dp(c[z>>2]|0);c[z>>2]=c[C>>2]}else{Dp(c[y>>2]|0);c[y>>2]=c[C>>2]}ho(c[(c[p>>2]|0)+56>>2]|0,c[(c[q>>2]|0)+32>>2]|0,c[(c[p>>2]|0)+56>>2]|0);r=(c[p>>2]|0)+44|0;o=c[y>>2]|0;B=c[z>>2]|0;Bn(r,o,B,Wp(1)|0)|0;if(Ff(1)|0)Ye(49583,n)}else Jr((c[p>>2]|0)+44|0,w);while(0);c[c[u>>2]>>2]=c[y>>2];c[c[v>>2]>>2]=c[z>>2];An(w);if(c[s>>2]&16384|0){l=j;return 0}s=c[p>>2]|0;w=(c[t>>2]|0)-64|0;if((c[c[p>>2]>>2]|0)!=1){Kr(s,w);l=j;return 0}else{Lr(s,w);l=j;return 0}return 0}function Jr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;Kp(c[c[e>>2]>>2]|0,c[c[f>>2]>>2]|0)|0;Kp(c[(c[e>>2]|0)+4>>2]|0,c[(c[f>>2]|0)+4>>2]|0)|0;Kp(c[(c[e>>2]|0)+8>>2]|0,c[(c[f>>2]|0)+8>>2]|0)|0;l=d;return}function Kr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;d=l;l=l+224|0;if((l|0)>=(m|0))$(224);e=d+168|0;f=d+24|0;g=d+16|0;h=d+8|0;i=d+164|0;j=d+160|0;k=d+104|0;n=d+100|0;o=d+88|0;p=d+84|0;q=d+80|0;r=d+76|0;s=d+72|0;t=d+28|0;c[i>>2]=a;c[j>>2]=b;c[n>>2]=Rp(c[j>>2]|0)|0;c[p>>2]=Rp(c[j>>2]|0)|0;c[q>>2]=Rp(c[j>>2]|0)|0;c[r>>2]=Rp(c[j>>2]|0)|0;c[s>>2]=Rp(c[j>>2]|0)|0;if(Ff(1)|0)Ye(49676,d);yn(o);b=e;a=c[i>>2]|0;u=b+44|0;do{c[b>>2]=c[a>>2];b=b+4|0;a=a+4|0}while((b|0)<(u|0));ti(t,e);b=k;a=t;u=b+44|0;do{c[b>>2]=c[a>>2];b=b+4|0;a=a+4|0}while((b|0)<(u|0));yn(k+44|0);Jr(k+44|0,(c[i>>2]|0)+44|0);Up(c[n>>2]|0,c[j>>2]|0,0);if(wt(c[n>>2]|0,c[i>>2]|0,c[r>>2]|0,c[s>>2]|0,0,0)|0)We(49806,h);if(xt(c[n>>2]|0,k,c[r>>2]|0,c[s>>2]|0)|0)We(49836,g);if(!(Ff(1)|0)){v=k+44|0;An(v);si(k);An(o);w=c[s>>2]|0;Dp(w);x=c[r>>2]|0;Dp(x);y=c[q>>2]|0;Dp(y);z=c[p>>2]|0;Dp(z);A=c[n>>2]|0;Dp(A);l=d;return}Ye(49874,f);v=k+44|0;An(v);si(k);An(o);w=c[s>>2]|0;Dp(w);x=c[r>>2]|0;Dp(x);y=c[q>>2]|0;Dp(y);z=c[p>>2]|0;Dp(z);A=c[n>>2]|0;Dp(A);l=d;return}function Lr(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;e=l;l=l+224|0;if((l|0)>=(m|0))$(224);f=e+168|0;g=e+24|0;h=e+16|0;i=e+8|0;j=e+164|0;k=e+160|0;n=e+104|0;o=e+100|0;p=e+88|0;q=e+84|0;r=e+80|0;s=e+76|0;t=e+32|0;u=e+28|0;c[j>>2]=b;c[k>>2]=d;if(Ff(1)|0)Ye(49676,e);yn(p);d=f;b=c[j>>2]|0;v=d+44|0;do{c[d>>2]=c[b>>2];d=d+4|0;b=b+4|0}while((d|0)<(v|0));ti(t,f);d=n;b=t;v=d+44|0;do{c[d>>2]=c[b>>2];d=d+4|0;b=b+4|0}while((d|0)<(v|0));yn(n+44|0);Jr(n+44|0,(c[j>>2]|0)+44|0);if((c[(c[j>>2]|0)+4>>2]|0)==1){c[o>>2]=Rp(256)|0;c[u>>2]=fn(32,0)|0;b=c[u>>2]|0;a[b>>0]=a[b>>0]&127;b=c[u>>2]|0;a[b>>0]=a[b>>0]|64;b=(c[u>>2]|0)+31|0;a[b>>0]=a[b>>0]&248;Yo(c[o>>2]|0,c[u>>2]|0,32,0);vf(c[u>>2]|0)}else{c[o>>2]=Rp(c[k>>2]|0)|0;Up(c[o>>2]|0,c[k>>2]|0,0)}c[s>>2]=En(c[n>>2]|0,c[n+4>>2]|0,0,c[n+8>>2]|0,c[n+12>>2]|0,c[n+16>>2]|0)|0;c[q>>2]=Rp(0)|0;c[r>>2]=Rp(0)|0;$n(p,c[o>>2]|0,n+44|0,c[s>>2]|0);if((c[(c[j>>2]|0)+4>>2]|0)!=1)$n(p,c[(c[s>>2]|0)+36>>2]|0,p,c[s>>2]|0);if(tn(c[q>>2]|0,0,p,c[s>>2]|0)|0)We(49690,i);$n(p,c[o>>2]|0,n+20|0,c[s>>2]|0);$n(p,c[(c[j>>2]|0)+56>>2]|0,p,c[s>>2]|0);if((c[(c[j>>2]|0)+4>>2]|0)!=1)$n(p,c[(c[s>>2]|0)+36>>2]|0,p,c[s>>2]|0);if(tn(c[r>>2]|0,0,p,c[s>>2]|0)|0)We(49738,h);if(wo(c[q>>2]|0,c[r>>2]|0)|0)We(49787,g);else{Dp(c[q>>2]|0);Dp(c[r>>2]|0);In(c[s>>2]|0);An(n+44|0);si(n);An(p);Dp(c[o>>2]|0);l=e;return}}function Mr(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;h=l;l=l+1056|0;if((l|0)>=(m|0))$(1056);i=h+44|0;j=h+40|0;k=h+36|0;n=h+32|0;o=h+28|0;p=h+24|0;q=h+20|0;r=h+16|0;s=h+12|0;t=h+8|0;u=h+4|0;v=h+48|0;w=h;c[j>>2]=a;c[k>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=0;c[s>>2]=0;g=oj(c[j>>2]|0)|0;if((g|0)!=(c[q>>2]|0)){c[i>>2]=49935;x=c[i>>2]|0;l=h;return x|0}c[s>>2]=Si(t,c[j>>2]|0,0)|0;if(c[s>>2]|0){c[i>>2]=49976;x=c[i>>2]|0;l=h;return x|0}a:do switch(c[k>>2]|0){case 0:{$i(c[t>>2]|0,c[n>>2]|0,c[o>>2]|0);break}case 1:{Uw(v|0,97,1e3)|0;c[w>>2]=0;while(1){if((c[w>>2]|0)>=1e3)break a;$i(c[t>>2]|0,v,1e3);c[w>>2]=(c[w>>2]|0)+1}break}default:c[r>>2]=49996}while(0);if((c[r>>2]|0)==0?(c[u>>2]=lj(c[t>>2]|0,c[j>>2]|0)|0,Jv(c[u>>2]|0,c[p>>2]|0,c[q>>2]|0)|0):0)c[r>>2]=50013;_i(c[t>>2]|0);c[i>>2]=c[r>>2];x=c[i>>2]|0;l=h;return x|0}function Nr(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f+28|0;h=f+24|0;i=f+20|0;j=f+16|0;k=f+12|0;n=f+8|0;o=f+4|0;p=f;c[g>>2]=b;c[h>>2]=d;c[i>>2]=e;c[j>>2]=c[h>>2];c[k>>2]=c[g>>2];c[n>>2]=0;c[o>>2]=c[(c[k>>2]|0)+148>>2];if(128<(c[o>>2]|0)>>>0)Re(50029,112,50043);if(!(c[(c[k>>2]|0)+152>>2]|0)){l=f;return}if((c[(c[k>>2]|0)+144>>2]|0)==(c[o>>2]|0)?(c[n>>2]=ub[c[(c[k>>2]|0)+152>>2]&63](c[k>>2]|0,c[k>>2]|0,1)|0,bf(c[n>>2]|0),cf(),c[n>>2]=0,c[(c[k>>2]|0)+144>>2]=0,g=(c[k>>2]|0)+128|0,h=g,e=Ww(c[h>>2]|0,c[h+4>>2]|0,1,0)|0,h=D,d=g,c[d>>2]=e,c[d+4>>2]=h,!((e|0)!=0|(h|0)!=0)):0){h=(c[k>>2]|0)+136|0;e=h;d=Ww(c[e>>2]|0,c[e+4>>2]|0,1,0)|0;e=h;c[e>>2]=d;c[e+4>>2]=D}if(!(c[j>>2]|0)){l=f;return}if(c[(c[k>>2]|0)+144>>2]|0){while(1){if(!(c[i>>2]|0))break;if((c[(c[k>>2]|0)+144>>2]|0)>>>0>=(c[o>>2]|0)>>>0)break;e=c[j>>2]|0;c[j>>2]=e+1;d=a[e>>0]|0;e=(c[k>>2]|0)+144|0;h=c[e>>2]|0;c[e>>2]=h+1;a[(c[k>>2]|0)+h>>0]=d;c[i>>2]=(c[i>>2]|0)+-1}Nr(c[k>>2]|0,0,0);if(!(c[i>>2]|0)){l=f;return}}if((c[i>>2]|0)>>>0>=(c[o>>2]|0)>>>0){c[p>>2]=((c[i>>2]|0)>>>0)/((c[o>>2]|0)>>>0)|0;c[n>>2]=ub[c[(c[k>>2]|0)+152>>2]&63](c[k>>2]|0,c[j>>2]|0,c[p>>2]|0)|0;c[(c[k>>2]|0)+144>>2]=0;d=(c[k>>2]|0)+128|0;h=Ww(c[d>>2]|0,c[d+4>>2]|0,c[p>>2]|0,0)|0;d=D;e=(d>>>0<0|((d|0)==0?h>>>0<(c[p>>2]|0)>>>0:0))&1;h=(c[k>>2]|0)+136|0;d=h;g=Ww(c[d>>2]|0,c[d+4>>2]|0,e|0,((e|0)<0)<<31>>31|0)|0;e=h;c[e>>2]=g;c[e+4>>2]=D;e=(c[k>>2]|0)+128|0;g=e;h=Ww(c[g>>2]|0,c[g+4>>2]|0,c[p>>2]|0,0)|0;g=e;c[g>>2]=h;c[g+4>>2]=D;g=S(c[p>>2]|0,c[o>>2]|0)|0;c[i>>2]=(c[i>>2]|0)-g;g=S(c[p>>2]|0,c[o>>2]|0)|0;c[j>>2]=(c[j>>2]|0)+g}bf(c[n>>2]|0);cf();while(1){if(!(c[i>>2]|0)){q=19;break}if((c[(c[k>>2]|0)+144>>2]|0)>>>0>=(c[o>>2]|0)>>>0){q=19;break}n=c[j>>2]|0;c[j>>2]=n+1;g=a[n>>0]|0;n=(c[k>>2]|0)+144|0;p=c[n>>2]|0;c[n>>2]=p+1;a[(c[k>>2]|0)+p>>0]=g;c[i>>2]=(c[i>>2]|0)+-1}if((q|0)==19){l=f;return}}function Or(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e+28|0;g=e+24|0;h=e+20|0;i=e+16|0;j=e+12|0;k=e+8|0;n=e+4|0;o=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=Pr(c[f>>2]|0)|0;c[j>>2]=0;c[k>>2]=c[c[(c[f>>2]|0)+84>>2]>>2];do if(c[(c[f>>2]|0)+88>>2]|0){c[n>>2]=(c[k>>2]|0)-(c[(c[f>>2]|0)+88>>2]|0);if((c[n>>2]|0)>>>0>(c[h>>2]|0)>>>0)c[n>>2]=c[h>>2];Qr((c[f>>2]|0)+68+(c[(c[f>>2]|0)+88>>2]|0)|0,c[g>>2]|0,c[n>>2]|0);c[h>>2]=(c[h>>2]|0)-(c[n>>2]|0);c[g>>2]=(c[g>>2]|0)+(c[n>>2]|0);d=(c[f>>2]|0)+88|0;c[d>>2]=(c[d>>2]|0)+(c[n>>2]|0);if((c[(c[f>>2]|0)+88>>2]|0)>>>0<(c[k>>2]|0)>>>0){l=e;return}else{c[j>>2]=ub[c[(c[(c[f>>2]|0)+84>>2]|0)+8>>2]&63](c[i>>2]|0,(c[f>>2]|0)+68|0,c[k>>2]|0)|0;c[(c[f>>2]|0)+88>>2]=0;break}}while(0);if((c[h>>2]|0)>>>0>=(c[k>>2]|0)>>>0){c[o>>2]=c[h>>2]&~((c[k>>2]|0)-1);c[j>>2]=ub[c[(c[(c[f>>2]|0)+84>>2]|0)+8>>2]&63](c[i>>2]|0,c[g>>2]|0,c[o>>2]|0)|0;c[g>>2]=(c[g>>2]|0)+(c[o>>2]|0);c[h>>2]=(c[h>>2]|0)-(c[o>>2]|0)}if(c[h>>2]|0){Qr((c[f>>2]|0)+68+(c[(c[f>>2]|0)+88>>2]|0)|0,c[g>>2]|0,c[h>>2]|0);g=(c[f>>2]|0)+88|0;c[g>>2]=(c[g>>2]|0)+(c[h>>2]|0)}if(!(c[j>>2]|0)){l=e;return}bf(c[j>>2]|0);cf();l=e;return}function Pr(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=c[d>>2];c[e>>2]=(c[e>>2]|0)+3;c[e>>2]=(c[e>>2]|0)+(0-(c[e>>2]&3));l=b;return c[e>>2]|0}function Qr(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f+28|0;h=f+24|0;i=f+20|0;j=f+16|0;k=f+12|0;n=f+8|0;o=f+4|0;c[g>>2]=b;c[h>>2]=d;c[i>>2]=e;c[j>>2]=c[g>>2];c[k>>2]=c[h>>2];c[f>>2]=3;if(!((c[j>>2]|c[k>>2])&3)){c[n>>2]=c[j>>2];c[o>>2]=c[k>>2];while(1){if((c[i>>2]|0)>>>0<4)break;h=c[o>>2]|0;c[o>>2]=h+4;g=c[h>>2]|0;h=c[n>>2]|0;c[n>>2]=h+4;c[h>>2]=g;c[i>>2]=(c[i>>2]|0)-4}c[j>>2]=c[n>>2];c[k>>2]=c[o>>2]}while(1){if(!(c[i>>2]|0))break;o=c[k>>2]|0;c[k>>2]=o+1;n=a[o>>0]|0;o=c[j>>2]|0;c[j>>2]=o+1;a[o>>0]=n;c[i>>2]=(c[i>>2]|0)+-1}l=f;return}function Rr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+12|0;f=d+8|0;g=d+4|0;h=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=Pr(c[e>>2]|0)|0;c[h>>2]=Bb[c[(c[(c[e>>2]|0)+84>>2]|0)+12>>2]&7](c[g>>2]|0,(c[e>>2]|0)+68|0,c[(c[e>>2]|0)+88>>2]|0,c[f>>2]|0)|0;bf(c[h>>2]|0);cf();l=d;return}function Sr(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;g=l;l=l+80|0;if((l|0)>=(m|0))$(80);h=g+8|0;i=g+40|0;j=g+36|0;k=g+32|0;n=g+28|0;o=g+48|0;p=g+20|0;q=g+16|0;r=g+44|0;s=g;t=g+12|0;c[j>>2]=b;c[k>>2]=e;c[n>>2]=f;c[g+24>>2]=pg()|0;if((c[17757]|0)==0?(c[17757]=1,c[17758]=Tr()|0,c[17758]|0):0){c[h>>2]=c[17758];Ve(50064,h)}if((c[n>>2]|0)!=32){c[i>>2]=44;u=c[i>>2]|0;l=g;return u|0}if(c[17758]|0){c[i>>2]=50;u=c[i>>2]|0;l=g;return u|0}c[(c[j>>2]|0)+84>>2]=13e3;Qr(o,c[k>>2]|0,32);Ur(c[j>>2]|0,o);c[p>>2]=o;c[q>>2]=32;a[r>>0]=0;o=s;c[o>>2]=d[r>>0];c[o+4>>2]=0;while(1){if(!(c[p>>2]&7|0?(c[q>>2]|0)!=0:0))break;a[c[p>>2]>>0]=a[r>>0]|0;c[p>>2]=(c[p>>2]|0)+1;c[q>>2]=(c[q>>2]|0)+-1}if((c[q>>2]|0)>>>0>=8){o=s;j=gx(c[o>>2]|0,c[o+4>>2]|0,16843009,16843009)|0;o=s;c[o>>2]=j;c[o+4>>2]=D;do{c[t>>2]=c[p>>2];o=s;j=c[o+4>>2]|0;k=c[t>>2]|0;c[k>>2]=c[o>>2];c[k+4>>2]=j;c[q>>2]=(c[q>>2]|0)-8;c[p>>2]=(c[p>>2]|0)+8}while((c[q>>2]|0)>>>0>=8)}while(1){if(!(c[q>>2]|0))break;a[c[p>>2]>>0]=a[r>>0]|0;c[p>>2]=(c[p>>2]|0)+1;c[q>>2]=(c[q>>2]|0)+-1}c[i>>2]=0;u=c[i>>2]|0;l=g;return u|0}function Tr(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;b=l;l=l+512|0;if((l|0)>=(m|0))$(512);d=b+192|0;e=b+100|0;f=b+8|0;g=b+472|0;h=b+216|0;i=b+200|0;j=b+4|0;k=b;n=e;o=n+92|0;do{c[n>>2]=0;n=n+4|0}while((n|0)<(o|0));n=f;o=n+92|0;do{c[n>>2]=0;n=n+4|0}while((n|0)<(o|0));n=i;o=n+16|0;do{a[n>>0]=0;n=n+1|0}while((n|0)<(o|0));_r(i,50095,131,50226);if(Jv(50258,i,16)|0){c[d>>2]=50274;p=c[d>>2]|0;l=b;return p|0}n=i;o=n+16|0;do{a[n>>0]=0;n=n+1|0}while((n|0)<(o|0));Sr(e,50226,32)|0;Or(e,50095,32);Or(e,50127,64);Or(e,50191,16);Or(e,50207,8);Or(e,50215,4);Or(e,50219,2);Or(e,50221,1);Or(e,50222,1);Or(e,50223,1);Or(e,50224,1);Or(e,50225,1);Rr(e,i);if(Jv(50258,i,16)|0){c[d>>2]=50298;p=c[d>>2]|0;l=b;return p|0}n=i;o=n+16|0;do{a[n>>0]=0;n=n+1|0}while((n|0)<(o|0));_r(i,50322,16,50338);if(Jv(50370,i,16)|0){c[d>>2]=50386;p=c[d>>2]|0;l=b;return p|0}Sr(f,50410,32)|0;c[j>>2]=0;while(1){if((c[j>>2]|0)>>>0>=256)break;c[k>>2]=0;while(1){if((c[k>>2]|0)>>>0>=32)break;a[g+(c[k>>2]|0)>>0]=c[j>>2];c[k>>2]=(c[k>>2]|0)+1}c[k>>2]=0;while(1){if((c[k>>2]|0)>>>0>=(c[j>>2]|0)>>>0)break;a[h+(c[k>>2]|0)>>0]=c[j>>2];c[k>>2]=(c[k>>2]|0)+1}_r(i,h,c[j>>2]|0,g);Or(f,i,16);c[j>>2]=(c[j>>2]|0)+1}Rr(f,i);if(Jv(50442,i,16)|0){c[d>>2]=50458;p=c[d>>2]|0;l=b;return p|0}else{c[d>>2]=0;p=c[d>>2]|0;l=b;return p|0}return 0}function Ur(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=Pr(c[e>>2]|0)|0;c[(c[e>>2]|0)+88>>2]=0;xb[c[(c[(c[e>>2]|0)+84>>2]|0)+4>>2]&7](c[g>>2]|0,c[f>>2]|0);l=d;return}function Vr(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=b;c[g>>2]=d;c[h>>2]=c[f>>2];f=(Zr(c[g>>2]|0)|0)&67108863;c[c[h>>2]>>2]=f;f=(Zr((c[g>>2]|0)+3|0)|0)>>>2&67108611;c[(c[h>>2]|0)+4>>2]=f;f=(Zr((c[g>>2]|0)+6|0)|0)>>>4&67092735;c[(c[h>>2]|0)+8>>2]=f;f=(Zr((c[g>>2]|0)+9|0)|0)>>>6&66076671;c[(c[h>>2]|0)+12>>2]=f;f=(Zr((c[g>>2]|0)+12|0)|0)>>>8&1048575;c[(c[h>>2]|0)+16>>2]=f;c[(c[h>>2]|0)+20>>2]=0;c[(c[h>>2]|0)+20+4>>2]=0;c[(c[h>>2]|0)+20+8>>2]=0;c[(c[h>>2]|0)+20+12>>2]=0;c[(c[h>>2]|0)+20+16>>2]=0;f=Zr((c[g>>2]|0)+16|0)|0;c[(c[h>>2]|0)+40>>2]=f;f=Zr((c[g>>2]|0)+20|0)|0;c[(c[h>>2]|0)+40+4>>2]=f;f=Zr((c[g>>2]|0)+24|0)|0;c[(c[h>>2]|0)+40+8>>2]=f;f=Zr((c[g>>2]|0)+28|0)|0;c[(c[h>>2]|0)+40+12>>2]=f;a[(c[h>>2]|0)+56>>0]=0;l=e;return}function Wr(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0;f=l;l=l+128|0;if((l|0)>=(m|0))$(128);g=f+116|0;h=f+112|0;i=f+108|0;j=f+104|0;k=f+100|0;n=f+96|0;o=f+92|0;p=f+88|0;q=f+84|0;r=f+80|0;s=f+76|0;t=f+72|0;u=f+68|0;v=f+64|0;w=f+60|0;x=f+56|0;y=f+52|0;z=f+48|0;A=f+44|0;B=f+32|0;C=f+24|0;E=f+16|0;F=f+8|0;G=f;H=f+40|0;c[g>>2]=a;c[h>>2]=b;c[i>>2]=e;c[j>>2]=c[g>>2];c[k>>2]=d[(c[j>>2]|0)+56>>0]|0|0?0:16777216;c[n>>2]=c[c[j>>2]>>2];c[o>>2]=c[(c[j>>2]|0)+4>>2];c[p>>2]=c[(c[j>>2]|0)+8>>2];c[q>>2]=c[(c[j>>2]|0)+12>>2];c[r>>2]=c[(c[j>>2]|0)+16>>2];c[s>>2]=(c[o>>2]|0)*5;c[t>>2]=(c[p>>2]|0)*5;c[u>>2]=(c[q>>2]|0)*5;c[v>>2]=(c[r>>2]|0)*5;c[w>>2]=c[(c[j>>2]|0)+20>>2];c[x>>2]=c[(c[j>>2]|0)+20+4>>2];c[y>>2]=c[(c[j>>2]|0)+20+8>>2];c[z>>2]=c[(c[j>>2]|0)+20+12>>2];c[A>>2]=c[(c[j>>2]|0)+20+16>>2];while(1){if((c[i>>2]|0)>>>0<16)break;g=(Zr(c[h>>2]|0)|0)&67108863;c[w>>2]=(c[w>>2]|0)+g;g=(Zr((c[h>>2]|0)+3|0)|0)>>>2&67108863;c[x>>2]=(c[x>>2]|0)+g;g=(Zr((c[h>>2]|0)+6|0)|0)>>>4&67108863;c[y>>2]=(c[y>>2]|0)+g;g=(Zr((c[h>>2]|0)+9|0)|0)>>>6&67108863;c[z>>2]=(c[z>>2]|0)+g;g=(Zr((c[h>>2]|0)+12|0)|0)>>>8;c[A>>2]=(c[A>>2]|0)+(g|c[k>>2]);g=gx(c[w>>2]|0,0,c[n>>2]|0,0)|0;e=D;b=gx(c[x>>2]|0,0,c[v>>2]|0,0)|0;a=Ww(g|0,e|0,b|0,D|0)|0;b=D;e=gx(c[y>>2]|0,0,c[u>>2]|0,0)|0;g=Ww(a|0,b|0,e|0,D|0)|0;e=D;b=gx(c[z>>2]|0,0,c[t>>2]|0,0)|0;a=Ww(g|0,e|0,b|0,D|0)|0;b=D;e=gx(c[A>>2]|0,0,c[s>>2]|0,0)|0;g=Ww(a|0,b|0,e|0,D|0)|0;e=B;c[e>>2]=g;c[e+4>>2]=D;e=gx(c[w>>2]|0,0,c[o>>2]|0,0)|0;g=D;b=gx(c[x>>2]|0,0,c[n>>2]|0,0)|0;a=Ww(e|0,g|0,b|0,D|0)|0;b=D;g=gx(c[y>>2]|0,0,c[v>>2]|0,0)|0;e=Ww(a|0,b|0,g|0,D|0)|0;g=D;b=gx(c[z>>2]|0,0,c[u>>2]|0,0)|0;a=Ww(e|0,g|0,b|0,D|0)|0;b=D;g=gx(c[A>>2]|0,0,c[t>>2]|0,0)|0;e=Ww(a|0,b|0,g|0,D|0)|0;g=C;c[g>>2]=e;c[g+4>>2]=D;g=gx(c[w>>2]|0,0,c[p>>2]|0,0)|0;e=D;b=gx(c[x>>2]|0,0,c[o>>2]|0,0)|0;a=Ww(g|0,e|0,b|0,D|0)|0;b=D;e=gx(c[y>>2]|0,0,c[n>>2]|0,0)|0;g=Ww(a|0,b|0,e|0,D|0)|0;e=D;b=gx(c[z>>2]|0,0,c[v>>2]|0,0)|0;a=Ww(g|0,e|0,b|0,D|0)|0;b=D;e=gx(c[A>>2]|0,0,c[u>>2]|0,0)|0;g=Ww(a|0,b|0,e|0,D|0)|0;e=E;c[e>>2]=g;c[e+4>>2]=D;e=gx(c[w>>2]|0,0,c[q>>2]|0,0)|0;g=D;b=gx(c[x>>2]|0,0,c[p>>2]|0,0)|0;a=Ww(e|0,g|0,b|0,D|0)|0;b=D;g=gx(c[y>>2]|0,0,c[o>>2]|0,0)|0;e=Ww(a|0,b|0,g|0,D|0)|0;g=D;b=gx(c[z>>2]|0,0,c[n>>2]|0,0)|0;a=Ww(e|0,g|0,b|0,D|0)|0;b=D;g=gx(c[A>>2]|0,0,c[v>>2]|0,0)|0;e=Ww(a|0,b|0,g|0,D|0)|0;g=F;c[g>>2]=e;c[g+4>>2]=D;g=gx(c[w>>2]|0,0,c[r>>2]|0,0)|0;e=D;b=gx(c[x>>2]|0,0,c[q>>2]|0,0)|0;a=Ww(g|0,e|0,b|0,D|0)|0;b=D;e=gx(c[y>>2]|0,0,c[p>>2]|0,0)|0;g=Ww(a|0,b|0,e|0,D|0)|0;e=D;b=gx(c[z>>2]|0,0,c[o>>2]|0,0)|0;a=Ww(g|0,e|0,b|0,D|0)|0;b=D;e=gx(c[A>>2]|0,0,c[n>>2]|0,0)|0;g=Ww(a|0,b|0,e|0,D|0)|0;e=G;c[e>>2]=g;c[e+4>>2]=D;e=B;g=cx(c[e>>2]|0,c[e+4>>2]|0,26)|0;c[H>>2]=g;c[w>>2]=c[B>>2]&67108863;g=C;e=Ww(c[g>>2]|0,c[g+4>>2]|0,c[H>>2]|0,0)|0;g=C;c[g>>2]=e;c[g+4>>2]=D;g=C;e=cx(c[g>>2]|0,c[g+4>>2]|0,26)|0;c[H>>2]=e;c[x>>2]=c[C>>2]&67108863;e=E;g=Ww(c[e>>2]|0,c[e+4>>2]|0,c[H>>2]|0,0)|0;e=E;c[e>>2]=g;c[e+4>>2]=D;e=E;g=cx(c[e>>2]|0,c[e+4>>2]|0,26)|0;c[H>>2]=g;c[y>>2]=c[E>>2]&67108863;g=F;e=Ww(c[g>>2]|0,c[g+4>>2]|0,c[H>>2]|0,0)|0;g=F;c[g>>2]=e;c[g+4>>2]=D;g=F;e=cx(c[g>>2]|0,c[g+4>>2]|0,26)|0;c[H>>2]=e;c[z>>2]=c[F>>2]&67108863;e=G;g=Ww(c[e>>2]|0,c[e+4>>2]|0,c[H>>2]|0,0)|0;e=G;c[e>>2]=g;c[e+4>>2]=D;e=G;g=cx(c[e>>2]|0,c[e+4>>2]|0,26)|0;c[H>>2]=g;c[A>>2]=c[G>>2]&67108863;c[w>>2]=(c[w>>2]|0)+((c[H>>2]|0)*5|0);c[H>>2]=(c[w>>2]|0)>>>26;c[w>>2]=c[w>>2]&67108863;c[x>>2]=(c[x>>2]|0)+(c[H>>2]|0);c[h>>2]=(c[h>>2]|0)+16;c[i>>2]=(c[i>>2]|0)-16}c[(c[j>>2]|0)+20>>2]=c[w>>2];c[(c[j>>2]|0)+20+4>>2]=c[x>>2];c[(c[j>>2]|0)+20+8>>2]=c[y>>2];c[(c[j>>2]|0)+20+12>>2]=c[z>>2];c[(c[j>>2]|0)+20+16>>2]=c[A>>2];l=f;return 124}function Xr(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0;g=l;l=l+112|0;if((l|0)>=(m|0))$(112);h=g+80|0;i=g+76|0;j=g+72|0;k=g+68|0;n=g+64|0;o=g+60|0;p=g+56|0;q=g+52|0;r=g+48|0;s=g+44|0;t=g+40|0;u=g+36|0;v=g+32|0;w=g+28|0;x=g+24|0;y=g+20|0;z=g;A=g+16|0;B=g+12|0;C=g+88|0;E=g+8|0;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[k>>2]=f;c[n>>2]=c[h>>2];c[B>>2]=0;if(c[j>>2]|0){h=C;f=h+16|0;do{a[h>>0]=0;h=h+1|0}while((h|0)<(f|0));c[E>>2]=0;while(1){if((c[E>>2]|0)>>>0>=(c[j>>2]|0)>>>0)break;a[C+(c[E>>2]|0)>>0]=a[(c[i>>2]|0)+(c[E>>2]|0)>>0]|0;c[E>>2]=(c[E>>2]|0)+1}a[C+(c[j>>2]|0)>>0]=1;a[(c[n>>2]|0)+56>>0]=1;c[B>>2]=Wr(c[n>>2]|0,C,16)|0}c[o>>2]=c[(c[n>>2]|0)+20>>2];c[p>>2]=c[(c[n>>2]|0)+20+4>>2];c[q>>2]=c[(c[n>>2]|0)+20+8>>2];c[r>>2]=c[(c[n>>2]|0)+20+12>>2];c[s>>2]=c[(c[n>>2]|0)+20+16>>2];c[t>>2]=(c[p>>2]|0)>>>26;c[p>>2]=c[p>>2]&67108863;c[q>>2]=(c[q>>2]|0)+(c[t>>2]|0);c[t>>2]=(c[q>>2]|0)>>>26;c[q>>2]=c[q>>2]&67108863;c[r>>2]=(c[r>>2]|0)+(c[t>>2]|0);c[t>>2]=(c[r>>2]|0)>>>26;c[r>>2]=c[r>>2]&67108863;c[s>>2]=(c[s>>2]|0)+(c[t>>2]|0);c[t>>2]=(c[s>>2]|0)>>>26;c[s>>2]=c[s>>2]&67108863;c[o>>2]=(c[o>>2]|0)+((c[t>>2]|0)*5|0);c[t>>2]=(c[o>>2]|0)>>>26;c[o>>2]=c[o>>2]&67108863;c[p>>2]=(c[p>>2]|0)+(c[t>>2]|0);c[u>>2]=(c[o>>2]|0)+5;c[t>>2]=(c[u>>2]|0)>>>26;c[u>>2]=c[u>>2]&67108863;c[v>>2]=(c[p>>2]|0)+(c[t>>2]|0);c[t>>2]=(c[v>>2]|0)>>>26;c[v>>2]=c[v>>2]&67108863;c[w>>2]=(c[q>>2]|0)+(c[t>>2]|0);c[t>>2]=(c[w>>2]|0)>>>26;c[w>>2]=c[w>>2]&67108863;c[x>>2]=(c[r>>2]|0)+(c[t>>2]|0);c[t>>2]=(c[x>>2]|0)>>>26;c[x>>2]=c[x>>2]&67108863;c[y>>2]=(c[s>>2]|0)+(c[t>>2]|0)-67108864;c[A>>2]=((c[y>>2]|0)>>>31)-1;c[u>>2]=c[u>>2]&c[A>>2];c[v>>2]=c[v>>2]&c[A>>2];c[w>>2]=c[w>>2]&c[A>>2];c[x>>2]=c[x>>2]&c[A>>2];c[y>>2]=c[y>>2]&c[A>>2];c[A>>2]=~c[A>>2];c[o>>2]=c[o>>2]&c[A>>2]|c[u>>2];c[p>>2]=c[p>>2]&c[A>>2]|c[v>>2];c[q>>2]=c[q>>2]&c[A>>2]|c[w>>2];c[r>>2]=c[r>>2]&c[A>>2]|c[x>>2];c[s>>2]=c[s>>2]&c[A>>2]|c[y>>2];c[o>>2]=c[o>>2]|c[p>>2]<<26;c[p>>2]=(c[p>>2]|0)>>>6|c[q>>2]<<20;c[q>>2]=(c[q>>2]|0)>>>12|c[r>>2]<<14;c[r>>2]=(c[r>>2]|0)>>>18|c[s>>2]<<8;s=Ww(c[o>>2]|0,0,c[(c[n>>2]|0)+40>>2]|0,0)|0;y=z;c[y>>2]=s;c[y+4>>2]=D;c[o>>2]=c[z>>2];y=Ww(c[p>>2]|0,0,c[(c[n>>2]|0)+40+4>>2]|0,0)|0;s=Ww(y|0,D|0,c[z+4>>2]|0,0)|0;y=z;c[y>>2]=s;c[y+4>>2]=D;c[p>>2]=c[z>>2];y=Ww(c[q>>2]|0,0,c[(c[n>>2]|0)+40+8>>2]|0,0)|0;s=Ww(y|0,D|0,c[z+4>>2]|0,0)|0;y=z;c[y>>2]=s;c[y+4>>2]=D;c[q>>2]=c[z>>2];y=Ww(c[r>>2]|0,0,c[(c[n>>2]|0)+40+12>>2]|0,0)|0;s=Ww(y|0,D|0,c[z+4>>2]|0,0)|0;y=z;c[y>>2]=s;c[y+4>>2]=D;c[r>>2]=c[z>>2];Yr(c[k>>2]|0,c[o>>2]|0);Yr((c[k>>2]|0)+4|0,c[p>>2]|0);Yr((c[k>>2]|0)+8|0,c[q>>2]|0);Yr((c[k>>2]|0)+12|0,c[r>>2]|0);c[(c[n>>2]|0)+20>>2]=0;c[(c[n>>2]|0)+20+4>>2]=0;c[(c[n>>2]|0)+20+8>>2]=0;c[(c[n>>2]|0)+20+12>>2]=0;c[(c[n>>2]|0)+20+16>>2]=0;c[c[n>>2]>>2]=0;c[(c[n>>2]|0)+4>>2]=0;c[(c[n>>2]|0)+8>>2]=0;c[(c[n>>2]|0)+12>>2]=0;c[(c[n>>2]|0)+16>>2]=0;c[(c[n>>2]|0)+40>>2]=0;c[(c[n>>2]|0)+40+4>>2]=0;c[(c[n>>2]|0)+40+8>>2]=0;c[(c[n>>2]|0)+40+12>>2]=0;l=g;return 100+(c[B>>2]|0)|0}function Yr(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=b;c[g>>2]=d;c[h>>2]=c[f>>2];a[(c[h>>2]|0)+3>>0]=(c[g>>2]|0)>>>24;a[(c[h>>2]|0)+2>>0]=(c[g>>2]|0)>>>16;a[(c[h>>2]|0)+1>>0]=(c[g>>2]|0)>>>8;a[c[h>>2]>>0]=c[g>>2];l=e;return}function Zr(a){a=a|0;var b=0,e=0,f=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=b+4|0;f=b;c[e>>2]=a;c[f>>2]=c[e>>2];l=b;return (d[(c[f>>2]|0)+3>>0]|0)<<24|(d[(c[f>>2]|0)+2>>0]|0)<<16|(d[(c[f>>2]|0)+1>>0]|0)<<8|(d[c[f>>2]>>0]|0)|0}function _r(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;h=l;l=l+144|0;if((l|0)>=(m|0))$(144);i=h+124|0;j=h+120|0;k=h+116|0;n=h+112|0;o=h+20|0;p=h+16|0;q=h+12|0;r=h+128|0;s=h;t=h+8|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[n>>2]=g;g=o;f=g+92|0;do{c[g>>2]=0;g=g+4|0}while((g|0)<(f|0));Sr(o,c[n>>2]|0,32)|0;Or(o,c[j>>2]|0,c[k>>2]|0);Rr(o,c[i>>2]|0);c[p>>2]=o;c[q>>2]=92;a[r>>0]=0;o=s;c[o>>2]=d[r>>0];c[o+4>>2]=0;while(1){if(!(c[p>>2]&7|0?(c[q>>2]|0)!=0:0))break;a[c[p>>2]>>0]=a[r>>0]|0;c[p>>2]=(c[p>>2]|0)+1;c[q>>2]=(c[q>>2]|0)+-1}if((c[q>>2]|0)>>>0>=8){o=s;i=gx(c[o>>2]|0,c[o+4>>2]|0,16843009,16843009)|0;o=s;c[o>>2]=i;c[o+4>>2]=D;do{c[t>>2]=c[p>>2];o=s;i=c[o+4>>2]|0;k=c[t>>2]|0;c[k>>2]=c[o>>2];c[k+4>>2]=i;c[q>>2]=(c[q>>2]|0)-8;c[p>>2]=(c[p>>2]|0)+8}while((c[q>>2]|0)>>>0>=8)}while(1){if(!(c[q>>2]|0))break;a[c[p>>2]>>0]=a[r>>0]|0;c[p>>2]=(c[p>>2]|0)+1;c[q>>2]=(c[q>>2]|0)+-1}l=h;return}function $r(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;if(c[d>>2]|0){bs();l=b;return}else{as();l=b;return}}function as(){if(c[17782]|0)return;c[17782]=1;return}function bs(){var a=0,b=0;as();cs();if(c[17759]|0){gs();return}if(c[17760]|0)a=Df(1,664)|0;else a=Cf(1,664)|0;c[17759]=a;if(c[17760]|0)b=Df(1,664)|0;else b=Cf(1,664)|0;c[17761]=b;c[17762]=ds()|0;if(!(c[17762]|0)){c[17763]=1;c[17762]=3}c[17764]=fs()|0;gs();return}function cs(){var a=0,b=0,d=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=a;d=a+4|0;c[d>>2]=Ht(13016)|0;if(c[d>>2]|0){c[b>>2]=Bt(c[d>>2]|0)|0;We(50663,b)}else{c[17765]=1;l=a;return}}function ds(){var a=0,b=0,d=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=a;d=a+4|0;if(($v(52864,4)|0)==0?($v(52876,4)|0)==0:0){c[d>>2]=4;l=a;return c[d>>2]|0}We(Je(50625)|0,b);return 0}function es(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0;g=l;l=l+32|0;if((l|0)>=(m|0))$(32);h=g+24|0;i=g+20|0;j=g+12|0;k=g+8|0;n=g+4|0;c[g+28>>2]=b;c[h>>2]=d;c[i>>2]=e;c[g+16>>2]=f;if(!(c[17766]|0)){Te(Je(50519)|0,g);c[17766]=1;f=kb(0)|0;vw(S(f,_v()|0)|0)}f=zf(c[i>>2]|0)|0;c[k>>2]=f;c[n>>2]=f;c[j>>2]=c[i>>2];while(1){f=c[j>>2]|0;c[j>>2]=f+-1;if(!f)break;f=1+~~(+(ww()|0)*256.0/2147483648.0)-1&255;e=c[n>>2]|0;c[n>>2]=e+1;a[e>>0]=f}hs(c[k>>2]|0,c[i>>2]|0,c[h>>2]|0);vf(c[k>>2]|0);l=g;return 0}function fs(){return 0}function gs(){var a=0,b=0,d=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=a;d=a+4|0;c[17765]=0;c[d>>2]=It(13016)|0;if(c[d>>2]|0){c[b>>2]=Bt(c[d>>2]|0)|0;We(50482,b)}else{l=a;return}}function hs(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0;g=l;l=l+32|0;if((l|0)>=(m|0))$(32);h=g+16|0;i=g+12|0;j=g+8|0;k=g+4|0;n=g;c[h>>2]=b;c[i>>2]=e;c[j>>2]=f;c[k>>2]=c[h>>2];c[n>>2]=0;if(!(c[17765]|0))Se(50570,50585,1074,50601);c[17775]=(c[17775]|0)+(c[i>>2]|0);c[17776]=(c[17776]|0)+1;while(1){h=c[i>>2]|0;c[i>>2]=h+-1;if(!h)break;h=c[k>>2]|0;c[k>>2]=h+1;f=d[h>>0]|0;h=c[17777]|0;c[17777]=h+1;e=(c[17759]|0)+h|0;a[e>>0]=(d[e>>0]|0)^f;c[n>>2]=(c[n>>2]|0)+1;if((c[17777]|0)>>>0<600)continue;if(!((c[j>>2]|0)>>>0<3|(c[17778]|0)!=0)?(c[17779]=(c[17779]|0)+(c[n>>2]|0),c[n>>2]=0,(c[17779]|0)>>>0>=600):0)c[17778]=1;c[17777]=0;is(c[17759]|0);c[17767]=(c[17767]|0)+1;c[17780]=((c[i>>2]|0)!=0^1)&1}l=g;return}function is(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0;e=l;l=l+224|0;if((l|0)>=(m|0))$(224);f=e+208|0;g=e+204|0;h=e+200|0;i=e+196|0;j=e+192|0;k=e+188|0;n=e;o=e+184|0;c[f>>2]=b;c[g>>2]=(c[f>>2]|0)+600;if(!(c[17765]|0))Se(50570,50585,615,50616);$k(n);c[i>>2]=(c[f>>2]|0)+600;b=c[g>>2]|0;p=(c[i>>2]|0)+-20|0;q=b+20|0;do{a[b>>0]=a[p>>0]|0;b=b+1|0;p=p+1|0}while((b|0)<(q|0));b=(c[g>>2]|0)+20|0;p=c[f>>2]|0;q=b+44|0;do{a[b>>0]=a[p>>0]|0;b=b+1|0;p=p+1|0}while((b|0)<(q|0));al(n,c[g>>2]|0);b=c[f>>2]|0;p=c[g>>2]|0;q=b+20|0;do{a[b>>0]=a[p>>0]|0;b=b+1|0;p=p+1|0}while((b|0)<(q|0));a:do if(c[17781]|0?(c[f>>2]|0)==(c[17759]|0):0){c[j>>2]=0;while(1){if((c[j>>2]|0)>=20)break a;r=(c[f>>2]|0)+(c[j>>2]|0)|0;a[r>>0]=(d[r>>0]|0)^(d[72298+(c[j>>2]|0)>>0]|0);c[j>>2]=(c[j>>2]|0)+1}}while(0);c[h>>2]=c[f>>2];c[k>>2]=1;while(1){if((c[k>>2]|0)>=30)break;b=c[g>>2]|0;p=c[h>>2]|0;q=b+20|0;do{a[b>>0]=a[p>>0]|0;b=b+1|0;p=p+1|0}while((b|0)<(q|0));c[h>>2]=(c[h>>2]|0)+20;b:do if(((c[h>>2]|0)+20+64|0)>>>0<(c[i>>2]|0)>>>0){b=(c[g>>2]|0)+20|0;p=(c[h>>2]|0)+20|0;q=b+44|0;do{a[b>>0]=a[p>>0]|0;b=b+1|0;p=p+1|0}while((b|0)<(q|0))}else{c[o>>2]=(c[h>>2]|0)+20;c[j>>2]=20;while(1){if((c[j>>2]|0)>=64)break b;if((c[o>>2]|0)>>>0>=(c[i>>2]|0)>>>0)c[o>>2]=c[f>>2];r=c[o>>2]|0;c[o>>2]=r+1;a[(c[g>>2]|0)+(c[j>>2]|0)>>0]=a[r>>0]|0;c[j>>2]=(c[j>>2]|0)+1}}while(0);al(n,c[g>>2]|0);b=c[h>>2]|0;p=c[g>>2]|0;q=b+20|0;do{a[b>>0]=a[p>>0]|0;b=b+1|0;p=p+1|0}while((b|0)<(q|0));c[k>>2]=(c[k>>2]|0)+1}if((c[f>>2]|0)!=(c[17759]|0)){bf(384);cf();l=e;return}bl(72298,c[f>>2]|0,600);c[17781]=1;bf(384);cf();l=e;return}function js(){cs();nt(0,0,0,0)|0;c[17778]=0;gs();return}function ks(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;a=l;l=l+48|0;if((l|0)>=(m|0))$(48);b=a;d=c[17767]|0;e=c[17769]|0;f=c[17770]|0;g=c[17776]|0;h=c[17775]|0;i=c[17768]|0;j=c[17772]|0;k=c[17771]|0;n=c[17774]|0;o=c[17773]|0;p=(kt()|0)!=0;c[b>>2]=600;c[b+4>>2]=d;c[b+8>>2]=e;c[b+12>>2]=f;c[b+16>>2]=g;c[b+20>>2]=h;c[b+24>>2]=i;c[b+28>>2]=j;c[b+32>>2]=k;c[b+36>>2]=n;c[b+40>>2]=o;c[b+44>>2]=p?50700:72319;Te(50716,b);l=a;return}function ls(){c[17760]=1;return}function ms(){c[17783]=1;return}function ns(a){a=a|0;var b=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);c[b>>2]=a;l=b;return}function os(a){a=a|0;var b=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);c[b>>2]=a;l=b;return 0}function ps(){bs();return (c[17763]|0?1:(c[17783]|0)!=0)&1|0}function qs(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;j=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;bs();if((c[17783]|0)!=0&(c[h>>2]|0)>>>0>1)c[h>>2]=1;c[h>>2]=c[h>>2]&3;cs();d=c[g>>2]|0;if((c[h>>2]|0)>>>0>=2){c[17773]=(c[17773]|0)+d;c[17774]=(c[17774]|0)+1}else{c[17771]=(c[17771]|0)+d;c[17772]=(c[17772]|0)+1}c[i>>2]=c[f>>2];while(1){if((c[g>>2]|0)>>>0<=0)break;c[j>>2]=(c[g>>2]|0)>>>0>600?600:c[g>>2]|0;rs(c[i>>2]|0,c[j>>2]|0,c[h>>2]|0);c[g>>2]=(c[g>>2]|0)-(c[j>>2]|0);c[i>>2]=(c[i>>2]|0)+(c[j>>2]|0)}gs();l=e;return}function rs(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;f=l;l=l+64|0;if((l|0)>=(m|0))$(64);g=f;h=f+48|0;i=f+44|0;j=f+40|0;k=f+36|0;n=f+32|0;o=f+28|0;p=f+24|0;q=f+20|0;r=f+16|0;s=f+12|0;t=f+8|0;u=f+4|0;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;if(!(c[17765]|0))Se(50570,50585,934,50840);while(1){c[p>>2]=_v()|0;if((c[3265]|0)==-1)c[3265]=c[p>>2];if((c[3265]|0)!=(c[p>>2]|0)){c[3265]=c[p>>2];c[q>>2]=c[3265];hs(q,4,0);c[17780]=0}if(!(c[17765]|0)){v=8;break}if((c[i>>2]|0)>>>0>600){v=10;break}if((c[17778]|0)==0?ss()|0:0)c[17778]=1;if(!((c[j>>2]|0)!=2|(c[17784]|0)!=0)){c[17785]=0;c[r>>2]=(c[i>>2]|0)-(c[17785]|0);if((c[r>>2]|0)>>>0>=16){if((c[r>>2]|0)>>>0>600){v=18;break}}else c[r>>2]=16;ts(4,c[r>>2]|0,2);c[17785]=(c[17785]|0)+(c[r>>2]|0);c[17784]=1}if((c[j>>2]|0)==2?(c[17785]|0)>>>0<(c[i>>2]|0)>>>0:0){if((c[17785]|0)<0)c[17785]=0;c[s>>2]=(c[i>>2]|0)-(c[17785]|0);if((c[s>>2]|0)>>>0>600){v=25;break}ts(4,c[s>>2]|0,2);c[17785]=(c[17785]|0)+(c[s>>2]|0)}while(1){if(!((c[17778]|0)!=0^1))break;us()}vs();c[t>>2]=c[3265];hs(t,4,0);if(!(c[17780]|0)){is(c[17759]|0);c[17767]=(c[17767]|0)+1}c[k>>2]=0;c[o>>2]=c[17761];c[n>>2]=c[17759];while(1){if((c[k>>2]|0)>=150)break;c[c[o>>2]>>2]=(c[c[n>>2]>>2]|0)+-1515870811;c[k>>2]=(c[k>>2]|0)+1;c[o>>2]=(c[o>>2]|0)+4;c[n>>2]=(c[n>>2]|0)+4}is(c[17759]|0);c[17767]=(c[17767]|0)+1;is(c[17761]|0);c[17768]=(c[17768]|0)+1;while(1){e=c[i>>2]|0;c[i>>2]=e+-1;if(!e)break;e=c[17786]|0;c[17786]=e+1;d=a[(c[17761]|0)+e>>0]|0;e=c[h>>2]|0;c[h>>2]=e+1;a[e>>0]=d;if((c[17786]|0)>>>0>=600)c[17786]=0;c[17785]=(c[17785]|0)+-1}if((c[17785]|0)<0)c[17785]=0;Uw(c[17761]|0,0,600)|0;d=_v()|0;if((d|0)==(c[p>>2]|0)){v=43;break}c[u>>2]=_v()|0;hs(u,4,0);c[17780]=0;c[3265]=c[u>>2]}if((v|0)==8)Se(50570,50585,953,50840);else if((v|0)==10)Xe(50850,g);else if((v|0)==18)Re(50585,979,50840);else if((v|0)==25)Re(50585,995,50840);else if((v|0)==43){l=f;return}}function ss(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;a=l;l=l+768|0;if((l|0)>=(m|0))$(768);b=a+48|0;d=a+40|0;e=a+32|0;f=a+24|0;g=a+16|0;h=a+8|0;i=a+152|0;j=a+148|0;k=a+72|0;n=a+160|0;o=a+68|0;p=a+64|0;q=a+60|0;r=a+56|0;if(!(c[17765]|0))Se(50570,50585,743,50991);if(!(c[17787]|0)){c[i>>2]=0;s=c[i>>2]|0;l=a;return s|0}c[j>>2]=gw(c[17787]|0,0,a)|0;if((c[j>>2]|0)==-1?(c[(xu()|0)>>2]|0)==2:0){c[17788]=1;c[i>>2]=0;s=c[i>>2]|0;l=a;return s|0}if((c[j>>2]|0)==-1){t=Je(51006)|0;u=c[17787]|0;v=Nu(c[(xu()|0)>>2]|0)|0;c[h>>2]=u;c[h+4>>2]=v;Te(t,h);c[i>>2]=0;s=c[i>>2]|0;l=a;return s|0}h=(ws(c[j>>2]|0,c[17787]|0,0)|0)!=0;t=c[j>>2]|0;if(h){Kv(t)|0;c[i>>2]=0;s=c[i>>2]|0;l=a;return s|0}if(cw(t,k)|0){t=Je(51027)|0;h=c[17787]|0;v=Nu(c[(xu()|0)>>2]|0)|0;c[g>>2]=h;c[g+4>>2]=v;Te(t,g);Kv(c[j>>2]|0)|0;c[i>>2]=0;s=c[i>>2]|0;l=a;return s|0}if((c[k+12>>2]&61440|0)!=32768){g=Je(51048)|0;c[f>>2]=c[17787];Te(g,f);Kv(c[j>>2]|0)|0;c[i>>2]=0;s=c[i>>2]|0;l=a;return s|0}if(!(c[k+36>>2]|0)){Te(Je(51086)|0,e);Kv(c[j>>2]|0)|0;c[17788]=1;c[i>>2]=0;s=c[i>>2]|0;l=a;return s|0}if((c[k+36>>2]|0)!=600){Te(Je(51119)|0,d);Kv(c[j>>2]|0)|0;c[i>>2]=0;s=c[i>>2]|0;l=a;return s|0}do{c[o>>2]=fw(c[j>>2]|0,n,600)|0;if((c[o>>2]|0)!=-1)break}while((c[(xu()|0)>>2]|0)==4);if((c[o>>2]|0)!=600){o=Je(51173)|0;d=c[17787]|0;k=Nu(c[(xu()|0)>>2]|0)|0;c[b>>2]=d;c[b+4>>2]=k;We(o,b)}Kv(c[j>>2]|0)|0;hs(n,600,0);c[p>>2]=_v()|0;hs(p,4,0);c[q>>2]=kb(0)|0;hs(q,4,0);c[r>>2]=Ta()|0;hs(r,4,0);ts(0,16,0);c[17788]=1;c[i>>2]=1;s=c[i>>2]|0;l=a;return s|0}function ts(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e+20|0;g=e+16|0;h=e+12|0;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;if(!(c[17762]|0))We(50902,e);if((Bb[c[17762]&7](3,c[f>>2]|0,c[g>>2]|0,c[h>>2]|0)|0)<0)We(50953,e+8|0);else{l=e;return}}function us(){c[17769]=(c[17769]|0)+1;ts(3,120,1);return}function vs(){var a=0,b=0,d=0,e=0,f=0;a=l;l=l+160|0;if((l|0)>=(m|0))$(160);b=a+144|0;d=a+8|0;e=a+4|0;f=a;if(!(c[17765]|0))Se(50570,50585,1180,50882);c[17770]=(c[17770]|0)+1;if(c[17764]|0)xb[c[17764]&7](3,2);if(lb(b|0,0)|0)Re(50585,1198,50882);else{hs(b,4,2);hs(b+4|0,4,2);Bw(0,d)|0;hs(d,136,2);Uw(d|0,0,136)|0;c[e>>2]=kb(0)|0;hs(e,4,2);c[f>>2]=Ta()|0;hs(f,4,2);lt(3,2);l=a;return}}function ws(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;f=l;l=l+64|0;if((l|0)>=(m|0))$(64);g=f+16|0;h=f+8|0;i=f;j=f+60|0;k=f+56|0;n=f+52|0;o=f+48|0;p=f+32|0;q=f+24|0;r=f+20|0;c[k>>2]=a;c[n>>2]=d;c[o>>2]=e;c[r>>2]=0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;b[p>>1]=c[o>>2]|0?1:0;b[p+2>>1]=0;while(1){o=c[k>>2]|0;c[i>>2]=p;if((Lv(o,13,i)|0)!=-1){s=10;break}if((c[(xu()|0)>>2]|0)!=11?(c[(xu()|0)>>2]|0)!=13:0){s=5;break}if((c[r>>2]|0)>2){o=Je(51215)|0;c[g>>2]=c[n>>2];Te(o,g)}c[q>>2]=c[r>>2];c[q+4>>2]=25e4;dw(0,0,0,0,q)|0;if((c[r>>2]|0)>=10)continue;c[r>>2]=(c[r>>2]|0)+1}if((s|0)==5){r=Je(51194)|0;q=c[n>>2]|0;n=Nu(c[(xu()|0)>>2]|0)|0;c[h>>2]=q;c[h+4>>2]=n;Te(r,h);c[j>>2]=-1;t=c[j>>2]|0;l=f;return t|0}else if((s|0)==10){c[j>>2]=0;t=c[j>>2]|0;l=f;return t|0}return 0}function xs(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;if(c[17787]|0)Re(50585,673,51244);else{c[17787]=Ef(c[d>>2]|0)|0;l=b;return}}function ys(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a=l;l=l+64|0;if((l|0)>=(m|0))$(64);b=a+40|0;d=a+32|0;e=a+24|0;f=a+16|0;g=a+8|0;h=a+60|0;i=a+56|0;j=a+52|0;k=a+48|0;as();cs();if(!((c[17787]|0)!=0&(c[17759]|0)!=0&(c[17778]|0)!=0)){gs();l=a;return}if(!(c[17788]|0)){gs();Te(Je(51274)|0,a);l=a;return}c[k>>2]=0;c[i>>2]=c[17761];c[h>>2]=c[17759];while(1){if((c[k>>2]|0)>=150)break;c[c[i>>2]>>2]=(c[c[h>>2]>>2]|0)+-1515870811;c[k>>2]=(c[k>>2]|0)+1;c[i>>2]=(c[i>>2]|0)+4;c[h>>2]=(c[h>>2]|0)+4}is(c[17759]|0);c[17767]=(c[17767]|0)+1;is(c[17761]|0);c[17768]=(c[17768]|0)+1;h=c[17787]|0;c[g>>2]=384;c[j>>2]=gw(h,65,g)|0;do if((c[j>>2]|0)!=-1){g=(ws(c[j>>2]|0,c[17787]|0,1)|0)!=0;h=c[j>>2]|0;if(g){Kv(h)|0;break}if(pw(h,0)|0){h=Je(51333)|0;g=c[17787]|0;i=Nu(c[(xu()|0)>>2]|0)|0;c[e>>2]=g;c[e+4>>2]=i;Te(h,e);Kv(c[j>>2]|0)|0;break}do{c[k>>2]=ew(c[j>>2]|0,c[17761]|0,600)|0;if((c[k>>2]|0)!=-1)break}while((c[(xu()|0)>>2]|0)==4);if((c[k>>2]|0)!=600){h=Je(51333)|0;i=c[17787]|0;g=Nu(c[(xu()|0)>>2]|0)|0;c[d>>2]=i;c[d+4>>2]=g;Te(h,d)}if(Kv(c[j>>2]|0)|0){h=Je(51355)|0;g=c[17787]|0;i=Nu(c[(xu()|0)>>2]|0)|0;c[b>>2]=g;c[b+4>>2]=i;Te(h,b)}}else{h=Je(51310)|0;i=c[17787]|0;g=Nu(c[(xu()|0)>>2]|0)|0;c[f>>2]=i;c[f+4>>2]=g;Te(h,f)}while(0);gs();l=a;return}function zs(){as();cs();if(!(c[17759]|0)){gs();return}vs();gs();return}function As(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;Bs();if(!(c[d>>2]|0)){l=b;return}Cs();do if(c[17789]|0){if(c[(c[17790]|0)+52>>2]|0)Se(51377,51405,767,51419);if(c[(c[17791]|0)+52>>2]|0)Se(51444,51405,768,51419);if(c[(c[17792]|0)+52>>2]|0)Se(51474,51405,769,51419);else{Es(c[17790]|0);Es(c[17791]|0);Es(c[17792]|0);break}}else{c[17789]=Bf(48)|0;c[17790]=Cf(1,68)|0;Ds(c[17790]|0);c[17791]=Df(1,68)|0;Ds(c[17791]|0);c[17792]=Df(1,68)|0;Ds(c[17792]|0)}while(0);Fs();l=b;return}function Bs(){if(c[17794]|0)return;c[17794]=1;c[17793]=0;return}function Cs(){var a=0,b=0,d=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=a;d=a+4|0;c[d>>2]=Ht(13064)|0;if(c[d>>2]|0){c[b>>2]=Bt(c[d>>2]|0)|0;We(51589,b)}else{c[17793]=1;l=a;return}}function Ds(b){b=b|0;var d=0,e=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d;c[e>>2]=b;a[c[e>>2]>>0]=17;a[(c[e>>2]|0)+16>>0]=42;a[(c[e>>2]|0)+33>>0]=-119;a[(c[e>>2]|0)+50>>0]=-4;l=d;return}function Es(a){a=a|0;var b=0,e=0,f=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=b;f=b+4|0;c[f>>2]=a;if((((d[c[f>>2]>>0]|0|0)==17?(d[(c[f>>2]|0)+16>>0]|0|0)==42:0)?(d[(c[f>>2]|0)+33>>0]|0|0)==137:0)?(d[(c[f>>2]|0)+50>>0]|0|0)==252:0){l=b;return}c[e>>2]=c[f>>2];We(51543,e)}function Fs(){var a=0,b=0,d=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=a;d=a+4|0;c[17793]=0;c[d>>2]=It(13064)|0;if(c[d>>2]|0){c[b>>2]=Bt(c[d>>2]|0)|0;We(51507,b)}else{l=a;return}}function Gs(){Cs();nt(0,0,0,0)|0;Fs();return}function Hs(){return}function Is(){return 0}function Js(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;As(1);Cs();d=c[f>>2]|0;f=c[g>>2]|0;if((c[h>>2]|0)==2){Ks(d,f,c[17792]|0);Fs();l=e;return}else{Ks(d,f,c[17791]|0);Fs();l=e;return}} -function Nj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0;e=l;l=l+160|0;if((l|0)>=(m|0))$(160);f=e+144|0;g=e+140|0;h=e+136|0;i=e+132|0;j=e+128|0;k=e+124|0;n=e+120|0;o=e+116|0;p=e+112|0;q=e+108|0;r=e+104|0;s=e+100|0;t=e+96|0;u=e+92|0;v=e+88|0;w=e+84|0;x=e+80|0;y=e+76|0;z=e+72|0;A=e+68|0;B=e+64|0;C=e+60|0;D=e+56|0;E=e+52|0;F=e+48|0;G=e+44|0;H=e+40|0;I=e+36|0;J=e+32|0;K=e+28|0;L=e+24|0;M=e+20|0;N=e+16|0;O=e+12|0;P=e+8|0;Q=e+4|0;R=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=0;c[r>>2]=0;c[s>>2]=0;c[c[h>>2]>>2]=0;c[k>>2]=Tf(c[g>>2]|0,37953,0)|0;if(!(c[k>>2]|0)){d=$f(c[g>>2]|0,0,0)|0;c[c[h>>2]>>2]=d;c[f>>2]=c[c[h>>2]>>2]|0?0:65;S=c[f>>2]|0;l=e;return S|0}c[t>>2]=Tf(c[k>>2]|0,47178,0)|0;if(c[t>>2]|0){if(Fj(c[t>>2]|0,s,(c[i>>2]|0)+8|0)|0)c[r>>2]=1;Rf(c[t>>2]|0)}if((c[(c[i>>2]|0)+8>>2]|0)==5)c[(c[i>>2]|0)+8>>2]=0;c[n>>2]=Tf(c[k>>2]|0,37958,0)|0;if(c[n>>2]|0)T=0;else T=Tf(c[k>>2]|0,40906,0)|0;c[o>>2]=T;a:do if(((c[n>>2]|0)!=0^1)&1^((c[o>>2]|0)!=0^1)&1|0){if(c[r>>2]|0){c[j>>2]=72;break}if((c[(c[i>>2]|0)+8>>2]|0)==0?c[s>>2]&4096|0:0){if(!(c[o>>2]|0)){c[j>>2]=65;break}c[u>>2]=Tf(c[k>>2]|0,37847,0)|0;if(c[u>>2]|0){c[q>>2]=Xf(c[u>>2]|0,1,p)|0;if(c[q>>2]|0){T=Kj(c[q>>2]|0,c[p>>2]|0)|0;c[(c[i>>2]|0)+16>>2]=T;if(!(c[(c[i>>2]|0)+16>>2]|0))c[j>>2]=5}else c[j>>2]=68;Rf(c[u>>2]|0)}else c[j>>2]=65;if(c[j>>2]|0)break;c[v>>2]=Zf(c[o>>2]|0,1,w)|0;if(c[v>>2]|0){if(c[w>>2]<<3>>>0<(c[w>>2]|0)>>>0){vf(c[v>>2]|0);c[j>>2]=67}}else{c[w>>2]=0;c[v>>2]=pf(1)|0;if(!(c[v>>2]|0))c[j>>2]=Et()|0}if(c[j>>2]|0)break;T=Ep(0,c[v>>2]|0,c[w>>2]<<3)|0;c[c[h>>2]>>2]=T;break}do if(c[n>>2]|0?(c[(c[i>>2]|0)+8>>2]|0)==0:0){if((c[s>>2]&16|0)==0?(c[s>>2]&2|0)==0:0)break;if((Uf(c[n>>2]|0)|0)!=3){c[j>>2]=65;break a}T=Xf(c[n>>2]|0,1,p)|0;c[q>>2]=T;if(!((T|0)!=0&(c[p>>2]|0)!=0)){c[j>>2]=65;break a}T=Kj(c[q>>2]|0,c[p>>2]|0)|0;c[(c[i>>2]|0)+16>>2]=T;if(!(c[(c[i>>2]|0)+16>>2]|0)){c[j>>2]=5;break a}T=Zf(c[n>>2]|0,2,y)|0;c[x>>2]=T;if(!T){c[j>>2]=65;break a}T=c[x>>2]|0;if(c[y>>2]<<3>>>0<(c[y>>2]|0)>>>0){vf(T);c[j>>2]=67;break a}else{t=Ep(0,T,c[y>>2]<<3)|0;c[c[h>>2]>>2]=t;break a}}while(0);if(c[o>>2]|0?(c[(c[i>>2]|0)+8>>2]|0)==0:0){if(c[s>>2]&2|0){c[j>>2]=70;break}t=$f(c[o>>2]|0,1,5)|0;c[c[h>>2]>>2]=t;if(c[c[h>>2]>>2]|0)break;c[j>>2]=65;break}if((c[o>>2]|0?(c[(c[i>>2]|0)+8>>2]|0)==1:0)?(c[c[i>>2]>>2]|0)==0:0){c[C>>2]=0;c[D>>2]=0;t=Xf(c[o>>2]|0,1,A)|0;c[z>>2]=t;if(!((t|0)!=0&(c[A>>2]|0)!=0)){c[j>>2]=65;break}c[B>>2]=Tf(c[k>>2]|0,37863,0)|0;if(c[B>>2]|0){c[q>>2]=Xf(c[B>>2]|0,1,p)|0;do if(c[q>>2]|0){if((c[p>>2]|0)>>>0>0){c[C>>2]=pf(c[p>>2]|0)|0;if(c[C>>2]|0){_w(c[C>>2]|0,c[q>>2]|0,c[p>>2]|0)|0;c[D>>2]=c[p>>2];break}else{c[j>>2]=Et()|0;break}}}else c[j>>2]=68;while(0);Rf(c[B>>2]|0);if(c[j>>2]|0)break}c[j>>2]=cl(c[h>>2]|0,c[(c[i>>2]|0)+4>>2]|0,c[z>>2]|0,c[A>>2]|0,c[C>>2]|0,c[D>>2]|0)|0;vf(c[C>>2]|0);break}do if(c[n>>2]|0?(c[(c[i>>2]|0)+8>>2]|0)==1:0){if((c[c[i>>2]>>2]|0)!=2?(c[c[i>>2]>>2]|0)!=3:0)break;if((Uf(c[n>>2]|0)|0)!=3){c[j>>2]=65;break a}t=Xf(c[n>>2]|0,1,p)|0;c[q>>2]=t;if(!((t|0)!=0&(c[p>>2]|0)!=0)){c[j>>2]=65;break a}t=Kj(c[q>>2]|0,c[p>>2]|0)|0;c[(c[i>>2]|0)+16>>2]=t;if(!(c[(c[i>>2]|0)+16>>2]|0)){c[j>>2]=5;break a}t=Xf(c[n>>2]|0,2,F)|0;c[E>>2]=t;if((t|0)!=0&(c[F>>2]|0)!=0){c[j>>2]=gl(c[h>>2]|0,c[(c[i>>2]|0)+4>>2]|0,c[E>>2]|0,c[F>>2]|0,c[(c[i>>2]|0)+16>>2]|0)|0;break a}else{c[j>>2]=65;break a}}while(0);do if(c[o>>2]|0?(c[(c[i>>2]|0)+8>>2]|0)==2:0){if((c[c[i>>2]>>2]|0)!=2?(c[c[i>>2]>>2]|0)!=3:0)break;if((Uf(c[o>>2]|0)|0)!=2){c[j>>2]=65;break a}t=Xf(c[o>>2]|0,1,H)|0;c[G>>2]=t;if((t|0)!=0&(c[H>>2]|0)!=0){c[j>>2]=hl(c[h>>2]|0,c[(c[i>>2]|0)+4>>2]|0,c[G>>2]|0,c[H>>2]|0)|0;break a}else{c[j>>2]=65;break a}}while(0);if((c[o>>2]|0?(c[(c[i>>2]|0)+8>>2]|0)==3:0)?(c[c[i>>2]>>2]|0)==0:0){t=Xf(c[o>>2]|0,1,J)|0;c[I>>2]=t;if(!((t|0)!=0&(c[J>>2]|0)!=0)){c[j>>2]=65;break}c[L>>2]=0;c[M>>2]=0;c[K>>2]=Tf(c[k>>2]|0,37847,0)|0;if(c[K>>2]|0){c[q>>2]=Xf(c[K>>2]|0,1,p)|0;do if(c[q>>2]|0){t=Kj(c[q>>2]|0,c[p>>2]|0)|0;c[(c[i>>2]|0)+16>>2]=t;if(c[(c[i>>2]|0)+16>>2]|0)break;c[j>>2]=5}else c[j>>2]=68;while(0);Rf(c[K>>2]|0);if(c[j>>2]|0)break}c[K>>2]=Tf(c[k>>2]|0,37857,0)|0;if(c[K>>2]|0){c[q>>2]=Xf(c[K>>2]|0,1,p)|0;do if(c[q>>2]|0){if((c[p>>2]|0)>>>0<=0)break;t=pf(c[p>>2]|0)|0;c[(c[i>>2]|0)+20>>2]=t;if(c[(c[i>>2]|0)+20>>2]|0){_w(c[(c[i>>2]|0)+20>>2]|0,c[q>>2]|0,c[p>>2]|0)|0;c[(c[i>>2]|0)+24>>2]=c[p>>2];break}else{c[j>>2]=Et()|0;break}}else c[j>>2]=68;while(0);Rf(c[K>>2]|0);if(c[j>>2]|0)break}c[K>>2]=Tf(c[k>>2]|0,37863,0)|0;if(c[K>>2]|0){c[q>>2]=Xf(c[K>>2]|0,1,p)|0;do if(c[q>>2]|0){if((c[p>>2]|0)>>>0<=0)break;c[L>>2]=pf(c[p>>2]|0)|0;if(c[L>>2]|0){_w(c[L>>2]|0,c[q>>2]|0,c[p>>2]|0)|0;c[M>>2]=c[p>>2];break}else{c[j>>2]=Et()|0;break}}else c[j>>2]=68;while(0);Rf(c[K>>2]|0);if(c[j>>2]|0)break}c[j>>2]=il(c[h>>2]|0,c[(c[i>>2]|0)+4>>2]|0,c[(c[i>>2]|0)+16>>2]|0,c[I>>2]|0,c[J>>2]|0,c[(c[i>>2]|0)+20>>2]|0,c[(c[i>>2]|0)+24>>2]|0,c[L>>2]|0,c[M>>2]|0)|0;vf(c[L>>2]|0);break}if((c[n>>2]|0?(c[(c[i>>2]|0)+8>>2]|0)==4:0)?(c[c[i>>2]>>2]|0)==2:0){if((Uf(c[n>>2]|0)|0)!=3){c[j>>2]=65;break}t=Xf(c[n>>2]|0,1,p)|0;c[q>>2]=t;if(!((t|0)!=0&(c[p>>2]|0)!=0)){c[j>>2]=65;break}c[P>>2]=0;c[Q>>2]=0;t=Kj(c[q>>2]|0,c[p>>2]|0)|0;c[(c[i>>2]|0)+16>>2]=t;if(!(c[(c[i>>2]|0)+16>>2]|0)){c[j>>2]=5;break}t=Xf(c[n>>2]|0,2,O)|0;c[N>>2]=t;if(!((t|0)!=0&(c[O>>2]|0)!=0)){c[j>>2]=65;break}c[R>>2]=Tf(c[k>>2]|0,37963,0)|0;do if(c[R>>2]|0){c[q>>2]=Xf(c[R>>2]|0,1,p)|0;if(c[q>>2]|0){t=wv(c[q>>2]|0,0,10)|0;c[(c[i>>2]|0)+28>>2]=t;Rf(c[R>>2]|0);break}else{c[j>>2]=68;break a}}while(0);c[R>>2]=Tf(c[k>>2]|0,37863,0)|0;if(c[R>>2]|0){c[q>>2]=Xf(c[R>>2]|0,1,p)|0;do if(c[q>>2]|0){if((c[p>>2]|0)>>>0<=0)break;c[P>>2]=pf(c[p>>2]|0)|0;if(c[P>>2]|0){_w(c[P>>2]|0,c[q>>2]|0,c[p>>2]|0)|0;c[Q>>2]=c[p>>2];break}else{c[j>>2]=Et()|0;break}}else c[j>>2]=68;while(0);Rf(c[R>>2]|0);if(c[j>>2]|0)break}c[j>>2]=ml(c[h>>2]|0,(c[(c[i>>2]|0)+4>>2]|0)-1|0,c[(c[i>>2]|0)+16>>2]|0,c[N>>2]|0,c[O>>2]|0,c[(c[i>>2]|0)+28>>2]|0,c[P>>2]|0,c[Q>>2]|0)|0;vf(c[P>>2]|0);break}if((c[n>>2]|0?(c[(c[i>>2]|0)+8>>2]|0)==4:0)?(c[c[i>>2]>>2]|0)==3:0){if((Uf(c[n>>2]|0)|0)!=3){c[j>>2]=65;break}t=Xf(c[n>>2]|0,1,p)|0;c[q>>2]=t;if(!((t|0)!=0&(c[p>>2]|0)!=0)){c[j>>2]=65;break}t=Kj(c[q>>2]|0,c[p>>2]|0)|0;c[(c[i>>2]|0)+16>>2]=t;if(!(c[(c[i>>2]|0)+16>>2]|0)){c[j>>2]=5;break}t=$f(c[n>>2]|0,2,5)|0;c[c[h>>2]>>2]=t;if(!(c[c[h>>2]>>2]|0))c[j>>2]=65;c[(c[i>>2]|0)+32>>2]=5;c[(c[i>>2]|0)+36>>2]=c[c[h>>2]>>2];break}c[j>>2]=70}else c[j>>2]=65;while(0);Rf(c[k>>2]|0);Rf(c[n>>2]|0);Rf(c[o>>2]|0);if(c[j>>2]|0){vf(c[(c[i>>2]|0)+20>>2]|0);c[(c[i>>2]|0)+20>>2]=0}else c[(c[i>>2]|0)+12>>2]=c[s>>2];c[f>>2]=c[j>>2];S=c[f>>2]|0;l=e;return S|0}function Oj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+12|0;f=d+8|0;g=d+4|0;h=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=c[e>>2];c[h>>2]=c[(c[g>>2]|0)+36>>2];e=nl(c[h>>2]|0,c[f>>2]|0,(c[(c[g>>2]|0)+4>>2]|0)-1|0,c[(c[g>>2]|0)+16>>2]|0,c[(c[g>>2]|0)+28>>2]|0)|0;l=d;return e|0}function Pj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;b=l;l=l+32|0;if((l|0)>=(m|0))$(32);d=b+16|0;e=b+12|0;f=b+8|0;g=b+4|0;h=b;c[e>>2]=a;c[g>>2]=0;a:while(1){a=c[4504+(c[g>>2]<<2)>>2]|0;c[f>>2]=a;if(!a){i=11;break}a=(sv(c[e>>2]|0,c[(c[f>>2]|0)+12>>2]|0)|0)!=0;j=c[f>>2]|0;if(!a){i=4;break}c[h>>2]=c[j+16>>2];while(1){if(!(c[c[h>>2]>>2]|0))break;if(!(sv(c[e>>2]|0,c[c[h>>2]>>2]|0)|0)){i=8;break a}c[h>>2]=(c[h>>2]|0)+4}c[g>>2]=(c[g>>2]|0)+1}if((i|0)==4){c[d>>2]=j;k=c[d>>2]|0;l=b;return k|0}else if((i|0)==8){c[d>>2]=c[f>>2];k=c[d>>2]|0;l=b;return k|0}else if((i|0)==11){c[d>>2]=0;k=c[d>>2]|0;l=b;return k|0}return 0}function Qj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+8|0;e=b+4|0;f=b;c[e>>2]=a;c[f>>2]=Rj(c[e>>2]|0)|0;if(c[f>>2]|0){c[d>>2]=c[(c[f>>2]|0)+12>>2];g=c[d>>2]|0;l=b;return g|0}else{c[d>>2]=37975;g=c[d>>2]|0;l=b;return g|0}return 0}function Rj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+12|0;e=b+8|0;f=b+4|0;g=b;c[e>>2]=a;c[e>>2]=Sj(c[e>>2]|0)|0;c[f>>2]=0;while(1){a=c[4504+(c[f>>2]<<2)>>2]|0;c[g>>2]=a;if(!a){h=6;break}if((c[e>>2]|0)==(c[c[g>>2]>>2]|0)){h=4;break}c[f>>2]=(c[f>>2]|0)+1}if((h|0)==4){c[d>>2]=c[g>>2];i=c[d>>2]|0;l=b;return i|0}else if((h|0)==6){c[d>>2]=0;i=c[d>>2]|0;l=b;return i|0}return 0}function Sj(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[e>>2]=a;switch(c[e>>2]|0){case 2:{c[d>>2]=1;break}case 3:{c[d>>2]=1;break}case 16:{c[d>>2]=20;break}case 301:{c[d>>2]=18;break}case 302:{c[d>>2]=18;break}default:c[d>>2]=c[e>>2]}l=b;return c[d>>2]|0}function Tj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[c[f>>2]>>2]=0;c[i>>2]=Uj(c[h>>2]|0,0,j,k)|0;do if(!(c[i>>2]|0))if(c[(c[j>>2]|0)+48>>2]|0){c[i>>2]=ub[c[(c[j>>2]|0)+48>>2]&63](c[f>>2]|0,c[g>>2]|0,c[k>>2]|0)|0;break}else{c[i>>2]=69;break}while(0);Rf(c[k>>2]|0);l=e;return c[i>>2]|0}function Uj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0;f=l;l=l+48|0;if((l|0)>=(m|0))$(48);g=f+32|0;h=f+28|0;i=f+24|0;j=f+20|0;k=f+16|0;n=f+12|0;o=f+8|0;p=f+4|0;q=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[c[j>>2]>>2]=0;if(c[k>>2]|0)c[c[k>>2]>>2]=0;c[n>>2]=Tf(c[h>>2]|0,c[i>>2]|0?37977:37989,0)|0;if(!((c[n>>2]|0)!=0|(c[i>>2]|0)!=0))c[n>>2]=Tf(c[h>>2]|0,37977,0)|0;if(!(c[n>>2]|0)){c[g>>2]=65;r=c[g>>2]|0;l=f;return r|0}c[o>>2]=bg(c[n>>2]|0)|0;Rf(c[n>>2]|0);c[n>>2]=c[o>>2];c[p>>2]=_f(c[n>>2]|0,0)|0;if(!(c[p>>2]|0)){Rf(c[n>>2]|0);c[g>>2]=65;r=c[g>>2]|0;l=f;return r|0}c[q>>2]=Pj(c[p>>2]|0)|0;vf(c[p>>2]|0);if(!(c[q>>2]|0)){Rf(c[n>>2]|0);c[g>>2]=4;r=c[g>>2]|0;l=f;return r|0}c[c[j>>2]>>2]=c[q>>2];q=c[n>>2]|0;if(c[k>>2]|0)c[c[k>>2]>>2]=q;else Rf(q);c[g>>2]=0;r=c[g>>2]|0;l=f;return r|0}function Vj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[c[f>>2]>>2]=0;c[i>>2]=Uj(c[h>>2]|0,1,j,k)|0;do if(!(c[i>>2]|0))if(c[(c[j>>2]|0)+52>>2]|0){c[i>>2]=ub[c[(c[j>>2]|0)+52>>2]&63](c[f>>2]|0,c[g>>2]|0,c[k>>2]|0)|0;break}else{c[i>>2]=69;break}while(0);Rf(c[k>>2]|0);l=e;return c[i>>2]|0}function Wj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[c[f>>2]>>2]=0;c[i>>2]=Uj(c[h>>2]|0,1,j,k)|0;do if(!(c[i>>2]|0))if(c[(c[j>>2]|0)+56>>2]|0){c[i>>2]=ub[c[(c[j>>2]|0)+56>>2]&63](c[f>>2]|0,c[g>>2]|0,c[k>>2]|0)|0;break}else{c[i>>2]=69;break}while(0);Rf(c[k>>2]|0);l=e;return c[i>>2]|0}function Xj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=Uj(c[h>>2]|0,0,j,k)|0;do if(!(c[i>>2]|0))if(c[(c[j>>2]|0)+60>>2]|0){c[i>>2]=ub[c[(c[j>>2]|0)+60>>2]&63](c[f>>2]|0,c[g>>2]|0,c[k>>2]|0)|0;break}else{c[i>>2]=69;break}while(0);Rf(c[k>>2]|0);l=e;return c[i>>2]|0}function Yj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+12|0;e=b+8|0;f=b+4|0;g=b;c[d>>2]=a;c[e>>2]=Uj(c[d>>2]|0,1,f,g)|0;do if(!(c[e>>2]|0))if(c[(c[f>>2]|0)+44>>2]|0){c[e>>2]=yb[c[(c[f>>2]|0)+44>>2]&15](c[g>>2]|0)|0;break}else{c[e>>2]=69;break}while(0);Rf(c[g>>2]|0);l=b;return c[e>>2]|0}function Zj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+24|0;f=d+20|0;g=d+16|0;h=d+12|0;i=d+8|0;j=d+4|0;k=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=0;c[h>>2]=0;c[i>>2]=0;c[j>>2]=0;c[c[e>>2]>>2]=0;c[h>>2]=Tf(c[f>>2]|0,38e3,0)|0;do if(c[h>>2]|0){c[i>>2]=bg(c[h>>2]|0)|0;Rf(c[h>>2]|0);c[h>>2]=c[i>>2];c[i>>2]=0;if(!(c[h>>2]|0)){c[k>>2]=68;break}c[j>>2]=_f(c[h>>2]|0,0)|0;if(!(c[j>>2]|0)){c[k>>2]=65;break}c[g>>2]=Pj(c[j>>2]|0)|0;vf(c[j>>2]|0);c[j>>2]=0;if(!(c[g>>2]|0)){c[k>>2]=4;break}if(c[(c[g>>2]|0)+40>>2]|0){c[k>>2]=Db[c[(c[g>>2]|0)+40>>2]&7](c[h>>2]|0,c[e>>2]|0)|0;break}else{c[k>>2]=69;break}}else c[k>>2]=65;while(0);Rf(c[h>>2]|0);vf(c[j>>2]|0);Rf(c[i>>2]|0);l=d;return c[k>>2]|0}function _j(){return 0}function $j(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[g>>2]=b;c[h>>2]=d;c[i>>2]=e;c[g>>2]=Sj(c[g>>2]|0)|0;c[k>>2]=Rj(c[g>>2]|0)|0;if((c[k>>2]|0?(a[(c[k>>2]|0)+4>>0]&1|0)==0:0)?c[(c[k>>2]|0)+68>>2]|0:0){c[j>>2]=ub[c[(c[k>>2]|0)+68>>2]&63](c[g>>2]|0,c[h>>2]|0,c[i>>2]|0)|0;n=c[j>>2]|0;o=ak(n)|0;l=f;return o|0}c[j>>2]=4;if(!(c[i>>2]|0)){n=c[j>>2]|0;o=ak(n)|0;l=f;return o|0}h=c[i>>2]|0;i=c[g>>2]|0;if(c[k>>2]|0?!(a[(c[k>>2]|0)+4>>0]&1|0):0)p=38046;else p=c[k>>2]|0?38007:38026;Eb[h&1](47252,i,38068,p);n=c[j>>2]|0;o=ak(n)|0;l=f;return o|0}function ak(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=bk(1,c[d>>2]|0)|0;l=b;return a|0}function bk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;if(!(c[f>>2]|0)){g=0;l=d;return g|0}g=(c[e>>2]&127)<<24|c[f>>2]&65535;l=d;return g|0}function ck(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[f>>2];f=tk(c[i>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;l=e;return f|0}function dk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[f>>2];if(c[(c[i>>2]|0)+496>>2]|0)Ab[c[(c[i>>2]|0)+496>>2]&3]();f=ub[c[(c[i>>2]|0)+488>>2]&63](c[i>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;l=e;return f|0}function ek(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[f>>2];nk(c[i>>2]|0);if(c[(c[i>>2]|0)+500>>2]|0)Ab[c[(c[i>>2]|0)+500>>2]&3]();f=ub[c[(c[i>>2]|0)+492>>2]&63](c[i>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;l=e;return f|0}function fk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;switch(c[f>>2]|0){case 7:{c[i>>2]=gk(c[g>>2]|0,c[h>>2]|0)|0;break}case 8:{c[i>>2]=hk(c[g>>2]|0,c[h>>2]|0)|0;break}case 9:{c[i>>2]=ik(c[g>>2]|0,c[h>>2]|0)|0;break}default:c[i>>2]=12}l=e;return c[i>>2]|0}function gk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+16|0;f=d+12|0;g=d+8|0;h=d+4|0;i=d;c[f>>2]=a;c[g>>2]=b;c[h>>2]=47242;c[i>>2]=lk()|0;do if(!(c[i>>2]|0)){if(c[f>>2]|0){c[h>>2]=38334;c[i>>2]=mk(2)|0;if(c[i>>2]|0)break;c[h>>2]=38338;c[i>>2]=mk(5)|0;if(c[i>>2]|0)break}c[e>>2]=0;j=c[e>>2]|0;l=d;return j|0}while(0);if(c[g>>2]|0)Eb[c[g>>2]&1](38079,7,c[h>>2]|0,c[i>>2]|0);c[e>>2]=50;j=c[e>>2]|0;l=d;return j|0}function hk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+16|0;f=d+8|0;g=d+4|0;h=d;c[d+12>>2]=a;c[f>>2]=b;c[g>>2]=47242;c[h>>2]=kk()|0;if(!(c[h>>2]|0)){c[e>>2]=0;i=c[e>>2]|0;l=d;return i|0}if(c[f>>2]|0)Eb[c[f>>2]&1](38079,8,c[g>>2]|0,c[h>>2]|0);c[e>>2]=50;i=c[e>>2]|0;l=d;return i|0}function ik(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+16|0;f=d+8|0;g=d+4|0;h=d;c[d+12>>2]=a;c[f>>2]=b;c[g>>2]=47242;c[h>>2]=jk()|0;if(!(c[h>>2]|0)){c[e>>2]=0;i=c[e>>2]|0;l=d;return i|0}if(c[f>>2]|0)Eb[c[f>>2]&1](38079,9,c[g>>2]|0,c[h>>2]|0);c[e>>2]=50;i=c[e>>2]|0;l=d;return i|0}function jk(){var a=0,b=0,d=0,e=0;a=l;l=l+528|0;if((l|0)>=(m|0))$(528);b=a+504|0;d=a;e=a+512|0;ck(d,38086,32)|0;dk(d,e,38118)|0;do if(!(Jv(e,38134,16)|0)){ek(d,e,e)|0;if(Jv(e,38118,16)|0){c[b>>2]=38182;break}else{c[b>>2]=0;break}}else c[b>>2]=38150;while(0);l=a;return c[b>>2]|0}function kk(){var a=0,b=0,d=0,e=0;a=l;l=l+528|0;if((l|0)>=(m|0))$(528);b=a+504|0;d=a;e=a+512|0;ck(d,38214,24)|0;dk(d,e,38238)|0;do if(!(Jv(e,38254,16)|0)){ek(d,e,e)|0;if(Jv(e,38238,16)|0){c[b>>2]=38302;break}else{c[b>>2]=0;break}}else c[b>>2]=38270;while(0);l=a;return c[b>>2]|0}function lk(){var a=0,b=0,d=0,e=0;a=l;l=l+528|0;if((l|0)>=(m|0))$(528);b=a+504|0;d=a;e=a+512|0;ck(d,38455,16)|0;dk(d,e,38471)|0;do if(!(Jv(e,38487,16)|0)){ek(d,e,e)|0;if(Jv(e,38471,16)|0){c[b>>2]=38535;break}else{c[b>>2]=0;break}}else c[b>>2]=38503;while(0);l=a;return c[b>>2]|0}function mk(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;b=l;l=l+48|0;if((l|0)>=(m|0))$(48);d=b+24|0;e=b+20|0;f=b+32|0;g=b+16|0;h=b+12|0;i=b+8|0;j=b+4|0;k=b;c[e>>2]=a;c[j>>2]=0;c[k>>2]=0;c[h>>2]=0;while(1){if((c[h>>2]|0)>>>0>=2)break;if((c[4636+((c[h>>2]|0)*164|0)>>2]|0)==(c[e>>2]|0))break;c[h>>2]=(c[h>>2]|0)+1}if((c[h>>2]|0)==2){Bh(c[j>>2]|0);Bh(c[k>>2]|0);c[d>>2]=38342;n=c[d>>2]|0;l=b;return n|0}c[g>>2]=wh(j,7,c[4636+((c[h>>2]|0)*164|0)>>2]|0,0)|0;if(c[g>>2]|0){Bh(c[j>>2]|0);Bh(c[k>>2]|0);c[d>>2]=38369;n=c[d>>2]|0;l=b;return n|0}c[g>>2]=wh(k,7,c[4636+((c[h>>2]|0)*164|0)>>2]|0,0)|0;e=c[j>>2]|0;if(c[g>>2]|0){Bh(e);Bh(c[k>>2]|0);c[d>>2]=38369;n=c[d>>2]|0;l=b;return n|0}c[g>>2]=Jh(e,4636+((c[h>>2]|0)*164|0)+4|0,16)|0;if(!(c[g>>2]|0))c[g>>2]=Jh(c[k>>2]|0,4636+((c[h>>2]|0)*164|0)+4|0,16)|0;e=c[j>>2]|0;if(c[g>>2]|0){Bh(e);Bh(c[k>>2]|0);c[d>>2]=38374;n=c[d>>2]|0;l=b;return n|0}c[g>>2]=Lh(e,4636+((c[h>>2]|0)*164|0)+20|0,16)|0;if(!(c[g>>2]|0))c[g>>2]=Lh(c[k>>2]|0,4636+((c[h>>2]|0)*164|0)+20|0,16)|0;if(c[g>>2]|0){Bh(c[j>>2]|0);Bh(c[k>>2]|0);c[d>>2]=38382;n=c[d>>2]|0;l=b;return n|0}c[i>>2]=0;while(1){o=c[j>>2]|0;if((c[i>>2]|0)>>>0>=4){p=30;break}c[g>>2]=Ch(o,f,16,4636+((c[h>>2]|0)*164|0)+36+(c[i>>2]<<5)|0,16)|0;if(c[g>>2]|0){p=22;break}if(Jv(f,4636+((c[h>>2]|0)*164|0)+36+(c[i>>2]<<5)+16|0,16)|0){p=24;break}c[g>>2]=Gh(c[k>>2]|0,f,16,4636+((c[h>>2]|0)*164|0)+36+(c[i>>2]<<5)+16|0,16)|0;if(c[g>>2]|0){p=26;break}if(Jv(f,4636+((c[h>>2]|0)*164|0)+36+(c[i>>2]<<5)|0,16)|0){p=28;break}c[i>>2]=(c[i>>2]|0)+1}if((p|0)==22){Bh(c[j>>2]|0);Bh(c[k>>2]|0);c[d>>2]=38389;n=c[d>>2]|0;l=b;return n|0}else if((p|0)==24){Bh(c[j>>2]|0);Bh(c[k>>2]|0);c[d>>2]=38405;n=c[d>>2]|0;l=b;return n|0}else if((p|0)==26){Bh(c[j>>2]|0);Bh(c[k>>2]|0);c[d>>2]=38422;n=c[d>>2]|0;l=b;return n|0}else if((p|0)==28){Bh(c[j>>2]|0);Bh(c[k>>2]|0);c[d>>2]=38438;n=c[d>>2]|0;l=b;return n|0}else if((p|0)==30){Bh(o);Bh(c[k>>2]|0);c[d>>2]=0;n=c[d>>2]|0;l=b;return n|0}return 0}function nk(b){b=b|0;var d=0,e=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d;c[e>>2]=b;if(a[(c[e>>2]|0)+484>>0]&1|0){l=d;return}ok(c[e>>2]|0);b=(c[e>>2]|0)+484|0;a[b>>0]=a[b>>0]&-2|1;l=d;return}function ok(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0;b=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=b+20|0;f=b+16|0;g=b+12|0;h=b+8|0;i=b+4|0;j=b;c[e>>2]=a;c[g>>2]=4965;pk();qk();c[(c[e>>2]|0)+240>>2]=c[c[e>>2]>>2];c[(c[e>>2]|0)+240+4>>2]=c[(c[e>>2]|0)+4>>2];c[(c[e>>2]|0)+240+8>>2]=c[(c[e>>2]|0)+8>>2];c[(c[e>>2]|0)+240+12>>2]=c[(c[e>>2]|0)+12>>2];c[f>>2]=1;while(1){k=(c[e>>2]|0)+(c[f>>2]<<4)|0;if((c[f>>2]|0)>=(c[(c[e>>2]|0)+480>>2]|0))break;c[h>>2]=k;c[i>>2]=(c[e>>2]|0)+240+(c[f>>2]<<4);c[j>>2]=c[c[h>>2]>>2];a=rk(c[5988+((d[(c[g>>2]|0)+(((c[j>>2]|0)>>>0&255)<<2)>>0]|0)<<2)>>2]|0,0)|0;n=a^(rk(c[5988+((d[(c[g>>2]|0)+(((c[j>>2]|0)>>>8&255)<<2)>>0]|0)<<2)>>2]|0,8)|0);a=n^(rk(c[5988+((d[(c[g>>2]|0)+(((c[j>>2]|0)>>>16&255)<<2)>>0]|0)<<2)>>2]|0,16)|0);n=a^(rk(c[5988+((d[(c[g>>2]|0)+(((c[j>>2]|0)>>>24&255)<<2)>>0]|0)<<2)>>2]|0,24)|0);c[c[i>>2]>>2]=n;c[j>>2]=c[(c[h>>2]|0)+4>>2];n=rk(c[5988+((d[(c[g>>2]|0)+(((c[j>>2]|0)>>>0&255)<<2)>>0]|0)<<2)>>2]|0,0)|0;a=n^(rk(c[5988+((d[(c[g>>2]|0)+(((c[j>>2]|0)>>>8&255)<<2)>>0]|0)<<2)>>2]|0,8)|0);n=a^(rk(c[5988+((d[(c[g>>2]|0)+(((c[j>>2]|0)>>>16&255)<<2)>>0]|0)<<2)>>2]|0,16)|0);a=n^(rk(c[5988+((d[(c[g>>2]|0)+(((c[j>>2]|0)>>>24&255)<<2)>>0]|0)<<2)>>2]|0,24)|0);c[(c[i>>2]|0)+4>>2]=a;c[j>>2]=c[(c[h>>2]|0)+8>>2];a=rk(c[5988+((d[(c[g>>2]|0)+(((c[j>>2]|0)>>>0&255)<<2)>>0]|0)<<2)>>2]|0,0)|0;n=a^(rk(c[5988+((d[(c[g>>2]|0)+(((c[j>>2]|0)>>>8&255)<<2)>>0]|0)<<2)>>2]|0,8)|0);a=n^(rk(c[5988+((d[(c[g>>2]|0)+(((c[j>>2]|0)>>>16&255)<<2)>>0]|0)<<2)>>2]|0,16)|0);n=a^(rk(c[5988+((d[(c[g>>2]|0)+(((c[j>>2]|0)>>>24&255)<<2)>>0]|0)<<2)>>2]|0,24)|0);c[(c[i>>2]|0)+8>>2]=n;c[j>>2]=c[(c[h>>2]|0)+12>>2];n=rk(c[5988+((d[(c[g>>2]|0)+(((c[j>>2]|0)>>>0&255)<<2)>>0]|0)<<2)>>2]|0,0)|0;a=n^(rk(c[5988+((d[(c[g>>2]|0)+(((c[j>>2]|0)>>>8&255)<<2)>>0]|0)<<2)>>2]|0,8)|0);n=a^(rk(c[5988+((d[(c[g>>2]|0)+(((c[j>>2]|0)>>>16&255)<<2)>>0]|0)<<2)>>2]|0,16)|0);a=n^(rk(c[5988+((d[(c[g>>2]|0)+(((c[j>>2]|0)>>>24&255)<<2)>>0]|0)<<2)>>2]|0,24)|0);c[(c[i>>2]|0)+12>>2]=a;c[f>>2]=(c[f>>2]|0)+1}c[(c[e>>2]|0)+240+(c[f>>2]<<4)>>2]=c[k>>2];c[(c[e>>2]|0)+240+(c[f>>2]<<4)+4>>2]=c[(c[e>>2]|0)+(c[f>>2]<<4)+4>>2];c[(c[e>>2]|0)+240+(c[f>>2]<<4)+8>>2]=c[(c[e>>2]|0)+(c[f>>2]<<4)+8>>2];c[(c[e>>2]|0)+240+(c[f>>2]<<4)+12>>2]=c[(c[e>>2]|0)+(c[f>>2]<<4)+12>>2];l=b;return}function pk(){sk(4964,1024);return}function qk(){sk(5988,1280);return}function rk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;l=d;return c[e>>2]<<(c[f>>2]&31)|(c[e>>2]|0)>>>(32-(c[f>>2]|0)&31)|0}function sk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[d+8>>2]=a;c[e>>2]=b;c[f>>2]=0;while(1){if((c[f>>2]|0)>>>0>=(c[e>>2]|0)>>>0)break;c[f>>2]=(c[f>>2]|0)+256}l=d;return}function tk(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;g=l;l=l+144|0;if((l|0)>=(m|0))$(144);h=g+72|0;i=g+132|0;j=g+128|0;k=g+124|0;n=g+120|0;o=g+116|0;p=g+112|0;q=g+108|0;r=g+104|0;s=g+100|0;t=g+96|0;u=g+92|0;v=g+88|0;w=g+8|0;x=g+84|0;y=g+80|0;z=g+136|0;A=g;B=g+76|0;c[j>>2]=b;c[k>>2]=e;c[n>>2]=f;c[t>>2]=0;f=(Wg()|0)!=0;if(!(f|(c[17738]|0)!=0)?(c[17738]=1,c[17739]=uk()|0,c[17739]|0):0){c[h>>2]=c[17739];Ve(43492,h)}if(c[17739]|0){c[i>>2]=50;C=c[i>>2]|0;l=g;return C|0}do if((c[n>>2]|0)==16){c[o>>2]=10;c[u>>2]=4}else{if((c[n>>2]|0)==24){c[o>>2]=12;c[u>>2]=6;break}if((c[n>>2]|0)==32){c[o>>2]=14;c[u>>2]=8;break}c[i>>2]=44;C=c[i>>2]|0;l=g;return C|0}while(0);c[(c[j>>2]|0)+480>>2]=c[o>>2];h=(c[j>>2]|0)+484|0;a[h>>0]=a[h>>0]&-2;c[(c[j>>2]|0)+488>>2]=29;c[(c[j>>2]|0)+492>>2]=30;c[(c[j>>2]|0)+496>>2]=1;c[(c[j>>2]|0)+500>>2]=2;c[v>>2]=4965;pk();c[p>>2]=0;while(1){if((c[p>>2]|0)>>>0>=(c[n>>2]|0)>>>0)break;a[w+(c[p>>2]>>2<<2)+(c[p>>2]&3)>>0]=a[(c[k>>2]|0)+(c[p>>2]|0)>>0]|0;c[p>>2]=(c[p>>2]|0)+1}c[q>>2]=(c[u>>2]|0)-1;while(1){if((c[q>>2]|0)<0)break;c[w+32+(c[q>>2]<<2)>>2]=c[w+(c[q>>2]<<2)>>2];c[q>>2]=(c[q>>2]|0)+-1}c[r>>2]=0;c[s>>2]=0;c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[u>>2]|0))break;if((c[r>>2]|0)>=((c[o>>2]|0)+1|0))break;while(1){if(!((c[q>>2]|0)<(c[u>>2]|0)?(c[s>>2]|0)<4:0))break;c[(c[j>>2]|0)+(c[r>>2]<<4)+(c[s>>2]<<2)>>2]=c[w+32+(c[q>>2]<<2)>>2];c[q>>2]=(c[q>>2]|0)+1;c[s>>2]=(c[s>>2]|0)+1}if((c[s>>2]|0)!=4)continue;c[r>>2]=(c[r>>2]|0)+1;c[s>>2]=0}a:while(1){if((c[r>>2]|0)>=((c[o>>2]|0)+1|0))break;p=w+32|0;a[p>>0]=(d[p>>0]|0)^(d[(c[v>>2]|0)+((d[w+32+((c[u>>2]|0)-1<<2)+1>>0]|0)<<2)>>0]|0);p=w+32+1|0;a[p>>0]=(d[p>>0]|0)^(d[(c[v>>2]|0)+((d[w+32+((c[u>>2]|0)-1<<2)+2>>0]|0)<<2)>>0]|0);p=w+32+2|0;a[p>>0]=(d[p>>0]|0)^(d[(c[v>>2]|0)+((d[w+32+((c[u>>2]|0)-1<<2)+3>>0]|0)<<2)>>0]|0);p=w+32+3|0;a[p>>0]=(d[p>>0]|0)^(d[(c[v>>2]|0)+((d[w+32+((c[u>>2]|0)-1<<2)>>0]|0)<<2)>>0]|0);p=c[t>>2]|0;c[t>>2]=p+1;k=w+32|0;a[k>>0]=(d[k>>0]|0)^c[7268+(p<<2)>>2];p=(c[u>>2]|0)!=8;c[q>>2]=1;b:do if(p)while(1){if((c[q>>2]|0)>=(c[u>>2]|0))break b;k=w+32+(c[q>>2]<<2)|0;c[k>>2]=c[k>>2]^c[w+32+((c[q>>2]|0)-1<<2)>>2];c[q>>2]=(c[q>>2]|0)+1}else{while(1){if((c[q>>2]|0)>=((c[u>>2]|0)/2|0|0))break;k=w+32+(c[q>>2]<<2)|0;c[k>>2]=c[k>>2]^c[w+32+((c[q>>2]|0)-1<<2)>>2];c[q>>2]=(c[q>>2]|0)+1}k=w+32+(((c[u>>2]|0)/2|0)<<2)|0;a[k>>0]=(d[k>>0]|0)^(d[(c[v>>2]|0)+((d[w+32+(((c[u>>2]|0)/2|0)-1<<2)>>0]|0)<<2)>>0]|0);k=w+32+(((c[u>>2]|0)/2|0)<<2)+1|0;a[k>>0]=(d[k>>0]|0)^(d[(c[v>>2]|0)+((d[w+32+(((c[u>>2]|0)/2|0)-1<<2)+1>>0]|0)<<2)>>0]|0);k=w+32+(((c[u>>2]|0)/2|0)<<2)+2|0;a[k>>0]=(d[k>>0]|0)^(d[(c[v>>2]|0)+((d[w+32+(((c[u>>2]|0)/2|0)-1<<2)+2>>0]|0)<<2)>>0]|0);k=w+32+(((c[u>>2]|0)/2|0)<<2)+3|0;a[k>>0]=(d[k>>0]|0)^(d[(c[v>>2]|0)+((d[w+32+(((c[u>>2]|0)/2|0)-1<<2)+3>>0]|0)<<2)>>0]|0);c[q>>2]=((c[u>>2]|0)/2|0)+1;while(1){if((c[q>>2]|0)>=(c[u>>2]|0))break b;k=w+32+(c[q>>2]<<2)|0;c[k>>2]=c[k>>2]^c[w+32+((c[q>>2]|0)-1<<2)>>2];c[q>>2]=(c[q>>2]|0)+1}}while(0);c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[u>>2]|0))continue a;if((c[r>>2]|0)>=((c[o>>2]|0)+1|0))continue a;while(1){if(!((c[q>>2]|0)<(c[u>>2]|0)?(c[s>>2]|0)<4:0))break;c[(c[j>>2]|0)+(c[r>>2]<<4)+(c[s>>2]<<2)>>2]=c[w+32+(c[q>>2]<<2)>>2];c[q>>2]=(c[q>>2]|0)+1;c[s>>2]=(c[s>>2]|0)+1}if((c[s>>2]|0)!=4)continue;c[r>>2]=(c[r>>2]|0)+1;c[s>>2]=0}}c[x>>2]=w;c[y>>2]=64;a[z>>0]=0;w=A;c[w>>2]=d[z>>0];c[w+4>>2]=0;while(1){if(!(c[x>>2]&7|0?(c[y>>2]|0)!=0:0))break;a[c[x>>2]>>0]=a[z>>0]|0;c[x>>2]=(c[x>>2]|0)+1;c[y>>2]=(c[y>>2]|0)+-1}if((c[y>>2]|0)>>>0>=8){w=A;s=gx(c[w>>2]|0,c[w+4>>2]|0,16843009,16843009)|0;w=A;c[w>>2]=s;c[w+4>>2]=D;do{c[B>>2]=c[x>>2];w=A;s=c[w+4>>2]|0;r=c[B>>2]|0;c[r>>2]=c[w>>2];c[r+4>>2]=s;c[y>>2]=(c[y>>2]|0)-8;c[x>>2]=(c[x>>2]|0)+8}while((c[y>>2]|0)>>>0>=8)}while(1){if(!(c[y>>2]|0))break;a[c[x>>2]>>0]=a[z>>0]|0;c[x>>2]=(c[x>>2]|0)+1;c[y>>2]=(c[y>>2]|0)+-1}c[i>>2]=0;C=c[i>>2]|0;l=g;return C|0}function uk(){var a=0,b=0,d=0,e=0,f=0,g=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=a+4|0;d=a;e=lk()|0;c[d>>2]=e;do if((!(e|0)?(f=kk()|0,c[d>>2]=f,!(f|0)):0)?(f=jk()|0,c[d>>2]=f,!(f|0)):0){f=Bk()|0;c[d>>2]=f;if(f|0){c[b>>2]=c[d>>2];break}f=Ck()|0;c[d>>2]=f;if(f|0){c[b>>2]=c[d>>2];break}else{c[d>>2]=Dk()|0;c[b>>2]=c[d>>2];break}}else g=4;while(0);if((g|0)==4)c[b>>2]=c[d>>2];l=a;return c[b>>2]|0}function vk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;d=Ak(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;l=e;return d|0}function wk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;d=xk(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;l=e;return d|0}function xk(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;f=l;l=l+64|0;if((l|0)>=(m|0))$(64);g=f+48|0;h=f+44|0;i=f+40|0;j=f+36|0;k=f+32|0;n=f+16|0;o=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=e;c[j>>2]=c[(c[g>>2]|0)+480>>2];c[o>>2]=yk(c[i>>2]|0)|0;c[o+4>>2]=yk((c[i>>2]|0)+4|0)|0;c[o+8>>2]=yk((c[i>>2]|0)+8|0)|0;c[o+12>>2]=yk((c[i>>2]|0)+12|0)|0;c[n>>2]=c[o>>2]^c[(c[g>>2]|0)+240+(c[j>>2]<<4)>>2];c[n+4>>2]=c[o+4>>2]^c[(c[g>>2]|0)+240+(c[j>>2]<<4)+4>>2];c[n+8>>2]=c[o+8>>2]^c[(c[g>>2]|0)+240+(c[j>>2]<<4)+8>>2];c[n+12>>2]=c[o+12>>2]^c[(c[g>>2]|0)+240+(c[j>>2]<<4)+12>>2];c[k>>2]=(c[j>>2]|0)-1;while(1){j=(c[k>>2]|0)>1;c[o>>2]=rk(c[5988+(((c[n>>2]|0)>>>0&255)<<2)>>2]|0,0)|0;c[o+4>>2]=rk(c[5988+(((c[n>>2]|0)>>>8&255)<<2)>>2]|0,8)|0;c[o+8>>2]=rk(c[5988+(((c[n>>2]|0)>>>16&255)<<2)>>2]|0,16)|0;c[o+12>>2]=rk(c[5988+(((c[n>>2]|0)>>>24&255)<<2)>>2]|0,24)|0;if(!j)break;c[n>>2]=c[(c[g>>2]|0)+240+(c[k>>2]<<4)>>2]^c[o>>2];j=rk(c[5988+(((c[n+4>>2]|0)>>>0&255)<<2)>>2]|0,0)|0;i=o+4|0;c[i>>2]=c[i>>2]^j;j=rk(c[5988+(((c[n+4>>2]|0)>>>8&255)<<2)>>2]|0,8)|0;i=o+8|0;c[i>>2]=c[i>>2]^j;j=rk(c[5988+(((c[n+4>>2]|0)>>>16&255)<<2)>>2]|0,16)|0;i=o+12|0;c[i>>2]=c[i>>2]^j;j=rk(c[5988+(((c[n+4>>2]|0)>>>24&255)<<2)>>2]|0,24)|0;c[n>>2]=c[n>>2]^j;c[n+4>>2]=c[(c[g>>2]|0)+240+(c[k>>2]<<4)+4>>2]^c[o+4>>2];j=rk(c[5988+(((c[n+8>>2]|0)>>>0&255)<<2)>>2]|0,0)|0;i=o+8|0;c[i>>2]=c[i>>2]^j;j=rk(c[5988+(((c[n+8>>2]|0)>>>8&255)<<2)>>2]|0,8)|0;i=o+12|0;c[i>>2]=c[i>>2]^j;j=rk(c[5988+(((c[n+8>>2]|0)>>>16&255)<<2)>>2]|0,16)|0;c[n>>2]=c[n>>2]^j;j=rk(c[5988+(((c[n+8>>2]|0)>>>24&255)<<2)>>2]|0,24)|0;i=n+4|0;c[i>>2]=c[i>>2]^j;c[n+8>>2]=c[(c[g>>2]|0)+240+(c[k>>2]<<4)+8>>2]^c[o+8>>2];j=rk(c[5988+(((c[n+12>>2]|0)>>>0&255)<<2)>>2]|0,0)|0;i=o+12|0;c[i>>2]=c[i>>2]^j;j=rk(c[5988+(((c[n+12>>2]|0)>>>8&255)<<2)>>2]|0,8)|0;c[n>>2]=c[n>>2]^j;j=rk(c[5988+(((c[n+12>>2]|0)>>>16&255)<<2)>>2]|0,16)|0;i=n+4|0;c[i>>2]=c[i>>2]^j;j=rk(c[5988+(((c[n+12>>2]|0)>>>24&255)<<2)>>2]|0,24)|0;i=n+8|0;c[i>>2]=c[i>>2]^j;c[n+12>>2]=c[(c[g>>2]|0)+240+(c[k>>2]<<4)+12>>2]^c[o+12>>2];c[k>>2]=(c[k>>2]|0)+-1;c[o>>2]=rk(c[5988+(((c[n>>2]|0)>>>0&255)<<2)>>2]|0,0)|0;c[o+4>>2]=rk(c[5988+(((c[n>>2]|0)>>>8&255)<<2)>>2]|0,8)|0;c[o+8>>2]=rk(c[5988+(((c[n>>2]|0)>>>16&255)<<2)>>2]|0,16)|0;c[o+12>>2]=rk(c[5988+(((c[n>>2]|0)>>>24&255)<<2)>>2]|0,24)|0;c[n>>2]=c[(c[g>>2]|0)+240+(c[k>>2]<<4)>>2]^c[o>>2];j=rk(c[5988+(((c[n+4>>2]|0)>>>0&255)<<2)>>2]|0,0)|0;i=o+4|0;c[i>>2]=c[i>>2]^j;j=rk(c[5988+(((c[n+4>>2]|0)>>>8&255)<<2)>>2]|0,8)|0;i=o+8|0;c[i>>2]=c[i>>2]^j;j=rk(c[5988+(((c[n+4>>2]|0)>>>16&255)<<2)>>2]|0,16)|0;i=o+12|0;c[i>>2]=c[i>>2]^j;j=rk(c[5988+(((c[n+4>>2]|0)>>>24&255)<<2)>>2]|0,24)|0;c[n>>2]=c[n>>2]^j;c[n+4>>2]=c[(c[g>>2]|0)+240+(c[k>>2]<<4)+4>>2]^c[o+4>>2];j=rk(c[5988+(((c[n+8>>2]|0)>>>0&255)<<2)>>2]|0,0)|0;i=o+8|0;c[i>>2]=c[i>>2]^j;j=rk(c[5988+(((c[n+8>>2]|0)>>>8&255)<<2)>>2]|0,8)|0;i=o+12|0;c[i>>2]=c[i>>2]^j;j=rk(c[5988+(((c[n+8>>2]|0)>>>16&255)<<2)>>2]|0,16)|0;c[n>>2]=c[n>>2]^j;j=rk(c[5988+(((c[n+8>>2]|0)>>>24&255)<<2)>>2]|0,24)|0;i=n+4|0;c[i>>2]=c[i>>2]^j;c[n+8>>2]=c[(c[g>>2]|0)+240+(c[k>>2]<<4)+8>>2]^c[o+8>>2];j=rk(c[5988+(((c[n+12>>2]|0)>>>0&255)<<2)>>2]|0,0)|0;i=o+12|0;c[i>>2]=c[i>>2]^j;j=rk(c[5988+(((c[n+12>>2]|0)>>>8&255)<<2)>>2]|0,8)|0;c[n>>2]=c[n>>2]^j;j=rk(c[5988+(((c[n+12>>2]|0)>>>16&255)<<2)>>2]|0,16)|0;i=n+4|0;c[i>>2]=c[i>>2]^j;j=rk(c[5988+(((c[n+12>>2]|0)>>>24&255)<<2)>>2]|0,24)|0;i=n+8|0;c[i>>2]=c[i>>2]^j;c[n+12>>2]=c[(c[g>>2]|0)+240+(c[k>>2]<<4)+12>>2]^c[o+12>>2];c[k>>2]=(c[k>>2]|0)+-1}c[n>>2]=c[(c[g>>2]|0)+240+16>>2]^c[o>>2];k=rk(c[5988+(((c[n+4>>2]|0)>>>0&255)<<2)>>2]|0,0)|0;j=o+4|0;c[j>>2]=c[j>>2]^k;k=rk(c[5988+(((c[n+4>>2]|0)>>>8&255)<<2)>>2]|0,8)|0;j=o+8|0;c[j>>2]=c[j>>2]^k;k=rk(c[5988+(((c[n+4>>2]|0)>>>16&255)<<2)>>2]|0,16)|0;j=o+12|0;c[j>>2]=c[j>>2]^k;k=rk(c[5988+(((c[n+4>>2]|0)>>>24&255)<<2)>>2]|0,24)|0;c[n>>2]=c[n>>2]^k;c[n+4>>2]=c[(c[g>>2]|0)+240+16+4>>2]^c[o+4>>2];k=rk(c[5988+(((c[n+8>>2]|0)>>>0&255)<<2)>>2]|0,0)|0;j=o+8|0;c[j>>2]=c[j>>2]^k;k=rk(c[5988+(((c[n+8>>2]|0)>>>8&255)<<2)>>2]|0,8)|0;j=o+12|0;c[j>>2]=c[j>>2]^k;k=rk(c[5988+(((c[n+8>>2]|0)>>>16&255)<<2)>>2]|0,16)|0;c[n>>2]=c[n>>2]^k;k=rk(c[5988+(((c[n+8>>2]|0)>>>24&255)<<2)>>2]|0,24)|0;j=n+4|0;c[j>>2]=c[j>>2]^k;c[n+8>>2]=c[(c[g>>2]|0)+240+16+8>>2]^c[o+8>>2];k=rk(c[5988+(((c[n+12>>2]|0)>>>0&255)<<2)>>2]|0,0)|0;j=o+12|0;c[j>>2]=c[j>>2]^k;k=rk(c[5988+(((c[n+12>>2]|0)>>>8&255)<<2)>>2]|0,8)|0;c[n>>2]=c[n>>2]^k;k=rk(c[5988+(((c[n+12>>2]|0)>>>16&255)<<2)>>2]|0,16)|0;j=n+4|0;c[j>>2]=c[j>>2]^k;k=rk(c[5988+(((c[n+12>>2]|0)>>>24&255)<<2)>>2]|0,24)|0;j=n+8|0;c[j>>2]=c[j>>2]^k;c[n+12>>2]=c[(c[g>>2]|0)+240+16+12>>2]^c[o+12>>2];c[o>>2]=(d[7012+((c[n>>2]|0)>>>0&255)>>0]|0)<<0;c[o+4>>2]=(d[7012+((c[n>>2]|0)>>>8&255)>>0]|0)<<8;c[o+8>>2]=(d[7012+((c[n>>2]|0)>>>16&255)>>0]|0)<<16;c[o+12>>2]=(d[7012+((c[n>>2]|0)>>>24&255)>>0]|0)<<24;c[n>>2]=c[o>>2]^c[(c[g>>2]|0)+240>>2];k=o+4|0;c[k>>2]=c[k>>2]^(d[7012+((c[n+4>>2]|0)>>>0&255)>>0]|0)<<0;k=o+8|0;c[k>>2]=c[k>>2]^(d[7012+((c[n+4>>2]|0)>>>8&255)>>0]|0)<<8;k=o+12|0;c[k>>2]=c[k>>2]^(d[7012+((c[n+4>>2]|0)>>>16&255)>>0]|0)<<16;c[n>>2]=c[n>>2]^(d[7012+((c[n+4>>2]|0)>>>24&255)>>0]|0)<<24;c[n+4>>2]=c[o+4>>2]^c[(c[g>>2]|0)+240+4>>2];k=o+8|0;c[k>>2]=c[k>>2]^(d[7012+((c[n+8>>2]|0)>>>0&255)>>0]|0)<<0;k=o+12|0;c[k>>2]=c[k>>2]^(d[7012+((c[n+8>>2]|0)>>>8&255)>>0]|0)<<8;c[n>>2]=c[n>>2]^(d[7012+((c[n+8>>2]|0)>>>16&255)>>0]|0)<<16;k=n+4|0;c[k>>2]=c[k>>2]^(d[7012+((c[n+8>>2]|0)>>>24&255)>>0]|0)<<24;c[n+8>>2]=c[o+8>>2]^c[(c[g>>2]|0)+240+8>>2];k=o+12|0;c[k>>2]=c[k>>2]^(d[7012+((c[n+12>>2]|0)>>>0&255)>>0]|0)<<0;c[n>>2]=c[n>>2]^(d[7012+((c[n+12>>2]|0)>>>8&255)>>0]|0)<<8;k=n+4|0;c[k>>2]=c[k>>2]^(d[7012+((c[n+12>>2]|0)>>>16&255)>>0]|0)<<16;k=n+8|0;c[k>>2]=c[k>>2]^(d[7012+((c[n+12>>2]|0)>>>24&255)>>0]|0)<<24;c[n+12>>2]=c[o+12>>2]^c[(c[g>>2]|0)+240+12>>2];zk(c[h>>2]|0,c[n>>2]|0);zk((c[h>>2]|0)+4|0,c[n+4>>2]|0);zk((c[h>>2]|0)+8|0,c[n+8>>2]|0);zk((c[h>>2]|0)+12|0,c[n+12>>2]|0);l=f;return 64}function yk(a){a=a|0;var b=0,e=0,f=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=b+4|0;f=b;c[e>>2]=a;c[f>>2]=c[e>>2];l=b;return (d[(c[f>>2]|0)+3>>0]|0)<<24|(d[(c[f>>2]|0)+2>>0]|0)<<16|(d[(c[f>>2]|0)+1>>0]|0)<<8|(d[c[f>>2]>>0]|0)|0}function zk(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=b;c[g>>2]=d;c[h>>2]=c[f>>2];a[(c[h>>2]|0)+3>>0]=(c[g>>2]|0)>>>24;a[(c[h>>2]|0)+2>>0]=(c[g>>2]|0)>>>16;a[(c[h>>2]|0)+1>>0]=(c[g>>2]|0)>>>8;a[c[h>>2]>>0]=c[g>>2];l=e;return}function Ak(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;f=l;l=l+64|0;if((l|0)>=(m|0))$(64);g=f+52|0;h=f+48|0;i=f+44|0;j=f+40|0;k=f+36|0;n=f+32|0;o=f+16|0;p=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=e;c[j>>2]=4965;c[k>>2]=c[(c[g>>2]|0)+480>>2];c[p>>2]=yk(c[i>>2]|0)|0;c[p+4>>2]=yk((c[i>>2]|0)+4|0)|0;c[p+8>>2]=yk((c[i>>2]|0)+8|0)|0;c[p+12>>2]=yk((c[i>>2]|0)+12|0)|0;c[o>>2]=c[p>>2]^c[c[g>>2]>>2];c[o+4>>2]=c[p+4>>2]^c[(c[g>>2]|0)+4>>2];c[o+8>>2]=c[p+8>>2]^c[(c[g>>2]|0)+8>>2];c[o+12>>2]=c[p+12>>2]^c[(c[g>>2]|0)+12>>2];c[p>>2]=rk(c[4964+(((c[o>>2]|0)>>>0&255)<<2)>>2]|0,0)|0;c[p+12>>2]=rk(c[4964+(((c[o>>2]|0)>>>8&255)<<2)>>2]|0,8)|0;c[p+8>>2]=rk(c[4964+(((c[o>>2]|0)>>>16&255)<<2)>>2]|0,16)|0;c[p+4>>2]=rk(c[4964+(((c[o>>2]|0)>>>24&255)<<2)>>2]|0,24)|0;c[o>>2]=c[(c[g>>2]|0)+16>>2]^c[p>>2];i=rk(c[4964+(((c[o+4>>2]|0)>>>0&255)<<2)>>2]|0,0)|0;e=p+4|0;c[e>>2]=c[e>>2]^i;i=rk(c[4964+(((c[o+4>>2]|0)>>>8&255)<<2)>>2]|0,8)|0;c[o>>2]=c[o>>2]^i;i=rk(c[4964+(((c[o+4>>2]|0)>>>16&255)<<2)>>2]|0,16)|0;e=p+12|0;c[e>>2]=c[e>>2]^i;i=rk(c[4964+(((c[o+4>>2]|0)>>>24&255)<<2)>>2]|0,24)|0;e=p+8|0;c[e>>2]=c[e>>2]^i;c[o+4>>2]=c[(c[g>>2]|0)+16+4>>2]^c[p+4>>2];i=rk(c[4964+(((c[o+8>>2]|0)>>>0&255)<<2)>>2]|0,0)|0;e=p+8|0;c[e>>2]=c[e>>2]^i;i=rk(c[4964+(((c[o+8>>2]|0)>>>8&255)<<2)>>2]|0,8)|0;e=o+4|0;c[e>>2]=c[e>>2]^i;i=rk(c[4964+(((c[o+8>>2]|0)>>>16&255)<<2)>>2]|0,16)|0;c[o>>2]=c[o>>2]^i;i=rk(c[4964+(((c[o+8>>2]|0)>>>24&255)<<2)>>2]|0,24)|0;e=p+12|0;c[e>>2]=c[e>>2]^i;c[o+8>>2]=c[(c[g>>2]|0)+16+8>>2]^c[p+8>>2];i=rk(c[4964+(((c[o+12>>2]|0)>>>0&255)<<2)>>2]|0,0)|0;e=p+12|0;c[e>>2]=c[e>>2]^i;i=rk(c[4964+(((c[o+12>>2]|0)>>>8&255)<<2)>>2]|0,8)|0;e=o+8|0;c[e>>2]=c[e>>2]^i;i=rk(c[4964+(((c[o+12>>2]|0)>>>16&255)<<2)>>2]|0,16)|0;e=o+4|0;c[e>>2]=c[e>>2]^i;i=rk(c[4964+(((c[o+12>>2]|0)>>>24&255)<<2)>>2]|0,24)|0;c[o>>2]=c[o>>2]^i;c[o+12>>2]=c[(c[g>>2]|0)+16+12>>2]^c[p+12>>2];c[n>>2]=2;while(1){q=(c[o>>2]|0)>>>0&255;if((c[n>>2]|0)>=(c[k>>2]|0))break;c[p>>2]=rk(c[4964+(q<<2)>>2]|0,0)|0;c[p+12>>2]=rk(c[4964+(((c[o>>2]|0)>>>8&255)<<2)>>2]|0,8)|0;c[p+8>>2]=rk(c[4964+(((c[o>>2]|0)>>>16&255)<<2)>>2]|0,16)|0;c[p+4>>2]=rk(c[4964+(((c[o>>2]|0)>>>24&255)<<2)>>2]|0,24)|0;c[o>>2]=c[(c[g>>2]|0)+(c[n>>2]<<4)>>2]^c[p>>2];i=rk(c[4964+(((c[o+4>>2]|0)>>>0&255)<<2)>>2]|0,0)|0;e=p+4|0;c[e>>2]=c[e>>2]^i;i=rk(c[4964+(((c[o+4>>2]|0)>>>8&255)<<2)>>2]|0,8)|0;c[o>>2]=c[o>>2]^i;i=rk(c[4964+(((c[o+4>>2]|0)>>>16&255)<<2)>>2]|0,16)|0;e=p+12|0;c[e>>2]=c[e>>2]^i;i=rk(c[4964+(((c[o+4>>2]|0)>>>24&255)<<2)>>2]|0,24)|0;e=p+8|0;c[e>>2]=c[e>>2]^i;c[o+4>>2]=c[(c[g>>2]|0)+(c[n>>2]<<4)+4>>2]^c[p+4>>2];i=rk(c[4964+(((c[o+8>>2]|0)>>>0&255)<<2)>>2]|0,0)|0;e=p+8|0;c[e>>2]=c[e>>2]^i;i=rk(c[4964+(((c[o+8>>2]|0)>>>8&255)<<2)>>2]|0,8)|0;e=o+4|0;c[e>>2]=c[e>>2]^i;i=rk(c[4964+(((c[o+8>>2]|0)>>>16&255)<<2)>>2]|0,16)|0;c[o>>2]=c[o>>2]^i;i=rk(c[4964+(((c[o+8>>2]|0)>>>24&255)<<2)>>2]|0,24)|0;e=p+12|0;c[e>>2]=c[e>>2]^i;c[o+8>>2]=c[(c[g>>2]|0)+(c[n>>2]<<4)+8>>2]^c[p+8>>2];i=rk(c[4964+(((c[o+12>>2]|0)>>>0&255)<<2)>>2]|0,0)|0;e=p+12|0;c[e>>2]=c[e>>2]^i;i=rk(c[4964+(((c[o+12>>2]|0)>>>8&255)<<2)>>2]|0,8)|0;e=o+8|0;c[e>>2]=c[e>>2]^i;i=rk(c[4964+(((c[o+12>>2]|0)>>>16&255)<<2)>>2]|0,16)|0;e=o+4|0;c[e>>2]=c[e>>2]^i;i=rk(c[4964+(((c[o+12>>2]|0)>>>24&255)<<2)>>2]|0,24)|0;c[o>>2]=c[o>>2]^i;c[o+12>>2]=c[(c[g>>2]|0)+(c[n>>2]<<4)+12>>2]^c[p+12>>2];c[n>>2]=(c[n>>2]|0)+1;c[p>>2]=rk(c[4964+(((c[o>>2]|0)>>>0&255)<<2)>>2]|0,0)|0;c[p+12>>2]=rk(c[4964+(((c[o>>2]|0)>>>8&255)<<2)>>2]|0,8)|0;c[p+8>>2]=rk(c[4964+(((c[o>>2]|0)>>>16&255)<<2)>>2]|0,16)|0;c[p+4>>2]=rk(c[4964+(((c[o>>2]|0)>>>24&255)<<2)>>2]|0,24)|0;c[o>>2]=c[(c[g>>2]|0)+(c[n>>2]<<4)>>2]^c[p>>2];i=rk(c[4964+(((c[o+4>>2]|0)>>>0&255)<<2)>>2]|0,0)|0;e=p+4|0;c[e>>2]=c[e>>2]^i;i=rk(c[4964+(((c[o+4>>2]|0)>>>8&255)<<2)>>2]|0,8)|0;c[o>>2]=c[o>>2]^i;i=rk(c[4964+(((c[o+4>>2]|0)>>>16&255)<<2)>>2]|0,16)|0;e=p+12|0;c[e>>2]=c[e>>2]^i;i=rk(c[4964+(((c[o+4>>2]|0)>>>24&255)<<2)>>2]|0,24)|0;e=p+8|0;c[e>>2]=c[e>>2]^i;c[o+4>>2]=c[(c[g>>2]|0)+(c[n>>2]<<4)+4>>2]^c[p+4>>2];i=rk(c[4964+(((c[o+8>>2]|0)>>>0&255)<<2)>>2]|0,0)|0;e=p+8|0;c[e>>2]=c[e>>2]^i;i=rk(c[4964+(((c[o+8>>2]|0)>>>8&255)<<2)>>2]|0,8)|0;e=o+4|0;c[e>>2]=c[e>>2]^i;i=rk(c[4964+(((c[o+8>>2]|0)>>>16&255)<<2)>>2]|0,16)|0;c[o>>2]=c[o>>2]^i;i=rk(c[4964+(((c[o+8>>2]|0)>>>24&255)<<2)>>2]|0,24)|0;e=p+12|0;c[e>>2]=c[e>>2]^i;c[o+8>>2]=c[(c[g>>2]|0)+(c[n>>2]<<4)+8>>2]^c[p+8>>2];i=rk(c[4964+(((c[o+12>>2]|0)>>>0&255)<<2)>>2]|0,0)|0;e=p+12|0;c[e>>2]=c[e>>2]^i;i=rk(c[4964+(((c[o+12>>2]|0)>>>8&255)<<2)>>2]|0,8)|0;e=o+8|0;c[e>>2]=c[e>>2]^i;i=rk(c[4964+(((c[o+12>>2]|0)>>>16&255)<<2)>>2]|0,16)|0;e=o+4|0;c[e>>2]=c[e>>2]^i;i=rk(c[4964+(((c[o+12>>2]|0)>>>24&255)<<2)>>2]|0,24)|0;c[o>>2]=c[o>>2]^i;c[o+12>>2]=c[(c[g>>2]|0)+(c[n>>2]<<4)+12>>2]^c[p+12>>2];c[n>>2]=(c[n>>2]|0)+1}c[p>>2]=(d[(c[j>>2]|0)+(q<<2)>>0]|0)<<0;c[p+12>>2]=(d[(c[j>>2]|0)+(((c[o>>2]|0)>>>8&255)<<2)>>0]|0)<<8;c[p+8>>2]=(d[(c[j>>2]|0)+(((c[o>>2]|0)>>>16&255)<<2)>>0]|0)<<16;c[p+4>>2]=(d[(c[j>>2]|0)+(((c[o>>2]|0)>>>24&255)<<2)>>0]|0)<<24;c[o>>2]=c[(c[g>>2]|0)+(c[n>>2]<<4)>>2]^c[p>>2];q=p+4|0;c[q>>2]=c[q>>2]^(d[(c[j>>2]|0)+(((c[o+4>>2]|0)>>>0&255)<<2)>>0]|0)<<0;c[o>>2]=c[o>>2]^(d[(c[j>>2]|0)+(((c[o+4>>2]|0)>>>8&255)<<2)>>0]|0)<<8;q=p+12|0;c[q>>2]=c[q>>2]^(d[(c[j>>2]|0)+(((c[o+4>>2]|0)>>>16&255)<<2)>>0]|0)<<16;q=p+8|0;c[q>>2]=c[q>>2]^(d[(c[j>>2]|0)+(((c[o+4>>2]|0)>>>24&255)<<2)>>0]|0)<<24;c[o+4>>2]=c[(c[g>>2]|0)+(c[n>>2]<<4)+4>>2]^c[p+4>>2];q=p+8|0;c[q>>2]=c[q>>2]^(d[(c[j>>2]|0)+(((c[o+8>>2]|0)>>>0&255)<<2)>>0]|0)<<0;q=o+4|0;c[q>>2]=c[q>>2]^(d[(c[j>>2]|0)+(((c[o+8>>2]|0)>>>8&255)<<2)>>0]|0)<<8;c[o>>2]=c[o>>2]^(d[(c[j>>2]|0)+(((c[o+8>>2]|0)>>>16&255)<<2)>>0]|0)<<16;q=p+12|0;c[q>>2]=c[q>>2]^(d[(c[j>>2]|0)+(((c[o+8>>2]|0)>>>24&255)<<2)>>0]|0)<<24;c[o+8>>2]=c[(c[g>>2]|0)+(c[n>>2]<<4)+8>>2]^c[p+8>>2];q=p+12|0;c[q>>2]=c[q>>2]^(d[(c[j>>2]|0)+(((c[o+12>>2]|0)>>>0&255)<<2)>>0]|0)<<0;q=o+8|0;c[q>>2]=c[q>>2]^(d[(c[j>>2]|0)+(((c[o+12>>2]|0)>>>8&255)<<2)>>0]|0)<<8;q=o+4|0;c[q>>2]=c[q>>2]^(d[(c[j>>2]|0)+(((c[o+12>>2]|0)>>>16&255)<<2)>>0]|0)<<16;c[o>>2]=c[o>>2]^(d[(c[j>>2]|0)+(((c[o+12>>2]|0)>>>24&255)<<2)>>0]|0)<<24;c[o+12>>2]=c[(c[g>>2]|0)+(c[n>>2]<<4)+12>>2]^c[p+12>>2];zk(c[h>>2]|0,c[o>>2]|0);zk((c[h>>2]|0)+4|0,c[o+4>>2]|0);zk((c[h>>2]|0)+8|0,c[o+8>>2]|0);zk((c[h>>2]|0)+12|0,c[o+12>>2]|0);l=f;return 64}function Bk(){var a=0,b=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);c[a+8>>2]=9;c[a+4>>2]=16;c[a>>2]=504;b=wr(38075,1,2,4,9,16,504)|0;l=a;return b|0}function Ck(){var a=0,b=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);c[a+8>>2]=10;c[a+4>>2]=16;c[a>>2]=504;b=sr(38075,1,2,3,10,16,504)|0;l=a;return b|0}function Dk(){var a=0,b=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);c[a+8>>2]=10;c[a+4>>2]=16;c[a>>2]=504;b=ur(38075,1,2,2,10,16,504)|0;l=a;return b|0}function Ek(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;g=l;l=l+48|0;if((l|0)>=(m|0))$(48);h=g+36|0;i=g+32|0;j=g+28|0;k=g+24|0;n=g+20|0;o=g+16|0;p=g+12|0;q=g+8|0;r=g+4|0;s=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[n>>2]=f;c[o>>2]=c[h>>2];c[p>>2]=c[j>>2];c[q>>2]=c[k>>2];c[r>>2]=0;if(c[(c[o>>2]|0)+496>>2]|0)Ab[c[(c[o>>2]|0)+496>>2]&3]();c[s>>2]=c[(c[o>>2]|0)+488>>2];while(1){if(!(c[n>>2]|0))break;c[r>>2]=ub[c[s>>2]&63](c[o>>2]|0,c[i>>2]|0,c[i>>2]|0)|0;Fk(c[p>>2]|0,c[i>>2]|0,c[q>>2]|0,16);c[p>>2]=(c[p>>2]|0)+16;c[q>>2]=(c[q>>2]|0)+16;c[n>>2]=(c[n>>2]|0)+-1}if(!(c[r>>2]|0)){l=g;return}bf((c[r>>2]|0)+16|0);cf();l=g;return}function Fk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f+12|0;h=f+8|0;i=f+4|0;j=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;Gk(c[g>>2]|0,c[i>>2]|0,c[h>>2]|0,c[i>>2]|0,c[j>>2]|0);l=f;return}function Gk(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;i=l;l=l+64|0;if((l|0)>=(m|0))$(64);j=i+56|0;k=i+52|0;n=i+48|0;o=i+44|0;p=i+40|0;q=i+36|0;r=i+32|0;s=i+28|0;t=i+24|0;u=i+60|0;v=i+20|0;w=i+16|0;x=i+12|0;y=i+8|0;z=i+4|0;c[j>>2]=b;c[k>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;c[q>>2]=c[j>>2];c[r>>2]=c[n>>2];c[s>>2]=c[k>>2];c[t>>2]=c[o>>2];c[i>>2]=3;if(!((c[t>>2]|c[s>>2]|c[q>>2]|c[r>>2])&3)){c[v>>2]=c[q>>2];c[y>>2]=c[s>>2];c[w>>2]=c[r>>2];c[x>>2]=c[t>>2];while(1){if((c[p>>2]|0)>>>0<4)break;o=c[x>>2]|0;c[x>>2]=o+4;c[z>>2]=c[o>>2];o=c[c[w>>2]>>2]|0;k=c[y>>2]|0;c[y>>2]=k+4;n=o^c[k>>2];k=c[v>>2]|0;c[v>>2]=k+4;c[k>>2]=n;n=c[z>>2]|0;k=c[w>>2]|0;c[w>>2]=k+4;c[k>>2]=n;c[p>>2]=(c[p>>2]|0)-4}c[q>>2]=c[v>>2];c[s>>2]=c[y>>2];c[r>>2]=c[w>>2];c[t>>2]=c[x>>2]}while(1){if(!(c[p>>2]|0))break;x=c[t>>2]|0;c[t>>2]=x+1;a[u>>0]=a[x>>0]|0;x=d[c[r>>2]>>0]|0;w=c[s>>2]|0;c[s>>2]=w+1;y=(x^(d[w>>0]|0))&255;w=c[q>>2]|0;c[q>>2]=w+1;a[w>>0]=y;y=a[u>>0]|0;w=c[r>>2]|0;c[r>>2]=w+1;a[w>>0]=y;c[p>>2]=(c[p>>2]|0)+-1}l=i;return}function Hk(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;i=l;l=l+80|0;if((l|0)>=(m|0))$(80);j=i+72|0;k=i+68|0;n=i+64|0;o=i+60|0;p=i+56|0;q=i+52|0;r=i+48|0;s=i+44|0;t=i+40|0;u=i;v=i+36|0;w=i+32|0;x=i+28|0;y=i+76|0;z=i+16|0;A=i+24|0;c[j>>2]=b;c[k>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;c[q>>2]=c[j>>2];c[r>>2]=c[n>>2];c[s>>2]=c[o>>2];c[t>>2]=0;nk(c[q>>2]|0);if(c[(c[q>>2]|0)+500>>2]|0)Ab[c[(c[q>>2]|0)+500>>2]&3]();c[v>>2]=c[(c[q>>2]|0)+492>>2];while(1){if(!(c[p>>2]|0))break;c[t>>2]=ub[c[v>>2]&63](c[q>>2]|0,u,c[s>>2]|0)|0;Gk(c[r>>2]|0,u,c[k>>2]|0,c[s>>2]|0,16);c[s>>2]=(c[s>>2]|0)+16;c[r>>2]=(c[r>>2]|0)+16;c[p>>2]=(c[p>>2]|0)+-1}c[w>>2]=u;c[x>>2]=16;a[y>>0]=0;u=z;c[u>>2]=d[y>>0];c[u+4>>2]=0;while(1){if(!(c[w>>2]&7|0?(c[x>>2]|0)!=0:0))break;a[c[w>>2]>>0]=a[y>>0]|0;c[w>>2]=(c[w>>2]|0)+1;c[x>>2]=(c[x>>2]|0)+-1}if((c[x>>2]|0)>>>0>=8){u=z;p=gx(c[u>>2]|0,c[u+4>>2]|0,16843009,16843009)|0;u=z;c[u>>2]=p;c[u+4>>2]=D;do{c[A>>2]=c[w>>2];u=z;p=c[u+4>>2]|0;r=c[A>>2]|0;c[r>>2]=c[u>>2];c[r+4>>2]=p;c[x>>2]=(c[x>>2]|0)-8;c[w>>2]=(c[w>>2]|0)+8}while((c[x>>2]|0)>>>0>=8)}while(1){if(!(c[x>>2]|0))break;a[c[w>>2]>>0]=a[y>>0]|0;c[w>>2]=(c[w>>2]|0)+1;c[x>>2]=(c[x>>2]|0)+-1}if(!(c[t>>2]|0)){l=i;return}bf((c[t>>2]|0)+16|0);cf();l=i;return}function Ik(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;i=l;l=l+96|0;if((l|0)>=(m|0))$(96);j=i+76|0;k=i+72|0;n=i+68|0;o=i+64|0;p=i+60|0;q=i+56|0;r=i+52|0;s=i+48|0;t=i+44|0;u=i+40|0;v=i;w=i+36|0;x=i+32|0;y=i+28|0;z=i+80|0;A=i+16|0;B=i+24|0;c[j>>2]=b;c[k>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;c[q>>2]=c[j>>2];c[r>>2]=c[n>>2];c[s>>2]=c[o>>2];c[t>>2]=0;if(c[(c[q>>2]|0)+496>>2]|0)Ab[c[(c[q>>2]|0)+496>>2]&3]();c[w>>2]=c[(c[q>>2]|0)+488>>2];while(1){if(!(c[p>>2]|0))break;c[t>>2]=ub[c[w>>2]&63](c[q>>2]|0,v,c[k>>2]|0)|0;Jk(c[r>>2]|0,v,c[s>>2]|0,16);c[r>>2]=(c[r>>2]|0)+16;c[s>>2]=(c[s>>2]|0)+16;c[u>>2]=16;while(1){if((c[u>>2]|0)<=0)break;o=(c[k>>2]|0)+((c[u>>2]|0)-1)|0;a[o>>0]=(a[o>>0]|0)+1<<24>>24;if(a[(c[k>>2]|0)+((c[u>>2]|0)-1)>>0]|0)break;c[u>>2]=(c[u>>2]|0)+-1}c[p>>2]=(c[p>>2]|0)+-1}c[x>>2]=v;c[y>>2]=16;a[z>>0]=0;v=A;c[v>>2]=d[z>>0];c[v+4>>2]=0;while(1){if(!(c[x>>2]&7|0?(c[y>>2]|0)!=0:0))break;a[c[x>>2]>>0]=a[z>>0]|0;c[x>>2]=(c[x>>2]|0)+1;c[y>>2]=(c[y>>2]|0)+-1}if((c[y>>2]|0)>>>0>=8){v=A;p=gx(c[v>>2]|0,c[v+4>>2]|0,16843009,16843009)|0;v=A;c[v>>2]=p;c[v+4>>2]=D;do{c[B>>2]=c[x>>2];v=A;p=c[v+4>>2]|0;u=c[B>>2]|0;c[u>>2]=c[v>>2];c[u+4>>2]=p;c[y>>2]=(c[y>>2]|0)-8;c[x>>2]=(c[x>>2]|0)+8}while((c[y>>2]|0)>>>0>=8)}while(1){if(!(c[y>>2]|0))break;a[c[x>>2]>>0]=a[z>>0]|0;c[x>>2]=(c[x>>2]|0)+1;c[y>>2]=(c[y>>2]|0)+-1}if(!(c[t>>2]|0)){l=i;return}bf((c[t>>2]|0)+16|0);cf();l=i;return}function Jk(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;h=l;l=l+48|0;if((l|0)>=(m|0))$(48);i=h+40|0;j=h+36|0;k=h+32|0;n=h+28|0;o=h+24|0;p=h+20|0;q=h+16|0;r=h+12|0;s=h+8|0;t=h+4|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[n>>2]=g;c[o>>2]=c[i>>2];c[p>>2]=c[j>>2];c[q>>2]=c[k>>2];c[h>>2]=3;if(!((c[o>>2]|c[p>>2]|c[q>>2])&3)){c[r>>2]=c[o>>2];c[s>>2]=c[p>>2];c[t>>2]=c[q>>2];while(1){if((c[n>>2]|0)>>>0<4)break;k=c[s>>2]|0;c[s>>2]=k+4;j=c[k>>2]|0;k=c[t>>2]|0;c[t>>2]=k+4;i=j^c[k>>2];k=c[r>>2]|0;c[r>>2]=k+4;c[k>>2]=i;c[n>>2]=(c[n>>2]|0)-4}c[o>>2]=c[r>>2];c[p>>2]=c[s>>2];c[q>>2]=c[t>>2]}while(1){if(!(c[n>>2]|0))break;t=c[p>>2]|0;c[p>>2]=t+1;s=d[t>>0]|0;t=c[q>>2]|0;c[q>>2]=t+1;r=(s^(d[t>>0]|0))&255;t=c[o>>2]|0;c[o>>2]=t+1;a[t>>0]=r;c[n>>2]=(c[n>>2]|0)+-1}l=h;return}function Kk(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;g=l;l=l+48|0;if((l|0)>=(m|0))$(48);h=g+36|0;i=g+32|0;j=g+28|0;k=g+24|0;n=g+20|0;o=g+16|0;p=g+12|0;q=g+8|0;r=g+4|0;s=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[n>>2]=f;c[o>>2]=c[h>>2];c[p>>2]=c[j>>2];c[q>>2]=c[k>>2];c[r>>2]=0;if(c[(c[o>>2]|0)+496>>2]|0)Ab[c[(c[o>>2]|0)+496>>2]&3]();c[s>>2]=c[(c[o>>2]|0)+488>>2];while(1){if(!(c[n>>2]|0))break;c[r>>2]=ub[c[s>>2]&63](c[o>>2]|0,c[i>>2]|0,c[i>>2]|0)|0;Lk(c[p>>2]|0,c[i>>2]|0,c[q>>2]|0,16);c[p>>2]=(c[p>>2]|0)+16;c[q>>2]=(c[q>>2]|0)+16;c[n>>2]=(c[n>>2]|0)+-1}if(!(c[r>>2]|0)){l=g;return}bf((c[r>>2]|0)+16|0);cf();l=g;return}function Lk(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;h=l;l=l+48|0;if((l|0)>=(m|0))$(48);i=h+40|0;j=h+36|0;k=h+32|0;n=h+28|0;o=h+24|0;p=h+20|0;q=h+16|0;r=h+12|0;s=h+8|0;t=h+4|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[n>>2]=g;c[o>>2]=c[i>>2];c[p>>2]=c[j>>2];c[q>>2]=c[k>>2];c[h>>2]=3;if(!((c[q>>2]|c[o>>2]|c[p>>2])&3)){c[r>>2]=c[o>>2];c[s>>2]=c[p>>2];c[t>>2]=c[q>>2];while(1){if((c[n>>2]|0)>>>0<4)break;k=c[t>>2]|0;c[t>>2]=k+4;j=c[k>>2]|0;k=c[s>>2]|0;c[s>>2]=k+4;i=c[k>>2]^j;c[k>>2]=i;k=c[r>>2]|0;c[r>>2]=k+4;c[k>>2]=i;c[n>>2]=(c[n>>2]|0)-4}c[o>>2]=c[r>>2];c[p>>2]=c[s>>2];c[q>>2]=c[t>>2]}while(1){if(!(c[n>>2]|0))break;t=c[q>>2]|0;c[q>>2]=t+1;s=d[t>>0]|0;t=c[p>>2]|0;c[p>>2]=t+1;r=((d[t>>0]|0)^s)&255;a[t>>0]=r;t=c[o>>2]|0;c[o>>2]=t+1;a[t>>0]=r;c[n>>2]=(c[n>>2]|0)+-1}l=h;return}function Mk(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;h=l;l=l+48|0;if((l|0)>=(m|0))$(48);i=h+44|0;j=h+40|0;k=h+36|0;n=h+32|0;o=h+28|0;p=h+24|0;q=h+20|0;r=h+16|0;s=h+12|0;t=h+8|0;u=h+4|0;v=h;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=c[i>>2];c[r>>2]=c[k>>2];c[s>>2]=c[n>>2];c[u>>2]=0;if(c[(c[q>>2]|0)+496>>2]|0)Ab[c[(c[q>>2]|0)+496>>2]&3]();c[v>>2]=c[(c[q>>2]|0)+488>>2];c[t>>2]=c[j>>2];while(1){if(!(c[o>>2]|0))break;Jk(c[r>>2]|0,c[s>>2]|0,c[t>>2]|0,16);c[u>>2]=ub[c[v>>2]&63](c[q>>2]|0,c[r>>2]|0,c[r>>2]|0)|0;c[t>>2]=c[r>>2];c[s>>2]=(c[s>>2]|0)+16;if(!(c[p>>2]|0))c[r>>2]=(c[r>>2]|0)+16;c[o>>2]=(c[o>>2]|0)+-1}if((c[t>>2]|0)!=(c[j>>2]|0))Nk(c[j>>2]|0,c[t>>2]|0,16);if(!(c[u>>2]|0)){l=h;return}bf((c[u>>2]|0)+16|0);cf();l=h;return}function Nk(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f+28|0;h=f+24|0;i=f+20|0;j=f+16|0;k=f+12|0;n=f+8|0;o=f+4|0;c[g>>2]=b;c[h>>2]=d;c[i>>2]=e;c[j>>2]=c[g>>2];c[k>>2]=c[h>>2];c[f>>2]=3;if(!((c[j>>2]|c[k>>2])&3)){c[n>>2]=c[j>>2];c[o>>2]=c[k>>2];while(1){if((c[i>>2]|0)>>>0<4)break;h=c[o>>2]|0;c[o>>2]=h+4;g=c[h>>2]|0;h=c[n>>2]|0;c[n>>2]=h+4;c[h>>2]=g;c[i>>2]=(c[i>>2]|0)-4}c[j>>2]=c[n>>2];c[k>>2]=c[o>>2]}while(1){if(!(c[i>>2]|0))break;o=c[k>>2]|0;c[k>>2]=o+1;n=a[o>>0]|0;o=c[j>>2]|0;c[j>>2]=o+1;a[o>>0]=n;c[i>>2]=(c[i>>2]|0)+-1}l=f;return}function Ok(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;g=l;l=l+112|0;if((l|0)>=(m|0))$(112);h=g+104|0;i=g+100|0;j=g+96|0;k=g+92|0;n=g+88|0;o=g+84|0;p=g+80|0;q=g+76|0;r=g+72|0;s=g+16|0;t=g+68|0;u=g+40|0;v=g+64|0;w=g+60|0;x=g;y=g+56|0;z=g+32|0;A=g+52|0;B=g+48|0;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[n>>2]=f;c[o>>2]=(c[h>>2]|0)+496;c[p>>2]=c[i>>2];c[q>>2]=c[j>>2];c[r>>2]=0;j=c[o>>2]|0;if(c[n>>2]|0){if(c[j+496>>2]|0)Ab[c[(c[o>>2]|0)+496>>2]&3]()}else{nk(j);if(c[(c[o>>2]|0)+500>>2]|0)Ab[c[(c[o>>2]|0)+500>>2]&3]()}j=c[o>>2]|0;a:do if(c[n>>2]|0){c[t>>2]=c[j+488>>2];while(1){if(!(c[k>>2]|0))break a;i=(c[h>>2]|0)+128+336|0;f=i;e=Ww(c[f>>2]|0,c[f+4>>2]|0,1,0)|0;f=D;d=i;c[d>>2]=e;c[d+4>>2]=f;d=u;c[d>>2]=e;c[d+4>>2]=f;f=u;c[v>>2]=Pk(c[f>>2]|0,c[f+4>>2]|0)|0;if((c[v>>2]|0)>>>0<16)c[w>>2]=(c[h>>2]|0)+128+32+(c[v>>2]<<4);else{f=u;c[w>>2]=Uq(c[h>>2]|0,s,c[f>>2]|0,c[f+4>>2]|0)|0}Qk((c[h>>2]|0)+64|0,c[w>>2]|0,16);Nk(s,c[q>>2]|0,16);Qk((c[h>>2]|0)+80|0,s,16);Qk(s,(c[h>>2]|0)+64|0,16);c[r>>2]=ub[c[t>>2]&63](c[o>>2]|0,s,s)|0;Qk(s,(c[h>>2]|0)+64|0,16);Nk(c[p>>2]|0,s,16);c[q>>2]=(c[q>>2]|0)+16;c[p>>2]=(c[p>>2]|0)+16;c[k>>2]=(c[k>>2]|0)+-1}}else{c[y>>2]=c[j+492>>2];while(1){if(!(c[k>>2]|0))break a;f=(c[h>>2]|0)+128+336|0;d=f;e=Ww(c[d>>2]|0,c[d+4>>2]|0,1,0)|0;d=D;i=f;c[i>>2]=e;c[i+4>>2]=d;i=z;c[i>>2]=e;c[i+4>>2]=d;d=z;c[A>>2]=Pk(c[d>>2]|0,c[d+4>>2]|0)|0;if((c[A>>2]|0)>>>0<16)c[B>>2]=(c[h>>2]|0)+128+32+(c[A>>2]<<4);else{d=z;c[B>>2]=Uq(c[h>>2]|0,x,c[d>>2]|0,c[d+4>>2]|0)|0}Qk((c[h>>2]|0)+64|0,c[B>>2]|0,16);Nk(x,c[q>>2]|0,16);Qk(x,(c[h>>2]|0)+64|0,16);c[r>>2]=ub[c[y>>2]&63](c[o>>2]|0,x,x)|0;Qk(x,(c[h>>2]|0)+64|0,16);Qk((c[h>>2]|0)+80|0,x,16);Nk(c[p>>2]|0,x,16);c[q>>2]=(c[q>>2]|0)+16;c[p>>2]=(c[p>>2]|0)+16;c[k>>2]=(c[k>>2]|0)+-1}}while(0);if(!(c[r>>2]|0)){l=g;return}bf((c[r>>2]|0)+16|0);cf();l=g;return}function Pk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+8|0;f=d;g=f;c[g>>2]=a;c[g+4>>2]=b;b=f;g=c[b+4>>2]|0;if((c[f>>2]|0)!=0|0!=0){c[e>>2]=Rk(c[b>>2]|0)|0;h=c[e>>2]|0;l=d;return h|0}else{c[e>>2]=32+(Rk(g)|0);h=c[e>>2]|0;l=d;return h|0}return 0}function Qk(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;g=l;l=l+32|0;if((l|0)>=(m|0))$(32);h=g+28|0;i=g+24|0;j=g+20|0;k=g+16|0;n=g+12|0;o=g+8|0;p=g+4|0;c[h>>2]=b;c[i>>2]=e;c[j>>2]=f;c[k>>2]=c[h>>2];c[n>>2]=c[i>>2];c[g>>2]=3;if(!((c[k>>2]|c[n>>2])&3)){c[o>>2]=c[k>>2];c[p>>2]=c[n>>2];while(1){if((c[j>>2]|0)>>>0<4)break;i=c[p>>2]|0;c[p>>2]=i+4;h=c[i>>2]|0;i=c[o>>2]|0;c[o>>2]=i+4;c[i>>2]=c[i>>2]^h;c[j>>2]=(c[j>>2]|0)-4}c[k>>2]=c[o>>2];c[n>>2]=c[p>>2]}while(1){if(!(c[j>>2]|0))break;p=c[n>>2]|0;c[n>>2]=p+1;o=d[p>>0]|0;p=c[k>>2]|0;c[k>>2]=p+1;a[p>>0]=(d[p>>0]|0)^o;c[j>>2]=(c[j>>2]|0)+-1}l=g;return}function Rk(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=(c[d>>2]|0)!=0;e=Xw(c[d>>2]|0)|0;l=b;return (a?e:32)|0}function Sk(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;g=l;l=l+96|0;if((l|0)>=(m|0))$(96);h=g+76|0;i=g+72|0;j=g+68|0;k=g+64|0;n=g+60|0;o=g+56|0;p=g;q=g+52|0;r=g+24|0;s=g+48|0;t=g+44|0;u=g+40|0;v=g+36|0;w=g+80|0;x=g+16|0;y=g+32|0;c[h>>2]=b;c[i>>2]=e;c[j>>2]=f;c[k>>2]=(c[h>>2]|0)+496;c[n>>2]=c[i>>2];c[o>>2]=0;if(c[(c[k>>2]|0)+496>>2]|0)Ab[c[(c[k>>2]|0)+496>>2]&3]();c[q>>2]=c[(c[k>>2]|0)+488>>2];while(1){if(!(c[j>>2]|0))break;i=(c[h>>2]|0)+128+344|0;f=i;e=Ww(c[f>>2]|0,c[f+4>>2]|0,1,0)|0;f=D;b=i;c[b>>2]=e;c[b+4>>2]=f;b=r;c[b>>2]=e;c[b+4>>2]=f;f=r;c[s>>2]=Pk(c[f>>2]|0,c[f+4>>2]|0)|0;if((c[s>>2]|0)>>>0<16)c[t>>2]=(c[h>>2]|0)+128+32+(c[s>>2]<<4);else{f=r;c[t>>2]=Uq(c[h>>2]|0,p,c[f>>2]|0,c[f+4>>2]|0)|0}Qk((c[h>>2]|0)+128+304|0,c[t>>2]|0,16);Jk(p,(c[h>>2]|0)+128+304|0,c[n>>2]|0,16);c[o>>2]=ub[c[q>>2]&63](c[k>>2]|0,p,p)|0;Qk((c[h>>2]|0)+128+320|0,p,16);c[n>>2]=(c[n>>2]|0)+16;c[j>>2]=(c[j>>2]|0)+-1}c[u>>2]=p;c[v>>2]=16;a[w>>0]=0;p=x;c[p>>2]=d[w>>0];c[p+4>>2]=0;while(1){if(!(c[u>>2]&7|0?(c[v>>2]|0)!=0:0))break;a[c[u>>2]>>0]=a[w>>0]|0;c[u>>2]=(c[u>>2]|0)+1;c[v>>2]=(c[v>>2]|0)+-1}if((c[v>>2]|0)>>>0>=8){p=x;j=gx(c[p>>2]|0,c[p+4>>2]|0,16843009,16843009)|0;p=x;c[p>>2]=j;c[p+4>>2]=D;do{c[y>>2]=c[u>>2];p=x;j=c[p+4>>2]|0;n=c[y>>2]|0;c[n>>2]=c[p>>2];c[n+4>>2]=j;c[v>>2]=(c[v>>2]|0)-8;c[u>>2]=(c[u>>2]|0)+8}while((c[v>>2]|0)>>>0>=8)}while(1){if(!(c[v>>2]|0))break;a[c[u>>2]>>0]=a[w>>0]|0;c[u>>2]=(c[u>>2]|0)+1;c[v>>2]=(c[v>>2]|0)+-1}if(!(c[o>>2]|0)){l=g;return}bf((c[o>>2]|0)+16|0);cf();l=g;return}function Tk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+8|0;f=d;c[e>>2]=a;c[d+4>>2]=b;c[f>>2]=c[e>>2];c[(c[f>>2]|0)+160>>2]=1732584193;c[(c[f>>2]|0)+164>>2]=-271733879;c[(c[f>>2]|0)+168>>2]=-1732584194;c[(c[f>>2]|0)+172>>2]=271733878;c[(c[f>>2]|0)+176>>2]=-1009589776;e=(c[f>>2]|0)+128|0;c[e>>2]=0;c[e+4>>2]=0;e=(c[f>>2]|0)+136|0;c[e>>2]=0;c[e+4>>2]=0;c[(c[f>>2]|0)+144>>2]=0;c[(c[f>>2]|0)+148>>2]=64;c[(c[f>>2]|0)+152>>2]=31;l=d;return}function Uk(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+28|0;f=d+24|0;g=d+20|0;h=d+16|0;i=d+12|0;j=d+8|0;k=d+4|0;n=d;c[e>>2]=b;c[f>>2]=c[e>>2];Nr(c[f>>2]|0,0,0);c[g>>2]=c[(c[f>>2]|0)+128>>2];c[h>>2]=c[(c[f>>2]|0)+128+4>>2];c[j>>2]=c[g>>2]<<6;c[i>>2]=c[h>>2]<<6|(c[g>>2]|0)>>>26;c[g>>2]=c[j>>2];h=(c[j>>2]|0)+(c[(c[f>>2]|0)+144>>2]|0)|0;c[j>>2]=h;if(h>>>0<(c[g>>2]|0)>>>0)c[i>>2]=(c[i>>2]|0)+1;c[g>>2]=c[j>>2];c[j>>2]=c[j>>2]<<3;c[i>>2]=c[i>>2]<<3;c[i>>2]=c[i>>2]|(c[g>>2]|0)>>>29;g=(c[(c[f>>2]|0)+144>>2]|0)<56;h=(c[f>>2]|0)+144|0;e=c[h>>2]|0;c[h>>2]=e+1;a[(c[f>>2]|0)+e>>0]=-128;a:do if(g)while(1){if((c[(c[f>>2]|0)+144>>2]|0)>=56)break a;e=(c[f>>2]|0)+144|0;h=c[e>>2]|0;c[e>>2]=h+1;a[(c[f>>2]|0)+h>>0]=0}else{while(1){o=c[f>>2]|0;if((c[(c[f>>2]|0)+144>>2]|0)>=64)break;h=o+144|0;e=c[h>>2]|0;c[h>>2]=e+1;a[(c[f>>2]|0)+e>>0]=0}Nr(o,0,0);e=c[f>>2]|0;h=e+56|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(h|0))}while(0);Wk((c[f>>2]|0)+56|0,c[j>>2]|0);Wk((c[f>>2]|0)+60|0,c[i>>2]|0);c[n>>2]=Xk(c[f>>2]|0,c[f>>2]|0,1)|0;bf(c[n>>2]|0);cf();c[k>>2]=c[f>>2];Wk(c[k>>2]|0,c[(c[f>>2]|0)+160>>2]|0);c[k>>2]=(c[k>>2]|0)+4;Wk(c[k>>2]|0,c[(c[f>>2]|0)+164>>2]|0);c[k>>2]=(c[k>>2]|0)+4;Wk(c[k>>2]|0,c[(c[f>>2]|0)+168>>2]|0);c[k>>2]=(c[k>>2]|0)+4;Wk(c[k>>2]|0,c[(c[f>>2]|0)+172>>2]|0);c[k>>2]=(c[k>>2]|0)+4;Wk(c[k>>2]|0,c[(c[f>>2]|0)+176>>2]|0);c[k>>2]=(c[k>>2]|0)+4;l=d;return}function Vk(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=c[d>>2];l=b;return c[e>>2]|0}function Wk(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=b;c[g>>2]=d;c[h>>2]=c[f>>2];a[(c[h>>2]|0)+3>>0]=(c[g>>2]|0)>>>24;a[(c[h>>2]|0)+2>>0]=(c[g>>2]|0)>>>16;a[(c[h>>2]|0)+1>>0]=(c[g>>2]|0)>>>8;a[c[h>>2]>>0]=c[g>>2];l=e;return}function Xk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;do{c[i>>2]=Yk(c[f>>2]|0,c[g>>2]|0)|0;c[g>>2]=(c[g>>2]|0)+64;d=(c[h>>2]|0)+-1|0;c[h>>2]=d}while((d|0)!=0);l=e;return c[i>>2]|0}function Yk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;d=l;l=l+128|0;if((l|0)>=(m|0))$(128);e=d+120|0;f=d+116|0;g=d+112|0;h=d+108|0;i=d+104|0;j=d+100|0;k=d+96|0;n=d+92|0;o=d+88|0;p=d+84|0;q=d+80|0;r=d+76|0;s=d+72|0;t=d+8|0;u=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=c[e>>2];c[u>>2]=0;while(1){if((c[u>>2]|0)>=16)break;e=Zk((c[f>>2]|0)+(c[u>>2]<<2)|0)|0;c[t+(c[u>>2]<<2)>>2]=e;c[u>>2]=(c[u>>2]|0)+1}u=c[(c[g>>2]|0)+160>>2]|0;c[i>>2]=u;c[h>>2]=u;u=c[(c[g>>2]|0)+164>>2]|0;c[k>>2]=u;c[j>>2]=u;u=c[(c[g>>2]|0)+168>>2]|0;c[o>>2]=u;c[n>>2]=u;u=c[(c[g>>2]|0)+172>>2]|0;c[q>>2]=u;c[p>>2]=u;u=c[(c[g>>2]|0)+176>>2]|0;c[s>>2]=u;c[r>>2]=u;c[h>>2]=(c[h>>2]|0)+((c[j>>2]^c[n>>2]^c[p>>2])+0+(c[t>>2]|0));u=_k(c[h>>2]|0,11)|0;c[h>>2]=u+(c[r>>2]|0);c[n>>2]=_k(c[n>>2]|0,10)|0;c[i>>2]=(c[i>>2]|0)+((c[k>>2]^(c[o>>2]|~c[q>>2]))+1352829926+(c[t+20>>2]|0));u=_k(c[i>>2]|0,8)|0;c[i>>2]=u+(c[s>>2]|0);c[o>>2]=_k(c[o>>2]|0,10)|0;c[r>>2]=(c[r>>2]|0)+((c[h>>2]^c[j>>2]^c[n>>2])+0+(c[t+4>>2]|0));u=_k(c[r>>2]|0,14)|0;c[r>>2]=u+(c[p>>2]|0);c[j>>2]=_k(c[j>>2]|0,10)|0;c[s>>2]=(c[s>>2]|0)+((c[i>>2]^(c[k>>2]|~c[o>>2]))+1352829926+(c[t+56>>2]|0));u=_k(c[s>>2]|0,9)|0;c[s>>2]=u+(c[q>>2]|0);c[k>>2]=_k(c[k>>2]|0,10)|0;c[p>>2]=(c[p>>2]|0)+((c[r>>2]^c[h>>2]^c[j>>2])+0+(c[t+8>>2]|0));u=_k(c[p>>2]|0,15)|0;c[p>>2]=u+(c[n>>2]|0);c[h>>2]=_k(c[h>>2]|0,10)|0;c[q>>2]=(c[q>>2]|0)+((c[s>>2]^(c[i>>2]|~c[k>>2]))+1352829926+(c[t+28>>2]|0));u=_k(c[q>>2]|0,9)|0;c[q>>2]=u+(c[o>>2]|0);c[i>>2]=_k(c[i>>2]|0,10)|0;c[n>>2]=(c[n>>2]|0)+((c[p>>2]^c[r>>2]^c[h>>2])+0+(c[t+12>>2]|0));u=_k(c[n>>2]|0,12)|0;c[n>>2]=u+(c[j>>2]|0);c[r>>2]=_k(c[r>>2]|0,10)|0;c[o>>2]=(c[o>>2]|0)+((c[q>>2]^(c[s>>2]|~c[i>>2]))+1352829926+(c[t>>2]|0));u=_k(c[o>>2]|0,11)|0;c[o>>2]=u+(c[k>>2]|0);c[s>>2]=_k(c[s>>2]|0,10)|0;c[j>>2]=(c[j>>2]|0)+((c[n>>2]^c[p>>2]^c[r>>2])+0+(c[t+16>>2]|0));u=_k(c[j>>2]|0,5)|0;c[j>>2]=u+(c[h>>2]|0);c[p>>2]=_k(c[p>>2]|0,10)|0;c[k>>2]=(c[k>>2]|0)+((c[o>>2]^(c[q>>2]|~c[s>>2]))+1352829926+(c[t+36>>2]|0));u=_k(c[k>>2]|0,13)|0;c[k>>2]=u+(c[i>>2]|0);c[q>>2]=_k(c[q>>2]|0,10)|0;c[h>>2]=(c[h>>2]|0)+((c[j>>2]^c[n>>2]^c[p>>2])+0+(c[t+20>>2]|0));u=_k(c[h>>2]|0,8)|0;c[h>>2]=u+(c[r>>2]|0);c[n>>2]=_k(c[n>>2]|0,10)|0;c[i>>2]=(c[i>>2]|0)+((c[k>>2]^(c[o>>2]|~c[q>>2]))+1352829926+(c[t+8>>2]|0));u=_k(c[i>>2]|0,15)|0;c[i>>2]=u+(c[s>>2]|0);c[o>>2]=_k(c[o>>2]|0,10)|0;c[r>>2]=(c[r>>2]|0)+((c[h>>2]^c[j>>2]^c[n>>2])+0+(c[t+24>>2]|0));u=_k(c[r>>2]|0,7)|0;c[r>>2]=u+(c[p>>2]|0);c[j>>2]=_k(c[j>>2]|0,10)|0;c[s>>2]=(c[s>>2]|0)+((c[i>>2]^(c[k>>2]|~c[o>>2]))+1352829926+(c[t+44>>2]|0));u=_k(c[s>>2]|0,15)|0;c[s>>2]=u+(c[q>>2]|0);c[k>>2]=_k(c[k>>2]|0,10)|0;c[p>>2]=(c[p>>2]|0)+((c[r>>2]^c[h>>2]^c[j>>2])+0+(c[t+28>>2]|0));u=_k(c[p>>2]|0,9)|0;c[p>>2]=u+(c[n>>2]|0);c[h>>2]=_k(c[h>>2]|0,10)|0;c[q>>2]=(c[q>>2]|0)+((c[s>>2]^(c[i>>2]|~c[k>>2]))+1352829926+(c[t+16>>2]|0));u=_k(c[q>>2]|0,5)|0;c[q>>2]=u+(c[o>>2]|0);c[i>>2]=_k(c[i>>2]|0,10)|0;c[n>>2]=(c[n>>2]|0)+((c[p>>2]^c[r>>2]^c[h>>2])+0+(c[t+32>>2]|0));u=_k(c[n>>2]|0,11)|0;c[n>>2]=u+(c[j>>2]|0);c[r>>2]=_k(c[r>>2]|0,10)|0;c[o>>2]=(c[o>>2]|0)+((c[q>>2]^(c[s>>2]|~c[i>>2]))+1352829926+(c[t+52>>2]|0));u=_k(c[o>>2]|0,7)|0;c[o>>2]=u+(c[k>>2]|0);c[s>>2]=_k(c[s>>2]|0,10)|0;c[j>>2]=(c[j>>2]|0)+((c[n>>2]^c[p>>2]^c[r>>2])+0+(c[t+36>>2]|0));u=_k(c[j>>2]|0,13)|0;c[j>>2]=u+(c[h>>2]|0);c[p>>2]=_k(c[p>>2]|0,10)|0;c[k>>2]=(c[k>>2]|0)+((c[o>>2]^(c[q>>2]|~c[s>>2]))+1352829926+(c[t+24>>2]|0));u=_k(c[k>>2]|0,7)|0;c[k>>2]=u+(c[i>>2]|0);c[q>>2]=_k(c[q>>2]|0,10)|0;c[h>>2]=(c[h>>2]|0)+((c[j>>2]^c[n>>2]^c[p>>2])+0+(c[t+40>>2]|0));u=_k(c[h>>2]|0,14)|0;c[h>>2]=u+(c[r>>2]|0);c[n>>2]=_k(c[n>>2]|0,10)|0;c[i>>2]=(c[i>>2]|0)+((c[k>>2]^(c[o>>2]|~c[q>>2]))+1352829926+(c[t+60>>2]|0));u=_k(c[i>>2]|0,8)|0;c[i>>2]=u+(c[s>>2]|0);c[o>>2]=_k(c[o>>2]|0,10)|0;c[r>>2]=(c[r>>2]|0)+((c[h>>2]^c[j>>2]^c[n>>2])+0+(c[t+44>>2]|0));u=_k(c[r>>2]|0,15)|0;c[r>>2]=u+(c[p>>2]|0);c[j>>2]=_k(c[j>>2]|0,10)|0;c[s>>2]=(c[s>>2]|0)+((c[i>>2]^(c[k>>2]|~c[o>>2]))+1352829926+(c[t+32>>2]|0));u=_k(c[s>>2]|0,11)|0;c[s>>2]=u+(c[q>>2]|0);c[k>>2]=_k(c[k>>2]|0,10)|0;c[p>>2]=(c[p>>2]|0)+((c[r>>2]^c[h>>2]^c[j>>2])+0+(c[t+48>>2]|0));u=_k(c[p>>2]|0,6)|0;c[p>>2]=u+(c[n>>2]|0);c[h>>2]=_k(c[h>>2]|0,10)|0;c[q>>2]=(c[q>>2]|0)+((c[s>>2]^(c[i>>2]|~c[k>>2]))+1352829926+(c[t+4>>2]|0));u=_k(c[q>>2]|0,14)|0;c[q>>2]=u+(c[o>>2]|0);c[i>>2]=_k(c[i>>2]|0,10)|0;c[n>>2]=(c[n>>2]|0)+((c[p>>2]^c[r>>2]^c[h>>2])+0+(c[t+52>>2]|0));u=_k(c[n>>2]|0,7)|0;c[n>>2]=u+(c[j>>2]|0);c[r>>2]=_k(c[r>>2]|0,10)|0;c[o>>2]=(c[o>>2]|0)+((c[q>>2]^(c[s>>2]|~c[i>>2]))+1352829926+(c[t+40>>2]|0));u=_k(c[o>>2]|0,14)|0;c[o>>2]=u+(c[k>>2]|0);c[s>>2]=_k(c[s>>2]|0,10)|0;c[j>>2]=(c[j>>2]|0)+((c[n>>2]^c[p>>2]^c[r>>2])+0+(c[t+56>>2]|0));u=_k(c[j>>2]|0,9)|0;c[j>>2]=u+(c[h>>2]|0);c[p>>2]=_k(c[p>>2]|0,10)|0;c[k>>2]=(c[k>>2]|0)+((c[o>>2]^(c[q>>2]|~c[s>>2]))+1352829926+(c[t+12>>2]|0));u=_k(c[k>>2]|0,12)|0;c[k>>2]=u+(c[i>>2]|0);c[q>>2]=_k(c[q>>2]|0,10)|0;c[h>>2]=(c[h>>2]|0)+((c[j>>2]^c[n>>2]^c[p>>2])+0+(c[t+60>>2]|0));u=_k(c[h>>2]|0,8)|0;c[h>>2]=u+(c[r>>2]|0);c[n>>2]=_k(c[n>>2]|0,10)|0;c[i>>2]=(c[i>>2]|0)+((c[k>>2]^(c[o>>2]|~c[q>>2]))+1352829926+(c[t+48>>2]|0));u=_k(c[i>>2]|0,6)|0;c[i>>2]=u+(c[s>>2]|0);c[o>>2]=_k(c[o>>2]|0,10)|0;c[r>>2]=(c[r>>2]|0)+((c[h>>2]&c[j>>2]|~c[h>>2]&c[n>>2])+1518500249+(c[t+28>>2]|0));u=_k(c[r>>2]|0,7)|0;c[r>>2]=u+(c[p>>2]|0);c[j>>2]=_k(c[j>>2]|0,10)|0;c[s>>2]=(c[s>>2]|0)+((c[i>>2]&c[o>>2]|c[k>>2]&~c[o>>2])+1548603684+(c[t+24>>2]|0));u=_k(c[s>>2]|0,9)|0;c[s>>2]=u+(c[q>>2]|0);c[k>>2]=_k(c[k>>2]|0,10)|0;c[p>>2]=(c[p>>2]|0)+((c[r>>2]&c[h>>2]|~c[r>>2]&c[j>>2])+1518500249+(c[t+16>>2]|0));u=_k(c[p>>2]|0,6)|0;c[p>>2]=u+(c[n>>2]|0);c[h>>2]=_k(c[h>>2]|0,10)|0;c[q>>2]=(c[q>>2]|0)+((c[s>>2]&c[k>>2]|c[i>>2]&~c[k>>2])+1548603684+(c[t+44>>2]|0));u=_k(c[q>>2]|0,13)|0;c[q>>2]=u+(c[o>>2]|0);c[i>>2]=_k(c[i>>2]|0,10)|0;c[n>>2]=(c[n>>2]|0)+((c[p>>2]&c[r>>2]|~c[p>>2]&c[h>>2])+1518500249+(c[t+52>>2]|0));u=_k(c[n>>2]|0,8)|0;c[n>>2]=u+(c[j>>2]|0);c[r>>2]=_k(c[r>>2]|0,10)|0;c[o>>2]=(c[o>>2]|0)+((c[q>>2]&c[i>>2]|c[s>>2]&~c[i>>2])+1548603684+(c[t+12>>2]|0));u=_k(c[o>>2]|0,15)|0;c[o>>2]=u+(c[k>>2]|0);c[s>>2]=_k(c[s>>2]|0,10)|0;c[j>>2]=(c[j>>2]|0)+((c[n>>2]&c[p>>2]|~c[n>>2]&c[r>>2])+1518500249+(c[t+4>>2]|0));u=_k(c[j>>2]|0,13)|0;c[j>>2]=u+(c[h>>2]|0);c[p>>2]=_k(c[p>>2]|0,10)|0;c[k>>2]=(c[k>>2]|0)+((c[o>>2]&c[s>>2]|c[q>>2]&~c[s>>2])+1548603684+(c[t+28>>2]|0));u=_k(c[k>>2]|0,7)|0;c[k>>2]=u+(c[i>>2]|0);c[q>>2]=_k(c[q>>2]|0,10)|0;c[h>>2]=(c[h>>2]|0)+((c[j>>2]&c[n>>2]|~c[j>>2]&c[p>>2])+1518500249+(c[t+40>>2]|0));u=_k(c[h>>2]|0,11)|0;c[h>>2]=u+(c[r>>2]|0);c[n>>2]=_k(c[n>>2]|0,10)|0;c[i>>2]=(c[i>>2]|0)+((c[k>>2]&c[q>>2]|c[o>>2]&~c[q>>2])+1548603684+(c[t>>2]|0));u=_k(c[i>>2]|0,12)|0;c[i>>2]=u+(c[s>>2]|0);c[o>>2]=_k(c[o>>2]|0,10)|0;c[r>>2]=(c[r>>2]|0)+((c[h>>2]&c[j>>2]|~c[h>>2]&c[n>>2])+1518500249+(c[t+24>>2]|0));u=_k(c[r>>2]|0,9)|0;c[r>>2]=u+(c[p>>2]|0);c[j>>2]=_k(c[j>>2]|0,10)|0;c[s>>2]=(c[s>>2]|0)+((c[i>>2]&c[o>>2]|c[k>>2]&~c[o>>2])+1548603684+(c[t+52>>2]|0));u=_k(c[s>>2]|0,8)|0;c[s>>2]=u+(c[q>>2]|0);c[k>>2]=_k(c[k>>2]|0,10)|0;c[p>>2]=(c[p>>2]|0)+((c[r>>2]&c[h>>2]|~c[r>>2]&c[j>>2])+1518500249+(c[t+60>>2]|0));u=_k(c[p>>2]|0,7)|0;c[p>>2]=u+(c[n>>2]|0);c[h>>2]=_k(c[h>>2]|0,10)|0;c[q>>2]=(c[q>>2]|0)+((c[s>>2]&c[k>>2]|c[i>>2]&~c[k>>2])+1548603684+(c[t+20>>2]|0));u=_k(c[q>>2]|0,9)|0;c[q>>2]=u+(c[o>>2]|0);c[i>>2]=_k(c[i>>2]|0,10)|0;c[n>>2]=(c[n>>2]|0)+((c[p>>2]&c[r>>2]|~c[p>>2]&c[h>>2])+1518500249+(c[t+12>>2]|0));u=_k(c[n>>2]|0,15)|0;c[n>>2]=u+(c[j>>2]|0);c[r>>2]=_k(c[r>>2]|0,10)|0;c[o>>2]=(c[o>>2]|0)+((c[q>>2]&c[i>>2]|c[s>>2]&~c[i>>2])+1548603684+(c[t+40>>2]|0));u=_k(c[o>>2]|0,11)|0;c[o>>2]=u+(c[k>>2]|0);c[s>>2]=_k(c[s>>2]|0,10)|0;c[j>>2]=(c[j>>2]|0)+((c[n>>2]&c[p>>2]|~c[n>>2]&c[r>>2])+1518500249+(c[t+48>>2]|0));u=_k(c[j>>2]|0,7)|0;c[j>>2]=u+(c[h>>2]|0);c[p>>2]=_k(c[p>>2]|0,10)|0;c[k>>2]=(c[k>>2]|0)+((c[o>>2]&c[s>>2]|c[q>>2]&~c[s>>2])+1548603684+(c[t+56>>2]|0));u=_k(c[k>>2]|0,7)|0;c[k>>2]=u+(c[i>>2]|0);c[q>>2]=_k(c[q>>2]|0,10)|0;c[h>>2]=(c[h>>2]|0)+((c[j>>2]&c[n>>2]|~c[j>>2]&c[p>>2])+1518500249+(c[t>>2]|0));u=_k(c[h>>2]|0,12)|0;c[h>>2]=u+(c[r>>2]|0);c[n>>2]=_k(c[n>>2]|0,10)|0;c[i>>2]=(c[i>>2]|0)+((c[k>>2]&c[q>>2]|c[o>>2]&~c[q>>2])+1548603684+(c[t+60>>2]|0));u=_k(c[i>>2]|0,7)|0;c[i>>2]=u+(c[s>>2]|0);c[o>>2]=_k(c[o>>2]|0,10)|0;c[r>>2]=(c[r>>2]|0)+((c[h>>2]&c[j>>2]|~c[h>>2]&c[n>>2])+1518500249+(c[t+36>>2]|0));u=_k(c[r>>2]|0,15)|0;c[r>>2]=u+(c[p>>2]|0);c[j>>2]=_k(c[j>>2]|0,10)|0;c[s>>2]=(c[s>>2]|0)+((c[i>>2]&c[o>>2]|c[k>>2]&~c[o>>2])+1548603684+(c[t+32>>2]|0));u=_k(c[s>>2]|0,12)|0;c[s>>2]=u+(c[q>>2]|0);c[k>>2]=_k(c[k>>2]|0,10)|0;c[p>>2]=(c[p>>2]|0)+((c[r>>2]&c[h>>2]|~c[r>>2]&c[j>>2])+1518500249+(c[t+20>>2]|0));u=_k(c[p>>2]|0,9)|0;c[p>>2]=u+(c[n>>2]|0);c[h>>2]=_k(c[h>>2]|0,10)|0;c[q>>2]=(c[q>>2]|0)+((c[s>>2]&c[k>>2]|c[i>>2]&~c[k>>2])+1548603684+(c[t+48>>2]|0));u=_k(c[q>>2]|0,7)|0;c[q>>2]=u+(c[o>>2]|0);c[i>>2]=_k(c[i>>2]|0,10)|0;c[n>>2]=(c[n>>2]|0)+((c[p>>2]&c[r>>2]|~c[p>>2]&c[h>>2])+1518500249+(c[t+8>>2]|0));u=_k(c[n>>2]|0,11)|0;c[n>>2]=u+(c[j>>2]|0);c[r>>2]=_k(c[r>>2]|0,10)|0;c[o>>2]=(c[o>>2]|0)+((c[q>>2]&c[i>>2]|c[s>>2]&~c[i>>2])+1548603684+(c[t+16>>2]|0));u=_k(c[o>>2]|0,6)|0;c[o>>2]=u+(c[k>>2]|0);c[s>>2]=_k(c[s>>2]|0,10)|0;c[j>>2]=(c[j>>2]|0)+((c[n>>2]&c[p>>2]|~c[n>>2]&c[r>>2])+1518500249+(c[t+56>>2]|0));u=_k(c[j>>2]|0,7)|0;c[j>>2]=u+(c[h>>2]|0);c[p>>2]=_k(c[p>>2]|0,10)|0;c[k>>2]=(c[k>>2]|0)+((c[o>>2]&c[s>>2]|c[q>>2]&~c[s>>2])+1548603684+(c[t+36>>2]|0));u=_k(c[k>>2]|0,15)|0;c[k>>2]=u+(c[i>>2]|0);c[q>>2]=_k(c[q>>2]|0,10)|0;c[h>>2]=(c[h>>2]|0)+((c[j>>2]&c[n>>2]|~c[j>>2]&c[p>>2])+1518500249+(c[t+44>>2]|0));u=_k(c[h>>2]|0,13)|0;c[h>>2]=u+(c[r>>2]|0);c[n>>2]=_k(c[n>>2]|0,10)|0;c[i>>2]=(c[i>>2]|0)+((c[k>>2]&c[q>>2]|c[o>>2]&~c[q>>2])+1548603684+(c[t+4>>2]|0));u=_k(c[i>>2]|0,13)|0;c[i>>2]=u+(c[s>>2]|0);c[o>>2]=_k(c[o>>2]|0,10)|0;c[r>>2]=(c[r>>2]|0)+((c[h>>2]&c[j>>2]|~c[h>>2]&c[n>>2])+1518500249+(c[t+32>>2]|0));u=_k(c[r>>2]|0,12)|0;c[r>>2]=u+(c[p>>2]|0);c[j>>2]=_k(c[j>>2]|0,10)|0;c[s>>2]=(c[s>>2]|0)+((c[i>>2]&c[o>>2]|c[k>>2]&~c[o>>2])+1548603684+(c[t+8>>2]|0));u=_k(c[s>>2]|0,11)|0;c[s>>2]=u+(c[q>>2]|0);c[k>>2]=_k(c[k>>2]|0,10)|0;c[p>>2]=(c[p>>2]|0)+(((c[r>>2]|~c[h>>2])^c[j>>2])+1859775393+(c[t+12>>2]|0));u=_k(c[p>>2]|0,11)|0;c[p>>2]=u+(c[n>>2]|0);c[h>>2]=_k(c[h>>2]|0,10)|0;c[q>>2]=(c[q>>2]|0)+(((c[s>>2]|~c[i>>2])^c[k>>2])+1836072691+(c[t+60>>2]|0));u=_k(c[q>>2]|0,9)|0;c[q>>2]=u+(c[o>>2]|0);c[i>>2]=_k(c[i>>2]|0,10)|0;c[n>>2]=(c[n>>2]|0)+(((c[p>>2]|~c[r>>2])^c[h>>2])+1859775393+(c[t+40>>2]|0));u=_k(c[n>>2]|0,13)|0;c[n>>2]=u+(c[j>>2]|0);c[r>>2]=_k(c[r>>2]|0,10)|0;c[o>>2]=(c[o>>2]|0)+(((c[q>>2]|~c[s>>2])^c[i>>2])+1836072691+(c[t+20>>2]|0));u=_k(c[o>>2]|0,7)|0;c[o>>2]=u+(c[k>>2]|0);c[s>>2]=_k(c[s>>2]|0,10)|0;c[j>>2]=(c[j>>2]|0)+(((c[n>>2]|~c[p>>2])^c[r>>2])+1859775393+(c[t+56>>2]|0));u=_k(c[j>>2]|0,6)|0;c[j>>2]=u+(c[h>>2]|0);c[p>>2]=_k(c[p>>2]|0,10)|0;c[k>>2]=(c[k>>2]|0)+(((c[o>>2]|~c[q>>2])^c[s>>2])+1836072691+(c[t+4>>2]|0));u=_k(c[k>>2]|0,15)|0;c[k>>2]=u+(c[i>>2]|0);c[q>>2]=_k(c[q>>2]|0,10)|0;c[h>>2]=(c[h>>2]|0)+(((c[j>>2]|~c[n>>2])^c[p>>2])+1859775393+(c[t+16>>2]|0));u=_k(c[h>>2]|0,7)|0;c[h>>2]=u+(c[r>>2]|0);c[n>>2]=_k(c[n>>2]|0,10)|0;c[i>>2]=(c[i>>2]|0)+(((c[k>>2]|~c[o>>2])^c[q>>2])+1836072691+(c[t+12>>2]|0));u=_k(c[i>>2]|0,11)|0;c[i>>2]=u+(c[s>>2]|0);c[o>>2]=_k(c[o>>2]|0,10)|0;c[r>>2]=(c[r>>2]|0)+(((c[h>>2]|~c[j>>2])^c[n>>2])+1859775393+(c[t+36>>2]|0));u=_k(c[r>>2]|0,14)|0;c[r>>2]=u+(c[p>>2]|0);c[j>>2]=_k(c[j>>2]|0,10)|0;c[s>>2]=(c[s>>2]|0)+(((c[i>>2]|~c[k>>2])^c[o>>2])+1836072691+(c[t+28>>2]|0));u=_k(c[s>>2]|0,8)|0;c[s>>2]=u+(c[q>>2]|0);c[k>>2]=_k(c[k>>2]|0,10)|0;c[p>>2]=(c[p>>2]|0)+(((c[r>>2]|~c[h>>2])^c[j>>2])+1859775393+(c[t+60>>2]|0));u=_k(c[p>>2]|0,9)|0;c[p>>2]=u+(c[n>>2]|0);c[h>>2]=_k(c[h>>2]|0,10)|0;c[q>>2]=(c[q>>2]|0)+(((c[s>>2]|~c[i>>2])^c[k>>2])+1836072691+(c[t+56>>2]|0));u=_k(c[q>>2]|0,6)|0;c[q>>2]=u+(c[o>>2]|0);c[i>>2]=_k(c[i>>2]|0,10)|0;c[n>>2]=(c[n>>2]|0)+(((c[p>>2]|~c[r>>2])^c[h>>2])+1859775393+(c[t+32>>2]|0));u=_k(c[n>>2]|0,13)|0;c[n>>2]=u+(c[j>>2]|0);c[r>>2]=_k(c[r>>2]|0,10)|0;c[o>>2]=(c[o>>2]|0)+(((c[q>>2]|~c[s>>2])^c[i>>2])+1836072691+(c[t+24>>2]|0));u=_k(c[o>>2]|0,6)|0;c[o>>2]=u+(c[k>>2]|0);c[s>>2]=_k(c[s>>2]|0,10)|0;c[j>>2]=(c[j>>2]|0)+(((c[n>>2]|~c[p>>2])^c[r>>2])+1859775393+(c[t+4>>2]|0));u=_k(c[j>>2]|0,15)|0;c[j>>2]=u+(c[h>>2]|0);c[p>>2]=_k(c[p>>2]|0,10)|0;c[k>>2]=(c[k>>2]|0)+(((c[o>>2]|~c[q>>2])^c[s>>2])+1836072691+(c[t+36>>2]|0));u=_k(c[k>>2]|0,14)|0;c[k>>2]=u+(c[i>>2]|0);c[q>>2]=_k(c[q>>2]|0,10)|0;c[h>>2]=(c[h>>2]|0)+(((c[j>>2]|~c[n>>2])^c[p>>2])+1859775393+(c[t+8>>2]|0));u=_k(c[h>>2]|0,14)|0;c[h>>2]=u+(c[r>>2]|0);c[n>>2]=_k(c[n>>2]|0,10)|0;c[i>>2]=(c[i>>2]|0)+(((c[k>>2]|~c[o>>2])^c[q>>2])+1836072691+(c[t+44>>2]|0));u=_k(c[i>>2]|0,12)|0;c[i>>2]=u+(c[s>>2]|0);c[o>>2]=_k(c[o>>2]|0,10)|0;c[r>>2]=(c[r>>2]|0)+(((c[h>>2]|~c[j>>2])^c[n>>2])+1859775393+(c[t+28>>2]|0));u=_k(c[r>>2]|0,8)|0;c[r>>2]=u+(c[p>>2]|0);c[j>>2]=_k(c[j>>2]|0,10)|0;c[s>>2]=(c[s>>2]|0)+(((c[i>>2]|~c[k>>2])^c[o>>2])+1836072691+(c[t+32>>2]|0));u=_k(c[s>>2]|0,13)|0;c[s>>2]=u+(c[q>>2]|0);c[k>>2]=_k(c[k>>2]|0,10)|0;c[p>>2]=(c[p>>2]|0)+(((c[r>>2]|~c[h>>2])^c[j>>2])+1859775393+(c[t>>2]|0));u=_k(c[p>>2]|0,13)|0;c[p>>2]=u+(c[n>>2]|0);c[h>>2]=_k(c[h>>2]|0,10)|0;c[q>>2]=(c[q>>2]|0)+(((c[s>>2]|~c[i>>2])^c[k>>2])+1836072691+(c[t+48>>2]|0));u=_k(c[q>>2]|0,5)|0;c[q>>2]=u+(c[o>>2]|0);c[i>>2]=_k(c[i>>2]|0,10)|0;c[n>>2]=(c[n>>2]|0)+(((c[p>>2]|~c[r>>2])^c[h>>2])+1859775393+(c[t+24>>2]|0));u=_k(c[n>>2]|0,6)|0;c[n>>2]=u+(c[j>>2]|0);c[r>>2]=_k(c[r>>2]|0,10)|0;c[o>>2]=(c[o>>2]|0)+(((c[q>>2]|~c[s>>2])^c[i>>2])+1836072691+(c[t+8>>2]|0));u=_k(c[o>>2]|0,14)|0;c[o>>2]=u+(c[k>>2]|0);c[s>>2]=_k(c[s>>2]|0,10)|0;c[j>>2]=(c[j>>2]|0)+(((c[n>>2]|~c[p>>2])^c[r>>2])+1859775393+(c[t+52>>2]|0));u=_k(c[j>>2]|0,5)|0;c[j>>2]=u+(c[h>>2]|0);c[p>>2]=_k(c[p>>2]|0,10)|0;c[k>>2]=(c[k>>2]|0)+(((c[o>>2]|~c[q>>2])^c[s>>2])+1836072691+(c[t+40>>2]|0));u=_k(c[k>>2]|0,13)|0;c[k>>2]=u+(c[i>>2]|0);c[q>>2]=_k(c[q>>2]|0,10)|0;c[h>>2]=(c[h>>2]|0)+(((c[j>>2]|~c[n>>2])^c[p>>2])+1859775393+(c[t+44>>2]|0));u=_k(c[h>>2]|0,12)|0;c[h>>2]=u+(c[r>>2]|0);c[n>>2]=_k(c[n>>2]|0,10)|0;c[i>>2]=(c[i>>2]|0)+(((c[k>>2]|~c[o>>2])^c[q>>2])+1836072691+(c[t>>2]|0));u=_k(c[i>>2]|0,13)|0;c[i>>2]=u+(c[s>>2]|0);c[o>>2]=_k(c[o>>2]|0,10)|0;c[r>>2]=(c[r>>2]|0)+(((c[h>>2]|~c[j>>2])^c[n>>2])+1859775393+(c[t+20>>2]|0));u=_k(c[r>>2]|0,7)|0;c[r>>2]=u+(c[p>>2]|0);c[j>>2]=_k(c[j>>2]|0,10)|0;c[s>>2]=(c[s>>2]|0)+(((c[i>>2]|~c[k>>2])^c[o>>2])+1836072691+(c[t+16>>2]|0));u=_k(c[s>>2]|0,7)|0;c[s>>2]=u+(c[q>>2]|0);c[k>>2]=_k(c[k>>2]|0,10)|0;c[p>>2]=(c[p>>2]|0)+(((c[r>>2]|~c[h>>2])^c[j>>2])+1859775393+(c[t+48>>2]|0));u=_k(c[p>>2]|0,5)|0;c[p>>2]=u+(c[n>>2]|0);c[h>>2]=_k(c[h>>2]|0,10)|0;c[q>>2]=(c[q>>2]|0)+(((c[s>>2]|~c[i>>2])^c[k>>2])+1836072691+(c[t+52>>2]|0));u=_k(c[q>>2]|0,5)|0;c[q>>2]=u+(c[o>>2]|0);c[i>>2]=_k(c[i>>2]|0,10)|0;c[n>>2]=(c[n>>2]|0)+((c[p>>2]&c[h>>2]|c[r>>2]&~c[h>>2])+-1894007588+(c[t+4>>2]|0));u=_k(c[n>>2]|0,11)|0;c[n>>2]=u+(c[j>>2]|0);c[r>>2]=_k(c[r>>2]|0,10)|0;c[o>>2]=(c[o>>2]|0)+((c[q>>2]&c[s>>2]|~c[q>>2]&c[i>>2])+2053994217+(c[t+32>>2]|0));u=_k(c[o>>2]|0,15)|0;c[o>>2]=u+(c[k>>2]|0);c[s>>2]=_k(c[s>>2]|0,10)|0;c[j>>2]=(c[j>>2]|0)+((c[n>>2]&c[r>>2]|c[p>>2]&~c[r>>2])+-1894007588+(c[t+36>>2]|0));u=_k(c[j>>2]|0,12)|0;c[j>>2]=u+(c[h>>2]|0);c[p>>2]=_k(c[p>>2]|0,10)|0;c[k>>2]=(c[k>>2]|0)+((c[o>>2]&c[q>>2]|~c[o>>2]&c[s>>2])+2053994217+(c[t+24>>2]|0));u=_k(c[k>>2]|0,5)|0;c[k>>2]=u+(c[i>>2]|0);c[q>>2]=_k(c[q>>2]|0,10)|0;c[h>>2]=(c[h>>2]|0)+((c[j>>2]&c[p>>2]|c[n>>2]&~c[p>>2])+-1894007588+(c[t+44>>2]|0));u=_k(c[h>>2]|0,14)|0;c[h>>2]=u+(c[r>>2]|0);c[n>>2]=_k(c[n>>2]|0,10)|0;c[i>>2]=(c[i>>2]|0)+((c[k>>2]&c[o>>2]|~c[k>>2]&c[q>>2])+2053994217+(c[t+16>>2]|0));u=_k(c[i>>2]|0,8)|0;c[i>>2]=u+(c[s>>2]|0);c[o>>2]=_k(c[o>>2]|0,10)|0;c[r>>2]=(c[r>>2]|0)+((c[h>>2]&c[n>>2]|c[j>>2]&~c[n>>2])+-1894007588+(c[t+40>>2]|0));u=_k(c[r>>2]|0,15)|0;c[r>>2]=u+(c[p>>2]|0);c[j>>2]=_k(c[j>>2]|0,10)|0;c[s>>2]=(c[s>>2]|0)+((c[i>>2]&c[k>>2]|~c[i>>2]&c[o>>2])+2053994217+(c[t+4>>2]|0));u=_k(c[s>>2]|0,11)|0;c[s>>2]=u+(c[q>>2]|0);c[k>>2]=_k(c[k>>2]|0,10)|0;c[p>>2]=(c[p>>2]|0)+((c[r>>2]&c[j>>2]|c[h>>2]&~c[j>>2])+-1894007588+(c[t>>2]|0));u=_k(c[p>>2]|0,14)|0;c[p>>2]=u+(c[n>>2]|0);c[h>>2]=_k(c[h>>2]|0,10)|0;c[q>>2]=(c[q>>2]|0)+((c[s>>2]&c[i>>2]|~c[s>>2]&c[k>>2])+2053994217+(c[t+12>>2]|0));u=_k(c[q>>2]|0,14)|0;c[q>>2]=u+(c[o>>2]|0);c[i>>2]=_k(c[i>>2]|0,10)|0;c[n>>2]=(c[n>>2]|0)+((c[p>>2]&c[h>>2]|c[r>>2]&~c[h>>2])+-1894007588+(c[t+32>>2]|0));u=_k(c[n>>2]|0,15)|0;c[n>>2]=u+(c[j>>2]|0);c[r>>2]=_k(c[r>>2]|0,10)|0;c[o>>2]=(c[o>>2]|0)+((c[q>>2]&c[s>>2]|~c[q>>2]&c[i>>2])+2053994217+(c[t+44>>2]|0));u=_k(c[o>>2]|0,14)|0;c[o>>2]=u+(c[k>>2]|0);c[s>>2]=_k(c[s>>2]|0,10)|0;c[j>>2]=(c[j>>2]|0)+((c[n>>2]&c[r>>2]|c[p>>2]&~c[r>>2])+-1894007588+(c[t+48>>2]|0));u=_k(c[j>>2]|0,9)|0;c[j>>2]=u+(c[h>>2]|0);c[p>>2]=_k(c[p>>2]|0,10)|0;c[k>>2]=(c[k>>2]|0)+((c[o>>2]&c[q>>2]|~c[o>>2]&c[s>>2])+2053994217+(c[t+60>>2]|0));u=_k(c[k>>2]|0,6)|0;c[k>>2]=u+(c[i>>2]|0);c[q>>2]=_k(c[q>>2]|0,10)|0;c[h>>2]=(c[h>>2]|0)+((c[j>>2]&c[p>>2]|c[n>>2]&~c[p>>2])+-1894007588+(c[t+16>>2]|0));u=_k(c[h>>2]|0,8)|0;c[h>>2]=u+(c[r>>2]|0);c[n>>2]=_k(c[n>>2]|0,10)|0;c[i>>2]=(c[i>>2]|0)+((c[k>>2]&c[o>>2]|~c[k>>2]&c[q>>2])+2053994217+(c[t>>2]|0));u=_k(c[i>>2]|0,14)|0;c[i>>2]=u+(c[s>>2]|0);c[o>>2]=_k(c[o>>2]|0,10)|0;c[r>>2]=(c[r>>2]|0)+((c[h>>2]&c[n>>2]|c[j>>2]&~c[n>>2])+-1894007588+(c[t+52>>2]|0));u=_k(c[r>>2]|0,9)|0;c[r>>2]=u+(c[p>>2]|0);c[j>>2]=_k(c[j>>2]|0,10)|0;c[s>>2]=(c[s>>2]|0)+((c[i>>2]&c[k>>2]|~c[i>>2]&c[o>>2])+2053994217+(c[t+20>>2]|0));u=_k(c[s>>2]|0,6)|0;c[s>>2]=u+(c[q>>2]|0);c[k>>2]=_k(c[k>>2]|0,10)|0;c[p>>2]=(c[p>>2]|0)+((c[r>>2]&c[j>>2]|c[h>>2]&~c[j>>2])+-1894007588+(c[t+12>>2]|0));u=_k(c[p>>2]|0,14)|0;c[p>>2]=u+(c[n>>2]|0);c[h>>2]=_k(c[h>>2]|0,10)|0;c[q>>2]=(c[q>>2]|0)+((c[s>>2]&c[i>>2]|~c[s>>2]&c[k>>2])+2053994217+(c[t+48>>2]|0));u=_k(c[q>>2]|0,9)|0;c[q>>2]=u+(c[o>>2]|0);c[i>>2]=_k(c[i>>2]|0,10)|0;c[n>>2]=(c[n>>2]|0)+((c[p>>2]&c[h>>2]|c[r>>2]&~c[h>>2])+-1894007588+(c[t+28>>2]|0));u=_k(c[n>>2]|0,5)|0;c[n>>2]=u+(c[j>>2]|0);c[r>>2]=_k(c[r>>2]|0,10)|0;c[o>>2]=(c[o>>2]|0)+((c[q>>2]&c[s>>2]|~c[q>>2]&c[i>>2])+2053994217+(c[t+8>>2]|0));u=_k(c[o>>2]|0,12)|0;c[o>>2]=u+(c[k>>2]|0);c[s>>2]=_k(c[s>>2]|0,10)|0;c[j>>2]=(c[j>>2]|0)+((c[n>>2]&c[r>>2]|c[p>>2]&~c[r>>2])+-1894007588+(c[t+60>>2]|0));u=_k(c[j>>2]|0,6)|0;c[j>>2]=u+(c[h>>2]|0);c[p>>2]=_k(c[p>>2]|0,10)|0;c[k>>2]=(c[k>>2]|0)+((c[o>>2]&c[q>>2]|~c[o>>2]&c[s>>2])+2053994217+(c[t+52>>2]|0));u=_k(c[k>>2]|0,9)|0;c[k>>2]=u+(c[i>>2]|0);c[q>>2]=_k(c[q>>2]|0,10)|0;c[h>>2]=(c[h>>2]|0)+((c[j>>2]&c[p>>2]|c[n>>2]&~c[p>>2])+-1894007588+(c[t+56>>2]|0));u=_k(c[h>>2]|0,8)|0;c[h>>2]=u+(c[r>>2]|0);c[n>>2]=_k(c[n>>2]|0,10)|0;c[i>>2]=(c[i>>2]|0)+((c[k>>2]&c[o>>2]|~c[k>>2]&c[q>>2])+2053994217+(c[t+36>>2]|0));u=_k(c[i>>2]|0,12)|0;c[i>>2]=u+(c[s>>2]|0);c[o>>2]=_k(c[o>>2]|0,10)|0;c[r>>2]=(c[r>>2]|0)+((c[h>>2]&c[n>>2]|c[j>>2]&~c[n>>2])+-1894007588+(c[t+20>>2]|0));u=_k(c[r>>2]|0,6)|0;c[r>>2]=u+(c[p>>2]|0);c[j>>2]=_k(c[j>>2]|0,10)|0;c[s>>2]=(c[s>>2]|0)+((c[i>>2]&c[k>>2]|~c[i>>2]&c[o>>2])+2053994217+(c[t+28>>2]|0));u=_k(c[s>>2]|0,5)|0;c[s>>2]=u+(c[q>>2]|0);c[k>>2]=_k(c[k>>2]|0,10)|0;c[p>>2]=(c[p>>2]|0)+((c[r>>2]&c[j>>2]|c[h>>2]&~c[j>>2])+-1894007588+(c[t+24>>2]|0));u=_k(c[p>>2]|0,5)|0;c[p>>2]=u+(c[n>>2]|0);c[h>>2]=_k(c[h>>2]|0,10)|0;c[q>>2]=(c[q>>2]|0)+((c[s>>2]&c[i>>2]|~c[s>>2]&c[k>>2])+2053994217+(c[t+40>>2]|0));u=_k(c[q>>2]|0,15)|0;c[q>>2]=u+(c[o>>2]|0);c[i>>2]=_k(c[i>>2]|0,10)|0;c[n>>2]=(c[n>>2]|0)+((c[p>>2]&c[h>>2]|c[r>>2]&~c[h>>2])+-1894007588+(c[t+8>>2]|0));u=_k(c[n>>2]|0,12)|0;c[n>>2]=u+(c[j>>2]|0);c[r>>2]=_k(c[r>>2]|0,10)|0;c[o>>2]=(c[o>>2]|0)+((c[q>>2]&c[s>>2]|~c[q>>2]&c[i>>2])+2053994217+(c[t+56>>2]|0));u=_k(c[o>>2]|0,8)|0;c[o>>2]=u+(c[k>>2]|0);c[s>>2]=_k(c[s>>2]|0,10)|0;c[j>>2]=(c[j>>2]|0)+((c[n>>2]^(c[p>>2]|~c[r>>2]))+-1454113458+(c[t+16>>2]|0));u=_k(c[j>>2]|0,9)|0;c[j>>2]=u+(c[h>>2]|0);c[p>>2]=_k(c[p>>2]|0,10)|0;c[k>>2]=(c[k>>2]|0)+((c[o>>2]^c[q>>2]^c[s>>2])+0+(c[t+48>>2]|0));u=_k(c[k>>2]|0,8)|0;c[k>>2]=u+(c[i>>2]|0);c[q>>2]=_k(c[q>>2]|0,10)|0;c[h>>2]=(c[h>>2]|0)+((c[j>>2]^(c[n>>2]|~c[p>>2]))+-1454113458+(c[t>>2]|0));u=_k(c[h>>2]|0,15)|0;c[h>>2]=u+(c[r>>2]|0);c[n>>2]=_k(c[n>>2]|0,10)|0;c[i>>2]=(c[i>>2]|0)+((c[k>>2]^c[o>>2]^c[q>>2])+0+(c[t+60>>2]|0));u=_k(c[i>>2]|0,5)|0;c[i>>2]=u+(c[s>>2]|0);c[o>>2]=_k(c[o>>2]|0,10)|0;c[r>>2]=(c[r>>2]|0)+((c[h>>2]^(c[j>>2]|~c[n>>2]))+-1454113458+(c[t+20>>2]|0));u=_k(c[r>>2]|0,5)|0;c[r>>2]=u+(c[p>>2]|0);c[j>>2]=_k(c[j>>2]|0,10)|0;c[s>>2]=(c[s>>2]|0)+((c[i>>2]^c[k>>2]^c[o>>2])+0+(c[t+40>>2]|0));u=_k(c[s>>2]|0,12)|0;c[s>>2]=u+(c[q>>2]|0);c[k>>2]=_k(c[k>>2]|0,10)|0;c[p>>2]=(c[p>>2]|0)+((c[r>>2]^(c[h>>2]|~c[j>>2]))+-1454113458+(c[t+36>>2]|0));u=_k(c[p>>2]|0,11)|0;c[p>>2]=u+(c[n>>2]|0);c[h>>2]=_k(c[h>>2]|0,10)|0;c[q>>2]=(c[q>>2]|0)+((c[s>>2]^c[i>>2]^c[k>>2])+0+(c[t+16>>2]|0));u=_k(c[q>>2]|0,9)|0;c[q>>2]=u+(c[o>>2]|0);c[i>>2]=_k(c[i>>2]|0,10)|0;c[n>>2]=(c[n>>2]|0)+((c[p>>2]^(c[r>>2]|~c[h>>2]))+-1454113458+(c[t+28>>2]|0));u=_k(c[n>>2]|0,6)|0;c[n>>2]=u+(c[j>>2]|0);c[r>>2]=_k(c[r>>2]|0,10)|0;c[o>>2]=(c[o>>2]|0)+((c[q>>2]^c[s>>2]^c[i>>2])+0+(c[t+4>>2]|0));u=_k(c[o>>2]|0,12)|0;c[o>>2]=u+(c[k>>2]|0);c[s>>2]=_k(c[s>>2]|0,10)|0;c[j>>2]=(c[j>>2]|0)+((c[n>>2]^(c[p>>2]|~c[r>>2]))+-1454113458+(c[t+48>>2]|0));u=_k(c[j>>2]|0,8)|0;c[j>>2]=u+(c[h>>2]|0);c[p>>2]=_k(c[p>>2]|0,10)|0;c[k>>2]=(c[k>>2]|0)+((c[o>>2]^c[q>>2]^c[s>>2])+0+(c[t+20>>2]|0));u=_k(c[k>>2]|0,5)|0;c[k>>2]=u+(c[i>>2]|0);c[q>>2]=_k(c[q>>2]|0,10)|0;c[h>>2]=(c[h>>2]|0)+((c[j>>2]^(c[n>>2]|~c[p>>2]))+-1454113458+(c[t+8>>2]|0));u=_k(c[h>>2]|0,13)|0;c[h>>2]=u+(c[r>>2]|0);c[n>>2]=_k(c[n>>2]|0,10)|0;c[i>>2]=(c[i>>2]|0)+((c[k>>2]^c[o>>2]^c[q>>2])+0+(c[t+32>>2]|0));u=_k(c[i>>2]|0,14)|0;c[i>>2]=u+(c[s>>2]|0);c[o>>2]=_k(c[o>>2]|0,10)|0;c[r>>2]=(c[r>>2]|0)+((c[h>>2]^(c[j>>2]|~c[n>>2]))+-1454113458+(c[t+40>>2]|0));u=_k(c[r>>2]|0,12)|0;c[r>>2]=u+(c[p>>2]|0);c[j>>2]=_k(c[j>>2]|0,10)|0;c[s>>2]=(c[s>>2]|0)+((c[i>>2]^c[k>>2]^c[o>>2])+0+(c[t+28>>2]|0));u=_k(c[s>>2]|0,6)|0;c[s>>2]=u+(c[q>>2]|0);c[k>>2]=_k(c[k>>2]|0,10)|0;c[p>>2]=(c[p>>2]|0)+((c[r>>2]^(c[h>>2]|~c[j>>2]))+-1454113458+(c[t+56>>2]|0));u=_k(c[p>>2]|0,5)|0;c[p>>2]=u+(c[n>>2]|0);c[h>>2]=_k(c[h>>2]|0,10)|0;c[q>>2]=(c[q>>2]|0)+((c[s>>2]^c[i>>2]^c[k>>2])+0+(c[t+24>>2]|0));u=_k(c[q>>2]|0,8)|0;c[q>>2]=u+(c[o>>2]|0);c[i>>2]=_k(c[i>>2]|0,10)|0;c[n>>2]=(c[n>>2]|0)+((c[p>>2]^(c[r>>2]|~c[h>>2]))+-1454113458+(c[t+4>>2]|0));u=_k(c[n>>2]|0,12)|0;c[n>>2]=u+(c[j>>2]|0);c[r>>2]=_k(c[r>>2]|0,10)|0;c[o>>2]=(c[o>>2]|0)+((c[q>>2]^c[s>>2]^c[i>>2])+0+(c[t+8>>2]|0));u=_k(c[o>>2]|0,13)|0;c[o>>2]=u+(c[k>>2]|0);c[s>>2]=_k(c[s>>2]|0,10)|0;c[j>>2]=(c[j>>2]|0)+((c[n>>2]^(c[p>>2]|~c[r>>2]))+-1454113458+(c[t+12>>2]|0));u=_k(c[j>>2]|0,13)|0;c[j>>2]=u+(c[h>>2]|0);c[p>>2]=_k(c[p>>2]|0,10)|0;c[k>>2]=(c[k>>2]|0)+((c[o>>2]^c[q>>2]^c[s>>2])+0+(c[t+52>>2]|0));u=_k(c[k>>2]|0,6)|0;c[k>>2]=u+(c[i>>2]|0);c[q>>2]=_k(c[q>>2]|0,10)|0;c[h>>2]=(c[h>>2]|0)+((c[j>>2]^(c[n>>2]|~c[p>>2]))+-1454113458+(c[t+32>>2]|0));u=_k(c[h>>2]|0,14)|0;c[h>>2]=u+(c[r>>2]|0);c[n>>2]=_k(c[n>>2]|0,10)|0;c[i>>2]=(c[i>>2]|0)+((c[k>>2]^c[o>>2]^c[q>>2])+0+(c[t+56>>2]|0));u=_k(c[i>>2]|0,5)|0;c[i>>2]=u+(c[s>>2]|0);c[o>>2]=_k(c[o>>2]|0,10)|0;c[r>>2]=(c[r>>2]|0)+((c[h>>2]^(c[j>>2]|~c[n>>2]))+-1454113458+(c[t+44>>2]|0));u=_k(c[r>>2]|0,11)|0;c[r>>2]=u+(c[p>>2]|0);c[j>>2]=_k(c[j>>2]|0,10)|0;c[s>>2]=(c[s>>2]|0)+((c[i>>2]^c[k>>2]^c[o>>2])+0+(c[t>>2]|0));u=_k(c[s>>2]|0,15)|0;c[s>>2]=u+(c[q>>2]|0);c[k>>2]=_k(c[k>>2]|0,10)|0;c[p>>2]=(c[p>>2]|0)+((c[r>>2]^(c[h>>2]|~c[j>>2]))+-1454113458+(c[t+24>>2]|0));u=_k(c[p>>2]|0,8)|0;c[p>>2]=u+(c[n>>2]|0);c[h>>2]=_k(c[h>>2]|0,10)|0;c[q>>2]=(c[q>>2]|0)+((c[s>>2]^c[i>>2]^c[k>>2])+0+(c[t+12>>2]|0));u=_k(c[q>>2]|0,13)|0;c[q>>2]=u+(c[o>>2]|0);c[i>>2]=_k(c[i>>2]|0,10)|0;c[n>>2]=(c[n>>2]|0)+((c[p>>2]^(c[r>>2]|~c[h>>2]))+-1454113458+(c[t+60>>2]|0));u=_k(c[n>>2]|0,5)|0;c[n>>2]=u+(c[j>>2]|0);c[r>>2]=_k(c[r>>2]|0,10)|0;c[o>>2]=(c[o>>2]|0)+((c[q>>2]^c[s>>2]^c[i>>2])+0+(c[t+36>>2]|0));u=_k(c[o>>2]|0,11)|0;c[o>>2]=u+(c[k>>2]|0);c[s>>2]=_k(c[s>>2]|0,10)|0;c[j>>2]=(c[j>>2]|0)+((c[n>>2]^(c[p>>2]|~c[r>>2]))+-1454113458+(c[t+52>>2]|0));u=_k(c[j>>2]|0,6)|0;c[j>>2]=u+(c[h>>2]|0);c[p>>2]=_k(c[p>>2]|0,10)|0;c[k>>2]=(c[k>>2]|0)+((c[o>>2]^c[q>>2]^c[s>>2])+0+(c[t+44>>2]|0));t=_k(c[k>>2]|0,11)|0;c[k>>2]=t+(c[i>>2]|0);c[q>>2]=_k(c[q>>2]|0,10)|0;c[q>>2]=(c[q>>2]|0)+((c[n>>2]|0)+(c[(c[g>>2]|0)+164>>2]|0));c[(c[g>>2]|0)+164>>2]=(c[(c[g>>2]|0)+168>>2]|0)+(c[p>>2]|0)+(c[s>>2]|0);c[(c[g>>2]|0)+168>>2]=(c[(c[g>>2]|0)+172>>2]|0)+(c[r>>2]|0)+(c[i>>2]|0);c[(c[g>>2]|0)+172>>2]=(c[(c[g>>2]|0)+176>>2]|0)+(c[h>>2]|0)+(c[k>>2]|0);c[(c[g>>2]|0)+176>>2]=(c[(c[g>>2]|0)+160>>2]|0)+(c[j>>2]|0)+(c[o>>2]|0);c[(c[g>>2]|0)+160>>2]=c[q>>2];l=d;return 124}function Zk(a){a=a|0;var b=0,e=0,f=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=b+4|0;f=b;c[e>>2]=a;c[f>>2]=c[e>>2];l=b;return (d[(c[f>>2]|0)+3>>0]|0)<<24|(d[(c[f>>2]|0)+2>>0]|0)<<16|(d[(c[f>>2]|0)+1>>0]|0)<<8|(d[c[f>>2]>>0]|0)|0}function _k(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;l=d;return c[e>>2]<<(c[f>>2]&31)|(c[e>>2]|0)>>>(32-(c[f>>2]|0)&31)|0}function $k(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;Tk(c[d>>2]|0,0);l=b;return}function al(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=c[f>>2];Xk(c[e>>2]|0,c[f>>2]|0,1)|0;c[c[g>>2]>>2]=c[(c[e>>2]|0)+160>>2];c[(c[g>>2]|0)+4>>2]=c[(c[e>>2]|0)+164>>2];c[(c[g>>2]|0)+8>>2]=c[(c[e>>2]|0)+168>>2];c[(c[g>>2]|0)+12>>2]=c[(c[e>>2]|0)+172>>2];c[(c[g>>2]|0)+16>>2]=c[(c[e>>2]|0)+176>>2];l=d;return}function bl(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+208|0;if((l|0)>=(m|0))$(208);g=f+192|0;h=f+188|0;i=f+184|0;j=f;c[g>>2]=b;c[h>>2]=d;c[i>>2]=e;$k(j);Nr(j,c[h>>2]|0,c[i>>2]|0);Uk(j);i=c[g>>2]|0;g=j;j=i+20|0;do{a[i>>0]=a[g>>0]|0;i=i+1|0;g=g+1|0}while((i|0)<(j|0));l=f;return}function cl(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;i=l;l=l+80|0;if((l|0)>=(m|0))$(80);j=i+64|0;k=i+60|0;n=i+56|0;o=i+52|0;p=i+48|0;q=i+44|0;r=i+40|0;s=i+36|0;t=i+32|0;u=i+28|0;v=i+24|0;w=i+20|0;x=i+16|0;y=i+12|0;z=i+8|0;A=i+4|0;B=i;c[k>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=0;c[t>>2]=0;c[u>>2]=(((c[n>>2]|0)+7|0)>>>0)/8|0;if(!(c[u>>2]|0?((c[p>>2]|0)+7|0)>>>0<=(c[u>>2]|0)>>>0:0)){c[j>>2]=66;C=c[j>>2]|0;l=i;return C|0}n=sf(c[u>>2]|0)|0;c[t>>2]=n;if(!n){c[j>>2]=Et()|0;C=c[j>>2]|0;l=i;return C|0}c[w>>2]=0;n=c[w>>2]|0;c[w>>2]=n+1;a[(c[t>>2]|0)+n>>0]=0;n=c[w>>2]|0;c[w>>2]=n+1;a[(c[t>>2]|0)+n>>0]=2;c[v>>2]=(c[u>>2]|0)-3-(c[p>>2]|0);if((c[v>>2]|0)<=0)Se(38982,38988,95,39001);do if(c[q>>2]|0){if((c[r>>2]|0)!=(c[v>>2]|0)){vf(c[t>>2]|0);c[j>>2]=45;C=c[j>>2]|0;l=i;return C|0}c[y>>2]=0;while(1){if((c[y>>2]|0)>>>0>=(c[r>>2]|0)>>>0){D=15;break}if(!(a[(c[q>>2]|0)+(c[y>>2]|0)>>0]|0))break;c[y>>2]=(c[y>>2]|0)+1}if((D|0)==15){_w((c[t>>2]|0)+(c[w>>2]|0)|0,c[q>>2]|0,c[r>>2]|0)|0;c[w>>2]=(c[w>>2]|0)+(c[r>>2]|0);break}vf(c[t>>2]|0);c[j>>2]=45;C=c[j>>2]|0;l=i;return C|0}else{c[x>>2]=hn(c[v>>2]|0,1)|0;while(1){c[A>>2]=0;c[z>>2]=0;while(1){if((c[z>>2]|0)>=(c[v>>2]|0))break;if(!(a[(c[x>>2]|0)+(c[z>>2]|0)>>0]|0))c[A>>2]=(c[A>>2]|0)+1;c[z>>2]=(c[z>>2]|0)+1}if(!(c[A>>2]|0))break;c[A>>2]=(c[A>>2]|0)+(((c[A>>2]|0)/128|0)+3);c[B>>2]=hn(c[A>>2]|0,1)|0;c[z>>2]=0;while(1){if(!((c[z>>2]|0)<(c[v>>2]|0)?(c[A>>2]|0)!=0:0))break;if(!(a[(c[x>>2]|0)+(c[z>>2]|0)>>0]|0)){n=(c[A>>2]|0)+-1|0;c[A>>2]=n;a[(c[x>>2]|0)+(c[z>>2]|0)>>0]=a[(c[B>>2]|0)+n>>0]|0}if(!(a[(c[x>>2]|0)+(c[z>>2]|0)>>0]|0))continue;c[z>>2]=(c[z>>2]|0)+1}vf(c[B>>2]|0)}_w((c[t>>2]|0)+(c[w>>2]|0)|0,c[x>>2]|0,c[v>>2]|0)|0;c[w>>2]=(c[w>>2]|0)+(c[v>>2]|0);vf(c[x>>2]|0)}while(0);x=c[w>>2]|0;c[w>>2]=x+1;a[(c[t>>2]|0)+x>>0]=0;_w((c[t>>2]|0)+(c[w>>2]|0)|0,c[o>>2]|0,c[p>>2]|0)|0;c[w>>2]=(c[w>>2]|0)+(c[p>>2]|0);if((c[w>>2]|0)!=(c[u>>2]|0))Se(39032,38988,153,39001);c[s>>2]=Zo(c[k>>2]|0,5,c[t>>2]|0,c[w>>2]|0,u)|0;if((c[s>>2]|0)==0?Ff(1)|0:0)af(39044,c[c[k>>2]>>2]|0);vf(c[t>>2]|0);c[j>>2]=c[s>>2];C=c[j>>2]|0;l=i;return C|0}function dl(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;h=l;l=l+48|0;if((l|0)>=(m|0))$(48);i=h+32|0;j=h+28|0;k=h+24|0;n=h+20|0;o=h+16|0;p=h+12|0;q=h+8|0;r=h+4|0;s=h;c[j>>2]=b;c[k>>2]=e;c[n>>2]=f;c[o>>2]=g;c[q>>2]=0;c[r>>2]=(((c[n>>2]|0)+7|0)>>>0)/8|0;c[c[j>>2]>>2]=0;n=sf(c[r>>2]|0)|0;c[q>>2]=n;if(!n){c[i>>2]=Et()|0;t=c[i>>2]|0;l=h;return t|0}c[p>>2]=bp(5,c[q>>2]|0,c[r>>2]|0,s,c[o>>2]|0)|0;if(c[p>>2]|0){vf(c[q>>2]|0);c[i>>2]=el(c[p>>2]|0)|0;t=c[i>>2]|0;l=h;return t|0}c[r>>2]=c[s>>2];if((c[r>>2]|0)>>>0<4){vf(c[q>>2]|0);c[i>>2]=155;t=c[i>>2]|0;l=h;return t|0}c[s>>2]=0;if(!(a[c[q>>2]>>0]|0))c[s>>2]=(c[s>>2]|0)+1;p=c[s>>2]|0;c[s>>2]=p+1;if((d[(c[q>>2]|0)+p>>0]|0)!=2){vf(c[q>>2]|0);c[i>>2]=155;t=c[i>>2]|0;l=h;return t|0}while(1){if((c[s>>2]|0)>>>0>=(c[r>>2]|0)>>>0)break;if(!(d[(c[q>>2]|0)+(c[s>>2]|0)>>0]|0))break;c[s>>2]=(c[s>>2]|0)+1}if(((c[s>>2]|0)+1|0)>>>0>=(c[r>>2]|0)>>>0){vf(c[q>>2]|0);c[i>>2]=155;t=c[i>>2]|0;l=h;return t|0}c[s>>2]=(c[s>>2]|0)+1;$w(c[q>>2]|0,(c[q>>2]|0)+(c[s>>2]|0)|0,(c[r>>2]|0)-(c[s>>2]|0)|0)|0;c[c[j>>2]>>2]=c[q>>2];c[c[k>>2]>>2]=(c[r>>2]|0)-(c[s>>2]|0);if(Ff(1)|0)_e(39077,c[c[j>>2]>>2]|0,c[c[k>>2]>>2]|0);c[i>>2]=0;t=c[i>>2]|0;l=h;return t|0}function el(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=fl(c[d>>2]|0)|0;l=b;return a|0}function fl(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;l=b;return c[d>>2]&65535|0}function gl(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;h=l;l=l+160|0;if((l|0)>=(m|0))$(160);i=h+48|0;j=h+44|0;k=h+40|0;n=h+36|0;o=h+32|0;p=h+28|0;q=h+24|0;r=h+52|0;s=h+20|0;t=h+16|0;u=h+12|0;v=h+8|0;w=h+4|0;x=h;c[j>>2]=b;c[k>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=0;c[s>>2]=0;c[t>>2]=(((c[k>>2]|0)+7|0)>>>0)/8|0;c[w>>2]=100;c[x>>2]=oj(c[p>>2]|0)|0;if(pj(c[p>>2]|0,10,r,w)|0){c[i>>2]=69;y=c[i>>2]|0;l=h;return y|0}if((c[o>>2]|0)!=(c[x>>2]|0)){c[i>>2]=70;y=c[i>>2]|0;l=h;return y|0}if(c[x>>2]|0?((c[x>>2]|0)+(c[w>>2]|0)+4|0)>>>0<=(c[t>>2]|0)>>>0:0){x=pf(c[t>>2]|0)|0;c[s>>2]=x;if(!x){c[i>>2]=Et()|0;y=c[i>>2]|0;l=h;return y|0}c[v>>2]=0;x=c[v>>2]|0;c[v>>2]=x+1;a[(c[s>>2]|0)+x>>0]=0;x=c[v>>2]|0;c[v>>2]=x+1;a[(c[s>>2]|0)+x>>0]=1;c[u>>2]=(c[t>>2]|0)-(c[o>>2]|0)-(c[w>>2]|0)-3;if((c[u>>2]|0)<=1)Se(39131,38988,303,39137);Uw((c[s>>2]|0)+(c[v>>2]|0)|0,-1,c[u>>2]|0)|0;c[v>>2]=(c[v>>2]|0)+(c[u>>2]|0);u=c[v>>2]|0;c[v>>2]=u+1;a[(c[s>>2]|0)+u>>0]=0;_w((c[s>>2]|0)+(c[v>>2]|0)|0,r|0,c[w>>2]|0)|0;c[v>>2]=(c[v>>2]|0)+(c[w>>2]|0);_w((c[s>>2]|0)+(c[v>>2]|0)|0,c[n>>2]|0,c[o>>2]|0)|0;c[v>>2]=(c[v>>2]|0)+(c[o>>2]|0);if((c[v>>2]|0)!=(c[t>>2]|0))Se(39032,38988,311,39137);c[q>>2]=Zo(c[j>>2]|0,5,c[s>>2]|0,c[v>>2]|0,t)|0;if((c[q>>2]|0)==0?Ff(1)|0:0)af(39168,c[c[j>>2]>>2]|0);vf(c[s>>2]|0);c[i>>2]=c[q>>2];y=c[i>>2]|0;l=h;return y|0}c[i>>2]=66;y=c[i>>2]|0;l=h;return y|0}function hl(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;g=l;l=l+48|0;if((l|0)>=(m|0))$(48);h=g+40|0;i=g+36|0;j=g+32|0;k=g+28|0;n=g+24|0;o=g+20|0;p=g+16|0;q=g+12|0;r=g+8|0;s=g+4|0;t=g;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[n>>2]=f;c[o>>2]=0;c[q>>2]=0;c[r>>2]=(((c[j>>2]|0)+7|0)>>>0)/8|0;if(c[n>>2]|0?((c[n>>2]|0)+4|0)>>>0<=(c[r>>2]|0)>>>0:0){j=pf(c[r>>2]|0)|0;c[q>>2]=j;if(!j){c[h>>2]=Et()|0;u=c[h>>2]|0;l=g;return u|0}c[t>>2]=0;j=c[t>>2]|0;c[t>>2]=j+1;a[(c[q>>2]|0)+j>>0]=0;j=c[t>>2]|0;c[t>>2]=j+1;a[(c[q>>2]|0)+j>>0]=1;c[s>>2]=(c[r>>2]|0)-(c[n>>2]|0)-3;if((c[s>>2]|0)<=1)Se(39131,38988,368,39201);Uw((c[q>>2]|0)+(c[t>>2]|0)|0,-1,c[s>>2]|0)|0;c[t>>2]=(c[t>>2]|0)+(c[s>>2]|0);s=c[t>>2]|0;c[t>>2]=s+1;a[(c[q>>2]|0)+s>>0]=0;_w((c[q>>2]|0)+(c[t>>2]|0)|0,c[k>>2]|0,c[n>>2]|0)|0;c[t>>2]=(c[t>>2]|0)+(c[n>>2]|0);if((c[t>>2]|0)!=(c[r>>2]|0))Se(39032,38988,374,39201);c[p>>2]=Zo(c[i>>2]|0,5,c[q>>2]|0,c[t>>2]|0,r)|0;if(!(c[p>>2]|0)){if(Ff(1)|0)af(39168,c[c[i>>2]>>2]|0)}else c[o>>2]=el(c[p>>2]|0)|0;vf(c[q>>2]|0);c[h>>2]=c[o>>2];u=c[h>>2]|0;l=g;return u|0}c[h>>2]=66;u=c[h>>2]|0;l=g;return u|0}function il(b,e,f,g,h,i,j,k,n){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;o=l;l=l+80|0;if((l|0)>=(m|0))$(80);p=o+68|0;q=o+64|0;r=o+60|0;s=o+56|0;t=o+52|0;u=o+48|0;v=o+44|0;w=o+40|0;x=o+36|0;y=o+32|0;z=o+28|0;A=o+24|0;B=o+20|0;C=o+16|0;D=o+12|0;E=o+8|0;F=o+4|0;G=o;c[q>>2]=b;c[r>>2]=e;c[s>>2]=f;c[t>>2]=g;c[u>>2]=h;c[v>>2]=i;c[w>>2]=j;c[x>>2]=k;c[y>>2]=n;c[z>>2]=0;c[A>>2]=0;c[B>>2]=(((c[r>>2]|0)+7|0)>>>0)/8|0;c[c[q>>2]>>2]=0;if(!((c[v>>2]|0)!=0&(c[w>>2]|0)!=0)){c[v>>2]=72319;c[w>>2]=0}c[D>>2]=oj(c[s>>2]|0)|0;if(!(c[B>>2]|0?(c[u>>2]|0)>>>0<=((c[B>>2]|0)-(c[D>>2]<<1)-2|0)>>>0:0)){c[p>>2]=66;H=c[p>>2]|0;l=o;return H|0}c[A>>2]=xf(1,c[B>>2]|0)|0;if(!(c[A>>2]|0)){c[p>>2]=Et()|0;H=c[p>>2]|0;l=o;return H|0}hj(c[s>>2]|0,(c[A>>2]|0)+1+(c[D>>2]|0)|0,c[v>>2]|0,c[w>>2]|0);c[E>>2]=(c[B>>2]|0)-(c[u>>2]|0)-1;a[(c[A>>2]|0)+(c[E>>2]|0)>>0]=1;_w((c[A>>2]|0)+(c[E>>2]|0)+1|0,c[t>>2]|0,c[u>>2]|0)|0;do if(c[x>>2]|0){u=c[A>>2]|0;if((c[y>>2]|0)==(c[D>>2]|0)){_w(u+1|0,c[x>>2]|0,c[D>>2]|0)|0;break}vf(u);c[p>>2]=45;H=c[p>>2]|0;l=o;return H|0}else jn((c[A>>2]|0)+1|0,c[D>>2]|0,1);while(0);c[F>>2]=sf((c[B>>2]|0)-(c[D>>2]|0)-1|0)|0;if(!(c[F>>2]|0)){c[z>>2]=Et()|0;vf(c[A>>2]|0);c[p>>2]=c[z>>2];H=c[p>>2]|0;l=o;return H|0}c[z>>2]=jl(c[F>>2]|0,(c[B>>2]|0)-(c[D>>2]|0)-1|0,(c[A>>2]|0)+1|0,c[D>>2]|0,c[s>>2]|0)|0;if(c[z>>2]|0){vf(c[F>>2]|0);vf(c[A>>2]|0);c[p>>2]=c[z>>2];H=c[p>>2]|0;l=o;return H|0}c[E>>2]=1+(c[D>>2]|0);c[C>>2]=c[F>>2];while(1){if((c[E>>2]|0)>>>0>=(c[B>>2]|0)>>>0)break;x=c[C>>2]|0;c[C>>2]=x+1;y=(c[A>>2]|0)+(c[E>>2]|0)|0;a[y>>0]=(d[y>>0]|0)^(d[x>>0]|0);c[E>>2]=(c[E>>2]|0)+1}vf(c[F>>2]|0);c[G>>2]=sf(c[D>>2]|0)|0;if(!(c[G>>2]|0)){c[z>>2]=Et()|0;vf(c[A>>2]|0);c[p>>2]=c[z>>2];H=c[p>>2]|0;l=o;return H|0}c[z>>2]=jl(c[G>>2]|0,c[D>>2]|0,(c[A>>2]|0)+1+(c[D>>2]|0)|0,(c[B>>2]|0)-(c[D>>2]|0)-1|0,c[s>>2]|0)|0;if(c[z>>2]|0){vf(c[G>>2]|0);vf(c[A>>2]|0);c[p>>2]=c[z>>2];H=c[p>>2]|0;l=o;return H|0}c[E>>2]=1;c[C>>2]=c[G>>2];while(1){if((c[E>>2]|0)>>>0>=(1+(c[D>>2]|0)|0)>>>0)break;s=c[C>>2]|0;c[C>>2]=s+1;F=(c[A>>2]|0)+(c[E>>2]|0)|0;a[F>>0]=(d[F>>0]|0)^(d[s>>0]|0);c[E>>2]=(c[E>>2]|0)+1}vf(c[G>>2]|0);c[z>>2]=Zo(c[q>>2]|0,5,c[A>>2]|0,c[B>>2]|0,0)|0;if((c[z>>2]|0)==0?Ff(1)|0:0)af(39236,c[c[q>>2]>>2]|0);vf(c[A>>2]|0);c[p>>2]=c[z>>2];H=c[p>>2]|0;l=o;return H|0}function jl(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;h=l;l=l+64|0;if((l|0)>=(m|0))$(64);i=h+48|0;j=h+44|0;k=h+40|0;n=h+36|0;o=h+32|0;p=h+28|0;q=h+24|0;r=h+20|0;s=h+16|0;t=h+12|0;u=h+8|0;v=h+4|0;w=h+52|0;x=h;c[j>>2]=b;c[k>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[v>>2]=Si(u,c[p>>2]|0,0)|0;if(c[v>>2]|0){c[i>>2]=c[v>>2];y=c[i>>2]|0;l=h;return y|0}c[q>>2]=oj(c[p>>2]|0)|0;c[r>>2]=0;c[t>>2]=0;while(1){if((c[r>>2]|0)>>>0>=(c[k>>2]|0)>>>0)break;if(c[t>>2]|0)Zi(c[u>>2]|0);a[w>>0]=c[t>>2]>>24;a[w+1>>0]=c[t>>2]>>16;a[w+2>>0]=c[t>>2]>>8;a[w+3>>0]=c[t>>2];c[t>>2]=(c[t>>2]|0)+1;$i(c[u>>2]|0,c[n>>2]|0,c[o>>2]|0);$i(c[u>>2]|0,w,4);c[x>>2]=lj(c[u>>2]|0,0)|0;if(((c[k>>2]|0)-(c[r>>2]|0)|0)>>>0<(c[q>>2]|0)>>>0)z=(c[k>>2]|0)-(c[r>>2]|0)|0;else z=c[q>>2]|0;c[s>>2]=z;_w((c[j>>2]|0)+(c[r>>2]|0)|0,c[x>>2]|0,c[s>>2]|0)|0;c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0)}_i(c[u>>2]|0);c[i>>2]=0;y=c[i>>2]|0;l=h;return y|0}function kl(b,e,f,g,h,i,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;k=l;l=l+96|0;if((l|0)>=(m|0))$(96);n=k+80|0;o=k+76|0;p=k+72|0;q=k+68|0;r=k+64|0;s=k+60|0;t=k+56|0;u=k+52|0;v=k+48|0;w=k+44|0;x=k+40|0;y=k+36|0;z=k+32|0;A=k+28|0;B=k+24|0;C=k+20|0;D=k+16|0;E=k+12|0;F=k+8|0;G=k+4|0;H=k;c[o>>2]=b;c[p>>2]=e;c[q>>2]=f;c[r>>2]=g;c[s>>2]=h;c[t>>2]=i;c[u>>2]=j;c[w>>2]=0;c[z>>2]=0;c[B>>2]=0;c[F>>2]=(((c[q>>2]|0)+7|0)>>>0)/8|0;c[G>>2]=0;c[c[o>>2]>>2]=0;if(!((c[t>>2]|0)!=0&(c[u>>2]|0)!=0)){c[t>>2]=72319;c[u>>2]=0}c[D>>2]=oj(c[r>>2]|0)|0;c[B>>2]=pf(c[D>>2]|0)|0;if(!(c[B>>2]|0)){c[n>>2]=Et()|0;I=c[n>>2]|0;l=k;return I|0}hj(c[r>>2]|0,c[B>>2]|0,c[t>>2]|0,c[u>>2]|0);c[v>>2]=ll(w,0,c[s>>2]|0,c[F>>2]|0)|0;if(c[v>>2]|0){vf(c[B>>2]|0);c[n>>2]=155;I=c[n>>2]|0;l=k;return I|0}c[C>>2]=c[F>>2];if((c[C>>2]|0)>>>0<((c[D>>2]<<1)+2|0)>>>0){vf(c[w>>2]|0);vf(c[B>>2]|0);c[n>>2]=155;I=c[n>>2]|0;l=k;return I|0}c[z>>2]=sf((c[C>>2]|0)-1|0)|0;if(!(c[z>>2]|0)){c[v>>2]=Et()|0;vf(c[w>>2]|0);vf(c[B>>2]|0);c[n>>2]=c[v>>2];I=c[n>>2]|0;l=k;return I|0}c[A>>2]=(c[z>>2]|0)+(c[D>>2]|0);c[x>>2]=(c[w>>2]|0)+1;c[y>>2]=(c[w>>2]|0)+1+(c[D>>2]|0);c[E>>2]=(c[C>>2]|0)-1-(c[D>>2]|0);if(jl(c[z>>2]|0,c[D>>2]|0,c[y>>2]|0,c[E>>2]|0,c[r>>2]|0)|0)c[G>>2]=1;c[H>>2]=0;while(1){if((c[H>>2]|0)>>>0>=(c[D>>2]|0)>>>0)break;C=(c[z>>2]|0)+(c[H>>2]|0)|0;a[C>>0]=d[C>>0]^d[(c[x>>2]|0)+(c[H>>2]|0)>>0];c[H>>2]=(c[H>>2]|0)+1}if(jl(c[A>>2]|0,c[E>>2]|0,c[z>>2]|0,c[D>>2]|0,c[r>>2]|0)|0)c[G>>2]=1;c[H>>2]=0;while(1){if((c[H>>2]|0)>>>0>=(c[E>>2]|0)>>>0)break;r=(c[A>>2]|0)+(c[H>>2]|0)|0;a[r>>0]=d[r>>0]^d[(c[y>>2]|0)+(c[H>>2]|0)>>0];c[H>>2]=(c[H>>2]|0)+1}if(Jv(c[B>>2]|0,c[A>>2]|0,c[D>>2]|0)|0)c[G>>2]=1;c[H>>2]=c[D>>2];while(1){if((c[H>>2]|0)>>>0>=(c[E>>2]|0)>>>0)break;if((d[(c[A>>2]|0)+(c[H>>2]|0)>>0]|0)==1)break;c[H>>2]=(c[H>>2]|0)+1}if((c[H>>2]|0)==(c[E>>2]|0))c[G>>2]=1;if(a[c[w>>2]>>0]|0)c[G>>2]=1;vf(c[B>>2]|0);vf(c[w>>2]|0);if(c[G>>2]|0){vf(c[z>>2]|0);c[n>>2]=155;I=c[n>>2]|0;l=k;return I|0}c[H>>2]=(c[H>>2]|0)+1;$w(c[z>>2]|0,(c[A>>2]|0)+(c[H>>2]|0)|0,(c[E>>2]|0)-(c[H>>2]|0)|0)|0;c[c[o>>2]>>2]=c[z>>2];c[c[p>>2]>>2]=(c[E>>2]|0)-(c[H>>2]|0);c[z>>2]=0;if(Ff(1)|0)_e(39254,c[c[o>>2]>>2]|0,c[c[p>>2]>>2]|0);c[n>>2]=0;I=c[n>>2]|0;l=k;return I|0}function ll(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f+12|0;h=f+8|0;i=f+4|0;j=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;e=dp(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0,c[j>>2]|0)|0;l=f;return e|0}function ml(b,e,f,g,h,i,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0;n=l;l=l+128|0;if((l|0)>=(m|0))$(128);o=n+116|0;p=n+112|0;q=n+108|0;r=n+104|0;s=n+100|0;t=n+96|0;u=n+92|0;v=n+88|0;w=n+84|0;x=n+80|0;y=n+76|0;z=n+72|0;A=n+68|0;B=n+64|0;C=n+60|0;E=n+56|0;F=n+52|0;G=n+48|0;H=n+44|0;I=n+40|0;J=n+36|0;K=n+32|0;L=n+121|0;M=n+8|0;N=n+28|0;O=n+24|0;P=n+20|0;Q=n+120|0;R=n;S=n+16|0;c[o>>2]=b;c[p>>2]=e;c[q>>2]=f;c[r>>2]=g;c[s>>2]=h;c[t>>2]=i;c[u>>2]=j;c[v>>2]=k;c[w>>2]=0;c[y>>2]=0;c[z>>2]=(((c[p>>2]|0)+7|0)>>>0)/8|0;c[B>>2]=0;c[x>>2]=oj(c[q>>2]|0)|0;if(!(c[x>>2]|0))Se(39293,38988,800,39298);c[C>>2]=8+(c[x>>2]|0)+(c[t>>2]|0)+((c[z>>2]|0)-(c[x>>2]|0)-1);c[B>>2]=pf(c[C>>2]|0)|0;a:do if(c[B>>2]|0){c[E>>2]=(c[B>>2]|0)+8;c[F>>2]=(c[E>>2]|0)+(c[x>>2]|0);c[G>>2]=(c[F>>2]|0)+(c[t>>2]|0);if((c[s>>2]|0)!=(c[x>>2]|0)){c[w>>2]=139;break}_w(c[E>>2]|0,c[r>>2]|0,c[x>>2]|0)|0;if((c[z>>2]|0)>>>0<((c[x>>2]|0)+(c[t>>2]|0)+2|0)>>>0){c[w>>2]=66;break}c[y>>2]=pf(c[z>>2]|0)|0;if(!(c[y>>2]|0)){c[w>>2]=Et()|0;break}c[A>>2]=(c[y>>2]|0)+(c[z>>2]|0)+-1+(0-(c[x>>2]|0));do if(c[t>>2]|0){if(!(c[u>>2]|0)){jn(c[F>>2]|0,c[t>>2]|0,1);break}if((c[v>>2]|0)!=(c[t>>2]|0)){c[w>>2]=45;break a}else{_w(c[F>>2]|0,c[u>>2]|0,c[t>>2]|0)|0;break}}while(0);k=c[B>>2]|0;a[k>>0]=0;a[k+1>>0]=0;a[k+2>>0]=0;a[k+3>>0]=0;a[k+4>>0]=0;a[k+5>>0]=0;a[k+6>>0]=0;a[k+7>>0]=0;hj(c[q>>2]|0,c[A>>2]|0,c[B>>2]|0,8+(c[x>>2]|0)+(c[t>>2]|0)|0);c[H>>2]=(c[y>>2]|0)+(c[z>>2]|0)+-1+(0-(c[x>>2]|0))+(0-(c[t>>2]|0))+-1;Uw(c[y>>2]|0,0,(c[H>>2]|0)-(c[y>>2]|0)|0)|0;k=c[H>>2]|0;c[H>>2]=k+1;a[k>>0]=1;_w(c[H>>2]|0,c[F>>2]|0,c[t>>2]|0)|0;jl(c[G>>2]|0,(c[z>>2]|0)-(c[x>>2]|0)-1|0,c[A>>2]|0,c[x>>2]|0,c[q>>2]|0)|0;c[I>>2]=0;c[H>>2]=c[G>>2];while(1){if((c[I>>2]|0)>>>0>=((c[z>>2]|0)-(c[x>>2]|0)-1|0)>>>0)break;k=(c[y>>2]|0)+(c[I>>2]|0)|0;a[k>>0]=(d[k>>0]|0)^(d[c[H>>2]>>0]|0);c[I>>2]=(c[I>>2]|0)+1;c[H>>2]=(c[H>>2]|0)+1}k=c[y>>2]|0;a[k>>0]=(d[k>>0]|0)&255>>(c[z>>2]<<3)-(c[p>>2]|0);a[(c[y>>2]|0)+((c[z>>2]|0)-1)>>0]=-68;c[w>>2]=Zo(c[o>>2]|0,5,c[y>>2]|0,c[z>>2]|0,0)|0;if((c[w>>2]|0)==0?Ff(1)|0:0)af(39319,c[c[o>>2]>>2]|0)}else c[w>>2]=Et()|0;while(0);if(c[y>>2]|0){c[J>>2]=c[y>>2];c[K>>2]=c[z>>2];a[L>>0]=0;z=M;c[z>>2]=d[L>>0];c[z+4>>2]=0;while(1){if(!(c[J>>2]&7|0?(c[K>>2]|0)!=0:0))break;a[c[J>>2]>>0]=a[L>>0]|0;c[J>>2]=(c[J>>2]|0)+1;c[K>>2]=(c[K>>2]|0)+-1}if((c[K>>2]|0)>>>0>=8){z=M;o=gx(c[z>>2]|0,c[z+4>>2]|0,16843009,16843009)|0;z=M;c[z>>2]=o;c[z+4>>2]=D;do{c[N>>2]=c[J>>2];z=M;o=c[z+4>>2]|0;p=c[N>>2]|0;c[p>>2]=c[z>>2];c[p+4>>2]=o;c[K>>2]=(c[K>>2]|0)-8;c[J>>2]=(c[J>>2]|0)+8}while((c[K>>2]|0)>>>0>=8)}while(1){if(!(c[K>>2]|0))break;a[c[J>>2]>>0]=a[L>>0]|0;c[J>>2]=(c[J>>2]|0)+1;c[K>>2]=(c[K>>2]|0)+-1}vf(c[y>>2]|0)}if(!(c[B>>2]|0)){T=c[w>>2]|0;l=n;return T|0}c[O>>2]=c[B>>2];c[P>>2]=c[C>>2];a[Q>>0]=0;C=R;c[C>>2]=d[Q>>0];c[C+4>>2]=0;while(1){if(!(c[O>>2]&7|0?(c[P>>2]|0)!=0:0))break;a[c[O>>2]>>0]=a[Q>>0]|0;c[O>>2]=(c[O>>2]|0)+1;c[P>>2]=(c[P>>2]|0)+-1}if((c[P>>2]|0)>>>0>=8){C=R;y=gx(c[C>>2]|0,c[C+4>>2]|0,16843009,16843009)|0;C=R;c[C>>2]=y;c[C+4>>2]=D;do{c[S>>2]=c[O>>2];C=R;y=c[C+4>>2]|0;K=c[S>>2]|0;c[K>>2]=c[C>>2];c[K+4>>2]=y;c[P>>2]=(c[P>>2]|0)-8;c[O>>2]=(c[O>>2]|0)+8}while((c[P>>2]|0)>>>0>=8)}while(1){if(!(c[P>>2]|0))break;a[c[O>>2]>>0]=a[Q>>0]|0;c[O>>2]=(c[O>>2]|0)+1;c[P>>2]=(c[P>>2]|0)+-1}vf(c[B>>2]|0);T=c[w>>2]|0;l=n;return T|0}function nl(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;i=l;l=l+112|0;if((l|0)>=(m|0))$(112);j=i+104|0;k=i+100|0;n=i+96|0;o=i+92|0;p=i+88|0;q=i+84|0;r=i+80|0;s=i+76|0;t=i+72|0;u=i+68|0;v=i+64|0;w=i+60|0;x=i+56|0;y=i+52|0;z=i+48|0;A=i+44|0;B=i+40|0;C=i+36|0;E=i+32|0;F=i+109|0;G=i+8|0;H=i+28|0;I=i+24|0;J=i+20|0;K=i+108|0;L=i;M=i+16|0;c[j>>2]=b;c[k>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;c[q>>2]=0;c[s>>2]=0;c[t>>2]=(((c[n>>2]|0)+7|0)>>>0)/8|0;c[w>>2]=0;c[r>>2]=oj(c[o>>2]|0)|0;if(!(c[r>>2]|0))Se(39293,38988,926,39336);c[x>>2]=8+(c[r>>2]|0)+(c[p>>2]|0);if((c[x>>2]|0)>>>0<((c[t>>2]|0)-(c[r>>2]|0)-1|0)>>>0)c[x>>2]=(c[t>>2]|0)-(c[r>>2]|0)-1;c[x>>2]=(c[x>>2]|0)+(c[r>>2]|0);c[w>>2]=pf(c[x>>2]|0)|0;do if(c[w>>2]|0){c[y>>2]=c[w>>2];c[z>>2]=(c[w>>2]|0)+(c[x>>2]|0)+(0-(c[r>>2]|0));c[q>>2]=ll(0,c[z>>2]|0,c[j>>2]|0,c[r>>2]|0)|0;if((c[q>>2]|0)==0?(c[q>>2]=ll(s,0,c[k>>2]|0,c[t>>2]|0)|0,(c[q>>2]|0)==0):0){if((c[t>>2]|0)>>>0<((c[r>>2]|0)+(c[p>>2]|0)+2|0)>>>0){c[q>>2]=66;break}if((d[(c[s>>2]|0)+((c[t>>2]|0)-1)>>0]|0)!=188){c[q>>2]=8;break}c[v>>2]=(c[s>>2]|0)+(c[t>>2]|0)+-1+(0-(c[r>>2]|0));if(d[c[s>>2]>>0]&~(255>>(c[t>>2]<<3)-(c[n>>2]|0))|0){c[q>>2]=8;break}jl(c[y>>2]|0,(c[t>>2]|0)-(c[r>>2]|0)-1|0,c[v>>2]|0,c[r>>2]|0,c[o>>2]|0)|0;c[B>>2]=0;c[A>>2]=c[y>>2];while(1){if((c[B>>2]|0)>>>0>=((c[t>>2]|0)-(c[r>>2]|0)-1|0)>>>0)break;h=(c[s>>2]|0)+(c[B>>2]|0)|0;a[h>>0]=d[h>>0]^d[c[A>>2]>>0];c[B>>2]=(c[B>>2]|0)+1;c[A>>2]=(c[A>>2]|0)+1}h=c[s>>2]|0;a[h>>0]=d[h>>0]&255>>(c[t>>2]<<3)-(c[n>>2]|0);c[B>>2]=0;while(1){if((c[B>>2]|0)>>>0>=((c[t>>2]|0)-(c[r>>2]|0)-(c[p>>2]|0)-2|0)>>>0)break;if(!((a[(c[s>>2]|0)+(c[B>>2]|0)>>0]|0)!=0^1))break;c[B>>2]=(c[B>>2]|0)+1}if((c[B>>2]|0)==((c[t>>2]|0)-(c[r>>2]|0)-(c[p>>2]|0)-2|0)?(h=c[B>>2]|0,c[B>>2]=h+1,(d[(c[s>>2]|0)+h>>0]|0)==1):0){c[u>>2]=(c[s>>2]|0)+(c[B>>2]|0);h=c[w>>2]|0;a[h>>0]=0;a[h+1>>0]=0;a[h+2>>0]=0;a[h+3>>0]=0;a[h+4>>0]=0;a[h+5>>0]=0;a[h+6>>0]=0;a[h+7>>0]=0;_w((c[w>>2]|0)+8|0,c[z>>2]|0,c[r>>2]|0)|0;_w((c[w>>2]|0)+8+(c[r>>2]|0)|0,c[u>>2]|0,c[p>>2]|0)|0;hj(c[o>>2]|0,c[w>>2]|0,c[w>>2]|0,8+(c[r>>2]|0)+(c[p>>2]|0)|0);h=(Jv(c[v>>2]|0,c[w>>2]|0,c[r>>2]|0)|0)!=0;c[q>>2]=h?8:0;break}c[q>>2]=8}}else c[q>>2]=Et()|0;while(0);if(c[s>>2]|0){c[C>>2]=c[s>>2];c[E>>2]=c[t>>2];a[F>>0]=0;t=G;c[t>>2]=d[F>>0];c[t+4>>2]=0;while(1){if(!(c[C>>2]&7|0?(c[E>>2]|0)!=0:0))break;a[c[C>>2]>>0]=a[F>>0]|0;c[C>>2]=(c[C>>2]|0)+1;c[E>>2]=(c[E>>2]|0)+-1}if((c[E>>2]|0)>>>0>=8){t=G;r=gx(c[t>>2]|0,c[t+4>>2]|0,16843009,16843009)|0;t=G;c[t>>2]=r;c[t+4>>2]=D;do{c[H>>2]=c[C>>2];t=G;r=c[t+4>>2]|0;v=c[H>>2]|0;c[v>>2]=c[t>>2];c[v+4>>2]=r;c[E>>2]=(c[E>>2]|0)-8;c[C>>2]=(c[C>>2]|0)+8}while((c[E>>2]|0)>>>0>=8)}while(1){if(!(c[E>>2]|0))break;a[c[C>>2]>>0]=a[F>>0]|0;c[C>>2]=(c[C>>2]|0)+1;c[E>>2]=(c[E>>2]|0)+-1}vf(c[s>>2]|0)}if(!(c[w>>2]|0)){N=c[q>>2]|0;l=i;return N|0}c[I>>2]=c[w>>2];c[J>>2]=c[x>>2];a[K>>0]=0;x=L;c[x>>2]=d[K>>0];c[x+4>>2]=0;while(1){if(!(c[I>>2]&7|0?(c[J>>2]|0)!=0:0))break;a[c[I>>2]>>0]=a[K>>0]|0;c[I>>2]=(c[I>>2]|0)+1;c[J>>2]=(c[J>>2]|0)+-1}if((c[J>>2]|0)>>>0>=8){x=L;s=gx(c[x>>2]|0,c[x+4>>2]|0,16843009,16843009)|0;x=L;c[x>>2]=s;c[x+4>>2]=D;do{c[M>>2]=c[I>>2];x=L;s=c[x+4>>2]|0;E=c[M>>2]|0;c[E>>2]=c[x>>2];c[E+4>>2]=s;c[J>>2]=(c[J>>2]|0)-8;c[I>>2]=(c[I>>2]|0)+8}while((c[J>>2]|0)>>>0>=8)}while(1){if(!(c[J>>2]|0))break;a[c[I>>2]>>0]=a[K>>0]|0;c[I>>2]=(c[I>>2]|0)+1;c[J>>2]=(c[J>>2]|0)+-1}vf(c[w>>2]|0);N=c[q>>2]|0;l=i;return N|0}function ol(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;d=l;l=l+112|0;if((l|0)>=(m|0))$(112);e=d;f=d+100|0;g=d+96|0;h=d+92|0;i=d+88|0;j=d+84|0;k=d+80|0;n=d+56|0;o=d+52|0;p=d+48|0;q=d+44|0;r=d+40|0;s=d+36|0;c[g>>2]=a;c[h>>2]=b;c[p>>2]=0;c[r>>2]=0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;c[n+16>>2]=0;c[n+20>>2]=0;c[i>>2]=Gj(c[g>>2]|0,j)|0;if(c[i>>2]|0){c[f>>2]=c[i>>2];t=c[f>>2]|0;l=d;return t|0}c[i>>2]=Hj(c[g>>2]|0,k)|0;if(c[i>>2]|0){c[f>>2]=c[i>>2];t=c[f>>2]|0;l=d;return t|0}c[q>>2]=Tf(c[g>>2]|0,47178,0)|0;if(c[q>>2]|0?(c[i>>2]=Fj(c[q>>2]|0,p,0)|0,Rf(c[q>>2]|0),c[i>>2]|0):0){c[f>>2]=c[i>>2];t=c[f>>2]|0;l=d;return t|0}if(c[g>>2]|0)u=Tf(c[g>>2]|0,41795,0)|0;else u=0;c[o>>2]=u;if((c[o>>2]|0)==0?(c[q>>2]=Tf(c[g>>2]|0,41808,0)|0,c[q>>2]|0):0){c[p>>2]=c[p>>2]|64;Rf(c[q>>2]|0)}if((!(c[o>>2]|0)?!(c[p>>2]&64|0):0)?!(Wg()|0):0){if((c[p>>2]&32|0)==0?(c[q>>2]=Tf(c[g>>2]|0,48942,0)|0,c[q>>2]|0):0){c[p>>2]=c[p>>2]|32;Rf(c[q>>2]|0)}c[i>>2]=Il(n,c[j>>2]|0,c[k>>2]|0,((c[p>>2]&32|0)!=0^1^1)&1)|0}else v=16;if((v|0)==16?(c[i>>2]=Hl(n,c[j>>2]|0,c[k>>2]|0,c[o>>2]|0,s)|0,Rf(c[o>>2]|0),(c[i>>2]|0)==0&(c[s>>2]|0)!=0):0)c[i>>2]=Sf(r,41817,0,1)|0;if(!(c[i>>2]|0)){s=c[h>>2]|0;h=c[n+4>>2]|0;o=c[n>>2]|0;k=c[n+4>>2]|0;j=c[n+8>>2]|0;v=c[n+12>>2]|0;p=c[n+16>>2]|0;q=c[n+20>>2]|0;g=c[r>>2]|0;c[e>>2]=c[n>>2];c[e+4>>2]=h;c[e+8>>2]=o;c[e+12>>2]=k;c[e+16>>2]=j;c[e+20>>2]=v;c[e+24>>2]=p;c[e+28>>2]=q;c[e+32>>2]=g;c[i>>2]=cg(s,0,41846,e)|0}Dp(c[n>>2]|0);Dp(c[n+4>>2]|0);Dp(c[n+12>>2]|0);Dp(c[n+16>>2]|0);Dp(c[n+8>>2]|0);Dp(c[n+20>>2]|0);Rf(c[r>>2]|0);c[f>>2]=c[i>>2];t=c[f>>2]|0;l=d;return t|0}function pl(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+80|0;if((l|0)>=(m|0))$(80);d=b+32|0;e=b;f=b+68|0;g=b+64|0;h=b+40|0;c[f>>2]=a;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[h+16>>2]=0;c[h+20>>2]=0;a=c[f>>2]|0;c[e>>2]=h;c[e+4>>2]=h+4;c[e+8>>2]=h+8;c[e+12>>2]=h+12;c[e+16>>2]=h+16;c[e+20>>2]=h+20;c[e+24>>2]=0;c[g>>2]=lg(a,0,39364,e)|0;if((c[g>>2]|0)==0?(Gl(h)|0)==0:0)c[g>>2]=7;Tp(c[h>>2]|0);Tp(c[h+4>>2]|0);Tp(c[h+8>>2]|0);Tp(c[h+12>>2]|0);Tp(c[h+16>>2]|0);Tp(c[h+20>>2]|0);if(!(Ff(1)|0)){i=c[g>>2]|0;l=b;return i|0}c[d>>2]=Bt(c[g>>2]|0)|0;Ye(41773,d);i=c[g>>2]|0;l=b;return i|0}function ql(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;e=l;l=l+128|0;if((l|0)>=(m|0))$(128);f=e+32|0;g=e+24|0;h=e+16|0;i=e;j=e+116|0;k=e+112|0;n=e+108|0;o=e+104|0;p=e+64|0;q=e+56|0;r=e+48|0;s=e+44|0;t=e+40|0;u=e+36|0;c[j>>2]=a;c[k>>2]=b;c[n>>2]=d;c[q>>2]=0;c[r>>2]=0;c[r+4>>2]=0;c[s>>2]=0;Lj(p,0,ul(c[n>>2]|0)|0);c[o>>2]=Nj(c[k>>2]|0,q,p)|0;do if(!(c[o>>2]|0)){if(Ff(1)|0)af(41643,c[q>>2]|0);if(c[q>>2]|0?c[(c[q>>2]|0)+12>>2]&4|0:0){c[o>>2]=79;break}k=c[n>>2]|0;c[i>>2]=r;c[i+4>>2]=r+4;c[i+8>>2]=0;c[o>>2]=lg(k,0,39361,i)|0;if(!(c[o>>2]|0)){if(Ff(1)|0){af(41660,c[r>>2]|0);af(41677,c[r+4>>2]|0)}c[s>>2]=Rp(0)|0;El(c[s>>2]|0,c[q>>2]|0,r);if(Ff(1)|0)af(41694,c[s>>2]|0);if(!(c[p+12>>2]&4)){k=c[j>>2]|0;c[g>>2]=c[s>>2];c[o>>2]=cg(k,0,41731,g)|0;break}c[u>>2]=(((lo(c[r>>2]|0)|0)+7|0)>>>0)/8|0;c[o>>2]=dp(t,0,c[s>>2]|0,c[u>>2]|0)|0;if(!(c[o>>2]|0)){k=c[j>>2]|0;d=c[t>>2]|0;c[h>>2]=c[u>>2];c[h+4>>2]=d;c[o>>2]=cg(k,0,41711,h)|0;vf(c[t>>2]|0)}}}while(0);Tp(c[s>>2]|0);Tp(c[r>>2]|0);Tp(c[r+4>>2]|0);Tp(c[q>>2]|0);Mj(p);if(!(Ff(1)|0)){v=c[o>>2]|0;l=e;return v|0}c[f>>2]=Bt(c[o>>2]|0)|0;Ye(41751,f);v=c[o>>2]|0;l=e;return v|0}function rl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;e=l;l=l+192|0;if((l|0)>=(m|0))$(192);f=e+64|0;g=e+56|0;h=e+48|0;i=e+40|0;j=e+8|0;k=e;n=e+180|0;o=e+176|0;p=e+172|0;q=e+168|0;r=e+128|0;s=e+124|0;t=e+120|0;u=e+96|0;v=e+88|0;w=e+84|0;x=e+80|0;y=e+76|0;z=e+72|0;A=e+68|0;c[n>>2]=a;c[o>>2]=b;c[p>>2]=d;c[s>>2]=0;c[t>>2]=0;c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=0;c[u+16>>2]=0;c[u+20>>2]=0;c[v>>2]=0;c[w>>2]=0;c[x>>2]=0;c[y>>2]=0;c[z>>2]=0;c[A>>2]=0;Lj(r,1,ul(c[p>>2]|0)|0);c[q>>2]=Jj(c[o>>2]|0,7768,s,r)|0;a:do if((c[q>>2]|0)==0?(o=c[s>>2]|0,c[k>>2]=t,c[k+4>>2]=0,c[q>>2]=lg(o,0,39371,k)|0,(c[q>>2]|0)==0):0){if(Ff(1)|0)af(41471,c[t>>2]|0);if(c[t>>2]|0?c[(c[t>>2]|0)+12>>2]&4|0:0){c[q>>2]=79;break}o=c[p>>2]|0;c[j>>2]=u;c[j+4>>2]=u+4;c[j+8>>2]=u+8;c[j+12>>2]=u+12;c[j+16>>2]=u+16;c[j+20>>2]=u+20;c[j+24>>2]=0;c[q>>2]=lg(o,0,41288,j)|0;if(!(c[q>>2]|0)){if(Ff(1)|0?(af(41488,c[u>>2]|0),af(41505,c[u+4>>2]|0),(Wg()|0)==0):0){af(41522,c[u+8>>2]|0);af(41539,c[u+12>>2]|0);af(41556,c[u+16>>2]|0);af(41573,c[u+20>>2]|0)}ko(c[t>>2]|0);xo(c[t>>2]|0,c[t>>2]|0,c[u>>2]|0);c[v>>2]=Sp(c[r+4>>2]|0)|0;if(c[r+12>>2]&1|0)Fl(c[v>>2]|0,c[t>>2]|0,u);else{c[w>>2]=Sp(c[r+4>>2]|0)|0;c[x>>2]=Sp(c[r+4>>2]|0)|0;c[y>>2]=Sp(c[r+4>>2]|0)|0;do{Up(c[w>>2]|0,c[r+4>>2]|0,0);Mo(c[w>>2]|0,c[w>>2]|0,c[u>>2]|0)}while((Lo(c[x>>2]|0,c[w>>2]|0,c[u>>2]|0)|0)!=0^1);So(c[y>>2]|0,c[w>>2]|0,c[u+4>>2]|0,c[u>>2]|0);Ro(c[y>>2]|0,c[y>>2]|0,c[t>>2]|0,c[u>>2]|0);Fl(c[v>>2]|0,c[y>>2]|0,u);Tp(c[y>>2]|0);c[y>>2]=0;Ro(c[v>>2]|0,c[v>>2]|0,c[x>>2]|0,c[u>>2]|0);Tp(c[w>>2]|0);c[w>>2]=0;Tp(c[x>>2]|0);c[x>>2]=0}if(Ff(1)|0)af(41590,c[v>>2]|0);switch(c[r+8>>2]|0){case 1:{c[q>>2]=dl(z,A,c[r+4>>2]|0,c[v>>2]|0)|0;Dp(c[v>>2]|0);c[v>>2]=0;if(c[q>>2]|0)break a;o=c[n>>2]|0;d=c[z>>2]|0;c[i>>2]=c[A>>2];c[i+4>>2]=d;c[q>>2]=cg(o,0,41607,i)|0;break a;break}case 3:{c[q>>2]=kl(z,A,c[r+4>>2]|0,c[r+16>>2]|0,c[v>>2]|0,c[r+20>>2]|0,c[r+24>>2]|0)|0;Dp(c[v>>2]|0);c[v>>2]=0;if(c[q>>2]|0)break a;o=c[n>>2]|0;d=c[z>>2]|0;c[h>>2]=c[A>>2];c[h+4>>2]=d;c[q>>2]=cg(o,0,41607,h)|0;break a;break}default:{o=c[n>>2]|0;d=c[r+12>>2]&8|0?41618:48090;c[g>>2]=c[v>>2];c[q>>2]=cg(o,0,d,g)|0;break a}}}}while(0);vf(c[z>>2]|0);Tp(c[v>>2]|0);Tp(c[u>>2]|0);Tp(c[u+4>>2]|0);Tp(c[u+8>>2]|0);Tp(c[u+12>>2]|0);Tp(c[u+16>>2]|0);Tp(c[u+20>>2]|0);Tp(c[t>>2]|0);Tp(c[w>>2]|0);Tp(c[x>>2]|0);Tp(c[y>>2]|0);Rf(c[s>>2]|0);Mj(r);if(!(Ff(1)|0)){B=c[q>>2]|0;l=e;return B|0}c[f>>2]=Bt(c[q>>2]|0)|0;Ye(41621,f);B=c[q>>2]|0;l=e;return B|0}function sl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;e=l;l=l+160|0;if((l|0)>=(m|0))$(160);f=e+48|0;g=e+40|0;h=e+32|0;i=e;j=e+148|0;k=e+144|0;n=e+140|0;o=e+136|0;p=e+96|0;q=e+88|0;r=e+64|0;s=e+60|0;t=e+56|0;u=e+52|0;c[j>>2]=a;c[k>>2]=b;c[n>>2]=d;c[q>>2]=0;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;c[r+12>>2]=0;c[r+16>>2]=0;c[r+20>>2]=0;c[s>>2]=0;Lj(p,2,ul(c[n>>2]|0)|0);c[o>>2]=Nj(c[k>>2]|0,q,p)|0;do if(!(c[o>>2]|0)){if(Ff(1)|0)af(41272,c[q>>2]|0);if(c[q>>2]|0?c[(c[q>>2]|0)+12>>2]&4|0:0){c[o>>2]=79;break}k=c[n>>2]|0;c[i>>2]=r;c[i+4>>2]=r+4;c[i+8>>2]=r+8;c[i+12>>2]=r+12;c[i+16>>2]=r+16;c[i+20>>2]=r+20;c[i+24>>2]=0;c[o>>2]=lg(k,0,41288,i)|0;if(!(c[o>>2]|0)){if(Ff(1)|0?(af(41298,c[r>>2]|0),af(41314,c[r+4>>2]|0),(Wg()|0)==0):0){af(41330,c[r+8>>2]|0);af(41346,c[r+12>>2]|0);af(41362,c[r+16>>2]|0);af(41378,c[r+20>>2]|0)}c[s>>2]=Rp(0)|0;Fl(c[s>>2]|0,c[q>>2]|0,r);if(Ff(1)|0)af(41394,c[s>>2]|0);if(!(c[p+12>>2]&4)){k=c[j>>2]|0;c[g>>2]=c[s>>2];c[o>>2]=cg(k,0,41430,g)|0;break}c[u>>2]=(((lo(c[r>>2]|0)|0)+7|0)>>>0)/8|0;c[o>>2]=dp(t,0,c[s>>2]|0,c[u>>2]|0)|0;if(!(c[o>>2]|0)){k=c[j>>2]|0;d=c[t>>2]|0;c[h>>2]=c[u>>2];c[h+4>>2]=d;c[o>>2]=cg(k,0,41410,h)|0;vf(c[t>>2]|0)}}}while(0);Tp(c[s>>2]|0);Tp(c[r>>2]|0);Tp(c[r+4>>2]|0);Tp(c[r+8>>2]|0);Tp(c[r+12>>2]|0);Tp(c[r+16>>2]|0);Tp(c[r+20>>2]|0);Tp(c[q>>2]|0);Mj(p);if(!(Ff(1)|0)){v=c[o>>2]|0;l=e;return v|0}c[f>>2]=Bt(c[o>>2]|0)|0;Ye(41450,f);v=c[o>>2]|0;l=e;return v|0}function tl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;e=l;l=l+112|0;if((l|0)>=(m|0))$(112);f=e+24|0;g=e+8|0;h=e;i=e+108|0;j=e+104|0;k=e+100|0;n=e+96|0;o=e+56|0;p=e+48|0;q=e+44|0;r=e+40|0;s=e+32|0;t=e+28|0;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[p>>2]=0;c[q>>2]=0;c[r>>2]=0;c[s>>2]=0;c[s+4>>2]=0;c[t>>2]=0;Lj(o,3,ul(c[k>>2]|0)|0);c[n>>2]=Nj(c[j>>2]|0,r,o)|0;do if(!(c[n>>2]|0)){if(Ff(1)|0)af(41171,c[r>>2]|0);if(c[r>>2]|0?c[(c[r>>2]|0)+12>>2]&4|0:0){c[n>>2]=79;break}c[n>>2]=Ij(c[i>>2]|0,7768,p,0)|0;if((c[n>>2]|0)==0?(j=c[p>>2]|0,c[h>>2]=q,c[h+4>>2]=0,c[n>>2]=lg(j,0,39373,h)|0,(c[n>>2]|0)==0):0){if(Ff(1)|0)af(41187,c[q>>2]|0);j=c[k>>2]|0;c[g>>2]=s;c[g+4>>2]=s+4;c[g+8>>2]=0;c[n>>2]=lg(j,0,39361,g)|0;if(!(c[n>>2]|0)){if(Ff(1)|0){af(41203,c[s>>2]|0);af(41219,c[s+4>>2]|0)}c[t>>2]=Rp(0)|0;El(c[t>>2]|0,c[q>>2]|0,s);if(Ff(1)|0)af(41235,c[t>>2]|0);if(c[o+32>>2]|0){c[n>>2]=Db[c[o+32>>2]&7](o,c[t>>2]|0)|0;break}else{j=(wo(c[t>>2]|0,c[r>>2]|0)|0)!=0;c[n>>2]=j?8:0;break}}}}while(0);Tp(c[t>>2]|0);Tp(c[s>>2]|0);Tp(c[s+4>>2]|0);Tp(c[r>>2]|0);Tp(c[q>>2]|0);Rf(c[p>>2]|0);Mj(o);if(!(Ff(1)|0)){u=c[n>>2]|0;l=e;return u|0}if(c[n>>2]|0)v=Bt(c[n>>2]|0)|0;else v=47493;c[f>>2]=v;Ye(41251,f);u=c[n>>2]|0;l=e;return u|0}function ul(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=l;l=l+32|0;if((l|0)>=(m|0))$(32);d=b+16|0;e=b+12|0;f=b+8|0;g=b+4|0;h=b;c[e>>2]=a;c[f>>2]=Tf(c[e>>2]|0,39375,1)|0;if(!(c[f>>2]|0)){c[d>>2]=0;i=c[d>>2]|0;l=b;return i|0}c[g>>2]=$f(c[f>>2]|0,1,5)|0;Rf(c[f>>2]|0);if(c[g>>2]|0)j=lo(c[g>>2]|0)|0;else j=0;c[h>>2]=j;Tp(c[g>>2]|0);c[d>>2]=c[h>>2];i=c[d>>2]|0;l=b;return i|0}function vl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+12|0;g=e+4|0;h=e;c[f>>2]=a;c[e+8>>2]=b;c[g>>2]=d;if((c[f>>2]|0)==1){c[h>>2]=xl(c[g>>2]|0)|0;i=c[h>>2]|0;l=e;return i|0}else{c[h>>2]=4;i=c[h>>2]|0;l=e;return i|0}return 0}function wl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+20|0;f=d+16|0;g=d+12|0;h=d+8|0;i=d+4|0;j=d;c[f>>2]=a;c[g>>2]=b;c[h>>2]=Tf(c[g>>2]|0,39375,1)|0;if(!(c[h>>2]|0)){c[e>>2]=68;k=c[e>>2]|0;l=d;return k|0}c[i>>2]=Xf(c[h>>2]|0,1,j)|0;if(c[i>>2]|0){$i(c[f>>2]|0,c[i>>2]|0,c[j>>2]|0);Rf(c[h>>2]|0);c[e>>2]=0;k=c[e>>2]|0;l=d;return k|0}else{Rf(c[h>>2]|0);c[e>>2]=68;k=c[e>>2]|0;l=d;return k|0}return 0}function xl(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;b=l;l=l+32|0;if((l|0)>=(m|0))$(32);d=b+24|0;e=b+20|0;f=b+16|0;g=b+12|0;h=b+8|0;i=b+4|0;j=b;c[e>>2]=a;c[i>>2]=0;c[j>>2]=0;c[f>>2]=39377;c[h>>2]=eg(i,0,39385,hv(39385)|0)|0;if(!(c[h>>2]|0))c[h>>2]=eg(j,0,40415,hv(40415)|0)|0;do if(!(c[h>>2]|0)){c[f>>2]=40732;c[h>>2]=Yj(c[i>>2]|0)|0;if(c[h>>2]|0){c[g>>2]=yl(c[h>>2]|0)|0;break}c[f>>2]=40748;c[g>>2]=zl(c[j>>2]|0,c[i>>2]|0)|0;if((c[g>>2]|0)==0?(c[f>>2]=40753,c[g>>2]=Al(c[j>>2]|0,c[i>>2]|0)|0,(c[g>>2]|0)==0):0){Rf(c[j>>2]|0);Rf(c[i>>2]|0);c[d>>2]=0;k=c[d>>2]|0;l=b;return k|0}}else c[g>>2]=yl(c[h>>2]|0)|0;while(0);Rf(c[j>>2]|0);Rf(c[i>>2]|0);if(c[e>>2]|0)Eb[c[e>>2]&1](47252,1,c[f>>2]|0,c[g>>2]|0);c[d>>2]=50;k=c[d>>2]|0;l=b;return k|0}function yl(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=Bt(c[d>>2]|0)|0;l=b;return a|0}function zl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+24|0;f=d+20|0;g=d+16|0;h=d+12|0;i=d+8|0;j=d+4|0;k=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=0;c[i>>2]=0;c[j>>2]=0;c[k>>2]=0;c[h>>2]=eg(i,0,40963,hv(40963)|0)|0;if(!(c[h>>2]|0))c[h>>2]=eg(j,0,41039,hv(41039)|0)|0;do if(!(c[h>>2]|0)){c[h>>2]=Wj(k,c[i>>2]|0,c[f>>2]|0)|0;if(c[h>>2]|0){c[g>>2]=41115;break}c[h>>2]=Xj(c[k>>2]|0,c[i>>2]|0,c[e>>2]|0)|0;if(c[h>>2]|0){c[g>>2]=41130;break}c[h>>2]=Xj(c[k>>2]|0,c[j>>2]|0,c[e>>2]|0)|0;if((Cl(c[h>>2]|0)|0)!=8)c[g>>2]=41144}else c[g>>2]=40791;while(0);Rf(c[k>>2]|0);Rf(c[j>>2]|0);Rf(c[i>>2]|0);l=d;return c[g>>2]|0}function Al(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0;d=l;l=l+64|0;if((l|0)>=(m|0))$(64);e=d;f=d+48|0;g=d+44|0;h=d+40|0;i=d+36|0;j=d+28|0;k=d+24|0;n=d+20|0;o=d+16|0;p=d+12|0;q=d+8|0;r=d+4|0;c[f>>2]=a;c[g>>2]=b;c[h>>2]=0;c[d+32>>2]=1e3;c[j>>2]=0;c[k>>2]=0;c[n>>2]=0;c[o>>2]=0;c[p>>2]=0;c[q>>2]=0;c[r>>2]=0;c[j>>2]=Rp(1e3)|0;Up(c[j>>2]|0,1e3,0);c[e>>2]=c[j>>2];c[i>>2]=cg(k,0,40761,e)|0;do if(!(c[i>>2]|0)){c[i>>2]=Tj(n,c[k>>2]|0,c[f>>2]|0)|0;if(c[i>>2]|0){c[h>>2]=40814;break}c[o>>2]=Bl(c[n>>2]|0)|0;if(!(c[o>>2]|0)){c[h>>2]=40829;break}if(!(wo(c[j>>2]|0,c[o>>2]|0)|0)){c[h>>2]=40862;break}c[i>>2]=Vj(p,c[n>>2]|0,c[g>>2]|0)|0;if(c[i>>2]|0){c[h>>2]=40891;break}c[r>>2]=Tf(c[p>>2]|0,40906,0)|0;if(c[r>>2]|0)c[q>>2]=$f(c[r>>2]|0,1,5)|0;else c[q>>2]=$f(c[p>>2]|0,0,5)|0;if(!(c[q>>2]|0)){c[h>>2]=40912;break}if(wo(c[j>>2]|0,c[q>>2]|0)|0)c[h>>2]=40942}else c[h>>2]=40791;while(0);Rf(c[r>>2]|0);Tp(c[q>>2]|0);Rf(c[p>>2]|0);Tp(c[o>>2]|0);Rf(c[n>>2]|0);Rf(c[k>>2]|0);Tp(c[j>>2]|0);l=d;return c[h>>2]|0}function Bl(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=l;l=l+32|0;if((l|0)>=(m|0))$(32);d=b+20|0;e=b+16|0;f=b+12|0;g=b+8|0;h=b+4|0;i=b;c[e>>2]=a;c[f>>2]=Tf(c[e>>2]|0,40951,0)|0;if(!(c[f>>2]|0)){c[d>>2]=0;j=c[d>>2]|0;l=b;return j|0}c[g>>2]=Tf(c[f>>2]|0,40959,0)|0;Rf(c[f>>2]|0);if(!(c[g>>2]|0)){c[d>>2]=0;j=c[d>>2]|0;l=b;return j|0}c[h>>2]=Tf(c[g>>2]|0,39371,0)|0;Rf(c[g>>2]|0);if(c[h>>2]|0){c[i>>2]=$f(c[h>>2]|0,1,0)|0;Rf(c[h>>2]|0);c[d>>2]=c[i>>2];j=c[d>>2]|0;l=b;return j|0}else{c[d>>2]=0;j=c[d>>2]|0;l=b;return j|0}return 0}function Cl(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=Dl(c[d>>2]|0)|0;l=b;return a|0}function Dl(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;l=b;return c[d>>2]&65535|0}function El(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;if((c[f>>2]|0)==(c[g>>2]|0)){c[i>>2]=vp(c[(c[g>>2]|0)+4>>2]<<1)|0;So(c[i>>2]|0,c[g>>2]|0,c[(c[h>>2]|0)+4>>2]|0,c[c[h>>2]>>2]|0);Kp(c[f>>2]|0,c[i>>2]|0)|0;Dp(c[i>>2]|0);l=e;return}else{So(c[f>>2]|0,c[g>>2]|0,c[(c[h>>2]|0)+4>>2]|0,c[c[h>>2]>>2]|0);l=e;return}}function Fl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;ko(c[g>>2]|0);if((c[(c[h>>2]|0)+12>>2]|0?c[(c[h>>2]|0)+16>>2]|0:0)?c[(c[h>>2]|0)+20>>2]|0:0){c[i>>2]=xp((c[(c[c[h>>2]>>2]|0)+4>>2]|0)+1|0)|0;c[j>>2]=xp((c[(c[c[h>>2]>>2]|0)+4>>2]|0)+1|0)|0;c[k>>2]=xp((c[(c[c[h>>2]>>2]|0)+4>>2]|0)+1|0)|0;go(c[k>>2]|0,c[(c[h>>2]|0)+12>>2]|0,1);xo(c[k>>2]|0,c[(c[h>>2]|0)+8>>2]|0,c[k>>2]|0);So(c[i>>2]|0,c[g>>2]|0,c[k>>2]|0,c[(c[h>>2]|0)+12>>2]|0);go(c[k>>2]|0,c[(c[h>>2]|0)+16>>2]|0,1);xo(c[k>>2]|0,c[(c[h>>2]|0)+8>>2]|0,c[k>>2]|0);So(c[j>>2]|0,c[g>>2]|0,c[k>>2]|0,c[(c[h>>2]|0)+16>>2]|0);ho(c[k>>2]|0,c[j>>2]|0,c[i>>2]|0);if(c[(c[k>>2]|0)+8>>2]|0)fo(c[k>>2]|0,c[k>>2]|0,c[(c[h>>2]|0)+16>>2]|0);Ro(c[k>>2]|0,c[(c[h>>2]|0)+20>>2]|0,c[k>>2]|0,c[(c[h>>2]|0)+16>>2]|0);Qo(c[k>>2]|0,c[k>>2]|0,c[(c[h>>2]|0)+12>>2]|0);fo(c[f>>2]|0,c[i>>2]|0,c[k>>2]|0);Dp(c[k>>2]|0);Dp(c[i>>2]|0);Dp(c[j>>2]|0);l=e;return}So(c[f>>2]|0,c[g>>2]|0,c[(c[h>>2]|0)+8>>2]|0,c[c[h>>2]>>2]|0);l=e;return}function Gl(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+8|0;e=b+4|0;f=b;c[d>>2]=a;c[f>>2]=vp(c[(c[(c[d>>2]|0)+12>>2]|0)+4>>2]<<1)|0;Qo(c[f>>2]|0,c[(c[d>>2]|0)+12>>2]|0,c[(c[d>>2]|0)+16>>2]|0);c[e>>2]=wo(c[f>>2]|0,c[c[d>>2]>>2]|0)|0;Dp(c[f>>2]|0);l=b;return ((c[e>>2]|0)!=0^1)&1|0}function Hl(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;g=l;l=l+176|0;if((l|0)>=(m|0))$(176);h=g;i=g+164|0;j=g+160|0;k=g+156|0;n=g+152|0;o=g+148|0;p=g+144|0;q=g+140|0;r=g+136|0;s=g+132|0;t=g+128|0;u=g+124|0;v=g+120|0;w=g+116|0;x=g+112|0;y=g+108|0;z=g+104|0;A=g+100|0;B=g+96|0;C=g+92|0;D=g+88|0;E=g+84|0;F=g+80|0;G=g+76|0;H=g+72|0;I=g+16|0;J=g+8|0;K=g+4|0;c[j>>2]=a;c[k>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[c[p>>2]>>2]=0;if((c[n>>2]|0)==1)c[n>>2]=65537;if((c[k>>2]|0)>>>0>=1024?(((c[k>>2]|0)>>>0)%256|0|0)==0:0){if((c[n>>2]|0)>>>0<3){c[i>>2]=55;L=c[i>>2]|0;l=g;return L|0}if(!(c[n>>2]&1)){c[i>>2]=55;L=c[i>>2]|0;l=g;return L|0}c[B>>2]=0;c[C>>2]=0;c[D>>2]=0;c[E>>2]=0;c[F>>2]=0;c[G>>2]=0;if(c[o>>2]|0){f=I;e=f+56|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(e|0));c[I>>2]=42052;c[I+8>>2]=42056;c[I+16>>2]=42060;c[I+24>>2]=42063;c[I+32>>2]=42067;c[I+40>>2]=42071;c[I+4>>2]=B;c[I+8+4>>2]=C;c[I+16+4>>2]=D;c[I+24+4>>2]=E;c[I+32+4>>2]=F;c[I+40+4>>2]=G;c[J>>2]=0;while(1){if(!(c[I+(c[J>>2]<<3)>>2]|0))break;c[K>>2]=Tf(c[o>>2]|0,c[I+(c[J>>2]<<3)>>2]|0,0)|0;if(c[K>>2]|0){f=$f(c[K>>2]|0,1,5)|0;c[c[I+(c[J>>2]<<3)+4>>2]>>2]=f;Rf(c[K>>2]|0)}c[J>>2]=(c[J>>2]|0)+1}c[J>>2]=0;while(1){if(!(c[I+(c[J>>2]<<3)>>2]|0))break;if(!(c[c[I+(c[J>>2]<<3)+4>>2]>>2]|0))break;c[J>>2]=(c[J>>2]|0)+1}if(c[I+(c[J>>2]<<3)>>2]|0){c[J>>2]=0;while(1){if(!(c[I+(c[J>>2]<<3)>>2]|0))break;Tp(c[c[I+(c[J>>2]<<3)+4>>2]>>2]|0);c[J>>2]=(c[J>>2]|0)+1}c[i>>2]=128;L=c[i>>2]|0;l=g;return L|0}}else{c[D>>2]=Ll(((c[k>>2]|0)>>>0)/2|0)|0;c[H>>2]=Sp(((c[k>>2]|0)>>>0)/2|0)|0;do{Tp(c[G>>2]|0);c[G>>2]=Ll(((c[k>>2]|0)>>>0)/2|0)|0;ho(c[H>>2]|0,c[D>>2]|0,c[G>>2]|0);J=lo(c[H>>2]|0)|0}while(J>>>0<=((((c[k>>2]|0)>>>0)/2|0)-100|0)>>>0);Tp(c[H>>2]|0);c[B>>2]=Ml()|0;c[C>>2]=Ml()|0;c[E>>2]=Ml()|0;c[F>>2]=Ml()|0}c[s>>2]=up(c[n>>2]|0)|0;c[q>>2]=Dj(c[D>>2]|0,c[B>>2]|0,c[C>>2]|0,c[s>>2]|0,0,0)|0;c[r>>2]=Dj(c[G>>2]|0,c[E>>2]|0,c[F>>2]|0,c[s>>2]|0,0,0)|0;Tp(c[D>>2]|0);c[D>>2]=0;Tp(c[B>>2]|0);c[B>>2]=0;Tp(c[C>>2]|0);c[C>>2]=0;Tp(c[G>>2]|0);c[G>>2]=0;Tp(c[E>>2]|0);c[E>>2]=0;Tp(c[F>>2]|0);c[F>>2]=0;F=c[q>>2]|0;if(!((c[q>>2]|0)!=0&(c[r>>2]|0)!=0)){Tp(F);Tp(c[r>>2]|0);Tp(c[s>>2]|0);c[i>>2]=21;L=c[i>>2]|0;l=g;return L|0}if((wo(F,c[r>>2]|0)|0)>0){Pp(c[q>>2]|0,c[r>>2]|0);c[c[p>>2]>>2]=1}c[t>>2]=Rp(c[k>>2]|0)|0;Qo(c[t>>2]|0,c[q>>2]|0,c[r>>2]|0);c[w>>2]=Sp(((c[k>>2]|0)>>>0)/2|0)|0;c[x>>2]=Sp(((c[k>>2]|0)>>>0)/2|0)|0;c[y>>2]=Sp(c[k>>2]|0)|0;go(c[w>>2]|0,c[q>>2]|0,1);go(c[x>>2]|0,c[r>>2]|0,1);Qo(c[y>>2]|0,c[w>>2]|0,c[x>>2]|0);c[A>>2]=Sp(c[k>>2]|0)|0;if(!(Fo(c[A>>2]|0,c[s>>2]|0,c[y>>2]|0)|0))Se(42074,41941,541,42108);Fo(c[A>>2]|0,c[w>>2]|0,c[x>>2]|0)|0;c[z>>2]=c[w>>2];c[w>>2]=0;Tp(c[x>>2]|0);c[x>>2]=0;Bo(c[z>>2]|0,c[y>>2]|0,c[A>>2]|0);Tp(c[y>>2]|0);c[y>>2]=0;c[u>>2]=c[A>>2];c[A>>2]=0;Lo(c[u>>2]|0,c[s>>2]|0,c[z>>2]|0)|0;c[v>>2]=c[z>>2];c[z>>2]=0;Lo(c[v>>2]|0,c[q>>2]|0,c[r>>2]|0)|0;if(Ff(1)|0){if(c[c[p>>2]>>2]|0)Ye(42122,h);af(45756,c[q>>2]|0);af(42143,c[r>>2]|0);af(42147,c[t>>2]|0);af(42151,c[s>>2]|0);af(42155,c[u>>2]|0);af(42159,c[v>>2]|0)}c[c[j>>2]>>2]=c[t>>2];c[(c[j>>2]|0)+4>>2]=c[s>>2];c[(c[j>>2]|0)+12>>2]=c[q>>2];c[(c[j>>2]|0)+16>>2]=c[r>>2];c[(c[j>>2]|0)+8>>2]=c[u>>2];c[(c[j>>2]|0)+20>>2]=c[v>>2];if(Kl(c[j>>2]|0,(c[k>>2]|0)-64|0)|0){Tp(c[c[j>>2]>>2]|0);c[c[j>>2]>>2]=0;Tp(c[(c[j>>2]|0)+4>>2]|0);c[(c[j>>2]|0)+4>>2]=0;Tp(c[(c[j>>2]|0)+12>>2]|0);c[(c[j>>2]|0)+12>>2]=0;Tp(c[(c[j>>2]|0)+16>>2]|0);c[(c[j>>2]|0)+16>>2]=0;Tp(c[(c[j>>2]|0)+8>>2]|0);c[(c[j>>2]|0)+8>>2]=0;Tp(c[(c[j>>2]|0)+20>>2]|0);c[(c[j>>2]|0)+20>>2]=0;dh(41941,586,42108,0,42014);c[i>>2]=50;L=c[i>>2]|0;l=g;return L|0}else{c[i>>2]=0;L=c[i>>2]|0;l=g;return L|0}}c[i>>2]=55;L=c[i>>2]|0;l=g;return L|0}function Il(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;f=l;l=l+80|0;if((l|0)>=(m|0))$(80);g=f+64|0;h=f+60|0;i=f+56|0;j=f+52|0;k=f+48|0;n=f+44|0;o=f+40|0;p=f+36|0;q=f+32|0;r=f+28|0;s=f+24|0;t=f+20|0;u=f+16|0;v=f+12|0;w=f+8|0;x=f+4|0;y=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;if(Wg()|0){if((c[i>>2]|0)>>>0<1024){c[g>>2]=55;z=c[g>>2]|0;l=f;return z|0}if(c[k>>2]|0){c[g>>2]=55;z=c[g>>2]|0;l=f;return z|0}}c[y>>2]=c[k>>2]|0?1:2;if(c[i>>2]&1|0)c[i>>2]=(c[i>>2]|0)+1;if((c[j>>2]|0)==1)c[j>>2]=65537;c[u>>2]=vp(1)|0;if(c[j>>2]|0){c[j>>2]=c[j>>2]|1;Op(c[u>>2]|0,c[j>>2]|0)|0}else Op(c[u>>2]|0,41)|0;c[t>>2]=Rp(c[i>>2]|0)|0;c[o>>2]=0;c[n>>2]=0;do{if(c[n>>2]|0)Tp(c[n>>2]|0);if(c[o>>2]|0)Tp(c[o>>2]|0);k=((c[i>>2]|0)>>>0)/2|0;e=c[y>>2]|0;if(c[j>>2]|0){c[n>>2]=yj(k,e,6,c[u>>2]|0)|0;c[o>>2]=yj(((c[i>>2]|0)>>>0)/2|0,c[y>>2]|0,6,c[u>>2]|0)|0}else{c[n>>2]=yj(k,e,0,0)|0;c[o>>2]=yj(((c[i>>2]|0)>>>0)/2|0,c[y>>2]|0,0,0)|0}if((wo(c[n>>2]|0,c[o>>2]|0)|0)>0)Pp(c[n>>2]|0,c[o>>2]|0);Qo(c[t>>2]|0,c[n>>2]|0,c[o>>2]|0);e=lo(c[t>>2]|0)|0}while((e|0)!=(c[i>>2]|0));c[r>>2]=xp(c[(c[n>>2]|0)+4>>2]|0)|0;c[s>>2]=xp(c[(c[n>>2]|0)+4>>2]|0)|0;c[v>>2]=Sp(c[i>>2]|0)|0;c[w>>2]=Sp(c[i>>2]|0)|0;c[x>>2]=Sp(c[i>>2]|0)|0;go(c[r>>2]|0,c[n>>2]|0,1);go(c[s>>2]|0,c[o>>2]|0,1);Qo(c[v>>2]|0,c[r>>2]|0,c[s>>2]|0);Fo(c[w>>2]|0,c[r>>2]|0,c[s>>2]|0)|0;Bo(c[x>>2]|0,c[v>>2]|0,c[w>>2]|0);while(1){if(!((Fo(c[r>>2]|0,c[u>>2]|0,c[v>>2]|0)|0)!=0^1))break;if(c[j>>2]|0){A=27;break}eo(c[u>>2]|0,c[u>>2]|0,2)}if((A|0)==27)Re(41941,287,41947);c[p>>2]=Sp(c[i>>2]|0)|0;Lo(c[p>>2]|0,c[u>>2]|0,c[x>>2]|0)|0;c[q>>2]=Sp(c[i>>2]|0)|0;Lo(c[q>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;if(Ff(1)|0){af(41960,c[n>>2]|0);af(41966,c[o>>2]|0);af(41972,c[v>>2]|0);af(41978,c[w>>2]|0);af(41984,c[x>>2]|0);af(41990,c[t>>2]|0);af(41996,c[u>>2]|0);af(42002,c[p>>2]|0);af(42008,c[q>>2]|0)}Tp(c[r>>2]|0);Tp(c[s>>2]|0);Tp(c[v>>2]|0);Tp(c[x>>2]|0);Tp(c[w>>2]|0);c[c[h>>2]>>2]=c[t>>2];c[(c[h>>2]|0)+4>>2]=c[u>>2];c[(c[h>>2]|0)+12>>2]=c[n>>2];c[(c[h>>2]|0)+16>>2]=c[o>>2];c[(c[h>>2]|0)+8>>2]=c[p>>2];c[(c[h>>2]|0)+20>>2]=c[q>>2];if(Kl(c[h>>2]|0,(c[i>>2]|0)-64|0)|0){Tp(c[c[h>>2]>>2]|0);c[c[h>>2]>>2]=0;Tp(c[(c[h>>2]|0)+4>>2]|0);c[(c[h>>2]|0)+4>>2]=0;Tp(c[(c[h>>2]|0)+12>>2]|0);c[(c[h>>2]|0)+12>>2]=0;Tp(c[(c[h>>2]|0)+16>>2]|0);c[(c[h>>2]|0)+16>>2]=0;Tp(c[(c[h>>2]|0)+8>>2]|0);c[(c[h>>2]|0)+8>>2]=0;Tp(c[(c[h>>2]|0)+20>>2]|0);c[(c[h>>2]|0)+20>>2]=0;dh(41941,334,41947,0,42014);c[g>>2]=50;z=c[g>>2]|0;l=f;return z|0}else{c[g>>2]=0;z=c[g>>2]|0;l=f;return z|0}return 0}function Jl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+16|0;f=d+12|0;g=d+8|0;h=d+4|0;i=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=c[e>>2];go(c[f>>2]|0,c[f>>2]|0,1);c[h>>2]=Lp(c[f>>2]|0)|0;c[i>>2]=((Fo(c[h>>2]|0,c[g>>2]|0,c[f>>2]|0)|0)!=0^1)&1;Tp(c[h>>2]|0);eo(c[f>>2]|0,c[f>>2]|0,1);l=d;return c[i>>2]|0}function Kl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0;d=l;l=l+48|0;if((l|0)>=(m|0))$(48);e=d+32|0;f=d+28|0;g=d+24|0;h=d+16|0;i=d+12|0;j=d+8|0;k=d+4|0;n=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=-1;c[i>>2]=Rp(c[f>>2]|0)|0;c[j>>2]=Rp(c[f>>2]|0)|0;c[k>>2]=Rp(c[f>>2]|0)|0;c[n>>2]=Rp(c[f>>2]|0)|0;c[h>>2]=c[c[e>>2]>>2];c[h+4>>2]=c[(c[e>>2]|0)+4>>2];Up(c[i>>2]|0,c[f>>2]|0,0);El(c[j>>2]|0,c[i>>2]|0,h);if(((wo(c[j>>2]|0,c[i>>2]|0)|0?(Fl(c[k>>2]|0,c[j>>2]|0,c[e>>2]|0),(wo(c[k>>2]|0,c[i>>2]|0)|0)==0):0)?(Up(c[i>>2]|0,c[f>>2]|0,0),Fl(c[n>>2]|0,c[i>>2]|0,c[e>>2]|0),El(c[k>>2]|0,c[n>>2]|0,h),(wo(c[k>>2]|0,c[i>>2]|0)|0)==0):0)?(eo(c[n>>2]|0,c[n>>2]|0,1),El(c[k>>2]|0,c[n>>2]|0,h),wo(c[k>>2]|0,c[i>>2]|0)|0):0)c[g>>2]=0;Tp(c[n>>2]|0);Tp(c[k>>2]|0);Tp(c[j>>2]|0);Tp(c[i>>2]|0);l=d;return c[g>>2]|0}function Ll(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=Sp(c[d>>2]|0)|0;Up(c[e>>2]|0,c[d>>2]|0,2);oo(c[e>>2]|0,(c[d>>2]|0)-1|0);no(c[e>>2]|0,(c[d>>2]|0)-2|0);a=lo(c[e>>2]|0)|0;if((a|0)==(c[d>>2]|0)){l=b;return c[e>>2]|0}else Se(42214,41941,360,42250);return 0}function Ml(){var a=0,b=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=a;c[b>>2]=Sp(101)|0;Up(c[b>>2]|0,101,2);oo(c[b>>2]|0,100);if((lo(c[b>>2]|0)|0)==101){l=a;return c[b>>2]|0}else Se(42163,41941,375,42197);return 0}function Nl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+12|0;f=d+4|0;c[e>>2]=a;c[d+8>>2]=b;c[f>>2]=c[e>>2];c[d>>2]=pg()|0;c[(c[f>>2]|0)+160>>2]=1732584193;c[(c[f>>2]|0)+164>>2]=-271733879;c[(c[f>>2]|0)+168>>2]=-1732584194;c[(c[f>>2]|0)+172>>2]=271733878;c[(c[f>>2]|0)+176>>2]=-1009589776;e=(c[f>>2]|0)+128|0;c[e>>2]=0;c[e+4>>2]=0;e=(c[f>>2]|0)+136|0;c[e>>2]=0;c[e+4>>2]=0;c[(c[f>>2]|0)+144>>2]=0;c[(c[f>>2]|0)+148>>2]=64;c[(c[f>>2]|0)+152>>2]=32;l=d;return} -function Ks(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f;h=f+12|0;i=f+8|0;j=f+4|0;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;if(!(c[h>>2]|0))Se(52740,51405,685,52763);if(!(c[j>>2]|0))Se(51625,51405,686,52763);Es(c[j>>2]|0);do if(!(c[(c[j>>2]|0)+4>>2]|0)){if((c[j>>2]|0)==(c[17790]|0)){e=Ls(1)|0;c[(c[j>>2]|0)+4>>2]=e}else{e=Ls(0)|0;c[(c[j>>2]|0)+4>>2]=e}if(c[(c[j>>2]|0)+4>>2]|0){e=_v()|0;c[(c[j>>2]|0)+60>>2]=e;break}else We(51687,g)}while(0);if(!((a[(c[j>>2]|0)+8>>0]<<7&255)<<24>>24>>7<<24>>24))Ms(c[j>>2]|0);e=c[(c[j>>2]|0)+60>>2]|0;if((e|0)==(_v()|0)?(e=c[(c[j>>2]|0)+64>>2]|0,(e|0)==(_v()|0)):0)if(Ns(c[h>>2]|0,c[i>>2]|0,c[j>>2]|0)|0)We(51687,g);else{Es(c[j>>2]|0);l=f;return}dh(51405,714,52763,0,51633);We(51687,g)}function Ls(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;e=l;l=l+64|0;if((l|0)>=(m|0))$(64);f=e+16|0;g=e+8|0;h=e+48|0;i=e+44|0;j=e+40|0;k=e+36|0;n=e+32|0;o=e+28|0;p=e+24|0;q=e+52|0;r=e;s=e+20|0;c[i>>2]=b;if(!(c[17793]|0))Se(51716,51405,596,52094);c[k>>2]=wh(j,7,1,1)|0;if(c[k>>2]|0){c[g>>2]=Ss(c[k>>2]|0)|0;Ve(52112,g);c[h>>2]=0;t=c[h>>2]|0;l=e;return t|0}if(c[i>>2]|0){c[n>>2]=zf(16)|0;Ks(c[n>>2]|0,16,c[17791]|0)}else c[n>>2]=Us(16)|0;c[k>>2]=Jh(c[j>>2]|0,c[n>>2]|0,16)|0;c[o>>2]=c[n>>2];c[p>>2]=16;a[q>>0]=0;i=r;c[i>>2]=d[q>>0];c[i+4>>2]=0;while(1){if(!(c[o>>2]&7|0?(c[p>>2]|0)!=0:0))break;a[c[o>>2]>>0]=a[q>>0]|0;c[o>>2]=(c[o>>2]|0)+1;c[p>>2]=(c[p>>2]|0)+-1}if((c[p>>2]|0)>>>0>=8){i=r;g=gx(c[i>>2]|0,c[i+4>>2]|0,16843009,16843009)|0;i=r;c[i>>2]=g;c[i+4>>2]=D;do{c[s>>2]=c[o>>2];i=r;g=c[i+4>>2]|0;b=c[s>>2]|0;c[b>>2]=c[i>>2];c[b+4>>2]=g;c[p>>2]=(c[p>>2]|0)-8;c[o>>2]=(c[o>>2]|0)+8}while((c[p>>2]|0)>>>0>=8)}while(1){if(!(c[p>>2]|0))break;a[c[o>>2]>>0]=a[q>>0]|0;c[o>>2]=(c[o>>2]|0)+1;c[p>>2]=(c[p>>2]|0)+-1}vf(c[n>>2]|0);if(c[k>>2]|0){c[f>>2]=Ss(c[k>>2]|0)|0;Ve(52155,f);Bh(c[j>>2]|0);c[h>>2]=0;t=c[h>>2]|0;l=e;return t|0}else{c[h>>2]=c[j>>2];t=c[h>>2]|0;l=e;return t|0}return 0}function Ms(b){b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d;c[e>>2]=b;if(!(c[17793]|0))Se(51716,51405,658,51957);b=(c[e>>2]|0)+17|0;if((c[e>>2]|0)==(c[17790]|0)){Ks(b,16,c[17791]|0);f=(c[e>>2]|0)+8|0;a[f>>0]=a[f>>0]&-2|1;f=_v()|0;c[(c[e>>2]|0)+64>>2]=f;l=d;return}else{Ts(b,16);b=(c[e>>2]|0)+8|0;a[b>>0]=a[b>>0]&-2|1;b=_v()|0;c[(c[e>>2]|0)+64>>2]=b;l=d;return}}function Ns(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;g=l;l=l+80|0;if((l|0)>=(m|0))$(80);h=g+48|0;i=g+44|0;j=g+40|0;k=g+36|0;n=g+56|0;o=g+32|0;p=g+28|0;q=g+24|0;r=g+20|0;s=g+16|0;t=g+12|0;u=g+52|0;v=g;w=g+8|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;if(!(c[17793]|0))Se(51716,51405,444,51735);if(!(c[(c[k>>2]|0)+4>>2]|0))Se(51751,51405,445,51735);if(!((a[(c[k>>2]|0)+8>>0]<<7&255)<<24>>24>>7<<24>>24))Se(51770,51405,446,51735);if(!(c[17789]|0))Se(51789,51405,448,51735);c[o>>2]=c[17789];c[p>>2]=(c[17789]|0)+16;c[q>>2]=(c[17789]|0)+32;while(1){if(!(c[j>>2]|0)){x=33;break}if((c[(c[k>>2]|0)+52>>2]|0)==0?(c[(c[k>>2]|0)+12>>2]|0)>>>0>1e3:0){Ms(c[k>>2]|0);c[(c[k>>2]|0)+12>>2]=0}c[r>>2]=(c[j>>2]|0)>>>0<16?c[j>>2]|0:16;Os(n,16,c[k>>2]|0);Ps(c[q>>2]|0,n,(c[k>>2]|0)+17|0,c[(c[k>>2]|0)+4>>2]|0,c[o>>2]|0,c[p>>2]|0);f=(c[k>>2]|0)+12|0;c[f>>2]=(c[f>>2]|0)+1;if(!((((d[(c[k>>2]|0)+51>>0]|0|0?c[(c[k>>2]|0)+52>>2]|0:0)?(c[k>>2]|0)!=(c[17790]|0):0)?(c[k>>2]|0)!=(c[17791]|0):0)?(c[k>>2]|0)!=(c[17792]|0):0)){f=(c[k>>2]|0)+34|0;e=c[q>>2]|0;if(!((a[(c[k>>2]|0)+8>>0]<<6&255)<<24>>24>>7<<24>>24)){y=f;z=e;A=y+16|0;do{a[y>>0]=a[z>>0]|0;y=y+1|0;z=z+1|0}while((y|0)<(A|0));b=(c[k>>2]|0)+8|0;a[b>>0]=a[b>>0]&-3|2;continue}if(!(Jv(f,e,16)|0)){x=22;break}y=(c[k>>2]|0)+34|0;z=c[q>>2]|0;A=y+16|0;do{a[y>>0]=a[z>>0]|0;y=y+1|0;z=z+1|0}while((y|0)<(A|0))}_w(c[i>>2]|0,c[q>>2]|0,c[r>>2]|0)|0;c[s>>2]=c[q>>2];c[t>>2]=16;a[u>>0]=0;e=v;c[e>>2]=d[u>>0];c[e+4>>2]=0;while(1){if(!(c[s>>2]&7|0?(c[t>>2]|0)!=0:0))break;a[c[s>>2]>>0]=a[u>>0]|0;c[s>>2]=(c[s>>2]|0)+1;c[t>>2]=(c[t>>2]|0)+-1}if((c[t>>2]|0)>>>0>=8){e=v;f=gx(c[e>>2]|0,c[e+4>>2]|0,16843009,16843009)|0;e=v;c[e>>2]=f;c[e+4>>2]=D;do{c[w>>2]=c[s>>2];e=v;f=c[e+4>>2]|0;b=c[w>>2]|0;c[b>>2]=c[e>>2];c[b+4>>2]=f;c[t>>2]=(c[t>>2]|0)-8;c[s>>2]=(c[s>>2]|0)+8}while((c[t>>2]|0)>>>0>=8)}while(1){if(!(c[t>>2]|0))break;a[c[s>>2]>>0]=a[u>>0]|0;c[s>>2]=(c[s>>2]|0)+1;c[t>>2]=(c[t>>2]|0)+-1}c[i>>2]=(c[i>>2]|0)+(c[r>>2]|0);c[j>>2]=(c[j>>2]|0)-(c[r>>2]|0)}if((x|0)==22){dh(51405,502,51735,0,51819);c[h>>2]=-1;B=c[h>>2]|0;l=g;return B|0}else if((x|0)==33){c[h>>2]=0;B=c[h>>2]|0;l=g;return B|0}return 0}function Os(d,f,g){d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0;h=l;l=l+32|0;if((l|0)>=(m|0))$(32);i=h;j=h+28|0;k=h+24|0;n=h+20|0;o=h+16|0;p=h+8|0;c[j>>2]=d;c[k>>2]=f;c[n>>2]=g;if((c[k>>2]|0)!=16)Se(51859,51405,273,51918);if(!(c[17793]|0))Se(51716,51405,274,51918);if(((c[(c[n>>2]|0)+52>>2]|0?(c[n>>2]|0)!=(c[17790]|0):0)?(c[n>>2]|0)!=(c[17791]|0):0)?(c[n>>2]|0)!=(c[17792]|0):0){k=c[j>>2]|0;g=c[(c[n>>2]|0)+52>>2]|0;f=k+16|0;do{a[k>>0]=a[g>>0]|0;k=k+1|0;g=g+1|0}while((k|0)<(f|0));a[(c[j>>2]|0)+12>>0]=(c[(c[n>>2]|0)+56>>2]|0)>>>24;a[(c[j>>2]|0)+13>>0]=(c[(c[n>>2]|0)+56>>2]|0)>>>16;a[(c[j>>2]|0)+14>>0]=(c[(c[n>>2]|0)+56>>2]|0)>>>8;a[(c[j>>2]|0)+15>>0]=c[(c[n>>2]|0)+56>>2];g=(c[n>>2]|0)+56|0;c[g>>2]=(c[g>>2]|0)+1;l=h;return}if(!(c[17795]|0)){c[17796]=_v()|0;c[17797]=qw()|0}if(lb(p|0,0)|0){c[i>>2]=Nu(c[(xu()|0)>>2]|0)|0;We(51930,i)}c[o>>2]=c[p+4>>2];c[o>>2]=c[o>>2]<<4;if((c[p>>2]|0)==(c[17795]|0)?(c[o>>2]|0)==(c[17798]|0):0){b[35902]=(b[35902]|0)+1<<16>>16;b[35902]=(e[35902]|0)&4095}else{b[35902]=0;c[17795]=c[p>>2];c[17798]=c[o>>2]}a[c[j>>2]>>0]=c[p>>2]>>24;a[(c[j>>2]|0)+1>>0]=c[p>>2]>>16;a[(c[j>>2]|0)+2>>0]=c[p>>2]>>8;a[(c[j>>2]|0)+3>>0]=c[p>>2];a[(c[j>>2]|0)+4>>0]=(c[o>>2]|0)>>>16;a[(c[j>>2]|0)+5>>0]=(c[o>>2]|0)>>>8;a[(c[j>>2]|0)+6>>0]=c[o>>2]&240|(e[35902]|0)>>8&15;a[(c[j>>2]|0)+7>>0]=e[35902]|0;a[(c[j>>2]|0)+8>>0]=(c[17796]|0)>>>24;a[(c[j>>2]|0)+9>>0]=(c[17796]|0)>>>16;a[(c[j>>2]|0)+10>>0]=(c[17796]|0)>>>8;a[(c[j>>2]|0)+11>>0]=c[17796];a[(c[j>>2]|0)+12>>0]=(c[17797]|0)>>>24;a[(c[j>>2]|0)+13>>0]=(c[17797]|0)>>>16;a[(c[j>>2]|0)+14>>0]=(c[17797]|0)>>>8;a[(c[j>>2]|0)+15>>0]=c[17797];j=(c[17797]|0)+1|0;c[17797]=j;if(j|0){l=h;return}c[17796]=(c[17796]|0)+1;l=h;return}function Ps(b,e,f,g,h,i){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;j=l;l=l+80|0;if((l|0)>=(m|0))$(80);k=j+60|0;n=j+56|0;o=j+52|0;p=j+48|0;q=j+44|0;r=j+40|0;s=j+36|0;t=j+32|0;u=j+65|0;v=j+8|0;w=j+28|0;x=j+24|0;y=j+20|0;z=j+64|0;A=j;B=j+16|0;c[k>>2]=b;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;c[r>>2]=i;Qs(c[p>>2]|0,c[q>>2]|0,c[n>>2]|0,16);Rs(c[r>>2]|0,c[q>>2]|0,c[o>>2]|0,16);Qs(c[p>>2]|0,c[k>>2]|0,c[r>>2]|0,16);Rs(c[r>>2]|0,c[k>>2]|0,c[q>>2]|0,16);Qs(c[p>>2]|0,c[o>>2]|0,c[r>>2]|0,16);c[s>>2]=c[q>>2];c[t>>2]=16;a[u>>0]=0;q=v;c[q>>2]=d[u>>0];c[q+4>>2]=0;while(1){if(!(c[s>>2]&7|0?(c[t>>2]|0)!=0:0))break;a[c[s>>2]>>0]=a[u>>0]|0;c[s>>2]=(c[s>>2]|0)+1;c[t>>2]=(c[t>>2]|0)+-1}if((c[t>>2]|0)>>>0>=8){q=v;o=gx(c[q>>2]|0,c[q+4>>2]|0,16843009,16843009)|0;q=v;c[q>>2]=o;c[q+4>>2]=D;do{c[w>>2]=c[s>>2];q=v;o=c[q+4>>2]|0;p=c[w>>2]|0;c[p>>2]=c[q>>2];c[p+4>>2]=o;c[t>>2]=(c[t>>2]|0)-8;c[s>>2]=(c[s>>2]|0)+8}while((c[t>>2]|0)>>>0>=8)}while(1){if(!(c[t>>2]|0))break;a[c[s>>2]>>0]=a[u>>0]|0;c[s>>2]=(c[s>>2]|0)+1;c[t>>2]=(c[t>>2]|0)+-1}c[x>>2]=c[r>>2];c[y>>2]=16;a[z>>0]=0;r=A;c[r>>2]=d[z>>0];c[r+4>>2]=0;while(1){if(!(c[x>>2]&7|0?(c[y>>2]|0)!=0:0))break;a[c[x>>2]>>0]=a[z>>0]|0;c[x>>2]=(c[x>>2]|0)+1;c[y>>2]=(c[y>>2]|0)+-1}if((c[y>>2]|0)>>>0>=8){r=A;t=gx(c[r>>2]|0,c[r+4>>2]|0,16843009,16843009)|0;r=A;c[r>>2]=t;c[r+4>>2]=D;do{c[B>>2]=c[x>>2];r=A;t=c[r+4>>2]|0;s=c[B>>2]|0;c[s>>2]=c[r>>2];c[s+4>>2]=t;c[y>>2]=(c[y>>2]|0)-8;c[x>>2]=(c[x>>2]|0)+8}while((c[y>>2]|0)>>>0>=8)}while(1){if(!(c[y>>2]|0))break;a[c[x>>2]>>0]=a[z>>0]|0;c[x>>2]=(c[x>>2]|0)+1;c[y>>2]=(c[y>>2]|0)+-1}l=j;return}function Qs(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f;h=f+20|0;i=f+16|0;j=f+12|0;k=f+8|0;n=f+4|0;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;if((c[k>>2]|0)!=16)Se(51859,51405,386,51872);c[n>>2]=Ch(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[j>>2]|0,c[k>>2]|0)|0;if(c[n>>2]|0){c[g>>2]=Ss(c[n>>2]|0)|0;We(51884,g)}else{l=f;return}}function Rs(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0;h=l;l=l+16|0;if((l|0)>=(m|0))$(16);i=h+12|0;j=h+8|0;k=h+4|0;n=h;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[n>>2]=g;while(1){if(!(c[n>>2]|0))break;a[c[i>>2]>>0]=(d[c[j>>2]>>0]|0)^(d[c[k>>2]>>0]|0);c[n>>2]=(c[n>>2]|0)+-1;c[j>>2]=(c[j>>2]|0)+1;c[k>>2]=(c[k>>2]|0)+1;c[i>>2]=(c[i>>2]|0)+1}l=h;return}function Ss(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=Bt(c[d>>2]|0)|0;l=b;return a|0}function Ts(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;f=l;l=l+48|0;if((l|0)>=(m|0))$(48);g=f+28|0;h=f+24|0;i=f+20|0;j=f+16|0;k=f+12|0;n=f+32|0;o=f;p=f+8|0;c[g>>2]=b;c[h>>2]=e;if(!(c[17793]|0))Se(51716,51405,642,51969);if((c[h>>2]|0)!=16)Se(51859,51405,643,51969);c[i>>2]=Us(16)|0;h=c[g>>2]|0;g=c[i>>2]|0;e=h+16|0;do{a[h>>0]=a[g>>0]|0;h=h+1|0;g=g+1|0}while((h|0)<(e|0));c[j>>2]=c[i>>2];c[k>>2]=16;a[n>>0]=0;g=o;c[g>>2]=d[n>>0];c[g+4>>2]=0;while(1){if(!(c[j>>2]&7|0?(c[k>>2]|0)!=0:0))break;a[c[j>>2]>>0]=a[n>>0]|0;c[j>>2]=(c[j>>2]|0)+1;c[k>>2]=(c[k>>2]|0)+-1}if((c[k>>2]|0)>>>0>=8){g=o;h=gx(c[g>>2]|0,c[g+4>>2]|0,16843009,16843009)|0;g=o;c[g>>2]=h;c[g+4>>2]=D;do{c[p>>2]=c[j>>2];g=o;h=c[g+4>>2]|0;e=c[p>>2]|0;c[e>>2]=c[g>>2];c[e+4>>2]=h;c[k>>2]=(c[k>>2]|0)-8;c[j>>2]=(c[j>>2]|0)+8}while((c[k>>2]|0)>>>0>=8)}while(1){if(!(c[k>>2]|0))break;a[c[j>>2]>>0]=a[n>>0]|0;c[j>>2]=(c[j>>2]|0)+1;c[k>>2]=(c[k>>2]|0)+-1}vf(c[i>>2]|0);l=f;return}function Us(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;e=b+12|0;f=b+8|0;g=b+4|0;c[e>>2]=a;if(c[17799]|0)Se(51988,51405,552,52012);c[17799]=Bf(c[e>>2]|0)|0;c[17800]=c[e>>2];c[17801]=0;c[g>>2]=nt(4,0,16,2)|0;if((c[g>>2]|0)<0){h=c[17799]|0;vf(h);c[17799]=0;We(52024,d)}if((c[17801]|0)!=(c[17800]|0)){h=c[17799]|0;vf(h);c[17799]=0;We(52024,d)}else{c[f>>2]=c[17799];c[17799]=0;l=b;return c[f>>2]|0}return 0}function Vs(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;g=l;l=l+16|0;if((l|0)>=(m|0))$(16);h=g+12|0;i=g+8|0;j=g;c[h>>2]=b;c[i>>2]=e;c[g+4>>2]=f;c[j>>2]=c[h>>2];if(!(c[17793]|0))Se(51716,51405,531,52052);if(!(c[17799]|0))Se(52071,51405,532,52052);while(1){h=c[i>>2]|0;c[i>>2]=h+-1;if(!h){k=8;break}if((c[17801]|0)>>>0>=(c[17800]|0)>>>0){k=8;break}h=c[j>>2]|0;c[j>>2]=h+1;f=d[h>>0]|0;h=c[17801]|0;c[17801]=h+1;e=(c[17799]|0)+h|0;a[e>>0]=(d[e>>0]|0)^f}if((k|0)==8){l=g;return}}function Ws(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;As(1);Cs();Ks(c[e>>2]|0,c[f>>2]|0,c[17790]|0);Fs();l=d;return}function Xs(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[d>>2]=a;jn(b+8|0,8,1);c[e>>2]=Ys(c[d>>2]|0)|0;d=Zs(c[e>>2]|0)|0;l=b;return d|0}function Ys(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;e=l;l=l+48|0;if((l|0)>=(m|0))$(48);f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;n=e+24|0;c[f>>2]=b;c[k>>2]=0;if(!(c[17789]|0))Se(51789,51405,912,52187);c[i>>2]=Cf(1,68)|0;Ds(c[i>>2]|0);Cs();c[g>>2]=0;a:while(1){if((c[g>>2]|0)>>>0>=3)break;c[j>>2]=wh((c[i>>2]|0)+4|0,7,1,1)|0;if(c[j>>2]|0){o=6;break}c[j>>2]=Jh(c[(c[i>>2]|0)+4>>2]|0,52238+((c[g>>2]|0)*96|0)|0,16)|0;if(c[j>>2]|0){o=8;break}b=_v()|0;c[(c[i>>2]|0)+60>>2]=b;b=(c[i>>2]|0)+17|0;p=52238+((c[g>>2]|0)*96|0)+32|0;q=b+16|0;do{a[b>>0]=a[p>>0]|0;b=b+1|0;p=p+1|0}while((b|0)<(q|0));p=(c[i>>2]|0)+8|0;a[p>>0]=a[p>>0]&-2|1;p=_v()|0;c[(c[i>>2]|0)+64>>2]=p;c[(c[i>>2]|0)+52>>2]=52238+((c[g>>2]|0)*96|0)+16;c[(c[i>>2]|0)+56>>2]=(d[52238+((c[g>>2]|0)*96|0)+16+12>>0]|0)<<24|(d[52238+((c[g>>2]|0)*96|0)+16+13>>0]|0)<<16|(d[52238+((c[g>>2]|0)*96|0)+16+14>>0]|0)<<8|(d[52238+((c[g>>2]|0)*96|0)+16+15>>0]|0);c[h>>2]=0;while(1){if((c[h>>2]|0)>=3)break;if(Ns(n,16,c[i>>2]|0)|0){o=12;break a}if(Jv(n,52238+((c[g>>2]|0)*96|0)+48+(c[h>>2]<<4)|0,16)|0){o=14;break a}c[h>>2]=(c[h>>2]|0)+1}p=c[(c[i>>2]|0)+60>>2]|0;if((p|0)!=(_v()|0)){o=18;break}p=c[(c[i>>2]|0)+64>>2]|0;if((p|0)!=(_v()|0)){o=18;break}Bh(c[(c[i>>2]|0)+4>>2]|0);c[(c[i>>2]|0)+4>>2]=0;p=(c[i>>2]|0)+8|0;a[p>>0]=a[p>>0]&-2;Es(c[i>>2]|0);c[g>>2]=(c[g>>2]|0)+1}if((o|0)==6)c[k>>2]=52200;else if((o|0)==8)c[k>>2]=52526;else if((o|0)==12)c[k>>2]=52552;else if((o|0)==14)c[k>>2]=52583;else if((o|0)==18)c[k>>2]=52621;Fs();Bh(c[(c[i>>2]|0)+4>>2]|0);Es(c[i>>2]|0);vf(c[i>>2]|0);if(!((c[f>>2]|0)!=0&(c[k>>2]|0)!=0)){r=c[k>>2]|0;s=(r|0)!=0;t=s?50:0;l=e;return t|0}Eb[c[f>>2]&1](52643,0,52650,c[k>>2]|0);r=c[k>>2]|0;s=(r|0)!=0;t=s?50:0;l=e;return t|0}function Zs(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=_s(1,c[d>>2]|0)|0;l=b;return a|0}function _s(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;if(!(c[f>>2]|0)){g=0;l=d;return g|0}g=(c[e>>2]&127)<<24|c[f>>2]&65535;l=d;return g|0}function $s(b,e,f,g,h,i,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;n=l;l=l+48|0;if((l|0)>=(m|0))$(48);o=n+40|0;p=n+36|0;q=n+32|0;r=n+28|0;s=n+24|0;t=n+20|0;u=n+16|0;v=n+12|0;w=n+8|0;x=n+4|0;y=n;c[p>>2]=b;c[q>>2]=e;c[r>>2]=f;c[s>>2]=g;c[t>>2]=h;c[u>>2]=i;c[v>>2]=j;c[w>>2]=k;As(1);if((((((c[p>>2]|0)!=0&(c[r>>2]|0)!=0^1|(c[s>>2]|0)!=16)^1)&(c[t>>2]|0)!=0^1|(c[u>>2]|0)!=16)^1)&(c[v>>2]|0)!=0^1|(c[w>>2]|0)!=16){c[o>>2]=45;z=c[o>>2]|0;l=n;return z|0}c[y>>2]=wf(1,68+(c[w>>2]|0)|0)|0;if(!(c[y>>2]|0)){c[o>>2]=Et()|0;z=c[o>>2]|0;l=n;return z|0}Ds(c[y>>2]|0);c[x>>2]=wh((c[y>>2]|0)+4|0,7,1,1)|0;if((c[x>>2]|0)==0?(c[x>>2]=Jh(c[(c[y>>2]|0)+4>>2]|0,c[r>>2]|0,c[s>>2]|0)|0,(c[x>>2]|0)==0):0){s=_v()|0;c[(c[y>>2]|0)+60>>2]=s;_w((c[y>>2]|0)+17|0,c[t>>2]|0,c[u>>2]|0)|0;u=(c[y>>2]|0)+8|0;a[u>>0]=a[u>>0]&-2|1;u=_v()|0;c[(c[y>>2]|0)+64>>2]=u;_w((c[y>>2]|0)+68|0,c[v>>2]|0,c[w>>2]|0)|0;c[(c[y>>2]|0)+52>>2]=(c[y>>2]|0)+68;c[(c[y>>2]|0)+56>>2]=(d[(c[(c[y>>2]|0)+52>>2]|0)+12>>0]|0)<<24|(d[(c[(c[y>>2]|0)+52>>2]|0)+13>>0]|0)<<16|(d[(c[(c[y>>2]|0)+52>>2]|0)+14>>0]|0)<<8|(d[(c[(c[y>>2]|0)+52>>2]|0)+15>>0]|0);if(c[q>>2]&1|0)a[(c[y>>2]|0)+51>>0]=1;Es(c[y>>2]|0);c[x>>2]=0}q=c[y>>2]|0;if(c[x>>2]|0){Bh(c[q+4>>2]|0);vf(c[y>>2]|0);c[c[p>>2]>>2]=0}else c[c[p>>2]>>2]=q;c[o>>2]=c[x>>2];z=c[o>>2]|0;l=n;return z|0}function at(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;j=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=c[g>>2];if((c[j>>2]|0)!=0&(c[h>>2]|0)!=0^1|(c[i>>2]|0)!=16){c[f>>2]=45;k=c[f>>2]|0;l=e;return k|0}else{Cs();Ks(c[h>>2]|0,c[i>>2]|0,c[j>>2]|0);Fs();c[f>>2]=0;k=c[f>>2]|0;l=e;return k|0}return 0}function bt(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=c[d>>2];if(!(c[e>>2]|0)){l=b;return}Bh(c[(c[e>>2]|0)+4>>2]|0);vf(c[e>>2]|0);l=b;return}function ct(a){a=a|0;var b=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);c[b>>2]=a;dt();l=b;return}function dt(){if(c[17802]|0)return;c[17802]=1;c[17803]=0;return}function et(){ft();nt(0,0,0,0)|0;gt();return}function ft(){var a=0,b=0,d=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=a;d=a+4|0;c[d>>2]=Ht(13108)|0;if(c[d>>2]|0){c[b>>2]=Bt(c[d>>2]|0)|0;We(52697,b)}else{c[17803]=1;l=a;return}}function gt(){var a=0,b=0,d=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=a;d=a+4|0;c[17803]=0;c[d>>2]=It(13108)|0;if(c[d>>2]|0){c[b>>2]=Bt(c[d>>2]|0)|0;We(52654,b)}else{l=a;return}}function ht(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;ct(1);if((c[h>>2]|0)!=2)c[h>>2]=1;ft();it(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0);gt();l=e;return}function it(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;if(!(c[g>>2]|0))Se(52740,52747,144,52763);c[17804]=c[g>>2];c[17805]=c[h>>2];c[17806]=0;c[j>>2]=nt(5,0,c[h>>2]|0,c[i>>2]|0)|0;if((c[j>>2]|0)<0){k=c[j>>2]|0;c[f>>2]=k;We(52774,f)}if((c[17806]|0)!=(c[17805]|0)){k=c[j>>2]|0;c[f>>2]=k;We(52774,f)}else{l=e;return}}function jt(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f+12|0;h=f+8|0;i=f;c[g>>2]=b;c[h>>2]=d;c[f+4>>2]=e;c[i>>2]=c[g>>2];if(!(c[17803]|0))Se(52820,52747,124,52841);if(!(c[17804]|0))Se(52849,52747,125,52841);while(1){g=c[h>>2]|0;c[h>>2]=g+-1;if(!g){j=8;break}if((c[17806]|0)>>>0>=(c[17805]|0)>>>0){j=8;break}g=c[i>>2]|0;c[i>>2]=g+1;e=a[g>>0]|0;g=c[17806]|0;c[17806]=g+1;a[(c[17804]|0)+g>>0]=e}if((j|0)==8){l=f;return}}function kt(){return c[17807]|0}function lt(a,b){a=a|0;b=b|0;var d=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);c[d+4>>2]=a;c[d>>2]=b;l=d;return}function mt(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d;c[d+8>>2]=a;c[d+4>>2]=b;c[e>>2]=0;l=d;return c[e>>2]|0}function nt(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;h=l;l=l+1024|0;if((l|0)>=(m|0))$(1024);i=h+24|0;j=h+16|0;k=h+8|0;n=h+236|0;o=h+232|0;p=h+228|0;q=h+224|0;r=h+220|0;s=h+216|0;t=h+212|0;u=h+248|0;v=h+208|0;w=h+204|0;x=h+200|0;y=h+196|0;z=h+192|0;A=h+64|0;B=h+56|0;C=h+52|0;E=h+48|0;F=h+44|0;G=h+40|0;H=h+36|0;I=h+32|0;J=h+240|0;K=h;L=h+28|0;c[o>>2]=b;c[p>>2]=e;c[q>>2]=f;c[r>>2]=g;c[w>>2]=c[q>>2];c[x>>2]=0;c[y>>2]=0;if(!(c[o>>2]|0)){if((c[3288]|0)!=-1){Kv(c[3288]|0)|0;c[3288]=-1}if((c[3289]|0)!=-1){Kv(c[3289]|0)|0;c[3289]=-1}c[n>>2]=0;M=c[n>>2]|0;l=h;return M|0}c[v>>2]=mt(c[o>>2]|0,c[p>>2]|0)|0;if((c[v>>2]|0)>>>0>(((c[q>>2]|0)>>>0)/2|0)>>>0)c[v>>2]=((c[q>>2]|0)>>>0)/2|0;if((c[q>>2]|0)>>>0>1)c[q>>2]=(c[q>>2]|0)-(c[v>>2]|0);if((c[r>>2]|0)>=2){if((c[3288]|0)==-1){c[3288]=ot(52864,(d[72318]|0)&1)|0;a[72318]=d[72318]|0|1}c[s>>2]=c[3288]}else{if((c[3289]|0)==-1){c[3289]=ot(52876,(d[72318]|0)&2)|0;a[72318]=d[72318]|0|2}c[s>>2]=c[3289]}c[z>>2]=0;while(1){if(!(c[q>>2]|0))break;if(!(!(c[y>>2]|0)?(c[x>>2]|0)==((c[w>>2]|0)-(c[q>>2]|0)|0):0)){c[x>>2]=(c[w>>2]|0)-(c[q>>2]|0);Wm(52889,88,c[x>>2]|0,c[w>>2]|0);c[y>>2]=1}if((c[s>>2]|0)<1024){c[F>>2]=A;c[E>>2]=32;while(1){if(!(c[E>>2]|0))break;r=c[F>>2]|0;c[F>>2]=r+4;c[r>>2]=0;c[E>>2]=(c[E>>2]|0)+-1}r=A+((((c[s>>2]|0)>>>0)/32|0)<<2)|0;c[r>>2]=c[r>>2]|1<<(((c[s>>2]|0)>>>0)%32|0);c[B>>2]=c[z>>2];c[B+4>>2]=c[z>>2]|0?0:1e5;r=dw((c[s>>2]|0)+1|0,A,0,0,B)|0;c[C>>2]=r;if(!r){c[y>>2]=1;c[z>>2]=3;continue}if((c[C>>2]|0)==-1){c[k>>2]=Nu(c[(xu()|0)>>2]|0)|0;Ve(52902,k);if(c[z>>2]|0)continue;c[z>>2]=1;continue}}do{c[G>>2]=(c[q>>2]|0)>>>0<768?c[q>>2]|0:768;c[t>>2]=fw(c[s>>2]|0,u,c[G>>2]|0)|0;if((c[t>>2]|0)>=0?(c[t>>2]|0)>>>0>(c[G>>2]|0)>>>0:0){c[j>>2]=c[t>>2];Ve(52922,j);c[t>>2]=c[G>>2]}if((c[t>>2]|0)!=-1)break}while((c[(xu()|0)>>2]|0)==4);if((c[t>>2]|0)==-1){N=38;break}zb[c[o>>2]&7](u,c[t>>2]|0,c[p>>2]|0);c[q>>2]=(c[q>>2]|0)-(c[t>>2]|0)}if((N|0)==38){c[i>>2]=Nu(c[(xu()|0)>>2]|0)|0;We(52960,i)}c[H>>2]=u;c[I>>2]=768;a[J>>0]=0;u=K;c[u>>2]=d[J>>0];c[u+4>>2]=0;while(1){if(!(c[H>>2]&7|0?(c[I>>2]|0)!=0:0))break;a[c[H>>2]>>0]=a[J>>0]|0;c[H>>2]=(c[H>>2]|0)+1;c[I>>2]=(c[I>>2]|0)+-1}if((c[I>>2]|0)>>>0>=8){u=K;i=gx(c[u>>2]|0,c[u+4>>2]|0,16843009,16843009)|0;u=K;c[u>>2]=i;c[u+4>>2]=D;do{c[L>>2]=c[H>>2];u=K;i=c[u+4>>2]|0;N=c[L>>2]|0;c[N>>2]=c[u>>2];c[N+4>>2]=i;c[I>>2]=(c[I>>2]|0)-8;c[H>>2]=(c[H>>2]|0)+8}while((c[I>>2]|0)>>>0>=8)}while(1){if(!(c[I>>2]|0))break;a[c[H>>2]>>0]=a[J>>0]|0;c[H>>2]=(c[H>>2]|0)+1;c[I>>2]=(c[I>>2]|0)+-1}if(c[y>>2]|0)Wm(52889,88,c[w>>2]|0,c[w>>2]|0);c[n>>2]=0;M=c[n>>2]|0;l=h;return M|0}function ot(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0;d=l;l=l+48|0;if((l|0)>=(m|0))$(48);e=d+16|0;f=d+8|0;g=d;h=d+40|0;i=d+36|0;j=d+32|0;k=d+24|0;c[h>>2]=a;c[i>>2]=b;if(c[i>>2]|0)Wm(52993,88,1,0);while(1){c[j>>2]=gw(c[h>>2]|0,0,g)|0;if(!((c[j>>2]|0)==-1&(c[i>>2]|0)!=0))break;c[k>>2]=5;c[k+4>>2]=0;Wm(53009,88,0,c[k>>2]|0);dw(0,0,0,0,k)|0}if((c[j>>2]|0)==-1){k=c[h>>2]|0;h=Nu(c[(xu()|0)>>2]|0)|0;c[f>>2]=k;c[f+4>>2]=h;We(53025,f)}if(!(pt(c[j>>2]|0)|0)){n=c[j>>2]|0;l=d;return n|0}f=c[j>>2]|0;h=Nu(c[(xu()|0)>>2]|0)|0;c[e>>2]=f;c[e+4>>2]=h;Ve(53044,e);n=c[j>>2]|0;l=d;return n|0}function pt(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+32|0;if((l|0)>=(m|0))$(32);d=b+8|0;e=b;f=b+20|0;g=b+16|0;h=b+12|0;c[g>>2]=a;a=c[g>>2]|0;c[e>>2]=0;c[h>>2]=Lv(a,1,e)|0;e=c[h>>2]|0;if((c[h>>2]|0)<0){c[f>>2]=e;i=c[f>>2]|0;l=b;return i|0}else{c[h>>2]=e|1;e=c[g>>2]|0;c[d>>2]=c[h>>2];c[f>>2]=Lv(e,2,d)|0;i=c[f>>2]|0;l=b;return i|0}return 0}function qt(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;f=l;l=l+80|0;if((l|0)>=(m|0))$(80);g=f+72|0;h=f+68|0;i=f+64|0;j=f+60|0;k=f+56|0;n=f+52|0;o=f+48|0;p=f+44|0;q=f+40|0;r=f+36|0;s=f+32|0;t=f+28|0;u=f+24|0;v=f+20|0;w=f+16|0;x=f+12|0;y=f+8|0;z=f+4|0;A=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[n>>2]=0-(c[i>>2]|0);c[g>>2]=(c[g>>2]|0)+(0-(c[n>>2]|0)<<2);c[h>>2]=(c[h>>2]|0)+(0-(c[n>>2]|0)<<2);c[k>>2]=0;do{c[z>>2]=c[(c[h>>2]|0)+(c[n>>2]<<2)>>2];c[A>>2]=c[j>>2];c[v>>2]=c[z>>2]&65535;c[x>>2]=(c[z>>2]|0)>>>16;c[w>>2]=c[A>>2]&65535;c[y>>2]=(c[A>>2]|0)>>>16;c[r>>2]=S(c[v>>2]|0,c[w>>2]|0)|0;c[s>>2]=S(c[v>>2]|0,c[y>>2]|0)|0;c[t>>2]=S(c[x>>2]|0,c[w>>2]|0)|0;c[u>>2]=S(c[x>>2]|0,c[y>>2]|0)|0;c[s>>2]=(c[s>>2]|0)+((c[r>>2]|0)>>>16);c[s>>2]=(c[s>>2]|0)+(c[t>>2]|0);if((c[s>>2]|0)>>>0<(c[t>>2]|0)>>>0)c[u>>2]=(c[u>>2]|0)+65536;c[o>>2]=(c[u>>2]|0)+((c[s>>2]|0)>>>16);c[p>>2]=((c[s>>2]&65535)<<16)+(c[r>>2]&65535);c[p>>2]=(c[p>>2]|0)+(c[k>>2]|0);c[k>>2]=((c[p>>2]|0)>>>0<(c[k>>2]|0)>>>0?1:0)+(c[o>>2]|0);c[q>>2]=c[(c[g>>2]|0)+(c[n>>2]<<2)>>2];c[p>>2]=(c[q>>2]|0)+(c[p>>2]|0);c[k>>2]=(c[k>>2]|0)+((c[p>>2]|0)>>>0<(c[q>>2]|0)>>>0?1:0);c[(c[g>>2]|0)+(c[n>>2]<<2)>>2]=c[p>>2];i=(c[n>>2]|0)+1|0;c[n>>2]=i}while((i|0)!=0);l=f;return c[k>>2]|0}function rt(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;e=l;l=l+48|0;if((l|0)>=(m|0))$(48);f=e+16|0;g=e+8|0;h=e;i=e+44|0;j=e+40|0;k=e+36|0;n=e+32|0;o=e+28|0;p=e+24|0;q=e+20|0;c[i>>2]=b;c[j>>2]=d;c[k>>2]=xp(c[(c[i>>2]|0)+4>>2]|0)|0;c[n>>2]=lo(c[i>>2]|0)|0;c[o>>2]=(((c[n>>2]|0)+7|0)>>>0)/8|0;c[p>>2]=0;if(Ff(1)|0){d=c[j>>2]|0;c[h>>2]=c[n>>2];c[h+4>>2]=d;Ye(53083,h)}while(1){if((c[p>>2]|0)==0|(c[n>>2]|0)>>>0<32){vf(c[p>>2]|0);c[p>>2]=hn(c[o>>2]|0,c[j>>2]|0)|0}else{c[q>>2]=hn(4,c[j>>2]|0)|0;h=c[p>>2]|0;d=c[q>>2]|0;a[h>>0]=a[d>>0]|0;a[h+1>>0]=a[d+1>>0]|0;a[h+2>>0]=a[d+2>>0]|0;a[h+3>>0]=a[d+3>>0]|0;vf(c[q>>2]|0)}Yo(c[k>>2]|0,c[p>>2]|0,c[o>>2]|0,0);d=(mo(c[k>>2]|0,(c[n>>2]|0)-1|0)|0)!=0;oo(c[k>>2]|0,(c[n>>2]|0)-1|0);if(!d)qo(c[k>>2]|0,(c[n>>2]|0)-1|0);if((wo(c[k>>2]|0,c[i>>2]|0)|0)>=0){if(!(Ff(1)|0))continue;Ye(53130,g);continue}if((vo(c[k>>2]|0,0)|0)>0)break;if(!(Ff(1)|0))continue;Ye(53152,f)}vf(c[p>>2]|0);l=e;return c[k>>2]|0}function st(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;j=l;l=l+80|0;if((l|0)>=(m|0))$(80);k=j+72|0;n=j+68|0;o=j+64|0;p=j+60|0;q=j+56|0;r=j+52|0;s=j+48|0;t=j+44|0;u=j+40|0;v=j+36|0;w=j+32|0;x=j+28|0;y=j+24|0;z=j+20|0;A=j+16|0;B=j+12|0;C=j+8|0;D=j+4|0;E=j;c[n>>2]=b;c[o>>2]=d;c[p>>2]=e;c[q>>2]=f;c[r>>2]=g;c[s>>2]=h;c[t>>2]=i;c[v>>2]=0;c[w>>2]=0;c[x>>2]=0;c[y>>2]=0;c[z>>2]=0;c[A>>2]=0;c[B>>2]=0;c[D>>2]=lo(c[o>>2]|0)|0;if(!((c[D>>2]|0)!=0&(c[q>>2]|0)!=0&(c[r>>2]|0)!=0)){c[k>>2]=32816;F=c[k>>2]|0;l=j;return F|0}i=oj(c[s>>2]|0)|0;if((i|0)!=(c[r>>2]|0)){c[k>>2]=5;F=c[k>>2]|0;l=j;return F|0}c[v>>2]=pf(c[r>>2]|0)|0;a:do if(c[v>>2]|0){c[E>>2]=0;while(1){if((c[E>>2]|0)>>>0>=(c[r>>2]|0)>>>0)break;a[(c[v>>2]|0)+(c[E>>2]|0)>>0]=1;c[E>>2]=(c[E>>2]|0)+1}c[w>>2]=wf(1,c[r>>2]|0)|0;if(!(c[w>>2]|0)){c[u>>2]=Et()|0;break}c[u>>2]=tt(x,c[p>>2]|0,(((c[D>>2]|0)+7|0)>>>0)/8|0)|0;if(((((((c[u>>2]|0)==0?(c[u>>2]=ut(y,c[q>>2]|0,c[r>>2]<<3,c[o>>2]|0,c[D>>2]|0)|0,(c[u>>2]|0)==0):0)?(c[u>>2]=Si(z,c[s>>2]|0,3)|0,(c[u>>2]|0)==0):0)?(c[u>>2]=fj(c[z>>2]|0,c[w>>2]|0,c[r>>2]|0)|0,(c[u>>2]|0)==0):0)?($i(c[z>>2]|0,c[v>>2]|0,c[r>>2]|0),$i(c[z>>2]|0,72319,1),$i(c[z>>2]|0,c[x>>2]|0,(((c[D>>2]|0)+7|0)>>>0)/8|0),$i(c[z>>2]|0,c[y>>2]|0,(((c[D>>2]|0)+7|0)>>>0)/8|0),i=c[w>>2]|0,h=lj(c[z>>2]|0,0)|0,_w(i|0,h|0,c[r>>2]|0)|0,c[u>>2]=fj(c[z>>2]|0,c[w>>2]|0,c[r>>2]|0)|0,(c[u>>2]|0)==0):0)?($i(c[z>>2]|0,c[v>>2]|0,c[r>>2]|0),h=c[v>>2]|0,i=lj(c[z>>2]|0,0)|0,_w(h|0,i|0,c[r>>2]|0)|0,c[u>>2]=fj(c[z>>2]|0,c[w>>2]|0,c[r>>2]|0)|0,(c[u>>2]|0)==0):0)?($i(c[z>>2]|0,c[v>>2]|0,c[r>>2]|0),$i(c[z>>2]|0,53172,1),$i(c[z>>2]|0,c[x>>2]|0,(((c[D>>2]|0)+7|0)>>>0)/8|0),$i(c[z>>2]|0,c[y>>2]|0,(((c[D>>2]|0)+7|0)>>>0)/8|0),i=c[w>>2]|0,h=lj(c[z>>2]|0,0)|0,_w(i|0,h|0,c[r>>2]|0)|0,c[u>>2]=fj(c[z>>2]|0,c[w>>2]|0,c[r>>2]|0)|0,(c[u>>2]|0)==0):0){$i(c[z>>2]|0,c[v>>2]|0,c[r>>2]|0);h=c[v>>2]|0;i=lj(c[z>>2]|0,0)|0;_w(h|0,i|0,c[r>>2]|0)|0;c[A>>2]=pf(((((c[D>>2]|0)+7|0)>>>0)/8|0)+(c[r>>2]|0)|0)|0;if(!(c[A>>2]|0)){c[u>>2]=Et()|0;break}while(1){c[C>>2]=0;while(1){if((c[C>>2]|0)>>>0>=(c[D>>2]|0)>>>0)break;c[u>>2]=fj(c[z>>2]|0,c[w>>2]|0,c[r>>2]|0)|0;if(c[u>>2]|0)break a;$i(c[z>>2]|0,c[v>>2]|0,c[r>>2]|0);i=c[v>>2]|0;h=lj(c[z>>2]|0,0)|0;_w(i|0,h|0,c[r>>2]|0)|0;_w((c[A>>2]|0)+((((c[C>>2]|0)+7|0)>>>0)/8|0)|0,c[v>>2]|0,c[r>>2]|0)|0;c[C>>2]=(c[C>>2]|0)+(c[r>>2]<<3)}Dp(c[B>>2]|0);c[B>>2]=0;c[u>>2]=Zo(B,5,c[A>>2]|0,(((c[C>>2]|0)+7|0)>>>0)/8|0,0)|0;if(c[u>>2]|0)break a;if((c[C>>2]|0)>>>0>(c[D>>2]|0)>>>0)so(c[B>>2]|0,c[B>>2]|0,(c[C>>2]|0)-(c[D>>2]|0)|0);if((wo(c[B>>2]|0,c[o>>2]|0)|0)<0?(vo(c[B>>2]|0,0)|0)>0:0){if(!(c[t>>2]|0))break a;c[t>>2]=(c[t>>2]|0)+-1;c[u>>2]=fj(c[z>>2]|0,c[w>>2]|0,c[r>>2]|0)|0;if(c[u>>2]|0)break a;$i(c[z>>2]|0,c[v>>2]|0,c[r>>2]|0);$i(c[z>>2]|0,72319,1);h=c[w>>2]|0;i=lj(c[z>>2]|0,0)|0;_w(h|0,i|0,c[r>>2]|0)|0;c[u>>2]=fj(c[z>>2]|0,c[w>>2]|0,c[r>>2]|0)|0;if(c[u>>2]|0)break a;$i(c[z>>2]|0,c[v>>2]|0,c[r>>2]|0);i=c[v>>2]|0;h=lj(c[z>>2]|0,0)|0;_w(i|0,h|0,c[r>>2]|0)|0;continue}c[u>>2]=fj(c[z>>2]|0,c[w>>2]|0,c[r>>2]|0)|0;if(c[u>>2]|0)break a;$i(c[z>>2]|0,c[v>>2]|0,c[r>>2]|0);$i(c[z>>2]|0,72319,1);h=c[w>>2]|0;i=lj(c[z>>2]|0,0)|0;_w(h|0,i|0,c[r>>2]|0)|0;c[u>>2]=fj(c[z>>2]|0,c[w>>2]|0,c[r>>2]|0)|0;if(c[u>>2]|0)break a;$i(c[z>>2]|0,c[v>>2]|0,c[r>>2]|0);i=c[v>>2]|0;h=lj(c[z>>2]|0,0)|0;_w(i|0,h|0,c[r>>2]|0)|0}}}else c[u>>2]=Et()|0;while(0);vf(c[A>>2]|0);_i(c[z>>2]|0);vf(c[y>>2]|0);vf(c[x>>2]|0);vf(c[w>>2]|0);vf(c[v>>2]|0);v=c[B>>2]|0;if(c[u>>2]|0)Dp(v);else c[c[n>>2]>>2]=v;c[k>>2]=c[u>>2];F=c[k>>2]|0;l=j;return F|0}function tt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;e=l;l=l+48|0;if((l|0)>=(m|0))$(48);f=e+32|0;g=e+28|0;h=e+24|0;i=e+20|0;j=e+16|0;k=e+12|0;n=e+8|0;o=e+4|0;p=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=bp(5,0,0,k,c[h>>2]|0)|0;if(c[j>>2]|0){c[f>>2]=c[j>>2];q=c[f>>2]|0;l=e;return q|0}if((c[k>>2]|0)>>>0>(c[i>>2]|0)>>>0){c[f>>2]=67;q=c[f>>2]|0;l=e;return q|0}if((c[k>>2]|0)>>>0<(c[i>>2]|0)>>>0)r=(c[i>>2]|0)-(c[k>>2]|0)|0;else r=0;c[n>>2]=r;c[o>>2]=(c[k>>2]|0)+(c[n>>2]|0);if(c[h>>2]|0?c[(c[h>>2]|0)+12>>2]&1|0:0)s=sf(c[o>>2]|0)|0;else s=pf(c[o>>2]|0)|0;c[p>>2]=s;if(!(c[p>>2]|0)){c[f>>2]=Et()|0;q=c[f>>2]|0;l=e;return q|0}if(c[n>>2]|0)Uw(c[p>>2]|0,0,c[n>>2]|0)|0;c[k>>2]=(c[k>>2]|0)+(c[n>>2]|0);c[j>>2]=bp(5,(c[p>>2]|0)+(c[n>>2]|0)|0,(c[k>>2]|0)-(c[n>>2]|0)|0,0,c[h>>2]|0)|0;h=c[p>>2]|0;if(c[j>>2]|0){vf(h);c[f>>2]=c[j>>2];q=c[f>>2]|0;l=e;return q|0}else{c[c[g>>2]>>2]=h;c[f>>2]=0;q=c[f>>2]|0;l=e;return q|0}return 0}function ut(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0;g=l;l=l+32|0;if((l|0)>=(m|0))$(32);h=g+28|0;i=g+24|0;j=g+20|0;k=g+16|0;n=g+12|0;o=g+8|0;p=g+4|0;q=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=Zo(q,5,c[j>>2]|0,(((c[k>>2]|0)+7|0)>>>0)/8|0,0)|0;if(c[p>>2]|0){c[h>>2]=c[p>>2];r=c[h>>2]|0;l=g;return r|0}if((c[k>>2]|0)>>>0>(c[o>>2]|0)>>>0)so(c[q>>2]|0,c[q>>2]|0,(c[k>>2]|0)-(c[o>>2]|0)|0);if((wo(c[q>>2]|0,c[n>>2]|0)|0)>=0)ho(c[q>>2]|0,c[q>>2]|0,c[n>>2]|0);c[p>>2]=tt(c[i>>2]|0,c[q>>2]|0,(((c[o>>2]|0)+7|0)>>>0)/8|0)|0;Dp(c[q>>2]|0);c[h>>2]=c[p>>2];r=c[h>>2]|0;l=g;return r|0}function vt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e+28|0;g=e+24|0;h=e+20|0;i=e+16|0;j=e+12|0;k=e+8|0;n=e+4|0;o=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=0;do if(c[g>>2]|0?c[(c[g>>2]|0)+12>>2]&4|0:0){c[k>>2]=Gp(c[g>>2]|0,n)|0;c[j>>2]=Zo(o,5,c[k>>2]|0,(((c[n>>2]|0)+7|0)>>>0)/8|0,0)|0;if(c[j>>2]|0){c[f>>2]=c[j>>2];p=c[f>>2]|0;l=e;return p|0}else{if((c[n>>2]|0)>>>0<=(c[i>>2]|0)>>>0)break;so(c[o>>2]|0,c[o>>2]|0,(c[n>>2]|0)-(c[i>>2]|0)|0);break}}else q=7;while(0);if((q|0)==7)c[o>>2]=c[g>>2];c[c[h>>2]>>2]=c[o>>2];c[f>>2]=c[j>>2];p=c[f>>2]|0;l=e;return p|0}function wt(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;h=l;l=l+96|0;if((l|0)>=(m|0))$(96);i=h;j=h+88|0;k=h+84|0;n=h+80|0;o=h+76|0;p=h+72|0;q=h+68|0;r=h+64|0;s=h+60|0;t=h+56|0;u=h+52|0;v=h+48|0;w=h+44|0;x=h+40|0;y=h+36|0;z=h+24|0;A=h+20|0;B=h+16|0;C=h+12|0;D=h+8|0;E=h+4|0;c[k>>2]=a;c[n>>2]=b;c[o>>2]=d;c[p>>2]=e;c[q>>2]=f;c[r>>2]=g;c[s>>2]=0;c[t>>2]=0;if(Ff(1)|0)af(53174,c[k>>2]|0);c[D>>2]=lo(c[(c[n>>2]|0)+32>>2]|0)|0;c[s>>2]=vt(c[k>>2]|0,A,c[D>>2]|0)|0;if(c[s>>2]|0){c[j>>2]=c[s>>2];F=c[j>>2]|0;l=h;return F|0}c[u>>2]=0;c[v>>2]=vp(0)|0;c[w>>2]=vp(0)|0;c[x>>2]=vp(0)|0;c[y>>2]=vp(0)|0;yn(z);c[E>>2]=En(c[c[n>>2]>>2]|0,c[(c[n>>2]|0)+4>>2]|0,0,c[(c[n>>2]|0)+8>>2]|0,c[(c[n>>2]|0)+12>>2]|0,c[(c[n>>2]|0)+16>>2]|0)|0;a:while(1){do{Dp(c[u>>2]|0);c[u>>2]=0;if((c[q>>2]&2|0)!=0&(c[r>>2]|0)!=0){if(!(c[k>>2]|0)){G=10;break a}if(!(c[(c[k>>2]|0)+12>>2]&4)){G=10;break a}c[B>>2]=Gp(c[k>>2]|0,C)|0;c[s>>2]=st(u,c[(c[n>>2]|0)+32>>2]|0,c[(c[n>>2]|0)+56>>2]|0,c[B>>2]|0,(((c[C>>2]|0)+7|0)>>>0)/8|0,c[r>>2]|0,c[t>>2]|0)|0;if(c[s>>2]|0)break a;c[t>>2]=(c[t>>2]|0)+1}else c[u>>2]=rt(c[(c[n>>2]|0)+32>>2]|0,1)|0;$n(z,c[u>>2]|0,(c[n>>2]|0)+20|0,c[E>>2]|0);if(tn(c[y>>2]|0,0,z,c[E>>2]|0)|0){G=15;break a}Mo(c[o>>2]|0,c[y>>2]|0,c[(c[n>>2]|0)+32>>2]|0)}while((vo(c[o>>2]|0,0)|0)!=0^1);Ro(c[v>>2]|0,c[(c[n>>2]|0)+56>>2]|0,c[o>>2]|0,c[(c[n>>2]|0)+32>>2]|0);io(c[w>>2]|0,c[A>>2]|0,c[v>>2]|0,c[(c[n>>2]|0)+32>>2]|0);Lo(c[x>>2]|0,c[u>>2]|0,c[(c[n>>2]|0)+32>>2]|0)|0;Ro(c[p>>2]|0,c[x>>2]|0,c[w>>2]|0,c[(c[n>>2]|0)+32>>2]|0);if(!((vo(c[p>>2]|0,0)|0)!=0^1)){G=20;break}}if((G|0)==10)c[s>>2]=70;else if((G|0)==15){if(Ff(1)|0)Ye(53251,i);c[s>>2]=8}else if((G|0)==20?Ff(1)|0:0){af(53192,c[o>>2]|0);af(53213,c[p>>2]|0)}In(c[E>>2]|0);An(z);Dp(c[y>>2]|0);Dp(c[x>>2]|0);Dp(c[w>>2]|0);Dp(c[v>>2]|0);Dp(c[u>>2]|0);if((c[A>>2]|0)!=(c[k>>2]|0))Dp(c[A>>2]|0);c[j>>2]=c[s>>2];F=c[j>>2]|0;l=h;return F|0}function xt(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;f=l;l=l+112|0;if((l|0)>=(m|0))$(112);g=f+8|0;h=f;i=f+96|0;j=f+92|0;k=f+88|0;n=f+84|0;o=f+80|0;p=f+76|0;q=f+72|0;r=f+68|0;s=f+64|0;t=f+60|0;u=f+56|0;v=f+44|0;w=f+32|0;x=f+20|0;y=f+16|0;z=f+12|0;c[j>>2]=a;c[k>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=0;if((vo(c[n>>2]|0,0)|0)>0?(wo(c[n>>2]|0,c[(c[k>>2]|0)+32>>2]|0)|0)<0:0){if((vo(c[o>>2]|0,0)|0)>0?(wo(c[o>>2]|0,c[(c[k>>2]|0)+32>>2]|0)|0)<0:0){c[z>>2]=lo(c[(c[k>>2]|0)+32>>2]|0)|0;c[p>>2]=vt(c[j>>2]|0,q,c[z>>2]|0)|0;if(c[p>>2]|0){c[i>>2]=c[p>>2];A=c[i>>2]|0;l=f;return A|0}c[r>>2]=vp(0)|0;c[s>>2]=vp(0)|0;c[t>>2]=vp(0)|0;c[u>>2]=vp(0)|0;yn(v);yn(w);yn(x);c[y>>2]=En(c[c[k>>2]>>2]|0,c[(c[k>>2]|0)+4>>2]|0,0,c[(c[k>>2]|0)+8>>2]|0,c[(c[k>>2]|0)+12>>2]|0,c[(c[k>>2]|0)+16>>2]|0)|0;Lo(c[r>>2]|0,c[o>>2]|0,c[(c[k>>2]|0)+32>>2]|0)|0;Ro(c[s>>2]|0,c[q>>2]|0,c[r>>2]|0,c[(c[k>>2]|0)+32>>2]|0);$n(w,c[s>>2]|0,(c[k>>2]|0)+20|0,c[y>>2]|0);Ro(c[t>>2]|0,c[n>>2]|0,c[r>>2]|0,c[(c[k>>2]|0)+32>>2]|0);$n(x,c[t>>2]|0,(c[k>>2]|0)+44|0,c[y>>2]|0);Vn(v,w,x,c[y>>2]|0);do if(vo(c[v+8>>2]|0,0)|0){if(tn(c[u>>2]|0,0,v,c[y>>2]|0)|0){if(Ff(1)|0)Ye(53357,g);c[p>>2]=8;break}Mo(c[u>>2]|0,c[u>>2]|0,c[(c[k>>2]|0)+32>>2]|0);if(wo(c[u>>2]|0,c[n>>2]|0)|0){if(Ff(1)|0){af(53403,c[u>>2]|0);af(53410,c[n>>2]|0);af(53417,c[o>>2]|0)}c[p>>2]=8}}else{if(Ff(1)|0)Ye(53335,h);c[p>>2]=8}while(0);In(c[y>>2]|0);An(x);An(w);An(v);Dp(c[u>>2]|0);Dp(c[t>>2]|0);Dp(c[s>>2]|0);Dp(c[r>>2]|0);if((c[q>>2]|0)!=(c[j>>2]|0))Dp(c[q>>2]|0);c[i>>2]=c[p>>2];A=c[i>>2]|0;l=f;return A|0}c[i>>2]=8;A=c[i>>2]|0;l=f;return A|0}c[i>>2]=8;A=c[i>>2]|0;l=f;return A|0}function yt(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;f=l;l=l+96|0;if((l|0)>=(m|0))$(96);g=f;h=f+80|0;i=f+76|0;j=f+72|0;k=f+68|0;n=f+64|0;o=f+60|0;p=f+56|0;q=f+52|0;r=f+48|0;s=f+44|0;t=f+40|0;u=f+36|0;v=f+24|0;w=f+20|0;x=f+16|0;y=f+12|0;z=f+8|0;A=f+4|0;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[n>>2]=e;c[o>>2]=0;if(Ff(1)|0)af(53234,c[i>>2]|0);c[z>>2]=lo(c[(c[j>>2]|0)+32>>2]|0)|0;do if(c[i>>2]|0?c[(c[i>>2]|0)+12>>2]&4|0:0){c[x>>2]=Gp(c[i>>2]|0,y)|0;c[o>>2]=Zo(w,5,c[x>>2]|0,(((c[y>>2]|0)+7|0)>>>0)/8|0,0)|0;if(c[o>>2]|0){c[h>>2]=c[o>>2];B=c[h>>2]|0;l=f;return B|0}else{if((c[y>>2]|0)>>>0<=(c[z>>2]|0)>>>0)break;so(c[w>>2]|0,c[w>>2]|0,(c[y>>2]|0)-(c[z>>2]|0)|0);break}}else C=9;while(0);if((C|0)==9)c[w>>2]=c[i>>2];c[p>>2]=0;c[q>>2]=vp(0)|0;c[r>>2]=vp(0)|0;c[s>>2]=vp(0)|0;c[u>>2]=vp(0)|0;c[t>>2]=vp(0)|0;yn(v);c[A>>2]=En(c[c[j>>2]>>2]|0,c[(c[j>>2]|0)+4>>2]|0,0,c[(c[j>>2]|0)+8>>2]|0,c[(c[j>>2]|0)+12>>2]|0,c[(c[j>>2]|0)+16>>2]|0)|0;Mo(c[u>>2]|0,c[i>>2]|0,c[(c[j>>2]|0)+32>>2]|0);if(!(vo(c[u>>2]|0,0)|0))Op(c[u>>2]|0,1)|0;a:while(1){do{Dp(c[p>>2]|0);c[p>>2]=rt(c[(c[j>>2]|0)+32>>2]|0,1)|0;$n(v,c[p>>2]|0,(c[j>>2]|0)+20|0,c[A>>2]|0);if(tn(c[t>>2]|0,0,v,c[A>>2]|0)|0){C=14;break a}Mo(c[k>>2]|0,c[t>>2]|0,c[(c[j>>2]|0)+32>>2]|0)}while((vo(c[k>>2]|0,0)|0)!=0^1);Ro(c[q>>2]|0,c[(c[j>>2]|0)+56>>2]|0,c[k>>2]|0,c[(c[j>>2]|0)+32>>2]|0);Ro(c[s>>2]|0,c[p>>2]|0,c[u>>2]|0,c[(c[j>>2]|0)+32>>2]|0);io(c[n>>2]|0,c[s>>2]|0,c[q>>2]|0,c[(c[j>>2]|0)+32>>2]|0);if(!((vo(c[n>>2]|0,0)|0)!=0^1)){C=19;break}}if((C|0)==14){if(Ff(1)|0)Ye(53251,g);c[o>>2]=8}else if((C|0)==19?Ff(1)|0:0){af(53295,c[k>>2]|0);af(53315,c[n>>2]|0)}In(c[A>>2]|0);An(v);Dp(c[t>>2]|0);Dp(c[u>>2]|0);Dp(c[s>>2]|0);Dp(c[r>>2]|0);Dp(c[q>>2]|0);Dp(c[p>>2]|0);if((c[w>>2]|0)!=(c[i>>2]|0))Dp(c[w>>2]|0);c[h>>2]=c[o>>2];B=c[h>>2]|0;l=f;return B|0}function zt(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;f=l;l=l+128|0;if((l|0)>=(m|0))$(128);g=f+24|0;h=f+16|0;i=f+8|0;j=f;k=f+116|0;n=f+112|0;o=f+108|0;p=f+104|0;q=f+100|0;r=f+96|0;s=f+92|0;t=f+88|0;u=f+84|0;v=f+80|0;w=f+76|0;x=f+72|0;y=f+68|0;z=f+56|0;A=f+44|0;B=f+32|0;C=f+28|0;c[n>>2]=a;c[o>>2]=b;c[p>>2]=d;c[q>>2]=e;c[r>>2]=0;if((vo(c[p>>2]|0,0)|0)>0?(wo(c[p>>2]|0,c[(c[o>>2]|0)+32>>2]|0)|0)<0:0){if((vo(c[q>>2]|0,0)|0)>0?(wo(c[q>>2]|0,c[(c[o>>2]|0)+32>>2]|0)|0)<0:0){c[t>>2]=vp(0)|0;c[s>>2]=vp(0)|0;c[u>>2]=vp(0)|0;c[v>>2]=vp(0)|0;c[w>>2]=vp(0)|0;c[x>>2]=vp(0)|0;c[y>>2]=vp(0)|0;yn(z);yn(A);yn(B);c[C>>2]=En(c[c[o>>2]>>2]|0,c[(c[o>>2]|0)+4>>2]|0,0,c[(c[o>>2]|0)+8>>2]|0,c[(c[o>>2]|0)+12>>2]|0,c[(c[o>>2]|0)+16>>2]|0)|0;Mo(c[s>>2]|0,c[n>>2]|0,c[(c[o>>2]|0)+32>>2]|0);if(!(vo(c[s>>2]|0,0)|0))Op(c[s>>2]|0,1)|0;Lo(c[w>>2]|0,c[s>>2]|0,c[(c[o>>2]|0)+32>>2]|0)|0;Ro(c[u>>2]|0,c[q>>2]|0,c[w>>2]|0,c[(c[o>>2]|0)+32>>2]|0);Ro(c[x>>2]|0,c[p>>2]|0,c[w>>2]|0,c[(c[o>>2]|0)+32>>2]|0);jo(c[v>>2]|0,c[y>>2]|0,c[x>>2]|0,c[(c[o>>2]|0)+32>>2]|0);$n(A,c[u>>2]|0,(c[o>>2]|0)+20|0,c[C>>2]|0);$n(B,c[v>>2]|0,(c[o>>2]|0)+44|0,c[C>>2]|0);Vn(z,A,B,c[C>>2]|0);do if(vo(c[z+8>>2]|0,0)|0){if(tn(c[t>>2]|0,0,z,c[C>>2]|0)|0){if(Ff(1)|0)Ye(53357,i);c[r>>2]=8;break}Mo(c[t>>2]|0,c[t>>2]|0,c[(c[o>>2]|0)+32>>2]|0);n=(wo(c[t>>2]|0,c[p>>2]|0)|0)!=0;e=(Ff(1)|0)!=0;if(!n){if(!e)break;Ye(53450,g);break}if(e){af(53403,c[t>>2]|0);af(53410,c[p>>2]|0);af(53417,c[q>>2]|0);Ye(53424,h)}c[r>>2]=8}else{if(Ff(1)|0)Ye(53335,j);c[r>>2]=8}while(0);In(c[C>>2]|0);An(B);An(A);An(z);Dp(c[y>>2]|0);Dp(c[x>>2]|0);Dp(c[w>>2]|0);Dp(c[v>>2]|0);Dp(c[u>>2]|0);Dp(c[t>>2]|0);Dp(c[s>>2]|0);c[k>>2]=c[r>>2];D=c[k>>2]|0;l=f;return D|0}c[k>>2]=8;D=c[k>>2]|0;l=f;return D|0}c[k>>2]=8;D=c[k>>2]|0;l=f;return D|0}function At(){return Pt()|0}function Bt(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=au(c[d>>2]|0)|0;l=b;return a|0}function Ct(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=eu(c[d>>2]|0)|0;l=b;return a|0}function Dt(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=du(c[d>>2]|0)|0;l=b;return a|0}function Et(){return fu()|0}function Ft(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;Rt(c[d>>2]|0);l=b;return}function Gt(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=Kt(c[d>>2]|0)|0;l=b;return a|0}function Ht(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=Mt(c[d>>2]|0)|0;l=b;return a|0}function It(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=Nt(c[d>>2]|0)|0;l=b;return a|0}function Jt(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=Ot(c[d>>2]|0)|0;l=b;return a|0}function Kt(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+8|0;e=b+4|0;f=b;c[d>>2]=a;c[e>>2]=c[d>>2];if(c[c[e>>2]>>2]|0)c[e>>2]=Lt(c[d>>2]|0)|0;else c[c[e>>2]>>2]=1;c[f>>2]=ya((c[e>>2]|0)+4|0,0)|0;if(!(c[f>>2]|0)){g=c[f>>2]|0;l=b;return g|0}c[f>>2]=Ct(c[f>>2]|0)|0;g=c[f>>2]|0;l=b;return g|0}function Lt(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=c[d>>2];if((c[c[e>>2]>>2]|0)!=1)Fa(53472,53492,114,53505);else{l=b;return c[e>>2]|0}return 0}function Mt(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+8|0;e=b+4|0;f=b;c[d>>2]=a;c[e>>2]=Lt(c[d>>2]|0)|0;c[f>>2]=Vw((c[e>>2]|0)+4|0)|0;if(!(c[f>>2]|0)){g=c[f>>2]|0;l=b;return g|0}c[f>>2]=Ct(c[f>>2]|0)|0;g=c[f>>2]|0;l=b;return g|0}function Nt(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+8|0;e=b+4|0;f=b;c[d>>2]=a;c[e>>2]=Lt(c[d>>2]|0)|0;c[f>>2]=dx((c[e>>2]|0)+4|0)|0;if(!(c[f>>2]|0)){g=c[f>>2]|0;l=b;return g|0}c[f>>2]=Ct(c[f>>2]|0)|0;g=c[f>>2]|0;l=b;return g|0}function Ot(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=l;l=l+64|0;if((l|0)>=(m|0))$(64);d=b+52|0;e=b+48|0;f=b+44|0;g=b;c[d>>2]=a;c[e>>2]=Lt(c[d>>2]|0)|0;c[f>>2]=Ya((c[e>>2]|0)+4|0)|0;if(c[f>>2]|0){c[f>>2]=Ct(c[f>>2]|0)|0;h=c[f>>2]|0;l=b;return h|0}else{e=g;a=e+44|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(a|0));c[g>>2]=1;e=c[d>>2]|0;d=g;a=e+44|0;do{c[e>>2]=c[d>>2];e=e+4|0;d=d+4|0}while((e|0)<(a|0));h=c[f>>2]|0;l=b;return h|0}return 0}function Pt(){Qt();return 0}function Qt(){St()|0;return}function Rt(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=c[d>>2]|0;c[(xu()|0)>>2]=a;l=b;return}function St(){if(c[17808]|0)return 0;c[17808]=1;nb(3)|0;return 0}function Tt(){Ut(0)|0;c[17809]=0;c[17810]=0;return}function Ut(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+8|0;e=b+4|0;f=b;c[d>>2]=a;if(c[d>>2]|0){Vt(c[d>>2]|0);c[e>>2]=Wt(c[d>>2]|0)|0;Xt(c[d>>2]|0);g=c[e>>2]|0;h=(g|0)!=0;i=h?-1:0;l=b;return i|0}c[e>>2]=0;Yt();c[f>>2]=c[17811];while(1){if(!(c[f>>2]|0))break;if(c[(c[f>>2]|0)+4>>2]|0){Vt(c[(c[f>>2]|0)+4>>2]|0);d=Wt(c[(c[f>>2]|0)+4>>2]|0)|0;c[e>>2]=c[e>>2]|d;Xt(c[(c[f>>2]|0)+4>>2]|0)}c[f>>2]=c[c[f>>2]>>2]}Zt();g=c[e>>2]|0;h=(g|0)!=0;i=h?-1:0;l=b;return i|0}function Vt(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=b;c[e>>2]=a;if((d[(c[(c[e>>2]|0)+36>>2]|0)+1140>>0]|0)>>>5&1|0){l=b;return}Mt((c[(c[e>>2]|0)+36>>2]|0)+1040|0)|0;l=b;return}function Wt(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[d>>2]=a;a=c[d>>2]|0;if((c[c[d>>2]>>2]|0)>>>16&1|0){c[e>>2]=_t(a)|0;f=c[e>>2]|0;l=b;return f|0}else{$t(a);c[e>>2]=0;f=c[e>>2]|0;l=b;return f|0}return 0}function Xt(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=b;c[e>>2]=a;if((d[(c[(c[e>>2]|0)+36>>2]|0)+1140>>0]|0)>>>5&1|0){l=b;return}Nt((c[(c[e>>2]|0)+36>>2]|0)+1040|0)|0;l=b;return}function Yt(){Mt(13160)|0;return}function Zt(){Nt(13160)|0;return}function _t(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+20|0;f=d+16|0;g=d+12|0;h=d+8|0;i=d+4|0;j=d;c[e>>2]=b;c[f>>2]=c[(c[(c[e>>2]|0)+36>>2]|0)+1108>>2];if(!((c[c[e>>2]>>2]|0)>>>16&1))Fa(53563,53544,1654,53585);do if(c[(c[e>>2]|0)+16>>2]|0){if(!(c[f>>2]|0)){c[g>>2]=95;break}c[i>>2]=0;c[g>>2]=0;do{if(((c[(c[e>>2]|0)+16>>2]|0)-(c[i>>2]|0)|0)<=0)break;if(!((c[g>>2]|0)!=0^1))break;c[j>>2]=ub[c[f>>2]&63](c[(c[(c[e>>2]|0)+36>>2]|0)+1084>>2]|0,(c[(c[e>>2]|0)+4>>2]|0)+(c[i>>2]|0)|0,(c[(c[e>>2]|0)+16>>2]|0)-(c[i>>2]|0)|0)|0;if((c[j>>2]|0)==-1){c[h>>2]=0;c[g>>2]=-1}else c[h>>2]=c[j>>2];c[i>>2]=(c[i>>2]|0)+(c[h>>2]|0)}while(!(c[g>>2]|0));b=(c[e>>2]|0)+20|0;c[b>>2]=(c[b>>2]|0)+(c[i>>2]|0);if((c[(c[e>>2]|0)+16>>2]|0)==(c[i>>2]|0)){b=(c[(c[e>>2]|0)+36>>2]|0)+1100|0;c[b>>2]=(c[b>>2]|0)+(c[(c[e>>2]|0)+16>>2]|0);c[(c[e>>2]|0)+16>>2]=0;c[(c[e>>2]|0)+20>>2]=0;ub[c[f>>2]&63](c[(c[(c[e>>2]|0)+36>>2]|0)+1084>>2]|0,0,0)|0}}else c[g>>2]=0;while(0);if(!(c[g>>2]|0)){k=c[g>>2]|0;l=d;return k|0}f=(c[(c[e>>2]|0)+36>>2]|0)+1136|0;a[f>>0]=a[f>>0]&-2|1;k=c[g>>2]|0;l=d;return k|0}function $t(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;if((c[c[d>>2]>>2]|0)>>>16&1|0)Fa(53521,53544,1722,53554);else{c[(c[d>>2]|0)+12>>2]=0;c[(c[d>>2]|0)+16>>2]=0;c[(c[d>>2]|0)+32>>2]=0;l=b;return}}function au(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+12|0;e=b+8|0;f=b+4|0;g=b;c[e>>2]=a;c[f>>2]=bu(c[e>>2]|0)|0;do if(c[f>>2]&32768|0){c[g>>2]=Dt(c[f>>2]|0)|0;if(!(c[g>>2]|0)){c[f>>2]=16382;break}c[d>>2]=Nu(c[g>>2]|0)|0;h=c[d>>2]|0;l=b;return h|0}while(0);c[d>>2]=53594+(c[13204+((cu(c[f>>2]|0)|0)<<2)>>2]|0);h=c[d>>2]|0;l=b;return h|0}function bu(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;l=b;return c[d>>2]&65535|0}function cu(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=c[d>>2]|0;if((c[d>>2]|0)>=0&(c[d>>2]|0)<=213){e=a-0|0;l=b;return e|0}f=c[d>>2]|0;if((a|0)>=222&(c[d>>2]|0)<=254){e=f-8|0;l=b;return e|0}a=c[d>>2]|0;if((f|0)>=257&(c[d>>2]|0)<=271){e=a-10|0;l=b;return e|0}f=c[d>>2]|0;if((a|0)>=273&(c[d>>2]|0)<=281){e=f-11|0;l=b;return e|0}a=c[d>>2]|0;if((f|0)>=721&(c[d>>2]|0)<=729){e=a-450|0;l=b;return e|0}f=c[d>>2]|0;if((a|0)>=750&(c[d>>2]|0)<=752){e=f-470|0;l=b;return e|0}a=c[d>>2]|0;if((f|0)>=754&(c[d>>2]|0)<=782){e=a-471|0;l=b;return e|0}f=c[d>>2]|0;if((a|0)>=784&(c[d>>2]|0)<=789){e=f-472|0;l=b;return e|0}a=c[d>>2]|0;if((f|0)>=800&(c[d>>2]|0)<=804){e=a-482|0;l=b;return e|0}f=c[d>>2]|0;if((a|0)>=815&(c[d>>2]|0)<=822){e=f-492|0;l=b;return e|0}a=c[d>>2]|0;if((f|0)>=832&(c[d>>2]|0)<=839){e=a-501|0;l=b;return e|0}f=c[d>>2]|0;if((a|0)>=844&(c[d>>2]|0)<=844){e=f-505|0;l=b;return e|0}a=c[d>>2]|0;if((f|0)>=848&(c[d>>2]|0)<=848){e=a-508|0;l=b;return e|0}f=c[d>>2]|0;if((a|0)>=881&(c[d>>2]|0)<=891){e=f-540|0;l=b;return e|0}a=c[d>>2]|0;if((f|0)>=1024&(c[d>>2]|0)<=1039){e=a-672|0;l=b;return e|0}else{e=(a|0)>=16381&(c[d>>2]|0)<=16383?(c[d>>2]|0)-16013|0:371;l=b;return e|0}return 0}function du(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[e>>2]=a;do if(c[e>>2]&32768|0){c[e>>2]=c[e>>2]&-32769;if((c[e>>2]|0)>>>0<141){c[d>>2]=c[14692+(c[e>>2]<<2)>>2];break}else{c[d>>2]=0;break}}else c[d>>2]=0;while(0);l=b;return c[d>>2]|0}function eu(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+8|0;e=b+4|0;f=b;c[e>>2]=a;if(!(c[e>>2]|0)){c[d>>2]=0;g=c[d>>2]|0;l=b;return g|0}a=c[e>>2]|0;do if(!((c[e>>2]|0)>=1&(c[e>>2]|0)<=11)){h=c[e>>2]|0;if((a|0)>=11&(c[e>>2]|0)<=35){i=h-0|0;break}j=c[e>>2]|0;if((h|0)>=35&(c[e>>2]|0)<=40){i=j+1|0;break}h=c[e>>2]|0;if((j|0)>=42&(c[e>>2]|0)<=57){i=h-0|0;break}j=c[e>>2]|0;if((h|0)>=59&(c[e>>2]|0)<=95){i=j-1|0;break}else{i=(j|0)>=95&(c[e>>2]|0)<=125?(c[e>>2]|0)-0|0:-1;break}}else i=a-1|0;while(0);c[f>>2]=i;if((c[f>>2]|0)<0){c[d>>2]=16382;g=c[d>>2]|0;l=b;return g|0}else{c[d>>2]=32768|c[15256+(c[f>>2]<<2)>>2];g=c[d>>2]|0;l=b;return g|0}return 0}function fu(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=a+8|0;d=a+4|0;e=a;c[d>>2]=c[(xu()|0)>>2];if(!(c[d>>2]|0)){c[b>>2]=16381;f=c[b>>2]|0;l=a;return f|0}g=c[d>>2]|0;do if(!((c[d>>2]|0)>=1&(c[d>>2]|0)<=11)){h=c[d>>2]|0;if((g|0)>=11&(c[d>>2]|0)<=35){i=h-0|0;break}j=c[d>>2]|0;if((h|0)>=35&(c[d>>2]|0)<=40){i=j+1|0;break}h=c[d>>2]|0;if((j|0)>=42&(c[d>>2]|0)<=57){i=h-0|0;break}j=c[d>>2]|0;if((h|0)>=59&(c[d>>2]|0)<=95){i=j-1|0;break}else{i=(j|0)>=95&(c[d>>2]|0)<=125?(c[d>>2]|0)-0|0:-1;break}}else i=g-1|0;while(0);c[e>>2]=i;if((c[e>>2]|0)<0){c[b>>2]=16382;f=c[b>>2]|0;l=a;return f|0}else{c[b>>2]=32768|c[15256+(c[e>>2]<<2)>>2];f=c[b>>2]|0;l=a;return f|0}return 0}function gu(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;d=c[g>>2]|0;b=Ad(c[d>>2]|0,c[d+4>>2]|0)|0;d=D;h=c[f>>2]|0;i=h;a[i>>0]=b;a[i+1>>0]=b>>8;a[i+2>>0]=b>>16;a[i+3>>0]=b>>24;b=h+4|0;a[b>>0]=d;a[b+1>>0]=d>>8;a[b+2>>0]=d>>16;a[b+3>>0]=d>>24;d=Iv(c[(c[g>>2]|0)+8>>2]|0)|0;b=(c[f>>2]|0)+8|0;a[b>>0]=d;a[b+1>>0]=d>>8;a[b+2>>0]=d>>16;a[b+3>>0]=d>>24;d=(c[f>>2]|0)+12|0;f=(c[g>>2]|0)+12|0;g=d+12|0;do{a[d>>0]=a[f>>0]|0;d=d+1|0;f=f+1|0}while((d|0)<(g|0));l=e;return}function hu(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f+4|0;h=f;c[g>>2]=b;c[h>>2]=e;e=c[h>>2]|0;b=e;i=e+4|0;e=Bd(d[b>>0]|d[b+1>>0]<<8|d[b+2>>0]<<16|d[b+3>>0]<<24,d[i>>0]|d[i+1>>0]<<8|d[i+2>>0]<<16|d[i+3>>0]<<24)|0;i=c[g>>2]|0;c[i>>2]=e;c[i+4>>2]=D;i=(c[h>>2]|0)+8|0;e=Mv(d[i>>0]|d[i+1>>0]<<8|d[i+2>>0]<<16|d[i+3>>0]<<24)|0;c[(c[g>>2]|0)+8>>2]=e;e=(c[g>>2]|0)+12|0;g=(c[h>>2]|0)+12|0;h=e+12|0;do{a[e>>0]=a[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));l=f;return}function iu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+12|0;f=d+8|0;g=d+4|0;h=d;c[f>>2]=a;c[g>>2]=b;c[h>>2]=hv(c[f>>2]|0)|0;if((c[h>>2]|0)>>>0>=12){c[e>>2]=-1;i=c[e>>2]|0;l=d;return i|0}else{b=c[g>>2]|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;_w((c[g>>2]|0)+12|0,c[f>>2]|0,c[h>>2]|0)|0;c[e>>2]=1;i=c[e>>2]|0;l=d;return i|0}return 0}function ju(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+8|0;f=d+4|0;g=d;c[f>>2]=a;c[g>>2]=b;do if(0!=(ku(c[f>>2]|0)|0)?0!=(ku(c[g>>2]|0)|0):0)if(!(sv((c[f>>2]|0)+12|0,(c[g>>2]|0)+12|0)|0)){c[e>>2]=1;break}else{c[e>>2]=0;break}else h=3;while(0);if((h|0)==3)c[e>>2]=-1;l=d;return c[e>>2]|0}function ku(b){b=b|0;var d=0,e=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d;c[e>>2]=b;l=d;return 0!=(a[(c[e>>2]|0)+12>>0]|0)|0}function lu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0;d=l;l=l+96|0;if((l|0)>=(m|0))$(96);e=d+64|0;f=d+56|0;g=d+48|0;h=d+92|0;i=d+88|0;j=d+84|0;k=d+24|0;n=d;o=d+80|0;p=d+76|0;q=d+72|0;c[i>>2]=a;c[j>>2]=b;if(1!=(ju(c[i>>2]|0,c[j>>2]|0)|0)){c[o>>2]=349;if((c[3940]|0)==-1)c[3940]=$b(1,0,61609,61618,c[o>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[3940]|0))_b();c[g>>2]=61609;c[g+4>>2]=349;cc(1,61747,g);_b()}g=c[i>>2]|0;c[k>>2]=c[g>>2];c[k+4>>2]=c[g+4>>2];c[k+8>>2]=c[g+8>>2];c[k+12>>2]=c[g+12>>2];c[k+16>>2]=c[g+16>>2];c[k+20>>2]=c[g+20>>2];g=c[j>>2]|0;c[n>>2]=c[g>>2];c[n+4>>2]=c[g+4>>2];c[n+8>>2]=c[g+8>>2];c[n+12>>2]=c[g+12>>2];c[n+16>>2]=c[g+16>>2];c[n+20>>2]=c[g+20>>2];if(-1==(mu(k)|0)){c[p>>2]=353;if((c[3941]|0)==-1)c[3941]=$b(1,0,61609,61618,c[p>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[3941]|0))_b();c[f>>2]=61609;c[f+4>>2]=353;cc(1,61747,f);_b()}if(-1==(mu(n)|0)){c[q>>2]=355;if((c[3942]|0)==-1)c[3942]=$b(1,0,61609,61618,c[q>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[3942]|0))_b();c[e>>2]=61609;c[e+4>>2]=355;cc(1,61747,e);_b()}e=k;q=n;if(!((c[e>>2]|0)==(c[q>>2]|0)?(c[e+4>>2]|0)==(c[q+4>>2]|0):0)){q=k;e=c[q+4>>2]|0;f=n;p=c[f+4>>2]|0;if(e>>>0<p>>>0|((e|0)==(p|0)?(c[q>>2]|0)>>>0<(c[f>>2]|0)>>>0:0)){c[h>>2]=-1;r=c[h>>2]|0;l=d;return r|0}else{c[h>>2]=1;r=c[h>>2]|0;l=d;return r|0}}if((c[k+8>>2]|0)>>>0<(c[n+8>>2]|0)>>>0){c[h>>2]=-1;r=c[h>>2]|0;l=d;return r|0}if((c[k+8>>2]|0)>>>0>(c[n+8>>2]|0)>>>0){c[h>>2]=1;r=c[h>>2]|0;l=d;return r|0}else{c[h>>2]=0;r=c[h>>2]|0;l=d;return r|0}return 0}function mu(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+8|0;e=b+4|0;f=b;c[e>>2]=a;if(1!=(ku(c[e>>2]|0)|0)){c[d>>2]=-1;g=c[d>>2]|0;l=b;return g|0}c[f>>2]=0;while(1){a=c[e>>2]|0;if((c[a>>2]|0)!=-1?1:(c[a+4>>2]|0)!=-1)h=(c[(c[e>>2]|0)+8>>2]|0)>>>0>=1e8;else h=0;a=(c[e>>2]|0)+8|0;i=c[a>>2]|0;if(!h)break;c[a>>2]=i-1e8;a=c[e>>2]|0;j=a;k=Ww(c[j>>2]|0,c[j+4>>2]|0,1,0)|0;j=a;c[j>>2]=k;c[j+4>>2]=D;c[f>>2]=1}if(i>>>0>=1e8){nu(c[e>>2]|0);c[d>>2]=-1;g=c[d>>2]|0;l=b;return g|0}else{c[d>>2]=c[f>>2];g=c[d>>2]|0;l=b;return g|0}return 0}function nu(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=c[d>>2]|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;l=b;return}function ou(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;e=l;l=l+112|0;if((l|0)>=(m|0))$(112);f=e+64|0;g=e+56|0;h=e+48|0;i=e+96|0;j=e+92|0;k=e+88|0;n=e+84|0;o=e+24|0;p=e;q=e+80|0;r=e+76|0;s=e+72|0;c[j>>2]=a;c[k>>2]=b;c[n>>2]=d;if(1!=(ju(c[k>>2]|0,c[n>>2]|0)|0)){nu(c[j>>2]|0);c[i>>2]=-1;t=c[i>>2]|0;l=e;return t|0}d=c[k>>2]|0;c[o>>2]=c[d>>2];c[o+4>>2]=c[d+4>>2];c[o+8>>2]=c[d+8>>2];c[o+12>>2]=c[d+12>>2];c[o+16>>2]=c[d+16>>2];c[o+20>>2]=c[d+20>>2];d=c[n>>2]|0;c[p>>2]=c[d>>2];c[p+4>>2]=c[d+4>>2];c[p+8>>2]=c[d+8>>2];c[p+12>>2]=c[d+12>>2];c[p+16>>2]=c[d+16>>2];c[p+20>>2]=c[d+20>>2];if(-1!=(mu(o)|0)?-1!=(mu(p)|0):0){do if((c[o+8>>2]|0)>>>0<(c[p+8>>2]|0)>>>0){d=o;if(!(0==(c[d>>2]|0)?0==(c[d+4>>2]|0):0)){d=o+8|0;c[d>>2]=(c[d>>2]|0)+1e8;d=o;n=Ww(c[d>>2]|0,c[d+4>>2]|0,-1,-1)|0;d=o;c[d>>2]=n;c[d+4>>2]=D;break}nu(c[j>>2]|0);c[i>>2]=-1;t=c[i>>2]|0;l=e;return t|0}while(0);d=o;n=c[d+4>>2]|0;k=p;b=c[k+4>>2]|0;if(n>>>0<b>>>0|((n|0)==(b|0)?(c[d>>2]|0)>>>0<(c[k>>2]|0)>>>0:0)){nu(c[j>>2]|0);c[i>>2]=-1;t=c[i>>2]|0;l=e;return t|0}if(1!=(iu(o+12|0,c[j>>2]|0)|0)){c[q>>2]=421;if((c[3943]|0)==-1)c[3943]=$b(1,0,61609,61635,c[q>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[3943]|0))_b();c[h>>2]=61609;c[h+4>>2]=421;cc(1,61747,h);_b()}if((c[o+8>>2]|0)>>>0<(c[p+8>>2]|0)>>>0){c[r>>2]=422;if((c[3944]|0)==-1)c[3944]=$b(1,0,61609,61635,c[r>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[3944]|0))_b();c[g>>2]=61609;c[g+4>>2]=422;cc(1,61747,g);_b()}c[(c[j>>2]|0)+8>>2]=(c[o+8>>2]|0)-(c[p+8>>2]|0);g=o;r=c[g+4>>2]|0;h=p;q=c[h+4>>2]|0;if(r>>>0>q>>>0|((r|0)==(q|0)?(c[g>>2]|0)>>>0>=(c[h>>2]|0)>>>0:0)){h=o;o=p;p=Tw(c[h>>2]|0,c[h+4>>2]|0,c[o>>2]|0,c[o+4>>2]|0)|0;o=c[j>>2]|0;c[o>>2]=p;c[o+4>>2]=D;if(0==(c[(c[j>>2]|0)+8>>2]|0)?(o=c[j>>2]|0,0==(c[o>>2]|0)?0==(c[o+4>>2]|0):0):0){c[i>>2]=0;t=c[i>>2]|0;l=e;return t|0}c[i>>2]=1;t=c[i>>2]|0;l=e;return t|0}c[s>>2]=424;if((c[3945]|0)==-1)c[3945]=$b(1,0,61609,61635,c[s>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[3945]|0))_b();c[f>>2]=61609;c[f+4>>2]=424;cc(1,61747,f);_b()}nu(c[j>>2]|0);c[i>>2]=-1;t=c[i>>2]|0;l=e;return t|0}function pu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;e=l;l=l+112|0;if((l|0)>=(m|0))$(112);f=e+72|0;g=e+96|0;h=e+92|0;i=e+88|0;j=e+84|0;k=e+48|0;n=e+24|0;o=e;p=e+80|0;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;if(1!=(ju(c[i>>2]|0,c[j>>2]|0)|0)){nu(c[h>>2]|0);c[g>>2]=-1;q=c[g>>2]|0;l=e;return q|0}d=c[i>>2]|0;c[k>>2]=c[d>>2];c[k+4>>2]=c[d+4>>2];c[k+8>>2]=c[d+8>>2];c[k+12>>2]=c[d+12>>2];c[k+16>>2]=c[d+16>>2];c[k+20>>2]=c[d+20>>2];d=c[j>>2]|0;c[n>>2]=c[d>>2];c[n+4>>2]=c[d+4>>2];c[n+8>>2]=c[d+8>>2];c[n+12>>2]=c[d+12>>2];c[n+16>>2]=c[d+16>>2];c[n+20>>2]=c[d+20>>2];if(-1!=(mu(k)|0)?-1!=(mu(n)|0):0){if(1==(iu((c[i>>2]|0)+12|0,o)|0)){i=k;d=n;j=Ww(c[i>>2]|0,c[i+4>>2]|0,c[d>>2]|0,c[d+4>>2]|0)|0;d=o;c[d>>2]=j;c[d+4>>2]=D;d=o;j=c[d+4>>2]|0;i=k;b=c[i+4>>2]|0;if(j>>>0<b>>>0|((j|0)==(b|0)?(c[d>>2]|0)>>>0<(c[i>>2]|0)>>>0:0)){nu(c[h>>2]|0);c[g>>2]=-1;q=c[g>>2]|0;l=e;return q|0}c[o+8>>2]=(c[k+8>>2]|0)+(c[n+8>>2]|0);n=-1==(mu(o)|0);k=c[h>>2]|0;if(n){nu(k);c[g>>2]=-1;q=c[g>>2]|0;l=e;return q|0}else{c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];c[k+12>>2]=c[o+12>>2];c[k+16>>2]=c[o+16>>2];c[k+20>>2]=c[o+20>>2];c[g>>2]=1;q=c[g>>2]|0;l=e;return q|0}}c[p>>2]=468;if((c[3946]|0)==-1)c[3946]=$b(1,0,61609,61657,c[p>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[3946]|0))_b();c[f>>2]=61609;c[f+4>>2]=468;cc(1,61747,f);_b()}nu(c[h>>2]|0);c[g>>2]=-1;q=c[g>>2]|0;l=e;return q|0}function qu(){var a=0,b=0,d=0;a=l;l=l+32|0;if((l|0)>=(m|0))$(32);b=a+16|0;d=a+8|0;He(6,0);if(Gd(61674)|0){c[d>>2]=0;Hd(37,d)|0;c[b>>2]=0;Hd(38,b)|0;l=a;return}else{Fv(c[3977]|0,61680,a)|0;Aa()}}function ru(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e;g=e+4|0;c[e+12>>2]=a;c[e+8>>2]=b;c[g>>2]=d;d=c[3977]|0;c[f>>2]=c[g>>2];Fv(d,61708,f)|0;Aa()}function su(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;g=l;l=l+48|0;if((l|0)>=(m|0))$(48);h=g+16|0;i=g;j=g+44|0;k=g+40|0;n=g+36|0;o=g+32|0;p=g+28|0;q=g+24|0;c[j>>2]=b;c[k>>2]=e;c[n>>2]=f;c[o>>2]=Iv(c[k>>2]|0)|0;k=c[n>>2]|0;f=c[j>>2]|0;c[i>>2]=61775;c[i+4>>2]=21;c[i+8>>2]=0;c[i+12>>2]=0;if(1==(Mc(k,64,o,4,f,64,i)|0)){c[p>>2]=c[n>>2];n=c[p>>2]|0;a[n>>0]=(d[n>>0]|0)&127;n=c[p>>2]|0;a[n>>0]=d[n>>0]|0|64;n=(c[p>>2]|0)+31|0;a[n>>0]=(d[n>>0]|0)&248;l=g;return}c[q>>2]=197;if((c[3947]|0)==-1)c[3947]=$b(1,0,61738,61797,c[q>>2]|0)|0;if((ac()|0)>0){bc(-1,0);_b()}if(!(c[3947]|0))_b();c[h>>2]=61738;c[h+4>>2]=197;cc(1,61747,h);_b()}function tu(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=c[a+60>>2];a=wu(hb(6,d|0)|0)|0;l=b;return a|0}function uu(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=l;l=l+80|0;if((l|0)>=(m|0))$(80);g=f;c[b+36>>2]=25;if((c[b>>2]&64|0)==0?(c[g>>2]=c[b+60>>2],c[g+4>>2]=21505,c[g+8>>2]=f+12,bb(54,g|0)|0):0)a[b+75>>0]=-1;g=yu(b,d,e)|0;l=f;return g|0}function vu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e;g=e+20|0;c[f>>2]=c[a+60>>2];c[f+4>>2]=0;c[f+8>>2]=b;c[f+12>>2]=g;c[f+16>>2]=d;if((wu(ob(140,f|0)|0)|0)<0){c[g>>2]=-1;h=-1}else h=c[g>>2]|0;l=e;return h|0}function wu(a){a=a|0;var b=0;if(a>>>0>4294963200){c[(xu()|0)>>2]=0-a;b=-1}else b=a;return b|0}function xu(){var a=0;if(!(c[17812]|0))a=71292;else a=c[(kx()|0)+64>>2]|0;return a|0}function yu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;e=l;l=l+48|0;if((l|0)>=(m|0))$(48);f=e+16|0;g=e;h=e+32|0;i=a+28|0;j=c[i>>2]|0;c[h>>2]=j;k=a+20|0;n=(c[k>>2]|0)-j|0;c[h+4>>2]=n;c[h+8>>2]=b;c[h+12>>2]=d;b=a+60|0;j=a+44|0;o=2;p=n+d|0;n=h;while(1){if(!(c[17812]|0)){c[f>>2]=c[b>>2];c[f+4>>2]=n;c[f+8>>2]=o;q=wu(sb(146,f|0)|0)|0}else{Ca(6,a|0);c[g>>2]=c[b>>2];c[g+4>>2]=n;c[g+8>>2]=o;h=wu(sb(146,g|0)|0)|0;wa(0);q=h}if((p|0)==(q|0)){r=6;break}if((q|0)<0){r=8;break}h=p-q|0;s=c[n+4>>2]|0;if(q>>>0<=s>>>0)if((o|0)==2){c[i>>2]=(c[i>>2]|0)+q;t=q;u=2;v=n;w=s}else{t=q;u=o;v=n;w=s}else{x=c[j>>2]|0;c[i>>2]=x;c[k>>2]=x;t=q-s|0;u=o+-1|0;v=n+8|0;w=c[n+12>>2]|0}c[v>>2]=(c[v>>2]|0)+t;c[v+4>>2]=w-t;o=u;p=h;n=v}if((r|0)==6){v=c[j>>2]|0;c[a+16>>2]=v+(c[a+48>>2]|0);j=v;c[i>>2]=j;c[k>>2]=j;y=d}else if((r|0)==8){c[a+16>>2]=0;c[i>>2]=0;c[k>>2]=0;c[a>>2]=c[a>>2]|32;if((o|0)==2)y=0;else y=d-(c[n+4>>2]|0)|0}l=e;return y|0}function zu(a){a=a|0;if(!(c[a+68>>2]|0))Au(a);return}function Au(a){a=a|0;return}function Bu(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;f=l;l=l+48|0;if((l|0)>=(m|0))$(48);g=f+16|0;h=f;i=f+32|0;c[i>>2]=d;j=i+4|0;k=b+48|0;n=c[k>>2]|0;c[j>>2]=e-((n|0)!=0&1);o=b+44|0;c[i+8>>2]=c[o>>2];c[i+12>>2]=n;if(!(c[17812]|0)){c[g>>2]=c[b+60>>2];c[g+4>>2]=i;c[g+8>>2]=2;p=wu(rb(145,g|0)|0)|0}else{Ca(7,b|0);c[h>>2]=c[b+60>>2];c[h+4>>2]=i;c[h+8>>2]=2;i=wu(rb(145,h|0)|0)|0;wa(0);p=i}if((p|0)>=1){i=c[j>>2]|0;if(p>>>0>i>>>0){j=c[o>>2]|0;o=b+4|0;c[o>>2]=j;h=j;c[b+8>>2]=h+(p-i);if(!(c[k>>2]|0))q=e;else{c[o>>2]=h+1;a[d+(e+-1)>>0]=a[h>>0]|0;q=e}}else q=p}else{c[b>>2]=c[b>>2]|p&48^16;c[b+8>>2]=0;c[b+4>>2]=0;q=p}l=f;return q|0}function Cu(a){a=a|0;if(!(c[a+68>>2]|0))Au(a);return}function Du(a){a=a|0;return Eu(a)|0}function Eu(a){a=a|0;return ((a|0)==32|(a|0)==9)&1|0}function Fu(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=a[b>>0]|0;e=a[c>>0]|0;if(d<<24>>24==0?1:d<<24>>24!=e<<24>>24){f=e;g=d}else{d=c;c=b;do{c=c+1|0;d=d+1|0;b=a[c>>0]|0;e=a[d>>0]|0}while(!(b<<24>>24==0?1:b<<24>>24!=e<<24>>24));f=e;g=b}return (g&255)-(f&255)|0}function Gu(a){a=a|0;var b=0;b=(Hu(a)|0)==0;return (b?a:a|32)|0}function Hu(a){a=a|0;return (a+-65|0)>>>0<26|0}function Iu(a){a=a|0;return Ku(a,0)|0}function Ju(a){a=a|0;return Ku(a,1)|0}function Ku(c,f){c=c|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;g=(f<<1)+-1|0;h=f+-1|0;a:do if((c+-43008|0)>>>0<22272|((c+-11776|0)>>>0<30784|((c+-1536|0)>>>0<2560|(Lu(c)|0)==0)))i=c;else{j=(f|0)!=0;if(j&(c+-4256|0)>>>0<46){if((c|0)>4293)switch(c|0){case 4295:case 4301:break;default:{i=c;break a}}i=c+7264|0;break}if((c+-11520|0)>>>0<38&(j^1)){if((c|0)>11557)switch(c|0){case 11559:case 11565:break;default:{i=c;break a}}i=c+-7264|0;break}else k=0;do{l=a[18910+(k<<2)+2>>0]|0;m=l<<24>>24;n=c-(e[18910+(k<<2)>>1]|0)|0;if((n-(m&h)|0)>>>0<(d[18910+(k<<2)+3>>0]|0)>>>0){o=13;break}k=k+1|0}while((k|0)!=61);if((o|0)==13)if(l<<24>>24==1){i=f+c-(n&1)|0;break}else{i=(S(m,g)|0)+c|0;break}j=1-f|0;p=b[18418+(j<<1)>>1]|0;b:do if(p<<16>>16){q=0;r=p;while(1){if((r&65535|0)==(c|0))break;s=q+1|0;r=b[18418+(s<<2)+(j<<1)>>1]|0;if(!(r<<16>>16))break b;else q=s}i=e[18418+(q<<2)+(f<<1)>>1]|0;break a}while(0);return ((c+-66600+(f*40|0)|0)>>>0<40?c+-40+(f*80|0)|0:c)|0}while(0);return i|0}function Lu(a){a=a|0;var b=0;if(a>>>0<131072)b=(d[61820+((d[61820+(a>>>8)>>0]|0)<<5|a>>>3&31)>>0]|0)>>>(a&7)&1;else b=a>>>0<196606&1;return b|0}function Mu(a){a=a|0;return (a+-97|0)>>>0<26|0}function Nu(b){b=b|0;var c=0,e=0,f=0,g=0,h=0,i=0;c=0;while(1){if((d[64796+c>>0]|0)==(b|0)){e=2;break}f=c+1|0;if((f|0)==87){g=64884;h=87;e=5;break}else c=f}if((e|0)==2)if(!c)i=64884;else{g=64884;h=c;e=5}if((e|0)==5)while(1){e=0;c=g;do{b=c;c=c+1|0}while((a[b>>0]|0)!=0);h=h+-1|0;if(!h){i=c;break}else{g=c;e=5}}return i|0}function Ou(a){a=a|0;var b=0;if(!a)b=0;else b=(Pu(16228,a)|0)!=0;return b&1|0}function Pu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;if(!b)d=a+((Qu(a)|0)<<2)|0;else{e=a;while(1){f=c[e>>2]|0;if((f|0)==0|(f|0)==(b|0))break;else e=e+4|0}d=f|0?e:0}return d|0}function Qu(a){a=a|0;var b=0;b=a;while(1)if(!(c[b>>2]|0))break;else b=b+4|0;return b-a>>2|0}function Ru(a){a=a|0;return ((a+-48|0)>>>0<10|((a|32)+-97|0)>>>0<6)&1|0}function Su(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f;c[g>>2]=e;e=Tu(a,b,d,g)|0;l=f;return e|0}function Tu(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0;g=l;l=l+128|0;if((l|0)>=(m|0))$(128);h=g+112|0;i=g;j=i;k=16316;n=j+112|0;do{c[j>>2]=c[k>>2];j=j+4|0;k=k+4|0}while((j|0)<(n|0));if((d+-1|0)>>>0>2147483646)if(!d){o=h;p=1;q=4}else{c[(xu()|0)>>2]=75;r=-1}else{o=b;p=d;q=4}if((q|0)==4){q=-2-o|0;d=p>>>0>q>>>0?q:p;c[i+48>>2]=d;p=i+20|0;c[p>>2]=o;c[i+44>>2]=o;q=o+d|0;o=i+16|0;c[o>>2]=q;c[i+28>>2]=q;q=Uu(i,e,f)|0;if(!d)r=q;else{d=c[p>>2]|0;a[d+(((d|0)==(c[o>>2]|0))<<31>>31)>>0]=0;r=q}}l=g;return r|0}function Uu(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;f=l;l=l+224|0;if((l|0)>=(m|0))$(224);g=f+120|0;h=f+80|0;i=f;j=f+136|0;k=h;n=k+40|0;do{c[k>>2]=0;k=k+4|0}while((k|0)<(n|0));c[g>>2]=c[e>>2];if((Vu(0,d,g,i,h)|0)<0)o=-1;else{if((c[b+76>>2]|0)>-1)p=Wu(b)|0;else p=0;e=c[b>>2]|0;k=e&32;if((a[b+74>>0]|0)<1)c[b>>2]=e&-33;e=b+48|0;if(!(c[e>>2]|0)){n=b+44|0;q=c[n>>2]|0;c[n>>2]=j;r=b+28|0;c[r>>2]=j;s=b+20|0;c[s>>2]=j;c[e>>2]=80;t=b+16|0;c[t>>2]=j+80;j=Vu(b,d,g,i,h)|0;if(!q)u=j;else{ub[c[b+36>>2]&63](b,0,0)|0;v=(c[s>>2]|0)==0?-1:j;c[n>>2]=q;c[e>>2]=0;c[t>>2]=0;c[r>>2]=0;c[s>>2]=0;u=v}}else u=Vu(b,d,g,i,h)|0;h=c[b>>2]|0;c[b>>2]=h|k;if(p|0)Au(b);o=(h&32|0)==0?u:-1}l=f;return o|0}function Vu(e,f,g,i,k){e=e|0;f=f|0;g=g|0;i=i|0;k=k|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0.0,cb=0.0,db=0,eb=0,fb=0,gb=0,hb=0.0,ib=0,jb=0.0,kb=0,lb=0,mb=0,nb=0.0,ob=0,pb=0,qb=0,rb=0,sb=0.0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0.0,Rb=0.0,Sb=0.0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0,$b=0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0,gc=0,hc=0,ic=0,jc=0,kc=0,lc=0,mc=0,nc=0,oc=0,pc=0,qc=0,rc=0,sc=0,tc=0,uc=0,vc=0,wc=0,xc=0;n=l;l=l+624|0;if((l|0)>=(m|0))$(624);o=n+24|0;p=n+16|0;q=n+588|0;r=n+576|0;s=n;t=n+536|0;u=n+8|0;v=n+528|0;w=(e|0)!=0;x=t+40|0;y=x;z=t+39|0;t=u+4|0;A=q;B=0-A|0;C=r+12|0;E=r+11|0;r=C;F=r-A|0;G=-2-A|0;H=r+2|0;I=o+288|0;J=q+9|0;K=J;L=q+8|0;M=0;N=0;O=0;P=f;a:while(1){do if((N|0)>-1)if((M|0)>(2147483647-N|0)){c[(xu()|0)>>2]=75;Q=-1;break}else{Q=M+N|0;break}else Q=N;while(0);f=a[P>>0]|0;if(!(f<<24>>24)){R=243;break}else{T=P;U=f}b:while(1){switch(U<<24>>24){case 37:{V=T;W=T;R=9;break b;break}case 0:{X=T;Y=T;break b;break}default:{}}f=T+1|0;T=f;U=a[f>>0]|0}c:do if((R|0)==9)while(1){R=0;if((a[W+1>>0]|0)!=37){X=V;Y=W;break c}f=V+1|0;Z=W+2|0;if((a[Z>>0]|0)==37){V=f;W=Z;R=9}else{X=f;Y=Z;break}}while(0);Z=X-P|0;if(w?(c[e>>2]&32|0)==0:0)Xu(P,Z,e)|0;if(Z|0){M=Z;N=Q;P=Y;continue}Z=Y+1|0;f=a[Z>>0]|0;_=(f<<24>>24)+-48|0;if(_>>>0<10){aa=(a[Y+2>>0]|0)==36;ba=aa?Y+3|0:Z;ca=aa?_:-1;da=aa?1:O;ea=a[ba>>0]|0;fa=ba}else{ca=-1;da=O;ea=f;fa=Z}Z=(ea<<24>>24)+-32|0;d:do if(Z>>>0<32){f=0;ba=Z;aa=ea;_=fa;while(1){if(!(1<<ba&75913)){ga=f;ha=aa;ia=_;break d}ja=1<<(aa<<24>>24)+-32|f;ka=_+1|0;la=a[ka>>0]|0;ba=(la<<24>>24)+-32|0;if(ba>>>0>=32){ga=ja;ha=la;ia=ka;break}else{f=ja;aa=la;_=ka}}}else{ga=0;ha=ea;ia=fa}while(0);do if(ha<<24>>24!=42){Z=(ha<<24>>24)+-48|0;if(Z>>>0<10){_=0;aa=ia;f=Z;do{_=(_*10|0)+f|0;aa=aa+1|0;ma=a[aa>>0]|0;f=(ma<<24>>24)+-48|0}while(f>>>0<10);if((_|0)<0){na=-1;break a}else{oa=_;pa=ga;qa=da;ra=aa;sa=ma}}else{oa=0;pa=ga;qa=da;ra=ia;sa=ha}}else{f=ia+1|0;Z=a[f>>0]|0;ba=(Z<<24>>24)+-48|0;if(ba>>>0<10?(a[ia+2>>0]|0)==36:0){c[k+(ba<<2)>>2]=10;ta=c[i+((a[f>>0]|0)+-48<<3)>>2]|0;ua=1;va=ia+3|0}else{if(da|0){na=-1;break a}if(!w){oa=0;pa=ga;qa=0;ra=f;sa=Z;break}Z=(c[g>>2]|0)+(4-1)&~(4-1);ba=c[Z>>2]|0;c[g>>2]=Z+4;ta=ba;ua=0;va=f}f=(ta|0)<0;oa=f?0-ta|0:ta;pa=f?ga|8192:ga;qa=ua;ra=va;sa=a[va>>0]|0}while(0);e:do if(sa<<24>>24==46){f=ra+1|0;ba=a[f>>0]|0;if(ba<<24>>24!=42){Z=(ba<<24>>24)+-48|0;if(Z>>>0<10){wa=0;xa=f;ya=Z}else{za=0;Aa=f;break}while(1){f=(wa*10|0)+ya|0;Z=xa+1|0;ya=(a[Z>>0]|0)+-48|0;if(ya>>>0>=10){za=f;Aa=Z;break e}else{wa=f;xa=Z}}}aa=ra+2|0;_=(a[aa>>0]|0)+-48|0;if(_>>>0<10?(a[ra+3>>0]|0)==36:0){c[k+(_<<2)>>2]=10;za=c[i+((a[aa>>0]|0)+-48<<3)>>2]|0;Aa=ra+4|0;break}if(qa|0){na=-1;break a}if(w){_=(c[g>>2]|0)+(4-1)&~(4-1);Z=c[_>>2]|0;c[g>>2]=_+4;za=Z;Aa=aa}else{za=0;Aa=aa}}else{za=-1;Aa=ra}while(0);aa=0;Z=Aa;while(1){_=(a[Z>>0]|0)+-65|0;if(_>>>0>57){na=-1;break a}Ba=Z+1|0;Ca=a[66688+(aa*58|0)+_>>0]|0;Da=Ca&255;if((Da+-1|0)>>>0<8){aa=Da;Z=Ba}else break}if(!(Ca<<24>>24)){na=-1;break}_=(ca|0)>-1;do if(Ca<<24>>24==19)if(_){na=-1;break a}else R=51;else{if(_){c[k+(ca<<2)>>2]=Da;f=i+(ca<<3)|0;ba=c[f+4>>2]|0;ka=s;c[ka>>2]=c[f>>2];c[ka+4>>2]=ba;R=51;break}if(!w){na=0;break a}Yu(s,Da,g)}while(0);if((R|0)==51?(R=0,!w):0){M=0;N=Q;O=qa;P=Ba;continue}_=a[Z>>0]|0;ba=(aa|0)!=0&(_&15|0)==3?_&-33:_;_=pa&-65537;ka=(pa&8192|0)==0?pa:_;f:do switch(ba|0){case 110:{switch((aa&255)<<24>>24){case 0:{c[c[s>>2]>>2]=Q;M=0;N=Q;O=qa;P=Ba;continue a;break}case 1:{c[c[s>>2]>>2]=Q;M=0;N=Q;O=qa;P=Ba;continue a;break}case 2:{f=c[s>>2]|0;c[f>>2]=Q;c[f+4>>2]=((Q|0)<0)<<31>>31;M=0;N=Q;O=qa;P=Ba;continue a;break}case 3:{b[c[s>>2]>>1]=Q;M=0;N=Q;O=qa;P=Ba;continue a;break}case 4:{a[c[s>>2]>>0]=Q;M=0;N=Q;O=qa;P=Ba;continue a;break}case 6:{c[c[s>>2]>>2]=Q;M=0;N=Q;O=qa;P=Ba;continue a;break}case 7:{f=c[s>>2]|0;c[f>>2]=Q;c[f+4>>2]=((Q|0)<0)<<31>>31;M=0;N=Q;O=qa;P=Ba;continue a;break}default:{M=0;N=Q;O=qa;P=Ba;continue a}}break}case 112:{Ea=120;Fa=za>>>0>8?za:8;Ga=ka|8;R=63;break}case 88:case 120:{Ea=ba;Fa=za;Ga=ka;R=63;break}case 111:{f=s;la=c[f>>2]|0;ja=c[f+4>>2]|0;if((la|0)==0&(ja|0)==0)Ha=x;else{f=x;Ia=la;la=ja;while(1){ja=f+-1|0;a[ja>>0]=Ia&7|48;Ia=cx(Ia|0,la|0,3)|0;la=D;if((Ia|0)==0&(la|0)==0){Ha=ja;break}else f=ja}}if(!(ka&8)){Ja=Ha;Ka=0;La=67168;Ma=za;Na=ka;R=76}else{f=y-Ha|0;Ja=Ha;Ka=0;La=67168;Ma=(za|0)>(f|0)?za:f+1|0;Na=ka;R=76}break}case 105:case 100:{f=s;la=c[f>>2]|0;Ia=c[f+4>>2]|0;if((Ia|0)<0){f=Tw(0,0,la|0,Ia|0)|0;ja=D;Oa=s;c[Oa>>2]=f;c[Oa+4>>2]=ja;Pa=1;Qa=67168;Ra=f;Sa=ja;R=75;break f}if(!(ka&2048)){ja=ka&1;Pa=ja;Qa=(ja|0)==0?67168:67170;Ra=la;Sa=Ia;R=75}else{Pa=1;Qa=67169;Ra=la;Sa=Ia;R=75}break}case 117:{Ia=s;Pa=0;Qa=67168;Ra=c[Ia>>2]|0;Sa=c[Ia+4>>2]|0;R=75;break}case 99:{a[z>>0]=c[s>>2];Ta=z;Ua=0;Va=67168;Wa=x;Xa=1;Ya=_;break}case 109:{Za=Nu(c[(xu()|0)>>2]|0)|0;R=81;break}case 115:{Ia=c[s>>2]|0;Za=Ia|0?Ia:67178;R=81;break}case 67:{c[u>>2]=c[s>>2];c[t>>2]=0;c[s>>2]=u;_a=-1;$a=u;R=85;break}case 83:{Ia=c[s>>2]|0;if(!za){$u(e,32,oa,0,ka);ab=0;R=96}else{_a=za;$a=Ia;R=85}break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{bb=+h[s>>3];c[p>>2]=0;h[j>>3]=bb;if((c[j+4>>2]|0)>=0){Ia=ka&1;if(!(ka&2048)){cb=bb;db=Ia;eb=(Ia|0)==0?67186:67191}else{cb=bb;db=1;eb=67188}}else{cb=-bb;db=1;eb=67185}h[j>>3]=cb;Ia=c[j+4>>2]&2146435072;do if(Ia>>>0<2146435072|(Ia|0)==2146435072&0<0){bb=+bv(cb,p)*2.0;la=bb!=0.0;if(la)c[p>>2]=(c[p>>2]|0)+-1;ja=ba|32;if((ja|0)==97){f=ba&32;Oa=(f|0)==0?eb:eb+9|0;fb=db|2;gb=12-za|0;do if(!(za>>>0>11|(gb|0)==0)){hb=8.0;ib=gb;do{ib=ib+-1|0;hb=hb*16.0}while((ib|0)!=0);if((a[Oa>>0]|0)==45){jb=-(hb+(-bb-hb));break}else{jb=bb+hb-hb;break}}else jb=bb;while(0);gb=c[p>>2]|0;ib=(gb|0)<0?0-gb|0:gb;kb=Zu(ib,((ib|0)<0)<<31>>31,C)|0;if((kb|0)==(C|0)){a[E>>0]=48;lb=E}else lb=kb;a[lb+-1>>0]=(gb>>31&2)+43;gb=lb+-2|0;a[gb>>0]=ba+15;kb=(za|0)<1;ib=(ka&8|0)==0;mb=q;nb=jb;while(1){ob=~~nb;pb=mb+1|0;a[mb>>0]=d[67152+ob>>0]|f;nb=(nb-+(ob|0))*16.0;do if((pb-A|0)==1){if(ib&(kb&nb==0.0)){qb=pb;break}a[pb>>0]=46;qb=mb+2|0}else qb=pb;while(0);if(!(nb!=0.0))break;else mb=qb}mb=qb;kb=gb;ib=(za|0)!=0&(G+mb|0)<(za|0)?H+za-kb|0:F-kb+mb|0;f=ib+fb|0;$u(e,32,oa,f,ka);if(!(c[e>>2]&32))Xu(Oa,fb,e)|0;$u(e,48,oa,f,ka^65536);pb=mb-A|0;if(!(c[e>>2]&32))Xu(q,pb,e)|0;mb=r-kb|0;$u(e,48,ib-(pb+mb)|0,0,0);if(!(c[e>>2]&32))Xu(gb,mb,e)|0;$u(e,32,oa,f,ka^8192);rb=(f|0)<(oa|0)?oa:f;break}f=(za|0)<0?6:za;if(la){mb=(c[p>>2]|0)+-28|0;c[p>>2]=mb;sb=bb*268435456.0;tb=mb}else{sb=bb;tb=c[p>>2]|0}mb=(tb|0)<0?o:I;pb=mb;nb=sb;do{ib=~~nb>>>0;c[pb>>2]=ib;pb=pb+4|0;nb=(nb-+(ib>>>0))*1.0e9}while(nb!=0.0);if((tb|0)>0){la=mb;gb=pb;fb=tb;while(1){Oa=(fb|0)>29?29:fb;ib=gb+-4|0;do if(ib>>>0<la>>>0)ub=la;else{kb=ib;ob=0;do{vb=ix(c[kb>>2]|0,0,Oa|0)|0;wb=Ww(vb|0,D|0,ob|0,0)|0;vb=D;xb=jx(wb|0,vb|0,1e9,0)|0;c[kb>>2]=xb;ob=ex(wb|0,vb|0,1e9,0)|0;kb=kb+-4|0}while(kb>>>0>=la>>>0);if(!ob){ub=la;break}kb=la+-4|0;c[kb>>2]=ob;ub=kb}while(0);ib=gb;while(1){if(ib>>>0<=ub>>>0)break;kb=ib+-4|0;if(!(c[kb>>2]|0))ib=kb;else break}kb=(c[p>>2]|0)-Oa|0;c[p>>2]=kb;if((kb|0)>0){la=ub;gb=ib;fb=kb}else{yb=ub;zb=ib;Ab=kb;break}}}else{yb=mb;zb=pb;Ab=tb}if((Ab|0)<0){fb=((f+25|0)/9|0)+1|0;gb=(ja|0)==102;la=yb;kb=zb;vb=Ab;while(1){wb=0-vb|0;xb=(wb|0)>9?9:wb;do if(la>>>0<kb>>>0){wb=(1<<xb)+-1|0;Bb=1e9>>>xb;Cb=0;Db=la;do{Eb=c[Db>>2]|0;c[Db>>2]=(Eb>>>xb)+Cb;Cb=S(Eb&wb,Bb)|0;Db=Db+4|0}while(Db>>>0<kb>>>0);Db=(c[la>>2]|0)==0?la+4|0:la;if(!Cb){Fb=Db;Gb=kb;break}c[kb>>2]=Cb;Fb=Db;Gb=kb+4|0}else{Fb=(c[la>>2]|0)==0?la+4|0:la;Gb=kb}while(0);ib=gb?mb:Fb;Oa=(Gb-ib>>2|0)>(fb|0)?ib+(fb<<2)|0:Gb;vb=(c[p>>2]|0)+xb|0;c[p>>2]=vb;if((vb|0)>=0){Hb=Fb;Ib=Oa;break}else{la=Fb;kb=Oa}}}else{Hb=yb;Ib=zb}kb=mb;do if(Hb>>>0<Ib>>>0){la=(kb-Hb>>2)*9|0;vb=c[Hb>>2]|0;if(vb>>>0<10){Jb=la;break}else{Kb=la;Lb=10}while(1){Lb=Lb*10|0;la=Kb+1|0;if(vb>>>0<Lb>>>0){Jb=la;break}else Kb=la}}else Jb=0;while(0);vb=(ja|0)==103;xb=(f|0)!=0;la=f-((ja|0)!=102?Jb:0)+((xb&vb)<<31>>31)|0;if((la|0)<(((Ib-kb>>2)*9|0)+-9|0)){fb=la+9216|0;la=mb+4+(((fb|0)/9|0)+-1024<<2)|0;gb=((fb|0)%9|0)+1|0;if((gb|0)<9){fb=gb;gb=10;while(1){pb=gb*10|0;fb=fb+1|0;if((fb|0)==9){Mb=pb;break}else gb=pb}}else Mb=10;gb=c[la>>2]|0;fb=(gb>>>0)%(Mb>>>0)|0;ja=(la+4|0)==(Ib|0);do if(ja&(fb|0)==0){Nb=la;Ob=Jb;Pb=Hb}else{nb=(((gb>>>0)/(Mb>>>0)|0)&1|0)==0?9007199254740992.0:9007199254740994.0;pb=(Mb|0)/2|0;if(fb>>>0<pb>>>0)Qb=.5;else Qb=ja&(fb|0)==(pb|0)?1.0:1.5;do if(!db){Rb=Qb;Sb=nb}else{if((a[eb>>0]|0)!=45){Rb=Qb;Sb=nb;break}Rb=-Qb;Sb=-nb}while(0);pb=gb-fb|0;c[la>>2]=pb;if(!(Sb+Rb!=Sb)){Nb=la;Ob=Jb;Pb=Hb;break}Oa=pb+Mb|0;c[la>>2]=Oa;if(Oa>>>0>999999999){Oa=la;pb=Hb;while(1){ib=Oa+-4|0;c[Oa>>2]=0;if(ib>>>0<pb>>>0){Db=pb+-4|0;c[Db>>2]=0;Tb=Db}else Tb=pb;Db=(c[ib>>2]|0)+1|0;c[ib>>2]=Db;if(Db>>>0>999999999){Oa=ib;pb=Tb}else{Ub=ib;Vb=Tb;break}}}else{Ub=la;Vb=Hb}pb=(kb-Vb>>2)*9|0;Oa=c[Vb>>2]|0;if(Oa>>>0<10){Nb=Ub;Ob=pb;Pb=Vb;break}else{Wb=pb;Xb=10}while(1){Xb=Xb*10|0;pb=Wb+1|0;if(Oa>>>0<Xb>>>0){Nb=Ub;Ob=pb;Pb=Vb;break}else Wb=pb}}while(0);la=Nb+4|0;Yb=Ob;Zb=Ib>>>0>la>>>0?la:Ib;_b=Pb}else{Yb=Jb;Zb=Ib;_b=Hb}la=0-Yb|0;fb=Zb;while(1){if(fb>>>0<=_b>>>0){$b=0;break}gb=fb+-4|0;if(!(c[gb>>2]|0))fb=gb;else{$b=1;break}}do if(vb){gb=(xb&1^1)+f|0;if((gb|0)>(Yb|0)&(Yb|0)>-5){ac=ba+-1|0;bc=gb+-1-Yb|0}else{ac=ba+-2|0;bc=gb+-1|0}gb=ka&8;if(gb|0){cc=ac;dc=bc;ec=gb;break}do if($b){gb=c[fb+-4>>2]|0;if(!gb){fc=9;break}if(!((gb>>>0)%10|0)){gc=0;hc=10}else{fc=0;break}while(1){hc=hc*10|0;ja=gc+1|0;if((gb>>>0)%(hc>>>0)|0|0){fc=ja;break}else gc=ja}}else fc=9;while(0);gb=((fb-kb>>2)*9|0)+-9|0;if((ac|32|0)==102){Cb=gb-fc|0;ja=(Cb|0)<0?0:Cb;cc=ac;dc=(bc|0)<(ja|0)?bc:ja;ec=0;break}else{ja=gb+Yb-fc|0;gb=(ja|0)<0?0:ja;cc=ac;dc=(bc|0)<(gb|0)?bc:gb;ec=0;break}}else{cc=ba;dc=f;ec=ka&8}while(0);f=dc|ec;kb=(f|0)!=0&1;xb=(cc|32|0)==102;if(xb){ic=0;jc=(Yb|0)>0?Yb:0}else{vb=(Yb|0)<0?la:Yb;gb=Zu(vb,((vb|0)<0)<<31>>31,C)|0;if((r-gb|0)<2){vb=gb;while(1){ja=vb+-1|0;a[ja>>0]=48;if((r-ja|0)<2)vb=ja;else{kc=ja;break}}}else kc=gb;a[kc+-1>>0]=(Yb>>31&2)+43;vb=kc+-2|0;a[vb>>0]=cc;ic=vb;jc=r-vb|0}vb=db+1+dc+kb+jc|0;$u(e,32,oa,vb,ka);if(!(c[e>>2]&32))Xu(eb,db,e)|0;$u(e,48,oa,vb,ka^65536);do if(xb){la=_b>>>0>mb>>>0?mb:_b;ja=la;do{Cb=Zu(c[ja>>2]|0,0,J)|0;do if((ja|0)==(la|0)){if((Cb|0)!=(J|0)){lc=Cb;break}a[L>>0]=48;lc=L}else{if(Cb>>>0<=q>>>0){lc=Cb;break}Uw(q|0,48,Cb-A|0)|0;Oa=Cb;while(1){pb=Oa+-1|0;if(pb>>>0>q>>>0)Oa=pb;else{lc=pb;break}}}while(0);if(!(c[e>>2]&32))Xu(lc,K-lc|0,e)|0;ja=ja+4|0}while(ja>>>0<=mb>>>0);do if(f|0){if(c[e>>2]&32|0)break;Xu(67220,1,e)|0}while(0);if((dc|0)>0&ja>>>0<fb>>>0){la=dc;Cb=ja;while(1){Oa=Zu(c[Cb>>2]|0,0,J)|0;if(Oa>>>0>q>>>0){Uw(q|0,48,Oa-A|0)|0;pb=Oa;while(1){ib=pb+-1|0;if(ib>>>0>q>>>0)pb=ib;else{mc=ib;break}}}else mc=Oa;if(!(c[e>>2]&32))Xu(mc,(la|0)>9?9:la,e)|0;Cb=Cb+4|0;pb=la+-9|0;if(!((la|0)>9&Cb>>>0<fb>>>0)){nc=pb;break}else la=pb}}else nc=dc;$u(e,48,nc+9|0,9,0)}else{la=$b?fb:_b+4|0;if((dc|0)>-1){Cb=(ec|0)==0;ja=dc;pb=_b;while(1){ib=Zu(c[pb>>2]|0,0,J)|0;if((ib|0)==(J|0)){a[L>>0]=48;oc=L}else oc=ib;do if((pb|0)==(_b|0)){ib=oc+1|0;if(!(c[e>>2]&32))Xu(oc,1,e)|0;if(Cb&(ja|0)<1){pc=ib;break}if(c[e>>2]&32|0){pc=ib;break}Xu(67220,1,e)|0;pc=ib}else{if(oc>>>0<=q>>>0){pc=oc;break}Uw(q|0,48,oc+B|0)|0;ib=oc;while(1){Db=ib+-1|0;if(Db>>>0>q>>>0)ib=Db;else{pc=Db;break}}}while(0);Oa=K-pc|0;if(!(c[e>>2]&32))Xu(pc,(ja|0)>(Oa|0)?Oa:ja,e)|0;ib=ja-Oa|0;pb=pb+4|0;if(!(pb>>>0<la>>>0&(ib|0)>-1)){qc=ib;break}else ja=ib}}else qc=dc;$u(e,48,qc+18|0,18,0);if(c[e>>2]&32|0)break;Xu(ic,r-ic|0,e)|0}while(0);$u(e,32,oa,vb,ka^8192);rb=(vb|0)<(oa|0)?oa:vb}else{fb=(ba&32|0)!=0;f=cb!=cb|0.0!=0.0;mb=f?0:db;xb=mb+3|0;$u(e,32,oa,xb,_);kb=c[e>>2]|0;if(!(kb&32)){Xu(eb,mb,e)|0;rc=c[e>>2]|0}else rc=kb;if(!(rc&32))Xu(f?(fb?67212:67216):fb?67204:67208,3,e)|0;$u(e,32,oa,xb,ka^8192);rb=(xb|0)<(oa|0)?oa:xb}while(0);M=rb;N=Q;O=qa;P=Ba;continue a;break}default:{Ta=P;Ua=0;Va=67168;Wa=x;Xa=za;Ya=ka}}while(0);g:do if((R|0)==63){R=0;ba=s;aa=c[ba>>2]|0;Z=c[ba+4>>2]|0;ba=Ea&32;if((aa|0)==0&(Z|0)==0){sc=x;tc=0;uc=0}else{Ia=x;xb=aa;aa=Z;do{Ia=Ia+-1|0;a[Ia>>0]=d[67152+(xb&15)>>0]|ba;xb=cx(xb|0,aa|0,4)|0;aa=D}while(!((xb|0)==0&(aa|0)==0));aa=s;sc=Ia;tc=c[aa>>2]|0;uc=c[aa+4>>2]|0}aa=(Ga&8|0)==0|(tc|0)==0&(uc|0)==0;Ja=sc;Ka=aa?0:2;La=aa?67168:67168+(Ea>>4)|0;Ma=Fa;Na=Ga;R=76}else if((R|0)==75){R=0;Ja=Zu(Ra,Sa,x)|0;Ka=Pa;La=Qa;Ma=za;Na=ka;R=76}else if((R|0)==81){R=0;aa=_u(Za,0,za)|0;xb=(aa|0)==0;Ta=Za;Ua=0;Va=67168;Wa=xb?Za+za|0:aa;Xa=xb?za:aa-Za|0;Ya=_}else if((R|0)==85){R=0;aa=$a;xb=0;ba=0;while(1){Z=c[aa>>2]|0;if(!Z){vc=xb;wc=ba;break}fb=av(v,Z)|0;if((fb|0)<0|fb>>>0>(_a-xb|0)>>>0){vc=xb;wc=fb;break}Z=fb+xb|0;if(_a>>>0>Z>>>0){aa=aa+4|0;xb=Z;ba=fb}else{vc=Z;wc=fb;break}}if((wc|0)<0){na=-1;break a}$u(e,32,oa,vc,ka);if(!vc){ab=0;R=96}else{ba=$a;xb=0;while(1){aa=c[ba>>2]|0;if(!aa){ab=vc;R=96;break g}Ia=av(v,aa)|0;xb=Ia+xb|0;if((xb|0)>(vc|0)){ab=vc;R=96;break g}if(!(c[e>>2]&32))Xu(v,Ia,e)|0;if(xb>>>0>=vc>>>0){ab=vc;R=96;break}else ba=ba+4|0}}}while(0);if((R|0)==96){R=0;$u(e,32,oa,ab,ka^8192);M=(oa|0)>(ab|0)?oa:ab;N=Q;O=qa;P=Ba;continue}if((R|0)==76){R=0;_=(Ma|0)>-1?Na&-65537:Na;ba=s;xb=(c[ba>>2]|0)!=0|(c[ba+4>>2]|0)!=0;if((Ma|0)!=0|xb){ba=(xb&1^1)+(y-Ja)|0;Ta=Ja;Ua=Ka;Va=La;Wa=x;Xa=(Ma|0)>(ba|0)?Ma:ba;Ya=_}else{Ta=x;Ua=Ka;Va=La;Wa=x;Xa=0;Ya=_}}_=Wa-Ta|0;ba=(Xa|0)<(_|0)?_:Xa;xb=ba+Ua|0;Ia=(oa|0)<(xb|0)?xb:oa;$u(e,32,Ia,xb,Ya);if(!(c[e>>2]&32))Xu(Va,Ua,e)|0;$u(e,48,Ia,xb,Ya^65536);$u(e,48,ba,_,0);if(!(c[e>>2]&32))Xu(Ta,_,e)|0;$u(e,32,Ia,xb,Ya^8192);M=Ia;N=Q;O=qa;P=Ba}h:do if((R|0)==243)if(!e)if(!O)na=0;else{Ba=1;while(1){P=c[k+(Ba<<2)>>2]|0;if(!P){xc=Ba;break}Yu(i+(Ba<<3)|0,P,g);Ba=Ba+1|0;if((Ba|0)>=10){na=1;break h}}while(1){if(c[k+(xc<<2)>>2]|0){na=-1;break h}xc=xc+1|0;if((xc|0)>=10){na=1;break}}}else na=Q;while(0);l=n;return na|0}function Wu(a){a=a|0;return 0}function Xu(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;f=e+16|0;g=c[f>>2]|0;if(!g)if(!(ev(e)|0)){h=c[f>>2]|0;i=5}else j=0;else{h=g;i=5}a:do if((i|0)==5){g=e+20|0;f=c[g>>2]|0;k=f;if((h-f|0)>>>0<d>>>0){j=ub[c[e+36>>2]&63](e,b,d)|0;break}b:do if((a[e+75>>0]|0)>-1){f=d;while(1){if(!f){l=d;m=b;n=0;o=k;break b}p=f+-1|0;if((a[b+p>>0]|0)==10)break;else f=p}if((ub[c[e+36>>2]&63](e,b,f)|0)>>>0<f>>>0){j=f;break a}l=d-f|0;m=b+f|0;n=f;o=c[g>>2]|0}else{l=d;m=b;n=0;o=k}while(0);_w(o|0,m|0,l|0)|0;c[g>>2]=(c[g>>2]|0)+l;j=n+l|0}while(0);return j|0}function Yu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0.0;a:do if(b>>>0<=20)do switch(b|0){case 9:{e=(c[d>>2]|0)+(4-1)&~(4-1);f=c[e>>2]|0;c[d>>2]=e+4;c[a>>2]=f;break a;break}case 10:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;f=a;c[f>>2]=e;c[f+4>>2]=((e|0)<0)<<31>>31;break a;break}case 11:{e=(c[d>>2]|0)+(4-1)&~(4-1);f=c[e>>2]|0;c[d>>2]=e+4;e=a;c[e>>2]=f;c[e+4>>2]=0;break a;break}case 12:{e=(c[d>>2]|0)+(8-1)&~(8-1);f=e;g=c[f>>2]|0;i=c[f+4>>2]|0;c[d>>2]=e+8;e=a;c[e>>2]=g;c[e+4>>2]=i;break a;break}case 13:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=(e&65535)<<16>>16;e=a;c[e>>2]=i;c[e+4>>2]=((i|0)<0)<<31>>31;break a;break}case 14:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=a;c[i>>2]=e&65535;c[i+4>>2]=0;break a;break}case 15:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=(e&255)<<24>>24;e=a;c[e>>2]=i;c[e+4>>2]=((i|0)<0)<<31>>31;break a;break}case 16:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=a;c[i>>2]=e&255;c[i+4>>2]=0;break a;break}case 17:{i=(c[d>>2]|0)+(8-1)&~(8-1);j=+h[i>>3];c[d>>2]=i+8;h[a>>3]=j;break a;break}case 18:{i=(c[d>>2]|0)+(8-1)&~(8-1);j=+h[i>>3];c[d>>2]=i+8;h[a>>3]=j;break a;break}default:break a}while(0);while(0);return}function Zu(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;if(c>>>0>0|(c|0)==0&b>>>0>4294967295){e=d;f=b;g=c;while(1){c=jx(f|0,g|0,10,0)|0;e=e+-1|0;a[e>>0]=c|48;c=f;f=ex(f|0,g|0,10,0)|0;if(!(g>>>0>9|(g|0)==9&c>>>0>4294967295))break;else g=D}h=f;i=e}else{h=b;i=d}if(!h)j=i;else{d=h;h=i;while(1){i=h+-1|0;a[i>>0]=(d>>>0)%10|0|48;if(d>>>0<10){j=i;break}else{d=(d>>>0)/10|0;h=i}}}return j|0}function _u(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;f=d&255;g=(e|0)!=0;a:do if(g&(b&3|0)!=0){h=d&255;i=b;j=e;while(1){if((a[i>>0]|0)==h<<24>>24){k=i;l=j;m=6;break a}n=i+1|0;o=j+-1|0;p=(o|0)!=0;if(p&(n&3|0)!=0){i=n;j=o}else{q=n;r=o;s=p;m=5;break}}}else{q=b;r=e;s=g;m=5}while(0);if((m|0)==5)if(s){k=q;l=r;m=6}else{t=q;u=0}b:do if((m|0)==6){q=d&255;if((a[k>>0]|0)==q<<24>>24){t=k;u=l}else{r=S(f,16843009)|0;c:do if(l>>>0>3){s=k;g=l;while(1){e=c[s>>2]^r;if((e&-2139062144^-2139062144)&e+-16843009|0)break;e=s+4|0;b=g+-4|0;if(b>>>0>3){s=e;g=b}else{v=e;w=b;m=11;break c}}x=s;y=g}else{v=k;w=l;m=11}while(0);if((m|0)==11)if(!w){t=v;u=0;break}else{x=v;y=w}while(1){if((a[x>>0]|0)==q<<24>>24){t=x;u=y;break b}r=x+1|0;y=y+-1|0;if(!y){t=r;u=0;break}else x=r}}}while(0);return (u|0?t:0)|0}function $u(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0;g=l;l=l+256|0;if((l|0)>=(m|0))$(256);h=g;do if((d|0)>(e|0)&(f&73728|0)==0){i=d-e|0;Uw(h|0,b|0,(i>>>0>256?256:i)|0)|0;j=c[a>>2]|0;k=(j&32|0)==0;if(i>>>0>255){n=d-e|0;o=i;p=j;j=k;while(1){if(j){Xu(h,256,a)|0;q=c[a>>2]|0}else q=p;o=o+-256|0;j=(q&32|0)==0;if(o>>>0<=255)break;else p=q}if(j)r=n&255;else break}else if(k)r=i;else break;Xu(h,r,a)|0}while(0);l=g;return}function av(a,b){a=a|0;b=b|0;var c=0;if(!a)c=0;else c=dv(a,b,0)|0;return c|0}function bv(a,b){a=+a;b=b|0;return +(+cv(a,b))}function cv(a,b){a=+a;b=b|0;var d=0,e=0,f=0,g=0.0,i=0.0,k=0,l=0.0;h[j>>3]=a;d=c[j>>2]|0;e=c[j+4>>2]|0;f=cx(d|0,e|0,52)|0;switch(f&2047){case 0:{if(a!=0.0){g=+cv(a*18446744073709551616.0,b);i=g;k=(c[b>>2]|0)+-64|0}else{i=a;k=0}c[b>>2]=k;l=i;break}case 2047:{l=a;break}default:{c[b>>2]=(f&2047)+-1022;c[j>>2]=d;c[j+4>>2]=e&-2146435073|1071644672;l=+h[j>>3]}}return +l}function dv(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;do if(b){if(d>>>0<128){a[b>>0]=d;f=1;break}if(d>>>0<2048){a[b>>0]=d>>>6|192;a[b+1>>0]=d&63|128;f=2;break}if(d>>>0<55296|(d&-8192|0)==57344){a[b>>0]=d>>>12|224;a[b+1>>0]=d>>>6&63|128;a[b+2>>0]=d&63|128;f=3;break}if((d+-65536|0)>>>0<1048576){a[b>>0]=d>>>18|240;a[b+1>>0]=d>>>12&63|128;a[b+2>>0]=d>>>6&63|128;a[b+3>>0]=d&63|128;f=4;break}else{c[(xu()|0)>>2]=84;f=-1;break}}else f=1;while(0);return f|0}function ev(b){b=b|0;var d=0,e=0,f=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;e=c[b>>2]|0;if(!(e&8)){c[b+8>>2]=0;c[b+4>>2]=0;d=c[b+44>>2]|0;c[b+28>>2]=d;c[b+20>>2]=d;c[b+16>>2]=d+(c[b+48>>2]|0);f=0}else{c[b>>2]=e|32;f=-1}return f|0}function fv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=a+20|0;f=c[e>>2]|0;g=(c[a+16>>2]|0)-f|0;a=g>>>0>d>>>0?d:g;_w(f|0,b|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+a;return d|0}function gv(a){a=a|0;var b=0;b=(Mu(a)|0)==0;return (b?a:a&95)|0}function hv(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=b;a:do if(!(d&3)){e=b;f=4}else{g=b;h=d;while(1){if(!(a[g>>0]|0)){i=h;break a}j=g+1|0;h=j;if(!(h&3)){e=j;f=4;break}else g=j}}while(0);if((f|0)==4){f=e;while(1){k=c[f>>2]|0;if(!((k&-2139062144^-2139062144)&k+-16843009))f=f+4|0;else break}if(!((k&255)<<24>>24))l=f;else{k=f;while(1){f=k+1|0;if(!(a[f>>0]|0)){l=f;break}else k=f}}i=l}return i-d|0}function iv(a){a=a|0;return ((a|0)==223|(Iu(a)|0)!=(a|0))&1|0}function jv(a){a=a|0;var b=0;if(a>>>0>=255)if((a+-57344|0)>>>0<8185|(a>>>0<8232|(a+-8234|0)>>>0<47062))b=1;else return ((a+-65532|0)>>>0>1048579|(a&65534|0)==65534)&1^1|0;else b=(a+1&127)>>>0>32&1;return b|0}function kv(a,b){a=a|0;b=b|0;var c=0;do switch(b|0){case 1:{c=lv(a)|0;break}case 2:{c=Lu(a)|0;break}case 3:{c=Du(a)|0;break}case 4:{c=mv(a)|0;break}case 5:{c=nv(a)|0;break}case 6:{c=ov(a)|0;break}case 7:{c=iv(a)|0;break}case 8:{c=jv(a)|0;break}case 9:{c=pv(a)|0;break}case 10:{c=Ou(a)|0;break}case 11:{c=qv(a)|0;break}case 12:{c=rv(a)|0;break}default:c=0}while(0);return c|0}function lv(a){a=a|0;var b=0;if(!(nv(a)|0))b=(Lu(a)|0)!=0;else b=1;return b&1|0}function mv(a){a=a|0;var b=0;if((a&-2|0)==8232|(a>>>0<32|(a+-127|0)>>>0<33))b=1;else b=(a+-65529|0)>>>0<3;return b&1|0}function nv(a){a=a|0;return (a+-48|0)>>>0<10|0}function ov(a){a=a|0;var b=0;if(!(Ou(a)|0))b=(jv(a)|0)!=0;else b=0;return b&1|0}function pv(a){a=a|0;var b=0;if(a>>>0<131072)b=(d[67222+((d[67222+(a>>>8)>>0]|0)<<5|a>>>3&31)>>0]|0)>>>(a&7)&1;else b=0;return b|0}function qv(a){a=a|0;return (Ju(a)|0)!=(a|0)|0}function rv(a){a=a|0;return ((a+-48|0)>>>0<10|((a|32)+-97|0)>>>0<6)&1|0}function sv(b,c){b=b|0;c=c|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;e=a[b>>0]|0;a:do if(!(e<<24>>24)){f=c;g=0}else{h=b;i=c;j=e&255;k=e;while(1){l=a[i>>0]|0;if(!(l<<24>>24)){f=i;g=k;break a}if(k<<24>>24!=l<<24>>24?(m=Gu(j)|0,(m|0)!=(Gu(l&255)|0)):0){f=i;g=k;break a}h=h+1|0;l=i+1|0;m=a[h>>0]|0;if(!(m<<24>>24)){f=l;g=0;break}else{i=l;j=m&255;k=m}}}while(0);e=Gu(g&255)|0;return e-(Gu(d[f>>0]|0)|0)|0}function tv(a,b){a=a|0;b=b|0;uv(a,b)|0;return a|0}function uv(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;e=d;a:do if(!((e^b)&3)){if(!(e&3)){f=d;g=b}else{h=d;i=b;while(1){j=a[h>>0]|0;a[i>>0]=j;if(!(j<<24>>24)){k=i;break a}j=h+1|0;l=i+1|0;if(!(j&3)){f=j;g=l;break}else{h=j;i=l}}}i=c[f>>2]|0;if(!((i&-2139062144^-2139062144)&i+-16843009)){h=g;l=f;j=i;while(1){i=l+4|0;m=h+4|0;c[h>>2]=j;j=c[i>>2]|0;if((j&-2139062144^-2139062144)&j+-16843009|0){n=i;o=m;break}else{h=m;l=i}}}else{n=f;o=g}p=n;q=o;r=8}else{p=d;q=b;r=8}while(0);if((r|0)==8){r=a[p>>0]|0;a[q>>0]=r;if(!(r<<24>>24))k=q;else{r=q;q=p;while(1){q=q+1|0;p=r+1|0;b=a[q>>0]|0;a[p>>0]=b;if(!(b<<24>>24)){k=p;break}else r=p}}}return k|0}function vv(a){a=a|0;return ((a|0)==32|(a+-9|0)>>>0<5)&1|0}function wv(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=xv(a,b,c,-1,0)|0;return d|0}function xv(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;g=l;l=l+112|0;if((l|0)>=(m|0))$(112);h=g;c[h>>2]=0;i=h+4|0;c[i>>2]=a;c[h+44>>2]=a;j=h+8|0;c[j>>2]=(a|0)<0?-1:a+2147483647|0;c[h+76>>2]=-1;yv(h,0);k=zv(h,d,1,e,f)|0;if(b|0)c[b>>2]=a+((c[i>>2]|0)+(c[h+108>>2]|0)-(c[j>>2]|0));l=g;return k|0}function yv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;c[a+104>>2]=b;d=c[a+8>>2]|0;e=c[a+4>>2]|0;f=d-e|0;c[a+108>>2]=f;if((b|0)!=0&(f|0)>(b|0))c[a+100>>2]=e+b;else c[a+100>>2]=d;return}function zv(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0;a:do if(e>>>0>36){c[(xu()|0)>>2]=22;i=0;j=0}else{k=b+4|0;l=b+100|0;do{m=c[k>>2]|0;if(m>>>0<(c[l>>2]|0)>>>0){c[k>>2]=m+1;n=d[m>>0]|0}else n=Av(b)|0}while((vv(n)|0)!=0);b:do switch(n|0){case 43:case 45:{m=((n|0)==45)<<31>>31;o=c[k>>2]|0;if(o>>>0<(c[l>>2]|0)>>>0){c[k>>2]=o+1;p=m;q=d[o>>0]|0;break b}else{p=m;q=Av(b)|0;break b}break}default:{p=0;q=n}}while(0);m=(e|0)==0;do if((e|16|0)==16&(q|0)==48){o=c[k>>2]|0;if(o>>>0<(c[l>>2]|0)>>>0){c[k>>2]=o+1;r=d[o>>0]|0}else r=Av(b)|0;if((r|32|0)!=120)if(m){s=r;t=8;u=46;break}else{v=r;w=e;u=32;break}o=c[k>>2]|0;if(o>>>0<(c[l>>2]|0)>>>0){c[k>>2]=o+1;x=d[o>>0]|0}else x=Av(b)|0;if((d[70391+x>>0]|0)>15){o=(c[l>>2]|0)==0;if(!o)c[k>>2]=(c[k>>2]|0)+-1;if(!f){yv(b,0);i=0;j=0;break a}if(o){i=0;j=0;break a}c[k>>2]=(c[k>>2]|0)+-1;i=0;j=0;break a}else{s=x;t=16;u=46}}else{o=m?10:e;if((d[70391+q>>0]|0)>>>0<o>>>0){v=q;w=o;u=32}else{if(c[l>>2]|0)c[k>>2]=(c[k>>2]|0)+-1;yv(b,0);c[(xu()|0)>>2]=22;i=0;j=0;break a}}while(0);if((u|0)==32)if((w|0)==10){m=v+-48|0;if(m>>>0<10){o=0;y=m;do{o=(o*10|0)+y|0;m=c[k>>2]|0;if(m>>>0<(c[l>>2]|0)>>>0){c[k>>2]=m+1;z=d[m>>0]|0}else z=Av(b)|0;y=z+-48|0}while(y>>>0<10&o>>>0<429496729);A=z;B=o;C=0}else{A=v;B=0;C=0}y=A+-48|0;if(y>>>0<10){m=A;E=B;F=C;G=y;while(1){y=gx(E|0,F|0,10,0)|0;H=D;I=((G|0)<0)<<31>>31;J=~I;if(H>>>0>J>>>0|(H|0)==(J|0)&y>>>0>~G>>>0){K=m;L=G;M=E;N=F;break}J=Ww(y|0,H|0,G|0,I|0)|0;I=D;H=c[k>>2]|0;if(H>>>0<(c[l>>2]|0)>>>0){c[k>>2]=H+1;O=d[H>>0]|0}else O=Av(b)|0;H=O+-48|0;if(H>>>0<10&(I>>>0<429496729|(I|0)==429496729&J>>>0<2576980378)){m=O;E=J;F=I;G=H}else{K=O;L=H;M=J;N=I;break}}if(L>>>0>9){P=p;Q=N;R=M}else{T=10;U=K;V=M;W=N;u=72}}else{P=p;Q=C;R=B}}else{s=v;t=w;u=46}c:do if((u|0)==46){if(!(t+-1&t)){G=a[70647+((t*23|0)>>>5&7)>>0]|0;F=a[70391+s>>0]|0;E=F&255;if(E>>>0<t>>>0){m=0;o=E;do{m=o|m<<G;E=c[k>>2]|0;if(E>>>0<(c[l>>2]|0)>>>0){c[k>>2]=E+1;X=d[E>>0]|0}else X=Av(b)|0;Y=a[70391+X>>0]|0;o=Y&255}while(m>>>0<134217728&o>>>0<t>>>0);Z=X;_=Y;$=0;aa=m}else{Z=s;_=F;$=0;aa=0}o=cx(-1,-1,G|0)|0;E=D;if((_&255)>>>0>=t>>>0|($>>>0>E>>>0|($|0)==(E|0)&aa>>>0>o>>>0)){T=t;U=Z;V=aa;W=$;u=72;break}else{ba=aa;ca=$;da=_}while(1){I=ix(ba|0,ca|0,G|0)|0;J=D;H=da&255|I;I=c[k>>2]|0;if(I>>>0<(c[l>>2]|0)>>>0){c[k>>2]=I+1;ea=d[I>>0]|0}else ea=Av(b)|0;da=a[70391+ea>>0]|0;if((da&255)>>>0>=t>>>0|(J>>>0>E>>>0|(J|0)==(E|0)&H>>>0>o>>>0)){T=t;U=ea;V=H;W=J;u=72;break c}else{ba=H;ca=J}}}o=a[70391+s>>0]|0;E=o&255;if(E>>>0<t>>>0){G=0;F=E;do{G=F+(S(G,t)|0)|0;E=c[k>>2]|0;if(E>>>0<(c[l>>2]|0)>>>0){c[k>>2]=E+1;fa=d[E>>0]|0}else fa=Av(b)|0;ga=a[70391+fa>>0]|0;F=ga&255}while(G>>>0<119304647&F>>>0<t>>>0);ha=fa;ia=ga;ja=G;ka=0}else{ha=s;ia=o;ja=0;ka=0}if((ia&255)>>>0<t>>>0){F=ex(-1,-1,t|0,0)|0;E=D;m=ha;J=ka;H=ja;I=ia;while(1){if(J>>>0>E>>>0|(J|0)==(E|0)&H>>>0>F>>>0){T=t;U=m;V=H;W=J;u=72;break c}y=gx(H|0,J|0,t|0,0)|0;la=D;ma=I&255;if(la>>>0>4294967295|(la|0)==-1&y>>>0>~ma>>>0){T=t;U=m;V=H;W=J;u=72;break c}na=Ww(ma|0,0,y|0,la|0)|0;la=D;y=c[k>>2]|0;if(y>>>0<(c[l>>2]|0)>>>0){c[k>>2]=y+1;oa=d[y>>0]|0}else oa=Av(b)|0;I=a[70391+oa>>0]|0;if((I&255)>>>0>=t>>>0){T=t;U=oa;V=na;W=la;u=72;break}else{m=oa;J=la;H=na}}}else{T=t;U=ha;V=ja;W=ka;u=72}}while(0);if((u|0)==72)if((d[70391+U>>0]|0)>>>0<T>>>0){do{H=c[k>>2]|0;if(H>>>0<(c[l>>2]|0)>>>0){c[k>>2]=H+1;pa=d[H>>0]|0}else pa=Av(b)|0}while((d[70391+pa>>0]|0)>>>0<T>>>0);c[(xu()|0)>>2]=34;P=(g&1|0)==0&0==0?p:0;Q=h;R=g}else{P=p;Q=W;R=V}if(c[l>>2]|0)c[k>>2]=(c[k>>2]|0)+-1;if(!(Q>>>0<h>>>0|(Q|0)==(h|0)&R>>>0<g>>>0)){if(!((g&1|0)!=0|0!=0|(P|0)!=0)){c[(xu()|0)>>2]=34;H=Ww(g|0,h|0,-1,-1)|0;i=D;j=H;break}if(Q>>>0>h>>>0|(Q|0)==(h|0)&R>>>0>g>>>0){c[(xu()|0)>>2]=34;i=h;j=g;break}}H=((P|0)<0)<<31>>31;J=Tw(R^P|0,Q^H|0,P|0,H|0)|0;i=D;j=J}while(0);D=i;return j|0}function Av(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;e=b+104|0;f=c[e>>2]|0;if((f|0)!=0?(c[b+108>>2]|0)>=(f|0):0)g=4;else{f=Bv(b)|0;if((f|0)>=0){h=c[e>>2]|0;e=c[b+8>>2]|0;if(h){i=c[b+4>>2]|0;j=h-(c[b+108>>2]|0)|0;h=e;if((e-i|0)<(j|0)){k=h;g=9}else{c[b+100>>2]=i+(j+-1);l=h}}else{k=e;g=9}if((g|0)==9){c[b+100>>2]=e;l=k}k=b+4|0;if(!l)m=c[k>>2]|0;else{e=c[k>>2]|0;k=b+108|0;c[k>>2]=l+1-e+(c[k>>2]|0);m=e}e=m+-1|0;if((d[e>>0]|0|0)==(f|0))n=f;else{a[e>>0]=f;n=f}}else g=4}if((g|0)==4){c[b+100>>2]=0;n=-1}return n|0}function Bv(a){a=a|0;var b=0,e=0,f=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=b;if((c[a+8>>2]|0)==0?(Cv(a)|0)!=0:0)f=-1;else if((ub[c[a+32>>2]&63](a,e,1)|0)==1)f=d[e>>0]|0;else f=-1;l=b;return f|0}function Cv(b){b=b|0;var d=0,e=0,f=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;e=b+20|0;d=b+44|0;if((c[e>>2]|0)>>>0>(c[d>>2]|0)>>>0)ub[c[b+36>>2]&63](b,0,0)|0;c[b+16>>2]=0;c[b+28>>2]=0;c[e>>2]=0;e=c[b>>2]|0;if(e&20)if(!(e&4))f=-1;else{c[b>>2]=e|32;f=-1}else{e=c[d>>2]|0;c[b+8>>2]=e;c[b+4>>2]=e;f=0}return f|0}function Dv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e;c[f>>2]=d;d=Ev(a,b,f)|0;l=e;return d|0}function Ev(a,b,c){a=a|0;b=b|0;c=c|0;return Tu(a,2147483647,b,c)|0}function Fv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e;c[f>>2]=d;d=Uu(a,b,f)|0;l=e;return d|0}function Gv(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;if((c[f+76>>2]|0)>-1)g=Wu(f)|0;else g=0;h=e+-1|0;if((e|0)<2){e=f+74|0;i=a[e>>0]|0;a[e>>0]=i+255|i;if(g|0)Au(f);if(!h){a[b>>0]=0;j=b}else j=0}else{a:do if(h){i=f+4|0;e=f+8|0;k=h;l=b;while(1){m=c[i>>2]|0;n=m;o=(c[e>>2]|0)-n|0;p=_u(m,10,o)|0;q=(p|0)==0;r=q?o:1-n+p|0;p=r>>>0<k>>>0?r:k;_w(l|0,m|0,p|0)|0;m=(c[i>>2]|0)+p|0;c[i>>2]=m;s=l+p|0;r=k-p|0;if(!(q&(r|0)!=0)){t=s;u=17;break a}if(m>>>0>=(c[e>>2]|0)>>>0){q=Bv(f)|0;if((q|0)<0)break;else v=q}else{c[i>>2]=m+1;v=d[m>>0]|0}k=r+-1|0;r=s+1|0;a[s>>0]=v;if(!((k|0)!=0&(v&255|0)!=10)){t=r;u=17;break a}else l=r}if((s|0)!=(b|0)?(c[f>>2]&16|0)!=0:0){t=s;u=17}else w=0}else{t=b;u=17}while(0);if((u|0)==17)if(!b)w=0;else{a[t>>0]=0;w=b}if(!g)j=w;else{Au(f);j=w}}return j|0}function Hv(b,c,e){b=b|0;c=c|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;if(!e)f=0;else{g=a[b>>0]|0;a:do if(!(g<<24>>24)){h=c;i=0}else{j=b;k=e;l=c;m=g;while(1){k=k+-1|0;n=a[l>>0]|0;if(!(m<<24>>24==n<<24>>24&((k|0)!=0&n<<24>>24!=0))){h=l;i=m;break a}j=j+1|0;n=l+1|0;m=a[j>>0]|0;if(!(m<<24>>24)){h=n;i=0;break}else l=n}}while(0);f=(i&255)-(d[h>>0]|0)|0}return f|0}function Iv(a){a=a|0;return ax(a|0)|0}function Jv(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;a:do if(!d)e=0;else{f=b;g=d;h=c;while(1){i=a[f>>0]|0;j=a[h>>0]|0;if(i<<24>>24!=j<<24>>24)break;g=g+-1|0;if(!g){e=0;break a}else{f=f+1|0;h=h+1|0}}e=(i&255)-(j&255)|0}while(0);return e|0}function Kv(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=hb(6,d|0)|0;d=wu((a|0)==-4?-115:a)|0;l=b;return d|0}function Lv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;e=l;l=l+192|0;if((l|0)>=(m|0))$(192);f=e+152|0;g=e+136|0;h=e+120|0;i=e+104|0;j=e+96|0;k=e+80|0;n=e+64|0;o=e+48|0;p=e+32|0;q=e+16|0;r=e;s=e+176|0;t=e+168|0;c[s>>2]=d;d=(c[s>>2]|0)+(4-1)&~(4-1);u=c[d>>2]|0;c[s>>2]=d+4;d=(b|0)==4?u|32768:u;a:do switch(b|0){case 14:{c[r>>2]=a;c[r+4>>2]=14;c[r+8>>2]=d;v=wu(xa(221,r|0)|0)|0;break}case 9:{c[q>>2]=a;c[q+4>>2]=16;c[q+8>>2]=t;u=xa(221,q|0)|0;switch(u|0){case -22:{c[p>>2]=a;c[p+4>>2]=9;c[p+8>>2]=d;w=xa(221,p|0)|0;break}case 0:{s=c[t+4>>2]|0;w=(c[t>>2]|0)==2?0-s|0:s;break}default:w=wu(u)|0}v=w;break}case 1030:{c[o>>2]=a;c[o+4>>2]=1030;c[o+8>>2]=d;u=xa(221,o|0)|0;if((u|0)!=-22){if((u|0)>-1){c[n>>2]=u;c[n+4>>2]=2;c[n+8>>2]=1;xa(221,n|0)|0}v=wu(u)|0;break a}c[k>>2]=a;c[k+4>>2]=1030;c[k+8>>2]=0;u=xa(221,k|0)|0;if((u|0)==-22){c[i>>2]=a;c[i+4>>2]=0;c[i+8>>2]=d;s=xa(221,i|0)|0;if((s|0)>-1){c[h>>2]=s;c[h+4>>2]=2;c[h+8>>2]=1;xa(221,h|0)|0}v=wu(s)|0;break a}else{if((u|0)>-1){c[j>>2]=u;hb(6,j|0)|0}v=wu(-22)|0;break a}break}default:if((b+-12|0)>>>0<5){c[g>>2]=a;c[g+4>>2]=b;c[g+8>>2]=d;v=wu(xa(221,g|0)|0)|0;break a}else{c[f>>2]=a;c[f+4>>2]=b;c[f+8>>2]=d;v=wu(xa(221,f|0)|0)|0;break a}}while(0);l=e;return v|0}function Mv(a){a=a|0;return ax(a|0)|0}function Nv(a,b,c){a=a|0;b=b|0;c=c|0;Ov(a,b,c)|0;return a|0}function Ov(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;f=d;do if(!((f^b)&3)){g=(e|0)!=0;a:do if(g&(f&3|0)!=0){h=e;i=d;j=b;while(1){k=a[i>>0]|0;a[j>>0]=k;if(!(k<<24>>24)){l=h;m=i;n=j;break a}k=h+-1|0;o=i+1|0;p=j+1|0;q=(k|0)!=0;if(q&(o&3|0)!=0){h=k;i=o;j=p}else{r=k;s=o;t=p;u=q;v=5;break}}}else{r=e;s=d;t=b;u=g;v=5}while(0);if((v|0)==5)if(u){l=r;m=s;n=t}else{w=t;x=0;break}if(!(a[m>>0]|0)){w=n;x=l}else{b:do if(l>>>0>3){g=n;j=m;i=l;while(1){h=c[j>>2]|0;if((h&-2139062144^-2139062144)&h+-16843009|0){y=j;z=g;A=i;break b}c[g>>2]=h;h=i+-4|0;q=j+4|0;p=g+4|0;if(h>>>0>3){g=p;j=q;i=h}else{y=q;z=p;A=h;break}}}else{y=m;z=n;A=l}while(0);B=y;C=z;D=A;v=11}}else{B=d;C=b;D=e;v=11}while(0);c:do if((v|0)==11)if(!D){w=C;x=0}else{e=B;b=C;d=D;while(1){A=a[e>>0]|0;a[b>>0]=A;if(!(A<<24>>24)){w=b;x=d;break c}d=d+-1|0;A=b+1|0;if(!d){w=A;x=0;break}else{e=e+1|0;b=A}}}while(0);Uw(w|0,0,x|0)|0;return w|0}function Pv(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e+16|0;g=e;if(_u(70656,a[d>>0]|0,4)|0){h=Tv(d)|0|32768;c[g>>2]=b;c[g+4>>2]=h;c[g+8>>2]=438;h=wu(ib(5,g|0)|0)|0;if((h|0)>=0){g=Uv(h,d)|0;if(!g){c[f>>2]=h;hb(6,f|0)|0;i=0}else i=g}else i=0}else{c[(xu()|0)>>2]=22;i=0}l=e;return i|0}function Qv(a){a=a|0;var b=0,d=0,e=0,f=0;b=(c[a>>2]&1|0)!=0;if(!b){gb(71276);d=c[a+52>>2]|0;e=a+56|0;if(d|0)c[d+56>>2]=c[e>>2];f=c[e>>2]|0;if(f|0)c[f+52>>2]=d;if((c[17818]|0)==(a|0))c[17818]=f;cb(71276)}f=Rv(a)|0;d=yb[c[a+12>>2]&15](a)|0|f;f=c[a+92>>2]|0;if(f|0)Lw(f);if(!b)Lw(a);return d|0}function Rv(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;do if(a){if((c[a+76>>2]|0)<=-1){b=Sv(a)|0;break}d=(Wu(a)|0)==0;e=Sv(a)|0;if(d)b=e;else{Au(a);b=e}}else{if(!(c[3976]|0))f=0;else f=Rv(c[3976]|0)|0;gb(71276);e=c[17818]|0;if(!e)g=f;else{d=e;e=f;while(1){if((c[d+76>>2]|0)>-1)h=Wu(d)|0;else h=0;if((c[d+20>>2]|0)>>>0>(c[d+28>>2]|0)>>>0)i=Sv(d)|0|e;else i=e;if(h|0)Au(d);d=c[d+56>>2]|0;if(!d){g=i;break}else e=i}}cb(71276);b=g}while(0);return b|0}function Sv(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=a+20|0;d=a+28|0;if((c[b>>2]|0)>>>0>(c[d>>2]|0)>>>0?(ub[c[a+36>>2]&63](a,0,0)|0,(c[b>>2]|0)==0):0)e=-1;else{f=a+4|0;g=c[f>>2]|0;h=a+8|0;i=c[h>>2]|0;if(g>>>0<i>>>0)ub[c[a+40>>2]&63](a,g-i|0,1)|0;c[a+16>>2]=0;c[d>>2]=0;c[b>>2]=0;c[h>>2]=0;c[f>>2]=0;e=0}return e|0}function Tv(b){b=b|0;var c=0,d=0,e=0,f=0;c=(Vv(b,43)|0)==0;d=a[b>>0]|0;e=c?d<<24>>24!=114&1:2;c=(Vv(b,120)|0)==0;f=c?e:e|128;e=(Vv(b,101)|0)==0;b=e?f:f|524288;f=d<<24>>24==114?b:b|64;b=d<<24>>24==119?f|512:f;return (d<<24>>24==97?b|1024:b)|0}function Uv(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;e=l;l=l+112|0;if((l|0)>=(m|0))$(112);f=e+40|0;g=e+24|0;h=e+16|0;i=e;j=e+52|0;k=a[d>>0]|0;if(_u(70656,k<<24>>24,4)|0){n=Kw(1144)|0;if(!n)o=0;else{p=n;q=p+112|0;do{c[p>>2]=0;p=p+4|0}while((p|0)<(q|0));if(!(Vv(d,43)|0))c[n>>2]=k<<24>>24==114?8:4;if(!(Vv(d,101)|0))r=k;else{c[i>>2]=b;c[i+4>>2]=2;c[i+8>>2]=1;xa(221,i|0)|0;r=a[d>>0]|0}if(r<<24>>24==97){c[h>>2]=b;c[h+4>>2]=3;r=xa(221,h|0)|0;if(!(r&1024)){c[g>>2]=b;c[g+4>>2]=4;c[g+8>>2]=r|1024;xa(221,g|0)|0}g=c[n>>2]|128;c[n>>2]=g;s=g}else s=c[n>>2]|0;c[n+60>>2]=b;c[n+44>>2]=n+120;c[n+48>>2]=1024;g=n+75|0;a[g>>0]=-1;if((s&8|0)==0?(c[f>>2]=b,c[f+4>>2]=21505,c[f+8>>2]=j,(bb(54,f|0)|0)==0):0)a[g>>0]=10;c[n+32>>2]=35;c[n+36>>2]=25;c[n+40>>2]=24;c[n+12>>2]=10;if(!(c[17813]|0))c[n+76>>2]=-1;gb(71276);g=c[17818]|0;c[n+56>>2]=g;if(g|0)c[g+52>>2]=n;c[17818]=n;cb(71276);o=n}}else{c[(xu()|0)>>2]=22;o=0}l=e;return o|0}function Vv(b,c){b=b|0;c=c|0;var d=0;d=Wv(b,c)|0;return ((a[d>>0]|0)==(c&255)<<24>>24?d:0)|0}function Wv(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;e=d&255;a:do if(!e)f=b+(hv(b)|0)|0;else{if(!(b&3))g=b;else{h=d&255;i=b;while(1){j=a[i>>0]|0;if(j<<24>>24==0?1:j<<24>>24==h<<24>>24){f=i;break a}j=i+1|0;if(!(j&3)){g=j;break}else i=j}}i=S(e,16843009)|0;h=c[g>>2]|0;b:do if(!((h&-2139062144^-2139062144)&h+-16843009)){j=g;k=h;while(1){l=k^i;if((l&-2139062144^-2139062144)&l+-16843009|0){m=j;break b}l=j+4|0;k=c[l>>2]|0;if((k&-2139062144^-2139062144)&k+-16843009|0){m=l;break}else j=l}}else m=g;while(0);i=d&255;h=m;while(1){j=a[h>>0]|0;if(j<<24>>24==0?1:j<<24>>24==i<<24>>24){f=h;break}else h=h+1|0}}while(0);return f|0}function Xv(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0;g=l;l=l+16|0;if((l|0)>=(m|0))$(16);h=g;a:do if(!e)i=0;else{do if(f|0){j=(b|0)==0?h:b;k=a[e>>0]|0;n=k&255;if(k<<24>>24>-1){c[j>>2]=n;i=k<<24>>24!=0&1;break a}k=n+-194|0;if(k>>>0<=50){n=e+1|0;o=c[16024+(k<<2)>>2]|0;if(f>>>0<4?o&-2147483648>>>((f*6|0)+-6|0)|0:0)break;k=d[n>>0]|0;n=k>>>3;if((n+-16|n+(o>>26))>>>0<=7){n=k+-128|o<<6;if((n|0)>=0){c[j>>2]=n;i=2;break a}o=(d[e+2>>0]|0)+-128|0;if(o>>>0<=63){k=o|n<<6;if((k|0)>=0){c[j>>2]=k;i=3;break a}n=(d[e+3>>0]|0)+-128|0;if(n>>>0<=63){c[j>>2]=n|k<<6;i=4;break a}}}}}while(0);c[(xu()|0)>>2]=84;i=-1}while(0);l=g;return i|0}function Yv(a,b){a=a|0;b=b|0;return (Zv(a,hv(a)|0,1,b)|0)+-1|0}function Zv(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=S(d,b)|0;if((c[e+76>>2]|0)>-1){g=(Wu(e)|0)==0;h=Xu(a,f,e)|0;if(g)i=h;else{Au(e);i=h}}else i=Xu(a,f,e)|0;if((i|0)==(f|0))j=d;else j=(i>>>0)/(b>>>0)|0;return j|0}function _v(){var a=0,b=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=Da(20,a|0)|0;l=a;return b|0}function $v(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d;c[e>>2]=a;c[e+4>>2]=b;b=wu(ab(33,e|0)|0)|0;l=d;return b|0}function aw(a){a=a|0;var b=0,d=0,e=0;if((c[a+76>>2]|0)>-1){b=(Wu(a)|0)==0;d=(c[a>>2]|0)>>>4&1;if(b)e=d;else e=d}else e=(c[a>>2]|0)>>>4&1;return e|0}function bw(b,c){b=b|0;c=c|0;var d=0,e=0,f=0;d=b;e=70660;f=d+15|0;do{a[d>>0]=a[e>>0]|0;d=d+1|0;e=e+1|0}while((d|0)<(f|0));if(!c){a[b+14>>0]=48;a[b+15>>0]=0}else{e=c;d=14;while(1){d=d+1|0;if(e>>>0<10)break;else e=(e>>>0)/10|0}a[b+d>>0]=0;e=c;c=d;while(1){c=c+-1|0;a[b+c>>0]=(e>>>0)%10|0|48;if(e>>>0<10)break;else e=(e>>>0)/10|0}}return}function cw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=l;l=l+48|0;if((l|0)>=(m|0))$(48);e=d+40|0;f=d+8|0;g=d;c[g>>2]=a;c[g+4>>2]=b;h=Na(197,g|0)|0;if((h|0)==-9?(c[f>>2]=a,c[f+4>>2]=1,(xa(221,f|0)|0)>=0):0){bw(f,a);c[e>>2]=f;c[e+4>>2]=b;i=wu(Oa(195,e|0)|0)|0}else i=wu(h)|0;l=d;return i|0}function dw(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=l;l=l+32|0;if((l|0)>=(m|0))$(32);h=g;c[h>>2]=a;c[h+4>>2]=b;c[h+8>>2]=d;c[h+12>>2]=e;c[h+16>>2]=f;f=wu(qb(142,h|0)|0)|0;l=g;return f|0}function ew(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e;c[f>>2]=a;c[f+4>>2]=b;c[f+8>>2]=d;d=wu(jb(4,f|0)|0)|0;l=e;return d|0}function fw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e;c[f>>2]=a;c[f+4>>2]=b;c[f+8>>2]=d;d=wu(eb(3,f|0)|0)|0;l=e;return d|0}function gw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e;g=e+16|0;c[g>>2]=d;d=(c[g>>2]|0)+(4-1)&~(4-1);h=c[d>>2]|0;c[g>>2]=d+4;c[f>>2]=a;c[f+4>>2]=b|32768;c[f+8>>2]=h;h=wu(ib(5,f|0)|0)|0;l=e;return h|0}function hw(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f;c[g>>2]=b;c[g+4>>2]=d;c[g+8>>2]=e;c[g+12>>2]=a;e=g+16|0;c[e>>2]=0;d=g+20|0;c[d>>2]=0;switch(a|0){case 208:case 203:case 213:{c[e>>2]=1;break}default:{}}jw(8,g);g=c[d>>2]|0;if(!g)h=0;else{c[(xu()|0)>>2]=g;h=-1}l=f;return h|0}function iw(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+32|0;if((l|0)>=(m|0))$(32);d=b+16|0;e=b;f=a+20|0;do if(!(c[f>>2]|0)){if((c[a+16>>2]|0?(g=c[a>>2]|0,(g|0)>-1):0)?(g|0)!=(kw()|0):0){c[d>>2]=c[178];c[d+4>>2]=c[179];c[d+8>>2]=c[180];c[d+12>>2]=c[181];lw(6,e)|0;g=mw(6,d)|0;c[f>>2]=0-g;if(!((g|0)!=0?(c[17816]|0)!=0:0)){c[f>>2]=1;mw(6,e)|0}break}c[f>>2]=1}while(0);l=b;return}function jw(a,b){a=a|0;b=b|0;wb[a&15](b);return}function kw(){var a=0,b=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=Qa(199,a|0)|0;l=a;return b|0}function lw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+16|0;f=d;g=d+24|0;c[f>>2]=0;c[f+4>>2]=a;c[f+8>>2]=0;c[f+12>>2]=b;h=wu(fb(340,f|0)|0)|0;if(!h){f=b;if((c[f>>2]|0)==-1?(c[f+4>>2]|0)==-1:0){f=b;c[f>>2]=-1;c[f+4>>2]=-1}f=b+8|0;i=f;if((c[i>>2]|0)==-1?(c[i+4>>2]|0)==-1:0){i=f;c[i>>2]=-1;c[i+4>>2]=-1;j=0}else j=0}else if((c[(xu()|0)>>2]|0)==38){c[e>>2]=a;c[e+4>>2]=g;if((wu(Ma(191,e|0)|0)|0)>=0){e=c[g>>2]|0;a=(e|0)==-1;i=b;c[i>>2]=a?-1:e;c[i+4>>2]=a?-1:0;i=c[g+4>>2]|0;g=(i|0)==-1;e=b+8|0;f=e;c[f>>2]=g?-1:i;c[f+4>>2]=g?-1:0;if(a){a=b;c[a>>2]=-1;c[a+4>>2]=-1}if(g){g=e;c[g>>2]=-1;c[g+4>>2]=-1;j=0}else j=0}else j=-1}else j=h;l=d;return j|0}function mw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+16|0;f=d;g=d+24|0;c[f>>2]=0;c[f+4>>2]=a;c[f+8>>2]=b;c[f+12>>2]=0;h=fb(340,f|0)|0;if((h|0)==-38){f=b;i=c[f>>2]|0;j=c[f+4>>2]|0;f=j>>>0<0|(j|0)==0&i>>>0<4294967295;j=f?i:-1;c[g>>2]=j;j=b+8|0;b=c[j>>2]|0;i=c[j+4>>2]|0;j=i>>>0<0|(i|0)==0&b>>>0<4294967295;i=j?b:-1;c[g+4>>2]=i;c[e>>2]=a;c[e+4>>2]=g;k=Xa(75,e|0)|0}else k=h;l=d;return k|0}function nw(){var a=0,b=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=mb(201,a|0)|0;l=a;return b|0}function ow(a){a=a|0;return hw(213,a,0,0)|0}function pw(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d;c[e>>2]=a;c[e+4>>2]=0;c[e+8>>2]=b;c[e+12>>2]=((b|0)<0)<<31>>31;b=wu(Pa(194,e|0)|0)|0;l=d;return b|0}function qw(){var a=0,b=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=za(64,a|0)|0;l=a;return b|0}function rw(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0;h=l;l=l+32|0;if((l|0)>=(m|0))$(32);i=h;do if((g&4095|0)==0&(((g|0)<0)<<31>>31&-4096|0)==0){if(b>>>0>2147483646){c[(xu()|0)>>2]=12;j=-1;break}k=(e&16|0)!=0;if(k)tw(-1);c[i>>2]=a;c[i+4>>2]=b;c[i+8>>2]=d;c[i+12>>2]=e;c[i+16>>2]=f;c[i+20>>2]=g>>12;n=wu(La(192,i|0)|0)|0;if(k){sw();j=n}else j=n}else{c[(xu()|0)>>2]=22;j=-1}while(0);l=h;return j|0}function sw(){return}function tw(a){a=a|0;return}function uw(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d;tw(-1);c[e>>2]=a;c[e+4>>2]=b;b=wu(Wa(91,e|0)|0)|0;sw();l=d;return b|0}function vw(a){a=a|0;var b=0;b=70712;c[b>>2]=a+-1;c[b+4>>2]=0;return}function ww(){var a=0,b=0,d=0;a=70712;b=gx(c[a>>2]|0,c[a+4>>2]|0,1284865837,1481765933)|0;a=Ww(b|0,D|0,1,0)|0;b=D;d=70712;c[d>>2]=a;c[d+4>>2]=b;d=cx(a|0,b|0,33)|0;return d|0}function xw(a){a=a|0;gb(71296);yw(a);cb(71296);return}function yw(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=c[4107]|0;if(!b)c[c[4108]>>2]=a;else{c[4109]=(b|0)==31|(b|0)==7?3:1;c[17826]=0;if((b|0)>0){d=c[4108]|0;e=0;f=a;a=0;do{g=gx(f|0,a|0,1284865837,1481765933)|0;f=Ww(g|0,D|0,1,0)|0;a=D;c[d+(e<<2)>>2]=a;e=e+1|0}while((e|0)<(b|0));h=d}else h=c[4108]|0;c[h>>2]=c[h>>2]|1}return}function zw(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0;gb(71296);a=c[4107]|0;if(!a){b=c[4108]|0;d=(S(c[b>>2]|0,1103515245)|0)+12345&2147483647;c[b>>2]=d;e=d}else{d=c[17826]|0;b=c[4108]|0;f=c[4109]|0;g=b+(f<<2)|0;h=(c[g>>2]|0)+(c[b+(d<<2)>>2]|0)|0;c[g>>2]=h;g=f+1|0;c[4109]=(g|0)==(a|0)?0:g;g=d+1|0;c[17826]=(g|0)==(a|0)?0:g;e=h>>>1}cb(71296);return e|0}function Aw(b){b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;c=b;while(1){d=a[c>>0]|0;e=d<<24>>24;f=c+1|0;if(!(vv(e)|0))break;else c=f}switch(e|0){case 45:{g=1;h=5;break}case 43:{g=0;h=5;break}default:{i=0;j=c;k=d}}if((h|0)==5){i=g;j=f;k=a[f>>0]|0}f=(k<<24>>24)+-48|0;if(f>>>0<10){k=0;g=j;j=f;while(1){g=g+1|0;f=(k*10|0)-j|0;j=(a[g>>0]|0)+-48|0;if(j>>>0>=10){l=f;break}else k=f}}else l=0;return (i|0?l:0-l|0)|0}function Bw(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d;c[e>>2]=a;c[e+4>>2]=b;b=wu(_a(77,e|0)|0)|0;l=d;return b|0}function Cw(a){a=a|0;return (a+-48|0)>>>0<10|0}function Dw(a,b){a=a|0;b=b|0;var d=0;if(!a)d=Mw(1,24)|0;else{c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;d=b}return d|0}function Ew(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;if(b|0){d=b;do{Lw(c[d>>2]|0);b=d;d=c[d+4>>2]|0;Lw(b)}while((d|0)!=0)}Lw(a);return}function Fw(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=a+16|0;a:do if(!(c[g>>2]|0)){h=a+12|0;i=c[h>>2]|0;do if(i>>>0<f>>>0){if(b|0)if(!d){c[g>>2]=1;j=0;break a}else{k=a+8|0;c[k>>2]=d;c[h>>2]=1024;l=k;m=d;n=d;o=1024;break}k=f<<3;p=k>>>0>1024?k:1024;k=Kw(8)|0;if(!k){c[g>>2]=1;j=0;break a}q=Kw(p)|0;c[k>>2]=q;r=q;if(!q){Lw(k);c[g>>2]=1;j=0;break a}c[k+4>>2]=0;s=a+4|0;t=c[s>>2]|0;if(t|0)c[t+4>>2]=k;if(!(c[a>>2]|0))c[a>>2]=k;c[s>>2]=k;k=a+8|0;c[k>>2]=r;c[h>>2]=p;l=k;m=r;n=q;o=p}else{p=a+8|0;q=c[p>>2]|0;l=p;m=q;n=q;o=i}while(0);i=m+f&3;q=((i|0)==0?0:4-i|0)+f|0;c[l>>2]=n+q;c[h>>2]=o-q;if(!e)j=n;else{Uw(n|0,0,q|0)|0;j=n}}else j=0;while(0);return j|0}function Gw(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0,$b=0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0,gc=0,hc=0,ic=0,jc=0,kc=0,lc=0,mc=0,nc=0,oc=0,pc=0,qc=0,rc=0,sc=0,tc=0,uc=0,vc=0,wc=0,xc=0,yc=0,zc=0,Ac=0,Bc=0,Cc=0,Dc=0,Ec=0,Fc=0,Gc=0,Hc=0,Ic=0,Jc=0,Kc=0,Lc=0,Mc=0,Nc=0,Oc=0,Pc=0,Qc=0;g=l;l=l+16|0;if((l|0)>=(m|0))$(16);h=g;i=c[a+4>>2]|0;a=i+56|0;j=(c[a>>2]&8|0)==0?d:0;d=i+40|0;k=c[d>>2]|0;if((k|0)>0&(j|0)!=0){n=Kw(k<<2)|0;if(!n)o=12;else{p=n;q=3}}else{p=0;q=3}if((q|0)==3){if(!(c[i+60>>2]|0)){c[h>>2]=0;n=f&1;k=f&2;r=c[a>>2]&4;if(!p)s=0;else s=c[d>>2]|0;t=s<<2;u=c[i+52>>2]|0;v=u<<3;w=v+8|0;x=t+12+v+(w+(S(t,u)|0)<<1)|0;y=Kw(x)|0;if(!y){z=12;A=0}else{Uw(y|0,0,x|0)|0;x=y+t|0;B=x&3;C=x+((B|0)==0?0:4-B|0)|0;B=C+w|0;x=B&3;D=B+((x|0)==0?0:4-x|0)|0;x=D+w|0;w=x&3;B=x+((w|0)==0?0:4-w|0)|0;w=B+v|0;v=w&3;if((u|0)>0){x=w+((v|0)==0?0:4-v|0)|0;v=0;while(1){c[D+(v<<3)+4>>2]=x;w=x+t|0;c[C+(v<<3)+4>>2]=w;v=v+1|0;if((v|0)==(u|0)){E=0;break}else x=w+t|0}do{c[B+(E<<3)>>2]=-1;E=E+1|0}while((E|0)!=(u|0))}u=Xv(h,b,4)|0;if((u|0)<1)if((u|0)<0){F=1;G=0}else{H=1;q=201}else{H=u;q=201}a:do if((q|0)==201){u=i+8|0;E=(r|0)!=0;x=(s|0)>0;v=i+12|0;w=i+44|0;I=i+32|0;J=i+36|0;K=(s|0)==0;L=(n|0)==0;M=(s|0)<1;N=0;O=b+H|0;P=0;Q=0;R=-1;T=C;U=H;V=y;W=C;X=D;while(1){if((R|0)<0){Y=c[u>>2]|0;Z=Y+8|0;b:do if(!(c[Z>>2]|0)){_=Q;aa=R;ba=T}else{ca=(P|0)!=0;da=(N|0)==95;ea=(P|0)==0;fa=E&(N|0)==10;ga=L&(P|0)<1;ha=Y;ia=Q;ja=R;ka=T;la=Z;while(1){ma=ha;na=la;c:while(1){oa=ma+12|0;if((c[B+(c[oa>>2]<<3)>>2]|0)>=(P|0)){pa=ka;qa=ia;ra=ja;break}sa=ma+20|0;ta=c[sa>>2]|0;if(!ta){q=236;break}d:do if(fa|(ga|(ta&1|0)==0)){if(ta&2|0?(ua=c[h>>2]|0,!((ua|k|0)==0|E&(ua|0)==10)):0)break;do if(ta&16|0){if(da)break d;if(lv(N)|0)break d;ua=c[h>>2]|0;if((ua|0)==95)break;if(!(lv(ua)|0))break d}while(0);ua=c[sa>>2]|0;if(!(ua&32))va=ua;else{if(da){ua=c[h>>2]|0;if((ua|0)==95)break;else wa=ua}else{ua=(lv(N)|0)==0;xa=c[h>>2]|0;if(ua|(xa|0)==95)break;else wa=xa}if(lv(wa)|0)break;va=c[sa>>2]|0}xa=c[h>>2]|0;do if((xa|0)!=0&(ca&(va&64|0)!=0)){if(da){ya=xa;za=1}else{ua=(lv(N)|0)!=0;ya=c[h>>2]|0;za=ua}if((ya|0)==95)if(za)break d;else break;else if(za^(lv(ya)|0)!=0)break;else break d}while(0);if(!(c[sa>>2]&128)){q=236;break c}xa=c[h>>2]|0;if(ea|(xa|0)==0)break;if(da){Aa=xa;Ba=1}else{xa=(lv(N)|0)!=0;Aa=c[h>>2]|0;Ba=xa}if((Aa|0)==95)if(Ba){q=236;break c}else break;else if(Ba^(lv(Aa)|0)!=0)break;else{q=236;break c}}while(0);sa=ma+40|0;if(!(c[sa>>2]|0)){_=ia;aa=ja;ba=ka;break b}else{ma=ma+32|0;na=sa}}if((q|0)==236){q=0;c[ka>>2]=c[na>>2];if(x)Uw(c[ka+4>>2]|0,-1,t|0)|0;sa=c[ma+16>>2]|0;do if(sa|0){ta=c[sa>>2]|0;if((ta|0)<=-1)break;xa=ka+4|0;ua=sa;Ca=ta;do{if((Ca|0)<(s|0))c[(c[xa>>2]|0)+(Ca<<2)>>2]=P;ua=ua+4|0;Ca=c[ua>>2]|0}while((Ca|0)>-1)}while(0);sa=(c[ka>>2]|0)!=(c[v>>2]|0);if(M|sa){Da=sa?ia:1;Ea=sa?ja:P;Fa=ka+4|0}else{sa=ka+4|0;na=c[sa>>2]|0;Ca=0;do{c[p+(Ca<<2)>>2]=c[na+(Ca<<2)>>2];Ca=Ca+1|0}while((Ca|0)!=(s|0));Da=1;Ea=P;Fa=sa}sa=c[oa>>2]|0;c[B+(sa<<3)>>2]=P;c[B+(sa<<3)+4>>2]=Fa;pa=ka+8|0;qa=Da;ra=Ea}la=ma+40|0;if(!(c[la>>2]|0)){_=qa;aa=ra;ba=pa;break}else{ha=ma+32|0;ia=qa;ja=ra;ka=pa}}}while(0);c[ba>>2]=0;Z=c[h>>2]|0;if(!Z){Ga=aa;break}else{Ha=_;Ia=aa;Ja=Z}}else{if(K){Ga=R;break}Z=c[h>>2]|0;if((T|0)!=(W|0)&(Z|0)!=0){Ha=Q;Ia=R;Ja=Z}else{Ga=R;break}}Z=P+U|0;Y=Xv(h,O,4)|0;if((Y|0)<1)if((Y|0)<0){F=1;G=0;break a}else Ka=1;else Ka=Y;Y=O+Ka|0;if((Ha|0)!=0&(c[w>>2]|0)!=0){if(!(c[W>>2]|0))La=X;else{ka=c[J>>2]|0;ja=c[ka>>2]|0;ia=(ja|0)>-1;ha=W;la=X;while(1){da=ha+4|0;e:do if(ia){ea=0;ca=ja;do{ga=c[ka+((ea|1)<<2)>>2]|0;if((ca|0)>=(s|0)){Ma=la;break e}Na=c[da>>2]|0;if((c[Na+(ga<<2)>>2]|0)==(c[p+(ga<<2)>>2]|0)?(c[Na+(ca<<2)>>2]|0)<(c[p+(ca<<2)>>2]|0):0){Ma=la;break e}ea=ea+2|0;ca=c[ka+(ea<<2)>>2]|0}while((ca|0)>-1);Oa=da;Pa=Na;q=265}else{Oa=da;Pa=c[da>>2]|0;q=265}while(0);if((q|0)==265){q=0;c[la>>2]=c[ha>>2];da=la+4|0;ca=c[da>>2]|0;c[da>>2]=Pa;c[Oa>>2]=ca;Ma=la+8|0}ha=ha+8|0;if(!(c[ha>>2]|0)){La=Ma;break}else la=Ma}}c[La>>2]=0;Qa=W;Ra=X;Sa=0}else{Qa=X;Ra=W;Sa=Ha}la=c[Ra>>2]|0;if(!la){Ta=V;Ua=Ia;Va=Qa;Wa=Sa}else{ha=(Z|0)!=0;ka=(Ja|0)==95;ja=(Z|0)==0;ia=E&(Ja|0)==10;ca=L&(Z|0)<1;da=Ra;ea=V;ma=Ia;ga=Qa;fa=Sa;sa=la;while(1){la=sa+8|0;if(!(c[la>>2]|0)){Xa=ea;Ya=ma;Za=ga;_a=fa}else{Ca=da+4|0;na=sa;ua=ma;xa=ga;ta=fa;$a=ea;ab=la;while(1){f:do if((c[na>>2]|0)>>>0>Ja>>>0){bb=ta;cb=$a;db=xa;eb=ua}else{if((c[na+4>>2]|0)>>>0<Ja>>>0){bb=ta;cb=$a;db=xa;eb=ua;break}la=na+20|0;fb=c[la>>2]|0;do if(fb|0){if(!(ia|(ca|(fb&1|0)==0))){bb=ta;cb=$a;db=xa;eb=ua;break f}if(fb&2|0?(gb=c[h>>2]|0,!((gb|k|0)==0|E&(gb|0)==10)):0){bb=ta;cb=$a;db=xa;eb=ua;break f}do if(fb&16|0){if(ka){bb=ta;cb=$a;db=xa;eb=ua;break f}if(lv(Ja)|0){bb=ta;cb=$a;db=xa;eb=ua;break f}gb=c[h>>2]|0;if((gb|0)==95)break;if(!(lv(gb)|0)){bb=ta;cb=$a;db=xa;eb=ua;break f}}while(0);gb=c[la>>2]|0;if(!(gb&32))hb=gb;else{if(ka){gb=c[h>>2]|0;if((gb|0)==95){bb=ta;cb=$a;db=xa;eb=ua;break f}else ib=gb}else{gb=(lv(Ja)|0)==0;jb=c[h>>2]|0;if(gb|(jb|0)==95){bb=ta;cb=$a;db=xa;eb=ua;break f}else ib=jb}if(lv(ib)|0){bb=ta;cb=$a;db=xa;eb=ua;break f}hb=c[la>>2]|0}jb=c[h>>2]|0;do if((jb|0)!=0&(ha&(hb&64|0)!=0)){if(ka){kb=jb;lb=1}else{gb=(lv(Ja)|0)!=0;kb=c[h>>2]|0;lb=gb}if((kb|0)==95)if(lb){bb=ta;cb=$a;db=xa;eb=ua;break f}else break;else if(lb^(lv(kb)|0)!=0)break;else{bb=ta;cb=$a;db=xa;eb=ua;break f}}while(0);do if(c[la>>2]&128|0){jb=c[h>>2]|0;if(ja|(jb|0)==0){bb=ta;cb=$a;db=xa;eb=ua;break f}if(ka){mb=jb;nb=1}else{jb=(lv(Ja)|0)!=0;mb=c[h>>2]|0;nb=jb}if((mb|0)==95)if(nb)break;else{bb=ta;cb=$a;db=xa;eb=ua;break f}else if(nb^(lv(mb)|0)!=0){bb=ta;cb=$a;db=xa;eb=ua;break f}else break}while(0);jb=c[la>>2]|0;do if(!(jb&4))ob=jb;else{if(c[a>>2]&2|0){ob=jb;break}if(!(kv(Ja,c[na+24>>2]|0)|0)){bb=ta;cb=$a;db=xa;eb=ua;break f}ob=c[la>>2]|0}while(0);do if(ob&4|0){if(!(c[a>>2]&2))break;jb=Ju(Ja)|0;gb=na+24|0;if(kv(jb,c[gb>>2]|0)|0)break;jb=Iu(Ja)|0;if(!(kv(jb,c[gb>>2]|0)|0)){bb=ta;cb=$a;db=xa;eb=ua;break f}}while(0);if(!(c[la>>2]&8))break;if(Jw(c[na+28>>2]|0,Ja,c[a>>2]&2)|0){bb=ta;cb=$a;db=xa;eb=ua;break f}}while(0);if(x){la=c[Ca>>2]|0;fb=0;do{c[$a+(fb<<2)>>2]=c[la+(fb<<2)>>2];fb=fb+1|0}while((fb|0)!=(s|0))}fb=c[na+16>>2]|0;do if(fb|0){la=c[fb>>2]|0;if((la|0)>-1){pb=fb;qb=la}else break;do{if((qb|0)<(s|0))c[$a+(qb<<2)>>2]=Z;pb=pb+4|0;qb=c[pb>>2]|0}while((qb|0)>-1)}while(0);fb=c[na+12>>2]|0;la=B+(fb<<3)|0;if((c[la>>2]|0)>=(Z|0)){gb=c[B+(fb<<3)+4>>2]|0;jb=c[gb>>2]|0;if(!(Hw(s,c[I>>2]|0,$a,jb)|0)){bb=ta;cb=$a;db=xa;eb=ua;break}c[gb>>2]=$a;if((c[ab>>2]|0)!=(c[v>>2]|0)){bb=ta;cb=jb;db=xa;eb=ua;break}if(x)rb=0;else{bb=1;cb=jb;db=xa;eb=Z;break}while(1){c[p+(rb<<2)>>2]=c[$a+(rb<<2)>>2];rb=rb+1|0;if((rb|0)==(s|0)){bb=1;cb=jb;db=xa;eb=Z;break f}}}jb=c[ab>>2]|0;c[xa>>2]=jb;gb=xa+4|0;sb=c[gb>>2]|0;c[gb>>2]=$a;c[la>>2]=Z;c[B+(fb<<3)+4>>2]=gb;do if((jb|0)==(c[v>>2]|0)){if((ua|0)==-1)if(x)tb=0;else{ub=Z;vb=1;break}else{if(!x){ub=ua;vb=ta;break}if((c[$a>>2]|0)>(c[p>>2]|0)){ub=ua;vb=ta;break}else tb=0}do{c[p+(tb<<2)>>2]=c[$a+(tb<<2)>>2];tb=tb+1|0}while((tb|0)<(s|0));ub=Z;vb=1}else{ub=ua;vb=ta}while(0);bb=vb;cb=sb;db=xa+8|0;eb=ub}while(0);ab=na+40|0;if(!(c[ab>>2]|0)){Xa=cb;Ya=eb;Za=db;_a=bb;break}else{na=na+32|0;ua=eb;xa=db;ta=bb;$a=cb}}}da=da+8|0;sa=c[da>>2]|0;if(!sa){Ta=Xa;Ua=Ya;Va=Za;Wa=_a;break}else{ea=Xa;ma=Ya;ga=Za;fa=_a}}}c[Va>>2]=0;N=Ja;O=Y;P=Z;Q=Wa;R=Ua;T=Va;U=Ka;V=Ta;W=Qa;X=Ra}F=Ga>>>31;G=Ga}while(0);Lw(y);z=F;A=G}wb=z;xb=A}else{c[h>>2]=0;A=f&1;z=f&2;f=c[a>>2]&4;G=Dw(0,0)|0;g:do if(G){F=Fw(G,0,0,0,32)|0;if(!F){Ew(G);yb=0;zb=12;break}c[F+24>>2]=0;c[F+28>>2]=0;y=c[d>>2]|0;if(y){Ga=Kw(y<<2)|0;if(!Ga){Ab=0;Bb=0;Cb=0;Db=Ga;Eb=12}else{Fb=Ga;q=9}}else{Fb=0;q=9}h:do if((q|0)==9){Ga=c[i+28>>2]|0;if(Ga){Ra=Kw(Ga<<3)|0;if(!Ra){Ab=0;Bb=Ra;Cb=0;Db=Fb;Eb=12;break}else Gb=Ra}else Gb=0;Ra=i+52|0;Ga=c[Ra>>2]|0;if(Ga){Qa=Kw(Ga<<2)|0;if(!Qa){Ab=0;Bb=Gb;Cb=Qa;Db=Fb;Eb=12;break}else Hb=Qa}else Hb=0;Qa=i+8|0;Ga=i+12|0;Ta=(p|0)==0;Ka=(p|0)!=0;Va=i+32|0;Ua=(f|0)!=0;Wa=(Fb|0)==0;Ja=(Gb|0)==0;_a=(Hb|0)==0;Za=(A|0)==0;Ya=b;Xa=1;cb=-1;bb=-1;db=F;eb=y;i:while(1){if((eb|0)>0){ub=0;vb=eb;while(1){c[Fb+(ub<<2)>>2]=-1;if(Ta)Ib=vb;else{c[p+(ub<<2)>>2]=-1;Ib=c[d>>2]|0}ub=ub+1|0;if((ub|0)>=(Ib|0))break;else vb=Ib}}vb=c[Ra>>2]|0;if((vb|0)>0)Uw(Hb|0,0,vb<<2|0)|0;vb=c[h>>2]|0;ub=Xa+cb|0;s=Xv(h,Ya,4)|0;if((s|0)<1)if((s|0)<0){Ab=0;Bb=Gb;Cb=Hb;Db=Fb;Eb=1;break h}else Jb=1;else Jb=s;s=Ya+Jb|0;tb=c[h>>2]|0;B=c[Qa>>2]|0;rb=B+8|0;if(c[rb>>2]|0){qb=(ub|0)!=0;pb=(vb|0)==95;ob=(ub|0)==0;mb=Ua&(vb|0)==10;nb=Za&(ub|0)<1;kb=B;B=0;lb=0;hb=db;ib=rb;while(1){rb=kb+20|0;k=c[rb>>2]|0;j:do if(k){if(!(mb|(nb|(k&1|0)==0))){Kb=B;Lb=lb;Mb=hb;break}if(k&2|0?(Sa=c[h>>2]|0,!((Sa|z|0)==0|Ua&(Sa|0)==10)):0){Kb=B;Lb=lb;Mb=hb;break}do if(k&16|0){if(pb){Kb=B;Lb=lb;Mb=hb;break j}if(lv(vb)|0){Kb=B;Lb=lb;Mb=hb;break j}Sa=c[h>>2]|0;if((Sa|0)==95)break;if(!(lv(Sa)|0)){Kb=B;Lb=lb;Mb=hb;break j}}while(0);sb=c[rb>>2]|0;if(!(sb&32))Nb=sb;else{if(pb){sb=c[h>>2]|0;if((sb|0)==95){Kb=B;Lb=lb;Mb=hb;break}else Ob=sb}else{sb=(lv(vb)|0)==0;Sa=c[h>>2]|0;if(sb|(Sa|0)==95){Kb=B;Lb=lb;Mb=hb;break}else Ob=Sa}if(lv(Ob)|0){Kb=B;Lb=lb;Mb=hb;break}Nb=c[rb>>2]|0}Sa=c[h>>2]|0;do if((Sa|0)!=0&(qb&(Nb&64|0)!=0)){if(pb){Pb=Sa;Qb=1}else{sb=(lv(vb)|0)!=0;Pb=c[h>>2]|0;Qb=sb}if((Pb|0)==95)if(Qb){Kb=B;Lb=lb;Mb=hb;break j}else break;else if(Qb^(lv(Pb)|0)!=0)break;else{Kb=B;Lb=lb;Mb=hb;break j}}while(0);if(!(c[rb>>2]&128)){q=52;break}Sa=c[h>>2]|0;if(ob|(Sa|0)==0){Kb=B;Lb=lb;Mb=hb;break}if(pb){Rb=Sa;Sb=1}else{Sa=(lv(vb)|0)!=0;Rb=c[h>>2]|0;Sb=Sa}if((Rb|0)==95)if(Sb){q=52;break}else{Kb=B;Lb=lb;Mb=hb;break}else if(Sb^(lv(Rb)|0)!=0){Kb=B;Lb=lb;Mb=hb;break}else{q=52;break}}else q=52;while(0);do if((q|0)==52){q=0;if(!lb){Kb=c[kb+16>>2]|0;Lb=c[ib>>2]|0;Mb=hb;break}rb=hb+28|0;k=c[rb>>2]|0;if(!k){Sa=Fw(G,0,0,0,32)|0;if(!Sa){q=56;break i}c[Sa+24>>2]=hb;c[Sa+28>>2]=0;sb=Fw(G,0,0,0,c[d>>2]<<2)|0;c[Sa+20>>2]=sb;if(!sb){q=63;break i}c[rb>>2]=Sa;Tb=Sa}else Tb=k;c[Tb>>2]=ub;c[Tb+4>>2]=s;c[Tb+8>>2]=c[ib>>2];c[Tb+12>>2]=c[kb+12>>2];c[Tb+16>>2]=c[h>>2];if((c[d>>2]|0)>0){k=c[Tb+20>>2]|0;Sa=0;do{c[k+(Sa<<2)>>2]=c[Fb+(Sa<<2)>>2];Sa=Sa+1|0}while((Sa|0)<(c[d>>2]|0))}Sa=c[kb+16>>2]|0;if(!Sa){Kb=B;Lb=lb;Mb=Tb;break}k=c[Sa>>2]|0;if((k|0)<=-1){Kb=B;Lb=lb;Mb=Tb;break}rb=c[Tb+20>>2]|0;sb=Sa;Sa=k;do{sb=sb+4|0;c[rb+(Sa<<2)>>2]=ub;Sa=c[sb>>2]|0}while((Sa|0)>-1);Kb=B;Lb=lb;Mb=Tb}while(0);ib=kb+40|0;if(!(c[ib>>2]|0))break;else{kb=kb+32|0;B=Kb;lb=Lb;hb=Mb}}if(Kb){hb=c[Kb>>2]|0;if((hb|0)>-1){lb=Kb;B=hb;while(1){c[Fb+(B<<2)>>2]=ub;hb=lb+4|0;B=c[hb>>2]|0;if((B|0)<=-1){Ub=hb;break}else lb=hb}}else Ub=Kb}else Ub=0;if(!Lb){Vb=Mb;Wb=bb;Xb=vb;Yb=ub;Zb=0;_b=s;$b=Jb;ac=Ub;q=174}else{bc=vb;cc=ub;dc=s;ec=bb;fc=Jb;gc=Lb;hc=Ub;ic=Mb;q=82}}else{Vb=db;Wb=bb;Xb=vb;Yb=ub;Zb=0;_b=s;$b=Jb;ac=0;q=174}k:while(1){l:do if((q|0)==82){q=0;if((gc|0)==(c[Ga>>2]|0)){if((ec|0)>=(cc|0)){if(!(Ka&(ec|0)==(cc|0))){Vb=ic;Wb=ec;Xb=bc;Yb=cc;Zb=gc;_b=dc;$b=fc;ac=hc;q=174;continue k}if(!(Hw(c[d>>2]|0,c[Va>>2]|0,Fb,p)|0)){Vb=ic;Wb=ec;Xb=bc;Yb=ec;Zb=gc;_b=dc;$b=fc;ac=hc;q=174;continue k}}if(Ta){Vb=ic;Wb=cc;Xb=bc;Yb=cc;Zb=gc;_b=dc;$b=fc;ac=hc;q=174;continue k}if((c[d>>2]|0)>0)jc=0;else{Vb=ic;Wb=cc;Xb=bc;Yb=cc;Zb=gc;_b=dc;$b=fc;ac=hc;q=174;continue k}while(1){c[p+(jc<<2)>>2]=c[Fb+(jc<<2)>>2];lb=jc+1|0;if((lb|0)<(c[d>>2]|0))jc=lb;else{Vb=ic;Wb=cc;Xb=bc;Yb=cc;Zb=gc;_b=dc;$b=fc;ac=hc;q=174;continue k}}}lb=gc+8|0;do if(!(c[lb>>2]|0))q=98;else{if(!(c[gc+20>>2]&256)){q=98;break}B=c[gc+24>>2]|0;Iw(B+1|0,Gb,c[a>>2]&-9,i,Fb,cc);hb=c[Gb+(B<<3)>>2]|0;kb=(c[Gb+(B<<3)+4>>2]|0)-hb|0;do if(!(Hv(b+hb|0,dc+-1|0,kb)|0)){B=(kb|0)==0;ib=B&1;pb=Hb+(c[gc+12>>2]<<2)|0;if(B?c[pb>>2]|0:0){kc=bc;lc=cc;mc=dc;nc=25;oc=fc;break}c[pb>>2]=ib;ib=kb+-1|0;pb=dc+ib|0;B=c[h>>2]|0;ob=cc+fc+ib|0;ib=Xv(h,pb,4)|0;if((ib|0)<1)if((ib|0)<0){kc=B;lc=ob;mc=pb;nc=2;oc=ib;break}else pc=1;else pc=ib;kc=B;lc=ob;mc=pb+pc|0;nc=0;oc=pc}else{kc=bc;lc=cc;mc=dc;nc=25;oc=fc}while(0);switch(nc&31){case 25:{Vb=ic;Wb=ec;Xb=kc;Yb=lc;Zb=gc;_b=mc;$b=oc;ac=hc;q=174;continue k;break}case 0:{qc=kc;rc=lc;sc=mc;tc=oc;break}default:{uc=hc;vc=ic;wc=ec;xc=kc;yc=lc;zc=nc;Ac=gc;Bc=mc;Cc=oc;break l}}}while(0);if((q|0)==98){q=0;kb=c[h>>2]|0;if(!kb){Vb=ic;Wb=ec;Xb=bc;Yb=cc;Zb=gc;_b=dc;$b=fc;ac=hc;q=174;continue k}hb=cc+fc|0;pb=Xv(h,dc,4)|0;if((pb|0)<1)if((pb|0)<0){uc=hc;vc=ic;wc=ec;xc=kb;yc=hb;zc=2;Ac=gc;Bc=dc;Cc=pb;break}else Dc=1;else Dc=pb;qc=kb;rc=hb;sc=dc+Dc|0;tc=Dc}if(!(c[lb>>2]|0)){Vb=ic;Wb=ec;Xb=qc;Yb=rc;Zb=gc;_b=sc;$b=tc;ac=hc;q=174;continue k}hb=(rc|0)!=0;kb=(qc|0)==95;pb=(rc|0)==0;ob=Ua&(qc|0)==10;B=Za&(rc|0)<1;ib=0;qb=gc;nb=hc;mb=ic;Sa=lb;m:while(1){n:do if((c[qb>>2]|0)>>>0>qc>>>0){Ec=mb;Fc=ib;Gc=nb}else{if((c[qb+4>>2]|0)>>>0<qc>>>0){Ec=mb;Fc=ib;Gc=nb;break}sb=qb+20|0;rb=c[sb>>2]|0;do if(rb|0){if(!(ob|(B|(rb&1|0)==0))){Ec=mb;Fc=ib;Gc=nb;break n}if(rb&2|0?(k=c[h>>2]|0,!((k|z|0)==0|Ua&(k|0)==10)):0){Ec=mb;Fc=ib;Gc=nb;break n}do if(rb&16|0){if(kb){Ec=mb;Fc=ib;Gc=nb;break n}if(lv(qc)|0){Ec=mb;Fc=ib;Gc=nb;break n}k=c[h>>2]|0;if((k|0)==95)break;if(!(lv(k)|0)){Ec=mb;Fc=ib;Gc=nb;break n}}while(0);k=c[sb>>2]|0;if(!(k&32))Hc=k;else{if(kb){k=c[h>>2]|0;if((k|0)==95){Ec=mb;Fc=ib;Gc=nb;break n}else Ic=k}else{k=(lv(qc)|0)==0;Ia=c[h>>2]|0;if(k|(Ia|0)==95){Ec=mb;Fc=ib;Gc=nb;break n}else Ic=Ia}if(lv(Ic)|0){Ec=mb;Fc=ib;Gc=nb;break n}Hc=c[sb>>2]|0}Ia=c[h>>2]|0;do if((Ia|0)!=0&(hb&(Hc&64|0)!=0)){if(kb){Jc=Ia;Kc=1}else{k=(lv(qc)|0)!=0;Jc=c[h>>2]|0;Kc=k}if((Jc|0)==95)if(Kc){Ec=mb;Fc=ib;Gc=nb;break n}else break;else if(Kc^(lv(Jc)|0)!=0)break;else{Ec=mb;Fc=ib;Gc=nb;break n}}while(0);do if(c[sb>>2]&128|0){Ia=c[h>>2]|0;if(pb|(Ia|0)==0){Ec=mb;Fc=ib;Gc=nb;break n}if(kb){Lc=Ia;Mc=1}else{Ia=(lv(qc)|0)!=0;Lc=c[h>>2]|0;Mc=Ia}if((Lc|0)==95)if(Mc)break;else{Ec=mb;Fc=ib;Gc=nb;break n}else if(Mc^(lv(Lc)|0)!=0){Ec=mb;Fc=ib;Gc=nb;break n}else break}while(0);Ia=c[sb>>2]|0;do if(!(Ia&4))Nc=Ia;else{if(c[a>>2]&2|0){Nc=Ia;break}if(!(kv(qc,c[qb+24>>2]|0)|0)){Ec=mb;Fc=ib;Gc=nb;break n}Nc=c[sb>>2]|0}while(0);do if(Nc&4|0){if(!(c[a>>2]&2))break;Ia=Ju(qc)|0;k=qb+24|0;if(kv(Ia,c[k>>2]|0)|0)break;Ia=Iu(qc)|0;if(!(kv(Ia,c[k>>2]|0)|0)){Ec=mb;Fc=ib;Gc=nb;break n}}while(0);if(!(c[sb>>2]&8))break;if(Jw(c[qb+28>>2]|0,qc,c[a>>2]&2)|0){Ec=mb;Fc=ib;Gc=nb;break n}}while(0);if(!ib){Ec=mb;Fc=c[Sa>>2]|0;Gc=c[qb+16>>2]|0;break}sb=mb+28|0;rb=c[sb>>2]|0;if(!rb){k=Fw(G,0,0,0,32)|0;if(!k){q=148;break m}c[k+24>>2]=mb;c[k+28>>2]=0;Ia=Fw(G,0,0,0,c[d>>2]<<2)|0;c[k+20>>2]=Ia;if(!Ia){q=155;break m}c[sb>>2]=k;Oc=k}else Oc=rb;c[Oc>>2]=rc;c[Oc+4>>2]=sc;c[Oc+8>>2]=c[Sa>>2];c[Oc+12>>2]=c[qb+12>>2];c[Oc+16>>2]=c[h>>2];if((c[d>>2]|0)>0){rb=c[Oc+20>>2]|0;k=0;do{c[rb+(k<<2)>>2]=c[Fb+(k<<2)>>2];k=k+1|0}while((k|0)<(c[d>>2]|0))}k=c[qb+16>>2]|0;if(!k){Ec=Oc;Fc=ib;Gc=nb;break}rb=c[k>>2]|0;if((rb|0)<=-1){Ec=Oc;Fc=ib;Gc=nb;break}sb=c[Oc+20>>2]|0;Ia=k;k=rb;do{c[sb+(k<<2)>>2]=rc;Ia=Ia+4|0;k=c[Ia>>2]|0}while((k|0)>-1);Ec=Oc;Fc=ib;Gc=nb}while(0);Sa=qb+40|0;if(!(c[Sa>>2]|0)){q=170;break}else{ib=Fc;qb=qb+32|0;nb=Gc;mb=Ec}}if((q|0)==148){q=0;Ew(G);if(!Wa)Lw(Fb);if(!Ja)Lw(Gb);if(_a){uc=nb;vc=mb;wc=ec;xc=qc;yc=rc;zc=1;Ac=gc;Bc=sc;Cc=tc;break}Lw(Hb);uc=nb;vc=mb;wc=ec;xc=qc;yc=rc;zc=1;Ac=gc;Bc=sc;Cc=tc;break}else if((q|0)==155){q=0;Ew(G);if(!Wa)Lw(Fb);if(!Ja)Lw(Gb);if(_a){uc=nb;vc=mb;wc=ec;xc=qc;yc=rc;zc=1;Ac=gc;Bc=sc;Cc=tc;break}Lw(Hb);uc=nb;vc=mb;wc=ec;xc=qc;yc=rc;zc=1;Ac=gc;Bc=sc;Cc=tc;break}else if((q|0)==170){q=0;if(!Fc){Vb=Ec;Wb=ec;Xb=qc;Yb=rc;Zb=gc;_b=sc;$b=tc;ac=Gc;q=174;continue k}if(!Gc){uc=0;vc=Ec;wc=ec;xc=qc;yc=rc;zc=0;Ac=Fc;Bc=sc;Cc=tc;break}qb=c[Gc>>2]|0;if((qb|0)>-1){Pc=Gc;Qc=qb}else{uc=Gc;vc=Ec;wc=ec;xc=qc;yc=rc;zc=0;Ac=Fc;Bc=sc;Cc=tc;break}while(1){qb=Pc+4|0;c[Fb+(Qc<<2)>>2]=rc;Qc=c[qb>>2]|0;if((Qc|0)<=-1){uc=qb;vc=Ec;wc=ec;xc=qc;yc=rc;zc=0;Ac=Fc;Bc=sc;Cc=tc;break}else Pc=qb}}}else if((q|0)==174){q=0;mb=c[Vb+24>>2]|0;if(!mb){if((Wb|0)>-1|(c[h>>2]|0)==0){uc=ac;vc=Vb;wc=Wb;xc=Xb;yc=Yb;zc=27;Ac=Zb;Bc=_b;Cc=$b;break}c[h>>2]=tb;uc=ac;vc=Vb;wc=Wb;xc=Xb;yc=Yb;zc=3;Ac=Zb;Bc=s;Cc=$b;break}nb=c[Vb+8>>2]|0;if(c[nb+20>>2]&256|0)c[Hb+(c[Vb+12>>2]<<2)>>2]=0;qb=c[Vb>>2]|0;ib=c[Vb+4>>2]|0;c[h>>2]=c[Vb+16>>2];Sa=c[d>>2]|0;if((Sa|0)<=0){uc=ac;vc=mb;wc=Wb;xc=Xb;yc=qb;zc=0;Ac=nb;Bc=ib;Cc=$b;break}kb=c[Vb+20>>2]|0;pb=0;do{c[Fb+(pb<<2)>>2]=c[kb+(pb<<2)>>2];pb=pb+1|0}while((pb|0)!=(Sa|0));uc=ac;vc=mb;wc=Wb;xc=Xb;yc=qb;zc=0;Ac=nb;Bc=ib;Cc=$b}while(0);switch(zc|0){case 2:{Ab=0;Bb=Gb;Cb=Hb;Db=Fb;Eb=1;break h;break}case 27:{q=184;break i;break}case 0:{bc=xc;cc=yc;dc=Bc;ec=wc;fc=Cc;gc=Ac;hc=uc;ic=vc;q=82;break}case 3:{break k;break}default:{yb=0;zb=12;break g}}}Ya=Bc;Xa=Cc;cb=ub;bb=wc;db=vc;eb=c[d>>2]|0}if((q|0)==56){Ew(G);if(!Wa)Lw(Fb);if(!Ja)Lw(Gb);if(_a){yb=0;zb=12;break g}Lw(Hb);yb=0;zb=12;break g}else if((q|0)==63){Ew(G);if(!Wa)Lw(Fb);if(!Ja)Lw(Gb);if(_a){yb=0;zb=12;break g}Lw(Hb);yb=0;zb=12;break g}else if((q|0)==184){Ab=wc;Bb=Gb;Cb=Hb;Db=Fb;Eb=wc>>>31;break}}while(0);Ew(G);if(Db|0)Lw(Db);if(Bb|0)Lw(Bb);if(!Cb){yb=Ab;zb=Eb}else{Lw(Cb);yb=Ab;zb=Eb}}else{yb=0;zb=12}while(0);wb=zb;xb=yb}if(!wb)Iw(j,e,c[a>>2]|0,i,p,xb);if(!p)o=wb;else{Lw(p);o=wb}}l=g;return o|0}function Hw(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;a:do if((a|0)>0){f=0;while(1){g=c[d+(f<<2)>>2]|0;h=c[e+(f<<2)>>2]|0;if(!(c[b+(f<<2)>>2]|0)){if((g|0)<(h|0)){i=1;break a}if((g|0)>(h|0)){i=0;break a}}else{if((g|0)>(h|0)){i=1;break a}if((g|0)<(h|0)){i=0;break a}}f=f+1|0;if((f|0)>=(a|0)){i=0;break}}}else i=0;while(0);return i|0}function Iw(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;if((d&8|0)==0&(g|0)>-1){d=c[e+16>>2]|0;h=e+28|0;i=c[h>>2]|0;j=(a|0)!=0;if(j&(i|0)!=0){k=e+48|0;e=0;do{l=c[d+(e*12|0)>>2]|0;if((l|0)==(c[k>>2]|0))m=g;else m=c[f+(l<<2)>>2]|0;l=b+(e<<3)|0;c[l>>2]=m;n=c[d+(e*12|0)+4>>2]|0;if((n|0)==(c[k>>2]|0))o=g;else o=c[f+(n<<2)>>2]|0;n=b+(e<<3)+4|0;c[n>>2]=o;if((m|0)==-1|(o|0)==-1){c[n>>2]=-1;c[l>>2]=-1}e=e+1|0;l=c[h>>2]|0}while(e>>>0<a>>>0&e>>>0<l>>>0);p=l}else p=i;if(j&(p|0)!=0){j=0;while(1){i=b+(j<<3)+4|0;e=c[d+(j*12|0)+8>>2]|0;if(e|0?(h=c[e>>2]|0,(h|0)>-1):0){o=b+(j<<3)|0;m=0;f=h;h=c[o>>2]|0;while(1){if((h|0)>=(c[b+(f<<3)>>2]|0)?(c[i>>2]|0)<=(c[b+(f<<3)+4>>2]|0):0)q=h;else{c[i>>2]=-1;c[o>>2]=-1;q=-1}m=m+1|0;f=c[e+(m<<2)>>2]|0;if((f|0)<=-1)break;else h=q}}h=j+1|0;if(h>>>0<a>>>0&h>>>0<p>>>0)j=h;else{r=h;break}}}else r=0}else r=0;if(r>>>0<a>>>0)Uw(b+(r<<3)|0,-1,a-r<<3|0)|0;return}function Jw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=c[a>>2]|0;a:do if(!e)f=0;else{g=(d|0)==0;h=a;i=e;while(1){if(g){if(kv(b,i)|0){f=1;break a}}else{j=Iu(b)|0;if(kv(j,c[h>>2]|0)|0){f=1;break a}j=Ju(b)|0;if(kv(j,c[h>>2]|0)|0){f=1;break a}}h=h+4|0;i=c[h>>2]|0;if(!i){f=0;break}}}while(0);return f|0} -function Ol(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+28|0;f=d+24|0;g=d+20|0;h=d+16|0;i=d+12|0;j=d+8|0;k=d+4|0;n=d;c[e>>2]=b;c[f>>2]=c[e>>2];Nr(c[f>>2]|0,0,0);c[g>>2]=c[(c[f>>2]|0)+128>>2];c[h>>2]=c[(c[f>>2]|0)+128+4>>2];c[j>>2]=c[g>>2]<<6;c[i>>2]=c[h>>2]<<6|(c[g>>2]|0)>>>26;c[g>>2]=c[j>>2];h=(c[j>>2]|0)+(c[(c[f>>2]|0)+144>>2]|0)|0;c[j>>2]=h;if(h>>>0<(c[g>>2]|0)>>>0)c[i>>2]=(c[i>>2]|0)+1;c[g>>2]=c[j>>2];c[j>>2]=c[j>>2]<<3;c[i>>2]=c[i>>2]<<3;c[i>>2]=c[i>>2]|(c[g>>2]|0)>>>29;g=(c[(c[f>>2]|0)+144>>2]|0)<56;h=(c[f>>2]|0)+144|0;e=c[h>>2]|0;c[h>>2]=e+1;a[(c[f>>2]|0)+e>>0]=-128;a:do if(g)while(1){if((c[(c[f>>2]|0)+144>>2]|0)>=56)break a;e=(c[f>>2]|0)+144|0;h=c[e>>2]|0;c[e>>2]=h+1;a[(c[f>>2]|0)+h>>0]=0}else{while(1){o=c[f>>2]|0;if((c[(c[f>>2]|0)+144>>2]|0)>=64)break;h=o+144|0;e=c[h>>2]|0;c[h>>2]=e+1;a[(c[f>>2]|0)+e>>0]=0}Nr(o,0,0);e=c[f>>2]|0;h=e+56|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(h|0))}while(0);Sl((c[f>>2]|0)+56|0,c[i>>2]|0);Sl((c[f>>2]|0)+60|0,c[j>>2]|0);c[n>>2]=Tl(c[f>>2]|0,c[f>>2]|0,1)|0;bf(c[n>>2]|0);cf();c[k>>2]=c[f>>2];Sl(c[k>>2]|0,c[(c[f>>2]|0)+160>>2]|0);c[k>>2]=(c[k>>2]|0)+4;Sl(c[k>>2]|0,c[(c[f>>2]|0)+164>>2]|0);c[k>>2]=(c[k>>2]|0)+4;Sl(c[k>>2]|0,c[(c[f>>2]|0)+168>>2]|0);c[k>>2]=(c[k>>2]|0)+4;Sl(c[k>>2]|0,c[(c[f>>2]|0)+172>>2]|0);c[k>>2]=(c[k>>2]|0)+4;Sl(c[k>>2]|0,c[(c[f>>2]|0)+176>>2]|0);c[k>>2]=(c[k>>2]|0)+4;l=d;return}function Pl(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=c[d>>2];l=b;return c[e>>2]|0}function Ql(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;if((c[f>>2]|0)==2){c[i>>2]=Rl(c[g>>2]|0,c[h>>2]|0)|0;j=c[i>>2]|0;l=e;return j|0}else{c[i>>2]=5;j=c[i>>2]|0;l=e;return j|0}return 0}function Rl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+16|0;f=d+12|0;g=d+8|0;h=d+4|0;i=d;c[f>>2]=a;c[g>>2]=b;c[h>>2]=42861;c[i>>2]=Mr(2,0,42874,3,42324,20)|0;do if(!(c[i>>2]|0)){if(c[f>>2]|0){c[h>>2]=42943;c[i>>2]=Mr(2,0,42531,56,42345,20)|0;if(c[i>>2]|0)break;c[h>>2]=43133;c[i>>2]=Mr(2,1,0,0,42366,20)|0;if(c[i>>2]|0)break}c[e>>2]=0;j=c[e>>2]|0;l=d;return j|0}while(0);if(c[g>>2]|0)Eb[c[g>>2]&1](43214,2,c[h>>2]|0,c[i>>2]|0);c[e>>2]=50;j=c[e>>2]|0;l=d;return j|0}function Sl(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=b;c[g>>2]=d;c[h>>2]=c[f>>2];a[c[h>>2]>>0]=(c[g>>2]|0)>>>24;a[(c[h>>2]|0)+1>>0]=(c[g>>2]|0)>>>16;a[(c[h>>2]|0)+2>>0]=(c[g>>2]|0)>>>8;a[(c[h>>2]|0)+3>>0]=c[g>>2];l=e;return}function Tl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;j=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[f>>2];do{c[j>>2]=Ul(c[i>>2]|0,c[g>>2]|0)|0;c[g>>2]=(c[g>>2]|0)+64;f=(c[h>>2]|0)+-1|0;c[h>>2]=f}while((f|0)!=0);l=e;return c[j>>2]|0}function Ul(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;d=l;l=l+112|0;if((l|0)>=(m|0))$(112);e=d+100|0;f=d+96|0;g=d+92|0;h=d+88|0;i=d+84|0;j=d+80|0;k=d+76|0;n=d+72|0;o=d+68|0;p=d+64|0;q=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=c[e>>2];c[h>>2]=c[f>>2];c[i>>2]=c[(c[g>>2]|0)+160>>2];c[j>>2]=c[(c[g>>2]|0)+164>>2];c[k>>2]=c[(c[g>>2]|0)+168>>2];c[n>>2]=c[(c[g>>2]|0)+172>>2];c[o>>2]=c[(c[g>>2]|0)+176>>2];f=Vl(c[i>>2]|0,5)|0;e=f+(c[n>>2]^c[j>>2]&(c[k>>2]^c[n>>2]))+1518500249|0;f=Wl(c[h>>2]|0)|0;c[q>>2]=f;c[o>>2]=(c[o>>2]|0)+(e+f);c[j>>2]=Vl(c[j>>2]|0,30)|0;f=Vl(c[o>>2]|0,5)|0;e=f+(c[k>>2]^c[i>>2]&(c[j>>2]^c[k>>2]))+1518500249|0;f=Wl((c[h>>2]|0)+4|0)|0;c[q+4>>2]=f;c[n>>2]=(c[n>>2]|0)+(e+f);c[i>>2]=Vl(c[i>>2]|0,30)|0;f=Vl(c[n>>2]|0,5)|0;e=f+(c[j>>2]^c[o>>2]&(c[i>>2]^c[j>>2]))+1518500249|0;f=Wl((c[h>>2]|0)+8|0)|0;c[q+8>>2]=f;c[k>>2]=(c[k>>2]|0)+(e+f);c[o>>2]=Vl(c[o>>2]|0,30)|0;f=Vl(c[k>>2]|0,5)|0;e=f+(c[i>>2]^c[n>>2]&(c[o>>2]^c[i>>2]))+1518500249|0;f=Wl((c[h>>2]|0)+12|0)|0;c[q+12>>2]=f;c[j>>2]=(c[j>>2]|0)+(e+f);c[n>>2]=Vl(c[n>>2]|0,30)|0;f=Vl(c[j>>2]|0,5)|0;e=f+(c[o>>2]^c[k>>2]&(c[n>>2]^c[o>>2]))+1518500249|0;f=Wl((c[h>>2]|0)+16|0)|0;c[q+16>>2]=f;c[i>>2]=(c[i>>2]|0)+(e+f);c[k>>2]=Vl(c[k>>2]|0,30)|0;f=Vl(c[i>>2]|0,5)|0;e=f+(c[n>>2]^c[j>>2]&(c[k>>2]^c[n>>2]))+1518500249|0;f=Wl((c[h>>2]|0)+20|0)|0;c[q+20>>2]=f;c[o>>2]=(c[o>>2]|0)+(e+f);c[j>>2]=Vl(c[j>>2]|0,30)|0;f=Vl(c[o>>2]|0,5)|0;e=f+(c[k>>2]^c[i>>2]&(c[j>>2]^c[k>>2]))+1518500249|0;f=Wl((c[h>>2]|0)+24|0)|0;c[q+24>>2]=f;c[n>>2]=(c[n>>2]|0)+(e+f);c[i>>2]=Vl(c[i>>2]|0,30)|0;f=Vl(c[n>>2]|0,5)|0;e=f+(c[j>>2]^c[o>>2]&(c[i>>2]^c[j>>2]))+1518500249|0;f=Wl((c[h>>2]|0)+28|0)|0;c[q+28>>2]=f;c[k>>2]=(c[k>>2]|0)+(e+f);c[o>>2]=Vl(c[o>>2]|0,30)|0;f=Vl(c[k>>2]|0,5)|0;e=f+(c[i>>2]^c[n>>2]&(c[o>>2]^c[i>>2]))+1518500249|0;f=Wl((c[h>>2]|0)+32|0)|0;c[q+32>>2]=f;c[j>>2]=(c[j>>2]|0)+(e+f);c[n>>2]=Vl(c[n>>2]|0,30)|0;f=Vl(c[j>>2]|0,5)|0;e=f+(c[o>>2]^c[k>>2]&(c[n>>2]^c[o>>2]))+1518500249|0;f=Wl((c[h>>2]|0)+36|0)|0;c[q+36>>2]=f;c[i>>2]=(c[i>>2]|0)+(e+f);c[k>>2]=Vl(c[k>>2]|0,30)|0;f=Vl(c[i>>2]|0,5)|0;e=f+(c[n>>2]^c[j>>2]&(c[k>>2]^c[n>>2]))+1518500249|0;f=Wl((c[h>>2]|0)+40|0)|0;c[q+40>>2]=f;c[o>>2]=(c[o>>2]|0)+(e+f);c[j>>2]=Vl(c[j>>2]|0,30)|0;f=Vl(c[o>>2]|0,5)|0;e=f+(c[k>>2]^c[i>>2]&(c[j>>2]^c[k>>2]))+1518500249|0;f=Wl((c[h>>2]|0)+44|0)|0;c[q+44>>2]=f;c[n>>2]=(c[n>>2]|0)+(e+f);c[i>>2]=Vl(c[i>>2]|0,30)|0;f=Vl(c[n>>2]|0,5)|0;e=f+(c[j>>2]^c[o>>2]&(c[i>>2]^c[j>>2]))+1518500249|0;f=Wl((c[h>>2]|0)+48|0)|0;c[q+48>>2]=f;c[k>>2]=(c[k>>2]|0)+(e+f);c[o>>2]=Vl(c[o>>2]|0,30)|0;f=Vl(c[k>>2]|0,5)|0;e=f+(c[i>>2]^c[n>>2]&(c[o>>2]^c[i>>2]))+1518500249|0;f=Wl((c[h>>2]|0)+52|0)|0;c[q+52>>2]=f;c[j>>2]=(c[j>>2]|0)+(e+f);c[n>>2]=Vl(c[n>>2]|0,30)|0;f=Vl(c[j>>2]|0,5)|0;e=f+(c[o>>2]^c[k>>2]&(c[n>>2]^c[o>>2]))+1518500249|0;f=Wl((c[h>>2]|0)+56|0)|0;c[q+56>>2]=f;c[i>>2]=(c[i>>2]|0)+(e+f);c[k>>2]=Vl(c[k>>2]|0,30)|0;f=Vl(c[i>>2]|0,5)|0;e=f+(c[n>>2]^c[j>>2]&(c[k>>2]^c[n>>2]))+1518500249|0;f=Wl((c[h>>2]|0)+60|0)|0;c[q+60>>2]=f;c[o>>2]=(c[o>>2]|0)+(e+f);c[j>>2]=Vl(c[j>>2]|0,30)|0;f=Vl(c[o>>2]|0,5)|0;e=f+(c[k>>2]^c[i>>2]&(c[j>>2]^c[k>>2]))+1518500249|0;c[p>>2]=c[q>>2]^c[q+8>>2]^c[q+32>>2]^c[q+52>>2];f=Vl(c[p>>2]|0,1)|0;c[q>>2]=f;c[n>>2]=(c[n>>2]|0)+(e+f);c[i>>2]=Vl(c[i>>2]|0,30)|0;f=Vl(c[n>>2]|0,5)|0;e=f+(c[j>>2]^c[o>>2]&(c[i>>2]^c[j>>2]))+1518500249|0;c[p>>2]=c[q+4>>2]^c[q+12>>2]^c[q+36>>2]^c[q+56>>2];f=Vl(c[p>>2]|0,1)|0;c[q+4>>2]=f;c[k>>2]=(c[k>>2]|0)+(e+f);c[o>>2]=Vl(c[o>>2]|0,30)|0;f=Vl(c[k>>2]|0,5)|0;e=f+(c[i>>2]^c[n>>2]&(c[o>>2]^c[i>>2]))+1518500249|0;c[p>>2]=c[q+8>>2]^c[q+16>>2]^c[q+40>>2]^c[q+60>>2];f=Vl(c[p>>2]|0,1)|0;c[q+8>>2]=f;c[j>>2]=(c[j>>2]|0)+(e+f);c[n>>2]=Vl(c[n>>2]|0,30)|0;f=Vl(c[j>>2]|0,5)|0;e=f+(c[o>>2]^c[k>>2]&(c[n>>2]^c[o>>2]))+1518500249|0;c[p>>2]=c[q+12>>2]^c[q+20>>2]^c[q+44>>2]^c[q>>2];f=Vl(c[p>>2]|0,1)|0;c[q+12>>2]=f;c[i>>2]=(c[i>>2]|0)+(e+f);c[k>>2]=Vl(c[k>>2]|0,30)|0;f=Vl(c[i>>2]|0,5)|0;e=f+(c[j>>2]^c[k>>2]^c[n>>2])+1859775393|0;c[p>>2]=c[q+16>>2]^c[q+24>>2]^c[q+48>>2]^c[q+4>>2];f=Vl(c[p>>2]|0,1)|0;c[q+16>>2]=f;c[o>>2]=(c[o>>2]|0)+(e+f);c[j>>2]=Vl(c[j>>2]|0,30)|0;f=Vl(c[o>>2]|0,5)|0;e=f+(c[i>>2]^c[j>>2]^c[k>>2])+1859775393|0;c[p>>2]=c[q+20>>2]^c[q+28>>2]^c[q+52>>2]^c[q+8>>2];f=Vl(c[p>>2]|0,1)|0;c[q+20>>2]=f;c[n>>2]=(c[n>>2]|0)+(e+f);c[i>>2]=Vl(c[i>>2]|0,30)|0;f=Vl(c[n>>2]|0,5)|0;e=f+(c[o>>2]^c[i>>2]^c[j>>2])+1859775393|0;c[p>>2]=c[q+24>>2]^c[q+32>>2]^c[q+56>>2]^c[q+12>>2];f=Vl(c[p>>2]|0,1)|0;c[q+24>>2]=f;c[k>>2]=(c[k>>2]|0)+(e+f);c[o>>2]=Vl(c[o>>2]|0,30)|0;f=Vl(c[k>>2]|0,5)|0;e=f+(c[n>>2]^c[o>>2]^c[i>>2])+1859775393|0;c[p>>2]=c[q+28>>2]^c[q+36>>2]^c[q+60>>2]^c[q+16>>2];f=Vl(c[p>>2]|0,1)|0;c[q+28>>2]=f;c[j>>2]=(c[j>>2]|0)+(e+f);c[n>>2]=Vl(c[n>>2]|0,30)|0;f=Vl(c[j>>2]|0,5)|0;e=f+(c[k>>2]^c[n>>2]^c[o>>2])+1859775393|0;c[p>>2]=c[q+32>>2]^c[q+40>>2]^c[q>>2]^c[q+20>>2];f=Vl(c[p>>2]|0,1)|0;c[q+32>>2]=f;c[i>>2]=(c[i>>2]|0)+(e+f);c[k>>2]=Vl(c[k>>2]|0,30)|0;f=Vl(c[i>>2]|0,5)|0;e=f+(c[j>>2]^c[k>>2]^c[n>>2])+1859775393|0;c[p>>2]=c[q+36>>2]^c[q+44>>2]^c[q+4>>2]^c[q+24>>2];f=Vl(c[p>>2]|0,1)|0;c[q+36>>2]=f;c[o>>2]=(c[o>>2]|0)+(e+f);c[j>>2]=Vl(c[j>>2]|0,30)|0;f=Vl(c[o>>2]|0,5)|0;e=f+(c[i>>2]^c[j>>2]^c[k>>2])+1859775393|0;c[p>>2]=c[q+40>>2]^c[q+48>>2]^c[q+8>>2]^c[q+28>>2];f=Vl(c[p>>2]|0,1)|0;c[q+40>>2]=f;c[n>>2]=(c[n>>2]|0)+(e+f);c[i>>2]=Vl(c[i>>2]|0,30)|0;f=Vl(c[n>>2]|0,5)|0;e=f+(c[o>>2]^c[i>>2]^c[j>>2])+1859775393|0;c[p>>2]=c[q+44>>2]^c[q+52>>2]^c[q+12>>2]^c[q+32>>2];f=Vl(c[p>>2]|0,1)|0;c[q+44>>2]=f;c[k>>2]=(c[k>>2]|0)+(e+f);c[o>>2]=Vl(c[o>>2]|0,30)|0;f=Vl(c[k>>2]|0,5)|0;e=f+(c[n>>2]^c[o>>2]^c[i>>2])+1859775393|0;c[p>>2]=c[q+48>>2]^c[q+56>>2]^c[q+16>>2]^c[q+36>>2];f=Vl(c[p>>2]|0,1)|0;c[q+48>>2]=f;c[j>>2]=(c[j>>2]|0)+(e+f);c[n>>2]=Vl(c[n>>2]|0,30)|0;f=Vl(c[j>>2]|0,5)|0;e=f+(c[k>>2]^c[n>>2]^c[o>>2])+1859775393|0;c[p>>2]=c[q+52>>2]^c[q+60>>2]^c[q+20>>2]^c[q+40>>2];f=Vl(c[p>>2]|0,1)|0;c[q+52>>2]=f;c[i>>2]=(c[i>>2]|0)+(e+f);c[k>>2]=Vl(c[k>>2]|0,30)|0;f=Vl(c[i>>2]|0,5)|0;e=f+(c[j>>2]^c[k>>2]^c[n>>2])+1859775393|0;c[p>>2]=c[q+56>>2]^c[q>>2]^c[q+24>>2]^c[q+44>>2];f=Vl(c[p>>2]|0,1)|0;c[q+56>>2]=f;c[o>>2]=(c[o>>2]|0)+(e+f);c[j>>2]=Vl(c[j>>2]|0,30)|0;f=Vl(c[o>>2]|0,5)|0;e=f+(c[i>>2]^c[j>>2]^c[k>>2])+1859775393|0;c[p>>2]=c[q+60>>2]^c[q+4>>2]^c[q+28>>2]^c[q+48>>2];f=Vl(c[p>>2]|0,1)|0;c[q+60>>2]=f;c[n>>2]=(c[n>>2]|0)+(e+f);c[i>>2]=Vl(c[i>>2]|0,30)|0;f=Vl(c[n>>2]|0,5)|0;e=f+(c[o>>2]^c[i>>2]^c[j>>2])+1859775393|0;c[p>>2]=c[q>>2]^c[q+8>>2]^c[q+32>>2]^c[q+52>>2];f=Vl(c[p>>2]|0,1)|0;c[q>>2]=f;c[k>>2]=(c[k>>2]|0)+(e+f);c[o>>2]=Vl(c[o>>2]|0,30)|0;f=Vl(c[k>>2]|0,5)|0;e=f+(c[n>>2]^c[o>>2]^c[i>>2])+1859775393|0;c[p>>2]=c[q+4>>2]^c[q+12>>2]^c[q+36>>2]^c[q+56>>2];f=Vl(c[p>>2]|0,1)|0;c[q+4>>2]=f;c[j>>2]=(c[j>>2]|0)+(e+f);c[n>>2]=Vl(c[n>>2]|0,30)|0;f=Vl(c[j>>2]|0,5)|0;e=f+(c[k>>2]^c[n>>2]^c[o>>2])+1859775393|0;c[p>>2]=c[q+8>>2]^c[q+16>>2]^c[q+40>>2]^c[q+60>>2];f=Vl(c[p>>2]|0,1)|0;c[q+8>>2]=f;c[i>>2]=(c[i>>2]|0)+(e+f);c[k>>2]=Vl(c[k>>2]|0,30)|0;f=Vl(c[i>>2]|0,5)|0;e=f+(c[j>>2]^c[k>>2]^c[n>>2])+1859775393|0;c[p>>2]=c[q+12>>2]^c[q+20>>2]^c[q+44>>2]^c[q>>2];f=Vl(c[p>>2]|0,1)|0;c[q+12>>2]=f;c[o>>2]=(c[o>>2]|0)+(e+f);c[j>>2]=Vl(c[j>>2]|0,30)|0;f=Vl(c[o>>2]|0,5)|0;e=f+(c[i>>2]^c[j>>2]^c[k>>2])+1859775393|0;c[p>>2]=c[q+16>>2]^c[q+24>>2]^c[q+48>>2]^c[q+4>>2];f=Vl(c[p>>2]|0,1)|0;c[q+16>>2]=f;c[n>>2]=(c[n>>2]|0)+(e+f);c[i>>2]=Vl(c[i>>2]|0,30)|0;f=Vl(c[n>>2]|0,5)|0;e=f+(c[o>>2]^c[i>>2]^c[j>>2])+1859775393|0;c[p>>2]=c[q+20>>2]^c[q+28>>2]^c[q+52>>2]^c[q+8>>2];f=Vl(c[p>>2]|0,1)|0;c[q+20>>2]=f;c[k>>2]=(c[k>>2]|0)+(e+f);c[o>>2]=Vl(c[o>>2]|0,30)|0;f=Vl(c[k>>2]|0,5)|0;e=f+(c[n>>2]^c[o>>2]^c[i>>2])+1859775393|0;c[p>>2]=c[q+24>>2]^c[q+32>>2]^c[q+56>>2]^c[q+12>>2];f=Vl(c[p>>2]|0,1)|0;c[q+24>>2]=f;c[j>>2]=(c[j>>2]|0)+(e+f);c[n>>2]=Vl(c[n>>2]|0,30)|0;f=Vl(c[j>>2]|0,5)|0;e=f+(c[k>>2]^c[n>>2]^c[o>>2])+1859775393|0;c[p>>2]=c[q+28>>2]^c[q+36>>2]^c[q+60>>2]^c[q+16>>2];f=Vl(c[p>>2]|0,1)|0;c[q+28>>2]=f;c[i>>2]=(c[i>>2]|0)+(e+f);c[k>>2]=Vl(c[k>>2]|0,30)|0;f=Vl(c[i>>2]|0,5)|0;e=f+(c[j>>2]&c[k>>2]|c[n>>2]&(c[j>>2]|c[k>>2]))+-1894007588|0;c[p>>2]=c[q+32>>2]^c[q+40>>2]^c[q>>2]^c[q+20>>2];f=Vl(c[p>>2]|0,1)|0;c[q+32>>2]=f;c[o>>2]=(c[o>>2]|0)+(e+f);c[j>>2]=Vl(c[j>>2]|0,30)|0;f=Vl(c[o>>2]|0,5)|0;e=f+(c[i>>2]&c[j>>2]|c[k>>2]&(c[i>>2]|c[j>>2]))+-1894007588|0;c[p>>2]=c[q+36>>2]^c[q+44>>2]^c[q+4>>2]^c[q+24>>2];f=Vl(c[p>>2]|0,1)|0;c[q+36>>2]=f;c[n>>2]=(c[n>>2]|0)+(e+f);c[i>>2]=Vl(c[i>>2]|0,30)|0;f=Vl(c[n>>2]|0,5)|0;e=f+(c[o>>2]&c[i>>2]|c[j>>2]&(c[o>>2]|c[i>>2]))+-1894007588|0;c[p>>2]=c[q+40>>2]^c[q+48>>2]^c[q+8>>2]^c[q+28>>2];f=Vl(c[p>>2]|0,1)|0;c[q+40>>2]=f;c[k>>2]=(c[k>>2]|0)+(e+f);c[o>>2]=Vl(c[o>>2]|0,30)|0;f=Vl(c[k>>2]|0,5)|0;e=f+(c[n>>2]&c[o>>2]|c[i>>2]&(c[n>>2]|c[o>>2]))+-1894007588|0;c[p>>2]=c[q+44>>2]^c[q+52>>2]^c[q+12>>2]^c[q+32>>2];f=Vl(c[p>>2]|0,1)|0;c[q+44>>2]=f;c[j>>2]=(c[j>>2]|0)+(e+f);c[n>>2]=Vl(c[n>>2]|0,30)|0;f=Vl(c[j>>2]|0,5)|0;e=f+(c[k>>2]&c[n>>2]|c[o>>2]&(c[k>>2]|c[n>>2]))+-1894007588|0;c[p>>2]=c[q+48>>2]^c[q+56>>2]^c[q+16>>2]^c[q+36>>2];f=Vl(c[p>>2]|0,1)|0;c[q+48>>2]=f;c[i>>2]=(c[i>>2]|0)+(e+f);c[k>>2]=Vl(c[k>>2]|0,30)|0;f=Vl(c[i>>2]|0,5)|0;e=f+(c[j>>2]&c[k>>2]|c[n>>2]&(c[j>>2]|c[k>>2]))+-1894007588|0;c[p>>2]=c[q+52>>2]^c[q+60>>2]^c[q+20>>2]^c[q+40>>2];f=Vl(c[p>>2]|0,1)|0;c[q+52>>2]=f;c[o>>2]=(c[o>>2]|0)+(e+f);c[j>>2]=Vl(c[j>>2]|0,30)|0;f=Vl(c[o>>2]|0,5)|0;e=f+(c[i>>2]&c[j>>2]|c[k>>2]&(c[i>>2]|c[j>>2]))+-1894007588|0;c[p>>2]=c[q+56>>2]^c[q>>2]^c[q+24>>2]^c[q+44>>2];f=Vl(c[p>>2]|0,1)|0;c[q+56>>2]=f;c[n>>2]=(c[n>>2]|0)+(e+f);c[i>>2]=Vl(c[i>>2]|0,30)|0;f=Vl(c[n>>2]|0,5)|0;e=f+(c[o>>2]&c[i>>2]|c[j>>2]&(c[o>>2]|c[i>>2]))+-1894007588|0;c[p>>2]=c[q+60>>2]^c[q+4>>2]^c[q+28>>2]^c[q+48>>2];f=Vl(c[p>>2]|0,1)|0;c[q+60>>2]=f;c[k>>2]=(c[k>>2]|0)+(e+f);c[o>>2]=Vl(c[o>>2]|0,30)|0;f=Vl(c[k>>2]|0,5)|0;e=f+(c[n>>2]&c[o>>2]|c[i>>2]&(c[n>>2]|c[o>>2]))+-1894007588|0;c[p>>2]=c[q>>2]^c[q+8>>2]^c[q+32>>2]^c[q+52>>2];f=Vl(c[p>>2]|0,1)|0;c[q>>2]=f;c[j>>2]=(c[j>>2]|0)+(e+f);c[n>>2]=Vl(c[n>>2]|0,30)|0;f=Vl(c[j>>2]|0,5)|0;e=f+(c[k>>2]&c[n>>2]|c[o>>2]&(c[k>>2]|c[n>>2]))+-1894007588|0;c[p>>2]=c[q+4>>2]^c[q+12>>2]^c[q+36>>2]^c[q+56>>2];f=Vl(c[p>>2]|0,1)|0;c[q+4>>2]=f;c[i>>2]=(c[i>>2]|0)+(e+f);c[k>>2]=Vl(c[k>>2]|0,30)|0;f=Vl(c[i>>2]|0,5)|0;e=f+(c[j>>2]&c[k>>2]|c[n>>2]&(c[j>>2]|c[k>>2]))+-1894007588|0;c[p>>2]=c[q+8>>2]^c[q+16>>2]^c[q+40>>2]^c[q+60>>2];f=Vl(c[p>>2]|0,1)|0;c[q+8>>2]=f;c[o>>2]=(c[o>>2]|0)+(e+f);c[j>>2]=Vl(c[j>>2]|0,30)|0;f=Vl(c[o>>2]|0,5)|0;e=f+(c[i>>2]&c[j>>2]|c[k>>2]&(c[i>>2]|c[j>>2]))+-1894007588|0;c[p>>2]=c[q+12>>2]^c[q+20>>2]^c[q+44>>2]^c[q>>2];f=Vl(c[p>>2]|0,1)|0;c[q+12>>2]=f;c[n>>2]=(c[n>>2]|0)+(e+f);c[i>>2]=Vl(c[i>>2]|0,30)|0;f=Vl(c[n>>2]|0,5)|0;e=f+(c[o>>2]&c[i>>2]|c[j>>2]&(c[o>>2]|c[i>>2]))+-1894007588|0;c[p>>2]=c[q+16>>2]^c[q+24>>2]^c[q+48>>2]^c[q+4>>2];f=Vl(c[p>>2]|0,1)|0;c[q+16>>2]=f;c[k>>2]=(c[k>>2]|0)+(e+f);c[o>>2]=Vl(c[o>>2]|0,30)|0;f=Vl(c[k>>2]|0,5)|0;e=f+(c[n>>2]&c[o>>2]|c[i>>2]&(c[n>>2]|c[o>>2]))+-1894007588|0;c[p>>2]=c[q+20>>2]^c[q+28>>2]^c[q+52>>2]^c[q+8>>2];f=Vl(c[p>>2]|0,1)|0;c[q+20>>2]=f;c[j>>2]=(c[j>>2]|0)+(e+f);c[n>>2]=Vl(c[n>>2]|0,30)|0;f=Vl(c[j>>2]|0,5)|0;e=f+(c[k>>2]&c[n>>2]|c[o>>2]&(c[k>>2]|c[n>>2]))+-1894007588|0;c[p>>2]=c[q+24>>2]^c[q+32>>2]^c[q+56>>2]^c[q+12>>2];f=Vl(c[p>>2]|0,1)|0;c[q+24>>2]=f;c[i>>2]=(c[i>>2]|0)+(e+f);c[k>>2]=Vl(c[k>>2]|0,30)|0;f=Vl(c[i>>2]|0,5)|0;e=f+(c[j>>2]&c[k>>2]|c[n>>2]&(c[j>>2]|c[k>>2]))+-1894007588|0;c[p>>2]=c[q+28>>2]^c[q+36>>2]^c[q+60>>2]^c[q+16>>2];f=Vl(c[p>>2]|0,1)|0;c[q+28>>2]=f;c[o>>2]=(c[o>>2]|0)+(e+f);c[j>>2]=Vl(c[j>>2]|0,30)|0;f=Vl(c[o>>2]|0,5)|0;e=f+(c[i>>2]&c[j>>2]|c[k>>2]&(c[i>>2]|c[j>>2]))+-1894007588|0;c[p>>2]=c[q+32>>2]^c[q+40>>2]^c[q>>2]^c[q+20>>2];f=Vl(c[p>>2]|0,1)|0;c[q+32>>2]=f;c[n>>2]=(c[n>>2]|0)+(e+f);c[i>>2]=Vl(c[i>>2]|0,30)|0;f=Vl(c[n>>2]|0,5)|0;e=f+(c[o>>2]&c[i>>2]|c[j>>2]&(c[o>>2]|c[i>>2]))+-1894007588|0;c[p>>2]=c[q+36>>2]^c[q+44>>2]^c[q+4>>2]^c[q+24>>2];f=Vl(c[p>>2]|0,1)|0;c[q+36>>2]=f;c[k>>2]=(c[k>>2]|0)+(e+f);c[o>>2]=Vl(c[o>>2]|0,30)|0;f=Vl(c[k>>2]|0,5)|0;e=f+(c[n>>2]&c[o>>2]|c[i>>2]&(c[n>>2]|c[o>>2]))+-1894007588|0;c[p>>2]=c[q+40>>2]^c[q+48>>2]^c[q+8>>2]^c[q+28>>2];f=Vl(c[p>>2]|0,1)|0;c[q+40>>2]=f;c[j>>2]=(c[j>>2]|0)+(e+f);c[n>>2]=Vl(c[n>>2]|0,30)|0;f=Vl(c[j>>2]|0,5)|0;e=f+(c[k>>2]&c[n>>2]|c[o>>2]&(c[k>>2]|c[n>>2]))+-1894007588|0;c[p>>2]=c[q+44>>2]^c[q+52>>2]^c[q+12>>2]^c[q+32>>2];f=Vl(c[p>>2]|0,1)|0;c[q+44>>2]=f;c[i>>2]=(c[i>>2]|0)+(e+f);c[k>>2]=Vl(c[k>>2]|0,30)|0;f=Vl(c[i>>2]|0,5)|0;e=f+(c[j>>2]^c[k>>2]^c[n>>2])+-899497514|0;c[p>>2]=c[q+48>>2]^c[q+56>>2]^c[q+16>>2]^c[q+36>>2];f=Vl(c[p>>2]|0,1)|0;c[q+48>>2]=f;c[o>>2]=(c[o>>2]|0)+(e+f);c[j>>2]=Vl(c[j>>2]|0,30)|0;f=Vl(c[o>>2]|0,5)|0;e=f+(c[i>>2]^c[j>>2]^c[k>>2])+-899497514|0;c[p>>2]=c[q+52>>2]^c[q+60>>2]^c[q+20>>2]^c[q+40>>2];f=Vl(c[p>>2]|0,1)|0;c[q+52>>2]=f;c[n>>2]=(c[n>>2]|0)+(e+f);c[i>>2]=Vl(c[i>>2]|0,30)|0;f=Vl(c[n>>2]|0,5)|0;e=f+(c[o>>2]^c[i>>2]^c[j>>2])+-899497514|0;c[p>>2]=c[q+56>>2]^c[q>>2]^c[q+24>>2]^c[q+44>>2];f=Vl(c[p>>2]|0,1)|0;c[q+56>>2]=f;c[k>>2]=(c[k>>2]|0)+(e+f);c[o>>2]=Vl(c[o>>2]|0,30)|0;f=Vl(c[k>>2]|0,5)|0;e=f+(c[n>>2]^c[o>>2]^c[i>>2])+-899497514|0;c[p>>2]=c[q+60>>2]^c[q+4>>2]^c[q+28>>2]^c[q+48>>2];f=Vl(c[p>>2]|0,1)|0;c[q+60>>2]=f;c[j>>2]=(c[j>>2]|0)+(e+f);c[n>>2]=Vl(c[n>>2]|0,30)|0;f=Vl(c[j>>2]|0,5)|0;e=f+(c[k>>2]^c[n>>2]^c[o>>2])+-899497514|0;c[p>>2]=c[q>>2]^c[q+8>>2]^c[q+32>>2]^c[q+52>>2];f=Vl(c[p>>2]|0,1)|0;c[q>>2]=f;c[i>>2]=(c[i>>2]|0)+(e+f);c[k>>2]=Vl(c[k>>2]|0,30)|0;f=Vl(c[i>>2]|0,5)|0;e=f+(c[j>>2]^c[k>>2]^c[n>>2])+-899497514|0;c[p>>2]=c[q+4>>2]^c[q+12>>2]^c[q+36>>2]^c[q+56>>2];f=Vl(c[p>>2]|0,1)|0;c[q+4>>2]=f;c[o>>2]=(c[o>>2]|0)+(e+f);c[j>>2]=Vl(c[j>>2]|0,30)|0;f=Vl(c[o>>2]|0,5)|0;e=f+(c[i>>2]^c[j>>2]^c[k>>2])+-899497514|0;c[p>>2]=c[q+8>>2]^c[q+16>>2]^c[q+40>>2]^c[q+60>>2];f=Vl(c[p>>2]|0,1)|0;c[q+8>>2]=f;c[n>>2]=(c[n>>2]|0)+(e+f);c[i>>2]=Vl(c[i>>2]|0,30)|0;f=Vl(c[n>>2]|0,5)|0;e=f+(c[o>>2]^c[i>>2]^c[j>>2])+-899497514|0;c[p>>2]=c[q+12>>2]^c[q+20>>2]^c[q+44>>2]^c[q>>2];f=Vl(c[p>>2]|0,1)|0;c[q+12>>2]=f;c[k>>2]=(c[k>>2]|0)+(e+f);c[o>>2]=Vl(c[o>>2]|0,30)|0;f=Vl(c[k>>2]|0,5)|0;e=f+(c[n>>2]^c[o>>2]^c[i>>2])+-899497514|0;c[p>>2]=c[q+16>>2]^c[q+24>>2]^c[q+48>>2]^c[q+4>>2];f=Vl(c[p>>2]|0,1)|0;c[q+16>>2]=f;c[j>>2]=(c[j>>2]|0)+(e+f);c[n>>2]=Vl(c[n>>2]|0,30)|0;f=Vl(c[j>>2]|0,5)|0;e=f+(c[k>>2]^c[n>>2]^c[o>>2])+-899497514|0;c[p>>2]=c[q+20>>2]^c[q+28>>2]^c[q+52>>2]^c[q+8>>2];f=Vl(c[p>>2]|0,1)|0;c[q+20>>2]=f;c[i>>2]=(c[i>>2]|0)+(e+f);c[k>>2]=Vl(c[k>>2]|0,30)|0;f=Vl(c[i>>2]|0,5)|0;e=f+(c[j>>2]^c[k>>2]^c[n>>2])+-899497514|0;c[p>>2]=c[q+24>>2]^c[q+32>>2]^c[q+56>>2]^c[q+12>>2];f=Vl(c[p>>2]|0,1)|0;c[q+24>>2]=f;c[o>>2]=(c[o>>2]|0)+(e+f);c[j>>2]=Vl(c[j>>2]|0,30)|0;f=Vl(c[o>>2]|0,5)|0;e=f+(c[i>>2]^c[j>>2]^c[k>>2])+-899497514|0;c[p>>2]=c[q+28>>2]^c[q+36>>2]^c[q+60>>2]^c[q+16>>2];f=Vl(c[p>>2]|0,1)|0;c[q+28>>2]=f;c[n>>2]=(c[n>>2]|0)+(e+f);c[i>>2]=Vl(c[i>>2]|0,30)|0;f=Vl(c[n>>2]|0,5)|0;e=f+(c[o>>2]^c[i>>2]^c[j>>2])+-899497514|0;c[p>>2]=c[q+32>>2]^c[q+40>>2]^c[q>>2]^c[q+20>>2];f=Vl(c[p>>2]|0,1)|0;c[q+32>>2]=f;c[k>>2]=(c[k>>2]|0)+(e+f);c[o>>2]=Vl(c[o>>2]|0,30)|0;f=Vl(c[k>>2]|0,5)|0;e=f+(c[n>>2]^c[o>>2]^c[i>>2])+-899497514|0;c[p>>2]=c[q+36>>2]^c[q+44>>2]^c[q+4>>2]^c[q+24>>2];f=Vl(c[p>>2]|0,1)|0;c[q+36>>2]=f;c[j>>2]=(c[j>>2]|0)+(e+f);c[n>>2]=Vl(c[n>>2]|0,30)|0;f=Vl(c[j>>2]|0,5)|0;e=f+(c[k>>2]^c[n>>2]^c[o>>2])+-899497514|0;c[p>>2]=c[q+40>>2]^c[q+48>>2]^c[q+8>>2]^c[q+28>>2];f=Vl(c[p>>2]|0,1)|0;c[q+40>>2]=f;c[i>>2]=(c[i>>2]|0)+(e+f);c[k>>2]=Vl(c[k>>2]|0,30)|0;f=Vl(c[i>>2]|0,5)|0;e=f+(c[j>>2]^c[k>>2]^c[n>>2])+-899497514|0;c[p>>2]=c[q+44>>2]^c[q+52>>2]^c[q+12>>2]^c[q+32>>2];f=Vl(c[p>>2]|0,1)|0;c[q+44>>2]=f;c[o>>2]=(c[o>>2]|0)+(e+f);c[j>>2]=Vl(c[j>>2]|0,30)|0;f=Vl(c[o>>2]|0,5)|0;e=f+(c[i>>2]^c[j>>2]^c[k>>2])+-899497514|0;c[p>>2]=c[q+48>>2]^c[q+56>>2]^c[q+16>>2]^c[q+36>>2];f=Vl(c[p>>2]|0,1)|0;c[q+48>>2]=f;c[n>>2]=(c[n>>2]|0)+(e+f);c[i>>2]=Vl(c[i>>2]|0,30)|0;f=Vl(c[n>>2]|0,5)|0;e=f+(c[o>>2]^c[i>>2]^c[j>>2])+-899497514|0;c[p>>2]=c[q+52>>2]^c[q+60>>2]^c[q+20>>2]^c[q+40>>2];f=Vl(c[p>>2]|0,1)|0;c[q+52>>2]=f;c[k>>2]=(c[k>>2]|0)+(e+f);c[o>>2]=Vl(c[o>>2]|0,30)|0;f=Vl(c[k>>2]|0,5)|0;e=f+(c[n>>2]^c[o>>2]^c[i>>2])+-899497514|0;c[p>>2]=c[q+56>>2]^c[q>>2]^c[q+24>>2]^c[q+44>>2];f=Vl(c[p>>2]|0,1)|0;c[q+56>>2]=f;c[j>>2]=(c[j>>2]|0)+(e+f);c[n>>2]=Vl(c[n>>2]|0,30)|0;f=Vl(c[j>>2]|0,5)|0;e=f+(c[k>>2]^c[n>>2]^c[o>>2])+-899497514|0;c[p>>2]=c[q+60>>2]^c[q+4>>2]^c[q+28>>2]^c[q+48>>2];f=Vl(c[p>>2]|0,1)|0;c[q+60>>2]=f;c[i>>2]=(c[i>>2]|0)+(e+f);c[k>>2]=Vl(c[k>>2]|0,30)|0;f=(c[g>>2]|0)+160|0;c[f>>2]=(c[f>>2]|0)+(c[i>>2]|0);i=(c[g>>2]|0)+164|0;c[i>>2]=(c[i>>2]|0)+(c[j>>2]|0);j=(c[g>>2]|0)+168|0;c[j>>2]=(c[j>>2]|0)+(c[k>>2]|0);k=(c[g>>2]|0)+172|0;c[k>>2]=(c[k>>2]|0)+(c[n>>2]|0);n=(c[g>>2]|0)+176|0;c[n>>2]=(c[n>>2]|0)+(c[o>>2]|0);l=d;return 104}function Vl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;l=d;return c[e>>2]<<(c[f>>2]&31)|(c[e>>2]|0)>>>(32-(c[f>>2]|0)&31)|0}function Wl(a){a=a|0;var b=0,e=0,f=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=b+4|0;f=b;c[e>>2]=a;c[f>>2]=c[e>>2];l=b;return (d[c[f>>2]>>0]|0)<<24|(d[(c[f>>2]|0)+1>>0]|0)<<16|(d[(c[f>>2]|0)+2>>0]|0)<<8|(d[(c[f>>2]|0)+3>>0]|0)|0}function Xl(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+208|0;if((l|0)>=(m|0))$(208);g=f+192|0;h=f+188|0;i=f+184|0;j=f;c[g>>2]=b;c[h>>2]=d;c[i>>2]=e;Nl(j,0);Nr(j,c[h>>2]|0,c[i>>2]|0);Ol(j);i=c[g>>2]|0;g=j;j=i+20|0;do{a[i>>0]=a[g>>0]|0;i=i+1|0;g=g+1|0}while((i|0)<(j|0));l=f;return}function Yl(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+208|0;if((l|0)>=(m|0))$(208);g=f+192|0;h=f+188|0;i=f+184|0;j=f;c[g>>2]=b;c[h>>2]=d;c[i>>2]=e;Nl(j,0);while(1){if((c[i>>2]|0)<=0)break;Nr(j,(c[(c[h>>2]|0)+12>>2]|0)+(c[(c[h>>2]|0)+4>>2]|0)|0,c[(c[h>>2]|0)+8>>2]|0);c[h>>2]=(c[h>>2]|0)+16;c[i>>2]=(c[i>>2]|0)+-1}Ol(j);i=c[g>>2]|0;g=j;j=i+20|0;do{a[i>>0]=a[g>>0]|0;i=i+1|0;g=g+1|0}while((i|0)<(j|0));l=f;return}function Zl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+12|0;f=d+4|0;c[e>>2]=a;c[d+8>>2]=b;c[f>>2]=c[e>>2];c[d>>2]=pg()|0;c[(c[f>>2]|0)+160>>2]=-1056596264;c[(c[f>>2]|0)+164>>2]=914150663;c[(c[f>>2]|0)+168>>2]=812702999;c[(c[f>>2]|0)+172>>2]=-150054599;c[(c[f>>2]|0)+176>>2]=-4191439;c[(c[f>>2]|0)+180>>2]=1750603025;c[(c[f>>2]|0)+184>>2]=1694076839;c[(c[f>>2]|0)+188>>2]=-1090891868;e=(c[f>>2]|0)+128|0;c[e>>2]=0;c[e+4>>2]=0;e=(c[f>>2]|0)+136|0;c[e>>2]=0;c[e+4>>2]=0;c[(c[f>>2]|0)+144>>2]=0;c[(c[f>>2]|0)+148>>2]=64;c[(c[f>>2]|0)+152>>2]=33;l=d;return}function _l(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+28|0;f=d+24|0;g=d+20|0;h=d+16|0;i=d+12|0;j=d+8|0;k=d+4|0;n=d;c[e>>2]=b;c[f>>2]=c[e>>2];Nr(c[f>>2]|0,0,0);c[g>>2]=c[(c[f>>2]|0)+128>>2];c[h>>2]=c[(c[f>>2]|0)+128+4>>2];c[j>>2]=c[g>>2]<<6;c[i>>2]=c[h>>2]<<6|(c[g>>2]|0)>>>26;c[g>>2]=c[j>>2];h=(c[j>>2]|0)+(c[(c[f>>2]|0)+144>>2]|0)|0;c[j>>2]=h;if(h>>>0<(c[g>>2]|0)>>>0)c[i>>2]=(c[i>>2]|0)+1;c[g>>2]=c[j>>2];c[j>>2]=c[j>>2]<<3;c[i>>2]=c[i>>2]<<3;c[i>>2]=c[i>>2]|(c[g>>2]|0)>>>29;g=(c[(c[f>>2]|0)+144>>2]|0)<56;h=(c[f>>2]|0)+144|0;e=c[h>>2]|0;c[h>>2]=e+1;a[(c[f>>2]|0)+e>>0]=-128;a:do if(g)while(1){if((c[(c[f>>2]|0)+144>>2]|0)>=56)break a;e=(c[f>>2]|0)+144|0;h=c[e>>2]|0;c[e>>2]=h+1;a[(c[f>>2]|0)+h>>0]=0}else{while(1){o=c[f>>2]|0;if((c[(c[f>>2]|0)+144>>2]|0)>=64)break;h=o+144|0;e=c[h>>2]|0;c[h>>2]=e+1;a[(c[f>>2]|0)+e>>0]=0}Nr(o,0,0);e=c[f>>2]|0;h=e+56|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(h|0))}while(0);dm((c[f>>2]|0)+56|0,c[i>>2]|0);dm((c[f>>2]|0)+60|0,c[j>>2]|0);c[n>>2]=em(c[f>>2]|0,c[f>>2]|0,1)|0;bf(c[n>>2]|0);cf();c[k>>2]=c[f>>2];dm(c[k>>2]|0,c[(c[f>>2]|0)+160>>2]|0);c[k>>2]=(c[k>>2]|0)+4;dm(c[k>>2]|0,c[(c[f>>2]|0)+164>>2]|0);c[k>>2]=(c[k>>2]|0)+4;dm(c[k>>2]|0,c[(c[f>>2]|0)+168>>2]|0);c[k>>2]=(c[k>>2]|0)+4;dm(c[k>>2]|0,c[(c[f>>2]|0)+172>>2]|0);c[k>>2]=(c[k>>2]|0)+4;dm(c[k>>2]|0,c[(c[f>>2]|0)+176>>2]|0);c[k>>2]=(c[k>>2]|0)+4;dm(c[k>>2]|0,c[(c[f>>2]|0)+180>>2]|0);c[k>>2]=(c[k>>2]|0)+4;dm(c[k>>2]|0,c[(c[f>>2]|0)+184>>2]|0);c[k>>2]=(c[k>>2]|0)+4;dm(c[k>>2]|0,c[(c[f>>2]|0)+188>>2]|0);c[k>>2]=(c[k>>2]|0)+4;l=d;return}function $l(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=c[d>>2];l=b;return c[e>>2]|0}function am(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;switch(c[f>>2]|0){case 11:{c[i>>2]=bm(c[g>>2]|0,c[h>>2]|0)|0;break}case 8:{c[i>>2]=cm(c[g>>2]|0,c[h>>2]|0)|0;break}default:c[i>>2]=5}l=e;return c[i>>2]|0}function bm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+16|0;f=d+12|0;g=d+8|0;h=d+4|0;i=d;c[f>>2]=a;c[g>>2]=b;c[h>>2]=42861;c[i>>2]=Mr(11,0,42874,3,42654,28)|0;do if(!(c[i>>2]|0)){if(c[f>>2]|0){c[h>>2]=42943;c[i>>2]=Mr(11,0,42531,56,42683,28)|0;if(c[i>>2]|0)break;c[h>>2]=43133;c[i>>2]=Mr(11,1,0,0,42712,28)|0;if(c[i>>2]|0)break}c[e>>2]=0;j=c[e>>2]|0;l=d;return j|0}while(0);if(c[g>>2]|0)Eb[c[g>>2]&1](43214,11,c[h>>2]|0,c[i>>2]|0);c[e>>2]=50;j=c[e>>2]|0;l=d;return j|0}function cm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+16|0;f=d+12|0;g=d+8|0;h=d+4|0;i=d;c[f>>2]=a;c[g>>2]=b;c[h>>2]=42861;c[i>>2]=Mr(8,0,42874,3,42498,32)|0;do if(!(c[i>>2]|0)){if(c[f>>2]|0){c[h>>2]=42943;c[i>>2]=Mr(8,0,42531,56,42588,32)|0;if(c[i>>2]|0)break;c[h>>2]=43133;c[i>>2]=Mr(8,1,0,0,42621,32)|0;if(c[i>>2]|0)break}c[e>>2]=0;j=c[e>>2]|0;l=d;return j|0}while(0);if(c[g>>2]|0)Eb[c[g>>2]&1](43214,8,c[h>>2]|0,c[i>>2]|0);c[e>>2]=50;j=c[e>>2]|0;l=d;return j|0}function dm(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=b;c[g>>2]=d;c[h>>2]=c[f>>2];a[c[h>>2]>>0]=(c[g>>2]|0)>>>24;a[(c[h>>2]|0)+1>>0]=(c[g>>2]|0)>>>16;a[(c[h>>2]|0)+2>>0]=(c[g>>2]|0)>>>8;a[(c[h>>2]|0)+3>>0]=c[g>>2];l=e;return}function em(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;j=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[f>>2];do{c[j>>2]=fm(c[i>>2]|0,c[g>>2]|0)|0;c[g>>2]=(c[g>>2]|0)+64;f=(c[h>>2]|0)+-1|0;c[h>>2]=f}while((f|0)!=0);l=e;return c[j>>2]|0}function fm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;d=l;l=l+320|0;if((l|0)>=(m|0))$(320);e=d+312|0;f=d+308|0;g=d+304|0;h=d+300|0;i=d+296|0;j=d+292|0;k=d+288|0;n=d+284|0;o=d+280|0;p=d+276|0;q=d+272|0;r=d+268|0;s=d+264|0;t=d+8|0;u=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=c[e>>2];c[h>>2]=c[(c[g>>2]|0)+160>>2];c[i>>2]=c[(c[g>>2]|0)+164>>2];c[j>>2]=c[(c[g>>2]|0)+168>>2];c[k>>2]=c[(c[g>>2]|0)+172>>2];c[n>>2]=c[(c[g>>2]|0)+176>>2];c[o>>2]=c[(c[g>>2]|0)+180>>2];c[p>>2]=c[(c[g>>2]|0)+184>>2];c[q>>2]=c[(c[g>>2]|0)+188>>2];c[u>>2]=0;while(1){if((c[u>>2]|0)>=16)break;e=gm((c[f>>2]|0)+(c[u>>2]<<2)|0)|0;c[t+(c[u>>2]<<2)>>2]=e;c[u>>2]=(c[u>>2]|0)+1}while(1){if((c[u>>2]|0)>=64)break;f=hm(c[t+((c[u>>2]|0)-2<<2)>>2]|0,17)|0;e=f^(hm(c[t+((c[u>>2]|0)-2<<2)>>2]|0,19)|0);f=(e^(c[t+((c[u>>2]|0)-2<<2)>>2]|0)>>>10)+(c[t+((c[u>>2]|0)-7<<2)>>2]|0)|0;e=hm(c[t+((c[u>>2]|0)-15<<2)>>2]|0,7)|0;b=e^(hm(c[t+((c[u>>2]|0)-15<<2)>>2]|0,18)|0);c[t+(c[u>>2]<<2)>>2]=f+(b^(c[t+((c[u>>2]|0)-15<<2)>>2]|0)>>>3)+(c[t+((c[u>>2]|0)-16<<2)>>2]|0);c[u>>2]=(c[u>>2]|0)+1}c[u>>2]=0;while(1){if((c[u>>2]|0)>=64)break;b=c[q>>2]|0;f=b+(im(c[n>>2]|0)|0)|0;b=f+(jm(c[n>>2]|0,c[o>>2]|0,c[p>>2]|0)|0)|0;c[r>>2]=b+(c[7920+(c[u>>2]<<2)>>2]|0)+(c[t+(c[u>>2]<<2)>>2]|0);b=km(c[h>>2]|0)|0;c[s>>2]=b+(lm(c[h>>2]|0,c[i>>2]|0,c[j>>2]|0)|0);c[k>>2]=(c[k>>2]|0)+(c[r>>2]|0);c[q>>2]=(c[r>>2]|0)+(c[s>>2]|0);b=c[p>>2]|0;f=b+(im(c[k>>2]|0)|0)|0;b=f+(jm(c[k>>2]|0,c[n>>2]|0,c[o>>2]|0)|0)|0;c[r>>2]=b+(c[7920+((c[u>>2]|0)+1<<2)>>2]|0)+(c[t+((c[u>>2]|0)+1<<2)>>2]|0);b=km(c[q>>2]|0)|0;c[s>>2]=b+(lm(c[q>>2]|0,c[h>>2]|0,c[i>>2]|0)|0);c[j>>2]=(c[j>>2]|0)+(c[r>>2]|0);c[p>>2]=(c[r>>2]|0)+(c[s>>2]|0);b=c[o>>2]|0;f=b+(im(c[j>>2]|0)|0)|0;b=f+(jm(c[j>>2]|0,c[k>>2]|0,c[n>>2]|0)|0)|0;c[r>>2]=b+(c[7920+((c[u>>2]|0)+2<<2)>>2]|0)+(c[t+((c[u>>2]|0)+2<<2)>>2]|0);b=km(c[p>>2]|0)|0;c[s>>2]=b+(lm(c[p>>2]|0,c[q>>2]|0,c[h>>2]|0)|0);c[i>>2]=(c[i>>2]|0)+(c[r>>2]|0);c[o>>2]=(c[r>>2]|0)+(c[s>>2]|0);b=c[n>>2]|0;f=b+(im(c[i>>2]|0)|0)|0;b=f+(jm(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0)|0)|0;c[r>>2]=b+(c[7920+((c[u>>2]|0)+3<<2)>>2]|0)+(c[t+((c[u>>2]|0)+3<<2)>>2]|0);b=km(c[o>>2]|0)|0;c[s>>2]=b+(lm(c[o>>2]|0,c[p>>2]|0,c[q>>2]|0)|0);c[h>>2]=(c[h>>2]|0)+(c[r>>2]|0);c[n>>2]=(c[r>>2]|0)+(c[s>>2]|0);b=c[k>>2]|0;f=b+(im(c[h>>2]|0)|0)|0;b=f+(jm(c[h>>2]|0,c[i>>2]|0,c[j>>2]|0)|0)|0;c[r>>2]=b+(c[7920+((c[u>>2]|0)+4<<2)>>2]|0)+(c[t+((c[u>>2]|0)+4<<2)>>2]|0);b=km(c[n>>2]|0)|0;c[s>>2]=b+(lm(c[n>>2]|0,c[o>>2]|0,c[p>>2]|0)|0);c[q>>2]=(c[q>>2]|0)+(c[r>>2]|0);c[k>>2]=(c[r>>2]|0)+(c[s>>2]|0);b=c[j>>2]|0;f=b+(im(c[q>>2]|0)|0)|0;b=f+(jm(c[q>>2]|0,c[h>>2]|0,c[i>>2]|0)|0)|0;c[r>>2]=b+(c[7920+((c[u>>2]|0)+5<<2)>>2]|0)+(c[t+((c[u>>2]|0)+5<<2)>>2]|0);b=km(c[k>>2]|0)|0;c[s>>2]=b+(lm(c[k>>2]|0,c[n>>2]|0,c[o>>2]|0)|0);c[p>>2]=(c[p>>2]|0)+(c[r>>2]|0);c[j>>2]=(c[r>>2]|0)+(c[s>>2]|0);b=c[i>>2]|0;f=b+(im(c[p>>2]|0)|0)|0;b=f+(jm(c[p>>2]|0,c[q>>2]|0,c[h>>2]|0)|0)|0;c[r>>2]=b+(c[7920+((c[u>>2]|0)+6<<2)>>2]|0)+(c[t+((c[u>>2]|0)+6<<2)>>2]|0);b=km(c[j>>2]|0)|0;c[s>>2]=b+(lm(c[j>>2]|0,c[k>>2]|0,c[n>>2]|0)|0);c[o>>2]=(c[o>>2]|0)+(c[r>>2]|0);c[i>>2]=(c[r>>2]|0)+(c[s>>2]|0);b=c[h>>2]|0;f=b+(im(c[o>>2]|0)|0)|0;b=f+(jm(c[o>>2]|0,c[p>>2]|0,c[q>>2]|0)|0)|0;c[r>>2]=b+(c[7920+((c[u>>2]|0)+7<<2)>>2]|0)+(c[t+((c[u>>2]|0)+7<<2)>>2]|0);b=km(c[i>>2]|0)|0;c[s>>2]=b+(lm(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0)|0);c[n>>2]=(c[n>>2]|0)+(c[r>>2]|0);c[h>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[u>>2]=(c[u>>2]|0)+8}u=(c[g>>2]|0)+160|0;c[u>>2]=(c[u>>2]|0)+(c[h>>2]|0);h=(c[g>>2]|0)+164|0;c[h>>2]=(c[h>>2]|0)+(c[i>>2]|0);i=(c[g>>2]|0)+168|0;c[i>>2]=(c[i>>2]|0)+(c[j>>2]|0);j=(c[g>>2]|0)+172|0;c[j>>2]=(c[j>>2]|0)+(c[k>>2]|0);k=(c[g>>2]|0)+176|0;c[k>>2]=(c[k>>2]|0)+(c[n>>2]|0);n=(c[g>>2]|0)+180|0;c[n>>2]=(c[n>>2]|0)+(c[o>>2]|0);o=(c[g>>2]|0)+184|0;c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);p=(c[g>>2]|0)+188|0;c[p>>2]=(c[p>>2]|0)+(c[q>>2]|0);l=d;return 328}function gm(a){a=a|0;var b=0,e=0,f=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=b+4|0;f=b;c[e>>2]=a;c[f>>2]=c[e>>2];l=b;return (d[c[f>>2]>>0]|0)<<24|(d[(c[f>>2]|0)+1>>0]|0)<<16|(d[(c[f>>2]|0)+2>>0]|0)<<8|(d[(c[f>>2]|0)+3>>0]|0)|0}function hm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;l=d;return (c[e>>2]|0)>>>(c[f>>2]&31)|c[e>>2]<<(32-(c[f>>2]|0)&31)|0}function im(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=hm(c[d>>2]|0,6)|0;e=a^(hm(c[d>>2]|0,11)|0);a=e^(hm(c[d>>2]|0,25)|0);l=b;return a|0}function jm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;l=e;return c[h>>2]^c[f>>2]&(c[g>>2]^c[h>>2])|0}function km(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=hm(c[d>>2]|0,2)|0;e=a^(hm(c[d>>2]|0,13)|0);a=e^(hm(c[d>>2]|0,22)|0);l=b;return a|0}function lm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;l=e;return c[f>>2]&c[g>>2]|c[h>>2]&(c[f>>2]|c[g>>2])|0}function mm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+12|0;f=d+4|0;c[e>>2]=a;c[d+8>>2]=b;c[f>>2]=c[e>>2];c[d>>2]=pg()|0;c[(c[f>>2]|0)+160>>2]=1779033703;c[(c[f>>2]|0)+164>>2]=-1150833019;c[(c[f>>2]|0)+168>>2]=1013904242;c[(c[f>>2]|0)+172>>2]=-1521486534;c[(c[f>>2]|0)+176>>2]=1359893119;c[(c[f>>2]|0)+180>>2]=-1694144372;c[(c[f>>2]|0)+184>>2]=528734635;c[(c[f>>2]|0)+188>>2]=1541459225;e=(c[f>>2]|0)+128|0;c[e>>2]=0;c[e+4>>2]=0;e=(c[f>>2]|0)+136|0;c[e>>2]=0;c[e+4>>2]=0;c[(c[f>>2]|0)+144>>2]=0;c[(c[f>>2]|0)+148>>2]=64;c[(c[f>>2]|0)+152>>2]=33;l=d;return}function nm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+16|0;f=d+8|0;g=d+4|0;c[e>>2]=a;c[d+12>>2]=b;c[f>>2]=c[e>>2];c[g>>2]=(c[f>>2]|0)+160;c[d>>2]=pg()|0;e=c[g>>2]|0;c[e>>2]=-205731576;c[e+4>>2]=1779033703;e=(c[g>>2]|0)+8|0;c[e>>2]=-2067093701;c[e+4>>2]=-1150833019;e=(c[g>>2]|0)+16|0;c[e>>2]=-23791573;c[e+4>>2]=1013904242;e=(c[g>>2]|0)+24|0;c[e>>2]=1595750129;c[e+4>>2]=-1521486534;e=(c[g>>2]|0)+32|0;c[e>>2]=-1377402159;c[e+4>>2]=1359893119;e=(c[g>>2]|0)+40|0;c[e>>2]=725511199;c[e+4>>2]=-1694144372;e=(c[g>>2]|0)+48|0;c[e>>2]=-79577749;c[e+4>>2]=528734635;e=(c[g>>2]|0)+56|0;c[e>>2]=327033209;c[e+4>>2]=1541459225;e=(c[f>>2]|0)+128|0;c[e>>2]=0;c[e+4>>2]=0;e=(c[f>>2]|0)+136|0;c[e>>2]=0;c[e+4>>2]=0;c[(c[f>>2]|0)+144>>2]=0;c[(c[f>>2]|0)+148>>2]=128;c[(c[f>>2]|0)+152>>2]=34;l=d;return}function om(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;d=l;l=l+48|0;if((l|0)>=(m|0))$(48);e=d+44|0;f=d+40|0;g=d+36|0;h=d+24|0;i=d+16|0;j=d+8|0;k=d;n=d+32|0;c[e>>2]=b;c[f>>2]=c[e>>2];Nr(c[e>>2]|0,0,0);b=(c[f>>2]|0)+128|0;o=c[b+4>>2]|0;p=h;c[p>>2]=c[b>>2];c[p+4>>2]=o;o=(c[f>>2]|0)+136|0;p=c[o+4>>2]|0;b=i;c[b>>2]=c[o>>2];c[b+4>>2]=p;p=h;b=ix(c[p>>2]|0,c[p+4>>2]|0,7)|0;p=k;c[p>>2]=b;c[p+4>>2]=D;p=i;i=ix(c[p>>2]|0,c[p+4>>2]|0,7)|0;p=D;b=h;o=cx(c[b>>2]|0,c[b+4>>2]|0,57)|0;b=j;c[b>>2]=i|o;c[b+4>>2]=p|D;p=k;b=c[p+4>>2]|0;o=h;c[o>>2]=c[p>>2];c[o+4>>2]=b;b=c[(c[f>>2]|0)+144>>2]|0;o=k;p=Ww(c[o>>2]|0,c[o+4>>2]|0,b|0,((b|0)<0)<<31>>31|0)|0;b=D;o=k;c[o>>2]=p;c[o+4>>2]=b;o=h;i=c[o+4>>2]|0;if(b>>>0<i>>>0|((b|0)==(i|0)?p>>>0<(c[o>>2]|0)>>>0:0)){o=j;p=Ww(c[o>>2]|0,c[o+4>>2]|0,1,0)|0;o=j;c[o>>2]=p;c[o+4>>2]=D}o=k;p=c[o+4>>2]|0;i=h;c[i>>2]=c[o>>2];c[i+4>>2]=p;p=k;i=ix(c[p>>2]|0,c[p+4>>2]|0,3)|0;p=k;c[p>>2]=i;c[p+4>>2]=D;p=j;i=ix(c[p>>2]|0,c[p+4>>2]|0,3)|0;p=j;c[p>>2]=i;c[p+4>>2]=D;p=h;h=cx(c[p>>2]|0,c[p+4>>2]|0,61)|0;p=j;i=c[p+4>>2]|D;o=j;c[o>>2]=c[p>>2]|h;c[o+4>>2]=i;i=(c[(c[f>>2]|0)+144>>2]|0)<112;o=(c[f>>2]|0)+144|0;h=c[o>>2]|0;c[o>>2]=h+1;a[(c[f>>2]|0)+h>>0]=-128;a:do if(i)while(1){if((c[(c[f>>2]|0)+144>>2]|0)>=112)break a;h=(c[f>>2]|0)+144|0;o=c[h>>2]|0;c[h>>2]=o+1;a[(c[f>>2]|0)+o>>0]=0}else{while(1){if((c[(c[f>>2]|0)+144>>2]|0)>=128)break;o=(c[f>>2]|0)+144|0;h=c[o>>2]|0;c[o>>2]=h+1;a[(c[f>>2]|0)+h>>0]=0}Nr(c[e>>2]|0,0,0);h=c[f>>2]|0;o=h+112|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(o|0))}while(0);e=j;tm((c[f>>2]|0)+112|0,c[e>>2]|0,c[e+4>>2]|0);e=k;tm((c[f>>2]|0)+120|0,c[e>>2]|0,c[e+4>>2]|0);c[g>>2]=um(c[f>>2]|0,c[f>>2]|0,1)|0;bf(c[g>>2]|0);cf();c[n>>2]=c[f>>2];g=(c[f>>2]|0)+160|0;tm(c[n>>2]|0,c[g>>2]|0,c[g+4>>2]|0);c[n>>2]=(c[n>>2]|0)+8;g=(c[f>>2]|0)+160+8|0;tm(c[n>>2]|0,c[g>>2]|0,c[g+4>>2]|0);c[n>>2]=(c[n>>2]|0)+8;g=(c[f>>2]|0)+160+16|0;tm(c[n>>2]|0,c[g>>2]|0,c[g+4>>2]|0);c[n>>2]=(c[n>>2]|0)+8;g=(c[f>>2]|0)+160+24|0;tm(c[n>>2]|0,c[g>>2]|0,c[g+4>>2]|0);c[n>>2]=(c[n>>2]|0)+8;g=(c[f>>2]|0)+160+32|0;tm(c[n>>2]|0,c[g>>2]|0,c[g+4>>2]|0);c[n>>2]=(c[n>>2]|0)+8;g=(c[f>>2]|0)+160+40|0;tm(c[n>>2]|0,c[g>>2]|0,c[g+4>>2]|0);c[n>>2]=(c[n>>2]|0)+8;g=(c[f>>2]|0)+160+48|0;tm(c[n>>2]|0,c[g>>2]|0,c[g+4>>2]|0);c[n>>2]=(c[n>>2]|0)+8;g=(c[f>>2]|0)+160+56|0;tm(c[n>>2]|0,c[g>>2]|0,c[g+4>>2]|0);c[n>>2]=(c[n>>2]|0)+8;l=d;return}function pm(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=c[d>>2];l=b;return c[e>>2]|0}function qm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;switch(c[f>>2]|0){case 9:{c[i>>2]=rm(c[g>>2]|0,c[h>>2]|0)|0;break}case 10:{c[i>>2]=sm(c[g>>2]|0,c[h>>2]|0)|0;break}default:c[i>>2]=5}l=e;return c[i>>2]|0}function rm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+16|0;f=d+12|0;g=d+8|0;h=d+4|0;i=d;c[f>>2]=a;c[g>>2]=b;c[h>>2]=42861;c[i>>2]=Mr(9,0,42874,3,43221,48)|0;do if(!(c[i>>2]|0)){if(c[f>>2]|0){c[h>>2]=42943;c[i>>2]=Mr(9,0,42955,112,43270,48)|0;if(c[i>>2]|0)break;c[h>>2]=43133;c[i>>2]=Mr(9,1,0,0,43319,48)|0;if(c[i>>2]|0)break}c[e>>2]=0;j=c[e>>2]|0;l=d;return j|0}while(0);if(c[g>>2]|0)Eb[c[g>>2]&1](43214,9,c[h>>2]|0,c[i>>2]|0);c[e>>2]=50;j=c[e>>2]|0;l=d;return j|0}function sm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+16|0;f=d+12|0;g=d+8|0;h=d+4|0;i=d;c[f>>2]=a;c[g>>2]=b;c[h>>2]=42861;c[i>>2]=Mr(10,0,42874,3,42878,64)|0;do if(!(c[i>>2]|0)){if(c[f>>2]|0){c[h>>2]=42943;c[i>>2]=Mr(10,0,42955,112,43068,64)|0;if(c[i>>2]|0)break;c[h>>2]=43133;c[i>>2]=Mr(10,1,0,0,43149,64)|0;if(c[i>>2]|0)break}c[e>>2]=0;j=c[e>>2]|0;l=d;return j|0}while(0);if(c[g>>2]|0)Eb[c[g>>2]&1](43214,10,c[h>>2]|0,c[i>>2]|0);c[e>>2]=50;j=c[e>>2]|0;l=d;return j|0}function tm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f+12|0;h=f;i=f+8|0;c[g>>2]=b;b=h;c[b>>2]=d;c[b+4>>2]=e;c[i>>2]=c[g>>2];g=h;e=cx(c[g>>2]|0,c[g+4>>2]|0,56)|0;a[c[i>>2]>>0]=e;e=h;g=cx(c[e>>2]|0,c[e+4>>2]|0,48)|0;a[(c[i>>2]|0)+1>>0]=g;g=h;e=cx(c[g>>2]|0,c[g+4>>2]|0,40)|0;a[(c[i>>2]|0)+2>>0]=e;a[(c[i>>2]|0)+3>>0]=c[h+4>>2];e=h;g=cx(c[e>>2]|0,c[e+4>>2]|0,24)|0;a[(c[i>>2]|0)+4>>0]=g;g=h;e=cx(c[g>>2]|0,c[g+4>>2]|0,16)|0;a[(c[i>>2]|0)+5>>0]=e;e=h;g=cx(c[e>>2]|0,c[e+4>>2]|0,8)|0;a[(c[i>>2]|0)+6>>0]=g;a[(c[i>>2]|0)+7>>0]=c[h>>2];l=f;return}function um(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;j=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[f>>2];do{c[j>>2]=(vm((c[i>>2]|0)+160|0,c[g>>2]|0)|0)+12;c[g>>2]=(c[g>>2]|0)+128;f=(c[h>>2]|0)+-1|0;c[h>>2]=f}while((f|0)!=0);l=e;return c[j>>2]|0}function vm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;d=l;l=l+240|0;if((l|0)>=(m|0))$(240);e=d+232|0;f=d+228|0;g=d+216|0;h=d+208|0;i=d+200|0;j=d+192|0;k=d+184|0;n=d+176|0;o=d+168|0;p=d+160|0;q=d+32|0;r=d+224|0;s=d+24|0;t=d+16|0;u=d+8|0;v=d;c[e>>2]=a;c[f>>2]=b;b=c[e>>2]|0;a=c[b+4>>2]|0;w=g;c[w>>2]=c[b>>2];c[w+4>>2]=a;a=(c[e>>2]|0)+8|0;w=c[a+4>>2]|0;b=h;c[b>>2]=c[a>>2];c[b+4>>2]=w;w=(c[e>>2]|0)+16|0;b=c[w+4>>2]|0;a=i;c[a>>2]=c[w>>2];c[a+4>>2]=b;b=(c[e>>2]|0)+24|0;a=c[b+4>>2]|0;w=j;c[w>>2]=c[b>>2];c[w+4>>2]=a;a=(c[e>>2]|0)+32|0;w=c[a+4>>2]|0;b=k;c[b>>2]=c[a>>2];c[b+4>>2]=w;w=(c[e>>2]|0)+40|0;b=c[w+4>>2]|0;a=n;c[a>>2]=c[w>>2];c[a+4>>2]=b;b=(c[e>>2]|0)+48|0;a=c[b+4>>2]|0;w=o;c[w>>2]=c[b>>2];c[w+4>>2]=a;a=(c[e>>2]|0)+56|0;w=c[a+4>>2]|0;b=p;c[b>>2]=c[a>>2];c[b+4>>2]=w;c[r>>2]=0;while(1){if((c[r>>2]|0)>=16)break;w=wm((c[f>>2]|0)+(c[r>>2]<<3)|0)|0;b=q+(c[r>>2]<<3)|0;c[b>>2]=w;c[b+4>>2]=D;c[r>>2]=(c[r>>2]|0)+1}c[r>>2]=0;while(1){if((c[r>>2]|0)>=64)break;f=p;b=c[f>>2]|0;w=c[f+4>>2]|0;f=k;a=xm(c[f>>2]|0,c[f+4>>2]|0)|0;f=Ww(b|0,w|0,a|0,D|0)|0;a=D;w=k;b=n;x=o;y=ym(c[w>>2]|0,c[w+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0,c[x>>2]|0,c[x+4>>2]|0)|0;x=Ww(f|0,a|0,y|0,D|0)|0;y=72+(c[r>>2]<<3)|0;a=Ww(x|0,D|0,c[y>>2]|0,c[y+4>>2]|0)|0;y=q;x=Ww(a|0,D|0,c[y>>2]|0,c[y+4>>2]|0)|0;y=s;c[y>>2]=x;c[y+4>>2]=D;y=q+112|0;x=zm(c[y>>2]|0,c[y+4>>2]|0,19,0)|0;y=D;a=q+112|0;f=zm(c[a>>2]|0,c[a+4>>2]|0,61,0)|0;a=y^D;y=q+112|0;b=cx(c[y>>2]|0,c[y+4>>2]|0,6)|0;y=q+72|0;w=Ww(x^f^b|0,a^D|0,c[y>>2]|0,c[y+4>>2]|0)|0;y=D;a=q+8|0;b=zm(c[a>>2]|0,c[a+4>>2]|0,1,0)|0;a=D;f=q+8|0;x=zm(c[f>>2]|0,c[f+4>>2]|0,8,0)|0;f=a^D;a=q+8|0;z=cx(c[a>>2]|0,c[a+4>>2]|0,7)|0;a=Ww(w|0,y|0,b^x^z|0,f^D|0)|0;f=q;z=Ww(c[f>>2]|0,c[f+4>>2]|0,a|0,D|0)|0;a=q;c[a>>2]=z;c[a+4>>2]=D;a=g;z=Am(c[a>>2]|0,c[a+4>>2]|0)|0;a=D;f=g;x=h;b=i;y=Bm(c[f>>2]|0,c[f+4>>2]|0,c[x>>2]|0,c[x+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;b=Ww(z|0,a|0,y|0,D|0)|0;y=t;c[y>>2]=b;c[y+4>>2]=D;y=s;b=j;a=Ww(c[b>>2]|0,c[b+4>>2]|0,c[y>>2]|0,c[y+4>>2]|0)|0;y=j;c[y>>2]=a;c[y+4>>2]=D;y=s;a=t;b=Ww(c[y>>2]|0,c[y+4>>2]|0,c[a>>2]|0,c[a+4>>2]|0)|0;a=p;c[a>>2]=b;c[a+4>>2]=D;a=o;b=c[a>>2]|0;y=c[a+4>>2]|0;a=j;z=xm(c[a>>2]|0,c[a+4>>2]|0)|0;a=Ww(b|0,y|0,z|0,D|0)|0;z=D;y=j;b=k;x=n;f=ym(c[y>>2]|0,c[y+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0,c[x>>2]|0,c[x+4>>2]|0)|0;x=Ww(a|0,z|0,f|0,D|0)|0;f=72+((c[r>>2]|0)+1<<3)|0;z=Ww(x|0,D|0,c[f>>2]|0,c[f+4>>2]|0)|0;f=q+8|0;x=Ww(z|0,D|0,c[f>>2]|0,c[f+4>>2]|0)|0;f=s;c[f>>2]=x;c[f+4>>2]=D;f=q+120|0;x=zm(c[f>>2]|0,c[f+4>>2]|0,19,0)|0;f=D;z=q+120|0;a=zm(c[z>>2]|0,c[z+4>>2]|0,61,0)|0;z=f^D;f=q+120|0;b=cx(c[f>>2]|0,c[f+4>>2]|0,6)|0;f=q+80|0;y=Ww(x^a^b|0,z^D|0,c[f>>2]|0,c[f+4>>2]|0)|0;f=D;z=q+16|0;b=zm(c[z>>2]|0,c[z+4>>2]|0,1,0)|0;z=D;a=q+16|0;x=zm(c[a>>2]|0,c[a+4>>2]|0,8,0)|0;a=z^D;z=q+16|0;w=cx(c[z>>2]|0,c[z+4>>2]|0,7)|0;z=Ww(y|0,f|0,b^x^w|0,a^D|0)|0;a=q+8|0;w=a;x=Ww(c[w>>2]|0,c[w+4>>2]|0,z|0,D|0)|0;z=a;c[z>>2]=x;c[z+4>>2]=D;z=p;x=Am(c[z>>2]|0,c[z+4>>2]|0)|0;z=D;a=p;w=g;b=h;f=Bm(c[a>>2]|0,c[a+4>>2]|0,c[w>>2]|0,c[w+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;b=Ww(x|0,z|0,f|0,D|0)|0;f=t;c[f>>2]=b;c[f+4>>2]=D;f=s;b=i;z=Ww(c[b>>2]|0,c[b+4>>2]|0,c[f>>2]|0,c[f+4>>2]|0)|0;f=i;c[f>>2]=z;c[f+4>>2]=D;f=s;z=t;b=Ww(c[f>>2]|0,c[f+4>>2]|0,c[z>>2]|0,c[z+4>>2]|0)|0;z=o;c[z>>2]=b;c[z+4>>2]=D;z=n;b=c[z>>2]|0;f=c[z+4>>2]|0;z=i;x=xm(c[z>>2]|0,c[z+4>>2]|0)|0;z=Ww(b|0,f|0,x|0,D|0)|0;x=D;f=i;b=j;w=k;a=ym(c[f>>2]|0,c[f+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0,c[w>>2]|0,c[w+4>>2]|0)|0;w=Ww(z|0,x|0,a|0,D|0)|0;a=72+((c[r>>2]|0)+2<<3)|0;x=Ww(w|0,D|0,c[a>>2]|0,c[a+4>>2]|0)|0;a=q+16|0;w=Ww(x|0,D|0,c[a>>2]|0,c[a+4>>2]|0)|0;a=s;c[a>>2]=w;c[a+4>>2]=D;a=q;w=zm(c[a>>2]|0,c[a+4>>2]|0,19,0)|0;a=D;x=q;z=zm(c[x>>2]|0,c[x+4>>2]|0,61,0)|0;x=a^D;a=q;b=cx(c[a>>2]|0,c[a+4>>2]|0,6)|0;a=q+88|0;f=Ww(w^z^b|0,x^D|0,c[a>>2]|0,c[a+4>>2]|0)|0;a=D;x=q+24|0;b=zm(c[x>>2]|0,c[x+4>>2]|0,1,0)|0;x=D;z=q+24|0;w=zm(c[z>>2]|0,c[z+4>>2]|0,8,0)|0;z=x^D;x=q+24|0;y=cx(c[x>>2]|0,c[x+4>>2]|0,7)|0;x=Ww(f|0,a|0,b^w^y|0,z^D|0)|0;z=q+16|0;y=z;w=Ww(c[y>>2]|0,c[y+4>>2]|0,x|0,D|0)|0;x=z;c[x>>2]=w;c[x+4>>2]=D;x=o;w=Am(c[x>>2]|0,c[x+4>>2]|0)|0;x=D;z=o;y=p;b=g;a=Bm(c[z>>2]|0,c[z+4>>2]|0,c[y>>2]|0,c[y+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;b=Ww(w|0,x|0,a|0,D|0)|0;a=t;c[a>>2]=b;c[a+4>>2]=D;a=s;b=h;x=Ww(c[b>>2]|0,c[b+4>>2]|0,c[a>>2]|0,c[a+4>>2]|0)|0;a=h;c[a>>2]=x;c[a+4>>2]=D;a=s;x=t;b=Ww(c[a>>2]|0,c[a+4>>2]|0,c[x>>2]|0,c[x+4>>2]|0)|0;x=n;c[x>>2]=b;c[x+4>>2]=D;x=k;b=c[x>>2]|0;a=c[x+4>>2]|0;x=h;w=xm(c[x>>2]|0,c[x+4>>2]|0)|0;x=Ww(b|0,a|0,w|0,D|0)|0;w=D;a=h;b=i;y=j;z=ym(c[a>>2]|0,c[a+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0,c[y>>2]|0,c[y+4>>2]|0)|0;y=Ww(x|0,w|0,z|0,D|0)|0;z=72+((c[r>>2]|0)+3<<3)|0;w=Ww(y|0,D|0,c[z>>2]|0,c[z+4>>2]|0)|0;z=q+24|0;y=Ww(w|0,D|0,c[z>>2]|0,c[z+4>>2]|0)|0;z=s;c[z>>2]=y;c[z+4>>2]=D;z=q+8|0;y=zm(c[z>>2]|0,c[z+4>>2]|0,19,0)|0;z=D;w=q+8|0;x=zm(c[w>>2]|0,c[w+4>>2]|0,61,0)|0;w=z^D;z=q+8|0;b=cx(c[z>>2]|0,c[z+4>>2]|0,6)|0;z=q+96|0;a=Ww(y^x^b|0,w^D|0,c[z>>2]|0,c[z+4>>2]|0)|0;z=D;w=q+32|0;b=zm(c[w>>2]|0,c[w+4>>2]|0,1,0)|0;w=D;x=q+32|0;y=zm(c[x>>2]|0,c[x+4>>2]|0,8,0)|0;x=w^D;w=q+32|0;f=cx(c[w>>2]|0,c[w+4>>2]|0,7)|0;w=Ww(a|0,z|0,b^y^f|0,x^D|0)|0;x=q+24|0;f=x;y=Ww(c[f>>2]|0,c[f+4>>2]|0,w|0,D|0)|0;w=x;c[w>>2]=y;c[w+4>>2]=D;w=n;y=Am(c[w>>2]|0,c[w+4>>2]|0)|0;w=D;x=n;f=o;b=p;z=Bm(c[x>>2]|0,c[x+4>>2]|0,c[f>>2]|0,c[f+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;b=Ww(y|0,w|0,z|0,D|0)|0;z=t;c[z>>2]=b;c[z+4>>2]=D;z=s;b=g;w=Ww(c[b>>2]|0,c[b+4>>2]|0,c[z>>2]|0,c[z+4>>2]|0)|0;z=g;c[z>>2]=w;c[z+4>>2]=D;z=s;w=t;b=Ww(c[z>>2]|0,c[z+4>>2]|0,c[w>>2]|0,c[w+4>>2]|0)|0;w=k;c[w>>2]=b;c[w+4>>2]=D;w=j;b=c[w>>2]|0;z=c[w+4>>2]|0;w=g;y=xm(c[w>>2]|0,c[w+4>>2]|0)|0;w=Ww(b|0,z|0,y|0,D|0)|0;y=D;z=g;b=h;f=i;x=ym(c[z>>2]|0,c[z+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0,c[f>>2]|0,c[f+4>>2]|0)|0;f=Ww(w|0,y|0,x|0,D|0)|0;x=72+((c[r>>2]|0)+4<<3)|0;y=Ww(f|0,D|0,c[x>>2]|0,c[x+4>>2]|0)|0;x=q+32|0;f=Ww(y|0,D|0,c[x>>2]|0,c[x+4>>2]|0)|0;x=s;c[x>>2]=f;c[x+4>>2]=D;x=q+16|0;f=zm(c[x>>2]|0,c[x+4>>2]|0,19,0)|0;x=D;y=q+16|0;w=zm(c[y>>2]|0,c[y+4>>2]|0,61,0)|0;y=x^D;x=q+16|0;b=cx(c[x>>2]|0,c[x+4>>2]|0,6)|0;x=q+104|0;z=Ww(f^w^b|0,y^D|0,c[x>>2]|0,c[x+4>>2]|0)|0;x=D;y=q+40|0;b=zm(c[y>>2]|0,c[y+4>>2]|0,1,0)|0;y=D;w=q+40|0;f=zm(c[w>>2]|0,c[w+4>>2]|0,8,0)|0;w=y^D;y=q+40|0;a=cx(c[y>>2]|0,c[y+4>>2]|0,7)|0;y=Ww(z|0,x|0,b^f^a|0,w^D|0)|0;w=q+32|0;a=w;f=Ww(c[a>>2]|0,c[a+4>>2]|0,y|0,D|0)|0;y=w;c[y>>2]=f;c[y+4>>2]=D;y=k;f=Am(c[y>>2]|0,c[y+4>>2]|0)|0;y=D;w=k;a=n;b=o;x=Bm(c[w>>2]|0,c[w+4>>2]|0,c[a>>2]|0,c[a+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;b=Ww(f|0,y|0,x|0,D|0)|0;x=t;c[x>>2]=b;c[x+4>>2]=D;x=s;b=p;y=Ww(c[b>>2]|0,c[b+4>>2]|0,c[x>>2]|0,c[x+4>>2]|0)|0;x=p;c[x>>2]=y;c[x+4>>2]=D;x=s;y=t;b=Ww(c[x>>2]|0,c[x+4>>2]|0,c[y>>2]|0,c[y+4>>2]|0)|0;y=j;c[y>>2]=b;c[y+4>>2]=D;y=i;b=c[y>>2]|0;x=c[y+4>>2]|0;y=p;f=xm(c[y>>2]|0,c[y+4>>2]|0)|0;y=Ww(b|0,x|0,f|0,D|0)|0;f=D;x=p;b=g;a=h;w=ym(c[x>>2]|0,c[x+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0,c[a>>2]|0,c[a+4>>2]|0)|0;a=Ww(y|0,f|0,w|0,D|0)|0;w=72+((c[r>>2]|0)+5<<3)|0;f=Ww(a|0,D|0,c[w>>2]|0,c[w+4>>2]|0)|0;w=q+40|0;a=Ww(f|0,D|0,c[w>>2]|0,c[w+4>>2]|0)|0;w=s;c[w>>2]=a;c[w+4>>2]=D;w=q+24|0;a=zm(c[w>>2]|0,c[w+4>>2]|0,19,0)|0;w=D;f=q+24|0;y=zm(c[f>>2]|0,c[f+4>>2]|0,61,0)|0;f=w^D;w=q+24|0;b=cx(c[w>>2]|0,c[w+4>>2]|0,6)|0;w=q+112|0;x=Ww(a^y^b|0,f^D|0,c[w>>2]|0,c[w+4>>2]|0)|0;w=D;f=q+48|0;b=zm(c[f>>2]|0,c[f+4>>2]|0,1,0)|0;f=D;y=q+48|0;a=zm(c[y>>2]|0,c[y+4>>2]|0,8,0)|0;y=f^D;f=q+48|0;z=cx(c[f>>2]|0,c[f+4>>2]|0,7)|0;f=Ww(x|0,w|0,b^a^z|0,y^D|0)|0;y=q+40|0;z=y;a=Ww(c[z>>2]|0,c[z+4>>2]|0,f|0,D|0)|0;f=y;c[f>>2]=a;c[f+4>>2]=D;f=j;a=Am(c[f>>2]|0,c[f+4>>2]|0)|0;f=D;y=j;z=k;b=n;w=Bm(c[y>>2]|0,c[y+4>>2]|0,c[z>>2]|0,c[z+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;b=Ww(a|0,f|0,w|0,D|0)|0;w=t;c[w>>2]=b;c[w+4>>2]=D;w=s;b=o;f=Ww(c[b>>2]|0,c[b+4>>2]|0,c[w>>2]|0,c[w+4>>2]|0)|0;w=o;c[w>>2]=f;c[w+4>>2]=D;w=s;f=t;b=Ww(c[w>>2]|0,c[w+4>>2]|0,c[f>>2]|0,c[f+4>>2]|0)|0;f=i;c[f>>2]=b;c[f+4>>2]=D;f=h;b=c[f>>2]|0;w=c[f+4>>2]|0;f=o;a=xm(c[f>>2]|0,c[f+4>>2]|0)|0;f=Ww(b|0,w|0,a|0,D|0)|0;a=D;w=o;b=p;z=g;y=ym(c[w>>2]|0,c[w+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0,c[z>>2]|0,c[z+4>>2]|0)|0;z=Ww(f|0,a|0,y|0,D|0)|0;y=72+((c[r>>2]|0)+6<<3)|0;a=Ww(z|0,D|0,c[y>>2]|0,c[y+4>>2]|0)|0;y=q+48|0;z=Ww(a|0,D|0,c[y>>2]|0,c[y+4>>2]|0)|0;y=s;c[y>>2]=z;c[y+4>>2]=D;y=q+32|0;z=zm(c[y>>2]|0,c[y+4>>2]|0,19,0)|0;y=D;a=q+32|0;f=zm(c[a>>2]|0,c[a+4>>2]|0,61,0)|0;a=y^D;y=q+32|0;b=cx(c[y>>2]|0,c[y+4>>2]|0,6)|0;y=q+120|0;w=Ww(z^f^b|0,a^D|0,c[y>>2]|0,c[y+4>>2]|0)|0;y=D;a=q+56|0;b=zm(c[a>>2]|0,c[a+4>>2]|0,1,0)|0;a=D;f=q+56|0;z=zm(c[f>>2]|0,c[f+4>>2]|0,8,0)|0;f=a^D;a=q+56|0;x=cx(c[a>>2]|0,c[a+4>>2]|0,7)|0;a=Ww(w|0,y|0,b^z^x|0,f^D|0)|0;f=q+48|0;x=f;z=Ww(c[x>>2]|0,c[x+4>>2]|0,a|0,D|0)|0;a=f;c[a>>2]=z;c[a+4>>2]=D;a=i;z=Am(c[a>>2]|0,c[a+4>>2]|0)|0;a=D;f=i;x=j;b=k;y=Bm(c[f>>2]|0,c[f+4>>2]|0,c[x>>2]|0,c[x+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;b=Ww(z|0,a|0,y|0,D|0)|0;y=t;c[y>>2]=b;c[y+4>>2]=D;y=s;b=n;a=Ww(c[b>>2]|0,c[b+4>>2]|0,c[y>>2]|0,c[y+4>>2]|0)|0;y=n;c[y>>2]=a;c[y+4>>2]=D;y=s;a=t;b=Ww(c[y>>2]|0,c[y+4>>2]|0,c[a>>2]|0,c[a+4>>2]|0)|0;a=h;c[a>>2]=b;c[a+4>>2]=D;a=g;b=c[a>>2]|0;y=c[a+4>>2]|0;a=n;z=xm(c[a>>2]|0,c[a+4>>2]|0)|0;a=Ww(b|0,y|0,z|0,D|0)|0;z=D;y=n;b=o;x=p;f=ym(c[y>>2]|0,c[y+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0,c[x>>2]|0,c[x+4>>2]|0)|0;x=Ww(a|0,z|0,f|0,D|0)|0;f=72+((c[r>>2]|0)+7<<3)|0;z=Ww(x|0,D|0,c[f>>2]|0,c[f+4>>2]|0)|0;f=q+56|0;x=Ww(z|0,D|0,c[f>>2]|0,c[f+4>>2]|0)|0;f=s;c[f>>2]=x;c[f+4>>2]=D;f=q+40|0;x=zm(c[f>>2]|0,c[f+4>>2]|0,19,0)|0;f=D;z=q+40|0;a=zm(c[z>>2]|0,c[z+4>>2]|0,61,0)|0;z=f^D;f=q+40|0;b=cx(c[f>>2]|0,c[f+4>>2]|0,6)|0;f=q;y=Ww(x^a^b|0,z^D|0,c[f>>2]|0,c[f+4>>2]|0)|0;f=D;z=q+64|0;b=zm(c[z>>2]|0,c[z+4>>2]|0,1,0)|0;z=D;a=q+64|0;x=zm(c[a>>2]|0,c[a+4>>2]|0,8,0)|0;a=z^D;z=q+64|0;w=cx(c[z>>2]|0,c[z+4>>2]|0,7)|0;z=Ww(y|0,f|0,b^x^w|0,a^D|0)|0;a=q+56|0;w=a;x=Ww(c[w>>2]|0,c[w+4>>2]|0,z|0,D|0)|0;z=a;c[z>>2]=x;c[z+4>>2]=D;z=h;x=Am(c[z>>2]|0,c[z+4>>2]|0)|0;z=D;a=h;w=i;b=j;f=Bm(c[a>>2]|0,c[a+4>>2]|0,c[w>>2]|0,c[w+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;b=Ww(x|0,z|0,f|0,D|0)|0;f=t;c[f>>2]=b;c[f+4>>2]=D;f=s;b=k;z=Ww(c[b>>2]|0,c[b+4>>2]|0,c[f>>2]|0,c[f+4>>2]|0)|0;f=k;c[f>>2]=z;c[f+4>>2]=D;f=s;z=t;b=Ww(c[f>>2]|0,c[f+4>>2]|0,c[z>>2]|0,c[z+4>>2]|0)|0;z=g;c[z>>2]=b;c[z+4>>2]=D;z=p;b=c[z>>2]|0;f=c[z+4>>2]|0;z=k;x=xm(c[z>>2]|0,c[z+4>>2]|0)|0;z=Ww(b|0,f|0,x|0,D|0)|0;x=D;f=k;b=n;w=o;a=ym(c[f>>2]|0,c[f+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0,c[w>>2]|0,c[w+4>>2]|0)|0;w=Ww(z|0,x|0,a|0,D|0)|0;a=72+((c[r>>2]|0)+8<<3)|0;x=Ww(w|0,D|0,c[a>>2]|0,c[a+4>>2]|0)|0;a=q+64|0;w=Ww(x|0,D|0,c[a>>2]|0,c[a+4>>2]|0)|0;a=s;c[a>>2]=w;c[a+4>>2]=D;a=q+48|0;w=zm(c[a>>2]|0,c[a+4>>2]|0,19,0)|0;a=D;x=q+48|0;z=zm(c[x>>2]|0,c[x+4>>2]|0,61,0)|0;x=a^D;a=q+48|0;b=cx(c[a>>2]|0,c[a+4>>2]|0,6)|0;a=q+8|0;f=Ww(w^z^b|0,x^D|0,c[a>>2]|0,c[a+4>>2]|0)|0;a=D;x=q+72|0;b=zm(c[x>>2]|0,c[x+4>>2]|0,1,0)|0;x=D;z=q+72|0;w=zm(c[z>>2]|0,c[z+4>>2]|0,8,0)|0;z=x^D;x=q+72|0;y=cx(c[x>>2]|0,c[x+4>>2]|0,7)|0;x=Ww(f|0,a|0,b^w^y|0,z^D|0)|0;z=q+64|0;y=z;w=Ww(c[y>>2]|0,c[y+4>>2]|0,x|0,D|0)|0;x=z;c[x>>2]=w;c[x+4>>2]=D;x=g;w=Am(c[x>>2]|0,c[x+4>>2]|0)|0;x=D;z=g;y=h;b=i;a=Bm(c[z>>2]|0,c[z+4>>2]|0,c[y>>2]|0,c[y+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;b=Ww(w|0,x|0,a|0,D|0)|0;a=t;c[a>>2]=b;c[a+4>>2]=D;a=s;b=j;x=Ww(c[b>>2]|0,c[b+4>>2]|0,c[a>>2]|0,c[a+4>>2]|0)|0;a=j;c[a>>2]=x;c[a+4>>2]=D;a=s;x=t;b=Ww(c[a>>2]|0,c[a+4>>2]|0,c[x>>2]|0,c[x+4>>2]|0)|0;x=p;c[x>>2]=b;c[x+4>>2]=D;x=o;b=c[x>>2]|0;a=c[x+4>>2]|0;x=j;w=xm(c[x>>2]|0,c[x+4>>2]|0)|0;x=Ww(b|0,a|0,w|0,D|0)|0;w=D;a=j;b=k;y=n;z=ym(c[a>>2]|0,c[a+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0,c[y>>2]|0,c[y+4>>2]|0)|0;y=Ww(x|0,w|0,z|0,D|0)|0;z=72+((c[r>>2]|0)+9<<3)|0;w=Ww(y|0,D|0,c[z>>2]|0,c[z+4>>2]|0)|0;z=q+72|0;y=Ww(w|0,D|0,c[z>>2]|0,c[z+4>>2]|0)|0;z=s;c[z>>2]=y;c[z+4>>2]=D;z=q+56|0;y=zm(c[z>>2]|0,c[z+4>>2]|0,19,0)|0;z=D;w=q+56|0;x=zm(c[w>>2]|0,c[w+4>>2]|0,61,0)|0;w=z^D;z=q+56|0;b=cx(c[z>>2]|0,c[z+4>>2]|0,6)|0;z=q+16|0;a=Ww(y^x^b|0,w^D|0,c[z>>2]|0,c[z+4>>2]|0)|0;z=D;w=q+80|0;b=zm(c[w>>2]|0,c[w+4>>2]|0,1,0)|0;w=D;x=q+80|0;y=zm(c[x>>2]|0,c[x+4>>2]|0,8,0)|0;x=w^D;w=q+80|0;f=cx(c[w>>2]|0,c[w+4>>2]|0,7)|0;w=Ww(a|0,z|0,b^y^f|0,x^D|0)|0;x=q+72|0;f=x;y=Ww(c[f>>2]|0,c[f+4>>2]|0,w|0,D|0)|0;w=x;c[w>>2]=y;c[w+4>>2]=D;w=p;y=Am(c[w>>2]|0,c[w+4>>2]|0)|0;w=D;x=p;f=g;b=h;z=Bm(c[x>>2]|0,c[x+4>>2]|0,c[f>>2]|0,c[f+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;b=Ww(y|0,w|0,z|0,D|0)|0;z=t;c[z>>2]=b;c[z+4>>2]=D;z=s;b=i;w=Ww(c[b>>2]|0,c[b+4>>2]|0,c[z>>2]|0,c[z+4>>2]|0)|0;z=i;c[z>>2]=w;c[z+4>>2]=D;z=s;w=t;b=Ww(c[z>>2]|0,c[z+4>>2]|0,c[w>>2]|0,c[w+4>>2]|0)|0;w=o;c[w>>2]=b;c[w+4>>2]=D;w=n;b=c[w>>2]|0;z=c[w+4>>2]|0;w=i;y=xm(c[w>>2]|0,c[w+4>>2]|0)|0;w=Ww(b|0,z|0,y|0,D|0)|0;y=D;z=i;b=j;f=k;x=ym(c[z>>2]|0,c[z+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0,c[f>>2]|0,c[f+4>>2]|0)|0;f=Ww(w|0,y|0,x|0,D|0)|0;x=72+((c[r>>2]|0)+10<<3)|0;y=Ww(f|0,D|0,c[x>>2]|0,c[x+4>>2]|0)|0;x=q+80|0;f=Ww(y|0,D|0,c[x>>2]|0,c[x+4>>2]|0)|0;x=s;c[x>>2]=f;c[x+4>>2]=D;x=q+64|0;f=zm(c[x>>2]|0,c[x+4>>2]|0,19,0)|0;x=D;y=q+64|0;w=zm(c[y>>2]|0,c[y+4>>2]|0,61,0)|0;y=x^D;x=q+64|0;b=cx(c[x>>2]|0,c[x+4>>2]|0,6)|0;x=q+24|0;z=Ww(f^w^b|0,y^D|0,c[x>>2]|0,c[x+4>>2]|0)|0;x=D;y=q+88|0;b=zm(c[y>>2]|0,c[y+4>>2]|0,1,0)|0;y=D;w=q+88|0;f=zm(c[w>>2]|0,c[w+4>>2]|0,8,0)|0;w=y^D;y=q+88|0;a=cx(c[y>>2]|0,c[y+4>>2]|0,7)|0;y=Ww(z|0,x|0,b^f^a|0,w^D|0)|0;w=q+80|0;a=w;f=Ww(c[a>>2]|0,c[a+4>>2]|0,y|0,D|0)|0;y=w;c[y>>2]=f;c[y+4>>2]=D;y=o;f=Am(c[y>>2]|0,c[y+4>>2]|0)|0;y=D;w=o;a=p;b=g;x=Bm(c[w>>2]|0,c[w+4>>2]|0,c[a>>2]|0,c[a+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;b=Ww(f|0,y|0,x|0,D|0)|0;x=t;c[x>>2]=b;c[x+4>>2]=D;x=s;b=h;y=Ww(c[b>>2]|0,c[b+4>>2]|0,c[x>>2]|0,c[x+4>>2]|0)|0;x=h;c[x>>2]=y;c[x+4>>2]=D;x=s;y=t;b=Ww(c[x>>2]|0,c[x+4>>2]|0,c[y>>2]|0,c[y+4>>2]|0)|0;y=n;c[y>>2]=b;c[y+4>>2]=D;y=k;b=c[y>>2]|0;x=c[y+4>>2]|0;y=h;f=xm(c[y>>2]|0,c[y+4>>2]|0)|0;y=Ww(b|0,x|0,f|0,D|0)|0;f=D;x=h;b=i;a=j;w=ym(c[x>>2]|0,c[x+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0,c[a>>2]|0,c[a+4>>2]|0)|0;a=Ww(y|0,f|0,w|0,D|0)|0;w=72+((c[r>>2]|0)+11<<3)|0;f=Ww(a|0,D|0,c[w>>2]|0,c[w+4>>2]|0)|0;w=q+88|0;a=Ww(f|0,D|0,c[w>>2]|0,c[w+4>>2]|0)|0;w=s;c[w>>2]=a;c[w+4>>2]=D;w=q+72|0;a=zm(c[w>>2]|0,c[w+4>>2]|0,19,0)|0;w=D;f=q+72|0;y=zm(c[f>>2]|0,c[f+4>>2]|0,61,0)|0;f=w^D;w=q+72|0;b=cx(c[w>>2]|0,c[w+4>>2]|0,6)|0;w=q+32|0;x=Ww(a^y^b|0,f^D|0,c[w>>2]|0,c[w+4>>2]|0)|0;w=D;f=q+96|0;b=zm(c[f>>2]|0,c[f+4>>2]|0,1,0)|0;f=D;y=q+96|0;a=zm(c[y>>2]|0,c[y+4>>2]|0,8,0)|0;y=f^D;f=q+96|0;z=cx(c[f>>2]|0,c[f+4>>2]|0,7)|0;f=Ww(x|0,w|0,b^a^z|0,y^D|0)|0;y=q+88|0;z=y;a=Ww(c[z>>2]|0,c[z+4>>2]|0,f|0,D|0)|0;f=y;c[f>>2]=a;c[f+4>>2]=D;f=n;a=Am(c[f>>2]|0,c[f+4>>2]|0)|0;f=D;y=n;z=o;b=p;w=Bm(c[y>>2]|0,c[y+4>>2]|0,c[z>>2]|0,c[z+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;b=Ww(a|0,f|0,w|0,D|0)|0;w=t;c[w>>2]=b;c[w+4>>2]=D;w=s;b=g;f=Ww(c[b>>2]|0,c[b+4>>2]|0,c[w>>2]|0,c[w+4>>2]|0)|0;w=g;c[w>>2]=f;c[w+4>>2]=D;w=s;f=t;b=Ww(c[w>>2]|0,c[w+4>>2]|0,c[f>>2]|0,c[f+4>>2]|0)|0;f=k;c[f>>2]=b;c[f+4>>2]=D;f=j;b=c[f>>2]|0;w=c[f+4>>2]|0;f=g;a=xm(c[f>>2]|0,c[f+4>>2]|0)|0;f=Ww(b|0,w|0,a|0,D|0)|0;a=D;w=g;b=h;z=i;y=ym(c[w>>2]|0,c[w+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0,c[z>>2]|0,c[z+4>>2]|0)|0;z=Ww(f|0,a|0,y|0,D|0)|0;y=72+((c[r>>2]|0)+12<<3)|0;a=Ww(z|0,D|0,c[y>>2]|0,c[y+4>>2]|0)|0;y=q+96|0;z=Ww(a|0,D|0,c[y>>2]|0,c[y+4>>2]|0)|0;y=s;c[y>>2]=z;c[y+4>>2]=D;y=q+80|0;z=zm(c[y>>2]|0,c[y+4>>2]|0,19,0)|0;y=D;a=q+80|0;f=zm(c[a>>2]|0,c[a+4>>2]|0,61,0)|0;a=y^D;y=q+80|0;b=cx(c[y>>2]|0,c[y+4>>2]|0,6)|0;y=q+40|0;w=Ww(z^f^b|0,a^D|0,c[y>>2]|0,c[y+4>>2]|0)|0;y=D;a=q+104|0;b=zm(c[a>>2]|0,c[a+4>>2]|0,1,0)|0;a=D;f=q+104|0;z=zm(c[f>>2]|0,c[f+4>>2]|0,8,0)|0;f=a^D;a=q+104|0;x=cx(c[a>>2]|0,c[a+4>>2]|0,7)|0;a=Ww(w|0,y|0,b^z^x|0,f^D|0)|0;f=q+96|0;x=f;z=Ww(c[x>>2]|0,c[x+4>>2]|0,a|0,D|0)|0;a=f;c[a>>2]=z;c[a+4>>2]=D;a=k;z=Am(c[a>>2]|0,c[a+4>>2]|0)|0;a=D;f=k;x=n;b=o;y=Bm(c[f>>2]|0,c[f+4>>2]|0,c[x>>2]|0,c[x+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;b=Ww(z|0,a|0,y|0,D|0)|0;y=t;c[y>>2]=b;c[y+4>>2]=D;y=s;b=p;a=Ww(c[b>>2]|0,c[b+4>>2]|0,c[y>>2]|0,c[y+4>>2]|0)|0;y=p;c[y>>2]=a;c[y+4>>2]=D;y=s;a=t;b=Ww(c[y>>2]|0,c[y+4>>2]|0,c[a>>2]|0,c[a+4>>2]|0)|0;a=j;c[a>>2]=b;c[a+4>>2]=D;a=i;b=c[a>>2]|0;y=c[a+4>>2]|0;a=p;z=xm(c[a>>2]|0,c[a+4>>2]|0)|0;a=Ww(b|0,y|0,z|0,D|0)|0;z=D;y=p;b=g;x=h;f=ym(c[y>>2]|0,c[y+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0,c[x>>2]|0,c[x+4>>2]|0)|0;x=Ww(a|0,z|0,f|0,D|0)|0;f=72+((c[r>>2]|0)+13<<3)|0;z=Ww(x|0,D|0,c[f>>2]|0,c[f+4>>2]|0)|0;f=q+104|0;x=Ww(z|0,D|0,c[f>>2]|0,c[f+4>>2]|0)|0;f=s;c[f>>2]=x;c[f+4>>2]=D;f=q+88|0;x=zm(c[f>>2]|0,c[f+4>>2]|0,19,0)|0;f=D;z=q+88|0;a=zm(c[z>>2]|0,c[z+4>>2]|0,61,0)|0;z=f^D;f=q+88|0;b=cx(c[f>>2]|0,c[f+4>>2]|0,6)|0;f=q+48|0;y=Ww(x^a^b|0,z^D|0,c[f>>2]|0,c[f+4>>2]|0)|0;f=D;z=q+112|0;b=zm(c[z>>2]|0,c[z+4>>2]|0,1,0)|0;z=D;a=q+112|0;x=zm(c[a>>2]|0,c[a+4>>2]|0,8,0)|0;a=z^D;z=q+112|0;w=cx(c[z>>2]|0,c[z+4>>2]|0,7)|0;z=Ww(y|0,f|0,b^x^w|0,a^D|0)|0;a=q+104|0;w=a;x=Ww(c[w>>2]|0,c[w+4>>2]|0,z|0,D|0)|0;z=a;c[z>>2]=x;c[z+4>>2]=D;z=j;x=Am(c[z>>2]|0,c[z+4>>2]|0)|0;z=D;a=j;w=k;b=n;f=Bm(c[a>>2]|0,c[a+4>>2]|0,c[w>>2]|0,c[w+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;b=Ww(x|0,z|0,f|0,D|0)|0;f=t;c[f>>2]=b;c[f+4>>2]=D;f=s;b=o;z=Ww(c[b>>2]|0,c[b+4>>2]|0,c[f>>2]|0,c[f+4>>2]|0)|0;f=o;c[f>>2]=z;c[f+4>>2]=D;f=s;z=t;b=Ww(c[f>>2]|0,c[f+4>>2]|0,c[z>>2]|0,c[z+4>>2]|0)|0;z=i;c[z>>2]=b;c[z+4>>2]=D;z=h;b=c[z>>2]|0;f=c[z+4>>2]|0;z=o;x=xm(c[z>>2]|0,c[z+4>>2]|0)|0;z=Ww(b|0,f|0,x|0,D|0)|0;x=D;f=o;b=p;w=g;a=ym(c[f>>2]|0,c[f+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0,c[w>>2]|0,c[w+4>>2]|0)|0;w=Ww(z|0,x|0,a|0,D|0)|0;a=72+((c[r>>2]|0)+14<<3)|0;x=Ww(w|0,D|0,c[a>>2]|0,c[a+4>>2]|0)|0;a=q+112|0;w=Ww(x|0,D|0,c[a>>2]|0,c[a+4>>2]|0)|0;a=s;c[a>>2]=w;c[a+4>>2]=D;a=q+96|0;w=zm(c[a>>2]|0,c[a+4>>2]|0,19,0)|0;a=D;x=q+96|0;z=zm(c[x>>2]|0,c[x+4>>2]|0,61,0)|0;x=a^D;a=q+96|0;b=cx(c[a>>2]|0,c[a+4>>2]|0,6)|0;a=q+56|0;f=Ww(w^z^b|0,x^D|0,c[a>>2]|0,c[a+4>>2]|0)|0;a=D;x=q+120|0;b=zm(c[x>>2]|0,c[x+4>>2]|0,1,0)|0;x=D;z=q+120|0;w=zm(c[z>>2]|0,c[z+4>>2]|0,8,0)|0;z=x^D;x=q+120|0;y=cx(c[x>>2]|0,c[x+4>>2]|0,7)|0;x=Ww(f|0,a|0,b^w^y|0,z^D|0)|0;z=q+112|0;y=z;w=Ww(c[y>>2]|0,c[y+4>>2]|0,x|0,D|0)|0;x=z;c[x>>2]=w;c[x+4>>2]=D;x=i;w=Am(c[x>>2]|0,c[x+4>>2]|0)|0;x=D;z=i;y=j;b=k;a=Bm(c[z>>2]|0,c[z+4>>2]|0,c[y>>2]|0,c[y+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;b=Ww(w|0,x|0,a|0,D|0)|0;a=t;c[a>>2]=b;c[a+4>>2]=D;a=s;b=n;x=Ww(c[b>>2]|0,c[b+4>>2]|0,c[a>>2]|0,c[a+4>>2]|0)|0;a=n;c[a>>2]=x;c[a+4>>2]=D;a=s;x=t;b=Ww(c[a>>2]|0,c[a+4>>2]|0,c[x>>2]|0,c[x+4>>2]|0)|0;x=h;c[x>>2]=b;c[x+4>>2]=D;x=g;b=c[x>>2]|0;a=c[x+4>>2]|0;x=n;w=xm(c[x>>2]|0,c[x+4>>2]|0)|0;x=Ww(b|0,a|0,w|0,D|0)|0;w=D;a=n;b=o;y=p;z=ym(c[a>>2]|0,c[a+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0,c[y>>2]|0,c[y+4>>2]|0)|0;y=Ww(x|0,w|0,z|0,D|0)|0;z=72+((c[r>>2]|0)+15<<3)|0;w=Ww(y|0,D|0,c[z>>2]|0,c[z+4>>2]|0)|0;z=q+120|0;y=Ww(w|0,D|0,c[z>>2]|0,c[z+4>>2]|0)|0;z=s;c[z>>2]=y;c[z+4>>2]=D;z=q+104|0;y=zm(c[z>>2]|0,c[z+4>>2]|0,19,0)|0;z=D;w=q+104|0;x=zm(c[w>>2]|0,c[w+4>>2]|0,61,0)|0;w=z^D;z=q+104|0;b=cx(c[z>>2]|0,c[z+4>>2]|0,6)|0;z=q+64|0;a=Ww(y^x^b|0,w^D|0,c[z>>2]|0,c[z+4>>2]|0)|0;z=D;w=q;b=zm(c[w>>2]|0,c[w+4>>2]|0,1,0)|0;w=D;x=q;y=zm(c[x>>2]|0,c[x+4>>2]|0,8,0)|0;x=w^D;w=q;f=cx(c[w>>2]|0,c[w+4>>2]|0,7)|0;w=Ww(a|0,z|0,b^y^f|0,x^D|0)|0;x=q+120|0;f=x;y=Ww(c[f>>2]|0,c[f+4>>2]|0,w|0,D|0)|0;w=x;c[w>>2]=y;c[w+4>>2]=D;w=h;y=Am(c[w>>2]|0,c[w+4>>2]|0)|0;w=D;x=h;f=i;b=j;z=Bm(c[x>>2]|0,c[x+4>>2]|0,c[f>>2]|0,c[f+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;b=Ww(y|0,w|0,z|0,D|0)|0;z=t;c[z>>2]=b;c[z+4>>2]=D;z=s;b=k;w=Ww(c[b>>2]|0,c[b+4>>2]|0,c[z>>2]|0,c[z+4>>2]|0)|0;z=k;c[z>>2]=w;c[z+4>>2]=D;z=s;w=t;b=Ww(c[z>>2]|0,c[z+4>>2]|0,c[w>>2]|0,c[w+4>>2]|0)|0;w=g;c[w>>2]=b;c[w+4>>2]=D;c[r>>2]=(c[r>>2]|0)+16}while(1){if((c[r>>2]|0)>=80)break;t=p;s=c[t>>2]|0;w=c[t+4>>2]|0;t=k;b=xm(c[t>>2]|0,c[t+4>>2]|0)|0;t=Ww(s|0,w|0,b|0,D|0)|0;b=D;w=k;s=n;z=o;y=ym(c[w>>2]|0,c[w+4>>2]|0,c[s>>2]|0,c[s+4>>2]|0,c[z>>2]|0,c[z+4>>2]|0)|0;z=Ww(t|0,b|0,y|0,D|0)|0;y=72+(c[r>>2]<<3)|0;b=Ww(z|0,D|0,c[y>>2]|0,c[y+4>>2]|0)|0;y=q;z=Ww(b|0,D|0,c[y>>2]|0,c[y+4>>2]|0)|0;y=u;c[y>>2]=z;c[y+4>>2]=D;y=g;z=Am(c[y>>2]|0,c[y+4>>2]|0)|0;y=D;b=g;t=h;s=i;w=Bm(c[b>>2]|0,c[b+4>>2]|0,c[t>>2]|0,c[t+4>>2]|0,c[s>>2]|0,c[s+4>>2]|0)|0;s=Ww(z|0,y|0,w|0,D|0)|0;w=v;c[w>>2]=s;c[w+4>>2]=D;w=u;s=j;y=Ww(c[s>>2]|0,c[s+4>>2]|0,c[w>>2]|0,c[w+4>>2]|0)|0;w=j;c[w>>2]=y;c[w+4>>2]=D;w=u;y=v;s=Ww(c[w>>2]|0,c[w+4>>2]|0,c[y>>2]|0,c[y+4>>2]|0)|0;y=p;c[y>>2]=s;c[y+4>>2]=D;y=o;s=c[y>>2]|0;w=c[y+4>>2]|0;y=j;z=xm(c[y>>2]|0,c[y+4>>2]|0)|0;y=Ww(s|0,w|0,z|0,D|0)|0;z=D;w=j;s=k;t=n;b=ym(c[w>>2]|0,c[w+4>>2]|0,c[s>>2]|0,c[s+4>>2]|0,c[t>>2]|0,c[t+4>>2]|0)|0;t=Ww(y|0,z|0,b|0,D|0)|0;b=72+((c[r>>2]|0)+1<<3)|0;z=Ww(t|0,D|0,c[b>>2]|0,c[b+4>>2]|0)|0;b=q+8|0;t=Ww(z|0,D|0,c[b>>2]|0,c[b+4>>2]|0)|0;b=u;c[b>>2]=t;c[b+4>>2]=D;b=p;t=Am(c[b>>2]|0,c[b+4>>2]|0)|0;b=D;z=p;y=g;s=h;w=Bm(c[z>>2]|0,c[z+4>>2]|0,c[y>>2]|0,c[y+4>>2]|0,c[s>>2]|0,c[s+4>>2]|0)|0;s=Ww(t|0,b|0,w|0,D|0)|0;w=v;c[w>>2]=s;c[w+4>>2]=D;w=u;s=i;b=Ww(c[s>>2]|0,c[s+4>>2]|0,c[w>>2]|0,c[w+4>>2]|0)|0;w=i;c[w>>2]=b;c[w+4>>2]=D;w=u;b=v;s=Ww(c[w>>2]|0,c[w+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;b=o;c[b>>2]=s;c[b+4>>2]=D;b=n;s=c[b>>2]|0;w=c[b+4>>2]|0;b=i;t=xm(c[b>>2]|0,c[b+4>>2]|0)|0;b=Ww(s|0,w|0,t|0,D|0)|0;t=D;w=i;s=j;y=k;z=ym(c[w>>2]|0,c[w+4>>2]|0,c[s>>2]|0,c[s+4>>2]|0,c[y>>2]|0,c[y+4>>2]|0)|0;y=Ww(b|0,t|0,z|0,D|0)|0;z=72+((c[r>>2]|0)+2<<3)|0;t=Ww(y|0,D|0,c[z>>2]|0,c[z+4>>2]|0)|0;z=q+16|0;y=Ww(t|0,D|0,c[z>>2]|0,c[z+4>>2]|0)|0;z=u;c[z>>2]=y;c[z+4>>2]=D;z=o;y=Am(c[z>>2]|0,c[z+4>>2]|0)|0;z=D;t=o;b=p;s=g;w=Bm(c[t>>2]|0,c[t+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0,c[s>>2]|0,c[s+4>>2]|0)|0;s=Ww(y|0,z|0,w|0,D|0)|0;w=v;c[w>>2]=s;c[w+4>>2]=D;w=u;s=h;z=Ww(c[s>>2]|0,c[s+4>>2]|0,c[w>>2]|0,c[w+4>>2]|0)|0;w=h;c[w>>2]=z;c[w+4>>2]=D;w=u;z=v;s=Ww(c[w>>2]|0,c[w+4>>2]|0,c[z>>2]|0,c[z+4>>2]|0)|0;z=n;c[z>>2]=s;c[z+4>>2]=D;z=k;s=c[z>>2]|0;w=c[z+4>>2]|0;z=h;y=xm(c[z>>2]|0,c[z+4>>2]|0)|0;z=Ww(s|0,w|0,y|0,D|0)|0;y=D;w=h;s=i;b=j;t=ym(c[w>>2]|0,c[w+4>>2]|0,c[s>>2]|0,c[s+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;b=Ww(z|0,y|0,t|0,D|0)|0;t=72+((c[r>>2]|0)+3<<3)|0;y=Ww(b|0,D|0,c[t>>2]|0,c[t+4>>2]|0)|0;t=q+24|0;b=Ww(y|0,D|0,c[t>>2]|0,c[t+4>>2]|0)|0;t=u;c[t>>2]=b;c[t+4>>2]=D;t=n;b=Am(c[t>>2]|0,c[t+4>>2]|0)|0;t=D;y=n;z=o;s=p;w=Bm(c[y>>2]|0,c[y+4>>2]|0,c[z>>2]|0,c[z+4>>2]|0,c[s>>2]|0,c[s+4>>2]|0)|0;s=Ww(b|0,t|0,w|0,D|0)|0;w=v;c[w>>2]=s;c[w+4>>2]=D;w=u;s=g;t=Ww(c[s>>2]|0,c[s+4>>2]|0,c[w>>2]|0,c[w+4>>2]|0)|0;w=g;c[w>>2]=t;c[w+4>>2]=D;w=u;t=v;s=Ww(c[w>>2]|0,c[w+4>>2]|0,c[t>>2]|0,c[t+4>>2]|0)|0;t=k;c[t>>2]=s;c[t+4>>2]=D;t=j;s=c[t>>2]|0;w=c[t+4>>2]|0;t=g;b=xm(c[t>>2]|0,c[t+4>>2]|0)|0;t=Ww(s|0,w|0,b|0,D|0)|0;b=D;w=g;s=h;z=i;y=ym(c[w>>2]|0,c[w+4>>2]|0,c[s>>2]|0,c[s+4>>2]|0,c[z>>2]|0,c[z+4>>2]|0)|0;z=Ww(t|0,b|0,y|0,D|0)|0;y=72+((c[r>>2]|0)+4<<3)|0;b=Ww(z|0,D|0,c[y>>2]|0,c[y+4>>2]|0)|0;y=q+32|0;z=Ww(b|0,D|0,c[y>>2]|0,c[y+4>>2]|0)|0;y=u;c[y>>2]=z;c[y+4>>2]=D;y=k;z=Am(c[y>>2]|0,c[y+4>>2]|0)|0;y=D;b=k;t=n;s=o;w=Bm(c[b>>2]|0,c[b+4>>2]|0,c[t>>2]|0,c[t+4>>2]|0,c[s>>2]|0,c[s+4>>2]|0)|0;s=Ww(z|0,y|0,w|0,D|0)|0;w=v;c[w>>2]=s;c[w+4>>2]=D;w=u;s=p;y=Ww(c[s>>2]|0,c[s+4>>2]|0,c[w>>2]|0,c[w+4>>2]|0)|0;w=p;c[w>>2]=y;c[w+4>>2]=D;w=u;y=v;s=Ww(c[w>>2]|0,c[w+4>>2]|0,c[y>>2]|0,c[y+4>>2]|0)|0;y=j;c[y>>2]=s;c[y+4>>2]=D;y=i;s=c[y>>2]|0;w=c[y+4>>2]|0;y=p;z=xm(c[y>>2]|0,c[y+4>>2]|0)|0;y=Ww(s|0,w|0,z|0,D|0)|0;z=D;w=p;s=g;t=h;b=ym(c[w>>2]|0,c[w+4>>2]|0,c[s>>2]|0,c[s+4>>2]|0,c[t>>2]|0,c[t+4>>2]|0)|0;t=Ww(y|0,z|0,b|0,D|0)|0;b=72+((c[r>>2]|0)+5<<3)|0;z=Ww(t|0,D|0,c[b>>2]|0,c[b+4>>2]|0)|0;b=q+40|0;t=Ww(z|0,D|0,c[b>>2]|0,c[b+4>>2]|0)|0;b=u;c[b>>2]=t;c[b+4>>2]=D;b=j;t=Am(c[b>>2]|0,c[b+4>>2]|0)|0;b=D;z=j;y=k;s=n;w=Bm(c[z>>2]|0,c[z+4>>2]|0,c[y>>2]|0,c[y+4>>2]|0,c[s>>2]|0,c[s+4>>2]|0)|0;s=Ww(t|0,b|0,w|0,D|0)|0;w=v;c[w>>2]=s;c[w+4>>2]=D;w=u;s=o;b=Ww(c[s>>2]|0,c[s+4>>2]|0,c[w>>2]|0,c[w+4>>2]|0)|0;w=o;c[w>>2]=b;c[w+4>>2]=D;w=u;b=v;s=Ww(c[w>>2]|0,c[w+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;b=i;c[b>>2]=s;c[b+4>>2]=D;b=h;s=c[b>>2]|0;w=c[b+4>>2]|0;b=o;t=xm(c[b>>2]|0,c[b+4>>2]|0)|0;b=Ww(s|0,w|0,t|0,D|0)|0;t=D;w=o;s=p;y=g;z=ym(c[w>>2]|0,c[w+4>>2]|0,c[s>>2]|0,c[s+4>>2]|0,c[y>>2]|0,c[y+4>>2]|0)|0;y=Ww(b|0,t|0,z|0,D|0)|0;z=72+((c[r>>2]|0)+6<<3)|0;t=Ww(y|0,D|0,c[z>>2]|0,c[z+4>>2]|0)|0;z=q+48|0;y=Ww(t|0,D|0,c[z>>2]|0,c[z+4>>2]|0)|0;z=u;c[z>>2]=y;c[z+4>>2]=D;z=i;y=Am(c[z>>2]|0,c[z+4>>2]|0)|0;z=D;t=i;b=j;s=k;w=Bm(c[t>>2]|0,c[t+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0,c[s>>2]|0,c[s+4>>2]|0)|0;s=Ww(y|0,z|0,w|0,D|0)|0;w=v;c[w>>2]=s;c[w+4>>2]=D;w=u;s=n;z=Ww(c[s>>2]|0,c[s+4>>2]|0,c[w>>2]|0,c[w+4>>2]|0)|0;w=n;c[w>>2]=z;c[w+4>>2]=D;w=u;z=v;s=Ww(c[w>>2]|0,c[w+4>>2]|0,c[z>>2]|0,c[z+4>>2]|0)|0;z=h;c[z>>2]=s;c[z+4>>2]=D;z=g;s=c[z>>2]|0;w=c[z+4>>2]|0;z=n;y=xm(c[z>>2]|0,c[z+4>>2]|0)|0;z=Ww(s|0,w|0,y|0,D|0)|0;y=D;w=n;s=o;b=p;t=ym(c[w>>2]|0,c[w+4>>2]|0,c[s>>2]|0,c[s+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;b=Ww(z|0,y|0,t|0,D|0)|0;t=72+((c[r>>2]|0)+7<<3)|0;y=Ww(b|0,D|0,c[t>>2]|0,c[t+4>>2]|0)|0;t=q+56|0;b=Ww(y|0,D|0,c[t>>2]|0,c[t+4>>2]|0)|0;t=u;c[t>>2]=b;c[t+4>>2]=D;t=h;b=Am(c[t>>2]|0,c[t+4>>2]|0)|0;t=D;y=h;z=i;s=j;w=Bm(c[y>>2]|0,c[y+4>>2]|0,c[z>>2]|0,c[z+4>>2]|0,c[s>>2]|0,c[s+4>>2]|0)|0;s=Ww(b|0,t|0,w|0,D|0)|0;w=v;c[w>>2]=s;c[w+4>>2]=D;w=u;s=k;t=Ww(c[s>>2]|0,c[s+4>>2]|0,c[w>>2]|0,c[w+4>>2]|0)|0;w=k;c[w>>2]=t;c[w+4>>2]=D;w=u;t=v;s=Ww(c[w>>2]|0,c[w+4>>2]|0,c[t>>2]|0,c[t+4>>2]|0)|0;t=g;c[t>>2]=s;c[t+4>>2]=D;t=p;s=c[t>>2]|0;w=c[t+4>>2]|0;t=k;b=xm(c[t>>2]|0,c[t+4>>2]|0)|0;t=Ww(s|0,w|0,b|0,D|0)|0;b=D;w=k;s=n;z=o;y=ym(c[w>>2]|0,c[w+4>>2]|0,c[s>>2]|0,c[s+4>>2]|0,c[z>>2]|0,c[z+4>>2]|0)|0;z=Ww(t|0,b|0,y|0,D|0)|0;y=72+((c[r>>2]|0)+8<<3)|0;b=Ww(z|0,D|0,c[y>>2]|0,c[y+4>>2]|0)|0;y=q+64|0;z=Ww(b|0,D|0,c[y>>2]|0,c[y+4>>2]|0)|0;y=u;c[y>>2]=z;c[y+4>>2]=D;y=g;z=Am(c[y>>2]|0,c[y+4>>2]|0)|0;y=D;b=g;t=h;s=i;w=Bm(c[b>>2]|0,c[b+4>>2]|0,c[t>>2]|0,c[t+4>>2]|0,c[s>>2]|0,c[s+4>>2]|0)|0;s=Ww(z|0,y|0,w|0,D|0)|0;w=v;c[w>>2]=s;c[w+4>>2]=D;w=u;s=j;y=Ww(c[s>>2]|0,c[s+4>>2]|0,c[w>>2]|0,c[w+4>>2]|0)|0;w=j;c[w>>2]=y;c[w+4>>2]=D;w=u;y=v;s=Ww(c[w>>2]|0,c[w+4>>2]|0,c[y>>2]|0,c[y+4>>2]|0)|0;y=p;c[y>>2]=s;c[y+4>>2]=D;y=o;s=c[y>>2]|0;w=c[y+4>>2]|0;y=j;z=xm(c[y>>2]|0,c[y+4>>2]|0)|0;y=Ww(s|0,w|0,z|0,D|0)|0;z=D;w=j;s=k;t=n;b=ym(c[w>>2]|0,c[w+4>>2]|0,c[s>>2]|0,c[s+4>>2]|0,c[t>>2]|0,c[t+4>>2]|0)|0;t=Ww(y|0,z|0,b|0,D|0)|0;b=72+((c[r>>2]|0)+9<<3)|0;z=Ww(t|0,D|0,c[b>>2]|0,c[b+4>>2]|0)|0;b=q+72|0;t=Ww(z|0,D|0,c[b>>2]|0,c[b+4>>2]|0)|0;b=u;c[b>>2]=t;c[b+4>>2]=D;b=p;t=Am(c[b>>2]|0,c[b+4>>2]|0)|0;b=D;z=p;y=g;s=h;w=Bm(c[z>>2]|0,c[z+4>>2]|0,c[y>>2]|0,c[y+4>>2]|0,c[s>>2]|0,c[s+4>>2]|0)|0;s=Ww(t|0,b|0,w|0,D|0)|0;w=v;c[w>>2]=s;c[w+4>>2]=D;w=u;s=i;b=Ww(c[s>>2]|0,c[s+4>>2]|0,c[w>>2]|0,c[w+4>>2]|0)|0;w=i;c[w>>2]=b;c[w+4>>2]=D;w=u;b=v;s=Ww(c[w>>2]|0,c[w+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;b=o;c[b>>2]=s;c[b+4>>2]=D;b=n;s=c[b>>2]|0;w=c[b+4>>2]|0;b=i;t=xm(c[b>>2]|0,c[b+4>>2]|0)|0;b=Ww(s|0,w|0,t|0,D|0)|0;t=D;w=i;s=j;y=k;z=ym(c[w>>2]|0,c[w+4>>2]|0,c[s>>2]|0,c[s+4>>2]|0,c[y>>2]|0,c[y+4>>2]|0)|0;y=Ww(b|0,t|0,z|0,D|0)|0;z=72+((c[r>>2]|0)+10<<3)|0;t=Ww(y|0,D|0,c[z>>2]|0,c[z+4>>2]|0)|0;z=q+80|0;y=Ww(t|0,D|0,c[z>>2]|0,c[z+4>>2]|0)|0;z=u;c[z>>2]=y;c[z+4>>2]=D;z=o;y=Am(c[z>>2]|0,c[z+4>>2]|0)|0;z=D;t=o;b=p;s=g;w=Bm(c[t>>2]|0,c[t+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0,c[s>>2]|0,c[s+4>>2]|0)|0;s=Ww(y|0,z|0,w|0,D|0)|0;w=v;c[w>>2]=s;c[w+4>>2]=D;w=u;s=h;z=Ww(c[s>>2]|0,c[s+4>>2]|0,c[w>>2]|0,c[w+4>>2]|0)|0;w=h;c[w>>2]=z;c[w+4>>2]=D;w=u;z=v;s=Ww(c[w>>2]|0,c[w+4>>2]|0,c[z>>2]|0,c[z+4>>2]|0)|0;z=n;c[z>>2]=s;c[z+4>>2]=D;z=k;s=c[z>>2]|0;w=c[z+4>>2]|0;z=h;y=xm(c[z>>2]|0,c[z+4>>2]|0)|0;z=Ww(s|0,w|0,y|0,D|0)|0;y=D;w=h;s=i;b=j;t=ym(c[w>>2]|0,c[w+4>>2]|0,c[s>>2]|0,c[s+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;b=Ww(z|0,y|0,t|0,D|0)|0;t=72+((c[r>>2]|0)+11<<3)|0;y=Ww(b|0,D|0,c[t>>2]|0,c[t+4>>2]|0)|0;t=q+88|0;b=Ww(y|0,D|0,c[t>>2]|0,c[t+4>>2]|0)|0;t=u;c[t>>2]=b;c[t+4>>2]=D;t=n;b=Am(c[t>>2]|0,c[t+4>>2]|0)|0;t=D;y=n;z=o;s=p;w=Bm(c[y>>2]|0,c[y+4>>2]|0,c[z>>2]|0,c[z+4>>2]|0,c[s>>2]|0,c[s+4>>2]|0)|0;s=Ww(b|0,t|0,w|0,D|0)|0;w=v;c[w>>2]=s;c[w+4>>2]=D;w=u;s=g;t=Ww(c[s>>2]|0,c[s+4>>2]|0,c[w>>2]|0,c[w+4>>2]|0)|0;w=g;c[w>>2]=t;c[w+4>>2]=D;w=u;t=v;s=Ww(c[w>>2]|0,c[w+4>>2]|0,c[t>>2]|0,c[t+4>>2]|0)|0;t=k;c[t>>2]=s;c[t+4>>2]=D;t=j;s=c[t>>2]|0;w=c[t+4>>2]|0;t=g;b=xm(c[t>>2]|0,c[t+4>>2]|0)|0;t=Ww(s|0,w|0,b|0,D|0)|0;b=D;w=g;s=h;z=i;y=ym(c[w>>2]|0,c[w+4>>2]|0,c[s>>2]|0,c[s+4>>2]|0,c[z>>2]|0,c[z+4>>2]|0)|0;z=Ww(t|0,b|0,y|0,D|0)|0;y=72+((c[r>>2]|0)+12<<3)|0;b=Ww(z|0,D|0,c[y>>2]|0,c[y+4>>2]|0)|0;y=q+96|0;z=Ww(b|0,D|0,c[y>>2]|0,c[y+4>>2]|0)|0;y=u;c[y>>2]=z;c[y+4>>2]=D;y=k;z=Am(c[y>>2]|0,c[y+4>>2]|0)|0;y=D;b=k;t=n;s=o;w=Bm(c[b>>2]|0,c[b+4>>2]|0,c[t>>2]|0,c[t+4>>2]|0,c[s>>2]|0,c[s+4>>2]|0)|0;s=Ww(z|0,y|0,w|0,D|0)|0;w=v;c[w>>2]=s;c[w+4>>2]=D;w=u;s=p;y=Ww(c[s>>2]|0,c[s+4>>2]|0,c[w>>2]|0,c[w+4>>2]|0)|0;w=p;c[w>>2]=y;c[w+4>>2]=D;w=u;y=v;s=Ww(c[w>>2]|0,c[w+4>>2]|0,c[y>>2]|0,c[y+4>>2]|0)|0;y=j;c[y>>2]=s;c[y+4>>2]=D;y=i;s=c[y>>2]|0;w=c[y+4>>2]|0;y=p;z=xm(c[y>>2]|0,c[y+4>>2]|0)|0;y=Ww(s|0,w|0,z|0,D|0)|0;z=D;w=p;s=g;t=h;b=ym(c[w>>2]|0,c[w+4>>2]|0,c[s>>2]|0,c[s+4>>2]|0,c[t>>2]|0,c[t+4>>2]|0)|0;t=Ww(y|0,z|0,b|0,D|0)|0;b=72+((c[r>>2]|0)+13<<3)|0;z=Ww(t|0,D|0,c[b>>2]|0,c[b+4>>2]|0)|0;b=q+104|0;t=Ww(z|0,D|0,c[b>>2]|0,c[b+4>>2]|0)|0;b=u;c[b>>2]=t;c[b+4>>2]=D;b=j;t=Am(c[b>>2]|0,c[b+4>>2]|0)|0;b=D;z=j;y=k;s=n;w=Bm(c[z>>2]|0,c[z+4>>2]|0,c[y>>2]|0,c[y+4>>2]|0,c[s>>2]|0,c[s+4>>2]|0)|0;s=Ww(t|0,b|0,w|0,D|0)|0;w=v;c[w>>2]=s;c[w+4>>2]=D;w=u;s=o;b=Ww(c[s>>2]|0,c[s+4>>2]|0,c[w>>2]|0,c[w+4>>2]|0)|0;w=o;c[w>>2]=b;c[w+4>>2]=D;w=u;b=v;s=Ww(c[w>>2]|0,c[w+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;b=i;c[b>>2]=s;c[b+4>>2]=D;b=h;s=c[b>>2]|0;w=c[b+4>>2]|0;b=o;t=xm(c[b>>2]|0,c[b+4>>2]|0)|0;b=Ww(s|0,w|0,t|0,D|0)|0;t=D;w=o;s=p;y=g;z=ym(c[w>>2]|0,c[w+4>>2]|0,c[s>>2]|0,c[s+4>>2]|0,c[y>>2]|0,c[y+4>>2]|0)|0;y=Ww(b|0,t|0,z|0,D|0)|0;z=72+((c[r>>2]|0)+14<<3)|0;t=Ww(y|0,D|0,c[z>>2]|0,c[z+4>>2]|0)|0;z=q+112|0;y=Ww(t|0,D|0,c[z>>2]|0,c[z+4>>2]|0)|0;z=u;c[z>>2]=y;c[z+4>>2]=D;z=i;y=Am(c[z>>2]|0,c[z+4>>2]|0)|0;z=D;t=i;b=j;s=k;w=Bm(c[t>>2]|0,c[t+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0,c[s>>2]|0,c[s+4>>2]|0)|0;s=Ww(y|0,z|0,w|0,D|0)|0;w=v;c[w>>2]=s;c[w+4>>2]=D;w=u;s=n;z=Ww(c[s>>2]|0,c[s+4>>2]|0,c[w>>2]|0,c[w+4>>2]|0)|0;w=n;c[w>>2]=z;c[w+4>>2]=D;w=u;z=v;s=Ww(c[w>>2]|0,c[w+4>>2]|0,c[z>>2]|0,c[z+4>>2]|0)|0;z=h;c[z>>2]=s;c[z+4>>2]=D;z=g;s=c[z>>2]|0;w=c[z+4>>2]|0;z=n;y=xm(c[z>>2]|0,c[z+4>>2]|0)|0;z=Ww(s|0,w|0,y|0,D|0)|0;y=D;w=n;s=o;b=p;t=ym(c[w>>2]|0,c[w+4>>2]|0,c[s>>2]|0,c[s+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;b=Ww(z|0,y|0,t|0,D|0)|0;t=72+((c[r>>2]|0)+15<<3)|0;y=Ww(b|0,D|0,c[t>>2]|0,c[t+4>>2]|0)|0;t=q+120|0;b=Ww(y|0,D|0,c[t>>2]|0,c[t+4>>2]|0)|0;t=u;c[t>>2]=b;c[t+4>>2]=D;t=h;b=Am(c[t>>2]|0,c[t+4>>2]|0)|0;t=D;y=h;z=i;s=j;w=Bm(c[y>>2]|0,c[y+4>>2]|0,c[z>>2]|0,c[z+4>>2]|0,c[s>>2]|0,c[s+4>>2]|0)|0;s=Ww(b|0,t|0,w|0,D|0)|0;w=v;c[w>>2]=s;c[w+4>>2]=D;w=u;s=k;t=Ww(c[s>>2]|0,c[s+4>>2]|0,c[w>>2]|0,c[w+4>>2]|0)|0;w=k;c[w>>2]=t;c[w+4>>2]=D;w=u;t=v;s=Ww(c[w>>2]|0,c[w+4>>2]|0,c[t>>2]|0,c[t+4>>2]|0)|0;t=g;c[t>>2]=s;c[t+4>>2]=D;c[r>>2]=(c[r>>2]|0)+16}r=g;g=c[e>>2]|0;v=g;u=Ww(c[v>>2]|0,c[v+4>>2]|0,c[r>>2]|0,c[r+4>>2]|0)|0;r=g;c[r>>2]=u;c[r+4>>2]=D;r=h;h=(c[e>>2]|0)+8|0;u=h;g=Ww(c[u>>2]|0,c[u+4>>2]|0,c[r>>2]|0,c[r+4>>2]|0)|0;r=h;c[r>>2]=g;c[r+4>>2]=D;r=i;i=(c[e>>2]|0)+16|0;g=i;h=Ww(c[g>>2]|0,c[g+4>>2]|0,c[r>>2]|0,c[r+4>>2]|0)|0;r=i;c[r>>2]=h;c[r+4>>2]=D;r=j;j=(c[e>>2]|0)+24|0;h=j;i=Ww(c[h>>2]|0,c[h+4>>2]|0,c[r>>2]|0,c[r+4>>2]|0)|0;r=j;c[r>>2]=i;c[r+4>>2]=D;r=k;k=(c[e>>2]|0)+32|0;i=k;j=Ww(c[i>>2]|0,c[i+4>>2]|0,c[r>>2]|0,c[r+4>>2]|0)|0;r=k;c[r>>2]=j;c[r+4>>2]=D;r=n;n=(c[e>>2]|0)+40|0;j=n;k=Ww(c[j>>2]|0,c[j+4>>2]|0,c[r>>2]|0,c[r+4>>2]|0)|0;r=n;c[r>>2]=k;c[r+4>>2]=D;r=o;o=(c[e>>2]|0)+48|0;k=o;n=Ww(c[k>>2]|0,c[k+4>>2]|0,c[r>>2]|0,c[r+4>>2]|0)|0;r=o;c[r>>2]=n;c[r+4>>2]=D;r=p;p=(c[e>>2]|0)+56|0;e=p;n=Ww(c[e>>2]|0,c[e+4>>2]|0,c[r>>2]|0,c[r+4>>2]|0)|0;r=p;c[r>>2]=n;c[r+4>>2]=D;l=d;return 208}function wm(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=b+4|0;f=b;c[e>>2]=a;c[f>>2]=c[e>>2];e=ix(d[c[f>>2]>>0]|0|0,0,56)|0;a=D;g=ix(d[(c[f>>2]|0)+1>>0]|0|0,0,48)|0;h=a|D;a=ix(d[(c[f>>2]|0)+2>>0]|0|0,0,40)|0;i=h|D|(d[(c[f>>2]|0)+3>>0]|0);h=ix(d[(c[f>>2]|0)+4>>0]|0|0,0,24)|0;j=i|D;i=ix(d[(c[f>>2]|0)+5>>0]|0|0,0,16)|0;k=j|D;j=ix(d[(c[f>>2]|0)+6>>0]|0|0,0,8)|0;D=k|D;l=b;return e|g|a|h|i|j|(d[(c[f>>2]|0)+7>>0]|0)|0}function xm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d;f=e;c[f>>2]=a;c[f+4>>2]=b;b=e;f=zm(c[b>>2]|0,c[b+4>>2]|0,14,0)|0;b=D;a=e;g=zm(c[a>>2]|0,c[a+4>>2]|0,18,0)|0;a=b^D;b=e;e=zm(c[b>>2]|0,c[b+4>>2]|0,41,0)|0;D=a^D;l=d;return f^g^e|0}function ym(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0;h=l;l=l+32|0;if((l|0)>=(m|0))$(32);i=h+16|0;j=h+8|0;k=h;n=i;c[n>>2]=a;c[n+4>>2]=b;b=j;c[b>>2]=d;c[b+4>>2]=e;e=k;c[e>>2]=f;c[e+4>>2]=g;g=i;e=j;j=i;i=k;D=c[g+4>>2]&c[e+4>>2]^~c[j+4>>2]&c[i+4>>2];l=h;return c[g>>2]&c[e>>2]^~c[j>>2]&c[i>>2]|0}function zm(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f+8|0;h=f;i=g;c[i>>2]=a;c[i+4>>2]=b;b=h;c[b>>2]=d;c[b+4>>2]=e;e=g;b=cx(c[e>>2]|0,c[e+4>>2]|0,c[h>>2]|0)|0;e=D;d=g;g=c[d>>2]|0;i=c[d+4>>2]|0;d=h;h=Tw(64,0,c[d>>2]|0,c[d+4>>2]|0)|0;d=ix(g|0,i|0,h|0)|0;D=e|D;l=f;return b|d|0}function Am(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d;f=e;c[f>>2]=a;c[f+4>>2]=b;b=e;f=zm(c[b>>2]|0,c[b+4>>2]|0,28,0)|0;b=D;a=e;g=zm(c[a>>2]|0,c[a+4>>2]|0,34,0)|0;a=b^D;b=e;e=zm(c[b>>2]|0,c[b+4>>2]|0,39,0)|0;D=a^D;l=d;return f^g^e|0}function Bm(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0;h=l;l=l+32|0;if((l|0)>=(m|0))$(32);i=h+16|0;j=h+8|0;k=h;n=i;c[n>>2]=a;c[n+4>>2]=b;b=j;c[b>>2]=d;c[b+4>>2]=e;e=k;c[e>>2]=f;c[e+4>>2]=g;g=i;e=j;f=i;i=k;b=j;j=k;D=c[g+4>>2]&c[e+4>>2]^c[f+4>>2]&c[i+4>>2]^c[b+4>>2]&c[j+4>>2];l=h;return c[g>>2]&c[e>>2]^c[f>>2]&c[i>>2]^c[b>>2]&c[j>>2]|0}function Cm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d+16|0;f=d+8|0;g=d+4|0;c[e>>2]=a;c[d+12>>2]=b;c[f>>2]=c[e>>2];c[g>>2]=(c[f>>2]|0)+160;c[d>>2]=pg()|0;e=c[g>>2]|0;c[e>>2]=-1056596264;c[e+4>>2]=-876896931;e=(c[g>>2]|0)+8|0;c[e>>2]=914150663;c[e+4>>2]=1654270250;e=(c[g>>2]|0)+16|0;c[e>>2]=812702999;c[e+4>>2]=-1856437926;e=(c[g>>2]|0)+24|0;c[e>>2]=-150054599;c[e+4>>2]=355462360;e=(c[g>>2]|0)+32|0;c[e>>2]=-4191439;c[e+4>>2]=1731405415;e=(c[g>>2]|0)+40|0;c[e>>2]=1750603025;c[e+4>>2]=-1900787065;e=(c[g>>2]|0)+48|0;c[e>>2]=1694076839;c[e+4>>2]=-619958771;e=(c[g>>2]|0)+56|0;c[e>>2]=-1090891868;c[e+4>>2]=1203062813;e=(c[f>>2]|0)+128|0;c[e>>2]=0;c[e+4>>2]=0;e=(c[f>>2]|0)+136|0;c[e>>2]=0;c[e+4>>2]=0;c[(c[f>>2]|0)+144>>2]=0;c[(c[f>>2]|0)+148>>2]=128;c[(c[f>>2]|0)+152>>2]=34;l=d;return}function Dm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;j=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[f>>2];c[j>>2]=Km(c[i>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;bf(47);cf();l=e;return c[j>>2]|0}function Em(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[f>>2];Jm(c[i>>2]|0,c[g>>2]|0,c[h>>2]|0);l=e;return 36}function Fm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[f>>2];Gm(c[i>>2]|0,c[g>>2]|0,c[h>>2]|0);l=e;return 36}function Gm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;e=l;l=l+48|0;if((l|0)>=(m|0))$(48);f=e+32|0;g=e+28|0;h=e+24|0;i=e+20|0;j=e+16|0;k=e+12|0;n=e+8|0;o=e+4|0;p=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[k>>2]=Hm(c[h>>2]|0)|0;c[k>>2]=c[k>>2]^c[(c[f>>2]|0)+4096+16>>2];c[n>>2]=Hm((c[h>>2]|0)+4|0)|0;c[n>>2]=c[n>>2]^c[(c[f>>2]|0)+4096+20>>2];c[i>>2]=Hm((c[h>>2]|0)+8|0)|0;c[i>>2]=c[i>>2]^c[(c[f>>2]|0)+4096+24>>2];c[j>>2]=Hm((c[h>>2]|0)+12|0)|0;c[j>>2]=c[j>>2]^c[(c[f>>2]|0)+4096+28>>2];c[o>>2]=c[(c[f>>2]|0)+((c[k>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+1024+(((c[k>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[k>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+3072+((c[k>>2]|0)>>>24<<2)>>2];c[p>>2]=c[(c[f>>2]|0)+1024+((c[n>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[n>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+3072+(((c[n>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+((c[n>>2]|0)>>>24<<2)>>2];c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[p>>2]=(c[p>>2]|0)+(c[o>>2]|0);c[j>>2]=c[j>>2]^(c[p>>2]|0)+(c[(c[f>>2]|0)+4128+124>>2]|0);c[j>>2]=((c[j>>2]|0)>>>1)+(c[j>>2]<<31);c[i>>2]=(c[i>>2]<<1)+((c[i>>2]|0)>>>31);c[i>>2]=c[i>>2]^(c[o>>2]|0)+(c[(c[f>>2]|0)+4128+120>>2]|0);c[o>>2]=c[(c[f>>2]|0)+((c[i>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+1024+(((c[i>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[i>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+3072+((c[i>>2]|0)>>>24<<2)>>2];c[p>>2]=c[(c[f>>2]|0)+1024+((c[j>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[j>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+3072+(((c[j>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+((c[j>>2]|0)>>>24<<2)>>2];c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[p>>2]=(c[p>>2]|0)+(c[o>>2]|0);c[n>>2]=c[n>>2]^(c[p>>2]|0)+(c[(c[f>>2]|0)+4128+116>>2]|0);c[n>>2]=((c[n>>2]|0)>>>1)+(c[n>>2]<<31);c[k>>2]=(c[k>>2]<<1)+((c[k>>2]|0)>>>31);c[k>>2]=c[k>>2]^(c[o>>2]|0)+(c[(c[f>>2]|0)+4128+112>>2]|0);c[o>>2]=c[(c[f>>2]|0)+((c[k>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+1024+(((c[k>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[k>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+3072+((c[k>>2]|0)>>>24<<2)>>2];c[p>>2]=c[(c[f>>2]|0)+1024+((c[n>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[n>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+3072+(((c[n>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+((c[n>>2]|0)>>>24<<2)>>2];c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[p>>2]=(c[p>>2]|0)+(c[o>>2]|0);c[j>>2]=c[j>>2]^(c[p>>2]|0)+(c[(c[f>>2]|0)+4128+108>>2]|0);c[j>>2]=((c[j>>2]|0)>>>1)+(c[j>>2]<<31);c[i>>2]=(c[i>>2]<<1)+((c[i>>2]|0)>>>31);c[i>>2]=c[i>>2]^(c[o>>2]|0)+(c[(c[f>>2]|0)+4128+104>>2]|0);c[o>>2]=c[(c[f>>2]|0)+((c[i>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+1024+(((c[i>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[i>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+3072+((c[i>>2]|0)>>>24<<2)>>2];c[p>>2]=c[(c[f>>2]|0)+1024+((c[j>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[j>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+3072+(((c[j>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+((c[j>>2]|0)>>>24<<2)>>2];c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[p>>2]=(c[p>>2]|0)+(c[o>>2]|0);c[n>>2]=c[n>>2]^(c[p>>2]|0)+(c[(c[f>>2]|0)+4128+100>>2]|0);c[n>>2]=((c[n>>2]|0)>>>1)+(c[n>>2]<<31);c[k>>2]=(c[k>>2]<<1)+((c[k>>2]|0)>>>31);c[k>>2]=c[k>>2]^(c[o>>2]|0)+(c[(c[f>>2]|0)+4128+96>>2]|0);c[o>>2]=c[(c[f>>2]|0)+((c[k>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+1024+(((c[k>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[k>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+3072+((c[k>>2]|0)>>>24<<2)>>2];c[p>>2]=c[(c[f>>2]|0)+1024+((c[n>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[n>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+3072+(((c[n>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+((c[n>>2]|0)>>>24<<2)>>2];c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[p>>2]=(c[p>>2]|0)+(c[o>>2]|0);c[j>>2]=c[j>>2]^(c[p>>2]|0)+(c[(c[f>>2]|0)+4128+92>>2]|0);c[j>>2]=((c[j>>2]|0)>>>1)+(c[j>>2]<<31);c[i>>2]=(c[i>>2]<<1)+((c[i>>2]|0)>>>31);c[i>>2]=c[i>>2]^(c[o>>2]|0)+(c[(c[f>>2]|0)+4128+88>>2]|0);c[o>>2]=c[(c[f>>2]|0)+((c[i>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+1024+(((c[i>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[i>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+3072+((c[i>>2]|0)>>>24<<2)>>2];c[p>>2]=c[(c[f>>2]|0)+1024+((c[j>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[j>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+3072+(((c[j>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+((c[j>>2]|0)>>>24<<2)>>2];c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[p>>2]=(c[p>>2]|0)+(c[o>>2]|0);c[n>>2]=c[n>>2]^(c[p>>2]|0)+(c[(c[f>>2]|0)+4128+84>>2]|0);c[n>>2]=((c[n>>2]|0)>>>1)+(c[n>>2]<<31);c[k>>2]=(c[k>>2]<<1)+((c[k>>2]|0)>>>31);c[k>>2]=c[k>>2]^(c[o>>2]|0)+(c[(c[f>>2]|0)+4128+80>>2]|0);c[o>>2]=c[(c[f>>2]|0)+((c[k>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+1024+(((c[k>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[k>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+3072+((c[k>>2]|0)>>>24<<2)>>2];c[p>>2]=c[(c[f>>2]|0)+1024+((c[n>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[n>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+3072+(((c[n>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+((c[n>>2]|0)>>>24<<2)>>2];c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[p>>2]=(c[p>>2]|0)+(c[o>>2]|0);c[j>>2]=c[j>>2]^(c[p>>2]|0)+(c[(c[f>>2]|0)+4128+76>>2]|0);c[j>>2]=((c[j>>2]|0)>>>1)+(c[j>>2]<<31);c[i>>2]=(c[i>>2]<<1)+((c[i>>2]|0)>>>31);c[i>>2]=c[i>>2]^(c[o>>2]|0)+(c[(c[f>>2]|0)+4128+72>>2]|0);c[o>>2]=c[(c[f>>2]|0)+((c[i>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+1024+(((c[i>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[i>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+3072+((c[i>>2]|0)>>>24<<2)>>2];c[p>>2]=c[(c[f>>2]|0)+1024+((c[j>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[j>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+3072+(((c[j>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+((c[j>>2]|0)>>>24<<2)>>2];c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[p>>2]=(c[p>>2]|0)+(c[o>>2]|0);c[n>>2]=c[n>>2]^(c[p>>2]|0)+(c[(c[f>>2]|0)+4128+68>>2]|0);c[n>>2]=((c[n>>2]|0)>>>1)+(c[n>>2]<<31);c[k>>2]=(c[k>>2]<<1)+((c[k>>2]|0)>>>31);c[k>>2]=c[k>>2]^(c[o>>2]|0)+(c[(c[f>>2]|0)+4128+64>>2]|0);c[o>>2]=c[(c[f>>2]|0)+((c[k>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+1024+(((c[k>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[k>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+3072+((c[k>>2]|0)>>>24<<2)>>2];c[p>>2]=c[(c[f>>2]|0)+1024+((c[n>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[n>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+3072+(((c[n>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+((c[n>>2]|0)>>>24<<2)>>2];c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[p>>2]=(c[p>>2]|0)+(c[o>>2]|0);c[j>>2]=c[j>>2]^(c[p>>2]|0)+(c[(c[f>>2]|0)+4128+60>>2]|0);c[j>>2]=((c[j>>2]|0)>>>1)+(c[j>>2]<<31);c[i>>2]=(c[i>>2]<<1)+((c[i>>2]|0)>>>31);c[i>>2]=c[i>>2]^(c[o>>2]|0)+(c[(c[f>>2]|0)+4128+56>>2]|0);c[o>>2]=c[(c[f>>2]|0)+((c[i>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+1024+(((c[i>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[i>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+3072+((c[i>>2]|0)>>>24<<2)>>2];c[p>>2]=c[(c[f>>2]|0)+1024+((c[j>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[j>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+3072+(((c[j>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+((c[j>>2]|0)>>>24<<2)>>2];c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[p>>2]=(c[p>>2]|0)+(c[o>>2]|0);c[n>>2]=c[n>>2]^(c[p>>2]|0)+(c[(c[f>>2]|0)+4128+52>>2]|0);c[n>>2]=((c[n>>2]|0)>>>1)+(c[n>>2]<<31);c[k>>2]=(c[k>>2]<<1)+((c[k>>2]|0)>>>31);c[k>>2]=c[k>>2]^(c[o>>2]|0)+(c[(c[f>>2]|0)+4128+48>>2]|0);c[o>>2]=c[(c[f>>2]|0)+((c[k>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+1024+(((c[k>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[k>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+3072+((c[k>>2]|0)>>>24<<2)>>2];c[p>>2]=c[(c[f>>2]|0)+1024+((c[n>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[n>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+3072+(((c[n>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+((c[n>>2]|0)>>>24<<2)>>2];c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[p>>2]=(c[p>>2]|0)+(c[o>>2]|0);c[j>>2]=c[j>>2]^(c[p>>2]|0)+(c[(c[f>>2]|0)+4128+44>>2]|0);c[j>>2]=((c[j>>2]|0)>>>1)+(c[j>>2]<<31);c[i>>2]=(c[i>>2]<<1)+((c[i>>2]|0)>>>31);c[i>>2]=c[i>>2]^(c[o>>2]|0)+(c[(c[f>>2]|0)+4128+40>>2]|0);c[o>>2]=c[(c[f>>2]|0)+((c[i>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+1024+(((c[i>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[i>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+3072+((c[i>>2]|0)>>>24<<2)>>2];c[p>>2]=c[(c[f>>2]|0)+1024+((c[j>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[j>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+3072+(((c[j>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+((c[j>>2]|0)>>>24<<2)>>2];c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[p>>2]=(c[p>>2]|0)+(c[o>>2]|0);c[n>>2]=c[n>>2]^(c[p>>2]|0)+(c[(c[f>>2]|0)+4128+36>>2]|0);c[n>>2]=((c[n>>2]|0)>>>1)+(c[n>>2]<<31);c[k>>2]=(c[k>>2]<<1)+((c[k>>2]|0)>>>31);c[k>>2]=c[k>>2]^(c[o>>2]|0)+(c[(c[f>>2]|0)+4128+32>>2]|0);c[o>>2]=c[(c[f>>2]|0)+((c[k>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+1024+(((c[k>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[k>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+3072+((c[k>>2]|0)>>>24<<2)>>2];c[p>>2]=c[(c[f>>2]|0)+1024+((c[n>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[n>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+3072+(((c[n>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+((c[n>>2]|0)>>>24<<2)>>2];c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[p>>2]=(c[p>>2]|0)+(c[o>>2]|0);c[j>>2]=c[j>>2]^(c[p>>2]|0)+(c[(c[f>>2]|0)+4128+28>>2]|0);c[j>>2]=((c[j>>2]|0)>>>1)+(c[j>>2]<<31);c[i>>2]=(c[i>>2]<<1)+((c[i>>2]|0)>>>31);c[i>>2]=c[i>>2]^(c[o>>2]|0)+(c[(c[f>>2]|0)+4128+24>>2]|0);c[o>>2]=c[(c[f>>2]|0)+((c[i>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+1024+(((c[i>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[i>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+3072+((c[i>>2]|0)>>>24<<2)>>2];c[p>>2]=c[(c[f>>2]|0)+1024+((c[j>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[j>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+3072+(((c[j>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+((c[j>>2]|0)>>>24<<2)>>2];c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[p>>2]=(c[p>>2]|0)+(c[o>>2]|0);c[n>>2]=c[n>>2]^(c[p>>2]|0)+(c[(c[f>>2]|0)+4128+20>>2]|0);c[n>>2]=((c[n>>2]|0)>>>1)+(c[n>>2]<<31);c[k>>2]=(c[k>>2]<<1)+((c[k>>2]|0)>>>31);c[k>>2]=c[k>>2]^(c[o>>2]|0)+(c[(c[f>>2]|0)+4128+16>>2]|0);c[o>>2]=c[(c[f>>2]|0)+((c[k>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+1024+(((c[k>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[k>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+3072+((c[k>>2]|0)>>>24<<2)>>2];c[p>>2]=c[(c[f>>2]|0)+1024+((c[n>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[n>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+3072+(((c[n>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+((c[n>>2]|0)>>>24<<2)>>2];c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[p>>2]=(c[p>>2]|0)+(c[o>>2]|0);c[j>>2]=c[j>>2]^(c[p>>2]|0)+(c[(c[f>>2]|0)+4128+12>>2]|0);c[j>>2]=((c[j>>2]|0)>>>1)+(c[j>>2]<<31);c[i>>2]=(c[i>>2]<<1)+((c[i>>2]|0)>>>31);c[i>>2]=c[i>>2]^(c[o>>2]|0)+(c[(c[f>>2]|0)+4128+8>>2]|0);c[o>>2]=c[(c[f>>2]|0)+((c[i>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+1024+(((c[i>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[i>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+3072+((c[i>>2]|0)>>>24<<2)>>2];c[p>>2]=c[(c[f>>2]|0)+1024+((c[j>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[j>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+3072+(((c[j>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+((c[j>>2]|0)>>>24<<2)>>2];c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[p>>2]=(c[p>>2]|0)+(c[o>>2]|0);c[n>>2]=c[n>>2]^(c[p>>2]|0)+(c[(c[f>>2]|0)+4128+4>>2]|0);c[n>>2]=((c[n>>2]|0)>>>1)+(c[n>>2]<<31);c[k>>2]=(c[k>>2]<<1)+((c[k>>2]|0)>>>31);c[k>>2]=c[k>>2]^(c[o>>2]|0)+(c[(c[f>>2]|0)+4128>>2]|0);c[i>>2]=c[i>>2]^c[(c[f>>2]|0)+4096>>2];Im(c[g>>2]|0,c[i>>2]|0);c[j>>2]=c[j>>2]^c[(c[f>>2]|0)+4096+4>>2];Im((c[g>>2]|0)+4|0,c[j>>2]|0);c[k>>2]=c[k>>2]^c[(c[f>>2]|0)+4096+8>>2];Im((c[g>>2]|0)+8|0,c[k>>2]|0);c[n>>2]=c[n>>2]^c[(c[f>>2]|0)+4096+12>>2];Im((c[g>>2]|0)+12|0,c[n>>2]|0);l=e;return}function Hm(a){a=a|0;var b=0,e=0,f=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=b+4|0;f=b;c[e>>2]=a;c[f>>2]=c[e>>2];l=b;return (d[(c[f>>2]|0)+3>>0]|0)<<24|(d[(c[f>>2]|0)+2>>0]|0)<<16|(d[(c[f>>2]|0)+1>>0]|0)<<8|(d[c[f>>2]>>0]|0)|0}function Im(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=b;c[g>>2]=d;c[h>>2]=c[f>>2];a[(c[h>>2]|0)+3>>0]=(c[g>>2]|0)>>>24;a[(c[h>>2]|0)+2>>0]=(c[g>>2]|0)>>>16;a[(c[h>>2]|0)+1>>0]=(c[g>>2]|0)>>>8;a[c[h>>2]>>0]=c[g>>2];l=e;return}function Jm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;e=l;l=l+48|0;if((l|0)>=(m|0))$(48);f=e+32|0;g=e+28|0;h=e+24|0;i=e+20|0;j=e+16|0;k=e+12|0;n=e+8|0;o=e+4|0;p=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=Hm(c[h>>2]|0)|0;c[i>>2]=c[i>>2]^c[(c[f>>2]|0)+4096>>2];c[j>>2]=Hm((c[h>>2]|0)+4|0)|0;c[j>>2]=c[j>>2]^c[(c[f>>2]|0)+4096+4>>2];c[k>>2]=Hm((c[h>>2]|0)+8|0)|0;c[k>>2]=c[k>>2]^c[(c[f>>2]|0)+4096+8>>2];c[n>>2]=Hm((c[h>>2]|0)+12|0)|0;c[n>>2]=c[n>>2]^c[(c[f>>2]|0)+4096+12>>2];c[o>>2]=c[(c[f>>2]|0)+((c[i>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+1024+(((c[i>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[i>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+3072+((c[i>>2]|0)>>>24<<2)>>2];c[p>>2]=c[(c[f>>2]|0)+1024+((c[j>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[j>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+3072+(((c[j>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+((c[j>>2]|0)>>>24<<2)>>2];c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[p>>2]=(c[p>>2]|0)+((c[o>>2]|0)+(c[(c[f>>2]|0)+4128+4>>2]|0));c[k>>2]=c[k>>2]^(c[o>>2]|0)+(c[(c[f>>2]|0)+4128>>2]|0);c[k>>2]=((c[k>>2]|0)>>>1)+(c[k>>2]<<31);c[n>>2]=(c[n>>2]<<1)+((c[n>>2]|0)>>>31)^c[p>>2];c[o>>2]=c[(c[f>>2]|0)+((c[k>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+1024+(((c[k>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[k>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+3072+((c[k>>2]|0)>>>24<<2)>>2];c[p>>2]=c[(c[f>>2]|0)+1024+((c[n>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[n>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+3072+(((c[n>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+((c[n>>2]|0)>>>24<<2)>>2];c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[p>>2]=(c[p>>2]|0)+((c[o>>2]|0)+(c[(c[f>>2]|0)+4128+12>>2]|0));c[i>>2]=c[i>>2]^(c[o>>2]|0)+(c[(c[f>>2]|0)+4128+8>>2]|0);c[i>>2]=((c[i>>2]|0)>>>1)+(c[i>>2]<<31);c[j>>2]=(c[j>>2]<<1)+((c[j>>2]|0)>>>31)^c[p>>2];c[o>>2]=c[(c[f>>2]|0)+((c[i>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+1024+(((c[i>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[i>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+3072+((c[i>>2]|0)>>>24<<2)>>2];c[p>>2]=c[(c[f>>2]|0)+1024+((c[j>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[j>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+3072+(((c[j>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+((c[j>>2]|0)>>>24<<2)>>2];c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[p>>2]=(c[p>>2]|0)+((c[o>>2]|0)+(c[(c[f>>2]|0)+4128+20>>2]|0));c[k>>2]=c[k>>2]^(c[o>>2]|0)+(c[(c[f>>2]|0)+4128+16>>2]|0);c[k>>2]=((c[k>>2]|0)>>>1)+(c[k>>2]<<31);c[n>>2]=(c[n>>2]<<1)+((c[n>>2]|0)>>>31)^c[p>>2];c[o>>2]=c[(c[f>>2]|0)+((c[k>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+1024+(((c[k>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[k>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+3072+((c[k>>2]|0)>>>24<<2)>>2];c[p>>2]=c[(c[f>>2]|0)+1024+((c[n>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[n>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+3072+(((c[n>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+((c[n>>2]|0)>>>24<<2)>>2];c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[p>>2]=(c[p>>2]|0)+((c[o>>2]|0)+(c[(c[f>>2]|0)+4128+28>>2]|0));c[i>>2]=c[i>>2]^(c[o>>2]|0)+(c[(c[f>>2]|0)+4128+24>>2]|0);c[i>>2]=((c[i>>2]|0)>>>1)+(c[i>>2]<<31);c[j>>2]=(c[j>>2]<<1)+((c[j>>2]|0)>>>31)^c[p>>2];c[o>>2]=c[(c[f>>2]|0)+((c[i>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+1024+(((c[i>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[i>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+3072+((c[i>>2]|0)>>>24<<2)>>2];c[p>>2]=c[(c[f>>2]|0)+1024+((c[j>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[j>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+3072+(((c[j>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+((c[j>>2]|0)>>>24<<2)>>2];c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[p>>2]=(c[p>>2]|0)+((c[o>>2]|0)+(c[(c[f>>2]|0)+4128+36>>2]|0));c[k>>2]=c[k>>2]^(c[o>>2]|0)+(c[(c[f>>2]|0)+4128+32>>2]|0);c[k>>2]=((c[k>>2]|0)>>>1)+(c[k>>2]<<31);c[n>>2]=(c[n>>2]<<1)+((c[n>>2]|0)>>>31)^c[p>>2];c[o>>2]=c[(c[f>>2]|0)+((c[k>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+1024+(((c[k>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[k>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+3072+((c[k>>2]|0)>>>24<<2)>>2];c[p>>2]=c[(c[f>>2]|0)+1024+((c[n>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[n>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+3072+(((c[n>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+((c[n>>2]|0)>>>24<<2)>>2];c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[p>>2]=(c[p>>2]|0)+((c[o>>2]|0)+(c[(c[f>>2]|0)+4128+44>>2]|0));c[i>>2]=c[i>>2]^(c[o>>2]|0)+(c[(c[f>>2]|0)+4128+40>>2]|0);c[i>>2]=((c[i>>2]|0)>>>1)+(c[i>>2]<<31);c[j>>2]=(c[j>>2]<<1)+((c[j>>2]|0)>>>31)^c[p>>2];c[o>>2]=c[(c[f>>2]|0)+((c[i>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+1024+(((c[i>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[i>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+3072+((c[i>>2]|0)>>>24<<2)>>2];c[p>>2]=c[(c[f>>2]|0)+1024+((c[j>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[j>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+3072+(((c[j>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+((c[j>>2]|0)>>>24<<2)>>2];c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[p>>2]=(c[p>>2]|0)+((c[o>>2]|0)+(c[(c[f>>2]|0)+4128+52>>2]|0));c[k>>2]=c[k>>2]^(c[o>>2]|0)+(c[(c[f>>2]|0)+4128+48>>2]|0);c[k>>2]=((c[k>>2]|0)>>>1)+(c[k>>2]<<31);c[n>>2]=(c[n>>2]<<1)+((c[n>>2]|0)>>>31)^c[p>>2];c[o>>2]=c[(c[f>>2]|0)+((c[k>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+1024+(((c[k>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[k>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+3072+((c[k>>2]|0)>>>24<<2)>>2];c[p>>2]=c[(c[f>>2]|0)+1024+((c[n>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[n>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+3072+(((c[n>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+((c[n>>2]|0)>>>24<<2)>>2];c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[p>>2]=(c[p>>2]|0)+((c[o>>2]|0)+(c[(c[f>>2]|0)+4128+60>>2]|0));c[i>>2]=c[i>>2]^(c[o>>2]|0)+(c[(c[f>>2]|0)+4128+56>>2]|0);c[i>>2]=((c[i>>2]|0)>>>1)+(c[i>>2]<<31);c[j>>2]=(c[j>>2]<<1)+((c[j>>2]|0)>>>31)^c[p>>2];c[o>>2]=c[(c[f>>2]|0)+((c[i>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+1024+(((c[i>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[i>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+3072+((c[i>>2]|0)>>>24<<2)>>2];c[p>>2]=c[(c[f>>2]|0)+1024+((c[j>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[j>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+3072+(((c[j>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+((c[j>>2]|0)>>>24<<2)>>2];c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[p>>2]=(c[p>>2]|0)+((c[o>>2]|0)+(c[(c[f>>2]|0)+4128+68>>2]|0));c[k>>2]=c[k>>2]^(c[o>>2]|0)+(c[(c[f>>2]|0)+4128+64>>2]|0);c[k>>2]=((c[k>>2]|0)>>>1)+(c[k>>2]<<31);c[n>>2]=(c[n>>2]<<1)+((c[n>>2]|0)>>>31)^c[p>>2];c[o>>2]=c[(c[f>>2]|0)+((c[k>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+1024+(((c[k>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[k>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+3072+((c[k>>2]|0)>>>24<<2)>>2];c[p>>2]=c[(c[f>>2]|0)+1024+((c[n>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[n>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+3072+(((c[n>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+((c[n>>2]|0)>>>24<<2)>>2];c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[p>>2]=(c[p>>2]|0)+((c[o>>2]|0)+(c[(c[f>>2]|0)+4128+76>>2]|0));c[i>>2]=c[i>>2]^(c[o>>2]|0)+(c[(c[f>>2]|0)+4128+72>>2]|0);c[i>>2]=((c[i>>2]|0)>>>1)+(c[i>>2]<<31);c[j>>2]=(c[j>>2]<<1)+((c[j>>2]|0)>>>31)^c[p>>2];c[o>>2]=c[(c[f>>2]|0)+((c[i>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+1024+(((c[i>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[i>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+3072+((c[i>>2]|0)>>>24<<2)>>2];c[p>>2]=c[(c[f>>2]|0)+1024+((c[j>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[j>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+3072+(((c[j>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+((c[j>>2]|0)>>>24<<2)>>2];c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[p>>2]=(c[p>>2]|0)+((c[o>>2]|0)+(c[(c[f>>2]|0)+4128+84>>2]|0));c[k>>2]=c[k>>2]^(c[o>>2]|0)+(c[(c[f>>2]|0)+4128+80>>2]|0);c[k>>2]=((c[k>>2]|0)>>>1)+(c[k>>2]<<31);c[n>>2]=(c[n>>2]<<1)+((c[n>>2]|0)>>>31)^c[p>>2];c[o>>2]=c[(c[f>>2]|0)+((c[k>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+1024+(((c[k>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[k>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+3072+((c[k>>2]|0)>>>24<<2)>>2];c[p>>2]=c[(c[f>>2]|0)+1024+((c[n>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[n>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+3072+(((c[n>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+((c[n>>2]|0)>>>24<<2)>>2];c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[p>>2]=(c[p>>2]|0)+((c[o>>2]|0)+(c[(c[f>>2]|0)+4128+92>>2]|0));c[i>>2]=c[i>>2]^(c[o>>2]|0)+(c[(c[f>>2]|0)+4128+88>>2]|0);c[i>>2]=((c[i>>2]|0)>>>1)+(c[i>>2]<<31);c[j>>2]=(c[j>>2]<<1)+((c[j>>2]|0)>>>31)^c[p>>2];c[o>>2]=c[(c[f>>2]|0)+((c[i>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+1024+(((c[i>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[i>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+3072+((c[i>>2]|0)>>>24<<2)>>2];c[p>>2]=c[(c[f>>2]|0)+1024+((c[j>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[j>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+3072+(((c[j>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+((c[j>>2]|0)>>>24<<2)>>2];c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[p>>2]=(c[p>>2]|0)+((c[o>>2]|0)+(c[(c[f>>2]|0)+4128+100>>2]|0));c[k>>2]=c[k>>2]^(c[o>>2]|0)+(c[(c[f>>2]|0)+4128+96>>2]|0);c[k>>2]=((c[k>>2]|0)>>>1)+(c[k>>2]<<31);c[n>>2]=(c[n>>2]<<1)+((c[n>>2]|0)>>>31)^c[p>>2];c[o>>2]=c[(c[f>>2]|0)+((c[k>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+1024+(((c[k>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[k>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+3072+((c[k>>2]|0)>>>24<<2)>>2];c[p>>2]=c[(c[f>>2]|0)+1024+((c[n>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[n>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+3072+(((c[n>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+((c[n>>2]|0)>>>24<<2)>>2];c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[p>>2]=(c[p>>2]|0)+((c[o>>2]|0)+(c[(c[f>>2]|0)+4128+108>>2]|0));c[i>>2]=c[i>>2]^(c[o>>2]|0)+(c[(c[f>>2]|0)+4128+104>>2]|0);c[i>>2]=((c[i>>2]|0)>>>1)+(c[i>>2]<<31);c[j>>2]=(c[j>>2]<<1)+((c[j>>2]|0)>>>31)^c[p>>2];c[o>>2]=c[(c[f>>2]|0)+((c[i>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+1024+(((c[i>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[i>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+3072+((c[i>>2]|0)>>>24<<2)>>2];c[p>>2]=c[(c[f>>2]|0)+1024+((c[j>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[j>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+3072+(((c[j>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+((c[j>>2]|0)>>>24<<2)>>2];c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[p>>2]=(c[p>>2]|0)+((c[o>>2]|0)+(c[(c[f>>2]|0)+4128+116>>2]|0));c[k>>2]=c[k>>2]^(c[o>>2]|0)+(c[(c[f>>2]|0)+4128+112>>2]|0);c[k>>2]=((c[k>>2]|0)>>>1)+(c[k>>2]<<31);c[n>>2]=(c[n>>2]<<1)+((c[n>>2]|0)>>>31)^c[p>>2];c[o>>2]=c[(c[f>>2]|0)+((c[k>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+1024+(((c[k>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[k>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+3072+((c[k>>2]|0)>>>24<<2)>>2];c[p>>2]=c[(c[f>>2]|0)+1024+((c[n>>2]&255)<<2)>>2]^c[(c[f>>2]|0)+2048+(((c[n>>2]|0)>>>8&255)<<2)>>2]^c[(c[f>>2]|0)+3072+(((c[n>>2]|0)>>>16&255)<<2)>>2]^c[(c[f>>2]|0)+((c[n>>2]|0)>>>24<<2)>>2];c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[p>>2]=(c[p>>2]|0)+((c[o>>2]|0)+(c[(c[f>>2]|0)+4128+124>>2]|0));c[i>>2]=c[i>>2]^(c[o>>2]|0)+(c[(c[f>>2]|0)+4128+120>>2]|0);c[i>>2]=((c[i>>2]|0)>>>1)+(c[i>>2]<<31);c[j>>2]=(c[j>>2]<<1)+((c[j>>2]|0)>>>31)^c[p>>2];c[k>>2]=c[k>>2]^c[(c[f>>2]|0)+4096+16>>2];Im(c[g>>2]|0,c[k>>2]|0);c[n>>2]=c[n>>2]^c[(c[f>>2]|0)+4096+20>>2];Im((c[g>>2]|0)+4|0,c[n>>2]|0);c[i>>2]=c[i>>2]^c[(c[f>>2]|0)+4096+24>>2];Im((c[g>>2]|0)+8|0,c[i>>2]|0);c[j>>2]=c[j>>2]^c[(c[f>>2]|0)+4096+28>>2];Im((c[g>>2]|0)+12|0,c[j>>2]|0);l=e;return} -function Km(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;g=l;l=l+64|0;if((l|0)>=(m|0))$(64);h=g;i=g+36|0;j=g+32|0;k=g+28|0;n=g+24|0;o=g+20|0;p=g+16|0;q=g+12|0;r=g+8|0;s=g+4|0;t=g+56|0;u=g+55|0;v=g+54|0;w=g+53|0;x=g+52|0;y=g+51|0;z=g+50|0;A=g+49|0;B=g+48|0;C=g+47|0;D=g+46|0;E=g+45|0;F=g+44|0;G=g+43|0;H=g+42|0;I=g+41|0;J=g+40|0;c[j>>2]=b;c[k>>2]=e;c[n>>2]=f;a[t>>0]=0;a[u>>0]=0;a[v>>0]=0;a[w>>0]=0;a[x>>0]=0;a[y>>0]=0;a[z>>0]=0;a[A>>0]=0;a[B>>0]=0;a[C>>0]=0;a[D>>0]=0;a[E>>0]=0;a[F>>0]=0;a[G>>0]=0;a[H>>0]=0;a[I>>0]=0;if(((c[n>>2]|0)-16|16|0)!=16){c[i>>2]=44;K=c[i>>2]|0;l=g;return K|0}if((c[17740]|0)==0?(c[17740]=1,c[17741]=Lm()|0,c[17741]|0):0){c[h>>2]=c[17741];Ve(43492,h)}if(c[17741]|0){c[i>>2]=50;K=c[i>>2]|0;l=g;return K|0}if(a[c[k>>2]>>0]|0){a[J>>0]=a[43496+((d[c[k>>2]>>0]|0)-1)>>0]|0;a[t>>0]=d[t>>0]^d[43751+((d[J>>0]|0)+0)>>0];a[u>>0]=d[u>>0]^d[43751+((d[J>>0]|0)+45)>>0];a[v>>0]=d[v>>0]^d[43751+((d[J>>0]|0)+1)>>0];a[w>>0]=d[w>>0]^d[43751+((d[J>>0]|0)+45)>>0]}if(a[(c[k>>2]|0)+1>>0]|0){a[J>>0]=a[43496+((d[(c[k>>2]|0)+1>>0]|0)-1)>>0]|0;a[t>>0]=d[t>>0]^d[43751+((d[J>>0]|0)+45)>>0];a[u>>0]=d[u>>0]^d[43751+((d[J>>0]|0)+164)>>0];a[v>>0]=d[v>>0]^d[43751+((d[J>>0]|0)+68)>>0];a[w>>0]=d[w>>0]^d[43751+((d[J>>0]|0)+138)>>0]}if(a[(c[k>>2]|0)+2>>0]|0){a[J>>0]=a[43496+((d[(c[k>>2]|0)+2>>0]|0)-1)>>0]|0;a[t>>0]=d[t>>0]^d[43751+((d[J>>0]|0)+138)>>0];a[u>>0]=d[u>>0]^d[43751+((d[J>>0]|0)+213)>>0];a[v>>0]=d[v>>0]^d[43751+((d[J>>0]|0)+191)>>0];a[w>>0]=d[w>>0]^d[43751+((d[J>>0]|0)+209)>>0]}if(a[(c[k>>2]|0)+3>>0]|0){a[J>>0]=a[43496+((d[(c[k>>2]|0)+3>>0]|0)-1)>>0]|0;a[t>>0]=d[t>>0]^d[43751+((d[J>>0]|0)+209)>>0];a[u>>0]=d[u>>0]^d[43751+((d[J>>0]|0)+127)>>0];a[v>>0]=d[v>>0]^d[43751+((d[J>>0]|0)+61)>>0];a[w>>0]=d[w>>0]^d[43751+((d[J>>0]|0)+153)>>0]}if(a[(c[k>>2]|0)+4>>0]|0){a[J>>0]=a[43496+((d[(c[k>>2]|0)+4>>0]|0)-1)>>0]|0;a[t>>0]=d[t>>0]^d[43751+((d[J>>0]|0)+153)>>0];a[u>>0]=d[u>>0]^d[43751+((d[J>>0]|0)+70)>>0];a[v>>0]=d[v>>0]^d[43751+((d[J>>0]|0)+102)>>0];a[w>>0]=d[w>>0]^d[43751+((d[J>>0]|0)+150)>>0]}if(a[(c[k>>2]|0)+5>>0]|0){a[J>>0]=a[43496+((d[(c[k>>2]|0)+5>>0]|0)-1)>>0]|0;a[t>>0]=d[t>>0]^d[43751+((d[J>>0]|0)+150)>>0];a[u>>0]=d[u>>0]^d[43751+((d[J>>0]|0)+60)>>0];a[v>>0]=d[v>>0]^d[43751+((d[J>>0]|0)+91)>>0];a[w>>0]=d[w>>0]^d[43751+((d[J>>0]|0)+237)>>0]}if(a[(c[k>>2]|0)+6>>0]|0){a[J>>0]=a[43496+((d[(c[k>>2]|0)+6>>0]|0)-1)>>0]|0;a[t>>0]=d[t>>0]^d[43751+((d[J>>0]|0)+237)>>0];a[u>>0]=d[u>>0]^d[43751+((d[J>>0]|0)+55)>>0];a[v>>0]=d[v>>0]^d[43751+((d[J>>0]|0)+79)>>0];a[w>>0]=d[w>>0]^d[43751+((d[J>>0]|0)+224)>>0]}if(a[(c[k>>2]|0)+7>>0]|0){a[J>>0]=a[43496+((d[(c[k>>2]|0)+7>>0]|0)-1)>>0]|0;a[t>>0]=d[t>>0]^d[43751+((d[J>>0]|0)+224)>>0];a[u>>0]=d[u>>0]^d[43751+((d[J>>0]|0)+208)>>0];a[v>>0]=d[v>>0]^d[43751+((d[J>>0]|0)+140)>>0];a[w>>0]=d[w>>0]^d[43751+((d[J>>0]|0)+23)>>0]}if(a[(c[k>>2]|0)+8>>0]|0){a[J>>0]=a[43496+((d[(c[k>>2]|0)+8>>0]|0)-1)>>0]|0;a[x>>0]=d[x>>0]^d[43751+((d[J>>0]|0)+0)>>0];a[y>>0]=d[y>>0]^d[43751+((d[J>>0]|0)+45)>>0];a[z>>0]=d[z>>0]^d[43751+((d[J>>0]|0)+1)>>0];a[A>>0]=d[A>>0]^d[43751+((d[J>>0]|0)+45)>>0]}if(a[(c[k>>2]|0)+9>>0]|0){a[J>>0]=a[43496+((d[(c[k>>2]|0)+9>>0]|0)-1)>>0]|0;a[x>>0]=d[x>>0]^d[43751+((d[J>>0]|0)+45)>>0];a[y>>0]=d[y>>0]^d[43751+((d[J>>0]|0)+164)>>0];a[z>>0]=d[z>>0]^d[43751+((d[J>>0]|0)+68)>>0];a[A>>0]=d[A>>0]^d[43751+((d[J>>0]|0)+138)>>0]}if(a[(c[k>>2]|0)+10>>0]|0){a[J>>0]=a[43496+((d[(c[k>>2]|0)+10>>0]|0)-1)>>0]|0;a[x>>0]=d[x>>0]^d[43751+((d[J>>0]|0)+138)>>0];a[y>>0]=d[y>>0]^d[43751+((d[J>>0]|0)+213)>>0];a[z>>0]=d[z>>0]^d[43751+((d[J>>0]|0)+191)>>0];a[A>>0]=d[A>>0]^d[43751+((d[J>>0]|0)+209)>>0]}if(a[(c[k>>2]|0)+11>>0]|0){a[J>>0]=a[43496+((d[(c[k>>2]|0)+11>>0]|0)-1)>>0]|0;a[x>>0]=d[x>>0]^d[43751+((d[J>>0]|0)+209)>>0];a[y>>0]=d[y>>0]^d[43751+((d[J>>0]|0)+127)>>0];a[z>>0]=d[z>>0]^d[43751+((d[J>>0]|0)+61)>>0];a[A>>0]=d[A>>0]^d[43751+((d[J>>0]|0)+153)>>0]}if(a[(c[k>>2]|0)+12>>0]|0){a[J>>0]=a[43496+((d[(c[k>>2]|0)+12>>0]|0)-1)>>0]|0;a[x>>0]=d[x>>0]^d[43751+((d[J>>0]|0)+153)>>0];a[y>>0]=d[y>>0]^d[43751+((d[J>>0]|0)+70)>>0];a[z>>0]=d[z>>0]^d[43751+((d[J>>0]|0)+102)>>0];a[A>>0]=d[A>>0]^d[43751+((d[J>>0]|0)+150)>>0]}if(a[(c[k>>2]|0)+13>>0]|0){a[J>>0]=a[43496+((d[(c[k>>2]|0)+13>>0]|0)-1)>>0]|0;a[x>>0]=d[x>>0]^d[43751+((d[J>>0]|0)+150)>>0];a[y>>0]=d[y>>0]^d[43751+((d[J>>0]|0)+60)>>0];a[z>>0]=d[z>>0]^d[43751+((d[J>>0]|0)+91)>>0];a[A>>0]=d[A>>0]^d[43751+((d[J>>0]|0)+237)>>0]}if(a[(c[k>>2]|0)+14>>0]|0){a[J>>0]=a[43496+((d[(c[k>>2]|0)+14>>0]|0)-1)>>0]|0;a[x>>0]=d[x>>0]^d[43751+((d[J>>0]|0)+237)>>0];a[y>>0]=d[y>>0]^d[43751+((d[J>>0]|0)+55)>>0];a[z>>0]=d[z>>0]^d[43751+((d[J>>0]|0)+79)>>0];a[A>>0]=d[A>>0]^d[43751+((d[J>>0]|0)+224)>>0]}if(a[(c[k>>2]|0)+15>>0]|0){a[J>>0]=a[43496+((d[(c[k>>2]|0)+15>>0]|0)-1)>>0]|0;a[x>>0]=d[x>>0]^d[43751+((d[J>>0]|0)+224)>>0];a[y>>0]=d[y>>0]^d[43751+((d[J>>0]|0)+208)>>0];a[z>>0]=d[z>>0]^d[43751+((d[J>>0]|0)+140)>>0];a[A>>0]=d[A>>0]^d[43751+((d[J>>0]|0)+23)>>0]}if((c[n>>2]|0)==32){if(a[(c[k>>2]|0)+16>>0]|0){a[J>>0]=a[43496+((d[(c[k>>2]|0)+16>>0]|0)-1)>>0]|0;a[B>>0]=d[B>>0]^d[43751+((d[J>>0]|0)+0)>>0];a[C>>0]=d[C>>0]^d[43751+((d[J>>0]|0)+45)>>0];a[D>>0]=d[D>>0]^d[43751+((d[J>>0]|0)+1)>>0];a[E>>0]=d[E>>0]^d[43751+((d[J>>0]|0)+45)>>0]}if(a[(c[k>>2]|0)+17>>0]|0){a[J>>0]=a[43496+((d[(c[k>>2]|0)+17>>0]|0)-1)>>0]|0;a[B>>0]=d[B>>0]^d[43751+((d[J>>0]|0)+45)>>0];a[C>>0]=d[C>>0]^d[43751+((d[J>>0]|0)+164)>>0];a[D>>0]=d[D>>0]^d[43751+((d[J>>0]|0)+68)>>0];a[E>>0]=d[E>>0]^d[43751+((d[J>>0]|0)+138)>>0]}if(a[(c[k>>2]|0)+18>>0]|0){a[J>>0]=a[43496+((d[(c[k>>2]|0)+18>>0]|0)-1)>>0]|0;a[B>>0]=d[B>>0]^d[43751+((d[J>>0]|0)+138)>>0];a[C>>0]=d[C>>0]^d[43751+((d[J>>0]|0)+213)>>0];a[D>>0]=d[D>>0]^d[43751+((d[J>>0]|0)+191)>>0];a[E>>0]=d[E>>0]^d[43751+((d[J>>0]|0)+209)>>0]}if(a[(c[k>>2]|0)+19>>0]|0){a[J>>0]=a[43496+((d[(c[k>>2]|0)+19>>0]|0)-1)>>0]|0;a[B>>0]=d[B>>0]^d[43751+((d[J>>0]|0)+209)>>0];a[C>>0]=d[C>>0]^d[43751+((d[J>>0]|0)+127)>>0];a[D>>0]=d[D>>0]^d[43751+((d[J>>0]|0)+61)>>0];a[E>>0]=d[E>>0]^d[43751+((d[J>>0]|0)+153)>>0]}if(a[(c[k>>2]|0)+20>>0]|0){a[J>>0]=a[43496+((d[(c[k>>2]|0)+20>>0]|0)-1)>>0]|0;a[B>>0]=d[B>>0]^d[43751+((d[J>>0]|0)+153)>>0];a[C>>0]=d[C>>0]^d[43751+((d[J>>0]|0)+70)>>0];a[D>>0]=d[D>>0]^d[43751+((d[J>>0]|0)+102)>>0];a[E>>0]=d[E>>0]^d[43751+((d[J>>0]|0)+150)>>0]}if(a[(c[k>>2]|0)+21>>0]|0){a[J>>0]=a[43496+((d[(c[k>>2]|0)+21>>0]|0)-1)>>0]|0;a[B>>0]=d[B>>0]^d[43751+((d[J>>0]|0)+150)>>0];a[C>>0]=d[C>>0]^d[43751+((d[J>>0]|0)+60)>>0];a[D>>0]=d[D>>0]^d[43751+((d[J>>0]|0)+91)>>0];a[E>>0]=d[E>>0]^d[43751+((d[J>>0]|0)+237)>>0]}if(a[(c[k>>2]|0)+22>>0]|0){a[J>>0]=a[43496+((d[(c[k>>2]|0)+22>>0]|0)-1)>>0]|0;a[B>>0]=d[B>>0]^d[43751+((d[J>>0]|0)+237)>>0];a[C>>0]=d[C>>0]^d[43751+((d[J>>0]|0)+55)>>0];a[D>>0]=d[D>>0]^d[43751+((d[J>>0]|0)+79)>>0];a[E>>0]=d[E>>0]^d[43751+((d[J>>0]|0)+224)>>0]}if(a[(c[k>>2]|0)+23>>0]|0){a[J>>0]=a[43496+((d[(c[k>>2]|0)+23>>0]|0)-1)>>0]|0;a[B>>0]=d[B>>0]^d[43751+((d[J>>0]|0)+224)>>0];a[C>>0]=d[C>>0]^d[43751+((d[J>>0]|0)+208)>>0];a[D>>0]=d[D>>0]^d[43751+((d[J>>0]|0)+140)>>0];a[E>>0]=d[E>>0]^d[43751+((d[J>>0]|0)+23)>>0]}if(a[(c[k>>2]|0)+24>>0]|0){a[J>>0]=a[43496+((d[(c[k>>2]|0)+24>>0]|0)-1)>>0]|0;a[F>>0]=d[F>>0]^d[43751+((d[J>>0]|0)+0)>>0];a[G>>0]=d[G>>0]^d[43751+((d[J>>0]|0)+45)>>0];a[H>>0]=d[H>>0]^d[43751+((d[J>>0]|0)+1)>>0];a[I>>0]=d[I>>0]^d[43751+((d[J>>0]|0)+45)>>0]}if(a[(c[k>>2]|0)+25>>0]|0){a[J>>0]=a[43496+((d[(c[k>>2]|0)+25>>0]|0)-1)>>0]|0;a[F>>0]=d[F>>0]^d[43751+((d[J>>0]|0)+45)>>0];a[G>>0]=d[G>>0]^d[43751+((d[J>>0]|0)+164)>>0];a[H>>0]=d[H>>0]^d[43751+((d[J>>0]|0)+68)>>0];a[I>>0]=d[I>>0]^d[43751+((d[J>>0]|0)+138)>>0]}if(a[(c[k>>2]|0)+26>>0]|0){a[J>>0]=a[43496+((d[(c[k>>2]|0)+26>>0]|0)-1)>>0]|0;a[F>>0]=d[F>>0]^d[43751+((d[J>>0]|0)+138)>>0];a[G>>0]=d[G>>0]^d[43751+((d[J>>0]|0)+213)>>0];a[H>>0]=d[H>>0]^d[43751+((d[J>>0]|0)+191)>>0];a[I>>0]=d[I>>0]^d[43751+((d[J>>0]|0)+209)>>0]}if(a[(c[k>>2]|0)+27>>0]|0){a[J>>0]=a[43496+((d[(c[k>>2]|0)+27>>0]|0)-1)>>0]|0;a[F>>0]=d[F>>0]^d[43751+((d[J>>0]|0)+209)>>0];a[G>>0]=d[G>>0]^d[43751+((d[J>>0]|0)+127)>>0];a[H>>0]=d[H>>0]^d[43751+((d[J>>0]|0)+61)>>0];a[I>>0]=d[I>>0]^d[43751+((d[J>>0]|0)+153)>>0]}if(a[(c[k>>2]|0)+28>>0]|0){a[J>>0]=a[43496+((d[(c[k>>2]|0)+28>>0]|0)-1)>>0]|0;a[F>>0]=d[F>>0]^d[43751+((d[J>>0]|0)+153)>>0];a[G>>0]=d[G>>0]^d[43751+((d[J>>0]|0)+70)>>0];a[H>>0]=d[H>>0]^d[43751+((d[J>>0]|0)+102)>>0];a[I>>0]=d[I>>0]^d[43751+((d[J>>0]|0)+150)>>0]}if(a[(c[k>>2]|0)+29>>0]|0){a[J>>0]=a[43496+((d[(c[k>>2]|0)+29>>0]|0)-1)>>0]|0;a[F>>0]=d[F>>0]^d[43751+((d[J>>0]|0)+150)>>0];a[G>>0]=d[G>>0]^d[43751+((d[J>>0]|0)+60)>>0];a[H>>0]=d[H>>0]^d[43751+((d[J>>0]|0)+91)>>0];a[I>>0]=d[I>>0]^d[43751+((d[J>>0]|0)+237)>>0]}if(a[(c[k>>2]|0)+30>>0]|0){a[J>>0]=a[43496+((d[(c[k>>2]|0)+30>>0]|0)-1)>>0]|0;a[F>>0]=d[F>>0]^d[43751+((d[J>>0]|0)+237)>>0];a[G>>0]=d[G>>0]^d[43751+((d[J>>0]|0)+55)>>0];a[H>>0]=d[H>>0]^d[43751+((d[J>>0]|0)+79)>>0];a[I>>0]=d[I>>0]^d[43751+((d[J>>0]|0)+224)>>0]}if(a[(c[k>>2]|0)+31>>0]|0){a[J>>0]=a[43496+((d[(c[k>>2]|0)+31>>0]|0)-1)>>0]|0;a[F>>0]=d[F>>0]^d[43751+((d[J>>0]|0)+224)>>0];a[G>>0]=d[G>>0]^d[43751+((d[J>>0]|0)+208)>>0];a[H>>0]=d[H>>0]^d[43751+((d[J>>0]|0)+140)>>0];a[I>>0]=d[I>>0]^d[43751+((d[J>>0]|0)+23)>>0]}c[p>>2]=0;c[o>>2]=0;c[q>>2]=1;while(1){if((c[o>>2]|0)>=256)break;c[(c[j>>2]|0)+(c[o>>2]<<2)>>2]=c[8432+((d[45011+(d[45011+(d[44755+(d[44243+(c[q>>2]|0)>>0]^d[t>>0])>>0]^d[x>>0])>>0]^d[B>>0])>>0]^d[F>>0])<<2)>>2];c[(c[j>>2]|0)+1024+(c[o>>2]<<2)>>2]=c[9456+((d[45011+(d[44755+(d[44755+(d[44243+(c[p>>2]|0)>>0]^d[u>>0])>>0]^d[y>>0])>>0]^d[C>>0])>>0]^d[G>>0])<<2)>>2];c[(c[j>>2]|0)+2048+(c[o>>2]<<2)>>2]=c[10480+((d[44755+(d[45011+(d[45011+(d[44243+(c[p>>2]|0)>>0]^d[v>>0])>>0]^d[z>>0])>>0]^d[D>>0])>>0]^d[H>>0])<<2)>>2];c[(c[j>>2]|0)+3072+(c[o>>2]<<2)>>2]=c[11504+((d[44755+(d[44755+(d[45011+(d[44243+(c[q>>2]|0)>>0]^d[w>>0])>>0]^d[A>>0])>>0]^d[E>>0])>>0]^d[I>>0])<<2)>>2];c[o>>2]=(c[o>>2]|0)+1;c[p>>2]=(c[p>>2]|0)+2;c[q>>2]=(c[q>>2]|0)+2}c[r>>2]=c[8432+((d[45011+(d[45011+(d[44755+(117^d[(c[k>>2]|0)+24>>0])>>0]^d[(c[k>>2]|0)+16>>0])>>0]^d[(c[k>>2]|0)+8>>0])>>0]^d[c[k>>2]>>0])<<2)>>2]^c[9456+((d[45011+(d[44755+(d[44755+(169^d[(c[k>>2]|0)+25>>0])>>0]^d[(c[k>>2]|0)+17>>0])>>0]^d[(c[k>>2]|0)+9>>0])>>0]^d[(c[k>>2]|0)+1>>0])<<2)>>2]^c[10480+((d[44755+(d[45011+(d[45011+(169^d[(c[k>>2]|0)+26>>0])>>0]^d[(c[k>>2]|0)+18>>0])>>0]^d[(c[k>>2]|0)+10>>0])>>0]^d[(c[k>>2]|0)+2>>0])<<2)>>2]^c[11504+((d[44755+(d[44755+(d[45011+(117^d[(c[k>>2]|0)+27>>0])>>0]^d[(c[k>>2]|0)+19>>0])>>0]^d[(c[k>>2]|0)+11>>0])>>0]^d[(c[k>>2]|0)+3>>0])<<2)>>2];c[s>>2]=c[8432+((d[45011+(d[45011+(d[44755+(243^d[(c[k>>2]|0)+28>>0])>>0]^d[(c[k>>2]|0)+20>>0])>>0]^d[(c[k>>2]|0)+12>>0])>>0]^d[(c[k>>2]|0)+4>>0])<<2)>>2]^c[9456+((d[45011+(d[44755+(d[44755+(103^d[(c[k>>2]|0)+29>>0])>>0]^d[(c[k>>2]|0)+21>>0])>>0]^d[(c[k>>2]|0)+13>>0])>>0]^d[(c[k>>2]|0)+5>>0])<<2)>>2]^c[10480+((d[44755+(d[45011+(d[45011+(103^d[(c[k>>2]|0)+30>>0])>>0]^d[(c[k>>2]|0)+22>>0])>>0]^d[(c[k>>2]|0)+14>>0])>>0]^d[(c[k>>2]|0)+6>>0])<<2)>>2]^c[11504+((d[44755+(d[44755+(d[45011+(243^d[(c[k>>2]|0)+31>>0])>>0]^d[(c[k>>2]|0)+23>>0])>>0]^d[(c[k>>2]|0)+15>>0])>>0]^d[(c[k>>2]|0)+7>>0])<<2)>>2];c[s>>2]=(c[s>>2]<<8)+((c[s>>2]|0)>>>24);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[j>>2]|0)+4096>>2]=c[r>>2];c[(c[j>>2]|0)+4096+4>>2]=(c[s>>2]<<9)+((c[s>>2]|0)>>>23);c[r>>2]=c[8432+((d[45011+(d[45011+(d[44755+(198^d[(c[k>>2]|0)+24>>0])>>0]^d[(c[k>>2]|0)+16>>0])>>0]^d[(c[k>>2]|0)+8>>0])>>0]^d[c[k>>2]>>0])<<2)>>2]^c[9456+((d[45011+(d[44755+(d[44755+(179^d[(c[k>>2]|0)+25>>0])>>0]^d[(c[k>>2]|0)+17>>0])>>0]^d[(c[k>>2]|0)+9>>0])>>0]^d[(c[k>>2]|0)+1>>0])<<2)>>2]^c[10480+((d[44755+(d[45011+(d[45011+(179^d[(c[k>>2]|0)+26>>0])>>0]^d[(c[k>>2]|0)+18>>0])>>0]^d[(c[k>>2]|0)+10>>0])>>0]^d[(c[k>>2]|0)+2>>0])<<2)>>2]^c[11504+((d[44755+(d[44755+(d[45011+(198^d[(c[k>>2]|0)+27>>0])>>0]^d[(c[k>>2]|0)+19>>0])>>0]^d[(c[k>>2]|0)+11>>0])>>0]^d[(c[k>>2]|0)+3>>0])<<2)>>2];c[s>>2]=c[8432+((d[45011+(d[45011+(d[44755+(244^d[(c[k>>2]|0)+28>>0])>>0]^d[(c[k>>2]|0)+20>>0])>>0]^d[(c[k>>2]|0)+12>>0])>>0]^d[(c[k>>2]|0)+4>>0])<<2)>>2]^c[9456+((d[45011+(d[44755+(d[44755+(232^d[(c[k>>2]|0)+29>>0])>>0]^d[(c[k>>2]|0)+21>>0])>>0]^d[(c[k>>2]|0)+13>>0])>>0]^d[(c[k>>2]|0)+5>>0])<<2)>>2]^c[10480+((d[44755+(d[45011+(d[45011+(232^d[(c[k>>2]|0)+30>>0])>>0]^d[(c[k>>2]|0)+22>>0])>>0]^d[(c[k>>2]|0)+14>>0])>>0]^d[(c[k>>2]|0)+6>>0])<<2)>>2]^c[11504+((d[44755+(d[44755+(d[45011+(244^d[(c[k>>2]|0)+31>>0])>>0]^d[(c[k>>2]|0)+23>>0])>>0]^d[(c[k>>2]|0)+15>>0])>>0]^d[(c[k>>2]|0)+7>>0])<<2)>>2];c[s>>2]=(c[s>>2]<<8)+((c[s>>2]|0)>>>24);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[j>>2]|0)+4096+8>>2]=c[r>>2];c[(c[j>>2]|0)+4096+12>>2]=(c[s>>2]<<9)+((c[s>>2]|0)>>>23);c[r>>2]=c[8432+((d[45011+(d[45011+(d[44755+(219^d[(c[k>>2]|0)+24>>0])>>0]^d[(c[k>>2]|0)+16>>0])>>0]^d[(c[k>>2]|0)+8>>0])>>0]^d[c[k>>2]>>0])<<2)>>2]^c[9456+((d[45011+(d[44755+(d[44755+(4^d[(c[k>>2]|0)+25>>0])>>0]^d[(c[k>>2]|0)+17>>0])>>0]^d[(c[k>>2]|0)+9>>0])>>0]^d[(c[k>>2]|0)+1>>0])<<2)>>2]^c[10480+((d[44755+(d[45011+(d[45011+(4^d[(c[k>>2]|0)+26>>0])>>0]^d[(c[k>>2]|0)+18>>0])>>0]^d[(c[k>>2]|0)+10>>0])>>0]^d[(c[k>>2]|0)+2>>0])<<2)>>2]^c[11504+((d[44755+(d[44755+(d[45011+(219^d[(c[k>>2]|0)+27>>0])>>0]^d[(c[k>>2]|0)+19>>0])>>0]^d[(c[k>>2]|0)+11>>0])>>0]^d[(c[k>>2]|0)+3>>0])<<2)>>2];c[s>>2]=c[8432+((d[45011+(d[45011+(d[44755+(123^d[(c[k>>2]|0)+28>>0])>>0]^d[(c[k>>2]|0)+20>>0])>>0]^d[(c[k>>2]|0)+12>>0])>>0]^d[(c[k>>2]|0)+4>>0])<<2)>>2]^c[9456+((d[45011+(d[44755+(d[44755+(253^d[(c[k>>2]|0)+29>>0])>>0]^d[(c[k>>2]|0)+21>>0])>>0]^d[(c[k>>2]|0)+13>>0])>>0]^d[(c[k>>2]|0)+5>>0])<<2)>>2]^c[10480+((d[44755+(d[45011+(d[45011+(253^d[(c[k>>2]|0)+30>>0])>>0]^d[(c[k>>2]|0)+22>>0])>>0]^d[(c[k>>2]|0)+14>>0])>>0]^d[(c[k>>2]|0)+6>>0])<<2)>>2]^c[11504+((d[44755+(d[44755+(d[45011+(123^d[(c[k>>2]|0)+31>>0])>>0]^d[(c[k>>2]|0)+23>>0])>>0]^d[(c[k>>2]|0)+15>>0])>>0]^d[(c[k>>2]|0)+7>>0])<<2)>>2];c[s>>2]=(c[s>>2]<<8)+((c[s>>2]|0)>>>24);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[j>>2]|0)+4096+16>>2]=c[r>>2];c[(c[j>>2]|0)+4096+20>>2]=(c[s>>2]<<9)+((c[s>>2]|0)>>>23);c[r>>2]=c[8432+((d[45011+(d[45011+(d[44755+(251^d[(c[k>>2]|0)+24>>0])>>0]^d[(c[k>>2]|0)+16>>0])>>0]^d[(c[k>>2]|0)+8>>0])>>0]^d[c[k>>2]>>0])<<2)>>2]^c[9456+((d[45011+(d[44755+(d[44755+(163^d[(c[k>>2]|0)+25>>0])>>0]^d[(c[k>>2]|0)+17>>0])>>0]^d[(c[k>>2]|0)+9>>0])>>0]^d[(c[k>>2]|0)+1>>0])<<2)>>2]^c[10480+((d[44755+(d[45011+(d[45011+(163^d[(c[k>>2]|0)+26>>0])>>0]^d[(c[k>>2]|0)+18>>0])>>0]^d[(c[k>>2]|0)+10>>0])>>0]^d[(c[k>>2]|0)+2>>0])<<2)>>2]^c[11504+((d[44755+(d[44755+(d[45011+(251^d[(c[k>>2]|0)+27>>0])>>0]^d[(c[k>>2]|0)+19>>0])>>0]^d[(c[k>>2]|0)+11>>0])>>0]^d[(c[k>>2]|0)+3>>0])<<2)>>2];c[s>>2]=c[8432+((d[45011+(d[45011+(d[44755+(200^d[(c[k>>2]|0)+28>>0])>>0]^d[(c[k>>2]|0)+20>>0])>>0]^d[(c[k>>2]|0)+12>>0])>>0]^d[(c[k>>2]|0)+4>>0])<<2)>>2]^c[9456+((d[45011+(d[44755+(d[44755+(118^d[(c[k>>2]|0)+29>>0])>>0]^d[(c[k>>2]|0)+21>>0])>>0]^d[(c[k>>2]|0)+13>>0])>>0]^d[(c[k>>2]|0)+5>>0])<<2)>>2]^c[10480+((d[44755+(d[45011+(d[45011+(118^d[(c[k>>2]|0)+30>>0])>>0]^d[(c[k>>2]|0)+22>>0])>>0]^d[(c[k>>2]|0)+14>>0])>>0]^d[(c[k>>2]|0)+6>>0])<<2)>>2]^c[11504+((d[44755+(d[44755+(d[45011+(200^d[(c[k>>2]|0)+31>>0])>>0]^d[(c[k>>2]|0)+23>>0])>>0]^d[(c[k>>2]|0)+15>>0])>>0]^d[(c[k>>2]|0)+7>>0])<<2)>>2];c[s>>2]=(c[s>>2]<<8)+((c[s>>2]|0)>>>24);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[j>>2]|0)+4096+24>>2]=c[r>>2];c[(c[j>>2]|0)+4096+28>>2]=(c[s>>2]<<9)+((c[s>>2]|0)>>>23);c[r>>2]=c[8432+((d[45011+(d[45011+(d[44755+(74^d[(c[k>>2]|0)+24>>0])>>0]^d[(c[k>>2]|0)+16>>0])>>0]^d[(c[k>>2]|0)+8>>0])>>0]^d[c[k>>2]>>0])<<2)>>2]^c[9456+((d[45011+(d[44755+(d[44755+(154^d[(c[k>>2]|0)+25>>0])>>0]^d[(c[k>>2]|0)+17>>0])>>0]^d[(c[k>>2]|0)+9>>0])>>0]^d[(c[k>>2]|0)+1>>0])<<2)>>2]^c[10480+((d[44755+(d[45011+(d[45011+(154^d[(c[k>>2]|0)+26>>0])>>0]^d[(c[k>>2]|0)+18>>0])>>0]^d[(c[k>>2]|0)+10>>0])>>0]^d[(c[k>>2]|0)+2>>0])<<2)>>2]^c[11504+((d[44755+(d[44755+(d[45011+(74^d[(c[k>>2]|0)+27>>0])>>0]^d[(c[k>>2]|0)+19>>0])>>0]^d[(c[k>>2]|0)+11>>0])>>0]^d[(c[k>>2]|0)+3>>0])<<2)>>2];c[s>>2]=c[8432+((d[45011+(d[45011+(d[44755+(211^d[(c[k>>2]|0)+28>>0])>>0]^d[(c[k>>2]|0)+20>>0])>>0]^d[(c[k>>2]|0)+12>>0])>>0]^d[(c[k>>2]|0)+4>>0])<<2)>>2]^c[9456+((d[45011+(d[44755+(d[44755+(146^d[(c[k>>2]|0)+29>>0])>>0]^d[(c[k>>2]|0)+21>>0])>>0]^d[(c[k>>2]|0)+13>>0])>>0]^d[(c[k>>2]|0)+5>>0])<<2)>>2]^c[10480+((d[44755+(d[45011+(d[45011+(146^d[(c[k>>2]|0)+30>>0])>>0]^d[(c[k>>2]|0)+22>>0])>>0]^d[(c[k>>2]|0)+14>>0])>>0]^d[(c[k>>2]|0)+6>>0])<<2)>>2]^c[11504+((d[44755+(d[44755+(d[45011+(211^d[(c[k>>2]|0)+31>>0])>>0]^d[(c[k>>2]|0)+23>>0])>>0]^d[(c[k>>2]|0)+15>>0])>>0]^d[(c[k>>2]|0)+7>>0])<<2)>>2];c[s>>2]=(c[s>>2]<<8)+((c[s>>2]|0)>>>24);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[j>>2]|0)+4128>>2]=c[r>>2];c[(c[j>>2]|0)+4128+4>>2]=(c[s>>2]<<9)+((c[s>>2]|0)>>>23);c[r>>2]=c[8432+((d[45011+(d[45011+(d[44755+(230^d[(c[k>>2]|0)+24>>0])>>0]^d[(c[k>>2]|0)+16>>0])>>0]^d[(c[k>>2]|0)+8>>0])>>0]^d[c[k>>2]>>0])<<2)>>2]^c[9456+((d[45011+(d[44755+(d[44755+(128^d[(c[k>>2]|0)+25>>0])>>0]^d[(c[k>>2]|0)+17>>0])>>0]^d[(c[k>>2]|0)+9>>0])>>0]^d[(c[k>>2]|0)+1>>0])<<2)>>2]^c[10480+((d[44755+(d[45011+(d[45011+(128^d[(c[k>>2]|0)+26>>0])>>0]^d[(c[k>>2]|0)+18>>0])>>0]^d[(c[k>>2]|0)+10>>0])>>0]^d[(c[k>>2]|0)+2>>0])<<2)>>2]^c[11504+((d[44755+(d[44755+(d[45011+(230^d[(c[k>>2]|0)+27>>0])>>0]^d[(c[k>>2]|0)+19>>0])>>0]^d[(c[k>>2]|0)+11>>0])>>0]^d[(c[k>>2]|0)+3>>0])<<2)>>2];c[s>>2]=c[8432+((d[45011+(d[45011+(d[44755+(107^d[(c[k>>2]|0)+28>>0])>>0]^d[(c[k>>2]|0)+20>>0])>>0]^d[(c[k>>2]|0)+12>>0])>>0]^d[(c[k>>2]|0)+4>>0])<<2)>>2]^c[9456+((d[45011+(d[44755+(d[44755+(120^d[(c[k>>2]|0)+29>>0])>>0]^d[(c[k>>2]|0)+21>>0])>>0]^d[(c[k>>2]|0)+13>>0])>>0]^d[(c[k>>2]|0)+5>>0])<<2)>>2]^c[10480+((d[44755+(d[45011+(d[45011+(120^d[(c[k>>2]|0)+30>>0])>>0]^d[(c[k>>2]|0)+22>>0])>>0]^d[(c[k>>2]|0)+14>>0])>>0]^d[(c[k>>2]|0)+6>>0])<<2)>>2]^c[11504+((d[44755+(d[44755+(d[45011+(107^d[(c[k>>2]|0)+31>>0])>>0]^d[(c[k>>2]|0)+23>>0])>>0]^d[(c[k>>2]|0)+15>>0])>>0]^d[(c[k>>2]|0)+7>>0])<<2)>>2];c[s>>2]=(c[s>>2]<<8)+((c[s>>2]|0)>>>24);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[j>>2]|0)+4128+8>>2]=c[r>>2];c[(c[j>>2]|0)+4128+12>>2]=(c[s>>2]<<9)+((c[s>>2]|0)>>>23);c[r>>2]=c[8432+((d[45011+(d[45011+(d[44755+(69^d[(c[k>>2]|0)+24>>0])>>0]^d[(c[k>>2]|0)+16>>0])>>0]^d[(c[k>>2]|0)+8>>0])>>0]^d[c[k>>2]>>0])<<2)>>2]^c[9456+((d[45011+(d[44755+(d[44755+(228^d[(c[k>>2]|0)+25>>0])>>0]^d[(c[k>>2]|0)+17>>0])>>0]^d[(c[k>>2]|0)+9>>0])>>0]^d[(c[k>>2]|0)+1>>0])<<2)>>2]^c[10480+((d[44755+(d[45011+(d[45011+(228^d[(c[k>>2]|0)+26>>0])>>0]^d[(c[k>>2]|0)+18>>0])>>0]^d[(c[k>>2]|0)+10>>0])>>0]^d[(c[k>>2]|0)+2>>0])<<2)>>2]^c[11504+((d[44755+(d[44755+(d[45011+(69^d[(c[k>>2]|0)+27>>0])>>0]^d[(c[k>>2]|0)+19>>0])>>0]^d[(c[k>>2]|0)+11>>0])>>0]^d[(c[k>>2]|0)+3>>0])<<2)>>2];c[s>>2]=c[8432+((d[45011+(d[45011+(d[44755+(125^d[(c[k>>2]|0)+28>>0])>>0]^d[(c[k>>2]|0)+20>>0])>>0]^d[(c[k>>2]|0)+12>>0])>>0]^d[(c[k>>2]|0)+4>>0])<<2)>>2]^c[9456+((d[45011+(d[44755+(d[44755+(221^d[(c[k>>2]|0)+29>>0])>>0]^d[(c[k>>2]|0)+21>>0])>>0]^d[(c[k>>2]|0)+13>>0])>>0]^d[(c[k>>2]|0)+5>>0])<<2)>>2]^c[10480+((d[44755+(d[45011+(d[45011+(221^d[(c[k>>2]|0)+30>>0])>>0]^d[(c[k>>2]|0)+22>>0])>>0]^d[(c[k>>2]|0)+14>>0])>>0]^d[(c[k>>2]|0)+6>>0])<<2)>>2]^c[11504+((d[44755+(d[44755+(d[45011+(125^d[(c[k>>2]|0)+31>>0])>>0]^d[(c[k>>2]|0)+23>>0])>>0]^d[(c[k>>2]|0)+15>>0])>>0]^d[(c[k>>2]|0)+7>>0])<<2)>>2];c[s>>2]=(c[s>>2]<<8)+((c[s>>2]|0)>>>24);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[j>>2]|0)+4128+16>>2]=c[r>>2];c[(c[j>>2]|0)+4128+20>>2]=(c[s>>2]<<9)+((c[s>>2]|0)>>>23);c[r>>2]=c[8432+((d[45011+(d[45011+(d[44755+(232^d[(c[k>>2]|0)+24>>0])>>0]^d[(c[k>>2]|0)+16>>0])>>0]^d[(c[k>>2]|0)+8>>0])>>0]^d[c[k>>2]>>0])<<2)>>2]^c[9456+((d[45011+(d[44755+(d[44755+(209^d[(c[k>>2]|0)+25>>0])>>0]^d[(c[k>>2]|0)+17>>0])>>0]^d[(c[k>>2]|0)+9>>0])>>0]^d[(c[k>>2]|0)+1>>0])<<2)>>2]^c[10480+((d[44755+(d[45011+(d[45011+(209^d[(c[k>>2]|0)+26>>0])>>0]^d[(c[k>>2]|0)+18>>0])>>0]^d[(c[k>>2]|0)+10>>0])>>0]^d[(c[k>>2]|0)+2>>0])<<2)>>2]^c[11504+((d[44755+(d[44755+(d[45011+(232^d[(c[k>>2]|0)+27>>0])>>0]^d[(c[k>>2]|0)+19>>0])>>0]^d[(c[k>>2]|0)+11>>0])>>0]^d[(c[k>>2]|0)+3>>0])<<2)>>2];c[s>>2]=c[8432+((d[45011+(d[45011+(d[44755+(75^d[(c[k>>2]|0)+28>>0])>>0]^d[(c[k>>2]|0)+20>>0])>>0]^d[(c[k>>2]|0)+12>>0])>>0]^d[(c[k>>2]|0)+4>>0])<<2)>>2]^c[9456+((d[45011+(d[44755+(d[44755+(56^d[(c[k>>2]|0)+29>>0])>>0]^d[(c[k>>2]|0)+21>>0])>>0]^d[(c[k>>2]|0)+13>>0])>>0]^d[(c[k>>2]|0)+5>>0])<<2)>>2]^c[10480+((d[44755+(d[45011+(d[45011+(56^d[(c[k>>2]|0)+30>>0])>>0]^d[(c[k>>2]|0)+22>>0])>>0]^d[(c[k>>2]|0)+14>>0])>>0]^d[(c[k>>2]|0)+6>>0])<<2)>>2]^c[11504+((d[44755+(d[44755+(d[45011+(75^d[(c[k>>2]|0)+31>>0])>>0]^d[(c[k>>2]|0)+23>>0])>>0]^d[(c[k>>2]|0)+15>>0])>>0]^d[(c[k>>2]|0)+7>>0])<<2)>>2];c[s>>2]=(c[s>>2]<<8)+((c[s>>2]|0)>>>24);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[j>>2]|0)+4128+24>>2]=c[r>>2];c[(c[j>>2]|0)+4128+28>>2]=(c[s>>2]<<9)+((c[s>>2]|0)>>>23);c[r>>2]=c[8432+((d[45011+(d[45011+(d[44755+(214^d[(c[k>>2]|0)+24>>0])>>0]^d[(c[k>>2]|0)+16>>0])>>0]^d[(c[k>>2]|0)+8>>0])>>0]^d[c[k>>2]>>0])<<2)>>2]^c[9456+((d[45011+(d[44755+(d[44755+(13^d[(c[k>>2]|0)+25>>0])>>0]^d[(c[k>>2]|0)+17>>0])>>0]^d[(c[k>>2]|0)+9>>0])>>0]^d[(c[k>>2]|0)+1>>0])<<2)>>2]^c[10480+((d[44755+(d[45011+(d[45011+(13^d[(c[k>>2]|0)+26>>0])>>0]^d[(c[k>>2]|0)+18>>0])>>0]^d[(c[k>>2]|0)+10>>0])>>0]^d[(c[k>>2]|0)+2>>0])<<2)>>2]^c[11504+((d[44755+(d[44755+(d[45011+(214^d[(c[k>>2]|0)+27>>0])>>0]^d[(c[k>>2]|0)+19>>0])>>0]^d[(c[k>>2]|0)+11>>0])>>0]^d[(c[k>>2]|0)+3>>0])<<2)>>2];c[s>>2]=c[8432+((d[45011+(d[45011+(d[44755+(50^d[(c[k>>2]|0)+28>>0])>>0]^d[(c[k>>2]|0)+20>>0])>>0]^d[(c[k>>2]|0)+12>>0])>>0]^d[(c[k>>2]|0)+4>>0])<<2)>>2]^c[9456+((d[45011+(d[44755+(d[44755+(198^d[(c[k>>2]|0)+29>>0])>>0]^d[(c[k>>2]|0)+21>>0])>>0]^d[(c[k>>2]|0)+13>>0])>>0]^d[(c[k>>2]|0)+5>>0])<<2)>>2]^c[10480+((d[44755+(d[45011+(d[45011+(198^d[(c[k>>2]|0)+30>>0])>>0]^d[(c[k>>2]|0)+22>>0])>>0]^d[(c[k>>2]|0)+14>>0])>>0]^d[(c[k>>2]|0)+6>>0])<<2)>>2]^c[11504+((d[44755+(d[44755+(d[45011+(50^d[(c[k>>2]|0)+31>>0])>>0]^d[(c[k>>2]|0)+23>>0])>>0]^d[(c[k>>2]|0)+15>>0])>>0]^d[(c[k>>2]|0)+7>>0])<<2)>>2];c[s>>2]=(c[s>>2]<<8)+((c[s>>2]|0)>>>24);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[j>>2]|0)+4128+32>>2]=c[r>>2];c[(c[j>>2]|0)+4128+36>>2]=(c[s>>2]<<9)+((c[s>>2]|0)>>>23);c[r>>2]=c[8432+((d[45011+(d[45011+(d[44755+(216^d[(c[k>>2]|0)+24>>0])>>0]^d[(c[k>>2]|0)+16>>0])>>0]^d[(c[k>>2]|0)+8>>0])>>0]^d[c[k>>2]>>0])<<2)>>2]^c[9456+((d[45011+(d[44755+(d[44755+(53^d[(c[k>>2]|0)+25>>0])>>0]^d[(c[k>>2]|0)+17>>0])>>0]^d[(c[k>>2]|0)+9>>0])>>0]^d[(c[k>>2]|0)+1>>0])<<2)>>2]^c[10480+((d[44755+(d[45011+(d[45011+(53^d[(c[k>>2]|0)+26>>0])>>0]^d[(c[k>>2]|0)+18>>0])>>0]^d[(c[k>>2]|0)+10>>0])>>0]^d[(c[k>>2]|0)+2>>0])<<2)>>2]^c[11504+((d[44755+(d[44755+(d[45011+(216^d[(c[k>>2]|0)+27>>0])>>0]^d[(c[k>>2]|0)+19>>0])>>0]^d[(c[k>>2]|0)+11>>0])>>0]^d[(c[k>>2]|0)+3>>0])<<2)>>2];c[s>>2]=c[8432+((d[45011+(d[45011+(d[44755+(253^d[(c[k>>2]|0)+28>>0])>>0]^d[(c[k>>2]|0)+20>>0])>>0]^d[(c[k>>2]|0)+12>>0])>>0]^d[(c[k>>2]|0)+4>>0])<<2)>>2]^c[9456+((d[45011+(d[44755+(d[44755+(152^d[(c[k>>2]|0)+29>>0])>>0]^d[(c[k>>2]|0)+21>>0])>>0]^d[(c[k>>2]|0)+13>>0])>>0]^d[(c[k>>2]|0)+5>>0])<<2)>>2]^c[10480+((d[44755+(d[45011+(d[45011+(152^d[(c[k>>2]|0)+30>>0])>>0]^d[(c[k>>2]|0)+22>>0])>>0]^d[(c[k>>2]|0)+14>>0])>>0]^d[(c[k>>2]|0)+6>>0])<<2)>>2]^c[11504+((d[44755+(d[44755+(d[45011+(253^d[(c[k>>2]|0)+31>>0])>>0]^d[(c[k>>2]|0)+23>>0])>>0]^d[(c[k>>2]|0)+15>>0])>>0]^d[(c[k>>2]|0)+7>>0])<<2)>>2];c[s>>2]=(c[s>>2]<<8)+((c[s>>2]|0)>>>24);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[j>>2]|0)+4128+40>>2]=c[r>>2];c[(c[j>>2]|0)+4128+44>>2]=(c[s>>2]<<9)+((c[s>>2]|0)>>>23);c[r>>2]=c[8432+((d[45011+(d[45011+(d[44755+(55^d[(c[k>>2]|0)+24>>0])>>0]^d[(c[k>>2]|0)+16>>0])>>0]^d[(c[k>>2]|0)+8>>0])>>0]^d[c[k>>2]>>0])<<2)>>2]^c[9456+((d[45011+(d[44755+(d[44755+(24^d[(c[k>>2]|0)+25>>0])>>0]^d[(c[k>>2]|0)+17>>0])>>0]^d[(c[k>>2]|0)+9>>0])>>0]^d[(c[k>>2]|0)+1>>0])<<2)>>2]^c[10480+((d[44755+(d[45011+(d[45011+(24^d[(c[k>>2]|0)+26>>0])>>0]^d[(c[k>>2]|0)+18>>0])>>0]^d[(c[k>>2]|0)+10>>0])>>0]^d[(c[k>>2]|0)+2>>0])<<2)>>2]^c[11504+((d[44755+(d[44755+(d[45011+(55^d[(c[k>>2]|0)+27>>0])>>0]^d[(c[k>>2]|0)+19>>0])>>0]^d[(c[k>>2]|0)+11>>0])>>0]^d[(c[k>>2]|0)+3>>0])<<2)>>2];c[s>>2]=c[8432+((d[45011+(d[45011+(d[44755+(113^d[(c[k>>2]|0)+28>>0])>>0]^d[(c[k>>2]|0)+20>>0])>>0]^d[(c[k>>2]|0)+12>>0])>>0]^d[(c[k>>2]|0)+4>>0])<<2)>>2]^c[9456+((d[45011+(d[44755+(d[44755+(247^d[(c[k>>2]|0)+29>>0])>>0]^d[(c[k>>2]|0)+21>>0])>>0]^d[(c[k>>2]|0)+13>>0])>>0]^d[(c[k>>2]|0)+5>>0])<<2)>>2]^c[10480+((d[44755+(d[45011+(d[45011+(247^d[(c[k>>2]|0)+30>>0])>>0]^d[(c[k>>2]|0)+22>>0])>>0]^d[(c[k>>2]|0)+14>>0])>>0]^d[(c[k>>2]|0)+6>>0])<<2)>>2]^c[11504+((d[44755+(d[44755+(d[45011+(113^d[(c[k>>2]|0)+31>>0])>>0]^d[(c[k>>2]|0)+23>>0])>>0]^d[(c[k>>2]|0)+15>>0])>>0]^d[(c[k>>2]|0)+7>>0])<<2)>>2];c[s>>2]=(c[s>>2]<<8)+((c[s>>2]|0)>>>24);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[j>>2]|0)+4128+48>>2]=c[r>>2];c[(c[j>>2]|0)+4128+52>>2]=(c[s>>2]<<9)+((c[s>>2]|0)>>>23);c[r>>2]=c[8432+((d[45011+(d[45011+(d[44755+(241^d[(c[k>>2]|0)+24>>0])>>0]^d[(c[k>>2]|0)+16>>0])>>0]^d[(c[k>>2]|0)+8>>0])>>0]^d[c[k>>2]>>0])<<2)>>2]^c[9456+((d[45011+(d[44755+(d[44755+(236^d[(c[k>>2]|0)+25>>0])>>0]^d[(c[k>>2]|0)+17>>0])>>0]^d[(c[k>>2]|0)+9>>0])>>0]^d[(c[k>>2]|0)+1>>0])<<2)>>2]^c[10480+((d[44755+(d[45011+(d[45011+(236^d[(c[k>>2]|0)+26>>0])>>0]^d[(c[k>>2]|0)+18>>0])>>0]^d[(c[k>>2]|0)+10>>0])>>0]^d[(c[k>>2]|0)+2>>0])<<2)>>2]^c[11504+((d[44755+(d[44755+(d[45011+(241^d[(c[k>>2]|0)+27>>0])>>0]^d[(c[k>>2]|0)+19>>0])>>0]^d[(c[k>>2]|0)+11>>0])>>0]^d[(c[k>>2]|0)+3>>0])<<2)>>2];c[s>>2]=c[8432+((d[45011+(d[45011+(d[44755+(225^d[(c[k>>2]|0)+28>>0])>>0]^d[(c[k>>2]|0)+20>>0])>>0]^d[(c[k>>2]|0)+12>>0])>>0]^d[(c[k>>2]|0)+4>>0])<<2)>>2]^c[9456+((d[45011+(d[44755+(d[44755+(108^d[(c[k>>2]|0)+29>>0])>>0]^d[(c[k>>2]|0)+21>>0])>>0]^d[(c[k>>2]|0)+13>>0])>>0]^d[(c[k>>2]|0)+5>>0])<<2)>>2]^c[10480+((d[44755+(d[45011+(d[45011+(108^d[(c[k>>2]|0)+30>>0])>>0]^d[(c[k>>2]|0)+22>>0])>>0]^d[(c[k>>2]|0)+14>>0])>>0]^d[(c[k>>2]|0)+6>>0])<<2)>>2]^c[11504+((d[44755+(d[44755+(d[45011+(225^d[(c[k>>2]|0)+31>>0])>>0]^d[(c[k>>2]|0)+23>>0])>>0]^d[(c[k>>2]|0)+15>>0])>>0]^d[(c[k>>2]|0)+7>>0])<<2)>>2];c[s>>2]=(c[s>>2]<<8)+((c[s>>2]|0)>>>24);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[j>>2]|0)+4128+56>>2]=c[r>>2];c[(c[j>>2]|0)+4128+60>>2]=(c[s>>2]<<9)+((c[s>>2]|0)>>>23);c[r>>2]=c[8432+((d[45011+(d[45011+(d[44755+(48^d[(c[k>>2]|0)+24>>0])>>0]^d[(c[k>>2]|0)+16>>0])>>0]^d[(c[k>>2]|0)+8>>0])>>0]^d[c[k>>2]>>0])<<2)>>2]^c[9456+((d[45011+(d[44755+(d[44755+(67^d[(c[k>>2]|0)+25>>0])>>0]^d[(c[k>>2]|0)+17>>0])>>0]^d[(c[k>>2]|0)+9>>0])>>0]^d[(c[k>>2]|0)+1>>0])<<2)>>2]^c[10480+((d[44755+(d[45011+(d[45011+(67^d[(c[k>>2]|0)+26>>0])>>0]^d[(c[k>>2]|0)+18>>0])>>0]^d[(c[k>>2]|0)+10>>0])>>0]^d[(c[k>>2]|0)+2>>0])<<2)>>2]^c[11504+((d[44755+(d[44755+(d[45011+(48^d[(c[k>>2]|0)+27>>0])>>0]^d[(c[k>>2]|0)+19>>0])>>0]^d[(c[k>>2]|0)+11>>0])>>0]^d[(c[k>>2]|0)+3>>0])<<2)>>2];c[s>>2]=c[8432+((d[45011+(d[45011+(d[44755+(15^d[(c[k>>2]|0)+28>>0])>>0]^d[(c[k>>2]|0)+20>>0])>>0]^d[(c[k>>2]|0)+12>>0])>>0]^d[(c[k>>2]|0)+4>>0])<<2)>>2]^c[9456+((d[45011+(d[44755+(d[44755+(117^d[(c[k>>2]|0)+29>>0])>>0]^d[(c[k>>2]|0)+21>>0])>>0]^d[(c[k>>2]|0)+13>>0])>>0]^d[(c[k>>2]|0)+5>>0])<<2)>>2]^c[10480+((d[44755+(d[45011+(d[45011+(117^d[(c[k>>2]|0)+30>>0])>>0]^d[(c[k>>2]|0)+22>>0])>>0]^d[(c[k>>2]|0)+14>>0])>>0]^d[(c[k>>2]|0)+6>>0])<<2)>>2]^c[11504+((d[44755+(d[44755+(d[45011+(15^d[(c[k>>2]|0)+31>>0])>>0]^d[(c[k>>2]|0)+23>>0])>>0]^d[(c[k>>2]|0)+15>>0])>>0]^d[(c[k>>2]|0)+7>>0])<<2)>>2];c[s>>2]=(c[s>>2]<<8)+((c[s>>2]|0)>>>24);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[j>>2]|0)+4128+64>>2]=c[r>>2];c[(c[j>>2]|0)+4128+68>>2]=(c[s>>2]<<9)+((c[s>>2]|0)>>>23);c[r>>2]=c[8432+((d[45011+(d[45011+(d[44755+(248^d[(c[k>>2]|0)+24>>0])>>0]^d[(c[k>>2]|0)+16>>0])>>0]^d[(c[k>>2]|0)+8>>0])>>0]^d[c[k>>2]>>0])<<2)>>2]^c[9456+((d[45011+(d[44755+(d[44755+(55^d[(c[k>>2]|0)+25>>0])>>0]^d[(c[k>>2]|0)+17>>0])>>0]^d[(c[k>>2]|0)+9>>0])>>0]^d[(c[k>>2]|0)+1>>0])<<2)>>2]^c[10480+((d[44755+(d[45011+(d[45011+(55^d[(c[k>>2]|0)+26>>0])>>0]^d[(c[k>>2]|0)+18>>0])>>0]^d[(c[k>>2]|0)+10>>0])>>0]^d[(c[k>>2]|0)+2>>0])<<2)>>2]^c[11504+((d[44755+(d[44755+(d[45011+(248^d[(c[k>>2]|0)+27>>0])>>0]^d[(c[k>>2]|0)+19>>0])>>0]^d[(c[k>>2]|0)+11>>0])>>0]^d[(c[k>>2]|0)+3>>0])<<2)>>2];c[s>>2]=c[8432+((d[45011+(d[45011+(d[44755+(27^d[(c[k>>2]|0)+28>>0])>>0]^d[(c[k>>2]|0)+20>>0])>>0]^d[(c[k>>2]|0)+12>>0])>>0]^d[(c[k>>2]|0)+4>>0])<<2)>>2]^c[9456+((d[45011+(d[44755+(d[44755+(38^d[(c[k>>2]|0)+29>>0])>>0]^d[(c[k>>2]|0)+21>>0])>>0]^d[(c[k>>2]|0)+13>>0])>>0]^d[(c[k>>2]|0)+5>>0])<<2)>>2]^c[10480+((d[44755+(d[45011+(d[45011+(38^d[(c[k>>2]|0)+30>>0])>>0]^d[(c[k>>2]|0)+22>>0])>>0]^d[(c[k>>2]|0)+14>>0])>>0]^d[(c[k>>2]|0)+6>>0])<<2)>>2]^c[11504+((d[44755+(d[44755+(d[45011+(27^d[(c[k>>2]|0)+31>>0])>>0]^d[(c[k>>2]|0)+23>>0])>>0]^d[(c[k>>2]|0)+15>>0])>>0]^d[(c[k>>2]|0)+7>>0])<<2)>>2];c[s>>2]=(c[s>>2]<<8)+((c[s>>2]|0)>>>24);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[j>>2]|0)+4128+72>>2]=c[r>>2];c[(c[j>>2]|0)+4128+76>>2]=(c[s>>2]<<9)+((c[s>>2]|0)>>>23);c[r>>2]=c[8432+((d[45011+(d[45011+(d[44755+(135^d[(c[k>>2]|0)+24>>0])>>0]^d[(c[k>>2]|0)+16>>0])>>0]^d[(c[k>>2]|0)+8>>0])>>0]^d[c[k>>2]>>0])<<2)>>2]^c[9456+((d[45011+(d[44755+(d[44755+(250^d[(c[k>>2]|0)+25>>0])>>0]^d[(c[k>>2]|0)+17>>0])>>0]^d[(c[k>>2]|0)+9>>0])>>0]^d[(c[k>>2]|0)+1>>0])<<2)>>2]^c[10480+((d[44755+(d[45011+(d[45011+(250^d[(c[k>>2]|0)+26>>0])>>0]^d[(c[k>>2]|0)+18>>0])>>0]^d[(c[k>>2]|0)+10>>0])>>0]^d[(c[k>>2]|0)+2>>0])<<2)>>2]^c[11504+((d[44755+(d[44755+(d[45011+(135^d[(c[k>>2]|0)+27>>0])>>0]^d[(c[k>>2]|0)+19>>0])>>0]^d[(c[k>>2]|0)+11>>0])>>0]^d[(c[k>>2]|0)+3>>0])<<2)>>2];c[s>>2]=c[8432+((d[45011+(d[45011+(d[44755+(250^d[(c[k>>2]|0)+28>>0])>>0]^d[(c[k>>2]|0)+20>>0])>>0]^d[(c[k>>2]|0)+12>>0])>>0]^d[(c[k>>2]|0)+4>>0])<<2)>>2]^c[9456+((d[45011+(d[44755+(d[44755+(19^d[(c[k>>2]|0)+29>>0])>>0]^d[(c[k>>2]|0)+21>>0])>>0]^d[(c[k>>2]|0)+13>>0])>>0]^d[(c[k>>2]|0)+5>>0])<<2)>>2]^c[10480+((d[44755+(d[45011+(d[45011+(19^d[(c[k>>2]|0)+30>>0])>>0]^d[(c[k>>2]|0)+22>>0])>>0]^d[(c[k>>2]|0)+14>>0])>>0]^d[(c[k>>2]|0)+6>>0])<<2)>>2]^c[11504+((d[44755+(d[44755+(d[45011+(250^d[(c[k>>2]|0)+31>>0])>>0]^d[(c[k>>2]|0)+23>>0])>>0]^d[(c[k>>2]|0)+15>>0])>>0]^d[(c[k>>2]|0)+7>>0])<<2)>>2];c[s>>2]=(c[s>>2]<<8)+((c[s>>2]|0)>>>24);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[j>>2]|0)+4128+80>>2]=c[r>>2];c[(c[j>>2]|0)+4128+84>>2]=(c[s>>2]<<9)+((c[s>>2]|0)>>>23);c[r>>2]=c[8432+((d[45011+(d[45011+(d[44755+(6^d[(c[k>>2]|0)+24>>0])>>0]^d[(c[k>>2]|0)+16>>0])>>0]^d[(c[k>>2]|0)+8>>0])>>0]^d[c[k>>2]>>0])<<2)>>2]^c[9456+((d[45011+(d[44755+(d[44755+(148^d[(c[k>>2]|0)+25>>0])>>0]^d[(c[k>>2]|0)+17>>0])>>0]^d[(c[k>>2]|0)+9>>0])>>0]^d[(c[k>>2]|0)+1>>0])<<2)>>2]^c[10480+((d[44755+(d[45011+(d[45011+(148^d[(c[k>>2]|0)+26>>0])>>0]^d[(c[k>>2]|0)+18>>0])>>0]^d[(c[k>>2]|0)+10>>0])>>0]^d[(c[k>>2]|0)+2>>0])<<2)>>2]^c[11504+((d[44755+(d[44755+(d[45011+(6^d[(c[k>>2]|0)+27>>0])>>0]^d[(c[k>>2]|0)+19>>0])>>0]^d[(c[k>>2]|0)+11>>0])>>0]^d[(c[k>>2]|0)+3>>0])<<2)>>2];c[s>>2]=c[8432+((d[45011+(d[45011+(d[44755+(63^d[(c[k>>2]|0)+28>>0])>>0]^d[(c[k>>2]|0)+20>>0])>>0]^d[(c[k>>2]|0)+12>>0])>>0]^d[(c[k>>2]|0)+4>>0])<<2)>>2]^c[9456+((d[45011+(d[44755+(d[44755+(72^d[(c[k>>2]|0)+29>>0])>>0]^d[(c[k>>2]|0)+21>>0])>>0]^d[(c[k>>2]|0)+13>>0])>>0]^d[(c[k>>2]|0)+5>>0])<<2)>>2]^c[10480+((d[44755+(d[45011+(d[45011+(72^d[(c[k>>2]|0)+30>>0])>>0]^d[(c[k>>2]|0)+22>>0])>>0]^d[(c[k>>2]|0)+14>>0])>>0]^d[(c[k>>2]|0)+6>>0])<<2)>>2]^c[11504+((d[44755+(d[44755+(d[45011+(63^d[(c[k>>2]|0)+31>>0])>>0]^d[(c[k>>2]|0)+23>>0])>>0]^d[(c[k>>2]|0)+15>>0])>>0]^d[(c[k>>2]|0)+7>>0])<<2)>>2];c[s>>2]=(c[s>>2]<<8)+((c[s>>2]|0)>>>24);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[j>>2]|0)+4128+88>>2]=c[r>>2];c[(c[j>>2]|0)+4128+92>>2]=(c[s>>2]<<9)+((c[s>>2]|0)>>>23);c[r>>2]=c[8432+((d[45011+(d[45011+(d[44755+(94^d[(c[k>>2]|0)+24>>0])>>0]^d[(c[k>>2]|0)+16>>0])>>0]^d[(c[k>>2]|0)+8>>0])>>0]^d[c[k>>2]>>0])<<2)>>2]^c[9456+((d[45011+(d[44755+(d[44755+(242^d[(c[k>>2]|0)+25>>0])>>0]^d[(c[k>>2]|0)+17>>0])>>0]^d[(c[k>>2]|0)+9>>0])>>0]^d[(c[k>>2]|0)+1>>0])<<2)>>2]^c[10480+((d[44755+(d[45011+(d[45011+(242^d[(c[k>>2]|0)+26>>0])>>0]^d[(c[k>>2]|0)+18>>0])>>0]^d[(c[k>>2]|0)+10>>0])>>0]^d[(c[k>>2]|0)+2>>0])<<2)>>2]^c[11504+((d[44755+(d[44755+(d[45011+(94^d[(c[k>>2]|0)+27>>0])>>0]^d[(c[k>>2]|0)+19>>0])>>0]^d[(c[k>>2]|0)+11>>0])>>0]^d[(c[k>>2]|0)+3>>0])<<2)>>2];c[s>>2]=c[8432+((d[45011+(d[45011+(d[44755+(186^d[(c[k>>2]|0)+28>>0])>>0]^d[(c[k>>2]|0)+20>>0])>>0]^d[(c[k>>2]|0)+12>>0])>>0]^d[(c[k>>2]|0)+4>>0])<<2)>>2]^c[9456+((d[45011+(d[44755+(d[44755+(208^d[(c[k>>2]|0)+29>>0])>>0]^d[(c[k>>2]|0)+21>>0])>>0]^d[(c[k>>2]|0)+13>>0])>>0]^d[(c[k>>2]|0)+5>>0])<<2)>>2]^c[10480+((d[44755+(d[45011+(d[45011+(208^d[(c[k>>2]|0)+30>>0])>>0]^d[(c[k>>2]|0)+22>>0])>>0]^d[(c[k>>2]|0)+14>>0])>>0]^d[(c[k>>2]|0)+6>>0])<<2)>>2]^c[11504+((d[44755+(d[44755+(d[45011+(186^d[(c[k>>2]|0)+31>>0])>>0]^d[(c[k>>2]|0)+23>>0])>>0]^d[(c[k>>2]|0)+15>>0])>>0]^d[(c[k>>2]|0)+7>>0])<<2)>>2];c[s>>2]=(c[s>>2]<<8)+((c[s>>2]|0)>>>24);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[j>>2]|0)+4128+96>>2]=c[r>>2];c[(c[j>>2]|0)+4128+100>>2]=(c[s>>2]<<9)+((c[s>>2]|0)>>>23);c[r>>2]=c[8432+((d[45011+(d[45011+(d[44755+(174^d[(c[k>>2]|0)+24>>0])>>0]^d[(c[k>>2]|0)+16>>0])>>0]^d[(c[k>>2]|0)+8>>0])>>0]^d[c[k>>2]>>0])<<2)>>2]^c[9456+((d[45011+(d[44755+(d[44755+(139^d[(c[k>>2]|0)+25>>0])>>0]^d[(c[k>>2]|0)+17>>0])>>0]^d[(c[k>>2]|0)+9>>0])>>0]^d[(c[k>>2]|0)+1>>0])<<2)>>2]^c[10480+((d[44755+(d[45011+(d[45011+(139^d[(c[k>>2]|0)+26>>0])>>0]^d[(c[k>>2]|0)+18>>0])>>0]^d[(c[k>>2]|0)+10>>0])>>0]^d[(c[k>>2]|0)+2>>0])<<2)>>2]^c[11504+((d[44755+(d[44755+(d[45011+(174^d[(c[k>>2]|0)+27>>0])>>0]^d[(c[k>>2]|0)+19>>0])>>0]^d[(c[k>>2]|0)+11>>0])>>0]^d[(c[k>>2]|0)+3>>0])<<2)>>2];c[s>>2]=c[8432+((d[45011+(d[45011+(d[44755+(91^d[(c[k>>2]|0)+28>>0])>>0]^d[(c[k>>2]|0)+20>>0])>>0]^d[(c[k>>2]|0)+12>>0])>>0]^d[(c[k>>2]|0)+4>>0])<<2)>>2]^c[9456+((d[45011+(d[44755+(d[44755+(48^d[(c[k>>2]|0)+29>>0])>>0]^d[(c[k>>2]|0)+21>>0])>>0]^d[(c[k>>2]|0)+13>>0])>>0]^d[(c[k>>2]|0)+5>>0])<<2)>>2]^c[10480+((d[44755+(d[45011+(d[45011+(48^d[(c[k>>2]|0)+30>>0])>>0]^d[(c[k>>2]|0)+22>>0])>>0]^d[(c[k>>2]|0)+14>>0])>>0]^d[(c[k>>2]|0)+6>>0])<<2)>>2]^c[11504+((d[44755+(d[44755+(d[45011+(91^d[(c[k>>2]|0)+31>>0])>>0]^d[(c[k>>2]|0)+23>>0])>>0]^d[(c[k>>2]|0)+15>>0])>>0]^d[(c[k>>2]|0)+7>>0])<<2)>>2];c[s>>2]=(c[s>>2]<<8)+((c[s>>2]|0)>>>24);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[j>>2]|0)+4128+104>>2]=c[r>>2];c[(c[j>>2]|0)+4128+108>>2]=(c[s>>2]<<9)+((c[s>>2]|0)>>>23);c[r>>2]=c[8432+((d[45011+(d[45011+(d[44755+(138^d[(c[k>>2]|0)+24>>0])>>0]^d[(c[k>>2]|0)+16>>0])>>0]^d[(c[k>>2]|0)+8>>0])>>0]^d[c[k>>2]>>0])<<2)>>2]^c[9456+((d[45011+(d[44755+(d[44755+(132^d[(c[k>>2]|0)+25>>0])>>0]^d[(c[k>>2]|0)+17>>0])>>0]^d[(c[k>>2]|0)+9>>0])>>0]^d[(c[k>>2]|0)+1>>0])<<2)>>2]^c[10480+((d[44755+(d[45011+(d[45011+(132^d[(c[k>>2]|0)+26>>0])>>0]^d[(c[k>>2]|0)+18>>0])>>0]^d[(c[k>>2]|0)+10>>0])>>0]^d[(c[k>>2]|0)+2>>0])<<2)>>2]^c[11504+((d[44755+(d[44755+(d[45011+(138^d[(c[k>>2]|0)+27>>0])>>0]^d[(c[k>>2]|0)+19>>0])>>0]^d[(c[k>>2]|0)+11>>0])>>0]^d[(c[k>>2]|0)+3>>0])<<2)>>2];c[s>>2]=c[8432+((d[45011+(d[45011+(d[44755+(0^d[(c[k>>2]|0)+28>>0])>>0]^d[(c[k>>2]|0)+20>>0])>>0]^d[(c[k>>2]|0)+12>>0])>>0]^d[(c[k>>2]|0)+4>>0])<<2)>>2]^c[9456+((d[45011+(d[44755+(d[44755+(84^d[(c[k>>2]|0)+29>>0])>>0]^d[(c[k>>2]|0)+21>>0])>>0]^d[(c[k>>2]|0)+13>>0])>>0]^d[(c[k>>2]|0)+5>>0])<<2)>>2]^c[10480+((d[44755+(d[45011+(d[45011+(84^d[(c[k>>2]|0)+30>>0])>>0]^d[(c[k>>2]|0)+22>>0])>>0]^d[(c[k>>2]|0)+14>>0])>>0]^d[(c[k>>2]|0)+6>>0])<<2)>>2]^c[11504+((d[44755+(d[44755+(d[45011+(0^d[(c[k>>2]|0)+31>>0])>>0]^d[(c[k>>2]|0)+23>>0])>>0]^d[(c[k>>2]|0)+15>>0])>>0]^d[(c[k>>2]|0)+7>>0])<<2)>>2];c[s>>2]=(c[s>>2]<<8)+((c[s>>2]|0)>>>24);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[j>>2]|0)+4128+112>>2]=c[r>>2];c[(c[j>>2]|0)+4128+116>>2]=(c[s>>2]<<9)+((c[s>>2]|0)>>>23);c[r>>2]=c[8432+((d[45011+(d[45011+(d[44755+(188^d[(c[k>>2]|0)+24>>0])>>0]^d[(c[k>>2]|0)+16>>0])>>0]^d[(c[k>>2]|0)+8>>0])>>0]^d[c[k>>2]>>0])<<2)>>2]^c[9456+((d[45011+(d[44755+(d[44755+(223^d[(c[k>>2]|0)+25>>0])>>0]^d[(c[k>>2]|0)+17>>0])>>0]^d[(c[k>>2]|0)+9>>0])>>0]^d[(c[k>>2]|0)+1>>0])<<2)>>2]^c[10480+((d[44755+(d[45011+(d[45011+(223^d[(c[k>>2]|0)+26>>0])>>0]^d[(c[k>>2]|0)+18>>0])>>0]^d[(c[k>>2]|0)+10>>0])>>0]^d[(c[k>>2]|0)+2>>0])<<2)>>2]^c[11504+((d[44755+(d[44755+(d[45011+(188^d[(c[k>>2]|0)+27>>0])>>0]^d[(c[k>>2]|0)+19>>0])>>0]^d[(c[k>>2]|0)+11>>0])>>0]^d[(c[k>>2]|0)+3>>0])<<2)>>2];c[s>>2]=c[8432+((d[45011+(d[45011+(d[44755+(157^d[(c[k>>2]|0)+28>>0])>>0]^d[(c[k>>2]|0)+20>>0])>>0]^d[(c[k>>2]|0)+12>>0])>>0]^d[(c[k>>2]|0)+4>>0])<<2)>>2]^c[9456+((d[45011+(d[44755+(d[44755+(35^d[(c[k>>2]|0)+29>>0])>>0]^d[(c[k>>2]|0)+21>>0])>>0]^d[(c[k>>2]|0)+13>>0])>>0]^d[(c[k>>2]|0)+5>>0])<<2)>>2]^c[10480+((d[44755+(d[45011+(d[45011+(35^d[(c[k>>2]|0)+30>>0])>>0]^d[(c[k>>2]|0)+22>>0])>>0]^d[(c[k>>2]|0)+14>>0])>>0]^d[(c[k>>2]|0)+6>>0])<<2)>>2]^c[11504+((d[44755+(d[44755+(d[45011+(157^d[(c[k>>2]|0)+31>>0])>>0]^d[(c[k>>2]|0)+23>>0])>>0]^d[(c[k>>2]|0)+15>>0])>>0]^d[(c[k>>2]|0)+7>>0])<<2)>>2];c[s>>2]=(c[s>>2]<<8)+((c[s>>2]|0)>>>24);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[j>>2]|0)+4128+120>>2]=c[r>>2];c[(c[j>>2]|0)+4128+124>>2]=(c[s>>2]<<9)+((c[s>>2]|0)>>>23)}else{c[p>>2]=0;c[o>>2]=0;c[q>>2]=1;while(1){if((c[o>>2]|0)>=256)break;c[(c[j>>2]|0)+(c[o>>2]<<2)>>2]=c[8432+((d[45011+(d[44243+(c[p>>2]|0)>>0]^d[t>>0])>>0]^d[x>>0])<<2)>>2];c[(c[j>>2]|0)+1024+(c[o>>2]<<2)>>2]=c[9456+((d[45011+(d[44243+(c[q>>2]|0)>>0]^d[u>>0])>>0]^d[y>>0])<<2)>>2];c[(c[j>>2]|0)+2048+(c[o>>2]<<2)>>2]=c[10480+((d[44755+(d[44243+(c[p>>2]|0)>>0]^d[v>>0])>>0]^d[z>>0])<<2)>>2];c[(c[j>>2]|0)+3072+(c[o>>2]<<2)>>2]=c[11504+((d[44755+(d[44243+(c[q>>2]|0)>>0]^d[w>>0])>>0]^d[A>>0])<<2)>>2];c[o>>2]=(c[o>>2]|0)+1;c[p>>2]=(c[p>>2]|0)+2;c[q>>2]=(c[q>>2]|0)+2}c[r>>2]=c[8432+((d[45011+(169^d[(c[k>>2]|0)+8>>0])>>0]^d[c[k>>2]>>0])<<2)>>2]^c[9456+((d[45011+(117^d[(c[k>>2]|0)+9>>0])>>0]^d[(c[k>>2]|0)+1>>0])<<2)>>2]^c[10480+((d[44755+(169^d[(c[k>>2]|0)+10>>0])>>0]^d[(c[k>>2]|0)+2>>0])<<2)>>2]^c[11504+((d[44755+(117^d[(c[k>>2]|0)+11>>0])>>0]^d[(c[k>>2]|0)+3>>0])<<2)>>2];c[s>>2]=c[8432+((d[45011+(103^d[(c[k>>2]|0)+12>>0])>>0]^d[(c[k>>2]|0)+4>>0])<<2)>>2]^c[9456+((d[45011+(243^d[(c[k>>2]|0)+13>>0])>>0]^d[(c[k>>2]|0)+5>>0])<<2)>>2]^c[10480+((d[44755+(103^d[(c[k>>2]|0)+14>>0])>>0]^d[(c[k>>2]|0)+6>>0])<<2)>>2]^c[11504+((d[44755+(243^d[(c[k>>2]|0)+15>>0])>>0]^d[(c[k>>2]|0)+7>>0])<<2)>>2];c[s>>2]=(c[s>>2]<<8)+((c[s>>2]|0)>>>24);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[j>>2]|0)+4096>>2]=c[r>>2];c[(c[j>>2]|0)+4096+4>>2]=(c[s>>2]<<9)+((c[s>>2]|0)>>>23);c[r>>2]=c[8432+((d[45011+(179^d[(c[k>>2]|0)+8>>0])>>0]^d[c[k>>2]>>0])<<2)>>2]^c[9456+((d[45011+(198^d[(c[k>>2]|0)+9>>0])>>0]^d[(c[k>>2]|0)+1>>0])<<2)>>2]^c[10480+((d[44755+(179^d[(c[k>>2]|0)+10>>0])>>0]^d[(c[k>>2]|0)+2>>0])<<2)>>2]^c[11504+((d[44755+(198^d[(c[k>>2]|0)+11>>0])>>0]^d[(c[k>>2]|0)+3>>0])<<2)>>2];c[s>>2]=c[8432+((d[45011+(232^d[(c[k>>2]|0)+12>>0])>>0]^d[(c[k>>2]|0)+4>>0])<<2)>>2]^c[9456+((d[45011+(244^d[(c[k>>2]|0)+13>>0])>>0]^d[(c[k>>2]|0)+5>>0])<<2)>>2]^c[10480+((d[44755+(232^d[(c[k>>2]|0)+14>>0])>>0]^d[(c[k>>2]|0)+6>>0])<<2)>>2]^c[11504+((d[44755+(244^d[(c[k>>2]|0)+15>>0])>>0]^d[(c[k>>2]|0)+7>>0])<<2)>>2];c[s>>2]=(c[s>>2]<<8)+((c[s>>2]|0)>>>24);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[j>>2]|0)+4096+8>>2]=c[r>>2];c[(c[j>>2]|0)+4096+12>>2]=(c[s>>2]<<9)+((c[s>>2]|0)>>>23);c[r>>2]=c[8432+((d[45011+(4^d[(c[k>>2]|0)+8>>0])>>0]^d[c[k>>2]>>0])<<2)>>2]^c[9456+((d[45011+(219^d[(c[k>>2]|0)+9>>0])>>0]^d[(c[k>>2]|0)+1>>0])<<2)>>2]^c[10480+((d[44755+(4^d[(c[k>>2]|0)+10>>0])>>0]^d[(c[k>>2]|0)+2>>0])<<2)>>2]^c[11504+((d[44755+(219^d[(c[k>>2]|0)+11>>0])>>0]^d[(c[k>>2]|0)+3>>0])<<2)>>2];c[s>>2]=c[8432+((d[45011+(253^d[(c[k>>2]|0)+12>>0])>>0]^d[(c[k>>2]|0)+4>>0])<<2)>>2]^c[9456+((d[45011+(123^d[(c[k>>2]|0)+13>>0])>>0]^d[(c[k>>2]|0)+5>>0])<<2)>>2]^c[10480+((d[44755+(253^d[(c[k>>2]|0)+14>>0])>>0]^d[(c[k>>2]|0)+6>>0])<<2)>>2]^c[11504+((d[44755+(123^d[(c[k>>2]|0)+15>>0])>>0]^d[(c[k>>2]|0)+7>>0])<<2)>>2];c[s>>2]=(c[s>>2]<<8)+((c[s>>2]|0)>>>24);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[j>>2]|0)+4096+16>>2]=c[r>>2];c[(c[j>>2]|0)+4096+20>>2]=(c[s>>2]<<9)+((c[s>>2]|0)>>>23);c[r>>2]=c[8432+((d[45011+(163^d[(c[k>>2]|0)+8>>0])>>0]^d[c[k>>2]>>0])<<2)>>2]^c[9456+((d[45011+(251^d[(c[k>>2]|0)+9>>0])>>0]^d[(c[k>>2]|0)+1>>0])<<2)>>2]^c[10480+((d[44755+(163^d[(c[k>>2]|0)+10>>0])>>0]^d[(c[k>>2]|0)+2>>0])<<2)>>2]^c[11504+((d[44755+(251^d[(c[k>>2]|0)+11>>0])>>0]^d[(c[k>>2]|0)+3>>0])<<2)>>2];c[s>>2]=c[8432+((d[45011+(118^d[(c[k>>2]|0)+12>>0])>>0]^d[(c[k>>2]|0)+4>>0])<<2)>>2]^c[9456+((d[45011+(200^d[(c[k>>2]|0)+13>>0])>>0]^d[(c[k>>2]|0)+5>>0])<<2)>>2]^c[10480+((d[44755+(118^d[(c[k>>2]|0)+14>>0])>>0]^d[(c[k>>2]|0)+6>>0])<<2)>>2]^c[11504+((d[44755+(200^d[(c[k>>2]|0)+15>>0])>>0]^d[(c[k>>2]|0)+7>>0])<<2)>>2];c[s>>2]=(c[s>>2]<<8)+((c[s>>2]|0)>>>24);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[j>>2]|0)+4096+24>>2]=c[r>>2];c[(c[j>>2]|0)+4096+28>>2]=(c[s>>2]<<9)+((c[s>>2]|0)>>>23);c[r>>2]=c[8432+((d[45011+(154^d[(c[k>>2]|0)+8>>0])>>0]^d[c[k>>2]>>0])<<2)>>2]^c[9456+((d[45011+(74^d[(c[k>>2]|0)+9>>0])>>0]^d[(c[k>>2]|0)+1>>0])<<2)>>2]^c[10480+((d[44755+(154^d[(c[k>>2]|0)+10>>0])>>0]^d[(c[k>>2]|0)+2>>0])<<2)>>2]^c[11504+((d[44755+(74^d[(c[k>>2]|0)+11>>0])>>0]^d[(c[k>>2]|0)+3>>0])<<2)>>2];c[s>>2]=c[8432+((d[45011+(146^d[(c[k>>2]|0)+12>>0])>>0]^d[(c[k>>2]|0)+4>>0])<<2)>>2]^c[9456+((d[45011+(211^d[(c[k>>2]|0)+13>>0])>>0]^d[(c[k>>2]|0)+5>>0])<<2)>>2]^c[10480+((d[44755+(146^d[(c[k>>2]|0)+14>>0])>>0]^d[(c[k>>2]|0)+6>>0])<<2)>>2]^c[11504+((d[44755+(211^d[(c[k>>2]|0)+15>>0])>>0]^d[(c[k>>2]|0)+7>>0])<<2)>>2];c[s>>2]=(c[s>>2]<<8)+((c[s>>2]|0)>>>24);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[j>>2]|0)+4128>>2]=c[r>>2];c[(c[j>>2]|0)+4128+4>>2]=(c[s>>2]<<9)+((c[s>>2]|0)>>>23);c[r>>2]=c[8432+((d[45011+(128^d[(c[k>>2]|0)+8>>0])>>0]^d[c[k>>2]>>0])<<2)>>2]^c[9456+((d[45011+(230^d[(c[k>>2]|0)+9>>0])>>0]^d[(c[k>>2]|0)+1>>0])<<2)>>2]^c[10480+((d[44755+(128^d[(c[k>>2]|0)+10>>0])>>0]^d[(c[k>>2]|0)+2>>0])<<2)>>2]^c[11504+((d[44755+(230^d[(c[k>>2]|0)+11>>0])>>0]^d[(c[k>>2]|0)+3>>0])<<2)>>2];c[s>>2]=c[8432+((d[45011+(120^d[(c[k>>2]|0)+12>>0])>>0]^d[(c[k>>2]|0)+4>>0])<<2)>>2]^c[9456+((d[45011+(107^d[(c[k>>2]|0)+13>>0])>>0]^d[(c[k>>2]|0)+5>>0])<<2)>>2]^c[10480+((d[44755+(120^d[(c[k>>2]|0)+14>>0])>>0]^d[(c[k>>2]|0)+6>>0])<<2)>>2]^c[11504+((d[44755+(107^d[(c[k>>2]|0)+15>>0])>>0]^d[(c[k>>2]|0)+7>>0])<<2)>>2];c[s>>2]=(c[s>>2]<<8)+((c[s>>2]|0)>>>24);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[j>>2]|0)+4128+8>>2]=c[r>>2];c[(c[j>>2]|0)+4128+12>>2]=(c[s>>2]<<9)+((c[s>>2]|0)>>>23);c[r>>2]=c[8432+((d[45011+(228^d[(c[k>>2]|0)+8>>0])>>0]^d[c[k>>2]>>0])<<2)>>2]^c[9456+((d[45011+(69^d[(c[k>>2]|0)+9>>0])>>0]^d[(c[k>>2]|0)+1>>0])<<2)>>2]^c[10480+((d[44755+(228^d[(c[k>>2]|0)+10>>0])>>0]^d[(c[k>>2]|0)+2>>0])<<2)>>2]^c[11504+((d[44755+(69^d[(c[k>>2]|0)+11>>0])>>0]^d[(c[k>>2]|0)+3>>0])<<2)>>2];c[s>>2]=c[8432+((d[45011+(221^d[(c[k>>2]|0)+12>>0])>>0]^d[(c[k>>2]|0)+4>>0])<<2)>>2]^c[9456+((d[45011+(125^d[(c[k>>2]|0)+13>>0])>>0]^d[(c[k>>2]|0)+5>>0])<<2)>>2]^c[10480+((d[44755+(221^d[(c[k>>2]|0)+14>>0])>>0]^d[(c[k>>2]|0)+6>>0])<<2)>>2]^c[11504+((d[44755+(125^d[(c[k>>2]|0)+15>>0])>>0]^d[(c[k>>2]|0)+7>>0])<<2)>>2];c[s>>2]=(c[s>>2]<<8)+((c[s>>2]|0)>>>24);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[j>>2]|0)+4128+16>>2]=c[r>>2];c[(c[j>>2]|0)+4128+20>>2]=(c[s>>2]<<9)+((c[s>>2]|0)>>>23);c[r>>2]=c[8432+((d[45011+(209^d[(c[k>>2]|0)+8>>0])>>0]^d[c[k>>2]>>0])<<2)>>2]^c[9456+((d[45011+(232^d[(c[k>>2]|0)+9>>0])>>0]^d[(c[k>>2]|0)+1>>0])<<2)>>2]^c[10480+((d[44755+(209^d[(c[k>>2]|0)+10>>0])>>0]^d[(c[k>>2]|0)+2>>0])<<2)>>2]^c[11504+((d[44755+(232^d[(c[k>>2]|0)+11>>0])>>0]^d[(c[k>>2]|0)+3>>0])<<2)>>2];c[s>>2]=c[8432+((d[45011+(56^d[(c[k>>2]|0)+12>>0])>>0]^d[(c[k>>2]|0)+4>>0])<<2)>>2]^c[9456+((d[45011+(75^d[(c[k>>2]|0)+13>>0])>>0]^d[(c[k>>2]|0)+5>>0])<<2)>>2]^c[10480+((d[44755+(56^d[(c[k>>2]|0)+14>>0])>>0]^d[(c[k>>2]|0)+6>>0])<<2)>>2]^c[11504+((d[44755+(75^d[(c[k>>2]|0)+15>>0])>>0]^d[(c[k>>2]|0)+7>>0])<<2)>>2];c[s>>2]=(c[s>>2]<<8)+((c[s>>2]|0)>>>24);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[j>>2]|0)+4128+24>>2]=c[r>>2];c[(c[j>>2]|0)+4128+28>>2]=(c[s>>2]<<9)+((c[s>>2]|0)>>>23);c[r>>2]=c[8432+((d[45011+(13^d[(c[k>>2]|0)+8>>0])>>0]^d[c[k>>2]>>0])<<2)>>2]^c[9456+((d[45011+(214^d[(c[k>>2]|0)+9>>0])>>0]^d[(c[k>>2]|0)+1>>0])<<2)>>2]^c[10480+((d[44755+(13^d[(c[k>>2]|0)+10>>0])>>0]^d[(c[k>>2]|0)+2>>0])<<2)>>2]^c[11504+((d[44755+(214^d[(c[k>>2]|0)+11>>0])>>0]^d[(c[k>>2]|0)+3>>0])<<2)>>2];c[s>>2]=c[8432+((d[45011+(198^d[(c[k>>2]|0)+12>>0])>>0]^d[(c[k>>2]|0)+4>>0])<<2)>>2]^c[9456+((d[45011+(50^d[(c[k>>2]|0)+13>>0])>>0]^d[(c[k>>2]|0)+5>>0])<<2)>>2]^c[10480+((d[44755+(198^d[(c[k>>2]|0)+14>>0])>>0]^d[(c[k>>2]|0)+6>>0])<<2)>>2]^c[11504+((d[44755+(50^d[(c[k>>2]|0)+15>>0])>>0]^d[(c[k>>2]|0)+7>>0])<<2)>>2];c[s>>2]=(c[s>>2]<<8)+((c[s>>2]|0)>>>24);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[j>>2]|0)+4128+32>>2]=c[r>>2];c[(c[j>>2]|0)+4128+36>>2]=(c[s>>2]<<9)+((c[s>>2]|0)>>>23);c[r>>2]=c[8432+((d[45011+(53^d[(c[k>>2]|0)+8>>0])>>0]^d[c[k>>2]>>0])<<2)>>2]^c[9456+((d[45011+(216^d[(c[k>>2]|0)+9>>0])>>0]^d[(c[k>>2]|0)+1>>0])<<2)>>2]^c[10480+((d[44755+(53^d[(c[k>>2]|0)+10>>0])>>0]^d[(c[k>>2]|0)+2>>0])<<2)>>2]^c[11504+((d[44755+(216^d[(c[k>>2]|0)+11>>0])>>0]^d[(c[k>>2]|0)+3>>0])<<2)>>2];c[s>>2]=c[8432+((d[45011+(152^d[(c[k>>2]|0)+12>>0])>>0]^d[(c[k>>2]|0)+4>>0])<<2)>>2]^c[9456+((d[45011+(253^d[(c[k>>2]|0)+13>>0])>>0]^d[(c[k>>2]|0)+5>>0])<<2)>>2]^c[10480+((d[44755+(152^d[(c[k>>2]|0)+14>>0])>>0]^d[(c[k>>2]|0)+6>>0])<<2)>>2]^c[11504+((d[44755+(253^d[(c[k>>2]|0)+15>>0])>>0]^d[(c[k>>2]|0)+7>>0])<<2)>>2];c[s>>2]=(c[s>>2]<<8)+((c[s>>2]|0)>>>24);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[j>>2]|0)+4128+40>>2]=c[r>>2];c[(c[j>>2]|0)+4128+44>>2]=(c[s>>2]<<9)+((c[s>>2]|0)>>>23);c[r>>2]=c[8432+((d[45011+(24^d[(c[k>>2]|0)+8>>0])>>0]^d[c[k>>2]>>0])<<2)>>2]^c[9456+((d[45011+(55^d[(c[k>>2]|0)+9>>0])>>0]^d[(c[k>>2]|0)+1>>0])<<2)>>2]^c[10480+((d[44755+(24^d[(c[k>>2]|0)+10>>0])>>0]^d[(c[k>>2]|0)+2>>0])<<2)>>2]^c[11504+((d[44755+(55^d[(c[k>>2]|0)+11>>0])>>0]^d[(c[k>>2]|0)+3>>0])<<2)>>2];c[s>>2]=c[8432+((d[45011+(247^d[(c[k>>2]|0)+12>>0])>>0]^d[(c[k>>2]|0)+4>>0])<<2)>>2]^c[9456+((d[45011+(113^d[(c[k>>2]|0)+13>>0])>>0]^d[(c[k>>2]|0)+5>>0])<<2)>>2]^c[10480+((d[44755+(247^d[(c[k>>2]|0)+14>>0])>>0]^d[(c[k>>2]|0)+6>>0])<<2)>>2]^c[11504+((d[44755+(113^d[(c[k>>2]|0)+15>>0])>>0]^d[(c[k>>2]|0)+7>>0])<<2)>>2];c[s>>2]=(c[s>>2]<<8)+((c[s>>2]|0)>>>24);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[j>>2]|0)+4128+48>>2]=c[r>>2];c[(c[j>>2]|0)+4128+52>>2]=(c[s>>2]<<9)+((c[s>>2]|0)>>>23);c[r>>2]=c[8432+((d[45011+(236^d[(c[k>>2]|0)+8>>0])>>0]^d[c[k>>2]>>0])<<2)>>2]^c[9456+((d[45011+(241^d[(c[k>>2]|0)+9>>0])>>0]^d[(c[k>>2]|0)+1>>0])<<2)>>2]^c[10480+((d[44755+(236^d[(c[k>>2]|0)+10>>0])>>0]^d[(c[k>>2]|0)+2>>0])<<2)>>2]^c[11504+((d[44755+(241^d[(c[k>>2]|0)+11>>0])>>0]^d[(c[k>>2]|0)+3>>0])<<2)>>2];c[s>>2]=c[8432+((d[45011+(108^d[(c[k>>2]|0)+12>>0])>>0]^d[(c[k>>2]|0)+4>>0])<<2)>>2]^c[9456+((d[45011+(225^d[(c[k>>2]|0)+13>>0])>>0]^d[(c[k>>2]|0)+5>>0])<<2)>>2]^c[10480+((d[44755+(108^d[(c[k>>2]|0)+14>>0])>>0]^d[(c[k>>2]|0)+6>>0])<<2)>>2]^c[11504+((d[44755+(225^d[(c[k>>2]|0)+15>>0])>>0]^d[(c[k>>2]|0)+7>>0])<<2)>>2];c[s>>2]=(c[s>>2]<<8)+((c[s>>2]|0)>>>24);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[j>>2]|0)+4128+56>>2]=c[r>>2];c[(c[j>>2]|0)+4128+60>>2]=(c[s>>2]<<9)+((c[s>>2]|0)>>>23);c[r>>2]=c[8432+((d[45011+(67^d[(c[k>>2]|0)+8>>0])>>0]^d[c[k>>2]>>0])<<2)>>2]^c[9456+((d[45011+(48^d[(c[k>>2]|0)+9>>0])>>0]^d[(c[k>>2]|0)+1>>0])<<2)>>2]^c[10480+((d[44755+(67^d[(c[k>>2]|0)+10>>0])>>0]^d[(c[k>>2]|0)+2>>0])<<2)>>2]^c[11504+((d[44755+(48^d[(c[k>>2]|0)+11>>0])>>0]^d[(c[k>>2]|0)+3>>0])<<2)>>2];c[s>>2]=c[8432+((d[45011+(117^d[(c[k>>2]|0)+12>>0])>>0]^d[(c[k>>2]|0)+4>>0])<<2)>>2]^c[9456+((d[45011+(15^d[(c[k>>2]|0)+13>>0])>>0]^d[(c[k>>2]|0)+5>>0])<<2)>>2]^c[10480+((d[44755+(117^d[(c[k>>2]|0)+14>>0])>>0]^d[(c[k>>2]|0)+6>>0])<<2)>>2]^c[11504+((d[44755+(15^d[(c[k>>2]|0)+15>>0])>>0]^d[(c[k>>2]|0)+7>>0])<<2)>>2];c[s>>2]=(c[s>>2]<<8)+((c[s>>2]|0)>>>24);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[j>>2]|0)+4128+64>>2]=c[r>>2];c[(c[j>>2]|0)+4128+68>>2]=(c[s>>2]<<9)+((c[s>>2]|0)>>>23);c[r>>2]=c[8432+((d[45011+(55^d[(c[k>>2]|0)+8>>0])>>0]^d[c[k>>2]>>0])<<2)>>2]^c[9456+((d[45011+(248^d[(c[k>>2]|0)+9>>0])>>0]^d[(c[k>>2]|0)+1>>0])<<2)>>2]^c[10480+((d[44755+(55^d[(c[k>>2]|0)+10>>0])>>0]^d[(c[k>>2]|0)+2>>0])<<2)>>2]^c[11504+((d[44755+(248^d[(c[k>>2]|0)+11>>0])>>0]^d[(c[k>>2]|0)+3>>0])<<2)>>2];c[s>>2]=c[8432+((d[45011+(38^d[(c[k>>2]|0)+12>>0])>>0]^d[(c[k>>2]|0)+4>>0])<<2)>>2]^c[9456+((d[45011+(27^d[(c[k>>2]|0)+13>>0])>>0]^d[(c[k>>2]|0)+5>>0])<<2)>>2]^c[10480+((d[44755+(38^d[(c[k>>2]|0)+14>>0])>>0]^d[(c[k>>2]|0)+6>>0])<<2)>>2]^c[11504+((d[44755+(27^d[(c[k>>2]|0)+15>>0])>>0]^d[(c[k>>2]|0)+7>>0])<<2)>>2];c[s>>2]=(c[s>>2]<<8)+((c[s>>2]|0)>>>24);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[j>>2]|0)+4128+72>>2]=c[r>>2];c[(c[j>>2]|0)+4128+76>>2]=(c[s>>2]<<9)+((c[s>>2]|0)>>>23);c[r>>2]=c[8432+((d[45011+(250^d[(c[k>>2]|0)+8>>0])>>0]^d[c[k>>2]>>0])<<2)>>2]^c[9456+((d[45011+(135^d[(c[k>>2]|0)+9>>0])>>0]^d[(c[k>>2]|0)+1>>0])<<2)>>2]^c[10480+((d[44755+(250^d[(c[k>>2]|0)+10>>0])>>0]^d[(c[k>>2]|0)+2>>0])<<2)>>2]^c[11504+((d[44755+(135^d[(c[k>>2]|0)+11>>0])>>0]^d[(c[k>>2]|0)+3>>0])<<2)>>2];c[s>>2]=c[8432+((d[45011+(19^d[(c[k>>2]|0)+12>>0])>>0]^d[(c[k>>2]|0)+4>>0])<<2)>>2]^c[9456+((d[45011+(250^d[(c[k>>2]|0)+13>>0])>>0]^d[(c[k>>2]|0)+5>>0])<<2)>>2]^c[10480+((d[44755+(19^d[(c[k>>2]|0)+14>>0])>>0]^d[(c[k>>2]|0)+6>>0])<<2)>>2]^c[11504+((d[44755+(250^d[(c[k>>2]|0)+15>>0])>>0]^d[(c[k>>2]|0)+7>>0])<<2)>>2];c[s>>2]=(c[s>>2]<<8)+((c[s>>2]|0)>>>24);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[j>>2]|0)+4128+80>>2]=c[r>>2];c[(c[j>>2]|0)+4128+84>>2]=(c[s>>2]<<9)+((c[s>>2]|0)>>>23);c[r>>2]=c[8432+((d[45011+(148^d[(c[k>>2]|0)+8>>0])>>0]^d[c[k>>2]>>0])<<2)>>2]^c[9456+((d[45011+(6^d[(c[k>>2]|0)+9>>0])>>0]^d[(c[k>>2]|0)+1>>0])<<2)>>2]^c[10480+((d[44755+(148^d[(c[k>>2]|0)+10>>0])>>0]^d[(c[k>>2]|0)+2>>0])<<2)>>2]^c[11504+((d[44755+(6^d[(c[k>>2]|0)+11>>0])>>0]^d[(c[k>>2]|0)+3>>0])<<2)>>2];c[s>>2]=c[8432+((d[45011+(72^d[(c[k>>2]|0)+12>>0])>>0]^d[(c[k>>2]|0)+4>>0])<<2)>>2]^c[9456+((d[45011+(63^d[(c[k>>2]|0)+13>>0])>>0]^d[(c[k>>2]|0)+5>>0])<<2)>>2]^c[10480+((d[44755+(72^d[(c[k>>2]|0)+14>>0])>>0]^d[(c[k>>2]|0)+6>>0])<<2)>>2]^c[11504+((d[44755+(63^d[(c[k>>2]|0)+15>>0])>>0]^d[(c[k>>2]|0)+7>>0])<<2)>>2];c[s>>2]=(c[s>>2]<<8)+((c[s>>2]|0)>>>24);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[j>>2]|0)+4128+88>>2]=c[r>>2];c[(c[j>>2]|0)+4128+92>>2]=(c[s>>2]<<9)+((c[s>>2]|0)>>>23);c[r>>2]=c[8432+((d[45011+(242^d[(c[k>>2]|0)+8>>0])>>0]^d[c[k>>2]>>0])<<2)>>2]^c[9456+((d[45011+(94^d[(c[k>>2]|0)+9>>0])>>0]^d[(c[k>>2]|0)+1>>0])<<2)>>2]^c[10480+((d[44755+(242^d[(c[k>>2]|0)+10>>0])>>0]^d[(c[k>>2]|0)+2>>0])<<2)>>2]^c[11504+((d[44755+(94^d[(c[k>>2]|0)+11>>0])>>0]^d[(c[k>>2]|0)+3>>0])<<2)>>2];c[s>>2]=c[8432+((d[45011+(208^d[(c[k>>2]|0)+12>>0])>>0]^d[(c[k>>2]|0)+4>>0])<<2)>>2]^c[9456+((d[45011+(186^d[(c[k>>2]|0)+13>>0])>>0]^d[(c[k>>2]|0)+5>>0])<<2)>>2]^c[10480+((d[44755+(208^d[(c[k>>2]|0)+14>>0])>>0]^d[(c[k>>2]|0)+6>>0])<<2)>>2]^c[11504+((d[44755+(186^d[(c[k>>2]|0)+15>>0])>>0]^d[(c[k>>2]|0)+7>>0])<<2)>>2];c[s>>2]=(c[s>>2]<<8)+((c[s>>2]|0)>>>24);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[j>>2]|0)+4128+96>>2]=c[r>>2];c[(c[j>>2]|0)+4128+100>>2]=(c[s>>2]<<9)+((c[s>>2]|0)>>>23);c[r>>2]=c[8432+((d[45011+(139^d[(c[k>>2]|0)+8>>0])>>0]^d[c[k>>2]>>0])<<2)>>2]^c[9456+((d[45011+(174^d[(c[k>>2]|0)+9>>0])>>0]^d[(c[k>>2]|0)+1>>0])<<2)>>2]^c[10480+((d[44755+(139^d[(c[k>>2]|0)+10>>0])>>0]^d[(c[k>>2]|0)+2>>0])<<2)>>2]^c[11504+((d[44755+(174^d[(c[k>>2]|0)+11>>0])>>0]^d[(c[k>>2]|0)+3>>0])<<2)>>2];c[s>>2]=c[8432+((d[45011+(48^d[(c[k>>2]|0)+12>>0])>>0]^d[(c[k>>2]|0)+4>>0])<<2)>>2]^c[9456+((d[45011+(91^d[(c[k>>2]|0)+13>>0])>>0]^d[(c[k>>2]|0)+5>>0])<<2)>>2]^c[10480+((d[44755+(48^d[(c[k>>2]|0)+14>>0])>>0]^d[(c[k>>2]|0)+6>>0])<<2)>>2]^c[11504+((d[44755+(91^d[(c[k>>2]|0)+15>>0])>>0]^d[(c[k>>2]|0)+7>>0])<<2)>>2];c[s>>2]=(c[s>>2]<<8)+((c[s>>2]|0)>>>24);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[j>>2]|0)+4128+104>>2]=c[r>>2];c[(c[j>>2]|0)+4128+108>>2]=(c[s>>2]<<9)+((c[s>>2]|0)>>>23);c[r>>2]=c[8432+((d[45011+(132^d[(c[k>>2]|0)+8>>0])>>0]^d[c[k>>2]>>0])<<2)>>2]^c[9456+((d[45011+(138^d[(c[k>>2]|0)+9>>0])>>0]^d[(c[k>>2]|0)+1>>0])<<2)>>2]^c[10480+((d[44755+(132^d[(c[k>>2]|0)+10>>0])>>0]^d[(c[k>>2]|0)+2>>0])<<2)>>2]^c[11504+((d[44755+(138^d[(c[k>>2]|0)+11>>0])>>0]^d[(c[k>>2]|0)+3>>0])<<2)>>2];c[s>>2]=c[8432+((d[45011+(84^d[(c[k>>2]|0)+12>>0])>>0]^d[(c[k>>2]|0)+4>>0])<<2)>>2]^c[9456+((d[45011+(0^d[(c[k>>2]|0)+13>>0])>>0]^d[(c[k>>2]|0)+5>>0])<<2)>>2]^c[10480+((d[44755+(84^d[(c[k>>2]|0)+14>>0])>>0]^d[(c[k>>2]|0)+6>>0])<<2)>>2]^c[11504+((d[44755+(0^d[(c[k>>2]|0)+15>>0])>>0]^d[(c[k>>2]|0)+7>>0])<<2)>>2];c[s>>2]=(c[s>>2]<<8)+((c[s>>2]|0)>>>24);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[j>>2]|0)+4128+112>>2]=c[r>>2];c[(c[j>>2]|0)+4128+116>>2]=(c[s>>2]<<9)+((c[s>>2]|0)>>>23);c[r>>2]=c[8432+((d[45011+(223^d[(c[k>>2]|0)+8>>0])>>0]^d[c[k>>2]>>0])<<2)>>2]^c[9456+((d[45011+(188^d[(c[k>>2]|0)+9>>0])>>0]^d[(c[k>>2]|0)+1>>0])<<2)>>2]^c[10480+((d[44755+(223^d[(c[k>>2]|0)+10>>0])>>0]^d[(c[k>>2]|0)+2>>0])<<2)>>2]^c[11504+((d[44755+(188^d[(c[k>>2]|0)+11>>0])>>0]^d[(c[k>>2]|0)+3>>0])<<2)>>2];c[s>>2]=c[8432+((d[45011+(35^d[(c[k>>2]|0)+12>>0])>>0]^d[(c[k>>2]|0)+4>>0])<<2)>>2]^c[9456+((d[45011+(157^d[(c[k>>2]|0)+13>>0])>>0]^d[(c[k>>2]|0)+5>>0])<<2)>>2]^c[10480+((d[44755+(35^d[(c[k>>2]|0)+14>>0])>>0]^d[(c[k>>2]|0)+6>>0])<<2)>>2]^c[11504+((d[44755+(157^d[(c[k>>2]|0)+15>>0])>>0]^d[(c[k>>2]|0)+7>>0])<<2)>>2];c[s>>2]=(c[s>>2]<<8)+((c[s>>2]|0)>>>24);c[r>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[j>>2]|0)+4128+120>>2]=c[r>>2];c[(c[j>>2]|0)+4128+124>>2]=(c[s>>2]<<9)+((c[s>>2]|0)>>>23)}c[i>>2]=0;K=c[i>>2]|0;l=g;return K|0}function Lm(){var a=0,b=0,d=0,e=0,f=0,g=0;a=l;l=l+4288|0;if((l|0)>=(m|0))$(4288);b=a+4264|0;d=a+8|0;e=a+4272|0;f=a;Dm(d,45267,16)|0;Em(d,e,45283)|0;do if(!(Jv(e,45299,16)|0)){Fm(d,e,e)|0;if(Jv(e,45283,16)|0){c[b>>2]=45351;break}Dm(d,45387,32)|0;Em(d,e,45419)|0;if(Jv(e,45435,16)|0){c[b>>2]=45451;break}Fm(d,e,e)|0;if(Jv(e,45419,16)|0){c[b>>2]=45487;break}g=Mm()|0;c[f>>2]=g;if(g|0){c[b>>2]=c[f>>2];break}g=Nm()|0;c[f>>2]=g;if(g|0){c[b>>2]=c[f>>2];break}g=Om()|0;c[f>>2]=g;if(g|0){c[b>>2]=c[f>>2];break}else{c[b>>2]=0;break}}else c[b>>2]=45315;while(0);l=a;return c[b>>2]|0}function Mm(){var a=0,b=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);c[a+8>>2]=4;c[a+4>>2]=16;c[a>>2]=4256;b=wr(43484,13,14,8,4,16,4256)|0;l=a;return b|0}function Nm(){var a=0,b=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);c[a+8>>2]=5;c[a+4>>2]=16;c[a>>2]=4256;b=sr(43484,13,14,6,5,16,4256)|0;l=a;return b|0}function Om(){var a=0,b=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);c[a+8>>2]=5;c[a+4>>2]=16;c[a>>2]=4256;b=ur(43484,13,14,7,5,16,4256)|0;l=a;return b|0}function Pm(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;g=l;l=l+48|0;if((l|0)>=(m|0))$(48);h=g+36|0;i=g+32|0;j=g+28|0;k=g+24|0;n=g+20|0;o=g+16|0;p=g+12|0;q=g+8|0;r=g+4|0;s=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[n>>2]=f;c[o>>2]=c[h>>2];c[p>>2]=c[j>>2];c[q>>2]=c[k>>2];c[s>>2]=0;while(1){if(!(c[n>>2]|0))break;c[r>>2]=Em(c[o>>2]|0,c[i>>2]|0,c[i>>2]|0)|0;if((c[r>>2]|0)>>>0>(c[s>>2]|0)>>>0)c[s>>2]=c[r>>2];Qm(c[p>>2]|0,c[i>>2]|0,c[q>>2]|0,16);c[p>>2]=(c[p>>2]|0)+16;c[q>>2]=(c[q>>2]|0)+16;c[n>>2]=(c[n>>2]|0)+-1}bf(c[s>>2]|0);cf();l=g;return}function Qm(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f+12|0;h=f+8|0;i=f+4|0;j=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;Rm(c[g>>2]|0,c[i>>2]|0,c[h>>2]|0,c[i>>2]|0,c[j>>2]|0);l=f;return}function Rm(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;i=l;l=l+64|0;if((l|0)>=(m|0))$(64);j=i+56|0;k=i+52|0;n=i+48|0;o=i+44|0;p=i+40|0;q=i+36|0;r=i+32|0;s=i+28|0;t=i+24|0;u=i+60|0;v=i+20|0;w=i+16|0;x=i+12|0;y=i+8|0;z=i+4|0;c[j>>2]=b;c[k>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;c[q>>2]=c[j>>2];c[r>>2]=c[n>>2];c[s>>2]=c[k>>2];c[t>>2]=c[o>>2];c[i>>2]=3;if(!((c[t>>2]|c[s>>2]|c[q>>2]|c[r>>2])&3)){c[v>>2]=c[q>>2];c[y>>2]=c[s>>2];c[w>>2]=c[r>>2];c[x>>2]=c[t>>2];while(1){if((c[p>>2]|0)>>>0<4)break;o=c[x>>2]|0;c[x>>2]=o+4;c[z>>2]=c[o>>2];o=c[c[w>>2]>>2]|0;k=c[y>>2]|0;c[y>>2]=k+4;n=o^c[k>>2];k=c[v>>2]|0;c[v>>2]=k+4;c[k>>2]=n;n=c[z>>2]|0;k=c[w>>2]|0;c[w>>2]=k+4;c[k>>2]=n;c[p>>2]=(c[p>>2]|0)-4}c[q>>2]=c[v>>2];c[s>>2]=c[y>>2];c[r>>2]=c[w>>2];c[t>>2]=c[x>>2]}while(1){if(!(c[p>>2]|0))break;x=c[t>>2]|0;c[t>>2]=x+1;a[u>>0]=a[x>>0]|0;x=d[c[r>>2]>>0]|0;w=c[s>>2]|0;c[s>>2]=w+1;y=(x^(d[w>>0]|0))&255;w=c[q>>2]|0;c[q>>2]=w+1;a[w>>0]=y;y=a[u>>0]|0;w=c[r>>2]|0;c[r>>2]=w+1;a[w>>0]=y;c[p>>2]=(c[p>>2]|0)+-1}l=i;return}function Sm(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;i=l;l=l+80|0;if((l|0)>=(m|0))$(80);j=i+56|0;k=i+52|0;n=i+48|0;o=i+44|0;p=i+40|0;q=i+36|0;r=i+32|0;s=i+28|0;t=i+64|0;u=i+24|0;v=i+20|0;w=i+16|0;x=i+12|0;y=i+60|0;z=i;A=i+8|0;c[j>>2]=b;c[k>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;c[q>>2]=c[j>>2];c[r>>2]=c[n>>2];c[s>>2]=c[o>>2];c[v>>2]=0;while(1){if(!(c[p>>2]|0))break;c[u>>2]=Fm(c[q>>2]|0,t,c[s>>2]|0)|0;if((c[u>>2]|0)>>>0>(c[v>>2]|0)>>>0)c[v>>2]=c[u>>2];Rm(c[r>>2]|0,t,c[k>>2]|0,c[s>>2]|0,16);c[s>>2]=(c[s>>2]|0)+16;c[r>>2]=(c[r>>2]|0)+16;c[p>>2]=(c[p>>2]|0)+-1}c[w>>2]=t;c[x>>2]=16;a[y>>0]=0;t=z;c[t>>2]=d[y>>0];c[t+4>>2]=0;while(1){if(!(c[w>>2]&7|0?(c[x>>2]|0)!=0:0))break;a[c[w>>2]>>0]=a[y>>0]|0;c[w>>2]=(c[w>>2]|0)+1;c[x>>2]=(c[x>>2]|0)+-1}if((c[x>>2]|0)>>>0>=8){t=z;p=gx(c[t>>2]|0,c[t+4>>2]|0,16843009,16843009)|0;t=z;c[t>>2]=p;c[t+4>>2]=D;do{c[A>>2]=c[w>>2];t=z;p=c[t+4>>2]|0;r=c[A>>2]|0;c[r>>2]=c[t>>2];c[r+4>>2]=p;c[x>>2]=(c[x>>2]|0)-8;c[w>>2]=(c[w>>2]|0)+8}while((c[x>>2]|0)>>>0>=8)}while(1){if(!(c[x>>2]|0))break;a[c[w>>2]>>0]=a[y>>0]|0;c[w>>2]=(c[w>>2]|0)+1;c[x>>2]=(c[x>>2]|0)+-1}bf(c[v>>2]|0);cf();l=i;return}function Tm(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;i=l;l=l+96|0;if((l|0)>=(m|0))$(96);j=i+60|0;k=i+56|0;n=i+52|0;o=i+48|0;p=i+44|0;q=i+40|0;r=i+36|0;s=i+32|0;t=i+72|0;u=i+28|0;v=i+24|0;w=i+20|0;x=i+16|0;y=i+12|0;z=i+64|0;A=i;B=i+8|0;c[j>>2]=b;c[k>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;c[q>>2]=c[j>>2];c[r>>2]=c[n>>2];c[s>>2]=c[o>>2];c[v>>2]=0;while(1){if(!(c[p>>2]|0))break;c[u>>2]=Em(c[q>>2]|0,t,c[k>>2]|0)|0;if((c[u>>2]|0)>>>0>(c[v>>2]|0)>>>0)c[v>>2]=c[u>>2];Um(c[r>>2]|0,t,c[s>>2]|0,16);c[r>>2]=(c[r>>2]|0)+16;c[s>>2]=(c[s>>2]|0)+16;c[w>>2]=16;while(1){if((c[w>>2]|0)<=0)break;o=(c[k>>2]|0)+((c[w>>2]|0)-1)|0;a[o>>0]=(a[o>>0]|0)+1<<24>>24;if(a[(c[k>>2]|0)+((c[w>>2]|0)-1)>>0]|0)break;c[w>>2]=(c[w>>2]|0)+-1}c[p>>2]=(c[p>>2]|0)+-1}c[x>>2]=t;c[y>>2]=16;a[z>>0]=0;t=A;c[t>>2]=d[z>>0];c[t+4>>2]=0;while(1){if(!(c[x>>2]&7|0?(c[y>>2]|0)!=0:0))break;a[c[x>>2]>>0]=a[z>>0]|0;c[x>>2]=(c[x>>2]|0)+1;c[y>>2]=(c[y>>2]|0)+-1}if((c[y>>2]|0)>>>0>=8){t=A;p=gx(c[t>>2]|0,c[t+4>>2]|0,16843009,16843009)|0;t=A;c[t>>2]=p;c[t+4>>2]=D;do{c[B>>2]=c[x>>2];t=A;p=c[t+4>>2]|0;w=c[B>>2]|0;c[w>>2]=c[t>>2];c[w+4>>2]=p;c[y>>2]=(c[y>>2]|0)-8;c[x>>2]=(c[x>>2]|0)+8}while((c[y>>2]|0)>>>0>=8)}while(1){if(!(c[y>>2]|0))break;a[c[x>>2]>>0]=a[z>>0]|0;c[x>>2]=(c[x>>2]|0)+1;c[y>>2]=(c[y>>2]|0)+-1}bf(c[v>>2]|0);cf();l=i;return}function Um(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;h=l;l=l+48|0;if((l|0)>=(m|0))$(48);i=h+40|0;j=h+36|0;k=h+32|0;n=h+28|0;o=h+24|0;p=h+20|0;q=h+16|0;r=h+12|0;s=h+8|0;t=h+4|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[n>>2]=g;c[o>>2]=c[i>>2];c[p>>2]=c[j>>2];c[q>>2]=c[k>>2];c[h>>2]=3;if(!((c[o>>2]|c[p>>2]|c[q>>2])&3)){c[r>>2]=c[o>>2];c[s>>2]=c[p>>2];c[t>>2]=c[q>>2];while(1){if((c[n>>2]|0)>>>0<4)break;k=c[s>>2]|0;c[s>>2]=k+4;j=c[k>>2]|0;k=c[t>>2]|0;c[t>>2]=k+4;i=j^c[k>>2];k=c[r>>2]|0;c[r>>2]=k+4;c[k>>2]=i;c[n>>2]=(c[n>>2]|0)-4}c[o>>2]=c[r>>2];c[p>>2]=c[s>>2];c[q>>2]=c[t>>2]}while(1){if(!(c[n>>2]|0))break;t=c[p>>2]|0;c[p>>2]=t+1;s=d[t>>0]|0;t=c[q>>2]|0;c[q>>2]=t+1;r=(s^(d[t>>0]|0))&255;t=c[o>>2]|0;c[o>>2]=t+1;a[t>>0]=r;c[n>>2]=(c[n>>2]|0)+-1}l=h;return}function Vm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;c[17742]=c[e>>2];c[17743]=c[f>>2];l=d;return}function Wm(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f+12|0;h=f+8|0;i=f+4|0;j=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;if(!(c[17742]|0)){l=f;return}vb[c[17742]&15](c[17743]|0,c[g>>2]|0,c[h>>2]|0,c[i>>2]|0,c[j>>2]|0);l=f;return}function Xm(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;do if(c[d>>2]|0){if((c[d>>2]|0)==1){c[17745]=1;break}if(!(c[17744]|0)){if((c[d>>2]|0)==2){c[17746]=1;break}if((c[d>>2]|0)==3)c[17747]=1}}else c[17744]=1;while(0);l=b;return}function Ym(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;if(Wg()|0){As(c[d>>2]|0);l=b;return}if(c[17745]|0){$r(c[d>>2]|0);l=b;return}if(c[17746]|0){As(c[d>>2]|0);l=b;return}a=c[d>>2]|0;if(c[17747]|0){ct(a);l=b;return}else{$r(a);l=b;return}}function Zm(){if(Wg()|0){Gs();return}if(c[17745]|0){js();return}if(c[17746]|0){Gs();return}if(c[17747]|0){et();return}else{js();return}}function _m(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[e>>2]=a;if(!(c[e>>2]|0)?Wg()|0:0)c[d>>2]=2;else f=4;do if((f|0)==4){if(c[17745]|0){c[d>>2]=1;break}if(c[17746]|0){c[d>>2]=2;break}if(c[17747]|0){c[d>>2]=3;break}else{c[d>>2]=1;break}}while(0);l=b;return c[d>>2]|0}function $m(){if(Wg()|0){Hs();return}else{ks();return}}function an(){if(Wg()|0)return;ls();return}function bn(){if(Wg()|0)return;ms();return}function cn(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;if(Wg()|0){l=b;return}ns(c[d>>2]|0);l=b;return}function dn(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[e>>2]=a;if(Wg()|0)c[d>>2]=0;else c[d>>2]=os(c[e>>2]|0)|0;l=b;return c[d>>2]|0}function en(){var a=0,b=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=a;if(Wg()|0)c[b>>2]=Is()|0;else c[b>>2]=ps()|0;l=a;return c[b>>2]|0}function fn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=zf(c[e>>2]|0)|0;gn(c[g>>2]|0,c[e>>2]|0,c[f>>2]|0);l=d;return c[g>>2]|0}function gn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;if(Wg()|0){Js(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0);l=e;return}if(c[17745]|0){qs(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0);l=e;return}if(c[17746]|0){Js(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0);l=e;return}d=c[f>>2]|0;f=c[g>>2]|0;g=c[h>>2]|0;if(c[17747]|0){ht(d,f,g);l=e;return}else{qs(d,f,g);l=e;return}}function hn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=Bf(c[e>>2]|0)|0;gn(c[g>>2]|0,c[e>>2]|0,c[f>>2]|0);l=d;return c[g>>2]|0}function jn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;gn(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0);l=e;return}function kn(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;if(Wg()|0){l=b;return}if(c[17745]|0){xs(c[d>>2]|0);l=b;return}if((c[17746]|0)!=0|(c[17747]|0)!=0){l=b;return}xs(c[d>>2]|0);l=b;return}function ln(){if(Wg()|0)return;if(c[17745]|0){ys();return}if((c[17746]|0)!=0|(c[17747]|0)!=0)return;ys();return}function mn(){if(Wg()|0)return;if(c[17745]|0){zs();return}if((c[17746]|0)!=0|(c[17747]|0)!=0)return;zs();return}function nn(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;e=l;l=l+48|0;if((l|0)>=(m|0))$(48);f=e+8|0;g=e;h=e+40|0;i=e+36|0;j=e+32|0;k=e+28|0;n=e+24|0;o=e+20|0;p=e+16|0;q=e+12|0;c[h>>2]=b;c[i>>2]=d;if(Wg()|0){Ws(c[h>>2]|0,c[i>>2]|0);l=e;return}Ym(1);c[o>>2]=Ht(12592)|0;if(c[o>>2]|0){c[g>>2]=Bt(c[o>>2]|0)|0;We(45534,g)}c[j>>2]=_v()|0;if(c[17748]|0){if((c[17749]|0)!=(c[j>>2]|0)){gn(72243,8,0);c[17749]=c[j>>2]}}else{c[p>>2]=kb(0)|0;c[q>>2]=c[j>>2];c[17749]=c[j>>2];c[k>>2]=72223;j=c[k>>2]|0;a[j>>0]=a[q>>0]|0;a[j+1>>0]=a[q+1>>0]|0;a[j+2>>0]=a[q+2>>0]|0;a[j+3>>0]=a[q+3>>0]|0;c[k>>2]=(c[k>>2]|0)+4;q=c[k>>2]|0;a[q>>0]=a[p>>0]|0;a[q+1>>0]=a[p+1>>0]|0;a[q+2>>0]=a[p+2>>0]|0;a[q+3>>0]=a[p+3>>0]|0;jn(72243,8,0);c[17748]=1}c[k>>2]=c[h>>2];while(1){if((c[i>>2]|0)>>>0<=0)break;Xl(72223,72223,28);c[n>>2]=(c[i>>2]|0)>>>0>20?20:c[i>>2]|0;_w(c[k>>2]|0,72223,c[n>>2]|0)|0;c[i>>2]=(c[i>>2]|0)-(c[n>>2]|0);c[k>>2]=(c[k>>2]|0)+(c[n>>2]|0)}c[o>>2]=It(12592)|0;if(c[o>>2]|0){c[f>>2]=Bt(c[o>>2]|0)|0;We(45579,f)}else{l=e;return}}function on(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+4|0;e=b;c[e>>2]=a;if(Wg()|0)c[d>>2]=Xs(c[e>>2]|0)|0;else c[d>>2]=0;l=b;return c[d>>2]|0}function pn(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;j=l;l=l+48|0;if((l|0)>=(m|0))$(48);k=j+32|0;n=j+28|0;o=j+24|0;p=j+20|0;q=j+16|0;r=j+12|0;s=j+8|0;t=j+4|0;u=j;c[n>>2]=a;c[o>>2]=b;c[p>>2]=d;c[q>>2]=e;c[r>>2]=f;c[s>>2]=g;c[t>>2]=h;c[u>>2]=i;if(Wg()|0){c[k>>2]=$s(c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0,c[r>>2]|0,c[s>>2]|0,c[t>>2]|0,c[u>>2]|0)|0;v=c[k>>2]|0;l=j;return v|0}else{c[k>>2]=60;v=c[k>>2]|0;l=j;return v|0}return 0}function qn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;if(Wg()|0){c[f>>2]=at(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0)|0;j=c[f>>2]|0;l=e;return j|0}else{c[f>>2]=60;j=c[f>>2]|0;l=e;return j|0}return 0}function rn(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;if(!(Wg()|0)){l=b;return}bt(c[d>>2]|0);l=b;return}function sn(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;f=l;l=l+144|0;if((l|0)>=(m|0))$(144);g=f+8|0;h=f;i=f+28|0;j=f+24|0;k=f+20|0;n=f+16|0;o=f+12|0;p=f+32|0;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;e=c[i>>2]|0;if(!(c[j>>2]|0)){c[h>>2]=e;Su(p,99,45624,h)|0;af(p,0);l=f;return}c[g>>2]=e;Su(p,99,45629,g)|0;if(c[k>>2]|0){c[n>>2]=Rp(0)|0;c[o>>2]=Rp(0)|0}if(c[k>>2]|0?!(tn(c[n>>2]|0,c[o>>2]|0,c[j>>2]|0,c[k>>2]|0)|0):0){a[p+((hv(p)|0)-1)>>0]=120;af(p,c[n>>2]|0);a[p+((hv(p)|0)-1)>>0]=121;af(p,c[o>>2]|0)}else{af(p,c[c[j>>2]>>2]|0);a[p+((hv(p)|0)-1)>>0]=89;af(p,c[(c[j>>2]|0)+4>>2]|0);a[p+((hv(p)|0)-1)>>0]=90;af(p,c[(c[j>>2]|0)+8>>2]|0)}if(!(c[k>>2]|0)){l=f;return}Tp(c[n>>2]|0);Tp(c[o>>2]|0);l=f;return}function tn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;f=l;l=l+48|0;if((l|0)>=(m|0))$(48);g=f;h=f+40|0;i=f+36|0;j=f+32|0;k=f+28|0;n=f+24|0;o=f+20|0;p=f+16|0;q=f+12|0;r=f+8|0;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[n>>2]=e;if(!(vo(c[(c[k>>2]|0)+8>>2]|0,0)|0)){c[h>>2]=-1;s=c[h>>2]|0;l=f;return s|0}switch(c[c[n>>2]>>2]|0){case 0:{c[o>>2]=Rp(0)|0;c[p>>2]=Rp(0)|0;un(c[o>>2]|0,c[(c[k>>2]|0)+8>>2]|0,c[n>>2]|0);vn(c[p>>2]|0,c[o>>2]|0,c[o>>2]|0,c[n>>2]|0);if(c[i>>2]|0)vn(c[i>>2]|0,c[c[k>>2]>>2]|0,c[p>>2]|0,c[n>>2]|0);if(c[j>>2]|0){c[q>>2]=Rp(0)|0;vn(c[q>>2]|0,c[p>>2]|0,c[o>>2]|0,c[n>>2]|0);vn(c[j>>2]|0,c[(c[k>>2]|0)+4>>2]|0,c[q>>2]|0,c[n>>2]|0);Dp(c[q>>2]|0)}Dp(c[p>>2]|0);Dp(c[o>>2]|0);c[h>>2]=0;s=c[h>>2]|0;l=f;return s|0}case 1:{if(c[i>>2]|0)Kp(c[i>>2]|0,c[c[k>>2]>>2]|0)|0;if(c[j>>2]|0){c[g>>2]=45683;c[g+4>>2]=45707;We(45634,g)}c[h>>2]=0;s=c[h>>2]|0;l=f;return s|0}case 2:{c[r>>2]=Rp(0)|0;un(c[r>>2]|0,c[(c[k>>2]|0)+8>>2]|0,c[n>>2]|0);if(c[i>>2]|0)vn(c[i>>2]|0,c[c[k>>2]>>2]|0,c[r>>2]|0,c[n>>2]|0);if(c[j>>2]|0)vn(c[j>>2]|0,c[(c[k>>2]|0)+4>>2]|0,c[r>>2]|0,c[n>>2]|0);Tp(c[r>>2]|0);c[h>>2]=0;s=c[h>>2]|0;l=f;return s|0}default:{c[h>>2]=-1;s=c[h>>2]|0;l=f;return s|0}}return 0}function un(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+12|0;g=e+8|0;h=e+4|0;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;if(Lo(c[f>>2]|0,c[g>>2]|0,c[(c[h>>2]|0)+16>>2]|0)|0){l=e;return}Ve(45718,e);af(45752,c[g>>2]|0);af(45756,c[(c[h>>2]|0)+16>>2]|0);l=e;return}function vn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f+12|0;h=f+8|0;i=f+4|0;j=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;Qo(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0);wn(c[g>>2]|0,c[j>>2]|0);l=f;return}function wn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=c[e>>2]|0;a=c[e>>2]|0;e=c[f>>2]|0;if(c[(c[f>>2]|0)+48+12>>2]|0){Po(b,a,c[e+48+12>>2]|0);l=d;return}else{Mo(b,a,c[e+16>>2]|0);l=d;return}}function xn(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[b+4>>2]=a;c[d>>2]=zf(12)|0;yn(c[d>>2]|0);l=b;return c[d>>2]|0}function yn(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;a=Rp(0)|0;c[c[d>>2]>>2]=a;a=Rp(0)|0;c[(c[d>>2]|0)+4>>2]=a;a=Rp(0)|0;c[(c[d>>2]|0)+8>>2]=a;l=b;return}function zn(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;if(!(c[d>>2]|0)){l=b;return}An(c[d>>2]|0);vf(c[d>>2]|0);l=b;return}function An(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;Dp(c[c[d>>2]>>2]|0);c[c[d>>2]>>2]=0;Dp(c[(c[d>>2]|0)+4>>2]|0);c[(c[d>>2]|0)+4>>2]=0;Dp(c[(c[d>>2]|0)+8>>2]|0);c[(c[d>>2]|0)+8>>2]=0;l=b;return}function Bn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f+12|0;h=f+8|0;i=f+4|0;j=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;if(!(c[g>>2]|0))c[g>>2]=xn(0)|0;e=c[c[g>>2]>>2]|0;if(c[h>>2]|0)Kp(e,c[h>>2]|0)|0;else Bp(e);e=c[(c[g>>2]|0)+4>>2]|0;if(c[i>>2]|0)Kp(e,c[i>>2]|0)|0;else Bp(e);e=c[(c[g>>2]|0)+8>>2]|0;if(c[j>>2]|0){Kp(e,c[j>>2]|0)|0;k=c[g>>2]|0;l=f;return k|0}else{Bp(e);k=c[g>>2]|0;l=f;return k|0}return 0}function Cn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f+12|0;h=f+8|0;i=f+4|0;j=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;if(!(c[g>>2]|0))c[g>>2]=xn(0)|0;e=c[c[g>>2]>>2]|0;if(c[h>>2]|0)Mp(e,c[h>>2]|0);else Bp(e);e=c[(c[g>>2]|0)+4>>2]|0;if(c[i>>2]|0)Mp(e,c[i>>2]|0);else Bp(e);e=c[(c[g>>2]|0)+8>>2]|0;if(c[j>>2]|0){Mp(e,c[j>>2]|0);k=c[g>>2]|0;l=f;return k|0}else{Bp(e);k=c[g>>2]|0;l=f;return k|0}return 0}function Dn(b){b=b|0;var d=0,e=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d;c[e>>2]=b;b=(c[e>>2]|0)+48|0;a[b>>0]=a[b>>0]&-2;b=(c[e>>2]|0)+48|0;a[b>>0]=a[b>>0]&-3;l=d;return}function En(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;h=l;l=l+32|0;if((l|0)>=(m|0))$(32);i=h+24|0;j=h+20|0;k=h+16|0;n=h+12|0;o=h+8|0;p=h+4|0;q=h;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=Cf(1,108)|0;Fn(c[q>>2]|0,c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0);l=h;return c[q>>2]|0}function Fn(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;i=l;l=l+32|0;if((l|0)>=(m|0))$(32);j=i+28|0;k=i+24|0;n=i+20|0;o=i+16|0;p=i+12|0;q=i+8|0;r=i+4|0;s=i;c[j>>2]=a;c[k>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;do if(!(c[17750]|0))if($a(45760)|0){c[17750]=1;break}else{c[17750]=-1;break}while(0);c[c[j>>2]>>2]=c[k>>2];c[(c[j>>2]|0)+4>>2]=c[n>>2];c[(c[j>>2]|0)+8>>2]=c[o>>2];if((c[n>>2]|0)==1)c[(c[j>>2]|0)+12>>2]=256;else{n=lo(c[p>>2]|0)|0;c[(c[j>>2]|0)+12>>2]=n}n=Ip(c[p>>2]|0)|0;c[(c[j>>2]|0)+16>>2]=n;n=Ip(c[q>>2]|0)|0;c[(c[j>>2]|0)+20>>2]=n;n=Ip(c[r>>2]|0)|0;c[(c[j>>2]|0)+24>>2]=n;if((c[17750]|0)>0)t=No(c[(c[j>>2]|0)+16>>2]|0,0)|0;else t=0;c[(c[j>>2]|0)+48+12>>2]=t;Dn(c[j>>2]|0);c[s>>2]=0;while(1){if((c[s>>2]|0)>>>0>=11)break;t=Lp(c[(c[j>>2]|0)+16>>2]|0)|0;c[(c[j>>2]|0)+48+16+(c[s>>2]<<2)>>2]=t;c[s>>2]=(c[s>>2]|0)+1}l=i;return}function Gn(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;i=l;l=l+48|0;if((l|0)>=(m|0))$(48);j=i+36|0;k=i+32|0;n=i+28|0;o=i+24|0;p=i+20|0;q=i+16|0;r=i+12|0;s=i+8|0;t=i+4|0;u=i;c[k>>2]=a;c[n>>2]=b;c[o>>2]=d;c[p>>2]=e;c[q>>2]=f;c[r>>2]=g;c[s>>2]=h;c[c[k>>2]>>2]=0;if(!((c[q>>2]|0)!=0&(c[r>>2]|0)!=0)){c[j>>2]=32816;v=c[j>>2]|0;l=i;return v|0}c[t>>2]=qh(1,108,5)|0;if(c[t>>2]|0){c[u>>2]=rh(c[t>>2]|0,1)|0;Fn(c[u>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0,c[r>>2]|0,c[s>>2]|0);c[c[k>>2]>>2]=c[t>>2];c[j>>2]=0;v=c[j>>2]|0;l=i;return v|0}else{c[j>>2]=Et()|0;v=c[j>>2]|0;l=i;return v|0}return 0}function Hn(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b+8|0;e=b+4|0;f=b;c[d>>2]=a;c[e>>2]=c[d>>2];Oo(c[(c[e>>2]|0)+48+12>>2]|0);Dp(c[(c[e>>2]|0)+16>>2]|0);Dp(c[(c[e>>2]|0)+20>>2]|0);Dp(c[(c[e>>2]|0)+24>>2]|0);zn(c[(c[e>>2]|0)+28>>2]|0);Dp(c[(c[e>>2]|0)+32>>2]|0);Dp(c[(c[e>>2]|0)+36>>2]|0);zn(c[(c[e>>2]|0)+40>>2]|0);Dp(c[(c[e>>2]|0)+44>>2]|0);Dp(c[(c[e>>2]|0)+48+8>>2]|0);c[f>>2]=0;while(1){if((c[f>>2]|0)>>>0>=11)break;Dp(c[(c[e>>2]|0)+48+16+(c[f>>2]<<2)>>2]|0);c[f>>2]=(c[f>>2]|0)+1}l=b;return}function In(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;if(!(c[d>>2]|0)){l=b;return}Hn(c[d>>2]|0);vf(c[d>>2]|0);l=b;return}function Jn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=rh(c[g>>2]|0,1)|0;g=_h(c[f>>2]|0,c[i>>2]|0,c[h>>2]|0)|0;l=e;return g|0}function Kn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+12|0;g=e+8|0;h=e;c[f>>2]=a;c[g>>2]=b;c[e+4>>2]=d;c[h>>2]=rh(c[g>>2]|0,1)|0;g=$h(c[f>>2]|0,c[h>>2]|0)|0;l=e;return g|0}function Ln(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;switch(c[c[h>>2]>>2]|0){case 0:{Mn(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0);l=e;return}case 1:{Nn(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0);l=e;return}case 2:{On(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0);l=e;return}default:{l=e;return}}}function Mn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;if(vo(c[(c[g>>2]|0)+4>>2]|0,0)|0?vo(c[(c[g>>2]|0)+8>>2]|0,0)|0:0){d=(Tn(c[h>>2]|0)|0)!=0;b=(c[h>>2]|0)+48+16|0;if(d){Qn(c[b>>2]|0,c[(c[g>>2]|0)+8>>2]|0,c[h>>2]|0);Sn(c[(c[h>>2]|0)+48+16+12>>2]|0,c[c[g>>2]>>2]|0,c[(c[h>>2]|0)+48+16>>2]|0,c[h>>2]|0);d=c[(c[h>>2]|0)+48+16+12>>2]|0;a=c[(c[h>>2]|0)+48+16+12>>2]|0;i=Wp(3)|0;vn(d,a,i,c[h>>2]|0);Pn(c[(c[h>>2]|0)+48+16+4>>2]|0,c[c[g>>2]>>2]|0,c[(c[h>>2]|0)+48+16>>2]|0,c[h>>2]|0);vn(c[(c[h>>2]|0)+48+16+12>>2]|0,c[(c[h>>2]|0)+48+16+12>>2]|0,c[(c[h>>2]|0)+48+16+4>>2]|0,c[h>>2]|0)}else{Qn(c[b+12>>2]|0,c[c[g>>2]>>2]|0,c[h>>2]|0);b=c[(c[h>>2]|0)+48+16+12>>2]|0;i=c[(c[h>>2]|0)+48+16+12>>2]|0;a=Wp(3)|0;vn(b,i,a,c[h>>2]|0);a=c[(c[h>>2]|0)+48+16>>2]|0;i=c[(c[g>>2]|0)+8>>2]|0;b=Wp(4)|0;Un(a,i,b,c[h>>2]|0);vn(c[(c[h>>2]|0)+48+16>>2]|0,c[(c[h>>2]|0)+48+16>>2]|0,c[(c[h>>2]|0)+20>>2]|0,c[h>>2]|0);Pn(c[(c[h>>2]|0)+48+16+12>>2]|0,c[(c[h>>2]|0)+48+16+12>>2]|0,c[(c[h>>2]|0)+48+16>>2]|0,c[h>>2]|0)}vn(c[(c[f>>2]|0)+8>>2]|0,c[(c[g>>2]|0)+4>>2]|0,c[(c[g>>2]|0)+8>>2]|0,c[h>>2]|0);Rn(c[(c[f>>2]|0)+8>>2]|0,c[(c[f>>2]|0)+8>>2]|0,c[h>>2]|0);Qn(c[(c[h>>2]|0)+48+16+4>>2]|0,c[(c[g>>2]|0)+4>>2]|0,c[h>>2]|0);vn(c[(c[h>>2]|0)+48+16+16>>2]|0,c[(c[h>>2]|0)+48+16+4>>2]|0,c[c[g>>2]>>2]|0,c[h>>2]|0);g=c[(c[h>>2]|0)+48+16+16>>2]|0;b=c[(c[h>>2]|0)+48+16+16>>2]|0;i=Wp(4)|0;vn(g,b,i,c[h>>2]|0);Qn(c[c[f>>2]>>2]|0,c[(c[h>>2]|0)+48+16+12>>2]|0,c[h>>2]|0);Rn(c[(c[h>>2]|0)+48+16>>2]|0,c[(c[h>>2]|0)+48+16+16>>2]|0,c[h>>2]|0);Sn(c[c[f>>2]>>2]|0,c[c[f>>2]>>2]|0,c[(c[h>>2]|0)+48+16>>2]|0,c[h>>2]|0);Qn(c[(c[h>>2]|0)+48+16+4>>2]|0,c[(c[h>>2]|0)+48+16+4>>2]|0,c[h>>2]|0);i=c[(c[h>>2]|0)+48+16+20>>2]|0;b=c[(c[h>>2]|0)+48+16+4>>2]|0;g=Wp(5)|0;vn(i,b,g,c[h>>2]|0);Sn(c[(c[f>>2]|0)+4>>2]|0,c[(c[h>>2]|0)+48+16+16>>2]|0,c[c[f>>2]>>2]|0,c[h>>2]|0);vn(c[(c[f>>2]|0)+4>>2]|0,c[(c[f>>2]|0)+4>>2]|0,c[(c[h>>2]|0)+48+16+12>>2]|0,c[h>>2]|0);Sn(c[(c[f>>2]|0)+4>>2]|0,c[(c[f>>2]|0)+4>>2]|0,c[(c[h>>2]|0)+48+16+20>>2]|0,c[h>>2]|0);l=e;return}Op(c[c[f>>2]>>2]|0,1)|0;Op(c[(c[f>>2]|0)+4>>2]|0,1)|0;Op(c[(c[f>>2]|0)+8>>2]|0,0)|0;l=e;return}function Nn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=e;c[e+16>>2]=a;c[e+12>>2]=b;c[e+8>>2]=d;c[f>>2]=45801;c[f+4>>2]=45707;We(45775,f)}function On(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;Pn(c[(c[h>>2]|0)+48+16>>2]|0,c[c[g>>2]>>2]|0,c[(c[g>>2]|0)+4>>2]|0,c[h>>2]|0);Qn(c[(c[h>>2]|0)+48+16>>2]|0,c[(c[h>>2]|0)+48+16>>2]|0,c[h>>2]|0);Qn(c[(c[h>>2]|0)+48+16+4>>2]|0,c[c[g>>2]>>2]|0,c[h>>2]|0);Qn(c[(c[h>>2]|0)+48+16+8>>2]|0,c[(c[g>>2]|0)+4>>2]|0,c[h>>2]|0);d=c[(c[h>>2]|0)+48+16+12>>2]|0;b=c[h>>2]|0;if((c[(c[h>>2]|0)+4>>2]|0)==1){Kp(d,c[b+48+16+4>>2]|0)|0;Jp(c[(c[h>>2]|0)+48+16+12>>2]|0,c[(c[h>>2]|0)+48+16+12>>2]|0)}else vn(d,c[b+20>>2]|0,c[(c[h>>2]|0)+48+16+4>>2]|0,c[h>>2]|0);Pn(c[(c[h>>2]|0)+48+16+16>>2]|0,c[(c[h>>2]|0)+48+16+12>>2]|0,c[(c[h>>2]|0)+48+16+8>>2]|0,c[h>>2]|0);Qn(c[(c[h>>2]|0)+48+16+20>>2]|0,c[(c[g>>2]|0)+8>>2]|0,c[h>>2]|0);Rn(c[(c[h>>2]|0)+48+16+24>>2]|0,c[(c[h>>2]|0)+48+16+20>>2]|0,c[h>>2]|0);Sn(c[(c[h>>2]|0)+48+16+24>>2]|0,c[(c[h>>2]|0)+48+16+16>>2]|0,c[(c[h>>2]|0)+48+16+24>>2]|0,c[h>>2]|0);Sn(c[c[f>>2]>>2]|0,c[(c[h>>2]|0)+48+16>>2]|0,c[(c[h>>2]|0)+48+16+4>>2]|0,c[h>>2]|0);Sn(c[c[f>>2]>>2]|0,c[c[f>>2]>>2]|0,c[(c[h>>2]|0)+48+16+8>>2]|0,c[h>>2]|0);vn(c[c[f>>2]>>2]|0,c[c[f>>2]>>2]|0,c[(c[h>>2]|0)+48+16+24>>2]|0,c[h>>2]|0);Sn(c[(c[f>>2]|0)+4>>2]|0,c[(c[h>>2]|0)+48+16+12>>2]|0,c[(c[h>>2]|0)+48+16+8>>2]|0,c[h>>2]|0);vn(c[(c[f>>2]|0)+4>>2]|0,c[(c[f>>2]|0)+4>>2]|0,c[(c[h>>2]|0)+48+16+16>>2]|0,c[h>>2]|0);vn(c[(c[f>>2]|0)+8>>2]|0,c[(c[h>>2]|0)+48+16+16>>2]|0,c[(c[h>>2]|0)+48+16+24>>2]|0,c[h>>2]|0);l=e;return}function Pn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f+12|0;h=f+8|0;i=f+4|0;j=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;fo(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0);wn(c[g>>2]|0,c[j>>2]|0);l=f;return}function Qn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;vn(c[f>>2]|0,c[g>>2]|0,c[g>>2]|0,c[h>>2]|0);l=e;return}function Rn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;uo(c[f>>2]|0,c[g>>2]|0,1);wn(c[f>>2]|0,c[h>>2]|0);l=e;return}function Sn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f+12|0;h=f+8|0;i=f+4|0;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[f>>2]=e;ho(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0);l=f;return}function Tn(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d+4|0;f=d;c[e>>2]=b;if(a[(c[e>>2]|0)+48>>0]&1|0){g=c[e>>2]|0;h=g+48|0;i=h+4|0;j=c[i>>2]|0;l=d;return j|0}b=(c[e>>2]|0)+48|0;a[b>>0]=a[b>>0]&-2|1;c[f>>2]=Lp(c[(c[e>>2]|0)+16>>2]|0)|0;go(c[f>>2]|0,c[(c[e>>2]|0)+16>>2]|0,3);b=((wo(c[(c[e>>2]|0)+20>>2]|0,c[f>>2]|0)|0)!=0^1)&1;c[(c[e>>2]|0)+48+4>>2]=b;Dp(c[f>>2]|0);g=c[e>>2]|0;h=g+48|0;i=h+4|0;j=c[i>>2]|0;l=d;return j|0}function Un(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f+12|0;h=f+8|0;i=f+4|0;j=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;So(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0,c[(c[j>>2]|0)+16>>2]|0);l=f;return}function Vn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f+12|0;h=f+8|0;i=f+4|0;j=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;switch(c[c[j>>2]>>2]|0){case 0:{Wn(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0,c[j>>2]|0);l=f;return}case 1:{Xn(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0,c[j>>2]|0);l=f;return}case 2:{Yn(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0,c[j>>2]|0);l=f;return}default:{l=f;return}}}function Wn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f+20|0;h=f+16|0;i=f+12|0;j=f+8|0;k=f+4|0;n=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;if(((wo(c[c[h>>2]>>2]|0,c[c[i>>2]>>2]|0)|0)==0?(wo(c[(c[h>>2]|0)+4>>2]|0,c[(c[i>>2]|0)+4>>2]|0)|0)==0:0)?(wo(c[(c[h>>2]|0)+8>>2]|0,c[(c[i>>2]|0)+8>>2]|0)|0)==0:0){Ln(c[g>>2]|0,c[h>>2]|0,c[j>>2]|0);l=f;return}if(!(vo(c[(c[h>>2]|0)+8>>2]|0,0)|0)){Kp(c[c[g>>2]>>2]|0,c[c[i>>2]>>2]|0)|0;Kp(c[(c[g>>2]|0)+4>>2]|0,c[(c[i>>2]|0)+4>>2]|0)|0;Kp(c[(c[g>>2]|0)+8>>2]|0,c[(c[i>>2]|0)+8>>2]|0)|0;l=f;return}if(!(vo(c[(c[i>>2]|0)+8>>2]|0,0)|0)){Kp(c[c[g>>2]>>2]|0,c[c[h>>2]>>2]|0)|0;Kp(c[(c[g>>2]|0)+4>>2]|0,c[(c[h>>2]|0)+4>>2]|0)|0;Kp(c[(c[g>>2]|0)+8>>2]|0,c[(c[h>>2]|0)+8>>2]|0)|0;l=f;return}c[k>>2]=((vo(c[(c[h>>2]|0)+8>>2]|0,1)|0)!=0^1)&1;c[n>>2]=((vo(c[(c[i>>2]|0)+8>>2]|0,1)|0)!=0^1)&1;e=c[(c[j>>2]|0)+48+16>>2]|0;if(c[n>>2]|0)Kp(e,c[c[h>>2]>>2]|0)|0;else{Qn(e,c[(c[i>>2]|0)+8>>2]|0,c[j>>2]|0);vn(c[(c[j>>2]|0)+48+16>>2]|0,c[(c[j>>2]|0)+48+16>>2]|0,c[c[h>>2]>>2]|0,c[j>>2]|0)}e=c[(c[j>>2]|0)+48+16+4>>2]|0;if(c[k>>2]|0)Kp(e,c[c[i>>2]>>2]|0)|0;else{Qn(e,c[(c[h>>2]|0)+8>>2]|0,c[j>>2]|0);vn(c[(c[j>>2]|0)+48+16+4>>2]|0,c[(c[j>>2]|0)+48+16+4>>2]|0,c[c[i>>2]>>2]|0,c[j>>2]|0)}Sn(c[(c[j>>2]|0)+48+16+8>>2]|0,c[(c[j>>2]|0)+48+16>>2]|0,c[(c[j>>2]|0)+48+16+4>>2]|0,c[j>>2]|0);e=c[(c[j>>2]|0)+48+16+12>>2]|0;k=c[(c[i>>2]|0)+8>>2]|0;n=Wp(3)|0;Un(e,k,n,c[j>>2]|0);vn(c[(c[j>>2]|0)+48+16+12>>2]|0,c[(c[j>>2]|0)+48+16+12>>2]|0,c[(c[h>>2]|0)+4>>2]|0,c[j>>2]|0);n=c[(c[j>>2]|0)+48+16+16>>2]|0;k=c[(c[h>>2]|0)+8>>2]|0;e=Wp(3)|0;Un(n,k,e,c[j>>2]|0);vn(c[(c[j>>2]|0)+48+16+16>>2]|0,c[(c[j>>2]|0)+48+16+16>>2]|0,c[(c[i>>2]|0)+4>>2]|0,c[j>>2]|0);Sn(c[(c[j>>2]|0)+48+16+20>>2]|0,c[(c[j>>2]|0)+48+16+12>>2]|0,c[(c[j>>2]|0)+48+16+16>>2]|0,c[j>>2]|0);e=(vo(c[(c[j>>2]|0)+48+16+8>>2]|0,0)|0)!=0;k=(c[j>>2]|0)+48+16|0;if(e){Pn(c[k+24>>2]|0,c[(c[j>>2]|0)+48+16>>2]|0,c[(c[j>>2]|0)+48+16+4>>2]|0,c[j>>2]|0);Pn(c[(c[j>>2]|0)+48+16+28>>2]|0,c[(c[j>>2]|0)+48+16+12>>2]|0,c[(c[j>>2]|0)+48+16+16>>2]|0,c[j>>2]|0);vn(c[(c[g>>2]|0)+8>>2]|0,c[(c[h>>2]|0)+8>>2]|0,c[(c[i>>2]|0)+8>>2]|0,c[j>>2]|0);vn(c[(c[g>>2]|0)+8>>2]|0,c[(c[g>>2]|0)+8>>2]|0,c[(c[j>>2]|0)+48+16+8>>2]|0,c[j>>2]|0);Qn(c[(c[j>>2]|0)+48+16+36>>2]|0,c[(c[j>>2]|0)+48+16+20>>2]|0,c[j>>2]|0);Qn(c[(c[j>>2]|0)+48+16+40>>2]|0,c[(c[j>>2]|0)+48+16+8>>2]|0,c[j>>2]|0);vn(c[(c[j>>2]|0)+48+16+40>>2]|0,c[(c[j>>2]|0)+48+16+40>>2]|0,c[(c[j>>2]|0)+48+16+24>>2]|0,c[j>>2]|0);Sn(c[c[g>>2]>>2]|0,c[(c[j>>2]|0)+48+16+36>>2]|0,c[(c[j>>2]|0)+48+16+40>>2]|0,c[j>>2]|0);Rn(c[(c[j>>2]|0)+48+16+36>>2]|0,c[c[g>>2]>>2]|0,c[j>>2]|0);Sn(c[(c[j>>2]|0)+48+16+32>>2]|0,c[(c[j>>2]|0)+48+16+40>>2]|0,c[(c[j>>2]|0)+48+16+36>>2]|0,c[j>>2]|0);vn(c[(c[j>>2]|0)+48+16+32>>2]|0,c[(c[j>>2]|0)+48+16+32>>2]|0,c[(c[j>>2]|0)+48+16+20>>2]|0,c[j>>2]|0);i=c[(c[j>>2]|0)+48+16+36>>2]|0;e=c[(c[j>>2]|0)+48+16+8>>2]|0;n=Wp(3)|0;Un(i,e,n,c[j>>2]|0);vn(c[(c[j>>2]|0)+48+16+36>>2]|0,c[(c[j>>2]|0)+48+16+36>>2]|0,c[(c[j>>2]|0)+48+16+28>>2]|0,c[j>>2]|0);Sn(c[(c[g>>2]|0)+4>>2]|0,c[(c[j>>2]|0)+48+16+32>>2]|0,c[(c[j>>2]|0)+48+16+36>>2]|0,c[j>>2]|0);n=c[(c[g>>2]|0)+4>>2]|0;e=c[(c[g>>2]|0)+4>>2]|0;i=Zn(c[j>>2]|0)|0;vn(n,e,i,c[j>>2]|0);l=f;return}i=(vo(c[k+20>>2]|0,0)|0)!=0;k=c[g>>2]|0;if(i){Op(c[k>>2]|0,1)|0;Op(c[(c[g>>2]|0)+4>>2]|0,1)|0;Op(c[(c[g>>2]|0)+8>>2]|0,0)|0;l=f;return}else{Ln(k,c[h>>2]|0,c[j>>2]|0);l=f;return}}function Xn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f;c[f+20>>2]=a;c[f+16>>2]=b;c[f+12>>2]=d;c[f+8>>2]=e;c[g>>2]=45824;c[g+4>>2]=45707;We(45775,g)} -function Kw(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Ba=0,Ca=0,Da=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;do if(a>>>0<245){e=a>>>0<11?16:a+11&-8;f=e>>>3;g=c[17827]|0;h=g>>>f;if(h&3|0){i=(h&1^1)+f|0;j=71348+(i<<1<<2)|0;k=j+8|0;n=c[k>>2]|0;o=n+8|0;p=c[o>>2]|0;do if((j|0)!=(p|0)){if(p>>>0<(c[17831]|0)>>>0)Aa();q=p+12|0;if((c[q>>2]|0)==(n|0)){c[q>>2]=j;c[k>>2]=p;break}else Aa()}else c[17827]=g&~(1<<i);while(0);p=i<<3;c[n+4>>2]=p|3;k=n+p+4|0;c[k>>2]=c[k>>2]|1;r=o;l=b;return r|0}k=c[17829]|0;if(e>>>0>k>>>0){if(h|0){p=2<<f;j=h<<f&(p|0-p);p=(j&0-j)+-1|0;j=p>>>12&16;q=p>>>j;p=q>>>5&8;s=q>>>p;q=s>>>2&4;t=s>>>q;s=t>>>1&2;u=t>>>s;t=u>>>1&1;v=(p|j|q|s|t)+(u>>>t)|0;t=71348+(v<<1<<2)|0;u=t+8|0;s=c[u>>2]|0;q=s+8|0;j=c[q>>2]|0;do if((t|0)!=(j|0)){if(j>>>0<(c[17831]|0)>>>0)Aa();p=j+12|0;if((c[p>>2]|0)==(s|0)){c[p>>2]=t;c[u>>2]=j;w=g;break}else Aa()}else{p=g&~(1<<v);c[17827]=p;w=p}while(0);j=(v<<3)-e|0;c[s+4>>2]=e|3;u=s+e|0;c[u+4>>2]=j|1;c[u+j>>2]=j;if(k|0){t=c[17832]|0;f=k>>>3;h=71348+(f<<1<<2)|0;o=1<<f;if(w&o){f=h+8|0;n=c[f>>2]|0;if(n>>>0<(c[17831]|0)>>>0)Aa();else{x=n;y=f}}else{c[17827]=w|o;x=h;y=h+8|0}c[y>>2]=t;c[x+12>>2]=t;c[t+8>>2]=x;c[t+12>>2]=h}c[17829]=j;c[17832]=u;r=q;l=b;return r|0}u=c[17828]|0;if(u){j=(u&0-u)+-1|0;h=j>>>12&16;t=j>>>h;j=t>>>5&8;o=t>>>j;t=o>>>2&4;f=o>>>t;o=f>>>1&2;n=f>>>o;f=n>>>1&1;i=c[71612+((j|h|t|o|f)+(n>>>f)<<2)>>2]|0;f=i;n=i;o=(c[i+4>>2]&-8)-e|0;while(1){i=c[f+16>>2]|0;if(!i){t=c[f+20>>2]|0;if(!t)break;else z=t}else z=i;i=(c[z+4>>2]&-8)-e|0;t=i>>>0<o>>>0;f=z;n=t?z:n;o=t?i:o}f=c[17831]|0;if(n>>>0<f>>>0)Aa();q=n+e|0;if(n>>>0>=q>>>0)Aa();s=c[n+24>>2]|0;v=c[n+12>>2]|0;do if((v|0)==(n|0)){i=n+20|0;t=c[i>>2]|0;if(!t){h=n+16|0;j=c[h>>2]|0;if(!j){A=0;break}else{B=j;C=h}}else{B=t;C=i}while(1){i=B+20|0;t=c[i>>2]|0;if(t|0){B=t;C=i;continue}i=B+16|0;t=c[i>>2]|0;if(!t)break;else{B=t;C=i}}if(C>>>0<f>>>0)Aa();else{c[C>>2]=0;A=B;break}}else{i=c[n+8>>2]|0;if(i>>>0<f>>>0)Aa();t=i+12|0;if((c[t>>2]|0)!=(n|0))Aa();h=v+8|0;if((c[h>>2]|0)==(n|0)){c[t>>2]=v;c[h>>2]=i;A=v;break}else Aa()}while(0);do if(s|0){v=c[n+28>>2]|0;f=71612+(v<<2)|0;if((n|0)==(c[f>>2]|0)){c[f>>2]=A;if(!A){c[17828]=u&~(1<<v);break}}else{if(s>>>0<(c[17831]|0)>>>0)Aa();v=s+16|0;if((c[v>>2]|0)==(n|0))c[v>>2]=A;else c[s+20>>2]=A;if(!A)break}v=c[17831]|0;if(A>>>0<v>>>0)Aa();c[A+24>>2]=s;f=c[n+16>>2]|0;do if(f|0)if(f>>>0<v>>>0)Aa();else{c[A+16>>2]=f;c[f+24>>2]=A;break}while(0);f=c[n+20>>2]|0;if(f|0)if(f>>>0<(c[17831]|0)>>>0)Aa();else{c[A+20>>2]=f;c[f+24>>2]=A;break}}while(0);if(o>>>0<16){s=o+e|0;c[n+4>>2]=s|3;u=n+s+4|0;c[u>>2]=c[u>>2]|1}else{c[n+4>>2]=e|3;c[q+4>>2]=o|1;c[q+o>>2]=o;if(k|0){u=c[17832]|0;s=k>>>3;f=71348+(s<<1<<2)|0;v=1<<s;if(g&v){s=f+8|0;i=c[s>>2]|0;if(i>>>0<(c[17831]|0)>>>0)Aa();else{D=i;E=s}}else{c[17827]=g|v;D=f;E=f+8|0}c[E>>2]=u;c[D+12>>2]=u;c[u+8>>2]=D;c[u+12>>2]=f}c[17829]=o;c[17832]=q}r=n+8|0;l=b;return r|0}else F=e}else F=e}else if(a>>>0<=4294967231){f=a+11|0;u=f&-8;v=c[17828]|0;if(v){s=0-u|0;i=f>>>8;if(i)if(u>>>0>16777215)G=31;else{f=(i+1048320|0)>>>16&8;h=i<<f;i=(h+520192|0)>>>16&4;t=h<<i;h=(t+245760|0)>>>16&2;j=14-(i|f|h)+(t<<h>>>15)|0;G=u>>>(j+7|0)&1|j<<1}else G=0;j=c[71612+(G<<2)>>2]|0;a:do if(!j){H=0;I=0;J=s;K=86}else{h=0;t=s;f=j;i=u<<((G|0)==31?0:25-(G>>>1)|0);p=0;while(1){L=(c[f+4>>2]&-8)-u|0;if(L>>>0<t>>>0)if(!L){M=f;N=0;O=f;K=90;break a}else{P=f;Q=L}else{P=h;Q=t}L=c[f+20>>2]|0;f=c[f+16+(i>>>31<<2)>>2]|0;R=(L|0)==0|(L|0)==(f|0)?p:L;L=(f|0)==0;if(L){H=R;I=P;J=Q;K=86;break}else{h=P;t=Q;i=i<<(L&1^1);p=R}}}while(0);if((K|0)==86){if((H|0)==0&(I|0)==0){j=2<<G;s=v&(j|0-j);if(!s){F=u;break}j=(s&0-s)+-1|0;s=j>>>12&16;e=j>>>s;j=e>>>5&8;n=e>>>j;e=n>>>2&4;q=n>>>e;n=q>>>1&2;o=q>>>n;q=o>>>1&1;S=c[71612+((j|s|e|n|q)+(o>>>q)<<2)>>2]|0}else S=H;if(!S){T=I;U=J}else{M=I;N=J;O=S;K=90}}if((K|0)==90)while(1){K=0;q=(c[O+4>>2]&-8)-u|0;o=q>>>0<N>>>0;n=o?q:N;q=o?O:M;o=c[O+16>>2]|0;if(o|0){M=q;N=n;O=o;K=90;continue}O=c[O+20>>2]|0;if(!O){T=q;U=n;break}else{M=q;N=n;K=90}}if((T|0)!=0?U>>>0<((c[17829]|0)-u|0)>>>0:0){n=c[17831]|0;if(T>>>0<n>>>0)Aa();q=T+u|0;if(T>>>0>=q>>>0)Aa();o=c[T+24>>2]|0;e=c[T+12>>2]|0;do if((e|0)==(T|0)){s=T+20|0;j=c[s>>2]|0;if(!j){g=T+16|0;k=c[g>>2]|0;if(!k){V=0;break}else{W=k;X=g}}else{W=j;X=s}while(1){s=W+20|0;j=c[s>>2]|0;if(j|0){W=j;X=s;continue}s=W+16|0;j=c[s>>2]|0;if(!j)break;else{W=j;X=s}}if(X>>>0<n>>>0)Aa();else{c[X>>2]=0;V=W;break}}else{s=c[T+8>>2]|0;if(s>>>0<n>>>0)Aa();j=s+12|0;if((c[j>>2]|0)!=(T|0))Aa();g=e+8|0;if((c[g>>2]|0)==(T|0)){c[j>>2]=e;c[g>>2]=s;V=e;break}else Aa()}while(0);do if(o){e=c[T+28>>2]|0;n=71612+(e<<2)|0;if((T|0)==(c[n>>2]|0)){c[n>>2]=V;if(!V){n=v&~(1<<e);c[17828]=n;Y=n;break}}else{if(o>>>0<(c[17831]|0)>>>0)Aa();n=o+16|0;if((c[n>>2]|0)==(T|0))c[n>>2]=V;else c[o+20>>2]=V;if(!V){Y=v;break}}n=c[17831]|0;if(V>>>0<n>>>0)Aa();c[V+24>>2]=o;e=c[T+16>>2]|0;do if(e|0)if(e>>>0<n>>>0)Aa();else{c[V+16>>2]=e;c[e+24>>2]=V;break}while(0);e=c[T+20>>2]|0;if(e)if(e>>>0<(c[17831]|0)>>>0)Aa();else{c[V+20>>2]=e;c[e+24>>2]=V;Y=v;break}else Y=v}else Y=v;while(0);do if(U>>>0>=16){c[T+4>>2]=u|3;c[q+4>>2]=U|1;c[q+U>>2]=U;v=U>>>3;if(U>>>0<256){o=71348+(v<<1<<2)|0;e=c[17827]|0;n=1<<v;if(e&n){v=o+8|0;s=c[v>>2]|0;if(s>>>0<(c[17831]|0)>>>0)Aa();else{Z=s;_=v}}else{c[17827]=e|n;Z=o;_=o+8|0}c[_>>2]=q;c[Z+12>>2]=q;c[q+8>>2]=Z;c[q+12>>2]=o;break}o=U>>>8;if(o)if(U>>>0>16777215)aa=31;else{n=(o+1048320|0)>>>16&8;e=o<<n;o=(e+520192|0)>>>16&4;v=e<<o;e=(v+245760|0)>>>16&2;s=14-(o|n|e)+(v<<e>>>15)|0;aa=U>>>(s+7|0)&1|s<<1}else aa=0;s=71612+(aa<<2)|0;c[q+28>>2]=aa;e=q+16|0;c[e+4>>2]=0;c[e>>2]=0;e=1<<aa;if(!(Y&e)){c[17828]=Y|e;c[s>>2]=q;c[q+24>>2]=s;c[q+12>>2]=q;c[q+8>>2]=q;break}e=U<<((aa|0)==31?0:25-(aa>>>1)|0);v=c[s>>2]|0;while(1){if((c[v+4>>2]&-8|0)==(U|0)){K=148;break}ba=v+16+(e>>>31<<2)|0;s=c[ba>>2]|0;if(!s){K=145;break}else{e=e<<1;v=s}}if((K|0)==145)if(ba>>>0<(c[17831]|0)>>>0)Aa();else{c[ba>>2]=q;c[q+24>>2]=v;c[q+12>>2]=q;c[q+8>>2]=q;break}else if((K|0)==148){e=v+8|0;s=c[e>>2]|0;n=c[17831]|0;if(s>>>0>=n>>>0&v>>>0>=n>>>0){c[s+12>>2]=q;c[e>>2]=q;c[q+8>>2]=s;c[q+12>>2]=v;c[q+24>>2]=0;break}else Aa()}}else{s=U+u|0;c[T+4>>2]=s|3;e=T+s+4|0;c[e>>2]=c[e>>2]|1}while(0);r=T+8|0;l=b;return r|0}else F=u}else F=u}else F=-1;while(0);T=c[17829]|0;if(T>>>0>=F>>>0){U=T-F|0;ba=c[17832]|0;if(U>>>0>15){aa=ba+F|0;c[17832]=aa;c[17829]=U;c[aa+4>>2]=U|1;c[aa+U>>2]=U;c[ba+4>>2]=F|3}else{c[17829]=0;c[17832]=0;c[ba+4>>2]=T|3;U=ba+T+4|0;c[U>>2]=c[U>>2]|1}r=ba+8|0;l=b;return r|0}ba=c[17830]|0;if(ba>>>0>F>>>0){U=ba-F|0;c[17830]=U;T=c[17833]|0;aa=T+F|0;c[17833]=aa;c[aa+4>>2]=U|1;c[T+4>>2]=F|3;r=T+8|0;l=b;return r|0}if(!(c[17945]|0)){c[17947]=4096;c[17946]=4096;c[17948]=-1;c[17949]=-1;c[17950]=0;c[17938]=0;T=d&-16^1431655768;c[d>>2]=T;c[17945]=T;ca=4096}else ca=c[17947]|0;T=F+48|0;d=F+47|0;U=ca+d|0;aa=0-ca|0;ca=U&aa;if(ca>>>0<=F>>>0){r=0;l=b;return r|0}Y=c[17937]|0;if(Y|0?(Z=c[17935]|0,_=Z+ca|0,_>>>0<=Z>>>0|_>>>0>Y>>>0):0){r=0;l=b;return r|0}b:do if(!(c[17938]&4)){Y=c[17833]|0;c:do if(Y){_=71756;while(1){Z=c[_>>2]|0;if(Z>>>0<=Y>>>0?(da=_+4|0,(Z+(c[da>>2]|0)|0)>>>0>Y>>>0):0)break;Z=c[_+8>>2]|0;if(!Z){K=172;break c}else _=Z}v=U-ba&aa;if(v>>>0<2147483647){Z=hx(v|0)|0;if((Z|0)==((c[_>>2]|0)+(c[da>>2]|0)|0)){if((Z|0)!=(-1|0)){ea=v;fa=Z;K=190;break b}}else{ga=Z;ha=v;K=180}}}else K=172;while(0);do if(((K|0)==172?(Y=hx(0)|0,(Y|0)!=(-1|0)):0)?(u=Y,v=c[17946]|0,Z=v+-1|0,V=((Z&u|0)==0?0:(Z+u&0-v)-u|0)+ca|0,u=c[17935]|0,v=V+u|0,V>>>0>F>>>0&V>>>0<2147483647):0){Z=c[17937]|0;if(Z|0?v>>>0<=u>>>0|v>>>0>Z>>>0:0)break;Z=hx(V|0)|0;if((Z|0)==(Y|0)){ea=V;fa=Y;K=190;break b}else{ga=Z;ha=V;K=180}}while(0);d:do if((K|0)==180){V=0-ha|0;do if(T>>>0>ha>>>0&(ha>>>0<2147483647&(ga|0)!=(-1|0))?(Z=c[17947]|0,Y=d-ha+Z&0-Z,Y>>>0<2147483647):0)if((hx(Y|0)|0)==(-1|0)){hx(V|0)|0;break d}else{ia=Y+ha|0;break}else ia=ha;while(0);if((ga|0)!=(-1|0)){ea=ia;fa=ga;K=190;break b}}while(0);c[17938]=c[17938]|4;K=187}else K=187;while(0);if((((K|0)==187?ca>>>0<2147483647:0)?(ga=hx(ca|0)|0,ca=hx(0)|0,ga>>>0<ca>>>0&((ga|0)!=(-1|0)&(ca|0)!=(-1|0))):0)?(ia=ca-ga|0,ia>>>0>(F+40|0)>>>0):0){ea=ia;fa=ga;K=190}if((K|0)==190){ga=(c[17935]|0)+ea|0;c[17935]=ga;if(ga>>>0>(c[17936]|0)>>>0)c[17936]=ga;ga=c[17833]|0;do if(ga){ia=71756;while(1){ja=c[ia>>2]|0;ka=ia+4|0;la=c[ka>>2]|0;if((fa|0)==(ja+la|0)){K=200;break}ca=c[ia+8>>2]|0;if(!ca)break;else ia=ca}if(((K|0)==200?(c[ia+12>>2]&8|0)==0:0)?ga>>>0<fa>>>0&ga>>>0>=ja>>>0:0){c[ka>>2]=la+ea;ca=ga+8|0;ha=(ca&7|0)==0?0:0-ca&7;ca=ga+ha|0;d=ea-ha+(c[17830]|0)|0;c[17833]=ca;c[17830]=d;c[ca+4>>2]=d|1;c[ca+d+4>>2]=40;c[17834]=c[17949];break}d=c[17831]|0;if(fa>>>0<d>>>0){c[17831]=fa;ma=fa}else ma=d;d=fa+ea|0;ca=71756;while(1){if((c[ca>>2]|0)==(d|0)){K=208;break}ha=c[ca+8>>2]|0;if(!ha){na=71756;break}else ca=ha}if((K|0)==208)if(!(c[ca+12>>2]&8)){c[ca>>2]=fa;ia=ca+4|0;c[ia>>2]=(c[ia>>2]|0)+ea;ia=fa+8|0;ha=fa+((ia&7|0)==0?0:0-ia&7)|0;ia=d+8|0;T=d+((ia&7|0)==0?0:0-ia&7)|0;ia=ha+F|0;da=T-ha-F|0;c[ha+4>>2]=F|3;do if((T|0)!=(ga|0)){if((T|0)==(c[17832]|0)){aa=(c[17829]|0)+da|0;c[17829]=aa;c[17832]=ia;c[ia+4>>2]=aa|1;c[ia+aa>>2]=aa;break}aa=c[T+4>>2]|0;if((aa&3|0)==1){ba=aa&-8;U=aa>>>3;e:do if(aa>>>0>=256){V=c[T+24>>2]|0;_=c[T+12>>2]|0;do if((_|0)==(T|0)){Y=T+16|0;Z=Y+4|0;v=c[Z>>2]|0;if(!v){u=c[Y>>2]|0;if(!u){oa=0;break}else{pa=u;qa=Y}}else{pa=v;qa=Z}while(1){Z=pa+20|0;v=c[Z>>2]|0;if(v|0){pa=v;qa=Z;continue}Z=pa+16|0;v=c[Z>>2]|0;if(!v)break;else{pa=v;qa=Z}}if(qa>>>0<ma>>>0)Aa();else{c[qa>>2]=0;oa=pa;break}}else{Z=c[T+8>>2]|0;if(Z>>>0<ma>>>0)Aa();v=Z+12|0;if((c[v>>2]|0)!=(T|0))Aa();Y=_+8|0;if((c[Y>>2]|0)==(T|0)){c[v>>2]=_;c[Y>>2]=Z;oa=_;break}else Aa()}while(0);if(!V)break;_=c[T+28>>2]|0;Z=71612+(_<<2)|0;do if((T|0)!=(c[Z>>2]|0)){if(V>>>0<(c[17831]|0)>>>0)Aa();Y=V+16|0;if((c[Y>>2]|0)==(T|0))c[Y>>2]=oa;else c[V+20>>2]=oa;if(!oa)break e}else{c[Z>>2]=oa;if(oa|0)break;c[17828]=c[17828]&~(1<<_);break e}while(0);_=c[17831]|0;if(oa>>>0<_>>>0)Aa();c[oa+24>>2]=V;Z=T+16|0;Y=c[Z>>2]|0;do if(Y|0)if(Y>>>0<_>>>0)Aa();else{c[oa+16>>2]=Y;c[Y+24>>2]=oa;break}while(0);Y=c[Z+4>>2]|0;if(!Y)break;if(Y>>>0<(c[17831]|0)>>>0)Aa();else{c[oa+20>>2]=Y;c[Y+24>>2]=oa;break}}else{Y=c[T+8>>2]|0;_=c[T+12>>2]|0;V=71348+(U<<1<<2)|0;do if((Y|0)!=(V|0)){if(Y>>>0<ma>>>0)Aa();if((c[Y+12>>2]|0)==(T|0))break;Aa()}while(0);if((_|0)==(Y|0)){c[17827]=c[17827]&~(1<<U);break}do if((_|0)==(V|0))ra=_+8|0;else{if(_>>>0<ma>>>0)Aa();Z=_+8|0;if((c[Z>>2]|0)==(T|0)){ra=Z;break}Aa()}while(0);c[Y+12>>2]=_;c[ra>>2]=Y}while(0);sa=T+ba|0;ta=ba+da|0}else{sa=T;ta=da}U=sa+4|0;c[U>>2]=c[U>>2]&-2;c[ia+4>>2]=ta|1;c[ia+ta>>2]=ta;U=ta>>>3;if(ta>>>0<256){aa=71348+(U<<1<<2)|0;V=c[17827]|0;Z=1<<U;do if(!(V&Z)){c[17827]=V|Z;ua=aa;va=aa+8|0}else{U=aa+8|0;v=c[U>>2]|0;if(v>>>0>=(c[17831]|0)>>>0){ua=v;va=U;break}Aa()}while(0);c[va>>2]=ia;c[ua+12>>2]=ia;c[ia+8>>2]=ua;c[ia+12>>2]=aa;break}Z=ta>>>8;do if(!Z)wa=0;else{if(ta>>>0>16777215){wa=31;break}V=(Z+1048320|0)>>>16&8;ba=Z<<V;U=(ba+520192|0)>>>16&4;v=ba<<U;ba=(v+245760|0)>>>16&2;u=14-(U|V|ba)+(v<<ba>>>15)|0;wa=ta>>>(u+7|0)&1|u<<1}while(0);Z=71612+(wa<<2)|0;c[ia+28>>2]=wa;aa=ia+16|0;c[aa+4>>2]=0;c[aa>>2]=0;aa=c[17828]|0;u=1<<wa;if(!(aa&u)){c[17828]=aa|u;c[Z>>2]=ia;c[ia+24>>2]=Z;c[ia+12>>2]=ia;c[ia+8>>2]=ia;break}u=ta<<((wa|0)==31?0:25-(wa>>>1)|0);aa=c[Z>>2]|0;while(1){if((c[aa+4>>2]&-8|0)==(ta|0)){K=278;break}xa=aa+16+(u>>>31<<2)|0;Z=c[xa>>2]|0;if(!Z){K=275;break}else{u=u<<1;aa=Z}}if((K|0)==275)if(xa>>>0<(c[17831]|0)>>>0)Aa();else{c[xa>>2]=ia;c[ia+24>>2]=aa;c[ia+12>>2]=ia;c[ia+8>>2]=ia;break}else if((K|0)==278){u=aa+8|0;Z=c[u>>2]|0;ba=c[17831]|0;if(Z>>>0>=ba>>>0&aa>>>0>=ba>>>0){c[Z+12>>2]=ia;c[u>>2]=ia;c[ia+8>>2]=Z;c[ia+12>>2]=aa;c[ia+24>>2]=0;break}else Aa()}}else{Z=(c[17830]|0)+da|0;c[17830]=Z;c[17833]=ia;c[ia+4>>2]=Z|1}while(0);r=ha+8|0;l=b;return r|0}else na=71756;while(1){ia=c[na>>2]|0;if(ia>>>0<=ga>>>0?(ya=ia+(c[na+4>>2]|0)|0,ya>>>0>ga>>>0):0)break;na=c[na+8>>2]|0}ha=ya+-47|0;ia=ha+8|0;da=ha+((ia&7|0)==0?0:0-ia&7)|0;ia=ga+16|0;ha=da>>>0<ia>>>0?ga:da;da=ha+8|0;T=fa+8|0;d=(T&7|0)==0?0:0-T&7;T=fa+d|0;ca=ea+-40-d|0;c[17833]=T;c[17830]=ca;c[T+4>>2]=ca|1;c[T+ca+4>>2]=40;c[17834]=c[17949];ca=ha+4|0;c[ca>>2]=27;c[da>>2]=c[17939];c[da+4>>2]=c[17940];c[da+8>>2]=c[17941];c[da+12>>2]=c[17942];c[17939]=fa;c[17940]=ea;c[17942]=0;c[17941]=da;da=ha+24|0;do{da=da+4|0;c[da>>2]=7}while((da+4|0)>>>0<ya>>>0);if((ha|0)!=(ga|0)){da=ha-ga|0;c[ca>>2]=c[ca>>2]&-2;c[ga+4>>2]=da|1;c[ha>>2]=da;T=da>>>3;if(da>>>0<256){d=71348+(T<<1<<2)|0;Z=c[17827]|0;u=1<<T;if(Z&u){T=d+8|0;ba=c[T>>2]|0;if(ba>>>0<(c[17831]|0)>>>0)Aa();else{za=ba;Ba=T}}else{c[17827]=Z|u;za=d;Ba=d+8|0}c[Ba>>2]=ga;c[za+12>>2]=ga;c[ga+8>>2]=za;c[ga+12>>2]=d;break}d=da>>>8;if(d)if(da>>>0>16777215)Ca=31;else{u=(d+1048320|0)>>>16&8;Z=d<<u;d=(Z+520192|0)>>>16&4;T=Z<<d;Z=(T+245760|0)>>>16&2;ba=14-(d|u|Z)+(T<<Z>>>15)|0;Ca=da>>>(ba+7|0)&1|ba<<1}else Ca=0;ba=71612+(Ca<<2)|0;c[ga+28>>2]=Ca;c[ga+20>>2]=0;c[ia>>2]=0;Z=c[17828]|0;T=1<<Ca;if(!(Z&T)){c[17828]=Z|T;c[ba>>2]=ga;c[ga+24>>2]=ba;c[ga+12>>2]=ga;c[ga+8>>2]=ga;break}T=da<<((Ca|0)==31?0:25-(Ca>>>1)|0);Z=c[ba>>2]|0;while(1){if((c[Z+4>>2]&-8|0)==(da|0)){K=304;break}Da=Z+16+(T>>>31<<2)|0;ba=c[Da>>2]|0;if(!ba){K=301;break}else{T=T<<1;Z=ba}}if((K|0)==301)if(Da>>>0<(c[17831]|0)>>>0)Aa();else{c[Da>>2]=ga;c[ga+24>>2]=Z;c[ga+12>>2]=ga;c[ga+8>>2]=ga;break}else if((K|0)==304){T=Z+8|0;da=c[T>>2]|0;ia=c[17831]|0;if(da>>>0>=ia>>>0&Z>>>0>=ia>>>0){c[da+12>>2]=ga;c[T>>2]=ga;c[ga+8>>2]=da;c[ga+12>>2]=Z;c[ga+24>>2]=0;break}else Aa()}}}else{da=c[17831]|0;if((da|0)==0|fa>>>0<da>>>0)c[17831]=fa;c[17939]=fa;c[17940]=ea;c[17942]=0;c[17836]=c[17945];c[17835]=-1;da=0;do{T=71348+(da<<1<<2)|0;c[T+12>>2]=T;c[T+8>>2]=T;da=da+1|0}while((da|0)!=32);da=fa+8|0;Z=(da&7|0)==0?0:0-da&7;da=fa+Z|0;T=ea+-40-Z|0;c[17833]=da;c[17830]=T;c[da+4>>2]=T|1;c[da+T+4>>2]=40;c[17834]=c[17949]}while(0);ea=c[17830]|0;if(ea>>>0>F>>>0){fa=ea-F|0;c[17830]=fa;ea=c[17833]|0;ga=ea+F|0;c[17833]=ga;c[ga+4>>2]=fa|1;c[ea+4>>2]=F|3;r=ea+8|0;l=b;return r|0}}c[(xu()|0)>>2]=12;r=0;l=b;return r|0}function Lw(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;if(!a)return;b=a+-8|0;d=c[17831]|0;if(b>>>0<d>>>0)Aa();e=c[a+-4>>2]|0;a=e&3;if((a|0)==1)Aa();f=e&-8;g=b+f|0;do if(!(e&1)){h=c[b>>2]|0;if(!a)return;i=b+(0-h)|0;j=h+f|0;if(i>>>0<d>>>0)Aa();if((i|0)==(c[17832]|0)){k=g+4|0;l=c[k>>2]|0;if((l&3|0)!=3){m=i;n=j;break}c[17829]=j;c[k>>2]=l&-2;c[i+4>>2]=j|1;c[i+j>>2]=j;return}l=h>>>3;if(h>>>0<256){h=c[i+8>>2]|0;k=c[i+12>>2]|0;o=71348+(l<<1<<2)|0;if((h|0)!=(o|0)){if(h>>>0<d>>>0)Aa();if((c[h+12>>2]|0)!=(i|0))Aa()}if((k|0)==(h|0)){c[17827]=c[17827]&~(1<<l);m=i;n=j;break}if((k|0)!=(o|0)){if(k>>>0<d>>>0)Aa();o=k+8|0;if((c[o>>2]|0)==(i|0))p=o;else Aa()}else p=k+8|0;c[h+12>>2]=k;c[p>>2]=h;m=i;n=j;break}h=c[i+24>>2]|0;k=c[i+12>>2]|0;do if((k|0)==(i|0)){o=i+16|0;l=o+4|0;q=c[l>>2]|0;if(!q){r=c[o>>2]|0;if(!r){s=0;break}else{t=r;u=o}}else{t=q;u=l}while(1){l=t+20|0;q=c[l>>2]|0;if(q|0){t=q;u=l;continue}l=t+16|0;q=c[l>>2]|0;if(!q)break;else{t=q;u=l}}if(u>>>0<d>>>0)Aa();else{c[u>>2]=0;s=t;break}}else{l=c[i+8>>2]|0;if(l>>>0<d>>>0)Aa();q=l+12|0;if((c[q>>2]|0)!=(i|0))Aa();o=k+8|0;if((c[o>>2]|0)==(i|0)){c[q>>2]=k;c[o>>2]=l;s=k;break}else Aa()}while(0);if(h){k=c[i+28>>2]|0;l=71612+(k<<2)|0;if((i|0)==(c[l>>2]|0)){c[l>>2]=s;if(!s){c[17828]=c[17828]&~(1<<k);m=i;n=j;break}}else{if(h>>>0<(c[17831]|0)>>>0)Aa();k=h+16|0;if((c[k>>2]|0)==(i|0))c[k>>2]=s;else c[h+20>>2]=s;if(!s){m=i;n=j;break}}k=c[17831]|0;if(s>>>0<k>>>0)Aa();c[s+24>>2]=h;l=i+16|0;o=c[l>>2]|0;do if(o|0)if(o>>>0<k>>>0)Aa();else{c[s+16>>2]=o;c[o+24>>2]=s;break}while(0);o=c[l+4>>2]|0;if(o)if(o>>>0<(c[17831]|0)>>>0)Aa();else{c[s+20>>2]=o;c[o+24>>2]=s;m=i;n=j;break}else{m=i;n=j}}else{m=i;n=j}}else{m=b;n=f}while(0);if(m>>>0>=g>>>0)Aa();f=g+4|0;b=c[f>>2]|0;if(!(b&1))Aa();if(!(b&2)){if((g|0)==(c[17833]|0)){s=(c[17830]|0)+n|0;c[17830]=s;c[17833]=m;c[m+4>>2]=s|1;if((m|0)!=(c[17832]|0))return;c[17832]=0;c[17829]=0;return}if((g|0)==(c[17832]|0)){s=(c[17829]|0)+n|0;c[17829]=s;c[17832]=m;c[m+4>>2]=s|1;c[m+s>>2]=s;return}s=(b&-8)+n|0;d=b>>>3;do if(b>>>0>=256){t=c[g+24>>2]|0;u=c[g+12>>2]|0;do if((u|0)==(g|0)){p=g+16|0;a=p+4|0;e=c[a>>2]|0;if(!e){o=c[p>>2]|0;if(!o){v=0;break}else{w=o;x=p}}else{w=e;x=a}while(1){a=w+20|0;e=c[a>>2]|0;if(e|0){w=e;x=a;continue}a=w+16|0;e=c[a>>2]|0;if(!e)break;else{w=e;x=a}}if(x>>>0<(c[17831]|0)>>>0)Aa();else{c[x>>2]=0;v=w;break}}else{a=c[g+8>>2]|0;if(a>>>0<(c[17831]|0)>>>0)Aa();e=a+12|0;if((c[e>>2]|0)!=(g|0))Aa();p=u+8|0;if((c[p>>2]|0)==(g|0)){c[e>>2]=u;c[p>>2]=a;v=u;break}else Aa()}while(0);if(t|0){u=c[g+28>>2]|0;j=71612+(u<<2)|0;if((g|0)==(c[j>>2]|0)){c[j>>2]=v;if(!v){c[17828]=c[17828]&~(1<<u);break}}else{if(t>>>0<(c[17831]|0)>>>0)Aa();u=t+16|0;if((c[u>>2]|0)==(g|0))c[u>>2]=v;else c[t+20>>2]=v;if(!v)break}u=c[17831]|0;if(v>>>0<u>>>0)Aa();c[v+24>>2]=t;j=g+16|0;i=c[j>>2]|0;do if(i|0)if(i>>>0<u>>>0)Aa();else{c[v+16>>2]=i;c[i+24>>2]=v;break}while(0);i=c[j+4>>2]|0;if(i|0)if(i>>>0<(c[17831]|0)>>>0)Aa();else{c[v+20>>2]=i;c[i+24>>2]=v;break}}}else{i=c[g+8>>2]|0;u=c[g+12>>2]|0;t=71348+(d<<1<<2)|0;if((i|0)!=(t|0)){if(i>>>0<(c[17831]|0)>>>0)Aa();if((c[i+12>>2]|0)!=(g|0))Aa()}if((u|0)==(i|0)){c[17827]=c[17827]&~(1<<d);break}if((u|0)!=(t|0)){if(u>>>0<(c[17831]|0)>>>0)Aa();t=u+8|0;if((c[t>>2]|0)==(g|0))y=t;else Aa()}else y=u+8|0;c[i+12>>2]=u;c[y>>2]=i}while(0);c[m+4>>2]=s|1;c[m+s>>2]=s;if((m|0)==(c[17832]|0)){c[17829]=s;return}else z=s}else{c[f>>2]=b&-2;c[m+4>>2]=n|1;c[m+n>>2]=n;z=n}n=z>>>3;if(z>>>0<256){b=71348+(n<<1<<2)|0;f=c[17827]|0;s=1<<n;if(f&s){n=b+8|0;y=c[n>>2]|0;if(y>>>0<(c[17831]|0)>>>0)Aa();else{A=y;B=n}}else{c[17827]=f|s;A=b;B=b+8|0}c[B>>2]=m;c[A+12>>2]=m;c[m+8>>2]=A;c[m+12>>2]=b;return}b=z>>>8;if(b)if(z>>>0>16777215)C=31;else{A=(b+1048320|0)>>>16&8;B=b<<A;b=(B+520192|0)>>>16&4;s=B<<b;B=(s+245760|0)>>>16&2;f=14-(b|A|B)+(s<<B>>>15)|0;C=z>>>(f+7|0)&1|f<<1}else C=0;f=71612+(C<<2)|0;c[m+28>>2]=C;c[m+20>>2]=0;c[m+16>>2]=0;B=c[17828]|0;s=1<<C;do if(B&s){A=z<<((C|0)==31?0:25-(C>>>1)|0);b=c[f>>2]|0;while(1){if((c[b+4>>2]&-8|0)==(z|0)){D=130;break}E=b+16+(A>>>31<<2)|0;n=c[E>>2]|0;if(!n){D=127;break}else{A=A<<1;b=n}}if((D|0)==127)if(E>>>0<(c[17831]|0)>>>0)Aa();else{c[E>>2]=m;c[m+24>>2]=b;c[m+12>>2]=m;c[m+8>>2]=m;break}else if((D|0)==130){A=b+8|0;j=c[A>>2]|0;n=c[17831]|0;if(j>>>0>=n>>>0&b>>>0>=n>>>0){c[j+12>>2]=m;c[A>>2]=m;c[m+8>>2]=j;c[m+12>>2]=b;c[m+24>>2]=0;break}else Aa()}}else{c[17828]=B|s;c[f>>2]=m;c[m+24>>2]=f;c[m+12>>2]=m;c[m+8>>2]=m}while(0);m=(c[17835]|0)+-1|0;c[17835]=m;if(!m)F=71764;else return;while(1){m=c[F>>2]|0;if(!m)break;else F=m+8|0}c[17835]=-1;return}function Mw(a,b){a=a|0;b=b|0;var d=0,e=0;if(a){d=S(b,a)|0;if((b|a)>>>0>65535)e=((d>>>0)/(a>>>0)|0|0)==(b|0)?d:-1;else e=d}else e=0;d=Kw(e)|0;if(!d)return d|0;if(!(c[d+-4>>2]&3))return d|0;Uw(d|0,0,e|0)|0;return d|0}function Nw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;if(!a){d=Kw(b)|0;return d|0}if(b>>>0>4294967231){c[(xu()|0)>>2]=12;d=0;return d|0}e=Ow(a+-8|0,b>>>0<11?16:b+11&-8)|0;if(e|0){d=e+8|0;return d|0}e=Kw(b)|0;if(!e){d=0;return d|0}f=c[a+-4>>2]|0;g=(f&-8)-((f&3|0)==0?8:4)|0;_w(e|0,a|0,(g>>>0<b>>>0?g:b)|0)|0;Lw(a);d=e;return d|0}function Ow(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;d=a+4|0;e=c[d>>2]|0;f=e&-8;g=a+f|0;h=c[17831]|0;i=e&3;if(!((i|0)!=1&a>>>0>=h>>>0&a>>>0<g>>>0))Aa();j=c[g+4>>2]|0;if(!(j&1))Aa();if(!i){if(b>>>0<256){k=0;return k|0}if(f>>>0>=(b+4|0)>>>0?(f-b|0)>>>0<=c[17947]<<1>>>0:0){k=a;return k|0}k=0;return k|0}if(f>>>0>=b>>>0){i=f-b|0;if(i>>>0<=15){k=a;return k|0}l=a+b|0;c[d>>2]=e&1|b|2;c[l+4>>2]=i|3;m=l+i+4|0;c[m>>2]=c[m>>2]|1;Pw(l,i);k=a;return k|0}if((g|0)==(c[17833]|0)){i=(c[17830]|0)+f|0;if(i>>>0<=b>>>0){k=0;return k|0}l=i-b|0;i=a+b|0;c[d>>2]=e&1|b|2;c[i+4>>2]=l|1;c[17833]=i;c[17830]=l;k=a;return k|0}if((g|0)==(c[17832]|0)){l=(c[17829]|0)+f|0;if(l>>>0<b>>>0){k=0;return k|0}i=l-b|0;if(i>>>0>15){m=a+b|0;n=m+i|0;c[d>>2]=e&1|b|2;c[m+4>>2]=i|1;c[n>>2]=i;o=n+4|0;c[o>>2]=c[o>>2]&-2;p=m;q=i}else{c[d>>2]=e&1|l|2;i=a+l+4|0;c[i>>2]=c[i>>2]|1;p=0;q=0}c[17829]=q;c[17832]=p;k=a;return k|0}if(j&2|0){k=0;return k|0}p=(j&-8)+f|0;if(p>>>0<b>>>0){k=0;return k|0}f=p-b|0;q=j>>>3;do if(j>>>0>=256){i=c[g+24>>2]|0;l=c[g+12>>2]|0;do if((l|0)==(g|0)){m=g+16|0;o=m+4|0;n=c[o>>2]|0;if(!n){r=c[m>>2]|0;if(!r){s=0;break}else{t=r;u=m}}else{t=n;u=o}while(1){o=t+20|0;n=c[o>>2]|0;if(n|0){t=n;u=o;continue}o=t+16|0;n=c[o>>2]|0;if(!n)break;else{t=n;u=o}}if(u>>>0<h>>>0)Aa();else{c[u>>2]=0;s=t;break}}else{o=c[g+8>>2]|0;if(o>>>0<h>>>0)Aa();n=o+12|0;if((c[n>>2]|0)!=(g|0))Aa();m=l+8|0;if((c[m>>2]|0)==(g|0)){c[n>>2]=l;c[m>>2]=o;s=l;break}else Aa()}while(0);if(i|0){l=c[g+28>>2]|0;o=71612+(l<<2)|0;if((g|0)==(c[o>>2]|0)){c[o>>2]=s;if(!s){c[17828]=c[17828]&~(1<<l);break}}else{if(i>>>0<(c[17831]|0)>>>0)Aa();l=i+16|0;if((c[l>>2]|0)==(g|0))c[l>>2]=s;else c[i+20>>2]=s;if(!s)break}l=c[17831]|0;if(s>>>0<l>>>0)Aa();c[s+24>>2]=i;o=g+16|0;m=c[o>>2]|0;do if(m|0)if(m>>>0<l>>>0)Aa();else{c[s+16>>2]=m;c[m+24>>2]=s;break}while(0);m=c[o+4>>2]|0;if(m|0)if(m>>>0<(c[17831]|0)>>>0)Aa();else{c[s+20>>2]=m;c[m+24>>2]=s;break}}}else{m=c[g+8>>2]|0;l=c[g+12>>2]|0;i=71348+(q<<1<<2)|0;if((m|0)!=(i|0)){if(m>>>0<h>>>0)Aa();if((c[m+12>>2]|0)!=(g|0))Aa()}if((l|0)==(m|0)){c[17827]=c[17827]&~(1<<q);break}if((l|0)!=(i|0)){if(l>>>0<h>>>0)Aa();i=l+8|0;if((c[i>>2]|0)==(g|0))v=i;else Aa()}else v=l+8|0;c[m+12>>2]=l;c[v>>2]=m}while(0);if(f>>>0<16){c[d>>2]=p|e&1|2;v=a+p+4|0;c[v>>2]=c[v>>2]|1;k=a;return k|0}else{v=a+b|0;c[d>>2]=e&1|b|2;c[v+4>>2]=f|3;b=v+f+4|0;c[b>>2]=c[b>>2]|1;Pw(v,f);k=a;return k|0}return 0}function Pw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;d=a+b|0;e=c[a+4>>2]|0;do if(!(e&1)){f=c[a>>2]|0;if(!(e&3))return;g=a+(0-f)|0;h=f+b|0;i=c[17831]|0;if(g>>>0<i>>>0)Aa();if((g|0)==(c[17832]|0)){j=d+4|0;k=c[j>>2]|0;if((k&3|0)!=3){l=g;m=h;break}c[17829]=h;c[j>>2]=k&-2;c[g+4>>2]=h|1;c[g+h>>2]=h;return}k=f>>>3;if(f>>>0<256){f=c[g+8>>2]|0;j=c[g+12>>2]|0;n=71348+(k<<1<<2)|0;if((f|0)!=(n|0)){if(f>>>0<i>>>0)Aa();if((c[f+12>>2]|0)!=(g|0))Aa()}if((j|0)==(f|0)){c[17827]=c[17827]&~(1<<k);l=g;m=h;break}if((j|0)!=(n|0)){if(j>>>0<i>>>0)Aa();n=j+8|0;if((c[n>>2]|0)==(g|0))o=n;else Aa()}else o=j+8|0;c[f+12>>2]=j;c[o>>2]=f;l=g;m=h;break}f=c[g+24>>2]|0;j=c[g+12>>2]|0;do if((j|0)==(g|0)){n=g+16|0;k=n+4|0;p=c[k>>2]|0;if(!p){q=c[n>>2]|0;if(!q){r=0;break}else{s=q;t=n}}else{s=p;t=k}while(1){k=s+20|0;p=c[k>>2]|0;if(p|0){s=p;t=k;continue}k=s+16|0;p=c[k>>2]|0;if(!p)break;else{s=p;t=k}}if(t>>>0<i>>>0)Aa();else{c[t>>2]=0;r=s;break}}else{k=c[g+8>>2]|0;if(k>>>0<i>>>0)Aa();p=k+12|0;if((c[p>>2]|0)!=(g|0))Aa();n=j+8|0;if((c[n>>2]|0)==(g|0)){c[p>>2]=j;c[n>>2]=k;r=j;break}else Aa()}while(0);if(f){j=c[g+28>>2]|0;i=71612+(j<<2)|0;if((g|0)==(c[i>>2]|0)){c[i>>2]=r;if(!r){c[17828]=c[17828]&~(1<<j);l=g;m=h;break}}else{if(f>>>0<(c[17831]|0)>>>0)Aa();j=f+16|0;if((c[j>>2]|0)==(g|0))c[j>>2]=r;else c[f+20>>2]=r;if(!r){l=g;m=h;break}}j=c[17831]|0;if(r>>>0<j>>>0)Aa();c[r+24>>2]=f;i=g+16|0;k=c[i>>2]|0;do if(k|0)if(k>>>0<j>>>0)Aa();else{c[r+16>>2]=k;c[k+24>>2]=r;break}while(0);k=c[i+4>>2]|0;if(k)if(k>>>0<(c[17831]|0)>>>0)Aa();else{c[r+20>>2]=k;c[k+24>>2]=r;l=g;m=h;break}else{l=g;m=h}}else{l=g;m=h}}else{l=a;m=b}while(0);b=c[17831]|0;if(d>>>0<b>>>0)Aa();a=d+4|0;r=c[a>>2]|0;if(!(r&2)){if((d|0)==(c[17833]|0)){s=(c[17830]|0)+m|0;c[17830]=s;c[17833]=l;c[l+4>>2]=s|1;if((l|0)!=(c[17832]|0))return;c[17832]=0;c[17829]=0;return}if((d|0)==(c[17832]|0)){s=(c[17829]|0)+m|0;c[17829]=s;c[17832]=l;c[l+4>>2]=s|1;c[l+s>>2]=s;return}s=(r&-8)+m|0;t=r>>>3;do if(r>>>0>=256){o=c[d+24>>2]|0;e=c[d+12>>2]|0;do if((e|0)==(d|0)){k=d+16|0;j=k+4|0;f=c[j>>2]|0;if(!f){n=c[k>>2]|0;if(!n){u=0;break}else{v=n;w=k}}else{v=f;w=j}while(1){j=v+20|0;f=c[j>>2]|0;if(f|0){v=f;w=j;continue}j=v+16|0;f=c[j>>2]|0;if(!f)break;else{v=f;w=j}}if(w>>>0<b>>>0)Aa();else{c[w>>2]=0;u=v;break}}else{j=c[d+8>>2]|0;if(j>>>0<b>>>0)Aa();f=j+12|0;if((c[f>>2]|0)!=(d|0))Aa();k=e+8|0;if((c[k>>2]|0)==(d|0)){c[f>>2]=e;c[k>>2]=j;u=e;break}else Aa()}while(0);if(o|0){e=c[d+28>>2]|0;h=71612+(e<<2)|0;if((d|0)==(c[h>>2]|0)){c[h>>2]=u;if(!u){c[17828]=c[17828]&~(1<<e);break}}else{if(o>>>0<(c[17831]|0)>>>0)Aa();e=o+16|0;if((c[e>>2]|0)==(d|0))c[e>>2]=u;else c[o+20>>2]=u;if(!u)break}e=c[17831]|0;if(u>>>0<e>>>0)Aa();c[u+24>>2]=o;h=d+16|0;g=c[h>>2]|0;do if(g|0)if(g>>>0<e>>>0)Aa();else{c[u+16>>2]=g;c[g+24>>2]=u;break}while(0);g=c[h+4>>2]|0;if(g|0)if(g>>>0<(c[17831]|0)>>>0)Aa();else{c[u+20>>2]=g;c[g+24>>2]=u;break}}}else{g=c[d+8>>2]|0;e=c[d+12>>2]|0;o=71348+(t<<1<<2)|0;if((g|0)!=(o|0)){if(g>>>0<b>>>0)Aa();if((c[g+12>>2]|0)!=(d|0))Aa()}if((e|0)==(g|0)){c[17827]=c[17827]&~(1<<t);break}if((e|0)!=(o|0)){if(e>>>0<b>>>0)Aa();o=e+8|0;if((c[o>>2]|0)==(d|0))x=o;else Aa()}else x=e+8|0;c[g+12>>2]=e;c[x>>2]=g}while(0);c[l+4>>2]=s|1;c[l+s>>2]=s;if((l|0)==(c[17832]|0)){c[17829]=s;return}else y=s}else{c[a>>2]=r&-2;c[l+4>>2]=m|1;c[l+m>>2]=m;y=m}m=y>>>3;if(y>>>0<256){r=71348+(m<<1<<2)|0;a=c[17827]|0;s=1<<m;if(a&s){m=r+8|0;x=c[m>>2]|0;if(x>>>0<(c[17831]|0)>>>0)Aa();else{z=x;A=m}}else{c[17827]=a|s;z=r;A=r+8|0}c[A>>2]=l;c[z+12>>2]=l;c[l+8>>2]=z;c[l+12>>2]=r;return}r=y>>>8;if(r)if(y>>>0>16777215)B=31;else{z=(r+1048320|0)>>>16&8;A=r<<z;r=(A+520192|0)>>>16&4;s=A<<r;A=(s+245760|0)>>>16&2;a=14-(r|z|A)+(s<<A>>>15)|0;B=y>>>(a+7|0)&1|a<<1}else B=0;a=71612+(B<<2)|0;c[l+28>>2]=B;c[l+20>>2]=0;c[l+16>>2]=0;A=c[17828]|0;s=1<<B;if(!(A&s)){c[17828]=A|s;c[a>>2]=l;c[l+24>>2]=a;c[l+12>>2]=l;c[l+8>>2]=l;return}s=y<<((B|0)==31?0:25-(B>>>1)|0);B=c[a>>2]|0;while(1){if((c[B+4>>2]&-8|0)==(y|0)){C=127;break}D=B+16+(s>>>31<<2)|0;a=c[D>>2]|0;if(!a){C=124;break}else{s=s<<1;B=a}}if((C|0)==124){if(D>>>0<(c[17831]|0)>>>0)Aa();c[D>>2]=l;c[l+24>>2]=B;c[l+12>>2]=l;c[l+8>>2]=l;return}else if((C|0)==127){C=B+8|0;D=c[C>>2]|0;s=c[17831]|0;if(!(D>>>0>=s>>>0&B>>>0>=s>>>0))Aa();c[D+12>>2]=l;c[C>>2]=l;c[l+8>>2]=D;c[l+12>>2]=B;c[l+24>>2]=0;return}}function Qw(a,b){a=a|0;b=b|0;var c=0;if(a>>>0<9){c=Kw(b)|0;return c|0}else{c=Rw(a,b)|0;return c|0}return 0}function Rw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;d=a>>>0<16?16:a;if(!(d+-1&d))e=d;else{a=16;while(1)if(a>>>0<d>>>0)a=a<<1;else{e=a;break}}if((-64-e|0)>>>0<=b>>>0){c[(xu()|0)>>2]=12;f=0;return f|0}a=b>>>0<11?16:b+11&-8;b=Kw(a+12+e|0)|0;if(!b){f=0;return f|0}d=b+-8|0;do if(b&e+-1){g=(b+e+-1&0-e)+-8|0;h=d;i=(g-h|0)>>>0>15?g:g+e|0;g=i-h|0;h=b+-4|0;j=c[h>>2]|0;k=(j&-8)-g|0;if(!(j&3)){c[i>>2]=(c[d>>2]|0)+g;c[i+4>>2]=k;l=i;break}else{j=i+4|0;c[j>>2]=k|c[j>>2]&1|2;m=i+k+4|0;c[m>>2]=c[m>>2]|1;c[h>>2]=g|c[h>>2]&1|2;c[j>>2]=c[j>>2]|1;Pw(d,g);l=i;break}}else l=d;while(0);d=l+4|0;b=c[d>>2]|0;if(b&3|0?(e=b&-8,e>>>0>(a+16|0)>>>0):0){i=e-a|0;e=l+a|0;c[d>>2]=a|b&1|2;c[e+4>>2]=i|3;b=e+i+4|0;c[b>>2]=c[b>>2]|1;Pw(e,i)}f=l+8|0;return f|0}function Sw(){}function Tw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=b-d>>>0;e=b-d-(c>>>0>a>>>0|0)>>>0;return (D=e,a-c>>>0|0)|0}function Uw(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b+e|0;if((e|0)>=20){d=d&255;g=b&3;h=d|d<<8|d<<16|d<<24;i=f&~3;if(g){g=b+4-g|0;while((b|0)<(g|0)){a[b>>0]=d;b=b+1|0}}while((b|0)<(i|0)){c[b>>2]=h;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return b-e|0}function Vw(a){a=a|0;return 0}function Ww(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=a+c>>>0;return (D=b+d+(e>>>0<a>>>0|0)>>>0,e|0)|0}function Xw(b){b=b|0;var c=0;c=a[n+(b&255)>>0]|0;if((c|0)<8)return c|0;c=a[n+(b>>8&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[n+(b>>16&255)>>0]|0;if((c|0)<8)return c+16|0;return (a[n+(b>>>24)>>0]|0)+24|0}function Yw(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0;g=a;h=b;i=h;j=d;k=e;l=k;if(!i){m=(f|0)!=0;if(!l){if(m){c[f>>2]=(g>>>0)%(j>>>0);c[f+4>>2]=0}n=0;o=(g>>>0)/(j>>>0)>>>0;return (D=n,o)|0}else{if(!m){n=0;o=0;return (D=n,o)|0}c[f>>2]=a|0;c[f+4>>2]=b&0;n=0;o=0;return (D=n,o)|0}}m=(l|0)==0;do if(j){if(!m){p=(V(l|0)|0)-(V(i|0)|0)|0;if(p>>>0<=31){q=p+1|0;r=31-p|0;s=p-31>>31;t=q;u=g>>>(q>>>0)&s|i<<r;v=i>>>(q>>>0)&s;w=0;x=g<<r;break}if(!f){n=0;o=0;return (D=n,o)|0}c[f>>2]=a|0;c[f+4>>2]=h|b&0;n=0;o=0;return (D=n,o)|0}r=j-1|0;if(r&j|0){s=(V(j|0)|0)+33-(V(i|0)|0)|0;q=64-s|0;p=32-s|0;y=p>>31;z=s-32|0;A=z>>31;t=s;u=p-1>>31&i>>>(z>>>0)|(i<<p|g>>>(s>>>0))&A;v=A&i>>>(s>>>0);w=g<<q&y;x=(i<<q|g>>>(z>>>0))&y|g<<p&s-33>>31;break}if(f|0){c[f>>2]=r&g;c[f+4>>2]=0}if((j|0)==1){n=h|b&0;o=a|0|0;return (D=n,o)|0}else{r=Xw(j|0)|0;n=i>>>(r>>>0)|0;o=i<<32-r|g>>>(r>>>0)|0;return (D=n,o)|0}}else{if(m){if(f|0){c[f>>2]=(i>>>0)%(j>>>0);c[f+4>>2]=0}n=0;o=(i>>>0)/(j>>>0)>>>0;return (D=n,o)|0}if(!g){if(f|0){c[f>>2]=0;c[f+4>>2]=(i>>>0)%(l>>>0)}n=0;o=(i>>>0)/(l>>>0)>>>0;return (D=n,o)|0}r=l-1|0;if(!(r&l)){if(f|0){c[f>>2]=a|0;c[f+4>>2]=r&i|b&0}n=0;o=i>>>((Xw(l|0)|0)>>>0);return (D=n,o)|0}r=(V(l|0)|0)-(V(i|0)|0)|0;if(r>>>0<=30){s=r+1|0;p=31-r|0;t=s;u=i<<p|g>>>(s>>>0);v=i>>>(s>>>0);w=0;x=g<<p;break}if(!f){n=0;o=0;return (D=n,o)|0}c[f>>2]=a|0;c[f+4>>2]=h|b&0;n=0;o=0;return (D=n,o)|0}while(0);if(!t){B=x;C=w;E=v;F=u;G=0;H=0}else{b=d|0|0;d=k|e&0;e=Ww(b|0,d|0,-1,-1)|0;k=D;h=x;x=w;w=v;v=u;u=t;t=0;do{a=h;h=x>>>31|h<<1;x=t|x<<1;g=v<<1|a>>>31|0;a=v>>>31|w<<1|0;Tw(e|0,k|0,g|0,a|0)|0;i=D;l=i>>31|((i|0)<0?-1:0)<<1;t=l&1;v=Tw(g|0,a|0,l&b|0,(((i|0)<0?-1:0)>>31|((i|0)<0?-1:0)<<1)&d|0)|0;w=D;u=u-1|0}while((u|0)!=0);B=h;C=x;E=w;F=v;G=0;H=t}t=C;C=0;if(f|0){c[f>>2]=F;c[f+4>>2]=E}n=(t|0)>>>31|(B|C)<<1|(C<<1|t>>>31)&0|G;o=(t<<1|0>>>31)&-2|H;return (D=n,o)|0}function Zw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=b>>31|((b|0)<0?-1:0)<<1;f=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;g=d>>31|((d|0)<0?-1:0)<<1;h=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;i=Tw(e^a|0,f^b|0,e|0,f|0)|0;b=D;a=g^e;e=h^f;return Tw((Yw(i,b,Tw(g^c|0,h^d|0,g|0,h|0)|0,D,0)|0)^a|0,D^e|0,a|0,e|0)|0}function _w(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return Va(b|0,d|0,e|0)|0;f=b|0;if((b&3)==(d&3)){while(b&3){if(!e)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}while((e|0)>=4){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0;e=e-4|0}}while((e|0)>0){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}return f|0}function $w(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if((c|0)<(b|0)&(b|0)<(c+d|0)){e=b;c=c+d|0;b=b+d|0;while((d|0)>0){b=b-1|0;c=c-1|0;d=d-1|0;a[b>>0]=a[c>>0]|0}b=e}else _w(b,c,d)|0;return b|0}function ax(a){a=a|0;return (a&255)<<24|(a>>8&255)<<16|(a>>16&255)<<8|a>>>24|0}function bx(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){D=b>>c;return a>>>c|(b&(1<<c)-1)<<32-c}D=(b|0)<0?-1:0;return b>>c-32|0}function cx(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){D=b>>>c;return a>>>c|(b&(1<<c)-1)<<32-c}D=0;return b>>>c-32|0}function dx(a){a=a|0;return 0}function ex(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Yw(a,b,c,d,0)|0}function fx(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=a&65535;d=b&65535;e=S(d,c)|0;f=a>>>16;a=(e>>>16)+(S(d,f)|0)|0;d=b>>>16;b=S(d,c)|0;return (D=(a>>>16)+(S(d,f)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|e&65535|0)|0}function gx(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;a=c;c=fx(e,a)|0;f=D;return (D=(S(b,a)|0)+(S(d,e)|0)+f|f&0,c|0|0)|0}function hx(a){a=a|0;var b=0,d=0;a=a+15&-16|0;b=c[i>>2]|0;d=b+a|0;if((a|0)>0&(d|0)<(b|0)|(d|0)<0){_()|0;Ka(12);return -1}c[i>>2]=d;if((d|0)>(Z()|0)?(Y()|0)==0:0){Ka(12);c[i>>2]=b;return -1}return b|0}function ix(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){D=b<<c|(a&(1<<c)-1<<32-c)>>>32-c;return a<<c}D=a<<c-32;return 0}function jx(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=l;l=l+16|0;g=f|0;Yw(a,b,d,e,g)|0;l=f;return (D=c[g+4>>2]|0,c[g>>2]|0)|0}function kx(){return 0}function lx(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+16|0;g=f|0;h=b>>31|((b|0)<0?-1:0)<<1;i=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;j=e>>31|((e|0)<0?-1:0)<<1;k=((e|0)<0?-1:0)>>31|((e|0)<0?-1:0)<<1;m=Tw(h^a|0,i^b|0,h|0,i|0)|0;b=D;Yw(m,b,Tw(j^d|0,k^e|0,j|0,k|0)|0,D,g)|0;k=Tw(c[g>>2]^h|0,c[g+4>>2]^i|0,h|0,i|0)|0;i=D;l=f;return (D=i,k)|0}function mx(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ub[a&63](b|0,c|0,d|0)|0}function nx(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;vb[a&15](b|0,c|0,d|0,e|0,f|0)}function ox(a,b){a=a|0;b=b|0;wb[a&15](b|0)}function px(a,b,c){a=a|0;b=b|0;c=c|0;xb[a&7](b|0,c|0)}function qx(a,b){a=a|0;b=b|0;return yb[a&15](b|0)|0}function rx(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;zb[a&7](b|0,c|0,d|0)}function sx(a){a=a|0;Ab[a&3]()}function tx(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Bb[a&7](b|0,c|0,d|0,e|0)|0}function ux(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Cb[a&1](b|0,c|0,d|0,e|0,f|0,g|0)}function vx(a,b,c){a=a|0;b=b|0;c=c|0;return Db[a&7](b|0,c|0)|0}function wx(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;Eb[a&1](b|0,c|0,d|0,e|0)}function xx(a,b,c){a=a|0;b=b|0;c=c|0;aa(0);return 0}function yx(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;ba(1)}function zx(a){a=a|0;ca(2)}function Ax(a,b){a=a|0;b=b|0;da(3)}function Bx(a){a=a|0;ea(4);return 0}function Cx(a,b,c){a=a|0;b=b|0;c=c|0;fa(5)}function Dx(){ga(6)}function Ex(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ha(7);return 0}function Fx(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;ia(8)}function Gx(a,b){a=a|0;b=b|0;ja(9);return 0}function Hx(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ka(10)} +function Ab(a){a=a|0;var b=0;b=l;l=l+a|0;l=l+15&-16;if((l|0)>=(m|0))$(a|0);return b|0}function Bb(){return l|0}function Cb(a){a=a|0;l=a}function Db(a,b){a=a|0;b=b|0;l=a;m=b}function Eb(a,b){a=a|0;b=b|0;if(!o){o=a;p=b}}function Fb(a){a=a|0;D=a}function Gb(){return D|0}function Hb(a){a=a|0;var b=0;b=Pb(32,19010,38)|0;jc(a,b);return b|0}function Ib(a){a=a|0;var b=0;b=Pb(32,19010,56)|0;hc(a,b);return b|0}function Jb(a){a=a|0;var b=0;b=Pb(32,19010,73)|0;lc(a,b);return b|0}function Kb(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;f=d+8|0;e=Pb(f,19010,87)|0;cr(e+8|0,c|0,d|0)|0;c=Xp(b)|0;d=e+4|0;a[d>>0]=c;a[d+1>>0]=c>>8;a[d+2>>0]=c>>16;a[d+3>>0]=c>>24;d=Xp(f)|0;a[e>>0]=d;a[e+1>>0]=d>>8;a[e+2>>0]=d>>16;a[e+3>>0]=d>>24;return e|0}function Lb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=g;if((no(e,f)|0)!=1){f=0;l=g;return f|0}e=f;c[e>>2]=a;c[e+4>>2]=b;c[f+8>>2]=d;e=Pb(24,19010,117)|0;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];c[e+8>>2]=c[f+8>>2];c[e+12>>2]=c[f+12>>2];c[e+16>>2]=c[f+16>>2];c[e+20>>2]=c[f+20>>2];f=e;l=g;return f|0}function Mb(a){a=a|0;D=c[a+4>>2]|0;return c[a>>2]|0}function Nb(a){a=a|0;return c[a+8>>2]|0}function Ob(a){a=a|0;return a+12|0}function Pb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;q=l;l=l+64|0;if((l|0)>=(m|0))$(64);p=q+24|0;o=q+8|0;n=q;e=q+56|0;f=q+52|0;g=q+48|0;h=q+44|0;i=q+40|0;j=q+36|0;k=q+32|0;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;if((c[e>>2]|0)>>>0>41943040){c[i>>2]=74;if((c[178]|0)==-1)c[178]=Wb(1,0,19017,19037,c[i>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[178]|0))Vb();i=c[g>>2]|0;c[n>>2]=c[f>>2];c[n+4>>2]=i;Zb(1,61295,n);Vb()}c[h>>2]=Qb(c[e>>2]|0,c[f>>2]|0,c[g>>2]|0)|0;if(c[h>>2]|0){l=q;return c[h>>2]|0}c[j>>2]=81;if((c[179]|0)==-1)c[179]=Wb(1,20980,19017,19037,c[j>>2]|0)|0;if((Xb()|0)<=0){if(c[179]|0){q=dp(c[(zo()|0)>>2]|0)|0;c[o>>2]=19053;c[o+4>>2]=19017;c[o+8>>2]=81;c[o+12>>2]=q;cc(1,20980,20531,o)}}else Yb(-1,0);c[k>>2]=82;if((c[180]|0)==-1)c[180]=Wb(1,0,19017,19037,c[k>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[180]|0))Vb();c[p>>2]=19017;c[p+4>>2]=82;Zb(1,61295,p);Vb();return 0}function Qb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=h+16|0;f=h+12|0;g=h;c[f>>2]=a;c[h+8>>2]=b;c[h+4>>2]=d;c[g>>2]=Oq(c[f>>2]|0)|0;if(!(c[g>>2]|0)){c[e>>2]=0;g=c[e>>2]|0;l=h;return g|0}else{Yq(c[g>>2]|0,0,c[f>>2]|0)|0;c[e>>2]=c[g>>2];g=c[e>>2]|0;l=h;return g|0}return 0}function Rb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=l;l=l+32|0;if((l|0)>=(m|0))$(32);i=j;e=j+20|0;f=j+16|0;g=j+12|0;h=j+8|0;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;if(c[e>>2]|0){Pq(c[e>>2]|0);l=j;return}c[h>>2]=311;if((c[181]|0)==-1)c[181]=Wb(1,0,19017,19060,c[h>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[181]|0))Vb();j=c[g>>2]|0;c[i>>2]=c[f>>2];c[i+4>>2]=j;Zb(1,61295,i);Vb()}function Sb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;i=l;l=l+48|0;if((l|0)>=(m|0))$(48);h=i;o=i+44|0;j=i+40|0;n=i+36|0;f=i+32|0;k=i+16|0;g=i+8|0;c[o>>2]=a;c[j>>2]=b;c[n>>2]=d;c[k>>2]=e;c[f>>2]=mp(c[o>>2]|0,c[j>>2]|0,c[n>>2]|0,k)|0;if((c[f>>2]|0)>>>0<(c[j>>2]|0)>>>0){l=i;return c[f>>2]|0}c[g>>2]=506;if((c[182]|0)==-1)c[182]=Wb(1,0,19017,19074,c[g>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[182]|0))Vb();c[h>>2]=19017;c[h+4>>2]=506;Zb(1,61295,h);Vb();return 0}function Tb(){c[17562]=c[3935];return}function Ub(){return}function Vb(){za()}function Wb(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+48|0;if((l|0)>=(m|0))$(48);r=s+32|0;k=s+28|0;n=s+24|0;o=s+20|0;p=s+16|0;g=s+12|0;h=s+8|0;i=s+4|0;j=s;c[k>>2]=a;c[n>>2]=b;c[o>>2]=d;c[p>>2]=e;c[g>>2]=f;if(!(c[n>>2]|0))c[n>>2]=c[17563];if((c[17564]|0)>=0&0==(c[17565]|0)){c[r>>2]=(c[k>>2]|0)<=(c[17564]|0)&1;r=c[r>>2]|0;l=s;return r|0}c[j>>2]=(c[17564]|0)>=0&1;c[i>>2]=0;while(1){if((c[i>>2]|0)>=(c[17566]|0))break;c[h>>2]=(c[17567]|0)+((c[i>>2]|0)*112|0);if(!(c[j>>2]|0?!(c[(c[h>>2]|0)+108>>2]|0):0))q=9;if((((((q|0)==9?(q=0,(c[g>>2]|0)>=(c[(c[h>>2]|0)+96>>2]|0)):0)?(c[g>>2]|0)<=(c[(c[h>>2]|0)+100>>2]|0):0)?0==(Kq(c[h>>2]|0,c[n>>2]|0,0,0,0)|0):0)?0==(Kq((c[h>>2]|0)+32|0,c[o>>2]|0,0,0,0)|0):0)?0==(Kq((c[h>>2]|0)+64|0,c[p>>2]|0,0,0,0)|0):0){q=14;break}c[i>>2]=(c[i>>2]|0)+1}if((q|0)==14){c[r>>2]=(c[k>>2]|0)<=(c[(c[h>>2]|0)+104>>2]|0)&1;r=c[r>>2]|0;l=s;return r|0}a=c[k>>2]|0;if((c[17564]|0)>=0){c[r>>2]=(a|0)<=(c[17564]|0)&1;r=c[r>>2]|0;l=s;return r|0}else{c[r>>2]=(a|0)<=4&1;r=c[r>>2]|0;l=s;return r|0}return 0}function Xb(){return c[17572]|0}function Yb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=l;l=l+32|0;if((l|0)>=(m|0))$(32);h=i;d=i+20|0;e=i+16|0;f=i+12|0;g=i+8|0;c[d>>2]=a;c[e>>2]=b;if(c[d>>2]|0){c[17572]=(c[17572]|0)+(c[d>>2]|0);l=i;return}c[f>>2]=0==(c[17572]|0)&1;c[17572]=0;if((c[e>>2]|0)==0|(c[f>>2]|0)!=0){l=i;return}c[g>>2]=906;if((c[184]|0)==-1)c[184]=Wb(1,0,19090,19268,c[g>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);l=i;return}if(!(c[184]|0)){l=i;return}c[h>>2]=19090;c[h+4>>2]=906;Zb(1,61295,h);l=i;return}function Zb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+32|0;if((l|0)>=(m|0))$(32);h=e+20|0;g=e+16|0;f=e;c[h>>2]=a;c[g>>2]=b;c[f>>2]=d;_b(c[h>>2]|0,c[17568]|0,c[g>>2]|0,f);l=e;return}function _b(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;A=l;l=l+240|0;if((l|0)>=(m|0))$(240);y=A+40|0;z=A+32|0;h=A+24|0;s=A+108|0;t=A+104|0;u=A+100|0;v=A+96|0;w=A+176|0;x=A+112|0;j=A+92|0;k=A+88|0;B=A+72|0;g=A+68|0;n=A+64|0;i=A+16|0;o=A+56|0;p=A+8|0;q=A+48|0;r=A;c[s>>2]=b;c[t>>2]=d;c[u>>2]=e;c[v>>2]=f;c[B>>2]=c[c[v>>2]>>2];c[k>>2]=(mp(0,0,c[u>>2]|0,B)|0)+1;if(!(c[k>>2]|0)){c[g>>2]=952;if((c[183]|0)==-1)c[183]=Wb(1,0,19090,19113,c[g>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[183]|0))Vb();c[h>>2]=19090;c[h+4>>2]=952;Zb(1,61295,h);Vb()}b=w;d=b+64|0;do{a[b>>0]=0;b=b+1|0}while((b|0)<(d|0));b=c[k>>2]|0;c[n>>2]=Va()|0;g=l;l=l+((1*b|0)+15&-16)|0;if((l|0)>=(m|0))$((1*b|0)+15&-16|0);gb(o|0,0)|0;h=qd()|0;B=i;c[B>>2]=h;c[B+4>>2]=D;B=i;h=c[B+4>>2]|0;B=(h|0)>0|(h|0)==0&(c[B>>2]|0)>>>0>0;h=i;h=br(c[h>>2]|0,c[h+4>>2]|0,1e3,0)|0;f=c[o>>2]|0;h=_q(f|0,((f|0)<0)<<31>>31|0,h|0,D|0)|0;c[o>>2]=h;do if(B){i=or(c[i>>2]|0,c[i+4>>2]|0,1e3,0)|0;i=kr(i|0,D|0,1e3,0)|0;B=o+4|0;h=c[B>>2]|0;i=_q(h|0,((h|0)<0)<<31>>31|0,i|0,D|0)|0;c[B>>2]=i;B=c[o+4>>2]|0;i=((B|0)<0)<<31>>31;if((i|0)>0|(i|0)==0&B>>>0>1e6){B=o+4|0;i=c[B>>2]|0;i=Xq(i|0,((i|0)<0)<<31>>31|0,1e6,0)|0;c[B>>2]=i;c[o>>2]=(c[o>>2]|0)+1}}else{h=c[o+4>>2]|0;e=((h|0)<0)<<31>>31;B=i;B=or(c[B>>2]|0,c[B+4>>2]|0,1e3,0)|0;B=Xq(0,0,B|0,D|0)|0;B=kr(B|0,D|0,1e3,0)|0;f=D;b=i;b=or(c[b>>2]|0,c[b+4>>2]|0,1e3,0)|0;b=kr(b|0,D|0,1e3,0)|0;d=D;if((e|0)>(f|0)|(e|0)==(f|0)&h>>>0>B>>>0){B=o+4|0;i=c[B>>2]|0;i=_q(i|0,((i|0)<0)<<31>>31|0,b|0,d|0)|0;c[B>>2]=i;break}else{i=_q(1e6,0,b|0,d|0)|0;B=o+4|0;h=c[B>>2]|0;i=_q(h|0,((h|0)<0)<<31>>31|0,i|0,D|0)|0;c[B>>2]=i;c[o>>2]=(c[o>>2]|0)+-1;break}}while(0);c[j>>2]=kb(o|0)|0;if(!(c[j>>2]|0))Mp(w,19119)|0;else{Pa(x|0,64,19135,c[j>>2]|0)|0;c[z>>2]=c[o+4>>2];lp(w,64,x,z)|0}mp(g,c[k>>2]|0,c[u>>2]|0,c[v>>2]|0)|0;B=70224;if(0!=(c[s>>2]&64|0)&(0!=(c[B>>2]|0)?1:0!=(c[B+4>>2]|0))?0==(Jo(g,71362,256)|0):0){c[17569]=(c[17569]|0)+1;c[y>>2]=c[17556];c[y+4>>2]=c[17557];z=ud(y)|0;B=p;c[B>>2]=z;c[B+4>>2]=D;B=p;z=c[B+4>>2]|0;if(z>>>0>10|(z|0)==10&(c[B>>2]|0)>>>0>250327040|(c[17569]|0)>>>0>1e3)$b(w);c[q>>2]=1;B=c[n>>2]|0;Ca(B|0);l=A;return}$b(w);Vp(71362,g,256)|0;c[17569]=0;c[17570]=c[s>>2];z=sd()|0;B=r;c[B>>2]=z;c[B+4>>2]=D;c[17556]=c[r>>2];c[17557]=c[r+4>>2];Vp(71618,c[t>>2]|0,32)|0;ac(c[s>>2]|0,c[t>>2]|0,w,g);c[q>>2]=0;B=c[n>>2]|0;Ca(B|0);l=A;return}function $b(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;o=l;l=l+640|0;if((l|0)>=(m|0))$(640);d=o+32|0;n=o+16|0;e=o+52|0;f=o+56|0;g=o+48|0;h=o+44|0;i=o+40|0;j=o+8|0;k=o;c[e>>2]=b;b=70224;if((0==(c[b>>2]|0)?0==(c[b+4>>2]|0):0)|0==(c[17569]|0)){l=o;return}c[g>>2]=0;c[h>>2]=No(71362,0,256)|0;if(c[h>>2]|0){if((c[h>>2]|0)!=71362)c[h>>2]=(c[h>>2]|0)+-1}else c[h>>2]=71617;if((a[c[h>>2]>>0]|0)==10){c[g>>2]=1;a[c[h>>2]>>0]=0};c[d>>2]=c[17556];c[d+4>>2]=c[17557];p=ud(d)|0;b=j;c[b>>2]=p;c[b+4>>2]=D;c[d>>2]=c[j>>2];c[d+4>>2]=c[j+4>>2];c[i>>2]=ld(d,1)|0;b=c[17569]|0;j=c[i>>2]|0;c[n>>2]=256;c[n+4>>2]=71362;c[n+8>>2]=b;c[n+12>>2]=j;lp(f,576,19219,n)|0;if((c[g>>2]|0)==1)a[c[h>>2]>>0]=10;ac(c[17570]|0,71618,c[e>>2]|0,f);n=sd()|0;p=k;c[p>>2]=n;c[p+4>>2]=D;c[17556]=c[k>>2];c[17557]=c[k+4>>2];c[17569]=0;l=o;return}function ac(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;o=l;l=l+48|0;if((l|0)>=(m|0))$(48);n=o+8|0;k=o;f=o+40|0;g=o+36|0;h=o+32|0;i=o+28|0;j=o+24|0;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=e;if(0!=(c[17562]|0)&0==(c[17571]|0)){a=c[17562]|0;if((c[f>>2]|0)==4){c[k>>2]=c[i>>2];Rp(a,19156,k)|0}else{b=c[h>>2]|0;d=c[g>>2]|0;e=bc(c[f>>2]|0)|0;k=c[i>>2]|0;c[n>>2]=b;c[n+4>>2]=d;c[n+8>>2]=e;c[n+12>>2]=k;Rp(a,19161,n)|0}$p(c[17562]|0)|0}c[j>>2]=c[17571];while(1){if(!(c[j>>2]|0))break;qb[c[(c[j>>2]|0)+4>>2]&15](c[(c[j>>2]|0)+8>>2]|0,c[f>>2]|0,c[g>>2]|0,c[h>>2]|0,c[i>>2]|0);c[j>>2]=c[c[j>>2]>>2]}l=o;return}function bc(a){a=a|0;var b=0,d=0,e=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=e+4|0;d=e;c[d>>2]=a;do if((c[d>>2]&1|0)<=0){if((c[d>>2]&2|0)>0){c[b>>2]=19179;break}if((c[d>>2]&4|0)>0){c[b>>2]=19187;break}if((c[d>>2]&8|0)>0){c[b>>2]=19195;break}if((c[d>>2]&16|0)>0){c[b>>2]=19200;break}if(!(c[d>>2]&-65)){c[b>>2]=19206;break}else{c[b>>2]=19211;break}}else c[b>>2]=19173;while(0);l=e;return c[b>>2]|0}function cc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0;n=l;l=l+176|0;if((l|0)>=(m|0))$(176);k=n;f=n+32|0;g=n+28|0;h=n+24|0;i=n+8|0;j=n+40|0;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;if(!(c[g>>2]|0))c[g>>2]=c[17563];c[i>>2]=e;g=c[g>>2]|0;e=qq()|0;c[k>>2]=g;c[k+4>>2]=e;Sb(j,128,19107,k)|0;_b(c[f>>2]|0,j,c[h>>2]|0,i);l=n;return}function dc(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=l;l=l+64|0;if((l|0)>=(m|0))$(64);u=v+8|0;t=v;o=v+56|0;p=v+52|0;q=v+48|0;r=v+44|0;s=v+40|0;g=v+36|0;h=v+32|0;i=v+28|0;j=v+24|0;k=v+20|0;n=v+16|0;c[p>>2]=a;c[q>>2]=b;c[r>>2]=d;c[s>>2]=e;c[g>>2]=f;b=c[q>>2]|0;c[i>>2]=Va()|0;a=b;d=l;l=l+((1*a|0)+15&-16)|0;if((l|0)>=(m|0))$((1*a|0)+15&-16|0);if(1!=(ec(h,c[r>>2]|0,c[s>>2]|0)|0)){c[o>>2]=-1;c[j>>2]=1;u=c[i>>2]|0;Ca(u|0);u=c[o>>2]|0;l=v;return u|0}if(ee(c[h>>2]|0,d,c[q>>2]|0,c[p>>2]|0,c[q>>2]|0)|0){c[k>>2]=136;if((c[185]|0)==-1)c[185]=Wb(1,0,19284,19303,c[k>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[185]|0))Vb();c[t>>2]=19284;c[t+4>>2]=136;Zb(1,61295,t);Vb()}be(c[h>>2]|0);if(1!=(fc(h,c[r>>2]|0,c[s>>2]|0)|0)){c[o>>2]=-1;c[j>>2]=1;u=c[i>>2]|0;Ca(u|0);u=c[o>>2]|0;l=v;return u|0}if(!(ee(c[h>>2]|0,c[g>>2]|0,c[q>>2]|0,d,c[q>>2]|0)|0)){be(c[h>>2]|0);Yq(d|0,0,b|0)|0;c[o>>2]=c[q>>2];c[j>>2]=1;u=c[i>>2]|0;Ca(u|0);u=c[o>>2]|0;l=v;return u|0}c[n>>2]=140;if((c[186]|0)==-1)c[186]=Wb(1,0,19284,19303,c[n>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[186]|0))Vb();c[u>>2]=19284;c[u+4>>2]=140;Zb(1,61295,u);Vb();return 0}function ec(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;q=l;l=l+64|0;if((l|0)>=(m|0))$(64);p=q+16|0;o=q+8|0;n=q;e=q+48|0;f=q+44|0;g=q+40|0;h=q+36|0;i=q+32|0;j=q+28|0;k=q+24|0;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;if(ae(c[e>>2]|0,9,2,0)|0){c[i>>2]=68;if((c[190]|0)==-1)c[190]=Wb(1,0,19284,19356,c[i>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[190]|0))Vb();c[n>>2]=19284;c[n+4>>2]=68;Zb(1,61295,n);Vb()}c[h>>2]=ce(c[c[e>>2]>>2]|0,c[f>>2]|0,32)|0;if(0!=(c[h>>2]|0)?((c[h>>2]&255)<<24>>24|0)!=43:0){c[j>>2]=72;if((c[191]|0)==-1)c[191]=Wb(1,0,19284,19356,c[j>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[191]|0))Vb();c[o>>2]=19284;c[o+4>>2]=72;Zb(1,61295,o);Vb()}c[h>>2]=de(c[c[e>>2]>>2]|0,c[g>>2]|0,16)|0;if(!(c[h>>2]|0)){l=q;return 1}if(((c[h>>2]&255)<<24>>24|0)==43){l=q;return 1}c[k>>2]=76;if((c[192]|0)==-1)c[192]=Wb(1,0,19284,19356,c[k>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[192]|0))Vb();c[p>>2]=19284;c[p+4>>2]=76;Zb(1,61295,p);Vb();return 0}function fc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;q=l;l=l+64|0;if((l|0)>=(m|0))$(64);p=q+16|0;o=q+8|0;n=q;e=q+48|0;f=q+44|0;g=q+40|0;h=q+36|0;i=q+32|0;j=q+28|0;k=q+24|0;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;if(ae(c[e>>2]|0,10,2,0)|0){c[i>>2]=98;if((c[187]|0)==-1)c[187]=Wb(1,0,19284,19335,c[i>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[187]|0))Vb();c[n>>2]=19284;c[n+4>>2]=98;Zb(1,61295,n);Vb()}c[h>>2]=ce(c[c[e>>2]>>2]|0,(c[f>>2]|0)+32|0,32)|0;if(0!=(c[h>>2]|0)?((c[h>>2]&255)<<24>>24|0)!=43:0){c[j>>2]=102;if((c[188]|0)==-1)c[188]=Wb(1,0,19284,19335,c[j>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[188]|0))Vb();c[o>>2]=19284;c[o+4>>2]=102;Zb(1,61295,o);Vb()}c[h>>2]=de(c[c[e>>2]>>2]|0,(c[g>>2]|0)+16|0,16)|0;if(!(c[h>>2]|0)){l=q;return 1}if(((c[h>>2]&255)<<24>>24|0)==43){l=q;return 1}c[k>>2]=106;if((c[189]|0)==-1)c[189]=Wb(1,0,19284,19335,c[k>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[189]|0))Vb();c[p>>2]=19284;c[p+4>>2]=106;Zb(1,61295,p);Vb();return 0}function gc(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=l;l=l+64|0;if((l|0)>=(m|0))$(64);u=v+8|0;t=v;o=v+56|0;p=v+52|0;q=v+48|0;r=v+44|0;s=v+40|0;g=v+36|0;h=v+32|0;i=v+28|0;j=v+24|0;k=v+20|0;n=v+16|0;c[p>>2]=a;c[q>>2]=b;c[r>>2]=d;c[s>>2]=e;c[g>>2]=f;b=c[q>>2]|0;c[i>>2]=Va()|0;a=b;d=l;l=l+((1*a|0)+15&-16)|0;if((l|0)>=(m|0))$((1*a|0)+15&-16|0);if(1!=(fc(h,c[r>>2]|0,c[s>>2]|0)|0)){c[o>>2]=-1;c[j>>2]=1;u=c[i>>2]|0;Ca(u|0);u=c[o>>2]|0;l=v;return u|0}if(fe(c[h>>2]|0,d,c[q>>2]|0,c[p>>2]|0,c[q>>2]|0)|0){c[k>>2]=172;if((c[193]|0)==-1)c[193]=Wb(1,0,19284,19373,c[k>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[193]|0))Vb();c[t>>2]=19284;c[t+4>>2]=172;Zb(1,61295,t);Vb()}be(c[h>>2]|0);if(1!=(ec(h,c[r>>2]|0,c[s>>2]|0)|0)){c[o>>2]=-1;c[j>>2]=1;u=c[i>>2]|0;Ca(u|0);u=c[o>>2]|0;l=v;return u|0}if(!(fe(c[h>>2]|0,c[g>>2]|0,c[q>>2]|0,d,c[q>>2]|0)|0)){be(c[h>>2]|0);Yq(d|0,0,b|0)|0;c[o>>2]=c[q>>2];c[j>>2]=1;u=c[i>>2]|0;Ca(u|0);u=c[o>>2]|0;l=v;return u|0}c[n>>2]=176;if((c[194]|0)==-1)c[194]=Wb(1,0,19284,19373,c[n>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[194]|0))Vb();c[u>>2]=19284;c[u+4>>2]=176;Zb(1,61295,u);Vb();return 0}function hc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;p=l;l=l+64|0;if((l|0)>=(m|0))$(64);o=p+16|0;n=p+8|0;k=p;q=p+52|0;d=p+48|0;e=p+44|0;f=p+40|0;g=p+36|0;h=p+32|0;i=p+28|0;j=p+24|0;c[q>>2]=a;c[d>>2]=b;c[e>>2]=ic(c[q>>2]|0)|0;if(!(c[e>>2]|0)){c[h>>2]=231;if((c[195]|0)==-1)c[195]=Wb(1,0,19405,19418,c[h>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[195]|0))Vb();c[k>>2]=19405;c[k+4>>2]=231;Zb(1,61295,k);Vb()}if(Sd(f,c[e>>2]|0,0)|0){c[i>>2]=232;if((c[196]|0)==-1)c[196]=Wb(1,0,19405,19418,c[i>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[196]|0))Vb();c[n>>2]=19405;c[n+4>>2]=232;Zb(1,61295,n);Vb()}Cd(c[e>>2]|0);c[g>>2]=Td(19453,c[f>>2]|0,0)|0;if(c[g>>2]|0){Jc(c[d>>2]|0,32,c[g>>2]|0);Id(c[g>>2]|0);ve(c[f>>2]|0);l=p;return}c[j>>2]=235;if((c[197]|0)==-1)c[197]=Wb(1,0,19405,19418,c[j>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[197]|0))Vb();c[o>>2]=19405;c[o+4>>2]=235;Zb(1,61295,o);Vb()}function ic(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=l;l=l+64|0;if((l|0)>=(m|0))$(64);h=i+24|0;g=i+8|0;j=i;k=i+48|0;b=i+44|0;d=i+40|0;e=i+36|0;f=i+32|0;c[k>>2]=a;a=c[k>>2]|0;c[j>>2]=32;c[j+4>>2]=a;c[d>>2]=Bd(b,0,19461,j)|0;if(!(c[d>>2]|0)){l=i;return c[b>>2]|0}c[e>>2]=136;if((c[198]|0)==-1)c[198]=Wb(1,20980,19405,19503,c[e>>2]|0)|0;if((Xb()|0)<=0){if(c[198]|0){k=xd(c[d>>2]|0)|0;c[g>>2]=19528;c[g+4>>2]=19405;c[g+8>>2]=136;c[g+12>>2]=k;cc(1,20980,20531,g)}}else Yb(-1,0);c[f>>2]=137;if((c[199]|0)==-1)c[199]=Wb(1,0,19405,19503,c[f>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[199]|0))Vb();c[h>>2]=19405;c[h+4>>2]=137;Zb(1,61295,h);Vb();return 0}function jc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;p=l;l=l+64|0;if((l|0)>=(m|0))$(64);o=p+16|0;n=p+8|0;k=p;q=p+52|0;d=p+48|0;e=p+44|0;f=p+40|0;g=p+36|0;h=p+32|0;i=p+28|0;j=p+24|0;c[q>>2]=a;c[d>>2]=b;c[e>>2]=kc(c[q>>2]|0)|0;if(!(c[e>>2]|0)){c[h>>2]=257;if((c[200]|0)==-1)c[200]=Wb(1,0,19405,19544,c[h>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[200]|0))Vb();c[k>>2]=19405;c[k+4>>2]=257;Zb(1,61295,k);Vb()}if(Sd(f,c[e>>2]|0,0)|0){c[i>>2]=258;if((c[201]|0)==-1)c[201]=Wb(1,0,19405,19544,c[i>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[201]|0))Vb();c[n>>2]=19405;c[n+4>>2]=258;Zb(1,61295,n);Vb()}Cd(c[e>>2]|0);c[g>>2]=Td(19453,c[f>>2]|0,0)|0;if(c[g>>2]|0){Jc(c[d>>2]|0,32,c[g>>2]|0);Id(c[g>>2]|0);ve(c[f>>2]|0);l=p;return}c[j>>2]=261;if((c[202]|0)==-1)c[202]=Wb(1,0,19405,19544,c[j>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[202]|0))Vb();c[o>>2]=19405;c[o+4>>2]=261;Zb(1,61295,o);Vb()}function kc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=l;l=l+64|0;if((l|0)>=(m|0))$(64);h=i+24|0;g=i+8|0;j=i;k=i+48|0;b=i+44|0;d=i+40|0;e=i+36|0;f=i+32|0;c[k>>2]=a;a=c[k>>2]|0;c[j>>2]=32;c[j+4>>2]=a;c[d>>2]=Bd(b,0,19579,j)|0;if(!(c[d>>2]|0)){l=i;return c[b>>2]|0}c[e>>2]=169;if((c[203]|0)==-1)c[203]=Wb(1,20980,19405,19634,c[e>>2]|0)|0;if((Xb()|0)<=0){if(c[203]|0){k=xd(c[d>>2]|0)|0;c[g>>2]=19528;c[g+4>>2]=19405;c[g+8>>2]=169;c[g+12>>2]=k;cc(1,20980,20531,g)}}else Yb(-1,0);c[f>>2]=170;if((c[204]|0)==-1)c[204]=Wb(1,0,19405,19634,c[f>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[204]|0))Vb();c[h>>2]=19405;c[h+4>>2]=170;Zb(1,61295,h);Vb();return 0}function lc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;p=l;l=l+64|0;if((l|0)>=(m|0))$(64);o=p+16|0;n=p+8|0;k=p;q=p+52|0;d=p+48|0;e=p+44|0;f=p+40|0;g=p+36|0;h=p+32|0;i=p+28|0;j=p+24|0;c[q>>2]=a;c[d>>2]=b;c[e>>2]=mc(c[q>>2]|0)|0;if(!(c[e>>2]|0)){c[h>>2]=283;if((c[205]|0)==-1)c[205]=Wb(1,0,19405,19659,c[h>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[205]|0))Vb();c[k>>2]=19405;c[k+4>>2]=283;Zb(1,61295,k);Vb()}if(Sd(f,c[e>>2]|0,0)|0){c[i>>2]=284;if((c[206]|0)==-1)c[206]=Wb(1,0,19405,19659,c[i>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[206]|0))Vb();c[n>>2]=19405;c[n+4>>2]=284;Zb(1,61295,n);Vb()}Cd(c[e>>2]|0);c[g>>2]=Td(19453,c[f>>2]|0,0)|0;if(c[g>>2]|0){Jc(c[d>>2]|0,32,c[g>>2]|0);Id(c[g>>2]|0);ve(c[f>>2]|0);l=p;return}c[j>>2]=287;if((c[207]|0)==-1)c[207]=Wb(1,0,19405,19659,c[j>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[207]|0))Vb();c[o>>2]=19405;c[o+4>>2]=287;Zb(1,61295,o);Vb()}function mc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=l;l=l+64|0;if((l|0)>=(m|0))$(64);h=i+24|0;g=i+8|0;j=i;k=i+48|0;b=i+44|0;d=i+40|0;e=i+36|0;f=i+32|0;c[k>>2]=a;a=c[k>>2]|0;c[j>>2]=32;c[j+4>>2]=a;c[d>>2]=Bd(b,0,19461,j)|0;if(!(c[d>>2]|0)){l=i;return c[b>>2]|0}c[e>>2]=202;if((c[208]|0)==-1)c[208]=Wb(1,20980,19405,19694,c[e>>2]|0)|0;if((Xb()|0)<=0){if(c[208]|0){k=xd(c[d>>2]|0)|0;c[g>>2]=19528;c[g+4>>2]=19405;c[g+8>>2]=202;c[g+12>>2]=k;cc(1,20980,20531,g)}}else Yb(-1,0);c[f>>2]=203;if((c[209]|0)==-1)c[209]=Wb(1,0,19405,19694,c[f>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[209]|0))Vb();c[h>>2]=19405;c[h+4>>2]=203;Zb(1,61295,h);Vb();return 0}function nc(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;p=l;l=l+96|0;if((l|0)>=(m|0))$(96);n=p+40|0;o=p+24|0;k=p+8|0;a=p+88|0;b=p+84|0;d=p+80|0;e=p+76|0;f=p+72|0;g=p+68|0;h=p+64|0;i=p+60|0;j=p+56|0;q=Bd(e,0,19719,p)|0;c[g>>2]=q;if(q){c[h>>2]=505;if((c[210]|0)==-1)c[210]=Wb(1,20980,19405,19774,c[h>>2]|0)|0;if((Xb()|0)<=0){if(c[210]|0){q=xd(c[g>>2]|0)|0;c[k>>2]=19528;c[k+4>>2]=19405;c[k+8>>2]=505;c[k+12>>2]=q;cc(1,20980,20531,k)}}else Yb(-1,0);c[a>>2]=0;q=c[a>>2]|0;l=p;return q|0}q=je(d,c[e>>2]|0)|0;c[g>>2]=q;if(q){c[i>>2]=510;if((c[211]|0)==-1)c[211]=Wb(1,20980,19405,19774,c[i>>2]|0)|0;if((Xb()|0)<=0){if(c[211]|0){q=xd(c[g>>2]|0)|0;c[o>>2]=19805;c[o+4>>2]=19405;c[o+8>>2]=510;c[o+12>>2]=q;cc(1,20980,20531,o)}}else Yb(-1,0);Cd(c[e>>2]|0);c[a>>2]=0;q=c[a>>2]|0;l=p;return q|0}Cd(c[e>>2]|0);q=oc(f,c[d>>2]|0,37667,35384)|0;c[g>>2]=q;if(!q){Cd(c[d>>2]|0);c[b>>2]=Pb(32,19405,530)|0;Jc(c[b>>2]|0,32,c[f>>2]|0);Id(c[f>>2]|0);c[a>>2]=c[b>>2];q=c[a>>2]|0;l=p;return q|0}c[j>>2]=525;if((c[212]|0)==-1)c[212]=Wb(1,20980,19405,19774,c[j>>2]|0)|0;if((Xb()|0)<=0){if(c[212]|0){q=xd(c[g>>2]|0)|0;c[n>>2]=19820;c[n+4>>2]=19405;c[n+8>>2]=525;c[n+12>>2]=q;cc(1,20980,20531,n)}}else Yb(-1,0);Cd(c[d>>2]|0);c[a>>2]=0;q=c[a>>2]|0;l=p;return q|0}function oc(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;q=l;l=l+48|0;if((l|0)>=(m|0))$(48);n=q+36|0;o=q+32|0;s=q+28|0;r=q+24|0;g=q+20|0;p=q+16|0;h=q+12|0;i=q+8|0;j=q+4|0;k=q;c[o>>2]=b;c[s>>2]=d;c[r>>2]=e;c[g>>2]=f;c[p>>2]=Ed(c[s>>2]|0,c[r>>2]|0,0)|0;if(!(c[p>>2]|0)){c[n>>2]=1;s=c[n>>2]|0;l=q;return s|0}c[h>>2]=Fd(c[p>>2]|0)|0;Cd(c[p>>2]|0);c[p>>2]=c[h>>2];if(!(c[p>>2]|0)){c[n>>2]=2;s=c[n>>2]|0;l=q;return s|0}c[k>>2]=0;c[i>>2]=c[g>>2];while(1){d=c[p>>2]|0;if(!(a[c[i>>2]>>0]|0)){b=18;break}c[h>>2]=Ed(d,c[i>>2]|0,1)|0;if(!(c[h>>2]|0)){b=8;break}s=Gd(c[h>>2]|0,1,5)|0;c[(c[o>>2]|0)+(c[k>>2]<<2)>>2]=s;Cd(c[h>>2]|0);if(!(c[(c[o>>2]|0)+(c[k>>2]<<2)>>2]|0)){b=13;break}c[i>>2]=(c[i>>2]|0)+1;c[k>>2]=(c[k>>2]|0)+1}if((b|0)==8){c[j>>2]=0;while(1){if((c[j>>2]|0)>>>0>=(c[k>>2]|0)>>>0)break;ye(c[(c[o>>2]|0)+(c[j>>2]<<2)>>2]|0);c[(c[o>>2]|0)+(c[j>>2]<<2)>>2]=0;c[j>>2]=(c[j>>2]|0)+1}Cd(c[p>>2]|0);c[n>>2]=3;s=c[n>>2]|0;l=q;return s|0}else if((b|0)==13){c[j>>2]=0;while(1){if((c[j>>2]|0)>>>0>=(c[k>>2]|0)>>>0)break;ye(c[(c[o>>2]|0)+(c[j>>2]<<2)>>2]|0);c[(c[o>>2]|0)+(c[j>>2]<<2)>>2]=0;c[j>>2]=(c[j>>2]|0)+1}Cd(c[p>>2]|0);c[n>>2]=4;s=c[n>>2]|0;l=q;return s|0}else if((b|0)==18){Cd(d);c[n>>2]=0;s=c[n>>2]|0;l=q;return s|0}return 0}function pc(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;p=l;l=l+96|0;if((l|0)>=(m|0))$(96);n=p+40|0;o=p+24|0;k=p+8|0;a=p+88|0;b=p+84|0;d=p+80|0;e=p+76|0;f=p+72|0;g=p+68|0;h=p+64|0;i=p+60|0;j=p+56|0;q=Bd(e,0,19834,p)|0;c[g>>2]=q;if(q){c[h>>2]=555;if((c[213]|0)==-1)c[213]=Wb(1,20980,19405,19872,c[h>>2]|0)|0;if((Xb()|0)<=0){if(c[213]|0){q=xd(c[g>>2]|0)|0;c[k>>2]=19528;c[k+4>>2]=19405;c[k+8>>2]=555;c[k+12>>2]=q;cc(1,20980,20531,k)}}else Yb(-1,0);c[a>>2]=0;q=c[a>>2]|0;l=p;return q|0}q=je(d,c[e>>2]|0)|0;c[g>>2]=q;if(q){c[i>>2]=560;if((c[214]|0)==-1)c[214]=Wb(1,20980,19405,19872,c[i>>2]|0)|0;if((Xb()|0)<=0){if(c[214]|0){q=xd(c[g>>2]|0)|0;c[o>>2]=19805;c[o+4>>2]=19405;c[o+8>>2]=560;c[o+12>>2]=q;cc(1,20980,20531,o)}}else Yb(-1,0);Cd(c[e>>2]|0);c[a>>2]=0;q=c[a>>2]|0;l=p;return q|0}Cd(c[e>>2]|0);q=oc(f,c[d>>2]|0,37667,35384)|0;c[g>>2]=q;if(!q){Cd(c[d>>2]|0);c[b>>2]=Pb(32,19405,580)|0;Jc(c[b>>2]|0,32,c[f>>2]|0);Id(c[f>>2]|0);c[a>>2]=c[b>>2];q=c[a>>2]|0;l=p;return q|0}c[j>>2]=575;if((c[215]|0)==-1)c[215]=Wb(1,20980,19405,19872,c[j>>2]|0)|0;if((Xb()|0)<=0){if(c[215]|0){q=xd(c[g>>2]|0)|0;c[n>>2]=19820;c[n+4>>2]=19405;c[n+8>>2]=575;c[n+12>>2]=q;cc(1,20980,20531,n)}}else Yb(-1,0);Cd(c[d>>2]|0);c[a>>2]=0;q=c[a>>2]|0;l=p;return q|0}function qc(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;p=l;l=l+96|0;if((l|0)>=(m|0))$(96);n=p+40|0;o=p+24|0;k=p+8|0;a=p+88|0;b=p+84|0;d=p+80|0;e=p+76|0;f=p+72|0;g=p+68|0;h=p+64|0;i=p+60|0;j=p+56|0;q=Bd(e,0,19903,p)|0;c[g>>2]=q;if(q){c[h>>2]=604;if((c[216]|0)==-1)c[216]=Wb(1,20980,19405,19947,c[h>>2]|0)|0;if((Xb()|0)<=0){if(c[216]|0){q=xd(c[g>>2]|0)|0;c[k>>2]=19528;c[k+4>>2]=19405;c[k+8>>2]=604;c[k+12>>2]=q;cc(1,20980,20531,k)}}else Yb(-1,0);c[a>>2]=0;q=c[a>>2]|0;l=p;return q|0}q=je(d,c[e>>2]|0)|0;c[g>>2]=q;if(q){c[i>>2]=609;if((c[217]|0)==-1)c[217]=Wb(1,20980,19405,19947,c[i>>2]|0)|0;if((Xb()|0)<=0){if(c[217]|0){q=xd(c[g>>2]|0)|0;c[o>>2]=19805;c[o+4>>2]=19405;c[o+8>>2]=609;c[o+12>>2]=q;cc(1,20980,20531,o)}}else Yb(-1,0);Cd(c[e>>2]|0);c[a>>2]=0;q=c[a>>2]|0;l=p;return q|0}Cd(c[e>>2]|0);q=oc(f,c[d>>2]|0,37667,35384)|0;c[g>>2]=q;if(!q){Cd(c[d>>2]|0);c[b>>2]=Pb(32,19405,629)|0;Jc(c[b>>2]|0,32,c[f>>2]|0);Id(c[f>>2]|0);c[a>>2]=c[b>>2];q=c[a>>2]|0;l=p;return q|0}c[j>>2]=624;if((c[218]|0)==-1)c[218]=Wb(1,20980,19405,19947,c[j>>2]|0)|0;if((Xb()|0)<=0){if(c[218]|0){q=xd(c[g>>2]|0)|0;c[n>>2]=19820;c[n+4>>2]=19405;c[n+8>>2]=624;c[n+12>>2]=q;cc(1,20980,20531,n)}}else Yb(-1,0);Cd(c[d>>2]|0);c[a>>2]=0;q=c[a>>2]|0;l=p;return q|0}function rc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;r=l;l=l+80|0;if((l|0)>=(m|0))$(80);q=r+16|0;p=r;i=r+68|0;t=r+64|0;s=r+60|0;j=r+56|0;k=r+52|0;n=r+48|0;o=r+44|0;e=r+40|0;f=r+32|0;g=r+28|0;h=r+24|0;c[t>>2]=a;c[s>>2]=b;c[j>>2]=d;c[k>>2]=kc(c[t>>2]|0)|0;c[o>>2]=sc(c[s>>2]|0)|0;d=ge(n,c[o>>2]|0,c[k>>2]|0)|0;c[e>>2]=d;if(d){c[g>>2]=807;if((c[219]|0)==-1)c[219]=Wb(2,20980,19405,19978,c[g>>2]|0)|0;if((Xb()|0)<=0){if(c[219]|0){t=xd(c[e>>2]|0)|0;c[p>>2]=19405;c[p+4>>2]=807;c[p+8>>2]=t;cc(2,20980,20003,p)}}else Yb(-1,0);Cd(c[o>>2]|0);Cd(c[k>>2]|0);c[i>>2]=-1;t=c[i>>2]|0;l=r;return t|0}Cd(c[k>>2]|0);Cd(c[o>>2]|0);t=oc(f,c[n>>2]|0,37529,46882)|0;c[e>>2]=t;if(!t){Cd(c[n>>2]|0);Jc(c[j>>2]|0,32,c[f>>2]|0);Jc((c[j>>2]|0)+32|0,32,c[f+4>>2]|0);Id(c[f>>2]|0);Id(c[f+4>>2]|0);c[i>>2]=1;t=c[i>>2]|0;l=r;return t|0}c[h>>2]=819;if((c[220]|0)==-1)c[220]=Wb(1,0,19405,19978,c[h>>2]|0)|0;if((Xb()|0)<=0){if(c[220]|0){c[q>>2]=19405;c[q+4>>2]=819;Zb(1,61295,q)}}else Yb(-1,0);Cd(c[n>>2]|0);c[i>>2]=-1;t=c[i>>2]|0;l=r;return t|0}function sc(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;i=l;l=l+128|0;if((l|0)>=(m|0))$(128);h=i+16|0;j=i;b=i+116|0;o=i+112|0;k=i+48|0;e=i+40|0;f=i+36|0;g=i+32|0;c[o>>2]=a;n=c[o>>2]|0;a=c[o>>2]|0;wc(n,Yp(d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24)|0,k);c[j>>2]=37609;c[j+4>>2]=64;c[j+8>>2]=k;a=Bd(e,0,20038,j)|0;c[f>>2]=a;if(!a){c[b>>2]=c[e>>2];o=c[b>>2]|0;l=i;return o|0}c[g>>2]=698;if((c[221]|0)==-1)c[221]=Wb(1,20980,19405,20082,c[g>>2]|0)|0;if((Xb()|0)<=0){if(c[221]|0){o=xd(c[f>>2]|0)|0;c[h>>2]=19528;c[h+4>>2]=19405;c[h+8>>2]=698;c[h+12>>2]=o;cc(1,20980,20531,h)}}else Yb(-1,0);c[b>>2]=0;o=c[b>>2]|0;l=i;return o|0}function tc(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;w=l;l=l+96|0;if((l|0)>=(m|0))$(96);u=w+40|0;t=w+32|0;v=w+16|0;s=w;n=w+92|0;x=w+88|0;o=w+84|0;p=w+80|0;q=w+76|0;r=w+72|0;g=w+68|0;h=w+64|0;i=w+60|0;j=w+56|0;k=w+52|0;c[x>>2]=a;c[o>>2]=b;c[p>>2]=e;c[q>>2]=f;e=c[x>>2]|0;f=(c[o>>2]|0)+4|0;if((e|0)!=(Yp(d[f>>0]|d[f+1>>0]<<8|d[f+2>>0]<<16|d[f+3>>0]<<24)|0)){c[n>>2]=-1;x=c[n>>2]|0;l=w;return x|0}f=c[p>>2]|0;x=(c[p>>2]|0)+32|0;c[s>>2]=32;c[s+4>>2]=f;c[s+8>>2]=32;c[s+12>>2]=x;x=Bd(g,0,20141,s)|0;c[i>>2]=x;if(x){c[j>>2]=918;if((c[222]|0)==-1)c[222]=Wb(1,20980,19405,20170,c[j>>2]|0)|0;if((Xb()|0)<=0){if(c[222]|0){x=xd(c[i>>2]|0)|0;c[v>>2]=19528;c[v+4>>2]=19405;c[v+8>>2]=918;c[v+12>>2]=x;cc(1,20980,20531,v)}}else Yb(-1,0);c[n>>2]=-1;x=c[n>>2]|0;l=w;return x|0}c[r>>2]=sc(c[o>>2]|0)|0;x=c[q>>2]|0;c[t>>2]=32;c[t+4>>2]=x;x=Bd(h,0,20197,t)|0;c[i>>2]=x;if(x){Cd(c[r>>2]|0);Cd(c[g>>2]|0);c[n>>2]=-1;x=c[n>>2]|0;l=w;return x|0}c[i>>2]=he(c[g>>2]|0,c[r>>2]|0,c[h>>2]|0)|0;Cd(c[h>>2]|0);Cd(c[r>>2]|0);Cd(c[g>>2]|0);if(!(c[i>>2]|0)){c[n>>2]=1;x=c[n>>2]|0;l=w;return x|0}c[k>>2]=938;if((c[223]|0)==-1)c[223]=Wb(8,20980,19405,20170,c[k>>2]|0)|0;if((Xb()|0)<=0){if(c[223]|0){x=xd(c[i>>2]|0)|0;c[u>>2]=19405;c[u+4>>2]=938;c[u+8>>2]=x;cc(8,20980,20249,u)}}else Yb(-1,0);c[n>>2]=-1;x=c[n>>2]|0;l=w;return x|0}function uc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;z=l;l=l+144|0;if((l|0)>=(m|0))$(144);w=z+40|0;v=z+32|0;y=z+16|0;x=z+8|0;A=z;p=z+104|0;q=z+100|0;B=z+96|0;r=z+92|0;s=z+88|0;t=z+84|0;u=z+80|0;e=z+76|0;f=z+72|0;g=z+68|0;h=z+112|0;i=z+64|0;j=z+60|0;k=z+56|0;n=z+52|0;o=z+48|0;c[q>>2]=a;c[B>>2]=b;c[r>>2]=d;d=c[B>>2]|0;c[A>>2]=32;c[A+4>>2]=d;if(Bd(f,0,20102,A)|0){c[p>>2]=-1;B=c[p>>2]|0;l=z;return B|0}if(Sd(e,c[f>>2]|0,0)|0){c[j>>2]=972;if((c[224]|0)==-1)c[224]=Wb(1,0,19405,20299,c[j>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[224]|0))Vb();c[x>>2]=19405;c[x+4>>2]=972;Zb(1,61295,x);Vb()}Cd(c[f>>2]|0);c[t>>2]=Ud(46923,c[e>>2]|0,0)|0;Lc(u,c[q>>2]|0,32);c[s>>2]=Qd(0)|0;Wd(c[s>>2]|0,c[u>>2]|0,c[t>>2]|0,c[e>>2]|0);Rd(c[t>>2]|0);Id(c[u>>2]|0);c[g>>2]=Hd(256)|0;if(Vd(c[g>>2]|0,0,c[s>>2]|0,c[e>>2]|0)|0){c[k>>2]=989;if((c[225]|0)==-1)c[225]=Wb(1,20980,19405,20299,c[k>>2]|0)|0;if((Xb()|0)<=0){if(c[225]|0){B=xd(0)|0;c[y>>2]=20322;c[y+4>>2]=19405;c[y+8>>2]=989;c[y+12>>2]=B;cc(1,20980,20531,y)}}else Yb(-1,0);Rd(c[s>>2]|0);ve(c[e>>2]|0);c[p>>2]=-1;B=c[p>>2]|0;l=z;return B|0}Rd(c[s>>2]|0);ve(c[e>>2]|0);c[i>>2]=32;if($d(c[g>>2]|0,2)|0){c[n>>2]=998;if((c[226]|0)==-1)c[226]=Wb(1,0,19405,20299,c[n>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[226]|0))Vb();c[v>>2]=19405;c[v+4>>2]=998;Zb(1,61295,v);Vb()}if(!(Ld(1,h,c[i>>2]|0,i,c[g>>2]|0)|0)){wc(h,c[i>>2]|0,c[r>>2]|0);Id(c[g>>2]|0);c[p>>2]=1;B=c[p>>2]|0;l=z;return B|0}c[o>>2]=1005;if((c[227]|0)==-1)c[227]=Wb(1,0,19405,20299,c[o>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[227]|0))Vb();c[w>>2]=19405;c[w+4>>2]=1005;Zb(1,61295,w);Vb();return 0}function vc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;z=l;l=l+144|0;if((l|0)>=(m|0))$(144);w=z+40|0;v=z+32|0;y=z+16|0;x=z+8|0;A=z;p=z+104|0;q=z+100|0;B=z+96|0;r=z+92|0;s=z+88|0;t=z+84|0;u=z+80|0;e=z+76|0;f=z+72|0;g=z+68|0;h=z+112|0;i=z+64|0;j=z+60|0;k=z+56|0;n=z+52|0;o=z+48|0;c[q>>2]=a;c[B>>2]=b;c[r>>2]=d;d=c[B>>2]|0;c[A>>2]=32;c[A+4>>2]=d;if(Bd(f,0,20102,A)|0){c[p>>2]=-1;B=c[p>>2]|0;l=z;return B|0}if(Sd(e,c[f>>2]|0,0)|0){c[j>>2]=1403;if((c[228]|0)==-1)c[228]=Wb(1,0,19405,20340,c[j>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[228]|0))Vb();c[x>>2]=19405;c[x+4>>2]=1403;Zb(1,61295,x);Vb()}Cd(c[f>>2]|0);c[t>>2]=Ud(46923,c[e>>2]|0,0)|0;Lc(u,c[q>>2]|0,32);c[s>>2]=Qd(0)|0;Wd(c[s>>2]|0,c[u>>2]|0,c[t>>2]|0,c[e>>2]|0);Rd(c[t>>2]|0);Id(c[u>>2]|0);c[g>>2]=Hd(256)|0;if(Vd(c[g>>2]|0,0,c[s>>2]|0,c[e>>2]|0)|0){c[k>>2]=1420;if((c[229]|0)==-1)c[229]=Wb(1,20980,19405,20340,c[k>>2]|0)|0;if((Xb()|0)<=0){if(c[229]|0){B=xd(0)|0;c[y>>2]=20322;c[y+4>>2]=19405;c[y+8>>2]=1420;c[y+12>>2]=B;cc(1,20980,20531,y)}}else Yb(-1,0);Rd(c[s>>2]|0);ve(c[e>>2]|0);c[p>>2]=-1;B=c[p>>2]|0;l=z;return B|0}Rd(c[s>>2]|0);ve(c[e>>2]|0);c[i>>2]=32;if($d(c[g>>2]|0,2)|0){c[n>>2]=1429;if((c[230]|0)==-1)c[230]=Wb(1,0,19405,20340,c[n>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[230]|0))Vb();c[v>>2]=19405;c[v+4>>2]=1429;Zb(1,61295,v);Vb()}if(!(Ld(1,h,c[i>>2]|0,i,c[g>>2]|0)|0)){wc(h,c[i>>2]|0,c[r>>2]|0);Id(c[g>>2]|0);c[p>>2]=1;B=c[p>>2]|0;l=z;return B|0}c[o>>2]=1436;if((c[231]|0)==-1)c[231]=Wb(1,0,19405,20340,c[o>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[231]|0))Vb();c[w>>2]=19405;c[w+4>>2]=1436;Zb(1,61295,w);Vb();return 0}function wc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=e+8|0;f=e+4|0;h=e;c[g>>2]=a;c[f>>2]=b;c[h>>2]=d;pe(10,c[h>>2]|0,c[g>>2]|0,c[f>>2]|0);l=e;return}function xc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=g+8|0;e=g+4|0;f=g;c[d>>2]=a;c[e>>2]=b;c[f>>2]=15;while(1){if((c[f>>2]|0)<0)break;b=Nc(c[d>>2]|0,-1)|0;c[(c[e>>2]|0)+(c[f>>2]<<2)>>2]=b;c[f>>2]=(c[f>>2]|0)+-1}l=g;return}function yc(){var a=0,b=0,d=0,e=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=e;a=e+12|0;b=e+8|0;c[a>>2]=Pb(4,20365,425)|0;if(!(ke(c[a>>2]|0,10,0)|0)){l=e;return c[a>>2]|0}c[b>>2]=429;if((c[232]|0)==-1)c[232]=Wb(1,0,20365,20379,c[b>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[232]|0))Vb();c[d>>2]=20365;c[d+4>>2]=429;Zb(1,61295,d);Vb();return 0}function zc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);h=e+8|0;g=e+4|0;f=e;c[h>>2]=a;c[g>>2]=b;c[f>>2]=d;ne(c[c[h>>2]>>2]|0,c[g>>2]|0,c[f>>2]|0);l=e;return}function Ac(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=j;i=j+20|0;e=j+16|0;h=j+12|0;f=j+8|0;c[i>>2]=b;c[e>>2]=d;c[h>>2]=oe(c[c[i>>2]>>2]|0,0)|0;if(c[h>>2]|0){if(!(c[e>>2]|0)){i=c[i>>2]|0;Bc(i);l=j;return}e=c[e>>2]|0;b=c[h>>2]|0;d=e+64|0;do{a[e>>0]=a[b>>0]|0;e=e+1|0;b=b+1|0}while((e|0)<(d|0));i=c[i>>2]|0;Bc(i);l=j;return}c[f>>2]=462;if((c[233]|0)==-1)c[233]=Wb(1,0,20365,20412,c[f>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[233]|0))Vb();c[g>>2]=20365;c[g+4>>2]=462;Zb(1,61295,g);Vb()}function Bc(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;le(c[c[d>>2]>>2]|0);Rb(c[d>>2]|0,20365,480);l=b;return}function Cc(b,d,e,f,g,h,i,j,k){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0;U=l;l=l+144|0;if((l|0)>=(m|0))$(144);S=U+136|0;G=U+132|0;n=U+128|0;o=U+124|0;p=U+120|0;q=U+116|0;r=U+112|0;s=U+108|0;t=U+104|0;w=U+100|0;H=U+96|0;I=U+92|0;J=U+88|0;x=U+84|0;K=U+80|0;L=U+76|0;M=U+72|0;F=U+68|0;N=U+64|0;O=U+60|0;y=U+56|0;z=U+40|0;P=U+36|0;u=U+32|0;v=U+28|0;Q=U+24|0;R=U+20|0;A=U+16|0;B=U+12|0;C=U+8|0;D=U+4|0;E=U;c[G>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=j;c[w>>2]=k;c[M>>2]=re(c[p>>2]|0)|0;c[F>>2]=re(c[o>>2]|0)|0;b=c[F>>2]|0;c[N>>2]=Va()|0;f=l;l=l+((1*b|0)+15&-16)|0;if((l|0)>=(m|0))$((1*b|0)+15&-16|0);if(!(c[M>>2]|0)){c[S>>2]=-1;c[P>>2]=1;T=c[N>>2]|0;Ca(T|0);T=c[S>>2]|0;l=U;return T|0}if(ke(H,c[o>>2]|0,2)|0){c[S>>2]=-1;c[P>>2]=1;T=c[N>>2]|0;Ca(T|0);T=c[S>>2]|0;l=U;return T|0}if(ke(I,c[p>>2]|0,2)|0){le(c[H>>2]|0);c[S>>2]=-1;c[P>>2]=1;T=c[N>>2]|0;Ca(T|0);T=c[S>>2]|0;l=U;return T|0}c[z>>2]=c[c[w>>2]>>2];c[y>>2]=0;while(1){o=(c[z>>2]|0)+(4-1)&~(4-1);p=c[o>>2]|0;c[z>>2]=o+4;c[u>>2]=p;if(!(c[u>>2]|0))break;o=(c[z>>2]|0)+(4-1)&~(4-1);p=c[o>>2]|0;c[z>>2]=o+4;c[v>>2]=p;c[y>>2]=(c[y>>2]|0)+(c[v>>2]|0)}Yq(c[G>>2]|0,0,c[n>>2]|0)|0;a:do if((Dc(c[H>>2]|0,c[q>>2]|0,c[r>>2]|0,c[s>>2]|0,c[t>>2]|0,f)|0)!=1)T=45;else{c[K>>2]=((c[n>>2]|0)>>>0)/((c[M>>2]|0)>>>0)|0;c[L>>2]=((c[n>>2]|0)>>>0)%((c[M>>2]|0)>>>0)|0;c[Q>>2]=(c[M>>2]|0)+(c[y>>2]|0)+1;b=c[Q>>2]|0;c[R>>2]=Va()|0;e=l;l=l+((1*b|0)+15&-16)|0;if((l|0)>=(m|0))$((1*b|0)+15&-16|0);c[B>>2]=e+(c[M>>2]|0);c[z>>2]=c[c[w>>2]>>2];while(1){v=(c[z>>2]|0)+(4-1)&~(4-1);w=c[v>>2]|0;c[z>>2]=v+4;c[C>>2]=w;w=c[C>>2]|0;c[A>>2]=w;if(!w)break;v=(c[z>>2]|0)+(4-1)&~(4-1);w=c[v>>2]|0;c[z>>2]=v+4;c[E>>2]=w;c[D>>2]=c[E>>2];if(c[D>>2]|0)cr(c[B>>2]|0,c[A>>2]|0,c[D>>2]|0)|0;c[B>>2]=(c[B>>2]|0)+(c[D>>2]|0)}do if((c[K>>2]|0)>>>0>0){a[e+(c[M>>2]|0)+(c[y>>2]|0)>>0]=1;c[J>>2]=Ec(c[I>>2]|0,f,c[F>>2]|0,e+(c[M>>2]|0)|0,(c[y>>2]|0)+1|0)|0;if(!(c[J>>2]|0)){c[P>>2]=4;break}if(c[M>>2]|0)cr(c[G>>2]|0,c[J>>2]|0,c[M>>2]|0)|0;c[G>>2]=(c[G>>2]|0)+(c[M>>2]|0);T=22}else T=22;while(0);do if((T|0)==22){c[x>>2]=1;while(1){if((c[x>>2]|0)>>>0>=(c[K>>2]|0)>>>0)break;if(c[M>>2]|0)cr(e|0,(c[G>>2]|0)+(0-(c[M>>2]|0))|0,c[M>>2]|0)|0;Yq(e+(c[M>>2]|0)+(c[y>>2]|0)|0,(c[x>>2]|0)+1&255|0,1)|0;me(c[I>>2]|0);c[J>>2]=Ec(c[I>>2]|0,f,c[F>>2]|0,e,c[Q>>2]|0)|0;if(!(c[J>>2]|0)){T=27;break}if(c[M>>2]|0)cr(c[G>>2]|0,c[J>>2]|0,c[M>>2]|0)|0;c[G>>2]=(c[G>>2]|0)+(c[M>>2]|0);c[x>>2]=(c[x>>2]|0)+1}if((T|0)==27){c[P>>2]=4;break}if((c[L>>2]|0)>>>0>0){if((c[K>>2]|0)>>>0>0){if(c[M>>2]|0)cr(e|0,(c[G>>2]|0)+(0-(c[M>>2]|0))|0,c[M>>2]|0)|0;c[x>>2]=(c[x>>2]|0)+1}Yq(e+(c[M>>2]|0)+(c[y>>2]|0)|0,c[x>>2]&255|0,1)|0;me(c[I>>2]|0);d=c[I>>2]|0;b=c[F>>2]|0;if((c[K>>2]|0)>>>0>0)c[J>>2]=Ec(d,f,b,e,c[Q>>2]|0)|0;else c[J>>2]=Ec(d,f,b,e+(c[M>>2]|0)|0,(c[Q>>2]|0)-(c[M>>2]|0)|0)|0;if(!(c[J>>2]|0)){c[P>>2]=4;break}if(c[L>>2]|0)cr(c[G>>2]|0,c[J>>2]|0,c[L>>2]|0)|0}c[O>>2]=1;c[P>>2]=22}while(0);Ca(c[R>>2]|0);switch(c[P>>2]|0){case 4:{T=45;break a}case 22:break a;default:{}}T=c[N>>2]|0;Ca(T|0);T=c[S>>2]|0;l=U;return T|0}while(0);if((T|0)==45)c[O>>2]=-1;le(c[H>>2]|0);le(c[I>>2]|0);c[S>>2]=c[O>>2];c[P>>2]=1;T=c[N>>2]|0;Ca(T|0);T=c[S>>2]|0;l=U;return T|0}function Dc(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0;n=l;l=l+32|0;if((l|0)>=(m|0))$(32);j=n+28|0;k=n+24|0;r=n+20|0;q=n+16|0;p=n+12|0;o=n+8|0;h=n+4|0;i=n;c[k>>2]=a;c[r>>2]=b;c[q>>2]=d;c[p>>2]=e;c[o>>2]=f;c[h>>2]=g;c[i>>2]=Ec(c[k>>2]|0,c[r>>2]|0,c[q>>2]|0,c[p>>2]|0,c[o>>2]|0)|0;if(!(c[i>>2]|0)){c[j>>2]=-1;r=c[j>>2]|0;l=n;return r|0}if(re(qe(c[k>>2]|0)|0)|0){q=c[h>>2]|0;r=c[i>>2]|0;cr(q|0,r|0,re(qe(c[k>>2]|0)|0)|0)|0}c[j>>2]=1;r=c[j>>2]|0;l=n;return r|0}function Ec(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0;g=l;l=l+32|0;if((l|0)>=(m|0))$(32);h=g+16|0;n=g+12|0;k=g+8|0;j=g+4|0;i=g;c[h>>2]=a;c[n>>2]=b;c[k>>2]=d;c[j>>2]=e;c[i>>2]=f;se(c[h>>2]|0,c[n>>2]|0,c[k>>2]|0)|0;ne(c[h>>2]|0,c[j>>2]|0,c[i>>2]|0);f=oe(c[h>>2]|0,0)|0;l=g;return f|0}function Fc(a,b,d,e,f,g,h,i,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;k=l;l=l+64|0;if((l|0)>=(m|0))$(64);w=k+52|0;v=k+48|0;u=k+44|0;t=k+40|0;s=k+36|0;r=k+32|0;q=k+28|0;p=k+24|0;o=k+8|0;n=k;c[w>>2]=a;c[v>>2]=b;c[u>>2]=d;c[t>>2]=e;c[s>>2]=f;c[r>>2]=g;c[q>>2]=h;c[p>>2]=i;c[o>>2]=j;c[n>>2]=Cc(c[w>>2]|0,c[v>>2]|0,c[u>>2]|0,c[t>>2]|0,c[s>>2]|0,c[r>>2]|0,c[q>>2]|0,c[p>>2]|0,o)|0;l=k;return c[n>>2]|0}function Gc(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0;i=l;l=l+32|0;if((l|0)>=(m|0))$(32);r=i+24|0;q=i+20|0;p=i+16|0;o=i+12|0;n=i+8|0;k=i+4|0;j=i;c[r>>2]=a;c[q>>2]=b;c[p>>2]=d;c[o>>2]=e;c[n>>2]=f;c[k>>2]=g;c[j>>2]=h;h=Cc(c[r>>2]|0,c[q>>2]|0,10,8,c[p>>2]|0,c[o>>2]|0,c[n>>2]|0,c[k>>2]|0,c[j>>2]|0)|0;l=i;return h|0}function Hc(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;i=l;l=l+48|0;if((l|0)>=(m|0))$(48);s=i+44|0;r=i+40|0;q=i+36|0;p=i+32|0;o=i+28|0;n=i+24|0;k=i+8|0;j=i;c[s>>2]=a;c[r>>2]=b;c[q>>2]=d;c[p>>2]=e;c[o>>2]=f;c[n>>2]=g;c[k>>2]=h;c[j>>2]=Gc(c[s>>2]|0,c[r>>2]|0,c[q>>2]|0,c[p>>2]|0,c[o>>2]|0,c[n>>2]|0,k)|0;l=i;return c[j>>2]|0}function Ic(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;E=l;l=l+112|0;if((l|0)>=(m|0))$(112);C=E+40|0;B=E+32|0;D=E+24|0;x=E;u=E+108|0;v=E+104|0;w=E+100|0;i=E+96|0;j=E+92|0;k=E+88|0;n=E+84|0;o=E+80|0;p=E+76|0;q=E+72|0;r=E+68|0;s=E+64|0;y=E+60|0;z=E+56|0;A=E+52|0;t=E+48|0;c[u>>2]=a;c[v>>2]=b;c[w>>2]=d;c[i>>2]=e;c[j>>2]=f;c[k>>2]=g;c[n>>2]=h;c[p>>2]=Xd(c[v>>2]|0)|0;c[r>>2]=0;while(1){b=((((c[p>>2]|0)-1|0)>>>0)/8|0)+1|0;c[s>>2]=Va()|0;a=b;d=l;l=l+((1*a|0)+15&-16)|0;if((l|0)>=(m|0))$((1*a|0)+15&-16|0);e=c[w>>2]|0;f=c[i>>2]|0;g=c[j>>2]|0;h=c[k>>2]|0;F=c[n>>2]|0;a=Fo(c[n>>2]|0)|0;c[x>>2]=F;c[x+4>>2]=a;c[x+8>>2]=r;c[x+12>>2]=4;c[x+16>>2]=0;c[x+20>>2]=0;c[o>>2]=Hc(d,b,e,f,g,h,x)|0;if(1!=(c[o>>2]|0)){a=3;break}c[o>>2]=Kd(c[u>>2]|0,5,d,b,q)|0;if(c[o>>2]|0){a=11;break}Zd(c[c[u>>2]>>2]|0,c[p>>2]|0);if(Yd(c[c[u>>2]>>2]|0,c[p>>2]|0)|0){a=19;break}c[r>>2]=(c[r>>2]|0)+1;if(0>(Jd(c[c[u>>2]>>2]|0,c[v>>2]|0)|0))c[t>>2]=3;else{Id(c[c[u>>2]>>2]|0);c[t>>2]=0}Ca(c[s>>2]|0);if((c[t>>2]|0)>>>0>=1){a=30;break}}if((a|0)==3){c[y>>2]=155;if((c[234]|0)==-1)c[234]=Wb(1,0,20446,20459,c[y>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[234]|0))Vb();c[D>>2]=20446;c[D+4>>2]=155;Zb(1,61295,D);Vb()}else if((a|0)==11){c[z>>2]=162;if((c[235]|0)==-1)c[235]=Wb(1,0,20446,20459,c[z>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[235]|0))Vb();c[B>>2]=20446;c[B+4>>2]=162;Zb(1,61295,B);Vb()}else if((a|0)==19){c[A>>2]=165;if((c[236]|0)==-1)c[236]=Wb(1,0,20446,20459,c[A>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[236]|0))Vb();c[C>>2]=20446;c[C+4>>2]=165;Zb(1,61295,C);Vb()}else if((a|0)==30){l=E;return}}function Jc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=l;l=l+80|0;if((l|0)>=(m|0))$(80);s=t+24|0;r=t+8|0;q=t;h=t+68|0;i=t+64|0;j=t+60|0;k=t+56|0;n=t+52|0;o=t+48|0;p=t+44|0;e=t+40|0;f=t+36|0;g=t+32|0;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;if($d(c[j>>2]|0,2)|0){c[p>>2]=_d(c[j>>2]|0,o)|0;if(c[p>>2]|0){c[k>>2]=(((c[o>>2]|0)+7|0)>>>0)/8|0;if((c[k>>2]|0)>>>0>(c[i>>2]|0)>>>0)c[k>>2]=c[i>>2];if(c[k>>2]|0)cr(c[h>>2]|0,c[p>>2]|0,c[k>>2]|0)|0;if((c[k>>2]|0)>>>0>=(c[i>>2]|0)>>>0){l=t;return}Yq((c[h>>2]|0)+(c[k>>2]|0)|0,0,(c[i>>2]|0)-(c[k>>2]|0)|0)|0;l=t;return}c[e>>2]=89;if((c[237]|0)==-1)c[237]=Wb(1,0,20485,20498,c[e>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[237]|0))Vb();c[q>>2]=20485;c[q+4>>2]=89;Zb(1,61295,q);Vb()}else{c[k>>2]=c[i>>2];q=Ld(5,c[h>>2]|0,c[k>>2]|0,k,c[j>>2]|0)|0;c[n>>2]=q;if(!q){Kc(c[h>>2]|0,c[k>>2]|0,c[i>>2]|0);l=t;return}c[f>>2]=110;if((c[238]|0)==-1)c[238]=Wb(1,20980,20485,20498,c[f>>2]|0)|0;if((Xb()|0)<=0){if(c[238]|0){t=xd(c[n>>2]|0)|0;c[r>>2]=20568;c[r+4>>2]=20485;c[r+8>>2]=110;c[r+12>>2]=t;cc(1,20980,20531,r)}}else Yb(-1,0);c[g>>2]=111;if((c[239]|0)==-1)c[239]=Wb(1,0,20485,20498,c[g>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[239]|0))Vb();c[s>>2]=20485;c[s+4>>2]=111;Zb(1,61295,s);Vb()}}function Kc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=i+12|0;f=i+8|0;g=i+4|0;h=i;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;c[h>>2]=c[e>>2];if((c[f>>2]|0)>>>0>=(c[g>>2]|0)>>>0){l=i;return}dr((c[h>>2]|0)+((c[g>>2]|0)-(c[f>>2]|0))|0,c[e>>2]|0,c[f>>2]|0)|0;Yq(c[e>>2]|0,0,(c[g>>2]|0)-(c[f>>2]|0)|0)|0;l=i;return}function Lc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;j=l;l=l+48|0;if((l|0)>=(m|0))$(48);i=j+16|0;h=j;o=j+44|0;n=j+40|0;k=j+36|0;e=j+32|0;f=j+28|0;g=j+24|0;c[o>>2]=a;c[n>>2]=b;c[k>>2]=d;d=Kd(c[o>>2]|0,5,c[n>>2]|0,c[k>>2]|0,k)|0;c[e>>2]=d;if(!d){l=j;return}c[f>>2]=140;if((c[240]|0)==-1)c[240]=Wb(1,20980,20485,20583,c[f>>2]|0)|0;if((Xb()|0)<=0){if(c[240]|0){o=xd(c[e>>2]|0)|0;c[h>>2]=20615;c[h+4>>2]=20485;c[h+8>>2]=140;c[h+12>>2]=o;cc(1,20980,20531,h)}}else Yb(-1,0);c[g>>2]=141;if((c[241]|0)==-1)c[241]=Wb(1,0,20485,20583,c[g>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[241]|0))Vb();c[i>>2]=20485;c[i+4>>2]=141;Zb(1,61295,i);Vb()}function Mc(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0;n=l;l=l+80|0;if((l|0)>=(m|0))$(80);i=n+56|0;h=n+48|0;g=n+40|0;f=n+32|0;k=n+24|0;j=n+16|0;e=n+8|0;d=n;a=n+64|0;b=n+60|0;if(yd(20629)|0){c[j>>2]=0;j=zd(37,j)|0;c[a>>2]=j;if(j|0){j=c[3935]|0;e=xd(c[a>>2]|0)|0;c[k>>2]=20782;c[k+4>>2]=e;Rp(j,20743,k)|0}c[f>>2]=0;k=zd(44,f)|0;c[a>>2]=k;if(!k){c[h>>2]=0;zd(38,h)|0;c[i>>2]=0;zd(48,i)|0;j=fb(0)|0;k=Nc(2,-1)|0;k=j^k;Oc(k);l=n;return}j=c[3935]|0;k=xd(c[a>>2]|0)|0;c[g>>2]=20797;c[g+4>>2]=k;Rp(j,20743,g)|0;c[h>>2]=0;zd(38,h)|0;c[i>>2]=0;zd(48,i)|0;j=fb(0)|0;k=Nc(2,-1)|0;k=j^k;Oc(k);l=n;return}n=c[3935]|0;c[d>>2]=20629;Rp(n,20635,d)|0;c[b>>2]=286;if((c[242]|0)==-1)c[242]=Wb(1,0,20701,20717,c[b>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[242]|0))Vb();c[e>>2]=20701;c[e+4>>2]=286;Zb(1,61295,e);Vb()}function Nc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0.0;p=l;l=l+64|0;if((l|0)>=(m|0))$(64);o=p+16|0;n=p+8|0;k=p;d=p+48|0;e=p+44|0;f=p+40|0;g=p+36|0;h=p+32|0;i=p+28|0;j=p+24|0;c[e>>2]=a;c[f>>2]=b;if((c[f>>2]|0)>>>0<=0){c[i>>2]=157;if((c[243]|0)==-1)c[243]=Wb(1,0,20701,20817,c[i>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[243]|0))Vb();c[k>>2]=20701;c[k+4>>2]=157;Zb(1,61295,k);Vb()}switch(c[e>>2]|0){case 1:{o=c[17573]|0;c[17573]=o+1;if(!((o>>>0)%256|0)){c[n>>2]=0;zd(48,n)|0}c[h>>2]=-1-(4294967295%((c[f>>2]|0)>>>0)|0);do te(g,4,1);while((c[g>>2]|0)>>>0>=(c[h>>2]|0)>>>0);c[d>>2]=((c[g>>2]|0)>>>0)%((c[f>>2]|0)>>>0)|0;o=c[d>>2]|0;l=p;return o|0}case 2:{c[h>>2]=-1-(4294967295%((c[f>>2]|0)>>>0)|0);do ue(g,4);while((c[g>>2]|0)>>>0>=(c[h>>2]|0)>>>0);c[d>>2]=((c[g>>2]|0)>>>0)%((c[f>>2]|0)>>>0)|0;o=c[d>>2]|0;l=p;return o|0}case 0:{q=+((c[f>>2]|0)>>>0);c[g>>2]=~~(q*+Pc())>>>0;if((c[g>>2]|0)>>>0>=(c[f>>2]|0)>>>0)c[g>>2]=(c[f>>2]|0)-1;c[d>>2]=c[g>>2];o=c[d>>2]|0;l=p;return o|0}default:{c[j>>2]=189;if((c[244]|0)==-1)c[244]=Wb(1,0,20701,20817,c[j>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[244]|0))Vb();c[o>>2]=20701;c[o+4>>2]=189;Zb(1,61295,o);Vb()}}return 0}function Oc(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;Cq(c[d>>2]|0);l=b;return}function Pc(){return +(+(Eq()|0)/2147483647.0)}function Qc(){we(0,0);return}function Rc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0;k=l;l=l+48|0;if((l|0)>=(m|0))$(48);j=k+16|0;i=k+8|0;h=k;n=k+36|0;e=k+32|0;f=k+28|0;g=k+24|0;c[n>>2]=a;c[e>>2]=b;c[f>>2]=d;switch(c[n>>2]|0){case 1:{n=c[17574]|0;c[17574]=n+1;if(!((n>>>0)%256|0)){c[h>>2]=0;zd(48,h)|0}te(c[e>>2]|0,c[f>>2]|0,1);l=k;return}case 2:{ue(c[e>>2]|0,c[f>>2]|0);l=k;return}case 0:{n=c[17574]|0;c[17574]=n+1;if(!((n>>>0)%256|0)){c[i>>2]=0;zd(48,i)|0}te(c[e>>2]|0,c[f>>2]|0,0);l=k;return}default:{c[g>>2]=135;if((c[245]|0)==-1)c[245]=Wb(1,0,20701,20842,c[g>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[245]|0))Vb();c[j>>2]=20701;c[j+4>>2]=135;Zb(1,61295,j);Vb()}}}function Sc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0;j=l;l=l+48|0;if((l|0)>=(m|0))$(48);i=j+16|0;h=j+8|0;k=j;n=j+44|0;b=j+40|0;d=j+36|0;e=j+32|0;f=j+28|0;g=j+24|0;c[n>>2]=a;c[k>>2]=c[n>>2];if(Bd(e,0,20869,k)|0){c[f>>2]=155;if((c[246]|0)==-1)c[246]=Wb(1,0,20893,20906,c[f>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[246]|0))Vb();c[h>>2]=20893;c[h+4>>2]=155;Zb(1,61295,h);Vb()}if(!(je(d,c[e>>2]|0)|0)){Cd(c[e>>2]|0);c[b>>2]=Pb(4,20893,164)|0;c[c[b>>2]>>2]=c[d>>2];l=j;return c[b>>2]|0}c[g>>2]=158;if((c[247]|0)==-1)c[247]=Wb(1,0,20893,20906,c[g>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[247]|0))Vb();c[i>>2]=20893;c[i+4>>2]=158;Zb(1,61295,i);Vb();return 0}function Tc(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;Cd(c[c[d>>2]>>2]|0);Rb(c[d>>2]|0,20893,179);l=b;return}function Uc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;i=l;l=l+32|0;if((l|0)>=(m|0))$(32);h=i;j=i+24|0;d=i+20|0;e=i+16|0;f=i+12|0;g=i+8|0;c[j>>2]=a;c[d>>2]=b;c[e>>2]=Dd(c[c[j>>2]>>2]|0,0,0,0)|0;c[f>>2]=Pb(c[e>>2]|0,20893,202)|0;b=(c[e>>2]|0)-1|0;if((b|0)==(Dd(c[c[j>>2]>>2]|0,0,c[f>>2]|0,c[e>>2]|0)|0)){c[c[d>>2]>>2]=c[f>>2];l=i;return c[e>>2]|0}c[g>>2]=207;if((c[248]|0)==-1)c[248]=Wb(1,0,20893,20943,c[g>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[248]|0))Vb();c[h>>2]=20893;c[h+4>>2]=207;Zb(1,61295,h);Vb();return 0}function Vc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0;j=l;l=l+48|0;if((l|0)>=(m|0))$(48);i=j+8|0;h=j;d=j+32|0;n=j+28|0;k=j+24|0;e=j+20|0;f=j+16|0;g=j+12|0;c[n>>2]=a;c[k>>2]=b;c[e>>2]=Pb(4,20893,226)|0;if(Ad(c[e>>2]|0,c[n>>2]|0,c[k>>2]|0,0)|0){c[f>>2]=234;if((c[249]|0)==-1)c[249]=Wb(2,20980,20893,20985,c[f>>2]|0)|0;if((Xb()|0)<=0){if(c[249]|0)cc(2,20980,21022,h)}else Yb(-1,0);Rb(c[e>>2]|0,20893,235);c[d>>2]=0;n=c[d>>2]|0;l=j;return n|0}if(!(ie(c[c[e>>2]>>2]|0)|0)){c[d>>2]=c[e>>2];n=c[d>>2]|0;l=j;return n|0}c[g>>2]=241;if((c[250]|0)==-1)c[250]=Wb(2,20980,20893,20985,c[g>>2]|0)|0;if((Xb()|0)<=0){if(c[250]|0)cc(2,20980,21022,i)}else Yb(-1,0);Tc(c[e>>2]|0);c[d>>2]=0;n=c[d>>2]|0;l=j;return n|0}function Wc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0;n=l;l=l+64|0;if((l|0)>=(m|0))$(64);k=n+8|0;j=n;b=n+48|0;d=n+44|0;e=n+40|0;f=n+32|0;g=n+24|0;h=n+20|0;i=n+16|0;c[d>>2]=a;c[g>>2]=Xc(f,c[c[d>>2]>>2]|0,37679,39061)|0;if(c[g>>2]|0)c[g>>2]=Xc(f,c[c[d>>2]>>2]|0,37667,39061)|0;if(c[g>>2]|0)c[g>>2]=Xc(f,c[c[d>>2]>>2]|0,40693,39061)|0;if(!(c[g>>2]|0)){j=c[f+4>>2]|0;c[k>>2]=c[f>>2];c[k+4>>2]=j;c[g>>2]=Bd(h,0,21145,k)|0;Id(c[f>>2]|0);Id(c[f+4>>2]|0);c[e>>2]=Pb(4,20893,280)|0;c[c[e>>2]>>2]=c[h>>2];c[b>>2]=c[e>>2];k=c[b>>2]|0;l=n;return k|0}c[i>>2]=270;if((c[251]|0)==-1)c[251]=Wb(2,0,20893,21056,c[i>>2]|0)|0;if((Xb()|0)<=0){if(c[251]|0){c[j>>2]=20893;c[j+4>>2]=270;Zb(66,21097,j)}}else Yb(-1,0);c[b>>2]=0;k=c[b>>2]|0;l=n;return k|0}function Xc(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;q=l;l=l+48|0;if((l|0)>=(m|0))$(48);n=q+36|0;o=q+32|0;s=q+28|0;r=q+24|0;g=q+20|0;p=q+16|0;h=q+12|0;i=q+8|0;j=q+4|0;k=q;c[o>>2]=b;c[s>>2]=d;c[r>>2]=e;c[g>>2]=f;f=Ed(c[s>>2]|0,c[r>>2]|0,0)|0;c[p>>2]=f;if(!f){c[n>>2]=1;s=c[n>>2]|0;l=q;return s|0}c[h>>2]=Fd(c[p>>2]|0)|0;Cd(c[p>>2]|0);c[p>>2]=c[h>>2];if(!(c[p>>2]|0)){c[n>>2]=2;s=c[n>>2]|0;l=q;return s|0}c[k>>2]=0;c[i>>2]=c[g>>2];while(1){d=c[p>>2]|0;if(!(a[c[i>>2]>>0]|0)){b=18;break}s=Ed(d,c[i>>2]|0,1)|0;c[h>>2]=s;if(!s){b=8;break}s=Gd(c[h>>2]|0,1,5)|0;c[(c[o>>2]|0)+(c[k>>2]<<2)>>2]=s;Cd(c[h>>2]|0);if(!(c[(c[o>>2]|0)+(c[k>>2]<<2)>>2]|0)){b=13;break}c[i>>2]=(c[i>>2]|0)+1;c[k>>2]=(c[k>>2]|0)+1}if((b|0)==8){c[j>>2]=0;while(1){if((c[j>>2]|0)>>>0>=(c[k>>2]|0)>>>0)break;ye(c[(c[o>>2]|0)+(c[j>>2]<<2)>>2]|0);c[(c[o>>2]|0)+(c[j>>2]<<2)>>2]=0;c[j>>2]=(c[j>>2]|0)+1}Cd(c[p>>2]|0);c[n>>2]=3;s=c[n>>2]|0;l=q;return s|0}else if((b|0)==13){c[j>>2]=0;while(1){if((c[j>>2]|0)>>>0>=(c[k>>2]|0)>>>0)break;ye(c[(c[o>>2]|0)+(c[j>>2]<<2)>>2]|0);c[(c[o>>2]|0)+(c[j>>2]<<2)>>2]=0;c[j>>2]=(c[j>>2]|0)+1}Cd(c[p>>2]|0);c[n>>2]=4;s=c[n>>2]|0;l=q;return s|0}else if((b|0)==18){Cd(d);c[n>>2]=0;s=c[n>>2]|0;l=q;return s|0}return 0}function Yc(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;Cd(c[c[d>>2]>>2]|0);Rb(c[d>>2]|0,20893,295);l=b;return}function Zc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;i=l;l=l+32|0;if((l|0)>=(m|0))$(32);h=i;j=i+24|0;d=i+20|0;e=i+16|0;f=i+12|0;g=i+8|0;c[j>>2]=a;c[d>>2]=b;c[e>>2]=Dd(c[c[j>>2]>>2]|0,3,0,0)|0;c[f>>2]=Pb(c[e>>2]|0,20893,318)|0;b=(c[e>>2]|0)-1|0;if((b|0)==(Dd(c[c[j>>2]>>2]|0,3,c[f>>2]|0,c[e>>2]|0)|0)){c[c[d>>2]>>2]=c[f>>2];l=i;return c[e>>2]|0}c[g>>2]=323;if((c[252]|0)==-1)c[252]=Wb(1,0,20893,21175,c[g>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[252]|0))Vb();c[h>>2]=20893;c[h+4>>2]=323;Zb(1,61295,h);Vb();return 0}function _c(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;n=l;l=l+48|0;if((l|0)>=(m|0))$(48);k=n+8|0;j=n;d=n+44|0;p=n+40|0;o=n+36|0;e=n+32|0;f=n+28|0;g=n+24|0;h=n+20|0;i=n+16|0;c[p>>2]=a;c[o>>2]=b;c[e>>2]=Pb(4,20893,367)|0;if(Ad(c[e>>2]|0,c[p>>2]|0,c[o>>2]|0,0)|0){c[h>>2]=374;if((c[253]|0)==-1)c[253]=Wb(2,0,20893,21211,c[h>>2]|0)|0;if((Xb()|0)<=0){if(c[253]|0){c[j>>2]=20893;c[j+4>>2]=374;Zb(66,21097,j)}}else Yb(-1,0);Rb(c[e>>2]|0,20893,375);c[d>>2]=0;p=c[d>>2]|0;l=n;return p|0}c[g>>2]=Xc(f,c[c[e>>2]>>2]|0,37679,39075)|0;if(c[g>>2]|0)c[g>>2]=Xc(f,c[c[e>>2]>>2]|0,40693,39075)|0;if(!(c[g>>2]|0)){Id(c[f>>2]|0);c[d>>2]=c[e>>2];p=c[d>>2]|0;l=n;return p|0}c[i>>2]=385;if((c[254]|0)==-1)c[254]=Wb(1,0,20893,21211,c[i>>2]|0)|0;if((Xb()|0)<=0){if(c[254]|0){c[k>>2]=20893;c[k+4>>2]=385;Zb(1,61295,k)}}else Yb(-1,0);Cd(c[c[e>>2]>>2]|0);Rb(c[e>>2]|0,20893,387);c[d>>2]=0;p=c[d>>2]|0;l=n;return p|0}function $c(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;i=l;l=l+32|0;if((l|0)>=(m|0))$(32);h=i;j=i+24|0;d=i+20|0;e=i+16|0;f=i+12|0;g=i+8|0;c[j>>2]=a;c[d>>2]=b;c[e>>2]=Dd(c[c[j>>2]>>2]|0,3,0,0)|0;c[f>>2]=Pb(c[e>>2]|0,20893,958)|0;b=(c[e>>2]|0)-1|0;if((b|0)==(Dd(c[c[j>>2]>>2]|0,3,c[f>>2]|0,c[e>>2]|0)|0)){c[c[d>>2]>>2]=c[f>>2];l=i;return c[e>>2]|0}c[g>>2]=963;if((c[255]|0)==-1)c[255]=Wb(1,0,20893,21247,c[g>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[255]|0))Vb();c[h>>2]=20893;c[h+4>>2]=963;Zb(1,61295,h);Vb();return 0}function ad(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=l;l=l+80|0;if((l|0)>=(m|0))$(80);x=y+8|0;w=y;r=y+76|0;s=y+72|0;t=y+68|0;u=y+64|0;v=y+60|0;g=y+56|0;h=y+52|0;i=y+48|0;j=y+40|0;k=y+32|0;n=y+28|0;o=y+24|0;p=y+20|0;q=y+16|0;c[s>>2]=a;c[t>>2]=b;c[u>>2]=d;c[v>>2]=e;c[g>>2]=f;if(!((c[v>>2]|0)!=0&(c[g>>2]|0)!=0)){c[p>>2]=738;if((c[256]|0)==-1)c[256]=Wb(1,0,20893,21282,c[p>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[256]|0))Vb();c[w>>2]=20893;c[w+4>>2]=738;Zb(1,61295,w);Vb()}c[o>>2]=Xc(j,c[c[u>>2]>>2]|0,37679,39061)|0;if(c[o>>2]|0)c[o>>2]=Xc(j,c[c[u>>2]>>2]|0,40693,39061)|0;if(!(c[o>>2]|0)){c[i>>2]=bd(c[u>>2]|0,c[s>>2]|0)|0;do if(c[i>>2]|0){c[h>>2]=cd(c[u>>2]|0,c[t>>2]|0)|0;if(!(c[h>>2]|0)){Id(c[i>>2]|0);break}c[k>>2]=Hd(0)|0;Nd(c[k>>2]|0,c[c[h>>2]>>2]|0,c[j+4>>2]|0,c[j>>2]|0);c[n>>2]=Hd(0)|0;Md(c[n>>2]|0,c[i>>2]|0,c[k>>2]|0,c[j>>2]|0);Id(c[i>>2]|0);Id(c[j>>2]|0);Id(c[j+4>>2]|0);Id(c[k>>2]|0);dd(c[h>>2]|0);x=ed(c[n>>2]|0,c[v>>2]|0)|0;c[c[g>>2]>>2]=x;Id(c[n>>2]|0);c[r>>2]=1;x=c[r>>2]|0;l=y;return x|0}while(0);Id(c[j>>2]|0);Id(c[j+4>>2]|0);c[c[v>>2]>>2]=0;c[c[g>>2]>>2]=0;c[r>>2]=0;x=c[r>>2]|0;l=y;return x|0}c[q>>2]=744;if((c[257]|0)==-1)c[257]=Wb(1,0,20893,21282,c[q>>2]|0)|0;if((Xb()|0)<=0){if(c[257]|0){c[x>>2]=20893;c[x+4>>2]=744;Zb(1,61295,x)}}else Yb(-1,0);c[c[v>>2]>>2]=0;c[c[g>>2]>>2]=0;c[r>>2]=0;x=c[r>>2]|0;l=y;return x|0}function bd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0;r=l;l=l+64|0;if((l|0)>=(m|0))$(64);o=r+8|0;n=r;p=r+52|0;f=r+48|0;g=r+44|0;h=r+40|0;i=r+36|0;j=r+32|0;k=r+28|0;q=r+24|0;d=r+20|0;e=r+16|0;c[f>>2]=a;c[g>>2]=b;if(Xc(i,c[c[f>>2]>>2]|0,40693,39075)|0){c[d>>2]=689;if((c[262]|0)==-1)c[262]=Wb(1,0,20893,21400,c[d>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[262]|0))Vb();c[n>>2]=20893;c[n+4>>2]=689;Zb(1,61295,n);Vb()}if(!($d(c[i>>2]|0,2)|0)){c[k>>2]=Zc(c[f>>2]|0,j)|0;Ic(h,c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[g>>2]|0,64,21421);Rb(c[j>>2]|0,20893,704);c[q>>2]=fd(c[h>>2]|0,c[i>>2]|0)|0;Id(c[i>>2]|0);a=c[h>>2]|0;if(c[q>>2]|0){c[p>>2]=a;q=c[p>>2]|0;l=r;return q|0}else{Id(a);c[p>>2]=0;q=c[p>>2]|0;l=r;return q|0}}c[e>>2]=691;if((c[263]|0)==-1)c[263]=Wb(1,0,20893,21400,c[e>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[263]|0))Vb();c[o>>2]=20893;c[o+4>>2]=691;Zb(1,61295,o);Vb();return 0}function cd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;q=l;l=l+64|0;if((l|0)>=(m|0))$(64);p=q+16|0;o=q+8|0;n=q;d=q+52|0;e=q+48|0;f=q+44|0;g=q+40|0;h=q+36|0;i=q+32|0;j=q+28|0;k=q+24|0;c[d>>2]=a;c[e>>2]=b;c[f>>2]=21332;c[g>>2]=Pb(4,20893,434)|0;if(!(c[g>>2]|0)){c[i>>2]=435;if((c[259]|0)==-1)c[259]=Wb(1,0,20893,21363,c[i>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[259]|0))Vb();c[n>>2]=20893;c[n+4>>2]=435;Zb(1,61295,n);Vb()}if(Xc(h,c[c[d>>2]>>2]|0,40693,39075)|0){c[j>>2]=438;if((c[260]|0)==-1)c[260]=Wb(1,0,20893,21363,c[j>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[260]|0))Vb();c[o>>2]=20893;c[o+4>>2]=438;Zb(1,61295,o);Vb()}if(!($d(c[h>>2]|0,2)|0)){k=c[g>>2]|0;n=c[h>>2]|0;o=c[f>>2]|0;p=Fo(c[f>>2]|0)|0;Ic(k,n,o,p,c[e>>2]|0,32,21387);if(fd(c[c[g>>2]>>2]|0,c[h>>2]|0)|0){p=c[h>>2]|0;Id(p);p=c[g>>2]|0;l=q;return p|0}Rb(c[g>>2]|0,20893,448);c[g>>2]=0;p=c[h>>2]|0;Id(p);p=c[g>>2]|0;l=q;return p|0}c[k>>2]=440;if((c[261]|0)==-1)c[261]=Wb(1,0,20893,21363,c[k>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[261]|0))Vb();c[p>>2]=20893;c[p+4>>2]=440;Zb(1,61295,p);Vb();return 0}function dd(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;Id(c[c[d>>2]>>2]|0);Rb(c[d>>2]|0,20893,631);l=b;return}function ed(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;i=l;l=l+32|0;if((l|0)>=(m|0))$(32);h=i;j=i+28|0;d=i+24|0;e=i+20|0;f=i+16|0;g=i+8|0;c[j>>2]=a;c[d>>2]=b;Ld(5,0,0,e,c[j>>2]|0)|0;c[f>>2]=Pb(c[e>>2]|0,20893,655)|0;if(!(Ld(5,c[f>>2]|0,c[e>>2]|0,i+12|0,c[j>>2]|0)|0)){c[c[d>>2]>>2]=c[f>>2];l=i;return c[e>>2]|0}c[g>>2]=661;if((c[258]|0)==-1)c[258]=Wb(1,0,20893,21306,c[g>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[258]|0))Vb();c[h>>2]=20893;c[h+4>>2]=661;Zb(1,61295,h);Vb();return 0}function fd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);h=d+12|0;g=d+8|0;f=d+4|0;e=d;c[h>>2]=a;c[g>>2]=b;c[f>>2]=Hd(0)|0;c[e>>2]=Od(c[f>>2]|0,c[h>>2]|0,c[g>>2]|0)|0;Id(c[f>>2]|0);l=d;return c[e>>2]|0}function gd(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=f+8|0;g=f;h=f+24|0;b=f+20|0;d=f+16|0;c[h>>2]=a;c[b>>2]=0;c[g>>2]=c[h>>2];if(!(Bd(b,0,21436,g)|0)){l=f;return c[b>>2]|0}c[d>>2]=806;if((c[264]|0)==-1)c[264]=Wb(1,0,20893,21466,c[d>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[264]|0))Vb();c[e>>2]=20893;c[e+4>>2]=806;Zb(1,61295,e);Vb();return 0}function hd(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=a;Cd(c[c[d>>2]>>2]|0);Rb(c[d>>2]|0,20893,936);l=b;return}function id(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;n=l;l=l+48|0;if((l|0)>=(m|0))$(48);k=n+8|0;j=n;d=n+44|0;p=n+40|0;o=n+36|0;e=n+32|0;f=n+28|0;g=n+24|0;h=n+20|0;i=n+16|0;c[p>>2]=a;c[o>>2]=b;c[e>>2]=Pb(4,20893,985)|0;if(Ad(c[e>>2]|0,c[p>>2]|0,c[o>>2]|0,0)|0){c[h>>2]=992;if((c[265]|0)==-1)c[265]=Wb(2,0,20893,21478,c[h>>2]|0)|0;if((Xb()|0)<=0){if(c[265]|0){c[j>>2]=20893;c[j+4>>2]=992;Zb(66,21097,j)}}else Yb(-1,0);Rb(c[e>>2]|0,20893,993);c[d>>2]=0;p=c[d>>2]|0;l=n;return p|0}c[f>>2]=Xc(g,c[c[e>>2]>>2]|0,37529,39073)|0;if(c[f>>2]|0)c[f>>2]=Xc(g,c[c[e>>2]>>2]|0,40693,39073)|0;if(!(c[f>>2]|0)){Id(c[g>>2]|0);c[d>>2]=c[e>>2];p=c[d>>2]|0;l=n;return p|0}c[i>>2]=1003;if((c[266]|0)==-1)c[266]=Wb(2,0,20893,21478,c[i>>2]|0)|0;if((Xb()|0)<=0){if(c[266]|0){c[k>>2]=20893;c[k+4>>2]=1003;Zb(66,21097,k)}}else Yb(-1,0);Cd(c[c[e>>2]>>2]|0);Rb(c[e>>2]|0,20893,1005);c[d>>2]=0;p=c[d>>2]|0;l=n;return p|0}function jd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=l;l=l+112|0;if((l|0)>=(m|0))$(112);z=C+40|0;y=C+32|0;x=C+24|0;B=C+16|0;A=C+8|0;w=C;p=C+108|0;q=C+104|0;r=C+100|0;s=C+96|0;t=C+92|0;u=C+88|0;v=C+84|0;e=C+80|0;f=C+76|0;g=C+72|0;h=C+68|0;i=C+64|0;j=C+60|0;k=C+56|0;n=C+52|0;o=C+48|0;c[q>>2]=a;c[r>>2]=b;c[s>>2]=d;c[g>>2]=Xc(u,c[c[s>>2]>>2]|0,37679,39075)|0;if(c[g>>2]|0)c[g>>2]=Xc(u,c[c[s>>2]>>2]|0,40693,39075)|0;if(c[g>>2]|0){c[i>>2]=1066;if((c[267]|0)==-1)c[267]=Wb(2,0,20893,21513,c[i>>2]|0)|0;if((Xb()|0)<=0){if(c[267]|0){c[w>>2]=20893;c[w+4>>2]=1066;Zb(66,21097,w)}}else Yb(-1,0);c[p>>2]=0;B=c[p>>2]|0;l=C;return B|0}c[g>>2]=Xc(v,c[c[q>>2]>>2]|0,37529,39073)|0;if(c[g>>2]|0)c[g>>2]=Xc(v,c[c[q>>2]>>2]|0,40693,39073)|0;if(c[g>>2]|0){Id(c[u>>2]|0);c[j>>2]=1075;if((c[268]|0)==-1)c[268]=Wb(2,0,20893,21513,c[j>>2]|0)|0;if((Xb()|0)<=0){if(c[268]|0){c[A>>2]=20893;c[A+4>>2]=1075;Zb(66,21097,A)}}else Yb(-1,0);c[p>>2]=0;B=c[p>>2]|0;l=C;return B|0}c[t>>2]=cd(c[s>>2]|0,c[r>>2]|0)|0;if(!(c[t>>2]|0)){c[k>>2]=1086;if((c[269]|0)==-1)c[269]=Wb(2,0,20893,21513,c[k>>2]|0)|0;if((Xb()|0)<=0){if(c[269]|0){c[B>>2]=20893;c[B+4>>2]=1086;Zb(66,21097,B)}}else Yb(-1,0);Id(c[u>>2]|0);Id(c[v>>2]|0);c[p>>2]=0;B=c[p>>2]|0;l=C;return B|0}c[e>>2]=Hd(0)|0;if(1!=(Pd(c[e>>2]|0,c[c[t>>2]>>2]|0,c[u>>2]|0)|0)){c[n>>2]=1100;if((c[270]|0)==-1)c[270]=Wb(2,0,20893,21513,c[n>>2]|0)|0;if((Xb()|0)<=0){if(c[270]|0){c[x>>2]=20893;c[x+4>>2]=1100;Zb(66,21097,x)}}else Yb(-1,0);Id(c[e>>2]|0);dd(c[t>>2]|0);Id(c[u>>2]|0);Id(c[v>>2]|0);c[p>>2]=0;B=c[p>>2]|0;l=C;return B|0}c[f>>2]=Hd(0)|0;Md(c[f>>2]|0,c[v>>2]|0,c[e>>2]|0,c[u>>2]|0);Id(c[u>>2]|0);Id(c[e>>2]|0);Id(c[v>>2]|0);dd(c[t>>2]|0);c[h>>2]=Pb(4,20893,1115)|0;B=c[h>>2]|0;c[y>>2]=c[f>>2];if(!(Bd(B,0,21539,y)|0)){Id(c[f>>2]|0);c[p>>2]=c[h>>2];B=c[p>>2]|0;l=C;return B|0}c[o>>2]=1120;if((c[271]|0)==-1)c[271]=Wb(1,0,20893,21513,c[o>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[271]|0))Vb();c[z>>2]=20893;c[z+4>>2]=1120;Zb(1,61295,z);Vb();return 0}function kd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0;q=l;l=l+64|0;if((l|0)>=(m|0))$(64);p=q+8|0;o=q;g=q+52|0;r=q+48|0;h=q+44|0;i=q+40|0;j=q+36|0;k=q+32|0;n=q+28|0;e=q+24|0;f=q+20|0;c[r>>2]=a;c[h>>2]=b;c[i>>2]=d;c[k>>2]=bd(c[i>>2]|0,c[r>>2]|0)|0;if(!(c[k>>2]|0)){c[e>>2]=1146;if((c[272]|0)==-1)c[272]=Wb(2,0,20893,21562,c[e>>2]|0)|0;if((Xb()|0)<=0){if(c[272]|0){c[o>>2]=20893;c[o+4>>2]=1146;Zb(66,21097,o)}}else Yb(-1,0);c[g>>2]=0;r=c[g>>2]|0;l=q;return r|0}c[j>>2]=gd(c[k>>2]|0)|0;Id(c[k>>2]|0);c[n>>2]=he(c[c[h>>2]>>2]|0,c[j>>2]|0,c[c[i>>2]>>2]|0)|0;Cd(c[j>>2]|0);if(!(c[n>>2]|0)){c[g>>2]=1;r=c[g>>2]|0;l=q;return r|0}c[f>>2]=1169;if((c[273]|0)==-1)c[273]=Wb(2,20980,20893,21562,c[f>>2]|0)|0;if((Xb()|0)<=0){if(c[273]|0){r=xd(c[n>>2]|0)|0;c[p>>2]=20893;c[p+4>>2]=1168;c[p+8>>2]=r;cc(2,20980,21587,p)}}else Yb(-1,0);c[g>>2]=-1;r=c[g>>2]|0;l=q;return r|0}function ld(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;j=l;l=l+48|0;if((l|0)>=(m|0))$(48);h=j+16|0;d=j+40|0;e=j+36|0;f=j+32|0;g=j+8|0;k=j;c[e>>2]=b;c[f>>2]=21675;o=a;b=c[o+4>>2]|0;n=g;c[n>>2]=c[o>>2];c[n+4>>2]=b;n=rd()|0;b=k;c[b>>2]=n;c[b+4>>2]=D;b=a;if((c[k>>2]|0)==(c[b>>2]|0)?(c[k+4>>2]|0)==(c[b+4>>2]|0):0){c[d>>2]=21653;o=c[d>>2]|0;l=j;return o|0}o=a;if(0==(c[o>>2]|0)?0==(c[o+4>>2]|0):0){c[d>>2]=21679;o=c[d>>2]|0;l=j;return o|0}o=g;n=c[o+4>>2]|0;if(!(!(1==(c[e>>2]|0)&(n>>>0>0|(n|0)==0&(c[o>>2]|0)>>>0>5e3))?(o=g,o=nr(c[o>>2]|0,c[o+4>>2]|0,1e3,0)|0,!(0==(o|0)&0==(D|0))):0))i=7;do if((i|0)==7){n=g;n=ir(c[n>>2]|0,c[n+4>>2]|0,1e3,0)|0;o=g;c[o>>2]=n;c[o+4>>2]=D;c[f>>2]=21661;o=g;n=c[o+4>>2]|0;if(!(1==(c[e>>2]|0)&(n>>>0>0|(n|0)==0&(c[o>>2]|0)>>>0>5e3))?(o=g,o=nr(c[o>>2]|0,c[o+4>>2]|0,1e3,0)|0,!(0==(o|0)&0==(D|0))):0)break;n=g;n=ir(c[n>>2]|0,c[n+4>>2]|0,1e3,0)|0;o=g;c[o>>2]=n;c[o+4>>2]=D;c[f>>2]=39073;o=g;n=c[o+4>>2]|0;if(!(1==(c[e>>2]|0)&(n>>>0>0|(n|0)==0&(c[o>>2]|0)>>>0>300))?(o=g,o=nr(c[o>>2]|0,c[o+4>>2]|0,60,0)|0,!(0==(o|0)&0==(D|0))):0)break;n=g;n=ir(c[n>>2]|0,c[n+4>>2]|0,60,0)|0;o=g;c[o>>2]=n;c[o+4>>2]=D;c[f>>2]=21664;o=g;n=c[o+4>>2]|0;if(!(1==(c[e>>2]|0)&(n>>>0>0|(n|0)==0&(c[o>>2]|0)>>>0>300))?(o=g,o=nr(c[o>>2]|0,c[o+4>>2]|0,60,0)|0,!(0==(o|0)&0==(D|0))):0)break;n=g;n=ir(c[n>>2]|0,c[n+4>>2]|0,60,0)|0;o=g;c[o>>2]=n;c[o+4>>2]=D;c[f>>2]=35382;o=g;n=c[o+4>>2]|0;if(!(1==(c[e>>2]|0)&(n>>>0>0|(n|0)==0&(c[o>>2]|0)>>>0>120))?(o=g,o=nr(c[o>>2]|0,c[o+4>>2]|0,24,0)|0,!(0==(o|0)&0==(D|0))):0)break;n=g;n=ir(c[n>>2]|0,c[n+4>>2]|0,24,0)|0;o=g;c[o>>2]=n;c[o+4>>2]=D;o=g;if(1==(c[o>>2]|0)?0==(c[o+4>>2]|0):0){c[f>>2]=21666;break}else{c[f>>2]=21670;break}}while(0);i=g;k=c[i+4>>2]|0;o=c[f>>2]|0;n=h;c[n>>2]=c[i>>2];c[n+4>>2]=k;c[h+8>>2]=o;Sb(71651,128,21645,h)|0;c[d>>2]=71651;o=c[d>>2]|0;l=j;return o|0}function md(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;A=l;l=l+96|0;if((l|0)>=(m|0))$(96);x=A+24|0;z=A+16|0;y=A+8|0;o=A;t=A+84|0;B=A+80|0;n=A+76|0;u=A+72|0;v=A+68|0;w=A+64|0;h=A+60|0;i=A+56|0;p=A+52|0;j=A+48|0;k=A+44|0;q=A+40|0;r=A+36|0;s=A+32|0;c[B>>2]=b;c[n>>2]=e;c[u>>2]=f;c[v>>2]=g;c[j>>2]=c[B>>2];if((c[v>>2]|0)>>>0<((((c[n>>2]<<3)+4|0)>>>0)/5|0)>>>0){c[k>>2]=883;if((c[274]|0)==-1)c[274]=Wb(1,0,21635,21684,c[k>>2]|0)|0;if((Xb()|0)<=0){if(c[274]|0){c[o>>2]=21635;c[o+4>>2]=883;Zb(1,61295,o)}}else Yb(-1,0);c[t>>2]=0;B=c[t>>2]|0;l=A;return B|0}c[p>>2]=0;c[w>>2]=0;c[h>>2]=0;c[i>>2]=0;while(1){if(!((c[h>>2]|0)>>>0<(c[n>>2]|0)>>>0?1:(c[p>>2]|0)>>>0>0)){b=32;break}if((c[p>>2]|0)>>>0<5?(c[h>>2]|0)>>>0<(c[n>>2]|0)>>>0:0){o=c[i>>2]<<8;B=c[h>>2]|0;c[h>>2]=B+1;c[i>>2]=o|(d[(c[j>>2]|0)+B>>0]|0);c[p>>2]=(c[p>>2]|0)+8}if((c[p>>2]|0)>>>0<5){c[i>>2]=c[i>>2]<<5-(c[p>>2]|0);if((c[p>>2]|0)!=((c[n>>2]<<3>>>0)%5|0|0)){b=15;break}c[p>>2]=5}if((c[w>>2]|0)>>>0>=(c[v>>2]|0)>>>0){b=24;break}o=a[(c[277]|0)+((c[i>>2]|0)>>>((c[p>>2]|0)-5|0)&31)>>0]|0;B=c[w>>2]|0;c[w>>2]=B+1;a[(c[u>>2]|0)+B>>0]=o;c[p>>2]=(c[p>>2]|0)-5}if((b|0)==15){c[q>>2]=900;if((c[275]|0)==-1)c[275]=Wb(1,0,21635,21684,c[q>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[275]|0))Vb();c[y>>2]=21635;c[y+4>>2]=900;Zb(1,61295,y);Vb()}else if((b|0)==24){c[r>>2]=905;if((c[276]|0)==-1)c[276]=Wb(1,0,21635,21684,c[r>>2]|0)|0;if((Xb()|0)<=0){if(c[276]|0){c[z>>2]=21635;c[z+4>>2]=905;Zb(1,61295,z)}}else Yb(-1,0);c[t>>2]=0;B=c[t>>2]|0;l=A;return B|0}else if((b|0)==32){if(!(c[p>>2]|0)){if((c[w>>2]|0)>>>0<(c[v>>2]|0)>>>0)a[(c[u>>2]|0)+(c[w>>2]|0)>>0]=0;c[t>>2]=(c[u>>2]|0)+(c[w>>2]|0);B=c[t>>2]|0;l=A;return B|0}c[s>>2]=911;if((c[278]|0)==-1)c[278]=Wb(1,0,21635,21684,c[s>>2]|0)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[278]|0))Vb();c[x>>2]=21635;c[x+4>>2]=911;Zb(1,61295,x);Vb()}return 0}function nd(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=k+20|0;f=k+16|0;g=k+12|0;h=k+8|0;i=k+4|0;j=k;c[f>>2]=b;c[g>>2]=d;c[i>>2]=c[g>>2]<<3;if((((c[i>>2]|0)>>>0)%5|0)>>>0>0)c[i>>2]=(c[i>>2]|0)+(5-(((c[i>>2]|0)>>>0)%5|0));c[i>>2]=((c[i>>2]|0)>>>0)/5|0;c[h>>2]=Pb((c[i>>2]|0)+1|0,21635,939)|0;c[j>>2]=md(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0,c[i>>2]|0)|0;if(!(c[j>>2]|0)){Rb(c[h>>2]|0,21635,943);c[e>>2]=0;j=c[e>>2]|0;l=k;return j|0}else{a[c[j>>2]>>0]=0;c[e>>2]=c[h>>2];j=c[e>>2]|0;l=k;return j|0}return 0}function od(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=l;l=l+64|0;if((l|0)>=(m|0))$(64);w=x;v=x+60|0;r=x+56|0;i=x+52|0;j=x+48|0;k=x+44|0;s=x+40|0;n=x+36|0;o=x+32|0;t=x+28|0;p=x+24|0;g=x+20|0;q=x+16|0;h=x+12|0;u=x+8|0;c[r>>2]=b;c[i>>2]=d;c[j>>2]=e;c[k>>2]=f;c[h>>2]=c[k>>2]<<3;if(!(c[i>>2]|0))if(!(c[k>>2]|0)){c[v>>2]=1;w=c[v>>2]|0;l=x;return w|0}else{c[v>>2]=-1;w=c[v>>2]|0;l=x;return w|0}c[q>>2]=c[j>>2];c[n>>2]=c[k>>2];c[s>>2]=c[i>>2];if((((c[h>>2]|0)>>>0)%5|0)>>>0>0){c[t>>2]=((c[h>>2]|0)>>>0)%5|0;c[g>>2]=5-(c[t>>2]|0);k=(c[s>>2]|0)+-1|0;c[s>>2]=k;k=pd(a[(c[r>>2]|0)+k>>0]|0)|0;c[p>>2]=k;c[o>>2]=k>>c[g>>2]}else{c[t>>2]=5;c[g>>2]=0;k=(c[s>>2]|0)+-1|0;c[s>>2]=k;k=pd(a[(c[r>>2]|0)+k>>0]|0)|0;c[p>>2]=k;c[o>>2]=k}if(((((c[h>>2]|0)+(c[g>>2]|0)|0)>>>0)/5|0|0)!=(c[i>>2]|0)){c[v>>2]=-1;w=c[v>>2]|0;l=x;return w|0}if(-1==(c[p>>2]|0)){c[v>>2]=-1;w=c[v>>2]|0;l=x;return w|0}while(1){d=c[s>>2]|0;if((c[n>>2]|0)>>>0<=0){b=25;break}if(!d){b=14;break}k=(c[s>>2]|0)+-1|0;c[s>>2]=k;k=pd(a[(c[r>>2]|0)+k>>0]|0)|0;c[p>>2]=k;c[o>>2]=k<<c[t>>2]|c[o>>2];if(-1==(c[p>>2]|0)){b=22;break}c[t>>2]=(c[t>>2]|0)+5;if((c[t>>2]|0)>>>0<8)continue;j=c[o>>2]&255;k=(c[n>>2]|0)+-1|0;c[n>>2]=k;a[(c[q>>2]|0)+k>>0]=j;c[o>>2]=(c[o>>2]|0)>>>8;c[t>>2]=(c[t>>2]|0)-8}if((b|0)==14){c[u>>2]=1003;if((c[279]|0)==-1)c[279]=Wb(1,0,21635,21747,c[u>>2]|0)|0;if((Xb()|0)<=0){if(c[279]|0){c[w>>2]=21635;c[w+4>>2]=1003;Zb(1,61295,w)}}else Yb(-1,0);c[v>>2]=-1;w=c[v>>2]|0;l=x;return w|0}else if((b|0)==22){c[v>>2]=-1;w=c[v>>2]|0;l=x;return w|0}else if((b|0)==25)if(0!=(d|0)|0!=(c[t>>2]|0)){c[v>>2]=-1;w=c[v>>2]|0;l=x;return w|0}else{c[v>>2]=1;w=c[v>>2]|0;l=x;return w|0}return 0}function pd(b){b=b|0;var e=0,f=0,g=0,h=0;h=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=h+4|0;f=h+8|0;g=h;a[f>>0]=b;switch(d[f>>0]|0|0){case 111:case 79:{a[f>>0]=48;break}case 76:case 108:case 73:case 105:{a[f>>0]=49;break}case 85:case 117:{a[f>>0]=86;break}default:{}}if((d[f>>0]|0|0)>=48?(d[f>>0]|0|0)<=57:0){c[e>>2]=(d[f>>0]|0)-48;g=c[e>>2]|0;l=h;return g|0}if((d[f>>0]|0|0)>=97?(d[f>>0]|0|0)<=122:0)a[f>>0]=Bp(d[f>>0]|0)|0;c[g>>2]=0;if((d[f>>0]|0|0)>=65?(d[f>>0]|0|0)<=90:0){if(73<(d[f>>0]|0|0))c[g>>2]=(c[g>>2]|0)+1;if(76<(d[f>>0]|0|0))c[g>>2]=(c[g>>2]|0)+1;if(79<(d[f>>0]|0|0))c[g>>2]=(c[g>>2]|0)+1;if(85<(d[f>>0]|0|0))c[g>>2]=(c[g>>2]|0)+1;c[e>>2]=(d[f>>0]|0)-65+10-(c[g>>2]|0);g=c[e>>2]|0;l=h;return g|0}c[e>>2]=-1;g=c[e>>2]|0;l=h;return g|0}function qd(){var a=0;a=70232;D=c[a+4>>2]|0;return c[a>>2]|0}function rd(){var a=0,b=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=a;c[b>>2]=c[16];c[b+4>>2]=c[17];D=c[b+4>>2]|0;l=a;return c[b>>2]|0}function sd(){var a=0,b=0,d=0,e=0,f=0;a=l;l=l+32|0;if((l|0)>=(m|0))$(32);b=a+8|0;d=a;e=a+16|0;gb(e|0,0)|0;f=c[e>>2]|0;f=kr(f|0,((f|0)<0)<<31>>31|0,1e3,0)|0;f=kr(f|0,D|0,1e3,0)|0;e=c[e+4>>2]|0;e=_q(f|0,D|0,e|0,((e|0)<0)<<31>>31|0)|0;f=70232;f=_q(e|0,D|0,c[f>>2]|0,c[f+4>>2]|0)|0;e=d;c[e>>2]=f;c[e+4>>2]=D;c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];D=c[b+4>>2]|0;l=a;return c[b>>2]|0}function td(){var a=0,b=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=a;c[b>>2]=c[17560];c[b+4>>2]=c[17561];D=c[b+4>>2]|0;l=a;return c[b>>2]|0}function ud(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);b=f+24|0;d=f+16|0;e=f+8|0;h=f;g=sd()|0;j=h;c[j>>2]=g;c[j+4>>2]=D;c[d>>2]=c[h>>2];c[d+4>>2]=c[h+4>>2];h=a;j=c[h+4>>2]|0;g=d;i=c[g+4>>2]|0;if(j>>>0>i>>>0|((j|0)==(i|0)?(c[h>>2]|0)>>>0>(c[g>>2]|0)>>>0:0)){j=td()|0;i=b;c[i>>2]=j;c[i+4>>2]=D;i=b;j=i;j=c[j>>2]|0;i=i+4|0;i=c[i>>2]|0;D=i;l=f;return j|0}else{i=d;j=a;j=Xq(c[i>>2]|0,c[i+4>>2]|0,c[j>>2]|0,c[j+4>>2]|0)|0;i=e;c[i>>2]=j;c[i+4>>2]=D;c[b>>2]=c[e>>2];c[b+4>>2]=c[e+4>>2];i=b;j=i;j=c[j>>2]|0;i=i+4|0;i=c[i>>2]|0;D=i;l=f;return j|0}return 0}function vd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d;f=e;c[f>>2]=a;c[f+4>>2]=b;b=Xp(c[e>>2]|0)|0;b=_q(0,b|0,Xp(c[e+4>>2]|0)|0,0)|0;l=d;return b|0}function wd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d;f=e;c[f>>2]=a;c[f+4>>2]=b;b=Yp(c[e>>2]|0)|0;b=_q(0,b|0,Yp(c[e+4>>2]|0)|0,0)|0;l=d;return b|0}function xd(a){a=a|0;return Pn(a)|0}function yd(a){a=a|0;return Ye(a)|0}function zd(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d;c[e>>2]=b;b=Ze(a,e)|0;l=d;return ((b|0)==0?0:b&65535|16777216)|0}function Ad(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=tf(a,b,c,d)|0;return ((d|0)==0?0:d&65535|16777216)|0}function Bd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f;c[g>>2]=e;e=Ef(a,b,d,g)|0;l=f;return ((e|0)==0?0:e&65535|16777216)|0}function Cd(a){a=a|0;sf(a);return}function Dd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Gf(a,b,c,d)|0}function Ed(a,b,c){a=a|0;b=b|0;c=c|0;return uf(a,b,c)|0}function Fd(a){a=a|0;return Cf(a)|0}function Gd(a,b,c){a=a|0;b=b|0;c=c|0;return Af(a,b,c)|0}function Hd(a){a=a|0;return Hl(a)|0}function Id(a){a=a|0;Jl(a);return}function Jd(a,b){a=a|0;b=b|0;return wk(a,b)|0}function Kd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;e=Sk(a,b,c,d,e)|0;return ((e|0)==0?0:e&65535|16777216)|0}function Ld(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;e=Tk(a,b,c,d,e)|0;return ((e|0)==0?0:e&65535|16777216)|0}function Md(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Lk(a,b,c,d);return}function Nd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Mk(a,b,c,d);return}function Od(a,b,c){a=a|0;b=b|0;c=c|0;return Ek(a,b,c)|0}function Pd(a,b,c){a=a|0;b=b|0;c=c|0;return Fk(a,b,c)|0}function Qd(a){a=a|0;return Oj(a)|0}function Rd(a){a=a|0;Qj(a);return}function Sd(a,b,c){a=a|0;b=b|0;c=c|0;c=Hg(a,b,c)|0;return ((c|0)==0?0:c&65535|16777216)|0}function Td(a,b,c){a=a|0;b=b|0;c=c|0;return Zj(a,b,c)|0}function Ud(a,b,c){a=a|0;b=b|0;c=c|0;return _j(a,b,c)|0}function Vd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Nj(a,b,c,sg(d,1)|0)|0}function Wd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ck(a,b,c,sg(d,1)|0);return}function Xd(a){a=a|0;return lk(a)|0}function Yd(a,b){a=a|0;b=b|0;return mk(a,b)|0}function Zd(a,b){a=a|0;b=b|0;pk(a,b);return}function _d(a,b){a=a|0;b=b|0;return wl(a,b)|0}function $d(a,b){a=a|0;b=b|0;return Ll(a,b)|0}function ae(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if(!(We()|0)){c[a>>2]=0;e=16777392;return e|0}else{e=vg(a,b,d,e)|0;e=(e|0)==0?0:e&65535|16777216;return e|0}return 0}function be(a){a=a|0;xg(a);return}function ce(a,b,c){a=a|0;b=b|0;c=c|0;if(!(We()|0)){c=16777392;return c|0}c=Ag(a,b,c)|0;c=(c|0)==0?0:c&65535|536870912;return c|0}function de(a,b,c){a=a|0;b=b|0;c=c|0;if(!(We()|0)){c=16777392;return c|0}c=Bg(a,b,c)|0;c=(c|0)==0?0:c&65535|536870912;return c|0}function ee(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(We()|0){e=yg(a,b,c,d,e)|0;e=(e|0)==0?0:e&65535|16777216;return e|0}if(!b){e=16777392;return e|0}Yq(b|0,66,c|0)|0;e=16777392;return e|0}function fe(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(!(We()|0)){e=16777392;return e|0}e=zg(a,b,c,d,e)|0;e=(e|0)==0?0:e&65535|16777216;return e|0}function ge(a,b,d){a=a|0;b=b|0;d=d|0;if(!(We()|0)){c[a>>2]=0;d=16777392;return d|0}else{d=Sh(a,b,d)|0;d=(d|0)==0?0:d&65535|16777216;return d|0}return 0}function he(a,b,c){a=a|0;b=b|0;c=c|0;if(!(We()|0)){c=16777392;return c|0}c=Th(a,b,c)|0;c=(c|0)==0?0:c&65535|16777216;return c|0}function ie(a){a=a|0;if(!(We()|0)){a=16777392;return a|0}a=Uh(a)|0;a=(a|0)==0?0:a&65535|16777216;return a|0}function je(a,b){a=a|0;b=b|0;if(!(We()|0)){c[a>>2]=0;b=16777392;return b|0}else{b=Vh(a,b)|0;b=(b|0)==0?0:b&65535|16777216;return b|0}return 0}function ke(a,b,d){a=a|0;b=b|0;d=d|0;if(!(We()|0)){c[a>>2]=0;d=16777392;return d|0}else{d=eh(a,b,d)|0;d=(d|0)==0?0:d&65535|16777216;return d|0}return 0}function le(a){a=a|0;kh(a);return}function me(a){a=a|0;ih(a);return}function ne(a,b,c){a=a|0;b=b|0;c=c|0;if(!(We()|0))return;lh(a,b,c);return}function oe(a,b){a=a|0;b=b|0;return ph(a,b)|0}function pe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(!(We()|0))kg(21777,1175,21790,0,21810);oh(a,b,c,d);return}function qe(a){a=a|0;if(!(We()|0)){kg(21777,1198,21842,0,21859);a=0;return a|0}else{a=rh(a)|0;return a|0}return 0}function re(a){a=a|0;return sh(a)|0}function se(a,b,c){a=a|0;b=b|0;c=c|0;if(!(We()|0)){c=16777392;return c|0}c=nh(a,b,c)|0;c=(c|0)==0?0:c&65535|16777216;return c|0}function te(a,b,c){a=a|0;b=b|0;c=c|0;if(!(We()|0)){kg(21777,1287,21889,1,21810);fg()}else{Dj(a,b,c);return}}function ue(a,b){a=a|0;b=b|0;if(!(We()|0)){kg(21777,1340,21904,1,21810);fg()}else{Hj(a,b);return}}function ve(a){a=a|0;tg(a);return}function we(a,b){a=a|0;b=b|0;of(a,b);return}function xe(a,b){a=a|0;b=b|0;Ae(a,b);return}function ye(a){a=a|0;cf(a);return}function ze(a){a=a|0;var b=0;b=c[17575]|0;if(!b){b=a;return b|0}b=tb[b&15](a)|0;return b|0}function Ae(a,b){a=a|0;b=b|0;c[17576]=b;c[17577]=a;return}function Be(a,b){a=a|0;b=b|0;if(!b)b=Pn(a)|0;if(c[17577]|0?(gg()|0)==0:0)ub[c[17577]&7](c[17576]|0,a,b);kg(21922,86,21929,1,b);Ce(21947);Ce(b);Ce(22378);bg();za()}function Ce(a){a=a|0;oq(2,a,Fo(a)|0)|0;return}function De(a){a=a|0;c[17580]=a;return}function Ee(a){a=a|0;return (c[17580]|0)>=(a|0)|0}function Fe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=g;e=c[17578]|0;if(!e){switch(a|0){case 30:case 20:case 10:case 0:break;case 40:{iq(21962,7,1,c[3935]|0)|0;break}case 50:{iq(21970,13,1,c[3935]|0)|0;break}case 100:{iq(21984,5,1,c[3935]|0)|0;break}default:{e=c[3935]|0;c[f>>2]=a;Rp(e,21990,f)|0}}np(c[3935]|0,b,d)|0}else zb[e&1](c[17579]|0,a,b,d);switch(a|0){case 40:case 50:{kg(21922,140,22015,1,22026);bg();za();break}default:{l=g;return}}}function Ge(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e;c[f>>2]=d;Fe(a,b,f);l=e;return}function He(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);c[e>>2]=a;c[e+4>>2]=b;c[e+8>>2]=d;Ge(50,22056,e);za()}function Ie(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);c[f>>2]=a;c[f+4>>2]=b;c[f+8>>2]=d;c[f+12>>2]=e;Ge(50,22086,f);za()}function Je(a,b){a=a|0;b=b|0;var d=0,e=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=e;c[d>>2]=b;b=c[17578]|0;if(!b){np(c[3935]|0,a,d)|0;l=e;return}else{zb[b&1](c[17579]|0,10,a,d);l=e;return}}function Ke(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=f;c[e>>2]=d;a=c[17578]|0;if(!a){np(c[3935]|0,b,e)|0;l=f;return 0}else{zb[a&1](c[17579]|0,10,b,e);l=f;return 0}return 0}function Le(a,b){a=a|0;b=b|0;var d=0,e=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=e;c[d>>2]=b;b=c[17578]|0;if(!b){np(c[3935]|0,a,d)|0;l=e;return}else{zb[b&1](c[17579]|0,30,a,d);l=e;return}}function Me(a,b){a=a|0;b=b|0;var d=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);c[d>>2]=b;Fe(40,a,d);za()}function Ne(a,b){a=a|0;b=b|0;var d=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);c[d>>2]=b;Fe(50,a,d);za()}function Oe(a,b){a=a|0;b=b|0;var d=0,e=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=e;c[d>>2]=b;b=c[17578]|0;if(!b){b=c[3935]|0;iq(21984,5,1,b)|0;np(b,a,d)|0;l=e;return}else{zb[b&1](c[17579]|0,100,a,d);l=e;return}}function Pe(a,b){a=a|0;b=b|0;var d=0,e=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=e;if(!a){l=e;return}c[d>>2]=b;b=c[17578]|0;if(!b)np(c[3935]|0,a,d)|0;else zb[b&1](c[17579]|0,0,a,d);l=e;return}function Qe(a,b,c){a=a|0;b=b|0;c=c|0;Re(a,22120,b,c);return}function Re(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+80|0;if((l|0)>=(m|0))$(80);r=s+64|0;p=s+48|0;o=s+40|0;n=s+32|0;k=s+24|0;j=s+16|0;i=s+8|0;h=s;q=(b|0)!=0;if(q?(a[b>>0]|0)!=0:0){c[h>>2]=b;c[h+4>>2]=e;Oe(22122,h);if((f|0)!=0&((g|0)!=0&(a[e+1>>0]|0)==91)){Pe(22378,i);c[j>>2]=Fo(b)|0;c[j+4>>2]=71847;Oe(22128,j);i=1;e=22120}else i=1}else i=0;a:do if(g|0){h=g+-1|0;if(!i)while(1){c[k>>2]=d[f>>0];Pe(22134,k);if(!h)break a;else{f=f+1|0;h=h+-1|0}}else i=0;while(1){c[n>>2]=d[f>>0];Pe(22134,n);i=i+1|0;if((h|0)!=0&(i|0)==32){Pe(22139,o);k=Fo(b)|0;i=Fo(e)|0;c[p>>2]=k;c[p+4>>2]=71847;c[p+8>>2]=i;c[p+12>>2]=71847;Oe(22143,p);i=0}if(!h)break;else{f=f+1|0;h=h+-1|0}}}while(0);if(!q){l=s;return}Pe(22378,r);l=s;return}function Se(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;p=l;l=l+80|0;if((l|0)>=(m|0))$(80);n=p+32|0;o=p+24|0;g=p+16|0;j=p+8|0;i=p;h=p+44|0;k=p+40|0;e=p+36|0;f=p+48|0;if(!d){d=b|0?b:22120;if(a[d>>0]|0){c[i>>2]=d;c[i+4>>2]=22151;Oe(22122,i)}Pe(22378,j);l=p;return}if(c[d+12>>2]&4|0){o=wl(d,e)|0;c[g>>2]=c[e>>2];lp(f,30,22159,g)|0;Re(b|0?b:22120,f,o,((c[e>>2]|0)+7|0)>>>3);l=p;return}f=Ok(d,0,h,k)|0;if(!f){d=b|0?b:22120;if(a[d>>0]|0){c[o>>2]=d;c[o+4>>2]=22169;Oe(22122,o)}Pe(22378,n);l=p;return}e=c[h>>2]|0;d=c[k>>2]|0?22184:22186;if(!e)Re(b,d,71847,1);else Re(b,d,f,e);cf(f);l=p;return}function Te(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;i=l;d=b+63+((b|0)==0&1)&-64;e=d;b=l;l=l+((1*e|0)+15&-16)|0;if((l|0)>=(m|0))$((1*e|0)+15&-16|0);if((d|0)!=0&(b&7|0)!=0)do{a[b>>0]=0;b=b+1|0;d=d+-1|0}while((d|0)!=0&(b&7|0)!=0);if(d>>>0>=8){g=d+-8|0;h=g&-8;f=h+8|0;e=b;while(1){j=e;c[j>>2]=0;c[j+4>>2]=0;d=d+-8|0;if(d>>>0<=7)break;else e=e+8|0}b=b+f|0;d=g-h|0}if(!d){l=i;return}while(1){a[b>>0]=0;d=d+-1|0;if(!d)break;else b=b+1|0}l=i;return}function Ue(){return}function Ve(){Tn(33);Be(Qn(c[(zo()|0)>>2]|0)|0,22188)}function We(){if(!(c[17581]|0))Xe();return mg()|0}function Xe(){if(c[17581]|0)return;c[17581]=1;qj(0);dg(c[17582]|0);Mf();if((((((Cg()|0)==0?(vh()|0)==0:0)?(Wh()|0)==0:0)?(wh()|0)==0:0)?(Wf()|0)==0:0)?(jl()|0)==0:0)return;He(22203,123,22212)}function Ye(b){b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;if(!b){Xe();h=22224;return h|0}if((a[b>>0]|0)==1?(a[b+1>>0]|0)==1:0){h=Nl()|0;return h|0}Xe();c=a[b>>0]|0;if(c<<24>>24==48?((a[b+1>>0]|0)+-48|0)>>>0<10:0){h=0;return h|0}d=(c<<24>>24)+-48|0;if(d>>>0<10){e=0;do{e=(e*10|0)+d|0;b=b+1|0;c=a[b>>0]|0;d=(c<<24>>24)+-48|0}while(d>>>0<10);if((e|0)<0){h=0;return h|0}}else e=0;if(c<<24>>24!=46){h=0;return h|0}d=b+1|0;g=a[d>>0]|0;if(g<<24>>24==48?((a[b+2>>0]|0)+-48|0)>>>0<10:0){h=0;return h|0}c=(g<<24>>24)+-48|0;if(c>>>0<10){f=d;d=0;do{d=(d*10|0)+c|0;f=f+1|0;b=a[f>>0]|0;c=(b<<24>>24)+-48|0}while(c>>>0<10);if((d|0)<0){h=0;return h|0}else h=d}else{h=0;f=d;b=g}if(b<<24>>24!=46){h=0;return h|0}d=f+1|0;b=a[d>>0]|0;if(b<<24>>24==48?((a[f+2>>0]|0)+-48|0)>>>0<10:0){h=0;return h|0}c=(b<<24>>24)+-48|0;if(c>>>0<10){b=0;do{b=(b*10|0)+c|0;d=d+1|0;c=(a[d>>0]|0)+-48|0}while(c>>>0<10);if((b|0)<0){h=0;return h|0}}else b=0;if((e|0)<1){h=22224;return h|0}if((e|0)==1){if((h|0)<7){h=22224;return h|0}if((h|0)==7&(b|0)==0){h=22224;return h|0}}h=0;return h|0}function Ze(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+112|0;if((l|0)>=(m|0))$(112);r=s+88|0;p=s+80|0;o=s+72|0;n=s+64|0;h=s+48|0;g=s+24|0;f=s+16|0;e=s+8|0;d=s;j=s+96|0;do switch(a|0){case 31:{Nf();b=0;l=s;return b|0}case 44:{qj(0);wj();b=0;l=s;return b|0}case 51:{b=(zj()|0)!=0&1;l=s;return b|0}case 13:{uj();b=0;l=s;return b|0}case 14:{cg();b=0;l=s;return b|0}case 30:{Xe();Uf(0);b=0;l=s;return b|0}case 37:{Xe();c[17583]=1;b=0;l=s;return b|0}case 24:{Xe();q=(c[b>>2]|0)+(4-1)&~(4-1);r=c[q>>2]|0;c[b>>2]=q+4;Uf(r);b=(Tf()|0)>>>2&1;l=s;return b|0}case 25:{Xe();bg();b=0;l=s;return b|0}case 27:{qj(0);Sf(Tf()|0|1);b=0;l=s;return b|0}case 28:{qj(0);Sf(Tf()|0|2);b=0;l=s;return b|0}case 29:{qj(0);Sf((Tf()|0)&-3);b=0;l=s;return b|0}case 22:{Xe();vj();b=0;l=s;return b|0}case 45:{qj(0);q=(c[b>>2]|0)+(4-1)&~(4-1);r=c[q>>2]|0;c[b>>2]=q+4;Ej(r);b=0;l=s;return b|0}case 46:{qj(0);if(!(c[17581]|0))Xe();if(!(mg()|0)){b=0;l=s;return b|0}Fj();b=0;l=s;return b|0}case 19:{qj(0);q=(c[b>>2]|0)+(4-1)&~(4-1);r=c[q>>2]|0;c[b>>2]=q+4;De(r);b=0;l=s;return b|0}case 20:{q=(c[b>>2]|0)+(4-1)&~(4-1);r=c[q>>2]|0;c[b>>2]=q+4;c[17584]=c[17584]|r;b=0;l=s;return b|0}case 21:{q=(c[b>>2]|0)+(4-1)&~(4-1);r=c[q>>2]|0;c[b>>2]=q+4;c[17584]=c[17584]&~r;b=0;l=s;return b|0}case 36:{Xe();b=0;l=s;return b|0}case 40:{b=c[17581]|0;l=s;return b|0}case 39:{b=c[17585]|0;l=s;return b|0}case 38:{if(c[17585]|0){b=0;l=s;return b|0}Xe();rj(0);c[17585]=1;if(!(c[17581]|0))Xe();mg()|0;b=0;l=s;return b|0}case 47:{qj(0);Xe();b=0;l=s;return b|0}case 48:{qj(0);rj(1);if(!(c[17581]|0))Xe();if(!(mg()|0)){b=0;l=s;return b|0}Gj();b=0;l=s;return b|0}case 52:{b=16777276;l=s;return b|0}case 49:{qj(0);q=(c[b>>2]|0)+(4-1)&~(4-1);r=c[q>>2]|0;c[b>>2]=q+4;xj(r);b=0;l=s;return b|0}case 50:{qj(0);rj(1);q=(c[b>>2]|0)+(4-1)&~(4-1);r=c[q>>2]|0;c[b>>2]=q+4;yj((r|0)!=0&1)|0;b=0;l=s;return b|0}case 70:{sj();b=0;l=s;return b|0}case 53:{i=(c[b>>2]|0)+(4-1)&~(4-1);k=c[i>>2]|0;c[b>>2]=i+4;qj(0);i=k|0?28:27;c[d>>2]=22224;pb[i&63](k,22238,d)|0;c[e>>2]=22264;pb[i&63](k,22251,e)|0;c[f>>2]=22289;pb[i&63](k,22276,f)|0;c[g>>2]=22310;pb[i&63](k,22297,g)|0;pb[i&63](k,22324,s+32|0)|0;pb[i&63](k,22340,s+40|0)|0;c[h>>2]=il()|0;pb[i&63](k,22352,h)|0;e=Kf()|0;pb[i&63](k,22365,s+56|0)|0;a=Lf(0,j)|0;if(a|0){d=0;do{if(c[j>>2]&e|0){c[n>>2]=a;pb[i&63](k,22374,n)|0}d=d+1|0;a=Lf(d,j)|0}while((a|0)!=0)}pb[i&63](k,22378,o)|0;b=(gg()|0)!=0;a=(hg()|0)!=0;c[p>>2]=b?121:110;c[p+4>>2]=a?121:110;pb[i&63](k,22380,p)|0;a=tj(0)|0;switch(a|0){case 1:{q=22423;break}case 2:{q=22418;break}case 3:{q=22411;break}default:He(22203,321,22398)}c[r>>2]=q;c[r+4>>2]=a;pb[i&63](k,22432,r)|0;b=0;l=s;return b|0}case 54:{qj(0);b=(pg()|0)!=0&1;l=s;return b|0}case 55:{if(!(gg()|0)){b=0;l=s;return b|0}b=lg()|0;b=(c[17583]|b|0)==0&1;l=s;return b|0}case 56:{qj(0);if(!(c[17581]|0)){c[17582]=1;b=0;l=s;return b|0}if(!(qg()|0)){b=mg()|0;b=(b|0)!=0;b=b&1;l=s;return b|0}ng(1)|0;b=mg()|0;b=(b|0)!=0;b=b&1;l=s;return b|0}case 57:{Xe();b=ng(1)|0;l=s;return b|0}case 58:{r=(c[b>>2]|0)+(4-1)&~(4-1);a=c[r>>2]|0;c[b>>2]=r+4;r=(c[b>>2]|0)+(4-1)&~(4-1);d=c[r>>2]|0;c[b>>2]=r+4;r=(c[b>>2]|0)+(4-1)&~(4-1);e=c[r>>2]|0;c[b>>2]=r+4;r=(c[b>>2]|0)+(4-1)&~(4-1);f=c[r>>2]|0;c[b>>2]=r+4;r=(c[b>>2]|0)+(4-1)&~(4-1);g=c[r>>2]|0;c[b>>2]=r+4;r=(c[b>>2]|0)+(4-1)&~(4-1);h=c[r>>2]|0;c[b>>2]=r+4;r=(c[b>>2]|0)+(4-1)&~(4-1);i=c[r>>2]|0;c[b>>2]=r+4;r=(c[b>>2]|0)+(4-1)&~(4-1);j=c[r>>2]|0;c[b>>2]=r+4;if(!(c[17581]|0))Xe();if(!(mg()|0)){b=176;l=s;return b|0}b=Jj(a,d,e,f,g,h,i,j)|0;l=s;return b|0}case 59:{r=(c[b>>2]|0)+(4-1)&~(4-1);a=c[r>>2]|0;c[b>>2]=r+4;r=(c[b>>2]|0)+(4-1)&~(4-1);d=c[r>>2]|0;c[b>>2]=r+4;r=(c[b>>2]|0)+(4-1)&~(4-1);e=c[r>>2]|0;c[b>>2]=r+4;if(!(c[17581]|0))Xe();if(!(mg()|0)){b=176;l=s;return b|0}b=Kj(a,d,e)|0;l=s;return b|0}case 60:{q=(c[b>>2]|0)+(4-1)&~(4-1);r=c[q>>2]|0;c[b>>2]=q+4;Lj(r);b=0;l=s;return b|0}case 61:{q=(c[b>>2]|0)+(4-1)&~(4-1);r=c[q>>2]|0;c[b>>2]=q+4;switch(r|0){case 30111:{b=Un(1120)|0;l=s;return b|0}case 30112:{b=Vn(1120)|0;l=s;return b|0}case 30113:{b=Wn(1120)|0;l=s;return b|0}case 30114:{b=Xn(1120)|0;l=s;return b|0}default:{b=61;l=s;return b|0}}}case 63:{q=(c[b>>2]|0)+(4-1)&~(4-1);r=c[q>>2]|0;c[b>>2]=q+4;b=Jf(r)|0;l=s;return b|0}case 64:{if(c[17581]|0){b=1;l=s;return b|0}qj(0);ig();b=0;l=s;return b|0}case 65:{r=(c[b>>2]|0)+(4-1)&~(4-1);a=c[r>>2]|0;c[b>>2]=r+4;if((a|0)<=0){b=0;l=s;return b|0}qj(a);b=0;l=s;return b|0}case 66:{r=(c[b>>2]|0)+(4-1)&~(4-1);a=c[r>>2]|0;c[b>>2]=r+4;if(!a){b=0;l=s;return b|0}c[a>>2]=tj(c[17581]^1)|0;b=0;l=s;return b|0}case 67:{qj(0);Sf(Tf()|0|8);b=0;l=s;return b|0}case 68:{qj(0);Sf(Tf()|0|16);b=0;l=s;return b|0}case 72:case 71:{b=69;l=s;return b|0}case 62:case 23:{b=0;l=s;return b|0}default:{qj(0);b=61;l=s;return b|0}}while(0);return 0}function _e(a){a=a|0;var b=0;b=c[17586]|0;if(!b)a=Of(a)|0;else a=tb[b&15](a)|0;if(a|0){b=a;return b|0}b=zo()|0;a=c[b>>2]|0;if(!a){Tn(12);a=c[b>>2]|0}Qn(a)|0;b=0;return b|0}function $e(a){a=a|0;var b=0,d=0;do if(c[17583]|0){if(hg()|0){c[17583]=0;d=5;break}if(c[17583]|0){b=c[17586]|0;if(!b){b=Of(a)|0;break}else{b=tb[b&15](a)|0;break}}else d=5}else d=5;while(0);do if((d|0)==5){b=c[17587]|0;if(!b){b=Pf(a)|0;break}else{b=tb[b&15](a)|0;break}}while(0);if(b|0){d=b;return d|0}a=zo()|0;b=c[a>>2]|0;if(!b){Tn(12);b=c[a>>2]|0}Qn(b)|0;d=0;return d|0}function af(a){a=a|0;var b=0;do if(c[17583]|0){if(hg()|0){c[17583]=0;break}if(c[17583]|0){b=0;return b|0}}while(0);b=c[17588]|0;if(!b){b=ag(a)|0;return b|0}else{b=tb[b&15](a)|0;return b|0}return 0}function bf(a,b){a=a|0;b=b|0;var d=0;if(!a){d=c[17586]|0;if(!d)d=Of(b)|0;else d=tb[d&15](b)|0;if(d|0){a=d;return a|0}b=zo()|0;d=c[b>>2]|0;if(!d){Tn(12);d=c[b>>2]|0}Qn(d)|0;a=0;return a|0}if(!b){d=c[(zo()|0)>>2]|0;b=c[17590]|0;if(!b)Rf(a);else rb[b&7](a);if(!d){a=0;return a|0}Tn(d);a=0;return a|0}d=c[17589]|0;if(!d)d=Qf(a,b)|0;else d=yb[d&7](a,b)|0;if(d|0){a=d;return a|0}if(c[(zo()|0)>>2]|0){a=0;return a|0}Tn(12);a=0;return a|0}function cf(a){a=a|0;var b=0,d=0;if(!a)return;b=c[(zo()|0)>>2]|0;d=c[17590]|0;if(!d)Rf(a);else rb[d&7](a);if(!b)return;Tn(b);return}function df(a,b){a=a|0;b=b|0;var d=0;d=S(b,a)|0;if(b|0?((d>>>0)/(b>>>0)|0|0)!=(a|0):0){Tn(12);d=0;return d|0}a=c[17586]|0;if(!a)a=Of(d)|0;else a=tb[a&15](d)|0;if(a|0){Yq(a|0,0,d|0)|0;d=a;return d|0}b=zo()|0;a=c[b>>2]|0;if(!a){Tn(12);a=c[b>>2]|0}Qn(a)|0;d=0;return d|0}function ef(a,b){a=a|0;b=b|0;var c=0;c=S(b,a)|0;if(b|0?((c>>>0)/(b>>>0)|0|0)!=(a|0):0){Tn(12);c=0;return c|0}a=$e(c)|0;if(!a){c=0;return c|0}Yq(a|0,0,c|0)|0;c=a;return c|0}function ff(a){a=a|0;var b=0,d=0,e=0,f=0;e=Fo(a)|0;do if(c[17583]|0){if(hg()|0){c[17583]=0;f=6;break}if(c[17583]|0){d=e+1|0;f=10}else f=6}else f=6;while(0);if((f|0)==6){b=c[17588]|0;if(!b)d=ag(a)|0;else d=tb[b&15](a)|0;b=e+1|0;if(d){b=$e(b)|0;if(!b){a=0;return a|0}}else{d=b;f=10}}if((f|0)==10){b=c[17586]|0;if(!b)b=Of(d)|0;else b=tb[b&15](d)|0;if(!b){d=zo()|0;b=c[d>>2]|0;if(!b){Tn(12);b=c[d>>2]|0}Qn(b)|0;a=0;return a|0}}Mp(b,a)|0;a=b;return a|0}function gf(a){a=a|0;var b=0,d=0,e=0;while(1){b=c[17586]|0;if(!b)b=Of(a)|0;else b=tb[b&15](a)|0;if(b|0){a=11;break}d=zo()|0;b=c[d>>2]|0;if(!b){Tn(12);b=c[d>>2]|0}Qn(b)|0;e=(gg()|0)==0;b=c[17591]|0;if(!(e&(b|0)!=0)){a=10;break}if(!(pb[b&63](c[17592]|0,a,0)|0)){a=10;break}}if((a|0)==10)Be(Qn(c[d>>2]|0)|0,0);else if((a|0)==11)return b|0;return 0}function hf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;while(1){d=bf(a,b)|0;if(d|0){g=13;break}f=(gg()|0)==0;e=c[17591]|0;if(!(f&(e|0)!=0)){g=12;break}f=c[17592]|0;do if(c[17583]|0)if(!(hg()|0))if(!(c[17583]|0)){g=8;break}else{d=0;break}else{c[17583]=0;g=8;break}else g=8;while(0);do if((g|0)==8){g=0;d=c[17588]|0;if(!d){d=ag(a)|0;break}else{d=tb[d&15](a)|0;break}}while(0);if(!(pb[e&63](f,b,d|0?3:2)|0)){g=12;break}}if((g|0)==12)Be(Qn(c[(zo()|0)>>2]|0)|0,0);else if((g|0)==13)return d|0;return 0}function jf(a){a=a|0;var b=0,d=0;while(1){d=$e(a)|0;if(d|0){b=6;break}d=(gg()|0)==0;b=c[17591]|0;if(!(d&(b|0)!=0)){b=5;break}if(!(pb[b&63](c[17592]|0,a,1)|0)){b=5;break}}if((b|0)==5){d=Qn(c[(zo()|0)>>2]|0)|0;Be(d,ze(22449)|0)}else if((b|0)==6)return d|0;return 0}function kf(a,b){a=a|0;b=b|0;var d=0;d=S(b,a)|0;if(b|0?((d>>>0)/(b>>>0)|0|0)!=(a|0):0){Tn(12);Be(Qn(c[(zo()|0)>>2]|0)|0,0)}b=gf(d)|0;Yq(b|0,0,d|0)|0;return b|0}function lf(a,b){a=a|0;b=b|0;var d=0;d=S(b,a)|0;if(b|0?((d>>>0)/(b>>>0)|0|0)!=(a|0):0){Tn(12);Be(Qn(c[(zo()|0)>>2]|0)|0,0)}b=jf(d)|0;Yq(b|0,0,d|0)|0;return b|0}function mf(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;do{b=ff(a)|0;if(b|0){f=15;break}e=Fo(a)|0;do if(c[17583]|0)if(!(hg()|0))if(!(c[17583]|0)){f=7;break}else{b=0;break}else{c[17583]=0;f=7;break}else f=7;while(0);do if((f|0)==7){f=0;b=c[17588]|0;if(!b){b=ag(a)|0;break}else{b=tb[b&15](a)|0;break}}while(0);d=(b|0)!=0;g=(gg()|0)==0;b=c[17591]|0;if(!(g&(b|0)!=0))break}while((pb[b&63](c[17592]|0,e,d&1)|0)!=0);if((f|0)==15)return b|0;b=Qn(c[(zo()|0)>>2]|0)|0;if(!d){g=0;Be(b,g)}g=ze(22449)|0;Be(b,g);return 0}function nf(a){a=a|0;var b=0;b=(gg()|0)==0;return (b?c[17584]&a:0)|0}function of(a,b){a=a|0;b=b|0;xh(a,b);oj(a,b);return}function pf(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;p=l;l=l+16|0;if((l|0)>=(m|0))$(16);o=(e|0)==0?p+4|0:e;n=(f|0)==0?p:f;c[n>>2]=0;c[o>>2]=0;a:do if(!b)e=0;else{if((a[b>>0]|0)!=40){c[n>>2]=204;e=0;break}k=d+-1|0;e=0;d=0;j=0;i=0;f=b;b=40;b:while(1){g=b&255;c:do if(j)if(b<<24>>24==58){b=d+j|0;if(k>>>0<b>>>0){f=9;break b}d=b;h=0;b=i;f=f+j|0;break}else{if((b+-48&255)>=10){f=13;break b}h=(j*10|0)+-48+g|0;b=i;break}else switch(b<<24>>24){case 40:{if(i|0){f=16;break b}e=e+1|0;h=0;b=0;break c}case 41:{if(!e){f=19;break b}if(i|0){f=21;break b}e=e+-1|0;if(!e){f=23;break b}else{h=0;b=0;break c}}case 91:if(!i){h=0;b=f;break c}else{f=25;break b}case 93:if(!i){f=27;break b}else{h=0;b=0;break c}default:{if((b+-48&255)>=10){f=32;break b}if(b<<24>>24==48){f=30;break b}h=g+-48|0;b=i;break c}}while(0);g=f+1|0;d=d+1|0;if(k>>>0<d>>>0){f=5;break}j=h;i=b;f=g;b=a[g>>0]|0}switch(f|0){case 5:{c[o>>2]=d;c[n>>2]=202;e=0;break a}case 9:{c[o>>2]=d;c[n>>2]=202;e=0;break a}case 13:{c[o>>2]=d;c[n>>2]=201;e=0;break a}case 16:{c[o>>2]=d;c[n>>2]=209;e=0;break a}case 19:{c[o>>2]=d;c[n>>2]=203;e=0;break a}case 21:{c[o>>2]=d;c[n>>2]=209;e=0;break a}case 23:{e=d+1|0;break a}case 25:{c[o>>2]=d;c[n>>2]=208;e=0;break a}case 27:{c[o>>2]=d;c[n>>2]=209;e=0;break a}case 30:{c[o>>2]=d;c[n>>2]=207;e=0;break a}case 32:switch(b<<24>>24){case 92:case 38:{c[o>>2]=d;c[n>>2]=210;e=0;break a}default:{c[o>>2]=d;c[n>>2]=205;e=0;break a}}}}while(0);l=p;return e|0}function qf(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0;i=l;l=l+16|0;if((l|0)>=(m|0))$(16);j=i;c[j>>2]=h;h=rf(a,b,d,e,f,g,j)|0;l=i;return h|0}function rf(b,e,f,g,h,i,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0;T=l;l=l+64|0;if((l|0)>=(m|0))$(64);P=T+8|0;O=T;M=T+16|0;N=T+12|0;if(!b){S=45;l=T;return S|0}c[b>>2]=0;if(!f){S=45;l=T;return S|0}R=(e|0)==0?T+52|0:e;k=g+2|0;p=(g|0)==0;if(!p?(af(f)|0)!=0:0)e=$e(k)|0;else e=_e(k)|0;s=e;a:do if(!e){n=Qn(c[(zo()|0)>>2]|0)|0;c[R>>2]=0;o=s;S=283}else{b:do if(p){q=f;g=0;o=s;e=s;S=274}else{K=(h|0)!=0;L=(i|0)==0;q=f;J=g;A=0;y=0;x=0;r=0;B=0;C=0;D=0;E=0;F=0;G=0;g=0;p=s;e=s;c:while(1){w=(r|0)!=0;if(!(w|(x|0)==0))if(!(No(22485,a[q>>0]|0,71)|0)){u=q;v=u-x|0;h=p;t=e-p|0;do if((t+3+v|0)>>>0>=k>>>0){s=k+6+(v<<1)|0;if(s>>>0<=k>>>0){e=67;S=18;break c}h=bf(h,s)|0;if(!h){h=Qn(c[(zo()|0)>>2]|0)|0;if(!h)break;else{e=h;S=18;break c}}else{p=h;k=s;e=h+t|0;break}}while(0);H=e;I=H+1|0;a[H>>0]=1;S=v&65535;a[I>>0]=S;a[I+1>>0]=S>>8;H=H+3|0;cr(H|0,x|0,v|0)|0;I=0;H=H+v|0;S=20}else{z=y;h=q;w=J;r=0;t=G}else{I=x;H=e;S=20}d:do if((S|0)==20){S=0;if(y|0){e=a[q>>0]|0;if(F|0)switch(e<<24>>24|0){case 92:case 39:case 34:case 114:case 102:case 110:case 118:case 116:case 98:{F=0;z=y;x=I;h=q;w=J;t=G;e=H;break d}case 55:case 54:case 53:case 52:case 51:case 50:case 49:case 48:{if(J>>>0<=2){S=26;break c}if((a[q+1>>0]&-8)<<24>>24!=48){S=26;break c}e=q+2|0;if((a[e>>0]&-8)<<24>>24!=48){S=26;break c}F=0;z=y;x=I;h=e;w=J+-2|0;t=G;e=H;break d}case 120:{if(J>>>0<=2){S=33;break c}e=a[q+1>>0]|0;if((e+-48&255)>=10)switch(e<<24>>24){case 65:case 66:case 67:case 68:case 69:case 70:case 97:case 98:case 99:case 100:case 101:case 102:break;default:{S=33;break c}}h=q+2|0;e=a[h>>0]|0;if((e+-48&255)>=10)switch(e<<24>>24){case 65:case 66:case 67:case 68:case 69:case 70:case 97:case 98:case 99:case 100:case 101:case 102:break;default:{S=33;break c}}F=0;z=y;x=I;w=J+-2|0;t=G;e=H;break d}case 13:{h=q+1|0;w=(a[h>>0]|0)==10;F=0;z=y;x=I;h=w?h:q;w=(w<<31>>31)+J|0;t=G;e=H;break d}case 10:{h=q+1|0;w=(a[h>>0]|0)==13;F=0;z=y;x=I;h=w?h:q;w=(w<<31>>31)+J|0;t=G;e=H;break d}default:{S=37;break c}}if(e<<24>>24==92){F=1;z=y;x=I;h=q;w=J;t=G;e=H;break}if(e<<24>>24!=34){F=0;z=y;x=I;h=q;w=J;t=G;e=H;break}s=y+1|0;t=q;v=t-s|0;e=p;u=H-p|0;do if((v+3+u|0)>>>0>=k>>>0){h=(v<<1)+6+k|0;if(h>>>0<=k>>>0){e=67;S=81;break c}e=bf(e,h)|0;if(!e){e=Qn(c[(zo()|0)>>2]|0)|0;if(!e){e=H;break}else{S=81;break c}}else{p=e;k=h;e=e+u|0;break}}else e=H;while(0);x=e+1|0;a[e>>0]=1;a[x>>0]=0;a[x+1>>0]=0;e=e+3|0;y=e;e:do if(v){w=v;h=0;while(1){t=a[s>>0]|0;u=t&255;f:do if(!h){if(t<<24>>24==92){h=1;u=w;break}a[e>>0]=t;h=0;u=w;e=e+1|0}else do switch(t<<24>>24){case 98:{a[e>>0]=8;h=0;u=w;e=e+1|0;break f}case 116:{a[e>>0]=9;h=0;u=w;e=e+1|0;break f}case 118:{a[e>>0]=11;h=0;u=w;e=e+1|0;break f}case 110:{a[e>>0]=10;h=0;u=w;e=e+1|0;break f}case 102:{a[e>>0]=12;h=0;u=w;e=e+1|0;break f}case 114:{a[e>>0]=13;h=0;u=w;e=e+1|0;break f}case 34:{a[e>>0]=34;h=0;u=w;e=e+1|0;break f}case 39:{a[e>>0]=39;h=0;u=w;e=e+1|0;break f}case 92:{a[e>>0]=92;h=0;u=w;e=e+1|0;break f}case 13:{t=s+1|0;if(w>>>0<=1)break e;H=(a[t>>0]|0)==10;h=0;u=(H<<31>>31)+w|0;s=H?t:s;break f}case 10:{t=s+1|0;if(w>>>0<=1)break e;H=(a[t>>0]|0)==13;h=0;u=(H<<31>>31)+w|0;s=H?t:s;break f}case 120:{if(w>>>0<=2){h=0;u=w;break f}t=a[s+1>>0]|0;if((t+-48&255)>=10)switch(t<<24>>24){case 65:case 66:case 67:case 68:case 69:case 70:case 97:case 98:case 99:case 100:case 101:case 102:break;default:{h=0;u=w;break f}}v=s+2|0;u=a[v>>0]|0;if((u+-48&255)>=10)switch(u<<24>>24){case 65:case 66:case 67:case 68:case 69:case 70:case 97:case 98:case 99:case 100:case 101:case 102:break;default:{h=0;u=w;break f}}h=t&255;if((t&255)<58)s=h+-48|0;else s=h+10+((t&255)<71?-65:-97)|0;h=u&255;if((u&255)<58)h=h+-48|0;else h=h+10+((u&255)<71?-65:-97)|0;a[e>>0]=h+(s<<4);h=0;u=w+-2|0;e=e+1|0;s=v;break f}default:{if(!(w>>>0>2&(t&-8)<<24>>24==48)){h=0;u=w;break f}h=a[s+1>>0]|0;if((h&-8)<<24>>24!=48){h=0;u=w;break f}v=s+2|0;t=a[v>>0]|0;if((t&-8)<<24>>24!=48){h=0;u=w;break f}a[e>>0]=(u<<6)+80+((h&255)<<3)+(t&255);h=0;u=w+-2|0;e=e+1|0;s=v;break f}}while(0);while(0);w=u+-1|0;if(!w)break;else s=s+1|0}}while(0);F=e-y&65535;a[x>>0]=F;a[x+1>>0]=F>>8;F=0;z=0;x=I;h=q;w=J;t=G;break}if(w){e=a[q>>0]|0;h=e<<24>>24;if(kp(h)|0){E=E+1|0;z=0;x=I;h=q;w=J;t=G;e=H;break}if(e<<24>>24!=35)switch(h|0){case 10:case 13:case 12:case 11:case 9:case 32:{z=0;x=I;h=q;w=J;t=G;e=H;break d}default:{S=112;break c}}if(E&1|0){S=87;break c}t=(E|0)/2|0;e=p;s=H-p|0;do if((t+3+s|0)>>>0>=k>>>0){h=(t<<1)+6+k|0;if(h>>>0<=k>>>0){e=67;S=93;break c}e=bf(e,h)|0;if(!e){e=Qn(c[(zo()|0)>>2]|0)|0;if(!e){e=H;break}else{S=93;break c}}else{p=e;k=h;e=e+s|0;break}}else e=H;while(0);h=e+1|0;a[e>>0]=1;H=t&65535;a[h>>0]=H;a[h+1>>0]=H>>8;e=e+3|0;h=r+1|0;if(h>>>0>=q>>>0){z=0;x=I;h=q;w=J;r=0;t=G;break}while(1){s=r;r=h;g:while(1){h=a[r>>0]|0;switch(h<<24>>24|0){case 10:case 13:case 12:case 11:case 9:case 32:break;default:break g}h=r+1|0;if(h>>>0<q>>>0){s=r;r=h}else{z=0;x=I;h=q;w=J;r=0;t=G;break d}}r=h&255;h=r+-48|0;do if(h>>>0>=10)if((r+-65|0)>>>0<6){h=r+-55|0;break}else{h=(r+-97|0)>>>0<6?r+-87|0:0;break}while(0);r=s+2|0;h:do if(r>>>0<q>>>0){i:while(1){s=a[r>>0]|0;switch(s<<24>>24|0){case 10:case 13:case 12:case 11:case 9:case 32:break;default:break i}r=r+1|0;if(r>>>0>=q>>>0)break h}t=h<<4;s=s&255;h=s+-48|0;do if(h>>>0>=10)if((s+-65|0)>>>0<6){h=s+-55|0;break}else{h=(s+-97|0)>>>0<6?s+-87|0:0;break}while(0);h=h+t|0}while(0);H=e;e=H+1|0;a[H>>0]=h;h=r+1|0;if(h>>>0>=q>>>0){z=0;x=I;h=q;w=J;r=0;t=G;break d}}}if(B|0){B=(a[q>>0]|0)==124?0:B;z=0;x=I;h=q;w=J;r=0;t=G;e=H;break}if(A|0){e=a[q>>0]|0;if((e+-48&255)<10){B=0;z=0;x=I;h=q;w=J;r=0;t=G;e=H;break}switch(e<<24>>24){case 34:{A=0;B=0;F=0;z=q;x=I;h=q;w=J;r=0;t=G;e=H;break d}case 58:{s=Fq(A)|0;if(s>>>0>(J+-1|0)>>>0){S=119;break c}e=p;r=H-p|0;do if((r+3+s|0)>>>0>=k>>>0){h=k+6+(s<<1)|0;if(h>>>0<=k>>>0){e=67;S=125;break c}e=bf(e,h)|0;if(!e){e=Qn(c[(zo()|0)>>2]|0)|0;if(!e){e=H;break}else{S=125;break c}}else{p=e;k=h;e=e+r|0;break}}else e=H;while(0);A=e+1|0;a[e>>0]=1;B=s&65535;a[A>>0]=B;a[A+1>>0]=B>>8;e=e+3|0;cr(e|0,q+1|0,s|0)|0;A=0;B=0;z=0;x=I;h=q+s|0;w=J-s|0;r=0;t=G;e=e+s|0;break d}case 35:{A=0;B=0;E=0;z=0;x=I;h=q;w=J;r=q;t=G;e=H;break d}case 124:{A=0;B=q;z=0;x=I;h=q;w=J;r=0;t=G;e=H;break d}default:{S=129;break c}}}h=a[q>>0]|0;if(!D)switch(h<<24>>24){case 34:{A=0;B=0;D=0;F=0;z=q;x=I;h=q;w=J;r=0;t=G;e=H;break d}case 40:{if(C|0){S=239;break c}e=p;r=H-p|0;do if((r+3|0)>>>0>=k>>>0){h=k+6|0;if(k>>>0>=4294967290){e=67;S=245;break c}e=bf(e,h)|0;if(!e){e=Qn(c[(zo()|0)>>2]|0)|0;if(!e){e=H;break}else{S=245;break c}}else{p=e;k=h;e=e+r|0;break}}else e=H;while(0);a[e>>0]=3;A=0;B=0;C=0;D=0;g=g+1|0;z=0;x=I;h=q;w=J;r=0;t=G;e=e+1|0;break d}case 41:{if(C|0){S=248;break c}e=p;r=H-p|0;do if((r+3|0)>>>0>=k>>>0){h=k+6|0;if(k>>>0>=4294967290){e=67;S=254;break c}e=bf(e,h)|0;if(!e){e=Qn(c[(zo()|0)>>2]|0)|0;if(!e){e=H;break}else{S=254;break c}}else{p=e;k=h;e=e+r|0;break}}else e=H;while(0);a[e>>0]=4;A=0;B=0;C=0;D=0;g=g+-1|0;z=0;x=I;h=q;w=J;r=0;t=G;e=e+1|0;break d}case 35:{A=0;B=0;D=0;E=0;z=0;x=I;h=q;w=J;r=q;t=G;e=H;break d}case 124:{A=0;B=q;D=0;z=0;x=I;h=q;w=J;r=0;t=G;e=H;break d}case 91:if(!C){A=0;B=0;C=q;D=0;z=0;x=I;h=q;w=J;r=0;t=G;e=H;break d}else{S=259;break c}case 93:if(!C){S=261;break c}else{A=0;B=0;C=0;D=0;z=0;x=I;h=q;w=J;r=0;t=G;e=H;break d}default:{if((h+-48&255)<10)if(h<<24>>24==48){S=264;break c}else{A=q;B=0;D=0;z=0;x=I;h=q;w=J;r=0;t=G;e=H;break d}e=h<<24>>24;if(No(22485,e,71)|0){A=0;B=0;D=0;z=0;x=q;h=q;w=J;r=0;t=G;e=H;break d}switch(e|0){case 10:case 13:case 12:case 11:case 9:case 32:{A=0;B=0;D=0;z=0;x=I;h=q;w=J;r=0;t=G;e=H;break d}default:{}}if(h<<24>>24==123){S=268;break c}if(No(22584,e,3)|0){S=270;break c}if(K&h<<24>>24==37){A=0;B=0;D=q;z=0;x=I;h=q;w=J;r=0;t=G;e=H;break d}else{S=272;break c}}}switch(h<<24>>24){case 77:case 109:{c[M>>2]=0;s=(a[q>>0]|0)==109?1:5;if(L){t=(c[j>>2]|0)+(4-1)&~(4-1);u=c[t>>2]|0;c[j>>2]=t+4;t=G}else{u=c[c[i+(G<<2)>>2]>>2]|0;t=G+1|0}if(!(Ll(u,2)|0)){if(Tk(s,0,0,M,u)|0){S=152;break c}e=c[M>>2]|0;h=p;r=H-p|0;do if((r+3+e|0)>>>0>=k>>>0){e=k+6+(e<<1)|0;if(e>>>0<=k>>>0){e=67;S=158;break c}h=bf(h,e)|0;if(!h){e=Qn(c[(zo()|0)>>2]|0)|0;if(!e){e=H;break}else{S=158;break c}}else{p=h;k=e;e=h+r|0;break}}else e=H;while(0);h=p;do if(!(af(h)|0)){if(!(Ll(u,1)|0))break;r=$e(k)|0;if(!r){S=163;break c}e=e-p|0;cr(r|0,h|0,e|0)|0;cf(p);p=r;e=r+e|0}while(0);H=e+1|0;a[e>>0]=1;G=c[M>>2]&65535;a[H>>0]=G;a[H+1>>0]=G>>8;e=e+3|0;if(Tk(s,e,c[M>>2]|0,M,u)|0){S=165;break c}e=e+(c[M>>2]|0)|0}else{s=wl(u,N)|0;e=((c[N>>2]|0)+7|0)>>>3;c[M>>2]=e;if((s|0)!=0&(e|0)!=0){h=p;r=H-p|0;do if((r+3+e|0)>>>0>=k>>>0){e=k+6+(e<<1)|0;if(e>>>0<=k>>>0){e=67;S=142;break c}h=bf(h,e)|0;if(!h){e=Qn(c[(zo()|0)>>2]|0)|0;if(!e){e=H;break}else{S=142;break c}}else{p=h;k=e;e=h+r|0;break}}else e=H;while(0);h=p;do if(!(af(h)|0)){if(!(Ll(u,1)|0))break;r=$e(k)|0;if(!r){S=147;break c}e=e-p|0;cr(r|0,h|0,e|0)|0;cf(p);p=r;e=r+e|0}while(0);H=e+1|0;a[e>>0]=1;G=c[M>>2]&65535;a[H>>0]=G;a[H+1>>0]=G>>8;e=e+3|0;cr(e|0,s|0,c[M>>2]|0)|0;e=e+(c[M>>2]|0)|0}else e=H}A=0;B=0;D=0;z=0;x=I;h=q;w=J;r=0;break d}case 115:{if(L){t=(c[j>>2]|0)+(4-1)&~(4-1);s=c[t>>2]|0;c[j>>2]=t+4;t=G}else{s=c[c[i+(G<<2)>>2]>>2]|0;t=G+1|0}u=Fo(s)|0;e=p;r=H-p|0;do if((r+3+u|0)>>>0>=k>>>0){h=k+6+(u<<1)|0;if(h>>>0<=k>>>0){e=67;S=178;break c}e=bf(e,h)|0;if(!e){e=Qn(c[(zo()|0)>>2]|0)|0;if(!e){e=H;break}else{S=178;break c}}else{p=e;k=h;e=e+r|0;break}}else e=H;while(0);A=e+1|0;a[e>>0]=1;B=u&65535;a[A>>0]=B;a[A+1>>0]=B>>8;e=e+3|0;cr(e|0,s|0,u|0)|0;A=0;B=0;D=0;z=0;x=I;h=q;w=J;r=0;e=e+u|0;break d}case 98:{if(L){u=(c[j>>2]|0)+(4-1)&~(4-1);v=c[u>>2]|0;c[j>>2]=u+4;u=(c[j>>2]|0)+(4-1)&~(4-1);t=c[u>>2]|0;c[j>>2]=u+4;u=G}else{t=c[c[i+(G+1<<2)>>2]>>2]|0;v=c[c[i+(G<<2)>>2]>>2]|0;u=G+2|0}e=p;r=H-p|0;do if((r+3+v|0)>>>0>=k>>>0){h=k+6+(v<<1)|0;if(h>>>0<=k>>>0){n=67;S=187;break c}s=bf(e,h)|0;if(!s){h=Qn(c[(zo()|0)>>2]|0)|0;if(!h){e=H;break}else{n=h;S=187;break c}}else{p=s;k=h;e=s+r|0;break}}else e=H;while(0);do if(v){h=p;if(af(h)|0)break;if(!(af(t)|0))break;r=$e(k)|0;if(!r){S=193;break c}e=e-p|0;cr(r|0,h|0,e|0)|0;cf(p);p=r;e=r+e|0}while(0);A=e+1|0;a[e>>0]=1;B=v&65535;a[A>>0]=B;a[A+1>>0]=B>>8;e=e+3|0;cr(e|0,t|0,v|0)|0;A=0;B=0;D=0;z=0;x=I;h=q;w=J;r=0;t=u;e=e+v|0;break d}case 100:{if(L){t=(c[j>>2]|0)+(4-1)&~(4-1);e=c[t>>2]|0;c[j>>2]=t+4;t=G}else{e=c[c[i+(G<<2)>>2]>>2]|0;t=G+1|0}c[O>>2]=e;Pp(M,22578,O)|0;s=Fo(M)|0;e=p;r=H-p|0;do if((r+3+s|0)>>>0>=k>>>0){h=k+6+(s<<1)|0;if(h>>>0<=k>>>0){e=67;S=204;break c}e=bf(e,h)|0;if(!e){e=Qn(c[(zo()|0)>>2]|0)|0;if(!e){e=H;break}else{S=204;break c}}else{p=e;k=h;e=e+r|0;break}}else e=H;while(0);A=e+1|0;a[e>>0]=1;B=s&65535;a[A>>0]=B;a[A+1>>0]=B>>8;e=e+3|0;cr(e|0,M|0,s|0)|0;A=0;B=0;D=0;z=0;x=I;h=q;w=J;r=0;e=e+s|0;break d}case 117:{if(L){t=(c[j>>2]|0)+(4-1)&~(4-1);e=c[t>>2]|0;c[j>>2]=t+4;t=G}else{e=c[c[i+(G<<2)>>2]>>2]|0;t=G+1|0}c[P>>2]=e;Pp(M,22581,P)|0;s=Fo(M)|0;e=p;r=H-p|0;do if((r+3+s|0)>>>0>=k>>>0){h=k+6+(s<<1)|0;if(h>>>0<=k>>>0){e=67;S=214;break c}e=bf(e,h)|0;if(!e){e=Qn(c[(zo()|0)>>2]|0)|0;if(!e){e=H;break}else{S=214;break c}}else{p=e;k=h;e=e+r|0;break}}else e=H;while(0);A=e+1|0;a[e>>0]=1;B=s&65535;a[A>>0]=B;a[A+1>>0]=B>>8;e=e+3|0;cr(e|0,M|0,s|0)|0;A=0;B=0;D=0;z=0;x=I;h=q;w=J;r=0;e=e+s|0;break d}case 83:{if(L){y=(c[j>>2]|0)+(4-1)&~(4-1);w=c[y>>2]|0;c[j>>2]=y+4;y=G}else{w=c[c[i+(G<<2)>>2]>>2]|0;y=G+1|0}if(!w){A=0;B=0;D=0;z=0;x=I;h=q;w=J;r=0;t=y;e=H;break d}e=a[w>>0]|0;if(!(e<<24>>24)){A=0;B=0;D=0;z=0;x=I;h=q;w=J;r=0;t=y;e=H;break d}v=w;u=0;r=w;h=0;while(1){s=r;r=e;j:while(1){t=s+1|0;switch(r<<24>>24){case 3:{S=225;break j}case 4:{S=227;break j}case 1:{e=t+(((d[t>>0]|d[t+1>>0]<<8)&65535)+2)|0;break}default:e=t}r=a[e>>0]|0;if(!(r<<24>>24)){A=0;B=0;D=0;z=0;x=I;h=q;w=J;r=0;t=y;e=H;break d}else s=e}if((S|0)==225){S=0;e=u+1|0;h=(u|0)==0?s-v|0:h}else if((S|0)==227){S=0;e=u+-1|0;if(!e)break}s=a[t>>0]|0;if(!(s<<24>>24)){A=0;B=0;D=0;z=0;x=I;h=q;w=J;r=0;t=y;e=H;break d}else{u=e;r=t;e=s}}u=t-v|0;if(!u){A=0;B=0;D=0;z=0;x=I;h=q;w=J;r=0;t=y;e=H;break d}e=p;s=H-p|0;do if((s+3+u|0)>>>0>=k>>>0){r=k+6+(u<<1)|0;if(r>>>0<=k>>>0){e=67;S=235;break c}e=bf(e,r)|0;if(!e){e=Qn(c[(zo()|0)>>2]|0)|0;if(!e){e=H;break}else{S=235;break c}}else{p=e;k=r;e=e+s|0;break}}else e=H;while(0);cr(e|0,w+h|0,u|0)|0;A=0;B=0;D=0;z=0;x=I;h=q;w=J;r=0;t=y;e=e+u|0;break d}default:{S=236;break c}}}while(0);q=h+1|0;J=w+-1|0;if(!J){o=p;S=274;break b}else{y=z;G=t}}switch(S|0){case 18:{c[R>>2]=u-f;o=p;break b}case 26:{c[R>>2]=q-f;e=206;o=p;break b}case 33:{c[R>>2]=q-f;e=206;o=p;break b}case 37:{c[R>>2]=q-f;e=206;o=p;break b}case 81:{c[R>>2]=t-f;o=p;break b}case 87:{c[R>>2]=q-f;e=212;o=p;break b}case 93:{c[R>>2]=q-f;o=p;break b}case 112:{c[R>>2]=q-f;e=211;o=p;break b}case 119:{c[R>>2]=q-f;e=202;o=p;break b}case 125:{c[R>>2]=q-f;o=p;break b}case 129:{c[R>>2]=q-f;e=201;o=p;break b}case 142:{c[R>>2]=q-f;o=p;S=150;break}case 147:{e=Qn(c[(zo()|0)>>2]|0)|0;o=p;S=150;break}case 152:{He(22556,1433,22563);break}case 158:{c[R>>2]=q-f;n=e;o=p;Q=k;break}case 163:{n=Qn(c[(zo()|0)>>2]|0)|0;o=p;Q=k;break}case 165:{He(22556,1460,22563);break}case 178:{c[R>>2]=q-f;o=p;break b}case 187:{c[R>>2]=q-f;g=p;break a}case 193:{n=Qn(c[(zo()|0)>>2]|0)|0;o=p;S=283;break a}case 204:{c[R>>2]=q-f;o=p;break b}case 214:{c[R>>2]=q-f;o=p;break b}case 235:{c[R>>2]=q-f;o=p;break b}case 236:{c[R>>2]=q-f;e=201;o=p;break b}case 239:{c[R>>2]=q-f;e=209;o=p;break b}case 245:{c[R>>2]=q-f;o=p;break b}case 248:{c[R>>2]=q-f;e=209;o=p;break b}case 254:{c[R>>2]=q-f;o=p;break b}case 259:{c[R>>2]=q-f;e=208;o=p;break b}case 261:{c[R>>2]=q-f;e=209;o=p;break b}case 264:{c[R>>2]=q-f;e=207;o=p;break b}case 268:{c[R>>2]=q-f;e=210;o=p;break b}case 270:{c[R>>2]=q-f;e=210;o=p;break b}case 272:{c[R>>2]=q-f;e=205;o=p;break b}}if((S|0)==150){n=e;Q=k}k=Q;S=283;break a}while(0);k:do if((S|0)==274){n=o;h=e-o|0;l:do if((h+3|0)>>>0>=k>>>0){p=k+6|0;do if(k>>>0<4294967290){n=bf(n,p)|0;if(!n){n=Qn(c[(zo()|0)>>2]|0)|0;if(!n)break l;else{e=n;break}}else{o=n;k=p;e=n+h|0;break l}}else e=67;while(0);c[R>>2]=q-f;break k}while(0);a[e>>0]=0;if(!g){k=o;e=o;S=295;break a}else e=203}while(0);n=e;g=o;e=o}while(0);if((S|0)==283){e=o;if(!n){k=o;S=295}else g=o}if((S|0)==295){m:do if(k){switch(a[e>>0]|0){case 0:{sf(e);e=0;break m}case 3:break;default:break m}if((a[e+1>>0]|0)==4){sf(e);e=0}}else e=0;while(0);c[b>>2]=e;S=0;l=T;return S|0}if(!e){S=n;l=T;return S|0}if(af(e)|0){if((k|0)!=0&(e&7|0)!=0)do{a[e>>0]=0;e=e+1|0;k=k+-1|0}while((k|0)!=0&(e&7|0)!=0);if(k>>>0>=8){p=k+-8|0;h=p&-8;q=h+8|0;o=e;while(1){S=o;c[S>>2]=0;c[S+4>>2]=0;k=k+-8|0;if(k>>>0<=7)break;else o=o+8|0}k=p-h|0;e=e+q|0}if(k|0)while(1){a[e>>0]=0;k=k+-1|0;if(!k)break;else e=e+1|0}}cf(g);S=n;l=T;return S|0}function sf(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;if(!b)return;if(af(b)|0){f=a[b>>0]|0;if(!(f<<24>>24))e=b;else{e=b;do{g=e+1|0;if(f<<24>>24==1)e=e+3+((d[g>>0]|d[g+1>>0]<<8)&65535)|0;else e=g;f=a[e>>0]|0}while(f<<24>>24!=0)}j=b;e=e-j|0;if((e|0)!=0&(j&7|0)!=0){f=b;do{a[f>>0]=0;f=f+1|0;e=e+-1|0}while((e|0)!=0&(f&7|0)!=0)}else f=b;if(e>>>0>=8){i=e+-8|0;j=i&-8;h=j+8|0;g=f;while(1){k=g;c[k>>2]=0;c[k+4>>2]=0;e=e+-8|0;if(e>>>0<=7)break;else g=g+8|0}f=f+h|0;e=i-j|0}if(e|0)while(1){a[f>>0]=0;e=e+-1|0;if(!e)break;else f=f+1|0}}cf(b);return}function tf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=i;g=i+8|0;h=i+4|0;do if((a|0)!=0?(c[a>>2]=0,(b|0)!=0&e>>>0<2):0){if(!(e|d)){d=pf(b,0,0,g)|0;if(!d){d=c[g>>2]|0;break}}else if((d|0)==0&(e|0)!=0)d=Fo(b)|0;d=qf(h,0,b,d,0,0,f)|0;c[g>>2]=d;if(!d){c[a>>2]=c[h>>2];d=0}}else d=45;while(0);l=i;return d|0}function uf(b,c,e){b=b|0;c=c|0;e=e|0;var f=0,g=0,h=0;if(!b){h=0;return h|0}if(!e)e=Fo(c)|0;g=b;a:while(1){f=a[g>>0]|0;switch(f<<24>>24){case 0:{e=0;h=26;break a}case 3:break;default:{b=g+1|0;if(f<<24>>24!=1){g=b;continue a}g=g+3+((d[b>>0]|d[b+1>>0]<<8)&65535)|0;continue a}}b=g+1|0;if((a[b>>0]|0)!=1){g=b;continue}b=g+2|0;f=g+4|0;b=(d[b>>0]|d[b+1>>0]<<8)&65535;if((b|0)==(e|0)?(Tp(f,c,e)|0)==0:0)break;g=f+b|0}if((h|0)==26)return e|0;b=1;f=f+e|0;b:do{e=f;c:while(1){switch(a[e>>0]|0){case 0:{h=15;break b}case 3:{h=13;break c}case 4:{h=14;break c}case 1:{e=e+1|0;e=e+(((d[e>>0]|d[e+1>>0]<<8)&65535)+2)+-1|0;break}default:{}}e=e+1|0}if((h|0)==13){h=0;b=b+1|0}else if((h|0)==14){h=0;b=b+-1|0}f=e+1|0}while((b|0)!=0);if((h|0)==15)He(22556,481,22587);e=f-g&65535;b=_e(e+1|0)|0;if(!b){h=0;return h|0}cr(b|0,g|0,e|0)|0;a[b+e>>0]=0;switch(a[b>>0]|0){case 0:{sf(b);h=0;return h|0}case 3:{if((a[b+1>>0]|0)!=4){h=b;return h|0}sf(b);h=0;return h|0}default:{h=b;return h|0}}return 0}function vf(b){b=b|0;var c=0,e=0,f=0,g=0;if(!b){g=0;return g|0}e=0;c=0;a:while(1){f=e;b:while(1){c:while(1){e=a[b>>0]|0;if(!(e<<24>>24))break a;b=b+1|0;switch(e<<24>>24){case 1:{g=7;break b}case 3:{g=8;break b}case 4:break c;default:{}}}f=f+-1|0}if((g|0)==7){e=f;b=b+(((d[b>>0]|d[b+1>>0]<<8)&65535)+2)|0;f=(f|0)==1&1}else if((g|0)==8){e=f+1|0;f=(f|0)==1&1}c=f+c|0}return c|0}function wf(b,c){b=b|0;c=c|0;var e=0,f=0,g=0;if(!b){g=0;return g|0}if((a[b>>0]|0)!=3){g=0;return g|0}a:do if((c|0)>0){e=0;b:while(1){c:while(1){d:while(1){f=b+1|0;switch(a[f>>0]|0){case 0:{b=0;break b}case 1:{g=9;break c}case 4:{g=11;break c}case 3:break d;default:b=f}}e=e+1|0;b=f}if((g|0)==9){b=b+2|0;b=b+(((d[b>>0]|d[b+1>>0]<<8)&65535)+2)+-1|0}else if((g|0)==11){e=e+-1|0;b=f}c=(((e|0)==0)<<31>>31)+c|0;if((c|0)<=0)break a}return b|0}while(0);f=b+1|0;e:do switch(a[f>>0]|0){case 1:{b=b+2|0;b=(d[b>>0]|d[b+1>>0]<<8)&65535;e=_e(b+6|0)|0;if(!e){g=0;return g|0}else{g=e+1|0;a[e>>0]=3;c=b+3|0;cr(g|0,f|0,c|0)|0;c=g+c|0;a[c>>0]=4;a[c+1>>0]=0;c=e;b=e;break e}}case 3:{c=1;b=f;f:while(1){g:while(1){e=b+1|0;switch(a[e>>0]|0){case 0:{g=18;break f}case 3:{g=16;break g}case 4:{g=17;break g}case 1:break;default:{b=e;continue g}}g=b+2|0;b=g+(((d[g>>0]|d[g+1>>0]<<8)&65535)+2)+-1|0}if((g|0)==16){g=0;c=c+1|0}else if((g|0)==17){g=0;c=c+-1|0}if(!c)break;else b=e}if((g|0)==18)He(22556,673,22609);b=b+2-f&65535;e=_e(b+1|0)|0;if(!e){g=0;return g|0}cr(e|0,f|0,b|0)|0;a[e+b>>0]=0;switch(a[e>>0]|0){case 3:{c=e;b=e;break e}case 0:break;default:{g=e;return g|0}}sf(e);g=0;return g|0}default:{g=0;return g|0}}while(0);if((a[c+1>>0]|0)!=4){g=b;return g|0}sf(b);g=0;return g|0}function xf(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;c[f>>2]=0;if(!b){f=0;return f|0}g=a[b>>0]|0;if(g<<24>>24==3){b=b+1|0;h=a[b>>0]|0;g=h<<24>>24==1;a:do if((e|0)>0){i=0;b:while(1){c:do if(g){g=i;j=6}else{g=i;d:while(1){switch(h<<24>>24){case 0:{b=0;break b}case 4:break d;case 3:{g=g+1|0;break}default:{}}b=b+1|0;h=a[b>>0]|0;if(h<<24>>24==1){j=6;break c}}i=g+-1|0}while(0);if((j|0)==6){j=0;b=b+1|0;i=g;b=b+(((d[b>>0]|d[b+1>>0]<<8)&65535)+2)+-1|0}e=(((i|0)==0)<<31>>31)+e|0;b=b+1|0;h=a[b>>0]|0;g=h<<24>>24==1;if((e|0)<=0)break a}return b|0}while(0);if(!g){f=0;return f|0}}else if(!((e|0)==0&g<<24>>24==1)){f=0;return f|0}j=b+1|0;c[f>>2]=(d[j>>0]|d[j+1>>0]<<8)&65535;f=b+3|0;return f|0}function yf(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;c[f>>2]=0;if(!b){f=0;return f|0}g=a[b>>0]|0;if(g<<24>>24==3){g=b+1|0;h=a[g>>0]|0;b=h<<24>>24==1;a:do if((e|0)>0){i=0;b:while(1){c:do if(b){b=i;j=6}else{b=i;d:while(1){switch(h<<24>>24){case 0:{b=0;break b}case 4:break d;case 3:{b=b+1|0;break}default:{}}g=g+1|0;h=a[g>>0]|0;if(h<<24>>24==1){j=6;break c}}i=b+-1|0}while(0);if((j|0)==6){j=0;g=g+1|0;i=b;g=g+(((d[g>>0]|d[g+1>>0]<<8)&65535)+2)+-1|0}e=(((i|0)==0)<<31>>31)+e|0;g=g+1|0;h=a[g>>0]|0;b=h<<24>>24==1;if((e|0)<=0)break a}return b|0}while(0);if(b)b=g;else{f=0;return f|0}}else if(!((e|0)==0&g<<24>>24==1)){f=0;return f|0}j=b+1|0;j=d[j>>0]|d[j+1>>0]<<8;g=j&65535;if(!(j<<16>>16)){f=0;return f|0}h=_e(g)|0;if(!h){f=0;return f|0}cr(h|0,b+3|0,g|0)|0;c[f>>2]=g;f=h;return f|0}function zf(b,c){b=b|0;c=c|0;var e=0,f=0,g=0,h=0;if(!b){h=0;return h|0}e=a[b>>0]|0;if(e<<24>>24==3){e=b+1|0;f=a[e>>0]|0;b=f<<24>>24==1;a:do if((c|0)>0){g=0;b:while(1){c:do if(b){b=g;h=6}else{b=g;d:while(1){switch(f<<24>>24){case 0:{b=0;break b}case 4:break d;case 3:{b=b+1|0;break}default:{}}e=e+1|0;f=a[e>>0]|0;if(f<<24>>24==1){h=6;break c}}g=b+-1|0}while(0);if((h|0)==6){h=0;e=e+1|0;g=b;e=e+(((d[e>>0]|d[e+1>>0]<<8)&65535)+2)+-1|0}c=(((g|0)==0)<<31>>31)+c|0;e=e+1|0;f=a[e>>0]|0;b=f<<24>>24==1;if((c|0)<=0)break a}return b|0}while(0);if(b)b=e;else{h=0;return h|0}}else if(!((c|0)==0&e<<24>>24==1)){h=0;return h|0}h=b+1|0;h=d[h>>0]|d[h+1>>0]<<8;e=h&65535;if(!(h<<16>>16)){h=0;return h|0}f=_e(e+1|0)|0;if(!f){h=0;return h|0}cr(f|0,b+3|0,e|0)|0;a[f+e>>0]=0;h=f;return h|0}function Af(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0;n=l;l=l+16|0;if((l|0)>=(m|0))$(16);k=n;switch(f|0){case 8:{if(!b){k=0;l=n;return k|0}f=a[b>>0]|0;if(f<<24>>24==3){g=b+1|0;h=a[g>>0]|0;f=h<<24>>24==1;a:do if((e|0)>0){i=e;e=0;b:while(1){c:do if(f){f=e;j=7}else{f=e;d:while(1){switch(h<<24>>24){case 0:{b=0;break b}case 4:break d;case 3:{f=f+1|0;break}default:{}}g=g+1|0;h=a[g>>0]|0;if(h<<24>>24==1){j=7;break c}}e=f+-1|0}while(0);if((j|0)==7){j=0;g=g+1|0;e=f;g=g+(((d[g>>0]|d[g+1>>0]<<8)&65535)+2)+-1|0}i=(((e|0)==0)<<31>>31)+i|0;g=g+1|0;h=a[g>>0]|0;f=h<<24>>24==1;if((i|0)<=0)break a}l=n;return b|0}while(0);if(f)f=g;else{k=0;l=n;return k|0}}else if((e|0)==0&f<<24>>24==1)f=b;else{k=0;l=n;return k|0}j=f+1|0;j=d[j>>0]|d[j+1>>0]<<8;g=j&65535;if(!(j<<16>>16)){k=0;l=n;return k|0}h=_e(g)|0;if(!h){k=0;l=n;return k|0}cr(h|0,f+3|0,g|0)|0;if(!(af(b)|0))b=Hl(0)|0;else b=Il(0)|0;c[k>>2]=b;if(!b){cf(h);k=0;l=n;return k|0}else{ul(b,h,g<<3)|0;k=b;l=n;return k|0}}case 0:{i=1;break}default:i=f}if(!b){k=0;l=n;return k|0}f=a[b>>0]|0;if(f<<24>>24==3){b=b+1|0;g=a[b>>0]|0;f=g<<24>>24==1;e:do if((e|0)>0){h=0;f:while(1){g:do if(f){f=h;j=28}else{f=h;h:while(1){switch(g<<24>>24){case 0:{b=0;break f}case 4:break h;case 3:{f=f+1|0;break}default:{}}b=b+1|0;g=a[b>>0]|0;if(g<<24>>24==1){j=28;break g}}h=f+-1|0}while(0);if((j|0)==28){j=0;b=b+1|0;h=f;b=b+(((d[b>>0]|d[b+1>>0]<<8)&65535)+2)+-1|0}e=(((h|0)==0)<<31>>31)+e|0;b=b+1|0;g=a[b>>0]|0;f=g<<24>>24==1;if((e|0)<=0)break e}l=n;return b|0}while(0);if(!f){k=0;l=n;return k|0}}else if(!((e|0)==0&f<<24>>24==1)){k=0;l=n;return k|0}j=b+1|0;j=(Sk(k,i,b+3|0,(d[j>>0]|d[j+1>>0]<<8)&65535,0)|0)==0;k=j?c[k>>2]|0:0;l=n;return k|0}function Bf(b){b=b|0;var c=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;if(!b){l=0;return l|0}if((a[b>>0]|0)==3){c=1;i=0;f=-1}else{l=0;return l|0}a:while(1){b:while(1){c:while(1){e=b+1|0;switch(a[e>>0]|0){case 0:{k=0;l=19;break a}case 3:{l=8;break b}case 4:{l=10;break b}case 1:break c;default:b=e}}b=b+2|0;b=b+(((d[b>>0]|d[b+1>>0]<<8)&65535)+2)+-1|0;c=f+c|0;if((c|0)<=0){j=b;break a}}if((l|0)==8){l=0;g=c;h=i+1|0}else if((l|0)==10){l=0;h=i+-1|0;g=(((h|0)==0)<<31>>31)+c|0}if((g|0)>0){c=g;i=h;b=e;f=((h|0)==0)<<31>>31}else{j=e;break}}if((l|0)==19)return k|0;e=j+1|0;b=0;c=e;d:do{switch(a[c>>0]|0){case 0:{k=0;l=19;break d}case 1:{c=c+1|0;c=c+(((d[c>>0]|d[c+1>>0]<<8)&65535)+2)+-1|0;break}case 3:{b=b+1|0;break}case 4:{b=b+-1|0;break}default:{}}c=c+1|0}while((b|0)!=0);if((l|0)==19)return k|0;b=c-e&65535;c=_e(b+3|0)|0;if(!c){l=0;return l|0}l=c+1|0;a[c>>0]=3;cr(l|0,e|0,b|0)|0;k=l+b|0;a[k>>0]=4;a[k+1>>0]=0;if((a[l>>0]|0)!=4){l=c;return l|0}sf(c);l=0;return l|0}function Cf(a){a=a|0;var b=0;b=Bf(a)|0;a=wf(b,0)|0;sf(b);return a|0}function Df(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f;c[g>>2]=e;e=rf(a,b,d,Fo(d)|0,1,0,g)|0;l=f;return e|0}function Ef(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return rf(a,b,c,Fo(c)|0,1,0,d)|0}function Ff(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=qf(a,b,c,d,0,0,e)|0;l=e;return d|0}function Gf(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=l;l=l+48|0;if((l|0)>=(m|0))$(48);A=C+16|0;z=C+8|0;y=C;v=C+20|0;w=(e|0)==3;x=(f|0)!=0;B=(f|0)==0;u=(e|0)!=1;t=(e|0)==1;s=u^1;r=0;e=0;h=b|0?b:22624;a:while(1){b:while(1){switch(a[h>>0]|0){case 0:{b=79;break a}case 3:{b=4;break b}case 4:{b=13;break b}case 1:break;default:{b=78;break a}}b=h+1|0;b=d[b>>0]|d[b+1>>0]<<8;p=h+3|0;q=b&65535;if(w){o=b<<16>>16==0;c:do if(o){k=2;b=1}else{b=a[p>>0]|0;d:do if(b<<24>>24>=1){n=p;j=q;i=1;h=b;while(1){if((h&255)<32|(h+-127&255)<34?(No(22627,h&255,10)|0)==0:0)break d;if(i){if(!((h+-48&255)<10|((h&-33)+-65&255)<26)){k=(No(22637,h&255,9)|0)==0;i=k?0:i}}else i=0;k=n+1|0;h=j+-1|0;if(!h)break;n=k;j=h;h=a[k>>0]|0}if((b+-48&255)>9&(i|0)!=0){k=q;b=2;break c}else{j=2;h=q;k=p}while(1){e:do switch(b<<24>>24){case 92:case 39:case 34:case 13:case 12:case 10:case 11:case 9:case 8:{b=j+2|0;break}default:if((b&255)<32|(b+-127&255)<34){b=j+4|0;break e}else{b=j+1|0;break e}}while(0);h=h+-1|0;i=k+1|0;if(!h){k=b;b=1;break c}j=b;k=i;b=a[i>>0]|0}}while(0);k=(q<<1)+2|0;b=0}while(0);e=k+e|0;if(x){if(e>>>0>=g>>>0){e=0;b=87;break a}switch(b&3){case 1:{if(f|0){b=f+1|0;a[f>>0]=34;f:do if(!o){i=q;j=p;while(1){h=a[j>>0]|0;g:do switch(h<<24>>24){case 8:{a[b>>0]=92;a[b+1>>0]=98;b=b+2|0;break}case 9:{a[b>>0]=92;a[b+1>>0]=116;b=b+2|0;break}case 11:{a[b>>0]=92;a[b+1>>0]=118;b=b+2|0;break}case 10:{a[b>>0]=92;a[b+1>>0]=110;b=b+2|0;break}case 12:{a[b>>0]=92;a[b+1>>0]=102;b=b+2|0;break}case 13:{a[b>>0]=92;a[b+1>>0]=114;b=b+2|0;break}case 34:{a[b>>0]=92;a[b+1>>0]=34;b=b+2|0;break}case 39:{a[b>>0]=92;a[b+1>>0]=39;b=b+2|0;break}case 92:{a[b>>0]=92;a[b+1>>0]=92;b=b+2|0;break}default:if((h&255)<32|(h+-127&255)<34){c[y>>2]=h&255;Pp(b,22478,y)|0;b=b+4|0;break g}else{a[b>>0]=h;b=b+1|0;break g}}while(0);i=i+-1|0;if(!i)break f;else j=j+1|0}}while(0);a[b>>0]=34}break}case 2:{if(f|0)cr(f|0,p|0,q|0)|0;break}default:if(f|0){b=f+1|0;a[f>>0]=35;if(!o){i=q<<1;h=0;while(1){c[z>>2]=d[p+h>>0];Pp(b,22646,z)|0;h=h+1|0;if((h|0)==(q|0))break;else b=b+2|0}b=f+(i|1)|0}a[b>>0]=35}}f=f+k|0}if((a[p+q>>0]|0)!=4){e=e+1|0;if(x){if(e>>>0>=g>>>0){e=0;b=87;break a}a[f>>0]=32;f=f+1|0}}}else{c[A>>2]=q;Pp(v,22651,A)|0;e=q+e+(Fo(v)|0)|0;if(!B){if(e>>>0>=g>>>0){e=0;b=87;break a}f=Np(f,v)|0;cr(f|0,p|0,q|0)|0;f=f+q|0}}h=p+q|0}if((b|0)==4){h=h+1|0;if(u)e=r+e+((r|0)!=0&1)|0;e=e+1|0;if(!B){if(e>>>0>=g>>>0){e=0;b=87;break}if(!((r|0)==0|s)){b=f+1|0;a[f>>0]=10;if((r|0)>0){Yq(b|0,32,r|0)|0;f=b+r|0}else f=b}a[f>>0]=40;f=f+1|0}r=r+1|0;continue}else if((b|0)==13){h=h+1|0;b=e+1|0;if(x){if(b>>>0>=g>>>0){e=0;b=87;break}a[f>>0]=41;f=f+1|0}i=r+-1|0;if(t){r=i;e=b;continue}switch(a[h>>0]|0){case 0:case 3:{r=i;e=b;continue a}default:{}}e=e+2+i|0;if(!x){r=i;continue}if(e>>>0>=g>>>0){e=0;b=87;break}a[f>>0]=10;b=f+1|0;if((r|0)<=1){r=i;f=b;continue}Yq(b|0,32,i|0)|0;f=f+r|0;r=i;continue}}if((b|0)==78)He(22556,2008,22655);else if((b|0)==79){do if(t){if(B)b=86}else{e=e+1|0;if(!B)if(e>>>0<g>>>0){a[f>>0]=10;f=f+1|0;break}else{g=0;l=C;return g|0}else b=86}while(0);if((b|0)==86){g=e+1|0;l=C;return g|0}if(e>>>0>=g>>>0){g=0;l=C;return g|0}a[f>>0]=0;g=e;l=C;return g|0}else if((b|0)==87){l=C;return e|0}return 0}function Hf(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=l;l=l+112|0;if((l|0)>=(m|0))$(112);u=y+80|0;w=y;x=y+84|0;h=x;i=h+20|0;do{a[h>>0]=0;h=h+1|0}while((h|0)<(i|0));j=a[f>>0]|0;do if(j<<24>>24){h=f;i=0;a:while(1){b:do switch(j<<24>>24){case 63:case 47:case 45:case 43:case 38:break;default:{switch(j<<24>>24|0){case 10:case 13:case 12:case 11:case 9:case 32:break b;default:{}}if(j<<24>>24==39){v=h+1|0;h=Ko(v,39)|0;if((h|0)==0|(h|0)==(v|0)){h=29;v=94;break a}}t=(c[g>>2]|0)+(4-1)&~(4-1);v=c[t>>2]|0;c[g>>2]=t+4;c[w+(i<<2)>>2]=v;if(!v){h=128;v=94;break a}i=i+1|0}}while(0);h=h+1|0;j=a[h>>0]|0;if(!(i>>>0<20&j<<24>>24!=0)){v=9;break}}if((v|0)==9){if(!(j<<24>>24))break;else h=183;l=y;return h|0}else if((v|0)==94){l=y;return h|0}}else i=0;while(0);s=(c[g>>2]|0)+(4-1)&~(4-1);t=c[s>>2]|0;c[g>>2]=s+4;if(t|0){x=45;l=y;return x|0}c:do if(!e){g=0;v=12}else{j=e;g=0;while(1){if(!(a[j>>0]|0)){v=12;break c}h=Ko(j,33)|0;if((h|0)==(j|0)){j=0;h=27;break c}h=(h|0)==0?0:h-j|0;e=uf(b,j,h)|0;if(!e){j=0;h=27;break c}sf(g);j=(h|0)==0?0:j+(h+1)|0;if(!j){b=e;g=e;v=12;break}else{b=e;g=e}}}while(0);d:do if((v|0)==12){t=43;i=0;e:while(1){h=a[f>>0]|0;f:do switch(h<<24>>24){case 0:break e;case 47:case 45:case 43:case 38:{j=h<<24>>24;h=f;break}default:{switch(h<<24>>24|0){case 10:case 13:case 12:case 11:case 9:case 32:{j=t;h=f;break f}default:{}}switch(h<<24>>24){case 63:{j=t;h=f;break f}case 39:{h=f+1|0;f=Ko(h,39)|0;if((f|0)==0|(f|0)==(h|0)){j=0;h=29;break d}j=uf(b,h,f-h|0)|0;break}default:j=uf(b,f,1)|0}do if(j){g:do switch(t|0){case 38:{h=c[w+(i<<2)>>2]|0;r=h+12|0;s=c[r>>2]|0;if(!s){c[h>>2]=0;if((a[j>>0]|0)!=3){v=58;break e}k=j+1|0;n=a[k>>0]|0;q=1;e=0;o=n<<24>>24==1;do{h:do if(o)v=49;else{i:while(1){switch(n<<24>>24){case 0:{v=58;break e}case 4:break i;case 3:{e=e+1|0;break}default:{}}k=k+1|0;n=a[k>>0]|0;if(n<<24>>24==1){v=49;break h}}e=e+-1|0;p=k}while(0);if((v|0)==49){v=0;p=k+1|0;p=p+(((d[p>>0]|d[p+1>>0]<<8)&65535)+2)+-1|0}q=(((e|0)==0)<<31>>31)+q|0;k=p+1|0;n=a[k>>0]|0;o=n<<24>>24==1}while((q|0)>0);if(!o){v=58;break e}s=p+2|0;s=d[s>>0]|d[s+1>>0]<<8;e=s&65535;if(!(s<<16>>16)){v=58;break e}k=_e(e)|0;if(!k){v=58;break e}cr(k|0,p+4|0,e|0)|0;c[h>>2]=e;c[r>>2]=k;c[h+8>>2]=e;c[h+4>>2]=0;a[x+i>>0]=2;break g}else{if((a[j>>0]|0)!=3){h=65;break d}k=j+1|0;n=a[k>>0]|0;q=1;e=0;o=n<<24>>24==1;do{j:do if(o)v=36;else{k:while(1){switch(n<<24>>24){case 0:{h=65;break d}case 4:break k;case 3:{e=e+1|0;break}default:{}}k=k+1|0;n=a[k>>0]|0;if(n<<24>>24==1){v=36;break j}}e=e+-1|0;p=k}while(0);if((v|0)==36){v=0;p=k+1|0;p=p+(((d[p>>0]|d[p+1>>0]<<8)&65535)+2)+-1|0}q=(((e|0)==0)<<31>>31)+q|0;k=p+1|0;n=a[k>>0]|0;o=n<<24>>24==1}while((q|0)>0);if(!o){h=65;break d}r=p+2|0;r=d[r>>0]|d[r+1>>0]<<8;e=r&65535;if(!(r<<16>>16)){h=65;break d}k=c[h+4>>2]|0;if((k+e|0)>>>0>(c[h>>2]|0)>>>0){h=200;break d}cr(s+k|0,p+4|0,e|0)|0;c[h+8>>2]=e;a[x+i>>0]=1;break g}}case 47:{s=Af(j,1,8)|0;h=c[w+(i<<2)>>2]|0;c[h>>2]=s;break}case 45:{l:do if((a[j>>0]|0)==3){e=j+1|0;o=a[e>>0]|0;p=1;h=0;n=o<<24>>24==1;do{m:do if(n)v=64;else{k=o;n:while(1){switch(k<<24>>24){case 0:{h=0;break l}case 4:break n;case 3:{h=h+1|0;break}default:{}}e=e+1|0;k=a[e>>0]|0;if(k<<24>>24==1){v=64;break m}}h=h+-1|0;k=e}while(0);if((v|0)==64){v=0;k=e+1|0;k=k+(((d[k>>0]|d[k+1>>0]<<8)&65535)+2)+-1|0}p=(((h|0)==0)<<31>>31)+p|0;e=k+1|0;o=a[e>>0]|0;n=o<<24>>24==1}while((p|0)>0);if(n){h=k+2|0;h=(Sk(u,1,k+4|0,(d[h>>0]|d[h+1>>0]<<8)&65535,0)|0)==0;h=h?c[u>>2]|0:0}else h=0}else h=0;while(0);s=c[w+(i<<2)>>2]|0;c[s>>2]=h;h=s;break}default:{o:do if((a[j>>0]|0)==3){e=j+1|0;o=a[e>>0]|0;p=1;h=0;n=o<<24>>24==1;do{p:do if(n)v=76;else{k=o;q:while(1){switch(k<<24>>24){case 0:{h=0;break o}case 4:break q;case 3:{h=h+1|0;break}default:{}}e=e+1|0;k=a[e>>0]|0;if(k<<24>>24==1){v=76;break p}}h=h+-1|0;k=e}while(0);if((v|0)==76){v=0;k=e+1|0;k=k+(((d[k>>0]|d[k+1>>0]<<8)&65535)+2)+-1|0}p=(((h|0)==0)<<31>>31)+p|0;e=k+1|0;o=a[e>>0]|0;n=o<<24>>24==1}while((p|0)>0);if(n){h=k+2|0;h=(Sk(u,5,k+4|0,(d[h>>0]|d[h+1>>0]<<8)&65535,0)|0)==0;h=h?c[u>>2]|0:0}else h=0}else h=0;while(0);s=c[w+(i<<2)>>2]|0;c[s>>2]=h;h=s}}while(0);sf(j);if(!(c[h>>2]|0)){j=0;h=65;break d}}else{if((a[f+1>>0]|0)!=63){j=0;h=68;break d}h=w+(i<<2)|0;if((t|0)!=38){c[c[h>>2]>>2]=0;break}h=c[h>>2]|0;if(!(c[h+12>>2]|0)){c[h>>2]=0;c[h+4>>2]=0}c[h+8>>2]=0}while(0);j=t;i=i+1|0;h=f}}while(0);t=j;f=h+1|0}if((v|0)==58){c[r>>2]=0;h=65;break}sf(g);x=0;l=y;return x|0}while(0);sf(g);sf(j);if(!i){x=h;l=y;return x|0}do{i=i+-1|0;j=w+(i<<2)|0;if(!(a[x+i>>0]|0)){v=c[j>>2]|0;Jl(c[v>>2]|0);c[v>>2]=0}else{v=c[j>>2]|0;cf(c[v+12>>2]|0);c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;c[v+12>>2]=0}}while((i|0)!=0);l=y;return h|0}function If(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f;c[g>>2]=e;e=Hf(a,b,d,g)|0;l=f;return ((e|0)==0?0:e&65535|16777216)|0}function Jf(a){a=a|0;if(Go(22673,a)|0)if(Go(22685,a)|0)if(Go(22697,a)|0)if(Go(22709,a)|0)if(Go(22722,a)|0)if(Go(22732,a)|0)if(Go(22743,a)|0)if(Go(22755,a)|0)if(Go(22768,a)|0)if(Go(22780,a)|0)if(Go(22793,a)|0)if(Go(22803,a)|0)if(!(Go(22814,a)|0))a=12;else{a=88;return a|0}else a=11;else a=10;else a=9;else a=8;else a=7;else a=6;else a=5;else a=4;else a=3;else a=2;else a=1;else a=0;c[17593]=c[17593]|c[1164+(a<<3)>>2];a=0;return a|0}function Kf(){return 0}function Lf(a,b){a=a|0;b=b|0;if((a|0)<0|a>>>0>12){b=0;return b|0}if(b|0)c[b>>2]=c[1164+(a<<3)>>2];b=c[1164+(a<<3)+4>>2]|0;return b|0}function Mf(){var b=0,d=0,e=0,f=0,g=0,h=0;h=l;l=l+256|0;if((l|0)>=(m|0))$(256);f=h;if(gg()|0){l=h;return}g=aq(22823,23390)|0;if(g|0){if(Sp(f,256,g)|0)do{b=a[f>>0]|0;e=b<<24>>24;a:do if(!(e&128)){d=f;do{if(!(Lo(e)|0))break a;d=d+1|0;b=a[d>>0]|0;e=b<<24>>24}while(!(e&128|0))}else d=f;while(0);e=Ko(d,10)|0;if(e){a[e>>0]=0;b=a[d>>0]|0}b:do if(b<<24>>24){e=(Fo(d)|0)+-1|0;if((e|0)>0){b=d+e|0;do{e=a[b>>0]|0;if((e&128|0)==0?Lo(e)|0:0)a[b>>0]=0;b=b+-1|0}while(b>>>0>d>>>0);b=a[d>>0]|0}switch(b<<24>>24){case 35:case 0:break b;default:{}}do if(Go(22673,d)|0)if(Go(22685,d)|0)if(Go(22697,d)|0)if(Go(22709,d)|0)if(Go(22722,d)|0)if(Go(22732,d)|0)if(Go(22743,d)|0)if(Go(22755,d)|0){if(!(Go(22768,d)|0)){b=8;break}if(!(Go(22780,d)|0)){b=9;break}if(!(Go(22793,d)|0)){b=10;break}if(!(Go(22803,d)|0)){b=11;break}if(!(Go(22814,d)|0))b=12;else break b}else b=7;else b=6;else b=5;else b=4;else b=3;else b=2;else b=1;else b=0;while(0);c[17593]=c[17593]|c[1164+(b<<3)>>2]}while(0)}while((Sp(f,256,g)|0)!=0);kq(g)|0;bq(g)|0}l=h;return}function Nf(){c[17594]=1;return}function Of(b){b=b|0;var d=0;if(!b){Tn(22);d=0;return d|0}if(!(c[17594]|0)){d=Oq(b)|0;return d|0}d=Oq(b+5|0)|0;if(!d){d=0;return d|0}a[d>>0]=b;a[d+1>>0]=b>>>8;a[d+2>>0]=b>>>16;a[d+3>>0]=85;a[d+(b+4)>>0]=-86;d=d+4|0;return d|0} +function rm(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=c[b+12>>2]|0;s=c[t+36>>2]|0;t=c[t+20>>2]|0;if(e>>>0<g>>>0){u=200;return u|0}u=b+112|0;e=c[u>>2]|0;if(e>>>0>=g>>>0){h=b+64+t+(0-e)|0;if(!((f|d|h)&3))if(g>>>0>3){l=g+-4|0;m=l&-4;o=m+4|0;n=f+o|0;i=h;j=d;k=g;while(1){c[j>>2]=c[f>>2]^c[i>>2];k=k+-4|0;if(k>>>0<=3)break;else{f=f+4|0;i=i+4|0;j=j+4|0}}i=l-m|0;f=n;h=h+o|0;d=d+o|0}else i=g;else i=g;if(i){e=i;while(1){a[d>>0]=a[f>>0]^a[h>>0];e=e+-1|0;if(!e)break;else{f=f+1|0;h=h+1|0;d=d+1|0}}e=c[u>>2]|0}c[u>>2]=e-g;u=0;return u|0}if(e){g=g-e|0;i=b+64+t+(0-e)|0;if(e>>>0>3&((f|d|i)&3|0)==0){n=e+-4|0;o=n&-4;p=o+4|0;j=f+p|0;h=f;k=i;l=d;m=e;while(1){c[l>>2]=c[h>>2]^c[k>>2];m=m+-4|0;if(m>>>0<=3)break;else{h=h+4|0;k=k+4|0;l=l+4|0}}k=n-o|0;if(k){i=i+p|0;h=d+p|0;e=k;q=18}}else{j=f;h=d;q=18}if((q|0)==18){while(1){a[h>>0]=a[j>>0]^a[i>>0];e=e+-1|0;if(!e)break;else{j=j+1|0;i=i+1|0;h=h+1|0;q=18}}e=c[u>>2]|0}c[u>>2]=0;d=d+e|0;f=f+e|0}a:do if(g>>>0<t>>>0)e=0;else{q=b+496|0;r=b+64|0;m=r;l=t+-4|0;o=l&-4;n=o+4|0;p=r+n|0;o=l-o|0;if(t>>>0>3)e=0;else{l=(t|0)==0;e=0;while(1){p=pb[s&63](q,r,r)|0;e=p>>>0>e>>>0?p:e;if(!l){h=f;i=r;j=d;k=t;while(1){a[j>>0]=a[h>>0]^a[i>>0];k=k+-1|0;if(!k)break;else{h=h+1|0;i=i+1|0;j=j+1|0}}}d=d+t|0;f=f+t|0;g=g-t|0;if(g>>>0<t>>>0)break a}}do{l=pb[s&63](q,r,r)|0;e=l>>>0>e>>>0?l:e;if(!((f|m|d)&3)){h=f+n|0;i=f;j=r;k=d;l=t;while(1){c[k>>2]=c[i>>2]^c[j>>2];l=l+-4|0;if(l>>>0<=3)break;else{i=i+4|0;j=j+4|0;k=k+4|0}}j=p;k=d+n|0;i=o}else{h=f;j=r;k=d;i=t}if(i|0)while(1){a[k>>0]=a[h>>0]^a[j>>0];i=i+-1|0;if(!i)break;else{h=h+1|0;j=j+1|0;k=k+1|0}}d=d+t|0;f=f+t|0;g=g-t|0}while(g>>>0>=t>>>0)}while(0);do if(g){h=b+64|0;s=pb[s&63](b+496|0,h,h)|0;e=s>>>0>e>>>0?s:e;c[u>>2]=t-g;if(((f|h|d)&3|0)==0&g>>>0>3){k=g+-4|0;l=k&-4;n=l+4|0;m=f+n|0;i=h;j=d;while(1){c[j>>2]=c[f>>2]^c[i>>2];g=g+-4|0;if(g>>>0<=3)break;else{f=f+4|0;i=i+4|0;j=j+4|0}}g=k-l|0;if(!g)break;else{f=m;h=h+n|0;d=d+n|0}}while(1){a[d>>0]=a[f>>0]^a[h>>0];g=g+-1|0;if(!g)break;else{f=f+1|0;h=h+1|0;d=d+1|0}}}while(0);if(!e){u=0;return u|0}Te(e+16|0);u=0;return u|0}function sm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;p=l;l=l+64|0;if((l|0)>=(m|0))$(64);g=p;if((d|0)==0&(e|0)!=12){o=45;l=p;return o|0}f=b+128|0;i=b+148|0;j=i;k=j+92|0;do{c[j>>2]=0;j=j+4|0}while((j|0)<(k|0));c[f>>2]=0;c[f+4>>2]=0;c[b+136>>2]=0;c[b+140>>2]=0;o=b+144|0;a[o>>0]=a[o>>0]&-4;o=b+56|0;a[o>>0]=a[o>>0]&-7;h=b+12|0;f=b+496|0;ub[c[(c[h>>2]|0)+60>>2]&7](f,d,e);j=g;k=j+64|0;do{a[j>>0]=0;j=j+1|0}while((j|0)<(k|0));zb[c[(c[h>>2]|0)+44>>2]&1](f,g,g,64);i=Lm(i,g,32)|0;if(g&7){f=64;do{a[g>>0]=0;g=g+1|0;f=f+-1|0}while((f|0)!=0&(g&7|0)!=0);if(f>>>0>=8)n=5}else{f=64;n=5}if((n|0)==5){h=f+-8|0;d=h&-8;e=d+8|0;b=g;while(1){n=b;c[n>>2]=0;c[n+4>>2]=0;f=f+-8|0;if(f>>>0<=7)break;else b=b+8|0}f=h-d|0;g=g+e|0}if(f|0)while(1){a[g>>0]=0;f=f+-1|0;if(!f)break;else g=g+1|0}if(i|0){o=i;l=p;return o|0}a[o>>0]=a[o>>0]|2;o=0;l=p;return o|0}function tm(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;k=l;l=l+16|0;if((l|0)>=(m|0))$(16);i=k;if(e>>>0<g>>>0){g=200;l=k;return g|0}h=a[b+56>>0]|0;if(h&4){g=156;l=k;return g|0}j=b+144|0;e=a[j>>0]|0;if(e&2){g=139;l=k;return g|0}do if(!(h&2)){e=i;c[e>>2]=0;c[e+4>>2]=0;e=sm(b,i,8)|0;if(!e){e=a[j>>0]|0;break}else{g=e;l=k;return g|0}}while(0);if(!(e&1)){h=c[b+128>>2]&15;if(h){Km(b+148|0,71811,16-h|0);e=a[j>>0]|0}e=e|1;a[j>>0]=e;h=b+136|0;c[h>>2]=0;c[b+140>>2]=0;i=0}else{i=b+136|0;h=i;i=c[i>>2]|0}i=i+g|0;c[h>>2]=i;if(i>>>0<g>>>0?(h=b+140|0,i=(c[h>>2]|0)+1|0,c[h>>2]=i,(i|0)==0):0){a[j>>0]=e|2;g=139;l=k;return g|0}zb[c[(c[b+12>>2]|0)+44>>2]&1](b+496|0,d,f,g);Km(b+148|0,d,g);g=0;l=k;return g|0}function um(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;k=l;l=l+16|0;if((l|0)>=(m|0))$(16);i=k;if(e>>>0<g>>>0){g=200;l=k;return g|0}h=a[b+56>>0]|0;if(h&4){g=156;l=k;return g|0}j=b+144|0;e=a[j>>0]|0;if(e&2){g=139;l=k;return g|0}do if(!(h&2)){e=i;c[e>>2]=0;c[e+4>>2]=0;e=sm(b,i,8)|0;if(!e){e=a[j>>0]|0;break}else{g=e;l=k;return g|0}}while(0);if(!(e&1)){h=c[b+128>>2]&15;if(h){Km(b+148|0,71811,16-h|0);e=a[j>>0]|0}e=e|1;a[j>>0]=e;h=b+136|0;c[h>>2]=0;c[b+140>>2]=0;i=0}else{i=b+136|0;h=i;i=c[i>>2]|0}i=i+g|0;c[h>>2]=i;if(i>>>0<g>>>0?(h=b+140|0,i=(c[h>>2]|0)+1|0,c[h>>2]=i,(i|0)==0):0){a[j>>0]=e|2;g=139;l=k;return g|0}Km(b+148|0,f,g);zb[c[(c[b+12>>2]|0)+48>>2]&1](b+496|0,d,f,g);g=0;l=k;return g|0}function vm(b){b=b|0;var d=0;d=b+128|0;c[d>>2]=0;c[d+4>>2]=0;c[b+136>>2]=0;c[b+140>>2]=0;d=b+144|0;a[d>>0]=a[d>>0]&-4;b=b+56|0;a[b>>0]=a[b>>0]&-7;return}function wm(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;b=i+15&-16;w=S(h,g)|0;x=df(1,(h<<1)+16+(w*3|0)+b|0)|0;if(!x){h=46734;return h|0}y=x+(0-x&15)|0;r=y+b|0;s=r+h|0;t=s+h|0;u=t+w|0;v=u+w|0;if(pb[d&63](y,16,16)|0){cf(x);h=46720;return h|0}Yq(r|0,78,h|0)|0;Yq(s|0,78,h|0)|0;if((h|0)>0){b=0;do{a[t+b>>0]=b;b=b+1|0}while((b|0)!=(h|0))}q=r;if(!((t|q|v)&3))if(h>>>0>3){l=h+-4|0;m=l&-4;n=m+4|0;i=t+n|0;b=t;d=r;j=v;k=h;while(1){c[j>>2]=c[b>>2]^c[d>>2];k=k+-4|0;if(k>>>0<=3)break;else{b=b+4|0;d=d+4|0;j=j+4|0}}b=l-m|0;j=r+n|0;d=v+n|0}else{b=h;i=t;j=r;d=v}else{i=t;j=r;d=v;b=h}if(b|0)while(1){a[d>>0]=a[i>>0]^a[j>>0];b=b+-1|0;if(!b)break;else{i=i+1|0;j=j+1|0;d=d+1|0}}pb[e&63](y,v,v)|0;cr(r|0,v|0,h|0)|0;qb[f&15](y,s,u,v,1);if(Tp(u,t,h)|0){cf(x);h=46671;return h|0}if(Tp(s,r,h)|0){cf(x);h=46671;return h|0}Yq(r|0,95,h|0)|0;Yq(s|0,95,h|0)|0;i=(w|0)>0;a:do if(i){b=0;do{a[t+b>>0]=b;b=b+1|0}while((b|0)!=(w|0));if(i){o=h+-4|0;n=o&-4;m=n+4|0;p=r+m|0;n=o-n|0;if(h>>>0>3)l=0;else{m=(h|0)==0;k=0;while(1){l=v+k|0;if(!m){b=t+k|0;i=r;d=l;j=h;while(1){a[d>>0]=a[b>>0]^a[i>>0];j=j+-1|0;if(!j)break;else{b=b+1|0;i=i+1|0;d=d+1|0}}}pb[e&63](y,l,l)|0;cr(r|0,l|0,h|0)|0;k=k+h|0;if((k|0)>=(w|0))break a}}do{o=v+l|0;b=t+l|0;if(!((o|q|b)&3)){k=b+m|0;i=r;d=o;j=h;while(1){c[d>>2]=c[b>>2]^c[i>>2];j=j+-4|0;if(j>>>0<=3)break;else{b=b+4|0;i=i+4|0;d=d+4|0}}b=k;d=p;j=o+m|0;i=n}else{d=r;j=o;i=h}if(i|0)while(1){a[j>>0]=a[b>>0]^a[d>>0];i=i+-1|0;if(!i)break;else{b=b+1|0;d=d+1|0;j=j+1|0}}pb[e&63](y,o,o)|0;cr(r|0,o|0,h|0)|0;l=l+h|0}while((l|0)<(w|0))}}while(0);qb[f&15](y,s,u,v,g);if(!(Tp(u,t,w)|0)){h=(Tp(s,r,h)|0)==0;cf(x);h=h?0:46671;return h|0}else{cf(x);h=46671;return h|0}return 0}function xm(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;b=i+15&-16;w=S(h,g)|0;x=df(1,(h<<1)+16+(w*3|0)+b|0)|0;if(!x){h=46734;return h|0}y=x+(0-x&15)|0;r=y+b|0;s=r+h|0;t=s+h|0;u=t+w|0;v=u+w|0;if(pb[d&63](y,32,16)|0){cf(x);h=46720;return h|0}Yq(r|0,-45,h|0)|0;Yq(s|0,-45,h|0)|0;if((h|0)>0){b=0;do{a[t+b>>0]=b;b=b+1|0}while((b|0)!=(h|0))}pb[e&63](y,v,r)|0;q=r;if(!((t|q|v)&3))if(h>>>0>3){l=h+-4|0;m=l&-4;n=m+4|0;j=v+n|0;b=t;i=v;d=r;k=h;while(1){p=c[i>>2]^c[b>>2];c[i>>2]=p;c[d>>2]=p;k=k+-4|0;if(k>>>0<=3)break;else{b=b+4|0;i=i+4|0;d=d+4|0}}b=l-m|0;d=t+n|0;i=r+n|0}else{b=h;d=t;j=v;i=r}else{d=t;j=v;i=r;b=h}if(b|0)while(1){p=a[j>>0]^a[d>>0];a[j>>0]=p;a[i>>0]=p;b=b+-1|0;if(!b)break;else{d=d+1|0;j=j+1|0;i=i+1|0}}qb[f&15](y,s,u,v,1);if(Tp(u,t,h)|0){cf(x);h=46760;return h|0}if(Tp(s,r,h)|0){cf(x);h=46760;return h|0}Yq(r|0,-26,h|0)|0;Yq(s|0,-26,h|0)|0;i=(w|0)>0;a:do if(i){b=0;do{a[t+b>>0]=b;b=b+1|0}while((b|0)!=(w|0));if(i){m=h+-4|0;o=m&-4;n=o+4|0;p=r+n|0;o=m-o|0;if(h>>>0>3)m=0;else{l=(h|0)==0;k=0;while(1){b=v+k|0;pb[e&63](y,b,r)|0;if(!l){j=t+k|0;i=r;d=h;while(1){q=a[b>>0]^a[j>>0];a[b>>0]=q;a[i>>0]=q;d=d+-1|0;if(!d)break;else{j=j+1|0;b=b+1|0;i=i+1|0}}}k=k+h|0;if((k|0)>=(w|0))break a}}do{d=v+m|0;pb[e&63](y,d,r)|0;b=t+m|0;if(!((d|q|b)&3)){l=b+n|0;i=d;j=r;k=h;while(1){z=c[i>>2]^c[b>>2];c[i>>2]=z;c[j>>2]=z;k=k+-4|0;if(k>>>0<=3)break;else{b=b+4|0;i=i+4|0;j=j+4|0}}b=l;d=d+n|0;j=p;i=o}else{j=r;i=h}if(i|0)while(1){z=a[d>>0]^a[b>>0];a[d>>0]=z;a[j>>0]=z;i=i+-1|0;if(!i)break;else{b=b+1|0;d=d+1|0;j=j+1|0}}m=m+h|0}while((m|0)<(w|0))}}while(0);qb[f&15](y,s,u,v,g);if(!(Tp(u,t,w)|0)){z=(Tp(s,r,h)|0)==0;cf(x);z=z?0:46760;return z|0}else{cf(x);z=46760;return z|0}return 0}function ym(b,c,e,f,g,h,i){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;b=i+15&-16;w=S(h,g)|0;y=df(1,(h<<1)+16+(w<<2)+b|0)|0;if(!y){h=46734;return h|0}x=y+(0-y&15)|0;r=x+b|0;s=r+h|0;t=s+h|0;u=t+w|0;v=u+w|0;j=v+w|0;if(pb[c&63](x,48,16)|0){cf(y);h=46720;return h|0}Yq(r|0,-1,h|0)|0;q=(h|0)>0;if(q){b=0;do{a[t+b>>0]=b;b=b+1|0}while((b|0)!=(h|0));pb[e&63](x,v,r)|0;if(q){b=0;do{p=v+b|0;a[p>>0]=a[p>>0]^a[t+b>>0];b=b+1|0}while((b|0)!=(h|0));b=h}else b=h}else{pb[e&63](x,v,r)|0;b=h}do{if((b|0)<=0)break;b=b+-1|0;o=r+b|0;p=(a[o>>0]|0)+1<<24>>24;a[o>>0]=p}while(!(p<<24>>24));Yq(s|0,-1,h|0)|0;qb[f&15](x,s,u,v,1);if(Tp(u,t,h)|0){cf(y);h=46809;return h|0}if(Tp(s,r,h)|0){cf(y);h=46809;return h|0}p=h+-4|0;Yq(r|0,87,p|0)|0;o=h+-1|0;n=r+o|0;a[n>>0]=1;l=h+-2|0;a[r+l>>0]=0;m=h+-3|0;a[r+m>>0]=0;a[r+p>>0]=0;Yq(s|0,87,p|0)|0;o=s+o|0;a[o>>0]=1;a[s+l>>0]=0;a[s+m>>0]=0;a[s+p>>0]=0;p=(w|0)>0;a:do if(p){b=0;do{m=b&255;a[t+b>>0]=m;a[u+b>>0]=m;b=b+1|0}while((b|0)!=(w|0));if(p){if(q)i=0;else{i=0;while(1){pb[e&63](x,v+i|0,r)|0;b=h;do{if((b|0)<=0)break;b=b+-1|0;l=r+b|0;m=(a[l>>0]|0)+1<<24>>24;a[l>>0]=m}while(!(m<<24>>24));i=i+h|0;if((i|0)>=(w|0))break a}}do{pb[e&63](x,v+i|0,r)|0;b=0;do{l=b+i|0;m=v+l|0;a[m>>0]=a[m>>0]^a[t+l>>0];b=b+1|0}while((b|0)!=(h|0));b=h;do{if((b|0)<=0)break;b=b+-1|0;l=r+b|0;m=(a[l>>0]|0)+1<<24>>24;a[l>>0]=m}while(!(m<<24>>24));i=i+h|0}while((i|0)<(w|0))}}while(0);qb[f&15](x,s,j,u,g);if(Tp(j,v,w)|0){cf(y);h=46809;return h|0}if(Tp(s,r,h)|0){cf(y);h=46809;return h|0}b:do if((g|0)>0){j=r+1|0;k=r+2|0;l=s+1|0;m=s+2|0;c=0;while(1){Yq(r|0,-1,h|0)|0;a[n>>0]=(d[n>>0]|0)-c;a[j>>0]=0;a[r>>0]=0;a[k>>0]=7;c:do if(p){b=0;do{a[t+b>>0]=b;b=b+1|0}while((b|0)!=(w|0));if(p){if(q)i=0;else{i=0;while(1){pb[e&63](x,v+i|0,r)|0;b=h;do{if((b|0)<=0)break;b=b+-1|0;A=r+b|0;z=(a[A>>0]|0)+1<<24>>24;a[A>>0]=z}while(!(z<<24>>24));i=i+h|0;if((i|0)>=(w|0))break c}}do{pb[e&63](x,v+i|0,r)|0;b=0;do{z=b+i|0;A=v+z|0;a[A>>0]=a[A>>0]^a[t+z>>0];b=b+1|0}while((b|0)!=(h|0));b=h;do{if((b|0)<=0)break;b=b+-1|0;z=r+b|0;A=(a[z>>0]|0)+1<<24>>24;a[z>>0]=A}while(!(A<<24>>24));i=i+h|0}while((i|0)<(w|0))}}while(0);Yq(s|0,-1,h|0)|0;a[o>>0]=(d[o>>0]|0)-c;a[l>>0]=0;a[s>>0]=0;a[m>>0]=7;qb[f&15](x,s,u,v,g);if(Tp(u,t,w)|0){b=49;break}c=c+1|0;if(Tp(s,r,h)|0){b=51;break}if((c|0)>=(g|0))break b}if((b|0)==49){cf(y);A=46809;return A|0}else if((b|0)==51){cf(y);A=46809;return A|0}}while(0);cf(y);A=0;return A|0}function zm(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0;ba=l;l=l+544|0;if((l|0)>=(m|0))$(544);L=ba+496|0;X=ba+248|0;V=ba+216|0;U=ba+136|0;R=ba+128|0;Q=ba+120|0;N=ba+112|0;J=ba+104|0;E=ba+96|0;D=ba+88|0;C=ba+80|0;z=ba+72|0;H=ba+64|0;G=ba+56|0;F=ba+48|0;A=ba+40|0;w=ba+32|0;x=ba+24|0;v=ba+16|0;j=ba+8|0;i=ba;M=ba+440|0;I=ba+428|0;B=ba+384|0;y=ba+372|0;o=ba+368|0;Z=ba+324|0;_=ba+264|0;aa=ba+260|0;Y=ba+256|0;W=ba+252|0;c[aa>>2]=0;c[Y>>2]=0;c[W>>2]=0;r=Z;s=r+44|0;do{c[r>>2]=0;r=r+4|0}while((r|0)<(s|0));r=_;s=r+60|0;do{c[r>>2]=0;r=r+4|0}while((r|0)<(s|0));f=Fh(b,o)|0;if(f|0){aa=f;l=ba;return aa|0}f=uf(b,46925,0)|0;if(f){g=zf(f,1)|0;sf(f);if(!g){aa=65;l=ba;return aa|0}}else g=0;f=uf(b,46885,0)|0;if((f|0)!=0?(h=Eh(f,W,0)|0,sf(f),(h|0)!=0):0){o=0;n=0;k=0;j=0;i=0;b=0;g=0;f=0}else S=6;do if((S|0)==6){f=uf(b,48632,0)|0;if(f|0){c[W>>2]=c[W>>2]|32;sf(f)}f=c[o>>2]|0;if(!((g|0)!=0|(f|0)!=0)){aa=68;l=ba;return aa|0}h=Eg(f,g,Z,o)|0;cf(g);if(!h){if(!(nf(1)|0)){i=Z+4|0;n=Z+8|0;g=Z+12|0;h=Z+16|0}else{u=Wg(c[Z>>2]|0)|0;g=Z+4|0;f=Xg(c[g>>2]|0)|0;c[i>>2]=u;c[i+4>>2]=f;Oe(48646,i);f=c[Z+40>>2]|0;if(f|0){c[j>>2]=f;Oe(48671,j)}n=Z+8|0;Se(48693,c[n>>2]|0);u=Z+12|0;Se(48709,c[u>>2]|0);h=Z+16|0;Se(48725,c[h>>2]|0);Se(48741,c[Z+32>>2]|0);Se(48757,c[Z+36>>2]|0);Mj(48773,Z+20|0,0);i=g;g=u}k=Uj(c[Z>>2]|0,c[i>>2]|0,0,c[n>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;q=c[W>>2]|0;if(!(q&4096)){p=c[o>>2]|0;b=lk(c[n>>2]|0)|0;Pj(y);f=2-(q>>>5&1)|0;if((c[k+4>>2]|0)==1){t=_+56|0;c[t>>2]=Il(256)|0;u=Cj(32,f)|0;a[u>>0]=(d[u>>0]|0)&63|64;o=u+31|0;a[o>>0]=(d[o>>0]|0)&248;Rk(c[t>>2]|0,u,32,0);cf(u);u=t;o=Z+32|0;f=c[t>>2]|0}else{o=Z+32|0;f=Gn(c[o>>2]|0,f)|0;u=_+56|0;c[u>>2]=f}j=Z+20|0;ck(y,f,j,k);c[_>>2]=c[Z>>2];t=_+4|0;c[t>>2]=c[i>>2];c[_+8>>2]=yl(c[n>>2]|0)|0;c[_+12>>2]=yl(c[g>>2]|0)|0;c[_+16>>2]=yl(c[h>>2]|0)|0;h=_+20|0;Pj(h);Al(c[h>>2]|0,c[j>>2]|0)|0;Al(c[_+24>>2]|0,c[Z+24>>2]|0)|0;Al(c[_+28>>2]|0,c[Z+28>>2]|0)|0;c[_+32>>2]=yl(c[o>>2]|0)|0;c[_+36>>2]=yl(c[Z+36>>2]|0)|0;j=_+44|0;Pj(j);f=Hl(b)|0;g=Hl(b)|0;if(Nj(f,g,y,k)|0){c[v>>2]=48835;Me(48787,v)}do if((c[i>>2]|0)!=1){i=Hl(b)|0;b=c[n>>2]|0;if(!(c[Z>>2]|0))hk(i,b,g);else hk(i,b,f);if((wk(i,g)|0)>=0){tl(i);Al(c[j>>2]|0,c[y>>2]|0)|0;Al(c[_+48>>2]|0,c[y+4>>2]|0)|0;Al(c[_+52>>2]|0,c[y+8>>2]|0)|0;if(!(nf(1)|0))break;Oe(48877,w);break}if(!(c[Z>>2]|0)){tl(g);g=i}else{tl(f);f=i}w=c[u>>2]|0;hk(w,c[o>>2]|0,w);Sj(j,f,g,Ml(1)|0)|0;if(nf(1)|0)Oe(48837,x)}else{Al(c[j>>2]|0,c[y>>2]|0)|0;Al(c[_+48>>2]|0,c[y+4>>2]|0)|0;Al(c[_+52>>2]|0,c[y+8>>2]|0)|0}while(0);Rj(y);do if(!(q&16384)){q=p+-64|0;if((c[_>>2]|0)!=1){i=Hl(q)|0;j=Hl(q)|0;n=Hl(q)|0;o=Hl(q)|0;p=Hl(q)|0;if(nf(1)|0)Oe(48930,A);Pj(I);r=L;b=_;s=r+44|0;do{c[r>>2]=c[b>>2];r=r+4|0;b=b+4|0}while((r|0)<(s|0));Vg(B,L);r=M;b=B;s=r+44|0;do{c[r>>2]=c[b>>2];r=r+4|0;b=b+4|0}while((r|0)<(s|0));b=M+44|0;Pj(b);Al(c[b>>2]|0,c[_+44>>2]|0)|0;Al(c[M+48>>2]|0,c[_+48>>2]|0)|0;Al(c[M+52>>2]|0,c[_+52>>2]|0)|0;Kl(i,q,0);if(Kn(i,_,o,p,0,0)|0)Me(48944,F);if(Ln(i,M,o,p)|0)Me(48974,G);if(nf(1)|0)Oe(49012,H);Rj(b);Ug(M);Rj(I);tl(p);tl(o);tl(n);tl(j);tl(i);break}if(nf(1)|0)Oe(48930,z);Pj(I);r=L;b=_;s=r+44|0;do{c[r>>2]=c[b>>2];r=r+4|0;b=b+4|0}while((r|0)<(s|0));Vg(B,L);r=M;b=B;s=r+44|0;do{c[r>>2]=c[b>>2];r=r+4|0;b=b+4|0}while((r|0)<(s|0));o=M+44|0;Pj(o);Al(c[o>>2]|0,c[_+44>>2]|0)|0;Al(c[M+48>>2]|0,c[_+48>>2]|0)|0;Al(c[M+52>>2]|0,c[_+52>>2]|0)|0;if((c[t>>2]|0)==1){b=Hl(256)|0;H=Aj(32,0)|0;a[H>>0]=(d[H>>0]|0)&63|64;G=H+31|0;a[G>>0]=(d[G>>0]|0)&248;Rk(b,H,32,0);cf(H)}else{b=Hl(q)|0;Kl(b,q,0)}i=Uj(c[M>>2]|0,c[M+4>>2]|0,0,c[M+8>>2]|0,c[M+12>>2]|0,c[M+16>>2]|0)|0;j=Hl(0)|0;n=Hl(0)|0;ck(I,b,o,i);if((c[t>>2]|0)!=1)ck(I,c[i+36>>2]|0,I,i);if(Nj(j,0,I,i)|0)Me(49047,C);ck(I,b,M+20|0,i);ck(I,c[u>>2]|0,I,i);if((c[t>>2]|0)!=1)ck(I,c[i+36>>2]|0,I,i);if(Nj(n,0,I,i)|0)Me(49095,D);if(!(wk(j,n)|0)){tl(j);tl(n);Yj(i);Rj(o);Ug(M);Rj(I);tl(b);break}else Me(49144,E)}while(0)}else{h=Rg(_,Z,k,q)|0;if(h|0){o=0;n=0;j=0;i=0;b=0;g=0;f=0;break}g=0;f=0;h=_+20|0}s=Hl(0)|0;r=Hl(0)|0;if(Nj(s,r,h,k)|0){c[J>>2]=49163;Me(48787,J)}q=_+8|0;n=Yg(s,r,c[q>>2]|0)|0;do if((c[_+4>>2]|0)==1?(K=c[W>>2]|0,(K&2048|0)==0):0){h=Mg(_+44|0,k,s,r,K>>>10&1,L,M)|0;if(!h){b=Hl(0)|0;ul(b,c[L>>2]|0,c[M>>2]<<3)|0;break}aa=h;l=ba;return aa|0}else S=71;while(0);if((S|0)==71){if(!f){f=Hl(0)|0;g=Hl(0)|0;if(!(Nj(f,g,_+44|0,k)|0)){O=g;P=f}else{c[N>>2]=48835;Me(48787,N)}}else{O=g;P=f}b=Yg(P,O,c[q>>2]|0)|0;g=O;f=P}p=_+56|0;o=c[p>>2]|0;c[p>>2]=0;p=Z+40|0;h=c[p>>2]|0;if(h|0?(c[Q>>2]=h,T=Df(aa,0,49165,Q)|0,T|0):0){j=r;i=s;h=T;break}h=c[W>>2]|0;i=h&4608;if(i){h=Df(Y,0,(i|0)!=4608?(h&512|0?49176:49190):49204,R)|0;if(h|0){j=r;i=s;break}h=c[W>>2]|0}i=c[aa>>2]|0;j=c[Y>>2]|0;if((h&512|0)==0|(c[p>>2]|0)==0){c[V>>2]=i;c[V+4>>2]=j;c[V+8>>2]=b;c[V+12>>2]=i;c[V+16>>2]=j;c[V+20>>2]=b;c[V+24>>2]=o;h=Df(e,0,49360,V)|0}else{R=c[q>>2]|0;S=c[_+12>>2]|0;T=c[_+16>>2]|0;V=c[_+32>>2]|0;h=c[_+36>>2]|0;c[U>>2]=i;c[U+4>>2]=j;c[U+8>>2]=R;c[U+12>>2]=S;c[U+16>>2]=T;c[U+20>>2]=n;c[U+24>>2]=V;c[U+28>>2]=h;c[U+32>>2]=b;c[U+36>>2]=i;c[U+40>>2]=j;c[U+44>>2]=R;c[U+48>>2]=S;c[U+52>>2]=T;c[U+56>>2]=n;c[U+60>>2]=V;c[U+64>>2]=h;c[U+68>>2]=b;c[U+72>>2]=o;h=Df(e,0,49224,U)|0}if(!h)if((nf(1)|0)!=0?(Se(49436,c[q>>2]|0),Se(49452,c[_+12>>2]|0),Se(49468,c[_+16>>2]|0),Se(49484,n),Se(49500,c[_+32>>2]|0),Se(49516,c[_+36>>2]|0),Se(49532,b),Se(49548,o),(c[W>>2]&4096|0)!=0):0){Oe(49564,X);j=r;i=s;h=0}else{j=r;i=s;h=0}else{j=r;i=s}}else{o=0;n=0;k=0;j=0;i=0;b=0;g=0;f=0}}while(0);tl(o);tl(b);tl(n);Ug(_);Rj(_+44|0);tl(c[_+56>>2]|0);Ug(Z);tl(i);tl(j);tl(f);tl(g);Yj(k);sf(c[Y>>2]|0);sf(c[aa>>2]|0);aa=h;l=ba;return aa|0}function Am(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;I=l;l=l+240|0;if((l|0)>=(m|0))$(240);H=I+144|0;C=I+136|0;B=I+128|0;A=I+120|0;z=I+112|0;y=I+104|0;x=I+96|0;v=I+88|0;u=I+80|0;t=I+72|0;j=I+64|0;i=I+56|0;g=I+40|0;f=I;D=I+220|0;q=I+216|0;E=I+212|0;F=I+208|0;G=I+148|0;c[q>>2]=0;c[E>>2]=0;c[F>>2]=0;b=G;d=b+60|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));e=uf(a,46885,0)|0;if(e){b=Eh(e,q,0)|0;if(!b)if(!(c[q>>2]&512))k=5;else{c[f>>2]=G+8;c[f+4>>2]=G+12;c[f+8>>2]=G+16;c[f+12>>2]=E;c[f+16>>2]=G+32;c[f+20>>2]=G+36;c[f+24>>2]=F;c[f+28>>2]=G+56;c[f+32>>2]=0;b=If(a,0,47225,f)|0;k=6}else{f=0;d=0}}else k=5;if((k|0)==5){c[g>>2]=F;c[g+4>>2]=G+56;c[g+8>>2]=0;b=If(a,0,47244,g)|0;k=6}do if((k|0)==6)if(!b){sf(e);r=uf(a,46925,5)|0;if((r|0)!=0?(h=zf(r,1)|0,(h|0)!=0):0){b=Fg(h,G,G+4|0,G+8|0,G+12|0,G+16|0,E,G+32|0,G+36|0)|0;if(!b)k=h;else{H=b;l=I;return H|0}}else k=0;if(c[E>>2]|0?(n=G+20|0,Pj(n),n=_g(n,c[E>>2]|0)|0,n|0):0){f=0;e=r;d=k;b=n;break}if(!k){n=c[q>>2]|0;c[G>>2]=n>>>11&2;c[G+4>>2]=n>>>12&1}if(nf(1)|0){n=Wg(c[G>>2]|0)|0;b=Xg(c[G+4>>2]|0)|0;c[i>>2]=n;c[i+4>>2]=b;Oe(48153,i);b=c[G+40>>2]|0;if(b|0){c[j>>2]=b;Oe(48177,j)}b=G+8|0;Se(48198,c[b>>2]|0);Se(48214,c[G+12>>2]|0);Se(48230,c[G+16>>2]|0);Mj(48246,G+20|0,0);Se(48260,c[G+32>>2]|0);Se(48276,c[G+36>>2]|0);Se(48292,c[F>>2]|0);if(!(gg()|0))Se(48308,c[G+56>>2]|0)}else b=G+8|0;b=c[b>>2]|0;if(((((((b|0)!=0?(o=c[G+12>>2]|0,(o|0)!=0):0)?(p=c[G+16>>2]|0,(p|0)!=0):0)?(c[G+20>>2]|0)!=0:0)?(s=G+32|0,(c[s>>2]|0)!=0):0)?(c[G+36>>2]|0)!=0:0)?(w=G+56|0,(c[w>>2]|0)!=0):0){h=G+4|0;f=Uj(c[G>>2]|0,c[h>>2]|0,0,b,o,p)|0;if(c[F>>2]|0){i=G+44|0;Pj(i);b=c[F>>2]|0;if((c[f+4>>2]|0)==1)b=Pg(b,f,i,0,0)|0;else b=_g(i,b)|0;if(!b){d=c[q>>2]|0;Pj(D);a=Hl(0)|0;if((c[f>>2]|0)==1)g=0;else g=Hl(0)|0;e=G+20|0;a:do if(!(dk(e,f)|0)){if(!(nf(1)|0)){b=7;e=0;d=0;break}Oe(48324,t);b=7;e=0;d=0}else{if(!(vk(c[G+28>>2]|0,0)|0)){if(!(nf(1)|0)){b=7;e=0;d=0;break}Oe(48376,u);b=7;e=0;d=0;break}do if((c[h>>2]|0)!=1){ck(D,c[s>>2]|0,e,f);if(!(vk(c[D+8>>2]|0,0)|0))break;if(!(nf(1)|0)){b=7;e=0;d=0;break a}Oe(48421,v);b=7;e=0;d=0;break a}while(0);b=G+52|0;if(!(vk(c[b>>2]|0,0)|0)){if(!(nf(1)|0)){b=7;e=0;d=0;break}Oe(48468,x);b=7;e=0;d=0;break}if(!($g(D,f,e,c[w>>2]|0)|0)){if(!(nf(1)|0)){b=7;e=0;d=0;break}Oe(48514,y);b=7;e=0;d=0;break}if(Nj(a,g,D,f)|0){if(!(nf(1)|0)){b=7;e=0;d=0;break}Oe(48468,z);b=7;e=0;d=0;break}if(d&4096|0){b=0;e=0;d=0;break}if(!(vk(c[b>>2]|0,1)|0)){if(!(wk(a,c[i>>2]|0)|0)){if(g|0){b=0;e=0;d=0;break}if(!(wk(0,c[G+48>>2]|0)|0)){b=0;e=0;d=0;break}}if(!(nf(1)|0)){b=7;e=0;d=0;break}Oe(48551,A);b=7;e=0;d=0;break}d=Hl(0)|0;e=Hl(0)|0;if(Nj(d,e,i,f)|0){if(!(nf(1)|0)){b=7;break}Oe(48468,B);b=7;break}if((wk(a,d)|0)==0?(wk(g,e)|0)==0:0){b=0;break}if(!(nf(1)|0)){b=7;break}Oe(48551,C);b=7}while(0);tl(d);tl(a);tl(g);tl(e);Rj(D);e=r;d=k}else{e=r;d=k}}else{e=r;d=k;b=68}}else{f=0;e=r;d=k;b=68}}else{f=0;d=0}while(0);Yj(f);Jl(c[G+8>>2]|0);Jl(c[G+12>>2]|0);Jl(c[G+16>>2]|0);Jl(c[E>>2]|0);Rj(G+20|0);Jl(c[G+32>>2]|0);Jl(c[G+36>>2]|0);Jl(c[F>>2]|0);Rj(G+44|0);Jl(c[G+56>>2]|0);cf(d);sf(e);if(!(nf(1)|0)){H=b;l=I;return H|0}c[H>>2]=Pn(b)|0;Oe(48611,H);H=b;l=I;return H|0}function Bm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=l;l=l+192|0;if((l|0)>=(m|0))$(192);E=F+72|0;D=F+64|0;C=F+56|0;p=F+48|0;n=F+40|0;k=F+32|0;B=F;v=F+152|0;w=F+144|0;x=F+140|0;y=F+136|0;A=F+80|0;c[w>>2]=0;c[x>>2]=0;c[y>>2]=0;e=A;f=e+56|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(f|0));Jh(v,0,Fm(d)|0);b=Lh(b,y,v)|0;do if(!b){if(nf(1)|0)Se(47813,c[y>>2]|0);o=c[y>>2]|0;if(o|0?c[o+12>>2]&4|0:0){q=79;r=0;s=0;t=0;u=0;break}o=A+8|0;i=A+12|0;j=A+16|0;e=A+32|0;f=A+36|0;c[B>>2]=o;c[B+4>>2]=i;c[B+8>>2]=j;c[B+12>>2]=w;c[B+16>>2]=e;c[B+20>>2]=f;c[B+24>>2]=x;c[B+28>>2]=0;b=If(d,0,47830,B)|0;if(!b){if(c[w>>2]|0?(g=A+20|0,Pj(g),g=_g(g,c[w>>2]|0)|0,g|0):0){q=g;r=0;s=0;t=0;u=0;break}sf(0);b=uf(d,46925,5)|0;if((b|0)!=0?(h=zf(b,1)|0,(h|0)!=0):0){b=Eg(0,h,A,0)|0;if(b){E=b;l=F;return E|0}}else{c[A>>2]=0;c[A+4>>2]=0;h=0}if(nf(1)|0){g=Wg(c[A>>2]|0)|0;b=Xg(c[A+4>>2]|0)|0;c[k>>2]=g;c[k+4>>2]=b;Oe(47846,k);b=c[A+40>>2]|0;if(b|0){c[n>>2]=b;Oe(47871,n)}Se(47893,c[o>>2]|0);Se(47910,c[i>>2]|0);Se(47927,c[j>>2]|0);Mj(47944,A+20|0,0);Se(47959,c[e>>2]|0);Se(47976,c[f>>2]|0);Se(47993,c[x>>2]|0)}if((!((c[o>>2]|0)==0|(c[i>>2]|0)==0|(c[j>>2]|0)==0)?(z=A+20|0,!((c[z>>2]|0)==0|(c[e>>2]|0)==0)):0)?(c[f>>2]|0)!=0&(c[x>>2]|0)!=0:0){g=A+44|0;Pj(g);b=_g(g,c[x>>2]|0)|0;if(!b){e=Uj(c[A>>2]|0,c[A+4>>2]|0,0,c[o>>2]|0,c[i>>2]|0,c[j>>2]|0)|0;f=Hl(0)|0;d=Hl(0)|0;Pj(B);ck(B,c[y>>2]|0,g,e);if(Nj(f,d,B,e)|0)Me(48010,p);b=Yg(f,d,c[o>>2]|0)|0;ck(B,c[y>>2]|0,z,e);if(!(Nj(f,d,B,e)|0)){s=Yg(f,d,c[o>>2]|0)|0;tl(f);tl(d);Rj(B);c[D>>2]=b;c[D+4>>2]=s;q=Df(a,0,48105,D)|0;r=e;t=b;u=h;break}else Me(48058,C)}else{q=b;r=0;s=0;t=0;u=h}}else{q=68;r=0;s=0;t=0;u=h}}else{q=b;r=0;s=0;t=0;u=0}}else{q=b;r=0;s=0;t=0;u=0}while(0);Jl(c[A+8>>2]|0);Jl(c[A+12>>2]|0);Jl(c[A+16>>2]|0);Jl(c[w>>2]|0);Rj(A+20|0);Jl(c[A+32>>2]|0);Jl(c[A+36>>2]|0);Jl(c[x>>2]|0);Rj(A+44|0);Jl(c[y>>2]|0);Jl(t);Jl(s);cf(u);Yj(r);Kh(v);if(!(nf(1)|0)){E=q;l=F;return E|0}c[E>>2]=Pn(q)|0;Oe(48131,E);E=q;l=F;return E|0}function Cm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=l;l=l+224|0;if((l|0)>=(m|0))$(224);A=B+72|0;s=B+64|0;r=B+56|0;q=B+48|0;p=B+40|0;j=B+8|0;h=B;t=B+176|0;u=B+168|0;v=B+164|0;w=B+104|0;x=B+100|0;y=B+88|0;z=B+76|0;c[u>>2]=0;c[v>>2]=0;c[x>>2]=0;f=w;g=f+60|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));Pj(y);Pj(z);Jh(t,1,Fm(d)|0);b=Ih(b,12556,u,t)|0;do if(!b){b=c[u>>2]|0;c[h>>2]=v;c[h+4>>2]=0;b=If(b,0,47524,h)|0;if(!b){if(nf(1)|0)Se(47526,c[v>>2]|0);n=c[v>>2]|0;if(n|0?c[n+12>>2]&4|0:0){f=0;g=0;b=79;e=0;break}n=w+8|0;h=w+12|0;i=w+16|0;f=w+32|0;g=w+36|0;k=w+56|0;c[j>>2]=n;c[j+4>>2]=h;c[j+8>>2]=i;c[j+12>>2]=x;c[j+16>>2]=f;c[j+20>>2]=g;c[j+24>>2]=k;c[j+28>>2]=0;b=If(d,0,47543,j)|0;if(!b){if(c[x>>2]|0?(o=w+20|0,Pj(o),o=_g(o,c[x>>2]|0)|0,o|0):0){f=0;g=0;b=o;e=0;break}sf(c[u>>2]|0);b=uf(d,46925,5)|0;c[u>>2]=b;if((b|0)!=0?(e=zf(b,1)|0,(e|0)!=0):0){b=Eg(0,e,w,0)|0;if(b){A=b;l=B;return A|0}}else{c[w>>2]=0;c[w+4>>2]=0;e=0}if(nf(1)|0){o=Wg(c[w>>2]|0)|0;b=Xg(c[w+4>>2]|0)|0;c[p>>2]=o;c[p+4>>2]=b;Oe(47559,p);b=c[w+40>>2]|0;if(b|0){c[q>>2]=b;Oe(47584,q)}Se(47606,c[n>>2]|0);Se(47623,c[h>>2]|0);Se(47640,c[i>>2]|0);Mj(47657,w+20|0,0);Se(47672,c[f>>2]|0);Se(47689,c[g>>2]|0);if(!(gg()|0))Se(47706,c[k>>2]|0)}if(!((c[n>>2]|0)==0|(c[h>>2]|0)==0|(c[i>>2]|0)==0)?!((c[w+20>>2]|0)==0|(c[f>>2]|0)==0|(c[g>>2]|0)==0|(c[k>>2]|0)==0):0){b=_g(y,c[v>>2]|0)|0;if(b|0){Rj(y);A=b;l=B;return A|0}i=Uj(c[w>>2]|0,c[w+4>>2]|0,0,c[n>>2]|0,c[h>>2]|0,c[i>>2]|0)|0;ck(z,c[k>>2]|0,y,i);g=Hl(0)|0;h=Hl(0)|0;if(Nj(g,h,z,i)|0)Me(47723,r);f=Yg(g,h,c[n>>2]|0)|0;if(!f)b=Sn()|0;else b=0;tl(g);tl(h);if(nf(1)|0)Se(47763,f);if(!b){c[s>>2]=f;g=i;b=Df(a,0,47780,s)|0}else g=i}else{f=0;g=0;b=68}}else{f=0;g=0;e=0}}else{f=0;g=0;e=0}}else{f=0;g=0;e=0}while(0);Rj(z);Rj(y);Jl(f);Jl(c[w+8>>2]|0);Jl(c[w+12>>2]|0);Jl(c[w+16>>2]|0);Jl(c[x>>2]|0);Rj(w+20|0);Jl(c[w+32>>2]|0);Jl(c[w+36>>2]|0);Jl(c[w+56>>2]|0);Jl(c[v>>2]|0);cf(e);sf(c[u>>2]|0);Yj(g);Kh(t);if(!(nf(1)|0)){A=b;l=B;return A|0}c[A>>2]=Pn(b)|0;Oe(47791,A);A=b;l=B;return A|0}function Dm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=l;l=l+224|0;if((l|0)>=(m|0))$(224);w=x+104|0;q=x+96|0;p=x+88|0;o=x+80|0;n=x+72|0;j=x+56|0;h=x+40|0;g=x;r=x+184|0;s=x+176|0;t=x+172|0;u=x+168|0;v=x+108|0;c[s>>2]=0;c[t>>2]=0;c[u>>2]=0;e=v;f=e+60|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(f|0));Jh(r,2,0);b=Lh(b,s,r)|0;do if(!b){if(nf(1)|0)Se(47209,c[s>>2]|0);e=r+12|0;if(!(c[e>>2]&512)){c[h>>2]=u;c[h+4>>2]=v+56;c[h+8>>2]=0;b=If(d,0,47244,h)|0}else{c[g>>2]=v+8;c[g+4>>2]=v+12;c[g+8>>2]=v+16;c[g+12>>2]=t;c[g+16>>2]=v+32;c[g+20>>2]=v+36;c[g+24>>2]=u;c[g+28>>2]=v+56;c[g+32>>2]=0;b=If(d,0,47225,g)|0}if(!b){if(c[t>>2]|0?(k=v+20|0,Pj(k),k=_g(k,c[t>>2]|0)|0,k|0):0){f=0;g=0;h=0;e=0;b=k;break}sf(0);h=uf(d,46925,5)|0;if((h|0)!=0?(i=zf(h,1)|0,(i|0)!=0):0){b=Eg(0,i,v,0)|0;if(b){w=b;l=x;return w|0}}else{i=c[e>>2]|0;c[v>>2]=i>>>11&2;c[v+4>>2]=i>>>12&1;i=0}if(nf(1)|0){d=Wg(c[v>>2]|0)|0;k=Xg(c[v+4>>2]|0)|0;b=c[e>>2]&4096|0?47019:71847;c[j>>2]=d;c[j+4>>2]=k;c[j+8>>2]=b;Oe(47250,j);b=c[v+40>>2]|0;if(b|0){c[n>>2]=b;Oe(47276,n)}b=v+8|0;Se(47297,c[b>>2]|0);Se(47313,c[v+12>>2]|0);Se(47329,c[v+16>>2]|0);Mj(47345,v+20|0,0);Se(47359,c[v+32>>2]|0);Se(47375,c[v+36>>2]|0);Se(47391,c[u>>2]|0);if(!(gg()|0))Se(47407,c[v+56>>2]|0)}else b=v+8|0;if(((((((c[b>>2]|0)!=0?(c[v+12>>2]|0)!=0:0)?(c[v+16>>2]|0)!=0:0)?(c[v+20>>2]|0)!=0:0)?(c[v+32>>2]|0)!=0:0)?(c[v+36>>2]|0)!=0:0)?(c[v+56>>2]|0)!=0:0){g=Hl(0)|0;f=Hl(0)|0;e=c[e>>2]|0;if(e&4096|0){b=Sg(c[s>>2]|0,v,g,f,c[r+16>>2]|0,c[u>>2]|0)|0;if(b|0){e=i;break}c[o>>2]=g;c[o+4>>2]=f;e=i;b=Df(a,0,47423,o)|0;break}b=c[s>>2]|0;if(!(e&8192)){b=Kn(b,v,g,f,e,c[r+16>>2]|0)|0;if(b|0){e=i;break}c[q>>2]=g;c[q+4>>2]=f;e=i;b=Df(a,0,47476,q)|0;break}else{b=Mn(b,v,g,f)|0;if(b|0){e=i;break}c[p>>2]=g;c[p+4>>2]=f;e=i;b=Df(a,0,47450,p)|0;break}}else{f=0;g=0;e=i;b=68}}else{f=0;g=0;h=0;e=0}}else{f=0;g=0;h=0;e=0}while(0);Jl(c[v+8>>2]|0);Jl(c[v+12>>2]|0);Jl(c[v+16>>2]|0);Jl(c[t>>2]|0);Rj(v+20|0);Jl(c[v+32>>2]|0);Jl(c[v+36>>2]|0);Jl(c[u>>2]|0);Rj(v+44|0);Jl(c[v+56>>2]|0);Jl(g);Jl(f);cf(e);Jl(c[s>>2]|0);sf(h);Kh(r);if(!(nf(1)|0)){w=b;l=x;return w|0}c[w>>2]=Pn(b)|0;Oe(47503,w);w=b;l=x;return w|0}function Em(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=l;l=l+224|0;if((l|0)>=(m|0))$(224);D=E+80|0;n=E+72|0;k=E+56|0;g=E+48|0;h=E+16|0;t=E;w=E+176|0;x=E+172|0;y=E+168|0;z=E+164|0;A=E+160|0;B=E+156|0;C=E+152|0;v=E+96|0;o=E+88|0;u=E+84|0;c[x>>2]=0;c[y>>2]=0;c[z>>2]=0;c[A>>2]=0;c[B>>2]=0;c[C>>2]=0;e=v;f=e+56|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(f|0));Jh(w,3,Fm(d)|0);e=Lh(b,C,w)|0;a:do if(!e){if(nf(1)|0)Se(46951,c[C>>2]|0);e=Hh(a,12556,x,o)|0;if(!e){a=c[x>>2]|0;e=c[o>>2]&4096|0?46967:46882;c[t>>2]=A;c[t+4>>2]=B;c[t+8>>2]=0;e=If(a,0,e,t)|0;if(!e){if(nf(1)|0){Se(46971,c[A>>2]|0);Se(46987,c[B>>2]|0)}b=c[w+12>>2]|0;if(!((c[o>>2]^b)&4096)){if(!(b&512)){c[g>>2]=z;c[g+4>>2]=0;e=If(d,0,46920,g)|0}else{e=v+32|0;c[h>>2]=v+8;c[h+4>>2]=v+12;c[h+8>>2]=v+16;c[h+12>>2]=y;c[h+16>>2]=e;c[h+20>>2]=e;c[h+24>>2]=z;c[h+28>>2]=0;e=If(d,0,47003,h)|0}if(!e){if(c[y>>2]|0?(i=v+20|0,Pj(i),i=_g(i,c[y>>2]|0)|0,i|0):0){f=0;e=i;break}sf(c[x>>2]|0);b=uf(d,46925,5)|0;c[x>>2]=b;if((b|0)!=0?(j=zf(b,1)|0,(j|0)!=0):0){b=Eg(0,j,v,0)|0;if(!b)a=j;else{D=b;l=E;return D|0}}else{a=c[o>>2]|0;c[v>>2]=a>>>11&2;c[v+4>>2]=a>>>12&1;a=0}if(!(nf(1)|0))f=v+8|0;else{i=Wg(c[v>>2]|0)|0;j=Xg(c[v+4>>2]|0)|0;b=c[o>>2]&4096|0?47019:71847;c[k>>2]=i;c[k+4>>2]=j;c[k+8>>2]=b;Oe(47026,k);b=c[v+40>>2]|0;if(b|0){c[n>>2]=b;Oe(47052,n)}f=v+8|0;Se(47073,c[f>>2]|0);Se(47089,c[v+12>>2]|0);Se(47105,c[v+16>>2]|0);Mj(47121,v+20|0,0);Se(47135,c[v+32>>2]|0);Se(47151,c[v+36>>2]|0);Se(47167,c[z>>2]|0)}if((((((c[f>>2]|0)!=0?(q=v+12|0,(c[q>>2]|0)!=0):0)?(r=v+16|0,(c[r>>2]|0)!=0):0)?(c[v+20>>2]|0)!=0:0)?(s=v+32|0,(c[s>>2]|0)!=0):0)?(p=c[z>>2]|0,(c[v+36>>2]|0)!=0&(p|0)!=0):0){e=c[o>>2]|0;if(e&4096|0){f=a;e=Tg(c[C>>2]|0,v,c[A>>2]|0,c[B>>2]|0,c[w+16>>2]|0,p)|0;break}b=v+44|0;Pj(b);if(e&8192|0){e=_g(b,c[z>>2]|0)|0;if(e|0){f=a;break}f=a;e=Nn(c[C>>2]|0,v,c[A>>2]|0,c[B>>2]|0)|0;break}if((c[v+4>>2]|0)==1){r=Uj(c[v>>2]|0,1,0,c[f>>2]|0,c[q>>2]|0,c[r>>2]|0)|0;e=Pg(c[z>>2]|0,r,b,0,0)|0;Yj(r)}else e=_g(b,c[z>>2]|0)|0;if(e|0){f=a;break}b=c[C>>2]|0;do if(b|0){if(!(c[b+12>>2]&4))break;e=lk(c[s>>2]|0)|0;b=wl(c[C>>2]|0,t)|0;b=Sk(u,5,b,((c[t>>2]|0)+7|0)>>>3,0)|0;if(!b){b=c[t>>2]|0;if(b>>>0>e>>>0){t=c[u>>2]|0;sk(t,t,b-e|0)}b=Ln(c[u>>2]|0,v,c[A>>2]|0,c[B>>2]|0)|0;Jl(c[u>>2]|0)}f=a;e=b;break a}while(0);f=a;e=Ln(b,v,c[A>>2]|0,c[B>>2]|0)|0}else{f=a;e=68}}else f=0}else{f=0;e=70}}else f=0}else f=0}else f=0;while(0);Jl(c[v+8>>2]|0);Jl(c[v+12>>2]|0);Jl(c[v+16>>2]|0);Jl(c[y>>2]|0);Rj(v+20|0);Jl(c[v+32>>2]|0);Jl(c[v+36>>2]|0);Jl(c[z>>2]|0);Rj(v+44|0);Jl(c[C>>2]|0);Jl(c[A>>2]|0);Jl(c[B>>2]|0);cf(f);sf(c[x>>2]|0);Kh(w);if(!(nf(1)|0)){D=e;l=E;return D|0}if(!e)b=47183;else b=Pn(e)|0;c[D>>2]=b;Oe(47188,D);D=e;l=E;return D|0}function Fm(a){a=a|0;var b=0,d=0,e=0,f=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=f;c[e>>2]=0;b=uf(a,46949,1)|0;if(!b){a=uf(a,46925,5)|0;if((a|0)!=0?(d=zf(a,1)|0,sf(a),(d|0)!=0):0){if(Eg(0,d,0,e)|0)c[e>>2]=0;cf(d);a=c[e>>2]|0}else a=0}else{a=Af(b,1,5)|0;sf(b);if(!a)a=0;else{d=lk(a)|0;c[e>>2]=d;Jl(a);a=d}}l=f;return a|0}function Gm(a,b,c){a=a|0;b=b|0;c=c|0;return ((a|0)==18?0:4)|0}function Hm(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;G=l;l=l+176|0;if((l|0)>=(m|0))$(176);E=G+88|0;D=G+80|0;i=G+72|0;h=G+64|0;q=G+32|0;p=G;F=G+112|0;w=G+108|0;r=G+104|0;y=G+100|0;B=G+140|0;C=G+96|0;c[w>>2]=0;c[r>>2]=0;c[y>>2]=0;c[F>>2]=0;c[F+4>>2]=0;c[F+8>>2]=0;c[F+12>>2]=0;c[F+16>>2]=0;c[F+20>>2]=0;c[F+24>>2]=0;g=uf(d,46885,0)|0;do if(g){e=Eh(g,w,0)|0;if(!e){n=c[w>>2]|0;o=(n&4096|0)!=0;if(!(n&512)){e=F+24|0;if(!o){j=10;break}c[h>>2]=e;c[h+4>>2]=0;e=If(d,0,46920,h)|0;j=11;break}e=F+4|0;h=F+8|0;i=F+12|0;j=F+16|0;k=F+20|0;n=F+24|0;if(o){c[p>>2]=F;c[p+4>>2]=e;c[p+8>>2]=h;c[p+12>>2]=i;c[p+16>>2]=j;c[p+20>>2]=k;c[p+24>>2]=n;c[p+28>>2]=0;e=If(d,0,46891,p)|0;j=11;break}else{c[q>>2]=F;c[q+4>>2]=e;c[q+8>>2]=h;c[q+12>>2]=i;c[q+16>>2]=j;c[q+20>>2]=k;c[q+24>>2]=n;c[q+28>>2]=0;e=If(d,0,46906,q)|0;j=11;break}}else f=0}else{e=F+24|0;j=10}while(0);if((j|0)==10){c[i>>2]=e;c[i+4>>2]=0;e=If(d,0,46923,i)|0;j=11}a:do if((j|0)==11)if(!e){sf(g);g=uf(d,46925,5)|0;if((g|0)!=0?(f=zf(g,1)|0,(f|0)!=0):0){e=Fg(f,r,y,F,F+4|0,F+8|0,F+12|0,F+16|0,F+20|0)|0;if(!e)e=F;else break}else{f=c[w>>2]|0;c[r>>2]=f>>>11&2;c[y>>2]=f>>>12&1;f=0;e=F}e=c[e>>2]|0;if(((((((e|0)!=0?(kk(e),x=c[F+4>>2]|0,(x|0)!=0):0)?(kk(x),A=c[F+8>>2]|0,(A|0)!=0):0)?(kk(A),s=c[F+12>>2]|0,(s|0)!=0):0)?(kk(s),t=c[F+16>>2]|0,(t|0)!=0):0)?(kk(t),u=c[F+20>>2]|0,(u|0)!=0):0)?(kk(u),z=F+24|0,v=c[z>>2]|0,(v|0)!=0):0){kk(v);if(c[w>>2]&4096|0){if((c[y>>2]|0)!=1){e=69;break}e=Ng(c[z>>2]|0,256)|0;if(e|0)break}h=0;while(1){if((h|0)==5){h=6;continue}e=c[F+(h<<2)>>2]|0;if((e|0)!=0?(c[e+12>>2]&4|0)!=0:0){A=wl(e,C)|0;z=((c[C>>2]|0)+7|0)>>>3;c[C>>2]=z;c[D>>2]=a[46931+h>>0];c[D+4>>2]=z;lp(B,30,46938,D)|0;lh(b,B,Fo(B)|0);lh(b,A,c[C>>2]|0);lh(b,46947,1)}else{e=Ok(e,0,C,0)|0;if(!e)break;A=c[C>>2]|0;c[E>>2]=a[46931+h>>0];c[E+4>>2]=A;lp(B,30,46938,E)|0;lh(b,B,Fo(B)|0);lh(b,e,c[C>>2]|0);lh(b,46947,1);cf(e)}h=h+1|0;if((h|0)>=7){e=0;break a}}e=Sn()|0}else e=68}else f=0;while(0);cf(f);sf(g);Jl(c[F>>2]|0);Jl(c[F+4>>2]|0);Jl(c[F+8>>2]|0);Jl(c[F+12>>2]|0);Jl(c[F+16>>2]|0);Jl(c[F+20>>2]|0);Jl(c[F+24>>2]|0);l=G;return e|0}function Im(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;k=l;l=l+1008|0;if((l|0)>=(m|0))$(1008);j=k;h=k+8|0;if((sh(a)|0)!=(g|0)){j=49658;l=k;return j|0}if(eh(j,a,0)|0){j=49699;l=k;return j|0}switch(b|0){case 0:{lh(c[j>>2]|0,d,e);i=8;break}case 1:{Yq(h|0,97,1e3)|0;b=0;do{lh(c[j>>2]|0,h,1e3);b=b+1|0}while((b|0)!=1e3);i=8;break}default:b=49641}if((i|0)==8){b=(Tp(ph(c[j>>2]|0,a)|0,f,g)|0)==0;b=b?0:49625}kh(c[j>>2]|0);j=b;l=k;return j|0}function Jm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;h=b+148|0;j=c[h>>2]|0;if(j>>>0>128)He(49719,112,49733);i=b+152|0;g=c[i>>2]|0;if(!g)return;k=b+144|0;f=c[k>>2]|0;if((f|0)==(j|0)){Te(pb[g&63](b,b,1)|0);c[k>>2]=0;l=b+128|0;f=l;f=_q(c[f>>2]|0,c[f+4>>2]|0,1,0)|0;g=D;c[l>>2]=f;c[l+4>>2]=g;if((f|0)==0&(g|0)==0){f=b+136|0;l=f;l=_q(c[l>>2]|0,c[l+4>>2]|0,1,0)|0;c[f>>2]=l;c[f+4>>2]=D;f=0}else f=0}if(!d)return;a:do if(f){b:do if(e|0){if(f>>>0<j>>>0)do{l=a[d>>0]|0;c[k>>2]=f+1;a[b+f>>0]=l;e=e+-1|0;if(!e)break b;d=d+1|0;f=c[k>>2]|0}while(f>>>0<j>>>0);g=c[h>>2]|0;if(g>>>0>128)He(49719,112,49733);h=c[i>>2]|0;if(!((f|0)==(g|0)&(h|0)!=0))break a;Te(pb[h&63](b,b,1)|0);c[k>>2]=0;g=b+128|0;h=g;h=_q(c[h>>2]|0,c[h+4>>2]|0,1,0)|0;l=D;c[g>>2]=h;c[g+4>>2]=l;if(!((h|0)==0&(l|0)==0))break a;l=b+136|0;h=l;h=_q(c[h>>2]|0,c[h+4>>2]|0,1,0)|0;c[l>>2]=h;c[l+4>>2]=D;break a}while(0);e=c[h>>2]|0;if(e>>>0>128)He(49719,112,49733);d=c[i>>2]|0;if(!d)return;if((c[k>>2]|0)!=(e|0))return;Te(pb[d&63](b,b,1)|0);c[k>>2]=0;j=b+128|0;k=j;k=_q(c[k>>2]|0,c[k+4>>2]|0,1,0)|0;l=D;c[j>>2]=k;c[j+4>>2]=l;if(!((k|0)==0&(l|0)==0))return;l=b+136|0;k=l;k=_q(c[k>>2]|0,c[k+4>>2]|0,1,0)|0;c[l>>2]=k;c[l+4>>2]=D;return}while(0);if(e>>>0<j>>>0)f=0;else{l=(e>>>0)/(j>>>0)|0;f=pb[c[i>>2]&63](b,d,l)|0;c[k>>2]=0;i=b+128|0;g=i;g=_q(c[g>>2]|0,c[g+4>>2]|0,l|0,0)|0;h=D;m=b+136|0;n=m;n=_q((h>>>0<0|(h|0)==0&g>>>0<l>>>0)&1|0,0,c[n>>2]|0,c[n+4>>2]|0)|0;c[m>>2]=n;c[m+4>>2]=D;c[i>>2]=g;c[i+4>>2]=h;l=S(l,j)|0;e=e-l|0;d=d+l|0}Te(f);if(!e)return;while(1){f=c[k>>2]|0;if(f>>>0>=j>>>0){d=29;break}n=a[d>>0]|0;c[k>>2]=f+1;a[b+f>>0]=n;e=e+-1|0;if(!e){d=29;break}else d=d+1|0}if((d|0)==29)return}function Km(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;q=b+3|0;q=q+(0-(q&3))|0;r=b+84|0;p=c[c[r>>2]>>2]|0;s=b+88|0;f=c[s>>2]|0;do if(f){o=p-f|0;o=o>>>0>e>>>0?e:o;g=b+68+f|0;if(!((g|d)&3))if(o>>>0>3){l=o+-4|0;m=l&-4;n=m+4|0;h=d+n|0;i=d;j=g;k=o;while(1){c[j>>2]=c[i>>2];k=k+-4|0;if(k>>>0<=3)break;else{i=i+4|0;j=j+4|0}}i=l-m|0;g=g+n|0}else{i=o;h=d}else{h=d;i=o}if(i){f=i;while(1){a[g>>0]=a[h>>0]|0;f=f+-1|0;if(!f)break;else{h=h+1|0;g=g+1|0}}f=c[s>>2]|0}n=f+o|0;c[s>>2]=n;if(n>>>0<p>>>0)return;else{g=pb[c[(c[r>>2]|0)+8>>2]&63](q,b+68|0,p)|0;c[s>>2]=0;d=d+o|0;f=e-o|0;break}}else{f=e;g=0}while(0);i=f&0-p;if(f>>>0<p>>>0){h=d;o=f;n=g}else{h=d+i|0;o=f-i|0;n=pb[c[(c[r>>2]|0)+8>>2]&63](q,d,i)|0}if(o|0){f=c[s>>2]|0;g=b+68+f|0;if(o>>>0>3&((g|h)&3|0)==0){j=o+-4|0;k=j&-4;m=k+4|0;l=h+m|0;i=g;d=o;while(1){c[i>>2]=c[h>>2];d=d+-4|0;if(d>>>0<=3)break;else{h=h+4|0;i=i+4|0}}i=j-k|0;if(i){h=l;g=g+m|0;f=i;t=20}}else{f=o;t=20}if((t|0)==20){while(1){a[g>>0]=a[h>>0]|0;f=f+-1|0;if(!f)break;else{h=h+1|0;g=g+1|0;t=20}}f=c[s>>2]|0}c[s>>2]=f+o}if(!n)return;Te(n);return}function Lm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;J=l;l=l+624|0;if((l|0)>=(m|0))$(624);H=J+96|0;C=J;o=J+228|0;D=J+136|0;E=J+592|0;F=J+336|0;G=J+320|0;g=J+104|0;if(!(c[17642]|0)){c[17642]=1;f=o;B=f+92|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(B|0));f=D;B=f+92|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(B|0));f=G;B=f+16|0;do{a[f>>0]=0;f=f+1|0}while((f|0)<(B|0));f=C;B=f+92|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(B|0));Lm(C,49754,32)|0;Km(C,49786,131);B=C+3|0;Te(wb[c[(c[C+84>>2]|0)+12>>2]&3](B+(0-(B&3))|0,C+68|0,c[C+88>>2]|0,G)|0);if(C&4){f=C;h=92;do{a[f>>0]=0;f=f+1|0;h=h+-1|0}while((h|0)!=0&(f&7|0)!=0);if(h>>>0>=8)I=5}else{f=C;h=92;I=5}if((I|0)==5){k=h+-8|0;n=k&-8;j=n+8|0;i=f;while(1){B=i;c[B>>2]=0;c[B+4>>2]=0;h=h+-8|0;if(h>>>0<=7)break;else i=i+8|0}f=f+j|0;h=k-n|0}if(h|0)while(1){a[f>>0]=0;h=h+-1|0;if(!h)break;else f=f+1|0}if(!(Tp(49917,G,16)|0)){f=G;B=f+16|0;do{a[f>>0]=0;f=f+1|0}while((f|0)<(B|0));Lm(o,49754,32)|0;Km(o,49786,32);Km(o,49818,64);Km(o,49882,16);Km(o,49898,8);Km(o,49906,4);Km(o,49910,2);Km(o,49912,1);Km(o,49913,1);Km(o,49914,1);Km(o,49915,1);Km(o,49916,1);B=o+3|0;Te(wb[c[(c[o+84>>2]|0)+12>>2]&3](B+(0-(B&3))|0,o+68|0,c[o+88>>2]|0,G)|0);if(!(Tp(49917,G,16)|0)){f=G;B=f+16|0;do{a[f>>0]=0;f=f+1|0}while((f|0)<(B|0));f=C;B=f+92|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(B|0));Lm(C,49933,32)|0;Km(C,49965,16);B=C+3|0;Te(wb[c[(c[C+84>>2]|0)+12>>2]&3](B+(0-(B&3))|0,C+68|0,c[C+88>>2]|0,G)|0);if(C&4){f=C;h=92;do{a[f>>0]=0;f=f+1|0;h=h+-1|0}while((h|0)!=0&(f&7|0)!=0);if(h>>>0>=8)I=15}else{f=C;h=92;I=15}if((I|0)==15){k=h+-8|0;n=k&-8;j=n+8|0;i=f;while(1){B=i;c[B>>2]=0;c[B+4>>2]=0;h=h+-8|0;if(h>>>0<=7)break;else i=i+8|0}f=f+j|0;h=k-n|0}if(h|0)while(1){a[f>>0]=0;h=h+-1|0;if(!h)break;else f=f+1|0}if(!(Tp(49981,G,16)|0)){Lm(D,49997,32)|0;h=C+3|0;h=h+(0-(h&3))|0;i=C+84|0;j=C+68|0;k=C+88|0;n=C+8|0;o=C+16|0;p=C+24|0;q=C+32|0;r=C+40|0;s=C+48|0;t=C+56|0;u=C+64|0;v=C+72|0;w=C+80|0;x=k+1|0;y=k+2|0;z=k+3|0;A=0;do{f=A&255;Yq(E|0,f|0,32)|0;if(A|0)Yq(F|0,f|0,A|0)|0;f=C;B=f+92|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(B|0));Lm(C,E,32)|0;Km(C,F,A);Te(wb[c[(c[i>>2]|0)+12>>2]&3](h,j,c[k>>2]|0,G)|0);B=C;c[B>>2]=0;c[B+4>>2]=0;B=n;c[B>>2]=0;c[B+4>>2]=0;B=o;c[B>>2]=0;c[B+4>>2]=0;B=p;c[B>>2]=0;c[B+4>>2]=0;B=q;c[B>>2]=0;c[B+4>>2]=0;B=r;c[B>>2]=0;c[B+4>>2]=0;B=s;c[B>>2]=0;c[B+4>>2]=0;B=t;c[B>>2]=0;c[B+4>>2]=0;B=u;c[B>>2]=0;c[B+4>>2]=0;B=v;c[B>>2]=0;c[B+4>>2]=0;B=w;c[B>>2]=0;c[B+4>>2]=0;a[k>>0]=0;a[x>>0]=0;a[y>>0]=0;a[z>>0]=0;Km(D,G,16);A=A+1|0}while((A|0)!=256);f=D+3|0;Te(wb[c[(c[D+84>>2]|0)+12>>2]&3](f+(0-(f&3))|0,D+68|0,c[D+88>>2]|0,G)|0);f=(Tp(50029,G,16)|0)==0;f=f?0:50045}else f=50117}else f=50093}else f=50069;c[17643]=f;if(f|0){c[H>>2]=f;Le(50141,H)}}if((e|0)!=32){I=44;l=J;return I|0}if(c[17643]|0){I=50;l=J;return I|0}f=b+84|0;c[f>>2]=12580;if(!(d&3)){c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];c[g+8>>2]=c[d+8>>2];c[g+12>>2]=c[d+12>>2];c[g+16>>2]=c[d+16>>2];c[g+20>>2]=c[d+20>>2];c[g+24>>2]=c[d+24>>2];c[g+28>>2]=c[d+28>>2];f=12580}else{a[g>>0]=a[d>>0]|0;a[g+1>>0]=a[d+1>>0]|0;a[g+2>>0]=a[d+2>>0]|0;a[g+3>>0]=a[d+3>>0]|0;a[g+4>>0]=a[d+4>>0]|0;a[g+5>>0]=a[d+5>>0]|0;a[g+6>>0]=a[d+6>>0]|0;a[g+7>>0]=a[d+7>>0]|0;a[g+8>>0]=a[d+8>>0]|0;a[g+9>>0]=a[d+9>>0]|0;a[g+10>>0]=a[d+10>>0]|0;a[g+11>>0]=a[d+11>>0]|0;a[g+12>>0]=a[d+12>>0]|0;a[g+13>>0]=a[d+13>>0]|0;a[g+14>>0]=a[d+14>>0]|0;a[g+15>>0]=a[d+15>>0]|0;a[g+16>>0]=a[d+16>>0]|0;a[g+17>>0]=a[d+17>>0]|0;a[g+18>>0]=a[d+18>>0]|0;a[g+19>>0]=a[d+19>>0]|0;a[g+20>>0]=a[d+20>>0]|0;a[g+21>>0]=a[d+21>>0]|0;a[g+22>>0]=a[d+22>>0]|0;a[g+23>>0]=a[d+23>>0]|0;a[g+24>>0]=a[d+24>>0]|0;a[g+25>>0]=a[d+25>>0]|0;a[g+26>>0]=a[d+26>>0]|0;a[g+27>>0]=a[d+27>>0]|0;a[g+28>>0]=a[d+28>>0]|0;a[g+29>>0]=a[d+29>>0]|0;a[g+30>>0]=a[d+30>>0]|0;a[g+31>>0]=a[d+31>>0]|0;f=c[f>>2]|0}d=b+3|0;c[b+88>>2]=0;sb[c[f+4>>2]&7](d+(0-(d&3))|0,g);if(g&4){f=32;do{a[g>>0]=0;g=g+1|0;f=f+-1|0}while((f|0)!=0&(g&7|0)!=0);if(f>>>0>=8)I=36}else{f=32;I=36}if((I|0)==36){i=f+-8|0;j=i&-8;k=j+8|0;h=g;while(1){I=h;c[I>>2]=0;c[I+4>>2]=0;f=f+-8|0;if(f>>>0<=7)break;else h=h+8|0}f=i-j|0;g=g+k|0}if(!f){I=0;l=J;return I|0}while(1){a[g>>0]=0;f=f+-1|0;if(!f){f=0;break}else g=g+1|0}l=J;return f|0}function Mm(b,e){b=b|0;e=e|0;var f=0,g=0;f=e+3|0;c[b>>2]=(d[e+2>>0]|0)<<16|(d[f>>0]|0)<<24&50331648|(d[e+1>>0]|0)<<8|(d[e>>0]|0);g=e+6|0;c[b+4>>2]=((d[e+5>>0]|0)<<16|(d[g>>0]|0)<<24|(d[e+4>>0]|0)<<8|(d[f>>0]|0))>>>2&67108611;f=e+9|0;c[b+8>>2]=((d[e+8>>0]|0)<<16|(d[f>>0]|0)<<24|(d[e+7>>0]|0)<<8|(d[g>>0]|0))>>>4&67092735;c[b+12>>2]=((d[e+11>>0]|0)<<16|(d[e+12>>0]|0)<<24|(d[e+10>>0]|0)<<8|(d[f>>0]|0))>>>6&66076671;c[b+16>>2]=(d[e+14>>0]|0)<<8|(d[e+15>>0]|0)<<16&983040|(d[e+13>>0]|0);f=b+20|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[b+40>>2]=(d[e+18>>0]|0)<<16|(d[e+19>>0]|0)<<24|(d[e+17>>0]|0)<<8|(d[e+16>>0]|0);c[b+44>>2]=(d[e+22>>0]|0)<<16|(d[e+23>>0]|0)<<24|(d[e+21>>0]|0)<<8|(d[e+20>>0]|0);c[b+48>>2]=(d[e+26>>0]|0)<<16|(d[e+27>>0]|0)<<24|(d[e+25>>0]|0)<<8|(d[e+24>>0]|0);c[b+52>>2]=(d[e+30>>0]|0)<<16|(d[e+31>>0]|0)<<24|(d[e+29>>0]|0)<<8|(d[e+28>>0]|0);a[b+56>>0]=0;return}function Nm(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0;t=a[b+56>>0]|0?0:16777216;u=c[b+4>>2]|0;m=c[b+8>>2]|0;n=c[b+12>>2]|0;o=c[b+16>>2]|0;v=b+20|0;k=c[v>>2]|0;w=b+24|0;j=c[w>>2]|0;x=b+28|0;i=c[x>>2]|0;y=b+32|0;h=c[y>>2]|0;z=b+36|0;g=c[z>>2]|0;if(f>>>0<=15){q=k;r=j;s=i;t=h;u=g;c[v>>2]=q;c[w>>2]=r;c[x>>2]=s;c[y>>2]=t;c[z>>2]=u;return 124}p=o*5|0;q=n*5|0;r=m*5|0;s=u*5|0;l=c[b>>2]|0;b=e;while(1){I=d[b+3>>0]|0;A=(d[b+2>>0]<<16|I<<24&50331648|d[b+1>>0]<<8|d[b>>0])+k|0;G=d[b+6>>0]|0;I=((G<<24|I|d[b+5>>0]<<16|d[b+4>>0]<<8)>>>2&67108863)+j|0;F=d[b+9>>0]|0;G=((d[b+8>>0]<<16|F<<24|d[b+7>>0]<<8|G)>>>4&67108863)+i|0;F=((d[b+11>>0]<<16|d[b+12>>0]<<24|d[b+10>>0]<<8|F)>>>6)+h|0;k=(d[b+15>>0]<<16|t|d[b+14>>0]<<8|d[b+13>>0])+g|0;j=kr(A|0,0,l|0,0)|0;i=D;e=kr(I|0,0,p|0,0)|0;i=_q(e|0,D|0,j|0,i|0)|0;j=D;e=kr(G|0,0,q|0,0)|0;e=_q(i|0,j|0,e|0,D|0)|0;j=D;i=kr(F|0,0,r|0,0)|0;i=_q(e|0,j|0,i|0,D|0)|0;j=D;e=kr(k|0,0,s|0,0)|0;e=_q(i|0,j|0,e|0,D|0)|0;j=D;i=kr(A|0,0,u|0,0)|0;h=D;E=kr(I|0,0,l|0,0)|0;h=_q(E|0,D|0,i|0,h|0)|0;i=D;E=kr(G|0,0,p|0,0)|0;E=_q(h|0,i|0,E|0,D|0)|0;i=D;h=kr(F|0,0,q|0,0)|0;h=_q(E|0,i|0,h|0,D|0)|0;i=D;E=kr(k|0,0,r|0,0)|0;E=_q(h|0,i|0,E|0,D|0)|0;i=D;h=kr(A|0,0,m|0,0)|0;g=D;C=kr(I|0,0,u|0,0)|0;g=_q(C|0,D|0,h|0,g|0)|0;h=D;C=kr(G|0,0,l|0,0)|0;C=_q(g|0,h|0,C|0,D|0)|0;h=D;g=kr(F|0,0,p|0,0)|0;g=_q(C|0,h|0,g|0,D|0)|0;h=D;C=kr(k|0,0,q|0,0)|0;C=_q(g|0,h|0,C|0,D|0)|0;h=D;g=kr(A|0,0,n|0,0)|0;H=D;B=kr(I|0,0,m|0,0)|0;H=_q(B|0,D|0,g|0,H|0)|0;g=D;B=kr(G|0,0,u|0,0)|0;B=_q(H|0,g|0,B|0,D|0)|0;g=D;H=kr(F|0,0,l|0,0)|0;H=_q(B|0,g|0,H|0,D|0)|0;g=D;B=kr(k|0,0,p|0,0)|0;B=_q(H|0,g|0,B|0,D|0)|0;g=D;A=kr(A|0,0,o|0,0)|0;H=D;I=kr(I|0,0,n|0,0)|0;H=_q(I|0,D|0,A|0,H|0)|0;A=D;G=kr(G|0,0,m|0,0)|0;G=_q(H|0,A|0,G|0,D|0)|0;A=D;F=kr(F|0,0,u|0,0)|0;F=_q(G|0,A|0,F|0,D|0)|0;A=D;k=kr(k|0,0,l|0,0)|0;k=_q(F|0,A|0,k|0,D|0)|0;A=D;j=gr(e|0,j|0,26)|0;j=_q(E|0,i|0,j|0,0)|0;i=gr(j|0,D|0,26)|0;i=_q(C|0,h|0,i|0,0)|0;h=gr(i|0,D|0,26)|0;i=i&67108863;h=_q(B|0,g|0,h|0,0)|0;g=gr(h|0,D|0,26)|0;h=h&67108863;g=_q(k|0,A|0,g|0,0)|0;A=gr(g|0,D|0,26)|0;g=g&67108863;A=A*5|0;k=A+e&67108863;j=((A+(e&67108863)|0)>>>26)+(j&67108863)|0;f=f+-16|0;if(f>>>0<=15)break;else b=b+16|0}c[v>>2]=k;c[w>>2]=j;c[x>>2]=i;c[y>>2]=h;c[z>>2]=g;return 124}function Om(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;i=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=i;if(!e)d=100;else{h=g;j=h+16|0;do{a[h>>0]=0;h=h+1|0}while((h|0)<(j|0));cr(g|0,d|0,e|0)|0;a[g+e>>0]=1;a[b+56>>0]=1;Nm(b,g,16)|0;d=224}j=c[b+24>>2]|0;t=(c[b+28>>2]|0)+(j>>>26)|0;h=t&67108863;r=(t>>>26)+(c[b+32>>2]|0)|0;q=r&67108863;k=(r>>>26)+(c[b+36>>2]|0)|0;g=((k>>>26)*5|0)+(c[b+20>>2]|0)|0;e=g&67108863;j=(g>>>26)+(j&67108863)|0;v=((e+5|0)>>>26)+j|0;u=v>>>26;s=(u+h|0)>>>26;o=(k|-67108864)+((s+q|0)>>>26)|0;p=(o>>>31)+-1|0;n=o>>31;j=v&67108863&p|n&j;h=u+t&67108863&p|n&h;q=s+r&67108863&p|n&q;e=_q(g+5&67108863&p|n&e|j<<26|0,0,c[b+40>>2]|0,0)|0;g=D;j=_q(j>>>6|h<<20|0,0,c[b+44>>2]|0,0)|0;g=_q(j|0,D|0,g|0,0)|0;j=D;h=_q(h>>>12|q<<14|0,0,c[b+48>>2]|0,0)|0;j=_q(h|0,D|0,j|0,0)|0;h=D;k=_q(q>>>18|(p&o|n&k)<<8|0,0,c[b+52>>2]|0,0)|0;h=_q(k|0,D|0,h|0,0)|0;a[f+3>>0]=e>>>24;a[f+2>>0]=e>>>16;a[f+1>>0]=e>>>8;a[f>>0]=e;a[f+7>>0]=g>>>24;a[f+6>>0]=g>>>16;a[f+5>>0]=g>>>8;a[f+4>>0]=g;a[f+11>>0]=j>>>24;a[f+10>>0]=j>>>16;a[f+9>>0]=j>>>8;a[f+8>>0]=j;a[f+15>>0]=h>>>24;a[f+14>>0]=h>>>16;a[f+13>>0]=h>>>8;a[f+12>>0]=h;h=b;j=h+56|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(j|0));l=i;return d|0}function Pm(a){a=a|0;if(a|0){Qm();return}if(c[17644]|0)return;c[17644]=1;return}function Qm(){var a=0,b=0,d=0,e=0,f=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=f+16|0;d=f+8|0;b=f;if(!(c[17644]|0))c[17644]=1;a=Vn(12596)|0;if(a|0){c[b>>2]=Pn(a)|0;Me(50172,b)}c[17645]=1;do if(!(c[17646]|0)){if(!(c[17647]|0))a=kf(1,664)|0;else a=lf(1,664)|0;c[17646]=a;if(!(c[17647]|0))a=kf(1,664)|0;else a=lf(1,664)|0;c[17648]=a;if(vq(52444,4)|0){b=ze(50209)|0;Me(b,d)}if(!(vq(52456,4)|0)){c[17649]=3;break}else{b=ze(50209)|0;Me(b,d)}}while(0);c[17645]=0;a=Wn(12596)|0;if(!a){l=f;return}else{c[e>>2]=Pn(a)|0;Me(50247,e)}}function Rm(){var a=0,b=0,d=0,e=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=e+8|0;b=e;a=Vn(12596)|0;if(a|0){c[b>>2]=Pn(a)|0;Me(50172,b)}c[17645]=1;Dn(0,0,0,0)|0;c[17650]=0;c[17645]=0;a=Wn(12596)|0;if(!a){l=e;return}else{c[d>>2]=Pn(a)|0;Me(50247,d)}}function Sm(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;a=l;l=l+48|0;if((l|0)>=(m|0))$(48);b=a;p=c[17651]|0;o=c[17652]|0;n=c[17653]|0;k=c[17654]|0;j=c[17655]|0;i=c[17656]|0;h=c[17657]|0;g=c[17658]|0;f=c[17659]|0;e=c[17660]|0;d=(An()|0)!=0;c[b>>2]=600;c[b+4>>2]=p;c[b+8>>2]=o;c[b+12>>2]=n;c[b+16>>2]=k;c[b+20>>2]=j;c[b+24>>2]=i;c[b+28>>2]=h;c[b+32>>2]=g;c[b+36>>2]=f;c[b+40>>2]=e;c[b+44>>2]=d?50284:71847;Je(50300,b);l=a;return}function Tm(){c[17647]=1;return}function Um(){c[17661]=1;return}function Vm(a){a=a|0;return}function Wm(a){a=a|0;return 0}function Xm(){Qm();return c[17661]|0}function Ym(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;o=l;l=l+192|0;if((l|0)>=(m|0))$(192);j=o;k=b+600|0;if(!(c[17645]|0))Ie(50424,50439,615,50455);si(j);f=k;d=b+580|0;e=f+20|0;do{a[f>>0]=a[d>>0]|0;f=f+1|0;d=d+1|0}while((f|0)<(e|0));n=b+620|0;f=n;d=b;e=f+44|0;do{a[f>>0]=a[d>>0]|0;f=f+1|0;d=d+1|0}while((f|0)<(e|0));ti(j,k);f=b;d=k;e=f+20|0;do{a[f>>0]=a[d>>0]|0;f=f+1|0;d=d+1|0}while((f|0)<(e|0));if((c[17664]|0)!=0&(c[17646]|0)==(b|0)){a[b>>0]=a[b>>0]^a[71826];g=b+1|0;a[g>>0]=a[g>>0]^a[71827];g=b+2|0;a[g>>0]=a[g>>0]^a[71828];g=b+3|0;a[g>>0]=a[g>>0]^a[71829];g=b+4|0;a[g>>0]=a[g>>0]^a[71830];g=b+5|0;a[g>>0]=a[g>>0]^a[71831];g=b+6|0;a[g>>0]=a[g>>0]^a[71832];g=b+7|0;a[g>>0]=a[g>>0]^a[71833];g=b+8|0;a[g>>0]=a[g>>0]^a[71834];g=b+9|0;a[g>>0]=a[g>>0]^a[71835];g=b+10|0;a[g>>0]=a[g>>0]^a[71836];g=b+11|0;a[g>>0]=a[g>>0]^a[71837];g=b+12|0;a[g>>0]=a[g>>0]^a[71838];g=b+13|0;a[g>>0]=a[g>>0]^a[71839];g=b+14|0;a[g>>0]=a[g>>0]^a[71840];g=b+15|0;a[g>>0]=a[g>>0]^a[71841];g=b+16|0;a[g>>0]=a[g>>0]^a[71842];g=b+17|0;a[g>>0]=a[g>>0]^a[71843];g=b+18|0;a[g>>0]=a[g>>0]^a[71844];g=b+19|0;a[g>>0]=a[g>>0]^a[71845];g=1;h=0}else{g=1;h=0}do{f=k;d=b+h|0;e=f+20|0;do{a[f>>0]=a[d>>0]|0;f=f+1|0;d=d+1|0}while((f|0)<(e|0));f=h;h=h+20|0;i=b+h|0;d=f+40|0;if((f+104|0)<600){f=n;d=b+d|0;e=f+44|0;do{a[f>>0]=a[d>>0]|0;f=f+1|0;d=d+1|0}while((f|0)<(e|0))}else{e=20;while(1){d=(d|0)>599?0:d;a[k+e>>0]=a[b+d>>0]|0;e=e+1|0;if((e|0)==64)break;else d=d+1|0}}ti(j,k);f=i;d=k;e=f+20|0;do{a[f>>0]=a[d>>0]|0;f=f+1|0;d=d+1|0}while((f|0)<(e|0));g=g+1|0}while((g|0)!=30);if((c[17646]|0)!=(b|0)){Te(384);l=o;return}ui(71826,b,600);c[17664]=1;Te(384);l=o;return}function Zm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0;N=l;l=l+832|0;if((l|0)>=(m|0))$(832);M=N+136|0;K=N+128|0;J=N+120|0;I=N+112|0;H=N+104|0;G=N+96|0;F=N+88|0;E=N+80|0;D=N+72|0;L=N+64|0;y=N+56|0;x=N+48|0;w=N+40|0;B=N+32|0;A=N+24|0;z=N+16|0;C=N+8|0;f=N;t=N+144|0;u=N+224|0;v=N+140|0;Qm();g=e>>>0>1&(c[17661]|0)!=0?1:e&3;e=Vn(12596)|0;if(e|0){c[f>>2]=Pn(e)|0;Me(50172,f)}c[17645]=1;if(g>>>0>1){c[17660]=(c[17660]|0)+d;c[17659]=(c[17659]|0)+1}else{c[17658]=(c[17658]|0)+d;c[17657]=(c[17657]|0)+1}a:do if(d|0){p=t+12|0;q=t+36|0;r=(g|0)!=2;o=(g|0)==2;n=d;k=d>>>0>600?600:d;b:while(1){j=b;i=k;while(1){c[v>>2]=qq()|0;if((c[3160]|0)==-1)c[3160]=c[v>>2];if((c[3160]|0)!=(c[v>>2]|0)){c[3160]=c[v>>2];d=c[3160]|0;if(!(c[17645]|0)){f=14;break b}c[17655]=(c[17655]|0)+4;c[17654]=(c[17654]|0)+1;h=c[17662]|0;f=h+1|0;c[17662]=f;e=c[17646]|0;h=e+h|0;a[h>>0]=a[h>>0]^d&255;if(f>>>0>599){c[17662]=0;Ym(e);c[17651]=(c[17651]|0)+1;c[17663]=0;f=c[17662]|0;e=c[17646]|0}g=f+1|0;c[17662]=g;h=e+f|0;a[h>>0]=a[h>>0]^d>>>8&255;if(g>>>0>599){c[17662]=0;Ym(e);c[17651]=(c[17651]|0)+1;c[17663]=0;f=c[17662]|0;e=c[17646]|0}else f=g;h=f+1|0;c[17662]=h;g=e+f|0;a[g>>0]=a[g>>0]^d>>>16&255;if(h>>>0>599){c[17662]=0;Ym(e);c[17651]=(c[17651]|0)+1;c[17663]=0}g=c[17662]|0;h=g+1|0;c[17662]=h;e=c[17646]|0;g=e+g|0;a[g>>0]=a[g>>0]^d>>>24&255;if(h>>>0>599){c[17662]=0;Ym(e);c[17651]=(c[17651]|0)+1;c[17663]=1}c[17663]=0}if(!(c[17645]|0)){f=19;break b}if(i>>>0>600){f=21;break b}c:do if(!(c[17650]|0)){e=c[17665]|0;d:do if(e|0){f=Bq(e,0,z)|0;if((f|0)==-1){e=zo()|0;if((c[e>>2]|0)==2){c[17666]=1;break}else{h=ze(50521)|0;g=c[17665]|0;d=dp(c[e>>2]|0)|0;c[A>>2]=g;c[A+4>>2]=d;Je(h,A);break}}if(_m(f,c[17665]|0,0)|0){Up(f)|0;break}if(mq(f,t)|0){h=ze(50542)|0;g=c[17665]|0;d=dp(c[(zo()|0)>>2]|0)|0;c[B>>2]=g;c[B+4>>2]=d;Je(h,B);Up(f)|0;break}if((c[p>>2]&61440|0)!=32768){h=ze(50563)|0;c[w>>2]=c[17665];Je(h,w);Up(f)|0;break}switch(c[q>>2]|0){case 0:{Je(ze(50601)|0,x);Up(f)|0;c[17666]=1;break d}case 600:{e:while(1){switch(pq(f,u,600)|0){case 600:break e;case -1:break;default:{f=38;break b}}e=zo()|0;if((c[e>>2]|0)!=4){f=40;break b}}Up(f)|0;if(!(c[17645]|0)){f=42;break b}c[17655]=(c[17655]|0)+600;c[17654]=(c[17654]|0)+1;e=u;g=599;while(1){O=a[e>>0]|0;d=c[17662]|0;h=d+1|0;c[17662]=h;f=c[17646]|0;d=f+d|0;a[d>>0]=a[d>>0]^O;if(h>>>0>599){c[17662]=0;Ym(f);c[17651]=(c[17651]|0)+1;c[17663]=(g|0)==0&1}if(!g)break;else{e=e+1|0;g=g+-1|0}}d=qq()|0;if(!(c[17645]|0)){f=48;break b}c[17655]=(c[17655]|0)+4;c[17654]=(c[17654]|0)+1;O=c[17662]|0;e=O+1|0;c[17662]=e;f=c[17646]|0;O=f+O|0;a[O>>0]=a[O>>0]^d&255;if(e>>>0>599){c[17662]=0;Ym(f);c[17651]=(c[17651]|0)+1;c[17663]=0;e=c[17662]|0;f=c[17646]|0}g=e+1|0;c[17662]=g;O=f+e|0;a[O>>0]=a[O>>0]^d>>>8&255;if(g>>>0>599){c[17662]=0;Ym(f);c[17651]=(c[17651]|0)+1;c[17663]=0;g=c[17662]|0;e=c[17646]|0}else e=f;O=g+1|0;c[17662]=O;h=e+g|0;a[h>>0]=a[h>>0]^d>>>16&255;if(O>>>0>599){c[17662]=0;Ym(e);c[17651]=(c[17651]|0)+1;c[17663]=0}h=c[17662]|0;O=h+1|0;c[17662]=O;e=c[17646]|0;h=e+h|0;a[h>>0]=a[h>>0]^d>>>24&255;if(O>>>0>599){c[17662]=0;Ym(e);c[17651]=(c[17651]|0)+1;c[17663]=1}d=fb(0)|0;if(!(c[17645]|0)){f=52;break b}c[17655]=(c[17655]|0)+4;c[17654]=(c[17654]|0)+1;O=c[17662]|0;e=O+1|0;c[17662]=e;f=c[17646]|0;O=f+O|0;a[O>>0]=a[O>>0]^d&255;if(e>>>0>599){c[17662]=0;Ym(f);c[17651]=(c[17651]|0)+1;c[17663]=0;e=c[17662]|0;f=c[17646]|0}g=e+1|0;c[17662]=g;O=f+e|0;a[O>>0]=a[O>>0]^d>>>8&255;if(g>>>0>599){c[17662]=0;Ym(f);c[17651]=(c[17651]|0)+1;c[17663]=0;g=c[17662]|0;e=c[17646]|0}else e=f;O=g+1|0;c[17662]=O;h=e+g|0;a[h>>0]=a[h>>0]^d>>>16&255;if(O>>>0>599){c[17662]=0;Ym(e);c[17651]=(c[17651]|0)+1;c[17663]=0}h=c[17662]|0;O=h+1|0;c[17662]=O;e=c[17646]|0;h=e+h|0;a[h>>0]=a[h>>0]^d>>>24&255;if(O>>>0>599){c[17662]=0;Ym(e);c[17651]=(c[17651]|0)+1;c[17663]=1}d=Qa()|0;if(!(c[17645]|0)){f=56;break b}c[17655]=(c[17655]|0)+4;c[17654]=(c[17654]|0)+1;O=c[17662]|0;e=O+1|0;c[17662]=e;f=c[17646]|0;O=f+O|0;a[O>>0]=a[O>>0]^d&255;if(e>>>0>599){c[17662]=0;Ym(f);c[17651]=(c[17651]|0)+1;c[17663]=0;e=c[17662]|0;f=c[17646]|0}g=e+1|0;c[17662]=g;O=f+e|0;a[O>>0]=a[O>>0]^d>>>8&255;if(g>>>0>599){c[17662]=0;Ym(f);c[17651]=(c[17651]|0)+1;c[17663]=0;g=c[17662]|0;e=c[17646]|0}else e=f;O=g+1|0;c[17662]=O;h=e+g|0;a[h>>0]=a[h>>0]^d>>>16&255;if(O>>>0>599){c[17662]=0;Ym(e);c[17651]=(c[17651]|0)+1;c[17663]=0}h=c[17662]|0;O=h+1|0;c[17662]=O;e=c[17646]|0;h=e+h|0;a[h>>0]=a[h>>0]^d>>>24&255;if(O>>>0>599){c[17662]=0;Ym(e);c[17651]=(c[17651]|0)+1;c[17663]=1}if(!(c[17649]|0)){f=60;break b}if((Dn(3,0,16,0)|0)<0){f=62;break b}c[17666]=1;c[17650]=1;break c}default:{Je(ze(50634)|0,y);Up(f)|0;break d}}}while(0)}while(0);if(!(r|(c[17667]|0)!=0)){c[17668]=0;e=i>>>0<16?16:i;if(!(c[17649]|0)){f=85;break b}if((Dn(3,4,e,2)|0)<0){f=87;break b}c[17668]=(c[17668]|0)+e;c[17667]=1}if(o?(s=c[17668]|0,s>>>0<i>>>0):0){if((s|0)<0){c[17668]=0;e=0}else e=s;e=i-e|0;if(e>>>0>600){f=94;break b}if(!(c[17649]|0)){f=96;break b}if((Dn(3,4,e,2)|0)<0){f=98;break b}c[17668]=(c[17668]|0)+e}while(1){if(c[17650]|0)break;c[17652]=(c[17652]|0)+1;if(!(c[17649]|0)){f=102;break b}if((Dn(3,3,120,1)|0)<0){f=104;break b}}an();d=c[3160]|0;if(!(c[17645]|0)){f=106;break b}c[17655]=(c[17655]|0)+4;c[17654]=(c[17654]|0)+1;O=c[17662]|0;e=O+1|0;c[17662]=e;f=c[17646]|0;O=f+O|0;a[O>>0]=a[O>>0]^d&255;if(e>>>0>599){c[17662]=0;Ym(f);c[17651]=(c[17651]|0)+1;c[17663]=0;e=c[17662]|0;f=c[17646]|0}g=e+1|0;c[17662]=g;O=f+e|0;a[O>>0]=a[O>>0]^d>>>8&255;if(g>>>0>599){c[17662]=0;Ym(f);c[17651]=(c[17651]|0)+1;c[17663]=0;g=c[17662]|0;e=c[17646]|0}else e=f;O=g+1|0;c[17662]=O;h=e+g|0;a[h>>0]=a[h>>0]^d>>>16&255;if(O>>>0>599){c[17662]=0;Ym(e);c[17651]=(c[17651]|0)+1;c[17663]=0}h=c[17662]|0;O=h+1|0;c[17662]=O;e=c[17646]|0;h=e+h|0;a[h>>0]=a[h>>0]^d>>>24&255;if(O>>>0<=599){if(!(c[17663]|0)){Ym(e);c[17651]=(c[17651]|0)+1}}else{c[17662]=0;Ym(e);c[17651]=(c[17651]|0)+1;c[17663]=1}d=c[17646]|0;e=c[17648]|0;f=d;g=0;while(1){c[e>>2]=(c[f>>2]|0)+-1515870811;g=g+1|0;if((g|0)==150)break;else{e=e+4|0;f=f+4|0}}Ym(d);c[17651]=(c[17651]|0)+1;Ym(c[17648]|0);c[17656]=(c[17656]|0)+1;e=i+-1|0;if(!i){h=j;i=e;e=c[17668]|0}else{g=c[17648]|0;h=c[17668]|0;f=j;d=c[17669]|0;while(1){O=d+1|0;a[f>>0]=a[g+d>>0]|0;d=O>>>0>599?0:O;if(!e)break;else{f=f+1|0;e=e+-1|0}}e=h-i|0;c[17669]=d;c[17668]=e;h=j+i|0;i=-1}if((e|0)<0)c[17668]=0;Yq(c[17648]|0,0,600)|0;O=qq()|0;if((O|0)==(c[v>>2]|0))break;d=qq()|0;if(!(c[17645]|0)){f=122;break b}c[17655]=(c[17655]|0)+4;c[17654]=(c[17654]|0)+1;O=c[17662]|0;e=O+1|0;c[17662]=e;f=c[17646]|0;O=f+O|0;a[O>>0]=a[O>>0]^d&255;if(e>>>0>599){c[17662]=0;Ym(f);c[17651]=(c[17651]|0)+1;c[17663]=0;e=c[17662]|0;f=c[17646]|0}g=e+1|0;c[17662]=g;O=f+e|0;a[O>>0]=a[O>>0]^d>>>8&255;if(g>>>0>599){c[17662]=0;Ym(f);c[17651]=(c[17651]|0)+1;c[17663]=0;g=c[17662]|0;e=c[17646]|0}else e=f;O=g+1|0;c[17662]=O;j=e+g|0;a[j>>0]=a[j>>0]^d>>>16&255;if(O>>>0>599){c[17662]=0;Ym(e);c[17651]=(c[17651]|0)+1;c[17663]=0}j=c[17662]|0;O=j+1|0;c[17662]=O;e=c[17646]|0;j=e+j|0;a[j>>0]=a[j>>0]^d>>>24&255;if(O>>>0>599){c[17662]=0;Ym(e);c[17651]=(c[17651]|0)+1;c[17663]=1}c[17663]=0;c[3160]=d;j=h}e=n-k|0;if(!e)break a;if(!(c[17645]|0)){f=9;break}else{b=b+k|0;n=e;k=e>>>0>600?600:e}}switch(f|0){case 9:{Ie(50424,50439,934,50464);break}case 14:{Ie(50424,50439,1074,50474);break}case 19:{Ie(50424,50439,953,50464);break}case 21:{Ne(50489,C);break}case 38:{J=zo()|0;O=ze(50688)|0;K=c[17665]|0;J=c[J>>2]|0;J=dp(J)|0;c[L>>2]=K;K=L+4|0;c[K>>2]=J;Me(O,L);break}case 40:{O=ze(50688)|0;K=c[17665]|0;J=c[e>>2]|0;J=dp(J)|0;c[L>>2]=K;K=L+4|0;c[K>>2]=J;Me(O,L);break}case 42:{Ie(50424,50439,1074,50474);break}case 48:{Ie(50424,50439,1074,50474);break}case 52:{Ie(50424,50439,1074,50474);break}case 56:{Ie(50424,50439,1074,50474);break}case 60:{Me(50709,D);break}case 62:{Me(50760,E);break}case 85:{Me(50709,F);break}case 87:{Me(50760,G);break}case 94:{He(50439,995,50464);break}case 96:{Me(50709,H);break}case 98:{Me(50760,I);break}case 102:{Me(50709,J);break}case 104:{Me(50760,K);break}case 106:{Ie(50424,50439,1074,50474);break}case 122:{Ie(50424,50439,1074,50474);break}}}while(0);c[17645]=0;e=Wn(12596)|0;if(!e){l=N;return}else{c[M>>2]=Pn(e)|0;Me(50247,M)}}function _m(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;p=l;l=l+64|0;if((l|0)>=(m|0))$(64);n=p+24|0;k=p+16|0;j=p+8|0;g=p;h=p+40|0;i=p+32|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;b[h>>1]=(e|0)!=0&1;b[h+2>>1]=0;c[g>>2]=h;if((jq(a,13,g)|0)!=-1){o=0;l=p;return o|0}f=zo()|0;g=i+4|0;e=0;a:while(1){switch(c[f>>2]|0){case 13:case 11:break;default:break a}if((e|0)>2){q=ze(50839)|0;c[k>>2]=d;Je(q,k)}c[i>>2]=e;c[g>>2]=25e4;nq(0,0,0,0,i)|0;c[n>>2]=h;if((jq(a,13,n)|0)==-1)e=((e|0)<10&1)+e|0;else{e=0;o=8;break}}if((o|0)==8){l=p;return e|0}q=ze(50818)|0;o=dp(c[f>>2]|0)|0;c[j>>2]=d;c[j+4>>2]=o;Je(q,j);q=-1;l=p;return q|0}function $m(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;if(!(c[17645]|0))Ie(50424,50439,1074,50474);c[17655]=(c[17655]|0)+d;c[17654]=(c[17654]|0)+1;f=d+-1|0;if(!d)return;if(e>>>0<3){while(1){h=a[b>>0]|0;g=c[17662]|0;e=g+1|0;c[17662]=e;d=c[17646]|0;g=d+g|0;a[g>>0]=a[g>>0]^h;if(e>>>0>599){c[17662]=0;Ym(d);c[17651]=(c[17651]|0)+1;c[17663]=(f|0)==0&1}if(!f)break;else{b=b+1|0;f=f+-1|0}}return}else d=0;while(1){i=a[b>>0]|0;b=b+1|0;g=c[17662]|0;h=g+1|0;c[17662]=h;e=c[17646]|0;g=e+g|0;a[g>>0]=a[g>>0]^i;d=d+1|0;if(h>>>0>599){if(!(c[17650]|0)){i=(c[17670]|0)+d|0;c[17670]=i;if(i>>>0>599){c[17650]=1;d=0}else d=0}c[17662]=0;Ym(e);c[17651]=(c[17651]|0)+1;c[17663]=(f|0)==0&1}if(!f)break;else f=f+-1|0}return}function an(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;h=l;l=l+144|0;if((l|0)>=(m|0))$(144);g=h;if(!(c[17645]|0))Ie(50424,50439,1180,50798);c[17653]=(c[17653]|0)+1;if(gb(g|0,0)|0)He(50439,1198,50798);if(!(c[17645]|0))Ie(50424,50439,1074,50474);c[17655]=(c[17655]|0)+4;c[17654]=(c[17654]|0)+1;e=a[g>>0]|0;f=c[17662]|0;b=f+1|0;c[17662]=b;d=c[17646]|0;f=d+f|0;a[f>>0]=a[f>>0]^e;if(b>>>0>599){c[17662]=0;Ym(d);c[17651]=(c[17651]|0)+1;c[17663]=0;b=c[17662]|0;d=c[17646]|0}i=a[g+1>>0]|0;e=b+1|0;c[17662]=e;f=d+b|0;a[f>>0]=a[f>>0]^i;if(e>>>0>599){c[17662]=0;Ym(d);c[17651]=(c[17651]|0)+1;c[17663]=0;e=c[17662]|0;b=c[17646]|0}else b=d;d=a[g+2>>0]|0;i=e+1|0;c[17662]=i;f=b+e|0;a[f>>0]=a[f>>0]^d;if(i>>>0>599){c[17662]=0;Ym(b);c[17651]=(c[17651]|0)+1;c[17663]=0}e=a[g+3>>0]|0;f=c[17662]|0;i=f+1|0;c[17662]=i;b=c[17646]|0;f=b+f|0;a[f>>0]=a[f>>0]^e;if(i>>>0>599){c[17662]=0;Ym(b);c[17651]=(c[17651]|0)+1;c[17663]=1}if(!(c[17645]|0))Ie(50424,50439,1074,50474);f=g+4|0;c[17655]=(c[17655]|0)+4;c[17654]=(c[17654]|0)+1;e=a[f>>0]|0;i=c[17662]|0;d=i+1|0;c[17662]=d;b=c[17646]|0;i=b+i|0;a[i>>0]=a[i>>0]^e;if(d>>>0>599){c[17662]=0;Ym(b);c[17651]=(c[17651]|0)+1;c[17663]=0;d=c[17662]|0;b=c[17646]|0}j=a[f+1>>0]|0;e=d+1|0;c[17662]=e;i=b+d|0;a[i>>0]=a[i>>0]^j;if(e>>>0>599){c[17662]=0;Ym(b);c[17651]=(c[17651]|0)+1;c[17663]=0;d=c[17662]|0;b=c[17646]|0}else d=e;e=a[f+2>>0]|0;j=d+1|0;c[17662]=j;i=b+d|0;a[i>>0]=a[i>>0]^e;if(j>>>0>599){c[17662]=0;Ym(b);c[17651]=(c[17651]|0)+1;c[17663]=0}f=a[f+3>>0]|0;i=c[17662]|0;j=i+1|0;c[17662]=j;b=c[17646]|0;i=b+i|0;a[i>>0]=a[i>>0]^f;if(j>>>0>599){c[17662]=0;Ym(b);c[17651]=(c[17651]|0)+1;c[17663]=1}Gq(0,g)|0;if(!(c[17645]|0))Ie(50424,50439,1074,50474);c[17655]=(c[17655]|0)+136;c[17654]=(c[17654]|0)+1;b=g;e=135;while(1){f=a[b>>0]|0;i=c[17662]|0;j=i+1|0;c[17662]=j;d=c[17646]|0;i=d+i|0;a[i>>0]=a[i>>0]^f;if(j>>>0>599){c[17662]=0;Ym(d);c[17651]=(c[17651]|0)+1;c[17663]=(e|0)==0&1}if(!e)break;else{b=b+1|0;e=e+-1|0}}f=fb(0)|0;c[g>>2]=f;if(!(c[17645]|0))Ie(50424,50439,1074,50474);c[17655]=(c[17655]|0)+4;c[17654]=(c[17654]|0)+1;j=c[17662]|0;d=j+1|0;c[17662]=d;b=c[17646]|0;j=b+j|0;a[j>>0]=a[j>>0]^f&255;if(d>>>0>599){c[17662]=0;Ym(b);c[17651]=(c[17651]|0)+1;c[17663]=0;d=c[17662]|0;b=c[17646]|0}e=d+1|0;c[17662]=e;j=b+d|0;a[j>>0]=a[j>>0]^f>>>8&255;if(e>>>0>599){c[17662]=0;Ym(b);c[17651]=(c[17651]|0)+1;c[17663]=0;d=c[17662]|0;b=c[17646]|0}else d=e;j=d+1|0;c[17662]=j;i=b+d|0;a[i>>0]=a[i>>0]^f>>>16&255;if(j>>>0>599){c[17662]=0;Ym(b);c[17651]=(c[17651]|0)+1;c[17663]=0}f=a[g+3>>0]|0;i=c[17662]|0;j=i+1|0;c[17662]=j;b=c[17646]|0;i=b+i|0;a[i>>0]=a[i>>0]^f;if(j>>>0>599){c[17662]=0;Ym(b);c[17651]=(c[17651]|0)+1;c[17663]=1}f=Qa()|0;c[g>>2]=f;if(!(c[17645]|0))Ie(50424,50439,1074,50474);c[17655]=(c[17655]|0)+4;c[17654]=(c[17654]|0)+1;j=c[17662]|0;b=j+1|0;c[17662]=b;d=c[17646]|0;j=d+j|0;a[j>>0]=a[j>>0]^f&255;if(b>>>0>599){c[17662]=0;Ym(d);c[17651]=(c[17651]|0)+1;c[17663]=0;b=c[17662]|0;d=c[17646]|0}e=b+1|0;c[17662]=e;j=d+b|0;a[j>>0]=a[j>>0]^f>>>8&255;if(e>>>0>599){c[17662]=0;Ym(d);c[17651]=(c[17651]|0)+1;c[17663]=0;e=c[17662]|0;b=c[17646]|0}else b=d;j=e+1|0;c[17662]=j;i=b+e|0;a[i>>0]=a[i>>0]^f>>>16&255;if(j>>>0>599){c[17662]=0;Ym(b);c[17651]=(c[17651]|0)+1;c[17663]=0}g=a[g+3>>0]|0;i=c[17662]|0;j=i+1|0;c[17662]=j;b=c[17646]|0;i=b+i|0;a[i>>0]=a[i>>0]^g;if(j>>>0<=599){l=h;return}c[17662]=0;Ym(b);c[17651]=(c[17651]|0)+1;c[17663]=1;l=h;return}function bn(a){a=a|0;if(!(c[17665]|0)){c[17665]=mf(a)|0;return}else He(50439,673,50868)}function cn(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;q=l;l=l+80|0;if((l|0)>=(m|0))$(80);p=q+72|0;n=q+64|0;k=q+56|0;j=q+48|0;i=q+40|0;h=q+32|0;g=q+24|0;f=q+16|0;d=q+8|0;b=q;if(!(c[17644]|0))c[17644]=1;a=Vn(12596)|0;if(a|0){c[b>>2]=Pn(a)|0;Me(50172,b)}c[17645]=1;e=c[17646]|0;if(!((c[17665]|0)!=0&(e|0)!=0&(c[17650]|0)!=0)){c[17645]=0;a=Wn(12596)|0;if(!a){l=q;return}else{c[d>>2]=Pn(a)|0;Me(50247,d)}}if(!(c[17666]|0)){c[17645]=0;a=Wn(12596)|0;if(a|0){c[f>>2]=Pn(a)|0;Me(50247,f)}Je(ze(50898)|0,g);l=q;return}a=e;b=c[17648]|0;d=0;while(1){c[b>>2]=(c[a>>2]|0)+-1515870811;d=d+1|0;if((d|0)==150)break;else{a=a+4|0;b=b+4|0}}Ym(e);c[17651]=(c[17651]|0)+1;Ym(c[17648]|0);c[17656]=(c[17656]|0)+1;b=c[17665]|0;c[h>>2]=384;b=Bq(b,65,h)|0;do if((b|0)!=-1){if(_m(b,c[17665]|0,1)|0){Up(b)|0;break}if(yq(b,0)|0){o=ze(50957)|0;k=c[17665]|0;n=dp(c[(zo()|0)>>2]|0)|0;c[j>>2]=k;c[j+4>>2]=n;Je(o,j);Up(b)|0;break}a:while(1){switch(oq(b,c[17648]|0,600)|0){case 600:break a;case -1:break;default:{o=21;break a}}a=zo()|0;if((c[a>>2]|0)!=4){o=23;break}}if((o|0)==21){a=zo()|0;o=23}if((o|0)==23){o=ze(50957)|0;i=c[17665]|0;j=dp(c[a>>2]|0)|0;c[k>>2]=i;c[k+4>>2]=j;Je(o,k)}if(Up(b)|0){o=ze(50979)|0;j=c[17665]|0;k=dp(c[(zo()|0)>>2]|0)|0;c[n>>2]=j;c[n+4>>2]=k;Je(o,n)}}else{o=ze(50934)|0;k=c[17665]|0;n=dp(c[(zo()|0)>>2]|0)|0;c[i>>2]=k;c[i+4>>2]=n;Je(o,i)}while(0);c[17645]=0;a=Wn(12596)|0;if(!a){l=q;return}else{c[p>>2]=Pn(a)|0;Me(50247,p)}}function dn(){var a=0,b=0,d=0,e=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=e+8|0;b=e;if(!(c[17644]|0))c[17644]=1;a=Vn(12596)|0;if(a|0){c[b>>2]=Pn(a)|0;Me(50172,b)}c[17645]=1;if(c[17646]|0)an();c[17645]=0;a=Wn(12596)|0;if(!a){l=e;return}else{c[d>>2]=Pn(a)|0;Me(50247,d)}}function en(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=l;l=l+48|0;if((l|0)>=(m|0))$(48);i=j+32|0;h=j+24|0;g=j+16|0;f=j+8|0;d=j;if(!(c[17671]|0)){c[17671]=1;c[17672]=0}if(!b){l=j;return}b=Vn(12644)|0;if(b|0){c[d>>2]=Pn(b)|0;Me(51001,d)}c[17672]=1;if(c[17673]|0){b=c[17674]|0;if(c[b+52>>2]|0)Ie(51037,51065,767,51079);d=c[17675]|0;if(c[d+52>>2]|0)Ie(51104,51065,768,51079);e=c[17676]|0;if(c[e+52>>2]|0)Ie(51134,51065,769,51079);if((a[b>>0]|0)!=17){c[f>>2]=b;Me(51167,f)}if((a[b+16>>0]|0)!=42){c[f>>2]=b;Me(51167,f)}if((a[b+33>>0]|0)!=-119){c[f>>2]=b;Me(51167,f)}if((a[b+50>>0]|0)!=-4){c[f>>2]=b;Me(51167,f)}if((a[d>>0]|0)!=17){c[g>>2]=d;Me(51167,g)}if((a[d+16>>0]|0)!=42){c[g>>2]=d;Me(51167,g)}if((a[d+33>>0]|0)!=-119){c[g>>2]=d;Me(51167,g)}if((a[d+50>>0]|0)!=-4){c[g>>2]=d;Me(51167,g)}if((a[e>>0]|0)!=17){c[h>>2]=e;Me(51167,h)}if((a[e+16>>0]|0)!=42){c[h>>2]=e;Me(51167,h)}if((a[e+33>>0]|0)!=-119){c[h>>2]=e;Me(51167,h)}if((a[e+50>>0]|0)!=-4){c[h>>2]=e;Me(51167,h)}}else{c[17673]=jf(48)|0;h=kf(1,68)|0;c[17674]=h;a[h>>0]=17;a[h+16>>0]=42;a[h+33>>0]=-119;a[h+50>>0]=-4;h=lf(1,68)|0;c[17675]=h;a[h>>0]=17;a[h+16>>0]=42;a[h+33>>0]=-119;a[h+50>>0]=-4;h=lf(1,68)|0;c[17676]=h;a[h>>0]=17;a[h+16>>0]=42;a[h+33>>0]=-119;a[h+50>>0]=-4}c[17672]=0;b=Wn(12644)|0;if(!b){l=j;return}else{c[i>>2]=Pn(b)|0;Me(51213,i)}}function fn(){var a=0,b=0,d=0,e=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=e+8|0;b=e;a=Vn(12644)|0;if(a|0){c[b>>2]=Pn(a)|0;Me(51001,b)}c[17672]=1;Dn(0,0,0,0)|0;c[17672]=0;a=Wn(12644)|0;if(!a){l=e;return}else{c[d>>2]=Pn(a)|0;Me(51213,d)}}function gn(){return}function hn(){return 0}function jn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=h+8|0;f=h;en(1);e=Vn(12644)|0;if(e|0){c[f>>2]=Pn(e)|0;Me(51001,f)}c[17672]=1;if((d|0)==2)kn(a,b,c[17676]|0);else kn(a,b,c[17675]|0);c[17672]=0;a=Wn(12644)|0;if(!a){l=h;return}else{c[g>>2]=Pn(a)|0;Me(51213,g)}}function kn(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;o=l;l=l+32|0;if((l|0)>=(m|0))$(32);n=o+16|0;k=o+8|0;f=o;if(!b)Ie(52320,51065,685,52343);if(!e)Ie(51249,51065,686,52343);if((a[e>>0]|0)!=17){c[f>>2]=e;Me(51167,f)}j=e+16|0;if((a[j>>0]|0)!=42){c[f>>2]=e;Me(51167,f)}h=e+33|0;if((a[h>>0]|0)!=-119){c[f>>2]=e;Me(51167,f)}i=e+50|0;if((a[i>>0]|0)!=-4){c[f>>2]=e;Me(51167,f)}f=e+4|0;do if(!(c[f>>2]|0)){if((c[17674]|0)==(e|0))g=ln(1)|0;else g=ln(0)|0;c[f>>2]=g;if(!g)Me(51311,n);else{c[e+60>>2]=qq()|0;break}}while(0);if(!(a[e+8>>0]&1))mn(e);g=c[e+60>>2]|0;if((g|0)==(qq()|0)?(g=c[e+64>>2]|0,(g|0)==(qq()|0)):0){if(nn(b,d,e)|0)Me(51311,n);if((a[e>>0]|0)!=17){c[k>>2]=e;Me(51167,k)}if((a[j>>0]|0)!=42){c[k>>2]=e;Me(51167,k)}if((a[h>>0]|0)!=-119){c[k>>2]=e;Me(51167,k)}if((a[i>>0]|0)==-4){l=o;return}else{c[k>>2]=e;Me(51167,k)}}kg(51065,714,52343,0,51257);Me(51311,n)}function ln(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;o=l;l=l+16|0;if((l|0)>=(m|0))$(16);n=o+8|0;e=o;k=o+12|0;if(!(c[17672]|0))Ie(51340,51065,596,51674);d=vg(k,7,1,1)|0;if(d|0){c[e>>2]=Pn(d)|0;Le(51692,e);n=0;l=o;return n|0}if(!b)i=pn()|0;else{i=gf(16)|0;kn(i,16,c[17675]|0)}j=Ag(c[k>>2]|0,i,16)|0;if(i&7){b=16;d=i;do{a[d>>0]=0;d=d+1|0;b=b+-1|0}while((b|0)!=0&(d&7|0)!=0);if(b>>>0>=8)f=11}else{b=16;d=i;f=11}if((f|0)==11){f=b+-8|0;g=f&-8;h=g+8|0;e=d;while(1){p=e;c[p>>2]=0;c[p+4>>2]=0;b=b+-8|0;if(b>>>0<=7)break;else e=e+8|0}b=f-g|0;d=d+h|0}if(b|0)while(1){a[d>>0]=0;b=b+-1|0;if(!b)break;else d=d+1|0}cf(i);if(!j){p=c[k>>2]|0;l=o;return p|0}else{c[n>>2]=Pn(j)|0;Le(51735,n);xg(c[k>>2]|0);p=0;l=o;return p|0}return 0}function mn(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(!(c[17672]|0))Ie(51340,51065,658,51556);d=b+17|0;if((c[17674]|0)==(b|0)){kn(d,16,c[17675]|0);i=b+8|0;a[i>>0]=a[i>>0]|1;c[b+64>>2]=qq()|0;return}i=pn()|0;e=i;f=d+16|0;do{a[d>>0]=a[e>>0]|0;d=d+1|0;e=e+1|0}while((d|0)<(f|0));if(i&7){e=16;d=i;do{a[d>>0]=0;d=d+1|0;e=e+-1|0}while((e|0)!=0&(d&7|0)!=0);if(e>>>0>=8)g=8}else{d=i;e=16;g=8}if((g|0)==8){g=e+-8|0;h=g&-8;f=d;while(1){j=f;c[j>>2]=0;c[j+4>>2]=0;e=e+-8|0;if(e>>>0<=7)break;else f=f+8|0}d=d+(h+8)|0;e=g-h|0}if(e|0)while(1){a[d>>0]=0;e=e+-1|0;if(!e)break;else d=d+1|0}cf(i);j=b+8|0;a[j>>0]=a[j>>0]|1;c[b+64>>2]=qq()|0;return}function nn(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0;eb=l;l=l+64|0;if((l|0)>=(m|0))$(64);cb=eb+24|0;bb=eb+16|0;ab=eb+8|0;$a=eb;J=eb+32|0;U=eb+40|0;if(!(c[17672]|0))Ie(51340,51065,444,51359);ya=f+4|0;if(!(c[ya>>2]|0))Ie(51375,51065,445,51359);o=f+8|0;if(!(a[o>>0]&1))Ie(51394,51065,446,51359);u=c[17673]|0;if(!u)Ie(51413,51065,448,51359);v=u+16|0;w=u+32|0;if(!e){db=0;l=eb;return db|0}x=f+52|0;y=f+12|0;z=J+4|0;A=U+1|0;B=U+2|0;C=U+3|0;D=U+4|0;E=U+5|0;F=U+6|0;G=U+7|0;H=U+8|0;I=U+9|0;K=U+10|0;L=U+11|0;M=U+12|0;N=U+13|0;O=U+14|0;P=U+15|0;Q=f+17|0;R=u+1|0;S=f+18|0;T=u+17|0;V=u+2|0;W=f+19|0;X=u+18|0;Y=u+3|0;Z=f+20|0;_=u+19|0;aa=u+4|0;ba=f+21|0;ca=u+20|0;da=u+5|0;ea=f+22|0;fa=u+21|0;ga=u+6|0;ha=f+23|0;ia=u+22|0;ja=u+7|0;ka=f+24|0;la=u+23|0;ma=u+8|0;na=f+25|0;oa=u+24|0;pa=u+9|0;qa=f+26|0;ra=u+25|0;sa=u+10|0;ta=f+27|0;ua=u+26|0;va=u+11|0;wa=f+28|0;xa=u+27|0;za=u+12|0;Aa=f+29|0;Ba=u+28|0;Ca=u+13|0;Da=f+30|0;Ea=u+29|0;Fa=u+14|0;Ga=f+31|0;Ha=u+30|0;Ia=u+15|0;Ja=f+32|0;Ka=u+31|0;La=u+33|0;Ma=u+34|0;Na=u+35|0;Oa=u+36|0;Pa=u+37|0;Qa=u+38|0;Ra=u+39|0;Sa=u+40|0;Ta=u+41|0;Ua=u+42|0;Va=u+43|0;Wa=u+44|0;Xa=u+45|0;Ya=u+46|0;Za=u+47|0;_a=(u&7|0)==0;p=(v&7|0)==0;q=f+51|0;r=f+34|0;s=f+56|0;t=(w&7|0)==0;a:while(1){while(1){if((c[x>>2]|0)==0?(c[y>>2]|0)>>>0>1e3:0){mn(f);c[y>>2]=0}if(!(c[17672]|0)){db=16;break a}g=c[x>>2]|0;if((g|0)==0|(c[17674]|0)==(f|0)|(c[17675]|0)==(f|0)|(c[17676]|0)==(f|0)){if(!(c[17677]|0)){c[17678]=qq()|0;c[17679]=zq()|0}if(gb(J|0,0)|0){db=22;break a}g=c[z>>2]|0;h=g<<4;i=c[J>>2]|0;if((i|0)==(c[17677]|0)&(h|0)==(c[17680]|0)){j=(b[35680]|0)+1&4095;b[35680]=j}else{b[35680]=0;c[17677]=i;c[17680]=h;j=0}a[U>>0]=i>>>24;a[A>>0]=i>>>16;a[B>>0]=i>>>8;a[C>>0]=i;a[D>>0]=g>>>12;a[E>>0]=g>>>4;a[F>>0]=(j&65535)>>>8&15|h;a[G>>0]=j;g=c[17678]|0;a[H>>0]=g>>>24;a[I>>0]=g>>>16;a[K>>0]=g>>>8;a[L>>0]=g;n=c[17679]|0;a[M>>0]=n>>>24;a[N>>0]=n>>>16;a[O>>0]=n>>>8;a[P>>0]=n;n=n+1|0;c[17679]=n;if(!n)c[17678]=g+1}else{j=U;i=j+15|0;do{a[j>>0]=a[g>>0]|0;j=j+1|0;g=g+1|0}while((j|0)<(i|0));n=c[s>>2]|0;a[M>>0]=n>>>24;a[N>>0]=n>>>16;a[O>>0]=n>>>8;a[P>>0]=n;c[s>>2]=n+1}h=c[ya>>2]|0;g=yg(h,u,16,U,16)|0;if(g|0){db=30;break a}a[v>>0]=a[Q>>0]^a[u>>0];a[T>>0]=a[S>>0]^a[R>>0];a[X>>0]=a[W>>0]^a[V>>0];a[_>>0]=a[Z>>0]^a[Y>>0];a[ca>>0]=a[ba>>0]^a[aa>>0];a[fa>>0]=a[ea>>0]^a[da>>0];a[ia>>0]=a[ha>>0]^a[ga>>0];a[la>>0]=a[ka>>0]^a[ja>>0];a[oa>>0]=a[na>>0]^a[ma>>0];a[ra>>0]=a[qa>>0]^a[pa>>0];a[ua>>0]=a[ta>>0]^a[sa>>0];a[xa>>0]=a[wa>>0]^a[va>>0];a[Ba>>0]=a[Aa>>0]^a[za>>0];a[Ea>>0]=a[Da>>0]^a[Ca>>0];a[Ha>>0]=a[Ga>>0]^a[Fa>>0];a[Ka>>0]=a[Ja>>0]^a[Ia>>0];g=yg(h,w,16,v,16)|0;if(g|0){db=32;break a}a[v>>0]=a[u>>0]^a[w>>0];a[T>>0]=a[R>>0]^a[La>>0];a[X>>0]=a[V>>0]^a[Ma>>0];a[_>>0]=a[Y>>0]^a[Na>>0];a[ca>>0]=a[aa>>0]^a[Oa>>0];a[fa>>0]=a[da>>0]^a[Pa>>0];a[ia>>0]=a[ga>>0]^a[Qa>>0];a[la>>0]=a[ja>>0]^a[Ra>>0];a[oa>>0]=a[ma>>0]^a[Sa>>0];a[ra>>0]=a[pa>>0]^a[Ta>>0];a[ua>>0]=a[sa>>0]^a[Ua>>0];a[xa>>0]=a[va>>0]^a[Va>>0];a[Ba>>0]=a[za>>0]^a[Wa>>0];a[Ea>>0]=a[Ca>>0]^a[Xa>>0];a[Ha>>0]=a[Fa>>0]^a[Ya>>0];a[Ka>>0]=a[Ia>>0]^a[Za>>0];g=yg(h,Q,16,v,16)|0;if(g|0){db=35;break a}if(!_a){g=u;h=16;do{a[g>>0]=0;g=g+1|0;h=h+-1|0}while((h|0)!=0&(g&7|0)!=0);if(h>>>0>=8)db=38}else{g=u;h=16;db=38}if((db|0)==38){db=0;j=h+-8|0;k=j&-8;i=g;while(1){n=i;c[n>>2]=0;c[n+4>>2]=0;h=h+-8|0;if(h>>>0<=7)break;else i=i+8|0}g=g+(k+8)|0;h=j-k|0}if(h|0)while(1){a[g>>0]=0;h=h+-1|0;if(!h)break;else g=g+1|0}if(!p){g=16;h=v;do{a[h>>0]=0;h=h+1|0;g=g+-1|0}while((g|0)!=0&(h&7|0)!=0);if(g>>>0>=8)db=46}else{g=16;h=v;db=46}if((db|0)==46){db=0;j=g+-8|0;k=j&-8;i=h;while(1){n=i;c[n>>2]=0;c[n+4>>2]=0;g=g+-8|0;if(g>>>0<=7)break;else i=i+8|0}g=j-k|0;h=h+(k+8)|0}if(g|0)while(1){a[h>>0]=0;g=g+-1|0;if(!g)break;else h=h+1|0}c[y>>2]=(c[y>>2]|0)+1;if(a[q>>0]|0?!((c[x>>2]|0)==0|(c[17674]|0)==(f|0)|(c[17675]|0)==(f|0)|(c[17676]|0)==(f|0)):0){db=58;break}h=a[o>>0]|0;if(h&2){db=55;break}j=r;g=w;i=j+16|0;do{a[j>>0]=a[g>>0]|0;j=j+1|0;g=g+1|0}while((j|0)<(i|0));a[o>>0]=h|2}if((db|0)==55){db=0;if(!(Tp(r,w,16)|0)){db=56;break}h=e>>>0<16?e:16;j=r;g=w;i=j+16|0;do{a[j>>0]=a[g>>0]|0;j=j+1|0;g=g+1|0}while((j|0)<(i|0));n=h}else if((db|0)==58){db=0;n=e>>>0<16?e:16}cr(d|0,w|0,n|0)|0;if(!t){g=16;h=w;do{a[h>>0]=0;h=h+1|0;g=g+-1|0}while((g|0)!=0&(h&7|0)!=0);if(g>>>0>=8)db=62}else{g=16;h=w;db=62}if((db|0)==62){db=0;i=g+-8|0;j=i&-8;k=h+8|0;while(1){fb=h;c[fb>>2]=0;c[fb+4>>2]=0;g=g+-8|0;if(g>>>0<=7)break;else h=h+8|0}g=i-j|0;h=k+j|0}if(g|0)while(1){a[h>>0]=0;g=g+-1|0;if(!g)break;else h=h+1|0}e=e-n|0;if(!e){d=0;db=68;break}else d=d+n|0}if((db|0)==16)Ie(51340,51065,274,51443);else if((db|0)==22){c[$a>>2]=dp(c[(zo()|0)>>2]|0)|0;Me(51455,$a)}else if((db|0)==30){c[ab>>2]=on(g)|0;Me(51482,ab)}else if((db|0)==32){c[bb>>2]=on(g)|0;Me(51482,bb)}else if((db|0)==35){c[cb>>2]=on(g)|0;Me(51482,cb)}else if((db|0)==56){kg(51065,502,51359,0,51516);fb=-1;l=eb;return fb|0}else if((db|0)==68){l=eb;return d|0}return 0}function on(a){a=a|0;return Pn(a)|0}function pn(){var a=0,b=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);a=b;if(c[17681]|0)Ie(51568,51065,552,51592);c[17681]=jf(16)|0;c[17682]=16;c[17683]=0;if((Dn(4,0,16,2)|0)>=0?(c[17683]|0)==(c[17682]|0):0){a=c[17681]|0;c[17681]=0;l=b;return a|0}cf(c[17681]|0);c[17681]=0;Me(51604,a);return 0}function qn(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;if(!(c[17672]|0))Ie(51340,51065,531,51632);f=c[17681]|0;if(!f)Ie(51651,51065,532,51632);if(!d)return;g=c[17682]|0;e=d;d=c[17683]|0;while(1){e=e+-1|0;if(d>>>0>=g>>>0){e=9;break}i=a[b>>0]|0;h=d;d=d+1|0;c[17683]=d;h=f+h|0;a[h>>0]=a[h>>0]^i;if(!e){e=9;break}else b=b+1|0}if((e|0)==9)return}function rn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=g+8|0;e=g;en(1);d=Vn(12644)|0;if(d|0){c[e>>2]=Pn(d)|0;Me(51001,e)}c[17672]=1;kn(a,b,c[17674]|0);c[17672]=0;a=Wn(12644)|0;if(!a){l=g;return}else{c[f>>2]=Pn(a)|0;Me(51213,f)}}function sn(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=l;l=l+48|0;if((l|0)>=(m|0))$(48);y=z+24|0;x=z+16|0;s=z+8|0;f=z;q=z+32|0;Dj(q,8,1);if(!(c[17673]|0))Ie(51413,51065,912,51767);t=kf(1,68)|0;a[t>>0]=17;u=t+16|0;a[u>>0]=42;v=t+33|0;a[v>>0]=-119;w=t+50|0;a[w>>0]=-4;e=Vn(12644)|0;if(e|0){c[f>>2]=Pn(e)|0;Me(51001,f)}c[17672]=1;r=t+4|0;f=t+60|0;g=t+17|0;h=t+8|0;i=t+64|0;j=t+52|0;k=t+56|0;e=0;while(1){if(vg(r,7,1,1)|0){f=52137;e=18;break}if(Ag(c[r>>2]|0,51780+(e*96|0)|0,16)|0){f=52175;e=18;break}c[f>>2]=qq()|0;n=g;o=51780+(e*96|0)+32|0;p=n+16|0;do{a[n>>0]=a[o>>0]|0;n=n+1|0;o=o+1|0}while((n|0)<(p|0));a[h>>0]=a[h>>0]|1;c[i>>2]=qq()|0;c[j>>2]=51780+(e*96|0)+16;c[k>>2]=d[51780+(e*96|0)+29>>0]<<16|d[51780+(e*96|0)+28>>0]<<24|d[51780+(e*96|0)+30>>0]<<8|d[51780+(e*96|0)+31>>0];if(nn(q,16,t)|0){f=52068;e=18;break}if(Tp(q,51780+(e*96|0)+48|0,16)|0){f=52099;e=18;break}if(nn(q,16,t)|0){f=52068;e=18;break}if(Tp(q,51780+(e*96|0)+64|0,16)|0){f=52099;e=18;break}if(nn(q,16,t)|0){f=52068;e=18;break}if(Tp(q,51780+(e*96|0)+80|0,16)|0){f=52099;e=18;break}p=c[f>>2]|0;if((p|0)!=(qq()|0)){f=52201;e=18;break}p=c[i>>2]|0;if((p|0)!=(qq()|0)){f=52201;e=18;break}xg(c[r>>2]|0);c[r>>2]=0;a[h>>0]=a[h>>0]&-2;if((a[t>>0]|0)!=17){e=17;break}if((a[u>>0]|0)!=42){e=17;break}if((a[v>>0]|0)!=-119){e=17;break}e=e+1|0;if((a[w>>0]|0)!=-4){e=17;break}if(e>>>0>=3){f=0;e=18;break}}if((e|0)==17){c[s>>2]=t;Me(51167,s)}else if((e|0)==18){c[17672]=0;e=Wn(12644)|0;if(e|0){c[x>>2]=Pn(e)|0;Me(51213,x)}xg(c[r>>2]|0);if((a[t>>0]|0)!=17){c[y>>2]=t;Me(51167,y)}if((a[u>>0]|0)!=42){c[y>>2]=t;Me(51167,y)}if((a[v>>0]|0)!=-119){c[y>>2]=t;Me(51167,y)}if((a[w>>0]|0)!=-4){c[y>>2]=t;Me(51167,y)}cf(t);e=(f|0)!=0;if(!((b|0)!=0&e)){b=e?16777266:0;l=z;return b|0}zb[b&1](52223,0,52230,f);b=e?16777266:0;l=z;return b|0}return 0}function tn(b,e,f,g,h,i,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=l;l=l+16|0;if((l|0)>=(m|0))$(16);t=v;en(1);if((b|0)==0|(f|0)==0|(g|0)!=16|(h|0)==0|(i|0)!=16|(j|0)==0|(k|0)!=16){u=45;l=v;return u|0}r=df(1,84)|0;if(!r){u=Sn()|0;l=v;return u|0}a[r>>0]=17;o=r+16|0;a[o>>0]=42;p=r+33|0;a[p>>0]=-119;q=r+50|0;a[q>>0]=-4;i=r+4|0;g=vg(i,7,1,1)|0;if(!g){g=Ag(c[i>>2]|0,f,16)|0;if(!g){c[r+60>>2]=qq()|0;f=r+17|0;i=h;k=f+16|0;do{a[f>>0]=a[i>>0]|0;f=f+1|0;i=i+1|0}while((f|0)<(k|0));g=r+8|0;a[g>>0]=a[g>>0]|1;c[r+64>>2]=qq()|0;g=r+68|0;f=g;i=j;k=f+16|0;do{a[f>>0]=a[i>>0]|0;f=f+1|0;i=i+1|0}while((f|0)<(k|0));c[r+52>>2]=g;c[r+56>>2]=d[r+81>>0]<<16|d[r+80>>0]<<24|d[r+82>>0]<<8|d[r+83>>0];if(e&1|0)a[r+51>>0]=1;if((a[r>>0]|0)!=17){c[t>>2]=r;Me(51167,t)}if((a[o>>0]|0)!=42){c[t>>2]=r;Me(51167,t)}if((a[p>>0]|0)!=-119){c[t>>2]=r;Me(51167,t)}if((a[q>>0]|0)==-4){n=0;s=r}else{c[t>>2]=r;Me(51167,t)}}else{n=g;u=13}}else{n=g;u=13}if((u|0)==13){xg(c[i>>2]|0);cf(r);s=0}c[b>>2]=s;u=n;l=v;return u|0}function un(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=g+8|0;e=g;if((a|0)==0|(b|0)==0|(d|0)!=16){f=45;l=g;return f|0}d=Vn(12644)|0;if(d|0){c[e>>2]=Pn(d)|0;Me(51001,e)}c[17672]=1;kn(b,16,a);c[17672]=0;d=Wn(12644)|0;if(!d){f=0;l=g;return f|0}else{c[f>>2]=Pn(d)|0;Me(51213,f)}return 0}function vn(a){a=a|0;if(!a)return;xg(c[a+4>>2]|0);cf(a);return}function wn(a){a=a|0;if(c[17684]|0)return;c[17684]=1;c[17685]=0;return}function xn(){var a=0,b=0,d=0,e=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=e+8|0;b=e;a=Vn(12688)|0;if(a|0){c[b>>2]=Pn(a)|0;Me(52234,b)}c[17685]=1;Dn(0,0,0,0)|0;c[17685]=0;a=Wn(12688)|0;if(!a){l=e;return}else{c[d>>2]=Pn(a)|0;Me(52277,d)}}function yn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=l;l=l+32|0;if((l|0)>=(m|0))$(32);h=i+16|0;g=i+8|0;f=i;if(!(c[17684]|0)){c[17684]=1;c[17685]=0}e=Vn(12688)|0;if(e|0){c[f>>2]=Pn(e)|0;Me(52234,f)}c[17685]=1;if(!a)Ie(52320,52327,144,52343);c[17686]=a;c[17687]=b;c[17688]=0;a=Dn(5,0,b,(d|0)==2?2:1)|0;if((a|0)<0){c[g>>2]=a;Me(52354,g)}if((c[17688]|0)!=(c[17687]|0)){c[g>>2]=a;Me(52354,g)}c[17685]=0;a=Wn(12688)|0;if(!a){l=i;return}else{c[h>>2]=Pn(a)|0;Me(52277,h)}}function zn(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;if(!(c[17685]|0))Ie(52400,52327,124,52421);f=c[17686]|0;if(!f)Ie(52429,52327,125,52421);if(!d)return;g=c[17687]|0;e=d;d=c[17688]|0;while(1){e=e+-1|0;if(d>>>0>=g>>>0){e=9;break}i=a[b>>0]|0;h=d;d=d+1|0;c[17688]=d;a[f+h>>0]=i;if(!e){e=9;break}else b=b+1|0}if((e|0)==9)return}function An(){return c[17689]|0}function Bn(a,b){a=a|0;b=b|0;return}function Cn(a,b){a=a|0;b=b|0;return 0}function Dn(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=l;l=l+944|0;if((l|0)>=(m|0))$(944);C=F+24|0;r=F+16|0;B=F+8|0;A=F;h=F+168|0;y=F+40|0;z=F+32|0;if(!b){g=c[3183]|0;if((g|0)!=-1){Up(g)|0;c[3183]=-1}g=c[3184]|0;if((g|0)==-1){l=F;return 0}Up(g)|0;c[3184]=-1;l=F;return 0}k=Cn(b,e)|0;x=f>>>1;k=f-(f>>>0>1?(k>>>0>x>>>0?x:k):0)|0;if((g|0)>1){g=c[3183]|0;if((g|0)==-1){g=En(52444,(d[71846]|0)&1)|0;c[3183]=g;a[71846]=d[71846]|0|1}}else{g=c[3184]|0;if((g|0)==-1){g=En(52456,(d[71846]|0)&2)|0;c[3184]=g;a[71846]=d[71846]|0|2}}a:do if(!k)E=0;else{u=1<<(g&31);v=y+(g>>>5<<2)|0;w=z+4|0;x=g+1|0;if((g|0)<1024){i=0;j=0;s=0;t=k}else{n=0;o=0;q=k;b:while(1){k=f-q|0;if((n|0)==0&(o|0)==(k|0))n=0;else{pj(52469,88,k,f);n=1;o=k}p=q>>>0<768?q:768;while(1){k=pq(g,h,p)|0;if((k|0)>-1&k>>>0>p>>>0){c[r>>2]=k;Le(52502,r);k=p}if((k|0)!=-1)break;k=c[(zo()|0)>>2]|0;if((k|0)!=4)break b}ub[b&7](h,k,e);q=q-k|0;if(!q){E=n;break a}}r=dp(k)|0;c[C>>2]=r;Me(52540,C)}c:while(1){k=f-t|0;if((j|0)==0&(s|0)==(k|0)){j=0;o=s}else{pj(52469,88,k,f);j=1;o=k}k=y;n=k+128|0;do{c[k>>2]=0;k=k+4|0}while((k|0)<(n|0));c[v>>2]=c[v>>2]|u;c[z>>2]=i;k=(i|0)!=0;c[w>>2]=k?0:1e5;switch(nq(x,y,0,0,z)|0){case 0:{n=t;i=3;j=1;break}case -1:{c[A>>2]=dp(c[(zo()|0)>>2]|0)|0;Le(52482,A);n=t;i=k?i:1;break}default:{n=t>>>0<768?t:768;while(1){k=pq(g,h,n)|0;if((k|0)>-1&k>>>0>n>>>0){c[B>>2]=k;Le(52502,B);k=n}if((k|0)!=-1)break;k=c[(zo()|0)>>2]|0;if((k|0)!=4)break c}ub[b&7](h,k,e);n=t-k|0}}if(!n){E=j;break a}else{s=o;t=n}}B=dp(k)|0;c[C>>2]=B;Me(52540,C)}while(0);if(h&7){g=768;do{a[h>>0]=0;h=h+1|0;g=g+-1|0}while((g|0)!=0&(h&7|0)!=0);if(g>>>0>=8)D=36}else{g=768;D=36}if((D|0)==36){j=g+-8|0;k=j&-8;n=k+8|0;i=h;while(1){D=i;c[D>>2]=0;c[D+4>>2]=0;g=g+-8|0;if(g>>>0<=7)break;else i=i+8|0}g=j-k|0;h=h+n|0}if(g|0)while(1){a[h>>0]=0;g=g+-1|0;if(!g)break;else h=h+1|0}if(!E){l=F;return 0}pj(52469,88,f,f);l=F;return 0}function En(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;o=l;l=l+64|0;if((l|0)>=(m|0))$(64);n=o+48|0;k=o+40|0;j=o+32|0;g=o+24|0;i=o+16|0;h=o+8|0;e=o;f=(b|0)!=0;do if(f){pj(52573,88,1,0);b=Bq(a,0,h)|0;e=(b|0)==-1;if(f&e){b=h+4|0;do{c[h>>2]=5;c[b>>2]=0;pj(52589,88,0,5);nq(0,0,0,0,h)|0;d=Bq(a,0,i)|0}while((d|0)==-1)}else{if(!e){d=b;break}i=zo()|0;i=c[i>>2]|0;i=dp(i)|0;c[g>>2]=a;a=g+4|0;c[a>>2]=i;Me(52605,g)}}else{b=Bq(a,0,e)|0;if((b|0)==-1){i=zo()|0;i=c[i>>2]|0;i=dp(i)|0;c[g>>2]=a;a=g+4|0;c[a>>2]=i;Me(52605,g)}else d=b}while(0);c[j>>2]=0;b=jq(d,1,j)|0;if((b|0)>=0?(c[k>>2]=b|1,(jq(d,2,k)|0)==0):0){l=o;return d|0}k=dp(c[(zo()|0)>>2]|0)|0;c[n>>2]=d;c[n+4>>2]=k;Le(52624,n);l=o;return d|0}function Fn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;h=a+(d<<2)|0;f=b+(d<<2)|0;g=e&65535;e=e>>>16;b=0;a=0-d|0;do{m=c[f+(a<<2)>>2]|0;l=m&65535;m=m>>>16;k=S(l,g)|0;n=S(m,g)|0;m=S(m,e)|0;l=n+(S(l,e)|0)+(k>>>16)|0;k=(l<<16|k&65535)+b|0;d=h+(a<<2)|0;j=c[d>>2]|0;i=k+j|0;b=(l>>>0<n>>>0?m+65536|0:m)+(l>>>16)+(k>>>0<b>>>0&1)+(i>>>0<j>>>0&1)|0;c[d>>2]=i;a=a+1|0}while((a|0)!=0);return b|0}function Gn(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;q=l;l=l+48|0;if((l|0)>=(m|0))$(48);k=q+32|0;j=q+24|0;i=q+16|0;h=q+8|0;f=q;p=nl(c[b+4>>2]|0)|0;g=lk(b)|0;o=(g+7|0)>>>3;if(nf(1)|0){c[f>>2]=g;c[f+4>>2]=e;Oe(52663,f)}n=g+-1|0;if(g>>>0<32){f=0;while(1){cf(f);f=Cj(o,e)|0;Rk(p,f,o,0);k=(mk(p,n)|0)==0;ok(p,n);if(k)qk(p,n);if((wk(p,b)|0)>=0){if(!(nf(1)|0))continue;Oe(52710,h);continue}if((vk(p,0)|0)>0)break;if(!(nf(1)|0))continue;Oe(52732,i)}cf(f);l=q;return p|0}else f=0;while(1){if(!f){cf(0);f=Cj(o,e)|0}else{i=Cj(4,e)|0;h=d[i>>0]|d[i+1>>0]<<8|d[i+2>>0]<<16|d[i+3>>0]<<24;a[f>>0]=h;a[f+1>>0]=h>>8;a[f+2>>0]=h>>16;a[f+3>>0]=h>>24;cf(i)}Rk(p,f,o,0);i=(mk(p,n)|0)==0;ok(p,n);if(i)qk(p,n);if((wk(p,b)|0)>=0){if(!(nf(1)|0))continue;Oe(52710,j);continue}if((vk(p,0)|0)>0)break;if(!(nf(1)|0))continue;Oe(52732,k)}cf(f);l=q;return p|0}function Hn(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=l;l=l+32|0;if((l|0)>=(m|0))$(32);j=v+16|0;t=v+12|0;u=v+8|0;q=v+4|0;r=v;c[t>>2]=0;c[u>>2]=0;c[q>>2]=0;c[r>>2]=0;o=lk(b)|0;if(!((f|0)!=0&((e|0)!=0&(o|0)!=0))){a=32816;l=v;return a|0}if((sh(g)|0)!=(f|0)){a=5;l=v;return a|0}s=_e(f)|0;a:do if(s){Yq(s|0,1,f|0)|0;p=df(1,f)|0;if(!p){g=0;d=0;i=Sn()|0;break}k=(o+7|0)>>>3;i=In(t,d,k)|0;if(!i){n=f<<3;i=Sk(j,5,e,f&536870911,0)|0;if(i|0){g=0;d=p;break}if(n>>>0>o>>>0){e=c[j>>2]|0;sk(e,e,n-o|0)}if((wk(c[j>>2]|0,b)|0)>-1){e=c[j>>2]|0;hk(e,e,b)}i=In(u,c[j>>2]|0,k)|0;tl(c[j>>2]|0);if(!i){i=eh(q,g,3)|0;if(!i){i=nh(c[q>>2]|0,p,f)|0;if(!i){lh(c[q>>2]|0,s,f);lh(c[q>>2]|0,71847,1);d=c[t>>2]|0;lh(c[q>>2]|0,d,k);e=c[u>>2]|0;lh(c[q>>2]|0,e,k);cr(p|0,ph(c[q>>2]|0,0)|0,f|0)|0;i=nh(c[q>>2]|0,p,f)|0;if(!i){lh(c[q>>2]|0,s,f);cr(s|0,ph(c[q>>2]|0,0)|0,f|0)|0;i=nh(c[q>>2]|0,p,f)|0;if(!i){lh(c[q>>2]|0,s,f);lh(c[q>>2]|0,52752,1);lh(c[q>>2]|0,d,k);lh(c[q>>2]|0,e,k);cr(p|0,ph(c[q>>2]|0,0)|0,f|0)|0;i=nh(c[q>>2]|0,p,f)|0;if(!i){lh(c[q>>2]|0,s,f);cr(s|0,ph(c[q>>2]|0,0)|0,f|0)|0;g=_e(k+f|0)|0;if(!g){g=0;d=p;i=Sn()|0;break}else e=h;while(1){while(1){d=0;do{i=nh(c[q>>2]|0,p,f)|0;if(i|0){d=p;break a}lh(c[q>>2]|0,s,f);cr(s|0,ph(c[q>>2]|0,0)|0,f|0)|0;cr(g+(d>>>3)|0,s|0,f|0)|0;d=d+n|0}while(d>>>0<o>>>0);tl(c[r>>2]|0);c[r>>2]=0;i=Sk(r,5,g,d>>>3,0)|0;if(i|0){d=p;break a}if(d>>>0>o>>>0){h=c[r>>2]|0;sk(h,h,d-o|0)}if((wk(c[r>>2]|0,b)|0)<0?(vk(c[r>>2]|0,0)|0)>0:0)break;i=nh(c[q>>2]|0,p,f)|0;if(i|0){d=p;break a}lh(c[q>>2]|0,s,f);lh(c[q>>2]|0,71847,1);cr(p|0,ph(c[q>>2]|0,0)|0,f|0)|0;i=nh(c[q>>2]|0,p,f)|0;if(i|0){d=p;break a}lh(c[q>>2]|0,s,f);cr(s|0,ph(c[q>>2]|0,0)|0,f|0)|0}if(!e){d=p;i=0;break a}i=nh(c[q>>2]|0,p,f)|0;if(i|0){d=p;break a}lh(c[q>>2]|0,s,f);lh(c[q>>2]|0,71847,1);cr(p|0,ph(c[q>>2]|0,0)|0,f|0)|0;i=nh(c[q>>2]|0,p,f)|0;if(i|0){d=p;break a}lh(c[q>>2]|0,s,f);cr(s|0,ph(c[q>>2]|0,0)|0,f|0)|0;e=e+-1|0}}else{g=0;d=p}}else{g=0;d=p}}else{g=0;d=p}}else{g=0;d=p}}else{g=0;d=p}}else{g=0;d=p}}else{g=0;d=p}}else{g=0;d=0;i=Sn()|0}while(0);cf(g);kh(c[q>>2]|0);cf(c[u>>2]|0);cf(c[t>>2]|0);cf(d);cf(s);d=c[r>>2]|0;if(!i){c[a>>2]=d;a=0;l=v;return a|0}else{tl(d);a=i;l=v;return a|0}return 0}function In(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=h;e=Tk(5,0,0,g,b)|0;if(e|0){a=e;l=h;return a|0}e=c[g>>2]|0;if(e>>>0>d>>>0){a=67;l=h;return a|0}f=e>>>0<d>>>0?d-e|0:0;e=f+e|0;if((b|0)!=0?(c[b+12>>2]&1|0)!=0:0)d=$e(e)|0;else d=_e(e)|0;if(!d){a=Sn()|0;l=h;return a|0}if(f|0)Yq(d|0,0,f|0)|0;e=c[g>>2]|0;c[g>>2]=e+f;e=Tk(5,d+f|0,e,0,b)|0;if(!e){c[a>>2]=d;a=0;l=h;return a|0}else{cf(d);a=e;l=h;return a|0}return 0}function Jn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=g+4|0;f=g;if((a|0)!=0?(c[a+12>>2]&4|0)!=0:0){a=wl(a,e)|0;a=Sk(f,5,a,((c[e>>2]|0)+7|0)>>>3,0)|0;if(a|0){f=a;l=g;return f|0}a=c[e>>2]|0;if(a>>>0>d>>>0){e=c[f>>2]|0;sk(e,e,a-d|0)}}else c[f>>2]=a;c[b>>2]=c[f>>2];f=0;l=g;return f|0}function Kn(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;A=l;l=l+32|0;if((l|0)>=(m|0))$(32);v=A;w=A+24|0;x=A+12|0;y=A+8|0;u=A+4|0;if(nf(1)|0)Se(52754,a);o=b+32|0;h=Jn(a,y,lk(c[o>>2]|0)|0)|0;if(h|0){a=h;l=A;return a|0}c[w>>2]=0;p=ll(0)|0;q=ll(0)|0;r=ll(0)|0;s=ll(0)|0;Pj(x);t=Uj(c[b>>2]|0,c[b+4>>2]|0,0,c[b+8>>2]|0,c[b+12>>2]|0,c[b+16>>2]|0)|0;n=(f&2|0)!=0&(g|0)!=0;i=(a|0)==0;j=a+12|0;k=b+56|0;b=b+20|0;h=0;a:while(1){if(n)do{tl(c[w>>2]|0);c[w>>2]=0;if(i){f=70;break a}if(!(c[j>>2]&4)){f=70;break a}f=wl(a,u)|0;f=Hn(w,c[o>>2]|0,c[k>>2]|0,f,((c[u>>2]|0)+7|0)>>>3,g,h)|0;if(f|0)break a;h=h+1|0;ck(x,c[w>>2]|0,b,t);if(Nj(s,0,x,t)|0){z=12;break a}Gk(d,s,c[o>>2]|0)}while((vk(d,0)|0)==0);else do{tl(c[w>>2]|0);c[w>>2]=0;f=Gn(c[o>>2]|0,1)|0;c[w>>2]=f;ck(x,f,b,t);if(Nj(s,0,x,t)|0){z=12;break a}Gk(d,s,c[o>>2]|0)}while(!(vk(d,0)|0));Lk(p,c[k>>2]|0,d,c[o>>2]|0);ik(q,c[y>>2]|0,p,c[o>>2]|0);Fk(r,c[w>>2]|0,c[o>>2]|0)|0;Lk(e,r,q,c[o>>2]|0);if(vk(e,0)|0){z=16;break}}if((z|0)==12)if(!(nf(1)|0))f=8;else{Oe(52831,v);f=8}else if((z|0)==16)if(!(nf(1)|0))f=0;else{Se(52772,d);Se(52793,e);f=0}Yj(t);Rj(x);tl(s);tl(r);tl(q);tl(p);tl(c[w>>2]|0);h=c[y>>2]|0;if((h|0)==(a|0)){a=f;l=A;return a|0}tl(h);a=f;l=A;return a|0}function Ln(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=l;l=l+64|0;if((l|0)>=(m|0))$(64);o=t+8|0;n=t;p=t+48|0;q=t+36|0;r=t+24|0;s=t+12|0;if((vk(d,0)|0)<=0){a=8;l=t;return a|0}g=b+32|0;if((wk(d,c[g>>2]|0)|0)>=0){a=8;l=t;return a|0}if((vk(e,0)|0)<=0){a=8;l=t;return a|0}if((wk(e,c[g>>2]|0)|0)>=0){a=8;l=t;return a|0}f=Jn(a,p,lk(c[g>>2]|0)|0)|0;if(f|0){a=f;l=t;return a|0}f=ll(0)|0;h=ll(0)|0;i=ll(0)|0;j=ll(0)|0;Pj(q);Pj(r);Pj(s);k=Uj(c[b>>2]|0,c[b+4>>2]|0,0,c[b+8>>2]|0,c[b+12>>2]|0,c[b+16>>2]|0)|0;Fk(f,e,c[g>>2]|0)|0;Lk(h,c[p>>2]|0,f,c[g>>2]|0);ck(r,h,b+20|0,k);Lk(i,d,f,c[g>>2]|0);ck(s,i,b+44|0,k);ak(q,r,s,k);do if(!(vk(c[q+8>>2]|0,0)|0))if(!(nf(1)|0))b=8;else{Oe(52915,n);b=8}else{if(Nj(j,0,q,k)|0){if(!(nf(1)|0)){b=8;break}Oe(52937,o);b=8;break}Gk(j,j,c[g>>2]|0);if(wk(j,d)|0)if(!(nf(1)|0))b=8;else{Se(52983,j);Se(52990,d);Se(52997,e);b=8}else b=0}while(0);Yj(k);Rj(s);Rj(r);Rj(q);tl(j);tl(i);tl(h);tl(f);f=c[p>>2]|0;if((f|0)==(a|0)){a=b;l=t;return a|0}tl(f);a=b;l=t;return a|0}function Mn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=l;l=l+32|0;if((l|0)>=(m|0))$(32);s=v;t=v+12|0;u=v+8|0;g=v+4|0;if(nf(1)|0)Se(52814,a);r=b+32|0;h=lk(c[r>>2]|0)|0;if((a|0)!=0?(c[a+12>>2]&4|0)!=0:0){f=wl(a,g)|0;f=Sk(u,5,f,((c[g>>2]|0)+7|0)>>>3,0)|0;if(f|0){a=f;l=v;return a|0}f=c[g>>2]|0;if(f>>>0>h>>>0){q=c[u>>2]|0;sk(q,q,f-h|0)}}else c[u>>2]=a;j=ll(0)|0;k=ll(0)|0;n=ll(0)|0;o=ll(0)|0;p=ll(0)|0;Pj(t);q=Uj(c[b>>2]|0,c[b+4>>2]|0,0,c[b+8>>2]|0,c[b+12>>2]|0,c[b+16>>2]|0)|0;Gk(o,a,c[r>>2]|0);if(!(vk(o,0)|0))El(o,1)|0;i=b+20|0;g=b+56|0;f=0;a:while(1){h=f;do{tl(h);h=Gn(c[r>>2]|0,1)|0;ck(t,h,i,q);if(Nj(p,0,t,q)|0){f=14;break a}Gk(d,p,c[r>>2]|0)}while(!(vk(d,0)|0));Lk(j,c[g>>2]|0,d,c[r>>2]|0);Lk(n,h,o,c[r>>2]|0);ik(e,n,j,c[r>>2]|0);if(!(vk(e,0)|0))f=h;else{f=18;break}}if((f|0)==14)if(!(nf(1)|0))g=8;else{Oe(52831,s);g=8}else if((f|0)==18)if(!(nf(1)|0))g=0;else{Se(52875,d);Se(52895,e);g=0}Yj(q);Rj(t);tl(p);tl(o);tl(n);tl(k);tl(j);tl(h);f=c[u>>2]|0;if((f|0)==(a|0)){a=g;l=v;return a|0}tl(f);a=g;l=v;return a|0}function Nn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=l;l=l+64|0;if((l|0)>=(m|0))$(64);j=x+24|0;i=x+16|0;h=x+8|0;g=x;u=x+52|0;v=x+40|0;w=x+28|0;if((vk(d,0)|0)<=0){w=8;l=x;return w|0}f=b+32|0;if((wk(d,c[f>>2]|0)|0)>=0){w=8;l=x;return w|0}if((vk(e,0)|0)<=0){w=8;l=x;return w|0}if((wk(e,c[f>>2]|0)|0)>=0){w=8;l=x;return w|0}k=ll(0)|0;n=ll(0)|0;o=ll(0)|0;p=ll(0)|0;q=ll(0)|0;r=ll(0)|0;s=ll(0)|0;Pj(u);Pj(v);Pj(w);t=Uj(c[b>>2]|0,c[b+4>>2]|0,0,c[b+8>>2]|0,c[b+12>>2]|0,c[b+16>>2]|0)|0;Gk(n,a,c[f>>2]|0);if(!(vk(n,0)|0))El(n,1)|0;Fk(q,n,c[f>>2]|0)|0;Lk(o,e,q,c[f>>2]|0);Lk(r,d,q,c[f>>2]|0);jk(p,s,r,c[f>>2]|0);ck(v,o,b+20|0,t);ck(w,p,b+44|0,t);ak(u,v,w,t);do if(!(vk(c[u+8>>2]|0,0)|0))if(!(nf(1)|0))a=8;else{Oe(52915,g);a=8}else{if(Nj(k,0,u,t)|0){if(!(nf(1)|0)){a=8;break}Oe(52937,h);a=8;break}Gk(k,k,c[f>>2]|0);h=(wk(k,d)|0)==0;a=(nf(1)|0)!=0;if(h){if(!a){a=0;break}Oe(53030,j);a=0;break}else{if(!a){a=8;break}Se(52983,k);Se(52990,d);Se(52997,e);Oe(53004,i);a=8;break}}while(0);Yj(t);Rj(w);Rj(v);Rj(u);tl(s);tl(r);tl(q);tl(p);tl(o);tl(k);tl(n);w=a;l=x;return w|0}function On(){return ao()|0}function Pn(a){a=a|0;return ho(a)|0}function Qn(a){a=a|0;return jo(a)|0}function Rn(a){a=a|0;return io(a)|0}function Sn(){return ko()|0}function Tn(a){a=a|0;bo(a);return}function Un(a){a=a|0;return Yn(a)|0}function Vn(a){a=a|0;return Zn(a)|0}function Wn(a){a=a|0;return _n(a)|0}function Xn(a){a=a|0;return $n(a)|0}function Yn(a){a=a|0;switch(c[a>>2]|0){case 0:{c[a>>2]=1;break}case 1:break;default:Da(53052,53072,114,53085)}a=xa(a+4|0,0)|0;if(!a){a=0;return a|0}a=Qn(a)|0;return a|0}function Zn(a){a=a|0;if((c[a>>2]|0)!=1)Da(53052,53072,114,53085);a=Zq(a+4|0)|0;if(!a){a=0;return a|0}a=Qn(a)|0;return a|0}function _n(a){a=a|0;if((c[a>>2]|0)!=1)Da(53052,53072,114,53085);a=hr(a+4|0)|0;if(!a){a=0;return a|0}a=Qn(a)|0;return a|0}function $n(a){a=a|0;var b=0,d=0;if((c[a>>2]|0)!=1)Da(53052,53072,114,53085);b=a+4|0;d=Ua(b|0)|0;if(!d){c[a>>2]=1;a=b+40|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(a|0));d=0;return d|0}else{d=Qn(d)|0;return d|0}return 0}function ao(){co()|0;return 0}function bo(a){a=a|0;c[(zo()|0)>>2]=a;return}function co(){if(c[17690]|0)return 0;c[17690]=1;ib(3)|0;return 0}function eo(){fo(0)|0;c[17691]=0;c[17692]=0;return}function fo(b){b=b|0;var d=0,e=0,f=0,g=0;if(b|0){e=b+36|0;d=c[e>>2]|0;if(!(a[d+1140>>0]&32))Zn(d+1040|0)|0;if(!(c[b>>2]&65536)){c[b+12>>2]=0;c[b+16>>2]=0;c[b+32>>2]=0;b=0}else b=go(b)|0;d=c[e>>2]|0;if(a[d+1140>>0]&32){g=b;g=(g|0)!=0;g=g<<31>>31;return g|0}_n(d+1040|0)|0;g=b;g=(g|0)!=0;g=g<<31>>31;return g|0}Zn(12740)|0;b=c[17693]|0;if(!b)d=0;else{d=0;do{g=b+4|0;f=c[g>>2]|0;if(f){e=c[f+36>>2]|0;if(!(a[e+1140>>0]&32)){Zn(e+1040|0)|0;f=c[g>>2]|0}if(!(c[f>>2]&65536)){c[f+12>>2]=0;c[f+16>>2]=0;c[f+32>>2]=0;e=0}else{e=go(f)|0;f=c[g>>2]|0}d=e|d;e=c[f+36>>2]|0;if(!(a[e+1140>>0]&32))_n(e+1040|0)|0}b=c[b>>2]|0}while((b|0)!=0)}_n(12740)|0;g=d;g=(g|0)!=0;g=g<<31>>31;return g|0}function go(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=b+36|0;d=c[j>>2]|0;h=c[d+1108>>2]|0;if(!(c[b>>2]&65536))Da(53101,53123,1654,53133);i=b+16|0;e=c[i>>2]|0;if(!e){j=0;return j|0}do if(h){g=b+4|0;a:do if((e|0)>0){d=0;f=e;while(1){e=pb[h&63](c[(c[j>>2]|0)+1084>>2]|0,(c[g>>2]|0)+d|0,f)|0;f=(e|0)==-1;d=(f?0:e)+d|0;e=c[i>>2]|0;if(f){f=d;g=-1;break a}f=e-d|0;if((f|0)<=0){f=d;g=0;break}}}else{f=0;g=0}while(0);d=b+20|0;c[d>>2]=(c[d>>2]|0)+f;if((e|0)==(f|0)){b=c[j>>2]|0;f=b+1100|0;c[f>>2]=(c[f>>2]|0)+e;c[i>>2]=0;c[d>>2]=0;pb[h&63](c[b+1084>>2]|0,0,0)|0}if(!g){j=0;return j|0}else{e=-1;d=c[j>>2]|0;break}}else e=95;while(0);j=d+1136|0;a[j>>0]=a[j>>0]|1;j=e;return j|0}function ho(a){a=a|0;var b=0,d=0;b=a&65535;a:do if(!(a&32768)){if(b>>>0>=214){if((b+-222|0)>>>0<33){b=b+-8|0;break}if((b+-257|0)>>>0<15){b=b+-10|0;break}if((b+-273|0)>>>0<9){b=b+-11|0;break}if((b+-721|0)>>>0<9){b=b+-450|0;break}if((b+-750|0)>>>0<3){b=b+-470|0;break}if((b+-754|0)>>>0<29){b=b+-471|0;break}if((b+-784|0)>>>0<6){b=b+-472|0;break}if((b+-800|0)>>>0<5){b=b+-482|0;break}if((b+-815|0)>>>0<8){b=b+-492|0;break}if((a&65528|0)==832){b=b+-501|0;break}switch((a&65535)<<16>>16){case 844:{b=339;break a}case 848:{b=340;break a}default:{}}if((b+-881|0)>>>0<11){b=b+-540|0;break}if((a&65520|0)==1024)b=b+-672|0;else d=31}}else{b=Rn(b)|0;if(!b){b=16382;d=31}else{d=dp(b)|0;return d|0}}while(0);if((d|0)==31)b=(b+-16381|0)>>>0<3?b+-16013|0:371;d=53142+(c[12784+(b<<2)>>2]|0)|0;return d|0}function io(a){a=a|0;var b=0;if((a&32768|0)!=0?(b=a&-32769,b>>>0<141):0)a=c[14272+(b<<2)>>2]|0;else a=0;return a|0}function jo(a){a=a|0;var b=0;if(!a){a=0;return a|0}b=a+-1|0;do if(b>>>0>=11)if((a+-11|0)>>>0>=25){if((a+-35|0)>>>0<6){b=a+1|0;break}if((a+-42|0)>>>0>=16)if((a+-59|0)>>>0<37){if((b|0)<0)b=16382;else break;return b|0}else{if((a+-95|0)>>>0<31){b=a;break}else b=16382;return b|0}else b=a}else b=a;while(0);a=c[14836+(b<<2)>>2]|32768;return a|0}function ko(){var a=0,b=0;b=c[(zo()|0)>>2]|0;if(!b){b=16381;return b|0}a=b+-1|0;do if(a>>>0>=11)if((b+-11|0)>>>0>=25){if((b+-35|0)>>>0<6){a=b+1|0;break}if((b+-42|0)>>>0>=16)if((b+-59|0)>>>0<37){if((a|0)<0)a=16382;else break;return a|0}else{if((b+-95|0)>>>0<31){a=b;break}else a=16382;return a|0}else a=b}else a=b;while(0);b=c[14836+(a<<2)>>2]|32768;return b|0}function lo(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=d;h=vd(c[h>>2]|0,c[h+4>>2]|0)|0;e=D;f=b;g=f;a[g>>0]=h;a[g+1>>0]=h>>8;a[g+2>>0]=h>>16;a[g+3>>0]=h>>24;f=f+4|0;a[f>>0]=e;a[f+1>>0]=e>>8;a[f+2>>0]=e>>16;a[f+3>>0]=e>>24;f=Xp(c[d+8>>2]|0)|0;e=b+8|0;a[e>>0]=f;a[e+1>>0]=f>>8;a[e+2>>0]=f>>16;a[e+3>>0]=f>>24;e=b+12|0;b=d+12|0;d=e+12|0;do{a[e>>0]=a[b>>0]|0;e=e+1|0;b=b+1|0}while((e|0)<(d|0));return}function mo(b,e){b=b|0;e=e|0;var f=0,g=0;g=e;f=g;g=g+4|0;g=wd(d[f>>0]|d[f+1>>0]<<8|d[f+2>>0]<<16|d[f+3>>0]<<24,d[g>>0]|d[g+1>>0]<<8|d[g+2>>0]<<16|d[g+3>>0]<<24)|0;f=b;c[f>>2]=g;c[f+4>>2]=D;f=e+8|0;c[b+8>>2]=Yp(d[f>>0]|d[f+1>>0]<<8|d[f+2>>0]<<16|d[f+3>>0]<<24)|0;f=b+12|0;b=e+12|0;e=f+12|0;do{a[f>>0]=a[b>>0]|0;f=f+1|0;b=b+1|0}while((f|0)<(e|0));return}function no(a,b){a=a|0;b=b|0;var d=0;d=Fo(a)|0;if(d>>>0>11){d=-1;return d|0};c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;cr(b+12|0,a|0,d|0)|0;d=1;return d|0}function oo(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=l;l=l+32|0;if((l|0)>=(m|0))$(32);t=v+16|0;k=v+8|0;g=v;f=b+12|0;if((a[f>>0]|0?(e=d+12|0,a[e>>0]|0):0)?(Op(f,e)|0)==0:0){i=b;h=c[i>>2]|0;i=c[i+4>>2]|0;g=c[b+8>>2]|0;f=d;j=c[f>>2]|0;f=c[f+4>>2]|0;e=c[d+8>>2]|0;a:do if((h|0)==-1&(i|0)==-1)u=14;else{b=i;while(1){if(g>>>0<=99999999){o=g;p=h;r=b;break a}g=g+-1e8|0;h=_q(h|0,b|0,1,0)|0;b=D;if((h|0)==-1&(b|0)==-1){u=14;break}}}while(0);if((u|0)==14)if(g>>>0>99999999){if((c[3836]|0)==-1)c[3836]=Wb(1,0,61157,61166,353)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[3836]|0))Vb();c[k>>2]=61157;c[k+4>>2]=353;Zb(1,61295,k);Vb()}else{o=g;p=-1;r=-1}b:do if((j|0)==-1&(f|0)==-1)u=25;else{g=j;while(1){if(e>>>0<=99999999){n=e;q=g;s=f;break b}e=e+-1e8|0;g=_q(g|0,f|0,1,0)|0;f=D;if((g|0)==-1&(f|0)==-1){u=25;break}}}while(0);if((u|0)==25)if(e>>>0>99999999){if((c[3837]|0)==-1)c[3837]=Wb(1,0,61157,61166,355)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[3837]|0))Vb();c[t>>2]=61157;c[t+4>>2]=355;Zb(1,61295,t);Vb()}else{n=e;q=-1;s=-1}if(!((p|0)==(q|0)&(r|0)==(s|0))){u=r>>>0<s>>>0|(r|0)==(s|0)&p>>>0<q>>>0?-1:1;l=v;return u|0}if(o>>>0<n>>>0){u=-1;l=v;return u|0}u=o>>>0>n>>>0&1;l=v;return u|0}if((c[3835]|0)==-1)c[3835]=Wb(1,0,61157,61166,349)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[3835]|0))Vb();c[g>>2]=61157;c[g+4>>2]=349;Zb(1,61295,g);Vb();return 0}function po(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;if(!(a[b+12>>0]|0)){b=-1;return b|0}h=b+8|0;e=b;g=c[e>>2]|0;e=c[e+4>>2]|0;f=c[h>>2]|0;a:do if((g|0)==-1&(e|0)==-1){e=0;d=f}else{d=0;while(1){if(f>>>0<=99999999)break;f=f+-1e8|0;c[h>>2]=f;g=_q(g|0,e|0,1,0)|0;e=D;d=b;c[d>>2]=g;c[d+4>>2]=e;if((g|0)==-1&(e|0)==-1){e=1;d=f;break a}else d=1}return d|0}while(0);if(d>>>0<=99999999){b=e;return b|0};c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=-1;return b|0}function qo(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+48|0;if((l|0)>=(m|0))$(48);r=s+32|0;q=s+24|0;o=s;g=d+12|0;if((a[g>>0]|0?(f=e+12|0,a[f>>0]|0):0)?(Op(g,f)|0)==0:0){c[o>>2]=c[d>>2];c[o+4>>2]=c[d+4>>2];c[o+8>>2]=c[d+8>>2];c[o+12>>2]=c[d+12>>2];c[o+16>>2]=c[d+16>>2];c[o+20>>2]=c[d+20>>2];d=e;i=c[d>>2]|0;d=c[d+4>>2]|0;f=c[e+8>>2]|0;n=o+12|0;do if(a[n>>0]|0){k=o+8|0;h=o;e=c[h>>2]|0;h=c[h+4>>2]|0;g=c[k>>2]|0;a:do if((e|0)==-1&(h|0)==-1)p=9;else while(1){if(g>>>0<=99999999)break a;g=g+-1e8|0;c[k>>2]=g;e=_q(e|0,h|0,1,0)|0;h=D;j=o;c[j>>2]=e;c[j+4>>2]=h;if((e|0)==-1&(h|0)==-1){p=9;break}}while(0);if((p|0)==9)if(g>>>0>99999999){c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;c[o+16>>2]=0;c[o+20>>2]=0;break}else{e=-1;h=-1}b:do if((i|0)==-1&(d|0)==-1)p=14;else while(1){if(f>>>0<=99999999){j=d;break b}f=f+-1e8|0;i=_q(i|0,d|0,1,0)|0;d=D;if((i|0)==-1&(d|0)==-1){p=14;break}}while(0);if((p|0)==14)if(f>>>0>99999999)break;else{j=-1;i=-1}do if(g>>>0<f>>>0){if(!((e|0)==0&(h|0)==0)){g=g+1e8|0;c[k>>2]=g;e=_q(e|0,h|0,-1,-1)|0;h=D;p=o;c[p>>2]=e;c[p+4>>2]=h;break};c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;r=-1;l=s;return r|0}while(0);if(h>>>0<j>>>0|(h|0)==(j|0)&e>>>0<i>>>0){c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;r=-1;l=s;return r|0}d=Fo(n)|0;if(d>>>0>11){if((c[3838]|0)==-1)c[3838]=Wb(1,0,61157,61183,421)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[3838]|0))Vb();c[q>>2]=61157;c[q+4>>2]=421;Zb(1,61295,q);Vb()};c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;cr(b+12|0,n|0,d|0)|0;if(g>>>0>=f>>>0){r=g-f|0;c[b+8>>2]=r;p=Xq(e|0,h|0,i|0,j|0)|0;q=D;c[b>>2]=p;c[b+4>>2]=q;r=(p|0)==0&(q|0)==0&(r|0)==0&1^1;l=s;return r|0}if((c[3839]|0)==-1)c[3839]=Wb(1,0,61157,61183,422)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[3839]|0))Vb();c[r>>2]=61157;c[r+4>>2]=422;Zb(1,61295,r);Vb()}while(0);c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;r=-1;l=s;return r|0};c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;r=-1;l=s;return r|0}function ro(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0;r=l;l=l+32|0;if((l|0)>=(m|0))$(32);o=r;q=r+8|0;n=d+12|0;if((a[n>>0]|0?(f=e+12|0,a[f>>0]|0):0)?(Op(n,f)|0)==0:0){g=d;i=c[g>>2]|0;g=c[g+4>>2]|0;d=c[d+8>>2]|0;j=e;h=c[j>>2]|0;j=c[j+4>>2]|0;f=c[e+8>>2]|0;a:do if((i|0)==-1&(g|0)==-1)p=8;else{e=i;while(1){if(d>>>0<=99999999){k=d;i=e;p=9;break a}d=d+-1e8|0;e=_q(e|0,g|0,1,0)|0;g=D;if((e|0)==-1&(g|0)==-1){p=8;break}}}while(0);if((p|0)==8?d>>>0<=99999999:0){k=d;i=-1;g=-1;p=9}do if((p|0)==9){b:do if((h|0)==-1&(j|0)==-1)p=12;else{e=j;while(1){if(f>>>0<=99999999)break b;f=f+-1e8|0;h=_q(h|0,e|0,1,0)|0;e=D;if((h|0)==-1&(e|0)==-1){p=12;break}}}while(0);if((p|0)==12)if(f>>>0>99999999)break;else{h=-1;e=-1}d=Fo(n)|0;if(d>>>0>11){if((c[3840]|0)==-1)c[3840]=Wb(1,0,61157,61205,468)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[3840]|0))Vb();c[o>>2]=61157;c[o+4>>2]=468;Zb(1,61295,o);Vb()}Yq(q+d|0,0,12-d|0)|0;cr(q|0,n|0,d|0)|0;e=_q(h|0,e|0,i|0,g|0)|0;d=D;if(d>>>0<g>>>0|(d|0)==(g|0)&e>>>0<i>>>0){c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=-1;l=r;return b|0}f=f+k|0;do if(a[q>>0]|0){c:do if((e|0)==-1&(d|0)==-1)p=28;else while(1){if(f>>>0<=99999999)break c;f=f+-1e8|0;e=_q(e|0,d|0,1,0)|0;d=D;if((e|0)==-1&(d|0)==-1){p=28;break}}while(0);if((p|0)==28)if(f>>>0>99999999){c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;break}else{e=-1;d=-1}p=b;c[p>>2]=e;c[p+4>>2]=d;c[b+8>>2]=f;b=b+12|0;c[b>>2]=c[q>>2];c[b+4>>2]=c[q+4>>2];c[b+8>>2]=c[q+8>>2];b=1;l=r;return b|0}while(0);c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=-1;l=r;return b|0}while(0);c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=-1;l=r;return b|0};c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=-1;l=r;return b|0}function so(){var a=0,b=0,d=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=d+8|0;a=d;xe(6,0);if(!(yd(61222)|0)){iq(61228,27,1,c[3935]|0)|0;za()}else{c[a>>2]=0;zd(37,a)|0;c[b>>2]=0;zd(38,b)|0;l=d;return}}function to(a,b,d){a=a|0;b=b|0;d=d|0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=a;a=c[3935]|0;c[b>>2]=d;Rp(a,61256,b)|0;za()}function uo(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;h=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=h+16|0;i=h;j=h+24|0;c[j>>2]=Xp(e)|0;c[i>>2]=61323;c[i+4>>2]=21;c[i+8>>2]=0;c[i+12>>2]=0;if((Hc(f,64,j,4,b,64,i)|0)==1){a[f>>0]=(d[f>>0]|0)&63|64;j=f+31|0;a[j>>0]=(d[j>>0]|0)&248;l=h;return}if((c[3841]|0)==-1)c[3841]=Wb(1,0,61286,61345,197)|0;if((Xb()|0)>0){Yb(-1,0);Vb()}if(!(c[3841]|0))Vb();c[g>>2]=61286;c[g+4>>2]=197;Zb(1,61295,g);Vb()}function vo(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=Co(c[a+60>>2]|0)|0;a=yo(cb(6,d|0)|0)|0;l=b;return a|0}function wo(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;g=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=g;c[b+36>>2]=25;if((c[b>>2]&64|0)==0?(c[f>>2]=c[b+60>>2],c[f+4>>2]=21523,c[f+8>>2]=g+16,Za(54,f|0)|0):0)a[b+75>>0]=-1;f=Bo(b,d,e)|0;l=g;return f|0}function xo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f;e=f+20|0;c[g>>2]=c[a+60>>2];c[g+4>>2]=0;c[g+8>>2]=b;c[g+12>>2]=e;c[g+16>>2]=d;if((yo(jb(140,g|0)|0)|0)<0){c[e>>2]=-1;a=-1}else a=c[e>>2]|0;l=f;return a|0}function yo(a){a=a|0;if(a>>>0>4294963200){c[(zo()|0)>>2]=0-a;a=-1}return a|0}function zo(){return (Ao()|0)+64|0}function Ao(){return 15492}function Bo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;o=l;l=l+48|0;if((l|0)>=(m|0))$(48);k=o+16|0;g=o;f=o+32|0;i=a+28|0;e=c[i>>2]|0;c[f>>2]=e;j=a+20|0;e=(c[j>>2]|0)-e|0;c[f+4>>2]=e;c[f+8>>2]=b;c[f+12>>2]=d;e=e+d|0;h=a+60|0;c[g>>2]=c[h>>2];c[g+4>>2]=f;c[g+8>>2]=2;g=yo(nb(146,g|0)|0)|0;a:do if((e|0)!=(g|0)){b=2;while(1){if((g|0)<0)break;e=e-g|0;q=c[f+4>>2]|0;p=g>>>0>q>>>0;f=p?f+8|0:f;b=(p<<31>>31)+b|0;q=g-(p?q:0)|0;c[f>>2]=(c[f>>2]|0)+q;p=f+4|0;c[p>>2]=(c[p>>2]|0)-q;c[k>>2]=c[h>>2];c[k+4>>2]=f;c[k+8>>2]=b;g=yo(nb(146,k|0)|0)|0;if((e|0)==(g|0)){n=3;break a}}c[a+16>>2]=0;c[i>>2]=0;c[j>>2]=0;c[a>>2]=c[a>>2]|32;if((b|0)==2)d=0;else d=d-(c[f+4>>2]|0)|0}else n=3;while(0);if((n|0)==3){q=c[a+44>>2]|0;c[a+16>>2]=q+(c[a+48>>2]|0);c[i>>2]=q;c[j>>2]=q}l=o;return d|0}function Co(a){a=a|0;return a|0}function Do(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0;k=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=k;i=k+16|0;c[i>>2]=d;g=i+4|0;j=b+48|0;n=c[j>>2]|0;c[g>>2]=e-((n|0)!=0&1);h=b+44|0;c[i+8>>2]=c[h>>2];c[i+12>>2]=n;c[f>>2]=c[b+60>>2];c[f+4>>2]=i;c[f+8>>2]=2;f=yo(mb(145,f|0)|0)|0;if((f|0)>=1){i=c[g>>2]|0;if(f>>>0>i>>>0){g=c[h>>2]|0;h=b+4|0;c[h>>2]=g;c[b+8>>2]=g+(f-i);if(!(c[j>>2]|0))f=e;else{c[h>>2]=g+1;a[d+(e+-1)>>0]=a[g>>0]|0;f=e}}}else c[b>>2]=c[b>>2]|f&48^16;l=k;return f|0}function Eo(){return 70776}function Fo(b){b=b|0;var d=0,e=0,f=0;f=b;a:do if(!(f&3))e=4;else{d=f;while(1){if(!(a[b>>0]|0)){b=d;break a}b=b+1|0;d=b;if(!(d&3)){e=4;break}}}while(0);if((e|0)==4){while(1){d=c[b>>2]|0;if(!((d&-2139062144^-2139062144)&d+-16843009))b=b+4|0;else break}if((d&255)<<24>>24)do b=b+1|0;while((a[b>>0]|0)!=0)}return b-f|0}function Go(b,c){b=b|0;c=c|0;var d=0,e=0;d=a[b>>0]|0;e=a[c>>0]|0;if(d<<24>>24==0?1:d<<24>>24!=e<<24>>24)b=e;else{do{b=b+1|0;c=c+1|0;d=a[b>>0]|0;e=a[c>>0]|0}while(!(d<<24>>24==0?1:d<<24>>24!=e<<24>>24));b=e}return (d&255)-(b&255)|0}function Ho(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d;Vo();c[e>>2]=a;c[e+4>>2]=b;b=yo(Ta(91,e|0)|0)|0;l=d;return b|0}function Io(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;n=c[b+8>>2]|0;o=(c[b>>2]|0)==-1794895138;h=er(n|0)|0;h=o?n:h;n=c[b+12>>2]|0;f=er(n|0)|0;f=o?n:f;n=c[b+16>>2]|0;g=er(n|0)|0;g=o?n:g;a:do if((h>>>0<d>>>2>>>0?(n=d-(h<<2)|0,f>>>0<n>>>0&g>>>0<n>>>0):0)?((g|f)&3|0)==0:0){n=f>>>2;m=g>>>2;l=0;while(1){i=h>>>1;j=l+i|0;k=j<<1;p=k+n|0;f=c[b+(p<<2)>>2]|0;g=er(f|0)|0;g=o?f:g;p=c[b+(p+1<<2)>>2]|0;f=er(p|0)|0;f=o?p:f;if(!(f>>>0<d>>>0&g>>>0<(d-f|0)>>>0)){f=0;break a}if(a[b+(f+g)>>0]|0){f=0;break a}f=Go(e,b+f|0)|0;if(!f)break;if((h|0)==1){f=0;break a}p=(f|0)<0;l=p?l:j;h=p?i:h-i|0}p=k+m|0;f=c[b+(p<<2)>>2]|0;g=er(f|0)|0;g=o?f:g;p=c[b+(p+1<<2)>>2]|0;f=er(p|0)|0;f=o?p:f;if(f>>>0<d>>>0&g>>>0<(d-f|0)>>>0)f=(a[b+(f+g)>>0]|0)==0?b+f|0:0;else f=0}else f=0;while(0);return f|0}function Jo(b,c,e){b=b|0;c=c|0;e=e|0;var f=0,g=0;if(!e)f=0;else{f=a[b>>0]|0;a:do if(!(f<<24>>24))f=0;else while(1){e=e+-1|0;g=a[c>>0]|0;if(!(f<<24>>24==g<<24>>24&((e|0)!=0&g<<24>>24!=0)))break a;b=b+1|0;c=c+1|0;f=a[b>>0]|0;if(!(f<<24>>24)){f=0;break}}while(0);f=(f&255)-(d[c>>0]|0)|0}return f|0}function Ko(b,c){b=b|0;c=c|0;b=Uo(b,c)|0;return ((a[b>>0]|0)==(c&255)<<24>>24?b:0)|0}function Lo(a){a=a|0;return ((a|0)==32|(a+-9|0)>>>0<5)&1|0}function Mo(a,b,c){a=a|0;b=b|0;c=c|0;c=Oo(a,b,c,-1,0)|0;return c|0}function No(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=d&255;f=(e|0)!=0;a:do if(f&(b&3|0)!=0){g=d&255;while(1){if((a[b>>0]|0)==g<<24>>24){i=6;break a}b=b+1|0;e=e+-1|0;f=(e|0)!=0;if(!(f&(b&3|0)!=0)){i=5;break}}}else i=5;while(0);if((i|0)==5)if(f)i=6;else e=0;b:do if((i|0)==6){g=d&255;if((a[b>>0]|0)!=g<<24>>24){f=S(h,16843009)|0;c:do if(e>>>0>3)while(1){h=c[b>>2]^f;if((h&-2139062144^-2139062144)&h+-16843009|0)break;b=b+4|0;e=e+-4|0;if(e>>>0<=3){i=11;break c}}else i=11;while(0);if((i|0)==11)if(!e){e=0;break}while(1){if((a[b>>0]|0)==g<<24>>24)break b;b=b+1|0;e=e+-1|0;if(!e){e=0;break}}}}while(0);return (e|0?b:0)|0}function Oo(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=l;l=l+128|0;if((l|0)>=(m|0))$(128);h=j;c[h>>2]=0;i=h+4|0;c[i>>2]=a;c[h+44>>2]=a;g=h+8|0;c[g>>2]=(a|0)<0?-1:a+2147483647|0;c[h+76>>2]=-1;Po(h,0);d=Qo(h,d,1,e,f)|0;if(b|0)c[b>>2]=a+((c[i>>2]|0)+(c[h+108>>2]|0)-(c[g>>2]|0));l=j;return d|0}function Po(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;c[a+104>>2]=b;d=c[a+8>>2]|0;e=c[a+4>>2]|0;f=d-e|0;c[a+108>>2]=f;if((b|0)!=0&(f|0)>(b|0))c[a+100>>2]=e+b;else c[a+100>>2]=d;return}function Qo(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;a:do if(e>>>0>36){c[(zo()|0)>>2]=22;h=0;g=0}else{r=b+4|0;q=b+100|0;do{i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=Ro(b)|0}while((Lo(i)|0)!=0);b:do switch(i|0){case 43:case 45:{i=((i|0)==45)<<31>>31;j=c[r>>2]|0;if(j>>>0<(c[q>>2]|0)>>>0){c[r>>2]=j+1;p=i;i=d[j>>0]|0;break b}else{p=i;i=Ro(b)|0;break b}}default:p=0}while(0);j=(e|0)==0;do if((e|16|0)==16&(i|0)==48){i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=Ro(b)|0;if((i|32|0)!=120)if(j){e=8;n=46;break}else{n=32;break}i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=Ro(b)|0;if((d[61369+i>>0]|0)>15){g=(c[q>>2]|0)==0;if(!g)c[r>>2]=(c[r>>2]|0)+-1;if(!f){Po(b,0);h=0;g=0;break a}if(g){h=0;g=0;break a}c[r>>2]=(c[r>>2]|0)+-1;h=0;g=0;break a}else{e=16;n=46}}else{e=j?10:e;if((d[61369+i>>0]|0)>>>0<e>>>0)n=32;else{if(c[q>>2]|0)c[r>>2]=(c[r>>2]|0)+-1;Po(b,0);c[(zo()|0)>>2]=22;h=0;g=0;break a}}while(0);if((n|0)==32)if((e|0)==10){e=i+-48|0;if(e>>>0<10){i=0;j=e;do{i=(i*10|0)+j|0;e=c[r>>2]|0;if(e>>>0<(c[q>>2]|0)>>>0){c[r>>2]=e+1;e=d[e>>0]|0}else e=Ro(b)|0;j=e+-48|0}while(j>>>0<10&i>>>0<429496729);f=0}else{e=i;i=0;f=0}j=e+-48|0;if(j>>>0<10){m=j;while(1){j=kr(i|0,f|0,10,0)|0;k=D;l=((m|0)<0)<<31>>31;o=~l;if(k>>>0>o>>>0|(k|0)==(o|0)&j>>>0>~m>>>0){j=e;e=m;break}i=_q(j|0,k|0,m|0,l|0)|0;f=D;e=c[r>>2]|0;if(e>>>0<(c[q>>2]|0)>>>0){c[r>>2]=e+1;e=d[e>>0]|0}else e=Ro(b)|0;k=e+-48|0;if(k>>>0<10&(f>>>0<429496729|(f|0)==429496729&i>>>0<2576980378))m=k;else{j=e;e=k;break}}if(e>>>0>9){j=p;e=f}else{e=10;n=72}}else{j=p;e=f}}else n=46;c:do if((n|0)==46){if(!(e+-1&e)){n=a[61625+((e*23|0)>>>5&7)>>0]|0;f=a[61369+i>>0]|0;j=f&255;if(j>>>0<e>>>0){i=0;k=j;do{i=k|i<<n;j=c[r>>2]|0;if(j>>>0<(c[q>>2]|0)>>>0){c[r>>2]=j+1;j=d[j>>0]|0}else j=Ro(b)|0;f=a[61369+j>>0]|0;k=f&255}while(i>>>0<134217728&k>>>0<e>>>0);k=0}else{j=i;k=0;i=0}l=gr(-1,-1,n|0)|0;m=D;if((f&255)>>>0>=e>>>0|(k>>>0>m>>>0|(k|0)==(m|0)&i>>>0>l>>>0)){f=k;n=72;break}else j=k;while(1){i=mr(i|0,j|0,n|0)|0;k=D;i=f&255|i;j=c[r>>2]|0;if(j>>>0<(c[q>>2]|0)>>>0){c[r>>2]=j+1;j=d[j>>0]|0}else j=Ro(b)|0;f=a[61369+j>>0]|0;if((f&255)>>>0>=e>>>0|(k>>>0>m>>>0|(k|0)==(m|0)&i>>>0>l>>>0)){f=k;n=72;break c}else j=k}}f=a[61369+i>>0]|0;j=f&255;if(j>>>0<e>>>0){i=0;k=j;do{i=k+(S(i,e)|0)|0;j=c[r>>2]|0;if(j>>>0<(c[q>>2]|0)>>>0){c[r>>2]=j+1;j=d[j>>0]|0}else j=Ro(b)|0;f=a[61369+j>>0]|0;k=f&255}while(i>>>0<119304647&k>>>0<e>>>0);k=0}else{j=i;i=0;k=0}if((f&255)>>>0<e>>>0){n=ir(-1,-1,e|0,0)|0;o=D;m=k;while(1){if(m>>>0>o>>>0|(m|0)==(o|0)&i>>>0>n>>>0){f=m;n=72;break c}k=kr(i|0,m|0,e|0,0)|0;l=D;f=f&255;if(l>>>0>4294967295|(l|0)==-1&k>>>0>~f>>>0){f=m;n=72;break c}i=_q(f|0,0,k|0,l|0)|0;k=D;j=c[r>>2]|0;if(j>>>0<(c[q>>2]|0)>>>0){c[r>>2]=j+1;j=d[j>>0]|0}else j=Ro(b)|0;f=a[61369+j>>0]|0;if((f&255)>>>0>=e>>>0){f=k;n=72;break}else m=k}}else{f=k;n=72}}while(0);if((n|0)==72)if((d[61369+j>>0]|0)>>>0<e>>>0){do{i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=Ro(b)|0}while((d[61369+i>>0]|0)>>>0<e>>>0);c[(zo()|0)>>2]=34;j=(g&1|0)==0&0==0?p:0;e=h;i=g}else{j=p;e=f}if(c[q>>2]|0)c[r>>2]=(c[r>>2]|0)+-1;if(!(e>>>0<h>>>0|(e|0)==(h|0)&i>>>0<g>>>0)){if(!((g&1|0)!=0|0!=0|(j|0)!=0)){c[(zo()|0)>>2]=34;g=_q(g|0,h|0,-1,-1)|0;h=D;break}if(e>>>0>h>>>0|(e|0)==(h|0)&i>>>0>g>>>0){c[(zo()|0)>>2]=34;break}}g=((j|0)<0)<<31>>31;g=Xq(i^j|0,e^g|0,j|0,g|0)|0;h=D}while(0);D=h;return g|0}function Ro(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0;f=b+104|0;i=c[f>>2]|0;if((i|0)!=0?(c[b+108>>2]|0)>=(i|0):0)j=4;else{e=So(b)|0;if((e|0)>=0){f=c[f>>2]|0;i=c[b+8>>2]|0;if(f){h=c[b+4>>2]|0;f=f-(c[b+108>>2]|0)|0;g=i;if((i-h|0)<(f|0))j=9;else c[b+100>>2]=h+(f+-1)}else{g=i;j=9}if((j|0)==9)c[b+100>>2]=i;f=b+4|0;if(!g)f=c[f>>2]|0;else{f=c[f>>2]|0;b=b+108|0;c[b>>2]=g+1-f+(c[b>>2]|0)}f=f+-1|0;if((d[f>>0]|0|0)!=(e|0))a[f>>0]=e}else j=4}if((j|0)==4){c[b+100>>2]=0;e=-1}return e|0}function So(a){a=a|0;var b=0,e=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=e;if((To(a)|0)==0?(pb[c[a+32>>2]&63](a,b,1)|0)==1:0)a=d[b>>0]|0;else a=-1;l=e;return a|0}function To(b){b=b|0;var d=0,e=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;d=b+20|0;e=b+28|0;if((c[d>>2]|0)>>>0>(c[e>>2]|0)>>>0)pb[c[b+36>>2]&63](b,0,0)|0;c[b+16>>2]=0;c[e>>2]=0;c[d>>2]=0;d=c[b>>2]|0;if(!(d&4)){e=(c[b+44>>2]|0)+(c[b+48>>2]|0)|0;c[b+8>>2]=e;c[b+4>>2]=e;d=d<<27>>31}else{c[b>>2]=d|32;d=-1}return d|0}function Uo(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;f=d&255;a:do if(!f)b=b+(Fo(b)|0)|0;else{if(b&3){e=d&255;do{g=a[b>>0]|0;if(g<<24>>24==0?1:g<<24>>24==e<<24>>24)break a;b=b+1|0}while((b&3|0)!=0)}f=S(f,16843009)|0;e=c[b>>2]|0;b:do if(!((e&-2139062144^-2139062144)&e+-16843009))do{g=e^f;if((g&-2139062144^-2139062144)&g+-16843009|0)break b;b=b+4|0;e=c[b>>2]|0}while(!((e&-2139062144^-2139062144)&e+-16843009|0));while(0);e=d&255;while(1){g=a[b>>0]|0;if(g<<24>>24==0?1:g<<24>>24==e<<24>>24)break;else b=b+1|0}}while(0);return b|0}function Vo(){return}function Wo(a){a=a|0;return Xo(a)|0}function Xo(a){a=a|0;return ((a|0)==32|(a|0)==9)&1|0}function Yo(a){a=a|0;var b=0;b=(Zo(a)|0)==0;return (b?a:a|32)|0}function Zo(a){a=a|0;return (a+-65|0)>>>0<26|0}function _o(a){a=a|0;return ap(a,0)|0}function $o(a){a=a|0;return ap(a,1)|0}function ap(c,f){c=c|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=(f<<1)+-1|0;l=f+-1|0;a:do if(!((c+-43008|0)>>>0<22272|((c+-11776|0)>>>0<30784|((c+-1536|0)>>>0<2560|(bp(c)|0)==0)))){g=(f|0)!=0;if(g&(c+-4256|0)>>>0<46){if((c|0)>4293)switch(c|0){case 4295:case 4301:break;default:break a}c=c+7264|0;break}if((c+-11520|0)>>>0<38&(g^1)){if((c|0)>11557)switch(c|0){case 11559:case 11565:break;default:break a}c=c+-7264|0;break}else g=0;do{i=a[18762+(g<<2)+2>>0]|0;j=i<<24>>24;h=c-(e[18762+(g<<2)>>1]|0)|0;if((h-(j&l)|0)>>>0<(d[18762+(g<<2)+3>>0]|0)>>>0){m=13;break}g=g+1|0}while((g|0)!=61);if((m|0)==13)if(i<<24>>24==1){c=f+c-(h&1)|0;break}else{c=(S(j,k)|0)+c|0;break}i=1-f|0;g=b[18274+(i<<1)>>1]|0;b:do if(g<<16>>16){h=0;while(1){if((g&65535|0)==(c|0))break;h=h+1|0;g=b[18274+(h<<2)+(i<<1)>>1]|0;if(!(g<<16>>16))break b}c=e[18274+(h<<2)+(f<<1)>>1]|0;break a}while(0);return ((c+-66600+(f*40|0)|0)>>>0<40?c+-40+(f*80|0)|0:c)|0}while(0);return c|0}function bp(a){a=a|0;if(a>>>0<131072)a=(d[61634+((d[61634+(a>>>8)>>0]|0)<<5|a>>>3&31)>>0]|0)>>>(a&7)&1;else a=a>>>0<196606&1;return a|0}function cp(a){a=a|0;return (a+-97|0)>>>0<26|0}function dp(a){a=a|0;return ep(a,c[(Ao()|0)+188>>2]|0)|0}function ep(b,e){b=b|0;e=e|0;var f=0,g=0;g=0;while(1){if((d[64610+g>>0]|0)==(b|0)){b=2;break}f=g+1|0;if((f|0)==87){f=64698;g=87;b=5;break}else g=f}if((b|0)==2)if(!g)f=64698;else{f=64698;b=5}if((b|0)==5)while(1){do{b=f;f=f+1|0}while((a[b>>0]|0)!=0);g=g+-1|0;if(!g)break;else b=5}return fp(f,c[e+20>>2]|0)|0}function fp(a,b){a=a|0;b=b|0;return gp(a,b)|0}function gp(a,b){a=a|0;b=b|0;if(!b)b=0;else b=Io(c[b>>2]|0,c[b+4>>2]|0,a)|0;return (b|0?b:a)|0}function hp(a){a=a|0;if(!a)a=0;else a=(ip(16072,a)|0)!=0;return a&1|0}function ip(a,b){a=a|0;b=b|0;var d=0;if(!b)a=a+((jp(a)|0)<<2)|0;else{while(1){d=c[a>>2]|0;if((d|0)==0|(d|0)==(b|0))break;else a=a+4|0}a=d|0?a:0}return a|0}function jp(a){a=a|0;var b=0;b=a;while(1)if(!(c[b>>2]|0))break;else b=b+4|0;return b-a>>2|0}function kp(a){a=a|0;return ((a+-48|0)>>>0<10|((a|32)+-97|0)>>>0<6)&1|0}function lp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=f;c[g>>2]=e;e=mp(a,b,d,g)|0;l=f;return e|0}function mp(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0;o=l;l=l+128|0;if((l|0)>=(m|0))$(128);g=o+124|0;n=o;h=n;i=16160;j=h+124|0;do{c[h>>2]=c[i>>2];h=h+4|0;i=i+4|0}while((h|0)<(j|0));if((d+-1|0)>>>0>2147483646)if(!d){b=g;d=1;k=4}else{c[(zo()|0)>>2]=75;d=-1}else k=4;if((k|0)==4){k=-2-b|0;k=d>>>0>k>>>0?k:d;c[n+48>>2]=k;g=n+20|0;c[g>>2]=b;c[n+44>>2]=b;d=b+k|0;b=n+16|0;c[b>>2]=d;c[n+28>>2]=d;d=np(n,e,f)|0;if(k){n=c[g>>2]|0;a[n+(((n|0)==(c[b>>2]|0))<<31>>31)>>0]=0}}l=o;return d|0}function np(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=l;l=l+224|0;if((l|0)>=(m|0))$(224);o=t+120|0;q=t+80|0;r=t;s=t+136|0;f=q;g=f+40|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));c[o>>2]=c[e>>2];if((op(0,d,o,r,q)|0)<0)e=-1;else{if((c[b+76>>2]|0)>-1)p=pp(b)|0;else p=0;e=c[b>>2]|0;n=e&32;if((a[b+74>>0]|0)<1)c[b>>2]=e&-33;f=b+48|0;if(!(c[f>>2]|0)){g=b+44|0;h=c[g>>2]|0;c[g>>2]=s;i=b+28|0;c[i>>2]=s;j=b+20|0;c[j>>2]=s;c[f>>2]=80;k=b+16|0;c[k>>2]=s+80;e=op(b,d,o,r,q)|0;if(h){pb[c[b+36>>2]&63](b,0,0)|0;e=(c[j>>2]|0)==0?-1:e;c[g>>2]=h;c[f>>2]=0;c[k>>2]=0;c[i>>2]=0;c[j>>2]=0}}else e=op(b,d,o,r,q)|0;f=c[b>>2]|0;c[b>>2]=f|n;if(p|0)qp(b);e=(f&32|0)==0?e:-1}l=t;return e|0} +function Pf(b){b=b|0;var d=0;if(!b){Tn(22);d=0;return d|0}if(!(c[17594]|0)){d=Xf(b)|0;return d|0}d=Xf(b+5|0)|0;if(!d){d=0;return d|0}a[d>>0]=b;a[d+1>>0]=b>>>8;a[d+2>>0]=b>>>16;a[d+3>>0]=-52;a[d+(b+4)>>0]=-86;d=d+4|0;return d|0}function Qf(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=j+8|0;f=j;if(!(c[17594]|0))if(!(ag(b)|0)){e=Rq(b,e)|0;l=j;return e|0}else{e=$f(b,e)|0;l=j;return e|0}if(!b){if(!e){Tn(22);e=0;l=j;return e|0}f=Oq(e+5|0)|0;if(!f){e=0;l=j;return e|0}a[f>>0]=e;a[f+1>>0]=e>>>8;a[f+2>>0]=e>>>16;a[f+3>>0]=85;a[f+(e+4)>>0]=-86;e=f+4|0;l=j;return e|0}h=a[b+-1>>0]|0;switch(h<<24>>24){case -52:case 85:break;default:{c[f>>2]=b;c[f+4>>2]=h&255;Me(22844,f)}}i=d[b+-3>>0]<<8|d[b+-4>>0]|d[b+-2>>0]<<16;if((a[b+i>>0]|0)!=-86){c[g>>2]=b;c[g+4>>2]=h&255;Me(22885,g)}if(i>>>0>=e>>>0){e=b;l=j;return e|0}f=(e|0)==0;do if(h<<24>>24==-52){if(f){Tn(22);e=0;l=j;return e|0}f=Xf(e+5|0)|0;if(!f){e=0;l=j;return e|0}else{a[f>>0]=e;a[f+1>>0]=e>>>8;a[f+2>>0]=e>>>16;a[f+3>>0]=-52;a[f+(e+4)>>0]=-86;break}}else{if(f){Tn(22);e=0;l=j;return e|0}f=Oq(e+5|0)|0;if(!f){e=0;l=j;return e|0}else{a[f>>0]=e;a[f+1>>0]=e>>>8;a[f+2>>0]=e>>>16;a[f+3>>0]=85;a[f+(e+4)>>0]=-86;break}}while(0);h=f+4|0;cr(h|0,b|0,i|0)|0;Yq(h+i|0,0,e-i|0)|0;Rf(b);e=h;l=j;return e|0}function Rf(b){b=b|0;var e=0,f=0,g=0,h=0;h=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=h+8|0;e=h;if(!b){l=h;return}if(!(c[17594]|0))if(!(ag(b)|0)){Pq(b);l=h;return}else{Zf(b);l=h;return}f=a[b+-1>>0]|0;switch(f<<24>>24){case -52:case 85:break;default:{c[e>>2]=b;c[e+4>>2]=f&255;Me(22844,e)}}e=b+-4|0;if((a[b+(d[b+-3>>0]<<8|d[e>>0]|d[b+-2>>0]<<16)>>0]|0)!=-86){c[g>>2]=b;c[g+4>>2]=f&255;Me(22885,g)}if(!(ag(b)|0)){Pq(e);l=h;return}else{Zf(e);l=h;return}}function Sf(a){a=a|0;Vn(1268)|0;c[17595]=a&1;c[17596]=a&2;c[17597]=a&8;c[17598]=a&16;Wn(1268)|0;return}function Tf(){var a=0;Vn(1268)|0;a=(c[17596]|0?2:0)|(c[17595]|0)!=0|(c[17597]|0?8:0)|(c[17598]|0?16:0);Wn(1268)|0;return a|0}function Uf(a){a=a|0;Vn(1268)|0;Vf(a);Wn(1268)|0;return}function Vf(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0;n=l;l=l+48|0;if((l|0)>=(m|0))$(48);f=n+40|0;k=n+32|0;j=n+24|0;g=n+16|0;e=n+8|0;d=n;if(!a){c[17599]=1;b=uq()|0;if((b|0)==(wq()|0)){l=n;return}if(xq(b)|0)Me(22925,d);b=uq()|0;if((b|0)!=(wq()|0))Me(22925,d);if(!(xq(0)|0))Me(22925,d);else{l=n;return}}if(c[17600]|0){Le(23124,f);l=n;return}c[17601]=a>>>0<16384?16384:a;if(c[17599]|0)Ne(22948,e);f=Oa(30)|0;f=(f|0)>0?f:4096;f=(c[17601]|0)+-1+f&0-f;c[17601]=f;f=Aq(0,f,3,34,-1,0)|0;c[17602]=f;if((f|0)==(-1|0)){e=c[17601]|0;f=dp(c[(zo()|0)>>2]|0)|0;c[g>>2]=e;c[g+4>>2]=f;Je(22974,g)}else{c[17603]=1;c[17600]=1}do if(!(c[17600]|0)){a=c[17601]|0;b=Oq(a)|0;c[17602]=b;if(!b){c[j>>2]=a;Me(23022,j)}else{c[17600]=1;h=a;i=b;break}}else{h=c[17601]|0;i=c[17602]|0}while(0);c[i>>2]=h;c[i+4>>2]=0;if(c[17597]|0){l=n;return}Je(23062,k);l=n;return}function Wf(){return 0}function Xf(a){a=a|0;Vn(1268)|0;a=Yf(a)|0;Wn(1268)|0;return a|0}function Yf(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0;n=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=n;if((c[17600]|0)==0?(Vf(32768),(c[17600]|0)==0):0){Je(ze(23170)|0,b);Tn(12);k=0;l=n;return k|0}j=a+31&-32;i=c[17602]|0;k=i;h=(c[17601]|0)+k|0;b=i;a=k;do{if(a>>>0>=h>>>0)break;d=b+4|0;e=c[d>>2]|0;f=c[b>>2]|0;if(!((e&1|0)!=0|f>>>0<j>>>0)){g=7;break}b=b+8+f|0;b=b>>>0<i>>>0?0:b>>>0<h>>>0?b:0;a=b}while(b>>>0>=i>>>0);if((g|0)==7){c[d>>2]=e|1;d=f-j|0;if(d>>>0>8){g=b+8+j|0;c[g>>2]=d+-8;c[g+4>>2]=0;c[b>>2]=j;if((i|0)==(g|0))e=0;else{e=i;while(1){d=e+8+(c[e>>2]|0)|0;d=d>>>0<i>>>0?0:d>>>0<h>>>0?d:0;if((d|0)==(g|0))break;else e=d}}d=c[g>>2]|0;f=g+8+d|0;f=f>>>0<i>>>0?0:f>>>0<h>>>0?f:0;if((e|0)!=0?(c[e+4>>2]&1|0)==0:0){d=d+8+(c[e>>2]|0)|0;c[e>>2]=d}else e=g;if((f|0)!=0?(c[f+4>>2]&1|0)==0:0)c[e>>2]=d+8+(c[f>>2]|0)}}if(a>>>0>=k>>>0?a>>>0<((c[17601]|0)+k|0)>>>0:0)if(!b)a=0;else{if(j|0){c[17604]=(c[17604]|0)+j;c[17605]=(c[17605]|0)+1}a=b+8|0}else{Tn(12);a=0}k=a;l=n;return k|0}function Zf(a){a=a|0;Vn(1268)|0;_f(a);Wn(1268)|0;return}function _f(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;if(!b)return;l=b+-8|0;k=c[l>>2]|0;j=(k|0)!=0&(b&7|0)!=0;if(j){e=b;d=k;do{a[e>>0]=-1;e=e+1|0;d=d+-1|0}while((d|0)!=0&(e&7|0)!=0)}else{e=b;d=k}if(d>>>0>=8){h=d+-8|0;i=h&-8;g=i+8|0;f=e;while(1){m=f;c[m>>2]=-1;c[m+4>>2]=-1;d=d+-8|0;if(d>>>0<=7)break;else f=f+8|0}e=e+g|0;d=h-i|0}if(d|0)while(1){a[e>>0]=-1;d=d+-1|0;if(!d)break;else e=e+1|0}if(j){e=b;d=k;do{a[e>>0]=-86;e=e+1|0;d=d+-1|0}while((d|0)!=0&(e&7|0)!=0)}else{e=b;d=k}if(d>>>0>=8){h=d+-8|0;i=h&-8;g=i+8|0;f=e;while(1){m=f;c[m>>2]=-1431655766;c[m+4>>2]=-1431655766;d=d+-8|0;if(d>>>0<=7)break;else f=f+8|0}e=e+g|0;d=h-i|0}if(d|0)while(1){a[e>>0]=-86;d=d+-1|0;if(!d)break;else e=e+1|0}if(j){e=k;d=b;do{a[d>>0]=85;d=d+1|0;e=e+-1|0}while((e|0)!=0&(d&7|0)!=0)}else{e=k;d=b}if(e>>>0>=8){g=e+-8|0;h=g&-8;i=h+8|0;f=d;while(1){m=f;c[m>>2]=1431655765;c[m+4>>2]=1431655765;e=e+-8|0;if(e>>>0<=7)break;else f=f+8|0}e=g-h|0;d=d+i|0}if(e|0)while(1){a[d>>0]=85;e=e+-1|0;if(!e)break;else d=d+1|0}if(j){e=k;d=b;do{a[d>>0]=0;d=d+1|0;e=e+-1|0}while((e|0)!=0&(d&7|0)!=0)}else{e=k;d=b}if(e>>>0>=8){g=e+-8|0;h=g&-8;i=h+8|0;f=d;while(1){m=f;c[m>>2]=0;c[m+4>>2]=0;e=e+-8|0;if(e>>>0<=7)break;else f=f+8|0}e=g-h|0;d=d+i|0}if(e|0)while(1){a[d>>0]=0;e=e+-1|0;if(!e)break;else d=d+1|0}if(k|0){c[17604]=(c[17604]|0)-k;c[17605]=(c[17605]|0)+-1}g=b+-4|0;c[g>>2]=c[g>>2]&-2;g=c[17602]|0;h=g;if((g|0)==(l|0))e=0;else{d=(c[17601]|0)+h|0;e=g;while(1){f=e+8+(c[e>>2]|0)|0;f=f>>>0<g>>>0?0:f>>>0<d>>>0?f:0;if((f|0)==(l|0))break;else e=f}}d=c[l>>2]|0;f=b+d|0;if(f>>>0<g>>>0)f=0;else f=f>>>0<((c[17601]|0)+h|0)>>>0?f:0;if((e|0)!=0?(c[e+4>>2]&1|0)==0:0){d=d+8+(c[e>>2]|0)|0;c[e>>2]=d}else e=l;if(!f)return;if(c[f+4>>2]&1|0)return;c[e>>2]=d+8+(c[f>>2]|0);return}function $f(a,b){a=a|0;b=b|0;var d=0,e=0;Vn(1268)|0;d=c[a+-8>>2]|0;if(d>>>0<=b>>>0){e=Yf(b)|0;if(!e)a=0;else{cr(e|0,a|0,d|0)|0;Yq(e+d|0,0,b-d|0)|0;_f(a);a=e}}Wn(1268)|0;return a|0}function ag(a){a=a|0;var b=0,d=0;if((c[17600]|0)!=0?(b=a,d=c[17602]|0,b>>>0>=d>>>0):0)a=b>>>0<((c[17601]|0)+d|0)>>>0;else a=0;return a&1|0}function bg(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if(!(c[17600]|0))return;b=c[17602]|0;d=c[17601]|0;if((d|0)!=0&(b&7|0)!=0){f=d;e=b;do{a[e>>0]=-1;e=e+1|0;f=f+-1|0}while((f|0)!=0&(e&7|0)!=0)}else{e=b;f=d}if(f>>>0>=8){i=f+-8|0;j=i&-8;h=j+8|0;g=e;while(1){k=g;c[k>>2]=-1;c[k+4>>2]=-1;f=f+-8|0;if(f>>>0<=7)break;else g=g+8|0}e=e+h|0;f=i-j|0}if(f){d=f;b=e;while(1){a[b>>0]=-1;d=d+-1|0;if(!d)break;else b=b+1|0}b=c[17602]|0;d=c[17601]|0}if((d|0)!=0&(b&7|0)!=0){e=b;f=d;do{a[e>>0]=-86;e=e+1|0;f=f+-1|0}while((f|0)!=0&(e&7|0)!=0)}else{e=b;f=d}if(f>>>0>=8){i=f+-8|0;j=i&-8;h=j+8|0;g=e;while(1){k=g;c[k>>2]=-1431655766;c[k+4>>2]=-1431655766;f=f+-8|0;if(f>>>0<=7)break;else g=g+8|0}e=e+h|0;f=i-j|0}if(f){d=e;b=f;while(1){a[d>>0]=-86;b=b+-1|0;if(!b)break;else d=d+1|0}b=c[17602]|0;d=c[17601]|0}if((d|0)!=0&(b&7|0)!=0)do{a[b>>0]=85;b=b+1|0;d=d+-1|0}while((d|0)!=0&(b&7|0)!=0);if(d>>>0>=8){f=d+-8|0;g=f&-8;h=g+8|0;e=b;while(1){k=e;c[k>>2]=1431655765;c[k+4>>2]=1431655765;d=d+-8|0;if(d>>>0<=7)break;else e=e+8|0}d=f-g|0;b=b+h|0}if(d|0)while(1){a[b>>0]=85;d=d+-1|0;if(!d)break;else b=b+1|0}b=c[17602]|0;d=c[17601]|0;if((d|0)!=0&(b&7|0)!=0)do{a[b>>0]=0;b=b+1|0;d=d+-1|0}while((d|0)!=0&(b&7|0)!=0);if(d>>>0>=8){f=d+-8|0;g=f&-8;h=g+8|0;e=b;while(1){k=e;c[k>>2]=0;c[k+4>>2]=0;d=d+-8|0;if(d>>>0<=7)break;else e=e+8|0}d=f-g|0;b=b+h|0}if(d|0)while(1){a[b>>0]=0;d=d+-1|0;if(!d)break;else b=b+1|0}if(c[17603]|0)Ho(c[17602]|0,c[17601]|0)|0;c[17602]=0;c[17600]=0;c[17601]=0;return}function cg(){var a=0,b=0,d=0,e=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);a=b;Vn(1268)|0;if(!(c[17600]|0)){Wn(1268)|0;l=b;return}e=c[17601]|0;d=c[17605]|0;c[a>>2]=c[17604];c[a+4>>2]=e;c[a+8>>2]=d;Je(23231,a);Wn(1268)|0;l=b;return}function dg(a){a=a|0;var b=0,d=0,e=0,f=0;f=l;l=l+272|0;if((l|0)>=(m|0))$(272);d=f+8|0;b=f;e=f+16|0;if(c[17606]|0)if((c[17607]|0)==1)Ie(23272,23278,114,23285);else{eg(5);fg()}c[17606]=1;a:do if(a){if(c[17607]|0)Ie(23312,23278,121,23285)}else{if(!(vq(23335,0)|0)){if(!(c[17607]|0))break;Ie(23312,23278,132,23285)}a=aq(23360,23390)|0;b:do if(!a){a=c[(zo()|0)>>2]|0;switch(a|0){case 2:case 13:break b;default:{}}if(!(vq(23392,0)|0)){e=dp(a)|0;c[b>>2]=23360;c[b+4>>2]=e;Je(23406,b);za()}}else{if(Sp(e,256,a)|0?Fq(e)|0:0){bq(a)|0;if(!(c[17607]|0))break a;else Ie(23312,23278,151,23285)}bq(a)|0}while(0);c[17607]=1;l=f;return}while(0);a=Un(1312)|0;if(a|0){c[d>>2]=Pn(a)|0;Je(23450,d);za()}a=aq(23335,23390)|0;if(a|0){if(Sp(e,256,a)|0?Fq(e)|0:0)c[17608]=1;bq(a)|0}eg(1);l=f;return}function eg(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;i=l;l=l+48|0;if((l|0)>=(m|0))$(48);h=i+24|0;f=i+16|0;e=i+8|0;d=i;b=Vn(1312)|0;if(b|0){c[d>>2]=Pn(b)|0;Je(23505,d);za()}d=c[17609]|0;switch(d|0){case 0:{b=a+-1|0;if(b>>>0<5?(25>>>(b&31)&1)!=0:0)b=14;else b=17;break}case 1:{b=a+-2|0;if(b>>>0<4?(13>>>(b&15)&1)!=0:0)b=14;else b=17;break}case 2:{if((a+-3|0)>>>0<3)b=14;else b=17;break}case 3:{b=a+-2|0;if(b>>>0<5?(29>>>(b&31)&1)!=0:0)b=14;else b=17;break}case 4:{b=a+-2|0;if(b>>>0<5?(29>>>(b&31)&1)!=0:0)b=14;else b=17;break}case 5:{if((a|0)==6)b=14;else b=17;break}default:b=17}if((b|0)==14){c[17609]=a;b=Wn(1312)|0;if(b|0){c[e>>2]=Pn(b)|0;Je(23560,e);za()}if(!(Ee(2)|0)){l=i;return}else g=1}else if((b|0)==17){b=Wn(1312)|0;if(!b)g=0;else{c[f>>2]=Pn(b)|0;Je(23560,f);za()}}switch(d|0){case 0:{d=23669;break}case 1:{d=23664;break}case 2:{d=23654;break}case 3:{d=23642;break}case 4:{d=23636;break}case 5:{d=23624;break}case 6:{d=23615;break}default:d=37665}switch(a|0){case 0:{b=23669;break}case 1:{b=23664;break}case 2:{b=23654;break}case 3:{b=23642;break}case 4:{b=23636;break}case 5:{b=23624;break}case 6:{b=23615;break}default:b=37665}c[h>>2]=d;c[h+4>>2]=b;c[h+8>>2]=g?23678:23686;Je(23693,h);if(g){l=i;return}else fg()}function fg(){$p(0)|0;za()}function gg(){return c[17607]^1|0}function hg(){return ((c[17607]|0)==1?0:c[17608]|0)|0}function ig(){c[17608]=1;return}function jg(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=l;l=l+48|0;if((l|0)>=(m|0))$(48);e=g+40|0;f=g+32|0;d=g+24|0;b=g;if((c[17607]|0)==1)Ie(23733,23278,295,23752);if(c[17608]|0){eg(4);c[b>>2]=71847;c[b+4>>2]=23278;c[b+8>>2]=300;c[b+12>>2]=23852;c[b+16>>2]=23752;c[b+20>>2]=a|0?a:23779;Je(23804,b);l=g;return}a=Vn(1312)|0;if(a|0){c[d>>2]=Pn(a)|0;Je(23505,d);za()}if(!(c[17610]|0)){c[17610]=1;a=Wn(1312)|0;if(!a){l=g;return}else{c[f>>2]=Pn(a)|0;Je(23560,f);za()}}else{a=Wn(1312)|0;if(!a){l=g;return}else{c[e>>2]=Pn(a)|0;Je(23560,e);za()}}}function kg(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;h=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=h;if((c[17607]|0)==1){l=h;return}i=(e|0)!=0;eg(i?5:4);e=(d|0)!=0;c[g>>2]=i?23864:71847;c[g+4>>2]=a;c[g+8>>2]=b;c[g+12>>2]=e?23852:71847;c[g+16>>2]=e?d:71847;c[g+20>>2]=f|0?f:23779;Je(23804,g);l=h;return}function lg(){var a=0,b=0,d=0,e=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=e+8|0;b=e;if((c[17607]|0)==1){d=0;l=e;return d|0}a=Vn(1312)|0;if(a|0){c[b>>2]=Pn(a)|0;Je(23505,b);za()}a=c[17610]|0;b=Wn(1312)|0;if(!b){d=a;l=e;return d|0}else{c[d>>2]=Pn(b)|0;Je(23560,d);za()}return 0}function mg(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0;h=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=h+24|0;e=h+16|0;d=h+8|0;b=h;if((c[17607]|0)==1){g=1;l=h;return g|0}a=Vn(1312)|0;if(a|0){c[b>>2]=Pn(a)|0;Je(23505,b);za()}a=c[17609]|0;do if((a|0)==1){a=Wn(1312)|0;if(a|0){c[d>>2]=Pn(a)|0;Je(23560,d);za()}ng(0)|0;a=Vn(1312)|0;if(!a){f=c[17609]|0;break}else{c[e>>2]=Pn(a)|0;Je(23505,e);za()}}else f=a;while(0);a=Wn(1312)|0;if(!a){g=(f|0)==3&1;l=h;return g|0}else{c[g>>2]=Pn(a)|0;Je(23560,g);za()}return 0}function ng(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;if((c[17607]|0)!=1)eg(2);b=Dg(2,a,1)|0;g=(b|0)!=0;if(g)b=Pn(b)|0;else b=0;og(37899,2,0,b);f=Dg(7,a,1)|0;if(!f)b=0;else b=Pn(f)|0;og(37899,7,0,b);e=Dg(8,a,1)|0;if(!e)b=0;else b=Pn(e)|0;og(37899,8,0,b);b=Dg(9,a,1)|0;if(!b)d=0;else d=Pn(b)|0;og(37899,9,0,d);do if(!(f|g&1|e|b)){b=uh(2,a,1)|0;h=(b|0)!=0;if(h)b=Pn(b)|0;else b=0;og(42873,2,0,b);g=uh(11,a,1)|0;if(!g)b=0;else b=Pn(g)|0;og(42873,11,0,b);f=uh(8,a,1)|0;if(!f)b=0;else b=Pn(f)|0;og(42873,8,0,b);e=uh(9,a,1)|0;if(!e)b=0;else b=Pn(e)|0;og(42873,9,0,b);b=uh(10,a,1)|0;if(!b)d=0;else d=Pn(b)|0;og(42873,10,0,d);if(!(g|h&1|f|e|b)){b=ah(2,a,1)|0;h=(b|0)!=0;if(h)b=Pn(b)|0;else b=0;og(36051,2,0,b);g=ah(11,a,1)|0;if(!g)b=0;else b=Pn(g)|0;og(36051,11,0,b);f=ah(8,a,1)|0;if(!f)b=0;else b=Pn(f)|0;og(36051,8,0,b);e=ah(9,a,1)|0;if(!e)b=0;else b=Pn(e)|0;og(36051,9,0,b);b=ah(10,a,1)|0;if(!b)d=0;else d=Pn(b)|0;og(36051,10,0,d);if(!(g|h&1|f|e|b)){b=Ij(1)|0;if(b|0){og(52223,0,0,Pn(b)|0);d=50;b=4;break}og(52223,0,0,0);b=Xh(1,a,1)|0;e=(b|0)!=0;if(e)b=Pn(b)|0;else b=0;og(40871,1,0,b);b=Xh(17,a,1)|0;if(!b){og(40871,17,0,0);d=e?50:0;b=e?4:3;break}else{og(40871,17,0,Pn(b)|0);d=50;b=4;break}}else{d=50;b=4}}else{d=50;b=4}}else{d=50;b=4}while(0);if((c[17607]|0)==1)return d|0;eg(b);return d|0}function og(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+32|0;if((l|0)>=(m|0))$(32);j=k;h=(e|0)!=0;if(!h?(Ee(2)|0)==0:0){l=k;return}f=Go(a,36051)|0;i=f|0?a:42873;f=(f|0)==0;g=f?23871:71847;do if(Go(a,37899)|0){if(!(Go(a,42873)|0)){a=dh(b)|0;break}if(f){a=dh(b)|0;break}if(!(Go(a,40871)|0))a=Oh(b)|0;else a=71847}else a=ug(b)|0;while(0);f=(d|0)!=0;c[j>>2]=i;c[j+4>>2]=g;c[j+8>>2]=a;c[j+12>>2]=b;c[j+16>>2]=h?e:23877;c[j+20>>2]=f?23882:71847;c[j+24>>2]=f?d:71847;c[j+28>>2]=f?46947:71847;Je(23885,j);l=k;return}function pg(){var a=0,b=0,d=0,e=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=e+8|0;b=e;if((c[17607]|0)==1){d=1;l=e;return d|0}a=Vn(1312)|0;if(a|0){c[b>>2]=Pn(a)|0;Je(23505,b);za()}a=(c[17609]|0)==3&1;b=Wn(1312)|0;if(!b){d=a;l=e;return d|0}else{c[d>>2]=Pn(b)|0;Je(23560,d);za()}return 0}function qg(){var a=0,b=0,d=0,e=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=e+8|0;b=e;if((c[17607]|0)==1){d=1;l=e;return d|0}a=Vn(1312)|0;if(a|0){c[b>>2]=Pn(a)|0;Je(23505,b);za()}a=((c[17609]|0)+-3|0)>>>0<2&1;b=Wn(1312)|0;if(!b){d=a;l=e;return d|0}else{c[d>>2]=Pn(b)|0;Je(23560,d);za()}return 0}function rg(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;g=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=g;if((b|0)!=1){c[f>>2]=b;Ne(23929,f)}b=df(1,(d>>>0<8?8:d)+8|0)|0;if(!b){e=0;l=g;return e|0};a[b>>0]=a[23975]|0;a[b+1>>0]=a[23976]|0;a[b+2>>0]=a[23977]|0;a[b+3>>0]=1;c[b+4>>2]=e;e=b;l=g;return e|0}function sg(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=g+8|0;e=g;if(!b){c[e>>2]=b;Me(23979,e)}if(Tp(b,23975,3)|0){c[e>>2]=b;Me(23979,e)}e=a[b+3>>0]|0;if((e|0)==(d|0)){l=g;return b+8|0}else{c[f>>2]=d;c[f+4>>2]=b;c[f+8>>2]=e;Me(24027,f)}return 0}function tg(b){b=b|0;var d=0,e=0,f=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=f+8|0;d=f;if(!b){l=f;return}if(Tp(b,23975,3)|0){c[d>>2]=b;Me(24084,d)}d=a[b+3>>0]|0;if(d<<24>>24!=1){c[e>>2]=d<<24>>24;Me(24126,e)}d=c[b+4>>2]|0;if(d|0)rb[d&7](b+8|0);cf(b);l=f;return}function ug(a){a=a|0;if((c[1088]|0)!=(a|0))if((c[1806]|0)!=(a|0))if((c[1835]|0)!=(a|0))if((c[1987]|0)!=(a|0))if((c[3027]|0)==(a|0))a=12108;else{a=37665;return a|0}else a=7948;else a=7340;else a=7224;else a=4352;a=c[a+8>>2]|0;return a|0}function vg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=g;c[f>>2]=0;if((d|0)>65535){d=71;b=0}else{d=wg(f,b,d,e)|0;b=c[f>>2]|0}c[a>>2]=d|0?0:b;l=g;return d|0}function wg(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;j=f&1;Gj();if((c[1088]|0)!=(d|0))if((c[1806]|0)!=(d|0))if((c[1835]|0)!=(d|0))if((c[1987]|0)!=(d|0))if((c[3027]|0)==(d|0)){g=12108;i=6}else{h=12;k=0}else{g=7948;i=6}else{g=7340;i=6}else{g=7224;i=6}else{g=4352;i=6}if((i|0)==6){h=(a[g+4>>0]&1)==0?0:12;k=g}g=f>>>0>15&(h|0)==0?12:h;a:do if(!g){b:do if((e|0)>=6){if((e|0)<9){switch(e|0){case 7:case 6:{i=11;break b}case 8:break;default:{h=0;g=71;break a}}if(!(c[k+36>>2]|0)){h=0;g=71;break a}if((c[k+40>>2]|0)==0?1:(c[k+20>>2]|0)!=16){h=0;g=71;break a}else break}if((e|0)<11){switch(e|0){case 9:{i=11;break b}case 10:break;default:{h=0;g=71;break a}}if(!(c[k+44>>2]|0)){h=0;g=71;break a}if(!(c[k+48>>2]|0)){h=0;g=71;break a}if(!(c[k+60>>2]|0)){h=0;g=71;break a}if((c[k>>2]|0)==316)break;else{h=0;g=71;break a}}if((e|0)>=65537)switch(e|0){case 65537:{i=11;break b}default:{h=0;g=71;break a}}switch(e|0){case 11:break;default:{h=0;g=71;break a}}if(!(c[k+36>>2]|0)){h=0;g=71;break a}if(!(c[k+40>>2]|0)){h=0;g=71;break a}if((c[k+20>>2]|0)!=16){h=0;g=71;break a}}else switch(e|0){case 5:case 2:case 3:case 1:{i=11;break b}case 4:{if(!(c[k+44>>2]|0)){h=0;g=71;break a}if(!(c[k+48>>2]|0)){h=0;g=71;break a}else break b}case 0:{if(gg()|0){h=0;g=71;break a}if(!(nf(0)|0)){h=0;g=71;break a}else break b}default:{h=0;g=71;break a}}while(0);if((i|0)==11){if(!(c[k+36>>2]|0)){h=0;g=71;break}if(!(c[k+40>>2]|0)){h=0;g=71;break}}i=(c[k+28>>2]<<1)+511|0;g=(j|0)!=0;if(g)h=ef(1,i)|0;else h=df(1,i)|0;if(!h){g=Sn()|0;break}j=h&15;l=(j|0)==0;j=16-j|0;h=l?h:h+j|0;j=l?0:j;c[h>>2]=g?1183944770:604576100;c[h+4>>2]=i-j;c[h+8>>2]=j;c[h+12>>2]=k;c[h+16>>2]=d;c[h+48>>2]=e;c[h+52>>2]=f;switch(d|0){case 9:case 8:case 7:{c[h+20>>2]=1;c[h+24>>2]=2;c[h+28>>2]=1;c[h+32>>2]=3;c[h+36>>2]=4;c[h+40>>2]=5;c[h+44>>2]=2;break}case 303:case 10:{c[h+32>>2]=6;c[h+24>>2]=7;c[h+36>>2]=8;break}default:{}}if((e|0)==11){a[h+480>>0]=16;g=0}else g=0}else h=0;while(0);c[b>>2]=g|0?0:h;return ((g|0)==0?0:g&65535|536870912)|0}function xg(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if(!b)return;d=c[b>>2]|0;a:do if((d|0)<1183944770){switch(d|0){case 604576100:break a;default:{}}Be(63,24175)}else{switch(d|0){case 1183944770:break a;default:{}}Be(63,24175)}while(0);c[b>>2]=0;j=c[b+8>>2]|0;d=c[b+4>>2]|0;if((d|0)!=0&(b&7|0)!=0){e=b;do{a[e>>0]=0;e=e+1|0;d=d+-1|0}while((d|0)!=0&(e&7|0)!=0)}else e=b;if(d>>>0>=8){h=d+-8|0;i=h&-8;g=i+8|0;f=e;while(1){k=f;c[k>>2]=0;c[k+4>>2]=0;d=d+-8|0;if(d>>>0<=7)break;else f=f+8|0}e=e+g|0;d=h-i|0}if(d|0)while(1){a[e>>0]=0;d=d+-1|0;if(!d)break;else e=e+1|0}cf(b+(0-j)|0);return}function yg(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0;n=l;l=l+16|0;if((l|0)>=(m|0))$(16);h=n;k=(e|0)==0;i=k?d:f;f=k?b:e;e=c[a+48>>2]|0;a:do if((e|0)<6)switch(e|0){case 1:{k=c[a+12>>2]|0;j=c[k+36>>2]|0;k=c[k+20>>2]|0;if(i>>>0>d>>>0){g=200;break a}if((i>>>0)%(k>>>0)|0|0){g=139;break a}d=(i>>>0)/(k>>>0)|0;if(k>>>0>i>>>0){b=0;l=n;return b|0}i=a+496|0;h=0;e=b;g=0;while(1){b=pb[j&63](i,e,f)|0;h=b>>>0>h>>>0?b:h;g=g+1|0;if(g>>>0>=d>>>0)break;else{e=e+k|0;f=f+k|0}}if(!h){b=0;l=n;return b|0}Te(h+16|0);b=0;l=n;return b|0}case 3:{g=Wl(a,b,d,f,i)|0;break a}case 2:{g=am(a,b,d,f,i)|0;break a}case 5:{g=rm(a,b,d,f,i)|0;break a}case 4:{zb[c[(c[a+12>>2]|0)+44>>2]&1](a+496|0,b,f,i);b=0;l=n;return b|0}case 0:{if((gg()|0)==0?nf(0)|0:0){if((f|0)==(b|0)){b=0;l=n;return b|0}dr(b|0,f|0,i|0)|0;b=0;l=n;return b|0}kg(24224,875,24233,0,24248);g=71;break a}default:{c[h>>2]=e;Me(24270,h)}}else{if((e|0)<9)switch(e|0){case 6:{g=dm(a,b,d,f,i)|0;break a}case 7:{g=Ul(a,b,d,f,i)|0;break a}case 8:{g=_l(a,b,d,f,i)|0;break a}default:{c[h>>2]=e;Me(24270,h)}}if((e|0)<11)switch(e|0){case 9:{g=em(a,b,d,f,i)|0;break a}case 10:{g=tm(a,b,d,f,i)|0;break a}default:{c[h>>2]=e;Me(24270,h)}}if((e|0)>=65537){switch(e|0){case 65537:{g=71;break a}default:{}}c[h>>2]=e;Me(24270,h)}switch(e|0){case 11:{g=nm(a,b,d,f,i)|0;break a}default:{c[h>>2]=e;Me(24270,h)}}}while(0);if(!((b|0)!=0&(g|0)!=0)){b=g;l=n;return b|0}Yq(b|0,66,d|0)|0;b=g;l=n;return b|0}function zg(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0;n=l;l=l+16|0;if((l|0)>=(m|0))$(16);h=n;i=(e|0)==0;e=i?b:e;i=i?d:f;f=c[a+48>>2]|0;a:do if((f|0)<6)switch(f|0){case 1:{k=c[a+12>>2]|0;j=c[k+40>>2]|0;k=c[k+20>>2]|0;if(i>>>0>d>>>0){g=200;break a}if((i>>>0)%(k>>>0)|0|0){g=139;break a}d=(i>>>0)/(k>>>0)|0;if(k>>>0>i>>>0){g=0;break a}i=a+496|0;h=0;f=b;g=0;while(1){b=pb[j&63](i,f,e)|0;h=b>>>0>h>>>0?b:h;g=g+1|0;if(g>>>0>=d>>>0)break;else{f=f+k|0;e=e+k|0}}if(!h){g=0;break a}Te(h+16|0);g=0;break a}case 3:{g=Xl(a,b,d,e,i)|0;break a}case 2:{g=bm(a,b,d,e,i)|0;break a}case 5:{g=rm(a,b,d,e,i)|0;break a}case 4:{zb[c[(c[a+12>>2]|0)+48>>2]&1](a+496|0,b,e,i);g=0;break a}case 0:{if((gg()|0)==0?nf(0)|0:0){if((e|0)==(b|0)){g=0;break a}dr(b|0,e|0,i|0)|0;g=0;break a}kg(24224,992,24303,0,24248);g=71;break a}default:{c[h>>2]=f;Me(24318,h)}}else{if((f|0)<9)switch(f|0){case 6:{g=dm(a,b,d,e,i)|0;break a}case 7:{g=Vl(a,b,d,e,i)|0;break a}case 8:{g=$l(a,b,d,e,i)|0;break a}default:{c[h>>2]=f;Me(24318,h)}}if((f|0)<11)switch(f|0){case 9:{g=hm(a,b,d,e,i)|0;break a}case 10:{g=um(a,b,d,e,i)|0;break a}default:{c[h>>2]=f;Me(24318,h)}}if((f|0)>=65537){switch(f|0){case 65537:{g=71;break a}default:{}}c[h>>2]=f;Me(24318,h)}switch(f|0){case 11:{g=qm(a,b,d,e,i)|0;break a}default:{c[h>>2]=f;Me(24318,h)}}}while(0);l=n;return g|0}function Ag(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=b+12|0;g=b+496|0;e=pb[c[(c[f>>2]|0)+32>>2]&63](g,d,e)|0;if(e|0){b=b+56|0;a[b>>0]=a[b>>0]&-2;return e|0}d=c[(c[f>>2]|0)+28>>2]|0;cr(g+d|0,g|0,d|0)|0;d=b+56|0;a[d>>0]=a[d>>0]|1;d=c[b+48>>2]|0;if((d|0)<10){switch(d|0){case 9:break;default:return e|0}im(b);return e|0}if((d|0)<65537){switch(d|0){case 10:break;default:return e|0}vm(b);return e|0}else{switch(d|0){case 65537:break;default:return e|0}cm(b)|0;return e|0}return 0}function Bg(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+16|0;if((l|0)>=(m|0))$(16);j=k;switch(c[b+48>>2]|0){case 8:{e=Yl(b,d,e)|0;l=k;return e|0}case 9:{e=fm(b,d,e)|0;l=k;return e|0}case 10:{e=sm(b,d,e)|0;l=k;return e|0}case 11:{e=mm(b,d,e)|0;l=k;return e|0}default:{i=b+12|0;g=c[i>>2]|0;f=c[g+60>>2]|0;if(f|0){ub[f&7](b+496|0,d,e);e=0;l=k;return e|0}h=b+64|0;f=g+20|0;Yq(h|0,0,c[f>>2]|0)|0;if(!d){e=b+56|0;a[e>>0]=a[e>>0]&-3}else{f=c[f>>2]|0;if((f|0)==(e|0))f=e;else{c[j>>2]=e;c[j+4>>2]=f;Je(24351,j);kg(24224,682,24394,0,24407);f=c[(c[i>>2]|0)+20>>2]|0}cr(h|0,d|0,(f>>>0<e>>>0?f:e)|0)|0;e=b+56|0;a[e>>0]=a[e>>0]|2}c[b+112>>2]=0;e=0;l=k;return e|0}}return 0}function Cg(){return 0}function Dg(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if((c[1088]|0)!=(b|0))if((c[1806]|0)!=(b|0))if((c[1835]|0)!=(b|0))if((c[1987]|0)!=(b|0))if((c[3027]|0)==(b|0)){f=12108;h=6}else{f=0;d=0;h=9}else{f=7948;h=6}else{f=7340;h=6}else{f=7224;h=6}else{f=4352;h=6}if((h|0)==6)if((a[f+4>>0]&1)==0?(g=c[f+52>>2]|0,(g|0)!=0):0)f=pb[g&63](b,d,e)|0;else{d=1;h=9}if((h|0)==9)if(!e)f=12;else{if(d?(a[f+4>>0]&1)==0:0)f=37736;else f=d?37697:37716;zb[e&1](37899,b,37758,f);f=12}return ((f|0)==0?0:f&65535|16777216)|0}function Eg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+64|0;if((l|0)>=(m|0))$(64);r=s+48|0;p=s+40|0;o=s+32|0;n=s+24|0;k=s+16|0;j=s+8|0;i=s;q=s+52|0;a:do if(!b)if((a|0)!=192){switch(a|0){case 224:case 256:{g=(a|0)==224?2:3;break a}default:{}}if((a|0)!=384)if((a|0)!=521)if((a|0)!=160)if((a|0)!=320)if((a|0)!=512)if((a|0)==511)g=17;else{d=188;l=s;return d|0}else g=12;else g=10;else g=6;else g=5;else g=4}else g=1;else{a=0;while(1){if(!(Go(b,c[1356+(a*48|0)>>2]|0)|0))break;a=a+1|0;if((a|0)==21){a=0;g=2412;h=5;break}}b:do if((h|0)==5){while(1){h=0;f=a+1|0;if(!(Go(b,c[2412+(a<<3)+4>>2]|0)|0))break;if((f|0)==36){a=188;h=47;break}else{a=f;g=2412+(f<<3)|0;h=5}}if((h|0)==47){l=s;return a|0}f=c[g>>2]|0;a=0;while(1){if(!(Go(f,c[1356+(a*48|0)>>2]|0)|0))break b;a=a+1|0;if((a|0)==21){a=188;break}}l=s;return a|0}while(0);if((a|0)<0){d=188;l=s;return d|0}else g=a}while(0);b=c[1356+(g*48|0)>>2]|0;if(!((g+-1|0)>>>0<5|(gg()|0)==0)){d=60;l=s;return d|0}if(e|0)c[e>>2]=c[1356+(g*48|0)+4>>2];if(!d){d=0;l=s;return d|0}c[d>>2]=c[1356+(g*48|0)+12>>2];c[d+4>>2]=c[1356+(g*48|0)+16>>2];a=d+8|0;do if(!(c[a>>2]|0)){f=Sk(q,4,c[1356+(g*48|0)+20>>2]|0,0,0)|0;if(!f){c[a>>2]=c[q>>2];break}else{c[i>>2]=Pn(f)|0;Me(35626,i)}}while(0);a=d+12|0;do if(!(c[a>>2]|0)){f=Sk(q,4,c[1356+(g*48|0)+24>>2]|0,0,0)|0;if(!f){c[a>>2]=c[q>>2];break}else{c[j>>2]=Pn(f)|0;Me(35626,j)}}while(0);a=d+16|0;do if(!(c[a>>2]|0)){f=Sk(q,4,c[1356+(g*48|0)+28>>2]|0,0,0)|0;if(!f){c[a>>2]=c[q>>2];break}else{c[k>>2]=Pn(f)|0;Me(35626,k)}}while(0);a=d+32|0;do if(!(c[a>>2]|0)){f=Sk(q,4,c[1356+(g*48|0)+32>>2]|0,0,0)|0;if(!f){c[a>>2]=c[q>>2];break}else{c[n>>2]=Pn(f)|0;Me(35626,n)}}while(0);a=d+36|0;do if(!(c[a>>2]|0)){f=Sk(q,4,c[1356+(g*48|0)+44>>2]|0,0,0)|0;if(!f){c[a>>2]=c[q>>2];break}else{c[o>>2]=Pn(f)|0;Me(35626,o)}}while(0);a=d+20|0;do if(!(c[a>>2]|0)){f=Sk(q,4,c[1356+(g*48|0)+36>>2]|0,0,0)|0;if(!f){c[a>>2]=c[q>>2];break}else{c[p>>2]=Pn(f)|0;Me(35626,p)}}while(0);f=d+24|0;do if(!(c[f>>2]|0)){a=Sk(q,4,c[1356+(g*48|0)+40>>2]|0,0,0)|0;if(!a){c[f>>2]=c[q>>2];break}else{c[r>>2]=Pn(a)|0;Me(35626,r)}}while(0);a=d+28|0;if(!(c[a>>2]|0))c[a>>2]=kl(1)|0;a=d+40|0;if(c[a>>2]|0){d=0;l=s;return d|0}c[a>>2]=b;d=0;l=s;return d|0}function Fg(b,d,e,f,g,h,i,j,k){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=l;l=l+48|0;if((l|0)>=(m|0))$(48);x=y+40|0;v=y+32|0;u=y+24|0;t=y+16|0;s=y+8|0;r=y;w=y+44|0;n=0;while(1){if(!(Go(b,c[1356+(n*48|0)>>2]|0)|0)){b=n;break}n=n+1|0;if((n|0)==21){n=0;p=2412;q=5;break}}a:do if((q|0)==5){while(1){q=0;o=n+1|0;if(!(Go(b,c[2412+(n<<3)+4>>2]|0)|0))break;if((o|0)==36){n=188;q=40;break}else{n=o;p=2412+(o<<3)|0;q=5}}if((q|0)==40){l=y;return n|0}o=c[p>>2]|0;n=0;while(1){if(!(Go(o,c[1356+(n*48|0)>>2]|0)|0)){b=n;break a}n=n+1|0;if((n|0)==21){n=188;break}}l=y;return n|0}while(0);if((b|0)<0){x=188;l=y;return x|0}do if(i|0){n=(c[1356+(b*48|0)+36>>2]|0)+2|0;p=Fo(n)|0;o=(c[1356+(b*48|0)+40>>2]|0)+2|0;p=_e(p+5+(Fo(o)|0)|0)|0;if(!p){x=Sn()|0;l=y;return x|0}a[p>>0]=a[35365]|0;a[p+1>>0]=a[35366]|0;a[p+2>>0]=a[35367]|0;a[p+3>>0]=a[35368]|0;a[p+4>>0]=a[35369]|0;Mp(Np(p+4|0,n)|0,o)|0;Jl(c[i>>2]|0);n=Sk(w,4,p,0,0)|0;if(!n){c[i>>2]=c[w>>2];cf(p);break}else{c[r>>2]=Pn(n)|0;Me(35626,r)}}while(0);if(d|0)c[d>>2]=c[1356+(b*48|0)+12>>2];if(e|0)c[e>>2]=c[1356+(b*48|0)+16>>2];do if(f|0){Jl(c[f>>2]|0);n=Sk(w,4,c[1356+(b*48|0)+20>>2]|0,0,0)|0;if(!n){c[f>>2]=c[w>>2];break}else{c[s>>2]=Pn(n)|0;Me(35626,s)}}while(0);do if(g|0){Jl(c[g>>2]|0);n=Sk(w,4,c[1356+(b*48|0)+24>>2]|0,0,0)|0;if(!n){c[g>>2]=c[w>>2];break}else{c[t>>2]=Pn(n)|0;Me(35626,t)}}while(0);do if(h|0){Jl(c[h>>2]|0);n=Sk(w,4,c[1356+(b*48|0)+28>>2]|0,0,0)|0;if(!n){c[h>>2]=c[w>>2];break}else{c[u>>2]=Pn(n)|0;Me(35626,u)}}while(0);do if(j|0){Jl(c[j>>2]|0);n=Sk(w,4,c[1356+(b*48|0)+32>>2]|0,0,0)|0;if(!n){c[j>>2]=c[w>>2];break}else{c[v>>2]=Pn(n)|0;Me(35626,v)}}while(0);if(!k){x=0;l=y;return x|0}Jl(c[k>>2]|0);n=Sk(w,4,c[1356+(b*48|0)+44>>2]|0,0,0)|0;if(n|0){c[x>>2]=Pn(n)|0;Me(35626,x)}c[k>>2]=c[w>>2];x=0;l=y;return x|0}function Gg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=l;l=l+144|0;if((l|0)>=(m|0))$(144);w=C+80|0;v=C+72|0;u=C+64|0;t=C+56|0;s=C+48|0;r=C+40|0;x=C+32|0;q=C;z=C+88|0;A=C+84|0;c[A>>2]=0;f=z;g=f+44|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));B=(d|0)!=0;if(B)c[d>>2]=0;if(!a){if(!((b|0)>-1&b>>>0<22)){d=0;l=C;return d|0}e=c[1356+(b*48|0)>>2]|0;if(!B){d=e;l=C;return d|0}c[d>>2]=c[1356+(b*48|0)+4>>2];d=e;l=C;return d|0}j=z+8|0;k=z+12|0;n=z+16|0;o=z+32|0;p=z+36|0;c[q>>2]=j;c[q+4>>2]=k;c[q+8>>2]=n;c[q+12>>2]=A;c[q+16>>2]=o;c[q+20>>2]=p;c[q+24>>2]=0;a:do switch(((If(a,0,35370,q)|0)&65535)<<16>>16){case 68:{e=uf(a,46925,5)|0;if((e|0)!=0?(h=zf(e,1)|0,sf(e),(h|0)!=0):0){e=0;while(1){f=c[1356+(e*48|0)>>2]|0;if(!(Go(h,f)|0)){b=e;break}e=e+1|0;if((e|0)==21){e=0;g=2412;i=13;break}}b:do if((i|0)==13){while(1){i=0;f=e+1|0;if(!(Go(h,c[2412+(e<<3)+4>>2]|0)|0)){i=14;break}if((f|0)==36)break;else{e=f;g=2412+(f<<3)|0;i=13}}if((i|0)==14){f=c[g>>2]|0;e=0;do{g=c[1356+(e*48|0)>>2]|0;if(!(Go(f,g)|0)){b=e;f=g;break b}e=e+1|0}while((e|0)!=21)}cf(h);d=0;l=C;return d|0}while(0);cf(h);e=(b|0)<0;if(e|B^1){d=e?0:f;l=C;return d|0}c[d>>2]=c[1356+(b*48|0)+4>>2];d=f;l=C;return d|0}else{y=0;e=0}break}case 0:{if(c[A>>2]|0?(i=z+20|0,Pj(i),_g(i,c[A>>2]|0)|0):0){y=0;e=0;break a}b=z+20|0;a=z+24|0;h=0;f=0;g=1356;while(1){tl(f);f=Sk(q,4,c[1356+(h*48|0)+20>>2]|0,0,0)|0;if(f|0){i=24;break}f=c[q>>2]|0;if(!(wk(f,c[j>>2]|0)|0)){tl(f);f=Sk(q,4,c[1356+(h*48|0)+24>>2]|0,0,0)|0;if(f|0){i=27;break}f=c[q>>2]|0;if(!(wk(f,c[k>>2]|0)|0)){tl(f);f=Sk(q,4,c[1356+(h*48|0)+28>>2]|0,0,0)|0;if(f|0){i=30;break}f=c[q>>2]|0;if(!(wk(f,c[n>>2]|0)|0)){tl(f);f=Sk(q,4,c[1356+(h*48|0)+32>>2]|0,0,0)|0;if(f|0){i=33;break}f=c[q>>2]|0;if(!(wk(f,c[o>>2]|0)|0)){tl(f);f=Sk(q,4,c[1356+(h*48|0)+44>>2]|0,0,0)|0;if(f|0){i=36;break}f=c[q>>2]|0;if(!(wk(f,c[p>>2]|0)|0)){tl(f);f=Sk(q,4,c[1356+(h*48|0)+36>>2]|0,0,0)|0;if(f|0){i=39;break}f=c[q>>2]|0;if(!(wk(f,c[b>>2]|0)|0)){tl(f);f=Sk(q,4,c[1356+(h*48|0)+40>>2]|0,0,0)|0;if(f|0){i=42;break}f=c[q>>2]|0;if(!(wk(f,c[a>>2]|0)|0)){i=44;break}}}}}}}g=h+1|0;if((g|0)==21){y=f;e=0;break a}else{h=g;g=1356+(g*48|0)|0}}if((i|0)==24){c[x>>2]=Pn(f)|0;Me(35626,x)}else if((i|0)==27){c[r>>2]=Pn(f)|0;Me(35626,r)}else if((i|0)==30){c[s>>2]=Pn(f)|0;Me(35626,s)}else if((i|0)==33){c[t>>2]=Pn(f)|0;Me(35626,t)}else if((i|0)==36){c[u>>2]=Pn(f)|0;Me(35626,u)}else if((i|0)==39){c[v>>2]=Pn(f)|0;Me(35626,v)}else if((i|0)==42){c[w>>2]=Pn(f)|0;Me(35626,w)}else if((i|0)==44){e=c[g>>2]|0;if(!B){y=f;break a}c[d>>2]=c[1356+(h*48|0)+4>>2];y=f;break a}break}default:{y=0;e=0}}while(0);Jl(y);Jl(c[j>>2]|0);Jl(c[k>>2]|0);Jl(c[n>>2]|0);Jl(c[A>>2]|0);Rj(z+20|0);Jl(c[o>>2]|0);Jl(c[p>>2]|0);d=e;l=C;return d|0}function Hg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;u=l;l=l+16|0;if((l|0)>=(m|0))$(16);r=u+12|0;s=u+8|0;t=u+4|0;p=u;c[r>>2]=0;c[s>>2]=0;c[t>>2]=0;c[p>>2]=0;c[a>>2]=0;q=(b|0)!=0;do if(q){f=uf(b,46885,0)|0;if(f|0?(e=Eh(f,p,0)|0,sf(f),e|0):0){j=0;i=0;h=0;g=0;f=0;break}k=uf(b,46925,5)|0;if(k|0?(c[p>>2]&512|0)==0:0){j=0;i=0;h=0;g=0;f=0;o=19;break}e=uf(b,46949,0)|0;if(e){n=Af(e,1,5)|0;f=n;sf(e);if(!n){e=65;j=0;i=0;h=0;g=0;break}}else f=0;e=uf(b,39071,0)|0;if(e){n=Af(e,1,5)|0;g=n;sf(e);if(!n){e=65;j=0;i=0;h=0;break}}else g=0;e=uf(b,35378,0)|0;if(e){n=Af(e,1,5)|0;h=n;sf(e);if(!n){e=65;j=0;i=0;break}}else h=0;e=Ig(s,b,35380,0)|0;if(!e){e=uf(b,39075,0)|0;if(e){n=Af(e,1,5)|0;i=n;sf(e);if(!n){e=65;j=0;break}}else i=0;e=uf(b,35382,0)|0;if(e){n=Af(e,1,5)|0;j=n;sf(e);if(!n)e=65;else o=17}else{j=0;o=17}}else{j=0;i=0}}else{k=0;j=0;i=0;h=0;g=0;f=0;o=17}while(0);if((o|0)==17){e=(k|0)!=0;if((d|0)!=0|e)if(e)o=19;else{k=0;o=20}else{k=0;d=0;n=f;o=37}}if((o|0)==19){e=zf(k,1)|0;sf(k);if(!e)e=65;else{k=e;o=20}}do if((o|0)==20){n=df(1,44)|0;if(!n){e=Sn()|0;cf(k);break}e=Eg(0,k|0?k:d,n,0)|0;cf(k);if(e|0){cf(n);break}d=c[n>>2]|0;k=c[n+4>>2]|0;if(!f){o=n+8|0;f=c[o>>2]|0;c[o>>2]=0}if(!g){o=n+12|0;g=c[o>>2]|0;c[o>>2]=0}if(!h){o=n+16|0;h=c[o>>2]|0;c[o>>2]=0}if(!(c[s>>2]|0)){v=n+20|0;e=n+24|0;o=n+28|0;c[s>>2]=Tj(0,c[v>>2]|0,c[e>>2]|0,c[o>>2]|0)|0;c[v>>2]=0;c[e>>2]=0;c[o>>2]=0}if(!i){v=n+32|0;i=c[v>>2]|0;c[v>>2]=0}if(!j){v=n+36|0;e=c[v>>2]|0;c[v>>2]=0}else e=j;Ug(n);cf(n);j=e;n=f;o=37}while(0);do if((o|0)==37){e=Wj(r,d,k,c[p>>2]|0,n,g,h)|0;if(!e){k=sg(c[r>>2]|0,1)|0;if(h|0){v=k+24|0;tl(c[v>>2]|0);c[v>>2]=h}e=c[s>>2]|0;if(e|0){c[k+28>>2]=e;c[s>>2]=0}if(i|0)c[k+32>>2]=i;if(j|0)c[k+36>>2]=j;if(q){e=Ig(t,b,46923,k)|0;if(e|0){j=0;i=0;h=0;f=n;break}f=uf(b,35384,0)|0;if(f){e=Af(f,1,5)|0;sf(f);if(!e){e=65;j=0;i=0;h=0;f=n;break}}else e=0}else e=0;f=c[t>>2]|0;if(f|0){c[k+40>>2]=f;c[t>>2]=0}if(e|0)c[k+44>>2]=e;c[a>>2]=c[r>>2];c[r>>2]=0;e=0;j=0;i=0;h=0;f=n}else f=n}while(0);tg(c[r>>2]|0);tl(f);tl(g);tl(h);Qj(c[s>>2]|0);tl(i);tl(j);Qj(c[t>>2]|0);tl(0);l=u;return e|0}function Ig(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;g=uf(d,e,0)|0;if(g){h=Af(g,1,8)|0;sf(g);if(!h){b=65;return b|0}g=Oj(0)|0;if((f|0)!=0?(c[f+4>>2]|0)==1:0)f=Pg(h,f,g,0,0)|0;else f=_g(g,h)|0;tl(h);if(f){Qj(g);b=f;return b|0}}else{j=_e((Fo(e)|0)+3|0)|0;if(!j){b=Sn()|0;return b|0}g=Np(j,e)|0;a[g>>0]=a[35386]|0;a[g+1>>0]=a[35387]|0;a[g+2>>0]=a[35388]|0;g=uf(d,j,0)|0;if(g){f=Af(g,1,5)|0;sf(g);if(!f){cf(j);b=65;return b|0}}else f=0;g=Np(j,e)|0;a[g>>0]=a[35389]|0;a[g+1>>0]=a[35390]|0;a[g+2>>0]=a[35391]|0;g=uf(d,j,0)|0;if(g){h=Af(g,1,5)|0;sf(g);if(!h){tl(f);cf(j);b=65;return b|0}else i=h}else i=0;h=Np(j,e)|0;a[h>>0]=a[35392]|0;a[h+1>>0]=a[35393]|0;a[h+2>>0]=a[35394]|0;h=uf(d,j,0)|0;if(h){g=Af(h,1,5)|0;sf(h);if(!g){tl(i);tl(f);cf(j);b=65;return b|0}}else g=El(0,1)|0;if((f|0)!=0&(i|0)!=0)g=Tj(0,f,i,g)|0;else{tl(f);tl(i);tl(g);g=0}cf(j)}if(!g){b=0;return b|0}c[b>>2]=g;b=0;return b|0}function Jg(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;o=l;l=l+112|0;if((l|0)>=(m|0))$(112);j=o+8|0;h=o;b=o+108|0;i=o+64|0;k=o+36|0;n=o+32|0;d=i;e=d+44|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));if(Eg(0,a,i,b)|0){n=0;l=o;return n|0}f=Hl(0)|0;g=Hl(0)|0;d=i+8|0;e=i+12|0;a=Uj(0,0,0,c[d>>2]|0,c[e>>2]|0,0)|0;b=i+20|0;if(Nj(f,g,b,a)|0)Me(35395,h);Yj(a);Rj(b);b=c[d>>2]|0;c[k>>2]=b;p=c[e>>2]|0;c[k+4>>2]=p;d=c[i+16>>2]|0;c[k+8>>2]=d;a=b;e=Yg(f,g,a)|0;c[k+12>>2]=e;h=c[i+32>>2]|0;c[k+16>>2]=h;i=c[i+36>>2]|0;c[k+20>>2]=i;c[k+24>>2]=0;tl(f);tl(g);c[j>>2]=a;c[j+4>>2]=p;c[j+8>>2]=d;c[j+12>>2]=e;c[j+16>>2]=h;c[j+20>>2]=i;if(Df(n,0,35444,j)|0)c[n>>2]=0;if(b|0){b=0;do{Jl(a);b=b+1|0;a=c[k+(b<<2)>>2]|0}while((a|0)!=0)}p=c[n>>2]|0;l=o;return p|0}function Kg(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=l;l=l+16|0;if((l|0)>=(m|0))$(16);x=z+4|0;y=z;q=a[b>>0]|0;a:do if(q<<24>>24){if((Go(b,46949)|0)==0?(f=c[d+16>>2]|0,f|0):0){if(!(e|0?1:(c[f+12>>2]&32|0)==0))break;f=yl(f)|0;break}if((Go(b,39071)|0)==0?(n=c[d+20>>2]|0,n|0):0){if(!(e|0?1:(c[n+12>>2]&32|0)==0)){f=n;break}f=yl(n)|0;break}if((Go(b,35378)|0)==0?(o=c[d+24>>2]|0,o|0):0){if(!(e|0?1:(c[o+12>>2]&32|0)==0)){f=o;break}f=yl(o)|0;break}if((Go(b,39075)|0)==0?(p=c[d+32>>2]|0,p|0):0){if(!(e|0?1:(c[p+12>>2]&32|0)==0)){f=p;break}f=yl(p)|0;break}if((Go(b,35382)|0)==0?(r=c[d+36>>2]|0,r|0):0){if(!(e|0?1:(c[r+12>>2]&32|0)==0)){f=r;break}f=yl(r)|0;break}if((Go(b,35384)|0)==0?(s=c[d+44>>2]|0,s|0):0){if(!(e|0?1:(c[s+12>>2]&32|0)==0)){f=s;break}f=yl(s)|0;break}if(((Go(b,35492)|0)==0?(t=c[d+28>>2]|0,t|0):0)?(u=c[t>>2]|0,u|0):0){if(!(e|0?1:(c[u+12>>2]&32|0)==0)){f=u;break}f=yl(u)|0;break}if(((Go(b,35496)|0)==0?(v=c[d+28>>2]|0,v|0):0)?(w=c[v+4>>2]|0,w|0):0){if(!(e|0?1:(c[w+12>>2]&32|0)==0)){f=w;break}f=yl(w)|0;break}if(((Go(b,35500)|0)==0?(g=c[d+40>>2]|0,g|0):0)?(h=c[g>>2]|0,h|0):0){if(!(e|0?1:(c[h+12>>2]&32|0)==0)){f=h;break}f=yl(h)|0;break}if(((Go(b,35504)|0)==0?(i=c[d+40>>2]|0,i|0):0)?(j=c[i+4>>2]|0,j|0):0){y=c[(c[d+28>>2]|0)+4>>2]|0;if(y|0?!(e|0?1:(c[y+12>>2]&32|0)==0):0){f=j;break}f=yl(j)|0;break}if((Go(b,35380)|0)==0?(k=c[d+28>>2]|0,k|0):0){f=Zg(k,d)|0;break}if(q<<24>>24==113){h=b+1|0;g=a[h>>0]|0;switch(g<<24>>24){case 64:case 0:break;default:{f=0;break a}}i=d+40|0;f=c[i>>2]|0;if(!f){f=$g(0,d,0,0)|0;c[i>>2]=f;if(!f){f=0;break}g=a[h>>0]|0}if(g<<24>>24!=64){f=Zg(f,d)|0;break}if((Go(b+2|0,49614)|0)==0?(c[d>>2]|0)==2:0)if(!(Mg(f,d,0,0,0,x,y)|0)){f=ul(0,c[x>>2]|0,c[y>>2]<<3)|0;break}else{f=0;break}else f=0}else f=0}else f=0;while(0);l=z;return f|0}function Lg(a,b){a=a|0;b=b|0;var d=0;if((Go(a,35380)|0)==0?(d=c[b+28>>2]|0,d|0):0){b=Oj(0)|0;Al(c[b>>2]|0,c[d>>2]|0)|0;Al(c[b+4>>2]|0,c[d+4>>2]|0)|0;Al(c[b+8>>2]|0,c[d+8>>2]|0)|0;return b|0}if(Go(a,46923)|0){b=0;return b|0}d=b+40|0;a=c[d>>2]|0;if(!a){a=$g(0,b,0,0)|0;c[d>>2]=a;if(!a){b=0;return b|0}}b=Oj(0)|0;Al(c[b>>2]|0,c[a>>2]|0)|0;Al(c[b+4>>2]|0,c[a+4>>2]|0)|0;Al(c[b+8>>2]|0,c[a+8>>2]|0)|0;return b|0}function Mg(b,e,f,g,h,i,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+16|0;if((l|0)>=(m|0))$(16);k=s;o=s+4|0;r=(f|0)!=0;if(r)q=f;else q=Hl(0)|0;p=(g|0)!=0;if(p)n=g;else n=Hl(0)|0;if(!(Nj(q,n,b,e)|0)){b=(h|0)!=0;h=b&1;f=Qk(n,(c[e+12>>2]|0)>>>3,b<<31>>31,o,0)|0;if(!f)f=Sn()|0;else{e=(mk(q,0)|0)!=0;g=c[o>>2]|0;if(e&(g|0)!=0){e=f+(g+((b^1)<<31>>31))|0;a[e>>0]=d[e>>0]|0|128}if(b)a[f>>0]=64;c[i>>2]=f;c[j>>2]=(c[o>>2]|0)+h;f=0}}else{Le(35508,k);f=63}if(!r)tl(q);if(p){l=s;return f|0}tl(n);l=s;return f|0}function Ng(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;o=l;l=l+16|0;if((l|0)>=(m|0))$(16);j=o+12|0;i=o+8|0;k=o+4|0;n=o;if(!b){n=65;l=o;return n|0}if(!(c[b+12>>2]&4)){n=65;l=o;return n|0}f=wl(b,i)|0;if(!f){n=65;l=o;return n|0}h=(c[i>>2]|0)+7|0;g=h>>>3;c[i>>2]=g;if(h>>>0<16|(g&1|0)==0){n=0;l=o;return n|0}switch(a[f>>0]|0){case 4:{h=f+1|0;f=Sk(k,1,h,(g+-1|0)>>>1,0)|0;if(f|0){n=f;l=o;return n|0}f=((c[i>>2]|0)+-1|0)>>>1;f=Sk(n,1,h+f|0,f,0)|0;g=c[k>>2]|0;if(f|0){tl(g);n=f;l=o;return n|0}h=Qk(c[n>>2]|0,e>>>3,0,j,0)|0;if(!h){g=Sn()|0;f=0}else{e=(mk(g,0)|0)!=0;f=c[j>>2]|0;if(e&(f|0)!=0){f=h+(f+-1)|0;a[f>>0]=d[f>>0]|128;f=c[j>>2]|0}g=0;f=f<<3}tl(c[k>>2]|0);tl(c[n>>2]|0);if(g|0){n=g;l=o;return n|0}ul(b,h,f)|0;n=0;l=o;return n|0}case 64:{if(vl(b,f+1|0,(g<<3)+-8|0)|0){n=0;l=o;return n|0}n=Sn()|0;l=o;return n|0}default:{n=0;l=o;return n|0}}return 0}function Og(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;q=l;l=l+16|0;if((l|0)>=(m|0))$(16);p=q+8|0;g=q;n=q+12|0;if((c[e+4>>2]|0)!=1){d=69;l=q;return d|0}do if(!(c[17611]|0)){f=Sk(n,4,35561,0,0)|0;if(!f){c[17611]=c[n>>2];break}else{c[g>>2]=Pn(f)|0;Me(35626,g)}}while(0);if(!(c[17612]|0))c[17612]=El(0,7)|0;g=Hl(0)|0;h=Hl(0)|0;i=Hl(0)|0;j=Hl(0)|0;k=e+16|0;Lk(g,b,b,c[k>>2]|0);Lk(h,c[e+24>>2]|0,g,c[k>>2]|0);gk(g,g,1);ek(h,h,1);e=Ml(3)|0;Mk(i,h,e,c[k>>2]|0);Mk(j,h,c[17612]|0,c[k>>2]|0);Lk(j,j,g,c[k>>2]|0);Mk(j,j,c[17611]|0,c[k>>2]|0);Lk(j,j,g,c[k>>2]|0);Lk(a,j,i,c[k>>2]|0);Lk(j,a,a,c[k>>2]|0);Lk(j,j,h,c[k>>2]|0);zl(j,j);if(!(wk(j,g)|0)){f=c[17613]|0;do if(!f){f=Sk(n,4,35661,0,0)|0;if(!f){o=c[n>>2]|0;c[17613]=o;break}else{c[p>>2]=Pn(f)|0;Me(35626,p)}}else o=f;while(0);Lk(a,a,o,c[k>>2]|0);Lk(j,a,a,c[k>>2]|0);Lk(j,j,h,c[k>>2]|0);zl(j,j);f=(wk(j,g)|0)==0;f=f?65:0}else f=0;if((mk(a,0)|0)!=((d|0)!=0|0))hk(a,c[k>>2]|0,a);tl(j);tl(i);tl(h);tl(g);d=f;l=q;return d|0}function Pg(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;r=l;l=l+16|0;if((l|0)>=(m|0))$(16);k=r+12|0;q=r+8|0;n=r+4|0;o=r;if((b|0)!=0?(c[b+12>>2]&4|0)!=0:0){j=wl(b,q)|0;if(!j){f=65;l=r;return f|0}i=(c[q>>2]|0)+7|0;b=i>>>3;c[q>>2]=b;a:do if(!(i>>>0<16|(b&1|0)==0)){switch(a[j>>0]|0){case 4:break;case 64:{b=b+-1|0;c[q>>2]=b;j=j+1|0;break a}default:break a}i=j+1|0;b=Sk(n,1,i,(b+-1|0)>>>1,0)|0;b:do if(!b){b=((c[q>>2]|0)+-1|0)>>>1;b=Sk(o,1,i+b|0,b,0)|0;if(b|0){tl(c[n>>2]|0);break}do if(g|0){b=c[n>>2]|0;i=Qk(c[o>>2]|0,(c[e+12>>2]|0)>>>3,0,k,0)|0;if(!i){b=Sn()|0;if(!b)break;tl(c[n>>2]|0);tl(c[o>>2]|0);break b}e=(mk(b,0)|0)!=0;b=c[k>>2]|0;if(e&(b|0)!=0){b=i+(b+-1)|0;a[b>>0]=d[b>>0]|128;b=c[k>>2]|0}c[g>>2]=i;c[h>>2]=b}while(0);Cl(c[f>>2]|0,c[n>>2]|0);Cl(c[f+4>>2]|0,c[o>>2]|0);El(c[f+8>>2]|0,1)|0;b=0}while(0);f=b;l=r;return f|0}while(0);b=_e(b|0?b:1)|0;if(!b){f=Sn()|0;l=r;return f|0}i=c[q>>2]|0;cr(b|0,j|0,i|0)|0;k=i>>>1;if(k){n=i+-1|0;j=0;do{t=b+j|0;s=a[t>>0]|0;o=b+(n-j)|0;a[t>>0]=a[o>>0]|0;a[o>>0]=s;j=j+1|0}while((j|0)!=(k|0))}}else p=24;do if((p|0)==24){b=Ok(b,(c[e+12>>2]|0)>>>3,q,0)|0;if(b|0){i=c[q>>2]|0;break}t=Sn()|0;l=r;return t|0}while(0);if(!i){n=0;i=0}else{n=d[b>>0]|0;a[b>>0]=n&127;n=n>>>7;i=c[q>>2]|0}o=f+4|0;Rk(c[o>>2]|0,b,i,0);if(g){i=c[q>>2]|0;if((n|0)!=0&(i|0)!=0){a[b>>0]=d[b>>0]|128;i=c[q>>2]|0}k=i>>>1;if(k|0){j=i+-1|0;i=0;do{p=b+i|0;s=a[p>>0]|0;t=b+(j-i)|0;a[p>>0]=a[t>>0]|0;a[t>>0]=s;i=i+1|0}while((i|0)!=(k|0))}c[g>>2]=b;if(h|0)c[h>>2]=c[q>>2]}else cf(b);t=Og(c[f>>2]|0,c[o>>2]|0,n,e)|0;El(c[f+8>>2]|0,1)|0;l=r;return t|0}function Qg(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;i=l;l=l+48|0;if((l|0)>=(m|0))$(48);f=i+32|0;g=i;c[b>>2]=0;if(((c[e+12>>2]|0)+7&-8|0)!=256){b=63;l=i;return b|0}h=ef(2,32)|0;if(!h){b=Sn()|0;l=i;return b|0};c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;c[g+16>>2]=0;c[g+20>>2]=0;c[g+24>>2]=0;c[g+28>>2]=0;d=Ok(d,0,f,0)|0;if(!d){cf(h);b=Sn()|0;l=i;return b|0}c[g+12>>2]=h;c[g+4>>2]=0;e=c[f>>2]|0;c[g+8>>2]=e>>>0<32?32-e|0:0;c[g+28>>2]=d;c[g+20>>2]=0;c[g+24>>2]=e;e=qh(10,0,h,g,2)|0;cf(d);if(!e){f=a[h>>0]|0;g=h+31|0;d=a[g>>0]|0;k=h+1|0;j=a[k>>0]|0;e=h+30|0;a[k>>0]=a[e>>0]|0;a[e>>0]=j;e=h+2|0;j=a[e>>0]|0;k=h+29|0;a[e>>0]=a[k>>0]|0;a[k>>0]=j;k=h+3|0;j=a[k>>0]|0;e=h+28|0;a[k>>0]=a[e>>0]|0;a[e>>0]=j;e=h+4|0;j=a[e>>0]|0;k=h+27|0;a[e>>0]=a[k>>0]|0;a[k>>0]=j;k=h+5|0;j=a[k>>0]|0;e=h+26|0;a[k>>0]=a[e>>0]|0;a[e>>0]=j;e=h+6|0;j=a[e>>0]|0;k=h+25|0;a[e>>0]=a[k>>0]|0;a[k>>0]=j;k=h+7|0;j=a[k>>0]|0;e=h+24|0;a[k>>0]=a[e>>0]|0;a[e>>0]=j;e=h+8|0;j=a[e>>0]|0;k=h+23|0;a[e>>0]=a[k>>0]|0;a[k>>0]=j;k=h+9|0;j=a[k>>0]|0;e=h+22|0;a[k>>0]=a[e>>0]|0;a[e>>0]=j;e=h+10|0;j=a[e>>0]|0;k=h+21|0;a[e>>0]=a[k>>0]|0;a[k>>0]=j;k=h+11|0;j=a[k>>0]|0;e=h+20|0;a[k>>0]=a[e>>0]|0;a[e>>0]=j;e=h+12|0;j=a[e>>0]|0;k=h+19|0;a[e>>0]=a[k>>0]|0;a[k>>0]=j;k=h+13|0;j=a[k>>0]|0;e=h+18|0;a[k>>0]=a[e>>0]|0;a[e>>0]=j;e=h+14|0;j=a[e>>0]|0;k=h+17|0;a[e>>0]=a[k>>0]|0;a[k>>0]=j;k=h+15|0;j=a[k>>0]|0;e=h+16|0;a[k>>0]=a[e>>0]|0;a[e>>0]=j;a[h>>0]=d&63|64;a[g>>0]=f&248;c[b>>2]=h;b=0;l=i;return b|0}else{cf(h);k=e;l=i;return k|0}return 0}function Rg(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;p=l;l=l+32|0;if((l|0)>=(m|0))$(32);j=p+16|0;h=p;Pj(j);c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;k=Il(0)|0;n=Hl(0)|0;o=Hl(0)|0;i=$e(64)|0;if(!i){e=Sn()|0;d=0;e=(e|0)==0?0:e&65535|16777216;Rj(j);Jl(k);Jl(n);Jl(o);cf(d);l=p;return e|0}g=Cj(32,2-(f>>>5&1)|0)|0;c[h+12>>2]=g;c[h+8>>2]=32;f=qh(10,0,i,h,1)|0;if(f|0){d=i;e=f;Rj(j);Jl(k);Jl(n);Jl(o);cf(d);l=p;return e|0}c[b+56>>2]=ul(0,g,256)|0;h=a[i>>0]|0;f=i+31|0;g=a[f>>0]|0;s=i+1|0;r=a[s>>0]|0;q=i+30|0;a[s>>0]=a[q>>0]|0;a[q>>0]=r;q=i+2|0;r=a[q>>0]|0;s=i+29|0;a[q>>0]=a[s>>0]|0;a[s>>0]=r;s=i+3|0;r=a[s>>0]|0;q=i+28|0;a[s>>0]=a[q>>0]|0;a[q>>0]=r;q=i+4|0;r=a[q>>0]|0;s=i+27|0;a[q>>0]=a[s>>0]|0;a[s>>0]=r;s=i+5|0;r=a[s>>0]|0;q=i+26|0;a[s>>0]=a[q>>0]|0;a[q>>0]=r;q=i+6|0;r=a[q>>0]|0;s=i+25|0;a[q>>0]=a[s>>0]|0;a[s>>0]=r;s=i+7|0;r=a[s>>0]|0;q=i+24|0;a[s>>0]=a[q>>0]|0;a[q>>0]=r;q=i+8|0;r=a[q>>0]|0;s=i+23|0;a[q>>0]=a[s>>0]|0;a[s>>0]=r;s=i+9|0;r=a[s>>0]|0;q=i+22|0;a[s>>0]=a[q>>0]|0;a[q>>0]=r;q=i+10|0;r=a[q>>0]|0;s=i+21|0;a[q>>0]=a[s>>0]|0;a[s>>0]=r;s=i+11|0;r=a[s>>0]|0;q=i+20|0;a[s>>0]=a[q>>0]|0;a[q>>0]=r;q=i+12|0;r=a[q>>0]|0;s=i+19|0;a[q>>0]=a[s>>0]|0;a[s>>0]=r;s=i+13|0;r=a[s>>0]|0;q=i+18|0;a[s>>0]=a[q>>0]|0;a[q>>0]=r;q=i+14|0;r=a[q>>0]|0;s=i+17|0;a[q>>0]=a[s>>0]|0;a[s>>0]=r;s=i+15|0;r=a[s>>0]|0;q=i+16|0;a[s>>0]=a[q>>0]|0;a[q>>0]=r;a[i>>0]=g&63|64;a[f>>0]=h&248;Rk(k,i,32,0);cf(i);f=d+20|0;ck(j,k,f,e);if(nf(1)|0)Mj(35726,j,e);c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=yl(c[d+8>>2]|0)|0;c[b+12>>2]=yl(c[d+12>>2]|0)|0;c[b+16>>2]=yl(c[d+16>>2]|0)|0;r=b+20|0;Pj(r);Al(c[r>>2]|0,c[f>>2]|0)|0;Al(c[b+24>>2]|0,c[d+24>>2]|0)|0;Al(c[b+28>>2]|0,c[d+28>>2]|0)|0;c[b+32>>2]=yl(c[d+32>>2]|0)|0;c[b+36>>2]=yl(c[d+36>>2]|0)|0;r=b+44|0;Pj(r);Al(c[r>>2]|0,c[j>>2]|0)|0;Al(c[b+48>>2]|0,c[j+4>>2]|0)|0;Al(c[b+52>>2]|0,c[j+8>>2]|0)|0;r=0;s=0;Rj(j);Jl(k);Jl(n);Jl(o);cf(r);l=p;return s|0}function Sg(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;G=l;l=l+112|0;if((l|0)>=(m|0))$(112);v=G+96|0;n=G+92|0;k=G+88|0;t=G+40|0;C=G+36|0;u=G+32|0;D=G+28|0;s=G+24|0;E=G+12|0;F=G;c[C>>2]=0;c[D>>2]=0;i=t;j=i+48|0;do{c[i>>2]=0;i=i+4|0}while((i|0)<(j|0));if(!b){F=79;l=G;return F|0}if(!(c[b+12>>2]&4)){F=79;l=G;return F|0}Pj(E);Pj(F);x=Il(0)|0;y=Hl(0)|0;z=Hl(0)|0;A=Hl(0)|0;B=Uj(c[d>>2]|0,c[d+4>>2]|0,0,c[d+8>>2]|0,c[d+12>>2]|0,c[d+16>>2]|0)|0;if(((c[B+12>>2]|0)+7&-8|0)!=256){F=63;l=G;return F|0}j=Qg(k,c[d+56>>2]|0,B)|0;w=c[k>>2]|0;do if(!j){Rk(x,w,32,0);i=w;if(!h){ck(F,x,d+20|0,B);j=Mg(F,B,y,z,0,D,s)|0;if(j|0){i=0;break}if(nf(1)|0)Qe(35747,c[D>>2]|0,c[s>>2]|0)}else{j=Pg(h,B,F,D,s)|0;if(j|0){i=0;break}if(nf(1)|0)Qe(35740,c[D>>2]|0,c[s>>2]|0);if(!(dk(F,B)|0)){j=195;i=0;break}}q=wl(b,n)|0;o=((c[n>>2]|0)+7|0)>>>3;if(nf(1)|0)Qe(35754,q,o);p=t+12|0;c[p>>2]=i;k=t+4|0;c[k>>2]=32;h=t+8|0;c[h>>2]=32;b=t+28|0;c[b>>2]=q;n=t+24|0;c[n>>2]=o;j=qh(g,0,w,t,2)|0;if(!j){i=0;do{H=w+i|0;j=a[H>>0]|0;r=w+(63-i)|0;a[H>>0]=a[r>>0]|0;a[r>>0]=j;i=i+1|0}while((i|0)!=32);if(nf(1)|0)Qe(52990,w,64);Rk(A,w,64,0);ck(E,A,d+20|0,B);if(nf(1)|0)Mj(35761,E,B);j=Mg(E,B,y,z,0,C,u)|0;if(j|0){i=c[C>>2]|0;break}if(!(nf(1)|0)){j=c[C>>2]|0;i=j;r=c[u>>2]|0}else{j=c[C>>2]|0;r=c[u>>2]|0;Qe(35766,j,r);i=j}c[p>>2]=j;c[k>>2]=0;c[h>>2]=r;c[b>>2]=c[D>>2];c[t+20>>2]=0;c[n>>2]=c[s>>2];c[t+44>>2]=q;c[t+36>>2]=0;c[t+40>>2]=o;j=qh(g,0,w,t,3)|0;if(!j){ul(e,i,r<<3)|0;c[C>>2]=0;i=0;do{t=w+i|0;e=a[t>>0]|0;H=w+(63-i)|0;a[t>>0]=a[H>>0]|0;a[H>>0]=e;i=i+1|0}while((i|0)!=32);if(nf(1)|0)Qe(35773,w,64);Rk(f,w,64,0);j=d+32|0;Lk(f,f,x,c[j>>2]|0);ik(f,f,A,c[j>>2]|0);j=Ok(f,32,v,0)|0;if(!j){j=Sn()|0;if(!j){j=0;i=r}else{i=0;break}}else{c[C>>2]=j;i=c[v>>2]|0;c[u>>2]=i}if(nf(1)|0)Qe(35780,j,i);ul(f,j,i<<3)|0;c[C>>2]=0;j=0;i=0}}else i=0}else i=0;while(0);Jl(x);Jl(y);Jl(z);Jl(A);cf(w);Yj(B);Rj(E);Rj(F);cf(c[D>>2]|0);cf(i);H=j;l=G;return H|0}function Tg(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=l;l=l+176|0;if((l|0)>=(m|0))$(176);n=y+100|0;w=y+88|0;x=y+84|0;j=y+80|0;t=y+76|0;p=y+72|0;k=y+104|0;i=y+24|0;u=y+12|0;v=y;c[x>>2]=0;c[t>>2]=0;if(!b){x=79;l=y;return x|0}if(!(e|0?(c[b+12>>2]&4|0)!=0:0)){x=79;l=y;return x|0}if(!(f|0?(c[e+12>>2]&4|0)!=0:0)){x=79;l=y;return x|0}if(!(c[f+12>>2]&4)){x=79;l=y;return x|0}if((g|0)!=10){x=5;l=y;return x|0}Pj(w);Pj(u);Pj(v);q=Hl(0)|0;r=Hl(0)|0;s=Uj(c[d>>2]|0,c[d+4>>2]|0,0,c[d+8>>2]|0,c[d+12>>2]|0,c[d+16>>2]|0)|0;if((c[s+12>>2]&-8|0)!=256){x=63;l=y;return x|0}g=Pg(h,s,w,x,j)|0;do if(!g)if(dk(w,s)|0){if(nf(1)|0)Qe(35747,c[x>>2]|0,c[j>>2]|0);if((c[j>>2]|0)==32){h=wl(b,n)|0;b=((c[n>>2]|0)+7|0)>>>3;if(nf(1)|0)Qe(35754,h,b);o=wl(e,n)|0;g=((c[n>>2]|0)+7|0)>>>3;if(nf(1)|0)Qe(52990,o,g);if((g|0)==32){c[i+12>>2]=o;c[i+4>>2]=0;c[i+8>>2]=32;c[i+28>>2]=c[x>>2];c[i+20>>2]=0;c[i+24>>2]=c[j>>2];c[i+44>>2]=h;c[i+36>>2]=0;c[i+40>>2]=b;g=qh(10,0,k,i,3)|0;if(!g){g=0;do{e=k+g|0;i=a[e>>0]|0;j=k+(63-g)|0;a[e>>0]=a[j>>0]|0;a[j>>0]=i;g=g+1|0}while((g|0)!=32);if(nf(1)|0)Qe(35773,k,64);Rk(q,k,64,0);i=xl(f,n)|0;b=(c[n>>2]|0)+7|0;h=b>>>3;b=b>>>4;if(b|0){e=h+-1|0;g=0;do{k=i+g|0;f=a[k>>0]|0;n=i+(e-g)|0;a[k>>0]=a[n>>0]|0;a[n>>0]=f;g=g+1|0}while((g|0)!=(b|0))}if(nf(1)|0)Qe(52997,i,h);Rk(r,i,h,0);cf(i);if((h|0)==32){ck(u,r,d+20|0,s);ck(v,q,w,s);g=c[v>>2]|0;zl(g,g);ak(u,u,v,s);g=Mg(u,s,r,q,0,t,p)|0;if(!g){if((c[p>>2]|0)!=32){g=8;break}g=(Tp(c[t>>2]|0,o,32)|0)==0;g=g?0:8}}else g=139}}else g=139}else g=139}else g=195;while(0);cf(c[x>>2]|0);cf(c[t>>2]|0);Yj(s);Jl(r);Jl(q);Rj(u);Rj(v);Rj(w);x=g;l=y;return x|0}function Ug(a){a=a|0;var b=0;b=a+8|0;tl(c[b>>2]|0);c[b>>2]=0;b=a+12|0;tl(c[b>>2]|0);c[b>>2]=0;b=a+16|0;tl(c[b>>2]|0);c[b>>2]=0;Rj(a+20|0);b=a+32|0;tl(c[b>>2]|0);c[b>>2]=0;a=a+36|0;tl(c[a>>2]|0);c[a>>2]=0;return}function Vg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=l;l=l+48|0;if((l|0)>=(m|0))$(48);d=e;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+40>>2]=c[b+40>>2];c[d+8>>2]=yl(c[b+8>>2]|0)|0;c[d+12>>2]=yl(c[b+12>>2]|0)|0;c[d+16>>2]=yl(c[b+16>>2]|0)|0;f=d+20|0;Pj(f);Al(c[f>>2]|0,c[b+20>>2]|0)|0;Al(c[d+24>>2]|0,c[b+24>>2]|0)|0;Al(c[d+28>>2]|0,c[b+28>>2]|0)|0;c[d+32>>2]=yl(c[b+32>>2]|0)|0;c[d+36>>2]=yl(c[b+36>>2]|0)|0;b=d;d=a+44|0;do{c[a>>2]=c[b>>2];a=a+4|0;b=b+4|0}while((a|0)<(d|0));l=e;return}function Wg(a){a=a|0;switch(a|0){case 0:{a=35795;break}case 1:{a=45456;break}case 2:{a=35787;break}default:a=37665}return a|0}function Xg(a){a=a|0;return ((a|0)==0?35815:(a|0)==1?35807:37665)|0}function Yg(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;q=l;l=l+32|0;if((l|0)>=(m|0))$(32);p=q+16|0;k=q+8|0;g=q;h=q+24|0;o=q+20|0;i=((lk(e)|0)+7|0)>>>3;j=i<<1|1;n=gf(j)|0;a[n>>0]=4;f=n+1|0;e=Tk(5,f,i,h,b)|0;if(e|0){c[g>>2]=Pn(e)|0;Me(35824,g)}e=c[h>>2]|0;if(i>>>0>e>>>0){g=i-e|0;dr(f+g|0,f|0,e|0)|0;Yq(f|0,0,g|0)|0}b=f+i|0;e=Tk(5,b,i,h,d)|0;if(e|0){c[k>>2]=Pn(e)|0;Me(35824,k)}e=c[h>>2]|0;if(i>>>0>e>>>0){k=i-e|0;dr(b+k|0,b|0,e|0)|0;Yq(b|0,0,k|0)|0}e=Sk(o,5,n,j,0)|0;if(!e){cf(n);l=q;return c[o>>2]|0}else{c[p>>2]=Pn(e)|0;Me(35846,p)}return 0}function Zg(a,b){a=a|0;b=b|0;var d=0,e=0;d=Hl(0)|0;e=Hl(0)|0;if(!(Nj(d,e,a,b)|0))a=Yg(d,e,c[b+16>>2]|0)|0;else a=0;tl(d);tl(e);return a|0}function _g(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+16|0;if((l|0)>=(m|0))$(16);h=k+12|0;i=k+8|0;j=k+4|0;e=k;do if((d|0)!=0?(c[d+12>>2]&4|0)!=0:0){d=wl(d,e)|0;if(d|0){e=((c[e>>2]|0)+7|0)>>>3;c[h>>2]=e;g=0;break}j=65;l=k;return j|0}else f=6;while(0);do if((f|0)==6){g=((lk(d)|0)+7|0)>>>3;c[h>>2]=g;e=gf(g)|0;d=Tk(5,e,g,h,d)|0;if(!d){d=e;g=e;e=c[h>>2]|0;break}cf(e);j=d;l=k;return j|0}while(0);if(!e){cf(g);j=65;l=k;return j|0}if((a[d>>0]|0)!=4){cf(g);j=69;l=k;return j|0}e=e+-1|0;if(e&1|0){cf(g);j=65;l=k;return j|0}e=e>>>1;c[h>>2]=e;d=d+1|0;e=Sk(i,5,d,e,0)|0;if(e|0){cf(g);j=e;l=k;return j|0}h=c[h>>2]|0;d=Sk(j,5,d+h|0,h,0)|0;cf(g);if(!d){Al(c[b>>2]|0,c[i>>2]|0)|0;Al(c[b+4>>2]|0,c[j>>2]|0)|0;El(c[b+8>>2]|0,1)|0;tl(c[i>>2]|0);tl(c[j>>2]|0);j=0;l=k;return j|0}else{tl(c[i>>2]|0);j=d;l=k;return j|0}return 0}function $g(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=h;if(!d)d=c[b+28>>2]|0;if(!e)e=c[b+44>>2]|0;if(!((d|0)!=0&(e|0)!=0)){b=0;l=h;return b|0}if(!(c[b+16>>2]|0)){b=0;l=h;return b|0}if(!(c[b+20>>2]|0)){b=0;l=h;return b|0}if((c[b>>2]|0)==2?(c[b+24>>2]|0)==0:0){b=0;l=h;return b|0}if((c[b+4>>2]|0)==1?c[b+8>>2]&4096|0:0){if(Qg(f,e,b)|0){b=0;l=h;return b|0}e=Il(0)|0;Rk(e,c[f>>2]|0,32,0);cf(c[f>>2]|0);if(!a){a=Oj(0)|0;if(!a)a=0;else g=15}else g=15;if((g|0)==15)ck(a,e,d,b);tl(e);b=a;l=h;return b|0}if(!a){a=Oj(0)|0;if(!a){b=0;l=h;return b|0}}ck(a,e,d,b);b=a;l=h;return b|0}function ah(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;n=l;l=l+128|0;if((l|0)>=(m|0))$(128);j=n;a:do if(th(b,8,0,0)|0)if(!e)b=5;else{zb[e&1](36051,b,37758,36151);b=5}else switch(b|0){case 2:{b=0;do{a[j+b>>0]=b;b=b+1|0}while((b|0)!=64);b=bh(2,35867,9,j,64,35877,20)|0;if(!b)if(d){a[j>>0]=48;a[j+1>>0]=49;a[j+2>>0]=50;a[j+3>>0]=51;a[j+4>>0]=52;a[j+5>>0]=53;a[j+6>>0]=54;a[j+7>>0]=55;a[j+8>>0]=56;a[j+9>>0]=57;a[j+10>>0]=58;a[j+11>>0]=59;a[j+12>>0]=60;a[j+13>>0]=61;a[j+14>>0]=62;a[j+15>>0]=63;a[j+16>>0]=64;a[j+17>>0]=65;a[j+18>>0]=66;a[j+19>>0]=67;b=bh(2,35898,9,j,20,35908,20)|0;if(!b){b=80;d=0;while(1){a[j+d>>0]=b;d=d+1|0;if((d|0)==100)break;else b=b+1|0}b=bh(2,35929,9,j,100,35939,20)|0;if(!b){b=112;d=0;while(1){a[j+d>>0]=b;d=d+1|0;if((d|0)==49)break;else b=b+1|0}b=bh(2,35960,9,j,49,35970,20)|0;if(!b)b=0;else{d=36036;k=12}}else{d=36021;k=12}}else{d=36006;k=12}}else b=0;else{d=35991;k=12}if((k|0)==12)if(!e)b=50;else{zb[e&1](36051,2,d,b);b=50}break a}case 11:{b=c[677]|0;if(!b){b=0;break a}b:do if(!d){j=c[678]|0;k=Fo(j)|0;d=c[679]|0;d=bh(11,j,k,d,Fo(d)|0,2720,28)|0;if(!d){b=0;break a}}else{f=0;while(1){j=c[2708+(f*40|0)+4>>2]|0;k=Fo(j)|0;d=c[2708+(f*40|0)+8>>2]|0;d=bh(11,j,k,d,Fo(d)|0,2708+(f*40|0)+12|0,28)|0;if(d|0)break b;f=f+1|0;b=c[2708+(f*40|0)>>2]|0;if(!b){b=0;break a}}}while(0);if(!e){b=50;break a}zb[e&1](36051,11,b,d);b=50;break a}case 8:{b=c[747]|0;if(!b){b=0;break a}c:do if(!d){h=c[748]|0;i=Fo(h)|0;d=c[749]|0;d=bh(8,h,i,d,Fo(d)|0,3e3,32)|0;if(!d){f=c[749]|0;f=Ol(f,Fo(f)|0)|0;if(f){d=c[748]|0;Pl(f,d,Fo(d)|0);d=Tl(f,j)|0;if(d)if((c[j>>2]|0)==32?(Tp(d,3e3,32)|0)==0:0){Rl(f);b=0;break a}else{d=f;k=36}else{d=f;k=33}}else d=36056}}else{i=0;while(1){g=2988+(i*44|0)+4|0;p=c[g>>2]|0;o=Fo(p)|0;f=2988+(i*44|0)+8|0;d=c[f>>2]|0;h=2988+(i*44|0)+12|0;d=bh(8,p,o,d,Fo(d)|0,h,32)|0;if(d|0)break c;d=c[f>>2]|0;d=Ol(d,Fo(d)|0)|0;if(!d){d=36056;break c}f=c[g>>2]|0;Pl(d,f,Fo(f)|0);f=Tl(d,j)|0;if(!f){k=33;break c}if((c[j>>2]|0)!=32){k=36;break c}if(Tp(f,h,32)|0){k=36;break c}Rl(d);i=i+1|0;b=c[2988+(i*44|0)>>2]|0;if(!b){b=0;break a}}}while(0);if((k|0)==33){Rl(d);d=36081}else if((k|0)==36){Rl(d);d=36111}if(!e){b=50;break a}zb[e&1](36051,8,b,d);b=50;break a}case 9:{b=c[824]|0;if(!b){b=0;break a}d:do if(!d){o=c[825]|0;p=Fo(o)|0;d=c[826]|0;d=bh(9,o,p,d,Fo(d)|0,3308,48)|0;if(!d){b=0;break a}}else{f=0;while(1){o=c[3296+(f*60|0)+4>>2]|0;p=Fo(o)|0;d=c[3296+(f*60|0)+8>>2]|0;d=bh(9,o,p,d,Fo(d)|0,3296+(f*60|0)+12|0,48)|0;if(d|0)break d;f=f+1|0;b=c[3296+(f*60|0)>>2]|0;if(!b){b=0;break a}}}while(0);if(!e){b=50;break a}zb[e&1](36051,9,b,d);b=50;break a}case 10:{b=c[929]|0;if(!b){b=0;break a}e:do if(!d){o=c[930]|0;p=Fo(o)|0;d=c[931]|0;d=bh(10,o,p,d,Fo(d)|0,3728,64)|0;if(!d){b=0;break a}}else{f=0;while(1){o=c[3716+(f*76|0)+4>>2]|0;p=Fo(o)|0;d=c[3716+(f*76|0)+8>>2]|0;d=bh(10,o,p,d,Fo(d)|0,3716+(f*76|0)+12|0,64)|0;if(d|0)break e;f=f+1|0;b=c[3716+(f*76|0)>>2]|0;if(!b){b=0;break a}}}while(0);if(!e){b=50;break a}zb[e&1](36051,10,b,d);b=50;break a}default:{b=5;break a}}while(0);l=n;return ((b|0)==0?0:b&65535|16777216)|0}function bh(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0;j=l;l=l+16|0;if((l|0)>=(m|0))$(16);i=j;do if((sh(a)|0)==(h|0))if(!(eh(i,a,2)|0)){f=(nh(c[i>>2]|0,e,f)|0)==0;e=c[i>>2]|0;if(!f){kh(e);e=36834;break}lh(e,b,d);e=ph(c[i>>2]|0,a)|0;if(!e){kh(c[i>>2]|0);e=36856;break}else{e=(Tp(e,g,h)|0)==0;kh(c[i>>2]|0);e=e?0:36819;break}}else e=49699;else e=36876;while(0);l=j;return e|0}function ch(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;if(!a){o=0;return o|0}if((Jo(a,36895,4)|0)!=0?(Jo(a,36900,4)|0)!=0:0)n=a;else n=a+4|0;f=c[1910]|0;a:do if((f|0)!=0?(g=c[f>>2]|0,(g|0)!=0):0){d=0;e=g;while(1){d=d+1|0;if(!(Op(n,e)|0)){m=7620;b=g;o=f;g=29;break a}e=c[f+(d<<2)>>2]|0;if(!e){g=9;break}}}else g=9;while(0);b:do if((g|0)==9){e=c[1944]|0;if(e|0?(h=c[e>>2]|0,h|0):0){d=0;f=h;do{d=d+1|0;if(!(Op(n,f)|0)){m=7756;b=h;o=e;g=29;break b}f=c[e+(d<<2)>>2]|0}while((f|0)!=0)}e=c[1929]|0;if(e|0?(i=c[e>>2]|0,i|0):0){d=0;f=i;do{d=d+1|0;if(!(Op(n,f)|0)){m=7696;b=i;o=e;g=29;break b}f=c[e+(d<<2)>>2]|0}while((f|0)!=0)}e=c[1960]|0;if(e|0?(j=c[e>>2]|0,j|0):0){d=0;f=j;do{d=d+1|0;if(!(Op(n,f)|0)){m=7820;b=j;o=e;g=29;break b}f=c[e+(d<<2)>>2]|0}while((f|0)!=0)}e=c[1976]|0;if(e|0?(k=c[e>>2]|0,k|0):0){d=0;f=k;do{d=d+1|0;if(!(Op(n,f)|0)){m=7884;b=k;o=e;g=29;break b}f=c[e+(d<<2)>>2]|0}while((f|0)!=0)}e=c[1869]|0;if(e|0?(l=c[e>>2]|0,l|0):0){d=0;f=l;do{d=d+1|0;if(!(Op(n,f)|0)){m=7456;b=l;o=e;g=29;break b}f=c[e+(d<<2)>>2]|0}while((f|0)!=0)}}while(0);c:do if((g|0)==29?b|0:0){d=0;while(1){d=d+1|0;if(!(Op(n,b)|0))break;b=c[o+(d<<2)>>2]|0;if(!b)break c}o=c[m>>2]|0;return o|0}while(0);if(Op(a,c[1907]|0)|0)if(Op(a,c[1941]|0)|0)if(Op(a,c[1926]|0)|0)if(Op(a,c[1957]|0)|0)if(Op(a,c[1973]|0)|0)if(!(Op(a,c[1866]|0)|0))b=7456;else{o=0;return o|0}else b=7884;else b=7820;else b=7696;else b=7756;else b=7620;o=c[b>>2]|0;return o|0}function dh(a){a=a|0;if((c[1905]|0)!=(a|0))if((c[1939]|0)!=(a|0))if((c[1924]|0)!=(a|0))if((c[1955]|0)!=(a|0))if((c[1971]|0)!=(a|0))if((c[1864]|0)==(a|0))a=7456;else{a=37665;return a|0}else a=7884;else a=7820;else a=7696;else a=7756;else a=7620;a=c[a+8>>2]|0;return a|0}function eh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=f;if(!(d&-260)){d=fh(e,b,d)|0;b=c[e>>2]|0}else{d=45;b=0}c[a>>2]=d|0?0:b;l=f;return d|0}function fh(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;g=e&1;j=(g|0)!=0;k=(e&2|0)==0;g=(g<<9^512)+535&1552;h=g+28|0;if(j)l=$e(h)|0;else l=_e(h)|0;if((l|0)==0?(f=Qn(c[(zo()|0)>>2]|0)|0,f|0):0){n=f;return n|0}i=l+g|0;c[l>>2]=i;c[l+8>>2]=g+-15;c[l+4>>2]=0;g=i+4+4|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;c[g+16>>2]=0;c[i>>2]=j?378630161:285677921;c[i+4>>2]=h;a[i+12>>0]=e>>>6&4|e&1;if(!k){switch(d|0){case 10:case 9:{c[i+24>>2]=128;f=256;break}case 311:case 308:{c[i+24>>2]=32;f=64;break}default:{c[i+24>>2]=64;f=128}}k=$e(f)|0;c[i+20>>2]=k;if((k|0)==0?(m=Qn(c[(zo()|0)>>2]|0)|0,gh(l),m|0):0){n=m;return n|0}}Gj();if(d|0?(n=hh(c[l>>2]|0,d)|0,n|0):0){gh(l);return n|0}c[b>>2]=l;n=0;return n|0}function gh(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0;k=l;l=l+32|0;if((l|0)>=(m|0))$(32);h=k+16|0;i=k+8|0;j=k;if(!b){l=k;return}d=c[b>>2]|0;e=c[d+8>>2]|0;if(e){g=b+4|0;d=c[g>>2]|0;if(!d)d=e;else{f=b+12|0;if((iq(f,d,1,e)|0)!=1)He(36953,630,36958);d=c[b>>2]|0;e=c[d+16>>2]|0;if(e){do{d=c[g>>2]|0;if(!d)d=e+16|0;else{n=e+16|0;ub[c[(c[e>>2]|0)+32>>2]&7](n,f,d);d=n}ub[c[(c[e>>2]|0)+32>>2]&7](d,0,0);e=c[e+4>>2]|0}while((e|0)!=0);d=c[b>>2]|0}c[g>>2]=0;d=c[d+8>>2]|0}bq(d)|0;d=c[b>>2]|0;c[d+8>>2]=0;c[h>>2]=b;n=i;c[n>>2]=42;c[n+4>>2]=0;i=kr(c[h>>2]|0,0,c[i>>2]|0,c[i+4>>2]|0)|0;n=j;c[n>>2]=i;c[n+4>>2]=D}e=c[d+16>>2]|0;if(e){do{j=e;e=c[e+4>>2]|0;d=c[j+8>>2]|0;if((d|0)!=0&(j&7|0)!=0){f=j;do{a[f>>0]=0;f=f+1|0;d=d+-1|0}while((d|0)!=0&(f&7|0)!=0)}else f=j;if(d>>>0>=8){h=d+-8|0;i=h&-8;g=f+8|0;while(1){n=f;c[n>>2]=0;c[n+4>>2]=0;d=d+-8|0;if(d>>>0<=7)break;else f=f+8|0}f=g+i|0;d=h-i|0}if(d|0)while(1){a[f>>0]=0;d=d+-1|0;if(!d)break;else f=f+1|0}cf(j)}while((e|0)!=0);d=c[b>>2]|0}f=c[d+20>>2]|0;if(f){n=c[d+24>>2]|0;e=n<<1;if((n|0)!=0&(f&7|0)!=0){d=f;do{a[d>>0]=0;d=d+1|0;e=e+-1|0}while((e|0)!=0&(d&7|0)!=0)}else d=f;if(e>>>0>=8){g=e+-8|0;h=g&-8;i=h+8|0;f=d;while(1){n=f;c[n>>2]=0;c[n+4>>2]=0;e=e+-8|0;if(e>>>0<=7)break;else f=f+8|0}e=g-h|0;d=d+i|0}if(e|0)while(1){a[d>>0]=0;e=e+-1|0;if(!e)break;else d=d+1|0}cf(c[(c[b>>2]|0)+20>>2]|0);d=c[b>>2]|0}d=c[d+4>>2]|0;if((d|0)!=0&(b&7|0)!=0){e=b;do{a[e>>0]=0;e=e+1|0;d=d+-1|0}while((d|0)!=0&(e&7|0)!=0)}else e=b;if(d>>>0>=8){g=d+-8|0;h=g&-8;i=h+8|0;f=e;while(1){n=f;c[n>>2]=0;c[n+4>>2]=0;d=d+-8|0;if(d>>>0<=7)break;else f=f+8|0}d=g-h|0;e=e+i|0}if(d|0)while(1){a[e>>0]=0;d=d+-1|0;if(!d)break;else e=e+1|0}cf(b);l=k;return}function hh(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=i;h=b+16|0;e=c[h>>2]|0;a:do if(e|0){while(1){if((c[c[e>>2]>>2]|0)==(d|0)){e=0;break}e=c[e+4>>2]|0;if(!e)break a}l=i;return e|0}while(0);if((c[1905]|0)!=(d|0))if((c[1939]|0)!=(d|0))if((c[1924]|0)!=(d|0))if((c[1955]|0)!=(d|0))if((c[1971]|0)!=(d|0))if((c[1864]|0)==(d|0))g=7456;else{c[f>>2]=d;Oe(36905,f);h=5;l=i;return h|0}else g=7884;else g=7820;else g=7696;else g=7756;else g=7620;if(((d|0)==1?gg()|0:0)?(jg(36944),hg()|0):0){h=5;l=i;return h|0}d=(c[g+44>>2]|0)+16|0;f=b+12|0;if(!(a[f>>0]&1))e=_e(d)|0;else e=$e(d)|0;if(!e){h=Qn(c[(zo()|0)>>2]|0)|0;l=i;return h|0}else{c[e>>2]=g;c[e+4>>2]=c[h>>2];c[e+8>>2]=d;c[h>>2]=e;sb[c[g+28>>2]&7](e+16|0,(a[f>>0]&4)<<6);h=0;l=i;return h|0}return 0}function ih(b){b=b|0;var d=0,e=0,f=0;e=(c[b>>2]|0)+12|0;a[e>>0]=a[e>>0]&-3;c[b+4>>2]=0;e=c[b>>2]|0;d=c[e+16>>2]|0;if(!d)d=e;else{do{e=d+16|0;f=c[d>>2]|0;Yq(e|0,0,c[f+44>>2]|0)|0;sb[c[f+28>>2]&7](e,(a[(c[b>>2]|0)+12>>0]&4)<<6);d=c[d+4>>2]|0}while((d|0)!=0);d=c[b>>2]|0}e=c[d+20>>2]|0;if(!e)return;jh(b,e,c[d+24>>2]|0);return}function jh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=c[(c[a>>2]|0)+8>>2]|0;g=a+4|0;if(e|0){f=c[g>>2]|0;if(f|0?(iq(a+12|0,f,1,e)|0)!=1:0)He(36953,630,36958);if(d|0?(iq(b,d,1,c[(c[a>>2]|0)+8>>2]|0)|0)!=1:0)He(36953,632,36958)}e=c[(c[a>>2]|0)+16>>2]|0;if(!e){c[g>>2]=0;return}a=a+12|0;do{f=c[g>>2]|0;if(!f)f=e+16|0;else{h=e+16|0;ub[c[(c[e>>2]|0)+32>>2]&7](h,a,f);f=h}ub[c[(c[e>>2]|0)+32>>2]&7](f,b,d);e=c[e+4>>2]|0}while((e|0)!=0);c[g>>2]=0;return}function kh(a){a=a|0;gh(a);return}function lh(a,b,c){a=a|0;b=b|0;c=c|0;jh(a,b,c);return}function mh(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=l;l=l+32|0;if((l|0)>=(m|0))$(32);r=v+16|0;n=v+8|0;k=v;o=v+20|0;g=c[b>>2]|0;if(a[g+12>>0]&2){l=v;return}j=b+4|0;i=c[j>>2]|0;if(i){h=c[g+8>>2]|0;do if(h)if((iq(b+12|0,i,1,h)|0)==1){f=c[b>>2]|0;break}else He(36953,630,36958);else f=g;while(0);g=c[f+16>>2]|0;if(g){h=b+12|0;do{f=c[j>>2]|0;if(!f)f=g+16|0;else{i=g+16|0;ub[c[(c[g>>2]|0)+32>>2]&7](i,h,f);f=i}ub[c[(c[g>>2]|0)+32>>2]&7](f,0,0);g=c[g+4>>2]|0}while((g|0)!=0);f=c[b>>2]|0}c[j>>2]=0;g=f}f=c[g+16>>2]|0;if(!f)f=g;else{do{rb[c[(c[f>>2]|0)+36>>2]&7](f+16|0);f=c[f+4>>2]|0}while((f|0)!=0);f=c[b>>2]|0}f=f+12|0;a[f>>0]=a[f>>0]|2;f=c[b>>2]|0;if(!(c[f+20>>2]|0)){l=v;return}f=c[f+16>>2]|0;if(!f)He(36953,816,37090);if(!(c[f+4>>2]|0))g=f;else{kg(36953,980,36967,0,36979);Le(37e3,k);g=c[(c[b>>2]|0)+16>>2]|0}h=c[c[f>>2]>>2]|0;f=(g|0)==0;do if(h){if(f)He(36953,816,37090);else e=g;while(1){f=c[e>>2]|0;if((c[f>>2]|0)==(h|0)){p=29;break}e=c[e+4>>2]|0;if(!e){p=31;break}}if((p|0)==29){s=tb[c[f+40>>2]&15](e+16|0)|0;q=0;u=h;break}else if((p|0)==31)He(36953,816,37090)}else{if(f)He(36953,816,37090);if(c[g+4>>2]|0)Oe(37051,n);s=tb[c[(c[g>>2]|0)+40>>2]&15](g+16|0)|0;q=1;u=0}while(0);if((c[1905]|0)!=(u|0))if((c[1939]|0)!=(u|0))if((c[1924]|0)!=(u|0))if((c[1955]|0)!=(u|0))if((c[1971]|0)!=(u|0))if((c[1864]|0)==(u|0)){e=7456;p=38}else h=0;else{e=7884;p=38}else{e=7820;p=38}else{e=7696;p=38}else{e=7756;p=38}else{e=7620;p=38}if((p|0)==38)h=c[e+24>>2]|0;e=a[(c[b>>2]|0)+12>>0]|0;e=fh(o,u,(e&4)<<6|e&1)|0;if(e|0)Be(e,0);g=c[o>>2]|0;f=c[b>>2]|0;e=c[f+24>>2]|0;jh(g,(c[f+20>>2]|0)+e|0,e);jh(g,s,h);mh(g);e=c[(c[g>>2]|0)+16>>2]|0;f=(e|0)==0;do if(!q){if(f)He(36953,816,37090);else d=e;while(1){e=c[d>>2]|0;if((c[e>>2]|0)==(u|0)){p=48;break}d=c[d+4>>2]|0;if(!d){p=50;break}}if((p|0)==48){t=tb[c[e+40>>2]&15](d+16|0)|0;break}else if((p|0)==50)He(36953,816,37090)}else{if(f)He(36953,816,37090);if(c[e+4>>2]|0)Oe(37051,r);t=tb[c[(c[e>>2]|0)+40>>2]&15](e+16|0)|0}while(0);cr(s|0,t|0,h|0)|0;gh(g);l=v;return}function nh(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0;o=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=c[b>>2]|0;if(!(c[g+20>>2]|0)){b=70;l=o;return b|0}g=c[g+16>>2]|0;if(!g){b=5;l=o;return b|0}if(c[g+4>>2]|0){kg(36953,980,36967,0,36979);Le(37e3,o)}h=c[c[g>>2]>>2]|0;if(!h){b=5;l=o;return b|0}i=c[b>>2]|0;g=c[i+24>>2]|0;do if(g>>>0<f>>>0){if((c[1905]|0)!=(h|0))if((c[1939]|0)!=(h|0))if((c[1924]|0)!=(h|0))if((c[1955]|0)!=(h|0))if((c[1971]|0)!=(h|0))if((c[1864]|0)==(h|0)){g=7456;n=13}else g=0;else{g=7884;n=13}else{g=7820;n=13}else{g=7696;n=13}else{g=7756;n=13}else{g=7620;n=13}if((n|0)==13)g=c[g+24>>2]|0;j=$e(g)|0;if(!j){g=Qn(c[(zo()|0)>>2]|0)|0;if(!g)break;l=o;return g|0}oh(h,j,e,f);if((c[1905]|0)!=(h|0))if((c[1939]|0)!=(h|0))if((c[1924]|0)!=(h|0))if((c[1955]|0)!=(h|0))if((c[1971]|0)!=(h|0))if((c[1864]|0)==(h|0))g=7456;else{g=c[b>>2]|0;e=j;k=j;j=0;i=g;g=c[g+24>>2]|0;n=24;break}else g=7884;else g=7820;else g=7696;else g=7756;else g=7620;h=c[g+24>>2]|0;i=c[b>>2]|0;g=c[i+24>>2]|0;if(h>>>0>g>>>0)Ie(37098,36953,716,37131);else{e=j;k=j;j=h;n=24}}else{k=0;j=f;n=24}while(0);if((n|0)==24){Yq(c[i+20>>2]|0,0,g<<1|0)|0;i=c[b>>2]|0;h=c[i+20>>2]|0;i=h+(c[i+24>>2]|0)|0;cr(h|0,e|0,j|0)|0;cr(i|0,e|0,j|0)|0;if((c[(c[b>>2]|0)+24>>2]|0)>0){g=0;do{n=h+g|0;a[n>>0]=(d[n>>0]|0)^54;n=i+g|0;a[n>>0]=(d[n>>0]|0)^92;g=g+1|0}while((g|0)<(c[(c[b>>2]|0)+24>>2]|0))}cf(k)}h=(c[b>>2]|0)+12|0;a[h>>0]=a[h>>0]&-3;c[b+4>>2]=0;h=c[b>>2]|0;g=c[h+16>>2]|0;if(!g)g=h;else{do{n=g+16|0;k=c[g>>2]|0;Yq(n|0,0,c[k+44>>2]|0)|0;sb[c[k+28>>2]&7](n,(a[(c[b>>2]|0)+12>>0]&4)<<6);g=c[g+4>>2]|0}while((g|0)!=0);g=c[b>>2]|0}h=c[g+20>>2]|0;if(!h){b=0;l=o;return b|0}jh(b,h,c[g+24>>2]|0);b=0;l=o;return b|0}function oh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;o=l;l=l+16|0;if((l|0)>=(m|0))$(16);j=o+8|0;i=o;h=o+12|0;a:do switch(a|0){case 2:{Vi(b,d,e);l=o;return}case 3:{if(gg()|0)break a;ui(b,d,e);l=o;return}default:if(((a|0)==1?(gg()|0)!=0:0)?(jg(36944),(hg()|0)!=0):0)fg()}while(0);g=fh(h,a,0)|0;if(g|0){g=Pn(g&65535|536870912)|0;c[i>>2]=a;c[i+4>>2]=g;Ne(37147,i)}i=c[h>>2]|0;jh(i,d,e);mh(i);g=c[(c[i>>2]|0)+16>>2]|0;h=(g|0)==0;do if(a){if(h)He(36953,816,37090);else f=g;while(1){g=c[f>>2]|0;if((c[g>>2]|0)==(a|0)){k=19;break}f=c[f+4>>2]|0;if(!f){k=21;break}}if((k|0)==19){n=tb[c[g+40>>2]&15](f+16|0)|0;break}else if((k|0)==21)He(36953,816,37090)}else{if(h)He(36953,816,37090);if(c[g+4>>2]|0)Oe(37051,j);n=tb[c[(c[g>>2]|0)+40>>2]&15](g+16|0)|0}while(0);if((c[1905]|0)!=(a|0))if((c[1939]|0)!=(a|0))if((c[1924]|0)!=(a|0))if((c[1955]|0)!=(a|0))if((c[1971]|0)!=(a|0))if((c[1864]|0)==(a|0)){f=7456;k=28}else f=0;else{f=7884;k=28}else{f=7820;k=28}else{f=7696;k=28}else{f=7756;k=28}else{f=7620;k=28}if((k|0)==28)f=c[f+24>>2]|0;cr(b|0,n|0,f|0)|0;gh(i);l=o;return}function ph(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=h;mh(a);a=c[(c[a>>2]|0)+16>>2]|0;d=(a|0)==0;if(!b){if(d)He(36953,816,37090);if(c[a+4>>2]|0)Oe(37051,e);g=tb[c[(c[a>>2]|0)+40>>2]&15](a+16|0)|0;l=h;return g|0}if(d)He(36953,816,37090);else f=a;while(1){a=c[f>>2]|0;if((c[a>>2]|0)==(b|0))break;d=c[f+4>>2]|0;if(!d){g=10;break}else f=d}if((g|0)==10)He(36953,816,37090);g=tb[c[a+40>>2]&15](f+16|0)|0;l=h;return g|0}function qh(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0;o=l;l=l+16|0;if((l|0)>=(m|0))$(16);i=o;g=o+4|0;if(!((b&-3|0)==0&((e|0)!=0&(f|0)>-1))){d=45;l=o;return d|0}b=b&2;h=(b|0)!=0;if(h&(f|0)<1){d=45;l=o;return d|0}if(!((a|0)!=2|h)){Wi(d,e,f);d=0;l=o;return d|0}if(((a|0)==1?gg()|0:0)?(jg(36944),hg()|0):0)fg();b=fh(g,a,b)|0;a:do if(!b){g=c[g>>2]|0;do if(h){b=nh(g,(c[e+12>>2]|0)+(c[e+4>>2]|0)|0,c[e+8>>2]|0)|0;if(!b){f=f+-1|0;b=e+16|0;break}else{gh(g);break a}}else b=e;while(0);if(f|0)while(1){jh(g,(c[b+12>>2]|0)+(c[b+4>>2]|0)|0,c[b+8>>2]|0);f=f+-1|0;if(!f)break;else b=b+16|0}mh(g);b=c[(c[g>>2]|0)+16>>2]|0;f=(b|0)==0;do if(a){if(f)He(36953,816,37090);else j=b;while(1){b=c[j>>2]|0;if((c[b>>2]|0)==(a|0)){k=23;break}b=c[j+4>>2]|0;if(!b){k=25;break}else j=b}if((k|0)==23){n=tb[c[b+40>>2]&15](j+16|0)|0;break}else if((k|0)==25)He(36953,816,37090)}else{if(f)He(36953,816,37090);if(c[b+4>>2]|0)Oe(37051,i);n=tb[c[(c[b>>2]|0)+40>>2]&15](b+16|0)|0}while(0);if((c[1905]|0)!=(a|0))if((c[1939]|0)!=(a|0))if((c[1924]|0)!=(a|0))if((c[1955]|0)!=(a|0))if((c[1971]|0)!=(a|0))if((c[1864]|0)==(a|0)){b=7456;k=32}else b=0;else{b=7884;k=32}else{b=7820;k=32}else{b=7696;k=32}else{b=7756;k=32}else{b=7620;k=32}if((k|0)==32)b=c[b+24>>2]|0;cr(d|0,n|0,b|0)|0;gh(g);d=0;l=o;return d|0}while(0);d=b;l=o;return d|0}function rh(a){a=a|0;var b=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);a=c[(c[a>>2]|0)+16>>2]|0;if(!a){a=0;l=b;return a|0}if(c[a+4>>2]|0){kg(36953,980,36967,0,36979);Le(37e3,b)}a=c[c[a>>2]>>2]|0;l=b;return a|0}function sh(a){a=a|0;if((c[1905]|0)!=(a|0))if((c[1939]|0)!=(a|0))if((c[1924]|0)!=(a|0))if((c[1955]|0)!=(a|0))if((c[1971]|0)!=(a|0))if((c[1864]|0)==(a|0))a=7456;else{a=0;return a|0}else a=7884;else a=7820;else a=7696;else a=7756;else a=7620;a=c[a+24>>2]|0;return a|0}function th(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;k=l;l=l+16|0;if((l|0)>=(m|0))$(16);h=k;switch(d|0){case 8:{if((e|0)!=0|(f|0)!=0){f=45;l=k;return f|0}if((c[1905]|0)!=(b|0))if((c[1939]|0)!=(b|0))if((c[1924]|0)!=(b|0))if((c[1955]|0)!=(b|0))if((c[1971]|0)!=(b|0)){if((c[1864]|0)==(b|0)){g=7456;j=9}}else{g=7884;j=9}else{g=7820;j=9}else{g=7696;j=9}else{g=7756;j=9}else{g=7620;j=9}if((j|0)==9?(a[g+4>>0]&1)==0:0){f=0;l=k;return f|0}f=5;l=k;return f|0}case 10:{d=(c[1905]|0)==(b|0);if(!d)if((c[1939]|0)!=(b|0))if((c[1924]|0)!=(b|0))if((c[1955]|0)!=(b|0))if((c[1971]|0)!=(b|0))if((c[1864]|0)==(b|0))g=7456;else{f=5;l=k;return f|0}else g=7884;else g=7820;else g=7696;else g=7756;else g=7620;if(a[g+4>>0]&1){f=5;l=k;return f|0}if(!d)if((c[1939]|0)!=(b|0))if((c[1924]|0)!=(b|0))if((c[1955]|0)!=(b|0))if((c[1971]|0)!=(b|0))if((c[1864]|0)==(b|0))i=7456;else{c[h>>2]=b;Ne(37183,h)}else i=7884;else i=7820;else i=7696;else i=7756;else i=7620;h=c[i+16>>2]|0;g=c[i+12>>2]|0;d=(e|0)!=0;if(d){if((c[f>>2]|0)>>>0>=h>>>0){cr(e|0,g|0,h|0)|0;c[f>>2]=h;f=0;l=k;return f|0}}else if(f|0){c[f>>2]=h;f=0;l=k;return f|0}f=d?66:45;l=k;return f|0}case 57:{if(!f)h=0;else h=c[f>>2]|0;if((c[1905]|0)!=(b|0))if((c[1939]|0)!=(b|0))if((c[1924]|0)!=(b|0))if((c[1955]|0)!=(b|0))if((c[1971]|0)!=(b|0))if((c[1864]|0)==(b|0)){d=7456;j=39}else g=69;else{d=7884;j=39}else{d=7820;j=39}else{d=7696;j=39}else{d=7756;j=39}else{d=7620;j=39}do if((j|0)==39){g=c[d+48>>2]|0;if(a[d+4>>0]&1){g=g|0?5:69;break}if(!g)g=69;else g=pb[g&63](b,h,0)|0}while(0);f=g&65535;l=k;return f|0}default:{f=61;l=k;return f|0}}return 0}function uh(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;if((c[1905]|0)!=(b|0))if((c[1939]|0)!=(b|0))if((c[1924]|0)!=(b|0))if((c[1955]|0)!=(b|0))if((c[1971]|0)!=(b|0))if((c[1864]|0)==(b|0)){f=7456;i=7}else{d=0;g=0;f=69;i=11}else{f=7884;i=7}else{f=7820;i=7}else{f=7696;i=7}else{f=7756;i=7}else{f=7620;i=7}do if((i|0)==7){h=c[f+48>>2]|0;if(a[f+4>>0]&1){d=f;g=1;f=h|0?5:69;i=11;break}if(!h){d=f;g=1;f=69;i=11}else f=pb[h&63](b,d,e)|0}while(0);if((i|0)==11)if(e){if(g?(a[d+4>>0]&1)==0:0)d=37736;else d=g?37697:37716;zb[e&1](42873,b,37758,d)}return ((f|0)==0?0:f&65535|16777216)|0}function vh(){return 0}function wh(){return 0}function xh(a,b){a=a|0;b=b|0;c[17614]=a;c[17615]=b;return}function yh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=zh(a,1,b,d,e)|0;b=c[17614]|0;if(!b)return a|0;qb[b&15](c[17615]|0,37212,10,0,0);return a|0}function zh(a,b,d,f,g){a=a|0;b=b|0;d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=l;l=l+16|0;if((l|0)>=(m|0))$(16);C=E+8|0;h=E;B=E+12|0;if(a>>>0<16){c[h>>2]=16;Me(37221,h)}y=gf(2672)|0;z=kl(2)|0;A=kl(3)|0;r=(b|0)!=0;if(r)s=Il(a)|0;else s=Hl(a)|0;t=Bl(s)|0;u=Bl(s)|0;v=Bl(s)|0;c[B>>2]=0;w=a+-1|0;x=a+-2|0;p=w-b|0;q=(f|0)==0;a:while(1){Kl(s,a,d);ok(s,w);if(r)nk(s,x);nk(s,0);h=0;do{c[y+(h<<2)>>2]=Ak(0,s,e[16424+(h<<1)>>1]|0)|0;h=h+1|0}while((h|0)!=668);b:do if(q){h=0;o=0;while(1){n=0;j=3;while(1){k=y+(n<<2)|0;i=c[k>>2]|0;b=i+o|0;if(b>>>0>=j>>>0){do{i=i-j|0;b=i+o|0}while(b>>>0>=j>>>0);c[k>>2]=i}i=n+1|0;if(!b)break;if((i|0)==668){D=15;break}else{n=i;j=e[16424+(i<<1)>>1]|0}}if((D|0)==15){D=0;ek(v,s,o);c[B>>2]=(c[B>>2]|0)+1;gk(u,v,1);Mk(t,z,u,v);if((vk(t,1)|0)==0?Ah(v,5,B)|0:0)break;h=h+1|0;if((h|0)==10){h=c[17614]|0;if(!h)h=0;else{qb[h&15](c[17615]|0,37212,46,0,0);h=0}}}o=o+2|0;if(o>>>0>=2e4)break b}if(!(mk(v,p)|0))D=34;else{D=46;break a}}else{h=0;o=0;do{n=0;k=3;while(1){j=y+(n<<2)|0;i=c[j>>2]|0;b=i+o|0;if(b>>>0>=k>>>0){do{i=i-k|0;b=i+o|0}while(b>>>0>=k>>>0);c[j>>2]=i}i=n+1|0;if(!b)break;if((i|0)==668){D=31;break}else{n=i;k=e[16424+(i<<1)>>1]|0}}if((D|0)==31){D=0;ek(v,s,o);c[B>>2]=(c[B>>2]|0)+1;gk(u,v,1);Mk(t,z,u,v);if((vk(t,1)|0)==0?Ah(v,5,B)|0:0){if(!(mk(v,p)|0)){D=34;break b}if(!(yb[f&7](g,v)|0)){D=46;break a}b=c[17614]|0;if(b|0)qb[b&15](c[17615]|0,37212,47,0,0)}h=h+1|0;if((h|0)==10){h=c[17614]|0;if(!h)h=0;else{qb[h&15](c[17615]|0,37212,46,0,0);h=0}}}o=o+2|0}while(o>>>0<2e4)}while(0);if((D|0)==34){D=0;h=c[17614]|0;if(h|0)qb[h&15](c[17615]|0,37212,10,0,0);Oe(37268,C)}h=c[17614]|0;if(!h)continue;qb[h&15](c[17615]|0,37212,58,0,0)}if((D|0)==46){tl(z);tl(A);tl(t);tl(u);tl(s);cf(y);l=E;return v|0}return 0}function Ah(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;l=a+4|0;o=ll(c[l>>2]|0)|0;p=ll(c[l>>2]|0)|0;q=ll(c[l>>2]|0)|0;l=ll(c[l>>2]|0)|0;m=kl(2)|0;n=lk(a)|0;f=(b|0)<5?5:b;gk(l,a,1);g=yl(l)|0;h=Nk(g)|0;Ck(g,g,h);a:do if(f){i=n+-2|0;if(h>>>0<=1){b=0;while(1){c[d>>2]=(c[d>>2]|0)+1;if(b){Kl(o,n,0);e=(mk(o,i)|0)==0;ok(o,i);if(e)qk(o,i);if((wk(o,l)|0)>=0){b=24;break}if((vk(o,1)|0)<=0){b=24;break}}else El(o,2)|0;Mk(p,o,g,a);if((vk(p,1)|0?wk(p,l)|0:0)?wk(p,l)|0:0){j=0;break a}e=c[17614]|0;if(e|0)qb[e&15](c[17615]|0,37212,43,0,0);b=b+1|0;if(b>>>0>=f>>>0){j=1;break a}}if((b|0)==24)Ie(37298,37370,951,37381)}else k=0;while(1){c[d>>2]=(c[d>>2]|0)+1;if(k){Kl(o,n,0);e=(mk(o,i)|0)==0;ok(o,i);if(e)qk(o,i);if((wk(o,l)|0)>=0){b=24;break}if((vk(o,1)|0)<=0){b=24;break}}else El(o,2)|0;Mk(p,o,g,a);if(vk(p,1)|0?wk(p,l)|0:0){b=1;do{if(!(wk(p,l)|0))break;Mk(p,p,m,a);b=b+1|0;if(!(vk(p,1)|0)){j=0;break a}}while(b>>>0<h>>>0);if(wk(p,l)|0){j=0;break a}}b=c[17614]|0;if(b|0)qb[b&15](c[17615]|0,37212,43,0,0);k=k+1|0;if(k>>>0>=f>>>0){j=1;break a}}if((b|0)==24)Ie(37298,37370,951,37381)}else j=1;while(0);tl(o);tl(p);tl(q);tl(l);tl(g);tl(m);return j|0}function Bh(a,b,d,f,g){a=a|0;b=b|0;d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0;o=l;l=l+16|0;if((l|0)>=(m|0))$(16);k=o;c[k>>2]=0;h=0;i=3;while(1){j=h+1|0;if(Dk(a,i)|0){n=4;break}if((j|0)==668)break;else{h=j;i=e[16424+(j<<1)>>1]|0}}if((n|0)==4){n=(vk(a,i)|0)==0&1;l=o;return n|0}i=Bl(a)|0;j=Bl(a)|0;gk(j,a,1);Mk(i,b,j,a);tl(j);j=(vk(i,1)|0)==0;tl(i);if(!j){h=c[17614]|0;if(!h){n=0;l=o;return n|0}qb[h&15](c[17615]|0,37212,46,0,0);n=0;l=o;return n|0}h=(f|0)!=0;if(!(h?!(pb[f&63](g,2,a)|0):0))n=10;if((n|0)==10?Ah(a,d,k)|0:0){if(!h){n=1;l=o;return n|0}if(pb[f&63](g,1,a)|0){n=1;l=o;return n|0}}h=c[17614]|0;if(!h){n=0;l=o;return n|0}qb[h&15](c[17615]|0,37212,46,0,0);n=0;l=o;return n|0}function Ch(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;if((e|0)==0|(a|0)!=0&(b|0)!=0&(d|0)!=0^1){g=0;return g|0}if(!(mk(e,0)|0)){g=0;return g|0}k=Dh(b)|0;i=Dh(d)|0;h=Bl(a)|0;Kk(h,k,i);b=Bl(k)|0;Fk(b,i,k)|0;Kk(b,b,i);j=Bl(i)|0;Fk(j,k,i)|0;Kk(j,j,k);hk(b,b,j);if(c[b+8>>2]|0)fk(b,b,h);jk(j,b,a,h);fk(j,j,a);tl(b);if((wk(j,a)|0)<0)fk(j,j,h);b=kl(2)|0;d=Bl(j)|0;gk(h,h,1);gk(j,j,1);while(1){a=Ek(d,e,j)|0;ek(j,j,1);if(!a){a=c[17614]|0;if(a|0)qb[a&15](c[17615]|0,37212,47,0,0)}else if(Bh(j,b,64,0,0)|0)break;fk(j,j,h)}tl(d);tl(b);tl(h);b=c[17614]|0;if(b|0)qb[b&15](c[17615]|0,37212,10,0,0);if(!f)tl(k);else c[f>>2]=k;if(!g){tl(i);g=j;return g|0}else{c[g>>2]=i;g=j;return g|0}return 0}function Dh(a){a=a|0;var b=0;b=kl(2)|0;a=yl(a)|0;nk(a,0);if(Bh(a,b,64,0,0)|0){tl(b);return a|0}do ek(a,a,2);while(!(Bh(a,b,64,0,0)|0));tl(b);return a|0}function Eh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;o=l;l=l+16|0;if((l|0)>=(m|0))$(16);n=o;if((a|0)!=0?(e=vf(a)|0,(e|0)>1):0){k=0;g=0;f=5;j=e;e=0;while(1){j=j+-1|0;i=xf(a,j,n)|0;a:do if(!i)h=k;else do switch(c[n>>2]|0){case 3:{h=(f|0)==5;if(h&(Tp(i,37390,3)|0)==0){h=k;g=g|4;f=4;break a}if(h&(Tp(i,37394,3)|0)==0){h=k;g=g|16;f=0;break a}else{h=k;e=(k|0)==0?72:e;break a}}case 4:{if(!(Tp(i,37398,4)|0)){h=k;g=g|1024;break a}if((f|0)==5&(Tp(i,37403,4)|0)==0){h=k;g=g|4;f=3;break a}if(!(Tp(i,49620,4)|0)){h=k;g=g|8192;f=0;break a}else{h=k;e=(k|0)==0?72:e;break a}}case 5:{if(!(Tp(i,49614,5)|0)){h=k;g=g|4096;f=0;break a}if((f|0)==5&(Tp(i,37408,5)|0)==0){h=k;g=g|4;f=1;break a}if(!(Tp(i,37414,5)|0)){h=k;g=g|512;break a}else{h=k;e=(k|0)==0?72:e;break a}}case 6:if(!(Tp(i,37420,6)|0)){h=k;g=g|2048;break a}else{h=k;e=(k|0)==0?72:e;break a}case 7:if(!(Tp(i,37427,7)|0)){h=k;g=g|2;break a}else{i=(k|0)!=0|(Tp(i,37435,7)|0)==0;h=k;e=i?e:72;break a}case 8:if(!(Tp(i,41515,8)|0)){h=k;g=g|64;break a}else{h=k;e=(k|0)==0?72:e;break a}case 9:if((f|0)==5&(Tp(i,37443,9)|0)==0){h=k;g=g|4;f=2;break a}else{h=k;e=(k|0)==0?72:e;break a}case 10:{if(!(Tp(i,37453,10)|0)){h=1;break a}if(!(Tp(i,37464,10)|0)){h=k;g=g|16384;break a}else{h=k;e=(k|0)==0?72:e;break a}}case 11:{if(!(Tp(i,37475,11)|0)){h=k;g=g|1;break a}if(!(Tp(i,37487,11)|0)){h=k;g=g|128;break a}else{h=k;e=(k|0)==0?72:e;break a}}case 13:{if(!(Tp(i,37499,13)|0)){h=k;g=g|256;break a}if(!(Tp(i,48632,13)|0)){h=k;g=g|32;break a}else{h=k;e=(k|0)==0?72:e;break a}}default:{h=k;e=(k|0)==0?72:e;break a}}while(0);while(0);if((j|0)<=1)break;else k=h}}else{g=0;f=5;e=0}if(b|0)c[b>>2]=g;if(!d){l=o;return e|0}c[d>>2]=f;l=o;return e|0}function Fh(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=l;l=l+64|0;if((l|0)>=(m|0))$(64);h=i+4|0;e=i;c[d>>2]=0;f=uf(b,37513,0)|0;if(!f){h=0;l=i;return h|0}g=xf(f,1,e)|0;b=c[e>>2]|0;if((g|0)==0|b>>>0>48){sf(f);h=65;l=i;return h|0}else{cr(h|0,g|0,b|0)|0;a[h+b>>0]=0;c[d>>2]=Mo(h,0,0)|0;sf(f);h=0;l=i;return h|0}return 0}function Gh(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=l;l=l+64|0;if((l|0)>=(m|0))$(64);h=i+4|0;e=i;c[d>>2]=0;f=uf(b,37519,0)|0;if(!f){c[d>>2]=65537;h=0;l=i;return h|0}g=xf(f,1,e)|0;b=c[e>>2]|0;if((g|0)==0|b>>>0>48){sf(f);h=65;l=i;return h|0}else{cr(h|0,g|0,b|0)|0;a[h+b>>0]=0;c[d>>2]=Mo(h,0,0)|0;sf(f);h=0;l=i;return h|0}return 0}function Hh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;c[d>>2]=0;i=(e|0)!=0;if(i)c[e>>2]=0;j=uf(a,37529,0)|0;a:do if(j){a=wf(j,1)|0;if(a){f=zf(a,0)|0;if(f){if(!(Go(f,46885)|0)){sf(a);a=wf(j,2)|0;if(!a){g=65;a=0;break}cf(f);f=zf(a,0)|0;if(!f){g=65;f=0;break}}g=c[b>>2]|0;if(!g)g=70;else{h=0;while(1){h=h+1|0;if(!(Op(f,g)|0))break;g=c[b+(h<<2)>>2]|0;if(!g){g=70;break a}}if(i){if(!(Go(f,49614)|0))c[e>>2]=4096;if(!(Go(f,49620)|0))c[e>>2]=8192}c[d>>2]=a;g=0;a=0}}else{g=65;f=0}}else{g=68;f=0;a=0}}else{g=65;f=0;a=0}while(0);cf(f);sf(a);sf(j);return g|0}function Ih(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;q=l;l=l+16|0;if((l|0)>=(m|0))$(16);n=q+4|0;o=q;c[o>>2]=0;c[e>>2]=0;p=uf(b,40685,0)|0;a:do if(p){g=wf(p,1)|0;if(g){k=zf(g,0)|0;if(k){if(!(Go(k,46885)|0)){h=f+8|0;b=Eh(g,o,h)|0;if(b|0){h=k;break}b:do switch(c[h>>2]|0){case 4:{h=k;b=70;break a}case 3:{sf(g);g=uf(p,37537,0)|0;if(g|0){i=xf(g,1,n)|0;if(!i){h=k;b=68;break a}j=c[n>>2]|0;b=0;while(1){h=c[4248+(b<<3)>>2]|0;if((Fo(h)|0)==(j|0)?(Tp(h,i,j)|0)==0:0){h=13;break}b=b+1|0;if((b|0)==12){h=14;break}}do if((h|0)==13)b=c[4248+(b<<3)+4>>2]|0;else if((h|0)==14){b=_e(j+1|0)|0;if(!b){c[f+16>>2]=0;h=k;b=5;break a}else{cr(b|0,i|0,j|0)|0;a[b+j>>0]=0;j=ch(b)|0;cf(b);b=j;break}}while(0);c[f+16>>2]=b;if(!b){h=k;b=5;break a}}sf(g);g=uf(p,37547,0)|0;if(g){h=xf(g,1,n)|0;if(!h){h=k;b=68;break a}b=c[n>>2]|0;if(b){b=_e(b)|0;c[f+20>>2]=b;if(!b){b=Sn()|0;if(!b)break b;else{h=k;break a}}else{j=c[n>>2]|0;cr(b|0,h|0,j|0)|0;c[f+24>>2]=j;break b}}}else g=0;break}default:{}}while(0);sf(g);g=wf(p,2)|0;if(!g){h=k;g=0;b=68;break}else h=2;c:while(1){b=xf(g,0,n)|0;switch(c[n>>2]|0){case 9:{if(Tp(b,37537,9)|0)break c;break}case 5:{if(Tp(b,37547,5)|0)break c;break}case 15:{if(Tp(b,37553,15)|0)break c;break}default:break c}h=h+1|0;sf(g);g=wf(p,h)|0;if(!g){h=k;g=0;b=68;break a}}cf(k);b=zf(g,0)|0;if(!b){h=0;b=65;break}}else{c[o>>2]=8;b=k}h=c[d>>2]|0;if(!h){h=b;b=70}else{i=0;while(1){i=i+1|0;if(!(Op(b,h)|0))break;h=c[d+(i<<2)>>2]|0;if(!h){h=b;b=70;break a}}c[e>>2]=g;h=f+12|0;c[h>>2]=c[h>>2]|c[o>>2];h=b;g=0;b=0}}else{h=0;b=65}}else{h=0;g=0;b=68}}else{h=0;g=0;b=65}while(0);cf(h);sf(g);sf(p);l=q;return b|0}function Jh(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=b;c[a+4>>2]=d;c[a+8>>2]=5;c[a+12>>2]=0;c[a+16>>2]=2;c[a+20>>2]=0;c[a+24>>2]=0;c[a+28>>2]=20;c[a+32>>2]=0;c[a+36>>2]=0;return}function Kh(a){a=a|0;cf(c[a+20>>2]|0);return}function Lh(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=l;l=l+16|0;if((l|0)>=(m|0))$(16);r=w+8|0;u=w+4|0;s=w;c[u>>2]=0;c[d>>2]=0;v=uf(b,37643,0)|0;if(!v){v=Af(b,0,0)|0;c[d>>2]=v;v=v|0?0:65;l=w;return v|0}b=uf(v,46885,0)|0;g=e+8|0;if(!b)b=0;else{t=(Eh(b,u,g)|0)!=0&1;sf(b);b=t}if((c[g>>2]|0)==5)c[g>>2]=0;t=uf(v,37648,0)|0;i=(t|0)!=0;if(!i){f=uf(v,40697,0)|0;if(!f){b=65;f=0}else{h=1;q=9}}else{f=0;h=0;q=9}a:do if((q|0)==9)if(!b){g=c[g>>2]|0;b=(g|0)==0;if(b){if(c[u>>2]&4096|0){b:do if(h?(p=uf(v,37537,0)|0,(p|0)!=0):0){i=xf(p,1,r)|0;c:do if(i){h=c[r>>2]|0;b=0;while(1){g=c[4248+(b<<3)>>2]|0;if((Fo(g)|0)==(h|0)?(Tp(g,i,h)|0)==0:0){q=19;break}b=b+1|0;if((b|0)==12){q=20;break}}do if((q|0)==19)b=c[4248+(b<<3)+4>>2]|0;else if((q|0)==20){b=_e(h+1|0)|0;if(!b){c[e+16>>2]=0;b=5;break c}else{cr(b|0,i|0,h|0)|0;a[b+h>>0]=0;r=ch(b)|0;cf(b);b=r;break}}while(0);c[e+16>>2]=b;if(!b)b=5;else{sf(p);b=yf(f,1,s)|0;if(!b){c[s>>2]=0;b=_e(1)|0;if(!b){b=Sn()|0;if(!b)b=0;else break b}}else{r=c[s>>2]|0;if(r<<3>>>0<r>>>0){cf(b);b=67;break b}}c[d>>2]=ul(0,b,c[s>>2]<<3)|0;b=0;break b}}else b=68;while(0);sf(p)}else b=65;while(0);break}if(i&b?c[u>>2]&18|0:0){if((vf(t)|0)!=3){b=65;break}i=xf(t,1,r)|0;h=c[r>>2]|0;if(!((i|0)!=0&(h|0)!=0)){b=65;break}b=0;while(1){g=c[4248+(b<<3)>>2]|0;if((Fo(g)|0)==(h|0)?(Tp(g,i,h)|0)==0:0){q=40;break}b=b+1|0;if((b|0)==12){q=41;break}}do if((q|0)==40){b=c[4248+(b<<3)+4>>2]|0;q=44}else if((q|0)==41){b=_e(h+1|0)|0;if(!b){c[e+16>>2]=0;b=5;break}else{cr(b|0,i|0,h|0)|0;a[b+h>>0]=0;q=ch(b)|0;cf(b);b=q;q=44;break}}while(0);do if((q|0)==44){c[e+16>>2]=b;if(b){g=yf(t,2,s)|0;if(g){s=c[s>>2]|0;b=s<<3;if(b>>>0<s>>>0){cf(g);b=67;break}else{c[d>>2]=ul(0,g,b)|0;b=0;break}}else b=65}else b=5}while(0);break}if(h&b){if(c[u>>2]&2|0){b=70;break}b=Af(f,1,5)|0;c[d>>2]=b;b=(b|0)==0?65:0;break}else b=0}else{b=(g|0)==1;if(h&b?(c[e>>2]|0)==0:0){i=xf(f,1,s)|0;d:do if((i|0)!=0&(c[s>>2]|0)!=0){h=uf(v,37553,0)|0;e:do if(!h){g=0;b=0}else{g=xf(h,1,r)|0;if(!g){sf(h);b=68;break d}b=c[r>>2]|0;do if(b){b=_e(b)|0;if(!b){b=Sn()|0;sf(h);if(!b){g=0;b=0;break e}else break d}else{r=c[r>>2]|0;cr(b|0,g|0,r|0)|0;g=r;break}}else{g=0;b=0}while(0);sf(h)}while(0);d=vi(d,c[e+4>>2]|0,i,c[s>>2]|0,b,g)|0;cf(b);b=d}else b=65;while(0);break}}if(i&b?(c[e>>2]&-2|0)==2:0){if((vf(t)|0)!=3){b=65;break}i=xf(t,1,r)|0;h=c[r>>2]|0;if(!((i|0)!=0&(h|0)!=0)){b=65;break}b=0;while(1){g=c[4248+(b<<3)>>2]|0;if((Fo(g)|0)==(h|0)?(Tp(g,i,h)|0)==0:0){q=74;break}b=b+1|0;if((b|0)==12){q=75;break}}do if((q|0)==74){b=c[4248+(b<<3)+4>>2]|0;q=78}else if((q|0)==75){b=_e(h+1|0)|0;if(!b){c[e+16>>2]=0;b=5;break}else{cr(b|0,i|0,h|0)|0;a[b+h>>0]=0;q=ch(b)|0;cf(b);b=q;q=78;break}}while(0);if((q|0)==78){h=e+16|0;c[h>>2]=b;if(b){g=xf(t,2,s)|0;b=c[s>>2]|0;if((g|0)!=0&(b|0)!=0)b=xi(d,c[e+4>>2]|0,g,b,c[h>>2]|0)|0;else b=65}else b=5}break}if(h&(g|0)==2?(c[e>>2]&-2|0)==2:0){if((vf(f)|0)==2?(j=xf(f,1,s)|0,k=c[s>>2]|0,(j|0)!=0&(k|0)!=0):0)b=yi(d,c[e+4>>2]|0,j,k)|0;else b=65;break}if(h&(g|0)==3?(c[e>>2]|0)==0:0){k=xf(f,1,s)|0;f:do if((k|0)!=0&(c[s>>2]|0)!=0){j=uf(v,37537,0)|0;g:do if(j|0){h=xf(j,1,r)|0;h:do if(h){i=c[r>>2]|0;b=0;while(1){g=c[4248+(b<<3)>>2]|0;if((Fo(g)|0)==(i|0)?(Tp(g,h,i)|0)==0:0){q=97;break}b=b+1|0;if((b|0)==12){q=98;break}}do if((q|0)==97)b=c[4248+(b<<3)+4>>2]|0;else if((q|0)==98){b=_e(i+1|0)|0;if(!b){c[e+16>>2]=0;b=5;break h}else{cr(b|0,h|0,i|0)|0;a[b+i>>0]=0;q=ch(b)|0;cf(b);b=q;break}}while(0);c[e+16>>2]=b;if(!b)b=5;else{sf(j);break g}}else b=68;while(0);sf(j);break f}while(0);h=uf(v,37547,0)|0;i:do if(h|0){g=xf(h,1,r)|0;if(!g){sf(h);b=68;break f}b=c[r>>2]|0;do if(b|0){b=_e(b)|0;c[e+20>>2]=b;if(!b){b=Sn()|0;sf(h);if(!b)break i;else break f}else{q=c[r>>2]|0;cr(b|0,g|0,q|0)|0;c[e+24>>2]=q;break}}while(0);sf(h)}while(0);h=uf(v,37553,0)|0;j:do if(!h){g=0;b=0}else{g=xf(h,1,r)|0;if(!g){sf(h);b=68;break f}b=c[r>>2]|0;do if(b){b=_e(b)|0;if(!b){b=Sn()|0;sf(h);if(!b){g=0;b=0;break j}else break f}else{r=c[r>>2]|0;cr(b|0,g|0,r|0)|0;g=r;break}}else{g=0;b=0}while(0);sf(h)}while(0);d=zi(d,c[e+4>>2]|0,c[e+16>>2]|0,k,c[s>>2]|0,c[e+20>>2]|0,c[e+24>>2]|0,b,g)|0;cf(b);b=d}else b=65;while(0);break}if(i&(g|0)==4){if((c[e>>2]|0)!=2){if((c[e>>2]|0)!=3){b=70;break}if((vf(t)|0)!=3){b=65;break}i=xf(t,1,r)|0;h=c[r>>2]|0;if((i|0)!=0&(h|0)!=0)b=0;else{b=65;break}while(1){g=c[4248+(b<<3)>>2]|0;if((Fo(g)|0)==(h|0)?(Tp(g,i,h)|0)==0:0){q=155;break}b=b+1|0;if((b|0)==12){q=156;break}}do if((q|0)==155)b=c[4248+(b<<3)+4>>2]|0;else if((q|0)==156){b=_e(h+1|0)|0;if(!b){c[e+16>>2]=0;b=5;break a}else{cr(b|0,i|0,h|0)|0;a[b+h>>0]=0;s=ch(b)|0;cf(b);b=s;break}}while(0);c[e+16>>2]=b;if(!b){b=5;break}b=Af(t,2,5)|0;c[d>>2]=b;c[e+32>>2]=5;c[e+36>>2]=c[d>>2];b=(b|0)==0?65:0;break}if((vf(t)|0)==3?(n=xf(t,1,r)|0,o=c[r>>2]|0,(n|0)!=0&(o|0)!=0):0){b=0;while(1){g=c[4248+(b<<3)>>2]|0;if((Fo(g)|0)==(o|0)?(Tp(g,n,o)|0)==0:0){q=130;break}b=b+1|0;if((b|0)==12){q=131;break}}do if((q|0)==130){b=c[4248+(b<<3)+4>>2]|0;q=134}else if((q|0)==131){b=_e(o+1|0)|0;if(!b){c[e+16>>2]=0;b=5;break}else{cr(b|0,n|0,o|0)|0;a[b+o>>0]=0;q=ch(b)|0;cf(b);b=q;q=134;break}}while(0);k:do if((q|0)==134){j=e+16|0;c[j>>2]=b;if(b){i=xf(t,2,s)|0;if((i|0)!=0&(c[s>>2]|0)!=0){b=uf(v,37653,0)|0;if(b|0){g=xf(b,1,r)|0;if(!g){b=68;break}c[e+28>>2]=Mo(g,0,10)|0;sf(b)}h=uf(v,37553,0)|0;l:do if(!h){g=0;b=0}else{g=xf(h,1,r)|0;if(!g){sf(h);b=68;break k}b=c[r>>2]|0;do if(b){b=_e(b)|0;if(!b){b=Sn()|0;sf(h);if(!b){g=0;b=0;break l}else break k}else{r=c[r>>2]|0;cr(b|0,g|0,r|0)|0;g=r;break}}else{g=0;b=0}while(0);sf(h)}while(0);d=Ci(d,(c[e+4>>2]|0)+-1|0,c[j>>2]|0,i,c[s>>2]|0,c[e+28>>2]|0,b,g)|0;cf(b);b=d}else b=65}else b=5}while(0)}else b=65}else b=70}else b=72;while(0);sf(v);sf(t);sf(f);if(!b){c[e+12>>2]=c[u>>2];v=0;l=w;return v|0}else{v=e+20|0;cf(c[v>>2]|0);c[v>>2]=0;v=b;l=w;return v|0}return 0}function Mh(a,b){a=a|0;b=b|0;return Di(c[a+36>>2]|0,b,(c[a+4>>2]|0)+-1|0,c[a+16>>2]|0,c[a+28>>2]|0)|0}function Nh(a){a=a|0;var b=0,d=0;if(!(Op(a,c[3121]|0)|0)){a=12472;return a|0}d=c[3122]|0;b=c[d>>2]|0;a:do if(b|0){while(1){d=d+4|0;if(!(Op(a,b)|0)){b=12472;break}b=c[d>>2]|0;if(!b)break a}return b|0}while(0);if(!(Op(a,c[1883]|0)|0)){a=7520;return a|0}b=c[1884]|0;d=c[b>>2]|0;if(!d){a=0;return a|0}while(1){b=b+4|0;if(!(Op(a,d)|0)){b=7520;d=6;break}d=c[b>>2]|0;if(!d){b=0;d=6;break}}if((d|0)==6)return b|0;return 0}function Oh(a){a=a|0;switch(a|0){case 3:case 2:{a=1;break}case 16:{a=20;break}case 301:{a=18;break}case 302:{a=18;break}default:{}}if((a|0)!=(c[3118]|0))if((a|0)==(c[1880]|0))a=7520;else{a=37665;return a|0}else a=12472;a=c[a+12>>2]|0;return a|0}function Ph(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=g+4|0;f=g;c[a>>2]=0;d=Qh(d,0,e,f)|0;if(!d){d=c[(c[e>>2]|0)+48>>2]|0;if(!d)d=69;else d=pb[d&63](a,b,c[f>>2]|0)|0}sf(c[f>>2]|0);l=g;return d|0}function Qh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;c[d>>2]=0;g=(e|0)!=0;if(g)c[e>>2]=0;f=(b|0)!=0;b=uf(a,f?37667:37679,0)|0;if(!(f|(b|0)!=0))b=uf(a,37667,0)|0;if(!b){g=65;return g|0}f=Cf(b)|0;sf(b);b=zf(f,0)|0;if(!b){sf(f);g=65;return g|0}a=Nh(b)|0;cf(b);if(!a){sf(f);g=4;return g|0}c[d>>2]=a;if(g){c[e>>2]=f;g=0;return g|0}else{sf(f);g=0;return g|0}return 0}function Rh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=g+4|0;f=g;c[a>>2]=0;d=Qh(d,1,e,f)|0;if(!d){d=c[(c[e>>2]|0)+52>>2]|0;if(!d)d=69;else d=pb[d&63](a,b,c[f>>2]|0)|0}sf(c[f>>2]|0);l=g;return d|0}function Sh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=g+4|0;f=g;c[a>>2]=0;d=Qh(d,1,e,f)|0;if(!d){d=c[(c[e>>2]|0)+56>>2]|0;if(!d)d=69;else d=pb[d&63](a,b,c[f>>2]|0)|0}sf(c[f>>2]|0);l=g;return d|0}function Th(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=g+4|0;f=g;d=Qh(d,0,e,f)|0;if(!d){d=c[(c[e>>2]|0)+60>>2]|0;if(!d)d=69;else d=pb[d&63](a,b,c[f>>2]|0)|0}sf(c[f>>2]|0);l=g;return d|0}function Uh(a){a=a|0;var b=0,d=0,e=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=e+4|0;d=e;a=Qh(a,1,b,d)|0;if(!a){a=c[(c[b>>2]|0)+44>>2]|0;if(!a)a=69;else a=tb[a&15](c[d>>2]|0)|0}sf(c[d>>2]|0);l=e;return a|0}function Vh(a,b){a=a|0;b=b|0;var d=0,e=0;c[a>>2]=0;d=uf(b,37690,0)|0;if(d){b=Cf(d)|0;sf(d);if(b){d=zf(b,0)|0;if(d){e=Nh(d)|0;cf(d);if(e){d=c[e+40>>2]|0;if(!d)d=69;else d=yb[d&7](b,a)|0}else d=4}else d=65}else{d=68;b=0}}else{d=65;b=0}sf(b);cf(0);sf(0);return d|0}function Wh(){return 0}function Xh(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;switch(b|0){case 3:case 2:{g=1;break}case 16:{g=20;break}case 301:{g=18;break}case 302:{g=18;break}default:g=b}if((g|0)!=(c[3118]|0))if((g|0)==(c[1880]|0)){b=7520;h=8}else{b=0;d=0;h=11}else{b=12472;h=8}if((h|0)==8)if((a[b+4>>0]&1)==0?(f=c[b+68>>2]|0,(f|0)!=0):0)b=pb[f&63](g,d,e)|0;else{d=1;h=11}if((h|0)==11)if(!e)b=4;else{if(d?(a[b+4>>0]&1)==0:0)b=37736;else b=d?37697:37716;zb[e&1](40871,g,37758,b);b=4}return ((b|0)==0?0:b&65535|16777216)|0}function Yh(a,b,c){a=a|0;b=b|0;c=c|0;return ai(a,b,c)|0}function Zh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+496>>2]|0;if(e|0)vb[e&3]();return pb[c[a+488>>2]&63](a,b,d)|0}function _h(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;bi(a);e=c[a+500>>2]|0;if(e|0)vb[e&3]();return pb[c[a+492>>2]&63](a,b,d)|0}function $h(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=l;l=l+528|0;if((l|0)>=(m|0))$(528);e=h;f=h+504|0;switch(a|0){case 7:{ai(e,37769,16)|0;a=c[e+496>>2]|0;if(a|0)vb[a&3]();pb[c[e+488>>2]&63](e,f,37785)|0;if(!(Tp(f,37801,16)|0)){bi(e);a=c[e+500>>2]|0;if(a|0)vb[a&3]();pb[c[e+492>>2]&63](e,f,f)|0;if(!(Tp(f,37785,16)|0)){if(!b){d=0;l=h;return d|0}a=ci(2)|0;if(!a){a=ci(5)|0;if(!a){d=0;l=h;return d|0}else b=37885}else b=37881}else{a=37817;g=8}}else{a=37849;g=8}if((g|0)==8)b=37889;if(!d){d=50;l=h;return d|0}zb[d&1](37899,7,b,a);d=50;l=h;return d|0}case 8:{ai(e,37906,24)|0;a=c[e+496>>2]|0;if(a|0)vb[a&3]();pb[c[e+488>>2]&63](e,f,37930)|0;if(!(Tp(f,37946,16)|0)){bi(e);a=c[e+500>>2]|0;if(a|0)vb[a&3]();pb[c[e+492>>2]&63](e,f,f)|0;if(!(Tp(f,37930,16)|0)){d=0;l=h;return d|0}else a=37962}else a=37994;if(!d){d=50;l=h;return d|0}zb[d&1](37899,8,37889,a);d=50;l=h;return d|0}case 9:{ai(e,38026,32)|0;a=c[e+496>>2]|0;if(a|0)vb[a&3]();pb[c[e+488>>2]&63](e,f,38058)|0;if(!(Tp(f,38074,16)|0)){bi(e);a=c[e+500>>2]|0;if(a|0)vb[a&3]();pb[c[e+492>>2]&63](e,f,f)|0;if(!(Tp(f,38058,16)|0)){d=0;l=h;return d|0}else a=38090}else a=38122;if(!d){d=50;l=h;return d|0}zb[d&1](37899,9,37889,a);d=50;l=h;return d|0}default:{d=12;l=h;return d|0}}return 0}function ai(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;K=l;l=l+528|0;if((l|0)>=(m|0))$(528);j=K+504|0;J=K;h=K+512|0;I=gg()|0;a:do if(!(c[17616]|I)){c[17616]=1;ai(J,37769,16)|0;g=c[J+496>>2]|0;if(g|0)vb[g&3]();pb[c[J+488>>2]&63](J,h,37785)|0;do if(!(Tp(h,37801,16)|0)){bi(J);g=c[J+500>>2]|0;if(g|0)vb[g&3]();pb[c[J+492>>2]&63](J,h,h)|0;if(!(Tp(h,37785,16)|0)){ai(J,37906,24)|0;g=c[J+496>>2]|0;if(g|0)vb[g&3]();pb[c[J+488>>2]&63](J,h,37930)|0;if(!(Tp(h,37946,16)|0)){bi(J);g=c[J+500>>2]|0;if(g|0)vb[g&3]();pb[c[J+492>>2]&63](J,h,h)|0;if(!(Tp(h,37930,16)|0)){ai(J,38026,32)|0;g=c[J+496>>2]|0;if(g|0)vb[g&3]();pb[c[J+488>>2]&63](J,h,38058)|0;if(!(Tp(h,38074,16)|0)){bi(J);g=c[J+500>>2]|0;if(g|0)vb[g&3]();pb[c[J+492>>2]&63](J,h,h)|0;if(!(Tp(h,38058,16)|0)){g=ym(37765,1,2,4,9,16,504)|0;if(g|0){i=25;break}g=wm(37765,1,2,3,10,16,504)|0;if(g|0){i=25;break}g=xm(37765,1,2,2,10,16,504)|0;c[17617]=g;if(!g)break a;else break}else g=38090}else g=38122;i=25;break}else g=37962}else g=37994;i=25}else{g=37817;i=8}}else{g=37849;i=8}while(0);if((i|0)==8)i=25;if((i|0)==25)c[17617]=g;c[j>>2]=g;Le(43455,j);i=28}else i=28;while(0);if((i|0)==28?c[17617]|0:0){J=50;l=K;return J|0}switch(f|0){case 16:{h=10;I=4;break}case 24:{h=12;I=6;break}case 32:{h=14;I=8;break}default:{J=44;l=K;return J|0}}c[b+480>>2]=h;g=b+484|0;a[g>>0]=a[g>>0]&-2;c[b+488>>2]=29;c[b+492>>2]=30;c[b+496>>2]=1;c[b+500>>2]=2;g=0;do{a[(g&3)+(J+(g>>2<<2))>>0]=a[e+g>>0]|0;g=g+1|0}while((g|0)!=(f|0));j=I+-1|0;H=J+32|0;g=j;while(1){c[H+(g<<2)>>2]=c[J+(g<<2)>>2];if((g|0)>0)g=g+-1|0;else break}G=h|1;h=0;e=0;g=0;do{if((g|0)<(I|0)&(h|0)<4){E=g-I|0;F=h+-4|0;cr(b+((e<<4)+(h<<2))|0,H+(g<<2)|0,S(E>>>0>F>>>0?E:F,-4)|0)|0;do{g=g+1|0;h=h+1|0}while((g|0)<(I|0)&(h|0)<4)}i=(h|0)==4;e=(i&1)+e|0;h=i?0:h;i=(e|0)<(G|0)}while((g|0)<(I|0)&i);if(i){B=H+(j<<2)+1|0;C=H+(j<<2)+2|0;D=H+1|0;E=H+(j<<2)+3|0;F=H+2|0;o=H+(j<<2)|0;p=H+3|0;q=(I|0)==8;r=I>>>1;y=r+-1|0;s=H+(y<<2)|0;t=H+(r<<2)|0;u=H+(y<<2)+1|0;v=H+(r<<2)+1|0;w=H+(y<<2)+2|0;x=H+(r<<2)+2|0;y=H+(y<<2)+3|0;z=H+(r<<2)+3|0;k=r+1|0;A=k>>>0<8;n=H+(r<<2)|0;f=0;i=e;do{j=c[H>>2]|0;e=j&255^a[4801+((d[B>>0]|0)<<2)>>0];a[H>>0]=e;a[D>>0]=(j&65535)>>>8&255^a[4801+((d[C>>0]|0)<<2)>>0];a[F>>0]=j>>>16&255^a[4801+((d[E>>0]|0)<<2)>>0];a[p>>0]=j>>>24&255^a[4801+((d[o>>0]|0)<<2)>>0];a[H>>0]=e&255^c[7104+(f<<2)>>2];f=f+1|0;if(q){g=1;j=c[H>>2]|0;do{e=H+(g<<2)|0;j=c[e>>2]^j;c[e>>2]=j;g=g+1|0}while((g|0)<(r|0));a[t>>0]=a[t>>0]^a[4801+((d[s>>0]|0)<<2)>>0];a[v>>0]=a[v>>0]^a[4801+((d[u>>0]|0)<<2)>>0];a[x>>0]=a[x>>0]^a[4801+((d[w>>0]|0)<<2)>>0];a[z>>0]=a[z>>0]^a[4801+((d[y>>0]|0)<<2)>>0];if(A){g=k;j=c[n>>2]|0;do{e=H+(g<<2)|0;j=c[e>>2]^j;c[e>>2]=j;g=g+1|0}while((g|0)<8)}}else{g=1;j=c[H>>2]|0;do{e=H+(g<<2)|0;j=c[e>>2]^j;c[e>>2]=j;g=g+1|0}while((g|0)<(I|0))}if((i|0)<(G|0)){g=0;do{if((g|0)<(I|0)&(h|0)<4){j=g-I|0;e=h+-4|0;cr(b+((i<<4)+(h<<2))|0,H+(g<<2)|0,S(j>>>0>e>>>0?j:e,-4)|0)|0;do{g=g+1|0;h=h+1|0}while((g|0)<(I|0)&(h|0)<4)}e=(h|0)==4;i=(e&1)+i|0;h=e?0:h}while((g|0)<(I|0)&(i|0)<(G|0))}}while((i|0)<(G|0))}b=J;c[b>>2]=0;c[b+4>>2]=0;b=J+8|0;c[b>>2]=0;c[b+4>>2]=0;b=J+16|0;c[b>>2]=0;c[b+4>>2]=0;b=J+24|0;c[b>>2]=0;c[b+4>>2]=0;b=J+32|0;c[b>>2]=0;c[b+4>>2]=0;b=J+40|0;c[b>>2]=0;c[b+4>>2]=0;b=J+48|0;c[b>>2]=0;c[b+4>>2]=0;J=J+56|0;c[J>>2]=0;c[J+4>>2]=0;J=0;l=K;return J|0}function bi(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=b+484|0;if(a[h>>0]&1)return;i=b+240|0;c[i>>2]=c[b>>2];c[i+4>>2]=c[b+4>>2];c[b+248>>2]=c[b+8>>2];c[b+252>>2]=c[b+12>>2];g=b+480|0;e=b+16|0;if((c[g>>2]|0)>1){f=1;do{e=c[e>>2]|0;j=c[5824+((d[4801+(e>>>6&1020)>>0]|0)<<2)>>2]|0;k=c[5824+((d[4801+(e>>>14&1020)>>0]|0)<<2)>>2]|0;l=c[5824+((d[4801+(e>>>24<<2)>>0]|0)<<2)>>2]|0;c[i+(f<<4)>>2]=(j<<8|j>>>24)^c[5824+((d[4801+(e<<2&1020)>>0]|0)<<2)>>2]^(k<<16|k>>>16)^(l<<24|l>>>8);l=c[b+(f<<4)+4>>2]|0;k=c[5824+((d[4801+(l>>>6&1020)>>0]|0)<<2)>>2]|0;e=c[5824+((d[4801+(l>>>14&1020)>>0]|0)<<2)>>2]|0;j=c[5824+((d[4801+(l>>>24<<2)>>0]|0)<<2)>>2]|0;c[i+(f<<4)+4>>2]=(k<<8|k>>>24)^c[5824+((d[4801+(l<<2&1020)>>0]|0)<<2)>>2]^(e<<16|e>>>16)^(j<<24|j>>>8);j=c[b+(f<<4)+8>>2]|0;e=c[5824+((d[4801+(j>>>6&1020)>>0]|0)<<2)>>2]|0;l=c[5824+((d[4801+(j>>>14&1020)>>0]|0)<<2)>>2]|0;k=c[5824+((d[4801+(j>>>24<<2)>>0]|0)<<2)>>2]|0;c[i+(f<<4)+8>>2]=(e<<8|e>>>24)^c[5824+((d[4801+(j<<2&1020)>>0]|0)<<2)>>2]^(l<<16|l>>>16)^(k<<24|k>>>8);k=c[b+(f<<4)+12>>2]|0;l=c[5824+((d[4801+(k>>>6&1020)>>0]|0)<<2)>>2]|0;j=c[5824+((d[4801+(k>>>14&1020)>>0]|0)<<2)>>2]|0;e=c[5824+((d[4801+(k>>>24<<2)>>0]|0)<<2)>>2]|0;c[i+(f<<4)+12>>2]=(l<<8|l>>>24)^c[5824+((d[4801+(k<<2&1020)>>0]|0)<<2)>>2]^(j<<16|j>>>16)^(e<<24|e>>>8);f=f+1|0;e=b+(f<<4)|0}while((f|0)<(c[g>>2]|0))}else f=1;c[i+(f<<4)>>2]=c[e>>2];c[i+(f<<4)+4>>2]=c[b+(f<<4)+4>>2];c[i+(f<<4)+8>>2]=c[b+(f<<4)+8>>2];c[i+(f<<4)+12>>2]=c[b+(f<<4)+12>>2];a[h>>0]=a[h>>0]|1;return}function ci(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=h+8|0;f=h+4|0;g=h;c[f>>2]=0;c[g>>2]=0;if((a|0)!=2)if((a|0)==5)d=1;else{xg(0);xg(0);g=38154;l=h;return g|0}else d=0;a=c[4472+(d*164|0)>>2]|0;if(vg(f,7,a,0)|0){xg(c[f>>2]|0);xg(c[g>>2]|0);g=38181;l=h;return g|0}b=(vg(g,7,a,0)|0)==0;a=c[f>>2]|0;if(!b){xg(a);xg(c[g>>2]|0);g=38181;l=h;return g|0}b=4472+(d*164|0)+4|0;if(!(Ag(a,b,16)|0)){b=(Ag(c[g>>2]|0,b,16)|0)==0;a=c[f>>2]|0;if(b){b=4472+(d*164|0)+20|0;if((Bg(a,b,16)|0)==0?(Bg(c[g>>2]|0,b,16)|0)==0:0){a=4472+(d*164|0)+36|0;a:do if(!(yg(c[f>>2]|0,e,16,a,16)|0)){b=4472+(d*164|0)+52|0;b:do if(!(Tp(e,b,16)|0)){c:do if(!(zg(c[g>>2]|0,e,16,b,16)|0)){do if(!(Tp(e,a,16)|0)){a=4472+(d*164|0)+68|0;if(yg(c[f>>2]|0,e,16,a,16)|0)break a;b=4472+(d*164|0)+84|0;if(Tp(e,b,16)|0)break b;if(zg(c[g>>2]|0,e,16,b,16)|0)break c;if(Tp(e,a,16)|0)break;a=4472+(d*164|0)+100|0;if(yg(c[f>>2]|0,e,16,a,16)|0)break a;b=4472+(d*164|0)+116|0;if(Tp(e,b,16)|0)break b;if(zg(c[g>>2]|0,e,16,b,16)|0)break c;if(Tp(e,a,16)|0)break;b=4472+(d*164|0)+132|0;if(yg(c[f>>2]|0,e,16,b,16)|0)break a;a=4472+(d*164|0)+148|0;if(Tp(e,a,16)|0)break b;if(zg(c[g>>2]|0,e,16,a,16)|0)break c;if(Tp(e,b,16)|0)break;xg(c[f>>2]|0);xg(c[g>>2]|0);g=0;l=h;return g|0}while(0);xg(c[f>>2]|0);xg(c[g>>2]|0);g=38250;l=h;return g|0}while(0);xg(c[f>>2]|0);xg(c[g>>2]|0);g=38234;l=h;return g|0}while(0);xg(c[f>>2]|0);xg(c[g>>2]|0);g=38217;l=h;return g|0}while(0);xg(c[f>>2]|0);xg(c[g>>2]|0);g=38201;l=h;return g|0}xg(c[f>>2]|0);xg(c[g>>2]|0);g=38194;l=h;return g|0}}else a=c[f>>2]|0;xg(a);xg(c[g>>2]|0);g=38186;l=h;return g|0}function di(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;F=l;l=l+16|0;if((l|0)>=(m|0))$(16);E=F;h=c[b+496>>2]|0;if(h|0)vb[h&3]();j=c[b+488>>2]|0;if(!g){d=E;c[d>>2]=0;c[d+4>>2]=0;E=E+8|0;c[E>>2]=0;c[E+4>>2]=0;l=F;return}k=E+4|0;n=E+8|0;o=E+12|0;p=E+1|0;q=E+2|0;r=E+3|0;s=E+4|0;t=s+1|0;u=s+2|0;v=s+3|0;w=E+8|0;x=w+1|0;y=w+2|0;z=w+3|0;A=E+12|0;B=A+1|0;C=A+2|0;D=A+3|0;do{i=pb[j&63](b,E,d)|0;if(!((e|f)&3)){c[e>>2]=c[f>>2]^c[E>>2];c[e+4>>2]=c[f+4>>2]^c[k>>2];c[e+8>>2]=c[f+8>>2]^c[n>>2];c[e+12>>2]=c[f+12>>2]^c[o>>2]}else{a[e>>0]=a[f>>0]^a[E>>0];a[e+1>>0]=a[f+1>>0]^a[p>>0];a[e+2>>0]=a[f+2>>0]^a[q>>0];a[e+3>>0]=a[f+3>>0]^a[r>>0];a[e+4>>0]=a[f+4>>0]^a[s>>0];a[e+5>>0]=a[f+5>>0]^a[t>>0];a[e+6>>0]=a[f+6>>0]^a[u>>0];a[e+7>>0]=a[f+7>>0]^a[v>>0];a[e+8>>0]=a[f+8>>0]^a[w>>0];a[e+9>>0]=a[f+9>>0]^a[x>>0];a[e+10>>0]=a[f+10>>0]^a[y>>0];a[e+11>>0]=a[f+11>>0]^a[z>>0];a[e+12>>0]=a[f+12>>0]^a[A>>0];a[e+13>>0]=a[f+13>>0]^a[B>>0];a[e+14>>0]=a[f+14>>0]^a[C>>0];a[e+15>>0]=a[f+15>>0]^a[D>>0]}e=e+16|0;f=f+16|0;h=16;do{if((h|0)<=0)break;h=h+-1|0;H=d+h|0;G=(a[H>>0]|0)+1<<24>>24;a[H>>0]=G}while(!(G<<24>>24));g=g+-1|0}while((g|0)!=0);H=E;c[H>>2]=0;c[H+4>>2]=0;H=E+8|0;c[H>>2]=0;c[H+4>>2]=0;if(!i){l=F;return}Te(i+16|0);l=F;return}function ei(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0;X=l;l=l+16|0;if((l|0)>=(m|0))$(16);W=X;bi(b);h=c[b+500>>2]|0;if(h|0)vb[h&3]();i=c[b+492>>2]|0;if(!g){d=W;c[d>>2]=0;c[d+4>>2]=0;W=W+8|0;c[W>>2]=0;c[W+4>>2]=0;l=X;return}j=d;k=W+4|0;n=d+4|0;o=W+8|0;p=d+8|0;q=W+12|0;r=d+12|0;s=W+1|0;t=d+1|0;u=W+2|0;v=d+2|0;w=W+3|0;x=d+3|0;y=W+4|0;z=d+4|0;A=W+5|0;B=d+5|0;C=W+6|0;D=d+6|0;E=W+7|0;F=d+7|0;G=W+8|0;H=d+8|0;I=W+9|0;J=d+9|0;K=W+10|0;L=d+10|0;M=W+11|0;N=d+11|0;O=W+12|0;P=d+12|0;Q=W+13|0;R=d+13|0;S=W+14|0;T=d+14|0;U=W+15|0;V=d+15|0;h=g;while(1){g=pb[i&63](b,W,f)|0;if(!((f|j|e)&3)){Y=c[f>>2]|0;c[e>>2]=c[W>>2]^c[d>>2];c[d>>2]=Y;Y=c[f+4>>2]|0;c[e+4>>2]=c[k>>2]^c[n>>2];c[n>>2]=Y;Y=c[f+8>>2]|0;c[e+8>>2]=c[o>>2]^c[p>>2];c[p>>2]=Y;Y=c[f+12>>2]|0;c[e+12>>2]=c[q>>2]^c[r>>2];c[r>>2]=Y}else{Y=a[f>>0]|0;a[e>>0]=a[W>>0]^a[d>>0];a[d>>0]=Y;Y=a[f+1>>0]|0;a[e+1>>0]=a[s>>0]^a[t>>0];a[t>>0]=Y;Y=a[f+2>>0]|0;a[e+2>>0]=a[u>>0]^a[v>>0];a[v>>0]=Y;Y=a[f+3>>0]|0;a[e+3>>0]=a[w>>0]^a[x>>0];a[x>>0]=Y;Y=a[f+4>>0]|0;a[e+4>>0]=a[y>>0]^a[z>>0];a[z>>0]=Y;Y=a[f+5>>0]|0;a[e+5>>0]=a[A>>0]^a[B>>0];a[B>>0]=Y;Y=a[f+6>>0]|0;a[e+6>>0]=a[C>>0]^a[D>>0];a[D>>0]=Y;Y=a[f+7>>0]|0;a[e+7>>0]=a[E>>0]^a[F>>0];a[F>>0]=Y;Y=a[f+8>>0]|0;a[e+8>>0]=a[G>>0]^a[H>>0];a[H>>0]=Y;Y=a[f+9>>0]|0;a[e+9>>0]=a[I>>0]^a[J>>0];a[J>>0]=Y;Y=a[f+10>>0]|0;a[e+10>>0]=a[K>>0]^a[L>>0];a[L>>0]=Y;Y=a[f+11>>0]|0;a[e+11>>0]=a[M>>0]^a[N>>0];a[N>>0]=Y;Y=a[f+12>>0]|0;a[e+12>>0]=a[O>>0]^a[P>>0];a[P>>0]=Y;Y=a[f+13>>0]|0;a[e+13>>0]=a[Q>>0]^a[R>>0];a[R>>0]=Y;Y=a[f+14>>0]|0;a[e+14>>0]=a[S>>0]^a[T>>0];a[T>>0]=Y;Y=a[f+15>>0]|0;a[e+15>>0]=a[U>>0]^a[V>>0];a[V>>0]=Y}h=h+-1|0;if(!h)break;else{e=e+16|0;f=f+16|0}}Y=W;c[Y>>2]=0;c[Y+4>>2]=0;Y=W+8|0;c[Y>>2]=0;c[Y+4>>2]=0;if(!g){l=X;return}Te(g+16|0);l=X;return}function fi(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;h=c[b+496>>2]|0;if(h|0)vb[h&3]();z=c[b+488>>2]|0;if(!g)return;j=d;k=d+4|0;l=d+8|0;m=d+12|0;n=d+1|0;o=d+2|0;p=d+3|0;q=d+5|0;r=d+6|0;s=d+7|0;t=d+9|0;u=d+10|0;v=d+11|0;w=d+13|0;x=d+14|0;y=d+15|0;i=f;h=g;while(1){f=pb[z&63](b,d,d)|0;if(!((e|j|i)&3)){g=c[i>>2]|0;c[e>>2]=c[d>>2]^g;c[d>>2]=g;g=c[i+4>>2]|0;c[e+4>>2]=c[k>>2]^g;c[k>>2]=g;g=c[i+8>>2]|0;c[e+8>>2]=c[l>>2]^g;c[l>>2]=g;g=c[i+12>>2]|0;c[e+12>>2]=c[m>>2]^g;c[m>>2]=g}else{g=a[i>>0]|0;a[e>>0]=a[d>>0]^g;a[d>>0]=g;g=a[i+1>>0]|0;a[e+1>>0]=a[n>>0]^g;a[n>>0]=g;g=a[i+2>>0]|0;a[e+2>>0]=a[o>>0]^g;a[o>>0]=g;g=a[i+3>>0]|0;a[e+3>>0]=a[p>>0]^g;a[p>>0]=g;g=a[i+4>>0]|0;a[e+4>>0]=a[k>>0]^g;a[k>>0]=g;g=a[i+5>>0]|0;a[e+5>>0]=a[q>>0]^g;a[q>>0]=g;g=a[i+6>>0]|0;a[e+6>>0]=a[r>>0]^g;a[r>>0]=g;g=a[i+7>>0]|0;a[e+7>>0]=a[s>>0]^g;a[s>>0]=g;g=a[i+8>>0]|0;a[e+8>>0]=a[l>>0]^g;a[l>>0]=g;g=a[i+9>>0]|0;a[e+9>>0]=a[t>>0]^g;a[t>>0]=g;g=a[i+10>>0]|0;a[e+10>>0]=a[u>>0]^g;a[u>>0]=g;g=a[i+11>>0]|0;a[e+11>>0]=a[v>>0]^g;a[v>>0]=g;g=a[i+12>>0]|0;a[e+12>>0]=a[m>>0]^g;a[m>>0]=g;g=a[i+13>>0]|0;a[e+13>>0]=a[w>>0]^g;a[w>>0]=g;g=a[i+14>>0]|0;a[e+14>>0]=a[x>>0]^g;a[x>>0]=g;g=a[i+15>>0]|0;a[e+15>>0]=a[y>>0]^g;a[y>>0]=g}h=h+-1|0;if(!h)break;else{i=i+16|0;e=e+16|0}}if(!f)return;Te(f+16|0);return}function gi(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;l=c[b+480>>2]|0;p=c[b>>2]^((d[f+2>>0]|0)<<16|(d[f+3>>0]|0)<<24|(d[f+1>>0]|0)<<8|(d[f>>0]|0));q=c[b+4>>2]^((d[f+6>>0]|0)<<16|(d[f+7>>0]|0)<<24|(d[f+5>>0]|0)<<8|(d[f+4>>0]|0));g=c[b+8>>2]^((d[f+10>>0]|0)<<16|(d[f+11>>0]|0)<<24|(d[f+9>>0]|0)<<8|(d[f+8>>0]|0));j=c[b+12>>2]^((d[f+14>>0]|0)<<16|(d[f+15>>0]|0)<<24|(d[f+13>>0]|0)<<8|(d[f+12>>0]|0));k=c[4800+((p>>>8&255)<<2)>>2]|0;s=c[4800+((p>>>16&255)<<2)>>2]|0;r=c[4800+(p>>>24<<2)>>2]|0;o=c[4800+((q>>>8&255)<<2)>>2]|0;m=c[4800+((q>>>16&255)<<2)>>2]|0;t=c[4800+(q>>>24<<2)>>2]|0;i=c[4800+((g>>>8&255)<<2)>>2]|0;n=c[4800+((g>>>16&255)<<2)>>2]|0;h=c[4800+(g>>>24<<2)>>2]|0;f=c[4800+((j>>>8&255)<<2)>>2]|0;f=(t<<24|t>>>8)^(s<<16|s>>>16)^c[4800+((g&255)<<2)>>2]^c[b+24>>2]^(f<<8|f>>>24);g=c[4800+((j>>>16&255)<<2)>>2]|0;g=(r<<24|r>>>8)^c[4800+((q&255)<<2)>>2]^c[b+20>>2]^(i<<8|i>>>24)^(g<<16|g>>>16);i=c[4800+(j>>>24<<2)>>2]|0;i=c[b+16>>2]^c[4800+((p&255)<<2)>>2]^(o<<8|o>>>24)^(n<<16|n>>>16)^(i<<24|i>>>8);j=(m<<16|m>>>16)^(k<<8|k>>>24)^(h<<24|h>>>8)^c[4800+((j&255)<<2)>>2]^c[b+28>>2];h=i&255;if((l|0)>2){k=2;do{t=c[4800+((i>>>8&255)<<2)>>2]|0;w=c[4800+((i>>>16&255)<<2)>>2]|0;m=c[4800+(i>>>24<<2)>>2]|0;x=c[4800+((g>>>8&255)<<2)>>2]|0;q=c[4800+((g>>>16&255)<<2)>>2]|0;p=c[4800+(g>>>24<<2)>>2]|0;u=c[4800+((f>>>8&255)<<2)>>2]|0;z=c[4800+((f>>>16&255)<<2)>>2]|0;s=c[4800+(f>>>24<<2)>>2]|0;y=c[4800+((j>>>8&255)<<2)>>2]|0;y=(p<<24|p>>>8)^(w<<16|w>>>16)^c[4800+((f&255)<<2)>>2]^c[b+(k<<4)+8>>2]^(y<<8|y>>>24);w=c[4800+((j>>>16&255)<<2)>>2]|0;w=(m<<24|m>>>8)^c[4800+((g&255)<<2)>>2]^c[b+(k<<4)+4>>2]^(u<<8|u>>>24)^(w<<16|w>>>16);u=c[4800+(j>>>24<<2)>>2]|0;u=c[b+(k<<4)>>2]^c[4800+(h<<2)>>2]^(x<<8|x>>>24)^(z<<16|z>>>16)^(u<<24|u>>>8);s=(q<<16|q>>>16)^(t<<8|t>>>24)^(s<<24|s>>>8)^c[4800+((j&255)<<2)>>2]^c[b+(k<<4)+12>>2];t=k|1;q=c[4800+((u>>>8&255)<<2)>>2]|0;z=c[4800+((u>>>16&255)<<2)>>2]|0;x=c[4800+(u>>>24<<2)>>2]|0;m=c[4800+((w>>>8&255)<<2)>>2]|0;p=c[4800+((w>>>16&255)<<2)>>2]|0;A=c[4800+(w>>>24<<2)>>2]|0;v=c[4800+((y>>>8&255)<<2)>>2]|0;n=c[4800+((y>>>16&255)<<2)>>2]|0;r=c[4800+(y>>>24<<2)>>2]|0;o=c[4800+((s>>>8&255)<<2)>>2]|0;f=(A<<24|A>>>8)^(z<<16|z>>>16)^c[4800+((y&255)<<2)>>2]^c[b+(t<<4)+8>>2]^(o<<8|o>>>24);o=c[4800+((s>>>16&255)<<2)>>2]|0;g=(x<<24|x>>>8)^c[4800+((w&255)<<2)>>2]^c[b+(t<<4)+4>>2]^(v<<8|v>>>24)^(o<<16|o>>>16);o=c[4800+(s>>>24<<2)>>2]|0;i=c[b+(t<<4)>>2]^c[4800+((u&255)<<2)>>2]^(m<<8|m>>>24)^(n<<16|n>>>16)^(o<<24|o>>>8);j=(p<<16|p>>>16)^(q<<8|q>>>24)^(r<<24|r>>>8)^c[4800+((s&255)<<2)>>2]^c[b+(t<<4)+12>>2];k=k+2|0;h=i&255}while((k|0)<(l|0));k=l+1&-2}else k=2;r=c[b+(k<<4)>>2]|0;u=r^(d[4801+(h<<2)>>0]|0);t=(d[4801+(g>>>6&1020)>>0]|0)<<8^r;v=c[b+(k<<4)+4>>2]|0;x=v^(d[4801+(g<<2&1020)>>0]|0|(d[4801+(i>>>24<<2)>>0]|0)<<24);w=(d[4801+(f>>>6&1020)>>0]|0)<<8^v;s=(d[4801+(f>>>14&1020)>>0]|0)<<16^r;z=c[b+(k<<4)+8>>2]^((d[4801+(g>>>24<<2)>>0]|0)<<24|(d[4801+(i>>>14&1020)>>0]|0)<<16|(d[4801+(f<<2&1020)>>0]|0));y=(d[4801+(j>>>6&1020)>>0]|0)<<8^z;v=(d[4801+(j>>>14&1020)>>0]|0)<<16^v;A=c[b+(k<<4)+12>>2]^((d[4801+(g>>>14&1020)>>0]|0)<<16|(d[4801+(i>>>6&1020)>>0]|0)<<8|(d[4801+(f>>>24<<2)>>0]|0)<<24|(d[4801+(j<<2&1020)>>0]|0));a[e+3>>0]=((d[4801+(j>>>24<<2)>>0]|0)<<24^r)>>>24;a[e+2>>0]=s>>>16;a[e+1>>0]=t>>>8;a[e>>0]=u;a[e+7>>0]=x>>>24;a[e+6>>0]=v>>>16;a[e+5>>0]=w>>>8;a[e+4>>0]=x;a[e+11>>0]=z>>>24;a[e+10>>0]=z>>>16;a[e+9>>0]=y>>>8;a[e+8>>0]=z;a[e+15>>0]=A>>>24;a[e+14>>0]=A>>>16;a[e+13>>0]=A>>>8;a[e+12>>0]=A;return 64}function hi(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;i=c[b+480>>2]|0;p=b+240|0;m=i;h=c[p+(i<<4)>>2]^((d[f+2>>0]|0)<<16|(d[f+3>>0]|0)<<24|(d[f+1>>0]|0)<<8|(d[f>>0]|0));n=c[p+(i<<4)+12>>2]^((d[f+14>>0]|0)<<16|(d[f+15>>0]|0)<<24|(d[f+13>>0]|0)<<8|(d[f+12>>0]|0));o=c[p+(i<<4)+4>>2]^((d[f+6>>0]|0)<<16|(d[f+7>>0]|0)<<24|(d[f+5>>0]|0)<<8|(d[f+4>>0]|0));i=c[p+(i<<4)+8>>2]^((d[f+10>>0]|0)<<16|(d[f+11>>0]|0)<<24|(d[f+9>>0]|0)<<8|(d[f+8>>0]|0));while(1){g=m+-1|0;k=c[5824+((h&255)<<2)>>2]|0;l=c[5824+((h>>>8&255)<<2)>>2]|0;l=l<<8|l>>>24;j=c[5824+((h>>>16&255)<<2)>>2]|0;j=j<<16|j>>>16;f=c[5824+(h>>>24<<2)>>2]|0;f=f<<24|f>>>8;if((g|0)<=1)break;w=c[5824+((o>>>8&255)<<2)>>2]|0;s=c[5824+((o>>>16&255)<<2)>>2]|0;z=c[5824+(o>>>24<<2)>>2]|0;u=c[5824+((i>>>8&255)<<2)>>2]|0;t=c[5824+((i>>>16&255)<<2)>>2]|0;x=c[5824+(i>>>24<<2)>>2]|0;A=c[5824+((n>>>8&255)<<2)>>2]|0;A=c[p+(g<<4)>>2]^k^(z<<24|z>>>8)^(t<<16|t>>>16)^(A<<8|A>>>24);t=c[5824+((n>>>16&255)<<2)>>2]|0;t=c[5824+((o&255)<<2)>>2]^l^c[p+(g<<4)+4>>2]^(x<<24|x>>>8)^(t<<16|t>>>16);k=c[5824+(n>>>24<<2)>>2]|0;j=(w<<8|w>>>24)^j^c[5824+((i&255)<<2)>>2]^c[p+(g<<4)+8>>2]^(k<<24|k>>>8);u=(s<<16|s>>>16)^f^(u<<8|u>>>24)^c[5824+((n&255)<<2)>>2]^c[p+(g<<4)+12>>2];k=m+-2|0;s=c[5824+((A>>>8&255)<<2)>>2]|0;g=c[5824+((A>>>16&255)<<2)>>2]|0;w=c[5824+(A>>>24<<2)>>2]|0;f=c[5824+((t>>>8&255)<<2)>>2]|0;x=c[5824+((t>>>16&255)<<2)>>2]|0;z=c[5824+(t>>>24<<2)>>2]|0;v=c[5824+((j>>>8&255)<<2)>>2]|0;y=c[5824+((j>>>16&255)<<2)>>2]|0;r=c[5824+(j>>>24<<2)>>2]|0;h=c[5824+((u>>>8&255)<<2)>>2]|0;q=c[5824+((u>>>16&255)<<2)>>2]|0;l=c[5824+(u>>>24<<2)>>2]|0;m=k;h=c[p+(k<<4)>>2]^c[5824+((A&255)<<2)>>2]^(z<<24|z>>>8)^(y<<16|y>>>16)^(h<<8|h>>>24);n=(x<<16|x>>>16)^(w<<24|w>>>8)^(v<<8|v>>>24)^c[5824+((u&255)<<2)>>2]^c[p+(k<<4)+12>>2];o=c[5824+((t&255)<<2)>>2]^(s<<8|s>>>24)^c[p+(k<<4)+4>>2]^(r<<24|r>>>8)^(q<<16|q>>>16);i=(f<<8|f>>>24)^(g<<16|g>>>16)^c[5824+((j&255)<<2)>>2]^c[p+(k<<4)+8>>2]^(l<<24|l>>>8)}u=c[5824+((o>>>8&255)<<2)>>2]|0;r=c[5824+((o>>>16&255)<<2)>>2]|0;x=c[5824+(o>>>24<<2)>>2]|0;A=c[5824+((i>>>8&255)<<2)>>2]|0;q=c[5824+((i>>>16&255)<<2)>>2]|0;w=c[5824+(i>>>24<<2)>>2]|0;m=c[5824+((n>>>8&255)<<2)>>2]|0;m=c[b+256>>2]^k^(x<<24|x>>>8)^(q<<16|q>>>16)^(m<<8|m>>>24);q=c[5824+((n>>>16&255)<<2)>>2]|0;q=c[5824+((o&255)<<2)>>2]^l^c[b+260>>2]^(w<<24|w>>>8)^(q<<16|q>>>16);o=c[5824+(n>>>24<<2)>>2]|0;o=(u<<8|u>>>24)^j^c[5824+((i&255)<<2)>>2]^c[b+264>>2]^(o<<24|o>>>8);A=(r<<16|r>>>16)^f^(A<<8|A>>>24)^c[5824+((n&255)<<2)>>2]^c[b+268>>2];r=c[p>>2]|0;u=r^(d[6848+(m&255)>>0]|0);w=c[p+4>>2]|0;x=w^(d[6848+(q&255)>>0]|0|(d[6848+(m>>>8&255)>>0]|0)<<8);s=(d[6848+(o>>>16&255)>>0]|0)<<16^r;v=(d[6848+(o>>>24)>>0]|0)<<24^w;z=c[b+248>>2]^((d[6848+(q>>>8&255)>>0]|0)<<8|(d[6848+(m>>>16&255)>>0]|0)<<16|(d[6848+(o&255)>>0]|0));t=(d[6848+(A>>>8&255)>>0]|0)<<8^r;w=(d[6848+(A>>>16&255)>>0]|0)<<16^w;y=(d[6848+(A>>>24)>>0]|0)<<24^z;A=c[b+252>>2]^((d[6848+(q>>>16&255)>>0]|0)<<16|(d[6848+(m>>>24)>>0]|0)<<24|(d[6848+(o>>>8&255)>>0]|0)<<8|(d[6848+(A&255)>>0]|0));a[e+3>>0]=((d[6848+(q>>>24)>>0]|0)<<24^r)>>>24;a[e+2>>0]=s>>>16;a[e+1>>0]=t>>>8;a[e>>0]=u;a[e+7>>0]=v>>>24;a[e+6>>0]=w>>>16;a[e+5>>0]=x>>>8;a[e+4>>0]=x;a[e+11>>0]=y>>>24;a[e+10>>0]=z>>>16;a[e+9>>0]=z>>>8;a[e+8>>0]=z;a[e+15>>0]=A>>>24;a[e+14>>0]=A>>>16;a[e+13>>0]=A>>>8;a[e+12>>0]=A;return 64}function ii(){return}function ji(){return}function ki(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;h=c[b+496>>2]|0;if(h|0)vb[h&3]();B=c[b+488>>2]|0;if(!g)return;i=d;j=d+4|0;k=d+8|0;l=d+12|0;m=d+1|0;n=d+2|0;o=d+3|0;p=d+4|0;q=d+5|0;r=d+6|0;s=d+7|0;t=d+8|0;u=d+9|0;v=d+10|0;w=d+11|0;x=d+12|0;y=d+13|0;z=d+14|0;A=d+15|0;h=g;while(1){g=pb[B&63](b,d,d)|0;if(!((e|i|f)&3)){C=c[d>>2]^c[f>>2];c[d>>2]=C;c[e>>2]=C;C=c[j>>2]^c[f+4>>2];c[j>>2]=C;c[e+4>>2]=C;C=c[k>>2]^c[f+8>>2];c[k>>2]=C;c[e+8>>2]=C;C=c[l>>2]^c[f+12>>2];c[l>>2]=C;c[e+12>>2]=C}else{C=a[d>>0]^a[f>>0];a[d>>0]=C;a[e>>0]=C;C=a[m>>0]^a[f+1>>0];a[m>>0]=C;a[e+1>>0]=C;C=a[n>>0]^a[f+2>>0];a[n>>0]=C;a[e+2>>0]=C;C=a[o>>0]^a[f+3>>0];a[o>>0]=C;a[e+3>>0]=C;C=a[p>>0]^a[f+4>>0];a[p>>0]=C;a[e+4>>0]=C;C=a[q>>0]^a[f+5>>0];a[q>>0]=C;a[e+5>>0]=C;C=a[r>>0]^a[f+6>>0];a[r>>0]=C;a[e+6>>0]=C;C=a[s>>0]^a[f+7>>0];a[s>>0]=C;a[e+7>>0]=C;C=a[t>>0]^a[f+8>>0];a[t>>0]=C;a[e+8>>0]=C;C=a[u>>0]^a[f+9>>0];a[u>>0]=C;a[e+9>>0]=C;C=a[v>>0]^a[f+10>>0];a[v>>0]=C;a[e+10>>0]=C;C=a[w>>0]^a[f+11>>0];a[w>>0]=C;a[e+11>>0]=C;C=a[x>>0]^a[f+12>>0];a[x>>0]=C;a[e+12>>0]=C;C=a[y>>0]^a[f+13>>0];a[y>>0]=C;a[e+13>>0]=C;C=a[z>>0]^a[f+14>>0];a[z>>0]=C;a[e+14>>0]=C;C=a[A>>0]^a[f+15>>0];a[A>>0]=C;a[e+15>>0]=C}h=h+-1|0;if(!h)break;else{f=f+16|0;e=e+16|0}}if(!g)return;Te(g+16|0);return}function li(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;i=c[b+496>>2]|0;if(i|0)vb[i&3]();C=c[b+488>>2]|0;if(!g)return;if(!h){k=(g<<4)+-16|0;i=d;j=e;h=g;while(1){if(!((f|j|i)&3)){c[j>>2]=c[i>>2]^c[f>>2];c[j+4>>2]=c[i+4>>2]^c[f+4>>2];c[j+8>>2]=c[i+8>>2]^c[f+8>>2];c[j+12>>2]=c[i+12>>2]^c[f+12>>2]}else{a[j>>0]=a[i>>0]^a[f>>0];a[j+1>>0]=a[i+1>>0]^a[f+1>>0];a[j+2>>0]=a[i+2>>0]^a[f+2>>0];a[j+3>>0]=a[i+3>>0]^a[f+3>>0];a[j+4>>0]=a[i+4>>0]^a[f+4>>0];a[j+5>>0]=a[i+5>>0]^a[f+5>>0];a[j+6>>0]=a[i+6>>0]^a[f+6>>0];a[j+7>>0]=a[i+7>>0]^a[f+7>>0];a[j+8>>0]=a[i+8>>0]^a[f+8>>0];a[j+9>>0]=a[i+9>>0]^a[f+9>>0];a[j+10>>0]=a[i+10>>0]^a[f+10>>0];a[j+11>>0]=a[i+11>>0]^a[f+11>>0];a[j+12>>0]=a[i+12>>0]^a[f+12>>0];a[j+13>>0]=a[i+13>>0]^a[f+13>>0];a[j+14>>0]=a[i+14>>0]^a[f+14>>0];a[j+15>>0]=a[i+15>>0]^a[f+15>>0]}i=pb[C&63](b,j,j)|0;h=h+-1|0;if(!h)break;else{i=j;f=f+16|0;j=j+16|0}}e=e+k|0}else{j=e;k=e+4|0;l=e+8|0;m=e+12|0;n=e+1|0;o=e+2|0;p=e+3|0;q=e+4|0;r=e+5|0;s=e+6|0;t=e+7|0;u=e+8|0;v=e+9|0;w=e+10|0;x=e+11|0;y=e+12|0;z=e+13|0;A=e+14|0;B=e+15|0;i=d;h=g;while(1){if(!((f|j|i)&3)){c[e>>2]=c[i>>2]^c[f>>2];c[k>>2]=c[i+4>>2]^c[f+4>>2];c[l>>2]=c[i+8>>2]^c[f+8>>2];c[m>>2]=c[i+12>>2]^c[f+12>>2]}else{a[e>>0]=a[i>>0]^a[f>>0];a[n>>0]=a[i+1>>0]^a[f+1>>0];a[o>>0]=a[i+2>>0]^a[f+2>>0];a[p>>0]=a[i+3>>0]^a[f+3>>0];a[q>>0]=a[i+4>>0]^a[f+4>>0];a[r>>0]=a[i+5>>0]^a[f+5>>0];a[s>>0]=a[i+6>>0]^a[f+6>>0];a[t>>0]=a[i+7>>0]^a[f+7>>0];a[u>>0]=a[i+8>>0]^a[f+8>>0];a[v>>0]=a[i+9>>0]^a[f+9>>0];a[w>>0]=a[i+10>>0]^a[f+10>>0];a[x>>0]=a[i+11>>0]^a[f+11>>0];a[y>>0]=a[i+12>>0]^a[f+12>>0];a[z>>0]=a[i+13>>0]^a[f+13>>0];a[A>>0]=a[i+14>>0]^a[f+14>>0];a[B>>0]=a[i+15>>0]^a[f+15>>0]}i=pb[C&63](b,e,e)|0;h=h+-1|0;if(!h)break;else{i=e;f=f+16|0}}}do if((e|0)!=(d|0))if(!((e|d)&3)){c[d>>2]=c[e>>2];c[d+4>>2]=c[e+4>>2];c[d+8>>2]=c[e+8>>2];c[d+12>>2]=c[e+12>>2];break}else{a[d>>0]=a[e>>0]|0;a[d+1>>0]=a[e+1>>0]|0;a[d+2>>0]=a[e+2>>0]|0;a[d+3>>0]=a[e+3>>0]|0;a[d+4>>0]=a[e+4>>0]|0;a[d+5>>0]=a[e+5>>0]|0;a[d+6>>0]=a[e+6>>0]|0;a[d+7>>0]=a[e+7>>0]|0;a[d+8>>0]=a[e+8>>0]|0;a[d+9>>0]=a[e+9>>0]|0;a[d+10>>0]=a[e+10>>0]|0;a[d+11>>0]=a[e+11>>0]|0;a[d+12>>0]=a[e+12>>0]|0;a[d+13>>0]=a[e+13>>0]|0;a[d+14>>0]=a[e+14>>0]|0;a[d+15>>0]=a[e+15>>0]|0;break}while(0);if(!i)return;Te(i+16|0);return} +function Mk(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0;fa=l;l=l+208|0;if((l|0)>=(m|0))$(208);U=fa+136|0;T=fa+72|0;R=fa+40|0;H=fa+20|0;I=fa;v=c[e+4>>2]|0;V=c[f+4>>2]|0;r=V<<1;W=c[f+8>>2]|0;g=v<<5;if((g|0)<=512)if((g|0)<=256)if((g|0)>128)D=3;else D=(g|0)>64?2:1;else D=4;else D=5;u=c[e+12>>2]&1;S=(u|0)!=0;s=c[f+12>>2]&1;q=(s|0)!=0;if(!b)k=0;else k=(c[b+12>>2]&1|0)!=0;n=k&1;Z=a+16|0;g=c[Z>>2]|0;o=c[e+16>>2]|0;if(!V)Ve();if(!v){if((V|0)==1){ea=(c[c[f+16>>2]>>2]|0)!=1;c[a+4>>2]=ea&1;if(ea)G=13}else{c[a+4>>2]=1;G=13}if((G|0)==13){if((c[a>>2]|0)<1){ql(a,1);g=c[Z>>2]|0}c[g>>2]=1}c[a+8>>2]=0;l=fa;return}X=q?V:0;Y=ml(V,s)|0;f=c[f+16>>2]|0;Q=c[f+(V+-1<<2)>>2]|0;P=Q>>>0<65536?(Q>>>0<256?0:8):Q>>>0<16777216?16:24;P=32-(d[45555+(Q>>>P)>>0]|0)-P|0;Q=(P|0)!=0;if(!Q){if((V|0)>0){e=0;do{c[Y+(e<<2)>>2]=c[f+(e<<2)>>2];e=e+1|0}while((e|0)!=(V|0))}}else _k(Y,f,V,P)|0;i=c[b+4>>2]|0;p=c[b+8>>2]|0;a:do if((i|0)>(V|0)){j=i+1|0;h=k?j:0;j=ml(j,n)|0;if((i|0)>0){f=c[b+16>>2]|0;e=0;do{c[j+(e<<2)>>2]=c[f+(e<<2)>>2];e=e+1|0}while((e|0)!=(i|0))}Yk(j+(V<<2)|0,0,j,i,Y,V)|0;i=V;while(1){if((i|0)<=0){f=j;b=j;e=i;G=29;break a}e=i+-1|0;if(!(c[j+(e<<2)>>2]|0))i=e;else{f=j;b=j;G=31;break}}}else{f=c[b+16>>2]|0;b=0;h=0;e=i;G=29}while(0);if((G|0)==29)if(!e){c[a+4>>2]=0;c[a+8>>2]=0;_=0;aa=0;ba=0;ca=0;da=b;ea=h}else{i=e;G=31}do if((G|0)==31){if((g|0)==(f|0)){if(b|0)Ie(45811,45822,515,45832);b=k?i:0;f=ml(i,n)|0;if((i|0)>0){e=0;do{c[f+(e<<2)>>2]=c[g+(e<<2)>>2];e=e+1|0}while((e|0)!=(i|0));t=f;O=f;N=b}else{t=f;O=f;N=b}}else{t=f;O=b;N=h}if((g|0)==(o|0)){b=S?v:0;f=ml(v,u)|0;if((v|0)>0){e=0;do{c[f+(e<<2)>>2]=c[g+(e<<2)>>2];e=e+1|0}while((e|0)!=(v|0));z=f;M=f;L=b}else{z=f;M=f;L=b}}else{z=o;M=0;L=0}if((c[a>>2]|0)<(r|0)){ql(a,r);g=c[Z>>2]|0}J=r+2|0;K=q?J:0;J=ml(J,s)|0;c[R>>2]=0;c[R+4>>2]=0;c[R+8>>2]=0;c[R+12>>2]=0;c[R+16>>2]=0;c[R+20>>2]=0;c[R+24>>2]=0;F=(p|0)!=0&(c[z>>2]&1|0)!=0;if(D>>>0>1){if((i|0)<16)el(J,t,i,t,i)|0;else dl(J,t,i,t,i,R);e=i<<1;if((e|0)>(V|0)){Yk(J+(V<<2)|0,0,J,e,Y,V)|0;e=V}}else e=0;b=ml(i,u)|0;c[U>>2]=b;c[T>>2]=i;p=(i|0)>0;if(p){f=0;do{c[b+(f<<2)>>2]=c[t+(f<<2)>>2];f=f+1|0}while((f|0)!=(i|0))}q=D+-1|0;E=1<<q;if((E|0)>1){n=(e|0)<16;o=g+(V<<2)|0;k=1;h=i;f=i;do{if((e|0)<(f|0)){if(n)el(g,b,f,J,e)|0;else dl(g,b,f,J,e,R);f=f+e|0;if((f|0)>(V|0)){Yk(o,0,g,f,Y,V)|0;f=V}}else{if((f|0)<16)el(g,J,e,b,f)|0;else dl(g,J,e,b,f,R);f=f+e|0;if((f|0)>(V|0)){Yk(o,0,g,f,Y,V)|0;f=V}}b=ml(f,u)|0;c[U+(k<<2)>>2]=b;c[T+(k<<2)>>2]=f;h=(h|0)<(f|0)?f:h;if((f|0)>0){j=0;do{c[b+(j<<2)>>2]=c[g+(j<<2)>>2];j=j+1|0}while((j|0)!=(f|0))}k=k+1|0}while((k|0)!=(E|0));C=h}else C=i;B=ml(C,u)|0;if((C|0)>0)Yq(B|0,0,C<<2|0)|0;j=v+-1|0;if((D|0)!=1)if((V|0)>0){Yq(g|0,0,V<<2|0)|0;e=V}else e=V;else e=i;if(p){f=0;do{c[g+(f<<2)>>2]=c[t+(f<<2)>>2];f=f+1|0}while((f|0)!=(i|0))}b=c[z+(j<<2)>>2]|0;i=b>>>0<65536?(b>>>0<256?0:8):b>>>0<16777216?16:24;i=32-(d[45555+(b>>>i)>>0]|0)-i|0;y=32-D|0;A=(q|0)==31;q=H+4|0;r=I+4|0;s=I+8|0;t=H+8|0;u=I+12|0;v=H+12|0;w=H+16|0;x=I+16|0;b=b<<i<<1;i=31-i|0;h=J;f=0;b:while(1){if(!b){b=j;while(1){f=i+f|0;j=b+-1|0;if((b|0)<1){u=0;b=0;break b}b=c[z+(j<<2)>>2]|0;if(!b){i=32;b=j}else{i=32;break}}}p=b>>>0<65536?(b>>>0<256?0:8):b>>>0<16777216?16:24;p=32-p-(d[45555+(b>>>p)>>0]|0)|0;b=b<<p;n=i-p|0;p=p+f|0;if((n|0)<(D|0)){o=j+-1|0;if((j|0)<1){G=94;break}j=c[z+(o<<2)>>2]|0;i=n+y|0;k=j>>>i|b>>>y;b=j<<D-n}else{k=b>>>y;b=b<<D;i=n-D|0;o=j}n=k&0-k;f=n>>>0<65536?(n>>>0<256?0:8):n>>>0<16777216?16:24;f=(d[45555+(n>>>f)>>0]|0)+-1+f|0;n=k>>>f>>>1;j=p+D-f|0;if(!j)k=h;else while(1){if((e|0)<16)el(h,g,e,g,e)|0;else dl(h,g,e,g,e,R);e=e<<1;if((e|0)>(V|0)){Yk(h+(V<<2)|0,0,h,e,Y,V)|0;e=V}j=j+-1|0;if(!j){k=g;g=h;break}else{p=g;g=h;h=p}}do if(A){h=0;G=90}else{j=0;h=0;do{p=c[T+(j<<2)>>2]|0;c[q>>2]=p;c[H>>2]=p;c[r>>2]=p;c[I>>2]=p;c[s>>2]=0;c[t>>2]=0;c[u>>2]=0;c[v>>2]=0;c[w>>2]=B;c[x>>2]=c[U+(j<<2)>>2];ga=(j|0)==(n|0);Dl(H,I,ga&1)|0;h=(ga?p:0)|h;j=j+1|0}while((j|0)<(E|0));if((h|0)<16){G=90;break}dl(k,g,e,B,h,R)}while(0);if((G|0)==90){G=0;el(k,g,e,B,h)|0}e=h+e|0;if((e|0)<=(V|0)){h=g;g=k;j=o;continue}Yk(k+(V<<2)|0,0,k,e,Y,V)|0;h=g;g=k;j=o;e=V}if((G|0)==94){b=b>>>(32-n|0);if(!n){u=b;b=0;f=p}else{u=b&0-b;ga=u>>>0<65536?(u>>>0<256?0:8):u>>>0<16777216?16:24;ga=ga+-1+(d[45555+(u>>>ga)>>0]|0)|0;u=b>>>ga;b=ga;f=i+f-ga|0}}if(!f)t=h;else while(1){f=f+-1|0;if((e|0)<16)el(h,g,e,g,e)|0;else dl(h,g,e,g,e,R);e=e<<1;if((e|0)>(V|0)){Yk(h+(V<<2)|0,0,h,e,Y,V)|0;e=V}if(!f){t=g;g=h;break}else{ga=g;g=h;h=ga}}do if(u){do if(A){f=0;G=108}else{j=H+4|0;k=I+4|0;n=I+8|0;o=H+8|0;p=I+12|0;q=H+12|0;r=H+16|0;s=I+16|0;i=u>>>1;h=0;f=0;do{ga=c[T+(h<<2)>>2]|0;c[j>>2]=ga;c[H>>2]=ga;c[k>>2]=ga;c[I>>2]=ga;c[n>>2]=0;c[o>>2]=0;c[p>>2]=0;c[q>>2]=0;c[r>>2]=B;c[s>>2]=c[U+(h<<2)>>2];D=(h|0)==(i|0);Dl(H,I,D&1)|0;f=(D?ga:0)|f;h=h+1|0}while((h|0)<(E|0));if((f|0)<16){G=108;break}dl(t,g,e,B,f,R)}while(0);if((G|0)==108)el(t,g,e,B,f)|0;e=f+e|0;if((e|0)>(V|0)){Yk(t+(V<<2)|0,0,t,e,Y,V)|0;e=V}if(!b){g=t;break}else f=t;while(1){if((e|0)<16)el(g,f,e,f,e)|0;else dl(g,f,e,f,e,R);e=e<<1;if((e|0)>(V|0)){Yk(g+(V<<2)|0,0,g,e,Y,V)|0;e=V}b=b+-1|0;if(!b)break;else{ga=f;f=g;g=ga}}}while(0);b=c[Z>>2]|0;do if(Q){f=_k(b,g,e,P)|0;g=c[Z>>2]|0;if(!f)break;c[g+(e<<2)>>2]=f;e=e+1|0}else{if((b|0)==(g|0))break;if((e|0)>0)f=0;else{g=b;break}do{c[b+(f<<2)>>2]=c[g+(f<<2)>>2];f=f+1|0}while((f|0)!=(e|0));g=b}while(0);if((e|0)>=(V|0)){Yk(g+(V<<2)|0,0,g,e,Y,V)|0;e=V}if(Q)gl(g,g,e,P)|0;while(1){if((e|0)<=0)break;f=e+-1|0;if(!(c[g+(f<<2)>>2]|0))e=f;else break}fl(R);if(!A)if(S){f=0;do{ol(c[U+(f<<2)>>2]|0,c[T+(f<<2)>>2]|0);f=f+1|0}while((f|0)<(E|0))}else{f=0;do{ol(c[U+(f<<2)>>2]|0,0);f=f+1|0}while((f|0)<(E|0))}ol(B,S?C:0);c:do if(F&(e|0)!=0){if(Q)gl(Y,Y,V,P)|0;f=hl(g,Y,g,e)|0;b=V-e|0;d:do if(!b)e=V;else{T=g+(e<<2)|0;ga=Y+(e<<2)|0;e=ga+4|0;ga=c[ga>>2]|0;U=ga-f|0;f=T+4|0;c[T>>2]=U;if(U>>>0>ga>>>0)while(1){b=b+-1|0;if(!b){e=V;break d}i=e+4|0;ga=c[e>>2]|0;h=f+4|0;c[f>>2]=ga+-1;if(!ga){e=i;f=h}else{f=h;break}}else i=e;if((f|0)==(i|0)){e=V;break}h=b+-1|0;if((b|0)>1)e=0;else{e=V;break}do{c[f+(e<<2)>>2]=c[i+(e<<2)>>2];e=e+1|0}while((e|0)!=(h|0));e=V}while(0);while(1){if((e|0)<=0){f=W;break c}f=e+-1|0;if(!(c[g+(f<<2)>>2]|0))e=f;else{f=W;break}}}else f=0;while(0);if((c[Z>>2]|0)==(g|0)){c[a+4>>2]=e;c[a+8>>2]=f;_=J;aa=K;ba=M;ca=L;da=O;ea=N;break}else Ie(45847,45822,786,45832)}while(0);if(Y|0)ol(Y,X);if(da|0)ol(da,ea);if(ba|0)ol(ba,ca);if(!_){l=fa;return}ol(_,aa);l=fa;return}function Nk(a){a=a|0;var b=0,e=0,f=0,g=0,h=0;g=c[a+4>>2]|0;if(!g){h=0;return h|0}f=c[a+16>>2]|0;a=0;e=0;while(1){b=c[f+(e<<2)>>2]|0;if(b|0)break;a=a+32|0;e=e+1|0;if(e>>>0>=g>>>0){h=6;break}}if((h|0)==6)return a|0;g=b&0-b;h=g>>>0<65536?(g>>>0<256?0:8):g>>>0<16777216?16:24;h=a+-1+h+(d[45555+(g>>>h)>>0]|0)|0;return h|0}function Ok(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Pk(a,b,0,c,d,0)|0}function Pk(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0;if(g|0)c[g>>2]=c[b+8>>2];k=b+4|0;i=c[k>>2]|0;g=i<<2;c[f>>2]=g;g=(i|0)==0?1:g;i=(e|0)<0;j=0-e|0;g=(g>>>0<d>>>0?d:g)+(i?j:e)|0;if((h|0)==0?(c[b+12>>2]&1|0)==0:0)l=_e(g)|0;else l=$e(g)|0;if(!l){f=0;return f|0}h=i?l+j|0:l;g=c[k>>2]|0;if((g|0)>0){i=b+16|0;e=h;while(1){b=g;g=g+-1|0;k=c[(c[i>>2]|0)+(g<<2)>>2]|0;a[e>>0]=k>>>24;a[e+1>>0]=k>>>16;a[e+2>>0]=k>>>8;a[e+3>>0]=k;if((b|0)<=1)break;else e=e+4|0}}g=c[f>>2]|0;if(d|0){i=g>>>1;if(i|0){j=g+-1|0;e=0;do{m=h+e|0;k=a[m>>0]|0;b=h+(j-e)|0;a[m>>0]=a[b>>0]|0;a[b>>0]=k;e=e+1|0}while((e|0)!=(i|0))}if(g>>>0<d>>>0){Yq(h+g|0,0,d-g|0)|0;g=d}c[f>>2]=g;m=l;return m|0}if(!g){m=l;return m|0}else e=h;while(1){if(a[e>>0]|0)break;e=e+1|0;g=g+-1|0;c[f>>2]=g;if(!g){g=0;break}}if((e|0)==(h|0)){m=l;return m|0}dr(h|0,e|0,g|0)|0;m=l;return m|0}function Qk(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Pk(a,b,c,d,e,0)|0}function Rk(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;if(a|0?c[a+12>>2]&16|0:0){sl();return}n=(e+3|0)>>>2;if((c[a>>2]|0)<(n|0))ql(a,n);c[a+8>>2]=f;m=e+-1|0;g=b+m|0;if((m|0)>3){l=e+-5|0;f=l>>>2;m=f<<2;f=f+1|0;l=l-m|0;k=c[a+16>>2]|0;h=0;j=e;while(1){i=j+-4|0;c[k+(h<<2)>>2]=(d[b+(j+-2)>>0]|0)<<8|(d[g>>0]|0)|(d[b+(j+-3)>>0]|0)<<16|(d[b+i>>0]|0)<<24;h=h+1|0;if((h|0)==(f|0))break;else{g=b+(j+-5)|0;j=i}}h=b+l|0;e=e+-4-m|0}else{f=0;h=g}if((e|0)>0){g=h+-1|0;e=d[h>>0]|0;if(g>>>0>=b>>>0){e=(d[g>>0]|0)<<8|e;g=h+-2|0}if(g>>>0>=b>>>0){e=(d[g>>0]|0)<<16|e;g=g+-1|0}if(g>>>0>=b>>>0)e=(d[g>>0]|0)<<24|e;c[(c[a+16>>2]|0)+(f<<2)>>2]=e;f=f+1|0}c[a+4>>2]=f;if((f|0)==(n|0))return;else Ie(45860,45872,377,45883)}function Sk(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;if(!f)m=0;else m=(af(f)|0)!=0;j=(e|0)==3;o=j?0:g;switch(e|0){case 1:{e=(o+3|0)>>>2;if(m)k=nl(e)|0;else k=ll(e)|0;if(o|0?(Rk(k,f,o,0),f=a[f>>0]|0,l=k+8|0,c[l>>2]=(f&255)>>>7&255,f<<24>>24<0):0){g=lk(k)|0;if(!(c[k+12>>2]&16)){kk(k);i=c[k+16>>2]|0;j=c[k+4>>2]|0;if(j|0){e=0;do{f=i+(e<<2)|0;c[f>>2]=~c[f>>2];e=e+1|0}while((e|0)!=(j|0))}c[l>>2]=0;pk(k,g+-1|0)}else sl();ek(k,k,1);c[l>>2]=1}if(!b)tl(k);else{kk(k);c[b>>2]=k}if(!h){b=0;return b|0}c[h>>2]=o;b=0;return b|0}case 5:{e=(o+3|0)>>>2;if(m)e=nl(e)|0;else e=ll(e)|0;if(o|0)Rk(e,f,o,0);if(!b)tl(e);else{kk(e);c[b>>2]=e}if(!h){b=0;return b|0}c[h>>2]=o;b=0;return b|0}case 2:{a:do if(o>>>0>=2?(i=d[f>>0]<<8|d[f+1>>0],i>>>0<=16384):0){i=(i+7|0)>>>3;k=(i+3|0)>>>2;if(m)e=nl(k)|0;else e=ll(k)|0;c[e+4>>2]=k;c[e+8>>2]=0;if(!k)g=2;else{m=e+16|0;g=2;j=f+2|0;i=0-i&3;b:while(1){l=0;do{g=g+1|0;if(g>>>0>o>>>0)break b;f=j;j=j+1|0;l=d[f>>0]|l<<8;i=i+1|0}while((i|0)<4);f=k;k=k+-1|0;c[(c[m>>2]|0)+(k<<2)>>2]=l;if((f|0)<=1)break a;else i=0}tl(e);e=0}}else{e=0;g=0}while(0);if(h|0)c[h>>2]=g;g=(e|0)!=0;if(!((b|0)!=0&g))if(g){tl(e);e=0}else e=0;else{kk(e);c[b>>2]=e}b=e|0?0:65;return b|0}default:{if(j){if((o+-1|0)>>>0<3){b=66;return b|0}i=d[f+1>>0]<<16|d[f>>0]<<24|d[f+2>>0]<<8|d[f+3>>0];g=f+4|0;f=o+-4|0;if(o|0?(f|0)!=0&i>>>0>f>>>0:0){b=67;return b|0}l=i+4|0;e=(i+3|0)>>>2;if(m)k=nl(e)|0;else k=ll(e)|0;if(i|0?(Rk(k,g,i,0),f=a[g>>0]|0,n=k+8|0,c[n>>2]=(f&255)>>>7&255,f<<24>>24<0):0){g=lk(k)|0;if(!(c[k+12>>2]&16)){kk(k);i=c[k+16>>2]|0;j=c[k+4>>2]|0;if(j|0){e=0;do{f=i+(e<<2)|0;c[f>>2]=~c[f>>2];e=e+1|0}while((e|0)!=(j|0))}c[n>>2]=0;pk(k,g+-1|0)}else sl();ek(k,k,1);c[n>>2]=1}if(h|0)c[h>>2]=l;if(!b){tl(k);b=0;return b|0}else{kk(k);c[b>>2]=k;b=0;return b|0}}if(!((e|0)==4&(g|0)==0)){b=45;return b|0}if(m)p=nl(0)|0;else p=ll(0)|0;g=(a[f>>0]|0)==45;e=g?f+1|0:f;if((a[e>>0]|0)==48)e=(a[e+1>>0]|0)==120?e+2|0:e;k=Fo(e)|0;j=((k<<2)+7|0)>>>3;i=(j+3|0)>>>2;if((c[p>>2]|0)>>>0<i>>>0)ql(p,i);c[p+4>>2]=i;c[p+8>>2]=g&1;c:do if(i|0){o=p+16|0;j=0-j&3;g=k&1;d:while(1){n=0;while(1){if(!g){g=a[e>>0]|0;if(!(g<<24>>24)){e=82;break d}else{k=g<<24>>24;g=e+1|0}}else{k=48;g=e}e=g+1|0;l=a[g>>0]|0;m=l<<24>>24;if(!(l<<24>>24)){e=84;break d}g=k+-48|0;do if(g>>>0>=10){if((k+-97|0)>>>0<6){g=k+-87|0;break}if((k+-65|0)>>>0>=6){e=90;break d}g=k+-55|0}while(0);k=g<<4;do if((l+-48&255)<10)g=m+-48|0;else{if((l+-97&255)<6){g=m+-87|0;break}if((l+-65&255)>=6){e=97;break d}g=m+-55|0}while(0);n=k|n<<8|g;j=j+1|0;if((j|0)>=4)break;else g=0}m=i;i=i+-1|0;c[(c[o>>2]|0)+(i<<2)>>2]=n;if((m|0)<=1)break c;else{j=0;g=0}}if((e|0)==82)rl(p);else if((e|0)==84)rl(p);else if((e|0)==90)rl(p);else if((e|0)==97)rl(p);tl(p);b=65;return b|0}while(0);if(!b)tl(p);else{kk(p);c[b>>2]=p}if(!h){b=0;return b|0}c[h>>2]=Fo(f)|0;b=0;return b|0}}return 0}function Tk(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;q=l;l=l+16|0;if((l|0)>=(m|0))$(16);i=lk(h)|0;p=(g|0)==0?q:g;if((c[h+8>>2]|0)!=0?(vk(h,0)|0)!=0:0)o=1;else o=0;c[p>>2]=0;switch(b|0){case 1:{i=h+4|0;j=c[i>>2]|0;b=j<<2;j=(j|0)==0;g=j?1:b;if(!(c[h+12>>2]&1))k=_e(g)|0;else k=$e(g)|0;if(!k){p=Sn()|0;l=q;return p|0}g=c[i>>2]|0;if((g|0)>0){h=h+16|0;i=k;while(1){r=g;g=g+-1|0;s=c[(c[h>>2]|0)+(g<<2)>>2]|0;a[i>>0]=s>>>24;a[i+1>>0]=s>>>16;a[i+2>>0]=s>>>8;a[i+3>>0]=s;if((r|0)<=1)break;else i=i+4|0}}if(!j){g=k;while(1){if(a[g>>0]|0)break;g=g+1|0;b=b+-1|0;if(!b){b=0;break}}if((g|0)==(k|0))i=b;else{dr(k|0,g|0,b|0)|0;i=b}}else i=0;do if(!o)if(!i)if(!e){g=0;break}else{b=0;g=0;n=26;break}else{g=(d[k>>0]|0)>>>7&255;b=g;n=23;break}else{Uk(k,i);g=a[k>>0]|0;b=g<<24>>24<0?0:2;g=(g&255)>>>7&255^1;n=23}while(0);do if((n|0)==23){g=g+i|0;i=(e|0)!=0;if(!(i&g>>>0>f>>>0))if(i){n=26;break}else break;cf(k);s=66;l=q;return s|0}while(0);if((n|0)==26){switch(b&3){case 1:{a[e>>0]=0;e=e+1|0;break}case 0:break;default:{a[e>>0]=-1;e=e+1|0}}cr(e|0,k|0,g-((b|0)!=0&1)|0)|0}cf(k);c[p>>2]=g;s=0;l=q;return s|0}case 5:{g=(i+7|0)>>>3;b=(e|0)!=0;if(b&g>>>0>f>>>0){s=66;l=q;return s|0}if(b){i=h+4|0;j=c[i>>2]|0;g=j<<2;j=(j|0)==0;b=j?1:g;if(!(c[h+12>>2]&1))k=_e(b)|0;else k=$e(b)|0;if(!k){s=Sn()|0;l=q;return s|0}b=c[i>>2]|0;if((b|0)>0){h=h+16|0;i=k;while(1){s=b;b=b+-1|0;r=c[(c[h>>2]|0)+(b<<2)>>2]|0;a[i>>0]=r>>>24;a[i+1>>0]=r>>>16;a[i+2>>0]=r>>>8;a[i+3>>0]=r;if((s|0)<=1)break;else i=i+4|0}}if(!j){b=k;while(1){if(a[b>>0]|0)break;b=b+1|0;g=g+-1|0;if(!g){g=0;break}}if((b|0)!=(k|0))dr(k|0,b|0,g|0)|0}else g=0;cr(e|0,k|0,g|0)|0;cf(k)}c[p>>2]=g;s=0;l=q;return s|0}case 2:{g=(i+7|0)>>>3;if(o|0){s=45;l=q;return s|0}b=(e|0)!=0;if(b&(g+2|0)>>>0>f>>>0){s=66;l=q;return s|0}if(b){a[e>>0]=i>>>8;a[e+1>>0]=i;i=h+4|0;j=c[i>>2]|0;g=j<<2;j=(j|0)==0;b=j?1:g;if(!(c[h+12>>2]&1))k=_e(b)|0;else k=$e(b)|0;if(!k){s=Sn()|0;l=q;return s|0}b=c[i>>2]|0;if((b|0)>0){h=h+16|0;i=k;while(1){s=b;b=b+-1|0;r=c[(c[h>>2]|0)+(b<<2)>>2]|0;a[i>>0]=r>>>24;a[i+1>>0]=r>>>16;a[i+2>>0]=r>>>8;a[i+3>>0]=r;if((s|0)<=1)break;else i=i+4|0}}if(!j){b=k;while(1){if(a[b>>0]|0)break;b=b+1|0;g=g+-1|0;if(!g){g=0;break}}if((b|0)!=(k|0))dr(k|0,b|0,g|0)|0}else g=0;cr(e+2|0,k|0,g|0)|0;cf(k)}c[p>>2]=g+2;s=0;l=q;return s|0}case 3:{i=h+4|0;j=c[i>>2]|0;b=j<<2;j=(j|0)==0;g=j?1:b;if(!(c[h+12>>2]&1))k=_e(g)|0;else k=$e(g)|0;if(!k){s=Sn()|0;l=q;return s|0}g=c[i>>2]|0;if((g|0)>0){h=h+16|0;i=k;while(1){s=g;g=g+-1|0;r=c[(c[h>>2]|0)+(g<<2)>>2]|0;a[i>>0]=r>>>24;a[i+1>>0]=r>>>16;a[i+2>>0]=r>>>8;a[i+3>>0]=r;if((s|0)<=1)break;else i=i+4|0}}if(!j){g=k;while(1){if(a[g>>0]|0)break;g=g+1|0;b=b+-1|0;if(!b){b=0;break}}if((g|0)==(k|0))g=b;else{dr(k|0,g|0,b|0)|0;g=b}}else g=0;if(!o)if(!g){h=0;b=0}else{b=(d[k>>0]|0)>>>7&255;h=b;b=b+g|0}else{Uk(k,g);b=a[k>>0]|0;h=b<<24>>24<0?0:2;b=((b&255)>>>7&255^1)+g|0}i=b+4|0;if(e|0){if(i>>>0>f>>>0){cf(k);s=66;l=q;return s|0}a[e>>0]=b>>>24;a[e+1>>0]=b>>>16;a[e+2>>0]=b>>>8;g=e+4|0;a[e+3>>0]=b;switch(h&3){case 1:{a[g>>0]=0;g=e+5|0;break}case 0:break;default:{a[g>>0]=-1;g=e+5|0}}cr(g|0,k|0,b-((h|0)!=0&1)|0)|0}cf(k);c[p>>2]=i;s=0;l=q;return s|0}case 4:{i=h+4|0;j=c[i>>2]|0;b=j<<2;j=(j|0)==0;g=j?1:b;if(!(c[h+12>>2]&1))k=_e(g)|0;else k=$e(g)|0;if(!k){s=Sn()|0;l=q;return s|0}g=c[i>>2]|0;if((g|0)>0){h=h+16|0;i=k;while(1){s=g;g=g+-1|0;r=c[(c[h>>2]|0)+(g<<2)>>2]|0;a[i>>0]=r>>>24;a[i+1>>0]=r>>>16;a[i+2>>0]=r>>>8;a[i+3>>0]=r;if((s|0)<=1)break;else i=i+4|0}}if(!j){g=k;while(1){if(a[g>>0]|0)break;g=g+1|0;b=b+-1|0;if(!b){b=0;break}}if((g|0)!=(k|0))dr(k|0,g|0,b|0)|0;if(b)if((a[k>>0]|0)<0){g=0;n=106}else{i=0;j=b;b=0}else{b=0;g=1;n=106}}else{b=0;g=1;n=106}if((n|0)==106){i=2;j=b;b=g}h=j<<1;g=(i+h|o)+1|0;if(e){if(g>>>0>f>>>0){cf(k);s=66;l=q;return s|0}if(!o)g=e;else{a[e>>0]=45;g=e+1|0}if(i){a[g>>0]=48;a[g+1>>0]=48;g=g+2|0}if(!b){b=0;i=g;while(1){f=a[k+b>>0]|0;s=f&255;r=s>>>4;a[i>>0]=(f&255)<160?r|48:r+55|0;s=s&15;a[i+1>>0]=s>>>0<10?s|48:s+55|0;b=b+1|0;if((b|0)==(j|0))break;else i=i+2|0}g=g+h|0}a[g>>0]=0;g=g+1-e|0}c[p>>2]=g;cf(k);s=0;l=q;return s|0}default:{s=45;l=q;return s|0}}return 0}function Uk(b,c){b=b|0;c=c|0;var e=0,f=0,g=0,h=0;while(1){e=c+-1|0;if((e|0)<=-1){h=21;break}g=b+e|0;f=a[g>>0]|0;if(!(f<<24>>24))c=e;else break}if((h|0)==21)return;e=f&255;do if(!(e&1)){if(e&2|0){a[g>>0]=e&252^254;break}if(e&4|0){a[g>>0]=e&248^252;break}if(e&8|0){a[g>>0]=e&240^248;break}if(e&16|0){a[g>>0]=e&224^240;break}if(e&32|0){a[g>>0]=e&192^224;break}if(!(e&64)){a[g>>0]=-128;break}else{a[g>>0]=e&128^192;break}}else a[g>>0]=(e|1)^254;while(0);c=c+-2|0;if((c|0)<=-1)return;while(1){h=b+c|0;a[h>>0]=(d[h>>0]|0)^255;if((c|0)>0)c=c+-1|0;else break}return}function Vk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=(a|0)!=0;g=(b|0)!=0;if(!(i^g)){i=45;return i|0}if(i)c[a>>2]=0;f=lk(d)|0;if(c[d+8>>2]|0)vk(d,0)|0;h=(f+7|0)>>>3;if(h>>>0>e>>>0){i=67;return i|0}e=h>>>0<e>>>0?e-h|0:0;f=e+h|0;if(!g){if(!(c[d+12>>2]&1))f=_e(f)|0;else f=$e(f)|0;if(!f){i=Sn()|0;return i|0}else b=f}if(e|0)Yq(b|0,0,e|0)|0;f=Tk(5,b+e|0,h,0,d)|0;if(f|0){cf(b);i=f;return i|0}if(!i){i=0;return i|0}c[a>>2]=b;i=0;return i|0}function Wk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;g=b+(e<<2)|0;f=d+(e<<2)|0;a=a+(e<<2)|0;b=0-e|0;d=0;do{i=c[g+(b<<2)>>2]|0;h=(c[f+(b<<2)>>2]|0)+d|0;e=h+i|0;d=(e>>>0<i>>>0&1)+(h>>>0<d>>>0&1)|0;c[a+(b<<2)>>2]=e;b=b+1|0}while((b|0)!=0);return d|0}function Xk(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;if(!b){a=0;return a|0}k=e>>>0<65536?(e>>>0<256?0:8):e>>>0<16777216?16:24;k=(d[45555+(e>>>k)>>0]|0)+k|0;n=32-k|0;if(!n){g=b+-1|0;f=c[a+(g<<2)>>2]|0;n=f>>>0<e>>>0;f=n?f:0;g=n?b+-2|0:g;if((g|0)<=-1){a=f;return a|0}j=e>>>16;k=e&65535;while(1){i=c[a+(g<<2)>>2]|0;h=S((f>>>0)/(j>>>0)|0,k)|0;f=((f>>>0)%(j>>>0)|0)<<16|i>>>16;b=f+e|0;if(f>>>0<h>>>0)f=(b>>>0>=e>>>0&b>>>0<h>>>0?e:0)+b|0;f=f-h|0;h=S((f>>>0)/(j>>>0)|0,k)|0;f=((f>>>0)%(j>>>0)|0)<<16|i&65535;b=f+e|0;if(f>>>0<h>>>0)f=(b>>>0>=e>>>0&b>>>0<h>>>0?e:0)+b|0;f=f-h|0;if((g|0)>0)g=g+-1|0;else break}return f|0}m=e<<n;g=c[a+(b+-1<<2)>>2]|0;f=g>>>k;b=b+-2|0;l=m>>>16;e=m&65535;if((b|0)>-1)while(1){j=c[a+(b<<2)>>2]|0;h=S((f>>>0)/(l>>>0)|0,e)|0;i=j>>>k|g<<n;f=i>>>16|((f>>>0)%(l>>>0)|0)<<16;g=f+m|0;if(f>>>0<h>>>0)f=(g>>>0>=m>>>0&g>>>0<h>>>0?m:0)+g|0;f=f-h|0;h=S((f>>>0)/(l>>>0)|0,e)|0;f=((f>>>0)%(l>>>0)|0)<<16|i&65535;g=f+m|0;if(f>>>0<h>>>0)f=(g>>>0>=m>>>0&g>>>0<h>>>0?m:0)+g|0;f=f-h|0;if((b|0)>0){b=b+-1|0;g=j}else{g=j;break}}b=S((f>>>0)/(l>>>0)|0,e)|0;h=g<<n;f=((f>>>0)%(l>>>0)|0)<<16|h>>>16;g=f+m|0;if(f>>>0<b>>>0)f=(g>>>0>=m>>>0&g>>>0<b>>>0?m:0)+g|0;f=f-b|0;b=S((f>>>0)/(l>>>0)|0,e)|0;f=((f>>>0)%(l>>>0)|0)<<16|h&65535;g=f+m|0;if(f>>>0<b>>>0)f=(g>>>0>=m>>>0&g>>>0<b>>>0?m:0)+g|0;a=(f-b|0)>>>n;return a|0}function Yk(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;switch(g|0){case 0:{Ve();break}case 1:{p=c[f>>2]|0;h=c[d+(e+-1<<2)>>2]|0;q=h>>>0<p>>>0;h=h-(q?0:p)|0;q=q&1^1;o=a+(b<<2)|0;i=e+-2|0;if((i|0)>-1){e=p>>>16;n=p&65535;while(1){j=(h>>>0)/(e>>>0)|0;k=S(j,n)|0;m=c[d+(i<<2)>>2]|0;h=m>>>16|((h>>>0)%(e>>>0)|0)<<16;if(h>>>0<k>>>0){h=h+p|0;a=h>>>0>=p>>>0&h>>>0<k>>>0;j=(a?-2:-1)+j|0;h=(a?p:0)+h|0}h=h-k|0;k=(h>>>0)/(e>>>0)|0;l=S(k,n)|0;h=m&65535|((h>>>0)%(e>>>0)|0)<<16;if(h>>>0<l>>>0){h=h+p|0;a=h>>>0>=p>>>0&h>>>0<l>>>0;k=(a?-2:-1)+k|0;h=(a?p:0)+h|0}h=h-l|0;c[o+(i<<2)>>2]=k|j<<16;if((i|0)>0)i=i+-1|0;else break}}e=o+(0-b<<2)|0;if((b|0)>0){n=p>>>16;o=p&65535;m=b;do{l=m;m=m+-1|0;i=(h>>>0)/(n>>>0)|0;j=S(i,o)|0;h=((h>>>0)%(n>>>0)|0)<<16;if(h>>>0<j>>>0){h=h+p|0;b=h>>>0>=p>>>0&h>>>0<j>>>0;i=(b?-2:-1)+i|0;h=(b?p:0)+h|0}h=h-j|0;j=(h>>>0)/(n>>>0)|0;k=S(j,o)|0;h=((h>>>0)%(n>>>0)|0)<<16;if(h>>>0<k>>>0){h=h+p|0;b=h>>>0>=p>>>0&h>>>0<k>>>0;j=(b?-2:-1)+j|0;h=(b?p:0)+h|0}h=h-k|0;c[e+(m<<2)>>2]=j|i<<16}while((l|0)>1)}c[d>>2]=h;b=q;return b|0}case 2:{j=d+(e+-2<<2)|0;w=c[f+4>>2]|0;u=c[f>>2]|0;v=0-u|0;i=c[j+4>>2]|0;h=c[j>>2]|0;if(i>>>0>=w>>>0?(k=h-u|0,!(i>>>0<=w>>>0&h>>>0<u>>>0)):0){i=i-w+((k>>>0>h>>>0)<<31>>31)|0;h=k;t=1}else t=0;k=b+-3+e|0;if((k|0)>-1){s=u-((u|0)!=0&1)|0;p=w>>>16;q=w&65535;d=u&65535;r=u>>>16;while(1){if((k|0)<(b|0))c[j>>2]=0;else j=j+-4|0;if((i|0)==(w|0)){h=h+w|0;if(h>>>0<w>>>0){i=c[j>>2]|0;f=i+u|0;c[a+(k<<2)>>2]=-1;i=h-u+(f>>>0<i>>>0&1)|0;h=f}else{m=-1;l=s;i=v;o=34}}else{l=(i>>>0)/(p>>>0)|0;m=S(l,q)|0;i=((i>>>0)%(p>>>0)|0)<<16|h>>>16;if(i>>>0<m>>>0){i=i+w|0;f=i>>>0>=w>>>0&i>>>0<m>>>0;l=(f?-2:-1)+l|0;i=(f?w:0)+i|0}i=i-m|0;m=(i>>>0)/(p>>>0)|0;e=S(m,q)|0;i=((i>>>0)%(p>>>0)|0)<<16|h&65535;if(i>>>0<e>>>0){i=i+w|0;f=i>>>0>=w>>>0&i>>>0<e>>>0;h=(f?-2:-1)+m|0;i=(f?w:0)+i|0}else h=m;m=h|l<<16;g=h&65535;f=m>>>16;o=S(g,d)|0;g=S(g,r)|0;l=S(f,r)|0;f=(o>>>16)+g+(S(f,d)|0)|0;h=i-e|0;l=(f>>>0<g>>>0?l+65536|0:l)+(f>>>16)|0;i=f<<16|o&65535;o=34}if((o|0)==34){o=0;n=c[j>>2]|0;while(1){if(l>>>0<=h>>>0?!(i>>>0>n>>>0&(l|0)==(h|0)):0)break;m=m+-1|0;e=i-u|0;l=l-(e>>>0>i>>>0&1)|0;h=h+w|0;if(h>>>0<w>>>0){i=e;break}else i=e}c[a+(k<<2)>>2]=m;f=n-i|0;i=h-l+((f>>>0>n>>>0)<<31>>31)|0;h=f}if((k|0)>0)k=k+-1|0;else break}}c[j+4>>2]=i;c[j>>2]=h;b=t;return b|0}default:{m=d+(e-g<<2)|0;u=g+-1|0;v=c[f+(u<<2)>>2]|0;w=g+-2|0;x=c[f+(w<<2)>>2]|0;i=m+(u<<2)|0;j=c[i>>2]|0;a:do if(j>>>0<v>>>0)h=0;else{b:do if(j>>>0<=v>>>0){h=u;do{if((h|0)<=0)break b;h=h+-1|0;k=c[m+(h<<2)>>2]|0;l=c[f+(h<<2)>>2]|0}while((k|0)==(l|0));if(k>>>0<=l>>>0){h=0;break a}}while(0);hl(m,m,f,g)|0;j=c[i>>2]|0;h=1}while(0);i=e+b-g|0;if((i|0)<=0){b=h;return b|0}q=v>>>16;d=v&65535;r=x&65535;s=x>>>16;t=(w|0)>-1;while(1){p=i;i=i+-1|0;if((p|0)>(b|0)){o=m+-4|0;n=c[o+(g<<2)>>2]|0}else{if(t){l=m+4|0;k=w;while(1){c[l+(k<<2)>>2]=c[m+(k<<2)>>2];if((k|0)>0)k=k+-1|0;else break}}c[m>>2]=0;n=j;o=m}c:do if((j|0)==(v|0))j=-1;else{k=(j>>>0)/(q>>>0)|0;l=S(k,d)|0;e=c[o+(u<<2)>>2]|0;j=e>>>16|((j>>>0)%(q>>>0)|0)<<16;if(j>>>0<l>>>0){j=j+v|0;m=j>>>0>=v>>>0&j>>>0<l>>>0;j=(m?v:0)+j|0;m=(m?-2:-1)+k|0}else m=k;k=j-l|0;j=(k>>>0)/(q>>>0)|0;l=S(j,d)|0;k=e&65535|((k>>>0)%(q>>>0)|0)<<16;if(k>>>0<l>>>0){k=k+v|0;e=k>>>0>=v>>>0&k>>>0<l>>>0;k=(e?v:0)+k|0;j=(e?-2:-1)+j|0}z=j|m<<16;A=j&65535;y=z>>>16;m=S(A,r)|0;A=S(A,s)|0;j=S(y,s)|0;y=(m>>>16)+A+(S(y,r)|0)|0;e=o+(w<<2)|0;k=k-l|0;l=(y>>>0<A>>>0?j+65536|0:j)+(y>>>16)|0;j=z;m=y<<16|m&65535;while(1){if(l>>>0<=k>>>0){if((l|0)!=(k|0))break c;if(m>>>0<=(c[e>>2]|0)>>>0)break c}j=j+-1|0;k=k+v|0;if(k>>>0<v>>>0)break c;l=l-(m>>>0<x>>>0&1)|0;m=m-x|0}}while(0);if((n|0)!=(al(o,f,g,j)|0)){Wk(o,o,f,g)|0;j=j+-1|0}c[a+(i<<2)>>2]=j;if((p|0)<=1)break;else{m=o;j=c[o+(u<<2)>>2]|0}}return h|0}}return 0}function Zk(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;if(!e){a=0;return a|0}n=f>>>0<65536?(f>>>0<256?0:8):f>>>0<16777216?16:24;n=(d[45555+(f>>>n)>>0]|0)+n|0;q=32-n|0;if(!q){h=e+-1|0;g=c[b+(h<<2)>>2]|0;if(g>>>0<f>>>0){c[a+(h<<2)>>2]=0;h=e+-2|0}else g=0;if((h|0)<=-1){a=g;return a|0}l=f>>>16;m=f&65535;while(1){j=c[b+(h<<2)>>2]|0;e=(g>>>0)/(l>>>0)|0;i=S(e,m)|0;g=((g>>>0)%(l>>>0)|0)<<16|j>>>16;if(g>>>0<i>>>0){g=g+f|0;k=g>>>0>=f>>>0&g>>>0<i>>>0;g=(k?f:0)+g|0;k=(k?-2:-1)+e|0}else k=e;g=g-i|0;e=(g>>>0)/(l>>>0)|0;i=S(e,m)|0;g=((g>>>0)%(l>>>0)|0)<<16|j&65535;if(g>>>0<i>>>0){g=g+f|0;q=g>>>0>=f>>>0&g>>>0<i>>>0;g=(q?f:0)+g|0;e=(q?-2:-1)+e|0}g=g-i|0;c[a+(h<<2)>>2]=e|k<<16;if((h|0)>0)h=h+-1|0;else break}return g|0}p=f<<q;i=c[b+(e+-1<<2)>>2]|0;g=i>>>n;h=e+-2|0;o=p>>>16;f=p&65535;if((h|0)>-1)while(1){m=c[b+(h<<2)>>2]|0;e=(g>>>0)/(o>>>0)|0;j=S(e,f)|0;k=m>>>n|i<<q;g=k>>>16|((g>>>0)%(o>>>0)|0)<<16;if(g>>>0<j>>>0){g=g+p|0;l=g>>>0>=p>>>0&g>>>0<j>>>0;g=(l?p:0)+g|0;l=(l?-2:-1)+e|0}else l=e;g=g-j|0;e=(g>>>0)/(o>>>0)|0;i=S(e,f)|0;g=((g>>>0)%(o>>>0)|0)<<16|k&65535;if(g>>>0<i>>>0){g=g+p|0;k=g>>>0>=p>>>0&g>>>0<i>>>0;g=(k?p:0)+g|0;e=(k?-2:-1)+e|0}g=g-i|0;c[a+(h+1<<2)>>2]=e|l<<16;if((h|0)>0){h=h+-1|0;i=m}else{h=m;break}}else h=i;e=(g>>>0)/(o>>>0)|0;i=S(e,f)|0;h=h<<q;g=((g>>>0)%(o>>>0)|0)<<16|h>>>16;if(g>>>0<i>>>0){g=g+p|0;j=g>>>0>=p>>>0&g>>>0<i>>>0;g=(j?p:0)+g|0;j=(j?-2:-1)+e|0}else j=e;b=g-i|0;g=(b>>>0)/(o>>>0)|0;e=S(g,f)|0;h=((b>>>0)%(o>>>0)|0)<<16|h&65535;if(h>>>0<e>>>0){h=h+p|0;b=h>>>0>=p>>>0&h>>>0<e>>>0;h=(b?p:0)+h|0;g=(b?-2:-1)+g|0}c[a>>2]=g|j<<16;a=(h-e|0)>>>q;return a|0}function _k(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=a+4|0;g=32-e|0;f=c[b+(d+-1<<2)>>2]|0;i=f>>>g;a=d+-2|0;if((d|0)>1){d=f;while(1){f=c[b+(a<<2)>>2]|0;c[h+(a<<2)>>2]=f>>>g|d<<e;if((a|0)>0){d=f;a=a+-1|0}else{a=-1;break}}}c[h+(a<<2)>>2]=f<<e;return i|0}function $k(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;h=b+(d<<2)|0;f=a+(d<<2)|0;g=e&65535;e=e>>>16;a=0;b=0-d|0;do{j=c[h+(b<<2)>>2]|0;i=j&65535;j=j>>>16;d=S(i,g)|0;k=S(j,g)|0;j=S(j,e)|0;i=k+(S(i,e)|0)+(d>>>16)|0;d=(i<<16|d&65535)+a|0;a=(i>>>0<k>>>0?j+65536|0:j)+(i>>>16)+(d>>>0<a>>>0&1)|0;c[f+(b<<2)>>2]=d;b=b+1|0}while((b|0)!=0);return a|0}function al(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;h=a+(d<<2)|0;f=b+(d<<2)|0;g=e&65535;e=e>>>16;b=0;a=0-d|0;do{m=c[f+(a<<2)>>2]|0;l=m&65535;m=m>>>16;k=S(l,g)|0;n=S(m,g)|0;m=S(m,e)|0;l=n+(S(l,e)|0)+(k>>>16)|0;k=(l<<16|k&65535)+b|0;d=h+(a<<2)|0;j=c[d>>2]|0;i=j-k|0;b=(l>>>0<n>>>0?m+65536|0:m)+(l>>>16)+(k>>>0<b>>>0&1)+(i>>>0>j>>>0&1)|0;c[d>>2]=i;a=a+1|0}while((a|0)!=0);return b|0}function bl(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=c[d>>2]|0;a:do if(f>>>0<2){g=(e|0)>0;if((f|0)==1){if(g){f=0;while(1){c[a+(f<<2)>>2]=c[b+(f<<2)>>2];f=f+1|0;if((f|0)==(e|0)){f=0;break a}}}}else if(g){Yq(a|0,0,e<<2|0)|0;f=0;break}c[a+(e<<2)>>2]=0;return}else f=$k(a,b,e,f)|0;while(0);c[a+(e<<2)>>2]=f;if((e|0)>1){h=1;g=a}else return;do{g=g+4|0;f=c[d+(h<<2)>>2]|0;if(f>>>0<2)if((f|0)==1)f=Wk(g,g,b,e)|0;else f=0;else f=Fn(g,b,e,f)|0;c[g+(e<<2)>>2]=f;h=h+1|0}while((h|0)!=(e|0));return}function cl(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;if(e&1|0){g=e+-1|0;if((e|0)<17)bl(a,b,d,g);else cl(a,b,d,g,f);f=a+(g<<2)|0;c[a+(g<<1<<2)>>2]=Fn(f,b,g,c[d+(g<<2)>>2]|0)|0;c[a+(g+e<<2)>>2]=Fn(f,d,e,c[b+(g<<2)>>2]|0)|0;return}o=e>>1;n=(o|0)<16;g=a+(e<<2)|0;j=b+(o<<2)|0;m=d+(o<<2)|0;if(n){bl(g,j,m,o);i=o}else{cl(g,j,m,o,f);i=o}while(1){if((i|0)<=0){i=12;break}i=i+-1|0;k=c[j+(i<<2)>>2]|0;l=c[b+(i<<2)>>2]|0;if((k|0)!=(l|0)){i=11;break}}if((i|0)==11)if(k>>>0>l>>>0)i=12;else{hl(a,b,j,o)|0;j=1}if((i|0)==12){hl(a,j,b,o)|0;j=0}i=o;while(1){if((i|0)<=0){i=18;break}i=i+-1|0;k=c[m+(i<<2)>>2]|0;l=c[d+(i<<2)>>2]|0;if((k|0)!=(l|0)){i=17;break}}if((i|0)==17)if(k>>>0>l>>>0)i=18;else{l=a+(o<<2)|0;hl(l,d,m,o)|0;k=j}if((i|0)==18){l=a+(o<<2)|0;hl(l,m,d,o)|0;k=j^1}if(n){bl(f,a,l,o);if((o|0)>0)i=23;else j=0}else{cl(f,a,l,o,f+(e<<2)|0);i=23}if((i|0)==23){j=a+(o<<2)|0;i=0;do{c[j+(i<<2)>>2]=c[g+(i<<2)>>2];i=i+1|0}while((i|0)!=(o|0));j=1}i=Wk(g,g,g+(o<<2)|0,o)|0;if(!k)i=(Wk(l,l,f,e)|0)+i|0;else i=i-(hl(l,l,f,e)|0)|0;if(n)bl(f,b,d,o);else cl(f,b,d,o,f+(e<<2)|0);i=(Wk(l,l,f,e)|0)+i|0;a:do if(i|0?(h=a+(o<<2)+(e<<2)|0,d=c[h>>2]|0,b=d+i|0,c[h>>2]=b,b>>>0<d>>>0):0){i=o;do{h=h+4|0;i=i+-1|0;if(!i)break a;d=(c[h>>2]|0)+1|0;c[h>>2]=d}while(!(d|0))}while(0);if(j){h=0;do{c[a+(h<<2)>>2]=c[f+(h<<2)>>2];h=h+1|0}while((h|0)!=(o|0))}if(!(Wk(l,l,f+(o<<2)|0,o)|0))return;f=c[g>>2]|0;c[g>>2]=f+1;if((f|0)!=-1)return;while(1){g=g+4|0;e=e+-1|0;if(!e){i=41;break}f=(c[g>>2]|0)+1|0;c[g>>2]=f;if(f|0){i=41;break}}if((i|0)==41)return}function dl(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=g+4|0;h=c[x>>2]|0;if(h){if((c[g+12>>2]|0)<(f|0)){ol(h,c[g+8>>2]|0);w=4}}else w=4;if((w|0)==4){h=f<<1;c[g+8>>2]=h;if(!(af(b)|0))i=(af(e)|0)!=0;else i=1;h=ml(h,i&1)|0;c[x>>2]=h;c[g+12>>2]=f}k=(f|0)<16;if(k)bl(a,b,e,f);else cl(a,b,e,f,h);j=a+(f<<2)|0;i=b+(f<<2)|0;a=d-f|0;if((a|0)>=(f|0)){v=g+16|0;h=c[v>>2]|0;if(h){if((c[g+24>>2]|0)<(f|0)){ol(h,c[g+20>>2]|0);w=14}}else w=14;if((w|0)==14){h=f<<1;c[g+20>>2]=h;if(!(af(i)|0))b=(af(e)|0)!=0;else b=1;h=ml(h,b&1)|0;c[v>>2]=h;c[g+24>>2]=f}if(k){m=h;do{bl(m,i,e,f);r=Wk(j,j,c[v>>2]|0,f)|0;j=j+(f<<2)|0;m=c[v>>2]|0;u=m+(f<<2)|0;h=u+4|0;u=c[u>>2]|0;r=u+r|0;b=j+4|0;c[j>>2]=r;a:do if(r>>>0<u>>>0){d=f;while(1){d=d+-1|0;if(!d)break a;k=h+4|0;u=(c[h>>2]|0)+1|0;l=b+4|0;c[b>>2]=u;if(!u){h=k;b=l}else{o=d;q=k;s=l;w=21;break}}}else{o=f;q=h;s=b;w=21}while(0);if(((w|0)==21?(w=0,(s|0)!=(q|0)):0)?(t=o+-1|0,(o|0)>1):0){h=0;do{c[s+(h<<2)>>2]=c[q+(h<<2)>>2];h=h+1|0}while((h|0)!=(t|0))}i=i+(f<<2)|0;a=a-f|0}while((a|0)>=(f|0))}else{m=h;do{cl(m,i,e,f,c[x>>2]|0);s=Wk(j,j,c[v>>2]|0,f)|0;j=j+(f<<2)|0;m=c[v>>2]|0;t=m+(f<<2)|0;h=t+4|0;t=c[t>>2]|0;s=t+s|0;b=j+4|0;c[j>>2]=s;b:do if(s>>>0<t>>>0){d=f;while(1){d=d+-1|0;if(!d)break b;k=h+4|0;t=(c[h>>2]|0)+1|0;l=b+4|0;c[b>>2]=t;if(!t){h=k;b=l}else{n=d;p=k;r=l;w=28;break}}}else{n=f;p=h;r=b;w=28}while(0);if(((w|0)==28?(w=0,(r|0)!=(p|0)):0)?(u=n+-1|0,(n|0)>1):0){h=0;do{c[r+(h<<2)>>2]=c[p+(h<<2)>>2];h=h+1|0}while((h|0)!=(u|0))}i=i+(f<<2)|0;a=a-f|0}while((a|0)>=(f|0))}}if(!a)return;if((a|0)<16)el(c[x>>2]|0,e,f,i,a)|0;else{h=c[g>>2]|0;if(!h){h=kf(1,28)|0;c[g>>2]=h}dl(c[x>>2]|0,e,f,i,a,h)}i=Wk(j,j,c[x>>2]|0,f)|0;e=j+(f<<2)|0;x=(c[x>>2]|0)+(f<<2)|0;h=x+4|0;x=c[x>>2]|0;f=x+i|0;i=e+4|0;c[e>>2]=f;c:do if(f>>>0<x>>>0){while(1){a=a+-1|0;if(!a)break;b=h+4|0;x=(c[h>>2]|0)+1|0;j=i+4|0;c[i>>2]=x;if(!x){h=b;i=j}else{i=j;break c}}return}else b=h;while(0);if((i|0)==(b|0))return;j=a+-1|0;if((a|0)>1)h=0;else return;do{c[i+(h<<2)>>2]=c[b+(h<<2)>>2];h=h+1|0}while((h|0)!=(j|0));return}function el(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=j;i=a+(d<<2)|0;if((f|0)>=16){c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;c[g+16>>2]=0;c[g+20>>2]=0;c[g+24>>2]=0;dl(a,b,d,e,f,g);fl(g);f=c[i+(f<<2)+-4>>2]|0;l=j;return f|0}if(!f){f=0;l=j;return f|0}h=c[e>>2]|0;do if(h>>>0<2){g=(d|0)>0;if((h|0)==1){if(g)g=0;else{g=0;break}do{c[a+(g<<2)>>2]=c[b+(g<<2)>>2];g=g+1|0}while((g|0)!=(d|0));g=0}else{if(!g){g=0;break}Yq(a|0,0,d<<2|0)|0;g=0;break}}else g=$k(a,b,d,h)|0;while(0);c[i>>2]=g;if((f|0)>1)h=1;else{f=g;l=j;return f|0}do{a=a+4|0;g=c[e+(h<<2)>>2]|0;if(g>>>0<2)if((g|0)==1)g=Wk(a,a,b,d)|0;else g=0;else g=Fn(a,b,d,g)|0;c[a+(d<<2)>>2]=g;h=h+1|0}while((h|0)!=(f|0));l=j;return g|0}function fl(a){a=a|0;var b=0,d=0;b=c[a+16>>2]|0;if(b|0)ol(b,c[a+20>>2]|0);b=c[a+4>>2]|0;if(b|0)ol(b,c[a+8>>2]|0);b=c[a>>2]|0;if(!b)return;do{d=b;b=c[b>>2]|0;a=c[d+16>>2]|0;if(a|0)ol(a,c[d+20>>2]|0);a=c[d+4>>2]|0;if(a|0)ol(a,c[d+8>>2]|0);cf(d)}while((b|0)!=0);return}function gl(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;i=a+-4|0;h=32-e|0;a=c[b>>2]|0;j=a<<h;if((d|0)>1){f=a;g=1;while(1){a=c[b+(g<<2)>>2]|0;c[i+(g<<2)>>2]=a<<h|f>>>e;g=g+1|0;if((g|0)==(d|0))break;else f=a}}else d=1;c[i+(d<<2)>>2]=a>>>e;return j|0}function hl(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;g=b+(e<<2)|0;f=d+(e<<2)|0;a=a+(e<<2)|0;b=0-e|0;d=0;do{i=c[g+(b<<2)>>2]|0;h=(c[f+(b<<2)>>2]|0)+d|0;e=i-h|0;d=(e>>>0>i>>>0&1)+(h>>>0<d>>>0&1)|0;c[a+(b<<2)>>2]=e;b=b+1|0}while((b|0)!=0);return d|0}function il(){return 45905}function jl(){var a=0,b=0;a=gf(20)|0;b=gf(4)|0;c[a+16>>2]=b;c[a>>2]=1;c[b>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[17636]=a;c[a+12>>2]=48;a=gf(20)|0;b=gf(4)|0;c[a+16>>2]=b;c[a>>2]=1;c[b>>2]=1;c[a+4>>2]=1;c[a+8>>2]=0;c[17637]=a;c[a+12>>2]=48;a=gf(20)|0;b=gf(4)|0;c[a+16>>2]=b;c[a>>2]=1;c[b>>2]=2;c[a+4>>2]=1;c[a+8>>2]=0;c[17638]=a;c[a+12>>2]=48;a=gf(20)|0;b=gf(4)|0;c[a+16>>2]=b;c[a>>2]=1;c[b>>2]=3;c[a+4>>2]=1;c[a+8>>2]=0;c[17639]=a;c[a+12>>2]=48;a=gf(20)|0;b=gf(4)|0;c[a+16>>2]=b;c[a>>2]=1;c[b>>2]=4;c[a+4>>2]=1;c[a+8>>2]=0;c[17640]=a;c[a+12>>2]=48;a=gf(20)|0;b=gf(4)|0;c[a+16>>2]=b;c[a>>2]=1;c[b>>2]=8;c[a+4>>2]=1;c[a+8>>2]=0;c[17641]=a;c[a+12>>2]=48;return 0}function kl(a){a=a|0;var b=0,d=0;b=gf(20)|0;d=gf(4)|0;c[b+16>>2]=d;c[b>>2]=1;c[b+12>>2]=0;c[d>>2]=a;c[b+4>>2]=(a|0)!=0&1;c[b+8>>2]=0;return b|0}function ll(a){a=a|0;var b=0,d=0;b=gf(20)|0;if(!a)d=0;else d=gf(a<<2)|0;c[b+16>>2]=d;c[b>>2]=a;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;return b|0}function ml(a,b){a=a|0;b=b|0;var d=0;d=(a|0)!=0;a=d?a<<2:4;if(!b)a=gf(a)|0;else a=jf(a)|0;if(d)return a|0;c[a>>2]=0;return a|0}function nl(a){a=a|0;var b=0,d=0;b=gf(20)|0;if(!a)d=0;else d=jf(a<<2)|0;c[b+16>>2]=d;c[b>>2]=a;c[b+12>>2]=1;c[b+4>>2]=0;c[b+8>>2]=0;return b|0}function ol(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;if(!b)return;e=d<<2;if(e|0){if(!(b&7))d=b;else{d=b;do{a[d>>0]=0;d=d+1|0;e=e+-1|0}while((e|0)!=0&(d&7|0)!=0)}if(e>>>0>=8){h=e+-8|0;i=h&-8;g=i+8|0;f=d;while(1){j=f;c[j>>2]=0;c[j+4>>2]=0;e=e+-8|0;if(e>>>0<=7)break;else f=f+8|0}d=d+g|0;e=h-i|0}if(e|0)while(1){a[d>>0]=0;e=e+-1|0;if(!e)break;else d=d+1|0}}cf(b);return}function pl(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=b+16|0;l=c[k>>2]|0;if(!l){c[k>>2]=d;c[b>>2]=e;return}g=c[b>>2]<<2;if(g|0){if(!(l&7))f=l;else{f=l;do{a[f>>0]=0;f=f+1|0;g=g+-1|0}while((g|0)!=0&(f&7|0)!=0)}if(g>>>0>=8){i=g+-8|0;j=i&-8;h=f;while(1){m=h;c[m>>2]=0;c[m+4>>2]=0;g=g+-8|0;if(g>>>0<=7)break;else h=h+8|0}f=f+(j+8)|0;g=i-j|0}if(g|0)while(1){a[f>>0]=0;g=g+-1|0;if(!g)break;else f=f+1|0}}cf(l);c[k>>2]=d;c[b>>2]=e;return}function ql(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[a>>2]|0;if(e>>>0>=b>>>0){d=c[a+4>>2]|0;if(d>>>0>=e>>>0)return;e=c[a+16>>2]|0;do{c[e+(d<<2)>>2]=0;d=d+1|0}while(d>>>0<(c[a>>2]|0)>>>0);return}e=a+16|0;d=c[e>>2]|0;do if(!d)if(!(c[a+12>>2]&1)){c[e>>2]=kf(b,4)|0;break}else{c[e>>2]=lf(b,4)|0;break}else{g=b<<2;f=hf(d,g)|0;c[e>>2]=f;d=c[a>>2]|0;if(d>>>0<b>>>0)Yq(f+(d<<2)|0,0,g-(d<<2)|0)|0}while(0);c[a>>2]=b;return}function rl(a){a=a|0;var b=0,d=0,e=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=e;b=a+12|0;if(a|0?c[b>>2]&16|0:0){Je(46049,d);l=e;return}c[a+4>>2]=0;c[b>>2]=0;l=e;return}function sl(){var a=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);Je(46049,a);l=a;return}function tl(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;n=l;l=l+16|0;if((l|0)>=(m|0))$(16);k=n;if(!b){l=n;return}i=b+12|0;d=c[i>>2]|0;if(d&32|0){l=n;return}j=c[b+16>>2]|0;if(!(d&4)){if(j|0){e=c[b>>2]<<2;if(e|0){if(!(j&7))d=j;else{d=j;do{a[d>>0]=0;d=d+1|0;e=e+-1|0}while((e|0)!=0&(d&7|0)!=0)}if(e>>>0>=8){g=e+-8|0;h=g&-8;f=d;while(1){o=f;c[o>>2]=0;c[o+4>>2]=0;e=e+-8|0;if(e>>>0<=7)break;else f=f+8|0}d=d+(h+8)|0;e=g-h|0}if(e|0)while(1){a[d>>0]=0;e=e+-1|0;if(!e)break;else d=d+1|0}}cf(j)}}else cf(j);if(c[i>>2]&-3864|0)Ne(46093,k);cf(b);l=n;return}function ul(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;p=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=p;if(!b){b=gf(20)|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;if(!b){o=0;f=c[3]|0}else h=4}else h=4;if((h|0)==4){f=c[b+12>>2]|0;if(!(f&16))o=b;else{Je(46049,g);d=b;l=p;return d|0}}n=o+12|0;j=o+16|0;k=c[j>>2]|0;if(!(f&4)){if(k|0){f=c[o>>2]<<2;if(f|0){if(!(k&7))b=k;else{b=k;do{a[b>>0]=0;b=b+1|0;f=f+-1|0}while((f|0)!=0&(b&7|0)!=0)}if(f>>>0>=8){h=f+-8|0;i=h&-8;g=b;while(1){q=g;c[q>>2]=0;c[q+4>>2]=0;f=f+-8|0;if(f>>>0<=7)break;else g=g+8|0}b=b+(i+8)|0;f=h-i|0}if(f|0)while(1){a[b>>0]=0;f=f+-1|0;if(!f)break;else b=b+1|0}}cf(k)}}else cf(k);c[j>>2]=d;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=e;b=c[n>>2]&3840;c[n>>2]=b|4;if(!(af(d)|0)){q=o;l=p;return q|0}c[n>>2]=b|5;q=o;l=p;return q|0}function vl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=(c+7|0)>>>3;if(!(af(b)|0))e=_e(d)|0;else e=$e(d)|0;if(!e){e=0;return e|0}cr(e|0,b|0,d|0)|0;e=ul(a,e,c)|0;return e|0}function wl(a,b){a=a|0;b=b|0;var d=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);if(!(c[a+12>>2]&4))Ne(46125,d);if(b|0)c[b>>2]=c[a+8>>2];l=d;return c[a+16>>2]|0}function xl(a,b){a=a|0;b=b|0;var d=0,e=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);if(!(c[a+12>>2]&4))Ne(46125,e);if(b){d=c[a+8>>2]|0;c[b>>2]=d;b=c[a+16>>2]|0;if(!b){d=0;l=e;return d|0}}else{d=0;b=c[a+16>>2]|0}a=(d+7|0)>>>3;if(!(af(b)|0))d=_e(a)|0;else d=$e(a)|0;if(!d){d=0;l=e;return d|0}cr(d|0,b|0,a|0)|0;l=e;return d|0}function yl(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if(!a){a=0;return a|0}k=a+12|0;e=c[k>>2]|0;if(e&4|0){f=a+16|0;k=(af(c[f>>2]|0)|0)==0;d=a+8|0;b=((c[d>>2]|0)+7|0)/8|0;if(k)e=gf(b)|0;else e=jf(b)|0;b=c[f>>2]|0;if(!b)b=c[d>>2]|0;else{a=c[d>>2]|0;cr(e|0,b|0,(a+7|0)/8|0|0)|0;b=a}a=ul(0,e,b)|0;k=a+12|0;c[k>>2]=c[k>>2]&-49;return a|0}j=a+4|0;g=c[j>>2]|0;b=gf(20)|0;f=(g|0)==0;d=g<<2;if(!(e&1)){if(f)d=0;else d=gf(d)|0;c[b+16>>2]=d;c[b>>2]=g;e=b+4|0;c[e>>2]=0;g=b+8|0;c[g>>2]=0;h=b+12|0;c[h>>2]=0;i=d}else{if(f)d=0;else d=jf(d)|0;c[b+16>>2]=d;c[b>>2]=g;h=b+12|0;c[h>>2]=1;e=b+4|0;c[e>>2]=0;g=b+8|0;c[g>>2]=0;i=d}f=c[j>>2]|0;c[e>>2]=f;c[g>>2]=c[a+8>>2];c[h>>2]=c[k>>2]&-49;if((f|0)<=0){a=b;return a|0}e=c[a+16>>2]|0;d=0;do{c[i+(d<<2)>>2]=c[e+(d<<2)>>2];d=d+1|0}while((d|0)<(f|0));return b|0}function zl(a,b){a=a|0;b=b|0;var d=0,e=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=e;if((a|0)==(b|0)){if(a|0?c[a+12>>2]&16|0:0){Je(46049,d);l=e;return}}else Al(a,b)|0;c[a+8>>2]=(c[b+8>>2]|0)==0&1;l=e;return}function Al(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=k;i=c[b+4>>2]|0;j=c[b+8>>2]|0;if(!a){a=gf(20)|0;if(!i)d=0;else d=gf(i<<2)|0;c[a+16>>2]=d;c[a>>2]=i;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0}h=a+12|0;f=c[h>>2]|0;if(f&16|0){Je(46049,e);l=k;return a|0}e=c[a>>2]|0;a:do if((e|0)<(i|0)){if(e>>>0>=i>>>0){d=c[a+4>>2]|0;if(d>>>0>=e>>>0)break;e=c[a+16>>2]|0;while(1){c[e+(d<<2)>>2]=0;d=d+1|0;if(d>>>0>=(c[a>>2]|0)>>>0)break a}}g=a+16|0;d=c[g>>2]|0;do if(!d)if(!(f&1)){c[g>>2]=kf(i,4)|0;break}else{c[g>>2]=lf(i,4)|0;break}else{f=i<<2;e=hf(d,f)|0;c[g>>2]=e;d=c[a>>2]|0;if(d>>>0<i>>>0)Yq(e+(d<<2)|0,0,f-(d<<2)|0)|0}while(0);c[a>>2]=i}while(0);e=c[a+16>>2]|0;f=c[b+16>>2]|0;if((i|0)>0){d=0;do{c[e+(d<<2)>>2]=c[f+(d<<2)>>2];d=d+1|0}while((d|0)!=(i|0))}c[a+4>>2]=i;c[h>>2]=c[b+12>>2]&-49;c[a+8>>2]=j;l=k;return a|0}function Bl(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;if(!a){g=0;return g|0}g=a+12|0;d=c[g>>2]|0;if(d&4|0){d=a+8|0;e=((c[d>>2]|0)+7|0)/8|0;a=a+16|0;if(!(af(c[a>>2]|0)|0))b=_e(e)|0;else b=$e(e)|0;cr(b|0,c[a>>2]|0,e|0)|0;g=ul(0,b,c[d>>2]|0)|0;return g|0}e=c[a+4>>2]|0;f=gf(20)|0;b=(e|0)==0;a=e<<2;if(!(d&1)){if(b)a=0;else a=gf(a)|0;c[f+16>>2]=a;c[f>>2]=e;a=f+4|0;c[a>>2]=0;b=f+8|0;c[b>>2]=0;d=f+12|0;c[d>>2]=0}else{if(b)a=0;else a=jf(a)|0;c[f+16>>2]=a;c[f>>2]=e;d=f+12|0;c[d>>2]=1;a=f+4|0;c[a>>2]=0;b=f+8|0;c[b>>2]=0}c[a>>2]=0;c[b>>2]=0;c[d>>2]=c[g>>2];g=f;return g|0}function Cl(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0;q=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=q;if(b|0){p=b+12|0;if(c[p>>2]&16|0){Je(46049,e);l=q;return}k=d+16|0;n=c[k>>2]|0;o=c[d>>2]|0;i=b+16|0;j=c[i>>2]|0;if(j|0){f=c[b>>2]<<2;if(f|0){if(!(j&7))e=j;else{e=j;do{a[e>>0]=0;e=e+1|0;f=f+-1|0}while((f|0)!=0&(e&7|0)!=0)}if(f>>>0>=8){h=f+-8|0;g=e;while(1){r=g;c[r>>2]=0;c[r+4>>2]=0;f=f+-8|0;if(f>>>0<=7)break;else g=g+8|0}f=h&-8;e=e+(f+8)|0;f=h-f|0}if(f|0)while(1){a[e>>0]=0;f=f+-1|0;if(!f)break;else e=e+1|0}}cf(j)}c[i>>2]=n;c[b>>2]=o;r=d+4|0;c[b+4>>2]=c[r>>2];c[b+8>>2]=c[d+8>>2];c[p>>2]=c[d+12>>2];c[d>>2]=0;c[r>>2]=0;c[k>>2]=0}tl(d);l=q;return}function Dl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=c[b>>2]|0;e=(d|0)!=0;if((c[a>>2]|0)!=(g|0))Ne(46155,i);if((g|0)>0?(h=c[a+16>>2]|0,f=c[b+16>>2]|0,e):0){d=0;do{c[h+(d<<2)>>2]=c[f+(d<<2)>>2];d=d+1|0}while((d|0)!=(g|0))}h=a+4|0;g=c[h>>2]|0;c[h>>2]=(e?c[b+4>>2]^g:0)^g;h=a+8|0;g=c[h>>2]|0;c[h>>2]=(e?c[b+8>>2]^g:0)^g;l=i;return a|0}function El(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=f;if(!a){a=gf(20)|0;c[a+16>>2]=gf(4)|0;c[a>>2]=1;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;if(!a)a=0;else e=3}else e=3;if((e|0)==3)if(c[a+12>>2]&16){Je(46049,d);b=a;l=f;return b|0}e=c[a>>2]|0;a:do if((e|0)<1){if(e|0){d=c[a+4>>2]|0;if(d>>>0>=e>>>0)break;e=c[a+16>>2]|0;while(1){c[e+(d<<2)>>2]=0;d=d+1|0;if(d>>>0>=(c[a>>2]|0)>>>0)break a}}e=a+16|0;d=c[e>>2]|0;do if(!d)if(!(c[a+12>>2]&1)){c[e>>2]=kf(1,4)|0;break}else{c[e>>2]=lf(1,4)|0;break}else{d=hf(d,4)|0;c[e>>2]=d;if(!(c[a>>2]|0))c[d>>2]=0}while(0);c[a>>2]=1}while(0);c[c[a+16>>2]>>2]=b;c[a+4>>2]=(b|0)!=0&1;c[a+8>>2]=0;c[a+12>>2]=0;b=a;l=f;return b|0}function Fl(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+32|0;if((l|0)>=(m|0))$(32);e=d;c[e>>2]=c[a>>2];c[e+4>>2]=c[a+4>>2];c[e+8>>2]=c[a+8>>2];c[e+12>>2]=c[a+12>>2];c[e+16>>2]=c[a+16>>2];c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];c[a+16>>2]=c[b+16>>2];c[b>>2]=c[e>>2];c[b+4>>2]=c[e+4>>2];c[b+8>>2]=c[e+8>>2];c[b+12>>2]=c[e+12>>2];c[b+16>>2]=c[e+16>>2];l=d;return}function Gl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;i=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=c[a>>2]|0;e=(d|0)!=0;if((g|0)!=(c[b>>2]|0))Ne(46186,i);if((g|0)>0?(h=c[a+16>>2]|0,f=c[b+16>>2]|0,e):0){d=0;do{n=h+(d<<2)|0;j=f+(d<<2)|0;o=c[j>>2]|0;k=o^c[n>>2];c[n>>2]=o;c[j>>2]=c[j>>2]^k;d=d+1|0}while((d|0)!=(g|0))}o=a+4|0;n=c[o>>2]|0;k=b+4|0;j=e?c[k>>2]^n:0;c[o>>2]=j^n;c[k>>2]=c[k>>2]^j;k=a+8|0;j=c[k>>2]|0;o=b+8|0;n=e?c[o>>2]^j:0;c[k>>2]=n^j;c[o>>2]=c[o>>2]^n;l=i;return}function Hl(a){a=a|0;var b=0,d=0;a=(a+31|0)>>>5;b=gf(20)|0;if(!a)d=0;else d=gf(a<<2)|0;c[b+16>>2]=d;c[b>>2]=a;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;return b|0}function Il(a){a=a|0;var b=0,d=0;a=(a+31|0)>>>5;b=gf(20)|0;if(!a)d=0;else d=jf(a<<2)|0;c[b+16>>2]=d;c[b>>2]=a;c[b+12>>2]=1;c[b+4>>2]=0;c[b+8>>2]=0;return b|0}function Jl(a){a=a|0;tl(a);return}function Kl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=g;f=(b+7|0)>>>3;b=(a|0)!=0;if(b?c[a+12>>2]&16|0:0){Je(46049,e);l=g;return}do if(!d){if(b?(c[a+12>>2]&1|0)!=0:0)b=jf(f)|0;else b=gf(f)|0;Hj(b,f)}else{if(b?c[a+12>>2]&1|0:0){b=Cj(f,d)|0;break}b=Aj(f,d)|0}while(0);Rk(a,b,f,0);cf(b);l=g;return}function Ll(a,b){a=a|0;b=b|0;var d=0,e=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);switch(b|0){case 1:{d=c[a+12>>2]&1;break}case 2:{d=(c[a+12>>2]|0)>>>2&1;break}case 4:{d=(c[a+12>>2]|0)>>>4&1;break}case 8:{d=(c[a+12>>2]|0)>>>5&1;break}case 2048:case 1024:case 512:case 256:{d=(c[a+12>>2]&b|0)!=0&1;break}default:Ne(46218,e)}l=e;return d|0}function Ml(a){a=a|0;var b=0,d=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=d;if((a|0)<0|a>>>0>6){c[b>>2]=a;Ne(46238,b)}a=c[70544+(a<<2)>>2]|0;if(!a)Ne(46269,d+8|0);else{l=d;return a|0}return 0}function Nl(){return 46300}function Ol(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0;o=l;l=l+64|0;if((l|0)>=(m|0))$(64);k=o;n=Oq(172)|0;if(!n){n=0;l=o;return n|0}c[n>>2]=1779033703;c[n+4>>2]=-1150833019;c[n+8>>2]=1013904242;c[n+12>>2]=-1521486534;c[n+16>>2]=1359893119;c[n+20>>2]=-1694144372;c[n+24>>2]=528734635;c[n+28>>2]=1541459225;c[n+32>>2]=0;c[n+36>>2]=0;i=n+40|0;a[i>>0]=0;if(!b){l=o;return n|0}g=k;h=g+64|0;do{a[g>>0]=0;g=g+1|0}while((g|0)<(h|0));j=n+105|0;g=j;h=g+64|0;do{a[g>>0]=0;g=g+1|0}while((g|0)<(h|0));do if(e>>>0<65){cr(k|0,b|0,e|0)|0;cr(j|0,b|0,e|0)|0;b=0}else{f=Oq(172)|0;if(f|0){c[f>>2]=1779033703;c[f+4>>2]=-1150833019;c[f+8>>2]=1013904242;c[f+12>>2]=-1521486534;c[f+16>>2]=1359893119;c[f+20>>2]=-1694144372;c[f+24>>2]=528734635;c[f+28>>2]=1541459225;c[f+32>>2]=0;c[f+36>>2]=0;a[f+40>>0]=0;Pl(f,b,e);Ql(f);b=f+41|0;g=k;e=b;h=g+32|0;do{a[g>>0]=a[e>>0]|0;g=g+1|0;e=e+1|0}while((g|0)<(h|0));g=j;e=b;h=g+32|0;do{a[g>>0]=a[e>>0]|0;g=g+1|0;e=e+1|0}while((g|0)<(h|0));Rl(f);b=0;break}Pq(n);n=0;l=o;return n|0}while(0);do{h=k+b|0;a[h>>0]=(d[h>>0]|0)^54;h=j+b|0;a[h>>0]=(d[h>>0]|0)^92;b=b+1|0}while((b|0)!=64);a[i>>0]=a[i>>0]|2;Pl(n,k,64);a[k>>0]=0;a[k+1>>0]=0;a[k+2>>0]=0;a[k+3>>0]=0;a[k+4>>0]=0;a[k+5>>0]=0;a[k+6>>0]=0;a[k+7>>0]=0;a[k+8>>0]=0;a[k+9>>0]=0;a[k+10>>0]=0;a[k+11>>0]=0;a[k+12>>0]=0;a[k+13>>0]=0;a[k+14>>0]=0;a[k+15>>0]=0;a[k+16>>0]=0;a[k+17>>0]=0;a[k+18>>0]=0;a[k+19>>0]=0;a[k+20>>0]=0;a[k+21>>0]=0;a[k+22>>0]=0;a[k+23>>0]=0;a[k+24>>0]=0;a[k+25>>0]=0;a[k+26>>0]=0;a[k+27>>0]=0;a[k+28>>0]=0;a[k+29>>0]=0;a[k+30>>0]=0;a[k+31>>0]=0;a[k+32>>0]=0;a[k+33>>0]=0;a[k+34>>0]=0;a[k+35>>0]=0;a[k+36>>0]=0;a[k+37>>0]=0;a[k+38>>0]=0;a[k+39>>0]=0;a[k+40>>0]=0;a[k+41>>0]=0;a[k+42>>0]=0;a[k+43>>0]=0;a[k+44>>0]=0;a[k+45>>0]=0;a[k+46>>0]=0;a[k+47>>0]=0;a[k+48>>0]=0;a[k+49>>0]=0;a[k+50>>0]=0;a[k+51>>0]=0;a[k+52>>0]=0;a[k+53>>0]=0;a[k+54>>0]=0;a[k+55>>0]=0;a[k+56>>0]=0;a[k+57>>0]=0;a[k+58>>0]=0;a[k+59>>0]=0;a[k+60>>0]=0;a[k+61>>0]=0;a[k+62>>0]=0;a[k+63>>0]=0;l=o;return n|0}function Pl(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;g=b+40|0;if(a[g>>0]&1)return;k=b+36|0;f=c[k>>2]|0;if((f|0)==64){Sl(b,b+41|0);c[k>>2]=0;f=b+32|0;c[f>>2]=(c[f>>2]|0)+1;f=0}if(!d)return;a:do if(!f)f=0;else{b:do if(e|0){if((f|0)<64)do{j=a[d>>0]|0;c[k>>2]=f+1;a[b+41+f>>0]=j;e=e+-1|0;if(!e)break b;d=d+1|0;f=c[k>>2]|0}while((f|0)<64);if(!((f|0)==64&(a[g>>0]&1)==0))break a;Sl(b,b+41|0);c[k>>2]=0;f=b+32|0;c[f>>2]=(c[f>>2]|0)+1;f=0;break a}while(0);if(a[g>>0]&1)return;if((c[k>>2]|0)!=64)return;Sl(b,b+41|0);c[k>>2]=0;k=b+32|0;c[k>>2]=(c[k>>2]|0)+1;return}while(0);if(e>>>0>63){g=b+32|0;i=e+-64|0;j=i&-64;h=j+64|0;f=d;while(1){Sl(b,f);c[k>>2]=0;c[g>>2]=(c[g>>2]|0)+1;e=e+-64|0;if(e>>>0<=63)break;else f=f+64|0}d=d+h|0;e=i-j|0;f=0}if(!((e|0)!=0&(f|0)<64))return;while(1){j=a[d>>0]|0;c[k>>2]=f+1;a[b+41+f>>0]=j;e=e+-1|0;if(!e){f=22;break}f=c[k>>2]|0;if((f|0)>=64){f=22;break}else d=d+1|0}if((f|0)==22)return}function Ql(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=b+40|0;if(a[m>>0]&1)return;k=b+36|0;d=c[k>>2]|0;if((d|0)==64){Sl(b,b+41|0);c[k>>2]=0;f=b+32|0;e=(c[f>>2]|0)+1|0;c[f>>2]=e;d=0}else{e=b+32|0;f=e;e=c[e>>2]|0}g=e<<6;l=g+d|0;g=(l>>>0<g>>>0&1)+(e>>>26)|0;h=l<<3;i=g<<3|l>>>29;c[k>>2]=d+1;j=b+41|0;a[b+41+d>>0]=-128;e=c[k>>2]|0;if((d|0)<56){if((e|0)<56){d=e;do{c[k>>2]=d+1;a[b+41+d>>0]=0;d=c[k>>2]|0}while((d|0)<56)}}else{if((e|0)<64){d=e;do{c[k>>2]=d+1;a[b+41+d>>0]=0;d=c[k>>2]|0}while((d|0)<64)}else d=e;if((d|0)==64&(a[m>>0]&1)==0){Sl(b,b+41|0);c[k>>2]=0;c[f>>2]=(c[f>>2]|0)+1}d=j;e=d+56|0;do{a[d>>0]=0;d=d+1|0}while((d|0)<(e|0))}a[b+97>>0]=0;a[b+98>>0]=0;a[b+99>>0]=g>>>5;a[b+100>>0]=i;a[b+101>>0]=l>>>21;a[b+102>>0]=l>>>13;a[b+103>>0]=l>>>5;a[b+104>>0]=h;Sl(b,j);l=c[b>>2]|0;a[j>>0]=l>>>24;a[b+42>>0]=l>>>16;a[b+43>>0]=l>>>8;a[b+44>>0]=l;l=c[b+4>>2]|0;a[b+45>>0]=l>>>24;a[b+46>>0]=l>>>16;a[b+47>>0]=l>>>8;a[b+48>>0]=l;l=c[b+8>>2]|0;a[b+49>>0]=l>>>24;a[b+50>>0]=l>>>16;a[b+51>>0]=l>>>8;a[b+52>>0]=l;l=c[b+12>>2]|0;a[b+53>>0]=l>>>24;a[b+54>>0]=l>>>16;a[b+55>>0]=l>>>8;a[b+56>>0]=l;l=c[b+16>>2]|0;a[b+57>>0]=l>>>24;a[b+58>>0]=l>>>16;a[b+59>>0]=l>>>8;a[b+60>>0]=l;l=c[b+20>>2]|0;a[b+61>>0]=l>>>24;a[b+62>>0]=l>>>16;a[b+63>>0]=l>>>8;a[b+64>>0]=l;l=c[b+24>>2]|0;a[b+65>>0]=l>>>24;a[b+66>>0]=l>>>16;a[b+67>>0]=l>>>8;a[b+68>>0]=l;l=c[b+28>>2]|0;a[b+69>>0]=l>>>24;a[b+70>>0]=l>>>16;a[b+71>>0]=l>>>8;a[b+72>>0]=l;a[m>>0]=a[m>>0]|1;return}function Rl(b){b=b|0;if(!b)return;if(a[b+40>>0]&2){a[b+105>>0]=0;a[b+106>>0]=0;a[b+107>>0]=0;a[b+108>>0]=0;a[b+109>>0]=0;a[b+110>>0]=0;a[b+111>>0]=0;a[b+112>>0]=0;a[b+113>>0]=0;a[b+114>>0]=0;a[b+115>>0]=0;a[b+116>>0]=0;a[b+117>>0]=0;a[b+118>>0]=0;a[b+119>>0]=0;a[b+120>>0]=0;a[b+121>>0]=0;a[b+122>>0]=0;a[b+123>>0]=0;a[b+124>>0]=0;a[b+125>>0]=0;a[b+126>>0]=0;a[b+127>>0]=0;a[b+128>>0]=0;a[b+129>>0]=0;a[b+130>>0]=0;a[b+131>>0]=0;a[b+132>>0]=0;a[b+133>>0]=0;a[b+134>>0]=0;a[b+135>>0]=0;a[b+136>>0]=0;a[b+137>>0]=0;a[b+138>>0]=0;a[b+139>>0]=0;a[b+140>>0]=0;a[b+141>>0]=0;a[b+142>>0]=0;a[b+143>>0]=0;a[b+144>>0]=0;a[b+145>>0]=0;a[b+146>>0]=0;a[b+147>>0]=0;a[b+148>>0]=0;a[b+149>>0]=0;a[b+150>>0]=0;a[b+151>>0]=0;a[b+152>>0]=0;a[b+153>>0]=0;a[b+154>>0]=0;a[b+155>>0]=0;a[b+156>>0]=0;a[b+157>>0]=0;a[b+158>>0]=0;a[b+159>>0]=0;a[b+160>>0]=0;a[b+161>>0]=0;a[b+162>>0]=0;a[b+163>>0]=0;a[b+164>>0]=0;a[b+165>>0]=0;a[b+166>>0]=0;a[b+167>>0]=0;a[b+168>>0]=0}Pq(b);return}function Sl(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;y=l;l=l+320|0;if((l|0)>=(m|0))$(320);e=y+256|0;u=y;j=c[b>>2]|0;v=b+4|0;f=c[v>>2]|0;w=b+8|0;h=c[w>>2]|0;x=b+12|0;p=c[x>>2]|0;q=b+16|0;i=c[q>>2]|0;r=b+20|0;k=c[r>>2]|0;s=b+24|0;o=c[s>>2]|0;t=b+28|0;n=c[t>>2]|0;a[e+3>>0]=a[d>>0]|0;a[e+2>>0]=a[d+1>>0]|0;a[e+1>>0]=a[d+2>>0]|0;a[e>>0]=a[d+3>>0]|0;g=e+4|0;a[g+3>>0]=a[d+4>>0]|0;a[g+2>>0]=a[d+5>>0]|0;a[g+1>>0]=a[d+6>>0]|0;a[g>>0]=a[d+7>>0]|0;g=e+8|0;a[g+3>>0]=a[d+8>>0]|0;a[g+2>>0]=a[d+9>>0]|0;a[g+1>>0]=a[d+10>>0]|0;a[g>>0]=a[d+11>>0]|0;g=e+12|0;a[g+3>>0]=a[d+12>>0]|0;a[g+2>>0]=a[d+13>>0]|0;a[g+1>>0]=a[d+14>>0]|0;a[g>>0]=a[d+15>>0]|0;g=e+16|0;a[g+3>>0]=a[d+16>>0]|0;a[g+2>>0]=a[d+17>>0]|0;a[g+1>>0]=a[d+18>>0]|0;a[g>>0]=a[d+19>>0]|0;g=e+20|0;a[g+3>>0]=a[d+20>>0]|0;a[g+2>>0]=a[d+21>>0]|0;a[g+1>>0]=a[d+22>>0]|0;a[g>>0]=a[d+23>>0]|0;g=e+24|0;a[g+3>>0]=a[d+24>>0]|0;a[g+2>>0]=a[d+25>>0]|0;a[g+1>>0]=a[d+26>>0]|0;a[g>>0]=a[d+27>>0]|0;g=e+28|0;a[g+3>>0]=a[d+28>>0]|0;a[g+2>>0]=a[d+29>>0]|0;a[g+1>>0]=a[d+30>>0]|0;a[g>>0]=a[d+31>>0]|0;g=e+32|0;a[g+3>>0]=a[d+32>>0]|0;a[g+2>>0]=a[d+33>>0]|0;a[g+1>>0]=a[d+34>>0]|0;a[g>>0]=a[d+35>>0]|0;g=e+36|0;a[g+3>>0]=a[d+36>>0]|0;a[g+2>>0]=a[d+37>>0]|0;a[g+1>>0]=a[d+38>>0]|0;a[g>>0]=a[d+39>>0]|0;g=e+40|0;a[g+3>>0]=a[d+40>>0]|0;a[g+2>>0]=a[d+41>>0]|0;a[g+1>>0]=a[d+42>>0]|0;a[g>>0]=a[d+43>>0]|0;g=e+44|0;a[g+3>>0]=a[d+44>>0]|0;a[g+2>>0]=a[d+45>>0]|0;a[g+1>>0]=a[d+46>>0]|0;a[g>>0]=a[d+47>>0]|0;g=e+48|0;a[g+3>>0]=a[d+48>>0]|0;a[g+2>>0]=a[d+49>>0]|0;a[g+1>>0]=a[d+50>>0]|0;a[g>>0]=a[d+51>>0]|0;g=e+52|0;a[g+3>>0]=a[d+52>>0]|0;a[g+2>>0]=a[d+53>>0]|0;a[g+1>>0]=a[d+54>>0]|0;a[g>>0]=a[d+55>>0]|0;g=e+56|0;a[g+3>>0]=a[d+56>>0]|0;a[g+2>>0]=a[d+57>>0]|0;a[g+1>>0]=a[d+58>>0]|0;a[g>>0]=a[d+59>>0]|0;g=e+60|0;a[g+3>>0]=a[d+60>>0]|0;a[g+2>>0]=a[d+61>>0]|0;a[g+1>>0]=a[d+62>>0]|0;a[g>>0]=a[d+63>>0]|0;d=u;g=d+64|0;do{c[d>>2]=c[e>>2];d=d+4|0;e=e+4|0}while((d|0)<(g|0));d=16;e=c[u>>2]|0;do{g=c[u+(d+-2<<2)>>2]|0;z=e;e=c[u+(d+-15<<2)>>2]|0;c[u+(d<<2)>>2]=z+(c[u+(d+-7<<2)>>2]|0)+((g<<13|g>>>19)^g>>>10^(g<<15|g>>>17))+((e<<14|e>>>18)^e>>>3^(e<<25|e>>>7));d=d+1|0}while((d|0)!=64);e=n;n=o;d=p;g=0;while(1){e=((i<<26|i>>>6)^(i<<21|i>>>11)^(i<<7|i>>>25))+e+((n^k)&i^n)+(c[12216+(g<<2)>>2]|0)+(c[u+(g<<2)>>2]|0)|0;d=e+d|0;e=((j<<30|j>>>2)^(j<<19|j>>>13)^(j<<10|j>>>22))+((j|f)&h|j&f)+e|0;g=g+1|0;if((g|0)==64)break;else{C=j;B=f;A=h;o=i;p=k;z=n;j=e;i=d;f=C;h=B;d=A;k=o;n=p;e=z}}c[b>>2]=(c[b>>2]|0)+e;c[v>>2]=(c[v>>2]|0)+j;c[w>>2]=(c[w>>2]|0)+f;c[x>>2]=(c[x>>2]|0)+h;c[q>>2]=(c[q>>2]|0)+d;c[r>>2]=(c[r>>2]|0)+i;c[s>>2]=(c[s>>2]|0)+k;c[t>>2]=(c[t>>2]|0)+n;l=y;return}function Tl(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;Ql(b);do if(a[b+40>>0]&2){e=Oq(172)|0;if(e|0){c[e>>2]=1779033703;c[e+4>>2]=-1150833019;c[e+8>>2]=1013904242;c[e+12>>2]=-1521486534;c[e+16>>2]=1359893119;c[e+20>>2]=-1694144372;c[e+24>>2]=528734635;c[e+28>>2]=1541459225;c[e+32>>2]=0;c[e+36>>2]=0;a[e+40>>0]=0;Pl(e,b+105|0,64);f=b+41|0;Pl(e,f,32);Ql(e);g=e+41|0;h=f+32|0;do{a[f>>0]=a[g>>0]|0;f=f+1|0;g=g+1|0}while((f|0)<(h|0));Rl(e);break}Pq(b);h=0;return h|0}while(0);if(d|0)c[d>>2]=32;h=b+41|0;return h|0}function Ul(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0;pa=l;l=l+16|0;if((l|0)>=(m|0))$(16);na=pa;oa=b+12|0;if((c[(c[oa>>2]|0)+20>>2]|0)!=16){oa=139;l=pa;return oa|0}if((h+8|0)>>>0>f>>>0){oa=200;l=pa;return oa|0}if(h&7|0){oa=45;l=pa;return oa|0}la=h>>>3;if(h>>>0<16){oa=45;l=pa;return oa|0}ma=b+80|0;if(!(a[b+56>>0]&2)){ka=e;ja=ka;a[ja>>0]=-1499027802;a[ja+1>>0]=-1499027802>>8;a[ja+2>>0]=-1499027802>>16;a[ja+3>>0]=-1499027802>>24;ka=ka+4|0;a[ka>>0]=-1499027802;a[ka+1>>0]=-1499027802>>8;a[ka+2>>0]=-1499027802>>16;a[ka+3>>0]=-1499027802>>24;ka=e}else{ja=b+64|0;ha=ja;ha=d[ha>>0]|d[ha+1>>0]<<8|d[ha+2>>0]<<16|d[ha+3>>0]<<24;ja=ja+4|0;ja=d[ja>>0]|d[ja+1>>0]<<8|d[ja+2>>0]<<16|d[ja+3>>0]<<24;ka=e;ia=ka;a[ia>>0]=ha;a[ia+1>>0]=ha>>8;a[ia+2>>0]=ha>>16;a[ia+3>>0]=ha>>24;ka=ka+4|0;a[ka>>0]=ja;a[ka+1>>0]=ja>>8;a[ka+2>>0]=ja>>16;a[ka+3>>0]=ja>>24;ka=e}dr(e+8|0,g|0,h|0)|0;ia=na;c[ia>>2]=0;c[ia+4>>2]=0;ia=(la|0)==0;ja=b+88|0;z=b+496|0;A=((ma|e)&3|0)==0;B=ma+4|0;C=na+4|0;D=e+4|0;E=ma+1|0;F=na+7|0;G=na+6|0;H=na+5|0;I=na+4|0;J=na+3|0;K=na+2|0;L=na+1|0;M=e+1|0;N=ma+2|0;O=e+2|0;P=ma+3|0;Q=e+3|0;R=ma+4|0;S=e+4|0;T=ma+5|0;U=na+5|0;V=e+5|0;W=ma+6|0;X=na+6|0;Y=e+6|0;Z=ma+7|0;_=na+7|0;aa=e+7|0;ba=na+7|0;ca=na+6|0;da=na+5|0;ea=na+4|0;fa=na+3|0;ga=na+2|0;ha=na+1|0;o=0;y=0;j=0;s=0;r=0;q=0;n=0;k=0;v=0;f=0;g=0;h=0;t=0;i=0;b=0;p=0;while(1){if(!ia)if(A){t=1;k=s;do{w=ka;x=w;x=d[x>>0]|d[x+1>>0]<<8|d[x+2>>0]<<16|d[x+3>>0]<<24;w=w+4|0;w=d[w>>0]|d[w+1>>0]<<8|d[w+2>>0]<<16|d[w+3>>0]<<24;n=ma;u=n;a[u>>0]=x;a[u+1>>0]=x>>8;a[u+2>>0]=x>>16;a[u+3>>0]=x>>24;n=n+4|0;a[n>>0]=w;a[n+1>>0]=w>>8;a[n+2>>0]=w>>16;a[n+3>>0]=w>>24;n=e+(t<<3)|0;w=n;u=w;u=d[u>>0]|d[u+1>>0]<<8|d[u+2>>0]<<16|d[u+3>>0]<<24;w=w+4|0;w=d[w>>0]|d[w+1>>0]<<8|d[w+2>>0]<<16|d[w+3>>0]<<24;x=ja;v=x;a[v>>0]=u;a[v+1>>0]=u>>8;a[v+2>>0]=u>>16;a[v+3>>0]=u>>24;x=x+4|0;a[x>>0]=w;a[x+1>>0]=w>>8;a[x+2>>0]=w>>16;a[x+3>>0]=w>>24;x=pb[c[(c[oa>>2]|0)+36>>2]&63](z,ma,ma)|0;o=x>>>0>o>>>0?x:o;p=p+1<<24>>24;a[ba>>0]=p;if(!(p<<24>>24)){b=q+1<<24>>24;a[ca>>0]=b;if(!(b<<24>>24)){b=r+1<<24>>24;a[da>>0]=b;if(!(b<<24>>24)){x=k+1<<24>>24;a[ea>>0]=x;if(!(x<<24>>24)){h=h+1<<24>>24;a[fa>>0]=h;if(!(h<<24>>24)){g=g+1<<24>>24;a[ga>>0]=g;if(!(g<<24>>24)){f=f+1<<24>>24;a[ha>>0]=f;if(!(f<<24>>24)){a[na>>0]=j+1<<24>>24;r=0;q=0;f=0;g=0;h=0;i=0;b=0}else{r=0;q=0;g=0;h=0;i=0;b=0}}else{r=0;q=0;h=0;i=0;b=0}}else{r=0;q=0;i=0;b=0}}else{r=0;q=0;i=0;b=0}}else{r=b;q=0;i=b;b=0}}else q=b}j=c[na>>2]|0;c[e>>2]=j^c[ma>>2];k=c[C>>2]|0;c[D>>2]=k^c[B>>2];w=ja;u=w;u=d[u>>0]|d[u+1>>0]<<8|d[u+2>>0]<<16|d[u+3>>0]<<24;w=w+4|0;w=d[w>>0]|d[w+1>>0]<<8|d[w+2>>0]<<16|d[w+3>>0]<<24;x=n;v=x;a[v>>0]=u;a[v+1>>0]=u>>8;a[v+2>>0]=u>>16;a[v+3>>0]=u>>24;x=x+4|0;a[x>>0]=w;a[x+1>>0]=w>>8;a[x+2>>0]=w>>16;a[x+3>>0]=w>>24;t=t+1|0;k=k&255;j=j&255}while(t>>>0<=la>>>0);x=j;s=k;u=k;w=j;v=j;t=k}else{w=1;while(1){qa=ka;x=qa;x=d[x>>0]|d[x+1>>0]<<8|d[x+2>>0]<<16|d[x+3>>0]<<24;qa=qa+4|0;qa=d[qa>>0]|d[qa+1>>0]<<8|d[qa+2>>0]<<16|d[qa+3>>0]<<24;u=ma;sa=u;a[sa>>0]=x;a[sa+1>>0]=x>>8;a[sa+2>>0]=x>>16;a[sa+3>>0]=x>>24;u=u+4|0;a[u>>0]=qa;a[u+1>>0]=qa>>8;a[u+2>>0]=qa>>16;a[u+3>>0]=qa>>24;u=e+(w<<3)|0;qa=u;sa=qa;sa=d[sa>>0]|d[sa+1>>0]<<8|d[sa+2>>0]<<16|d[sa+3>>0]<<24;qa=qa+4|0;qa=d[qa>>0]|d[qa+1>>0]<<8|d[qa+2>>0]<<16|d[qa+3>>0]<<24;x=ja;ra=x;a[ra>>0]=sa;a[ra+1>>0]=sa>>8;a[ra+2>>0]=sa>>16;a[ra+3>>0]=sa>>24;x=x+4|0;a[x>>0]=qa;a[x+1>>0]=qa>>8;a[x+2>>0]=qa>>16;a[x+3>>0]=qa>>24;x=pb[c[(c[oa>>2]|0)+36>>2]&63](z,ma,ma)|0;o=x>>>0>o>>>0?x:o;p=p+1<<24>>24;a[F>>0]=p;if(!(p<<24>>24)){b=b+1<<24>>24;a[G>>0]=b;if(!(b<<24>>24)){b=i+1<<24>>24;a[H>>0]=b;if(!(b<<24>>24)){b=t+1<<24>>24;a[I>>0]=b;if(!(b<<24>>24)){h=h+1<<24>>24;a[J>>0]=h;if(!(h<<24>>24)){g=g+1<<24>>24;a[K>>0]=g;if(!(g<<24>>24)){f=f+1<<24>>24;a[L>>0]=f;if(!(f<<24>>24)){j=v+1<<24>>24;a[na>>0]=j;k=j;f=0;g=0;h=0;n=0;s=0;r=0;q=0;i=0;b=0}else{g=0;h=0;n=0;s=0;r=0;q=0;i=0;b=0}}else{h=0;n=0;s=0;r=0;q=0;i=0;b=0}}else{n=0;s=0;r=0;q=0;i=0;b=0}}else{n=b;s=b;r=0;q=0;i=0;b=0}}else{r=b;q=0;i=b;b=0}}else q=b}a[e>>0]=k^a[ma>>0];a[M>>0]=f^a[E>>0];a[O>>0]=g^a[N>>0];a[Q>>0]=h^a[P>>0];a[S>>0]=n^a[R>>0];a[V>>0]=a[U>>0]^a[T>>0];a[Y>>0]=a[X>>0]^a[W>>0];a[aa>>0]=a[_>>0]^a[Z>>0];ra=ja;x=ra;x=d[x>>0]|d[x+1>>0]<<8|d[x+2>>0]<<16|d[x+3>>0]<<24;ra=ra+4|0;ra=d[ra>>0]|d[ra+1>>0]<<8|d[ra+2>>0]<<16|d[ra+3>>0]<<24;sa=u;qa=sa;a[qa>>0]=x;a[qa+1>>0]=x>>8;a[qa+2>>0]=x>>16;a[qa+3>>0]=x>>24;sa=sa+4|0;a[sa>>0]=ra;a[sa+1>>0]=ra>>8;a[sa+2>>0]=ra>>16;a[sa+3>>0]=ra>>24;w=w+1|0;if(w>>>0>la>>>0){x=j;u=n;w=k;v=k;t=n;break}else{t=n;v=k}}}else{x=j;u=n;w=k}y=y+1|0;if((y|0)==6)break;else{j=x;n=u;k=w}}if(!o){sa=0;l=pa;return sa|0}Te(o+16|0);sa=0;l=pa;return sa|0}function Vl(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0;la=l;l=l+16|0;if((l|0)>=(m|0))$(16);ja=la;ka=b+12|0;if((c[(c[ka>>2]|0)+20>>2]|0)!=16){ka=139;l=la;return ka|0}if((f+8|0)>>>0<h>>>0){ka=200;l=la;return ka|0}if(h>>>0<24|(h&7|0)!=0){ka=45;l=la;return ka|0}ha=b+96|0;ia=b+80|0;p=g;B=p;B=d[B>>0]|d[B+1>>0]<<8|d[B+2>>0]<<16|d[B+3>>0]<<24;p=p+4|0;p=d[p>>0]|d[p+1>>0]<<8|d[p+2>>0]<<16|d[p+3>>0]<<24;A=ha;q=A;a[q>>0]=B;a[q+1>>0]=B>>8;a[q+2>>0]=B>>16;a[q+3>>0]=B>>24;A=A+4|0;a[A>>0]=p;a[A+1>>0]=p>>8;a[A+2>>0]=p>>16;a[A+3>>0]=p>>24;dr(e|0,g+8|0,h+-8|0)|0;A=(h>>>3)+-1|0;p=A*6|0;q=p&255;B=ja+7|0;a[B>>0]=q;o=p>>>8&255;C=ja+6|0;a[C>>0]=o;i=p>>>16&255;D=ja+5|0;a[D>>0]=i;p=p>>>24&255;E=ja+4|0;a[E>>0]=p;c[ja>>2]=0;F=(A|0)==0;G=((ha|ia)&3|0)==0;H=b+100|0;I=ia+4|0;J=b+88|0;K=b+496|0;L=ja+3|0;M=ja+2|0;N=ja+1|0;O=b+97|0;P=ia+1|0;Q=b+98|0;R=ia+2|0;S=b+99|0;T=ia+3|0;U=b+100|0;V=ia+4|0;W=b+101|0;X=ja+5|0;Y=ia+5|0;Z=b+102|0;_=ja+6|0;aa=ia+6|0;ba=b+103|0;ca=ja+7|0;da=ia+7|0;ea=ja+3|0;fa=ja+2|0;ga=ja+1|0;f=0;z=5;s=0;h=p;j=0;k=0;n=0;g=0;while(1){if(!F)if(G){x=A;g=q;q=o;p=i;s=j;t=k;u=n;while(1){h=c[ja>>2]|0;c[ia>>2]=h^c[ha>>2];y=c[E>>2]|0;c[I>>2]=y^c[H>>2];v=e+((x<<3)+-8)|0;w=v;n=w;n=d[n>>0]|d[n+1>>0]<<8|d[n+2>>0]<<16|d[n+3>>0]<<24;w=w+4|0;w=d[w>>0]|d[w+1>>0]<<8|d[w+2>>0]<<16|d[w+3>>0]<<24;r=J;o=r;a[o>>0]=n;a[o+1>>0]=n>>8;a[o+2>>0]=n>>16;a[o+3>>0]=n>>24;r=r+4|0;a[r>>0]=w;a[r+1>>0]=w>>8;a[r+2>>0]=w>>16;a[r+3>>0]=w>>24;r=pb[c[(c[ka>>2]|0)+40>>2]&63](K,ia,ia)|0;r=r>>>0>f>>>0?r:f;w=g+-1<<24>>24;a[B>>0]=w;h=h&255;f=y&255;if(!(g<<24>>24)){o=q+-1<<24>>24;a[C>>0]=o;if(!(q<<24>>24)){i=p+-1<<24>>24;a[D>>0]=i;if(!(p<<24>>24)){g=f+-1<<24>>24;a[E>>0]=g;if(!(f<<24>>24)){j=s+-1<<24>>24;a[L>>0]=j;if(!(s<<24>>24)){k=t+-1<<24>>24;a[M>>0]=k;if(!(t<<24>>24)){n=u+-1<<24>>24;a[N>>0]=n;if(!(u<<24>>24)){h=h+-1<<24>>24;a[ja>>0]=h;f=g}else f=g}else{f=g;n=u}}else{f=g;k=t;n=u}}else{f=g;j=s;k=t;n=u}}else{j=s;k=t;n=u}}else{i=p;j=s;k=t;n=u}}else{i=p;o=q;j=s;k=t;n=u}t=ia;s=t;s=d[s>>0]|d[s+1>>0]<<8|d[s+2>>0]<<16|d[s+3>>0]<<24;t=t+4|0;t=d[t>>0]|d[t+1>>0]<<8|d[t+2>>0]<<16|d[t+3>>0]<<24;u=ha;y=u;a[y>>0]=s;a[y+1>>0]=s>>8;a[y+2>>0]=s>>16;a[y+3>>0]=s>>24;u=u+4|0;a[u>>0]=t;a[u+1>>0]=t>>8;a[u+2>>0]=t>>16;a[u+3>>0]=t>>24;u=J;t=u;t=d[t>>0]|d[t+1>>0]<<8|d[t+2>>0]<<16|d[t+3>>0]<<24;u=u+4|0;u=d[u>>0]|d[u+1>>0]<<8|d[u+2>>0]<<16|d[u+3>>0]<<24;y=v;v=y;a[v>>0]=t;a[v+1>>0]=t>>8;a[v+2>>0]=t>>16;a[v+3>>0]=t>>24;y=y+4|0;a[y>>0]=u;a[y+1>>0]=u>>8;a[y+2>>0]=u>>16;a[y+3>>0]=u>>24;x=x+-1|0;if(!x){s=h;u=f;q=w;p=f;g=h;break}else{f=r;g=w;q=o;p=i;s=j;t=k;u=n}}}else{y=A;x=g;g=q;while(1){a[ia>>0]=x^a[ha>>0];a[P>>0]=n^a[O>>0];a[R>>0]=k^a[Q>>0];a[T>>0]=j^a[S>>0];a[V>>0]=p^a[U>>0];a[Y>>0]=a[X>>0]^a[W>>0];a[aa>>0]=a[_>>0]^a[Z>>0];a[da>>0]=a[ca>>0]^a[ba>>0];v=e+((y<<3)+-8)|0;w=v;r=w;r=d[r>>0]|d[r+1>>0]<<8|d[r+2>>0]<<16|d[r+3>>0]<<24;w=w+4|0;w=d[w>>0]|d[w+1>>0]<<8|d[w+2>>0]<<16|d[w+3>>0]<<24;u=J;t=u;a[t>>0]=r;a[t+1>>0]=r>>8;a[t+2>>0]=r>>16;a[t+3>>0]=r>>24;u=u+4|0;a[u>>0]=w;a[u+1>>0]=w>>8;a[u+2>>0]=w>>16;a[u+3>>0]=w>>24;u=pb[c[(c[ka>>2]|0)+40>>2]&63](K,ia,ia)|0;u=u>>>0>f>>>0?u:f;w=g+-1<<24>>24;a[B>>0]=w;if(!(g<<24>>24)){t=o+-1<<24>>24;a[C>>0]=t;if(!(o<<24>>24)){f=i+-1<<24>>24;a[D>>0]=f;if(!(i<<24>>24)){g=h+-1<<24>>24;a[E>>0]=g;if(!(h<<24>>24)){p=j+-1<<24>>24;a[ea>>0]=p;if(!(j<<24>>24)){q=k+-1<<24>>24;a[fa>>0]=q;if(!(k<<24>>24)){r=n+-1<<24>>24;a[ga>>0]=r;if(!(n<<24>>24)){x=s+-1<<24>>24;a[ja>>0]=x;s=x;h=g;i=f;o=t;t=g;j=p;k=q;n=r;g=x}else{h=g;i=f;o=t;t=g;j=p;k=q;n=r;g=x}}else{h=g;i=f;o=t;t=g;j=p;k=q;g=x}}else{h=g;i=f;o=t;t=g;j=p;g=x}}else{h=g;i=f;o=t;t=g;g=x}}else{i=f;o=t;t=p;g=x}}else{o=t;t=p;g=x}}else{t=p;g=x}q=ia;p=q;p=d[p>>0]|d[p+1>>0]<<8|d[p+2>>0]<<16|d[p+3>>0]<<24;q=q+4|0;q=d[q>>0]|d[q+1>>0]<<8|d[q+2>>0]<<16|d[q+3>>0]<<24;r=ha;x=r;a[x>>0]=p;a[x+1>>0]=p>>8;a[x+2>>0]=p>>16;a[x+3>>0]=p>>24;r=r+4|0;a[r>>0]=q;a[r+1>>0]=q>>8;a[r+2>>0]=q>>16;a[r+3>>0]=q>>24;r=J;q=r;q=d[q>>0]|d[q+1>>0]<<8|d[q+2>>0]<<16|d[q+3>>0]<<24;r=r+4|0;r=d[r>>0]|d[r+1>>0]<<8|d[r+2>>0]<<16|d[r+3>>0]<<24;x=v;v=x;a[v>>0]=q;a[v+1>>0]=q>>8;a[v+2>>0]=q>>16;a[v+3>>0]=q>>24;x=x+4|0;a[x>>0]=r;a[x+1>>0]=r>>8;a[x+2>>0]=r>>16;a[x+3>>0]=r>>24;y=y+-1|0;if(!y){r=u;u=h;q=w;p=t;break}else{f=u;x=g;p=t;g=w}}}else{r=f;u=h}if((z|0)>0){f=r;z=z+-1|0;h=u}else break}if(!(a[b+56>>0]&2))if(((((((a[ha>>0]|0)==-90?(a[b+97>>0]|0)==-90:0)?(a[b+98>>0]|0)==-90:0)?(a[b+99>>0]|0)==-90:0)?(a[H>>0]|0)==-90:0)?(a[b+101>>0]|0)==-90:0)?(a[b+102>>0]|0)==-90:0)f=(a[b+103>>0]|0)!=-90&1;else f=1;else f=Tp(ha,b+64|0,8)|0;if(r|0)Te(r+16|0);ka=f|0?10:0;l=la;return ka|0}function Wl(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=c[b+12>>2]|0;h=c[w+20>>2]|0;w=c[w+36>>2]|0;j=(g>>>0)/(h>>>0)|0;t=b+52|0;i=c[t>>2]|0;k=i&8;if((k|0?h:g)>>>0>e>>>0){w=200;return w|0}u=(g>>>0)%(h>>>0)|0;v=(u|0)==0;if(!v){e=i&4;if(h>>>0>=g>>>0|(e|0)==0){w=139;return w|0}}else e=i&4;s=h>>>0<g>>>0;r=((v&(s&(e|0)!=0))<<31>>31)+j|0;e=c[b+28>>2]|0;if(!e){g=b+64|0;if(r){q=h+-4|0;p=q&-4;o=p+4|0;p=q-p|0;q=b+496|0;if(h>>>0>3){e=0;i=g;n=0;while(1){if(!((f|i|d)&3)){m=i+o|0;j=f;k=d;l=h;while(1){c[k>>2]=c[i>>2]^c[j>>2];l=l+-4|0;if(l>>>0<=3)break;else{i=i+4|0;j=j+4|0;k=k+4|0}}i=m;k=f+o|0;l=d+o|0;j=p}else{k=f;l=d;j=h}if(j|0)while(1){a[l>>0]=a[i>>0]^a[k>>0];j=j+-1|0;if(!j)break;else{i=i+1|0;k=k+1|0;l=l+1|0}}i=pb[w&63](q,d,d)|0;e=i>>>0>e>>>0?i:e;f=f+h|0;i=c[t>>2]|0;j=(i&8|0)==0?d+h|0:d;n=n+1|0;if(n>>>0>=r>>>0){p=j;o=f;break}else{i=d;d=j}}}else{n=(h|0)==0;e=0;i=g;m=0;while(1){if(!n){j=f;k=d;l=h;while(1){a[k>>0]=a[i>>0]^a[j>>0];l=l+-1|0;if(!l)break;else{i=i+1|0;j=j+1|0;k=k+1|0}}}k=pb[w&63](q,d,d)|0;e=k>>>0>e>>>0?k:e;k=f+h|0;i=c[t>>2]|0;j=(i&8|0)==0?d+h|0:d;m=m+1|0;if(m>>>0>=r>>>0){p=j;o=k;break}else{i=d;d=j;f=k}}}if((d|0)!=(g|0)){if(!((d|g)&3))if(h>>>0>3){l=h+-4|0;f=l&-4;n=f+4|0;m=d+n|0;j=g;k=h;while(1){c[j>>2]=c[d>>2];k=k+-4|0;if(k>>>0<=3)break;else{d=d+4|0;j=j+4|0}}j=l-f|0;d=m;g=g+n|0}else j=h;else j=h;if(j){i=j;while(1){a[g>>0]=a[d>>0]|0;i=i+-1|0;if(!i)break;else{d=d+1|0;g=g+1|0}}f=o;g=p;i=c[t>>2]|0}else{f=o;g=p}}else{f=o;g=p}}else{e=0;g=d}}else{xb[e&1](b+496|0,b+64|0,d,f,r,k);g=S(r,h)|0;i=c[t>>2]|0;e=0;f=f+g|0;g=(i&8|0)==0?d+g|0:d}if(s&(i&4|0)!=0){j=v?h:u;g=g+(0-h)|0;i=b+64|0;if(!j){j=0;d=i}else{l=j+64|0;d=0;k=i;while(1){u=a[f+d>>0]|0;v=g+d|0;a[g+(d+h)>>0]=a[v>>0]|0;a[v>>0]=a[k>>0]^u;d=d+1|0;if((d|0)==(j|0))break;else k=k+1|0}d=b+l|0}if(j>>>0<h>>>0)while(1){a[g+j>>0]=a[d>>0]|0;j=j+1|0;if((j|0)==(h|0))break;else d=d+1|0}w=pb[w&63](b+496|0,g,g)|0;e=w>>>0>e>>>0?w:e;if(!((g|i)&3))if(h>>>0>3){j=h+-4|0;k=j&-4;f=k+4|0;l=g+f|0;d=i;while(1){c[d>>2]=c[g>>2];h=h+-4|0;if(h>>>0<=3)break;else{g=g+4|0;d=d+4|0}}h=j-k|0;g=l;i=i+f|0}if(h)while(1){a[i>>0]=a[g>>0]|0;h=h+-1|0;if(!h)break;else{g=g+1|0;i=i+1|0}}}if(!e){w=0;return w|0}Te(e+16|0);w=0;return w|0}function Xl(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=c[b+12>>2]|0;j=c[F+20>>2]|0;F=c[F+40>>2]|0;i=(g>>>0)/(j>>>0)|0;if(e>>>0<g>>>0){b=200;return b|0}D=(g>>>0)%(j>>>0)|0;E=(D|0)==0;if(!E){if(j>>>0>=g>>>0){b=139;return b|0}e=b+52|0;h=c[e>>2]|0;if(!(h&4)){b=139;return b|0}else C=e}else{h=b+52|0;C=h;h=c[h>>2]|0}B=j>>>0<g>>>0;if(B&(h&4|0)!=0){i=(E?-2:-1)+i|0;h=b+96|0;g=b+64|0;if(!((g|h)&3))if(j>>>0>3){k=j+-4|0;l=k&-4;n=l+4|0;m=g+n|0;e=j;while(1){c[h>>2]=c[g>>2];e=e+-4|0;if(e>>>0<=3)break;else{g=g+4|0;h=h+4|0}}e=k-l|0;g=m;h=b+96+n|0}else e=j;else e=j;if(e)while(1){a[h>>0]=a[g>>0]|0;e=e+-1|0;if(!e)break;else{g=g+1|0;h=h+1|0}}}e=c[b+32>>2]|0;do if(!e)if(!i){e=0;q=f}else{w=b+496|0;x=b+96|0;y=b+64|0;r=y|x;z=j+-4|0;t=z&-4;s=t+4|0;u=b+96+s|0;v=y+s|0;t=z-t|0;z=S(i,j)|0;A=f+z|0;if(j>>>0>3){e=0;p=d;q=0;o=f}else{q=(j|0)==0;e=0;o=d;p=0;h=f;while(1){f=pb[F&63](w,x,h)|0;e=f>>>0>e>>>0?f:e;if(!q){g=o;k=y;l=h;m=x;n=j;while(1){f=a[l>>0]|0;a[g>>0]=a[m>>0]^a[k>>0];a[k>>0]=f;n=n+-1|0;if(!n)break;else{g=g+1|0;k=k+1|0;l=l+1|0;m=m+1|0}}}p=p+1|0;if((p|0)==(i|0))break;else{o=o+j|0;h=h+j|0}}d=d+z|0;q=A;break}while(1){f=pb[F&63](w,x,o)|0;e=f>>>0>e>>>0?f:e;if(!((r|o|p)&3)){n=o+s|0;h=x;g=o;k=y;l=p;m=j;while(1){f=c[g>>2]|0;c[l>>2]=c[h>>2]^c[k>>2];c[k>>2]=f;m=m+-4|0;if(m>>>0<=3)break;else{h=h+4|0;g=g+4|0;k=k+4|0;l=l+4|0}}g=p+s|0;l=v;m=n;k=u;h=t}else{g=p;l=y;m=o;k=x;h=j}if(h|0)while(1){f=a[m>>0]|0;a[g>>0]=a[k>>0]^a[l>>0];a[l>>0]=f;h=h+-1|0;if(!h)break;else{g=g+1|0;l=l+1|0;m=m+1|0;k=k+1|0}}q=q+1|0;if((q|0)==(i|0))break;else{p=p+j|0;o=o+j|0}}d=d+z|0;q=A}else{qb[e&15](b+496|0,b+64|0,d,f,i);q=S(i,j)|0;e=0;d=d+q|0;q=f+q|0}while(0);if(B&(c[C>>2]&4|0)!=0){t=E?j:D;h=b+96|0;u=b+64|0;v=h;p=u;if(!((p|v)&3))if(j>>>0>3){m=j+-4|0;n=m&-4;o=n+4|0;i=u+o|0;g=u;k=h;l=j;while(1){c[k>>2]=c[g>>2];l=l+-4|0;if(l>>>0<=3)break;else{g=g+4|0;k=k+4|0}}g=m-n|0;k=b+96+o|0}else{g=j;i=u;k=h}else{i=u;k=h;g=j}if(g|0)while(1){a[k>>0]=a[i>>0]|0;g=g+-1|0;if(!g)break;else{i=i+1|0;k=k+1|0}}i=q+j|0;if(!((i|p)&3))if(t>>>0>3){l=t+-4|0;m=l&-4;o=m+4|0;n=i+o|0;g=u;k=t;while(1){c[g>>2]=c[i>>2];k=k+-4|0;if(k>>>0<=3)break;else{i=i+4|0;g=g+4|0}}g=l-m|0;i=n;k=u+o|0}else{g=t;k=u}else{k=u;g=t}if(g|0)while(1){a[k>>0]=a[i>>0]|0;g=g+-1|0;if(!g)break;else{i=i+1|0;k=k+1|0}}s=b+496|0;q=pb[F&63](s,d,q)|0;q=q>>>0>e>>>0?q:e;r=d;if(!((r|p)&3))if(t>>>0>3){l=t+-4|0;m=l&-4;n=m+4|0;g=d+n|0;e=u;i=d;k=t;while(1){c[i>>2]=c[e>>2]^c[i>>2];k=k+-4|0;if(k>>>0<=3)break;else{e=e+4|0;i=i+4|0}}l=l-m|0;e=u+n|0}else{l=t;e=u;g=d}else{e=u;g=d;l=t}if(l|0){k=g;i=g;g=l;while(1){a[i>>0]=a[e>>0]^a[k>>0];g=g+-1|0;if(!g)break;else{e=e+1|0;k=k+1|0;i=i+1|0}}}g=d+j|0;if(!((g|r)&3))if(t>>>0>3){m=t+-4|0;n=m&-4;o=n+4|0;i=d+o|0;e=d;k=g;l=t;while(1){c[k>>2]=c[e>>2];l=l+-4|0;if(l>>>0<=3)break;else{e=e+4|0;k=k+4|0}}e=m-n|0;g=g+o|0}else{e=t;i=d}else{i=d;e=t}if(e|0)while(1){a[g>>0]=a[i>>0]|0;e=e+-1|0;if(!e)break;else{i=i+1|0;g=g+1|0}}if(t>>>0<j>>>0){e=t;do{a[u+e>>0]=a[d+e>>0]|0;e=e+1|0}while((e|0)!=(j|0))}e=pb[F&63](s,d,u)|0;e=e>>>0>q>>>0?e:q;if(!((r|v)&3))if(j>>>0>3){g=j+-4|0;i=g&-4;k=i+4|0;l=d+k|0;while(1){c[d>>2]=c[h>>2]^c[d>>2];j=j+-4|0;if(j>>>0<=3)break;else{h=h+4|0;d=d+4|0}}j=g-i|0;h=b+96+k|0;d=l}if(j){i=d;g=d;d=j;while(1){a[g>>0]=a[h>>0]^a[i>>0];d=d+-1|0;if(!d)break;else{h=h+1|0;i=i+1|0;g=g+1|0}}}}if(!e){b=0;return b|0}Te(e+16|0);b=0;return b|0}function Yl(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;h=15-e|0;if(!d){k=45;return k|0}if((h+-2|0)>>>0>6){k=139;return k|0}Yq(b+128|0,0,368)|0;c[b+56>>2]=0;i=b+64|0;f=b+80|0;g=h+255&255;j=i;k=j+52|0;do{c[j>>2]=0;j=j+4|0}while((j|0)<(k|0));a[f>>0]=g;cr(f+1|0,d|0,e|0)|0;k=e+1|0;Yq(f+k|0,0,h|0)|0;a[i>>0]=g;cr(i+1|0,d|0,e|0)|0;Yq(i+k|0,0,h|0)|0;k=b+184|0;a[k>>0]=a[k>>0]|1;k=0;return k|0}function Zl(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0;wa=l;l=l+16|0;if((l|0)>=(m|0))$(16);sa=wa;ta=c[(c[b+12>>2]|0)+36>>2]|0;va=b+164|0;g=c[va>>2]|0;if(!e)if((f|0)!=0&(g|0)!=0)e=0;else{va=0;l=wa;return va|0}n=(f|0)==0;o=b+148|0;p=b+64|0;q=p;r=((q|o)&3|0)==0;s=p+4|0;t=b+152|0;u=b+72|0;v=b+156|0;w=b+76|0;x=b+160|0;y=b+496|0;z=b+28|0;A=(sa&7|0)==0;B=p+1|0;C=b+149|0;D=p+2|0;E=b+150|0;F=p+3|0;G=b+151|0;H=p+4|0;I=b+152|0;J=p+5|0;K=b+153|0;L=p+6|0;M=b+154|0;N=p+7|0;O=b+155|0;P=b+72|0;Q=b+156|0;R=b+73|0;S=b+157|0;T=b+74|0;U=b+158|0;V=b+75|0;W=b+159|0;X=b+76|0;Y=b+160|0;Z=b+77|0;_=b+161|0;aa=b+78|0;ba=b+162|0;ca=b+79|0;da=b+163|0;ea=p+1|0;fa=p+2|0;ga=p+3|0;ha=p+4|0;ia=p+5|0;ja=p+6|0;ka=p+7|0;la=b+72|0;ma=b+73|0;na=b+74|0;oa=b+75|0;pa=b+76|0;qa=b+77|0;ra=b+78|0;k=b+79|0;f=d;b=e;e=0;while(1){if((g|0)!=0|(b+g|0)>>>0<16){if(g>>>0<16&(b|0)!=0)while(1){d=f+1|0;h=g+1|0;a[o+g>>0]=a[f>>0]|0;g=b+-1|0;if(h>>>0<16&(g|0)!=0){b=g;g=h;f=d}else{f=d;b=g;g=h;break}}}else g=0;if(!b){if(n)break;if(g>>>0<16){Yq(o+g|0,0,16-g|0)|0;ua=12}else ua=12}else if(g)ua=12;if((ua|0)==12){ua=0;if(r){c[p>>2]=c[o>>2]^c[p>>2];c[s>>2]=c[t>>2]^c[s>>2];c[u>>2]=c[v>>2]^c[u>>2];c[w>>2]=c[x>>2]^c[w>>2]}else{a[p>>0]=a[o>>0]^a[p>>0];a[B>>0]=a[C>>0]^a[B>>0];a[D>>0]=a[E>>0]^a[D>>0];a[F>>0]=a[G>>0]^a[F>>0];a[H>>0]=a[I>>0]^a[H>>0];a[J>>0]=a[K>>0]^a[J>>0];a[L>>0]=a[M>>0]^a[L>>0];a[N>>0]=a[O>>0]^a[N>>0];a[P>>0]=a[Q>>0]^a[P>>0];a[R>>0]=a[S>>0]^a[R>>0];a[T>>0]=a[U>>0]^a[T>>0];a[V>>0]=a[W>>0]^a[V>>0];a[X>>0]=a[Y>>0]^a[X>>0];a[Z>>0]=a[_>>0]^a[Z>>0];a[aa>>0]=a[ba>>0]^a[aa>>0];a[ca>>0]=a[da>>0]^a[ca>>0]}j=pb[ta&63](y,p,p)|0;e=e>>>0>j>>>0?e:j}g=c[z>>2]|0;if(!g)if(b>>>0>15){d=b+-16|0;h=d&-16;g=f+16|0;while(1){if(!((f|q)&3)){c[p>>2]=c[f>>2]^c[p>>2];c[s>>2]=c[f+4>>2]^c[s>>2];c[u>>2]=c[f+8>>2]^c[u>>2];c[w>>2]=c[f+12>>2]^c[w>>2]}else{a[p>>0]=a[f>>0]^a[p>>0];a[ea>>0]=a[f+1>>0]^a[ea>>0];a[fa>>0]=a[f+2>>0]^a[fa>>0];a[ga>>0]=a[f+3>>0]^a[ga>>0];a[ha>>0]=a[f+4>>0]^a[ha>>0];a[ia>>0]=a[f+5>>0]^a[ia>>0];a[ja>>0]=a[f+6>>0]^a[ja>>0];a[ka>>0]=a[f+7>>0]^a[ka>>0];a[la>>0]=a[f+8>>0]^a[la>>0];a[ma>>0]=a[f+9>>0]^a[ma>>0];a[na>>0]=a[f+10>>0]^a[na>>0];a[oa>>0]=a[f+11>>0]^a[oa>>0];a[pa>>0]=a[f+12>>0]^a[pa>>0];a[qa>>0]=a[f+13>>0]^a[qa>>0];a[ra>>0]=a[f+14>>0]^a[ra>>0];a[k>>0]=a[f+15>>0]^a[k>>0]}j=pb[ta&63](y,p,p)|0;e=e>>>0>j>>>0?e:j;b=b+-16|0;if(b>>>0<=15)break;else f=f+16|0}f=g+h|0;g=d-h|0}else g=b;else{j=b>>>4;xb[g&1](y,p,sa,f,j,1);g=j<<4;j=f+g|0;g=b-g|0;if(!A){f=16;b=sa;do{a[b>>0]=0;b=b+1|0;f=f+-1|0}while((f|0)!=0&(b&7|0)!=0);if(f>>>0>=8)ua=22}else{f=16;b=sa;ua=22}if((ua|0)==22){ua=0;d=f+-8|0;h=d&-8;i=b+8|0;while(1){xa=b;c[xa>>2]=0;c[xa+4>>2]=0;f=f+-8|0;if(f>>>0<=7)break;else b=b+8|0}f=d-h|0;b=i+h|0}if(!f)f=j;else while(1){a[b>>0]=0;f=f+-1|0;if(!f){f=j;break}else b=b+1|0}}if(!g){g=0;break}else{b=g;g=0}}c[va>>2]=g;xa=(e|0)==0?0:e+16|0;l=wa;return xa|0}function _l(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;if(e>>>0<g>>>0){g=200;return g|0}h=a[b+184>>0]|0;if(!(h&1)){g=156;return g|0}if((h&2)==0|(a[b+56>>0]&4)!=0){g=156;return g|0}j=b+136|0;if(!((c[j>>2]|0)==0&(c[j+4>>2]|0)==0)){g=156;return g|0}h=b+128|0;j=h;i=c[j>>2]|0;j=c[j+4>>2]|0;if(j>>>0<0|(j|0)==0&i>>>0<g>>>0){g=139;return g|0}j=Xq(i|0,j|0,g|0,0)|0;c[h>>2]=j;c[h+4>>2]=D;h=Zl(b,f,g,0)|0;if(h|0)Te(h+20|0);g=dm(b,d,e,f,g)|0;return g|0}function $l(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;if(e>>>0<g>>>0){g=200;return g|0}h=a[b+184>>0]|0;if(!(h&1)){g=156;return g|0}if((h&2)==0|(a[b+56>>0]&4)!=0){g=156;return g|0}i=b+136|0;if(!((c[i>>2]|0)==0&(c[i+4>>2]|0)==0)){g=156;return g|0}i=b+128|0;h=i;j=c[h+4>>2]|0;if(0>j>>>0|(0==(j|0)?g>>>0>(c[h>>2]|0)>>>0:0)){j=139;return j|0}h=dm(b,d,e,f,g)|0;if(h|0){j=h;return j|0}j=i;j=Xq(c[j>>2]|0,c[j+4>>2]|0,g|0,0)|0;h=i;c[h>>2]=j;c[h+4>>2]=D;h=Zl(b,d,g,0)|0;if(!h){j=0;return j|0}Te(h+20|0);j=0;return j|0}function am(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;u=c[b+12>>2]|0;t=c[u+36>>2]|0;u=c[u+20>>2]|0;s=u<<1;if(e>>>0<g>>>0){v=200;return v|0}v=b+112|0;e=c[v>>2]|0;if(e>>>0>=g>>>0){h=b+64+u+(0-e)|0;if(!((f|d|h)&3))if(g>>>0>3){l=g+-4|0;m=l&-4;o=m+4|0;n=h+o|0;k=f;i=d;j=g;while(1){u=c[h>>2]^c[k>>2];c[h>>2]=u;c[i>>2]=u;j=j+-4|0;if(j>>>0<=3)break;else{k=k+4|0;h=h+4|0;i=i+4|0}}i=l-m|0;f=f+o|0;h=n;d=d+o|0}else i=g;else i=g;if(i){e=i;while(1){u=a[h>>0]^a[f>>0];a[h>>0]=u;a[d>>0]=u;e=e+-1|0;if(!e)break;else{f=f+1|0;h=h+1|0;d=d+1|0}}e=c[v>>2]|0}c[v>>2]=e-g;v=0;return v|0}if(e){g=g-e|0;i=b+64+u+(0-e)|0;if(e>>>0>3&((f|d|i)&3|0)==0){l=e+-4|0;m=l&-4;o=m+4|0;n=i+o|0;k=f;h=d;j=e;while(1){r=c[i>>2]^c[k>>2];c[i>>2]=r;c[h>>2]=r;j=j+-4|0;if(j>>>0<=3)break;else{k=k+4|0;i=i+4|0;h=h+4|0}}j=l-m|0;if(j){k=f+o|0;i=n;h=d+o|0;e=j;p=18}}else{k=f;h=d;p=18}if((p|0)==18){while(1){r=a[i>>0]^a[k>>0];a[i>>0]=r;a[h>>0]=r;e=e+-1|0;if(!e)break;else{k=k+1|0;i=i+1|0;h=h+1|0;p=18}}e=c[v>>2]|0}c[v>>2]=0;d=d+e|0;f=f+e|0}a:do if(g>>>0<s>>>0)e=0;else{e=c[b+20>>2]|0;if(e|0){s=(g>>>0)/(u>>>0)|0;qb[e&15](b+496|0,b+64|0,d,f,s);s=S(s,u)|0;e=0;d=d+s|0;f=f+s|0;g=g-s|0;break}q=b+496|0;r=b+64|0;n=r;l=u+-4|0;m=l&-4;o=m+4|0;p=r+o|0;m=l-m|0;if(u>>>0>3)e=0;else{l=(u|0)==0;e=0;while(1){p=pb[t&63](q,r,r)|0;e=p>>>0>e>>>0?p:e;if(!l){h=f;i=r;j=d;k=u;while(1){p=a[i>>0]^a[h>>0];a[i>>0]=p;a[j>>0]=p;k=k+-1|0;if(!k)break;else{h=h+1|0;i=i+1|0;j=j+1|0}}}d=d+u|0;f=f+u|0;g=g-u|0;if(g>>>0<s>>>0)break a}}do{l=pb[t&63](q,r,r)|0;e=l>>>0>e>>>0?l:e;if(!((f|n|d)&3)){h=f+o|0;i=f;j=r;k=d;l=u;while(1){w=c[j>>2]^c[i>>2];c[j>>2]=w;c[k>>2]=w;l=l+-4|0;if(l>>>0<=3)break;else{i=i+4|0;j=j+4|0;k=k+4|0}}j=p;k=d+o|0;i=m}else{h=f;j=r;k=d;i=u}if(i|0)while(1){w=a[j>>0]^a[h>>0];a[j>>0]=w;a[k>>0]=w;i=i+-1|0;if(!i)break;else{h=h+1|0;j=j+1|0;k=k+1|0}}d=d+u|0;f=f+u|0;g=g-u|0}while(g>>>0>=s>>>0)}while(0);if(g>>>0>=u>>>0){i=b+96|0;j=b+64|0;p=j;if(!((p|i)&3))if(u>>>0>3){m=u+-4|0;n=m&-4;o=n+4|0;k=j+o|0;l=j;h=u;while(1){c[i>>2]=c[l>>2];h=h+-4|0;if(h>>>0<=3)break;else{l=l+4|0;i=i+4|0}}h=m-n|0;i=b+96+o|0}else{h=u;k=j}else{k=j;h=u}if(h|0)while(1){a[i>>0]=a[k>>0]|0;h=h+-1|0;if(!h)break;else{k=k+1|0;i=i+1|0}}w=pb[t&63](b+496|0,j,j)|0;e=w>>>0>e>>>0?w:e;if(!((f|p|d)&3))if(u>>>0>3){l=u+-4|0;m=l&-4;o=m+4|0;n=j+o|0;k=f;h=d;i=u;while(1){w=c[j>>2]^c[k>>2];c[j>>2]=w;c[h>>2]=w;i=i+-4|0;if(i>>>0<=3)break;else{k=k+4|0;j=j+4|0;h=h+4|0}}h=l-m|0;k=f+o|0;j=n;i=d+o|0}else{h=u;k=f;i=d}else{k=f;i=d;h=u}if(h|0)while(1){w=a[j>>0]^a[k>>0];a[j>>0]=w;a[i>>0]=w;h=h+-1|0;if(!h)break;else{k=k+1|0;j=j+1|0;i=i+1|0}}d=d+u|0;f=f+u|0;g=g-u|0}if(g){j=b+96|0;h=b+64|0;p=h;if(!((p|j)&3))if(u>>>0>3){m=u+-4|0;n=m&-4;o=n+4|0;k=h+o|0;l=h;i=u;while(1){c[j>>2]=c[l>>2];i=i+-4|0;if(i>>>0<=3)break;else{l=l+4|0;j=j+4|0}}i=m-n|0;j=b+96+o|0}else{i=u;k=h}else{k=h;i=u}if(i|0)while(1){a[j>>0]=a[k>>0]|0;i=i+-1|0;if(!i)break;else{k=k+1|0;j=j+1|0}}w=pb[t&63](b+496|0,h,h)|0;e=w>>>0>e>>>0?w:e;c[v>>2]=u-g;if(!((f|p|d)&3))if(g>>>0>3){k=g+-4|0;l=k&-4;n=l+4|0;m=h+n|0;j=f;i=d;while(1){w=c[h>>2]^c[j>>2];c[h>>2]=w;c[i>>2]=w;g=g+-4|0;if(g>>>0<=3)break;else{j=j+4|0;h=h+4|0;i=i+4|0}}g=k-l|0;f=f+n|0;h=m;d=d+n|0}if(g)while(1){w=a[h>>0]^a[f>>0];a[h>>0]=w;a[d>>0]=w;g=g+-1|0;if(!g)break;else{f=f+1|0;h=h+1|0;d=d+1|0}}}if(!e){w=0;return w|0}Te(e+16|0);w=0;return w|0}function bm(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;t=c[b+12>>2]|0;s=c[t+36>>2]|0;t=c[t+20>>2]|0;r=t<<1;if(e>>>0<g>>>0){u=200;return u|0}u=b+112|0;e=c[u>>2]|0;if(e>>>0>=g>>>0){h=b+64+t+(0-e)|0;if(!((f|d|h)&3))if(g>>>0>3){m=g+-4|0;n=m&-4;o=n+4|0;i=f;j=h;k=d;l=g;while(1){t=c[i>>2]|0;c[k>>2]=c[j>>2]^t;c[j>>2]=t;l=l+-4|0;if(l>>>0<=3)break;else{i=i+4|0;j=j+4|0;k=k+4|0}}i=m-n|0;f=f+o|0;h=h+o|0;d=d+o|0}else i=g;else i=g;if(i){e=i;while(1){t=a[f>>0]|0;a[d>>0]=t^a[h>>0];a[h>>0]=t;e=e+-1|0;if(!e)break;else{d=d+1|0;h=h+1|0;f=f+1|0}}e=c[u>>2]|0}c[u>>2]=e-g;u=0;return u|0}if(e){g=g-e|0;i=b+64+t+(0-e)|0;if(e>>>0>3&((f|d|i)&3|0)==0){m=e+-4|0;n=m&-4;o=n+4|0;h=f;j=i;k=d;l=e;while(1){q=c[h>>2]|0;c[k>>2]=c[j>>2]^q;c[j>>2]=q;l=l+-4|0;if(l>>>0<=3)break;else{h=h+4|0;j=j+4|0;k=k+4|0}}h=f+o|0;k=m-n|0;if(k){l=d+o|0;i=i+o|0;j=h;e=k;p=18}}else{l=d;j=f;h=f;p=18}if((p|0)==18){while(1){q=a[j>>0]|0;a[l>>0]=a[h>>0]^a[i>>0];a[i>>0]=q;e=e+-1|0;if(!e)break;else{l=l+1|0;i=i+1|0;j=j+1|0;h=h+1|0;p=18}}e=c[u>>2]|0}c[u>>2]=0;d=d+e|0;f=f+e|0}a:do if(g>>>0<r>>>0)e=0;else{e=c[b+24>>2]|0;if(e|0){r=(g>>>0)/(t>>>0)|0;qb[e&15](b+496|0,b+64|0,d,f,r);r=S(r,t)|0;e=0;d=d+r|0;f=f+r|0;g=g-r|0;break}p=b+496|0;q=b+64|0;n=q;k=t+-4|0;m=k&-4;l=m+4|0;o=q+l|0;m=k-m|0;if(t>>>0>3)e=0;else{l=(t|0)==0;e=0;while(1){o=pb[s&63](p,q,q)|0;e=o>>>0>e>>>0?o:e;if(!l){h=d;i=q;j=f;k=t;while(1){o=a[j>>0]|0;a[h>>0]=o^a[i>>0];a[i>>0]=o;k=k+-1|0;if(!k)break;else{h=h+1|0;i=i+1|0;j=j+1|0}}}d=d+t|0;f=f+t|0;g=g-t|0;if(g>>>0<r>>>0)break a}}do{k=pb[s&63](p,q,q)|0;e=k>>>0>e>>>0?k:e;if(!((f|n|d)&3)){h=f;i=q;j=d;k=t;while(1){v=c[h>>2]|0;c[j>>2]=c[i>>2]^v;c[i>>2]=v;k=k+-4|0;if(k>>>0<=3)break;else{h=h+4|0;i=i+4|0;j=j+4|0}}h=d+l|0;j=o;k=f+l|0;i=m}else{h=d;j=q;k=f;i=t}if(i|0)while(1){v=a[k>>0]|0;a[h>>0]=v^a[j>>0];a[j>>0]=v;i=i+-1|0;if(!i)break;else{h=h+1|0;j=j+1|0;k=k+1|0}}d=d+t|0;f=f+t|0;g=g-t|0}while(g>>>0>=r>>>0)}while(0);if(g>>>0>=t>>>0){i=b+96|0;k=b+64|0;p=k;if(!((p|i)&3))if(t>>>0>3){m=t+-4|0;n=m&-4;o=n+4|0;j=k+o|0;l=k;h=t;while(1){c[i>>2]=c[l>>2];h=h+-4|0;if(h>>>0<=3)break;else{l=l+4|0;i=i+4|0}}h=m-n|0;i=b+96+o|0}else{h=t;j=k}else{j=k;h=t}if(h|0)while(1){a[i>>0]=a[j>>0]|0;h=h+-1|0;if(!h)break;else{j=j+1|0;i=i+1|0}}v=pb[s&63](b+496|0,k,k)|0;e=v>>>0>e>>>0?v:e;if(!((f|p|d)&3))if(t>>>0>3){m=t+-4|0;n=m&-4;o=n+4|0;h=f;i=k;j=d;l=t;while(1){v=c[h>>2]|0;c[j>>2]=c[i>>2]^v;c[i>>2]=v;l=l+-4|0;if(l>>>0<=3)break;else{h=h+4|0;i=i+4|0;j=j+4|0}}i=m-n|0;j=f+o|0;k=k+o|0;h=d+o|0}else{i=t;j=f;h=d}else{h=d;j=f;i=t}if(i|0)while(1){v=a[j>>0]|0;a[h>>0]=v^a[k>>0];a[k>>0]=v;i=i+-1|0;if(!i)break;else{h=h+1|0;k=k+1|0;j=j+1|0}}d=d+t|0;f=f+t|0;g=g-t|0}if(g){j=b+96|0;h=b+64|0;p=h;if(!((p|j)&3))if(t>>>0>3){m=t+-4|0;n=m&-4;o=n+4|0;k=h+o|0;l=h;i=t;while(1){c[j>>2]=c[l>>2];i=i+-4|0;if(i>>>0<=3)break;else{l=l+4|0;j=j+4|0}}i=m-n|0;j=b+96+o|0}else{i=t;k=h}else{k=h;i=t}if(i|0)while(1){a[j>>0]=a[k>>0]|0;i=i+-1|0;if(!i)break;else{k=k+1|0;j=j+1|0}}v=pb[s&63](b+496|0,h,h)|0;e=v>>>0>e>>>0?v:e;c[u>>2]=t-g;if(!((f|p|d)&3))if(g>>>0>3){l=g+-4|0;m=l&-4;n=m+4|0;i=f;j=h;k=d;while(1){v=c[i>>2]|0;c[k>>2]=c[j>>2]^v;c[j>>2]=v;g=g+-4|0;if(g>>>0<=3)break;else{i=i+4|0;j=j+4|0;k=k+4|0}}g=l-m|0;f=f+n|0;h=h+n|0;d=d+n|0}if(g)while(1){v=a[f>>0]|0;a[d>>0]=v^a[h>>0];a[h>>0]=v;g=g+-1|0;if(!g)break;else{d=d+1|0;h=h+1|0;f=f+1|0}}}if(!e){v=0;return v|0}Te(e+16|0);v=0;return v|0}function cm(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;q=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=q;e=c[b+12>>2]|0;j=c[e+20>>2]|0;if(j>>>0>16)He(46529,113,46543);Yq(f|0,0,j|0)|0;p=pb[c[e+36>>2]&63](b+496|0,f,f)|0;g=j+-1|0;k=(j|0)==16?135:27;n=f+g|0;h=b+128|0;if((g|0)>-1){e=g;b=0;while(1){r=f+e|0;s=a[r>>0]|0;i=b;b=(s&255)>>>7;i=((s&255)<<1|i&255)&255;a[r>>0]=i;a[h+1+e>>0]=i;if((e|0)<=0)break;else e=e+-1|0}e=(d[n>>0]|0)^(b<<24>>24?k:0);b=e&255;a[h+1+g>>0]=b;b=(b&255)>>>7;e=e<<1&255;a[n>>0]=e;i=h+17+g|0;a[i>>0]=e;if((g|0)>0){e=j+-2|0;while(1){r=f+e|0;j=a[r>>0]|0;s=b;b=(j&255)>>>7;s=((j&255)<<1|s&255)&255;a[r>>0]=s;a[h+17+e>>0]=s;if((e|0)<=0)break;else e=e+-1|0}e=a[n>>0]|0}s=(e&255^(b<<24>>24?k:0))&255;a[n>>0]=s;a[i>>0]=s}else{s=a[n>>0]|0;a[h+1+g>>0]=s;a[h+17+g>>0]=s}if(f&4){e=16;do{a[f>>0]=0;f=f+1|0;e=e+-1|0}while((e|0)!=0&(f&7|0)!=0);if(e>>>0>=8)o=11}else{e=16;o=11}if((o|0)==11){g=e+-8|0;h=g&-8;b=f;while(1){s=b;c[s>>2]=0;c[s+4>>2]=0;e=e+-8|0;if(e>>>0<=7)break;else b=b+8|0}e=g-h|0;f=f+(h+8)|0}if(e|0)while(1){a[f>>0]=0;e=e+-1|0;if(!e)break;else f=f+1|0}if(!p){l=q;return 0}Te(p+16|0);l=q;return 0}function dm(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;A=l;l=l+16|0;if((l|0)>=(m|0))$(16);h=A;w=c[b+12>>2]|0;y=c[w+36>>2]|0;w=c[w+20>>2]|0;if(e>>>0<g>>>0){z=200;l=A;return z|0}x=b+112|0;e=c[x>>2]|0;if(e){if(w>>>0<=e>>>0)Ie(46565,46587,53,46600);s=e>>>0>g>>>0?g:e;j=w-e+(b+96)|0;if(!((f|d|j)&3))if(s>>>0>3){o=s+-4|0;p=o&-4;r=p+4|0;q=j+r|0;i=f;k=d;n=s;while(1){c[k>>2]=c[j>>2]^c[i>>2];n=n+-4|0;if(n>>>0<=3)break;else{j=j+4|0;i=i+4|0;k=k+4|0}}n=o-p|0;j=q;k=f+r|0;i=d+r|0}else{n=s;k=f;i=d}else{k=f;i=d;n=s}if(n){e=n;while(1){a[i>>0]=a[j>>0]^a[k>>0];e=e+-1|0;if(!e)break;else{j=j+1|0;k=k+1|0;i=i+1|0}}e=c[x>>2]|0}c[x>>2]=e-s;d=d+s|0;f=f+s|0;g=g-s|0}e=(g>>>0)/(w>>>0)|0;if(w>>>0<=g>>>0?(t=c[b+36>>2]|0,u=S(e,w)|0,(t|0)!=0):0){qb[t&15](b+496|0,b+80|0,d,f,e);d=d+u|0;f=f+u|0;g=g-u|0}if(!g){z=0;l=A;return z|0}s=b+496|0;t=b+80|0;u=h;v=0;while(1){e=pb[y&63](s,h,t)|0;v=e>>>0>v>>>0?e:v;e=w;do{if((e|0)<=0)break;e=e+-1|0;q=t+e|0;r=(a[q>>0]|0)+1<<24>>24;a[q>>0]=r}while(!(r<<24>>24));r=w>>>0<g>>>0?w:g;if(!((f|u|d)&3))if(r>>>0>3){o=r+-4|0;p=o&-4;q=p+4|0;i=h+q|0;e=h;j=f;k=d;n=r;while(1){c[k>>2]=c[e>>2]^c[j>>2];n=n+-4|0;if(n>>>0<=3)break;else{e=e+4|0;j=j+4|0;k=k+4|0}}e=o-p|0;k=f+q|0;j=d+q|0}else{e=r;i=h;k=f;j=d}else{i=h;k=f;j=d;e=r}if(e|0)while(1){a[j>>0]=a[i>>0]^a[k>>0];e=e+-1|0;if(!e)break;else{i=i+1|0;k=k+1|0;j=j+1|0}}g=g-r|0;if(!g)break;else{d=d+r|0;f=f+r|0}}e=w-r|0;c[x>>2]=e;do if(e|0){g=b+96+r|0;d=h+r|0;if(e>>>0>3&((d|g)&3|0)==0){i=e+-4|0;j=i&-4;n=j+4|0;k=d+n|0;f=g;while(1){c[f>>2]=c[d>>2];e=e+-4|0;if(e>>>0<=3)break;else{d=d+4|0;f=f+4|0}}e=i-j|0;if(!e)break;else{d=k;g=g+n|0}}while(1){a[g>>0]=a[d>>0]|0;e=e+-1|0;if(!e)break;else{d=d+1|0;g=g+1|0}}}while(0);if(u&7){e=16;do{a[h>>0]=0;h=h+1|0;e=e+-1|0}while((e|0)!=0&(h&7|0)!=0);if(e>>>0>=8)z=41}else{e=16;z=41}if((z|0)==41){d=e+-8|0;f=d&-8;i=f+8|0;g=h;while(1){z=g;c[z>>2]=0;c[z+4>>2]=0;e=e+-8|0;if(e>>>0<=7)break;else g=g+8|0}e=d-f|0;h=h+i|0}if(e|0)while(1){a[h>>0]=0;e=e+-1|0;if(!e)break;else h=h+1|0}if(!v){z=0;l=A;return z|0}Te(v+16|0);z=0;l=A;return z|0}function em(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0;if((c[(c[b+12>>2]|0)+20>>2]|0)!=16){g=12;return g|0}if(e>>>0<g>>>0){g=200;return g|0}m=b+128|0;l=b+196|0;h=a[l>>0]|0;if(h&4){g=139;return g|0}i=a[b+56>>0]|0;if((i&4|h&1)<<24>>24){g=156;return g|0}if(!(i&2)){fm(b,71779,16)|0;h=a[l>>0]|0}if(h&8){g=156;return g|0}if(!(h&2)){gm(b,m,0,0,1);h=a[l>>0]|2;a[l>>0]=h}j=b+172|0;k=(c[j>>2]|0)+g|0;c[j>>2]=k;j=b+176|0;i=c[j>>2]|0;if(k>>>0<g>>>0){i=i+1|0;c[j>>2]=i}if(i>>>0<=15?(i|0)!=15|k>>>0<4294967265:0){h=dm(b,d,e,f,g)|0;if(h|0){g=h;return g|0}gm(b,m,d,g,0);g=0;return g|0}a[l>>0]=h|4;g=139;return g|0}function fm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;n=l;l=l+32|0;if((l|0)>=(m|0))$(32);i=n;g=n+8|0;k=b+56|0;a[k>>0]=a[k>>0]&-7;h=b+196|0;a[h>>0]=a[h>>0]&-9;o=(gg()|0)==0;f=a[h>>0]|0;if(!o){f=f|8;a[h>>0]=f}p=b+128|0;o=b+164|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;a[h>>0]=f&-8;switch(e|0){case 12:{f=b+80|0;e=f;g=d;h=e+12|0;do{a[e>>0]=a[g>>0]|0;e=e+1|0;g=g+1|0}while((e|0)<(h|0));a[b+94>>0]=0;a[b+93>>0]=0;g=b+92|0;a[g>>0]=0;a[b+95>>0]=1;break}case 0:{p=139;l=n;return p|0}default:{f=i;c[f>>2]=0;c[f+4>>2]=0;f=b+80|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[i>>2]=e;gm(b,f,d,e,1);c[g+12>>2]=er(e<<3|0)|0;c[g+8>>2]=er(e>>>29|0)|0;c[g+4>>2]=0;c[g>>2]=0;gm(b,f,g,16,1);p=i;c[p>>2]=0;c[p+4>>2]=0;if(g&4){h=16;do{a[g>>0]=0;g=g+1|0;h=h+-1|0}while((h|0)!=0&(g&7|0)!=0);if(h>>>0>=8)j=7}else{h=16;j=7}if((j|0)==7){i=h+-8|0;d=i&-8;e=g;while(1){p=e;c[p>>2]=0;c[p+4>>2]=0;h=h+-8|0;if(h>>>0<=7)break;else e=e+8|0}h=i-d|0;g=g+(d+8)|0}if(h|0)while(1){a[g>>0]=0;h=h+-1|0;if(!h)break;else g=g+1|0}g=b+92|0}}pb[c[(c[b+12>>2]|0)+36>>2]&63](b+496|0,b+180|0,f)|0;c[g>>2]=er((er(c[g>>2]|0)|0)+1|0)|0;c[b+112>>2]=0;a[k>>0]=a[k>>0]&-7|2;p=0;l=n;return p|0}function gm(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;v=b+160|0;h=c[v>>2]|0;w=c[b+224>>2]|0;if(!f)if((g|0)!=0&(h|0)!=0)f=0;else return;s=b+144|0;a:do if(!g){g=0;p=h;b:while(1){if((p|0)!=0|(f+p|0)>>>0<16){q=16-p|0;q=q>>>0<f>>>0?q:f;i=b+144+p|0;if(!((e|i)&3))if(q>>>0>3){m=q+-4|0;n=m&-4;o=n+4|0;j=e+o|0;h=e;k=i;l=q;while(1){c[k>>2]=c[h>>2];l=l+-4|0;if(l>>>0<=3)break;else{h=h+4|0;k=k+4|0}}h=m-n|0;i=i+o|0}else{h=q;j=e}else{j=e;h=q}if(h|0)while(1){a[i>>0]=a[j>>0]|0;h=h+-1|0;if(!h)break;else{j=j+1|0;i=i+1|0}}j=e+q|0;i=f-q|0;f=q+p|0}else{j=e;i=f;f=0}if(!i){t=g;u=f;break a}switch(f|0){case 0:break;case 16:{g=wb[w&3](b,d,s,1)|0;break}default:break b}e=i>>>4;h=e<<4;if(!e){e=j;f=i;p=0;continue}f=i-h|0;g=wb[w&3](b,d,j,e)|0;if(!f){t=g;u=0;break a}else{e=j+h|0;p=0}}Ie(46625,46645,499,46658)}else{q=0;o=h;c:while(1){if((o|0)!=0|(f+o|0)>>>0<16){p=16-o|0;p=p>>>0<f>>>0?p:f;h=b+144+o|0;if(!((e|h)&3))if(p>>>0>3){l=p+-4|0;m=l&-4;n=m+4|0;i=e+n|0;g=e;j=h;k=p;while(1){c[j>>2]=c[g>>2];k=k+-4|0;if(k>>>0<=3)break;else{g=g+4|0;j=j+4|0}}g=l-m|0;h=h+n|0}else{g=p;i=e}else{i=e;g=p}if(g|0)while(1){a[h>>0]=a[i>>0]|0;g=g+-1|0;if(!g)break;else{i=i+1|0;h=h+1|0}}i=e+p|0;f=f-p|0;g=p+o|0}else{i=e;g=0}if((f|0)==0&g>>>0<16){Yq(b+144+g|0,0,16-g|0)|0;r=33}else switch(g|0){case 0:{g=q;break}case 16:{r=33;break}default:break c}if((r|0)==33){r=0;g=wb[w&3](b,d,s,1)|0}e=f>>>4;h=e<<4;if(!e)e=i;else{g=wb[w&3](b,d,i,e)|0;e=i+h|0;f=f-h|0}if(!f){t=g;u=0;break a}else{q=g;o=0}}Ie(46625,46645,499,46658)}while(0);c[v>>2]=u;if(!t)return;Te(t);return}function hm(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0;if((c[(c[b+12>>2]|0)+20>>2]|0)!=16){g=12;return g|0}if(e>>>0<g>>>0){g=200;return g|0}l=b+128|0;m=b+196|0;h=a[m>>0]|0;if(h&4){g=139;return g|0}i=a[b+56>>0]|0;if((i&4|h&1)<<24>>24){g=156;return g|0}if(!(i&2)){fm(b,71795,16)|0;h=a[m>>0]|0}if(!(h&2)){gm(b,l,0,0,1);h=a[m>>0]|2;a[m>>0]=h}j=b+172|0;k=(c[j>>2]|0)+g|0;c[j>>2]=k;j=b+176|0;i=c[j>>2]|0;if(k>>>0<g>>>0){i=i+1|0;c[j>>2]=i}if(i>>>0<=15?(i|0)!=15|k>>>0<4294967265:0){gm(b,l,f,g,0);g=dm(b,d,e,f,g)|0;return g|0}a[m>>0]=h|4;g=139;return g|0}function im(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;r=a+208|0;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;c[r+12>>2]=0;pb[c[(c[a+12>>2]|0)+36>>2]&63](a+496|0,r,r)|0;c[a+224>>2]=2;l=a+228|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;l=d[r+3>>0]|0;s=(d[r+1>>0]|0)<<16|(d[r>>0]|0)<<24|(d[r+2>>0]|0)<<8|l;e=a+356|0;c[e>>2]=s;j=d[r+7>>0]|0;r=(d[r+5>>0]|0)<<16|(d[r+4>>0]|0)<<24|(d[r+6>>0]|0)<<8|j;f=a+360|0;c[f>>2]=r;p=d[a+219>>0]|0;q=(d[a+217>>0]|0)<<16|(d[a+216>>0]|0)<<24|(d[a+218>>0]|0)<<8|p;g=a+364|0;c[g>>2]=q;n=d[a+223>>0]|0;t=(d[a+221>>0]|0)<<16|(d[a+220>>0]|0)<<24|(d[a+222>>0]|0)<<8|n;h=a+368|0;c[h>>2]=t;i=a+304|0;t=t>>>1;p=t|p<<31;c[i>>2]=p;q=q>>>1;j=q|j<<31;c[a+300>>2]=j;r=r>>>1;l=r|l<<31;c[a+296>>2]=l;s=s>>>1;n=(n&1|0?-520093696:0)^s;c[a+292>>2]=n;x=p>>>1;q=x|q<<31;c[a+272>>2]=q;u=j>>>1;r=u|r<<31;c[a+268>>2]=r;v=l>>>1;s=v|s<<31;c[a+264>>2]=s;w=n>>>1;t=(t&1|0?-520093696:0)^w;c[a+260>>2]=t;u=q>>>1|u<<31;c[a+256>>2]=u;v=r>>>1|v<<31;c[a+252>>2]=v;w=w<<31|s>>>1;c[a+248>>2]=w;x=(x&1|0?-520093696:0)^t>>>1;c[a+244>>2]=x;o=x^t;c[a+276>>2]=o;m=w^s;c[a+280>>2]=m;k=v^r;c[a+284>>2]=k;b=u^q;c[a+288>>2]=b;c[a+308>>2]=x^n;c[a+312>>2]=w^l;c[a+316>>2]=v^j;c[a+320>>2]=u^p;c[a+324>>2]=t^n;c[a+328>>2]=s^l;c[a+332>>2]=r^j;c[a+336>>2]=q^p;c[a+340>>2]=o^n;c[a+344>>2]=m^l;c[a+348>>2]=k^j;c[a+352>>2]=c[i>>2]^b;b=1;do{w=b<<2;x=w+32|0;c[a+228+(x<<2)>>2]=c[a+228+(w<<2)>>2]^c[e>>2];c[a+228+((x|1)<<2)>>2]=c[a+228+((w|1)<<2)>>2]^c[f>>2];c[a+228+((x|2)<<2)>>2]=c[a+228+((w|2)<<2)>>2]^c[g>>2];c[a+228+((x|3)<<2)>>2]=c[a+228+((w|3)<<2)>>2]^c[h>>2];b=b+1|0}while((b|0)!=8);return}function jm(b,f,g,h){b=b|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0;Z=l;l=l+16|0;if((l|0)>=(m|0))$(16);U=Z;if(!h){Y=0;X=(Y|0)!=0;X=X?20:0;Y=X+Y|0;l=Z;return Y|0}V=f;W=f+4|0;X=U+4|0;Y=f+8|0;t=U+8|0;u=f+12|0;v=U+12|0;w=f+1|0;x=f+2|0;y=f+3|0;z=f+5|0;A=f+6|0;B=f+7|0;C=f+9|0;D=f+10|0;E=f+11|0;F=f+13|0;G=f+14|0;H=f+15|0;I=U+1|0;J=U+2|0;K=U+3|0;L=U+5|0;M=U+6|0;N=U+7|0;O=U+9|0;P=U+10|0;Q=U+11|0;R=U+13|0;S=U+14|0;T=U+15|0;while(1){if(!((g|V)&3)){c[U>>2]=c[g>>2]^c[f>>2];c[X>>2]=c[g+4>>2]^c[W>>2];c[t>>2]=c[g+8>>2]^c[Y>>2];j=c[g+12>>2]^c[u>>2];c[v>>2]=j;i=j>>>24&255;j=j>>>16&255}else{a[U>>0]=a[g>>0]^a[f>>0];a[I>>0]=a[g+1>>0]^a[w>>0];a[J>>0]=a[g+2>>0]^a[x>>0];a[K>>0]=a[g+3>>0]^a[y>>0];a[X>>0]=a[g+4>>0]^a[W>>0];a[L>>0]=a[g+5>>0]^a[z>>0];a[M>>0]=a[g+6>>0]^a[A>>0];a[N>>0]=a[g+7>>0]^a[B>>0];a[t>>0]=a[g+8>>0]^a[Y>>0];a[O>>0]=a[g+9>>0]^a[C>>0];a[P>>0]=a[g+10>>0]^a[D>>0];a[Q>>0]=a[g+11>>0]^a[E>>0];a[v>>0]=a[g+12>>0]^a[u>>0];a[R>>0]=a[g+13>>0]^a[F>>0];j=a[g+14>>0]^a[G>>0];a[S>>0]=j;i=a[g+15>>0]^a[H>>0];a[T>>0]=i}i=i&255;n=b+228+((i<<2&60)<<2)|0;i=b+228+(i>>>4<<2<<2)|0;r=c[n>>2]|0;k=c[n+12>>2]|0;q=c[n+4>>2]|0;n=c[n+8>>2]|0;s=14;j=j&255;o=c[i>>2]^r>>>4^(e[17762+((k<<4&240)<<1)>>1]|0)<<16;p=(n>>>4|q<<28)^c[i+8>>2];k=(n<<28|k>>>4)^c[i+12>>2];i=(q>>>4|r<<28)^c[i+4>>2];while(1){ba=b+228+((j<<2&60)<<2)|0;aa=b+228+(j>>>4<<2<<2)|0;r=c[ba>>2]|0;_=c[ba+12>>2]|0;j=c[aa>>2]^o>>>8^(e[17762+((k&255)<<1)>>1]|0)<<16^r>>>4;q=(e[17762+((_<<4&240)<<1)>>1]|0)<<16^j;n=c[ba+4>>2]|0;r=c[aa+4>>2]^(i>>>8|o<<24)^(n>>>4|r<<28);o=c[ba+8>>2]|0;n=c[aa+8>>2]^(p>>>8|i<<24)^(o>>>4|n<<28);i=c[aa+12>>2]^(k>>>8|p<<24)^(o<<28|_>>>4);if(!s)break;j=s+-1|0;s=j;j=d[U+j>>0]|0;o=q;p=n;k=i;i=r}a[f>>0]=q>>>24;a[w>>0]=q>>>16;a[x>>0]=j>>>8;a[y>>0]=j;a[W>>0]=r>>>24;a[z>>0]=r>>>16;a[A>>0]=r>>>8;a[B>>0]=r;a[Y>>0]=n>>>24;a[C>>0]=n>>>16;a[D>>0]=n>>>8;a[E>>0]=n;a[u>>0]=i>>>24;a[F>>0]=i>>>16;a[G>>0]=i>>>8;a[H>>0]=i;h=h+-1|0;if(!h){g=76;break}else g=g+16|0}ba=(g|0)!=0;ba=ba?20:0;ba=ba+g|0;l=Z;return ba|0}function km(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;if((e|0)==0&0==0)g=($q(f|0)|0)+32|0;else g=$q(e|0)|0;e=b+160|0;if((g|0)<16){b=e+(g<<4)|0;return b|0}f=e+240|0;do if((f|0)!=(d|0))if(!((f|d)&3)){c[d>>2]=c[f>>2];c[d+4>>2]=c[e+244>>2];c[d+8>>2]=c[e+248>>2];c[d+12>>2]=c[e+252>>2];break}else{a[d>>0]=a[f>>0]|0;a[d+1>>0]=a[f+1>>0]|0;a[d+2>>0]=a[f+2>>0]|0;a[d+3>>0]=a[f+3>>0]|0;a[d+4>>0]=a[e+244>>0]|0;a[d+5>>0]=a[f+5>>0]|0;a[d+6>>0]=a[f+6>>0]|0;a[d+7>>0]=a[f+7>>0]|0;a[d+8>>0]=a[e+248>>0]|0;a[d+9>>0]=a[f+9>>0]|0;a[d+10>>0]=a[f+10>>0]|0;a[d+11>>0]=a[f+11>>0]|0;a[d+12>>0]=a[e+252>>0]|0;a[d+13>>0]=a[f+13>>0]|0;a[d+14>>0]=a[f+14>>0]|0;a[d+15>>0]=a[f+15>>0]|0;break}while(0);lm(d);e=g+-16|0;if(!e){b=d;return b|0}do{lm(d);e=e+-1|0}while((e|0)!=0);return d|0}function lm(b){b=b|0;var c=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0;B=mr(d[b>>0]|0|0,0,56)|0;e=D;R=b+1|0;U=mr(d[R>>0]|0|0,0,48)|0;U=U|B;T=D|e;O=b+2|0;Q=mr(d[O>>0]|0|0,0,40)|0;Q=U|Q;S=T|D;L=b+3|0;P=S|(d[L>>0]|0);I=b+4|0;N=mr(d[I>>0]|0|0,0,24)|0;N=Q|N;M=P|D;G=b+5|0;K=mr(d[G>>0]|0|0,0,16)|0;K=N|K;J=M|D;C=b+6|0;H=mr(d[C>>0]|0|0,0,8)|0;H=K|H;E=J|D;z=b+7|0;F=H|(d[z>>0]|0);w=b+8|0;A=d[w>>0]|0;y=mr(A|0,0,56)|0;x=D;u=b+9|0;r=mr(d[u>>0]|0|0,0,48)|0;y=r|y;x=D|x;r=b+10|0;t=mr(d[r>>0]|0|0,0,40)|0;t=y|t;v=x|D;o=b+11|0;s=v|(d[o>>0]|0);l=b+12|0;q=mr(d[l>>0]|0|0,0,24)|0;q=t|q;p=s|D;j=b+13|0;n=mr(d[j>>0]|0|0,0,16)|0;n=q|n;m=p|D;g=b+14|0;k=mr(d[g>>0]|0|0,0,8)|0;k=n|k;h=m|D;c=b+15|0;i=k|(d[c>>0]|0);e=fr(B|0,e|0,63)|0;B=mr(F|0,E|0,1)|0;f=D;A=gr(A|0,0,7)|0;f=mr(i|0,h|0,1)|0;T=gr(U|0,T|0,55)|0;a[b>>0]=T;b=gr(Q|0,S|0,47)|0;a[R>>0]=b;b=gr(Q|0,P|0,39)|0;a[O>>0]=b;b=gr(N|0,M|0,31)|0;a[L>>0]=b;b=gr(K|0,J|0,23)|0;a[I>>0]=b;b=gr(H|0,E|0,15)|0;a[G>>0]=b;b=gr(F|0,E|0,7)|0;a[C>>0]=b;a[z>>0]=B|A;b=gr(y|0,x|0,55)|0;a[w>>0]=b;b=gr(t|0,v|0,47)|0;a[u>>0]=b;b=gr(t|0,s|0,39)|0;a[r>>0]=b;b=gr(q|0,p|0,31)|0;a[o>>0]=b;b=gr(n|0,m|0,23)|0;a[l>>0]=b;b=gr(k|0,h|0,15)|0;a[j>>0]=b;b=gr(i|0,h|0,7)|0;a[g>>0]=b;a[c>>0]=f^e&135;return}function mm(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=l;l=l+48|0;if((l|0)>=(m|0))$(48);g=z+24|0;h=z;w=b+56|0;if(!(a[w>>0]&1)){y=156;l=z;return y|0}x=b+128|0;s=b+480|0;switch(a[s>>0]|0){case 16:case 12:case 8:break;default:{y=59;l=z;return y|0}}u=b+12|0;i=c[u>>2]|0;if((c[i+20>>2]|0)!=16){y=12;l=z;return y|0}if(!e){y=45;l=z;return y|0}if((f&-8|0)!=8){y=139;l=z;return y|0};c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;v=b+496|0;t=pb[c[i+36>>2]&63](v,x,g)|0;i=b+144|0;j=i;if(!((x|j)&3)){c[i>>2]=c[x>>2];c[b+148>>2]=c[x+4>>2];c[b+152>>2]=c[b+136>>2];c[b+156>>2]=c[b+140>>2]}else{a[i>>0]=a[x>>0]|0;a[b+145>>0]=a[x+1>>0]|0;a[b+146>>0]=a[x+2>>0]|0;a[b+147>>0]=a[x+3>>0]|0;a[b+148>>0]=a[x+4>>0]|0;a[b+149>>0]=a[x+5>>0]|0;a[b+150>>0]=a[x+6>>0]|0;a[b+151>>0]=a[x+7>>0]|0;a[b+152>>0]=a[b+136>>0]|0;a[b+153>>0]=a[b+137>>0]|0;a[b+154>>0]=a[b+138>>0]|0;a[b+155>>0]=a[b+139>>0]|0;a[b+156>>0]=a[b+140>>0]|0;a[b+157>>0]=a[b+141>>0]|0;a[b+158>>0]=a[b+142>>0]|0;a[b+159>>0]=a[b+143>>0]|0}lm(i);o=b+160|0;if(!((j|o)&3)){c[o>>2]=c[i>>2];c[o+4>>2]=c[b+148>>2];c[o+8>>2]=c[b+152>>2];c[o+12>>2]=c[b+156>>2]}else{a[o>>0]=a[i>>0]|0;a[o+1>>0]=a[b+145>>0]|0;a[o+2>>0]=a[b+146>>0]|0;a[o+3>>0]=a[b+147>>0]|0;a[o+4>>0]=a[b+148>>0]|0;a[o+5>>0]=a[b+149>>0]|0;a[o+6>>0]=a[b+150>>0]|0;a[o+7>>0]=a[b+151>>0]|0;a[o+8>>0]=a[b+152>>0]|0;a[o+9>>0]=a[b+153>>0]|0;a[o+10>>0]=a[b+154>>0]|0;a[o+11>>0]=a[b+155>>0]|0;a[o+12>>0]=a[b+156>>0]|0;a[o+13>>0]=a[b+157>>0]|0;a[o+14>>0]=a[b+158>>0]|0;a[o+15>>0]=a[b+159>>0]|0}lm(o);i=1;do{j=o+(i<<4)|0;k=i+-1|0;n=o+(k<<4)|0;if(!((n|j)&3)){c[j>>2]=c[n>>2];c[o+(i<<4)+4>>2]=c[o+(k<<4)+4>>2];c[o+(i<<4)+8>>2]=c[o+(k<<4)+8>>2];c[o+(i<<4)+12>>2]=c[o+(k<<4)+12>>2]}else{a[j>>0]=a[n>>0]|0;a[o+(i<<4)+1>>0]=a[o+(k<<4)+1>>0]|0;a[o+(i<<4)+2>>0]=a[o+(k<<4)+2>>0]|0;a[o+(i<<4)+3>>0]=a[o+(k<<4)+3>>0]|0;a[o+(i<<4)+4>>0]=a[o+(k<<4)+4>>0]|0;a[o+(i<<4)+5>>0]=a[o+(k<<4)+5>>0]|0;a[o+(i<<4)+6>>0]=a[o+(k<<4)+6>>0]|0;a[o+(i<<4)+7>>0]=a[o+(k<<4)+7>>0]|0;a[o+(i<<4)+8>>0]=a[o+(k<<4)+8>>0]|0;a[o+(i<<4)+9>>0]=a[o+(k<<4)+9>>0]|0;a[o+(i<<4)+10>>0]=a[o+(k<<4)+10>>0]|0;a[o+(i<<4)+11>>0]=a[o+(k<<4)+11>>0]|0;a[o+(i<<4)+12>>0]=a[o+(k<<4)+12>>0]|0;a[o+(i<<4)+13>>0]=a[o+(k<<4)+13>>0]|0;a[o+(i<<4)+14>>0]=a[o+(k<<4)+14>>0]|0;a[o+(i<<4)+15>>0]=a[o+(k<<4)+15>>0]|0}lm(j);i=i+1|0}while((i|0)!=16);r=16-f|0;Yq(g|0,0,r|0)|0;j=g+r|0;if(!((j|e)&3))if(f>>>0>3){n=f+-4|0;o=n&-4;q=o+4|0;p=e+q|0;k=j;i=f;while(1){c[k>>2]=c[e>>2];i=i+-4|0;if(i>>>0<=3)break;else{e=e+4|0;k=k+4|0}}i=n-o|0;e=p;j=j+q|0}else i=f;else i=f;if(i|0)while(1){a[j>>0]=a[e>>0]|0;i=i+-1|0;if(!i)break;else{e=e+1|0;j=j+1|0}}a[g>>0]=d[s>>0]<<4;p=g+(r+-1)|0;a[p>>0]=d[p>>0]|1;p=g+15|0;k=d[p>>0]|0;a[p>>0]=k&192;p=pb[c[(c[u>>2]|0)+36>>2]&63](v,g,g)|0;p=p>>>0>t>>>0?p:t;o=h;n=g;i=c[g>>2]|0;c[h>>2]=i;c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];c[h+12>>2]=c[g+12>>2];j=h+16|0;e=g+1|0;if(!(e&3)){c[j>>2]=c[e>>2]^c[g>>2];c[h+20>>2]=c[g+5>>2]^c[g+4>>2]}else{v=a[e>>0]|0;a[j>>0]=v^i&255;u=a[g+2>>0]|0;a[h+17>>0]=u^v;v=a[g+3>>0]|0;a[h+18>>0]=v^u;u=a[g+4>>0]|0;a[h+19>>0]=u^v;v=a[g+5>>0]|0;a[h+20>>0]=v^u;u=a[g+6>>0]|0;a[h+21>>0]=u^v;v=a[g+7>>0]|0;a[h+22>>0]=v^u;a[h+23>>0]=a[g+8>>0]^v}j=b+64|0;e=h+(k>>>3&7)|0;i=k&7;if(!i){a[j>>0]=a[e>>0]|0;a[j+1>>0]=a[e+1>>0]|0;a[j+2>>0]=a[e+2>>0]|0;a[j+3>>0]=a[e+3>>0]|0;a[j+4>>0]=a[e+4>>0]|0;a[j+5>>0]=a[e+5>>0]|0;a[j+6>>0]=a[e+6>>0]|0;a[j+7>>0]=a[e+7>>0]|0;a[b+72>>0]=a[e+8>>0]|0;a[b+73>>0]=a[e+9>>0]|0;a[b+74>>0]=a[e+10>>0]|0;a[b+75>>0]=a[e+11>>0]|0;a[b+76>>0]=a[e+12>>0]|0;a[b+77>>0]=a[e+13>>0]|0;a[b+78>>0]=a[e+14>>0]|0;a[b+79>>0]=a[e+15>>0]|0}else{u=8-i|0;v=a[e+1>>0]|0;a[j>>0]=(v&255)>>>u|d[e>>0]<<i;t=a[e+2>>0]|0;a[j+1>>0]=(t&255)>>>u|(v&255)<<i;v=a[e+3>>0]|0;a[j+2>>0]=(v&255)>>>u|(t&255)<<i;t=a[e+4>>0]|0;a[j+3>>0]=(t&255)>>>u|(v&255)<<i;v=a[e+5>>0]|0;a[j+4>>0]=(v&255)>>>u|(t&255)<<i;t=a[e+6>>0]|0;a[j+5>>0]=(t&255)>>>u|(v&255)<<i;v=a[e+7>>0]|0;a[j+6>>0]=(v&255)>>>u|(t&255)<<i;t=a[e+8>>0]|0;a[j+7>>0]=(t&255)>>>u|(v&255)<<i;v=a[e+9>>0]|0;a[b+72>>0]=(v&255)>>>u|(t&255)<<i;t=a[e+10>>0]|0;a[b+73>>0]=(t&255)>>>u|(v&255)<<i;v=a[e+11>>0]|0;a[b+74>>0]=(v&255)>>>u|(t&255)<<i;t=a[e+12>>0]|0;a[b+75>>0]=(t&255)>>>u|(v&255)<<i;v=a[e+13>>0]|0;a[b+76>>0]=(v&255)>>>u|(t&255)<<i;t=a[e+14>>0]|0;a[b+77>>0]=(t&255)>>>u|(v&255)<<i;v=a[e+15>>0]|0;a[b+78>>0]=(v&255)>>>u|(t&255)<<i;a[b+79>>0]=(d[e+16>>0]|0)>>>u|(v&255)<<i}i=b+432|0;j=a[w>>0]&-15|2;e=b+80|0;k=e+36|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(k|0));c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;c[i+12>>2]=0;c[i+16>>2]=0;c[i+20>>2]=0;c[i+24>>2]=0;c[i+28>>2]=0;a[w>>0]=j;w=b+464|0;x=x+353|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;c[w+12>>2]=0;a[x>>0]=a[x>>0]&-4;if(n&4){i=16;do{a[g>>0]=0;g=g+1|0;i=i+-1|0}while((i|0)!=0&(g&7|0)!=0);if(i>>>0>=8)y=34}else{i=16;y=34}if((y|0)==34){e=i+-8|0;k=e&-8;n=k+8|0;j=g;while(1){x=j;c[x>>2]=0;c[x+4>>2]=0;i=i+-8|0;if(i>>>0<=7)break;else j=j+8|0}i=e-k|0;g=g+n|0}if(i|0)while(1){a[g>>0]=0;i=i+-1|0;if(!i)break;else g=g+1|0}if(o&4){g=24;do{a[h>>0]=0;h=h+1|0;g=g+-1|0}while((g|0)!=0&(h&7|0)!=0);if(g>>>0>=8)y=42}else{g=24;y=42}if((y|0)==42){j=g+-8|0;e=j&-8;k=e+8|0;i=h;while(1){y=i;c[y>>2]=0;c[y+4>>2]=0;g=g+-8|0;if(g>>>0<=7)break;else i=i+8|0}g=j-e|0;h=h+k|0}if(g|0)while(1){a[h>>0]=0;g=g+-1|0;if(!g)break;else h=h+1|0}if(!p){y=0;l=z;return y|0}Te(p+16|0);y=0;l=z;return y|0}function nm(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return om(a,1,b,c,d,e)|0}function om(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0;Da=l;l=l+32|0;if((l|0)>=(m|0))$(32);za=Da+16|0;j=Da;va=h>>>4;Aa=b+56|0;i=a[Aa>>0]|0;if(!(i&2)){Ca=156;l=Da;return Ca|0}xa=b+128|0;Ba=xa+353|0;if(a[Ba>>0]&1){Ca=156;l=Da;return Ca|0}Ca=b+12|0;k=c[Ca>>2]|0;if((c[k+20>>2]|0)!=16){Ca=12;l=Da;return Ca|0}if(f>>>0<h>>>0){Ca=200;l=Da;return Ca|0}if(!((h&15|0)==0|(i&8)!=0)){Ca=139;l=Da;return Ca|0}do if(va){i=c[b+40>>2]|0;wa=va<<4;if(i|0){qb[i&15](b,e,g,va,d);i=0;h=h-wa|0;g=g+wa|0;e=e+wa|0;break}ua=(d|0)!=0;p=c[(ua?k+36|0:k+40|0)>>2]|0;if(ua)pm(b+80|0,g,va);if(h>>>0>15){q=b+464|0;r=b+64|0;s=r;t=r+4|0;u=b+72|0;v=b+76|0;w=b+496|0;x=h+-16|0;sa=x&-16;ta=sa+16|0;sa=x-sa|0;x=b+72|0;y=r+4|0;z=b+76|0;A=r+1|0;B=r+2|0;C=r+3|0;E=r+4|0;F=r+5|0;G=r+6|0;H=r+7|0;I=b+72|0;J=b+73|0;K=b+74|0;L=b+75|0;M=b+76|0;N=b+77|0;O=b+78|0;P=b+79|0;Q=r+1|0;R=r+2|0;S=r+3|0;T=r+4|0;U=r+5|0;V=r+6|0;W=r+7|0;X=b+72|0;Y=b+73|0;Z=b+74|0;_=b+75|0;aa=b+76|0;ba=b+77|0;ca=b+78|0;da=b+79|0;ea=r+1|0;fa=r+2|0;ga=r+3|0;ha=r+4|0;ia=r+5|0;ja=r+6|0;ka=r+7|0;la=b+72|0;ma=b+73|0;na=b+74|0;oa=b+75|0;pa=b+76|0;qa=b+77|0;ra=b+78|0;o=b+79|0;i=0;k=g;n=e;while(1){Ea=q;Ea=_q(c[Ea>>2]|0,c[Ea+4>>2]|0,1,0)|0;f=D;Fa=q;c[Fa>>2]=Ea;c[Fa+4>>2]=f;f=km(b,za,Ea,f)|0;if(!((f|s)&3)){c[r>>2]=c[r>>2]^c[f>>2];c[t>>2]=c[t>>2]^c[f+4>>2];c[u>>2]=c[u>>2]^c[f+8>>2];c[v>>2]=c[v>>2]^c[f+12>>2]}else{a[r>>0]=a[r>>0]^a[f>>0];a[ea>>0]=a[ea>>0]^a[f+1>>0];a[fa>>0]=a[fa>>0]^a[f+2>>0];a[ga>>0]=a[ga>>0]^a[f+3>>0];a[ha>>0]=a[ha>>0]^a[f+4>>0];a[ia>>0]=a[ia>>0]^a[f+5>>0];a[ja>>0]=a[ja>>0]^a[f+6>>0];a[ka>>0]=a[ka>>0]^a[f+7>>0];a[la>>0]=a[la>>0]^a[f+8>>0];a[ma>>0]=a[ma>>0]^a[f+9>>0];a[na>>0]=a[na>>0]^a[f+10>>0];a[oa>>0]=a[oa>>0]^a[f+11>>0];a[pa>>0]=a[pa>>0]^a[f+12>>0];a[qa>>0]=a[qa>>0]^a[f+13>>0];a[ra>>0]=a[ra>>0]^a[f+14>>0];a[o>>0]=a[o>>0]^a[f+15>>0]}f=n|s;if(!((f|k)&3)){c[n>>2]=c[k>>2]^c[r>>2];c[n+4>>2]=c[k+4>>2]^c[y>>2];c[n+8>>2]=c[k+8>>2]^c[x>>2];c[n+12>>2]=c[k+12>>2]^c[z>>2]}else{a[n>>0]=a[k>>0]^a[r>>0];a[n+1>>0]=a[k+1>>0]^a[Q>>0];a[n+2>>0]=a[k+2>>0]^a[R>>0];a[n+3>>0]=a[k+3>>0]^a[S>>0];a[n+4>>0]=a[k+4>>0]^a[T>>0];a[n+5>>0]=a[k+5>>0]^a[U>>0];a[n+6>>0]=a[k+6>>0]^a[V>>0];a[n+7>>0]=a[k+7>>0]^a[W>>0];a[n+8>>0]=a[k+8>>0]^a[X>>0];a[n+9>>0]=a[k+9>>0]^a[Y>>0];a[n+10>>0]=a[k+10>>0]^a[Z>>0];a[n+11>>0]=a[k+11>>0]^a[_>>0];a[n+12>>0]=a[k+12>>0]^a[aa>>0];a[n+13>>0]=a[k+13>>0]^a[ba>>0];a[n+14>>0]=a[k+14>>0]^a[ca>>0];a[n+15>>0]=a[k+15>>0]^a[da>>0]}Fa=pb[p&63](w,n,n)|0;i=Fa>>>0>i>>>0?Fa:i;if(!(f&3)){Fa=n+4|0;c[n>>2]=c[n>>2]^c[r>>2];Ea=n+8|0;c[Fa>>2]=c[Fa>>2]^c[t>>2];Fa=n+12|0;c[Ea>>2]=c[Ea>>2]^c[u>>2];c[Fa>>2]=c[Fa>>2]^c[v>>2]}else{Fa=n+1|0;a[n>>0]=a[n>>0]^a[r>>0];Ea=n+2|0;a[Fa>>0]=a[Fa>>0]^a[A>>0];Fa=n+3|0;a[Ea>>0]=a[Ea>>0]^a[B>>0];Ea=n+4|0;a[Fa>>0]=a[Fa>>0]^a[C>>0];Fa=n+5|0;a[Ea>>0]=a[Ea>>0]^a[E>>0];Ea=n+6|0;a[Fa>>0]=a[Fa>>0]^a[F>>0];Fa=n+7|0;a[Ea>>0]=a[Ea>>0]^a[G>>0];Ea=n+8|0;a[Fa>>0]=a[Fa>>0]^a[H>>0];Fa=n+9|0;a[Ea>>0]=a[Ea>>0]^a[I>>0];Ea=n+10|0;a[Fa>>0]=a[Fa>>0]^a[J>>0];Fa=n+11|0;a[Ea>>0]=a[Ea>>0]^a[K>>0];Ea=n+12|0;a[Fa>>0]=a[Fa>>0]^a[L>>0];Fa=n+13|0;a[Ea>>0]=a[Ea>>0]^a[M>>0];Ea=n+14|0;a[Fa>>0]=a[Fa>>0]^a[N>>0];Fa=n+15|0;a[Ea>>0]=a[Ea>>0]^a[O>>0];a[Fa>>0]=a[Fa>>0]^a[P>>0]}h=h+-16|0;if(h>>>0<=15)break;else{k=k+16|0;n=n+16|0}}h=sa;g=g+ta|0;e=e+ta|0}else i=0;if(!ua)pm(b+80|0,e+(0-wa)|0,va)}else i=0;while(0);if(h){f=b+64|0;if(!((xa|f)&3)){Fa=f+4|0;c[f>>2]=c[f>>2]^c[xa>>2];Ea=b+72|0;c[Fa>>2]=c[Fa>>2]^c[xa+4>>2];Fa=b+76|0;c[Ea>>2]=c[Ea>>2]^c[b+136>>2];c[Fa>>2]=c[Fa>>2]^c[b+140>>2]}else{Fa=f+1|0;a[f>>0]=a[f>>0]^a[xa>>0];Ea=f+2|0;a[Fa>>0]=a[Fa>>0]^a[xa+1>>0];Fa=f+3|0;a[Ea>>0]=a[Ea>>0]^a[xa+2>>0];Ea=f+4|0;a[Fa>>0]=a[Fa>>0]^a[xa+3>>0];Fa=f+5|0;a[Ea>>0]=a[Ea>>0]^a[xa+4>>0];Ea=f+6|0;a[Fa>>0]=a[Fa>>0]^a[xa+5>>0];Fa=f+7|0;a[Ea>>0]=a[Ea>>0]^a[xa+6>>0];Ea=b+72|0;a[Fa>>0]=a[Fa>>0]^a[xa+7>>0];Fa=b+73|0;a[Ea>>0]=a[Ea>>0]^a[b+136>>0];Ea=b+74|0;a[Fa>>0]=a[Fa>>0]^a[b+137>>0];Fa=b+75|0;a[Ea>>0]=a[Ea>>0]^a[b+138>>0];Ea=b+76|0;a[Fa>>0]=a[Fa>>0]^a[b+139>>0];Fa=b+77|0;a[Ea>>0]=a[Ea>>0]^a[b+140>>0];Ea=b+78|0;a[Fa>>0]=a[Fa>>0]^a[b+141>>0];Fa=b+79|0;a[Ea>>0]=a[Ea>>0]^a[b+142>>0];a[Fa>>0]=a[Fa>>0]^a[b+143>>0]}Fa=pb[c[(c[Ca>>2]|0)+36>>2]&63](b+496|0,j,f)|0;i=Fa>>>0>i>>>0?Fa:i;do if(!d){p=c[j>>2]|0;c[za>>2]=p;r=c[j+4>>2]|0;c[za+4>>2]=r;c[za+8>>2]=c[j+8>>2];c[za+12>>2]=c[j+12>>2];do if(!(g&3)){if(h>>>0<=3){k=za;f=h;ya=55;break}n=h+-4|0;o=n&-4;s=o+4|0;q=g+s|0;f=za;k=h;while(1){c[f>>2]=c[g>>2];k=k+-4|0;if(k>>>0<=3)break;else{g=g+4|0;f=f+4|0}}f=n-o|0;if(!f){g=p;f=r}else{g=q;k=za+s|0;ya=55}}else{k=za;f=h;ya=55}while(0);if((ya|0)==55){while(1){a[k>>0]=a[g>>0]|0;f=f+-1|0;if(!f)break;else{g=g+1|0;k=k+1|0;ya=55}}g=c[j>>2]|0;f=c[j+4>>2]|0}r=za+4|0;c[za>>2]=c[za>>2]^g;q=za+8|0;c[r>>2]=c[r>>2]^f;p=za+12|0;c[q>>2]=c[q>>2]^c[j+8>>2];c[p>>2]=c[p>>2]^c[j+12>>2];a[za+h>>0]=-128;if(!(e&3))if(h>>>0>3){k=h+-4|0;n=k&-4;o=n+4|0;g=za+o|0;j=za;f=e;while(1){c[f>>2]=c[j>>2];h=h+-4|0;if(h>>>0<=3)break;else{j=j+4|0;f=f+4|0}}h=k-n|0;e=e+o|0}else g=za;else g=za;if(h|0)while(1){a[e>>0]=a[g>>0]|0;h=h+-1|0;if(!h)break;else{g=g+1|0;e=e+1|0}}h=b+80|0;if(!(h&3)){Fa=h+4|0;c[h>>2]=c[h>>2]^c[za>>2];Ea=b+88|0;c[Fa>>2]=c[Fa>>2]^c[r>>2];Fa=b+92|0;c[Ea>>2]=c[Ea>>2]^c[q>>2];c[Fa>>2]=c[Fa>>2]^c[p>>2];break}else{Fa=h+1|0;a[h>>0]=a[h>>0]^a[za>>0];Ea=h+2|0;a[Fa>>0]=a[Fa>>0]^a[za+1>>0];Fa=h+3|0;a[Ea>>0]=a[Ea>>0]^a[za+2>>0];Ea=h+4|0;a[Fa>>0]=a[Fa>>0]^a[za+3>>0];Fa=h+5|0;a[Ea>>0]=a[Ea>>0]^a[za+4>>0];Ea=h+6|0;a[Fa>>0]=a[Fa>>0]^a[za+5>>0];Fa=h+7|0;a[Ea>>0]=a[Ea>>0]^a[za+6>>0];Ea=b+88|0;a[Fa>>0]=a[Fa>>0]^a[za+7>>0];Fa=b+89|0;a[Ea>>0]=a[Ea>>0]^a[za+8>>0];Ea=b+90|0;a[Fa>>0]=a[Fa>>0]^a[za+9>>0];Fa=b+91|0;a[Ea>>0]=a[Ea>>0]^a[za+10>>0];Ea=b+92|0;a[Fa>>0]=a[Fa>>0]^a[za+11>>0];Fa=b+93|0;a[Ea>>0]=a[Ea>>0]^a[za+12>>0];Ea=b+94|0;a[Fa>>0]=a[Fa>>0]^a[za+13>>0];Fa=b+95|0;a[Ea>>0]=a[Ea>>0]^a[za+14>>0];a[Fa>>0]=a[Fa>>0]^a[za+15>>0];break}}else{s=g;do if(!(s&3)){if(h>>>0<=3){n=g;k=za;f=h;ya=37;break}p=h+-4|0;q=p&-4;r=q+4|0;n=g+r|0;f=g;k=za;o=h;while(1){c[k>>2]=c[f>>2];o=o+-4|0;if(o>>>0<=3)break;else{f=f+4|0;k=k+4|0}}f=p-q|0;if(f|0){k=za+r|0;ya=37}}else{n=g;k=za;f=h;ya=37}while(0);if((ya|0)==37)while(1){a[k>>0]=a[n>>0]|0;f=f+-1|0;if(!f)break;else{n=n+1|0;k=k+1|0;ya=37}}f=za+h|0;Yq(f|0,0,16-h|0)|0;a[f>>0]=-128;f=b+80|0;if(!(f&3)){Fa=f+4|0;c[f>>2]=c[f>>2]^c[za>>2];Ea=b+88|0;c[Fa>>2]=c[Fa>>2]^c[za+4>>2];Fa=b+92|0;c[Ea>>2]=c[Ea>>2]^c[za+8>>2];c[Fa>>2]=c[Fa>>2]^c[za+12>>2]}else{Fa=f+1|0;a[f>>0]=a[f>>0]^a[za>>0];Ea=f+2|0;a[Fa>>0]=a[Fa>>0]^a[za+1>>0];Fa=f+3|0;a[Ea>>0]=a[Ea>>0]^a[za+2>>0];Ea=f+4|0;a[Fa>>0]=a[Fa>>0]^a[za+3>>0];Fa=f+5|0;a[Ea>>0]=a[Ea>>0]^a[za+4>>0];Ea=f+6|0;a[Fa>>0]=a[Fa>>0]^a[za+5>>0];Fa=f+7|0;a[Ea>>0]=a[Ea>>0]^a[za+6>>0];Ea=b+88|0;a[Fa>>0]=a[Fa>>0]^a[za+7>>0];Fa=b+89|0;a[Ea>>0]=a[Ea>>0]^a[za+8>>0];Ea=b+90|0;a[Fa>>0]=a[Fa>>0]^a[za+9>>0];Fa=b+91|0;a[Ea>>0]=a[Ea>>0]^a[za+10>>0];Ea=b+92|0;a[Fa>>0]=a[Fa>>0]^a[za+11>>0];Fa=b+93|0;a[Ea>>0]=a[Ea>>0]^a[za+12>>0];Ea=b+94|0;a[Fa>>0]=a[Fa>>0]^a[za+13>>0];Fa=b+95|0;a[Ea>>0]=a[Ea>>0]^a[za+14>>0];a[Fa>>0]=a[Fa>>0]^a[za+15>>0]}if(!((s|e)&3))if(h>>>0>3){n=h+-4|0;o=n&-4;q=o+4|0;p=j+q|0;f=g;k=e;while(1){c[k>>2]=c[j>>2]^c[f>>2];h=h+-4|0;if(h>>>0<=3)break;else{j=j+4|0;f=f+4|0;k=k+4|0}}h=n-o|0;j=p;g=g+q|0;e=e+q|0}if(h|0)while(1){a[e>>0]=a[j>>0]^a[g>>0];h=h+-1|0;if(!h)break;else{j=j+1|0;g=g+1|0;e=e+1|0}}}while(0)}if(a[Aa>>0]&8){g=b+416|0;h=b+80|0;e=b+64|0;j=g;if(!((h|j|e)&3)){c[g>>2]=c[e>>2]^c[h>>2];c[b+420>>2]=c[e+4>>2]^c[h+4>>2];c[b+424>>2]=c[b+72>>2]^c[b+88>>2];c[b+428>>2]=c[b+76>>2]^c[b+92>>2]}else{a[g>>0]=a[e>>0]^a[h>>0];a[g+1>>0]=a[e+1>>0]^a[h+1>>0];a[g+2>>0]=a[e+2>>0]^a[h+2>>0];Fa=b+420|0;a[g+3>>0]=a[e+3>>0]^a[h+3>>0];a[Fa>>0]=a[e+4>>0]^a[h+4>>0];a[Fa+1>>0]=a[e+5>>0]^a[h+5>>0];a[Fa+2>>0]=a[e+6>>0]^a[h+6>>0];Ea=b+424|0;a[Fa+3>>0]=a[e+7>>0]^a[h+7>>0];a[Ea>>0]=a[b+72>>0]^a[b+88>>0];a[Ea+1>>0]=a[b+73>>0]^a[b+89>>0];a[Ea+2>>0]=a[b+74>>0]^a[b+90>>0];Fa=b+428|0;a[Ea+3>>0]=a[b+75>>0]^a[b+91>>0];a[Fa>>0]=a[b+76>>0]^a[b+92>>0];a[Fa+1>>0]=a[b+77>>0]^a[b+93>>0];a[Fa+2>>0]=a[b+78>>0]^a[b+94>>0];a[Fa+3>>0]=a[b+79>>0]^a[b+95>>0]}h=b+144|0;if(!((h|j)&3)){Fa=b+420|0;c[g>>2]=c[g>>2]^c[h>>2];Ea=b+424|0;c[Fa>>2]=c[Fa>>2]^c[b+148>>2];Fa=b+428|0;c[Ea>>2]=c[Ea>>2]^c[b+152>>2];c[Fa>>2]=c[Fa>>2]^c[b+156>>2]}else{Fa=g+1|0;a[g>>0]=a[g>>0]^a[h>>0];Ea=g+2|0;a[Fa>>0]=a[Fa>>0]^a[b+145>>0];Fa=g+3|0;a[Ea>>0]=a[Ea>>0]^a[b+146>>0];Ea=b+420|0;a[Fa>>0]=a[Fa>>0]^a[b+147>>0];Fa=Ea+1|0;a[Ea>>0]=a[Ea>>0]^a[b+148>>0];Aa=Ea+2|0;a[Fa>>0]=a[Fa>>0]^a[b+149>>0];Ea=Ea+3|0;a[Aa>>0]=a[Aa>>0]^a[b+150>>0];Aa=b+424|0;a[Ea>>0]=a[Ea>>0]^a[b+151>>0];Ea=Aa+1|0;a[Aa>>0]=a[Aa>>0]^a[b+152>>0];Fa=Aa+2|0;a[Ea>>0]=a[Ea>>0]^a[b+153>>0];Aa=Aa+3|0;a[Fa>>0]=a[Fa>>0]^a[b+154>>0];Fa=b+428|0;a[Aa>>0]=a[Aa>>0]^a[b+155>>0];Aa=Fa+1|0;a[Fa>>0]=a[Fa>>0]^a[b+156>>0];Ea=Fa+2|0;a[Aa>>0]=a[Aa>>0]^a[b+157>>0];Fa=Fa+3|0;a[Ea>>0]=a[Ea>>0]^a[b+158>>0];a[Fa>>0]=a[Fa>>0]^a[b+159>>0]}Fa=pb[c[(c[Ca>>2]|0)+36>>2]&63](b+496|0,g,g)|0;a[Ba>>0]=a[Ba>>0]|1;i=Fa>>>0>i>>>0?Fa:i}if(!i){Fa=0;l=Da;return Fa|0}Te(i+16|0);Fa=0;l=Da;return Fa|0}function pm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;if(!e)return;s=b;t=b+4|0;u=b+8|0;v=b+12|0;w=b+1|0;x=b+2|0;f=b+3|0;g=b+4|0;h=b+5|0;i=b+6|0;j=b+7|0;k=b+8|0;l=b+9|0;m=b+10|0;n=b+11|0;o=b+12|0;p=b+13|0;q=b+14|0;r=b+15|0;while(1){if(!((d|s)&3)){c[b>>2]=c[b>>2]^c[d>>2];c[t>>2]=c[t>>2]^c[d+4>>2];c[u>>2]=c[u>>2]^c[d+8>>2];c[v>>2]=c[v>>2]^c[d+12>>2]}else{a[b>>0]=a[b>>0]^a[d>>0];a[w>>0]=a[w>>0]^a[d+1>>0];a[x>>0]=a[x>>0]^a[d+2>>0];a[f>>0]=a[f>>0]^a[d+3>>0];a[g>>0]=a[g>>0]^a[d+4>>0];a[h>>0]=a[h>>0]^a[d+5>>0];a[i>>0]=a[i>>0]^a[d+6>>0];a[j>>0]=a[j>>0]^a[d+7>>0];a[k>>0]=a[k>>0]^a[d+8>>0];a[l>>0]=a[l>>0]^a[d+9>>0];a[m>>0]=a[m>>0]^a[d+10>>0];a[n>>0]=a[n>>0]^a[d+11>>0];a[o>>0]=a[o>>0]^a[d+12>>0];a[p>>0]=a[p>>0]^a[d+13>>0];a[q>>0]=a[q>>0]^a[d+14>>0];a[r>>0]=a[r>>0]^a[d+15>>0]}e=e+-1|0;if(!e)break;else d=d+16|0}return}function qm(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return om(a,0,b,c,d,e)|0} +function mi(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,qb=0,rb=0,sb=0,tb=0,ub=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0;Gb=l;l=l+16|0;if((l|0)>=(m|0))$(16);Eb=Gb;Fb=b+496|0;if(!g){bi(Fb);g=c[Fb+500>>2]|0;if(g|0)vb[g&3]();i=c[Fb+492>>2]|0;if(!f)g=0;else{j=b+464|0;k=b+64|0;n=k;o=k+4|0;p=b+72|0;q=b+76|0;r=Eb+4|0;s=Eb+8|0;t=Eb+12|0;u=(n&3|0)==0;v=b+80|0;w=(v&3|0)==0;x=v+4|0;y=b+88|0;z=b+92|0;A=b+160|0;B=Eb+1|0;C=Eb+2|0;E=Eb+3|0;F=Eb+4|0;G=F+1|0;H=F+2|0;I=F+3|0;J=Eb+8|0;K=J+1|0;L=J+2|0;M=J+3|0;N=Eb+12|0;O=N+1|0;P=N+2|0;Q=N+3|0;R=Eb+1|0;S=v+1|0;T=Eb+2|0;U=v+2|0;V=Eb+3|0;W=v+3|0;X=Eb+4|0;Y=v+4|0;Z=X+1|0;_=v+5|0;aa=X+2|0;ba=v+6|0;ca=X+3|0;da=v+7|0;ea=Eb+8|0;fa=b+88|0;ga=ea+1|0;ha=b+89|0;ia=ea+2|0;ja=b+90|0;ka=ea+3|0;la=b+91|0;ma=Eb+12|0;na=b+92|0;oa=ma+1|0;pa=b+93|0;qa=ma+2|0;ra=b+94|0;sa=ma+3|0;ta=b+95|0;ua=k+1|0;va=Eb+1|0;wa=k+2|0;xa=Eb+2|0;ya=k+3|0;za=Eb+3|0;Aa=k+4|0;Ba=Eb+4|0;Ca=k+5|0;Da=Ba+1|0;Ea=k+6|0;Fa=Ba+2|0;Ga=k+7|0;Ha=Ba+3|0;Ia=b+72|0;Ja=Eb+8|0;Ka=b+73|0;La=Ja+1|0;Ma=b+74|0;Na=Ja+2|0;Oa=b+75|0;Pa=Ja+3|0;Qa=b+76|0;Ra=Eb+12|0;Sa=b+77|0;Ta=Ra+1|0;Ua=b+78|0;Va=Ra+2|0;Wa=b+79|0;Xa=Ra+3|0;Ya=Eb+1|0;Za=Eb+2|0;_a=Eb+3|0;$a=Eb+4|0;ab=$a+1|0;bb=$a+2|0;cb=$a+3|0;db=Eb+8|0;eb=db+1|0;fb=db+2|0;gb=db+3|0;hb=Eb+12|0;ib=hb+1|0;jb=hb+2|0;kb=hb+3|0;lb=k+1|0;mb=k+2|0;nb=k+3|0;ob=k+4|0;qb=k+5|0;rb=k+6|0;sb=k+7|0;tb=b+72|0;ub=b+73|0;wb=b+74|0;xb=b+75|0;yb=b+76|0;zb=b+77|0;Ab=b+78|0;Bb=b+79|0;while(1){g=j;g=_q(c[g>>2]|0,c[g+4>>2]|0,1,0)|0;h=D;Cb=j;c[Cb>>2]=g;c[Cb+4>>2]=h;if(!((g|0)==0&0==0)?(Db=$q(g|0)|0,Db>>>0<16):0)g=A+(Db<<4)|0;else g=km(b,Eb,g,h)|0;if(!((g|n)&3)){c[k>>2]=c[k>>2]^c[g>>2];c[o>>2]=c[o>>2]^c[g+4>>2];c[p>>2]=c[p>>2]^c[g+8>>2];c[q>>2]=c[q>>2]^c[g+12>>2]}else{a[k>>0]=a[k>>0]^a[g>>0];a[lb>>0]=a[lb>>0]^a[g+1>>0];a[mb>>0]=a[mb>>0]^a[g+2>>0];a[nb>>0]=a[nb>>0]^a[g+3>>0];a[ob>>0]=a[ob>>0]^a[g+4>>0];a[qb>>0]=a[qb>>0]^a[g+5>>0];a[rb>>0]=a[rb>>0]^a[g+6>>0];a[sb>>0]=a[sb>>0]^a[g+7>>0];a[tb>>0]=a[tb>>0]^a[g+8>>0];a[ub>>0]=a[ub>>0]^a[g+9>>0];a[wb>>0]=a[wb>>0]^a[g+10>>0];a[xb>>0]=a[xb>>0]^a[g+11>>0];a[yb>>0]=a[yb>>0]^a[g+12>>0];a[zb>>0]=a[zb>>0]^a[g+13>>0];a[Ab>>0]=a[Ab>>0]^a[g+14>>0];a[Bb>>0]=a[Bb>>0]^a[g+15>>0]}if(!(e&3)){c[Eb>>2]=c[e>>2];c[r>>2]=c[e+4>>2];c[s>>2]=c[e+8>>2];c[t>>2]=c[e+12>>2]}else{a[Eb>>0]=a[e>>0]|0;a[Ya>>0]=a[e+1>>0]|0;a[Za>>0]=a[e+2>>0]|0;a[_a>>0]=a[e+3>>0]|0;a[$a>>0]=a[e+4>>0]|0;a[ab>>0]=a[e+5>>0]|0;a[bb>>0]=a[e+6>>0]|0;a[cb>>0]=a[e+7>>0]|0;a[db>>0]=a[e+8>>0]|0;a[eb>>0]=a[e+9>>0]|0;a[fb>>0]=a[e+10>>0]|0;a[gb>>0]=a[e+11>>0]|0;a[hb>>0]=a[e+12>>0]|0;a[ib>>0]=a[e+13>>0]|0;a[jb>>0]=a[e+14>>0]|0;a[kb>>0]=a[e+15>>0]|0}if(u){c[Eb>>2]=c[Eb>>2]^c[k>>2];c[r>>2]=c[r>>2]^c[o>>2];c[s>>2]=c[s>>2]^c[p>>2];c[t>>2]=c[t>>2]^c[q>>2];g=pb[i&63](Fb,Eb,Eb)|0;c[Eb>>2]=c[Eb>>2]^c[k>>2];c[r>>2]=c[r>>2]^c[o>>2];c[s>>2]=c[s>>2]^c[p>>2];c[t>>2]=c[t>>2]^c[q>>2]}else{a[Eb>>0]=a[Eb>>0]^a[k>>0];a[va>>0]=a[va>>0]^a[ua>>0];a[xa>>0]=a[xa>>0]^a[wa>>0];a[za>>0]=a[za>>0]^a[ya>>0];a[Ba>>0]=a[Ba>>0]^a[Aa>>0];a[Da>>0]=a[Da>>0]^a[Ca>>0];a[Fa>>0]=a[Fa>>0]^a[Ea>>0];a[Ha>>0]=a[Ha>>0]^a[Ga>>0];a[Ja>>0]=a[Ja>>0]^a[Ia>>0];a[La>>0]=a[La>>0]^a[Ka>>0];a[Na>>0]=a[Na>>0]^a[Ma>>0];a[Pa>>0]=a[Pa>>0]^a[Oa>>0];a[Ra>>0]=a[Ra>>0]^a[Qa>>0];a[Ta>>0]=a[Ta>>0]^a[Sa>>0];a[Va>>0]=a[Va>>0]^a[Ua>>0];a[Xa>>0]=a[Xa>>0]^a[Wa>>0];g=pb[i&63](Fb,Eb,Eb)|0;a[Eb>>0]=a[Eb>>0]^a[k>>0];a[va>>0]=a[va>>0]^a[ua>>0];a[xa>>0]=a[xa>>0]^a[wa>>0];a[za>>0]=a[za>>0]^a[ya>>0];a[Ba>>0]=a[Ba>>0]^a[Aa>>0];a[Da>>0]=a[Da>>0]^a[Ca>>0];a[Fa>>0]=a[Fa>>0]^a[Ea>>0];a[Ha>>0]=a[Ha>>0]^a[Ga>>0];a[Ja>>0]=a[Ja>>0]^a[Ia>>0];a[La>>0]=a[La>>0]^a[Ka>>0];a[Na>>0]=a[Na>>0]^a[Ma>>0];a[Pa>>0]=a[Pa>>0]^a[Oa>>0];a[Ra>>0]=a[Ra>>0]^a[Qa>>0];a[Ta>>0]=a[Ta>>0]^a[Sa>>0];a[Va>>0]=a[Va>>0]^a[Ua>>0];a[Xa>>0]=a[Xa>>0]^a[Wa>>0]}if(w){h=c[Eb>>2]|0;c[v>>2]=c[v>>2]^h;c[x>>2]=c[x>>2]^c[r>>2];c[y>>2]=c[y>>2]^c[s>>2];c[z>>2]=c[z>>2]^c[t>>2];h=h&255}else{h=a[Eb>>0]|0;a[v>>0]=a[v>>0]^h;a[S>>0]=a[S>>0]^a[R>>0];a[U>>0]=a[U>>0]^a[T>>0];a[W>>0]=a[W>>0]^a[V>>0];a[Y>>0]=a[Y>>0]^a[X>>0];a[_>>0]=a[_>>0]^a[Z>>0];a[ba>>0]=a[ba>>0]^a[aa>>0];a[da>>0]=a[da>>0]^a[ca>>0];a[fa>>0]=a[fa>>0]^a[ea>>0];a[ha>>0]=a[ha>>0]^a[ga>>0];a[ja>>0]=a[ja>>0]^a[ia>>0];a[la>>0]=a[la>>0]^a[ka>>0];a[na>>0]=a[na>>0]^a[ma>>0];a[pa>>0]=a[pa>>0]^a[oa>>0];a[ra>>0]=a[ra>>0]^a[qa>>0];a[ta>>0]=a[ta>>0]^a[sa>>0]}if(!(d&3)){c[d>>2]=c[Eb>>2];c[d+4>>2]=c[r>>2];c[d+8>>2]=c[s>>2];c[d+12>>2]=c[t>>2]}else{a[d>>0]=h;a[d+1>>0]=a[B>>0]|0;a[d+2>>0]=a[C>>0]|0;a[d+3>>0]=a[E>>0]|0;a[d+4>>0]=a[F>>0]|0;a[d+5>>0]=a[G>>0]|0;a[d+6>>0]=a[H>>0]|0;a[d+7>>0]=a[I>>0]|0;a[d+8>>0]=a[J>>0]|0;a[d+9>>0]=a[K>>0]|0;a[d+10>>0]=a[L>>0]|0;a[d+11>>0]=a[M>>0]|0;a[d+12>>0]=a[N>>0]|0;a[d+13>>0]=a[O>>0]|0;a[d+14>>0]=a[P>>0]|0;a[d+15>>0]=a[Q>>0]|0}f=f+-1|0;if(!f)break;else{d=d+16|0;e=e+16|0}}}}else{g=c[Fb+496>>2]|0;if(g|0)vb[g&3]();_=c[Fb+488>>2]|0;if(!f)g=0;else{aa=b+464|0;ba=b+64|0;ca=ba;da=ba+4|0;ea=b+72|0;fa=b+76|0;ga=Eb+4|0;ha=Eb+8|0;ia=Eb+12|0;ja=b+80|0;ka=(ja&3|0)==0;la=ja+4|0;ma=b+88|0;na=b+92|0;oa=(ca&3|0)==0;pa=b+160|0;qa=Eb+1|0;ra=Eb+2|0;sa=Eb+3|0;ta=Eb+4|0;ua=ta+1|0;va=ta+2|0;wa=ta+3|0;xa=Eb+8|0;ya=xa+1|0;za=xa+2|0;Aa=xa+3|0;Ba=Eb+12|0;Ca=Ba+1|0;Da=Ba+2|0;Ea=Ba+3|0;Fa=ba+1|0;Ga=Eb+1|0;Ha=ba+2|0;Ia=Eb+2|0;Ja=ba+3|0;Ka=Eb+3|0;La=ba+4|0;Ma=Eb+4|0;Na=ba+5|0;Oa=Ma+1|0;Pa=ba+6|0;Qa=Ma+2|0;Ra=ba+7|0;Sa=Ma+3|0;Ta=b+72|0;Ua=Eb+8|0;Va=b+73|0;Wa=Ua+1|0;Xa=b+74|0;Ya=Ua+2|0;Za=b+75|0;_a=Ua+3|0;$a=b+76|0;ab=Eb+12|0;bb=b+77|0;cb=ab+1|0;db=b+78|0;eb=ab+2|0;fb=b+79|0;gb=ab+3|0;hb=Eb+1|0;ib=ja+1|0;jb=Eb+2|0;kb=ja+2|0;lb=Eb+3|0;mb=ja+3|0;nb=Eb+4|0;ob=ja+4|0;qb=nb+1|0;rb=ja+5|0;sb=nb+2|0;tb=ja+6|0;ub=nb+3|0;wb=ja+7|0;xb=Eb+8|0;yb=b+88|0;zb=xb+1|0;Ab=b+89|0;Bb=xb+2|0;i=b+90|0;j=xb+3|0;k=b+91|0;n=Eb+12|0;o=b+92|0;p=n+1|0;q=b+93|0;r=n+2|0;s=b+94|0;t=n+3|0;u=b+95|0;v=Eb+1|0;w=Eb+2|0;x=Eb+3|0;y=Eb+4|0;z=y+1|0;A=y+2|0;B=y+3|0;C=Eb+8|0;E=C+1|0;F=C+2|0;G=C+3|0;H=Eb+12|0;I=H+1|0;J=H+2|0;K=H+3|0;L=ba+1|0;M=ba+2|0;N=ba+3|0;O=ba+4|0;P=ba+5|0;Q=ba+6|0;R=ba+7|0;S=b+72|0;T=b+73|0;U=b+74|0;V=b+75|0;W=b+76|0;X=b+77|0;Y=b+78|0;Z=b+79|0;while(1){g=aa;g=_q(c[g>>2]|0,c[g+4>>2]|0,1,0)|0;h=D;Db=aa;c[Db>>2]=g;c[Db+4>>2]=h;if(!((g|0)==0&0==0)?(Cb=$q(g|0)|0,Cb>>>0<16):0)g=pa+(Cb<<4)|0;else g=km(b,Eb,g,h)|0;if(!((g|ca)&3)){c[ba>>2]=c[ba>>2]^c[g>>2];c[da>>2]=c[da>>2]^c[g+4>>2];c[ea>>2]=c[ea>>2]^c[g+8>>2];c[fa>>2]=c[fa>>2]^c[g+12>>2]}else{a[ba>>0]=a[ba>>0]^a[g>>0];a[L>>0]=a[L>>0]^a[g+1>>0];a[M>>0]=a[M>>0]^a[g+2>>0];a[N>>0]=a[N>>0]^a[g+3>>0];a[O>>0]=a[O>>0]^a[g+4>>0];a[P>>0]=a[P>>0]^a[g+5>>0];a[Q>>0]=a[Q>>0]^a[g+6>>0];a[R>>0]=a[R>>0]^a[g+7>>0];a[S>>0]=a[S>>0]^a[g+8>>0];a[T>>0]=a[T>>0]^a[g+9>>0];a[U>>0]=a[U>>0]^a[g+10>>0];a[V>>0]=a[V>>0]^a[g+11>>0];a[W>>0]=a[W>>0]^a[g+12>>0];a[X>>0]=a[X>>0]^a[g+13>>0];a[Y>>0]=a[Y>>0]^a[g+14>>0];a[Z>>0]=a[Z>>0]^a[g+15>>0]}if(!(e&3)){c[Eb>>2]=c[e>>2];c[ga>>2]=c[e+4>>2];c[ha>>2]=c[e+8>>2];c[ia>>2]=c[e+12>>2]}else{a[Eb>>0]=a[e>>0]|0;a[v>>0]=a[e+1>>0]|0;a[w>>0]=a[e+2>>0]|0;a[x>>0]=a[e+3>>0]|0;a[y>>0]=a[e+4>>0]|0;a[z>>0]=a[e+5>>0]|0;a[A>>0]=a[e+6>>0]|0;a[B>>0]=a[e+7>>0]|0;a[C>>0]=a[e+8>>0]|0;a[E>>0]=a[e+9>>0]|0;a[F>>0]=a[e+10>>0]|0;a[G>>0]=a[e+11>>0]|0;a[H>>0]=a[e+12>>0]|0;a[I>>0]=a[e+13>>0]|0;a[J>>0]=a[e+14>>0]|0;a[K>>0]=a[e+15>>0]|0}if(ka){g=c[Eb>>2]|0;c[ja>>2]=c[ja>>2]^g;c[la>>2]=c[la>>2]^c[ga>>2];c[ma>>2]=c[ma>>2]^c[ha>>2];c[na>>2]=c[na>>2]^c[ia>>2];g=g&255}else{g=a[Eb>>0]|0;a[ja>>0]=a[ja>>0]^g;a[ib>>0]=a[ib>>0]^a[hb>>0];a[kb>>0]=a[kb>>0]^a[jb>>0];a[mb>>0]=a[mb>>0]^a[lb>>0];a[ob>>0]=a[ob>>0]^a[nb>>0];a[rb>>0]=a[rb>>0]^a[qb>>0];a[tb>>0]=a[tb>>0]^a[sb>>0];a[wb>>0]=a[wb>>0]^a[ub>>0];a[yb>>0]=a[yb>>0]^a[xb>>0];a[Ab>>0]=a[Ab>>0]^a[zb>>0];a[i>>0]=a[i>>0]^a[Bb>>0];a[k>>0]=a[k>>0]^a[j>>0];a[o>>0]=a[o>>0]^a[n>>0];a[q>>0]=a[q>>0]^a[p>>0];a[s>>0]=a[s>>0]^a[r>>0];a[u>>0]=a[u>>0]^a[t>>0]}if(oa){c[Eb>>2]=c[Eb>>2]^c[ba>>2];c[ga>>2]=c[ga>>2]^c[da>>2];c[ha>>2]=c[ha>>2]^c[ea>>2];c[ia>>2]=c[ia>>2]^c[fa>>2];g=pb[_&63](Fb,Eb,Eb)|0;c[Eb>>2]=c[Eb>>2]^c[ba>>2];c[ga>>2]=c[ga>>2]^c[da>>2];c[ha>>2]=c[ha>>2]^c[ea>>2];c[ia>>2]=c[ia>>2]^c[fa>>2]}else{a[Eb>>0]=g^a[ba>>0];a[Ga>>0]=a[Ga>>0]^a[Fa>>0];a[Ia>>0]=a[Ia>>0]^a[Ha>>0];a[Ka>>0]=a[Ka>>0]^a[Ja>>0];a[Ma>>0]=a[Ma>>0]^a[La>>0];a[Oa>>0]=a[Oa>>0]^a[Na>>0];a[Qa>>0]=a[Qa>>0]^a[Pa>>0];a[Sa>>0]=a[Sa>>0]^a[Ra>>0];a[Ua>>0]=a[Ua>>0]^a[Ta>>0];a[Wa>>0]=a[Wa>>0]^a[Va>>0];a[Ya>>0]=a[Ya>>0]^a[Xa>>0];a[_a>>0]=a[_a>>0]^a[Za>>0];a[ab>>0]=a[ab>>0]^a[$a>>0];a[cb>>0]=a[cb>>0]^a[bb>>0];a[eb>>0]=a[eb>>0]^a[db>>0];a[gb>>0]=a[gb>>0]^a[fb>>0];g=pb[_&63](Fb,Eb,Eb)|0;a[Eb>>0]=a[Eb>>0]^a[ba>>0];a[Ga>>0]=a[Ga>>0]^a[Fa>>0];a[Ia>>0]=a[Ia>>0]^a[Ha>>0];a[Ka>>0]=a[Ka>>0]^a[Ja>>0];a[Ma>>0]=a[Ma>>0]^a[La>>0];a[Oa>>0]=a[Oa>>0]^a[Na>>0];a[Qa>>0]=a[Qa>>0]^a[Pa>>0];a[Sa>>0]=a[Sa>>0]^a[Ra>>0];a[Ua>>0]=a[Ua>>0]^a[Ta>>0];a[Wa>>0]=a[Wa>>0]^a[Va>>0];a[Ya>>0]=a[Ya>>0]^a[Xa>>0];a[_a>>0]=a[_a>>0]^a[Za>>0];a[ab>>0]=a[ab>>0]^a[$a>>0];a[cb>>0]=a[cb>>0]^a[bb>>0];a[eb>>0]=a[eb>>0]^a[db>>0];a[gb>>0]=a[gb>>0]^a[fb>>0]}if(!(d&3)){c[d>>2]=c[Eb>>2];c[d+4>>2]=c[ga>>2];c[d+8>>2]=c[ha>>2];c[d+12>>2]=c[ia>>2]}else{a[d>>0]=a[Eb>>0]|0;a[d+1>>0]=a[qa>>0]|0;a[d+2>>0]=a[ra>>0]|0;a[d+3>>0]=a[sa>>0]|0;a[d+4>>0]=a[ta>>0]|0;a[d+5>>0]=a[ua>>0]|0;a[d+6>>0]=a[va>>0]|0;a[d+7>>0]=a[wa>>0]|0;a[d+8>>0]=a[xa>>0]|0;a[d+9>>0]=a[ya>>0]|0;a[d+10>>0]=a[za>>0]|0;a[d+11>>0]=a[Aa>>0]|0;a[d+12>>0]=a[Ba>>0]|0;a[d+13>>0]=a[Ca>>0]|0;a[d+14>>0]=a[Da>>0]|0;a[d+15>>0]=a[Ea>>0]|0}f=f+-1|0;if(!f)break;else{d=d+16|0;e=e+16|0}}}}if(!g){l=Gb;return}Te(g+16|0);l=Gb;return}function ni(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0;Za=l;l=l+16|0;if((l|0)>=(m|0))$(16);Xa=Za;Ya=b+496|0;f=c[Ya+496>>2]|0;if(f|0)vb[f&3]();La=c[Ya+488>>2]|0;if(!e){Ya=Xa;c[Ya>>2]=0;c[Ya+4>>2]=0;Ya=Xa+8|0;c[Ya>>2]=0;c[Ya+4>>2]=0;l=Za;return}v=b+472|0;w=b+432|0;x=w;y=b+436|0;z=b+440|0;A=b+444|0;B=Xa+4|0;C=Xa+8|0;E=Xa+12|0;F=b+448|0;G=(F&3|0)==0;H=b+452|0;I=b+456|0;J=b+460|0;K=b+160|0;L=Xa+1|0;M=F+1|0;N=Xa+2|0;O=F+2|0;P=Xa+3|0;Q=F+3|0;R=Xa+4|0;S=b+452|0;T=R+1|0;U=S+1|0;V=R+2|0;W=S+2|0;X=R+3|0;Y=S+3|0;Z=Xa+8|0;_=b+456|0;aa=Z+1|0;ba=_+1|0;ca=Z+2|0;da=_+2|0;ea=Z+3|0;fa=_+3|0;ga=Xa+12|0;ha=b+460|0;ia=ga+1|0;ja=ha+1|0;ka=ga+2|0;la=ha+2|0;ma=ga+3|0;na=ha+3|0;oa=w+1|0;pa=Xa+1|0;qa=w+2|0;ra=Xa+2|0;sa=w+3|0;ta=Xa+3|0;ua=b+436|0;va=Xa+4|0;wa=ua+1|0;xa=va+1|0;ya=ua+2|0;za=va+2|0;Aa=ua+3|0;Ba=va+3|0;Ca=b+440|0;Da=Xa+8|0;Ea=Ca+1|0;Fa=Da+1|0;Ga=Ca+2|0;Ha=Da+2|0;Ia=Ca+3|0;Ja=Da+3|0;Ka=b+444|0;Ma=Xa+12|0;Na=Ka+1|0;Oa=Ma+1|0;Pa=Ka+2|0;Qa=Ma+2|0;Ra=Ka+3|0;Sa=Ma+3|0;Ta=w+1|0;Ua=w+2|0;Va=w+3|0;h=b+436|0;i=h+1|0;j=h+2|0;k=h+3|0;n=b+440|0;o=n+1|0;p=n+2|0;q=n+3|0;r=b+444|0;s=r+1|0;t=r+2|0;u=r+3|0;g=e;while(1){f=v;f=_q(c[f>>2]|0,c[f+4>>2]|0,1,0)|0;e=D;_a=v;c[_a>>2]=f;c[_a+4>>2]=e;if(!((f|0)==0&0==0)?(Wa=$q(f|0)|0,Wa>>>0<16):0)f=K+(Wa<<4)|0;else f=km(b,Xa,f,e)|0;if(!((f|x)&3)){c[w>>2]=c[w>>2]^c[f>>2];c[y>>2]=c[y>>2]^c[f+4>>2];c[z>>2]=c[z>>2]^c[f+8>>2];c[A>>2]=c[A>>2]^c[f+12>>2]}else{a[w>>0]=a[w>>0]^a[f>>0];a[Ta>>0]=a[Ta>>0]^a[f+1>>0];a[Ua>>0]=a[Ua>>0]^a[f+2>>0];a[Va>>0]=a[Va>>0]^a[f+3>>0];a[h>>0]=a[h>>0]^a[f+4>>0];a[i>>0]=a[i>>0]^a[f+5>>0];a[j>>0]=a[j>>0]^a[f+6>>0];a[k>>0]=a[k>>0]^a[f+7>>0];a[n>>0]=a[n>>0]^a[f+8>>0];a[o>>0]=a[o>>0]^a[f+9>>0];a[p>>0]=a[p>>0]^a[f+10>>0];a[q>>0]=a[q>>0]^a[f+11>>0];a[r>>0]=a[r>>0]^a[f+12>>0];a[s>>0]=a[s>>0]^a[f+13>>0];a[t>>0]=a[t>>0]^a[f+14>>0];a[u>>0]=a[u>>0]^a[f+15>>0]}if(!((d|x)&3)){c[Xa>>2]=c[d>>2]^c[w>>2];c[B>>2]=c[d+4>>2]^c[y>>2];c[C>>2]=c[d+8>>2]^c[z>>2];c[E>>2]=c[d+12>>2]^c[A>>2]}else{a[Xa>>0]=a[d>>0]^a[w>>0];a[pa>>0]=a[d+1>>0]^a[oa>>0];a[ra>>0]=a[d+2>>0]^a[qa>>0];a[ta>>0]=a[d+3>>0]^a[sa>>0];a[va>>0]=a[d+4>>0]^a[ua>>0];a[xa>>0]=a[d+5>>0]^a[wa>>0];a[za>>0]=a[d+6>>0]^a[ya>>0];a[Ba>>0]=a[d+7>>0]^a[Aa>>0];a[Da>>0]=a[d+8>>0]^a[Ca>>0];a[Fa>>0]=a[d+9>>0]^a[Ea>>0];a[Ha>>0]=a[d+10>>0]^a[Ga>>0];a[Ja>>0]=a[d+11>>0]^a[Ia>>0];a[Ma>>0]=a[d+12>>0]^a[Ka>>0];a[Oa>>0]=a[d+13>>0]^a[Na>>0];a[Qa>>0]=a[d+14>>0]^a[Pa>>0];a[Sa>>0]=a[d+15>>0]^a[Ra>>0]}f=pb[La&63](Ya,Xa,Xa)|0;if(G){c[F>>2]=c[F>>2]^c[Xa>>2];c[H>>2]=c[H>>2]^c[B>>2];c[I>>2]=c[I>>2]^c[C>>2];c[J>>2]=c[J>>2]^c[E>>2]}else{a[F>>0]=a[F>>0]^a[Xa>>0];a[M>>0]=a[M>>0]^a[L>>0];a[O>>0]=a[O>>0]^a[N>>0];a[Q>>0]=a[Q>>0]^a[P>>0];a[S>>0]=a[S>>0]^a[R>>0];a[U>>0]=a[U>>0]^a[T>>0];a[W>>0]=a[W>>0]^a[V>>0];a[Y>>0]=a[Y>>0]^a[X>>0];a[_>>0]=a[_>>0]^a[Z>>0];a[ba>>0]=a[ba>>0]^a[aa>>0];a[da>>0]=a[da>>0]^a[ca>>0];a[fa>>0]=a[fa>>0]^a[ea>>0];a[ha>>0]=a[ha>>0]^a[ga>>0];a[ja>>0]=a[ja>>0]^a[ia>>0];a[la>>0]=a[la>>0]^a[ka>>0];a[na>>0]=a[na>>0]^a[ma>>0]}g=g+-1|0;if(!g)break;else d=d+16|0}_a=Xa;c[_a>>2]=0;c[_a+4>>2]=0;_a=Xa+8|0;c[_a>>2]=0;c[_a+4>>2]=0;if(!f){l=Za;return}Te(f+16|0);l=Za;return}function oi(a,b){a=a|0;b=b|0;c[a+160>>2]=1732584193;c[a+164>>2]=-271733879;c[a+168>>2]=-1732584194;c[a+172>>2]=271733878;c[a+176>>2]=-1009589776;b=a+128|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[a+148>>2]=64;c[a+152>>2]=31;return}function pi(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;Jm(b,0,0);h=b+128|0;f=c[h>>2]|0;i=f<<6;h=gr(f|0,c[h+4>>2]|0,26)|0;e=b+144|0;j=c[e>>2]|0;g=i+j|0;f=(g>>>0<i>>>0&1)+(h&536870848|f>>>26)|0;h=g<<3;i=f<<3|g>>>29;c[e>>2]=j+1;a[b+j>>0]=-128;d=c[e>>2]|0;if((j|0)<56){if((d|0)<56)do{c[e>>2]=d+1;a[b+d>>0]=0;d=c[e>>2]|0}while((d|0)<56)}else{if((d|0)<64)do{c[e>>2]=d+1;a[b+d>>0]=0;d=c[e>>2]|0}while((d|0)<64);Jm(b,0,0);d=b;e=d+56|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0))}a[b+59>>0]=g>>>21;a[b+58>>0]=g>>>13;a[b+57>>0]=g>>>5;a[b+56>>0]=h;a[b+63>>0]=f>>>21;a[b+62>>0]=f>>>13;a[b+61>>0]=f>>>5;a[b+60>>0]=i;ri(b,b,1)|0;Te(124);j=c[b+160>>2]|0;a[b+3>>0]=j>>>24;a[b+2>>0]=j>>>16;a[b+1>>0]=j>>>8;a[b>>0]=j;j=c[b+164>>2]|0;a[b+7>>0]=j>>>24;a[b+6>>0]=j>>>16;a[b+5>>0]=j>>>8;a[b+4>>0]=j;j=c[b+168>>2]|0;a[b+11>>0]=j>>>24;a[b+10>>0]=j>>>16;a[b+9>>0]=j>>>8;a[b+8>>0]=j;j=c[b+172>>2]|0;a[b+15>>0]=j>>>24;a[b+14>>0]=j>>>16;a[b+13>>0]=j>>>8;a[b+12>>0]=j;j=c[b+176>>2]|0;a[b+19>>0]=j>>>24;a[b+18>>0]=j>>>16;a[b+17>>0]=j>>>8;a[b+16>>0]=j;return}function qi(a){a=a|0;return a|0}function ri(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0;C=l;l=l+64|0;if((l|0)>=(m|0))$(64);x=C;y=a+160|0;z=a+164|0;A=a+168|0;B=a+172|0;v=a+176|0;w=x+20|0;f=x+4|0;g=x+56|0;h=x+8|0;i=x+28|0;j=x+12|0;k=x+16|0;n=x+36|0;o=x+24|0;p=x+44|0;q=x+32|0;r=x+52|0;s=x+40|0;t=x+60|0;u=x+48|0;while(1){a=0;do{D=b+(a<<2)|0;c[x+(a<<2)>>2]=(d[D+2>>0]|0)<<16|(d[D+3>>0]|0)<<24|(d[D+1>>0]|0)<<8|(d[D>>0]|0);a=a+1|0}while((a|0)!=16);V=c[y>>2]|0;a=c[z>>2]|0;M=c[A>>2]|0;ca=c[B>>2]|0;Z=c[v>>2]|0;N=c[x>>2]|0;H=(M^a^ca)+V+N|0;H=(H<<11|H>>>21)+Z|0;X=M<<10|M>>>22;O=c[w>>2]|0;V=V+1352829926+((M|~ca)^a)+O|0;V=(V<<8|V>>>24)+Z|0;Y=c[f>>2]|0;K=Y+Z+(X^a^H)|0;K=(K<<14|K>>>18)+ca|0;aa=a<<10|a>>>22;J=c[g>>2]|0;Z=Z+1352829926+J+(V^(a|~X))|0;Z=(Z<<9|Z>>>23)+ca|0;Q=c[h>>2]|0;da=Q+ca+(H^aa^K)|0;da=(da<<15|da>>>17)+X|0;H=H<<10|H>>>22;U=c[i>>2]|0;ca=ca+1352829926+U+(Z^(V|~aa))|0;ca=(ca<<9|ca>>>23)+X|0;V=V<<10|V>>>22;E=c[j>>2]|0;D=E+X+(K^H^da)|0;D=(D<<12|D>>>20)+aa|0;K=K<<10|K>>>22;X=X+1352829926+N+(ca^(Z|~V))|0;X=(X<<11|X>>>21)+aa|0;Z=Z<<10|Z>>>22;S=c[k>>2]|0;F=S+aa+(da^K^D)|0;F=(F<<5|F>>>27)+H|0;da=da<<10|da>>>22;G=c[n>>2]|0;aa=aa+1352829926+G+(X^(ca|~Z))|0;aa=(aa<<13|aa>>>19)+V|0;ca=ca<<10|ca>>>22;H=H+O+(D^da^F)|0;H=(H<<8|H>>>24)+K|0;D=D<<10|D>>>22;V=Q+1352829926+V+(aa^(X|~ca))|0;V=(V<<15|V>>>17)+Z|0;X=X<<10|X>>>22;T=c[o>>2]|0;K=K+T+(F^D^H)|0;K=(K<<7|K>>>25)+da|0;F=F<<10|F>>>22;I=c[p>>2]|0;Z=I+1352829926+Z+(V^(aa|~X))|0;Z=(Z<<15|Z>>>17)+ca|0;aa=aa<<10|aa>>>22;da=da+U+(H^F^K)|0;da=(da<<9|da>>>23)+D|0;H=H<<10|H>>>22;ca=S+1352829926+ca+(Z^(V|~aa))|0;ca=(ca<<5|ca>>>27)+X|0;V=V<<10|V>>>22;W=c[q>>2]|0;D=D+W+(K^H^da)|0;D=(D<<11|D>>>21)+F|0;K=K<<10|K>>>22;P=c[r>>2]|0;X=P+1352829926+X+(ca^(Z|~V))|0;X=(X<<7|X>>>25)+aa|0;Z=Z<<10|Z>>>22;F=F+G+(da^K^D)|0;F=(F<<13|F>>>19)+H|0;da=da<<10|da>>>22;aa=T+1352829926+aa+(X^(ca|~Z))|0;aa=(aa<<7|aa>>>25)+V|0;ca=ca<<10|ca>>>22;_=c[s>>2]|0;H=H+_+(D^da^F)|0;H=(H<<14|H>>>18)+K|0;D=D<<10|D>>>22;R=c[t>>2]|0;V=R+1352829926+V+(aa^(X|~ca))|0;V=(V<<8|V>>>24)+Z|0;X=X<<10|X>>>22;K=K+I+(F^D^H)|0;K=(K<<15|K>>>17)+da|0;F=F<<10|F>>>22;Z=W+1352829926+Z+(V^(aa|~X))|0;Z=(Z<<11|Z>>>21)+ca|0;aa=aa<<10|aa>>>22;ba=c[u>>2]|0;da=da+ba+(H^F^K)|0;da=(da<<6|da>>>26)+D|0;H=H<<10|H>>>22;ca=Y+1352829926+ca+(Z^(V|~aa))|0;ca=(ca<<14|ca>>>18)+X|0;V=V<<10|V>>>22;D=D+P+(K^H^da)|0;D=(D<<7|D>>>25)+F|0;K=K<<10|K>>>22;X=_+1352829926+X+(ca^(Z|~V))|0;X=(X<<14|X>>>18)+aa|0;Z=Z<<10|Z>>>22;F=F+J+(da^K^D)|0;F=(F<<9|F>>>23)+H|0;da=da<<10|da>>>22;aa=E+1352829926+aa+(X^(ca|~Z))|0;aa=(aa<<12|aa>>>20)+V|0;ca=ca<<10|ca>>>22;H=H+R+(D^da^F)|0;H=(H<<8|H>>>24)+K|0;D=D<<10|D>>>22;V=ba+1352829926+V+(aa^(X|~ca))|0;V=(V<<6|V>>>26)+Z|0;X=X<<10|X>>>22;K=U+1518500249+K+(H&F|D&~H)|0;K=(K<<7|K>>>25)+da|0;F=F<<10|F>>>22;Z=T+1548603684+Z+(V&X|aa&~X)|0;Z=(Z<<9|Z>>>23)+ca|0;aa=aa<<10|aa>>>22;da=S+1518500249+da+(K&H|F&~K)|0;da=(da<<6|da>>>26)+D|0;H=H<<10|H>>>22;ca=I+1548603684+ca+(Z&aa|V&~aa)|0;ca=(ca<<13|ca>>>19)+X|0;V=V<<10|V>>>22;D=P+1518500249+D+(da&K|H&~da)|0;D=(D<<8|D>>>24)+F|0;K=K<<10|K>>>22;X=E+1548603684+X+(ca&V|Z&~V)|0;X=(X<<15|X>>>17)+aa|0;Z=Z<<10|Z>>>22;F=Y+1518500249+F+(D&da|K&~D)|0;F=(F<<13|F>>>19)+H|0;da=da<<10|da>>>22;aa=U+1548603684+aa+(X&Z|ca&~Z)|0;aa=(aa<<7|aa>>>25)+V|0;ca=ca<<10|ca>>>22;H=_+1518500249+H+(F&D|da&~F)|0;H=(H<<11|H>>>21)+K|0;D=D<<10|D>>>22;V=N+1548603684+V+(aa&ca|X&~ca)|0;V=(V<<12|V>>>20)+Z|0;X=X<<10|X>>>22;K=T+1518500249+K+(H&F|D&~H)|0;K=(K<<9|K>>>23)+da|0;F=F<<10|F>>>22;Z=P+1548603684+Z+(V&X|aa&~X)|0;Z=(Z<<8|Z>>>24)+ca|0;aa=aa<<10|aa>>>22;da=R+1518500249+da+(K&H|F&~K)|0;da=(da<<7|da>>>25)+D|0;H=H<<10|H>>>22;ca=O+1548603684+ca+(Z&aa|V&~aa)|0;ca=(ca<<9|ca>>>23)+X|0;V=V<<10|V>>>22;D=E+1518500249+D+(da&K|H&~da)|0;D=(D<<15|D>>>17)+F|0;K=K<<10|K>>>22;X=_+1548603684+X+(ca&V|Z&~V)|0;X=(X<<11|X>>>21)+aa|0;Z=Z<<10|Z>>>22;F=ba+1518500249+F+(D&da|K&~D)|0;F=(F<<7|F>>>25)+H|0;da=da<<10|da>>>22;aa=J+1548603684+aa+(X&Z|ca&~Z)|0;aa=(aa<<7|aa>>>25)+V|0;ca=ca<<10|ca>>>22;H=N+1518500249+H+(F&D|da&~F)|0;H=(H<<12|H>>>20)+K|0;D=D<<10|D>>>22;V=R+1548603684+V+(aa&ca|X&~ca)|0;V=(V<<7|V>>>25)+Z|0;X=X<<10|X>>>22;K=G+1518500249+K+(H&F|D&~H)|0;K=(K<<15|K>>>17)+da|0;F=F<<10|F>>>22;Z=W+1548603684+Z+(V&X|aa&~X)|0;Z=(Z<<12|Z>>>20)+ca|0;aa=aa<<10|aa>>>22;da=O+1518500249+da+(K&H|F&~K)|0;da=(da<<9|da>>>23)+D|0;H=H<<10|H>>>22;ca=ba+1548603684+ca+(Z&aa|V&~aa)|0;ca=(ca<<7|ca>>>25)+X|0;V=V<<10|V>>>22;D=Q+1518500249+D+(da&K|H&~da)|0;D=(D<<11|D>>>21)+F|0;K=K<<10|K>>>22;X=S+1548603684+X+(ca&V|Z&~V)|0;X=(X<<6|X>>>26)+aa|0;Z=Z<<10|Z>>>22;F=J+1518500249+F+(D&da|K&~D)|0;F=(F<<7|F>>>25)+H|0;da=da<<10|da>>>22;aa=G+1548603684+aa+(X&Z|ca&~Z)|0;aa=(aa<<15|aa>>>17)+V|0;ca=ca<<10|ca>>>22;H=I+1518500249+H+(F&D|da&~F)|0;H=(H<<13|H>>>19)+K|0;D=D<<10|D>>>22;V=Y+1548603684+V+(aa&ca|X&~ca)|0;V=(V<<13|V>>>19)+Z|0;X=X<<10|X>>>22;L=~H;K=W+1518500249+K+(H&F|D&L)|0;K=(K<<12|K>>>20)+da|0;F=F<<10|F>>>22;Z=Q+1548603684+Z+(V&X|aa&~X)|0;Z=(Z<<11|Z>>>21)+ca|0;aa=aa<<10|aa>>>22;L=E+1859775393+da+((K|L)^F)|0;L=(L<<11|L>>>21)+D|0;H=H<<10|H>>>22;ca=R+1836072691+ca+((Z|~V)^aa)|0;ca=(ca<<9|ca>>>23)+X|0;V=V<<10|V>>>22;D=_+1859775393+D+((L|~K)^H)|0;D=(D<<13|D>>>19)+F|0;K=K<<10|K>>>22;X=O+1836072691+X+((ca|~Z)^V)|0;X=(X<<7|X>>>25)+aa|0;Z=Z<<10|Z>>>22;F=J+1859775393+F+((D|~L)^K)|0;F=(F<<6|F>>>26)+H|0;L=L<<10|L>>>22;aa=Y+1836072691+aa+((X|~ca)^Z)|0;aa=(aa<<15|aa>>>17)+V|0;ca=ca<<10|ca>>>22;H=S+1859775393+H+((F|~D)^L)|0;H=(H<<7|H>>>25)+K|0;D=D<<10|D>>>22;V=E+1836072691+V+((aa|~X)^ca)|0;V=(V<<11|V>>>21)+Z|0;X=X<<10|X>>>22;K=G+1859775393+K+((H|~F)^D)|0;K=(K<<14|K>>>18)+L|0;F=F<<10|F>>>22;Z=U+1836072691+Z+((V|~aa)^X)|0;Z=(Z<<8|Z>>>24)+ca|0;aa=aa<<10|aa>>>22;L=R+1859775393+L+((K|~H)^F)|0;L=(L<<9|L>>>23)+D|0;H=H<<10|H>>>22;ca=J+1836072691+ca+((Z|~V)^aa)|0;ca=(ca<<6|ca>>>26)+X|0;V=V<<10|V>>>22;D=W+1859775393+D+((L|~K)^H)|0;D=(D<<13|D>>>19)+F|0;K=K<<10|K>>>22;X=T+1836072691+X+((ca|~Z)^V)|0;X=(X<<6|X>>>26)+aa|0;Z=Z<<10|Z>>>22;F=Y+1859775393+F+((D|~L)^K)|0;F=(F<<15|F>>>17)+H|0;L=L<<10|L>>>22;aa=G+1836072691+aa+((X|~ca)^Z)|0;aa=(aa<<14|aa>>>18)+V|0;ca=ca<<10|ca>>>22;H=Q+1859775393+H+((F|~D)^L)|0;H=(H<<14|H>>>18)+K|0;D=D<<10|D>>>22;V=I+1836072691+V+((aa|~X)^ca)|0;V=(V<<12|V>>>20)+Z|0;X=X<<10|X>>>22;K=U+1859775393+K+((H|~F)^D)|0;K=(K<<8|K>>>24)+L|0;F=F<<10|F>>>22;Z=W+1836072691+Z+((V|~aa)^X)|0;Z=(Z<<13|Z>>>19)+ca|0;aa=aa<<10|aa>>>22;L=N+1859775393+L+((K|~H)^F)|0;L=(L<<13|L>>>19)+D|0;H=H<<10|H>>>22;ca=ba+1836072691+ca+((Z|~V)^aa)|0;ca=(ca<<5|ca>>>27)+X|0;V=V<<10|V>>>22;D=T+1859775393+D+((L|~K)^H)|0;D=(D<<6|D>>>26)+F|0;K=K<<10|K>>>22;X=Q+1836072691+X+((ca|~Z)^V)|0;X=(X<<14|X>>>18)+aa|0;Z=Z<<10|Z>>>22;F=P+1859775393+F+((D|~L)^K)|0;F=(F<<5|F>>>27)+H|0;L=L<<10|L>>>22;aa=_+1836072691+aa+((X|~ca)^Z)|0;aa=(aa<<13|aa>>>19)+V|0;ca=ca<<10|ca>>>22;H=I+1859775393+H+((F|~D)^L)|0;H=(H<<12|H>>>20)+K|0;D=D<<10|D>>>22;V=N+1836072691+V+((aa|~X)^ca)|0;V=(V<<13|V>>>19)+Z|0;X=X<<10|X>>>22;K=O+1859775393+K+((H|~F)^D)|0;K=(K<<7|K>>>25)+L|0;F=F<<10|F>>>22;Z=S+1836072691+Z+((V|~aa)^X)|0;Z=(Z<<7|Z>>>25)+ca|0;aa=aa<<10|aa>>>22;L=ba+1859775393+L+((K|~H)^F)|0;L=(L<<5|L>>>27)+D|0;H=H<<10|H>>>22;ca=P+1836072691+ca+((Z|~V)^aa)|0;ca=(ca<<5|ca>>>27)+X|0;V=V<<10|V>>>22;D=Y+-1894007588+D+(L&H|K&~H)|0;D=(D<<11|D>>>21)+F|0;K=K<<10|K>>>22;X=W+2053994217+X+(ca&Z|V&~ca)|0;X=(X<<15|X>>>17)+aa|0;Z=Z<<10|Z>>>22;F=G+-1894007588+F+(D&K|L&~K)|0;F=(F<<12|F>>>20)+H|0;L=L<<10|L>>>22;aa=T+2053994217+aa+(X&ca|Z&~X)|0;aa=(aa<<5|aa>>>27)+V|0;ca=ca<<10|ca>>>22;H=I+-1894007588+H+(F&L|D&~L)|0;H=(H<<14|H>>>18)+K|0;D=D<<10|D>>>22;V=S+2053994217+V+(aa&X|ca&~aa)|0;V=(V<<8|V>>>24)+Z|0;X=X<<10|X>>>22;K=_+-1894007588+K+(H&D|F&~D)|0;K=(K<<15|K>>>17)+L|0;F=F<<10|F>>>22;Z=Y+2053994217+Z+(V&aa|X&~V)|0;Z=(Z<<11|Z>>>21)+ca|0;aa=aa<<10|aa>>>22;L=N+-1894007588+L+(K&F|H&~F)|0;L=(L<<14|L>>>18)+D|0;H=H<<10|H>>>22;ca=E+2053994217+ca+(Z&V|aa&~Z)|0;ca=(ca<<14|ca>>>18)+X|0;V=V<<10|V>>>22;D=W+-1894007588+D+(L&H|K&~H)|0;D=(D<<15|D>>>17)+F|0;K=K<<10|K>>>22;X=I+2053994217+X+(ca&Z|V&~ca)|0;X=(X<<14|X>>>18)+aa|0;Z=Z<<10|Z>>>22;F=ba+-1894007588+F+(D&K|L&~K)|0;F=(F<<9|F>>>23)+H|0;L=L<<10|L>>>22;aa=R+2053994217+aa+(X&ca|Z&~X)|0;aa=(aa<<6|aa>>>26)+V|0;ca=ca<<10|ca>>>22;H=S+-1894007588+H+(F&L|D&~L)|0;H=(H<<8|H>>>24)+K|0;D=D<<10|D>>>22;V=N+2053994217+V+(aa&X|ca&~aa)|0;V=(V<<14|V>>>18)+Z|0;X=X<<10|X>>>22;K=P+-1894007588+K+(H&D|F&~D)|0;K=(K<<9|K>>>23)+L|0;F=F<<10|F>>>22;Z=O+2053994217+Z+(V&aa|X&~V)|0;Z=(Z<<6|Z>>>26)+ca|0;aa=aa<<10|aa>>>22;L=E+-1894007588+L+(K&F|H&~F)|0;L=(L<<14|L>>>18)+D|0;H=H<<10|H>>>22;ca=ba+2053994217+ca+(Z&V|aa&~Z)|0;ca=(ca<<9|ca>>>23)+X|0;V=V<<10|V>>>22;D=U+-1894007588+D+(L&H|K&~H)|0;D=(D<<5|D>>>27)+F|0;K=K<<10|K>>>22;X=Q+2053994217+X+(ca&Z|V&~ca)|0;X=(X<<12|X>>>20)+aa|0;Z=Z<<10|Z>>>22;F=R+-1894007588+F+(D&K|L&~K)|0;F=(F<<6|F>>>26)+H|0;L=L<<10|L>>>22;aa=P+2053994217+aa+(X&ca|Z&~X)|0;aa=(aa<<9|aa>>>23)+V|0;ca=ca<<10|ca>>>22;H=J+-1894007588+H+(F&L|D&~L)|0;H=(H<<8|H>>>24)+K|0;D=D<<10|D>>>22;V=G+2053994217+V+(aa&X|ca&~aa)|0;V=(V<<12|V>>>20)+Z|0;X=X<<10|X>>>22;K=O+-1894007588+K+(H&D|F&~D)|0;K=(K<<6|K>>>26)+L|0;F=F<<10|F>>>22;Z=U+2053994217+Z+(V&aa|X&~V)|0;Z=(Z<<5|Z>>>27)+ca|0;aa=aa<<10|aa>>>22;L=T+-1894007588+L+(K&F|H&~F)|0;L=(L<<5|L>>>27)+D|0;H=H<<10|H>>>22;ca=_+2053994217+ca+(Z&V|aa&~Z)|0;ca=(ca<<15|ca>>>17)+X|0;V=V<<10|V>>>22;D=Q+-1894007588+D+(L&H|K&~H)|0;D=(D<<12|D>>>20)+F|0;K=K<<10|K>>>22;X=J+2053994217+X+(ca&Z|V&~ca)|0;X=(X<<8|X>>>24)+aa|0;Z=Z<<10|Z>>>22;F=S+-1454113458+F+(D^(L|~K))|0;F=(F<<9|F>>>23)+H|0;L=L<<10|L>>>22;aa=aa+ba+(ca^Z^X)|0;aa=(aa<<8|aa>>>24)+V|0;ca=ca<<10|ca>>>22;H=N+-1454113458+H+(F^(D|~L))|0;H=(H<<15|H>>>17)+K|0;D=D<<10|D>>>22;V=V+R+(X^ca^aa)|0;V=(V<<5|V>>>27)+Z|0;X=X<<10|X>>>22;K=O+-1454113458+K+(H^(F|~D))|0;K=(K<<5|K>>>27)+L|0;F=F<<10|F>>>22;Z=Z+_+(aa^X^V)|0;Z=(Z<<12|Z>>>20)+ca|0;aa=aa<<10|aa>>>22;L=G+-1454113458+L+(K^(H|~F))|0;L=(L<<11|L>>>21)+D|0;H=H<<10|H>>>22;S=ca+S+(V^aa^Z)|0;S=(S<<9|S>>>23)+X|0;V=V<<10|V>>>22;D=U+-1454113458+D+(L^(K|~H))|0;D=(D<<6|D>>>26)+F|0;K=K<<10|K>>>22;X=X+Y+(Z^V^S)|0;X=(X<<12|X>>>20)+aa|0;Z=Z<<10|Z>>>22;F=ba+-1454113458+F+(D^(L|~K))|0;F=(F<<8|F>>>24)+H|0;L=L<<10|L>>>22;O=aa+O+(S^Z^X)|0;O=(O<<5|O>>>27)+V|0;S=S<<10|S>>>22;H=Q+-1454113458+H+(F^(D|~L))|0;H=(H<<13|H>>>19)+K|0;D=D<<10|D>>>22;V=V+W+(X^S^O)|0;V=(V<<14|V>>>18)+Z|0;X=X<<10|X>>>22;K=_+-1454113458+K+(H^(F|~D))|0;K=(K<<12|K>>>20)+L|0;F=F<<10|F>>>22;U=Z+U+(O^X^V)|0;U=(U<<6|U>>>26)+S|0;O=O<<10|O>>>22;L=J+-1454113458+L+(K^(H|~F))|0;L=(L<<5|L>>>27)+D|0;H=H<<10|H>>>22;S=S+T+(V^O^U)|0;S=(S<<8|S>>>24)+X|0;V=V<<10|V>>>22;D=Y+-1454113458+D+(L^(K|~H))|0;D=(D<<12|D>>>20)+F|0;K=K<<10|K>>>22;Q=X+Q+(U^V^S)|0;Q=(Q<<13|Q>>>19)+O|0;U=U<<10|U>>>22;F=E+-1454113458+F+(D^(L|~K))|0;F=(F<<13|F>>>19)+H|0;L=L<<10|L>>>22;O=O+P+(S^U^Q)|0;O=(O<<6|O>>>26)+V|0;S=S<<10|S>>>22;H=W+-1454113458+H+(F^(D|~L))|0;H=(H<<14|H>>>18)+K|0;D=D<<10|D>>>22;J=V+J+(Q^S^O)|0;J=(J<<5|J>>>27)+U|0;Q=Q<<10|Q>>>22;K=I+-1454113458+K+(H^(F|~D))|0;K=(K<<11|K>>>21)+L|0;F=F<<10|F>>>22;N=U+N+(O^Q^J)|0;N=(N<<15|N>>>17)+S|0;O=O<<10|O>>>22;L=T+-1454113458+L+(K^(H|~F))|0;L=(L<<8|L>>>24)+D|0;H=H<<10|H>>>22;E=S+E+(J^O^N)|0;E=(E<<13|E>>>19)+Q|0;J=J<<10|J>>>22;D=R+-1454113458+D+(L^(K|~H))|0;D=(D<<5|D>>>27)+F|0;K=K<<10|K>>>22;G=Q+G+(N^J^E)|0;G=(G<<11|G>>>21)+O|0;N=N<<10|N>>>22;F=P+-1454113458+F+(D^(L|~K))|0;I=O+I+(E^N^G)|0;c[z>>2]=N+M+(L<<10|L>>>22);c[A>>2]=J+(c[B>>2]|0)+K;c[B>>2]=H+(c[v>>2]|0)+J+(I<<11|I>>>21);c[v>>2]=H+(c[y>>2]|0)+G+(F<<6|F>>>26);c[y>>2]=(E<<10|E>>>22)+a+D;e=e+-1|0;if(!e)break;else b=b+64|0}l=C;return 124}function si(a){a=a|0;var b=0;c[a+160>>2]=1732584193;c[a+164>>2]=-271733879;c[a+168>>2]=-1732584194;c[a+172>>2]=271733878;c[a+176>>2]=-1009589776;b=a+128|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[a+148>>2]=64;c[a+152>>2]=31;return}function ti(a,b){a=a|0;b=b|0;ri(a,b,1)|0;c[b>>2]=c[a+160>>2];c[b+4>>2]=c[a+164>>2];c[b+8>>2]=c[a+168>>2];c[b+12>>2]=c[a+172>>2];c[b+16>>2]=c[a+176>>2];return}function ui(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=l;l=l+192|0;if((l|0)>=(m|0))$(192);g=f;c[g+160>>2]=1732584193;c[g+164>>2]=-271733879;c[g+168>>2]=-1732584194;c[g+172>>2]=271733878;c[g+176>>2]=-1009589776;h=g+128|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[h+16>>2]=0;c[g+148>>2]=64;c[g+152>>2]=31;Jm(g,d,e);pi(g);d=g;e=b+20|0;do{a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0}while((b|0)<(e|0));l=f;return}function vi(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+16|0;if((l|0)>=(m|0))$(16);r=s;p=(d+7|0)>>>3;c[r>>2]=p;if(!((p|0)!=0&(f+7|0)>>>0<=p>>>0)){b=66;l=s;return b|0}q=$e(p)|0;if(!q){b=Sn()|0;l=s;return b|0}a[q>>0]=0;a[q+1>>0]=2;d=-3-f+p|0;if((d|0)<=0)Ie(38682,38688,95,38701);if(!g){o=Cj(d,1)|0;while(1){g=0;h=0;do{g=((a[o+h>>0]|0)==0&1)+g|0;h=h+1|0}while((h|0)!=(d|0));if(!g)break;g=g+3+((g|0)/128|0)|0;n=Cj(g,1)|0;if(g|0){k=0;do{i=o+k|0;h=a[i>>0]|0;j=g+-1|0;if(!(h<<24>>24)){h=a[n+j>>0]|0;a[i>>0]=h;g=j}k=(h<<24>>24!=0&1)+k|0}while((k|0)<(d|0)&(g|0)!=0)}cf(n)}cr(q+2|0,o|0,d|0)|0;cf(o)}else{if((d|0)!=(h|0)){cf(q);b=45;l=s;return b|0}a:do if(h|0){d=0;while(1){if(!(a[g+d>>0]|0))break;d=d+1|0;if(d>>>0>=h>>>0)break a}cf(q);b=45;l=s;return b|0}while(0);cr(q+2|0,g|0,h|0)|0;d=h}o=d+3|0;a[q+(d+2)>>0]=0;cr(q+o|0,e|0,f|0)|0;if((o+f|0)!=(p|0))Ie(38732,38688,153,38701);d=Sk(b,5,q,p,r)|0;if((d|0)==0?nf(1)|0:0)Se(38744,c[b>>2]|0);cf(q);b=d;l=s;return b|0}function wi(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;i=l;l=l+16|0;if((l|0)>=(m|0))$(16);h=i;e=(e+7|0)>>>3;c[b>>2]=0;g=$e(e)|0;if(!g){h=Sn()|0;l=i;return h|0}e=Tk(5,g,e,h,f)|0;if(e|0){cf(g);h=e&65535;l=i;return h|0}f=c[h>>2]|0;if(f>>>0<4){cf(g);h=155;l=i;return h|0}j=(a[g>>0]|0)==0;e=j?2:1;c[h>>2]=e;if((a[g+(j&1)>>0]|0)!=2){cf(g);j=155;l=i;return j|0}a:do if(e>>>0<f>>>0)do{if(!(a[g+e>>0]|0))break a;e=e+1|0;c[h>>2]=e}while(e>>>0<f>>>0);while(0);e=e+1|0;if(f>>>0<=e>>>0){cf(g);j=155;l=i;return j|0}c[h>>2]=e;j=f-e|0;dr(g|0,g+e|0,j|0)|0;c[b>>2]=g;c[d>>2]=j;if(!(nf(1)|0)){j=0;l=i;return j|0}Qe(38777,c[b>>2]|0,c[d>>2]|0);j=0;l=i;return j|0}function xi(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0;p=l;l=l+112|0;if((l|0)>=(m|0))$(112);n=p+8|0;o=p+4|0;h=p;k=(d+7|0)>>>3;c[o>>2]=k;c[h>>2]=100;d=sh(g)|0;if(th(g,10,n,h)|0){b=69;l=p;return b|0}if((d|0)!=(f|0)){b=70;l=p;return b|0}if(!f){b=66;l=p;return b|0}if((f+4+(c[h>>2]|0)|0)>>>0>k>>>0){b=66;l=p;return b|0}j=_e(k)|0;if(!j){b=Sn()|0;l=p;return b|0}a[j>>0]=0;a[j+1>>0]=1;i=k-f|0;d=c[h>>2]|0;g=i-d|0;h=g+-3|0;if((h|0)<=1)Ie(38831,38688,303,38837);Yq(j+2|0,-1,h|0)|0;a[j+(g+-1)>>0]=0;cr(j+g|0,n|0,d|0)|0;cr(j+i|0,e|0,f|0)|0;d=Sk(b,5,j,k,o)|0;if((d|0)==0?nf(1)|0:0)Se(38868,c[b>>2]|0);cf(j);b=d;l=p;return b|0}function yi(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;k=l;l=l+16|0;if((l|0)>=(m|0))$(16);i=k;h=(d+7|0)>>>3;c[i>>2]=h;if((f|0)==0|(f+4|0)>>>0>h>>>0){j=66;l=k;return j|0}j=_e(h)|0;if(!j){j=Sn()|0;l=k;return j|0}a[j>>0]=0;a[j+1>>0]=1;d=h-f|0;g=d+-3|0;if((g|0)<=1)Ie(38831,38688,368,38901);Yq(j+2|0,-1,g|0)|0;a[j+(d+-1)>>0]=0;cr(j+d|0,e|0,f|0)|0;d=Sk(b,5,j,h,i)|0;if(!d)if(!(nf(1)|0))d=0;else{Se(38868,c[b>>2]|0);d=0}else d=d&65535;cf(j);j=d;l=k;return j|0}function zi(b,d,e,f,g,h,i,j,k){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0;o=(d+7|0)>>>3;c[b>>2]=0;d=(h|0)!=0&(i|0)!=0;m=sh(e)|0;if(!(o|0?(o+-2-(m<<1)|0)>>>0>=g>>>0:0)){b=66;return b|0}p=ef(1,o)|0;if(!p){b=Sn()|0;return b|0}l=p+1|0;n=l+m|0;oh(e,n,d?h:71847,d?i:0);i=p+(o+-1-g)|0;a[i>>0]=1;cr(i+1|0,f|0,g|0)|0;do if(!j)Dj(l,m,1);else{if((m|0)==(k|0)){cr(l|0,j|0,k|0)|0;break}cf(p);b=45;return b|0}while(0);h=o-m+-1|0;g=$e(h)|0;if(!g){b=Sn()|0;cf(p);return b|0}d=Ai(g,h,l,m,e)|0;if(d|0){cf(g);cf(p);b=d;return b|0}i=m+1|0;if(i>>>0<o>>>0){d=i;f=g;while(1){l=p+d|0;a[l>>0]=a[l>>0]^a[f>>0];d=d+1|0;if((d|0)==(o|0))break;else f=f+1|0}}cf(g);g=$e(m)|0;if(!g){b=Sn()|0;cf(p);return b|0}d=Ai(g,m,n,h,e)|0;if(d|0){cf(g);cf(p);b=d;return b|0}if(i>>>0>1){d=1;f=g;while(1){e=p+d|0;a[e>>0]=a[e>>0]^a[f>>0];d=d+1|0;if((d|0)==(i|0))break;else f=f+1|0}}cf(g);d=Sk(b,5,p,o,0)|0;if((d|0)==0?nf(1)|0:0)Se(38936,c[b>>2]|0);cf(p);b=d;return b|0}function Ai(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;q=l;l=l+16|0;if((l|0)>=(m|0))$(16);o=q;p=q+4|0;h=eh(o,g,0)|0;if(h|0){p=h;l=q;return p|0}n=sh(g)|0;if(d|0){i=p+1|0;j=p+2|0;k=p+3|0;g=0;h=0;while(1){if(h|0)ih(c[o>>2]|0);a[p>>0]=h>>>24;a[i>>0]=h>>>16;a[j>>0]=h>>>8;a[k>>0]=h;lh(c[o>>2]|0,e,f);lh(c[o>>2]|0,p,4);s=ph(c[o>>2]|0,0)|0;r=d-g|0;r=r>>>0<n>>>0?r:n;cr(b+g|0,s|0,r|0)|0;g=r+g|0;if(g>>>0>=d>>>0)break;else h=h+1|0}}kh(c[o>>2]|0);s=0;l=q;return s|0}function Bi(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;r=l;l=l+16|0;if((l|0)>=(m|0))$(16);q=r;c[q>>2]=0;j=(e+7|0)>>>3;c[b>>2]=0;k=(h|0)!=0&(i|0)!=0;e=sh(f)|0;p=_e(e)|0;if(!p){q=Sn()|0;l=r;return q|0}oh(f,p,k?h:71847,k?i:0);if(Vk(q,0,g,j)|0){cf(p);q=155;l=r;return q|0}if(j>>>0<((e<<1)+2|0)>>>0){cf(c[q>>2]|0);cf(p);q=155;l=r;return q|0}j=j+-1|0;n=$e(j)|0;if(!n){d=Sn()|0;cf(c[q>>2]|0);cf(p);q=d;l=r;return q|0}o=n+e|0;k=(c[q>>2]|0)+1|0;g=k+e|0;i=j-e|0;h=(Ai(n,e,g,i,f)|0)!=0&1;if(e|0){j=0;do{s=n+j|0;a[s>>0]=a[s>>0]^a[k+j>>0];j=j+1|0}while((j|0)!=(e|0))}k=Ai(o,i,n,e,f)|0;if(i|0){j=0;do{s=o+j|0;a[s>>0]=a[s>>0]^a[g+j>>0];j=j+1|0}while((j|0)!=(i|0))}j=Tp(p,o,e)|0;a:do if(e>>>0<i>>>0)do{if((a[o+e>>0]|0)==1)break a;e=e+1|0}while(e>>>0<i>>>0);while(0);s=(a[c[q>>2]>>0]|0)==0;cf(p);cf(c[q>>2]|0);if(!((k|h|j|0)==0&(e|0)!=(i|0)&s)){cf(n);s=155;l=r;return s|0}q=e+1|0;s=i-q|0;dr(n|0,o+q|0,s|0)|0;c[b>>2]=n;c[d>>2]=s;if(!(nf(1)|0)){s=0;l=r;return s|0}Qe(38954,c[b>>2]|0,c[d>>2]|0);s=0;l=r;return s|0}function Ci(b,e,f,g,h,i,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;n=(e+7|0)>>>3;l=sh(f)|0;if(!l)Ie(38993,38688,800,38998);q=i+8+l|0;t=n-l+-1|0;m=q+t|0;v=_e(m)|0;if(!v){v=Sn()|0;return v|0}p=v+8|0;r=p+l|0;o=r+i|0;do if((l|0)==(h|0)){cr(p|0,g|0,h|0)|0;if(n>>>0<(i+2+h|0)>>>0)o=66;else{u=_e(n)|0;if(!u){o=Sn()|0;break}p=u+n+-1+(0-h)|0;do if(i){if(!j){Dj(r,i,1);s=14;break}if((k|0)==(i|0)){cr(r|0,j|0,i|0)|0;s=14;break}else{o=45;l=u;break}}else s=14;while(0);if((s|0)==14){s=v;l=s;a[l>>0]=0;a[l+1>>0]=0;a[l+2>>0]=0;a[l+3>>0]=0;s=s+4|0;a[s>>0]=0;a[s+1>>0]=0;a[s+2>>0]=0;a[s+3>>0]=0;oh(f,p,v,q);s=p+(0-i)+-1|0;l=u;Yq(u|0,0,s-l|0)|0;a[s>>0]=1;cr(s+1|0,r|0,i|0)|0;Ai(o,t,p,h,f)|0;if(t|0){p=0;while(1){s=u+p|0;a[s>>0]=a[s>>0]^a[o>>0];p=p+1|0;if((p|0)==(t|0))break;else o=o+1|0}}a[u>>0]=(d[u>>0]|0)&255>>>((n<<3)-e|0);a[u+(n+-1)>>0]=-68;o=Sk(b,5,u,n,0)|0;if(!o)if(!(nf(1)|0))o=0;else{Se(39019,c[b>>2]|0);o=0}}if((n|0)!=0&(l&7|0)!=0){l=u;do{a[l>>0]=0;l=l+1|0;n=n+-1|0}while((n|0)!=0&(l&7|0)!=0)}else l=u;if(n>>>0>=8){g=n+-8|0;q=g&-8;j=q+8|0;p=l;while(1){b=p;c[b>>2]=0;c[b+4>>2]=0;n=n+-8|0;if(n>>>0<=7)break;else p=p+8|0}n=g-q|0;l=l+j|0}if(n|0)while(1){a[l>>0]=0;n=n+-1|0;if(!n)break;else l=l+1|0}cf(u)}}else o=139;while(0);if((m|0)!=0&(v&7|0)!=0){l=v;do{a[l>>0]=0;l=l+1|0;m=m+-1|0}while((m|0)!=0&(l&7|0)!=0)}else l=v;if(m>>>0>=8){p=m+-8|0;g=p&-8;q=g+8|0;n=l;while(1){u=n;c[u>>2]=0;c[u+4>>2]=0;m=m+-8|0;if(m>>>0<=7)break;else n=n+8|0}m=p-g|0;l=l+q|0}if(m|0)while(1){a[l>>0]=0;m=m+-1|0;if(!m)break;else l=l+1|0}cf(v);v=o;return v|0}function Di(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=l;l=l+16|0;if((l|0)>=(m|0))$(16);v=x;c[v>>2]=0;j=(f+7|0)>>>3;s=sh(g)|0;if(!s)Ie(38993,38688,926,39036);q=h+8+s|0;n=j-s|0;o=n+-1|0;i=(q>>>0<o>>>0?o:q)+s|0;w=_e(i)|0;u=(w|0)!=0;if(u){k=0-s|0;r=w+i+k|0;b=Vk(0,r,b,s)|0;if(!b){b=Vk(v,0,e,j)|0;if(!b)if(j>>>0>=(h+2+s|0)>>>0){b=c[v>>2]|0;if((a[b+(j+-1)>>0]|0)==-68){p=b+j+-1+k|0;k=255>>>((j<<3)-f|0);if(!(d[b>>0]&~k)){Ai(w,o,p,s,g)|0;if(o|0){b=w;e=0;while(1){f=(c[v>>2]|0)+e|0;a[f>>0]=a[f>>0]^a[b>>0];e=e+1|0;if((e|0)==(o|0))break;else b=b+1|0}}f=c[v>>2]|0;a[f>>0]=d[f>>0]&k;k=n-h|0;f=k+-2|0;a:do if(!f)b=0;else{e=c[v>>2]|0;b=0;do{if(a[e+b>>0]|0)break a;b=b+1|0}while(b>>>0<f>>>0)}while(0);if((b|0)==(f|0)){b=c[v>>2]|0;if((a[b+f>>0]|0)==1){t=w;o=t;a[o>>0]=0;a[o+1>>0]=0;a[o+2>>0]=0;a[o+3>>0]=0;t=t+4|0;a[t>>0]=0;a[t+1>>0]=0;a[t+2>>0]=0;a[t+3>>0]=0;t=w+8|0;cr(t|0,r|0,s|0)|0;cr(t+s|0,b+(k+-1)|0,h|0)|0;oh(g,w,w,q);b=(Tp(p,w,s)|0)!=0;b=b?8:0;t=19}else o=8}else{b=8;t=19}}else{b=8;t=19}}else o=8}else{b=66;t=19}else t=19}else t=19}else{b=Sn()|0;t=19}if((t|0)==19){o=b;b=c[v>>2]|0}if(b|0){if((j|0)!=0&(b&7|0)!=0)do{a[b>>0]=0;b=b+1|0;j=j+-1|0}while((j|0)!=0&(b&7|0)!=0);if(j>>>0>=8){k=j+-8|0;f=k&-8;n=f+8|0;e=b;while(1){t=e;c[t>>2]=0;c[t+4>>2]=0;j=j+-8|0;if(j>>>0<=7)break;else e=e+8|0}j=k-f|0;b=b+n|0}if(j|0)while(1){a[b>>0]=0;j=j+-1|0;if(!j)break;else b=b+1|0}cf(c[v>>2]|0)}if(!u){l=x;return o|0}if((i|0)!=0&(w&7|0)!=0){b=w;do{a[b>>0]=0;b=b+1|0;i=i+-1|0}while((i|0)!=0&(b&7|0)!=0)}else b=w;if(i>>>0>=8){e=i+-8|0;k=e&-8;f=k+8|0;j=b;while(1){v=j;c[v>>2]=0;c[v+4>>2]=0;i=i+-8|0;if(i>>>0<=7)break;else j=j+8|0}i=e-k|0;b=b+f|0}if(i|0)while(1){a[b>>0]=0;i=i+-1|0;if(!i)break;else b=b+1|0}cf(w);l=x;return o|0}function Ei(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=l;l=l+176|0;if((l|0)>=(m|0))$(176);C=F+8|0;A=F;s=F+164|0;t=F+160|0;u=F+156|0;v=F+152|0;w=F+148|0;x=F+144|0;n=F+88|0;i=F+84|0;k=F+80|0;D=F+56|0;j=F+48|0;E=F+44|0;c[j>>2]=0;c[E>>2]=0;c[D>>2]=0;c[D+4>>2]=0;c[D+8>>2]=0;c[D+12>>2]=0;c[D+16>>2]=0;c[D+20>>2]=0;e=Fh(a,i)|0;if(e|0){E=e;l=F;return E|0}e=Gh(a,k)|0;if(e|0){E=e;l=F;return E|0}e=uf(a,46885,0)|0;if(e|0?(f=Eh(e,j,0)|0,sf(e),f|0):0){E=f;l=F;return E|0}if((a|0)!=0?(g=uf(a,41502,0)|0,(g|0)!=0):0){z=g;B=11}else B=7;do if((B|0)==7){e=uf(a,41515,0)|0;if(e|0){c[j>>2]=c[j>>2]|64;sf(e)}if((c[j>>2]&64|0)==0?(gg()|0)==0:0){if((c[j>>2]&32|0)==0?(h=uf(a,48632,0)|0,h|0):0){c[j>>2]=c[j>>2]|32;sf(h)}e=c[i>>2]|0;f=c[k>>2]|0;d=(c[j>>2]|0)>>>5&1;if(gg()|0?!(e>>>0>1023&(d|0)==0):0){d=55;break}a=2-d|0;q=(e&1)+e|0;d=(f|0)==1?65537:f;p=ll(1)|0;if(!d){El(p,41)|0;g=Hl(q)|0;f=q>>>1;e=0;d=0;do{if(e|0)Jl(e);if(d|0)Jl(d);e=yh(f,a,0,0)|0;d=yh(f,a,0,0)|0;if((wk(e,d)|0)>0)Fl(e,d);Kk(g,e,d)}while((lk(g)|0)!=(q|0));f=0}else{El(p,d|1)|0;g=Hl(q)|0;f=q>>>1;e=0;d=0;do{if(e|0)Jl(e);if(d|0)Jl(d);e=yh(f,a,6,p)|0;d=yh(f,a,6,p)|0;if((wk(e,d)|0)>0)Fl(e,d);Kk(g,e,d)}while((lk(g)|0)!=(q|0));f=1}h=e+4|0;a=nl(c[h>>2]|0)|0;h=nl(c[h>>2]|0)|0;i=Il(q)|0;j=Il(q)|0;k=Il(q)|0;gk(a,e,1);gk(h,d,1);Kk(i,a,h);Ek(j,a,h)|0;Bk(k,i,j);if(!(Ek(a,p,i)|0))if(f)He(41560,287,41812);else do ek(p,p,2);while(!(Ek(a,p,i)|0));n=Il(q)|0;Fk(n,p,k)|0;o=Il(q)|0;Fk(o,e,d)|0;if(nf(1)|0){Se(41825,e);Se(41831,d);Se(41837,i);Se(41843,j);Se(41849,k);Se(41855,g);Se(41861,p);Se(41867,n);Se(41873,o)}Jl(a);Jl(h);Jl(i);Jl(k);Jl(j);c[D>>2]=g;h=D+4|0;c[h>>2]=p;g=D+12|0;c[g>>2]=e;f=D+16|0;c[f>>2]=d;a=D+8|0;c[a>>2]=n;d=D+20|0;c[d>>2]=o;if(!(Oi(D,q+-64|0)|0)){e=D;B=86}else{Jl(c[D>>2]|0);c[D>>2]=0;Jl(c[h>>2]|0);c[h>>2]=0;Jl(c[g>>2]|0);c[g>>2]=0;Jl(c[f>>2]|0);c[f>>2]=0;Jl(c[a>>2]|0);c[a>>2]=0;Jl(c[d>>2]|0);c[d>>2]=0;kg(41560,334,41812,0,41745);d=50}}else{z=0;B=11}}while(0);if((B|0)==11){y=c[i>>2]|0;k=c[k>>2]|0;k=(k|0)==1?65537:k;if(!(y>>>0<1024|(y&255|0)!=0|k>>>0<3|(k&1|0)==0)){c[s>>2]=0;c[t>>2]=0;c[u>>2]=0;c[v>>2]=0;c[w>>2]=0;c[x>>2]=0;a:do if(!z){e=y>>>1;f=Il(e)|0;Kl(f,e,2);g=e+-1|0;ok(f,g);a=e+-2|0;nk(f,a);if((lk(f)|0)!=(e|0))Ie(41524,41560,360,41566);c[u>>2]=f;h=Il(e)|0;i=e+-100|0;j=0;do{Jl(j);j=Il(e)|0;Kl(j,e,2);ok(j,g);nk(j,a);if((lk(j)|0)!=(e|0)){B=17;break}c[x>>2]=j;hk(h,f,j)}while((lk(h)|0)>>>0<=i>>>0);if((B|0)==17)Ie(41524,41560,360,41566);Jl(h);e=Il(101)|0;Kl(e,101,2);ok(e,100);if((lk(e)|0)!=101)Ie(41583,41560,375,41617);c[s>>2]=e;e=Il(101)|0;Kl(e,101,2);ok(e,100);if((lk(e)|0)!=101)Ie(41583,41560,375,41617);c[t>>2]=e;e=Il(101)|0;Kl(e,101,2);ok(e,100);if((lk(e)|0)!=101)Ie(41583,41560,375,41617);c[v>>2]=e;e=Il(101)|0;Kl(e,101,2);ok(e,100);if((lk(e)|0)==101){c[w>>2]=e;B=39;break}else Ie(41583,41560,375,41617)}else{d=n+4|0;e=d+12|0;f=e+40|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(f|0));c[n>>2]=41634;c[n+8>>2]=41638;c[n+16>>2]=41642;c[n+24>>2]=41645;c[n+32>>2]=41649;c[n+40>>2]=41653;c[d>>2]=s;c[n+12>>2]=t;c[n+20>>2]=u;c[n+28>>2]=v;c[n+36>>2]=w;c[n+44>>2]=x;e=0;d=41634;do{d=uf(z,d,0)|0;if(d|0){r=Af(d,1,5)|0;c[c[n+(e<<3)+4>>2]>>2]=r;sf(d)}e=e+1|0;d=c[n+(e<<3)>>2]|0}while((d|0)!=0);d=c[s>>2]|0;b:do if(d|0){e=1;do{if(!(c[c[n+(e<<3)+4>>2]>>2]|0))break b;e=e+1|0}while((c[n+(e<<3)>>2]|0)!=0);B=39;break a}while(0);Jl(d);d=1;do{Jl(c[c[n+(d<<3)+4>>2]>>2]|0);d=d+1|0}while((c[n+(d<<3)>>2]|0)!=0);q=0;r=0;p=0;o=0;d=128}while(0);if((B|0)==39){f=kl(k)|0;d=Ch(c[u>>2]|0,c[s>>2]|0,c[t>>2]|0,f,0,0)|0;e=Ch(c[x>>2]|0,c[v>>2]|0,c[w>>2]|0,f,0,0)|0;Jl(c[u>>2]|0);c[u>>2]=0;Jl(c[s>>2]|0);c[s>>2]=0;Jl(c[t>>2]|0);c[t>>2]=0;Jl(c[x>>2]|0);c[x>>2]=0;Jl(c[v>>2]|0);c[v>>2]=0;Jl(c[w>>2]|0);c[w>>2]=0;if((d|0)!=0&(e|0)!=0){q=d;r=e;p=f;o=1;d=128}else{Jl(d);Jl(e);Jl(f);q=d;r=e;p=f;o=0;d=21}}if(o){if((wk(q,r)|0)>0){Fl(q,r);e=1}else e=0;d=Hl(y)|0;Kk(d,q,r);f=y>>>1;j=Il(f)|0;f=Il(f)|0;g=Il(y)|0;gk(j,q,1);gk(f,r,1);Kk(g,j,f);i=Il(y)|0;if(!(Ek(i,p,g)|0))Ie(41656,41560,541,41690);Ek(i,j,f)|0;Jl(f);Bk(j,g,i);Jl(g);Fk(i,p,j)|0;Fk(j,q,r)|0;if(nf(1)|0){if(e|0)Oe(41704,A);Se(45379,q);Se(41725,r);Se(41729,d);Se(41733,p);Se(41737,i);Se(41741,j)}c[D>>2]=d;h=D+4|0;c[h>>2]=p;a=D+12|0;c[a>>2]=q;g=D+16|0;c[g>>2]=r;f=D+8|0;c[f>>2]=i;d=D+20|0;c[d>>2]=j;if(!(Oi(D,y+-64|0)|0))d=0;else{Jl(c[D>>2]|0);c[D>>2]=0;Jl(c[h>>2]|0);c[h>>2]=0;Jl(c[a>>2]|0);c[a>>2]=0;Jl(c[g>>2]|0);c[g>>2]=0;Jl(c[f>>2]|0);c[f>>2]=0;Jl(c[d>>2]|0);c[d>>2]=0;kg(41560,586,41690,0,41745);d=50}}else e=0}else{e=0;d=55}sf(z);if((e|0)!=0&(d|0)==0)d=tf(E,41783,0,1)|0;if(!d){h=D+4|0;a=D+8|0;g=D+12|0;f=D+16|0;d=D+20|0;e=D;B=86}}if((B|0)==86){w=c[e>>2]|0;x=c[h>>2]|0;y=c[a>>2]|0;z=c[g>>2]|0;A=c[f>>2]|0;B=c[d>>2]|0;d=c[E>>2]|0;c[C>>2]=w;c[C+4>>2]=x;c[C+8>>2]=w;c[C+12>>2]=x;c[C+16>>2]=y;c[C+20>>2]=z;c[C+24>>2]=A;c[C+28>>2]=B;c[C+32>>2]=d;d=Df(b,0,41879,C)|0}tl(c[D>>2]|0);tl(c[D+4>>2]|0);tl(c[D+12>>2]|0);tl(c[D+16>>2]|0);tl(c[D+8>>2]|0);tl(c[D+20>>2]|0);sf(c[E>>2]|0);E=d;l=F;return E|0}function Fi(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=l;l=l+64|0;if((l|0)>=(m|0))$(64);i=j+32|0;k=j;b=j+40|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;d=b+4|0;e=b+8|0;f=b+12|0;g=b+16|0;h=b+20|0;c[k>>2]=b;c[k+4>>2]=d;c[k+8>>2]=e;c[k+12>>2]=f;c[k+16>>2]=g;c[k+20>>2]=h;c[k+24>>2]=0;a=If(a,0,39064,k)|0;if(!a){k=ll(c[(c[f>>2]|0)+4>>2]<<1)|0;Kk(k,c[f>>2]|0,c[g>>2]|0);a=wk(k,c[b>>2]|0)|0;tl(k);a=(a|0)==0?0:7}Jl(c[b>>2]|0);Jl(c[d>>2]|0);Jl(c[e>>2]|0);Jl(c[f>>2]|0);Jl(c[g>>2]|0);Jl(c[h>>2]|0);if(!(nf(1)|0)){l=j;return a|0}c[i>>2]=Pn(a)|0;Oe(41480,i);l=j;return a|0}function Gi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;p=l;l=l+96|0;if((l|0)>=(m|0))$(96);o=p+40|0;g=p+32|0;i=p+24|0;h=p+8|0;j=p+48|0;k=p+44|0;n=p;c[k>>2]=0;e=n;c[e>>2]=0;c[e+4>>2]=0;e=uf(d,39075,1)|0;if(!e)e=0;else{f=Af(e,1,5)|0;sf(e);if(!f)e=0;else e=lk(f)|0;Jl(f)}Jh(j,0,e);e=Lh(b,k,j)|0;do if(!e){if(nf(1)|0)Se(41350,c[k>>2]|0);b=c[k>>2]|0;if(b|0?c[b+12>>2]&4|0:0){f=0;e=79;break}f=n+4|0;c[h>>2]=n;c[h+4>>2]=f;c[h+8>>2]=0;e=If(d,0,39061,h)|0;if(!e){if(nf(1)|0){Se(41367,c[n>>2]|0);Se(41384,c[f>>2]|0)}b=Hl(0)|0;e=c[k>>2]|0;if((b|0)==(e|0)){d=ll(c[b+4>>2]<<1)|0;Mk(d,b,c[f>>2]|0,c[n>>2]|0);Al(b,d)|0;tl(d)}else Mk(b,e,c[f>>2]|0,c[n>>2]|0);if(nf(1)|0)Se(41401,b);if(!(c[j+12>>2]&4)){c[g>>2]=b;f=b;e=Df(a,0,41438,g)|0;break}f=((lk(c[n>>2]|0)|0)+7|0)>>>3;e=Vk(h,0,b,f)|0;if(!e){e=c[h>>2]|0;c[i>>2]=f;c[i+4>>2]=e;e=Df(a,0,41418,i)|0;cf(c[h>>2]|0)}f=b}else f=0}else f=0;while(0);Jl(f);Jl(c[n>>2]|0);Jl(c[n+4>>2]|0);Jl(c[k>>2]|0);Kh(j);if(!(nf(1)|0)){l=p;return e|0}c[o>>2]=Pn(e)|0;Oe(41458,o);l=p;return e|0}function Hi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=l;l=l+160|0;if((l|0)>=(m|0))$(160);v=w+64|0;k=w+56|0;p=w+48|0;o=w+40|0;j=w+8|0;g=w;q=w+112|0;r=w+108|0;s=w+104|0;t=w+80|0;u=w+72|0;n=w+68|0;c[r>>2]=0;c[s>>2]=0;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;c[t+12>>2]=0;c[t+16>>2]=0;c[t+20>>2]=0;c[u>>2]=0;c[n>>2]=0;e=uf(d,39075,1)|0;if(!e)e=0;else{f=Af(e,1,5)|0;sf(e);if(!f)e=0;else e=lk(f)|0;Jl(f)}Jh(q,1,e);e=Ih(b,7604,r,q)|0;a:do if(!e){e=c[r>>2]|0;c[g>>2]=s;c[g+4>>2]=0;e=If(e,0,39071,g)|0;if(!e){if(nf(1)|0)Se(41178,c[s>>2]|0);i=c[s>>2]|0;if(i|0?c[i+12>>2]&4|0:0){f=0;e=79;break}i=t+4|0;f=t+8|0;b=t+12|0;g=t+16|0;h=t+20|0;c[j>>2]=t;c[j+4>>2]=i;c[j+8>>2]=f;c[j+12>>2]=b;c[j+16>>2]=g;c[j+20>>2]=h;c[j+24>>2]=0;e=If(d,0,40995,j)|0;if(!e){if(nf(1)|0?(Se(41195,c[t>>2]|0),Se(41212,c[i>>2]|0),(gg()|0)==0):0){Se(41229,c[f>>2]|0);Se(41246,c[b>>2]|0);Se(41263,c[g>>2]|0);Se(41280,c[h>>2]|0)}kk(c[s>>2]|0);e=c[s>>2]|0;xk(e,e,c[t>>2]|0);e=q+4|0;f=Il(c[e>>2]|0)|0;b=q+12|0;if(!(c[b>>2]&1)){g=Il(c[e>>2]|0)|0;h=Il(c[e>>2]|0)|0;d=Il(c[e>>2]|0)|0;do{Kl(g,c[e>>2]|0,0);Gk(g,g,c[t>>2]|0)}while(!(Fk(h,g,c[t>>2]|0)|0));Mk(d,g,c[i>>2]|0,c[t>>2]|0);Lk(d,d,c[s>>2]|0,c[t>>2]|0);Ni(f,d,t);Jl(d);Lk(f,f,h,c[t>>2]|0);Jl(g);Jl(h)}else Ni(f,c[s>>2]|0,t);if(nf(1)|0)Se(41297,f);switch(c[q+8>>2]|0){case 1:{e=wi(u,n,c[e>>2]|0,f)|0;tl(f);if(e|0){f=0;break a}f=c[u>>2]|0;c[o>>2]=c[n>>2];c[o+4>>2]=f;f=0;e=Df(a,0,41314,o)|0;break a}case 3:{e=Bi(u,n,c[e>>2]|0,c[q+16>>2]|0,f,c[q+20>>2]|0,c[q+24>>2]|0)|0;tl(f);if(e|0){f=0;break a}f=c[u>>2]|0;c[p>>2]=c[n>>2];c[p+4>>2]=f;f=0;e=Df(a,0,41314,p)|0;break a}default:{e=c[b>>2]&8|0?41325:47780;c[k>>2]=f;e=Df(a,0,e,k)|0;break a}}}else f=0}else f=0}else f=0;while(0);cf(c[u>>2]|0);Jl(f);Jl(c[t>>2]|0);Jl(c[t+4>>2]|0);Jl(c[t+8>>2]|0);Jl(c[t+12>>2]|0);Jl(c[t+16>>2]|0);Jl(c[t+20>>2]|0);Jl(c[s>>2]|0);Jl(0);Jl(0);Jl(0);sf(c[r>>2]|0);Kh(q);if(!(nf(1)|0)){l=w;return e|0}c[v>>2]=Pn(e)|0;Oe(41328,v);l=w;return e|0}function Ii(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+128|0;if((l|0)>=(m|0))$(128);r=s+48|0;j=s+40|0;n=s+32|0;k=s;o=s+88|0;p=s+80|0;q=s+56|0;c[p>>2]=0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;c[q+16>>2]=0;c[q+20>>2]=0;e=uf(d,39075,1)|0;if(!e)e=0;else{f=Af(e,1,5)|0;sf(e);if(!f)e=0;else e=lk(f)|0;Jl(f)}Jh(o,2,e);e=Lh(b,p,o)|0;do if(!e){if(nf(1)|0)Se(40979,c[p>>2]|0);i=c[p>>2]|0;if(i|0?c[i+12>>2]&4|0:0){f=0;e=79;break}f=q+4|0;b=q+8|0;g=q+12|0;h=q+16|0;i=q+20|0;c[k>>2]=q;c[k+4>>2]=f;c[k+8>>2]=b;c[k+12>>2]=g;c[k+16>>2]=h;c[k+20>>2]=i;c[k+24>>2]=0;e=If(d,0,40995,k)|0;if(!e){if(nf(1)|0?(Se(41005,c[q>>2]|0),Se(41021,c[f>>2]|0),(gg()|0)==0):0){Se(41037,c[b>>2]|0);Se(41053,c[g>>2]|0);Se(41069,c[h>>2]|0);Se(41085,c[i>>2]|0)}b=Hl(0)|0;Ni(b,c[p>>2]|0,q);if(nf(1)|0)Se(41101,b);if(!(c[o+12>>2]&4)){c[j>>2]=b;f=b;e=Df(a,0,41137,j)|0;break}f=((lk(c[q>>2]|0)|0)+7|0)>>>3;e=Vk(k,0,b,f)|0;if(!e){e=c[k>>2]|0;c[n>>2]=f;c[n+4>>2]=e;e=Df(a,0,41117,n)|0;cf(c[k>>2]|0)}f=b}else f=0}else f=0;while(0);Jl(f);Jl(c[q>>2]|0);Jl(c[q+4>>2]|0);Jl(c[q+8>>2]|0);Jl(c[q+12>>2]|0);Jl(c[q+16>>2]|0);Jl(c[q+20>>2]|0);Jl(c[p>>2]|0);Kh(o);if(!(nf(1)|0)){l=s;return e|0}c[r>>2]=Pn(e)|0;Oe(41157,r);l=s;return e|0}function Ji(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0;q=l;l=l+96|0;if((l|0)>=(m|0))$(96);p=q+32|0;h=q+16|0;g=q+8|0;i=q+48|0;j=q+44|0;k=q+40|0;n=q+36|0;o=q;c[j>>2]=0;c[k>>2]=0;c[n>>2]=0;e=o;c[e>>2]=0;c[e+4>>2]=0;e=uf(d,39075,1)|0;if(!e)e=0;else{f=Af(e,1,5)|0;sf(e);if(!f)e=0;else e=lk(f)|0;Jl(f)}Jh(i,3,e);f=Lh(b,n,i)|0;do if(!f){if(nf(1)|0)Se(40878,c[n>>2]|0);b=c[n>>2]|0;if(b|0?c[b+12>>2]&4|0:0){b=0;f=79;break}f=Hh(a,7604,j,0)|0;if(!f){f=c[j>>2]|0;c[g>>2]=k;c[g+4>>2]=0;f=If(f,0,39073,g)|0;if(!f){if(nf(1)|0)Se(40894,c[k>>2]|0);b=o+4|0;c[h>>2]=o;c[h+4>>2]=b;c[h+8>>2]=0;f=If(d,0,39061,h)|0;if(!f){if(nf(1)|0){Se(40910,c[o>>2]|0);Se(40926,c[b>>2]|0)}f=Hl(0)|0;e=c[k>>2]|0;if((f|0)==(e|0)){h=ll(c[f+4>>2]<<1)|0;Mk(h,f,c[b>>2]|0,c[o>>2]|0);Al(f,h)|0;tl(h)}else Mk(f,e,c[b>>2]|0,c[o>>2]|0);if(nf(1)|0)Se(40942,f);e=c[i+32>>2]|0;if(!e){h=(wk(f,c[n>>2]|0)|0)!=0;b=f;f=h?8:0;break}else{b=f;f=yb[e&7](i,f)|0;break}}else b=0}else b=0}else b=0}else b=0;while(0);Jl(b);Jl(c[o>>2]|0);Jl(c[o+4>>2]|0);Jl(c[n>>2]|0);Jl(c[k>>2]|0);sf(c[j>>2]|0);Kh(i);if(!(nf(1)|0)){l=q;return f|0}if(!f)e=47183;else e=Pn(f)|0;c[p>>2]=e;Oe(40958,p);l=q;return f|0}function Ki(a){a=a|0;var b=0;a=uf(a,39075,1)|0;if(!a){b=0;return b|0}b=Af(a,1,5)|0;sf(a);if(!b)a=0;else a=lk(b)|0;Jl(b);b=a;return b|0}function Li(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0;q=l;l=l+32|0;if((l|0)>=(m|0))$(32);f=q;j=q+20|0;k=q+16|0;n=q+12|0;o=q+8|0;p=q+4|0;if((a|0)!=1){r=4;l=q;return r|0}c[o>>2]=0;c[p>>2]=0;b=Ff(o,0,39077,1029)|0;do if(!b){b=Ff(p,0,40107,316)|0;if(!b){b=Uh(c[o>>2]|0)|0;if(b|0){b=Pn(b)|0;a=40842;r=28;break}b=c[p>>2]|0;a=c[o>>2]|0;c[j>>2]=0;c[k>>2]=0;c[n>>2]=0;if((Ff(j,0,40424,75)|0)==0?(Ff(k,0,40500,75)|0)==0:0)if(!(Sh(n,c[j>>2]|0,a)|0))if(!(Th(c[n>>2]|0,c[j>>2]|0,b)|0)){b=((Th(c[n>>2]|0,c[k>>2]|0,b)|0)&65535|0)==8;b=b?0:40576}else b=40641;else b=40626;else b=40603;sf(c[n>>2]|0);sf(c[k>>2]|0);sf(c[j>>2]|0);if(!b){b=c[p>>2]|0;a=c[o>>2]|0;c[j>>2]=0;c[k>>2]=0;c[n>>2]=0;g=Hl(1e3)|0;Kl(g,1e3,0);c[f>>2]=g;if(!(Df(j,0,40655,f)|0))if(!(Ph(k,c[j>>2]|0,b)|0)){b=uf(c[k>>2]|0,40685,0)|0;if((((b|0)!=0?(h=uf(b,40693,0)|0,sf(b),(h|0)!=0):0)?(i=uf(h,39071,0)|0,sf(h),(i|0)!=0):0)?(e=Af(i,1,0)|0,sf(i),(e|0)!=0):0)if(wk(g,e)|0)if(!(Rh(n,c[k>>2]|0,a)|0)){b=uf(c[n>>2]|0,40697,0)|0;if(!b)a=Af(c[n>>2]|0,0,5)|0;else a=Af(b,1,5)|0;if(!a){f=b;b=40804;a=0}else{i=(wk(g,a)|0)==0;f=b;b=i?0:40703}}else{f=0;b=40789;a=0}else{f=0;b=40760;a=0}else{f=0;e=0;b=40727;a=0}}else{f=0;e=0;b=40712;a=0}else{f=0;e=0;b=40603;a=0}sf(f);Jl(a);sf(c[n>>2]|0);Jl(e);sf(c[k>>2]|0);sf(c[j>>2]|0);Jl(g);if(!b){sf(c[p>>2]|0);sf(c[o>>2]|0);b=0}else{a=40863;r=28}}else{a=40858;r=28}}else r=4}else r=4;while(0);if((r|0)==4){b=Pn(b)|0;a=40834;r=28}if((r|0)==28){sf(c[p>>2]|0);sf(c[o>>2]|0);if(!d)b=50;else{zb[d&1](40871,1,a,b);b=50}}r=b;l=q;return r|0}function Mi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=f;b=uf(b,39075,1)|0;do if(b){d=xf(b,1,e)|0;if(!d){sf(b);b=68;break}else{lh(a,d,c[e>>2]|0);sf(b);b=0;break}}else b=68;while(0);l=f;return b|0}function Ni(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;kk(b);h=d+12|0;if((c[h>>2]|0?(i=d+16|0,c[i>>2]|0):0)?(j=d+20|0,c[j>>2]|0):0){e=nl((c[(c[d>>2]|0)+4>>2]|0)+1|0)|0;f=nl((c[(c[d>>2]|0)+4>>2]|0)+1|0)|0;g=nl((c[(c[d>>2]|0)+4>>2]|0)+1|0)|0;gk(g,c[h>>2]|0,1);d=d+8|0;xk(g,c[d>>2]|0,g);Mk(e,b,g,c[h>>2]|0);gk(g,c[i>>2]|0,1);xk(g,c[d>>2]|0,g);Mk(f,b,g,c[i>>2]|0);hk(g,f,e);if(c[g+8>>2]|0)fk(g,g,c[i>>2]|0);Lk(g,c[j>>2]|0,g,c[i>>2]|0);Kk(g,g,c[h>>2]|0);fk(a,e,g);tl(g);tl(e);tl(f);return}Mk(a,b,c[d+8>>2]|0,c[d>>2]|0);return}function Oi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;f=Hl(b)|0;g=Hl(b)|0;h=Hl(b)|0;i=Hl(b)|0;d=c[a>>2]|0;e=c[a+4>>2]|0;Kl(f,b,0);if((g|0)==(f|0)){j=ll(c[f+4>>2]<<1)|0;Mk(j,f,e,d);Al(f,j)|0;tl(j)}else Mk(g,f,e,d);if((wk(g,f)|0)!=0?(Ni(h,g,a),(wk(h,f)|0)==0):0){Kl(f,b,0);Ni(i,f,a);a=(h|0)==(i|0);if(a){j=ll(c[h+4>>2]<<1)|0;Mk(j,h,e,d);Al(h,j)|0;tl(j)}else Mk(h,i,e,d);if(!(wk(h,f)|0)){ek(i,i,1);if(a){j=ll(c[h+4>>2]<<1)|0;Mk(j,h,e,d);Al(h,j)|0;tl(j)}else Mk(h,i,e,d);a=((wk(h,f)|0)==0)<<31>>31}else a=-1}else a=-1;Jl(i);Jl(h);Jl(g);Jl(f);return a|0}function Pi(a,b){a=a|0;b=b|0;var c=0;gk(b,b,1);c=Bl(b)|0;a=(Ek(c,a,b)|0)==0&1;Jl(c);ek(b,b,1);return a|0}function Qi(a,b){a=a|0;b=b|0;c[a+160>>2]=1732584193;c[a+164>>2]=-271733879;c[a+168>>2]=-1732584194;c[a+172>>2]=271733878;c[a+176>>2]=-1009589776;b=a+128|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[a+148>>2]=64;c[a+152>>2]=32;return}function Ri(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;Jm(b,0,0);h=b+128|0;f=c[h>>2]|0;i=f<<6;h=gr(f|0,c[h+4>>2]|0,26)|0;e=b+144|0;j=c[e>>2]|0;g=i+j|0;f=(g>>>0<i>>>0&1)+(h&536870848|f>>>26)|0;h=g<<3;i=f<<3|g>>>29;c[e>>2]=j+1;a[b+j>>0]=-128;d=c[e>>2]|0;if((j|0)<56){if((d|0)<56)do{c[e>>2]=d+1;a[b+d>>0]=0;d=c[e>>2]|0}while((d|0)<56)}else{if((d|0)<64)do{c[e>>2]=d+1;a[b+d>>0]=0;d=c[e>>2]|0}while((d|0)<64);Jm(b,0,0);d=b;e=d+56|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0))}a[b+56>>0]=f>>>21;a[b+57>>0]=f>>>13;a[b+58>>0]=f>>>5;a[b+59>>0]=i;a[b+60>>0]=g>>>21;a[b+61>>0]=g>>>13;a[b+62>>0]=g>>>5;a[b+63>>0]=h;Ui(b,b,1)|0;Te(104);j=c[b+160>>2]|0;a[b>>0]=j>>>24;a[b+1>>0]=j>>>16;a[b+2>>0]=j>>>8;a[b+3>>0]=j;j=c[b+164>>2]|0;a[b+4>>0]=j>>>24;a[b+5>>0]=j>>>16;a[b+6>>0]=j>>>8;a[b+7>>0]=j;j=c[b+168>>2]|0;a[b+8>>0]=j>>>24;a[b+9>>0]=j>>>16;a[b+10>>0]=j>>>8;a[b+11>>0]=j;j=c[b+172>>2]|0;a[b+12>>0]=j>>>24;a[b+13>>0]=j>>>16;a[b+14>>0]=j>>>8;a[b+15>>0]=j;j=c[b+176>>2]|0;a[b+16>>0]=j>>>24;a[b+17>>0]=j>>>16;a[b+18>>0]=j>>>8;a[b+19>>0]=j;return}function Si(a){a=a|0;return a|0}function Ti(a,b,c){a=a|0;b=b|0;c=c|0;if((a|0)!=2){c=5;return c|0}a=Im(2,0,42568,3,42031,20)|0;if(!a){if(!b){c=0;return c|0}a=Im(2,0,42234,56,42052,20)|0;if(!a){a=Im(2,1,0,0,42073,20)|0;if(!a){c=0;return c|0}else b=42857}else b=42845}else b=42832;if(!c){c=50;return c|0}zb[c&1](42873,2,b,a);c=50;return c|0}function Ui(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;k=a+160|0;l=a+164|0;m=a+168|0;n=a+172|0;j=a+176|0;a=c[m>>2]|0;f=c[n>>2]|0;g=c[l>>2]|0;h=c[j>>2]|0;i=c[k>>2]|0;while(1){z=(d[b+1>>0]|0)<<16|(d[b>>0]|0)<<24|(d[b+2>>0]|0)<<8|(d[b+3>>0]|0);o=(i<<5|i>>>27)+1518500249+h+((f^a)&g^f)+z|0;r=g<<30|g>>>2;v=(d[b+5>>0]|0)<<16|(d[b+4>>0]|0)<<24|(d[b+6>>0]|0)<<8|(d[b+7>>0]|0);p=f+1518500249+((r^a)&i^a)+(o<<5|o>>>27)+v|0;s=i<<30|i>>>2;B=(d[b+9>>0]|0)<<16|(d[b+8>>0]|0)<<24|(d[b+10>>0]|0)<<8|(d[b+11>>0]|0);q=a+1518500249+(o&(r^s)^r)+(p<<5|p>>>27)+B|0;o=o<<30|o>>>2;G=(d[b+13>>0]|0)<<16|(d[b+12>>0]|0)<<24|(d[b+14>>0]|0)<<8|(d[b+15>>0]|0);r=r+1518500249+(p&(o^s)^s)+G+(q<<5|q>>>27)|0;p=p<<30|p>>>2;E=(d[b+17>>0]|0)<<16|(d[b+16>>0]|0)<<24|(d[b+18>>0]|0)<<8|(d[b+19>>0]|0);s=s+1518500249+(q&(p^o)^o)+E+(r<<5|r>>>27)|0;q=q<<30|q>>>2;C=(d[b+21>>0]|0)<<16|(d[b+20>>0]|0)<<24|(d[b+22>>0]|0)<<8|(d[b+23>>0]|0);o=o+1518500249+(r&(q^p)^p)+C+(s<<5|s>>>27)|0;r=r<<30|r>>>2;y=(d[b+25>>0]|0)<<16|(d[b+24>>0]|0)<<24|(d[b+26>>0]|0)<<8|(d[b+27>>0]|0);p=p+1518500249+(s&(r^q)^q)+y+(o<<5|o>>>27)|0;s=s<<30|s>>>2;u=(d[b+29>>0]|0)<<16|(d[b+28>>0]|0)<<24|(d[b+30>>0]|0)<<8|(d[b+31>>0]|0);q=q+1518500249+(o&(s^r)^r)+u+(p<<5|p>>>27)|0;o=o<<30|o>>>2;x=(d[b+33>>0]|0)<<16|(d[b+32>>0]|0)<<24|(d[b+34>>0]|0)<<8|(d[b+35>>0]|0);r=r+1518500249+(p&(o^s)^s)+x+(q<<5|q>>>27)|0;p=p<<30|p>>>2;t=(d[b+37>>0]|0)<<16|(d[b+36>>0]|0)<<24|(d[b+38>>0]|0)<<8|(d[b+39>>0]|0);s=s+1518500249+(q&(p^o)^o)+t+(r<<5|r>>>27)|0;q=q<<30|q>>>2;I=(d[b+41>>0]|0)<<16|(d[b+40>>0]|0)<<24|(d[b+42>>0]|0)<<8|(d[b+43>>0]|0);o=o+1518500249+(r&(q^p)^p)+I+(s<<5|s>>>27)|0;r=r<<30|r>>>2;H=(d[b+45>>0]|0)<<16|(d[b+44>>0]|0)<<24|(d[b+46>>0]|0)<<8|(d[b+47>>0]|0);p=p+1518500249+(s&(r^q)^q)+H+(o<<5|o>>>27)|0;s=s<<30|s>>>2;F=(d[b+49>>0]|0)<<16|(d[b+48>>0]|0)<<24|(d[b+50>>0]|0)<<8|(d[b+51>>0]|0);q=q+1518500249+(o&(s^r)^r)+F+(p<<5|p>>>27)|0;o=o<<30|o>>>2;D=(d[b+53>>0]|0)<<16|(d[b+52>>0]|0)<<24|(d[b+54>>0]|0)<<8|(d[b+55>>0]|0);r=r+1518500249+(p&(o^s)^s)+D+(q<<5|q>>>27)|0;p=p<<30|p>>>2;A=(d[b+57>>0]|0)<<16|(d[b+56>>0]|0)<<24|(d[b+58>>0]|0)<<8|(d[b+59>>0]|0);s=s+1518500249+(q&(p^o)^o)+A+(r<<5|r>>>27)|0;q=q<<30|q>>>2;w=(d[b+61>>0]|0)<<16|(d[b+60>>0]|0)<<24|(d[b+62>>0]|0)<<8|(d[b+63>>0]|0);o=o+1518500249+(r&(q^p)^p)+w+(s<<5|s>>>27)|0;r=r<<30|r>>>2;z=B^z^x^D;z=z<<1|z>>>31;p=p+1518500249+z+(s&(r^q)^q)+(o<<5|o>>>27)|0;s=s<<30|s>>>2;v=G^v^t^A;v=v<<1|v>>>31;q=q+1518500249+v+(o&(s^r)^r)+(p<<5|p>>>27)|0;o=o<<30|o>>>2;B=E^B^I^w;B=B<<1|B>>>31;r=r+1518500249+B+(p&(o^s)^s)+(q<<5|q>>>27)|0;p=p<<30|p>>>2;G=C^G^H^z;G=G<<1|G>>>31;s=G+1518500249+s+(q&(p^o)^o)+(r<<5|r>>>27)|0;q=q<<30|q>>>2;E=y^E^F^v;E=E<<1|E>>>31;o=E+1859775393+o+(q^p^r)+(s<<5|s>>>27)|0;r=r<<30|r>>>2;C=u^C^D^B;C=C<<1|C>>>31;p=C+1859775393+p+(r^q^s)+(o<<5|o>>>27)|0;s=s<<30|s>>>2;y=x^y^A^G;y=y<<1|y>>>31;q=y+1859775393+q+(s^r^o)+(p<<5|p>>>27)|0;o=o<<30|o>>>2;u=t^u^w^E;u=u<<1|u>>>31;r=u+1859775393+r+(o^s^p)+(q<<5|q>>>27)|0;p=p<<30|p>>>2;x=I^x^z^C;x=x<<1|x>>>31;s=x+1859775393+s+(p^o^q)+(r<<5|r>>>27)|0;q=q<<30|q>>>2;t=H^t^v^y;t=t<<1|t>>>31;o=t+1859775393+o+(q^p^r)+(s<<5|s>>>27)|0;r=r<<30|r>>>2;I=F^I^B^u;I=I<<1|I>>>31;p=I+1859775393+p+(r^q^s)+(o<<5|o>>>27)|0;s=s<<30|s>>>2;H=D^H^G^x;H=H<<1|H>>>31;q=H+1859775393+q+(s^r^o)+(p<<5|p>>>27)|0;o=o<<30|o>>>2;F=A^F^E^t;F=F<<1|F>>>31;r=F+1859775393+r+(o^s^p)+(q<<5|q>>>27)|0;p=p<<30|p>>>2;D=w^D^C^I;D=D<<1|D>>>31;s=D+1859775393+s+(p^o^q)+(r<<5|r>>>27)|0;q=q<<30|q>>>2;A=A^z^y^H;A=A<<1|A>>>31;o=A+1859775393+o+(q^p^r)+(s<<5|s>>>27)|0;r=r<<30|r>>>2;w=w^v^u^F;w=w<<1|w>>>31;p=w+1859775393+p+(r^q^s)+(o<<5|o>>>27)|0;s=s<<30|s>>>2;z=B^z^x^D;z=z<<1|z>>>31;q=z+1859775393+q+(s^r^o)+(p<<5|p>>>27)|0;o=o<<30|o>>>2;v=v^G^t^A;v=v<<1|v>>>31;r=v+1859775393+r+(o^s^p)+(q<<5|q>>>27)|0;p=p<<30|p>>>2;B=B^E^I^w;B=B<<1|B>>>31;s=B+1859775393+s+(p^o^q)+(r<<5|r>>>27)|0;q=q<<30|q>>>2;G=C^G^H^z;G=G<<1|G>>>31;o=G+1859775393+o+(q^p^r)+(s<<5|s>>>27)|0;r=r<<30|r>>>2;E=E^y^F^v;E=E<<1|E>>>31;p=E+1859775393+p+(r^q^s)+(o<<5|o>>>27)|0;s=s<<30|s>>>2;C=C^u^D^B;C=C<<1|C>>>31;q=C+1859775393+q+(s^r^o)+(p<<5|p>>>27)|0;o=o<<30|o>>>2;y=x^y^A^G;y=y<<1|y>>>31;r=y+1859775393+r+(o^s^p)+(q<<5|q>>>27)|0;p=p<<30|p>>>2;u=u^t^w^E;u=u<<1|u>>>31;s=u+1859775393+s+(p^o^q)+(r<<5|r>>>27)|0;q=q<<30|q>>>2;x=x^I^z^C;x=x<<1|x>>>31;o=x+-1894007588+o+((r|q)&p|r&q)+(s<<5|s>>>27)|0;r=r<<30|r>>>2;t=H^t^v^y;t=t<<1|t>>>31;p=t+-1894007588+p+((s|r)&q|s&r)+(o<<5|o>>>27)|0;s=s<<30|s>>>2;I=I^F^B^u;I=I<<1|I>>>31;q=I+-1894007588+q+((o|s)&r|o&s)+(p<<5|p>>>27)|0;o=o<<30|o>>>2;H=H^D^G^x;H=H<<1|H>>>31;r=H+-1894007588+r+((p|o)&s|p&o)+(q<<5|q>>>27)|0;p=p<<30|p>>>2;F=A^F^E^t;F=F<<1|F>>>31;s=F+-1894007588+s+((q|p)&o|q&p)+(r<<5|r>>>27)|0;q=q<<30|q>>>2;D=D^w^C^I;D=D<<1|D>>>31;o=D+-1894007588+o+((r|q)&p|r&q)+(s<<5|s>>>27)|0;r=r<<30|r>>>2;A=A^z^y^H;A=A<<1|A>>>31;p=A+-1894007588+p+((s|r)&q|s&r)+(o<<5|o>>>27)|0;s=s<<30|s>>>2;w=v^w^u^F;w=w<<1|w>>>31;q=w+-1894007588+q+((o|s)&r|o&s)+(p<<5|p>>>27)|0;o=o<<30|o>>>2;z=z^B^x^D;z=z<<1|z>>>31;r=z+-1894007588+r+((p|o)&s|p&o)+(q<<5|q>>>27)|0;p=p<<30|p>>>2;v=v^G^t^A;v=v<<1|v>>>31;s=v+-1894007588+s+((q|p)&o|q&p)+(r<<5|r>>>27)|0;q=q<<30|q>>>2;B=E^B^I^w;B=B<<1|B>>>31;o=B+-1894007588+o+((r|q)&p|r&q)+(s<<5|s>>>27)|0;r=r<<30|r>>>2;G=G^C^H^z;G=G<<1|G>>>31;p=G+-1894007588+p+((s|r)&q|s&r)+(o<<5|o>>>27)|0;s=s<<30|s>>>2;E=E^y^F^v;E=E<<1|E>>>31;q=E+-1894007588+q+((o|s)&r|o&s)+(p<<5|p>>>27)|0;o=o<<30|o>>>2;C=u^C^D^B;C=C<<1|C>>>31;r=C+-1894007588+r+((p|o)&s|p&o)+(q<<5|q>>>27)|0;p=p<<30|p>>>2;y=y^x^A^G;y=y<<1|y>>>31;s=y+-1894007588+s+((q|p)&o|q&p)+(r<<5|r>>>27)|0;q=q<<30|q>>>2;u=u^t^w^E;u=u<<1|u>>>31;o=u+-1894007588+o+((r|q)&p|r&q)+(s<<5|s>>>27)|0;r=r<<30|r>>>2;x=I^x^z^C;x=x<<1|x>>>31;p=x+-1894007588+p+((s|r)&q|s&r)+(o<<5|o>>>27)|0;s=s<<30|s>>>2;t=t^H^v^y;t=t<<1|t>>>31;q=t+-1894007588+q+((o|s)&r|o&s)+(p<<5|p>>>27)|0;o=o<<30|o>>>2;I=I^F^B^u;I=I<<1|I>>>31;r=I+-1894007588+r+((p|o)&s|p&o)+(q<<5|q>>>27)|0;p=p<<30|p>>>2;H=D^H^G^x;H=H<<1|H>>>31;s=H+-1894007588+s+((q|p)&o|q&p)+(r<<5|r>>>27)|0;q=q<<30|q>>>2;F=F^A^E^t;F=F<<1|F>>>31;o=F+-899497514+o+(q^p^r)+(s<<5|s>>>27)|0;r=r<<30|r>>>2;D=D^w^C^I;D=D<<1|D>>>31;p=D+-899497514+p+(r^q^s)+(o<<5|o>>>27)|0;s=s<<30|s>>>2;A=z^A^y^H;A=A<<1|A>>>31;q=A+-899497514+q+(s^r^o)+(p<<5|p>>>27)|0;o=o<<30|o>>>2;w=w^v^u^F;w=w<<1|w>>>31;r=w+-899497514+r+(o^s^p)+(q<<5|q>>>27)|0;p=p<<30|p>>>2;z=z^B^x^D;z=z<<1|z>>>31;s=z+-899497514+s+(p^o^q)+(r<<5|r>>>27)|0;q=q<<30|q>>>2;v=G^v^t^A;v=v<<1|v>>>31;o=v+-899497514+o+(q^p^r)+(s<<5|s>>>27)|0;r=r<<30|r>>>2;B=B^E^I^w;B=B<<1|B>>>31;p=B+-899497514+p+(r^q^s)+(o<<5|o>>>27)|0;s=s<<30|s>>>2;G=G^C^H^z;G=G<<1|G>>>31;q=G+-899497514+q+(s^r^o)+(p<<5|p>>>27)|0;o=o<<30|o>>>2;E=y^E^F^v;E=E<<1|E>>>31;r=E+-899497514+r+(o^s^p)+(q<<5|q>>>27)|0;p=p<<30|p>>>2;C=C^u^D^B;C=C<<1|C>>>31;s=C+-899497514+s+(p^o^q)+(r<<5|r>>>27)|0;q=q<<30|q>>>2;y=y^x^A^G;y=y<<1|y>>>31;o=y+-899497514+o+(q^p^r)+(s<<5|s>>>27)|0;r=r<<30|r>>>2;u=t^u^w^E;u=u<<1|u>>>31;p=u+-899497514+p+(r^q^s)+(o<<5|o>>>27)|0;s=s<<30|s>>>2;x=x^I^z^C;x=x<<1|x>>>31;q=x+-899497514+q+(s^r^o)+(p<<5|p>>>27)|0;o=o<<30|o>>>2;t=t^H^v^y;t=t<<1|t>>>31;r=t+-899497514+r+(o^s^p)+(q<<5|q>>>27)|0;p=p<<30|p>>>2;B=F^I^B^u;B=B<<1|B>>>31;s=B+-899497514+s+(p^o^q)+(r<<5|r>>>27)|0;q=q<<30|q>>>2;x=H^D^G^x;x=x<<1|x>>>31;o=x+-899497514+o+(q^p^r)+(s<<5|s>>>27)|0;r=r<<30|r>>>2;t=F^A^E^t;t=t<<1|t>>>31;p=t+-899497514+p+(r^q^s)+(o<<5|o>>>27)|0;s=s<<30|s>>>2;B=w^D^C^B;q=(B<<1|B>>>31)+-899497514+q+(s^r^o)+(p<<5|p>>>27)|0;o=o<<30|o>>>2;x=A^z^y^x;r=(x<<1|x>>>31)+-899497514+r+(o^s^p)+(q<<5|q>>>27)|0;p=p<<30|p>>>2;t=w^v^u^t;i=i+-899497514+(t<<1|t>>>31)+s+(p^o^q)+(r<<5|r>>>27)|0;c[k>>2]=i;g=r+(c[l>>2]|0)|0;c[l>>2]=g;a=(q<<30|q>>>2)+(c[m>>2]|0)|0;c[m>>2]=a;f=p+(c[n>>2]|0)|0;c[n>>2]=f;h=o+(c[j>>2]|0)|0;c[j>>2]=h;e=e+-1|0;if(!e)break;else b=b+64|0}return 104}function Vi(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=l;l=l+192|0;if((l|0)>=(m|0))$(192);g=f;c[g+160>>2]=1732584193;c[g+164>>2]=-271733879;c[g+168>>2]=-1732584194;c[g+172>>2]=271733878;c[g+176>>2]=-1009589776;h=g+128|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[h+16>>2]=0;c[g+148>>2]=64;c[g+152>>2]=32;Jm(g,d,e);Ri(g);d=g;e=b+20|0;do{a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0}while((b|0)<(e|0));l=f;return}function Wi(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=l;l=l+192|0;if((l|0)>=(m|0))$(192);f=g;c[f+160>>2]=1732584193;c[f+164>>2]=-271733879;c[f+168>>2]=-1732584194;c[f+172>>2]=271733878;c[f+176>>2]=-1009589776;h=f+128|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[h+16>>2]=0;c[f+148>>2]=64;c[f+152>>2]=32;if((e|0)<=0){Ri(f);d=b;e=d+20|0;do{a[d>>0]=a[f>>0]|0;d=d+1|0;f=f+1|0}while((d|0)<(e|0));l=g;return}while(1){Jm(f,(c[d+12>>2]|0)+(c[d+4>>2]|0)|0,c[d+8>>2]|0);if((e|0)>1){d=d+16|0;e=e+-1|0}else break}Ri(f);d=b;e=d+20|0;do{a[d>>0]=a[f>>0]|0;d=d+1|0;f=f+1|0}while((d|0)<(e|0));l=g;return}function Xi(a,b){a=a|0;b=b|0;c[a+160>>2]=-1056596264;c[a+164>>2]=914150663;c[a+168>>2]=812702999;c[a+172>>2]=-150054599;c[a+176>>2]=-4191439;c[a+180>>2]=1750603025;c[a+184>>2]=1694076839;c[a+188>>2]=-1090891868;b=a+128|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[a+148>>2]=64;c[a+152>>2]=33;return}function Yi(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;Jm(b,0,0);h=b+128|0;f=c[h>>2]|0;i=f<<6;h=gr(f|0,c[h+4>>2]|0,26)|0;e=b+144|0;j=c[e>>2]|0;g=i+j|0;f=(g>>>0<i>>>0&1)+(h&536870848|f>>>26)|0;h=g<<3;i=f<<3|g>>>29;c[e>>2]=j+1;a[b+j>>0]=-128;d=c[e>>2]|0;if((j|0)<56){if((d|0)<56)do{c[e>>2]=d+1;a[b+d>>0]=0;d=c[e>>2]|0}while((d|0)<56)}else{if((d|0)<64)do{c[e>>2]=d+1;a[b+d>>0]=0;d=c[e>>2]|0}while((d|0)<64);Jm(b,0,0);d=b;e=d+56|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0))}a[b+56>>0]=f>>>21;a[b+57>>0]=f>>>13;a[b+58>>0]=f>>>5;a[b+59>>0]=i;a[b+60>>0]=g>>>21;a[b+61>>0]=g>>>13;a[b+62>>0]=g>>>5;a[b+63>>0]=h;$i(b,b,1)|0;Te(328);j=c[b+160>>2]|0;a[b>>0]=j>>>24;a[b+1>>0]=j>>>16;a[b+2>>0]=j>>>8;a[b+3>>0]=j;j=c[b+164>>2]|0;a[b+4>>0]=j>>>24;a[b+5>>0]=j>>>16;a[b+6>>0]=j>>>8;a[b+7>>0]=j;j=c[b+168>>2]|0;a[b+8>>0]=j>>>24;a[b+9>>0]=j>>>16;a[b+10>>0]=j>>>8;a[b+11>>0]=j;j=c[b+172>>2]|0;a[b+12>>0]=j>>>24;a[b+13>>0]=j>>>16;a[b+14>>0]=j>>>8;a[b+15>>0]=j;j=c[b+176>>2]|0;a[b+16>>0]=j>>>24;a[b+17>>0]=j>>>16;a[b+18>>0]=j>>>8;a[b+19>>0]=j;j=c[b+180>>2]|0;a[b+20>>0]=j>>>24;a[b+21>>0]=j>>>16;a[b+22>>0]=j>>>8;a[b+23>>0]=j;j=c[b+184>>2]|0;a[b+24>>0]=j>>>24;a[b+25>>0]=j>>>16;a[b+26>>0]=j>>>8;a[b+27>>0]=j;j=c[b+188>>2]|0;a[b+28>>0]=j>>>24;a[b+29>>0]=j>>>16;a[b+30>>0]=j>>>8;a[b+31>>0]=j;return}function Zi(a){a=a|0;return a|0}function _i(a,b,c){a=a|0;b=b|0;c=c|0;switch(a|0){case 11:{a=Im(11,0,42568,3,42205,28)|0;if(!a){if(!b){c=0;return c|0}a=Im(11,0,42234,56,42291,28)|0;if(!a){a=Im(11,1,0,0,42320,28)|0;if(!a){c=0;return c|0}else b=42857}else b=42845}else b=42832;if(!c){c=50;return c|0}zb[c&1](42873,11,b,a);c=50;return c|0}case 8:{a=Im(8,0,42568,3,42349,32)|0;if(!a){if(!b){c=0;return c|0}a=Im(8,0,42234,56,42382,32)|0;if(!a){a=Im(8,1,0,0,42415,32)|0;if(!a){c=0;return c|0}else b=42857}else b=42845}else b=42832;if(!c){c=50;return c|0}zb[c&1](42873,8,b,a);c=50;return c|0}default:{c=5;return c|0}}return 0}function $i(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;z=l;l=l+256|0;if((l|0)>=(m|0))$(256);s=z;t=a+160|0;u=a+164|0;v=a+168|0;w=a+172|0;x=a+176|0;y=a+180|0;r=a+184|0;q=a+188|0;i=c[q>>2]|0;k=c[r>>2]|0;j=c[y>>2]|0;h=c[x>>2]|0;g=c[w>>2]|0;p=c[v>>2]|0;o=c[u>>2]|0;n=c[t>>2]|0;while(1){a=0;do{f=b+(a<<2)|0;c[s+(a<<2)>>2]=(d[f+1>>0]|0)<<16|(d[f>>0]|0)<<24|(d[f+2>>0]|0)<<8|(d[f+3>>0]|0);a=a+1|0}while((a|0)!=16);a=16;f=c[s>>2]|0;do{A=c[s+(a+-2<<2)>>2]|0;B=f;f=c[s+(a+-15<<2)>>2]|0;c[s+(a<<2)>>2]=(c[s+(a+-7<<2)>>2]|0)+B+((A>>>19|A<<13)^A>>>10^(A>>>17|A<<15))+((f>>>18|f<<14)^f>>>3^(f>>>7|f<<25));a=a+1|0}while((a|0)!=64);f=p;a=0;do{G=((j^k)&h^k)+i+(c[12216+(a<<2)>>2]|0)+((h>>>6|h<<26)^(h>>>11|h<<21)^(h>>>25|h<<7))+(c[s+(a<<2)>>2]|0)|0;H=G+g|0;G=(f&(o|n)|o&n)+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+G|0;E=a|1;E=(c[12216+(E<<2)>>2]|0)+k+(c[s+(E<<2)>>2]|0)+(H&(h^j)^j)+((H>>>6|H<<26)^(H>>>11|H<<21)^(H>>>25|H<<7))|0;D=E+f|0;E=((G>>>2|G<<30)^(G>>>13|G<<19)^(G>>>22|G<<10))+((G|n)&o|G&n)+E|0;C=a|2;C=(c[12216+(C<<2)>>2]|0)+j+(c[s+(C<<2)>>2]|0)+(D&(H^h)^h)+((D>>>6|D<<26)^(D>>>11|D<<21)^(D>>>25|D<<7))|0;p=C+o|0;C=((E>>>2|E<<30)^(E>>>13|E<<19)^(E>>>22|E<<10))+((E|G)&n|E&G)+C|0;A=a|3;A=(c[12216+(A<<2)>>2]|0)+h+(c[s+(A<<2)>>2]|0)+(p&(D^H)^H)+((p>>>6|p<<26)^(p>>>11|p<<21)^(p>>>25|p<<7))|0;B=A+n|0;A=((C>>>2|C<<30)^(C>>>13|C<<19)^(C>>>22|C<<10))+((C|E)&G|C&E)+A|0;F=a|4;F=(c[12216+(F<<2)>>2]|0)+H+(c[s+(F<<2)>>2]|0)+(B&(p^D)^D)+((B>>>6|B<<26)^(B>>>11|B<<21)^(B>>>25|B<<7))|0;i=F+G|0;g=((A>>>2|A<<30)^(A>>>13|A<<19)^(A>>>22|A<<10))+((A|C)&E|A&C)+F|0;F=a|5;D=(c[s+(F<<2)>>2]|0)+(c[12216+(F<<2)>>2]|0)+D+(i&(B^p)^p)+((i>>>6|i<<26)^(i>>>11|i<<21)^(i>>>25|i<<7))|0;k=D+E|0;f=((g>>>2|g<<30)^(g>>>13|g<<19)^(g>>>22|g<<10))+((g|A)&C|g&A)+D|0;D=a|6;p=(c[s+(D<<2)>>2]|0)+(c[12216+(D<<2)>>2]|0)+p+(k&(i^B)^B)+((k>>>6|k<<26)^(k>>>11|k<<21)^(k>>>25|k<<7))|0;j=p+C|0;o=((f>>>2|f<<30)^(f>>>13|f<<19)^(f>>>22|f<<10))+((f|g)&A|f&g)+p|0;p=a|7;B=(c[s+(p<<2)>>2]|0)+(c[12216+(p<<2)>>2]|0)+B+(j&(k^i)^i)+((j>>>6|j<<26)^(j>>>11|j<<21)^(j>>>25|j<<7))|0;h=B+A|0;n=((o>>>2|o<<30)^(o>>>13|o<<19)^(o>>>22|o<<10))+((o|f)&g|o&f)+B|0;a=a+8|0}while((a|0)<64);n=(c[t>>2]|0)+n|0;c[t>>2]=n;o=(c[u>>2]|0)+o|0;c[u>>2]=o;p=(c[v>>2]|0)+f|0;c[v>>2]=p;g=(c[w>>2]|0)+g|0;c[w>>2]=g;h=(c[x>>2]|0)+h|0;c[x>>2]=h;j=(c[y>>2]|0)+j|0;c[y>>2]=j;k=(c[r>>2]|0)+k|0;c[r>>2]=k;i=(c[q>>2]|0)+i|0;c[q>>2]=i;e=e+-1|0;if(!e)break;else b=b+64|0}l=z;return 328}function aj(a,b){a=a|0;b=b|0;c[a+160>>2]=1779033703;c[a+164>>2]=-1150833019;c[a+168>>2]=1013904242;c[a+172>>2]=-1521486534;c[a+176>>2]=1359893119;c[a+180>>2]=-1694144372;c[a+184>>2]=528734635;c[a+188>>2]=1541459225;b=a+128|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[a+148>>2]=64;c[a+152>>2]=33;return}function bj(a,b){a=a|0;b=b|0;b=a+160|0;c[b>>2]=-205731576;c[b+4>>2]=1779033703;b=a+168|0;c[b>>2]=-2067093701;c[b+4>>2]=-1150833019;b=a+176|0;c[b>>2]=-23791573;c[b+4>>2]=1013904242;b=a+184|0;c[b>>2]=1595750129;c[b+4>>2]=-1521486534;b=a+192|0;c[b>>2]=-1377402159;c[b+4>>2]=1359893119;b=a+200|0;c[b>>2]=725511199;c[b+4>>2]=-1694144372;b=a+208|0;c[b>>2]=-79577749;c[b+4>>2]=528734635;b=a+216|0;c[b>>2]=327033209;c[b+4>>2]=1541459225;b=a+128|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[a+148>>2]=128;c[a+152>>2]=34;return}function cj(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;Jm(b,0,0);i=b+128|0;e=c[i>>2]|0;i=c[i+4>>2]|0;j=b+136|0;h=c[j>>2]|0;j=c[j+4>>2]|0;m=mr(e|0,i|0,7)|0;d=D;j=mr(h|0,j|0,7)|0;h=D;i=gr(e|0,i|0,57)|0;h=h|D;e=b+144|0;l=c[e>>2]|0;f=_q(l|0,((l|0)<0)<<31>>31|0,m|0,d|0)|0;g=D;h=_q((g>>>0<d>>>0|(g|0)==(d|0)&f>>>0<m>>>0)&1|0,0,j|i|0,h|0)|0;i=D;j=mr(f|0,g|0,3)|0;m=mr(h|0,i|0,3)|0;d=D;k=gr(f|0,g|0,61)|0;k=m|k;c[e>>2]=l+1;a[b+l>>0]=-128;d=c[e>>2]|0;if((l|0)<112){if((d|0)<112)do{c[e>>2]=d+1;a[b+d>>0]=0;d=c[e>>2]|0}while((d|0)<112)}else{if((d|0)<128)do{c[e>>2]=d+1;a[b+d>>0]=0;d=c[e>>2]|0}while((d|0)<128);Jm(b,0,0);d=b;e=d+112|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0))}m=gr(h|0,i|0,53)|0;a[b+112>>0]=m;m=gr(h|0,i|0,45)|0;a[b+113>>0]=m;m=gr(h|0,i|0,37)|0;a[b+114>>0]=m;m=gr(h|0,i|0,29)|0;a[b+115>>0]=m;m=gr(h|0,i|0,21)|0;a[b+116>>0]=m;m=gr(h|0,i|0,13)|0;a[b+117>>0]=m;m=gr(h|0,i|0,5)|0;a[b+118>>0]=m;a[b+119>>0]=k;m=gr(f|0,g|0,53)|0;a[b+120>>0]=m;m=gr(f|0,g|0,45)|0;a[b+121>>0]=m;m=gr(f|0,g|0,37)|0;a[b+122>>0]=m;m=gr(f|0,g|0,29)|0;a[b+123>>0]=m;m=gr(f|0,g|0,21)|0;a[b+124>>0]=m;m=gr(f|0,g|0,13)|0;a[b+125>>0]=m;m=gr(f|0,g|0,5)|0;a[b+126>>0]=m;a[b+127>>0]=j;fj(b,b,1)|0;Te(220);m=b+160|0;l=c[m>>2]|0;m=c[m+4>>2]|0;k=gr(l|0,m|0,56)|0;a[b>>0]=k;k=gr(l|0,m|0,48)|0;a[b+1>>0]=k;k=gr(l|0,m|0,40)|0;a[b+2>>0]=k;a[b+3>>0]=m;k=gr(l|0,m|0,24)|0;a[b+4>>0]=k;k=gr(l|0,m|0,16)|0;a[b+5>>0]=k;m=gr(l|0,m|0,8)|0;a[b+6>>0]=m;a[b+7>>0]=l;l=b+168|0;m=c[l>>2]|0;l=c[l+4>>2]|0;k=gr(m|0,l|0,56)|0;a[b+8>>0]=k;k=gr(m|0,l|0,48)|0;a[b+9>>0]=k;k=gr(m|0,l|0,40)|0;a[b+10>>0]=k;a[b+11>>0]=l;k=gr(m|0,l|0,24)|0;a[b+12>>0]=k;k=gr(m|0,l|0,16)|0;a[b+13>>0]=k;l=gr(m|0,l|0,8)|0;a[b+14>>0]=l;a[b+15>>0]=m;m=b+176|0;l=c[m>>2]|0;m=c[m+4>>2]|0;k=gr(l|0,m|0,56)|0;a[b+16>>0]=k;k=gr(l|0,m|0,48)|0;a[b+17>>0]=k;k=gr(l|0,m|0,40)|0;a[b+18>>0]=k;a[b+19>>0]=m;k=gr(l|0,m|0,24)|0;a[b+20>>0]=k;k=gr(l|0,m|0,16)|0;a[b+21>>0]=k;m=gr(l|0,m|0,8)|0;a[b+22>>0]=m;a[b+23>>0]=l;l=b+184|0;m=c[l>>2]|0;l=c[l+4>>2]|0;k=gr(m|0,l|0,56)|0;a[b+24>>0]=k;k=gr(m|0,l|0,48)|0;a[b+25>>0]=k;k=gr(m|0,l|0,40)|0;a[b+26>>0]=k;a[b+27>>0]=l;k=gr(m|0,l|0,24)|0;a[b+28>>0]=k;k=gr(m|0,l|0,16)|0;a[b+29>>0]=k;l=gr(m|0,l|0,8)|0;a[b+30>>0]=l;a[b+31>>0]=m;m=b+192|0;l=c[m>>2]|0;m=c[m+4>>2]|0;k=gr(l|0,m|0,56)|0;a[b+32>>0]=k;k=gr(l|0,m|0,48)|0;a[b+33>>0]=k;k=gr(l|0,m|0,40)|0;a[b+34>>0]=k;a[b+35>>0]=m;k=gr(l|0,m|0,24)|0;a[b+36>>0]=k;k=gr(l|0,m|0,16)|0;a[b+37>>0]=k;m=gr(l|0,m|0,8)|0;a[b+38>>0]=m;a[b+39>>0]=l;l=b+200|0;m=c[l>>2]|0;l=c[l+4>>2]|0;k=gr(m|0,l|0,56)|0;a[b+40>>0]=k;k=gr(m|0,l|0,48)|0;a[b+41>>0]=k;k=gr(m|0,l|0,40)|0;a[b+42>>0]=k;a[b+43>>0]=l;k=gr(m|0,l|0,24)|0;a[b+44>>0]=k;k=gr(m|0,l|0,16)|0;a[b+45>>0]=k;l=gr(m|0,l|0,8)|0;a[b+46>>0]=l;a[b+47>>0]=m;m=b+208|0;l=c[m>>2]|0;m=c[m+4>>2]|0;k=gr(l|0,m|0,56)|0;a[b+48>>0]=k;k=gr(l|0,m|0,48)|0;a[b+49>>0]=k;k=gr(l|0,m|0,40)|0;a[b+50>>0]=k;a[b+51>>0]=m;k=gr(l|0,m|0,24)|0;a[b+52>>0]=k;k=gr(l|0,m|0,16)|0;a[b+53>>0]=k;m=gr(l|0,m|0,8)|0;a[b+54>>0]=m;a[b+55>>0]=l;l=b+216|0;m=c[l>>2]|0;l=c[l+4>>2]|0;k=gr(m|0,l|0,56)|0;a[b+56>>0]=k;k=gr(m|0,l|0,48)|0;a[b+57>>0]=k;k=gr(m|0,l|0,40)|0;a[b+58>>0]=k;a[b+59>>0]=l;k=gr(m|0,l|0,24)|0;a[b+60>>0]=k;k=gr(m|0,l|0,16)|0;a[b+61>>0]=k;l=gr(m|0,l|0,8)|0;a[b+62>>0]=l;a[b+63>>0]=m;return}function dj(a){a=a|0;return a|0}function ej(a,b,c){a=a|0;b=b|0;c=c|0;switch(a|0){case 9:{a=Im(9,0,42568,3,42572,48)|0;if(!a){if(!b){c=0;return c|0}a=Im(9,0,42621,112,42734,48)|0;if(!a){a=Im(9,1,0,0,42783,48)|0;if(!a){c=0;return c|0}else b=42857}else b=42845}else b=42832;if(!c){c=50;return c|0}zb[c&1](42873,9,b,a);c=50;return c|0}case 10:{a=Im(10,0,42568,3,42880,64)|0;if(!a){if(!b){c=0;return c|0}a=Im(10,0,42621,112,42945,64)|0;if(!a){a=Im(10,1,0,0,43010,64)|0;if(!a){c=0;return c|0}else b=42857}else b=42845}else b=42832;if(!c){c=50;return c|0}zb[c&1](42873,10,b,a);c=50;return c|0}default:{c=5;return c|0}}return 0}function fj(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0;Ba=l;l=l+128|0;if((l|0)>=(m|0))$(128);ua=Ba;va=a+160|0;wa=a+168|0;xa=a+176|0;ya=a+184|0;za=a+192|0;Aa=a+200|0;ta=a+208|0;da=a+216|0;ea=ua+112|0;fa=ua+72|0;ga=ua+8|0;ha=ua+120|0;ia=ua+80|0;ja=ua+16|0;ka=ua+88|0;la=ua+24|0;ma=ua+96|0;na=ua+32|0;oa=ua+104|0;pa=ua+40|0;qa=ua+48|0;ra=ua+56|0;sa=ua+64|0;q=va;t=wa;u=xa;w=ya;g=za;i=Aa;k=ta;o=da;n=c[o>>2]|0;o=c[o+4>>2]|0;j=c[k>>2]|0;k=c[k+4>>2]|0;h=c[i>>2]|0;i=c[i+4>>2]|0;f=c[g>>2]|0;g=c[g+4>>2]|0;v=c[w>>2]|0;w=c[w+4>>2]|0;s=c[u>>2]|0;u=c[u+4>>2]|0;r=c[t>>2]|0;t=c[t+4>>2]|0;p=c[q>>2]|0;q=c[q+4>>2]|0;while(1){a=0;do{aa=b+(a<<3)|0;W=mr(d[aa>>0]|0|0,0,56)|0;ba=D;V=mr(d[aa+1>>0]|0|0,0,48)|0;ba=D|ba;X=mr(d[aa+2>>0]|0|0,0,40)|0;ba=ba|D|(d[aa+3>>0]|0);Y=mr(d[aa+4>>0]|0|0,0,24)|0;ba=ba|D;Z=mr(d[aa+5>>0]|0|0,0,16)|0;ba=ba|D;_=mr(d[aa+6>>0]|0|0,0,8)|0;ca=ua+(a<<3)|0;c[ca>>2]=V|W|X|Y|Z|_|(d[aa+7>>0]|0);c[ca+4>>2]=ba|D;a=a+1|0}while((a|0)!=16);S=ua;U=ea;Y=fa;W=ga;x=ha;B=ia;z=ja;G=ka;E=la;K=ma;I=na;O=oa;M=pa;Q=qa;aa=ra;ca=sa;Z=0;_=c[aa>>2]|0;aa=c[aa+4>>2]|0;ba=c[ca>>2]|0;ca=c[ca+4>>2]|0;R=c[S>>2]|0;S=c[S+4>>2]|0;T=c[U>>2]|0;U=c[U+4>>2]|0;V=c[W>>2]|0;W=c[W+4>>2]|0;X=c[Y>>2]|0;Y=c[Y+4>>2]|0;a=c[x>>2]|0;x=c[x+4>>2]|0;y=c[z>>2]|0;z=c[z+4>>2]|0;A=c[B>>2]|0;B=c[B+4>>2]|0;C=c[E>>2]|0;E=c[E+4>>2]|0;F=c[G>>2]|0;G=c[G+4>>2]|0;H=c[I>>2]|0;I=c[I+4>>2]|0;J=c[K>>2]|0;K=c[K+4>>2]|0;L=c[M>>2]|0;M=c[M+4>>2]|0;N=c[O>>2]|0;O=c[O+4>>2]|0;P=c[Q>>2]|0;Q=c[Q+4>>2]|0;do{Ua=gr(f|0,g|0,14)|0;$a=D;ab=mr(f|0,g|0,50)|0;$a=D|$a;Ta=gr(f|0,g|0,18)|0;Va=D;Ga=mr(f|0,g|0,46)|0;Va=$a^(D|Va);$a=gr(f|0,g|0,41)|0;Na=D;Ra=mr(f|0,g|0,23)|0;Na=Va^(D|Na);Va=72+(Z<<3)|0;Fa=c[Va>>2]|0;Va=c[Va+4>>2]|0;Ya=_q(n|0,o|0,R|0,S|0)|0;Va=_q(Ya|0,D|0,Fa|0,Va|0)|0;Va=_q(Va|0,D|0,j&~f^f&h|0,k&~g^g&i|0)|0;Na=_q(Va|0,D|0,(ab|Ua)^(Ga|Ta)^(Ra|$a)|0,Na|0)|0;$a=D;Ra=gr(T|0,U|0,19)|0;Ta=D;Ga=mr(T|0,U|0,45)|0;Ta=D|Ta;Ua=gr(T|0,U|0,61)|0;ab=D;Va=mr(T|0,U|0,3)|0;ab=D|ab;Fa=gr(T|0,U|0,6)|0;Ta=ab^D^Ta;ab=gr(V|0,W|0,1)|0;Ya=D;Ha=mr(V|0,W|0,63)|0;Ya=D|Ya;cb=gr(V|0,W|0,8)|0;Qa=D;Ea=mr(V|0,W|0,56)|0;Qa=D|Qa;La=gr(V|0,W|0,7)|0;Ya=Qa^D^Ya;Qa=_q(R|0,S|0,X|0,Y|0)|0;Ya=_q(Qa|0,D|0,(Ea|cb)^La^(Ha|ab)|0,Ya|0)|0;R=_q(Ya|0,D|0,(Va|Ua)^Fa^(Ga|Ra)|0,Ta|0)|0;S=D;Ta=gr(p|0,q|0,28)|0;Ra=D;Ga=mr(p|0,q|0,36)|0;Ra=D|Ra;Fa=gr(p|0,q|0,34)|0;Ua=D;Va=mr(p|0,q|0,30)|0;Ua=Ra^(D|Ua);Ra=gr(p|0,q|0,39)|0;Ya=D;ab=mr(p|0,q|0,25)|0;Ya=_q((s^r)&p^s&r|0,(u^t)&q^u&t|0,(Ga|Ta)^(Va|Fa)^(ab|Ra)|0,Ua^(D|Ya)|0)|0;Ua=D;Ra=_q(Na|0,$a|0,v|0,w|0)|0;ab=D;$a=_q(Ya|0,Ua|0,Na|0,$a|0)|0;Na=D;Ua=gr(Ra|0,ab|0,14)|0;Ya=D;Fa=mr(Ra|0,ab|0,50)|0;Ya=D|Ya;Va=gr(Ra|0,ab|0,18)|0;Ta=D;Ga=mr(Ra|0,ab|0,46)|0;Ta=Ya^(D|Ta);Ya=gr(Ra|0,ab|0,41)|0;Ha=D;La=mr(Ra|0,ab|0,23)|0;Ha=Ta^(D|Ha);Ta=72+((Z|1)<<3)|0;cb=c[Ta>>2]|0;Ta=c[Ta+4>>2]|0;Ea=_q(j|0,k|0,V|0,W|0)|0;Ta=_q(Ea|0,D|0,cb|0,Ta|0)|0;Ta=_q(Ta|0,D|0,h&~Ra^Ra&f|0,i&~ab^ab&g|0)|0;Ha=_q(Ta|0,D|0,(Fa|Ua)^(Ga|Va)^(La|Ya)|0,Ha|0)|0;Ya=D;La=gr(a|0,x|0,19)|0;Va=D;Ga=mr(a|0,x|0,45)|0;Va=D|Va;Ua=gr(a|0,x|0,61)|0;Fa=D;Ta=mr(a|0,x|0,3)|0;Fa=D|Fa;cb=gr(a|0,x|0,6)|0;Va=Fa^D^Va;Fa=gr(y|0,z|0,1)|0;Ea=D;Qa=mr(y|0,z|0,63)|0;Ea=D|Ea;bb=gr(y|0,z|0,8)|0;Ia=D;_a=mr(y|0,z|0,56)|0;Ia=D|Ia;Wa=gr(y|0,z|0,7)|0;Ea=Ia^D^Ea;Ia=_q(V|0,W|0,A|0,B|0)|0;Ea=_q(Ia|0,D|0,(_a|bb)^Wa^(Qa|Fa)|0,Ea|0)|0;V=_q(Ea|0,D|0,(Ta|Ua)^cb^(Ga|La)|0,Va|0)|0;W=D;Va=gr($a|0,Na|0,28)|0;La=D;Ga=mr($a|0,Na|0,36)|0;La=D|La;cb=gr($a|0,Na|0,34)|0;Ua=D;Ta=mr($a|0,Na|0,30)|0;Ua=La^(D|Ua);La=gr($a|0,Na|0,39)|0;Ea=D;Fa=mr($a|0,Na|0,25)|0;Ea=_q((Ga|Va)^(Ta|cb)^(Fa|La)|0,Ua^(D|Ea)|0,$a&(r^p)^r&p|0,Na&(t^q)^t&q|0)|0;Ua=D;La=_q(Ha|0,Ya|0,s|0,u|0)|0;Fa=D;Ya=_q(Ea|0,Ua|0,Ha|0,Ya|0)|0;Ha=D;Ua=gr(La|0,Fa|0,14)|0;Ea=D;cb=mr(La|0,Fa|0,50)|0;Ea=D|Ea;Ta=gr(La|0,Fa|0,18)|0;Va=D;Ga=mr(La|0,Fa|0,46)|0;Va=Ea^(D|Va);Ea=gr(La|0,Fa|0,41)|0;Qa=D;Wa=mr(La|0,Fa|0,23)|0;Qa=Va^(D|Qa);Va=72+((Z|2)<<3)|0;bb=c[Va>>2]|0;Va=c[Va+4>>2]|0;_a=_q(h|0,i|0,y|0,z|0)|0;Va=_q(_a|0,D|0,bb|0,Va|0)|0;Va=_q(Va|0,D|0,f&~La^La&Ra|0,g&~Fa^Fa&ab|0)|0;Qa=_q(Va|0,D|0,(cb|Ua)^(Ga|Ta)^(Wa|Ea)|0,Qa|0)|0;Ea=D;Wa=gr(R|0,S|0,19)|0;Ta=D;Ga=mr(R|0,S|0,45)|0;Ta=D|Ta;Ua=gr(R|0,S|0,61)|0;cb=D;Va=mr(R|0,S|0,3)|0;cb=D|cb;bb=gr(R|0,S|0,6)|0;Ta=cb^D^Ta;cb=gr(C|0,E|0,1)|0;_a=D;Ia=mr(C|0,E|0,63)|0;_a=D|_a;Pa=gr(C|0,E|0,8)|0;Xa=D;Za=mr(C|0,E|0,56)|0;Xa=D|Xa;Sa=gr(C|0,E|0,7)|0;_a=Xa^D^_a;Xa=_q(y|0,z|0,F|0,G|0)|0;_a=_q(Xa|0,D|0,(Za|Pa)^Sa^(Ia|cb)|0,_a|0)|0;y=_q(_a|0,D|0,(Va|Ua)^bb^(Ga|Wa)|0,Ta|0)|0;z=D;Ta=gr(Ya|0,Ha|0,28)|0;Wa=D;Ga=mr(Ya|0,Ha|0,36)|0;Wa=D|Wa;bb=gr(Ya|0,Ha|0,34)|0;Ua=D;Va=mr(Ya|0,Ha|0,30)|0;Ua=Wa^(D|Ua);Wa=gr(Ya|0,Ha|0,39)|0;_a=D;cb=mr(Ya|0,Ha|0,25)|0;_a=_q((Ga|Ta)^(Va|bb)^(cb|Wa)|0,Ua^(D|_a)|0,Ya&($a^p)^$a&p|0,Ha&(Na^q)^Na&q|0)|0;Ua=D;Wa=_q(Qa|0,Ea|0,r|0,t|0)|0;cb=D;Ea=_q(_a|0,Ua|0,Qa|0,Ea|0)|0;Qa=D;Ua=gr(Wa|0,cb|0,14)|0;_a=D;bb=mr(Wa|0,cb|0,50)|0;_a=D|_a;Va=gr(Wa|0,cb|0,18)|0;Ta=D;Ga=mr(Wa|0,cb|0,46)|0;Ta=_a^(D|Ta);_a=gr(Wa|0,cb|0,41)|0;Ia=D;Sa=mr(Wa|0,cb|0,23)|0;Ia=Ta^(D|Ia);Ta=72+((Z|3)<<3)|0;Pa=c[Ta>>2]|0;Ta=c[Ta+4>>2]|0;Za=_q(f|0,g|0,C|0,E|0)|0;Ta=_q(Za|0,D|0,Pa|0,Ta|0)|0;Ta=_q(Ta|0,D|0,Ra&~Wa^Wa&La|0,ab&~cb^cb&Fa|0)|0;Ia=_q(Ta|0,D|0,(bb|Ua)^(Ga|Va)^(Sa|_a)|0,Ia|0)|0;_a=D;Sa=gr(V|0,W|0,19)|0;Va=D;Ga=mr(V|0,W|0,45)|0;Va=D|Va;Ua=gr(V|0,W|0,61)|0;bb=D;Ta=mr(V|0,W|0,3)|0;bb=D|bb;Pa=gr(V|0,W|0,6)|0;Va=bb^D^Va;bb=gr(H|0,I|0,1)|0;Za=D;Xa=mr(H|0,I|0,63)|0;Za=D|Za;Ca=gr(H|0,I|0,8)|0;Ja=D;Ka=mr(H|0,I|0,56)|0;Ja=D|Ja;Da=gr(H|0,I|0,7)|0;Za=Ja^D^Za;Ja=_q(C|0,E|0,J|0,K|0)|0;Za=_q(Ja|0,D|0,(Ka|Ca)^Da^(Xa|bb)|0,Za|0)|0;C=_q(Za|0,D|0,(Ta|Ua)^Pa^(Ga|Sa)|0,Va|0)|0;E=D;Va=gr(Ea|0,Qa|0,28)|0;Sa=D;Ga=mr(Ea|0,Qa|0,36)|0;Sa=D|Sa;Pa=gr(Ea|0,Qa|0,34)|0;Ua=D;Ta=mr(Ea|0,Qa|0,30)|0;Ua=Sa^(D|Ua);Sa=gr(Ea|0,Qa|0,39)|0;Za=D;bb=mr(Ea|0,Qa|0,25)|0;Za=_q((Ga|Va)^(Ta|Pa)^(bb|Sa)|0,Ua^(D|Za)|0,Ea&(Ya^$a)^Ya&$a|0,Qa&(Ha^Na)^Ha&Na|0)|0;Ua=D;Sa=_q(Ia|0,_a|0,p|0,q|0)|0;bb=D;_a=_q(Za|0,Ua|0,Ia|0,_a|0)|0;Ia=D;Ua=gr(Sa|0,bb|0,14)|0;Za=D;Pa=mr(Sa|0,bb|0,50)|0;Za=D|Za;Ta=gr(Sa|0,bb|0,18)|0;Va=D;Ga=mr(Sa|0,bb|0,46)|0;Va=Za^(D|Va);Za=gr(Sa|0,bb|0,41)|0;Xa=D;Da=mr(Sa|0,bb|0,23)|0;Xa=Va^(D|Xa);Va=72+((Z|4)<<3)|0;Va=_q(c[Va>>2]|0,c[Va+4>>2]|0,H|0,I|0)|0;ab=_q(Va|0,D|0,Ra|0,ab|0)|0;ab=_q(ab|0,D|0,La&~Sa^Sa&Wa|0,Fa&~bb^bb&cb|0)|0;Xa=_q(ab|0,D|0,(Pa|Ua)^(Ga|Ta)^(Da|Za)|0,Xa|0)|0;Za=D;Da=gr(y|0,z|0,19)|0;Ta=D;Ga=mr(y|0,z|0,45)|0;Ta=D|Ta;Ua=gr(y|0,z|0,61)|0;Pa=D;ab=mr(y|0,z|0,3)|0;Pa=D|Pa;Ra=gr(y|0,z|0,6)|0;Ta=Pa^D^Ta;Pa=gr(L|0,M|0,1)|0;Va=D;Ca=mr(L|0,M|0,63)|0;Va=D|Va;Ka=gr(L|0,M|0,8)|0;Ja=D;Ma=mr(L|0,M|0,56)|0;Ja=D|Ja;Oa=gr(L|0,M|0,7)|0;Va=Ja^D^Va;Ja=_q(H|0,I|0,N|0,O|0)|0;Va=_q(Ja|0,D|0,(Ma|Ka)^Oa^(Ca|Pa)|0,Va|0)|0;H=_q(Va|0,D|0,(ab|Ua)^Ra^(Ga|Da)|0,Ta|0)|0;I=D;Ta=gr(_a|0,Ia|0,28)|0;Da=D;Ga=mr(_a|0,Ia|0,36)|0;Da=D|Da;Ra=gr(_a|0,Ia|0,34)|0;Ua=D;ab=mr(_a|0,Ia|0,30)|0;Ua=Da^(D|Ua);Da=gr(_a|0,Ia|0,39)|0;Va=D;Pa=mr(_a|0,Ia|0,25)|0;Va=_q((Ga|Ta)^(ab|Ra)^(Pa|Da)|0,Ua^(D|Va)|0,_a&(Ea^Ya)^Ea&Ya|0,Ia&(Qa^Ha)^Qa&Ha|0)|0;Ua=D;Na=_q(Xa|0,Za|0,$a|0,Na|0)|0;$a=D;Za=_q(Va|0,Ua|0,Xa|0,Za|0)|0;Xa=D;Ua=gr(Na|0,$a|0,14)|0;Va=D;Da=mr(Na|0,$a|0,50)|0;Va=D|Va;Pa=gr(Na|0,$a|0,18)|0;Ra=D;ab=mr(Na|0,$a|0,46)|0;Ra=Va^(D|Ra);Va=gr(Na|0,$a|0,41)|0;Ta=D;Ga=mr(Na|0,$a|0,23)|0;Ta=Ra^(D|Ta);Ra=72+((Z|5)<<3)|0;Ra=_q(c[Ra>>2]|0,c[Ra+4>>2]|0,L|0,M|0)|0;Fa=_q(Ra|0,D|0,La|0,Fa|0)|0;Fa=_q(Fa|0,D|0,Wa&~Na^Na&Sa|0,cb&~$a^$a&bb|0)|0;Ta=_q(Fa|0,D|0,(Da|Ua)^(ab|Pa)^(Ga|Va)|0,Ta|0)|0;Va=D;Ga=gr(C|0,E|0,19)|0;Pa=D;ab=mr(C|0,E|0,45)|0;Pa=D|Pa;Ua=gr(C|0,E|0,61)|0;Da=D;Fa=mr(C|0,E|0,3)|0;Da=D|Da;La=gr(C|0,E|0,6)|0;Pa=Da^D^Pa;Da=gr(P|0,Q|0,1)|0;Ra=D;Ca=mr(P|0,Q|0,63)|0;Ra=D|Ra;Oa=gr(P|0,Q|0,8)|0;Ka=D;Ma=mr(P|0,Q|0,56)|0;Ka=D|Ka;Ja=gr(P|0,Q|0,7)|0;Ra=_q((Ma|Oa)^Ja^(Ca|Da)|0,Ka^D^Ra|0,L|0,M|0)|0;Ra=_q(Ra|0,D|0,T|0,U|0)|0;L=_q(Ra|0,D|0,(Fa|Ua)^La^(ab|Ga)|0,Pa|0)|0;M=D;Pa=gr(Za|0,Xa|0,28)|0;Ga=D;ab=mr(Za|0,Xa|0,36)|0;Ga=D|Ga;La=gr(Za|0,Xa|0,34)|0;Ua=D;Fa=mr(Za|0,Xa|0,30)|0;Ua=Ga^(D|Ua);Ga=gr(Za|0,Xa|0,39)|0;Ra=D;Ka=mr(Za|0,Xa|0,25)|0;Ra=_q((ab|Pa)^(Fa|La)^(Ka|Ga)|0,Ua^(D|Ra)|0,Za&(_a^Ea)^_a&Ea|0,Xa&(Ia^Qa)^Ia&Qa|0)|0;Ua=D;Ha=_q(Ta|0,Va|0,Ya|0,Ha|0)|0;Ya=D;Va=_q(Ra|0,Ua|0,Ta|0,Va|0)|0;Ta=D;Ua=gr(Ha|0,Ya|0,14)|0;Ra=D;Ga=mr(Ha|0,Ya|0,50)|0;Ra=D|Ra;Ka=gr(Ha|0,Ya|0,18)|0;La=D;Fa=mr(Ha|0,Ya|0,46)|0;La=Ra^(D|La);Ra=gr(Ha|0,Ya|0,41)|0;Pa=D;ab=mr(Ha|0,Ya|0,23)|0;Pa=La^(D|Pa);La=72+((Z|6)<<3)|0;La=_q(c[La>>2]|0,c[La+4>>2]|0,P|0,Q|0)|0;cb=_q(La|0,D|0,Wa|0,cb|0)|0;cb=_q(cb|0,D|0,Sa&~Ha^Ha&Na|0,bb&~Ya^Ya&$a|0)|0;Pa=_q(cb|0,D|0,(Ga|Ua)^(Fa|Ka)^(ab|Ra)|0,Pa|0)|0;Ra=D;ab=gr(H|0,I|0,19)|0;Ka=D;Fa=mr(H|0,I|0,45)|0;Ka=D|Ka;Ua=gr(H|0,I|0,61)|0;Ga=D;cb=mr(H|0,I|0,3)|0;Ga=D|Ga;Wa=gr(H|0,I|0,6)|0;Ka=Ga^D^Ka;Ga=gr(_|0,aa|0,1)|0;La=D;Da=mr(_|0,aa|0,63)|0;La=D|La;Ca=gr(_|0,aa|0,8)|0;Ja=D;Oa=mr(_|0,aa|0,56)|0;Ja=D|Ja;Ma=gr(_|0,aa|0,7)|0;La=_q((Oa|Ca)^Ma^(Da|Ga)|0,Ja^D^La|0,P|0,Q|0)|0;La=_q(La|0,D|0,a|0,x|0)|0;P=_q(La|0,D|0,(cb|Ua)^Wa^(Fa|ab)|0,Ka|0)|0;Q=D;Ka=gr(Va|0,Ta|0,28)|0;ab=D;Fa=mr(Va|0,Ta|0,36)|0;ab=D|ab;Wa=gr(Va|0,Ta|0,34)|0;Ua=D;cb=mr(Va|0,Ta|0,30)|0;Ua=ab^(D|Ua);ab=gr(Va|0,Ta|0,39)|0;La=D;Ja=mr(Va|0,Ta|0,25)|0;La=_q((Fa|Ka)^(cb|Wa)^(Ja|ab)|0,Ua^(D|La)|0,Va&(Za^_a)^Za&_a|0,Ta&(Xa^Ia)^Xa&Ia|0)|0;Ua=D;Qa=_q(Pa|0,Ra|0,Ea|0,Qa|0)|0;Ea=D;Ra=_q(La|0,Ua|0,Pa|0,Ra|0)|0;Pa=D;Ua=gr(Qa|0,Ea|0,14)|0;La=D;ab=mr(Qa|0,Ea|0,50)|0;La=D|La;Ja=gr(Qa|0,Ea|0,18)|0;Wa=D;cb=mr(Qa|0,Ea|0,46)|0;Wa=La^(D|Wa);La=gr(Qa|0,Ea|0,41)|0;Ka=D;Fa=mr(Qa|0,Ea|0,23)|0;Ka=Wa^(D|Ka);Wa=72+((Z|7)<<3)|0;Wa=_q(c[Wa>>2]|0,c[Wa+4>>2]|0,_|0,aa|0)|0;bb=_q(Wa|0,D|0,Sa|0,bb|0)|0;bb=_q(bb|0,D|0,Na&~Qa^Qa&Ha|0,$a&~Ea^Ea&Ya|0)|0;Ka=_q(bb|0,D|0,(ab|Ua)^(cb|Ja)^(Fa|La)|0,Ka|0)|0;La=D;Fa=gr(L|0,M|0,19)|0;Ja=D;cb=mr(L|0,M|0,45)|0;Ja=D|Ja;Ua=gr(L|0,M|0,61)|0;ab=D;bb=mr(L|0,M|0,3)|0;ab=D|ab;Sa=gr(L|0,M|0,6)|0;Ja=ab^D^Ja;ab=gr(ba|0,ca|0,1)|0;Wa=D;Ga=mr(ba|0,ca|0,63)|0;Wa=D|Wa;Da=gr(ba|0,ca|0,8)|0;Ma=D;Ca=mr(ba|0,ca|0,56)|0;Ma=D|Ma;Oa=gr(ba|0,ca|0,7)|0;Wa=_q((Ca|Da)^Oa^(Ga|ab)|0,Ma^D^Wa|0,_|0,aa|0)|0;Wa=_q(Wa|0,D|0,R|0,S|0)|0;_=_q(Wa|0,D|0,(bb|Ua)^Sa^(cb|Fa)|0,Ja|0)|0;aa=D;Ja=gr(Ra|0,Pa|0,28)|0;Fa=D;cb=mr(Ra|0,Pa|0,36)|0;Fa=D|Fa;Sa=gr(Ra|0,Pa|0,34)|0;Ua=D;bb=mr(Ra|0,Pa|0,30)|0;Ua=Fa^(D|Ua);Fa=gr(Ra|0,Pa|0,39)|0;Wa=D;Ma=mr(Ra|0,Pa|0,25)|0;Wa=_q((cb|Ja)^(bb|Sa)^(Ma|Fa)|0,Ua^(D|Wa)|0,Ra&(Va^Za)^Va&Za|0,Pa&(Ta^Xa)^Ta&Xa|0)|0;Ua=D;Ia=_q(Ka|0,La|0,_a|0,Ia|0)|0;_a=D;La=_q(Wa|0,Ua|0,Ka|0,La|0)|0;Ka=D;Ua=gr(Ia|0,_a|0,14)|0;Wa=D;Fa=mr(Ia|0,_a|0,50)|0;Wa=D|Wa;Ma=gr(Ia|0,_a|0,18)|0;Sa=D;bb=mr(Ia|0,_a|0,46)|0;Sa=Wa^(D|Sa);Wa=gr(Ia|0,_a|0,41)|0;Ja=D;cb=mr(Ia|0,_a|0,23)|0;Ja=Sa^(D|Ja);Sa=72+((Z|8)<<3)|0;Sa=_q(c[Sa>>2]|0,c[Sa+4>>2]|0,ba|0,ca|0)|0;$a=_q(Sa|0,D|0,Na|0,$a|0)|0;$a=_q($a|0,D|0,Ha&~Ia^Ia&Qa|0,Ya&~_a^_a&Ea|0)|0;Ja=_q($a|0,D|0,(Fa|Ua)^(bb|Ma)^(cb|Wa)|0,Ja|0)|0;Wa=D;cb=gr(P|0,Q|0,19)|0;Ma=D;bb=mr(P|0,Q|0,45)|0;Ma=D|Ma;Ua=gr(P|0,Q|0,61)|0;Fa=D;$a=mr(P|0,Q|0,3)|0;Fa=D|Fa;Na=gr(P|0,Q|0,6)|0;Ma=Fa^D^Ma;Fa=gr(X|0,Y|0,1)|0;Sa=D;ab=mr(X|0,Y|0,63)|0;Sa=D|Sa;Ga=gr(X|0,Y|0,8)|0;Oa=D;Da=mr(X|0,Y|0,56)|0;Oa=D|Oa;Ca=gr(X|0,Y|0,7)|0;Sa=Oa^D^Sa;Oa=_q(V|0,W|0,ba|0,ca|0)|0;Sa=_q(Oa|0,D|0,(Da|Ga)^Ca^(ab|Fa)|0,Sa|0)|0;ba=_q(Sa|0,D|0,($a|Ua)^Na^(bb|cb)|0,Ma|0)|0;ca=D;Ma=gr(La|0,Ka|0,28)|0;cb=D;bb=mr(La|0,Ka|0,36)|0;cb=D|cb;Na=gr(La|0,Ka|0,34)|0;Ua=D;$a=mr(La|0,Ka|0,30)|0;Ua=cb^(D|Ua);cb=gr(La|0,Ka|0,39)|0;Sa=D;Fa=mr(La|0,Ka|0,25)|0;Sa=_q((bb|Ma)^($a|Na)^(Fa|cb)|0,Ua^(D|Sa)|0,La&(Ra^Va)^Ra&Va|0,Ka&(Pa^Ta)^Pa&Ta|0)|0;Ua=D;Xa=_q(Ja|0,Wa|0,Za|0,Xa|0)|0;Za=D;Wa=_q(Sa|0,Ua|0,Ja|0,Wa|0)|0;Ja=D;Ua=gr(Xa|0,Za|0,14)|0;Sa=D;cb=mr(Xa|0,Za|0,50)|0;Sa=D|Sa;Fa=gr(Xa|0,Za|0,18)|0;Na=D;$a=mr(Xa|0,Za|0,46)|0;Na=Sa^(D|Na);Sa=gr(Xa|0,Za|0,41)|0;Ma=D;bb=mr(Xa|0,Za|0,23)|0;Ma=Na^(D|Ma);Na=72+((Z|9)<<3)|0;Na=_q(c[Na>>2]|0,c[Na+4>>2]|0,X|0,Y|0)|0;Ya=_q(Na|0,D|0,Ha|0,Ya|0)|0;Ya=_q(Ya|0,D|0,Qa&~Xa^Xa&Ia|0,Ea&~Za^Za&_a|0)|0;Ma=_q(Ya|0,D|0,(cb|Ua)^($a|Fa)^(bb|Sa)|0,Ma|0)|0;Sa=D;bb=gr(_|0,aa|0,19)|0;Fa=D;$a=mr(_|0,aa|0,45)|0;Fa=D|Fa;Ua=gr(_|0,aa|0,61)|0;cb=D;Ya=mr(_|0,aa|0,3)|0;cb=D|cb;Ha=gr(_|0,aa|0,6)|0;Fa=cb^D^Fa;cb=gr(A|0,B|0,1)|0;Na=D;ab=mr(A|0,B|0,63)|0;Na=D|Na;Ca=gr(A|0,B|0,8)|0;Ga=D;Da=mr(A|0,B|0,56)|0;Ga=D|Ga;Oa=gr(A|0,B|0,7)|0;Na=_q((Da|Ca)^Oa^(ab|cb)|0,Ga^D^Na|0,X|0,Y|0)|0;Na=_q(Na|0,D|0,y|0,z|0)|0;X=_q(Na|0,D|0,(Ya|Ua)^Ha^($a|bb)|0,Fa|0)|0;Y=D;Fa=gr(Wa|0,Ja|0,28)|0;bb=D;$a=mr(Wa|0,Ja|0,36)|0;bb=D|bb;Ha=gr(Wa|0,Ja|0,34)|0;Ua=D;Ya=mr(Wa|0,Ja|0,30)|0;Ua=bb^(D|Ua);bb=gr(Wa|0,Ja|0,39)|0;Na=D;Ga=mr(Wa|0,Ja|0,25)|0;Na=_q(($a|Fa)^(Ya|Ha)^(Ga|bb)|0,Ua^(D|Na)|0,Wa&(La^Ra)^La&Ra|0,Ja&(Ka^Pa)^Ka&Pa|0)|0;Ua=D;Ta=_q(Ma|0,Sa|0,Va|0,Ta|0)|0;Va=D;Sa=_q(Na|0,Ua|0,Ma|0,Sa|0)|0;Ma=D;Ua=gr(Ta|0,Va|0,14)|0;Na=D;bb=mr(Ta|0,Va|0,50)|0;Na=D|Na;Ga=gr(Ta|0,Va|0,18)|0;Ha=D;Ya=mr(Ta|0,Va|0,46)|0;Ha=Na^(D|Ha);Na=gr(Ta|0,Va|0,41)|0;Fa=D;$a=mr(Ta|0,Va|0,23)|0;Fa=Ha^(D|Fa);Ha=72+((Z|10)<<3)|0;Ha=_q(c[Ha>>2]|0,c[Ha+4>>2]|0,A|0,B|0)|0;Ea=_q(Ha|0,D|0,Qa|0,Ea|0)|0;Ea=_q(Ea|0,D|0,Ia&~Ta^Ta&Xa|0,_a&~Va^Va&Za|0)|0;Fa=_q(Ea|0,D|0,(bb|Ua)^(Ya|Ga)^($a|Na)|0,Fa|0)|0;Na=D;$a=gr(ba|0,ca|0,19)|0;Ga=D;Ya=mr(ba|0,ca|0,45)|0;Ga=D|Ga;Ua=gr(ba|0,ca|0,61)|0;bb=D;Ea=mr(ba|0,ca|0,3)|0;bb=D|bb;Qa=gr(ba|0,ca|0,6)|0;Ga=bb^D^Ga;bb=gr(F|0,G|0,1)|0;Ha=D;cb=mr(F|0,G|0,63)|0;Ha=D|Ha;ab=gr(F|0,G|0,8)|0;Oa=D;Ca=mr(F|0,G|0,56)|0;Oa=D|Oa;Da=gr(F|0,G|0,7)|0;Ha=_q((Ca|ab)^Da^(cb|bb)|0,Oa^D^Ha|0,A|0,B|0)|0;Ha=_q(Ha|0,D|0,C|0,E|0)|0;A=_q(Ha|0,D|0,(Ea|Ua)^Qa^(Ya|$a)|0,Ga|0)|0;B=D;Ga=gr(Sa|0,Ma|0,28)|0;$a=D;Ya=mr(Sa|0,Ma|0,36)|0;$a=D|$a;Qa=gr(Sa|0,Ma|0,34)|0;Ua=D;Ea=mr(Sa|0,Ma|0,30)|0;Ua=$a^(D|Ua);$a=gr(Sa|0,Ma|0,39)|0;Ha=D;Oa=mr(Sa|0,Ma|0,25)|0;Ha=_q((Ya|Ga)^(Ea|Qa)^(Oa|$a)|0,Ua^(D|Ha)|0,Sa&(Wa^La)^Wa&La|0,Ma&(Ja^Ka)^Ja&Ka|0)|0;Ua=D;Pa=_q(Fa|0,Na|0,Ra|0,Pa|0)|0;Ra=D;Na=_q(Ha|0,Ua|0,Fa|0,Na|0)|0;Fa=D;Ua=gr(Pa|0,Ra|0,14)|0;Ha=D;$a=mr(Pa|0,Ra|0,50)|0;Ha=D|Ha;Oa=gr(Pa|0,Ra|0,18)|0;Qa=D;Ea=mr(Pa|0,Ra|0,46)|0;Qa=Ha^(D|Qa);Ha=gr(Pa|0,Ra|0,41)|0;Ga=D;Ya=mr(Pa|0,Ra|0,23)|0;Ga=Qa^(D|Ga);Qa=72+((Z|11)<<3)|0;Qa=_q(c[Qa>>2]|0,c[Qa+4>>2]|0,F|0,G|0)|0;_a=_q(Qa|0,D|0,Ia|0,_a|0)|0;_a=_q(_a|0,D|0,Xa&~Pa^Pa&Ta|0,Za&~Ra^Ra&Va|0)|0;Ga=_q(_a|0,D|0,($a|Ua)^(Ea|Oa)^(Ya|Ha)|0,Ga|0)|0;Ha=D;Ya=gr(X|0,Y|0,19)|0;Oa=D;Ea=mr(X|0,Y|0,45)|0;Oa=D|Oa;Ua=gr(X|0,Y|0,61)|0;$a=D;_a=mr(X|0,Y|0,3)|0;$a=D|$a;Ia=gr(X|0,Y|0,6)|0;Oa=$a^D^Oa;$a=gr(J|0,K|0,1)|0;Qa=D;bb=mr(J|0,K|0,63)|0;Qa=D|Qa;cb=gr(J|0,K|0,8)|0;Da=D;ab=mr(J|0,K|0,56)|0;Da=D|Da;Ca=gr(J|0,K|0,7)|0;Qa=_q((ab|cb)^Ca^(bb|$a)|0,Da^D^Qa|0,F|0,G|0)|0;Qa=_q(Qa|0,D|0,H|0,I|0)|0;F=_q(Qa|0,D|0,(_a|Ua)^Ia^(Ea|Ya)|0,Oa|0)|0;G=D;Oa=gr(Na|0,Fa|0,28)|0;Ya=D;Ea=mr(Na|0,Fa|0,36)|0;Ya=D|Ya;Ia=gr(Na|0,Fa|0,34)|0;Ua=D;_a=mr(Na|0,Fa|0,30)|0;Ua=Ya^(D|Ua);Ya=gr(Na|0,Fa|0,39)|0;Qa=D;Da=mr(Na|0,Fa|0,25)|0;Qa=_q((Ea|Oa)^(_a|Ia)^(Da|Ya)|0,Ua^(D|Qa)|0,Na&(Sa^Wa)^Sa&Wa|0,Fa&(Ma^Ja)^Ma&Ja|0)|0;Ua=D;Ka=_q(Ga|0,Ha|0,La|0,Ka|0)|0;La=D;Ha=_q(Qa|0,Ua|0,Ga|0,Ha|0)|0;Ga=D;Ua=gr(Ka|0,La|0,14)|0;Qa=D;Ya=mr(Ka|0,La|0,50)|0;Qa=D|Qa;Da=gr(Ka|0,La|0,18)|0;Ia=D;_a=mr(Ka|0,La|0,46)|0;Ia=Qa^(D|Ia);Qa=gr(Ka|0,La|0,41)|0;Oa=D;Ea=mr(Ka|0,La|0,23)|0;Oa=Ia^(D|Oa);Ia=72+((Z|12)<<3)|0;Ia=_q(c[Ia>>2]|0,c[Ia+4>>2]|0,J|0,K|0)|0;Za=_q(Ia|0,D|0,Xa|0,Za|0)|0;Za=_q(Za|0,D|0,Ta&~Ka^Ka&Pa|0,Va&~La^La&Ra|0)|0;Oa=_q(Za|0,D|0,(Ya|Ua)^(_a|Da)^(Ea|Qa)|0,Oa|0)|0;Qa=D;Ea=gr(A|0,B|0,19)|0;Da=D;_a=mr(A|0,B|0,45)|0;Da=D|Da;Ua=gr(A|0,B|0,61)|0;Ya=D;Za=mr(A|0,B|0,3)|0;Ya=D|Ya;Xa=gr(A|0,B|0,6)|0;Da=Ya^D^Da;Ya=gr(N|0,O|0,1)|0;Ia=D;$a=mr(N|0,O|0,63)|0;Ia=D|Ia;bb=gr(N|0,O|0,8)|0;Ca=D;cb=mr(N|0,O|0,56)|0;Ca=D|Ca;ab=gr(N|0,O|0,7)|0;Ia=_q((cb|bb)^ab^($a|Ya)|0,Ca^D^Ia|0,J|0,K|0)|0;Ia=_q(Ia|0,D|0,L|0,M|0)|0;J=_q(Ia|0,D|0,(Za|Ua)^Xa^(_a|Ea)|0,Da|0)|0;K=D;Da=gr(Ha|0,Ga|0,28)|0;Ea=D;_a=mr(Ha|0,Ga|0,36)|0;Ea=D|Ea;Xa=gr(Ha|0,Ga|0,34)|0;Ua=D;Za=mr(Ha|0,Ga|0,30)|0;Ua=Ea^(D|Ua);Ea=gr(Ha|0,Ga|0,39)|0;Ia=D;Ca=mr(Ha|0,Ga|0,25)|0;Ia=_q((_a|Da)^(Za|Xa)^(Ca|Ea)|0,Ua^(D|Ia)|0,Ha&(Na^Sa)^Na&Sa|0,Ga&(Fa^Ma)^Fa&Ma|0)|0;Ua=D;n=_q(Oa|0,Qa|0,Wa|0,Ja|0)|0;o=D;v=_q(Ia|0,Ua|0,Oa|0,Qa|0)|0;w=D;Qa=gr(n|0,o|0,14)|0;Oa=D;Ua=mr(n|0,o|0,50)|0;Oa=D|Oa;Ia=gr(n|0,o|0,18)|0;Ja=D;Wa=mr(n|0,o|0,46)|0;Ja=Oa^(D|Ja);Oa=gr(n|0,o|0,41)|0;Ea=D;Ca=mr(n|0,o|0,23)|0;Ea=Ja^(D|Ea);Ja=72+((Z|13)<<3)|0;Ja=_q(c[Ja>>2]|0,c[Ja+4>>2]|0,N|0,O|0)|0;Va=_q(Ja|0,D|0,Ta|0,Va|0)|0;Va=_q(Va|0,D|0,Pa&~n^n&Ka|0,Ra&~o^o&La|0)|0;Ea=_q(Va|0,D|0,(Ua|Qa)^(Wa|Ia)^(Ca|Oa)|0,Ea|0)|0;Oa=D;Ca=gr(F|0,G|0,19)|0;Ia=D;Wa=mr(F|0,G|0,45)|0;Ia=D|Ia;Qa=gr(F|0,G|0,61)|0;Ua=D;Va=mr(F|0,G|0,3)|0;Ua=D|Ua;Ta=gr(F|0,G|0,6)|0;Ia=Ua^D^Ia;Ua=gr(T|0,U|0,1)|0;Ja=D;Xa=mr(T|0,U|0,63)|0;Ja=D|Ja;Za=gr(T|0,U|0,8)|0;Da=D;_a=mr(T|0,U|0,56)|0;Da=D|Da;Ya=gr(T|0,U|0,7)|0;Ja=_q((_a|Za)^Ya^(Xa|Ua)|0,Da^D^Ja|0,N|0,O|0)|0;Ja=_q(Ja|0,D|0,P|0,Q|0)|0;N=_q(Ja|0,D|0,(Va|Qa)^Ta^(Wa|Ca)|0,Ia|0)|0;O=D;Ia=gr(v|0,w|0,28)|0;Ca=D;Wa=mr(v|0,w|0,36)|0;Ca=D|Ca;Ta=gr(v|0,w|0,34)|0;Qa=D;Va=mr(v|0,w|0,30)|0;Qa=Ca^(D|Qa);Ca=gr(v|0,w|0,39)|0;Ja=D;Da=mr(v|0,w|0,25)|0;Ja=_q((Wa|Ia)^(Va|Ta)^(Da|Ca)|0,Qa^(D|Ja)|0,v&(Ha^Na)^Ha&Na|0,w&(Ga^Fa)^Ga&Fa|0)|0;Qa=D;j=_q(Ea|0,Oa|0,Sa|0,Ma|0)|0;k=D;s=_q(Ja|0,Qa|0,Ea|0,Oa|0)|0;u=D;Oa=gr(j|0,k|0,14)|0;Ea=D;Qa=mr(j|0,k|0,50)|0;Ea=D|Ea;Ja=gr(j|0,k|0,18)|0;Ma=D;Sa=mr(j|0,k|0,46)|0;Ma=Ea^(D|Ma);Ea=gr(j|0,k|0,41)|0;Ca=D;Da=mr(j|0,k|0,23)|0;Ca=Ma^(D|Ca);Ma=72+((Z|14)<<3)|0;Ma=_q(c[Ma>>2]|0,c[Ma+4>>2]|0,T|0,U|0)|0;Ra=_q(Ma|0,D|0,Pa|0,Ra|0)|0;Ra=_q(Ra|0,D|0,Ka&~j^j&n|0,La&~k^k&o|0)|0;Ca=_q(Ra|0,D|0,(Qa|Oa)^(Sa|Ja)^(Da|Ea)|0,Ca|0)|0;Ea=D;Da=gr(J|0,K|0,19)|0;Ja=D;Sa=mr(J|0,K|0,45)|0;Ja=D|Ja;Oa=gr(J|0,K|0,61)|0;Qa=D;Ra=mr(J|0,K|0,3)|0;Qa=D|Qa;Pa=gr(J|0,K|0,6)|0;Ja=Qa^D^Ja;Qa=gr(a|0,x|0,1)|0;Ma=D;Ta=mr(a|0,x|0,63)|0;Ma=D|Ma;Va=gr(a|0,x|0,8)|0;Ia=D;Wa=mr(a|0,x|0,56)|0;Ia=D|Ia;Ua=gr(a|0,x|0,7)|0;Ma=_q((Wa|Va)^Ua^(Ta|Qa)|0,Ia^D^Ma|0,T|0,U|0)|0;Ma=_q(Ma|0,D|0,_|0,aa|0)|0;T=_q(Ma|0,D|0,(Ra|Oa)^Pa^(Sa|Da)|0,Ja|0)|0;U=D;Ja=gr(s|0,u|0,28)|0;Da=D;Sa=mr(s|0,u|0,36)|0;Da=D|Da;Pa=gr(s|0,u|0,34)|0;Oa=D;Ra=mr(s|0,u|0,30)|0;Oa=Da^(D|Oa);Da=gr(s|0,u|0,39)|0;Ma=D;Ia=mr(s|0,u|0,25)|0;Ma=_q((Sa|Ja)^(Ra|Pa)^(Ia|Da)|0,Oa^(D|Ma)|0,s&(v^Ha)^v&Ha|0,u&(w^Ga)^w&Ga|0)|0;Oa=D;h=_q(Ca|0,Ea|0,Na|0,Fa|0)|0;i=D;r=_q(Ma|0,Oa|0,Ca|0,Ea|0)|0;t=D;Ea=gr(h|0,i|0,14)|0;Ca=D;Oa=mr(h|0,i|0,50)|0;Ca=D|Ca;Ma=gr(h|0,i|0,18)|0;Fa=D;Na=mr(h|0,i|0,46)|0;Fa=Ca^(D|Fa);Ca=gr(h|0,i|0,41)|0;Da=D;Ia=mr(h|0,i|0,23)|0;Da=Fa^(D|Da);Fa=72+((Z|15)<<3)|0;Fa=_q(c[Fa>>2]|0,c[Fa+4>>2]|0,a|0,x|0)|0;La=_q(Fa|0,D|0,Ka|0,La|0)|0;La=_q(La|0,D|0,n&~h^h&j|0,o&~i^i&k|0)|0;Da=_q(La|0,D|0,(Oa|Ea)^(Na|Ma)^(Ia|Ca)|0,Da|0)|0;Ca=D;Ia=gr(N|0,O|0,19)|0;Ma=D;Na=mr(N|0,O|0,45)|0;Ma=D|Ma;Ea=gr(N|0,O|0,61)|0;Oa=D;La=mr(N|0,O|0,3)|0;Oa=D|Oa;Ka=gr(N|0,O|0,6)|0;Ma=Oa^D^Ma;Oa=gr(R|0,S|0,1)|0;Fa=D;Pa=mr(R|0,S|0,63)|0;Fa=D|Fa;Ra=gr(R|0,S|0,8)|0;Ja=D;Sa=mr(R|0,S|0,56)|0;Ja=D|Ja;Qa=gr(R|0,S|0,7)|0;Fa=_q((Sa|Ra)^Qa^(Pa|Oa)|0,Ja^D^Fa|0,a|0,x|0)|0;Fa=_q(Fa|0,D|0,ba|0,ca|0)|0;a=_q(Fa|0,D|0,(La|Ea)^Ka^(Na|Ia)|0,Ma|0)|0;x=D;Ma=gr(r|0,t|0,28)|0;Ia=D;Na=mr(r|0,t|0,36)|0;Ia=D|Ia;Ka=gr(r|0,t|0,34)|0;Ea=D;La=mr(r|0,t|0,30)|0;Ea=Ia^(D|Ea);Ia=gr(r|0,t|0,39)|0;Fa=D;Ja=mr(r|0,t|0,25)|0;Fa=_q((Na|Ma)^(La|Ka)^(Ja|Ia)|0,Ea^(D|Fa)|0,r&(s^v)^s&v|0,t&(u^w)^u&w|0)|0;Ea=D;f=_q(Da|0,Ca|0,Ha|0,Ga|0)|0;g=D;p=_q(Fa|0,Ea|0,Da|0,Ca|0)|0;q=D;Z=Z+16|0}while((Z|0)<64);Za=ua;c[Za>>2]=R;c[Za+4>>2]=S;Za=ea;c[Za>>2]=T;c[Za+4>>2]=U;Za=fa;c[Za>>2]=X;c[Za+4>>2]=Y;Za=ga;c[Za>>2]=V;c[Za+4>>2]=W;Za=ha;c[Za>>2]=a;c[Za+4>>2]=x;Za=ia;c[Za>>2]=A;c[Za+4>>2]=B;Za=ja;c[Za>>2]=y;c[Za+4>>2]=z;Za=ka;c[Za>>2]=F;c[Za+4>>2]=G;Za=la;c[Za>>2]=C;c[Za+4>>2]=E;Za=ma;c[Za>>2]=J;c[Za+4>>2]=K;Za=na;c[Za>>2]=H;c[Za+4>>2]=I;Za=oa;c[Za>>2]=N;c[Za+4>>2]=O;Za=pa;c[Za>>2]=L;c[Za+4>>2]=M;Za=qa;c[Za>>2]=P;c[Za+4>>2]=Q;Za=ra;c[Za>>2]=_;c[Za+4>>2]=aa;Za=sa;c[Za>>2]=ba;c[Za+4>>2]=ca;Za=gr(f|0,g|0,14)|0;$a=D;_a=mr(f|0,g|0,50)|0;$a=D|$a;Xa=gr(f|0,g|0,18)|0;bb=D;ab=mr(f|0,g|0,46)|0;bb=$a^(D|bb);$a=gr(f|0,g|0,41)|0;cb=D;Ya=mr(f|0,g|0,23)|0;cb=bb^(D|cb);bb=_q(R|0,S|0,-366583396,-903397682)|0;n=_q(bb|0,D|0,n|0,o|0)|0;n=_q(n|0,D|0,j&~f^f&h|0,k&~g^g&i|0)|0;cb=_q(n|0,D|0,(_a|Za)^(ab|Xa)^(Ya|$a)|0,cb|0)|0;$a=D;n=gr(p|0,q|0,28)|0;Ya=D;Xa=mr(p|0,q|0,36)|0;Ya=D|Ya;ab=gr(p|0,q|0,34)|0;Za=D;o=mr(p|0,q|0,30)|0;Za=Ya^(D|Za);Ya=gr(p|0,q|0,39)|0;_a=D;bb=mr(p|0,q|0,25)|0;_a=_q((Xa|n)^(o|ab)^(bb|Ya)|0,Za^(D|_a)|0,p&(r^s)^r&s|0,q&(t^u)^t&u|0)|0;Za=D;Ya=_q(cb|0,$a|0,v|0,w|0)|0;bb=D;$a=_q(_a|0,Za|0,cb|0,$a|0)|0;cb=D;Za=gr(Ya|0,bb|0,14)|0;_a=D;ab=mr(Ya|0,bb|0,50)|0;_a=D|_a;w=gr(Ya|0,bb|0,18)|0;o=D;n=mr(Ya|0,bb|0,46)|0;o=_a^(D|o);_a=gr(Ya|0,bb|0,41)|0;v=D;Xa=mr(Ya|0,bb|0,23)|0;v=o^(D|v);o=_q(V|0,W|0,566280711,-779700025)|0;k=_q(o|0,D|0,j|0,k|0)|0;k=_q(k|0,D|0,h&~Ya^Ya&f|0,i&~bb^bb&g|0)|0;v=_q(k|0,D|0,(ab|Za)^(n|w)^(Xa|_a)|0,v|0)|0;_a=D;k=gr($a|0,cb|0,28)|0;Xa=D;w=mr($a|0,cb|0,36)|0;Xa=D|Xa;j=gr($a|0,cb|0,34)|0;n=D;Za=mr($a|0,cb|0,30)|0;n=Xa^(D|n);Xa=gr($a|0,cb|0,39)|0;ab=D;o=mr($a|0,cb|0,25)|0;ab=_q((w|k)^(Za|j)^(o|Xa)|0,n^(D|ab)|0,$a&(p^r)^p&r|0,cb&(q^t)^q&t|0)|0;n=D;Xa=_q(v|0,_a|0,s|0,u|0)|0;o=D;_a=_q(ab|0,n|0,v|0,_a|0)|0;v=D;n=gr(Xa|0,o|0,14)|0;ab=D;j=mr(Xa|0,o|0,50)|0;ab=D|ab;Za=gr(Xa|0,o|0,18)|0;k=D;u=mr(Xa|0,o|0,46)|0;k=ab^(D|k);ab=gr(Xa|0,o|0,41)|0;s=D;w=mr(Xa|0,o|0,23)|0;s=k^(D|s);k=_q(y|0,z|0,-840897762,-354779690)|0;i=_q(k|0,D|0,h|0,i|0)|0;i=_q(i|0,D|0,f&~Xa^Xa&Ya|0,g&~o^o&bb|0)|0;s=_q(i|0,D|0,(j|n)^(u|Za)^(w|ab)|0,s|0)|0;ab=D;w=gr(_a|0,v|0,28)|0;Za=D;u=mr(_a|0,v|0,36)|0;Za=D|Za;n=gr(_a|0,v|0,34)|0;j=D;i=mr(_a|0,v|0,30)|0;j=Za^(D|j);Za=gr(_a|0,v|0,39)|0;h=D;k=mr(_a|0,v|0,25)|0;h=_q((u|w)^(i|n)^(k|Za)|0,j^(D|h)|0,_a&($a^p)^$a&p|0,v&(cb^q)^cb&q|0)|0;j=D;Za=_q(s|0,ab|0,r|0,t|0)|0;k=D;ab=_q(h|0,j|0,s|0,ab|0)|0;s=D;j=gr(Za|0,k|0,14)|0;r=D;h=mr(Za|0,k|0,50)|0;r=D|r;n=gr(Za|0,k|0,18)|0;i=D;t=mr(Za|0,k|0,46)|0;i=r^(D|i);r=gr(Za|0,k|0,41)|0;w=D;u=mr(Za|0,k|0,23)|0;w=i^(D|w);i=_q(C|0,E|0,-294727304,-176337025)|0;g=_q(i|0,D|0,f|0,g|0)|0;g=_q(g|0,D|0,Ya&~Za^Za&Xa|0,bb&~k^k&o|0)|0;w=_q(g|0,D|0,(h|j)^(t|n)^(u|r)|0,w|0)|0;r=D;u=gr(ab|0,s|0,28)|0;n=D;t=mr(ab|0,s|0,36)|0;n=D|n;j=gr(ab|0,s|0,34)|0;g=D;h=mr(ab|0,s|0,30)|0;g=n^(D|g);n=gr(ab|0,s|0,39)|0;f=D;i=mr(ab|0,s|0,25)|0;f=_q((t|u)^(h|j)^(i|n)|0,g^(D|f)|0,ab&(_a^$a)^_a&$a|0,s&(v^cb)^v&cb|0)|0;g=D;n=_q(w|0,r|0,p|0,q|0)|0;i=D;r=_q(f|0,g|0,w|0,r|0)|0;w=D;g=gr(n|0,i|0,14)|0;p=D;f=mr(n|0,i|0,50)|0;p=D|p;j=gr(n|0,i|0,18)|0;h=D;q=mr(n|0,i|0,46)|0;h=p^(D|h);p=gr(n|0,i|0,41)|0;u=D;t=mr(n|0,i|0,23)|0;u=h^(D|u);h=_q(H|0,I|0,1914138554,116418474)|0;bb=_q(h|0,D|0,Ya|0,bb|0)|0;bb=_q(bb|0,D|0,Xa&~n^n&Za|0,o&~i^i&k|0)|0;u=_q(bb|0,D|0,(f|g)^(q|j)^(t|p)|0,u|0)|0;p=D;t=gr(r|0,w|0,28)|0;j=D;q=mr(r|0,w|0,36)|0;j=D|j;g=gr(r|0,w|0,34)|0;f=D;bb=mr(r|0,w|0,30)|0;f=j^(D|f);j=gr(r|0,w|0,39)|0;Ya=D;h=mr(r|0,w|0,25)|0;Ya=_q((q|t)^(bb|g)^(h|j)|0,f^(D|Ya)|0,r&(ab^_a)^ab&_a|0,w&(s^v)^s&v|0)|0;f=D;j=_q(u|0,p|0,$a|0,cb|0)|0;cb=D;p=_q(Ya|0,f|0,u|0,p|0)|0;u=D;f=gr(j|0,cb|0,14)|0;Ya=D;$a=mr(j|0,cb|0,50)|0;Ya=D|Ya;h=gr(j|0,cb|0,18)|0;g=D;bb=mr(j|0,cb|0,46)|0;g=Ya^(D|g);Ya=gr(j|0,cb|0,41)|0;t=D;q=mr(j|0,cb|0,23)|0;t=g^(D|t);g=_q(L|0,M|0,-1563912026,174292421)|0;o=_q(g|0,D|0,Xa|0,o|0)|0;o=_q(o|0,D|0,Za&~j^j&n|0,k&~cb^cb&i|0)|0;t=_q(o|0,D|0,($a|f)^(bb|h)^(q|Ya)|0,t|0)|0;Ya=D;q=gr(p|0,u|0,28)|0;h=D;bb=mr(p|0,u|0,36)|0;h=D|h;f=gr(p|0,u|0,34)|0;$a=D;o=mr(p|0,u|0,30)|0;$a=h^(D|$a);h=gr(p|0,u|0,39)|0;Xa=D;g=mr(p|0,u|0,25)|0;Xa=_q((bb|q)^(o|f)^(g|h)|0,$a^(D|Xa)|0,p&(r^ab)^r&ab|0,u&(w^s)^w&s|0)|0;$a=D;h=_q(t|0,Ya|0,_a|0,v|0)|0;v=D;Ya=_q(Xa|0,$a|0,t|0,Ya|0)|0;t=D;$a=gr(h|0,v|0,14)|0;Xa=D;_a=mr(h|0,v|0,50)|0;Xa=D|Xa;g=gr(h|0,v|0,18)|0;f=D;o=mr(h|0,v|0,46)|0;f=Xa^(D|f);Xa=gr(h|0,v|0,41)|0;q=D;bb=mr(h|0,v|0,23)|0;q=f^(D|q);f=_q(P|0,Q|0,-1090974290,289380356)|0;k=_q(f|0,D|0,Za|0,k|0)|0;k=_q(k|0,D|0,n&~h^h&j|0,i&~v^v&cb|0)|0;q=_q(k|0,D|0,(_a|$a)^(o|g)^(bb|Xa)|0,q|0)|0;Xa=D;bb=gr(Ya|0,t|0,28)|0;g=D;o=mr(Ya|0,t|0,36)|0;g=D|g;$a=gr(Ya|0,t|0,34)|0;_a=D;k=mr(Ya|0,t|0,30)|0;_a=g^(D|_a);g=gr(Ya|0,t|0,39)|0;Za=D;f=mr(Ya|0,t|0,25)|0;Za=_q((o|bb)^(k|$a)^(f|g)|0,_a^(D|Za)|0,Ya&(p^r)^p&r|0,t&(u^w)^u&w|0)|0;_a=D;g=_q(q|0,Xa|0,ab|0,s|0)|0;s=D;Xa=_q(Za|0,_a|0,q|0,Xa|0)|0;q=D;_a=gr(g|0,s|0,14)|0;Za=D;f=mr(g|0,s|0,50)|0;Za=D|Za;ab=gr(g|0,s|0,18)|0;$a=D;k=mr(g|0,s|0,46)|0;$a=Za^(D|$a);Za=gr(g|0,s|0,41)|0;bb=D;o=mr(g|0,s|0,23)|0;bb=$a^(D|bb);$a=_q(_|0,aa|0,320620315,460393269)|0;i=_q($a|0,D|0,n|0,i|0)|0;i=_q(i|0,D|0,j&~g^g&h|0,cb&~s^s&v|0)|0;bb=_q(i|0,D|0,(f|_a)^(k|ab)^(o|Za)|0,bb|0)|0;Za=D;o=gr(Xa|0,q|0,28)|0;ab=D;k=mr(Xa|0,q|0,36)|0;ab=D|ab;_a=gr(Xa|0,q|0,34)|0;f=D;i=mr(Xa|0,q|0,30)|0;f=ab^(D|f);ab=gr(Xa|0,q|0,39)|0;n=D;$a=mr(Xa|0,q|0,25)|0;n=_q((k|o)^(i|_a)^($a|ab)|0,f^(D|n)|0,Xa&(Ya^p)^Ya&p|0,q&(t^u)^t&u|0)|0;f=D;w=_q(bb|0,Za|0,r|0,w|0)|0;r=D;Za=_q(n|0,f|0,bb|0,Za|0)|0;bb=D;f=gr(w|0,r|0,14)|0;n=D;ab=mr(w|0,r|0,50)|0;n=D|n;$a=gr(w|0,r|0,18)|0;_a=D;i=mr(w|0,r|0,46)|0;_a=n^(D|_a);n=gr(w|0,r|0,41)|0;o=D;k=mr(w|0,r|0,23)|0;o=_a^(D|o);_a=_q(ba|0,ca|0,587496836,685471733)|0;cb=_q(_a|0,D|0,j|0,cb|0)|0;cb=_q(cb|0,D|0,h&~w^w&g|0,v&~r^r&s|0)|0;o=_q(cb|0,D|0,(ab|f)^(i|$a)^(k|n)|0,o|0)|0;n=D;k=gr(Za|0,bb|0,28)|0;$a=D;i=mr(Za|0,bb|0,36)|0;$a=D|$a;f=gr(Za|0,bb|0,34)|0;ab=D;cb=mr(Za|0,bb|0,30)|0;ab=$a^(D|ab);$a=gr(Za|0,bb|0,39)|0;j=D;_a=mr(Za|0,bb|0,25)|0;j=_q((i|k)^(cb|f)^(_a|$a)|0,ab^(D|j)|0,Za&(Xa^Ya)^Xa&Ya|0,bb&(q^t)^q&t|0)|0;ab=D;u=_q(o|0,n|0,p|0,u|0)|0;p=D;n=_q(j|0,ab|0,o|0,n|0)|0;o=D;ab=gr(u|0,p|0,14)|0;j=D;$a=mr(u|0,p|0,50)|0;j=D|j;_a=gr(u|0,p|0,18)|0;f=D;cb=mr(u|0,p|0,46)|0;f=j^(D|f);j=gr(u|0,p|0,41)|0;k=D;i=mr(u|0,p|0,23)|0;k=f^(D|k);f=_q(X|0,Y|0,1086792851,852142971)|0;v=_q(f|0,D|0,h|0,v|0)|0;v=_q(v|0,D|0,g&~u^u&w|0,s&~p^p&r|0)|0;k=_q(v|0,D|0,($a|ab)^(cb|_a)^(i|j)|0,k|0)|0;j=D;i=gr(n|0,o|0,28)|0;_a=D;cb=mr(n|0,o|0,36)|0;_a=D|_a;ab=gr(n|0,o|0,34)|0;$a=D;v=mr(n|0,o|0,30)|0;$a=_a^(D|$a);_a=gr(n|0,o|0,39)|0;h=D;f=mr(n|0,o|0,25)|0;h=_q((cb|i)^(v|ab)^(f|_a)|0,$a^(D|h)|0,n&(Za^Xa)^Za&Xa|0,o&(bb^q)^bb&q|0)|0;$a=D;t=_q(k|0,j|0,Ya|0,t|0)|0;Ya=D;j=_q(h|0,$a|0,k|0,j|0)|0;k=D;$a=gr(t|0,Ya|0,14)|0;h=D;_a=mr(t|0,Ya|0,50)|0;h=D|h;f=gr(t|0,Ya|0,18)|0;ab=D;v=mr(t|0,Ya|0,46)|0;ab=h^(D|ab);h=gr(t|0,Ya|0,41)|0;i=D;cb=mr(t|0,Ya|0,23)|0;i=ab^(D|i);ab=_q(A|0,B|0,365543100,1017036298)|0;s=_q(ab|0,D|0,g|0,s|0)|0;s=_q(s|0,D|0,w&~t^t&u|0,r&~Ya^Ya&p|0)|0;i=_q(s|0,D|0,(_a|$a)^(v|f)^(cb|h)|0,i|0)|0;h=D;cb=gr(j|0,k|0,28)|0;f=D;v=mr(j|0,k|0,36)|0;f=D|f;$a=gr(j|0,k|0,34)|0;_a=D;s=mr(j|0,k|0,30)|0;_a=f^(D|_a);f=gr(j|0,k|0,39)|0;g=D;ab=mr(j|0,k|0,25)|0;g=_q((v|cb)^(s|$a)^(ab|f)|0,_a^(D|g)|0,j&(n^Za)^n&Za|0,k&(o^bb)^o&bb|0)|0;_a=D;q=_q(i|0,h|0,Xa|0,q|0)|0;Xa=D;h=_q(g|0,_a|0,i|0,h|0)|0;i=D;_a=gr(q|0,Xa|0,14)|0;g=D;f=mr(q|0,Xa|0,50)|0;g=D|g;ab=gr(q|0,Xa|0,18)|0;$a=D;s=mr(q|0,Xa|0,46)|0;$a=g^(D|$a);g=gr(q|0,Xa|0,41)|0;cb=D;v=mr(q|0,Xa|0,23)|0;cb=$a^(D|cb);$a=_q(F|0,G|0,-1676669620,1126000580)|0;r=_q($a|0,D|0,w|0,r|0)|0;r=_q(r|0,D|0,u&~q^q&t|0,p&~Xa^Xa&Ya|0)|0;cb=_q(r|0,D|0,(f|_a)^(s|ab)^(v|g)|0,cb|0)|0;g=D;v=gr(h|0,i|0,28)|0;ab=D;s=mr(h|0,i|0,36)|0;ab=D|ab;_a=gr(h|0,i|0,34)|0;f=D;r=mr(h|0,i|0,30)|0;f=ab^(D|f);ab=gr(h|0,i|0,39)|0;w=D;$a=mr(h|0,i|0,25)|0;w=_q((s|v)^(r|_a)^($a|ab)|0,f^(D|w)|0,h&(j^n)^j&n|0,i&(k^o)^k&o|0)|0;f=D;bb=_q(cb|0,g|0,Za|0,bb|0)|0;Za=D;g=_q(w|0,f|0,cb|0,g|0)|0;cb=D;f=gr(bb|0,Za|0,14)|0;w=D;ab=mr(bb|0,Za|0,50)|0;w=D|w;$a=gr(bb|0,Za|0,18)|0;_a=D;r=mr(bb|0,Za|0,46)|0;_a=w^(D|_a);w=gr(bb|0,Za|0,41)|0;v=D;s=mr(bb|0,Za|0,23)|0;v=_a^(D|v);_a=_q(J|0,K|0,-885112138,1288033470)|0;p=_q(_a|0,D|0,u|0,p|0)|0;p=_q(p|0,D|0,t&~bb^bb&q|0,Ya&~Za^Za&Xa|0)|0;v=_q(p|0,D|0,(ab|f)^(r|$a)^(s|w)|0,v|0)|0;w=D;s=gr(g|0,cb|0,28)|0;$a=D;r=mr(g|0,cb|0,36)|0;$a=D|$a;f=gr(g|0,cb|0,34)|0;ab=D;p=mr(g|0,cb|0,30)|0;ab=$a^(D|ab);$a=gr(g|0,cb|0,39)|0;u=D;_a=mr(g|0,cb|0,25)|0;u=_q((r|s)^(p|f)^(_a|$a)|0,ab^(D|u)|0,g&(h^j)^h&j|0,cb&(i^k)^i&k|0)|0;ab=D;o=_q(v|0,w|0,n|0,o|0)|0;n=D;w=_q(u|0,ab|0,v|0,w|0)|0;v=D;ab=gr(o|0,n|0,14)|0;u=D;$a=mr(o|0,n|0,50)|0;u=D|u;_a=gr(o|0,n|0,18)|0;f=D;p=mr(o|0,n|0,46)|0;f=u^(D|f);u=gr(o|0,n|0,41)|0;s=D;r=mr(o|0,n|0,23)|0;s=f^(D|s);f=_q(N|0,O|0,-60457430,1501505948)|0;Ya=_q(f|0,D|0,t|0,Ya|0)|0;Ya=_q(Ya|0,D|0,q&~o^o&bb|0,Xa&~n^n&Za|0)|0;s=_q(Ya|0,D|0,($a|ab)^(p|_a)^(r|u)|0,s|0)|0;u=D;r=gr(w|0,v|0,28)|0;_a=D;p=mr(w|0,v|0,36)|0;_a=D|_a;ab=gr(w|0,v|0,34)|0;$a=D;Ya=mr(w|0,v|0,30)|0;$a=_a^(D|$a);_a=gr(w|0,v|0,39)|0;t=D;f=mr(w|0,v|0,25)|0;t=_q((p|r)^(Ya|ab)^(f|_a)|0,$a^(D|t)|0,w&(g^h)^g&h|0,v&(cb^i)^cb&i|0)|0;$a=D;k=_q(s|0,u|0,j|0,k|0)|0;j=D;u=_q(t|0,$a|0,s|0,u|0)|0;s=D;$a=gr(k|0,j|0,14)|0;t=D;_a=mr(k|0,j|0,50)|0;t=D|t;f=gr(k|0,j|0,18)|0;ab=D;Ya=mr(k|0,j|0,46)|0;ab=t^(D|ab);t=gr(k|0,j|0,41)|0;r=D;p=mr(k|0,j|0,23)|0;r=ab^(D|r);ab=_q(T|0,U|0,987167468,1607167915)|0;Xa=_q(ab|0,D|0,q|0,Xa|0)|0;Xa=_q(Xa|0,D|0,bb&~k^k&o|0,Za&~j^j&n|0)|0;r=_q(Xa|0,D|0,(_a|$a)^(Ya|f)^(p|t)|0,r|0)|0;t=D;p=gr(u|0,s|0,28)|0;f=D;Ya=mr(u|0,s|0,36)|0;f=D|f;$a=gr(u|0,s|0,34)|0;_a=D;Xa=mr(u|0,s|0,30)|0;_a=f^(D|_a);f=gr(u|0,s|0,39)|0;q=D;ab=mr(u|0,s|0,25)|0;q=_q((Ya|p)^(Xa|$a)^(ab|f)|0,_a^(D|q)|0,u&(w^g)^w&g|0,s&(v^cb)^v&cb|0)|0;_a=D;i=_q(r|0,t|0,h|0,i|0)|0;h=D;t=_q(q|0,_a|0,r|0,t|0)|0;r=D;_a=gr(i|0,h|0,14)|0;q=D;f=mr(i|0,h|0,50)|0;q=D|q;ab=gr(i|0,h|0,18)|0;$a=D;Xa=mr(i|0,h|0,46)|0;$a=q^(D|$a);q=gr(i|0,h|0,41)|0;p=D;Ya=mr(i|0,h|0,23)|0;p=$a^(D|p);$a=_q(a|0,x|0,1246189591,1816402316)|0;Za=_q($a|0,D|0,bb|0,Za|0)|0;Za=_q(Za|0,D|0,o&~i^i&k|0,n&~h^h&j|0)|0;p=_q(Za|0,D|0,(f|_a)^(Xa|ab)^(Ya|q)|0,p|0)|0;q=D;Ya=gr(t|0,r|0,28)|0;ab=D;Xa=mr(t|0,r|0,36)|0;ab=D|ab;_a=gr(t|0,r|0,34)|0;f=D;Za=mr(t|0,r|0,30)|0;f=ab^(D|f);ab=gr(t|0,r|0,39)|0;bb=D;$a=mr(t|0,r|0,25)|0;bb=_q((Xa|Ya)^(Za|_a)^($a|ab)|0,f^(D|bb)|0,t&(u^w)^u&w|0,r&(s^v)^s&v|0)|0;f=D;cb=_q(p|0,q|0,g|0,cb|0)|0;g=D;q=_q(bb|0,f|0,p|0,q|0)|0;p=va;p=_q(q|0,D|0,c[p>>2]|0,c[p+4>>2]|0)|0;q=D;f=va;c[f>>2]=p;c[f+4>>2]=q;f=wa;r=_q(c[f>>2]|0,c[f+4>>2]|0,t|0,r|0)|0;t=D;f=wa;c[f>>2]=r;c[f+4>>2]=t;f=xa;s=_q(c[f>>2]|0,c[f+4>>2]|0,u|0,s|0)|0;u=D;f=xa;c[f>>2]=s;c[f+4>>2]=u;f=ya;v=_q(c[f>>2]|0,c[f+4>>2]|0,w|0,v|0)|0;w=D;f=ya;c[f>>2]=v;c[f+4>>2]=w;f=za;f=_q(cb|0,g|0,c[f>>2]|0,c[f+4>>2]|0)|0;g=D;cb=za;c[cb>>2]=f;c[cb+4>>2]=g;cb=Aa;h=_q(c[cb>>2]|0,c[cb+4>>2]|0,i|0,h|0)|0;i=D;cb=Aa;c[cb>>2]=h;c[cb+4>>2]=i;cb=ta;j=_q(c[cb>>2]|0,c[cb+4>>2]|0,k|0,j|0)|0;k=D;cb=ta;c[cb>>2]=j;c[cb+4>>2]=k;cb=da;n=_q(c[cb>>2]|0,c[cb+4>>2]|0,o|0,n|0)|0;o=D;cb=da;c[cb>>2]=n;c[cb+4>>2]=o;e=e+-1|0;if(!e)break;else b=b+128|0}l=Ba;return 220}function gj(a,b){a=a|0;b=b|0;b=a+160|0;c[b>>2]=-1056596264;c[b+4>>2]=-876896931;b=a+168|0;c[b>>2]=914150663;c[b+4>>2]=1654270250;b=a+176|0;c[b>>2]=812702999;c[b+4>>2]=-1856437926;b=a+184|0;c[b>>2]=-150054599;c[b+4>>2]=355462360;b=a+192|0;c[b>>2]=-4191439;c[b+4>>2]=1731405415;b=a+200|0;c[b>>2]=1750603025;c[b+4>>2]=-1900787065;b=a+208|0;c[b>>2]=1694076839;c[b+4>>2]=-619958771;b=a+216|0;c[b>>2]=-1090891868;c[b+4>>2]=1203062813;b=a+128|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[a+148>>2]=128;c[a+152>>2]=34;return}function hj(a,b,c){a=a|0;b=b|0;c=c|0;c=kj(a,b,c)|0;Te(47);return c|0} +function ij(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;i=((d[f+2>>0]|0)<<16|(d[f+3>>0]|0)<<24|(d[f+1>>0]|0)<<8|(d[f>>0]|0))^c[b+4096>>2];g=((d[f+6>>0]|0)<<16|(d[f+7>>0]|0)<<24|(d[f+5>>0]|0)<<8|(d[f+4>>0]|0))^c[b+4100>>2];h=((d[f+14>>0]|0)<<16|(d[f+15>>0]|0)<<24|(d[f+13>>0]|0)<<8|(d[f+12>>0]|0))^c[b+4108>>2];k=c[b+2048+((g>>>8&255)<<2)>>2]^c[b+1024+((g&255)<<2)>>2]^c[b+3072+((g>>>16&255)<<2)>>2]^c[b+(g>>>24<<2)>>2];j=k+(c[b+1024+((i>>>8&255)<<2)>>2]^c[b+((i&255)<<2)>>2]^c[b+2048+((i>>>16&255)<<2)>>2]^c[b+3072+(i>>>24<<2)>>2])|0;f=((d[f+10>>0]|0)<<16|(d[f+11>>0]|0)<<24|(d[f+9>>0]|0)<<8|(d[f+8>>0]|0))^c[b+4104>>2]^j+(c[b+4128>>2]|0);l=f>>>1;m=l|f<<31;h=k+(c[b+4132>>2]|0)+j^(h<<1|h>>>31);j=c[b+2048+((h>>>8&255)<<2)>>2]^c[b+1024+((h&255)<<2)>>2]^c[b+3072+((h>>>16&255)<<2)>>2]^c[b+(h>>>24<<2)>>2];f=j+(c[b+1024+((f>>>9&255)<<2)>>2]^c[b+((l&255)<<2)>>2]^c[b+2048+((f>>>17&255)<<2)>>2]^c[b+3072+(m>>>24<<2)>>2])|0;i=f+(c[b+4136>>2]|0)^i;l=i>>>1;k=l|i<<31;f=j+(c[b+4140>>2]|0)+f^(g<<1|g>>>31);g=c[b+2048+((f>>>8&255)<<2)>>2]^c[b+1024+((f&255)<<2)>>2]^c[b+3072+((f>>>16&255)<<2)>>2]^c[b+(f>>>24<<2)>>2];i=g+(c[b+1024+((i>>>9&255)<<2)>>2]^c[b+((l&255)<<2)>>2]^c[b+2048+((i>>>17&255)<<2)>>2]^c[b+3072+(k>>>24<<2)>>2])|0;m=i+(c[b+4144>>2]|0)^m;l=m>>>1;j=l|m<<31;h=g+(c[b+4148>>2]|0)+i^(h<<1|h>>>31);i=c[b+2048+((h>>>8&255)<<2)>>2]^c[b+1024+((h&255)<<2)>>2]^c[b+3072+((h>>>16&255)<<2)>>2]^c[b+(h>>>24<<2)>>2];m=i+(c[b+1024+((m>>>9&255)<<2)>>2]^c[b+((l&255)<<2)>>2]^c[b+2048+((m>>>17&255)<<2)>>2]^c[b+3072+(j>>>24<<2)>>2])|0;k=m+(c[b+4152>>2]|0)^k;l=k>>>1;g=l|k<<31;f=i+(c[b+4156>>2]|0)+m^(f<<1|f>>>31);m=c[b+2048+((f>>>8&255)<<2)>>2]^c[b+1024+((f&255)<<2)>>2]^c[b+3072+((f>>>16&255)<<2)>>2]^c[b+(f>>>24<<2)>>2];k=m+(c[b+1024+((k>>>9&255)<<2)>>2]^c[b+((l&255)<<2)>>2]^c[b+2048+((k>>>17&255)<<2)>>2]^c[b+3072+(g>>>24<<2)>>2])|0;j=k+(c[b+4160>>2]|0)^j;l=j>>>1;i=l|j<<31;h=m+(c[b+4164>>2]|0)+k^(h<<1|h>>>31);k=c[b+2048+((h>>>8&255)<<2)>>2]^c[b+1024+((h&255)<<2)>>2]^c[b+3072+((h>>>16&255)<<2)>>2]^c[b+(h>>>24<<2)>>2];j=k+(c[b+1024+((j>>>9&255)<<2)>>2]^c[b+((l&255)<<2)>>2]^c[b+2048+((j>>>17&255)<<2)>>2]^c[b+3072+(i>>>24<<2)>>2])|0;g=j+(c[b+4168>>2]|0)^g;l=g>>>1;m=l|g<<31;f=k+(c[b+4172>>2]|0)+j^(f<<1|f>>>31);j=c[b+2048+((f>>>8&255)<<2)>>2]^c[b+1024+((f&255)<<2)>>2]^c[b+3072+((f>>>16&255)<<2)>>2]^c[b+(f>>>24<<2)>>2];g=j+(c[b+1024+((g>>>9&255)<<2)>>2]^c[b+((l&255)<<2)>>2]^c[b+2048+((g>>>17&255)<<2)>>2]^c[b+3072+(m>>>24<<2)>>2])|0;i=g+(c[b+4176>>2]|0)^i;l=i>>>1;k=l|i<<31;h=j+(c[b+4180>>2]|0)+g^(h<<1|h>>>31);g=c[b+2048+((h>>>8&255)<<2)>>2]^c[b+1024+((h&255)<<2)>>2]^c[b+3072+((h>>>16&255)<<2)>>2]^c[b+(h>>>24<<2)>>2];i=g+(c[b+1024+((i>>>9&255)<<2)>>2]^c[b+((l&255)<<2)>>2]^c[b+2048+((i>>>17&255)<<2)>>2]^c[b+3072+(k>>>24<<2)>>2])|0;m=i+(c[b+4184>>2]|0)^m;l=m>>>1;j=l|m<<31;f=g+(c[b+4188>>2]|0)+i^(f<<1|f>>>31);i=c[b+2048+((f>>>8&255)<<2)>>2]^c[b+1024+((f&255)<<2)>>2]^c[b+3072+((f>>>16&255)<<2)>>2]^c[b+(f>>>24<<2)>>2];m=i+(c[b+1024+((m>>>9&255)<<2)>>2]^c[b+((l&255)<<2)>>2]^c[b+2048+((m>>>17&255)<<2)>>2]^c[b+3072+(j>>>24<<2)>>2])|0;k=m+(c[b+4192>>2]|0)^k;l=k>>>1;g=l|k<<31;h=i+(c[b+4196>>2]|0)+m^(h<<1|h>>>31);m=c[b+2048+((h>>>8&255)<<2)>>2]^c[b+1024+((h&255)<<2)>>2]^c[b+3072+((h>>>16&255)<<2)>>2]^c[b+(h>>>24<<2)>>2];k=m+(c[b+1024+((k>>>9&255)<<2)>>2]^c[b+((l&255)<<2)>>2]^c[b+2048+((k>>>17&255)<<2)>>2]^c[b+3072+(g>>>24<<2)>>2])|0;j=k+(c[b+4200>>2]|0)^j;l=j>>>1;i=l|j<<31;f=m+(c[b+4204>>2]|0)+k^(f<<1|f>>>31);k=c[b+2048+((f>>>8&255)<<2)>>2]^c[b+1024+((f&255)<<2)>>2]^c[b+3072+((f>>>16&255)<<2)>>2]^c[b+(f>>>24<<2)>>2];j=k+(c[b+1024+((j>>>9&255)<<2)>>2]^c[b+((l&255)<<2)>>2]^c[b+2048+((j>>>17&255)<<2)>>2]^c[b+3072+(i>>>24<<2)>>2])|0;g=j+(c[b+4208>>2]|0)^g;l=g>>>1;m=l|g<<31;h=k+(c[b+4212>>2]|0)+j^(h<<1|h>>>31);j=c[b+2048+((h>>>8&255)<<2)>>2]^c[b+1024+((h&255)<<2)>>2]^c[b+3072+((h>>>16&255)<<2)>>2]^c[b+(h>>>24<<2)>>2];g=j+(c[b+1024+((g>>>9&255)<<2)>>2]^c[b+((l&255)<<2)>>2]^c[b+2048+((g>>>17&255)<<2)>>2]^c[b+3072+(m>>>24<<2)>>2])|0;i=g+(c[b+4216>>2]|0)^i;l=i>>>1;k=l|i<<31;f=j+(c[b+4220>>2]|0)+g^(f<<1|f>>>31);g=c[b+2048+((f>>>8&255)<<2)>>2]^c[b+1024+((f&255)<<2)>>2]^c[b+3072+((f>>>16&255)<<2)>>2]^c[b+(f>>>24<<2)>>2];i=g+(c[b+1024+((i>>>9&255)<<2)>>2]^c[b+((l&255)<<2)>>2]^c[b+2048+((i>>>17&255)<<2)>>2]^c[b+3072+(k>>>24<<2)>>2])|0;m=i+(c[b+4224>>2]|0)^m;l=m>>>1;j=l|m<<31;h=g+(c[b+4228>>2]|0)+i^(h<<1|h>>>31);i=c[b+2048+((h>>>8&255)<<2)>>2]^c[b+1024+((h&255)<<2)>>2]^c[b+3072+((h>>>16&255)<<2)>>2]^c[b+(h>>>24<<2)>>2];m=i+(c[b+1024+((m>>>9&255)<<2)>>2]^c[b+((l&255)<<2)>>2]^c[b+2048+((m>>>17&255)<<2)>>2]^c[b+3072+(j>>>24<<2)>>2])|0;k=m+(c[b+4232>>2]|0)^k;l=k>>>1;g=l|k<<31;f=i+(c[b+4236>>2]|0)+m^(f<<1|f>>>31);m=c[b+2048+((f>>>8&255)<<2)>>2]^c[b+1024+((f&255)<<2)>>2]^c[b+3072+((f>>>16&255)<<2)>>2]^c[b+(f>>>24<<2)>>2];k=m+(c[b+1024+((k>>>9&255)<<2)>>2]^c[b+((l&255)<<2)>>2]^c[b+2048+((k>>>17&255)<<2)>>2]^c[b+3072+(g>>>24<<2)>>2])|0;j=k+(c[b+4240>>2]|0)^j;l=j>>>1;i=l|j<<31;h=m+(c[b+4244>>2]|0)+k^(h<<1|h>>>31);k=c[b+2048+((h>>>8&255)<<2)>>2]^c[b+1024+((h&255)<<2)>>2]^c[b+3072+((h>>>16&255)<<2)>>2]^c[b+(h>>>24<<2)>>2];j=k+(c[b+1024+((j>>>9&255)<<2)>>2]^c[b+((l&255)<<2)>>2]^c[b+2048+((j>>>17&255)<<2)>>2]^c[b+3072+(i>>>24<<2)>>2])|0;g=j+(c[b+4248>>2]|0)^g;f=k+(c[b+4252>>2]|0)+j^(f<<1|f>>>31);i=c[b+4112>>2]^i;a[e+3>>0]=i>>>24;a[e+2>>0]=i>>>16;a[e+1>>0]=i>>>8;a[e>>0]=i;h=c[b+4116>>2]^h;a[e+7>>0]=h>>>24;a[e+6>>0]=h>>>16;a[e+5>>0]=h>>>8;a[e+4>>0]=h;g=c[b+4120>>2]^(g>>>1|g<<31);a[e+11>>0]=g>>>24;a[e+10>>0]=g>>>16;a[e+9>>0]=g>>>8;a[e+8>>0]=g;f=f^c[b+4124>>2];a[e+15>>0]=f>>>24;a[e+14>>0]=f>>>16;a[e+13>>0]=f>>>8;a[e+12>>0]=f;return 36}function jj(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;g=((d[f+2>>0]|0)<<16|(d[f+3>>0]|0)<<24|(d[f+1>>0]|0)<<8|(d[f>>0]|0))^c[b+4112>>2];h=((d[f+6>>0]|0)<<16|(d[f+7>>0]|0)<<24|(d[f+5>>0]|0)<<8|(d[f+4>>0]|0))^c[b+4116>>2];i=((d[f+10>>0]|0)<<16|(d[f+11>>0]|0)<<24|(d[f+9>>0]|0)<<8|(d[f+8>>0]|0))^c[b+4120>>2];k=c[b+2048+((h>>>8&255)<<2)>>2]^c[b+1024+((h&255)<<2)>>2]^c[b+3072+((h>>>16&255)<<2)>>2]^c[b+(h>>>24<<2)>>2];j=k+(c[b+1024+((g>>>8&255)<<2)>>2]^c[b+((g&255)<<2)>>2]^c[b+2048+((g>>>16&255)<<2)>>2]^c[b+3072+(g>>>24<<2)>>2])|0;f=((d[f+14>>0]|0)<<16|(d[f+15>>0]|0)<<24|(d[f+13>>0]|0)<<8|(d[f+12>>0]|0))^c[b+4124>>2]^(c[b+4252>>2]|0)+k+j;k=f>>>1;l=k|f<<31;i=j+(c[b+4248>>2]|0)^(i<<1|i>>>31);f=c[b+2048+((f>>>9&255)<<2)>>2]^c[b+1024+((k&255)<<2)>>2]^c[b+3072+((f>>>17&255)<<2)>>2]^c[b+(l>>>24<<2)>>2];k=f+(c[b+1024+((i>>>8&255)<<2)>>2]^c[b+((i&255)<<2)>>2]^c[b+2048+((i>>>16&255)<<2)>>2]^c[b+3072+(i>>>24<<2)>>2])|0;h=(c[b+4244>>2]|0)+f+k^h;f=h>>>1;j=f|h<<31;g=k+(c[b+4240>>2]|0)^(g<<1|g>>>31);h=c[b+2048+((h>>>9&255)<<2)>>2]^c[b+1024+((f&255)<<2)>>2]^c[b+3072+((h>>>17&255)<<2)>>2]^c[b+(j>>>24<<2)>>2];f=h+(c[b+1024+((g>>>8&255)<<2)>>2]^c[b+((g&255)<<2)>>2]^c[b+2048+((g>>>16&255)<<2)>>2]^c[b+3072+(g>>>24<<2)>>2])|0;l=(c[b+4236>>2]|0)+h+f^l;h=l>>>1;k=h|l<<31;i=f+(c[b+4232>>2]|0)^(i<<1|i>>>31);l=c[b+2048+((l>>>9&255)<<2)>>2]^c[b+1024+((h&255)<<2)>>2]^c[b+3072+((l>>>17&255)<<2)>>2]^c[b+(k>>>24<<2)>>2];h=l+(c[b+1024+((i>>>8&255)<<2)>>2]^c[b+((i&255)<<2)>>2]^c[b+2048+((i>>>16&255)<<2)>>2]^c[b+3072+(i>>>24<<2)>>2])|0;j=(c[b+4228>>2]|0)+l+h^j;l=j>>>1;f=l|j<<31;g=h+(c[b+4224>>2]|0)^(g<<1|g>>>31);j=c[b+2048+((j>>>9&255)<<2)>>2]^c[b+1024+((l&255)<<2)>>2]^c[b+3072+((j>>>17&255)<<2)>>2]^c[b+(f>>>24<<2)>>2];l=j+(c[b+1024+((g>>>8&255)<<2)>>2]^c[b+((g&255)<<2)>>2]^c[b+2048+((g>>>16&255)<<2)>>2]^c[b+3072+(g>>>24<<2)>>2])|0;k=(c[b+4220>>2]|0)+j+l^k;j=k>>>1;h=j|k<<31;i=l+(c[b+4216>>2]|0)^(i<<1|i>>>31);k=c[b+2048+((k>>>9&255)<<2)>>2]^c[b+1024+((j&255)<<2)>>2]^c[b+3072+((k>>>17&255)<<2)>>2]^c[b+(h>>>24<<2)>>2];j=k+(c[b+1024+((i>>>8&255)<<2)>>2]^c[b+((i&255)<<2)>>2]^c[b+2048+((i>>>16&255)<<2)>>2]^c[b+3072+(i>>>24<<2)>>2])|0;f=(c[b+4212>>2]|0)+k+j^f;k=f>>>1;l=k|f<<31;g=j+(c[b+4208>>2]|0)^(g<<1|g>>>31);f=c[b+2048+((f>>>9&255)<<2)>>2]^c[b+1024+((k&255)<<2)>>2]^c[b+3072+((f>>>17&255)<<2)>>2]^c[b+(l>>>24<<2)>>2];k=f+(c[b+1024+((g>>>8&255)<<2)>>2]^c[b+((g&255)<<2)>>2]^c[b+2048+((g>>>16&255)<<2)>>2]^c[b+3072+(g>>>24<<2)>>2])|0;h=(c[b+4204>>2]|0)+f+k^h;f=h>>>1;j=f|h<<31;i=k+(c[b+4200>>2]|0)^(i<<1|i>>>31);h=c[b+2048+((h>>>9&255)<<2)>>2]^c[b+1024+((f&255)<<2)>>2]^c[b+3072+((h>>>17&255)<<2)>>2]^c[b+(j>>>24<<2)>>2];f=h+(c[b+1024+((i>>>8&255)<<2)>>2]^c[b+((i&255)<<2)>>2]^c[b+2048+((i>>>16&255)<<2)>>2]^c[b+3072+(i>>>24<<2)>>2])|0;l=(c[b+4196>>2]|0)+h+f^l;h=l>>>1;k=h|l<<31;g=f+(c[b+4192>>2]|0)^(g<<1|g>>>31);l=c[b+2048+((l>>>9&255)<<2)>>2]^c[b+1024+((h&255)<<2)>>2]^c[b+3072+((l>>>17&255)<<2)>>2]^c[b+(k>>>24<<2)>>2];h=l+(c[b+1024+((g>>>8&255)<<2)>>2]^c[b+((g&255)<<2)>>2]^c[b+2048+((g>>>16&255)<<2)>>2]^c[b+3072+(g>>>24<<2)>>2])|0;j=(c[b+4188>>2]|0)+l+h^j;l=j>>>1;f=l|j<<31;i=h+(c[b+4184>>2]|0)^(i<<1|i>>>31);j=c[b+2048+((j>>>9&255)<<2)>>2]^c[b+1024+((l&255)<<2)>>2]^c[b+3072+((j>>>17&255)<<2)>>2]^c[b+(f>>>24<<2)>>2];l=j+(c[b+1024+((i>>>8&255)<<2)>>2]^c[b+((i&255)<<2)>>2]^c[b+2048+((i>>>16&255)<<2)>>2]^c[b+3072+(i>>>24<<2)>>2])|0;k=(c[b+4180>>2]|0)+j+l^k;j=k>>>1;h=j|k<<31;g=l+(c[b+4176>>2]|0)^(g<<1|g>>>31);k=c[b+2048+((k>>>9&255)<<2)>>2]^c[b+1024+((j&255)<<2)>>2]^c[b+3072+((k>>>17&255)<<2)>>2]^c[b+(h>>>24<<2)>>2];j=k+(c[b+1024+((g>>>8&255)<<2)>>2]^c[b+((g&255)<<2)>>2]^c[b+2048+((g>>>16&255)<<2)>>2]^c[b+3072+(g>>>24<<2)>>2])|0;f=(c[b+4172>>2]|0)+k+j^f;k=f>>>1;l=k|f<<31;i=j+(c[b+4168>>2]|0)^(i<<1|i>>>31);f=c[b+2048+((f>>>9&255)<<2)>>2]^c[b+1024+((k&255)<<2)>>2]^c[b+3072+((f>>>17&255)<<2)>>2]^c[b+(l>>>24<<2)>>2];k=f+(c[b+1024+((i>>>8&255)<<2)>>2]^c[b+((i&255)<<2)>>2]^c[b+2048+((i>>>16&255)<<2)>>2]^c[b+3072+(i>>>24<<2)>>2])|0;h=(c[b+4164>>2]|0)+f+k^h;f=h>>>1;j=f|h<<31;g=k+(c[b+4160>>2]|0)^(g<<1|g>>>31);h=c[b+2048+((h>>>9&255)<<2)>>2]^c[b+1024+((f&255)<<2)>>2]^c[b+3072+((h>>>17&255)<<2)>>2]^c[b+(j>>>24<<2)>>2];f=h+(c[b+1024+((g>>>8&255)<<2)>>2]^c[b+((g&255)<<2)>>2]^c[b+2048+((g>>>16&255)<<2)>>2]^c[b+3072+(g>>>24<<2)>>2])|0;l=(c[b+4156>>2]|0)+h+f^l;h=l>>>1;k=h|l<<31;i=f+(c[b+4152>>2]|0)^(i<<1|i>>>31);l=c[b+2048+((l>>>9&255)<<2)>>2]^c[b+1024+((h&255)<<2)>>2]^c[b+3072+((l>>>17&255)<<2)>>2]^c[b+(k>>>24<<2)>>2];h=l+(c[b+1024+((i>>>8&255)<<2)>>2]^c[b+((i&255)<<2)>>2]^c[b+2048+((i>>>16&255)<<2)>>2]^c[b+3072+(i>>>24<<2)>>2])|0;j=(c[b+4148>>2]|0)+l+h^j;l=j>>>1;f=l|j<<31;g=h+(c[b+4144>>2]|0)^(g<<1|g>>>31);j=c[b+2048+((j>>>9&255)<<2)>>2]^c[b+1024+((l&255)<<2)>>2]^c[b+3072+((j>>>17&255)<<2)>>2]^c[b+(f>>>24<<2)>>2];l=j+(c[b+1024+((g>>>8&255)<<2)>>2]^c[b+((g&255)<<2)>>2]^c[b+2048+((g>>>16&255)<<2)>>2]^c[b+3072+(g>>>24<<2)>>2])|0;k=(c[b+4140>>2]|0)+j+l^k;j=k>>>1;h=j|k<<31;i=l+(c[b+4136>>2]|0)^(i<<1|i>>>31);k=c[b+2048+((k>>>9&255)<<2)>>2]^c[b+1024+((j&255)<<2)>>2]^c[b+3072+((k>>>17&255)<<2)>>2]^c[b+(h>>>24<<2)>>2];j=k+(c[b+1024+((i>>>8&255)<<2)>>2]^c[b+((i&255)<<2)>>2]^c[b+2048+((i>>>16&255)<<2)>>2]^c[b+3072+(i>>>24<<2)>>2])|0;f=(c[b+4132>>2]|0)+k+j^f;g=j+(c[b+4128>>2]|0)^(g<<1|g>>>31);i=c[b+4096>>2]^i;a[e+3>>0]=i>>>24;a[e+2>>0]=i>>>16;a[e+1>>0]=i>>>8;a[e>>0]=i;h=c[b+4100>>2]^h;a[e+7>>0]=h>>>24;a[e+6>>0]=h>>>16;a[e+5>>0]=h>>>8;a[e+4>>0]=h;g=g^c[b+4104>>2];a[e+11>>0]=g>>>24;a[e+10>>0]=g>>>16;a[e+9>>0]=g>>>8;a[e+8>>0]=g;f=c[b+4108>>2]^(f>>>1|f<<31);a[e+15>>0]=f>>>24;a[e+14>>0]=f>>>16;a[e+13>>0]=f>>>8;a[e+12>>0]=f;return 36}function kj(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0;ea=l;l=l+4288|0;if((l|0)>=(m|0))$(4288);i=ea;g=ea+8|0;h=ea+4264|0;if((f+-16|16|0)!=16){e=44;l=ea;return e|0}do if(!(c[17618]|0)){c[17618]=1;kj(g,43199,16)|0;Te(47);ij(g,h,43215)|0;if(!(Tp(h,43231,16)|0)){jj(g,h,h)|0;if(!(Tp(h,43215,16)|0)){kj(g,43247,32)|0;Te(47);ij(g,h,43279)|0;if(!(Tp(h,43295,16)|0)){jj(g,h,h)|0;if(!(Tp(h,43279,16)|0)){g=ym(43191,13,14,8,4,16,4256)|0;if(!g){g=wm(43191,13,14,6,5,16,4256)|0;if(!g){g=xm(43191,13,14,7,5,16,4256)|0;c[17619]=g;if(!g)break}else j=9}else j=9}else{g=43311;j=9}}else{g=43347;j=9}}else{g=43383;j=9}}else{g=43419;j=9}if((j|0)==9)c[17619]=g;c[i>>2]=g;Le(43455,i);j=12}else j=12;while(0);if((j|0)==12?c[17619]|0:0){e=50;l=ea;return e|0}g=a[e>>0]|0;if(!(g<<24>>24)){h=0;i=0;j=0}else{j=d[43459+((g&255)+-1)>>0]|0;h=a[43714+(j+1)>>0]|0;i=a[43714+(j+45)>>0]|0;j=a[43714+j>>0]|0}da=e+1|0;g=a[da>>0]|0;if(!(g<<24>>24))k=i;else{ca=d[43459+((g&255)+-1)>>0]|0;k=a[43714+(ca+138)>>0]^i;h=a[43714+(ca+68)>>0]^h;i=a[43714+(ca+164)>>0]^i;j=a[43714+(ca+45)>>0]^j}ca=e+2|0;g=a[ca>>0]|0;if(g<<24>>24){ba=d[43459+((g&255)+-1)>>0]|0;k=a[43714+(ba+209)>>0]^k;h=a[43714+(ba+191)>>0]^h;i=a[43714+(ba+213)>>0]^i;j=a[43714+(ba+138)>>0]^j}ba=e+3|0;g=a[ba>>0]|0;if(g<<24>>24){aa=d[43459+((g&255)+-1)>>0]|0;k=a[43714+(aa+153)>>0]^k;h=a[43714+(aa+61)>>0]^h;i=a[43714+(aa+127)>>0]^i;j=a[43714+(aa+209)>>0]^j}aa=e+4|0;g=a[aa>>0]|0;if(g<<24>>24){_=d[43459+((g&255)+-1)>>0]|0;k=a[43714+(_+150)>>0]^k;h=a[43714+(_+102)>>0]^h;i=a[43714+(_+70)>>0]^i;j=a[43714+(_+153)>>0]^j}_=e+5|0;g=a[_>>0]|0;if(g<<24>>24){Z=d[43459+((g&255)+-1)>>0]|0;k=a[43714+(Z+237)>>0]^k;h=a[43714+(Z+91)>>0]^h;i=a[43714+(Z+60)>>0]^i;j=a[43714+(Z+150)>>0]^j}Z=e+6|0;g=a[Z>>0]|0;if(g<<24>>24){Y=d[43459+((g&255)+-1)>>0]|0;k=a[43714+(Y+224)>>0]^k;h=a[43714+(Y+79)>>0]^h;i=a[43714+(Y+55)>>0]^i;j=a[43714+(Y+237)>>0]^j}Y=e+7|0;g=a[Y>>0]|0;if(g<<24>>24){X=d[43459+((g&255)+-1)>>0]|0;k=a[43714+(X+23)>>0]^k;h=a[43714+(X+140)>>0]^h;i=a[43714+(X+208)>>0]^i;j=a[43714+(X+224)>>0]^j}X=e+8|0;g=a[X>>0]|0;if(!(g<<24>>24)){n=0;o=0;p=0}else{p=d[43459+((g&255)+-1)>>0]|0;n=a[43714+(p+1)>>0]|0;o=a[43714+(p+45)>>0]|0;p=a[43714+p>>0]|0}W=e+9|0;g=a[W>>0]|0;if(!(g<<24>>24))q=o;else{V=d[43459+((g&255)+-1)>>0]|0;q=a[43714+(V+138)>>0]^o;n=a[43714+(V+68)>>0]^n;o=a[43714+(V+164)>>0]^o;p=a[43714+(V+45)>>0]^p}V=e+10|0;g=a[V>>0]|0;if(g<<24>>24){U=d[43459+((g&255)+-1)>>0]|0;q=a[43714+(U+209)>>0]^q;n=a[43714+(U+191)>>0]^n;o=a[43714+(U+213)>>0]^o;p=a[43714+(U+138)>>0]^p}U=e+11|0;g=a[U>>0]|0;if(g<<24>>24){T=d[43459+((g&255)+-1)>>0]|0;q=a[43714+(T+153)>>0]^q;n=a[43714+(T+61)>>0]^n;o=a[43714+(T+127)>>0]^o;p=a[43714+(T+209)>>0]^p}T=e+12|0;g=a[T>>0]|0;if(g<<24>>24){S=d[43459+((g&255)+-1)>>0]|0;q=a[43714+(S+150)>>0]^q;n=a[43714+(S+102)>>0]^n;o=a[43714+(S+70)>>0]^o;p=a[43714+(S+153)>>0]^p}S=e+13|0;g=a[S>>0]|0;if(g<<24>>24){R=d[43459+((g&255)+-1)>>0]|0;q=a[43714+(R+237)>>0]^q;n=a[43714+(R+91)>>0]^n;o=a[43714+(R+60)>>0]^o;p=a[43714+(R+150)>>0]^p}R=e+14|0;g=a[R>>0]|0;if(g<<24>>24){Q=d[43459+((g&255)+-1)>>0]|0;q=a[43714+(Q+224)>>0]^q;n=a[43714+(Q+79)>>0]^n;o=a[43714+(Q+55)>>0]^o;p=a[43714+(Q+237)>>0]^p}Q=e+15|0;g=a[Q>>0]|0;if(g<<24>>24){P=d[43459+((g&255)+-1)>>0]|0;q=a[43714+(P+23)>>0]^q;n=a[43714+(P+140)>>0]^n;o=a[43714+(P+208)>>0]^o;p=a[43714+(P+224)>>0]^p}if((f|0)!=32){g=1;f=0;r=0;while(1){O=a[44206+f>>0]|0;c[b+(r<<2)>>2]=c[8012+(((a[44974+((O^j)&255)>>0]^p)&255)<<2)>>2];P=a[44206+g>>0]|0;c[b+1024+(r<<2)>>2]=c[9036+(((a[44974+((P^i)&255)>>0]^o)&255)<<2)>>2];c[b+2048+(r<<2)>>2]=c[10060+(((a[44718+((O^h)&255)>>0]^n)&255)<<2)>>2];c[b+3072+(r<<2)>>2]=c[11084+(((a[44718+((P^k)&255)>>0]^q)&255)<<2)>>2];r=r+1|0;if((r|0)==256)break;else{g=g+2|0;f=f+2|0}}P=c[9036+(((a[_>>0]^a[44974+((d[S>>0]|0)^243)>>0])&255)<<2)>>2]^c[8012+(((a[aa>>0]^a[44974+((d[T>>0]|0)^103)>>0])&255)<<2)>>2]^c[10060+(((a[Z>>0]^a[44718+((d[R>>0]|0)^103)>>0])&255)<<2)>>2]^c[11084+(((a[Y>>0]^a[44718+((d[Q>>0]|0)^243)>>0])&255)<<2)>>2];P=P<<8|P>>>24;O=P+(c[9036+(((a[da>>0]^a[44974+((d[W>>0]|0)^117)>>0])&255)<<2)>>2]^c[8012+(((a[e>>0]^a[44974+((d[X>>0]|0)^169)>>0])&255)<<2)>>2]^c[10060+(((a[ca>>0]^a[44718+((d[V>>0]|0)^169)>>0])&255)<<2)>>2]^c[11084+(((a[ba>>0]^a[44718+((d[U>>0]|0)^117)>>0])&255)<<2)>>2])|0;P=O+P|0;c[b+4096>>2]=O;c[b+4100>>2]=P<<9|P>>>23;P=c[9036+(((a[_>>0]^a[44974+((d[S>>0]|0)^244)>>0])&255)<<2)>>2]^c[8012+(((a[aa>>0]^a[44974+((d[T>>0]|0)^232)>>0])&255)<<2)>>2]^c[10060+(((a[Z>>0]^a[44718+((d[R>>0]|0)^232)>>0])&255)<<2)>>2]^c[11084+(((a[Y>>0]^a[44718+((d[Q>>0]|0)^244)>>0])&255)<<2)>>2];P=P<<8|P>>>24;O=P+(c[9036+(((a[da>>0]^a[44974+((d[W>>0]|0)^198)>>0])&255)<<2)>>2]^c[8012+(((a[e>>0]^a[44974+((d[X>>0]|0)^179)>>0])&255)<<2)>>2]^c[10060+(((a[ca>>0]^a[44718+((d[V>>0]|0)^179)>>0])&255)<<2)>>2]^c[11084+(((a[ba>>0]^a[44718+((d[U>>0]|0)^198)>>0])&255)<<2)>>2])|0;P=O+P|0;c[b+4104>>2]=O;c[b+4108>>2]=P<<9|P>>>23;P=c[9036+(((a[_>>0]^a[44974+((d[S>>0]|0)^123)>>0])&255)<<2)>>2]^c[8012+(((a[aa>>0]^a[44974+((d[T>>0]|0)^253)>>0])&255)<<2)>>2]^c[10060+(((a[Z>>0]^a[44718+((d[R>>0]|0)^253)>>0])&255)<<2)>>2]^c[11084+(((a[Y>>0]^a[44718+((d[Q>>0]|0)^123)>>0])&255)<<2)>>2];P=P<<8|P>>>24;O=P+(c[9036+(((a[da>>0]^a[44974+((d[W>>0]|0)^219)>>0])&255)<<2)>>2]^c[8012+(((a[e>>0]^a[44974+((d[X>>0]|0)^4)>>0])&255)<<2)>>2]^c[10060+(((a[ca>>0]^a[44718+((d[V>>0]|0)^4)>>0])&255)<<2)>>2]^c[11084+(((a[ba>>0]^a[44718+((d[U>>0]|0)^219)>>0])&255)<<2)>>2])|0;P=O+P|0;c[b+4112>>2]=O;c[b+4116>>2]=P<<9|P>>>23;P=c[9036+(((a[_>>0]^a[44974+((d[S>>0]|0)^200)>>0])&255)<<2)>>2]^c[8012+(((a[aa>>0]^a[44974+((d[T>>0]|0)^118)>>0])&255)<<2)>>2]^c[10060+(((a[Z>>0]^a[44718+((d[R>>0]|0)^118)>>0])&255)<<2)>>2]^c[11084+(((a[Y>>0]^a[44718+((d[Q>>0]|0)^200)>>0])&255)<<2)>>2];P=P<<8|P>>>24;O=P+(c[9036+(((a[da>>0]^a[44974+((d[W>>0]|0)^251)>>0])&255)<<2)>>2]^c[8012+(((a[e>>0]^a[44974+((d[X>>0]|0)^163)>>0])&255)<<2)>>2]^c[10060+(((a[ca>>0]^a[44718+((d[V>>0]|0)^163)>>0])&255)<<2)>>2]^c[11084+(((a[ba>>0]^a[44718+((d[U>>0]|0)^251)>>0])&255)<<2)>>2])|0;P=O+P|0;c[b+4120>>2]=O;c[b+4124>>2]=P<<9|P>>>23;P=c[9036+(((a[_>>0]^a[44974+((d[S>>0]|0)^211)>>0])&255)<<2)>>2]^c[8012+(((a[aa>>0]^a[44974+((d[T>>0]|0)^146)>>0])&255)<<2)>>2]^c[10060+(((a[Z>>0]^a[44718+((d[R>>0]|0)^146)>>0])&255)<<2)>>2]^c[11084+(((a[Y>>0]^a[44718+((d[Q>>0]|0)^211)>>0])&255)<<2)>>2];P=P<<8|P>>>24;O=P+(c[9036+(((a[da>>0]^a[44974+((d[W>>0]|0)^74)>>0])&255)<<2)>>2]^c[8012+(((a[e>>0]^a[44974+((d[X>>0]|0)^154)>>0])&255)<<2)>>2]^c[10060+(((a[ca>>0]^a[44718+((d[V>>0]|0)^154)>>0])&255)<<2)>>2]^c[11084+(((a[ba>>0]^a[44718+((d[U>>0]|0)^74)>>0])&255)<<2)>>2])|0;P=O+P|0;c[b+4128>>2]=O;c[b+4132>>2]=P<<9|P>>>23;P=c[9036+(((a[_>>0]^a[44974+((d[S>>0]|0)^107)>>0])&255)<<2)>>2]^c[8012+(((a[aa>>0]^a[44974+((d[T>>0]|0)^120)>>0])&255)<<2)>>2]^c[10060+(((a[Z>>0]^a[44718+((d[R>>0]|0)^120)>>0])&255)<<2)>>2]^c[11084+(((a[Y>>0]^a[44718+((d[Q>>0]|0)^107)>>0])&255)<<2)>>2];P=P<<8|P>>>24;O=P+(c[9036+(((a[da>>0]^a[44974+((d[W>>0]|0)^230)>>0])&255)<<2)>>2]^c[8012+(((a[e>>0]^a[44974+((d[X>>0]|0)^128)>>0])&255)<<2)>>2]^c[10060+(((a[ca>>0]^a[44718+((d[V>>0]|0)^128)>>0])&255)<<2)>>2]^c[11084+(((a[ba>>0]^a[44718+((d[U>>0]|0)^230)>>0])&255)<<2)>>2])|0;P=O+P|0;c[b+4136>>2]=O;c[b+4140>>2]=P<<9|P>>>23;P=c[9036+(((a[_>>0]^a[44974+((d[S>>0]|0)^125)>>0])&255)<<2)>>2]^c[8012+(((a[aa>>0]^a[44974+((d[T>>0]|0)^221)>>0])&255)<<2)>>2]^c[10060+(((a[Z>>0]^a[44718+((d[R>>0]|0)^221)>>0])&255)<<2)>>2]^c[11084+(((a[Y>>0]^a[44718+((d[Q>>0]|0)^125)>>0])&255)<<2)>>2];P=P<<8|P>>>24;O=P+(c[9036+(((a[da>>0]^a[44974+((d[W>>0]|0)^69)>>0])&255)<<2)>>2]^c[8012+(((a[e>>0]^a[44974+((d[X>>0]|0)^228)>>0])&255)<<2)>>2]^c[10060+(((a[ca>>0]^a[44718+((d[V>>0]|0)^228)>>0])&255)<<2)>>2]^c[11084+(((a[ba>>0]^a[44718+((d[U>>0]|0)^69)>>0])&255)<<2)>>2])|0;P=O+P|0;c[b+4144>>2]=O;c[b+4148>>2]=P<<9|P>>>23;P=c[9036+(((a[_>>0]^a[44974+((d[S>>0]|0)^75)>>0])&255)<<2)>>2]^c[8012+(((a[aa>>0]^a[44974+((d[T>>0]|0)^56)>>0])&255)<<2)>>2]^c[10060+(((a[Z>>0]^a[44718+((d[R>>0]|0)^56)>>0])&255)<<2)>>2]^c[11084+(((a[Y>>0]^a[44718+((d[Q>>0]|0)^75)>>0])&255)<<2)>>2];P=P<<8|P>>>24;O=P+(c[9036+(((a[da>>0]^a[44974+((d[W>>0]|0)^232)>>0])&255)<<2)>>2]^c[8012+(((a[e>>0]^a[44974+((d[X>>0]|0)^209)>>0])&255)<<2)>>2]^c[10060+(((a[ca>>0]^a[44718+((d[V>>0]|0)^209)>>0])&255)<<2)>>2]^c[11084+(((a[ba>>0]^a[44718+((d[U>>0]|0)^232)>>0])&255)<<2)>>2])|0;P=O+P|0;c[b+4152>>2]=O;c[b+4156>>2]=P<<9|P>>>23;P=c[9036+(((a[_>>0]^a[44974+((d[S>>0]|0)^50)>>0])&255)<<2)>>2]^c[8012+(((a[aa>>0]^a[44974+((d[T>>0]|0)^198)>>0])&255)<<2)>>2]^c[10060+(((a[Z>>0]^a[44718+((d[R>>0]|0)^198)>>0])&255)<<2)>>2]^c[11084+(((a[Y>>0]^a[44718+((d[Q>>0]|0)^50)>>0])&255)<<2)>>2];P=P<<8|P>>>24;O=P+(c[9036+(((a[da>>0]^a[44974+((d[W>>0]|0)^214)>>0])&255)<<2)>>2]^c[8012+(((a[e>>0]^a[44974+((d[X>>0]|0)^13)>>0])&255)<<2)>>2]^c[10060+(((a[ca>>0]^a[44718+((d[V>>0]|0)^13)>>0])&255)<<2)>>2]^c[11084+(((a[ba>>0]^a[44718+((d[U>>0]|0)^214)>>0])&255)<<2)>>2])|0;P=O+P|0;c[b+4160>>2]=O;c[b+4164>>2]=P<<9|P>>>23;P=c[9036+(((a[_>>0]^a[44974+((d[S>>0]|0)^253)>>0])&255)<<2)>>2]^c[8012+(((a[aa>>0]^a[44974+((d[T>>0]|0)^152)>>0])&255)<<2)>>2]^c[10060+(((a[Z>>0]^a[44718+((d[R>>0]|0)^152)>>0])&255)<<2)>>2]^c[11084+(((a[Y>>0]^a[44718+((d[Q>>0]|0)^253)>>0])&255)<<2)>>2];P=P<<8|P>>>24;O=P+(c[9036+(((a[da>>0]^a[44974+((d[W>>0]|0)^216)>>0])&255)<<2)>>2]^c[8012+(((a[e>>0]^a[44974+((d[X>>0]|0)^53)>>0])&255)<<2)>>2]^c[10060+(((a[ca>>0]^a[44718+((d[V>>0]|0)^53)>>0])&255)<<2)>>2]^c[11084+(((a[ba>>0]^a[44718+((d[U>>0]|0)^216)>>0])&255)<<2)>>2])|0;P=O+P|0;c[b+4168>>2]=O;c[b+4172>>2]=P<<9|P>>>23;P=c[9036+(((a[_>>0]^a[44974+((d[S>>0]|0)^113)>>0])&255)<<2)>>2]^c[8012+(((a[aa>>0]^a[44974+((d[T>>0]|0)^247)>>0])&255)<<2)>>2]^c[10060+(((a[Z>>0]^a[44718+((d[R>>0]|0)^247)>>0])&255)<<2)>>2]^c[11084+(((a[Y>>0]^a[44718+((d[Q>>0]|0)^113)>>0])&255)<<2)>>2];P=P<<8|P>>>24;O=P+(c[9036+(((a[da>>0]^a[44974+((d[W>>0]|0)^55)>>0])&255)<<2)>>2]^c[8012+(((a[e>>0]^a[44974+((d[X>>0]|0)^24)>>0])&255)<<2)>>2]^c[10060+(((a[ca>>0]^a[44718+((d[V>>0]|0)^24)>>0])&255)<<2)>>2]^c[11084+(((a[ba>>0]^a[44718+((d[U>>0]|0)^55)>>0])&255)<<2)>>2])|0;P=O+P|0;c[b+4176>>2]=O;c[b+4180>>2]=P<<9|P>>>23;P=c[9036+(((a[_>>0]^a[44974+((d[S>>0]|0)^225)>>0])&255)<<2)>>2]^c[8012+(((a[aa>>0]^a[44974+((d[T>>0]|0)^108)>>0])&255)<<2)>>2]^c[10060+(((a[Z>>0]^a[44718+((d[R>>0]|0)^108)>>0])&255)<<2)>>2]^c[11084+(((a[Y>>0]^a[44718+((d[Q>>0]|0)^225)>>0])&255)<<2)>>2];P=P<<8|P>>>24;O=P+(c[9036+(((a[da>>0]^a[44974+((d[W>>0]|0)^241)>>0])&255)<<2)>>2]^c[8012+(((a[e>>0]^a[44974+((d[X>>0]|0)^236)>>0])&255)<<2)>>2]^c[10060+(((a[ca>>0]^a[44718+((d[V>>0]|0)^236)>>0])&255)<<2)>>2]^c[11084+(((a[ba>>0]^a[44718+((d[U>>0]|0)^241)>>0])&255)<<2)>>2])|0;P=O+P|0;c[b+4184>>2]=O;c[b+4188>>2]=P<<9|P>>>23;P=c[9036+(((a[_>>0]^a[44974+((d[S>>0]|0)^15)>>0])&255)<<2)>>2]^c[8012+(((a[aa>>0]^a[44974+((d[T>>0]|0)^117)>>0])&255)<<2)>>2]^c[10060+(((a[Z>>0]^a[44718+((d[R>>0]|0)^117)>>0])&255)<<2)>>2]^c[11084+(((a[Y>>0]^a[44718+((d[Q>>0]|0)^15)>>0])&255)<<2)>>2];P=P<<8|P>>>24;O=P+(c[9036+(((a[da>>0]^a[44974+((d[W>>0]|0)^48)>>0])&255)<<2)>>2]^c[8012+(((a[e>>0]^a[44974+((d[X>>0]|0)^67)>>0])&255)<<2)>>2]^c[10060+(((a[ca>>0]^a[44718+((d[V>>0]|0)^67)>>0])&255)<<2)>>2]^c[11084+(((a[ba>>0]^a[44718+((d[U>>0]|0)^48)>>0])&255)<<2)>>2])|0;P=O+P|0;c[b+4192>>2]=O;c[b+4196>>2]=P<<9|P>>>23;P=c[9036+(((a[_>>0]^a[44974+((d[S>>0]|0)^27)>>0])&255)<<2)>>2]^c[8012+(((a[aa>>0]^a[44974+((d[T>>0]|0)^38)>>0])&255)<<2)>>2]^c[10060+(((a[Z>>0]^a[44718+((d[R>>0]|0)^38)>>0])&255)<<2)>>2]^c[11084+(((a[Y>>0]^a[44718+((d[Q>>0]|0)^27)>>0])&255)<<2)>>2];P=P<<8|P>>>24;O=P+(c[9036+(((a[da>>0]^a[44974+((d[W>>0]|0)^248)>>0])&255)<<2)>>2]^c[8012+(((a[e>>0]^a[44974+((d[X>>0]|0)^55)>>0])&255)<<2)>>2]^c[10060+(((a[ca>>0]^a[44718+((d[V>>0]|0)^55)>>0])&255)<<2)>>2]^c[11084+(((a[ba>>0]^a[44718+((d[U>>0]|0)^248)>>0])&255)<<2)>>2])|0;P=O+P|0;c[b+4200>>2]=O;c[b+4204>>2]=P<<9|P>>>23;P=c[9036+(((a[_>>0]^a[44974+((d[S>>0]|0)^250)>>0])&255)<<2)>>2]^c[8012+(((a[aa>>0]^a[44974+((d[T>>0]|0)^19)>>0])&255)<<2)>>2]^c[10060+(((a[Z>>0]^a[44718+((d[R>>0]|0)^19)>>0])&255)<<2)>>2]^c[11084+(((a[Y>>0]^a[44718+((d[Q>>0]|0)^250)>>0])&255)<<2)>>2];P=P<<8|P>>>24;O=P+(c[9036+(((a[da>>0]^a[44974+((d[W>>0]|0)^135)>>0])&255)<<2)>>2]^c[8012+(((a[e>>0]^a[44974+((d[X>>0]|0)^250)>>0])&255)<<2)>>2]^c[10060+(((a[ca>>0]^a[44718+((d[V>>0]|0)^250)>>0])&255)<<2)>>2]^c[11084+(((a[ba>>0]^a[44718+((d[U>>0]|0)^135)>>0])&255)<<2)>>2])|0;P=O+P|0;c[b+4208>>2]=O;c[b+4212>>2]=P<<9|P>>>23;P=c[9036+(((a[_>>0]^a[44974+((d[S>>0]|0)^63)>>0])&255)<<2)>>2]^c[8012+(((a[aa>>0]^a[44974+((d[T>>0]|0)^72)>>0])&255)<<2)>>2]^c[10060+(((a[Z>>0]^a[44718+((d[R>>0]|0)^72)>>0])&255)<<2)>>2]^c[11084+(((a[Y>>0]^a[44718+((d[Q>>0]|0)^63)>>0])&255)<<2)>>2];P=P<<8|P>>>24;O=P+(c[9036+(((a[da>>0]^a[44974+((d[W>>0]|0)^6)>>0])&255)<<2)>>2]^c[8012+(((a[e>>0]^a[44974+((d[X>>0]|0)^148)>>0])&255)<<2)>>2]^c[10060+(((a[ca>>0]^a[44718+((d[V>>0]|0)^148)>>0])&255)<<2)>>2]^c[11084+(((a[ba>>0]^a[44718+((d[U>>0]|0)^6)>>0])&255)<<2)>>2])|0;P=O+P|0;c[b+4216>>2]=O;c[b+4220>>2]=P<<9|P>>>23;P=c[9036+(((a[_>>0]^a[44974+((d[S>>0]|0)^186)>>0])&255)<<2)>>2]^c[8012+(((a[aa>>0]^a[44974+((d[T>>0]|0)^208)>>0])&255)<<2)>>2]^c[10060+(((a[Z>>0]^a[44718+((d[R>>0]|0)^208)>>0])&255)<<2)>>2]^c[11084+(((a[Y>>0]^a[44718+((d[Q>>0]|0)^186)>>0])&255)<<2)>>2];P=P<<8|P>>>24;O=P+(c[9036+(((a[da>>0]^a[44974+((d[W>>0]|0)^94)>>0])&255)<<2)>>2]^c[8012+(((a[e>>0]^a[44974+((d[X>>0]|0)^242)>>0])&255)<<2)>>2]^c[10060+(((a[ca>>0]^a[44718+((d[V>>0]|0)^242)>>0])&255)<<2)>>2]^c[11084+(((a[ba>>0]^a[44718+((d[U>>0]|0)^94)>>0])&255)<<2)>>2])|0;P=O+P|0;c[b+4224>>2]=O;c[b+4228>>2]=P<<9|P>>>23;P=c[9036+(((a[_>>0]^a[44974+((d[S>>0]|0)^91)>>0])&255)<<2)>>2]^c[8012+(((a[aa>>0]^a[44974+((d[T>>0]|0)^48)>>0])&255)<<2)>>2]^c[10060+(((a[Z>>0]^a[44718+((d[R>>0]|0)^48)>>0])&255)<<2)>>2]^c[11084+(((a[Y>>0]^a[44718+((d[Q>>0]|0)^91)>>0])&255)<<2)>>2];P=P<<8|P>>>24;O=P+(c[9036+(((a[da>>0]^a[44974+((d[W>>0]|0)^174)>>0])&255)<<2)>>2]^c[8012+(((a[e>>0]^a[44974+((d[X>>0]|0)^139)>>0])&255)<<2)>>2]^c[10060+(((a[ca>>0]^a[44718+((d[V>>0]|0)^139)>>0])&255)<<2)>>2]^c[11084+(((a[ba>>0]^a[44718+((d[U>>0]|0)^174)>>0])&255)<<2)>>2])|0;P=O+P|0;c[b+4232>>2]=O;c[b+4236>>2]=P<<9|P>>>23;P=c[9036+(((a[_>>0]^a[44974+(d[S>>0]|0)>>0])&255)<<2)>>2]^c[8012+(((a[aa>>0]^a[44974+((d[T>>0]|0)^84)>>0])&255)<<2)>>2]^c[10060+(((a[Z>>0]^a[44718+((d[R>>0]|0)^84)>>0])&255)<<2)>>2]^c[11084+(((a[Y>>0]^a[44718+(d[Q>>0]|0)>>0])&255)<<2)>>2];P=P<<8|P>>>24;O=P+(c[9036+(((a[da>>0]^a[44974+((d[W>>0]|0)^138)>>0])&255)<<2)>>2]^c[8012+(((a[e>>0]^a[44974+((d[X>>0]|0)^132)>>0])&255)<<2)>>2]^c[10060+(((a[ca>>0]^a[44718+((d[V>>0]|0)^132)>>0])&255)<<2)>>2]^c[11084+(((a[ba>>0]^a[44718+((d[U>>0]|0)^138)>>0])&255)<<2)>>2])|0;P=O+P|0;c[b+4240>>2]=O;c[b+4244>>2]=P<<9|P>>>23;aa=c[9036+(((a[_>>0]^a[44974+((d[S>>0]|0)^157)>>0])&255)<<2)>>2]^c[8012+(((a[aa>>0]^a[44974+((d[T>>0]|0)^35)>>0])&255)<<2)>>2]^c[10060+(((a[Z>>0]^a[44718+((d[R>>0]|0)^35)>>0])&255)<<2)>>2]^c[11084+(((a[Y>>0]^a[44718+((d[Q>>0]|0)^157)>>0])&255)<<2)>>2];aa=aa<<8|aa>>>24;da=aa+(c[9036+(((a[da>>0]^a[44974+((d[W>>0]|0)^188)>>0])&255)<<2)>>2]^c[8012+(((a[e>>0]^a[44974+((d[X>>0]|0)^223)>>0])&255)<<2)>>2]^c[10060+(((a[ca>>0]^a[44718+((d[V>>0]|0)^223)>>0])&255)<<2)>>2]^c[11084+(((a[ba>>0]^a[44718+((d[U>>0]|0)^188)>>0])&255)<<2)>>2])|0;e=da+aa|0;c[b+4248>>2]=da;c[b+4252>>2]=e<<9|e>>>23;e=0;l=ea;return e|0}P=e+16|0;g=a[P>>0]|0;if(!(g<<24>>24)){f=0;r=0;s=0}else{s=d[43459+((g&255)+-1)>>0]|0;f=a[43714+(s+1)>>0]|0;r=a[43714+(s+45)>>0]|0;s=a[43714+s>>0]|0}O=e+17|0;g=a[O>>0]|0;if(!(g<<24>>24))t=r;else{N=d[43459+((g&255)+-1)>>0]|0;t=a[43714+(N+138)>>0]^r;f=a[43714+(N+68)>>0]^f;r=a[43714+(N+164)>>0]^r;s=a[43714+(N+45)>>0]^s}N=e+18|0;g=a[N>>0]|0;if(g<<24>>24){M=d[43459+((g&255)+-1)>>0]|0;t=a[43714+(M+209)>>0]^t;f=a[43714+(M+191)>>0]^f;r=a[43714+(M+213)>>0]^r;s=a[43714+(M+138)>>0]^s}M=e+19|0;g=a[M>>0]|0;if(g<<24>>24){L=d[43459+((g&255)+-1)>>0]|0;t=a[43714+(L+153)>>0]^t;f=a[43714+(L+61)>>0]^f;r=a[43714+(L+127)>>0]^r;s=a[43714+(L+209)>>0]^s}L=e+20|0;g=a[L>>0]|0;if(g<<24>>24){K=d[43459+((g&255)+-1)>>0]|0;t=a[43714+(K+150)>>0]^t;f=a[43714+(K+102)>>0]^f;r=a[43714+(K+70)>>0]^r;s=a[43714+(K+153)>>0]^s}K=e+21|0;g=a[K>>0]|0;if(g<<24>>24){J=d[43459+((g&255)+-1)>>0]|0;t=a[43714+(J+237)>>0]^t;f=a[43714+(J+91)>>0]^f;r=a[43714+(J+60)>>0]^r;s=a[43714+(J+150)>>0]^s}J=e+22|0;g=a[J>>0]|0;if(g<<24>>24){I=d[43459+((g&255)+-1)>>0]|0;t=a[43714+(I+224)>>0]^t;f=a[43714+(I+79)>>0]^f;r=a[43714+(I+55)>>0]^r;s=a[43714+(I+237)>>0]^s}I=e+23|0;g=a[I>>0]|0;if(g<<24>>24){H=d[43459+((g&255)+-1)>>0]|0;t=a[43714+(H+23)>>0]^t;f=a[43714+(H+140)>>0]^f;r=a[43714+(H+208)>>0]^r;s=a[43714+(H+224)>>0]^s}H=e+24|0;g=a[H>>0]|0;if(!(g<<24>>24)){u=0;v=0;w=0}else{w=d[43459+((g&255)+-1)>>0]|0;u=a[43714+(w+1)>>0]|0;v=a[43714+(w+45)>>0]|0;w=a[43714+w>>0]|0}G=e+25|0;g=a[G>>0]|0;if(!(g<<24>>24))x=v;else{F=d[43459+((g&255)+-1)>>0]|0;x=a[43714+(F+138)>>0]^v;u=a[43714+(F+68)>>0]^u;v=a[43714+(F+164)>>0]^v;w=a[43714+(F+45)>>0]^w}F=e+26|0;g=a[F>>0]|0;if(g<<24>>24){E=d[43459+((g&255)+-1)>>0]|0;x=a[43714+(E+209)>>0]^x;u=a[43714+(E+191)>>0]^u;v=a[43714+(E+213)>>0]^v;w=a[43714+(E+138)>>0]^w}E=e+27|0;g=a[E>>0]|0;if(g<<24>>24){D=d[43459+((g&255)+-1)>>0]|0;x=a[43714+(D+153)>>0]^x;u=a[43714+(D+61)>>0]^u;v=a[43714+(D+127)>>0]^v;w=a[43714+(D+209)>>0]^w}D=e+28|0;g=a[D>>0]|0;if(g<<24>>24){C=d[43459+((g&255)+-1)>>0]|0;x=a[43714+(C+150)>>0]^x;u=a[43714+(C+102)>>0]^u;v=a[43714+(C+70)>>0]^v;w=a[43714+(C+153)>>0]^w}C=e+29|0;g=a[C>>0]|0;if(g<<24>>24){B=d[43459+((g&255)+-1)>>0]|0;x=a[43714+(B+237)>>0]^x;u=a[43714+(B+91)>>0]^u;v=a[43714+(B+60)>>0]^v;w=a[43714+(B+150)>>0]^w}B=e+30|0;g=a[B>>0]|0;if(g<<24>>24){A=d[43459+((g&255)+-1)>>0]|0;x=a[43714+(A+224)>>0]^x;u=a[43714+(A+79)>>0]^u;v=a[43714+(A+55)>>0]^v;w=a[43714+(A+237)>>0]^w}A=e+31|0;g=a[A>>0]|0;if(g<<24>>24){z=d[43459+((g&255)+-1)>>0]|0;x=a[43714+(z+23)>>0]^x;u=a[43714+(z+140)>>0]^u;v=a[43714+(z+208)>>0]^v;w=a[43714+(z+224)>>0]^w}g=1;y=0;z=0;while(1){fa=a[44206+g>>0]|0;c[b+(z<<2)>>2]=c[8012+(((a[44974+((a[44974+((a[44718+((fa^j)&255)>>0]^p)&255)>>0]^s)&255)>>0]^w)&255)<<2)>>2];ga=a[44206+y>>0]|0;c[b+1024+(z<<2)>>2]=c[9036+(((a[44974+((a[44718+((a[44718+((ga^i)&255)>>0]^o)&255)>>0]^r)&255)>>0]^v)&255)<<2)>>2];c[b+2048+(z<<2)>>2]=c[10060+(((a[44718+((a[44974+((a[44974+((ga^h)&255)>>0]^n)&255)>>0]^f)&255)>>0]^u)&255)<<2)>>2];c[b+3072+(z<<2)>>2]=c[11084+(((a[44718+((a[44718+((a[44974+((fa^k)&255)>>0]^q)&255)>>0]^t)&255)>>0]^x)&255)<<2)>>2];z=z+1|0;if((z|0)==256)break;else{g=g+2|0;y=y+2|0}}ga=c[9036+(((a[_>>0]^a[44974+((a[S>>0]^a[44718+((a[K>>0]^a[44718+((d[C>>0]|0)^103)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[8012+(((a[aa>>0]^a[44974+((a[T>>0]^a[44974+((a[L>>0]^a[44718+((d[D>>0]|0)^243)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[10060+(((a[Z>>0]^a[44718+((a[R>>0]^a[44974+((a[J>>0]^a[44974+((d[B>>0]|0)^103)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[11084+(((a[Y>>0]^a[44718+((a[Q>>0]^a[44718+((a[I>>0]^a[44974+((d[A>>0]|0)^243)>>0])&255)>>0])&255)>>0])&255)<<2)>>2];ga=ga<<8|ga>>>24;fa=ga+(c[9036+(((a[da>>0]^a[44974+((a[W>>0]^a[44718+((a[O>>0]^a[44718+((d[G>>0]|0)^169)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[8012+(((a[e>>0]^a[44974+((a[X>>0]^a[44974+((a[P>>0]^a[44718+((d[H>>0]|0)^117)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[10060+(((a[ca>>0]^a[44718+((a[V>>0]^a[44974+((a[N>>0]^a[44974+((d[F>>0]|0)^169)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[11084+(((a[ba>>0]^a[44718+((a[U>>0]^a[44718+((a[M>>0]^a[44974+((d[E>>0]|0)^117)>>0])&255)>>0])&255)>>0])&255)<<2)>>2])|0;ga=fa+ga|0;c[b+4096>>2]=fa;c[b+4100>>2]=ga<<9|ga>>>23;ga=c[9036+(((a[_>>0]^a[44974+((a[S>>0]^a[44718+((a[K>>0]^a[44718+((d[C>>0]|0)^232)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[8012+(((a[aa>>0]^a[44974+((a[T>>0]^a[44974+((a[L>>0]^a[44718+((d[D>>0]|0)^244)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[10060+(((a[Z>>0]^a[44718+((a[R>>0]^a[44974+((a[J>>0]^a[44974+((d[B>>0]|0)^232)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[11084+(((a[Y>>0]^a[44718+((a[Q>>0]^a[44718+((a[I>>0]^a[44974+((d[A>>0]|0)^244)>>0])&255)>>0])&255)>>0])&255)<<2)>>2];ga=ga<<8|ga>>>24;fa=ga+(c[9036+(((a[da>>0]^a[44974+((a[W>>0]^a[44718+((a[O>>0]^a[44718+((d[G>>0]|0)^179)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[8012+(((a[e>>0]^a[44974+((a[X>>0]^a[44974+((a[P>>0]^a[44718+((d[H>>0]|0)^198)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[10060+(((a[ca>>0]^a[44718+((a[V>>0]^a[44974+((a[N>>0]^a[44974+((d[F>>0]|0)^179)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[11084+(((a[ba>>0]^a[44718+((a[U>>0]^a[44718+((a[M>>0]^a[44974+((d[E>>0]|0)^198)>>0])&255)>>0])&255)>>0])&255)<<2)>>2])|0;ga=fa+ga|0;c[b+4104>>2]=fa;c[b+4108>>2]=ga<<9|ga>>>23;ga=c[9036+(((a[_>>0]^a[44974+((a[S>>0]^a[44718+((a[K>>0]^a[44718+((d[C>>0]|0)^253)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[8012+(((a[aa>>0]^a[44974+((a[T>>0]^a[44974+((a[L>>0]^a[44718+((d[D>>0]|0)^123)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[10060+(((a[Z>>0]^a[44718+((a[R>>0]^a[44974+((a[J>>0]^a[44974+((d[B>>0]|0)^253)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[11084+(((a[Y>>0]^a[44718+((a[Q>>0]^a[44718+((a[I>>0]^a[44974+((d[A>>0]|0)^123)>>0])&255)>>0])&255)>>0])&255)<<2)>>2];ga=ga<<8|ga>>>24;fa=ga+(c[9036+(((a[da>>0]^a[44974+((a[W>>0]^a[44718+((a[O>>0]^a[44718+((d[G>>0]|0)^4)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[8012+(((a[e>>0]^a[44974+((a[X>>0]^a[44974+((a[P>>0]^a[44718+((d[H>>0]|0)^219)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[10060+(((a[ca>>0]^a[44718+((a[V>>0]^a[44974+((a[N>>0]^a[44974+((d[F>>0]|0)^4)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[11084+(((a[ba>>0]^a[44718+((a[U>>0]^a[44718+((a[M>>0]^a[44974+((d[E>>0]|0)^219)>>0])&255)>>0])&255)>>0])&255)<<2)>>2])|0;ga=fa+ga|0;c[b+4112>>2]=fa;c[b+4116>>2]=ga<<9|ga>>>23;ga=c[9036+(((a[_>>0]^a[44974+((a[S>>0]^a[44718+((a[K>>0]^a[44718+((d[C>>0]|0)^118)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[8012+(((a[aa>>0]^a[44974+((a[T>>0]^a[44974+((a[L>>0]^a[44718+((d[D>>0]|0)^200)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[10060+(((a[Z>>0]^a[44718+((a[R>>0]^a[44974+((a[J>>0]^a[44974+((d[B>>0]|0)^118)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[11084+(((a[Y>>0]^a[44718+((a[Q>>0]^a[44718+((a[I>>0]^a[44974+((d[A>>0]|0)^200)>>0])&255)>>0])&255)>>0])&255)<<2)>>2];ga=ga<<8|ga>>>24;fa=ga+(c[9036+(((a[da>>0]^a[44974+((a[W>>0]^a[44718+((a[O>>0]^a[44718+((d[G>>0]|0)^163)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[8012+(((a[e>>0]^a[44974+((a[X>>0]^a[44974+((a[P>>0]^a[44718+((d[H>>0]|0)^251)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[10060+(((a[ca>>0]^a[44718+((a[V>>0]^a[44974+((a[N>>0]^a[44974+((d[F>>0]|0)^163)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[11084+(((a[ba>>0]^a[44718+((a[U>>0]^a[44718+((a[M>>0]^a[44974+((d[E>>0]|0)^251)>>0])&255)>>0])&255)>>0])&255)<<2)>>2])|0;ga=fa+ga|0;c[b+4120>>2]=fa;c[b+4124>>2]=ga<<9|ga>>>23;ga=c[9036+(((a[_>>0]^a[44974+((a[S>>0]^a[44718+((a[K>>0]^a[44718+((d[C>>0]|0)^146)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[8012+(((a[aa>>0]^a[44974+((a[T>>0]^a[44974+((a[L>>0]^a[44718+((d[D>>0]|0)^211)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[10060+(((a[Z>>0]^a[44718+((a[R>>0]^a[44974+((a[J>>0]^a[44974+((d[B>>0]|0)^146)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[11084+(((a[Y>>0]^a[44718+((a[Q>>0]^a[44718+((a[I>>0]^a[44974+((d[A>>0]|0)^211)>>0])&255)>>0])&255)>>0])&255)<<2)>>2];ga=ga<<8|ga>>>24;fa=ga+(c[9036+(((a[da>>0]^a[44974+((a[W>>0]^a[44718+((a[O>>0]^a[44718+((d[G>>0]|0)^154)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[8012+(((a[e>>0]^a[44974+((a[X>>0]^a[44974+((a[P>>0]^a[44718+((d[H>>0]|0)^74)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[10060+(((a[ca>>0]^a[44718+((a[V>>0]^a[44974+((a[N>>0]^a[44974+((d[F>>0]|0)^154)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[11084+(((a[ba>>0]^a[44718+((a[U>>0]^a[44718+((a[M>>0]^a[44974+((d[E>>0]|0)^74)>>0])&255)>>0])&255)>>0])&255)<<2)>>2])|0;ga=fa+ga|0;c[b+4128>>2]=fa;c[b+4132>>2]=ga<<9|ga>>>23;ga=c[9036+(((a[_>>0]^a[44974+((a[S>>0]^a[44718+((a[K>>0]^a[44718+((d[C>>0]|0)^120)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[8012+(((a[aa>>0]^a[44974+((a[T>>0]^a[44974+((a[L>>0]^a[44718+((d[D>>0]|0)^107)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[10060+(((a[Z>>0]^a[44718+((a[R>>0]^a[44974+((a[J>>0]^a[44974+((d[B>>0]|0)^120)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[11084+(((a[Y>>0]^a[44718+((a[Q>>0]^a[44718+((a[I>>0]^a[44974+((d[A>>0]|0)^107)>>0])&255)>>0])&255)>>0])&255)<<2)>>2];ga=ga<<8|ga>>>24;fa=ga+(c[9036+(((a[da>>0]^a[44974+((a[W>>0]^a[44718+((a[O>>0]^a[44718+((d[G>>0]|0)^128)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[8012+(((a[e>>0]^a[44974+((a[X>>0]^a[44974+((a[P>>0]^a[44718+((d[H>>0]|0)^230)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[10060+(((a[ca>>0]^a[44718+((a[V>>0]^a[44974+((a[N>>0]^a[44974+((d[F>>0]|0)^128)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[11084+(((a[ba>>0]^a[44718+((a[U>>0]^a[44718+((a[M>>0]^a[44974+((d[E>>0]|0)^230)>>0])&255)>>0])&255)>>0])&255)<<2)>>2])|0;ga=fa+ga|0;c[b+4136>>2]=fa;c[b+4140>>2]=ga<<9|ga>>>23;ga=c[9036+(((a[_>>0]^a[44974+((a[S>>0]^a[44718+((a[K>>0]^a[44718+((d[C>>0]|0)^221)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[8012+(((a[aa>>0]^a[44974+((a[T>>0]^a[44974+((a[L>>0]^a[44718+((d[D>>0]|0)^125)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[10060+(((a[Z>>0]^a[44718+((a[R>>0]^a[44974+((a[J>>0]^a[44974+((d[B>>0]|0)^221)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[11084+(((a[Y>>0]^a[44718+((a[Q>>0]^a[44718+((a[I>>0]^a[44974+((d[A>>0]|0)^125)>>0])&255)>>0])&255)>>0])&255)<<2)>>2];ga=ga<<8|ga>>>24;fa=ga+(c[9036+(((a[da>>0]^a[44974+((a[W>>0]^a[44718+((a[O>>0]^a[44718+((d[G>>0]|0)^228)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[8012+(((a[e>>0]^a[44974+((a[X>>0]^a[44974+((a[P>>0]^a[44718+((d[H>>0]|0)^69)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[10060+(((a[ca>>0]^a[44718+((a[V>>0]^a[44974+((a[N>>0]^a[44974+((d[F>>0]|0)^228)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[11084+(((a[ba>>0]^a[44718+((a[U>>0]^a[44718+((a[M>>0]^a[44974+((d[E>>0]|0)^69)>>0])&255)>>0])&255)>>0])&255)<<2)>>2])|0;ga=fa+ga|0;c[b+4144>>2]=fa;c[b+4148>>2]=ga<<9|ga>>>23;ga=c[9036+(((a[_>>0]^a[44974+((a[S>>0]^a[44718+((a[K>>0]^a[44718+((d[C>>0]|0)^56)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[8012+(((a[aa>>0]^a[44974+((a[T>>0]^a[44974+((a[L>>0]^a[44718+((d[D>>0]|0)^75)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[10060+(((a[Z>>0]^a[44718+((a[R>>0]^a[44974+((a[J>>0]^a[44974+((d[B>>0]|0)^56)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[11084+(((a[Y>>0]^a[44718+((a[Q>>0]^a[44718+((a[I>>0]^a[44974+((d[A>>0]|0)^75)>>0])&255)>>0])&255)>>0])&255)<<2)>>2];ga=ga<<8|ga>>>24;fa=ga+(c[9036+(((a[da>>0]^a[44974+((a[W>>0]^a[44718+((a[O>>0]^a[44718+((d[G>>0]|0)^209)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[8012+(((a[e>>0]^a[44974+((a[X>>0]^a[44974+((a[P>>0]^a[44718+((d[H>>0]|0)^232)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[10060+(((a[ca>>0]^a[44718+((a[V>>0]^a[44974+((a[N>>0]^a[44974+((d[F>>0]|0)^209)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[11084+(((a[ba>>0]^a[44718+((a[U>>0]^a[44718+((a[M>>0]^a[44974+((d[E>>0]|0)^232)>>0])&255)>>0])&255)>>0])&255)<<2)>>2])|0;ga=fa+ga|0;c[b+4152>>2]=fa;c[b+4156>>2]=ga<<9|ga>>>23;ga=c[9036+(((a[_>>0]^a[44974+((a[S>>0]^a[44718+((a[K>>0]^a[44718+((d[C>>0]|0)^198)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[8012+(((a[aa>>0]^a[44974+((a[T>>0]^a[44974+((a[L>>0]^a[44718+((d[D>>0]|0)^50)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[10060+(((a[Z>>0]^a[44718+((a[R>>0]^a[44974+((a[J>>0]^a[44974+((d[B>>0]|0)^198)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[11084+(((a[Y>>0]^a[44718+((a[Q>>0]^a[44718+((a[I>>0]^a[44974+((d[A>>0]|0)^50)>>0])&255)>>0])&255)>>0])&255)<<2)>>2];ga=ga<<8|ga>>>24;fa=ga+(c[9036+(((a[da>>0]^a[44974+((a[W>>0]^a[44718+((a[O>>0]^a[44718+((d[G>>0]|0)^13)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[8012+(((a[e>>0]^a[44974+((a[X>>0]^a[44974+((a[P>>0]^a[44718+((d[H>>0]|0)^214)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[10060+(((a[ca>>0]^a[44718+((a[V>>0]^a[44974+((a[N>>0]^a[44974+((d[F>>0]|0)^13)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[11084+(((a[ba>>0]^a[44718+((a[U>>0]^a[44718+((a[M>>0]^a[44974+((d[E>>0]|0)^214)>>0])&255)>>0])&255)>>0])&255)<<2)>>2])|0;ga=fa+ga|0;c[b+4160>>2]=fa;c[b+4164>>2]=ga<<9|ga>>>23;ga=c[9036+(((a[_>>0]^a[44974+((a[S>>0]^a[44718+((a[K>>0]^a[44718+((d[C>>0]|0)^152)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[8012+(((a[aa>>0]^a[44974+((a[T>>0]^a[44974+((a[L>>0]^a[44718+((d[D>>0]|0)^253)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[10060+(((a[Z>>0]^a[44718+((a[R>>0]^a[44974+((a[J>>0]^a[44974+((d[B>>0]|0)^152)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[11084+(((a[Y>>0]^a[44718+((a[Q>>0]^a[44718+((a[I>>0]^a[44974+((d[A>>0]|0)^253)>>0])&255)>>0])&255)>>0])&255)<<2)>>2];ga=ga<<8|ga>>>24;fa=ga+(c[9036+(((a[da>>0]^a[44974+((a[W>>0]^a[44718+((a[O>>0]^a[44718+((d[G>>0]|0)^53)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[8012+(((a[e>>0]^a[44974+((a[X>>0]^a[44974+((a[P>>0]^a[44718+((d[H>>0]|0)^216)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[10060+(((a[ca>>0]^a[44718+((a[V>>0]^a[44974+((a[N>>0]^a[44974+((d[F>>0]|0)^53)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[11084+(((a[ba>>0]^a[44718+((a[U>>0]^a[44718+((a[M>>0]^a[44974+((d[E>>0]|0)^216)>>0])&255)>>0])&255)>>0])&255)<<2)>>2])|0;ga=fa+ga|0;c[b+4168>>2]=fa;c[b+4172>>2]=ga<<9|ga>>>23;ga=c[9036+(((a[_>>0]^a[44974+((a[S>>0]^a[44718+((a[K>>0]^a[44718+((d[C>>0]|0)^247)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[8012+(((a[aa>>0]^a[44974+((a[T>>0]^a[44974+((a[L>>0]^a[44718+((d[D>>0]|0)^113)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[10060+(((a[Z>>0]^a[44718+((a[R>>0]^a[44974+((a[J>>0]^a[44974+((d[B>>0]|0)^247)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[11084+(((a[Y>>0]^a[44718+((a[Q>>0]^a[44718+((a[I>>0]^a[44974+((d[A>>0]|0)^113)>>0])&255)>>0])&255)>>0])&255)<<2)>>2];ga=ga<<8|ga>>>24;fa=ga+(c[9036+(((a[da>>0]^a[44974+((a[W>>0]^a[44718+((a[O>>0]^a[44718+((d[G>>0]|0)^24)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[8012+(((a[e>>0]^a[44974+((a[X>>0]^a[44974+((a[P>>0]^a[44718+((d[H>>0]|0)^55)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[10060+(((a[ca>>0]^a[44718+((a[V>>0]^a[44974+((a[N>>0]^a[44974+((d[F>>0]|0)^24)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[11084+(((a[ba>>0]^a[44718+((a[U>>0]^a[44718+((a[M>>0]^a[44974+((d[E>>0]|0)^55)>>0])&255)>>0])&255)>>0])&255)<<2)>>2])|0;ga=fa+ga|0;c[b+4176>>2]=fa;c[b+4180>>2]=ga<<9|ga>>>23;ga=c[9036+(((a[_>>0]^a[44974+((a[S>>0]^a[44718+((a[K>>0]^a[44718+((d[C>>0]|0)^108)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[8012+(((a[aa>>0]^a[44974+((a[T>>0]^a[44974+((a[L>>0]^a[44718+((d[D>>0]|0)^225)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[10060+(((a[Z>>0]^a[44718+((a[R>>0]^a[44974+((a[J>>0]^a[44974+((d[B>>0]|0)^108)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[11084+(((a[Y>>0]^a[44718+((a[Q>>0]^a[44718+((a[I>>0]^a[44974+((d[A>>0]|0)^225)>>0])&255)>>0])&255)>>0])&255)<<2)>>2];ga=ga<<8|ga>>>24;fa=ga+(c[9036+(((a[da>>0]^a[44974+((a[W>>0]^a[44718+((a[O>>0]^a[44718+((d[G>>0]|0)^236)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[8012+(((a[e>>0]^a[44974+((a[X>>0]^a[44974+((a[P>>0]^a[44718+((d[H>>0]|0)^241)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[10060+(((a[ca>>0]^a[44718+((a[V>>0]^a[44974+((a[N>>0]^a[44974+((d[F>>0]|0)^236)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[11084+(((a[ba>>0]^a[44718+((a[U>>0]^a[44718+((a[M>>0]^a[44974+((d[E>>0]|0)^241)>>0])&255)>>0])&255)>>0])&255)<<2)>>2])|0;ga=fa+ga|0;c[b+4184>>2]=fa;c[b+4188>>2]=ga<<9|ga>>>23;ga=c[9036+(((a[_>>0]^a[44974+((a[S>>0]^a[44718+((a[K>>0]^a[44718+((d[C>>0]|0)^117)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[8012+(((a[aa>>0]^a[44974+((a[T>>0]^a[44974+((a[L>>0]^a[44718+((d[D>>0]|0)^15)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[10060+(((a[Z>>0]^a[44718+((a[R>>0]^a[44974+((a[J>>0]^a[44974+((d[B>>0]|0)^117)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[11084+(((a[Y>>0]^a[44718+((a[Q>>0]^a[44718+((a[I>>0]^a[44974+((d[A>>0]|0)^15)>>0])&255)>>0])&255)>>0])&255)<<2)>>2];ga=ga<<8|ga>>>24;fa=ga+(c[9036+(((a[da>>0]^a[44974+((a[W>>0]^a[44718+((a[O>>0]^a[44718+((d[G>>0]|0)^67)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[8012+(((a[e>>0]^a[44974+((a[X>>0]^a[44974+((a[P>>0]^a[44718+((d[H>>0]|0)^48)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[10060+(((a[ca>>0]^a[44718+((a[V>>0]^a[44974+((a[N>>0]^a[44974+((d[F>>0]|0)^67)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[11084+(((a[ba>>0]^a[44718+((a[U>>0]^a[44718+((a[M>>0]^a[44974+((d[E>>0]|0)^48)>>0])&255)>>0])&255)>>0])&255)<<2)>>2])|0;ga=fa+ga|0;c[b+4192>>2]=fa;c[b+4196>>2]=ga<<9|ga>>>23;ga=c[9036+(((a[_>>0]^a[44974+((a[S>>0]^a[44718+((a[K>>0]^a[44718+((d[C>>0]|0)^38)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[8012+(((a[aa>>0]^a[44974+((a[T>>0]^a[44974+((a[L>>0]^a[44718+((d[D>>0]|0)^27)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[10060+(((a[Z>>0]^a[44718+((a[R>>0]^a[44974+((a[J>>0]^a[44974+((d[B>>0]|0)^38)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[11084+(((a[Y>>0]^a[44718+((a[Q>>0]^a[44718+((a[I>>0]^a[44974+((d[A>>0]|0)^27)>>0])&255)>>0])&255)>>0])&255)<<2)>>2];ga=ga<<8|ga>>>24;fa=ga+(c[9036+(((a[da>>0]^a[44974+((a[W>>0]^a[44718+((a[O>>0]^a[44718+((d[G>>0]|0)^55)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[8012+(((a[e>>0]^a[44974+((a[X>>0]^a[44974+((a[P>>0]^a[44718+((d[H>>0]|0)^248)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[10060+(((a[ca>>0]^a[44718+((a[V>>0]^a[44974+((a[N>>0]^a[44974+((d[F>>0]|0)^55)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[11084+(((a[ba>>0]^a[44718+((a[U>>0]^a[44718+((a[M>>0]^a[44974+((d[E>>0]|0)^248)>>0])&255)>>0])&255)>>0])&255)<<2)>>2])|0;ga=fa+ga|0;c[b+4200>>2]=fa;c[b+4204>>2]=ga<<9|ga>>>23;ga=c[9036+(((a[_>>0]^a[44974+((a[S>>0]^a[44718+((a[K>>0]^a[44718+((d[C>>0]|0)^19)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[8012+(((a[aa>>0]^a[44974+((a[T>>0]^a[44974+((a[L>>0]^a[44718+((d[D>>0]|0)^250)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[10060+(((a[Z>>0]^a[44718+((a[R>>0]^a[44974+((a[J>>0]^a[44974+((d[B>>0]|0)^19)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[11084+(((a[Y>>0]^a[44718+((a[Q>>0]^a[44718+((a[I>>0]^a[44974+((d[A>>0]|0)^250)>>0])&255)>>0])&255)>>0])&255)<<2)>>2];ga=ga<<8|ga>>>24;fa=ga+(c[9036+(((a[da>>0]^a[44974+((a[W>>0]^a[44718+((a[O>>0]^a[44718+((d[G>>0]|0)^250)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[8012+(((a[e>>0]^a[44974+((a[X>>0]^a[44974+((a[P>>0]^a[44718+((d[H>>0]|0)^135)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[10060+(((a[ca>>0]^a[44718+((a[V>>0]^a[44974+((a[N>>0]^a[44974+((d[F>>0]|0)^250)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[11084+(((a[ba>>0]^a[44718+((a[U>>0]^a[44718+((a[M>>0]^a[44974+((d[E>>0]|0)^135)>>0])&255)>>0])&255)>>0])&255)<<2)>>2])|0;ga=fa+ga|0;c[b+4208>>2]=fa;c[b+4212>>2]=ga<<9|ga>>>23;ga=c[9036+(((a[_>>0]^a[44974+((a[S>>0]^a[44718+((a[K>>0]^a[44718+((d[C>>0]|0)^72)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[8012+(((a[aa>>0]^a[44974+((a[T>>0]^a[44974+((a[L>>0]^a[44718+((d[D>>0]|0)^63)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[10060+(((a[Z>>0]^a[44718+((a[R>>0]^a[44974+((a[J>>0]^a[44974+((d[B>>0]|0)^72)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[11084+(((a[Y>>0]^a[44718+((a[Q>>0]^a[44718+((a[I>>0]^a[44974+((d[A>>0]|0)^63)>>0])&255)>>0])&255)>>0])&255)<<2)>>2];ga=ga<<8|ga>>>24;fa=ga+(c[9036+(((a[da>>0]^a[44974+((a[W>>0]^a[44718+((a[O>>0]^a[44718+((d[G>>0]|0)^148)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[8012+(((a[e>>0]^a[44974+((a[X>>0]^a[44974+((a[P>>0]^a[44718+((d[H>>0]|0)^6)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[10060+(((a[ca>>0]^a[44718+((a[V>>0]^a[44974+((a[N>>0]^a[44974+((d[F>>0]|0)^148)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[11084+(((a[ba>>0]^a[44718+((a[U>>0]^a[44718+((a[M>>0]^a[44974+((d[E>>0]|0)^6)>>0])&255)>>0])&255)>>0])&255)<<2)>>2])|0;ga=fa+ga|0;c[b+4216>>2]=fa;c[b+4220>>2]=ga<<9|ga>>>23;ga=c[9036+(((a[_>>0]^a[44974+((a[S>>0]^a[44718+((a[K>>0]^a[44718+((d[C>>0]|0)^208)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[8012+(((a[aa>>0]^a[44974+((a[T>>0]^a[44974+((a[L>>0]^a[44718+((d[D>>0]|0)^186)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[10060+(((a[Z>>0]^a[44718+((a[R>>0]^a[44974+((a[J>>0]^a[44974+((d[B>>0]|0)^208)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[11084+(((a[Y>>0]^a[44718+((a[Q>>0]^a[44718+((a[I>>0]^a[44974+((d[A>>0]|0)^186)>>0])&255)>>0])&255)>>0])&255)<<2)>>2];ga=ga<<8|ga>>>24;fa=ga+(c[9036+(((a[da>>0]^a[44974+((a[W>>0]^a[44718+((a[O>>0]^a[44718+((d[G>>0]|0)^242)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[8012+(((a[e>>0]^a[44974+((a[X>>0]^a[44974+((a[P>>0]^a[44718+((d[H>>0]|0)^94)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[10060+(((a[ca>>0]^a[44718+((a[V>>0]^a[44974+((a[N>>0]^a[44974+((d[F>>0]|0)^242)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[11084+(((a[ba>>0]^a[44718+((a[U>>0]^a[44718+((a[M>>0]^a[44974+((d[E>>0]|0)^94)>>0])&255)>>0])&255)>>0])&255)<<2)>>2])|0;ga=fa+ga|0;c[b+4224>>2]=fa;c[b+4228>>2]=ga<<9|ga>>>23;ga=c[9036+(((a[_>>0]^a[44974+((a[S>>0]^a[44718+((a[K>>0]^a[44718+((d[C>>0]|0)^48)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[8012+(((a[aa>>0]^a[44974+((a[T>>0]^a[44974+((a[L>>0]^a[44718+((d[D>>0]|0)^91)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[10060+(((a[Z>>0]^a[44718+((a[R>>0]^a[44974+((a[J>>0]^a[44974+((d[B>>0]|0)^48)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[11084+(((a[Y>>0]^a[44718+((a[Q>>0]^a[44718+((a[I>>0]^a[44974+((d[A>>0]|0)^91)>>0])&255)>>0])&255)>>0])&255)<<2)>>2];ga=ga<<8|ga>>>24;fa=ga+(c[9036+(((a[da>>0]^a[44974+((a[W>>0]^a[44718+((a[O>>0]^a[44718+((d[G>>0]|0)^139)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[8012+(((a[e>>0]^a[44974+((a[X>>0]^a[44974+((a[P>>0]^a[44718+((d[H>>0]|0)^174)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[10060+(((a[ca>>0]^a[44718+((a[V>>0]^a[44974+((a[N>>0]^a[44974+((d[F>>0]|0)^139)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[11084+(((a[ba>>0]^a[44718+((a[U>>0]^a[44718+((a[M>>0]^a[44974+((d[E>>0]|0)^174)>>0])&255)>>0])&255)>>0])&255)<<2)>>2])|0;ga=fa+ga|0;c[b+4232>>2]=fa;c[b+4236>>2]=ga<<9|ga>>>23;ga=c[9036+(((a[_>>0]^a[44974+((a[S>>0]^a[44718+((a[K>>0]^a[44718+((d[C>>0]|0)^84)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[8012+(((a[aa>>0]^a[44974+((a[T>>0]^a[44974+((a[L>>0]^a[44718+(d[D>>0]|0)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[10060+(((a[Z>>0]^a[44718+((a[R>>0]^a[44974+((a[J>>0]^a[44974+((d[B>>0]|0)^84)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[11084+(((a[Y>>0]^a[44718+((a[Q>>0]^a[44718+((a[I>>0]^a[44974+(d[A>>0]|0)>>0])&255)>>0])&255)>>0])&255)<<2)>>2];ga=ga<<8|ga>>>24;fa=ga+(c[9036+(((a[da>>0]^a[44974+((a[W>>0]^a[44718+((a[O>>0]^a[44718+((d[G>>0]|0)^132)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[8012+(((a[e>>0]^a[44974+((a[X>>0]^a[44974+((a[P>>0]^a[44718+((d[H>>0]|0)^138)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[10060+(((a[ca>>0]^a[44718+((a[V>>0]^a[44974+((a[N>>0]^a[44974+((d[F>>0]|0)^132)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[11084+(((a[ba>>0]^a[44718+((a[U>>0]^a[44718+((a[M>>0]^a[44974+((d[E>>0]|0)^138)>>0])&255)>>0])&255)>>0])&255)<<2)>>2])|0;ga=fa+ga|0;c[b+4240>>2]=fa;c[b+4244>>2]=ga<<9|ga>>>23;ga=c[9036+(((a[_>>0]^a[44974+((a[S>>0]^a[44718+((a[K>>0]^a[44718+((d[C>>0]|0)^35)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[8012+(((a[aa>>0]^a[44974+((a[T>>0]^a[44974+((a[L>>0]^a[44718+((d[D>>0]|0)^157)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[10060+(((a[Z>>0]^a[44718+((a[R>>0]^a[44974+((a[J>>0]^a[44974+((d[B>>0]|0)^35)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[11084+(((a[Y>>0]^a[44718+((a[Q>>0]^a[44718+((a[I>>0]^a[44974+((d[A>>0]|0)^157)>>0])&255)>>0])&255)>>0])&255)<<2)>>2];ga=ga<<8|ga>>>24;fa=ga+(c[9036+(((a[da>>0]^a[44974+((a[W>>0]^a[44718+((a[O>>0]^a[44718+((d[G>>0]|0)^223)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[8012+(((a[e>>0]^a[44974+((a[X>>0]^a[44974+((a[P>>0]^a[44718+((d[H>>0]|0)^188)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[10060+(((a[ca>>0]^a[44718+((a[V>>0]^a[44974+((a[N>>0]^a[44974+((d[F>>0]|0)^223)>>0])&255)>>0])&255)>>0])&255)<<2)>>2]^c[11084+(((a[ba>>0]^a[44718+((a[U>>0]^a[44718+((a[M>>0]^a[44974+((d[E>>0]|0)^188)>>0])&255)>>0])&255)>>0])&255)<<2)>>2])|0;ga=fa+ga|0;c[b+4248>>2]=fa;c[b+4252>>2]=ga<<9|ga>>>23;ga=0;l=ea;return ga|0}function lj(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;F=l;l=l+16|0;if((l|0)>=(m|0))$(16);h=F;if(!g)j=0;else{B=h+4|0;C=h+8|0;D=h+12|0;k=h+1|0;n=h+2|0;o=h+3|0;p=h+4|0;q=h+5|0;r=h+6|0;s=h+7|0;t=h+8|0;u=h+9|0;v=h+10|0;w=h+11|0;x=h+12|0;y=h+13|0;z=h+14|0;A=h+15|0;j=0;i=f;do{ij(b,h,d)|0;j=j>>>0<36?36:j;if(!((e|i)&3)){c[e>>2]=c[i>>2]^c[h>>2];c[e+4>>2]=c[i+4>>2]^c[B>>2];c[e+8>>2]=c[i+8>>2]^c[C>>2];c[e+12>>2]=c[i+12>>2]^c[D>>2]}else{a[e>>0]=a[i>>0]^a[h>>0];a[e+1>>0]=a[i+1>>0]^a[k>>0];a[e+2>>0]=a[i+2>>0]^a[n>>0];a[e+3>>0]=a[i+3>>0]^a[o>>0];a[e+4>>0]=a[i+4>>0]^a[p>>0];a[e+5>>0]=a[i+5>>0]^a[q>>0];a[e+6>>0]=a[i+6>>0]^a[r>>0];a[e+7>>0]=a[i+7>>0]^a[s>>0];a[e+8>>0]=a[i+8>>0]^a[t>>0];a[e+9>>0]=a[i+9>>0]^a[u>>0];a[e+10>>0]=a[i+10>>0]^a[v>>0];a[e+11>>0]=a[i+11>>0]^a[w>>0];a[e+12>>0]=a[i+12>>0]^a[x>>0];a[e+13>>0]=a[i+13>>0]^a[y>>0];a[e+14>>0]=a[i+14>>0]^a[z>>0];a[e+15>>0]=a[i+15>>0]^a[A>>0]}e=e+16|0;i=i+16|0;f=16;do{if((f|0)<=0)break;f=f+-1|0;H=d+f|0;G=(a[H>>0]|0)+1<<24>>24;a[H>>0]=G}while(!(G<<24>>24));g=g+-1|0}while((g|0)!=0)}if(h&4){e=16;do{a[h>>0]=0;h=h+1|0;e=e+-1|0}while((e|0)!=0&(h&7|0)!=0);if(e>>>0>=8)E=13}else{e=16;E=13}if((E|0)==13){g=e+-8|0;i=g&-8;b=i+8|0;f=h;while(1){H=f;c[H>>2]=0;c[H+4>>2]=0;e=e+-8|0;if(e>>>0<=7)break;else f=f+8|0}e=g-i|0;h=h+b|0}if(!e){Te(j);l=F;return}while(1){a[h>>0]=0;e=e+-1|0;if(!e)break;else h=h+1|0}Te(j);l=F;return}function mj(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0;X=l;l=l+16|0;if((l|0)>=(m|0))$(16);h=X;if(!g)i=0;else{T=d;U=h+4|0;V=d+4|0;j=h+8|0;k=d+8|0;n=h+12|0;o=d+12|0;p=h+1|0;q=d+1|0;r=h+2|0;s=d+2|0;t=h+3|0;u=d+3|0;v=h+4|0;w=d+4|0;x=h+5|0;y=d+5|0;z=h+6|0;A=d+6|0;B=h+7|0;C=d+7|0;D=h+8|0;E=d+8|0;F=h+9|0;G=d+9|0;H=h+10|0;I=d+10|0;J=h+11|0;K=d+11|0;L=h+12|0;M=d+12|0;N=h+13|0;O=d+13|0;P=h+14|0;Q=d+14|0;R=h+15|0;S=d+15|0;i=0;while(1){jj(b,h,f)|0;i=i>>>0<36?36:i;if(!((f|T|e)&3)){Y=c[f>>2]|0;c[e>>2]=c[h>>2]^c[d>>2];c[d>>2]=Y;Y=c[f+4>>2]|0;c[e+4>>2]=c[U>>2]^c[V>>2];c[V>>2]=Y;Y=c[f+8>>2]|0;c[e+8>>2]=c[j>>2]^c[k>>2];c[k>>2]=Y;Y=c[f+12>>2]|0;c[e+12>>2]=c[n>>2]^c[o>>2];c[o>>2]=Y}else{Y=a[f>>0]|0;a[e>>0]=a[h>>0]^a[d>>0];a[d>>0]=Y;Y=a[f+1>>0]|0;a[e+1>>0]=a[p>>0]^a[q>>0];a[q>>0]=Y;Y=a[f+2>>0]|0;a[e+2>>0]=a[r>>0]^a[s>>0];a[s>>0]=Y;Y=a[f+3>>0]|0;a[e+3>>0]=a[t>>0]^a[u>>0];a[u>>0]=Y;Y=a[f+4>>0]|0;a[e+4>>0]=a[v>>0]^a[w>>0];a[w>>0]=Y;Y=a[f+5>>0]|0;a[e+5>>0]=a[x>>0]^a[y>>0];a[y>>0]=Y;Y=a[f+6>>0]|0;a[e+6>>0]=a[z>>0]^a[A>>0];a[A>>0]=Y;Y=a[f+7>>0]|0;a[e+7>>0]=a[B>>0]^a[C>>0];a[C>>0]=Y;Y=a[f+8>>0]|0;a[e+8>>0]=a[D>>0]^a[E>>0];a[E>>0]=Y;Y=a[f+9>>0]|0;a[e+9>>0]=a[F>>0]^a[G>>0];a[G>>0]=Y;Y=a[f+10>>0]|0;a[e+10>>0]=a[H>>0]^a[I>>0];a[I>>0]=Y;Y=a[f+11>>0]|0;a[e+11>>0]=a[J>>0]^a[K>>0];a[K>>0]=Y;Y=a[f+12>>0]|0;a[e+12>>0]=a[L>>0]^a[M>>0];a[M>>0]=Y;Y=a[f+13>>0]|0;a[e+13>>0]=a[N>>0]^a[O>>0];a[O>>0]=Y;Y=a[f+14>>0]|0;a[e+14>>0]=a[P>>0]^a[Q>>0];a[Q>>0]=Y;Y=a[f+15>>0]|0;a[e+15>>0]=a[R>>0]^a[S>>0];a[S>>0]=Y}g=g+-1|0;if(!g)break;else{e=e+16|0;f=f+16|0}}}if(h&4){e=16;do{a[h>>0]=0;h=h+1|0;e=e+-1|0}while((e|0)!=0&(h&7|0)!=0);if(e>>>0>=8)W=10}else{e=16;W=10}if((W|0)==10){f=e+-8|0;b=f&-8;d=b+8|0;g=h;while(1){Y=g;c[Y>>2]=0;c[Y+4>>2]=0;e=e+-8|0;if(e>>>0<=7)break;else g=g+8|0}e=f-b|0;h=h+d|0}if(!e){Te(i);l=X;return}while(1){a[h>>0]=0;e=e+-1|0;if(!e)break;else h=h+1|0}Te(i);l=X;return}function nj(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;if(!g){x=0;Te(x);return}u=d;v=d+4|0;w=d+8|0;x=d+12|0;i=d+1|0;j=d+2|0;k=d+3|0;l=d+5|0;m=d+6|0;n=d+7|0;o=d+9|0;p=d+10|0;q=d+11|0;r=d+13|0;s=d+14|0;t=d+15|0;h=g;g=0;while(1){ij(b,d,d)|0;g=g>>>0<36?36:g;if(!((e|u|f)&3)){y=c[f>>2]|0;c[e>>2]=c[d>>2]^y;c[d>>2]=y;y=c[f+4>>2]|0;c[e+4>>2]=c[v>>2]^y;c[v>>2]=y;y=c[f+8>>2]|0;c[e+8>>2]=c[w>>2]^y;c[w>>2]=y;y=c[f+12>>2]|0;c[e+12>>2]=c[x>>2]^y;c[x>>2]=y}else{y=a[f>>0]|0;a[e>>0]=a[d>>0]^y;a[d>>0]=y;y=a[f+1>>0]|0;a[e+1>>0]=a[i>>0]^y;a[i>>0]=y;y=a[f+2>>0]|0;a[e+2>>0]=a[j>>0]^y;a[j>>0]=y;y=a[f+3>>0]|0;a[e+3>>0]=a[k>>0]^y;a[k>>0]=y;y=a[f+4>>0]|0;a[e+4>>0]=a[v>>0]^y;a[v>>0]=y;y=a[f+5>>0]|0;a[e+5>>0]=a[l>>0]^y;a[l>>0]=y;y=a[f+6>>0]|0;a[e+6>>0]=a[m>>0]^y;a[m>>0]=y;y=a[f+7>>0]|0;a[e+7>>0]=a[n>>0]^y;a[n>>0]=y;y=a[f+8>>0]|0;a[e+8>>0]=a[w>>0]^y;a[w>>0]=y;y=a[f+9>>0]|0;a[e+9>>0]=a[o>>0]^y;a[o>>0]=y;y=a[f+10>>0]|0;a[e+10>>0]=a[p>>0]^y;a[p>>0]=y;y=a[f+11>>0]|0;a[e+11>>0]=a[q>>0]^y;a[q>>0]=y;y=a[f+12>>0]|0;a[e+12>>0]=a[x>>0]^y;a[x>>0]=y;y=a[f+13>>0]|0;a[e+13>>0]=a[r>>0]^y;a[r>>0]=y;y=a[f+14>>0]|0;a[e+14>>0]=a[s>>0]^y;a[s>>0]=y;y=a[f+15>>0]|0;a[e+15>>0]=a[t>>0]^y;a[t>>0]=y}h=h+-1|0;if(!h)break;else{f=f+16|0;e=e+16|0}}Te(g);return}function oj(a,b){a=a|0;b=b|0;c[17620]=a;c[17621]=b;return}function pj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[17620]|0;if(!f)return;qb[f&15](c[17621]|0,a,b,d,e);return}function qj(a){a=a|0;a:do switch(a|0){case 0:{c[17622]=1;break}case 1:{c[17623]=1;break}default:if(!(c[17622]|0))switch(a|0){case 2:{c[17624]=1;break a}case 3:{c[17625]=1;break a}default:break a}}while(0);return}function rj(a){a=a|0;if(gg()|0){en(a);return}if(c[17623]|0){Pm(a);return}if(c[17624]|0){en(a);return}if(!(c[17625]|0)){Pm(a);return}else{wn(a);return}}function sj(){if(gg()|0){fn();return}if(c[17623]|0){Rm();return}if(c[17624]|0){fn();return}if(!(c[17625]|0)){Rm();return}else{xn();return}}function tj(a){a=a|0;if((a|0)==0?(gg()|0)!=0:0)a=2;else if(!(c[17623]|0))if(!(c[17624]|0))a=(c[17625]|0)==0?1:3;else a=2;else a=1;return a|0}function uj(){if(!(gg()|0)){Sm();return}else return}function vj(){if(gg()|0)return;Tm();return}function wj(){if(gg()|0)return;Um();return}function xj(a){a=a|0;if(gg()|0)return;return}function yj(a){a=a|0;if(gg()|0){a=0;return a|0}a=Wm(a)|0;return a|0}function zj(){var a=0;if(!(gg()|0)){a=Xm()|0;return a|0}else{a=hn()|0;return a|0}return 0}function Aj(a,b){a=a|0;b=b|0;var c=0;c=gf(a)|0;Bj(c,a,b);return c|0}function Bj(a,b,d){a=a|0;b=b|0;d=d|0;if(gg()|0){jn(a,b,d);return}if(c[17623]|0){Zm(a,b,d);return}if(c[17624]|0){jn(a,b,d);return}if(!(c[17625]|0)){Zm(a,b,d);return}else{yn(a,b,d);return}}function Cj(a,b){a=a|0;b=b|0;var c=0;c=jf(a)|0;Bj(c,a,b);return c|0}function Dj(a,b,c){a=a|0;b=b|0;c=c|0;Bj(a,b,c);return}function Ej(a){a=a|0;if(gg()|0)return;if(c[17623]|0){bn(a);return}if(c[17625]|c[17624]|0)return;bn(a);return}function Fj(){if(gg()|0)return;if(c[17623]|0){cn();return}if(c[17625]|c[17624]|0)return;cn();return}function Gj(){if(gg()|0)return;if(c[17623]|0){dn();return}if(c[17625]|c[17624]|0)return;dn();return}function Hj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=h+8|0;f=h;e=h+12|0;if(gg()|0){rn(a,b);l=h;return}do if(!(gg()|0)){if(c[17623]|0){Pm(1);break}if(c[17624]|0){en(1);break}if(!(c[17625]|0)){Pm(1);break}else{wn(1);break}}else en(1);while(0);d=Vn(12172)|0;if(d|0){c[f>>2]=Pn(d)|0;Me(45241,f)}c[e>>2]=qq()|0;if(c[17626]|0){if((c[17627]|0)!=(c[e>>2]|0)){Bj(70532,8,0);c[17627]=c[e>>2]}}else{f=fb(0)|0;d=c[e>>2]|0;c[17627]=c[e>>2];c[17628]=d;c[17629]=f;Bj(70532,8,0);c[17626]=1}if(b|0)while(1){Vi(70512,70512,28);d=b>>>0>20?20:b;cr(a|0,70512,d|0)|0;b=b-d|0;if(!b)break;else a=a+d|0}b=Wn(12172)|0;if(!b){l=h;return}else{c[g>>2]=Pn(b)|0;Me(45286,g)}}function Ij(a){a=a|0;if(!(gg()|0)){a=0;return a|0}a=sn(a)|0;return a|0}function Jj(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;if(!(gg()|0)){h=60;return h|0}h=tn(a,b,c,d,e,f,g,h)|0;return h|0}function Kj(a,b,c){a=a|0;b=b|0;c=c|0;if(!(gg()|0)){c=60;return c|0}c=un(a,b,c)|0;return c|0}function Lj(a){a=a|0;if(!(gg()|0))return;vn(a);return}function Mj(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=l;l=l+112|0;if((l|0)>=(m|0))$(112);g=j+8|0;f=j;h=j+12|0;if(!d){c[f>>2]=b;lp(h,99,45331,f)|0;Se(h,0);l=j;return}c[g>>2]=b;lp(h,99,45336,g)|0;g=(e|0)!=0;if(g){f=Hl(0)|0;b=Hl(0)|0;if(!(Nj(f,b,d,e)|0)){a[h+((Fo(h)|0)+-1)>>0]=120;Se(h,f);a[h+((Fo(h)|0)+-1)>>0]=121;Se(h,b)}else i=6}else{f=0;b=0;i=6}if((i|0)==6){Se(h,c[d>>2]|0);a[h+((Fo(h)|0)+-1)>>0]=89;Se(h,c[d+4>>2]|0);a[h+((Fo(h)|0)+-1)>>0]=90;Se(h,c[d+8>>2]|0);if(!g){l=j;return}}Jl(f);Jl(b);l=j;return}function Nj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0;n=l;l=l+32|0;if((l|0)>=(m|0))$(32);h=n+16|0;f=n+8|0;g=d+8|0;if(!(vk(c[g>>2]|0,0)|0)){b=-1;l=n;return b|0}switch(c[e>>2]|0){case 0:{k=Hl(0)|0;j=Hl(0)|0;f=c[g>>2]|0;i=e+16|0;if(!(Fk(k,f,c[i>>2]|0)|0)){Le(45341,n);Se(45375,f);Se(45379,c[i>>2]|0)}Kk(j,k,k);h=e+60|0;f=c[h>>2]|0;if(!f)Gk(j,j,c[i>>2]|0);else Jk(j,j,f);do if(a|0){Kk(a,c[d>>2]|0,j);f=c[h>>2]|0;if(!f){Gk(a,a,c[i>>2]|0);break}else{Jk(a,a,f);break}}while(0);if(b|0){g=Hl(0)|0;Kk(g,j,k);f=c[h>>2]|0;if(!f)Gk(g,g,c[i>>2]|0);else Jk(g,g,f);Kk(b,c[d+4>>2]|0,g);f=c[h>>2]|0;if(!f)Gk(b,b,c[i>>2]|0);else Jk(b,b,f);tl(g)}tl(j);tl(k);b=0;l=n;return b|0}case 1:{if(a|0)Al(a,c[d>>2]|0)|0;if(!b){b=0;l=n;return b|0}else{c[f>>2]=45432;c[f+4>>2]=45456;Me(45383,f)}break}case 2:{i=Hl(0)|0;f=c[g>>2]|0;g=e+16|0;if(!(Fk(i,f,c[g>>2]|0)|0)){Le(45341,h);Se(45375,f);Se(45379,c[g>>2]|0)}do if(a|0){Kk(a,c[d>>2]|0,i);f=c[e+60>>2]|0;if(!f){Gk(a,a,c[g>>2]|0);break}else{Jk(a,a,f);break}}while(0);do if(b|0){Kk(b,c[d+4>>2]|0,i);f=c[e+60>>2]|0;if(!f){Gk(b,b,c[g>>2]|0);break}else{Jk(b,b,f);break}}while(0);Jl(i);b=0;l=n;return b|0}default:{b=-1;l=n;return b|0}}return 0}function Oj(a){a=a|0;a=gf(12)|0;c[a>>2]=Hl(0)|0;c[a+4>>2]=Hl(0)|0;c[a+8>>2]=Hl(0)|0;return a|0}function Pj(a){a=a|0;c[a>>2]=Hl(0)|0;c[a+4>>2]=Hl(0)|0;c[a+8>>2]=Hl(0)|0;return}function Qj(a){a=a|0;var b=0;if(!a)return;tl(c[a>>2]|0);c[a>>2]=0;b=a+4|0;tl(c[b>>2]|0);c[b>>2]=0;b=a+8|0;tl(c[b>>2]|0);c[b>>2]=0;cf(a);return}function Rj(a){a=a|0;var b=0;tl(c[a>>2]|0);c[a>>2]=0;b=a+4|0;tl(c[b>>2]|0);c[b>>2]=0;a=a+8|0;tl(c[a>>2]|0);c[a>>2]=0;return}function Sj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;if(!a){f=gf(12)|0;c[f>>2]=Hl(0)|0;c[f+4>>2]=Hl(0)|0;c[f+8>>2]=Hl(0)|0}else f=a;a=c[f>>2]|0;if(!b)rl(a);else Al(a,b)|0;a=c[f+4>>2]|0;if(!d)rl(a);else Al(a,d)|0;a=c[f+8>>2]|0;if(!e){rl(a);return f|0}else{Al(a,e)|0;return f|0}return 0}function Tj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;if(!a){f=gf(12)|0;c[f>>2]=Hl(0)|0;c[f+4>>2]=Hl(0)|0;c[f+8>>2]=Hl(0)|0}else f=a;a=c[f>>2]|0;if(!b)rl(a);else Cl(a,b);a=c[f+4>>2]|0;if(!d)rl(a);else Cl(a,d);a=c[f+8>>2]|0;if(!e){rl(a);return f|0}else{Cl(a,e);return f|0}return 0}function Uj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0;g=kf(1,108)|0;Vj(g,a,b,c,d,e,f);return g|0}function Vj(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;do if(!(c[17635]|0))if(!(Xa(45467)|0)){c[17635]=-1;break}else{c[17635]=1;break}while(0);c[b>>2]=d;c[b+4>>2]=e;c[b+8>>2]=f;if((e|0)==1)d=256;else d=lk(g)|0;c[b+12>>2]=d;e=b+16|0;c[e>>2]=yl(g)|0;c[b+20>>2]=yl(h)|0;c[b+24>>2]=yl(i)|0;if((c[17635]|0)>0)d=Hk(c[e>>2]|0,0)|0;else d=0;c[b+60>>2]=d;i=b+48|0;a[i>>0]=a[i>>0]&-4;c[b+64>>2]=Bl(c[e>>2]|0)|0;c[b+68>>2]=Bl(c[e>>2]|0)|0;c[b+72>>2]=Bl(c[e>>2]|0)|0;c[b+76>>2]=Bl(c[e>>2]|0)|0;c[b+80>>2]=Bl(c[e>>2]|0)|0;c[b+84>>2]=Bl(c[e>>2]|0)|0;c[b+88>>2]=Bl(c[e>>2]|0)|0;c[b+92>>2]=Bl(c[e>>2]|0)|0;c[b+96>>2]=Bl(c[e>>2]|0)|0;c[b+100>>2]=Bl(c[e>>2]|0)|0;c[b+104>>2]=Bl(c[e>>2]|0)|0;return}function Wj(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0;c[a>>2]=0;if(!((f|0)!=0&(g|0)!=0)){i=32816;return i|0}i=rg(1,108,5)|0;if(!i){i=Sn()|0;return i|0}else{Vj(sg(i,1)|0,b,d,e,f,g,h);c[a>>2]=i;i=0;return i|0}return 0}function Xj(a){a=a|0;var b=0,d=0;Ik(c[a+60>>2]|0);tl(c[a+16>>2]|0);tl(c[a+20>>2]|0);tl(c[a+24>>2]|0);b=c[a+28>>2]|0;if(b|0){tl(c[b>>2]|0);c[b>>2]=0;d=b+4|0;tl(c[d>>2]|0);c[d>>2]=0;d=b+8|0;tl(c[d>>2]|0);c[d>>2]=0;cf(b)}tl(c[a+32>>2]|0);tl(c[a+36>>2]|0);b=c[a+40>>2]|0;if(b|0){tl(c[b>>2]|0);c[b>>2]=0;d=b+4|0;tl(c[d>>2]|0);c[d>>2]=0;d=b+8|0;tl(c[d>>2]|0);c[d>>2]=0;cf(b)}tl(c[a+44>>2]|0);tl(c[a+56>>2]|0);tl(c[a+64>>2]|0);tl(c[a+68>>2]|0);tl(c[a+72>>2]|0);tl(c[a+76>>2]|0);tl(c[a+80>>2]|0);tl(c[a+84>>2]|0);tl(c[a+88>>2]|0);tl(c[a+92>>2]|0);tl(c[a+96>>2]|0);tl(c[a+100>>2]|0);tl(c[a+104>>2]|0);return}function Yj(a){a=a|0;if(!a)return;Xj(a);cf(a);return}function Zj(a,b,c){a=a|0;b=b|0;c=c|0;return Kg(a,sg(b,1)|0,c)|0}function _j(a,b,c){a=a|0;b=b|0;c=c|0;return Lg(a,sg(b,1)|0)|0}function $j(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0;r=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=r;switch(c[e>>2]|0){case 0:{n=d+4|0;if(vk(c[n>>2]|0,0)|0?(k=d+8|0,vk(c[k>>2]|0,0)|0):0){f=e+48|0;g=a[f>>0]|0;if(!(g&1)){a[f>>0]=g|1;f=e+16|0;q=Bl(c[f>>2]|0)|0;gk(q,c[f>>2]|0,3);f=e+52|0;c[f>>2]=(wk(c[e+20>>2]|0,q)|0)==0&1;tl(q)}else f=e+52|0;o=e+64|0;do if(!(c[f>>2]|0)){i=e+76|0;f=c[i>>2]|0;j=c[d>>2]|0;Kk(f,j,j);j=e+60|0;g=c[j>>2]|0;if(!g)Gk(f,f,c[e+16>>2]|0);else Jk(f,f,g);f=c[i>>2]|0;Kk(f,f,Ml(3)|0);g=c[j>>2]|0;if(!g){h=e+16|0;Gk(f,f,c[h>>2]|0)}else{Jk(f,f,g);h=e+16|0}q=c[o>>2]|0;g=c[k>>2]|0;f=Ml(4)|0;Mk(q,g,f,c[h>>2]|0);f=c[o>>2]|0;Kk(f,f,c[e+20>>2]|0);g=c[j>>2]|0;if(!g)Gk(f,f,c[h>>2]|0);else Jk(f,f,g);f=c[i>>2]|0;fk(f,f,c[o>>2]|0);g=c[j>>2]|0;if(!g){Gk(f,f,c[h>>2]|0);break}else{Jk(f,f,g);break}}else{f=c[o>>2]|0;j=c[k>>2]|0;Kk(f,j,j);j=e+60|0;g=c[j>>2]|0;if(!g)Gk(f,f,c[e+16>>2]|0);else Jk(f,f,g);i=e+76|0;hk(c[i>>2]|0,c[d>>2]|0,c[o>>2]|0);f=c[i>>2]|0;Kk(f,f,Ml(3)|0);g=c[j>>2]|0;if(!g)Gk(f,f,c[e+16>>2]|0);else Jk(f,f,g);h=e+68|0;f=c[h>>2]|0;fk(f,c[d>>2]|0,c[o>>2]|0);g=c[j>>2]|0;if(!g)Gk(f,f,c[e+16>>2]|0);else Jk(f,f,g);g=c[i>>2]|0;Kk(g,g,c[h>>2]|0);f=c[j>>2]|0;if(!f){Gk(g,g,c[e+16>>2]|0);break}else{Jk(g,g,f);break}}while(0);g=b+8|0;h=c[g>>2]|0;Kk(h,c[n>>2]|0,c[k>>2]|0);f=c[j>>2]|0;if(!f)Gk(h,h,c[e+16>>2]|0);else Jk(h,h,f);f=c[g>>2]|0;uk(f,f,1);g=c[j>>2]|0;if(!g)Gk(f,f,c[e+16>>2]|0);else Jk(f,f,g);h=e+68|0;g=c[h>>2]|0;f=c[n>>2]|0;Kk(g,f,f);f=c[j>>2]|0;if(!f)Gk(g,g,c[e+16>>2]|0);else Jk(g,g,f);n=e+80|0;g=c[n>>2]|0;Kk(g,c[h>>2]|0,c[d>>2]|0);f=c[j>>2]|0;if(!f)Gk(g,g,c[e+16>>2]|0);else Jk(g,g,f);f=c[n>>2]|0;Kk(f,f,Ml(4)|0);g=c[j>>2]|0;if(!g)Gk(f,f,c[e+16>>2]|0);else Jk(f,f,g);f=c[b>>2]|0;k=e+76|0;g=c[k>>2]|0;Kk(f,g,g);g=c[j>>2]|0;if(!g)Gk(f,f,c[e+16>>2]|0);else Jk(f,f,g);f=c[o>>2]|0;uk(f,c[n>>2]|0,1);g=c[j>>2]|0;if(!g)Gk(f,f,c[e+16>>2]|0);else Jk(f,f,g);f=c[b>>2]|0;hk(f,f,c[o>>2]|0);f=c[h>>2]|0;Kk(f,f,f);g=c[j>>2]|0;if(!g)Gk(f,f,c[e+16>>2]|0);else Jk(f,f,g);i=e+84|0;g=c[i>>2]|0;f=c[h>>2]|0;Kk(g,f,Ml(5)|0);f=c[j>>2]|0;if(!f)Gk(g,g,c[e+16>>2]|0);else Jk(g,g,f);h=b+4|0;hk(c[h>>2]|0,c[n>>2]|0,c[b>>2]|0);g=c[h>>2]|0;Kk(g,g,c[k>>2]|0);f=c[j>>2]|0;if(!f)Gk(g,g,c[e+16>>2]|0);else Jk(g,g,f);e=c[h>>2]|0;hk(e,e,c[i>>2]|0);l=r;return}El(c[b>>2]|0,1)|0;El(c[b+4>>2]|0,1)|0;El(c[b+8>>2]|0,0)|0;l=r;return}case 1:{c[f>>2]=45508;c[f+4>>2]=45456;Me(45482,f);break}case 2:{p=e+64|0;f=c[p>>2]|0;h=d+4|0;fk(f,c[d>>2]|0,c[h>>2]|0);q=e+60|0;g=c[q>>2]|0;if(!g)Gk(f,f,c[e+16>>2]|0);else Jk(f,f,g);f=c[p>>2]|0;Kk(f,f,f);g=c[q>>2]|0;if(!g)Gk(f,f,c[e+16>>2]|0);else Jk(f,f,g);n=e+68|0;f=c[n>>2]|0;g=c[d>>2]|0;Kk(f,g,g);g=c[q>>2]|0;if(!g)Gk(f,f,c[e+16>>2]|0);else Jk(f,f,g);o=e+72|0;g=c[o>>2]|0;f=c[h>>2]|0;Kk(g,f,f);f=c[q>>2]|0;if(!f)Gk(g,g,c[e+16>>2]|0);else Jk(g,g,f);j=e+76|0;f=c[j>>2]|0;do if((c[e+4>>2]|0)!=1){Kk(f,c[e+20>>2]|0,c[n>>2]|0);g=c[q>>2]|0;if(!g){Gk(f,f,c[e+16>>2]|0);break}else{Jk(f,f,g);break}}else{Al(f,c[n>>2]|0)|0;k=c[j>>2]|0;zl(k,k)}while(0);k=e+80|0;f=c[k>>2]|0;fk(f,c[j>>2]|0,c[o>>2]|0);g=c[q>>2]|0;if(!g)Gk(f,f,c[e+16>>2]|0);else Jk(f,f,g);h=e+84|0;g=c[h>>2]|0;f=c[d+8>>2]|0;Kk(g,f,f);f=c[q>>2]|0;if(!f)Gk(g,g,c[e+16>>2]|0);else Jk(g,g,f);i=e+88|0;g=c[i>>2]|0;uk(g,c[h>>2]|0,1);f=c[q>>2]|0;if(!f)Gk(g,g,c[e+16>>2]|0);else Jk(g,g,f);f=c[i>>2]|0;hk(f,c[k>>2]|0,f);hk(c[b>>2]|0,c[p>>2]|0,c[n>>2]|0);f=c[b>>2]|0;hk(f,f,c[o>>2]|0);f=c[b>>2]|0;Kk(f,f,c[i>>2]|0);g=c[q>>2]|0;if(!g)Gk(f,f,c[e+16>>2]|0);else Jk(f,f,g);f=b+4|0;hk(c[f>>2]|0,c[j>>2]|0,c[o>>2]|0);f=c[f>>2]|0;Kk(f,f,c[k>>2]|0);g=c[q>>2]|0;if(!g)Gk(f,f,c[e+16>>2]|0);else Jk(f,f,g);g=c[b+8>>2]|0;Kk(g,c[k>>2]|0,c[i>>2]|0);f=c[q>>2]|0;if(!f){Gk(g,g,c[e+16>>2]|0);l=r;return}else{Jk(g,g,f);l=r;return}}default:{l=r;return}}}function ak(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=v+8|0;u=v;switch(c[f>>2]|0){case 0:{if(((wk(c[d>>2]|0,c[e>>2]|0)|0)==0?(wk(c[d+4>>2]|0,c[e+4>>2]|0)|0)==0:0)?(wk(c[d+8>>2]|0,c[e+8>>2]|0)|0)==0:0){$j(b,d,f);l=v;return}p=d+8|0;if(!(vk(c[p>>2]|0,0)|0)){Al(c[b>>2]|0,c[e>>2]|0)|0;Al(c[b+4>>2]|0,c[e+4>>2]|0)|0;Al(c[b+8>>2]|0,c[e+8>>2]|0)|0;l=v;return}q=e+8|0;if(!(vk(c[q>>2]|0,0)|0)){Al(c[b>>2]|0,c[d>>2]|0)|0;Al(c[b+4>>2]|0,c[d+4>>2]|0)|0;Al(c[b+8>>2]|0,c[p>>2]|0)|0;l=v;return}j=(vk(c[p>>2]|0,1)|0)==0;t=(vk(c[q>>2]|0,1)|0)==0;n=f+64|0;g=c[n>>2]|0;do if(!t){i=c[q>>2]|0;Kk(g,i,i);i=f+60|0;h=c[i>>2]|0;if(!h)Gk(g,g,c[f+16>>2]|0);else Jk(g,g,h);h=c[n>>2]|0;Kk(h,h,c[d>>2]|0);g=c[i>>2]|0;if(!g){Gk(h,h,c[f+16>>2]|0);break}else{Jk(h,h,g);break}}else Al(g,c[d>>2]|0)|0;while(0);k=f+68|0;h=c[k>>2]|0;do if(!j){i=c[p>>2]|0;Kk(h,i,i);i=f+60|0;g=c[i>>2]|0;if(!g)Gk(h,h,c[f+16>>2]|0);else Jk(h,h,g);g=c[k>>2]|0;Kk(g,g,c[e>>2]|0);h=c[i>>2]|0;if(!h){Gk(g,g,c[f+16>>2]|0);s=i;break}else{Jk(g,g,h);s=i;break}}else{Al(h,c[e>>2]|0)|0;s=f+60|0}while(0);r=f+72|0;hk(c[r>>2]|0,c[n>>2]|0,c[k>>2]|0);j=f+76|0;h=c[j>>2]|0;g=c[q>>2]|0;t=f+16|0;Mk(h,g,Ml(3)|0,c[t>>2]|0);g=c[j>>2]|0;Kk(g,g,c[d+4>>2]|0);h=c[s>>2]|0;if(!h)Gk(g,g,c[t>>2]|0);else Jk(g,g,h);i=f+80|0;g=c[i>>2]|0;h=c[p>>2]|0;Mk(g,h,Ml(3)|0,c[t>>2]|0);h=c[i>>2]|0;Kk(h,h,c[e+4>>2]|0);g=c[s>>2]|0;if(!g)Gk(h,h,c[t>>2]|0);else Jk(h,h,g);o=f+84|0;hk(c[o>>2]|0,c[j>>2]|0,c[i>>2]|0);if(!(vk(c[r>>2]|0,0)|0))if(!(vk(c[o>>2]|0,0)|0)){$j(b,d,f);l=v;return}else{El(c[b>>2]|0,1)|0;El(c[b+4>>2]|0,1)|0;El(c[b+8>>2]|0,0)|0;l=v;return}e=f+88|0;h=c[e>>2]|0;fk(h,c[n>>2]|0,c[k>>2]|0);g=c[s>>2]|0;if(!g)Gk(h,h,c[t>>2]|0);else Jk(h,h,g);d=f+92|0;h=c[d>>2]|0;fk(h,c[j>>2]|0,c[i>>2]|0);g=c[s>>2]|0;if(!g)Gk(h,h,c[t>>2]|0);else Jk(h,h,g);h=b+8|0;i=c[h>>2]|0;Kk(i,c[p>>2]|0,c[q>>2]|0);g=c[s>>2]|0;if(!g)Gk(i,i,c[t>>2]|0);else Jk(i,i,g);g=c[h>>2]|0;Kk(g,g,c[r>>2]|0);h=c[s>>2]|0;if(!h)Gk(g,g,c[t>>2]|0);else Jk(g,g,h);k=f+100|0;g=c[k>>2]|0;h=c[o>>2]|0;Kk(g,h,h);h=c[s>>2]|0;if(!h)Gk(g,g,c[t>>2]|0);else Jk(g,g,h);j=f+104|0;g=c[j>>2]|0;h=c[r>>2]|0;Kk(g,h,h);h=c[s>>2]|0;if(!h)Gk(g,g,c[t>>2]|0);else Jk(g,g,h);h=c[j>>2]|0;Kk(h,h,c[e>>2]|0);g=c[s>>2]|0;if(!g)Gk(h,h,c[t>>2]|0);else Jk(h,h,g);hk(c[b>>2]|0,c[k>>2]|0,c[j>>2]|0);g=c[k>>2]|0;uk(g,c[b>>2]|0,1);h=c[s>>2]|0;if(!h)Gk(g,g,c[t>>2]|0);else Jk(g,g,h);i=f+96|0;hk(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0);h=c[i>>2]|0;Kk(h,h,c[o>>2]|0);g=c[s>>2]|0;if(!g)Gk(h,h,c[t>>2]|0);else Jk(h,h,g);g=c[k>>2]|0;h=c[r>>2]|0;Mk(g,h,Ml(3)|0,c[t>>2]|0);h=c[k>>2]|0;Kk(h,h,c[d>>2]|0);g=c[s>>2]|0;if(!g)Gk(h,h,c[t>>2]|0);else Jk(h,h,g);j=b+4|0;hk(c[j>>2]|0,c[i>>2]|0,c[k>>2]|0);j=c[j>>2]|0;g=f+48|0;h=a[g>>0]|0;do if(!(h&2)){a[g>>0]=h|2;g=f+56|0;h=c[g>>2]|0;if(!h){h=ll(0)|0;c[g>>2]=h}i=Ml(2)|0;if(Fk(h,i,c[t>>2]|0)|0)break;Le(45341,u);Se(45375,i);Se(45379,c[t>>2]|0)}else g=f+56|0;while(0);Kk(j,j,c[g>>2]|0);g=c[s>>2]|0;if(!g){Gk(j,j,c[t>>2]|0);l=v;return}else{Jk(j,j,g);l=v;return}}case 1:{c[g>>2]=45531;c[g+4>>2]=45456;Me(45482,g);break}case 2:{bk(b,d,e,f);l=v;return}default:{l=v;return}}}function bk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;p=e+64|0;g=c[p>>2]|0;Kk(g,c[b+8>>2]|0,c[d+8>>2]|0);q=e+60|0;f=c[q>>2]|0;if(!f)Gk(g,g,c[e+16>>2]|0);else Jk(g,g,f);j=e+68|0;f=c[j>>2]|0;g=c[p>>2]|0;Kk(f,g,g);g=c[q>>2]|0;if(!g)Gk(f,f,c[e+16>>2]|0);else Jk(f,f,g);o=e+72|0;f=c[o>>2]|0;Kk(f,c[b>>2]|0,c[d>>2]|0);g=c[q>>2]|0;if(!g)Gk(f,f,c[e+16>>2]|0);else Jk(f,f,g);n=e+76|0;f=c[n>>2]|0;i=b+4|0;k=d+4|0;Kk(f,c[i>>2]|0,c[k>>2]|0);g=c[q>>2]|0;if(!g)Gk(f,f,c[e+16>>2]|0);else Jk(f,f,g);h=e+80|0;f=c[h>>2]|0;Kk(f,c[e+24>>2]|0,c[o>>2]|0);g=c[q>>2]|0;if(!g)Gk(f,f,c[e+16>>2]|0);else Jk(f,f,g);f=c[h>>2]|0;Kk(f,f,c[n>>2]|0);g=c[q>>2]|0;if(!g)Gk(f,f,c[e+16>>2]|0);else Jk(f,f,g);l=e+84|0;hk(c[l>>2]|0,c[j>>2]|0,c[h>>2]|0);m=e+88|0;g=c[m>>2]|0;fk(g,c[j>>2]|0,c[h>>2]|0);f=c[q>>2]|0;if(!f)Gk(g,g,c[e+16>>2]|0);else Jk(g,g,f);h=e+92|0;g=c[h>>2]|0;fk(g,c[b>>2]|0,c[i>>2]|0);f=c[q>>2]|0;if(!f)Gk(g,g,c[e+16>>2]|0);else Jk(g,g,f);g=c[a>>2]|0;fk(g,c[d>>2]|0,c[k>>2]|0);f=c[q>>2]|0;if(!f)Gk(g,g,c[e+16>>2]|0);else Jk(g,g,f);g=c[a>>2]|0;Kk(g,g,c[h>>2]|0);f=c[q>>2]|0;if(!f)Gk(g,g,c[e+16>>2]|0);else Jk(g,g,f);f=c[a>>2]|0;hk(f,f,c[o>>2]|0);f=c[a>>2]|0;hk(f,f,c[n>>2]|0);f=c[a>>2]|0;Kk(f,f,c[l>>2]|0);g=c[q>>2]|0;if(!g)Gk(f,f,c[e+16>>2]|0);else Jk(f,f,g);g=c[a>>2]|0;Kk(g,g,c[p>>2]|0);f=c[q>>2]|0;if(!f)Gk(g,g,c[e+16>>2]|0);else Jk(g,g,f);h=a+4|0;g=c[h>>2]|0;if((c[e+4>>2]|0)==1){Al(g,c[o>>2]|0)|0;o=c[h>>2]|0;zl(o,o);o=c[h>>2]|0;hk(o,c[n>>2]|0,o)}else{Kk(g,c[e+20>>2]|0,c[o>>2]|0);f=c[q>>2]|0;if(!f)Gk(g,g,c[e+16>>2]|0);else Jk(g,g,f);o=c[h>>2]|0;hk(o,c[n>>2]|0,o)}f=c[h>>2]|0;Kk(f,f,c[m>>2]|0);g=c[q>>2]|0;if(!g)Gk(f,f,c[e+16>>2]|0);else Jk(f,f,g);g=c[h>>2]|0;Kk(g,g,c[p>>2]|0);f=c[q>>2]|0;if(!f)Gk(g,g,c[e+16>>2]|0);else Jk(g,g,f);g=c[a+8>>2]|0;Kk(g,c[l>>2]|0,c[m>>2]|0);f=c[q>>2]|0;if(!f){Gk(g,g,c[e+16>>2]|0);return}else{Jk(g,g,f);return}}function ck(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;Q=l;l=l+96|0;if((l|0)>=(m|0))$(96);n=Q+24|0;k=Q+16|0;g=Q+8|0;N=Q;O=Q+76|0;P=Q+64|0;C=Q+52|0;o=Q+40|0;h=Q+28|0;switch(c[e>>2]|0){case 2:{f=lk(b)|0;El(c[a>>2]|0,0)|0;g=a+4|0;El(c[g>>2]|0,1)|0;h=a+8|0;El(c[h>>2]|0,1)|0;if(b|0?c[b+12>>2]&1|0:0){i=Hl(0)|0;c[o>>2]=i;j=Hl(0)|0;c[o+4>>2]=j;k=Hl(0)|0;c[o+8>>2]=k;f=f+-1|0;if((f|0)>-1)do{$j(a,a,e);ak(o,a,d,e);if(mk(b,f)|0){Al(c[a>>2]|0,i)|0;Al(c[g>>2]|0,j)|0;Al(c[h>>2]|0,k)|0}f=f+-1|0}while((f|0)>-1);tl(i);tl(j);tl(k);l=Q;return}f=f+-1|0;if((f|0)<=-1){l=Q;return}do{$j(a,a,e);if(mk(b,f)|0)ak(a,a,d,e);f=f+-1|0}while((f|0)>-1);l=Q;return}case 1:{t=lk(b)|0;x=Hl(0)|0;c[O>>2]=x;y=Hl(0)|0;z=O+4|0;c[z>>2]=y;A=Hl(0)|0;B=O+8|0;c[B>>2]=A;M=Hl(0)|0;C=Hl(0)|0;D=P+4|0;c[D>>2]=C;E=Hl(0)|0;F=P+8|0;c[F>>2]=E;G=Hl(0)|0;c[o>>2]=G;H=Hl(0)|0;c[o+4>>2]=H;I=Hl(0)|0;c[o+8>>2]=I;J=Hl(0)|0;c[h>>2]=J;K=Hl(0)|0;c[h+4>>2]=K;L=Hl(0)|0;c[h+8>>2]=L;El(x,1)|0;tl(M);M=yl(c[d>>2]|0)|0;c[P>>2]=M;El(E,1)|0;f=(((t<<1)+62|0)>>>5)+1|0;ql(x,f);ql(A,f);ql(M,f);ql(E,f);ql(G,f);ql(I,f);ql(J,f);ql(L,f);f=t+-1|0;if((f|0)>-1){u=e+60|0;v=e+16|0;w=e+20|0;r=P;s=O;p=h;while(1){q=mk(b,f)|0;Gl(c[s>>2]|0,c[r>>2]|0,q);n=s+8|0;i=r+8|0;Gl(c[n>>2]|0,c[i>>2]|0,q);k=c[d>>2]|0;g=c[p>>2]|0;fk(g,c[r>>2]|0,c[i>>2]|0);h=c[u>>2]|0;if(!h)Gk(g,g,c[v>>2]|0);else Jk(g,g,h);g=c[i>>2]|0;hk(g,c[r>>2]|0,g);g=c[o>>2]|0;fk(g,c[s>>2]|0,c[n>>2]|0);h=c[u>>2]|0;if(!h)Gk(g,g,c[v>>2]|0);else Jk(g,g,h);g=c[n>>2]|0;hk(g,c[s>>2]|0,g);g=c[r>>2]|0;Kk(g,c[n>>2]|0,c[p>>2]|0);h=c[u>>2]|0;if(!h)Gk(g,g,c[v>>2]|0);else Jk(g,g,h);h=c[i>>2]|0;Kk(h,c[o>>2]|0,h);g=c[u>>2]|0;if(!g)Gk(h,h,c[v>>2]|0);else Jk(h,h,g);g=c[s>>2]|0;h=c[o>>2]|0;Kk(g,h,h);h=c[u>>2]|0;if(!h)Gk(g,g,c[v>>2]|0);else Jk(g,g,h);g=c[n>>2]|0;Kk(g,g,g);h=c[u>>2]|0;if(!h)Gk(g,g,c[v>>2]|0);else Jk(g,g,h);g=c[p>>2]|0;fk(g,c[r>>2]|0,c[i>>2]|0);h=c[u>>2]|0;if(!h)Gk(g,g,c[v>>2]|0);else Jk(g,g,h);g=c[i>>2]|0;hk(g,c[r>>2]|0,g);g=c[o>>2]|0;Kk(g,c[s>>2]|0,c[n>>2]|0);h=c[u>>2]|0;if(!h)Gk(g,g,c[v>>2]|0);else Jk(g,g,h);g=c[n>>2]|0;hk(g,c[s>>2]|0,g);g=c[p>>2]|0;Kk(g,g,g);h=c[u>>2]|0;if(!h)Gk(g,g,c[v>>2]|0);else Jk(g,g,h);j=p+8|0;h=c[j>>2]|0;g=c[i>>2]|0;Kk(h,g,g);g=c[u>>2]|0;if(!g)Gk(h,h,c[v>>2]|0);else Jk(h,h,g);i=o+8|0;g=c[i>>2]|0;Kk(g,c[n>>2]|0,c[w>>2]|0);h=c[u>>2]|0;if(!h)Gk(g,g,c[v>>2]|0);else Jk(g,g,h);h=c[j>>2]|0;Kk(h,h,k);g=c[u>>2]|0;if(!g)Gk(h,h,c[v>>2]|0);else Jk(h,h,g);g=c[i>>2]|0;fk(g,c[s>>2]|0,g);h=c[u>>2]|0;if(!h)Gk(g,g,c[v>>2]|0);else Jk(g,g,h);h=c[i>>2]|0;Kk(h,h,c[n>>2]|0);g=c[u>>2]|0;if(!g)Gk(h,h,c[v>>2]|0);else Jk(h,h,g);Gl(c[o>>2]|0,c[p>>2]|0,q);Gl(c[i>>2]|0,c[j>>2]|0,q);f=f+-1|0;if((f|0)<=-1)break;else{n=p;q=s;p=r;s=o;r=n;o=q}}}rl(c[a+4>>2]|0);d=t&1;Gl(x,G,d);Gl(A,I,d);if(!(c[A+4>>2]|0)){El(c[a>>2]|0,1)|0;El(c[a+8>>2]|0,0)|0}else{h=Hl(0)|0;i=e+16|0;if(!(Fk(h,A,c[i>>2]|0)|0)){Le(45341,N);Se(45375,A);Se(45379,c[i>>2]|0)}g=c[a>>2]|0;Kk(g,x,h);f=c[e+60>>2]|0;if(!f)Gk(g,g,c[i>>2]|0);else Jk(g,g,f);El(c[a+8>>2]|0,1)|0;tl(h)}tl(x);c[O>>2]=0;tl(y);c[z>>2]=0;tl(A);c[B>>2]=0;tl(M);c[P>>2]=0;tl(C);c[D>>2]=0;tl(E);c[F>>2]=0;tl(G);tl(H);tl(I);tl(J);tl(K);tl(L);l=Q;return}default:{y=e+16|0;z=Bl(c[y>>2]|0)|0;A=Bl(c[y>>2]|0)|0;B=Bl(c[y>>2]|0)|0;x=yl(b)|0;o=yl(c[d+4>>2]|0)|0;f=x+8|0;if(c[f>>2]|0?(c[f>>2]=0,(Fk(o,o,c[y>>2]|0)|0)==0):0){Le(45341,g);Se(45375,o);Se(45379,c[y>>2]|0)}j=d+8|0;if(!(vk(c[j>>2]|0,1)|0)){Al(z,c[d>>2]|0)|0;Al(A,o)|0}else{h=Bl(c[y>>2]|0)|0;i=Bl(c[y>>2]|0)|0;g=c[j>>2]|0;Kk(h,g,g);g=e+60|0;f=c[g>>2]|0;if(!f)Gk(h,h,c[y>>2]|0);else Jk(h,h,f);Kk(i,c[j>>2]|0,h);f=c[g>>2]|0;if(!f)Gk(i,i,c[y>>2]|0);else Jk(i,i,f);if(!(Fk(h,h,c[y>>2]|0)|0)){Le(45341,k);Se(45375,h);Se(45379,c[y>>2]|0)}Kk(z,c[d>>2]|0,h);f=c[g>>2]|0;if(!f)Gk(z,z,c[y>>2]|0);else Jk(z,z,f);if(!(Fk(i,i,c[y>>2]|0)|0)){Le(45341,n);Se(45375,i);Se(45379,c[y>>2]|0)}Kk(A,o,i);f=c[g>>2]|0;if(!f)Gk(A,A,c[y>>2]|0);else Jk(A,A,f);tl(h);tl(i)}w=yl(Ml(1)|0)|0;Kk(B,x,Ml(3)|0);f=lk(B)|0;g=c[a>>2]|0;if(f>>>0<2){rl(g);rl(c[a+4>>2]|0);rl(c[a+8>>2]|0);f=0}else{Al(g,c[d>>2]|0)|0;Al(c[a+4>>2]|0,o)|0;Al(c[a+8>>2]|0,c[j>>2]|0)|0;f=f+-2|0}tl(o);c[O>>2]=z;g=O+4|0;c[g>>2]=A;h=O+8|0;c[h>>2]=w;i=Hl(0)|0;c[P>>2]=i;j=Hl(0)|0;k=P+4|0;c[k>>2]=j;n=Hl(0)|0;o=P+8|0;c[o>>2]=n;p=Hl(0)|0;c[C>>2]=p;q=Hl(0)|0;r=C+4|0;c[r>>2]=q;s=Hl(0)|0;t=C+8|0;c[t>>2]=s;if(f|0){u=a+4|0;v=a+8|0;do{$j(a,a,e);if((mk(B,f)|0)==1?(mk(x,f)|0)==0:0){Al(i,c[a>>2]|0)|0;Al(j,c[u>>2]|0)|0;Al(n,c[v>>2]|0)|0;ak(a,P,O,e)}if((mk(B,f)|0)==0?(mk(x,f)|0)==1:0){Al(i,c[a>>2]|0)|0;Al(j,c[u>>2]|0)|0;Al(n,c[v>>2]|0)|0;Al(p,z)|0;Al(q,A)|0;Al(s,w)|0;hk(q,c[y>>2]|0,q);ak(a,P,C,e)}f=f+-1|0}while((f|0)!=0)}tl(z);c[O>>2]=0;tl(A);c[g>>2]=0;tl(w);c[h>>2]=0;tl(i);c[P>>2]=0;tl(j);c[k>>2]=0;tl(n);c[o>>2]=0;tl(p);c[C>>2]=0;tl(q);c[r>>2]=0;tl(s);c[t>>2]=0;tl(B);tl(x);l=Q;return}}}function dk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;g=Hl(0)|0;h=Hl(0)|0;i=Hl(0)|0;switch(c[b>>2]|0){case 0:{f=Hl(0)|0;if(Nj(g,h,a,b)|0){i=0;return i|0}Kk(h,h,h);e=b+60|0;a=c[e>>2]|0;if(!a){d=b+16|0;Gk(h,h,c[d>>2]|0)}else{Jk(h,h,a);d=b+16|0}Mk(f,g,Ml(3)|0,c[d>>2]|0);Kk(i,c[b+20>>2]|0,g);a=c[e>>2]|0;if(!a)Gk(i,i,c[d>>2]|0);else Jk(i,i,a);fk(i,i,c[b+24>>2]|0);a=c[e>>2]|0;if(!a)Gk(i,i,c[d>>2]|0);else Jk(i,i,a);fk(i,i,f);a=c[e>>2]|0;if(!a)Gk(i,i,c[d>>2]|0);else Jk(i,i,a);a=(wk(h,i)|0)==0&1;Jl(f);break}case 1:{if(Nj(g,0,a,b)|0){i=0;return i|0}Kk(i,c[b+20>>2]|0,Ml(4)|0);d=b+60|0;a=c[d>>2]|0;if(!a)Gk(i,i,c[b+16>>2]|0);else Jk(i,i,a);fk(i,i,Ml(2)|0);a=c[d>>2]|0;if(!a)Gk(i,i,c[b+16>>2]|0);else Jk(i,i,a);Kk(i,i,g);a=c[d>>2]|0;if(!a)Gk(i,i,c[b+16>>2]|0);else Jk(i,i,a);Kk(h,g,g);a=c[d>>2]|0;if(!a)Gk(h,h,c[b+16>>2]|0);else Jk(h,h,a);fk(i,i,h);a=c[d>>2]|0;if(!a)Gk(i,i,c[b+16>>2]|0);else Jk(i,i,a);fk(i,i,Ml(1)|0);a=c[d>>2]|0;if(!a)Gk(i,i,c[b+16>>2]|0);else Jk(i,i,a);Kk(i,i,g);a=c[d>>2]|0;if(!a)Gk(i,i,c[b+16>>2]|0);else Jk(i,i,a);Kk(i,i,c[b+24>>2]|0);a=c[d>>2]|0;if(!a){a=b+16|0;Gk(i,i,c[a>>2]|0)}else{Jk(i,i,a);a=b+16|0}hk(h,c[a>>2]|0,Ml(1)|0);sk(h,h,1);Mk(i,i,h,c[a>>2]|0);a=vk(i,1)|0;break}case 2:{if(Nj(g,h,a,b)|0){i=0;return i|0}Kk(g,g,g);d=b+60|0;a=c[d>>2]|0;if(!a)Gk(g,g,c[b+16>>2]|0);else Jk(g,g,a);Kk(h,h,h);a=c[d>>2]|0;if(!a)Gk(h,h,c[b+16>>2]|0);else Jk(h,h,a);do if((c[b+4>>2]|0)!=1){Kk(i,c[b+20>>2]|0,g);a=c[d>>2]|0;if(!a){Gk(i,i,c[b+16>>2]|0);break}else{Jk(i,i,a);break}}else{Al(i,g)|0;zl(i,i)}while(0);fk(i,i,h);a=c[d>>2]|0;if(!a)Gk(i,i,c[b+16>>2]|0);else Jk(i,i,a);hk(i,i,Ml(1)|0);Kk(g,g,h);a=c[d>>2]|0;if(!a)Gk(g,g,c[b+16>>2]|0);else Jk(g,g,a);Kk(g,g,c[b+24>>2]|0);a=c[d>>2]|0;if(!a)Gk(g,g,c[b+16>>2]|0);else Jk(g,g,a);hk(i,i,g);a=(vk(i,0)|0)==0&1;break}default:a=0}Jl(i);Jl(g);Jl(h);i=a;return i|0}function ek(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=c[b+4>>2]|0;e=c[b+8>>2]|0;if((c[a>>2]|0)<=(o|0))ql(a,o+1|0);g=c[b+16>>2]|0;n=c[a+16>>2]|0;if(!o){c[n>>2]=d;m=(d|0)!=0&1;n=0;o=a+4|0;c[o>>2]=m;o=a+8|0;c[o>>2]=n;return}if(!e){f=g+4|0;k=c[g>>2]|0;j=k+d|0;e=n+4|0;c[n>>2]=j;a:do if(j>>>0<k>>>0){b=o;while(1){b=b+-1|0;if(!b){b=1;break a}g=f+4|0;k=(c[f>>2]|0)+1|0;d=e+4|0;c[e>>2]=k;if(!k){f=g;e=d}else{f=g;e=d;m=9;break}}}else{b=o;m=9}while(0);if((m|0)==9)if((e|0)!=(f|0)?(l=b+-1|0,(b|0)>1):0){b=0;do{c[e+(b<<2)>>2]=c[f+(b<<2)>>2];b=b+1|0}while((b|0)!=(l|0));b=0}else b=0;c[n+(o<<2)>>2]=b;m=b+o|0;n=0;o=a+4|0;c[o>>2]=m;o=a+8|0;c[o>>2]=n;return}b=c[g>>2]|0;if((o|0)==1&b>>>0<d>>>0){c[n>>2]=d-b;m=1;n=0;o=a+4|0;c[o>>2]=m;o=a+8|0;c[o>>2]=n;return}e=g+4|0;l=b-d|0;f=n+4|0;c[n>>2]=l;b:do if(l>>>0>b>>>0){b=o;while(1){b=b+-1|0;if(!b)break b;g=e+4|0;l=c[e>>2]|0;d=f+4|0;c[f>>2]=l+-1;if(!l){e=g;f=d}else{h=b;i=g;j=d;m=18;break}}}else{h=o;i=e;j=f;m=18}while(0);if(((m|0)==18?(j|0)!=(i|0):0)?(k=h+-1|0,(h|0)>1):0){b=0;do{c[j+(b<<2)>>2]=c[i+(b<<2)>>2];b=b+1|0}while((b|0)!=(k|0))}m=o-((c[n+(o+-1<<2)>>2]|0)==0&1)|0;n=1;o=a+4|0;c[o>>2]=m;o=a+8|0;c[o>>2]=n;return}function fk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;e=c[b+4>>2]|0;h=c[d+4>>2]|0;if((e|0)<(h|0)){g=c[d+8>>2]|0;f=c[b+8>>2]|0;if((c[a>>2]|0)>(h|0)){p=g;i=e;e=h;g=b;b=d}else{ql(a,h+1|0);p=g;i=e;e=h;g=b;b=d}}else{g=c[b+8>>2]|0;f=c[d+8>>2]|0;if((c[a>>2]|0)>(e|0)){p=g;i=h;g=d}else{ql(a,e+1|0);p=g;i=h;g=d}}d=c[b+16>>2]|0;g=c[g+16>>2]|0;o=c[a+16>>2]|0;if(!i){if((e|0)>0)b=0;else{n=e;o=a+4|0;c[o>>2]=n;a=a+8|0;c[a>>2]=p;return}do{c[o+(b<<2)>>2]=c[d+(b<<2)>>2];b=b+1|0}while((b|0)!=(e|0));b=p;p=a+4|0;c[p>>2]=e;a=a+8|0;c[a>>2]=b;return}if((p|0)==(f|0)){b=Wk(o,d,g,i)|0;h=e-i|0;a:do if(h){k=o+(i<<2)|0;m=d+(i<<2)|0;g=m+4|0;m=c[m>>2]|0;l=m+b|0;f=k+4|0;c[k>>2]=l;if(l>>>0<m>>>0){b=h;while(1){b=b+-1|0;if(!b){b=1;break a}h=g+4|0;m=(c[g>>2]|0)+1|0;d=f+4|0;c[f>>2]=m;if(!m){g=h;f=d}else{g=h;f=d;break}}}else b=h;if((f|0)!=(g|0)?(n=b+-1|0,(b|0)>1):0){b=0;do{c[f+(b<<2)>>2]=c[g+(b<<2)>>2];b=b+1|0}while((b|0)!=(n|0));b=0}else b=0}while(0);c[o+(e<<2)>>2]=b;p=(p|0)!=0&1;n=b+e|0;o=a+4|0;c[o>>2]=n;a=a+8|0;c[a>>2]=p;return}if((e|0)!=(i|0)){b=hl(o,d,g,i)|0;h=e-i|0;b:do if(h){k=o+(i<<2)|0;n=d+(i<<2)|0;g=n+4|0;n=c[n>>2]|0;l=n-b|0;f=k+4|0;c[k>>2]=l;if(l>>>0>n>>>0){b=h;while(1){b=b+-1|0;if(!b)break b;h=g+4|0;n=c[g>>2]|0;d=f+4|0;c[f>>2]=n+-1;if(!n){g=h;f=d}else{g=h;f=d;break}}}else b=h;if((f|0)!=(g|0)?(m=b+-1|0,(b|0)>1):0){b=0;do{c[f+(b<<2)>>2]=c[g+(b<<2)>>2];b=b+1|0}while((b|0)!=(m|0))}}while(0);while(1){if((e|0)<=0){b=p;l=39;break}b=e+-1|0;if(!(c[o+(b<<2)>>2]|0))e=b;else{b=p;l=39;break}}if((l|0)==39){p=a+4|0;c[p>>2]=e;a=a+8|0;c[a>>2]=b;return}}else b=e;while(1){if((b|0)<=0)break;b=b+-1|0;j=c[d+(b<<2)>>2]|0;k=c[g+(b<<2)>>2]|0;if((j|0)!=(k|0)){l=22;break}}if((l|0)==22?j>>>0<=k>>>0:0){hl(o,g,d,e)|0;while(1){if((e|0)<=0)break;b=e+-1|0;if(!(c[o+(b<<2)>>2]|0))e=b;else break}p=(p|0)==0&1;n=e;o=a+4|0;c[o>>2]=n;a=a+8|0;c[a>>2]=p;return}hl(o,d,g,e)|0;while(1){if((e|0)<=0)break;b=e+-1|0;if(!(c[o+(b<<2)>>2]|0))e=b;else break}p=(p|0)!=0&1;n=e;o=a+4|0;c[o>>2]=n;a=a+8|0;c[a>>2]=p;return}function gk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=c[b+4>>2]|0;e=c[b+8>>2]|0;if((c[a>>2]|0)<=(o|0))ql(a,o+1|0);g=c[b+16>>2]|0;n=c[a+16>>2]|0;if(!o){c[n>>2]=d;m=(d|0)!=0&1;n=1;o=a+4|0;c[o>>2]=m;o=a+8|0;c[o>>2]=n;return}if(e|0){f=g+4|0;k=c[g>>2]|0;j=k+d|0;e=n+4|0;c[n>>2]=j;a:do if(j>>>0<k>>>0){b=o;while(1){b=b+-1|0;if(!b){b=1;break a}g=f+4|0;k=(c[f>>2]|0)+1|0;d=e+4|0;c[e>>2]=k;if(!k){f=g;e=d}else{f=g;e=d;m=9;break}}}else{b=o;m=9}while(0);if((m|0)==9)if((e|0)!=(f|0)?(l=b+-1|0,(b|0)>1):0){b=0;do{c[e+(b<<2)>>2]=c[f+(b<<2)>>2];b=b+1|0}while((b|0)!=(l|0));b=0}else b=0;c[n+(o<<2)>>2]=b;m=b+o|0;n=0;o=a+4|0;c[o>>2]=m;o=a+8|0;c[o>>2]=n;return}b=c[g>>2]|0;if((o|0)==1&b>>>0<d>>>0){c[n>>2]=d-b;m=1;n=1;o=a+4|0;c[o>>2]=m;o=a+8|0;c[o>>2]=n;return}e=g+4|0;l=b-d|0;f=n+4|0;c[n>>2]=l;b:do if(l>>>0>b>>>0){b=o;while(1){b=b+-1|0;if(!b)break b;g=e+4|0;l=c[e>>2]|0;d=f+4|0;c[f>>2]=l+-1;if(!l){e=g;f=d}else{h=b;i=g;j=d;m=18;break}}}else{h=o;i=e;j=f;m=18}while(0);if(((m|0)==18?(j|0)!=(i|0):0)?(k=h+-1|0,(h|0)>1):0){b=0;do{c[j+(b<<2)>>2]=c[i+(b<<2)>>2];b=b+1|0}while((b|0)!=(k|0))}m=o-((c[n+(o+-1<<2)>>2]|0)==0&1)|0;n=0;o=a+4|0;c[o>>2]=m;o=a+8|0;c[o>>2]=n;return}function hk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;d=yl(d)|0;e=d+8|0;c[e>>2]=(c[e>>2]|0)==0&1;fk(a,b,d);tl(d);return}function ik(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;fk(a,b,c);Gk(a,a,d);return}function jk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;d=yl(d)|0;f=d+8|0;c[f>>2]=(c[f>>2]|0)==0&1;fk(a,b,d);tl(d);Gk(a,a,e);return}function kk(a){a=a|0;var b=0,d=0,e=0;if(a|0?c[a+12>>2]&4|0:0)return;e=a+4|0;d=c[e>>2]|0;if(!d)return;b=c[a+16>>2]|0;a=d;while(1){a=a+-1|0;if(c[b+(a<<2)>>2]|0){a=7;break}c[e>>2]=a;if(!a){a=7;break}}if((a|0)==7)return}function lk(a){a=a|0;var b=0,e=0,f=0,g=0,h=0;if(a|0?c[a+12>>2]&4|0:0){h=c[a+8>>2]|0;return h|0}h=a+4|0;b=c[h>>2]|0;if(!b){h=0;return h|0}f=c[a+16>>2]|0;while(1){e=b+-1|0;if(c[f+(e<<2)>>2]|0)break;c[h>>2]=e;if(!e){b=0;g=11;break}else b=e}if((g|0)==11)return b|0;b=c[(c[a+16>>2]|0)+(b+-1<<2)>>2]|0;if(!b)b=32;else{g=b>>>0<65536?(b>>>0<256?0:8):b>>>0<16777216?16:24;b=32-g-(d[45555+(b>>>g)>>0]|0)|0}h=(c[h>>2]<<5)-b|0;return h|0}function mk(a,b){a=a|0;b=b|0;var d=0;d=b>>>5;if(d>>>0>=(c[a+4>>2]|0)>>>0){d=0;return d|0}d=(c[(c[a+16>>2]|0)+(d<<2)>>2]&1<<(b&31)|0)!=0&1;return d|0}function nk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;if(a|0?c[a+12>>2]&16|0:0){sl();return}g=b>>>5;e=b&31;f=a+4|0;b=c[f>>2]|0;if(g>>>0>=b>>>0){if(b>>>0<(c[a>>2]|0)>>>0){d=c[a+16>>2]|0;do{c[d+(b<<2)>>2]=0;b=b+1|0}while(b>>>0<(c[a>>2]|0)>>>0)}d=g+1|0;ql(a,d);c[f>>2]=d}g=(c[a+16>>2]|0)+(g<<2)|0;c[g>>2]=c[g>>2]|1<<e;return}function ok(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;if(a|0?c[a+12>>2]&16|0:0){sl();return}g=b>>>5;e=b&31;f=a+4|0;b=c[f>>2]|0;if(g>>>0>=b>>>0){if(b>>>0<(c[a>>2]|0)>>>0){d=c[a+16>>2]|0;do{c[d+(b<<2)>>2]=0;b=b+1|0}while(b>>>0<(c[a>>2]|0)>>>0)}d=g+1|0;ql(a,d);c[f>>2]=d}a=(c[a+16>>2]|0)+(g<<2)|0;d=c[a>>2]|1<<e;c[a>>2]=d;b=e+1|0;if(b>>>0<32){do{d=d&~(1<<b);b=b+1|0}while((b|0)!=32);c[a>>2]=d}c[f>>2]=g+1;return}function pk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;if(a|0?c[a+12>>2]&16|0:0){sl();return}e=b>>>5;f=a+4|0;if(e>>>0>=(c[f>>2]|0)>>>0)return;d=(c[a+16>>2]|0)+(e<<2)|0;a=b&31;b=c[d>>2]|0;do{b=b&~(1<<a);a=a+1|0}while((a|0)!=32);c[d>>2]=b;c[f>>2]=e+1;return}function qk(a,b){a=a|0;b=b|0;var d=0;if(a|0?c[a+12>>2]&16|0:0){sl();return}d=b>>>5;if(d>>>0>=(c[a+4>>2]|0)>>>0)return;d=(c[a+16>>2]|0)+(d<<2)|0;c[d>>2]=c[d>>2]&~(1<<(b&31));return}function rk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=c[a+16>>2]|0;f=a+4|0;d=c[f>>2]|0;if(a|0?c[a+12>>2]&16|0:0){sl();return}if(d>>>0<=b>>>0){c[f>>2]=0;return}a=d-b|0;if(!a)a=0;else{d=0;do{c[e+(d<<2)>>2]=c[e+(d+b<<2)>>2];d=d+1|0}while((d|0)!=(a|0))}c[e+(a<<2)>>2]=0;c[f>>2]=(c[f>>2]|0)-b;return}function sk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=d>>>5;i=d&31;if(a|0?c[a+12>>2]&16|0:0){sl();return}a:do if((a|0)==(b|0)){f=a+4|0;d=c[f>>2]|0;if(h>>>0>=d>>>0){c[f>>2]=0;return}if(h){e=c[a+16>>2]|0;d=0;do{c[e+(d<<2)>>2]=c[e+(d+h<<2)>>2];d=d+1|0}while(d>>>0<((c[f>>2]|0)-h|0)>>>0);c[e+(d<<2)>>2]=0;d=(c[f>>2]|0)-h|0;c[f>>2]=d}if((i|0)!=0&(d|0)!=0){h=c[a+16>>2]|0;gl(h,h,d,i)|0}}else{g=b+4|0;e=c[g>>2]|0;c[a+8>>2]=c[b+8>>2];d=(c[a>>2]|0)<(e|0);if(!h){if(d)ql(a,e);f=a+4|0;c[f>>2]=e;if(!e)break;if(i|0){gl(c[a+16>>2]|0,c[b+16>>2]|0,e,i)|0;break}e=c[b+16>>2]|0;b=c[a+16>>2]|0;d=0;while(1){c[b+(d<<2)>>2]=c[e+(d<<2)>>2];d=d+1|0;if(d>>>0>=(c[f>>2]|0)>>>0)break a}}if(d)ql(a,e);f=a+4|0;c[f>>2]=e;if(!(c[g>>2]|0))d=0;else{e=c[b+16>>2]|0;b=c[a+16>>2]|0;d=0;do{c[b+(d<<2)>>2]=c[e+(d<<2)>>2];d=d+1|0}while(d>>>0<(c[g>>2]|0)>>>0)}c[f>>2]=d;if(h>>>0>=d>>>0){c[f>>2]=0;return}e=c[a+16>>2]|0;d=0;do{c[e+(d<<2)>>2]=c[e+(d+h<<2)>>2];d=d+1|0}while(d>>>0<((c[f>>2]|0)-h|0)>>>0);c[e+(d<<2)>>2]=0;d=(c[f>>2]|0)-h|0;c[f>>2]=d;if((i|0)!=0&(d|0)!=0)gl(e,e,d,i)|0}while(0);d=c[f>>2]|0;if((d|0)<=0)return;b=c[a+16>>2]|0;while(1){e=d;d=d+-1|0;if(c[b+(d<<2)>>2]|0){d=36;break}c[f>>2]=d;if((e|0)<=1){d=36;break}}if((d|0)==36)return}function tk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=a+4|0;d=c[f>>2]|0;if(!((b|0)!=0&(d|0)!=0))return;e=d+b|0;if((c[a>>2]|0)>>>0<e>>>0)ql(a,e);a=c[a+16>>2]|0;if((d|0)>0)do{e=d;d=d+-1|0;c[a+(d+b<<2)>>2]=c[a+(d<<2)>>2]}while((e|0)>1);Yq(a|0,0,b<<2|0)|0;c[f>>2]=(c[f>>2]|0)+b;return}function uk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=d>>>5;j=d&31;if(a|0?c[a+12>>2]&16|0:0){sl();return}e=(a|0)!=(b|0);i=(d|0)!=0;if(!(e|i))return;if(e){g=c[b+4>>2]|0;h=c[b+8>>2]|0;d=k+1+g|0;if((c[a>>2]|0)>>>0<d>>>0)ql(a,d);e=c[a+16>>2]|0;f=c[b+16>>2]|0;if(g|0){d=0;do{c[e+(d<<2)>>2]=c[f+(d<<2)>>2];d=d+1|0}while((d|0)!=(g|0))}c[a+4>>2]=g;c[a+12>>2]=c[b+12>>2];c[a+8>>2]=h}do if(!((k|0)==0|(j|0)!=0)){g=a+4|0;d=c[g>>2]|0;if(d){e=d+k|0;if((c[a>>2]|0)>>>0<e>>>0)ql(a,e);e=c[a+16>>2]|0;if((d|0)>0)do{j=d;d=d+-1|0;c[e+(d+k<<2)>>2]=c[e+(d<<2)>>2]}while((j|0)>1);Yq(e|0,0,k<<2|0)|0;c[g>>2]=(c[g>>2]|0)+k}}else{if(!i){g=a+4|0;break}f=k+1|0;g=a+4|0;d=c[g>>2]|0;if(d|0){e=d+f|0;if((c[a>>2]|0)>>>0<e>>>0)ql(a,e);e=c[a+16>>2]|0;if((d|0)>0)do{b=d;d=d+-1|0;c[e+(b+k<<2)>>2]=c[e+(d<<2)>>2]}while((b|0)>1);Yq(e|0,0,f<<2|0)|0;c[g>>2]=(c[g>>2]|0)+f}sk(a,a,32-j|0)}while(0);d=c[g>>2]|0;if((d|0)<=0)return;f=c[a+16>>2]|0;while(1){e=d;d=d+-1|0;if(c[f+(d<<2)>>2]|0){d=31;break}c[g>>2]=d;if((e|0)<=1){d=31;break}}if((d|0)==31)return}function vk(a,b){a=a|0;b=b|0;var d=0;kk(a);d=c[a+4>>2]|0;if(!d){b=((b|0)!=0)<<31>>31;return b|0}if(c[a+8>>2]|0){b=-1;return b|0}if((d|0)!=1){b=1;return b|0}a=c[c[a+16>>2]>>2]|0;if(a>>>0>b>>>0){b=1;return b|0}b=(a>>>0<b>>>0)<<31>>31;return b|0}function wk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=(a|0)!=0;if(e?(d=c[a+12>>2]|0,(d&4|0)!=0):0)j=7;else j=3;do if((j|0)==3){if(b|0?(f=c[b+12>>2]|0,f&4|0):0){if(!e){g=f;j=12;break}d=c[a+12>>2]|0;j=7;break}kk(a);kk(b);d=c[a+4>>2]|0;g=c[b+4>>2]|0;i=c[a+8>>2]|0;h=(i|0)==0;e=c[b+8>>2]|0;f=(e|0)==0;if(h)if(f)e=0;else{j=1;return j|0}else if(f){j=-1;return j|0}do if((d|0)!=(g|0)){e=(e|0)==0;if(h){if(!e)break;j=d-g|0;return j|0}else{if(e)break;j=g+d|0;return j|0}}while(0);if(!d){j=0;return j|0}h=c[a+16>>2]|0;g=c[b+16>>2]|0;do{if((d|0)<=0){d=0;j=31;break}d=d+-1|0;e=c[h+(d<<2)>>2]|0;f=c[g+(d<<2)>>2]|0}while((e|0)==(f|0));if((j|0)==31)return d|0;j=e>>>0<=f>>>0^(i|0)!=0?-1:1;return j|0}while(0);do if((j|0)==7){d=(d&4|0)==0;if(d){if(!((b|0)!=0&d))break;g=c[b+12>>2]|0;j=12;break}if(!b){j=-1;return j|0}if(!(c[b+12>>2]&4)){j=-1;return j|0}}while(0);if((j|0)==12?g&4|0:0){j=1;return j|0}d=c[a+8>>2]|0;e=c[b+8>>2]|0;if(!(d|e)){j=0;return j|0}if((d|0)<(e|0)){j=-1;return j|0}if((d|0)>(e|0)){j=1;return j|0}j=Tp(c[a+16>>2]|0,c[b+16>>2]|0,(d+7|0)/8|0)|0;return j|0}function xk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=c[d+8>>2]|0;if((a|0)==(d|0)){d=yl(d)|0;e=d}else e=0;yk(0,a,b,d);if((f|0)!=0^(c[b+8>>2]|0)!=0?c[a+4>>2]|0:0)fk(a,a,d);if(!e)return;tl(e);return}function yk(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=l;l=l+48|0;if((l|0)>=(m|0))$(48);w=y+20|0;x=y;i=e+4|0;s=c[i>>2]|0;h=c[f+4>>2]|0;g=e+8|0;v=c[g>>2]|0;t=c[f+8>>2]^v;n=s+1|0;ql(b,n);j=n-h|0;if((j|0)<1){if((e|0)!=(b|0)?(c[b+4>>2]=c[i>>2],c[b+8>>2]=c[g>>2],(s|0)>0):0){i=c[e+16>>2]|0;h=c[b+16>>2]|0;g=0;do{c[h+(g<<2)>>2]=c[i+(g<<2)>>2];g=g+1|0}while((g|0)!=(s|0))}if(!a){l=y;return}c[a+4>>2]=0;c[a+8>>2]=0;l=y;return}r=(a|0)!=0;if(r)ql(a,j);e=c[e+16>>2]|0;k=c[f+16>>2]|0;u=c[b+16>>2]|0;if((h|0)==1){if(r){x=c[a+16>>2]|0;g=Zk(x,e,s,c[k>>2]|0)|0;c[a+4>>2]=j-((c[x+(j+-1<<2)>>2]|0)==0&1);c[a+8>>2]=t}else g=Xk(e,s,c[k>>2]|0)|0;c[u>>2]=g;c[b+4>>2]=(g|0)!=0&1;c[b+8>>2]=v;l=y;return}if(r){g=c[a+16>>2]|0;if((g|0)==(e|0)){c[x>>2]=s;i=ml(s,c[a+12>>2]&1)|0;c[w>>2]=i;if((s|0)>0){g=0;do{c[i+(g<<2)>>2]=c[e+(g<<2)>>2];g=g+1|0}while((g|0)!=(s|0));o=e;g=1}else{o=e;g=1}}else{i=e;o=g;g=0}}else{i=e;o=u+(h<<2)|0;g=0}q=c[k+(h+-1<<2)>>2]|0;p=q>>>0<65536?(q>>>0<256?0:8):q>>>0<16777216?16:24;p=32-(d[45555+(q>>>p)>>0]|0)-p|0;q=(p|0)!=0;if(q){c[x+(g<<2)>>2]=h;if(!f)e=0;else e=(c[f+12>>2]&1|0)!=0;j=ml(h,e&1)|0;e=g+1|0;c[w+(g<<2)>>2]=j;_k(j,k,h,p)|0;g=_k(u,i,s,p)|0;if(!g){i=s;g=e}else{c[u+(s<<2)>>2]=g;i=n;g=e}}else{if((k|0)==(u|0)|r&(k|0)==(o|0)){c[x+(g<<2)>>2]=h;if(!f)e=0;else e=(c[f+12>>2]&1|0)!=0;j=ml(h,e&1)|0;e=g+1|0;c[w+(g<<2)>>2]=j;if((h|0)>0){g=0;do{c[j+(g<<2)>>2]=c[k+(g<<2)>>2];g=g+1|0}while((g|0)!=(h|0));g=e}else g=e}else j=k;if((u|0)!=(i|0)&(s|0)>0){e=0;do{c[u+(e<<2)>>2]=c[i+(e<<2)>>2];e=e+1|0}while((e|0)!=(s|0));i=s}else i=s}e=Yk(o,0,u,i,j,h)|0;if(r){i=i-h|0;if(e){c[o+(i<<2)>>2]=e;i=i+1|0}c[a+4>>2]=i;c[a+8>>2]=t}while(1){if((h|0)<=0)break;i=h+-1|0;if(!(c[u+(i<<2)>>2]|0))h=i;else break}if(q&(h|0)!=0){gl(u,u,h,p)|0;h=h-((c[u+(h+-1<<2)>>2]|0)==0&1)|0}c[b+4>>2]=h;c[b+8>>2]=v;if(!g){l=y;return}do{g=g+-1|0;ol(c[w+(g<<2)>>2]|0,c[x+(g<<2)>>2]|0)}while((g|0)!=0);l=y;return}function zk(a,b,c){a=a|0;b=b|0;c=c|0;yk(0,a,b,c);return}function Ak(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=Xk(c[b+16>>2]|0,c[b+4>>2]|0,d)|0;if(!e)b=0;else b=(c[b+8>>2]|0)==0?e:d-e|0;if(!a)return b|0;c[c[a+16>>2]>>2]=b;c[a+4>>2]=(b|0)!=0&1;return b|0}function Bk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=ll(c[a+4>>2]|0)|0;g=c[d+8>>2]|0;if((a|0)==(d|0)|(f|0)==(d|0)){d=yl(d)|0;e=d}else e=0;yk(a,f,b,d);if((g|0)!=(c[b+8>>2]|0)?c[f+4>>2]|0:0){gk(a,a,1);fk(f,f,d)}if(!e){tl(f);return}tl(e);tl(f);return}function Ck(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=c[b+4>>2]|0;g=d>>>5;e=h-g|0;if((h|0)<=(g|0)){c[a+4>>2]=0;return}if((c[a>>2]|0)<(e|0))ql(a,e);h=c[a+16>>2]|0;f=c[b+16>>2]|0;b=d&31;if(!b){if((e|0)>0){f=f+(g<<2)|0;b=0;do{c[h+(b<<2)>>2]=c[f+(b<<2)>>2];b=b+1|0}while((b|0)!=(e|0))}}else{gl(h,f+(g<<2)|0,e,b)|0;e=e-((c[h+(e+-1<<2)>>2]|0)==0&1)|0}c[a+4>>2]=e;return}function Dk(a,b){a=a|0;b=b|0;return (Xk(c[a+16>>2]|0,c[a+4>>2]|0,b)|0)==0|0}function Ek(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=yl(b)|0;b=yl(d)|0;c[e+8>>2]=0;c[b+8>>2]=0;if(vk(b,0)|0)do{xk(a,e,b);Al(e,b)|0;Al(b,a)|0}while((vk(b,0)|0)!=0);Al(a,e)|0;tl(e);tl(b);return (vk(a,1)|0)==0|0}function Fk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;if(!(vk(b,0)|0)){a=0;return a|0}if(!(vk(d,1)|0)){a=0;return a|0}q=yl(b)|0;p=yl(d)|0;a:do if(!(mk(q,0)|0))do{if(mk(p,0)|0)break a;sk(q,q,1);sk(p,p,1)}while(!(mk(q,0)|0));while(0);l=mk(p,0)|0;k=kl(1)|0;l=(l|0)!=0;if(l)i=0;else i=kl(0)|0;m=yl(q)|0;n=yl(p)|0;if(l)j=0;else{j=ll(c[q+4>>2]|0)|0;hk(j,k,q)}o=yl(p)|0;if(!(mk(q,0)|0)){b=kl(1)|0;if(l)d=0;else d=kl(0)|0;f=yl(q)|0;g=17}else{b=kl(0)|0;if(l)d=0;else{d=kl(1)|0;c[d+8>>2]=1}h=yl(p)|0;f=h+8|0;c[f>>2]=(c[f>>2]|0)==0&1}while(1){if((g|0)==17){g=0;e=(mk(b,0)|0)!=0;if(l){if(e)fk(b,b,p);sk(b,b,1);sk(f,f,1);h=f;continue}if(!(!e?!(mk(d,0)|0):0)){fk(b,b,p);hk(d,d,q)}sk(b,b,1);sk(d,d,1);sk(f,f,1);h=f}if(!(mk(h,0)|0)){f=h;g=17;continue}e=h+8|0;if(!(c[e>>2]|0)){Al(k,b)|0;if(!l)Al(i,d)|0;Al(m,h)|0}else{hk(n,p,b);f=q+8|0;g=c[f>>2]|0;c[f>>2]=(g|0)==0&1;if(!l)hk(j,q,d);c[f>>2]=g;g=c[e>>2]|0;c[e>>2]=(g|0)==0&1;Al(o,h)|0;c[e>>2]=g}hk(b,k,n);if(!l)hk(d,i,j);hk(h,m,o);if(c[b+8>>2]|0?(fk(b,b,p),!l):0)hk(d,d,q);if(!(vk(h,0)|0))break;else{f=h;g=17}}Al(a,k)|0;tl(k);tl(n);tl(b);if(!l){tl(i);tl(j);tl(d)}tl(m);tl(o);tl(h);tl(q);tl(p);a=1;return a|0}function Gk(a,b,c){a=a|0;b=b|0;c=c|0;xk(a,b,c);return}function Hk(a,b){a=a|0;b=b|0;var d=0,e=0;kk(a);d=kf(1,28)|0;if(!b)c[d>>2]=a;else{c[d>>2]=yl(a)|0;c[d+4>>2]=1}b=c[a+4>>2]|0;c[d+8>>2]=b;e=ll(b+1|0)|0;El(e,1)|0;b=b<<1;tk(e,b);Bk(e,e,a);c[d+12>>2]=e;b=b|1;c[d+16>>2]=ll(b)|0;c[d+20>>2]=ll(b)|0;return d|0}function Ik(a){a=a|0;var b=0;if(!a)return;tl(c[a+12>>2]|0);tl(c[a+16>>2]|0);tl(c[a+20>>2]|0);b=c[a+24>>2]|0;if(b|0)tl(b);if(c[a+4>>2]|0)tl(c[a>>2]|0);cf(a);return}function Jk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;l=c[d>>2]|0;i=c[d+8>>2]|0;e=c[d+12>>2]|0;g=c[d+16>>2]|0;f=c[d+20>>2]|0;kk(b);if((c[b+4>>2]|0)>(i<<1|0)){xk(a,b,l);return}j=b+8|0;k=c[j>>2]|0;c[j>>2]=0;Al(f,b)|0;rk(f,i+-1|0);Kk(f,f,e);h=i+1|0;rk(f,h);Al(g,b)|0;e=g+4|0;if((c[e>>2]|0)>(h|0))c[e>>2]=h;Kk(f,f,l);e=f+4|0;if((c[e>>2]|0)>(h|0))c[e>>2]=h;hk(a,g,f);if(c[a+8>>2]|0){b=d+24|0;e=c[b>>2]|0;if(!e){e=ll(i+2|0)|0;c[b>>2]=e;El(e,1)|0;tk(c[b>>2]|0,h);e=c[b>>2]|0}fk(a,a,e)}if((wk(a,l)|0)>-1)do hk(a,a,l);while((wk(a,l)|0)>-1);c[j>>2]=k;return}function Kk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;k=c[b+4>>2]|0;l=c[d+4>>2]|0;h=(k|0)<(l|0);p=h?b:d;i=h?d:b;m=h?l:k;g=c[i+12>>2]&1;l=h?k:l;k=c[i+16>>2]|0;h=c[p+12>>2]&1;f=c[p+16>>2]|0;p=c[i+8>>2]^c[p+8>>2];i=a+16|0;e=c[i>>2]|0;n=m+l|0;if((a|0)!=0?(c[a+12>>2]&1|0)!=0:0)o=7;else o=3;do if((o|0)==3){if(!(c[b+12>>2]&1)){if(!d){o=7;break}if(!(c[d+12>>2]&1)){o=7;break}}h=0;j=0;g=2;e=ml(n,1)|0;b=k}while(0);a:do if((o|0)==7){b=(e|0)==(k|0);if((c[a>>2]|0)<(n|0))if(b|(e|0)==(f|0)){h=0;j=0;g=1;e=ml(n,c[a+12>>2]&1)|0;b=k;break}else{ql(a,n);h=0;j=0;g=0;e=c[i>>2]|0;b=k;break}if(b){b=ml(m,g)|0;f=(k|0)==(f|0)?b:f;if((m|0)>0)e=0;else{h=m;j=b;g=0;e=k;break}while(1){c[b+(e<<2)>>2]=c[k+(e<<2)>>2];e=e+1|0;if((e|0)>=(m|0)){h=m;j=b;g=0;e=k;break a}}}if((e|0)==(f|0)){d=ml(l,h)|0;if((l|0)>0){e=0;do{c[d+(e<<2)>>2]=c[f+(e<<2)>>2];e=e+1|0}while((e|0)!=(l|0));h=l;j=d;g=0;e=f;b=k;f=d}else{h=l;j=d;g=0;e=f;b=k;f=d}}else{h=0;j=0;g=0;b=k}}while(0);if(!l)d=0;else d=n-((el(e,b,m,f,l)|0)==0&1)|0;switch(g&3){case 0:break;case 2:{b=ml(d,0)|0;if((d|0)>0){f=0;do{c[b+(f<<2)>>2]=c[e+(f<<2)>>2];f=f+1|0}while((f|0)!=(d|0))}ol(e,0);e=b;o=23;break}default:o=23}if((o|0)==23)pl(a,e,d);c[a+4>>2]=d;c[a+8>>2]=p;if(!j)return;ol(j,h);return}function Lk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Kk(a,b,c);zk(a,a,d);return} +function op(e,f,g,i,k){e=e|0;f=f|0;g=g|0;i=i|0;k=k|0;var n=0,o=0,p=0,q=0,r=0.0,s=0,t=0,u=0,v=0,w=0.0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0;la=l;l=l+624|0;if((l|0)>=(m|0))$(624);ha=la+24|0;ia=la+16|0;ja=la+588|0;Z=la+576|0;ka=la;U=la+536|0;O=la+8|0;P=la+528|0;Q=(e|0)!=0;R=U+40|0;T=R;U=U+39|0;V=O+4|0;W=ja;X=0-W|0;Y=Z+12|0;Z=Z+11|0;_=Y;aa=_-W|0;ba=-2-W|0;ca=_+2|0;da=ha+288|0;ea=ja+9|0;fa=ea;ga=ja+8|0;o=0;n=0;t=0;a:while(1){do if((n|0)>-1)if((o|0)>(2147483647-n|0)){c[(zo()|0)>>2]=75;n=-1;break}else{n=o+n|0;break}while(0);o=a[f>>0]|0;if(!(o<<24>>24)){N=243;break}else p=f;b:while(1){switch(o<<24>>24){case 37:{o=p;N=9;break b}case 0:{o=p;break b}default:{}}o=p+1|0;p=o;o=a[o>>0]|0}c:do if((N|0)==9)while(1){N=0;if((a[p+1>>0]|0)!=37)break c;o=o+1|0;p=p+2|0;if((a[p>>0]|0)==37)N=9;else break}while(0);o=o-f|0;if(Q?(c[e>>2]&32|0)==0:0)rp(f,o,e)|0;if(o|0){f=p;continue}s=p+1|0;q=a[s>>0]|0;o=(q<<24>>24)+-48|0;if(o>>>0<10){v=(a[p+2>>0]|0)==36;s=v?p+3|0:s;x=v?o:-1;v=v?1:t;o=a[s>>0]|0}else{x=-1;v=t;o=q}p=(o<<24>>24)+-32|0;d:do if(p>>>0<32){q=0;do{if(!(1<<p&75913))break d;q=1<<(o<<24>>24)+-32|q;s=s+1|0;o=a[s>>0]|0;p=(o<<24>>24)+-32|0}while(p>>>0<32)}else q=0;while(0);do if(o<<24>>24!=42){p=(o<<24>>24)+-48|0;if(p>>>0<10){t=0;do{t=(t*10|0)+p|0;s=s+1|0;o=a[s>>0]|0;p=(o<<24>>24)+-48|0}while(p>>>0<10);if((t|0)<0){n=-1;break a}else M=v}else{t=0;M=v}}else{u=s+1|0;o=a[u>>0]|0;p=(o<<24>>24)+-48|0;if(p>>>0<10?(a[s+2>>0]|0)==36:0){c[k+(p<<2)>>2]=10;o=c[i+((a[u>>0]|0)+-48<<3)>>2]|0;p=1;u=s+3|0}else{if(v|0){n=-1;break a}if(!Q){t=0;M=0;s=u;break}p=(c[g>>2]|0)+(4-1)&~(4-1);o=c[p>>2]|0;c[g>>2]=p+4;p=0}M=(o|0)<0;t=M?0-o|0:o;q=M?q|8192:q;M=p;s=u;o=a[u>>0]|0}while(0);e:do if(o<<24>>24==46){o=s+1|0;p=a[o>>0]|0;if(p<<24>>24!=42){s=(p<<24>>24)+-48|0;if(s>>>0<10)p=0;else{y=0;break}while(1){p=(p*10|0)+s|0;o=o+1|0;s=(a[o>>0]|0)+-48|0;if(s>>>0>=10){y=p;break e}}}o=s+2|0;p=(a[o>>0]|0)+-48|0;if(p>>>0<10?(a[s+3>>0]|0)==36:0){c[k+(p<<2)>>2]=10;y=c[i+((a[o>>0]|0)+-48<<3)>>2]|0;o=s+4|0;break}if(M|0){n=-1;break a}if(Q){L=(c[g>>2]|0)+(4-1)&~(4-1);y=c[L>>2]|0;c[g>>2]=L+4}else y=0}else{y=-1;o=s}while(0);v=0;while(1){p=(a[o>>0]|0)+-65|0;if(p>>>0>57){n=-1;break a}L=o+1|0;p=a[66502+(v*58|0)+p>>0]|0;s=p&255;if((s+-1|0)>>>0<8){v=s;o=L}else break}if(!(p<<24>>24)){n=-1;break}u=(x|0)>-1;do if(p<<24>>24==19)if(u){n=-1;break a}else N=51;else{if(u){c[k+(x<<2)>>2]=s;J=i+(x<<3)|0;K=c[J+4>>2]|0;N=ka;c[N>>2]=c[J>>2];c[N+4>>2]=K;N=51;break}if(!Q){n=0;break a}sp(ka,s,g)}while(0);if((N|0)==51?(N=0,!Q):0){o=0;t=M;f=L;continue}G=a[o>>0]|0;G=(v|0)!=0&(G&15|0)==3?G&-33:G;u=q&-65537;K=(q&8192|0)==0?q:u;f:do switch(G|0){case 110:switch((v&255)<<24>>24){case 0:{c[c[ka>>2]>>2]=n;o=0;t=M;f=L;continue a}case 1:{c[c[ka>>2]>>2]=n;o=0;t=M;f=L;continue a}case 2:{o=c[ka>>2]|0;c[o>>2]=n;c[o+4>>2]=((n|0)<0)<<31>>31;o=0;t=M;f=L;continue a}case 3:{b[c[ka>>2]>>1]=n;o=0;t=M;f=L;continue a}case 4:{a[c[ka>>2]>>0]=n;o=0;t=M;f=L;continue a}case 6:{c[c[ka>>2]>>2]=n;o=0;t=M;f=L;continue a}case 7:{o=c[ka>>2]|0;c[o>>2]=n;c[o+4>>2]=((n|0)<0)<<31>>31;o=0;t=M;f=L;continue a}default:{o=0;t=M;f=L;continue a}}case 112:{u=120;v=y>>>0>8?y:8;o=K|8;N=63;break}case 88:case 120:{u=G;v=y;o=K;N=63;break}case 111:{p=ka;o=c[p>>2]|0;p=c[p+4>>2]|0;if((o|0)==0&(p|0)==0)f=R;else{f=R;do{f=f+-1|0;a[f>>0]=o&7|48;o=gr(o|0,p|0,3)|0;p=D}while(!((o|0)==0&(p|0)==0))}if(!(K&8)){p=0;q=66982;s=y;o=K;N=76}else{s=T-f|0;p=0;q=66982;s=(y|0)>(s|0)?y:s+1|0;o=K;N=76}break}case 105:case 100:{f=ka;o=c[f>>2]|0;f=c[f+4>>2]|0;if((f|0)<0){o=Xq(0,0,o|0,f|0)|0;f=D;p=ka;c[p>>2]=o;c[p+4>>2]=f;p=1;q=66982;N=75;break f}if(!(K&2048)){q=K&1;p=q;q=(q|0)==0?66982:66984;N=75}else{p=1;q=66983;N=75}break}case 117:{f=ka;p=0;q=66982;o=c[f>>2]|0;f=c[f+4>>2]|0;N=75;break}case 99:{a[U>>0]=c[ka>>2];f=U;x=0;v=66982;p=R;o=1;break}case 109:{o=dp(c[(zo()|0)>>2]|0)|0;N=81;break}case 115:{o=c[ka>>2]|0;o=o|0?o:66992;N=81;break}case 67:{c[O>>2]=c[ka>>2];c[V>>2]=0;c[ka>>2]=O;u=-1;p=O;N=85;break}case 83:{o=c[ka>>2]|0;if(!y){up(e,32,t,0,K);o=0;N=96}else{u=y;p=o;N=85}break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{r=+h[ka>>3];c[ia>>2]=0;h[j>>3]=r;if((c[j+4>>2]|0)>=0){o=K&1;if(!(K&2048)){J=o;I=(o|0)==0?67e3:67005}else{J=1;I=67002}}else{r=-r;J=1;I=66999}h[j>>3]=r;H=c[j+4>>2]&2146435072;do if(H>>>0<2146435072|(H|0)==2146435072&0<0){w=+wp(r,ia)*2.0;f=w!=0.0;if(f)c[ia>>2]=(c[ia>>2]|0)+-1;A=G|32;if((A|0)==97){s=G&32;x=(s|0)==0?I:I+9|0;v=J|2;o=12-y|0;do if(!(y>>>0>11|(o|0)==0)){r=8.0;do{o=o+-1|0;r=r*16.0}while((o|0)!=0);if((a[x>>0]|0)==45){r=-(r+(-w-r));break}else{r=w+r-r;break}}else r=w;while(0);f=c[ia>>2]|0;o=(f|0)<0?0-f|0:f;o=tp(o,((o|0)<0)<<31>>31,Y)|0;if((o|0)==(Y|0)){a[Z>>0]=48;o=Z}a[o+-1>>0]=(f>>31&2)+43;u=o+-2|0;a[u>>0]=G+15;q=(y|0)<1;p=(K&8|0)==0;o=ja;do{J=~~r;f=o+1|0;a[o>>0]=d[66966+J>>0]|s;r=(r-+(J|0))*16.0;do if((f-W|0)==1){if(p&(q&r==0.0)){o=f;break}a[f>>0]=46;o=o+2|0}else o=f;while(0)}while(r!=0.0);q=u;p=(y|0)!=0&(ba+o|0)<(y|0)?ca+y-q|0:aa-q+o|0;s=p+v|0;up(e,32,t,s,K);if(!(c[e>>2]&32))rp(x,v,e)|0;up(e,48,t,s,K^65536);f=o-W|0;if(!(c[e>>2]&32))rp(ja,f,e)|0;o=_-q|0;up(e,48,p-(f+o)|0,0,0);if(!(c[e>>2]&32))rp(u,o,e)|0;up(e,32,t,s,K^8192);o=(s|0)<(t|0)?t:s;break}o=(y|0)<0?6:y;if(f){f=(c[ia>>2]|0)+-28|0;c[ia>>2]=f;r=w*268435456.0}else{r=w;f=c[ia>>2]|0}H=(f|0)<0?ha:da;p=H;do{F=~~r>>>0;c[p>>2]=F;p=p+4|0;r=(r-+(F>>>0))*1.0e9}while(r!=0.0);if((f|0)>0){q=H;u=p;while(1){s=(f|0)>29?29:f;f=u+-4|0;do if(f>>>0>=q>>>0){p=0;do{E=mr(c[f>>2]|0,0,s|0)|0;E=_q(E|0,D|0,p|0,0)|0;F=D;C=nr(E|0,F|0,1e9,0)|0;c[f>>2]=C;p=ir(E|0,F|0,1e9,0)|0;f=f+-4|0}while(f>>>0>=q>>>0);if(!p)break;q=q+-4|0;c[q>>2]=p}while(0);p=u;while(1){if(p>>>0<=q>>>0)break;f=p+-4|0;if(!(c[f>>2]|0))p=f;else break}f=(c[ia>>2]|0)-s|0;c[ia>>2]=f;if((f|0)>0)u=p;else break}}else q=H;if((f|0)<0){y=((o+25|0)/9|0)+1|0;z=(A|0)==102;do{x=0-f|0;x=(x|0)>9?9:x;do if(q>>>0<p>>>0){s=(1<<x)+-1|0;u=1e9>>>x;v=0;f=q;do{F=c[f>>2]|0;c[f>>2]=(F>>>x)+v;v=S(F&s,u)|0;f=f+4|0}while(f>>>0<p>>>0);f=(c[q>>2]|0)==0?q+4|0:q;if(!v){q=f;f=p;break}c[p>>2]=v;q=f;f=p+4|0}else{q=(c[q>>2]|0)==0?q+4|0:q;f=p}while(0);p=z?H:q;p=(f-p>>2|0)>(y|0)?p+(y<<2)|0:f;f=(c[ia>>2]|0)+x|0;c[ia>>2]=f}while((f|0)<0)}F=H;do if(q>>>0<p>>>0){f=(F-q>>2)*9|0;u=c[q>>2]|0;if(u>>>0<10)break;else s=10;do{s=s*10|0;f=f+1|0}while(u>>>0>=s>>>0)}else f=0;while(0);B=(A|0)==103;C=(o|0)!=0;s=o-((A|0)!=102?f:0)+((C&B)<<31>>31)|0;if((s|0)<(((p-F>>2)*9|0)+-9|0)){s=s+9216|0;v=H+4+(((s|0)/9|0)+-1024<<2)|0;s=((s|0)%9|0)+1|0;if((s|0)<9){u=10;do{u=u*10|0;s=s+1|0}while((s|0)!=9)}else u=10;y=c[v>>2]|0;z=(y>>>0)%(u>>>0)|0;s=(v+4|0)==(p|0);do if(s&(z|0)==0)s=v;else{w=(((y>>>0)/(u>>>0)|0)&1|0)==0?9007199254740992.0:9007199254740994.0;x=(u|0)/2|0;if(z>>>0<x>>>0)r=.5;else r=s&(z|0)==(x|0)?1.0:1.5;do if(J){if((a[I>>0]|0)!=45)break;r=-r;w=-w}while(0);s=y-z|0;c[v>>2]=s;if(!(w+r!=w)){s=v;break}E=s+u|0;c[v>>2]=E;if(E>>>0>999999999){s=v;while(1){f=s+-4|0;c[s>>2]=0;if(f>>>0<q>>>0){q=q+-4|0;c[q>>2]=0}E=(c[f>>2]|0)+1|0;c[f>>2]=E;if(E>>>0>999999999)s=f;else{v=f;break}}}f=(F-q>>2)*9|0;u=c[q>>2]|0;if(u>>>0<10){s=v;break}else s=10;do{s=s*10|0;f=f+1|0}while(u>>>0>=s>>>0);s=v}while(0);E=s+4|0;p=p>>>0>E>>>0?E:p}z=0-f|0;E=p;while(1){if(E>>>0<=q>>>0){A=0;break}p=E+-4|0;if(!(c[p>>2]|0))E=p;else{A=1;break}}do if(B){o=(C&1^1)+o|0;if((o|0)>(f|0)&(f|0)>-5){v=G+-1|0;o=o+-1-f|0}else{v=G+-2|0;o=o+-1|0}p=K&8;if(p|0){x=p;break}do if(A){u=c[E+-4>>2]|0;if(!u){s=9;break}if(!((u>>>0)%10|0)){s=0;p=10}else{s=0;break}do{p=p*10|0;s=s+1|0}while(!((u>>>0)%(p>>>0)|0|0))}else s=9;while(0);p=((E-F>>2)*9|0)+-9|0;if((v|32|0)==102){x=p-s|0;x=(x|0)<0?0:x;o=(o|0)<(x|0)?o:x;x=0;break}else{x=p+f-s|0;x=(x|0)<0?0:x;o=(o|0)<(x|0)?o:x;x=0;break}}else{v=G;x=K&8}while(0);y=o|x;s=(y|0)!=0&1;u=(v|32|0)==102;if(u){z=0;f=(f|0)>0?f:0}else{p=(f|0)<0?z:f;p=tp(p,((p|0)<0)<<31>>31,Y)|0;if((_-p|0)<2)do{p=p+-1|0;a[p>>0]=48}while((_-p|0)<2);a[p+-1>>0]=(f>>31&2)+43;f=p+-2|0;a[f>>0]=v;z=f;f=_-f|0}B=J+1+o+s+f|0;up(e,32,t,B,K);if(!(c[e>>2]&32))rp(I,J,e)|0;up(e,48,t,B,K^65536);do if(u){q=q>>>0>H>>>0?H:q;p=q;do{f=tp(c[p>>2]|0,0,ea)|0;do if((p|0)==(q|0)){if((f|0)!=(ea|0))break;a[ga>>0]=48;f=ga}else{if(f>>>0<=ja>>>0)break;Yq(ja|0,48,f-W|0)|0;do f=f+-1|0;while(f>>>0>ja>>>0)}while(0);if(!(c[e>>2]&32))rp(f,fa-f|0,e)|0;p=p+4|0}while(p>>>0<=H>>>0);do if(y|0){if(c[e>>2]&32|0)break;rp(67034,1,e)|0}while(0);if((o|0)>0&p>>>0<E>>>0)while(1){f=tp(c[p>>2]|0,0,ea)|0;if(f>>>0>ja>>>0){Yq(ja|0,48,f-W|0)|0;do f=f+-1|0;while(f>>>0>ja>>>0)}if(!(c[e>>2]&32))rp(f,(o|0)>9?9:o,e)|0;p=p+4|0;f=o+-9|0;if(!((o|0)>9&p>>>0<E>>>0)){o=f;break}else o=f}up(e,48,o+9|0,9,0)}else{v=A?E:q+4|0;if((o|0)>-1){u=(x|0)==0;s=q;do{f=tp(c[s>>2]|0,0,ea)|0;if((f|0)==(ea|0)){a[ga>>0]=48;f=ga}do if((s|0)==(q|0)){p=f+1|0;if(!(c[e>>2]&32))rp(f,1,e)|0;if(u&(o|0)<1){f=p;break}if(c[e>>2]&32|0){f=p;break}rp(67034,1,e)|0;f=p}else{if(f>>>0<=ja>>>0)break;Yq(ja|0,48,f+X|0)|0;do f=f+-1|0;while(f>>>0>ja>>>0)}while(0);p=fa-f|0;if(!(c[e>>2]&32))rp(f,(o|0)>(p|0)?p:o,e)|0;o=o-p|0;s=s+4|0}while(s>>>0<v>>>0&(o|0)>-1)}up(e,48,o+18|0,18,0);if(c[e>>2]&32|0)break;rp(z,_-z|0,e)|0}while(0);up(e,32,t,B,K^8192);o=(B|0)<(t|0)?t:B}else{f=(G&32|0)!=0;p=J+3|0;up(e,32,t,p,u);o=c[e>>2]|0;if(!(o&32)){rp(I,J,e)|0;o=c[e>>2]|0}if(!(o&32))rp(r!=r|0.0!=0.0?(f?67026:67030):f?67018:67022,3,e)|0;up(e,32,t,p,K^8192);o=(p|0)<(t|0)?t:p}while(0);t=M;f=L;continue a}default:{x=0;v=66982;p=R;o=y;u=K}}while(0);g:do if((N|0)==63){q=ka;p=c[q>>2]|0;q=c[q+4>>2]|0;s=u&32;if((p|0)==0&(q|0)==0){f=R;p=0;q=0}else{f=R;do{f=f+-1|0;a[f>>0]=d[66966+(p&15)>>0]|s;p=gr(p|0,q|0,4)|0;q=D}while(!((p|0)==0&(q|0)==0));q=ka;p=c[q>>2]|0;q=c[q+4>>2]|0}q=(o&8|0)==0|(p|0)==0&(q|0)==0;p=q?0:2;q=q?66982:66982+(u>>4)|0;s=v;N=76}else if((N|0)==75){f=tp(o,f,R)|0;s=y;o=K;N=76}else if((N|0)==81){N=0;K=No(o,0,y)|0;J=(K|0)==0;f=o;x=0;v=66982;p=J?o+y|0:K;o=J?y:K-o|0}else if((N|0)==85){N=0;s=p;o=0;f=0;while(1){q=c[s>>2]|0;if(!q)break;f=vp(P,q)|0;if((f|0)<0|f>>>0>(u-o|0)>>>0)break;o=f+o|0;if(u>>>0>o>>>0)s=s+4|0;else break}if((f|0)<0){n=-1;break a}up(e,32,t,o,K);if(!o){o=0;N=96}else{q=0;while(1){f=c[p>>2]|0;if(!f){N=96;break g}f=vp(P,f)|0;q=f+q|0;if((q|0)>(o|0)){N=96;break g}if(!(c[e>>2]&32))rp(P,f,e)|0;if(q>>>0>=o>>>0){N=96;break}else p=p+4|0}}}while(0);if((N|0)==96){N=0;up(e,32,t,o,K^8192);o=(t|0)>(o|0)?t:o;t=M;f=L;continue}if((N|0)==76){N=0;u=(s|0)>-1?o&-65537:o;o=ka;o=(c[o>>2]|0)!=0|(c[o+4>>2]|0)!=0;if((s|0)!=0|o){o=(o&1^1)+(T-f)|0;x=p;v=q;p=R;o=(s|0)>(o|0)?s:o}else{f=R;x=p;v=q;p=R;o=0}}s=p-f|0;p=(o|0)<(s|0)?s:o;q=p+x|0;o=(t|0)<(q|0)?q:t;up(e,32,o,q,u);if(!(c[e>>2]&32))rp(v,x,e)|0;up(e,48,o,q,u^65536);up(e,48,p,s,0);if(!(c[e>>2]&32))rp(f,s,e)|0;up(e,32,o,q,u^8192);t=M;f=L}h:do if((N|0)==243)if(!e)if(!t)n=0;else{n=1;while(1){o=c[k+(n<<2)>>2]|0;if(!o)break;sp(i+(n<<3)|0,o,g);n=n+1|0;if((n|0)>=10){n=1;break h}}while(1){if(c[k+(n<<2)>>2]|0){n=-1;break h}n=n+1|0;if((n|0)>=10){n=1;break}}}while(0);l=la;return n|0}function pp(a){a=a|0;return 0}function qp(a){a=a|0;return}function rp(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=e+16|0;g=c[f>>2]|0;if(!g)if(!(zp(e)|0)){g=c[f>>2]|0;h=5}else f=0;else h=5;a:do if((h|0)==5){j=e+20|0;i=c[j>>2]|0;f=i;if((g-i|0)>>>0<d>>>0){f=pb[c[e+36>>2]&63](e,b,d)|0;break}b:do if((a[e+75>>0]|0)>-1){i=d;while(1){if(!i){h=0;g=b;break b}g=i+-1|0;if((a[b+g>>0]|0)==10)break;else i=g}f=pb[c[e+36>>2]&63](e,b,i)|0;if(f>>>0<i>>>0)break a;h=i;g=b+i|0;d=d-i|0;f=c[j>>2]|0}else{h=0;g=b}while(0);cr(f|0,g|0,d|0)|0;c[j>>2]=(c[j>>2]|0)+d;f=h+d|0}while(0);return f|0}function sp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0;a:do if(b>>>0<=20)do switch(b|0){case 9:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;c[a>>2]=b;break a}case 10:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;e=a;c[e>>2]=b;c[e+4>>2]=((b|0)<0)<<31>>31;break a}case 11:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;e=a;c[e>>2]=b;c[e+4>>2]=0;break a}case 12:{e=(c[d>>2]|0)+(8-1)&~(8-1);b=e;f=c[b>>2]|0;b=c[b+4>>2]|0;c[d>>2]=e+8;e=a;c[e>>2]=f;c[e+4>>2]=b;break a}case 13:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;e=(e&65535)<<16>>16;f=a;c[f>>2]=e;c[f+4>>2]=((e|0)<0)<<31>>31;break a}case 14:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;f=a;c[f>>2]=e&65535;c[f+4>>2]=0;break a}case 15:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;e=(e&255)<<24>>24;f=a;c[f>>2]=e;c[f+4>>2]=((e|0)<0)<<31>>31;break a}case 16:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;f=a;c[f>>2]=e&255;c[f+4>>2]=0;break a}case 17:{f=(c[d>>2]|0)+(8-1)&~(8-1);g=+h[f>>3];c[d>>2]=f+8;h[a>>3]=g;break a}case 18:{f=(c[d>>2]|0)+(8-1)&~(8-1);g=+h[f>>3];c[d>>2]=f+8;h[a>>3]=g;break a}default:break a}while(0);while(0);return}function tp(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if(c>>>0>0|(c|0)==0&b>>>0>4294967295){while(1){e=nr(b|0,c|0,10,0)|0;d=d+-1|0;a[d>>0]=e|48;e=b;b=ir(b|0,c|0,10,0)|0;if(!(c>>>0>9|(c|0)==9&e>>>0>4294967295))break;else c=D}c=b}else c=b;if(c)while(1){d=d+-1|0;a[d>>0]=(c>>>0)%10|0|48;if(c>>>0<10)break;else c=(c>>>0)/10|0}return d|0}function up(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;i=l;l=l+256|0;if((l|0)>=(m|0))$(256);h=i;do if((d|0)>(e|0)&(f&73728|0)==0){f=d-e|0;Yq(h|0,b|0,(f>>>0>256?256:f)|0)|0;b=c[a>>2]|0;g=(b&32|0)==0;if(f>>>0>255){d=d-e|0;do{if(g){rp(h,256,a)|0;b=c[a>>2]|0}f=f+-256|0;g=(b&32|0)==0}while(f>>>0>255);if(g)f=d&255;else break}else if(!g)break;rp(h,f,a)|0}while(0);l=i;return}function vp(a,b){a=a|0;b=b|0;if(!a)a=0;else a=yp(a,b,0)|0;return a|0}function wp(a,b){a=+a;b=b|0;return +(+xp(a,b))}function xp(a,b){a=+a;b=b|0;var d=0,e=0,f=0;h[j>>3]=a;d=c[j>>2]|0;e=c[j+4>>2]|0;f=gr(d|0,e|0,52)|0;switch(f&2047){case 0:{if(a!=0.0){a=+xp(a*18446744073709551616.0,b);d=(c[b>>2]|0)+-64|0}else d=0;c[b>>2]=d;break}case 2047:break;default:{c[b>>2]=(f&2047)+-1022;c[j>>2]=d;c[j+4>>2]=e&-2146435073|1071644672;a=+h[j>>3]}}return +a}function yp(b,d,e){b=b|0;d=d|0;e=e|0;do if(b){if(d>>>0<128){a[b>>0]=d;b=1;break}if(!(c[c[(Ao()|0)+188>>2]>>2]|0))if((d&-128|0)==57216){a[b>>0]=d;b=1;break}else{c[(zo()|0)>>2]=84;b=-1;break}if(d>>>0<2048){a[b>>0]=d>>>6|192;a[b+1>>0]=d&63|128;b=2;break}if(d>>>0<55296|(d&-8192|0)==57344){a[b>>0]=d>>>12|224;a[b+1>>0]=d>>>6&63|128;a[b+2>>0]=d&63|128;b=3;break}if((d+-65536|0)>>>0<1048576){a[b>>0]=d>>>18|240;a[b+1>>0]=d>>>12&63|128;a[b+2>>0]=d>>>6&63|128;a[b+3>>0]=d&63|128;b=4;break}else{c[(zo()|0)>>2]=84;b=-1;break}}else b=1;while(0);return b|0}function zp(b){b=b|0;var d=0,e=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;d=c[b>>2]|0;if(!(d&8)){c[b+8>>2]=0;c[b+4>>2]=0;e=c[b+44>>2]|0;c[b+28>>2]=e;c[b+20>>2]=e;c[b+16>>2]=e+(c[b+48>>2]|0);b=0}else{c[b>>2]=d|32;b=-1}return b|0}function Ap(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=a+20|0;f=c[e>>2]|0;a=(c[a+16>>2]|0)-f|0;a=a>>>0>d>>>0?d:a;cr(f|0,b|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+a;return d|0}function Bp(a){a=a|0;var b=0;b=(cp(a)|0)==0;return (b?a:a&95)|0}function Cp(a){a=a|0;return (_o(a)|0)!=(a|0)|0}function Dp(a){a=a|0;if(a>>>0>=255)if((a+-57344|0)>>>0<8185|(a>>>0<8232|(a+-8234|0)>>>0<47062))a=1;else return ((a+-65532|0)>>>0>1048579|(a&65534|0)==65534)&1^1|0;else a=(a+1&127)>>>0>32&1;return a|0}function Ep(a,b){a=a|0;b=b|0;do switch(b|0){case 1:{a=Fp(a)|0;break}case 2:{a=bp(a)|0;break}case 3:{a=Wo(a)|0;break}case 4:{a=Gp(a)|0;break}case 5:{a=Hp(a)|0;break}case 6:{a=Ip(a)|0;break}case 7:{a=Cp(a)|0;break}case 8:{a=Dp(a)|0;break}case 9:{a=Jp(a)|0;break}case 10:{a=hp(a)|0;break}case 11:{a=Kp(a)|0;break}case 12:{a=Lp(a)|0;break}default:a=0}while(0);return a|0}function Fp(a){a=a|0;if(!(Hp(a)|0))a=(bp(a)|0)!=0;else a=1;return a&1|0}function Gp(a){a=a|0;if((a&-2|0)==8232|(a>>>0<32|(a+-127|0)>>>0<33))a=1;else a=(a+-65529|0)>>>0<3;return a&1|0}function Hp(a){a=a|0;return (a+-48|0)>>>0<10|0}function Ip(a){a=a|0;if(!(hp(a)|0))a=(Dp(a)|0)!=0;else a=0;return a&1|0}function Jp(a){a=a|0;if(a>>>0<131072)a=(d[67036+((d[67036+(a>>>8)>>0]|0)<<5|a>>>3&31)>>0]|0)>>>(a&7)&1;else a=0;return a|0}function Kp(a){a=a|0;return ($o(a)|0)!=(a|0)|0}function Lp(a){a=a|0;return ((a+-48|0)>>>0<10|((a|32)+-97|0)>>>0<6)&1|0}function Mp(a,b){a=a|0;b=b|0;Np(a,b)|0;return a|0}function Np(b,d){b=b|0;d=d|0;var e=0,f=0;e=d;a:do if(!((e^b)&3)){if(e&3)do{e=a[d>>0]|0;a[b>>0]=e;if(!(e<<24>>24))break a;d=d+1|0;b=b+1|0}while((d&3|0)!=0);e=c[d>>2]|0;if(!((e&-2139062144^-2139062144)&e+-16843009)){f=b;while(1){d=d+4|0;b=f+4|0;c[f>>2]=e;e=c[d>>2]|0;if((e&-2139062144^-2139062144)&e+-16843009|0)break;else f=b}}f=8}else f=8;while(0);if((f|0)==8){f=a[d>>0]|0;a[b>>0]=f;if(f<<24>>24)do{d=d+1|0;b=b+1|0;f=a[d>>0]|0;a[b>>0]=f}while(f<<24>>24!=0)}return b|0}function Op(b,c){b=b|0;c=c|0;var e=0,f=0,g=0;e=a[b>>0]|0;a:do if(!(e<<24>>24))e=0;else{g=e&255;while(1){f=a[c>>0]|0;if(!(f<<24>>24))break a;if(e<<24>>24!=f<<24>>24?(g=Yo(g)|0,(g|0)!=(Yo(f&255)|0)):0)break a;b=b+1|0;c=c+1|0;e=a[b>>0]|0;if(!(e<<24>>24)){e=0;break}else g=e&255}}while(0);g=Yo(e&255)|0;return g-(Yo(d[c>>0]|0)|0)|0}function Pp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e;c[f>>2]=d;d=Qp(a,b,f)|0;l=e;return d|0}function Qp(a,b,c){a=a|0;b=b|0;c=c|0;return mp(a,2147483647,b,c)|0}function Rp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e;c[f>>2]=d;d=np(a,b,f)|0;l=e;return d|0}function Sp(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;if((c[f+76>>2]|0)>-1)m=pp(f)|0;else m=0;g=e+-1|0;if((e|0)<2){n=f+74|0;l=a[n>>0]|0;a[n>>0]=l+255|l;if(m|0)qp(f);if(!g)a[b>>0]=0;else b=0}else{a:do if(g){k=f+4|0;l=f+8|0;e=b;while(1){h=c[k>>2]|0;o=h;p=(c[l>>2]|0)-o|0;i=No(h,10,p)|0;j=(i|0)==0;i=j?p:1-o+i|0;i=i>>>0<g>>>0?i:g;cr(e|0,h|0,i|0)|0;h=(c[k>>2]|0)+i|0;c[k>>2]=h;e=e+i|0;i=g-i|0;if(!(j&(i|0)!=0)){n=17;break a}if(h>>>0>=(c[l>>2]|0)>>>0){g=So(f)|0;if((g|0)<0)break;else j=g}else{c[k>>2]=h+1;j=d[h>>0]|0}g=i+-1|0;h=e+1|0;a[e>>0]=j;if(!((g|0)!=0&(j&255|0)!=10)){e=h;n=17;break a}else e=h}if((e|0)!=(b|0)?(c[f>>2]&16|0)!=0:0)n=17;else b=0}else{e=b;n=17}while(0);if((n|0)==17)if(!b)b=0;else a[e>>0]=0;if(m)qp(f)}return b|0}function Tp(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;a:do if(!d)b=0;else{while(1){e=a[b>>0]|0;f=a[c>>0]|0;if(e<<24>>24!=f<<24>>24)break;d=d+-1|0;if(!d){b=0;break a}else{b=b+1|0;c=c+1|0}}b=(e&255)-(f&255)|0}while(0);return b|0}function Up(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;if((l|0)>=(m|0))$(16);d=b;c[d>>2]=Co(a)|0;a=cb(6,d|0)|0;a=yo((a|0)==-4?0:a)|0;l=b;return a|0}function Vp(a,b,c){a=a|0;b=b|0;c=c|0;Wp(a,b,c)|0;return a|0}function Wp(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=d;do if(!((g^b)&3)){f=(e|0)!=0;a:do if(f&(g&3|0)!=0)while(1){g=a[d>>0]|0;a[b>>0]=g;if(!(g<<24>>24))break a;e=e+-1|0;d=d+1|0;b=b+1|0;f=(e|0)!=0;if(!(f&(d&3|0)!=0)){h=5;break}}else h=5;while(0);if((h|0)==5)if(!f){e=0;break}if(a[d>>0]|0){b:do if(e>>>0>3){f=d;while(1){d=c[f>>2]|0;if((d&-2139062144^-2139062144)&d+-16843009|0){d=f;break b}c[b>>2]=d;e=e+-4|0;d=f+4|0;b=b+4|0;if(e>>>0>3)f=d;else break}}while(0);h=11}}else h=11;while(0);c:do if((h|0)==11)if(!e)e=0;else while(1){h=a[d>>0]|0;a[b>>0]=h;if(!(h<<24>>24))break c;e=e+-1|0;b=b+1|0;if(!e){e=0;break}else d=d+1|0}while(0);Yq(b|0,0,e|0)|0;return b|0}function Xp(a){a=a|0;return er(a|0)|0}function Yp(a){a=a|0;return er(a|0)|0}function Zp(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=l;l=l+16|0;if((l|0)>=(m|0))$(16);g=j;a:do if(!e)b=0;else{do if(f|0){i=(b|0)==0?g:b;b=a[e>>0]|0;if(b<<24>>24>-1){c[i>>2]=b&255;b=b<<24>>24!=0&1;break a}h=(c[c[(Ao()|0)+188>>2]>>2]|0)==0;b=a[e>>0]|0;if(h){c[i>>2]=b<<24>>24&57343;b=1;break a}b=(b&255)+-194|0;if(b>>>0<=50){g=e+1|0;h=c[15868+(b<<2)>>2]|0;if(f>>>0<4?h&-2147483648>>>((f*6|0)+-6|0)|0:0)break;b=d[g>>0]|0;f=b>>>3;if((f+-16|f+(h>>26))>>>0<=7){b=b+-128|h<<6;if((b|0)>=0){c[i>>2]=b;b=2;break a}g=(d[e+2>>0]|0)+-128|0;if(g>>>0<=63){g=g|b<<6;if((g|0)>=0){c[i>>2]=g;b=3;break a}b=(d[e+3>>0]|0)+-128|0;if(b>>>0<=63){c[i>>2]=b|g<<6;b=4;break a}}}}}while(0);c[(zo()|0)>>2]=84;b=-1}while(0);l=j;return b|0}function _p(b){b=b|0;var c=0,d=0,e=0;d=(Ko(b,43)|0)==0;c=a[b>>0]|0;d=d?c<<24>>24!=114&1:2;e=(Ko(b,120)|0)==0;d=e?d:d|128;b=(Ko(b,101)|0)==0;b=b?d:d|524288;b=c<<24>>24==114?b:b|64;b=c<<24>>24==119?b|512:b;return (c<<24>>24==97?b|1024:b)|0}function $p(a){a=a|0;var b=0,d=0;do if(a){if((c[a+76>>2]|0)<=-1){b=hq(a)|0;break}d=(pp(a)|0)==0;b=hq(a)|0;if(!d)qp(a)}else{if(!(c[3934]|0))b=0;else b=$p(c[3934]|0)|0;a=c[(dq()|0)>>2]|0;if(a)do{if((c[a+76>>2]|0)>-1)d=pp(a)|0;else d=0;if((c[a+20>>2]|0)>>>0>(c[a+28>>2]|0)>>>0)b=hq(a)|0|b;if(d|0)qp(a);a=c[a+56>>2]|0}while((a|0)!=0);eq()}while(0);return b|0}function aq(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=l;l=l+48|0;if((l|0)>=(m|0))$(48);h=i+32|0;g=i+16|0;e=i;if(No(70204,a[d>>0]|0,4)|0){f=_p(d)|0;c[e>>2]=b;c[e+4>>2]=f|32768;c[e+8>>2]=438;e=yo(db(5,e|0)|0)|0;if((e|0)>=0){if(f&524288|0){c[g>>2]=e;c[g+4>>2]=2;c[g+8>>2]=1;wa(221,g|0)|0}b=fq(e,d)|0;if(!b){c[h>>2]=e;cb(6,h|0)|0;b=0}}else b=0}else{c[(zo()|0)>>2]=22;b=0}l=i;return b|0}function bq(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;if((c[a+76>>2]|0)>-1)f=pp(a)|0;else f=0;cq(a);g=(c[a>>2]&1|0)!=0;if(!g){e=dq()|0;d=c[a+52>>2]|0;b=a+56|0;if(d|0)c[d+56>>2]=c[b>>2];b=c[b>>2]|0;if(b|0)c[b+52>>2]=d;if((c[e>>2]|0)==(a|0))c[e>>2]=b;eq()}b=$p(a)|0;b=tb[c[a+12>>2]&15](a)|0|b;d=c[a+92>>2]|0;if(d|0)Pq(d);if(g){if(f|0)qp(a)}else Pq(a);return b|0}function cq(a){a=a|0;var b=0,d=0;do if(c[a+68>>2]|0){b=c[a+116>>2]|0;d=b;a=a+112|0;if(b|0)c[b+112>>2]=c[a>>2];a=c[a>>2]|0;if(!a){c[(Ao()|0)+232>>2]=d;break}else{c[a+116>>2]=d;break}}while(0);return}function dq(){bb(70840);return 70848}function eq(){_a(70840);return}function fq(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0;p=l;l=l+64|0;if((l|0)>=(m|0))$(64);o=p+40|0;j=p+24|0;i=p+16|0;f=p;k=p+56|0;e=a[d>>0]|0;if(No(70204,e<<24>>24,4)|0){n=Oq(1156)|0;if(!n)e=0;else{g=n;h=g+124|0;do{c[g>>2]=0;g=g+4|0}while((g|0)<(h|0));if(!(Ko(d,43)|0))c[n>>2]=e<<24>>24==114?8:4;if(Ko(d,101)|0){c[f>>2]=b;c[f+4>>2]=2;c[f+8>>2]=1;wa(221,f|0)|0;e=a[d>>0]|0}if(e<<24>>24==97){c[i>>2]=b;c[i+4>>2]=3;e=wa(221,i|0)|0;if(!(e&1024)){c[j>>2]=b;c[j+4>>2]=4;c[j+8>>2]=e|1024;wa(221,j|0)|0}d=c[n>>2]|128;c[n>>2]=d}else d=c[n>>2]|0;c[n+60>>2]=b;c[n+44>>2]=n+132;c[n+48>>2]=1024;e=n+75|0;a[e>>0]=-1;if((d&8|0)==0?(c[o>>2]=b,c[o+4>>2]=21523,c[o+8>>2]=k,(Za(54,o|0)|0)==0):0)a[e>>0]=10;c[n+32>>2]=35;c[n+36>>2]=25;c[n+40>>2]=24;c[n+12>>2]=10;if(!(c[17695]|0))c[n+76>>2]=-1;e=gq(n)|0}}else{c[(zo()|0)>>2]=22;e=0}l=p;return e|0}function gq(a){a=a|0;var b=0,d=0;b=dq()|0;c[a+56>>2]=c[b>>2];d=c[b>>2]|0;if(d|0)c[d+52>>2]=a;c[b>>2]=a;eq();return a|0}function hq(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=a+20|0;h=a+28|0;if((c[b>>2]|0)>>>0>(c[h>>2]|0)>>>0?(pb[c[a+36>>2]&63](a,0,0)|0,(c[b>>2]|0)==0):0)a=-1;else{d=a+4|0;e=c[d>>2]|0;f=a+8|0;g=c[f>>2]|0;if(e>>>0<g>>>0)pb[c[a+40>>2]&63](a,e-g|0,1)|0;c[a+16>>2]=0;c[h>>2]=0;c[b>>2]=0;c[f>>2]=0;c[d>>2]=0;a=0}return a|0}function iq(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=S(d,b)|0;d=(b|0)==0?0:d;if((c[e+76>>2]|0)>-1){g=(pp(e)|0)==0;a=rp(a,f,e)|0;if(!g)qp(e)}else a=rp(a,f,e)|0;if((a|0)!=(f|0))d=(a>>>0)/(b>>>0)|0;return d|0}function jq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=l;l=l+192|0;if((l|0)>=(m|0))$(192);i=t+152|0;h=t+136|0;s=t+120|0;r=t+104|0;q=t+96|0;n=t+80|0;k=t+64|0;f=t+48|0;o=t+32|0;g=t+16|0;e=t;u=t+176|0;j=t+168|0;c[u>>2]=d;d=(c[u>>2]|0)+(4-1)&~(4-1);p=c[d>>2]|0;c[u>>2]=d+4;p=(b|0)==4?p|32768:p;a:do switch(b|0){case 14:{c[e>>2]=a;c[e+4>>2]=14;c[e+8>>2]=p;d=yo(wa(221,e|0)|0)|0;break}case 9:{c[g>>2]=a;c[g+4>>2]=16;c[g+8>>2]=j;d=wa(221,g|0)|0;switch(d|0){case -22:{c[o>>2]=a;c[o+4>>2]=9;c[o+8>>2]=p;d=wa(221,o|0)|0;break}case 0:{d=c[j+4>>2]|0;d=(c[j>>2]|0)==2?0-d|0:d;break}default:d=yo(d)|0}break}case 1030:{c[f>>2]=a;c[f+4>>2]=1030;c[f+8>>2]=p;d=wa(221,f|0)|0;if((d|0)!=-22){if((d|0)>-1){c[k>>2]=d;c[k+4>>2]=2;c[k+8>>2]=1;wa(221,k|0)|0}d=yo(d)|0;break a}c[n>>2]=a;c[n+4>>2]=1030;c[n+8>>2]=0;d=wa(221,n|0)|0;if((d|0)==-22){c[r>>2]=a;c[r+4>>2]=0;c[r+8>>2]=p;d=wa(221,r|0)|0;if((d|0)>-1){c[s>>2]=d;c[s+4>>2]=2;c[s+8>>2]=1;wa(221,s|0)|0}d=yo(d)|0;break a}else{if((d|0)>-1){c[q>>2]=d;cb(6,q|0)|0}d=yo(-22)|0;break a}}case 15:case 16:case 12:case 13:{c[h>>2]=a;c[h+4>>2]=b;c[h+8>>2]=p;d=yo(wa(221,h|0)|0)|0;break}default:{c[i>>2]=a;c[i+4>>2]=b;c[i+8>>2]=p;d=yo(wa(221,i|0)|0)|0}}while(0);l=t;return d|0}function kq(a){a=a|0;var b=0;if((c[a+76>>2]|0)>-1){b=(pp(a)|0)==0;a=(c[a>>2]|0)>>>4&1}else a=(c[a>>2]|0)>>>4&1;return a|0}function lq(b,c){b=b|0;c=c|0;var d=0,e=0,f=0;d=b;e=70208;f=d+15|0;do{a[d>>0]=a[e>>0]|0;d=d+1|0;e=e+1|0}while((d|0)<(f|0));if(!c){a[b+14>>0]=48;a[b+15>>0]=0}else{e=c;d=14;while(1){d=d+1|0;if(e>>>0<10)break;else e=(e>>>0)/10|0}a[b+d>>0]=0;while(1){d=d+-1|0;a[b+d>>0]=(c>>>0)%10|0|48;if(c>>>0<10)break;else c=(c>>>0)/10|0}}return}function mq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=l;l=l+48|0;if((l|0)>=(m|0))$(48);f=g+40|0;e=g+8|0;d=g;c[d>>2]=a;c[d+4>>2]=b;d=Ka(197,d|0)|0;if((d|0)==-9?(c[e>>2]=a,c[e+4>>2]=1,(wa(221,e|0)|0)>=0):0){lq(e,a);c[f>>2]=e;c[f+4>>2]=b;b=yo(La(195,f|0)|0)|0}else b=yo(d)|0;l=g;return b|0}function nq(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=l;l=l+32|0;if((l|0)>=(m|0))$(32);h=g;c[h>>2]=a;c[h+4>>2]=b;c[h+8>>2]=d;c[h+12>>2]=e;c[h+16>>2]=f;f=yo(lb(142,h|0)|0)|0;l=g;return f|0}function oq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e;c[f>>2]=a;c[f+4>>2]=b;c[f+8>>2]=d;d=yo(eb(4,f|0)|0)|0;l=e;return d|0}function pq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+16|0;if((l|0)>=(m|0))$(16);f=e;c[f>>2]=a;c[f+4>>2]=b;c[f+8>>2]=d;d=yo(ab(3,f|0)|0)|0;l=e;return d|0}function qq(){var a=0,b=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=Ba(20,a|0)|0;l=a;return b|0}function rq(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=l;l=l+32|0;if((l|0)>=(m|0))$(32);g=f;c[g>>2]=b;c[g+4>>2]=d;c[g+8>>2]=e;c[g+12>>2]=a;a=g+16|0;c[a>>2]=-1;tq(6,g);a=c[a>>2]|0;if(a)if((a|0)>0){c[(zo()|0)>>2]=a;a=-1}else a=-1;else a=0;l=f;return a|0}function sq(a){a=a|0;a=a+16|0;if((c[a>>2]|0)<=0)c[a>>2]=1;return}function tq(a,b){a=a|0;b=b|0;rb[a&7](b);return}function uq(){var a=0,b=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=Na(199,a|0)|0;l=a;return b|0}function vq(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d;c[e>>2]=a;c[e+4>>2]=b;b=yo(Ya(33,e|0)|0)|0;l=d;return b|0}function wq(){var a=0,b=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=hb(201,a|0)|0;l=a;return b|0}function xq(a){a=a|0;return rq(213,a,0,0)|0}function yq(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d;c[e>>2]=a;c[e+4>>2]=0;c[e+8>>2]=b;c[e+12>>2]=((b|0)<0)<<31>>31;b=yo(Ma(194,e|0)|0)|0;l=d;return b|0}function zq(){var a=0,b=0;a=l;l=l+16|0;if((l|0)>=(m|0))$(16);b=ya(64,a|0)|0;l=a;return b|0}function Aq(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;j=l;l=l+32|0;if((l|0)>=(m|0))$(32);i=j;h=((g|0)<0)<<31>>31;do if((g&4095|0)==0&(h&-4096|0)==0){if(b>>>0>2147483646){c[(zo()|0)>>2]=12;a=-1;break}if(e&16|0)Vo();h=gr(g|0,h|0,12)|0;c[i>>2]=a;c[i+4>>2]=b;c[i+8>>2]=d;c[i+12>>2]=e;c[i+16>>2]=f;c[i+20>>2]=h;a=yo(Ja(192,i|0)|0)|0}else{c[(zo()|0)>>2]=22;a=-1}while(0);l=j;return a|0}function Bq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=l;l=l+48|0;if((l|0)>=(m|0))$(48);g=h+16|0;f=h;e=h+32|0;if(!(b&4194368))e=0;else{c[e>>2]=d;i=(c[e>>2]|0)+(4-1)&~(4-1);d=c[i>>2]|0;c[e>>2]=i+4;e=d}c[f>>2]=a;c[f+4>>2]=b|32768;c[f+8>>2]=e;e=db(5,f|0)|0;if(!((b&524288|0)==0|(e|0)<0)){c[g>>2]=e;c[g+4>>2]=2;c[g+8>>2]=1;wa(221,g|0)|0}i=yo(e)|0;l=h;return i|0}function Cq(a){a=a|0;bb(70852);Dq(a);_a(70852);return}function Dq(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;f=c[4071]|0;if(!f)c[c[4072]>>2]=a;else{c[4073]=(f|0)==31|(f|0)==7?3:1;c[17715]=0;if((f|0)>0){b=c[4072]|0;e=0;d=0;do{g=kr(a|0,d|0,1284865837,1481765933)|0;a=_q(g|0,D|0,1,0)|0;d=D;c[b+(e<<2)>>2]=d;e=e+1|0}while((e|0)<(f|0))}else b=c[4072]|0;c[b>>2]=c[b>>2]|1}return}function Eq(){var a=0,b=0,d=0,e=0,f=0;bb(70852);a=c[4071]|0;if(!a){b=c[4072]|0;a=(S(c[b>>2]|0,1103515245)|0)+12345&2147483647;c[b>>2]=a}else{d=c[17715]|0;b=c[4072]|0;e=c[4073]|0;f=b+(e<<2)|0;b=(c[f>>2]|0)+(c[b+(d<<2)>>2]|0)|0;c[f>>2]=b;e=e+1|0;c[4073]=(e|0)==(a|0)?0:e;d=d+1|0;c[17715]=(d|0)==(a|0)?0:d;a=b>>>1}_a(70852);return a|0}function Fq(b){b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;while(1){e=a[b>>0]|0;c=e<<24>>24;f=b+1|0;if(!(Lo(c)|0))break;else b=f}switch(c|0){case 45:{b=1;g=5;break}case 43:{b=0;g=5;break}default:{h=0;d=b;b=e}}if((g|0)==5){h=b;d=f;b=a[f>>0]|0}c=(b<<24>>24)+-48|0;if(c>>>0<10){b=0;do{d=d+1|0;b=(b*10|0)-c|0;c=(a[d>>0]|0)+-48|0}while(c>>>0<10)}else b=0;return (h|0?b:0-b|0)|0}function Gq(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;if((l|0)>=(m|0))$(16);e=d;c[e>>2]=a;c[e+4>>2]=b;b=yo(Wa(77,e|0)|0)|0;l=d;return b|0}function Hq(a,b){a=a|0;b=b|0;if(!a)b=Qq(1,24)|0;else{c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0}return b|0}function Iq(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;if(b|0)do{Pq(c[b>>2]|0);d=b;b=c[b+4>>2]|0;Pq(d)}while((b|0)!=0);Pq(a);return}function Jq(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;h=a+16|0;a:do if(!(c[h>>2]|0)){k=a+12|0;g=c[k>>2]|0;do if(g>>>0<f>>>0){if(b|0)if(!d){c[h>>2]=1;b=0;break a}else{i=a+8|0;c[i>>2]=d;c[k>>2]=1024;h=d;b=d;g=1024;break}g=f<<3;g=g>>>0>1024?g:1024;i=Oq(8)|0;if(!i){c[h>>2]=1;b=0;break a}b=Oq(g)|0;c[i>>2]=b;j=b;if(!b){Pq(i);c[h>>2]=1;b=0;break a}c[i+4>>2]=0;d=a+4|0;h=c[d>>2]|0;if(h|0)c[h+4>>2]=i;if(!(c[a>>2]|0))c[a>>2]=i;c[d>>2]=i;i=a+8|0;c[i>>2]=j;c[k>>2]=g;h=j}else{i=a+8|0;b=c[i>>2]|0;h=b}while(0);d=h+f&3;d=((d|0)==0?0:4-d|0)+f|0;c[i>>2]=b+d;c[k>>2]=g-d;if(e)Yq(b|0,0,d|0)|0}else b=0;while(0);return b|0}function Kq(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0;Z=l;l=l+16|0;if((l|0)>=(m|0))$(16);U=Z;X=c[a+4>>2]|0;Y=X+56|0;W=(c[Y>>2]&8|0)==0?d:0;R=X+40|0;a=c[R>>2]|0;if((a|0)>0&(W|0)!=0){a=Oq(a<<2)|0;if(!a)a=12;else{V=a;T=3}}else{V=0;T=3}if((T|0)==3){if(!(c[X+60>>2]|0)){c[U>>2]=0;i=f&1;Q=f&2;h=c[Y>>2]&4;if(!V)O=0;else O=c[R>>2]|0;P=O<<2;g=c[X+52>>2]|0;f=g<<3;d=f+8|0;a=P+12+f+(d+(S(P,g)|0)<<1)|0;R=Oq(a)|0;if(!R){a=12;d=0}else{Yq(R|0,0,a|0)|0;a=R+P|0;j=a&3;j=a+((j|0)==0?0:4-j|0)|0;a=j+d|0;k=a&3;k=a+((k|0)==0?0:4-k|0)|0;a=k+d|0;N=a&3;N=a+((N|0)==0?0:4-N|0)|0;a=N+f|0;d=a&3;if((g|0)>0){a=a+((d|0)==0?0:4-d|0)|0;d=0;while(1){c[k+(d<<3)+4>>2]=a;a=a+P|0;c[j+(d<<3)+4>>2]=a;d=d+1|0;if((d|0)==(g|0)){a=0;break}else a=a+P|0}do{c[N+(a<<3)>>2]=-1;a=a+1|0}while((a|0)!=(g|0))}a=Zp(U,b,4)|0;if((a|0)<1)if((a|0)<0){a=1;d=0}else{a=1;T=201}else T=201;a:do if((T|0)==201){M=X+8|0;F=(h|0)!=0;G=(O|0)>0;H=X+12|0;I=X+44|0;J=X+32|0;K=X+36|0;L=(O|0)==0;E=(i|0)==0;D=(O|0)<1;g=0;w=b+a|0;v=0;h=0;d=-1;f=j;B=R;z=j;x=k;while(1){if((d|0)<0){i=c[M>>2]|0;j=i+8|0;b:do if(c[j>>2]|0){q=(v|0)!=0;r=(g|0)==95;s=(v|0)==0;u=F&(g|0)==10;t=E&(v|0)<1;while(1){c:while(1){p=i+12|0;if((c[N+(c[p>>2]<<3)>>2]|0)>=(v|0))break;o=i+20|0;k=c[o>>2]|0;if(!k){T=236;break}d:do if(u|(t|(k&1|0)==0)){if(k&2|0?(b=c[U>>2]|0,!((b|Q|0)==0|F&(b|0)==10)):0)break;do if(k&16|0){if(r)break d;if(Fp(g)|0)break d;k=c[U>>2]|0;if((k|0)==95)break;if(!(Fp(k)|0))break d}while(0);k=c[o>>2]|0;if(k&32){if(r){k=c[U>>2]|0;if((k|0)==95)break}else{b=(Fp(g)|0)==0;k=c[U>>2]|0;if(b|(k|0)==95)break}if(Fp(k)|0)break;k=c[o>>2]|0}n=c[U>>2]|0;do if((n|0)!=0&(q&(k&64|0)!=0)){if(r)k=1;else{k=(Fp(g)|0)!=0;n=c[U>>2]|0}if((n|0)==95)if(k)break d;else break;else if(k^(Fp(n)|0)!=0)break;else break d}while(0);if(!(c[o>>2]&128)){T=236;break c}k=c[U>>2]|0;if(s|(k|0)==0)break;if(r)n=1;else{n=(Fp(g)|0)!=0;k=c[U>>2]|0}if((k|0)==95)if(n){T=236;break c}else break;else if(n^(Fp(k)|0)!=0)break;else{T=236;break c}}while(0);j=i+40|0;if(!(c[j>>2]|0))break b;else i=i+32|0}if((T|0)==236){T=0;c[f>>2]=c[j>>2];if(G)Yq(c[f+4>>2]|0,-1,P|0)|0;j=c[i+16>>2]|0;do if(j|0){k=c[j>>2]|0;if((k|0)<=-1)break;n=f+4|0;do{if((k|0)<(O|0))c[(c[n>>2]|0)+(k<<2)>>2]=v;j=j+4|0;k=c[j>>2]|0}while((k|0)>-1)}while(0);j=(c[f>>2]|0)!=(c[H>>2]|0);if(D|j){h=j?h:1;d=j?d:v;j=f+4|0}else{j=f+4|0;h=c[j>>2]|0;d=0;do{c[V+(d<<2)>>2]=c[h+(d<<2)>>2];d=d+1|0}while((d|0)!=(O|0));h=1;d=v}b=c[p>>2]|0;c[N+(b<<3)>>2]=v;c[N+(b<<3)+4>>2]=j;f=f+8|0}j=i+40|0;if(!(c[j>>2]|0))break;else i=i+32|0}}while(0);c[f>>2]=0;f=c[U>>2]|0;if(!f)break;else g=f}else{if(L)break;g=c[U>>2]|0;if(!((f|0)!=(z|0)&(g|0)!=0))break}C=v+a|0;a=Zp(U,w,4)|0;if((a|0)<1)if((a|0)<0){a=1;d=0;break a}else a=1;A=w+a|0;if((h|0)!=0&(c[I>>2]|0)!=0){if(!(c[z>>2]|0))f=x;else{p=c[K>>2]|0;q=c[p>>2]|0;r=(q|0)>-1;o=z;f=x;do{n=o+4|0;e:do if(r){i=0;k=q;do{j=c[p+((i|1)<<2)>>2]|0;if((k|0)>=(O|0))break e;h=c[n>>2]|0;if((c[h+(j<<2)>>2]|0)==(c[V+(j<<2)>>2]|0)?(c[h+(k<<2)>>2]|0)<(c[V+(k<<2)>>2]|0):0)break e;i=i+2|0;k=c[p+(i<<2)>>2]|0}while((k|0)>-1);i=n;T=265}else{i=n;h=c[n>>2]|0;T=265}while(0);if((T|0)==265){T=0;c[f>>2]=c[o>>2];y=f+4|0;b=c[y>>2]|0;c[y>>2]=h;c[i>>2]=b;f=f+8|0}o=o+8|0}while((c[o>>2]|0)!=0)}c[f>>2]=0;y=z;h=0}else{y=x;x=z}i=c[x>>2]|0;if(!i){i=B;f=y}else{s=(C|0)!=0;t=(g|0)==95;u=(C|0)==0;w=F&(g|0)==10;v=E&(C|0)<1;r=x;j=B;f=y;while(1){k=i+8|0;if(c[k>>2]|0){q=r+4|0;p=j;o=k;while(1){f:do if((c[i>>2]|0)>>>0>g>>>0)j=p;else{if((c[i+4>>2]|0)>>>0<g>>>0){j=p;break}n=i+20|0;j=c[n>>2]|0;do if(j|0){if(!(w|(v|(j&1|0)==0))){j=p;break f}if(j&2|0?(b=c[U>>2]|0,!((b|Q|0)==0|F&(b|0)==10)):0){j=p;break f}do if(j&16|0){if(t){j=p;break f}if(Fp(g)|0){j=p;break f}j=c[U>>2]|0;if((j|0)==95)break;if(!(Fp(j)|0)){j=p;break f}}while(0);j=c[n>>2]|0;if(j&32){if(t){j=c[U>>2]|0;if((j|0)==95){j=p;break f}}else{b=(Fp(g)|0)==0;j=c[U>>2]|0;if(b|(j|0)==95){j=p;break f}}if(Fp(j)|0){j=p;break f}j=c[n>>2]|0}k=c[U>>2]|0;do if((k|0)!=0&(s&(j&64|0)!=0)){if(t)j=1;else{j=(Fp(g)|0)!=0;k=c[U>>2]|0}if((k|0)==95)if(j){j=p;break f}else break;else if(j^(Fp(k)|0)!=0)break;else{j=p;break f}}while(0);do if(c[n>>2]&128|0){j=c[U>>2]|0;if(u|(j|0)==0){j=p;break f}if(t)k=1;else{k=(Fp(g)|0)!=0;j=c[U>>2]|0}if((j|0)==95)if(k)break;else{j=p;break f}else if(k^(Fp(j)|0)!=0){j=p;break f}else break}while(0);j=c[n>>2]|0;do if(j&4){if(c[Y>>2]&2|0)break;if(!(Ep(g,c[i+24>>2]|0)|0)){j=p;break f}j=c[n>>2]|0}while(0);do if(j&4|0){if(!(c[Y>>2]&2))break;b=$o(g)|0;j=i+24|0;if(Ep(b,c[j>>2]|0)|0)break;b=_o(g)|0;if(!(Ep(b,c[j>>2]|0)|0)){j=p;break f}}while(0);if(!(c[n>>2]&8))break;if(Nq(c[i+28>>2]|0,g,c[Y>>2]&2)|0){j=p;break f}}while(0);if(G){k=c[q>>2]|0;j=0;do{c[p+(j<<2)>>2]=c[k+(j<<2)>>2];j=j+1|0}while((j|0)!=(O|0))}j=c[i+16>>2]|0;do if(j|0){k=c[j>>2]|0;if((k|0)<=-1)break;do{if((k|0)<(O|0))c[p+(k<<2)>>2]=C;j=j+4|0;k=c[j>>2]|0}while((k|0)>-1)}while(0);j=c[i+12>>2]|0;k=N+(j<<3)|0;if((c[k>>2]|0)>=(C|0)){j=c[N+(j<<3)+4>>2]|0;k=c[j>>2]|0;if(!(Lq(O,c[J>>2]|0,p,k)|0)){j=p;break}c[j>>2]=p;if((c[o>>2]|0)!=(c[H>>2]|0)){j=k;break}if(G)d=0;else{h=1;j=k;d=C;break}while(1){c[V+(d<<2)>>2]=c[p+(d<<2)>>2];d=d+1|0;if((d|0)==(O|0)){h=1;j=k;d=C;break f}}}b=c[o>>2]|0;c[f>>2]=b;B=f+4|0;n=c[B>>2]|0;c[B>>2]=p;c[k>>2]=C;c[N+(j<<3)+4>>2]=B;do if((b|0)==(c[H>>2]|0)){if((d|0)==-1)if(G)d=0;else{d=C;h=1;break}else{if(!G)break;if((c[p>>2]|0)>(c[V>>2]|0))break;else d=0}do{c[V+(d<<2)>>2]=c[p+(d<<2)>>2];d=d+1|0}while((d|0)<(O|0));d=C;h=1}while(0);j=n;f=f+8|0}while(0);o=i+40|0;if(!(c[o>>2]|0))break;else{i=i+32|0;p=j}}}r=r+8|0;i=c[r>>2]|0;if(!i){i=j;break}}}c[f>>2]=0;w=A;v=C;B=i;z=y}a=d>>>31}while(0);Pq(R)}}else{c[U>>2]=0;i=f&1;P=f&2;d=c[Y>>2]&4;Q=Hq(0,0)|0;g:do if(Q){j=Jq(Q,0,0,0,32)|0;if(!j){Iq(Q);d=0;a=12;break}c[j+24>>2]=0;c[j+28>>2]=0;k=c[R>>2]|0;if(k){f=Oq(k<<2)|0;if(!f){d=0;h=0;g=0;a=12}else T=9}else{f=0;T=9}h:do if((T|0)==9){a=c[X+28>>2]|0;if(a){h=Oq(a<<3)|0;if(!h){d=0;g=0;a=12;break}}else h=0;O=X+52|0;a=c[O>>2]|0;if(a){g=Oq(a<<2)|0;if(!g){d=0;a=12;break}}else g=0;J=X+8|0;K=X+12|0;L=(V|0)==0;M=(V|0)!=0;N=X+32|0;F=(d|0)!=0;G=(f|0)==0;H=(h|0)==0;I=(g|0)==0;E=(i|0)==0;o=b;n=1;i=-1;s=-1;a=k;i:while(1){if((a|0)>0){d=0;do{c[f+(d<<2)>>2]=-1;if(!L){c[V+(d<<2)>>2]=-1;a=c[R>>2]|0}d=d+1|0}while((d|0)<(a|0))}a=c[O>>2]|0;if((a|0)>0)Yq(g|0,0,a<<2|0)|0;k=c[U>>2]|0;D=n+i|0;a=Zp(U,o,4)|0;if((a|0)<1)if((a|0)<0){d=0;a=1;break h}else a=1;B=o+a|0;C=c[U>>2]|0;d=c[J>>2]|0;i=d+8|0;if(c[i>>2]|0){t=(D|0)!=0;u=(k|0)==95;v=(D|0)==0;x=F&(k|0)==10;w=E&(D|0)<1;r=d;d=0;q=0;p=i;while(1){o=r+20|0;i=c[o>>2]|0;j:do if(i){if(!(x|(w|(i&1|0)==0))){n=q;break}if(i&2|0?(A=c[U>>2]|0,!((A|P|0)==0|F&(A|0)==10)):0){n=q;break}do if(i&16|0){if(u){n=q;break j}if(Fp(k)|0){n=q;break j}i=c[U>>2]|0;if((i|0)==95)break;if(!(Fp(i)|0)){n=q;break j}}while(0);i=c[o>>2]|0;if(i&32){if(u){i=c[U>>2]|0;if((i|0)==95){n=q;break}}else{A=(Fp(k)|0)==0;i=c[U>>2]|0;if(A|(i|0)==95){n=q;break}}if(Fp(i)|0){n=q;break}i=c[o>>2]|0}n=c[U>>2]|0;do if((n|0)!=0&(t&(i&64|0)!=0)){if(u)i=1;else{i=(Fp(k)|0)!=0;n=c[U>>2]|0}if((n|0)==95)if(i){n=q;break j}else break;else if(i^(Fp(n)|0)!=0)break;else{n=q;break j}}while(0);if(!(c[o>>2]&128)){T=52;break}i=c[U>>2]|0;if(v|(i|0)==0){n=q;break}if(u)n=1;else{n=(Fp(k)|0)!=0;i=c[U>>2]|0}if((i|0)==95)if(n){T=52;break}else{n=q;break}else if(n^(Fp(i)|0)!=0){n=q;break}else{T=52;break}}else T=52;while(0);do if((T|0)==52){T=0;if(!q){d=c[r+16>>2]|0;n=c[p>>2]|0;break}n=j+28|0;i=c[n>>2]|0;if(!i){i=Jq(Q,0,0,0,32)|0;if(!i){T=56;break i}c[i+24>>2]=j;c[i+28>>2]=0;A=Jq(Q,0,0,0,c[R>>2]<<2)|0;c[i+20>>2]=A;if(!A){T=63;break i}c[n>>2]=i;j=i}else j=i;c[j>>2]=D;c[j+4>>2]=B;c[j+8>>2]=c[p>>2];c[j+12>>2]=c[r+12>>2];c[j+16>>2]=c[U>>2];if((c[R>>2]|0)>0){n=c[j+20>>2]|0;i=0;do{c[n+(i<<2)>>2]=c[f+(i<<2)>>2];i=i+1|0}while((i|0)<(c[R>>2]|0))}i=c[r+16>>2]|0;if(!i){n=q;break}n=c[i>>2]|0;if((n|0)<=-1){n=q;break}o=c[j+20>>2]|0;do{i=i+4|0;c[o+(n<<2)>>2]=D;n=c[i>>2]|0}while((n|0)>-1);n=q}while(0);p=r+40|0;if(!(c[p>>2]|0))break;else{r=r+32|0;q=n}}if(d){i=c[d>>2]|0;if((i|0)>-1)do{c[f+(i<<2)>>2]=D;d=d+4|0;i=c[d>>2]|0}while((i|0)>-1)}else d=0;if(!n){i=D;q=0;n=B;T=174}else{o=k;p=D;t=B;A=s;z=n;T=82}}else{i=D;q=0;n=B;d=0;T=174}k:while(1){l:do if((T|0)==82){T=0;if((z|0)==(c[K>>2]|0)){if((A|0)>=(p|0)){if(!(M&(A|0)==(p|0))){s=A;k=o;i=p;q=z;n=t;T=174;continue k}if(!(Lq(c[R>>2]|0,c[N>>2]|0,f,V)|0)){s=A;k=o;i=A;q=z;n=t;T=174;continue k}}if(L){s=p;k=o;i=p;q=z;n=t;T=174;continue k}if((c[R>>2]|0)>0)i=0;else{s=p;k=o;i=p;q=z;n=t;T=174;continue k}while(1){c[V+(i<<2)>>2]=c[f+(i<<2)>>2];i=i+1|0;if((i|0)>=(c[R>>2]|0)){s=p;k=o;i=p;q=z;n=t;T=174;continue k}}}r=z+8|0;do if(!(c[r>>2]|0))T=98;else{if(!(c[z+20>>2]&256)){T=98;break}k=c[z+24>>2]|0;Mq(k+1|0,h,c[Y>>2]&-9,X,f,p);y=c[h+(k<<3)>>2]|0;k=(c[h+(k<<3)+4>>2]|0)-y|0;do if(!(Jo(b+y|0,t+-1|0,k)|0)){y=(k|0)==0;i=y&1;n=g+(c[z+12>>2]<<2)|0;if(y?c[n>>2]|0:0){k=o;i=p;n=t;o=25;break}c[n>>2]=i;i=k+-1|0;n=t+i|0;k=c[U>>2]|0;i=p+a+i|0;a=Zp(U,n,4)|0;if((a|0)<1)if((a|0)<0){o=2;break}else a=1;n=n+a|0;o=0}else{k=o;i=p;n=t;o=25}while(0);switch(o&31){case 25:{s=A;q=z;T=174;continue k}case 0:{y=i;break}default:{s=A;q=z;break l}}}while(0);if((T|0)==98){T=0;k=c[U>>2]|0;if(!k){s=A;k=o;i=p;q=z;n=t;T=174;continue k}i=p+a|0;a=Zp(U,t,4)|0;if((a|0)<1)if((a|0)<0){s=A;o=2;q=z;n=t;break}else a=1;y=i;n=t+a|0}if(!(c[r>>2]|0)){s=A;i=y;q=z;T=174;continue k}t=(y|0)!=0;u=(k|0)==95;v=(y|0)==0;x=F&(k|0)==10;w=E&(y|0)<1;q=0;s=z;m:while(1){n:do if((c[s>>2]|0)>>>0<=k>>>0){if((c[s+4>>2]|0)>>>0<k>>>0)break;p=s+20|0;i=c[p>>2]|0;do if(i|0){if(!(x|(w|(i&1|0)==0)))break n;if(i&2|0?(T=c[U>>2]|0,!((T|P|0)==0|F&(T|0)==10)):0)break n;do if(i&16|0){if(u)break n;if(Fp(k)|0)break n;i=c[U>>2]|0;if((i|0)==95)break;if(!(Fp(i)|0))break n}while(0);i=c[p>>2]|0;if(i&32){if(u){i=c[U>>2]|0;if((i|0)==95)break n}else{T=(Fp(k)|0)==0;i=c[U>>2]|0;if(T|(i|0)==95)break n}if(Fp(i)|0)break n;i=c[p>>2]|0}o=c[U>>2]|0;do if((o|0)!=0&(t&(i&64|0)!=0)){if(u)i=1;else{i=(Fp(k)|0)!=0;o=c[U>>2]|0}if((o|0)==95)if(i)break n;else break;else if(i^(Fp(o)|0)!=0)break;else break n}while(0);do if(c[p>>2]&128|0){i=c[U>>2]|0;if(v|(i|0)==0)break n;if(u)o=1;else{o=(Fp(k)|0)!=0;i=c[U>>2]|0}if((i|0)==95)if(o)break;else break n;else if(o^(Fp(i)|0)!=0)break n;else break}while(0);i=c[p>>2]|0;do if(i&4){if(c[Y>>2]&2|0)break;if(!(Ep(k,c[s+24>>2]|0)|0))break n;i=c[p>>2]|0}while(0);do if(i&4|0){if(!(c[Y>>2]&2))break;T=$o(k)|0;i=s+24|0;if(Ep(T,c[i>>2]|0)|0)break;T=_o(k)|0;if(!(Ep(T,c[i>>2]|0)|0))break n}while(0);if(!(c[p>>2]&8))break;if(Nq(c[s+28>>2]|0,k,c[Y>>2]&2)|0)break n}while(0);if(!q){q=c[r>>2]|0;d=c[s+16>>2]|0;break}o=j+28|0;i=c[o>>2]|0;if(!i){i=Jq(Q,0,0,0,32)|0;if(!i){T=148;break m}c[i+24>>2]=j;c[i+28>>2]=0;T=Jq(Q,0,0,0,c[R>>2]<<2)|0;c[i+20>>2]=T;if(!T){T=155;break m}c[o>>2]=i;j=i}else j=i;c[j>>2]=y;c[j+4>>2]=n;c[j+8>>2]=c[r>>2];c[j+12>>2]=c[s+12>>2];c[j+16>>2]=c[U>>2];if((c[R>>2]|0)>0){o=c[j+20>>2]|0;i=0;do{c[o+(i<<2)>>2]=c[f+(i<<2)>>2];i=i+1|0}while((i|0)<(c[R>>2]|0))}i=c[s+16>>2]|0;if(!i)break;o=c[i>>2]|0;if((o|0)<=-1)break;p=c[j+20>>2]|0;do{c[p+(o<<2)>>2]=y;i=i+4|0;o=c[i>>2]|0}while((o|0)>-1)}while(0);r=s+40|0;if(!(c[r>>2]|0)){T=170;break}else s=s+32|0}if((T|0)==148){T=0;Iq(Q);if(!G)Pq(f);if(!H)Pq(h);if(I){s=A;i=y;o=1;q=z;break}Pq(g);s=A;i=y;o=1;q=z;break}else if((T|0)==155){T=0;Iq(Q);if(!G)Pq(f);if(!H)Pq(h);if(I){s=A;i=y;o=1;q=z;break}Pq(g);s=A;i=y;o=1;q=z;break}else if((T|0)==170){T=0;if(!q){s=A;i=y;q=z;T=174;continue k}if(!d){d=0;s=A;i=y;o=0;break}i=c[d>>2]|0;if((i|0)<=-1){s=A;i=y;o=0;break}do{d=d+4|0;c[f+(i<<2)>>2]=y;i=c[d>>2]|0}while((i|0)>-1);s=A;i=y;o=0}}else if((T|0)==174){T=0;o=c[j+24>>2]|0;if(!o){if((s|0)>-1|(c[U>>2]|0)==0){o=27;break}c[U>>2]=C;o=3;n=B;break}q=c[j+8>>2]|0;if(c[q+20>>2]&256|0)c[g+(c[j+12>>2]<<2)>>2]=0;p=c[j>>2]|0;r=c[j+4>>2]|0;c[U>>2]=c[j+16>>2];n=c[R>>2]|0;if((n|0)<=0){j=o;i=p;o=0;n=r;break}j=c[j+20>>2]|0;i=0;do{c[f+(i<<2)>>2]=c[j+(i<<2)>>2];i=i+1|0}while((i|0)!=(n|0));j=o;i=p;o=0;n=r}while(0);switch(o|0){case 2:{d=0;a=1;break h}case 27:{T=184;break i}case 0:{o=k;p=i;t=n;A=s;z=q;T=82;break}case 3:break k;default:{d=0;a=12;break g}}}o=n;n=a;i=D;a=c[R>>2]|0}if((T|0)==56){Iq(Q);if(!G)Pq(f);if(!H)Pq(h);if(I){d=0;a=12;break g}Pq(g);d=0;a=12;break g}else if((T|0)==63){Iq(Q);if(!G)Pq(f);if(!H)Pq(h);if(I){d=0;a=12;break g}Pq(g);d=0;a=12;break g}else if((T|0)==184){d=s;a=s>>>31;break}}while(0);Iq(Q);if(f|0)Pq(f);if(h|0)Pq(h);if(g)Pq(g)}else{d=0;a=12}while(0)}if(!a)Mq(W,e,c[Y>>2]|0,X,V,d);if(V)Pq(V)}l=Z;return a|0}function Lq(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;a:do if((a|0)>0){f=0;while(1){h=c[d+(f<<2)>>2]|0;g=c[e+(f<<2)>>2]|0;if(!(c[b+(f<<2)>>2]|0)){if((h|0)<(g|0)){f=1;break a}if((h|0)>(g|0)){f=0;break a}}else{if((h|0)>(g|0)){f=1;break a}if((h|0)<(g|0)){f=0;break a}}f=f+1|0;if((f|0)>=(a|0)){f=0;break}}}else f=0;while(0);return f|0}function Mq(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;if((d&8|0)==0&(g|0)>-1){n=c[e+16>>2]|0;l=e+28|0;d=c[l>>2]|0;m=(a|0)!=0;if(m&(d|0)!=0){k=e+48|0;j=0;do{d=c[n+(j*12|0)>>2]|0;if((d|0)==(c[k>>2]|0))i=g;else i=c[f+(d<<2)>>2]|0;h=b+(j<<3)|0;c[h>>2]=i;d=c[n+(j*12|0)+4>>2]|0;if((d|0)==(c[k>>2]|0))e=g;else e=c[f+(d<<2)>>2]|0;d=b+(j<<3)+4|0;c[d>>2]=e;if((i|0)==-1|(e|0)==-1){c[d>>2]=-1;c[h>>2]=-1}j=j+1|0;d=c[l>>2]|0}while(j>>>0<a>>>0&j>>>0<d>>>0);f=d}else f=d;if(m&(f|0)!=0){d=0;do{i=b+(d<<3)+4|0;j=c[n+(d*12|0)+8>>2]|0;if(j|0?(o=c[j>>2]|0,(o|0)>-1):0){k=b+(d<<3)|0;h=0;l=o;e=c[k>>2]|0;do{if(!((e|0)>=(c[b+(l<<3)>>2]|0)?(c[i>>2]|0)<=(c[b+(l<<3)+4>>2]|0):0)){c[i>>2]=-1;c[k>>2]=-1;e=-1}h=h+1|0;l=c[j+(h<<2)>>2]|0}while((l|0)>-1)}d=d+1|0}while(d>>>0<a>>>0&d>>>0<f>>>0)}else d=0}else d=0;if(d>>>0<a>>>0)Yq(b+(d<<3)|0,-1,a-d<<3|0)|0;return}function Nq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=c[a>>2]|0;a:do if(!e)d=0;else{f=(d|0)==0;d=e;while(1){if(f){if(Ep(b,d)|0){d=1;break a}}else{e=_o(b)|0;if(Ep(e,c[a>>2]|0)|0){d=1;break a}e=$o(b)|0;if(Ep(e,c[a>>2]|0)|0){d=1;break a}}a=a+4|0;d=c[a>>2]|0;if(!d){d=0;break}}}while(0);return d|0}function Oq(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;M=l;l=l+16|0;if((l|0)>=(m|0))$(16);q=M;do if(a>>>0<245){p=a>>>0<11?16:a+11&-8;a=p>>>3;u=c[17716]|0;d=u>>>a;if(d&3|0){a=(d&1^1)+a|0;d=70904+(a<<1<<2)|0;e=d+8|0;f=c[e>>2]|0;g=f+8|0;h=c[g>>2]|0;do if((d|0)!=(h|0)){if(h>>>0<(c[17720]|0)>>>0)za();b=h+12|0;if((c[b>>2]|0)==(f|0)){c[b>>2]=d;c[e>>2]=h;break}else za()}else c[17716]=u&~(1<<a);while(0);L=a<<3;c[f+4>>2]=L|3;L=f+L+4|0;c[L>>2]=c[L>>2]|1;L=g;l=M;return L|0}t=c[17718]|0;if(p>>>0>t>>>0){if(d|0){i=2<<a;a=d<<a&(i|0-i);a=(a&0-a)+-1|0;i=a>>>12&16;a=a>>>i;e=a>>>5&8;a=a>>>e;g=a>>>2&4;a=a>>>g;d=a>>>1&2;a=a>>>d;b=a>>>1&1;b=(e|i|g|d|b)+(a>>>b)|0;a=70904+(b<<1<<2)|0;d=a+8|0;g=c[d>>2]|0;i=g+8|0;e=c[i>>2]|0;do if((a|0)!=(e|0)){if(e>>>0<(c[17720]|0)>>>0)za();f=e+12|0;if((c[f>>2]|0)==(g|0)){c[f>>2]=a;c[d>>2]=e;j=u;break}else za()}else{j=u&~(1<<b);c[17716]=j}while(0);h=(b<<3)-p|0;c[g+4>>2]=p|3;e=g+p|0;c[e+4>>2]=h|1;c[e+h>>2]=h;if(t|0){f=c[17721]|0;b=t>>>3;d=70904+(b<<1<<2)|0;b=1<<b;if(j&b){b=d+8|0;a=c[b>>2]|0;if(a>>>0<(c[17720]|0)>>>0)za();else{k=a;n=b}}else{c[17716]=j|b;k=d;n=d+8|0}c[n>>2]=f;c[k+12>>2]=f;c[f+8>>2]=k;c[f+12>>2]=d}c[17718]=h;c[17721]=e;L=i;l=M;return L|0}k=c[17717]|0;if(k){a=(k&0-k)+-1|0;K=a>>>12&16;a=a>>>K;J=a>>>5&8;a=a>>>J;L=a>>>2&4;a=a>>>L;i=a>>>1&2;a=a>>>i;j=a>>>1&1;j=c[71168+((J|K|L|i|j)+(a>>>j)<<2)>>2]|0;a=j;i=j;j=(c[j+4>>2]&-8)-p|0;while(1){b=c[a+16>>2]|0;if(!b){b=c[a+20>>2]|0;if(!b)break}L=(c[b+4>>2]&-8)-p|0;K=L>>>0<j>>>0;a=b;i=K?b:i;j=K?L:j}f=c[17720]|0;if(i>>>0<f>>>0)za();h=i+p|0;if(i>>>0>=h>>>0)za();g=c[i+24>>2]|0;d=c[i+12>>2]|0;do if((d|0)==(i|0)){a=i+20|0;b=c[a>>2]|0;if(!b){a=i+16|0;b=c[a>>2]|0;if(!b){o=0;break}}while(1){d=b+20|0;e=c[d>>2]|0;if(e|0){b=e;a=d;continue}d=b+16|0;e=c[d>>2]|0;if(!e)break;else{b=e;a=d}}if(a>>>0<f>>>0)za();else{c[a>>2]=0;o=b;break}}else{e=c[i+8>>2]|0;if(e>>>0<f>>>0)za();b=e+12|0;if((c[b>>2]|0)!=(i|0))za();a=d+8|0;if((c[a>>2]|0)==(i|0)){c[b>>2]=d;c[a>>2]=e;o=d;break}else za()}while(0);do if(g|0){b=c[i+28>>2]|0;a=71168+(b<<2)|0;if((i|0)==(c[a>>2]|0)){c[a>>2]=o;if(!o){c[17717]=k&~(1<<b);break}}else{if(g>>>0<(c[17720]|0)>>>0)za();b=g+16|0;if((c[b>>2]|0)==(i|0))c[b>>2]=o;else c[g+20>>2]=o;if(!o)break}a=c[17720]|0;if(o>>>0<a>>>0)za();c[o+24>>2]=g;b=c[i+16>>2]|0;do if(b|0)if(b>>>0<a>>>0)za();else{c[o+16>>2]=b;c[b+24>>2]=o;break}while(0);b=c[i+20>>2]|0;if(b|0)if(b>>>0<(c[17720]|0)>>>0)za();else{c[o+20>>2]=b;c[b+24>>2]=o;break}}while(0);if(j>>>0<16){L=j+p|0;c[i+4>>2]=L|3;L=i+L+4|0;c[L>>2]=c[L>>2]|1}else{c[i+4>>2]=p|3;c[h+4>>2]=j|1;c[h+j>>2]=j;if(t|0){e=c[17721]|0;b=t>>>3;d=70904+(b<<1<<2)|0;b=1<<b;if(u&b){b=d+8|0;a=c[b>>2]|0;if(a>>>0<(c[17720]|0)>>>0)za();else{r=a;s=b}}else{c[17716]=u|b;r=d;s=d+8|0}c[s>>2]=e;c[r+12>>2]=e;c[e+8>>2]=r;c[e+12>>2]=d}c[17718]=j;c[17721]=h}L=i+8|0;l=M;return L|0}}}else if(a>>>0<=4294967231){a=a+11|0;p=a&-8;k=c[17717]|0;if(k){e=0-p|0;a=a>>>8;if(a)if(p>>>0>16777215)j=31;else{s=(a+1048320|0)>>>16&8;E=a<<s;r=(E+520192|0)>>>16&4;E=E<<r;j=(E+245760|0)>>>16&2;j=14-(r|s|j)+(E<<j>>>15)|0;j=p>>>(j+7|0)&1|j<<1}else j=0;a=c[71168+(j<<2)>>2]|0;a:do if(!a){d=0;f=0;E=86}else{f=0;i=a;h=p<<((j|0)==31?0:25-(j>>>1)|0);d=0;while(1){a=(c[i+4>>2]&-8)-p|0;if(a>>>0<e>>>0)if(!a){a=i;e=0;d=i;E=90;break a}else{f=i;e=a}a=c[i+20>>2]|0;i=c[i+16+(h>>>31<<2)>>2]|0;d=(a|0)==0|(a|0)==(i|0)?d:a;a=(i|0)==0;if(a){E=86;break}else h=h<<(a&1^1)}}while(0);if((E|0)==86){if((d|0)==0&(f|0)==0){a=2<<j;a=k&(a|0-a);if(!a)break;s=(a&0-a)+-1|0;n=s>>>12&16;s=s>>>n;j=s>>>5&8;s=s>>>j;o=s>>>2&4;s=s>>>o;r=s>>>1&2;s=s>>>r;d=s>>>1&1;d=c[71168+((j|n|o|r|d)+(s>>>d)<<2)>>2]|0}if(!d){j=f;i=e}else{a=f;E=90}}if((E|0)==90)while(1){E=0;s=(c[d+4>>2]&-8)-p|0;f=s>>>0<e>>>0;e=f?s:e;a=f?d:a;f=c[d+16>>2]|0;if(f|0){d=f;E=90;continue}d=c[d+20>>2]|0;if(!d){j=a;i=e;break}else E=90}if((j|0)!=0?i>>>0<((c[17718]|0)-p|0)>>>0:0){f=c[17720]|0;if(j>>>0<f>>>0)za();h=j+p|0;if(j>>>0>=h>>>0)za();g=c[j+24>>2]|0;d=c[j+12>>2]|0;do if((d|0)==(j|0)){a=j+20|0;b=c[a>>2]|0;if(!b){a=j+16|0;b=c[a>>2]|0;if(!b){t=0;break}}while(1){d=b+20|0;e=c[d>>2]|0;if(e|0){b=e;a=d;continue}d=b+16|0;e=c[d>>2]|0;if(!e)break;else{b=e;a=d}}if(a>>>0<f>>>0)za();else{c[a>>2]=0;t=b;break}}else{e=c[j+8>>2]|0;if(e>>>0<f>>>0)za();b=e+12|0;if((c[b>>2]|0)!=(j|0))za();a=d+8|0;if((c[a>>2]|0)==(j|0)){c[b>>2]=d;c[a>>2]=e;t=d;break}else za()}while(0);do if(g){b=c[j+28>>2]|0;a=71168+(b<<2)|0;if((j|0)==(c[a>>2]|0)){c[a>>2]=t;if(!t){u=k&~(1<<b);c[17717]=u;break}}else{if(g>>>0<(c[17720]|0)>>>0)za();b=g+16|0;if((c[b>>2]|0)==(j|0))c[b>>2]=t;else c[g+20>>2]=t;if(!t){u=k;break}}a=c[17720]|0;if(t>>>0<a>>>0)za();c[t+24>>2]=g;b=c[j+16>>2]|0;do if(b|0)if(b>>>0<a>>>0)za();else{c[t+16>>2]=b;c[b+24>>2]=t;break}while(0);b=c[j+20>>2]|0;if(b)if(b>>>0<(c[17720]|0)>>>0)za();else{c[t+20>>2]=b;c[b+24>>2]=t;u=k;break}else u=k}else u=k;while(0);do if(i>>>0>=16){c[j+4>>2]=p|3;c[h+4>>2]=i|1;c[h+i>>2]=i;b=i>>>3;if(i>>>0<256){d=70904+(b<<1<<2)|0;a=c[17716]|0;b=1<<b;if(a&b){b=d+8|0;a=c[b>>2]|0;if(a>>>0<(c[17720]|0)>>>0)za();else{C=a;D=b}}else{c[17716]=a|b;C=d;D=d+8|0}c[D>>2]=h;c[C+12>>2]=h;c[h+8>>2]=C;c[h+12>>2]=d;break}b=i>>>8;if(b)if(i>>>0>16777215)b=31;else{K=(b+1048320|0)>>>16&8;L=b<<K;J=(L+520192|0)>>>16&4;L=L<<J;b=(L+245760|0)>>>16&2;b=14-(J|K|b)+(L<<b>>>15)|0;b=i>>>(b+7|0)&1|b<<1}else b=0;d=71168+(b<<2)|0;c[h+28>>2]=b;a=h+16|0;c[a+4>>2]=0;c[a>>2]=0;a=1<<b;if(!(u&a)){c[17717]=u|a;c[d>>2]=h;c[h+24>>2]=d;c[h+12>>2]=h;c[h+8>>2]=h;break}a=i<<((b|0)==31?0:25-(b>>>1)|0);e=c[d>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(i|0)){E=148;break}d=e+16+(a>>>31<<2)|0;b=c[d>>2]|0;if(!b){E=145;break}else{a=a<<1;e=b}}if((E|0)==145)if(d>>>0<(c[17720]|0)>>>0)za();else{c[d>>2]=h;c[h+24>>2]=e;c[h+12>>2]=h;c[h+8>>2]=h;break}else if((E|0)==148){b=e+8|0;a=c[b>>2]|0;L=c[17720]|0;if(a>>>0>=L>>>0&e>>>0>=L>>>0){c[a+12>>2]=h;c[b>>2]=h;c[h+8>>2]=a;c[h+12>>2]=e;c[h+24>>2]=0;break}else za()}}else{L=i+p|0;c[j+4>>2]=L|3;L=j+L+4|0;c[L>>2]=c[L>>2]|1}while(0);L=j+8|0;l=M;return L|0}}}else p=-1;while(0);d=c[17718]|0;if(d>>>0>=p>>>0){b=d-p|0;a=c[17721]|0;if(b>>>0>15){L=a+p|0;c[17721]=L;c[17718]=b;c[L+4>>2]=b|1;c[L+b>>2]=b;c[a+4>>2]=p|3}else{c[17718]=0;c[17721]=0;c[a+4>>2]=d|3;L=a+d+4|0;c[L>>2]=c[L>>2]|1}L=a+8|0;l=M;return L|0}i=c[17719]|0;if(i>>>0>p>>>0){J=i-p|0;c[17719]=J;L=c[17722]|0;K=L+p|0;c[17722]=K;c[K+4>>2]=J|1;c[L+4>>2]=p|3;L=L+8|0;l=M;return L|0}if(!(c[17834]|0)){c[17836]=4096;c[17835]=4096;c[17837]=-1;c[17838]=-1;c[17839]=0;c[17827]=0;a=q&-16^1431655768;c[q>>2]=a;c[17834]=a;a=4096}else a=c[17836]|0;j=p+48|0;k=p+47|0;h=a+k|0;f=0-a|0;n=h&f;if(n>>>0<=p>>>0){L=0;l=M;return L|0}a=c[17826]|0;if(a|0?(C=c[17824]|0,D=C+n|0,D>>>0<=C>>>0|D>>>0>a>>>0):0){L=0;l=M;return L|0}b:do if(!(c[17827]&4)){d=c[17722]|0;c:do if(d){e=71312;while(1){a=c[e>>2]|0;if(a>>>0<=d>>>0?(v=e+4|0,(a+(c[v>>2]|0)|0)>>>0>d>>>0):0)break;a=c[e+8>>2]|0;if(!a){E=172;break c}else e=a}d=h-i&f;if(d>>>0<2147483647){a=lr(d|0)|0;if((a|0)==((c[e>>2]|0)+(c[v>>2]|0)|0)){if((a|0)!=(-1|0)){h=d;g=a;E=190;break b}}else{b=d;E=180}}}else E=172;while(0);do if(((E|0)==172?(g=lr(0)|0,(g|0)!=(-1|0)):0)?(b=g,w=c[17835]|0,x=w+-1|0,b=((x&b|0)==0?0:(x+b&0-w)-b|0)+n|0,w=c[17824]|0,x=b+w|0,b>>>0>p>>>0&b>>>0<2147483647):0){D=c[17826]|0;if(D|0?x>>>0<=w>>>0|x>>>0>D>>>0:0)break;a=lr(b|0)|0;if((a|0)==(g|0)){h=b;E=190;break b}else E=180}while(0);d:do if((E|0)==180){d=0-b|0;do if(j>>>0>b>>>0&(b>>>0<2147483647&(a|0)!=(-1|0))?(y=c[17836]|0,y=k-b+y&0-y,y>>>0<2147483647):0)if((lr(y|0)|0)==(-1|0)){lr(d|0)|0;break d}else{b=y+b|0;break}while(0);if((a|0)!=(-1|0)){h=b;g=a;E=190;break b}}while(0);c[17827]=c[17827]|4;E=187}else E=187;while(0);if((((E|0)==187?n>>>0<2147483647:0)?(B=lr(n|0)|0,z=lr(0)|0,B>>>0<z>>>0&((B|0)!=(-1|0)&(z|0)!=(-1|0))):0)?(A=z-B|0,A>>>0>(p+40|0)>>>0):0){h=A;g=B;E=190}if((E|0)==190){b=(c[17824]|0)+h|0;c[17824]=b;if(b>>>0>(c[17825]|0)>>>0)c[17825]=b;k=c[17722]|0;do if(k){b=71312;while(1){a=c[b>>2]|0;d=b+4|0;e=c[d>>2]|0;if((g|0)==(a+e|0)){E=200;break}f=c[b+8>>2]|0;if(!f)break;else b=f}if(((E|0)==200?(c[b+12>>2]&8|0)==0:0)?k>>>0<g>>>0&k>>>0>=a>>>0:0){c[d>>2]=e+h;L=k+8|0;L=(L&7|0)==0?0:0-L&7;K=k+L|0;L=h-L+(c[17719]|0)|0;c[17722]=K;c[17719]=L;c[K+4>>2]=L|1;c[K+L+4>>2]=40;c[17723]=c[17838];break}b=c[17720]|0;if(g>>>0<b>>>0){c[17720]=g;i=g}else i=b;a=g+h|0;b=71312;while(1){if((c[b>>2]|0)==(a|0)){E=208;break}b=c[b+8>>2]|0;if(!b){a=71312;break}}if((E|0)==208)if(!(c[b+12>>2]&8)){c[b>>2]=g;o=b+4|0;c[o>>2]=(c[o>>2]|0)+h;o=g+8|0;o=g+((o&7|0)==0?0:0-o&7)|0;b=a+8|0;b=a+((b&7|0)==0?0:0-b&7)|0;n=o+p|0;j=b-o-p|0;c[o+4>>2]=p|3;do if((b|0)!=(k|0)){if((b|0)==(c[17721]|0)){L=(c[17718]|0)+j|0;c[17718]=L;c[17721]=n;c[n+4>>2]=L|1;c[n+L>>2]=L;break}a=c[b+4>>2]|0;if((a&3|0)==1){h=a&-8;f=a>>>3;e:do if(a>>>0>=256){g=c[b+24>>2]|0;e=c[b+12>>2]|0;do if((e|0)==(b|0)){e=b+16|0;d=e+4|0;a=c[d>>2]|0;if(!a){a=c[e>>2]|0;if(!a){J=0;break}else d=e}while(1){e=a+20|0;f=c[e>>2]|0;if(f|0){a=f;d=e;continue}e=a+16|0;f=c[e>>2]|0;if(!f)break;else{a=f;d=e}}if(d>>>0<i>>>0)za();else{c[d>>2]=0;J=a;break}}else{f=c[b+8>>2]|0;if(f>>>0<i>>>0)za();a=f+12|0;if((c[a>>2]|0)!=(b|0))za();d=e+8|0;if((c[d>>2]|0)==(b|0)){c[a>>2]=e;c[d>>2]=f;J=e;break}else za()}while(0);if(!g)break;a=c[b+28>>2]|0;d=71168+(a<<2)|0;do if((b|0)!=(c[d>>2]|0)){if(g>>>0<(c[17720]|0)>>>0)za();a=g+16|0;if((c[a>>2]|0)==(b|0))c[a>>2]=J;else c[g+20>>2]=J;if(!J)break e}else{c[d>>2]=J;if(J|0)break;c[17717]=c[17717]&~(1<<a);break e}while(0);e=c[17720]|0;if(J>>>0<e>>>0)za();c[J+24>>2]=g;a=b+16|0;d=c[a>>2]|0;do if(d|0)if(d>>>0<e>>>0)za();else{c[J+16>>2]=d;c[d+24>>2]=J;break}while(0);a=c[a+4>>2]|0;if(!a)break;if(a>>>0<(c[17720]|0)>>>0)za();else{c[J+20>>2]=a;c[a+24>>2]=J;break}}else{d=c[b+8>>2]|0;e=c[b+12>>2]|0;a=70904+(f<<1<<2)|0;do if((d|0)!=(a|0)){if(d>>>0<i>>>0)za();if((c[d+12>>2]|0)==(b|0))break;za()}while(0);if((e|0)==(d|0)){c[17716]=c[17716]&~(1<<f);break}do if((e|0)==(a|0))G=e+8|0;else{if(e>>>0<i>>>0)za();a=e+8|0;if((c[a>>2]|0)==(b|0)){G=a;break}za()}while(0);c[d+12>>2]=e;c[G>>2]=d}while(0);b=b+h|0;f=h+j|0}else f=j;b=b+4|0;c[b>>2]=c[b>>2]&-2;c[n+4>>2]=f|1;c[n+f>>2]=f;b=f>>>3;if(f>>>0<256){d=70904+(b<<1<<2)|0;a=c[17716]|0;b=1<<b;do if(!(a&b)){c[17716]=a|b;K=d;L=d+8|0}else{b=d+8|0;a=c[b>>2]|0;if(a>>>0>=(c[17720]|0)>>>0){K=a;L=b;break}za()}while(0);c[L>>2]=n;c[K+12>>2]=n;c[n+8>>2]=K;c[n+12>>2]=d;break}b=f>>>8;do if(!b)b=0;else{if(f>>>0>16777215){b=31;break}K=(b+1048320|0)>>>16&8;L=b<<K;J=(L+520192|0)>>>16&4;L=L<<J;b=(L+245760|0)>>>16&2;b=14-(J|K|b)+(L<<b>>>15)|0;b=f>>>(b+7|0)&1|b<<1}while(0);e=71168+(b<<2)|0;c[n+28>>2]=b;a=n+16|0;c[a+4>>2]=0;c[a>>2]=0;a=c[17717]|0;d=1<<b;if(!(a&d)){c[17717]=a|d;c[e>>2]=n;c[n+24>>2]=e;c[n+12>>2]=n;c[n+8>>2]=n;break}a=f<<((b|0)==31?0:25-(b>>>1)|0);e=c[e>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(f|0)){E=278;break}d=e+16+(a>>>31<<2)|0;b=c[d>>2]|0;if(!b){E=275;break}else{a=a<<1;e=b}}if((E|0)==275)if(d>>>0<(c[17720]|0)>>>0)za();else{c[d>>2]=n;c[n+24>>2]=e;c[n+12>>2]=n;c[n+8>>2]=n;break}else if((E|0)==278){b=e+8|0;a=c[b>>2]|0;L=c[17720]|0;if(a>>>0>=L>>>0&e>>>0>=L>>>0){c[a+12>>2]=n;c[b>>2]=n;c[n+8>>2]=a;c[n+12>>2]=e;c[n+24>>2]=0;break}else za()}}else{L=(c[17719]|0)+j|0;c[17719]=L;c[17722]=n;c[n+4>>2]=L|1}while(0);L=o+8|0;l=M;return L|0}else a=71312;while(1){b=c[a>>2]|0;if(b>>>0<=k>>>0?(F=b+(c[a+4>>2]|0)|0,F>>>0>k>>>0):0)break;a=c[a+8>>2]|0}f=F+-47|0;a=f+8|0;a=f+((a&7|0)==0?0:0-a&7)|0;f=k+16|0;a=a>>>0<f>>>0?k:a;b=a+8|0;d=g+8|0;d=(d&7|0)==0?0:0-d&7;L=g+d|0;d=h+-40-d|0;c[17722]=L;c[17719]=d;c[L+4>>2]=d|1;c[L+d+4>>2]=40;c[17723]=c[17838];d=a+4|0;c[d>>2]=27;c[b>>2]=c[17828];c[b+4>>2]=c[17829];c[b+8>>2]=c[17830];c[b+12>>2]=c[17831];c[17828]=g;c[17829]=h;c[17831]=0;c[17830]=b;b=a+24|0;do{b=b+4|0;c[b>>2]=7}while((b+4|0)>>>0<F>>>0);if((a|0)!=(k|0)){g=a-k|0;c[d>>2]=c[d>>2]&-2;c[k+4>>2]=g|1;c[a>>2]=g;b=g>>>3;if(g>>>0<256){d=70904+(b<<1<<2)|0;a=c[17716]|0;b=1<<b;if(a&b){b=d+8|0;a=c[b>>2]|0;if(a>>>0<(c[17720]|0)>>>0)za();else{H=a;I=b}}else{c[17716]=a|b;H=d;I=d+8|0}c[I>>2]=k;c[H+12>>2]=k;c[k+8>>2]=H;c[k+12>>2]=d;break}b=g>>>8;if(b)if(g>>>0>16777215)d=31;else{K=(b+1048320|0)>>>16&8;L=b<<K;J=(L+520192|0)>>>16&4;L=L<<J;d=(L+245760|0)>>>16&2;d=14-(J|K|d)+(L<<d>>>15)|0;d=g>>>(d+7|0)&1|d<<1}else d=0;e=71168+(d<<2)|0;c[k+28>>2]=d;c[k+20>>2]=0;c[f>>2]=0;b=c[17717]|0;a=1<<d;if(!(b&a)){c[17717]=b|a;c[e>>2]=k;c[k+24>>2]=e;c[k+12>>2]=k;c[k+8>>2]=k;break}a=g<<((d|0)==31?0:25-(d>>>1)|0);e=c[e>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(g|0)){E=304;break}d=e+16+(a>>>31<<2)|0;b=c[d>>2]|0;if(!b){E=301;break}else{a=a<<1;e=b}}if((E|0)==301)if(d>>>0<(c[17720]|0)>>>0)za();else{c[d>>2]=k;c[k+24>>2]=e;c[k+12>>2]=k;c[k+8>>2]=k;break}else if((E|0)==304){b=e+8|0;a=c[b>>2]|0;L=c[17720]|0;if(a>>>0>=L>>>0&e>>>0>=L>>>0){c[a+12>>2]=k;c[b>>2]=k;c[k+8>>2]=a;c[k+12>>2]=e;c[k+24>>2]=0;break}else za()}}}else{L=c[17720]|0;if((L|0)==0|g>>>0<L>>>0)c[17720]=g;c[17828]=g;c[17829]=h;c[17831]=0;c[17725]=c[17834];c[17724]=-1;b=0;do{L=70904+(b<<1<<2)|0;c[L+12>>2]=L;c[L+8>>2]=L;b=b+1|0}while((b|0)!=32);L=g+8|0;L=(L&7|0)==0?0:0-L&7;K=g+L|0;L=h+-40-L|0;c[17722]=K;c[17719]=L;c[K+4>>2]=L|1;c[K+L+4>>2]=40;c[17723]=c[17838]}while(0);b=c[17719]|0;if(b>>>0>p>>>0){J=b-p|0;c[17719]=J;L=c[17722]|0;K=L+p|0;c[17722]=K;c[K+4>>2]=J|1;c[L+4>>2]=p|3;L=L+8|0;l=M;return L|0}}c[(zo()|0)>>2]=12;L=0;l=M;return L|0}function Pq(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;if(!a)return;d=a+-8|0;h=c[17720]|0;if(d>>>0<h>>>0)za();a=c[a+-4>>2]|0;b=a&3;if((b|0)==1)za();e=a&-8;n=d+e|0;do if(!(a&1)){a=c[d>>2]|0;if(!b)return;k=d+(0-a)|0;j=a+e|0;if(k>>>0<h>>>0)za();if((k|0)==(c[17721]|0)){a=n+4|0;b=c[a>>2]|0;if((b&3|0)!=3){q=k;f=j;break}c[17718]=j;c[a>>2]=b&-2;c[k+4>>2]=j|1;c[k+j>>2]=j;return}e=a>>>3;if(a>>>0<256){b=c[k+8>>2]|0;d=c[k+12>>2]|0;a=70904+(e<<1<<2)|0;if((b|0)!=(a|0)){if(b>>>0<h>>>0)za();if((c[b+12>>2]|0)!=(k|0))za()}if((d|0)==(b|0)){c[17716]=c[17716]&~(1<<e);q=k;f=j;break}if((d|0)!=(a|0)){if(d>>>0<h>>>0)za();a=d+8|0;if((c[a>>2]|0)==(k|0))g=a;else za()}else g=d+8|0;c[b+12>>2]=d;c[g>>2]=b;q=k;f=j;break}g=c[k+24>>2]|0;d=c[k+12>>2]|0;do if((d|0)==(k|0)){d=k+16|0;b=d+4|0;a=c[b>>2]|0;if(!a){a=c[d>>2]|0;if(!a){i=0;break}else b=d}while(1){d=a+20|0;e=c[d>>2]|0;if(e|0){a=e;b=d;continue}d=a+16|0;e=c[d>>2]|0;if(!e)break;else{a=e;b=d}}if(b>>>0<h>>>0)za();else{c[b>>2]=0;i=a;break}}else{e=c[k+8>>2]|0;if(e>>>0<h>>>0)za();a=e+12|0;if((c[a>>2]|0)!=(k|0))za();b=d+8|0;if((c[b>>2]|0)==(k|0)){c[a>>2]=d;c[b>>2]=e;i=d;break}else za()}while(0);if(g){a=c[k+28>>2]|0;b=71168+(a<<2)|0;if((k|0)==(c[b>>2]|0)){c[b>>2]=i;if(!i){c[17717]=c[17717]&~(1<<a);q=k;f=j;break}}else{if(g>>>0<(c[17720]|0)>>>0)za();a=g+16|0;if((c[a>>2]|0)==(k|0))c[a>>2]=i;else c[g+20>>2]=i;if(!i){q=k;f=j;break}}d=c[17720]|0;if(i>>>0<d>>>0)za();c[i+24>>2]=g;a=k+16|0;b=c[a>>2]|0;do if(b|0)if(b>>>0<d>>>0)za();else{c[i+16>>2]=b;c[b+24>>2]=i;break}while(0);a=c[a+4>>2]|0;if(a)if(a>>>0<(c[17720]|0)>>>0)za();else{c[i+20>>2]=a;c[a+24>>2]=i;q=k;f=j;break}else{q=k;f=j}}else{q=k;f=j}}else{q=d;f=e}while(0);if(q>>>0>=n>>>0)za();a=n+4|0;b=c[a>>2]|0;if(!(b&1))za();if(!(b&2)){if((n|0)==(c[17722]|0)){p=(c[17719]|0)+f|0;c[17719]=p;c[17722]=q;c[q+4>>2]=p|1;if((q|0)!=(c[17721]|0))return;c[17721]=0;c[17718]=0;return}if((n|0)==(c[17721]|0)){p=(c[17718]|0)+f|0;c[17718]=p;c[17721]=q;c[q+4>>2]=p|1;c[q+p>>2]=p;return}f=(b&-8)+f|0;e=b>>>3;do if(b>>>0>=256){g=c[n+24>>2]|0;a=c[n+12>>2]|0;do if((a|0)==(n|0)){d=n+16|0;b=d+4|0;a=c[b>>2]|0;if(!a){a=c[d>>2]|0;if(!a){m=0;break}else b=d}while(1){d=a+20|0;e=c[d>>2]|0;if(e|0){a=e;b=d;continue}d=a+16|0;e=c[d>>2]|0;if(!e)break;else{a=e;b=d}}if(b>>>0<(c[17720]|0)>>>0)za();else{c[b>>2]=0;m=a;break}}else{b=c[n+8>>2]|0;if(b>>>0<(c[17720]|0)>>>0)za();d=b+12|0;if((c[d>>2]|0)!=(n|0))za();e=a+8|0;if((c[e>>2]|0)==(n|0)){c[d>>2]=a;c[e>>2]=b;m=a;break}else za()}while(0);if(g|0){a=c[n+28>>2]|0;b=71168+(a<<2)|0;if((n|0)==(c[b>>2]|0)){c[b>>2]=m;if(!m){c[17717]=c[17717]&~(1<<a);break}}else{if(g>>>0<(c[17720]|0)>>>0)za();a=g+16|0;if((c[a>>2]|0)==(n|0))c[a>>2]=m;else c[g+20>>2]=m;if(!m)break}d=c[17720]|0;if(m>>>0<d>>>0)za();c[m+24>>2]=g;a=n+16|0;b=c[a>>2]|0;do if(b|0)if(b>>>0<d>>>0)za();else{c[m+16>>2]=b;c[b+24>>2]=m;break}while(0);a=c[a+4>>2]|0;if(a|0)if(a>>>0<(c[17720]|0)>>>0)za();else{c[m+20>>2]=a;c[a+24>>2]=m;break}}}else{b=c[n+8>>2]|0;d=c[n+12>>2]|0;a=70904+(e<<1<<2)|0;if((b|0)!=(a|0)){if(b>>>0<(c[17720]|0)>>>0)za();if((c[b+12>>2]|0)!=(n|0))za()}if((d|0)==(b|0)){c[17716]=c[17716]&~(1<<e);break}if((d|0)!=(a|0)){if(d>>>0<(c[17720]|0)>>>0)za();a=d+8|0;if((c[a>>2]|0)==(n|0))l=a;else za()}else l=d+8|0;c[b+12>>2]=d;c[l>>2]=b}while(0);c[q+4>>2]=f|1;c[q+f>>2]=f;if((q|0)==(c[17721]|0)){c[17718]=f;return}}else{c[a>>2]=b&-2;c[q+4>>2]=f|1;c[q+f>>2]=f}a=f>>>3;if(f>>>0<256){d=70904+(a<<1<<2)|0;b=c[17716]|0;a=1<<a;if(b&a){a=d+8|0;b=c[a>>2]|0;if(b>>>0<(c[17720]|0)>>>0)za();else{o=b;p=a}}else{c[17716]=b|a;o=d;p=d+8|0}c[p>>2]=q;c[o+12>>2]=q;c[q+8>>2]=o;c[q+12>>2]=d;return}a=f>>>8;if(a)if(f>>>0>16777215)a=31;else{o=(a+1048320|0)>>>16&8;p=a<<o;n=(p+520192|0)>>>16&4;p=p<<n;a=(p+245760|0)>>>16&2;a=14-(n|o|a)+(p<<a>>>15)|0;a=f>>>(a+7|0)&1|a<<1}else a=0;e=71168+(a<<2)|0;c[q+28>>2]=a;c[q+20>>2]=0;c[q+16>>2]=0;b=c[17717]|0;d=1<<a;do if(b&d){b=f<<((a|0)==31?0:25-(a>>>1)|0);e=c[e>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(f|0)){a=130;break}d=e+16+(b>>>31<<2)|0;a=c[d>>2]|0;if(!a){a=127;break}else{b=b<<1;e=a}}if((a|0)==127)if(d>>>0<(c[17720]|0)>>>0)za();else{c[d>>2]=q;c[q+24>>2]=e;c[q+12>>2]=q;c[q+8>>2]=q;break}else if((a|0)==130){a=e+8|0;b=c[a>>2]|0;p=c[17720]|0;if(b>>>0>=p>>>0&e>>>0>=p>>>0){c[b+12>>2]=q;c[a>>2]=q;c[q+8>>2]=b;c[q+12>>2]=e;c[q+24>>2]=0;break}else za()}}else{c[17717]=b|d;c[e>>2]=q;c[q+24>>2]=e;c[q+12>>2]=q;c[q+8>>2]=q}while(0);q=(c[17724]|0)+-1|0;c[17724]=q;if(!q)a=71320;else return;while(1){a=c[a>>2]|0;if(!a)break;else a=a+8|0}c[17724]=-1;return}function Qq(a,b){a=a|0;b=b|0;var d=0;if(a){d=S(b,a)|0;if((b|a)>>>0>65535)d=((d>>>0)/(a>>>0)|0|0)==(b|0)?d:-1}else d=0;a=Oq(d)|0;if(!a)return a|0;if(!(c[a+-4>>2]&3))return a|0;Yq(a|0,0,d|0)|0;return a|0}function Rq(a,b){a=a|0;b=b|0;var d=0,e=0;if(!a){b=Oq(b)|0;return b|0}if(b>>>0>4294967231){c[(zo()|0)>>2]=12;b=0;return b|0}d=Sq(a+-8|0,b>>>0<11?16:b+11&-8)|0;if(d|0){b=d+8|0;return b|0}d=Oq(b)|0;if(!d){b=0;return b|0}e=c[a+-4>>2]|0;e=(e&-8)-((e&3|0)==0?8:4)|0;cr(d|0,a|0,(e>>>0<b>>>0?e:b)|0)|0;Pq(a);b=d;return b|0}function Sq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=a+4|0;o=c[n>>2]|0;d=o&-8;k=a+d|0;i=c[17720]|0;e=o&3;if(!((e|0)!=1&a>>>0>=i>>>0&a>>>0<k>>>0))za();f=c[k+4>>2]|0;if(!(f&1))za();if(!e){if(b>>>0<256){a=0;return a|0}if(d>>>0>=(b+4|0)>>>0?(d-b|0)>>>0<=c[17836]<<1>>>0:0)return a|0;a=0;return a|0}if(d>>>0>=b>>>0){d=d-b|0;if(d>>>0<=15)return a|0;m=a+b|0;c[n>>2]=o&1|b|2;c[m+4>>2]=d|3;o=m+d+4|0;c[o>>2]=c[o>>2]|1;Tq(m,d);return a|0}if((k|0)==(c[17722]|0)){d=(c[17719]|0)+d|0;if(d>>>0<=b>>>0){a=0;return a|0}m=d-b|0;l=a+b|0;c[n>>2]=o&1|b|2;c[l+4>>2]=m|1;c[17722]=l;c[17719]=m;return a|0}if((k|0)==(c[17721]|0)){e=(c[17718]|0)+d|0;if(e>>>0<b>>>0){a=0;return a|0}d=e-b|0;if(d>>>0>15){e=a+b|0;m=e+d|0;c[n>>2]=o&1|b|2;c[e+4>>2]=d|1;c[m>>2]=d;o=m+4|0;c[o>>2]=c[o>>2]&-2}else{c[n>>2]=o&1|e|2;e=a+e+4|0;c[e>>2]=c[e>>2]|1;e=0;d=0}c[17718]=d;c[17721]=e;return a|0}if(f&2|0){a=0;return a|0}l=(f&-8)+d|0;if(l>>>0<b>>>0){a=0;return a|0}m=l-b|0;g=f>>>3;do if(f>>>0>=256){h=c[k+24>>2]|0;f=c[k+12>>2]|0;do if((f|0)==(k|0)){f=k+16|0;e=f+4|0;d=c[e>>2]|0;if(!d){d=c[f>>2]|0;if(!d){j=0;break}else e=f}while(1){f=d+20|0;g=c[f>>2]|0;if(g|0){d=g;e=f;continue}f=d+16|0;g=c[f>>2]|0;if(!g)break;else{d=g;e=f}}if(e>>>0<i>>>0)za();else{c[e>>2]=0;j=d;break}}else{g=c[k+8>>2]|0;if(g>>>0<i>>>0)za();d=g+12|0;if((c[d>>2]|0)!=(k|0))za();e=f+8|0;if((c[e>>2]|0)==(k|0)){c[d>>2]=f;c[e>>2]=g;j=f;break}else za()}while(0);if(h|0){d=c[k+28>>2]|0;e=71168+(d<<2)|0;if((k|0)==(c[e>>2]|0)){c[e>>2]=j;if(!j){c[17717]=c[17717]&~(1<<d);break}}else{if(h>>>0<(c[17720]|0)>>>0)za();d=h+16|0;if((c[d>>2]|0)==(k|0))c[d>>2]=j;else c[h+20>>2]=j;if(!j)break}f=c[17720]|0;if(j>>>0<f>>>0)za();c[j+24>>2]=h;d=k+16|0;e=c[d>>2]|0;do if(e|0)if(e>>>0<f>>>0)za();else{c[j+16>>2]=e;c[e+24>>2]=j;break}while(0);d=c[d+4>>2]|0;if(d|0)if(d>>>0<(c[17720]|0)>>>0)za();else{c[j+20>>2]=d;c[d+24>>2]=j;break}}}else{e=c[k+8>>2]|0;f=c[k+12>>2]|0;d=70904+(g<<1<<2)|0;if((e|0)!=(d|0)){if(e>>>0<i>>>0)za();if((c[e+12>>2]|0)!=(k|0))za()}if((f|0)==(e|0)){c[17716]=c[17716]&~(1<<g);break}if((f|0)!=(d|0)){if(f>>>0<i>>>0)za();d=f+8|0;if((c[d>>2]|0)==(k|0))h=d;else za()}else h=f+8|0;c[e+12>>2]=f;c[h>>2]=e}while(0);if(m>>>0<16){c[n>>2]=l|o&1|2;o=a+l+4|0;c[o>>2]=c[o>>2]|1;return a|0}else{l=a+b|0;c[n>>2]=o&1|b|2;c[l+4>>2]=m|3;o=l+m+4|0;c[o>>2]=c[o>>2]|1;Tq(l,m);return a|0}return 0}function Tq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;o=a+b|0;d=c[a+4>>2]|0;do if(!(d&1)){g=c[a>>2]|0;if(!(d&3))return;l=a+(0-g)|0;k=g+b|0;i=c[17720]|0;if(l>>>0<i>>>0)za();if((l|0)==(c[17721]|0)){a=o+4|0;d=c[a>>2]|0;if((d&3|0)!=3){r=l;f=k;break}c[17718]=k;c[a>>2]=d&-2;c[l+4>>2]=k|1;c[l+k>>2]=k;return}e=g>>>3;if(g>>>0<256){d=c[l+8>>2]|0;b=c[l+12>>2]|0;a=70904+(e<<1<<2)|0;if((d|0)!=(a|0)){if(d>>>0<i>>>0)za();if((c[d+12>>2]|0)!=(l|0))za()}if((b|0)==(d|0)){c[17716]=c[17716]&~(1<<e);r=l;f=k;break}if((b|0)!=(a|0)){if(b>>>0<i>>>0)za();a=b+8|0;if((c[a>>2]|0)==(l|0))h=a;else za()}else h=b+8|0;c[d+12>>2]=b;c[h>>2]=d;r=l;f=k;break}g=c[l+24>>2]|0;b=c[l+12>>2]|0;do if((b|0)==(l|0)){b=l+16|0;d=b+4|0;a=c[d>>2]|0;if(!a){a=c[b>>2]|0;if(!a){j=0;break}else d=b}while(1){b=a+20|0;e=c[b>>2]|0;if(e|0){a=e;d=b;continue}b=a+16|0;e=c[b>>2]|0;if(!e)break;else{a=e;d=b}}if(d>>>0<i>>>0)za();else{c[d>>2]=0;j=a;break}}else{e=c[l+8>>2]|0;if(e>>>0<i>>>0)za();a=e+12|0;if((c[a>>2]|0)!=(l|0))za();d=b+8|0;if((c[d>>2]|0)==(l|0)){c[a>>2]=b;c[d>>2]=e;j=b;break}else za()}while(0);if(g){a=c[l+28>>2]|0;d=71168+(a<<2)|0;if((l|0)==(c[d>>2]|0)){c[d>>2]=j;if(!j){c[17717]=c[17717]&~(1<<a);r=l;f=k;break}}else{if(g>>>0<(c[17720]|0)>>>0)za();a=g+16|0;if((c[a>>2]|0)==(l|0))c[a>>2]=j;else c[g+20>>2]=j;if(!j){r=l;f=k;break}}b=c[17720]|0;if(j>>>0<b>>>0)za();c[j+24>>2]=g;a=l+16|0;d=c[a>>2]|0;do if(d|0)if(d>>>0<b>>>0)za();else{c[j+16>>2]=d;c[d+24>>2]=j;break}while(0);a=c[a+4>>2]|0;if(a)if(a>>>0<(c[17720]|0)>>>0)za();else{c[j+20>>2]=a;c[a+24>>2]=j;r=l;f=k;break}else{r=l;f=k}}else{r=l;f=k}}else{r=a;f=b}while(0);h=c[17720]|0;if(o>>>0<h>>>0)za();a=o+4|0;d=c[a>>2]|0;if(!(d&2)){if((o|0)==(c[17722]|0)){q=(c[17719]|0)+f|0;c[17719]=q;c[17722]=r;c[r+4>>2]=q|1;if((r|0)!=(c[17721]|0))return;c[17721]=0;c[17718]=0;return}if((o|0)==(c[17721]|0)){q=(c[17718]|0)+f|0;c[17718]=q;c[17721]=r;c[r+4>>2]=q|1;c[r+q>>2]=q;return}f=(d&-8)+f|0;e=d>>>3;do if(d>>>0>=256){g=c[o+24>>2]|0;b=c[o+12>>2]|0;do if((b|0)==(o|0)){b=o+16|0;d=b+4|0;a=c[d>>2]|0;if(!a){a=c[b>>2]|0;if(!a){n=0;break}else d=b}while(1){b=a+20|0;e=c[b>>2]|0;if(e|0){a=e;d=b;continue}b=a+16|0;e=c[b>>2]|0;if(!e)break;else{a=e;d=b}}if(d>>>0<h>>>0)za();else{c[d>>2]=0;n=a;break}}else{e=c[o+8>>2]|0;if(e>>>0<h>>>0)za();a=e+12|0;if((c[a>>2]|0)!=(o|0))za();d=b+8|0;if((c[d>>2]|0)==(o|0)){c[a>>2]=b;c[d>>2]=e;n=b;break}else za()}while(0);if(g|0){a=c[o+28>>2]|0;d=71168+(a<<2)|0;if((o|0)==(c[d>>2]|0)){c[d>>2]=n;if(!n){c[17717]=c[17717]&~(1<<a);break}}else{if(g>>>0<(c[17720]|0)>>>0)za();a=g+16|0;if((c[a>>2]|0)==(o|0))c[a>>2]=n;else c[g+20>>2]=n;if(!n)break}b=c[17720]|0;if(n>>>0<b>>>0)za();c[n+24>>2]=g;a=o+16|0;d=c[a>>2]|0;do if(d|0)if(d>>>0<b>>>0)za();else{c[n+16>>2]=d;c[d+24>>2]=n;break}while(0);a=c[a+4>>2]|0;if(a|0)if(a>>>0<(c[17720]|0)>>>0)za();else{c[n+20>>2]=a;c[a+24>>2]=n;break}}}else{d=c[o+8>>2]|0;b=c[o+12>>2]|0;a=70904+(e<<1<<2)|0;if((d|0)!=(a|0)){if(d>>>0<h>>>0)za();if((c[d+12>>2]|0)!=(o|0))za()}if((b|0)==(d|0)){c[17716]=c[17716]&~(1<<e);break}if((b|0)!=(a|0)){if(b>>>0<h>>>0)za();a=b+8|0;if((c[a>>2]|0)==(o|0))m=a;else za()}else m=b+8|0;c[d+12>>2]=b;c[m>>2]=d}while(0);c[r+4>>2]=f|1;c[r+f>>2]=f;if((r|0)==(c[17721]|0)){c[17718]=f;return}}else{c[a>>2]=d&-2;c[r+4>>2]=f|1;c[r+f>>2]=f}a=f>>>3;if(f>>>0<256){b=70904+(a<<1<<2)|0;d=c[17716]|0;a=1<<a;if(d&a){a=b+8|0;d=c[a>>2]|0;if(d>>>0<(c[17720]|0)>>>0)za();else{p=d;q=a}}else{c[17716]=d|a;p=b;q=b+8|0}c[q>>2]=r;c[p+12>>2]=r;c[r+8>>2]=p;c[r+12>>2]=b;return}a=f>>>8;if(a)if(f>>>0>16777215)a=31;else{p=(a+1048320|0)>>>16&8;q=a<<p;o=(q+520192|0)>>>16&4;q=q<<o;a=(q+245760|0)>>>16&2;a=14-(o|p|a)+(q<<a>>>15)|0;a=f>>>(a+7|0)&1|a<<1}else a=0;e=71168+(a<<2)|0;c[r+28>>2]=a;c[r+20>>2]=0;c[r+16>>2]=0;d=c[17717]|0;b=1<<a;if(!(d&b)){c[17717]=d|b;c[e>>2]=r;c[r+24>>2]=e;c[r+12>>2]=r;c[r+8>>2]=r;return}d=f<<((a|0)==31?0:25-(a>>>1)|0);e=c[e>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(f|0)){a=127;break}b=e+16+(d>>>31<<2)|0;a=c[b>>2]|0;if(!a){a=124;break}else{d=d<<1;e=a}}if((a|0)==124){if(b>>>0<(c[17720]|0)>>>0)za();c[b>>2]=r;c[r+24>>2]=e;c[r+12>>2]=r;c[r+8>>2]=r;return}else if((a|0)==127){a=e+8|0;d=c[a>>2]|0;q=c[17720]|0;if(!(d>>>0>=q>>>0&e>>>0>=q>>>0))za();c[d+12>>2]=r;c[a>>2]=r;c[r+8>>2]=d;c[r+12>>2]=e;c[r+24>>2]=0;return}}function Uq(a,b){a=a|0;b=b|0;if(a>>>0<9){b=Oq(b)|0;return b|0}else{b=Vq(a,b)|0;return b|0}return 0}function Vq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;a=a>>>0<16?16:a;if(a+-1&a){d=16;while(1)if(d>>>0<a>>>0)d=d<<1;else{a=d;break}}if((-64-a|0)>>>0<=b>>>0){c[(zo()|0)>>2]=12;h=0;return h|0}g=b>>>0<11?16:b+11&-8;d=Oq(g+12+a|0)|0;if(!d){h=0;return h|0}f=d+-8|0;do if(d&a+-1){i=(d+a+-1&0-a)+-8|0;e=f;a=(i-e|0)>>>0>15?i:i+a|0;e=a-e|0;d=d+-4|0;i=c[d>>2]|0;b=(i&-8)-e|0;if(!(i&3)){c[a>>2]=(c[f>>2]|0)+e;c[a+4>>2]=b;break}else{i=a+4|0;c[i>>2]=b|c[i>>2]&1|2;b=a+b+4|0;c[b>>2]=c[b>>2]|1;c[d>>2]=e|c[d>>2]&1|2;c[i>>2]=c[i>>2]|1;Tq(f,e);break}}else a=f;while(0);d=a+4|0;b=c[d>>2]|0;if(b&3|0?(h=b&-8,h>>>0>(g+16|0)>>>0):0){i=h-g|0;h=a+g|0;c[d>>2]=g|b&1|2;c[h+4>>2]=i|3;g=h+i+4|0;c[g>>2]=c[g>>2]|1;Tq(h,i)}i=a+8|0;return i|0}function Wq(){}function Xq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=b-d-(c>>>0>a>>>0|0)>>>0;return (D=d,a-c>>>0|0)|0}function Yq(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=b+e|0;d=d&255;if((e|0)>=67){while(b&3){a[b>>0]=d;b=b+1|0}f=h&-4|0;g=f-64|0;i=d|d<<8|d<<16|d<<24;while((b|0)<=(g|0)){c[b>>2]=i;c[b+4>>2]=i;c[b+8>>2]=i;c[b+12>>2]=i;c[b+16>>2]=i;c[b+20>>2]=i;c[b+24>>2]=i;c[b+28>>2]=i;c[b+32>>2]=i;c[b+36>>2]=i;c[b+40>>2]=i;c[b+44>>2]=i;c[b+48>>2]=i;c[b+52>>2]=i;c[b+56>>2]=i;c[b+60>>2]=i;b=b+64|0}while((b|0)<(f|0)){c[b>>2]=i;b=b+4|0}}while((b|0)<(h|0)){a[b>>0]=d;b=b+1|0}return h-e|0}function Zq(a){a=a|0;return 0}function _q(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (D=b+d+(c>>>0<a>>>0|0)>>>0,c|0)|0}function $q(b){b=b|0;var c=0;c=a[n+(b&255)>>0]|0;if((c|0)<8)return c|0;c=a[n+(b>>8&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[n+(b>>16&255)>>0]|0;if((c|0)<8)return c+16|0;return (a[n+(b>>>24)>>0]|0)+24|0}function ar(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;l=a;j=b;k=j;h=d;n=e;i=n;if(!k){g=(f|0)!=0;if(!i){if(g){c[f>>2]=(l>>>0)%(h>>>0);c[f+4>>2]=0}n=0;f=(l>>>0)/(h>>>0)>>>0;return (D=n,f)|0}else{if(!g){n=0;f=0;return (D=n,f)|0}c[f>>2]=a|0;c[f+4>>2]=b&0;n=0;f=0;return (D=n,f)|0}}g=(i|0)==0;do if(h){if(!g){g=(V(i|0)|0)-(V(k|0)|0)|0;if(g>>>0<=31){m=g+1|0;i=31-g|0;b=g-31>>31;h=m;a=l>>>(m>>>0)&b|k<<i;b=k>>>(m>>>0)&b;g=0;i=l<<i;break}if(!f){n=0;f=0;return (D=n,f)|0}c[f>>2]=a|0;c[f+4>>2]=j|b&0;n=0;f=0;return (D=n,f)|0}g=h-1|0;if(g&h|0){i=(V(h|0)|0)+33-(V(k|0)|0)|0;p=64-i|0;m=32-i|0;j=m>>31;o=i-32|0;b=o>>31;h=i;a=m-1>>31&k>>>(o>>>0)|(k<<m|l>>>(i>>>0))&b;b=b&k>>>(i>>>0);g=l<<p&j;i=(k<<p|l>>>(o>>>0))&j|l<<m&i-33>>31;break}if(f|0){c[f>>2]=g&l;c[f+4>>2]=0}if((h|0)==1){o=j|b&0;p=a|0|0;return (D=o,p)|0}else{p=$q(h|0)|0;o=k>>>(p>>>0)|0;p=k<<32-p|l>>>(p>>>0)|0;return (D=o,p)|0}}else{if(g){if(f|0){c[f>>2]=(k>>>0)%(h>>>0);c[f+4>>2]=0}o=0;p=(k>>>0)/(h>>>0)>>>0;return (D=o,p)|0}if(!l){if(f|0){c[f>>2]=0;c[f+4>>2]=(k>>>0)%(i>>>0)}o=0;p=(k>>>0)/(i>>>0)>>>0;return (D=o,p)|0}g=i-1|0;if(!(g&i)){if(f|0){c[f>>2]=a|0;c[f+4>>2]=g&k|b&0}o=0;p=k>>>(($q(i|0)|0)>>>0);return (D=o,p)|0}g=(V(i|0)|0)-(V(k|0)|0)|0;if(g>>>0<=30){b=g+1|0;i=31-g|0;h=b;a=k<<i|l>>>(b>>>0);b=k>>>(b>>>0);g=0;i=l<<i;break}if(!f){o=0;p=0;return (D=o,p)|0}c[f>>2]=a|0;c[f+4>>2]=j|b&0;o=0;p=0;return (D=o,p)|0}while(0);if(!h){k=i;j=0;i=0}else{m=d|0|0;l=n|e&0;k=_q(m|0,l|0,-1,-1)|0;d=D;j=i;i=0;do{e=j;j=g>>>31|j<<1;g=i|g<<1;e=a<<1|e>>>31|0;n=a>>>31|b<<1|0;Xq(k|0,d|0,e|0,n|0)|0;p=D;o=p>>31|((p|0)<0?-1:0)<<1;i=o&1;a=Xq(e|0,n|0,o&m|0,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&l|0)|0;b=D;h=h-1|0}while((h|0)!=0);k=j;j=0}h=0;if(f|0){c[f>>2]=a;c[f+4>>2]=b}o=(g|0)>>>31|(k|h)<<1|(h<<1|g>>>31)&0|j;p=(g<<1|0>>>31)&-2|i;return (D=o,p)|0}function br(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=b>>31|((b|0)<0?-1:0)<<1;i=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;f=d>>31|((d|0)<0?-1:0)<<1;e=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;h=Xq(j^a|0,i^b|0,j|0,i|0)|0;g=D;a=f^j;b=e^i;return Xq((ar(h,g,Xq(f^c|0,e^d|0,f|0,e|0)|0,D,0)|0)^a|0,D^b|0,a|0,b|0)|0}function cr(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if((e|0)>=8192)return Sa(b|0,d|0,e|0)|0;h=b|0;g=b+e|0;if((b&3)==(d&3)){while(b&3){if(!e)return h|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}e=g&-4|0;f=e-64|0;while((b|0)<=(f|0)){c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];c[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];c[b+28>>2]=c[d+28>>2];c[b+32>>2]=c[d+32>>2];c[b+36>>2]=c[d+36>>2];c[b+40>>2]=c[d+40>>2];c[b+44>>2]=c[d+44>>2];c[b+48>>2]=c[d+48>>2];c[b+52>>2]=c[d+52>>2];c[b+56>>2]=c[d+56>>2];c[b+60>>2]=c[d+60>>2];b=b+64|0;d=d+64|0}while((b|0)<(e|0)){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}}else{e=g-4|0;while((b|0)<(e|0)){a[b>>0]=a[d>>0]|0;a[b+1>>0]=a[d+1>>0]|0;a[b+2>>0]=a[d+2>>0]|0;a[b+3>>0]=a[d+3>>0]|0;b=b+4|0;d=d+4|0}}while((b|0)<(g|0)){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0}return h|0}function dr(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if((c|0)<(b|0)&(b|0)<(c+d|0)){e=b;c=c+d|0;b=b+d|0;while((d|0)>0){b=b-1|0;c=c-1|0;d=d-1|0;a[b>>0]=a[c>>0]|0}b=e}else cr(b,c,d)|0;return b|0}function er(a){a=a|0;return (a&255)<<24|(a>>8&255)<<16|(a>>16&255)<<8|a>>>24|0}function fr(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){D=b>>c;return a>>>c|(b&(1<<c)-1)<<32-c}D=(b|0)<0?-1:0;return b>>c-32|0}function gr(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){D=b>>>c;return a>>>c|(b&(1<<c)-1)<<32-c}D=0;return b>>>c-32|0}function hr(a){a=a|0;return 0}function ir(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ar(a,b,c,d,0)|0}function jr(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;e=b&65535;c=S(e,f)|0;d=a>>>16;a=(c>>>16)+(S(e,d)|0)|0;e=b>>>16;b=S(e,f)|0;return (D=(a>>>16)+(S(e,d)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|c&65535|0)|0}function kr(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;c=jr(e,f)|0;a=D;return (D=(S(b,f)|0)+(S(d,e)|0)+a|a&0,c|0|0)|0}function lr(a){a=a|0;var b=0,d=0;d=a+15&-16|0;b=c[i>>2]|0;a=b+d|0;if((d|0)>0&(a|0)<(b|0)|(a|0)<0){_()|0;Ia(12);return -1}c[i>>2]=a;if((a|0)>(Z()|0)?(Y()|0)==0:0){Ia(12);c[i>>2]=b;return -1}return b|0}function mr(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){D=b<<c|(a&(1<<c)-1<<32-c)>>>32-c;return a<<c}D=a<<c-32;return 0}function nr(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=l;l=l+16|0;f=g|0;ar(a,b,d,e,f)|0;l=g;return (D=c[f+4>>2]|0,c[f>>2]|0)|0}function or(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+16|0;i=f|0;h=b>>31|((b|0)<0?-1:0)<<1;g=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;k=e>>31|((e|0)<0?-1:0)<<1;j=((e|0)<0?-1:0)>>31|((e|0)<0?-1:0)<<1;a=Xq(h^a|0,g^b|0,h|0,g|0)|0;b=D;ar(a,b,Xq(k^d|0,j^e|0,k|0,j|0)|0,D,i)|0;e=Xq(c[i>>2]^h|0,c[i+4>>2]^g|0,h|0,g|0)|0;d=D;l=f;return (D=d,e)|0}function pr(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return pb[a&63](b|0,c|0,d|0)|0}function qr(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;qb[a&15](b|0,c|0,d|0,e|0,f|0)}function rr(a,b){a=a|0;b=b|0;rb[a&7](b|0)}function sr(a,b,c){a=a|0;b=b|0;c=c|0;sb[a&7](b|0,c|0)}function tr(a,b){a=a|0;b=b|0;return tb[a&15](b|0)|0}function ur(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ub[a&7](b|0,c|0,d|0)}function vr(a){a=a|0;vb[a&3]()}function wr(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return wb[a&3](b|0,c|0,d|0,e|0)|0}function xr(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;xb[a&1](b|0,c|0,d|0,e|0,f|0,g|0)}function yr(a,b,c){a=a|0;b=b|0;c=c|0;return yb[a&7](b|0,c|0)|0}function zr(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;zb[a&1](b|0,c|0,d|0,e|0)}function Ar(a,b,c){a=a|0;b=b|0;c=c|0;aa(0);return 0}function Br(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;ba(1)}function Cr(a){a=a|0;ca(2)}function Dr(a,b){a=a|0;b=b|0;da(3)}function Er(a){a=a|0;ea(4);return 0}function Fr(a,b,c){a=a|0;b=b|0;c=c|0;fa(5)}function Gr(){ga(6)}function Hr(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ha(7);return 0}function Ir(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;ia(8)}function Jr(a,b){a=a|0;b=b|0;ja(9);return 0}function Kr(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ka(10)} // EMSCRIPTEN_END_FUNCS -var ub=[xx,ck,dk,ek,fk,ql,rl,sl,tl,vl,Ql,am,qm,Dm,Em,Fm,zr,Ar,Br,Cr,Er,Uh,Wr,uu,vu,yu,fv,Ue,Fv,vk,wk,Xk,Tl,em,um,Bu,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx];var vb=[yx,Kk,Ek,Hk,Ik,Ok,Sm,Pm,Tm,yx,yx,yx,yx,yx,yx,yx];var wb=[zx,Uk,Ol,_l,om,Hn,zu,Cu,iw,zx,zx,zx,zx,zx,zx,zx];var xb=[Ax,Tk,Nl,Zl,mm,nm,Cm,Vr];var yb=[Bx,Vk,pl,ul,Pl,$l,pm,yr,Dr,Zh,tu,Bx,Bx,Bx,Bx,Bx];var zb=[Cx,Nr,Sk,hs,Vs,jt,ru,Cx];var Ab=[Dx,pk,qk,Tt];var Bb=[Ex,Xr,Nq,es,nt,Ex,Ex,Ex];var Cb=[Fx,Mk];var Db=[Gx,ol,wl,xr,Fr,Oj,Jl,Gx];var Eb=[Hx,nh];return{_GNUNET_CRYPTO_rsa_signature_encode:ed,_GNUNET_CRYPTO_rsa_private_key_free:Yc,_GNUNET_CRYPTO_rsa_verify:pd,_bitshift64Shl:ix,_GNUNET_CRYPTO_hash_context_start:Dc,_bitshift64Lshr:cx,_TALER_setup_fresh_coin:su,_GNUNET_STRINGS_string_to_data:td,_GNUNET_CRYPTO_rsa_private_key_get_public:$c,_memset:Uw,_GNUNET_CRYPTO_eddsa_verify:yc,_TALER_amount_normalize:mu,_GNUNET_CRYPTO_hash_context_finish:Fc,_GNUNET_CRYPTO_symmetric_encrypt:ic,_TALER_WR_get_fraction:Sb,_GNUNET_CRYPTO_hash_context_read:Ec,_TALER_amount_cmp:lu,_GNUNET_CRYPTO_rsa_blind:fd,_TALER_WR_get_currency:Tb,_GNUNET_CRYPTO_random_block:Wc,_fflush:Rv,_GNUNET_CRYPTO_hash_create_random:Cc,_GNUNET_CRYPTO_rsa_unblind:od,_bitshift64Ashr:bx,_TALER_WRALL_get_amount:Qb,_sbrk:hx,_GNUNET_CRYPTO_eddsa_key_create:vc,_TALER_WRALL_eddsa_public_key_from_private:Mb,_llvm_bswap_i32:ax,___muldi3:gx,_GNUNET_CRYPTO_ecc_ecdh:zc,_memalign:Qw,_GNUNET_CRYPTO_rsa_private_key_decode:_c,_GNUNET_CRYPTO_symmetric_decrypt:lc,_GNUNET_CRYPTO_rsa_signature_free:md,___divdi3:Zw,_TALER_amount_ntoh:hu,_pthread_self:kx,_GNUNET_CRYPTO_ecdhe_key_create:sc,_TALER_amount_subtract:ou,___udivmoddi4:Yw,_GNUNET_CRYPTO_rsa_private_key_create:Xc,_i64Add:Ww,_GNUNET_CRYPTO_ecdhe_key_get_public:qc,_TALER_WRALL_purpose_create:Pb,_GNUNET_CRYPTO_ecdh_eddsa:Ac,_pthread_mutex_unlock:dx,_GNUNET_CRYPTO_rsa_public_key_free:bd,_GNUNET_CRYPTO_kdf:Mc,_GNUNET_CRYPTO_eddsa_sign:wc,_TALER_amount_hton:gu,_i64Subtract:Tw,_pthread_mutex_lock:Vw,_GNUNET_CRYPTO_rsa_private_key_encode:Zc,_GNUNET_CRYPTO_eddsa_key_get_public:oc,___udivdi3:ex,_TALER_amount_add:pu,___errno_location:xu,___muldsi3:fx,_TALER_WR_get_value:Rb,_TALER_WRALL_ecdhe_public_key_from_private:Ob,_free:Lw,_GNUNET_STRINGS_data_to_string_alloc:sd,_GNUNET_CRYPTO_hash_context_abort:Gc,_memmove:$w,_llvm_cttz_i32:Xw,_malloc:Kw,_memcpy:_w,_TALER_amount_get_zero:iu,_GNUNET_CRYPTO_hkdf:Kc,_GNUNET_CRYPTO_rsa_public_key_decode:dd,_GNUNET_CRYPTO_ecdsa_key_create:uc,_TALER_WRALL_ecdsa_public_key_from_private:Nb,_GNUNET_CRYPTO_rsa_public_key_encode:cd,___remdi3:lx,_GNUNET_CRYPTO_hash:Bc,_GNUNET_CRYPTO_rsa_signature_decode:nd,___uremdi3:jx,_GNUNET_util_cl_init:Yb,_GNUNET_CRYPTO_random_init:Rc,_gpg_err_init:At,_TALER_gcrypt_init:qu,runPostSets:Sw,stackAlloc:Fb,stackSave:Gb,stackRestore:Hb,establishStackSpace:Ib,setThrew:Jb,setTempRet0:Kb,getTempRet0:Lb,dynCall_iiii:mx,dynCall_viiiii:nx,dynCall_vi:ox,dynCall_vii:px,dynCall_ii:qx,dynCall_viii:rx,dynCall_v:sx,dynCall_iiiii:tx,dynCall_viiiiii:ux,dynCall_iii:vx,dynCall_viiii:wx}}) +var pb=[Ar,Yh,Zh,_h,$h,Gi,Hi,Ii,Ji,Li,Ti,_i,ej,hj,ij,jj,Bm,Cm,Dm,Em,Gm,Gg,Nm,wo,xo,Bo,Ap,Ke,Rp,gi,hi,ri,Ui,$i,fj,Do,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar,Ar];var qb=[Br,ki,fi,ei,di,mi,mj,nj,lj,Br,Br,Br,Br,Br,Br,Br];var rb=[Cr,pi,Ri,Yi,cj,Xj,sq,Cr];var sb=[Dr,oi,Qi,Xi,aj,bj,gj,Mm];var tb=[Er,qi,Fi,Ki,Si,Zi,dj,Am,Fm,Jg,vo,Er,Er,Er,Er,Er];var ub=[Fr,Jm,ni,$m,qn,zn,to,Fr];var vb=[Gr,ii,ji,eo];var wb=[Hr,Om,jm,Dn];var xb=[Ir,li];var yb=[Jr,Ei,Mi,zm,Hm,Mh,Pi,Jr];var zb=[Kr,og];return{_GNUNET_CRYPTO_rsa_signature_encode:$c,_GNUNET_CRYPTO_rsa_private_key_free:Tc,_GNUNET_CRYPTO_rsa_verify:kd,_bitshift64Shl:mr,_GNUNET_CRYPTO_hash_context_start:yc,_bitshift64Lshr:gr,_TALER_setup_fresh_coin:uo,_GNUNET_STRINGS_string_to_data:od,_GNUNET_CRYPTO_rsa_private_key_get_public:Wc,_memset:Yq,_GNUNET_CRYPTO_eddsa_verify:tc,_TALER_amount_normalize:po,_GNUNET_CRYPTO_hash_context_finish:Ac,_GNUNET_CRYPTO_symmetric_encrypt:dc,_TALER_WR_get_fraction:Nb,_GNUNET_CRYPTO_hash_context_read:zc,_TALER_amount_cmp:oo,_GNUNET_CRYPTO_rsa_blind:ad,_TALER_WR_get_currency:Ob,_GNUNET_CRYPTO_random_block:Rc,_fflush:$p,_GNUNET_CRYPTO_hash_create_random:xc,_GNUNET_CRYPTO_rsa_unblind:jd,_bitshift64Ashr:fr,_TALER_WRALL_get_amount:Lb,_sbrk:lr,_GNUNET_CRYPTO_eddsa_key_create:qc,_TALER_WRALL_eddsa_public_key_from_private:Hb,_llvm_bswap_i32:er,___muldi3:kr,_GNUNET_CRYPTO_ecc_ecdh:uc,_memalign:Uq,_GNUNET_CRYPTO_rsa_private_key_decode:Vc,_GNUNET_CRYPTO_symmetric_decrypt:gc,_GNUNET_CRYPTO_rsa_signature_free:hd,___divdi3:br,_TALER_amount_ntoh:mo,_llvm_cttz_i32:$q,_GNUNET_CRYPTO_ecdhe_key_create:nc,_TALER_amount_subtract:qo,___udivmoddi4:ar,_GNUNET_CRYPTO_rsa_private_key_create:Sc,_i64Add:_q,_GNUNET_CRYPTO_ecdhe_key_get_public:lc,_TALER_WRALL_purpose_create:Kb,_GNUNET_CRYPTO_ecdh_eddsa:vc,_pthread_mutex_unlock:hr,_GNUNET_CRYPTO_rsa_public_key_free:Yc,_GNUNET_CRYPTO_kdf:Hc,_emscripten_get_global_libc:Eo,_GNUNET_CRYPTO_eddsa_sign:rc,_TALER_amount_hton:lo,_i64Subtract:Xq,_pthread_mutex_lock:Zq,_GNUNET_CRYPTO_rsa_private_key_encode:Uc,_GNUNET_CRYPTO_eddsa_key_get_public:jc,___udivdi3:ir,_TALER_amount_add:ro,___errno_location:zo,___muldsi3:jr,_TALER_WR_get_value:Mb,_TALER_WRALL_ecdhe_public_key_from_private:Jb,_free:Pq,_GNUNET_STRINGS_data_to_string_alloc:nd,_GNUNET_CRYPTO_hash_context_abort:Bc,_memmove:dr,_malloc:Oq,_memcpy:cr,_TALER_amount_get_zero:no,_GNUNET_CRYPTO_hkdf:Fc,_GNUNET_CRYPTO_rsa_public_key_decode:_c,_GNUNET_CRYPTO_ecdsa_key_create:pc,_TALER_WRALL_ecdsa_public_key_from_private:Ib,_GNUNET_CRYPTO_rsa_public_key_encode:Zc,___remdi3:or,_GNUNET_CRYPTO_hash:wc,_GNUNET_CRYPTO_rsa_signature_decode:id,___uremdi3:nr,_GNUNET_util_cl_init:Tb,_GNUNET_CRYPTO_random_init:Mc,_gpg_err_init:On,_TALER_gcrypt_init:so,runPostSets:Wq,stackAlloc:Ab,stackSave:Bb,stackRestore:Cb,establishStackSpace:Db,setTempRet0:Fb,getTempRet0:Gb,setThrew:Eb,stackAlloc:Ab,stackSave:Bb,stackRestore:Cb,establishStackSpace:Db,setThrew:Eb,setTempRet0:Fb,getTempRet0:Gb,dynCall_iiii:pr,dynCall_viiiii:qr,dynCall_vi:rr,dynCall_vii:sr,dynCall_ii:tr,dynCall_viii:ur,dynCall_v:vr,dynCall_iiiii:wr,dynCall_viiiiii:xr,dynCall_iii:yr,dynCall_viiii:zr}}) // EMSCRIPTEN_END_ASM -(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var real__GNUNET_CRYPTO_rsa_signature_encode=asm["_GNUNET_CRYPTO_rsa_signature_encode"];asm["_GNUNET_CRYPTO_rsa_signature_encode"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_rsa_signature_encode.apply(null,arguments)});var real__GNUNET_CRYPTO_rsa_verify=asm["_GNUNET_CRYPTO_rsa_verify"];asm["_GNUNET_CRYPTO_rsa_verify"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_rsa_verify.apply(null,arguments)});var real__GNUNET_CRYPTO_hash_context_start=asm["_GNUNET_CRYPTO_hash_context_start"];asm["_GNUNET_CRYPTO_hash_context_start"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_hash_context_start.apply(null,arguments)});var real____uremdi3=asm["___uremdi3"];asm["___uremdi3"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real____uremdi3.apply(null,arguments)});var real__TALER_setup_fresh_coin=asm["_TALER_setup_fresh_coin"];asm["_TALER_setup_fresh_coin"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__TALER_setup_fresh_coin.apply(null,arguments)});var real__GNUNET_STRINGS_string_to_data=asm["_GNUNET_STRINGS_string_to_data"];asm["_GNUNET_STRINGS_string_to_data"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_STRINGS_string_to_data.apply(null,arguments)});var real__i64Subtract=asm["_i64Subtract"];asm["_i64Subtract"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__i64Subtract.apply(null,arguments)});var real__GNUNET_CRYPTO_rsa_private_key_get_public=asm["_GNUNET_CRYPTO_rsa_private_key_get_public"];asm["_GNUNET_CRYPTO_rsa_private_key_get_public"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_rsa_private_key_get_public.apply(null,arguments)});var real__TALER_WRALL_get_amount=asm["_TALER_WRALL_get_amount"];asm["_TALER_WRALL_get_amount"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__TALER_WRALL_get_amount.apply(null,arguments)});var real__GNUNET_CRYPTO_eddsa_verify=asm["_GNUNET_CRYPTO_eddsa_verify"];asm["_GNUNET_CRYPTO_eddsa_verify"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_eddsa_verify.apply(null,arguments)});var real__GNUNET_util_cl_init=asm["_GNUNET_util_cl_init"];asm["_GNUNET_util_cl_init"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_util_cl_init.apply(null,arguments)});var real__TALER_amount_normalize=asm["_TALER_amount_normalize"];asm["_TALER_amount_normalize"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__TALER_amount_normalize.apply(null,arguments)});var real__GNUNET_CRYPTO_hash_context_finish=asm["_GNUNET_CRYPTO_hash_context_finish"];asm["_GNUNET_CRYPTO_hash_context_finish"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_hash_context_finish.apply(null,arguments)});var real__bitshift64Lshr=asm["_bitshift64Lshr"];asm["_bitshift64Lshr"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__bitshift64Lshr.apply(null,arguments)});var real__TALER_WR_get_fraction=asm["_TALER_WR_get_fraction"];asm["_TALER_WR_get_fraction"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__TALER_WR_get_fraction.apply(null,arguments)});var real__GNUNET_CRYPTO_hash_context_read=asm["_GNUNET_CRYPTO_hash_context_read"];asm["_GNUNET_CRYPTO_hash_context_read"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_hash_context_read.apply(null,arguments)});var real__TALER_amount_cmp=asm["_TALER_amount_cmp"];asm["_TALER_amount_cmp"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__TALER_amount_cmp.apply(null,arguments)});var real__bitshift64Shl=asm["_bitshift64Shl"];asm["_bitshift64Shl"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__bitshift64Shl.apply(null,arguments)});var real__TALER_WR_get_currency=asm["_TALER_WR_get_currency"];asm["_TALER_WR_get_currency"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__TALER_WR_get_currency.apply(null,arguments)});var real__GNUNET_CRYPTO_rsa_private_key_free=asm["_GNUNET_CRYPTO_rsa_private_key_free"];asm["_GNUNET_CRYPTO_rsa_private_key_free"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_rsa_private_key_free.apply(null,arguments)});var real__fflush=asm["_fflush"];asm["_fflush"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__fflush.apply(null,arguments)});var real__GNUNET_CRYPTO_hash_create_random=asm["_GNUNET_CRYPTO_hash_create_random"];asm["_GNUNET_CRYPTO_hash_create_random"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_hash_create_random.apply(null,arguments)});var real__GNUNET_CRYPTO_rsa_unblind=asm["_GNUNET_CRYPTO_rsa_unblind"];asm["_GNUNET_CRYPTO_rsa_unblind"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_rsa_unblind.apply(null,arguments)});var real__bitshift64Ashr=asm["_bitshift64Ashr"];asm["_bitshift64Ashr"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__bitshift64Ashr.apply(null,arguments)});var real__GNUNET_CRYPTO_rsa_private_key_create=asm["_GNUNET_CRYPTO_rsa_private_key_create"];asm["_GNUNET_CRYPTO_rsa_private_key_create"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_rsa_private_key_create.apply(null,arguments)});var real__sbrk=asm["_sbrk"];asm["_sbrk"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__sbrk.apply(null,arguments)});var real__GNUNET_CRYPTO_eddsa_key_create=asm["_GNUNET_CRYPTO_eddsa_key_create"];asm["_GNUNET_CRYPTO_eddsa_key_create"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_eddsa_key_create.apply(null,arguments)});var real__TALER_WRALL_eddsa_public_key_from_private=asm["_TALER_WRALL_eddsa_public_key_from_private"];asm["_TALER_WRALL_eddsa_public_key_from_private"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__TALER_WRALL_eddsa_public_key_from_private.apply(null,arguments)});var real____errno_location=asm["___errno_location"];asm["___errno_location"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real____errno_location.apply(null,arguments)});var real____muldi3=asm["___muldi3"];asm["___muldi3"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real____muldi3.apply(null,arguments)});var real__GNUNET_CRYPTO_ecc_ecdh=asm["_GNUNET_CRYPTO_ecc_ecdh"];asm["_GNUNET_CRYPTO_ecc_ecdh"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_ecc_ecdh.apply(null,arguments)});var real__GNUNET_CRYPTO_rsa_public_key_decode=asm["_GNUNET_CRYPTO_rsa_public_key_decode"];asm["_GNUNET_CRYPTO_rsa_public_key_decode"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_rsa_public_key_decode.apply(null,arguments)});var real__GNUNET_CRYPTO_rsa_private_key_decode=asm["_GNUNET_CRYPTO_rsa_private_key_decode"];asm["_GNUNET_CRYPTO_rsa_private_key_decode"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_rsa_private_key_decode.apply(null,arguments)});var real__GNUNET_CRYPTO_symmetric_encrypt=asm["_GNUNET_CRYPTO_symmetric_encrypt"];asm["_GNUNET_CRYPTO_symmetric_encrypt"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_symmetric_encrypt.apply(null,arguments)});var real__GNUNET_CRYPTO_ecdhe_key_get_public=asm["_GNUNET_CRYPTO_ecdhe_key_get_public"];asm["_GNUNET_CRYPTO_ecdhe_key_get_public"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_ecdhe_key_get_public.apply(null,arguments)});var real____divdi3=asm["___divdi3"];asm["___divdi3"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real____divdi3.apply(null,arguments)});var real__TALER_amount_ntoh=asm["_TALER_amount_ntoh"];asm["_TALER_amount_ntoh"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__TALER_amount_ntoh.apply(null,arguments)});var real__llvm_cttz_i32=asm["_llvm_cttz_i32"];asm["_llvm_cttz_i32"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__llvm_cttz_i32.apply(null,arguments)});var real__GNUNET_CRYPTO_ecdhe_key_create=asm["_GNUNET_CRYPTO_ecdhe_key_create"];asm["_GNUNET_CRYPTO_ecdhe_key_create"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_ecdhe_key_create.apply(null,arguments)});var real__TALER_amount_subtract=asm["_TALER_amount_subtract"];asm["_TALER_amount_subtract"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__TALER_amount_subtract.apply(null,arguments)});var real____udivmoddi4=asm["___udivmoddi4"];asm["___udivmoddi4"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real____udivmoddi4.apply(null,arguments)});var real__GNUNET_CRYPTO_random_block=asm["_GNUNET_CRYPTO_random_block"];asm["_GNUNET_CRYPTO_random_block"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_random_block.apply(null,arguments)});var real__i64Add=asm["_i64Add"];asm["_i64Add"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__i64Add.apply(null,arguments)});var real__GNUNET_CRYPTO_rsa_signature_free=asm["_GNUNET_CRYPTO_rsa_signature_free"];asm["_GNUNET_CRYPTO_rsa_signature_free"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_rsa_signature_free.apply(null,arguments)});var real__pthread_self=asm["_pthread_self"];asm["_pthread_self"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__pthread_self.apply(null,arguments)});var real__GNUNET_CRYPTO_ecdh_eddsa=asm["_GNUNET_CRYPTO_ecdh_eddsa"];asm["_GNUNET_CRYPTO_ecdh_eddsa"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_ecdh_eddsa.apply(null,arguments)});var real__pthread_mutex_unlock=asm["_pthread_mutex_unlock"];asm["_pthread_mutex_unlock"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__pthread_mutex_unlock.apply(null,arguments)});var real__TALER_WRALL_purpose_create=asm["_TALER_WRALL_purpose_create"];asm["_TALER_WRALL_purpose_create"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__TALER_WRALL_purpose_create.apply(null,arguments)});var real__gpg_err_init=asm["_gpg_err_init"];asm["_gpg_err_init"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__gpg_err_init.apply(null,arguments)});var real__GNUNET_CRYPTO_kdf=asm["_GNUNET_CRYPTO_kdf"];asm["_GNUNET_CRYPTO_kdf"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_kdf.apply(null,arguments)});var real__GNUNET_CRYPTO_eddsa_sign=asm["_GNUNET_CRYPTO_eddsa_sign"];asm["_GNUNET_CRYPTO_eddsa_sign"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_eddsa_sign.apply(null,arguments)});var real__TALER_amount_hton=asm["_TALER_amount_hton"];asm["_TALER_amount_hton"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__TALER_amount_hton.apply(null,arguments)});var real__GNUNET_CRYPTO_rsa_public_key_free=asm["_GNUNET_CRYPTO_rsa_public_key_free"];asm["_GNUNET_CRYPTO_rsa_public_key_free"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_rsa_public_key_free.apply(null,arguments)});var real__GNUNET_CRYPTO_rsa_private_key_encode=asm["_GNUNET_CRYPTO_rsa_private_key_encode"];asm["_GNUNET_CRYPTO_rsa_private_key_encode"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_rsa_private_key_encode.apply(null,arguments)});var real__GNUNET_CRYPTO_eddsa_key_get_public=asm["_GNUNET_CRYPTO_eddsa_key_get_public"];asm["_GNUNET_CRYPTO_eddsa_key_get_public"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_eddsa_key_get_public.apply(null,arguments)});var real____udivdi3=asm["___udivdi3"];asm["___udivdi3"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real____udivdi3.apply(null,arguments)});var real__llvm_bswap_i32=asm["_llvm_bswap_i32"];asm["_llvm_bswap_i32"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__llvm_bswap_i32.apply(null,arguments)});var real____muldsi3=asm["___muldsi3"];asm["___muldsi3"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real____muldsi3.apply(null,arguments)});var real__GNUNET_CRYPTO_rsa_blind=asm["_GNUNET_CRYPTO_rsa_blind"];asm["_GNUNET_CRYPTO_rsa_blind"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_rsa_blind.apply(null,arguments)});var real__TALER_amount_add=asm["_TALER_amount_add"];asm["_TALER_amount_add"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__TALER_amount_add.apply(null,arguments)});var real__free=asm["_free"];asm["_free"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__free.apply(null,arguments)});var real__TALER_gcrypt_init=asm["_TALER_gcrypt_init"];asm["_TALER_gcrypt_init"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__TALER_gcrypt_init.apply(null,arguments)});var real__GNUNET_STRINGS_data_to_string_alloc=asm["_GNUNET_STRINGS_data_to_string_alloc"];asm["_GNUNET_STRINGS_data_to_string_alloc"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_STRINGS_data_to_string_alloc.apply(null,arguments)});var real__GNUNET_CRYPTO_hash_context_abort=asm["_GNUNET_CRYPTO_hash_context_abort"];asm["_GNUNET_CRYPTO_hash_context_abort"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_hash_context_abort.apply(null,arguments)});var real__GNUNET_CRYPTO_symmetric_decrypt=asm["_GNUNET_CRYPTO_symmetric_decrypt"];asm["_GNUNET_CRYPTO_symmetric_decrypt"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_symmetric_decrypt.apply(null,arguments)});var real__GNUNET_CRYPTO_random_init=asm["_GNUNET_CRYPTO_random_init"];asm["_GNUNET_CRYPTO_random_init"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_random_init.apply(null,arguments)});var real__TALER_amount_get_zero=asm["_TALER_amount_get_zero"];asm["_TALER_amount_get_zero"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__TALER_amount_get_zero.apply(null,arguments)});var real__malloc=asm["_malloc"];asm["_malloc"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__malloc.apply(null,arguments)});var real__pthread_mutex_lock=asm["_pthread_mutex_lock"];asm["_pthread_mutex_lock"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__pthread_mutex_lock.apply(null,arguments)});var real__GNUNET_CRYPTO_hkdf=asm["_GNUNET_CRYPTO_hkdf"];asm["_GNUNET_CRYPTO_hkdf"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_hkdf.apply(null,arguments)});var real__memalign=asm["_memalign"];asm["_memalign"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__memalign.apply(null,arguments)});var real__GNUNET_CRYPTO_ecdsa_key_create=asm["_GNUNET_CRYPTO_ecdsa_key_create"];asm["_GNUNET_CRYPTO_ecdsa_key_create"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_ecdsa_key_create.apply(null,arguments)});var real__TALER_WRALL_ecdsa_public_key_from_private=asm["_TALER_WRALL_ecdsa_public_key_from_private"];asm["_TALER_WRALL_ecdsa_public_key_from_private"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__TALER_WRALL_ecdsa_public_key_from_private.apply(null,arguments)});var real__memmove=asm["_memmove"];asm["_memmove"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__memmove.apply(null,arguments)});var real__GNUNET_CRYPTO_rsa_public_key_encode=asm["_GNUNET_CRYPTO_rsa_public_key_encode"];asm["_GNUNET_CRYPTO_rsa_public_key_encode"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_rsa_public_key_encode.apply(null,arguments)});var real____remdi3=asm["___remdi3"];asm["___remdi3"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real____remdi3.apply(null,arguments)});var real__GNUNET_CRYPTO_hash=asm["_GNUNET_CRYPTO_hash"];asm["_GNUNET_CRYPTO_hash"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_hash.apply(null,arguments)});var real__TALER_WR_get_value=asm["_TALER_WR_get_value"];asm["_TALER_WR_get_value"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__TALER_WR_get_value.apply(null,arguments)});var real__GNUNET_CRYPTO_rsa_signature_decode=asm["_GNUNET_CRYPTO_rsa_signature_decode"];asm["_GNUNET_CRYPTO_rsa_signature_decode"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_rsa_signature_decode.apply(null,arguments)});var real__TALER_WRALL_ecdhe_public_key_from_private=asm["_TALER_WRALL_ecdhe_public_key_from_private"];asm["_TALER_WRALL_ecdhe_public_key_from_private"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__TALER_WRALL_ecdhe_public_key_from_private.apply(null,arguments)});var _GNUNET_CRYPTO_rsa_signature_encode=Module["_GNUNET_CRYPTO_rsa_signature_encode"]=asm["_GNUNET_CRYPTO_rsa_signature_encode"];var _GNUNET_CRYPTO_rsa_verify=Module["_GNUNET_CRYPTO_rsa_verify"]=asm["_GNUNET_CRYPTO_rsa_verify"];var _GNUNET_CRYPTO_hash_context_start=Module["_GNUNET_CRYPTO_hash_context_start"]=asm["_GNUNET_CRYPTO_hash_context_start"];var ___uremdi3=Module["___uremdi3"]=asm["___uremdi3"];var _TALER_setup_fresh_coin=Module["_TALER_setup_fresh_coin"]=asm["_TALER_setup_fresh_coin"];var _GNUNET_STRINGS_string_to_data=Module["_GNUNET_STRINGS_string_to_data"]=asm["_GNUNET_STRINGS_string_to_data"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var _GNUNET_CRYPTO_rsa_private_key_get_public=Module["_GNUNET_CRYPTO_rsa_private_key_get_public"]=asm["_GNUNET_CRYPTO_rsa_private_key_get_public"];var _TALER_WRALL_get_amount=Module["_TALER_WRALL_get_amount"]=asm["_TALER_WRALL_get_amount"];var _GNUNET_CRYPTO_eddsa_verify=Module["_GNUNET_CRYPTO_eddsa_verify"]=asm["_GNUNET_CRYPTO_eddsa_verify"];var _GNUNET_util_cl_init=Module["_GNUNET_util_cl_init"]=asm["_GNUNET_util_cl_init"];var _TALER_amount_normalize=Module["_TALER_amount_normalize"]=asm["_TALER_amount_normalize"];var _GNUNET_CRYPTO_hash_context_finish=Module["_GNUNET_CRYPTO_hash_context_finish"]=asm["_GNUNET_CRYPTO_hash_context_finish"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _TALER_WR_get_fraction=Module["_TALER_WR_get_fraction"]=asm["_TALER_WR_get_fraction"];var _GNUNET_CRYPTO_hash_context_read=Module["_GNUNET_CRYPTO_hash_context_read"]=asm["_GNUNET_CRYPTO_hash_context_read"];var _TALER_amount_cmp=Module["_TALER_amount_cmp"]=asm["_TALER_amount_cmp"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var _TALER_WR_get_currency=Module["_TALER_WR_get_currency"]=asm["_TALER_WR_get_currency"];var _GNUNET_CRYPTO_rsa_private_key_free=Module["_GNUNET_CRYPTO_rsa_private_key_free"]=asm["_GNUNET_CRYPTO_rsa_private_key_free"];var _fflush=Module["_fflush"]=asm["_fflush"];var _GNUNET_CRYPTO_hash_create_random=Module["_GNUNET_CRYPTO_hash_create_random"]=asm["_GNUNET_CRYPTO_hash_create_random"];var _GNUNET_CRYPTO_rsa_unblind=Module["_GNUNET_CRYPTO_rsa_unblind"]=asm["_GNUNET_CRYPTO_rsa_unblind"];var _bitshift64Ashr=Module["_bitshift64Ashr"]=asm["_bitshift64Ashr"];var _memset=Module["_memset"]=asm["_memset"];var _GNUNET_CRYPTO_rsa_private_key_create=Module["_GNUNET_CRYPTO_rsa_private_key_create"]=asm["_GNUNET_CRYPTO_rsa_private_key_create"];var _sbrk=Module["_sbrk"]=asm["_sbrk"];var _GNUNET_CRYPTO_eddsa_key_create=Module["_GNUNET_CRYPTO_eddsa_key_create"]=asm["_GNUNET_CRYPTO_eddsa_key_create"];var _TALER_WRALL_eddsa_public_key_from_private=Module["_TALER_WRALL_eddsa_public_key_from_private"]=asm["_TALER_WRALL_eddsa_public_key_from_private"];var ___errno_location=Module["___errno_location"]=asm["___errno_location"];var ___muldi3=Module["___muldi3"]=asm["___muldi3"];var _GNUNET_CRYPTO_ecc_ecdh=Module["_GNUNET_CRYPTO_ecc_ecdh"]=asm["_GNUNET_CRYPTO_ecc_ecdh"];var _GNUNET_CRYPTO_rsa_public_key_decode=Module["_GNUNET_CRYPTO_rsa_public_key_decode"]=asm["_GNUNET_CRYPTO_rsa_public_key_decode"];var _GNUNET_CRYPTO_rsa_private_key_decode=Module["_GNUNET_CRYPTO_rsa_private_key_decode"]=asm["_GNUNET_CRYPTO_rsa_private_key_decode"];var _GNUNET_CRYPTO_symmetric_encrypt=Module["_GNUNET_CRYPTO_symmetric_encrypt"]=asm["_GNUNET_CRYPTO_symmetric_encrypt"];var _GNUNET_CRYPTO_ecdhe_key_get_public=Module["_GNUNET_CRYPTO_ecdhe_key_get_public"]=asm["_GNUNET_CRYPTO_ecdhe_key_get_public"];var ___divdi3=Module["___divdi3"]=asm["___divdi3"];var _TALER_amount_ntoh=Module["_TALER_amount_ntoh"]=asm["_TALER_amount_ntoh"];var _llvm_cttz_i32=Module["_llvm_cttz_i32"]=asm["_llvm_cttz_i32"];var _GNUNET_CRYPTO_ecdhe_key_create=Module["_GNUNET_CRYPTO_ecdhe_key_create"]=asm["_GNUNET_CRYPTO_ecdhe_key_create"];var _TALER_amount_subtract=Module["_TALER_amount_subtract"]=asm["_TALER_amount_subtract"];var ___udivmoddi4=Module["___udivmoddi4"]=asm["___udivmoddi4"];var _GNUNET_CRYPTO_random_block=Module["_GNUNET_CRYPTO_random_block"]=asm["_GNUNET_CRYPTO_random_block"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _GNUNET_CRYPTO_rsa_signature_free=Module["_GNUNET_CRYPTO_rsa_signature_free"]=asm["_GNUNET_CRYPTO_rsa_signature_free"];var _pthread_self=Module["_pthread_self"]=asm["_pthread_self"];var _GNUNET_CRYPTO_ecdh_eddsa=Module["_GNUNET_CRYPTO_ecdh_eddsa"]=asm["_GNUNET_CRYPTO_ecdh_eddsa"];var _pthread_mutex_unlock=Module["_pthread_mutex_unlock"]=asm["_pthread_mutex_unlock"];var _TALER_WRALL_purpose_create=Module["_TALER_WRALL_purpose_create"]=asm["_TALER_WRALL_purpose_create"];var _gpg_err_init=Module["_gpg_err_init"]=asm["_gpg_err_init"];var _GNUNET_CRYPTO_kdf=Module["_GNUNET_CRYPTO_kdf"]=asm["_GNUNET_CRYPTO_kdf"];var _GNUNET_CRYPTO_eddsa_sign=Module["_GNUNET_CRYPTO_eddsa_sign"]=asm["_GNUNET_CRYPTO_eddsa_sign"];var _TALER_amount_hton=Module["_TALER_amount_hton"]=asm["_TALER_amount_hton"];var _GNUNET_CRYPTO_rsa_public_key_free=Module["_GNUNET_CRYPTO_rsa_public_key_free"]=asm["_GNUNET_CRYPTO_rsa_public_key_free"];var _GNUNET_CRYPTO_rsa_private_key_encode=Module["_GNUNET_CRYPTO_rsa_private_key_encode"]=asm["_GNUNET_CRYPTO_rsa_private_key_encode"];var _GNUNET_CRYPTO_eddsa_key_get_public=Module["_GNUNET_CRYPTO_eddsa_key_get_public"]=asm["_GNUNET_CRYPTO_eddsa_key_get_public"];var ___udivdi3=Module["___udivdi3"]=asm["___udivdi3"];var _llvm_bswap_i32=Module["_llvm_bswap_i32"]=asm["_llvm_bswap_i32"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var ___muldsi3=Module["___muldsi3"]=asm["___muldsi3"];var _GNUNET_CRYPTO_rsa_blind=Module["_GNUNET_CRYPTO_rsa_blind"]=asm["_GNUNET_CRYPTO_rsa_blind"];var _TALER_amount_add=Module["_TALER_amount_add"]=asm["_TALER_amount_add"];var _free=Module["_free"]=asm["_free"];var _TALER_gcrypt_init=Module["_TALER_gcrypt_init"]=asm["_TALER_gcrypt_init"];var _GNUNET_STRINGS_data_to_string_alloc=Module["_GNUNET_STRINGS_data_to_string_alloc"]=asm["_GNUNET_STRINGS_data_to_string_alloc"];var _GNUNET_CRYPTO_hash_context_abort=Module["_GNUNET_CRYPTO_hash_context_abort"]=asm["_GNUNET_CRYPTO_hash_context_abort"];var _GNUNET_CRYPTO_symmetric_decrypt=Module["_GNUNET_CRYPTO_symmetric_decrypt"]=asm["_GNUNET_CRYPTO_symmetric_decrypt"];var _GNUNET_CRYPTO_random_init=Module["_GNUNET_CRYPTO_random_init"]=asm["_GNUNET_CRYPTO_random_init"];var _TALER_amount_get_zero=Module["_TALER_amount_get_zero"]=asm["_TALER_amount_get_zero"];var _malloc=Module["_malloc"]=asm["_malloc"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _pthread_mutex_lock=Module["_pthread_mutex_lock"]=asm["_pthread_mutex_lock"];var _GNUNET_CRYPTO_hkdf=Module["_GNUNET_CRYPTO_hkdf"]=asm["_GNUNET_CRYPTO_hkdf"];var _memalign=Module["_memalign"]=asm["_memalign"];var _GNUNET_CRYPTO_ecdsa_key_create=Module["_GNUNET_CRYPTO_ecdsa_key_create"]=asm["_GNUNET_CRYPTO_ecdsa_key_create"];var _TALER_WRALL_ecdsa_public_key_from_private=Module["_TALER_WRALL_ecdsa_public_key_from_private"]=asm["_TALER_WRALL_ecdsa_public_key_from_private"];var _memmove=Module["_memmove"]=asm["_memmove"];var _GNUNET_CRYPTO_rsa_public_key_encode=Module["_GNUNET_CRYPTO_rsa_public_key_encode"]=asm["_GNUNET_CRYPTO_rsa_public_key_encode"];var ___remdi3=Module["___remdi3"]=asm["___remdi3"];var _GNUNET_CRYPTO_hash=Module["_GNUNET_CRYPTO_hash"]=asm["_GNUNET_CRYPTO_hash"];var _TALER_WR_get_value=Module["_TALER_WR_get_value"]=asm["_TALER_WR_get_value"];var _GNUNET_CRYPTO_rsa_signature_decode=Module["_GNUNET_CRYPTO_rsa_signature_decode"]=asm["_GNUNET_CRYPTO_rsa_signature_decode"];var _TALER_WRALL_ecdhe_public_key_from_private=Module["_TALER_WRALL_ecdhe_public_key_from_private"]=asm["_TALER_WRALL_ecdhe_public_key_from_private"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_viiiii=Module["dynCall_viiiii"]=asm["dynCall_viiiii"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_vii=Module["dynCall_vii"]=asm["dynCall_vii"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_viii=Module["dynCall_viii"]=asm["dynCall_viii"];var dynCall_v=Module["dynCall_v"]=asm["dynCall_v"];var dynCall_iiiii=Module["dynCall_iiiii"]=asm["dynCall_iiiii"];var dynCall_viiiiii=Module["dynCall_viiiiii"]=asm["dynCall_viiiiii"];var dynCall_iii=Module["dynCall_iii"]=asm["dynCall_iii"];var dynCall_viiii=Module["dynCall_viiii"]=asm["dynCall_viiii"];Runtime.stackAlloc=asm["stackAlloc"];Runtime.stackSave=asm["stackSave"];Runtime.stackRestore=asm["stackRestore"];Runtime.establishStackSpace=asm["establishStackSpace"];Runtime.setTempRet0=asm["setTempRet0"];Runtime.getTempRet0=asm["getTempRet0"];function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=Module.callMain=function callMain(args){assert(runDependencies==0,"cannot call main when async dependencies remain! (listen on __ATMAIN__)");assert(__ATPRERUN__.length==0,"cannot call main when preRun functions remain to be called");args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;i<argc-1;i=i+1){argv.push(allocate(intArrayFromString(args[i]),"i8",ALLOC_NORMAL));pad()}argv.push(0);argv=allocate(argv,"i32",ALLOC_NORMAL);try{var ret=Module["_main"](argc,argv,0);exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e=="SimulateInfiniteLoop"){Module["noExitRuntime"]=true;return}else{if(e&&typeof e==="object"&&e.stack)Module.printErr("exception thrown: "+[e,e.stack]);throw e}}finally{calledMain=true}};function run(args){args=args||Module["arguments"];if(preloadStartTime===null)preloadStartTime=Date.now();if(runDependencies>0){Module.printErr("run() called, but dependencies remain, so not running");return}writeStackCookie();preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(ENVIRONMENT_IS_WEB&&preloadStartTime!==null){Module.printErr("pre-main prep time: "+(Date.now()-preloadStartTime)+" ms")}if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}checkStackCookie()}Module["run"]=Module.run=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]){Module.printErr("exit("+status+") implicitly called by end of main(), but noExitRuntime, so not exiting the runtime (you can use emscripten_force_exit, if you want to force a true shutdown)");return}if(Module["noExitRuntime"]){Module.printErr("exit("+status+") called, but noExitRuntime, so halting execution but not exiting the runtime or preventing further async execution (you can use emscripten_force_exit, if you want to force a true shutdown)")}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["exit"](status)}else if(ENVIRONMENT_IS_SHELL&&typeof quit==="function"){quit(status)}throw new ExitStatus(status)}Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;var extra="";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators){abortDecorators.forEach((function(decorator){output=decorator(output,what)}))}throw output}Module["abort"]=Module.abort=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}run() +(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var real__bitshift64Lshr=asm["_bitshift64Lshr"];asm["_bitshift64Lshr"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__bitshift64Lshr.apply(null,arguments)});var real__bitshift64Ashr=asm["_bitshift64Ashr"];asm["_bitshift64Ashr"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__bitshift64Ashr.apply(null,arguments)});var real__sbrk=asm["_sbrk"];asm["_sbrk"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__sbrk.apply(null,arguments)});var real__GNUNET_CRYPTO_eddsa_key_create=asm["_GNUNET_CRYPTO_eddsa_key_create"];asm["_GNUNET_CRYPTO_eddsa_key_create"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_eddsa_key_create.apply(null,arguments)});var real__GNUNET_CRYPTO_rsa_private_key_decode=asm["_GNUNET_CRYPTO_rsa_private_key_decode"];asm["_GNUNET_CRYPTO_rsa_private_key_decode"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_rsa_private_key_decode.apply(null,arguments)});var real____udivmoddi4=asm["___udivmoddi4"];asm["___udivmoddi4"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real____udivmoddi4.apply(null,arguments)});var real__GNUNET_CRYPTO_ecdh_eddsa=asm["_GNUNET_CRYPTO_ecdh_eddsa"];asm["_GNUNET_CRYPTO_ecdh_eddsa"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_ecdh_eddsa.apply(null,arguments)});var real__emscripten_get_global_libc=asm["_emscripten_get_global_libc"];asm["_emscripten_get_global_libc"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__emscripten_get_global_libc.apply(null,arguments)});var real__TALER_amount_hton=asm["_TALER_amount_hton"];asm["_TALER_amount_hton"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__TALER_amount_hton.apply(null,arguments)});var real_stackSave=asm["stackSave"];asm["stackSave"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real_stackSave.apply(null,arguments)});var real__gpg_err_init=asm["_gpg_err_init"];asm["_gpg_err_init"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__gpg_err_init.apply(null,arguments)});var real__free=asm["_free"];asm["_free"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__free.apply(null,arguments)});var real__memalign=asm["_memalign"];asm["_memalign"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__memalign.apply(null,arguments)});var real__GNUNET_CRYPTO_ecdsa_key_create=asm["_GNUNET_CRYPTO_ecdsa_key_create"];asm["_GNUNET_CRYPTO_ecdsa_key_create"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_ecdsa_key_create.apply(null,arguments)});var real__GNUNET_CRYPTO_hash_context_start=asm["_GNUNET_CRYPTO_hash_context_start"];asm["_GNUNET_CRYPTO_hash_context_start"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_hash_context_start.apply(null,arguments)});var real__GNUNET_CRYPTO_rsa_private_key_get_public=asm["_GNUNET_CRYPTO_rsa_private_key_get_public"];asm["_GNUNET_CRYPTO_rsa_private_key_get_public"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_rsa_private_key_get_public.apply(null,arguments)});var real__GNUNET_CRYPTO_eddsa_verify=asm["_GNUNET_CRYPTO_eddsa_verify"];asm["_GNUNET_CRYPTO_eddsa_verify"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_eddsa_verify.apply(null,arguments)});var real_setThrew=asm["setThrew"];asm["setThrew"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real_setThrew.apply(null,arguments)});var real__GNUNET_CRYPTO_symmetric_encrypt=asm["_GNUNET_CRYPTO_symmetric_encrypt"];asm["_GNUNET_CRYPTO_symmetric_encrypt"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_symmetric_encrypt.apply(null,arguments)});var real__TALER_WR_get_fraction=asm["_TALER_WR_get_fraction"];asm["_TALER_WR_get_fraction"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__TALER_WR_get_fraction.apply(null,arguments)});var real__TALER_amount_cmp=asm["_TALER_amount_cmp"];asm["_TALER_amount_cmp"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__TALER_amount_cmp.apply(null,arguments)});var real__llvm_cttz_i32=asm["_llvm_cttz_i32"];asm["_llvm_cttz_i32"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__llvm_cttz_i32.apply(null,arguments)});var real_stackAlloc=asm["stackAlloc"];asm["stackAlloc"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real_stackAlloc.apply(null,arguments)});var real__GNUNET_CRYPTO_kdf=asm["_GNUNET_CRYPTO_kdf"];asm["_GNUNET_CRYPTO_kdf"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_kdf.apply(null,arguments)});var real____divdi3=asm["___divdi3"];asm["___divdi3"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real____divdi3.apply(null,arguments)});var real__TALER_amount_ntoh=asm["_TALER_amount_ntoh"];asm["_TALER_amount_ntoh"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__TALER_amount_ntoh.apply(null,arguments)});var real_getTempRet0=asm["getTempRet0"];asm["getTempRet0"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real_getTempRet0.apply(null,arguments)});var real__GNUNET_CRYPTO_rsa_public_key_free=asm["_GNUNET_CRYPTO_rsa_public_key_free"];asm["_GNUNET_CRYPTO_rsa_public_key_free"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_rsa_public_key_free.apply(null,arguments)});var real__GNUNET_CRYPTO_hkdf=asm["_GNUNET_CRYPTO_hkdf"];asm["_GNUNET_CRYPTO_hkdf"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_hkdf.apply(null,arguments)});var real__GNUNET_CRYPTO_eddsa_key_get_public=asm["_GNUNET_CRYPTO_eddsa_key_get_public"];asm["_GNUNET_CRYPTO_eddsa_key_get_public"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_eddsa_key_get_public.apply(null,arguments)});var real__llvm_bswap_i32=asm["_llvm_bswap_i32"];asm["_llvm_bswap_i32"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__llvm_bswap_i32.apply(null,arguments)});var real__GNUNET_CRYPTO_rsa_private_key_create=asm["_GNUNET_CRYPTO_rsa_private_key_create"];asm["_GNUNET_CRYPTO_rsa_private_key_create"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_rsa_private_key_create.apply(null,arguments)});var real__TALER_gcrypt_init=asm["_TALER_gcrypt_init"];asm["_TALER_gcrypt_init"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__TALER_gcrypt_init.apply(null,arguments)});var real_establishStackSpace=asm["establishStackSpace"];asm["establishStackSpace"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real_establishStackSpace.apply(null,arguments)});var real__pthread_mutex_lock=asm["_pthread_mutex_lock"];asm["_pthread_mutex_lock"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__pthread_mutex_lock.apply(null,arguments)});var real__GNUNET_CRYPTO_rsa_public_key_decode=asm["_GNUNET_CRYPTO_rsa_public_key_decode"];asm["_GNUNET_CRYPTO_rsa_public_key_decode"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_rsa_public_key_decode.apply(null,arguments)});var real__TALER_WRALL_ecdsa_public_key_from_private=asm["_TALER_WRALL_ecdsa_public_key_from_private"];asm["_TALER_WRALL_ecdsa_public_key_from_private"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__TALER_WRALL_ecdsa_public_key_from_private.apply(null,arguments)});var real__GNUNET_CRYPTO_rsa_signature_encode=asm["_GNUNET_CRYPTO_rsa_signature_encode"];asm["_GNUNET_CRYPTO_rsa_signature_encode"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_rsa_signature_encode.apply(null,arguments)});var real__GNUNET_CRYPTO_rsa_verify=asm["_GNUNET_CRYPTO_rsa_verify"];asm["_GNUNET_CRYPTO_rsa_verify"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_rsa_verify.apply(null,arguments)});var real__GNUNET_STRINGS_string_to_data=asm["_GNUNET_STRINGS_string_to_data"];asm["_GNUNET_STRINGS_string_to_data"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_STRINGS_string_to_data.apply(null,arguments)});var real__GNUNET_CRYPTO_hash_context_finish=asm["_GNUNET_CRYPTO_hash_context_finish"];asm["_GNUNET_CRYPTO_hash_context_finish"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_hash_context_finish.apply(null,arguments)});var real__GNUNET_CRYPTO_rsa_unblind=asm["_GNUNET_CRYPTO_rsa_unblind"];asm["_GNUNET_CRYPTO_rsa_unblind"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_rsa_unblind.apply(null,arguments)});var real__TALER_WR_get_currency=asm["_TALER_WR_get_currency"];asm["_TALER_WR_get_currency"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__TALER_WR_get_currency.apply(null,arguments)});var real__GNUNET_CRYPTO_random_block=asm["_GNUNET_CRYPTO_random_block"];asm["_GNUNET_CRYPTO_random_block"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_random_block.apply(null,arguments)});var real__TALER_WRALL_get_amount=asm["_TALER_WRALL_get_amount"];asm["_TALER_WRALL_get_amount"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__TALER_WRALL_get_amount.apply(null,arguments)});var real__GNUNET_CRYPTO_rsa_private_key_encode=asm["_GNUNET_CRYPTO_rsa_private_key_encode"];asm["_GNUNET_CRYPTO_rsa_private_key_encode"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_rsa_private_key_encode.apply(null,arguments)});var real__GNUNET_CRYPTO_symmetric_decrypt=asm["_GNUNET_CRYPTO_symmetric_decrypt"];asm["_GNUNET_CRYPTO_symmetric_decrypt"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_symmetric_decrypt.apply(null,arguments)});var real__i64Subtract=asm["_i64Subtract"];asm["_i64Subtract"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__i64Subtract.apply(null,arguments)});var real_setTempRet0=asm["setTempRet0"];asm["setTempRet0"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real_setTempRet0.apply(null,arguments)});var real__TALER_WR_get_value=asm["_TALER_WR_get_value"];asm["_TALER_WR_get_value"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__TALER_WR_get_value.apply(null,arguments)});var real__GNUNET_CRYPTO_ecdhe_key_get_public=asm["_GNUNET_CRYPTO_ecdhe_key_get_public"];asm["_GNUNET_CRYPTO_ecdhe_key_get_public"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_ecdhe_key_get_public.apply(null,arguments)});var real__GNUNET_util_cl_init=asm["_GNUNET_util_cl_init"];asm["_GNUNET_util_cl_init"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_util_cl_init.apply(null,arguments)});var real____remdi3=asm["___remdi3"];asm["___remdi3"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real____remdi3.apply(null,arguments)});var real____muldsi3=asm["___muldsi3"];asm["___muldsi3"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real____muldsi3.apply(null,arguments)});var real__GNUNET_CRYPTO_rsa_blind=asm["_GNUNET_CRYPTO_rsa_blind"];asm["_GNUNET_CRYPTO_rsa_blind"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_rsa_blind.apply(null,arguments)});var real__GNUNET_STRINGS_data_to_string_alloc=asm["_GNUNET_STRINGS_data_to_string_alloc"];asm["_GNUNET_STRINGS_data_to_string_alloc"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_STRINGS_data_to_string_alloc.apply(null,arguments)});var real__malloc=asm["_malloc"];asm["_malloc"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__malloc.apply(null,arguments)});var real__GNUNET_CRYPTO_rsa_signature_decode=asm["_GNUNET_CRYPTO_rsa_signature_decode"];asm["_GNUNET_CRYPTO_rsa_signature_decode"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_rsa_signature_decode.apply(null,arguments)});var real__TALER_setup_fresh_coin=asm["_TALER_setup_fresh_coin"];asm["_TALER_setup_fresh_coin"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__TALER_setup_fresh_coin.apply(null,arguments)});var real__GNUNET_CRYPTO_ecdhe_key_create=asm["_GNUNET_CRYPTO_ecdhe_key_create"];asm["_GNUNET_CRYPTO_ecdhe_key_create"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_ecdhe_key_create.apply(null,arguments)});var real____udivdi3=asm["___udivdi3"];asm["___udivdi3"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real____udivdi3.apply(null,arguments)});var real__TALER_amount_normalize=asm["_TALER_amount_normalize"];asm["_TALER_amount_normalize"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__TALER_amount_normalize.apply(null,arguments)});var real__GNUNET_CRYPTO_hash_context_read=asm["_GNUNET_CRYPTO_hash_context_read"];asm["_GNUNET_CRYPTO_hash_context_read"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_hash_context_read.apply(null,arguments)});var real__bitshift64Shl=asm["_bitshift64Shl"];asm["_bitshift64Shl"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__bitshift64Shl.apply(null,arguments)});var real__GNUNET_CRYPTO_rsa_private_key_free=asm["_GNUNET_CRYPTO_rsa_private_key_free"];asm["_GNUNET_CRYPTO_rsa_private_key_free"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_rsa_private_key_free.apply(null,arguments)});var real__fflush=asm["_fflush"];asm["_fflush"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__fflush.apply(null,arguments)});var real__GNUNET_CRYPTO_hash_create_random=asm["_GNUNET_CRYPTO_hash_create_random"];asm["_GNUNET_CRYPTO_hash_create_random"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_hash_create_random.apply(null,arguments)});var real__TALER_WRALL_eddsa_public_key_from_private=asm["_TALER_WRALL_eddsa_public_key_from_private"];asm["_TALER_WRALL_eddsa_public_key_from_private"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__TALER_WRALL_eddsa_public_key_from_private.apply(null,arguments)});var real____muldi3=asm["___muldi3"];asm["___muldi3"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real____muldi3.apply(null,arguments)});var real__GNUNET_CRYPTO_ecc_ecdh=asm["_GNUNET_CRYPTO_ecc_ecdh"];asm["_GNUNET_CRYPTO_ecc_ecdh"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_ecc_ecdh.apply(null,arguments)});var real__TALER_amount_add=asm["_TALER_amount_add"];asm["_TALER_amount_add"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__TALER_amount_add.apply(null,arguments)});var real____uremdi3=asm["___uremdi3"];asm["___uremdi3"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real____uremdi3.apply(null,arguments)});var real__GNUNET_CRYPTO_rsa_signature_free=asm["_GNUNET_CRYPTO_rsa_signature_free"];asm["_GNUNET_CRYPTO_rsa_signature_free"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_rsa_signature_free.apply(null,arguments)});var real__TALER_amount_subtract=asm["_TALER_amount_subtract"];asm["_TALER_amount_subtract"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__TALER_amount_subtract.apply(null,arguments)});var real__i64Add=asm["_i64Add"];asm["_i64Add"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__i64Add.apply(null,arguments)});var real__TALER_WRALL_purpose_create=asm["_TALER_WRALL_purpose_create"];asm["_TALER_WRALL_purpose_create"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__TALER_WRALL_purpose_create.apply(null,arguments)});var real__pthread_mutex_unlock=asm["_pthread_mutex_unlock"];asm["_pthread_mutex_unlock"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__pthread_mutex_unlock.apply(null,arguments)});var real_stackRestore=asm["stackRestore"];asm["stackRestore"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real_stackRestore.apply(null,arguments)});var real__GNUNET_CRYPTO_eddsa_sign=asm["_GNUNET_CRYPTO_eddsa_sign"];asm["_GNUNET_CRYPTO_eddsa_sign"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_eddsa_sign.apply(null,arguments)});var real____errno_location=asm["___errno_location"];asm["___errno_location"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real____errno_location.apply(null,arguments)});var real__TALER_WRALL_ecdhe_public_key_from_private=asm["_TALER_WRALL_ecdhe_public_key_from_private"];asm["_TALER_WRALL_ecdhe_public_key_from_private"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__TALER_WRALL_ecdhe_public_key_from_private.apply(null,arguments)});var real__GNUNET_CRYPTO_hash_context_abort=asm["_GNUNET_CRYPTO_hash_context_abort"];asm["_GNUNET_CRYPTO_hash_context_abort"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_hash_context_abort.apply(null,arguments)});var real__memmove=asm["_memmove"];asm["_memmove"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__memmove.apply(null,arguments)});var real__GNUNET_CRYPTO_random_init=asm["_GNUNET_CRYPTO_random_init"];asm["_GNUNET_CRYPTO_random_init"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_random_init.apply(null,arguments)});var real__TALER_amount_get_zero=asm["_TALER_amount_get_zero"];asm["_TALER_amount_get_zero"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__TALER_amount_get_zero.apply(null,arguments)});var real__GNUNET_CRYPTO_rsa_public_key_encode=asm["_GNUNET_CRYPTO_rsa_public_key_encode"];asm["_GNUNET_CRYPTO_rsa_public_key_encode"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_rsa_public_key_encode.apply(null,arguments)});var real__GNUNET_CRYPTO_hash=asm["_GNUNET_CRYPTO_hash"];asm["_GNUNET_CRYPTO_hash"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__GNUNET_CRYPTO_hash.apply(null,arguments)});var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _bitshift64Ashr=Module["_bitshift64Ashr"]=asm["_bitshift64Ashr"];var _sbrk=Module["_sbrk"]=asm["_sbrk"];var _GNUNET_CRYPTO_eddsa_key_create=Module["_GNUNET_CRYPTO_eddsa_key_create"]=asm["_GNUNET_CRYPTO_eddsa_key_create"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _GNUNET_CRYPTO_rsa_private_key_decode=Module["_GNUNET_CRYPTO_rsa_private_key_decode"]=asm["_GNUNET_CRYPTO_rsa_private_key_decode"];var ___udivmoddi4=Module["___udivmoddi4"]=asm["___udivmoddi4"];var _GNUNET_CRYPTO_ecdh_eddsa=Module["_GNUNET_CRYPTO_ecdh_eddsa"]=asm["_GNUNET_CRYPTO_ecdh_eddsa"];var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=asm["_emscripten_get_global_libc"];var _TALER_amount_hton=Module["_TALER_amount_hton"]=asm["_TALER_amount_hton"];var stackSave=Module["stackSave"]=asm["stackSave"];var _gpg_err_init=Module["_gpg_err_init"]=asm["_gpg_err_init"];var _free=Module["_free"]=asm["_free"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var _memalign=Module["_memalign"]=asm["_memalign"];var _GNUNET_CRYPTO_ecdsa_key_create=Module["_GNUNET_CRYPTO_ecdsa_key_create"]=asm["_GNUNET_CRYPTO_ecdsa_key_create"];var _GNUNET_CRYPTO_hash_context_start=Module["_GNUNET_CRYPTO_hash_context_start"]=asm["_GNUNET_CRYPTO_hash_context_start"];var _GNUNET_CRYPTO_rsa_private_key_get_public=Module["_GNUNET_CRYPTO_rsa_private_key_get_public"]=asm["_GNUNET_CRYPTO_rsa_private_key_get_public"];var _GNUNET_CRYPTO_eddsa_verify=Module["_GNUNET_CRYPTO_eddsa_verify"]=asm["_GNUNET_CRYPTO_eddsa_verify"];var setThrew=Module["setThrew"]=asm["setThrew"];var _GNUNET_CRYPTO_symmetric_encrypt=Module["_GNUNET_CRYPTO_symmetric_encrypt"]=asm["_GNUNET_CRYPTO_symmetric_encrypt"];var _TALER_WR_get_fraction=Module["_TALER_WR_get_fraction"]=asm["_TALER_WR_get_fraction"];var _TALER_amount_cmp=Module["_TALER_amount_cmp"]=asm["_TALER_amount_cmp"];var _llvm_cttz_i32=Module["_llvm_cttz_i32"]=asm["_llvm_cttz_i32"];var stackAlloc=Module["stackAlloc"]=asm["stackAlloc"];var _GNUNET_CRYPTO_kdf=Module["_GNUNET_CRYPTO_kdf"]=asm["_GNUNET_CRYPTO_kdf"];var ___divdi3=Module["___divdi3"]=asm["___divdi3"];var _TALER_amount_ntoh=Module["_TALER_amount_ntoh"]=asm["_TALER_amount_ntoh"];var getTempRet0=Module["getTempRet0"]=asm["getTempRet0"];var _GNUNET_CRYPTO_rsa_public_key_free=Module["_GNUNET_CRYPTO_rsa_public_key_free"]=asm["_GNUNET_CRYPTO_rsa_public_key_free"];var _GNUNET_CRYPTO_hkdf=Module["_GNUNET_CRYPTO_hkdf"]=asm["_GNUNET_CRYPTO_hkdf"];var _GNUNET_CRYPTO_eddsa_key_get_public=Module["_GNUNET_CRYPTO_eddsa_key_get_public"]=asm["_GNUNET_CRYPTO_eddsa_key_get_public"];var _llvm_bswap_i32=Module["_llvm_bswap_i32"]=asm["_llvm_bswap_i32"];var _GNUNET_CRYPTO_rsa_private_key_create=Module["_GNUNET_CRYPTO_rsa_private_key_create"]=asm["_GNUNET_CRYPTO_rsa_private_key_create"];var _TALER_gcrypt_init=Module["_TALER_gcrypt_init"]=asm["_TALER_gcrypt_init"];var establishStackSpace=Module["establishStackSpace"]=asm["establishStackSpace"];var _pthread_mutex_lock=Module["_pthread_mutex_lock"]=asm["_pthread_mutex_lock"];var _GNUNET_CRYPTO_rsa_public_key_decode=Module["_GNUNET_CRYPTO_rsa_public_key_decode"]=asm["_GNUNET_CRYPTO_rsa_public_key_decode"];var _TALER_WRALL_ecdsa_public_key_from_private=Module["_TALER_WRALL_ecdsa_public_key_from_private"]=asm["_TALER_WRALL_ecdsa_public_key_from_private"];var _GNUNET_CRYPTO_rsa_signature_encode=Module["_GNUNET_CRYPTO_rsa_signature_encode"]=asm["_GNUNET_CRYPTO_rsa_signature_encode"];var _GNUNET_CRYPTO_rsa_verify=Module["_GNUNET_CRYPTO_rsa_verify"]=asm["_GNUNET_CRYPTO_rsa_verify"];var _GNUNET_STRINGS_string_to_data=Module["_GNUNET_STRINGS_string_to_data"]=asm["_GNUNET_STRINGS_string_to_data"];var _memset=Module["_memset"]=asm["_memset"];var _GNUNET_CRYPTO_hash_context_finish=Module["_GNUNET_CRYPTO_hash_context_finish"]=asm["_GNUNET_CRYPTO_hash_context_finish"];var _GNUNET_CRYPTO_rsa_unblind=Module["_GNUNET_CRYPTO_rsa_unblind"]=asm["_GNUNET_CRYPTO_rsa_unblind"];var _TALER_WR_get_currency=Module["_TALER_WR_get_currency"]=asm["_TALER_WR_get_currency"];var _GNUNET_CRYPTO_random_block=Module["_GNUNET_CRYPTO_random_block"]=asm["_GNUNET_CRYPTO_random_block"];var _TALER_WRALL_get_amount=Module["_TALER_WRALL_get_amount"]=asm["_TALER_WRALL_get_amount"];var _GNUNET_CRYPTO_rsa_private_key_encode=Module["_GNUNET_CRYPTO_rsa_private_key_encode"]=asm["_GNUNET_CRYPTO_rsa_private_key_encode"];var _GNUNET_CRYPTO_symmetric_decrypt=Module["_GNUNET_CRYPTO_symmetric_decrypt"]=asm["_GNUNET_CRYPTO_symmetric_decrypt"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var setTempRet0=Module["setTempRet0"]=asm["setTempRet0"];var _TALER_WR_get_value=Module["_TALER_WR_get_value"]=asm["_TALER_WR_get_value"];var _GNUNET_CRYPTO_ecdhe_key_get_public=Module["_GNUNET_CRYPTO_ecdhe_key_get_public"]=asm["_GNUNET_CRYPTO_ecdhe_key_get_public"];var _GNUNET_util_cl_init=Module["_GNUNET_util_cl_init"]=asm["_GNUNET_util_cl_init"];var ___remdi3=Module["___remdi3"]=asm["___remdi3"];var ___muldsi3=Module["___muldsi3"]=asm["___muldsi3"];var _GNUNET_CRYPTO_rsa_blind=Module["_GNUNET_CRYPTO_rsa_blind"]=asm["_GNUNET_CRYPTO_rsa_blind"];var _GNUNET_STRINGS_data_to_string_alloc=Module["_GNUNET_STRINGS_data_to_string_alloc"]=asm["_GNUNET_STRINGS_data_to_string_alloc"];var _malloc=Module["_malloc"]=asm["_malloc"];var _GNUNET_CRYPTO_rsa_signature_decode=Module["_GNUNET_CRYPTO_rsa_signature_decode"]=asm["_GNUNET_CRYPTO_rsa_signature_decode"];var _TALER_setup_fresh_coin=Module["_TALER_setup_fresh_coin"]=asm["_TALER_setup_fresh_coin"];var _GNUNET_CRYPTO_ecdhe_key_create=Module["_GNUNET_CRYPTO_ecdhe_key_create"]=asm["_GNUNET_CRYPTO_ecdhe_key_create"];var ___udivdi3=Module["___udivdi3"]=asm["___udivdi3"];var _TALER_amount_normalize=Module["_TALER_amount_normalize"]=asm["_TALER_amount_normalize"];var _GNUNET_CRYPTO_hash_context_read=Module["_GNUNET_CRYPTO_hash_context_read"]=asm["_GNUNET_CRYPTO_hash_context_read"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var _GNUNET_CRYPTO_rsa_private_key_free=Module["_GNUNET_CRYPTO_rsa_private_key_free"]=asm["_GNUNET_CRYPTO_rsa_private_key_free"];var _fflush=Module["_fflush"]=asm["_fflush"];var _GNUNET_CRYPTO_hash_create_random=Module["_GNUNET_CRYPTO_hash_create_random"]=asm["_GNUNET_CRYPTO_hash_create_random"];var _TALER_WRALL_eddsa_public_key_from_private=Module["_TALER_WRALL_eddsa_public_key_from_private"]=asm["_TALER_WRALL_eddsa_public_key_from_private"];var ___muldi3=Module["___muldi3"]=asm["___muldi3"];var _GNUNET_CRYPTO_ecc_ecdh=Module["_GNUNET_CRYPTO_ecc_ecdh"]=asm["_GNUNET_CRYPTO_ecc_ecdh"];var _TALER_amount_add=Module["_TALER_amount_add"]=asm["_TALER_amount_add"];var ___uremdi3=Module["___uremdi3"]=asm["___uremdi3"];var _GNUNET_CRYPTO_rsa_signature_free=Module["_GNUNET_CRYPTO_rsa_signature_free"]=asm["_GNUNET_CRYPTO_rsa_signature_free"];var _TALER_amount_subtract=Module["_TALER_amount_subtract"]=asm["_TALER_amount_subtract"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _TALER_WRALL_purpose_create=Module["_TALER_WRALL_purpose_create"]=asm["_TALER_WRALL_purpose_create"];var _pthread_mutex_unlock=Module["_pthread_mutex_unlock"]=asm["_pthread_mutex_unlock"];var stackRestore=Module["stackRestore"]=asm["stackRestore"];var _GNUNET_CRYPTO_eddsa_sign=Module["_GNUNET_CRYPTO_eddsa_sign"]=asm["_GNUNET_CRYPTO_eddsa_sign"];var ___errno_location=Module["___errno_location"]=asm["___errno_location"];var _TALER_WRALL_ecdhe_public_key_from_private=Module["_TALER_WRALL_ecdhe_public_key_from_private"]=asm["_TALER_WRALL_ecdhe_public_key_from_private"];var _GNUNET_CRYPTO_hash_context_abort=Module["_GNUNET_CRYPTO_hash_context_abort"]=asm["_GNUNET_CRYPTO_hash_context_abort"];var _memmove=Module["_memmove"]=asm["_memmove"];var _GNUNET_CRYPTO_random_init=Module["_GNUNET_CRYPTO_random_init"]=asm["_GNUNET_CRYPTO_random_init"];var _TALER_amount_get_zero=Module["_TALER_amount_get_zero"]=asm["_TALER_amount_get_zero"];var _GNUNET_CRYPTO_rsa_public_key_encode=Module["_GNUNET_CRYPTO_rsa_public_key_encode"]=asm["_GNUNET_CRYPTO_rsa_public_key_encode"];var _GNUNET_CRYPTO_hash=Module["_GNUNET_CRYPTO_hash"]=asm["_GNUNET_CRYPTO_hash"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_viiiii=Module["dynCall_viiiii"]=asm["dynCall_viiiii"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_vii=Module["dynCall_vii"]=asm["dynCall_vii"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_viii=Module["dynCall_viii"]=asm["dynCall_viii"];var dynCall_v=Module["dynCall_v"]=asm["dynCall_v"];var dynCall_iiiii=Module["dynCall_iiiii"]=asm["dynCall_iiiii"];var dynCall_viiiiii=Module["dynCall_viiiiii"]=asm["dynCall_viiiiii"];var dynCall_iii=Module["dynCall_iii"]=asm["dynCall_iii"];var dynCall_viiii=Module["dynCall_viiii"]=asm["dynCall_viiii"];Runtime.stackAlloc=Module["stackAlloc"];Runtime.stackSave=Module["stackSave"];Runtime.stackRestore=Module["stackRestore"];Runtime.establishStackSpace=Module["establishStackSpace"];Runtime.setTempRet0=Module["setTempRet0"];Runtime.getTempRet0=Module["getTempRet0"];Module["asm"]=asm;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=Module.callMain=function callMain(args){assert(runDependencies==0,"cannot call main when async dependencies remain! (listen on __ATMAIN__)");assert(__ATPRERUN__.length==0,"cannot call main when preRun functions remain to be called");args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;i<argc-1;i=i+1){argv.push(allocate(intArrayFromString(args[i]),"i8",ALLOC_NORMAL));pad()}argv.push(0);argv=allocate(argv,"i32",ALLOC_NORMAL);try{var ret=Module["_main"](argc,argv,0);exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e=="SimulateInfiniteLoop"){Module["noExitRuntime"]=true;return}else{if(e&&typeof e==="object"&&e.stack)Module.printErr("exception thrown: "+[e,e.stack]);throw e}}finally{calledMain=true}};function run(args){args=args||Module["arguments"];if(preloadStartTime===null)preloadStartTime=Date.now();if(runDependencies>0){Module.printErr("run() called, but dependencies remain, so not running");return}writeStackCookie();preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(ENVIRONMENT_IS_WEB&&preloadStartTime!==null){Module.printErr("pre-main prep time: "+(Date.now()-preloadStartTime)+" ms")}if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}checkStackCookie()}Module["run"]=Module.run=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]){Module.printErr("exit("+status+") implicitly called by end of main(), but noExitRuntime, so not exiting the runtime (you can use emscripten_force_exit, if you want to force a true shutdown)");return}if(Module["noExitRuntime"]){Module.printErr("exit("+status+") called, but noExitRuntime, so halting execution but not exiting the runtime or preventing further async execution (you can use emscripten_force_exit, if you want to force a true shutdown)")}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["exit"](status)}else if(ENVIRONMENT_IS_SHELL&&typeof quit==="function"){quit(status)}throw new ExitStatus(status)}Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;var extra="";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators){abortDecorators.forEach((function(decorator){output=decorator(output,what)}))}throw output}Module["abort"]=Module.abort=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}run() diff --git a/src/emscriptif-test.ts b/src/emscriptif-test.ts index cd99d0ed1..8b7a9eff4 100644 --- a/src/emscriptif-test.ts +++ b/src/emscriptif-test.ts @@ -1,4 +1,4 @@ -import {test, TestLib} from "testlib/talertest"; +import {test, TestLib} from "talertest"; import * as native from "./emscriptif"; test("string hashing", (t: TestLib) => { diff --git a/src/emscriptif.ts b/src/emscriptif.ts index aeb645c70..0b3f2ae71 100644 --- a/src/emscriptif.ts +++ b/src/emscriptif.ts @@ -15,7 +15,7 @@ */ import {AmountJson} from "./types"; -import Module, {EmscFunGen} from "src/emscripten/taler-emscripten-lib"; +import * as emscLib from "./emscripten/taler-emscripten-lib"; /** * Medium-level interface to emscripten-compiled modules used @@ -40,9 +40,9 @@ const GNUNET_SYSERR = -1; /** * Get an emscripten-compiled function. */ -const getEmsc: EmscFunGen = (name: string, ret: any, argTypes: any[]) => { +const getEmsc: emscLib.EmscFunGen = (name: string, ret: any, argTypes: any[]) => { return (...args: any[]) => { - return Module.ccall(name, ret, argTypes, args); + return emscLib.ccall(name, ret, argTypes, args); } }; @@ -51,7 +51,7 @@ const getEmsc: EmscFunGen = (name: string, ret: any, argTypes: any[]) => { * Wrapped emscripten functions that do not allocate any memory. */ const emsc = { - free: (ptr: number) => Module._free(ptr), + free: (ptr: number) => emscLib._free(ptr), get_value: getEmsc("TALER_WR_get_value", "number", ["number"]), @@ -193,7 +193,7 @@ const emscAlloc = { hash_context_start: getEmsc("GNUNET_CRYPTO_hash_context_start", "number", []), - malloc: (size: number) => Module._malloc(size), + malloc: (size: number) => emscLib._malloc(size), }; @@ -530,7 +530,7 @@ abstract class PackedArenaObject extends MallocArenaObject { toCrock(): string { var d = emscAlloc.data_to_string_alloc(this.nativePtr, this.size()); - var s = Module.Pointer_stringify(d); + var s = emscLib.Pointer_stringify(d); emsc.free(d); return s; } @@ -574,7 +574,7 @@ abstract class PackedArenaObject extends MallocArenaObject { hexdump() { let bytes: string[] = []; for (let i = 0; i < this.size(); i++) { - let b = Module.getValue(this.nativePtr + i, "i8"); + let b = emscLib.getValue(this.nativePtr + i, "i8"); b = (b + 256) % 256; bytes.push("0".concat(b.toString(16)).slice(-2)); } @@ -637,7 +637,7 @@ function encode<T extends MallocArenaObject>(obj: T, encodeFn: any, arena?: Aren let ptr = emscAlloc.malloc(PTR_SIZE); let len = encodeFn(obj.nativePtr, ptr); let res = new ByteArray(len, undefined, arena); - res.nativePtr = Module.getValue(ptr, '*'); + res.nativePtr = emscLib.getValue(ptr, '*'); emsc.free(ptr); return res; } @@ -812,7 +812,7 @@ export class ByteArray extends PackedArenaObject { // UTF-8 bytes, including 0-terminator let terminatedByteLength = countUtf8Bytes(s) + 1; let hstr = emscAlloc.malloc(terminatedByteLength); - Module.stringToUTF8(s, hstr, terminatedByteLength); + emscLib.stringToUTF8(s, hstr, terminatedByteLength); return new ByteArray(terminatedByteLength - 1, hstr, a); } @@ -820,7 +820,7 @@ export class ByteArray extends PackedArenaObject { // UTF-8 bytes, including 0-terminator let terminatedByteLength = countUtf8Bytes(s) + 1; let hstr = emscAlloc.malloc(terminatedByteLength); - Module.stringToUTF8(s, hstr, terminatedByteLength); + emscLib.stringToUTF8(s, hstr, terminatedByteLength); return new ByteArray(terminatedByteLength, hstr, a); } @@ -829,7 +829,7 @@ export class ByteArray extends PackedArenaObject { // since we don't have a fixed size let byteLength = countUtf8Bytes(s); let hstr = emscAlloc.malloc(byteLength + 1); - Module.stringToUTF8(s, hstr, byteLength + 1); + emscLib.stringToUTF8(s, hstr, byteLength + 1); let decodedLen = Math.floor((byteLength * 5) / 8); let ba = new ByteArray(decodedLen, undefined, a); let res = emsc.string_to_data(hstr, byteLength, ba.nativePtr, decodedLen); @@ -1016,7 +1016,7 @@ export class AbsoluteTimeNbo extends PackedArenaObject { // XXX: This only works up to 54 bit numbers. function set64(p: number, n: number) { for (let i = 0; i < 8; ++i) { - Module.setValue(p + (7 - i), n & 0xFF, "i8"); + emscLib.setValue(p + (7 - i), n & 0xFF, "i8"); n = Math.floor(n / 256); } } @@ -1024,7 +1024,7 @@ function set64(p: number, n: number) { // XXX: This only works up to 54 bit numbers. function set32(p: number, n: number) { for (let i = 0; i < 4; ++i) { - Module.setValue(p + (3 - i), n & 0xFF, "i8"); + emscLib.setValue(p + (3 - i), n & 0xFF, "i8"); n = Math.floor(n / 256); } } @@ -1195,8 +1195,8 @@ export function rsaBlind(hashCode: HashCode, pkey.nativePtr, buf_ptr_out, buf_size_out); - let buf_ptr = Module.getValue(buf_ptr_out, '*'); - let buf_size = Module.getValue(buf_size_out, '*'); + let buf_ptr = emscLib.getValue(buf_ptr_out, '*'); + let buf_size = emscLib.getValue(buf_size_out, '*'); emsc.free(buf_ptr_out); emsc.free(buf_size_out); if (res != GNUNET_OK) { diff --git a/src/helpers-test.ts b/src/helpers-test.ts index 4aac5ebec..d252e9720 100644 --- a/src/helpers-test.ts +++ b/src/helpers-test.ts @@ -1,4 +1,4 @@ -import {test, TestLib} from "testlib/talertest"; +import {test, TestLib} from "talertest"; import * as helpers from "./helpers"; diff --git a/src/helpers.ts b/src/helpers.ts index d9b62aa22..7b9470271 100644 --- a/src/helpers.ts +++ b/src/helpers.ts @@ -21,10 +21,8 @@ * @author Florian Dold */ -/// <reference path="../decl/urijs/URIjs.d.ts" /> - import {AmountJson, Amounts} from "./types"; -import URI = uri.URI; +import URI = require("urijs"); export function substituteFulfillmentUrl(url: string, vars: any) { url = url.replace("${H_contract}", vars.H_contract); @@ -45,7 +43,7 @@ export function amountToPretty(amount: AmountJson): string { * See http://api.taler.net/wallet.html#general */ export function canonicalizeBaseUrl(url: string) { - let x: URI = new URI(url); + let x = new URI(url); if (!x.protocol()) { x.protocol("https"); } diff --git a/src/http.ts b/src/http.ts index 1d22c4eb2..5e6580016 100644 --- a/src/http.ts +++ b/src/http.ts @@ -22,7 +22,6 @@ "use strict"; - export interface HttpResponse { status: number; responseText: string; @@ -31,31 +30,24 @@ export interface HttpResponse { export interface HttpRequestLibrary { req(method: string, - url: string | uri.URI, + url: string, options?: any): Promise<HttpResponse>; - get(url: string | uri.URI): Promise<HttpResponse>; + get(url: string): Promise<HttpResponse>; - postJson(url: string | uri.URI, body: any): Promise<HttpResponse>; + postJson(url: string, body: any): Promise<HttpResponse>; - postForm(url: string | uri.URI, form: any): Promise<HttpResponse>; + postForm(url: string, form: any): Promise<HttpResponse>; } export class BrowserHttpLib { req(method: string, - url: string|uri.URI, + url: string, options?: any): Promise<HttpResponse> { - let urlString: string; - if (url instanceof URI) { - urlString = url.href(); - } else if (typeof url === "string") { - urlString = url; - } - - return new Promise((resolve, reject) => { + return new Promise<HttpResponse>((resolve, reject) => { let myRequest = new XMLHttpRequest(); - myRequest.open(method, urlString); + myRequest.open(method, url); if (options && options.req) { myRequest.send(options.req); } else { @@ -74,17 +66,17 @@ export class BrowserHttpLib { } - get(url: string|uri.URI) { + get(url: string) { return this.req("get", url); } - postJson(url: string|uri.URI, body: any) { + postJson(url: string, body: any) { return this.req("post", url, {req: JSON.stringify(body)}); } - postForm(url: string|uri.URI, form: any) { + postForm(url: string, form: any) { return this.req("post", url, {req: form}); } } diff --git a/src/i18n.tsx b/src/i18n.tsx index d03fd52ef..dcc678900 100644 --- a/src/i18n.tsx +++ b/src/i18n.tsx @@ -16,10 +16,12 @@ "use strict"; -import {default as Jed} from "src/vendor/jed"; -import {strings} from "src/i18n/strings"; +import * as jedLib from "jed"; +import {strings} from "./i18n/strings"; -console.log("jed:", Jed); +import * as React from "react"; + +console.log("jed:", jedLib); /** * Information about the last two i18n results, used by plural() @@ -35,7 +37,7 @@ try { console.warn("i18n default language not available"); } -let jed = new Jed(strings[lang]); +let jed = new jedLib.Jed(strings[lang]); class PluralNumber { diff --git a/src/logging.ts b/src/logging.ts index 788a7df55..d5d6debf4 100644 --- a/src/logging.ts +++ b/src/logging.ts @@ -198,7 +198,7 @@ const loggingDbVersion = 1; const logsStore: Store<LogEntry> = new Store<LogEntry>("logs"); export function openLoggingDb(): Promise<IDBDatabase> { - return new Promise((resolve, reject) => { + return new Promise<IDBDatabase>((resolve, reject) => { const req = indexedDB.open("taler-logging", loggingDbVersion); req.onerror = (e) => { reject(e); diff --git a/src/moduleTrampoline.ts b/src/moduleTrampoline.ts deleted file mode 100644 index acbf2afcf..000000000 --- a/src/moduleTrampoline.ts +++ /dev/null @@ -1,80 +0,0 @@ -/* - This file is part of TALER - (C) 2016 GNUnet e.V. - - TALER is free software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the Free Software - Foundation; either version 3, or (at your option) any later version. - - TALER is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. See the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along with - TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/> - */ - - -/** - * Boilerplate to initialize the module system and call main() - * - * @author Florian Dold - */ - -"use strict"; - -if (typeof System === "undefined") { - throw Error("system loader not present (must be included before the" + - " trampoline"); -} - -System.config({ - defaultJSExtensions: true, - map: { - src: "/src/", - }, -}); - -let me = window.location.protocol - + "//" + window.location.host - + window.location.pathname.replace(/[.]html$/, ".js"); - -let domLoaded = false; - -document.addEventListener("DOMContentLoaded", function(event) { - domLoaded = true; -}); - -function execMain(m: any) { - if (m.main) { - console.log("executing module main"); - let res = m.main(); - } else { - console.warn("module does not export a main() function"); - } -} - -console.log("loading", me); - -System.import("src/logging").then((logging) => { - window.onerror = (m, source, lineno, colno, error) => { - logging.record("error", m + error, source || "(unknown)", undefined, lineno || 0, colno || 0); - }; - window.addEventListener('unhandledrejection', (evt: any) => { - logging.recordException("unhandled promise rejection", evt.reason); - }); - System.import(me).then((m) => { - if (domLoaded) { - execMain(m); - return; - } - document.addEventListener("DOMContentLoaded", function(event) { - execMain(m); - }); - }); -}) -.catch((e) => { - console.log("trampoline failed"); - console.error(e.stack); -}); - diff --git a/src/pages/add-auditor.html b/src/pages/add-auditor.html index 7966e211f..dce391ff4 100644 --- a/src/pages/add-auditor.html +++ b/src/pages/add-auditor.html @@ -2,39 +2,37 @@ <html> <head> - <title>Taler Wallet: Add Auditor</title> - - <link rel="stylesheet" type="text/css" href="../style/lang.css"> - <link rel="stylesheet" type="text/css" href="../style/wallet.css"> - - <link rel="icon" href="/img/icon.png"> - - <script src="/src/vendor/URI.js"></script> - <script src="/src/vendor/react.js"></script> - <script src="/src/vendor/react-dom.js"></script> - - <script src="/src/vendor/system-csp-production.src.js"></script> - <script src="/src/moduleTrampoline.js"></script> - - <link rel="stylesheet" type="text/css" href="/src/style/pure.css"> - <link rel="stylesheet" type="text/css" href="/src/style/wallet.css"> - - <style> - .tree-item { - margin: 2em; - border-radius: 5px; - border: 1px solid gray; - padding: 1em; - } - .button-linky { - background: none; - color: black; - text-decoration: underline; - border: none; - } - </style> - - <body> - <div id="container"></div> - </body> + <meta charset="UTF-8"> + + <title>Taler Wallet: Add Auditor</title> + + <link rel="stylesheet" type="text/css" href="../style/lang.css"> + <link rel="stylesheet" type="text/css" href="../style/wallet.css"> + + <link rel="icon" href="/img/icon.png"> + + <script src="/dist/page-common-bundle.js"></script> + <script src="/dist/add-auditor-bundle.js"></script> + + <link rel="stylesheet" type="text/css" href="/src/style/pure.css"> + <link rel="stylesheet" type="text/css" href="/src/style/wallet.css"> + + <style> + .tree-item { + margin: 2em; + border-radius: 5px; + border: 1px solid gray; + padding: 1em; + } + .button-linky { + background: none; + color: black; + text-decoration: underline; + border: none; + } + </style> + + <body> + <div id="container"></div> + </body> </html> diff --git a/src/pages/add-auditor.tsx b/src/pages/add-auditor.tsx index 3ec21f509..db283eade 100644 --- a/src/pages/add-auditor.tsx +++ b/src/pages/add-auditor.tsx @@ -21,15 +21,27 @@ */ -import { ExchangeRecord, DenominationRecord } from "src/types"; -import { AuditorRecord, CurrencyRecord, ReserveRecord, CoinRecord, PreCoinRecord, Denomination } from "src/types"; -import { ImplicitStateComponent, StateHolder } from "src/components"; +import { + ExchangeRecord, + DenominationRecord, + AuditorRecord, + CurrencyRecord, + ReserveRecord, + CoinRecord, + PreCoinRecord, + Denomination +} from "../types"; +import { ImplicitStateComponent, StateHolder } from "../components"; import { getCurrencies, updateCurrency, -} from "src/wxApi"; -import { prettyAmount } from "src/renderHtml"; -import { getTalerStampDate } from "src/helpers"; +} from "../wxApi"; +import { prettyAmount } from "../renderHtml"; +import { getTalerStampDate } from "../helpers"; + +import * as React from "react"; +import * as ReactDOM from "react-dom"; +import URI = require("urijs"); interface ConfirmAuditorProps { url: string; @@ -101,7 +113,7 @@ class ConfirmAuditor extends ImplicitStateComponent<ConfirmAuditorProps> { } export function main() { - const walletPageUrl = URI(document.location.href); + const walletPageUrl = new URI(document.location.href); const query: any = JSON.parse((URI.parseQuery(walletPageUrl.query()) as any)["req"]); const url = query.url; const currency: string = query.currency; @@ -110,3 +122,5 @@ export function main() { const args = { url, currency, auditorPub, expirationStamp }; ReactDOM.render(<ConfirmAuditor {...args} />, document.getElementById("container")!); } + +document.addEventListener("DOMContentLoaded", main); diff --git a/src/pages/auditors.html b/src/pages/auditors.html index 0a9740f03..7e01f4e1f 100644 --- a/src/pages/auditors.html +++ b/src/pages/auditors.html @@ -2,36 +2,33 @@ <html> <head> - <title>Taler Wallet: Auditors</title> + <meta charset="UTF-8"> + <title>Taler Wallet: Auditors</title> - <link rel="stylesheet" type="text/css" href="../style/lang.css"> - <link rel="stylesheet" type="text/css" href="../style/wallet.css"> + <link rel="stylesheet" type="text/css" href="../style/lang.css"> + <link rel="stylesheet" type="text/css" href="../style/wallet.css"> - <link rel="icon" href="/img/icon.png"> + <link rel="icon" href="/img/icon.png"> - <script src="/src/vendor/URI.js"></script> - <script src="/src/vendor/react.js"></script> - <script src="/src/vendor/react-dom.js"></script> + <script src="/dist/page-common-bundle.js"></script> + <script src="/dist/auditors-bundle.js"></script> - <script src="/src/vendor/system-csp-production.src.js"></script> - <script src="/src/moduleTrampoline.js"></script> + <style> + .tree-item { + margin: 2em; + border-radius: 5px; + border: 1px solid gray; + padding: 1em; + } + .button-linky { + background: none; + color: black; + text-decoration: underline; + border: none; + } + </style> - <style> - .tree-item { - margin: 2em; - border-radius: 5px; - border: 1px solid gray; - padding: 1em; - } - .button-linky { - background: none; - color: black; - text-decoration: underline; - border: none; - } - </style> - - <body> - <div id="container"></div> - </body> + <body> + <div id="container"></div> + </body> </html> diff --git a/src/pages/auditors.tsx b/src/pages/auditors.tsx index 7cffec403..4aa922128 100644 --- a/src/pages/auditors.tsx +++ b/src/pages/auditors.tsx @@ -21,15 +21,25 @@ */ -import { ExchangeRecord, DenominationRecord } from "src/types"; -import { AuditorRecord, CurrencyRecord, ReserveRecord, CoinRecord, PreCoinRecord, Denomination } from "src/types"; -import { ImplicitStateComponent, StateHolder } from "src/components"; +import { + ExchangeRecord, + DenominationRecord, + AuditorRecord, + CurrencyRecord, + ReserveRecord, + CoinRecord, + PreCoinRecord, + Denomination +} from "../types"; +import { ImplicitStateComponent, StateHolder } from "../components"; import { getCurrencies, updateCurrency, -} from "src/wxApi"; -import { prettyAmount } from "src/renderHtml"; -import { getTalerStampDate } from "src/helpers"; +} from "../wxApi"; +import { prettyAmount } from "../renderHtml"; +import { getTalerStampDate } from "../helpers"; +import * as React from "react"; +import * as ReactDOM from "react-dom"; interface CurrencyListState { currencies?: CurrencyRecord[]; diff --git a/src/pages/confirm-contract.html b/src/pages/confirm-contract.html index c42479c29..52b68e627 100644 --- a/src/pages/confirm-contract.html +++ b/src/pages/confirm-contract.html @@ -2,6 +2,7 @@ <html> <head> + <meta charset="UTF-8"> <title>Taler Wallet: Confirm Reserve Creation</title> <link rel="stylesheet" type="text/css" href="/src/style/lang.css"> @@ -9,12 +10,8 @@ <link rel="icon" href="/img/icon.png"> - <script src="/src/vendor/URI.js"></script> - <script src="/src/vendor/react.js"></script> - <script src="/src/vendor/react-dom.js"></script> - - <script src="/src/vendor/system-csp-production.src.js"></script> - <script src="/src/moduleTrampoline.js"></script> + <script src="/dist/page-common-bundle.js"></script> + <script src="/dist/confirm-contract-bundle.js"></script> <style> button.accept { diff --git a/src/pages/confirm-contract.tsx b/src/pages/confirm-contract.tsx index 3a0712a8c..d8f72ba01 100644 --- a/src/pages/confirm-contract.tsx +++ b/src/pages/confirm-contract.tsx @@ -23,12 +23,15 @@ "use strict"; -import {substituteFulfillmentUrl} from "src/helpers"; -import {Contract, AmountJson, ExchangeRecord} from "src/types"; -import {OfferRecord} from "src/wallet"; -import {renderContract, prettyAmount} from "src/renderHtml"; -import {getExchanges} from "src/wxApi"; -import * as i18n from "src/i18n"; +import {substituteFulfillmentUrl} from "../helpers"; +import {Contract, AmountJson, ExchangeRecord} from "../types"; +import {OfferRecord} from "../wallet"; +import {renderContract, prettyAmount} from "../renderHtml"; +import {getExchanges} from "../wxApi"; +import * as i18n from "../i18n"; +import * as React from "react"; +import * as ReactDOM from "react-dom"; +import URI = require("urijs"); interface DetailState { @@ -129,7 +132,7 @@ class ContractPrompt extends React.Component<ContractPromptProps, ContractPrompt } getOffer(): Promise<OfferRecord> { - return new Promise((resolve, reject) => { + return new Promise<OfferRecord>((resolve, reject) => { let msg = { type: 'get-offer', detail: { @@ -160,22 +163,21 @@ class ContractPrompt extends React.Component<ContractPromptProps, ContractPrompt let acceptedExchangePubs = this.state.offer.contract.exchanges.map((e) => e.master_pub); let ex = this.state.exchanges.find((e) => acceptedExchangePubs.indexOf(e.masterPublicKey) >= 0); if (ex) { - this.state.error = msgInsufficient; + this.setState({error: msgInsufficient}); } else { - this.state.error = msgNoMatch; + this.setState({error: msgNoMatch}); } } else { - this.state.error = msgInsufficient; + this.setState({error: msgInsufficient}); } break; default: - this.state.error = `Error: ${resp.error}`; + this.setState({error: `Error: ${resp.error}`}); break; } - this.state.payDisabled = true; + this.setState({payDisabled: true}); } else { - this.state.payDisabled = false; - this.state.error = null; + this.setState({payDisabled: false, error: null}); } this.setState({} as any); window.setTimeout(() => this.checkPayment(), 500); @@ -189,14 +191,12 @@ class ContractPrompt extends React.Component<ContractPromptProps, ContractPrompt console.log("confirm-pay error", JSON.stringify(resp)); switch (resp.error) { case "coins-insufficient": - this.state.error = "You do not have enough coins of the" + - " requested currency."; + this.setState({error: "You do not have enough coins of the requested currency."}); break; default: - this.state.error = `Error: ${resp.error}`; + this.setState({error: `Error: ${resp.error}`}); break; } - this.setState({} as any); return; } let c = d.offer!.contract; @@ -232,11 +232,11 @@ class ContractPrompt extends React.Component<ContractPromptProps, ContractPrompt } -export function main() { - let url = URI(document.location.href); +document.addEventListener("DOMContentLoaded", () => { + let url = new URI(document.location.href); let query: any = URI.parseQuery(url.query()); let offerId = JSON.parse(query.offerId); ReactDOM.render(<ContractPrompt offerId={offerId}/>, document.getElementById( "contract")!); -} +}); diff --git a/src/pages/confirm-create-reserve.html b/src/pages/confirm-create-reserve.html index 77efc7036..c1e4b7ce3 100644 --- a/src/pages/confirm-create-reserve.html +++ b/src/pages/confirm-create-reserve.html @@ -2,21 +2,15 @@ <html> <head> + <meta charset="UTF-8"> <title>Taler Wallet: Select Taler Provider</title> <link rel="icon" href="/img/icon.png"> + <link rel="stylesheet" type="text/css" href="/src/style/wallet.css"> - <script src="/src/vendor/URI.js"></script> - <script src="/src/vendor/react.js"></script> - <script src="/src/vendor/react-dom.js"></script> - - <!-- module loading --> - <script src="/src/vendor/system-csp-production.src.js"></script> - <script src="/src/moduleTrampoline.js"></script> + <script src="/dist/page-common-bundle.js"></script> + <script src="/dist/confirm-create-reserve-bundle.js"></script> - <link rel="icon" href="/img/icon.png"> - - <link rel="stylesheet" type="text/css" href="/src/style/wallet.css"> </head> <body> diff --git a/src/pages/confirm-create-reserve.tsx b/src/pages/confirm-create-reserve.tsx index 6617ed6c3..a7fd7b0fd 100644 --- a/src/pages/confirm-create-reserve.tsx +++ b/src/pages/confirm-create-reserve.tsx @@ -22,17 +22,18 @@ * @author Florian Dold */ -import {amountToPretty, canonicalizeBaseUrl} from "src/helpers"; +import {amountToPretty, canonicalizeBaseUrl} from "../helpers"; import { AmountJson, CreateReserveResponse, ReserveCreationInfo, Amounts, Denomination, DenominationRecord, -} from "src/types"; -import {getReserveCreationInfo} from "src/wxApi"; -import {ImplicitStateComponent, StateHolder} from "src/components"; -import * as i18n from "src/i18n"; - -"use strict"; +} from "../types"; +import {getReserveCreationInfo} from "../wxApi"; +import {ImplicitStateComponent, StateHolder} from "../components"; +import * as i18n from "../i18n"; +import * as React from "react"; +import * as ReactDOM from "react-dom"; +import URI = require("urijs"); function delay<T>(delayMs: number, value: T): Promise<T> { @@ -220,7 +221,7 @@ class ExchangeSelection extends ImplicitStateComponent<ExchangeSelectionProps> { ); } if (this.url() && !this.statusString()) { - let shortName = URI(this.url()!).host(); + let shortName = new URI(this.url()!).host(); return ( <i18n.Translate wrap="p"> Waiting for a response from @@ -283,7 +284,7 @@ class ExchangeSelection extends ImplicitStateComponent<ExchangeSelectionProps> { } this.statusString(null); - let parsedUrl = URI(this.url()!); + let parsedUrl = new URI(this.url()!); if (parsedUrl.is("relative")) { this.statusString(i18n.str`Error: URL may not be relative`); this.detailCollapsed(false); @@ -350,7 +351,7 @@ class ExchangeSelection extends ImplicitStateComponent<ExchangeSelectionProps> { amount_fraction: amount.fraction, amount_currency: amount.currency, }; - let url = URI(callback_url).addQuery(q); + let url = new URI(callback_url).addQuery(q); if (!url.is("absolute")) { throw Error("callback url is not absolute"); } @@ -393,7 +394,7 @@ class ExchangeSelection extends ImplicitStateComponent<ExchangeSelectionProps> { export async function main() { try { - const url = URI(document.location.href); + const url = new URI(document.location.href); const query: any = URI.parseQuery(url.query()); let amount; try { @@ -432,3 +433,7 @@ export async function main() { console.error(`got error "${e.message}"`, e); } } + +document.addEventListener("DOMContentLoaded", () => { + main(); +}); diff --git a/src/pages/debug.html b/src/pages/debug.html deleted file mode 100644 index b8ddc7ccb..000000000 --- a/src/pages/debug.html +++ /dev/null @@ -1,13 +0,0 @@ -<!doctype html> -<html> - <head> - <title>Taler Wallet Debugging</title> - <link rel="icon" href="../img/icon.png"> - </head> - <body> - <h1>Debug Pages</h1> - <a href="show-db.html">Show DB</a> <br> - <a href="/src/popup/balance-overview.html">Show balance</a> - - </body> -</html> diff --git a/src/pages/error.html b/src/pages/error.html index 7e6103c0e..c67f4a5a3 100644 --- a/src/pages/error.html +++ b/src/pages/error.html @@ -2,21 +2,18 @@ <html> <head> - <title>Taler Wallet: Error Occured</title> + <meta charset="UTF-8"> + <title>Taler Wallet: Error Occured</title> - <link rel="stylesheet" type="text/css" href="../style/lang.css"> - <link rel="stylesheet" type="text/css" href="../style/wallet.css"> + <link rel="stylesheet" type="text/css" href="../style/lang.css"> + <link rel="stylesheet" type="text/css" href="../style/wallet.css"> - <link rel="icon" href="/img/icon.png"> + <link rel="icon" href="/img/icon.png"> - <script src="/src/vendor/URI.js"></script> - <script src="/src/vendor/react.js"></script> - <script src="/src/vendor/react-dom.js"></script> + <script src="/dist/page-common-bundle.js"></script> + <script src="/dist/error-bundle.js"></script> - <script src="/src/vendor/system-csp-production.src.js"></script> - <script src="/src/moduleTrampoline.js"></script> - - <body> - <div id="container"></div> - </body> + <body> + <div id="container"></div> + </body> </html> diff --git a/src/pages/error.tsx b/src/pages/error.tsx index 2878dfcf1..f278bd224 100644 --- a/src/pages/error.tsx +++ b/src/pages/error.tsx @@ -22,7 +22,11 @@ * @author Florian Dold */ -import {ImplicitStateComponent, StateHolder} from "src/components"; +import {ImplicitStateComponent, StateHolder} from "../components"; + +import * as React from "react"; +import * as ReactDOM from "react-dom"; +import URI = require("urijs"); "use strict"; @@ -42,7 +46,7 @@ class ErrorView extends React.Component<ErrorProps, void> { export async function main() { try { - const url = URI(document.location.href); + const url = new URI(document.location.href); const query: any = URI.parseQuery(url.query()); const message: string = query.message || "unknown error"; diff --git a/src/pages/logs.html b/src/pages/logs.html index 866b434f8..432427ebd 100644 --- a/src/pages/logs.html +++ b/src/pages/logs.html @@ -2,30 +2,27 @@ <html> <head> - <title>Taler Wallet: Logs</title> + <meta charset="UTF-8"> + <title>Taler Wallet: Logs</title> - <link rel="stylesheet" type="text/css" href="../style/lang.css"> - <link rel="stylesheet" type="text/css" href="../style/wallet.css"> + <link rel="stylesheet" type="text/css" href="../style/lang.css"> + <link rel="stylesheet" type="text/css" href="../style/wallet.css"> - <link rel="icon" href="/img/icon.png"> + <link rel="icon" href="/img/icon.png"> - <script src="/src/vendor/URI.js"></script> - <script src="/src/vendor/react.js"></script> - <script src="/src/vendor/react-dom.js"></script> + <script src="/dist/page-common-bundle.js"></script> + <script src="/dist/logs-bundle.js"></script> - <script src="/src/vendor/system-csp-production.src.js"></script> - <script src="/src/moduleTrampoline.js"></script> + <style> + .tree-item { + margin: 2em; + border-radius: 5px; + border: 1px solid gray; + padding: 1em; + } + </style> - <style> - .tree-item { - margin: 2em; - border-radius: 5px; - border: 1px solid gray; - padding: 1em; - } - </style> - - <body> - <div id="container"></div> - </body> + <body> + <div id="container"></div> + </body> </html> diff --git a/src/pages/logs.tsx b/src/pages/logs.tsx index 15bb3d270..716eebae6 100644 --- a/src/pages/logs.tsx +++ b/src/pages/logs.tsx @@ -20,7 +20,9 @@ * @author Florian Dold */ -import {LogEntry, getLogs} from "src/logging"; +import * as React from "react"; +import * as ReactDOM from "react-dom"; +import {LogEntry, getLogs} from "../logging"; interface LogViewProps { log: LogEntry; diff --git a/src/popup/popup.css b/src/pages/popup.css index 675412c11..675412c11 100644 --- a/src/popup/popup.css +++ b/src/pages/popup.css diff --git a/src/popup/popup.html b/src/pages/popup.html index a8b339b05..7ff5cffaf 100644 --- a/src/popup/popup.html +++ b/src/pages/popup.html @@ -7,12 +7,8 @@ <link rel="stylesheet" type="text/css" href="../style/lang.css"> <link rel="stylesheet" type="text/css" href="popup.css"> - <script src="/src/vendor/react.js"></script> - <script src="/src/vendor/react-dom.js"></script> - <script src="/src/vendor/URI.js"></script> - - <script src="/src/vendor/system-csp-production.src.js"></script> - <script src="/src/moduleTrampoline.js"></script> + <script src="/dist/page-common-bundle.js"></script> + <script src="/dist/popup-bundle.js"></script> </head> <body> diff --git a/src/popup/popup.tsx b/src/pages/popup.tsx index 424c38110..c8d52b45c 100644 --- a/src/popup/popup.tsx +++ b/src/pages/popup.tsx @@ -25,15 +25,18 @@ "use strict"; -import {substituteFulfillmentUrl} from "src/helpers"; +import {substituteFulfillmentUrl} from "../helpers"; import BrowserClickedEvent = chrome.browserAction.BrowserClickedEvent; -import {HistoryRecord, HistoryLevel} from "src/wallet"; +import {HistoryRecord, HistoryLevel} from "../wallet"; import { AmountJson, WalletBalance, Amounts, WalletBalanceEntry -} from "src/types"; -import {abbrev, prettyAmount} from "src/renderHtml"; -import * as i18n from "src/i18n"; +} from "../types"; +import {abbrev, prettyAmount} from "../renderHtml"; +import * as i18n from "../i18n"; +import * as React from "react"; +import * as ReactDOM from "react-dom"; +import URI = require("urijs"); function onUpdateNotification(f: () => void): () => void { let port = chrome.runtime.connect({name: "notifications"}); @@ -108,24 +111,6 @@ class Router extends React.Component<any,any> { } } -export function main() { - console.log("popup main"); - - let el = ( - <div> - <WalletNavBar /> - <div style={{margin: "1em"}}> - <Router> - <WalletBalanceView route="/balance" default/> - <WalletHistory route="/history"/> - <WalletDebug route="/debug"/> - </Router> - </div> - </div> - ); - - ReactDOM.render(el, document.getElementById("content")!); -} interface TabProps { target: string; @@ -137,7 +122,7 @@ function Tab(props: TabProps) { if (props.target == Router.getRoute()) { cssClass = "active"; } - let onClick = (e: React.MouseEvent) => { + let onClick = (e: React.MouseEvent<HTMLAnchorElement>) => { Router.setRoute(props.target); e.preventDefault(); }; @@ -183,7 +168,7 @@ class WalletNavBar extends React.Component<any,any> { function ExtensionLink(props: any) { - let onClick = (e: React.MouseEvent) => { + let onClick = (e: React.MouseEvent<HTMLAnchorElement>) => { chrome.tabs.create({ "url": chrome.extension.getURL(props.target) }); @@ -353,7 +338,7 @@ function formatHistoryItem(historyItem: HistoryRecord) { ); case "confirm-reserve": { // FIXME: eventually remove compat fix - let exchange = d.exchangeBaseUrl ? URI(d.exchangeBaseUrl).host() : "??"; + let exchange = d.exchangeBaseUrl ? (new URI(d.exchangeBaseUrl)).host() : "??"; let pub = abbrev(d.reservePub); return ( <i18n.Translate wrap="p"> @@ -374,7 +359,7 @@ function formatHistoryItem(historyItem: HistoryRecord) { ); } case "depleted-reserve": { - let exchange = d.exchangeBaseUrl ? URI(d.exchangeBaseUrl).host() : "??"; + let exchange = d.exchangeBaseUrl ? (new URI(d.exchangeBaseUrl)).host() : "??"; let amount = prettyAmount(d.requestedAmount); let pub = abbrev(d.reservePub); return ( @@ -499,7 +484,7 @@ function confirmReset() { function WalletDebug(props: any) { return (<div> <p>Debug tools:</p> - <button onClick={openExtensionPage("/src/popup/popup.html")}> + <button onClick={openExtensionPage("/src/pages/popup.html")}> wallet tab </button> <button onClick={openExtensionPage("/src/pages/show-db.html")}> @@ -538,3 +523,21 @@ function openTab(page: string) { }); } } + + +let el = ( + <div> + <WalletNavBar /> + <div style={{margin: "1em"}}> + <Router> + <WalletBalanceView route="/balance" default/> + <WalletHistory route="/history"/> + <WalletDebug route="/debug"/> + </Router> + </div> + </div> +); + +document.addEventListener("DOMContentLoaded", () => { + ReactDOM.render(el, document.getElementById("content")!); +}) diff --git a/src/pages/show-db.html b/src/pages/show-db.html index 1cf11e4f6..215c726d9 100644 --- a/src/pages/show-db.html +++ b/src/pages/show-db.html @@ -1,12 +1,12 @@ - <!doctype html> - <html> <head> + <meta charset="UTF-8"> <title>Taler Wallet: Reserve Created</title> <link rel="stylesheet" type="text/css" href="../style/wallet.css"> <link rel="icon" href="/img/icon.png"> - <script src="show-db.js"></script> + <script src="/dist/page-common.js"></script> + <script src="/dist/show-db-bundle.js"></script> </head> <body> <h1>DB Dump</h1> diff --git a/src/pages/tree.html b/src/pages/tree.html index 7ff4295a0..638c1484a 100644 --- a/src/pages/tree.html +++ b/src/pages/tree.html @@ -2,30 +2,27 @@ <html> <head> - <title>Taler Wallet: Tree View</title> + <meta charset="UTF-8"> + <title>Taler Wallet: Tree View</title> - <link rel="stylesheet" type="text/css" href="../style/lang.css"> - <link rel="stylesheet" type="text/css" href="../style/wallet.css"> + <link rel="stylesheet" type="text/css" href="../style/lang.css"> + <link rel="stylesheet" type="text/css" href="../style/wallet.css"> - <link rel="icon" href="/img/icon.png"> + <link rel="icon" href="/img/icon.png"> - <script src="/src/vendor/URI.js"></script> - <script src="/src/vendor/react.js"></script> - <script src="/src/vendor/react-dom.js"></script> + <script src="/dist/page-common-bundle.js"></script> + <script src="/dist/tree-bundle.js"></script> - <script src="/src/vendor/system-csp-production.src.js"></script> - <script src="/src/moduleTrampoline.js"></script> + <style> + .tree-item { + margin: 2em; + border-radius: 5px; + border: 1px solid gray; + padding: 1em; + } + </style> - <style> - .tree-item { - margin: 2em; - border-radius: 5px; - border: 1px solid gray; - padding: 1em; - } - </style> - - <body> - <div id="container"></div> - </body> + <body> + <div id="container"></div> + </body> </html> diff --git a/src/pages/tree.tsx b/src/pages/tree.tsx index 4909c189b..a465cff59 100644 --- a/src/pages/tree.tsx +++ b/src/pages/tree.tsx @@ -21,15 +21,24 @@ */ -import {ExchangeRecord, DenominationRecord, CoinStatus} from "src/types"; -import { ReserveRecord, CoinRecord, PreCoinRecord, Denomination } from "src/types"; -import { ImplicitStateComponent, StateHolder } from "src/components"; +import { + ExchangeRecord, + DenominationRecord, + CoinStatus, + ReserveRecord, + CoinRecord, + PreCoinRecord, + Denomination, +} from "../types"; +import { ImplicitStateComponent, StateHolder } from "../components"; import { getReserves, getExchanges, getCoins, getPreCoins, refresh, getDenoms -} from "src/wxApi"; -import { prettyAmount } from "src/renderHtml"; -import { getTalerStampDate } from "src/helpers"; +} from "../wxApi"; +import { prettyAmount } from "../renderHtml"; +import { getTalerStampDate } from "../helpers"; +import * as React from "react"; +import * as ReactDOM from "react-dom"; interface ReserveViewProps { reserve: ReserveRecord; @@ -423,3 +432,5 @@ class ExchangesList extends React.Component<any, ExchangesListState> { export function main() { ReactDOM.render(<ExchangesList />, document.getElementById("container")!); } + +document.addEventListener("DOMContentLoaded", main); diff --git a/src/query.ts b/src/query.ts index 810088169..c593f061e 100644 --- a/src/query.ts +++ b/src/query.ts @@ -103,7 +103,7 @@ abstract class BaseQueryValue<T> implements QueryValue<T> { } cond<R>(f: (x: T) => boolean, onTrue: (r: QueryRoot) => R, onFalse: (r: QueryRoot) => R): Promise<void> { - return new Promise((resolve, reject) => { + return new Promise<void>((resolve, reject) => { this.subscribeOne((v, tx) => { if (f(v)) { onTrue(new QueryRoot(this.root.db)); @@ -163,7 +163,7 @@ export let AbortTransaction = Symbol("abort_transaction"); * Get an unresolved promise together with its extracted resolve / reject * function. */ -export function openPromise<T>() { +export function openPromise<T>(): any { let resolve: ((value?: T | PromiseLike<T>) => void) | null = null; let reject: ((reason?: any) => void) | null = null; const promise = new Promise<T>((res, rej) => { @@ -208,19 +208,19 @@ abstract class QueryStreamBase<T> implements QueryStream<T>, PromiseLike<void> { indexJoin<S,I extends IDBValidKey>(index: Index<I,S>, keyFn: (obj: T) => I): QueryStream<JoinResult<T, S>> { this.root.addStoreAccess(index.storeName, false); - return new QueryStreamIndexJoin(this, index.storeName, index.indexName, keyFn); + return new QueryStreamIndexJoin<T, S>(this, index.storeName, index.indexName, keyFn); } indexJoinLeft<S,I extends IDBValidKey>(index: Index<I,S>, keyFn: (obj: T) => I): QueryStream<JoinLeftResult<T, S>> { this.root.addStoreAccess(index.storeName, false); - return new QueryStreamIndexJoinLeft(this, index.storeName, index.indexName, keyFn); + return new QueryStreamIndexJoinLeft<T, S>(this, index.storeName, index.indexName, keyFn); } keyJoin<S, I extends IDBValidKey>(store: Store<S>, keyFn: (obj: T) => I): QueryStream<JoinResult<T, S>> { this.root.addStoreAccess(store.name, false); - return new QueryStreamKeyJoin(this, store.name, keyFn); + return new QueryStreamKeyJoin<T, S>(this, store.name, keyFn); } filter(f: (x: any) => boolean): QueryStream<T> { @@ -536,7 +536,7 @@ export class QueryRoot implements PromiseLike<void> { this.checkFinished(); this.stores.add(store.name); this.scheduleFinish(); - return new IterQueryStream(this, store.name, {}); + return new IterQueryStream<T>(this, store.name, {}); } count<T>(store: Store<T>): Promise<number> { @@ -583,7 +583,7 @@ export class QueryRoot implements PromiseLike<void> { this.checkFinished(); this.stores.add(index.storeName); this.scheduleFinish(); - return new IterQueryStream(this, index.storeName, { + return new IterQueryStream<T>(this, index.storeName, { only, indexName: index.indexName }); @@ -714,7 +714,7 @@ export class QueryRoot implements PromiseLike<void> { throw Error("key must not be undefined"); } - const {resolve, promise} = openPromise(); + const {resolve, promise} = openPromise<void>(); const doGetIndexed = (tx: IDBTransaction) => { const req = tx.objectStore(index.storeName) diff --git a/src/renderHtml.tsx b/src/renderHtml.tsx index 79e101b17..1e6c5a8e1 100644 --- a/src/renderHtml.tsx +++ b/src/renderHtml.tsx @@ -22,7 +22,8 @@ import {AmountJson, Contract, Amounts} from "./types"; -import * as i18n from "src/i18n"; +import * as i18n from "./i18n"; +import * as React from "react"; export function prettyAmount(amount: AmountJson) { let v = amount.value + amount.fraction / Amounts.fractionalBase; diff --git a/src/types-test.ts b/src/types-test.ts index 7298728ff..32e07bd0f 100644 --- a/src/types-test.ts +++ b/src/types-test.ts @@ -1,4 +1,4 @@ -import {test, TestLib} from "testlib/talertest"; +import {test, TestLib} from "talertest"; import {Amounts} from "./types"; import * as types from "./types"; diff --git a/src/vendor/URI.js b/src/vendor/URI.js deleted file mode 100644 index c041b4304..000000000 --- a/src/vendor/URI.js +++ /dev/null @@ -1,2162 +0,0 @@ -/*! - * URI.js - Mutating URLs - * - * Version: 1.17.0 - * - * Author: Rodney Rehm - * Web: http://medialize.github.io/URI.js/ - * - * Licensed under - * MIT License http://www.opensource.org/licenses/mit-license - * GPL v3 http://opensource.org/licenses/GPL-3.0 - * - */ -(function (root, factory) { - 'use strict'; - // https://github.com/umdjs/umd/blob/master/returnExports.js - if (typeof exports === 'object') { - // Node - module.exports = factory(require('./punycode'), require('./IPv6'), require('./SecondLevelDomains')); - } else if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['./punycode', './IPv6', './SecondLevelDomains'], factory); - } else { - // Browser globals (root is window) - root.URI = factory(root.punycode, root.IPv6, root.SecondLevelDomains, root); - } -}(this, function (punycode, IPv6, SLD, root) { - 'use strict'; - /*global location, escape, unescape */ - // FIXME: v2.0.0 renamce non-camelCase properties to uppercase - /*jshint camelcase: false */ - - // save current URI variable, if any - var _URI = root && root.URI; - - function URI(url, base) { - var _urlSupplied = arguments.length >= 1; - var _baseSupplied = arguments.length >= 2; - - // Allow instantiation without the 'new' keyword - if (!(this instanceof URI)) { - if (_urlSupplied) { - if (_baseSupplied) { - return new URI(url, base); - } - - return new URI(url); - } - - return new URI(); - } - - if (url === undefined) { - if (_urlSupplied) { - throw new TypeError('undefined is not a valid argument for URI'); - } - - if (typeof location !== 'undefined') { - url = location.href + ''; - } else { - url = ''; - } - } - - this.href(url); - - // resolve to base according to http://dvcs.w3.org/hg/url/raw-file/tip/Overview.html#constructor - if (base !== undefined) { - return this.absoluteTo(base); - } - - return this; - } - - URI.version = '1.17.0'; - - var p = URI.prototype; - var hasOwn = Object.prototype.hasOwnProperty; - - function escapeRegEx(string) { - // https://github.com/medialize/URI.js/commit/85ac21783c11f8ccab06106dba9735a31a86924d#commitcomment-821963 - return string.replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1'); - } - - function getType(value) { - // IE8 doesn't return [Object Undefined] but [Object Object] for undefined value - if (value === undefined) { - return 'Undefined'; - } - - return String(Object.prototype.toString.call(value)).slice(8, -1); - } - - function isArray(obj) { - return getType(obj) === 'Array'; - } - - function filterArrayValues(data, value) { - var lookup = {}; - var i, length; - - if (getType(value) === 'RegExp') { - lookup = null; - } else if (isArray(value)) { - for (i = 0, length = value.length; i < length; i++) { - lookup[value[i]] = true; - } - } else { - lookup[value] = true; - } - - for (i = 0, length = data.length; i < length; i++) { - /*jshint laxbreak: true */ - var _match = lookup && lookup[data[i]] !== undefined - || !lookup && value.test(data[i]); - /*jshint laxbreak: false */ - if (_match) { - data.splice(i, 1); - length--; - i--; - } - } - - return data; - } - - function arrayContains(list, value) { - var i, length; - - // value may be string, number, array, regexp - if (isArray(value)) { - // Note: this can be optimized to O(n) (instead of current O(m * n)) - for (i = 0, length = value.length; i < length; i++) { - if (!arrayContains(list, value[i])) { - return false; - } - } - - return true; - } - - var _type = getType(value); - for (i = 0, length = list.length; i < length; i++) { - if (_type === 'RegExp') { - if (typeof list[i] === 'string' && list[i].match(value)) { - return true; - } - } else if (list[i] === value) { - return true; - } - } - - return false; - } - - function arraysEqual(one, two) { - if (!isArray(one) || !isArray(two)) { - return false; - } - - // arrays can't be equal if they have different amount of content - if (one.length !== two.length) { - return false; - } - - one.sort(); - two.sort(); - - for (var i = 0, l = one.length; i < l; i++) { - if (one[i] !== two[i]) { - return false; - } - } - - return true; - } - - function trimSlashes(text) { - var trim_expression = /^\/+|\/+$/g; - return text.replace(trim_expression, ''); - } - - URI._parts = function() { - return { - protocol: null, - username: null, - password: null, - hostname: null, - urn: null, - port: null, - path: null, - query: null, - fragment: null, - // state - duplicateQueryParameters: URI.duplicateQueryParameters, - escapeQuerySpace: URI.escapeQuerySpace - }; - }; - // state: allow duplicate query parameters (a=1&a=1) - URI.duplicateQueryParameters = false; - // state: replaces + with %20 (space in query strings) - URI.escapeQuerySpace = true; - // static properties - URI.protocol_expression = /^[a-z][a-z0-9.+-]*$/i; - URI.idn_expression = /[^a-z0-9\.-]/i; - URI.punycode_expression = /(xn--)/i; - // well, 333.444.555.666 matches, but it sure ain't no IPv4 - do we care? - URI.ip4_expression = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/; - // credits to Rich Brown - // source: http://forums.intermapper.com/viewtopic.php?p=1096#1096 - // specification: http://www.ietf.org/rfc/rfc4291.txt - URI.ip6_expression = /^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/; - // expression used is "gruber revised" (@gruber v2) determined to be the - // best solution in a regex-golf we did a couple of ages ago at - // * http://mathiasbynens.be/demo/url-regex - // * http://rodneyrehm.de/t/url-regex.html - URI.find_uri_expression = /\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/ig; - URI.findUri = { - // valid "scheme://" or "www." - start: /\b(?:([a-z][a-z0-9.+-]*:\/\/)|www\.)/gi, - // everything up to the next whitespace - end: /[\s\r\n]|$/, - // trim trailing punctuation captured by end RegExp - trim: /[`!()\[\]{};:'".,<>?«»“”„‘’]+$/ - }; - // http://www.iana.org/assignments/uri-schemes.html - // http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers#Well-known_ports - URI.defaultPorts = { - http: '80', - https: '443', - ftp: '21', - gopher: '70', - ws: '80', - wss: '443' - }; - // allowed hostname characters according to RFC 3986 - // ALPHA DIGIT "-" "." "_" "~" "!" "$" "&" "'" "(" ")" "*" "+" "," ";" "=" %encoded - // I've never seen a (non-IDN) hostname other than: ALPHA DIGIT . - - URI.invalid_hostname_characters = /[^a-zA-Z0-9\.-]/; - // map DOM Elements to their URI attribute - URI.domAttributes = { - 'a': 'href', - 'blockquote': 'cite', - 'link': 'href', - 'base': 'href', - 'script': 'src', - 'form': 'action', - 'img': 'src', - 'area': 'href', - 'iframe': 'src', - 'embed': 'src', - 'source': 'src', - 'track': 'src', - 'input': 'src', // but only if type="image" - 'audio': 'src', - 'video': 'src' - }; - URI.getDomAttribute = function(node) { - if (!node || !node.nodeName) { - return undefined; - } - - var nodeName = node.nodeName.toLowerCase(); - // <input> should only expose src for type="image" - if (nodeName === 'input' && node.type !== 'image') { - return undefined; - } - - return URI.domAttributes[nodeName]; - }; - - function escapeForDumbFirefox36(value) { - // https://github.com/medialize/URI.js/issues/91 - return escape(value); - } - - // encoding / decoding according to RFC3986 - function strictEncodeURIComponent(string) { - // see https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/encodeURIComponent - return encodeURIComponent(string) - .replace(/[!'()*]/g, escapeForDumbFirefox36) - .replace(/\*/g, '%2A'); - } - URI.encode = strictEncodeURIComponent; - URI.decode = decodeURIComponent; - URI.iso8859 = function() { - URI.encode = escape; - URI.decode = unescape; - }; - URI.unicode = function() { - URI.encode = strictEncodeURIComponent; - URI.decode = decodeURIComponent; - }; - URI.characters = { - pathname: { - encode: { - // RFC3986 2.1: For consistency, URI producers and normalizers should - // use uppercase hexadecimal digits for all percent-encodings. - expression: /%(24|26|2B|2C|3B|3D|3A|40)/ig, - map: { - // -._~!'()* - '%24': '$', - '%26': '&', - '%2B': '+', - '%2C': ',', - '%3B': ';', - '%3D': '=', - '%3A': ':', - '%40': '@' - } - }, - decode: { - expression: /[\/\?#]/g, - map: { - '/': '%2F', - '?': '%3F', - '#': '%23' - } - } - }, - reserved: { - encode: { - // RFC3986 2.1: For consistency, URI producers and normalizers should - // use uppercase hexadecimal digits for all percent-encodings. - expression: /%(21|23|24|26|27|28|29|2A|2B|2C|2F|3A|3B|3D|3F|40|5B|5D)/ig, - map: { - // gen-delims - '%3A': ':', - '%2F': '/', - '%3F': '?', - '%23': '#', - '%5B': '[', - '%5D': ']', - '%40': '@', - // sub-delims - '%21': '!', - '%24': '$', - '%26': '&', - '%27': '\'', - '%28': '(', - '%29': ')', - '%2A': '*', - '%2B': '+', - '%2C': ',', - '%3B': ';', - '%3D': '=' - } - } - }, - urnpath: { - // The characters under `encode` are the characters called out by RFC 2141 as being acceptable - // for usage in a URN. RFC2141 also calls out "-", ".", and "_" as acceptable characters, but - // these aren't encoded by encodeURIComponent, so we don't have to call them out here. Also - // note that the colon character is not featured in the encoding map; this is because URI.js - // gives the colons in URNs semantic meaning as the delimiters of path segements, and so it - // should not appear unencoded in a segment itself. - // See also the note above about RFC3986 and capitalalized hex digits. - encode: { - expression: /%(21|24|27|28|29|2A|2B|2C|3B|3D|40)/ig, - map: { - '%21': '!', - '%24': '$', - '%27': '\'', - '%28': '(', - '%29': ')', - '%2A': '*', - '%2B': '+', - '%2C': ',', - '%3B': ';', - '%3D': '=', - '%40': '@' - } - }, - // These characters are the characters called out by RFC2141 as "reserved" characters that - // should never appear in a URN, plus the colon character (see note above). - decode: { - expression: /[\/\?#:]/g, - map: { - '/': '%2F', - '?': '%3F', - '#': '%23', - ':': '%3A' - } - } - } - }; - URI.encodeQuery = function(string, escapeQuerySpace) { - var escaped = URI.encode(string + ''); - if (escapeQuerySpace === undefined) { - escapeQuerySpace = URI.escapeQuerySpace; - } - - return escapeQuerySpace ? escaped.replace(/%20/g, '+') : escaped; - }; - URI.decodeQuery = function(string, escapeQuerySpace) { - string += ''; - if (escapeQuerySpace === undefined) { - escapeQuerySpace = URI.escapeQuerySpace; - } - - try { - return URI.decode(escapeQuerySpace ? string.replace(/\+/g, '%20') : string); - } catch(e) { - // we're not going to mess with weird encodings, - // give up and return the undecoded original string - // see https://github.com/medialize/URI.js/issues/87 - // see https://github.com/medialize/URI.js/issues/92 - return string; - } - }; - // generate encode/decode path functions - var _parts = {'encode':'encode', 'decode':'decode'}; - var _part; - var generateAccessor = function(_group, _part) { - return function(string) { - try { - return URI[_part](string + '').replace(URI.characters[_group][_part].expression, function(c) { - return URI.characters[_group][_part].map[c]; - }); - } catch (e) { - // we're not going to mess with weird encodings, - // give up and return the undecoded original string - // see https://github.com/medialize/URI.js/issues/87 - // see https://github.com/medialize/URI.js/issues/92 - return string; - } - }; - }; - - for (_part in _parts) { - URI[_part + 'PathSegment'] = generateAccessor('pathname', _parts[_part]); - URI[_part + 'UrnPathSegment'] = generateAccessor('urnpath', _parts[_part]); - } - - var generateSegmentedPathFunction = function(_sep, _codingFuncName, _innerCodingFuncName) { - return function(string) { - // Why pass in names of functions, rather than the function objects themselves? The - // definitions of some functions (but in particular, URI.decode) will occasionally change due - // to URI.js having ISO8859 and Unicode modes. Passing in the name and getting it will ensure - // that the functions we use here are "fresh". - var actualCodingFunc; - if (!_innerCodingFuncName) { - actualCodingFunc = URI[_codingFuncName]; - } else { - actualCodingFunc = function(string) { - return URI[_codingFuncName](URI[_innerCodingFuncName](string)); - }; - } - - var segments = (string + '').split(_sep); - - for (var i = 0, length = segments.length; i < length; i++) { - segments[i] = actualCodingFunc(segments[i]); - } - - return segments.join(_sep); - }; - }; - - // This takes place outside the above loop because we don't want, e.g., encodeUrnPath functions. - URI.decodePath = generateSegmentedPathFunction('/', 'decodePathSegment'); - URI.decodeUrnPath = generateSegmentedPathFunction(':', 'decodeUrnPathSegment'); - URI.recodePath = generateSegmentedPathFunction('/', 'encodePathSegment', 'decode'); - URI.recodeUrnPath = generateSegmentedPathFunction(':', 'encodeUrnPathSegment', 'decode'); - - URI.encodeReserved = generateAccessor('reserved', 'encode'); - - URI.parse = function(string, parts) { - var pos; - if (!parts) { - parts = {}; - } - // [protocol"://"[username[":"password]"@"]hostname[":"port]"/"?][path]["?"querystring]["#"fragment] - - // extract fragment - pos = string.indexOf('#'); - if (pos > -1) { - // escaping? - parts.fragment = string.substring(pos + 1) || null; - string = string.substring(0, pos); - } - - // extract query - pos = string.indexOf('?'); - if (pos > -1) { - // escaping? - parts.query = string.substring(pos + 1) || null; - string = string.substring(0, pos); - } - - // extract protocol - if (string.substring(0, 2) === '//') { - // relative-scheme - parts.protocol = null; - string = string.substring(2); - // extract "user:pass@host:port" - string = URI.parseAuthority(string, parts); - } else { - pos = string.indexOf(':'); - if (pos > -1) { - parts.protocol = string.substring(0, pos) || null; - if (parts.protocol && !parts.protocol.match(URI.protocol_expression)) { - // : may be within the path - parts.protocol = undefined; - } else if (string.substring(pos + 1, pos + 3) === '//') { - string = string.substring(pos + 3); - - // extract "user:pass@host:port" - string = URI.parseAuthority(string, parts); - } else { - string = string.substring(pos + 1); - parts.urn = true; - } - } - } - - // what's left must be the path - parts.path = string; - - // and we're done - return parts; - }; - URI.parseHost = function(string, parts) { - // Copy chrome, IE, opera backslash-handling behavior. - // Back slashes before the query string get converted to forward slashes - // See: https://github.com/joyent/node/blob/386fd24f49b0e9d1a8a076592a404168faeecc34/lib/url.js#L115-L124 - // See: https://code.google.com/p/chromium/issues/detail?id=25916 - // https://github.com/medialize/URI.js/pull/233 - string = string.replace(/\\/g, '/'); - - // extract host:port - var pos = string.indexOf('/'); - var bracketPos; - var t; - - if (pos === -1) { - pos = string.length; - } - - if (string.charAt(0) === '[') { - // IPv6 host - http://tools.ietf.org/html/draft-ietf-6man-text-addr-representation-04#section-6 - // I claim most client software breaks on IPv6 anyways. To simplify things, URI only accepts - // IPv6+port in the format [2001:db8::1]:80 (for the time being) - bracketPos = string.indexOf(']'); - parts.hostname = string.substring(1, bracketPos) || null; - parts.port = string.substring(bracketPos + 2, pos) || null; - if (parts.port === '/') { - parts.port = null; - } - } else { - var firstColon = string.indexOf(':'); - var firstSlash = string.indexOf('/'); - var nextColon = string.indexOf(':', firstColon + 1); - if (nextColon !== -1 && (firstSlash === -1 || nextColon < firstSlash)) { - // IPv6 host contains multiple colons - but no port - // this notation is actually not allowed by RFC 3986, but we're a liberal parser - parts.hostname = string.substring(0, pos) || null; - parts.port = null; - } else { - t = string.substring(0, pos).split(':'); - parts.hostname = t[0] || null; - parts.port = t[1] || null; - } - } - - if (parts.hostname && string.substring(pos).charAt(0) !== '/') { - pos++; - string = '/' + string; - } - - return string.substring(pos) || '/'; - }; - URI.parseAuthority = function(string, parts) { - string = URI.parseUserinfo(string, parts); - return URI.parseHost(string, parts); - }; - URI.parseUserinfo = function(string, parts) { - // extract username:password - var firstSlash = string.indexOf('/'); - var pos = string.lastIndexOf('@', firstSlash > -1 ? firstSlash : string.length - 1); - var t; - - // authority@ must come before /path - if (pos > -1 && (firstSlash === -1 || pos < firstSlash)) { - t = string.substring(0, pos).split(':'); - parts.username = t[0] ? URI.decode(t[0]) : null; - t.shift(); - parts.password = t[0] ? URI.decode(t.join(':')) : null; - string = string.substring(pos + 1); - } else { - parts.username = null; - parts.password = null; - } - - return string; - }; - URI.parseQuery = function(string, escapeQuerySpace) { - if (!string) { - return {}; - } - - // throw out the funky business - "?"[name"="value"&"]+ - string = string.replace(/&+/g, '&').replace(/^\?*&*|&+$/g, ''); - - if (!string) { - return {}; - } - - var items = {}; - var splits = string.split('&'); - var length = splits.length; - var v, name, value; - - for (var i = 0; i < length; i++) { - v = splits[i].split('='); - name = URI.decodeQuery(v.shift(), escapeQuerySpace); - // no "=" is null according to http://dvcs.w3.org/hg/url/raw-file/tip/Overview.html#collect-url-parameters - value = v.length ? URI.decodeQuery(v.join('='), escapeQuerySpace) : null; - - if (hasOwn.call(items, name)) { - if (typeof items[name] === 'string' || items[name] === null) { - items[name] = [items[name]]; - } - - items[name].push(value); - } else { - items[name] = value; - } - } - - return items; - }; - - URI.build = function(parts) { - var t = ''; - - if (parts.protocol) { - t += parts.protocol + ':'; - } - - if (!parts.urn && (t || parts.hostname)) { - t += '//'; - } - - t += (URI.buildAuthority(parts) || ''); - - if (typeof parts.path === 'string') { - if (parts.path.charAt(0) !== '/' && typeof parts.hostname === 'string') { - t += '/'; - } - - t += parts.path; - } - - if (typeof parts.query === 'string' && parts.query) { - t += '?' + parts.query; - } - - if (typeof parts.fragment === 'string' && parts.fragment) { - t += '#' + parts.fragment; - } - return t; - }; - URI.buildHost = function(parts) { - var t = ''; - - if (!parts.hostname) { - return ''; - } else if (URI.ip6_expression.test(parts.hostname)) { - t += '[' + parts.hostname + ']'; - } else { - t += parts.hostname; - } - - if (parts.port) { - t += ':' + parts.port; - } - - return t; - }; - URI.buildAuthority = function(parts) { - return URI.buildUserinfo(parts) + URI.buildHost(parts); - }; - URI.buildUserinfo = function(parts) { - var t = ''; - - if (parts.username) { - t += URI.encode(parts.username); - - if (parts.password) { - t += ':' + URI.encode(parts.password); - } - - t += '@'; - } - - return t; - }; - URI.buildQuery = function(data, duplicateQueryParameters, escapeQuerySpace) { - // according to http://tools.ietf.org/html/rfc3986 or http://labs.apache.org/webarch/uri/rfc/rfc3986.html - // being »-._~!$&'()*+,;=:@/?« %HEX and alnum are allowed - // the RFC explicitly states ?/foo being a valid use case, no mention of parameter syntax! - // URI.js treats the query string as being application/x-www-form-urlencoded - // see http://www.w3.org/TR/REC-html40/interact/forms.html#form-content-type - - var t = ''; - var unique, key, i, length; - for (key in data) { - if (hasOwn.call(data, key) && key) { - if (isArray(data[key])) { - unique = {}; - for (i = 0, length = data[key].length; i < length; i++) { - if (data[key][i] !== undefined && unique[data[key][i] + ''] === undefined) { - t += '&' + URI.buildQueryParameter(key, data[key][i], escapeQuerySpace); - if (duplicateQueryParameters !== true) { - unique[data[key][i] + ''] = true; - } - } - } - } else if (data[key] !== undefined) { - t += '&' + URI.buildQueryParameter(key, data[key], escapeQuerySpace); - } - } - } - - return t.substring(1); - }; - URI.buildQueryParameter = function(name, value, escapeQuerySpace) { - // http://www.w3.org/TR/REC-html40/interact/forms.html#form-content-type -- application/x-www-form-urlencoded - // don't append "=" for null values, according to http://dvcs.w3.org/hg/url/raw-file/tip/Overview.html#url-parameter-serialization - return URI.encodeQuery(name, escapeQuerySpace) + (value !== null ? '=' + URI.encodeQuery(value, escapeQuerySpace) : ''); - }; - - URI.addQuery = function(data, name, value) { - if (typeof name === 'object') { - for (var key in name) { - if (hasOwn.call(name, key)) { - URI.addQuery(data, key, name[key]); - } - } - } else if (typeof name === 'string') { - if (data[name] === undefined) { - data[name] = value; - return; - } else if (typeof data[name] === 'string') { - data[name] = [data[name]]; - } - - if (!isArray(value)) { - value = [value]; - } - - data[name] = (data[name] || []).concat(value); - } else { - throw new TypeError('URI.addQuery() accepts an object, string as the name parameter'); - } - }; - URI.removeQuery = function(data, name, value) { - var i, length, key; - - if (isArray(name)) { - for (i = 0, length = name.length; i < length; i++) { - data[name[i]] = undefined; - } - } else if (getType(name) === 'RegExp') { - for (key in data) { - if (name.test(key)) { - data[key] = undefined; - } - } - } else if (typeof name === 'object') { - for (key in name) { - if (hasOwn.call(name, key)) { - URI.removeQuery(data, key, name[key]); - } - } - } else if (typeof name === 'string') { - if (value !== undefined) { - if (getType(value) === 'RegExp') { - if (!isArray(data[name]) && value.test(data[name])) { - data[name] = undefined; - } else { - data[name] = filterArrayValues(data[name], value); - } - } else if (data[name] === String(value) && (!isArray(value) || value.length === 1)) { - data[name] = undefined; - } else if (isArray(data[name])) { - data[name] = filterArrayValues(data[name], value); - } - } else { - data[name] = undefined; - } - } else { - throw new TypeError('URI.removeQuery() accepts an object, string, RegExp as the first parameter'); - } - }; - URI.hasQuery = function(data, name, value, withinArray) { - if (typeof name === 'object') { - for (var key in name) { - if (hasOwn.call(name, key)) { - if (!URI.hasQuery(data, key, name[key])) { - return false; - } - } - } - - return true; - } else if (typeof name !== 'string') { - throw new TypeError('URI.hasQuery() accepts an object, string as the name parameter'); - } - - switch (getType(value)) { - case 'Undefined': - // true if exists (but may be empty) - return name in data; // data[name] !== undefined; - - case 'Boolean': - // true if exists and non-empty - var _booly = Boolean(isArray(data[name]) ? data[name].length : data[name]); - return value === _booly; - - case 'Function': - // allow complex comparison - return !!value(data[name], name, data); - - case 'Array': - if (!isArray(data[name])) { - return false; - } - - var op = withinArray ? arrayContains : arraysEqual; - return op(data[name], value); - - case 'RegExp': - if (!isArray(data[name])) { - return Boolean(data[name] && data[name].match(value)); - } - - if (!withinArray) { - return false; - } - - return arrayContains(data[name], value); - - case 'Number': - value = String(value); - /* falls through */ - case 'String': - if (!isArray(data[name])) { - return data[name] === value; - } - - if (!withinArray) { - return false; - } - - return arrayContains(data[name], value); - - default: - throw new TypeError('URI.hasQuery() accepts undefined, boolean, string, number, RegExp, Function as the value parameter'); - } - }; - - - URI.commonPath = function(one, two) { - var length = Math.min(one.length, two.length); - var pos; - - // find first non-matching character - for (pos = 0; pos < length; pos++) { - if (one.charAt(pos) !== two.charAt(pos)) { - pos--; - break; - } - } - - if (pos < 1) { - return one.charAt(0) === two.charAt(0) && one.charAt(0) === '/' ? '/' : ''; - } - - // revert to last / - if (one.charAt(pos) !== '/' || two.charAt(pos) !== '/') { - pos = one.substring(0, pos).lastIndexOf('/'); - } - - return one.substring(0, pos + 1); - }; - - URI.withinString = function(string, callback, options) { - options || (options = {}); - var _start = options.start || URI.findUri.start; - var _end = options.end || URI.findUri.end; - var _trim = options.trim || URI.findUri.trim; - var _attributeOpen = /[a-z0-9-]=["']?$/i; - - _start.lastIndex = 0; - while (true) { - var match = _start.exec(string); - if (!match) { - break; - } - - var start = match.index; - if (options.ignoreHtml) { - // attribut(e=["']?$) - var attributeOpen = string.slice(Math.max(start - 3, 0), start); - if (attributeOpen && _attributeOpen.test(attributeOpen)) { - continue; - } - } - - var end = start + string.slice(start).search(_end); - var slice = string.slice(start, end).replace(_trim, ''); - if (options.ignore && options.ignore.test(slice)) { - continue; - } - - end = start + slice.length; - var result = callback(slice, start, end, string); - string = string.slice(0, start) + result + string.slice(end); - _start.lastIndex = start + result.length; - } - - _start.lastIndex = 0; - return string; - }; - - URI.ensureValidHostname = function(v) { - // Theoretically URIs allow percent-encoding in Hostnames (according to RFC 3986) - // they are not part of DNS and therefore ignored by URI.js - - if (v.match(URI.invalid_hostname_characters)) { - // test punycode - if (!punycode) { - throw new TypeError('Hostname "' + v + '" contains characters other than [A-Z0-9.-] and Punycode.js is not available'); - } - - if (punycode.toASCII(v).match(URI.invalid_hostname_characters)) { - throw new TypeError('Hostname "' + v + '" contains characters other than [A-Z0-9.-]'); - } - } - }; - - // noConflict - URI.noConflict = function(removeAll) { - if (removeAll) { - var unconflicted = { - URI: this.noConflict() - }; - - if (root.URITemplate && typeof root.URITemplate.noConflict === 'function') { - unconflicted.URITemplate = root.URITemplate.noConflict(); - } - - if (root.IPv6 && typeof root.IPv6.noConflict === 'function') { - unconflicted.IPv6 = root.IPv6.noConflict(); - } - - if (root.SecondLevelDomains && typeof root.SecondLevelDomains.noConflict === 'function') { - unconflicted.SecondLevelDomains = root.SecondLevelDomains.noConflict(); - } - - return unconflicted; - } else if (root.URI === this) { - root.URI = _URI; - } - - return this; - }; - - p.build = function(deferBuild) { - if (deferBuild === true) { - this._deferred_build = true; - } else if (deferBuild === undefined || this._deferred_build) { - this._string = URI.build(this._parts); - this._deferred_build = false; - } - - return this; - }; - - p.clone = function() { - return new URI(this); - }; - - p.valueOf = p.toString = function() { - return this.build(false)._string; - }; - - - function generateSimpleAccessor(_part){ - return function(v, build) { - if (v === undefined) { - return this._parts[_part] || ''; - } else { - this._parts[_part] = v || null; - this.build(!build); - return this; - } - }; - } - - function generatePrefixAccessor(_part, _key){ - return function(v, build) { - if (v === undefined) { - return this._parts[_part] || ''; - } else { - if (v !== null) { - v = v + ''; - if (v.charAt(0) === _key) { - v = v.substring(1); - } - } - - this._parts[_part] = v; - this.build(!build); - return this; - } - }; - } - - p.protocol = generateSimpleAccessor('protocol'); - p.username = generateSimpleAccessor('username'); - p.password = generateSimpleAccessor('password'); - p.hostname = generateSimpleAccessor('hostname'); - p.port = generateSimpleAccessor('port'); - p.query = generatePrefixAccessor('query', '?'); - p.fragment = generatePrefixAccessor('fragment', '#'); - - p.search = function(v, build) { - var t = this.query(v, build); - return typeof t === 'string' && t.length ? ('?' + t) : t; - }; - p.hash = function(v, build) { - var t = this.fragment(v, build); - return typeof t === 'string' && t.length ? ('#' + t) : t; - }; - - p.pathname = function(v, build) { - if (v === undefined || v === true) { - var res = this._parts.path || (this._parts.hostname ? '/' : ''); - return v ? (this._parts.urn ? URI.decodeUrnPath : URI.decodePath)(res) : res; - } else { - if (this._parts.urn) { - this._parts.path = v ? URI.recodeUrnPath(v) : ''; - } else { - this._parts.path = v ? URI.recodePath(v) : '/'; - } - this.build(!build); - return this; - } - }; - p.path = p.pathname; - p.href = function(href, build) { - var key; - - if (href === undefined) { - return this.toString(); - } - - this._string = ''; - this._parts = URI._parts(); - - var _URI = href instanceof URI; - var _object = typeof href === 'object' && (href.hostname || href.path || href.pathname); - if (href.nodeName) { - var attribute = URI.getDomAttribute(href); - href = href[attribute] || ''; - _object = false; - } - - // window.location is reported to be an object, but it's not the sort - // of object we're looking for: - // * location.protocol ends with a colon - // * location.query != object.search - // * location.hash != object.fragment - // simply serializing the unknown object should do the trick - // (for location, not for everything...) - if (!_URI && _object && href.pathname !== undefined) { - href = href.toString(); - } - - if (typeof href === 'string' || href instanceof String) { - this._parts = URI.parse(String(href), this._parts); - } else if (_URI || _object) { - var src = _URI ? href._parts : href; - for (key in src) { - if (hasOwn.call(this._parts, key)) { - this._parts[key] = src[key]; - } - } - } else { - throw new TypeError('invalid input'); - } - - this.build(!build); - return this; - }; - - // identification accessors - p.is = function(what) { - var ip = false; - var ip4 = false; - var ip6 = false; - var name = false; - var sld = false; - var idn = false; - var punycode = false; - var relative = !this._parts.urn; - - if (this._parts.hostname) { - relative = false; - ip4 = URI.ip4_expression.test(this._parts.hostname); - ip6 = URI.ip6_expression.test(this._parts.hostname); - ip = ip4 || ip6; - name = !ip; - sld = name && SLD && SLD.has(this._parts.hostname); - idn = name && URI.idn_expression.test(this._parts.hostname); - punycode = name && URI.punycode_expression.test(this._parts.hostname); - } - - switch (what.toLowerCase()) { - case 'relative': - return relative; - - case 'absolute': - return !relative; - - // hostname identification - case 'domain': - case 'name': - return name; - - case 'sld': - return sld; - - case 'ip': - return ip; - - case 'ip4': - case 'ipv4': - case 'inet4': - return ip4; - - case 'ip6': - case 'ipv6': - case 'inet6': - return ip6; - - case 'idn': - return idn; - - case 'url': - return !this._parts.urn; - - case 'urn': - return !!this._parts.urn; - - case 'punycode': - return punycode; - } - - return null; - }; - - // component specific input validation - var _protocol = p.protocol; - var _port = p.port; - var _hostname = p.hostname; - - p.protocol = function(v, build) { - if (v !== undefined) { - if (v) { - // accept trailing :// - v = v.replace(/:(\/\/)?$/, ''); - - if (!v.match(URI.protocol_expression)) { - throw new TypeError('Protocol "' + v + '" contains characters other than [A-Z0-9.+-] or doesn\'t start with [A-Z]'); - } - } - } - return _protocol.call(this, v, build); - }; - p.scheme = p.protocol; - p.port = function(v, build) { - if (this._parts.urn) { - return v === undefined ? '' : this; - } - - if (v !== undefined) { - if (v === 0) { - v = null; - } - - if (v) { - v += ''; - if (v.charAt(0) === ':') { - v = v.substring(1); - } - - if (v.match(/[^0-9]/)) { - throw new TypeError('Port "' + v + '" contains characters other than [0-9]'); - } - } - } - return _port.call(this, v, build); - }; - p.hostname = function(v, build) { - if (this._parts.urn) { - return v === undefined ? '' : this; - } - - if (v !== undefined) { - var x = {}; - var res = URI.parseHost(v, x); - if (res !== '/') { - throw new TypeError('Hostname "' + v + '" contains characters other than [A-Z0-9.-]'); - } - - v = x.hostname; - } - return _hostname.call(this, v, build); - }; - - // compound accessors - p.origin = function(v, build) { - var parts; - - if (this._parts.urn) { - return v === undefined ? '' : this; - } - - if (v === undefined) { - var protocol = this.protocol(); - var authority = this.authority(); - if (!authority) return ''; - return (protocol ? protocol + '://' : '') + this.authority(); - } else { - var origin = URI(v); - this - .protocol(origin.protocol()) - .authority(origin.authority()) - .build(!build); - return this; - } - }; - p.host = function(v, build) { - if (this._parts.urn) { - return v === undefined ? '' : this; - } - - if (v === undefined) { - return this._parts.hostname ? URI.buildHost(this._parts) : ''; - } else { - var res = URI.parseHost(v, this._parts); - if (res !== '/') { - throw new TypeError('Hostname "' + v + '" contains characters other than [A-Z0-9.-]'); - } - - this.build(!build); - return this; - } - }; - p.authority = function(v, build) { - if (this._parts.urn) { - return v === undefined ? '' : this; - } - - if (v === undefined) { - return this._parts.hostname ? URI.buildAuthority(this._parts) : ''; - } else { - var res = URI.parseAuthority(v, this._parts); - if (res !== '/') { - throw new TypeError('Hostname "' + v + '" contains characters other than [A-Z0-9.-]'); - } - - this.build(!build); - return this; - } - }; - p.userinfo = function(v, build) { - if (this._parts.urn) { - return v === undefined ? '' : this; - } - - if (v === undefined) { - if (!this._parts.username) { - return ''; - } - - var t = URI.buildUserinfo(this._parts); - return t.substring(0, t.length -1); - } else { - if (v[v.length-1] !== '@') { - v += '@'; - } - - URI.parseUserinfo(v, this._parts); - this.build(!build); - return this; - } - }; - p.resource = function(v, build) { - var parts; - - if (v === undefined) { - return this.path() + this.search() + this.hash(); - } - - parts = URI.parse(v); - this._parts.path = parts.path; - this._parts.query = parts.query; - this._parts.fragment = parts.fragment; - this.build(!build); - return this; - }; - - // fraction accessors - p.subdomain = function(v, build) { - if (this._parts.urn) { - return v === undefined ? '' : this; - } - - // convenience, return "www" from "www.example.org" - if (v === undefined) { - if (!this._parts.hostname || this.is('IP')) { - return ''; - } - - // grab domain and add another segment - var end = this._parts.hostname.length - this.domain().length - 1; - return this._parts.hostname.substring(0, end) || ''; - } else { - var e = this._parts.hostname.length - this.domain().length; - var sub = this._parts.hostname.substring(0, e); - var replace = new RegExp('^' + escapeRegEx(sub)); - - if (v && v.charAt(v.length - 1) !== '.') { - v += '.'; - } - - if (v) { - URI.ensureValidHostname(v); - } - - this._parts.hostname = this._parts.hostname.replace(replace, v); - this.build(!build); - return this; - } - }; - p.domain = function(v, build) { - if (this._parts.urn) { - return v === undefined ? '' : this; - } - - if (typeof v === 'boolean') { - build = v; - v = undefined; - } - - // convenience, return "example.org" from "www.example.org" - if (v === undefined) { - if (!this._parts.hostname || this.is('IP')) { - return ''; - } - - // if hostname consists of 1 or 2 segments, it must be the domain - var t = this._parts.hostname.match(/\./g); - if (t && t.length < 2) { - return this._parts.hostname; - } - - // grab tld and add another segment - var end = this._parts.hostname.length - this.tld(build).length - 1; - end = this._parts.hostname.lastIndexOf('.', end -1) + 1; - return this._parts.hostname.substring(end) || ''; - } else { - if (!v) { - throw new TypeError('cannot set domain empty'); - } - - URI.ensureValidHostname(v); - - if (!this._parts.hostname || this.is('IP')) { - this._parts.hostname = v; - } else { - var replace = new RegExp(escapeRegEx(this.domain()) + '$'); - this._parts.hostname = this._parts.hostname.replace(replace, v); - } - - this.build(!build); - return this; - } - }; - p.tld = function(v, build) { - if (this._parts.urn) { - return v === undefined ? '' : this; - } - - if (typeof v === 'boolean') { - build = v; - v = undefined; - } - - // return "org" from "www.example.org" - if (v === undefined) { - if (!this._parts.hostname || this.is('IP')) { - return ''; - } - - var pos = this._parts.hostname.lastIndexOf('.'); - var tld = this._parts.hostname.substring(pos + 1); - - if (build !== true && SLD && SLD.list[tld.toLowerCase()]) { - return SLD.get(this._parts.hostname) || tld; - } - - return tld; - } else { - var replace; - - if (!v) { - throw new TypeError('cannot set TLD empty'); - } else if (v.match(/[^a-zA-Z0-9-]/)) { - if (SLD && SLD.is(v)) { - replace = new RegExp(escapeRegEx(this.tld()) + '$'); - this._parts.hostname = this._parts.hostname.replace(replace, v); - } else { - throw new TypeError('TLD "' + v + '" contains characters other than [A-Z0-9]'); - } - } else if (!this._parts.hostname || this.is('IP')) { - throw new ReferenceError('cannot set TLD on non-domain host'); - } else { - replace = new RegExp(escapeRegEx(this.tld()) + '$'); - this._parts.hostname = this._parts.hostname.replace(replace, v); - } - - this.build(!build); - return this; - } - }; - p.directory = function(v, build) { - if (this._parts.urn) { - return v === undefined ? '' : this; - } - - if (v === undefined || v === true) { - if (!this._parts.path && !this._parts.hostname) { - return ''; - } - - if (this._parts.path === '/') { - return '/'; - } - - var end = this._parts.path.length - this.filename().length - 1; - var res = this._parts.path.substring(0, end) || (this._parts.hostname ? '/' : ''); - - return v ? URI.decodePath(res) : res; - - } else { - var e = this._parts.path.length - this.filename().length; - var directory = this._parts.path.substring(0, e); - var replace = new RegExp('^' + escapeRegEx(directory)); - - // fully qualifier directories begin with a slash - if (!this.is('relative')) { - if (!v) { - v = '/'; - } - - if (v.charAt(0) !== '/') { - v = '/' + v; - } - } - - // directories always end with a slash - if (v && v.charAt(v.length - 1) !== '/') { - v += '/'; - } - - v = URI.recodePath(v); - this._parts.path = this._parts.path.replace(replace, v); - this.build(!build); - return this; - } - }; - p.filename = function(v, build) { - if (this._parts.urn) { - return v === undefined ? '' : this; - } - - if (v === undefined || v === true) { - if (!this._parts.path || this._parts.path === '/') { - return ''; - } - - var pos = this._parts.path.lastIndexOf('/'); - var res = this._parts.path.substring(pos+1); - - return v ? URI.decodePathSegment(res) : res; - } else { - var mutatedDirectory = false; - - if (v.charAt(0) === '/') { - v = v.substring(1); - } - - if (v.match(/\.?\//)) { - mutatedDirectory = true; - } - - var replace = new RegExp(escapeRegEx(this.filename()) + '$'); - v = URI.recodePath(v); - this._parts.path = this._parts.path.replace(replace, v); - - if (mutatedDirectory) { - this.normalizePath(build); - } else { - this.build(!build); - } - - return this; - } - }; - p.suffix = function(v, build) { - if (this._parts.urn) { - return v === undefined ? '' : this; - } - - if (v === undefined || v === true) { - if (!this._parts.path || this._parts.path === '/') { - return ''; - } - - var filename = this.filename(); - var pos = filename.lastIndexOf('.'); - var s, res; - - if (pos === -1) { - return ''; - } - - // suffix may only contain alnum characters (yup, I made this up.) - s = filename.substring(pos+1); - res = (/^[a-z0-9%]+$/i).test(s) ? s : ''; - return v ? URI.decodePathSegment(res) : res; - } else { - if (v.charAt(0) === '.') { - v = v.substring(1); - } - - var suffix = this.suffix(); - var replace; - - if (!suffix) { - if (!v) { - return this; - } - - this._parts.path += '.' + URI.recodePath(v); - } else if (!v) { - replace = new RegExp(escapeRegEx('.' + suffix) + '$'); - } else { - replace = new RegExp(escapeRegEx(suffix) + '$'); - } - - if (replace) { - v = URI.recodePath(v); - this._parts.path = this._parts.path.replace(replace, v); - } - - this.build(!build); - return this; - } - }; - p.segment = function(segment, v, build) { - var separator = this._parts.urn ? ':' : '/'; - var path = this.path(); - var absolute = path.substring(0, 1) === '/'; - var segments = path.split(separator); - - if (segment !== undefined && typeof segment !== 'number') { - build = v; - v = segment; - segment = undefined; - } - - if (segment !== undefined && typeof segment !== 'number') { - throw new Error('Bad segment "' + segment + '", must be 0-based integer'); - } - - if (absolute) { - segments.shift(); - } - - if (segment < 0) { - // allow negative indexes to address from the end - segment = Math.max(segments.length + segment, 0); - } - - if (v === undefined) { - /*jshint laxbreak: true */ - return segment === undefined - ? segments - : segments[segment]; - /*jshint laxbreak: false */ - } else if (segment === null || segments[segment] === undefined) { - if (isArray(v)) { - segments = []; - // collapse empty elements within array - for (var i=0, l=v.length; i < l; i++) { - if (!v[i].length && (!segments.length || !segments[segments.length -1].length)) { - continue; - } - - if (segments.length && !segments[segments.length -1].length) { - segments.pop(); - } - - segments.push(trimSlashes(v[i])); - } - } else if (v || typeof v === 'string') { - v = trimSlashes(v); - if (segments[segments.length -1] === '') { - // empty trailing elements have to be overwritten - // to prevent results such as /foo//bar - segments[segments.length -1] = v; - } else { - segments.push(v); - } - } - } else { - if (v) { - segments[segment] = trimSlashes(v); - } else { - segments.splice(segment, 1); - } - } - - if (absolute) { - segments.unshift(''); - } - - return this.path(segments.join(separator), build); - }; - p.segmentCoded = function(segment, v, build) { - var segments, i, l; - - if (typeof segment !== 'number') { - build = v; - v = segment; - segment = undefined; - } - - if (v === undefined) { - segments = this.segment(segment, v, build); - if (!isArray(segments)) { - segments = segments !== undefined ? URI.decode(segments) : undefined; - } else { - for (i = 0, l = segments.length; i < l; i++) { - segments[i] = URI.decode(segments[i]); - } - } - - return segments; - } - - if (!isArray(v)) { - v = (typeof v === 'string' || v instanceof String) ? URI.encode(v) : v; - } else { - for (i = 0, l = v.length; i < l; i++) { - v[i] = URI.encode(v[i]); - } - } - - return this.segment(segment, v, build); - }; - - // mutating query string - var q = p.query; - p.query = function(v, build) { - if (v === true) { - return URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace); - } else if (typeof v === 'function') { - var data = URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace); - var result = v.call(this, data); - this._parts.query = URI.buildQuery(result || data, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace); - this.build(!build); - return this; - } else if (v !== undefined && typeof v !== 'string') { - this._parts.query = URI.buildQuery(v, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace); - this.build(!build); - return this; - } else { - return q.call(this, v, build); - } - }; - p.setQuery = function(name, value, build) { - var data = URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace); - - if (typeof name === 'string' || name instanceof String) { - data[name] = value !== undefined ? value : null; - } else if (typeof name === 'object') { - for (var key in name) { - if (hasOwn.call(name, key)) { - data[key] = name[key]; - } - } - } else { - throw new TypeError('URI.addQuery() accepts an object, string as the name parameter'); - } - - this._parts.query = URI.buildQuery(data, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace); - if (typeof name !== 'string') { - build = value; - } - - this.build(!build); - return this; - }; - p.addQuery = function(name, value, build) { - var data = URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace); - URI.addQuery(data, name, value === undefined ? null : value); - this._parts.query = URI.buildQuery(data, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace); - if (typeof name !== 'string') { - build = value; - } - - this.build(!build); - return this; - }; - p.removeQuery = function(name, value, build) { - var data = URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace); - URI.removeQuery(data, name, value); - this._parts.query = URI.buildQuery(data, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace); - if (typeof name !== 'string') { - build = value; - } - - this.build(!build); - return this; - }; - p.hasQuery = function(name, value, withinArray) { - var data = URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace); - return URI.hasQuery(data, name, value, withinArray); - }; - p.setSearch = p.setQuery; - p.addSearch = p.addQuery; - p.removeSearch = p.removeQuery; - p.hasSearch = p.hasQuery; - - // sanitizing URLs - p.normalize = function() { - if (this._parts.urn) { - return this - .normalizeProtocol(false) - .normalizePath(false) - .normalizeQuery(false) - .normalizeFragment(false) - .build(); - } - - return this - .normalizeProtocol(false) - .normalizeHostname(false) - .normalizePort(false) - .normalizePath(false) - .normalizeQuery(false) - .normalizeFragment(false) - .build(); - }; - p.normalizeProtocol = function(build) { - if (typeof this._parts.protocol === 'string') { - this._parts.protocol = this._parts.protocol.toLowerCase(); - this.build(!build); - } - - return this; - }; - p.normalizeHostname = function(build) { - if (this._parts.hostname) { - if (this.is('IDN') && punycode) { - this._parts.hostname = punycode.toASCII(this._parts.hostname); - } else if (this.is('IPv6') && IPv6) { - this._parts.hostname = IPv6.best(this._parts.hostname); - } - - this._parts.hostname = this._parts.hostname.toLowerCase(); - this.build(!build); - } - - return this; - }; - p.normalizePort = function(build) { - // remove port of it's the protocol's default - if (typeof this._parts.protocol === 'string' && this._parts.port === URI.defaultPorts[this._parts.protocol]) { - this._parts.port = null; - this.build(!build); - } - - return this; - }; - p.normalizePath = function(build) { - var _path = this._parts.path; - if (!_path) { - return this; - } - - if (this._parts.urn) { - this._parts.path = URI.recodeUrnPath(this._parts.path); - this.build(!build); - return this; - } - - if (this._parts.path === '/') { - return this; - } - - _path = URI.recodePath(_path); - - var _was_relative; - var _leadingParents = ''; - var _parent, _pos; - - // handle relative paths - if (_path.charAt(0) !== '/') { - _was_relative = true; - _path = '/' + _path; - } - - // handle relative files (as opposed to directories) - if (_path.slice(-3) === '/..' || _path.slice(-2) === '/.') { - _path += '/'; - } - - // resolve simples - _path = _path - .replace(/(\/(\.\/)+)|(\/\.$)/g, '/') - .replace(/\/{2,}/g, '/'); - - // remember leading parents - if (_was_relative) { - _leadingParents = _path.substring(1).match(/^(\.\.\/)+/) || ''; - if (_leadingParents) { - _leadingParents = _leadingParents[0]; - } - } - - // resolve parents - while (true) { - _parent = _path.search(/\/\.\.(\/|$)/); - if (_parent === -1) { - // no more ../ to resolve - break; - } else if (_parent === 0) { - // top level cannot be relative, skip it - _path = _path.substring(3); - continue; - } - - _pos = _path.substring(0, _parent).lastIndexOf('/'); - if (_pos === -1) { - _pos = _parent; - } - _path = _path.substring(0, _pos) + _path.substring(_parent + 3); - } - - // revert to relative - if (_was_relative && this.is('relative')) { - _path = _leadingParents + _path.substring(1); - } - - this._parts.path = _path; - this.build(!build); - return this; - }; - p.normalizePathname = p.normalizePath; - p.normalizeQuery = function(build) { - if (typeof this._parts.query === 'string') { - if (!this._parts.query.length) { - this._parts.query = null; - } else { - this.query(URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace)); - } - - this.build(!build); - } - - return this; - }; - p.normalizeFragment = function(build) { - if (!this._parts.fragment) { - this._parts.fragment = null; - this.build(!build); - } - - return this; - }; - p.normalizeSearch = p.normalizeQuery; - p.normalizeHash = p.normalizeFragment; - - p.iso8859 = function() { - // expect unicode input, iso8859 output - var e = URI.encode; - var d = URI.decode; - - URI.encode = escape; - URI.decode = decodeURIComponent; - try { - this.normalize(); - } finally { - URI.encode = e; - URI.decode = d; - } - return this; - }; - - p.unicode = function() { - // expect iso8859 input, unicode output - var e = URI.encode; - var d = URI.decode; - - URI.encode = strictEncodeURIComponent; - URI.decode = unescape; - try { - this.normalize(); - } finally { - URI.encode = e; - URI.decode = d; - } - return this; - }; - - p.readable = function() { - var uri = this.clone(); - // removing username, password, because they shouldn't be displayed according to RFC 3986 - uri.username('').password('').normalize(); - var t = ''; - if (uri._parts.protocol) { - t += uri._parts.protocol + '://'; - } - - if (uri._parts.hostname) { - if (uri.is('punycode') && punycode) { - t += punycode.toUnicode(uri._parts.hostname); - if (uri._parts.port) { - t += ':' + uri._parts.port; - } - } else { - t += uri.host(); - } - } - - if (uri._parts.hostname && uri._parts.path && uri._parts.path.charAt(0) !== '/') { - t += '/'; - } - - t += uri.path(true); - if (uri._parts.query) { - var q = ''; - for (var i = 0, qp = uri._parts.query.split('&'), l = qp.length; i < l; i++) { - var kv = (qp[i] || '').split('='); - q += '&' + URI.decodeQuery(kv[0], this._parts.escapeQuerySpace) - .replace(/&/g, '%26'); - - if (kv[1] !== undefined) { - q += '=' + URI.decodeQuery(kv[1], this._parts.escapeQuerySpace) - .replace(/&/g, '%26'); - } - } - t += '?' + q.substring(1); - } - - t += URI.decodeQuery(uri.hash(), true); - return t; - }; - - // resolving relative and absolute URLs - p.absoluteTo = function(base) { - var resolved = this.clone(); - var properties = ['protocol', 'username', 'password', 'hostname', 'port']; - var basedir, i, p; - - if (this._parts.urn) { - throw new Error('URNs do not have any generally defined hierarchical components'); - } - - if (!(base instanceof URI)) { - base = new URI(base); - } - - if (!resolved._parts.protocol) { - resolved._parts.protocol = base._parts.protocol; - } - - if (this._parts.hostname) { - return resolved; - } - - for (i = 0; (p = properties[i]); i++) { - resolved._parts[p] = base._parts[p]; - } - - if (!resolved._parts.path) { - resolved._parts.path = base._parts.path; - if (!resolved._parts.query) { - resolved._parts.query = base._parts.query; - } - } else if (resolved._parts.path.substring(-2) === '..') { - resolved._parts.path += '/'; - } - - if (resolved.path().charAt(0) !== '/') { - basedir = base.directory(); - basedir = basedir ? basedir : base.path().indexOf('/') === 0 ? '/' : ''; - resolved._parts.path = (basedir ? (basedir + '/') : '') + resolved._parts.path; - resolved.normalizePath(); - } - - resolved.build(); - return resolved; - }; - p.relativeTo = function(base) { - var relative = this.clone().normalize(); - var relativeParts, baseParts, common, relativePath, basePath; - - if (relative._parts.urn) { - throw new Error('URNs do not have any generally defined hierarchical components'); - } - - base = new URI(base).normalize(); - relativeParts = relative._parts; - baseParts = base._parts; - relativePath = relative.path(); - basePath = base.path(); - - if (relativePath.charAt(0) !== '/') { - throw new Error('URI is already relative'); - } - - if (basePath.charAt(0) !== '/') { - throw new Error('Cannot calculate a URI relative to another relative URI'); - } - - if (relativeParts.protocol === baseParts.protocol) { - relativeParts.protocol = null; - } - - if (relativeParts.username !== baseParts.username || relativeParts.password !== baseParts.password) { - return relative.build(); - } - - if (relativeParts.protocol !== null || relativeParts.username !== null || relativeParts.password !== null) { - return relative.build(); - } - - if (relativeParts.hostname === baseParts.hostname && relativeParts.port === baseParts.port) { - relativeParts.hostname = null; - relativeParts.port = null; - } else { - return relative.build(); - } - - if (relativePath === basePath) { - relativeParts.path = ''; - return relative.build(); - } - - // determine common sub path - common = URI.commonPath(relativePath, basePath); - - // If the paths have nothing in common, return a relative URL with the absolute path. - if (!common) { - return relative.build(); - } - - var parents = baseParts.path - .substring(common.length) - .replace(/[^\/]*$/, '') - .replace(/.*?\//g, '../'); - - relativeParts.path = (parents + relativeParts.path.substring(common.length)) || './'; - - return relative.build(); - }; - - // comparing URIs - p.equals = function(uri) { - var one = this.clone(); - var two = new URI(uri); - var one_map = {}; - var two_map = {}; - var checked = {}; - var one_query, two_query, key; - - one.normalize(); - two.normalize(); - - // exact match - if (one.toString() === two.toString()) { - return true; - } - - // extract query string - one_query = one.query(); - two_query = two.query(); - one.query(''); - two.query(''); - - // definitely not equal if not even non-query parts match - if (one.toString() !== two.toString()) { - return false; - } - - // query parameters have the same length, even if they're permuted - if (one_query.length !== two_query.length) { - return false; - } - - one_map = URI.parseQuery(one_query, this._parts.escapeQuerySpace); - two_map = URI.parseQuery(two_query, this._parts.escapeQuerySpace); - - for (key in one_map) { - if (hasOwn.call(one_map, key)) { - if (!isArray(one_map[key])) { - if (one_map[key] !== two_map[key]) { - return false; - } - } else if (!arraysEqual(one_map[key], two_map[key])) { - return false; - } - - checked[key] = true; - } - } - - for (key in two_map) { - if (hasOwn.call(two_map, key)) { - if (!checked[key]) { - // two contains a parameter not present in one - return false; - } - } - } - - return true; - }; - - // state - p.duplicateQueryParameters = function(v) { - this._parts.duplicateQueryParameters = !!v; - return this; - }; - - p.escapeQuerySpace = function(v) { - this._parts.escapeQuerySpace = !!v; - return this; - }; - - return URI; -})); diff --git a/src/vendor/jed.d.ts b/src/vendor/jed.d.ts deleted file mode 100644 index 2e64cba08..000000000 --- a/src/vendor/jed.d.ts +++ /dev/null @@ -1,13 +0,0 @@ - -interface JedModule { - translate: any; - ngettext: any; -} - -interface JedConstructor { - new(s: any): JedModule; -} - -declare const Jed: JedConstructor; - -export default Jed; diff --git a/src/vendor/jed.js b/src/vendor/jed.js deleted file mode 120000 index 72ac5c3ec..000000000 --- a/src/vendor/jed.js +++ /dev/null @@ -1 +0,0 @@ -../../thirdparty/jed/jed.js
\ No newline at end of file diff --git a/src/vendor/react-dom.dev.js b/src/vendor/react-dom.dev.js deleted file mode 100644 index 8e846a803..000000000 --- a/src/vendor/react-dom.dev.js +++ /dev/null @@ -1,18525 +0,0 @@ - /** - * ReactDOM v16.0.0-alpha - */ - -;(function(f) { - // CommonJS - if (typeof exports === "object" && typeof module !== "undefined") { - f(require('react')); - - // RequireJS - } else if (typeof define === "function" && define.amd) { - require(['react'], f); - - // <script> - } else { - var g; - if (typeof window !== "undefined") { - g = window; - } else if (typeof global !== "undefined") { - g = global; - } else if (typeof self !== "undefined") { - g = self; - } else { - // works providing we're not in "use strict"; - // needed for Java 8 Nashorn - // see https://github.com/facebook/react/issues/3037 - g = this; - } - f(g.React) - } -})(function(React) { - (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.ReactDOM = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var ARIADOMPropertyConfig = { - Properties: { - // Global States and Properties - 'aria-current': 0, // state - 'aria-details': 0, - 'aria-disabled': 0, // state - 'aria-hidden': 0, // state - 'aria-invalid': 0, // state - 'aria-keyshortcuts': 0, - 'aria-label': 0, - 'aria-roledescription': 0, - // Widget Attributes - 'aria-autocomplete': 0, - 'aria-checked': 0, - 'aria-expanded': 0, - 'aria-haspopup': 0, - 'aria-level': 0, - 'aria-modal': 0, - 'aria-multiline': 0, - 'aria-multiselectable': 0, - 'aria-orientation': 0, - 'aria-placeholder': 0, - 'aria-pressed': 0, - 'aria-readonly': 0, - 'aria-required': 0, - 'aria-selected': 0, - 'aria-sort': 0, - 'aria-valuemax': 0, - 'aria-valuemin': 0, - 'aria-valuenow': 0, - 'aria-valuetext': 0, - // Live Region Attributes - 'aria-atomic': 0, - 'aria-busy': 0, - 'aria-live': 0, - 'aria-relevant': 0, - // Drag-and-Drop Attributes - 'aria-dropeffect': 0, - 'aria-grabbed': 0, - // Relationship Attributes - 'aria-activedescendant': 0, - 'aria-colcount': 0, - 'aria-colindex': 0, - 'aria-colspan': 0, - 'aria-controls': 0, - 'aria-describedby': 0, - 'aria-errormessage': 0, - 'aria-flowto': 0, - 'aria-labelledby': 0, - 'aria-owns': 0, - 'aria-posinset': 0, - 'aria-rowcount': 0, - 'aria-rowindex': 0, - 'aria-rowspan': 0, - 'aria-setsize': 0 - }, - DOMAttributeNames: {}, - DOMPropertyNames: {} -}; - -module.exports = ARIADOMPropertyConfig; -},{}],2:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var ReactDOMComponentTree = _dereq_(35); - -var focusNode = _dereq_(148); - -var AutoFocusUtils = { - focusDOMComponent: function () { - focusNode(ReactDOMComponentTree.getNodeFromInstance(this)); - } -}; - -module.exports = AutoFocusUtils; -},{"148":148,"35":35}],3:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var EventPropagators = _dereq_(20); -var ExecutionEnvironment = _dereq_(140); -var FallbackCompositionState = _dereq_(21); -var SyntheticCompositionEvent = _dereq_(91); -var SyntheticInputEvent = _dereq_(95); - -var END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space -var START_KEYCODE = 229; - -var canUseCompositionEvent = ExecutionEnvironment.canUseDOM && 'CompositionEvent' in window; - -var documentMode = null; -if (ExecutionEnvironment.canUseDOM && 'documentMode' in document) { - documentMode = document.documentMode; -} - -// Webkit offers a very useful `textInput` event that can be used to -// directly represent `beforeInput`. The IE `textinput` event is not as -// useful, so we don't use it. -var canUseTextInputEvent = ExecutionEnvironment.canUseDOM && 'TextEvent' in window && !documentMode && !isPresto(); - -// In IE9+, we have access to composition events, but the data supplied -// by the native compositionend event may be incorrect. Japanese ideographic -// spaces, for instance (\u3000) are not recorded correctly. -var useFallbackCompositionData = ExecutionEnvironment.canUseDOM && (!canUseCompositionEvent || documentMode && documentMode > 8 && documentMode <= 11); - -/** - * Opera <= 12 includes TextEvent in window, but does not fire - * text input events. Rely on keypress instead. - */ -function isPresto() { - var opera = window.opera; - return typeof opera === 'object' && typeof opera.version === 'function' && parseInt(opera.version(), 10) <= 12; -} - -var SPACEBAR_CODE = 32; -var SPACEBAR_CHAR = String.fromCharCode(SPACEBAR_CODE); - -// Events and their corresponding property names. -var eventTypes = { - beforeInput: { - phasedRegistrationNames: { - bubbled: 'onBeforeInput', - captured: 'onBeforeInputCapture' - }, - dependencies: ['topCompositionEnd', 'topKeyPress', 'topTextInput', 'topPaste'] - }, - compositionEnd: { - phasedRegistrationNames: { - bubbled: 'onCompositionEnd', - captured: 'onCompositionEndCapture' - }, - dependencies: ['topBlur', 'topCompositionEnd', 'topKeyDown', 'topKeyPress', 'topKeyUp', 'topMouseDown'] - }, - compositionStart: { - phasedRegistrationNames: { - bubbled: 'onCompositionStart', - captured: 'onCompositionStartCapture' - }, - dependencies: ['topBlur', 'topCompositionStart', 'topKeyDown', 'topKeyPress', 'topKeyUp', 'topMouseDown'] - }, - compositionUpdate: { - phasedRegistrationNames: { - bubbled: 'onCompositionUpdate', - captured: 'onCompositionUpdateCapture' - }, - dependencies: ['topBlur', 'topCompositionUpdate', 'topKeyDown', 'topKeyPress', 'topKeyUp', 'topMouseDown'] - } -}; - -// Track whether we've ever handled a keypress on the space key. -var hasSpaceKeypress = false; - -/** - * Return whether a native keypress event is assumed to be a command. - * This is required because Firefox fires `keypress` events for key commands - * (cut, copy, select-all, etc.) even though no character is inserted. - */ -function isKeypressCommand(nativeEvent) { - return (nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) && - // ctrlKey && altKey is equivalent to AltGr, and is not a command. - !(nativeEvent.ctrlKey && nativeEvent.altKey); -} - -/** - * Translate native top level events into event types. - * - * @param {string} topLevelType - * @return {object} - */ -function getCompositionEventType(topLevelType) { - switch (topLevelType) { - case 'topCompositionStart': - return eventTypes.compositionStart; - case 'topCompositionEnd': - return eventTypes.compositionEnd; - case 'topCompositionUpdate': - return eventTypes.compositionUpdate; - } -} - -/** - * Does our fallback best-guess model think this event signifies that - * composition has begun? - * - * @param {string} topLevelType - * @param {object} nativeEvent - * @return {boolean} - */ -function isFallbackCompositionStart(topLevelType, nativeEvent) { - return topLevelType === 'topKeyDown' && nativeEvent.keyCode === START_KEYCODE; -} - -/** - * Does our fallback mode think that this event is the end of composition? - * - * @param {string} topLevelType - * @param {object} nativeEvent - * @return {boolean} - */ -function isFallbackCompositionEnd(topLevelType, nativeEvent) { - switch (topLevelType) { - case 'topKeyUp': - // Command keys insert or clear IME input. - return END_KEYCODES.indexOf(nativeEvent.keyCode) !== -1; - case 'topKeyDown': - // Expect IME keyCode on each keydown. If we get any other - // code we must have exited earlier. - return nativeEvent.keyCode !== START_KEYCODE; - case 'topKeyPress': - case 'topMouseDown': - case 'topBlur': - // Events are not possible without cancelling IME. - return true; - default: - return false; - } -} - -/** - * Google Input Tools provides composition data via a CustomEvent, - * with the `data` property populated in the `detail` object. If this - * is available on the event object, use it. If not, this is a plain - * composition event and we have nothing special to extract. - * - * @param {object} nativeEvent - * @return {?string} - */ -function getDataFromCustomEvent(nativeEvent) { - var detail = nativeEvent.detail; - if (typeof detail === 'object' && 'data' in detail) { - return detail.data; - } - return null; -} - -// Track the current IME composition fallback object, if any. -var currentComposition = null; - -/** - * @return {?object} A SyntheticCompositionEvent. - */ -function extractCompositionEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget) { - var eventType; - var fallbackData; - - if (canUseCompositionEvent) { - eventType = getCompositionEventType(topLevelType); - } else if (!currentComposition) { - if (isFallbackCompositionStart(topLevelType, nativeEvent)) { - eventType = eventTypes.compositionStart; - } - } else if (isFallbackCompositionEnd(topLevelType, nativeEvent)) { - eventType = eventTypes.compositionEnd; - } - - if (!eventType) { - return null; - } - - if (useFallbackCompositionData) { - // The current composition is stored statically and must not be - // overwritten while composition continues. - if (!currentComposition && eventType === eventTypes.compositionStart) { - currentComposition = FallbackCompositionState.getPooled(nativeEventTarget); - } else if (eventType === eventTypes.compositionEnd) { - if (currentComposition) { - fallbackData = currentComposition.getData(); - } - } - } - - var event = SyntheticCompositionEvent.getPooled(eventType, targetInst, nativeEvent, nativeEventTarget); - - if (fallbackData) { - // Inject data generated from fallback path into the synthetic event. - // This matches the property of native CompositionEventInterface. - event.data = fallbackData; - } else { - var customData = getDataFromCustomEvent(nativeEvent); - if (customData !== null) { - event.data = customData; - } - } - - EventPropagators.accumulateTwoPhaseDispatches(event); - return event; -} - -/** - * @param {string} topLevelType Record from `EventConstants`. - * @param {object} nativeEvent Native browser event. - * @return {?string} The string corresponding to this `beforeInput` event. - */ -function getNativeBeforeInputChars(topLevelType, nativeEvent) { - switch (topLevelType) { - case 'topCompositionEnd': - return getDataFromCustomEvent(nativeEvent); - case 'topKeyPress': - /** - * If native `textInput` events are available, our goal is to make - * use of them. However, there is a special case: the spacebar key. - * In Webkit, preventing default on a spacebar `textInput` event - * cancels character insertion, but it *also* causes the browser - * to fall back to its default spacebar behavior of scrolling the - * page. - * - * Tracking at: - * https://code.google.com/p/chromium/issues/detail?id=355103 - * - * To avoid this issue, use the keypress event as if no `textInput` - * event is available. - */ - var which = nativeEvent.which; - if (which !== SPACEBAR_CODE) { - return null; - } - - hasSpaceKeypress = true; - return SPACEBAR_CHAR; - - case 'topTextInput': - // Record the characters to be added to the DOM. - var chars = nativeEvent.data; - - // If it's a spacebar character, assume that we have already handled - // it at the keypress level and bail immediately. Android Chrome - // doesn't give us keycodes, so we need to blacklist it. - if (chars === SPACEBAR_CHAR && hasSpaceKeypress) { - return null; - } - - return chars; - - default: - // For other native event types, do nothing. - return null; - } -} - -/** - * For browsers that do not provide the `textInput` event, extract the - * appropriate string to use for SyntheticInputEvent. - * - * @param {string} topLevelType Record from `EventConstants`. - * @param {object} nativeEvent Native browser event. - * @return {?string} The fallback string for this `beforeInput` event. - */ -function getFallbackBeforeInputChars(topLevelType, nativeEvent) { - // If we are currently composing (IME) and using a fallback to do so, - // try to extract the composed characters from the fallback object. - // If composition event is available, we extract a string only at - // compositionevent, otherwise extract it at fallback events. - if (currentComposition) { - if (topLevelType === 'topCompositionEnd' || !canUseCompositionEvent && isFallbackCompositionEnd(topLevelType, nativeEvent)) { - var chars = currentComposition.getData(); - FallbackCompositionState.release(currentComposition); - currentComposition = null; - return chars; - } - return null; - } - - switch (topLevelType) { - case 'topPaste': - // If a paste event occurs after a keypress, throw out the input - // chars. Paste events should not lead to BeforeInput events. - return null; - case 'topKeyPress': - /** - * As of v27, Firefox may fire keypress events even when no character - * will be inserted. A few possibilities: - * - * - `which` is `0`. Arrow keys, Esc key, etc. - * - * - `which` is the pressed key code, but no char is available. - * Ex: 'AltGr + d` in Polish. There is no modified character for - * this key combination and no character is inserted into the - * document, but FF fires the keypress for char code `100` anyway. - * No `input` event will occur. - * - * - `which` is the pressed key code, but a command combination is - * being used. Ex: `Cmd+C`. No character is inserted, and no - * `input` event will occur. - */ - if (nativeEvent.which && !isKeypressCommand(nativeEvent)) { - return String.fromCharCode(nativeEvent.which); - } - return null; - case 'topCompositionEnd': - return useFallbackCompositionData ? null : nativeEvent.data; - default: - return null; - } -} - -/** - * Extract a SyntheticInputEvent for `beforeInput`, based on either native - * `textInput` or fallback behavior. - * - * @return {?object} A SyntheticInputEvent. - */ -function extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget) { - var chars; - - if (canUseTextInputEvent) { - chars = getNativeBeforeInputChars(topLevelType, nativeEvent); - } else { - chars = getFallbackBeforeInputChars(topLevelType, nativeEvent); - } - - // If no characters are being inserted, no BeforeInput event should - // be fired. - if (!chars) { - return null; - } - - var event = SyntheticInputEvent.getPooled(eventTypes.beforeInput, targetInst, nativeEvent, nativeEventTarget); - - event.data = chars; - EventPropagators.accumulateTwoPhaseDispatches(event); - return event; -} - -/** - * Create an `onBeforeInput` event to match - * http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105/#events-inputevents. - * - * This event plugin is based on the native `textInput` event - * available in Chrome, Safari, Opera, and IE. This event fires after - * `onKeyPress` and `onCompositionEnd`, but before `onInput`. - * - * `beforeInput` is spec'd but not implemented in any browsers, and - * the `input` event does not provide any useful information about what has - * actually been added, contrary to the spec. Thus, `textInput` is the best - * available event to identify the characters that have actually been inserted - * into the target node. - * - * This plugin is also responsible for emitting `composition` events, thus - * allowing us to share composition fallback code for both `beforeInput` and - * `composition` event types. - */ -var BeforeInputEventPlugin = { - - eventTypes: eventTypes, - - extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) { - return [extractCompositionEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget), extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget)]; - } -}; - -module.exports = BeforeInputEventPlugin; -},{"140":140,"20":20,"21":21,"91":91,"95":95}],4:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -/** - * CSS properties which accept numbers but are not in units of "px". - */ - -var isUnitlessNumber = { - animationIterationCount: true, - borderImageOutset: true, - borderImageSlice: true, - borderImageWidth: true, - boxFlex: true, - boxFlexGroup: true, - boxOrdinalGroup: true, - columnCount: true, - flex: true, - flexGrow: true, - flexPositive: true, - flexShrink: true, - flexNegative: true, - flexOrder: true, - gridRow: true, - gridColumn: true, - fontWeight: true, - lineClamp: true, - lineHeight: true, - opacity: true, - order: true, - orphans: true, - tabSize: true, - widows: true, - zIndex: true, - zoom: true, - - // SVG-related properties - fillOpacity: true, - floodOpacity: true, - stopOpacity: true, - strokeDasharray: true, - strokeDashoffset: true, - strokeMiterlimit: true, - strokeOpacity: true, - strokeWidth: true -}; - -/** - * @param {string} prefix vendor-specific prefix, eg: Webkit - * @param {string} key style name, eg: transitionDuration - * @return {string} style name prefixed with `prefix`, properly camelCased, eg: - * WebkitTransitionDuration - */ -function prefixKey(prefix, key) { - return prefix + key.charAt(0).toUpperCase() + key.substring(1); -} - -/** - * Support style names that may come passed in prefixed by adding permutations - * of vendor prefixes. - */ -var prefixes = ['Webkit', 'ms', 'Moz', 'O']; - -// Using Object.keys here, or else the vanilla for-in loop makes IE8 go into an -// infinite loop, because it iterates over the newly added props too. -Object.keys(isUnitlessNumber).forEach(function (prop) { - prefixes.forEach(function (prefix) { - isUnitlessNumber[prefixKey(prefix, prop)] = isUnitlessNumber[prop]; - }); -}); - -/** - * Most style properties can be unset by doing .style[prop] = '' but IE8 - * doesn't like doing that with shorthand properties so for the properties that - * IE8 breaks on, which are listed here, we instead unset each of the - * individual properties. See http://bugs.jquery.com/ticket/12385. - * The 4-value 'clock' properties like margin, padding, border-width seem to - * behave without any problems. Curiously, list-style works too without any - * special prodding. - */ -var shorthandPropertyExpansions = { - background: { - backgroundAttachment: true, - backgroundColor: true, - backgroundImage: true, - backgroundPositionX: true, - backgroundPositionY: true, - backgroundRepeat: true - }, - backgroundPosition: { - backgroundPositionX: true, - backgroundPositionY: true - }, - border: { - borderWidth: true, - borderStyle: true, - borderColor: true - }, - borderBottom: { - borderBottomWidth: true, - borderBottomStyle: true, - borderBottomColor: true - }, - borderLeft: { - borderLeftWidth: true, - borderLeftStyle: true, - borderLeftColor: true - }, - borderRight: { - borderRightWidth: true, - borderRightStyle: true, - borderRightColor: true - }, - borderTop: { - borderTopWidth: true, - borderTopStyle: true, - borderTopColor: true - }, - font: { - fontStyle: true, - fontVariant: true, - fontWeight: true, - fontSize: true, - lineHeight: true, - fontFamily: true - }, - outline: { - outlineWidth: true, - outlineStyle: true, - outlineColor: true - } -}; - -var CSSProperty = { - isUnitlessNumber: isUnitlessNumber, - shorthandPropertyExpansions: shorthandPropertyExpansions -}; - -module.exports = CSSProperty; -},{}],5:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var CSSProperty = _dereq_(4); -var ExecutionEnvironment = _dereq_(140); -var ReactInstrumentation = _dereq_(65); - -var camelizeStyleName = _dereq_(142); -var dangerousStyleValue = _dereq_(108); -var getComponentName = _dereq_(113); -var hyphenateStyleName = _dereq_(153); -var memoizeStringOnly = _dereq_(157); -var warning = _dereq_(161); - -var processStyleName = memoizeStringOnly(function (styleName) { - return hyphenateStyleName(styleName); -}); - -var hasShorthandPropertyBug = false; -var styleFloatAccessor = 'cssFloat'; -if (ExecutionEnvironment.canUseDOM) { - var tempStyle = document.createElement('div').style; - try { - // IE8 throws "Invalid argument." if resetting shorthand style properties. - tempStyle.font = ''; - } catch (e) { - hasShorthandPropertyBug = true; - } - // IE8 only supports accessing cssFloat (standard) as styleFloat - if (document.documentElement.style.cssFloat === undefined) { - styleFloatAccessor = 'styleFloat'; - } -} - -if ("development" !== 'production') { - // 'msTransform' is correct, but the other prefixes should be capitalized - var badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/; - - // style values shouldn't contain a semicolon - var badStyleValueWithSemicolonPattern = /;\s*$/; - - var warnedStyleNames = {}; - var warnedStyleValues = {}; - var warnedForNaNValue = false; - - var warnHyphenatedStyleName = function (name, owner) { - if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) { - return; - } - - warnedStyleNames[name] = true; - "development" !== 'production' ? warning(false, 'Unsupported style property %s. Did you mean %s?%s', name, camelizeStyleName(name), checkRenderMessage(owner)) : void 0; - }; - - var warnBadVendoredStyleName = function (name, owner) { - if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) { - return; - } - - warnedStyleNames[name] = true; - "development" !== 'production' ? warning(false, 'Unsupported vendor-prefixed style property %s. Did you mean %s?%s', name, name.charAt(0).toUpperCase() + name.slice(1), checkRenderMessage(owner)) : void 0; - }; - - var warnStyleValueWithSemicolon = function (name, value, owner) { - if (warnedStyleValues.hasOwnProperty(value) && warnedStyleValues[value]) { - return; - } - - warnedStyleValues[value] = true; - "development" !== 'production' ? warning(false, 'Style property values shouldn\'t contain a semicolon.%s ' + 'Try "%s: %s" instead.', checkRenderMessage(owner), name, value.replace(badStyleValueWithSemicolonPattern, '')) : void 0; - }; - - var warnStyleValueIsNaN = function (name, value, owner) { - if (warnedForNaNValue) { - return; - } - - warnedForNaNValue = true; - "development" !== 'production' ? warning(false, '`NaN` is an invalid value for the `%s` css style property.%s', name, checkRenderMessage(owner)) : void 0; - }; - - var checkRenderMessage = function (owner) { - if (owner) { - var name = getComponentName(owner); - if (name) { - return ' Check the render method of `' + name + '`.'; - } - } - return ''; - }; - - /** - * @param {string} name - * @param {*} value - * @param {ReactDOMComponent} component - */ - var warnValidStyle = function (name, value, component) { - var owner; - if (component) { - owner = component._currentElement._owner; - } - if (name.indexOf('-') > -1) { - warnHyphenatedStyleName(name, owner); - } else if (badVendoredStyleNamePattern.test(name)) { - warnBadVendoredStyleName(name, owner); - } else if (badStyleValueWithSemicolonPattern.test(value)) { - warnStyleValueWithSemicolon(name, value, owner); - } - - if (typeof value === 'number' && isNaN(value)) { - warnStyleValueIsNaN(name, value, owner); - } - }; -} - -/** - * Operations for dealing with CSS properties. - */ -var CSSPropertyOperations = { - - /** - * Serializes a mapping of style properties for use as inline styles: - * - * > createMarkupForStyles({width: '200px', height: 0}) - * "width:200px;height:0;" - * - * Undefined values are ignored so that declarative programming is easier. - * The result should be HTML-escaped before insertion into the DOM. - * - * @param {object} styles - * @param {ReactDOMComponent} component - * @return {?string} - */ - createMarkupForStyles: function (styles, component) { - var serialized = ''; - for (var styleName in styles) { - if (!styles.hasOwnProperty(styleName)) { - continue; - } - var styleValue = styles[styleName]; - if ("development" !== 'production') { - warnValidStyle(styleName, styleValue, component); - } - if (styleValue != null) { - serialized += processStyleName(styleName) + ':'; - serialized += dangerousStyleValue(styleName, styleValue, component) + ';'; - } - } - return serialized || null; - }, - - /** - * Sets the value for multiple styles on a node. If a value is specified as - * '' (empty string), the corresponding style property will be unset. - * - * @param {DOMElement} node - * @param {object} styles - * @param {ReactDOMComponent} component - */ - setValueForStyles: function (node, styles, component) { - if ("development" !== 'production') { - ReactInstrumentation.debugTool.onHostOperation({ - instanceID: component._debugID, - type: 'update styles', - payload: styles - }); - } - - var style = node.style; - for (var styleName in styles) { - if (!styles.hasOwnProperty(styleName)) { - continue; - } - if ("development" !== 'production') { - warnValidStyle(styleName, styles[styleName], component); - } - var styleValue = dangerousStyleValue(styleName, styles[styleName], component); - if (styleName === 'float' || styleName === 'cssFloat') { - styleName = styleFloatAccessor; - } - if (styleValue) { - style[styleName] = styleValue; - } else { - var expansion = hasShorthandPropertyBug && CSSProperty.shorthandPropertyExpansions[styleName]; - if (expansion) { - // Shorthand property that IE8 won't like unsetting, so unset each - // component to placate it - for (var individualStyleName in expansion) { - style[individualStyleName] = ''; - } - } else { - style[styleName] = ''; - } - } - } - } - -}; - -module.exports = CSSPropertyOperations; -},{"108":108,"113":113,"140":140,"142":142,"153":153,"157":157,"161":161,"4":4,"65":65}],6:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -'use strict'; - -var _prodInvariant = _dereq_(129); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var PooledClass = _dereq_(24); - -var invariant = _dereq_(154); - -/** - * A specialized pseudo-event module to help keep track of components waiting to - * be notified when their DOM representations are available for use. - * - * This implements `PooledClass`, so you should never need to instantiate this. - * Instead, use `CallbackQueue.getPooled()`. - * - * @class ReactMountReady - * @implements PooledClass - * @internal - */ - -var CallbackQueue = function () { - function CallbackQueue(arg) { - _classCallCheck(this, CallbackQueue); - - this._callbacks = null; - this._contexts = null; - this._arg = arg; - } - - /** - * Enqueues a callback to be invoked when `notifyAll` is invoked. - * - * @param {function} callback Invoked when `notifyAll` is invoked. - * @param {?object} context Context to call `callback` with. - * @internal - */ - - - CallbackQueue.prototype.enqueue = function enqueue(callback, context) { - this._callbacks = this._callbacks || []; - this._callbacks.push(callback); - this._contexts = this._contexts || []; - this._contexts.push(context); - }; - - /** - * Invokes all enqueued callbacks and clears the queue. This is invoked after - * the DOM representation of a component has been created or updated. - * - * @internal - */ - - - CallbackQueue.prototype.notifyAll = function notifyAll() { - var callbacks = this._callbacks; - var contexts = this._contexts; - var arg = this._arg; - if (callbacks && contexts) { - !(callbacks.length === contexts.length) ? "development" !== 'production' ? invariant(false, 'Mismatched list of contexts in callback queue') : _prodInvariant('24') : void 0; - this._callbacks = null; - this._contexts = null; - for (var i = 0; i < callbacks.length; i++) { - callbacks[i].call(contexts[i], arg); - } - callbacks.length = 0; - contexts.length = 0; - } - }; - - CallbackQueue.prototype.checkpoint = function checkpoint() { - return this._callbacks ? this._callbacks.length : 0; - }; - - CallbackQueue.prototype.rollback = function rollback(len) { - if (this._callbacks && this._contexts) { - this._callbacks.length = len; - this._contexts.length = len; - } - }; - - /** - * Resets the internal queue. - * - * @internal - */ - - - CallbackQueue.prototype.reset = function reset() { - this._callbacks = null; - this._contexts = null; - }; - - /** - * `PooledClass` looks for this. - */ - - - CallbackQueue.prototype.destructor = function destructor() { - this.reset(); - }; - - return CallbackQueue; -}(); - -module.exports = PooledClass.addPoolingTo(CallbackQueue); -},{"129":129,"154":154,"24":24}],7:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var EventPluginHub = _dereq_(17); -var EventPropagators = _dereq_(20); -var ExecutionEnvironment = _dereq_(140); -var ReactControlledComponent = _dereq_(30); -var ReactDOMComponentTree = _dereq_(35); -var ReactGenericBatching = _dereq_(60); -var SyntheticEvent = _dereq_(93); - -var inputValueTracking = _dereq_(124); -var getEventTarget = _dereq_(117); -var isEventSupported = _dereq_(126); -var isTextInputElement = _dereq_(127); - -var eventTypes = { - change: { - phasedRegistrationNames: { - bubbled: 'onChange', - captured: 'onChangeCapture' - }, - dependencies: ['topBlur', 'topChange', 'topClick', 'topFocus', 'topInput', 'topKeyDown', 'topKeyUp', 'topSelectionChange'] - } -}; - -function createAndAccumulateChangeEvent(inst, nativeEvent, target) { - var event = SyntheticEvent.getPooled(eventTypes.change, inst, nativeEvent, target); - event.type = 'change'; - // Flag this event loop as needing state restore. - ReactControlledComponent.enqueueStateRestore(inst); - EventPropagators.accumulateTwoPhaseDispatches(event); - return event; -} -/** - * For IE shims - */ -var activeElement = null; -var activeElementInst = null; - -/** - * SECTION: handle `change` event - */ -function shouldUseChangeEvent(elem) { - var nodeName = elem.nodeName && elem.nodeName.toLowerCase(); - return nodeName === 'select' || nodeName === 'input' && elem.type === 'file'; -} - -var doesChangeEventBubble = false; -if (ExecutionEnvironment.canUseDOM) { - // See `handleChange` comment below - doesChangeEventBubble = isEventSupported('change') && (!document.documentMode || document.documentMode > 8); -} - -function manualDispatchChangeEvent(nativeEvent) { - var event = createAndAccumulateChangeEvent(activeElementInst, nativeEvent, getEventTarget(nativeEvent)); - - // If change and propertychange bubbled, we'd just bind to it like all the - // other events and have it go through ReactBrowserEventEmitter. Since it - // doesn't, we manually listen for the events and so we have to enqueue and - // process the abstract event manually. - // - // Batching is necessary here in order to ensure that all event handlers run - // before the next rerender (including event handlers attached to ancestor - // elements instead of directly on the input). Without this, controlled - // components don't work properly in conjunction with event bubbling because - // the component is rerendered and the value reverted before all the event - // handlers can run. See https://github.com/facebook/react/issues/708. - ReactGenericBatching.batchedUpdates(runEventInBatch, event); -} - -function runEventInBatch(event) { - EventPluginHub.enqueueEvents(event); - EventPluginHub.processEventQueue(false); -} - -function startWatchingForChangeEventIE8(target, targetInst) { - activeElement = target; - activeElementInst = targetInst; - activeElement.attachEvent('onchange', manualDispatchChangeEvent); -} - -function stopWatchingForChangeEventIE8() { - if (!activeElement) { - return; - } - activeElement.detachEvent('onchange', manualDispatchChangeEvent); - activeElement = null; - activeElementInst = null; -} - -function getInstIfValueChanged(targetInst) { - if (inputValueTracking.updateValueIfChanged(targetInst)) { - return targetInst; - } -} - -function getTargetInstForChangeEvent(topLevelType, targetInst) { - if (topLevelType === 'topChange') { - return targetInst; - } -} - -function handleEventsForChangeEventIE8(topLevelType, target, targetInst) { - if (topLevelType === 'topFocus') { - // stopWatching() should be a noop here but we call it just in case we - // missed a blur event somehow. - stopWatchingForChangeEventIE8(); - startWatchingForChangeEventIE8(target, targetInst); - } else if (topLevelType === 'topBlur') { - stopWatchingForChangeEventIE8(); - } -} - -/** - * SECTION: handle `input` event - */ -var isInputEventSupported = false; -if (ExecutionEnvironment.canUseDOM) { - // IE9 claims to support the input event but fails to trigger it when - // deleting text, so we ignore its input events. - isInputEventSupported = isEventSupported('input') && (!document.documentMode || document.documentMode > 9); -} - -/** - * (For IE <=9) Starts tracking propertychange events on the passed-in element - * and override the value property so that we can distinguish user events from - * value changes in JS. - */ -function startWatchingForValueChange(target, targetInst) { - activeElement = target; - activeElementInst = targetInst; - activeElement.attachEvent('onpropertychange', handlePropertyChange); -} - -/** - * (For IE <=9) Removes the event listeners from the currently-tracked element, - * if any exists. - */ -function stopWatchingForValueChange() { - if (!activeElement) { - return; - } - activeElement.detachEvent('onpropertychange', handlePropertyChange); - activeElement = null; - activeElementInst = null; -} - -/** - * (For IE <=9) Handles a propertychange event, sending a `change` event if - * the value of the active element has changed. - */ -function handlePropertyChange(nativeEvent) { - if (nativeEvent.propertyName !== 'value') { - return; - } - if (getInstIfValueChanged(activeElementInst)) { - manualDispatchChangeEvent(nativeEvent); - } -} - -function handleEventsForInputEventPolyfill(topLevelType, target, targetInst) { - if (topLevelType === 'topFocus') { - // In IE8, we can capture almost all .value changes by adding a - // propertychange handler and looking for events with propertyName - // equal to 'value' - // In IE9, propertychange fires for most input events but is buggy and - // doesn't fire when text is deleted, but conveniently, selectionchange - // appears to fire in all of the remaining cases so we catch those and - // forward the event if the value has changed - // In either case, we don't want to call the event handler if the value - // is changed from JS so we redefine a setter for `.value` that updates - // our activeElementValue variable, allowing us to ignore those changes - // - // stopWatching() should be a noop here but we call it just in case we - // missed a blur event somehow. - stopWatchingForValueChange(); - startWatchingForValueChange(target, targetInst); - } else if (topLevelType === 'topBlur') { - stopWatchingForValueChange(); - } -} - -// For IE8 and IE9. -function getTargetInstForInputEventPolyfill(topLevelType, targetInst) { - if (topLevelType === 'topSelectionChange' || topLevelType === 'topKeyUp' || topLevelType === 'topKeyDown') { - // On the selectionchange event, the target is just document which isn't - // helpful for us so just check activeElement instead. - // - // 99% of the time, keydown and keyup aren't necessary. IE8 fails to fire - // propertychange on the first input event after setting `value` from a - // script and fires only keydown, keypress, keyup. Catching keyup usually - // gets it and catching keydown lets us fire an event for the first - // keystroke if user does a key repeat (it'll be a little delayed: right - // before the second keystroke). Other input methods (e.g., paste) seem to - // fire selectionchange normally. - return getInstIfValueChanged(activeElementInst); - } -} - -/** - * SECTION: handle `click` event - */ -function shouldUseClickEvent(elem) { - // Use the `click` event to detect changes to checkbox and radio inputs. - // This approach works across all browsers, whereas `change` does not fire - // until `blur` in IE8. - var nodeName = elem.nodeName; - return nodeName && nodeName.toLowerCase() === 'input' && (elem.type === 'checkbox' || elem.type === 'radio'); -} - -function getTargetInstForClickEvent(topLevelType, targetInst) { - if (topLevelType === 'topClick') { - return getInstIfValueChanged(targetInst); - } -} - -function getTargetInstForInputOrChangeEvent(topLevelType, targetInst) { - if (topLevelType === 'topInput' || topLevelType === 'topChange') { - return getInstIfValueChanged(targetInst); - } -} - -/** - * This plugin creates an `onChange` event that normalizes change events - * across form elements. This event fires at a time when it's possible to - * change the element's value without seeing a flicker. - * - * Supported elements are: - * - input (see `isTextInputElement`) - * - textarea - * - select - */ -var ChangeEventPlugin = { - - eventTypes: eventTypes, - - _isInputEventSupported: isInputEventSupported, - - extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) { - var targetNode = targetInst ? ReactDOMComponentTree.getNodeFromInstance(targetInst) : window; - - var getTargetInstFunc, handleEventFunc; - if (shouldUseChangeEvent(targetNode)) { - if (doesChangeEventBubble) { - getTargetInstFunc = getTargetInstForChangeEvent; - } else { - handleEventFunc = handleEventsForChangeEventIE8; - } - } else if (isTextInputElement(targetNode)) { - if (isInputEventSupported) { - getTargetInstFunc = getTargetInstForInputOrChangeEvent; - } else { - getTargetInstFunc = getTargetInstForInputEventPolyfill; - handleEventFunc = handleEventsForInputEventPolyfill; - } - } else if (shouldUseClickEvent(targetNode)) { - getTargetInstFunc = getTargetInstForClickEvent; - } - - if (getTargetInstFunc) { - var inst = getTargetInstFunc(topLevelType, targetInst); - if (inst) { - var event = createAndAccumulateChangeEvent(inst, nativeEvent, nativeEventTarget); - return event; - } - } - - if (handleEventFunc) { - handleEventFunc(topLevelType, targetNode, targetInst); - } - } - -}; - -module.exports = ChangeEventPlugin; -},{"117":117,"124":124,"126":126,"127":127,"140":140,"17":17,"20":20,"30":30,"35":35,"60":60,"93":93}],8:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var DOMLazyTree = _dereq_(10); -var Danger = _dereq_(14); -var ReactDOMComponentTree = _dereq_(35); -var ReactInstrumentation = _dereq_(65); - -var createMicrosoftUnsafeLocalFunction = _dereq_(107); -var setInnerHTML = _dereq_(131); -var setTextContent = _dereq_(132); - -function getNodeAfter(parentNode, node) { - // Special case for text components, which return [open, close] comments - // from getHostNode. - if (Array.isArray(node)) { - node = node[1]; - } - return node ? node.nextSibling : parentNode.firstChild; -} - -/** - * Inserts `childNode` as a child of `parentNode` at the `index`. - * - * @param {DOMElement} parentNode Parent node in which to insert. - * @param {DOMElement} childNode Child node to insert. - * @param {number} index Index at which to insert the child. - * @internal - */ -var insertChildAt = createMicrosoftUnsafeLocalFunction(function (parentNode, childNode, referenceNode) { - // We rely exclusively on `insertBefore(node, null)` instead of also using - // `appendChild(node)`. (Using `undefined` is not allowed by all browsers so - // we are careful to use `null`.) - parentNode.insertBefore(childNode, referenceNode); -}); - -function insertLazyTreeChildAt(parentNode, childTree, referenceNode) { - DOMLazyTree.insertTreeBefore(parentNode, childTree, referenceNode); -} - -function moveChild(parentNode, childNode, referenceNode) { - if (Array.isArray(childNode)) { - moveDelimitedText(parentNode, childNode[0], childNode[1], referenceNode); - } else { - insertChildAt(parentNode, childNode, referenceNode); - } -} - -function removeChild(parentNode, childNode) { - if (Array.isArray(childNode)) { - var closingComment = childNode[1]; - childNode = childNode[0]; - removeDelimitedText(parentNode, childNode, closingComment); - parentNode.removeChild(closingComment); - } - parentNode.removeChild(childNode); -} - -function moveDelimitedText(parentNode, openingComment, closingComment, referenceNode) { - var node = openingComment; - while (true) { - var nextNode = node.nextSibling; - insertChildAt(parentNode, node, referenceNode); - if (node === closingComment) { - break; - } - node = nextNode; - } -} - -function removeDelimitedText(parentNode, startNode, closingComment) { - while (true) { - var node = startNode.nextSibling; - if (node === closingComment) { - // The closing comment is removed by ReactMultiChild. - break; - } else { - parentNode.removeChild(node); - } - } -} - -function replaceDelimitedText(openingComment, closingComment, stringText) { - var parentNode = openingComment.parentNode; - var nodeAfterComment = openingComment.nextSibling; - if (nodeAfterComment === closingComment) { - // There are no text nodes between the opening and closing comments; insert - // a new one if stringText isn't empty. - if (stringText) { - insertChildAt(parentNode, document.createTextNode(stringText), nodeAfterComment); - } - } else { - if (stringText) { - // Set the text content of the first node after the opening comment, and - // remove all following nodes up until the closing comment. - setTextContent(nodeAfterComment, stringText); - removeDelimitedText(parentNode, nodeAfterComment, closingComment); - } else { - removeDelimitedText(parentNode, openingComment, closingComment); - } - } - - if ("development" !== 'production') { - ReactInstrumentation.debugTool.onHostOperation({ - instanceID: ReactDOMComponentTree.getInstanceFromNode(openingComment)._debugID, - type: 'replace text', - payload: stringText - }); - } -} - -var dangerouslyReplaceNodeWithMarkup = Danger.dangerouslyReplaceNodeWithMarkup; -if ("development" !== 'production') { - dangerouslyReplaceNodeWithMarkup = function (oldChild, markup, prevInstance) { - Danger.dangerouslyReplaceNodeWithMarkup(oldChild, markup); - if (prevInstance._debugID !== 0) { - ReactInstrumentation.debugTool.onHostOperation({ - instanceID: prevInstance._debugID, - type: 'replace with', - payload: markup.toString() - }); - } else { - var nextInstance = ReactDOMComponentTree.getInstanceFromNode(markup.node); - if (nextInstance._debugID !== 0) { - ReactInstrumentation.debugTool.onHostOperation({ - instanceID: nextInstance._debugID, - type: 'mount', - payload: markup.toString() - }); - } - } - }; -} - -/** - * Operations for updating with DOM children. - */ -var DOMChildrenOperations = { - - dangerouslyReplaceNodeWithMarkup: dangerouslyReplaceNodeWithMarkup, - - replaceDelimitedText: replaceDelimitedText, - - /** - * Updates a component's children by processing a series of updates. The - * update configurations are each expected to have a `parentNode` property. - * - * @param {array<object>} updates List of update configurations. - * @internal - */ - processUpdates: function (parentNode, updates) { - if ("development" !== 'production') { - var parentNodeDebugID = ReactDOMComponentTree.getInstanceFromNode(parentNode)._debugID; - } - - for (var k = 0; k < updates.length; k++) { - var update = updates[k]; - switch (update.type) { - case 'INSERT_MARKUP': - insertLazyTreeChildAt(parentNode, update.content, getNodeAfter(parentNode, update.afterNode)); - if ("development" !== 'production') { - ReactInstrumentation.debugTool.onHostOperation({ - instanceID: parentNodeDebugID, - type: 'insert child', - payload: { toIndex: update.toIndex, content: update.content.toString() } - }); - } - break; - case 'MOVE_EXISTING': - moveChild(parentNode, update.fromNode, getNodeAfter(parentNode, update.afterNode)); - if ("development" !== 'production') { - ReactInstrumentation.debugTool.onHostOperation({ - instanceID: parentNodeDebugID, - type: 'move child', - payload: { fromIndex: update.fromIndex, toIndex: update.toIndex } - }); - } - break; - case 'SET_MARKUP': - setInnerHTML(parentNode, update.content); - if ("development" !== 'production') { - ReactInstrumentation.debugTool.onHostOperation({ - instanceID: parentNodeDebugID, - type: 'replace children', - payload: update.content.toString() - }); - } - break; - case 'TEXT_CONTENT': - setTextContent(parentNode, update.content); - if ("development" !== 'production') { - ReactInstrumentation.debugTool.onHostOperation({ - instanceID: parentNodeDebugID, - type: 'replace text', - payload: update.content.toString() - }); - } - break; - case 'REMOVE_NODE': - removeChild(parentNode, update.fromNode); - if ("development" !== 'production') { - ReactInstrumentation.debugTool.onHostOperation({ - instanceID: parentNodeDebugID, - type: 'remove child', - payload: { fromIndex: update.fromIndex } - }); - } - break; - } - } - } - -}; - -module.exports = DOMChildrenOperations; -},{"10":10,"107":107,"131":131,"132":132,"14":14,"35":35,"65":65}],9:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -/** - * Module that is injectable into `EventPluginHub`, that specifies a - * deterministic ordering of `EventPlugin`s. A convenient way to reason about - * plugins, without having to package every one of them. This is better than - * having plugins be ordered in the same order that they are injected because - * that ordering would be influenced by the packaging order. - * `ResponderEventPlugin` must occur before `SimpleEventPlugin` so that - * preventing default on events is convenient in `SimpleEventPlugin` handlers. - */ - -var DOMEventPluginOrder = ['ResponderEventPlugin', 'SimpleEventPlugin', 'TapEventPlugin', 'EnterLeaveEventPlugin', 'ChangeEventPlugin', 'SelectEventPlugin', 'BeforeInputEventPlugin']; - -module.exports = DOMEventPluginOrder; -},{}],10:[function(_dereq_,module,exports){ -/** - * Copyright 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var DOMNamespaces = _dereq_(11); -var setInnerHTML = _dereq_(131); - -var createMicrosoftUnsafeLocalFunction = _dereq_(107); -var setTextContent = _dereq_(132); - -var ELEMENT_NODE_TYPE = 1; -var DOCUMENT_FRAGMENT_NODE_TYPE = 11; - -/** - * In IE (8-11) and Edge, appending nodes with no children is dramatically - * faster than appending a full subtree, so we essentially queue up the - * .appendChild calls here and apply them so each node is added to its parent - * before any children are added. - * - * In other browsers, doing so is slower or neutral compared to the other order - * (in Firefox, twice as slow) so we only do this inversion in IE. - * - * See https://github.com/spicyj/innerhtml-vs-createelement-vs-clonenode. - */ -var enableLazy = typeof document !== 'undefined' && typeof document.documentMode === 'number' || typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string' && /\bEdge\/\d/.test(navigator.userAgent); - -function insertTreeChildren(tree) { - if (!enableLazy) { - return; - } - var node = tree.node; - var children = tree.children; - if (children.length) { - for (var i = 0; i < children.length; i++) { - insertTreeBefore(node, children[i], null); - } - } else if (tree.html != null) { - setInnerHTML(node, tree.html); - } else if (tree.text != null) { - setTextContent(node, tree.text); - } -} - -var insertTreeBefore = createMicrosoftUnsafeLocalFunction(function (parentNode, tree, referenceNode) { - // DocumentFragments aren't actually part of the DOM after insertion so - // appending children won't update the DOM. We need to ensure the fragment - // is properly populated first, breaking out of our lazy approach for just - // this level. Also, some <object> plugins (like Flash Player) will read - // <param> nodes immediately upon insertion into the DOM, so <object> - // must also be populated prior to insertion into the DOM. - if (tree.node.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE || tree.node.nodeType === ELEMENT_NODE_TYPE && tree.node.nodeName.toLowerCase() === 'object' && (tree.node.namespaceURI == null || tree.node.namespaceURI === DOMNamespaces.html)) { - insertTreeChildren(tree); - parentNode.insertBefore(tree.node, referenceNode); - } else { - parentNode.insertBefore(tree.node, referenceNode); - insertTreeChildren(tree); - } -}); - -function replaceChildWithTree(oldNode, newTree) { - oldNode.parentNode.replaceChild(newTree.node, oldNode); - insertTreeChildren(newTree); -} - -function queueChild(parentTree, childTree) { - if (enableLazy) { - parentTree.children.push(childTree); - } else { - parentTree.node.appendChild(childTree.node); - } -} - -function queueHTML(tree, html) { - if (enableLazy) { - tree.html = html; - } else { - setInnerHTML(tree.node, html); - } -} - -function queueText(tree, text) { - if (enableLazy) { - tree.text = text; - } else { - setTextContent(tree.node, text); - } -} - -function toString() { - return this.node.nodeName; -} - -function DOMLazyTree(node) { - return { - node: node, - children: [], - html: null, - text: null, - toString: toString - }; -} - -DOMLazyTree.insertTreeBefore = insertTreeBefore; -DOMLazyTree.replaceChildWithTree = replaceChildWithTree; -DOMLazyTree.queueChild = queueChild; -DOMLazyTree.queueHTML = queueHTML; -DOMLazyTree.queueText = queueText; - -module.exports = DOMLazyTree; -},{"107":107,"11":11,"131":131,"132":132}],11:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var DOMNamespaces = { - html: 'http://www.w3.org/1999/xhtml', - mathml: 'http://www.w3.org/1998/Math/MathML', - svg: 'http://www.w3.org/2000/svg' -}; - -module.exports = DOMNamespaces; -},{}],12:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _prodInvariant = _dereq_(129); - -var invariant = _dereq_(154); - -function checkMask(value, bitmask) { - return (value & bitmask) === bitmask; -} - -var DOMPropertyInjection = { - /** - * Mapping from normalized, camelcased property names to a configuration that - * specifies how the associated DOM property should be accessed or rendered. - */ - MUST_USE_PROPERTY: 0x1, - HAS_BOOLEAN_VALUE: 0x4, - HAS_NUMERIC_VALUE: 0x8, - HAS_POSITIVE_NUMERIC_VALUE: 0x10 | 0x8, - HAS_OVERLOADED_BOOLEAN_VALUE: 0x20, - - /** - * Inject some specialized knowledge about the DOM. This takes a config object - * with the following properties: - * - * isCustomAttribute: function that given an attribute name will return true - * if it can be inserted into the DOM verbatim. Useful for data-* or aria-* - * attributes where it's impossible to enumerate all of the possible - * attribute names, - * - * Properties: object mapping DOM property name to one of the - * DOMPropertyInjection constants or null. If your attribute isn't in here, - * it won't get written to the DOM. - * - * DOMAttributeNames: object mapping React attribute name to the DOM - * attribute name. Attribute names not specified use the **lowercase** - * normalized name. - * - * DOMAttributeNamespaces: object mapping React attribute name to the DOM - * attribute namespace URL. (Attribute names not specified use no namespace.) - * - * DOMPropertyNames: similar to DOMAttributeNames but for DOM properties. - * Property names not specified use the normalized name. - * - * DOMMutationMethods: Properties that require special mutation methods. If - * `value` is undefined, the mutation method should unset the property. - * - * @param {object} domPropertyConfig the config as described above. - */ - injectDOMPropertyConfig: function (domPropertyConfig) { - var Injection = DOMPropertyInjection; - var Properties = domPropertyConfig.Properties || {}; - var DOMAttributeNamespaces = domPropertyConfig.DOMAttributeNamespaces || {}; - var DOMAttributeNames = domPropertyConfig.DOMAttributeNames || {}; - var DOMPropertyNames = domPropertyConfig.DOMPropertyNames || {}; - var DOMMutationMethods = domPropertyConfig.DOMMutationMethods || {}; - - if (domPropertyConfig.isCustomAttribute) { - DOMProperty._isCustomAttributeFunctions.push(domPropertyConfig.isCustomAttribute); - } - - for (var propName in Properties) { - !!DOMProperty.properties.hasOwnProperty(propName) ? "development" !== 'production' ? invariant(false, 'injectDOMPropertyConfig(...): You\'re trying to inject DOM property \'%s\' which has already been injected. You may be accidentally injecting the same DOM property config twice, or you may be injecting two configs that have conflicting property names.', propName) : _prodInvariant('48', propName) : void 0; - - var lowerCased = propName.toLowerCase(); - var propConfig = Properties[propName]; - - var propertyInfo = { - attributeName: lowerCased, - attributeNamespace: null, - propertyName: propName, - mutationMethod: null, - - mustUseProperty: checkMask(propConfig, Injection.MUST_USE_PROPERTY), - hasBooleanValue: checkMask(propConfig, Injection.HAS_BOOLEAN_VALUE), - hasNumericValue: checkMask(propConfig, Injection.HAS_NUMERIC_VALUE), - hasPositiveNumericValue: checkMask(propConfig, Injection.HAS_POSITIVE_NUMERIC_VALUE), - hasOverloadedBooleanValue: checkMask(propConfig, Injection.HAS_OVERLOADED_BOOLEAN_VALUE) - }; - !(propertyInfo.hasBooleanValue + propertyInfo.hasNumericValue + propertyInfo.hasOverloadedBooleanValue <= 1) ? "development" !== 'production' ? invariant(false, 'DOMProperty: Value can be one of boolean, overloaded boolean, or numeric value, but not a combination: %s', propName) : _prodInvariant('50', propName) : void 0; - - if ("development" !== 'production') { - DOMProperty.getPossibleStandardName[lowerCased] = propName; - } - - if (DOMAttributeNames.hasOwnProperty(propName)) { - var attributeName = DOMAttributeNames[propName]; - propertyInfo.attributeName = attributeName; - if ("development" !== 'production') { - DOMProperty.getPossibleStandardName[attributeName] = propName; - } - } - - if (DOMAttributeNamespaces.hasOwnProperty(propName)) { - propertyInfo.attributeNamespace = DOMAttributeNamespaces[propName]; - } - - if (DOMPropertyNames.hasOwnProperty(propName)) { - propertyInfo.propertyName = DOMPropertyNames[propName]; - } - - if (DOMMutationMethods.hasOwnProperty(propName)) { - propertyInfo.mutationMethod = DOMMutationMethods[propName]; - } - - DOMProperty.properties[propName] = propertyInfo; - } - } -}; - -/* eslint-disable max-len */ -var ATTRIBUTE_NAME_START_CHAR = ':A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD'; -/* eslint-enable max-len */ - -/** - * DOMProperty exports lookup objects that can be used like functions: - * - * > DOMProperty.isValid['id'] - * true - * > DOMProperty.isValid['foobar'] - * undefined - * - * Although this may be confusing, it performs better in general. - * - * @see http://jsperf.com/key-exists - * @see http://jsperf.com/key-missing - */ -var DOMProperty = { - - ID_ATTRIBUTE_NAME: 'data-reactid', - ROOT_ATTRIBUTE_NAME: 'data-reactroot', - - ATTRIBUTE_NAME_START_CHAR: ATTRIBUTE_NAME_START_CHAR, - ATTRIBUTE_NAME_CHAR: ATTRIBUTE_NAME_START_CHAR + '\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040', - - /** - * Map from property "standard name" to an object with info about how to set - * the property in the DOM. Each object contains: - * - * attributeName: - * Used when rendering markup or with `*Attribute()`. - * attributeNamespace - * propertyName: - * Used on DOM node instances. (This includes properties that mutate due to - * external factors.) - * mutationMethod: - * If non-null, used instead of the property or `setAttribute()` after - * initial render. - * mustUseProperty: - * Whether the property must be accessed and mutated as an object property. - * hasBooleanValue: - * Whether the property should be removed when set to a falsey value. - * hasNumericValue: - * Whether the property must be numeric or parse as a numeric and should be - * removed when set to a falsey value. - * hasPositiveNumericValue: - * Whether the property must be positive numeric or parse as a positive - * numeric and should be removed when set to a falsey value. - * hasOverloadedBooleanValue: - * Whether the property can be used as a flag as well as with a value. - * Removed when strictly equal to false; present without a value when - * strictly equal to true; present with a value otherwise. - */ - properties: {}, - - /** - * Mapping from lowercase property names to the properly cased version, used - * to warn in the case of missing properties. Available only in __DEV__. - * - * autofocus is predefined, because adding it to the property whitelist - * causes unintended side effects. - * - * @type {Object} - */ - getPossibleStandardName: "development" !== 'production' ? { autofocus: 'autoFocus' } : null, - - /** - * All of the isCustomAttribute() functions that have been injected. - */ - _isCustomAttributeFunctions: [], - - /** - * Checks whether a property name is a custom attribute. - * @method - */ - isCustomAttribute: function (attributeName) { - for (var i = 0; i < DOMProperty._isCustomAttributeFunctions.length; i++) { - var isCustomAttributeFn = DOMProperty._isCustomAttributeFunctions[i]; - if (isCustomAttributeFn(attributeName)) { - return true; - } - } - return false; - }, - - injection: DOMPropertyInjection -}; - -module.exports = DOMProperty; -},{"129":129,"154":154}],13:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var DOMProperty = _dereq_(12); -var ReactDOMComponentTree = _dereq_(35); -var ReactInstrumentation = _dereq_(65); - -var quoteAttributeValueForBrowser = _dereq_(128); -var warning = _dereq_(161); - -var VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + DOMProperty.ATTRIBUTE_NAME_START_CHAR + '][' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$'); -var illegalAttributeNameCache = {}; -var validatedAttributeNameCache = {}; - -function isAttributeNameSafe(attributeName) { - if (validatedAttributeNameCache.hasOwnProperty(attributeName)) { - return true; - } - if (illegalAttributeNameCache.hasOwnProperty(attributeName)) { - return false; - } - if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) { - validatedAttributeNameCache[attributeName] = true; - return true; - } - illegalAttributeNameCache[attributeName] = true; - "development" !== 'production' ? warning(false, 'Invalid attribute name: `%s`', attributeName) : void 0; - return false; -} - -function shouldIgnoreValue(propertyInfo, value) { - return value == null || propertyInfo.hasBooleanValue && !value || propertyInfo.hasNumericValue && isNaN(value) || propertyInfo.hasPositiveNumericValue && value < 1 || propertyInfo.hasOverloadedBooleanValue && value === false; -} - -/** - * Operations for dealing with DOM properties. - */ -var DOMPropertyOperations = { - - /** - * Creates markup for the ID property. - * - * @param {string} id Unescaped ID. - * @return {string} Markup string. - */ - createMarkupForID: function (id) { - return DOMProperty.ID_ATTRIBUTE_NAME + '=' + quoteAttributeValueForBrowser(id); - }, - - setAttributeForID: function (node, id) { - node.setAttribute(DOMProperty.ID_ATTRIBUTE_NAME, id); - }, - - createMarkupForRoot: function () { - return DOMProperty.ROOT_ATTRIBUTE_NAME + '=""'; - }, - - setAttributeForRoot: function (node) { - node.setAttribute(DOMProperty.ROOT_ATTRIBUTE_NAME, ''); - }, - - /** - * Creates markup for a property. - * - * @param {string} name - * @param {*} value - * @return {?string} Markup string, or null if the property was invalid. - */ - createMarkupForProperty: function (name, value) { - var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null; - if (propertyInfo) { - if (shouldIgnoreValue(propertyInfo, value)) { - return ''; - } - var attributeName = propertyInfo.attributeName; - if (propertyInfo.hasBooleanValue || propertyInfo.hasOverloadedBooleanValue && value === true) { - return attributeName + '=""'; - } - return attributeName + '=' + quoteAttributeValueForBrowser(value); - } else if (DOMProperty.isCustomAttribute(name)) { - if (value == null) { - return ''; - } - return name + '=' + quoteAttributeValueForBrowser(value); - } - return null; - }, - - /** - * Creates markup for a custom property. - * - * @param {string} name - * @param {*} value - * @return {string} Markup string, or empty string if the property was invalid. - */ - createMarkupForCustomAttribute: function (name, value) { - if (!isAttributeNameSafe(name) || value == null) { - return ''; - } - return name + '=' + quoteAttributeValueForBrowser(value); - }, - - /** - * Sets the value for a property on a node. - * - * @param {DOMElement} node - * @param {string} name - * @param {*} value - */ - setValueForProperty: function (node, name, value) { - var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null; - if (propertyInfo) { - var mutationMethod = propertyInfo.mutationMethod; - if (mutationMethod) { - mutationMethod(node, value); - } else if (shouldIgnoreValue(propertyInfo, value)) { - this.deleteValueForProperty(node, name); - return; - } else if (propertyInfo.mustUseProperty) { - // Contrary to `setAttribute`, object properties are properly - // `toString`ed by IE8/9. - node[propertyInfo.propertyName] = value; - } else { - var attributeName = propertyInfo.attributeName; - var namespace = propertyInfo.attributeNamespace; - // `setAttribute` with objects becomes only `[object]` in IE8/9, - // ('' + value) makes it output the correct toString()-value. - if (namespace) { - node.setAttributeNS(namespace, attributeName, '' + value); - } else if (propertyInfo.hasBooleanValue || propertyInfo.hasOverloadedBooleanValue && value === true) { - node.setAttribute(attributeName, ''); - } else { - node.setAttribute(attributeName, '' + value); - } - } - } else if (DOMProperty.isCustomAttribute(name)) { - DOMPropertyOperations.setValueForAttribute(node, name, value); - return; - } - - if ("development" !== 'production') { - var payload = {}; - payload[name] = value; - ReactInstrumentation.debugTool.onHostOperation({ - instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID, - type: 'update attribute', - payload: payload - }); - } - }, - - setValueForAttribute: function (node, name, value) { - if (!isAttributeNameSafe(name)) { - return; - } - if (value == null) { - node.removeAttribute(name); - } else { - node.setAttribute(name, '' + value); - } - - if ("development" !== 'production') { - var payload = {}; - payload[name] = value; - ReactInstrumentation.debugTool.onHostOperation({ - instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID, - type: 'update attribute', - payload: payload - }); - } - }, - - /** - * Deletes an attributes from a node. - * - * @param {DOMElement} node - * @param {string} name - */ - deleteValueForAttribute: function (node, name) { - node.removeAttribute(name); - if ("development" !== 'production') { - ReactInstrumentation.debugTool.onHostOperation({ - instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID, - type: 'remove attribute', - payload: name - }); - } - }, - - /** - * Deletes the value for a property on a node. - * - * @param {DOMElement} node - * @param {string} name - */ - deleteValueForProperty: function (node, name) { - var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null; - if (propertyInfo) { - var mutationMethod = propertyInfo.mutationMethod; - if (mutationMethod) { - mutationMethod(node, undefined); - } else if (propertyInfo.mustUseProperty) { - var propName = propertyInfo.propertyName; - if (propertyInfo.hasBooleanValue) { - node[propName] = false; - } else { - node[propName] = ''; - } - } else { - node.removeAttribute(propertyInfo.attributeName); - } - } else if (DOMProperty.isCustomAttribute(name)) { - node.removeAttribute(name); - } - - if ("development" !== 'production') { - ReactInstrumentation.debugTool.onHostOperation({ - instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID, - type: 'remove attribute', - payload: name - }); - } - } - -}; - -module.exports = DOMPropertyOperations; -},{"12":12,"128":128,"161":161,"35":35,"65":65}],14:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _prodInvariant = _dereq_(129); - -var DOMLazyTree = _dereq_(10); -var ExecutionEnvironment = _dereq_(140); - -var createNodesFromMarkup = _dereq_(145); -var emptyFunction = _dereq_(146); -var invariant = _dereq_(154); - -var Danger = { - - /** - * Replaces a node with a string of markup at its current position within its - * parent. The markup must render into a single root node. - * - * @param {DOMElement} oldChild Child node to replace. - * @param {string} markup Markup to render in place of the child node. - * @internal - */ - dangerouslyReplaceNodeWithMarkup: function (oldChild, markup) { - !ExecutionEnvironment.canUseDOM ? "development" !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Cannot render markup in a worker thread. Make sure `window` and `document` are available globally before requiring React when unit testing or use ReactDOMServer.renderToString() for server rendering.') : _prodInvariant('56') : void 0; - !markup ? "development" !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Missing markup.') : _prodInvariant('57') : void 0; - !(oldChild.nodeName !== 'HTML') ? "development" !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Cannot replace markup of the <html> node. This is because browser quirks make this unreliable and/or slow. If you want to render to the root you must use server rendering. See ReactDOMServer.renderToString().') : _prodInvariant('58') : void 0; - - if (typeof markup === 'string') { - var newChild = createNodesFromMarkup(markup, emptyFunction)[0]; - oldChild.parentNode.replaceChild(newChild, oldChild); - } else { - DOMLazyTree.replaceChildWithTree(oldChild, markup); - } - } - -}; - -module.exports = Danger; -},{"10":10,"129":129,"140":140,"145":145,"146":146,"154":154}],15:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var EventPropagators = _dereq_(20); -var ReactDOMComponentTree = _dereq_(35); -var SyntheticMouseEvent = _dereq_(97); - -var eventTypes = { - mouseEnter: { - registrationName: 'onMouseEnter', - dependencies: ['topMouseOut', 'topMouseOver'] - }, - mouseLeave: { - registrationName: 'onMouseLeave', - dependencies: ['topMouseOut', 'topMouseOver'] - } -}; - -var EnterLeaveEventPlugin = { - - eventTypes: eventTypes, - - /** - * For almost every interaction we care about, there will be both a top-level - * `mouseover` and `mouseout` event that occurs. Only use `mouseout` so that - * we do not extract duplicate events. However, moving the mouse into the - * browser from outside will not fire a `mouseout` event. In this case, we use - * the `mouseover` top-level event. - */ - extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) { - if (topLevelType === 'topMouseOver' && (nativeEvent.relatedTarget || nativeEvent.fromElement)) { - return null; - } - if (topLevelType !== 'topMouseOut' && topLevelType !== 'topMouseOver') { - // Must not be a mouse in or mouse out - ignoring. - return null; - } - - var win; - if (nativeEventTarget.window === nativeEventTarget) { - // `nativeEventTarget` is probably a window object. - win = nativeEventTarget; - } else { - // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8. - var doc = nativeEventTarget.ownerDocument; - if (doc) { - win = doc.defaultView || doc.parentWindow; - } else { - win = window; - } - } - - var from; - var to; - if (topLevelType === 'topMouseOut') { - from = targetInst; - var related = nativeEvent.relatedTarget || nativeEvent.toElement; - to = related ? ReactDOMComponentTree.getClosestInstanceFromNode(related) : null; - } else { - // Moving to a node from outside the window. - from = null; - to = targetInst; - } - - if (from === to) { - // Nothing pertains to our managed components. - return null; - } - - var fromNode = from == null ? win : ReactDOMComponentTree.getNodeFromInstance(from); - var toNode = to == null ? win : ReactDOMComponentTree.getNodeFromInstance(to); - - var leave = SyntheticMouseEvent.getPooled(eventTypes.mouseLeave, from, nativeEvent, nativeEventTarget); - leave.type = 'mouseleave'; - leave.target = fromNode; - leave.relatedTarget = toNode; - - var enter = SyntheticMouseEvent.getPooled(eventTypes.mouseEnter, to, nativeEvent, nativeEventTarget); - enter.type = 'mouseenter'; - enter.target = toNode; - enter.relatedTarget = fromNode; - - EventPropagators.accumulateEnterLeaveDispatches(leave, enter, from, to); - - return [leave, enter]; - } - -}; - -module.exports = EnterLeaveEventPlugin; -},{"20":20,"35":35,"97":97}],16:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -/** - * Types of raw signals from the browser caught at the top level. - */ -var topLevelTypes = { - topAbort: null, - topAnimationEnd: null, - topAnimationIteration: null, - topAnimationStart: null, - topBlur: null, - topCanPlay: null, - topCanPlayThrough: null, - topChange: null, - topClick: null, - topCompositionEnd: null, - topCompositionStart: null, - topCompositionUpdate: null, - topContextMenu: null, - topCopy: null, - topCut: null, - topDoubleClick: null, - topDrag: null, - topDragEnd: null, - topDragEnter: null, - topDragExit: null, - topDragLeave: null, - topDragOver: null, - topDragStart: null, - topDrop: null, - topDurationChange: null, - topEmptied: null, - topEncrypted: null, - topEnded: null, - topError: null, - topFocus: null, - topInput: null, - topInvalid: null, - topKeyDown: null, - topKeyPress: null, - topKeyUp: null, - topLoad: null, - topLoadedData: null, - topLoadedMetadata: null, - topLoadStart: null, - topMouseDown: null, - topMouseMove: null, - topMouseOut: null, - topMouseOver: null, - topMouseUp: null, - topPaste: null, - topPause: null, - topPlay: null, - topPlaying: null, - topProgress: null, - topRateChange: null, - topReset: null, - topScroll: null, - topSeeked: null, - topSeeking: null, - topSelectionChange: null, - topStalled: null, - topSubmit: null, - topSuspend: null, - topTextInput: null, - topTimeUpdate: null, - topTouchCancel: null, - topTouchEnd: null, - topTouchMove: null, - topTouchStart: null, - topTransitionEnd: null, - topVolumeChange: null, - topWaiting: null, - topWheel: null -}; - -var EventConstants = { - topLevelTypes: topLevelTypes -}; - -module.exports = EventConstants; -},{}],17:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _prodInvariant = _dereq_(129); - -var EventPluginRegistry = _dereq_(18); -var EventPluginUtils = _dereq_(19); -var ReactErrorUtils = _dereq_(56); - -var accumulateInto = _dereq_(104); -var forEachAccumulated = _dereq_(112); -var invariant = _dereq_(154); - -/** - * Internal store for event listeners - */ -var listenerBank = {}; - -/** - * Internal queue of events that have accumulated their dispatches and are - * waiting to have their dispatches executed. - */ -var eventQueue = null; - -/** - * Dispatches an event and releases it back into the pool, unless persistent. - * - * @param {?object} event Synthetic event to be dispatched. - * @param {boolean} simulated If the event is simulated (changes exn behavior) - * @private - */ -var executeDispatchesAndRelease = function (event, simulated) { - if (event) { - EventPluginUtils.executeDispatchesInOrder(event, simulated); - - if (!event.isPersistent()) { - event.constructor.release(event); - } - } -}; -var executeDispatchesAndReleaseSimulated = function (e) { - return executeDispatchesAndRelease(e, true); -}; -var executeDispatchesAndReleaseTopLevel = function (e) { - return executeDispatchesAndRelease(e, false); -}; - -var getDictionaryKey = function (inst) { - // Prevents V8 performance issue: - // https://github.com/facebook/react/pull/7232 - return '.' + inst._rootNodeID; -}; - -/** - * This is a unified interface for event plugins to be installed and configured. - * - * Event plugins can implement the following properties: - * - * `extractEvents` {function(string, DOMEventTarget, string, object): *} - * Required. When a top-level event is fired, this method is expected to - * extract synthetic events that will in turn be queued and dispatched. - * - * `eventTypes` {object} - * Optional, plugins that fire events must publish a mapping of registration - * names that are used to register listeners. Values of this mapping must - * be objects that contain `registrationName` or `phasedRegistrationNames`. - * - * `executeDispatch` {function(object, function, string)} - * Optional, allows plugins to override how an event gets dispatched. By - * default, the listener is simply invoked. - * - * Each plugin that is injected into `EventsPluginHub` is immediately operable. - * - * @public - */ -var EventPluginHub = { - - /** - * Methods for injecting dependencies. - */ - injection: { - - /** - * @param {array} InjectedEventPluginOrder - * @public - */ - injectEventPluginOrder: EventPluginRegistry.injectEventPluginOrder, - - /** - * @param {object} injectedNamesToPlugins Map from names to plugin modules. - */ - injectEventPluginsByName: EventPluginRegistry.injectEventPluginsByName - - }, - - /** - * Stores `listener` at `listenerBank[registrationName][key]`. Is idempotent. - * - * @param {object} inst The instance, which is the source of events. - * @param {string} registrationName Name of listener (e.g. `onClick`). - * @param {function} listener The callback to store. - */ - putListener: function (inst, registrationName, listener) { - !(typeof listener === 'function') ? "development" !== 'production' ? invariant(false, 'Expected %s listener to be a function, instead got type %s', registrationName, typeof listener) : _prodInvariant('94', registrationName, typeof listener) : void 0; - - var key = getDictionaryKey(inst); - var bankForRegistrationName = listenerBank[registrationName] || (listenerBank[registrationName] = {}); - bankForRegistrationName[key] = listener; - - var PluginModule = EventPluginRegistry.registrationNameModules[registrationName]; - if (PluginModule && PluginModule.didPutListener) { - PluginModule.didPutListener(inst, registrationName, listener); - } - }, - - /** - * @param {object} inst The instance, which is the source of events. - * @param {string} registrationName Name of listener (e.g. `onClick`). - * @return {?function} The stored callback. - */ - getListener: function (inst, registrationName) { - var bankForRegistrationName = listenerBank[registrationName]; - var key = getDictionaryKey(inst); - return bankForRegistrationName && bankForRegistrationName[key]; - }, - - /** - * Deletes a listener from the registration bank. - * - * @param {object} inst The instance, which is the source of events. - * @param {string} registrationName Name of listener (e.g. `onClick`). - */ - deleteListener: function (inst, registrationName) { - var PluginModule = EventPluginRegistry.registrationNameModules[registrationName]; - if (PluginModule && PluginModule.willDeleteListener) { - PluginModule.willDeleteListener(inst, registrationName); - } - - var bankForRegistrationName = listenerBank[registrationName]; - // TODO: This should never be null -- when is it? - if (bankForRegistrationName) { - var key = getDictionaryKey(inst); - delete bankForRegistrationName[key]; - } - }, - - /** - * Deletes all listeners for the DOM element with the supplied ID. - * - * @param {object} inst The instance, which is the source of events. - */ - deleteAllListeners: function (inst) { - var key = getDictionaryKey(inst); - for (var registrationName in listenerBank) { - if (!listenerBank.hasOwnProperty(registrationName)) { - continue; - } - - if (!listenerBank[registrationName][key]) { - continue; - } - - var PluginModule = EventPluginRegistry.registrationNameModules[registrationName]; - if (PluginModule && PluginModule.willDeleteListener) { - PluginModule.willDeleteListener(inst, registrationName); - } - - delete listenerBank[registrationName][key]; - } - }, - - /** - * Allows registered plugins an opportunity to extract events from top-level - * native browser events. - * - * @return {*} An accumulation of synthetic events. - * @internal - */ - extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) { - var events; - var plugins = EventPluginRegistry.plugins; - for (var i = 0; i < plugins.length; i++) { - // Not every plugin in the ordering may be loaded at runtime. - var possiblePlugin = plugins[i]; - if (possiblePlugin) { - var extractedEvents = possiblePlugin.extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget); - if (extractedEvents) { - events = accumulateInto(events, extractedEvents); - } - } - } - return events; - }, - - /** - * Enqueues a synthetic event that should be dispatched when - * `processEventQueue` is invoked. - * - * @param {*} events An accumulation of synthetic events. - * @internal - */ - enqueueEvents: function (events) { - if (events) { - eventQueue = accumulateInto(eventQueue, events); - } - }, - - /** - * Dispatches all synthetic events on the event queue. - * - * @internal - */ - processEventQueue: function (simulated) { - // Set `eventQueue` to null before processing it so that we can tell if more - // events get enqueued while processing. - var processingEventQueue = eventQueue; - eventQueue = null; - if (simulated) { - forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseSimulated); - } else { - forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseTopLevel); - } - !!eventQueue ? "development" !== 'production' ? invariant(false, 'processEventQueue(): Additional events were enqueued while processing an event queue. Support for this has not yet been implemented.') : _prodInvariant('95') : void 0; - // This would be a good time to rethrow if any of the event handlers threw. - ReactErrorUtils.rethrowCaughtError(); - }, - - /** - * These are needed for tests only. Do not use! - */ - __purge: function () { - listenerBank = {}; - }, - - __getListenerBank: function () { - return listenerBank; - } - -}; - -module.exports = EventPluginHub; -},{"104":104,"112":112,"129":129,"154":154,"18":18,"19":19,"56":56}],18:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -'use strict'; - -var _prodInvariant = _dereq_(129); - -var invariant = _dereq_(154); - -/** - * Injectable ordering of event plugins. - */ -var eventPluginOrder = null; - -/** - * Injectable mapping from names to event plugin modules. - */ -var namesToPlugins = {}; - -/** - * Recomputes the plugin list using the injected plugins and plugin ordering. - * - * @private - */ -function recomputePluginOrdering() { - if (!eventPluginOrder) { - // Wait until an `eventPluginOrder` is injected. - return; - } - for (var pluginName in namesToPlugins) { - var pluginModule = namesToPlugins[pluginName]; - var pluginIndex = eventPluginOrder.indexOf(pluginName); - !(pluginIndex > -1) ? "development" !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `%s`.', pluginName) : _prodInvariant('96', pluginName) : void 0; - if (EventPluginRegistry.plugins[pluginIndex]) { - continue; - } - !pluginModule.extractEvents ? "development" !== 'production' ? invariant(false, 'EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `%s` does not.', pluginName) : _prodInvariant('97', pluginName) : void 0; - EventPluginRegistry.plugins[pluginIndex] = pluginModule; - var publishedEvents = pluginModule.eventTypes; - for (var eventName in publishedEvents) { - !publishEventForPlugin(publishedEvents[eventName], pluginModule, eventName) ? "development" !== 'production' ? invariant(false, 'EventPluginRegistry: Failed to publish event `%s` for plugin `%s`.', eventName, pluginName) : _prodInvariant('98', eventName, pluginName) : void 0; - } - } -} - -/** - * Publishes an event so that it can be dispatched by the supplied plugin. - * - * @param {object} dispatchConfig Dispatch configuration for the event. - * @param {object} PluginModule Plugin publishing the event. - * @return {boolean} True if the event was successfully published. - * @private - */ -function publishEventForPlugin(dispatchConfig, pluginModule, eventName) { - !!EventPluginRegistry.eventNameDispatchConfigs.hasOwnProperty(eventName) ? "development" !== 'production' ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same event name, `%s`.', eventName) : _prodInvariant('99', eventName) : void 0; - EventPluginRegistry.eventNameDispatchConfigs[eventName] = dispatchConfig; - - var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames; - if (phasedRegistrationNames) { - for (var phaseName in phasedRegistrationNames) { - if (phasedRegistrationNames.hasOwnProperty(phaseName)) { - var phasedRegistrationName = phasedRegistrationNames[phaseName]; - publishRegistrationName(phasedRegistrationName, pluginModule, eventName); - } - } - return true; - } else if (dispatchConfig.registrationName) { - publishRegistrationName(dispatchConfig.registrationName, pluginModule, eventName); - return true; - } - return false; -} - -/** - * Publishes a registration name that is used to identify dispatched events and - * can be used with `EventPluginHub.putListener` to register listeners. - * - * @param {string} registrationName Registration name to add. - * @param {object} PluginModule Plugin publishing the event. - * @private - */ -function publishRegistrationName(registrationName, pluginModule, eventName) { - !!EventPluginRegistry.registrationNameModules[registrationName] ? "development" !== 'production' ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same registration name, `%s`.', registrationName) : _prodInvariant('100', registrationName) : void 0; - EventPluginRegistry.registrationNameModules[registrationName] = pluginModule; - EventPluginRegistry.registrationNameDependencies[registrationName] = pluginModule.eventTypes[eventName].dependencies; - - if ("development" !== 'production') { - var lowerCasedName = registrationName.toLowerCase(); - EventPluginRegistry.possibleRegistrationNames[lowerCasedName] = registrationName; - - if (registrationName === 'onDoubleClick') { - EventPluginRegistry.possibleRegistrationNames.ondblclick = registrationName; - } - } -} - -/** - * Registers plugins so that they can extract and dispatch events. - * - * @see {EventPluginHub} - */ -var EventPluginRegistry = { - - /** - * Ordered list of injected plugins. - */ - plugins: [], - - /** - * Mapping from event name to dispatch config - */ - eventNameDispatchConfigs: {}, - - /** - * Mapping from registration name to plugin module - */ - registrationNameModules: {}, - - /** - * Mapping from registration name to event name - */ - registrationNameDependencies: {}, - - /** - * Mapping from lowercase registration names to the properly cased version, - * used to warn in the case of missing event handlers. Available - * only in __DEV__. - * @type {Object} - */ - possibleRegistrationNames: "development" !== 'production' ? {} : null, - // Trust the developer to only use possibleRegistrationNames in __DEV__ - - /** - * Injects an ordering of plugins (by plugin name). This allows the ordering - * to be decoupled from injection of the actual plugins so that ordering is - * always deterministic regardless of packaging, on-the-fly injection, etc. - * - * @param {array} InjectedEventPluginOrder - * @internal - * @see {EventPluginHub.injection.injectEventPluginOrder} - */ - injectEventPluginOrder: function (injectedEventPluginOrder) { - !!eventPluginOrder ? "development" !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React.') : _prodInvariant('101') : void 0; - // Clone the ordering so it cannot be dynamically mutated. - eventPluginOrder = Array.prototype.slice.call(injectedEventPluginOrder); - recomputePluginOrdering(); - }, - - /** - * Injects plugins to be used by `EventPluginHub`. The plugin names must be - * in the ordering injected by `injectEventPluginOrder`. - * - * Plugins can be injected as part of page initialization or on-the-fly. - * - * @param {object} injectedNamesToPlugins Map from names to plugin modules. - * @internal - * @see {EventPluginHub.injection.injectEventPluginsByName} - */ - injectEventPluginsByName: function (injectedNamesToPlugins) { - var isOrderingDirty = false; - for (var pluginName in injectedNamesToPlugins) { - if (!injectedNamesToPlugins.hasOwnProperty(pluginName)) { - continue; - } - var pluginModule = injectedNamesToPlugins[pluginName]; - if (!namesToPlugins.hasOwnProperty(pluginName) || namesToPlugins[pluginName] !== pluginModule) { - !!namesToPlugins[pluginName] ? "development" !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject two different event plugins using the same name, `%s`.', pluginName) : _prodInvariant('102', pluginName) : void 0; - namesToPlugins[pluginName] = pluginModule; - isOrderingDirty = true; - } - } - if (isOrderingDirty) { - recomputePluginOrdering(); - } - }, - - /** - * Looks up the plugin for the supplied event. - * - * @param {object} event A synthetic event. - * @return {?object} The plugin that created the supplied event. - * @internal - */ - getPluginModuleForEvent: function (event) { - var dispatchConfig = event.dispatchConfig; - if (dispatchConfig.registrationName) { - return EventPluginRegistry.registrationNameModules[dispatchConfig.registrationName] || null; - } - if (dispatchConfig.phasedRegistrationNames !== undefined) { - // pulling phasedRegistrationNames out of dispatchConfig helps Flow see - // that it is not undefined. - var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames; - - for (var phase in phasedRegistrationNames) { - if (!phasedRegistrationNames.hasOwnProperty(phase)) { - continue; - } - var pluginModule = EventPluginRegistry.registrationNameModules[phasedRegistrationNames[phase]]; - if (pluginModule) { - return pluginModule; - } - } - } - return null; - }, - - /** - * Exposed for unit testing. - * @private - */ - _resetEventPlugins: function () { - eventPluginOrder = null; - for (var pluginName in namesToPlugins) { - if (namesToPlugins.hasOwnProperty(pluginName)) { - delete namesToPlugins[pluginName]; - } - } - EventPluginRegistry.plugins.length = 0; - - var eventNameDispatchConfigs = EventPluginRegistry.eventNameDispatchConfigs; - for (var eventName in eventNameDispatchConfigs) { - if (eventNameDispatchConfigs.hasOwnProperty(eventName)) { - delete eventNameDispatchConfigs[eventName]; - } - } - - var registrationNameModules = EventPluginRegistry.registrationNameModules; - for (var registrationName in registrationNameModules) { - if (registrationNameModules.hasOwnProperty(registrationName)) { - delete registrationNameModules[registrationName]; - } - } - - if ("development" !== 'production') { - var possibleRegistrationNames = EventPluginRegistry.possibleRegistrationNames; - for (var lowerCasedName in possibleRegistrationNames) { - if (possibleRegistrationNames.hasOwnProperty(lowerCasedName)) { - delete possibleRegistrationNames[lowerCasedName]; - } - } - } - } - -}; - -module.exports = EventPluginRegistry; -},{"129":129,"154":154}],19:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _prodInvariant = _dereq_(129); - -var ReactTreeTraversal = _dereq_(81); -var ReactErrorUtils = _dereq_(56); - -var invariant = _dereq_(154); -var warning = _dereq_(161); - -/** - * Injected dependencies: - */ - -/** - * - `ComponentTree`: [required] Module that can convert between React instances - * and actual node references. - */ -var ComponentTree; -var injection = { - injectComponentTree: function (Injected) { - ComponentTree = Injected; - if ("development" !== 'production') { - "development" !== 'production' ? warning(Injected && Injected.getNodeFromInstance && Injected.getInstanceFromNode, 'EventPluginUtils.injection.injectComponentTree(...): Injected ' + 'module is missing getNodeFromInstance or getInstanceFromNode.') : void 0; - } - } -}; - -function isEndish(topLevelType) { - return topLevelType === 'topMouseUp' || topLevelType === 'topTouchEnd' || topLevelType === 'topTouchCancel'; -} - -function isMoveish(topLevelType) { - return topLevelType === 'topMouseMove' || topLevelType === 'topTouchMove'; -} -function isStartish(topLevelType) { - return topLevelType === 'topMouseDown' || topLevelType === 'topTouchStart'; -} - -var validateEventDispatches; -if ("development" !== 'production') { - validateEventDispatches = function (event) { - var dispatchListeners = event._dispatchListeners; - var dispatchInstances = event._dispatchInstances; - - var listenersIsArr = Array.isArray(dispatchListeners); - var listenersLen = listenersIsArr ? dispatchListeners.length : dispatchListeners ? 1 : 0; - - var instancesIsArr = Array.isArray(dispatchInstances); - var instancesLen = instancesIsArr ? dispatchInstances.length : dispatchInstances ? 1 : 0; - - "development" !== 'production' ? warning(instancesIsArr === listenersIsArr && instancesLen === listenersLen, 'EventPluginUtils: Invalid `event`.') : void 0; - }; -} - -/** - * Dispatch the event to the listener. - * @param {SyntheticEvent} event SyntheticEvent to handle - * @param {boolean} simulated If the event is simulated (changes exn behavior) - * @param {function} listener Application-level callback - * @param {*} inst Internal component instance - */ -function executeDispatch(event, simulated, listener, inst) { - var type = event.type || 'unknown-event'; - event.currentTarget = EventPluginUtils.getNodeFromInstance(inst); - if (simulated) { - ReactErrorUtils.invokeGuardedCallbackWithCatch(type, listener, event); - } else { - ReactErrorUtils.invokeGuardedCallback(type, listener, event); - } - event.currentTarget = null; -} - -/** - * Standard/simple iteration through an event's collected dispatches. - */ -function executeDispatchesInOrder(event, simulated) { - var dispatchListeners = event._dispatchListeners; - var dispatchInstances = event._dispatchInstances; - if ("development" !== 'production') { - validateEventDispatches(event); - } - if (Array.isArray(dispatchListeners)) { - for (var i = 0; i < dispatchListeners.length; i++) { - if (event.isPropagationStopped()) { - break; - } - // Listeners and Instances are two parallel arrays that are always in sync. - executeDispatch(event, simulated, dispatchListeners[i], dispatchInstances[i]); - } - } else if (dispatchListeners) { - executeDispatch(event, simulated, dispatchListeners, dispatchInstances); - } - event._dispatchListeners = null; - event._dispatchInstances = null; -} - -/** - * Standard/simple iteration through an event's collected dispatches, but stops - * at the first dispatch execution returning true, and returns that id. - * - * @return {?string} id of the first dispatch execution who's listener returns - * true, or null if no listener returned true. - */ -function executeDispatchesInOrderStopAtTrueImpl(event) { - var dispatchListeners = event._dispatchListeners; - var dispatchInstances = event._dispatchInstances; - if ("development" !== 'production') { - validateEventDispatches(event); - } - if (Array.isArray(dispatchListeners)) { - for (var i = 0; i < dispatchListeners.length; i++) { - if (event.isPropagationStopped()) { - break; - } - // Listeners and Instances are two parallel arrays that are always in sync. - if (dispatchListeners[i](event, dispatchInstances[i])) { - return dispatchInstances[i]; - } - } - } else if (dispatchListeners) { - if (dispatchListeners(event, dispatchInstances)) { - return dispatchInstances; - } - } - return null; -} - -/** - * @see executeDispatchesInOrderStopAtTrueImpl - */ -function executeDispatchesInOrderStopAtTrue(event) { - var ret = executeDispatchesInOrderStopAtTrueImpl(event); - event._dispatchInstances = null; - event._dispatchListeners = null; - return ret; -} - -/** - * Execution of a "direct" dispatch - there must be at most one dispatch - * accumulated on the event or it is considered an error. It doesn't really make - * sense for an event with multiple dispatches (bubbled) to keep track of the - * return values at each dispatch execution, but it does tend to make sense when - * dealing with "direct" dispatches. - * - * @return {*} The return value of executing the single dispatch. - */ -function executeDirectDispatch(event) { - if ("development" !== 'production') { - validateEventDispatches(event); - } - var dispatchListener = event._dispatchListeners; - var dispatchInstance = event._dispatchInstances; - !!Array.isArray(dispatchListener) ? "development" !== 'production' ? invariant(false, 'executeDirectDispatch(...): Invalid `event`.') : _prodInvariant('103') : void 0; - event.currentTarget = dispatchListener ? EventPluginUtils.getNodeFromInstance(dispatchInstance) : null; - var res = dispatchListener ? dispatchListener(event) : null; - event.currentTarget = null; - event._dispatchListeners = null; - event._dispatchInstances = null; - return res; -} - -/** - * @param {SyntheticEvent} event - * @return {boolean} True iff number of dispatches accumulated is greater than 0. - */ -function hasDispatches(event) { - return !!event._dispatchListeners; -} - -/** - * General utilities that are useful in creating custom Event Plugins. - */ -var EventPluginUtils = { - isEndish: isEndish, - isMoveish: isMoveish, - isStartish: isStartish, - - executeDirectDispatch: executeDirectDispatch, - executeDispatchesInOrder: executeDispatchesInOrder, - executeDispatchesInOrderStopAtTrue: executeDispatchesInOrderStopAtTrue, - hasDispatches: hasDispatches, - - getInstanceFromNode: function (node) { - return ComponentTree.getInstanceFromNode(node); - }, - getNodeFromInstance: function (node) { - return ComponentTree.getNodeFromInstance(node); - }, - isAncestor: function (a, b) { - return ReactTreeTraversal.isAncestor(a, b); - }, - getLowestCommonAncestor: function (a, b) { - return ReactTreeTraversal.getLowestCommonAncestor(a, b); - }, - getParentInstance: function (inst) { - return ReactTreeTraversal.getParentInstance(inst); - }, - traverseTwoPhase: function (target, fn, arg) { - return ReactTreeTraversal.traverseTwoPhase(target, fn, arg); - }, - traverseEnterLeave: function (from, to, fn, argFrom, argTo) { - return ReactTreeTraversal.traverseEnterLeave(from, to, fn, argFrom, argTo); - }, - - injection: injection -}; - -module.exports = EventPluginUtils; -},{"129":129,"154":154,"161":161,"56":56,"81":81}],20:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var EventPluginHub = _dereq_(17); -var EventPluginUtils = _dereq_(19); - -var accumulateInto = _dereq_(104); -var forEachAccumulated = _dereq_(112); -var warning = _dereq_(161); - -var getListener = EventPluginHub.getListener; - -/** - * Some event types have a notion of different registration names for different - * "phases" of propagation. This finds listeners by a given phase. - */ -function listenerAtPhase(inst, event, propagationPhase) { - var registrationName = event.dispatchConfig.phasedRegistrationNames[propagationPhase]; - return getListener(inst, registrationName); -} - -/** - * Tags a `SyntheticEvent` with dispatched listeners. Creating this function - * here, allows us to not have to bind or create functions for each event. - * Mutating the event's members allows us to not have to create a wrapping - * "dispatch" object that pairs the event with the listener. - */ -function accumulateDirectionalDispatches(inst, phase, event) { - if ("development" !== 'production') { - "development" !== 'production' ? warning(inst, 'Dispatching inst must not be null') : void 0; - } - var listener = listenerAtPhase(inst, event, phase); - if (listener) { - event._dispatchListeners = accumulateInto(event._dispatchListeners, listener); - event._dispatchInstances = accumulateInto(event._dispatchInstances, inst); - } -} - -/** - * Collect dispatches (must be entirely collected before dispatching - see unit - * tests). Lazily allocate the array to conserve memory. We must loop through - * each event and perform the traversal for each one. We cannot perform a - * single traversal for the entire collection of events because each event may - * have a different target. - */ -function accumulateTwoPhaseDispatchesSingle(event) { - if (event && event.dispatchConfig.phasedRegistrationNames) { - EventPluginUtils.traverseTwoPhase(event._targetInst, accumulateDirectionalDispatches, event); - } -} - -/** - * Same as `accumulateTwoPhaseDispatchesSingle`, but skips over the targetID. - */ -function accumulateTwoPhaseDispatchesSingleSkipTarget(event) { - if (event && event.dispatchConfig.phasedRegistrationNames) { - var targetInst = event._targetInst; - var parentInst = targetInst ? EventPluginUtils.getParentInstance(targetInst) : null; - EventPluginUtils.traverseTwoPhase(parentInst, accumulateDirectionalDispatches, event); - } -} - -/** - * Accumulates without regard to direction, does not look for phased - * registration names. Same as `accumulateDirectDispatchesSingle` but without - * requiring that the `dispatchMarker` be the same as the dispatched ID. - */ -function accumulateDispatches(inst, ignoredDirection, event) { - if (event && event.dispatchConfig.registrationName) { - var registrationName = event.dispatchConfig.registrationName; - var listener = getListener(inst, registrationName); - if (listener) { - event._dispatchListeners = accumulateInto(event._dispatchListeners, listener); - event._dispatchInstances = accumulateInto(event._dispatchInstances, inst); - } - } -} - -/** - * Accumulates dispatches on an `SyntheticEvent`, but only for the - * `dispatchMarker`. - * @param {SyntheticEvent} event - */ -function accumulateDirectDispatchesSingle(event) { - if (event && event.dispatchConfig.registrationName) { - accumulateDispatches(event._targetInst, null, event); - } -} - -function accumulateTwoPhaseDispatches(events) { - forEachAccumulated(events, accumulateTwoPhaseDispatchesSingle); -} - -function accumulateTwoPhaseDispatchesSkipTarget(events) { - forEachAccumulated(events, accumulateTwoPhaseDispatchesSingleSkipTarget); -} - -function accumulateEnterLeaveDispatches(leave, enter, from, to) { - EventPluginUtils.traverseEnterLeave(from, to, accumulateDispatches, leave, enter); -} - -function accumulateDirectDispatches(events) { - forEachAccumulated(events, accumulateDirectDispatchesSingle); -} - -/** - * A small set of propagation patterns, each of which will accept a small amount - * of information, and generate a set of "dispatch ready event objects" - which - * are sets of events that have already been annotated with a set of dispatched - * listener functions/ids. The API is designed this way to discourage these - * propagation strategies from actually executing the dispatches, since we - * always want to collect the entire set of dispatches before executing event a - * single one. - * - * @constructor EventPropagators - */ -var EventPropagators = { - accumulateTwoPhaseDispatches: accumulateTwoPhaseDispatches, - accumulateTwoPhaseDispatchesSkipTarget: accumulateTwoPhaseDispatchesSkipTarget, - accumulateDirectDispatches: accumulateDirectDispatches, - accumulateEnterLeaveDispatches: accumulateEnterLeaveDispatches -}; - -module.exports = EventPropagators; -},{"104":104,"112":112,"161":161,"17":17,"19":19}],21:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _assign = _dereq_(162); - -var PooledClass = _dereq_(24); - -var getTextContentAccessor = _dereq_(122); - -/** - * This helper class stores information about text content of a target node, - * allowing comparison of content before and after a given event. - * - * Identify the node where selection currently begins, then observe - * both its text content and its current position in the DOM. Since the - * browser may natively replace the target node during composition, we can - * use its position to find its replacement. - * - * @param {DOMEventTarget} root - */ -function FallbackCompositionState(root) { - this._root = root; - this._startText = this.getText(); - this._fallbackText = null; -} - -_assign(FallbackCompositionState.prototype, { - destructor: function () { - this._root = null; - this._startText = null; - this._fallbackText = null; - }, - - /** - * Get current text of input. - * - * @return {string} - */ - getText: function () { - if ('value' in this._root) { - return this._root.value; - } - return this._root[getTextContentAccessor()]; - }, - - /** - * Determine the differing substring between the initially stored - * text content and the current content. - * - * @return {string} - */ - getData: function () { - if (this._fallbackText) { - return this._fallbackText; - } - - var start; - var startValue = this._startText; - var startLength = startValue.length; - var end; - var endValue = this.getText(); - var endLength = endValue.length; - - for (start = 0; start < startLength; start++) { - if (startValue[start] !== endValue[start]) { - break; - } - } - - var minEnd = startLength - start; - for (end = 1; end <= minEnd; end++) { - if (startValue[startLength - end] !== endValue[endLength - end]) { - break; - } - } - - var sliceTail = end > 1 ? 1 - end : undefined; - this._fallbackText = endValue.slice(start, sliceTail); - return this._fallbackText; - } -}); - -PooledClass.addPoolingTo(FallbackCompositionState); - -module.exports = FallbackCompositionState; -},{"122":122,"162":162,"24":24}],22:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var DOMProperty = _dereq_(12); - -var MUST_USE_PROPERTY = DOMProperty.injection.MUST_USE_PROPERTY; -var HAS_BOOLEAN_VALUE = DOMProperty.injection.HAS_BOOLEAN_VALUE; -var HAS_NUMERIC_VALUE = DOMProperty.injection.HAS_NUMERIC_VALUE; -var HAS_POSITIVE_NUMERIC_VALUE = DOMProperty.injection.HAS_POSITIVE_NUMERIC_VALUE; -var HAS_OVERLOADED_BOOLEAN_VALUE = DOMProperty.injection.HAS_OVERLOADED_BOOLEAN_VALUE; - -var HTMLDOMPropertyConfig = { - isCustomAttribute: RegExp.prototype.test.bind(new RegExp('^(data|aria)-[' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$')), - Properties: { - /** - * Standard Properties - */ - accept: 0, - acceptCharset: 0, - accessKey: 0, - action: 0, - allowFullScreen: HAS_BOOLEAN_VALUE, - allowTransparency: 0, - alt: 0, - // specifies target context for links with `preload` type - as: 0, - async: HAS_BOOLEAN_VALUE, - autoComplete: 0, - // autoFocus is polyfilled/normalized by AutoFocusUtils - // autoFocus: HAS_BOOLEAN_VALUE, - autoPlay: HAS_BOOLEAN_VALUE, - capture: HAS_BOOLEAN_VALUE, - cellPadding: 0, - cellSpacing: 0, - charSet: 0, - challenge: 0, - checked: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE, - cite: 0, - classID: 0, - className: 0, - cols: HAS_POSITIVE_NUMERIC_VALUE, - colSpan: 0, - content: 0, - contentEditable: 0, - contextMenu: 0, - controls: HAS_BOOLEAN_VALUE, - coords: 0, - crossOrigin: 0, - data: 0, // For `<object />` acts as `src`. - dateTime: 0, - 'default': HAS_BOOLEAN_VALUE, - defer: HAS_BOOLEAN_VALUE, - dir: 0, - disabled: HAS_BOOLEAN_VALUE, - download: HAS_OVERLOADED_BOOLEAN_VALUE, - draggable: 0, - encType: 0, - form: 0, - formAction: 0, - formEncType: 0, - formMethod: 0, - formNoValidate: HAS_BOOLEAN_VALUE, - formTarget: 0, - frameBorder: 0, - headers: 0, - height: 0, - hidden: HAS_BOOLEAN_VALUE, - high: 0, - href: 0, - hrefLang: 0, - htmlFor: 0, - httpEquiv: 0, - id: 0, - inputMode: 0, - integrity: 0, - is: 0, - keyParams: 0, - keyType: 0, - kind: 0, - label: 0, - lang: 0, - list: 0, - loop: HAS_BOOLEAN_VALUE, - low: 0, - manifest: 0, - marginHeight: 0, - marginWidth: 0, - max: 0, - maxLength: 0, - media: 0, - mediaGroup: 0, - method: 0, - min: 0, - minLength: 0, - // Caution; `option.selected` is not updated if `select.multiple` is - // disabled with `removeAttribute`. - multiple: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE, - muted: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE, - name: 0, - nonce: 0, - noValidate: HAS_BOOLEAN_VALUE, - open: HAS_BOOLEAN_VALUE, - optimum: 0, - pattern: 0, - placeholder: 0, - playsInline: HAS_BOOLEAN_VALUE, - poster: 0, - preload: 0, - profile: 0, - radioGroup: 0, - readOnly: HAS_BOOLEAN_VALUE, - referrerPolicy: 0, - rel: 0, - required: HAS_BOOLEAN_VALUE, - reversed: HAS_BOOLEAN_VALUE, - role: 0, - rows: HAS_POSITIVE_NUMERIC_VALUE, - rowSpan: HAS_NUMERIC_VALUE, - sandbox: 0, - scope: 0, - scoped: HAS_BOOLEAN_VALUE, - scrolling: 0, - seamless: HAS_BOOLEAN_VALUE, - selected: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE, - shape: 0, - size: HAS_POSITIVE_NUMERIC_VALUE, - sizes: 0, - // support for projecting regular DOM Elements via V1 named slots ( shadow dom ) - slot: 0, - span: HAS_POSITIVE_NUMERIC_VALUE, - spellCheck: 0, - src: 0, - srcDoc: 0, - srcLang: 0, - srcSet: 0, - start: HAS_NUMERIC_VALUE, - step: 0, - style: 0, - summary: 0, - tabIndex: 0, - target: 0, - title: 0, - // Setting .type throws on non-<input> tags - type: 0, - useMap: 0, - value: 0, - width: 0, - wmode: 0, - wrap: 0, - - /** - * RDFa Properties - */ - about: 0, - datatype: 0, - inlist: 0, - prefix: 0, - // property is also supported for OpenGraph in meta tags. - property: 0, - resource: 0, - 'typeof': 0, - vocab: 0, - - /** - * Non-standard Properties - */ - // autoCapitalize and autoCorrect are supported in Mobile Safari for - // keyboard hints. - autoCapitalize: 0, - autoCorrect: 0, - // autoSave allows WebKit/Blink to persist values of input fields on page reloads - autoSave: 0, - // color is for Safari mask-icon link - color: 0, - // itemProp, itemScope, itemType are for - // Microdata support. See http://schema.org/docs/gs.html - itemProp: 0, - itemScope: HAS_BOOLEAN_VALUE, - itemType: 0, - // itemID and itemRef are for Microdata support as well but - // only specified in the WHATWG spec document. See - // https://html.spec.whatwg.org/multipage/microdata.html#microdata-dom-api - itemID: 0, - itemRef: 0, - // results show looking glass icon and recent searches on input - // search fields in WebKit/Blink - results: 0, - // IE-only attribute that specifies security restrictions on an iframe - // as an alternative to the sandbox attribute on IE<10 - security: 0, - // IE-only attribute that controls focus behavior - unselectable: 0 - }, - DOMAttributeNames: { - acceptCharset: 'accept-charset', - className: 'class', - htmlFor: 'for', - httpEquiv: 'http-equiv' - }, - DOMPropertyNames: {} -}; - -module.exports = HTMLDOMPropertyConfig; -},{"12":12}],23:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -'use strict'; - -/** - * Escape and wrap key so it is safe to use as a reactid - * - * @param {string} key to be escaped. - * @return {string} the escaped key. - */ - -function escape(key) { - var escapeRegex = /[=:]/g; - var escaperLookup = { - '=': '=0', - ':': '=2' - }; - var escapedString = ('' + key).replace(escapeRegex, function (match) { - return escaperLookup[match]; - }); - - return '$' + escapedString; -} - -/** - * Unescape and unwrap key for human-readable display - * - * @param {string} key to unescape. - * @return {string} the unescaped key. - */ -function unescape(key) { - var unescapeRegex = /(=0|=2)/g; - var unescaperLookup = { - '=0': '=', - '=2': ':' - }; - var keySubstring = key[0] === '.' && key[1] === '$' ? key.substring(2) : key.substring(1); - - return ('' + keySubstring).replace(unescapeRegex, function (match) { - return unescaperLookup[match]; - }); -} - -var KeyEscapeUtils = { - escape: escape, - unescape: unescape -}; - -module.exports = KeyEscapeUtils; -},{}],24:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -'use strict'; - -var _prodInvariant = _dereq_(129); - -var invariant = _dereq_(154); - -/** - * Static poolers. Several custom versions for each potential number of - * arguments. A completely generic pooler is easy to implement, but would - * require accessing the `arguments` object. In each of these, `this` refers to - * the Class itself, not an instance. If any others are needed, simply add them - * here, or in their own files. - */ -var oneArgumentPooler = function (copyFieldsFrom) { - var Klass = this; - if (Klass.instancePool.length) { - var instance = Klass.instancePool.pop(); - Klass.call(instance, copyFieldsFrom); - return instance; - } else { - return new Klass(copyFieldsFrom); - } -}; - -var twoArgumentPooler = function (a1, a2) { - var Klass = this; - if (Klass.instancePool.length) { - var instance = Klass.instancePool.pop(); - Klass.call(instance, a1, a2); - return instance; - } else { - return new Klass(a1, a2); - } -}; - -var threeArgumentPooler = function (a1, a2, a3) { - var Klass = this; - if (Klass.instancePool.length) { - var instance = Klass.instancePool.pop(); - Klass.call(instance, a1, a2, a3); - return instance; - } else { - return new Klass(a1, a2, a3); - } -}; - -var fourArgumentPooler = function (a1, a2, a3, a4) { - var Klass = this; - if (Klass.instancePool.length) { - var instance = Klass.instancePool.pop(); - Klass.call(instance, a1, a2, a3, a4); - return instance; - } else { - return new Klass(a1, a2, a3, a4); - } -}; - -var fiveArgumentPooler = function (a1, a2, a3, a4, a5) { - var Klass = this; - if (Klass.instancePool.length) { - var instance = Klass.instancePool.pop(); - Klass.call(instance, a1, a2, a3, a4, a5); - return instance; - } else { - return new Klass(a1, a2, a3, a4, a5); - } -}; - -var standardReleaser = function (instance) { - var Klass = this; - !(instance instanceof Klass) ? "development" !== 'production' ? invariant(false, 'Trying to release an instance into a pool of a different type.') : _prodInvariant('25') : void 0; - instance.destructor(); - if (Klass.instancePool.length < Klass.poolSize) { - Klass.instancePool.push(instance); - } -}; - -var DEFAULT_POOL_SIZE = 10; -var DEFAULT_POOLER = oneArgumentPooler; - -/** - * Augments `CopyConstructor` to be a poolable class, augmenting only the class - * itself (statically) not adding any prototypical fields. Any CopyConstructor - * you give this may have a `poolSize` property, and will look for a - * prototypical `destructor` on instances. - * - * @param {Function} CopyConstructor Constructor that can be used to reset. - * @param {Function} pooler Customizable pooler. - */ -var addPoolingTo = function (CopyConstructor, pooler) { - // Casting as any so that flow ignores the actual implementation and trusts - // it to match the type we declared - var NewKlass = CopyConstructor; - NewKlass.instancePool = []; - NewKlass.getPooled = pooler || DEFAULT_POOLER; - if (!NewKlass.poolSize) { - NewKlass.poolSize = DEFAULT_POOL_SIZE; - } - NewKlass.release = standardReleaser; - return NewKlass; -}; - -var PooledClass = { - addPoolingTo: addPoolingTo, - oneArgumentPooler: oneArgumentPooler, - twoArgumentPooler: twoArgumentPooler, - threeArgumentPooler: threeArgumentPooler, - fourArgumentPooler: fourArgumentPooler, - fiveArgumentPooler: fiveArgumentPooler -}; - -module.exports = PooledClass; -},{"129":129,"154":154}],25:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _assign = _dereq_(162); - -var EventPluginRegistry = _dereq_(18); -var ReactEventEmitterMixin = _dereq_(57); -var ViewportMetrics = _dereq_(103); - -var getVendorPrefixedEventName = _dereq_(123); -var isEventSupported = _dereq_(126); - -/** - * Summary of `ReactBrowserEventEmitter` event handling: - * - * - Top-level delegation is used to trap most native browser events. This - * may only occur in the main thread and is the responsibility of - * ReactEventListener, which is injected and can therefore support pluggable - * event sources. This is the only work that occurs in the main thread. - * - * - We normalize and de-duplicate events to account for browser quirks. This - * may be done in the worker thread. - * - * - Forward these native events (with the associated top-level type used to - * trap it) to `EventPluginHub`, which in turn will ask plugins if they want - * to extract any synthetic events. - * - * - The `EventPluginHub` will then process each event by annotating them with - * "dispatches", a sequence of listeners and IDs that care about that event. - * - * - The `EventPluginHub` then dispatches the events. - * - * Overview of React and the event system: - * - * +------------+ . - * | DOM | . - * +------------+ . - * | . - * v . - * +------------+ . - * | ReactEvent | . - * | Listener | . - * +------------+ . +-----------+ - * | . +--------+|SimpleEvent| - * | . | |Plugin | - * +-----|------+ . v +-----------+ - * | | | . +--------------+ +------------+ - * | +-----------.--->|EventPluginHub| | Event | - * | | . | | +-----------+ | Propagators| - * | ReactEvent | . | | |TapEvent | |------------| - * | Emitter | . | |<---+|Plugin | |other plugin| - * | | . | | +-----------+ | utilities | - * | +-----------.--->| | +------------+ - * | | | . +--------------+ - * +-----|------+ . ^ +-----------+ - * | . | |Enter/Leave| - * + . +-------+|Plugin | - * +-------------+ . +-----------+ - * | application | . - * |-------------| . - * | | . - * | | . - * +-------------+ . - * . - * React Core . General Purpose Event Plugin System - */ - -var hasEventPageXY; -var alreadyListeningTo = {}; -var isMonitoringScrollValue = false; -var reactTopListenersCounter = 0; - -// For events like 'submit' which don't consistently bubble (which we trap at a -// lower node than `document`), binding at `document` would cause duplicate -// events so we don't include them here -var topEventMapping = { - topAbort: 'abort', - topAnimationEnd: getVendorPrefixedEventName('animationend') || 'animationend', - topAnimationIteration: getVendorPrefixedEventName('animationiteration') || 'animationiteration', - topAnimationStart: getVendorPrefixedEventName('animationstart') || 'animationstart', - topBlur: 'blur', - topCanPlay: 'canplay', - topCanPlayThrough: 'canplaythrough', - topChange: 'change', - topClick: 'click', - topCompositionEnd: 'compositionend', - topCompositionStart: 'compositionstart', - topCompositionUpdate: 'compositionupdate', - topContextMenu: 'contextmenu', - topCopy: 'copy', - topCut: 'cut', - topDoubleClick: 'dblclick', - topDrag: 'drag', - topDragEnd: 'dragend', - topDragEnter: 'dragenter', - topDragExit: 'dragexit', - topDragLeave: 'dragleave', - topDragOver: 'dragover', - topDragStart: 'dragstart', - topDrop: 'drop', - topDurationChange: 'durationchange', - topEmptied: 'emptied', - topEncrypted: 'encrypted', - topEnded: 'ended', - topError: 'error', - topFocus: 'focus', - topInput: 'input', - topKeyDown: 'keydown', - topKeyPress: 'keypress', - topKeyUp: 'keyup', - topLoadedData: 'loadeddata', - topLoadedMetadata: 'loadedmetadata', - topLoadStart: 'loadstart', - topMouseDown: 'mousedown', - topMouseMove: 'mousemove', - topMouseOut: 'mouseout', - topMouseOver: 'mouseover', - topMouseUp: 'mouseup', - topPaste: 'paste', - topPause: 'pause', - topPlay: 'play', - topPlaying: 'playing', - topProgress: 'progress', - topRateChange: 'ratechange', - topScroll: 'scroll', - topSeeked: 'seeked', - topSeeking: 'seeking', - topSelectionChange: 'selectionchange', - topStalled: 'stalled', - topSuspend: 'suspend', - topTextInput: 'textInput', - topTimeUpdate: 'timeupdate', - topTouchCancel: 'touchcancel', - topTouchEnd: 'touchend', - topTouchMove: 'touchmove', - topTouchStart: 'touchstart', - topTransitionEnd: getVendorPrefixedEventName('transitionend') || 'transitionend', - topVolumeChange: 'volumechange', - topWaiting: 'waiting', - topWheel: 'wheel' -}; - -/** - * To ensure no conflicts with other potential React instances on the page - */ -var topListenersIDKey = '_reactListenersID' + String(Math.random()).slice(2); - -function getListeningForDocument(mountAt) { - // In IE8, `mountAt` is a host object and doesn't have `hasOwnProperty` - // directly. - if (!Object.prototype.hasOwnProperty.call(mountAt, topListenersIDKey)) { - mountAt[topListenersIDKey] = reactTopListenersCounter++; - alreadyListeningTo[mountAt[topListenersIDKey]] = {}; - } - return alreadyListeningTo[mountAt[topListenersIDKey]]; -} - -/** - * `ReactBrowserEventEmitter` is used to attach top-level event listeners. For - * example: - * - * EventPluginHub.putListener('myID', 'onClick', myFunction); - * - * This would allocate a "registration" of `('onClick', myFunction)` on 'myID'. - * - * @internal - */ -var ReactBrowserEventEmitter = _assign({}, ReactEventEmitterMixin, { - - /** - * Injectable event backend - */ - ReactEventListener: null, - - injection: { - /** - * @param {object} ReactEventListener - */ - injectReactEventListener: function (ReactEventListener) { - ReactEventListener.setHandleTopLevel(ReactBrowserEventEmitter.handleTopLevel); - ReactBrowserEventEmitter.ReactEventListener = ReactEventListener; - } - }, - - /** - * Sets whether or not any created callbacks should be enabled. - * - * @param {boolean} enabled True if callbacks should be enabled. - */ - setEnabled: function (enabled) { - if (ReactBrowserEventEmitter.ReactEventListener) { - ReactBrowserEventEmitter.ReactEventListener.setEnabled(enabled); - } - }, - - /** - * @return {boolean} True if callbacks are enabled. - */ - isEnabled: function () { - return !!(ReactBrowserEventEmitter.ReactEventListener && ReactBrowserEventEmitter.ReactEventListener.isEnabled()); - }, - - /** - * We listen for bubbled touch events on the document object. - * - * Firefox v8.01 (and possibly others) exhibited strange behavior when - * mounting `onmousemove` events at some node that was not the document - * element. The symptoms were that if your mouse is not moving over something - * contained within that mount point (for example on the background) the - * top-level listeners for `onmousemove` won't be called. However, if you - * register the `mousemove` on the document object, then it will of course - * catch all `mousemove`s. This along with iOS quirks, justifies restricting - * top-level listeners to the document object only, at least for these - * movement types of events and possibly all events. - * - * @see http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html - * - * Also, `keyup`/`keypress`/`keydown` do not bubble to the window on IE, but - * they bubble to document. - * - * @param {string} registrationName Name of listener (e.g. `onClick`). - * @param {object} contentDocumentHandle Document which owns the container - */ - listenTo: function (registrationName, contentDocumentHandle) { - var mountAt = contentDocumentHandle; - var isListening = getListeningForDocument(mountAt); - var dependencies = EventPluginRegistry.registrationNameDependencies[registrationName]; - - for (var i = 0; i < dependencies.length; i++) { - var dependency = dependencies[i]; - if (!(isListening.hasOwnProperty(dependency) && isListening[dependency])) { - if (dependency === 'topWheel') { - if (isEventSupported('wheel')) { - ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topWheel', 'wheel', mountAt); - } else if (isEventSupported('mousewheel')) { - ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topWheel', 'mousewheel', mountAt); - } else { - // Firefox needs to capture a different mouse scroll event. - // @see http://www.quirksmode.org/dom/events/tests/scroll.html - ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topWheel', 'DOMMouseScroll', mountAt); - } - } else if (dependency === 'topScroll') { - - if (isEventSupported('scroll', true)) { - ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topScroll', 'scroll', mountAt); - } else { - ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topScroll', 'scroll', ReactBrowserEventEmitter.ReactEventListener.WINDOW_HANDLE); - } - } else if (dependency === 'topFocus' || dependency === 'topBlur') { - - if (isEventSupported('focus', true)) { - ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topFocus', 'focus', mountAt); - ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topBlur', 'blur', mountAt); - } else if (isEventSupported('focusin')) { - // IE has `focusin` and `focusout` events which bubble. - // @see http://www.quirksmode.org/blog/archives/2008/04/delegating_the.html - ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topFocus', 'focusin', mountAt); - ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topBlur', 'focusout', mountAt); - } - - // to make sure blur and focus event listeners are only attached once - isListening.topBlur = true; - isListening.topFocus = true; - } else if (topEventMapping.hasOwnProperty(dependency)) { - ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(dependency, topEventMapping[dependency], mountAt); - } - - isListening[dependency] = true; - } - } - }, - - isListeningToAllDependencies: function (registrationName, mountAt) { - var isListening = getListeningForDocument(mountAt); - var dependencies = EventPluginRegistry.registrationNameDependencies[registrationName]; - for (var i = 0; i < dependencies.length; i++) { - var dependency = dependencies[i]; - if (!(isListening.hasOwnProperty(dependency) && isListening[dependency])) { - return false; - } - } - return true; - }, - - trapBubbledEvent: function (topLevelType, handlerBaseName, handle) { - return ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelType, handlerBaseName, handle); - }, - - trapCapturedEvent: function (topLevelType, handlerBaseName, handle) { - return ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelType, handlerBaseName, handle); - }, - - /** - * Protect against document.createEvent() returning null - * Some popup blocker extensions appear to do this: - * https://github.com/facebook/react/issues/6887 - */ - supportsEventPageXY: function () { - if (!document.createEvent) { - return false; - } - var ev = document.createEvent('MouseEvent'); - return ev != null && 'pageX' in ev; - }, - - /** - * Listens to window scroll and resize events. We cache scroll values so that - * application code can access them without triggering reflows. - * - * ViewportMetrics is only used by SyntheticMouse/TouchEvent and only when - * pageX/pageY isn't supported (legacy browsers). - * - * NOTE: Scroll events do not bubble. - * - * @see http://www.quirksmode.org/dom/events/scroll.html - */ - ensureScrollValueMonitoring: function () { - if (hasEventPageXY === undefined) { - hasEventPageXY = ReactBrowserEventEmitter.supportsEventPageXY(); - } - if (!hasEventPageXY && !isMonitoringScrollValue) { - var refresh = ViewportMetrics.refreshScrollValues; - ReactBrowserEventEmitter.ReactEventListener.monitorScrollValue(refresh); - isMonitoringScrollValue = true; - } - } - -}); - -module.exports = ReactBrowserEventEmitter; -},{"103":103,"123":123,"126":126,"162":162,"18":18,"57":57}],26:[function(_dereq_,module,exports){ -(function (process){ -/** - * Copyright 2014-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var ReactReconciler = _dereq_(75); - -var instantiateReactComponent = _dereq_(125); -var KeyEscapeUtils = _dereq_(23); -var shouldUpdateReactComponent = _dereq_(133); -var traverseAllChildren = _dereq_(134); -var warning = _dereq_(161); - -var ReactComponentTreeHook; - -if (typeof process !== 'undefined' && process.env && "development" === 'test') { - // Temporary hack. - // Inline requires don't work well with Jest: - // https://github.com/facebook/react/issues/7240 - // Remove the inline requires when we don't need them anymore: - // https://github.com/facebook/react/pull/7178 - ReactComponentTreeHook = _dereq_(136); -} - -function instantiateChild(childInstances, child, name, selfDebugID) { - // We found a component instance. - var keyUnique = childInstances[name] === undefined; - if ("development" !== 'production') { - if (!ReactComponentTreeHook) { - ReactComponentTreeHook = _dereq_(136); - } - if (!keyUnique) { - "development" !== 'production' ? warning(false, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.%s', KeyEscapeUtils.unescape(name), ReactComponentTreeHook.getStackAddendumByID(selfDebugID)) : void 0; - } - } - if (child != null && keyUnique) { - childInstances[name] = instantiateReactComponent(child, true); - } -} - -/** - * ReactChildReconciler provides helpers for initializing or updating a set of - * children. Its output is suitable for passing it onto ReactMultiChild which - * does diffed reordering and insertion. - */ -var ReactChildReconciler = { - /** - * Generates a "mount image" for each of the supplied children. In the case - * of `ReactDOMComponent`, a mount image is a string of markup. - * - * @param {?object} nestedChildNodes Nested child maps. - * @return {?object} A set of child instances. - * @internal - */ - instantiateChildren: function (nestedChildNodes, transaction, context, selfDebugID // 0 in production and for roots - ) { - if (nestedChildNodes == null) { - return null; - } - var childInstances = {}; - - if ("development" !== 'production') { - traverseAllChildren(nestedChildNodes, function (childInsts, child, name) { - return instantiateChild(childInsts, child, name, selfDebugID); - }, childInstances); - } else { - traverseAllChildren(nestedChildNodes, instantiateChild, childInstances); - } - return childInstances; - }, - - /** - * Updates the rendered children and returns a new set of children. - * - * @param {?object} prevChildren Previously initialized set of children. - * @param {?object} nextChildren Flat child element maps. - * @param {ReactReconcileTransaction} transaction - * @param {object} context - * @return {?object} A new set of child instances. - * @internal - */ - updateChildren: function (prevChildren, nextChildren, mountImages, removedNodes, transaction, hostParent, hostContainerInfo, context, selfDebugID // 0 in production and for roots - ) { - // We currently don't have a way to track moves here but if we use iterators - // instead of for..in we can zip the iterators and check if an item has - // moved. - // TODO: If nothing has changed, return the prevChildren object so that we - // can quickly bailout if nothing has changed. - if (!nextChildren && !prevChildren) { - return; - } - var name; - var prevChild; - for (name in nextChildren) { - if (!nextChildren.hasOwnProperty(name)) { - continue; - } - prevChild = prevChildren && prevChildren[name]; - var prevElement = prevChild && prevChild._currentElement; - var nextElement = nextChildren[name]; - if (prevChild != null && shouldUpdateReactComponent(prevElement, nextElement)) { - ReactReconciler.receiveComponent(prevChild, nextElement, transaction, context); - nextChildren[name] = prevChild; - } else { - if (prevChild) { - removedNodes[name] = ReactReconciler.getHostNode(prevChild); - ReactReconciler.unmountComponent(prevChild, false, /* safely */ - false /* skipLifecycle */ - ); - } - // The child must be instantiated before it's mounted. - var nextChildInstance = instantiateReactComponent(nextElement, true); - nextChildren[name] = nextChildInstance; - // Creating mount image now ensures refs are resolved in right order - // (see https://github.com/facebook/react/pull/7101 for explanation). - var nextChildMountImage = ReactReconciler.mountComponent(nextChildInstance, transaction, hostParent, hostContainerInfo, context, selfDebugID); - mountImages.push(nextChildMountImage); - } - } - // Unmount children that are no longer present. - for (name in prevChildren) { - if (prevChildren.hasOwnProperty(name) && !(nextChildren && nextChildren.hasOwnProperty(name))) { - prevChild = prevChildren[name]; - removedNodes[name] = ReactReconciler.getHostNode(prevChild); - ReactReconciler.unmountComponent(prevChild, false, /* safely */ - false /* skipLifecycle */ - ); - } - } - }, - - /** - * Unmounts all rendered children. This should be used to clean up children - * when this component is unmounted. - * - * @param {?object} renderedChildren Previously initialized set of children. - * @internal - */ - unmountChildren: function (renderedChildren, safely, skipLifecycle) { - for (var name in renderedChildren) { - if (renderedChildren.hasOwnProperty(name)) { - var renderedChild = renderedChildren[name]; - ReactReconciler.unmountComponent(renderedChild, safely, skipLifecycle); - } - } - } - -}; - -module.exports = ReactChildReconciler; -}).call(this,undefined) -},{"125":125,"133":133,"134":134,"136":136,"161":161,"23":23,"75":75}],27:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var DOMChildrenOperations = _dereq_(8); -var ReactDOMIDOperations = _dereq_(39); - -/** - * Abstracts away all functionality of the reconciler that requires knowledge of - * the browser context. TODO: These callers should be refactored to avoid the - * need for this injection. - */ -var ReactComponentBrowserEnvironment = { - - processChildrenUpdates: ReactDOMIDOperations.dangerouslyProcessChildrenUpdates, - - replaceNodeWithMarkup: DOMChildrenOperations.dangerouslyReplaceNodeWithMarkup - -}; - -module.exports = ReactComponentBrowserEnvironment; -},{"39":39,"8":8}],28:[function(_dereq_,module,exports){ -/** - * Copyright 2014-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -'use strict'; - -var _prodInvariant = _dereq_(129); - -var invariant = _dereq_(154); - -var injected = false; - -var ReactComponentEnvironment = { - - /** - * Optionally injectable hook for swapping out mount images in the middle of - * the tree. - */ - replaceNodeWithMarkup: null, - - /** - * Optionally injectable hook for processing a queue of child updates. Will - * later move into MultiChildComponents. - */ - processChildrenUpdates: null, - - injection: { - injectEnvironment: function (environment) { - !!injected ? "development" !== 'production' ? invariant(false, 'ReactCompositeComponent: injectEnvironment() can only be called once.') : _prodInvariant('104') : void 0; - ReactComponentEnvironment.replaceNodeWithMarkup = environment.replaceNodeWithMarkup; - ReactComponentEnvironment.processChildrenUpdates = environment.processChildrenUpdates; - injected = true; - } - } - -}; - -module.exports = ReactComponentEnvironment; -},{"129":129,"154":154}],29:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _prodInvariant = _dereq_(129), - _assign = _dereq_(162); - -var React = _dereq_(138); -var ReactComponentEnvironment = _dereq_(28); -var ReactCurrentOwner = _dereq_(137); -var ReactErrorUtils = _dereq_(56); -var ReactInstanceMap = _dereq_(64); -var ReactInstrumentation = _dereq_(65); -var ReactNodeTypes = _dereq_(70); -var ReactReconciler = _dereq_(75); - -if ("development" !== 'production') { - var checkReactTypeSpec = _dereq_(106); -} - -var emptyObject = _dereq_(147); -var invariant = _dereq_(154); -var shallowEqual = _dereq_(160); -var shouldUpdateReactComponent = _dereq_(133); -var warning = _dereq_(161); - -var CompositeTypes = { - ImpureClass: 0, - PureClass: 1, - StatelessFunctional: 2 -}; - -function StatelessComponent(Component) {} -StatelessComponent.prototype.render = function () { - var Component = ReactInstanceMap.get(this)._currentElement.type; - var element = Component(this.props, this.context, this.updater); - warnIfInvalidElement(Component, element); - return element; -}; - -function warnIfInvalidElement(Component, element) { - if ("development" !== 'production') { - "development" !== 'production' ? warning(element === null || element === false || React.isValidElement(element), '%s(...): A valid React element (or null) must be returned. You may have ' + 'returned undefined, an array or some other invalid object.', Component.displayName || Component.name || 'Component') : void 0; - "development" !== 'production' ? warning(!Component.childContextTypes, '%s(...): childContextTypes cannot be defined on a functional component.', Component.displayName || Component.name || 'Component') : void 0; - } -} - -function shouldConstruct(Component) { - return !!(Component.prototype && Component.prototype.isReactComponent); -} - -function isPureComponent(Component) { - return !!(Component.prototype && Component.prototype.isPureReactComponent); -} - -// Separated into a function to contain deoptimizations caused by try/finally. -function measureLifeCyclePerf(fn, debugID, timerType) { - if (debugID === 0) { - // Top-level wrappers (see ReactMount) and empty components (see - // ReactDOMEmptyComponent) are invisible to hooks and devtools. - // Both are implementation details that should go away in the future. - return fn(); - } - - ReactInstrumentation.debugTool.onBeginLifeCycleTimer(debugID, timerType); - try { - return fn(); - } finally { - ReactInstrumentation.debugTool.onEndLifeCycleTimer(debugID, timerType); - } -} - -/** - * ------------------ The Life-Cycle of a Composite Component ------------------ - * - * - constructor: Initialization of state. The instance is now retained. - * - componentWillMount - * - render - * - [children's constructors] - * - [children's componentWillMount and render] - * - [children's componentDidMount] - * - componentDidMount - * - * Update Phases: - * - componentWillReceiveProps (only called if parent updated) - * - shouldComponentUpdate - * - componentWillUpdate - * - render - * - [children's constructors or receive props phases] - * - componentDidUpdate - * - * - componentWillUnmount - * - [children's componentWillUnmount] - * - [children destroyed] - * - (destroyed): The instance is now blank, released by React and ready for GC. - * - * ----------------------------------------------------------------------------- - */ - -/** - * An incrementing ID assigned to each component when it is mounted. This is - * used to enforce the order in which `ReactUpdates` updates dirty components. - * - * @private - */ -var nextMountID = 1; - -/** - * @lends {ReactCompositeComponent.prototype} - */ -var ReactCompositeComponent = { - - /** - * Base constructor for all composite component. - * - * @param {ReactElement} element - * @final - * @internal - */ - construct: function (element) { - this._currentElement = element; - this._rootNodeID = 0; - this._compositeType = null; - this._instance = null; - this._hostParent = null; - this._hostContainerInfo = null; - - // See ReactUpdateQueue - this._updateBatchNumber = null; - this._pendingElement = null; - this._pendingStateQueue = null; - this._pendingReplaceState = false; - this._pendingForceUpdate = false; - - this._renderedNodeType = null; - this._renderedComponent = null; - this._context = null; - this._mountOrder = 0; - this._topLevelWrapper = null; - - // See ReactUpdates and ReactUpdateQueue. - this._pendingCallbacks = null; - - // ComponentWillUnmount shall only be called once - this._calledComponentWillUnmount = false; - - if ("development" !== 'production') { - this._warnedAboutRefsInRender = false; - } - }, - - /** - * Initializes the component, renders markup, and registers event listeners. - * - * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction - * @param {?object} hostParent - * @param {?object} hostContainerInfo - * @param {?object} context - * @return {?string} Rendered markup to be inserted into the DOM. - * @final - * @internal - */ - mountComponent: function (transaction, hostParent, hostContainerInfo, context) { - var _this = this; - - this._context = context; - this._mountOrder = nextMountID++; - this._hostParent = hostParent; - this._hostContainerInfo = hostContainerInfo; - - var publicProps = this._currentElement.props; - var publicContext = this._processContext(context); - - var Component = this._currentElement.type; - - var updateQueue = transaction.getUpdateQueue(); - - // Initialize the public class - var doConstruct = shouldConstruct(Component); - var inst = this._constructComponent(doConstruct, publicProps, publicContext, updateQueue); - var renderedElement; - - // Support functional components - if (!doConstruct && (inst == null || inst.render == null)) { - renderedElement = inst; - warnIfInvalidElement(Component, renderedElement); - !(inst === null || inst === false || React.isValidElement(inst)) ? "development" !== 'production' ? invariant(false, '%s(...): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.', Component.displayName || Component.name || 'Component') : _prodInvariant('105', Component.displayName || Component.name || 'Component') : void 0; - inst = new StatelessComponent(Component); - this._compositeType = CompositeTypes.StatelessFunctional; - } else { - if (isPureComponent(Component)) { - this._compositeType = CompositeTypes.PureClass; - } else { - this._compositeType = CompositeTypes.ImpureClass; - } - } - - if ("development" !== 'production') { - // This will throw later in _renderValidatedComponent, but add an early - // warning now to help debugging - if (inst.render == null) { - "development" !== 'production' ? warning(false, '%s(...): No `render` method found on the returned component ' + 'instance: you may have forgotten to define `render`.', Component.displayName || Component.name || 'Component') : void 0; - } - - var propsMutated = inst.props !== publicProps; - var componentName = Component.displayName || Component.name || 'Component'; - - "development" !== 'production' ? warning(inst.props === undefined || !propsMutated, '%s(...): When calling super() in `%s`, make sure to pass ' + 'up the same props that your component\'s constructor was passed.', componentName, componentName) : void 0; - } - - // These should be set up in the constructor, but as a convenience for - // simpler class abstractions, we set them up after the fact. - inst.props = publicProps; - inst.context = publicContext; - inst.refs = emptyObject; - inst.updater = updateQueue; - - this._instance = inst; - - // Store a reference from the instance back to the internal representation - ReactInstanceMap.set(inst, this); - - if ("development" !== 'production') { - // Since plain JS classes are defined without any special initialization - // logic, we can not catch common errors early. Therefore, we have to - // catch them here, at initialization time, instead. - "development" !== 'production' ? warning(!inst.getInitialState || inst.getInitialState.isReactClassApproved, 'getInitialState was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Did you mean to define a state property instead?', this.getName() || 'a component') : void 0; - "development" !== 'production' ? warning(!inst.getDefaultProps || inst.getDefaultProps.isReactClassApproved, 'getDefaultProps was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Use a static property to define defaultProps instead.', this.getName() || 'a component') : void 0; - "development" !== 'production' ? warning(!inst.propTypes, 'propTypes was defined as an instance property on %s. Use a static ' + 'property to define propTypes instead.', this.getName() || 'a component') : void 0; - "development" !== 'production' ? warning(!inst.contextTypes, 'contextTypes was defined as an instance property on %s. Use a ' + 'static property to define contextTypes instead.', this.getName() || 'a component') : void 0; - "development" !== 'production' ? warning(typeof inst.componentShouldUpdate !== 'function', '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', this.getName() || 'A component') : void 0; - "development" !== 'production' ? warning(typeof inst.componentDidUnmount !== 'function', '%s has a method called ' + 'componentDidUnmount(). But there is no such lifecycle method. ' + 'Did you mean componentWillUnmount()?', this.getName() || 'A component') : void 0; - "development" !== 'production' ? warning(typeof inst.componentWillRecieveProps !== 'function', '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', this.getName() || 'A component') : void 0; - } - - var initialState = inst.state; - if (initialState === undefined) { - inst.state = initialState = null; - } - !(typeof initialState === 'object' && !Array.isArray(initialState)) ? "development" !== 'production' ? invariant(false, '%s.state: must be set to an object or null', this.getName() || 'ReactCompositeComponent') : _prodInvariant('106', this.getName() || 'ReactCompositeComponent') : void 0; - - this._pendingStateQueue = null; - this._pendingReplaceState = false; - this._pendingForceUpdate = false; - - if (inst.componentWillMount) { - if ("development" !== 'production') { - measureLifeCyclePerf(function () { - return inst.componentWillMount(); - }, this._debugID, 'componentWillMount'); - } else { - inst.componentWillMount(); - } - // When mounting, calls to `setState` by `componentWillMount` will set - // `this._pendingStateQueue` without triggering a re-render. - if (this._pendingStateQueue) { - inst.state = this._processPendingState(inst.props, inst.context); - } - } - - var markup; - if (inst.unstable_handleError) { - markup = this.performInitialMountWithErrorHandling(renderedElement, hostParent, hostContainerInfo, transaction, context); - } else { - markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context); - } - - if (inst.componentDidMount) { - if ("development" !== 'production') { - transaction.getReactMountReady().enqueue(function () { - measureLifeCyclePerf(function () { - return inst.componentDidMount(); - }, _this._debugID, 'componentDidMount'); - }); - } else { - transaction.getReactMountReady().enqueue(inst.componentDidMount, inst); - } - } - - // setState callbacks during willMount should end up here - var callbacks = this._pendingCallbacks; - if (callbacks) { - this._pendingCallbacks = null; - for (var i = 0; i < callbacks.length; i++) { - transaction.getReactMountReady().enqueue(callbacks[i], inst); - } - } - - return markup; - }, - - _constructComponent: function (doConstruct, publicProps, publicContext, updateQueue) { - if ("development" !== 'production') { - ReactCurrentOwner.current = this; - try { - return this._constructComponentWithoutOwner(doConstruct, publicProps, publicContext, updateQueue); - } finally { - ReactCurrentOwner.current = null; - } - } else { - return this._constructComponentWithoutOwner(doConstruct, publicProps, publicContext, updateQueue); - } - }, - - _constructComponentWithoutOwner: function (doConstruct, publicProps, publicContext, updateQueue) { - var Component = this._currentElement.type; - - if (doConstruct) { - if ("development" !== 'production') { - return measureLifeCyclePerf(function () { - return new Component(publicProps, publicContext, updateQueue); - }, this._debugID, 'ctor'); - } else { - return new Component(publicProps, publicContext, updateQueue); - } - } - - // This can still be an instance in case of factory components - // but we'll count this as time spent rendering as the more common case. - if ("development" !== 'production') { - return measureLifeCyclePerf(function () { - return Component(publicProps, publicContext, updateQueue); - }, this._debugID, 'render'); - } else { - return Component(publicProps, publicContext, updateQueue); - } - }, - - performInitialMountWithErrorHandling: function (renderedElement, hostParent, hostContainerInfo, transaction, context) { - var markup; - var checkpoint = transaction.checkpoint(); - try { - markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context); - } catch (e) { - // Roll back to checkpoint, handle error (which may add items to the transaction), and take a new checkpoint - transaction.rollback(checkpoint); - this._instance.unstable_handleError(e); - if (this._pendingStateQueue) { - this._instance.state = this._processPendingState(this._instance.props, this._instance.context); - } - checkpoint = transaction.checkpoint(); - this._renderedComponent.unmountComponent(true, /* safely */ - // Don't call componentWillUnmount() because they never fully mounted: - true /* skipLifecyle */ - ); - transaction.rollback(checkpoint); - - // Try again - we've informed the component about the error, so they can render an error message this time. - // If this throws again, the error will bubble up (and can be caught by a higher error boundary). - markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context); - } - return markup; - }, - - performInitialMount: function (renderedElement, hostParent, hostContainerInfo, transaction, context) { - // If not a stateless component, we now render - if (renderedElement === undefined) { - renderedElement = this._renderValidatedComponent(); - } - - var nodeType = ReactNodeTypes.getType(renderedElement); - this._renderedNodeType = nodeType; - var child = this._instantiateReactComponent(renderedElement, nodeType !== ReactNodeTypes.EMPTY /* shouldHaveDebugID */ - ); - this._renderedComponent = child; - - var debugID = 0; - if ("development" !== 'production') { - debugID = this._debugID; - } - - var markup = ReactReconciler.mountComponent(child, transaction, hostParent, hostContainerInfo, this._processChildContext(context), debugID); - - if ("development" !== 'production') { - if (debugID !== 0) { - var childDebugIDs = child._debugID !== 0 ? [child._debugID] : []; - ReactInstrumentation.debugTool.onSetChildren(debugID, childDebugIDs); - } - } - - return markup; - }, - - getHostNode: function () { - return ReactReconciler.getHostNode(this._renderedComponent); - }, - - /** - * Releases any resources allocated by `mountComponent`. - * - * @final - * @internal - */ - unmountComponent: function (safely, skipLifecycle) { - if (!this._renderedComponent) { - return; - } - - var inst = this._instance; - - if (inst.componentWillUnmount && !inst._calledComponentWillUnmount) { - inst._calledComponentWillUnmount = true; - - if (safely) { - if (!skipLifecycle) { - var name = this.getName() + '.componentWillUnmount()'; - ReactErrorUtils.invokeGuardedCallback(name, inst.componentWillUnmount.bind(inst)); - } - } else { - if ("development" !== 'production') { - measureLifeCyclePerf(function () { - return inst.componentWillUnmount(); - }, this._debugID, 'componentWillUnmount'); - } else { - inst.componentWillUnmount(); - } - } - } - - if (this._renderedComponent) { - ReactReconciler.unmountComponent(this._renderedComponent, safely, skipLifecycle); - this._renderedNodeType = null; - this._renderedComponent = null; - this._instance = null; - } - - // Reset pending fields - // Even if this component is scheduled for another update in ReactUpdates, - // it would still be ignored because these fields are reset. - this._pendingStateQueue = null; - this._pendingReplaceState = false; - this._pendingForceUpdate = false; - this._pendingCallbacks = null; - this._pendingElement = null; - - // These fields do not really need to be reset since this object is no - // longer accessible. - this._context = null; - this._rootNodeID = 0; - this._topLevelWrapper = null; - - // Delete the reference from the instance to this internal representation - // which allow the internals to be properly cleaned up even if the user - // leaks a reference to the public instance. - ReactInstanceMap.remove(inst); - - // Some existing components rely on inst.props even after they've been - // destroyed (in event handlers). - // TODO: inst.props = null; - // TODO: inst.state = null; - // TODO: inst.context = null; - }, - - /** - * Filters the context object to only contain keys specified in - * `contextTypes` - * - * @param {object} context - * @return {?object} - * @private - */ - _maskContext: function (context) { - var Component = this._currentElement.type; - var contextTypes = Component.contextTypes; - if (!contextTypes) { - return emptyObject; - } - var maskedContext = {}; - for (var contextName in contextTypes) { - maskedContext[contextName] = context[contextName]; - } - return maskedContext; - }, - - /** - * Filters the context object to only contain keys specified in - * `contextTypes`, and asserts that they are valid. - * - * @param {object} context - * @return {?object} - * @private - */ - _processContext: function (context) { - var maskedContext = this._maskContext(context); - if ("development" !== 'production') { - var Component = this._currentElement.type; - if (Component.contextTypes) { - this._checkContextTypes(Component.contextTypes, maskedContext, 'context'); - } - } - return maskedContext; - }, - - /** - * @param {object} currentContext - * @return {object} - * @private - */ - _processChildContext: function (currentContext) { - var Component = this._currentElement.type; - var inst = this._instance; - var childContext; - - if (inst.getChildContext) { - if ("development" !== 'production') { - ReactInstrumentation.debugTool.onBeginProcessingChildContext(); - try { - childContext = inst.getChildContext(); - } finally { - ReactInstrumentation.debugTool.onEndProcessingChildContext(); - } - } else { - childContext = inst.getChildContext(); - } - } - - if (childContext) { - !(typeof Component.childContextTypes === 'object') ? "development" !== 'production' ? invariant(false, '%s.getChildContext(): childContextTypes must be defined in order to use getChildContext().', this.getName() || 'ReactCompositeComponent') : _prodInvariant('107', this.getName() || 'ReactCompositeComponent') : void 0; - if ("development" !== 'production') { - this._checkContextTypes(Component.childContextTypes, childContext, 'childContext'); - } - for (var name in childContext) { - !(name in Component.childContextTypes) ? "development" !== 'production' ? invariant(false, '%s.getChildContext(): key "%s" is not defined in childContextTypes.', this.getName() || 'ReactCompositeComponent', name) : _prodInvariant('108', this.getName() || 'ReactCompositeComponent', name) : void 0; - } - return _assign({}, currentContext, childContext); - } - return currentContext; - }, - - /** - * Assert that the context types are valid - * - * @param {object} typeSpecs Map of context field to a ReactPropType - * @param {object} values Runtime values that need to be type-checked - * @param {string} location e.g. "prop", "context", "child context" - * @private - */ - _checkContextTypes: function (typeSpecs, values, location) { - if ("development" !== 'production') { - checkReactTypeSpec(typeSpecs, values, location, this.getName(), null, this._debugID); - } - }, - - receiveComponent: function (nextElement, transaction, nextContext) { - var prevElement = this._currentElement; - var prevContext = this._context; - - this._pendingElement = null; - - this.updateComponent(transaction, prevElement, nextElement, prevContext, nextContext); - }, - - /** - * If any of `_pendingElement`, `_pendingStateQueue`, or `_pendingForceUpdate` - * is set, update the component. - * - * @param {ReactReconcileTransaction} transaction - * @internal - */ - performUpdateIfNecessary: function (transaction) { - if (this._pendingElement != null) { - ReactReconciler.receiveComponent(this, this._pendingElement, transaction, this._context); - } else if (this._pendingStateQueue !== null || this._pendingForceUpdate) { - this.updateComponent(transaction, this._currentElement, this._currentElement, this._context, this._context); - } else { - this._updateBatchNumber = null; - } - }, - - /** - * Perform an update to a mounted component. The componentWillReceiveProps and - * shouldComponentUpdate methods are called, then (assuming the update isn't - * skipped) the remaining update lifecycle methods are called and the DOM - * representation is updated. - * - * By default, this implements React's rendering and reconciliation algorithm. - * Sophisticated clients may wish to override this. - * - * @param {ReactReconcileTransaction} transaction - * @param {ReactElement} prevParentElement - * @param {ReactElement} nextParentElement - * @internal - * @overridable - */ - updateComponent: function (transaction, prevParentElement, nextParentElement, prevUnmaskedContext, nextUnmaskedContext) { - var inst = this._instance; - !(inst != null) ? "development" !== 'production' ? invariant(false, 'Attempted to update component `%s` that has already been unmounted (or failed to mount).', this.getName() || 'ReactCompositeComponent') : _prodInvariant('136', this.getName() || 'ReactCompositeComponent') : void 0; - - var willReceive = false; - var nextContext; - - // Determine if the context has changed or not - if (this._context === nextUnmaskedContext) { - nextContext = inst.context; - } else { - nextContext = this._processContext(nextUnmaskedContext); - willReceive = true; - } - - var prevProps = prevParentElement.props; - var nextProps = nextParentElement.props; - - // Not a simple state update but a props update - if (prevParentElement !== nextParentElement) { - willReceive = true; - } - - // An update here will schedule an update but immediately set - // _pendingStateQueue which will ensure that any state updates gets - // immediately reconciled instead of waiting for the next batch. - if (willReceive && inst.componentWillReceiveProps) { - if ("development" !== 'production') { - measureLifeCyclePerf(function () { - return inst.componentWillReceiveProps(nextProps, nextContext); - }, this._debugID, 'componentWillReceiveProps'); - } else { - inst.componentWillReceiveProps(nextProps, nextContext); - } - } - - var nextState = this._processPendingState(nextProps, nextContext); - var shouldUpdate = true; - - if (!this._pendingForceUpdate) { - if (inst.shouldComponentUpdate) { - if ("development" !== 'production') { - shouldUpdate = measureLifeCyclePerf(function () { - return inst.shouldComponentUpdate(nextProps, nextState, nextContext); - }, this._debugID, 'shouldComponentUpdate'); - } else { - shouldUpdate = inst.shouldComponentUpdate(nextProps, nextState, nextContext); - } - } else { - if (this._compositeType === CompositeTypes.PureClass) { - shouldUpdate = !shallowEqual(prevProps, nextProps) || !shallowEqual(inst.state, nextState); - } - } - } - - if ("development" !== 'production') { - "development" !== 'production' ? warning(shouldUpdate !== undefined, '%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', this.getName() || 'ReactCompositeComponent') : void 0; - } - - this._updateBatchNumber = null; - if (shouldUpdate) { - this._pendingForceUpdate = false; - // Will set `this.props`, `this.state` and `this.context`. - this._performComponentUpdate(nextParentElement, nextProps, nextState, nextContext, transaction, nextUnmaskedContext); - } else { - // If it's determined that a component should not update, we still want - // to set props and state but we shortcut the rest of the update. - this._currentElement = nextParentElement; - this._context = nextUnmaskedContext; - inst.props = nextProps; - inst.state = nextState; - inst.context = nextContext; - } - }, - - _processPendingState: function (props, context) { - var inst = this._instance; - var queue = this._pendingStateQueue; - var replace = this._pendingReplaceState; - this._pendingReplaceState = false; - this._pendingStateQueue = null; - - if (!queue) { - return inst.state; - } - - if (replace && queue.length === 1) { - return queue[0]; - } - - var nextState = _assign({}, replace ? queue[0] : inst.state); - for (var i = replace ? 1 : 0; i < queue.length; i++) { - var partial = queue[i]; - _assign(nextState, typeof partial === 'function' ? partial.call(inst, nextState, props, context) : partial); - } - - return nextState; - }, - - /** - * Merges new props and state, notifies delegate methods of update and - * performs update. - * - * @param {ReactElement} nextElement Next element - * @param {object} nextProps Next public object to set as properties. - * @param {?object} nextState Next object to set as state. - * @param {?object} nextContext Next public object to set as context. - * @param {ReactReconcileTransaction} transaction - * @param {?object} unmaskedContext - * @private - */ - _performComponentUpdate: function (nextElement, nextProps, nextState, nextContext, transaction, unmaskedContext) { - var _this2 = this; - - var inst = this._instance; - - var hasComponentDidUpdate = Boolean(inst.componentDidUpdate); - var prevProps; - var prevState; - var prevContext; - if (hasComponentDidUpdate) { - prevProps = inst.props; - prevState = inst.state; - prevContext = inst.context; - } - - if (inst.componentWillUpdate) { - if ("development" !== 'production') { - measureLifeCyclePerf(function () { - return inst.componentWillUpdate(nextProps, nextState, nextContext); - }, this._debugID, 'componentWillUpdate'); - } else { - inst.componentWillUpdate(nextProps, nextState, nextContext); - } - } - - this._currentElement = nextElement; - this._context = unmaskedContext; - inst.props = nextProps; - inst.state = nextState; - inst.context = nextContext; - - if (inst.unstable_handleError) { - this._updateRenderedComponentWithErrorHandling(transaction, unmaskedContext); - } else { - this._updateRenderedComponent(transaction, unmaskedContext); - } - - if (hasComponentDidUpdate) { - if ("development" !== 'production') { - transaction.getReactMountReady().enqueue(function () { - measureLifeCyclePerf(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), _this2._debugID, 'componentDidUpdate'); - }); - } else { - transaction.getReactMountReady().enqueue(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), inst); - } - } - }, - - /** - * Call the component's `render` method and update the DOM accordingly. - * - * @param {ReactReconcileTransaction} transaction - * @internal - */ - _updateRenderedComponentWithErrorHandling: function (transaction, context) { - var checkpoint = transaction.checkpoint(); - try { - this._updateRenderedComponent(transaction, context); - } catch (e) { - // Roll back to checkpoint, handle error (which may add items to the transaction), - // and take a new checkpoint - transaction.rollback(checkpoint); - this._instance.unstable_handleError(e); - if (this._pendingStateQueue) { - this._instance.state = this._processPendingState(this._instance.props, this._instance.context); - } - checkpoint = transaction.checkpoint(); - - // Gracefully update to a clean state - this._updateRenderedComponentWithNextElement(transaction, context, null, true /* safely */ - ); - - // Try again - we've informed the component about the error, so they can render an error message this time. - // If this throws again, the error will bubble up (and can be caught by a higher error boundary). - this._updateRenderedComponent(transaction, context); - } - }, - - /** - * Call the component's `render` method and update the DOM accordingly. - * - * @param {ReactReconcileTransaction} transaction - * @internal - */ - _updateRenderedComponent: function (transaction, context) { - var nextRenderedElement = this._renderValidatedComponent(); - this._updateRenderedComponentWithNextElement(transaction, context, nextRenderedElement, false /* safely */ - ); - }, - - /** - * Call the component's `render` method and update the DOM accordingly. - * - * @param {ReactReconcileTransaction} transaction - * @internal - */ - _updateRenderedComponentWithNextElement: function (transaction, context, nextRenderedElement, safely) { - var prevComponentInstance = this._renderedComponent; - var prevRenderedElement = prevComponentInstance._currentElement; - - var debugID = 0; - if ("development" !== 'production') { - debugID = this._debugID; - } - - if (shouldUpdateReactComponent(prevRenderedElement, nextRenderedElement)) { - ReactReconciler.receiveComponent(prevComponentInstance, nextRenderedElement, transaction, this._processChildContext(context)); - } else { - var oldHostNode = ReactReconciler.getHostNode(prevComponentInstance); - ReactReconciler.unmountComponent(prevComponentInstance, safely, false /* skipLifecycle */ - ); - - var nodeType = ReactNodeTypes.getType(nextRenderedElement); - this._renderedNodeType = nodeType; - var child = this._instantiateReactComponent(nextRenderedElement, nodeType !== ReactNodeTypes.EMPTY /* shouldHaveDebugID */ - ); - this._renderedComponent = child; - - var nextMarkup = ReactReconciler.mountComponent(child, transaction, this._hostParent, this._hostContainerInfo, this._processChildContext(context), debugID); - - if ("development" !== 'production') { - if (debugID !== 0) { - var childDebugIDs = child._debugID !== 0 ? [child._debugID] : []; - ReactInstrumentation.debugTool.onSetChildren(debugID, childDebugIDs); - } - } - - this._replaceNodeWithMarkup(oldHostNode, nextMarkup, prevComponentInstance); - } - }, - - /** - * Overridden in shallow rendering. - * - * @protected - */ - _replaceNodeWithMarkup: function (oldHostNode, nextMarkup, prevInstance) { - ReactComponentEnvironment.replaceNodeWithMarkup(oldHostNode, nextMarkup, prevInstance); - }, - - /** - * @protected - */ - _renderValidatedComponentWithoutOwnerOrContext: function () { - var inst = this._instance; - var renderedElement; - - if ("development" !== 'production') { - renderedElement = measureLifeCyclePerf(function () { - return inst.render(); - }, this._debugID, 'render'); - } else { - renderedElement = inst.render(); - } - - if ("development" !== 'production') { - // We allow auto-mocks to proceed as if they're returning null. - if (renderedElement === undefined && inst.render._isMockFunction) { - // This is probably bad practice. Consider warning here and - // deprecating this convenience. - renderedElement = null; - } - } - - return renderedElement; - }, - - /** - * @private - */ - _renderValidatedComponent: function () { - var renderedElement; - if ("development" !== 'production' || this._compositeType !== CompositeTypes.StatelessFunctional) { - ReactCurrentOwner.current = this; - try { - renderedElement = this._renderValidatedComponentWithoutOwnerOrContext(); - } finally { - ReactCurrentOwner.current = null; - } - } else { - renderedElement = this._renderValidatedComponentWithoutOwnerOrContext(); - } - !( - // TODO: An `isValidNode` function would probably be more appropriate - renderedElement === null || renderedElement === false || React.isValidElement(renderedElement)) ? "development" !== 'production' ? invariant(false, '%s.render(): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.', this.getName() || 'ReactCompositeComponent') : _prodInvariant('109', this.getName() || 'ReactCompositeComponent') : void 0; - - return renderedElement; - }, - - /** - * Lazily allocates the refs object and stores `component` as `ref`. - * - * @param {string} ref Reference name. - * @param {component} component Component to store as `ref`. - * @final - * @private - */ - attachRef: function (ref, component) { - var inst = this.getPublicInstance(); - !(inst != null) ? "development" !== 'production' ? invariant(false, 'Stateless function components cannot have refs.') : _prodInvariant('110') : void 0; - var publicComponentInstance = component.getPublicInstance(); - if ("development" !== 'production') { - var componentName = component && component.getName ? component.getName() : 'a component'; - "development" !== 'production' ? warning(publicComponentInstance != null || component._compositeType !== CompositeTypes.StatelessFunctional, 'Stateless function components cannot be given refs ' + '(See ref "%s" in %s created by %s). ' + 'Attempts to access this ref will fail.', ref, componentName, this.getName()) : void 0; - } - var refs = inst.refs === emptyObject ? inst.refs = {} : inst.refs; - refs[ref] = publicComponentInstance; - }, - - /** - * Detaches a reference name. - * - * @param {string} ref Name to dereference. - * @final - * @private - */ - detachRef: function (ref) { - var refs = this.getPublicInstance().refs; - delete refs[ref]; - }, - - /** - * Get a text description of the component that can be used to identify it - * in error messages. - * @return {string} The name or null. - * @internal - */ - getName: function () { - var type = this._currentElement.type; - var constructor = this._instance && this._instance.constructor; - return type.displayName || constructor && constructor.displayName || type.name || constructor && constructor.name || null; - }, - - /** - * Get the publicly accessible representation of this component - i.e. what - * is exposed by refs and returned by render. Can be null for stateless - * components. - * - * @return {ReactComponent} the public component instance. - * @internal - */ - getPublicInstance: function () { - var inst = this._instance; - if (this._compositeType === CompositeTypes.StatelessFunctional) { - return null; - } - return inst; - }, - - // Stub - _instantiateReactComponent: null - -}; - -module.exports = ReactCompositeComponent; -},{"106":106,"129":129,"133":133,"137":137,"138":138,"147":147,"154":154,"160":160,"161":161,"162":162,"28":28,"56":56,"64":64,"65":65,"70":70,"75":75}],30:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _prodInvariant = _dereq_(129); - -var invariant = _dereq_(154); - -// Use to restore controlled state after a change event has fired. - -var fiberHostComponent = null; - -var ReactControlledComponentInjection = { - injectFiberControlledHostComponent: function (hostComponentImpl) { - // The fiber implementation doesn't use dynamic dispatch so we need to - // inject the implementation. - fiberHostComponent = hostComponentImpl; - } -}; - -var restoreTarget = null; -var restoreQueue = null; - -function restoreStateOfTarget(internalInstance) { - if (typeof internalInstance.tag === 'number') { - !(fiberHostComponent && typeof fiberHostComponent.restoreControlledState === 'function') ? "development" !== 'production' ? invariant(false, 'Fiber needs to be injected to handle a fiber target for controlled events.') : _prodInvariant('146') : void 0; - fiberHostComponent.restoreControlledState(internalInstance); - } - !(typeof internalInstance.restoreControlledState === 'function') ? "development" !== 'production' ? invariant(false, 'The internal instance must be a React host component.') : _prodInvariant('147') : void 0; - // If it is not a Fiber, we can just use dynamic dispatch. - internalInstance.restoreControlledState(); -} - -var ReactControlledComponent = { - injection: ReactControlledComponentInjection, - - enqueueStateRestore: function (target) { - if (restoreTarget) { - if (restoreQueue) { - restoreQueue.push(target); - } else { - restoreQueue = [target]; - } - } else { - restoreTarget = target; - } - }, - restoreStateIfNeeded: function () { - if (!restoreTarget) { - return; - } - var target = restoreTarget; - var queuedTargets = restoreQueue; - restoreTarget = null; - restoreQueue = null; - - restoreStateOfTarget(target); - if (queuedTargets) { - for (var i = 0; i < queuedTargets.length; i++) { - restoreStateOfTarget(queuedTargets[i]); - } - } - } -}; - -module.exports = ReactControlledComponent; -},{"129":129,"154":154}],31:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var React = _dereq_(138); - -var getComponentName = _dereq_(113); -var warning = _dereq_(161); - -var hasReadOnlyValue = { - 'button': true, - 'checkbox': true, - 'image': true, - 'hidden': true, - 'radio': true, - 'reset': true, - 'submit': true -}; - -var propTypes = { - value: function (props, propName, componentName) { - if (!props[propName] || hasReadOnlyValue[props.type] || props.onChange || props.readOnly || props.disabled) { - return null; - } - return new Error('You provided a `value` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultValue`. Otherwise, ' + 'set either `onChange` or `readOnly`.'); - }, - checked: function (props, propName, componentName) { - if (!props[propName] || props.onChange || props.readOnly || props.disabled) { - return null; - } - return new Error('You provided a `checked` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultChecked`. Otherwise, ' + 'set either `onChange` or `readOnly`.'); - }, - onChange: React.PropTypes.func -}; - -var loggedTypeFailures = {}; -function getDeclarationErrorAddendum(owner) { - if (owner) { - var name = getComponentName(owner); - if (name) { - return ' Check the render method of `' + name + '`.'; - } - } - return ''; -} - -/** - * Provide a linked `value` attribute for controlled forms. You should not use - * this outside of the ReactDOM controlled form components. - */ -var ReactControlledValuePropTypes = { - checkPropTypes: function (tagName, props, owner) { - for (var propName in propTypes) { - if (propTypes.hasOwnProperty(propName)) { - var error = propTypes[propName](props, propName, tagName, 'prop'); - } - if (error instanceof Error && !(error.message in loggedTypeFailures)) { - // Only monitor this failure once because there tends to be a lot of the - // same error. - loggedTypeFailures[error.message] = true; - - var addendum = getDeclarationErrorAddendum(owner); - "development" !== 'production' ? warning(false, 'Failed form propType: %s%s', error.message, addendum) : void 0; - } - } - } -}; - -module.exports = ReactControlledValuePropTypes; -},{"113":113,"138":138,"161":161}],32:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -/* globals __REACT_DEVTOOLS_GLOBAL_HOOK__*/ - -'use strict'; - -var ReactDOMComponentTree = _dereq_(35); -var ReactDOMInjection = _dereq_(40); -var ReactDOMStackInjection = _dereq_(47); -var ReactMount = _dereq_(68); -var ReactReconciler = _dereq_(75); -var ReactUpdates = _dereq_(84); -var ReactVersion = _dereq_(85); - -var findDOMNode = _dereq_(110); -var getHostComponentFromComposite = _dereq_(118); -var renderSubtreeIntoContainer = _dereq_(130); -var warning = _dereq_(161); - -ReactDOMInjection.inject(); -ReactDOMStackInjection.inject(); - -var ReactDOM = { - findDOMNode: findDOMNode, - render: ReactMount.render, - unmountComponentAtNode: ReactMount.unmountComponentAtNode, - version: ReactVersion, - - /* eslint-disable camelcase */ - unstable_batchedUpdates: ReactUpdates.batchedUpdates, - unstable_renderSubtreeIntoContainer: renderSubtreeIntoContainer -}; - -// Inject the runtime into a devtools global hook regardless of browser. -// Allows for debugging when the hook is injected on the page. -/* eslint-enable camelcase */ -if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject === 'function') { - __REACT_DEVTOOLS_GLOBAL_HOOK__.inject({ - ComponentTree: { - getClosestInstanceFromNode: ReactDOMComponentTree.getClosestInstanceFromNode, - getNodeFromInstance: function (inst) { - // inst is an internal instance (but could be a composite) - if (inst._renderedComponent) { - inst = getHostComponentFromComposite(inst); - } - if (inst) { - return ReactDOMComponentTree.getNodeFromInstance(inst); - } else { - return null; - } - } - }, - Mount: ReactMount, - Reconciler: ReactReconciler - }); -} - -if ("development" !== 'production') { - var ExecutionEnvironment = _dereq_(140); - if (ExecutionEnvironment.canUseDOM && window.top === window.self) { - - // First check if devtools is not installed - if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') { - // If we're in Chrome or Firefox, provide a download link if not installed. - if (navigator.userAgent.indexOf('Chrome') > -1 && navigator.userAgent.indexOf('Edge') === -1 || navigator.userAgent.indexOf('Firefox') > -1) { - // Firefox does not have the issue with devtools loaded over file:// - var showFileUrlMessage = window.location.protocol.indexOf('http') === -1 && navigator.userAgent.indexOf('Firefox') === -1; - console.debug('Download the React DevTools ' + (showFileUrlMessage ? 'and use an HTTP server (instead of a file: URL) ' : '') + 'for a better development experience: ' + 'https://fb.me/react-devtools'); - } - } - - var testFunc = function testFn() {}; - "development" !== 'production' ? warning((testFunc.name || testFunc.toString()).indexOf('testFn') !== -1, 'It looks like you\'re using a minified copy of the development build ' + 'of React. When deploying React apps to production, make sure to use ' + 'the production build which skips development warnings and is faster. ' + 'See https://fb.me/react-minification for more details.') : void 0; - - // If we're in IE8, check to see if we are in compatibility mode and provide - // information on preventing compatibility mode - var ieCompatibilityMode = document.documentMode && document.documentMode < 8; - - "development" !== 'production' ? warning(!ieCompatibilityMode, 'Internet Explorer is running in compatibility mode; please add the ' + 'following tag to your HTML to prevent this from happening: ' + '<meta http-equiv="X-UA-Compatible" content="IE=edge" />') : void 0; - - var expectedFeatures = [ - // shims - Array.isArray, Array.prototype.every, Array.prototype.forEach, Array.prototype.indexOf, Array.prototype.map, Date.now, Function.prototype.bind, Object.keys, String.prototype.trim]; - - for (var i = 0; i < expectedFeatures.length; i++) { - if (!expectedFeatures[i]) { - "development" !== 'production' ? warning(false, 'One or more ES5 shims expected by React are not available: ' + 'https://fb.me/react-warning-polyfills') : void 0; - break; - } - } - } -} - -if ("development" !== 'production') { - var ReactInstrumentation = _dereq_(65); - var ReactDOMUnknownPropertyHook = _dereq_(51); - var ReactDOMNullInputValuePropHook = _dereq_(43); - var ReactDOMInvalidARIAHook = _dereq_(42); - - ReactInstrumentation.debugTool.addHook(ReactDOMUnknownPropertyHook); - ReactInstrumentation.debugTool.addHook(ReactDOMNullInputValuePropHook); - ReactInstrumentation.debugTool.addHook(ReactDOMInvalidARIAHook); -} - -module.exports = ReactDOM; -},{"110":110,"118":118,"130":130,"140":140,"161":161,"35":35,"40":40,"42":42,"43":43,"47":47,"51":51,"65":65,"68":68,"75":75,"84":84,"85":85}],33:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -/* global hasOwnProperty:true */ - -'use strict'; - -var _prodInvariant = _dereq_(129), - _assign = _dereq_(162); - -var AutoFocusUtils = _dereq_(2); -var CSSPropertyOperations = _dereq_(5); -var DOMLazyTree = _dereq_(10); -var DOMNamespaces = _dereq_(11); -var DOMProperty = _dereq_(12); -var DOMPropertyOperations = _dereq_(13); -var EventPluginHub = _dereq_(17); -var EventPluginRegistry = _dereq_(18); -var ReactBrowserEventEmitter = _dereq_(25); -var ReactDOMComponentFlags = _dereq_(34); -var ReactDOMComponentTree = _dereq_(35); -var ReactDOMInput = _dereq_(41); -var ReactDOMOption = _dereq_(44); -var ReactDOMSelect = _dereq_(45); -var ReactDOMTextarea = _dereq_(49); -var ReactInstrumentation = _dereq_(65); -var ReactMultiChild = _dereq_(69); -var ReactServerRenderingTransaction = _dereq_(77); - -var emptyFunction = _dereq_(146); -var escapeTextContentForBrowser = _dereq_(109); -var invariant = _dereq_(154); -var isEventSupported = _dereq_(126); -var shallowEqual = _dereq_(160); -var inputValueTracking = _dereq_(124); -var validateDOMNesting = _dereq_(135); -var warning = _dereq_(161); -var didWarnShadyDOM = false; - -var Flags = ReactDOMComponentFlags; -var deleteListener = EventPluginHub.deleteListener; -var getNode = ReactDOMComponentTree.getNodeFromInstance; -var listenTo = ReactBrowserEventEmitter.listenTo; -var registrationNameModules = EventPluginRegistry.registrationNameModules; - -// For quickly matching children type, to test if can be treated as content. -var CONTENT_TYPES = { 'string': true, 'number': true }; - -var STYLE = 'style'; -var HTML = '__html'; -var RESERVED_PROPS = { - children: null, - dangerouslySetInnerHTML: null, - suppressContentEditableWarning: null -}; - -// Node type for document fragments (Node.DOCUMENT_FRAGMENT_NODE). -var DOC_FRAGMENT_TYPE = 11; - -function getDeclarationErrorAddendum(internalInstance) { - if (internalInstance) { - var owner = internalInstance._currentElement._owner || null; - if (owner) { - var name = owner.getName(); - if (name) { - return ' This DOM node was rendered by `' + name + '`.'; - } - } - } - return ''; -} - -function friendlyStringify(obj) { - if (typeof obj === 'object') { - if (Array.isArray(obj)) { - return '[' + obj.map(friendlyStringify).join(', ') + ']'; - } else { - var pairs = []; - for (var key in obj) { - if (Object.prototype.hasOwnProperty.call(obj, key)) { - var keyEscaped = /^[a-z$_][\w$_]*$/i.test(key) ? key : JSON.stringify(key); - pairs.push(keyEscaped + ': ' + friendlyStringify(obj[key])); - } - } - return '{' + pairs.join(', ') + '}'; - } - } else if (typeof obj === 'string') { - return JSON.stringify(obj); - } else if (typeof obj === 'function') { - return '[function object]'; - } - // Differs from JSON.stringify in that undefined because undefined and that - // inf and nan don't become null - return String(obj); -} - -var styleMutationWarning = {}; - -function checkAndWarnForMutatedStyle(style1, style2, component) { - if (style1 == null || style2 == null) { - return; - } - if (shallowEqual(style1, style2)) { - return; - } - - var componentName = component._tag; - var owner = component._currentElement._owner; - var ownerName; - if (owner) { - ownerName = owner.getName(); - } - - var hash = ownerName + '|' + componentName; - - if (styleMutationWarning.hasOwnProperty(hash)) { - return; - } - - styleMutationWarning[hash] = true; - - "development" !== 'production' ? warning(false, '`%s` was passed a style object that has previously been mutated. ' + 'Mutating `style` is deprecated. Consider cloning it beforehand. Check ' + 'the `render` %s. Previous style: %s. Mutated style: %s.', componentName, owner ? 'of `' + ownerName + '`' : 'using <' + componentName + '>', friendlyStringify(style1), friendlyStringify(style2)) : void 0; -} - -/** - * @param {object} component - * @param {?object} props - */ -function assertValidProps(component, props) { - if (!props) { - return; - } - // Note the use of `==` which checks for null or undefined. - if (voidElementTags[component._tag]) { - !(props.children == null && props.dangerouslySetInnerHTML == null) ? "development" !== 'production' ? invariant(false, '%s is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.%s', component._tag, component._currentElement._owner ? ' Check the render method of ' + component._currentElement._owner.getName() + '.' : '') : _prodInvariant('137', component._tag, component._currentElement._owner ? ' Check the render method of ' + component._currentElement._owner.getName() + '.' : '') : void 0; - } - if (props.dangerouslySetInnerHTML != null) { - !(props.children == null) ? "development" !== 'production' ? invariant(false, 'Can only set one of `children` or `props.dangerouslySetInnerHTML`.') : _prodInvariant('60') : void 0; - !(typeof props.dangerouslySetInnerHTML === 'object' && HTML in props.dangerouslySetInnerHTML) ? "development" !== 'production' ? invariant(false, '`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://fb.me/react-invariant-dangerously-set-inner-html for more information.') : _prodInvariant('61') : void 0; - } - if ("development" !== 'production') { - "development" !== 'production' ? warning(props.innerHTML == null, 'Directly setting property `innerHTML` is not permitted. ' + 'For more information, lookup documentation on `dangerouslySetInnerHTML`.') : void 0; - "development" !== 'production' ? warning(props.suppressContentEditableWarning || !props.contentEditable || props.children == null, 'A component is `contentEditable` and contains `children` managed by ' + 'React. It is now your responsibility to guarantee that none of ' + 'those nodes are unexpectedly modified or duplicated. This is ' + 'probably not intentional.') : void 0; - "development" !== 'production' ? warning(props.onFocusIn == null && props.onFocusOut == null, 'React uses onFocus and onBlur instead of onFocusIn and onFocusOut. ' + 'All React events are normalized to bubble, so onFocusIn and onFocusOut ' + 'are not needed/supported by React.') : void 0; - } - !(props.style == null || typeof props.style === 'object') ? "development" !== 'production' ? invariant(false, 'The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + \'em\'}} when using JSX.%s', getDeclarationErrorAddendum(component)) : _prodInvariant('62', getDeclarationErrorAddendum(component)) : void 0; -} - -function enqueuePutListener(inst, registrationName, listener, transaction) { - if (transaction instanceof ReactServerRenderingTransaction) { - return; - } - if ("development" !== 'production') { - // IE8 has no API for event capturing and the `onScroll` event doesn't - // bubble. - "development" !== 'production' ? warning(registrationName !== 'onScroll' || isEventSupported('scroll', true), 'This browser doesn\'t support the `onScroll` event') : void 0; - } - var containerInfo = inst._hostContainerInfo; - var isDocumentFragment = containerInfo._node && containerInfo._node.nodeType === DOC_FRAGMENT_TYPE; - var doc = isDocumentFragment ? containerInfo._node : containerInfo._ownerDocument; - listenTo(registrationName, doc); - transaction.getReactMountReady().enqueue(putListener, { - inst: inst, - registrationName: registrationName, - listener: listener - }); -} - -// TODO: This is coming from future #8192. Dedupe this and enqueuePutListener. -function ensureListeningTo(inst, registrationName, transaction) { - if (transaction instanceof ReactServerRenderingTransaction) { - return; - } - if ("development" !== 'production') { - // IE8 has no API for event capturing and the `onScroll` event doesn't - // bubble. - "development" !== 'production' ? warning(registrationName !== 'onScroll' || isEventSupported('scroll', true), 'This browser doesn\'t support the `onScroll` event') : void 0; - } - var containerInfo = inst._hostContainerInfo; - var isDocumentFragment = containerInfo._node && containerInfo._node.nodeType === DOC_FRAGMENT_TYPE; - var doc = isDocumentFragment ? containerInfo._node : containerInfo._ownerDocument; - listenTo(registrationName, doc); -} - -function putListener() { - var listenerToPut = this; - EventPluginHub.putListener(listenerToPut.inst, listenerToPut.registrationName, listenerToPut.listener); -} - -function inputPostMount() { - var inst = this; - ReactDOMInput.postMountWrapper(inst); -} - -function textareaPostMount() { - var inst = this; - ReactDOMTextarea.postMountWrapper(inst); -} - -function optionPostMount() { - var inst = this; - ReactDOMOption.postMountWrapper(inst); -} - -var setAndValidateContentChildDev = emptyFunction; -if ("development" !== 'production') { - setAndValidateContentChildDev = function (content) { - var hasExistingContent = this._contentDebugID != null; - var debugID = this._debugID; - // This ID represents the inlined child that has no backing instance: - var contentDebugID = -debugID; - - if (content == null) { - if (hasExistingContent) { - ReactInstrumentation.debugTool.onUnmountComponent(this._contentDebugID); - } - this._contentDebugID = null; - return; - } - - validateDOMNesting(null, String(content), this, this._ancestorInfo); - this._contentDebugID = contentDebugID; - if (hasExistingContent) { - ReactInstrumentation.debugTool.onBeforeUpdateComponent(contentDebugID, content); - ReactInstrumentation.debugTool.onUpdateComponent(contentDebugID); - } else { - ReactInstrumentation.debugTool.onBeforeMountComponent(contentDebugID, content, debugID); - ReactInstrumentation.debugTool.onMountComponent(contentDebugID); - ReactInstrumentation.debugTool.onSetChildren(debugID, [contentDebugID]); - } - }; -} - -// There are so many media events, it makes sense to just -// maintain a list rather than create a `trapBubbledEvent` for each -var mediaEvents = { - topAbort: 'abort', - topCanPlay: 'canplay', - topCanPlayThrough: 'canplaythrough', - topDurationChange: 'durationchange', - topEmptied: 'emptied', - topEncrypted: 'encrypted', - topEnded: 'ended', - topError: 'error', - topLoadedData: 'loadeddata', - topLoadedMetadata: 'loadedmetadata', - topLoadStart: 'loadstart', - topPause: 'pause', - topPlay: 'play', - topPlaying: 'playing', - topProgress: 'progress', - topRateChange: 'ratechange', - topSeeked: 'seeked', - topSeeking: 'seeking', - topStalled: 'stalled', - topSuspend: 'suspend', - topTimeUpdate: 'timeupdate', - topVolumeChange: 'volumechange', - topWaiting: 'waiting' -}; - -function trackInputValue() { - inputValueTracking.track(this); -} - -function trapClickOnNonInteractiveElement() { - // Mobile Safari does not fire properly bubble click events on - // non-interactive elements, which means delegated click listeners do not - // fire. The workaround for this bug involves attaching an empty click - // listener on the target node. - // http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html - // Just set it using the onclick property so that we don't have to manage any - // bookkeeping for it. Not sure if we need to clear it when the listener is - // removed. - // TODO: Only do this for the relevant Safaris maybe? - var node = getNode(this); - node.onclick = emptyFunction; -} - -function trapBubbledEventsLocal() { - var inst = this; - // If a component renders to null or if another component fatals and causes - // the state of the tree to be corrupted, `node` here can be null. - !inst._rootNodeID ? "development" !== 'production' ? invariant(false, 'Must be mounted to trap events') : _prodInvariant('63') : void 0; - var node = getNode(inst); - !node ? "development" !== 'production' ? invariant(false, 'trapBubbledEvent(...): Requires node to be rendered.') : _prodInvariant('64') : void 0; - - switch (inst._tag) { - case 'iframe': - case 'object': - inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topLoad', 'load', node)]; - break; - case 'video': - case 'audio': - - inst._wrapperState.listeners = []; - // Create listener for each media event - for (var event in mediaEvents) { - if (mediaEvents.hasOwnProperty(event)) { - inst._wrapperState.listeners.push(ReactBrowserEventEmitter.trapBubbledEvent(event, mediaEvents[event], node)); - } - } - break; - case 'source': - inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topError', 'error', node)]; - break; - case 'img': - inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topError', 'error', node), ReactBrowserEventEmitter.trapBubbledEvent('topLoad', 'load', node)]; - break; - case 'form': - inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topReset', 'reset', node), ReactBrowserEventEmitter.trapBubbledEvent('topSubmit', 'submit', node)]; - break; - case 'input': - case 'select': - case 'textarea': - inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topInvalid', 'invalid', node)]; - break; - } -} - -function postUpdateSelectWrapper() { - ReactDOMSelect.postUpdateWrapper(this); -} - -// For HTML, certain tags should omit their close tag. We keep a whitelist for -// those special-case tags. - -var omittedCloseTags = { - 'area': true, - 'base': true, - 'br': true, - 'col': true, - 'embed': true, - 'hr': true, - 'img': true, - 'input': true, - 'keygen': true, - 'link': true, - 'meta': true, - 'param': true, - 'source': true, - 'track': true, - 'wbr': true -}; - -// NOTE: menuitem's close tag should be omitted, but that causes problems. -var newlineEatingTags = { - 'listing': true, - 'pre': true, - 'textarea': true -}; - -// For HTML, certain tags cannot have children. This has the same purpose as -// `omittedCloseTags` except that `menuitem` should still have its closing tag. - -var voidElementTags = _assign({ - 'menuitem': true -}, omittedCloseTags); - -// We accept any tag to be rendered but since this gets injected into arbitrary -// HTML, we want to make sure that it's a safe tag. -// http://www.w3.org/TR/REC-xml/#NT-Name - -var VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\.\-\d]*$/; // Simplified subset -var validatedTagCache = {}; -var hasOwnProperty = {}.hasOwnProperty; - -function validateDangerousTag(tag) { - if (!hasOwnProperty.call(validatedTagCache, tag)) { - !VALID_TAG_REGEX.test(tag) ? "development" !== 'production' ? invariant(false, 'Invalid tag: %s', tag) : _prodInvariant('65', tag) : void 0; - validatedTagCache[tag] = true; - } -} - -function isCustomComponent(tagName, props) { - return tagName.indexOf('-') >= 0 || props.is != null; -} - -var globalIdCounter = 1; - -/** - * Creates a new React class that is idempotent and capable of containing other - * React components. It accepts event listeners and DOM properties that are - * valid according to `DOMProperty`. - * - * - Event listeners: `onClick`, `onMouseDown`, etc. - * - DOM properties: `className`, `name`, `title`, etc. - * - * The `style` property functions differently from the DOM API. It accepts an - * object mapping of style properties to values. - * - * @constructor ReactDOMComponent - * @extends ReactMultiChild - */ -function ReactDOMComponent(element) { - var tag = element.type; - validateDangerousTag(tag); - this._currentElement = element; - this._tag = tag.toLowerCase(); - this._namespaceURI = null; - this._renderedChildren = null; - this._previousStyle = null; - this._previousStyleCopy = null; - this._hostNode = null; - this._hostParent = null; - this._rootNodeID = 0; - this._domID = 0; - this._hostContainerInfo = null; - this._wrapperState = null; - this._topLevelWrapper = null; - this._flags = 0; - if ("development" !== 'production') { - this._ancestorInfo = null; - setAndValidateContentChildDev.call(this, null); - } -} - -ReactDOMComponent.displayName = 'ReactDOMComponent'; - -ReactDOMComponent.Mixin = { - - /** - * Generates root tag markup then recurses. This method has side effects and - * is not idempotent. - * - * @internal - * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction - * @param {?ReactDOMComponent} the parent component instance - * @param {?object} info about the host container - * @param {object} context - * @return {string} The computed markup. - */ - mountComponent: function (transaction, hostParent, hostContainerInfo, context) { - this._rootNodeID = globalIdCounter++; - this._domID = hostContainerInfo._idCounter++; - this._hostParent = hostParent; - this._hostContainerInfo = hostContainerInfo; - - var props = this._currentElement.props; - - switch (this._tag) { - case 'audio': - case 'form': - case 'iframe': - case 'img': - case 'link': - case 'object': - case 'source': - case 'video': - this._wrapperState = { - listeners: null - }; - transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this); - break; - case 'input': - ReactDOMInput.mountWrapper(this, props, hostParent); - props = ReactDOMInput.getHostProps(this, props); - transaction.getReactMountReady().enqueue(trackInputValue, this); - transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this); - // For controlled components we always need to ensure we're listening - // to onChange. Even if there is no listener. - ensureListeningTo(this, 'onChange', transaction); - break; - case 'option': - ReactDOMOption.mountWrapper(this, props, hostParent); - props = ReactDOMOption.getHostProps(this, props); - break; - case 'select': - ReactDOMSelect.mountWrapper(this, props, hostParent); - props = ReactDOMSelect.getHostProps(this, props); - transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this); - // For controlled components we always need to ensure we're listening - // to onChange. Even if there is no listener. - ensureListeningTo(this, 'onChange', transaction); - break; - case 'textarea': - ReactDOMTextarea.mountWrapper(this, props, hostParent); - props = ReactDOMTextarea.getHostProps(this, props); - transaction.getReactMountReady().enqueue(trackInputValue, this); - transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this); - // For controlled components we always need to ensure we're listening - // to onChange. Even if there is no listener. - ensureListeningTo(this, 'onChange', transaction); - break; - } - - assertValidProps(this, props); - - // We create tags in the namespace of their parent container, except HTML - // tags get no namespace. - var namespaceURI; - var parentTag; - if (hostParent != null) { - namespaceURI = hostParent._namespaceURI; - parentTag = hostParent._tag; - } else if (hostContainerInfo._tag) { - namespaceURI = hostContainerInfo._namespaceURI; - parentTag = hostContainerInfo._tag; - } - if (namespaceURI == null || namespaceURI === DOMNamespaces.svg && parentTag === 'foreignobject') { - namespaceURI = DOMNamespaces.html; - } - if (namespaceURI === DOMNamespaces.html) { - if (this._tag === 'svg') { - namespaceURI = DOMNamespaces.svg; - } else if (this._tag === 'math') { - namespaceURI = DOMNamespaces.mathml; - } - } - this._namespaceURI = namespaceURI; - - if ("development" !== 'production') { - var parentInfo; - if (hostParent != null) { - parentInfo = hostParent._ancestorInfo; - } else if (hostContainerInfo._tag) { - parentInfo = hostContainerInfo._ancestorInfo; - } - if (parentInfo) { - // parentInfo should always be present except for the top-level - // component when server rendering - validateDOMNesting(this._tag, null, this, parentInfo); - } - this._ancestorInfo = validateDOMNesting.updatedAncestorInfo(parentInfo, this._tag, this); - } - - var mountImage; - var type = this._currentElement.type; - if (transaction.useCreateElement) { - var ownerDocument = hostContainerInfo._ownerDocument; - var el; - if (namespaceURI === DOMNamespaces.html) { - if (this._tag === 'script') { - // Create the script via .innerHTML so its "parser-inserted" flag is - // set to true and it does not execute - var div = ownerDocument.createElement('div'); - div.innerHTML = '<' + type + '></' + type + '>'; - el = div.removeChild(div.firstChild); - } else if (props.is) { - el = ownerDocument.createElement(type, props.is); - } else { - // Separate else branch instead of using `props.is || undefined` above becuase of a Firefox bug. - // See discussion in https://github.com/facebook/react/pull/6896 - // and discussion in https://bugzilla.mozilla.org/show_bug.cgi?id=1276240 - el = ownerDocument.createElement(type); - } - } else { - el = ownerDocument.createElementNS(namespaceURI, type); - } - var isCustomComponentTag = isCustomComponent(this._tag, props); - if ("development" !== 'production' && isCustomComponentTag && !didWarnShadyDOM && el.shadyRoot) { - var owner = this._currentElement._owner; - var name = owner && owner.getName() || 'A component'; - "development" !== 'production' ? warning(false, '%s is using shady DOM. Using shady DOM with React can ' + 'cause things to break subtly.', name) : void 0; - didWarnShadyDOM = true; - } - ReactDOMComponentTree.precacheNode(this, el); - this._flags |= Flags.hasCachedChildNodes; - if (!this._hostParent) { - DOMPropertyOperations.setAttributeForRoot(el); - } - this._updateDOMProperties(null, props, transaction, isCustomComponentTag); - var lazyTree = DOMLazyTree(el); - this._createInitialChildren(transaction, props, context, lazyTree); - mountImage = lazyTree; - } else { - var tagOpen = this._createOpenTagMarkupAndPutListeners(transaction, props); - var tagContent = this._createContentMarkup(transaction, props, context); - if (!tagContent && omittedCloseTags[this._tag]) { - mountImage = tagOpen + '/>'; - } else { - mountImage = tagOpen + '>' + tagContent + '</' + type + '>'; - } - } - - switch (this._tag) { - case 'input': - transaction.getReactMountReady().enqueue(inputPostMount, this); - if (props.autoFocus) { - transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this); - } - break; - case 'textarea': - transaction.getReactMountReady().enqueue(textareaPostMount, this); - if (props.autoFocus) { - transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this); - } - break; - case 'select': - if (props.autoFocus) { - transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this); - } - break; - case 'button': - if (props.autoFocus) { - transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this); - } - break; - case 'option': - transaction.getReactMountReady().enqueue(optionPostMount, this); - break; - default: - if (typeof props.onClick === 'function') { - transaction.getReactMountReady().enqueue(trapClickOnNonInteractiveElement, this); - } - break; - } - - return mountImage; - }, - - /** - * Creates markup for the open tag and all attributes. - * - * This method has side effects because events get registered. - * - * Iterating over object properties is faster than iterating over arrays. - * @see http://jsperf.com/obj-vs-arr-iteration - * - * @private - * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction - * @param {object} props - * @return {string} Markup of opening tag. - */ - _createOpenTagMarkupAndPutListeners: function (transaction, props) { - var ret = '<' + this._currentElement.type; - - for (var propKey in props) { - if (!props.hasOwnProperty(propKey)) { - continue; - } - var propValue = props[propKey]; - if (propValue == null) { - continue; - } - if (registrationNameModules.hasOwnProperty(propKey)) { - if (propValue) { - enqueuePutListener(this, propKey, propValue, transaction); - } - } else { - if (propKey === STYLE) { - if (propValue) { - if ("development" !== 'production') { - // See `_updateDOMProperties`. style block - this._previousStyle = propValue; - } - propValue = this._previousStyleCopy = _assign({}, props.style); - } - propValue = CSSPropertyOperations.createMarkupForStyles(propValue, this); - } - var markup = null; - if (this._tag != null && isCustomComponent(this._tag, props)) { - if (!RESERVED_PROPS.hasOwnProperty(propKey)) { - markup = DOMPropertyOperations.createMarkupForCustomAttribute(propKey, propValue); - } - } else { - markup = DOMPropertyOperations.createMarkupForProperty(propKey, propValue); - } - if (markup) { - ret += ' ' + markup; - } - } - } - - // For static pages, no need to put React ID and checksum. Saves lots of - // bytes. - if (transaction.renderToStaticMarkup) { - return ret; - } - - if (!this._hostParent) { - ret += ' ' + DOMPropertyOperations.createMarkupForRoot(); - } - ret += ' ' + DOMPropertyOperations.createMarkupForID(this._domID); - return ret; - }, - - /** - * Creates markup for the content between the tags. - * - * @private - * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction - * @param {object} props - * @param {object} context - * @return {string} Content markup. - */ - _createContentMarkup: function (transaction, props, context) { - var ret = ''; - - // Intentional use of != to avoid catching zero/false. - var innerHTML = props.dangerouslySetInnerHTML; - if (innerHTML != null) { - if (innerHTML.__html != null) { - ret = innerHTML.__html; - } - } else { - var contentToUse = CONTENT_TYPES[typeof props.children] ? props.children : null; - var childrenToUse = contentToUse != null ? null : props.children; - if (contentToUse != null) { - // TODO: Validate that text is allowed as a child of this node - ret = escapeTextContentForBrowser(contentToUse); - if ("development" !== 'production') { - setAndValidateContentChildDev.call(this, contentToUse); - } - } else if (childrenToUse != null) { - var mountImages = this.mountChildren(childrenToUse, transaction, context); - ret = mountImages.join(''); - } - } - if (newlineEatingTags[this._tag] && ret.charAt(0) === '\n') { - // text/html ignores the first character in these tags if it's a newline - // Prefer to break application/xml over text/html (for now) by adding - // a newline specifically to get eaten by the parser. (Alternately for - // textareas, replacing "^\n" with "\r\n" doesn't get eaten, and the first - // \r is normalized out by HTMLTextAreaElement#value.) - // See: <http://www.w3.org/TR/html-polyglot/#newlines-in-textarea-and-pre> - // See: <http://www.w3.org/TR/html5/syntax.html#element-restrictions> - // See: <http://www.w3.org/TR/html5/syntax.html#newlines> - // See: Parsing of "textarea" "listing" and "pre" elements - // from <http://www.w3.org/TR/html5/syntax.html#parsing-main-inbody> - return '\n' + ret; - } else { - return ret; - } - }, - - _createInitialChildren: function (transaction, props, context, lazyTree) { - // Intentional use of != to avoid catching zero/false. - var innerHTML = props.dangerouslySetInnerHTML; - if (innerHTML != null) { - if (innerHTML.__html != null) { - DOMLazyTree.queueHTML(lazyTree, innerHTML.__html); - } - } else { - var contentToUse = CONTENT_TYPES[typeof props.children] ? props.children : null; - var childrenToUse = contentToUse != null ? null : props.children; - // TODO: Validate that text is allowed as a child of this node - if (contentToUse != null) { - // Avoid setting textContent when the text is empty. In IE11 setting - // textContent on a text area will cause the placeholder to not - // show within the textarea until it has been focused and blurred again. - // https://github.com/facebook/react/issues/6731#issuecomment-254874553 - if (contentToUse !== '') { - if ("development" !== 'production') { - setAndValidateContentChildDev.call(this, contentToUse); - } - DOMLazyTree.queueText(lazyTree, contentToUse); - } - } else if (childrenToUse != null) { - var mountImages = this.mountChildren(childrenToUse, transaction, context); - for (var i = 0; i < mountImages.length; i++) { - DOMLazyTree.queueChild(lazyTree, mountImages[i]); - } - } - } - }, - - /** - * Receives a next element and updates the component. - * - * @internal - * @param {ReactElement} nextElement - * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction - * @param {object} context - */ - receiveComponent: function (nextElement, transaction, context) { - var prevElement = this._currentElement; - this._currentElement = nextElement; - this.updateComponent(transaction, prevElement, nextElement, context); - }, - - /** - * Updates a DOM component after it has already been allocated and - * attached to the DOM. Reconciles the root DOM node, then recurses. - * - * @param {ReactReconcileTransaction} transaction - * @param {ReactElement} prevElement - * @param {ReactElement} nextElement - * @internal - * @overridable - */ - updateComponent: function (transaction, prevElement, nextElement, context) { - var lastProps = prevElement.props; - var nextProps = this._currentElement.props; - - switch (this._tag) { - case 'input': - lastProps = ReactDOMInput.getHostProps(this, lastProps); - nextProps = ReactDOMInput.getHostProps(this, nextProps); - break; - case 'option': - lastProps = ReactDOMOption.getHostProps(this, lastProps); - nextProps = ReactDOMOption.getHostProps(this, nextProps); - break; - case 'select': - lastProps = ReactDOMSelect.getHostProps(this, lastProps); - nextProps = ReactDOMSelect.getHostProps(this, nextProps); - break; - case 'textarea': - lastProps = ReactDOMTextarea.getHostProps(this, lastProps); - nextProps = ReactDOMTextarea.getHostProps(this, nextProps); - break; - default: - if (typeof lastProps.onClick !== 'function' && typeof nextProps.onClick === 'function') { - transaction.getReactMountReady().enqueue(trapClickOnNonInteractiveElement, this); - } - break; - } - - assertValidProps(this, nextProps); - var isCustomComponentTag = isCustomComponent(this._tag, nextProps); - this._updateDOMProperties(lastProps, nextProps, transaction, isCustomComponentTag); - this._updateDOMChildren(lastProps, nextProps, transaction, context); - - switch (this._tag) { - case 'input': - // Update the wrapper around inputs *after* updating props. This has to - // happen after `_updateDOMProperties`. Otherwise HTML5 input validations - // raise warnings and prevent the new value from being assigned. - ReactDOMInput.updateWrapper(this); - break; - case 'textarea': - ReactDOMTextarea.updateWrapper(this); - break; - case 'select': - // <select> value update needs to occur after <option> children - // reconciliation - transaction.getReactMountReady().enqueue(postUpdateSelectWrapper, this); - break; - } - }, - - /** - * Reconciles the properties by detecting differences in property values and - * updating the DOM as necessary. This function is probably the single most - * critical path for performance optimization. - * - * TODO: Benchmark whether checking for changed values in memory actually - * improves performance (especially statically positioned elements). - * TODO: Benchmark the effects of putting this at the top since 99% of props - * do not change for a given reconciliation. - * TODO: Benchmark areas that can be improved with caching. - * - * @private - * @param {object} lastProps - * @param {object} nextProps - * @param {?DOMElement} node - */ - _updateDOMProperties: function (lastProps, nextProps, transaction, isCustomComponentTag) { - var propKey; - var styleName; - var styleUpdates; - for (propKey in lastProps) { - if (nextProps.hasOwnProperty(propKey) || !lastProps.hasOwnProperty(propKey) || lastProps[propKey] == null) { - continue; - } - if (propKey === STYLE) { - var lastStyle = this._previousStyleCopy; - for (styleName in lastStyle) { - if (lastStyle.hasOwnProperty(styleName)) { - styleUpdates = styleUpdates || {}; - styleUpdates[styleName] = ''; - } - } - this._previousStyleCopy = null; - } else if (registrationNameModules.hasOwnProperty(propKey)) { - if (lastProps[propKey]) { - // Only call deleteListener if there was a listener previously or - // else willDeleteListener gets called when there wasn't actually a - // listener (e.g., onClick={null}) - deleteListener(this, propKey); - } - } else if (isCustomComponent(this._tag, lastProps)) { - if (!RESERVED_PROPS.hasOwnProperty(propKey)) { - DOMPropertyOperations.deleteValueForAttribute(getNode(this), propKey); - } - } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) { - DOMPropertyOperations.deleteValueForProperty(getNode(this), propKey); - } - } - for (propKey in nextProps) { - var nextProp = nextProps[propKey]; - var lastProp = propKey === STYLE ? this._previousStyleCopy : lastProps != null ? lastProps[propKey] : undefined; - if (!nextProps.hasOwnProperty(propKey) || nextProp === lastProp || nextProp == null && lastProp == null) { - continue; - } - if (propKey === STYLE) { - if (nextProp) { - if ("development" !== 'production') { - checkAndWarnForMutatedStyle(this._previousStyleCopy, this._previousStyle, this); - this._previousStyle = nextProp; - } - nextProp = this._previousStyleCopy = _assign({}, nextProp); - } else { - this._previousStyleCopy = null; - } - if (lastProp) { - // Unset styles on `lastProp` but not on `nextProp`. - for (styleName in lastProp) { - if (lastProp.hasOwnProperty(styleName) && (!nextProp || !nextProp.hasOwnProperty(styleName))) { - styleUpdates = styleUpdates || {}; - styleUpdates[styleName] = ''; - } - } - // Update styles that changed since `lastProp`. - for (styleName in nextProp) { - if (nextProp.hasOwnProperty(styleName) && lastProp[styleName] !== nextProp[styleName]) { - styleUpdates = styleUpdates || {}; - styleUpdates[styleName] = nextProp[styleName]; - } - } - } else { - // Relies on `updateStylesByID` not mutating `styleUpdates`. - styleUpdates = nextProp; - } - } else if (registrationNameModules.hasOwnProperty(propKey)) { - if (nextProp) { - enqueuePutListener(this, propKey, nextProp, transaction); - } else if (lastProp) { - deleteListener(this, propKey); - } - } else if (isCustomComponentTag) { - if (!RESERVED_PROPS.hasOwnProperty(propKey)) { - DOMPropertyOperations.setValueForAttribute(getNode(this), propKey, nextProp); - } - } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) { - var node = getNode(this); - // If we're updating to null or undefined, we should remove the property - // from the DOM node instead of inadvertently setting to a string. This - // brings us in line with the same behavior we have on initial render. - if (nextProp != null) { - DOMPropertyOperations.setValueForProperty(node, propKey, nextProp); - } else { - DOMPropertyOperations.deleteValueForProperty(node, propKey); - } - } - } - if (styleUpdates) { - CSSPropertyOperations.setValueForStyles(getNode(this), styleUpdates, this); - } - }, - - /** - * Reconciles the children with the various properties that affect the - * children content. - * - * @param {object} lastProps - * @param {object} nextProps - * @param {ReactReconcileTransaction} transaction - * @param {object} context - */ - _updateDOMChildren: function (lastProps, nextProps, transaction, context) { - var lastContent = CONTENT_TYPES[typeof lastProps.children] ? lastProps.children : null; - var nextContent = CONTENT_TYPES[typeof nextProps.children] ? nextProps.children : null; - - var lastHtml = lastProps.dangerouslySetInnerHTML && lastProps.dangerouslySetInnerHTML.__html; - var nextHtml = nextProps.dangerouslySetInnerHTML && nextProps.dangerouslySetInnerHTML.__html; - - // Note the use of `!=` which checks for null or undefined. - var lastChildren = lastContent != null ? null : lastProps.children; - var nextChildren = nextContent != null ? null : nextProps.children; - - // If we're switching from children to content/html or vice versa, remove - // the old content - var lastHasContentOrHtml = lastContent != null || lastHtml != null; - var nextHasContentOrHtml = nextContent != null || nextHtml != null; - if (lastChildren != null && nextChildren == null) { - this.updateChildren(null, transaction, context); - } else if (lastHasContentOrHtml && !nextHasContentOrHtml) { - this.updateTextContent(''); - if ("development" !== 'production') { - ReactInstrumentation.debugTool.onSetChildren(this._debugID, []); - } - } - - if (nextContent != null) { - if (lastContent !== nextContent) { - this.updateTextContent('' + nextContent); - if ("development" !== 'production') { - setAndValidateContentChildDev.call(this, nextContent); - } - } - } else if (nextHtml != null) { - if (lastHtml !== nextHtml) { - this.updateMarkup('' + nextHtml); - } - if ("development" !== 'production') { - ReactInstrumentation.debugTool.onSetChildren(this._debugID, []); - } - } else if (nextChildren != null) { - if ("development" !== 'production') { - setAndValidateContentChildDev.call(this, null); - } - - this.updateChildren(nextChildren, transaction, context); - } - }, - - getHostNode: function () { - return getNode(this); - }, - - /** - * Destroys all event registrations for this instance. Does not remove from - * the DOM. That must be done by the parent. - * - * @internal - */ - unmountComponent: function (safely, skipLifecycle) { - switch (this._tag) { - case 'audio': - case 'form': - case 'iframe': - case 'img': - case 'link': - case 'object': - case 'source': - case 'video': - var listeners = this._wrapperState.listeners; - if (listeners) { - for (var i = 0; i < listeners.length; i++) { - listeners[i].remove(); - } - } - break; - case 'input': - case 'textarea': - inputValueTracking.stopTracking(this); - break; - case 'html': - case 'head': - case 'body': - /** - * Components like <html> <head> and <body> can't be removed or added - * easily in a cross-browser way, however it's valuable to be able to - * take advantage of React's reconciliation for styling and <title> - * management. So we just document it and throw in dangerous cases. - */ - !false ? "development" !== 'production' ? invariant(false, '<%s> tried to unmount. Because of cross-browser quirks it is impossible to unmount some top-level components (eg <html>, <head>, and <body>) reliably and efficiently. To fix this, have a single top-level component that never unmounts render these elements.', this._tag) : _prodInvariant('66', this._tag) : void 0; - break; - } - - this.unmountChildren(safely, skipLifecycle); - ReactDOMComponentTree.uncacheNode(this); - EventPluginHub.deleteAllListeners(this); - this._rootNodeID = 0; - this._domID = 0; - this._wrapperState = null; - - if ("development" !== 'production') { - setAndValidateContentChildDev.call(this, null); - } - }, - - restoreControlledState: function () { - switch (this._tag) { - case 'input': - ReactDOMInput.restoreControlledState(this); - return; - case 'textarea': - ReactDOMTextarea.restoreControlledState(this); - return; - case 'select': - ReactDOMSelect.restoreControlledState(this); - return; - } - }, - - getPublicInstance: function () { - return getNode(this); - } - -}; - -_assign(ReactDOMComponent.prototype, ReactDOMComponent.Mixin, ReactMultiChild); - -module.exports = ReactDOMComponent; -},{"10":10,"109":109,"11":11,"12":12,"124":124,"126":126,"129":129,"13":13,"135":135,"146":146,"154":154,"160":160,"161":161,"162":162,"17":17,"18":18,"2":2,"25":25,"34":34,"35":35,"41":41,"44":44,"45":45,"49":49,"5":5,"65":65,"69":69,"77":77}],34:[function(_dereq_,module,exports){ -/** - * Copyright 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var ReactDOMComponentFlags = { - hasCachedChildNodes: 1 << 0 -}; - -module.exports = ReactDOMComponentFlags; -},{}],35:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _prodInvariant = _dereq_(129); - -var DOMProperty = _dereq_(12); -var ReactDOMComponentFlags = _dereq_(34); - -var invariant = _dereq_(154); - -var ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME; -var Flags = ReactDOMComponentFlags; - -var internalInstanceKey = '__reactInternalInstance$' + Math.random().toString(36).slice(2); - -/** - * Check if a given node should be cached. - */ -function shouldPrecacheNode(node, nodeID) { - return node.nodeType === 1 && node.getAttribute(ATTR_NAME) === String(nodeID) || node.nodeType === 8 && node.nodeValue === ' react-text: ' + nodeID + ' ' || node.nodeType === 8 && node.nodeValue === ' react-empty: ' + nodeID + ' '; -} - -/** - * Drill down (through composites and empty components) until we get a host or - * host text component. - * - * This is pretty polymorphic but unavoidable with the current structure we have - * for `_renderedChildren`. - */ -function getRenderedHostOrTextFromComponent(component) { - var rendered; - while (rendered = component._renderedComponent) { - component = rendered; - } - return component; -} - -/** - * Populate `_hostNode` on the rendered host/text component with the given - * DOM node. The passed `inst` can be a composite. - */ -function precacheNode(inst, node) { - var hostInst = getRenderedHostOrTextFromComponent(inst); - hostInst._hostNode = node; - node[internalInstanceKey] = hostInst; -} - -function uncacheNode(inst) { - var node = inst._hostNode; - if (node) { - delete node[internalInstanceKey]; - inst._hostNode = null; - } -} - -/** - * Populate `_hostNode` on each child of `inst`, assuming that the children - * match up with the DOM (element) children of `node`. - * - * We cache entire levels at once to avoid an n^2 problem where we access the - * children of a node sequentially and have to walk from the start to our target - * node every time. - * - * Since we update `_renderedChildren` and the actual DOM at (slightly) - * different times, we could race here and see a newer `_renderedChildren` than - * the DOM nodes we see. To avoid this, ReactMultiChild calls - * `prepareToManageChildren` before we change `_renderedChildren`, at which - * time the container's child nodes are always cached (until it unmounts). - */ -function precacheChildNodes(inst, node) { - if (inst._flags & Flags.hasCachedChildNodes) { - return; - } - var children = inst._renderedChildren; - var childNode = node.firstChild; - outer: for (var name in children) { - if (!children.hasOwnProperty(name)) { - continue; - } - var childInst = children[name]; - var childID = getRenderedHostOrTextFromComponent(childInst)._domID; - if (childID === 0) { - // We're currently unmounting this child in ReactMultiChild; skip it. - continue; - } - // We assume the child nodes are in the same order as the child instances. - for (; childNode !== null; childNode = childNode.nextSibling) { - if (shouldPrecacheNode(childNode, childID)) { - precacheNode(childInst, childNode); - continue outer; - } - } - // We reached the end of the DOM children without finding an ID match. - !false ? "development" !== 'production' ? invariant(false, 'Unable to find element with ID %s.', childID) : _prodInvariant('32', childID) : void 0; - } - inst._flags |= Flags.hasCachedChildNodes; -} - -/** - * Given a DOM node, return the closest ReactDOMComponent or - * ReactDOMTextComponent instance ancestor. - */ -function getClosestInstanceFromNode(node) { - if (node[internalInstanceKey]) { - return node[internalInstanceKey]; - } - - // Walk up the tree until we find an ancestor whose instance we have cached. - var parents = []; - while (!node[internalInstanceKey]) { - parents.push(node); - if (node.parentNode) { - node = node.parentNode; - } else { - // Top of the tree. This node must not be part of a React tree (or is - // unmounted, potentially). - return null; - } - } - - var closest; - var inst; - for (; node && (inst = node[internalInstanceKey]); node = parents.pop()) { - closest = inst; - if (parents.length) { - precacheChildNodes(inst, node); - } - } - - return closest; -} - -/** - * Given a DOM node, return the ReactDOMComponent or ReactDOMTextComponent - * instance, or null if the node was not rendered by this React. - */ -function getInstanceFromNode(node) { - var inst = getClosestInstanceFromNode(node); - if (inst != null && inst._hostNode === node) { - return inst; - } else { - return null; - } -} - -/** - * Given a ReactDOMComponent or ReactDOMTextComponent, return the corresponding - * DOM node. - */ -function getNodeFromInstance(inst) { - // Without this first invariant, passing a non-DOM-component triggers the next - // invariant for a missing parent, which is super confusing. - !(inst._hostNode !== undefined) ? "development" !== 'production' ? invariant(false, 'getNodeFromInstance: Invalid argument.') : _prodInvariant('33') : void 0; - - if (inst._hostNode) { - return inst._hostNode; - } - - // Walk up the tree until we find an ancestor whose DOM node we have cached. - var parents = []; - while (!inst._hostNode) { - parents.push(inst); - !inst._hostParent ? "development" !== 'production' ? invariant(false, 'React DOM tree root should always have a node reference.') : _prodInvariant('34') : void 0; - inst = inst._hostParent; - } - - // Now parents contains each ancestor that does *not* have a cached native - // node, and `inst` is the deepest ancestor that does. - for (; parents.length; inst = parents.pop()) { - precacheChildNodes(inst, inst._hostNode); - } - - return inst._hostNode; -} - -var ReactDOMComponentTree = { - getClosestInstanceFromNode: getClosestInstanceFromNode, - getInstanceFromNode: getInstanceFromNode, - getNodeFromInstance: getNodeFromInstance, - precacheChildNodes: precacheChildNodes, - precacheNode: precacheNode, - uncacheNode: uncacheNode -}; - -module.exports = ReactDOMComponentTree; -},{"12":12,"129":129,"154":154,"34":34}],36:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var validateDOMNesting = _dereq_(135); - -var DOC_NODE_TYPE = 9; - -function ReactDOMContainerInfo(topLevelWrapper, node) { - var info = { - _topLevelWrapper: topLevelWrapper, - _idCounter: 1, - _ownerDocument: node ? node.nodeType === DOC_NODE_TYPE ? node : node.ownerDocument : null, - _node: node, - _tag: node ? node.nodeName.toLowerCase() : null, - _namespaceURI: node ? node.namespaceURI : null - }; - if ("development" !== 'production') { - info._ancestorInfo = node ? validateDOMNesting.updatedAncestorInfo(null, info._tag, null) : null; - } - return info; -} - -module.exports = ReactDOMContainerInfo; -},{"135":135}],37:[function(_dereq_,module,exports){ -/** - * Copyright 2014-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _assign = _dereq_(162); - -var DOMLazyTree = _dereq_(10); -var ReactDOMComponentTree = _dereq_(35); - -var ReactDOMEmptyComponent = function (instantiate) { - // ReactCompositeComponent uses this: - this._currentElement = null; - // ReactDOMComponentTree uses these: - this._hostNode = null; - this._hostParent = null; - this._hostContainerInfo = null; - this._domID = 0; -}; -_assign(ReactDOMEmptyComponent.prototype, { - mountComponent: function (transaction, hostParent, hostContainerInfo, context) { - var domID = hostContainerInfo._idCounter++; - this._domID = domID; - this._hostParent = hostParent; - this._hostContainerInfo = hostContainerInfo; - - var nodeValue = ' react-empty: ' + this._domID + ' '; - if (transaction.useCreateElement) { - var ownerDocument = hostContainerInfo._ownerDocument; - var node = ownerDocument.createComment(nodeValue); - ReactDOMComponentTree.precacheNode(this, node); - return DOMLazyTree(node); - } else { - if (transaction.renderToStaticMarkup) { - // Normally we'd insert a comment node, but since this is a situation - // where React won't take over (static pages), we can simply return - // nothing. - return ''; - } - return '<!--' + nodeValue + '-->'; - } - }, - receiveComponent: function () {}, - getHostNode: function () { - return ReactDOMComponentTree.getNodeFromInstance(this); - }, - unmountComponent: function () { - ReactDOMComponentTree.uncacheNode(this); - } -}); - -module.exports = ReactDOMEmptyComponent; -},{"10":10,"162":162,"35":35}],38:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var ReactDOMFeatureFlags = { - useCreateElement: true, - useFiber: false -}; - -module.exports = ReactDOMFeatureFlags; -},{}],39:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var DOMChildrenOperations = _dereq_(8); -var ReactDOMComponentTree = _dereq_(35); - -/** - * Operations used to process updates to DOM nodes. - */ -var ReactDOMIDOperations = { - - /** - * Updates a component's children by processing a series of updates. - * - * @param {array<object>} updates List of update configurations. - * @internal - */ - dangerouslyProcessChildrenUpdates: function (parentInst, updates) { - var node = ReactDOMComponentTree.getNodeFromInstance(parentInst); - DOMChildrenOperations.processUpdates(node, updates); - } -}; - -module.exports = ReactDOMIDOperations; -},{"35":35,"8":8}],40:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var ARIADOMPropertyConfig = _dereq_(1); -var BeforeInputEventPlugin = _dereq_(3); -var DOMProperty = _dereq_(12); -var ChangeEventPlugin = _dereq_(7); -var DOMEventPluginOrder = _dereq_(9); -var EnterLeaveEventPlugin = _dereq_(15); -var EventPluginHub = _dereq_(17); -var EventPluginUtils = _dereq_(19); -var HTMLDOMPropertyConfig = _dereq_(22); -var ReactBrowserEventEmitter = _dereq_(25); -var ReactDOMComponentTree = _dereq_(35); -var ReactEventListener = _dereq_(58); -var SVGDOMPropertyConfig = _dereq_(86); -var SelectEventPlugin = _dereq_(87); -var SimpleEventPlugin = _dereq_(88); - -var alreadyInjected = false; - -function inject() { - if (alreadyInjected) { - // TODO: This is currently true because these injections are shared between - // the client and the server package. They should be built independently - // and not share any injection state. Then this problem will be solved. - return; - } - alreadyInjected = true; - - ReactBrowserEventEmitter.injection.injectReactEventListener(ReactEventListener); - - /** - * Inject modules for resolving DOM hierarchy and plugin ordering. - */ - EventPluginHub.injection.injectEventPluginOrder(DOMEventPluginOrder); - EventPluginUtils.injection.injectComponentTree(ReactDOMComponentTree); - - /** - * Some important event plugins included by default (without having to require - * them). - */ - EventPluginHub.injection.injectEventPluginsByName({ - SimpleEventPlugin: SimpleEventPlugin, - EnterLeaveEventPlugin: EnterLeaveEventPlugin, - ChangeEventPlugin: ChangeEventPlugin, - SelectEventPlugin: SelectEventPlugin, - BeforeInputEventPlugin: BeforeInputEventPlugin - }); - - DOMProperty.injection.injectDOMPropertyConfig(ARIADOMPropertyConfig); - DOMProperty.injection.injectDOMPropertyConfig(HTMLDOMPropertyConfig); - DOMProperty.injection.injectDOMPropertyConfig(SVGDOMPropertyConfig); -} - -module.exports = { - inject: inject -}; -},{"1":1,"12":12,"15":15,"17":17,"19":19,"22":22,"25":25,"3":3,"35":35,"58":58,"7":7,"86":86,"87":87,"88":88,"9":9}],41:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _prodInvariant = _dereq_(129), - _assign = _dereq_(162); - -var DOMPropertyOperations = _dereq_(13); -var ReactControlledValuePropTypes = _dereq_(31); -var ReactDOMComponentTree = _dereq_(35); - -var invariant = _dereq_(154); -var warning = _dereq_(161); - -var didWarnValueDefaultValue = false; -var didWarnCheckedDefaultChecked = false; -var didWarnControlledToUncontrolled = false; -var didWarnUncontrolledToControlled = false; - -function isControlled(props) { - var usesChecked = props.type === 'checkbox' || props.type === 'radio'; - return usesChecked ? props.checked != null : props.value != null; -} - -/** - * Implements an <input> host component that allows setting these optional - * props: `checked`, `value`, `defaultChecked`, and `defaultValue`. - * - * If `checked` or `value` are not supplied (or null/undefined), user actions - * that affect the checked state or value will trigger updates to the element. - * - * If they are supplied (and not null/undefined), the rendered element will not - * trigger updates to the element. Instead, the props must change in order for - * the rendered element to be updated. - * - * The rendered element will be initialized as unchecked (or `defaultChecked`) - * with an empty value (or `defaultValue`). - * - * @see http://www.w3.org/TR/2012/WD-html5-20121025/the-input-element.html - */ -var ReactDOMInput = { - getHostProps: function (inst, props) { - var value = props.value; - var checked = props.checked; - - var hostProps = _assign({ - // Make sure we set .type before any other properties (setting .value - // before .type means .value is lost in IE11 and below) - type: undefined, - // Make sure we set .step before .value (setting .value before .step - // means .value is rounded on mount, based upon step precision) - step: undefined, - // Make sure we set .min & .max before .value (to ensure proper order - // in corner cases such as min or max deriving from value, e.g. Issue #7170) - min: undefined, - max: undefined - }, props, { - defaultChecked: undefined, - defaultValue: undefined, - value: value != null ? value : inst._wrapperState.initialValue, - checked: checked != null ? checked : inst._wrapperState.initialChecked - }); - - return hostProps; - }, - - mountWrapper: function (inst, props) { - if ("development" !== 'production') { - ReactControlledValuePropTypes.checkPropTypes('input', props, inst._currentElement._owner); - - var owner = inst._currentElement._owner; - - if (props.checked !== undefined && props.defaultChecked !== undefined && !didWarnCheckedDefaultChecked) { - "development" !== 'production' ? warning(false, '%s contains an input of type %s with both checked and defaultChecked props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the checked prop, or the defaultChecked prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0; - didWarnCheckedDefaultChecked = true; - } - if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) { - "development" !== 'production' ? warning(false, '%s contains an input of type %s with both value and defaultValue props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0; - didWarnValueDefaultValue = true; - } - } - - var defaultValue = props.defaultValue; - inst._wrapperState = { - initialChecked: props.checked != null ? props.checked : props.defaultChecked, - initialValue: props.value != null ? props.value : defaultValue, - listeners: null - }; - - if ("development" !== 'production') { - inst._wrapperState.controlled = isControlled(props); - } - }, - - updateWrapper: function (inst) { - var props = inst._currentElement.props; - - if ("development" !== 'production') { - var controlled = isControlled(props); - var owner = inst._currentElement._owner; - - if (!inst._wrapperState.controlled && controlled && !didWarnUncontrolledToControlled) { - "development" !== 'production' ? warning(false, '%s is changing an uncontrolled input of type %s to be controlled. ' + 'Input elements should not switch from uncontrolled to controlled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0; - didWarnUncontrolledToControlled = true; - } - if (inst._wrapperState.controlled && !controlled && !didWarnControlledToUncontrolled) { - "development" !== 'production' ? warning(false, '%s is changing a controlled input of type %s to be uncontrolled. ' + 'Input elements should not switch from controlled to uncontrolled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0; - didWarnControlledToUncontrolled = true; - } - } - - var checked = props.checked; - if (checked != null) { - DOMPropertyOperations.setValueForProperty(ReactDOMComponentTree.getNodeFromInstance(inst), 'checked', checked || false); - } - - var node = ReactDOMComponentTree.getNodeFromInstance(inst); - var value = props.value; - if (value != null) { - - // Cast `value` to a string to ensure the value is set correctly. While - // browsers typically do this as necessary, jsdom doesn't. - var newValue = '' + value; - - // To avoid side effects (such as losing text selection), only set value if changed - if (newValue !== node.value) { - node.value = newValue; - } - } else { - if (props.value == null && props.defaultValue != null) { - // In Chrome, assigning defaultValue to certain input types triggers input validation. - // For number inputs, the display value loses trailing decimal points. For email inputs, - // Chrome raises "The specified value <x> is not a valid email address". - // - // Here we check to see if the defaultValue has actually changed, avoiding these problems - // when the user is inputting text - // - // https://github.com/facebook/react/issues/7253 - if (node.defaultValue !== '' + props.defaultValue) { - node.defaultValue = '' + props.defaultValue; - } - } - if (props.checked == null && props.defaultChecked != null) { - node.defaultChecked = !!props.defaultChecked; - } - } - }, - - postMountWrapper: function (inst) { - var props = inst._currentElement.props; - - // This is in postMount because we need access to the DOM node, which is not - // available until after the component has mounted. - var node = ReactDOMComponentTree.getNodeFromInstance(inst); - - // Detach value from defaultValue. We won't do anything if we're working on - // submit or reset inputs as those values & defaultValues are linked. They - // are not resetable nodes so this operation doesn't matter and actually - // removes browser-default values (eg "Submit Query") when no value is - // provided. - - switch (props.type) { - case 'submit': - case 'reset': - break; - case 'color': - case 'date': - case 'datetime': - case 'datetime-local': - case 'month': - case 'time': - case 'week': - // This fixes the no-show issue on iOS Safari and Android Chrome: - // https://github.com/facebook/react/issues/7233 - node.value = ''; - node.value = node.defaultValue; - break; - default: - node.value = node.value; - break; - } - - // Normally, we'd just do `node.checked = node.checked` upon initial mount, less this bug - // this is needed to work around a chrome bug where setting defaultChecked - // will sometimes influence the value of checked (even after detachment). - // Reference: https://bugs.chromium.org/p/chromium/issues/detail?id=608416 - // We need to temporarily unset name to avoid disrupting radio button groups. - var name = node.name; - if (name !== '') { - node.name = ''; - } - node.defaultChecked = !node.defaultChecked; - node.defaultChecked = !node.defaultChecked; - if (name !== '') { - node.name = name; - } - }, - - restoreControlledState: function (inst) { - if (inst._rootNodeID) { - // DOM component is still mounted; update - ReactDOMInput.updateWrapper(inst); - } - var props = inst._currentElement.props; - updateNamedCousins(inst, props); - } -}; - -function updateNamedCousins(thisInstance, props) { - var name = props.name; - if (props.type === 'radio' && name != null) { - var rootNode = ReactDOMComponentTree.getNodeFromInstance(thisInstance); - var queryRoot = rootNode; - - while (queryRoot.parentNode) { - queryRoot = queryRoot.parentNode; - } - - // If `rootNode.form` was non-null, then we could try `form.elements`, - // but that sometimes behaves strangely in IE8. We could also try using - // `form.getElementsByName`, but that will only return direct children - // and won't include inputs that use the HTML5 `form=` attribute. Since - // the input might not even be in a form. It might not even be in the - // document. Let's just use the local `querySelectorAll` to ensure we don't - // miss anything. - var group = queryRoot.querySelectorAll('input[name=' + JSON.stringify('' + name) + '][type="radio"]'); - - for (var i = 0; i < group.length; i++) { - var otherNode = group[i]; - if (otherNode === rootNode || otherNode.form !== rootNode.form) { - continue; - } - // This will throw if radio buttons rendered by different copies of React - // and the same name are rendered into the same form (same as #1939). - // That's probably okay; we don't support it just as we don't support - // mixing React radio buttons with non-React ones. - var otherInstance = ReactDOMComponentTree.getInstanceFromNode(otherNode); - !otherInstance ? "development" !== 'production' ? invariant(false, 'ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported.') : _prodInvariant('90') : void 0; - // If this is a controlled radio button group, forcing the input that - // was previously checked to update will cause it to be come re-checked - // as appropriate. - if (otherInstance._rootNodeID) { - ReactDOMInput.updateWrapper(otherInstance); - } - } - } -} - -module.exports = ReactDOMInput; -},{"129":129,"13":13,"154":154,"161":161,"162":162,"31":31,"35":35}],42:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var DOMProperty = _dereq_(12); -var ReactComponentTreeHook = _dereq_(136); - -var warning = _dereq_(161); - -var warnedProperties = {}; -var rARIA = new RegExp('^(aria)-[' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$'); - -function validateProperty(tagName, name, debugID) { - if (warnedProperties.hasOwnProperty(name) && warnedProperties[name]) { - return true; - } - - if (rARIA.test(name)) { - var lowerCasedName = name.toLowerCase(); - var standardName = DOMProperty.getPossibleStandardName.hasOwnProperty(lowerCasedName) ? DOMProperty.getPossibleStandardName[lowerCasedName] : null; - - // If this is an aria-* attribute, but is not listed in the known DOM - // DOM properties, then it is an invalid aria-* attribute. - if (standardName == null) { - warnedProperties[name] = true; - return false; - } - // aria-* attributes should be lowercase; suggest the lowercase version. - if (name !== standardName) { - "development" !== 'production' ? warning(false, 'Unknown ARIA attribute %s. Did you mean %s?%s', name, standardName, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0; - warnedProperties[name] = true; - return true; - } - } - - return true; -} - -function warnInvalidARIAProps(debugID, element) { - var invalidProps = []; - - for (var key in element.props) { - var isValid = validateProperty(element.type, key, debugID); - if (!isValid) { - invalidProps.push(key); - } - } - - var unknownPropString = invalidProps.map(function (prop) { - return '`' + prop + '`'; - }).join(', '); - - if (invalidProps.length === 1) { - "development" !== 'production' ? warning(false, 'Invalid aria prop %s on <%s> tag. ' + 'For details, see https://fb.me/invalid-aria-prop%s', unknownPropString, element.type, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0; - } else if (invalidProps.length > 1) { - "development" !== 'production' ? warning(false, 'Invalid aria props %s on <%s> tag. ' + 'For details, see https://fb.me/invalid-aria-prop%s', unknownPropString, element.type, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0; - } -} - -function handleElement(debugID, element) { - if (element == null || typeof element.type !== 'string') { - return; - } - if (element.type.indexOf('-') >= 0 || element.props.is) { - return; - } - - warnInvalidARIAProps(debugID, element); -} - -var ReactDOMInvalidARIAHook = { - onBeforeMountComponent: function (debugID, element) { - if ("development" !== 'production') { - handleElement(debugID, element); - } - }, - onBeforeUpdateComponent: function (debugID, element) { - if ("development" !== 'production') { - handleElement(debugID, element); - } - } -}; - -module.exports = ReactDOMInvalidARIAHook; -},{"12":12,"136":136,"161":161}],43:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var ReactComponentTreeHook = _dereq_(136); - -var warning = _dereq_(161); - -var didWarnValueNull = false; - -function handleElement(debugID, element) { - if (element == null) { - return; - } - if (element.type !== 'input' && element.type !== 'textarea' && element.type !== 'select') { - return; - } - if (element.props != null && element.props.value === null && !didWarnValueNull) { - "development" !== 'production' ? warning(false, '`value` prop on `%s` should not be null. ' + 'Consider using the empty string to clear the component or `undefined` ' + 'for uncontrolled components.%s', element.type, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0; - - didWarnValueNull = true; - } -} - -var ReactDOMNullInputValuePropHook = { - onBeforeMountComponent: function (debugID, element) { - handleElement(debugID, element); - }, - onBeforeUpdateComponent: function (debugID, element) { - handleElement(debugID, element); - } -}; - -module.exports = ReactDOMNullInputValuePropHook; -},{"136":136,"161":161}],44:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _assign = _dereq_(162); - -var React = _dereq_(138); -var ReactDOMComponentTree = _dereq_(35); -var ReactDOMSelect = _dereq_(45); - -var warning = _dereq_(161); -var didWarnInvalidOptionChildren = false; - -function flattenChildren(children) { - var content = ''; - - // Flatten children and warn if they aren't strings or numbers; - // invalid types are ignored. - React.Children.forEach(children, function (child) { - if (child == null) { - return; - } - if (typeof child === 'string' || typeof child === 'number') { - content += child; - } else if (!didWarnInvalidOptionChildren) { - didWarnInvalidOptionChildren = true; - "development" !== 'production' ? warning(false, 'Only strings and numbers are supported as <option> children.') : void 0; - } - }); - - return content; -} - -/** - * Implements an <option> host component that warns when `selected` is set. - */ -var ReactDOMOption = { - mountWrapper: function (inst, props, hostParent) { - // TODO (yungsters): Remove support for `selected` in <option>. - if ("development" !== 'production') { - "development" !== 'production' ? warning(props.selected == null, 'Use the `defaultValue` or `value` props on <select> instead of ' + 'setting `selected` on <option>.') : void 0; - } - - // Look up whether this option is 'selected' - var selectValue = null; - if (hostParent != null) { - var selectParent = hostParent; - - if (selectParent._tag === 'optgroup') { - selectParent = selectParent._hostParent; - } - - if (selectParent != null && selectParent._tag === 'select') { - selectValue = ReactDOMSelect.getSelectValueContext(selectParent); - } - } - - // If the value is null (e.g., no specified value or after initial mount) - // or missing (e.g., for <datalist>), we don't change props.selected - var selected = null; - if (selectValue != null) { - var value; - if (props.value != null) { - value = props.value + ''; - } else { - value = flattenChildren(props.children); - } - selected = false; - if (Array.isArray(selectValue)) { - // multiple - for (var i = 0; i < selectValue.length; i++) { - if ('' + selectValue[i] === value) { - selected = true; - break; - } - } - } else { - selected = '' + selectValue === value; - } - } - - inst._wrapperState = { selected: selected }; - }, - - postMountWrapper: function (inst) { - // value="" should make a value attribute (#6219) - var props = inst._currentElement.props; - if (props.value != null) { - var node = ReactDOMComponentTree.getNodeFromInstance(inst); - node.setAttribute('value', props.value); - } - }, - - getHostProps: function (inst, props) { - var hostProps = _assign({ selected: undefined, children: undefined }, props); - - // Read state only from initial mount because <select> updates value - // manually; we need the initial state only for server rendering - if (inst._wrapperState.selected != null) { - hostProps.selected = inst._wrapperState.selected; - } - - var content = flattenChildren(props.children); - - if (content) { - hostProps.children = content; - } - - return hostProps; - } - -}; - -module.exports = ReactDOMOption; -},{"138":138,"161":161,"162":162,"35":35,"45":45}],45:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _assign = _dereq_(162); - -var ReactControlledValuePropTypes = _dereq_(31); -var ReactDOMComponentTree = _dereq_(35); - -var warning = _dereq_(161); - -var didWarnValueDefaultValue = false; - -function getDeclarationErrorAddendum(owner) { - if (owner) { - var name = owner.getName(); - if (name) { - return ' Check the render method of `' + name + '`.'; - } - } - return ''; -} - -var valuePropNames = ['value', 'defaultValue']; - -/** - * Validation function for `value` and `defaultValue`. - * @private - */ -function checkSelectPropTypes(inst, props) { - var owner = inst._currentElement._owner; - ReactControlledValuePropTypes.checkPropTypes('select', props, owner); - - for (var i = 0; i < valuePropNames.length; i++) { - var propName = valuePropNames[i]; - if (props[propName] == null) { - continue; - } - var isArray = Array.isArray(props[propName]); - if (props.multiple && !isArray) { - "development" !== 'production' ? warning(false, 'The `%s` prop supplied to <select> must be an array if ' + '`multiple` is true.%s', propName, getDeclarationErrorAddendum(owner)) : void 0; - } else if (!props.multiple && isArray) { - "development" !== 'production' ? warning(false, 'The `%s` prop supplied to <select> must be a scalar ' + 'value if `multiple` is false.%s', propName, getDeclarationErrorAddendum(owner)) : void 0; - } - } -} - -/** - * @param {ReactDOMComponent} inst - * @param {boolean} multiple - * @param {*} propValue A stringable (with `multiple`, a list of stringables). - * @private - */ -function updateOptions(inst, multiple, propValue) { - var options = ReactDOMComponentTree.getNodeFromInstance(inst).options; - - if (multiple) { - var selectedValue = {}; - for (var i = 0; i < propValue.length; i++) { - selectedValue['' + propValue[i]] = true; - } - for (var _i = 0; _i < options.length; _i++) { - var selected = selectedValue.hasOwnProperty(options[_i].value); - if (options[_i].selected !== selected) { - options[_i].selected = selected; - } - } - } else { - // Do not set `select.value` as exact behavior isn't consistent across all - // browsers for all cases. - var _selectedValue = '' + propValue; - for (var _i2 = 0; _i2 < options.length; _i2++) { - if (options[_i2].value === _selectedValue) { - options[_i2].selected = true; - return; - } - } - if (options.length) { - options[0].selected = true; - } - } -} - -/** - * Implements a <select> host component that allows optionally setting the - * props `value` and `defaultValue`. If `multiple` is false, the prop must be a - * stringable. If `multiple` is true, the prop must be an array of stringables. - * - * If `value` is not supplied (or null/undefined), user actions that change the - * selected option will trigger updates to the rendered options. - * - * If it is supplied (and not null/undefined), the rendered options will not - * update in response to user actions. Instead, the `value` prop must change in - * order for the rendered options to update. - * - * If `defaultValue` is provided, any options with the supplied values will be - * selected. - */ -var ReactDOMSelect = { - getHostProps: function (inst, props) { - return _assign({}, props, { - value: undefined - }); - }, - - mountWrapper: function (inst, props) { - if ("development" !== 'production') { - checkSelectPropTypes(inst, props); - } - - var value = props.value; - inst._wrapperState = { - initialValue: value != null ? value : props.defaultValue, - listeners: null, - wasMultiple: Boolean(props.multiple) - }; - - if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) { - "development" !== 'production' ? warning(false, 'Select elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled select ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components') : void 0; - didWarnValueDefaultValue = true; - } - }, - - getSelectValueContext: function (inst) { - // ReactDOMOption looks at this initial value so the initial generated - // markup has correct `selected` attributes - return inst._wrapperState.initialValue; - }, - - postUpdateWrapper: function (inst) { - var props = inst._currentElement.props; - - // After the initial mount, we control selected-ness manually so don't pass - // this value down - inst._wrapperState.initialValue = undefined; - - var wasMultiple = inst._wrapperState.wasMultiple; - inst._wrapperState.wasMultiple = Boolean(props.multiple); - - var value = props.value; - if (value != null) { - updateOptions(inst, Boolean(props.multiple), value); - } else if (wasMultiple !== Boolean(props.multiple)) { - // For simplicity, reapply `defaultValue` if `multiple` is toggled. - if (props.defaultValue != null) { - updateOptions(inst, Boolean(props.multiple), props.defaultValue); - } else { - // Revert the select back to its default unselected state. - updateOptions(inst, Boolean(props.multiple), props.multiple ? [] : ''); - } - } - }, - - restoreControlledState: function (inst) { - if (inst._rootNodeID) { - var props = inst._currentElement.props; - var value = props.value; - - if (value != null) { - updateOptions(inst, Boolean(props.multiple), value); - } - } - } -}; - -module.exports = ReactDOMSelect; -},{"161":161,"162":162,"31":31,"35":35}],46:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var ExecutionEnvironment = _dereq_(140); - -var getNodeForCharacterOffset = _dereq_(121); -var getTextContentAccessor = _dereq_(122); - -/** - * While `isCollapsed` is available on the Selection object and `collapsed` - * is available on the Range object, IE11 sometimes gets them wrong. - * If the anchor/focus nodes and offsets are the same, the range is collapsed. - */ -function isCollapsed(anchorNode, anchorOffset, focusNode, focusOffset) { - return anchorNode === focusNode && anchorOffset === focusOffset; -} - -/** - * Get the appropriate anchor and focus node/offset pairs for IE. - * - * The catch here is that IE's selection API doesn't provide information - * about whether the selection is forward or backward, so we have to - * behave as though it's always forward. - * - * IE text differs from modern selection in that it behaves as though - * block elements end with a new line. This means character offsets will - * differ between the two APIs. - * - * @param {DOMElement} node - * @return {object} - */ -function getIEOffsets(node) { - var selection = document.selection; - var selectedRange = selection.createRange(); - var selectedLength = selectedRange.text.length; - - // Duplicate selection so we can move range without breaking user selection. - var fromStart = selectedRange.duplicate(); - fromStart.moveToElementText(node); - fromStart.setEndPoint('EndToStart', selectedRange); - - var startOffset = fromStart.text.length; - var endOffset = startOffset + selectedLength; - - return { - start: startOffset, - end: endOffset - }; -} - -/** - * @param {DOMElement} node - * @return {?object} - */ -function getModernOffsets(node) { - var selection = window.getSelection && window.getSelection(); - - if (!selection || selection.rangeCount === 0) { - return null; - } - - var anchorNode = selection.anchorNode; - var anchorOffset = selection.anchorOffset; - var focusNode = selection.focusNode; - var focusOffset = selection.focusOffset; - - var currentRange = selection.getRangeAt(0); - - // In Firefox, range.startContainer and range.endContainer can be "anonymous - // divs", e.g. the up/down buttons on an <input type="number">. Anonymous - // divs do not seem to expose properties, triggering a "Permission denied - // error" if any of its properties are accessed. The only seemingly possible - // way to avoid erroring is to access a property that typically works for - // non-anonymous divs and catch any error that may otherwise arise. See - // https://bugzilla.mozilla.org/show_bug.cgi?id=208427 - try { - /* eslint-disable no-unused-expressions */ - currentRange.startContainer.nodeType; - currentRange.endContainer.nodeType; - /* eslint-enable no-unused-expressions */ - } catch (e) { - return null; - } - - // If the node and offset values are the same, the selection is collapsed. - // `Selection.isCollapsed` is available natively, but IE sometimes gets - // this value wrong. - var isSelectionCollapsed = isCollapsed(selection.anchorNode, selection.anchorOffset, selection.focusNode, selection.focusOffset); - - var rangeLength = isSelectionCollapsed ? 0 : currentRange.toString().length; - - var tempRange = currentRange.cloneRange(); - tempRange.selectNodeContents(node); - tempRange.setEnd(currentRange.startContainer, currentRange.startOffset); - - var isTempRangeCollapsed = isCollapsed(tempRange.startContainer, tempRange.startOffset, tempRange.endContainer, tempRange.endOffset); - - var start = isTempRangeCollapsed ? 0 : tempRange.toString().length; - var end = start + rangeLength; - - // Detect whether the selection is backward. - var detectionRange = document.createRange(); - detectionRange.setStart(anchorNode, anchorOffset); - detectionRange.setEnd(focusNode, focusOffset); - var isBackward = detectionRange.collapsed; - - return { - start: isBackward ? end : start, - end: isBackward ? start : end - }; -} - -/** - * @param {DOMElement|DOMTextNode} node - * @param {object} offsets - */ -function setIEOffsets(node, offsets) { - var range = document.selection.createRange().duplicate(); - var start, end; - - if (offsets.end === undefined) { - start = offsets.start; - end = start; - } else if (offsets.start > offsets.end) { - start = offsets.end; - end = offsets.start; - } else { - start = offsets.start; - end = offsets.end; - } - - range.moveToElementText(node); - range.moveStart('character', start); - range.setEndPoint('EndToStart', range); - range.moveEnd('character', end - start); - range.select(); -} - -/** - * In modern non-IE browsers, we can support both forward and backward - * selections. - * - * Note: IE10+ supports the Selection object, but it does not support - * the `extend` method, which means that even in modern IE, it's not possible - * to programmatically create a backward selection. Thus, for all IE - * versions, we use the old IE API to create our selections. - * - * @param {DOMElement|DOMTextNode} node - * @param {object} offsets - */ -function setModernOffsets(node, offsets) { - if (!window.getSelection) { - return; - } - - var selection = window.getSelection(); - var length = node[getTextContentAccessor()].length; - var start = Math.min(offsets.start, length); - var end = offsets.end === undefined ? start : Math.min(offsets.end, length); - - // IE 11 uses modern selection, but doesn't support the extend method. - // Flip backward selections, so we can set with a single range. - if (!selection.extend && start > end) { - var temp = end; - end = start; - start = temp; - } - - var startMarker = getNodeForCharacterOffset(node, start); - var endMarker = getNodeForCharacterOffset(node, end); - - if (startMarker && endMarker) { - var range = document.createRange(); - range.setStart(startMarker.node, startMarker.offset); - selection.removeAllRanges(); - - if (start > end) { - selection.addRange(range); - selection.extend(endMarker.node, endMarker.offset); - } else { - range.setEnd(endMarker.node, endMarker.offset); - selection.addRange(range); - } - } -} - -var useIEOffsets = ExecutionEnvironment.canUseDOM && 'selection' in document && !('getSelection' in window); - -var ReactDOMSelection = { - /** - * @param {DOMElement} node - */ - getOffsets: useIEOffsets ? getIEOffsets : getModernOffsets, - - /** - * @param {DOMElement|DOMTextNode} node - * @param {object} offsets - */ - setOffsets: useIEOffsets ? setIEOffsets : setModernOffsets -}; - -module.exports = ReactDOMSelection; -},{"121":121,"122":122,"140":140}],47:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var ReactComponentEnvironment = _dereq_(28); -var ReactComponentBrowserEnvironment = _dereq_(27); -var ReactDOMComponent = _dereq_(33); -var ReactDOMEmptyComponent = _dereq_(37); -var ReactDOMTextComponent = _dereq_(48); -var ReactDefaultBatchingStrategy = _dereq_(53); -var ReactEmptyComponent = _dereq_(55); -var ReactGenericBatching = _dereq_(60); -var ReactHostComponent = _dereq_(61); -var ReactReconcileTransaction = _dereq_(74); -var ReactUpdates = _dereq_(84); - -var alreadyInjected = false; - -function inject() { - if (alreadyInjected) { - // TODO: This is currently true because these injections are shared between - // the client and the server package. They should be built independently - // and not share any injection state. Then this problem will be solved. - return; - } - alreadyInjected = true; - - ReactGenericBatching.injection.injectStackBatchedUpdates(ReactUpdates.batchedUpdates); - - ReactHostComponent.injection.injectGenericComponentClass(ReactDOMComponent); - - ReactHostComponent.injection.injectTextComponentClass(ReactDOMTextComponent); - - ReactEmptyComponent.injection.injectEmptyComponentFactory(function (instantiate) { - return new ReactDOMEmptyComponent(instantiate); - }); - - ReactUpdates.injection.injectReconcileTransaction(ReactReconcileTransaction); - ReactUpdates.injection.injectBatchingStrategy(ReactDefaultBatchingStrategy); - - ReactComponentEnvironment.injection.injectEnvironment(ReactComponentBrowserEnvironment); -} - -module.exports = { - inject: inject -}; -},{"27":27,"28":28,"33":33,"37":37,"48":48,"53":53,"55":55,"60":60,"61":61,"74":74,"84":84}],48:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _prodInvariant = _dereq_(129), - _assign = _dereq_(162); - -var DOMChildrenOperations = _dereq_(8); -var DOMLazyTree = _dereq_(10); -var ReactDOMComponentTree = _dereq_(35); - -var escapeTextContentForBrowser = _dereq_(109); -var invariant = _dereq_(154); -var validateDOMNesting = _dereq_(135); - -/** - * Text nodes violate a couple assumptions that React makes about components: - * - * - When mounting text into the DOM, adjacent text nodes are merged. - * - Text nodes cannot be assigned a React root ID. - * - * This component is used to wrap strings between comment nodes so that they - * can undergo the same reconciliation that is applied to elements. - * - * TODO: Investigate representing React components in the DOM with text nodes. - * - * @class ReactDOMTextComponent - * @extends ReactComponent - * @internal - */ -var ReactDOMTextComponent = function (text) { - // TODO: This is really a ReactText (ReactNode), not a ReactElement - this._currentElement = text; - this._stringText = '' + text; - // ReactDOMComponentTree uses these: - this._hostNode = null; - this._hostParent = null; - - // Properties - this._domID = 0; - this._mountIndex = 0; - this._closingComment = null; - this._commentNodes = null; -}; - -_assign(ReactDOMTextComponent.prototype, { - - /** - * Creates the markup for this text node. This node is not intended to have - * any features besides containing text content. - * - * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction - * @return {string} Markup for this text node. - * @internal - */ - mountComponent: function (transaction, hostParent, hostContainerInfo, context) { - if ("development" !== 'production') { - var parentInfo; - if (hostParent != null) { - parentInfo = hostParent._ancestorInfo; - } else if (hostContainerInfo != null) { - parentInfo = hostContainerInfo._ancestorInfo; - } - if (parentInfo) { - // parentInfo should always be present except for the top-level - // component when server rendering - validateDOMNesting(null, this._stringText, this, parentInfo); - } - } - - var domID = hostContainerInfo._idCounter++; - var openingValue = ' react-text: ' + domID + ' '; - var closingValue = ' /react-text '; - this._domID = domID; - this._hostParent = hostParent; - if (transaction.useCreateElement) { - var ownerDocument = hostContainerInfo._ownerDocument; - var openingComment = ownerDocument.createComment(openingValue); - var closingComment = ownerDocument.createComment(closingValue); - var lazyTree = DOMLazyTree(ownerDocument.createDocumentFragment()); - DOMLazyTree.queueChild(lazyTree, DOMLazyTree(openingComment)); - if (this._stringText) { - DOMLazyTree.queueChild(lazyTree, DOMLazyTree(ownerDocument.createTextNode(this._stringText))); - } - DOMLazyTree.queueChild(lazyTree, DOMLazyTree(closingComment)); - ReactDOMComponentTree.precacheNode(this, openingComment); - this._closingComment = closingComment; - return lazyTree; - } else { - var escapedText = escapeTextContentForBrowser(this._stringText); - - if (transaction.renderToStaticMarkup) { - // Normally we'd wrap this between comment nodes for the reasons stated - // above, but since this is a situation where React won't take over - // (static pages), we can simply return the text as it is. - return escapedText; - } - - return '<!--' + openingValue + '-->' + escapedText + '<!--' + closingValue + '-->'; - } - }, - - /** - * Updates this component by updating the text content. - * - * @param {ReactText} nextText The next text content - * @param {ReactReconcileTransaction} transaction - * @internal - */ - receiveComponent: function (nextText, transaction) { - if (nextText !== this._currentElement) { - this._currentElement = nextText; - var nextStringText = '' + nextText; - if (nextStringText !== this._stringText) { - // TODO: Save this as pending props and use performUpdateIfNecessary - // and/or updateComponent to do the actual update for consistency with - // other component types? - this._stringText = nextStringText; - var commentNodes = this.getHostNode(); - DOMChildrenOperations.replaceDelimitedText(commentNodes[0], commentNodes[1], nextStringText); - } - } - }, - - getHostNode: function () { - var hostNode = this._commentNodes; - if (hostNode) { - return hostNode; - } - if (!this._closingComment) { - var openingComment = ReactDOMComponentTree.getNodeFromInstance(this); - var node = openingComment.nextSibling; - while (true) { - !(node != null) ? "development" !== 'production' ? invariant(false, 'Missing closing comment for text component %s', this._domID) : _prodInvariant('67', this._domID) : void 0; - if (node.nodeType === 8 && node.nodeValue === ' /react-text ') { - this._closingComment = node; - break; - } - node = node.nextSibling; - } - } - hostNode = [this._hostNode, this._closingComment]; - this._commentNodes = hostNode; - return hostNode; - }, - - unmountComponent: function () { - this._closingComment = null; - this._commentNodes = null; - ReactDOMComponentTree.uncacheNode(this); - } - -}); - -module.exports = ReactDOMTextComponent; -},{"10":10,"109":109,"129":129,"135":135,"154":154,"162":162,"35":35,"8":8}],49:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _prodInvariant = _dereq_(129), - _assign = _dereq_(162); - -var ReactControlledValuePropTypes = _dereq_(31); -var ReactDOMComponentTree = _dereq_(35); - -var invariant = _dereq_(154); -var warning = _dereq_(161); - -var didWarnValDefaultVal = false; - -/** - * Implements a <textarea> host component that allows setting `value`, and - * `defaultValue`. This differs from the traditional DOM API because value is - * usually set as PCDATA children. - * - * If `value` is not supplied (or null/undefined), user actions that affect the - * value will trigger updates to the element. - * - * If `value` is supplied (and not null/undefined), the rendered element will - * not trigger updates to the element. Instead, the `value` prop must change in - * order for the rendered element to be updated. - * - * The rendered element will be initialized with an empty value, the prop - * `defaultValue` if specified, or the children content (deprecated). - */ -var ReactDOMTextarea = { - getHostProps: function (inst, props) { - !(props.dangerouslySetInnerHTML == null) ? "development" !== 'production' ? invariant(false, '`dangerouslySetInnerHTML` does not make sense on <textarea>.') : _prodInvariant('91') : void 0; - - // Always set children to the same thing. In IE9, the selection range will - // get reset if `textContent` is mutated. We could add a check in setTextContent - // to only set the value if/when the value differs from the node value (which would - // completely solve this IE9 bug), but Sebastian+Ben seemed to like this solution. - // The value can be a boolean or object so that's why it's forced to be a string. - var hostProps = _assign({}, props, { - value: undefined, - defaultValue: undefined, - children: '' + inst._wrapperState.initialValue - }); - - return hostProps; - }, - - mountWrapper: function (inst, props) { - if ("development" !== 'production') { - ReactControlledValuePropTypes.checkPropTypes('textarea', props, inst._currentElement._owner); - if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValDefaultVal) { - "development" !== 'production' ? warning(false, 'Textarea elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled textarea ' + 'and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components') : void 0; - didWarnValDefaultVal = true; - } - } - - var value = props.value; - var initialValue = value; - - // Only bother fetching default value if we're going to use it - if (value == null) { - var defaultValue = props.defaultValue; - // TODO (yungsters): Remove support for children content in <textarea>. - var children = props.children; - if (children != null) { - if ("development" !== 'production') { - "development" !== 'production' ? warning(false, 'Use the `defaultValue` or `value` props instead of setting ' + 'children on <textarea>.') : void 0; - } - !(defaultValue == null) ? "development" !== 'production' ? invariant(false, 'If you supply `defaultValue` on a <textarea>, do not pass children.') : _prodInvariant('92') : void 0; - if (Array.isArray(children)) { - !(children.length <= 1) ? "development" !== 'production' ? invariant(false, '<textarea> can only have at most one child.') : _prodInvariant('93') : void 0; - children = children[0]; - } - - defaultValue = '' + children; - } - if (defaultValue == null) { - defaultValue = ''; - } - initialValue = defaultValue; - } - - inst._wrapperState = { - initialValue: '' + initialValue, - listeners: null - }; - }, - - updateWrapper: function (inst) { - var props = inst._currentElement.props; - - var node = ReactDOMComponentTree.getNodeFromInstance(inst); - var value = props.value; - if (value != null) { - // Cast `value` to a string to ensure the value is set correctly. While - // browsers typically do this as necessary, jsdom doesn't. - var newValue = '' + value; - - // To avoid side effects (such as losing text selection), only set value if changed - if (newValue !== node.value) { - node.value = newValue; - } - if (props.defaultValue == null) { - node.defaultValue = newValue; - } - } - if (props.defaultValue != null) { - node.defaultValue = props.defaultValue; - } - }, - - postMountWrapper: function (inst) { - // This is in postMount because we need access to the DOM node, which is not - // available until after the component has mounted. - var node = ReactDOMComponentTree.getNodeFromInstance(inst); - var textContent = node.textContent; - - // Only set node.value if textContent is equal to the expected - // initial value. In IE10/IE11 there is a bug where the placeholder attribute - // will populate textContent as well. - // https://developer.microsoft.com/microsoft-edge/platform/issues/101525/ - if (textContent === inst._wrapperState.initialValue) { - node.value = textContent; - } - }, - - restoreControlledState: function (inst) { - if (inst._rootNodeID) { - // DOM component is still mounted; update - ReactDOMTextarea.updateWrapper(inst); - } - } - -}; - -module.exports = ReactDOMTextarea; -},{"129":129,"154":154,"161":161,"162":162,"31":31,"35":35}],50:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _assign = _dereq_(162); - -var ReactDOM = _dereq_(32); - -var ReactDOMUMDEntry = _assign({ - __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: { - ReactInstanceMap: _dereq_(64) - } -}, ReactDOM); - -if ("development" !== 'production') { - _assign(ReactDOMUMDEntry.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, { - // ReactPerf and ReactTestUtils currently only work with the DOM renderer - // so we expose them from here, but only in DEV mode. - ReactPerf: _dereq_(72), - ReactTestUtils: _dereq_(80) - }); -} - -module.exports = ReactDOMUMDEntry; -},{"162":162,"32":32,"64":64,"72":72,"80":80}],51:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var DOMProperty = _dereq_(12); -var EventPluginRegistry = _dereq_(18); -var ReactComponentTreeHook = _dereq_(136); - -var warning = _dereq_(161); - -if ("development" !== 'production') { - var reactProps = { - children: true, - dangerouslySetInnerHTML: true, - key: true, - ref: true, - - autoFocus: true, - defaultValue: true, - defaultChecked: true, - innerHTML: true, - suppressContentEditableWarning: true, - onFocusIn: true, - onFocusOut: true - }; - var warnedProperties = {}; - - var validateProperty = function (tagName, name, debugID) { - if (DOMProperty.properties.hasOwnProperty(name) || DOMProperty.isCustomAttribute(name)) { - return true; - } - if (reactProps.hasOwnProperty(name) && reactProps[name] || warnedProperties.hasOwnProperty(name) && warnedProperties[name]) { - return true; - } - if (EventPluginRegistry.registrationNameModules.hasOwnProperty(name)) { - return true; - } - warnedProperties[name] = true; - var lowerCasedName = name.toLowerCase(); - - // data-* attributes should be lowercase; suggest the lowercase version - var standardName = DOMProperty.isCustomAttribute(lowerCasedName) ? lowerCasedName : DOMProperty.getPossibleStandardName.hasOwnProperty(lowerCasedName) ? DOMProperty.getPossibleStandardName[lowerCasedName] : null; - - var registrationName = EventPluginRegistry.possibleRegistrationNames.hasOwnProperty(lowerCasedName) ? EventPluginRegistry.possibleRegistrationNames[lowerCasedName] : null; - - if (standardName != null) { - "development" !== 'production' ? warning(false, 'Unknown DOM property %s. Did you mean %s?%s', name, standardName, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0; - return true; - } else if (registrationName != null) { - "development" !== 'production' ? warning(false, 'Unknown event handler property %s. Did you mean `%s`?%s', name, registrationName, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0; - return true; - } else { - // We were unable to guess which prop the user intended. - // It is likely that the user was just blindly spreading/forwarding props - // Components should be careful to only render valid props/attributes. - // Warning will be invoked in warnUnknownProperties to allow grouping. - return false; - } - }; -} - -var warnUnknownProperties = function (debugID, element) { - var unknownProps = []; - for (var key in element.props) { - var isValid = validateProperty(element.type, key, debugID); - if (!isValid) { - unknownProps.push(key); - } - } - - var unknownPropString = unknownProps.map(function (prop) { - return '`' + prop + '`'; - }).join(', '); - - if (unknownProps.length === 1) { - "development" !== 'production' ? warning(false, 'Unknown prop %s on <%s> tag. Remove this prop from the element. ' + 'For details, see https://fb.me/react-unknown-prop%s', unknownPropString, element.type, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0; - } else if (unknownProps.length > 1) { - "development" !== 'production' ? warning(false, 'Unknown props %s on <%s> tag. Remove these props from the element. ' + 'For details, see https://fb.me/react-unknown-prop%s', unknownPropString, element.type, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0; - } -}; - -function handleElement(debugID, element) { - if (element == null || typeof element.type !== 'string') { - return; - } - if (element.type.indexOf('-') >= 0 || element.props.is) { - return; - } - warnUnknownProperties(debugID, element); -} - -var ReactDOMUnknownPropertyHook = { - onBeforeMountComponent: function (debugID, element) { - handleElement(debugID, element); - }, - onBeforeUpdateComponent: function (debugID, element) { - handleElement(debugID, element); - } -}; - -module.exports = ReactDOMUnknownPropertyHook; -},{"12":12,"136":136,"161":161,"18":18}],52:[function(_dereq_,module,exports){ -/** - * Copyright 2016-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -'use strict'; - -var ReactInvalidSetStateWarningHook = _dereq_(66); -var ReactHostOperationHistoryHook = _dereq_(62); -var ReactComponentTreeHook = _dereq_(136); -var ExecutionEnvironment = _dereq_(140); - -var performanceNow = _dereq_(159); -var warning = _dereq_(161); - -var hooks = []; -var didHookThrowForEvent = {}; - -function callHook(event, fn, context, arg1, arg2, arg3, arg4, arg5) { - try { - fn.call(context, arg1, arg2, arg3, arg4, arg5); - } catch (e) { - "development" !== 'production' ? warning(didHookThrowForEvent[event], 'Exception thrown by hook while handling %s: %s', event, e + '\n' + e.stack) : void 0; - didHookThrowForEvent[event] = true; - } -} - -function emitEvent(event, arg1, arg2, arg3, arg4, arg5) { - for (var i = 0; i < hooks.length; i++) { - var hook = hooks[i]; - var fn = hook[event]; - if (fn) { - callHook(event, fn, hook, arg1, arg2, arg3, arg4, arg5); - } - } -} - -var isProfiling = false; -var flushHistory = []; -var lifeCycleTimerStack = []; -var currentFlushNesting = 0; -var currentFlushMeasurements = []; -var currentFlushStartTime = 0; -var currentTimerDebugID = null; -var currentTimerStartTime = 0; -var currentTimerNestedFlushDuration = 0; -var currentTimerType = null; - -var lifeCycleTimerHasWarned = false; - -function clearHistory() { - ReactComponentTreeHook.purgeUnmountedComponents(); - ReactHostOperationHistoryHook.clearHistory(); -} - -function getTreeSnapshot(registeredIDs) { - return registeredIDs.reduce(function (tree, id) { - var ownerID = ReactComponentTreeHook.getOwnerID(id); - var parentID = ReactComponentTreeHook.getParentID(id); - tree[id] = { - displayName: ReactComponentTreeHook.getDisplayName(id), - text: ReactComponentTreeHook.getText(id), - updateCount: ReactComponentTreeHook.getUpdateCount(id), - childIDs: ReactComponentTreeHook.getChildIDs(id), - // Text nodes don't have owners but this is close enough. - ownerID: ownerID || parentID && ReactComponentTreeHook.getOwnerID(parentID) || 0, - parentID: parentID - }; - return tree; - }, {}); -} - -function resetMeasurements() { - var previousStartTime = currentFlushStartTime; - var previousMeasurements = currentFlushMeasurements; - var previousOperations = ReactHostOperationHistoryHook.getHistory(); - - if (currentFlushNesting === 0) { - currentFlushStartTime = 0; - currentFlushMeasurements = []; - clearHistory(); - return; - } - - if (previousMeasurements.length || previousOperations.length) { - var registeredIDs = ReactComponentTreeHook.getRegisteredIDs(); - flushHistory.push({ - duration: performanceNow() - previousStartTime, - measurements: previousMeasurements || [], - operations: previousOperations || [], - treeSnapshot: getTreeSnapshot(registeredIDs) - }); - } - - clearHistory(); - currentFlushStartTime = performanceNow(); - currentFlushMeasurements = []; -} - -function checkDebugID(debugID) { - var allowRoot = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - - if (allowRoot && debugID === 0) { - return; - } - if (!debugID) { - "development" !== 'production' ? warning(false, 'ReactDebugTool: debugID may not be empty.') : void 0; - } -} - -function beginLifeCycleTimer(debugID, timerType) { - if (currentFlushNesting === 0) { - return; - } - if (currentTimerType && !lifeCycleTimerHasWarned) { - "development" !== 'production' ? warning(false, 'There is an internal error in the React performance measurement code. ' + 'Did not expect %s timer to start while %s timer is still in ' + 'progress for %s instance.', timerType, currentTimerType || 'no', debugID === currentTimerDebugID ? 'the same' : 'another') : void 0; - lifeCycleTimerHasWarned = true; - } - currentTimerStartTime = performanceNow(); - currentTimerNestedFlushDuration = 0; - currentTimerDebugID = debugID; - currentTimerType = timerType; -} - -function endLifeCycleTimer(debugID, timerType) { - if (currentFlushNesting === 0) { - return; - } - if (currentTimerType !== timerType && !lifeCycleTimerHasWarned) { - "development" !== 'production' ? warning(false, 'There is an internal error in the React performance measurement code. ' + 'We did not expect %s timer to stop while %s timer is still in ' + 'progress for %s instance. Please report this as a bug in React.', timerType, currentTimerType || 'no', debugID === currentTimerDebugID ? 'the same' : 'another') : void 0; - lifeCycleTimerHasWarned = true; - } - if (isProfiling) { - currentFlushMeasurements.push({ - timerType: timerType, - instanceID: debugID, - duration: performanceNow() - currentTimerStartTime - currentTimerNestedFlushDuration - }); - } - currentTimerStartTime = 0; - currentTimerNestedFlushDuration = 0; - currentTimerDebugID = null; - currentTimerType = null; -} - -function pauseCurrentLifeCycleTimer() { - var currentTimer = { - startTime: currentTimerStartTime, - nestedFlushStartTime: performanceNow(), - debugID: currentTimerDebugID, - timerType: currentTimerType - }; - lifeCycleTimerStack.push(currentTimer); - currentTimerStartTime = 0; - currentTimerNestedFlushDuration = 0; - currentTimerDebugID = null; - currentTimerType = null; -} - -function resumeCurrentLifeCycleTimer() { - var _lifeCycleTimerStack$ = lifeCycleTimerStack.pop(); - - var startTime = _lifeCycleTimerStack$.startTime; - var nestedFlushStartTime = _lifeCycleTimerStack$.nestedFlushStartTime; - var debugID = _lifeCycleTimerStack$.debugID; - var timerType = _lifeCycleTimerStack$.timerType; - - var nestedFlushDuration = performanceNow() - nestedFlushStartTime; - currentTimerStartTime = startTime; - currentTimerNestedFlushDuration += nestedFlushDuration; - currentTimerDebugID = debugID; - currentTimerType = timerType; -} - -var lastMarkTimeStamp = 0; -var canUsePerformanceMeasure = typeof performance !== 'undefined' && typeof performance.mark === 'function' && typeof performance.clearMarks === 'function' && typeof performance.measure === 'function' && typeof performance.clearMeasures === 'function'; - -function shouldMark(debugID) { - if (!isProfiling || !canUsePerformanceMeasure) { - return false; - } - var element = ReactComponentTreeHook.getElement(debugID); - if (element == null || typeof element !== 'object') { - return false; - } - var isHostElement = typeof element.type === 'string'; - if (isHostElement) { - return false; - } - return true; -} - -function markBegin(debugID, markType) { - if (!shouldMark(debugID)) { - return; - } - - var markName = debugID + '::' + markType; - lastMarkTimeStamp = performanceNow(); - performance.mark(markName); -} - -function markEnd(debugID, markType) { - if (!shouldMark(debugID)) { - return; - } - - var markName = debugID + '::' + markType; - var displayName = ReactComponentTreeHook.getDisplayName(debugID) || 'Unknown'; - - // Chrome has an issue of dropping markers recorded too fast: - // https://bugs.chromium.org/p/chromium/issues/detail?id=640652 - // To work around this, we will not report very small measurements. - // I determined the magic number by tweaking it back and forth. - // 0.05ms was enough to prevent the issue, but I set it to 0.1ms to be safe. - // When the bug is fixed, we can `measure()` unconditionally if we want to. - var timeStamp = performanceNow(); - if (timeStamp - lastMarkTimeStamp > 0.1) { - var measurementName = displayName + ' [' + markType + ']'; - performance.measure(measurementName, markName); - } - - performance.clearMarks(markName); - performance.clearMeasures(measurementName); -} - -var ReactDebugTool = { - addHook: function (hook) { - hooks.push(hook); - }, - removeHook: function (hook) { - for (var i = 0; i < hooks.length; i++) { - if (hooks[i] === hook) { - hooks.splice(i, 1); - i--; - } - } - }, - isProfiling: function () { - return isProfiling; - }, - beginProfiling: function () { - if (isProfiling) { - return; - } - - isProfiling = true; - flushHistory.length = 0; - resetMeasurements(); - ReactDebugTool.addHook(ReactHostOperationHistoryHook); - }, - endProfiling: function () { - if (!isProfiling) { - return; - } - - isProfiling = false; - resetMeasurements(); - ReactDebugTool.removeHook(ReactHostOperationHistoryHook); - }, - getFlushHistory: function () { - return flushHistory; - }, - onBeginFlush: function () { - currentFlushNesting++; - resetMeasurements(); - pauseCurrentLifeCycleTimer(); - emitEvent('onBeginFlush'); - }, - onEndFlush: function () { - resetMeasurements(); - currentFlushNesting--; - resumeCurrentLifeCycleTimer(); - emitEvent('onEndFlush'); - }, - onBeginLifeCycleTimer: function (debugID, timerType) { - checkDebugID(debugID); - emitEvent('onBeginLifeCycleTimer', debugID, timerType); - markBegin(debugID, timerType); - beginLifeCycleTimer(debugID, timerType); - }, - onEndLifeCycleTimer: function (debugID, timerType) { - checkDebugID(debugID); - endLifeCycleTimer(debugID, timerType); - markEnd(debugID, timerType); - emitEvent('onEndLifeCycleTimer', debugID, timerType); - }, - onBeginProcessingChildContext: function () { - emitEvent('onBeginProcessingChildContext'); - }, - onEndProcessingChildContext: function () { - emitEvent('onEndProcessingChildContext'); - }, - onHostOperation: function (operation) { - checkDebugID(operation.instanceID); - emitEvent('onHostOperation', operation); - }, - onSetState: function () { - emitEvent('onSetState'); - }, - onSetChildren: function (debugID, childDebugIDs) { - checkDebugID(debugID); - childDebugIDs.forEach(checkDebugID); - emitEvent('onSetChildren', debugID, childDebugIDs); - }, - onBeforeMountComponent: function (debugID, element, parentDebugID) { - checkDebugID(debugID); - checkDebugID(parentDebugID, true); - emitEvent('onBeforeMountComponent', debugID, element, parentDebugID); - markBegin(debugID, 'mount'); - }, - onMountComponent: function (debugID) { - checkDebugID(debugID); - markEnd(debugID, 'mount'); - emitEvent('onMountComponent', debugID); - }, - onBeforeUpdateComponent: function (debugID, element) { - checkDebugID(debugID); - emitEvent('onBeforeUpdateComponent', debugID, element); - markBegin(debugID, 'update'); - }, - onUpdateComponent: function (debugID) { - checkDebugID(debugID); - markEnd(debugID, 'update'); - emitEvent('onUpdateComponent', debugID); - }, - onBeforeUnmountComponent: function (debugID) { - checkDebugID(debugID); - emitEvent('onBeforeUnmountComponent', debugID); - markBegin(debugID, 'unmount'); - }, - onUnmountComponent: function (debugID) { - checkDebugID(debugID); - markEnd(debugID, 'unmount'); - emitEvent('onUnmountComponent', debugID); - }, - onTestEvent: function () { - emitEvent('onTestEvent'); - } -}; - -ReactDebugTool.addHook(ReactInvalidSetStateWarningHook); -ReactDebugTool.addHook(ReactComponentTreeHook); -var url = ExecutionEnvironment.canUseDOM && window.location.href || ''; -if (/[?&]react_perf\b/.test(url)) { - ReactDebugTool.beginProfiling(); -} - -module.exports = ReactDebugTool; -},{"136":136,"140":140,"159":159,"161":161,"62":62,"66":66}],53:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _assign = _dereq_(162); - -var ReactUpdates = _dereq_(84); -var Transaction = _dereq_(102); - -var emptyFunction = _dereq_(146); - -var RESET_BATCHED_UPDATES = { - initialize: emptyFunction, - close: function () { - ReactDefaultBatchingStrategy.isBatchingUpdates = false; - } -}; - -var FLUSH_BATCHED_UPDATES = { - initialize: emptyFunction, - close: ReactUpdates.flushBatchedUpdates.bind(ReactUpdates) -}; - -var TRANSACTION_WRAPPERS = [FLUSH_BATCHED_UPDATES, RESET_BATCHED_UPDATES]; - -function ReactDefaultBatchingStrategyTransaction() { - this.reinitializeTransaction(); -} - -_assign(ReactDefaultBatchingStrategyTransaction.prototype, Transaction, { - getTransactionWrappers: function () { - return TRANSACTION_WRAPPERS; - } -}); - -var transaction = new ReactDefaultBatchingStrategyTransaction(); - -var ReactDefaultBatchingStrategy = { - isBatchingUpdates: false, - - /** - * Call the provided function in a context within which calls to `setState` - * and friends are batched such that components aren't updated unnecessarily. - */ - batchedUpdates: function (callback, a, b, c, d, e) { - var alreadyBatchingUpdates = ReactDefaultBatchingStrategy.isBatchingUpdates; - - ReactDefaultBatchingStrategy.isBatchingUpdates = true; - - // The code is written this way to avoid extra allocations - if (alreadyBatchingUpdates) { - return callback(a, b, c, d, e); - } else { - return transaction.perform(callback, null, a, b, c, d, e); - } - } -}; - -module.exports = ReactDefaultBatchingStrategy; -},{"102":102,"146":146,"162":162,"84":84}],54:[function(_dereq_,module,exports){ -/** - * Copyright 2014-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -'use strict'; - -// The Symbol used to tag the ReactElement type. If there is no native Symbol -// nor polyfill, then a plain number is used for performance. - -var REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol['for']('react.element') || 0xeac7; - -module.exports = REACT_ELEMENT_TYPE; -},{}],55:[function(_dereq_,module,exports){ -/** - * Copyright 2014-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var emptyComponentFactory; - -var ReactEmptyComponentInjection = { - injectEmptyComponentFactory: function (factory) { - emptyComponentFactory = factory; - } -}; - -var ReactEmptyComponent = { - create: function (instantiate) { - return emptyComponentFactory(instantiate); - } -}; - -ReactEmptyComponent.injection = ReactEmptyComponentInjection; - -module.exports = ReactEmptyComponent; -},{}],56:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -'use strict'; - -var caughtError = null; - -/** - * Call a function while guarding against errors that happens within it. - * - * @param {String} name of the guard to use for logging or debugging - * @param {Function} func The function to invoke - * @param {*} a Argument - */ -function invokeGuardedCallback(name, func, a) { - try { - func(a); - } catch (x) { - if (caughtError === null) { - caughtError = x; - } - } -} - -var ReactErrorUtils = { - invokeGuardedCallback: invokeGuardedCallback, - - /** - * Invoked by ReactTestUtils.Simulate so that any errors thrown by the event - * handler are sure to be rethrown by rethrowCaughtError. - */ - invokeGuardedCallbackWithCatch: invokeGuardedCallback, - - /** - * During execution of guarded functions we will capture the first error which - * we will rethrow to be handled by the top level error handler. - */ - rethrowCaughtError: function () { - if (caughtError) { - var error = caughtError; - caughtError = null; - throw error; - } - } -}; - -if ("development" !== 'production') { - /** - * To help development we can get better devtools integration by simulating a - * real browser event. - */ - if (typeof window !== 'undefined' && typeof window.dispatchEvent === 'function' && typeof document !== 'undefined' && typeof document.createEvent === 'function') { - var fakeNode = document.createElement('react'); - ReactErrorUtils.invokeGuardedCallback = function (name, func, a) { - var boundFunc = func.bind(null, a); - var evtType = 'react-' + name; - fakeNode.addEventListener(evtType, boundFunc, false); - var evt = document.createEvent('Event'); - evt.initEvent(evtType, false, false); - fakeNode.dispatchEvent(evt); - fakeNode.removeEventListener(evtType, boundFunc, false); - }; - } -} - -module.exports = ReactErrorUtils; -},{}],57:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var EventPluginHub = _dereq_(17); - -function runEventQueueInBatch(events) { - EventPluginHub.enqueueEvents(events); - EventPluginHub.processEventQueue(false); -} - -var ReactEventEmitterMixin = { - - /** - * Streams a fired top-level event to `EventPluginHub` where plugins have the - * opportunity to create `ReactEvent`s to be dispatched. - */ - handleTopLevel: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) { - var events = EventPluginHub.extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget); - runEventQueueInBatch(events); - } -}; - -module.exports = ReactEventEmitterMixin; -},{"17":17}],58:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _assign = _dereq_(162); - -var EventListener = _dereq_(139); -var ExecutionEnvironment = _dereq_(140); -var PooledClass = _dereq_(24); -var ReactDOMComponentTree = _dereq_(35); -var ReactGenericBatching = _dereq_(60); - -var getEventTarget = _dereq_(117); -var getUnboundedScrollPosition = _dereq_(151); - -/** - * Find the deepest React component completely containing the root of the - * passed-in instance (for use when entire React trees are nested within each - * other). If React trees are not nested, returns null. - */ -function findParent(inst) { - // TODO: It may be a good idea to cache this to prevent unnecessary DOM - // traversal, but caching is difficult to do correctly without using a - // mutation observer to listen for all DOM changes. - while (inst._hostParent) { - inst = inst._hostParent; - } - var rootNode = ReactDOMComponentTree.getNodeFromInstance(inst); - var container = rootNode.parentNode; - return ReactDOMComponentTree.getClosestInstanceFromNode(container); -} - -// Used to store ancestor hierarchy in top level callback -function TopLevelCallbackBookKeeping(topLevelType, nativeEvent, targetInst) { - this.topLevelType = topLevelType; - this.nativeEvent = nativeEvent; - this.targetInst = targetInst; - this.ancestors = []; -} -_assign(TopLevelCallbackBookKeeping.prototype, { - destructor: function () { - this.topLevelType = null; - this.nativeEvent = null; - this.targetInst = null; - this.ancestors.length = 0; - } -}); -PooledClass.addPoolingTo(TopLevelCallbackBookKeeping, PooledClass.threeArgumentPooler); - -function handleTopLevelImpl(bookKeeping) { - var targetInst = bookKeeping.targetInst; - - // Loop through the hierarchy, in case there's any nested components. - // It's important that we build the array of ancestors before calling any - // event handlers, because event handlers can modify the DOM, leading to - // inconsistencies with ReactMount's node cache. See #1105. - var ancestor = targetInst; - do { - bookKeeping.ancestors.push(ancestor); - ancestor = ancestor && findParent(ancestor); - } while (ancestor); - - for (var i = 0; i < bookKeeping.ancestors.length; i++) { - targetInst = bookKeeping.ancestors[i]; - ReactEventListener._handleTopLevel(bookKeeping.topLevelType, targetInst, bookKeeping.nativeEvent, getEventTarget(bookKeeping.nativeEvent)); - } -} - -function scrollValueMonitor(cb) { - var scrollPosition = getUnboundedScrollPosition(window); - cb(scrollPosition); -} - -var ReactEventListener = { - _enabled: true, - _handleTopLevel: null, - - WINDOW_HANDLE: ExecutionEnvironment.canUseDOM ? window : null, - - setHandleTopLevel: function (handleTopLevel) { - ReactEventListener._handleTopLevel = handleTopLevel; - }, - - setEnabled: function (enabled) { - ReactEventListener._enabled = !!enabled; - }, - - isEnabled: function () { - return ReactEventListener._enabled; - }, - - /** - * Traps top-level events by using event bubbling. - * - * @param {string} topLevelType Record from `EventConstants`. - * @param {string} handlerBaseName Event name (e.g. "click"). - * @param {object} element Element on which to attach listener. - * @return {?object} An object with a remove function which will forcefully - * remove the listener. - * @internal - */ - trapBubbledEvent: function (topLevelType, handlerBaseName, element) { - if (!element) { - return null; - } - return EventListener.listen(element, handlerBaseName, ReactEventListener.dispatchEvent.bind(null, topLevelType)); - }, - - /** - * Traps a top-level event by using event capturing. - * - * @param {string} topLevelType Record from `EventConstants`. - * @param {string} handlerBaseName Event name (e.g. "click"). - * @param {object} element Element on which to attach listener. - * @return {?object} An object with a remove function which will forcefully - * remove the listener. - * @internal - */ - trapCapturedEvent: function (topLevelType, handlerBaseName, element) { - if (!element) { - return null; - } - return EventListener.capture(element, handlerBaseName, ReactEventListener.dispatchEvent.bind(null, topLevelType)); - }, - - monitorScrollValue: function (refresh) { - var callback = scrollValueMonitor.bind(null, refresh); - EventListener.listen(window, 'scroll', callback); - }, - - dispatchEvent: function (topLevelType, nativeEvent) { - if (!ReactEventListener._enabled) { - return; - } - - var nativeEventTarget = getEventTarget(nativeEvent); - var targetInst = ReactDOMComponentTree.getClosestInstanceFromNode(nativeEventTarget); - - var bookKeeping = TopLevelCallbackBookKeeping.getPooled(topLevelType, nativeEvent, targetInst); - - try { - // Event queue being processed in the same cycle allows - // `preventDefault`. - ReactGenericBatching.batchedUpdates(handleTopLevelImpl, bookKeeping); - } finally { - TopLevelCallbackBookKeeping.release(bookKeeping); - } - } -}; - -module.exports = ReactEventListener; -},{"117":117,"139":139,"140":140,"151":151,"162":162,"24":24,"35":35,"60":60}],59:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -'use strict'; - -var ReactFeatureFlags = { - // When true, call console.time() before and .timeEnd() after each top-level - // render (both initial renders and updates). Useful when looking at prod-mode - // timeline profiles in Chrome, for example. - logTopLevelRenders: false -}; - -module.exports = ReactFeatureFlags; -},{}],60:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var ReactControlledComponent = _dereq_(30); - -// Used as a way to call batchedUpdates when we don't know if we're in a Fiber -// or Stack context. Such as when we're dispatching events or if third party -// libraries need to call batchedUpdates. Eventually, this API will go away when -// everything is batched by default. We'll then have a similar API to opt-out of -// scheduled work and instead do synchronous work. - -// Defaults -var stackBatchedUpdates = function (fn, a, b, c, d, e) { - fn(a, b, c, d, e); -}; -var fiberPerformSynchronousWork = function (fn, bookkeeping) { - fn(bookkeeping); -}; - -function performFiberBatchedUpdates(fn, bookkeeping) { - // If we have Fiber loaded, we need to wrap this in a batching call so that - // Fiber can apply its default priority for this call. - fiberPerformSynchronousWork(fn, bookkeeping); -} -function batchedUpdates(fn, bookkeeping) { - // We first perform work with the stack batching strategy, by passing our - // indirection to it. - stackBatchedUpdates(performFiberBatchedUpdates, fn, bookkeeping); -} - -var isNestingBatched = false; -function batchedUpdatesWithControlledComponents(fn, bookkeeping) { - if (isNestingBatched) { - // If we are currently inside another batch, we need to wait until it - // fully completes before restoring state. Therefore, we add the target to - // a queue of work. - batchedUpdates(fn, bookkeeping); - return; - } - isNestingBatched = true; - try { - batchedUpdates(fn, bookkeeping); - } finally { - // Here we wait until all updates have propagated, which is important - // when using controlled components within layers: - // https://github.com/facebook/react/issues/1698 - // Then we restore state of any controlled component. - isNestingBatched = false; - ReactControlledComponent.restoreStateIfNeeded(); - } -} - -var ReactGenericBatchingInjection = { - injectStackBatchedUpdates: function (_batchedUpdates) { - stackBatchedUpdates = _batchedUpdates; - }, - injectFiberPerformSynchronousWork: function (_performSynchronousWork) { - fiberPerformSynchronousWork = _performSynchronousWork; - } -}; - -var ReactGenericBatching = { - batchedUpdates: batchedUpdatesWithControlledComponents, - injection: ReactGenericBatchingInjection -}; - -module.exports = ReactGenericBatching; -},{"30":30}],61:[function(_dereq_,module,exports){ -/** - * Copyright 2014-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _prodInvariant = _dereq_(129); - -var invariant = _dereq_(154); - -var genericComponentClass = null; -var textComponentClass = null; - -var ReactHostComponentInjection = { - // This accepts a class that receives the tag string. This is a catch all - // that can render any kind of tag. - injectGenericComponentClass: function (componentClass) { - genericComponentClass = componentClass; - }, - // This accepts a text component class that takes the text string to be - // rendered as props. - injectTextComponentClass: function (componentClass) { - textComponentClass = componentClass; - } -}; - -/** - * Get a host internal component class for a specific tag. - * - * @param {ReactElement} element The element to create. - * @return {function} The internal class constructor function. - */ -function createInternalComponent(element) { - !genericComponentClass ? "development" !== 'production' ? invariant(false, 'There is no registered component for the tag %s', element.type) : _prodInvariant('111', element.type) : void 0; - return new genericComponentClass(element); -} - -/** - * @param {ReactText} text - * @return {ReactComponent} - */ -function createInstanceForText(text) { - return new textComponentClass(text); -} - -/** - * @param {ReactComponent} component - * @return {boolean} - */ -function isTextComponent(component) { - return component instanceof textComponentClass; -} - -var ReactHostComponent = { - createInternalComponent: createInternalComponent, - createInstanceForText: createInstanceForText, - isTextComponent: isTextComponent, - injection: ReactHostComponentInjection -}; - -module.exports = ReactHostComponent; -},{"129":129,"154":154}],62:[function(_dereq_,module,exports){ -/** - * Copyright 2016-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -'use strict'; - -var history = []; - -var ReactHostOperationHistoryHook = { - onHostOperation: function (operation) { - history.push(operation); - }, - clearHistory: function () { - if (ReactHostOperationHistoryHook._preventClearing) { - // Should only be used for tests. - return; - } - - history = []; - }, - getHistory: function () { - return history; - } -}; - -module.exports = ReactHostOperationHistoryHook; -},{}],63:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var ReactDOMSelection = _dereq_(46); - -var containsNode = _dereq_(143); -var focusNode = _dereq_(148); -var getActiveElement = _dereq_(149); - -function isInDocument(node) { - return containsNode(document.documentElement, node); -} - -/** - * @ReactInputSelection: React input selection module. Based on Selection.js, - * but modified to be suitable for react and has a couple of bug fixes (doesn't - * assume buttons have range selections allowed). - * Input selection module for React. - */ -var ReactInputSelection = { - - hasSelectionCapabilities: function (elem) { - var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase(); - return nodeName && (nodeName === 'input' && elem.type === 'text' || nodeName === 'textarea' || elem.contentEditable === 'true'); - }, - - getSelectionInformation: function () { - var focusedElem = getActiveElement(); - return { - focusedElem: focusedElem, - selectionRange: ReactInputSelection.hasSelectionCapabilities(focusedElem) ? ReactInputSelection.getSelection(focusedElem) : null - }; - }, - - /** - * @restoreSelection: If any selection information was potentially lost, - * restore it. This is useful when performing operations that could remove dom - * nodes and place them back in, resulting in focus being lost. - */ - restoreSelection: function (priorSelectionInformation) { - var curFocusedElem = getActiveElement(); - var priorFocusedElem = priorSelectionInformation.focusedElem; - var priorSelectionRange = priorSelectionInformation.selectionRange; - if (curFocusedElem !== priorFocusedElem && isInDocument(priorFocusedElem)) { - if (ReactInputSelection.hasSelectionCapabilities(priorFocusedElem)) { - ReactInputSelection.setSelection(priorFocusedElem, priorSelectionRange); - } - focusNode(priorFocusedElem); - } - }, - - /** - * @getSelection: Gets the selection bounds of a focused textarea, input or - * contentEditable node. - * -@input: Look up selection bounds of this input - * -@return {start: selectionStart, end: selectionEnd} - */ - getSelection: function (input) { - var selection; - - if ('selectionStart' in input) { - // Modern browser with input or textarea. - selection = { - start: input.selectionStart, - end: input.selectionEnd - }; - } else if (document.selection && input.nodeName && input.nodeName.toLowerCase() === 'input') { - // IE8 input. - var range = document.selection.createRange(); - // There can only be one selection per document in IE, so it must - // be in our element. - if (range.parentElement() === input) { - selection = { - start: -range.moveStart('character', -input.value.length), - end: -range.moveEnd('character', -input.value.length) - }; - } - } else { - // Content editable or old IE textarea. - selection = ReactDOMSelection.getOffsets(input); - } - - return selection || { start: 0, end: 0 }; - }, - - /** - * @setSelection: Sets the selection bounds of a textarea or input and focuses - * the input. - * -@input Set selection bounds of this input or textarea - * -@offsets Object of same form that is returned from get* - */ - setSelection: function (input, offsets) { - var start = offsets.start; - var end = offsets.end; - if (end === undefined) { - end = start; - } - - if ('selectionStart' in input) { - input.selectionStart = start; - input.selectionEnd = Math.min(end, input.value.length); - } else if (document.selection && input.nodeName && input.nodeName.toLowerCase() === 'input') { - var range = input.createTextRange(); - range.collapse(true); - range.moveStart('character', start); - range.moveEnd('character', end - start); - range.select(); - } else { - ReactDOMSelection.setOffsets(input, offsets); - } - } -}; - -module.exports = ReactInputSelection; -},{"143":143,"148":148,"149":149,"46":46}],64:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -/** - * `ReactInstanceMap` maintains a mapping from a public facing stateful - * instance (key) and the internal representation (value). This allows public - * methods to accept the user facing instance as an argument and map them back - * to internal methods. - */ - -// TODO: Replace this with ES6: var ReactInstanceMap = new Map(); - -var ReactInstanceMap = { - - /** - * This API should be called `delete` but we'd have to make sure to always - * transform these to strings for IE support. When this transform is fully - * supported we can rename it. - */ - remove: function (key) { - key._reactInternalInstance = undefined; - }, - - get: function (key) { - return key._reactInternalInstance; - }, - - has: function (key) { - return key._reactInternalInstance !== undefined; - }, - - set: function (key, value) { - key._reactInternalInstance = value; - } - -}; - -module.exports = ReactInstanceMap; -},{}],65:[function(_dereq_,module,exports){ -/** - * Copyright 2016-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -'use strict'; - -// Trust the developer to only use ReactInstrumentation with a __DEV__ check - -var debugTool = null; - -if ("development" !== 'production') { - var ReactDebugTool = _dereq_(52); - debugTool = ReactDebugTool; -} - -module.exports = { debugTool: debugTool }; -},{"52":52}],66:[function(_dereq_,module,exports){ -/** - * Copyright 2016-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -'use strict'; - -var warning = _dereq_(161); - -if ("development" !== 'production') { - var processingChildContext = false; - - var warnInvalidSetState = function () { - "development" !== 'production' ? warning(!processingChildContext, 'setState(...): Cannot call setState() inside getChildContext()') : void 0; - }; -} - -var ReactInvalidSetStateWarningHook = { - onBeginProcessingChildContext: function () { - processingChildContext = true; - }, - onEndProcessingChildContext: function () { - processingChildContext = false; - }, - onSetState: function () { - warnInvalidSetState(); - } -}; - -module.exports = ReactInvalidSetStateWarningHook; -},{"161":161}],67:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var adler32 = _dereq_(105); - -var TAG_END = /\/?>/; -var COMMENT_START = /^<\!\-\-/; - -var ReactMarkupChecksum = { - CHECKSUM_ATTR_NAME: 'data-react-checksum', - - /** - * @param {string} markup Markup string - * @return {string} Markup string with checksum attribute attached - */ - addChecksumToMarkup: function (markup) { - var checksum = adler32(markup); - - // Add checksum (handle both parent tags, comments and self-closing tags) - if (COMMENT_START.test(markup)) { - return markup; - } else { - return markup.replace(TAG_END, ' ' + ReactMarkupChecksum.CHECKSUM_ATTR_NAME + '="' + checksum + '"$&'); - } - }, - - /** - * @param {string} markup to use - * @param {DOMElement} element root React element - * @returns {boolean} whether or not the markup is the same - */ - canReuseMarkup: function (markup, element) { - var existingChecksum = element.getAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME); - existingChecksum = existingChecksum && parseInt(existingChecksum, 10); - var markupChecksum = adler32(markup); - return markupChecksum === existingChecksum; - } -}; - -module.exports = ReactMarkupChecksum; -},{"105":105}],68:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _prodInvariant = _dereq_(129); - -var DOMLazyTree = _dereq_(10); -var DOMProperty = _dereq_(12); -var React = _dereq_(138); -var ReactBrowserEventEmitter = _dereq_(25); -var ReactCurrentOwner = _dereq_(137); -var ReactDOMComponentTree = _dereq_(35); -var ReactDOMContainerInfo = _dereq_(36); -var ReactDOMFeatureFlags = _dereq_(38); -var ReactFeatureFlags = _dereq_(59); -var ReactInstanceMap = _dereq_(64); -var ReactInstrumentation = _dereq_(65); -var ReactMarkupChecksum = _dereq_(67); -var ReactReconciler = _dereq_(75); -var ReactUpdateQueue = _dereq_(83); -var ReactUpdates = _dereq_(84); - -var emptyObject = _dereq_(147); -var instantiateReactComponent = _dereq_(125); -var invariant = _dereq_(154); -var setInnerHTML = _dereq_(131); -var shouldUpdateReactComponent = _dereq_(133); -var warning = _dereq_(161); - -var ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME; -var ROOT_ATTR_NAME = DOMProperty.ROOT_ATTRIBUTE_NAME; - -var ELEMENT_NODE_TYPE = 1; -var DOC_NODE_TYPE = 9; -var DOCUMENT_FRAGMENT_NODE_TYPE = 11; - -var instancesByReactRootID = {}; - -/** - * Finds the index of the first character - * that's not common between the two given strings. - * - * @return {number} the index of the character where the strings diverge - */ -function firstDifferenceIndex(string1, string2) { - var minLen = Math.min(string1.length, string2.length); - for (var i = 0; i < minLen; i++) { - if (string1.charAt(i) !== string2.charAt(i)) { - return i; - } - } - return string1.length === string2.length ? -1 : minLen; -} - -/** - * @param {DOMElement|DOMDocument} container DOM element that may contain - * a React component - * @return {?*} DOM element that may have the reactRoot ID, or null. - */ -function getReactRootElementInContainer(container) { - if (!container) { - return null; - } - - if (container.nodeType === DOC_NODE_TYPE) { - return container.documentElement; - } else { - return container.firstChild; - } -} - -function internalGetID(node) { - // If node is something like a window, document, or text node, none of - // which support attributes or a .getAttribute method, gracefully return - // the empty string, as if the attribute were missing. - return node.getAttribute && node.getAttribute(ATTR_NAME) || ''; -} - -/** - * Mounts this component and inserts it into the DOM. - * - * @param {ReactComponent} componentInstance The instance to mount. - * @param {DOMElement} container DOM element to mount into. - * @param {ReactReconcileTransaction} transaction - * @param {boolean} shouldReuseMarkup If true, do not insert markup - */ -function mountComponentIntoNode(wrapperInstance, container, transaction, shouldReuseMarkup, context) { - var markerName; - if (ReactFeatureFlags.logTopLevelRenders) { - var wrappedElement = wrapperInstance._currentElement.props.child; - var type = wrappedElement.type; - markerName = 'React mount: ' + (typeof type === 'string' ? type : type.displayName || type.name); - console.time(markerName); - } - - var markup = ReactReconciler.mountComponent(wrapperInstance, transaction, null, ReactDOMContainerInfo(wrapperInstance, container), context, 0 /* parentDebugID */ - ); - - if (markerName) { - console.timeEnd(markerName); - } - - wrapperInstance._renderedComponent._topLevelWrapper = wrapperInstance; - ReactMount._mountImageIntoNode(markup, container, wrapperInstance, shouldReuseMarkup, transaction); -} - -/** - * Batched mount. - * - * @param {ReactComponent} componentInstance The instance to mount. - * @param {DOMElement} container DOM element to mount into. - * @param {boolean} shouldReuseMarkup If true, do not insert markup - */ -function batchedMountComponentIntoNode(componentInstance, container, shouldReuseMarkup, context) { - var transaction = ReactUpdates.ReactReconcileTransaction.getPooled( - /* useCreateElement */ - !shouldReuseMarkup && ReactDOMFeatureFlags.useCreateElement); - transaction.perform(mountComponentIntoNode, null, componentInstance, container, transaction, shouldReuseMarkup, context); - ReactUpdates.ReactReconcileTransaction.release(transaction); -} - -/** - * Unmounts a component and removes it from the DOM. - * - * @param {ReactComponent} instance React component instance. - * @param {DOMElement} container DOM element to unmount from. - * @final - * @internal - * @see {ReactMount.unmountComponentAtNode} - */ -function unmountComponentFromNode(instance, container) { - if ("development" !== 'production') { - ReactInstrumentation.debugTool.onBeginFlush(); - } - ReactReconciler.unmountComponent(instance, false /* safely */ - , false /* skipLifecycle */ - ); - if ("development" !== 'production') { - ReactInstrumentation.debugTool.onEndFlush(); - } - - if (container.nodeType === DOC_NODE_TYPE) { - container = container.documentElement; - } - - // http://jsperf.com/emptying-a-node - while (container.lastChild) { - container.removeChild(container.lastChild); - } -} - -/** - * True if the supplied DOM node has a direct React-rendered child that is - * not a React root element. Useful for warning in `render`, - * `unmountComponentAtNode`, etc. - * - * @param {?DOMElement} node The candidate DOM node. - * @return {boolean} True if the DOM element contains a direct child that was - * rendered by React but is not a root element. - * @internal - */ -function hasNonRootReactChild(container) { - var rootEl = getReactRootElementInContainer(container); - if (rootEl) { - var inst = ReactDOMComponentTree.getInstanceFromNode(rootEl); - return !!(inst && inst._hostParent); - } -} - -/** - * True if the supplied DOM node is a React DOM element and - * it has been rendered by another copy of React. - * - * @param {?DOMElement} node The candidate DOM node. - * @return {boolean} True if the DOM has been rendered by another copy of React - * @internal - */ -function nodeIsRenderedByOtherInstance(container) { - var rootEl = getReactRootElementInContainer(container); - return !!(rootEl && isReactNode(rootEl) && !ReactDOMComponentTree.getInstanceFromNode(rootEl)); -} - -/** - * True if the supplied DOM node is a valid node element. - * - * @param {?DOMElement} node The candidate DOM node. - * @return {boolean} True if the DOM is a valid DOM node. - * @internal - */ -function isValidContainer(node) { - return !!(node && (node.nodeType === ELEMENT_NODE_TYPE || node.nodeType === DOC_NODE_TYPE || node.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE)); -} - -/** - * True if the supplied DOM node is a valid React node element. - * - * @param {?DOMElement} node The candidate DOM node. - * @return {boolean} True if the DOM is a valid React DOM node. - * @internal - */ -function isReactNode(node) { - return isValidContainer(node) && (node.hasAttribute(ROOT_ATTR_NAME) || node.hasAttribute(ATTR_NAME)); -} - -function getHostRootInstanceInContainer(container) { - var rootEl = getReactRootElementInContainer(container); - var prevHostInstance = rootEl && ReactDOMComponentTree.getInstanceFromNode(rootEl); - return prevHostInstance && !prevHostInstance._hostParent ? prevHostInstance : null; -} - -function getTopLevelWrapperInContainer(container) { - var root = getHostRootInstanceInContainer(container); - return root ? root._hostContainerInfo._topLevelWrapper : null; -} - -/** - * Temporary (?) hack so that we can store all top-level pending updates on - * composites instead of having to worry about different types of components - * here. - */ -var topLevelRootCounter = 1; -var TopLevelWrapper = function () { - this.rootID = topLevelRootCounter++; -}; -TopLevelWrapper.prototype.isReactComponent = {}; -if ("development" !== 'production') { - TopLevelWrapper.displayName = 'TopLevelWrapper'; -} -TopLevelWrapper.prototype.render = function () { - return this.props.child; -}; -TopLevelWrapper.isReactTopLevelWrapper = true; - -/** - * Mounting is the process of initializing a React component by creating its - * representative DOM elements and inserting them into a supplied `container`. - * Any prior content inside `container` is destroyed in the process. - * - * ReactMount.render( - * component, - * document.getElementById('container') - * ); - * - * <div id="container"> <-- Supplied `container`. - * <div data-reactid=".3"> <-- Rendered reactRoot of React - * // ... component. - * </div> - * </div> - * - * Inside of `container`, the first element rendered is the "reactRoot". - */ -var ReactMount = { - - TopLevelWrapper: TopLevelWrapper, - - /** - * Used by devtools. The keys are not important. - */ - _instancesByReactRootID: instancesByReactRootID, - - /** - * This is a hook provided to support rendering React components while - * ensuring that the apparent scroll position of its `container` does not - * change. - * - * @param {DOMElement} container The `container` being rendered into. - * @param {function} renderCallback This must be called once to do the render. - */ - scrollMonitor: function (container, renderCallback) { - renderCallback(); - }, - - /** - * Take a component that's already mounted into the DOM and replace its props - * @param {ReactComponent} prevComponent component instance already in the DOM - * @param {ReactElement} nextElement component instance to render - * @param {DOMElement} container container to render into - * @param {?function} callback function triggered on completion - */ - _updateRootComponent: function (prevComponent, nextElement, nextContext, container, callback) { - ReactMount.scrollMonitor(container, function () { - ReactUpdateQueue.enqueueElementInternal(prevComponent, nextElement, nextContext); - if (callback) { - ReactUpdateQueue.enqueueCallbackInternal(prevComponent, callback); - } - }); - - return prevComponent; - }, - - /** - * Render a new component into the DOM. Hooked by hooks! - * - * @param {ReactElement} nextElement element to render - * @param {DOMElement} container container to render into - * @param {boolean} shouldReuseMarkup if we should skip the markup insertion - * @return {ReactComponent} nextComponent - */ - _renderNewRootComponent: function (nextElement, container, shouldReuseMarkup, context, callback) { - // Various parts of our code (such as ReactCompositeComponent's - // _renderValidatedComponent) assume that calls to render aren't nested; - // verify that that's the case. - "development" !== 'production' ? warning(ReactCurrentOwner.current == null, '_renderNewRootComponent(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from ' + 'render is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : void 0; - - !isValidContainer(container) ? "development" !== 'production' ? invariant(false, '_registerComponent(...): Target container is not a DOM element.') : _prodInvariant('37') : void 0; - - ReactBrowserEventEmitter.ensureScrollValueMonitoring(); - var componentInstance = instantiateReactComponent(nextElement, false); - - if (callback) { - componentInstance._pendingCallbacks = [function () { - callback.call(componentInstance._renderedComponent.getPublicInstance()); - }]; - } - - // The initial render is synchronous but any updates that happen during - // rendering, in componentWillMount or componentDidMount, will be batched - // according to the current batching strategy. - - ReactUpdates.batchedUpdates(batchedMountComponentIntoNode, componentInstance, container, shouldReuseMarkup, context); - - var wrapperID = componentInstance._instance.rootID; - instancesByReactRootID[wrapperID] = componentInstance; - - return componentInstance; - }, - - /** - * Renders a React component into the DOM in the supplied `container`. - * - * If the React component was previously rendered into `container`, this will - * perform an update on it and only mutate the DOM as necessary to reflect the - * latest React component. - * - * @param {ReactComponent} parentComponent The conceptual parent of this render tree. - * @param {ReactElement} nextElement Component element to render. - * @param {DOMElement} container DOM element to render into. - * @param {?function} callback function triggered on completion - * @return {ReactComponent} Component instance rendered in `container`. - */ - renderSubtreeIntoContainer: function (parentComponent, nextElement, container, callback) { - !(parentComponent != null && ReactInstanceMap.has(parentComponent)) ? "development" !== 'production' ? invariant(false, 'parentComponent must be a valid React Component') : _prodInvariant('38') : void 0; - return ReactMount._renderSubtreeIntoContainer(parentComponent, nextElement, container, callback); - }, - - _renderSubtreeIntoContainer: function (parentComponent, nextElement, container, callback) { - ReactUpdateQueue.validateCallback(callback, 'ReactDOM.render'); - !React.isValidElement(nextElement) ? "development" !== 'production' ? invariant(false, 'ReactDOM.render(): Invalid component element.%s', typeof nextElement === 'string' ? ' Instead of passing a string like \'div\', pass ' + 'React.createElement(\'div\') or <div />.' : typeof nextElement === 'function' ? ' Instead of passing a class like Foo, pass ' + 'React.createElement(Foo) or <Foo />.' : - // Check if it quacks like an element - nextElement != null && nextElement.props !== undefined ? ' This may be caused by unintentionally loading two independent ' + 'copies of React.' : '') : _prodInvariant('39', typeof nextElement === 'string' ? ' Instead of passing a string like \'div\', pass ' + 'React.createElement(\'div\') or <div />.' : typeof nextElement === 'function' ? ' Instead of passing a class like Foo, pass ' + 'React.createElement(Foo) or <Foo />.' : nextElement != null && nextElement.props !== undefined ? ' This may be caused by unintentionally loading two independent ' + 'copies of React.' : '') : void 0; - - "development" !== 'production' ? warning(!container || !container.tagName || container.tagName.toUpperCase() !== 'BODY', 'render(): Rendering components directly into document.body is ' + 'discouraged, since its children are often manipulated by third-party ' + 'scripts and browser extensions. This may lead to subtle ' + 'reconciliation issues. Try rendering into a container element created ' + 'for your app.') : void 0; - - var nextWrappedElement = React.createElement(TopLevelWrapper, { child: nextElement }); - - var nextContext; - if (parentComponent) { - var parentInst = ReactInstanceMap.get(parentComponent); - nextContext = parentInst._processChildContext(parentInst._context); - } else { - nextContext = emptyObject; - } - - var prevComponent = getTopLevelWrapperInContainer(container); - - if (prevComponent) { - var prevWrappedElement = prevComponent._currentElement; - var prevElement = prevWrappedElement.props.child; - if (shouldUpdateReactComponent(prevElement, nextElement)) { - var publicInst = prevComponent._renderedComponent.getPublicInstance(); - var updatedCallback = callback && function () { - callback.call(publicInst); - }; - ReactMount._updateRootComponent(prevComponent, nextWrappedElement, nextContext, container, updatedCallback); - return publicInst; - } else { - ReactMount.unmountComponentAtNode(container); - } - } - - var reactRootElement = getReactRootElementInContainer(container); - var containerHasReactMarkup = reactRootElement && !!internalGetID(reactRootElement); - var containerHasNonRootReactChild = hasNonRootReactChild(container); - - if ("development" !== 'production') { - "development" !== 'production' ? warning(!containerHasNonRootReactChild, 'render(...): Replacing React-rendered children with a new root ' + 'component. If you intended to update the children of this node, ' + 'you should instead have the existing children update their state ' + 'and render the new components instead of calling ReactDOM.render.') : void 0; - - if (!containerHasReactMarkup || reactRootElement.nextSibling) { - var rootElementSibling = reactRootElement; - while (rootElementSibling) { - if (internalGetID(rootElementSibling)) { - "development" !== 'production' ? warning(false, 'render(): Target node has markup rendered by React, but there ' + 'are unrelated nodes as well. This is most commonly caused by ' + 'white-space inserted around server-rendered markup.') : void 0; - break; - } - rootElementSibling = rootElementSibling.nextSibling; - } - } - } - - var shouldReuseMarkup = containerHasReactMarkup && !prevComponent && !containerHasNonRootReactChild; - var component = ReactMount._renderNewRootComponent(nextWrappedElement, container, shouldReuseMarkup, nextContext, callback)._renderedComponent.getPublicInstance(); - return component; - }, - - /** - * Renders a React component into the DOM in the supplied `container`. - * See https://facebook.github.io/react/docs/react-dom.html#render - * - * If the React component was previously rendered into `container`, this will - * perform an update on it and only mutate the DOM as necessary to reflect the - * latest React component. - * - * @param {ReactElement} nextElement Component element to render. - * @param {DOMElement} container DOM element to render into. - * @param {?function} callback function triggered on completion - * @return {ReactComponent} Component instance rendered in `container`. - */ - render: function (nextElement, container, callback) { - return ReactMount._renderSubtreeIntoContainer(null, nextElement, container, callback); - }, - - /** - * Unmounts and destroys the React component rendered in the `container`. - * See https://facebook.github.io/react/docs/react-dom.html#unmountcomponentatnode - * - * @param {DOMElement} container DOM element containing a React component. - * @return {boolean} True if a component was found in and unmounted from - * `container` - */ - unmountComponentAtNode: function (container) { - // Various parts of our code (such as ReactCompositeComponent's - // _renderValidatedComponent) assume that calls to render aren't nested; - // verify that that's the case. (Strictly speaking, unmounting won't cause a - // render but we still don't expect to be in a render call here.) - "development" !== 'production' ? warning(ReactCurrentOwner.current == null, 'unmountComponentAtNode(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from render ' + 'is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : void 0; - - !isValidContainer(container) ? "development" !== 'production' ? invariant(false, 'unmountComponentAtNode(...): Target container is not a DOM element.') : _prodInvariant('40') : void 0; - - if ("development" !== 'production') { - "development" !== 'production' ? warning(!nodeIsRenderedByOtherInstance(container), 'unmountComponentAtNode(): The node you\'re attempting to unmount ' + 'was rendered by another copy of React.') : void 0; - } - - var prevComponent = getTopLevelWrapperInContainer(container); - if (!prevComponent) { - // Check if the node being unmounted was rendered by React, but isn't a - // root node. - var containerHasNonRootReactChild = hasNonRootReactChild(container); - - // Check if the container itself is a React root node. - var isContainerReactRoot = container.nodeType === 1 && container.hasAttribute(ROOT_ATTR_NAME); - - if ("development" !== 'production') { - "development" !== 'production' ? warning(!containerHasNonRootReactChild, 'unmountComponentAtNode(): The node you\'re attempting to unmount ' + 'was rendered by React and is not a top-level container. %s', isContainerReactRoot ? 'You may have accidentally passed in a React root node instead ' + 'of its container.' : 'Instead, have the parent component update its state and ' + 'rerender in order to remove this component.') : void 0; - } - - return false; - } - delete instancesByReactRootID[prevComponent._instance.rootID]; - ReactUpdates.batchedUpdates(unmountComponentFromNode, prevComponent, container); - return true; - }, - - _mountImageIntoNode: function (markup, container, instance, shouldReuseMarkup, transaction) { - !isValidContainer(container) ? "development" !== 'production' ? invariant(false, 'mountComponentIntoNode(...): Target container is not valid.') : _prodInvariant('41') : void 0; - - if (shouldReuseMarkup) { - var rootElement = getReactRootElementInContainer(container); - if (ReactMarkupChecksum.canReuseMarkup(markup, rootElement)) { - ReactDOMComponentTree.precacheNode(instance, rootElement); - return; - } else { - var checksum = rootElement.getAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME); - rootElement.removeAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME); - - var rootMarkup = rootElement.outerHTML; - rootElement.setAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME, checksum); - - var normalizedMarkup = markup; - if ("development" !== 'production') { - // because rootMarkup is retrieved from the DOM, various normalizations - // will have occurred which will not be present in `markup`. Here, - // insert markup into a <div> or <iframe> depending on the container - // type to perform the same normalizations before comparing. - var normalizer; - if (container.nodeType === ELEMENT_NODE_TYPE) { - normalizer = document.createElement('div'); - normalizer.innerHTML = markup; - normalizedMarkup = normalizer.innerHTML; - } else { - normalizer = document.createElement('iframe'); - document.body.appendChild(normalizer); - normalizer.contentDocument.write(markup); - normalizedMarkup = normalizer.contentDocument.documentElement.outerHTML; - document.body.removeChild(normalizer); - } - } - - var diffIndex = firstDifferenceIndex(normalizedMarkup, rootMarkup); - var difference = ' (client) ' + normalizedMarkup.substring(diffIndex - 20, diffIndex + 20) + '\n (server) ' + rootMarkup.substring(diffIndex - 20, diffIndex + 20); - - !(container.nodeType !== DOC_NODE_TYPE) ? "development" !== 'production' ? invariant(false, 'You\'re trying to render a component to the document using server rendering but the checksum was invalid. This usually means you rendered a different component type or props on the client from the one on the server, or your render() methods are impure. React cannot handle this case due to cross-browser quirks by rendering at the document root. You should look for environment dependent code in your components and ensure the props are the same client and server side:\n%s', difference) : _prodInvariant('42', difference) : void 0; - - if ("development" !== 'production') { - "development" !== 'production' ? warning(false, 'React attempted to reuse markup in a container but the ' + 'checksum was invalid. This generally means that you are ' + 'using server rendering and the markup generated on the ' + 'server was not what the client was expecting. React injected ' + 'new markup to compensate which works but you have lost many ' + 'of the benefits of server rendering. Instead, figure out ' + 'why the markup being generated is different on the client ' + 'or server:\n%s', difference) : void 0; - } - } - } - - !(container.nodeType !== DOC_NODE_TYPE) ? "development" !== 'production' ? invariant(false, 'You\'re trying to render a component to the document but you didn\'t use server rendering. We can\'t do this without using server rendering due to cross-browser quirks. See ReactDOMServer.renderToString() for server rendering.') : _prodInvariant('43') : void 0; - - if (transaction.useCreateElement) { - while (container.lastChild) { - container.removeChild(container.lastChild); - } - DOMLazyTree.insertTreeBefore(container, markup, null); - } else { - setInnerHTML(container, markup); - ReactDOMComponentTree.precacheNode(instance, container.firstChild); - } - - if ("development" !== 'production') { - var hostNode = ReactDOMComponentTree.getInstanceFromNode(container.firstChild); - if (hostNode._debugID !== 0) { - ReactInstrumentation.debugTool.onHostOperation({ - instanceID: hostNode._debugID, - type: 'mount', - payload: markup.toString() - }); - } - } - } -}; - -module.exports = ReactMount; -},{"10":10,"12":12,"125":125,"129":129,"131":131,"133":133,"137":137,"138":138,"147":147,"154":154,"161":161,"25":25,"35":35,"36":36,"38":38,"59":59,"64":64,"65":65,"67":67,"75":75,"83":83,"84":84}],69:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _prodInvariant = _dereq_(129); - -var ReactComponentEnvironment = _dereq_(28); -var ReactInstanceMap = _dereq_(64); -var ReactInstrumentation = _dereq_(65); - -var ReactCurrentOwner = _dereq_(137); -var ReactReconciler = _dereq_(75); -var ReactChildReconciler = _dereq_(26); - -var emptyFunction = _dereq_(146); -var flattenChildren = _dereq_(111); -var invariant = _dereq_(154); - -/** - * Make an update for markup to be rendered and inserted at a supplied index. - * - * @param {string} markup Markup that renders into an element. - * @param {number} toIndex Destination index. - * @private - */ -function makeInsertMarkup(markup, afterNode, toIndex) { - // NOTE: Null values reduce hidden classes. - return { - type: 'INSERT_MARKUP', - content: markup, - fromIndex: null, - fromNode: null, - toIndex: toIndex, - afterNode: afterNode - }; -} - -/** - * Make an update for moving an existing element to another index. - * - * @param {number} fromIndex Source index of the existing element. - * @param {number} toIndex Destination index of the element. - * @private - */ -function makeMove(child, afterNode, toIndex) { - // NOTE: Null values reduce hidden classes. - return { - type: 'MOVE_EXISTING', - content: null, - fromIndex: child._mountIndex, - fromNode: ReactReconciler.getHostNode(child), - toIndex: toIndex, - afterNode: afterNode - }; -} - -/** - * Make an update for removing an element at an index. - * - * @param {number} fromIndex Index of the element to remove. - * @private - */ -function makeRemove(child, node) { - // NOTE: Null values reduce hidden classes. - return { - type: 'REMOVE_NODE', - content: null, - fromIndex: child._mountIndex, - fromNode: node, - toIndex: null, - afterNode: null - }; -} - -/** - * Make an update for setting the markup of a node. - * - * @param {string} markup Markup that renders into an element. - * @private - */ -function makeSetMarkup(markup) { - // NOTE: Null values reduce hidden classes. - return { - type: 'SET_MARKUP', - content: markup, - fromIndex: null, - fromNode: null, - toIndex: null, - afterNode: null - }; -} - -/** - * Make an update for setting the text content. - * - * @param {string} textContent Text content to set. - * @private - */ -function makeTextContent(textContent) { - // NOTE: Null values reduce hidden classes. - return { - type: 'TEXT_CONTENT', - content: textContent, - fromIndex: null, - fromNode: null, - toIndex: null, - afterNode: null - }; -} - -/** - * Push an update, if any, onto the queue. Creates a new queue if none is - * passed and always returns the queue. Mutative. - */ -function enqueue(queue, update) { - if (update) { - queue = queue || []; - queue.push(update); - } - return queue; -} - -/** - * Processes any enqueued updates. - * - * @private - */ -function processQueue(inst, updateQueue) { - ReactComponentEnvironment.processChildrenUpdates(inst, updateQueue); -} - -var setChildrenForInstrumentation = emptyFunction; -if ("development" !== 'production') { - var getDebugID = function (inst) { - if (!inst._debugID) { - // Check for ART-like instances. TODO: This is silly/gross. - var internal; - if (internal = ReactInstanceMap.get(inst)) { - inst = internal; - } - } - return inst._debugID; - }; - setChildrenForInstrumentation = function (children) { - var debugID = getDebugID(this); - // TODO: React Native empty components are also multichild. - // This means they still get into this method but don't have _debugID. - if (debugID !== 0) { - ReactInstrumentation.debugTool.onSetChildren(debugID, children ? Object.keys(children).map(function (key) { - return children[key]._debugID; - }) : []); - } - }; -} - -/** - * Provides common functionality for components that must reconcile multiple - * children. This is used by `ReactDOMComponent` to mount, update, and - * unmount child components. - */ -var ReactMultiChild = { - _reconcilerInstantiateChildren: function (nestedChildren, transaction, context) { - if ("development" !== 'production') { - var selfDebugID = getDebugID(this); - if (this._currentElement) { - try { - ReactCurrentOwner.current = this._currentElement._owner; - return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context, selfDebugID); - } finally { - ReactCurrentOwner.current = null; - } - } - } - return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context); - }, - - _reconcilerUpdateChildren: function (prevChildren, nextNestedChildrenElements, mountImages, removedNodes, transaction, context) { - var nextChildren; - var selfDebugID = 0; - if ("development" !== 'production') { - selfDebugID = getDebugID(this); - if (this._currentElement) { - try { - ReactCurrentOwner.current = this._currentElement._owner; - nextChildren = flattenChildren(nextNestedChildrenElements, selfDebugID); - } finally { - ReactCurrentOwner.current = null; - } - ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context, selfDebugID); - return nextChildren; - } - } - nextChildren = flattenChildren(nextNestedChildrenElements, selfDebugID); - ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context, selfDebugID); - return nextChildren; - }, - - /** - * Generates a "mount image" for each of the supplied children. In the case - * of `ReactDOMComponent`, a mount image is a string of markup. - * - * @param {?object} nestedChildren Nested child maps. - * @return {array} An array of mounted representations. - * @internal - */ - mountChildren: function (nestedChildren, transaction, context) { - var children = this._reconcilerInstantiateChildren(nestedChildren, transaction, context); - this._renderedChildren = children; - - var mountImages = []; - var index = 0; - for (var name in children) { - if (children.hasOwnProperty(name)) { - var child = children[name]; - var selfDebugID = 0; - if ("development" !== 'production') { - selfDebugID = getDebugID(this); - } - var mountImage = ReactReconciler.mountComponent(child, transaction, this, this._hostContainerInfo, context, selfDebugID); - child._mountIndex = index++; - mountImages.push(mountImage); - } - } - - if ("development" !== 'production') { - setChildrenForInstrumentation.call(this, children); - } - - return mountImages; - }, - - /** - * Replaces any rendered children with a text content string. - * - * @param {string} nextContent String of content. - * @internal - */ - updateTextContent: function (nextContent) { - var prevChildren = this._renderedChildren; - // Remove any rendered children. - ReactChildReconciler.unmountChildren(prevChildren, false, /* safely */ - false /* skipLifecycle */ - ); - for (var name in prevChildren) { - if (prevChildren.hasOwnProperty(name)) { - !false ? "development" !== 'production' ? invariant(false, 'updateTextContent called on non-empty component.') : _prodInvariant('118') : void 0; - } - } - // Set new text content. - var updates = [makeTextContent(nextContent)]; - processQueue(this, updates); - }, - - /** - * Replaces any rendered children with a markup string. - * - * @param {string} nextMarkup String of markup. - * @internal - */ - updateMarkup: function (nextMarkup) { - var prevChildren = this._renderedChildren; - // Remove any rendered children. - ReactChildReconciler.unmountChildren(prevChildren, false, /* safely */ - false /* skipLifecycle */ - ); - for (var name in prevChildren) { - if (prevChildren.hasOwnProperty(name)) { - !false ? "development" !== 'production' ? invariant(false, 'updateTextContent called on non-empty component.') : _prodInvariant('118') : void 0; - } - } - var updates = [makeSetMarkup(nextMarkup)]; - processQueue(this, updates); - }, - - /** - * Updates the rendered children with new children. - * - * @param {?object} nextNestedChildrenElements Nested child element maps. - * @param {ReactReconcileTransaction} transaction - * @internal - */ - updateChildren: function (nextNestedChildrenElements, transaction, context) { - // Hook used by React ART - this._updateChildren(nextNestedChildrenElements, transaction, context); - }, - - /** - * @param {?object} nextNestedChildrenElements Nested child element maps. - * @param {ReactReconcileTransaction} transaction - * @final - * @protected - */ - _updateChildren: function (nextNestedChildrenElements, transaction, context) { - var prevChildren = this._renderedChildren; - var removedNodes = {}; - var mountImages = []; - var nextChildren = this._reconcilerUpdateChildren(prevChildren, nextNestedChildrenElements, mountImages, removedNodes, transaction, context); - if (!nextChildren && !prevChildren) { - return; - } - var updates = null; - var name; - // `nextIndex` will increment for each child in `nextChildren`, but - // `lastIndex` will be the last index visited in `prevChildren`. - var nextIndex = 0; - var lastIndex = 0; - // `nextMountIndex` will increment for each newly mounted child. - var nextMountIndex = 0; - var lastPlacedNode = null; - for (name in nextChildren) { - if (!nextChildren.hasOwnProperty(name)) { - continue; - } - var prevChild = prevChildren && prevChildren[name]; - var nextChild = nextChildren[name]; - if (prevChild === nextChild) { - updates = enqueue(updates, this.moveChild(prevChild, lastPlacedNode, nextIndex, lastIndex)); - lastIndex = Math.max(prevChild._mountIndex, lastIndex); - prevChild._mountIndex = nextIndex; - } else { - if (prevChild) { - // Update `lastIndex` before `_mountIndex` gets unset by unmounting. - lastIndex = Math.max(prevChild._mountIndex, lastIndex); - // The `removedNodes` loop below will actually remove the child. - } - // The child must be instantiated before it's mounted. - updates = enqueue(updates, this._mountChildAtIndex(nextChild, mountImages[nextMountIndex], lastPlacedNode, nextIndex, transaction, context)); - nextMountIndex++; - } - nextIndex++; - lastPlacedNode = ReactReconciler.getHostNode(nextChild); - } - // Remove children that are no longer present. - for (name in removedNodes) { - if (removedNodes.hasOwnProperty(name)) { - updates = enqueue(updates, this._unmountChild(prevChildren[name], removedNodes[name])); - } - } - if (updates) { - processQueue(this, updates); - } - this._renderedChildren = nextChildren; - - if ("development" !== 'production') { - setChildrenForInstrumentation.call(this, nextChildren); - } - }, - - /** - * Unmounts all rendered children. This should be used to clean up children - * when this component is unmounted. It does not actually perform any - * backend operations. - * - * @internal - */ - unmountChildren: function (safely, skipLifecycle) { - var renderedChildren = this._renderedChildren; - ReactChildReconciler.unmountChildren(renderedChildren, safely, skipLifecycle); - this._renderedChildren = null; - }, - - /** - * Moves a child component to the supplied index. - * - * @param {ReactComponent} child Component to move. - * @param {number} toIndex Destination index of the element. - * @param {number} lastIndex Last index visited of the siblings of `child`. - * @protected - */ - moveChild: function (child, afterNode, toIndex, lastIndex) { - // If the index of `child` is less than `lastIndex`, then it needs to - // be moved. Otherwise, we do not need to move it because a child will be - // inserted or moved before `child`. - if (child._mountIndex < lastIndex) { - return makeMove(child, afterNode, toIndex); - } - }, - - /** - * Creates a child component. - * - * @param {ReactComponent} child Component to create. - * @param {string} mountImage Markup to insert. - * @protected - */ - createChild: function (child, afterNode, mountImage) { - return makeInsertMarkup(mountImage, afterNode, child._mountIndex); - }, - - /** - * Removes a child component. - * - * @param {ReactComponent} child Child to remove. - * @protected - */ - removeChild: function (child, node) { - return makeRemove(child, node); - }, - - /** - * Mounts a child with the supplied name. - * - * NOTE: This is part of `updateChildren` and is here for readability. - * - * @param {ReactComponent} child Component to mount. - * @param {string} name Name of the child. - * @param {number} index Index at which to insert the child. - * @param {ReactReconcileTransaction} transaction - * @private - */ - _mountChildAtIndex: function (child, mountImage, afterNode, index, transaction, context) { - child._mountIndex = index; - return this.createChild(child, afterNode, mountImage); - }, - - /** - * Unmounts a rendered child. - * - * NOTE: This is part of `updateChildren` and is here for readability. - * - * @param {ReactComponent} child Component to unmount. - * @private - */ - _unmountChild: function (child, node) { - var update = this.removeChild(child, node); - child._mountIndex = null; - return update; - } -}; - -module.exports = ReactMultiChild; -},{"111":111,"129":129,"137":137,"146":146,"154":154,"26":26,"28":28,"64":64,"65":65,"75":75}],70:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -'use strict'; - -var _prodInvariant = _dereq_(129); - -var React = _dereq_(138); - -var invariant = _dereq_(154); - -var ReactNodeTypes = { - HOST: 0, - COMPOSITE: 1, - EMPTY: 2, - - getType: function (node) { - if (node === null || node === false) { - return ReactNodeTypes.EMPTY; - } else if (React.isValidElement(node)) { - if (typeof node.type === 'function') { - return ReactNodeTypes.COMPOSITE; - } else { - return ReactNodeTypes.HOST; - } - } - !false ? "development" !== 'production' ? invariant(false, 'Unexpected node: %s', node) : _prodInvariant('26', node) : void 0; - } -}; - -module.exports = ReactNodeTypes; -},{"129":129,"138":138,"154":154}],71:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -'use strict'; - -var _prodInvariant = _dereq_(129); - -var invariant = _dereq_(154); - -/** - * @param {?object} object - * @return {boolean} True if `object` is a valid owner. - * @final - */ -function isValidOwner(object) { - return !!(object && typeof object.attachRef === 'function' && typeof object.detachRef === 'function'); -} - -/** - * ReactOwners are capable of storing references to owned components. - * - * All components are capable of //being// referenced by owner components, but - * only ReactOwner components are capable of //referencing// owned components. - * The named reference is known as a "ref". - * - * Refs are available when mounted and updated during reconciliation. - * - * var MyComponent = React.createClass({ - * render: function() { - * return ( - * <div onClick={this.handleClick}> - * <CustomComponent ref="custom" /> - * </div> - * ); - * }, - * handleClick: function() { - * this.refs.custom.handleClick(); - * }, - * componentDidMount: function() { - * this.refs.custom.initialize(); - * } - * }); - * - * Refs should rarely be used. When refs are used, they should only be done to - * control data that is not handled by React's data flow. - * - * @class ReactOwner - */ -var ReactOwner = { - /** - * Adds a component by ref to an owner component. - * - * @param {ReactComponent} component Component to reference. - * @param {string} ref Name by which to refer to the component. - * @param {ReactOwner} owner Component on which to record the ref. - * @final - * @internal - */ - addComponentAsRefTo: function (component, ref, owner) { - !isValidOwner(owner) ? "development" !== 'production' ? invariant(false, 'addComponentAsRefTo(...): Only a ReactOwner can have refs. You might be adding a ref to a component that was not created inside a component\'s `render` method, or you have multiple copies of React loaded (details: https://fb.me/react-refs-must-have-owner).') : _prodInvariant('119') : void 0; - owner.attachRef(ref, component); - }, - - /** - * Removes a component by ref from an owner component. - * - * @param {ReactComponent} component Component to dereference. - * @param {string} ref Name of the ref to remove. - * @param {ReactOwner} owner Component on which the ref is recorded. - * @final - * @internal - */ - removeComponentAsRefFrom: function (component, ref, owner) { - !isValidOwner(owner) ? "development" !== 'production' ? invariant(false, 'removeComponentAsRefFrom(...): Only a ReactOwner can have refs. You might be removing a ref to a component that was not created inside a component\'s `render` method, or you have multiple copies of React loaded (details: https://fb.me/react-refs-must-have-owner).') : _prodInvariant('120') : void 0; - var ownerPublicInstance = owner.getPublicInstance(); - // Check that `component`'s owner is still alive and that `component` is still the current ref - // because we do not want to detach the ref if another component stole it. - if (ownerPublicInstance && ownerPublicInstance.refs[ref] === component.getPublicInstance()) { - owner.detachRef(ref); - } - } - -}; - -module.exports = ReactOwner; -},{"129":129,"154":154}],72:[function(_dereq_,module,exports){ -/** - * Copyright 2016-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -'use strict'; - -var _assign = _dereq_(162); - -var _extends = _assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var ReactDebugTool = _dereq_(52); -var warning = _dereq_(161); -var alreadyWarned = false; - -function roundFloat(val) { - var base = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2; - - var n = Math.pow(10, base); - return Math.floor(val * n) / n; -} - -// Flow type definition of console.table is too strict right now, see -// https://github.com/facebook/flow/pull/2353 for updates -function consoleTable(table) { - console.table(table); -} - -function warnInProduction() { - if (alreadyWarned) { - return; - } - alreadyWarned = true; - if (typeof console !== 'undefined') { - console.error('ReactPerf is not supported in the production builds of React. ' + 'To collect measurements, please use the development build of React instead.'); - } -} - -function getLastMeasurements() { - if (!("development" !== 'production')) { - warnInProduction(); - return []; - } - - return ReactDebugTool.getFlushHistory(); -} - -function getExclusive() { - var flushHistory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getLastMeasurements(); - - if (!("development" !== 'production')) { - warnInProduction(); - return []; - } - - var aggregatedStats = {}; - var affectedIDs = {}; - - function updateAggregatedStats(treeSnapshot, instanceID, timerType, applyUpdate) { - var displayName = treeSnapshot[instanceID].displayName; - - var key = displayName; - var stats = aggregatedStats[key]; - if (!stats) { - affectedIDs[key] = {}; - stats = aggregatedStats[key] = { - key: key, - instanceCount: 0, - counts: {}, - durations: {}, - totalDuration: 0 - }; - } - if (!stats.durations[timerType]) { - stats.durations[timerType] = 0; - } - if (!stats.counts[timerType]) { - stats.counts[timerType] = 0; - } - affectedIDs[key][instanceID] = true; - applyUpdate(stats); - } - - flushHistory.forEach(function (flush) { - var measurements = flush.measurements; - var treeSnapshot = flush.treeSnapshot; - - measurements.forEach(function (measurement) { - var duration = measurement.duration; - var instanceID = measurement.instanceID; - var timerType = measurement.timerType; - - updateAggregatedStats(treeSnapshot, instanceID, timerType, function (stats) { - stats.totalDuration += duration; - stats.durations[timerType] += duration; - stats.counts[timerType]++; - }); - }); - }); - - return Object.keys(aggregatedStats).map(function (key) { - return _extends({}, aggregatedStats[key], { - instanceCount: Object.keys(affectedIDs[key]).length - }); - }).sort(function (a, b) { - return b.totalDuration - a.totalDuration; - }); -} - -function getInclusive() { - var flushHistory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getLastMeasurements(); - - if (!("development" !== 'production')) { - warnInProduction(); - return []; - } - - var aggregatedStats = {}; - var affectedIDs = {}; - - function updateAggregatedStats(treeSnapshot, instanceID, applyUpdate) { - var _treeSnapshot$instanc = treeSnapshot[instanceID]; - var displayName = _treeSnapshot$instanc.displayName; - var ownerID = _treeSnapshot$instanc.ownerID; - - var owner = treeSnapshot[ownerID]; - var key = (owner ? owner.displayName + ' > ' : '') + displayName; - var stats = aggregatedStats[key]; - if (!stats) { - affectedIDs[key] = {}; - stats = aggregatedStats[key] = { - key: key, - instanceCount: 0, - inclusiveRenderDuration: 0, - renderCount: 0 - }; - } - affectedIDs[key][instanceID] = true; - applyUpdate(stats); - } - - var isCompositeByID = {}; - flushHistory.forEach(function (flush) { - var measurements = flush.measurements; - - measurements.forEach(function (measurement) { - var instanceID = measurement.instanceID; - var timerType = measurement.timerType; - - if (timerType !== 'render') { - return; - } - isCompositeByID[instanceID] = true; - }); - }); - - flushHistory.forEach(function (flush) { - var measurements = flush.measurements; - var treeSnapshot = flush.treeSnapshot; - - measurements.forEach(function (measurement) { - var duration = measurement.duration; - var instanceID = measurement.instanceID; - var timerType = measurement.timerType; - - if (timerType !== 'render') { - return; - } - updateAggregatedStats(treeSnapshot, instanceID, function (stats) { - stats.renderCount++; - }); - var nextParentID = instanceID; - while (nextParentID) { - // As we traverse parents, only count inclusive time towards composites. - // We know something is a composite if its render() was called. - if (isCompositeByID[nextParentID]) { - updateAggregatedStats(treeSnapshot, nextParentID, function (stats) { - stats.inclusiveRenderDuration += duration; - }); - } - nextParentID = treeSnapshot[nextParentID].parentID; - } - }); - }); - - return Object.keys(aggregatedStats).map(function (key) { - return _extends({}, aggregatedStats[key], { - instanceCount: Object.keys(affectedIDs[key]).length - }); - }).sort(function (a, b) { - return b.inclusiveRenderDuration - a.inclusiveRenderDuration; - }); -} - -function getWasted() { - var flushHistory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getLastMeasurements(); - - if (!("development" !== 'production')) { - warnInProduction(); - return []; - } - - var aggregatedStats = {}; - var affectedIDs = {}; - - function updateAggregatedStats(treeSnapshot, instanceID, applyUpdate) { - var _treeSnapshot$instanc2 = treeSnapshot[instanceID]; - var displayName = _treeSnapshot$instanc2.displayName; - var ownerID = _treeSnapshot$instanc2.ownerID; - - var owner = treeSnapshot[ownerID]; - var key = (owner ? owner.displayName + ' > ' : '') + displayName; - var stats = aggregatedStats[key]; - if (!stats) { - affectedIDs[key] = {}; - stats = aggregatedStats[key] = { - key: key, - instanceCount: 0, - inclusiveRenderDuration: 0, - renderCount: 0 - }; - } - affectedIDs[key][instanceID] = true; - applyUpdate(stats); - } - - flushHistory.forEach(function (flush) { - var measurements = flush.measurements; - var treeSnapshot = flush.treeSnapshot; - var operations = flush.operations; - - var isDefinitelyNotWastedByID = {}; - - // Find host components associated with an operation in this batch. - // Mark all components in their parent tree as definitely not wasted. - operations.forEach(function (operation) { - var instanceID = operation.instanceID; - - var nextParentID = instanceID; - while (nextParentID) { - isDefinitelyNotWastedByID[nextParentID] = true; - nextParentID = treeSnapshot[nextParentID].parentID; - } - }); - - // Find composite components that rendered in this batch. - // These are potential candidates for being wasted renders. - var renderedCompositeIDs = {}; - measurements.forEach(function (measurement) { - var instanceID = measurement.instanceID; - var timerType = measurement.timerType; - - if (timerType !== 'render') { - return; - } - renderedCompositeIDs[instanceID] = true; - }); - - measurements.forEach(function (measurement) { - var duration = measurement.duration; - var instanceID = measurement.instanceID; - var timerType = measurement.timerType; - - if (timerType !== 'render') { - return; - } - - // If there was a DOM update below this component, or it has just been - // mounted, its render() is not considered wasted. - var updateCount = treeSnapshot[instanceID].updateCount; - - if (isDefinitelyNotWastedByID[instanceID] || updateCount === 0) { - return; - } - - // We consider this render() wasted. - updateAggregatedStats(treeSnapshot, instanceID, function (stats) { - stats.renderCount++; - }); - - var nextParentID = instanceID; - while (nextParentID) { - // Any parents rendered during this batch are considered wasted - // unless we previously marked them as dirty. - var isWasted = renderedCompositeIDs[nextParentID] && !isDefinitelyNotWastedByID[nextParentID]; - if (isWasted) { - updateAggregatedStats(treeSnapshot, nextParentID, function (stats) { - stats.inclusiveRenderDuration += duration; - }); - } - nextParentID = treeSnapshot[nextParentID].parentID; - } - }); - }); - - return Object.keys(aggregatedStats).map(function (key) { - return _extends({}, aggregatedStats[key], { - instanceCount: Object.keys(affectedIDs[key]).length - }); - }).sort(function (a, b) { - return b.inclusiveRenderDuration - a.inclusiveRenderDuration; - }); -} - -function getOperations() { - var flushHistory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getLastMeasurements(); - - if (!("development" !== 'production')) { - warnInProduction(); - return []; - } - - var stats = []; - flushHistory.forEach(function (flush, flushIndex) { - var operations = flush.operations; - var treeSnapshot = flush.treeSnapshot; - - operations.forEach(function (operation) { - var instanceID = operation.instanceID; - var type = operation.type; - var payload = operation.payload; - var _treeSnapshot$instanc3 = treeSnapshot[instanceID]; - var displayName = _treeSnapshot$instanc3.displayName; - var ownerID = _treeSnapshot$instanc3.ownerID; - - var owner = treeSnapshot[ownerID]; - var key = (owner ? owner.displayName + ' > ' : '') + displayName; - - stats.push({ - flushIndex: flushIndex, - instanceID: instanceID, - key: key, - type: type, - ownerID: ownerID, - payload: payload - }); - }); - }); - return stats; -} - -function printExclusive(flushHistory) { - if (!("development" !== 'production')) { - warnInProduction(); - return; - } - - var stats = getExclusive(flushHistory); - var table = stats.map(function (item) { - var key = item.key; - var instanceCount = item.instanceCount; - var totalDuration = item.totalDuration; - - var renderCount = item.counts.render || 0; - var renderDuration = item.durations.render || 0; - return { - 'Component': key, - 'Total time (ms)': roundFloat(totalDuration), - 'Instance count': instanceCount, - 'Total render time (ms)': roundFloat(renderDuration), - 'Average render time (ms)': renderCount ? roundFloat(renderDuration / renderCount) : undefined, - 'Render count': renderCount, - 'Total lifecycle time (ms)': roundFloat(totalDuration - renderDuration) - }; - }); - consoleTable(table); -} - -function printInclusive(flushHistory) { - if (!("development" !== 'production')) { - warnInProduction(); - return; - } - - var stats = getInclusive(flushHistory); - var table = stats.map(function (item) { - var key = item.key; - var instanceCount = item.instanceCount; - var inclusiveRenderDuration = item.inclusiveRenderDuration; - var renderCount = item.renderCount; - - return { - 'Owner > Component': key, - 'Inclusive render time (ms)': roundFloat(inclusiveRenderDuration), - 'Instance count': instanceCount, - 'Render count': renderCount - }; - }); - consoleTable(table); -} - -function printWasted(flushHistory) { - if (!("development" !== 'production')) { - warnInProduction(); - return; - } - - var stats = getWasted(flushHistory); - var table = stats.map(function (item) { - var key = item.key; - var instanceCount = item.instanceCount; - var inclusiveRenderDuration = item.inclusiveRenderDuration; - var renderCount = item.renderCount; - - return { - 'Owner > Component': key, - 'Inclusive wasted time (ms)': roundFloat(inclusiveRenderDuration), - 'Instance count': instanceCount, - 'Render count': renderCount - }; - }); - consoleTable(table); -} - -function printOperations(flushHistory) { - if (!("development" !== 'production')) { - warnInProduction(); - return; - } - - var stats = getOperations(flushHistory); - var table = stats.map(function (stat) { - return { - 'Owner > Node': stat.key, - 'Operation': stat.type, - 'Payload': typeof stat.payload === 'object' ? JSON.stringify(stat.payload) : stat.payload, - 'Flush index': stat.flushIndex, - 'Owner Component ID': stat.ownerID, - 'DOM Component ID': stat.instanceID - }; - }); - consoleTable(table); -} - -var warnedAboutPrintDOM = false; -function printDOM(measurements) { - "development" !== 'production' ? warning(warnedAboutPrintDOM, '`ReactPerf.printDOM(...)` is deprecated. Use ' + '`ReactPerf.printOperations(...)` instead.') : void 0; - warnedAboutPrintDOM = true; - return printOperations(measurements); -} - -var warnedAboutGetMeasurementsSummaryMap = false; -function getMeasurementsSummaryMap(measurements) { - "development" !== 'production' ? warning(warnedAboutGetMeasurementsSummaryMap, '`ReactPerf.getMeasurementsSummaryMap(...)` is deprecated. Use ' + '`ReactPerf.getWasted(...)` instead.') : void 0; - warnedAboutGetMeasurementsSummaryMap = true; - return getWasted(measurements); -} - -function start() { - if (!("development" !== 'production')) { - warnInProduction(); - return; - } - - ReactDebugTool.beginProfiling(); -} - -function stop() { - if (!("development" !== 'production')) { - warnInProduction(); - return; - } - - ReactDebugTool.endProfiling(); -} - -function isRunning() { - if (!("development" !== 'production')) { - warnInProduction(); - return false; - } - - return ReactDebugTool.isProfiling(); -} - -var ReactPerfAnalysis = { - getLastMeasurements: getLastMeasurements, - getExclusive: getExclusive, - getInclusive: getInclusive, - getWasted: getWasted, - getOperations: getOperations, - printExclusive: printExclusive, - printInclusive: printInclusive, - printWasted: printWasted, - printOperations: printOperations, - start: start, - stop: stop, - isRunning: isRunning, - // Deprecated: - printDOM: printDOM, - getMeasurementsSummaryMap: getMeasurementsSummaryMap -}; - -module.exports = ReactPerfAnalysis; -},{"161":161,"162":162,"52":52}],73:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -'use strict'; - -var ReactPropTypeLocationNames = {}; - -if ("development" !== 'production') { - ReactPropTypeLocationNames = { - prop: 'prop', - context: 'context', - childContext: 'child context' - }; -} - -module.exports = ReactPropTypeLocationNames; -},{}],74:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _assign = _dereq_(162); - -var CallbackQueue = _dereq_(6); -var PooledClass = _dereq_(24); -var ReactBrowserEventEmitter = _dereq_(25); -var ReactInputSelection = _dereq_(63); -var ReactInstrumentation = _dereq_(65); -var Transaction = _dereq_(102); -var ReactUpdateQueue = _dereq_(83); - -/** - * Ensures that, when possible, the selection range (currently selected text - * input) is not disturbed by performing the transaction. - */ -var SELECTION_RESTORATION = { - /** - * @return {Selection} Selection information. - */ - initialize: ReactInputSelection.getSelectionInformation, - /** - * @param {Selection} sel Selection information returned from `initialize`. - */ - close: ReactInputSelection.restoreSelection -}; - -/** - * Suppresses events (blur/focus) that could be inadvertently dispatched due to - * high level DOM manipulations (like temporarily removing a text input from the - * DOM). - */ -var EVENT_SUPPRESSION = { - /** - * @return {boolean} The enabled status of `ReactBrowserEventEmitter` before - * the reconciliation. - */ - initialize: function () { - var currentlyEnabled = ReactBrowserEventEmitter.isEnabled(); - ReactBrowserEventEmitter.setEnabled(false); - return currentlyEnabled; - }, - - /** - * @param {boolean} previouslyEnabled Enabled status of - * `ReactBrowserEventEmitter` before the reconciliation occurred. `close` - * restores the previous value. - */ - close: function (previouslyEnabled) { - ReactBrowserEventEmitter.setEnabled(previouslyEnabled); - } -}; - -/** - * Provides a queue for collecting `componentDidMount` and - * `componentDidUpdate` callbacks during the transaction. - */ -var ON_DOM_READY_QUEUEING = { - /** - * Initializes the internal `onDOMReady` queue. - */ - initialize: function () { - this.reactMountReady.reset(); - }, - - /** - * After DOM is flushed, invoke all registered `onDOMReady` callbacks. - */ - close: function () { - this.reactMountReady.notifyAll(); - } -}; - -/** - * Executed within the scope of the `TransactionRecord` instance. Consider these as - * being member methods, but with an implied ordering while being isolated from - * each other. - */ -var TRANSACTION_WRAPPERS = [SELECTION_RESTORATION, EVENT_SUPPRESSION, ON_DOM_READY_QUEUEING]; - -if ("development" !== 'production') { - TRANSACTION_WRAPPERS.push({ - initialize: ReactInstrumentation.debugTool.onBeginFlush, - close: ReactInstrumentation.debugTool.onEndFlush - }); -} - -/** - * Currently: - * - The order that these are listed in the transaction is critical: - * - Suppresses events. - * - Restores selection range. - * - * Future: - * - Restore document/overflow scroll positions that were unintentionally - * modified via DOM insertions above the top viewport boundary. - * - Implement/integrate with customized constraint based layout system and keep - * track of which dimensions must be remeasured. - * - * @class ReactReconcileTransaction - */ -function ReactReconcileTransaction(useCreateElement) { - this.reinitializeTransaction(); - // Only server-side rendering really needs this option (see - // `ReactServerRendering`), but server-side uses - // `ReactServerRenderingTransaction` instead. This option is here so that it's - // accessible and defaults to false when `ReactDOMComponent` and - // `ReactDOMTextComponent` checks it in `mountComponent`.` - this.renderToStaticMarkup = false; - this.reactMountReady = CallbackQueue.getPooled(null); - this.useCreateElement = useCreateElement; -} - -var Mixin = { - /** - * @see Transaction - * @abstract - * @final - * @return {array<object>} List of operation wrap procedures. - * TODO: convert to array<TransactionWrapper> - */ - getTransactionWrappers: function () { - return TRANSACTION_WRAPPERS; - }, - - /** - * @return {object} The queue to collect `onDOMReady` callbacks with. - */ - getReactMountReady: function () { - return this.reactMountReady; - }, - - /** - * @return {object} The queue to collect React async events. - */ - getUpdateQueue: function () { - return ReactUpdateQueue; - }, - - /** - * Save current transaction state -- if the return value from this method is - * passed to `rollback`, the transaction will be reset to that state. - */ - checkpoint: function () { - // reactMountReady is the our only stateful wrapper - return this.reactMountReady.checkpoint(); - }, - - rollback: function (checkpoint) { - this.reactMountReady.rollback(checkpoint); - }, - - /** - * `PooledClass` looks for this, and will invoke this before allowing this - * instance to be reused. - */ - destructor: function () { - CallbackQueue.release(this.reactMountReady); - this.reactMountReady = null; - } -}; - -_assign(ReactReconcileTransaction.prototype, Transaction, Mixin); - -PooledClass.addPoolingTo(ReactReconcileTransaction); - -module.exports = ReactReconcileTransaction; -},{"102":102,"162":162,"24":24,"25":25,"6":6,"63":63,"65":65,"83":83}],75:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var ReactRef = _dereq_(76); -var ReactInstrumentation = _dereq_(65); - -var warning = _dereq_(161); - -/** - * Helper to call ReactRef.attachRefs with this composite component, split out - * to avoid allocations in the transaction mount-ready queue. - */ -function attachRefs() { - ReactRef.attachRefs(this, this._currentElement); -} - -var ReactReconciler = { - - /** - * Initializes the component, renders markup, and registers event listeners. - * - * @param {ReactComponent} internalInstance - * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction - * @param {?object} the containing host component instance - * @param {?object} info about the host container - * @return {?string} Rendered markup to be inserted into the DOM. - * @final - * @internal - */ - mountComponent: function (internalInstance, transaction, hostParent, hostContainerInfo, context, parentDebugID // 0 in production and for roots - ) { - if ("development" !== 'production') { - if (internalInstance._debugID !== 0) { - ReactInstrumentation.debugTool.onBeforeMountComponent(internalInstance._debugID, internalInstance._currentElement, parentDebugID); - } - } - var markup = internalInstance.mountComponent(transaction, hostParent, hostContainerInfo, context, parentDebugID); - if (internalInstance._currentElement && internalInstance._currentElement.ref != null) { - transaction.getReactMountReady().enqueue(attachRefs, internalInstance); - } - if ("development" !== 'production') { - if (internalInstance._debugID !== 0) { - ReactInstrumentation.debugTool.onMountComponent(internalInstance._debugID); - } - } - return markup; - }, - - /** - * Returns a value that can be passed to - * ReactComponentEnvironment.replaceNodeWithMarkup. - */ - getHostNode: function (internalInstance) { - return internalInstance.getHostNode(); - }, - - /** - * Releases any resources allocated by `mountComponent`. - * - * @final - * @internal - */ - unmountComponent: function (internalInstance, safely, skipLifecycle) { - if ("development" !== 'production') { - if (internalInstance._debugID !== 0) { - ReactInstrumentation.debugTool.onBeforeUnmountComponent(internalInstance._debugID); - } - } - ReactRef.detachRefs(internalInstance, internalInstance._currentElement); - internalInstance.unmountComponent(safely, skipLifecycle); - if ("development" !== 'production') { - if (internalInstance._debugID !== 0) { - ReactInstrumentation.debugTool.onUnmountComponent(internalInstance._debugID); - } - } - }, - - /** - * Update a component using a new element. - * - * @param {ReactComponent} internalInstance - * @param {ReactElement} nextElement - * @param {ReactReconcileTransaction} transaction - * @param {object} context - * @internal - */ - receiveComponent: function (internalInstance, nextElement, transaction, context) { - var prevElement = internalInstance._currentElement; - - if (nextElement === prevElement && context === internalInstance._context) { - // Since elements are immutable after the owner is rendered, - // we can do a cheap identity compare here to determine if this is a - // superfluous reconcile. It's possible for state to be mutable but such - // change should trigger an update of the owner which would recreate - // the element. We explicitly check for the existence of an owner since - // it's possible for an element created outside a composite to be - // deeply mutated and reused. - - // TODO: Bailing out early is just a perf optimization right? - // TODO: Removing the return statement should affect correctness? - return; - } - - if ("development" !== 'production') { - if (internalInstance._debugID !== 0) { - ReactInstrumentation.debugTool.onBeforeUpdateComponent(internalInstance._debugID, nextElement); - } - } - - var refsChanged = ReactRef.shouldUpdateRefs(prevElement, nextElement); - - if (refsChanged) { - ReactRef.detachRefs(internalInstance, prevElement); - } - - internalInstance.receiveComponent(nextElement, transaction, context); - - if (refsChanged && internalInstance._currentElement && internalInstance._currentElement.ref != null) { - transaction.getReactMountReady().enqueue(attachRefs, internalInstance); - } - - if ("development" !== 'production') { - if (internalInstance._debugID !== 0) { - ReactInstrumentation.debugTool.onUpdateComponent(internalInstance._debugID); - } - } - }, - - /** - * Flush any dirty changes in a component. - * - * @param {ReactComponent} internalInstance - * @param {ReactReconcileTransaction} transaction - * @internal - */ - performUpdateIfNecessary: function (internalInstance, transaction, updateBatchNumber) { - if (internalInstance._updateBatchNumber !== updateBatchNumber) { - // The component's enqueued batch number should always be the current - // batch or the following one. - "development" !== 'production' ? warning(internalInstance._updateBatchNumber == null || internalInstance._updateBatchNumber === updateBatchNumber + 1, 'performUpdateIfNecessary: Unexpected batch number (current %s, ' + 'pending %s)', updateBatchNumber, internalInstance._updateBatchNumber) : void 0; - return; - } - if ("development" !== 'production') { - if (internalInstance._debugID !== 0) { - ReactInstrumentation.debugTool.onBeforeUpdateComponent(internalInstance._debugID, internalInstance._currentElement); - } - } - internalInstance.performUpdateIfNecessary(transaction); - if ("development" !== 'production') { - if (internalInstance._debugID !== 0) { - ReactInstrumentation.debugTool.onUpdateComponent(internalInstance._debugID); - } - } - } - -}; - -module.exports = ReactReconciler; -},{"161":161,"65":65,"76":76}],76:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -'use strict'; - -var ReactOwner = _dereq_(71); - -var ReactRef = {}; - -function attachRef(ref, component, owner) { - if (typeof ref === 'function') { - ref(component.getPublicInstance()); - } else { - // Legacy ref - ReactOwner.addComponentAsRefTo(component, ref, owner); - } -} - -function detachRef(ref, component, owner) { - if (typeof ref === 'function') { - ref(null); - } else { - // Legacy ref - ReactOwner.removeComponentAsRefFrom(component, ref, owner); - } -} - -ReactRef.attachRefs = function (instance, element) { - if (element === null || typeof element !== 'object') { - return; - } - var ref = element.ref; - if (ref != null) { - attachRef(ref, instance, element._owner); - } -}; - -ReactRef.shouldUpdateRefs = function (prevElement, nextElement) { - // If either the owner or a `ref` has changed, make sure the newest owner - // has stored a reference to `this`, and the previous owner (if different) - // has forgotten the reference to `this`. We use the element instead - // of the public this.props because the post processing cannot determine - // a ref. The ref conceptually lives on the element. - - // TODO: Should this even be possible? The owner cannot change because - // it's forbidden by shouldUpdateReactComponent. The ref can change - // if you swap the keys of but not the refs. Reconsider where this check - // is made. It probably belongs where the key checking and - // instantiateReactComponent is done. - - var prevRef = null; - var prevOwner = null; - if (prevElement !== null && typeof prevElement === 'object') { - prevRef = prevElement.ref; - prevOwner = prevElement._owner; - } - - var nextRef = null; - var nextOwner = null; - if (nextElement !== null && typeof nextElement === 'object') { - nextRef = nextElement.ref; - nextOwner = nextElement._owner; - } - - return prevRef !== nextRef || - // If owner changes but we have an unchanged function ref, don't update refs - typeof nextRef === 'string' && nextOwner !== prevOwner; -}; - -ReactRef.detachRefs = function (instance, element) { - if (element === null || typeof element !== 'object') { - return; - } - var ref = element.ref; - if (ref != null) { - detachRef(ref, instance, element._owner); - } -}; - -module.exports = ReactRef; -},{"71":71}],77:[function(_dereq_,module,exports){ -/** - * Copyright 2014-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _assign = _dereq_(162); - -var PooledClass = _dereq_(24); -var Transaction = _dereq_(102); -var ReactInstrumentation = _dereq_(65); -var ReactServerUpdateQueue = _dereq_(78); - -/** - * Executed within the scope of the `TransactionRecord` instance. Consider these as - * being member methods, but with an implied ordering while being isolated from - * each other. - */ -var TRANSACTION_WRAPPERS = []; - -if ("development" !== 'production') { - TRANSACTION_WRAPPERS.push({ - initialize: ReactInstrumentation.debugTool.onBeginFlush, - close: ReactInstrumentation.debugTool.onEndFlush - }); -} - -var noopCallbackQueue = { - enqueue: function () {} -}; - -/** - * @class ReactServerRenderingTransaction - * @param {boolean} renderToStaticMarkup - */ -function ReactServerRenderingTransaction(renderToStaticMarkup) { - this.reinitializeTransaction(); - this.renderToStaticMarkup = renderToStaticMarkup; - this.useCreateElement = false; - this.updateQueue = new ReactServerUpdateQueue(this); -} - -var Mixin = { - /** - * @see Transaction - * @abstract - * @final - * @return {array} Empty list of operation wrap procedures. - */ - getTransactionWrappers: function () { - return TRANSACTION_WRAPPERS; - }, - - /** - * @return {object} The queue to collect `onDOMReady` callbacks with. - */ - getReactMountReady: function () { - return noopCallbackQueue; - }, - - /** - * @return {object} The queue to collect React async events. - */ - getUpdateQueue: function () { - return this.updateQueue; - }, - - /** - * `PooledClass` looks for this, and will invoke this before allowing this - * instance to be reused. - */ - destructor: function () {}, - - checkpoint: function () {}, - - rollback: function () {} -}; - -_assign(ReactServerRenderingTransaction.prototype, Transaction, Mixin); - -PooledClass.addPoolingTo(ReactServerRenderingTransaction); - -module.exports = ReactServerRenderingTransaction; -},{"102":102,"162":162,"24":24,"65":65,"78":78}],78:[function(_dereq_,module,exports){ -/** - * Copyright 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -'use strict'; - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var ReactUpdateQueue = _dereq_(83); - -var warning = _dereq_(161); - -function warnNoop(publicInstance, callerName) { - if ("development" !== 'production') { - var constructor = publicInstance.constructor; - "development" !== 'production' ? warning(false, '%s(...): Can only update a mounting component. ' + 'This usually means you called %s() outside componentWillMount() on the server. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, constructor && (constructor.displayName || constructor.name) || 'ReactClass') : void 0; - } -} - -/** - * This is the update queue used for server rendering. - * It delegates to ReactUpdateQueue while server rendering is in progress and - * switches to ReactNoopUpdateQueue after the transaction has completed. - * @class ReactServerUpdateQueue - * @param {TransactionRecord} transaction - */ - -var ReactServerUpdateQueue = function () { - function ReactServerUpdateQueue(transaction) { - _classCallCheck(this, ReactServerUpdateQueue); - - this.transaction = transaction; - } - - /** - * Checks whether or not this composite component is mounted. - * @param {ReactClass} publicInstance The instance we want to test. - * @return {boolean} True if mounted, false otherwise. - * @protected - * @final - */ - - - ReactServerUpdateQueue.prototype.isMounted = function isMounted(publicInstance) { - return false; - }; - - /** - * Enqueue a callback that will be executed after all the pending updates - * have processed. - * - * @param {ReactClass} publicInstance The instance to use as `this` context. - * @param {?function} callback Called after state is updated. - * @internal - */ - - - ReactServerUpdateQueue.prototype.enqueueCallback = function enqueueCallback(publicInstance, callback, callerName) { - if (this.transaction.isInTransaction()) { - ReactUpdateQueue.enqueueCallback(publicInstance, callback, callerName); - } - }; - - /** - * Forces an update. This should only be invoked when it is known with - * certainty that we are **not** in a DOM transaction. - * - * You may want to call this when you know that some deeper aspect of the - * component's state has changed but `setState` was not called. - * - * This will not invoke `shouldComponentUpdate`, but it will invoke - * `componentWillUpdate` and `componentDidUpdate`. - * - * @param {ReactClass} publicInstance The instance that should rerender. - * @internal - */ - - - ReactServerUpdateQueue.prototype.enqueueForceUpdate = function enqueueForceUpdate(publicInstance) { - if (this.transaction.isInTransaction()) { - ReactUpdateQueue.enqueueForceUpdate(publicInstance); - } else { - warnNoop(publicInstance, 'forceUpdate'); - } - }; - - /** - * Replaces all of the state. Always use this or `setState` to mutate state. - * You should treat `this.state` as immutable. - * - * There is no guarantee that `this.state` will be immediately updated, so - * accessing `this.state` after calling this method may return the old value. - * - * @param {ReactClass} publicInstance The instance that should rerender. - * @param {object|function} completeState Next state. - * @internal - */ - - - ReactServerUpdateQueue.prototype.enqueueReplaceState = function enqueueReplaceState(publicInstance, completeState) { - if (this.transaction.isInTransaction()) { - ReactUpdateQueue.enqueueReplaceState(publicInstance, completeState); - } else { - warnNoop(publicInstance, 'replaceState'); - } - }; - - /** - * Sets a subset of the state. This only exists because _pendingState is - * internal. This provides a merging strategy that is not available to deep - * properties which is confusing. TODO: Expose pendingState or don't use it - * during the merge. - * - * @param {ReactClass} publicInstance The instance that should rerender. - * @param {object|function} partialState Next partial state to be merged with state. - * @internal - */ - - - ReactServerUpdateQueue.prototype.enqueueSetState = function enqueueSetState(publicInstance, partialState) { - if (this.transaction.isInTransaction()) { - ReactUpdateQueue.enqueueSetState(publicInstance, partialState); - } else { - warnNoop(publicInstance, 'setState'); - } - }; - - return ReactServerUpdateQueue; -}(); - -module.exports = ReactServerUpdateQueue; -},{"161":161,"83":83}],79:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @preventMunge - */ - -'use strict'; - -var _prodInvariant = _dereq_(129), - _assign = _dereq_(162); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var React = _dereq_(138); -var ReactDOMInjection = _dereq_(40); -var ReactDOMStackInjection = _dereq_(47); -var ReactCompositeComponent = _dereq_(29); -var ReactReconciler = _dereq_(75); -var ReactUpdates = _dereq_(84); - -var emptyObject = _dereq_(147); -var getNextDebugID = _dereq_(120); -var invariant = _dereq_(154); - -var NoopInternalComponent = function () { - function NoopInternalComponent(element) { - _classCallCheck(this, NoopInternalComponent); - - this._renderedOutput = element; - this._currentElement = element; - - if ("development" !== 'production') { - this._debugID = getNextDebugID(); - } - } - - NoopInternalComponent.prototype.mountComponent = function mountComponent() {}; - - NoopInternalComponent.prototype.receiveComponent = function receiveComponent(element) { - this._renderedOutput = element; - this._currentElement = element; - }; - - NoopInternalComponent.prototype.unmountComponent = function unmountComponent() {}; - - NoopInternalComponent.prototype.getHostNode = function getHostNode() { - return undefined; - }; - - NoopInternalComponent.prototype.getPublicInstance = function getPublicInstance() { - return null; - }; - - return NoopInternalComponent; -}(); - -var ShallowComponentWrapper = function (element) { - // TODO: Consolidate with instantiateReactComponent - if ("development" !== 'production') { - this._debugID = getNextDebugID(); - } - - this.construct(element); -}; -_assign(ShallowComponentWrapper.prototype, ReactCompositeComponent, { - _constructComponent: ReactCompositeComponent._constructComponentWithoutOwner, - _instantiateReactComponent: function (element) { - return new NoopInternalComponent(element); - }, - _replaceNodeWithMarkup: function () {}, - _renderValidatedComponent: ReactCompositeComponent._renderValidatedComponentWithoutOwnerOrContext -}); - -function _batchedRender(renderer, element, context) { - var transaction = ReactUpdates.ReactReconcileTransaction.getPooled(true); - renderer._render(element, transaction, context); - ReactUpdates.ReactReconcileTransaction.release(transaction); -} - -var ReactShallowRenderer = function () { - function ReactShallowRenderer() { - _classCallCheck(this, ReactShallowRenderer); - - this._instance = null; - } - - ReactShallowRenderer.prototype.getMountedInstance = function getMountedInstance() { - return this._instance ? this._instance._instance : null; - }; - - ReactShallowRenderer.prototype.render = function render(element, context) { - // Ensure we've done the default injections. This might not be true in the - // case of a simple test that only requires React and the TestUtils in - // conjunction with an inline-requires transform. - ReactDOMInjection.inject(); - ReactDOMStackInjection.inject(); - - !React.isValidElement(element) ? "development" !== 'production' ? invariant(false, 'ReactShallowRenderer render(): Invalid component element.%s', typeof element === 'function' ? ' Instead of passing a component class, make sure to instantiate ' + 'it by passing it to React.createElement.' : '') : _prodInvariant('12', typeof element === 'function' ? ' Instead of passing a component class, make sure to instantiate ' + 'it by passing it to React.createElement.' : '') : void 0; - !(typeof element.type !== 'string') ? "development" !== 'production' ? invariant(false, 'ReactShallowRenderer render(): Shallow rendering works only with custom components, not primitives (%s). Instead of calling `.render(el)` and inspecting the rendered output, look at `el.props` directly instead.', element.type) : _prodInvariant('13', element.type) : void 0; - - if (!context) { - context = emptyObject; - } - ReactUpdates.batchedUpdates(_batchedRender, this, element, context); - - return this.getRenderOutput(); - }; - - ReactShallowRenderer.prototype.getRenderOutput = function getRenderOutput() { - return this._instance && this._instance._renderedComponent && this._instance._renderedComponent._renderedOutput || null; - }; - - ReactShallowRenderer.prototype.unmount = function unmount() { - if (this._instance) { - ReactReconciler.unmountComponent(this._instance, false, /* safely */ - false /* skipLifecycle */ - ); - } - }; - - ReactShallowRenderer.prototype._render = function _render(element, transaction, context) { - if (this._instance) { - ReactReconciler.receiveComponent(this._instance, element, transaction, context); - } else { - var instance = new ShallowComponentWrapper(element); - ReactReconciler.mountComponent(instance, transaction, null, null, context, 0); - this._instance = instance; - } - }; - - return ReactShallowRenderer; -}(); - -module.exports = ReactShallowRenderer; -},{"120":120,"129":129,"138":138,"147":147,"154":154,"162":162,"29":29,"40":40,"47":47,"75":75,"84":84}],80:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _prodInvariant = _dereq_(129), - _assign = _dereq_(162); - -var EventConstants = _dereq_(16); -var EventPluginHub = _dereq_(17); -var EventPluginRegistry = _dereq_(18); -var EventPropagators = _dereq_(20); -var React = _dereq_(138); -var ReactControlledComponent = _dereq_(30); -var ReactDOM = _dereq_(32); -var ReactDOMComponentTree = _dereq_(35); -var ReactBrowserEventEmitter = _dereq_(25); -var ReactInstanceMap = _dereq_(64); -var ReactTypeOfWork = _dereq_(82); -var ReactGenericBatching = _dereq_(60); -var SyntheticEvent = _dereq_(93); -var ReactShallowRenderer = _dereq_(79); - -var findDOMNode = _dereq_(110); -var invariant = _dereq_(154); - -var topLevelTypes = EventConstants.topLevelTypes; -var ClassComponent = ReactTypeOfWork.ClassComponent; -var FunctionalComponent = ReactTypeOfWork.FunctionalComponent; -var HostComponent = ReactTypeOfWork.HostComponent; -var HostContainer = ReactTypeOfWork.HostContainer; -var HostText = ReactTypeOfWork.HostText; - - -function Event(suffix) {} - -/** - * @class ReactTestUtils - */ - -function findAllInRenderedStackTreeInternal(inst, test) { - if (!inst || !inst.getPublicInstance) { - return []; - } - var publicInst = inst.getPublicInstance(); - var ret = test(publicInst) ? [publicInst] : []; - var currentElement = inst._currentElement; - if (ReactTestUtils.isDOMComponent(publicInst)) { - var renderedChildren = inst._renderedChildren; - var key; - for (key in renderedChildren) { - if (!renderedChildren.hasOwnProperty(key)) { - continue; - } - ret = ret.concat(findAllInRenderedStackTreeInternal(renderedChildren[key], test)); - } - } else if (React.isValidElement(currentElement) && typeof currentElement.type === 'function') { - ret = ret.concat(findAllInRenderedStackTreeInternal(inst._renderedComponent, test)); - } - return ret; -} - -function findAllInRenderedFiberTreeInternal(fiber, test) { - if (!fiber) { - return []; - } - if (fiber.tag !== ClassComponent && fiber.tag !== FunctionalComponent && fiber.tag !== HostComponent && fiber.tag !== HostText) { - return []; - } - var publicInst = fiber.stateNode; - var ret = publicInst && test(publicInst) ? [publicInst] : []; - var child = fiber.child; - while (child) { - ret = ret.concat(findAllInRenderedFiberTreeInternal(child, test)); - child = child.sibling; - } - // TODO: visit stateNode for coroutines - return ret; -} - -/** - * Utilities for making it easy to test React components. - * - * See https://facebook.github.io/react/docs/test-utils.html - * - * Todo: Support the entire DOM.scry query syntax. For now, these simple - * utilities will suffice for testing purposes. - * @lends ReactTestUtils - */ -var ReactTestUtils = { - renderIntoDocument: function (element) { - var div = document.createElement('div'); - // None of our tests actually require attaching the container to the - // DOM, and doing so creates a mess that we rely on test isolation to - // clean up, so we're going to stop honoring the name of this method - // (and probably rename it eventually) if no problems arise. - // document.documentElement.appendChild(div); - return ReactDOM.render(element, div); - }, - - isElement: function (element) { - return React.isValidElement(element); - }, - - isElementOfType: function (inst, convenienceConstructor) { - return React.isValidElement(inst) && inst.type === convenienceConstructor; - }, - - isDOMComponent: function (inst) { - return !!(inst && inst.nodeType === 1 && inst.tagName); - }, - - isDOMComponentElement: function (inst) { - return !!(inst && React.isValidElement(inst) && !!inst.tagName); - }, - - isCompositeComponent: function (inst) { - if (ReactTestUtils.isDOMComponent(inst)) { - // Accessing inst.setState warns; just return false as that'll be what - // this returns when we have DOM nodes as refs directly - return false; - } - return inst != null && typeof inst.render === 'function' && typeof inst.setState === 'function'; - }, - - isCompositeComponentWithType: function (inst, type) { - if (!ReactTestUtils.isCompositeComponent(inst)) { - return false; - } - var internalInstance = ReactInstanceMap.get(inst); - var constructor = typeof internalInstance.tag === 'number' ? internalInstance.type : // Fiber reconciler - internalInstance._currentElement.type; // Stack reconciler - - return constructor === type; - }, - - // TODO: deprecate? It's undocumented and unused. - isCompositeComponentElement: function (inst) { - if (!React.isValidElement(inst)) { - return false; - } - // We check the prototype of the type that will get mounted, not the - // instance itself. This is a future proof way of duck typing. - var prototype = inst.type.prototype; - return typeof prototype.render === 'function' && typeof prototype.setState === 'function'; - }, - - // TODO: deprecate? It's undocumented and unused. - isCompositeComponentElementWithType: function (inst, type) { - var internalInstance = ReactInstanceMap.get(inst); - var constructor = internalInstance._currentElement.type; - - return !!(ReactTestUtils.isCompositeComponentElement(inst) && constructor === type); - }, - - // TODO: deprecate? It's undocumented and unused. - getRenderedChildOfCompositeComponent: function (inst) { - if (!ReactTestUtils.isCompositeComponent(inst)) { - return null; - } - var internalInstance = ReactInstanceMap.get(inst); - return internalInstance._renderedComponent.getPublicInstance(); - }, - - findAllInRenderedTree: function (inst, test) { - if (!inst) { - return []; - } - !ReactTestUtils.isCompositeComponent(inst) ? "development" !== 'production' ? invariant(false, 'findAllInRenderedTree(...): instance must be a composite component') : _prodInvariant('10') : void 0; - var internalInstance = ReactInstanceMap.get(inst); - if (internalInstance && typeof internalInstance.tag === 'number') { - var fiber = internalInstance; - var root = fiber; - while (root['return']) { - root = root['return']; - } - var isRootCurrent = root.tag === HostContainer && root.stateNode.current === root; - // Make sure we're introspecting the current tree - var current = isRootCurrent ? fiber : fiber.alternate; - return findAllInRenderedFiberTreeInternal(current, test); - } else { - return findAllInRenderedStackTreeInternal(internalInstance, test); - } - }, - - /** - * Finds all instance of components in the rendered tree that are DOM - * components with the class name matching `className`. - * @return {array} an array of all the matches. - */ - scryRenderedDOMComponentsWithClass: function (root, classNames) { - return ReactTestUtils.findAllInRenderedTree(root, function (inst) { - if (ReactTestUtils.isDOMComponent(inst)) { - var className = inst.className; - if (typeof className !== 'string') { - // SVG, probably. - className = inst.getAttribute('class') || ''; - } - var classList = className.split(/\s+/); - - if (!Array.isArray(classNames)) { - !(classNames !== undefined) ? "development" !== 'production' ? invariant(false, 'TestUtils.scryRenderedDOMComponentsWithClass expects a className as a second argument.') : _prodInvariant('11') : void 0; - classNames = classNames.split(/\s+/); - } - return classNames.every(function (name) { - return classList.indexOf(name) !== -1; - }); - } - return false; - }); - }, - - /** - * Like scryRenderedDOMComponentsWithClass but expects there to be one result, - * and returns that one result, or throws exception if there is any other - * number of matches besides one. - * @return {!ReactDOMComponent} The one match. - */ - findRenderedDOMComponentWithClass: function (root, className) { - var all = ReactTestUtils.scryRenderedDOMComponentsWithClass(root, className); - if (all.length !== 1) { - throw new Error('Did not find exactly one match (found: ' + all.length + ') ' + 'for class:' + className); - } - return all[0]; - }, - - /** - * Finds all instance of components in the rendered tree that are DOM - * components with the tag name matching `tagName`. - * @return {array} an array of all the matches. - */ - scryRenderedDOMComponentsWithTag: function (root, tagName) { - return ReactTestUtils.findAllInRenderedTree(root, function (inst) { - return ReactTestUtils.isDOMComponent(inst) && inst.tagName.toUpperCase() === tagName.toUpperCase(); - }); - }, - - /** - * Like scryRenderedDOMComponentsWithTag but expects there to be one result, - * and returns that one result, or throws exception if there is any other - * number of matches besides one. - * @return {!ReactDOMComponent} The one match. - */ - findRenderedDOMComponentWithTag: function (root, tagName) { - var all = ReactTestUtils.scryRenderedDOMComponentsWithTag(root, tagName); - if (all.length !== 1) { - throw new Error('Did not find exactly one match (found: ' + all.length + ') ' + 'for tag:' + tagName); - } - return all[0]; - }, - - /** - * Finds all instances of components with type equal to `componentType`. - * @return {array} an array of all the matches. - */ - scryRenderedComponentsWithType: function (root, componentType) { - return ReactTestUtils.findAllInRenderedTree(root, function (inst) { - return ReactTestUtils.isCompositeComponentWithType(inst, componentType); - }); - }, - - /** - * Same as `scryRenderedComponentsWithType` but expects there to be one result - * and returns that one result, or throws exception if there is any other - * number of matches besides one. - * @return {!ReactComponent} The one match. - */ - findRenderedComponentWithType: function (root, componentType) { - var all = ReactTestUtils.scryRenderedComponentsWithType(root, componentType); - if (all.length !== 1) { - throw new Error('Did not find exactly one match (found: ' + all.length + ') ' + 'for componentType:' + componentType); - } - return all[0]; - }, - - /** - * Pass a mocked component module to this method to augment it with - * useful methods that allow it to be used as a dummy React component. - * Instead of rendering as usual, the component will become a simple - * <div> containing any provided children. - * - * @param {object} module the mock function object exported from a - * module that defines the component to be mocked - * @param {?string} mockTagName optional dummy root tag name to return - * from render method (overrides - * module.mockTagName if provided) - * @return {object} the ReactTestUtils object (for chaining) - */ - mockComponent: function (module, mockTagName) { - mockTagName = mockTagName || module.mockTagName || 'div'; - - module.prototype.render.mockImplementation(function () { - return React.createElement(mockTagName, null, this.props.children); - }); - - return this; - }, - - /** - * Simulates a top level event being dispatched from a raw event that occurred - * on an `Element` node. - * @param {Object} topLevelType A type from `EventConstants.topLevelTypes` - * @param {!Element} node The dom to simulate an event occurring on. - * @param {?Event} fakeNativeEvent Fake native event to use in SyntheticEvent. - */ - simulateNativeEventOnNode: function (topLevelType, node, fakeNativeEvent) { - fakeNativeEvent.target = node; - ReactBrowserEventEmitter.ReactEventListener.dispatchEvent(topLevelType, fakeNativeEvent); - }, - - /** - * Simulates a top level event being dispatched from a raw event that occurred - * on the `ReactDOMComponent` `comp`. - * @param {Object} topLevelType A type from `EventConstants.topLevelTypes`. - * @param {!ReactDOMComponent} comp - * @param {?Event} fakeNativeEvent Fake native event to use in SyntheticEvent. - */ - simulateNativeEventOnDOMComponent: function (topLevelType, comp, fakeNativeEvent) { - ReactTestUtils.simulateNativeEventOnNode(topLevelType, findDOMNode(comp), fakeNativeEvent); - }, - - nativeTouchData: function (x, y) { - return { - touches: [{ pageX: x, pageY: y }] - }; - }, - - createRenderer: function () { - return new ReactShallowRenderer(); - }, - - Simulate: null, - SimulateNative: {} -}; - -/** - * Exports: - * - * - `ReactTestUtils.Simulate.click(Element/ReactDOMComponent)` - * - `ReactTestUtils.Simulate.mouseMove(Element/ReactDOMComponent)` - * - `ReactTestUtils.Simulate.change(Element/ReactDOMComponent)` - * - ... (All keys from event plugin `eventTypes` objects) - */ -function makeSimulator(eventType) { - return function (domComponentOrNode, eventData) { - var node; - !!React.isValidElement(domComponentOrNode) ? "development" !== 'production' ? invariant(false, 'TestUtils.Simulate expects a component instance and not a ReactElement.TestUtils.Simulate will not work if you are using shallow rendering.') : _prodInvariant('14') : void 0; - if (ReactTestUtils.isDOMComponent(domComponentOrNode)) { - node = findDOMNode(domComponentOrNode); - } else if (domComponentOrNode.tagName) { - node = domComponentOrNode; - } - - var dispatchConfig = EventPluginRegistry.eventNameDispatchConfigs[eventType]; - - var fakeNativeEvent = new Event(); - fakeNativeEvent.target = node; - fakeNativeEvent.type = eventType.toLowerCase(); - - // We don't use SyntheticEvent.getPooled in order to not have to worry about - // properly destroying any properties assigned from `eventData` upon release - var targetInst = ReactDOMComponentTree.getInstanceFromNode(node); - var event = new SyntheticEvent(dispatchConfig, targetInst, fakeNativeEvent, node); - - // Since we aren't using pooling, always persist the event. This will make - // sure it's marked and won't warn when setting additional properties. - event.persist(); - _assign(event, eventData); - - if (dispatchConfig.phasedRegistrationNames) { - EventPropagators.accumulateTwoPhaseDispatches(event); - } else { - EventPropagators.accumulateDirectDispatches(event); - } - - ReactGenericBatching.batchedUpdates(function () { - // Normally extractEvent enqueues a state restore, but we'll just always - // do that since we we're by-passing it here. - ReactControlledComponent.enqueueStateRestore(targetInst); - - EventPluginHub.enqueueEvents(event); - EventPluginHub.processEventQueue(true); - }); - }; -} - -function buildSimulators() { - ReactTestUtils.Simulate = {}; - - var eventType; - for (eventType in EventPluginRegistry.eventNameDispatchConfigs) { - /** - * @param {!Element|ReactDOMComponent} domComponentOrNode - * @param {?object} eventData Fake event data to use in SyntheticEvent. - */ - ReactTestUtils.Simulate[eventType] = makeSimulator(eventType); - } -} - -// Rebuild ReactTestUtils.Simulate whenever event plugins are injected -var oldInjectEventPluginOrder = EventPluginHub.injection.injectEventPluginOrder; -EventPluginHub.injection.injectEventPluginOrder = function () { - oldInjectEventPluginOrder.apply(this, arguments); - buildSimulators(); -}; -var oldInjectEventPlugins = EventPluginHub.injection.injectEventPluginsByName; -EventPluginHub.injection.injectEventPluginsByName = function () { - oldInjectEventPlugins.apply(this, arguments); - buildSimulators(); -}; - -buildSimulators(); - -/** - * Exports: - * - * - `ReactTestUtils.SimulateNative.click(Element/ReactDOMComponent)` - * - `ReactTestUtils.SimulateNative.mouseMove(Element/ReactDOMComponent)` - * - `ReactTestUtils.SimulateNative.mouseIn/ReactDOMComponent)` - * - `ReactTestUtils.SimulateNative.mouseOut(Element/ReactDOMComponent)` - * - ... (All keys from `EventConstants.topLevelTypes`) - * - * Note: Top level event types are a subset of the entire set of handler types - * (which include a broader set of "synthetic" events). For example, onDragDone - * is a synthetic event. Except when testing an event plugin or React's event - * handling code specifically, you probably want to use ReactTestUtils.Simulate - * to dispatch synthetic events. - */ - -function makeNativeSimulator(eventType) { - return function (domComponentOrNode, nativeEventData) { - var fakeNativeEvent = new Event(eventType); - _assign(fakeNativeEvent, nativeEventData); - if (ReactTestUtils.isDOMComponent(domComponentOrNode)) { - ReactTestUtils.simulateNativeEventOnDOMComponent(eventType, domComponentOrNode, fakeNativeEvent); - } else if (domComponentOrNode.tagName) { - // Will allow on actual dom nodes. - ReactTestUtils.simulateNativeEventOnNode(eventType, domComponentOrNode, fakeNativeEvent); - } - }; -} - -Object.keys(topLevelTypes).forEach(function (eventType) { - // Event type is stored as 'topClick' - we transform that to 'click' - var convenienceName = eventType.indexOf('top') === 0 ? eventType.charAt(3).toLowerCase() + eventType.substr(4) : eventType; - /** - * @param {!Element|ReactDOMComponent} domComponentOrNode - * @param {?Event} nativeEventData Fake native event to use in SyntheticEvent. - */ - ReactTestUtils.SimulateNative[convenienceName] = makeNativeSimulator(eventType); -}); - -module.exports = ReactTestUtils; -},{"110":110,"129":129,"138":138,"154":154,"16":16,"162":162,"17":17,"18":18,"20":20,"25":25,"30":30,"32":32,"35":35,"60":60,"64":64,"79":79,"82":82,"93":93}],81:[function(_dereq_,module,exports){ -/** - * Copyright 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -/** - * Return the lowest common ancestor of A and B, or null if they are in - * different trees. - */ - -function getLowestCommonAncestor(instA, instB) { - var depthA = 0; - for (var tempA = instA; tempA; tempA = tempA._hostParent) { - depthA++; - } - var depthB = 0; - for (var tempB = instB; tempB; tempB = tempB._hostParent) { - depthB++; - } - - // If A is deeper, crawl up. - while (depthA - depthB > 0) { - instA = instA._hostParent; - depthA--; - } - - // If B is deeper, crawl up. - while (depthB - depthA > 0) { - instB = instB._hostParent; - depthB--; - } - - // Walk in lockstep until we find a match. - var depth = depthA; - while (depth--) { - if (instA === instB) { - return instA; - } - instA = instA._hostParent; - instB = instB._hostParent; - } - return null; -} - -/** - * Return if A is an ancestor of B. - */ -function isAncestor(instA, instB) { - while (instB) { - if (instB === instA) { - return true; - } - instB = instB._hostParent; - } - return false; -} - -/** - * Return the parent instance of the passed-in instance. - */ -function getParentInstance(inst) { - return inst._hostParent; -} - -/** - * Simulates the traversal of a two-phase, capture/bubble event dispatch. - */ -function traverseTwoPhase(inst, fn, arg) { - var path = []; - while (inst) { - path.push(inst); - inst = inst._hostParent; - } - var i; - for (i = path.length; i-- > 0;) { - fn(path[i], 'captured', arg); - } - for (i = 0; i < path.length; i++) { - fn(path[i], 'bubbled', arg); - } -} - -/** - * Traverses the ID hierarchy and invokes the supplied `cb` on any IDs that - * should would receive a `mouseEnter` or `mouseLeave` event. - * - * Does not invoke the callback on the nearest common ancestor because nothing - * "entered" or "left" that element. - */ -function traverseEnterLeave(from, to, fn, argFrom, argTo) { - var common = from && to ? getLowestCommonAncestor(from, to) : null; - var pathFrom = []; - while (from && from !== common) { - pathFrom.push(from); - from = from._hostParent; - } - var pathTo = []; - while (to && to !== common) { - pathTo.push(to); - to = to._hostParent; - } - var i; - for (i = 0; i < pathFrom.length; i++) { - fn(pathFrom[i], 'bubbled', argFrom); - } - for (i = pathTo.length; i-- > 0;) { - fn(pathTo[i], 'captured', argTo); - } -} - -module.exports = { - isAncestor: isAncestor, - getLowestCommonAncestor: getLowestCommonAncestor, - getParentInstance: getParentInstance, - traverseTwoPhase: traverseTwoPhase, - traverseEnterLeave: traverseEnterLeave -}; -},{}],82:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -'use strict'; - -module.exports = { - IndeterminateComponent: 0, // Before we know whether it is functional or class - FunctionalComponent: 1, - ClassComponent: 2, - HostContainer: 3, // Root of a host tree. Could be nested inside another node. - HostComponent: 4, - HostText: 5, - CoroutineComponent: 6, - CoroutineHandlerPhase: 7, - YieldComponent: 8, - Fragment: 9 -}; -},{}],83:[function(_dereq_,module,exports){ -/** - * Copyright 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _prodInvariant = _dereq_(129); - -var ReactCurrentOwner = _dereq_(137); -var ReactInstanceMap = _dereq_(64); -var ReactInstrumentation = _dereq_(65); -var ReactUpdates = _dereq_(84); - -var invariant = _dereq_(154); -var warning = _dereq_(161); - -function enqueueUpdate(internalInstance) { - ReactUpdates.enqueueUpdate(internalInstance); -} - -function formatUnexpectedArgument(arg) { - var type = typeof arg; - if (type !== 'object') { - return type; - } - var displayName = arg.constructor && arg.constructor.name || type; - var keys = Object.keys(arg); - if (keys.length > 0 && keys.length < 20) { - return displayName + ' (keys: ' + keys.join(', ') + ')'; - } - return displayName; -} - -function getInternalInstanceReadyForUpdate(publicInstance, callerName) { - var internalInstance = ReactInstanceMap.get(publicInstance); - if (!internalInstance) { - if ("development" !== 'production') { - var ctor = publicInstance.constructor; - // Only warn when we have a callerName. Otherwise we should be silent. - // We're probably calling from enqueueCallback. We don't want to warn - // there because we already warned for the corresponding lifecycle method. - "development" !== 'production' ? warning(!callerName, '%s(...): Can only update a mounted or mounting component. ' + 'This usually means you called %s() on an unmounted component. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, ctor && (ctor.displayName || ctor.name) || 'ReactClass') : void 0; - } - return null; - } - - if ("development" !== 'production') { - "development" !== 'production' ? warning(ReactCurrentOwner.current == null, '%s(...): Cannot update during an existing state transition (such as ' + 'within `render` or another component\'s constructor). Render methods ' + 'should be a pure function of props and state; constructor ' + 'side-effects are an anti-pattern, but can be moved to ' + '`componentWillMount`.', callerName) : void 0; - } - - return internalInstance; -} - -/** - * ReactUpdateQueue allows for state updates to be scheduled into a later - * reconciliation step. - */ -var ReactUpdateQueue = { - - /** - * Checks whether or not this composite component is mounted. - * @param {ReactClass} publicInstance The instance we want to test. - * @return {boolean} True if mounted, false otherwise. - * @protected - * @final - */ - isMounted: function (publicInstance) { - if ("development" !== 'production') { - var owner = ReactCurrentOwner.current; - if (owner !== null) { - "development" !== 'production' ? warning(owner._warnedAboutRefsInRender, '%s is accessing isMounted inside its render() function. ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', owner.getName() || 'A component') : void 0; - owner._warnedAboutRefsInRender = true; - } - } - var internalInstance = ReactInstanceMap.get(publicInstance); - if (internalInstance) { - // During componentWillMount and render this will still be null but after - // that will always render to something. At least for now. So we can use - // this hack. - return !!internalInstance._renderedComponent; - } else { - return false; - } - }, - - /** - * Enqueue a callback that will be executed after all the pending updates - * have processed. - * - * @param {ReactClass} publicInstance The instance to use as `this` context. - * @param {?function} callback Called after state is updated. - * @param {string} callerName Name of the calling function in the public API. - * @internal - */ - enqueueCallback: function (publicInstance, callback, callerName) { - ReactUpdateQueue.validateCallback(callback, callerName); - var internalInstance = getInternalInstanceReadyForUpdate(publicInstance); - - // Previously we would throw an error if we didn't have an internal - // instance. Since we want to make it a no-op instead, we mirror the same - // behavior we have in other enqueue* methods. - // We also need to ignore callbacks in componentWillMount. See - // enqueueUpdates. - if (!internalInstance) { - return null; - } - - if (internalInstance._pendingCallbacks) { - internalInstance._pendingCallbacks.push(callback); - } else { - internalInstance._pendingCallbacks = [callback]; - } - // TODO: The callback here is ignored when setState is called from - // componentWillMount. Either fix it or disallow doing so completely in - // favor of getInitialState. Alternatively, we can disallow - // componentWillMount during server-side rendering. - enqueueUpdate(internalInstance); - }, - - enqueueCallbackInternal: function (internalInstance, callback) { - if (internalInstance._pendingCallbacks) { - internalInstance._pendingCallbacks.push(callback); - } else { - internalInstance._pendingCallbacks = [callback]; - } - enqueueUpdate(internalInstance); - }, - - /** - * Forces an update. This should only be invoked when it is known with - * certainty that we are **not** in a DOM transaction. - * - * You may want to call this when you know that some deeper aspect of the - * component's state has changed but `setState` was not called. - * - * This will not invoke `shouldComponentUpdate`, but it will invoke - * `componentWillUpdate` and `componentDidUpdate`. - * - * @param {ReactClass} publicInstance The instance that should rerender. - * @internal - */ - enqueueForceUpdate: function (publicInstance) { - var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'forceUpdate'); - - if (!internalInstance) { - return; - } - - internalInstance._pendingForceUpdate = true; - - enqueueUpdate(internalInstance); - }, - - /** - * Replaces all of the state. Always use this or `setState` to mutate state. - * You should treat `this.state` as immutable. - * - * There is no guarantee that `this.state` will be immediately updated, so - * accessing `this.state` after calling this method may return the old value. - * - * @param {ReactClass} publicInstance The instance that should rerender. - * @param {object} completeState Next state. - * @internal - */ - enqueueReplaceState: function (publicInstance, completeState) { - var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'replaceState'); - - if (!internalInstance) { - return; - } - - internalInstance._pendingStateQueue = [completeState]; - internalInstance._pendingReplaceState = true; - - enqueueUpdate(internalInstance); - }, - - /** - * Sets a subset of the state. This only exists because _pendingState is - * internal. This provides a merging strategy that is not available to deep - * properties which is confusing. TODO: Expose pendingState or don't use it - * during the merge. - * - * @param {ReactClass} publicInstance The instance that should rerender. - * @param {object} partialState Next partial state to be merged with state. - * @internal - */ - enqueueSetState: function (publicInstance, partialState) { - if ("development" !== 'production') { - ReactInstrumentation.debugTool.onSetState(); - "development" !== 'production' ? warning(partialState != null, 'setState(...): You passed an undefined or null state object; ' + 'instead, use forceUpdate().') : void 0; - } - - var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'setState'); - - if (!internalInstance) { - return; - } - - var queue = internalInstance._pendingStateQueue || (internalInstance._pendingStateQueue = []); - queue.push(partialState); - - enqueueUpdate(internalInstance); - }, - - enqueueElementInternal: function (internalInstance, nextElement, nextContext) { - internalInstance._pendingElement = nextElement; - // TODO: introduce _pendingContext instead of setting it directly. - internalInstance._context = nextContext; - enqueueUpdate(internalInstance); - }, - - validateCallback: function (callback, callerName) { - !(!callback || typeof callback === 'function') ? "development" !== 'production' ? invariant(false, '%s(...): Expected the last optional `callback` argument to be a function. Instead received: %s.', callerName, formatUnexpectedArgument(callback)) : _prodInvariant('122', callerName, formatUnexpectedArgument(callback)) : void 0; - } - -}; - -module.exports = ReactUpdateQueue; -},{"129":129,"137":137,"154":154,"161":161,"64":64,"65":65,"84":84}],84:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _prodInvariant = _dereq_(129), - _assign = _dereq_(162); - -var PooledClass = _dereq_(24); -var ReactFeatureFlags = _dereq_(59); -var ReactReconciler = _dereq_(75); -var Transaction = _dereq_(102); - -var invariant = _dereq_(154); - -var dirtyComponents = []; -var updateBatchNumber = 0; - -var batchingStrategy = null; - -function ensureInjected() { - !(ReactUpdates.ReactReconcileTransaction && batchingStrategy) ? "development" !== 'production' ? invariant(false, 'ReactUpdates: must inject a reconcile transaction class and batching strategy') : _prodInvariant('123') : void 0; -} - -var NESTED_UPDATES = { - initialize: function () { - this.dirtyComponentsLength = dirtyComponents.length; - }, - close: function () { - if (this.dirtyComponentsLength !== dirtyComponents.length) { - // Additional updates were enqueued by componentDidUpdate handlers or - // similar; before our own UPDATE_QUEUEING wrapper closes, we want to run - // these new updates so that if A's componentDidUpdate calls setState on - // B, B will update before the callback A's updater provided when calling - // setState. - dirtyComponents.splice(0, this.dirtyComponentsLength); - flushBatchedUpdates(); - } else { - dirtyComponents.length = 0; - } - } -}; - -var TRANSACTION_WRAPPERS = [NESTED_UPDATES]; - -function ReactUpdatesFlushTransaction() { - this.reinitializeTransaction(); - this.dirtyComponentsLength = null; - this.reconcileTransaction = ReactUpdates.ReactReconcileTransaction.getPooled( - /* useCreateElement */true); -} - -_assign(ReactUpdatesFlushTransaction.prototype, Transaction, { - getTransactionWrappers: function () { - return TRANSACTION_WRAPPERS; - }, - - destructor: function () { - this.dirtyComponentsLength = null; - ReactUpdates.ReactReconcileTransaction.release(this.reconcileTransaction); - this.reconcileTransaction = null; - }, - - perform: function (method, scope, a) { - // Essentially calls `this.reconcileTransaction.perform(method, scope, a)` - // with this transaction's wrappers around it. - return Transaction.perform.call(this, this.reconcileTransaction.perform, this.reconcileTransaction, method, scope, a); - } -}); - -PooledClass.addPoolingTo(ReactUpdatesFlushTransaction); - -function batchedUpdates(callback, a, b, c, d, e) { - ensureInjected(); - return batchingStrategy.batchedUpdates(callback, a, b, c, d, e); -} - -/** - * Array comparator for ReactComponents by mount ordering. - * - * @param {ReactComponent} c1 first component you're comparing - * @param {ReactComponent} c2 second component you're comparing - * @return {number} Return value usable by Array.prototype.sort(). - */ -function mountOrderComparator(c1, c2) { - return c1._mountOrder - c2._mountOrder; -} - -function runBatchedUpdates(transaction) { - var len = transaction.dirtyComponentsLength; - !(len === dirtyComponents.length) ? "development" !== 'production' ? invariant(false, 'Expected flush transaction\'s stored dirty-components length (%s) to match dirty-components array length (%s).', len, dirtyComponents.length) : _prodInvariant('124', len, dirtyComponents.length) : void 0; - - // Since reconciling a component higher in the owner hierarchy usually (not - // always -- see shouldComponentUpdate()) will reconcile children, reconcile - // them before their children by sorting the array. - dirtyComponents.sort(mountOrderComparator); - - // Any updates enqueued while reconciling must be performed after this entire - // batch. Otherwise, if dirtyComponents is [A, B] where A has children B and - // C, B could update twice in a single batch if C's render enqueues an update - // to B (since B would have already updated, we should skip it, and the only - // way we can know to do so is by checking the batch counter). - updateBatchNumber++; - - for (var i = 0; i < len; i++) { - // If a component is unmounted before pending changes apply, it will still - // be here, but we assume that it has cleared its _pendingCallbacks and - // that performUpdateIfNecessary is a noop. - var component = dirtyComponents[i]; - - // If performUpdateIfNecessary happens to enqueue any new updates, we - // shouldn't execute the callbacks until the next render happens, so - // stash the callbacks first - var callbacks = component._pendingCallbacks; - component._pendingCallbacks = null; - - var markerName; - if (ReactFeatureFlags.logTopLevelRenders) { - var namedComponent = component; - // Duck type TopLevelWrapper. This is probably always true. - if (component._currentElement.type.isReactTopLevelWrapper) { - namedComponent = component._renderedComponent; - } - markerName = 'React update: ' + namedComponent.getName(); - console.time(markerName); - } - - ReactReconciler.performUpdateIfNecessary(component, transaction.reconcileTransaction, updateBatchNumber); - - if (markerName) { - console.timeEnd(markerName); - } - - if (callbacks) { - for (var j = 0; j < callbacks.length; j++) { - transaction.reconcileTransaction.getReactMountReady().enqueue(callbacks[j], component.getPublicInstance()); - } - } - } -} - -var flushBatchedUpdates = function () { - // ReactUpdatesFlushTransaction's wrappers will clear the dirtyComponents - // array and perform any updates enqueued by mount-ready handlers (i.e., - // componentDidUpdate) but we need to check here too in order to catch - // updates enqueued by setState callbacks. - while (dirtyComponents.length) { - if (dirtyComponents.length) { - var transaction = ReactUpdatesFlushTransaction.getPooled(); - transaction.perform(runBatchedUpdates, null, transaction); - ReactUpdatesFlushTransaction.release(transaction); - } - } -}; - -/** - * Mark a component as needing a rerender, adding an optional callback to a - * list of functions which will be executed once the rerender occurs. - */ -function enqueueUpdate(component) { - ensureInjected(); - - // Various parts of our code (such as ReactCompositeComponent's - // _renderValidatedComponent) assume that calls to render aren't nested; - // verify that that's the case. (This is called by each top-level update - // function, like setState, forceUpdate, etc.; creation and - // destruction of top-level components is guarded in ReactMount.) - - if (!batchingStrategy.isBatchingUpdates) { - batchingStrategy.batchedUpdates(enqueueUpdate, component); - return; - } - - dirtyComponents.push(component); - if (component._updateBatchNumber == null) { - component._updateBatchNumber = updateBatchNumber + 1; - } -} - -var ReactUpdatesInjection = { - injectReconcileTransaction: function (ReconcileTransaction) { - !ReconcileTransaction ? "development" !== 'production' ? invariant(false, 'ReactUpdates: must provide a reconcile transaction class') : _prodInvariant('126') : void 0; - ReactUpdates.ReactReconcileTransaction = ReconcileTransaction; - }, - - injectBatchingStrategy: function (_batchingStrategy) { - !_batchingStrategy ? "development" !== 'production' ? invariant(false, 'ReactUpdates: must provide a batching strategy') : _prodInvariant('127') : void 0; - !(typeof _batchingStrategy.batchedUpdates === 'function') ? "development" !== 'production' ? invariant(false, 'ReactUpdates: must provide a batchedUpdates() function') : _prodInvariant('128') : void 0; - !(typeof _batchingStrategy.isBatchingUpdates === 'boolean') ? "development" !== 'production' ? invariant(false, 'ReactUpdates: must provide an isBatchingUpdates boolean attribute') : _prodInvariant('129') : void 0; - batchingStrategy = _batchingStrategy; - }, - - getBatchingStrategy: function () { - return batchingStrategy; - } -}; - -var ReactUpdates = { - /** - * React references `ReactReconcileTransaction` using this property in order - * to allow dependency injection. - * - * @internal - */ - ReactReconcileTransaction: null, - - batchedUpdates: batchedUpdates, - enqueueUpdate: enqueueUpdate, - flushBatchedUpdates: flushBatchedUpdates, - injection: ReactUpdatesInjection -}; - -module.exports = ReactUpdates; -},{"102":102,"129":129,"154":154,"162":162,"24":24,"59":59,"75":75}],85:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -module.exports = '16.0.0-alpha'; -},{}],86:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var NS = { - xlink: 'http://www.w3.org/1999/xlink', - xml: 'http://www.w3.org/XML/1998/namespace' -}; - -// We use attributes for everything SVG so let's avoid some duplication and run -// code instead. -// The following are all specified in the HTML config already so we exclude here. -// - class (as className) -// - color -// - height -// - id -// - lang -// - max -// - media -// - method -// - min -// - name -// - style -// - target -// - type -// - width -var ATTRS = { - accentHeight: 'accent-height', - accumulate: 0, - additive: 0, - alignmentBaseline: 'alignment-baseline', - allowReorder: 'allowReorder', - alphabetic: 0, - amplitude: 0, - arabicForm: 'arabic-form', - ascent: 0, - attributeName: 'attributeName', - attributeType: 'attributeType', - autoReverse: 'autoReverse', - azimuth: 0, - baseFrequency: 'baseFrequency', - baseProfile: 'baseProfile', - baselineShift: 'baseline-shift', - bbox: 0, - begin: 0, - bias: 0, - by: 0, - calcMode: 'calcMode', - capHeight: 'cap-height', - clip: 0, - clipPath: 'clip-path', - clipRule: 'clip-rule', - clipPathUnits: 'clipPathUnits', - colorInterpolation: 'color-interpolation', - colorInterpolationFilters: 'color-interpolation-filters', - colorProfile: 'color-profile', - colorRendering: 'color-rendering', - contentScriptType: 'contentScriptType', - contentStyleType: 'contentStyleType', - cursor: 0, - cx: 0, - cy: 0, - d: 0, - decelerate: 0, - descent: 0, - diffuseConstant: 'diffuseConstant', - direction: 0, - display: 0, - divisor: 0, - dominantBaseline: 'dominant-baseline', - dur: 0, - dx: 0, - dy: 0, - edgeMode: 'edgeMode', - elevation: 0, - enableBackground: 'enable-background', - end: 0, - exponent: 0, - externalResourcesRequired: 'externalResourcesRequired', - fill: 0, - fillOpacity: 'fill-opacity', - fillRule: 'fill-rule', - filter: 0, - filterRes: 'filterRes', - filterUnits: 'filterUnits', - floodColor: 'flood-color', - floodOpacity: 'flood-opacity', - focusable: 0, - fontFamily: 'font-family', - fontSize: 'font-size', - fontSizeAdjust: 'font-size-adjust', - fontStretch: 'font-stretch', - fontStyle: 'font-style', - fontVariant: 'font-variant', - fontWeight: 'font-weight', - format: 0, - from: 0, - fx: 0, - fy: 0, - g1: 0, - g2: 0, - glyphName: 'glyph-name', - glyphOrientationHorizontal: 'glyph-orientation-horizontal', - glyphOrientationVertical: 'glyph-orientation-vertical', - glyphRef: 'glyphRef', - gradientTransform: 'gradientTransform', - gradientUnits: 'gradientUnits', - hanging: 0, - horizAdvX: 'horiz-adv-x', - horizOriginX: 'horiz-origin-x', - ideographic: 0, - imageRendering: 'image-rendering', - 'in': 0, - in2: 0, - intercept: 0, - k: 0, - k1: 0, - k2: 0, - k3: 0, - k4: 0, - kernelMatrix: 'kernelMatrix', - kernelUnitLength: 'kernelUnitLength', - kerning: 0, - keyPoints: 'keyPoints', - keySplines: 'keySplines', - keyTimes: 'keyTimes', - lengthAdjust: 'lengthAdjust', - letterSpacing: 'letter-spacing', - lightingColor: 'lighting-color', - limitingConeAngle: 'limitingConeAngle', - local: 0, - markerEnd: 'marker-end', - markerMid: 'marker-mid', - markerStart: 'marker-start', - markerHeight: 'markerHeight', - markerUnits: 'markerUnits', - markerWidth: 'markerWidth', - mask: 0, - maskContentUnits: 'maskContentUnits', - maskUnits: 'maskUnits', - mathematical: 0, - mode: 0, - numOctaves: 'numOctaves', - offset: 0, - opacity: 0, - operator: 0, - order: 0, - orient: 0, - orientation: 0, - origin: 0, - overflow: 0, - overlinePosition: 'overline-position', - overlineThickness: 'overline-thickness', - paintOrder: 'paint-order', - panose1: 'panose-1', - pathLength: 'pathLength', - patternContentUnits: 'patternContentUnits', - patternTransform: 'patternTransform', - patternUnits: 'patternUnits', - pointerEvents: 'pointer-events', - points: 0, - pointsAtX: 'pointsAtX', - pointsAtY: 'pointsAtY', - pointsAtZ: 'pointsAtZ', - preserveAlpha: 'preserveAlpha', - preserveAspectRatio: 'preserveAspectRatio', - primitiveUnits: 'primitiveUnits', - r: 0, - radius: 0, - refX: 'refX', - refY: 'refY', - renderingIntent: 'rendering-intent', - repeatCount: 'repeatCount', - repeatDur: 'repeatDur', - requiredExtensions: 'requiredExtensions', - requiredFeatures: 'requiredFeatures', - restart: 0, - result: 0, - rotate: 0, - rx: 0, - ry: 0, - scale: 0, - seed: 0, - shapeRendering: 'shape-rendering', - slope: 0, - spacing: 0, - specularConstant: 'specularConstant', - specularExponent: 'specularExponent', - speed: 0, - spreadMethod: 'spreadMethod', - startOffset: 'startOffset', - stdDeviation: 'stdDeviation', - stemh: 0, - stemv: 0, - stitchTiles: 'stitchTiles', - stopColor: 'stop-color', - stopOpacity: 'stop-opacity', - strikethroughPosition: 'strikethrough-position', - strikethroughThickness: 'strikethrough-thickness', - string: 0, - stroke: 0, - strokeDasharray: 'stroke-dasharray', - strokeDashoffset: 'stroke-dashoffset', - strokeLinecap: 'stroke-linecap', - strokeLinejoin: 'stroke-linejoin', - strokeMiterlimit: 'stroke-miterlimit', - strokeOpacity: 'stroke-opacity', - strokeWidth: 'stroke-width', - surfaceScale: 'surfaceScale', - systemLanguage: 'systemLanguage', - tableValues: 'tableValues', - targetX: 'targetX', - targetY: 'targetY', - textAnchor: 'text-anchor', - textDecoration: 'text-decoration', - textRendering: 'text-rendering', - textLength: 'textLength', - to: 0, - transform: 0, - u1: 0, - u2: 0, - underlinePosition: 'underline-position', - underlineThickness: 'underline-thickness', - unicode: 0, - unicodeBidi: 'unicode-bidi', - unicodeRange: 'unicode-range', - unitsPerEm: 'units-per-em', - vAlphabetic: 'v-alphabetic', - vHanging: 'v-hanging', - vIdeographic: 'v-ideographic', - vMathematical: 'v-mathematical', - values: 0, - vectorEffect: 'vector-effect', - version: 0, - vertAdvY: 'vert-adv-y', - vertOriginX: 'vert-origin-x', - vertOriginY: 'vert-origin-y', - viewBox: 'viewBox', - viewTarget: 'viewTarget', - visibility: 0, - widths: 0, - wordSpacing: 'word-spacing', - writingMode: 'writing-mode', - x: 0, - xHeight: 'x-height', - x1: 0, - x2: 0, - xChannelSelector: 'xChannelSelector', - xlinkActuate: 'xlink:actuate', - xlinkArcrole: 'xlink:arcrole', - xlinkHref: 'xlink:href', - xlinkRole: 'xlink:role', - xlinkShow: 'xlink:show', - xlinkTitle: 'xlink:title', - xlinkType: 'xlink:type', - xmlBase: 'xml:base', - xmlns: 0, - xmlnsXlink: 'xmlns:xlink', - xmlLang: 'xml:lang', - xmlSpace: 'xml:space', - y: 0, - y1: 0, - y2: 0, - yChannelSelector: 'yChannelSelector', - z: 0, - zoomAndPan: 'zoomAndPan' -}; - -var SVGDOMPropertyConfig = { - Properties: {}, - DOMAttributeNamespaces: { - xlinkActuate: NS.xlink, - xlinkArcrole: NS.xlink, - xlinkHref: NS.xlink, - xlinkRole: NS.xlink, - xlinkShow: NS.xlink, - xlinkTitle: NS.xlink, - xlinkType: NS.xlink, - xmlBase: NS.xml, - xmlLang: NS.xml, - xmlSpace: NS.xml - }, - DOMAttributeNames: {} -}; - -Object.keys(ATTRS).forEach(function (key) { - SVGDOMPropertyConfig.Properties[key] = 0; - if (ATTRS[key]) { - SVGDOMPropertyConfig.DOMAttributeNames[key] = ATTRS[key]; - } -}); - -module.exports = SVGDOMPropertyConfig; -},{}],87:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var EventPropagators = _dereq_(20); -var ExecutionEnvironment = _dereq_(140); -var ReactBrowserEventEmitter = _dereq_(25); -var ReactDOMComponentTree = _dereq_(35); -var ReactInputSelection = _dereq_(63); -var SyntheticEvent = _dereq_(93); - -var getActiveElement = _dereq_(149); -var isTextInputElement = _dereq_(127); -var shallowEqual = _dereq_(160); - -// Node type for document fragments (Node.DOCUMENT_FRAGMENT_NODE). -var DOC_FRAGMENT_TYPE = 11; - -var skipSelectionChangeEvent = ExecutionEnvironment.canUseDOM && 'documentMode' in document && document.documentMode <= 11; - -var eventTypes = { - select: { - phasedRegistrationNames: { - bubbled: 'onSelect', - captured: 'onSelectCapture' - }, - dependencies: ['topBlur', 'topContextMenu', 'topFocus', 'topKeyDown', 'topKeyUp', 'topMouseDown', 'topMouseUp', 'topSelectionChange'] - } -}; - -var activeElement = null; -var activeElementInst = null; -var lastSelection = null; -var mouseDown = false; - -// Track whether all listeners exists for this plugin. If none exist, we do -// not extract events. See #3639. -var isListeningToAllDependencies = ReactBrowserEventEmitter.isListeningToAllDependencies; - -/** - * Get an object which is a unique representation of the current selection. - * - * The return value will not be consistent across nodes or browsers, but - * two identical selections on the same node will return identical objects. - * - * @param {DOMElement} node - * @return {object} - */ -function getSelection(node) { - if ('selectionStart' in node && ReactInputSelection.hasSelectionCapabilities(node)) { - return { - start: node.selectionStart, - end: node.selectionEnd - }; - } else if (window.getSelection) { - var selection = window.getSelection(); - return { - anchorNode: selection.anchorNode, - anchorOffset: selection.anchorOffset, - focusNode: selection.focusNode, - focusOffset: selection.focusOffset - }; - } else if (document.selection) { - var range = document.selection.createRange(); - return { - parentElement: range.parentElement(), - text: range.text, - top: range.boundingTop, - left: range.boundingLeft - }; - } -} - -/** - * Poll selection to see whether it's changed. - * - * @param {object} nativeEvent - * @return {?SyntheticEvent} - */ -function constructSelectEvent(nativeEvent, nativeEventTarget) { - // Ensure we have the right element, and that the user is not dragging a - // selection (this matches native `select` event behavior). In HTML5, select - // fires only on input and textarea thus if there's no focused element we - // won't dispatch. - if (mouseDown || activeElement == null || activeElement !== getActiveElement()) { - return null; - } - - // Only fire when selection has actually changed. - var currentSelection = getSelection(activeElement); - if (!lastSelection || !shallowEqual(lastSelection, currentSelection)) { - lastSelection = currentSelection; - - var syntheticEvent = SyntheticEvent.getPooled(eventTypes.select, activeElementInst, nativeEvent, nativeEventTarget); - - syntheticEvent.type = 'select'; - syntheticEvent.target = activeElement; - - EventPropagators.accumulateTwoPhaseDispatches(syntheticEvent); - - return syntheticEvent; - } - - return null; -} - -/** - * This plugin creates an `onSelect` event that normalizes select events - * across form elements. - * - * Supported elements are: - * - input (see `isTextInputElement`) - * - textarea - * - contentEditable - * - * This differs from native browser implementations in the following ways: - * - Fires on contentEditable fields as well as inputs. - * - Fires for collapsed selection. - * - Fires after user input. - */ -var SelectEventPlugin = { - - eventTypes: eventTypes, - - extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) { - if (targetInst) { - var containerInfo = targetInst._hostContainerInfo; - var isDocumentFragment = containerInfo._node && containerInfo._node.nodeType === DOC_FRAGMENT_TYPE; - var doc = isDocumentFragment ? containerInfo._node : containerInfo._ownerDocument; - if (!isListeningToAllDependencies('onSelect', doc)) { - return null; - } - } - - var targetNode = targetInst ? ReactDOMComponentTree.getNodeFromInstance(targetInst) : window; - - switch (topLevelType) { - // Track the input node that has focus. - case 'topFocus': - if (isTextInputElement(targetNode) || targetNode.contentEditable === 'true') { - activeElement = targetNode; - activeElementInst = targetInst; - lastSelection = null; - } - break; - case 'topBlur': - activeElement = null; - activeElementInst = null; - lastSelection = null; - break; - - // Don't fire the event while the user is dragging. This matches the - // semantics of the native select event. - case 'topMouseDown': - mouseDown = true; - break; - case 'topContextMenu': - case 'topMouseUp': - mouseDown = false; - return constructSelectEvent(nativeEvent, nativeEventTarget); - - // Chrome and IE fire non-standard event when selection is changed (and - // sometimes when it hasn't). IE's event fires out of order with respect - // to key and input events on deletion, so we discard it. - // - // Firefox doesn't support selectionchange, so check selection status - // after each key entry. The selection changes after keydown and before - // keyup, but we check on keydown as well in the case of holding down a - // key, when multiple keydown events are fired but only one keyup is. - // This is also our approach for IE handling, for the reason above. - case 'topSelectionChange': - if (skipSelectionChangeEvent) { - break; - } - // falls through - case 'topKeyDown': - case 'topKeyUp': - return constructSelectEvent(nativeEvent, nativeEventTarget); - } - - return null; - } - -}; - -module.exports = SelectEventPlugin; -},{"127":127,"140":140,"149":149,"160":160,"20":20,"25":25,"35":35,"63":63,"93":93}],88:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -'use strict'; - -var _prodInvariant = _dereq_(129); - -var EventPropagators = _dereq_(20); -var SyntheticAnimationEvent = _dereq_(89); -var SyntheticClipboardEvent = _dereq_(90); -var SyntheticEvent = _dereq_(93); -var SyntheticFocusEvent = _dereq_(94); -var SyntheticKeyboardEvent = _dereq_(96); -var SyntheticMouseEvent = _dereq_(97); -var SyntheticDragEvent = _dereq_(92); -var SyntheticTouchEvent = _dereq_(98); -var SyntheticTransitionEvent = _dereq_(99); -var SyntheticUIEvent = _dereq_(100); -var SyntheticWheelEvent = _dereq_(101); - -var getEventCharCode = _dereq_(114); -var invariant = _dereq_(154); - -/** - * Turns - * ['abort', ...] - * into - * eventTypes = { - * 'abort': { - * phasedRegistrationNames: { - * bubbled: 'onAbort', - * captured: 'onAbortCapture', - * }, - * dependencies: ['topAbort'], - * }, - * ... - * }; - * topLevelEventsToDispatchConfig = { - * 'topAbort': { sameConfig } - * }; - */ -var eventTypes = {}; -var topLevelEventsToDispatchConfig = {}; -['abort', 'animationEnd', 'animationIteration', 'animationStart', 'blur', 'canPlay', 'canPlayThrough', 'click', 'contextMenu', 'copy', 'cut', 'doubleClick', 'drag', 'dragEnd', 'dragEnter', 'dragExit', 'dragLeave', 'dragOver', 'dragStart', 'drop', 'durationChange', 'emptied', 'encrypted', 'ended', 'error', 'focus', 'input', 'invalid', 'keyDown', 'keyPress', 'keyUp', 'load', 'loadedData', 'loadedMetadata', 'loadStart', 'mouseDown', 'mouseMove', 'mouseOut', 'mouseOver', 'mouseUp', 'paste', 'pause', 'play', 'playing', 'progress', 'rateChange', 'reset', 'scroll', 'seeked', 'seeking', 'stalled', 'submit', 'suspend', 'timeUpdate', 'touchCancel', 'touchEnd', 'touchMove', 'touchStart', 'transitionEnd', 'volumeChange', 'waiting', 'wheel'].forEach(function (event) { - var capitalizedEvent = event[0].toUpperCase() + event.slice(1); - var onEvent = 'on' + capitalizedEvent; - var topEvent = 'top' + capitalizedEvent; - - var type = { - phasedRegistrationNames: { - bubbled: onEvent, - captured: onEvent + 'Capture' - }, - dependencies: [topEvent] - }; - eventTypes[event] = type; - topLevelEventsToDispatchConfig[topEvent] = type; -}); - -function isInteractive(tag) { - return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea'; -} - -function shouldPreventMouseEvent(inst) { - if (inst) { - var disabled = inst._currentElement && inst._currentElement.props.disabled; - - if (disabled) { - return isInteractive(inst._tag); - } - } - - return false; -} - -var SimpleEventPlugin = { - - eventTypes: eventTypes, - - extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) { - var dispatchConfig = topLevelEventsToDispatchConfig[topLevelType]; - if (!dispatchConfig) { - return null; - } - var EventConstructor; - switch (topLevelType) { - case 'topAbort': - case 'topCanPlay': - case 'topCanPlayThrough': - case 'topDurationChange': - case 'topEmptied': - case 'topEncrypted': - case 'topEnded': - case 'topError': - case 'topInput': - case 'topInvalid': - case 'topLoad': - case 'topLoadedData': - case 'topLoadedMetadata': - case 'topLoadStart': - case 'topPause': - case 'topPlay': - case 'topPlaying': - case 'topProgress': - case 'topRateChange': - case 'topReset': - case 'topSeeked': - case 'topSeeking': - case 'topStalled': - case 'topSubmit': - case 'topSuspend': - case 'topTimeUpdate': - case 'topVolumeChange': - case 'topWaiting': - // HTML Events - // @see http://www.w3.org/TR/html5/index.html#events-0 - EventConstructor = SyntheticEvent; - break; - case 'topKeyPress': - // Firefox creates a keypress event for function keys too. This removes - // the unwanted keypress events. Enter is however both printable and - // non-printable. One would expect Tab to be as well (but it isn't). - if (getEventCharCode(nativeEvent) === 0) { - return null; - } - /* falls through */ - case 'topKeyDown': - case 'topKeyUp': - EventConstructor = SyntheticKeyboardEvent; - break; - case 'topBlur': - case 'topFocus': - EventConstructor = SyntheticFocusEvent; - break; - case 'topClick': - // Firefox creates a click event on right mouse clicks. This removes the - // unwanted click events. - if (nativeEvent.button === 2) { - return null; - } - /* falls through */ - case 'topDoubleClick': - case 'topMouseDown': - case 'topMouseMove': - case 'topMouseUp': - // Disabled elements should not respond to mouse events - if (shouldPreventMouseEvent(targetInst)) { - return null; - } - /* falls through */ - case 'topMouseOut': - case 'topMouseOver': - case 'topContextMenu': - EventConstructor = SyntheticMouseEvent; - break; - case 'topDrag': - case 'topDragEnd': - case 'topDragEnter': - case 'topDragExit': - case 'topDragLeave': - case 'topDragOver': - case 'topDragStart': - case 'topDrop': - EventConstructor = SyntheticDragEvent; - break; - case 'topTouchCancel': - case 'topTouchEnd': - case 'topTouchMove': - case 'topTouchStart': - EventConstructor = SyntheticTouchEvent; - break; - case 'topAnimationEnd': - case 'topAnimationIteration': - case 'topAnimationStart': - EventConstructor = SyntheticAnimationEvent; - break; - case 'topTransitionEnd': - EventConstructor = SyntheticTransitionEvent; - break; - case 'topScroll': - EventConstructor = SyntheticUIEvent; - break; - case 'topWheel': - EventConstructor = SyntheticWheelEvent; - break; - case 'topCopy': - case 'topCut': - case 'topPaste': - EventConstructor = SyntheticClipboardEvent; - break; - } - !EventConstructor ? "development" !== 'production' ? invariant(false, 'SimpleEventPlugin: Unhandled event type, `%s`.', topLevelType) : _prodInvariant('86', topLevelType) : void 0; - var event = EventConstructor.getPooled(dispatchConfig, targetInst, nativeEvent, nativeEventTarget); - EventPropagators.accumulateTwoPhaseDispatches(event); - return event; - } - -}; - -module.exports = SimpleEventPlugin; -},{"100":100,"101":101,"114":114,"129":129,"154":154,"20":20,"89":89,"90":90,"92":92,"93":93,"94":94,"96":96,"97":97,"98":98,"99":99}],89:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var SyntheticEvent = _dereq_(93); - -/** - * @interface Event - * @see http://www.w3.org/TR/css3-animations/#AnimationEvent-interface - * @see https://developer.mozilla.org/en-US/docs/Web/API/AnimationEvent - */ -var AnimationEventInterface = { - animationName: null, - elapsedTime: null, - pseudoElement: null -}; - -/** - * @param {object} dispatchConfig Configuration used to dispatch this event. - * @param {string} dispatchMarker Marker identifying the event target. - * @param {object} nativeEvent Native browser event. - * @extends {SyntheticEvent} - */ -function SyntheticAnimationEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { - return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); -} - -SyntheticEvent.augmentClass(SyntheticAnimationEvent, AnimationEventInterface); - -module.exports = SyntheticAnimationEvent; -},{"93":93}],90:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var SyntheticEvent = _dereq_(93); - -/** - * @interface Event - * @see http://www.w3.org/TR/clipboard-apis/ - */ -var ClipboardEventInterface = { - clipboardData: function (event) { - return 'clipboardData' in event ? event.clipboardData : window.clipboardData; - } -}; - -/** - * @param {object} dispatchConfig Configuration used to dispatch this event. - * @param {string} dispatchMarker Marker identifying the event target. - * @param {object} nativeEvent Native browser event. - * @extends {SyntheticUIEvent} - */ -function SyntheticClipboardEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { - return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); -} - -SyntheticEvent.augmentClass(SyntheticClipboardEvent, ClipboardEventInterface); - -module.exports = SyntheticClipboardEvent; -},{"93":93}],91:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var SyntheticEvent = _dereq_(93); - -/** - * @interface Event - * @see http://www.w3.org/TR/DOM-Level-3-Events/#events-compositionevents - */ -var CompositionEventInterface = { - data: null -}; - -/** - * @param {object} dispatchConfig Configuration used to dispatch this event. - * @param {string} dispatchMarker Marker identifying the event target. - * @param {object} nativeEvent Native browser event. - * @extends {SyntheticUIEvent} - */ -function SyntheticCompositionEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { - return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); -} - -SyntheticEvent.augmentClass(SyntheticCompositionEvent, CompositionEventInterface); - -module.exports = SyntheticCompositionEvent; -},{"93":93}],92:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var SyntheticMouseEvent = _dereq_(97); - -/** - * @interface DragEvent - * @see http://www.w3.org/TR/DOM-Level-3-Events/ - */ -var DragEventInterface = { - dataTransfer: null -}; - -/** - * @param {object} dispatchConfig Configuration used to dispatch this event. - * @param {string} dispatchMarker Marker identifying the event target. - * @param {object} nativeEvent Native browser event. - * @extends {SyntheticUIEvent} - */ -function SyntheticDragEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { - return SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); -} - -SyntheticMouseEvent.augmentClass(SyntheticDragEvent, DragEventInterface); - -module.exports = SyntheticDragEvent; -},{"97":97}],93:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _assign = _dereq_(162); - -var PooledClass = _dereq_(24); - -var emptyFunction = _dereq_(146); -var warning = _dereq_(161); - -var didWarnForAddedNewProperty = false; -var isProxySupported = typeof Proxy === 'function'; - -var shouldBeReleasedProperties = ['dispatchConfig', '_targetInst', 'nativeEvent', 'isDefaultPrevented', 'isPropagationStopped', '_dispatchListeners', '_dispatchInstances']; - -/** - * @interface Event - * @see http://www.w3.org/TR/DOM-Level-3-Events/ - */ -var EventInterface = { - type: null, - target: null, - // currentTarget is set when dispatching; no use in copying it here - currentTarget: emptyFunction.thatReturnsNull, - eventPhase: null, - bubbles: null, - cancelable: null, - timeStamp: function (event) { - return event.timeStamp || Date.now(); - }, - defaultPrevented: null, - isTrusted: null -}; - -/** - * Synthetic events are dispatched by event plugins, typically in response to a - * top-level event delegation handler. - * - * These systems should generally use pooling to reduce the frequency of garbage - * collection. The system should check `isPersistent` to determine whether the - * event should be released into the pool after being dispatched. Users that - * need a persisted event should invoke `persist`. - * - * Synthetic events (and subclasses) implement the DOM Level 3 Events API by - * normalizing browser quirks. Subclasses do not necessarily have to implement a - * DOM interface; custom application-specific events can also subclass this. - * - * @param {object} dispatchConfig Configuration used to dispatch this event. - * @param {*} targetInst Marker identifying the event target. - * @param {object} nativeEvent Native browser event. - * @param {DOMEventTarget} nativeEventTarget Target node. - */ -function SyntheticEvent(dispatchConfig, targetInst, nativeEvent, nativeEventTarget) { - if ("development" !== 'production') { - // these have a getter/setter for warnings - delete this.nativeEvent; - delete this.preventDefault; - delete this.stopPropagation; - } - - this.dispatchConfig = dispatchConfig; - this._targetInst = targetInst; - this.nativeEvent = nativeEvent; - - var Interface = this.constructor.Interface; - for (var propName in Interface) { - if (!Interface.hasOwnProperty(propName)) { - continue; - } - if ("development" !== 'production') { - delete this[propName]; // this has a getter/setter for warnings - } - var normalize = Interface[propName]; - if (normalize) { - this[propName] = normalize(nativeEvent); - } else { - if (propName === 'target') { - this.target = nativeEventTarget; - } else { - this[propName] = nativeEvent[propName]; - } - } - } - - var defaultPrevented = nativeEvent.defaultPrevented != null ? nativeEvent.defaultPrevented : nativeEvent.returnValue === false; - if (defaultPrevented) { - this.isDefaultPrevented = emptyFunction.thatReturnsTrue; - } else { - this.isDefaultPrevented = emptyFunction.thatReturnsFalse; - } - this.isPropagationStopped = emptyFunction.thatReturnsFalse; - return this; -} - -_assign(SyntheticEvent.prototype, { - - preventDefault: function () { - this.defaultPrevented = true; - var event = this.nativeEvent; - if (!event) { - return; - } - - if (event.preventDefault) { - event.preventDefault(); - } else if (typeof event.returnValue !== 'unknown') { - // eslint-disable-line valid-typeof - event.returnValue = false; - } - this.isDefaultPrevented = emptyFunction.thatReturnsTrue; - }, - - stopPropagation: function () { - var event = this.nativeEvent; - if (!event) { - return; - } - - if (event.stopPropagation) { - event.stopPropagation(); - } else if (typeof event.cancelBubble !== 'unknown') { - // eslint-disable-line valid-typeof - // The ChangeEventPlugin registers a "propertychange" event for - // IE. This event does not support bubbling or cancelling, and - // any references to cancelBubble throw "Member not found". A - // typeof check of "unknown" circumvents this issue (and is also - // IE specific). - event.cancelBubble = true; - } - - this.isPropagationStopped = emptyFunction.thatReturnsTrue; - }, - - /** - * We release all dispatched `SyntheticEvent`s after each event loop, adding - * them back into the pool. This allows a way to hold onto a reference that - * won't be added back into the pool. - */ - persist: function () { - this.isPersistent = emptyFunction.thatReturnsTrue; - }, - - /** - * Checks if this event should be released back into the pool. - * - * @return {boolean} True if this should not be released, false otherwise. - */ - isPersistent: emptyFunction.thatReturnsFalse, - - /** - * `PooledClass` looks for `destructor` on each instance it releases. - */ - destructor: function () { - var Interface = this.constructor.Interface; - for (var propName in Interface) { - if ("development" !== 'production') { - Object.defineProperty(this, propName, getPooledWarningPropertyDefinition(propName, Interface[propName])); - } else { - this[propName] = null; - } - } - for (var i = 0; i < shouldBeReleasedProperties.length; i++) { - this[shouldBeReleasedProperties[i]] = null; - } - if ("development" !== 'production') { - Object.defineProperty(this, 'nativeEvent', getPooledWarningPropertyDefinition('nativeEvent', null)); - Object.defineProperty(this, 'preventDefault', getPooledWarningPropertyDefinition('preventDefault', emptyFunction)); - Object.defineProperty(this, 'stopPropagation', getPooledWarningPropertyDefinition('stopPropagation', emptyFunction)); - } - } - -}); - -SyntheticEvent.Interface = EventInterface; - -if ("development" !== 'production') { - if (isProxySupported) { - /*eslint-disable no-func-assign */ - SyntheticEvent = new Proxy(SyntheticEvent, { - construct: function (target, args) { - return this.apply(target, Object.create(target.prototype), args); - }, - apply: function (constructor, that, args) { - return new Proxy(constructor.apply(that, args), { - set: function (target, prop, value) { - if (prop !== 'isPersistent' && !target.constructor.Interface.hasOwnProperty(prop) && shouldBeReleasedProperties.indexOf(prop) === -1) { - "development" !== 'production' ? warning(didWarnForAddedNewProperty || target.isPersistent(), 'This synthetic event is reused for performance reasons. If you\'re ' + 'seeing this, you\'re adding a new property in the synthetic event object. ' + 'The property is never released. See ' + 'https://fb.me/react-event-pooling for more information.') : void 0; - didWarnForAddedNewProperty = true; - } - target[prop] = value; - return true; - } - }); - } - }); - /*eslint-enable no-func-assign */ - } -} -/** - * Helper to reduce boilerplate when creating subclasses. - * - * @param {function} Class - * @param {?object} Interface - */ -SyntheticEvent.augmentClass = function (Class, Interface) { - var Super = this; - - var E = function () {}; - E.prototype = Super.prototype; - var prototype = new E(); - - _assign(prototype, Class.prototype); - Class.prototype = prototype; - Class.prototype.constructor = Class; - - Class.Interface = _assign({}, Super.Interface, Interface); - Class.augmentClass = Super.augmentClass; - - PooledClass.addPoolingTo(Class, PooledClass.fourArgumentPooler); -}; - -PooledClass.addPoolingTo(SyntheticEvent, PooledClass.fourArgumentPooler); - -module.exports = SyntheticEvent; - -/** - * Helper to nullify syntheticEvent instance properties when destructing - * - * @param {object} SyntheticEvent - * @param {String} propName - * @return {object} defineProperty object - */ -function getPooledWarningPropertyDefinition(propName, getVal) { - var isFunction = typeof getVal === 'function'; - return { - configurable: true, - set: set, - get: get - }; - - function set(val) { - var action = isFunction ? 'setting the method' : 'setting the property'; - warn(action, 'This is effectively a no-op'); - return val; - } - - function get() { - var action = isFunction ? 'accessing the method' : 'accessing the property'; - var result = isFunction ? 'This is a no-op function' : 'This is set to null'; - warn(action, result); - return getVal; - } - - function warn(action, result) { - var warningCondition = false; - "development" !== 'production' ? warning(warningCondition, 'This synthetic event is reused for performance reasons. If you\'re seeing this, ' + 'you\'re %s `%s` on a released/nullified synthetic event. %s. ' + 'If you must keep the original synthetic event around, use event.persist(). ' + 'See https://fb.me/react-event-pooling for more information.', action, propName, result) : void 0; - } -} -},{"146":146,"161":161,"162":162,"24":24}],94:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var SyntheticUIEvent = _dereq_(100); - -/** - * @interface FocusEvent - * @see http://www.w3.org/TR/DOM-Level-3-Events/ - */ -var FocusEventInterface = { - relatedTarget: null -}; - -/** - * @param {object} dispatchConfig Configuration used to dispatch this event. - * @param {string} dispatchMarker Marker identifying the event target. - * @param {object} nativeEvent Native browser event. - * @extends {SyntheticUIEvent} - */ -function SyntheticFocusEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { - return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); -} - -SyntheticUIEvent.augmentClass(SyntheticFocusEvent, FocusEventInterface); - -module.exports = SyntheticFocusEvent; -},{"100":100}],95:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var SyntheticEvent = _dereq_(93); - -/** - * @interface Event - * @see http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105 - * /#events-inputevents - */ -var InputEventInterface = { - data: null -}; - -/** - * @param {object} dispatchConfig Configuration used to dispatch this event. - * @param {string} dispatchMarker Marker identifying the event target. - * @param {object} nativeEvent Native browser event. - * @extends {SyntheticUIEvent} - */ -function SyntheticInputEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { - return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); -} - -SyntheticEvent.augmentClass(SyntheticInputEvent, InputEventInterface); - -module.exports = SyntheticInputEvent; -},{"93":93}],96:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var SyntheticUIEvent = _dereq_(100); - -var getEventCharCode = _dereq_(114); -var getEventKey = _dereq_(115); -var getEventModifierState = _dereq_(116); - -/** - * @interface KeyboardEvent - * @see http://www.w3.org/TR/DOM-Level-3-Events/ - */ -var KeyboardEventInterface = { - key: getEventKey, - location: null, - ctrlKey: null, - shiftKey: null, - altKey: null, - metaKey: null, - repeat: null, - locale: null, - getModifierState: getEventModifierState, - // Legacy Interface - charCode: function (event) { - // `charCode` is the result of a KeyPress event and represents the value of - // the actual printable character. - - // KeyPress is deprecated, but its replacement is not yet final and not - // implemented in any major browser. Only KeyPress has charCode. - if (event.type === 'keypress') { - return getEventCharCode(event); - } - return 0; - }, - keyCode: function (event) { - // `keyCode` is the result of a KeyDown/Up event and represents the value of - // physical keyboard key. - - // The actual meaning of the value depends on the users' keyboard layout - // which cannot be detected. Assuming that it is a US keyboard layout - // provides a surprisingly accurate mapping for US and European users. - // Due to this, it is left to the user to implement at this time. - if (event.type === 'keydown' || event.type === 'keyup') { - return event.keyCode; - } - return 0; - }, - which: function (event) { - // `which` is an alias for either `keyCode` or `charCode` depending on the - // type of the event. - if (event.type === 'keypress') { - return getEventCharCode(event); - } - if (event.type === 'keydown' || event.type === 'keyup') { - return event.keyCode; - } - return 0; - } -}; - -/** - * @param {object} dispatchConfig Configuration used to dispatch this event. - * @param {string} dispatchMarker Marker identifying the event target. - * @param {object} nativeEvent Native browser event. - * @extends {SyntheticUIEvent} - */ -function SyntheticKeyboardEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { - return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); -} - -SyntheticUIEvent.augmentClass(SyntheticKeyboardEvent, KeyboardEventInterface); - -module.exports = SyntheticKeyboardEvent; -},{"100":100,"114":114,"115":115,"116":116}],97:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var SyntheticUIEvent = _dereq_(100); -var ViewportMetrics = _dereq_(103); - -var getEventModifierState = _dereq_(116); - -/** - * @interface MouseEvent - * @see http://www.w3.org/TR/DOM-Level-3-Events/ - */ -var MouseEventInterface = { - screenX: null, - screenY: null, - clientX: null, - clientY: null, - ctrlKey: null, - shiftKey: null, - altKey: null, - metaKey: null, - getModifierState: getEventModifierState, - button: function (event) { - // Webkit, Firefox, IE9+ - // which: 1 2 3 - // button: 0 1 2 (standard) - var button = event.button; - if ('which' in event) { - return button; - } - // IE<9 - // which: undefined - // button: 0 0 0 - // button: 1 4 2 (onmouseup) - return button === 2 ? 2 : button === 4 ? 1 : 0; - }, - buttons: null, - relatedTarget: function (event) { - return event.relatedTarget || (event.fromElement === event.srcElement ? event.toElement : event.fromElement); - }, - // "Proprietary" Interface. - pageX: function (event) { - return 'pageX' in event ? event.pageX : event.clientX + ViewportMetrics.currentScrollLeft; - }, - pageY: function (event) { - return 'pageY' in event ? event.pageY : event.clientY + ViewportMetrics.currentScrollTop; - } -}; - -/** - * @param {object} dispatchConfig Configuration used to dispatch this event. - * @param {string} dispatchMarker Marker identifying the event target. - * @param {object} nativeEvent Native browser event. - * @extends {SyntheticUIEvent} - */ -function SyntheticMouseEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { - return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); -} - -SyntheticUIEvent.augmentClass(SyntheticMouseEvent, MouseEventInterface); - -module.exports = SyntheticMouseEvent; -},{"100":100,"103":103,"116":116}],98:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var SyntheticUIEvent = _dereq_(100); - -var getEventModifierState = _dereq_(116); - -/** - * @interface TouchEvent - * @see http://www.w3.org/TR/touch-events/ - */ -var TouchEventInterface = { - touches: null, - targetTouches: null, - changedTouches: null, - altKey: null, - metaKey: null, - ctrlKey: null, - shiftKey: null, - getModifierState: getEventModifierState -}; - -/** - * @param {object} dispatchConfig Configuration used to dispatch this event. - * @param {string} dispatchMarker Marker identifying the event target. - * @param {object} nativeEvent Native browser event. - * @extends {SyntheticUIEvent} - */ -function SyntheticTouchEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { - return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); -} - -SyntheticUIEvent.augmentClass(SyntheticTouchEvent, TouchEventInterface); - -module.exports = SyntheticTouchEvent; -},{"100":100,"116":116}],99:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var SyntheticEvent = _dereq_(93); - -/** - * @interface Event - * @see http://www.w3.org/TR/2009/WD-css3-transitions-20090320/#transition-events- - * @see https://developer.mozilla.org/en-US/docs/Web/API/TransitionEvent - */ -var TransitionEventInterface = { - propertyName: null, - elapsedTime: null, - pseudoElement: null -}; - -/** - * @param {object} dispatchConfig Configuration used to dispatch this event. - * @param {string} dispatchMarker Marker identifying the event target. - * @param {object} nativeEvent Native browser event. - * @extends {SyntheticEvent} - */ -function SyntheticTransitionEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { - return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); -} - -SyntheticEvent.augmentClass(SyntheticTransitionEvent, TransitionEventInterface); - -module.exports = SyntheticTransitionEvent; -},{"93":93}],100:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var SyntheticEvent = _dereq_(93); - -var getEventTarget = _dereq_(117); - -/** - * @interface UIEvent - * @see http://www.w3.org/TR/DOM-Level-3-Events/ - */ -var UIEventInterface = { - view: function (event) { - if (event.view) { - return event.view; - } - - var target = getEventTarget(event); - if (target.window === target) { - // target is a window object - return target; - } - - var doc = target.ownerDocument; - // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8. - if (doc) { - return doc.defaultView || doc.parentWindow; - } else { - return window; - } - }, - detail: function (event) { - return event.detail || 0; - } -}; - -/** - * @param {object} dispatchConfig Configuration used to dispatch this event. - * @param {string} dispatchMarker Marker identifying the event target. - * @param {object} nativeEvent Native browser event. - * @extends {SyntheticEvent} - */ -function SyntheticUIEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { - return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); -} - -SyntheticEvent.augmentClass(SyntheticUIEvent, UIEventInterface); - -module.exports = SyntheticUIEvent; -},{"117":117,"93":93}],101:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var SyntheticMouseEvent = _dereq_(97); - -/** - * @interface WheelEvent - * @see http://www.w3.org/TR/DOM-Level-3-Events/ - */ -var WheelEventInterface = { - deltaX: function (event) { - return 'deltaX' in event ? event.deltaX : - // Fallback to `wheelDeltaX` for Webkit and normalize (right is positive). - 'wheelDeltaX' in event ? -event.wheelDeltaX : 0; - }, - deltaY: function (event) { - return 'deltaY' in event ? event.deltaY : - // Fallback to `wheelDeltaY` for Webkit and normalize (down is positive). - 'wheelDeltaY' in event ? -event.wheelDeltaY : - // Fallback to `wheelDelta` for IE<9 and normalize (down is positive). - 'wheelDelta' in event ? -event.wheelDelta : 0; - }, - deltaZ: null, - - // Browsers without "deltaMode" is reporting in raw wheel delta where one - // notch on the scroll is always +/- 120, roughly equivalent to pixels. - // A good approximation of DOM_DELTA_LINE (1) is 5% of viewport size or - // ~40 pixels, for DOM_DELTA_SCREEN (2) it is 87.5% of viewport size. - deltaMode: null -}; - -/** - * @param {object} dispatchConfig Configuration used to dispatch this event. - * @param {string} dispatchMarker Marker identifying the event target. - * @param {object} nativeEvent Native browser event. - * @extends {SyntheticMouseEvent} - */ -function SyntheticWheelEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { - return SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); -} - -SyntheticMouseEvent.augmentClass(SyntheticWheelEvent, WheelEventInterface); - -module.exports = SyntheticWheelEvent; -},{"97":97}],102:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -'use strict'; - -var _prodInvariant = _dereq_(129); - -var invariant = _dereq_(154); - -var OBSERVED_ERROR = {}; - -/** - * `Transaction` creates a black box that is able to wrap any method such that - * certain invariants are maintained before and after the method is invoked - * (Even if an exception is thrown while invoking the wrapped method). Whoever - * instantiates a transaction can provide enforcers of the invariants at - * creation time. The `Transaction` class itself will supply one additional - * automatic invariant for you - the invariant that any transaction instance - * should not be run while it is already being run. You would typically create a - * single instance of a `Transaction` for reuse multiple times, that potentially - * is used to wrap several different methods. Wrappers are extremely simple - - * they only require implementing two methods. - * - * <pre> - * wrappers (injected at creation time) - * + + - * | | - * +-----------------|--------|--------------+ - * | v | | - * | +---------------+ | | - * | +--| wrapper1 |---|----+ | - * | | +---------------+ v | | - * | | +-------------+ | | - * | | +----| wrapper2 |--------+ | - * | | | +-------------+ | | | - * | | | | | | - * | v v v v | wrapper - * | +---+ +---+ +---------+ +---+ +---+ | invariants - * perform(anyMethod) | | | | | | | | | | | | maintained - * +----------------->|-|---|-|---|-->|anyMethod|---|---|-|---|-|--------> - * | | | | | | | | | | | | - * | | | | | | | | | | | | - * | | | | | | | | | | | | - * | +---+ +---+ +---------+ +---+ +---+ | - * | initialize close | - * +-----------------------------------------+ - * </pre> - * - * Use cases: - * - Preserving the input selection ranges before/after reconciliation. - * Restoring selection even in the event of an unexpected error. - * - Deactivating events while rearranging the DOM, preventing blurs/focuses, - * while guaranteeing that afterwards, the event system is reactivated. - * - Flushing a queue of collected DOM mutations to the main UI thread after a - * reconciliation takes place in a worker thread. - * - Invoking any collected `componentDidUpdate` callbacks after rendering new - * content. - * - (Future use case): Wrapping particular flushes of the `ReactWorker` queue - * to preserve the `scrollTop` (an automatic scroll aware DOM). - * - (Future use case): Layout calculations before and after DOM updates. - * - * Transactional plugin API: - * - A module that has an `initialize` method that returns any precomputation. - * - and a `close` method that accepts the precomputation. `close` is invoked - * when the wrapped process is completed, or has failed. - * - * @param {Array<TransactionalWrapper>} transactionWrapper Wrapper modules - * that implement `initialize` and `close`. - * @return {TransactionRecord} Single transaction for reuse in thread. - * - * @class TransactionRecord - */ -var TransactionImpl = { - /** - * Sets up this instance so that it is prepared for collecting metrics. Does - * so such that this setup method may be used on an instance that is already - * initialized, in a way that does not consume additional memory upon reuse. - * That can be useful if you decide to make your subclass of this mixin a - * "PooledClass". - */ - reinitializeTransaction: function () { - this.transactionWrappers = this.getTransactionWrappers(); - if (this.wrapperInitData) { - this.wrapperInitData.length = 0; - } else { - this.wrapperInitData = []; - } - this._isInTransaction = false; - }, - - _isInTransaction: false, - - /** - * @abstract - * @return {Array<TransactionWrapper>} Array of transaction wrappers. - */ - getTransactionWrappers: null, - - isInTransaction: function () { - return !!this._isInTransaction; - }, - - /** - * Executes the function within a safety window. Use this for the top level - * methods that result in large amounts of computation/mutations that would - * need to be safety checked. The optional arguments helps prevent the need - * to bind in many cases. - * - * @param {function} method Member of scope to call. - * @param {Object} scope Scope to invoke from. - * @param {Object?=} a Argument to pass to the method. - * @param {Object?=} b Argument to pass to the method. - * @param {Object?=} c Argument to pass to the method. - * @param {Object?=} d Argument to pass to the method. - * @param {Object?=} e Argument to pass to the method. - * @param {Object?=} f Argument to pass to the method. - * - * @return {*} Return value from `method`. - */ - perform: function ( // eslint-disable-line space-before-function-paren - method, scope, a, b, c, d, e, f) { - !!this.isInTransaction() ? "development" !== 'production' ? invariant(false, 'TransactionRecord.perform(...): Cannot initialize a transaction when there is already an outstanding transaction.') : _prodInvariant('27') : void 0; - var errorThrown; - var ret; - try { - this._isInTransaction = true; - // Catching errors makes debugging more difficult, so we start with - // errorThrown set to true before setting it to false after calling - // close -- if it's still set to true in the finally block, it means - // one of these calls threw. - errorThrown = true; - this.initializeAll(0); - ret = method.call(scope, a, b, c, d, e, f); - errorThrown = false; - } finally { - try { - if (errorThrown) { - // If `method` throws, prefer to show that stack trace over any thrown - // by invoking `closeAll`. - try { - this.closeAll(0); - } catch (err) {} - } else { - // Since `method` didn't throw, we don't want to silence the exception - // here. - this.closeAll(0); - } - } finally { - this._isInTransaction = false; - } - } - return ret; - }, - - initializeAll: function (startIndex) { - var transactionWrappers = this.transactionWrappers; - for (var i = startIndex; i < transactionWrappers.length; i++) { - var wrapper = transactionWrappers[i]; - try { - // Catching errors makes debugging more difficult, so we start with the - // OBSERVED_ERROR state before overwriting it with the real return value - // of initialize -- if it's still set to OBSERVED_ERROR in the finally - // block, it means wrapper.initialize threw. - this.wrapperInitData[i] = OBSERVED_ERROR; - this.wrapperInitData[i] = wrapper.initialize ? wrapper.initialize.call(this) : null; - } finally { - if (this.wrapperInitData[i] === OBSERVED_ERROR) { - // The initializer for wrapper i threw an error; initialize the - // remaining wrappers but silence any exceptions from them to ensure - // that the first error is the one to bubble up. - try { - this.initializeAll(i + 1); - } catch (err) {} - } - } - } - }, - - /** - * Invokes each of `this.transactionWrappers.close[i]` functions, passing into - * them the respective return values of `this.transactionWrappers.init[i]` - * (`close`rs that correspond to initializers that failed will not be - * invoked). - */ - closeAll: function (startIndex) { - !this.isInTransaction() ? "development" !== 'production' ? invariant(false, 'TransactionRecord.closeAll(): Cannot close transaction when none are open.') : _prodInvariant('28') : void 0; - var transactionWrappers = this.transactionWrappers; - for (var i = startIndex; i < transactionWrappers.length; i++) { - var wrapper = transactionWrappers[i]; - var initData = this.wrapperInitData[i]; - var errorThrown; - try { - // Catching errors makes debugging more difficult, so we start with - // errorThrown set to true before setting it to false after calling - // close -- if it's still set to true in the finally block, it means - // wrapper.close threw. - errorThrown = true; - if (initData !== OBSERVED_ERROR && wrapper.close) { - wrapper.close.call(this, initData); - } - errorThrown = false; - } finally { - if (errorThrown) { - // The closer for wrapper i threw an error; close the remaining - // wrappers but silence any exceptions from them to ensure that the - // first error is the one to bubble up. - try { - this.closeAll(i + 1); - } catch (e) {} - } - } - } - this.wrapperInitData.length = 0; - } -}; - -module.exports = TransactionImpl; -},{"129":129,"154":154}],103:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var ViewportMetrics = { - - currentScrollLeft: 0, - - currentScrollTop: 0, - - refreshScrollValues: function (scrollPosition) { - ViewportMetrics.currentScrollLeft = scrollPosition.x; - ViewportMetrics.currentScrollTop = scrollPosition.y; - } - -}; - -module.exports = ViewportMetrics; -},{}],104:[function(_dereq_,module,exports){ -/** - * Copyright 2014-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -'use strict'; - -var _prodInvariant = _dereq_(129); - -var invariant = _dereq_(154); - -/** - * Accumulates items that must not be null or undefined into the first one. This - * is used to conserve memory by avoiding array allocations, and thus sacrifices - * API cleanness. Since `current` can be null before being passed in and not - * null after this function, make sure to assign it back to `current`: - * - * `a = accumulateInto(a, b);` - * - * This API should be sparingly used. Try `accumulate` for something cleaner. - * - * @return {*|array<*>} An accumulation of items. - */ - -function accumulateInto(current, next) { - !(next != null) ? "development" !== 'production' ? invariant(false, 'accumulateInto(...): Accumulated items must not be null or undefined.') : _prodInvariant('30') : void 0; - - if (current == null) { - return next; - } - - // Both are not empty. Warning: Never call x.concat(y) when you are not - // certain that x is an Array (x could be a string with concat method). - if (Array.isArray(current)) { - if (Array.isArray(next)) { - current.push.apply(current, next); - return current; - } - current.push(next); - return current; - } - - if (Array.isArray(next)) { - // A bit too dangerous to mutate `next`. - return [current].concat(next); - } - - return [current, next]; -} - -module.exports = accumulateInto; -},{"129":129,"154":154}],105:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -'use strict'; - -var MOD = 65521; - -// adler32 is not cryptographically strong, and is only used to sanity check that -// markup generated on the server matches the markup generated on the client. -// This implementation (a modified version of the SheetJS version) has been optimized -// for our use case, at the expense of conforming to the adler32 specification -// for non-ascii inputs. -function adler32(data) { - var a = 1; - var b = 0; - var i = 0; - var l = data.length; - var m = l & ~0x3; - while (i < m) { - var n = Math.min(i + 4096, m); - for (; i < n; i += 4) { - b += (a += data.charCodeAt(i)) + (a += data.charCodeAt(i + 1)) + (a += data.charCodeAt(i + 2)) + (a += data.charCodeAt(i + 3)); - } - a %= MOD; - b %= MOD; - } - for (; i < l; i++) { - b += a += data.charCodeAt(i); - } - a %= MOD; - b %= MOD; - return a | b << 16; -} - -module.exports = adler32; -},{}],106:[function(_dereq_,module,exports){ -(function (process){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _prodInvariant = _dereq_(129); - -var ReactPropTypeLocationNames = _dereq_(73); - -var invariant = _dereq_(154); -var warning = _dereq_(161); - -var ReactComponentTreeHook; - -if (typeof process !== 'undefined' && process.env && "development" === 'test') { - // Temporary hack. - // Inline requires don't work well with Jest: - // https://github.com/facebook/react/issues/7240 - // Remove the inline requires when we don't need them anymore: - // https://github.com/facebook/react/pull/7178 - ReactComponentTreeHook = _dereq_(136); -} - -var loggedTypeFailures = {}; - -/** - * Assert that the values match with the type specs. - * Error messages are memorized and will only be shown once. - * - * @param {object} typeSpecs Map of name to a ReactPropType - * @param {object} values Runtime values that need to be type-checked - * @param {string} location e.g. "prop", "context", "child context" - * @param {string} componentName Name of the component for error messages. - * @param {?object} element The React element that is being type-checked - * @param {?number} debugID The React component instance that is being type-checked - * @private - */ -function checkReactTypeSpec(typeSpecs, values, location, componentName, element, debugID) { - for (var typeSpecName in typeSpecs) { - if (typeSpecs.hasOwnProperty(typeSpecName)) { - var error; - // Prop type validation may throw. In case they do, we don't want to - // fail the render phase where it didn't fail before. So we log it. - // After these have been cleaned up, we'll let them throw. - try { - // This is intentionally an invariant that gets caught. It's the same - // behavior as without this statement except with a better message. - !(typeof typeSpecs[typeSpecName] === 'function') ? "development" !== 'production' ? invariant(false, '%s: %s type `%s` is invalid; it must be a function, usually from React.PropTypes.', componentName || 'React class', ReactPropTypeLocationNames[location], typeSpecName) : _prodInvariant('84', componentName || 'React class', ReactPropTypeLocationNames[location], typeSpecName) : void 0; - error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location); - } catch (ex) { - error = ex; - } - "development" !== 'production' ? warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', ReactPropTypeLocationNames[location], typeSpecName, typeof error) : void 0; - if (error instanceof Error && !(error.message in loggedTypeFailures)) { - // Only monitor this failure once because there tends to be a lot of the - // same error. - loggedTypeFailures[error.message] = true; - - var componentStackInfo = ''; - - if ("development" !== 'production') { - if (!ReactComponentTreeHook) { - ReactComponentTreeHook = _dereq_(136); - } - if (debugID !== null) { - componentStackInfo = ReactComponentTreeHook.getStackAddendumByID(debugID); - } else if (element !== null) { - componentStackInfo = ReactComponentTreeHook.getCurrentStackAddendum(element); - } - } - - "development" !== 'production' ? warning(false, 'Failed %s type: %s%s', location, error.message, componentStackInfo) : void 0; - } - } - } -} - -module.exports = checkReactTypeSpec; -}).call(this,undefined) -},{"129":129,"136":136,"154":154,"161":161,"73":73}],107:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -/* globals MSApp */ - -'use strict'; - -/** - * Create a function which has 'unsafe' privileges (required by windows8 apps) - */ - -var createMicrosoftUnsafeLocalFunction = function (func) { - if (typeof MSApp !== 'undefined' && MSApp.execUnsafeLocalFunction) { - return function (arg0, arg1, arg2, arg3) { - MSApp.execUnsafeLocalFunction(function () { - return func(arg0, arg1, arg2, arg3); - }); - }; - } else { - return func; - } -}; - -module.exports = createMicrosoftUnsafeLocalFunction; -},{}],108:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var CSSProperty = _dereq_(4); - -var isUnitlessNumber = CSSProperty.isUnitlessNumber; - -/** - * Convert a value into the proper css writable value. The style name `name` - * should be logical (no hyphens), as specified - * in `CSSProperty.isUnitlessNumber`. - * - * @param {string} name CSS property name such as `topMargin`. - * @param {*} value CSS property value such as `10px`. - * @param {ReactDOMComponent} component - * @return {string} Normalized style value with dimensions applied. - */ -function dangerousStyleValue(name, value, component) { - // Note that we've removed escapeTextForBrowser() calls here since the - // whole string will be escaped when the attribute is injected into - // the markup. If you provide unsafe user data here they can inject - // arbitrary CSS which may be problematic (I couldn't repro this): - // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet - // http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/ - // This is not an XSS hole but instead a potential CSS injection issue - // which has lead to a greater discussion about how we're going to - // trust URLs moving forward. See #2115901 - - var isEmpty = value == null || typeof value === 'boolean' || value === ''; - if (isEmpty) { - return ''; - } - - if (typeof value === 'number' && value !== 0 && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) { - return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers - } - - return ('' + value).trim(); -} - -module.exports = dangerousStyleValue; -},{"4":4}],109:[function(_dereq_,module,exports){ -/** - * Copyright 2016-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * Based on the escape-html library, which is used under the MIT License below: - * - * Copyright (c) 2012-2013 TJ Holowaychuk - * Copyright (c) 2015 Andreas Lubbe - * Copyright (c) 2015 Tiancheng "Timothy" Gu - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * 'Software'), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 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. - * - */ - -'use strict'; - -// code copied and modified from escape-html -/** - * Module variables. - * @private - */ - -var matchHtmlRegExp = /["'&<>]/; - -/** - * Escape special characters in the given string of html. - * - * @param {string} string The string to escape for inserting into HTML - * @return {string} - * @public - */ - -function escapeHtml(string) { - var str = '' + string; - var match = matchHtmlRegExp.exec(str); - - if (!match) { - return str; - } - - var escape; - var html = ''; - var index = 0; - var lastIndex = 0; - - for (index = match.index; index < str.length; index++) { - switch (str.charCodeAt(index)) { - case 34: - // " - escape = '"'; - break; - case 38: - // & - escape = '&'; - break; - case 39: - // ' - escape = '''; // modified from escape-html; used to be ''' - break; - case 60: - // < - escape = '<'; - break; - case 62: - // > - escape = '>'; - break; - default: - continue; - } - - if (lastIndex !== index) { - html += str.substring(lastIndex, index); - } - - lastIndex = index + 1; - html += escape; - } - - return lastIndex !== index ? html + str.substring(lastIndex, index) : html; -} -// end code copied and modified from escape-html - - -/** - * Escapes text to prevent scripting attacks. - * - * @param {*} text Text value to escape. - * @return {string} An escaped string. - */ -function escapeTextContentForBrowser(text) { - if (typeof text === 'boolean' || typeof text === 'number') { - // this shortcircuit helps perf for types that we know will never have - // special characters, especially given that this function is used often - // for numeric dom ids. - return '' + text; - } - return escapeHtml(text); -} - -module.exports = escapeTextContentForBrowser; -},{}],110:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _prodInvariant = _dereq_(129); - -var ReactCurrentOwner = _dereq_(137); -var ReactDOMComponentTree = _dereq_(35); -var ReactInstanceMap = _dereq_(64); - -var getHostComponentFromComposite = _dereq_(118); -var invariant = _dereq_(154); -var warning = _dereq_(161); - -/** - * Returns the DOM node rendered by this element. - * - * See https://facebook.github.io/react/docs/react-dom.html#finddomnode - * - * @param {ReactComponent|DOMElement} componentOrElement - * @return {?DOMElement} The root node of this element. - */ -function findDOMNode(componentOrElement) { - if ("development" !== 'production') { - var owner = ReactCurrentOwner.current; - if (owner !== null) { - "development" !== 'production' ? warning(owner._warnedAboutRefsInRender, '%s is accessing findDOMNode inside its render(). ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', owner.getName() || 'A component') : void 0; - owner._warnedAboutRefsInRender = true; - } - } - if (componentOrElement == null) { - return null; - } - if (componentOrElement.nodeType === 1) { - return componentOrElement; - } - - var inst = ReactInstanceMap.get(componentOrElement); - if (inst) { - inst = getHostComponentFromComposite(inst); - return inst ? ReactDOMComponentTree.getNodeFromInstance(inst) : null; - } - - if (typeof componentOrElement.render === 'function') { - !false ? "development" !== 'production' ? invariant(false, 'findDOMNode was called on an unmounted component.') : _prodInvariant('44') : void 0; - } else { - !false ? "development" !== 'production' ? invariant(false, 'Element appears to be neither ReactComponent nor DOMNode (keys: %s)', Object.keys(componentOrElement)) : _prodInvariant('45', Object.keys(componentOrElement)) : void 0; - } -} - -module.exports = findDOMNode; -},{"118":118,"129":129,"137":137,"154":154,"161":161,"35":35,"64":64}],111:[function(_dereq_,module,exports){ -(function (process){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -'use strict'; - -var KeyEscapeUtils = _dereq_(23); -var traverseAllChildren = _dereq_(134); -var warning = _dereq_(161); - -var ReactComponentTreeHook; - -if (typeof process !== 'undefined' && process.env && "development" === 'test') { - // Temporary hack. - // Inline requires don't work well with Jest: - // https://github.com/facebook/react/issues/7240 - // Remove the inline requires when we don't need them anymore: - // https://github.com/facebook/react/pull/7178 - ReactComponentTreeHook = _dereq_(136); -} - -/** - * @param {function} traverseContext Context passed through traversal. - * @param {?ReactComponent} child React child component. - * @param {!string} name String name of key path to child. - * @param {number=} selfDebugID Optional debugID of the current internal instance. - */ -function flattenSingleChildIntoContext(traverseContext, child, name, selfDebugID) { - // We found a component instance. - if (traverseContext && typeof traverseContext === 'object') { - var result = traverseContext; - var keyUnique = result[name] === undefined; - if ("development" !== 'production') { - if (!ReactComponentTreeHook) { - ReactComponentTreeHook = _dereq_(136); - } - if (!keyUnique) { - "development" !== 'production' ? warning(false, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.%s', KeyEscapeUtils.unescape(name), ReactComponentTreeHook.getStackAddendumByID(selfDebugID)) : void 0; - } - } - if (keyUnique && child != null) { - result[name] = child; - } - } -} - -/** - * Flattens children that are typically specified as `props.children`. Any null - * children will not be included in the resulting object. - * @return {!object} flattened children keyed by name. - */ -function flattenChildren(children, selfDebugID) { - if (children == null) { - return children; - } - var result = {}; - - if ("development" !== 'production') { - traverseAllChildren(children, function (traverseContext, child, name) { - return flattenSingleChildIntoContext(traverseContext, child, name, selfDebugID); - }, result); - } else { - traverseAllChildren(children, flattenSingleChildIntoContext, result); - } - return result; -} - -module.exports = flattenChildren; -}).call(this,undefined) -},{"134":134,"136":136,"161":161,"23":23}],112:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -'use strict'; - -/** - * @param {array} arr an "accumulation" of items which is either an Array or - * a single item. Useful when paired with the `accumulate` module. This is a - * simple utility that allows us to reason about a collection of items, but - * handling the case when there is exactly one item (and we do not need to - * allocate an array). - */ - -function forEachAccumulated(arr, cb, scope) { - if (Array.isArray(arr)) { - arr.forEach(cb, scope); - } else if (arr) { - cb.call(scope, arr); - } -} - -module.exports = forEachAccumulated; -},{}],113:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -'use strict'; - -function getComponentName(instanceOrFiber) { - if ("development" !== 'production') { - if (typeof instanceOrFiber.getName === 'function') { - // Stack reconciler - var instance = instanceOrFiber; - return instance.getName() || 'Component'; - } - if (typeof instanceOrFiber.tag === 'number') { - // Fiber reconciler - var fiber = instanceOrFiber; - var type = fiber.type; - - if (typeof type === 'string') { - return type; - } - if (typeof type === 'function') { - return type.displayName || type.name || null; - } - } - } - return null; -} - -module.exports = getComponentName; -},{}],114:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -/** - * `charCode` represents the actual "character code" and is safe to use with - * `String.fromCharCode`. As such, only keys that correspond to printable - * characters produce a valid `charCode`, the only exception to this is Enter. - * The Tab-key is considered non-printable and does not have a `charCode`, - * presumably because it does not produce a tab-character in browsers. - * - * @param {object} nativeEvent Native browser event. - * @return {number} Normalized `charCode` property. - */ - -function getEventCharCode(nativeEvent) { - var charCode; - var keyCode = nativeEvent.keyCode; - - if ('charCode' in nativeEvent) { - charCode = nativeEvent.charCode; - - // FF does not set `charCode` for the Enter-key, check against `keyCode`. - if (charCode === 0 && keyCode === 13) { - charCode = 13; - } - } else { - // IE8 does not implement `charCode`, but `keyCode` has the correct value. - charCode = keyCode; - } - - // Some non-printable keys are reported in `charCode`/`keyCode`, discard them. - // Must not discard the (non-)printable Enter-key. - if (charCode >= 32 || charCode === 13) { - return charCode; - } - - return 0; -} - -module.exports = getEventCharCode; -},{}],115:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var getEventCharCode = _dereq_(114); - -/** - * Normalization of deprecated HTML5 `key` values - * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names - */ -var normalizeKey = { - 'Esc': 'Escape', - 'Spacebar': ' ', - 'Left': 'ArrowLeft', - 'Up': 'ArrowUp', - 'Right': 'ArrowRight', - 'Down': 'ArrowDown', - 'Del': 'Delete', - 'Win': 'OS', - 'Menu': 'ContextMenu', - 'Apps': 'ContextMenu', - 'Scroll': 'ScrollLock', - 'MozPrintableKey': 'Unidentified' -}; - -/** - * Translation from legacy `keyCode` to HTML5 `key` - * Only special keys supported, all others depend on keyboard layout or browser - * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names - */ -var translateToKey = { - 8: 'Backspace', - 9: 'Tab', - 12: 'Clear', - 13: 'Enter', - 16: 'Shift', - 17: 'Control', - 18: 'Alt', - 19: 'Pause', - 20: 'CapsLock', - 27: 'Escape', - 32: ' ', - 33: 'PageUp', - 34: 'PageDown', - 35: 'End', - 36: 'Home', - 37: 'ArrowLeft', - 38: 'ArrowUp', - 39: 'ArrowRight', - 40: 'ArrowDown', - 45: 'Insert', - 46: 'Delete', - 112: 'F1', 113: 'F2', 114: 'F3', 115: 'F4', 116: 'F5', 117: 'F6', - 118: 'F7', 119: 'F8', 120: 'F9', 121: 'F10', 122: 'F11', 123: 'F12', - 144: 'NumLock', - 145: 'ScrollLock', - 224: 'Meta' -}; - -/** - * @param {object} nativeEvent Native browser event. - * @return {string} Normalized `key` property. - */ -function getEventKey(nativeEvent) { - if (nativeEvent.key) { - // Normalize inconsistent values reported by browsers due to - // implementations of a working draft specification. - - // FireFox implements `key` but returns `MozPrintableKey` for all - // printable characters (normalized to `Unidentified`), ignore it. - var key = normalizeKey[nativeEvent.key] || nativeEvent.key; - if (key !== 'Unidentified') { - return key; - } - } - - // Browser does not implement `key`, polyfill as much of it as we can. - if (nativeEvent.type === 'keypress') { - var charCode = getEventCharCode(nativeEvent); - - // The enter-key is technically both printable and non-printable and can - // thus be captured by `keypress`, no other non-printable key should. - return charCode === 13 ? 'Enter' : String.fromCharCode(charCode); - } - if (nativeEvent.type === 'keydown' || nativeEvent.type === 'keyup') { - // While user keyboard layout determines the actual meaning of each - // `keyCode` value, almost all function keys have a universal value. - return translateToKey[nativeEvent.keyCode] || 'Unidentified'; - } - return ''; -} - -module.exports = getEventKey; -},{"114":114}],116:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -/** - * Translation from modifier key to the associated property in the event. - * @see http://www.w3.org/TR/DOM-Level-3-Events/#keys-Modifiers - */ - -var modifierKeyToProp = { - 'Alt': 'altKey', - 'Control': 'ctrlKey', - 'Meta': 'metaKey', - 'Shift': 'shiftKey' -}; - -// IE8 does not implement getModifierState so we simply map it to the only -// modifier keys exposed by the event itself, does not support Lock-keys. -// Currently, all major browsers except Chrome seems to support Lock-keys. -function modifierStateGetter(keyArg) { - var syntheticEvent = this; - var nativeEvent = syntheticEvent.nativeEvent; - if (nativeEvent.getModifierState) { - return nativeEvent.getModifierState(keyArg); - } - var keyProp = modifierKeyToProp[keyArg]; - return keyProp ? !!nativeEvent[keyProp] : false; -} - -function getEventModifierState(nativeEvent) { - return modifierStateGetter; -} - -module.exports = getEventModifierState; -},{}],117:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -/** - * Gets the target node from a native browser event by accounting for - * inconsistencies in browser DOM APIs. - * - * @param {object} nativeEvent Native browser event. - * @return {DOMEventTarget} Target node. - */ - -function getEventTarget(nativeEvent) { - var target = nativeEvent.target || nativeEvent.srcElement || window; - - // Normalize SVG <use> element events #4963 - if (target.correspondingUseElement) { - target = target.correspondingUseElement; - } - - // Safari may fire events on text nodes (Node.TEXT_NODE is 3). - // @see http://www.quirksmode.org/js/events_properties.html - return target.nodeType === 3 ? target.parentNode : target; -} - -module.exports = getEventTarget; -},{}],118:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var ReactNodeTypes = _dereq_(70); - -function getHostComponentFromComposite(inst) { - var type; - - while ((type = inst._renderedNodeType) === ReactNodeTypes.COMPOSITE) { - inst = inst._renderedComponent; - } - - if (type === ReactNodeTypes.HOST) { - return inst._renderedComponent; - } else if (type === ReactNodeTypes.EMPTY) { - return null; - } -} - -module.exports = getHostComponentFromComposite; -},{"70":70}],119:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -'use strict'; - -/* global Symbol */ - -var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; -var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. - -/** - * Returns the iterator method function contained on the iterable object. - * - * Be sure to invoke the function with the iterable as context: - * - * var iteratorFn = getIteratorFn(myIterable); - * if (iteratorFn) { - * var iterator = iteratorFn.call(myIterable); - * ... - * } - * - * @param {?object} maybeIterable - * @return {?function} - */ -function getIteratorFn(maybeIterable) { - var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); - if (typeof iteratorFn === 'function') { - return iteratorFn; - } -} - -module.exports = getIteratorFn; -},{}],120:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -'use strict'; - -var nextDebugID = 1; - -function getNextDebugID() { - return nextDebugID++; -} - -module.exports = getNextDebugID; -},{}],121:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -/** - * Given any node return the first leaf node without children. - * - * @param {DOMElement|DOMTextNode} node - * @return {DOMElement|DOMTextNode} - */ - -function getLeafNode(node) { - while (node && node.firstChild) { - node = node.firstChild; - } - return node; -} - -/** - * Get the next sibling within a container. This will walk up the - * DOM if a node's siblings have been exhausted. - * - * @param {DOMElement|DOMTextNode} node - * @return {?DOMElement|DOMTextNode} - */ -function getSiblingNode(node) { - while (node) { - if (node.nextSibling) { - return node.nextSibling; - } - node = node.parentNode; - } -} - -/** - * Get object describing the nodes which contain characters at offset. - * - * @param {DOMElement|DOMTextNode} root - * @param {number} offset - * @return {?object} - */ -function getNodeForCharacterOffset(root, offset) { - var node = getLeafNode(root); - var nodeStart = 0; - var nodeEnd = 0; - - while (node) { - if (node.nodeType === 3) { - nodeEnd = nodeStart + node.textContent.length; - - if (nodeStart <= offset && nodeEnd >= offset) { - return { - node: node, - offset: offset - nodeStart - }; - } - - nodeStart = nodeEnd; - } - - node = getLeafNode(getSiblingNode(node)); - } -} - -module.exports = getNodeForCharacterOffset; -},{}],122:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var ExecutionEnvironment = _dereq_(140); - -var contentKey = null; - -/** - * Gets the key used to access text content on a DOM node. - * - * @return {?string} Key used to access text content. - * @internal - */ -function getTextContentAccessor() { - if (!contentKey && ExecutionEnvironment.canUseDOM) { - // Prefer textContent to innerText because many browsers support both but - // SVG <text> elements don't support innerText even when <div> does. - contentKey = 'textContent' in document.documentElement ? 'textContent' : 'innerText'; - } - return contentKey; -} - -module.exports = getTextContentAccessor; -},{"140":140}],123:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var ExecutionEnvironment = _dereq_(140); - -/** - * Generate a mapping of standard vendor prefixes using the defined style property and event name. - * - * @param {string} styleProp - * @param {string} eventName - * @returns {object} - */ -function makePrefixMap(styleProp, eventName) { - var prefixes = {}; - - prefixes[styleProp.toLowerCase()] = eventName.toLowerCase(); - prefixes['Webkit' + styleProp] = 'webkit' + eventName; - prefixes['Moz' + styleProp] = 'moz' + eventName; - prefixes['ms' + styleProp] = 'MS' + eventName; - prefixes['O' + styleProp] = 'o' + eventName.toLowerCase(); - - return prefixes; -} - -/** - * A list of event names to a configurable list of vendor prefixes. - */ -var vendorPrefixes = { - animationend: makePrefixMap('Animation', 'AnimationEnd'), - animationiteration: makePrefixMap('Animation', 'AnimationIteration'), - animationstart: makePrefixMap('Animation', 'AnimationStart'), - transitionend: makePrefixMap('Transition', 'TransitionEnd') -}; - -/** - * Event names that have already been detected and prefixed (if applicable). - */ -var prefixedEventNames = {}; - -/** - * Element to check for prefixes on. - */ -var style = {}; - -/** - * Bootstrap if a DOM exists. - */ -if (ExecutionEnvironment.canUseDOM) { - style = document.createElement('div').style; - - // On some platforms, in particular some releases of Android 4.x, - // the un-prefixed "animation" and "transition" properties are defined on the - // style object but the events that fire will still be prefixed, so we need - // to check if the un-prefixed events are usable, and if not remove them from the map. - if (!('AnimationEvent' in window)) { - delete vendorPrefixes.animationend.animation; - delete vendorPrefixes.animationiteration.animation; - delete vendorPrefixes.animationstart.animation; - } - - // Same as above - if (!('TransitionEvent' in window)) { - delete vendorPrefixes.transitionend.transition; - } -} - -/** - * Attempts to determine the correct vendor prefixed event name. - * - * @param {string} eventName - * @returns {string} - */ -function getVendorPrefixedEventName(eventName) { - if (prefixedEventNames[eventName]) { - return prefixedEventNames[eventName]; - } else if (!vendorPrefixes[eventName]) { - return eventName; - } - - var prefixMap = vendorPrefixes[eventName]; - - for (var styleProp in prefixMap) { - if (prefixMap.hasOwnProperty(styleProp) && styleProp in style) { - return prefixedEventNames[eventName] = prefixMap[styleProp]; - } - } - - return ''; -} - -module.exports = getVendorPrefixedEventName; -},{"140":140}],124:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var ReactDOMComponentTree = _dereq_(35); - -function isCheckable(elem) { - var type = elem.type; - var nodeName = elem.nodeName; - return nodeName && nodeName.toLowerCase() === 'input' && (type === 'checkbox' || type === 'radio'); -} - -function getTracker(inst) { - return inst._wrapperState.valueTracker; -} - -function attachTracker(inst, tracker) { - inst._wrapperState.valueTracker = tracker; -} - -function detachTracker(inst) { - delete inst._wrapperState.valueTracker; -} - -function getValueFromNode(node) { - var value; - if (node) { - value = isCheckable(node) ? '' + node.checked : node.value; - } - return value; -} - -var inputValueTracking = { - // exposed for testing - _getTrackerFromNode: function (node) { - return getTracker(ReactDOMComponentTree.getInstanceFromNode(node)); - }, - - - track: function (inst) { - if (getTracker(inst)) { - return; - } - - var node = ReactDOMComponentTree.getNodeFromInstance(inst); - var valueField = isCheckable(node) ? 'checked' : 'value'; - var descriptor = Object.getOwnPropertyDescriptor(node.constructor.prototype, valueField); - - var currentValue = '' + node[valueField]; - - // if someone has already defined a value or Safari, then bail - // and don't track value will cause over reporting of changes, - // but it's better then a hard failure - // (needed for certain tests that spyOn input values and Safari) - if (node.hasOwnProperty(valueField) || typeof descriptor.get !== 'function' || typeof descriptor.set !== 'function') { - return; - } - - Object.defineProperty(node, valueField, { - enumerable: descriptor.enumerable, - configurable: true, - get: function () { - return descriptor.get.call(this); - }, - set: function (value) { - currentValue = '' + value; - descriptor.set.call(this, value); - } - }); - - attachTracker(inst, { - getValue: function () { - return currentValue; - }, - setValue: function (value) { - currentValue = '' + value; - }, - stopTracking: function () { - detachTracker(inst); - delete node[valueField]; - } - }); - }, - - updateValueIfChanged: function (inst) { - if (!inst) { - return false; - } - var tracker = getTracker(inst); - - if (!tracker) { - inputValueTracking.track(inst); - return true; - } - - var lastValue = tracker.getValue(); - var nextValue = getValueFromNode(ReactDOMComponentTree.getNodeFromInstance(inst)); - - if (nextValue !== lastValue) { - tracker.setValue(nextValue); - return true; - } - - return false; - }, - stopTracking: function (inst) { - var tracker = getTracker(inst); - if (tracker) { - tracker.stopTracking(); - } - } -}; - -module.exports = inputValueTracking; -},{"35":35}],125:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _prodInvariant = _dereq_(129), - _assign = _dereq_(162); - -var ReactCompositeComponent = _dereq_(29); -var ReactEmptyComponent = _dereq_(55); -var ReactHostComponent = _dereq_(61); - -var getNextDebugID = _dereq_(120); -var invariant = _dereq_(154); -var warning = _dereq_(161); - -// To avoid a cyclic dependency, we create the final class in this module -var ReactCompositeComponentWrapper = function (element) { - this.construct(element); -}; -_assign(ReactCompositeComponentWrapper.prototype, ReactCompositeComponent, { - _instantiateReactComponent: instantiateReactComponent -}); - -function getDeclarationErrorAddendum(owner) { - if (owner) { - var name = owner.getName(); - if (name) { - return ' Check the render method of `' + name + '`.'; - } - } - return ''; -} - -/** - * Check if the type reference is a known internal type. I.e. not a user - * provided composite type. - * - * @param {function} type - * @return {boolean} Returns true if this is a valid internal type. - */ -function isInternalComponentType(type) { - return typeof type === 'function' && typeof type.prototype !== 'undefined' && typeof type.prototype.mountComponent === 'function' && typeof type.prototype.receiveComponent === 'function'; -} - -/** - * Given a ReactNode, create an instance that will actually be mounted. - * - * @param {ReactNode} node - * @param {boolean} shouldHaveDebugID - * @return {object} A new instance of the element's constructor. - * @protected - */ -function instantiateReactComponent(node, shouldHaveDebugID) { - var instance; - - if (node === null || node === false) { - instance = ReactEmptyComponent.create(instantiateReactComponent); - } else if (typeof node === 'object') { - var element = node; - !(element && (typeof element.type === 'function' || typeof element.type === 'string')) ? "development" !== 'production' ? invariant(false, 'Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s', element.type == null ? element.type : typeof element.type, getDeclarationErrorAddendum(element._owner)) : _prodInvariant('130', element.type == null ? element.type : typeof element.type, getDeclarationErrorAddendum(element._owner)) : void 0; - - // Special case string values - if (typeof element.type === 'string') { - instance = ReactHostComponent.createInternalComponent(element); - } else if (isInternalComponentType(element.type)) { - // This is temporarily available for custom components that are not string - // representations. I.e. ART. Once those are updated to use the string - // representation, we can drop this code path. - instance = new element.type(element); - - // We renamed this. Allow the old name for compat. :( - if (!instance.getHostNode) { - instance.getHostNode = instance.getNativeNode; - } - } else { - instance = new ReactCompositeComponentWrapper(element); - } - } else if (typeof node === 'string' || typeof node === 'number') { - instance = ReactHostComponent.createInstanceForText(node); - } else { - !false ? "development" !== 'production' ? invariant(false, 'Encountered invalid React node of type %s', typeof node) : _prodInvariant('131', typeof node) : void 0; - } - - if ("development" !== 'production') { - "development" !== 'production' ? warning(typeof instance.mountComponent === 'function' && typeof instance.receiveComponent === 'function' && typeof instance.getHostNode === 'function' && typeof instance.unmountComponent === 'function', 'Only React Components can be mounted.') : void 0; - } - - // These two fields are used by the DOM and ART diffing algorithms - // respectively. Instead of using expandos on components, we should be - // storing the state needed by the diffing algorithms elsewhere. - instance._mountIndex = 0; - instance._mountImage = null; - - if ("development" !== 'production') { - instance._debugID = shouldHaveDebugID ? getNextDebugID() : 0; - } - - // Internal instances should fully constructed at this point, so they should - // not get any new fields added to them at this point. - if ("development" !== 'production') { - if (Object.preventExtensions) { - Object.preventExtensions(instance); - } - } - - return instance; -} - -module.exports = instantiateReactComponent; -},{"120":120,"129":129,"154":154,"161":161,"162":162,"29":29,"55":55,"61":61}],126:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var ExecutionEnvironment = _dereq_(140); - -var useHasFeature; -if (ExecutionEnvironment.canUseDOM) { - useHasFeature = document.implementation && document.implementation.hasFeature && - // always returns true in newer browsers as per the standard. - // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature - document.implementation.hasFeature('', '') !== true; -} - -/** - * Checks if an event is supported in the current execution environment. - * - * NOTE: This will not work correctly for non-generic events such as `change`, - * `reset`, `load`, `error`, and `select`. - * - * Borrows from Modernizr. - * - * @param {string} eventNameSuffix Event name, e.g. "click". - * @param {?boolean} capture Check if the capture phase is supported. - * @return {boolean} True if the event is supported. - * @internal - * @license Modernizr 3.0.0pre (Custom Build) | MIT - */ -function isEventSupported(eventNameSuffix, capture) { - if (!ExecutionEnvironment.canUseDOM || capture && !('addEventListener' in document)) { - return false; - } - - var eventName = 'on' + eventNameSuffix; - var isSupported = eventName in document; - - if (!isSupported) { - var element = document.createElement('div'); - element.setAttribute(eventName, 'return;'); - isSupported = typeof element[eventName] === 'function'; - } - - if (!isSupported && useHasFeature && eventNameSuffix === 'wheel') { - // This is the only way to test support for the `wheel` event in IE9+. - isSupported = document.implementation.hasFeature('Events.wheel', '3.0'); - } - - return isSupported; -} - -module.exports = isEventSupported; -},{"140":140}],127:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -'use strict'; - -/** - * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary - */ - -var supportedInputTypes = { - 'color': true, - 'date': true, - 'datetime': true, - 'datetime-local': true, - 'email': true, - 'month': true, - 'number': true, - 'password': true, - 'range': true, - 'search': true, - 'tel': true, - 'text': true, - 'time': true, - 'url': true, - 'week': true -}; - -function isTextInputElement(elem) { - var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase(); - - if (nodeName === 'input') { - return !!supportedInputTypes[elem.type]; - } - - if (nodeName === 'textarea') { - return true; - } - - return false; -} - -module.exports = isTextInputElement; -},{}],128:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var escapeTextContentForBrowser = _dereq_(109); - -/** - * Escapes attribute value to prevent scripting attacks. - * - * @param {*} value Value to escape. - * @return {string} An escaped string. - */ -function quoteAttributeValueForBrowser(value) { - return '"' + escapeTextContentForBrowser(value) + '"'; -} - -module.exports = quoteAttributeValueForBrowser; -},{"109":109}],129:[function(_dereq_,module,exports){ -/** - * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ -'use strict'; - -/** - * WARNING: DO NOT manually require this module. - * This is a replacement for `invariant(...)` used by the error code system - * and will _only_ be required by the corresponding babel pass. - * It always throws. - */ - -function reactProdInvariant(code) { - var argCount = arguments.length - 1; - - var message = 'Minified React error #' + code + '; visit ' + 'http://facebook.github.io/react/docs/error-decoder.html?invariant=' + code; - - for (var argIdx = 0; argIdx < argCount; argIdx++) { - message += '&args[]=' + encodeURIComponent(arguments[argIdx + 1]); - } - - message += ' for the full message or use the non-minified dev environment' + ' for full errors and additional helpful warnings.'; - - var error = new Error(message); - error.name = 'Invariant Violation'; - error.framesToPop = 1; // we don't care about reactProdInvariant's own frame - - throw error; -} - -module.exports = reactProdInvariant; -},{}],130:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var ReactMount = _dereq_(68); - -module.exports = ReactMount.renderSubtreeIntoContainer; -},{"68":68}],131:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var ExecutionEnvironment = _dereq_(140); -var DOMNamespaces = _dereq_(11); - -var WHITESPACE_TEST = /^[ \r\n\t\f]/; -var NONVISIBLE_TEST = /<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/; - -var createMicrosoftUnsafeLocalFunction = _dereq_(107); - -// SVG temp container for IE lacking innerHTML -var reusableSVGContainer; - -/** - * Set the innerHTML property of a node, ensuring that whitespace is preserved - * even in IE8. - * - * @param {DOMElement} node - * @param {string} html - * @internal - */ -var setInnerHTML = createMicrosoftUnsafeLocalFunction(function (node, html) { - // IE does not have innerHTML for SVG nodes, so instead we inject the - // new markup in a temp node and then move the child nodes across into - // the target node - if (node.namespaceURI === DOMNamespaces.svg && !('innerHTML' in node)) { - reusableSVGContainer = reusableSVGContainer || document.createElement('div'); - reusableSVGContainer.innerHTML = '<svg>' + html + '</svg>'; - var svgNode = reusableSVGContainer.firstChild; - while (svgNode.firstChild) { - node.appendChild(svgNode.firstChild); - } - } else { - node.innerHTML = html; - } -}); - -if (ExecutionEnvironment.canUseDOM) { - // IE8: When updating a just created node with innerHTML only leading - // whitespace is removed. When updating an existing node with innerHTML - // whitespace in root TextNodes is also collapsed. - // @see quirksmode.org/bugreports/archives/2004/11/innerhtml_and_t.html - - // Feature detection; only IE8 is known to behave improperly like this. - var testElement = document.createElement('div'); - testElement.innerHTML = ' '; - if (testElement.innerHTML === '') { - setInnerHTML = function (node, html) { - // Magic theory: IE8 supposedly differentiates between added and updated - // nodes when processing innerHTML, innerHTML on updated nodes suffers - // from worse whitespace behavior. Re-adding a node like this triggers - // the initial and more favorable whitespace behavior. - // TODO: What to do on a detached node? - if (node.parentNode) { - node.parentNode.replaceChild(node, node); - } - - // We also implement a workaround for non-visible tags disappearing into - // thin air on IE8, this only happens if there is no visible text - // in-front of the non-visible tags. Piggyback on the whitespace fix - // and simply check if any non-visible tags appear in the source. - if (WHITESPACE_TEST.test(html) || html[0] === '<' && NONVISIBLE_TEST.test(html)) { - // Recover leading whitespace by temporarily prepending any character. - // \uFEFF has the potential advantage of being zero-width/invisible. - // UglifyJS drops U+FEFF chars when parsing, so use String.fromCharCode - // in hopes that this is preserved even if "\uFEFF" is transformed to - // the actual Unicode character (by Babel, for example). - // https://github.com/mishoo/UglifyJS2/blob/v2.4.20/lib/parse.js#L216 - node.innerHTML = String.fromCharCode(0xFEFF) + html; - - // deleteData leaves an empty `TextNode` which offsets the index of all - // children. Definitely want to avoid this. - var textNode = node.firstChild; - if (textNode.data.length === 1) { - node.removeChild(textNode); - } else { - textNode.deleteData(0, 1); - } - } else { - node.innerHTML = html; - } - }; - } - testElement = null; -} - -module.exports = setInnerHTML; -},{"107":107,"11":11,"140":140}],132:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var ExecutionEnvironment = _dereq_(140); -var escapeTextContentForBrowser = _dereq_(109); -var setInnerHTML = _dereq_(131); - -/** - * Set the textContent property of a node, ensuring that whitespace is preserved - * even in IE8. innerText is a poor substitute for textContent and, among many - * issues, inserts <br> instead of the literal newline chars. innerHTML behaves - * as it should. - * - * @param {DOMElement} node - * @param {string} text - * @internal - */ -var setTextContent = function (node, text) { - if (text) { - var firstChild = node.firstChild; - - if (firstChild && firstChild === node.lastChild && firstChild.nodeType === 3) { - firstChild.nodeValue = text; - return; - } - } - node.textContent = text; -}; - -if (ExecutionEnvironment.canUseDOM) { - if (!('textContent' in document.documentElement)) { - setTextContent = function (node, text) { - if (node.nodeType === 3) { - node.nodeValue = text; - return; - } - setInnerHTML(node, escapeTextContentForBrowser(text)); - }; - } -} - -module.exports = setTextContent; -},{"109":109,"131":131,"140":140}],133:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -/** - * Given a `prevElement` and `nextElement`, determines if the existing - * instance should be updated as opposed to being destroyed or replaced by a new - * instance. Both arguments are elements. This ensures that this logic can - * operate on stateless trees without any backing instance. - * - * @param {?object} prevElement - * @param {?object} nextElement - * @return {boolean} True if the existing instance should be updated. - * @protected - */ - -function shouldUpdateReactComponent(prevElement, nextElement) { - var prevEmpty = prevElement === null || prevElement === false; - var nextEmpty = nextElement === null || nextElement === false; - if (prevEmpty || nextEmpty) { - return prevEmpty === nextEmpty; - } - - var prevType = typeof prevElement; - var nextType = typeof nextElement; - if (prevType === 'string' || prevType === 'number') { - return nextType === 'string' || nextType === 'number'; - } else { - return nextType === 'object' && prevElement.type === nextElement.type && prevElement.key === nextElement.key; - } -} - -module.exports = shouldUpdateReactComponent; -},{}],134:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _prodInvariant = _dereq_(129); - -var ReactCurrentOwner = _dereq_(137); -var REACT_ELEMENT_TYPE = _dereq_(54); - -var getIteratorFn = _dereq_(119); -var invariant = _dereq_(154); -var KeyEscapeUtils = _dereq_(23); -var warning = _dereq_(161); - -var SEPARATOR = '.'; -var SUBSEPARATOR = ':'; - -/** - * This is inlined from ReactElement since this file is shared between - * isomorphic and renderers. We could extract this to a - * - */ - -/** - * TODO: Test that a single child and an array with one item have the same key - * pattern. - */ - -var didWarnAboutMaps = false; - -/** - * Generate a key string that identifies a component within a set. - * - * @param {*} component A component that could contain a manual key. - * @param {number} index Index that is used if a manual key is not provided. - * @return {string} - */ -function getComponentKey(component, index) { - // Do some typechecking here since we call this blindly. We want to ensure - // that we don't block potential future ES APIs. - if (component && typeof component === 'object' && component.key != null) { - // Explicit key - return KeyEscapeUtils.escape(component.key); - } - // Implicit key determined by the index in the set - return index.toString(36); -} - -/** - * @param {?*} children Children tree container. - * @param {!string} nameSoFar Name of the key path so far. - * @param {!function} callback Callback to invoke with each child found. - * @param {?*} traverseContext Used to pass information throughout the traversal - * process. - * @return {!number} The number of children in this subtree. - */ -function traverseAllChildrenImpl(children, nameSoFar, callback, traverseContext) { - var type = typeof children; - - if (type === 'undefined' || type === 'boolean') { - // All of the above are perceived as null. - children = null; - } - - if (children === null || type === 'string' || type === 'number' || - // The following is inlined from ReactElement. This means we can optimize - // some checks. React Fiber also inlines this logic for similar purposes. - type === 'object' && children.$$typeof === REACT_ELEMENT_TYPE) { - callback(traverseContext, children, - // If it's the only child, treat the name as if it was wrapped in an array - // so that it's consistent if the number of children grows. - nameSoFar === '' ? SEPARATOR + getComponentKey(children, 0) : nameSoFar); - return 1; - } - - var child; - var nextName; - var subtreeCount = 0; // Count of children found in the current subtree. - var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR; - - if (Array.isArray(children)) { - for (var i = 0; i < children.length; i++) { - child = children[i]; - nextName = nextNamePrefix + getComponentKey(child, i); - subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext); - } - } else { - var iteratorFn = getIteratorFn(children); - if (iteratorFn) { - var iterator = iteratorFn.call(children); - var step; - if (iteratorFn !== children.entries) { - var ii = 0; - while (!(step = iterator.next()).done) { - child = step.value; - nextName = nextNamePrefix + getComponentKey(child, ii++); - subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext); - } - } else { - if ("development" !== 'production') { - var mapsAsChildrenAddendum = ''; - if (ReactCurrentOwner.current) { - var mapsAsChildrenOwnerName = ReactCurrentOwner.current.getName(); - if (mapsAsChildrenOwnerName) { - mapsAsChildrenAddendum = ' Check the render method of `' + mapsAsChildrenOwnerName + '`.'; - } - } - "development" !== 'production' ? warning(didWarnAboutMaps, 'Using Maps as children is not yet fully supported. It is an ' + 'experimental feature that might be removed. Convert it to a ' + 'sequence / iterable of keyed ReactElements instead.%s', mapsAsChildrenAddendum) : void 0; - didWarnAboutMaps = true; - } - // Iterator will provide entry [k,v] tuples rather than values. - while (!(step = iterator.next()).done) { - var entry = step.value; - if (entry) { - child = entry[1]; - nextName = nextNamePrefix + KeyEscapeUtils.escape(entry[0]) + SUBSEPARATOR + getComponentKey(child, 0); - subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext); - } - } - } - } else if (type === 'object') { - var addendum = ''; - if ("development" !== 'production') { - addendum = ' If you meant to render a collection of children, use an array ' + 'instead or wrap the object using createFragment(object) from the ' + 'React add-ons.'; - if (children._isReactElement) { - addendum = ' It looks like you\'re using an element created by a different ' + 'version of React. Make sure to use only one copy of React.'; - } - if (ReactCurrentOwner.current) { - var name = ReactCurrentOwner.current.getName(); - if (name) { - addendum += ' Check the render method of `' + name + '`.'; - } - } - } - var childrenString = String(children); - !false ? "development" !== 'production' ? invariant(false, 'Objects are not valid as a React child (found: %s).%s', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : _prodInvariant('31', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : void 0; - } - } - - return subtreeCount; -} - -/** - * Traverses children that are typically specified as `props.children`, but - * might also be specified through attributes: - * - * - `traverseAllChildren(this.props.children, ...)` - * - `traverseAllChildren(this.props.leftPanelChildren, ...)` - * - * The `traverseContext` is an optional argument that is passed through the - * entire traversal. It can be used to store accumulations or anything else that - * the callback might find relevant. - * - * @param {?*} children Children tree object. - * @param {!function} callback To invoke upon traversing each child. - * @param {?*} traverseContext Context for traversal. - * @return {!number} The number of children in this subtree. - */ -function traverseAllChildren(children, callback, traverseContext) { - if (children == null) { - return 0; - } - - return traverseAllChildrenImpl(children, '', callback, traverseContext); -} - -module.exports = traverseAllChildren; -},{"119":119,"129":129,"137":137,"154":154,"161":161,"23":23,"54":54}],135:[function(_dereq_,module,exports){ -/** - * Copyright 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _assign = _dereq_(162); - -var emptyFunction = _dereq_(146); -var getComponentName = _dereq_(113); -var warning = _dereq_(161); - -var validateDOMNesting = emptyFunction; - -if ("development" !== 'production') { - // This validation code was written based on the HTML5 parsing spec: - // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope - // - // Note: this does not catch all invalid nesting, nor does it try to (as it's - // not clear what practical benefit doing so provides); instead, we warn only - // for cases where the parser will give a parse tree differing from what React - // intended. For example, <b><div></div></b> is invalid but we don't warn - // because it still parses correctly; we do warn for other cases like nested - // <p> tags where the beginning of the second element implicitly closes the - // first, causing a confusing mess. - - // https://html.spec.whatwg.org/multipage/syntax.html#special - var specialTags = ['address', 'applet', 'area', 'article', 'aside', 'base', 'basefont', 'bgsound', 'blockquote', 'body', 'br', 'button', 'caption', 'center', 'col', 'colgroup', 'dd', 'details', 'dir', 'div', 'dl', 'dt', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'frame', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'iframe', 'img', 'input', 'isindex', 'li', 'link', 'listing', 'main', 'marquee', 'menu', 'menuitem', 'meta', 'nav', 'noembed', 'noframes', 'noscript', 'object', 'ol', 'p', 'param', 'plaintext', 'pre', 'script', 'section', 'select', 'source', 'style', 'summary', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'title', 'tr', 'track', 'ul', 'wbr', 'xmp']; - - // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope - var inScopeTags = ['applet', 'caption', 'html', 'table', 'td', 'th', 'marquee', 'object', 'template', - - // https://html.spec.whatwg.org/multipage/syntax.html#html-integration-point - // TODO: Distinguish by namespace here -- for <title>, including it here - // errs on the side of fewer warnings - 'foreignObject', 'desc', 'title']; - - // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-button-scope - var buttonScopeTags = inScopeTags.concat(['button']); - - // https://html.spec.whatwg.org/multipage/syntax.html#generate-implied-end-tags - var impliedEndTags = ['dd', 'dt', 'li', 'option', 'optgroup', 'p', 'rp', 'rt']; - - var emptyAncestorInfo = { - current: null, - - formTag: null, - aTagInScope: null, - buttonTagInScope: null, - nobrTagInScope: null, - pTagInButtonScope: null, - - listItemTagAutoclosing: null, - dlItemTagAutoclosing: null - }; - - var updatedAncestorInfo = function (oldInfo, tag, instance) { - var ancestorInfo = _assign({}, oldInfo || emptyAncestorInfo); - var info = { tag: tag, instance: instance }; - - if (inScopeTags.indexOf(tag) !== -1) { - ancestorInfo.aTagInScope = null; - ancestorInfo.buttonTagInScope = null; - ancestorInfo.nobrTagInScope = null; - } - if (buttonScopeTags.indexOf(tag) !== -1) { - ancestorInfo.pTagInButtonScope = null; - } - - // See rules for 'li', 'dd', 'dt' start tags in - // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody - if (specialTags.indexOf(tag) !== -1 && tag !== 'address' && tag !== 'div' && tag !== 'p') { - ancestorInfo.listItemTagAutoclosing = null; - ancestorInfo.dlItemTagAutoclosing = null; - } - - ancestorInfo.current = info; - - if (tag === 'form') { - ancestorInfo.formTag = info; - } - if (tag === 'a') { - ancestorInfo.aTagInScope = info; - } - if (tag === 'button') { - ancestorInfo.buttonTagInScope = info; - } - if (tag === 'nobr') { - ancestorInfo.nobrTagInScope = info; - } - if (tag === 'p') { - ancestorInfo.pTagInButtonScope = info; - } - if (tag === 'li') { - ancestorInfo.listItemTagAutoclosing = info; - } - if (tag === 'dd' || tag === 'dt') { - ancestorInfo.dlItemTagAutoclosing = info; - } - - return ancestorInfo; - }; - - /** - * Returns whether - */ - var isTagValidWithParent = function (tag, parentTag) { - // First, let's check if we're in an unusual parsing mode... - switch (parentTag) { - // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inselect - case 'select': - return tag === 'option' || tag === 'optgroup' || tag === '#text'; - case 'optgroup': - return tag === 'option' || tag === '#text'; - // Strictly speaking, seeing an <option> doesn't mean we're in a <select> - // but - case 'option': - return tag === '#text'; - - // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intd - // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incaption - // No special behavior since these rules fall back to "in body" mode for - // all except special table nodes which cause bad parsing behavior anyway. - - // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intr - case 'tr': - return tag === 'th' || tag === 'td' || tag === 'style' || tag === 'script' || tag === 'template'; - - // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intbody - case 'tbody': - case 'thead': - case 'tfoot': - return tag === 'tr' || tag === 'style' || tag === 'script' || tag === 'template'; - - // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incolgroup - case 'colgroup': - return tag === 'col' || tag === 'template'; - - // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intable - case 'table': - return tag === 'caption' || tag === 'colgroup' || tag === 'tbody' || tag === 'tfoot' || tag === 'thead' || tag === 'style' || tag === 'script' || tag === 'template'; - - // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inhead - case 'head': - return tag === 'base' || tag === 'basefont' || tag === 'bgsound' || tag === 'link' || tag === 'meta' || tag === 'title' || tag === 'noscript' || tag === 'noframes' || tag === 'style' || tag === 'script' || tag === 'template'; - - // https://html.spec.whatwg.org/multipage/semantics.html#the-html-element - case 'html': - return tag === 'head' || tag === 'body'; - case '#document': - return tag === 'html'; - } - - // Probably in the "in body" parsing mode, so we outlaw only tag combos - // where the parsing rules cause implicit opens or closes to be added. - // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody - switch (tag) { - case 'h1': - case 'h2': - case 'h3': - case 'h4': - case 'h5': - case 'h6': - return parentTag !== 'h1' && parentTag !== 'h2' && parentTag !== 'h3' && parentTag !== 'h4' && parentTag !== 'h5' && parentTag !== 'h6'; - - case 'rp': - case 'rt': - return impliedEndTags.indexOf(parentTag) === -1; - - case 'body': - case 'caption': - case 'col': - case 'colgroup': - case 'frame': - case 'head': - case 'html': - case 'tbody': - case 'td': - case 'tfoot': - case 'th': - case 'thead': - case 'tr': - // These tags are only valid with a few parents that have special child - // parsing rules -- if we're down here, then none of those matched and - // so we allow it only if we don't know what the parent is, as all other - // cases are invalid. - return parentTag == null; - } - - return true; - }; - - /** - * Returns whether - */ - var findInvalidAncestorForTag = function (tag, ancestorInfo) { - switch (tag) { - case 'address': - case 'article': - case 'aside': - case 'blockquote': - case 'center': - case 'details': - case 'dialog': - case 'dir': - case 'div': - case 'dl': - case 'fieldset': - case 'figcaption': - case 'figure': - case 'footer': - case 'header': - case 'hgroup': - case 'main': - case 'menu': - case 'nav': - case 'ol': - case 'p': - case 'section': - case 'summary': - case 'ul': - - case 'pre': - case 'listing': - - case 'table': - - case 'hr': - - case 'xmp': - - case 'h1': - case 'h2': - case 'h3': - case 'h4': - case 'h5': - case 'h6': - return ancestorInfo.pTagInButtonScope; - - case 'form': - return ancestorInfo.formTag || ancestorInfo.pTagInButtonScope; - - case 'li': - return ancestorInfo.listItemTagAutoclosing; - - case 'dd': - case 'dt': - return ancestorInfo.dlItemTagAutoclosing; - - case 'button': - return ancestorInfo.buttonTagInScope; - - case 'a': - // Spec says something about storing a list of markers, but it sounds - // equivalent to this check. - return ancestorInfo.aTagInScope; - - case 'nobr': - return ancestorInfo.nobrTagInScope; - } - - return null; - }; - - /** - * Given a ReactCompositeComponent instance, return a list of its recursive - * owners, starting at the root and ending with the instance itself. - */ - var findOwnerStack = function (instance) { - if (!instance) { - return []; - } - - var stack = []; - do { - stack.push(instance); - } while (instance = instance._currentElement._owner); - stack.reverse(); - return stack; - }; - - var didWarn = {}; - - validateDOMNesting = function (childTag, childText, childInstance, ancestorInfo) { - ancestorInfo = ancestorInfo || emptyAncestorInfo; - var parentInfo = ancestorInfo.current; - var parentTag = parentInfo && parentInfo.tag; - - if (childText != null) { - "development" !== 'production' ? warning(childTag == null, 'validateDOMNesting: when childText is passed, childTag should be null') : void 0; - childTag = '#text'; - } - - var invalidParent = isTagValidWithParent(childTag, parentTag) ? null : parentInfo; - var invalidAncestor = invalidParent ? null : findInvalidAncestorForTag(childTag, ancestorInfo); - var problematic = invalidParent || invalidAncestor; - - if (problematic) { - var ancestorTag = problematic.tag; - var ancestorInstance = problematic.instance; - - var childOwner = childInstance && childInstance._currentElement._owner; - var ancestorOwner = ancestorInstance && ancestorInstance._currentElement._owner; - - var childOwners = findOwnerStack(childOwner); - var ancestorOwners = findOwnerStack(ancestorOwner); - - var minStackLen = Math.min(childOwners.length, ancestorOwners.length); - var i; - - var deepestCommon = -1; - for (i = 0; i < minStackLen; i++) { - if (childOwners[i] === ancestorOwners[i]) { - deepestCommon = i; - } else { - break; - } - } - - var UNKNOWN = '(unknown)'; - var childOwnerNames = childOwners.slice(deepestCommon + 1).map(function (inst) { - return getComponentName(inst) || UNKNOWN; - }); - var ancestorOwnerNames = ancestorOwners.slice(deepestCommon + 1).map(function (inst) { - return getComponentName(inst) || UNKNOWN; - }); - var ownerInfo = [].concat( - // If the parent and child instances have a common owner ancestor, start - // with that -- otherwise we just start with the parent's owners. - deepestCommon !== -1 ? getComponentName(childOwners[deepestCommon]) || UNKNOWN : [], ancestorOwnerNames, ancestorTag, - // If we're warning about an invalid (non-parent) ancestry, add '...' - invalidAncestor ? ['...'] : [], childOwnerNames, childTag).join(' > '); - - var warnKey = !!invalidParent + '|' + childTag + '|' + ancestorTag + '|' + ownerInfo; - if (didWarn[warnKey]) { - return; - } - didWarn[warnKey] = true; - - var tagDisplayName = childTag; - var whitespaceInfo = ''; - if (childTag === '#text') { - if (/\S/.test(childText)) { - tagDisplayName = 'Text nodes'; - } else { - tagDisplayName = 'Whitespace text nodes'; - whitespaceInfo = ' Make sure you don\'t have any extra whitespace between tags on ' + 'each line of your source code.'; - } - } else { - tagDisplayName = '<' + childTag + '>'; - } - - if (invalidParent) { - var info = ''; - if (ancestorTag === 'table' && childTag === 'tr') { - info += ' Add a <tbody> to your code to match the DOM tree generated by ' + 'the browser.'; - } - "development" !== 'production' ? warning(false, 'validateDOMNesting(...): %s cannot appear as a child of <%s>.%s ' + 'See %s.%s', tagDisplayName, ancestorTag, whitespaceInfo, ownerInfo, info) : void 0; - } else { - "development" !== 'production' ? warning(false, 'validateDOMNesting(...): %s cannot appear as a descendant of ' + '<%s>. See %s.', tagDisplayName, ancestorTag, ownerInfo) : void 0; - } - } - }; - - validateDOMNesting.updatedAncestorInfo = updatedAncestorInfo; - - // For testing - validateDOMNesting.isTagValidInContext = function (tag, ancestorInfo) { - ancestorInfo = ancestorInfo || emptyAncestorInfo; - var parentInfo = ancestorInfo.current; - var parentTag = parentInfo && parentInfo.tag; - return isTagValidWithParent(tag, parentTag) && !findInvalidAncestorForTag(tag, ancestorInfo); - }; -} - -module.exports = validateDOMNesting; -},{"113":113,"146":146,"161":161,"162":162}],136:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -/* globals React */ - -'use strict'; - -var ReactInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED; - -module.exports = ReactInternals.ReactComponentTreeHook; -},{}],137:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -/* globals React */ - -'use strict'; - -var ReactInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED; - -module.exports = ReactInternals.ReactCurrentOwner; -},{}],138:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -/* globals React */ - -'use strict'; - -module.exports = React; -},{}],139:[function(_dereq_,module,exports){ -'use strict'; - -/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * @typechecks - */ - -var emptyFunction = _dereq_(146); - -/** - * Upstream version of event listener. Does not take into account specific - * nature of platform. - */ -var EventListener = { - /** - * Listen to DOM events during the bubble phase. - * - * @param {DOMEventTarget} target DOM element to register listener on. - * @param {string} eventType Event type, e.g. 'click' or 'mouseover'. - * @param {function} callback Callback function. - * @return {object} Object with a `remove` method. - */ - listen: function listen(target, eventType, callback) { - if (target.addEventListener) { - target.addEventListener(eventType, callback, false); - return { - remove: function remove() { - target.removeEventListener(eventType, callback, false); - } - }; - } else if (target.attachEvent) { - target.attachEvent('on' + eventType, callback); - return { - remove: function remove() { - target.detachEvent('on' + eventType, callback); - } - }; - } - }, - - /** - * Listen to DOM events during the capture phase. - * - * @param {DOMEventTarget} target DOM element to register listener on. - * @param {string} eventType Event type, e.g. 'click' or 'mouseover'. - * @param {function} callback Callback function. - * @return {object} Object with a `remove` method. - */ - capture: function capture(target, eventType, callback) { - if (target.addEventListener) { - target.addEventListener(eventType, callback, true); - return { - remove: function remove() { - target.removeEventListener(eventType, callback, true); - } - }; - } else { - if ("development" !== 'production') { - console.error('Attempted to listen to events during the capture phase on a ' + 'browser that does not support the capture phase. Your application ' + 'will not receive some events.'); - } - return { - remove: emptyFunction - }; - } - }, - - registerDefault: function registerDefault() {} -}; - -module.exports = EventListener; -},{"146":146}],140:[function(_dereq_,module,exports){ -/** - * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement); - -/** - * Simple, lightweight module assisting with the detection and context of - * Worker. Helps avoid circular dependencies and allows code to reason about - * whether or not they are in a Worker, even if they never include the main - * `ReactWorker` dependency. - */ -var ExecutionEnvironment = { - - canUseDOM: canUseDOM, - - canUseWorkers: typeof Worker !== 'undefined', - - canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent), - - canUseViewport: canUseDOM && !!window.screen, - - isInWorker: !canUseDOM // For now, this is true - might change in the future. - -}; - -module.exports = ExecutionEnvironment; -},{}],141:[function(_dereq_,module,exports){ -"use strict"; - -/** - * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @typechecks - */ - -var _hyphenPattern = /-(.)/g; - -/** - * Camelcases a hyphenated string, for example: - * - * > camelize('background-color') - * < "backgroundColor" - * - * @param {string} string - * @return {string} - */ -function camelize(string) { - return string.replace(_hyphenPattern, function (_, character) { - return character.toUpperCase(); - }); -} - -module.exports = camelize; -},{}],142:[function(_dereq_,module,exports){ -/** - * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @typechecks - */ - -'use strict'; - -var camelize = _dereq_(141); - -var msPattern = /^-ms-/; - -/** - * Camelcases a hyphenated CSS property name, for example: - * - * > camelizeStyleName('background-color') - * < "backgroundColor" - * > camelizeStyleName('-moz-transition') - * < "MozTransition" - * > camelizeStyleName('-ms-transition') - * < "msTransition" - * - * As Andi Smith suggests - * (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix - * is converted to lowercase `ms`. - * - * @param {string} string - * @return {string} - */ -function camelizeStyleName(string) { - return camelize(string.replace(msPattern, 'ms-')); -} - -module.exports = camelizeStyleName; -},{"141":141}],143:[function(_dereq_,module,exports){ -'use strict'; - -/** - * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -var isTextNode = _dereq_(156); - -/*eslint-disable no-bitwise */ - -/** - * Checks if a given DOM node contains or is another DOM node. - */ -function containsNode(outerNode, innerNode) { - if (!outerNode || !innerNode) { - return false; - } else if (outerNode === innerNode) { - return true; - } else if (isTextNode(outerNode)) { - return false; - } else if (isTextNode(innerNode)) { - return containsNode(outerNode, innerNode.parentNode); - } else if ('contains' in outerNode) { - return outerNode.contains(innerNode); - } else if (outerNode.compareDocumentPosition) { - return !!(outerNode.compareDocumentPosition(innerNode) & 16); - } else { - return false; - } -} - -module.exports = containsNode; -},{"156":156}],144:[function(_dereq_,module,exports){ -'use strict'; - -/** - * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @typechecks - */ - -var invariant = _dereq_(154); - -/** - * Convert array-like objects to arrays. - * - * This API assumes the caller knows the contents of the data type. For less - * well defined inputs use createArrayFromMixed. - * - * @param {object|function|filelist} obj - * @return {array} - */ -function toArray(obj) { - var length = obj.length; - - // Some browsers builtin objects can report typeof 'function' (e.g. NodeList - // in old versions of Safari). - !(!Array.isArray(obj) && (typeof obj === 'object' || typeof obj === 'function')) ? "development" !== 'production' ? invariant(false, 'toArray: Array-like object expected') : invariant(false) : void 0; - - !(typeof length === 'number') ? "development" !== 'production' ? invariant(false, 'toArray: Object needs a length property') : invariant(false) : void 0; - - !(length === 0 || length - 1 in obj) ? "development" !== 'production' ? invariant(false, 'toArray: Object should have keys for indices') : invariant(false) : void 0; - - !(typeof obj.callee !== 'function') ? "development" !== 'production' ? invariant(false, 'toArray: Object can\'t be `arguments`. Use rest params ' + '(function(...args) {}) or Array.from() instead.') : invariant(false) : void 0; - - // Old IE doesn't give collections access to hasOwnProperty. Assume inputs - // without method will throw during the slice call and skip straight to the - // fallback. - if (obj.hasOwnProperty) { - try { - return Array.prototype.slice.call(obj); - } catch (e) { - // IE < 9 does not support Array#slice on collections objects - } - } - - // Fall back to copying key by key. This assumes all keys have a value, - // so will not preserve sparsely populated inputs. - var ret = Array(length); - for (var ii = 0; ii < length; ii++) { - ret[ii] = obj[ii]; - } - return ret; -} - -/** - * Perform a heuristic test to determine if an object is "array-like". - * - * A monk asked Joshu, a Zen master, "Has a dog Buddha nature?" - * Joshu replied: "Mu." - * - * This function determines if its argument has "array nature": it returns - * true if the argument is an actual array, an `arguments' object, or an - * HTMLCollection (e.g. node.childNodes or node.getElementsByTagName()). - * - * It will return false for other array-like objects like Filelist. - * - * @param {*} obj - * @return {boolean} - */ -function hasArrayNature(obj) { - return ( - // not null/false - !!obj && ( - // arrays are objects, NodeLists are functions in Safari - typeof obj == 'object' || typeof obj == 'function') && - // quacks like an array - 'length' in obj && - // not window - !('setInterval' in obj) && - // no DOM node should be considered an array-like - // a 'select' element has 'length' and 'item' properties on IE8 - typeof obj.nodeType != 'number' && ( - // a real array - Array.isArray(obj) || - // arguments - 'callee' in obj || - // HTMLCollection/NodeList - 'item' in obj) - ); -} - -/** - * Ensure that the argument is an array by wrapping it in an array if it is not. - * Creates a copy of the argument if it is already an array. - * - * This is mostly useful idiomatically: - * - * var createArrayFromMixed = require('createArrayFromMixed'); - * - * function takesOneOrMoreThings(things) { - * things = createArrayFromMixed(things); - * ... - * } - * - * This allows you to treat `things' as an array, but accept scalars in the API. - * - * If you need to convert an array-like object, like `arguments`, into an array - * use toArray instead. - * - * @param {*} obj - * @return {array} - */ -function createArrayFromMixed(obj) { - if (!hasArrayNature(obj)) { - return [obj]; - } else if (Array.isArray(obj)) { - return obj.slice(); - } else { - return toArray(obj); - } -} - -module.exports = createArrayFromMixed; -},{"154":154}],145:[function(_dereq_,module,exports){ -'use strict'; - -/** - * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @typechecks - */ - -/*eslint-disable fb-www/unsafe-html*/ - -var ExecutionEnvironment = _dereq_(140); - -var createArrayFromMixed = _dereq_(144); -var getMarkupWrap = _dereq_(150); -var invariant = _dereq_(154); - -/** - * Dummy container used to render all markup. - */ -var dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null; - -/** - * Pattern used by `getNodeName`. - */ -var nodeNamePattern = /^\s*<(\w+)/; - -/** - * Extracts the `nodeName` of the first element in a string of markup. - * - * @param {string} markup String of markup. - * @return {?string} Node name of the supplied markup. - */ -function getNodeName(markup) { - var nodeNameMatch = markup.match(nodeNamePattern); - return nodeNameMatch && nodeNameMatch[1].toLowerCase(); -} - -/** - * Creates an array containing the nodes rendered from the supplied markup. The - * optionally supplied `handleScript` function will be invoked once for each - * <script> element that is rendered. If no `handleScript` function is supplied, - * an exception is thrown if any <script> elements are rendered. - * - * @param {string} markup A string of valid HTML markup. - * @param {?function} handleScript Invoked once for each rendered <script>. - * @return {array<DOMElement|DOMTextNode>} An array of rendered nodes. - */ -function createNodesFromMarkup(markup, handleScript) { - var node = dummyNode; - !!!dummyNode ? "development" !== 'production' ? invariant(false, 'createNodesFromMarkup dummy not initialized') : invariant(false) : void 0; - var nodeName = getNodeName(markup); - - var wrap = nodeName && getMarkupWrap(nodeName); - if (wrap) { - node.innerHTML = wrap[1] + markup + wrap[2]; - - var wrapDepth = wrap[0]; - while (wrapDepth--) { - node = node.lastChild; - } - } else { - node.innerHTML = markup; - } - - var scripts = node.getElementsByTagName('script'); - if (scripts.length) { - !handleScript ? "development" !== 'production' ? invariant(false, 'createNodesFromMarkup(...): Unexpected <script> element rendered.') : invariant(false) : void 0; - createArrayFromMixed(scripts).forEach(handleScript); - } - - var nodes = Array.from(node.childNodes); - while (node.lastChild) { - node.removeChild(node.lastChild); - } - return nodes; -} - -module.exports = createNodesFromMarkup; -},{"140":140,"144":144,"150":150,"154":154}],146:[function(_dereq_,module,exports){ -"use strict"; - -/** - * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -function makeEmptyFunction(arg) { - return function () { - return arg; - }; -} - -/** - * This function accepts and discards inputs; it has no side effects. This is - * primarily useful idiomatically for overridable function endpoints which - * always need to be callable, since JS lacks a null-call idiom ala Cocoa. - */ -var emptyFunction = function emptyFunction() {}; - -emptyFunction.thatReturns = makeEmptyFunction; -emptyFunction.thatReturnsFalse = makeEmptyFunction(false); -emptyFunction.thatReturnsTrue = makeEmptyFunction(true); -emptyFunction.thatReturnsNull = makeEmptyFunction(null); -emptyFunction.thatReturnsThis = function () { - return this; -}; -emptyFunction.thatReturnsArgument = function (arg) { - return arg; -}; - -module.exports = emptyFunction; -},{}],147:[function(_dereq_,module,exports){ -/** - * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var emptyObject = {}; - -if ("development" !== 'production') { - Object.freeze(emptyObject); -} - -module.exports = emptyObject; -},{}],148:[function(_dereq_,module,exports){ -/** - * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -/** - * @param {DOMElement} node input/textarea to focus - */ - -function focusNode(node) { - // IE8 can throw "Can't move focus to the control because it is invisible, - // not enabled, or of a type that does not accept the focus." for all kinds of - // reasons that are too expensive and fragile to test. - try { - node.focus(); - } catch (e) {} -} - -module.exports = focusNode; -},{}],149:[function(_dereq_,module,exports){ -'use strict'; - -/** - * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @typechecks - */ - -/* eslint-disable fb-www/typeof-undefined */ - -/** - * Same as document.activeElement but wraps in a try-catch block. In IE it is - * not safe to call document.activeElement if there is nothing focused. - * - * The activeElement will be null only if the document or document body is not - * yet defined. - */ -function getActiveElement() /*?DOMElement*/{ - if (typeof document === 'undefined') { - return null; - } - try { - return document.activeElement || document.body; - } catch (e) { - return document.body; - } -} - -module.exports = getActiveElement; -},{}],150:[function(_dereq_,module,exports){ -'use strict'; - -/** - * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -/*eslint-disable fb-www/unsafe-html */ - -var ExecutionEnvironment = _dereq_(140); - -var invariant = _dereq_(154); - -/** - * Dummy container used to detect which wraps are necessary. - */ -var dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null; - -/** - * Some browsers cannot use `innerHTML` to render certain elements standalone, - * so we wrap them, render the wrapped nodes, then extract the desired node. - * - * In IE8, certain elements cannot render alone, so wrap all elements ('*'). - */ - -var shouldWrap = {}; - -var selectWrap = [1, '<select multiple="true">', '</select>']; -var tableWrap = [1, '<table>', '</table>']; -var trWrap = [3, '<table><tbody><tr>', '</tr></tbody></table>']; - -var svgWrap = [1, '<svg xmlns="http://www.w3.org/2000/svg">', '</svg>']; - -var markupWrap = { - '*': [1, '?<div>', '</div>'], - - 'area': [1, '<map>', '</map>'], - 'col': [2, '<table><tbody></tbody><colgroup>', '</colgroup></table>'], - 'legend': [1, '<fieldset>', '</fieldset>'], - 'param': [1, '<object>', '</object>'], - 'tr': [2, '<table><tbody>', '</tbody></table>'], - - 'optgroup': selectWrap, - 'option': selectWrap, - - 'caption': tableWrap, - 'colgroup': tableWrap, - 'tbody': tableWrap, - 'tfoot': tableWrap, - 'thead': tableWrap, - - 'td': trWrap, - 'th': trWrap -}; - -// Initialize the SVG elements since we know they'll always need to be wrapped -// consistently. If they are created inside a <div> they will be initialized in -// the wrong namespace (and will not display). -var svgElements = ['circle', 'clipPath', 'defs', 'ellipse', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'text', 'tspan']; -svgElements.forEach(function (nodeName) { - markupWrap[nodeName] = svgWrap; - shouldWrap[nodeName] = true; -}); - -/** - * Gets the markup wrap configuration for the supplied `nodeName`. - * - * NOTE: This lazily detects which wraps are necessary for the current browser. - * - * @param {string} nodeName Lowercase `nodeName`. - * @return {?array} Markup wrap configuration, if applicable. - */ -function getMarkupWrap(nodeName) { - !!!dummyNode ? "development" !== 'production' ? invariant(false, 'Markup wrapping node not initialized') : invariant(false) : void 0; - if (!markupWrap.hasOwnProperty(nodeName)) { - nodeName = '*'; - } - if (!shouldWrap.hasOwnProperty(nodeName)) { - if (nodeName === '*') { - dummyNode.innerHTML = '<link />'; - } else { - dummyNode.innerHTML = '<' + nodeName + '></' + nodeName + '>'; - } - shouldWrap[nodeName] = !dummyNode.firstChild; - } - return shouldWrap[nodeName] ? markupWrap[nodeName] : null; -} - -module.exports = getMarkupWrap; -},{"140":140,"154":154}],151:[function(_dereq_,module,exports){ -/** - * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @typechecks - */ - -'use strict'; - -/** - * Gets the scroll position of the supplied element or window. - * - * The return values are unbounded, unlike `getScrollPosition`. This means they - * may be negative or exceed the element boundaries (which is possible using - * inertial scrolling). - * - * @param {DOMWindow|DOMElement} scrollable - * @return {object} Map with `x` and `y` keys. - */ - -function getUnboundedScrollPosition(scrollable) { - if (scrollable === window) { - return { - x: window.pageXOffset || document.documentElement.scrollLeft, - y: window.pageYOffset || document.documentElement.scrollTop - }; - } - return { - x: scrollable.scrollLeft, - y: scrollable.scrollTop - }; -} - -module.exports = getUnboundedScrollPosition; -},{}],152:[function(_dereq_,module,exports){ -'use strict'; - -/** - * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @typechecks - */ - -var _uppercasePattern = /([A-Z])/g; - -/** - * Hyphenates a camelcased string, for example: - * - * > hyphenate('backgroundColor') - * < "background-color" - * - * For CSS style names, use `hyphenateStyleName` instead which works properly - * with all vendor prefixes, including `ms`. - * - * @param {string} string - * @return {string} - */ -function hyphenate(string) { - return string.replace(_uppercasePattern, '-$1').toLowerCase(); -} - -module.exports = hyphenate; -},{}],153:[function(_dereq_,module,exports){ -/** - * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @typechecks - */ - -'use strict'; - -var hyphenate = _dereq_(152); - -var msPattern = /^ms-/; - -/** - * Hyphenates a camelcased CSS property name, for example: - * - * > hyphenateStyleName('backgroundColor') - * < "background-color" - * > hyphenateStyleName('MozTransition') - * < "-moz-transition" - * > hyphenateStyleName('msTransition') - * < "-ms-transition" - * - * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix - * is converted to `-ms-`. - * - * @param {string} string - * @return {string} - */ -function hyphenateStyleName(string) { - return hyphenate(string).replace(msPattern, '-ms-'); -} - -module.exports = hyphenateStyleName; -},{"152":152}],154:[function(_dereq_,module,exports){ -/** - * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -/** - * Use invariant() to assert state which your program assumes to be true. - * - * Provide sprintf-style format (only %s is supported) and arguments - * to provide information about what broke and what you were - * expecting. - * - * The invariant message will be stripped in production, but the invariant - * will remain to ensure logic does not differ in production. - */ - -function invariant(condition, format, a, b, c, d, e, f) { - if ("development" !== 'production') { - if (format === undefined) { - throw new Error('invariant requires an error message argument'); - } - } - - if (!condition) { - var error; - if (format === undefined) { - error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.'); - } else { - var args = [a, b, c, d, e, f]; - var argIndex = 0; - error = new Error(format.replace(/%s/g, function () { - return args[argIndex++]; - })); - error.name = 'Invariant Violation'; - } - - error.framesToPop = 1; // we don't care about invariant's own frame - throw error; - } -} - -module.exports = invariant; -},{}],155:[function(_dereq_,module,exports){ -'use strict'; - -/** - * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @typechecks - */ - -/** - * @param {*} object The object to check. - * @return {boolean} Whether or not the object is a DOM node. - */ -function isNode(object) { - return !!(object && (typeof Node === 'function' ? object instanceof Node : typeof object === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string')); -} - -module.exports = isNode; -},{}],156:[function(_dereq_,module,exports){ -'use strict'; - -/** - * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @typechecks - */ - -var isNode = _dereq_(155); - -/** - * @param {*} object The object to check. - * @return {boolean} Whether or not the object is a DOM text node. - */ -function isTextNode(object) { - return isNode(object) && object.nodeType == 3; -} - -module.exports = isTextNode; -},{"155":155}],157:[function(_dereq_,module,exports){ -/** - * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - * @typechecks static-only - */ - -'use strict'; - -/** - * Memoizes the return value of a function that accepts one string argument. - */ - -function memoizeStringOnly(callback) { - var cache = {}; - return function (string) { - if (!cache.hasOwnProperty(string)) { - cache[string] = callback.call(this, string); - } - return cache[string]; - }; -} - -module.exports = memoizeStringOnly; -},{}],158:[function(_dereq_,module,exports){ -/** - * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @typechecks - */ - -'use strict'; - -var ExecutionEnvironment = _dereq_(140); - -var performance; - -if (ExecutionEnvironment.canUseDOM) { - performance = window.performance || window.msPerformance || window.webkitPerformance; -} - -module.exports = performance || {}; -},{"140":140}],159:[function(_dereq_,module,exports){ -'use strict'; - -/** - * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @typechecks - */ - -var performance = _dereq_(158); - -var performanceNow; - -/** - * Detect if we can use `window.performance.now()` and gracefully fallback to - * `Date.now()` if it doesn't exist. We need to support Firefox < 15 for now - * because of Facebook's testing infrastructure. - */ -if (performance.now) { - performanceNow = function performanceNow() { - return performance.now(); - }; -} else { - performanceNow = function performanceNow() { - return Date.now(); - }; -} - -module.exports = performanceNow; -},{"158":158}],160:[function(_dereq_,module,exports){ -/** - * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @typechecks - * - */ - -/*eslint-disable no-self-compare */ - -'use strict'; - -var hasOwnProperty = Object.prototype.hasOwnProperty; - -/** - * inlined Object.is polyfill to avoid requiring consumers ship their own - * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is - */ -function is(x, y) { - // SameValue algorithm - if (x === y) { - // Steps 1-5, 7-10 - // Steps 6.b-6.e: +0 != -0 - // Added the nonzero y check to make Flow happy, but it is redundant - return x !== 0 || y !== 0 || 1 / x === 1 / y; - } else { - // Step 6.a: NaN == NaN - return x !== x && y !== y; - } -} - -/** - * Performs equality by iterating through keys on an object and returning false - * when any key has values which are not strictly equal between the arguments. - * Returns true when the values of all keys are strictly equal. - */ -function shallowEqual(objA, objB) { - if (is(objA, objB)) { - return true; - } - - if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) { - return false; - } - - var keysA = Object.keys(objA); - var keysB = Object.keys(objB); - - if (keysA.length !== keysB.length) { - return false; - } - - // Test for A's keys different from B. - for (var i = 0; i < keysA.length; i++) { - if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) { - return false; - } - } - - return true; -} - -module.exports = shallowEqual; -},{}],161:[function(_dereq_,module,exports){ -/** - * Copyright 2014-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var emptyFunction = _dereq_(146); - -/** - * Similar to invariant but only logs a warning if the condition is not met. - * This can be used to log issues in development environments in critical - * paths. Removing the logging code for production environments will keep the - * same logic and follow the same code paths. - */ - -var warning = emptyFunction; - -if ("development" !== 'production') { - (function () { - var printWarning = function printWarning(format) { - for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - - var argIndex = 0; - var message = 'Warning: ' + format.replace(/%s/g, function () { - return args[argIndex++]; - }); - if (typeof console !== 'undefined') { - console.error(message); - } - try { - // --- Welcome to debugging React --- - // This error was thrown as a convenience so that you can use this stack - // to find the callsite that caused this warning to fire. - throw new Error(message); - } catch (x) {} - }; - - warning = function warning(condition, format) { - if (format === undefined) { - throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument'); - } - - if (format.indexOf('Failed Composite propType: ') === 0) { - return; // Ignore CompositeComponent proptype check. - } - - if (!condition) { - for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { - args[_key2 - 2] = arguments[_key2]; - } - - printWarning.apply(undefined, [format].concat(args)); - } - }; - })(); -} - -module.exports = warning; -},{"146":146}],162:[function(_dereq_,module,exports){ -'use strict'; -/* eslint-disable no-unused-vars */ -var hasOwnProperty = Object.prototype.hasOwnProperty; -var propIsEnumerable = Object.prototype.propertyIsEnumerable; - -function toObject(val) { - if (val === null || val === undefined) { - throw new TypeError('Object.assign cannot be called with null or undefined'); - } - - return Object(val); -} - -function shouldUseNative() { - try { - if (!Object.assign) { - return false; - } - - // Detect buggy property enumeration order in older V8 versions. - - // https://bugs.chromium.org/p/v8/issues/detail?id=4118 - var test1 = new String('abc'); // eslint-disable-line - test1[5] = 'de'; - if (Object.getOwnPropertyNames(test1)[0] === '5') { - return false; - } - - // https://bugs.chromium.org/p/v8/issues/detail?id=3056 - var test2 = {}; - for (var i = 0; i < 10; i++) { - test2['_' + String.fromCharCode(i)] = i; - } - var order2 = Object.getOwnPropertyNames(test2).map(function (n) { - return test2[n]; - }); - if (order2.join('') !== '0123456789') { - return false; - } - - // https://bugs.chromium.org/p/v8/issues/detail?id=3056 - var test3 = {}; - 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { - test3[letter] = letter; - }); - if (Object.keys(Object.assign({}, test3)).join('') !== - 'abcdefghijklmnopqrst') { - return false; - } - - return true; - } catch (e) { - // We don't expect any of the above to throw, but better to be safe. - return false; - } -} - -module.exports = shouldUseNative() ? Object.assign : function (target, source) { - var from; - var to = toObject(target); - var symbols; - - for (var s = 1; s < arguments.length; s++) { - from = Object(arguments[s]); - - for (var key in from) { - if (hasOwnProperty.call(from, key)) { - to[key] = from[key]; - } - } - - if (Object.getOwnPropertySymbols) { - symbols = Object.getOwnPropertySymbols(from); - for (var i = 0; i < symbols.length; i++) { - if (propIsEnumerable.call(from, symbols[i])) { - to[symbols[i]] = from[symbols[i]]; - } - } - } - } - - return to; -}; - -},{}]},{},[50])(50) -}); -}); diff --git a/src/vendor/react-dom.js b/src/vendor/react-dom.js deleted file mode 120000 index 141e77ad1..000000000 --- a/src/vendor/react-dom.js +++ /dev/null @@ -1 +0,0 @@ -react-dom.min.js
\ No newline at end of file diff --git a/src/vendor/react-dom.min.js b/src/vendor/react-dom.min.js deleted file mode 100644 index 02ef0e372..000000000 --- a/src/vendor/react-dom.min.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * ReactDOM v16.0.0-alpha - * - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ -!function(e){if("object"==typeof exports&&"undefined"!=typeof module)e(require("react"));else if("function"==typeof define&&define.amd)require(["react"],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e(t.React)}}(function(e){!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.ReactDOM=e()}}(function(){return function e(t,n,r){function o(a,s){if(!n[a]){if(!t[a]){var u="function"==typeof require&&require;if(!s&&u)return u(a,!0);if(i)return i(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var c=n[a]={exports:{}};t[a][0].call(c.exports,function(e){var n=t[a][1][e];return o(n?n:e)},c,c.exports,e,t,n,r)}return n[a].exports}for(var i="function"==typeof require&&require,a=0;a<r.length;a++)o(r[a]);return o}({1:[function(e,t,n){"use strict";var r={Properties:{"aria-current":0,"aria-details":0,"aria-disabled":0,"aria-hidden":0,"aria-invalid":0,"aria-keyshortcuts":0,"aria-label":0,"aria-roledescription":0,"aria-autocomplete":0,"aria-checked":0,"aria-expanded":0,"aria-haspopup":0,"aria-level":0,"aria-modal":0,"aria-multiline":0,"aria-multiselectable":0,"aria-orientation":0,"aria-placeholder":0,"aria-pressed":0,"aria-readonly":0,"aria-required":0,"aria-selected":0,"aria-sort":0,"aria-valuemax":0,"aria-valuemin":0,"aria-valuenow":0,"aria-valuetext":0,"aria-atomic":0,"aria-busy":0,"aria-live":0,"aria-relevant":0,"aria-dropeffect":0,"aria-grabbed":0,"aria-activedescendant":0,"aria-colcount":0,"aria-colindex":0,"aria-colspan":0,"aria-controls":0,"aria-describedby":0,"aria-errormessage":0,"aria-flowto":0,"aria-labelledby":0,"aria-owns":0,"aria-posinset":0,"aria-rowcount":0,"aria-rowindex":0,"aria-rowspan":0,"aria-setsize":0},DOMAttributeNames:{},DOMPropertyNames:{}};t.exports=r},{}],2:[function(e,t,n){"use strict";var r=e(34),o=e(134),i={focusDOMComponent:function(){o(r.getNodeFromInstance(this))}};t.exports=i},{134:134,34:34}],3:[function(e,t,n){"use strict";function r(){var e=window.opera;return"object"==typeof e&&"function"==typeof e.version&&parseInt(e.version(),10)<=12}function o(e){return(e.ctrlKey||e.altKey||e.metaKey)&&!(e.ctrlKey&&e.altKey)}function i(e){switch(e){case"topCompositionStart":return k.compositionStart;case"topCompositionEnd":return k.compositionEnd;case"topCompositionUpdate":return k.compositionUpdate}}function a(e,t){return"topKeyDown"===e&&t.keyCode===_}function s(e,t){switch(e){case"topKeyUp":return y.indexOf(t.keyCode)!==-1;case"topKeyDown":return t.keyCode!==_;case"topKeyPress":case"topMouseDown":case"topBlur":return!0;default:return!1}}function u(e){var t=e.detail;return"object"==typeof t&&"data"in t?t.data:null}function l(e,t,n,r){var o,l;if(C?o=i(e):P?s(e,n)&&(o=k.compositionEnd):a(e,n)&&(o=k.compositionStart),!o)return null;x&&(P||o!==k.compositionStart?o===k.compositionEnd&&P&&(l=P.getData()):P=m.getPooled(r));var c=v.getPooled(o,t,n,r);if(l)c.data=l;else{var p=u(n);null!==p&&(c.data=p)}return f.accumulateTwoPhaseDispatches(c),c}function c(e,t){switch(e){case"topCompositionEnd":return u(t);case"topKeyPress":var n=t.which;return n!==T?null:(S=!0,w);case"topTextInput":var r=t.data;return r===w&&S?null:r;default:return null}}function p(e,t){if(P){if("topCompositionEnd"===e||!C&&s(e,t)){var n=P.getData();return m.release(P),P=null,n}return null}switch(e){case"topPaste":return null;case"topKeyPress":return t.which&&!o(t)?String.fromCharCode(t.which):null;case"topCompositionEnd":return x?null:t.data;default:return null}}function d(e,t,n,r){var o;if(o=E?c(e,n):p(e,n),!o)return null;var i=g.getPooled(k.beforeInput,t,n,r);return i.data=o,f.accumulateTwoPhaseDispatches(i),i}var f=e(19),h=e(126),m=e(20),v=e(79),g=e(83),y=[9,13,27,32],_=229,C=h.canUseDOM&&"CompositionEvent"in window,b=null;h.canUseDOM&&"documentMode"in document&&(b=document.documentMode);var E=h.canUseDOM&&"TextEvent"in window&&!b&&!r(),x=h.canUseDOM&&(!C||b&&b>8&&b<=11),T=32,w=String.fromCharCode(T),k={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["topCompositionEnd","topKeyPress","topTextInput","topPaste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:["topBlur","topCompositionEnd","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:["topBlur","topCompositionStart","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:["topBlur","topCompositionUpdate","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]}},S=!1,P=null,N={eventTypes:k,extractEvents:function(e,t,n,r){return[l(e,t,n,r),d(e,t,n,r)]}};t.exports=N},{126:126,19:19,20:20,79:79,83:83}],4:[function(e,t,n){"use strict";function r(e,t){return e+t.charAt(0).toUpperCase()+t.substring(1)}var o={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridColumn:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},i=["Webkit","ms","Moz","O"];Object.keys(o).forEach(function(e){i.forEach(function(t){o[r(t,e)]=o[e]})});var a={background:{backgroundAttachment:!0,backgroundColor:!0,backgroundImage:!0,backgroundPositionX:!0,backgroundPositionY:!0,backgroundRepeat:!0},backgroundPosition:{backgroundPositionX:!0,backgroundPositionY:!0},border:{borderWidth:!0,borderStyle:!0,borderColor:!0},borderBottom:{borderBottomWidth:!0,borderBottomStyle:!0,borderBottomColor:!0},borderLeft:{borderLeftWidth:!0,borderLeftStyle:!0,borderLeftColor:!0},borderRight:{borderRightWidth:!0,borderRightStyle:!0,borderRightColor:!0},borderTop:{borderTopWidth:!0,borderTopStyle:!0,borderTopColor:!0},font:{fontStyle:!0,fontVariant:!0,fontWeight:!0,fontSize:!0,lineHeight:!0,fontFamily:!0},outline:{outlineWidth:!0,outlineStyle:!0,outlineColor:!0}},s={isUnitlessNumber:o,shorthandPropertyExpansions:a};t.exports=s},{}],5:[function(e,t,n){"use strict";var r=e(4),o=e(126),i=(e(59),e(128),e(95)),a=(e(100),e(139)),s=e(143),u=(e(145),s(function(e){return a(e)})),l=!1,c="cssFloat";if(o.canUseDOM){var p=document.createElement("div").style;try{p.font=""}catch(e){l=!0}void 0===document.documentElement.style.cssFloat&&(c="styleFloat")}var d={createMarkupForStyles:function(e,t){var n="";for(var r in e)if(e.hasOwnProperty(r)){var o=e[r];null!=o&&(n+=u(r)+":",n+=i(r,o,t)+";")}return n||null},setValueForStyles:function(e,t,n){var o=e.style;for(var a in t)if(t.hasOwnProperty(a)){var s=i(a,t[a],n);if("float"!==a&&"cssFloat"!==a||(a=c),s)o[a]=s;else{var u=l&&r.shorthandPropertyExpansions[a];if(u)for(var p in u)o[p]="";else o[a]=""}}}};t.exports=d},{100:100,126:126,128:128,139:139,143:143,145:145,4:4,59:59,95:95}],6:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var o=e(116),i=e(23),a=(e(140),function(){function e(t){r(this,e),this._callbacks=null,this._contexts=null,this._arg=t}return e.prototype.enqueue=function(e,t){this._callbacks=this._callbacks||[],this._callbacks.push(e),this._contexts=this._contexts||[],this._contexts.push(t)},e.prototype.notifyAll=function(){var e=this._callbacks,t=this._contexts,n=this._arg;if(e&&t){e.length!==t.length?o("24"):void 0,this._callbacks=null,this._contexts=null;for(var r=0;r<e.length;r++)e[r].call(t[r],n);e.length=0,t.length=0}},e.prototype.checkpoint=function(){return this._callbacks?this._callbacks.length:0},e.prototype.rollback=function(e){this._callbacks&&this._contexts&&(this._callbacks.length=e,this._contexts.length=e)},e.prototype.reset=function(){this._callbacks=null,this._contexts=null},e.prototype.destructor=function(){this.reset()},e}());t.exports=i.addPoolingTo(a)},{116:116,140:140,23:23}],7:[function(e,t,n){"use strict";function r(e,t,n){var r=k.getPooled(I.change,e,t,n);return r.type="change",x.enqueueStateRestore(e),b.accumulateTwoPhaseDispatches(r),r}function o(e){var t=e.nodeName&&e.nodeName.toLowerCase();return"select"===t||"input"===t&&"file"===e.type}function i(e){var t=r(O,e,P(e));w.batchedUpdates(a,t)}function a(e){C.enqueueEvents(e),C.processEventQueue(!1)}function s(e,t){R=e,O=t,R.attachEvent("onchange",i)}function u(){R&&(R.detachEvent("onchange",i),R=null,O=null)}function l(e){if(S.updateValueIfChanged(e))return e}function c(e,t){if("topChange"===e)return t}function p(e,t,n){"topFocus"===e?(u(),s(t,n)):"topBlur"===e&&u()}function d(e,t){R=e,O=t,R.attachEvent("onpropertychange",h)}function f(){R&&(R.detachEvent("onpropertychange",h),R=null,O=null)}function h(e){"value"===e.propertyName&&l(O)&&i(e)}function m(e,t,n){"topFocus"===e?(f(),d(t,n)):"topBlur"===e&&f()}function v(e,t){if("topSelectionChange"===e||"topKeyUp"===e||"topKeyDown"===e)return l(O)}function g(e){var t=e.nodeName;return t&&"input"===t.toLowerCase()&&("checkbox"===e.type||"radio"===e.type)}function y(e,t){if("topClick"===e)return l(t)}function _(e,t){if("topInput"===e||"topChange"===e)return l(t)}var C=e(16),b=e(19),E=e(126),x=e(29),T=e(34),w=e(55),k=e(81),S=e(111),P=e(104),N=e(113),M=e(114),I={change:{phasedRegistrationNames:{bubbled:"onChange",captured:"onChangeCapture"},dependencies:["topBlur","topChange","topClick","topFocus","topInput","topKeyDown","topKeyUp","topSelectionChange"]}},R=null,O=null,A=!1;E.canUseDOM&&(A=N("change")&&(!document.documentMode||document.documentMode>8));var D=!1;E.canUseDOM&&(D=N("input")&&(!document.documentMode||document.documentMode>9));var L={eventTypes:I,_isInputEventSupported:D,extractEvents:function(e,t,n,i){var a,s,u=t?T.getNodeFromInstance(t):window;if(o(u)?A?a=c:s=p:M(u)?D?a=_:(a=v,s=m):g(u)&&(a=y),a){var l=a(e,t);if(l){var d=r(l,n,i);return d}}s&&s(e,u,t)}};t.exports=L},{104:104,111:111,113:113,114:114,126:126,16:16,19:19,29:29,34:34,55:55,81:81}],8:[function(e,t,n){"use strict";function r(e,t){return Array.isArray(t)&&(t=t[1]),t?t.nextSibling:e.firstChild}function o(e,t,n){c.insertTreeBefore(e,t,n)}function i(e,t,n){Array.isArray(t)?s(e,t[0],t[1],n):m(e,t,n)}function a(e,t){if(Array.isArray(t)){var n=t[1];t=t[0],u(e,t,n),e.removeChild(n)}e.removeChild(t)}function s(e,t,n,r){for(var o=t;;){var i=o.nextSibling;if(m(e,o,r),o===n)break;o=i}}function u(e,t,n){for(;;){var r=t.nextSibling;if(r===n)break;e.removeChild(r)}}function l(e,t,n){var r=e.parentNode,o=e.nextSibling;o===t?n&&m(r,document.createTextNode(n),o):n?(h(o,n),u(r,o,t)):u(r,e,t)}var c=e(10),p=e(14),d=(e(34),e(59),e(94)),f=e(118),h=e(119),m=d(function(e,t,n){e.insertBefore(t,n)}),v=p.dangerouslyReplaceNodeWithMarkup,g={dangerouslyReplaceNodeWithMarkup:v,replaceDelimitedText:l,processUpdates:function(e,t){for(var n=0;n<t.length;n++){var s=t[n];switch(s.type){case"INSERT_MARKUP":o(e,s.content,r(e,s.afterNode));break;case"MOVE_EXISTING":i(e,s.fromNode,r(e,s.afterNode));break;case"SET_MARKUP":f(e,s.content);break;case"TEXT_CONTENT":h(e,s.content);break;case"REMOVE_NODE":a(e,s.fromNode)}}}};t.exports=g},{10:10,118:118,119:119,14:14,34:34,59:59,94:94}],9:[function(e,t,n){"use strict";var r=["ResponderEventPlugin","SimpleEventPlugin","TapEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin"];t.exports=r},{}],10:[function(e,t,n){"use strict";function r(e){if(v){var t=e.node,n=e.children;if(n.length)for(var r=0;r<n.length;r++)g(t,n[r],null);else null!=e.html?p(t,e.html):null!=e.text&&f(t,e.text)}}function o(e,t){e.parentNode.replaceChild(t.node,e),r(t)}function i(e,t){v?e.children.push(t):e.node.appendChild(t.node)}function a(e,t){v?e.html=t:p(e.node,t)}function s(e,t){v?e.text=t:f(e.node,t)}function u(){return this.node.nodeName}function l(e){return{node:e,children:[],html:null,text:null,toString:u}}var c=e(11),p=e(118),d=e(94),f=e(119),h=1,m=11,v="undefined"!=typeof document&&"number"==typeof document.documentMode||"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent&&/\bEdge\/\d/.test(navigator.userAgent),g=d(function(e,t,n){t.node.nodeType===m||t.node.nodeType===h&&"object"===t.node.nodeName.toLowerCase()&&(null==t.node.namespaceURI||t.node.namespaceURI===c.html)?(r(t),e.insertBefore(t.node,n)):(e.insertBefore(t.node,n),r(t))});l.insertTreeBefore=g,l.replaceChildWithTree=o,l.queueChild=i,l.queueHTML=a,l.queueText=s,t.exports=l},{11:11,118:118,119:119,94:94}],11:[function(e,t,n){"use strict";var r={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};t.exports=r},{}],12:[function(e,t,n){"use strict";function r(e,t){return(e&t)===t}var o=e(116),i=(e(140),{MUST_USE_PROPERTY:1,HAS_BOOLEAN_VALUE:4,HAS_NUMERIC_VALUE:8,HAS_POSITIVE_NUMERIC_VALUE:24,HAS_OVERLOADED_BOOLEAN_VALUE:32,injectDOMPropertyConfig:function(e){var t=i,n=e.Properties||{},a=e.DOMAttributeNamespaces||{},u=e.DOMAttributeNames||{},l=e.DOMPropertyNames||{},c=e.DOMMutationMethods||{};e.isCustomAttribute&&s._isCustomAttributeFunctions.push(e.isCustomAttribute);for(var p in n){s.properties.hasOwnProperty(p)?o("48",p):void 0;var d=p.toLowerCase(),f=n[p],h={attributeName:d,attributeNamespace:null,propertyName:p,mutationMethod:null,mustUseProperty:r(f,t.MUST_USE_PROPERTY),hasBooleanValue:r(f,t.HAS_BOOLEAN_VALUE),hasNumericValue:r(f,t.HAS_NUMERIC_VALUE),hasPositiveNumericValue:r(f,t.HAS_POSITIVE_NUMERIC_VALUE),hasOverloadedBooleanValue:r(f,t.HAS_OVERLOADED_BOOLEAN_VALUE)};if(h.hasBooleanValue+h.hasNumericValue+h.hasOverloadedBooleanValue<=1?void 0:o("50",p),u.hasOwnProperty(p)){var m=u[p];h.attributeName=m}a.hasOwnProperty(p)&&(h.attributeNamespace=a[p]),l.hasOwnProperty(p)&&(h.propertyName=l[p]),c.hasOwnProperty(p)&&(h.mutationMethod=c[p]),s.properties[p]=h}}}),a=":A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",s={ID_ATTRIBUTE_NAME:"data-reactid",ROOT_ATTRIBUTE_NAME:"data-reactroot",ATTRIBUTE_NAME_START_CHAR:a,ATTRIBUTE_NAME_CHAR:a+"\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040",properties:{},getPossibleStandardName:null,_isCustomAttributeFunctions:[],isCustomAttribute:function(e){for(var t=0;t<s._isCustomAttributeFunctions.length;t++){var n=s._isCustomAttributeFunctions[t];if(n(e))return!0}return!1},injection:i};t.exports=s},{116:116,140:140}],13:[function(e,t,n){"use strict";function r(e){return!!l.hasOwnProperty(e)||!u.hasOwnProperty(e)&&(s.test(e)?(l[e]=!0,!0):(u[e]=!0,!1))}function o(e,t){return null==t||e.hasBooleanValue&&!t||e.hasNumericValue&&isNaN(t)||e.hasPositiveNumericValue&&t<1||e.hasOverloadedBooleanValue&&t===!1}var i=e(12),a=(e(34),e(59),e(115)),s=(e(145),new RegExp("^["+i.ATTRIBUTE_NAME_START_CHAR+"]["+i.ATTRIBUTE_NAME_CHAR+"]*$")),u={},l={},c={createMarkupForID:function(e){return i.ID_ATTRIBUTE_NAME+"="+a(e)},setAttributeForID:function(e,t){e.setAttribute(i.ID_ATTRIBUTE_NAME,t)},createMarkupForRoot:function(){return i.ROOT_ATTRIBUTE_NAME+'=""'},setAttributeForRoot:function(e){e.setAttribute(i.ROOT_ATTRIBUTE_NAME,"")},createMarkupForProperty:function(e,t){var n=i.properties.hasOwnProperty(e)?i.properties[e]:null;if(n){if(o(n,t))return"";var r=n.attributeName;return n.hasBooleanValue||n.hasOverloadedBooleanValue&&t===!0?r+'=""':r+"="+a(t)}return i.isCustomAttribute(e)?null==t?"":e+"="+a(t):null},createMarkupForCustomAttribute:function(e,t){return r(e)&&null!=t?e+"="+a(t):""},setValueForProperty:function(e,t,n){var r=i.properties.hasOwnProperty(t)?i.properties[t]:null;if(r){var a=r.mutationMethod;if(a)a(e,n);else{if(o(r,n))return void this.deleteValueForProperty(e,t);if(r.mustUseProperty)e[r.propertyName]=n;else{var s=r.attributeName,u=r.attributeNamespace;u?e.setAttributeNS(u,s,""+n):r.hasBooleanValue||r.hasOverloadedBooleanValue&&n===!0?e.setAttribute(s,""):e.setAttribute(s,""+n)}}}else if(i.isCustomAttribute(t))return void c.setValueForAttribute(e,t,n)},setValueForAttribute:function(e,t,n){r(t)&&(null==n?e.removeAttribute(t):e.setAttribute(t,""+n))},deleteValueForAttribute:function(e,t){e.removeAttribute(t)},deleteValueForProperty:function(e,t){var n=i.properties.hasOwnProperty(t)?i.properties[t]:null;if(n){var r=n.mutationMethod;if(r)r(e,void 0);else if(n.mustUseProperty){var o=n.propertyName;n.hasBooleanValue?e[o]=!1:e[o]=""}else e.removeAttribute(n.attributeName)}else i.isCustomAttribute(t)&&e.removeAttribute(t)}};t.exports=c},{115:115,12:12,145:145,34:34,59:59}],14:[function(e,t,n){"use strict";var r=e(116),o=e(10),i=e(126),a=e(131),s=e(132),u=(e(140),{dangerouslyReplaceNodeWithMarkup:function(e,t){if(i.canUseDOM?void 0:r("56"),t?void 0:r("57"),"HTML"===e.nodeName?r("58"):void 0,"string"==typeof t){var n=a(t,s)[0];e.parentNode.replaceChild(n,e)}else o.replaceChildWithTree(e,t)}});t.exports=u},{10:10,116:116,126:126,131:131,132:132,140:140}],15:[function(e,t,n){"use strict";var r=e(19),o=e(34),i=e(85),a={mouseEnter:{registrationName:"onMouseEnter",dependencies:["topMouseOut","topMouseOver"]},mouseLeave:{registrationName:"onMouseLeave",dependencies:["topMouseOut","topMouseOver"]}},s={eventTypes:a,extractEvents:function(e,t,n,s){if("topMouseOver"===e&&(n.relatedTarget||n.fromElement))return null;if("topMouseOut"!==e&&"topMouseOver"!==e)return null;var u;if(s.window===s)u=s;else{var l=s.ownerDocument;u=l?l.defaultView||l.parentWindow:window}var c,p;if("topMouseOut"===e){c=t;var d=n.relatedTarget||n.toElement;p=d?o.getClosestInstanceFromNode(d):null}else c=null,p=t;if(c===p)return null;var f=null==c?u:o.getNodeFromInstance(c),h=null==p?u:o.getNodeFromInstance(p),m=i.getPooled(a.mouseLeave,c,n,s);m.type="mouseleave",m.target=f,m.relatedTarget=h;var v=i.getPooled(a.mouseEnter,p,n,s);return v.type="mouseenter",v.target=h,v.relatedTarget=f,r.accumulateEnterLeaveDispatches(m,v,c,p),[m,v]}};t.exports=s},{19:19,34:34,85:85}],16:[function(e,t,n){"use strict";var r=e(116),o=e(17),i=e(18),a=e(51),s=e(92),u=e(99),l=(e(140),{}),c=null,p=function(e,t){e&&(i.executeDispatchesInOrder(e,t),e.isPersistent()||e.constructor.release(e))},d=function(e){return p(e,!0)},f=function(e){return p(e,!1)},h=function(e){return"."+e._rootNodeID},m={injection:{injectEventPluginOrder:o.injectEventPluginOrder,injectEventPluginsByName:o.injectEventPluginsByName},putListener:function(e,t,n){"function"!=typeof n?r("94",t,typeof n):void 0;var i=h(e),a=l[t]||(l[t]={});a[i]=n;var s=o.registrationNameModules[t];s&&s.didPutListener&&s.didPutListener(e,t,n)},getListener:function(e,t){var n=l[t],r=h(e);return n&&n[r]},deleteListener:function(e,t){var n=o.registrationNameModules[t];n&&n.willDeleteListener&&n.willDeleteListener(e,t);var r=l[t];if(r){var i=h(e);delete r[i]}},deleteAllListeners:function(e){var t=h(e);for(var n in l)if(l.hasOwnProperty(n)&&l[n][t]){var r=o.registrationNameModules[n];r&&r.willDeleteListener&&r.willDeleteListener(e,n),delete l[n][t]}},extractEvents:function(e,t,n,r){for(var i,a=o.plugins,u=0;u<a.length;u++){var l=a[u];if(l){var c=l.extractEvents(e,t,n,r);c&&(i=s(i,c))}}return i},enqueueEvents:function(e){e&&(c=s(c,e))},processEventQueue:function(e){var t=c;c=null,e?u(t,d):u(t,f),c?r("95"):void 0,a.rethrowCaughtError()},__purge:function(){l={}},__getListenerBank:function(){return l}};t.exports=m},{116:116,140:140,17:17,18:18,51:51,92:92,99:99}],17:[function(e,t,n){"use strict";function r(){if(s)for(var e in u){var t=u[e],n=s.indexOf(e);if(n>-1?void 0:a("96",e),!l.plugins[n]){t.extractEvents?void 0:a("97",e),l.plugins[n]=t;var r=t.eventTypes;for(var i in r)o(r[i],t,i)?void 0:a("98",i,e)}}}function o(e,t,n){l.eventNameDispatchConfigs.hasOwnProperty(n)?a("99",n):void 0,l.eventNameDispatchConfigs[n]=e;var r=e.phasedRegistrationNames;if(r){for(var o in r)if(r.hasOwnProperty(o)){var s=r[o];i(s,t,n)}return!0}return!!e.registrationName&&(i(e.registrationName,t,n),!0)}function i(e,t,n){l.registrationNameModules[e]?a("100",e):void 0,l.registrationNameModules[e]=t,l.registrationNameDependencies[e]=t.eventTypes[n].dependencies}var a=e(116),s=(e(140),null),u={},l={plugins:[],eventNameDispatchConfigs:{},registrationNameModules:{},registrationNameDependencies:{},possibleRegistrationNames:null,injectEventPluginOrder:function(e){s?a("101"):void 0,s=Array.prototype.slice.call(e),r()},injectEventPluginsByName:function(e){var t=!1;for(var n in e)if(e.hasOwnProperty(n)){var o=e[n];u.hasOwnProperty(n)&&u[n]===o||(u[n]?a("102",n):void 0,u[n]=o,t=!0)}t&&r()},getPluginModuleForEvent:function(e){var t=e.dispatchConfig;if(t.registrationName)return l.registrationNameModules[t.registrationName]||null;if(void 0!==t.phasedRegistrationNames){var n=t.phasedRegistrationNames;for(var r in n)if(n.hasOwnProperty(r)){var o=l.registrationNameModules[n[r]];if(o)return o}}return null},_resetEventPlugins:function(){s=null;for(var e in u)u.hasOwnProperty(e)&&delete u[e];l.plugins.length=0;var t=l.eventNameDispatchConfigs;for(var n in t)t.hasOwnProperty(n)&&delete t[n];var r=l.registrationNameModules;for(var o in r)r.hasOwnProperty(o)&&delete r[o]}};t.exports=l},{116:116,140:140}],18:[function(e,t,n){"use strict";function r(e){return"topMouseUp"===e||"topTouchEnd"===e||"topTouchCancel"===e}function o(e){return"topMouseMove"===e||"topTouchMove"===e}function i(e){return"topMouseDown"===e||"topTouchStart"===e}function a(e,t,n,r){var o=e.type||"unknown-event";e.currentTarget=g.getNodeFromInstance(r),t?m.invokeGuardedCallbackWithCatch(o,n,e):m.invokeGuardedCallback(o,n,e),e.currentTarget=null}function s(e,t){var n=e._dispatchListeners,r=e._dispatchInstances;if(Array.isArray(n))for(var o=0;o<n.length&&!e.isPropagationStopped();o++)a(e,t,n[o],r[o]);else n&&a(e,t,n,r);e._dispatchListeners=null,e._dispatchInstances=null}function u(e){var t=e._dispatchListeners,n=e._dispatchInstances;if(Array.isArray(t)){for(var r=0;r<t.length&&!e.isPropagationStopped();r++)if(t[r](e,n[r]))return n[r]}else if(t&&t(e,n))return n;return null}function l(e){var t=u(e);return e._dispatchInstances=null,e._dispatchListeners=null,t}function c(e){var t=e._dispatchListeners,n=e._dispatchInstances;Array.isArray(t)?f("103"):void 0,e.currentTarget=t?g.getNodeFromInstance(n):null;var r=t?t(e):null;return e.currentTarget=null,e._dispatchListeners=null,e._dispatchInstances=null,r}function p(e){return!!e._dispatchListeners}var d,f=e(116),h=e(70),m=e(51),v=(e(140),e(145),{injectComponentTree:function(e){d=e}}),g={isEndish:r,isMoveish:o,isStartish:i,executeDirectDispatch:c,executeDispatchesInOrder:s,executeDispatchesInOrderStopAtTrue:l,hasDispatches:p,getInstanceFromNode:function(e){return d.getInstanceFromNode(e)},getNodeFromInstance:function(e){return d.getNodeFromInstance(e)},isAncestor:function(e,t){return h.isAncestor(e,t)},getLowestCommonAncestor:function(e,t){return h.getLowestCommonAncestor(e,t)},getParentInstance:function(e){return h.getParentInstance(e)},traverseTwoPhase:function(e,t,n){return h.traverseTwoPhase(e,t,n)},traverseEnterLeave:function(e,t,n,r,o){return h.traverseEnterLeave(e,t,n,r,o)},injection:v};t.exports=g},{116:116,140:140,145:145,51:51,70:70}],19:[function(e,t,n){"use strict";function r(e,t,n){var r=t.dispatchConfig.phasedRegistrationNames[n];return g(e,r)}function o(e,t,n){var o=r(e,n,t);o&&(n._dispatchListeners=m(n._dispatchListeners,o),n._dispatchInstances=m(n._dispatchInstances,e))}function i(e){e&&e.dispatchConfig.phasedRegistrationNames&&h.traverseTwoPhase(e._targetInst,o,e)}function a(e){if(e&&e.dispatchConfig.phasedRegistrationNames){var t=e._targetInst,n=t?h.getParentInstance(t):null;h.traverseTwoPhase(n,o,e)}}function s(e,t,n){if(n&&n.dispatchConfig.registrationName){var r=n.dispatchConfig.registrationName,o=g(e,r);o&&(n._dispatchListeners=m(n._dispatchListeners,o),n._dispatchInstances=m(n._dispatchInstances,e))}}function u(e){e&&e.dispatchConfig.registrationName&&s(e._targetInst,null,e)}function l(e){v(e,i)}function c(e){v(e,a)}function p(e,t,n,r){h.traverseEnterLeave(n,r,s,e,t)}function d(e){v(e,u)}var f=e(16),h=e(18),m=e(92),v=e(99),g=(e(145),f.getListener),y={accumulateTwoPhaseDispatches:l,accumulateTwoPhaseDispatchesSkipTarget:c,accumulateDirectDispatches:d,accumulateEnterLeaveDispatches:p};t.exports=y},{145:145,16:16,18:18,92:92,99:99}],20:[function(e,t,n){"use strict";function r(e){this._root=e,this._startText=this.getText(),this._fallbackText=null}var o=e(146),i=e(23),a=e(109);o(r.prototype,{destructor:function(){this._root=null,this._startText=null,this._fallbackText=null},getText:function(){return"value"in this._root?this._root.value:this._root[a()]},getData:function(){if(this._fallbackText)return this._fallbackText;var e,t,n=this._startText,r=n.length,o=this.getText(),i=o.length;for(e=0;e<r&&n[e]===o[e];e++);var a=r-e;for(t=1;t<=a&&n[r-t]===o[i-t];t++);var s=t>1?1-t:void 0;return this._fallbackText=o.slice(e,s),this._fallbackText}}),i.addPoolingTo(r),t.exports=r},{109:109,146:146,23:23}],21:[function(e,t,n){"use strict";var r=e(12),o=r.injection.MUST_USE_PROPERTY,i=r.injection.HAS_BOOLEAN_VALUE,a=r.injection.HAS_NUMERIC_VALUE,s=r.injection.HAS_POSITIVE_NUMERIC_VALUE,u=r.injection.HAS_OVERLOADED_BOOLEAN_VALUE,l={isCustomAttribute:RegExp.prototype.test.bind(new RegExp("^(data|aria)-["+r.ATTRIBUTE_NAME_CHAR+"]*$")),Properties:{accept:0,acceptCharset:0,accessKey:0,action:0,allowFullScreen:i,allowTransparency:0,alt:0,as:0,async:i,autoComplete:0,autoPlay:i,capture:i,cellPadding:0,cellSpacing:0,charSet:0,challenge:0,checked:o|i,cite:0,classID:0,className:0,cols:s,colSpan:0,content:0,contentEditable:0,contextMenu:0,controls:i,coords:0,crossOrigin:0,data:0,dateTime:0,default:i,defer:i,dir:0,disabled:i,download:u,draggable:0,encType:0,form:0,formAction:0,formEncType:0,formMethod:0,formNoValidate:i,formTarget:0,frameBorder:0,headers:0,height:0,hidden:i,high:0,href:0,hrefLang:0,htmlFor:0,httpEquiv:0,id:0,inputMode:0,integrity:0,is:0,keyParams:0,keyType:0,kind:0,label:0,lang:0,list:0,loop:i,low:0,manifest:0,marginHeight:0,marginWidth:0,max:0,maxLength:0,media:0,mediaGroup:0,method:0,min:0,minLength:0,multiple:o|i,muted:o|i,name:0,nonce:0,noValidate:i,open:i,optimum:0,pattern:0,placeholder:0,playsInline:i,poster:0,preload:0,profile:0,radioGroup:0,readOnly:i,referrerPolicy:0,rel:0,required:i,reversed:i,role:0,rows:s,rowSpan:a,sandbox:0,scope:0,scoped:i,scrolling:0,seamless:i,selected:o|i,shape:0,size:s,sizes:0,slot:0,span:s,spellCheck:0,src:0,srcDoc:0,srcLang:0,srcSet:0,start:a,step:0,style:0,summary:0,tabIndex:0,target:0,title:0,type:0,useMap:0,value:0,width:0,wmode:0,wrap:0,about:0,datatype:0,inlist:0,prefix:0,property:0,resource:0,typeof:0,vocab:0,autoCapitalize:0,autoCorrect:0,autoSave:0,color:0,itemProp:0,itemScope:i,itemType:0,itemID:0,itemRef:0,results:0,security:0,unselectable:0},DOMAttributeNames:{acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},DOMPropertyNames:{}};t.exports=l},{12:12}],22:[function(e,t,n){"use strict";function r(e){var t=/[=:]/g,n={"=":"=0",":":"=2"},r=(""+e).replace(t,function(e){return n[e]});return"$"+r}function o(e){var t=/(=0|=2)/g,n={"=0":"=","=2":":"},r="."===e[0]&&"$"===e[1]?e.substring(2):e.substring(1);return(""+r).replace(t,function(e){return n[e]})}var i={escape:r,unescape:o};t.exports=i},{}],23:[function(e,t,n){"use strict";var r=e(116),o=(e(140),function(e){var t=this;if(t.instancePool.length){var n=t.instancePool.pop();return t.call(n,e),n}return new t(e)}),i=function(e,t){var n=this;if(n.instancePool.length){var r=n.instancePool.pop();return n.call(r,e,t),r}return new n(e,t)},a=function(e,t,n){var r=this;if(r.instancePool.length){var o=r.instancePool.pop();return r.call(o,e,t,n),o}return new r(e,t,n)},s=function(e,t,n,r){var o=this;if(o.instancePool.length){var i=o.instancePool.pop();return o.call(i,e,t,n,r),i}return new o(e,t,n,r)},u=function(e,t,n,r,o){var i=this;if(i.instancePool.length){var a=i.instancePool.pop();return i.call(a,e,t,n,r,o),a}return new i(e,t,n,r,o)},l=function(e){var t=this;e instanceof t?void 0:r("25"),e.destructor(),t.instancePool.length<t.poolSize&&t.instancePool.push(e)},c=10,p=o,d=function(e,t){var n=e;return n.instancePool=[],n.getPooled=t||p,n.poolSize||(n.poolSize=c),n.release=l,n},f={addPoolingTo:d,oneArgumentPooler:o,twoArgumentPooler:i,threeArgumentPooler:a,fourArgumentPooler:s,fiveArgumentPooler:u};t.exports=f},{116:116,140:140}],24:[function(e,t,n){"use strict";function r(e){return Object.prototype.hasOwnProperty.call(e,m)||(e[m]=f++,p[e[m]]={}),p[e[m]]}var o,i=e(146),a=e(17),s=e(52),u=e(91),l=e(110),c=e(113),p={},d=!1,f=0,h={topAbort:"abort",topAnimationEnd:l("animationend")||"animationend",topAnimationIteration:l("animationiteration")||"animationiteration",topAnimationStart:l("animationstart")||"animationstart",topBlur:"blur",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topChange:"change",topClick:"click",topCompositionEnd:"compositionend",topCompositionStart:"compositionstart",topCompositionUpdate:"compositionupdate",topContextMenu:"contextmenu",topCopy:"copy",topCut:"cut",topDoubleClick:"dblclick",topDrag:"drag",topDragEnd:"dragend",topDragEnter:"dragenter",topDragExit:"dragexit",topDragLeave:"dragleave",topDragOver:"dragover",topDragStart:"dragstart",topDrop:"drop",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topFocus:"focus",topInput:"input",topKeyDown:"keydown",topKeyPress:"keypress",topKeyUp:"keyup",topLoadedData:"loadeddata",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topMouseDown:"mousedown",topMouseMove:"mousemove",topMouseOut:"mouseout",topMouseOver:"mouseover",topMouseUp:"mouseup",topPaste:"paste",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topScroll:"scroll",topSeeked:"seeked",topSeeking:"seeking",topSelectionChange:"selectionchange",topStalled:"stalled",topSuspend:"suspend",topTextInput:"textInput",topTimeUpdate:"timeupdate",topTouchCancel:"touchcancel",topTouchEnd:"touchend",topTouchMove:"touchmove",topTouchStart:"touchstart",topTransitionEnd:l("transitionend")||"transitionend",topVolumeChange:"volumechange",topWaiting:"waiting",topWheel:"wheel"},m="_reactListenersID"+String(Math.random()).slice(2),v=i({},s,{ReactEventListener:null,injection:{injectReactEventListener:function(e){e.setHandleTopLevel(v.handleTopLevel),v.ReactEventListener=e}},setEnabled:function(e){v.ReactEventListener&&v.ReactEventListener.setEnabled(e)},isEnabled:function(){return!(!v.ReactEventListener||!v.ReactEventListener.isEnabled())},listenTo:function(e,t){for(var n=t,o=r(n),i=a.registrationNameDependencies[e],s=0;s<i.length;s++){var u=i[s];o.hasOwnProperty(u)&&o[u]||("topWheel"===u?c("wheel")?v.ReactEventListener.trapBubbledEvent("topWheel","wheel",n):c("mousewheel")?v.ReactEventListener.trapBubbledEvent("topWheel","mousewheel",n):v.ReactEventListener.trapBubbledEvent("topWheel","DOMMouseScroll",n):"topScroll"===u?c("scroll",!0)?v.ReactEventListener.trapCapturedEvent("topScroll","scroll",n):v.ReactEventListener.trapBubbledEvent("topScroll","scroll",v.ReactEventListener.WINDOW_HANDLE):"topFocus"===u||"topBlur"===u?(c("focus",!0)?(v.ReactEventListener.trapCapturedEvent("topFocus","focus",n),v.ReactEventListener.trapCapturedEvent("topBlur","blur",n)):c("focusin")&&(v.ReactEventListener.trapBubbledEvent("topFocus","focusin",n),v.ReactEventListener.trapBubbledEvent("topBlur","focusout",n)),o.topBlur=!0,o.topFocus=!0):h.hasOwnProperty(u)&&v.ReactEventListener.trapBubbledEvent(u,h[u],n),o[u]=!0)}},isListeningToAllDependencies:function(e,t){for(var n=r(t),o=a.registrationNameDependencies[e],i=0;i<o.length;i++){var s=o[i];if(!n.hasOwnProperty(s)||!n[s])return!1; -}return!0},trapBubbledEvent:function(e,t,n){return v.ReactEventListener.trapBubbledEvent(e,t,n)},trapCapturedEvent:function(e,t,n){return v.ReactEventListener.trapCapturedEvent(e,t,n)},supportsEventPageXY:function(){if(!document.createEvent)return!1;var e=document.createEvent("MouseEvent");return null!=e&&"pageX"in e},ensureScrollValueMonitoring:function(){if(void 0===o&&(o=v.supportsEventPageXY()),!o&&!d){var e=u.refreshScrollValues;v.ReactEventListener.monitorScrollValue(e),d=!0}}});t.exports=v},{110:110,113:113,146:146,17:17,52:52,91:91}],25:[function(e,t,n){(function(n){"use strict";function r(e,t,n,r){var o=void 0===e[n];null!=t&&o&&(e[n]=i(t,!0))}var o=e(66),i=e(112),a=(e(22),e(120)),s=e(121);e(145);"undefined"!=typeof n&&n.env,1;var u={instantiateChildren:function(e,t,n,o){if(null==e)return null;var i={};return s(e,r,i),i},updateChildren:function(e,t,n,r,s,u,l,c,p){if(t||e){var d,f;for(d in t)if(t.hasOwnProperty(d)){f=e&&e[d];var h=f&&f._currentElement,m=t[d];if(null!=f&&a(h,m))o.receiveComponent(f,m,s,c),t[d]=f;else{f&&(r[d]=o.getHostNode(f),o.unmountComponent(f,!1,!1));var v=i(m,!0);t[d]=v;var g=o.mountComponent(v,s,u,l,c,p);n.push(g)}}for(d in e)!e.hasOwnProperty(d)||t&&t.hasOwnProperty(d)||(f=e[d],r[d]=o.getHostNode(f),o.unmountComponent(f,!1,!1))}},unmountChildren:function(e,t,n){for(var r in e)if(e.hasOwnProperty(r)){var i=e[r];o.unmountComponent(i,t,n)}}};t.exports=u}).call(this,void 0)},{112:112,120:120,121:121,145:145,22:22,66:66}],26:[function(e,t,n){"use strict";var r=e(8),o=e(38),i={processChildrenUpdates:o.dangerouslyProcessChildrenUpdates,replaceNodeWithMarkup:r.dangerouslyReplaceNodeWithMarkup};t.exports=i},{38:38,8:8}],27:[function(e,t,n){"use strict";var r=e(116),o=(e(140),!1),i={replaceNodeWithMarkup:null,processChildrenUpdates:null,injection:{injectEnvironment:function(e){o?r("104"):void 0,i.replaceNodeWithMarkup=e.replaceNodeWithMarkup,i.processChildrenUpdates=e.processChildrenUpdates,o=!0}}};t.exports=i},{116:116,140:140}],28:[function(e,t,n){"use strict";function r(e){}function o(e,t){}function i(e){return!(!e.prototype||!e.prototype.isReactComponent)}function a(e){return!(!e.prototype||!e.prototype.isPureReactComponent)}var s=e(116),u=e(146),l=e(124),c=e(27),p=e(123),d=e(51),f=e(58),h=(e(59),e(63)),m=e(66),v=e(133),g=(e(140),e(144)),y=e(120),_=(e(145),{ImpureClass:0,PureClass:1,StatelessFunctional:2});r.prototype.render=function(){var e=f.get(this)._currentElement.type,t=e(this.props,this.context,this.updater);return o(e,t),t};var C=1,b={construct:function(e){this._currentElement=e,this._rootNodeID=0,this._compositeType=null,this._instance=null,this._hostParent=null,this._hostContainerInfo=null,this._updateBatchNumber=null,this._pendingElement=null,this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,this._renderedNodeType=null,this._renderedComponent=null,this._context=null,this._mountOrder=0,this._topLevelWrapper=null,this._pendingCallbacks=null,this._calledComponentWillUnmount=!1},mountComponent:function(e,t,n,u){this._context=u,this._mountOrder=C++,this._hostParent=t,this._hostContainerInfo=n;var c,p=this._currentElement.props,d=this._processContext(u),h=this._currentElement.type,m=e.getUpdateQueue(),g=i(h),y=this._constructComponent(g,p,d,m);g||null!=y&&null!=y.render?a(h)?this._compositeType=_.PureClass:this._compositeType=_.ImpureClass:(c=y,o(h,c),null===y||y===!1||l.isValidElement(y)?void 0:s("105",h.displayName||h.name||"Component"),y=new r(h),this._compositeType=_.StatelessFunctional),y.props=p,y.context=d,y.refs=v,y.updater=m,this._instance=y,f.set(y,this);var b=y.state;void 0===b&&(y.state=b=null),"object"!=typeof b||Array.isArray(b)?s("106",this.getName()||"ReactCompositeComponent"):void 0,this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,y.componentWillMount&&(y.componentWillMount(),this._pendingStateQueue&&(y.state=this._processPendingState(y.props,y.context)));var E;E=y.unstable_handleError?this.performInitialMountWithErrorHandling(c,t,n,e,u):this.performInitialMount(c,t,n,e,u),y.componentDidMount&&e.getReactMountReady().enqueue(y.componentDidMount,y);var x=this._pendingCallbacks;if(x){this._pendingCallbacks=null;for(var T=0;T<x.length;T++)e.getReactMountReady().enqueue(x[T],y)}return E},_constructComponent:function(e,t,n,r){return this._constructComponentWithoutOwner(e,t,n,r)},_constructComponentWithoutOwner:function(e,t,n,r){var o=this._currentElement.type;return e?new o(t,n,r):o(t,n,r)},performInitialMountWithErrorHandling:function(e,t,n,r,o){var i,a=r.checkpoint();try{i=this.performInitialMount(e,t,n,r,o)}catch(s){r.rollback(a),this._instance.unstable_handleError(s),this._pendingStateQueue&&(this._instance.state=this._processPendingState(this._instance.props,this._instance.context)),a=r.checkpoint(),this._renderedComponent.unmountComponent(!0,!0),r.rollback(a),i=this.performInitialMount(e,t,n,r,o)}return i},performInitialMount:function(e,t,n,r,o){void 0===e&&(e=this._renderValidatedComponent());var i=h.getType(e);this._renderedNodeType=i;var a=this._instantiateReactComponent(e,i!==h.EMPTY);this._renderedComponent=a;var s=0,u=m.mountComponent(a,r,t,n,this._processChildContext(o),s);return u},getHostNode:function(){return m.getHostNode(this._renderedComponent)},unmountComponent:function(e,t){if(this._renderedComponent){var n=this._instance;if(n.componentWillUnmount&&!n._calledComponentWillUnmount)if(n._calledComponentWillUnmount=!0,e){if(!t){var r=this.getName()+".componentWillUnmount()";d.invokeGuardedCallback(r,n.componentWillUnmount.bind(n))}}else n.componentWillUnmount();this._renderedComponent&&(m.unmountComponent(this._renderedComponent,e,t),this._renderedNodeType=null,this._renderedComponent=null,this._instance=null),this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,this._pendingCallbacks=null,this._pendingElement=null,this._context=null,this._rootNodeID=0,this._topLevelWrapper=null,f.remove(n)}},_maskContext:function(e){var t=this._currentElement.type,n=t.contextTypes;if(!n)return v;var r={};for(var o in n)r[o]=e[o];return r},_processContext:function(e){var t=this._maskContext(e);return t},_processChildContext:function(e){var t,n=this._currentElement.type,r=this._instance;if(r.getChildContext&&(t=r.getChildContext()),t){"object"!=typeof n.childContextTypes?s("107",this.getName()||"ReactCompositeComponent"):void 0;for(var o in t)o in n.childContextTypes?void 0:s("108",this.getName()||"ReactCompositeComponent",o);return u({},e,t)}return e},_checkContextTypes:function(e,t,n){},receiveComponent:function(e,t,n){var r=this._currentElement,o=this._context;this._pendingElement=null,this.updateComponent(t,r,e,o,n)},performUpdateIfNecessary:function(e){null!=this._pendingElement?m.receiveComponent(this,this._pendingElement,e,this._context):null!==this._pendingStateQueue||this._pendingForceUpdate?this.updateComponent(e,this._currentElement,this._currentElement,this._context,this._context):this._updateBatchNumber=null},updateComponent:function(e,t,n,r,o){var i=this._instance;null==i?s("136",this.getName()||"ReactCompositeComponent"):void 0;var a,u=!1;this._context===o?a=i.context:(a=this._processContext(o),u=!0);var l=t.props,c=n.props;t!==n&&(u=!0),u&&i.componentWillReceiveProps&&i.componentWillReceiveProps(c,a);var p=this._processPendingState(c,a),d=!0;this._pendingForceUpdate||(i.shouldComponentUpdate?d=i.shouldComponentUpdate(c,p,a):this._compositeType===_.PureClass&&(d=!g(l,c)||!g(i.state,p))),this._updateBatchNumber=null,d?(this._pendingForceUpdate=!1,this._performComponentUpdate(n,c,p,a,e,o)):(this._currentElement=n,this._context=o,i.props=c,i.state=p,i.context=a)},_processPendingState:function(e,t){var n=this._instance,r=this._pendingStateQueue,o=this._pendingReplaceState;if(this._pendingReplaceState=!1,this._pendingStateQueue=null,!r)return n.state;if(o&&1===r.length)return r[0];for(var i=u({},o?r[0]:n.state),a=o?1:0;a<r.length;a++){var s=r[a];u(i,"function"==typeof s?s.call(n,i,e,t):s)}return i},_performComponentUpdate:function(e,t,n,r,o,i){var a,s,u,l=this._instance,c=Boolean(l.componentDidUpdate);c&&(a=l.props,s=l.state,u=l.context),l.componentWillUpdate&&l.componentWillUpdate(t,n,r),this._currentElement=e,this._context=i,l.props=t,l.state=n,l.context=r,l.unstable_handleError?this._updateRenderedComponentWithErrorHandling(o,i):this._updateRenderedComponent(o,i),c&&o.getReactMountReady().enqueue(l.componentDidUpdate.bind(l,a,s,u),l)},_updateRenderedComponentWithErrorHandling:function(e,t){var n=e.checkpoint();try{this._updateRenderedComponent(e,t)}catch(r){e.rollback(n),this._instance.unstable_handleError(r),this._pendingStateQueue&&(this._instance.state=this._processPendingState(this._instance.props,this._instance.context)),n=e.checkpoint(),this._updateRenderedComponentWithNextElement(e,t,null,!0),this._updateRenderedComponent(e,t)}},_updateRenderedComponent:function(e,t){var n=this._renderValidatedComponent();this._updateRenderedComponentWithNextElement(e,t,n,!1)},_updateRenderedComponentWithNextElement:function(e,t,n,r){var o=this._renderedComponent,i=o._currentElement,a=0;if(y(i,n))m.receiveComponent(o,n,e,this._processChildContext(t));else{var s=m.getHostNode(o);m.unmountComponent(o,r,!1);var u=h.getType(n);this._renderedNodeType=u;var l=this._instantiateReactComponent(n,u!==h.EMPTY);this._renderedComponent=l;var c=m.mountComponent(l,e,this._hostParent,this._hostContainerInfo,this._processChildContext(t),a);this._replaceNodeWithMarkup(s,c,o)}},_replaceNodeWithMarkup:function(e,t,n){c.replaceNodeWithMarkup(e,t,n)},_renderValidatedComponentWithoutOwnerOrContext:function(){var e,t=this._instance;return e=t.render()},_renderValidatedComponent:function(){var e;if(this._compositeType!==_.StatelessFunctional){p.current=this;try{e=this._renderValidatedComponentWithoutOwnerOrContext()}finally{p.current=null}}else e=this._renderValidatedComponentWithoutOwnerOrContext();return null===e||e===!1||l.isValidElement(e)?void 0:s("109",this.getName()||"ReactCompositeComponent"),e},attachRef:function(e,t){var n=this.getPublicInstance();null==n?s("110"):void 0;var r=t.getPublicInstance(),o=n.refs===v?n.refs={}:n.refs;o[e]=r},detachRef:function(e){var t=this.getPublicInstance().refs;delete t[e]},getName:function(){var e=this._currentElement.type,t=this._instance&&this._instance.constructor;return e.displayName||t&&t.displayName||e.name||t&&t.name||null},getPublicInstance:function(){var e=this._instance;return this._compositeType===_.StatelessFunctional?null:e},_instantiateReactComponent:null};t.exports=b},{116:116,120:120,123:123,124:124,133:133,140:140,144:144,145:145,146:146,27:27,51:51,58:58,59:59,63:63,66:66}],29:[function(e,t,n){"use strict";function r(e){"number"==typeof e.tag&&(i&&"function"==typeof i.restoreControlledState?void 0:o("146"),i.restoreControlledState(e)),"function"!=typeof e.restoreControlledState?o("147"):void 0,e.restoreControlledState()}var o=e(116),i=(e(140),null),a={injectFiberControlledHostComponent:function(e){i=e}},s=null,u=null,l={injection:a,enqueueStateRestore:function(e){s?u?u.push(e):u=[e]:s=e},restoreStateIfNeeded:function(){if(s){var e=s,t=u;if(s=null,u=null,r(e),t)for(var n=0;n<t.length;n++)r(t[n])}}};t.exports=l},{116:116,140:140}],30:[function(e,t,n){"use strict";function r(e){if(e){var t=i(e);if(t)return" Check the render method of `"+t+"`."}return""}var o=e(124),i=e(100),a=(e(145),{button:!0,checkbox:!0,image:!0,hidden:!0,radio:!0,reset:!0,submit:!0}),s={value:function(e,t,n){return!e[t]||a[e.type]||e.onChange||e.readOnly||e.disabled?null:new Error("You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`.")},checked:function(e,t,n){return!e[t]||e.onChange||e.readOnly||e.disabled?null:new Error("You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.")},onChange:o.PropTypes.func},u={},l={checkPropTypes:function(e,t,n){for(var o in s){if(s.hasOwnProperty(o))var i=s[o](t,o,e,"prop");i instanceof Error&&!(i.message in u)&&(u[i.message]=!0,r(n))}}};t.exports=l},{100:100,124:124,145:145}],31:[function(e,t,n){"use strict";var r=e(34),o=e(39),i=e(44),a=e(61),s=e(66),u=e(72),l=e(73),c=e(97),p=e(105),d=e(117);e(145);o.inject(),i.inject();var f={findDOMNode:c,render:a.render,unmountComponentAtNode:a.unmountComponentAtNode,version:l,unstable_batchedUpdates:u.batchedUpdates,unstable_renderSubtreeIntoContainer:d};"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject&&__REACT_DEVTOOLS_GLOBAL_HOOK__.inject({ComponentTree:{getClosestInstanceFromNode:r.getClosestInstanceFromNode,getNodeFromInstance:function(e){return e._renderedComponent&&(e=p(e)),e?r.getNodeFromInstance(e):null}},Mount:a,Reconciler:s});t.exports=f},{105:105,117:117,145:145,34:34,39:39,44:44,61:61,66:66,72:72,73:73,97:97}],32:[function(e,t,n){"use strict";function r(e){if(e){var t=e._currentElement._owner||null;if(t){var n=t.getName();if(n)return" This DOM node was rendered by `"+n+"`."}}return""}function o(e,t){t&&(J[e._tag]&&(null!=t.children||null!=t.dangerouslySetInnerHTML?y("137",e._tag,e._currentElement._owner?" Check the render method of "+e._currentElement._owner.getName()+".":""):void 0),null!=t.dangerouslySetInnerHTML&&(null!=t.children?y("60"):void 0,"object"==typeof t.dangerouslySetInnerHTML&&Y in t.dangerouslySetInnerHTML?void 0:y("61")),null!=t.style&&"object"!=typeof t.style?y("62",r(e)):void 0)}function i(e,t,n,r){if(!(r instanceof L)){var o=e._hostContainerInfo,i=o._node&&o._node.nodeType===Q,a=i?o._node:o._ownerDocument;H(t,a),r.getReactMountReady().enqueue(s,{inst:e,registrationName:t,listener:n})}}function a(e,t,n){if(!(n instanceof L)){var r=e._hostContainerInfo,o=r._node&&r._node.nodeType===Q,i=o?r._node:r._ownerDocument;H(t,i)}}function s(){var e=this;k.putListener(e.inst,e.registrationName,e.listener)}function u(){var e=this;I.postMountWrapper(e)}function l(){var e=this;A.postMountWrapper(e)}function c(){var e=this;R.postMountWrapper(e)}function p(){j.track(this)}function d(){var e=W(this);e.onclick=U}function f(){var e=this;e._rootNodeID?void 0:y("63");var t=W(e);switch(t?void 0:y("64"),e._tag){case"iframe":case"object":e._wrapperState.listeners=[P.trapBubbledEvent("topLoad","load",t)];break;case"video":case"audio":e._wrapperState.listeners=[];for(var n in G)G.hasOwnProperty(n)&&e._wrapperState.listeners.push(P.trapBubbledEvent(n,G[n],t));break;case"source":e._wrapperState.listeners=[P.trapBubbledEvent("topError","error",t)];break;case"img":e._wrapperState.listeners=[P.trapBubbledEvent("topError","error",t),P.trapBubbledEvent("topLoad","load",t)];break;case"form":e._wrapperState.listeners=[P.trapBubbledEvent("topReset","reset",t),P.trapBubbledEvent("topSubmit","submit",t)];break;case"input":case"select":case"textarea":e._wrapperState.listeners=[P.trapBubbledEvent("topInvalid","invalid",t)]}}function h(){O.postUpdateWrapper(this)}function m(e){ne.call(te,e)||(ee.test(e)?void 0:y("65",e),te[e]=!0)}function v(e,t){return e.indexOf("-")>=0||null!=t.is}function g(e){var t=e.type;m(t),this._currentElement=e,this._tag=t.toLowerCase(),this._namespaceURI=null,this._renderedChildren=null,this._previousStyle=null,this._previousStyleCopy=null,this._hostNode=null,this._hostParent=null,this._rootNodeID=0,this._domID=0,this._hostContainerInfo=null,this._wrapperState=null,this._topLevelWrapper=null,this._flags=0}var y=e(116),_=e(146),C=e(2),b=e(5),E=e(10),x=e(11),T=e(12),w=e(13),k=e(16),S=e(17),P=e(24),N=e(33),M=e(34),I=e(40),R=e(41),O=e(42),A=e(46),D=(e(59),e(62)),L=e(68),U=e(132),F=e(96),j=(e(140),e(113),e(144),e(111)),B=(e(122),e(145),N),V=k.deleteListener,W=M.getNodeFromInstance,H=P.listenTo,q=S.registrationNameModules,K={string:!0,number:!0},z="style",Y="__html",X={children:null,dangerouslySetInnerHTML:null,suppressContentEditableWarning:null},Q=11,G={topAbort:"abort",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topLoadedData:"loadeddata",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topSeeked:"seeked",topSeeking:"seeking",topStalled:"stalled",topSuspend:"suspend",topTimeUpdate:"timeupdate",topVolumeChange:"volumechange",topWaiting:"waiting"},$={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},Z={listing:!0,pre:!0,textarea:!0},J=_({menuitem:!0},$),ee=/^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,te={},ne={}.hasOwnProperty,re=1;g.displayName="ReactDOMComponent",g.Mixin={mountComponent:function(e,t,n,r){this._rootNodeID=re++,this._domID=n._idCounter++,this._hostParent=t,this._hostContainerInfo=n;var i=this._currentElement.props;switch(this._tag){case"audio":case"form":case"iframe":case"img":case"link":case"object":case"source":case"video":this._wrapperState={listeners:null},e.getReactMountReady().enqueue(f,this);break;case"input":I.mountWrapper(this,i,t),i=I.getHostProps(this,i),e.getReactMountReady().enqueue(p,this),e.getReactMountReady().enqueue(f,this),a(this,"onChange",e);break;case"option":R.mountWrapper(this,i,t),i=R.getHostProps(this,i);break;case"select":O.mountWrapper(this,i,t),i=O.getHostProps(this,i),e.getReactMountReady().enqueue(f,this),a(this,"onChange",e);break;case"textarea":A.mountWrapper(this,i,t),i=A.getHostProps(this,i),e.getReactMountReady().enqueue(p,this),e.getReactMountReady().enqueue(f,this),a(this,"onChange",e)}o(this,i);var s,h;null!=t?(s=t._namespaceURI,h=t._tag):n._tag&&(s=n._namespaceURI,h=n._tag),(null==s||s===x.svg&&"foreignobject"===h)&&(s=x.html),s===x.html&&("svg"===this._tag?s=x.svg:"math"===this._tag&&(s=x.mathml)),this._namespaceURI=s;var m,g=this._currentElement.type;if(e.useCreateElement){var y,_=n._ownerDocument;if(s===x.html)if("script"===this._tag){var b=_.createElement("div");b.innerHTML="<"+g+"></"+g+">",y=b.removeChild(b.firstChild)}else y=i.is?_.createElement(g,i.is):_.createElement(g);else y=_.createElementNS(s,g);var T=v(this._tag,i);M.precacheNode(this,y),this._flags|=B.hasCachedChildNodes,this._hostParent||w.setAttributeForRoot(y),this._updateDOMProperties(null,i,e,T);var k=E(y);this._createInitialChildren(e,i,r,k),m=k}else{var S=this._createOpenTagMarkupAndPutListeners(e,i),P=this._createContentMarkup(e,i,r);m=!P&&$[this._tag]?S+"/>":S+">"+P+"</"+g+">"}switch(this._tag){case"input":e.getReactMountReady().enqueue(u,this),i.autoFocus&&e.getReactMountReady().enqueue(C.focusDOMComponent,this);break;case"textarea":e.getReactMountReady().enqueue(l,this),i.autoFocus&&e.getReactMountReady().enqueue(C.focusDOMComponent,this);break;case"select":i.autoFocus&&e.getReactMountReady().enqueue(C.focusDOMComponent,this);break;case"button":i.autoFocus&&e.getReactMountReady().enqueue(C.focusDOMComponent,this);break;case"option":e.getReactMountReady().enqueue(c,this);break;default:"function"==typeof i.onClick&&e.getReactMountReady().enqueue(d,this)}return m},_createOpenTagMarkupAndPutListeners:function(e,t){var n="<"+this._currentElement.type;for(var r in t)if(t.hasOwnProperty(r)){var o=t[r];if(null!=o)if(q.hasOwnProperty(r))o&&i(this,r,o,e);else{r===z&&(o&&(o=this._previousStyleCopy=_({},t.style)),o=b.createMarkupForStyles(o,this));var a=null;null!=this._tag&&v(this._tag,t)?X.hasOwnProperty(r)||(a=w.createMarkupForCustomAttribute(r,o)):a=w.createMarkupForProperty(r,o),a&&(n+=" "+a)}}return e.renderToStaticMarkup?n:(this._hostParent||(n+=" "+w.createMarkupForRoot()),n+=" "+w.createMarkupForID(this._domID))},_createContentMarkup:function(e,t,n){var r="",o=t.dangerouslySetInnerHTML;if(null!=o)null!=o.__html&&(r=o.__html);else{var i=K[typeof t.children]?t.children:null,a=null!=i?null:t.children;if(null!=i)r=F(i);else if(null!=a){var s=this.mountChildren(a,e,n);r=s.join("")}}return Z[this._tag]&&"\n"===r.charAt(0)?"\n"+r:r},_createInitialChildren:function(e,t,n,r){var o=t.dangerouslySetInnerHTML;if(null!=o)null!=o.__html&&E.queueHTML(r,o.__html);else{var i=K[typeof t.children]?t.children:null,a=null!=i?null:t.children;if(null!=i)""!==i&&E.queueText(r,i);else if(null!=a)for(var s=this.mountChildren(a,e,n),u=0;u<s.length;u++)E.queueChild(r,s[u])}},receiveComponent:function(e,t,n){var r=this._currentElement;this._currentElement=e,this.updateComponent(t,r,e,n)},updateComponent:function(e,t,n,r){var i=t.props,a=this._currentElement.props;switch(this._tag){case"input":i=I.getHostProps(this,i),a=I.getHostProps(this,a);break;case"option":i=R.getHostProps(this,i),a=R.getHostProps(this,a);break;case"select":i=O.getHostProps(this,i),a=O.getHostProps(this,a);break;case"textarea":i=A.getHostProps(this,i),a=A.getHostProps(this,a);break;default:"function"!=typeof i.onClick&&"function"==typeof a.onClick&&e.getReactMountReady().enqueue(d,this)}o(this,a);var s=v(this._tag,a);switch(this._updateDOMProperties(i,a,e,s),this._updateDOMChildren(i,a,e,r),this._tag){case"input":I.updateWrapper(this);break;case"textarea":A.updateWrapper(this);break;case"select":e.getReactMountReady().enqueue(h,this)}},_updateDOMProperties:function(e,t,n,r){var o,a,s;for(o in e)if(!t.hasOwnProperty(o)&&e.hasOwnProperty(o)&&null!=e[o])if(o===z){var u=this._previousStyleCopy;for(a in u)u.hasOwnProperty(a)&&(s=s||{},s[a]="");this._previousStyleCopy=null}else q.hasOwnProperty(o)?e[o]&&V(this,o):v(this._tag,e)?X.hasOwnProperty(o)||w.deleteValueForAttribute(W(this),o):(T.properties[o]||T.isCustomAttribute(o))&&w.deleteValueForProperty(W(this),o);for(o in t){var l=t[o],c=o===z?this._previousStyleCopy:null!=e?e[o]:void 0;if(t.hasOwnProperty(o)&&l!==c&&(null!=l||null!=c))if(o===z)if(l?l=this._previousStyleCopy=_({},l):this._previousStyleCopy=null,c){for(a in c)!c.hasOwnProperty(a)||l&&l.hasOwnProperty(a)||(s=s||{},s[a]="");for(a in l)l.hasOwnProperty(a)&&c[a]!==l[a]&&(s=s||{},s[a]=l[a])}else s=l;else if(q.hasOwnProperty(o))l?i(this,o,l,n):c&&V(this,o);else if(r)X.hasOwnProperty(o)||w.setValueForAttribute(W(this),o,l);else if(T.properties[o]||T.isCustomAttribute(o)){var p=W(this);null!=l?w.setValueForProperty(p,o,l):w.deleteValueForProperty(p,o)}}s&&b.setValueForStyles(W(this),s,this)},_updateDOMChildren:function(e,t,n,r){var o=K[typeof e.children]?e.children:null,i=K[typeof t.children]?t.children:null,a=e.dangerouslySetInnerHTML&&e.dangerouslySetInnerHTML.__html,s=t.dangerouslySetInnerHTML&&t.dangerouslySetInnerHTML.__html,u=null!=o?null:e.children,l=null!=i?null:t.children,c=null!=o||null!=a,p=null!=i||null!=s;null!=u&&null==l?this.updateChildren(null,n,r):c&&!p&&this.updateTextContent(""),null!=i?o!==i&&this.updateTextContent(""+i):null!=s?a!==s&&this.updateMarkup(""+s):null!=l&&this.updateChildren(l,n,r)},getHostNode:function(){return W(this)},unmountComponent:function(e,t){switch(this._tag){case"audio":case"form":case"iframe":case"img":case"link":case"object":case"source":case"video":var n=this._wrapperState.listeners;if(n)for(var r=0;r<n.length;r++)n[r].remove();break;case"input":case"textarea":j.stopTracking(this);break;case"html":case"head":case"body":y("66",this._tag)}this.unmountChildren(e,t),M.uncacheNode(this),k.deleteAllListeners(this),this._rootNodeID=0,this._domID=0,this._wrapperState=null},restoreControlledState:function(){switch(this._tag){case"input":return void I.restoreControlledState(this);case"textarea":return void A.restoreControlledState(this);case"select":return void O.restoreControlledState(this)}},getPublicInstance:function(){return W(this)}},_(g.prototype,g.Mixin,D),t.exports=g},{10:10,11:11,111:111,113:113,116:116,12:12,122:122,13:13,132:132,140:140,144:144,145:145,146:146,16:16,17:17,2:2,24:24,33:33,34:34,40:40,41:41,42:42,46:46,5:5,59:59,62:62,68:68,96:96}],33:[function(e,t,n){"use strict";var r={hasCachedChildNodes:1};t.exports=r},{}],34:[function(e,t,n){"use strict";function r(e,t){return 1===e.nodeType&&e.getAttribute(h)===String(t)||8===e.nodeType&&e.nodeValue===" react-text: "+t+" "||8===e.nodeType&&e.nodeValue===" react-empty: "+t+" "}function o(e){for(var t;t=e._renderedComponent;)e=t;return e}function i(e,t){var n=o(e);n._hostNode=t,t[v]=n}function a(e){var t=e._hostNode;t&&(delete t[v],e._hostNode=null)}function s(e,t){if(!(e._flags&m.hasCachedChildNodes)){var n=e._renderedChildren,a=t.firstChild;e:for(var s in n)if(n.hasOwnProperty(s)){var u=n[s],l=o(u)._domID;if(0!==l){for(;null!==a;a=a.nextSibling)if(r(a,l)){i(u,a);continue e}p("32",l)}}e._flags|=m.hasCachedChildNodes}}function u(e){if(e[v])return e[v];for(var t=[];!e[v];){if(t.push(e),!e.parentNode)return null;e=e.parentNode}for(var n,r;e&&(r=e[v]);e=t.pop())n=r,t.length&&s(r,e);return n}function l(e){var t=u(e);return null!=t&&t._hostNode===e?t:null}function c(e){if(void 0===e._hostNode?p("33"):void 0,e._hostNode)return e._hostNode;for(var t=[];!e._hostNode;)t.push(e),e._hostParent?void 0:p("34"),e=e._hostParent;for(;t.length;e=t.pop())s(e,e._hostNode);return e._hostNode}var p=e(116),d=e(12),f=e(33),h=(e(140),d.ID_ATTRIBUTE_NAME),m=f,v="__reactInternalInstance$"+Math.random().toString(36).slice(2),g={getClosestInstanceFromNode:u,getInstanceFromNode:l,getNodeFromInstance:c,precacheChildNodes:s,precacheNode:i,uncacheNode:a};t.exports=g},{116:116,12:12,140:140,33:33}],35:[function(e,t,n){"use strict";function r(e,t){var n={_topLevelWrapper:e,_idCounter:1,_ownerDocument:t?t.nodeType===o?t:t.ownerDocument:null,_node:t,_tag:t?t.nodeName.toLowerCase():null,_namespaceURI:t?t.namespaceURI:null};return n}var o=(e(122),9);t.exports=r},{122:122}],36:[function(e,t,n){"use strict";var r=e(146),o=e(10),i=e(34),a=function(e){this._currentElement=null,this._hostNode=null,this._hostParent=null,this._hostContainerInfo=null,this._domID=0};r(a.prototype,{mountComponent:function(e,t,n,r){var a=n._idCounter++;this._domID=a,this._hostParent=t,this._hostContainerInfo=n;var s=" react-empty: "+this._domID+" ";if(e.useCreateElement){var u=n._ownerDocument,l=u.createComment(s);return i.precacheNode(this,l),o(l)}return e.renderToStaticMarkup?"":"<!--"+s+"-->"},receiveComponent:function(){},getHostNode:function(){return i.getNodeFromInstance(this)},unmountComponent:function(){i.uncacheNode(this)}}),t.exports=a},{10:10,146:146,34:34}],37:[function(e,t,n){"use strict";var r={useCreateElement:!0,useFiber:!1};t.exports=r},{}],38:[function(e,t,n){"use strict";var r=e(8),o=e(34),i={dangerouslyProcessChildrenUpdates:function(e,t){var n=o.getNodeFromInstance(e);r.processUpdates(n,t)}};t.exports=i},{34:34,8:8}],39:[function(e,t,n){"use strict";function r(){_||(_=!0,f.injection.injectReactEventListener(m),c.injection.injectEventPluginOrder(u),p.injection.injectComponentTree(h),c.injection.injectEventPluginsByName({SimpleEventPlugin:y,EnterLeaveEventPlugin:l,ChangeEventPlugin:s,SelectEventPlugin:g,BeforeInputEventPlugin:i}),a.injection.injectDOMPropertyConfig(o),a.injection.injectDOMPropertyConfig(d),a.injection.injectDOMPropertyConfig(v))}var o=e(1),i=e(3),a=e(12),s=e(7),u=e(9),l=e(15),c=e(16),p=e(18),d=e(21),f=e(24),h=e(34),m=e(53),v=e(74),g=e(75),y=e(76),_=!1;t.exports={inject:r}},{1:1,12:12,15:15,16:16,18:18,21:21,24:24,3:3,34:34,53:53,7:7,74:74,75:75,76:76,9:9}],40:[function(e,t,n){"use strict";function r(e,t){var n=t.name;if("radio"===t.type&&null!=n){for(var r=s.getNodeFromInstance(e),i=r;i.parentNode;)i=i.parentNode;for(var a=i.querySelectorAll("input[name="+JSON.stringify(""+n)+'][type="radio"]'),l=0;l<a.length;l++){var c=a[l];if(c!==r&&c.form===r.form){var p=s.getInstanceFromNode(c);p?void 0:o("90"),p._rootNodeID&&u.updateWrapper(p)}}}}var o=e(116),i=e(146),a=e(13),s=(e(30),e(34)),u=(e(140),e(145),{getHostProps:function(e,t){var n=t.value,r=t.checked,o=i({type:void 0,step:void 0,min:void 0,max:void 0},t,{defaultChecked:void 0,defaultValue:void 0,value:null!=n?n:e._wrapperState.initialValue,checked:null!=r?r:e._wrapperState.initialChecked});return o},mountWrapper:function(e,t){var n=t.defaultValue;e._wrapperState={initialChecked:null!=t.checked?t.checked:t.defaultChecked,initialValue:null!=t.value?t.value:n,listeners:null}},updateWrapper:function(e){var t=e._currentElement.props,n=t.checked;null!=n&&a.setValueForProperty(s.getNodeFromInstance(e),"checked",n||!1);var r=s.getNodeFromInstance(e),o=t.value;if(null!=o){var i=""+o;i!==r.value&&(r.value=i)}else null==t.value&&null!=t.defaultValue&&r.defaultValue!==""+t.defaultValue&&(r.defaultValue=""+t.defaultValue),null==t.checked&&null!=t.defaultChecked&&(r.defaultChecked=!!t.defaultChecked)},postMountWrapper:function(e){var t=e._currentElement.props,n=s.getNodeFromInstance(e);switch(t.type){case"submit":case"reset":break;case"color":case"date":case"datetime":case"datetime-local":case"month":case"time":case"week":n.value="",n.value=n.defaultValue;break;default:n.value=n.value}var r=n.name;""!==r&&(n.name=""),n.defaultChecked=!n.defaultChecked,n.defaultChecked=!n.defaultChecked,""!==r&&(n.name=r)},restoreControlledState:function(e){e._rootNodeID&&u.updateWrapper(e);var t=e._currentElement.props;r(e,t)}});t.exports=u},{116:116,13:13,140:140,145:145,146:146,30:30,34:34}],41:[function(e,t,n){"use strict";function r(e){var t="";return i.Children.forEach(e,function(e){null!=e&&("string"==typeof e||"number"==typeof e?t+=e:u||(u=!0))}),t}var o=e(146),i=e(124),a=e(34),s=e(42),u=(e(145),!1),l={mountWrapper:function(e,t,n){var o=null;if(null!=n){var i=n;"optgroup"===i._tag&&(i=i._hostParent),null!=i&&"select"===i._tag&&(o=s.getSelectValueContext(i))}var a=null;if(null!=o){var u;if(u=null!=t.value?t.value+"":r(t.children),a=!1,Array.isArray(o)){for(var l=0;l<o.length;l++)if(""+o[l]===u){a=!0;break}}else a=""+o===u}e._wrapperState={selected:a}},postMountWrapper:function(e){var t=e._currentElement.props;if(null!=t.value){var n=a.getNodeFromInstance(e);n.setAttribute("value",t.value)}},getHostProps:function(e,t){var n=o({selected:void 0,children:void 0},t);null!=e._wrapperState.selected&&(n.selected=e._wrapperState.selected);var i=r(t.children);return i&&(n.children=i),n}};t.exports=l},{124:124,145:145,146:146,34:34,42:42}],42:[function(e,t,n){"use strict";function r(e,t,n){var r=i.getNodeFromInstance(e).options;if(t){for(var o={},a=0;a<n.length;a++)o[""+n[a]]=!0;for(var s=0;s<r.length;s++){var u=o.hasOwnProperty(r[s].value);r[s].selected!==u&&(r[s].selected=u)}}else{for(var l=""+n,c=0;c<r.length;c++)if(r[c].value===l)return void(r[c].selected=!0);r.length&&(r[0].selected=!0)}}var o=e(146),i=(e(30),e(34)),a=(e(145),!1),s={getHostProps:function(e,t){return o({},t,{value:void 0})},mountWrapper:function(e,t){var n=t.value;e._wrapperState={initialValue:null!=n?n:t.defaultValue,listeners:null,wasMultiple:Boolean(t.multiple)},void 0===t.value||void 0===t.defaultValue||a||(a=!0)},getSelectValueContext:function(e){return e._wrapperState.initialValue},postUpdateWrapper:function(e){var t=e._currentElement.props;e._wrapperState.initialValue=void 0;var n=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=Boolean(t.multiple);var o=t.value;null!=o?r(e,Boolean(t.multiple),o):n!==Boolean(t.multiple)&&(null!=t.defaultValue?r(e,Boolean(t.multiple),t.defaultValue):r(e,Boolean(t.multiple),t.multiple?[]:""))},restoreControlledState:function(e){if(e._rootNodeID){var t=e._currentElement.props,n=t.value;null!=n&&r(e,Boolean(t.multiple),n)}}};t.exports=s},{145:145,146:146,30:30,34:34}],43:[function(e,t,n){"use strict";function r(e,t,n,r){return e===n&&t===r}function o(e){var t=document.selection,n=t.createRange(),r=n.text.length,o=n.duplicate();o.moveToElementText(e),o.setEndPoint("EndToStart",n);var i=o.text.length,a=i+r;return{start:i,end:a}}function i(e){var t=window.getSelection&&window.getSelection();if(!t||0===t.rangeCount)return null;var n=t.anchorNode,o=t.anchorOffset,i=t.focusNode,a=t.focusOffset,s=t.getRangeAt(0);try{s.startContainer.nodeType,s.endContainer.nodeType}catch(e){return null}var u=r(t.anchorNode,t.anchorOffset,t.focusNode,t.focusOffset),l=u?0:s.toString().length,c=s.cloneRange(); -c.selectNodeContents(e),c.setEnd(s.startContainer,s.startOffset);var p=r(c.startContainer,c.startOffset,c.endContainer,c.endOffset),d=p?0:c.toString().length,f=d+l,h=document.createRange();h.setStart(n,o),h.setEnd(i,a);var m=h.collapsed;return{start:m?f:d,end:m?d:f}}function a(e,t){var n,r,o=document.selection.createRange().duplicate();void 0===t.end?(n=t.start,r=n):t.start>t.end?(n=t.end,r=t.start):(n=t.start,r=t.end),o.moveToElementText(e),o.moveStart("character",n),o.setEndPoint("EndToStart",o),o.moveEnd("character",r-n),o.select()}function s(e,t){if(window.getSelection){var n=window.getSelection(),r=e[c()].length,o=Math.min(t.start,r),i=void 0===t.end?o:Math.min(t.end,r);if(!n.extend&&o>i){var a=i;i=o,o=a}var s=l(e,o),u=l(e,i);if(s&&u){var p=document.createRange();p.setStart(s.node,s.offset),n.removeAllRanges(),o>i?(n.addRange(p),n.extend(u.node,u.offset)):(p.setEnd(u.node,u.offset),n.addRange(p))}}}var u=e(126),l=e(108),c=e(109),p=u.canUseDOM&&"selection"in document&&!("getSelection"in window),d={getOffsets:p?o:i,setOffsets:p?a:s};t.exports=d},{108:108,109:109,126:126}],44:[function(e,t,n){"use strict";function r(){m||(m=!0,p.injection.injectStackBatchedUpdates(h.batchedUpdates),d.injection.injectGenericComponentClass(a),d.injection.injectTextComponentClass(u),c.injection.injectEmptyComponentFactory(function(e){return new s(e)}),h.injection.injectReconcileTransaction(f),h.injection.injectBatchingStrategy(l),o.injection.injectEnvironment(i))}var o=e(27),i=e(26),a=e(32),s=e(36),u=e(45),l=e(48),c=e(50),p=e(55),d=e(56),f=e(65),h=e(72),m=!1;t.exports={inject:r}},{26:26,27:27,32:32,36:36,45:45,48:48,50:50,55:55,56:56,65:65,72:72}],45:[function(e,t,n){"use strict";var r=e(116),o=e(146),i=e(8),a=e(10),s=e(34),u=e(96),l=(e(140),e(122),function(e){this._currentElement=e,this._stringText=""+e,this._hostNode=null,this._hostParent=null,this._domID=0,this._mountIndex=0,this._closingComment=null,this._commentNodes=null});o(l.prototype,{mountComponent:function(e,t,n,r){var o=n._idCounter++,i=" react-text: "+o+" ",l=" /react-text ";if(this._domID=o,this._hostParent=t,e.useCreateElement){var c=n._ownerDocument,p=c.createComment(i),d=c.createComment(l),f=a(c.createDocumentFragment());return a.queueChild(f,a(p)),this._stringText&&a.queueChild(f,a(c.createTextNode(this._stringText))),a.queueChild(f,a(d)),s.precacheNode(this,p),this._closingComment=d,f}var h=u(this._stringText);return e.renderToStaticMarkup?h:"<!--"+i+"-->"+h+"<!--"+l+"-->"},receiveComponent:function(e,t){if(e!==this._currentElement){this._currentElement=e;var n=""+e;if(n!==this._stringText){this._stringText=n;var r=this.getHostNode();i.replaceDelimitedText(r[0],r[1],n)}}},getHostNode:function(){var e=this._commentNodes;if(e)return e;if(!this._closingComment)for(var t=s.getNodeFromInstance(this),n=t.nextSibling;;){if(null==n?r("67",this._domID):void 0,8===n.nodeType&&" /react-text "===n.nodeValue){this._closingComment=n;break}n=n.nextSibling}return e=[this._hostNode,this._closingComment],this._commentNodes=e,e},unmountComponent:function(){this._closingComment=null,this._commentNodes=null,s.uncacheNode(this)}}),t.exports=l},{10:10,116:116,122:122,140:140,146:146,34:34,8:8,96:96}],46:[function(e,t,n){"use strict";var r=e(116),o=e(146),i=(e(30),e(34)),a=(e(140),e(145),{getHostProps:function(e,t){null!=t.dangerouslySetInnerHTML?r("91"):void 0;var n=o({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue});return n},mountWrapper:function(e,t){var n=t.value,o=n;if(null==n){var i=t.defaultValue,a=t.children;null!=a&&(null!=i?r("92"):void 0,Array.isArray(a)&&(a.length<=1?void 0:r("93"),a=a[0]),i=""+a),null==i&&(i=""),o=i}e._wrapperState={initialValue:""+o,listeners:null}},updateWrapper:function(e){var t=e._currentElement.props,n=i.getNodeFromInstance(e),r=t.value;if(null!=r){var o=""+r;o!==n.value&&(n.value=o),null==t.defaultValue&&(n.defaultValue=o)}null!=t.defaultValue&&(n.defaultValue=t.defaultValue)},postMountWrapper:function(e){var t=i.getNodeFromInstance(e),n=t.textContent;n===e._wrapperState.initialValue&&(t.value=n)},restoreControlledState:function(e){e._rootNodeID&&a.updateWrapper(e)}});t.exports=a},{116:116,140:140,145:145,146:146,30:30,34:34}],47:[function(e,t,n){"use strict";var r=e(146),o=e(31),i=r({__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{ReactInstanceMap:e(58)}},o);t.exports=i},{146:146,31:31,58:58}],48:[function(e,t,n){"use strict";function r(){this.reinitializeTransaction()}var o=e(146),i=e(72),a=e(90),s=e(132),u={initialize:s,close:function(){d.isBatchingUpdates=!1}},l={initialize:s,close:i.flushBatchedUpdates.bind(i)},c=[l,u];o(r.prototype,a,{getTransactionWrappers:function(){return c}});var p=new r,d={isBatchingUpdates:!1,batchedUpdates:function(e,t,n,r,o,i){var a=d.isBatchingUpdates;return d.isBatchingUpdates=!0,a?e(t,n,r,o,i):p.perform(e,null,t,n,r,o,i)}};t.exports=d},{132:132,146:146,72:72,90:90}],49:[function(e,t,n){"use strict";var r="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103;t.exports=r},{}],50:[function(e,t,n){"use strict";var r,o={injectEmptyComponentFactory:function(e){r=e}},i={create:function(e){return r(e)}};i.injection=o,t.exports=i},{}],51:[function(e,t,n){"use strict";function r(e,t,n){try{t(n)}catch(e){null===o&&(o=e)}}var o=null,i={invokeGuardedCallback:r,invokeGuardedCallbackWithCatch:r,rethrowCaughtError:function(){if(o){var e=o;throw o=null,e}}};t.exports=i},{}],52:[function(e,t,n){"use strict";function r(e){o.enqueueEvents(e),o.processEventQueue(!1)}var o=e(16),i={handleTopLevel:function(e,t,n,i){var a=o.extractEvents(e,t,n,i);r(a)}};t.exports=i},{16:16}],53:[function(e,t,n){"use strict";function r(e){for(;e._hostParent;)e=e._hostParent;var t=p.getNodeFromInstance(e),n=t.parentNode;return p.getClosestInstanceFromNode(n)}function o(e,t,n){this.topLevelType=e,this.nativeEvent=t,this.targetInst=n,this.ancestors=[]}function i(e){var t=e.targetInst,n=t;do e.ancestors.push(n),n=n&&r(n);while(n);for(var o=0;o<e.ancestors.length;o++)t=e.ancestors[o],m._handleTopLevel(e.topLevelType,t,e.nativeEvent,f(e.nativeEvent))}function a(e){var t=h(window);e(t)}var s=e(146),u=e(125),l=e(126),c=e(23),p=e(34),d=e(55),f=e(104),h=e(137);s(o.prototype,{destructor:function(){this.topLevelType=null,this.nativeEvent=null,this.targetInst=null,this.ancestors.length=0}}),c.addPoolingTo(o,c.threeArgumentPooler);var m={_enabled:!0,_handleTopLevel:null,WINDOW_HANDLE:l.canUseDOM?window:null,setHandleTopLevel:function(e){m._handleTopLevel=e},setEnabled:function(e){m._enabled=!!e},isEnabled:function(){return m._enabled},trapBubbledEvent:function(e,t,n){return n?u.listen(n,t,m.dispatchEvent.bind(null,e)):null},trapCapturedEvent:function(e,t,n){return n?u.capture(n,t,m.dispatchEvent.bind(null,e)):null},monitorScrollValue:function(e){var t=a.bind(null,e);u.listen(window,"scroll",t)},dispatchEvent:function(e,t){if(m._enabled){var n=f(t),r=p.getClosestInstanceFromNode(n),a=o.getPooled(e,t,r);try{d.batchedUpdates(i,a)}finally{o.release(a)}}}};t.exports=m},{104:104,125:125,126:126,137:137,146:146,23:23,34:34,55:55}],54:[function(e,t,n){"use strict";var r={logTopLevelRenders:!1};t.exports=r},{}],55:[function(e,t,n){"use strict";function r(e,t){u(e,t)}function o(e,t){s(r,e,t)}function i(e,t){if(l)return void o(e,t);l=!0;try{o(e,t)}finally{l=!1,a.restoreStateIfNeeded()}}var a=e(29),s=function(e,t,n,r,o,i){e(t,n,r,o,i)},u=function(e,t){e(t)},l=!1,c={injectStackBatchedUpdates:function(e){s=e},injectFiberPerformSynchronousWork:function(e){u=e}},p={batchedUpdates:i,injection:c};t.exports=p},{29:29}],56:[function(e,t,n){"use strict";function r(e){return s?void 0:a("111",e.type),new s(e)}function o(e){return new u(e)}function i(e){return e instanceof u}var a=e(116),s=(e(140),null),u=null,l={injectGenericComponentClass:function(e){s=e},injectTextComponentClass:function(e){u=e}},c={createInternalComponent:r,createInstanceForText:o,isTextComponent:i,injection:l};t.exports=c},{116:116,140:140}],57:[function(e,t,n){"use strict";function r(e){return i(document.documentElement,e)}var o=e(43),i=e(129),a=e(134),s=e(135),u={hasSelectionCapabilities:function(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&"text"===e.type||"textarea"===t||"true"===e.contentEditable)},getSelectionInformation:function(){var e=s();return{focusedElem:e,selectionRange:u.hasSelectionCapabilities(e)?u.getSelection(e):null}},restoreSelection:function(e){var t=s(),n=e.focusedElem,o=e.selectionRange;t!==n&&r(n)&&(u.hasSelectionCapabilities(n)&&u.setSelection(n,o),a(n))},getSelection:function(e){var t;if("selectionStart"in e)t={start:e.selectionStart,end:e.selectionEnd};else if(document.selection&&e.nodeName&&"input"===e.nodeName.toLowerCase()){var n=document.selection.createRange();n.parentElement()===e&&(t={start:-n.moveStart("character",-e.value.length),end:-n.moveEnd("character",-e.value.length)})}else t=o.getOffsets(e);return t||{start:0,end:0}},setSelection:function(e,t){var n=t.start,r=t.end;if(void 0===r&&(r=n),"selectionStart"in e)e.selectionStart=n,e.selectionEnd=Math.min(r,e.value.length);else if(document.selection&&e.nodeName&&"input"===e.nodeName.toLowerCase()){var i=e.createTextRange();i.collapse(!0),i.moveStart("character",n),i.moveEnd("character",r-n),i.select()}else o.setOffsets(e,t)}};t.exports=u},{129:129,134:134,135:135,43:43}],58:[function(e,t,n){"use strict";var r={remove:function(e){e._reactInternalInstance=void 0},get:function(e){return e._reactInternalInstance},has:function(e){return void 0!==e._reactInternalInstance},set:function(e,t){e._reactInternalInstance=t}};t.exports=r},{}],59:[function(e,t,n){"use strict";var r=null;t.exports={debugTool:r}},{}],60:[function(e,t,n){"use strict";var r=e(93),o=/\/?>/,i=/^<\!\-\-/,a={CHECKSUM_ATTR_NAME:"data-react-checksum",addChecksumToMarkup:function(e){var t=r(e);return i.test(e)?e:e.replace(o," "+a.CHECKSUM_ATTR_NAME+'="'+t+'"$&')},canReuseMarkup:function(e,t){var n=t.getAttribute(a.CHECKSUM_ATTR_NAME);n=n&&parseInt(n,10);var o=r(e);return o===n}};t.exports=a},{93:93}],61:[function(e,t,n){"use strict";function r(e,t){for(var n=Math.min(e.length,t.length),r=0;r<n;r++)if(e.charAt(r)!==t.charAt(r))return r;return e.length===t.length?-1:n}function o(e){return e?e.nodeType===A?e.documentElement:e.firstChild:null}function i(e){return e.getAttribute&&e.getAttribute(I)||""}function a(e,t,n,r,o){var i;if(b.logTopLevelRenders){var a=e._currentElement.props.child,s=a.type;i="React mount: "+("string"==typeof s?s:s.displayName||s.name),console.time(i)}var u=T.mountComponent(e,n,null,_(e,t),o,0);i&&console.timeEnd(i),e._renderedComponent._topLevelWrapper=e,j._mountImageIntoNode(u,t,e,r,n)}function s(e,t,n,r){var o=k.ReactReconcileTransaction.getPooled(!n&&C.useCreateElement);o.perform(a,null,e,t,o,n,r),k.ReactReconcileTransaction.release(o)}function u(e,t){for(T.unmountComponent(e,!1,!1),t.nodeType===A&&(t=t.documentElement);t.lastChild;)t.removeChild(t.lastChild)}function l(e){var t=o(e);if(t){var n=y.getInstanceFromNode(t);return!(!n||!n._hostParent)}}function c(e){return!(!e||e.nodeType!==O&&e.nodeType!==A&&e.nodeType!==D)}function p(e){var t=o(e),n=t&&y.getInstanceFromNode(t);return n&&!n._hostParent?n:null}function d(e){var t=p(e);return t?t._hostContainerInfo._topLevelWrapper:null}var f=e(116),h=e(10),m=e(12),v=e(124),g=e(24),y=(e(123),e(34)),_=e(35),C=e(37),b=e(54),E=e(58),x=(e(59),e(60)),T=e(66),w=e(71),k=e(72),S=e(133),P=e(112),N=(e(140),e(118)),M=e(120),I=(e(145),m.ID_ATTRIBUTE_NAME),R=m.ROOT_ATTRIBUTE_NAME,O=1,A=9,D=11,L={},U=1,F=function(){this.rootID=U++};F.prototype.isReactComponent={},F.prototype.render=function(){return this.props.child},F.isReactTopLevelWrapper=!0;var j={TopLevelWrapper:F,_instancesByReactRootID:L,scrollMonitor:function(e,t){t()},_updateRootComponent:function(e,t,n,r,o){return j.scrollMonitor(r,function(){w.enqueueElementInternal(e,t,n),o&&w.enqueueCallbackInternal(e,o)}),e},_renderNewRootComponent:function(e,t,n,r,o){c(t)?void 0:f("37"),g.ensureScrollValueMonitoring();var i=P(e,!1);o&&(i._pendingCallbacks=[function(){o.call(i._renderedComponent.getPublicInstance())}]),k.batchedUpdates(s,i,t,n,r);var a=i._instance.rootID;return L[a]=i,i},renderSubtreeIntoContainer:function(e,t,n,r){return null!=e&&E.has(e)?void 0:f("38"),j._renderSubtreeIntoContainer(e,t,n,r)},_renderSubtreeIntoContainer:function(e,t,n,r){w.validateCallback(r,"ReactDOM.render"),v.isValidElement(t)?void 0:f("39","string"==typeof t?" Instead of passing a string like 'div', pass React.createElement('div') or <div />.":"function"==typeof t?" Instead of passing a class like Foo, pass React.createElement(Foo) or <Foo />.":null!=t&&void 0!==t.props?" This may be caused by unintentionally loading two independent copies of React.":"");var a,s=v.createElement(F,{child:t});if(e){var u=E.get(e);a=u._processChildContext(u._context)}else a=S;var c=d(n);if(c){var p=c._currentElement,h=p.props.child;if(M(h,t)){var m=c._renderedComponent.getPublicInstance(),g=r&&function(){r.call(m)};return j._updateRootComponent(c,s,a,n,g),m}j.unmountComponentAtNode(n)}var y=o(n),_=y&&!!i(y),C=l(n),b=_&&!c&&!C,x=j._renderNewRootComponent(s,n,b,a,r)._renderedComponent.getPublicInstance();return x},render:function(e,t,n){return j._renderSubtreeIntoContainer(null,e,t,n)},unmountComponentAtNode:function(e){c(e)?void 0:f("40");var t=d(e);return t?(delete L[t._instance.rootID],k.batchedUpdates(u,t,e),!0):(l(e),1===e.nodeType&&e.hasAttribute(R),!1)},_mountImageIntoNode:function(e,t,n,i,a){if(c(t)?void 0:f("41"),i){var s=o(t);if(x.canReuseMarkup(e,s))return void y.precacheNode(n,s);var u=s.getAttribute(x.CHECKSUM_ATTR_NAME);s.removeAttribute(x.CHECKSUM_ATTR_NAME);var l=s.outerHTML;s.setAttribute(x.CHECKSUM_ATTR_NAME,u);var p=e,d=r(p,l),m=" (client) "+p.substring(d-20,d+20)+"\n (server) "+l.substring(d-20,d+20);t.nodeType===A?f("42",m):void 0}if(t.nodeType===A?f("43"):void 0,a.useCreateElement){for(;t.lastChild;)t.removeChild(t.lastChild);h.insertTreeBefore(t,e,null)}else N(t,e),y.precacheNode(n,t.firstChild)}};t.exports=j},{10:10,112:112,116:116,118:118,12:12,120:120,123:123,124:124,133:133,140:140,145:145,24:24,34:34,35:35,37:37,54:54,58:58,59:59,60:60,66:66,71:71,72:72}],62:[function(e,t,n){"use strict";function r(e,t,n){return{type:"INSERT_MARKUP",content:e,fromIndex:null,fromNode:null,toIndex:n,afterNode:t}}function o(e,t,n){return{type:"MOVE_EXISTING",content:null,fromIndex:e._mountIndex,fromNode:d.getHostNode(e),toIndex:n,afterNode:t}}function i(e,t){return{type:"REMOVE_NODE",content:null,fromIndex:e._mountIndex,fromNode:t,toIndex:null,afterNode:null}}function a(e){return{type:"SET_MARKUP",content:e,fromIndex:null,fromNode:null,toIndex:null,afterNode:null}}function s(e){return{type:"TEXT_CONTENT",content:e,fromIndex:null,fromNode:null,toIndex:null,afterNode:null}}function u(e,t){return t&&(e=e||[],e.push(t)),e}function l(e,t){p.processChildrenUpdates(e,t)}var c=e(116),p=e(27),d=(e(58),e(59),e(123),e(66)),f=e(25),h=(e(132),e(98)),m=(e(140),{_reconcilerInstantiateChildren:function(e,t,n){return f.instantiateChildren(e,t,n)},_reconcilerUpdateChildren:function(e,t,n,r,o,i){var a,s=0;return a=h(t,s),f.updateChildren(e,a,n,r,o,this,this._hostContainerInfo,i,s),a},mountChildren:function(e,t,n){var r=this._reconcilerInstantiateChildren(e,t,n);this._renderedChildren=r;var o=[],i=0;for(var a in r)if(r.hasOwnProperty(a)){var s=r[a],u=0,l=d.mountComponent(s,t,this,this._hostContainerInfo,n,u);s._mountIndex=i++,o.push(l)}return o},updateTextContent:function(e){var t=this._renderedChildren;f.unmountChildren(t,!1,!1);for(var n in t)t.hasOwnProperty(n)&&c("118");var r=[s(e)];l(this,r)},updateMarkup:function(e){var t=this._renderedChildren;f.unmountChildren(t,!1,!1);for(var n in t)t.hasOwnProperty(n)&&c("118");var r=[a(e)];l(this,r)},updateChildren:function(e,t,n){this._updateChildren(e,t,n)},_updateChildren:function(e,t,n){var r=this._renderedChildren,o={},i=[],a=this._reconcilerUpdateChildren(r,e,i,o,t,n);if(a||r){var s,c=null,p=0,f=0,h=0,m=null;for(s in a)if(a.hasOwnProperty(s)){var v=r&&r[s],g=a[s];v===g?(c=u(c,this.moveChild(v,m,p,f)),f=Math.max(v._mountIndex,f),v._mountIndex=p):(v&&(f=Math.max(v._mountIndex,f)),c=u(c,this._mountChildAtIndex(g,i[h],m,p,t,n)),h++),p++,m=d.getHostNode(g)}for(s in o)o.hasOwnProperty(s)&&(c=u(c,this._unmountChild(r[s],o[s])));c&&l(this,c),this._renderedChildren=a}},unmountChildren:function(e,t){var n=this._renderedChildren;f.unmountChildren(n,e,t),this._renderedChildren=null},moveChild:function(e,t,n,r){if(e._mountIndex<r)return o(e,t,n)},createChild:function(e,t,n){return r(n,t,e._mountIndex)},removeChild:function(e,t){return i(e,t)},_mountChildAtIndex:function(e,t,n,r,o,i){return e._mountIndex=r,this.createChild(e,n,t)},_unmountChild:function(e,t){var n=this.removeChild(e,t);return e._mountIndex=null,n}});t.exports=m},{116:116,123:123,132:132,140:140,25:25,27:27,58:58,59:59,66:66,98:98}],63:[function(e,t,n){"use strict";var r=e(116),o=e(124),i=(e(140),{HOST:0,COMPOSITE:1,EMPTY:2,getType:function(e){return null===e||e===!1?i.EMPTY:o.isValidElement(e)?"function"==typeof e.type?i.COMPOSITE:i.HOST:void r("26",e)}});t.exports=i},{116:116,124:124,140:140}],64:[function(e,t,n){"use strict";function r(e){return!(!e||"function"!=typeof e.attachRef||"function"!=typeof e.detachRef)}var o=e(116),i=(e(140),{addComponentAsRefTo:function(e,t,n){r(n)?void 0:o("119"),n.attachRef(t,e)},removeComponentAsRefFrom:function(e,t,n){r(n)?void 0:o("120");var i=n.getPublicInstance();i&&i.refs[t]===e.getPublicInstance()&&n.detachRef(t)}});t.exports=i},{116:116,140:140}],65:[function(e,t,n){"use strict";function r(e){this.reinitializeTransaction(),this.renderToStaticMarkup=!1,this.reactMountReady=i.getPooled(null),this.useCreateElement=e}var o=e(146),i=e(6),a=e(23),s=e(24),u=e(57),l=(e(59),e(90)),c=e(71),p={initialize:u.getSelectionInformation,close:u.restoreSelection},d={initialize:function(){var e=s.isEnabled();return s.setEnabled(!1),e},close:function(e){s.setEnabled(e)}},f={initialize:function(){this.reactMountReady.reset()},close:function(){this.reactMountReady.notifyAll()}},h=[p,d,f],m={getTransactionWrappers:function(){return h},getReactMountReady:function(){return this.reactMountReady},getUpdateQueue:function(){return c},checkpoint:function(){return this.reactMountReady.checkpoint()},rollback:function(e){this.reactMountReady.rollback(e)},destructor:function(){i.release(this.reactMountReady),this.reactMountReady=null}};o(r.prototype,l,m),a.addPoolingTo(r),t.exports=r},{146:146,23:23,24:24,57:57,59:59,6:6,71:71,90:90}],66:[function(e,t,n){"use strict";function r(){o.attachRefs(this,this._currentElement)}var o=e(67),i=(e(59),e(145),{mountComponent:function(e,t,n,o,i,a){var s=e.mountComponent(t,n,o,i,a);return e._currentElement&&null!=e._currentElement.ref&&t.getReactMountReady().enqueue(r,e),s},getHostNode:function(e){return e.getHostNode()},unmountComponent:function(e,t,n){o.detachRefs(e,e._currentElement),e.unmountComponent(t,n)},receiveComponent:function(e,t,n,i){var a=e._currentElement;if(t!==a||i!==e._context){var s=o.shouldUpdateRefs(a,t);s&&o.detachRefs(e,a),e.receiveComponent(t,n,i),s&&e._currentElement&&null!=e._currentElement.ref&&n.getReactMountReady().enqueue(r,e)}},performUpdateIfNecessary:function(e,t,n){e._updateBatchNumber===n&&e.performUpdateIfNecessary(t)}});t.exports=i},{145:145,59:59,67:67}],67:[function(e,t,n){"use strict";function r(e,t,n){"function"==typeof e?e(t.getPublicInstance()):i.addComponentAsRefTo(t,e,n)}function o(e,t,n){"function"==typeof e?e(null):i.removeComponentAsRefFrom(t,e,n)}var i=e(64),a={};a.attachRefs=function(e,t){if(null!==t&&"object"==typeof t){var n=t.ref;null!=n&&r(n,e,t._owner)}},a.shouldUpdateRefs=function(e,t){var n=null,r=null;null!==e&&"object"==typeof e&&(n=e.ref,r=e._owner);var o=null,i=null;return null!==t&&"object"==typeof t&&(o=t.ref,i=t._owner),n!==o||"string"==typeof o&&i!==r},a.detachRefs=function(e,t){if(null!==t&&"object"==typeof t){var n=t.ref;null!=n&&o(n,e,t._owner)}},t.exports=a},{64:64}],68:[function(e,t,n){"use strict";function r(e){this.reinitializeTransaction(),this.renderToStaticMarkup=e,this.useCreateElement=!1,this.updateQueue=new s(this)}var o=e(146),i=e(23),a=e(90),s=(e(59),e(69)),u=[],l={enqueue:function(){}},c={getTransactionWrappers:function(){return u},getReactMountReady:function(){return l},getUpdateQueue:function(){return this.updateQueue},destructor:function(){},checkpoint:function(){},rollback:function(){}};o(r.prototype,a,c),i.addPoolingTo(r),t.exports=r},{146:146,23:23,59:59,69:69,90:90}],69:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){}var i=e(71),a=(e(145),function(){function e(t){r(this,e),this.transaction=t}return e.prototype.isMounted=function(e){return!1},e.prototype.enqueueCallback=function(e,t,n){this.transaction.isInTransaction()&&i.enqueueCallback(e,t,n)},e.prototype.enqueueForceUpdate=function(e){this.transaction.isInTransaction()?i.enqueueForceUpdate(e):o(e,"forceUpdate")},e.prototype.enqueueReplaceState=function(e,t){this.transaction.isInTransaction()?i.enqueueReplaceState(e,t):o(e,"replaceState")},e.prototype.enqueueSetState=function(e,t){this.transaction.isInTransaction()?i.enqueueSetState(e,t):o(e,"setState")},e}());t.exports=a},{145:145,71:71}],70:[function(e,t,n){"use strict";function r(e,t){for(var n=0,r=e;r;r=r._hostParent)n++;for(var o=0,i=t;i;i=i._hostParent)o++;for(;n-o>0;)e=e._hostParent,n--;for(;o-n>0;)t=t._hostParent,o--;for(var a=n;a--;){if(e===t)return e;e=e._hostParent,t=t._hostParent}return null}function o(e,t){for(;t;){if(t===e)return!0;t=t._hostParent}return!1}function i(e){return e._hostParent}function a(e,t,n){for(var r=[];e;)r.push(e),e=e._hostParent;var o;for(o=r.length;o-- >0;)t(r[o],"captured",n);for(o=0;o<r.length;o++)t(r[o],"bubbled",n)}function s(e,t,n,o,i){for(var a=e&&t?r(e,t):null,s=[];e&&e!==a;)s.push(e),e=e._hostParent;for(var u=[];t&&t!==a;)u.push(t),t=t._hostParent;var l;for(l=0;l<s.length;l++)n(s[l],"bubbled",o);for(l=u.length;l-- >0;)n(u[l],"captured",i)}t.exports={isAncestor:o,getLowestCommonAncestor:r,getParentInstance:i,traverseTwoPhase:a,traverseEnterLeave:s}},{}],71:[function(e,t,n){"use strict";function r(e){u.enqueueUpdate(e)}function o(e){var t=typeof e;if("object"!==t)return t;var n=e.constructor&&e.constructor.name||t,r=Object.keys(e);return r.length>0&&r.length<20?n+" (keys: "+r.join(", ")+")":n}function i(e,t){var n=s.get(e);return n?n:null}var a=e(116),s=(e(123),e(58)),u=(e(59),e(72)),l=(e(140),e(145),{isMounted:function(e){var t=s.get(e);return!!t&&!!t._renderedComponent},enqueueCallback:function(e,t,n){l.validateCallback(t,n);var o=i(e);return o?(o._pendingCallbacks?o._pendingCallbacks.push(t):o._pendingCallbacks=[t],void r(o)):null},enqueueCallbackInternal:function(e,t){e._pendingCallbacks?e._pendingCallbacks.push(t):e._pendingCallbacks=[t],r(e)},enqueueForceUpdate:function(e){var t=i(e,"forceUpdate");t&&(t._pendingForceUpdate=!0,r(t))},enqueueReplaceState:function(e,t){var n=i(e,"replaceState");n&&(n._pendingStateQueue=[t],n._pendingReplaceState=!0,r(n))},enqueueSetState:function(e,t){var n=i(e,"setState");if(n){var o=n._pendingStateQueue||(n._pendingStateQueue=[]);o.push(t),r(n)}},enqueueElementInternal:function(e,t,n){e._pendingElement=t,e._context=n,r(e)},validateCallback:function(e,t){e&&"function"!=typeof e?a("122",t,o(e)):void 0}});t.exports=l},{116:116,123:123,140:140,145:145,58:58,59:59,72:72}],72:[function(e,t,n){"use strict";function r(){E.ReactReconcileTransaction&&g?void 0:l("123")}function o(){this.reinitializeTransaction(),this.dirtyComponentsLength=null,this.reconcileTransaction=E.ReactReconcileTransaction.getPooled(!0)}function i(e,t,n,o,i,a){return r(),g.batchedUpdates(e,t,n,o,i,a)}function a(e,t){return e._mountOrder-t._mountOrder}function s(e){var t=e.dirtyComponentsLength;t!==m.length?l("124",t,m.length):void 0,m.sort(a),v++;for(var n=0;n<t;n++){var r=m[n],o=r._pendingCallbacks;r._pendingCallbacks=null;var i;if(d.logTopLevelRenders){var s=r;r._currentElement.type.isReactTopLevelWrapper&&(s=r._renderedComponent),i="React update: "+s.getName(),console.time(i)}if(f.performUpdateIfNecessary(r,e.reconcileTransaction,v),i&&console.timeEnd(i),o)for(var u=0;u<o.length;u++)e.reconcileTransaction.getReactMountReady().enqueue(o[u],r.getPublicInstance())}}function u(e){return r(),g.isBatchingUpdates?(m.push(e),void(null==e._updateBatchNumber&&(e._updateBatchNumber=v+1))):void g.batchedUpdates(u,e)}var l=e(116),c=e(146),p=e(23),d=e(54),f=e(66),h=e(90),m=(e(140),[]),v=0,g=null,y={initialize:function(){this.dirtyComponentsLength=m.length},close:function(){this.dirtyComponentsLength!==m.length?(m.splice(0,this.dirtyComponentsLength),C()):m.length=0}},_=[y];c(o.prototype,h,{getTransactionWrappers:function(){return _},destructor:function(){this.dirtyComponentsLength=null,E.ReactReconcileTransaction.release(this.reconcileTransaction),this.reconcileTransaction=null},perform:function(e,t,n){return h.perform.call(this,this.reconcileTransaction.perform,this.reconcileTransaction,e,t,n)}}),p.addPoolingTo(o);var C=function(){for(;m.length;)if(m.length){var e=o.getPooled();e.perform(s,null,e),o.release(e)}},b={injectReconcileTransaction:function(e){e?void 0:l("126"),E.ReactReconcileTransaction=e},injectBatchingStrategy:function(e){e?void 0:l("127"),"function"!=typeof e.batchedUpdates?l("128"):void 0,"boolean"!=typeof e.isBatchingUpdates?l("129"):void 0,g=e},getBatchingStrategy:function(){return g}},E={ReactReconcileTransaction:null,batchedUpdates:i,enqueueUpdate:u,flushBatchedUpdates:C,injection:b};t.exports=E},{116:116,140:140,146:146,23:23,54:54,66:66,90:90}],73:[function(e,t,n){"use strict";t.exports="16.0.0-alpha"},{}],74:[function(e,t,n){"use strict";var r={xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace"},o={accentHeight:"accent-height",accumulate:0,additive:0,alignmentBaseline:"alignment-baseline",allowReorder:"allowReorder",alphabetic:0,amplitude:0,arabicForm:"arabic-form",ascent:0,attributeName:"attributeName",attributeType:"attributeType",autoReverse:"autoReverse",azimuth:0,baseFrequency:"baseFrequency",baseProfile:"baseProfile",baselineShift:"baseline-shift",bbox:0,begin:0,bias:0,by:0,calcMode:"calcMode",capHeight:"cap-height",clip:0,clipPath:"clip-path",clipRule:"clip-rule",clipPathUnits:"clipPathUnits",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",contentScriptType:"contentScriptType",contentStyleType:"contentStyleType",cursor:0,cx:0,cy:0,d:0,decelerate:0,descent:0,diffuseConstant:"diffuseConstant",direction:0,display:0,divisor:0,dominantBaseline:"dominant-baseline",dur:0,dx:0,dy:0,edgeMode:"edgeMode",elevation:0,enableBackground:"enable-background",end:0,exponent:0,externalResourcesRequired:"externalResourcesRequired",fill:0,fillOpacity:"fill-opacity",fillRule:"fill-rule",filter:0,filterRes:"filterRes",filterUnits:"filterUnits",floodColor:"flood-color",floodOpacity:"flood-opacity",focusable:0,fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",format:0,from:0,fx:0,fy:0,g1:0,g2:0,glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",glyphRef:"glyphRef",gradientTransform:"gradientTransform",gradientUnits:"gradientUnits",hanging:0,horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",ideographic:0,imageRendering:"image-rendering",in:0,in2:0,intercept:0,k:0,k1:0,k2:0,k3:0,k4:0,kernelMatrix:"kernelMatrix",kernelUnitLength:"kernelUnitLength",kerning:0,keyPoints:"keyPoints",keySplines:"keySplines",keyTimes:"keyTimes",lengthAdjust:"lengthAdjust",letterSpacing:"letter-spacing",lightingColor:"lighting-color",limitingConeAngle:"limitingConeAngle",local:0,markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",markerHeight:"markerHeight",markerUnits:"markerUnits",markerWidth:"markerWidth",mask:0,maskContentUnits:"maskContentUnits",maskUnits:"maskUnits",mathematical:0,mode:0,numOctaves:"numOctaves",offset:0,opacity:0,operator:0,order:0,orient:0,orientation:0,origin:0,overflow:0,overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pathLength:"pathLength",patternContentUnits:"patternContentUnits",patternTransform:"patternTransform",patternUnits:"patternUnits",pointerEvents:"pointer-events",points:0,pointsAtX:"pointsAtX",pointsAtY:"pointsAtY",pointsAtZ:"pointsAtZ",preserveAlpha:"preserveAlpha",preserveAspectRatio:"preserveAspectRatio",primitiveUnits:"primitiveUnits",r:0,radius:0,refX:"refX",refY:"refY",renderingIntent:"rendering-intent",repeatCount:"repeatCount",repeatDur:"repeatDur",requiredExtensions:"requiredExtensions",requiredFeatures:"requiredFeatures",restart:0,result:0,rotate:0,rx:0,ry:0,scale:0,seed:0,shapeRendering:"shape-rendering",slope:0,spacing:0,specularConstant:"specularConstant",specularExponent:"specularExponent",speed:0,spreadMethod:"spreadMethod",startOffset:"startOffset",stdDeviation:"stdDeviation",stemh:0,stemv:0,stitchTiles:"stitchTiles",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",string:0,stroke:0,strokeDasharray:"stroke-dasharray",strokeDashoffset:"stroke-dashoffset",strokeLinecap:"stroke-linecap",strokeLinejoin:"stroke-linejoin",strokeMiterlimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",surfaceScale:"surfaceScale",systemLanguage:"systemLanguage",tableValues:"tableValues",targetX:"targetX",targetY:"targetY",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",textLength:"textLength",to:0,transform:0,u1:0,u2:0,underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicode:0,unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",values:0,vectorEffect:"vector-effect",version:0,vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",viewBox:"viewBox",viewTarget:"viewTarget",visibility:0,widths:0,wordSpacing:"word-spacing",writingMode:"writing-mode",x:0,xHeight:"x-height",x1:0,x2:0,xChannelSelector:"xChannelSelector",xlinkActuate:"xlink:actuate",xlinkArcrole:"xlink:arcrole",xlinkHref:"xlink:href",xlinkRole:"xlink:role",xlinkShow:"xlink:show",xlinkTitle:"xlink:title",xlinkType:"xlink:type",xmlBase:"xml:base",xmlns:0,xmlnsXlink:"xmlns:xlink",xmlLang:"xml:lang",xmlSpace:"xml:space",y:0,y1:0,y2:0,yChannelSelector:"yChannelSelector",z:0,zoomAndPan:"zoomAndPan"},i={Properties:{},DOMAttributeNamespaces:{xlinkActuate:r.xlink,xlinkArcrole:r.xlink,xlinkHref:r.xlink,xlinkRole:r.xlink,xlinkShow:r.xlink,xlinkTitle:r.xlink,xlinkType:r.xlink,xmlBase:r.xml,xmlLang:r.xml,xmlSpace:r.xml},DOMAttributeNames:{}};Object.keys(o).forEach(function(e){i.Properties[e]=0,o[e]&&(i.DOMAttributeNames[e]=o[e])}),t.exports=i},{}],75:[function(e,t,n){"use strict";function r(e){if("selectionStart"in e&&l.hasSelectionCapabilities(e))return{start:e.selectionStart,end:e.selectionEnd};if(window.getSelection){var t=window.getSelection();return{anchorNode:t.anchorNode,anchorOffset:t.anchorOffset,focusNode:t.focusNode,focusOffset:t.focusOffset}}if(document.selection){var n=document.selection.createRange();return{parentElement:n.parentElement(),text:n.text,top:n.boundingTop,left:n.boundingLeft}}}function o(e,t){if(C||null==g||g!==p())return null;var n=r(g);if(!_||!f(_,n)){_=n;var o=c.getPooled(v.select,y,e,t);return o.type="select",o.target=g,i.accumulateTwoPhaseDispatches(o),o}return null}var i=e(19),a=e(126),s=e(24),u=e(34),l=e(57),c=e(81),p=e(135),d=e(114),f=e(144),h=11,m=a.canUseDOM&&"documentMode"in document&&document.documentMode<=11,v={select:{phasedRegistrationNames:{bubbled:"onSelect", -captured:"onSelectCapture"},dependencies:["topBlur","topContextMenu","topFocus","topKeyDown","topKeyUp","topMouseDown","topMouseUp","topSelectionChange"]}},g=null,y=null,_=null,C=!1,b=s.isListeningToAllDependencies,E={eventTypes:v,extractEvents:function(e,t,n,r){if(t){var i=t._hostContainerInfo,a=i._node&&i._node.nodeType===h,s=a?i._node:i._ownerDocument;if(!b("onSelect",s))return null}var l=t?u.getNodeFromInstance(t):window;switch(e){case"topFocus":(d(l)||"true"===l.contentEditable)&&(g=l,y=t,_=null);break;case"topBlur":g=null,y=null,_=null;break;case"topMouseDown":C=!0;break;case"topContextMenu":case"topMouseUp":return C=!1,o(n,r);case"topSelectionChange":if(m)break;case"topKeyDown":case"topKeyUp":return o(n,r)}return null}};t.exports=E},{114:114,126:126,135:135,144:144,19:19,24:24,34:34,57:57,81:81}],76:[function(e,t,n){"use strict";function r(e){return"button"===e||"input"===e||"select"===e||"textarea"===e}function o(e){if(e){var t=e._currentElement&&e._currentElement.props.disabled;if(t)return r(e._tag)}return!1}var i=e(116),a=e(19),s=e(77),u=e(78),l=e(81),c=e(82),p=e(84),d=e(85),f=e(80),h=e(86),m=e(87),v=e(88),g=e(89),y=e(101),_=(e(140),{}),C={};["abort","animationEnd","animationIteration","animationStart","blur","canPlay","canPlayThrough","click","contextMenu","copy","cut","doubleClick","drag","dragEnd","dragEnter","dragExit","dragLeave","dragOver","dragStart","drop","durationChange","emptied","encrypted","ended","error","focus","input","invalid","keyDown","keyPress","keyUp","load","loadedData","loadedMetadata","loadStart","mouseDown","mouseMove","mouseOut","mouseOver","mouseUp","paste","pause","play","playing","progress","rateChange","reset","scroll","seeked","seeking","stalled","submit","suspend","timeUpdate","touchCancel","touchEnd","touchMove","touchStart","transitionEnd","volumeChange","waiting","wheel"].forEach(function(e){var t=e[0].toUpperCase()+e.slice(1),n="on"+t,r="top"+t,o={phasedRegistrationNames:{bubbled:n,captured:n+"Capture"},dependencies:[r]};_[e]=o,C[r]=o});var b={eventTypes:_,extractEvents:function(e,t,n,r){var _=C[e];if(!_)return null;var b;switch(e){case"topAbort":case"topCanPlay":case"topCanPlayThrough":case"topDurationChange":case"topEmptied":case"topEncrypted":case"topEnded":case"topError":case"topInput":case"topInvalid":case"topLoad":case"topLoadedData":case"topLoadedMetadata":case"topLoadStart":case"topPause":case"topPlay":case"topPlaying":case"topProgress":case"topRateChange":case"topReset":case"topSeeked":case"topSeeking":case"topStalled":case"topSubmit":case"topSuspend":case"topTimeUpdate":case"topVolumeChange":case"topWaiting":b=l;break;case"topKeyPress":if(0===y(n))return null;case"topKeyDown":case"topKeyUp":b=p;break;case"topBlur":case"topFocus":b=c;break;case"topClick":if(2===n.button)return null;case"topDoubleClick":case"topMouseDown":case"topMouseMove":case"topMouseUp":if(o(t))return null;case"topMouseOut":case"topMouseOver":case"topContextMenu":b=d;break;case"topDrag":case"topDragEnd":case"topDragEnter":case"topDragExit":case"topDragLeave":case"topDragOver":case"topDragStart":case"topDrop":b=f;break;case"topTouchCancel":case"topTouchEnd":case"topTouchMove":case"topTouchStart":b=h;break;case"topAnimationEnd":case"topAnimationIteration":case"topAnimationStart":b=s;break;case"topTransitionEnd":b=m;break;case"topScroll":b=v;break;case"topWheel":b=g;break;case"topCopy":case"topCut":case"topPaste":b=u}b?void 0:i("86",e);var E=b.getPooled(_,t,n,r);return a.accumulateTwoPhaseDispatches(E),E}};t.exports=b},{101:101,116:116,140:140,19:19,77:77,78:78,80:80,81:81,82:82,84:84,85:85,86:86,87:87,88:88,89:89}],77:[function(e,t,n){"use strict";function r(e,t,n,r){return o.call(this,e,t,n,r)}var o=e(81),i={animationName:null,elapsedTime:null,pseudoElement:null};o.augmentClass(r,i),t.exports=r},{81:81}],78:[function(e,t,n){"use strict";function r(e,t,n,r){return o.call(this,e,t,n,r)}var o=e(81),i={clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}};o.augmentClass(r,i),t.exports=r},{81:81}],79:[function(e,t,n){"use strict";function r(e,t,n,r){return o.call(this,e,t,n,r)}var o=e(81),i={data:null};o.augmentClass(r,i),t.exports=r},{81:81}],80:[function(e,t,n){"use strict";function r(e,t,n,r){return o.call(this,e,t,n,r)}var o=e(85),i={dataTransfer:null};o.augmentClass(r,i),t.exports=r},{85:85}],81:[function(e,t,n){"use strict";function r(e,t,n,r){this.dispatchConfig=e,this._targetInst=t,this.nativeEvent=n;var o=this.constructor.Interface;for(var i in o)if(o.hasOwnProperty(i)){var s=o[i];s?this[i]=s(n):"target"===i?this.target=r:this[i]=n[i]}var u=null!=n.defaultPrevented?n.defaultPrevented:n.returnValue===!1;return u?this.isDefaultPrevented=a.thatReturnsTrue:this.isDefaultPrevented=a.thatReturnsFalse,this.isPropagationStopped=a.thatReturnsFalse,this}var o=e(146),i=e(23),a=e(132),s=(e(145),"function"==typeof Proxy,["dispatchConfig","_targetInst","nativeEvent","isDefaultPrevented","isPropagationStopped","_dispatchListeners","_dispatchInstances"]),u={type:null,target:null,currentTarget:a.thatReturnsNull,eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null};o(r.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=a.thatReturnsTrue)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=a.thatReturnsTrue)},persist:function(){this.isPersistent=a.thatReturnsTrue},isPersistent:a.thatReturnsFalse,destructor:function(){var e=this.constructor.Interface;for(var t in e)this[t]=null;for(var n=0;n<s.length;n++)this[s[n]]=null}}),r.Interface=u,r.augmentClass=function(e,t){var n=this,r=function(){};r.prototype=n.prototype;var a=new r;o(a,e.prototype),e.prototype=a,e.prototype.constructor=e,e.Interface=o({},n.Interface,t),e.augmentClass=n.augmentClass,i.addPoolingTo(e,i.fourArgumentPooler)},i.addPoolingTo(r,i.fourArgumentPooler),t.exports=r},{132:132,145:145,146:146,23:23}],82:[function(e,t,n){"use strict";function r(e,t,n,r){return o.call(this,e,t,n,r)}var o=e(88),i={relatedTarget:null};o.augmentClass(r,i),t.exports=r},{88:88}],83:[function(e,t,n){"use strict";function r(e,t,n,r){return o.call(this,e,t,n,r)}var o=e(81),i={data:null};o.augmentClass(r,i),t.exports=r},{81:81}],84:[function(e,t,n){"use strict";function r(e,t,n,r){return o.call(this,e,t,n,r)}var o=e(88),i=e(101),a=e(102),s=e(103),u={key:a,location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:s,charCode:function(e){return"keypress"===e.type?i(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?i(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}};o.augmentClass(r,u),t.exports=r},{101:101,102:102,103:103,88:88}],85:[function(e,t,n){"use strict";function r(e,t,n,r){return o.call(this,e,t,n,r)}var o=e(88),i=e(91),a=e(103),s={screenX:null,screenY:null,clientX:null,clientY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:a,button:function(e){var t=e.button;return"which"in e?t:2===t?2:4===t?1:0},buttons:null,relatedTarget:function(e){return e.relatedTarget||(e.fromElement===e.srcElement?e.toElement:e.fromElement)},pageX:function(e){return"pageX"in e?e.pageX:e.clientX+i.currentScrollLeft},pageY:function(e){return"pageY"in e?e.pageY:e.clientY+i.currentScrollTop}};o.augmentClass(r,s),t.exports=r},{103:103,88:88,91:91}],86:[function(e,t,n){"use strict";function r(e,t,n,r){return o.call(this,e,t,n,r)}var o=e(88),i=e(103),a={touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:i};o.augmentClass(r,a),t.exports=r},{103:103,88:88}],87:[function(e,t,n){"use strict";function r(e,t,n,r){return o.call(this,e,t,n,r)}var o=e(81),i={propertyName:null,elapsedTime:null,pseudoElement:null};o.augmentClass(r,i),t.exports=r},{81:81}],88:[function(e,t,n){"use strict";function r(e,t,n,r){return o.call(this,e,t,n,r)}var o=e(81),i=e(104),a={view:function(e){if(e.view)return e.view;var t=i(e);if(t.window===t)return t;var n=t.ownerDocument;return n?n.defaultView||n.parentWindow:window},detail:function(e){return e.detail||0}};o.augmentClass(r,a),t.exports=r},{104:104,81:81}],89:[function(e,t,n){"use strict";function r(e,t,n,r){return o.call(this,e,t,n,r)}var o=e(85),i={deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:null,deltaMode:null};o.augmentClass(r,i),t.exports=r},{85:85}],90:[function(e,t,n){"use strict";var r=e(116),o=(e(140),{}),i={reinitializeTransaction:function(){this.transactionWrappers=this.getTransactionWrappers(),this.wrapperInitData?this.wrapperInitData.length=0:this.wrapperInitData=[],this._isInTransaction=!1},_isInTransaction:!1,getTransactionWrappers:null,isInTransaction:function(){return!!this._isInTransaction},perform:function(e,t,n,o,i,a,s,u){this.isInTransaction()?r("27"):void 0;var l,c;try{this._isInTransaction=!0,l=!0,this.initializeAll(0),c=e.call(t,n,o,i,a,s,u),l=!1}finally{try{if(l)try{this.closeAll(0)}catch(e){}else this.closeAll(0)}finally{this._isInTransaction=!1}}return c},initializeAll:function(e){for(var t=this.transactionWrappers,n=e;n<t.length;n++){var r=t[n];try{this.wrapperInitData[n]=o,this.wrapperInitData[n]=r.initialize?r.initialize.call(this):null}finally{if(this.wrapperInitData[n]===o)try{this.initializeAll(n+1)}catch(e){}}}},closeAll:function(e){this.isInTransaction()?void 0:r("28");for(var t=this.transactionWrappers,n=e;n<t.length;n++){var i,a=t[n],s=this.wrapperInitData[n];try{i=!0,s!==o&&a.close&&a.close.call(this,s),i=!1}finally{if(i)try{this.closeAll(n+1)}catch(e){}}}this.wrapperInitData.length=0}};t.exports=i},{116:116,140:140}],91:[function(e,t,n){"use strict";var r={currentScrollLeft:0,currentScrollTop:0,refreshScrollValues:function(e){r.currentScrollLeft=e.x,r.currentScrollTop=e.y}};t.exports=r},{}],92:[function(e,t,n){"use strict";function r(e,t){return null==t?o("30"):void 0,null==e?t:Array.isArray(e)?Array.isArray(t)?(e.push.apply(e,t),e):(e.push(t),e):Array.isArray(t)?[e].concat(t):[e,t]}var o=e(116);e(140);t.exports=r},{116:116,140:140}],93:[function(e,t,n){"use strict";function r(e){for(var t=1,n=0,r=0,i=e.length,a=i&-4;r<a;){for(var s=Math.min(r+4096,a);r<s;r+=4)n+=(t+=e.charCodeAt(r))+(t+=e.charCodeAt(r+1))+(t+=e.charCodeAt(r+2))+(t+=e.charCodeAt(r+3));t%=o,n%=o}for(;r<i;r++)n+=t+=e.charCodeAt(r);return t%=o,n%=o,t|n<<16}var o=65521;t.exports=r},{}],94:[function(e,t,n){"use strict";var r=function(e){return"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(t,n,r,o){MSApp.execUnsafeLocalFunction(function(){return e(t,n,r,o)})}:e};t.exports=r},{}],95:[function(e,t,n){"use strict";function r(e,t,n){var r=null==t||"boolean"==typeof t||""===t;return r?"":"number"!=typeof t||0===t||i.hasOwnProperty(e)&&i[e]?(""+t).trim():t+"px"}var o=e(4),i=o.isUnitlessNumber;t.exports=r},{4:4}],96:[function(e,t,n){"use strict";function r(e){var t=""+e,n=i.exec(t);if(!n)return t;var r,o="",a=0,s=0;for(a=n.index;a<t.length;a++){switch(t.charCodeAt(a)){case 34:r=""";break;case 38:r="&";break;case 39:r="'";break;case 60:r="<";break;case 62:r=">";break;default:continue}s!==a&&(o+=t.substring(s,a)),s=a+1,o+=r}return s!==a?o+t.substring(s,a):o}function o(e){return"boolean"==typeof e||"number"==typeof e?""+e:r(e)}var i=/["'&<>]/;t.exports=o},{}],97:[function(e,t,n){"use strict";function r(e){if(null==e)return null;if(1===e.nodeType)return e;var t=a.get(e);return t?(t=s(t),t?i.getNodeFromInstance(t):null):void("function"==typeof e.render?o("44"):o("45",Object.keys(e)))}var o=e(116),i=(e(123),e(34)),a=e(58),s=e(105);e(140),e(145);t.exports=r},{105:105,116:116,123:123,140:140,145:145,34:34,58:58}],98:[function(e,t,n){(function(n){"use strict";function r(e,t,n,r){if(e&&"object"==typeof e){var o=e,i=void 0===o[n];i&&null!=t&&(o[n]=t)}}function o(e,t){if(null==e)return e;var n={};return i(e,r,n),n}var i=(e(22),e(121));e(145);"undefined"!=typeof n&&n.env,t.exports=o}).call(this,void 0)},{121:121,145:145,22:22}],99:[function(e,t,n){"use strict";function r(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)}t.exports=r},{}],100:[function(e,t,n){"use strict";function r(e){return null}t.exports=r},{}],101:[function(e,t,n){"use strict";function r(e){var t,n=e.keyCode;return"charCode"in e?(t=e.charCode,0===t&&13===n&&(t=13)):t=n,t>=32||13===t?t:0}t.exports=r},{}],102:[function(e,t,n){"use strict";function r(e){if(e.key){var t=i[e.key]||e.key;if("Unidentified"!==t)return t}if("keypress"===e.type){var n=o(e);return 13===n?"Enter":String.fromCharCode(n)}return"keydown"===e.type||"keyup"===e.type?a[e.keyCode]||"Unidentified":""}var o=e(101),i={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},a={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"};t.exports=r},{101:101}],103:[function(e,t,n){"use strict";function r(e){var t=this,n=t.nativeEvent;if(n.getModifierState)return n.getModifierState(e);var r=i[e];return!!r&&!!n[r]}function o(e){return r}var i={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};t.exports=o},{}],104:[function(e,t,n){"use strict";function r(e){var t=e.target||e.srcElement||window;return t.correspondingUseElement&&(t=t.correspondingUseElement),3===t.nodeType?t.parentNode:t}t.exports=r},{}],105:[function(e,t,n){"use strict";function r(e){for(var t;(t=e._renderedNodeType)===o.COMPOSITE;)e=e._renderedComponent;return t===o.HOST?e._renderedComponent:t===o.EMPTY?null:void 0}var o=e(63);t.exports=r},{63:63}],106:[function(e,t,n){"use strict";function r(e){var t=e&&(o&&e[o]||e[i]);if("function"==typeof t)return t}var o="function"==typeof Symbol&&Symbol.iterator,i="@@iterator";t.exports=r},{}],107:[function(e,t,n){"use strict";function r(){return o++}var o=1;t.exports=r},{}],108:[function(e,t,n){"use strict";function r(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function o(e){for(;e;){if(e.nextSibling)return e.nextSibling;e=e.parentNode}}function i(e,t){for(var n=r(e),i=0,a=0;n;){if(3===n.nodeType){if(a=i+n.textContent.length,i<=t&&a>=t)return{node:n,offset:t-i};i=a}n=r(o(n))}}t.exports=i},{}],109:[function(e,t,n){"use strict";function r(){return!i&&o.canUseDOM&&(i="textContent"in document.documentElement?"textContent":"innerText"),i}var o=e(126),i=null;t.exports=r},{126:126}],110:[function(e,t,n){"use strict";function r(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n["ms"+e]="MS"+t,n["O"+e]="o"+t.toLowerCase(),n}function o(e){if(s[e])return s[e];if(!a[e])return e;var t=a[e];for(var n in t)if(t.hasOwnProperty(n)&&n in u)return s[e]=t[n];return""}var i=e(126),a={animationend:r("Animation","AnimationEnd"),animationiteration:r("Animation","AnimationIteration"),animationstart:r("Animation","AnimationStart"),transitionend:r("Transition","TransitionEnd")},s={},u={};i.canUseDOM&&(u=document.createElement("div").style,"AnimationEvent"in window||(delete a.animationend.animation,delete a.animationiteration.animation,delete a.animationstart.animation),"TransitionEvent"in window||delete a.transitionend.transition),t.exports=o},{126:126}],111:[function(e,t,n){"use strict";function r(e){var t=e.type,n=e.nodeName;return n&&"input"===n.toLowerCase()&&("checkbox"===t||"radio"===t)}function o(e){return e._wrapperState.valueTracker}function i(e,t){e._wrapperState.valueTracker=t}function a(e){delete e._wrapperState.valueTracker}function s(e){var t;return e&&(t=r(e)?""+e.checked:e.value),t}var u=e(34),l={_getTrackerFromNode:function(e){return o(u.getInstanceFromNode(e))},track:function(e){if(!o(e)){var t=u.getNodeFromInstance(e),n=r(t)?"checked":"value",s=Object.getOwnPropertyDescriptor(t.constructor.prototype,n),l=""+t[n];t.hasOwnProperty(n)||"function"!=typeof s.get||"function"!=typeof s.set||(Object.defineProperty(t,n,{enumerable:s.enumerable,configurable:!0,get:function(){return s.get.call(this)},set:function(e){l=""+e,s.set.call(this,e)}}),i(e,{getValue:function(){return l},setValue:function(e){l=""+e},stopTracking:function(){a(e),delete t[n]}}))}},updateValueIfChanged:function(e){if(!e)return!1;var t=o(e);if(!t)return l.track(e),!0;var n=t.getValue(),r=s(u.getNodeFromInstance(e));return r!==n&&(t.setValue(r),!0)},stopTracking:function(e){var t=o(e);t&&t.stopTracking()}};t.exports=l},{34:34}],112:[function(e,t,n){"use strict";function r(e){if(e){var t=e.getName();if(t)return" Check the render method of `"+t+"`."}return""}function o(e){return"function"==typeof e&&"undefined"!=typeof e.prototype&&"function"==typeof e.prototype.mountComponent&&"function"==typeof e.prototype.receiveComponent}function i(e,t){var n;if(null===e||e===!1)n=l.create(i);else if("object"==typeof e){var s=e;!s||"function"!=typeof s.type&&"string"!=typeof s.type?a("130",null==s.type?s.type:typeof s.type,r(s._owner)):void 0,"string"==typeof s.type?n=c.createInternalComponent(s):o(s.type)?(n=new s.type(s),n.getHostNode||(n.getHostNode=n.getNativeNode)):n=new p(s)}else"string"==typeof e||"number"==typeof e?n=c.createInstanceForText(e):a("131",typeof e);return n._mountIndex=0,n._mountImage=null,n}var a=e(116),s=e(146),u=e(28),l=e(50),c=e(56),p=(e(107),e(140),e(145),function(e){this.construct(e)});s(p.prototype,u,{_instantiateReactComponent:i}),t.exports=i},{107:107,116:116,140:140,145:145,146:146,28:28,50:50,56:56}],113:[function(e,t,n){"use strict";function r(e,t){if(!i.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,r=n in document;if(!r){var a=document.createElement("div");a.setAttribute(n,"return;"),r="function"==typeof a[n]}return!r&&o&&"wheel"===e&&(r=document.implementation.hasFeature("Events.wheel","3.0")),r}var o,i=e(126);i.canUseDOM&&(o=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0),t.exports=r},{126:126}],114:[function(e,t,n){"use strict";function r(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!o[e.type]:"textarea"===t}var o={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};t.exports=r},{}],115:[function(e,t,n){"use strict";function r(e){return'"'+o(e)+'"'}var o=e(96);t.exports=r},{96:96}],116:[function(e,t,n){"use strict";function r(e){for(var t=arguments.length-1,n="Minified React error #"+e+"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant="+e,r=0;r<t;r++)n+="&args[]="+encodeURIComponent(arguments[r+1]);n+=" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.";var o=new Error(n);throw o.name="Invariant Violation",o.framesToPop=1,o}t.exports=r},{}],117:[function(e,t,n){"use strict";var r=e(61);t.exports=r.renderSubtreeIntoContainer},{61:61}],118:[function(e,t,n){"use strict";var r,o=e(126),i=e(11),a=/^[ \r\n\t\f]/,s=/<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/,u=e(94),l=u(function(e,t){if(e.namespaceURI!==i.svg||"innerHTML"in e)e.innerHTML=t;else{r=r||document.createElement("div"),r.innerHTML="<svg>"+t+"</svg>";for(var n=r.firstChild;n.firstChild;)e.appendChild(n.firstChild)}});if(o.canUseDOM){var c=document.createElement("div");c.innerHTML=" ",""===c.innerHTML&&(l=function(e,t){if(e.parentNode&&e.parentNode.replaceChild(e,e),a.test(t)||"<"===t[0]&&s.test(t)){e.innerHTML=String.fromCharCode(65279)+t;var n=e.firstChild;1===n.data.length?e.removeChild(n):n.deleteData(0,1)}else e.innerHTML=t}),c=null}t.exports=l},{11:11,126:126,94:94}],119:[function(e,t,n){"use strict";var r=e(126),o=e(96),i=e(118),a=function(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t};r.canUseDOM&&("textContent"in document.documentElement||(a=function(e,t){return 3===e.nodeType?void(e.nodeValue=t):void i(e,o(t))})),t.exports=a},{118:118,126:126,96:96}],120:[function(e,t,n){"use strict";function r(e,t){var n=null===e||e===!1,r=null===t||t===!1;if(n||r)return n===r;var o=typeof e,i=typeof t;return"string"===o||"number"===o?"string"===i||"number"===i:"object"===i&&e.type===t.type&&e.key===t.key}t.exports=r},{}],121:[function(e,t,n){"use strict";function r(e,t){return e&&"object"==typeof e&&null!=e.key?l.escape(e.key):t.toString(36)}function o(e,t,n,i){var d=typeof e;if("undefined"!==d&&"boolean"!==d||(e=null),null===e||"string"===d||"number"===d||"object"===d&&e.$$typeof===s)return n(i,e,""===t?c+r(e,0):t),1;var f,h,m=0,v=""===t?c:t+p;if(Array.isArray(e))for(var g=0;g<e.length;g++)f=e[g],h=v+r(f,g),m+=o(f,h,n,i);else{var y=u(e);if(y){var _,C=y.call(e);if(y!==e.entries)for(var b=0;!(_=C.next()).done;)f=_.value,h=v+r(f,b++),m+=o(f,h,n,i);else for(;!(_=C.next()).done;){var E=_.value;E&&(f=E[1],h=v+l.escape(E[0])+p+r(f,0),m+=o(f,h,n,i))}}else if("object"===d){var x="",T=String(e);a("31","[object Object]"===T?"object with keys {"+Object.keys(e).join(", ")+"}":T,x)}}return m}function i(e,t,n){return null==e?0:o(e,"",t,n)}var a=e(116),s=(e(123),e(49)),u=e(106),l=(e(140),e(22)),c=(e(145),"."),p=":";t.exports=i},{106:106,116:116,123:123,140:140,145:145,22:22,49:49}],122:[function(e,t,n){"use strict";var r=(e(146),e(132)),o=(e(100),e(145),r);t.exports=o},{100:100,132:132,145:145,146:146}],123:[function(t,n,r){"use strict";var o=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;n.exports=o.ReactCurrentOwner},{}],124:[function(t,n,r){"use strict";n.exports=e},{}],125:[function(e,t,n){"use strict";var r=e(132),o={listen:function(e,t,n){return e.addEventListener?(e.addEventListener(t,n,!1),{remove:function(){e.removeEventListener(t,n,!1)}}):e.attachEvent?(e.attachEvent("on"+t,n),{remove:function(){e.detachEvent("on"+t,n)}}):void 0},capture:function(e,t,n){return e.addEventListener?(e.addEventListener(t,n,!0),{remove:function(){e.removeEventListener(t,n,!0)}}):{remove:r}},registerDefault:function(){}};t.exports=o},{132:132}],126:[function(e,t,n){"use strict";var r=!("undefined"==typeof window||!window.document||!window.document.createElement),o={canUseDOM:r,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:r&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:r&&!!window.screen,isInWorker:!r};t.exports=o},{}],127:[function(e,t,n){"use strict";function r(e){return e.replace(o,function(e,t){return t.toUpperCase()})}var o=/-(.)/g;t.exports=r},{}],128:[function(e,t,n){"use strict";function r(e){return o(e.replace(i,"ms-"))}var o=e(127),i=/^-ms-/;t.exports=r},{127:127}],129:[function(e,t,n){"use strict";function r(e,t){return!(!e||!t)&&(e===t||!o(e)&&(o(t)?r(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}var o=e(142);t.exports=r},{142:142}],130:[function(e,t,n){"use strict";function r(e){var t=e.length;if(Array.isArray(e)||"object"!=typeof e&&"function"!=typeof e?a(!1):void 0,"number"!=typeof t?a(!1):void 0,0===t||t-1 in e?void 0:a(!1),"function"==typeof e.callee?a(!1):void 0,e.hasOwnProperty)try{return Array.prototype.slice.call(e)}catch(e){}for(var n=Array(t),r=0;r<t;r++)n[r]=e[r];return n}function o(e){return!!e&&("object"==typeof e||"function"==typeof e)&&"length"in e&&!("setInterval"in e)&&"number"!=typeof e.nodeType&&(Array.isArray(e)||"callee"in e||"item"in e)}function i(e){return o(e)?Array.isArray(e)?e.slice():r(e):[e]}var a=e(140);t.exports=i},{140:140}],131:[function(e,t,n){"use strict";function r(e){var t=e.match(c);return t&&t[1].toLowerCase()}function o(e,t){var n=l;l?void 0:u(!1);var o=r(e),i=o&&s(o);if(i){n.innerHTML=i[1]+e+i[2];for(var c=i[0];c--;)n=n.lastChild}else n.innerHTML=e;var p=n.getElementsByTagName("script");p.length&&(t?void 0:u(!1),a(p).forEach(t));for(var d=Array.from(n.childNodes);n.lastChild;)n.removeChild(n.lastChild);return d}var i=e(126),a=e(130),s=e(136),u=e(140),l=i.canUseDOM?document.createElement("div"):null,c=/^\s*<(\w+)/;t.exports=o},{126:126,130:130,136:136,140:140}],132:[function(e,t,n){"use strict";function r(e){return function(){return e}}var o=function(){};o.thatReturns=r,o.thatReturnsFalse=r(!1),o.thatReturnsTrue=r(!0),o.thatReturnsNull=r(null),o.thatReturnsThis=function(){return this},o.thatReturnsArgument=function(e){return e},t.exports=o},{}],133:[function(e,t,n){"use strict";var r={};t.exports=r},{}],134:[function(e,t,n){"use strict";function r(e){try{e.focus()}catch(e){}}t.exports=r},{}],135:[function(e,t,n){"use strict";function r(){if("undefined"==typeof document)return null;try{return document.activeElement||document.body}catch(e){return document.body}}t.exports=r},{}],136:[function(e,t,n){"use strict";function r(e){return a?void 0:i(!1),d.hasOwnProperty(e)||(e="*"),s.hasOwnProperty(e)||("*"===e?a.innerHTML="<link />":a.innerHTML="<"+e+"></"+e+">",s[e]=!a.firstChild),s[e]?d[e]:null}var o=e(126),i=e(140),a=o.canUseDOM?document.createElement("div"):null,s={},u=[1,'<select multiple="true">',"</select>"],l=[1,"<table>","</table>"],c=[3,"<table><tbody><tr>","</tr></tbody></table>"],p=[1,'<svg xmlns="http://www.w3.org/2000/svg">',"</svg>"],d={"*":[1,"?<div>","</div>"],area:[1,"<map>","</map>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],legend:[1,"<fieldset>","</fieldset>"],param:[1,"<object>","</object>"],tr:[2,"<table><tbody>","</tbody></table>"],optgroup:u,option:u,caption:l,colgroup:l,tbody:l,tfoot:l,thead:l,td:c,th:c},f=["circle","clipPath","defs","ellipse","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","text","tspan"];f.forEach(function(e){d[e]=p,s[e]=!0}),t.exports=r},{126:126,140:140}],137:[function(e,t,n){"use strict";function r(e){return e===window?{x:window.pageXOffset||document.documentElement.scrollLeft,y:window.pageYOffset||document.documentElement.scrollTop}:{x:e.scrollLeft,y:e.scrollTop}}t.exports=r},{}],138:[function(e,t,n){"use strict";function r(e){return e.replace(o,"-$1").toLowerCase()}var o=/([A-Z])/g;t.exports=r},{}],139:[function(e,t,n){"use strict";function r(e){return o(e).replace(i,"-ms-")}var o=e(138),i=/^ms-/;t.exports=r},{138:138}],140:[function(e,t,n){"use strict";function r(e,t,n,r,o,i,a,s){if(!e){var u;if(void 0===t)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,o,i,a,s],c=0;u=new Error(t.replace(/%s/g,function(){return l[c++]})),u.name="Invariant Violation"}throw u.framesToPop=1,u}}t.exports=r},{}],141:[function(e,t,n){"use strict";function r(e){return!(!e||!("function"==typeof Node?e instanceof Node:"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName))}t.exports=r},{}],142:[function(e,t,n){"use strict";function r(e){return o(e)&&3==e.nodeType}var o=e(141);t.exports=r},{141:141}],143:[function(e,t,n){"use strict";function r(e){var t={};return function(n){return t.hasOwnProperty(n)||(t[n]=e.call(this,n)),t[n]}}t.exports=r},{}],144:[function(e,t,n){"use strict";function r(e,t){return e===t?0!==e||0!==t||1/e===1/t:e!==e&&t!==t}function o(e,t){if(r(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),o=Object.keys(t);if(n.length!==o.length)return!1;for(var a=0;a<n.length;a++)if(!i.call(t,n[a])||!r(e[n[a]],t[n[a]]))return!1;return!0}var i=Object.prototype.hasOwnProperty;t.exports=o},{}],145:[function(e,t,n){"use strict";var r=e(132),o=r;t.exports=o},{132:132}],146:[function(e,t,n){"use strict";function r(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function o(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;var r=Object.getOwnPropertyNames(t).map(function(e){return t[e]});if("0123456789"!==r.join(""))return!1;var o={};return"abcdefghijklmnopqrst".split("").forEach(function(e){o[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},o)).join("")}catch(e){return!1}}var i=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;t.exports=o()?Object.assign:function(e,t){for(var n,o,s=r(e),u=1;u<arguments.length;u++){n=Object(arguments[u]);for(var l in n)i.call(n,l)&&(s[l]=n[l]);if(Object.getOwnPropertySymbols){o=Object.getOwnPropertySymbols(n);for(var c=0;c<o.length;c++)a.call(n,o[c])&&(s[o[c]]=n[o[c]])}}return s}},{}]},{},[47])(47)})});
\ No newline at end of file diff --git a/src/vendor/react.dev.js b/src/vendor/react.dev.js deleted file mode 100644 index 55264d350..000000000 --- a/src/vendor/react.dev.js +++ /dev/null @@ -1,3783 +0,0 @@ - /** - * React v16.0.0-alpha - */ -(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.React = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -'use strict'; - -/** - * Escape and wrap key so it is safe to use as a reactid - * - * @param {string} key to be escaped. - * @return {string} the escaped key. - */ - -function escape(key) { - var escapeRegex = /[=:]/g; - var escaperLookup = { - '=': '=0', - ':': '=2' - }; - var escapedString = ('' + key).replace(escapeRegex, function (match) { - return escaperLookup[match]; - }); - - return '$' + escapedString; -} - -/** - * Unescape and unwrap key for human-readable display - * - * @param {string} key to unescape. - * @return {string} the unescaped key. - */ -function unescape(key) { - var unescapeRegex = /(=0|=2)/g; - var unescaperLookup = { - '=0': '=', - '=2': ':' - }; - var keySubstring = key[0] === '.' && key[1] === '$' ? key.substring(2) : key.substring(1); - - return ('' + keySubstring).replace(unescapeRegex, function (match) { - return unescaperLookup[match]; - }); -} - -var KeyEscapeUtils = { - escape: escape, - unescape: unescape -}; - -module.exports = KeyEscapeUtils; -},{}],2:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -'use strict'; - -var _prodInvariant = _dereq_(24); - -var invariant = _dereq_(28); - -/** - * Static poolers. Several custom versions for each potential number of - * arguments. A completely generic pooler is easy to implement, but would - * require accessing the `arguments` object. In each of these, `this` refers to - * the Class itself, not an instance. If any others are needed, simply add them - * here, or in their own files. - */ -var oneArgumentPooler = function (copyFieldsFrom) { - var Klass = this; - if (Klass.instancePool.length) { - var instance = Klass.instancePool.pop(); - Klass.call(instance, copyFieldsFrom); - return instance; - } else { - return new Klass(copyFieldsFrom); - } -}; - -var twoArgumentPooler = function (a1, a2) { - var Klass = this; - if (Klass.instancePool.length) { - var instance = Klass.instancePool.pop(); - Klass.call(instance, a1, a2); - return instance; - } else { - return new Klass(a1, a2); - } -}; - -var threeArgumentPooler = function (a1, a2, a3) { - var Klass = this; - if (Klass.instancePool.length) { - var instance = Klass.instancePool.pop(); - Klass.call(instance, a1, a2, a3); - return instance; - } else { - return new Klass(a1, a2, a3); - } -}; - -var fourArgumentPooler = function (a1, a2, a3, a4) { - var Klass = this; - if (Klass.instancePool.length) { - var instance = Klass.instancePool.pop(); - Klass.call(instance, a1, a2, a3, a4); - return instance; - } else { - return new Klass(a1, a2, a3, a4); - } -}; - -var fiveArgumentPooler = function (a1, a2, a3, a4, a5) { - var Klass = this; - if (Klass.instancePool.length) { - var instance = Klass.instancePool.pop(); - Klass.call(instance, a1, a2, a3, a4, a5); - return instance; - } else { - return new Klass(a1, a2, a3, a4, a5); - } -}; - -var standardReleaser = function (instance) { - var Klass = this; - !(instance instanceof Klass) ? "development" !== 'production' ? invariant(false, 'Trying to release an instance into a pool of a different type.') : _prodInvariant('25') : void 0; - instance.destructor(); - if (Klass.instancePool.length < Klass.poolSize) { - Klass.instancePool.push(instance); - } -}; - -var DEFAULT_POOL_SIZE = 10; -var DEFAULT_POOLER = oneArgumentPooler; - -/** - * Augments `CopyConstructor` to be a poolable class, augmenting only the class - * itself (statically) not adding any prototypical fields. Any CopyConstructor - * you give this may have a `poolSize` property, and will look for a - * prototypical `destructor` on instances. - * - * @param {Function} CopyConstructor Constructor that can be used to reset. - * @param {Function} pooler Customizable pooler. - */ -var addPoolingTo = function (CopyConstructor, pooler) { - // Casting as any so that flow ignores the actual implementation and trusts - // it to match the type we declared - var NewKlass = CopyConstructor; - NewKlass.instancePool = []; - NewKlass.getPooled = pooler || DEFAULT_POOLER; - if (!NewKlass.poolSize) { - NewKlass.poolSize = DEFAULT_POOL_SIZE; - } - NewKlass.release = standardReleaser; - return NewKlass; -}; - -var PooledClass = { - addPoolingTo: addPoolingTo, - oneArgumentPooler: oneArgumentPooler, - twoArgumentPooler: twoArgumentPooler, - threeArgumentPooler: threeArgumentPooler, - fourArgumentPooler: fourArgumentPooler, - fiveArgumentPooler: fiveArgumentPooler -}; - -module.exports = PooledClass; -},{"24":24,"28":28}],3:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _assign = _dereq_(30); - -var ReactChildren = _dereq_(4); -var ReactComponent = _dereq_(6); -var ReactPureComponent = _dereq_(16); -var ReactClass = _dereq_(5); -var ReactDOMFactories = _dereq_(9); -var ReactElement = _dereq_(10); -var ReactPropTypes = _dereq_(15); -var ReactVersion = _dereq_(18); - -var onlyChild = _dereq_(23); -var warning = _dereq_(29); - -var createElement = ReactElement.createElement; -var createFactory = ReactElement.createFactory; -var cloneElement = ReactElement.cloneElement; - -if ("development" !== 'production') { - var ReactElementValidator = _dereq_(12); - createElement = ReactElementValidator.createElement; - createFactory = ReactElementValidator.createFactory; - cloneElement = ReactElementValidator.cloneElement; -} - -var __spread = _assign; - -if ("development" !== 'production') { - var warned = false; - __spread = function () { - "development" !== 'production' ? warning(warned, 'React.__spread is deprecated and should not be used. Use ' + 'Object.assign directly or another helper function with similar ' + 'semantics. You may be seeing this warning due to your compiler. ' + 'See https://fb.me/react-spread-deprecation for more details.') : void 0; - warned = true; - return _assign.apply(null, arguments); - }; -} - -var React = { - - // Modern - - Children: { - map: ReactChildren.map, - forEach: ReactChildren.forEach, - count: ReactChildren.count, - toArray: ReactChildren.toArray, - only: onlyChild - }, - - Component: ReactComponent, - PureComponent: ReactPureComponent, - - createElement: createElement, - cloneElement: cloneElement, - isValidElement: ReactElement.isValidElement, - - // Classic - - PropTypes: ReactPropTypes, - createClass: ReactClass.createClass, - createFactory: createFactory, - createMixin: function (mixin) { - // Currently a noop. Will be used to validate and trace mixins. - return mixin; - }, - - // This looks DOM specific but these are actually isomorphic helpers - // since they are just generating DOM strings. - DOM: ReactDOMFactories, - - version: ReactVersion, - - // Deprecated hook for JSX spread, don't use this for anything. - __spread: __spread -}; - -module.exports = React; -},{"10":10,"12":12,"15":15,"16":16,"18":18,"23":23,"29":29,"30":30,"4":4,"5":5,"6":6,"9":9}],4:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var PooledClass = _dereq_(2); -var ReactElement = _dereq_(10); - -var emptyFunction = _dereq_(26); -var traverseAllChildren = _dereq_(25); - -var twoArgumentPooler = PooledClass.twoArgumentPooler; -var fourArgumentPooler = PooledClass.fourArgumentPooler; - -var userProvidedKeyEscapeRegex = /\/+/g; -function escapeUserProvidedKey(text) { - return ('' + text).replace(userProvidedKeyEscapeRegex, '$&/'); -} - -/** - * PooledClass representing the bookkeeping associated with performing a child - * traversal. Allows avoiding binding callbacks. - * - * @constructor ForEachBookKeeping - * @param {!function} forEachFunction Function to perform traversal with. - * @param {?*} forEachContext Context to perform context with. - */ -function ForEachBookKeeping(forEachFunction, forEachContext) { - this.func = forEachFunction; - this.context = forEachContext; - this.count = 0; -} -ForEachBookKeeping.prototype.destructor = function () { - this.func = null; - this.context = null; - this.count = 0; -}; -PooledClass.addPoolingTo(ForEachBookKeeping, twoArgumentPooler); - -function forEachSingleChild(bookKeeping, child, name) { - var func = bookKeeping.func; - var context = bookKeeping.context; - - func.call(context, child, bookKeeping.count++); -} - -/** - * Iterates through children that are typically specified as `props.children`. - * - * See https://facebook.github.io/react/docs/react-api.html#react.children.foreach - * - * The provided forEachFunc(child, index) will be called for each - * leaf child. - * - * @param {?*} children Children tree container. - * @param {function(*, int)} forEachFunc - * @param {*} forEachContext Context for forEachContext. - */ -function forEachChildren(children, forEachFunc, forEachContext) { - if (children == null) { - return children; - } - var traverseContext = ForEachBookKeeping.getPooled(forEachFunc, forEachContext); - traverseAllChildren(children, forEachSingleChild, traverseContext); - ForEachBookKeeping.release(traverseContext); -} - -/** - * PooledClass representing the bookkeeping associated with performing a child - * mapping. Allows avoiding binding callbacks. - * - * @constructor MapBookKeeping - * @param {!*} mapResult Object containing the ordered map of results. - * @param {!function} mapFunction Function to perform mapping with. - * @param {?*} mapContext Context to perform mapping with. - */ -function MapBookKeeping(mapResult, keyPrefix, mapFunction, mapContext) { - this.result = mapResult; - this.keyPrefix = keyPrefix; - this.func = mapFunction; - this.context = mapContext; - this.count = 0; -} -MapBookKeeping.prototype.destructor = function () { - this.result = null; - this.keyPrefix = null; - this.func = null; - this.context = null; - this.count = 0; -}; -PooledClass.addPoolingTo(MapBookKeeping, fourArgumentPooler); - -function mapSingleChildIntoContext(bookKeeping, child, childKey) { - var result = bookKeeping.result; - var keyPrefix = bookKeeping.keyPrefix; - var func = bookKeeping.func; - var context = bookKeeping.context; - - - var mappedChild = func.call(context, child, bookKeeping.count++); - if (Array.isArray(mappedChild)) { - mapIntoWithKeyPrefixInternal(mappedChild, result, childKey, emptyFunction.thatReturnsArgument); - } else if (mappedChild != null) { - if (ReactElement.isValidElement(mappedChild)) { - mappedChild = ReactElement.cloneAndReplaceKey(mappedChild, - // Keep both the (mapped) and old keys if they differ, just as - // traverseAllChildren used to do for objects as children - keyPrefix + (mappedChild.key && (!child || child.key !== mappedChild.key) ? escapeUserProvidedKey(mappedChild.key) + '/' : '') + childKey); - } - result.push(mappedChild); - } -} - -function mapIntoWithKeyPrefixInternal(children, array, prefix, func, context) { - var escapedPrefix = ''; - if (prefix != null) { - escapedPrefix = escapeUserProvidedKey(prefix) + '/'; - } - var traverseContext = MapBookKeeping.getPooled(array, escapedPrefix, func, context); - traverseAllChildren(children, mapSingleChildIntoContext, traverseContext); - MapBookKeeping.release(traverseContext); -} - -/** - * Maps children that are typically specified as `props.children`. - * - * See https://facebook.github.io/react/docs/react-api.html#react.children.map - * - * The provided mapFunction(child, key, index) will be called for each - * leaf child. - * - * @param {?*} children Children tree container. - * @param {function(*, int)} func The map function. - * @param {*} context Context for mapFunction. - * @return {object} Object containing the ordered map of results. - */ -function mapChildren(children, func, context) { - if (children == null) { - return children; - } - var result = []; - mapIntoWithKeyPrefixInternal(children, result, null, func, context); - return result; -} - -function forEachSingleChildDummy(traverseContext, child, name) { - return null; -} - -/** - * Count the number of children that are typically specified as - * `props.children`. - * - * See https://facebook.github.io/react/docs/react-api.html#react.children.count - * - * @param {?*} children Children tree container. - * @return {number} The number of children. - */ -function countChildren(children, context) { - return traverseAllChildren(children, forEachSingleChildDummy, null); -} - -/** - * Flatten a children object (typically specified as `props.children`) and - * return an array with appropriately re-keyed children. - * - * See https://facebook.github.io/react/docs/react-api.html#react.children.toarray - */ -function toArray(children) { - var result = []; - mapIntoWithKeyPrefixInternal(children, result, null, emptyFunction.thatReturnsArgument); - return result; -} - -var ReactChildren = { - forEach: forEachChildren, - map: mapChildren, - mapIntoWithKeyPrefixInternal: mapIntoWithKeyPrefixInternal, - count: countChildren, - toArray: toArray -}; - -module.exports = ReactChildren; -},{"10":10,"2":2,"25":25,"26":26}],5:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _prodInvariant = _dereq_(24), - _assign = _dereq_(30); - -var ReactComponent = _dereq_(6); -var ReactElement = _dereq_(10); -var ReactPropTypeLocationNames = _dereq_(14); -var ReactNoopUpdateQueue = _dereq_(13); - -var emptyObject = _dereq_(27); -var invariant = _dereq_(28); -var warning = _dereq_(29); - -var MIXINS_KEY = 'mixins'; - -// Helper function to allow the creation of anonymous functions which do not -// have .name set to the name of the variable being assigned to. -function identity(fn) { - return fn; -} - -/** - * Policies that describe methods in `ReactClassInterface`. - */ - - -/** - * Composite components are higher-level components that compose other composite - * or host components. - * - * To create a new type of `ReactClass`, pass a specification of - * your new class to `React.createClass`. The only requirement of your class - * specification is that you implement a `render` method. - * - * var MyComponent = React.createClass({ - * render: function() { - * return <div>Hello World</div>; - * } - * }); - * - * The class specification supports a specific protocol of methods that have - * special meaning (e.g. `render`). See `ReactClassInterface` for - * more the comprehensive protocol. Any other properties and methods in the - * class specification will be available on the prototype. - * - * @interface ReactClassInterface - * @internal - */ -var ReactClassInterface = { - - /** - * An array of Mixin objects to include when defining your component. - * - * @type {array} - * @optional - */ - mixins: 'DEFINE_MANY', - - /** - * An object containing properties and methods that should be defined on - * the component's constructor instead of its prototype (static methods). - * - * @type {object} - * @optional - */ - statics: 'DEFINE_MANY', - - /** - * Definition of prop types for this component. - * - * @type {object} - * @optional - */ - propTypes: 'DEFINE_MANY', - - /** - * Definition of context types for this component. - * - * @type {object} - * @optional - */ - contextTypes: 'DEFINE_MANY', - - /** - * Definition of context types this component sets for its children. - * - * @type {object} - * @optional - */ - childContextTypes: 'DEFINE_MANY', - - // ==== Definition methods ==== - - /** - * Invoked when the component is mounted. Values in the mapping will be set on - * `this.props` if that prop is not specified (i.e. using an `in` check). - * - * This method is invoked before `getInitialState` and therefore cannot rely - * on `this.state` or use `this.setState`. - * - * @return {object} - * @optional - */ - getDefaultProps: 'DEFINE_MANY_MERGED', - - /** - * Invoked once before the component is mounted. The return value will be used - * as the initial value of `this.state`. - * - * getInitialState: function() { - * return { - * isOn: false, - * fooBaz: new BazFoo() - * } - * } - * - * @return {object} - * @optional - */ - getInitialState: 'DEFINE_MANY_MERGED', - - /** - * @return {object} - * @optional - */ - getChildContext: 'DEFINE_MANY_MERGED', - - /** - * Uses props from `this.props` and state from `this.state` to render the - * structure of the component. - * - * No guarantees are made about when or how often this method is invoked, so - * it must not have side effects. - * - * render: function() { - * var name = this.props.name; - * return <div>Hello, {name}!</div>; - * } - * - * @return {ReactComponent} - * @nosideeffects - * @required - */ - render: 'DEFINE_ONCE', - - // ==== Delegate methods ==== - - /** - * Invoked when the component is initially created and about to be mounted. - * This may have side effects, but any external subscriptions or data created - * by this method must be cleaned up in `componentWillUnmount`. - * - * @optional - */ - componentWillMount: 'DEFINE_MANY', - - /** - * Invoked when the component has been mounted and has a DOM representation. - * However, there is no guarantee that the DOM node is in the document. - * - * Use this as an opportunity to operate on the DOM when the component has - * been mounted (initialized and rendered) for the first time. - * - * @param {DOMElement} rootNode DOM element representing the component. - * @optional - */ - componentDidMount: 'DEFINE_MANY', - - /** - * Invoked before the component receives new props. - * - * Use this as an opportunity to react to a prop transition by updating the - * state using `this.setState`. Current props are accessed via `this.props`. - * - * componentWillReceiveProps: function(nextProps, nextContext) { - * this.setState({ - * likesIncreasing: nextProps.likeCount > this.props.likeCount - * }); - * } - * - * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop - * transition may cause a state change, but the opposite is not true. If you - * need it, you are probably looking for `componentWillUpdate`. - * - * @param {object} nextProps - * @optional - */ - componentWillReceiveProps: 'DEFINE_MANY', - - /** - * Invoked while deciding if the component should be updated as a result of - * receiving new props, state and/or context. - * - * Use this as an opportunity to `return false` when you're certain that the - * transition to the new props/state/context will not require a component - * update. - * - * shouldComponentUpdate: function(nextProps, nextState, nextContext) { - * return !equal(nextProps, this.props) || - * !equal(nextState, this.state) || - * !equal(nextContext, this.context); - * } - * - * @param {object} nextProps - * @param {?object} nextState - * @param {?object} nextContext - * @return {boolean} True if the component should update. - * @optional - */ - shouldComponentUpdate: 'DEFINE_ONCE', - - /** - * Invoked when the component is about to update due to a transition from - * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState` - * and `nextContext`. - * - * Use this as an opportunity to perform preparation before an update occurs. - * - * NOTE: You **cannot** use `this.setState()` in this method. - * - * @param {object} nextProps - * @param {?object} nextState - * @param {?object} nextContext - * @param {ReactReconcileTransaction} transaction - * @optional - */ - componentWillUpdate: 'DEFINE_MANY', - - /** - * Invoked when the component's DOM representation has been updated. - * - * Use this as an opportunity to operate on the DOM when the component has - * been updated. - * - * @param {object} prevProps - * @param {?object} prevState - * @param {?object} prevContext - * @param {DOMElement} rootNode DOM element representing the component. - * @optional - */ - componentDidUpdate: 'DEFINE_MANY', - - /** - * Invoked when the component is about to be removed from its parent and have - * its DOM representation destroyed. - * - * Use this as an opportunity to deallocate any external resources. - * - * NOTE: There is no `componentDidUnmount` since your component will have been - * destroyed by that point. - * - * @optional - */ - componentWillUnmount: 'DEFINE_MANY', - - // ==== Advanced methods ==== - - /** - * Updates the component's currently mounted DOM representation. - * - * By default, this implements React's rendering and reconciliation algorithm. - * Sophisticated clients may wish to override this. - * - * @param {ReactReconcileTransaction} transaction - * @internal - * @overridable - */ - updateComponent: 'OVERRIDE_BASE' - -}; - -/** - * Mapping from class specification keys to special processing functions. - * - * Although these are declared like instance properties in the specification - * when defining classes using `React.createClass`, they are actually static - * and are accessible on the constructor instead of the prototype. Despite - * being static, they must be defined outside of the "statics" key under - * which all other static methods are defined. - */ -var RESERVED_SPEC_KEYS = { - displayName: function (Constructor, displayName) { - Constructor.displayName = displayName; - }, - mixins: function (Constructor, mixins) { - if (mixins) { - for (var i = 0; i < mixins.length; i++) { - mixSpecIntoComponent(Constructor, mixins[i]); - } - } - }, - childContextTypes: function (Constructor, childContextTypes) { - if ("development" !== 'production') { - validateTypeDef(Constructor, childContextTypes, 'childContext'); - } - Constructor.childContextTypes = _assign({}, Constructor.childContextTypes, childContextTypes); - }, - contextTypes: function (Constructor, contextTypes) { - if ("development" !== 'production') { - validateTypeDef(Constructor, contextTypes, 'context'); - } - Constructor.contextTypes = _assign({}, Constructor.contextTypes, contextTypes); - }, - /** - * Special case getDefaultProps which should move into statics but requires - * automatic merging. - */ - getDefaultProps: function (Constructor, getDefaultProps) { - if (Constructor.getDefaultProps) { - Constructor.getDefaultProps = createMergedResultFunction(Constructor.getDefaultProps, getDefaultProps); - } else { - Constructor.getDefaultProps = getDefaultProps; - } - }, - propTypes: function (Constructor, propTypes) { - if ("development" !== 'production') { - validateTypeDef(Constructor, propTypes, 'prop'); - } - Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes); - }, - statics: function (Constructor, statics) { - mixStaticSpecIntoComponent(Constructor, statics); - }, - autobind: function () {} }; - -// noop -function validateTypeDef(Constructor, typeDef, location) { - for (var propName in typeDef) { - if (typeDef.hasOwnProperty(propName)) { - // use a warning instead of an invariant so components - // don't show up in prod but only in __DEV__ - "development" !== 'production' ? warning(typeof typeDef[propName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', Constructor.displayName || 'ReactClass', ReactPropTypeLocationNames[location], propName) : void 0; - } - } -} - -function validateMethodOverride(isAlreadyDefined, name) { - var specPolicy = ReactClassInterface.hasOwnProperty(name) ? ReactClassInterface[name] : null; - - // Disallow overriding of base class methods unless explicitly allowed. - if (ReactClassMixin.hasOwnProperty(name)) { - !(specPolicy === 'OVERRIDE_BASE') ? "development" !== 'production' ? invariant(false, 'ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.', name) : _prodInvariant('73', name) : void 0; - } - - // Disallow defining methods more than once unless explicitly allowed. - if (isAlreadyDefined) { - !(specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED') ? "development" !== 'production' ? invariant(false, 'ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.', name) : _prodInvariant('74', name) : void 0; - } -} - -/** - * Mixin helper which handles policy validation and reserved - * specification keys when building React classes. - */ -function mixSpecIntoComponent(Constructor, spec) { - if (!spec) { - if ("development" !== 'production') { - var typeofSpec = typeof spec; - var isMixinValid = typeofSpec === 'object' && spec !== null; - - "development" !== 'production' ? warning(isMixinValid, '%s: You\'re attempting to include a mixin that is either null ' + 'or not an object. Check the mixins included by the component, ' + 'as well as any mixins they include themselves. ' + 'Expected object but got %s.', Constructor.displayName || 'ReactClass', spec === null ? null : typeofSpec) : void 0; - } - - return; - } - - !(typeof spec !== 'function') ? "development" !== 'production' ? invariant(false, 'ReactClass: You\'re attempting to use a component class or function as a mixin. Instead, just use a regular object.') : _prodInvariant('75') : void 0; - !!ReactElement.isValidElement(spec) ? "development" !== 'production' ? invariant(false, 'ReactClass: You\'re attempting to use a component as a mixin. Instead, just use a regular object.') : _prodInvariant('76') : void 0; - - var proto = Constructor.prototype; - var autoBindPairs = proto.__reactAutoBindPairs; - - // By handling mixins before any other properties, we ensure the same - // chaining order is applied to methods with DEFINE_MANY policy, whether - // mixins are listed before or after these methods in the spec. - if (spec.hasOwnProperty(MIXINS_KEY)) { - RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins); - } - - for (var name in spec) { - if (!spec.hasOwnProperty(name)) { - continue; - } - - if (name === MIXINS_KEY) { - // We have already handled mixins in a special case above. - continue; - } - - var property = spec[name]; - var isAlreadyDefined = proto.hasOwnProperty(name); - validateMethodOverride(isAlreadyDefined, name); - - if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) { - RESERVED_SPEC_KEYS[name](Constructor, property); - } else { - // Setup methods on prototype: - // The following member methods should not be automatically bound: - // 1. Expected ReactClass methods (in the "interface"). - // 2. Overridden methods (that were mixed in). - var isReactClassMethod = ReactClassInterface.hasOwnProperty(name); - var isFunction = typeof property === 'function'; - var shouldAutoBind = isFunction && !isReactClassMethod && !isAlreadyDefined && spec.autobind !== false; - - if (shouldAutoBind) { - autoBindPairs.push(name, property); - proto[name] = property; - } else { - if (isAlreadyDefined) { - var specPolicy = ReactClassInterface[name]; - - // These cases should already be caught by validateMethodOverride. - !(isReactClassMethod && (specPolicy === 'DEFINE_MANY_MERGED' || specPolicy === 'DEFINE_MANY')) ? "development" !== 'production' ? invariant(false, 'ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.', specPolicy, name) : _prodInvariant('77', specPolicy, name) : void 0; - - // For methods which are defined more than once, call the existing - // methods before calling the new property, merging if appropriate. - if (specPolicy === 'DEFINE_MANY_MERGED') { - proto[name] = createMergedResultFunction(proto[name], property); - } else if (specPolicy === 'DEFINE_MANY') { - proto[name] = createChainedFunction(proto[name], property); - } - } else { - proto[name] = property; - if ("development" !== 'production') { - // Add verbose displayName to the function, which helps when looking - // at profiling tools. - if (typeof property === 'function' && spec.displayName) { - proto[name].displayName = spec.displayName + '_' + name; - } - } - } - } - } - } -} - -function mixStaticSpecIntoComponent(Constructor, statics) { - if (!statics) { - return; - } - for (var name in statics) { - var property = statics[name]; - if (!statics.hasOwnProperty(name)) { - continue; - } - - var isReserved = name in RESERVED_SPEC_KEYS; - !!isReserved ? "development" !== 'production' ? invariant(false, 'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\'t be on the "statics" key. Define it as an instance property instead; it will still be accessible on the constructor.', name) : _prodInvariant('78', name) : void 0; - - var isInherited = name in Constructor; - !!isInherited ? "development" !== 'production' ? invariant(false, 'ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.', name) : _prodInvariant('79', name) : void 0; - Constructor[name] = property; - } -} - -/** - * Merge two objects, but throw if both contain the same key. - * - * @param {object} one The first object, which is mutated. - * @param {object} two The second object - * @return {object} one after it has been mutated to contain everything in two. - */ -function mergeIntoWithNoDuplicateKeys(one, two) { - !(one && two && typeof one === 'object' && typeof two === 'object') ? "development" !== 'production' ? invariant(false, 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.') : _prodInvariant('80') : void 0; - - for (var key in two) { - if (two.hasOwnProperty(key)) { - !(one[key] === undefined) ? "development" !== 'production' ? invariant(false, 'mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.', key) : _prodInvariant('81', key) : void 0; - one[key] = two[key]; - } - } - return one; -} - -/** - * Creates a function that invokes two functions and merges their return values. - * - * @param {function} one Function to invoke first. - * @param {function} two Function to invoke second. - * @return {function} Function that invokes the two argument functions. - * @private - */ -function createMergedResultFunction(one, two) { - return function mergedResult() { - var a = one.apply(this, arguments); - var b = two.apply(this, arguments); - if (a == null) { - return b; - } else if (b == null) { - return a; - } - var c = {}; - mergeIntoWithNoDuplicateKeys(c, a); - mergeIntoWithNoDuplicateKeys(c, b); - return c; - }; -} - -/** - * Creates a function that invokes two functions and ignores their return vales. - * - * @param {function} one Function to invoke first. - * @param {function} two Function to invoke second. - * @return {function} Function that invokes the two argument functions. - * @private - */ -function createChainedFunction(one, two) { - return function chainedFunction() { - one.apply(this, arguments); - two.apply(this, arguments); - }; -} - -/** - * Binds a method to the component. - * - * @param {object} component Component whose method is going to be bound. - * @param {function} method Method to be bound. - * @return {function} The bound method. - */ -function bindAutoBindMethod(component, method) { - var boundMethod = method.bind(component); - if ("development" !== 'production') { - boundMethod.__reactBoundContext = component; - boundMethod.__reactBoundMethod = method; - boundMethod.__reactBoundArguments = null; - var componentName = component.constructor.displayName; - var _bind = boundMethod.bind; - boundMethod.bind = function (newThis) { - for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - - // User is trying to bind() an autobound method; we effectively will - // ignore the value of "this" that the user is trying to use, so - // let's warn. - if (newThis !== component && newThis !== null) { - "development" !== 'production' ? warning(false, 'bind(): React component methods may only be bound to the ' + 'component instance. See %s', componentName) : void 0; - } else if (!args.length) { - "development" !== 'production' ? warning(false, 'bind(): You are binding a component method to the component. ' + 'React does this for you automatically in a high-performance ' + 'way, so you can safely remove this call. See %s', componentName) : void 0; - return boundMethod; - } - var reboundMethod = _bind.apply(boundMethod, arguments); - reboundMethod.__reactBoundContext = component; - reboundMethod.__reactBoundMethod = method; - reboundMethod.__reactBoundArguments = args; - return reboundMethod; - }; - } - return boundMethod; -} - -/** - * Binds all auto-bound methods in a component. - * - * @param {object} component Component whose method is going to be bound. - */ -function bindAutoBindMethods(component) { - var pairs = component.__reactAutoBindPairs; - for (var i = 0; i < pairs.length; i += 2) { - var autoBindKey = pairs[i]; - var method = pairs[i + 1]; - component[autoBindKey] = bindAutoBindMethod(component, method); - } -} - -/** - * Add more to the ReactClass base class. These are all legacy features and - * therefore not already part of the modern ReactComponent. - */ -var ReactClassMixin = { - - /** - * TODO: This will be deprecated because state should always keep a consistent - * type signature and the only use case for this, is to avoid that. - */ - replaceState: function (newState, callback) { - this.updater.enqueueReplaceState(this, newState); - if (callback) { - this.updater.enqueueCallback(this, callback, 'replaceState'); - } - }, - - /** - * Checks whether or not this composite component is mounted. - * @return {boolean} True if mounted, false otherwise. - * @protected - * @final - */ - isMounted: function () { - return this.updater.isMounted(this); - } -}; - -var ReactClassComponent = function () {}; -_assign(ReactClassComponent.prototype, ReactComponent.prototype, ReactClassMixin); - -/** - * Module for creating composite components. - * - * @class ReactClass - */ -var ReactClass = { - - /** - * Creates a composite component class given a class specification. - * See https://facebook.github.io/react/docs/react-api.html#createclass - * - * @param {object} spec Class specification (which must define `render`). - * @return {function} Component constructor function. - * @public - */ - createClass: function (spec) { - // To keep our warnings more understandable, we'll use a little hack here to - // ensure that Constructor.name !== 'Constructor'. This makes sure we don't - // unnecessarily identify a class without displayName as 'Constructor'. - var Constructor = identity(function (props, context, updater) { - // This constructor gets overridden by mocks. The argument is used - // by mocks to assert on what gets mounted. - - if ("development" !== 'production') { - "development" !== 'production' ? warning(this instanceof Constructor, 'Something is calling a React component directly. Use a factory or ' + 'JSX instead. See: https://fb.me/react-legacyfactory') : void 0; - } - - // Wire up auto-binding - if (this.__reactAutoBindPairs.length) { - bindAutoBindMethods(this); - } - - this.props = props; - this.context = context; - this.refs = emptyObject; - this.updater = updater || ReactNoopUpdateQueue; - - this.state = null; - - // ReactClasses doesn't have constructors. Instead, they use the - // getInitialState and componentWillMount methods for initialization. - - var initialState = this.getInitialState ? this.getInitialState() : null; - if ("development" !== 'production') { - // We allow auto-mocks to proceed as if they're returning null. - if (initialState === undefined && this.getInitialState._isMockFunction) { - // This is probably bad practice. Consider warning here and - // deprecating this convenience. - initialState = null; - } - } - !(typeof initialState === 'object' && !Array.isArray(initialState)) ? "development" !== 'production' ? invariant(false, '%s.getInitialState(): must return an object or null', Constructor.displayName || 'ReactCompositeComponent') : _prodInvariant('82', Constructor.displayName || 'ReactCompositeComponent') : void 0; - - this.state = initialState; - }); - Constructor.prototype = new ReactClassComponent(); - Constructor.prototype.constructor = Constructor; - Constructor.prototype.__reactAutoBindPairs = []; - - mixSpecIntoComponent(Constructor, spec); - - // Initialize the defaultProps property after all mixins have been merged. - if (Constructor.getDefaultProps) { - Constructor.defaultProps = Constructor.getDefaultProps(); - } - - if ("development" !== 'production') { - // This is a tag to indicate that the use of these method names is ok, - // since it's used with createClass. If it's not, then it's likely a - // mistake so we'll warn you to use the static property, property - // initializer or constructor respectively. - if (Constructor.getDefaultProps) { - Constructor.getDefaultProps.isReactClassApproved = {}; - } - if (Constructor.prototype.getInitialState) { - Constructor.prototype.getInitialState.isReactClassApproved = {}; - } - } - - !Constructor.prototype.render ? "development" !== 'production' ? invariant(false, 'createClass(...): Class specification must implement a `render` method.') : _prodInvariant('83') : void 0; - - if ("development" !== 'production') { - "development" !== 'production' ? warning(!Constructor.prototype.componentShouldUpdate, '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', spec.displayName || 'A component') : void 0; - "development" !== 'production' ? warning(!Constructor.prototype.componentWillRecieveProps, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', spec.displayName || 'A component') : void 0; - } - - // Reduce time spent doing lookups by setting these on the prototype. - for (var methodName in ReactClassInterface) { - if (!Constructor.prototype[methodName]) { - Constructor.prototype[methodName] = null; - } - } - - return Constructor; - } - -}; - -module.exports = ReactClass; -},{"10":10,"13":13,"14":14,"24":24,"27":27,"28":28,"29":29,"30":30,"6":6}],6:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _prodInvariant = _dereq_(24); - -var ReactNoopUpdateQueue = _dereq_(13); - -var canDefineProperty = _dereq_(19); -var emptyObject = _dereq_(27); -var invariant = _dereq_(28); -var warning = _dereq_(29); - -/** - * Base class helpers for the updating state of a component. - */ -function ReactComponent(props, context, updater) { - this.props = props; - this.context = context; - this.refs = emptyObject; - // We initialize the default updater but the real one gets injected by the - // renderer. - this.updater = updater || ReactNoopUpdateQueue; -} - -ReactComponent.prototype.isReactComponent = {}; - -/** - * Sets a subset of the state. Always use this to mutate - * state. You should treat `this.state` as immutable. - * - * There is no guarantee that `this.state` will be immediately updated, so - * accessing `this.state` after calling this method may return the old value. - * - * There is no guarantee that calls to `setState` will run synchronously, - * as they may eventually be batched together. You can provide an optional - * callback that will be executed when the call to setState is actually - * completed. - * - * When a function is provided to setState, it will be called at some point in - * the future (not synchronously). It will be called with the up to date - * component arguments (state, props, context). These values can be different - * from this.* because your function may be called after receiveProps but before - * shouldComponentUpdate, and this new state, props, and context will not yet be - * assigned to this. - * - * @param {object|function} partialState Next partial state or function to - * produce next partial state to be merged with current state. - * @param {?function} callback Called after state is updated. - * @final - * @protected - */ -ReactComponent.prototype.setState = function (partialState, callback) { - !(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null) ? "development" !== 'production' ? invariant(false, 'setState(...): takes an object of state variables to update or a function which returns an object of state variables.') : _prodInvariant('85') : void 0; - this.updater.enqueueSetState(this, partialState); - if (callback) { - this.updater.enqueueCallback(this, callback, 'setState'); - } -}; - -/** - * Forces an update. This should only be invoked when it is known with - * certainty that we are **not** in a DOM transaction. - * - * You may want to call this when you know that some deeper aspect of the - * component's state has changed but `setState` was not called. - * - * This will not invoke `shouldComponentUpdate`, but it will invoke - * `componentWillUpdate` and `componentDidUpdate`. - * - * @param {?function} callback Called after update is complete. - * @final - * @protected - */ -ReactComponent.prototype.forceUpdate = function (callback) { - this.updater.enqueueForceUpdate(this); - if (callback) { - this.updater.enqueueCallback(this, callback, 'forceUpdate'); - } -}; - -/** - * Deprecated APIs. These APIs used to exist on classic React classes but since - * we would like to deprecate them, we're not going to move them over to this - * modern base class. Instead, we define a getter that warns if it's accessed. - */ -if ("development" !== 'production') { - var deprecatedAPIs = { - isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'], - replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).'] - }; - var defineDeprecationWarning = function (methodName, info) { - if (canDefineProperty) { - Object.defineProperty(ReactComponent.prototype, methodName, { - get: function () { - "development" !== 'production' ? warning(false, '%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]) : void 0; - return undefined; - } - }); - } - }; - for (var fnName in deprecatedAPIs) { - if (deprecatedAPIs.hasOwnProperty(fnName)) { - defineDeprecationWarning(fnName, deprecatedAPIs[fnName]); - } - } -} - -module.exports = ReactComponent; -},{"13":13,"19":19,"24":24,"27":27,"28":28,"29":29}],7:[function(_dereq_,module,exports){ -/** - * Copyright 2016-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -'use strict'; - -var _prodInvariant = _dereq_(24); - -var ReactCurrentOwner = _dereq_(8); - -var getComponentName = _dereq_(21); -var invariant = _dereq_(28); -var warning = _dereq_(29); - -function isNative(fn) { - // Based on isNative() from Lodash - var funcToString = Function.prototype.toString; - var hasOwnProperty = Object.prototype.hasOwnProperty; - var reIsNative = RegExp('^' + funcToString - // Take an example native function source for comparison - .call(hasOwnProperty) - // Strip regex characters so we can use it for regex - .replace(/[\\^$.*+?()[\]{}|]/g, '\\$&') - // Remove hasOwnProperty from the template to make it generic - .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'); - try { - var source = funcToString.call(fn); - return reIsNative.test(source); - } catch (err) { - return false; - } -} - -var canUseCollections = -// Array.from -typeof Array.from === 'function' && -// Map -typeof Map === 'function' && isNative(Map) && -// Map.prototype.keys -Map.prototype != null && typeof Map.prototype.keys === 'function' && isNative(Map.prototype.keys) && -// Set -typeof Set === 'function' && isNative(Set) && -// Set.prototype.keys -Set.prototype != null && typeof Set.prototype.keys === 'function' && isNative(Set.prototype.keys); - -if (canUseCollections) { - var itemMap = new Map(); - var rootIDSet = new Set(); - - var setItem = function (id, item) { - itemMap.set(id, item); - }; - var getItem = function (id) { - return itemMap.get(id); - }; - var removeItem = function (id) { - itemMap['delete'](id); - }; - var getItemIDs = function () { - return Array.from(itemMap.keys()); - }; - - var addRoot = function (id) { - rootIDSet.add(id); - }; - var removeRoot = function (id) { - rootIDSet['delete'](id); - }; - var getRootIDs = function () { - return Array.from(rootIDSet.keys()); - }; -} else { - var itemByKey = {}; - var rootByKey = {}; - - // Use non-numeric keys to prevent V8 performance issues: - // https://github.com/facebook/react/pull/7232 - var getKeyFromID = function (id) { - return '.' + id; - }; - var getIDFromKey = function (key) { - return parseInt(key.substr(1), 10); - }; - - var setItem = function (id, item) { - var key = getKeyFromID(id); - itemByKey[key] = item; - }; - var getItem = function (id) { - var key = getKeyFromID(id); - return itemByKey[key]; - }; - var removeItem = function (id) { - var key = getKeyFromID(id); - delete itemByKey[key]; - }; - var getItemIDs = function () { - return Object.keys(itemByKey).map(getIDFromKey); - }; - - var addRoot = function (id) { - var key = getKeyFromID(id); - rootByKey[key] = true; - }; - var removeRoot = function (id) { - var key = getKeyFromID(id); - delete rootByKey[key]; - }; - var getRootIDs = function () { - return Object.keys(rootByKey).map(getIDFromKey); - }; -} - -var unmountedIDs = []; - -function purgeDeep(id) { - var item = getItem(id); - if (item) { - var childIDs = item.childIDs; - - removeItem(id); - childIDs.forEach(purgeDeep); - } -} - -function describeComponentFrame(name, source, ownerName) { - return '\n in ' + (name || 'Unknown') + (source ? ' (at ' + source.fileName.replace(/^.*[\\\/]/, '') + ':' + source.lineNumber + ')' : ownerName ? ' (created by ' + ownerName + ')' : ''); -} - -function getDisplayName(element) { - if (element == null) { - return '#empty'; - } else if (typeof element === 'string' || typeof element === 'number') { - return '#text'; - } else if (typeof element.type === 'string') { - return element.type; - } else { - return element.type.displayName || element.type.name || 'Unknown'; - } -} - -function describeID(id) { - var name = ReactComponentTreeHook.getDisplayName(id); - var element = ReactComponentTreeHook.getElement(id); - var ownerID = ReactComponentTreeHook.getOwnerID(id); - var ownerName; - if (ownerID) { - ownerName = ReactComponentTreeHook.getDisplayName(ownerID); - } - "development" !== 'production' ? warning(element, 'ReactComponentTreeHook: Missing React element for debugID %s when ' + 'building stack', id) : void 0; - return describeComponentFrame(name, element && element._source, ownerName); -} - -var ReactComponentTreeHook = { - onSetChildren: function (id, nextChildIDs) { - var item = getItem(id); - !item ? "development" !== 'production' ? invariant(false, 'Item must have been set') : _prodInvariant('144') : void 0; - item.childIDs = nextChildIDs; - - for (var i = 0; i < nextChildIDs.length; i++) { - var nextChildID = nextChildIDs[i]; - var nextChild = getItem(nextChildID); - !nextChild ? "development" !== 'production' ? invariant(false, 'Expected hook events to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('140') : void 0; - !(nextChild.childIDs != null || typeof nextChild.element !== 'object' || nextChild.element == null) ? "development" !== 'production' ? invariant(false, 'Expected onSetChildren() to fire for a container child before its parent includes it in onSetChildren().') : _prodInvariant('141') : void 0; - !nextChild.isMounted ? "development" !== 'production' ? invariant(false, 'Expected onMountComponent() to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('71') : void 0; - if (nextChild.parentID == null) { - nextChild.parentID = id; - // TODO: This shouldn't be necessary but mounting a new root during in - // componentWillMount currently causes not-yet-mounted components to - // be purged from our tree data so their parent id is missing. - } - !(nextChild.parentID === id) ? "development" !== 'production' ? invariant(false, 'Expected onBeforeMountComponent() parent and onSetChildren() to be consistent (%s has parents %s and %s).', nextChildID, nextChild.parentID, id) : _prodInvariant('142', nextChildID, nextChild.parentID, id) : void 0; - } - }, - onBeforeMountComponent: function (id, element, parentID) { - var item = { - element: element, - parentID: parentID, - text: null, - childIDs: [], - isMounted: false, - updateCount: 0 - }; - setItem(id, item); - }, - onBeforeUpdateComponent: function (id, element) { - var item = getItem(id); - if (!item || !item.isMounted) { - // We may end up here as a result of setState() in componentWillUnmount(). - // In this case, ignore the element. - return; - } - item.element = element; - }, - onMountComponent: function (id) { - var item = getItem(id); - !item ? "development" !== 'production' ? invariant(false, 'Item must have been set') : _prodInvariant('144') : void 0; - item.isMounted = true; - var isRoot = item.parentID === 0; - if (isRoot) { - addRoot(id); - } - }, - onUpdateComponent: function (id) { - var item = getItem(id); - if (!item || !item.isMounted) { - // We may end up here as a result of setState() in componentWillUnmount(). - // In this case, ignore the element. - return; - } - item.updateCount++; - }, - onUnmountComponent: function (id) { - var item = getItem(id); - if (item) { - // We need to check if it exists. - // `item` might not exist if it is inside an error boundary, and a sibling - // error boundary child threw while mounting. Then this instance never - // got a chance to mount, but it still gets an unmounting event during - // the error boundary cleanup. - item.isMounted = false; - var isRoot = item.parentID === 0; - if (isRoot) { - removeRoot(id); - } - } - unmountedIDs.push(id); - }, - purgeUnmountedComponents: function () { - if (ReactComponentTreeHook._preventPurging) { - // Should only be used for testing. - return; - } - - for (var i = 0; i < unmountedIDs.length; i++) { - var id = unmountedIDs[i]; - purgeDeep(id); - } - unmountedIDs.length = 0; - }, - isMounted: function (id) { - var item = getItem(id); - return item ? item.isMounted : false; - }, - getCurrentStackAddendum: function (topElement) { - var info = ''; - if (topElement) { - var name = getDisplayName(topElement); - var owner = topElement._owner; - info += describeComponentFrame(name, topElement._source, owner && getComponentName(owner)); - } - - var currentOwner = ReactCurrentOwner.current; - if (currentOwner && typeof currentOwner._debugID === 'number') { - var id = currentOwner && currentOwner._debugID; - info += ReactComponentTreeHook.getStackAddendumByID(id); - } - return info; - }, - getStackAddendumByID: function (id) { - var info = ''; - while (id) { - info += describeID(id); - id = ReactComponentTreeHook.getParentID(id); - } - return info; - }, - getChildIDs: function (id) { - var item = getItem(id); - return item ? item.childIDs : []; - }, - getDisplayName: function (id) { - var element = ReactComponentTreeHook.getElement(id); - if (!element) { - return null; - } - return getDisplayName(element); - }, - getElement: function (id) { - var item = getItem(id); - return item ? item.element : null; - }, - getOwnerID: function (id) { - var element = ReactComponentTreeHook.getElement(id); - if (!element || !element._owner) { - return null; - } - return element._owner._debugID; - }, - getParentID: function (id) { - var item = getItem(id); - return item ? item.parentID : null; - }, - getSource: function (id) { - var item = getItem(id); - var element = item ? item.element : null; - var source = element != null ? element._source : null; - return source; - }, - getText: function (id) { - var element = ReactComponentTreeHook.getElement(id); - if (typeof element === 'string') { - return element; - } else if (typeof element === 'number') { - return '' + element; - } else { - return null; - } - }, - getUpdateCount: function (id) { - var item = getItem(id); - return item ? item.updateCount : 0; - }, - - - getRootIDs: getRootIDs, - getRegisteredIDs: getItemIDs -}; - -module.exports = ReactComponentTreeHook; -},{"21":21,"24":24,"28":28,"29":29,"8":8}],8:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -'use strict'; - -/** - * Keeps track of the current owner. - * - * The current owner is the component who should own any components that are - * currently being constructed. - */ -var ReactCurrentOwner = { - - /** - * @internal - * @type {ReactComponent} - */ - current: null - -}; - -module.exports = ReactCurrentOwner; -},{}],9:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var ReactElement = _dereq_(10); - -/** - * Create a factory that creates HTML tag elements. - * - * @private - */ -var createDOMFactory = ReactElement.createFactory; -if ("development" !== 'production') { - var ReactElementValidator = _dereq_(12); - createDOMFactory = ReactElementValidator.createFactory; -} - -/** - * Creates a mapping from supported HTML tags to `ReactDOMComponent` classes. - * This is also accessible via `React.DOM`. - * - * @public - */ -var ReactDOMFactories = { - a: createDOMFactory('a'), - abbr: createDOMFactory('abbr'), - address: createDOMFactory('address'), - area: createDOMFactory('area'), - article: createDOMFactory('article'), - aside: createDOMFactory('aside'), - audio: createDOMFactory('audio'), - b: createDOMFactory('b'), - base: createDOMFactory('base'), - bdi: createDOMFactory('bdi'), - bdo: createDOMFactory('bdo'), - big: createDOMFactory('big'), - blockquote: createDOMFactory('blockquote'), - body: createDOMFactory('body'), - br: createDOMFactory('br'), - button: createDOMFactory('button'), - canvas: createDOMFactory('canvas'), - caption: createDOMFactory('caption'), - cite: createDOMFactory('cite'), - code: createDOMFactory('code'), - col: createDOMFactory('col'), - colgroup: createDOMFactory('colgroup'), - data: createDOMFactory('data'), - datalist: createDOMFactory('datalist'), - dd: createDOMFactory('dd'), - del: createDOMFactory('del'), - details: createDOMFactory('details'), - dfn: createDOMFactory('dfn'), - dialog: createDOMFactory('dialog'), - div: createDOMFactory('div'), - dl: createDOMFactory('dl'), - dt: createDOMFactory('dt'), - em: createDOMFactory('em'), - embed: createDOMFactory('embed'), - fieldset: createDOMFactory('fieldset'), - figcaption: createDOMFactory('figcaption'), - figure: createDOMFactory('figure'), - footer: createDOMFactory('footer'), - form: createDOMFactory('form'), - h1: createDOMFactory('h1'), - h2: createDOMFactory('h2'), - h3: createDOMFactory('h3'), - h4: createDOMFactory('h4'), - h5: createDOMFactory('h5'), - h6: createDOMFactory('h6'), - head: createDOMFactory('head'), - header: createDOMFactory('header'), - hgroup: createDOMFactory('hgroup'), - hr: createDOMFactory('hr'), - html: createDOMFactory('html'), - i: createDOMFactory('i'), - iframe: createDOMFactory('iframe'), - img: createDOMFactory('img'), - input: createDOMFactory('input'), - ins: createDOMFactory('ins'), - kbd: createDOMFactory('kbd'), - keygen: createDOMFactory('keygen'), - label: createDOMFactory('label'), - legend: createDOMFactory('legend'), - li: createDOMFactory('li'), - link: createDOMFactory('link'), - main: createDOMFactory('main'), - map: createDOMFactory('map'), - mark: createDOMFactory('mark'), - menu: createDOMFactory('menu'), - menuitem: createDOMFactory('menuitem'), - meta: createDOMFactory('meta'), - meter: createDOMFactory('meter'), - nav: createDOMFactory('nav'), - noscript: createDOMFactory('noscript'), - object: createDOMFactory('object'), - ol: createDOMFactory('ol'), - optgroup: createDOMFactory('optgroup'), - option: createDOMFactory('option'), - output: createDOMFactory('output'), - p: createDOMFactory('p'), - param: createDOMFactory('param'), - picture: createDOMFactory('picture'), - pre: createDOMFactory('pre'), - progress: createDOMFactory('progress'), - q: createDOMFactory('q'), - rp: createDOMFactory('rp'), - rt: createDOMFactory('rt'), - ruby: createDOMFactory('ruby'), - s: createDOMFactory('s'), - samp: createDOMFactory('samp'), - script: createDOMFactory('script'), - section: createDOMFactory('section'), - select: createDOMFactory('select'), - small: createDOMFactory('small'), - source: createDOMFactory('source'), - span: createDOMFactory('span'), - strong: createDOMFactory('strong'), - style: createDOMFactory('style'), - sub: createDOMFactory('sub'), - summary: createDOMFactory('summary'), - sup: createDOMFactory('sup'), - table: createDOMFactory('table'), - tbody: createDOMFactory('tbody'), - td: createDOMFactory('td'), - textarea: createDOMFactory('textarea'), - tfoot: createDOMFactory('tfoot'), - th: createDOMFactory('th'), - thead: createDOMFactory('thead'), - time: createDOMFactory('time'), - title: createDOMFactory('title'), - tr: createDOMFactory('tr'), - track: createDOMFactory('track'), - u: createDOMFactory('u'), - ul: createDOMFactory('ul'), - 'var': createDOMFactory('var'), - video: createDOMFactory('video'), - wbr: createDOMFactory('wbr'), - - // SVG - circle: createDOMFactory('circle'), - clipPath: createDOMFactory('clipPath'), - defs: createDOMFactory('defs'), - ellipse: createDOMFactory('ellipse'), - g: createDOMFactory('g'), - image: createDOMFactory('image'), - line: createDOMFactory('line'), - linearGradient: createDOMFactory('linearGradient'), - mask: createDOMFactory('mask'), - path: createDOMFactory('path'), - pattern: createDOMFactory('pattern'), - polygon: createDOMFactory('polygon'), - polyline: createDOMFactory('polyline'), - radialGradient: createDOMFactory('radialGradient'), - rect: createDOMFactory('rect'), - stop: createDOMFactory('stop'), - svg: createDOMFactory('svg'), - text: createDOMFactory('text'), - tspan: createDOMFactory('tspan') -}; - -module.exports = ReactDOMFactories; -},{"10":10,"12":12}],10:[function(_dereq_,module,exports){ -/** - * Copyright 2014-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _assign = _dereq_(30); - -var ReactCurrentOwner = _dereq_(8); - -var warning = _dereq_(29); -var canDefineProperty = _dereq_(19); -var hasOwnProperty = Object.prototype.hasOwnProperty; - -var REACT_ELEMENT_TYPE = _dereq_(11); - -var RESERVED_PROPS = { - key: true, - ref: true, - __self: true, - __source: true -}; - -var specialPropKeyWarningShown, specialPropRefWarningShown; - -function hasValidRef(config) { - if ("development" !== 'production') { - if (hasOwnProperty.call(config, 'ref')) { - var getter = Object.getOwnPropertyDescriptor(config, 'ref').get; - if (getter && getter.isReactWarning) { - return false; - } - } - } - return config.ref !== undefined; -} - -function hasValidKey(config) { - if ("development" !== 'production') { - if (hasOwnProperty.call(config, 'key')) { - var getter = Object.getOwnPropertyDescriptor(config, 'key').get; - if (getter && getter.isReactWarning) { - return false; - } - } - } - return config.key !== undefined; -} - -function defineKeyPropWarningGetter(props, displayName) { - var warnAboutAccessingKey = function () { - if (!specialPropKeyWarningShown) { - specialPropKeyWarningShown = true; - "development" !== 'production' ? warning(false, '%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName) : void 0; - } - }; - warnAboutAccessingKey.isReactWarning = true; - Object.defineProperty(props, 'key', { - get: warnAboutAccessingKey, - configurable: true - }); -} - -function defineRefPropWarningGetter(props, displayName) { - var warnAboutAccessingRef = function () { - if (!specialPropRefWarningShown) { - specialPropRefWarningShown = true; - "development" !== 'production' ? warning(false, '%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName) : void 0; - } - }; - warnAboutAccessingRef.isReactWarning = true; - Object.defineProperty(props, 'ref', { - get: warnAboutAccessingRef, - configurable: true - }); -} - -/** - * Factory method to create a new React element. This no longer adheres to - * the class pattern, so do not use new to call it. Also, no instanceof check - * will work. Instead test $$typeof field against Symbol.for('react.element') to check - * if something is a React Element. - * - * @param {*} type - * @param {*} key - * @param {string|object} ref - * @param {*} self A *temporary* helper to detect places where `this` is - * different from the `owner` when React.createElement is called, so that we - * can warn. We want to get rid of owner and replace string `ref`s with arrow - * functions, and as long as `this` and owner are the same, there will be no - * change in behavior. - * @param {*} source An annotation object (added by a transpiler or otherwise) - * indicating filename, line number, and/or other information. - * @param {*} owner - * @param {*} props - * @internal - */ -var ReactElement = function (type, key, ref, self, source, owner, props) { - var element = { - // This tag allow us to uniquely identify this as a React Element - $$typeof: REACT_ELEMENT_TYPE, - - // Built-in properties that belong on the element - type: type, - key: key, - ref: ref, - props: props, - - // Record the component responsible for creating this element. - _owner: owner - }; - - if ("development" !== 'production') { - // The validation flag is currently mutative. We put it on - // an external backing store so that we can freeze the whole object. - // This can be replaced with a WeakMap once they are implemented in - // commonly used development environments. - element._store = {}; - - // To make comparing ReactElements easier for testing purposes, we make - // the validation flag non-enumerable (where possible, which should - // include every environment we run tests in), so the test framework - // ignores it. - if (canDefineProperty) { - Object.defineProperty(element._store, 'validated', { - configurable: false, - enumerable: false, - writable: true, - value: false - }); - // self and source are DEV only properties. - Object.defineProperty(element, '_self', { - configurable: false, - enumerable: false, - writable: false, - value: self - }); - // Two elements created in two different places should be considered - // equal for testing purposes and therefore we hide it from enumeration. - Object.defineProperty(element, '_source', { - configurable: false, - enumerable: false, - writable: false, - value: source - }); - } else { - element._store.validated = false; - element._self = self; - element._source = source; - } - if (Object.freeze) { - Object.freeze(element.props); - Object.freeze(element); - } - } - - return element; -}; - -/** - * Create and return a new ReactElement of the given type. - * See https://facebook.github.io/react/docs/react-api.html#createelement - */ -ReactElement.createElement = function (type, config, children) { - var propName; - - // Reserved names are extracted - var props = {}; - - var key = null; - var ref = null; - var self = null; - var source = null; - - if (config != null) { - if (hasValidRef(config)) { - ref = config.ref; - } - if (hasValidKey(config)) { - key = '' + config.key; - } - - self = config.__self === undefined ? null : config.__self; - source = config.__source === undefined ? null : config.__source; - // Remaining properties are added to a new props object - for (propName in config) { - if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) { - props[propName] = config[propName]; - } - } - } - - // Children can be more than one argument, and those are transferred onto - // the newly allocated props object. - var childrenLength = arguments.length - 2; - if (childrenLength === 1) { - props.children = children; - } else if (childrenLength > 1) { - var childArray = Array(childrenLength); - for (var i = 0; i < childrenLength; i++) { - childArray[i] = arguments[i + 2]; - } - if ("development" !== 'production') { - if (Object.freeze) { - Object.freeze(childArray); - } - } - props.children = childArray; - } - - // Resolve default props - if (type && type.defaultProps) { - var defaultProps = type.defaultProps; - for (propName in defaultProps) { - if (props[propName] === undefined) { - props[propName] = defaultProps[propName]; - } - } - } - if ("development" !== 'production') { - if (key || ref) { - if (typeof props.$$typeof === 'undefined' || props.$$typeof !== REACT_ELEMENT_TYPE) { - var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type; - if (key) { - defineKeyPropWarningGetter(props, displayName); - } - if (ref) { - defineRefPropWarningGetter(props, displayName); - } - } - } - } - return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props); -}; - -/** - * Return a function that produces ReactElements of a given type. - * See https://facebook.github.io/react/docs/react-api.html#createfactory - */ -ReactElement.createFactory = function (type) { - var factory = ReactElement.createElement.bind(null, type); - // Expose the type on the factory and the prototype so that it can be - // easily accessed on elements. E.g. `<Foo />.type === Foo`. - // This should not be named `constructor` since this may not be the function - // that created the element, and it may not even be a constructor. - // Legacy hook TODO: Warn if this is accessed - factory.type = type; - return factory; -}; - -ReactElement.cloneAndReplaceKey = function (oldElement, newKey) { - var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props); - - return newElement; -}; - -/** - * Clone and return a new ReactElement using element as the starting point. - * See https://facebook.github.io/react/docs/react-api.html#cloneelement - */ -ReactElement.cloneElement = function (element, config, children) { - var propName; - - // Original props are copied - var props = _assign({}, element.props); - - // Reserved names are extracted - var key = element.key; - var ref = element.ref; - // Self is preserved since the owner is preserved. - var self = element._self; - // Source is preserved since cloneElement is unlikely to be targeted by a - // transpiler, and the original source is probably a better indicator of the - // true owner. - var source = element._source; - - // Owner will be preserved, unless ref is overridden - var owner = element._owner; - - if (config != null) { - if (hasValidRef(config)) { - // Silently steal the ref from the parent. - ref = config.ref; - owner = ReactCurrentOwner.current; - } - if (hasValidKey(config)) { - key = '' + config.key; - } - - // Remaining properties override existing props - var defaultProps; - if (element.type && element.type.defaultProps) { - defaultProps = element.type.defaultProps; - } - for (propName in config) { - if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) { - if (config[propName] === undefined && defaultProps !== undefined) { - // Resolve default props - props[propName] = defaultProps[propName]; - } else { - props[propName] = config[propName]; - } - } - } - } - - // Children can be more than one argument, and those are transferred onto - // the newly allocated props object. - var childrenLength = arguments.length - 2; - if (childrenLength === 1) { - props.children = children; - } else if (childrenLength > 1) { - var childArray = Array(childrenLength); - for (var i = 0; i < childrenLength; i++) { - childArray[i] = arguments[i + 2]; - } - props.children = childArray; - } - - return ReactElement(element.type, key, ref, self, source, owner, props); -}; - -/** - * Verifies the object is a ReactElement. - * See https://facebook.github.io/react/docs/react-api.html#isvalidelement - * @param {?object} object - * @return {boolean} True if `object` is a valid component. - * @final - */ -ReactElement.isValidElement = function (object) { - return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; -}; - -module.exports = ReactElement; -},{"11":11,"19":19,"29":29,"30":30,"8":8}],11:[function(_dereq_,module,exports){ -/** - * Copyright 2014-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -'use strict'; - -// The Symbol used to tag the ReactElement type. If there is no native Symbol -// nor polyfill, then a plain number is used for performance. - -var REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol['for']('react.element') || 0xeac7; - -module.exports = REACT_ELEMENT_TYPE; -},{}],12:[function(_dereq_,module,exports){ -/** - * Copyright 2014-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -/** - * ReactElementValidator provides a wrapper around a element factory - * which validates the props passed to the element. This is intended to be - * used only in DEV and could be replaced by a static type checker for languages - * that support it. - */ - -'use strict'; - -var ReactCurrentOwner = _dereq_(8); -var ReactComponentTreeHook = _dereq_(7); -var ReactElement = _dereq_(10); - -var checkReactTypeSpec = _dereq_(20); - -var canDefineProperty = _dereq_(19); -var getComponentName = _dereq_(21); -var getIteratorFn = _dereq_(22); -var warning = _dereq_(29); - -function getDeclarationErrorAddendum() { - if (ReactCurrentOwner.current) { - var name = getComponentName(ReactCurrentOwner.current); - if (name) { - return ' Check the render method of `' + name + '`.'; - } - } - return ''; -} - -/** - * Warn if there's no key explicitly set on dynamic arrays of children or - * object keys are not valid. This allows us to keep track of children between - * updates. - */ -var ownerHasKeyUseWarning = {}; - -function getCurrentComponentErrorInfo(parentType) { - var info = getDeclarationErrorAddendum(); - - if (!info) { - var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name; - if (parentName) { - info = ' Check the top-level render call using <' + parentName + '>.'; - } - } - return info; -} - -/** - * Warn if the element doesn't have an explicit key assigned to it. - * This element is in an array. The array could grow and shrink or be - * reordered. All children that haven't already been validated are required to - * have a "key" property assigned to it. Error statuses are cached so a warning - * will only be shown once. - * - * @internal - * @param {ReactElement} element Element that requires a key. - * @param {*} parentType element's parent's type. - */ -function validateExplicitKey(element, parentType) { - if (!element._store || element._store.validated || element.key != null) { - return; - } - element._store.validated = true; - - var memoizer = ownerHasKeyUseWarning.uniqueKey || (ownerHasKeyUseWarning.uniqueKey = {}); - - var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType); - if (memoizer[currentComponentErrorInfo]) { - return; - } - memoizer[currentComponentErrorInfo] = true; - - // Usually the current owner is the offender, but if it accepts children as a - // property, it may be the creator of the child that's responsible for - // assigning it a key. - var childOwner = ''; - if (element && element._owner && element._owner !== ReactCurrentOwner.current) { - // Give the component that originally created this child. - childOwner = ' It was passed a child from ' + getComponentName(element._owner) + '.'; - } - - "development" !== 'production' ? warning(false, 'Each child in an array or iterator should have a unique "key" prop.' + '%s%s See https://fb.me/react-warning-keys for more information.%s', currentComponentErrorInfo, childOwner, ReactComponentTreeHook.getCurrentStackAddendum(element)) : void 0; -} - -/** - * Ensure that every element either is passed in a static location, in an - * array with an explicit keys property defined, or in an object literal - * with valid key property. - * - * @internal - * @param {ReactNode} node Statically passed child of any type. - * @param {*} parentType node's parent's type. - */ -function validateChildKeys(node, parentType) { - if (typeof node !== 'object') { - return; - } - if (Array.isArray(node)) { - for (var i = 0; i < node.length; i++) { - var child = node[i]; - if (ReactElement.isValidElement(child)) { - validateExplicitKey(child, parentType); - } - } - } else if (ReactElement.isValidElement(node)) { - // This element was passed in a valid location. - if (node._store) { - node._store.validated = true; - } - } else if (node) { - var iteratorFn = getIteratorFn(node); - // Entry iterators provide implicit keys. - if (iteratorFn) { - if (iteratorFn !== node.entries) { - var iterator = iteratorFn.call(node); - var step; - while (!(step = iterator.next()).done) { - if (ReactElement.isValidElement(step.value)) { - validateExplicitKey(step.value, parentType); - } - } - } - } - } -} - -/** - * Given an element, validate that its props follow the propTypes definition, - * provided by the type. - * - * @param {ReactElement} element - */ -function validatePropTypes(element) { - var componentClass = element.type; - if (typeof componentClass !== 'function') { - return; - } - var name = componentClass.displayName || componentClass.name; - if (componentClass.propTypes) { - checkReactTypeSpec(componentClass.propTypes, element.props, 'prop', name, element, null); - } - if (typeof componentClass.getDefaultProps === 'function') { - "development" !== 'production' ? warning(componentClass.getDefaultProps.isReactClassApproved, 'getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.') : void 0; - } -} - -var ReactElementValidator = { - - createElement: function (type, props, children) { - var validType = typeof type === 'string' || typeof type === 'function' || type !== null && typeof type === 'object' && typeof type.tag === 'number'; - // We warn in this case but don't throw. We expect the element creation to - // succeed and there will likely be errors in render. - if (!validType) { - "development" !== 'production' ? warning(false, 'React.createElement: type should not be null, undefined, boolean, or ' + 'number. It should be a string (for DOM elements) or a ReactClass ' + '(for composite components).%s', getDeclarationErrorAddendum()) : void 0; - } - - var element = ReactElement.createElement.apply(this, arguments); - - // The result can be nullish if a mock or a custom function is used. - // TODO: Drop this when these are no longer allowed as the type argument. - if (element == null) { - return element; - } - - // Skip key warning if the type isn't valid since our key validation logic - // doesn't expect a non-string/function type and can throw confusing errors. - // We don't want exception behavior to differ between dev and prod. - // (Rendering will throw with a helpful message and as soon as the type is - // fixed, the key warnings will appear.) - if (validType) { - for (var i = 2; i < arguments.length; i++) { - validateChildKeys(arguments[i], type); - } - } - - validatePropTypes(element); - - return element; - }, - - createFactory: function (type) { - var validatedFactory = ReactElementValidator.createElement.bind(null, type); - // Legacy hook TODO: Warn if this is accessed - validatedFactory.type = type; - - if ("development" !== 'production') { - if (canDefineProperty) { - Object.defineProperty(validatedFactory, 'type', { - enumerable: false, - get: function () { - "development" !== 'production' ? warning(false, 'Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.') : void 0; - Object.defineProperty(this, 'type', { - value: type - }); - return type; - } - }); - } - } - - return validatedFactory; - }, - - cloneElement: function (element, props, children) { - var newElement = ReactElement.cloneElement.apply(this, arguments); - for (var i = 2; i < arguments.length; i++) { - validateChildKeys(arguments[i], newElement.type); - } - validatePropTypes(newElement); - return newElement; - } - -}; - -module.exports = ReactElementValidator; -},{"10":10,"19":19,"20":20,"21":21,"22":22,"29":29,"7":7,"8":8}],13:[function(_dereq_,module,exports){ -/** - * Copyright 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var warning = _dereq_(29); - -function warnNoop(publicInstance, callerName) { - if ("development" !== 'production') { - var constructor = publicInstance.constructor; - "development" !== 'production' ? warning(false, '%s(...): Can only update a mounted or mounting component. ' + 'This usually means you called %s() on an unmounted component. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, constructor && (constructor.displayName || constructor.name) || 'ReactClass') : void 0; - } -} - -/** - * This is the abstract API for an update queue. - */ -var ReactNoopUpdateQueue = { - - /** - * Checks whether or not this composite component is mounted. - * @param {ReactClass} publicInstance The instance we want to test. - * @return {boolean} True if mounted, false otherwise. - * @protected - * @final - */ - isMounted: function (publicInstance) { - return false; - }, - - /** - * Enqueue a callback that will be executed after all the pending updates - * have processed. - * - * @param {ReactClass} publicInstance The instance to use as `this` context. - * @param {?function} callback Called after state is updated. - * @internal - */ - enqueueCallback: function (publicInstance, callback) {}, - - /** - * Forces an update. This should only be invoked when it is known with - * certainty that we are **not** in a DOM transaction. - * - * You may want to call this when you know that some deeper aspect of the - * component's state has changed but `setState` was not called. - * - * This will not invoke `shouldComponentUpdate`, but it will invoke - * `componentWillUpdate` and `componentDidUpdate`. - * - * @param {ReactClass} publicInstance The instance that should rerender. - * @internal - */ - enqueueForceUpdate: function (publicInstance) { - warnNoop(publicInstance, 'forceUpdate'); - }, - - /** - * Replaces all of the state. Always use this or `setState` to mutate state. - * You should treat `this.state` as immutable. - * - * There is no guarantee that `this.state` will be immediately updated, so - * accessing `this.state` after calling this method may return the old value. - * - * @param {ReactClass} publicInstance The instance that should rerender. - * @param {object} completeState Next state. - * @internal - */ - enqueueReplaceState: function (publicInstance, completeState) { - warnNoop(publicInstance, 'replaceState'); - }, - - /** - * Sets a subset of the state. This only exists because _pendingState is - * internal. This provides a merging strategy that is not available to deep - * properties which is confusing. TODO: Expose pendingState or don't use it - * during the merge. - * - * @param {ReactClass} publicInstance The instance that should rerender. - * @param {object} partialState Next partial state to be merged with state. - * @internal - */ - enqueueSetState: function (publicInstance, partialState) { - warnNoop(publicInstance, 'setState'); - } -}; - -module.exports = ReactNoopUpdateQueue; -},{"29":29}],14:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -'use strict'; - -var ReactPropTypeLocationNames = {}; - -if ("development" !== 'production') { - ReactPropTypeLocationNames = { - prop: 'prop', - context: 'context', - childContext: 'child context' - }; -} - -module.exports = ReactPropTypeLocationNames; -},{}],15:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _prodInvariant = _dereq_(24); - -var ReactElement = _dereq_(10); -var ReactPropTypeLocationNames = _dereq_(14); - -var emptyFunction = _dereq_(26); -var getIteratorFn = _dereq_(22); -var invariant = _dereq_(28); -var warning = _dereq_(29); - -/** - * Collection of methods that allow declaration and validation of props that are - * supplied to React components. Example usage: - * - * var Props = require('ReactPropTypes'); - * var MyArticle = React.createClass({ - * propTypes: { - * // An optional string prop named "description". - * description: Props.string, - * - * // A required enum prop named "category". - * category: Props.oneOf(['News','Photos']).isRequired, - * - * // A prop named "dialog" that requires an instance of Dialog. - * dialog: Props.instanceOf(Dialog).isRequired - * }, - * render: function() { ... } - * }); - * - * A more formal specification of how these methods are used: - * - * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...) - * decl := ReactPropTypes.{type}(.isRequired)? - * - * Each and every declaration produces a function with the same signature. This - * allows the creation of custom validation functions. For example: - * - * var MyLink = React.createClass({ - * propTypes: { - * // An optional string or URI prop named "href". - * href: function(props, propName, componentName) { - * var propValue = props[propName]; - * if (propValue != null && typeof propValue !== 'string' && - * !(propValue instanceof URI)) { - * return new Error( - * 'Expected a string or an URI for ' + propName + ' in ' + - * componentName - * ); - * } - * } - * }, - * render: function() {...} - * }); - * - * @internal - */ - -var ANONYMOUS = '<<anonymous>>'; - -if ("development" !== 'production') { - // Keep in sync with production version below - var ReactPropTypes = { - array: createPrimitiveTypeChecker('array'), - bool: createPrimitiveTypeChecker('boolean'), - func: createPrimitiveTypeChecker('function'), - number: createPrimitiveTypeChecker('number'), - object: createPrimitiveTypeChecker('object'), - string: createPrimitiveTypeChecker('string'), - symbol: createPrimitiveTypeChecker('symbol'), - - any: createAnyTypeChecker(), - arrayOf: createArrayOfTypeChecker, - element: createElementTypeChecker(), - instanceOf: createInstanceTypeChecker, - node: createNodeChecker(), - objectOf: createObjectOfTypeChecker, - oneOf: createEnumTypeChecker, - oneOfType: createUnionTypeChecker, - shape: createShapeTypeChecker - }; -} else { - var productionTypeChecker = function () { - !false ? "development" !== 'production' ? invariant(false, 'React.PropTypes type checking code is stripped in production.') : _prodInvariant('145') : void 0; - }; - productionTypeChecker.isRequired = productionTypeChecker; - var getProductionTypeChecker = function () { - return productionTypeChecker; - }; - // Keep in sync with development version above - var ReactPropTypes = { - array: productionTypeChecker, - bool: productionTypeChecker, - func: productionTypeChecker, - number: productionTypeChecker, - object: productionTypeChecker, - string: productionTypeChecker, - symbol: productionTypeChecker, - - any: productionTypeChecker, - arrayOf: getProductionTypeChecker, - element: productionTypeChecker, - instanceOf: getProductionTypeChecker, - node: productionTypeChecker, - objectOf: getProductionTypeChecker, - oneOf: getProductionTypeChecker, - oneOfType: getProductionTypeChecker, - shape: getProductionTypeChecker - }; -} - -/** - * inlined Object.is polyfill to avoid requiring consumers ship their own - * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is - */ -/*eslint-disable no-self-compare*/ -function is(x, y) { - // SameValue algorithm - if (x === y) { - // Steps 1-5, 7-10 - // Steps 6.b-6.e: +0 != -0 - return x !== 0 || 1 / x === 1 / y; - } else { - // Step 6.a: NaN == NaN - return x !== x && y !== y; - } -} -/*eslint-enable no-self-compare*/ - -/** - * We use an Error-like object for backward compatibility as people may call - * PropTypes directly and inspect their output. However we don't use real - * Errors anymore. We don't inspect their stack anyway, and creating them - * is prohibitively expensive if they are created too often, such as what - * happens in oneOfType() for any type before the one that matched. - */ -function PropTypeError(message) { - this.message = message; - this.stack = ''; -} -// Make `instanceof Error` still work for returned errors. -PropTypeError.prototype = Error.prototype; - -function createChainableTypeChecker(validate) { - function checkType(isRequired, props, propName, componentName, location, propFullName) { - componentName = componentName || ANONYMOUS; - propFullName = propFullName || propName; - if (props[propName] == null) { - var locationName = ReactPropTypeLocationNames[location]; - if (isRequired) { - if (props[propName] === null) { - return new PropTypeError('The ' + locationName + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.')); - } - return new PropTypeError('The ' + locationName + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.')); - } - return null; - } else { - return validate(props, propName, componentName, location, propFullName); - } - } - - var chainedCheckType = checkType.bind(null, false); - chainedCheckType.isRequired = checkType.bind(null, true); - - return chainedCheckType; -} - -function createPrimitiveTypeChecker(expectedType) { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== expectedType) { - var locationName = ReactPropTypeLocationNames[location]; - // `propValue` being instance of, say, date/regexp, pass the 'object' - // check, but we can offer a more precise error message here rather than - // 'of type `object`'. - var preciseType = getPreciseType(propValue); - - return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.')); - } - return null; - } - return createChainableTypeChecker(validate); -} - -function createAnyTypeChecker() { - return createChainableTypeChecker(emptyFunction.thatReturns(null)); -} - -function createArrayOfTypeChecker(typeChecker) { - function validate(props, propName, componentName, location, propFullName) { - if (typeof typeChecker !== 'function') { - return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.'); - } - var propValue = props[propName]; - if (!Array.isArray(propValue)) { - var locationName = ReactPropTypeLocationNames[location]; - var propType = getPropType(propValue); - return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); - } - for (var i = 0; i < propValue.length; i++) { - var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']'); - if (error instanceof Error) { - return error; - } - } - return null; - } - return createChainableTypeChecker(validate); -} - -function createElementTypeChecker() { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - if (!ReactElement.isValidElement(propValue)) { - var locationName = ReactPropTypeLocationNames[location]; - var propType = getPropType(propValue); - return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.')); - } - return null; - } - return createChainableTypeChecker(validate); -} - -function createInstanceTypeChecker(expectedClass) { - function validate(props, propName, componentName, location, propFullName) { - if (!(props[propName] instanceof expectedClass)) { - var locationName = ReactPropTypeLocationNames[location]; - var expectedClassName = expectedClass.name || ANONYMOUS; - var actualClassName = getClassName(props[propName]); - return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); - } - return null; - } - return createChainableTypeChecker(validate); -} - -function createEnumTypeChecker(expectedValues) { - if (!Array.isArray(expectedValues)) { - "development" !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0; - return emptyFunction.thatReturnsNull; - } - - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - for (var i = 0; i < expectedValues.length; i++) { - if (is(propValue, expectedValues[i])) { - return null; - } - } - - var locationName = ReactPropTypeLocationNames[location]; - var valuesString = JSON.stringify(expectedValues); - return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); - } - return createChainableTypeChecker(validate); -} - -function createObjectOfTypeChecker(typeChecker) { - function validate(props, propName, componentName, location, propFullName) { - if (typeof typeChecker !== 'function') { - return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); - } - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== 'object') { - var locationName = ReactPropTypeLocationNames[location]; - return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); - } - for (var key in propValue) { - if (propValue.hasOwnProperty(key)) { - var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key); - if (error instanceof Error) { - return error; - } - } - } - return null; - } - return createChainableTypeChecker(validate); -} - -function createUnionTypeChecker(arrayOfTypeCheckers) { - if (!Array.isArray(arrayOfTypeCheckers)) { - "development" !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0; - return emptyFunction.thatReturnsNull; - } - - function validate(props, propName, componentName, location, propFullName) { - for (var i = 0; i < arrayOfTypeCheckers.length; i++) { - var checker = arrayOfTypeCheckers[i]; - if (checker(props, propName, componentName, location, propFullName) == null) { - return null; - } - } - - var locationName = ReactPropTypeLocationNames[location]; - return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.')); - } - return createChainableTypeChecker(validate); -} - -function createNodeChecker() { - function validate(props, propName, componentName, location, propFullName) { - if (!isNode(props[propName])) { - var locationName = ReactPropTypeLocationNames[location]; - return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); - } - return null; - } - return createChainableTypeChecker(validate); -} - -function createShapeTypeChecker(shapeTypes) { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== 'object') { - var locationName = ReactPropTypeLocationNames[location]; - return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); - } - for (var key in shapeTypes) { - var checker = shapeTypes[key]; - if (!checker) { - continue; - } - var error = checker(propValue, key, componentName, location, propFullName + '.' + key); - if (error) { - return error; - } - } - return null; - } - return createChainableTypeChecker(validate); -} - -function isNode(propValue) { - switch (typeof propValue) { - case 'number': - case 'string': - case 'undefined': - return true; - case 'boolean': - return !propValue; - case 'object': - if (Array.isArray(propValue)) { - return propValue.every(isNode); - } - if (propValue === null || ReactElement.isValidElement(propValue)) { - return true; - } - - var iteratorFn = getIteratorFn(propValue); - if (iteratorFn) { - var iterator = iteratorFn.call(propValue); - var step; - if (iteratorFn !== propValue.entries) { - while (!(step = iterator.next()).done) { - if (!isNode(step.value)) { - return false; - } - } - } else { - // Iterator will provide entry [k,v] tuples rather than values. - while (!(step = iterator.next()).done) { - var entry = step.value; - if (entry) { - if (!isNode(entry[1])) { - return false; - } - } - } - } - } else { - return false; - } - - return true; - default: - return false; - } -} - -function isSymbol(propType, propValue) { - // Native Symbol. - if (propType === 'symbol') { - return true; - } - - // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' - if (propValue['@@toStringTag'] === 'Symbol') { - return true; - } - - // Fallback for non-spec compliant Symbols which are polyfilled. - if (typeof Symbol === 'function' && propValue instanceof Symbol) { - return true; - } - - return false; -} - -// Equivalent of `typeof` but with special handling for array and regexp. -function getPropType(propValue) { - var propType = typeof propValue; - if (Array.isArray(propValue)) { - return 'array'; - } - if (propValue instanceof RegExp) { - // Old webkits (at least until Android 4.0) return 'function' rather than - // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ - // passes PropTypes.object. - return 'object'; - } - if (isSymbol(propType, propValue)) { - return 'symbol'; - } - return propType; -} - -// This handles more types than `getPropType`. Only used for error messages. -// See `createPrimitiveTypeChecker`. -function getPreciseType(propValue) { - var propType = getPropType(propValue); - if (propType === 'object') { - if (propValue instanceof Date) { - return 'date'; - } else if (propValue instanceof RegExp) { - return 'regexp'; - } - } - return propType; -} - -// Returns class name of the object, if any. -function getClassName(propValue) { - if (!propValue.constructor || !propValue.constructor.name) { - return ANONYMOUS; - } - return propValue.constructor.name; -} - -module.exports = ReactPropTypes; -},{"10":10,"14":14,"22":22,"24":24,"26":26,"28":28,"29":29}],16:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _assign = _dereq_(30); - -var ReactComponent = _dereq_(6); -var ReactNoopUpdateQueue = _dereq_(13); - -var emptyObject = _dereq_(27); - -/** - * Base class helpers for the updating state of a component. - */ -function ReactPureComponent(props, context, updater) { - // Duplicated from ReactComponent. - this.props = props; - this.context = context; - this.refs = emptyObject; - // We initialize the default updater but the real one gets injected by the - // renderer. - this.updater = updater || ReactNoopUpdateQueue; -} - -function ComponentDummy() {} -ComponentDummy.prototype = ReactComponent.prototype; -ReactPureComponent.prototype = new ComponentDummy(); -ReactPureComponent.prototype.constructor = ReactPureComponent; -// Avoid an extra prototype jump for these methods. -_assign(ReactPureComponent.prototype, ReactComponent.prototype); -ReactPureComponent.prototype.isPureReactComponent = true; - -module.exports = ReactPureComponent; -},{"13":13,"27":27,"30":30,"6":6}],17:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _assign = _dereq_(30); - -var React = _dereq_(3); - -// `version` will be added here by the React module. -var ReactUMDEntry = _assign({ - __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: { - ReactCurrentOwner: _dereq_(8) - } -}, React); - -if ("development" !== 'production') { - _assign(ReactUMDEntry.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, { - // ReactComponentTreeHook should not be included in production. - ReactComponentTreeHook: _dereq_(7) - }); -} - -module.exports = ReactUMDEntry; -},{"3":3,"30":30,"7":7,"8":8}],18:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -module.exports = '16.0.0-alpha'; -},{}],19:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -'use strict'; - -var canDefineProperty = false; -if ("development" !== 'production') { - try { - // $FlowFixMe https://github.com/facebook/flow/issues/285 - Object.defineProperty({}, 'x', { get: function () {} }); - canDefineProperty = true; - } catch (x) { - // IE will fail on defineProperty - } -} - -module.exports = canDefineProperty; -},{}],20:[function(_dereq_,module,exports){ -(function (process){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _prodInvariant = _dereq_(24); - -var ReactPropTypeLocationNames = _dereq_(14); - -var invariant = _dereq_(28); -var warning = _dereq_(29); - -var ReactComponentTreeHook; - -if (typeof process !== 'undefined' && process.env && "development" === 'test') { - // Temporary hack. - // Inline requires don't work well with Jest: - // https://github.com/facebook/react/issues/7240 - // Remove the inline requires when we don't need them anymore: - // https://github.com/facebook/react/pull/7178 - ReactComponentTreeHook = _dereq_(7); -} - -var loggedTypeFailures = {}; - -/** - * Assert that the values match with the type specs. - * Error messages are memorized and will only be shown once. - * - * @param {object} typeSpecs Map of name to a ReactPropType - * @param {object} values Runtime values that need to be type-checked - * @param {string} location e.g. "prop", "context", "child context" - * @param {string} componentName Name of the component for error messages. - * @param {?object} element The React element that is being type-checked - * @param {?number} debugID The React component instance that is being type-checked - * @private - */ -function checkReactTypeSpec(typeSpecs, values, location, componentName, element, debugID) { - for (var typeSpecName in typeSpecs) { - if (typeSpecs.hasOwnProperty(typeSpecName)) { - var error; - // Prop type validation may throw. In case they do, we don't want to - // fail the render phase where it didn't fail before. So we log it. - // After these have been cleaned up, we'll let them throw. - try { - // This is intentionally an invariant that gets caught. It's the same - // behavior as without this statement except with a better message. - !(typeof typeSpecs[typeSpecName] === 'function') ? "development" !== 'production' ? invariant(false, '%s: %s type `%s` is invalid; it must be a function, usually from React.PropTypes.', componentName || 'React class', ReactPropTypeLocationNames[location], typeSpecName) : _prodInvariant('84', componentName || 'React class', ReactPropTypeLocationNames[location], typeSpecName) : void 0; - error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location); - } catch (ex) { - error = ex; - } - "development" !== 'production' ? warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', ReactPropTypeLocationNames[location], typeSpecName, typeof error) : void 0; - if (error instanceof Error && !(error.message in loggedTypeFailures)) { - // Only monitor this failure once because there tends to be a lot of the - // same error. - loggedTypeFailures[error.message] = true; - - var componentStackInfo = ''; - - if ("development" !== 'production') { - if (!ReactComponentTreeHook) { - ReactComponentTreeHook = _dereq_(7); - } - if (debugID !== null) { - componentStackInfo = ReactComponentTreeHook.getStackAddendumByID(debugID); - } else if (element !== null) { - componentStackInfo = ReactComponentTreeHook.getCurrentStackAddendum(element); - } - } - - "development" !== 'production' ? warning(false, 'Failed %s type: %s%s', location, error.message, componentStackInfo) : void 0; - } - } - } -} - -module.exports = checkReactTypeSpec; -}).call(this,undefined) -},{"14":14,"24":24,"28":28,"29":29,"7":7}],21:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -'use strict'; - -function getComponentName(instanceOrFiber) { - if ("development" !== 'production') { - if (typeof instanceOrFiber.getName === 'function') { - // Stack reconciler - var instance = instanceOrFiber; - return instance.getName() || 'Component'; - } - if (typeof instanceOrFiber.tag === 'number') { - // Fiber reconciler - var fiber = instanceOrFiber; - var type = fiber.type; - - if (typeof type === 'string') { - return type; - } - if (typeof type === 'function') { - return type.displayName || type.name || null; - } - } - } - return null; -} - -module.exports = getComponentName; -},{}],22:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -'use strict'; - -/* global Symbol */ - -var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; -var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. - -/** - * Returns the iterator method function contained on the iterable object. - * - * Be sure to invoke the function with the iterable as context: - * - * var iteratorFn = getIteratorFn(myIterable); - * if (iteratorFn) { - * var iterator = iteratorFn.call(myIterable); - * ... - * } - * - * @param {?object} maybeIterable - * @return {?function} - */ -function getIteratorFn(maybeIterable) { - var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); - if (typeof iteratorFn === 'function') { - return iteratorFn; - } -} - -module.exports = getIteratorFn; -},{}],23:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ -'use strict'; - -var _prodInvariant = _dereq_(24); - -var ReactElement = _dereq_(10); - -var invariant = _dereq_(28); - -/** - * Returns the first child in a collection of children and verifies that there - * is only one child in the collection. - * - * See https://facebook.github.io/react/docs/react-api.html#react.children.only - * - * The current implementation of this function assumes that a single child gets - * passed without a wrapper, but the purpose of this helper function is to - * abstract away the particular structure of children. - * - * @param {?object} children Child collection structure. - * @return {ReactElement} The first and only `ReactElement` contained in the - * structure. - */ -function onlyChild(children) { - !ReactElement.isValidElement(children) ? "development" !== 'production' ? invariant(false, 'React.Children.only expected to receive a single React element child.') : _prodInvariant('143') : void 0; - return children; -} - -module.exports = onlyChild; -},{"10":10,"24":24,"28":28}],24:[function(_dereq_,module,exports){ -/** - * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ -'use strict'; - -/** - * WARNING: DO NOT manually require this module. - * This is a replacement for `invariant(...)` used by the error code system - * and will _only_ be required by the corresponding babel pass. - * It always throws. - */ - -function reactProdInvariant(code) { - var argCount = arguments.length - 1; - - var message = 'Minified React error #' + code + '; visit ' + 'http://facebook.github.io/react/docs/error-decoder.html?invariant=' + code; - - for (var argIdx = 0; argIdx < argCount; argIdx++) { - message += '&args[]=' + encodeURIComponent(arguments[argIdx + 1]); - } - - message += ' for the full message or use the non-minified dev environment' + ' for full errors and additional helpful warnings.'; - - var error = new Error(message); - error.name = 'Invariant Violation'; - error.framesToPop = 1; // we don't care about reactProdInvariant's own frame - - throw error; -} - -module.exports = reactProdInvariant; -},{}],25:[function(_dereq_,module,exports){ -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var _prodInvariant = _dereq_(24); - -var ReactCurrentOwner = _dereq_(8); -var REACT_ELEMENT_TYPE = _dereq_(11); - -var getIteratorFn = _dereq_(22); -var invariant = _dereq_(28); -var KeyEscapeUtils = _dereq_(1); -var warning = _dereq_(29); - -var SEPARATOR = '.'; -var SUBSEPARATOR = ':'; - -/** - * This is inlined from ReactElement since this file is shared between - * isomorphic and renderers. We could extract this to a - * - */ - -/** - * TODO: Test that a single child and an array with one item have the same key - * pattern. - */ - -var didWarnAboutMaps = false; - -/** - * Generate a key string that identifies a component within a set. - * - * @param {*} component A component that could contain a manual key. - * @param {number} index Index that is used if a manual key is not provided. - * @return {string} - */ -function getComponentKey(component, index) { - // Do some typechecking here since we call this blindly. We want to ensure - // that we don't block potential future ES APIs. - if (component && typeof component === 'object' && component.key != null) { - // Explicit key - return KeyEscapeUtils.escape(component.key); - } - // Implicit key determined by the index in the set - return index.toString(36); -} - -/** - * @param {?*} children Children tree container. - * @param {!string} nameSoFar Name of the key path so far. - * @param {!function} callback Callback to invoke with each child found. - * @param {?*} traverseContext Used to pass information throughout the traversal - * process. - * @return {!number} The number of children in this subtree. - */ -function traverseAllChildrenImpl(children, nameSoFar, callback, traverseContext) { - var type = typeof children; - - if (type === 'undefined' || type === 'boolean') { - // All of the above are perceived as null. - children = null; - } - - if (children === null || type === 'string' || type === 'number' || - // The following is inlined from ReactElement. This means we can optimize - // some checks. React Fiber also inlines this logic for similar purposes. - type === 'object' && children.$$typeof === REACT_ELEMENT_TYPE) { - callback(traverseContext, children, - // If it's the only child, treat the name as if it was wrapped in an array - // so that it's consistent if the number of children grows. - nameSoFar === '' ? SEPARATOR + getComponentKey(children, 0) : nameSoFar); - return 1; - } - - var child; - var nextName; - var subtreeCount = 0; // Count of children found in the current subtree. - var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR; - - if (Array.isArray(children)) { - for (var i = 0; i < children.length; i++) { - child = children[i]; - nextName = nextNamePrefix + getComponentKey(child, i); - subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext); - } - } else { - var iteratorFn = getIteratorFn(children); - if (iteratorFn) { - var iterator = iteratorFn.call(children); - var step; - if (iteratorFn !== children.entries) { - var ii = 0; - while (!(step = iterator.next()).done) { - child = step.value; - nextName = nextNamePrefix + getComponentKey(child, ii++); - subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext); - } - } else { - if ("development" !== 'production') { - var mapsAsChildrenAddendum = ''; - if (ReactCurrentOwner.current) { - var mapsAsChildrenOwnerName = ReactCurrentOwner.current.getName(); - if (mapsAsChildrenOwnerName) { - mapsAsChildrenAddendum = ' Check the render method of `' + mapsAsChildrenOwnerName + '`.'; - } - } - "development" !== 'production' ? warning(didWarnAboutMaps, 'Using Maps as children is not yet fully supported. It is an ' + 'experimental feature that might be removed. Convert it to a ' + 'sequence / iterable of keyed ReactElements instead.%s', mapsAsChildrenAddendum) : void 0; - didWarnAboutMaps = true; - } - // Iterator will provide entry [k,v] tuples rather than values. - while (!(step = iterator.next()).done) { - var entry = step.value; - if (entry) { - child = entry[1]; - nextName = nextNamePrefix + KeyEscapeUtils.escape(entry[0]) + SUBSEPARATOR + getComponentKey(child, 0); - subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext); - } - } - } - } else if (type === 'object') { - var addendum = ''; - if ("development" !== 'production') { - addendum = ' If you meant to render a collection of children, use an array ' + 'instead or wrap the object using createFragment(object) from the ' + 'React add-ons.'; - if (children._isReactElement) { - addendum = ' It looks like you\'re using an element created by a different ' + 'version of React. Make sure to use only one copy of React.'; - } - if (ReactCurrentOwner.current) { - var name = ReactCurrentOwner.current.getName(); - if (name) { - addendum += ' Check the render method of `' + name + '`.'; - } - } - } - var childrenString = String(children); - !false ? "development" !== 'production' ? invariant(false, 'Objects are not valid as a React child (found: %s).%s', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : _prodInvariant('31', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : void 0; - } - } - - return subtreeCount; -} - -/** - * Traverses children that are typically specified as `props.children`, but - * might also be specified through attributes: - * - * - `traverseAllChildren(this.props.children, ...)` - * - `traverseAllChildren(this.props.leftPanelChildren, ...)` - * - * The `traverseContext` is an optional argument that is passed through the - * entire traversal. It can be used to store accumulations or anything else that - * the callback might find relevant. - * - * @param {?*} children Children tree object. - * @param {!function} callback To invoke upon traversing each child. - * @param {?*} traverseContext Context for traversal. - * @return {!number} The number of children in this subtree. - */ -function traverseAllChildren(children, callback, traverseContext) { - if (children == null) { - return 0; - } - - return traverseAllChildrenImpl(children, '', callback, traverseContext); -} - -module.exports = traverseAllChildren; -},{"1":1,"11":11,"22":22,"24":24,"28":28,"29":29,"8":8}],26:[function(_dereq_,module,exports){ -"use strict"; - -/** - * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - -function makeEmptyFunction(arg) { - return function () { - return arg; - }; -} - -/** - * This function accepts and discards inputs; it has no side effects. This is - * primarily useful idiomatically for overridable function endpoints which - * always need to be callable, since JS lacks a null-call idiom ala Cocoa. - */ -var emptyFunction = function emptyFunction() {}; - -emptyFunction.thatReturns = makeEmptyFunction; -emptyFunction.thatReturnsFalse = makeEmptyFunction(false); -emptyFunction.thatReturnsTrue = makeEmptyFunction(true); -emptyFunction.thatReturnsNull = makeEmptyFunction(null); -emptyFunction.thatReturnsThis = function () { - return this; -}; -emptyFunction.thatReturnsArgument = function (arg) { - return arg; -}; - -module.exports = emptyFunction; -},{}],27:[function(_dereq_,module,exports){ -/** - * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var emptyObject = {}; - -if ("development" !== 'production') { - Object.freeze(emptyObject); -} - -module.exports = emptyObject; -},{}],28:[function(_dereq_,module,exports){ -/** - * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -/** - * Use invariant() to assert state which your program assumes to be true. - * - * Provide sprintf-style format (only %s is supported) and arguments - * to provide information about what broke and what you were - * expecting. - * - * The invariant message will be stripped in production, but the invariant - * will remain to ensure logic does not differ in production. - */ - -function invariant(condition, format, a, b, c, d, e, f) { - if ("development" !== 'production') { - if (format === undefined) { - throw new Error('invariant requires an error message argument'); - } - } - - if (!condition) { - var error; - if (format === undefined) { - error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.'); - } else { - var args = [a, b, c, d, e, f]; - var argIndex = 0; - error = new Error(format.replace(/%s/g, function () { - return args[argIndex++]; - })); - error.name = 'Invariant Violation'; - } - - error.framesToPop = 1; // we don't care about invariant's own frame - throw error; - } -} - -module.exports = invariant; -},{}],29:[function(_dereq_,module,exports){ -/** - * Copyright 2014-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -'use strict'; - -var emptyFunction = _dereq_(26); - -/** - * Similar to invariant but only logs a warning if the condition is not met. - * This can be used to log issues in development environments in critical - * paths. Removing the logging code for production environments will keep the - * same logic and follow the same code paths. - */ - -var warning = emptyFunction; - -if ("development" !== 'production') { - (function () { - var printWarning = function printWarning(format) { - for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - - var argIndex = 0; - var message = 'Warning: ' + format.replace(/%s/g, function () { - return args[argIndex++]; - }); - if (typeof console !== 'undefined') { - console.error(message); - } - try { - // --- Welcome to debugging React --- - // This error was thrown as a convenience so that you can use this stack - // to find the callsite that caused this warning to fire. - throw new Error(message); - } catch (x) {} - }; - - warning = function warning(condition, format) { - if (format === undefined) { - throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument'); - } - - if (format.indexOf('Failed Composite propType: ') === 0) { - return; // Ignore CompositeComponent proptype check. - } - - if (!condition) { - for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { - args[_key2 - 2] = arguments[_key2]; - } - - printWarning.apply(undefined, [format].concat(args)); - } - }; - })(); -} - -module.exports = warning; -},{"26":26}],30:[function(_dereq_,module,exports){ -'use strict'; -/* eslint-disable no-unused-vars */ -var hasOwnProperty = Object.prototype.hasOwnProperty; -var propIsEnumerable = Object.prototype.propertyIsEnumerable; - -function toObject(val) { - if (val === null || val === undefined) { - throw new TypeError('Object.assign cannot be called with null or undefined'); - } - - return Object(val); -} - -function shouldUseNative() { - try { - if (!Object.assign) { - return false; - } - - // Detect buggy property enumeration order in older V8 versions. - - // https://bugs.chromium.org/p/v8/issues/detail?id=4118 - var test1 = new String('abc'); // eslint-disable-line - test1[5] = 'de'; - if (Object.getOwnPropertyNames(test1)[0] === '5') { - return false; - } - - // https://bugs.chromium.org/p/v8/issues/detail?id=3056 - var test2 = {}; - for (var i = 0; i < 10; i++) { - test2['_' + String.fromCharCode(i)] = i; - } - var order2 = Object.getOwnPropertyNames(test2).map(function (n) { - return test2[n]; - }); - if (order2.join('') !== '0123456789') { - return false; - } - - // https://bugs.chromium.org/p/v8/issues/detail?id=3056 - var test3 = {}; - 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { - test3[letter] = letter; - }); - if (Object.keys(Object.assign({}, test3)).join('') !== - 'abcdefghijklmnopqrst') { - return false; - } - - return true; - } catch (e) { - // We don't expect any of the above to throw, but better to be safe. - return false; - } -} - -module.exports = shouldUseNative() ? Object.assign : function (target, source) { - var from; - var to = toObject(target); - var symbols; - - for (var s = 1; s < arguments.length; s++) { - from = Object(arguments[s]); - - for (var key in from) { - if (hasOwnProperty.call(from, key)) { - to[key] = from[key]; - } - } - - if (Object.getOwnPropertySymbols) { - symbols = Object.getOwnPropertySymbols(from); - for (var i = 0; i < symbols.length; i++) { - if (propIsEnumerable.call(from, symbols[i])) { - to[symbols[i]] = from[symbols[i]]; - } - } - } - } - - return to; -}; - -},{}]},{},[17])(17) -});
\ No newline at end of file diff --git a/src/vendor/react.js b/src/vendor/react.js deleted file mode 120000 index 606718197..000000000 --- a/src/vendor/react.js +++ /dev/null @@ -1 +0,0 @@ -react.min.js
\ No newline at end of file diff --git a/src/vendor/react.min.js b/src/vendor/react.min.js deleted file mode 100644 index 842954fe7..000000000 --- a/src/vendor/react.min.js +++ /dev/null @@ -1,12 +0,0 @@ -/** - * React v16.0.0-alpha - * - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ -!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e.React=t()}}(function(){return function t(e,n,r){function o(a,u){if(!n[a]){if(!e[a]){var s="function"==typeof require&&require;if(!u&&s)return s(a,!0);if(i)return i(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var l=n[a]={exports:{}};e[a][0].call(l.exports,function(t){var n=e[a][1][t];return o(n?n:t)},l,l.exports,t,e,n,r)}return n[a].exports}for(var i="function"==typeof require&&require,a=0;a<r.length;a++)o(r[a]);return o}({1:[function(t,e,n){"use strict";function r(t){var e=/[=:]/g,n={"=":"=0",":":"=2"},r=(""+t).replace(e,function(t){return n[t]});return"$"+r}function o(t){var e=/(=0|=2)/g,n={"=0":"=","=2":":"},r="."===t[0]&&"$"===t[1]?t.substring(2):t.substring(1);return(""+r).replace(e,function(t){return n[t]})}var i={escape:r,unescape:o};e.exports=i},{}],2:[function(t,e,n){"use strict";var r=t(20),o=(t(24),function(t){var e=this;if(e.instancePool.length){var n=e.instancePool.pop();return e.call(n,t),n}return new e(t)}),i=function(t,e){var n=this;if(n.instancePool.length){var r=n.instancePool.pop();return n.call(r,t,e),r}return new n(t,e)},a=function(t,e,n){var r=this;if(r.instancePool.length){var o=r.instancePool.pop();return r.call(o,t,e,n),o}return new r(t,e,n)},u=function(t,e,n,r){var o=this;if(o.instancePool.length){var i=o.instancePool.pop();return o.call(i,t,e,n,r),i}return new o(t,e,n,r)},s=function(t,e,n,r,o){var i=this;if(i.instancePool.length){var a=i.instancePool.pop();return i.call(a,t,e,n,r,o),a}return new i(t,e,n,r,o)},c=function(t){var e=this;t instanceof e?void 0:r("25"),t.destructor(),e.instancePool.length<e.poolSize&&e.instancePool.push(t)},l=10,p=o,f=function(t,e){var n=t;return n.instancePool=[],n.getPooled=e||p,n.poolSize||(n.poolSize=l),n.release=c,n},d={addPoolingTo:f,oneArgumentPooler:o,twoArgumentPooler:i,threeArgumentPooler:a,fourArgumentPooler:u,fiveArgumentPooler:s};e.exports=d},{20:20,24:24}],3:[function(t,e,n){"use strict";var r=t(26),o=t(4),i=t(6),a=t(14),u=t(5),s=t(8),c=t(9),l=t(13),p=t(16),f=t(19),d=(t(25),c.createElement),h=c.createFactory,y=c.cloneElement,v=r,m={Children:{map:o.map,forEach:o.forEach,count:o.count,toArray:o.toArray,only:f},Component:i,PureComponent:a,createElement:d,cloneElement:y,isValidElement:c.isValidElement,PropTypes:l,createClass:u.createClass,createFactory:h,createMixin:function(t){return t},DOM:s,version:p,__spread:v};e.exports=m},{13:13,14:14,16:16,19:19,25:25,26:26,4:4,5:5,6:6,8:8,9:9}],4:[function(t,e,n){"use strict";function r(t){return(""+t).replace(E,"$&/")}function o(t,e){this.func=t,this.context=e,this.count=0}function i(t,e,n){var r=t.func,o=t.context;r.call(o,e,t.count++)}function a(t,e,n){if(null==t)return t;var r=o.getPooled(e,n);m(t,i,r),o.release(r)}function u(t,e,n,r){this.result=t,this.keyPrefix=e,this.func=n,this.context=r,this.count=0}function s(t,e,n){var o=t.result,i=t.keyPrefix,a=t.func,u=t.context,s=a.call(u,e,t.count++);Array.isArray(s)?c(s,o,n,v.thatReturnsArgument):null!=s&&(y.isValidElement(s)&&(s=y.cloneAndReplaceKey(s,i+(!s.key||e&&e.key===s.key?"":r(s.key)+"/")+n)),o.push(s))}function c(t,e,n,o,i){var a="";null!=n&&(a=r(n)+"/");var c=u.getPooled(e,a,o,i);m(t,s,c),u.release(c)}function l(t,e,n){if(null==t)return t;var r=[];return c(t,r,null,e,n),r}function p(t,e,n){return null}function f(t,e){return m(t,p,null)}function d(t){var e=[];return c(t,e,null,v.thatReturnsArgument),e}var h=t(2),y=t(9),v=t(22),m=t(21),g=h.twoArgumentPooler,b=h.fourArgumentPooler,E=/\/+/g;o.prototype.destructor=function(){this.func=null,this.context=null,this.count=0},h.addPoolingTo(o,g),u.prototype.destructor=function(){this.result=null,this.keyPrefix=null,this.func=null,this.context=null,this.count=0},h.addPoolingTo(u,b);var _={forEach:a,map:l,mapIntoWithKeyPrefixInternal:c,count:f,toArray:d};e.exports=_},{2:2,21:21,22:22,9:9}],5:[function(t,e,n){"use strict";function r(t){return t}function o(t,e){var n=b.hasOwnProperty(e)?b[e]:null;_.hasOwnProperty(e)&&("OVERRIDE_BASE"!==n?f("73",e):void 0),t&&("DEFINE_MANY"!==n&&"DEFINE_MANY_MERGED"!==n?f("74",e):void 0)}function i(t,e){if(e){"function"==typeof e?f("75"):void 0,y.isValidElement(e)?f("76"):void 0;var n=t.prototype,r=n.__reactAutoBindPairs;e.hasOwnProperty(g)&&E.mixins(t,e.mixins);for(var i in e)if(e.hasOwnProperty(i)&&i!==g){var a=e[i],u=n.hasOwnProperty(i);if(o(u,i),E.hasOwnProperty(i))E[i](t,a);else{var l=b.hasOwnProperty(i),p="function"==typeof a,d=p&&!l&&!u&&e.autobind!==!1;if(d)r.push(i,a),n[i]=a;else if(u){var h=b[i];!l||"DEFINE_MANY_MERGED"!==h&&"DEFINE_MANY"!==h?f("77",h,i):void 0,"DEFINE_MANY_MERGED"===h?n[i]=s(n[i],a):"DEFINE_MANY"===h&&(n[i]=c(n[i],a))}else n[i]=a}}}}function a(t,e){if(e)for(var n in e){var r=e[n];if(e.hasOwnProperty(n)){var o=n in E;o?f("78",n):void 0;var i=n in t;i?f("79",n):void 0,t[n]=r}}}function u(t,e){t&&e&&"object"==typeof t&&"object"==typeof e?void 0:f("80");for(var n in e)e.hasOwnProperty(n)&&(void 0!==t[n]?f("81",n):void 0,t[n]=e[n]);return t}function s(t,e){return function(){var n=t.apply(this,arguments),r=e.apply(this,arguments);if(null==n)return r;if(null==r)return n;var o={};return u(o,n),u(o,r),o}}function c(t,e){return function(){t.apply(this,arguments),e.apply(this,arguments)}}function l(t,e){var n=e.bind(t);return n}function p(t){for(var e=t.__reactAutoBindPairs,n=0;n<e.length;n+=2){var r=e[n],o=e[n+1];t[r]=l(t,o)}}var f=t(20),d=t(26),h=t(6),y=t(9),v=(t(12),t(11)),m=t(23),g=(t(24),t(25),"mixins"),b={mixins:"DEFINE_MANY",statics:"DEFINE_MANY",propTypes:"DEFINE_MANY",contextTypes:"DEFINE_MANY",childContextTypes:"DEFINE_MANY",getDefaultProps:"DEFINE_MANY_MERGED",getInitialState:"DEFINE_MANY_MERGED",getChildContext:"DEFINE_MANY_MERGED",render:"DEFINE_ONCE",componentWillMount:"DEFINE_MANY",componentDidMount:"DEFINE_MANY",componentWillReceiveProps:"DEFINE_MANY",shouldComponentUpdate:"DEFINE_ONCE",componentWillUpdate:"DEFINE_MANY",componentDidUpdate:"DEFINE_MANY",componentWillUnmount:"DEFINE_MANY",updateComponent:"OVERRIDE_BASE"},E={displayName:function(t,e){t.displayName=e},mixins:function(t,e){if(e)for(var n=0;n<e.length;n++)i(t,e[n])},childContextTypes:function(t,e){t.childContextTypes=d({},t.childContextTypes,e)},contextTypes:function(t,e){t.contextTypes=d({},t.contextTypes,e)},getDefaultProps:function(t,e){t.getDefaultProps?t.getDefaultProps=s(t.getDefaultProps,e):t.getDefaultProps=e},propTypes:function(t,e){t.propTypes=d({},t.propTypes,e)},statics:function(t,e){a(t,e)},autobind:function(){}},_={replaceState:function(t,e){this.updater.enqueueReplaceState(this,t),e&&this.updater.enqueueCallback(this,e,"replaceState")},isMounted:function(){return this.updater.isMounted(this)}},P=function(){};d(P.prototype,h.prototype,_);var x={createClass:function(t){var e=r(function(t,n,r){this.__reactAutoBindPairs.length&&p(this),this.props=t,this.context=n,this.refs=m,this.updater=r||v,this.state=null;var o=this.getInitialState?this.getInitialState():null;"object"!=typeof o||Array.isArray(o)?f("82",e.displayName||"ReactCompositeComponent"):void 0,this.state=o});e.prototype=new P,e.prototype.constructor=e,e.prototype.__reactAutoBindPairs=[],i(e,t),e.getDefaultProps&&(e.defaultProps=e.getDefaultProps()),e.prototype.render?void 0:f("83");for(var n in b)e.prototype[n]||(e.prototype[n]=null);return e}};e.exports=x},{11:11,12:12,20:20,23:23,24:24,25:25,26:26,6:6,9:9}],6:[function(t,e,n){"use strict";function r(t,e,n){this.props=t,this.context=e,this.refs=a,this.updater=n||i}var o=t(20),i=t(11),a=(t(17),t(23));t(24),t(25);r.prototype.isReactComponent={},r.prototype.setState=function(t,e){"object"!=typeof t&&"function"!=typeof t&&null!=t?o("85"):void 0,this.updater.enqueueSetState(this,t),e&&this.updater.enqueueCallback(this,e,"setState")},r.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this),t&&this.updater.enqueueCallback(this,t,"forceUpdate")};e.exports=r},{11:11,17:17,20:20,23:23,24:24,25:25}],7:[function(t,e,n){"use strict";var r={current:null};e.exports=r},{}],8:[function(t,e,n){"use strict";var r=t(9),o=r.createFactory,i={a:o("a"),abbr:o("abbr"),address:o("address"),area:o("area"),article:o("article"),aside:o("aside"),audio:o("audio"),b:o("b"),base:o("base"),bdi:o("bdi"),bdo:o("bdo"),big:o("big"),blockquote:o("blockquote"),body:o("body"),br:o("br"),button:o("button"),canvas:o("canvas"),caption:o("caption"),cite:o("cite"),code:o("code"),col:o("col"),colgroup:o("colgroup"),data:o("data"),datalist:o("datalist"),dd:o("dd"),del:o("del"),details:o("details"),dfn:o("dfn"),dialog:o("dialog"),div:o("div"),dl:o("dl"),dt:o("dt"),em:o("em"),embed:o("embed"),fieldset:o("fieldset"),figcaption:o("figcaption"),figure:o("figure"),footer:o("footer"),form:o("form"),h1:o("h1"),h2:o("h2"),h3:o("h3"),h4:o("h4"),h5:o("h5"),h6:o("h6"),head:o("head"),header:o("header"),hgroup:o("hgroup"),hr:o("hr"),html:o("html"),i:o("i"),iframe:o("iframe"),img:o("img"),input:o("input"),ins:o("ins"),kbd:o("kbd"),keygen:o("keygen"),label:o("label"),legend:o("legend"),li:o("li"),link:o("link"),main:o("main"),map:o("map"),mark:o("mark"),menu:o("menu"),menuitem:o("menuitem"),meta:o("meta"),meter:o("meter"),nav:o("nav"),noscript:o("noscript"),object:o("object"),ol:o("ol"),optgroup:o("optgroup"),option:o("option"),output:o("output"),p:o("p"),param:o("param"),picture:o("picture"),pre:o("pre"),progress:o("progress"),q:o("q"),rp:o("rp"),rt:o("rt"),ruby:o("ruby"),s:o("s"),samp:o("samp"),script:o("script"),section:o("section"),select:o("select"),small:o("small"),source:o("source"),span:o("span"),strong:o("strong"),style:o("style"),sub:o("sub"),summary:o("summary"),sup:o("sup"),table:o("table"),tbody:o("tbody"),td:o("td"),textarea:o("textarea"),tfoot:o("tfoot"),th:o("th"),thead:o("thead"),time:o("time"),title:o("title"),tr:o("tr"),track:o("track"),u:o("u"),ul:o("ul"),var:o("var"),video:o("video"),wbr:o("wbr"),circle:o("circle"),clipPath:o("clipPath"),defs:o("defs"),ellipse:o("ellipse"),g:o("g"),image:o("image"),line:o("line"),linearGradient:o("linearGradient"),mask:o("mask"),path:o("path"),pattern:o("pattern"),polygon:o("polygon"),polyline:o("polyline"),radialGradient:o("radialGradient"),rect:o("rect"),stop:o("stop"),svg:o("svg"),text:o("text"),tspan:o("tspan")};e.exports=i},{9:9}],9:[function(t,e,n){"use strict";function r(t){return void 0!==t.ref}function o(t){return void 0!==t.key}var i=t(26),a=t(7),u=(t(25),t(17),Object.prototype.hasOwnProperty),s=t(10),c={key:!0,ref:!0,__self:!0,__source:!0},l=function(t,e,n,r,o,i,a){var u={$$typeof:s,type:t,key:e,ref:n,props:a,_owner:i};return u};l.createElement=function(t,e,n){var i,s={},p=null,f=null,d=null,h=null;if(null!=e){r(e)&&(f=e.ref),o(e)&&(p=""+e.key),d=void 0===e.__self?null:e.__self,h=void 0===e.__source?null:e.__source;for(i in e)u.call(e,i)&&!c.hasOwnProperty(i)&&(s[i]=e[i])}var y=arguments.length-2;if(1===y)s.children=n;else if(y>1){for(var v=Array(y),m=0;m<y;m++)v[m]=arguments[m+2];s.children=v}if(t&&t.defaultProps){var g=t.defaultProps;for(i in g)void 0===s[i]&&(s[i]=g[i])}return l(t,p,f,d,h,a.current,s)},l.createFactory=function(t){var e=l.createElement.bind(null,t);return e.type=t,e},l.cloneAndReplaceKey=function(t,e){var n=l(t.type,e,t.ref,t._self,t._source,t._owner,t.props);return n},l.cloneElement=function(t,e,n){var s,p=i({},t.props),f=t.key,d=t.ref,h=t._self,y=t._source,v=t._owner;if(null!=e){r(e)&&(d=e.ref,v=a.current),o(e)&&(f=""+e.key);var m;t.type&&t.type.defaultProps&&(m=t.type.defaultProps);for(s in e)u.call(e,s)&&!c.hasOwnProperty(s)&&(void 0===e[s]&&void 0!==m?p[s]=m[s]:p[s]=e[s])}var g=arguments.length-2;if(1===g)p.children=n;else if(g>1){for(var b=Array(g),E=0;E<g;E++)b[E]=arguments[E+2];p.children=b}return l(t.type,f,d,h,y,v,p)},l.isValidElement=function(t){return"object"==typeof t&&null!==t&&t.$$typeof===s},e.exports=l},{10:10,17:17,25:25,26:26,7:7}],10:[function(t,e,n){"use strict";var r="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103;e.exports=r},{}],11:[function(t,e,n){"use strict";function r(t,e){}var o=(t(25),{isMounted:function(t){return!1},enqueueCallback:function(t,e){},enqueueForceUpdate:function(t){r(t,"forceUpdate")},enqueueReplaceState:function(t,e){r(t,"replaceState")},enqueueSetState:function(t,e){r(t,"setState")}});e.exports=o},{25:25}],12:[function(t,e,n){"use strict";var r={};e.exports=r},{}],13:[function(t,e,n){"use strict";function r(t){this.message=t,this.stack=""}var o,i=t(20),a=(t(9),t(12),t(22),t(18),t(24),t(25),function(){i("145")});a.isRequired=a;var u=function(){return a},o={array:a,bool:a,func:a,number:a,object:a,string:a,symbol:a,any:a,arrayOf:u,element:a,instanceOf:u,node:a,objectOf:u,oneOf:u,oneOfType:u,shape:u};r.prototype=Error.prototype,e.exports=o},{12:12,18:18,20:20,22:22,24:24,25:25,9:9}],14:[function(t,e,n){"use strict";function r(t,e,n){this.props=t,this.context=e,this.refs=s,this.updater=n||u}function o(){}var i=t(26),a=t(6),u=t(11),s=t(23);o.prototype=a.prototype,r.prototype=new o,r.prototype.constructor=r,i(r.prototype,a.prototype),r.prototype.isPureReactComponent=!0,e.exports=r},{11:11,23:23,26:26,6:6}],15:[function(t,e,n){"use strict";var r=t(26),o=t(3),i=r({__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{ReactCurrentOwner:t(7)}},o);e.exports=i},{26:26,3:3,7:7}],16:[function(t,e,n){"use strict";e.exports="16.0.0-alpha"},{}],17:[function(t,e,n){"use strict";var r=!1;e.exports=r},{}],18:[function(t,e,n){"use strict";function r(t){var e=t&&(o&&t[o]||t[i]);if("function"==typeof e)return e}var o="function"==typeof Symbol&&Symbol.iterator,i="@@iterator";e.exports=r},{}],19:[function(t,e,n){"use strict";function r(t){return i.isValidElement(t)?void 0:o("143"),t}var o=t(20),i=t(9);t(24);e.exports=r},{20:20,24:24,9:9}],20:[function(t,e,n){"use strict";function r(t){for(var e=arguments.length-1,n="Minified React error #"+t+"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant="+t,r=0;r<e;r++)n+="&args[]="+encodeURIComponent(arguments[r+1]);n+=" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.";var o=new Error(n);throw o.name="Invariant Violation",o.framesToPop=1,o}e.exports=r},{}],21:[function(t,e,n){"use strict";function r(t,e){return t&&"object"==typeof t&&null!=t.key?c.escape(t.key):e.toString(36)}function o(t,e,n,i){var f=typeof t;if("undefined"!==f&&"boolean"!==f||(t=null),null===t||"string"===f||"number"===f||"object"===f&&t.$$typeof===u)return n(i,t,""===e?l+r(t,0):e),1;var d,h,y=0,v=""===e?l:e+p;if(Array.isArray(t))for(var m=0;m<t.length;m++)d=t[m],h=v+r(d,m),y+=o(d,h,n,i);else{var g=s(t);if(g){var b,E=g.call(t);if(g!==t.entries)for(var _=0;!(b=E.next()).done;)d=b.value,h=v+r(d,_++),y+=o(d,h,n,i);else for(;!(b=E.next()).done;){var P=b.value;P&&(d=P[1],h=v+c.escape(P[0])+p+r(d,0),y+=o(d,h,n,i))}}else if("object"===f){var x="",N=String(t);a("31","[object Object]"===N?"object with keys {"+Object.keys(t).join(", ")+"}":N,x)}}return y}function i(t,e,n){return null==t?0:o(t,"",e,n)}var a=t(20),u=(t(7),t(10)),s=t(18),c=(t(24),t(1)),l=(t(25),"."),p=":";e.exports=i},{1:1,10:10,18:18,20:20,24:24,25:25,7:7}],22:[function(t,e,n){"use strict";function r(t){return function(){return t}}var o=function(){};o.thatReturns=r,o.thatReturnsFalse=r(!1),o.thatReturnsTrue=r(!0),o.thatReturnsNull=r(null),o.thatReturnsThis=function(){return this},o.thatReturnsArgument=function(t){return t},e.exports=o},{}],23:[function(t,e,n){"use strict";var r={};e.exports=r},{}],24:[function(t,e,n){"use strict";function r(t,e,n,r,o,i,a,u){if(!t){var s;if(void 0===e)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,i,a,u],l=0;s=new Error(e.replace(/%s/g,function(){return c[l++]})),s.name="Invariant Violation"}throw s.framesToPop=1,s}}e.exports=r},{}],25:[function(t,e,n){"use strict";var r=t(22),o=r;e.exports=o},{22:22}],26:[function(t,e,n){"use strict";function r(t){if(null===t||void 0===t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}function o(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e["_"+String.fromCharCode(n)]=n;var r=Object.getOwnPropertyNames(e).map(function(t){return e[t]});if("0123456789"!==r.join(""))return!1;var o={};return"abcdefghijklmnopqrst".split("").forEach(function(t){o[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},o)).join("")}catch(t){return!1}}var i=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;e.exports=o()?Object.assign:function(t,e){for(var n,o,u=r(t),s=1;s<arguments.length;s++){n=Object(arguments[s]);for(var c in n)i.call(n,c)&&(u[c]=n[c]);if(Object.getOwnPropertySymbols){o=Object.getOwnPropertySymbols(n);for(var l=0;l<o.length;l++)a.call(n,o[l])&&(u[o[l]]=n[o[l]])}}return u}},{}]},{},[15])(15)});
\ No newline at end of file diff --git a/src/vendor/system-csp-production.src.js b/src/vendor/system-csp-production.src.js deleted file mode 100644 index 9c5e56532..000000000 --- a/src/vendor/system-csp-production.src.js +++ /dev/null @@ -1,4536 +0,0 @@ -/* - * SystemJS v0.19.39 - */ -(function() { -function bootstrap() {// from https://gist.github.com/Yaffle/1088850 -(function(global) { -function URLPolyfill(url, baseURL) { - if (typeof url != 'string') - throw new TypeError('URL must be a string'); - var m = String(url).replace(/^\s+|\s+$/g, "").match(/^([^:\/?#]+:)?(?:\/\/(?:([^:@\/?#]*)(?::([^:@\/?#]*))?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/); - if (!m) - throw new RangeError('Invalid URL format'); - var protocol = m[1] || ""; - var username = m[2] || ""; - var password = m[3] || ""; - var host = m[4] || ""; - var hostname = m[5] || ""; - var port = m[6] || ""; - var pathname = m[7] || ""; - var search = m[8] || ""; - var hash = m[9] || ""; - if (baseURL !== undefined) { - var base = baseURL instanceof URLPolyfill ? baseURL : new URLPolyfill(baseURL); - var flag = !protocol && !host && !username; - if (flag && !pathname && !search) - search = base.search; - if (flag && pathname[0] !== "/") - pathname = (pathname ? (((base.host || base.username) && !base.pathname ? "/" : "") + base.pathname.slice(0, base.pathname.lastIndexOf("/") + 1) + pathname) : base.pathname); - // dot segments removal - var output = []; - pathname.replace(/^(\.\.?(\/|$))+/, "") - .replace(/\/(\.(\/|$))+/g, "/") - .replace(/\/\.\.$/, "/../") - .replace(/\/?[^\/]*/g, function (p) { - if (p === "/..") - output.pop(); - else - output.push(p); - }); - pathname = output.join("").replace(/^\//, pathname[0] === "/" ? "/" : ""); - if (flag) { - port = base.port; - hostname = base.hostname; - host = base.host; - password = base.password; - username = base.username; - } - if (!protocol) - protocol = base.protocol; - } - - // convert URLs to use / always - pathname = pathname.replace(/\\/g, '/'); - - this.origin = host ? protocol + (protocol !== "" || host !== "" ? "//" : "") + host : ""; - this.href = protocol + (protocol && host || protocol == "file:" ? "//" : "") + (username !== "" ? username + (password !== "" ? ":" + password : "") + "@" : "") + host + pathname + search + hash; - this.protocol = protocol; - this.username = username; - this.password = password; - this.host = host; - this.hostname = hostname; - this.port = port; - this.pathname = pathname; - this.search = search; - this.hash = hash; -} -global.URLPolyfill = URLPolyfill; -})(typeof self != 'undefined' ? self : global);(function(__global) { - - var isWorker = typeof window == 'undefined' && typeof self != 'undefined' && typeof importScripts != 'undefined'; - var isBrowser = typeof window != 'undefined' && typeof document != 'undefined'; - var isWindows = typeof process != 'undefined' && typeof process.platform != 'undefined' && !!process.platform.match(/^win/); - - if (!__global.console) - __global.console = { assert: function() {} }; - - // IE8 support - var indexOf = Array.prototype.indexOf || function(item) { - for (var i = 0, thisLen = this.length; i < thisLen; i++) { - if (this[i] === item) { - return i; - } - } - return -1; - }; - - var defineProperty; - (function () { - try { - if (!!Object.defineProperty({}, 'a', {})) - defineProperty = Object.defineProperty; - } - catch (e) { - defineProperty = function(obj, prop, opt) { - try { - obj[prop] = opt.value || opt.get.call(obj); - } - catch(e) {} - } - } - })(); - - var errArgs = new Error(0, '_').fileName == '_'; - - function addToError(err, msg) { - // parse the stack removing loader code lines for simplification - if (!err.originalErr) { - var stack = ((err.message || err) + (err.stack ? '\n' + err.stack : '')).toString().split('\n'); - var newStack = []; - for (var i = 0; i < stack.length; i++) { - if (typeof $__curScript == 'undefined' || stack[i].indexOf($__curScript.src) == -1) - newStack.push(stack[i]); - } - } - - var newMsg = '(SystemJS) ' + (newStack ? newStack.join('\n\t') : err.message.substr(11)) + '\n\t' + msg; - - // Convert file:/// URLs to paths in Node - if (!isBrowser) - newMsg = newMsg.replace(isWindows ? /file:\/\/\//g : /file:\/\//g, ''); - - var newErr = errArgs ? new Error(newMsg, err.fileName, err.lineNumber) : new Error(newMsg); - - newErr.stack = newMsg; - - // track the original error - newErr.originalErr = err.originalErr || err; - - return newErr; - } - - function __eval(source, debugName, context) { - try { - new Function(source).call(context); - } - catch(e) { - throw addToError(e, 'Evaluating ' + debugName); - } - } - - var baseURI; - - // environent baseURI detection - if (typeof document != 'undefined' && document.getElementsByTagName) { - baseURI = document.baseURI; - - if (!baseURI) { - var bases = document.getElementsByTagName('base'); - baseURI = bases[0] && bases[0].href || window.location.href; - } - } - else if (typeof location != 'undefined') { - baseURI = __global.location.href; - } - - // sanitize out the hash and querystring - if (baseURI) { - baseURI = baseURI.split('#')[0].split('?')[0]; - baseURI = baseURI.substr(0, baseURI.lastIndexOf('/') + 1); - } - else if (typeof process != 'undefined' && process.cwd) { - baseURI = 'file://' + (isWindows ? '/' : '') + process.cwd() + '/'; - if (isWindows) - baseURI = baseURI.replace(/\\/g, '/'); - } - else { - throw new TypeError('No environment baseURI'); - } - - try { - var nativeURL = new __global.URL('test:///').protocol == 'test:'; - } - catch(e) {} - - var URL = nativeURL ? __global.URL : __global.URLPolyfill; - -/* -********************************************************************************************* - - Dynamic Module Loader Polyfill - - - Implemented exactly to the former 2014-08-24 ES6 Specification Draft Rev 27, Section 15 - http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#august_24_2014_draft_rev_27 - - - Functions are commented with their spec numbers, with spec differences commented. - - - Spec bugs are commented in this code with links. - - - Abstract functions have been combined where possible, and their associated functions - commented. - - - Realm implementation is entirely omitted. - -********************************************************************************************* -*/ - -function Module() {} -// http://www.ecma-international.org/ecma-262/6.0/#sec-@@tostringtag -defineProperty(Module.prototype, 'toString', { - value: function() { - return 'Module'; - } -}); -function Loader(options) { - this._loader = { - loaderObj: this, - loads: [], - modules: {}, - importPromises: {}, - moduleRecords: {} - }; - - // 26.3.3.6 - defineProperty(this, 'global', { - get: function() { - return __global; - } - }); - - // 26.3.3.13 realm not implemented -} - -(function() { - -// Some Helpers - -// logs a linkset snapshot for debugging -/* function snapshot(loader) { - console.log('---Snapshot---'); - for (var i = 0; i < loader.loads.length; i++) { - var load = loader.loads[i]; - var linkSetLog = ' ' + load.name + ' (' + load.status + '): '; - - for (var j = 0; j < load.linkSets.length; j++) { - linkSetLog += '{' + logloads(load.linkSets[j].loads) + '} '; - } - console.log(linkSetLog); - } - console.log(''); -} -function logloads(loads) { - var log = ''; - for (var k = 0; k < loads.length; k++) - log += loads[k].name + (k != loads.length - 1 ? ' ' : ''); - return log; -} */ - - -/* function checkInvariants() { - // see https://bugs.ecmascript.org/show_bug.cgi?id=2603#c1 - - var loads = System._loader.loads; - var linkSets = []; - - for (var i = 0; i < loads.length; i++) { - var load = loads[i]; - console.assert(load.status == 'loading' || load.status == 'loaded', 'Each load is loading or loaded'); - - for (var j = 0; j < load.linkSets.length; j++) { - var linkSet = load.linkSets[j]; - - for (var k = 0; k < linkSet.loads.length; k++) - console.assert(loads.indexOf(linkSet.loads[k]) != -1, 'linkSet loads are a subset of loader loads'); - - if (linkSets.indexOf(linkSet) == -1) - linkSets.push(linkSet); - } - } - - for (var i = 0; i < loads.length; i++) { - var load = loads[i]; - for (var j = 0; j < linkSets.length; j++) { - var linkSet = linkSets[j]; - - if (linkSet.loads.indexOf(load) != -1) - console.assert(load.linkSets.indexOf(linkSet) != -1, 'linkSet contains load -> load contains linkSet'); - - if (load.linkSets.indexOf(linkSet) != -1) - console.assert(linkSet.loads.indexOf(load) != -1, 'load contains linkSet -> linkSet contains load'); - } - } - - for (var i = 0; i < linkSets.length; i++) { - var linkSet = linkSets[i]; - for (var j = 0; j < linkSet.loads.length; j++) { - var load = linkSet.loads[j]; - - for (var k = 0; k < load.dependencies.length; k++) { - var depName = load.dependencies[k].value; - var depLoad; - for (var l = 0; l < loads.length; l++) { - if (loads[l].name != depName) - continue; - depLoad = loads[l]; - break; - } - - // loading records are allowed not to have their dependencies yet - // if (load.status != 'loading') - // console.assert(depLoad, 'depLoad found'); - - // console.assert(linkSet.loads.indexOf(depLoad) != -1, 'linkset contains all dependencies'); - } - } - } -} */ - - // 15.2.3 - Runtime Semantics: Loader State - - // 15.2.3.11 - function createLoaderLoad(object) { - return { - // modules is an object for ES5 implementation - modules: {}, - loads: [], - loaderObj: object - }; - } - - // 15.2.3.2 Load Records and LoadRequest Objects - - var anonCnt = 0; - - // 15.2.3.2.1 - function createLoad(name) { - return { - status: 'loading', - name: name || '<Anonymous' + ++anonCnt + '>', - linkSets: [], - dependencies: [], - metadata: {} - }; - } - - // 15.2.3.2.2 createLoadRequestObject, absorbed into calling functions - - // 15.2.4 - - // 15.2.4.1 - function loadModule(loader, name, options) { - return new Promise(asyncStartLoadPartwayThrough({ - step: options.address ? 'fetch' : 'locate', - loader: loader, - moduleName: name, - // allow metadata for import https://bugs.ecmascript.org/show_bug.cgi?id=3091 - moduleMetadata: options && options.metadata || {}, - moduleSource: options.source, - moduleAddress: options.address - })); - } - - // 15.2.4.2 - function requestLoad(loader, request, refererName, refererAddress) { - // 15.2.4.2.1 CallNormalize - return new Promise(function(resolve, reject) { - resolve(loader.loaderObj.normalize(request, refererName, refererAddress)); - }) - // 15.2.4.2.2 GetOrCreateLoad - .then(function(name) { - var load; - if (loader.modules[name]) { - load = createLoad(name); - load.status = 'linked'; - // https://bugs.ecmascript.org/show_bug.cgi?id=2795 - load.module = loader.modules[name]; - return load; - } - - for (var i = 0, l = loader.loads.length; i < l; i++) { - load = loader.loads[i]; - if (load.name != name) - continue; - return load; - } - - load = createLoad(name); - loader.loads.push(load); - - proceedToLocate(loader, load); - - return load; - }); - } - - // 15.2.4.3 - function proceedToLocate(loader, load) { - proceedToFetch(loader, load, - Promise.resolve() - // 15.2.4.3.1 CallLocate - .then(function() { - return loader.loaderObj.locate({ name: load.name, metadata: load.metadata }); - }) - ); - } - - // 15.2.4.4 - function proceedToFetch(loader, load, p) { - proceedToTranslate(loader, load, - p - // 15.2.4.4.1 CallFetch - .then(function(address) { - // adjusted, see https://bugs.ecmascript.org/show_bug.cgi?id=2602 - if (load.status != 'loading') - return; - load.address = address; - - return loader.loaderObj.fetch({ name: load.name, metadata: load.metadata, address: address }); - }) - ); - } - - // 15.2.4.5 - function proceedToTranslate(loader, load, p) { - p - // 15.2.4.5.1 CallTranslate - .then(function(source) { - if (load.status != 'loading') - return; - - load.address = load.address || load.name; - - return Promise.resolve(loader.loaderObj.translate({ name: load.name, metadata: load.metadata, address: load.address, source: source })) - - // 15.2.4.5.2 CallInstantiate - .then(function(source) { - load.source = source; - return loader.loaderObj.instantiate({ name: load.name, metadata: load.metadata, address: load.address, source: source }); - }) - - // 15.2.4.5.3 InstantiateSucceeded - .then(function(instantiateResult) { - if (instantiateResult === undefined) - throw new TypeError('Declarative modules unsupported in the polyfill.'); - - if (typeof instantiateResult != 'object') - throw new TypeError('Invalid instantiate return value'); - - load.depsList = instantiateResult.deps || []; - load.execute = instantiateResult.execute; - }) - // 15.2.4.6 ProcessLoadDependencies - .then(function() { - load.dependencies = []; - var depsList = load.depsList; - - var loadPromises = []; - for (var i = 0, l = depsList.length; i < l; i++) (function(request, index) { - loadPromises.push( - requestLoad(loader, request, load.name, load.address) - - // 15.2.4.6.1 AddDependencyLoad (load is parentLoad) - .then(function(depLoad) { - - // adjusted from spec to maintain dependency order - // this is due to the System.register internal implementation needs - load.dependencies[index] = { - key: request, - value: depLoad.name - }; - - if (depLoad.status != 'linked') { - var linkSets = load.linkSets.concat([]); - for (var i = 0, l = linkSets.length; i < l; i++) - addLoadToLinkSet(linkSets[i], depLoad); - } - - // console.log('AddDependencyLoad ' + depLoad.name + ' for ' + load.name); - // snapshot(loader); - }) - ); - })(depsList[i], i); - - return Promise.all(loadPromises); - }) - - // 15.2.4.6.2 LoadSucceeded - .then(function() { - // console.log('LoadSucceeded ' + load.name); - // snapshot(loader); - - load.status = 'loaded'; - - var linkSets = load.linkSets.concat([]); - for (var i = 0, l = linkSets.length; i < l; i++) - updateLinkSetOnLoad(linkSets[i], load); - }); - }) - // 15.2.4.5.4 LoadFailed - ['catch'](function(exc) { - load.status = 'failed'; - load.exception = exc; - - var linkSets = load.linkSets.concat([]); - for (var i = 0, l = linkSets.length; i < l; i++) { - linkSetFailed(linkSets[i], load, exc); - } - - console.assert(load.linkSets.length == 0, 'linkSets not removed'); - }); - } - - // 15.2.4.7 PromiseOfStartLoadPartwayThrough absorbed into calling functions - - // 15.2.4.7.1 - function asyncStartLoadPartwayThrough(stepState) { - return function(resolve, reject) { - var loader = stepState.loader; - var name = stepState.moduleName; - var step = stepState.step; - - if (loader.modules[name]) - throw new TypeError('"' + name + '" already exists in the module table'); - - // adjusted to pick up existing loads - var existingLoad; - for (var i = 0, l = loader.loads.length; i < l; i++) { - if (loader.loads[i].name == name) { - existingLoad = loader.loads[i]; - - if (step == 'translate' && !existingLoad.source) { - existingLoad.address = stepState.moduleAddress; - proceedToTranslate(loader, existingLoad, Promise.resolve(stepState.moduleSource)); - } - - // a primary load -> use that existing linkset if it is for the direct load here - // otherwise create a new linkset unit - if (existingLoad.linkSets.length && existingLoad.linkSets[0].loads[0].name == existingLoad.name) - return existingLoad.linkSets[0].done.then(function() { - resolve(existingLoad); - }); - } - } - - var load = existingLoad || createLoad(name); - - load.metadata = stepState.moduleMetadata; - - var linkSet = createLinkSet(loader, load); - - loader.loads.push(load); - - resolve(linkSet.done); - - if (step == 'locate') - proceedToLocate(loader, load); - - else if (step == 'fetch') - proceedToFetch(loader, load, Promise.resolve(stepState.moduleAddress)); - - else { - console.assert(step == 'translate', 'translate step'); - load.address = stepState.moduleAddress; - proceedToTranslate(loader, load, Promise.resolve(stepState.moduleSource)); - } - } - } - - // Declarative linking functions run through alternative implementation: - // 15.2.5.1.1 CreateModuleLinkageRecord not implemented - // 15.2.5.1.2 LookupExport not implemented - // 15.2.5.1.3 LookupModuleDependency not implemented - - // 15.2.5.2.1 - function createLinkSet(loader, startingLoad) { - var linkSet = { - loader: loader, - loads: [], - startingLoad: startingLoad, // added see spec bug https://bugs.ecmascript.org/show_bug.cgi?id=2995 - loadingCount: 0 - }; - linkSet.done = new Promise(function(resolve, reject) { - linkSet.resolve = resolve; - linkSet.reject = reject; - }); - addLoadToLinkSet(linkSet, startingLoad); - return linkSet; - } - // 15.2.5.2.2 - function addLoadToLinkSet(linkSet, load) { - if (load.status == 'failed') - return; - - for (var i = 0, l = linkSet.loads.length; i < l; i++) - if (linkSet.loads[i] == load) - return; - - linkSet.loads.push(load); - load.linkSets.push(linkSet); - - // adjustment, see https://bugs.ecmascript.org/show_bug.cgi?id=2603 - if (load.status != 'loaded') { - linkSet.loadingCount++; - } - - var loader = linkSet.loader; - - for (var i = 0, l = load.dependencies.length; i < l; i++) { - if (!load.dependencies[i]) - continue; - - var name = load.dependencies[i].value; - - if (loader.modules[name]) - continue; - - for (var j = 0, d = loader.loads.length; j < d; j++) { - if (loader.loads[j].name != name) - continue; - - addLoadToLinkSet(linkSet, loader.loads[j]); - break; - } - } - // console.log('add to linkset ' + load.name); - // snapshot(linkSet.loader); - } - - // linking errors can be generic or load-specific - // this is necessary for debugging info - function doLink(linkSet) { - var error = false; - try { - link(linkSet, function(load, exc) { - linkSetFailed(linkSet, load, exc); - error = true; - }); - } - catch(e) { - linkSetFailed(linkSet, null, e); - error = true; - } - return error; - } - - // 15.2.5.2.3 - function updateLinkSetOnLoad(linkSet, load) { - // console.log('update linkset on load ' + load.name); - // snapshot(linkSet.loader); - - console.assert(load.status == 'loaded' || load.status == 'linked', 'loaded or linked'); - - linkSet.loadingCount--; - - if (linkSet.loadingCount > 0) - return; - - // adjusted for spec bug https://bugs.ecmascript.org/show_bug.cgi?id=2995 - var startingLoad = linkSet.startingLoad; - - // non-executing link variation for loader tracing - // on the server. Not in spec. - /***/ - if (linkSet.loader.loaderObj.execute === false) { - var loads = [].concat(linkSet.loads); - for (var i = 0, l = loads.length; i < l; i++) { - var load = loads[i]; - load.module = { - name: load.name, - module: _newModule({}), - evaluated: true - }; - load.status = 'linked'; - finishLoad(linkSet.loader, load); - } - return linkSet.resolve(startingLoad); - } - /***/ - - var abrupt = doLink(linkSet); - - if (abrupt) - return; - - console.assert(linkSet.loads.length == 0, 'loads cleared'); - - linkSet.resolve(startingLoad); - } - - // 15.2.5.2.4 - function linkSetFailed(linkSet, load, exc) { - var loader = linkSet.loader; - var requests; - - checkError: - if (load) { - if (linkSet.loads[0].name == load.name) { - exc = addToError(exc, 'Error loading ' + load.name); - } - else { - for (var i = 0; i < linkSet.loads.length; i++) { - var pLoad = linkSet.loads[i]; - for (var j = 0; j < pLoad.dependencies.length; j++) { - var dep = pLoad.dependencies[j]; - if (dep.value == load.name) { - exc = addToError(exc, 'Error loading ' + load.name + ' as "' + dep.key + '" from ' + pLoad.name); - break checkError; - } - } - } - exc = addToError(exc, 'Error loading ' + load.name + ' from ' + linkSet.loads[0].name); - } - } - else { - exc = addToError(exc, 'Error linking ' + linkSet.loads[0].name); - } - - - var loads = linkSet.loads.concat([]); - for (var i = 0, l = loads.length; i < l; i++) { - var load = loads[i]; - - // store all failed load records - loader.loaderObj.failed = loader.loaderObj.failed || []; - if (indexOf.call(loader.loaderObj.failed, load) == -1) - loader.loaderObj.failed.push(load); - - var linkIndex = indexOf.call(load.linkSets, linkSet); - console.assert(linkIndex != -1, 'link not present'); - load.linkSets.splice(linkIndex, 1); - if (load.linkSets.length == 0) { - var globalLoadsIndex = indexOf.call(linkSet.loader.loads, load); - if (globalLoadsIndex != -1) - linkSet.loader.loads.splice(globalLoadsIndex, 1); - } - } - linkSet.reject(exc); - } - - // 15.2.5.2.5 - function finishLoad(loader, load) { - // add to global trace if tracing - if (loader.loaderObj.trace) { - if (!loader.loaderObj.loads) - loader.loaderObj.loads = {}; - var depMap = {}; - load.dependencies.forEach(function(dep) { - depMap[dep.key] = dep.value; - }); - loader.loaderObj.loads[load.name] = { - name: load.name, - deps: load.dependencies.map(function(dep){ return dep.key }), - depMap: depMap, - address: load.address, - metadata: load.metadata, - source: load.source - }; - } - // if not anonymous, add to the module table - if (load.name) { - console.assert(!loader.modules[load.name] || loader.modules[load.name].module === load.module.module, 'load not in module table'); - loader.modules[load.name] = load.module; - } - var loadIndex = indexOf.call(loader.loads, load); - if (loadIndex != -1) - loader.loads.splice(loadIndex, 1); - for (var i = 0, l = load.linkSets.length; i < l; i++) { - loadIndex = indexOf.call(load.linkSets[i].loads, load); - if (loadIndex != -1) - load.linkSets[i].loads.splice(loadIndex, 1); - } - load.linkSets.splice(0, load.linkSets.length); - } - - function doDynamicExecute(linkSet, load, linkError) { - try { - var module = load.execute(); - } - catch(e) { - linkError(load, e); - return; - } - if (!module || !(module instanceof Module)) - linkError(load, new TypeError('Execution must define a Module instance')); - else - return module; - } - - // 26.3 Loader - - // 26.3.1.1 - // defined at top - - // importPromises adds ability to import a module twice without error - https://bugs.ecmascript.org/show_bug.cgi?id=2601 - function createImportPromise(loader, name, promise) { - var importPromises = loader._loader.importPromises; - return importPromises[name] = promise.then(function(m) { - importPromises[name] = undefined; - return m; - }, function(e) { - importPromises[name] = undefined; - throw e; - }); - } - - Loader.prototype = { - // 26.3.3.1 - constructor: Loader, - // 26.3.3.2 - define: function(name, source, options) { - // check if already defined - if (this._loader.importPromises[name]) - throw new TypeError('Module is already loading.'); - return createImportPromise(this, name, new Promise(asyncStartLoadPartwayThrough({ - step: 'translate', - loader: this._loader, - moduleName: name, - moduleMetadata: options && options.metadata || {}, - moduleSource: source, - moduleAddress: options && options.address - }))); - }, - // 26.3.3.3 - 'delete': function(name) { - var loader = this._loader; - delete loader.importPromises[name]; - delete loader.moduleRecords[name]; - return loader.modules[name] ? delete loader.modules[name] : false; - }, - // 26.3.3.4 entries not implemented - // 26.3.3.5 - get: function(key) { - if (!this._loader.modules[key]) - return; - return this._loader.modules[key].module; - }, - // 26.3.3.7 - has: function(name) { - return !!this._loader.modules[name]; - }, - // 26.3.3.8 - 'import': function(name, parentName, parentAddress) { - if (typeof parentName == 'object') - parentName = parentName.name; - - // run normalize first - var loaderObj = this; - - // added, see https://bugs.ecmascript.org/show_bug.cgi?id=2659 - return Promise.resolve(loaderObj.normalize(name, parentName)) - .then(function(name) { - var loader = loaderObj._loader; - - if (loader.modules[name]) - return loader.modules[name].module; - - return loader.importPromises[name] || createImportPromise(loaderObj, name, - loadModule(loader, name, {}) - .then(function(load) { - delete loader.importPromises[name]; - return load.module.module; - })); - }); - }, - // 26.3.3.9 keys not implemented - // 26.3.3.10 - load: function(name) { - var loader = this._loader; - if (loader.modules[name]) - return Promise.resolve(); - return loader.importPromises[name] || createImportPromise(this, name, new Promise(asyncStartLoadPartwayThrough({ - step: 'locate', - loader: loader, - moduleName: name, - moduleMetadata: {}, - moduleSource: undefined, - moduleAddress: undefined - })) - .then(function() { - delete loader.importPromises[name]; - })); - }, - // 26.3.3.11 - module: function(source, options) { - var load = createLoad(); - load.address = options && options.address; - var linkSet = createLinkSet(this._loader, load); - var sourcePromise = Promise.resolve(source); - var loader = this._loader; - var p = linkSet.done.then(function() { - return load.module.module; - }); - proceedToTranslate(loader, load, sourcePromise); - return p; - }, - // 26.3.3.12 - newModule: function (obj) { - if (typeof obj != 'object') - throw new TypeError('Expected object'); - - var m = new Module(); - - var pNames = []; - if (Object.getOwnPropertyNames && obj != null) - pNames = Object.getOwnPropertyNames(obj); - else - for (var key in obj) - pNames.push(key); - - for (var i = 0; i < pNames.length; i++) (function(key) { - defineProperty(m, key, { - configurable: false, - enumerable: true, - get: function () { - return obj[key]; - }, - set: function() { - throw new Error('Module exports cannot be changed externally.'); - } - }); - })(pNames[i]); - - if (Object.freeze) - Object.freeze(m); - - return m; - }, - // 26.3.3.14 - set: function(name, module) { - if (!(module instanceof Module)) - throw new TypeError('Loader.set(' + name + ', module) must be a module'); - this._loader.modules[name] = { - module: module - }; - }, - // 26.3.3.15 values not implemented - // 26.3.3.16 @@iterator not implemented - // 26.3.3.17 @@toStringTag not implemented - - // 26.3.3.18.1 - normalize: function(name, referrerName, referrerAddress) {}, - // 26.3.3.18.2 - locate: function(load) { - return load.name; - }, - // 26.3.3.18.3 - fetch: function(load) { - }, - // 26.3.3.18.4 - translate: function(load) { - return load.source; - }, - // 26.3.3.18.5 - instantiate: function(load) { - } - }; - - var _newModule = Loader.prototype.newModule; - -/* - * ES6 Module Declarative Linking Code - */ - function link(linkSet, linkError) { - - var loader = linkSet.loader; - - if (!linkSet.loads.length) - return; - - var loads = linkSet.loads.concat([]); - - for (var i = 0; i < loads.length; i++) { - var load = loads[i]; - - var module = doDynamicExecute(linkSet, load, linkError); - if (!module) - return; - load.module = { - name: load.name, - module: module - }; - load.status = 'linked'; - - finishLoad(loader, load); - } - } - -})(); - -var System; - -// SystemJS Loader Class and Extension helpers -function SystemJSLoader() { - Loader.call(this); - - this.paths = {}; - this._loader.paths = {}; - - systemJSConstructor.call(this); -} - -// inline Object.create-style class extension -function SystemProto() {}; -SystemProto.prototype = Loader.prototype; -SystemJSLoader.prototype = new SystemProto(); -SystemJSLoader.prototype.constructor = SystemJSLoader; - -var systemJSConstructor; - -function hook(name, hook) { - SystemJSLoader.prototype[name] = hook(SystemJSLoader.prototype[name] || function() {}); -} -function hookConstructor(hook) { - systemJSConstructor = hook(systemJSConstructor || function() {}); -} - - -var absURLRegEx = /^[^\/]+:\/\//; -function isAbsolute(name) { - return name.match(absURLRegEx); -} -function isRel(name) { - return (name[0] == '.' && (!name[1] || name[1] == '/' || name[1] == '.')) || name[0] == '/'; -} -function isPlain(name) { - return !isRel(name) && !isAbsolute(name); -} - -var baseURIObj = new URL(baseURI); - -function urlResolve(name, parent) { - // url resolution shortpaths - if (name[0] == '.') { - // dot-relative url normalization - if (name[1] == '/' && name[2] != '.') - return (parent && parent.substr(0, parent.lastIndexOf('/') + 1) || baseURI) + name.substr(2); - } - else if (name[0] != '/' && name.indexOf(':') == -1) { - // plain parent normalization - return (parent && parent.substr(0, parent.lastIndexOf('/') + 1) || baseURI) + name; - } - - return new URL(name, parent && parent.replace(/#/g, '%05') || baseURIObj).href.replace(/%05/g, '#'); -} - -// NB no specification provided for System.paths, used ideas discussed in https://github.com/jorendorff/js-loaders/issues/25 -function applyPaths(loader, name) { - // most specific (most number of slashes in path) match wins - var pathMatch = '', wildcard, maxWildcardPrefixLen = 0; - - var paths = loader.paths; - var pathsCache = loader._loader.paths; - - // check to see if we have a paths entry - for (var p in paths) { - if (paths.hasOwnProperty && !paths.hasOwnProperty(p)) - continue; - - // paths sanitization - var path = paths[p]; - if (path !== pathsCache[p]) - path = paths[p] = pathsCache[p] = urlResolve(paths[p], isRel(paths[p]) ? baseURI : loader.baseURL); - - // exact path match - if (p.indexOf('*') === -1) { - if (name == p) - return paths[p]; - - // support trailing / in paths rules - else if (name.substr(0, p.length - 1) == p.substr(0, p.length - 1) && (name.length < p.length || name[p.length - 1] == p[p.length - 1]) && (paths[p][paths[p].length - 1] == '/' || paths[p] == '')) { - return paths[p].substr(0, paths[p].length - 1) + (name.length > p.length ? (paths[p] && '/' || '') + name.substr(p.length) : ''); - } - } - // wildcard path match - else { - var pathParts = p.split('*'); - if (pathParts.length > 2) - throw new TypeError('Only one wildcard in a path is permitted'); - - var wildcardPrefixLen = pathParts[0].length; - if (wildcardPrefixLen >= maxWildcardPrefixLen && - name.substr(0, pathParts[0].length) == pathParts[0] && - name.substr(name.length - pathParts[1].length) == pathParts[1]) { - maxWildcardPrefixLen = wildcardPrefixLen; - pathMatch = p; - wildcard = name.substr(pathParts[0].length, name.length - pathParts[1].length - pathParts[0].length); - } - } - } - - var outPath = paths[pathMatch]; - if (typeof wildcard == 'string') - outPath = outPath.replace('*', wildcard); - - return outPath; -} - -function dedupe(deps) { - var newDeps = []; - for (var i = 0, l = deps.length; i < l; i++) - if (indexOf.call(newDeps, deps[i]) == -1) - newDeps.push(deps[i]) - return newDeps; -} - -function group(deps) { - var names = []; - var indices = []; - for (var i = 0, l = deps.length; i < l; i++) { - var index = indexOf.call(names, deps[i]); - if (index === -1) { - names.push(deps[i]); - indices.push([i]); - } - else { - indices[index].push(i); - } - } - return { names: names, indices: indices }; -} - -var getOwnPropertyDescriptor = true; -try { - Object.getOwnPropertyDescriptor({ a: 0 }, 'a'); -} -catch(e) { - getOwnPropertyDescriptor = false; -} - -// converts any module.exports object into an object ready for SystemJS.newModule -function getESModule(exports) { - var esModule = {}; - // don't trigger getters/setters in environments that support them - if ((typeof exports == 'object' || typeof exports == 'function') && exports !== __global) { - if (getOwnPropertyDescriptor) { - for (var p in exports) { - // The default property is copied to esModule later on - if (p === 'default') - continue; - defineOrCopyProperty(esModule, exports, p); - } - } - else { - extend(esModule, exports); - } - } - esModule['default'] = exports; - defineProperty(esModule, '__useDefault', { - value: true - }); - return esModule; -} - -function defineOrCopyProperty(targetObj, sourceObj, propName) { - try { - var d; - if (d = Object.getOwnPropertyDescriptor(sourceObj, propName)) - defineProperty(targetObj, propName, d); - } - catch (ex) { - // Object.getOwnPropertyDescriptor threw an exception, fall back to normal set property - // we dont need hasOwnProperty here because getOwnPropertyDescriptor would have returned undefined above - targetObj[propName] = sourceObj[propName]; - return false; - } -} - -function extend(a, b, prepend) { - var hasOwnProperty = b && b.hasOwnProperty; - for (var p in b) { - if (hasOwnProperty && !b.hasOwnProperty(p)) - continue; - if (!prepend || !(p in a)) - a[p] = b[p]; - } - return a; -} - -// meta first-level extends where: -// array + array appends -// object + object extends -// other properties replace -function extendMeta(a, b, prepend) { - var hasOwnProperty = b && b.hasOwnProperty; - for (var p in b) { - if (hasOwnProperty && !b.hasOwnProperty(p)) - continue; - var val = b[p]; - if (!(p in a)) - a[p] = val; - else if (val instanceof Array && a[p] instanceof Array) - a[p] = [].concat(prepend ? val : a[p]).concat(prepend ? a[p] : val); - else if (typeof val == 'object' && val !== null && typeof a[p] == 'object') - a[p] = extend(extend({}, a[p]), val, prepend); - else if (!prepend) - a[p] = val; - } -} - -function extendPkgConfig(pkgCfgA, pkgCfgB, pkgName, loader, warnInvalidProperties) { - for (var prop in pkgCfgB) { - if (indexOf.call(['main', 'format', 'defaultExtension', 'basePath'], prop) != -1) { - pkgCfgA[prop] = pkgCfgB[prop]; - } - else if (prop == 'map') { - extend(pkgCfgA.map = pkgCfgA.map || {}, pkgCfgB.map); - } - else if (prop == 'meta') { - extend(pkgCfgA.meta = pkgCfgA.meta || {}, pkgCfgB.meta); - } - else if (prop == 'depCache') { - for (var d in pkgCfgB.depCache) { - var dNormalized; - - if (d.substr(0, 2) == './') - dNormalized = pkgName + '/' + d.substr(2); - else - dNormalized = coreResolve.call(loader, d); - loader.depCache[dNormalized] = (loader.depCache[dNormalized] || []).concat(pkgCfgB.depCache[d]); - } - } - else if (warnInvalidProperties && indexOf.call(['browserConfig', 'nodeConfig', 'devConfig', 'productionConfig'], prop) == -1 && - (!pkgCfgB.hasOwnProperty || pkgCfgB.hasOwnProperty(prop))) { - warn.call(loader, '"' + prop + '" is not a valid package configuration option in package ' + pkgName); - } - } -} - -// deeply-merge (to first level) config with any existing package config -function setPkgConfig(loader, pkgName, cfg, prependConfig) { - var pkg; - - // first package is config by reference for fast path, cloned after that - if (!loader.packages[pkgName]) { - pkg = loader.packages[pkgName] = cfg; - } - else { - var basePkg = loader.packages[pkgName]; - pkg = loader.packages[pkgName] = {}; - - extendPkgConfig(pkg, prependConfig ? cfg : basePkg, pkgName, loader, prependConfig); - extendPkgConfig(pkg, prependConfig ? basePkg : cfg, pkgName, loader, !prependConfig); - } - - // main object becomes main map - if (typeof pkg.main == 'object') { - pkg.map = pkg.map || {}; - pkg.map['./@main'] = pkg.main; - pkg.main['default'] = pkg.main['default'] || './'; - pkg.main = '@main'; - } - - return pkg; -} - -function warn(msg) { - if (this.warnings && typeof console != 'undefined' && console.warn) - console.warn(msg); -} - var fetchTextFromURL; - if (typeof XMLHttpRequest != 'undefined') { - fetchTextFromURL = function(url, authorization, fulfill, reject) { - var xhr = new XMLHttpRequest(); - var sameDomain = true; - var doTimeout = false; - if (!('withCredentials' in xhr)) { - // check if same domain - var domainCheck = /^(\w+:)?\/\/([^\/]+)/.exec(url); - if (domainCheck) { - sameDomain = domainCheck[2] === window.location.host; - if (domainCheck[1]) - sameDomain &= domainCheck[1] === window.location.protocol; - } - } - if (!sameDomain && typeof XDomainRequest != 'undefined') { - xhr = new XDomainRequest(); - xhr.onload = load; - xhr.onerror = error; - xhr.ontimeout = error; - xhr.onprogress = function() {}; - xhr.timeout = 0; - doTimeout = true; - } - function load() { - fulfill(xhr.responseText); - } - function error() { - reject(new Error('XHR error' + (xhr.status ? ' (' + xhr.status + (xhr.statusText ? ' ' + xhr.statusText : '') + ')' : '') + ' loading ' + url)); - } - - xhr.onreadystatechange = function () { - if (xhr.readyState === 4) { - // in Chrome on file:/// URLs, status is 0 - if (xhr.status == 0) { - if (xhr.responseText) { - load(); - } - else { - // when responseText is empty, wait for load or error event - // to inform if it is a 404 or empty file - xhr.addEventListener('error', error); - xhr.addEventListener('load', load); - } - } - else if (xhr.status === 200) { - load(); - } - else { - error(); - } - } - }; - xhr.open("GET", url, true); - - if (xhr.setRequestHeader) { - xhr.setRequestHeader('Accept', 'application/x-es-module, */*'); - // can set "authorization: true" to enable withCredentials only - if (authorization) { - if (typeof authorization == 'string') - xhr.setRequestHeader('Authorization', authorization); - xhr.withCredentials = true; - } - } - - if (doTimeout) { - setTimeout(function() { - xhr.send(); - }, 0); - } else { - xhr.send(null); - } - }; - } - else if (typeof require != 'undefined' && typeof process != 'undefined') { - var fs; - fetchTextFromURL = function(url, authorization, fulfill, reject) { - if (url.substr(0, 8) != 'file:///') - throw new Error('Unable to fetch "' + url + '". Only file URLs of the form file:/// allowed running in Node.'); - fs = fs || require('fs'); - if (isWindows) - url = url.replace(/\//g, '\\').substr(8); - else - url = url.substr(7); - return fs.readFile(url, function(err, data) { - if (err) { - return reject(err); - } - else { - // Strip Byte Order Mark out if it's the leading char - var dataString = data + ''; - if (dataString[0] === '\ufeff') - dataString = dataString.substr(1); - - fulfill(dataString); - } - }); - }; - } - else if (typeof self != 'undefined' && typeof self.fetch != 'undefined') { - fetchTextFromURL = function(url, authorization, fulfill, reject) { - var opts = { - headers: {'Accept': 'application/x-es-module, */*'} - }; - - if (authorization) { - if (typeof authorization == 'string') - opts.headers['Authorization'] = authorization; - opts.credentials = 'include'; - } - - fetch(url, opts) - .then(function (r) { - if (r.ok) { - return r.text(); - } else { - throw new Error('Fetch error: ' + r.status + ' ' + r.statusText); - } - }) - .then(fulfill, reject); - } - } - else { - throw new TypeError('No environment fetch API available.'); - } -function readMemberExpression(p, value) { - var pParts = p.split('.'); - while (pParts.length) - value = value[pParts.shift()]; - return value; -} - -function getMapMatch(map, name) { - var bestMatch, bestMatchLength = 0; - - for (var p in map) { - if (name.substr(0, p.length) == p && (name.length == p.length || name[p.length] == '/')) { - var curMatchLength = p.split('/').length; - if (curMatchLength <= bestMatchLength) - continue; - bestMatch = p; - bestMatchLength = curMatchLength; - } - } - - return bestMatch; -} - -function prepareBaseURL(loader) { - // ensure baseURl is fully normalized - if (this._loader.baseURL !== this.baseURL) { - if (this.baseURL[this.baseURL.length - 1] != '/') - this.baseURL += '/'; - - this._loader.baseURL = this.baseURL = new URL(this.baseURL, baseURIObj).href; - } -} - -var envModule; -function setProduction(isProduction, isBuilder) { - this.set('@system-env', envModule = this.newModule({ - browser: isBrowser, - node: !!this._nodeRequire, - production: !isBuilder && isProduction, - dev: isBuilder || !isProduction, - build: isBuilder, - 'default': true - })); -} - -hookConstructor(function(constructor) { - return function() { - constructor.call(this); - - // support baseURL - this.baseURL = baseURI; - - // support map and paths - this.map = {}; - - // make the location of the system.js script accessible - if (typeof $__curScript != 'undefined') - this.scriptSrc = $__curScript.src; - - // global behaviour flags - this.warnings = false; - this.defaultJSExtensions = false; - this.pluginFirst = false; - this.loaderErrorStack = false; - - // by default load ".json" files as json - // leading * meta doesn't need normalization - // NB add this in next breaking release - // this.meta['*.json'] = { format: 'json' }; - - // support the empty module, as a concept - this.set('@empty', this.newModule({})); - - setProduction.call(this, false, false); - }; -}); - -// include the node require since we're overriding it -if (typeof require != 'undefined' && typeof process != 'undefined' && !process.browser) - SystemJSLoader.prototype._nodeRequire = require; - -/* - Core SystemJS Normalization - - If a name is relative, we apply URL normalization to the page - If a name is an absolute URL, we leave it as-is - - Plain names (neither of the above) run through the map and paths - normalization phases. - - The paths normalization phase applies last (paths extension), which - defines the `decanonicalize` function and normalizes everything into - a URL. - */ - -var parentModuleContext; -function getNodeModule(name, baseURL) { - if (!isPlain(name)) - throw new Error('Node module ' + name + ' can\'t be loaded as it is not a package require.'); - - if (!parentModuleContext) { - var Module = this._nodeRequire('module'); - var base = baseURL.substr(isWindows ? 8 : 7); - parentModuleContext = new Module(base); - parentModuleContext.paths = Module._nodeModulePaths(base); - } - return parentModuleContext.require(name); -} - -function coreResolve(name, parentName) { - // standard URL resolution - if (isRel(name)) - return urlResolve(name, parentName); - else if (isAbsolute(name)) - return name; - - // plain names not starting with './', '://' and '/' go through custom resolution - var mapMatch = getMapMatch(this.map, name); - - if (mapMatch) { - name = this.map[mapMatch] + name.substr(mapMatch.length); - - if (isRel(name)) - return urlResolve(name); - else if (isAbsolute(name)) - return name; - } - - if (this.has(name)) - return name; - - // dynamically load node-core modules when requiring `@node/fs` for example - if (name.substr(0, 6) == '@node/') { - if (!this._nodeRequire) - throw new TypeError('Error loading ' + name + '. Can only load node core modules in Node.'); - if (this.builder) - this.set(name, this.newModule({})); - else - this.set(name, this.newModule(getESModule(getNodeModule.call(this, name.substr(6), this.baseURL)))); - return name; - } - - // prepare the baseURL to ensure it is normalized - prepareBaseURL.call(this); - - return applyPaths(this, name) || this.baseURL + name; -} - -hook('normalize', function(normalize) { - return function(name, parentName, skipExt) { - var resolved = coreResolve.call(this, name, parentName); - if (this.defaultJSExtensions && !skipExt && resolved.substr(resolved.length - 3, 3) != '.js' && !isPlain(resolved)) - resolved += '.js'; - return resolved; - }; -}); - -// percent encode just '#' in urls if using HTTP requests -var httpRequest = typeof XMLHttpRequest != 'undefined'; -hook('locate', function(locate) { - return function(load) { - return Promise.resolve(locate.call(this, load)) - .then(function(address) { - if (httpRequest) - return address.replace(/#/g, '%23'); - return address; - }); - }; -}); - -/* - * Fetch with authorization - */ -hook('fetch', function() { - return function(load) { - return new Promise(function(resolve, reject) { - fetchTextFromURL(load.address, load.metadata.authorization, resolve, reject); - }); - }; -}); - -/* - __useDefault - - When a module object looks like: - newModule( - __useDefault: true, - default: 'some-module' - }) - - Then importing that module provides the 'some-module' - result directly instead of the full module. - - Useful for eg module.exports = function() {} -*/ -hook('import', function(systemImport) { - return function(name, parentName, parentAddress) { - if (parentName && parentName.name) - warn.call(this, 'SystemJS.import(name, { name: parentName }) is deprecated for SystemJS.import(name, parentName), while importing ' + name + ' from ' + parentName.name); - return systemImport.call(this, name, parentName, parentAddress).then(function(module) { - return module.__useDefault ? module['default'] : module; - }); - }; -}); - -/* - * Allow format: 'detect' meta to enable format detection - */ -hook('translate', function(systemTranslate) { - return function(load) { - if (load.metadata.format == 'detect') - load.metadata.format = undefined; - return systemTranslate.apply(this, arguments); - }; -}); - - -/* - * JSON format support - * - * Supports loading JSON files as a module format itself - * - * Usage: - * - * SystemJS.config({ - * meta: { - * '*.json': { format: 'json' } - * } - * }); - * - * Module is returned as if written: - * - * export default {JSON} - * - * No named exports are provided - * - * Files ending in ".json" are treated as json automatically by SystemJS - */ -hook('instantiate', function(instantiate) { - return function(load) { - if (load.metadata.format == 'json' && !this.builder) { - var entry = load.metadata.entry = createEntry(); - entry.deps = []; - entry.execute = function() { - try { - return JSON.parse(load.source); - } - catch(e) { - throw new Error("Invalid JSON file " + load.name); - } - }; - } - }; -}) - -/* - Extend config merging one deep only - - loader.config({ - some: 'random', - config: 'here', - deep: { - config: { too: 'too' } - } - }); - - <=> - - loader.some = 'random'; - loader.config = 'here' - loader.deep = loader.deep || {}; - loader.deep.config = { too: 'too' }; - - - Normalizes meta and package configs allowing for: - - SystemJS.config({ - meta: { - './index.js': {} - } - }); - - To become - - SystemJS.meta['https://thissite.com/index.js'] = {}; - - For easy normalization canonicalization with latest URL support. - -*/ -function envSet(loader, cfg, envCallback) { - if (envModule.browser && cfg.browserConfig) - envCallback(cfg.browserConfig); - if (envModule.node && cfg.nodeConfig) - envCallback(cfg.nodeConfig); - if (envModule.dev && cfg.devConfig) - envCallback(cfg.devConfig); - if (envModule.build && cfg.buildConfig) - envCallback(cfg.buildConfig); - if (envModule.production && cfg.productionConfig) - envCallback(cfg.productionConfig); -} - -SystemJSLoader.prototype.getConfig = function(name) { - var cfg = {}; - var loader = this; - for (var p in loader) { - if (loader.hasOwnProperty && !loader.hasOwnProperty(p) || p in SystemJSLoader.prototype && p != 'transpiler') - continue; - if (indexOf.call(['_loader', 'amdDefine', 'amdRequire', 'defined', 'failed', 'version', 'loads'], p) == -1) - cfg[p] = loader[p]; - } - cfg.production = envModule.production; - return cfg; -}; - -var curCurScript; -SystemJSLoader.prototype.config = function(cfg, isEnvConfig) { - var loader = this; - - if ('loaderErrorStack' in cfg) { - curCurScript = $__curScript; - if (cfg.loaderErrorStack) - $__curScript = undefined; - else - $__curScript = curCurScript; - } - - if ('warnings' in cfg) - loader.warnings = cfg.warnings; - - // transpiler deprecation path - if (cfg.transpilerRuntime === false) - loader._loader.loadedTranspilerRuntime = true; - - if ('production' in cfg || 'build' in cfg) - setProduction.call(loader, !!cfg.production, !!(cfg.build || envModule && envModule.build)); - - if (!isEnvConfig) { - // if using nodeConfig / browserConfig / productionConfig, take baseURL from there - // these exceptions will be unnecessary when we can properly implement config queuings - var baseURL; - envSet(loader, cfg, function(cfg) { - baseURL = baseURL || cfg.baseURL; - }); - baseURL = baseURL || cfg.baseURL; - - // always configure baseURL first - if (baseURL) { - var hasConfig = false; - function checkHasConfig(obj) { - for (var p in obj) - if (obj.hasOwnProperty(p)) - return true; - } - if (checkHasConfig(loader.packages) || checkHasConfig(loader.meta) || checkHasConfig(loader.depCache) || checkHasConfig(loader.bundles) || checkHasConfig(loader.packageConfigPaths)) - throw new TypeError('Incorrect configuration order. The baseURL must be configured with the first SystemJS.config call.'); - - this.baseURL = baseURL; - prepareBaseURL.call(this); - } - - if (cfg.paths) - extend(loader.paths, cfg.paths); - - envSet(loader, cfg, function(cfg) { - if (cfg.paths) - extend(loader.paths, cfg.paths); - }); - - // warn on wildcard path deprecations - if (this.warnings) { - for (var p in loader.paths) - if (p.indexOf('*') != -1) - warn.call(loader, 'Paths configuration "' + p + '" -> "' + loader.paths[p] + '" uses wildcards which are being deprecated for simpler trailing "/" folder paths.'); - } - } - - if (cfg.defaultJSExtensions) { - loader.defaultJSExtensions = cfg.defaultJSExtensions; - warn.call(loader, 'The defaultJSExtensions configuration option is deprecated, use packages configuration instead.'); - } - - if (cfg.pluginFirst) - loader.pluginFirst = cfg.pluginFirst; - - if (cfg.map) { - var objMaps = ''; - for (var p in cfg.map) { - var v = cfg.map[p]; - - // object map backwards-compat into packages configuration - if (typeof v !== 'string') { - objMaps += (objMaps.length ? ', ' : '') + '"' + p + '"'; - - var defaultJSExtension = loader.defaultJSExtensions && p.substr(p.length - 3, 3) != '.js'; - var prop = loader.decanonicalize(p); - if (defaultJSExtension && prop.substr(prop.length - 3, 3) == '.js') - prop = prop.substr(0, prop.length - 3); - - // if a package main, revert it - var pkgMatch = ''; - for (var pkg in loader.packages) { - if (prop.substr(0, pkg.length) == pkg - && (!prop[pkg.length] || prop[pkg.length] == '/') - && pkgMatch.split('/').length < pkg.split('/').length) - pkgMatch = pkg; - } - if (pkgMatch && loader.packages[pkgMatch].main) - prop = prop.substr(0, prop.length - loader.packages[pkgMatch].main.length - 1); - - var pkg = loader.packages[prop] = loader.packages[prop] || {}; - pkg.map = v; - } - else { - loader.map[p] = v; - } - } - if (objMaps) - warn.call(loader, 'The map configuration for ' + objMaps + ' uses object submaps, which is deprecated in global map.\nUpdate this to use package contextual map with configs like SystemJS.config({ packages: { "' + p + '": { map: {...} } } }).'); - } - - if (cfg.packageConfigPaths) { - var packageConfigPaths = []; - for (var i = 0; i < cfg.packageConfigPaths.length; i++) { - var path = cfg.packageConfigPaths[i]; - var packageLength = Math.max(path.lastIndexOf('*') + 1, path.lastIndexOf('/')); - var normalized = coreResolve.call(loader, path.substr(0, packageLength)); - packageConfigPaths[i] = normalized + path.substr(packageLength); - } - loader.packageConfigPaths = packageConfigPaths; - } - - if (cfg.bundles) { - for (var p in cfg.bundles) { - var bundle = []; - for (var i = 0; i < cfg.bundles[p].length; i++) { - var defaultJSExtension = loader.defaultJSExtensions && cfg.bundles[p][i].substr(cfg.bundles[p][i].length - 3, 3) != '.js'; - var normalizedBundleDep = loader.decanonicalize(cfg.bundles[p][i]); - if (defaultJSExtension && normalizedBundleDep.substr(normalizedBundleDep.length - 3, 3) == '.js') - normalizedBundleDep = normalizedBundleDep.substr(0, normalizedBundleDep.length - 3); - bundle.push(normalizedBundleDep); - } - loader.bundles[p] = bundle; - } - } - - if (cfg.packages) { - for (var p in cfg.packages) { - if (p.match(/^([^\/]+:)?\/\/$/)) - throw new TypeError('"' + p + '" is not a valid package name.'); - - var prop = coreResolve.call(loader, p); - - // allow trailing slash in packages - if (prop[prop.length - 1] == '/') - prop = prop.substr(0, prop.length - 1); - - setPkgConfig(loader, prop, cfg.packages[p], false); - } - } - - for (var c in cfg) { - var v = cfg[c]; - - if (indexOf.call(['baseURL', 'map', 'packages', 'bundles', 'paths', 'warnings', 'packageConfigPaths', - 'loaderErrorStack', 'browserConfig', 'nodeConfig', 'devConfig', 'buildConfig', 'productionConfig'], c) != -1) - continue; - - if (typeof v != 'object' || v instanceof Array) { - loader[c] = v; - } - else { - loader[c] = loader[c] || {}; - - for (var p in v) { - // base-level wildcard meta does not normalize to retain catch-all quality - if (c == 'meta' && p[0] == '*') { - extend(loader[c][p] = loader[c][p] || {}, v[p]); - } - else if (c == 'meta') { - // meta can go through global map, with defaultJSExtensions adding - var resolved = coreResolve.call(loader, p); - if (loader.defaultJSExtensions && resolved.substr(resolved.length - 3, 3) != '.js' && !isPlain(resolved)) - resolved += '.js'; - extend(loader[c][resolved] = loader[c][resolved] || {}, v[p]); - } - else if (c == 'depCache') { - var defaultJSExtension = loader.defaultJSExtensions && p.substr(p.length - 3, 3) != '.js'; - var prop = loader.decanonicalize(p); - if (defaultJSExtension && prop.substr(prop.length - 3, 3) == '.js') - prop = prop.substr(0, prop.length - 3); - loader[c][prop] = [].concat(v[p]); - } - else { - loader[c][p] = v[p]; - } - } - } - } - - envSet(loader, cfg, function(cfg) { - loader.config(cfg, true); - }); -};/* - * Package Configuration Extension - * - * Example: - * - * SystemJS.packages = { - * jquery: { - * main: 'index.js', // when not set, package name is requested directly - * format: 'amd', - * defaultExtension: 'ts', // defaults to 'js', can be set to false - * modules: { - * '*.ts': { - * loader: 'typescript' - * }, - * 'vendor/sizzle.js': { - * format: 'global' - * } - * }, - * map: { - * // map internal require('sizzle') to local require('./vendor/sizzle') - * sizzle: './vendor/sizzle.js', - * // map any internal or external require of 'jquery/vendor/another' to 'another/index.js' - * './vendor/another.js': './another/index.js', - * // test.js / test -> lib/test.js - * './test.js': './lib/test.js', - * - * // environment-specific map configurations - * './index.js': { - * '~browser': './index-node.js', - * './custom-condition.js|~export': './index-custom.js' - * } - * }, - * // allows for setting package-prefixed depCache - * // keys are normalized module names relative to the package itself - * depCache: { - * // import 'package/index.js' loads in parallel package/lib/test.js,package/vendor/sizzle.js - * './index.js': ['./test'], - * './test.js': ['external-dep'], - * 'external-dep/path.js': ['./another.js'] - * } - * } - * }; - * - * Then: - * import 'jquery' -> jquery/index.js - * import 'jquery/submodule' -> jquery/submodule.js - * import 'jquery/submodule.ts' -> jquery/submodule.ts loaded as typescript - * import 'jquery/vendor/another' -> another/index.js - * - * Detailed Behaviours - * - main can have a leading "./" can be added optionally - * - map and defaultExtension are applied to the main - * - defaultExtension adds the extension only if the exact extension is not present - * - defaultJSExtensions applies after map when defaultExtension is not set - * - if a meta value is available for a module, map and defaultExtension are skipped - * - like global map, package map also applies to subpaths (sizzle/x, ./vendor/another/sub) - * - condition module map is '@env' module in package or '@system-env' globally - * - map targets support conditional interpolation ('./x': './x.#{|env}.js') - * - internal package map targets cannot use boolean conditionals - * - * Package Configuration Loading - * - * Not all packages may already have their configuration present in the System config - * For these cases, a list of packageConfigPaths can be provided, which when matched against - * a request, will first request a ".json" file by the package name to derive the package - * configuration from. This allows dynamic loading of non-predetermined code, a key use - * case in SystemJS. - * - * Example: - * - * SystemJS.packageConfigPaths = ['packages/test/package.json', 'packages/*.json']; - * - * // will first request 'packages/new-package/package.json' for the package config - * // before completing the package request to 'packages/new-package/path' - * SystemJS.import('packages/new-package/path'); - * - * // will first request 'packages/test/package.json' before the main - * SystemJS.import('packages/test'); - * - * When a package matches packageConfigPaths, it will always send a config request for - * the package configuration. - * The package name itself is taken to be the match up to and including the last wildcard - * or trailing slash. - * The most specific package config path will be used. - * Any existing package configurations for the package will deeply merge with the - * package config, with the existing package configurations taking preference. - * To opt-out of the package configuration request for a package that matches - * packageConfigPaths, use the { configured: true } package config option. - * - */ -(function() { - - hookConstructor(function(constructor) { - return function() { - constructor.call(this); - this.packages = {}; - this.packageConfigPaths = []; - }; - }); - - function getPackage(loader, normalized) { - // use most specific package - var curPkg, curPkgLen = 0, pkgLen; - for (var p in loader.packages) { - if (normalized.substr(0, p.length) === p && (normalized.length === p.length || normalized[p.length] === '/')) { - pkgLen = p.split('/').length; - if (pkgLen > curPkgLen) { - curPkg = p; - curPkgLen = pkgLen; - } - } - } - return curPkg; - } - - function addDefaultExtension(loader, pkg, pkgName, subPath, skipExtensions) { - // don't apply extensions to folders or if defaultExtension = false - if (!subPath || subPath[subPath.length - 1] == '/' || skipExtensions || pkg.defaultExtension === false) - return subPath; - - var metaMatch = false; - - // exact meta or meta with any content after the last wildcard skips extension - if (pkg.meta) - getMetaMatches(pkg.meta, subPath, function(metaPattern, matchMeta, matchDepth) { - if (matchDepth == 0 || metaPattern.lastIndexOf('*') != metaPattern.length - 1) - return metaMatch = true; - }); - - // exact global meta or meta with any content after the last wildcard skips extension - if (!metaMatch && loader.meta) - getMetaMatches(loader.meta, pkgName + '/' + subPath, function(metaPattern, matchMeta, matchDepth) { - if (matchDepth == 0 || metaPattern.lastIndexOf('*') != metaPattern.length - 1) - return metaMatch = true; - }); - - if (metaMatch) - return subPath; - - // work out what the defaultExtension is and add if not there already - // NB reconsider if default should really be ".js"? - var defaultExtension = '.' + (pkg.defaultExtension || 'js'); - if (subPath.substr(subPath.length - defaultExtension.length) != defaultExtension) - return subPath + defaultExtension; - else - return subPath; - } - - function applyPackageConfigSync(loader, pkg, pkgName, subPath, skipExtensions) { - // main - if (!subPath) { - if (pkg.main) - subPath = pkg.main.substr(0, 2) == './' ? pkg.main.substr(2) : pkg.main; - // also no submap if name is package itself (import 'pkg' -> 'path/to/pkg.js') - else - // NB can add a default package main convention here when defaultJSExtensions is deprecated - // if it becomes internal to the package then it would no longer be an exit path - return pkgName + (loader.defaultJSExtensions ? '.js' : ''); - } - - // map config checking without then with extensions - if (pkg.map) { - var mapPath = './' + subPath; - - var mapMatch = getMapMatch(pkg.map, mapPath); - - // we then check map with the default extension adding - if (!mapMatch) { - mapPath = './' + addDefaultExtension(loader, pkg, pkgName, subPath, skipExtensions); - if (mapPath != './' + subPath) - mapMatch = getMapMatch(pkg.map, mapPath); - } - if (mapMatch) { - var mapped = doMapSync(loader, pkg, pkgName, mapMatch, mapPath, skipExtensions); - if (mapped) - return mapped; - } - } - - // normal package resolution - return pkgName + '/' + addDefaultExtension(loader, pkg, pkgName, subPath, skipExtensions); - } - - function validMapping(mapMatch, mapped, pkgName, path) { - // disallow internal to subpath maps - if (mapMatch == '.') - throw new Error('Package ' + pkgName + ' has a map entry for "." which is not permitted.'); - - // allow internal ./x -> ./x/y or ./x/ -> ./x/y recursive maps - // but only if the path is exactly ./x and not ./x/z - if (mapped.substr(0, mapMatch.length) == mapMatch && path.length > mapMatch.length) - return false; - - return true; - } - - function doMapSync(loader, pkg, pkgName, mapMatch, path, skipExtensions) { - if (path[path.length - 1] == '/') - path = path.substr(0, path.length - 1); - var mapped = pkg.map[mapMatch]; - - if (typeof mapped == 'object') - throw new Error('Synchronous conditional normalization not supported sync normalizing ' + mapMatch + ' in ' + pkgName); - - if (!validMapping(mapMatch, mapped, pkgName, path) || typeof mapped != 'string') - return; - - // package map to main / base-level - if (mapped == '.') - mapped = pkgName; - - // internal package map - else if (mapped.substr(0, 2) == './') - return pkgName + '/' + addDefaultExtension(loader, pkg, pkgName, mapped.substr(2) + path.substr(mapMatch.length), skipExtensions); - - // external map reference - return loader.normalizeSync(mapped + path.substr(mapMatch.length), pkgName + '/'); - } - - function applyPackageConfig(loader, pkg, pkgName, subPath, skipExtensions) { - // main - if (!subPath) { - if (pkg.main) - subPath = pkg.main.substr(0, 2) == './' ? pkg.main.substr(2) : pkg.main; - // also no submap if name is package itself (import 'pkg' -> 'path/to/pkg.js') - else - // NB can add a default package main convention here when defaultJSExtensions is deprecated - // if it becomes internal to the package then it would no longer be an exit path - return Promise.resolve(pkgName + (loader.defaultJSExtensions ? '.js' : '')); - } - - // map config checking without then with extensions - var mapPath, mapMatch; - - if (pkg.map) { - mapPath = './' + subPath; - mapMatch = getMapMatch(pkg.map, mapPath); - - // we then check map with the default extension adding - if (!mapMatch) { - mapPath = './' + addDefaultExtension(loader, pkg, pkgName, subPath, skipExtensions); - if (mapPath != './' + subPath) - mapMatch = getMapMatch(pkg.map, mapPath); - } - } - - return (mapMatch ? doMap(loader, pkg, pkgName, mapMatch, mapPath, skipExtensions) : Promise.resolve()) - .then(function(mapped) { - if (mapped) - return Promise.resolve(mapped); - - // normal package resolution / fallback resolution for no conditional match - return Promise.resolve(pkgName + '/' + addDefaultExtension(loader, pkg, pkgName, subPath, skipExtensions)); - }); - } - - function doStringMap(loader, pkg, pkgName, mapMatch, mapped, path, skipExtensions) { - // NB the interpolation cases should strictly skip subsequent interpolation - // package map to main / base-level - if (mapped == '.') - mapped = pkgName; - - // internal package map - else if (mapped.substr(0, 2) == './') - return Promise.resolve(pkgName + '/' + addDefaultExtension(loader, pkg, pkgName, mapped.substr(2) + path.substr(mapMatch.length), skipExtensions)) - .then(function(name) { - return interpolateConditional.call(loader, name, pkgName + '/'); - }); - - // external map reference - return loader.normalize(mapped + path.substr(mapMatch.length), pkgName + '/'); - } - - function doMap(loader, pkg, pkgName, mapMatch, path, skipExtensions) { - if (path[path.length - 1] == '/') - path = path.substr(0, path.length - 1); - - var mapped = pkg.map[mapMatch]; - - if (typeof mapped == 'string') { - if (!validMapping(mapMatch, mapped, pkgName, path)) - return Promise.resolve(); - return doStringMap(loader, pkg, pkgName, mapMatch, mapped, path, skipExtensions); - } - - // we use a special conditional syntax to allow the builder to handle conditional branch points further - if (loader.builder) - return Promise.resolve(pkgName + '/#:' + path); - - // we load all conditions upfront - var conditionPromises = []; - var conditions = []; - for (var e in mapped) { - var c = parseCondition(e); - conditions.push({ - condition: c, - map: mapped[e] - }); - conditionPromises.push(loader['import'](c.module, pkgName)); - } - - // map object -> conditional map - return Promise.all(conditionPromises) - .then(function(conditionValues) { - // first map condition to match is used - for (var i = 0; i < conditions.length; i++) { - var c = conditions[i].condition; - var value = readMemberExpression(c.prop, conditionValues[i]); - if (!c.negate && value || c.negate && !value) - return conditions[i].map; - } - }) - .then(function(mapped) { - if (mapped) { - if (!validMapping(mapMatch, mapped, pkgName, path)) - return; - return doStringMap(loader, pkg, pkgName, mapMatch, mapped, path, skipExtensions); - } - - // no environment match -> fallback to original subPath by returning undefined - }); - } - - // normalizeSync = decanonicalize + package resolution - SystemJSLoader.prototype.normalizeSync = SystemJSLoader.prototype.decanonicalize = SystemJSLoader.prototype.normalize; - - // decanonicalize must JUST handle package defaultExtension: false case when defaultJSExtensions is set - // to be deprecated! - hook('decanonicalize', function(decanonicalize) { - return function(name, parentName) { - if (this.builder) - return decanonicalize.call(this, name, parentName, true); - - var decanonicalized = decanonicalize.call(this, name, parentName, false); - - if (!this.defaultJSExtensions) - return decanonicalized; - - var pkgName = getPackage(this, decanonicalized); - - var pkg = this.packages[pkgName]; - var defaultExtension = pkg && pkg.defaultExtension; - - if (defaultExtension == undefined && pkg && pkg.meta) - getMetaMatches(pkg.meta, decanonicalized.substr(pkgName), function(metaPattern, matchMeta, matchDepth) { - if (matchDepth == 0 || metaPattern.lastIndexOf('*') != metaPattern.length - 1) { - defaultExtension = false; - return true; - } - }); - - if ((defaultExtension === false || defaultExtension && defaultExtension != '.js') && name.substr(name.length - 3, 3) != '.js' && decanonicalized.substr(decanonicalized.length - 3, 3) == '.js') - decanonicalized = decanonicalized.substr(0, decanonicalized.length - 3); - - return decanonicalized; - }; - }); - - hook('normalizeSync', function(normalizeSync) { - return function(name, parentName, isPlugin) { - var loader = this; - isPlugin = isPlugin === true; - - // apply contextual package map first - // (we assume the parent package config has already been loaded) - if (parentName) - var parentPackageName = getPackage(loader, parentName) || - loader.defaultJSExtensions && parentName.substr(parentName.length - 3, 3) == '.js' && - getPackage(loader, parentName.substr(0, parentName.length - 3)); - - var parentPackage = parentPackageName && loader.packages[parentPackageName]; - - // ignore . since internal maps handled by standard package resolution - if (parentPackage && name[0] != '.') { - var parentMap = parentPackage.map; - var parentMapMatch = parentMap && getMapMatch(parentMap, name); - - if (parentMapMatch && typeof parentMap[parentMapMatch] == 'string') { - var mapped = doMapSync(loader, parentPackage, parentPackageName, parentMapMatch, name, isPlugin); - if (mapped) - return mapped; - } - } - - var defaultJSExtension = loader.defaultJSExtensions && name.substr(name.length - 3, 3) != '.js'; - - // apply map, core, paths, contextual package map - var normalized = normalizeSync.call(loader, name, parentName, false); - - // undo defaultJSExtension - if (defaultJSExtension && normalized.substr(normalized.length - 3, 3) != '.js') - defaultJSExtension = false; - if (defaultJSExtension) - normalized = normalized.substr(0, normalized.length - 3); - - var pkgConfigMatch = getPackageConfigMatch(loader, normalized); - var pkgName = pkgConfigMatch && pkgConfigMatch.packageName || getPackage(loader, normalized); - - if (!pkgName) - return normalized + (defaultJSExtension ? '.js' : ''); - - var subPath = normalized.substr(pkgName.length + 1); - - return applyPackageConfigSync(loader, loader.packages[pkgName] || {}, pkgName, subPath, isPlugin); - }; - }); - - hook('normalize', function(normalize) { - return function(name, parentName, isPlugin) { - var loader = this; - isPlugin = isPlugin === true; - - return Promise.resolve() - .then(function() { - // apply contextual package map first - // (we assume the parent package config has already been loaded) - if (parentName) - var parentPackageName = getPackage(loader, parentName) || - loader.defaultJSExtensions && parentName.substr(parentName.length - 3, 3) == '.js' && - getPackage(loader, parentName.substr(0, parentName.length - 3)); - - var parentPackage = parentPackageName && loader.packages[parentPackageName]; - - // ignore . since internal maps handled by standard package resolution - if (parentPackage && name.substr(0, 2) != './') { - var parentMap = parentPackage.map; - var parentMapMatch = parentMap && getMapMatch(parentMap, name); - - if (parentMapMatch) - return doMap(loader, parentPackage, parentPackageName, parentMapMatch, name, isPlugin); - } - - return Promise.resolve(); - }) - .then(function(mapped) { - if (mapped) - return mapped; - - var defaultJSExtension = loader.defaultJSExtensions && name.substr(name.length - 3, 3) != '.js'; - - // apply map, core, paths, contextual package map - var normalized = normalize.call(loader, name, parentName, false); - - // undo defaultJSExtension - if (defaultJSExtension && normalized.substr(normalized.length - 3, 3) != '.js') - defaultJSExtension = false; - if (defaultJSExtension) - normalized = normalized.substr(0, normalized.length - 3); - - var pkgConfigMatch = getPackageConfigMatch(loader, normalized); - var pkgName = pkgConfigMatch && pkgConfigMatch.packageName || getPackage(loader, normalized); - - if (!pkgName) - return Promise.resolve(normalized + (defaultJSExtension ? '.js' : '')); - - var pkg = loader.packages[pkgName]; - - // if package is already configured or not a dynamic config package, use existing package config - var isConfigured = pkg && (pkg.configured || !pkgConfigMatch); - return (isConfigured ? Promise.resolve(pkg) : loadPackageConfigPath(loader, pkgName, pkgConfigMatch.configPath)) - .then(function(pkg) { - var subPath = normalized.substr(pkgName.length + 1); - - return applyPackageConfig(loader, pkg, pkgName, subPath, isPlugin); - }); - }); - }; - }); - - // check if the given normalized name matches a packageConfigPath - // if so, loads the config - var packageConfigPaths = {}; - - // data object for quick checks against package paths - function createPkgConfigPathObj(path) { - var lastWildcard = path.lastIndexOf('*'); - var length = Math.max(lastWildcard + 1, path.lastIndexOf('/')); - return { - length: length, - regEx: new RegExp('^(' + path.substr(0, length).replace(/[.+?^${}()|[\]\\]/g, '\\$&').replace(/\*/g, '[^\\/]+') + ')(\\/|$)'), - wildcard: lastWildcard != -1 - }; - } - - // most specific match wins - function getPackageConfigMatch(loader, normalized) { - var pkgName, exactMatch = false, configPath; - for (var i = 0; i < loader.packageConfigPaths.length; i++) { - var packageConfigPath = loader.packageConfigPaths[i]; - var p = packageConfigPaths[packageConfigPath] || (packageConfigPaths[packageConfigPath] = createPkgConfigPathObj(packageConfigPath)); - if (normalized.length < p.length) - continue; - var match = normalized.match(p.regEx); - if (match && (!pkgName || (!(exactMatch && p.wildcard) && pkgName.length < match[1].length))) { - pkgName = match[1]; - exactMatch = !p.wildcard; - configPath = pkgName + packageConfigPath.substr(p.length); - } - } - - if (!pkgName) - return; - - return { - packageName: pkgName, - configPath: configPath - }; - } - - function loadPackageConfigPath(loader, pkgName, pkgConfigPath) { - var configLoader = loader.pluginLoader || loader; - - // NB remove this when json is default - (configLoader.meta[pkgConfigPath] = configLoader.meta[pkgConfigPath] || {}).format = 'json'; - configLoader.meta[pkgConfigPath].loader = null; - - return configLoader.load(pkgConfigPath) - .then(function() { - var cfg = configLoader.get(pkgConfigPath)['default']; - - // support "systemjs" prefixing - if (cfg.systemjs) - cfg = cfg.systemjs; - - // modules backwards compatibility - if (cfg.modules) { - cfg.meta = cfg.modules; - warn.call(loader, 'Package config file ' + pkgConfigPath + ' is configured with "modules", which is deprecated as it has been renamed to "meta".'); - } - - return setPkgConfig(loader, pkgName, cfg, true); - }); - } - - function getMetaMatches(pkgMeta, subPath, matchFn) { - // wildcard meta - var meta = {}; - var wildcardIndex; - for (var module in pkgMeta) { - // allow meta to start with ./ for flexibility - var dotRel = module.substr(0, 2) == './' ? './' : ''; - if (dotRel) - module = module.substr(2); - - wildcardIndex = module.indexOf('*'); - if (wildcardIndex === -1) - continue; - - if (module.substr(0, wildcardIndex) == subPath.substr(0, wildcardIndex) - && module.substr(wildcardIndex + 1) == subPath.substr(subPath.length - module.length + wildcardIndex + 1)) { - // alow match function to return true for an exit path - if (matchFn(module, pkgMeta[dotRel + module], module.split('/').length)) - return; - } - } - // exact meta - var exactMeta = pkgMeta[subPath] && pkgMeta.hasOwnProperty && pkgMeta.hasOwnProperty(subPath) ? pkgMeta[subPath] : pkgMeta['./' + subPath]; - if (exactMeta) - matchFn(exactMeta, exactMeta, 0); - } - - hook('locate', function(locate) { - return function(load) { - var loader = this; - return Promise.resolve(locate.call(this, load)) - .then(function(address) { - var pkgName = getPackage(loader, load.name); - if (pkgName) { - var pkg = loader.packages[pkgName]; - var subPath = load.name.substr(pkgName.length + 1); - - var meta = {}; - if (pkg.meta) { - var bestDepth = 0; - - // NB support a main shorthand in meta here? - getMetaMatches(pkg.meta, subPath, function(metaPattern, matchMeta, matchDepth) { - if (matchDepth > bestDepth) - bestDepth = matchDepth; - extendMeta(meta, matchMeta, matchDepth && bestDepth > matchDepth); - }); - - extendMeta(load.metadata, meta); - } - - // format - if (pkg.format && !load.metadata.loader) - load.metadata.format = load.metadata.format || pkg.format; - } - - return address; - }); - }; - }); - -})(); -/* - * Script tag fetch - * - * When load.metadata.scriptLoad is true, we load via script tag injection. - */ -(function() { - - if (typeof document != 'undefined') - var head = document.getElementsByTagName('head')[0]; - - var curSystem; - var curRequire; - - // if doing worker executing, this is set to the load record being executed - var workerLoad = null; - - // interactive mode handling method courtesy RequireJS - var ieEvents = head && (function() { - var s = document.createElement('script'); - var isOpera = typeof opera !== 'undefined' && opera.toString() === '[object Opera]'; - return s.attachEvent && !(s.attachEvent.toString && s.attachEvent.toString().indexOf('[native code') < 0) && !isOpera; - })(); - - // IE interactive-only part - // we store loading scripts array as { script: <script>, load: {...} } - var interactiveLoadingScripts = []; - var interactiveScript; - function getInteractiveScriptLoad() { - if (interactiveScript && interactiveScript.script.readyState === 'interactive') - return interactiveScript.load; - - for (var i = 0; i < interactiveLoadingScripts.length; i++) - if (interactiveLoadingScripts[i].script.readyState == 'interactive') { - interactiveScript = interactiveLoadingScripts[i]; - return interactiveScript.load; - } - } - - // System.register, System.registerDynamic, AMD define pipeline - // this is called by the above methods when they execute - // we then run the reduceRegister_ collection function either immediately - // if we are in IE and know the currently executing script (interactive) - // or later if we need to wait for the synchronous load callback to know the script - var loadingCnt = 0; - var registerQueue = []; - hook('pushRegister_', function(pushRegister) { - return function(register) { - // if using eval-execution then skip - if (pushRegister.call(this, register)) - return false; - - // if using worker execution, then we're done - if (workerLoad) - this.reduceRegister_(workerLoad, register); - - // detect if we know the currently executing load (IE) - // if so, immediately call reduceRegister - else if (ieEvents) - this.reduceRegister_(getInteractiveScriptLoad(), register); - - // otherwise, add to our execution queue - // to call reduceRegister on sync script load event - else if (loadingCnt) - registerQueue.push(register); - - // if we're not currently loading anything though - // then do the reduction against a null load - // (out of band named define or named register) - // note even in non-script environments, this catch is used - else - this.reduceRegister_(null, register); - - return true; - }; - }); - - function webWorkerImport(loader, load) { - return new Promise(function(resolve, reject) { - if (load.metadata.integrity) - reject(new Error('Subresource integrity checking is not supported in web workers.')); - - workerLoad = load; - try { - importScripts(load.address); - } - catch(e) { - workerLoad = null; - reject(e); - } - workerLoad = null; - - // if nothing registered, then something went wrong - if (!load.metadata.entry) - reject(new Error(load.address + ' did not call System.register or AMD define. If loading a global, ensure the meta format is set to global.')); - - resolve(''); - }); - } - - // override fetch to use script injection - hook('fetch', function(fetch) { - return function(load) { - var loader = this; - - if (load.metadata.format == 'json' || !load.metadata.scriptLoad || (!isBrowser && !isWorker)) - return fetch.call(this, load); - - if (isWorker) - return webWorkerImport(loader, load); - - return new Promise(function(resolve, reject) { - var s = document.createElement('script'); - - s.async = true; - - if (load.metadata.crossOrigin) - s.crossOrigin = load.metadata.crossOrigin; - - if (load.metadata.integrity) - s.setAttribute('integrity', load.metadata.integrity); - - if (ieEvents) { - s.attachEvent('onreadystatechange', complete); - interactiveLoadingScripts.push({ - script: s, - load: load - }); - } - else { - s.addEventListener('load', complete, false); - s.addEventListener('error', error, false); - } - - loadingCnt++; - - curSystem = __global.System; - curRequire = __global.require; - - s.src = load.address; - head.appendChild(s); - - function complete(evt) { - if (s.readyState && s.readyState != 'loaded' && s.readyState != 'complete') - return; - - loadingCnt--; - - // complete call is sync on execution finish - // (in ie already done reductions) - if (!load.metadata.entry && !registerQueue.length) { - loader.reduceRegister_(load); - } - else if (!ieEvents) { - for (var i = 0; i < registerQueue.length; i++) - loader.reduceRegister_(load, registerQueue[i]); - registerQueue = []; - } - - cleanup(); - - // if nothing registered, then something went wrong - if (!load.metadata.entry && !load.metadata.bundle) - reject(new Error(load.name + ' did not call System.register or AMD define. If loading a global module configure the global name via the meta exports property for script injection support.')); - - resolve(''); - } - - function error(evt) { - cleanup(); - reject(new Error('Unable to load script ' + load.address)); - } - - function cleanup() { - __global.System = curSystem; - __global.require = curRequire; - - if (s.detachEvent) { - s.detachEvent('onreadystatechange', complete); - for (var i = 0; i < interactiveLoadingScripts.length; i++) - if (interactiveLoadingScripts[i].script == s) { - if (interactiveScript && interactiveScript.script == s) - interactiveScript = null; - interactiveLoadingScripts.splice(i, 1); - } - } - else { - s.removeEventListener('load', complete, false); - s.removeEventListener('error', error, false); - } - - head.removeChild(s); - } - }); - }; - }); -})(); -/* - * Instantiate registry extension - * - * Supports Traceur System.register 'instantiate' output for loading ES6 as ES5. - * - * - Creates the loader.register function - * - Also supports metadata.format = 'register' in instantiate for anonymous register modules - * - Also supports metadata.deps, metadata.execute and metadata.executingRequire - * for handling dynamic modules alongside register-transformed ES6 modules - * - * - * The code here replicates the ES6 linking groups algorithm to ensure that - * circular ES6 compiled into System.register can work alongside circular AMD - * and CommonJS, identically to the actual ES6 loader. - * - */ - - -/* - * Registry side table entries in loader.defined - * Registry Entry Contains: - * - name - * - deps - * - declare for declarative modules - * - execute for dynamic modules, different to declarative execute on module - * - executingRequire indicates require drives execution for circularity of dynamic modules - * - declarative optional boolean indicating which of the above - * - * Can preload modules directly on SystemJS.defined['my/module'] = { deps, execute, executingRequire } - * - * Then the entry gets populated with derived information during processing: - * - normalizedDeps derived from deps, created in instantiate - * - groupIndex used by group linking algorithm - * - evaluated indicating whether evaluation has happend - * - module the module record object, containing: - * - exports actual module exports - * - * For dynamic we track the es module with: - * - esModule actual es module value - * - esmExports whether to extend the esModule with named exports - * - * Then for declarative only we track dynamic bindings with the 'module' records: - * - name - * - exports - * - setters declarative setter functions - * - dependencies, module records of dependencies - * - importers, module records of dependents - * - * After linked and evaluated, entries are removed, declarative module records remain in separate - * module binding table - * - */ - -var leadingCommentAndMetaRegEx = /^(\s*\/\*[^\*]*(\*(?!\/)[^\*]*)*\*\/|\s*\/\/[^\n]*|\s*"[^"]+"\s*;?|\s*'[^']+'\s*;?)*\s*/; -function detectRegisterFormat(source) { - var leadingCommentAndMeta = source.match(leadingCommentAndMetaRegEx); - return leadingCommentAndMeta && source.substr(leadingCommentAndMeta[0].length, 15) == 'System.register'; -} - -function createEntry() { - return { - name: null, - deps: null, - originalIndices: null, - declare: null, - execute: null, - executingRequire: false, - declarative: false, - normalizedDeps: null, - groupIndex: null, - evaluated: false, - module: null, - esModule: null, - esmExports: false - }; -} - -(function() { - - /* - * There are two variations of System.register: - * 1. System.register for ES6 conversion (2-3 params) - System.register([name, ]deps, declare) - * see https://github.com/ModuleLoader/es6-module-loader/wiki/System.register-Explained - * - * 2. System.registerDynamic for dynamic modules (3-4 params) - System.registerDynamic([name, ]deps, executingRequire, execute) - * the true or false statement - * - * this extension implements the linking algorithm for the two variations identical to the spec - * allowing compiled ES6 circular references to work alongside AMD and CJS circular references. - * - */ - SystemJSLoader.prototype.register = function(name, deps, declare) { - if (typeof name != 'string') { - declare = deps; - deps = name; - name = null; - } - - // dynamic backwards-compatibility - // can be deprecated eventually - if (typeof declare == 'boolean') - return this.registerDynamic.apply(this, arguments); - - var entry = createEntry(); - // ideally wouldn't apply map config to bundle names but - // dependencies go through map regardless so we can't restrict - // could reconsider in shift to new spec - entry.name = name && (this.decanonicalize || this.normalize).call(this, name); - entry.declarative = true; - entry.deps = deps; - entry.declare = declare; - - this.pushRegister_({ - amd: false, - entry: entry - }); - }; - SystemJSLoader.prototype.registerDynamic = function(name, deps, declare, execute) { - if (typeof name != 'string') { - execute = declare; - declare = deps; - deps = name; - name = null; - } - - // dynamic - var entry = createEntry(); - entry.name = name && (this.decanonicalize || this.normalize).call(this, name); - entry.deps = deps; - entry.execute = execute; - entry.executingRequire = declare; - - this.pushRegister_({ - amd: false, - entry: entry - }); - }; - hook('reduceRegister_', function() { - return function(load, register) { - if (!register) - return; - - var entry = register.entry; - var curMeta = load && load.metadata; - - // named register - if (entry.name) { - if (!(entry.name in this.defined)) - this.defined[entry.name] = entry; - - if (curMeta) - curMeta.bundle = true; - } - // anonymous register - if (!entry.name || load && !curMeta.entry && entry.name == load.name) { - if (!curMeta) - throw new TypeError('Invalid System.register call. Anonymous System.register calls can only be made by modules loaded by SystemJS.import and not via script tags.'); - if (curMeta.entry) { - if (curMeta.format == 'register') - throw new Error('Multiple anonymous System.register calls in module ' + load.name + '. If loading a bundle, ensure all the System.register calls are named.'); - else - throw new Error('Module ' + load.name + ' interpreted as ' + curMeta.format + ' module format, but called System.register.'); - } - if (!curMeta.format) - curMeta.format = 'register'; - curMeta.entry = entry; - } - }; - }); - - hookConstructor(function(constructor) { - return function() { - constructor.call(this); - - this.defined = {}; - this._loader.moduleRecords = {}; - }; - }); - - function buildGroups(entry, loader, groups) { - groups[entry.groupIndex] = groups[entry.groupIndex] || []; - - if (indexOf.call(groups[entry.groupIndex], entry) != -1) - return; - - groups[entry.groupIndex].push(entry); - - for (var i = 0, l = entry.normalizedDeps.length; i < l; i++) { - var depName = entry.normalizedDeps[i]; - var depEntry = loader.defined[depName]; - - // not in the registry means already linked / ES6 - if (!depEntry || depEntry.evaluated) - continue; - - // now we know the entry is in our unlinked linkage group - var depGroupIndex = entry.groupIndex + (depEntry.declarative != entry.declarative); - - // the group index of an entry is always the maximum - if (depEntry.groupIndex === null || depEntry.groupIndex < depGroupIndex) { - - // if already in a group, remove from the old group - if (depEntry.groupIndex !== null) { - groups[depEntry.groupIndex].splice(indexOf.call(groups[depEntry.groupIndex], depEntry), 1); - - // if the old group is empty, then we have a mixed depndency cycle - if (groups[depEntry.groupIndex].length == 0) - throw new Error("Mixed dependency cycle detected"); - } - - depEntry.groupIndex = depGroupIndex; - } - - buildGroups(depEntry, loader, groups); - } - } - - function link(name, startEntry, loader) { - // skip if already linked - if (startEntry.module) - return; - - startEntry.groupIndex = 0; - - var groups = []; - - buildGroups(startEntry, loader, groups); - - var curGroupDeclarative = !!startEntry.declarative == groups.length % 2; - for (var i = groups.length - 1; i >= 0; i--) { - var group = groups[i]; - for (var j = 0; j < group.length; j++) { - var entry = group[j]; - - // link each group - if (curGroupDeclarative) - linkDeclarativeModule(entry, loader); - else - linkDynamicModule(entry, loader); - } - curGroupDeclarative = !curGroupDeclarative; - } - } - - // module binding records - function ModuleRecord() {} - defineProperty(ModuleRecord, 'toString', { - value: function() { - return 'Module'; - } - }); - - function getOrCreateModuleRecord(name, moduleRecords) { - return moduleRecords[name] || (moduleRecords[name] = { - name: name, - dependencies: [], - exports: new ModuleRecord(), // start from an empty module and extend - importers: [] - }); - } - - function linkDeclarativeModule(entry, loader) { - // only link if already not already started linking (stops at circular) - if (entry.module) - return; - - var moduleRecords = loader._loader.moduleRecords; - var module = entry.module = getOrCreateModuleRecord(entry.name, moduleRecords); - var exports = entry.module.exports; - - var declaration = entry.declare.call(__global, function(name, value) { - module.locked = true; - - if (typeof name == 'object') { - for (var p in name) - exports[p] = name[p]; - } - else { - exports[name] = value; - } - - for (var i = 0, l = module.importers.length; i < l; i++) { - var importerModule = module.importers[i]; - if (!importerModule.locked) { - var importerIndex = indexOf.call(importerModule.dependencies, module); - var setter = importerModule.setters[importerIndex]; - if (setter) - setter(exports); - } - } - - module.locked = false; - return value; - }, { id: entry.name }); - - if (typeof declaration == 'function') - declaration = { setters: [], execute: declaration }; - - // allowing undefined declaration was a mistake! To be deprecated. - declaration = declaration || { setters: [], execute: function() {} }; - - module.setters = declaration.setters; - module.execute = declaration.execute; - - if (!module.setters || !module.execute) { - throw new TypeError('Invalid System.register form for ' + entry.name); - } - - // now link all the module dependencies - for (var i = 0, l = entry.normalizedDeps.length; i < l; i++) { - var depName = entry.normalizedDeps[i]; - var depEntry = loader.defined[depName]; - var depModule = moduleRecords[depName]; - - // work out how to set depExports based on scenarios... - var depExports; - - if (depModule) { - depExports = depModule.exports; - } - // dynamic, already linked in our registry - else if (depEntry && !depEntry.declarative) { - depExports = depEntry.esModule; - } - // in the loader registry - else if (!depEntry) { - depExports = loader.get(depName); - } - // we have an entry -> link - else { - linkDeclarativeModule(depEntry, loader); - depModule = depEntry.module; - depExports = depModule.exports; - } - - // only declarative modules have dynamic bindings - if (depModule && depModule.importers) { - depModule.importers.push(module); - module.dependencies.push(depModule); - } - else { - module.dependencies.push(null); - } - - // run setters for all entries with the matching dependency name - var originalIndices = entry.originalIndices[i]; - for (var j = 0, len = originalIndices.length; j < len; ++j) { - var index = originalIndices[j]; - if (module.setters[index]) { - module.setters[index](depExports); - } - } - } - } - - // An analog to loader.get covering execution of all three layers (real declarative, simulated declarative, simulated dynamic) - function getModule(name, loader) { - var exports; - var entry = loader.defined[name]; - - if (!entry) { - exports = loader.get(name); - if (!exports) - throw new Error('Unable to load dependency ' + name + '.'); - } - - else { - if (entry.declarative) - ensureEvaluated(name, entry, [], loader); - - else if (!entry.evaluated) - linkDynamicModule(entry, loader); - - exports = entry.module.exports; - } - - if ((!entry || entry.declarative) && exports && exports.__useDefault) - return exports['default']; - - return exports; - } - - function linkDynamicModule(entry, loader) { - if (entry.module) - return; - - var exports = {}; - - var module = entry.module = { exports: exports, id: entry.name }; - - // AMD requires execute the tree first - if (!entry.executingRequire) { - for (var i = 0, l = entry.normalizedDeps.length; i < l; i++) { - var depName = entry.normalizedDeps[i]; - // we know we only need to link dynamic due to linking algorithm - var depEntry = loader.defined[depName]; - if (depEntry) - linkDynamicModule(depEntry, loader); - } - } - - // now execute - entry.evaluated = true; - var output = entry.execute.call(__global, function(name) { - for (var i = 0, l = entry.deps.length; i < l; i++) { - if (entry.deps[i] != name) - continue; - return getModule(entry.normalizedDeps[i], loader); - } - // try and normalize the dependency to see if we have another form - var nameNormalized = loader.normalizeSync(name, entry.name); - if (indexOf.call(entry.normalizedDeps, nameNormalized) != -1) - return getModule(nameNormalized, loader); - - throw new Error('Module ' + name + ' not declared as a dependency of ' + entry.name); - }, exports, module); - - if (output !== undefined) - module.exports = output; - - // create the esModule object, which allows ES6 named imports of dynamics - exports = module.exports; - - // __esModule flag treats as already-named - if (exports && (exports.__esModule || exports instanceof Module)) - entry.esModule = loader.newModule(exports); - // set module as 'default' export, then fake named exports by iterating properties - else if (entry.esmExports && exports !== __global) - entry.esModule = loader.newModule(getESModule(exports)); - // just use the 'default' export - else - entry.esModule = loader.newModule({ 'default': exports, __useDefault: true }); - } - - /* - * Given a module, and the list of modules for this current branch, - * ensure that each of the dependencies of this module is evaluated - * (unless one is a circular dependency already in the list of seen - * modules, in which case we execute it) - * - * Then we evaluate the module itself depth-first left to right - * execution to match ES6 modules - */ - function ensureEvaluated(moduleName, entry, seen, loader) { - // if already seen, that means it's an already-evaluated non circular dependency - if (!entry || entry.evaluated || !entry.declarative) - return; - - // this only applies to declarative modules which late-execute - - seen.push(moduleName); - - for (var i = 0, l = entry.normalizedDeps.length; i < l; i++) { - var depName = entry.normalizedDeps[i]; - if (indexOf.call(seen, depName) == -1) { - if (!loader.defined[depName]) - loader.get(depName); - else - ensureEvaluated(depName, loader.defined[depName], seen, loader); - } - } - - if (entry.evaluated) - return; - - entry.evaluated = true; - entry.module.execute.call(__global); - } - - // override the delete method to also clear the register caches - hook('delete', function(del) { - return function(name) { - delete this._loader.moduleRecords[name]; - delete this.defined[name]; - return del.call(this, name); - }; - }); - - hook('fetch', function(fetch) { - return function(load) { - if (this.defined[load.name]) { - load.metadata.format = 'defined'; - return ''; - } - - load.metadata.deps = load.metadata.deps || []; - - return fetch.call(this, load); - }; - }); - - hook('translate', function(translate) { - // we run the meta detection here (register is after meta) - return function(load) { - load.metadata.deps = load.metadata.deps || []; - return Promise.resolve(translate.apply(this, arguments)).then(function(source) { - // run detection for register format - if (load.metadata.format == 'register' || !load.metadata.format && detectRegisterFormat(load.source)) - load.metadata.format = 'register'; - return source; - }); - }; - }); - - // implement a perforance shortpath for System.load with no deps - hook('load', function(doLoad) { - return function(normalized) { - var loader = this; - var entry = loader.defined[normalized]; - - if (!entry || entry.deps.length) - return doLoad.apply(this, arguments); - - entry.originalIndices = entry.normalizedDeps = []; - - // recursively ensure that the module and all its - // dependencies are linked (with dependency group handling) - link(normalized, entry, loader); - - // now handle dependency execution in correct order - ensureEvaluated(normalized, entry, [], loader); - if (!entry.esModule) - entry.esModule = loader.newModule(entry.module.exports); - - // remove from the registry - if (!loader.trace) - loader.defined[normalized] = undefined; - - // return the defined module object - loader.set(normalized, entry.esModule); - - return Promise.resolve(); - }; - }); - - hook('instantiate', function(instantiate) { - return function(load) { - if (load.metadata.format == 'detect') - load.metadata.format = undefined; - - // assumes previous instantiate is sync - // (core json support) - instantiate.call(this, load); - - var loader = this; - - var entry; - - // first we check if this module has already been defined in the registry - if (loader.defined[load.name]) { - entry = loader.defined[load.name]; - // don't support deps for ES modules - if (!entry.declarative) - entry.deps = entry.deps.concat(load.metadata.deps); - entry.deps = entry.deps.concat(load.metadata.deps); - } - - // picked up already by an anonymous System.register script injection - // or via the dynamic formats - else if (load.metadata.entry) { - entry = load.metadata.entry; - entry.deps = entry.deps.concat(load.metadata.deps); - } - - // Contains System.register calls - // (dont run bundles in the builder) - else if (!(loader.builder && load.metadata.bundle) - && (load.metadata.format == 'register' || load.metadata.format == 'esm' || load.metadata.format == 'es6')) { - - if (typeof __exec != 'undefined') - __exec.call(loader, load); - - if (!load.metadata.entry && !load.metadata.bundle) - throw new Error(load.name + ' detected as ' + load.metadata.format + ' but didn\'t execute.'); - - entry = load.metadata.entry; - - // support metadata deps for System.register - if (entry && load.metadata.deps) - entry.deps = entry.deps.concat(load.metadata.deps); - } - - // named bundles are just an empty module - if (!entry) { - entry = createEntry(); - entry.deps = load.metadata.deps; - entry.execute = function() {}; - } - - // place this module onto defined for circular references - loader.defined[load.name] = entry; - - var grouped = group(entry.deps); - - entry.deps = grouped.names; - entry.originalIndices = grouped.indices; - entry.name = load.name; - entry.esmExports = load.metadata.esmExports !== false; - - // first, normalize all dependencies - var normalizePromises = []; - for (var i = 0, l = entry.deps.length; i < l; i++) - normalizePromises.push(Promise.resolve(loader.normalize(entry.deps[i], load.name))); - - return Promise.all(normalizePromises).then(function(normalizedDeps) { - - entry.normalizedDeps = normalizedDeps; - - return { - deps: entry.deps, - execute: function() { - // recursively ensure that the module and all its - // dependencies are linked (with dependency group handling) - link(load.name, entry, loader); - - // now handle dependency execution in correct order - ensureEvaluated(load.name, entry, [], loader); - - if (!entry.esModule) - entry.esModule = loader.newModule(entry.module.exports); - - // remove from the registry - if (!loader.trace) - loader.defined[load.name] = undefined; - - // return the defined module object - return entry.esModule; - } - }; - }); - }; - }); -})(); - - -function getGlobalValue(exports) { - if (typeof exports == 'string') - return readMemberExpression(exports, __global); - - if (!(exports instanceof Array)) - throw new Error('Global exports must be a string or array.'); - - var globalValue = {}; - var first = true; - for (var i = 0; i < exports.length; i++) { - var val = readMemberExpression(exports[i], __global); - if (first) { - globalValue['default'] = val; - first = false; - } - globalValue[exports[i].split('.').pop()] = val; - } - return globalValue; -} - -hook('reduceRegister_', function(reduceRegister) { - return function(load, register) { - if (register || (!load.metadata.exports && !(isWorker && load.metadata.format == 'global'))) - return reduceRegister.call(this, load, register); - - load.metadata.format = 'global'; - var entry = load.metadata.entry = createEntry(); - entry.deps = load.metadata.deps; - var globalValue = getGlobalValue(load.metadata.exports); - entry.execute = function() { - return globalValue; - }; - }; -}); - -hookConstructor(function(constructor) { - return function() { - var loader = this; - constructor.call(loader); - - var hasOwnProperty = Object.prototype.hasOwnProperty; - - // bare minimum ignores - var ignoredGlobalProps = ['_g', 'sessionStorage', 'localStorage', 'clipboardData', 'frames', 'frameElement', 'external', - 'mozAnimationStartTime', 'webkitStorageInfo', 'webkitIndexedDB', 'mozInnerScreenY', 'mozInnerScreenX']; - - var globalSnapshot; - - function forEachGlobal(callback) { - if (Object.keys) - Object.keys(__global).forEach(callback); - else - for (var g in __global) { - if (!hasOwnProperty.call(__global, g)) - continue; - callback(g); - } - } - - function forEachGlobalValue(callback) { - forEachGlobal(function(globalName) { - if (indexOf.call(ignoredGlobalProps, globalName) != -1) - return; - try { - var value = __global[globalName]; - } - catch (e) { - ignoredGlobalProps.push(globalName); - } - callback(globalName, value); - }); - } - - loader.set('@@global-helpers', loader.newModule({ - prepareGlobal: function(moduleName, exports, globals, encapsulate) { - // disable module detection - var curDefine = __global.define; - - __global.define = undefined; - - // set globals - var oldGlobals; - if (globals) { - oldGlobals = {}; - for (var g in globals) { - oldGlobals[g] = __global[g]; - __global[g] = globals[g]; - } - } - - // store a complete copy of the global object in order to detect changes - if (!exports) { - globalSnapshot = {}; - - forEachGlobalValue(function(name, value) { - globalSnapshot[name] = value; - }); - } - - // return function to retrieve global - return function() { - var globalValue = exports ? getGlobalValue(exports) : {}; - - var singleGlobal; - var multipleExports = !!exports; - - if (!exports || encapsulate) - forEachGlobalValue(function(name, value) { - if (globalSnapshot[name] === value) - return; - if (typeof value == 'undefined') - return; - - // allow global encapsulation where globals are removed - if (encapsulate) - __global[name] = undefined; - - if (!exports) { - globalValue[name] = value; - - if (typeof singleGlobal != 'undefined') { - if (!multipleExports && singleGlobal !== value) - multipleExports = true; - } - else { - singleGlobal = value; - } - } - }); - - globalValue = multipleExports ? globalValue : singleGlobal; - - // revert globals - if (oldGlobals) { - for (var g in oldGlobals) - __global[g] = oldGlobals[g]; - } - __global.define = curDefine; - - return globalValue; - }; - } - })); - }; -}); -hookConstructor(function(constructor) { - return function() { - var loader = this; - constructor.call(loader); - - if (typeof window != 'undefined' && typeof document != 'undefined' && window.location) - var windowOrigin = location.protocol + '//' + location.hostname + (location.port ? ':' + location.port : ''); - - function stripOrigin(path) { - if (path.substr(0, 8) == 'file:///') - return path.substr(7 + !!isWindows); - - if (windowOrigin && path.substr(0, windowOrigin.length) == windowOrigin) - return path.substr(windowOrigin.length); - - return path; - } - - loader.set('@@cjs-helpers', loader.newModule({ - requireResolve: function(request, parentId) { - return stripOrigin(loader.normalizeSync(request, parentId)); - }, - getPathVars: function(moduleId) { - // remove any plugin syntax - var pluginIndex = moduleId.lastIndexOf('!'); - var filename; - if (pluginIndex != -1) - filename = moduleId.substr(0, pluginIndex); - else - filename = moduleId; - - var dirname = filename.split('/'); - dirname.pop(); - dirname = dirname.join('/'); - - return { - filename: stripOrigin(filename), - dirname: stripOrigin(dirname) - }; - } - })) - }; -});/* - * AMD Helper function module - * Separated into its own file as this is the part needed for full AMD support in SFX builds - * NB since implementations have now diverged this can be merged back with amd.js - */ - -hook('fetch', function(fetch) { - return function(load) { - // script load implies define global leak - if (load.metadata.scriptLoad && isBrowser) - __global.define = this.amdDefine; - return fetch.call(this, load); - }; -}); - -hookConstructor(function(constructor) { - return function() { - var loader = this; - constructor.call(this); - - var commentRegEx = /(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg; - var cjsRequirePre = "(?:^|[^$_a-zA-Z\\xA0-\\uFFFF.])"; - var cjsRequirePost = "\\s*\\(\\s*(\"([^\"]+)\"|'([^']+)')\\s*\\)"; - var fnBracketRegEx = /\(([^\)]*)\)/; - var wsRegEx = /^\s+|\s+$/g; - - var requireRegExs = {}; - - function getCJSDeps(source, requireIndex) { - - // remove comments - source = source.replace(commentRegEx, ''); - - // determine the require alias - var params = source.match(fnBracketRegEx); - var requireAlias = (params[1].split(',')[requireIndex] || 'require').replace(wsRegEx, ''); - - // find or generate the regex for this requireAlias - var requireRegEx = requireRegExs[requireAlias] || (requireRegExs[requireAlias] = new RegExp(cjsRequirePre + requireAlias + cjsRequirePost, 'g')); - - requireRegEx.lastIndex = 0; - - var deps = []; - - var match; - while (match = requireRegEx.exec(source)) - deps.push(match[2] || match[3]); - - return deps; - } - - /* - AMD-compatible require - To copy RequireJS, set window.require = window.requirejs = loader.amdRequire - */ - function require(names, callback, errback, referer) { - // in amd, first arg can be a config object... we just ignore - if (typeof names == 'object' && !(names instanceof Array)) - return require.apply(null, Array.prototype.splice.call(arguments, 1, arguments.length - 1)); - - // amd require - if (typeof names == 'string' && typeof callback == 'function') - names = [names]; - if (names instanceof Array) { - var dynamicRequires = []; - for (var i = 0; i < names.length; i++) - dynamicRequires.push(loader['import'](names[i], referer)); - Promise.all(dynamicRequires).then(function(modules) { - if (callback) - callback.apply(null, modules); - }, errback); - } - - // commonjs require - else if (typeof names == 'string') { - var defaultJSExtension = loader.defaultJSExtensions && names.substr(names.length - 3, 3) != '.js'; - var normalized = loader.decanonicalize(names, referer); - if (defaultJSExtension && normalized.substr(normalized.length - 3, 3) == '.js') - normalized = normalized.substr(0, normalized.length - 3); - var module = loader.get(normalized); - if (!module) - throw new Error('Module not already loaded loading "' + names + '" as ' + normalized + (referer ? ' from "' + referer + '".' : '.')); - return module.__useDefault ? module['default'] : module; - } - - else - throw new TypeError('Invalid require'); - } - - function define(name, deps, factory) { - if (typeof name != 'string') { - factory = deps; - deps = name; - name = null; - } - if (!(deps instanceof Array)) { - factory = deps; - deps = ['require', 'exports', 'module'].splice(0, factory.length); - } - - if (typeof factory != 'function') - factory = (function(factory) { - return function() { return factory; } - })(factory); - - // in IE8, a trailing comma becomes a trailing undefined entry - if (deps[deps.length - 1] === undefined) - deps.pop(); - - // remove system dependencies - var requireIndex, exportsIndex, moduleIndex; - - if ((requireIndex = indexOf.call(deps, 'require')) != -1) { - - deps.splice(requireIndex, 1); - - // only trace cjs requires for non-named - // named defines assume the trace has already been done - if (!name) - deps = deps.concat(getCJSDeps(factory.toString(), requireIndex)); - } - - if ((exportsIndex = indexOf.call(deps, 'exports')) != -1) - deps.splice(exportsIndex, 1); - - if ((moduleIndex = indexOf.call(deps, 'module')) != -1) - deps.splice(moduleIndex, 1); - - function execute(req, exports, module) { - var depValues = []; - for (var i = 0; i < deps.length; i++) - depValues.push(req(deps[i])); - - module.uri = module.id; - - module.config = function() {}; - - // add back in system dependencies - if (moduleIndex != -1) - depValues.splice(moduleIndex, 0, module); - - if (exportsIndex != -1) - depValues.splice(exportsIndex, 0, exports); - - if (requireIndex != -1) { - function contextualRequire(names, callback, errback) { - if (typeof names == 'string' && typeof callback != 'function') - return req(names); - return require.call(loader, names, callback, errback, module.id); - } - contextualRequire.toUrl = function(name) { - // normalize without defaultJSExtensions - var defaultJSExtension = loader.defaultJSExtensions && name.substr(name.length - 3, 3) != '.js'; - var url = loader.decanonicalize(name, module.id); - if (defaultJSExtension && url.substr(url.length - 3, 3) == '.js') - url = url.substr(0, url.length - 3); - return url; - }; - depValues.splice(requireIndex, 0, contextualRequire); - } - - // set global require to AMD require - var curRequire = __global.require; - __global.require = require; - - var output = factory.apply(exportsIndex == -1 ? __global : exports, depValues); - - __global.require = curRequire; - - if (typeof output == 'undefined' && module) - output = module.exports; - - if (typeof output != 'undefined') - return output; - } - - var entry = createEntry(); - entry.name = name && (loader.decanonicalize || loader.normalize).call(loader, name); - entry.deps = deps; - entry.execute = execute; - - loader.pushRegister_({ - amd: true, - entry: entry - }); - } - define.amd = {}; - - // reduction function to attach defines to a load record - hook('reduceRegister_', function(reduceRegister) { - return function(load, register) { - // only handle AMD registers here - if (!register || !register.amd) - return reduceRegister.call(this, load, register); - - var curMeta = load && load.metadata; - var entry = register.entry; - - if (curMeta) { - if (!curMeta.format || curMeta.format == 'detect') - curMeta.format = 'amd'; - else if (!entry.name && curMeta.format != 'amd') - throw new Error('AMD define called while executing ' + curMeta.format + ' module ' + load.name); - } - - // anonymous define - if (!entry.name) { - if (!curMeta) - throw new TypeError('Unexpected anonymous AMD define.'); - - if (curMeta.entry && !curMeta.entry.name) - throw new Error('Multiple anonymous defines in module ' + load.name); - - curMeta.entry = entry; - } - // named define - else { - // if we don't have any other defines, - // then let this be an anonymous define - // this is just to support single modules of the form: - // define('jquery') - // still loading anonymously - // because it is done widely enough to be useful - // as soon as there is more than one define, this gets removed though - if (curMeta) { - if (!curMeta.entry && !curMeta.bundle) - curMeta.entry = entry; - else if (curMeta.entry && curMeta.entry.name && curMeta.entry.name != load.name) - curMeta.entry = undefined; - - // note this is now a bundle - curMeta.bundle = true; - } - - // define the module through the register registry - if (!(entry.name in this.defined)) - this.defined[entry.name] = entry; - } - }; - }); - - loader.amdDefine = define; - loader.amdRequire = require; - }; -});/* - SystemJS Loader Plugin Support - - Supports plugin loader syntax with "!", or via metadata.loader - - The plugin name is loaded as a module itself, and can override standard loader hooks - for the plugin resource. See the plugin section of the systemjs readme. -*/ - -(function() { - function getParentName(loader, parentName) { - // if parent is a plugin, normalize against the parent plugin argument only - if (parentName) { - var parentPluginIndex; - if (loader.pluginFirst) { - if ((parentPluginIndex = parentName.lastIndexOf('!')) != -1) - return parentName.substr(parentPluginIndex + 1); - } - else { - if ((parentPluginIndex = parentName.indexOf('!')) != -1) - return parentName.substr(0, parentPluginIndex); - } - - return parentName; - } - } - - function parsePlugin(loader, name) { - var argumentName; - var pluginName; - - var pluginIndex = name.lastIndexOf('!'); - - if (pluginIndex == -1) - return; - - if (loader.pluginFirst) { - argumentName = name.substr(pluginIndex + 1); - pluginName = name.substr(0, pluginIndex); - } - else { - argumentName = name.substr(0, pluginIndex); - pluginName = name.substr(pluginIndex + 1) || argumentName.substr(argumentName.lastIndexOf('.') + 1); - } - - return { - argument: argumentName, - plugin: pluginName - }; - } - - // put name back together after parts have been normalized - function combinePluginParts(loader, argumentName, pluginName, defaultExtension) { - if (defaultExtension && argumentName.substr(argumentName.length - 3, 3) == '.js') - argumentName = argumentName.substr(0, argumentName.length - 3); - - if (loader.pluginFirst) { - return pluginName + '!' + argumentName; - } - else { - return argumentName + '!' + pluginName; - } - } - - // note if normalize will add a default js extension - // if so, remove for backwards compat - // this is strange and sucks, but will be deprecated - function checkDefaultExtension(loader, arg) { - return loader.defaultJSExtensions && arg.substr(arg.length - 3, 3) != '.js'; - } - - function createNormalizeSync(normalizeSync) { - return function(name, parentName, isPlugin) { - var loader = this; - - var parsed = parsePlugin(loader, name); - parentName = getParentName(this, parentName); - - if (!parsed) - return normalizeSync.call(this, name, parentName, isPlugin); - - // if this is a plugin, normalize the plugin name and the argument - var argumentName = loader.normalizeSync(parsed.argument, parentName, true); - var pluginName = loader.normalizeSync(parsed.plugin, parentName, true); - return combinePluginParts(loader, argumentName, pluginName, checkDefaultExtension(loader, parsed.argument)); - }; - } - - hook('decanonicalize', createNormalizeSync); - hook('normalizeSync', createNormalizeSync); - - hook('normalize', function(normalize) { - return function(name, parentName, isPlugin) { - var loader = this; - - parentName = getParentName(this, parentName); - - var parsed = parsePlugin(loader, name); - - if (!parsed) - return normalize.call(loader, name, parentName, isPlugin); - - return Promise.all([ - loader.normalize(parsed.argument, parentName, true), - loader.normalize(parsed.plugin, parentName, false) - ]) - .then(function(normalized) { - return combinePluginParts(loader, normalized[0], normalized[1], checkDefaultExtension(loader, parsed.argument)); - }); - } - }); - - hook('locate', function(locate) { - return function(load) { - var loader = this; - - var name = load.name; - - // plugin syntax - var pluginSyntaxIndex; - if (loader.pluginFirst) { - if ((pluginSyntaxIndex = name.indexOf('!')) != -1) { - load.metadata.loader = name.substr(0, pluginSyntaxIndex); - load.name = name.substr(pluginSyntaxIndex + 1); - } - } - else { - if ((pluginSyntaxIndex = name.lastIndexOf('!')) != -1) { - load.metadata.loader = name.substr(pluginSyntaxIndex + 1); - load.name = name.substr(0, pluginSyntaxIndex); - } - } - - return locate.call(loader, load) - .then(function(address) { - if (pluginSyntaxIndex != -1 || !load.metadata.loader) - return address; - - // normalize plugin relative to parent in locate here when - // using plugin via loader metadata - return (loader.pluginLoader || loader).normalize(load.metadata.loader, load.name) - .then(function(loaderNormalized) { - load.metadata.loader = loaderNormalized; - return address; - }); - }) - .then(function(address) { - var plugin = load.metadata.loader; - - if (!plugin) - return address; - - // don't allow a plugin to load itself - if (load.name == plugin) - throw new Error('Plugin ' + plugin + ' cannot load itself, make sure it is excluded from any wildcard meta configuration via a custom loader: false rule.'); - - // only fetch the plugin itself if this name isn't defined - if (loader.defined && loader.defined[name]) - return address; - - var pluginLoader = loader.pluginLoader || loader; - - // load the plugin module and run standard locate - return pluginLoader['import'](plugin) - .then(function(loaderModule) { - // store the plugin module itself on the metadata - load.metadata.loaderModule = loaderModule; - - load.address = address; - if (loaderModule.locate) - return loaderModule.locate.call(loader, load); - - return address; - }); - }); - }; - }); - - hook('fetch', function(fetch) { - return function(load) { - var loader = this; - if (load.metadata.loaderModule && load.metadata.loaderModule.fetch && load.metadata.format != 'defined') { - load.metadata.scriptLoad = false; - return load.metadata.loaderModule.fetch.call(loader, load, function(load) { - return fetch.call(loader, load); - }); - } - else { - return fetch.call(loader, load); - } - }; - }); - - hook('translate', function(translate) { - return function(load) { - var loader = this; - var args = arguments; - if (load.metadata.loaderModule && load.metadata.loaderModule.translate && load.metadata.format != 'defined') { - return Promise.resolve(load.metadata.loaderModule.translate.apply(loader, args)).then(function(result) { - var sourceMap = load.metadata.sourceMap; - - // sanitize sourceMap if an object not a JSON string - if (sourceMap) { - if (typeof sourceMap != 'object') - throw new Error('load.metadata.sourceMap must be set to an object.'); - - var originalName = load.address.split('!')[0]; - - // force set the filename of the original file - if (!sourceMap.file || sourceMap.file == load.address) - sourceMap.file = originalName + '!transpiled'; - - // force set the sources list if only one source - if (!sourceMap.sources || sourceMap.sources.length <= 1 && (!sourceMap.sources[0] || sourceMap.sources[0] == load.address)) - sourceMap.sources = [originalName]; - } - - // if running on file:/// URLs, sourcesContent is necessary - // load.metadata.sourceMap.sourcesContent = [load.source]; - - if (typeof result == 'string') - load.source = result; - else - warn.call(this, 'Plugin ' + load.metadata.loader + ' should return the source in translate, instead of setting load.source directly. This support will be deprecated.'); - - return translate.apply(loader, args); - }); - } - else { - return translate.apply(loader, args); - } - }; - }); - - hook('instantiate', function(instantiate) { - return function(load) { - var loader = this; - var calledInstantiate = false; - - if (load.metadata.loaderModule && load.metadata.loaderModule.instantiate && !loader.builder && load.metadata.format != 'defined') - return Promise.resolve(load.metadata.loaderModule.instantiate.call(loader, load, function(load) { - if (calledInstantiate) - throw new Error('Instantiate must only be called once.'); - calledInstantiate = true; - return instantiate.call(loader, load); - })).then(function(result) { - if (calledInstantiate) - return result; - - load.metadata.entry = createEntry(); - load.metadata.entry.execute = function() { - return result; - } - load.metadata.entry.deps = load.metadata.deps; - load.metadata.format = 'defined'; - return instantiate.call(loader, load); - }); - else - return instantiate.call(loader, load); - }; - }); - -})();/* - * Conditions Extension - * - * Allows a condition module to alter the resolution of an import via syntax: - * - * import $ from 'jquery/#{browser}'; - * - * Will first load the module 'browser' via `SystemJS.import('browser')` and - * take the default export of that module. - * If the default export is not a string, an error is thrown. - * - * We then substitute the string into the require to get the conditional resolution - * enabling environment-specific variations like: - * - * import $ from 'jquery/ie' - * import $ from 'jquery/firefox' - * import $ from 'jquery/chrome' - * import $ from 'jquery/safari' - * - * It can be useful for a condition module to define multiple conditions. - * This can be done via the `|` modifier to specify an export member expression: - * - * import 'jquery/#{./browser.js|grade.version}' - * - * Where the `grade` export `version` member in the `browser.js` module is substituted. - * - * - * Boolean Conditionals - * - * For polyfill modules, that are used as imports but have no module value, - * a binary conditional allows a module not to be loaded at all if not needed: - * - * import 'es5-shim#?./conditions.js|needs-es5shim' - * - * These conditions can also be negated via: - * - * import 'es5-shim#?./conditions.js|~es6' - * - */ - - var sysConditions = ['browser', 'node', 'dev', 'build', 'production', 'default']; - - function parseCondition(condition) { - var conditionExport, conditionModule, negation; - - var negation = condition[0] == '~'; - var conditionExportIndex = condition.lastIndexOf('|'); - if (conditionExportIndex != -1) { - conditionExport = condition.substr(conditionExportIndex + 1); - conditionModule = condition.substr(negation, conditionExportIndex - negation); - - if (negation) - warn.call(this, 'Condition negation form "' + condition + '" is deprecated for "' + conditionModule + '|~' + conditionExport + '"'); - - if (conditionExport[0] == '~') { - negation = true; - conditionExport = conditionExport.substr(1); - } - } - else { - conditionExport = 'default'; - conditionModule = condition.substr(negation); - if (sysConditions.indexOf(conditionModule) != -1) { - conditionExport = conditionModule; - conditionModule = null; - } - } - - return { - module: conditionModule || '@system-env', - prop: conditionExport, - negate: negation - }; - } - - function serializeCondition(conditionObj) { - return conditionObj.module + '|' + (conditionObj.negate ? '~' : '') + conditionObj.prop; - } - - function resolveCondition(conditionObj, parentName, bool) { - var self = this; - return this.normalize(conditionObj.module, parentName) - .then(function(normalizedCondition) { - return self.load(normalizedCondition) - .then(function(q) { - var m = readMemberExpression(conditionObj.prop, self.get(normalizedCondition)); - - if (bool && typeof m != 'boolean') - throw new TypeError('Condition ' + serializeCondition(conditionObj) + ' did not resolve to a boolean.'); - - return conditionObj.negate ? !m : m; - }); - }); - } - - var interpolationRegEx = /#\{[^\}]+\}/; - function interpolateConditional(name, parentName) { - // first we normalize the conditional - var conditionalMatch = name.match(interpolationRegEx); - - if (!conditionalMatch) - return Promise.resolve(name); - - var conditionObj = parseCondition.call(this, conditionalMatch[0].substr(2, conditionalMatch[0].length - 3)); - - // in builds, return normalized conditional - if (this.builder) - return this['normalize'](conditionObj.module, parentName) - .then(function(conditionModule) { - conditionObj.module = conditionModule; - return name.replace(interpolationRegEx, '#{' + serializeCondition(conditionObj) + '}'); - }); - - return resolveCondition.call(this, conditionObj, parentName, false) - .then(function(conditionValue) { - if (typeof conditionValue !== 'string') - throw new TypeError('The condition value for ' + name + ' doesn\'t resolve to a string.'); - - if (conditionValue.indexOf('/') != -1) - throw new TypeError('Unabled to interpolate conditional ' + name + (parentName ? ' in ' + parentName : '') + '\n\tThe condition value ' + conditionValue + ' cannot contain a "/" separator.'); - - return name.replace(interpolationRegEx, conditionValue); - }); - } - - function booleanConditional(name, parentName) { - // first we normalize the conditional - var booleanIndex = name.lastIndexOf('#?'); - - if (booleanIndex == -1) - return Promise.resolve(name); - - var conditionObj = parseCondition.call(this, name.substr(booleanIndex + 2)); - - // in builds, return normalized conditional - if (this.builder) - return this['normalize'](conditionObj.module, parentName) - .then(function(conditionModule) { - conditionObj.module = conditionModule; - return name.substr(0, booleanIndex) + '#?' + serializeCondition(conditionObj); - }); - - return resolveCondition.call(this, conditionObj, parentName, true) - .then(function(conditionValue) { - return conditionValue ? name.substr(0, booleanIndex) : '@empty'; - }); - } - - // normalizeSync does not parse conditionals at all although it could - hook('normalize', function(normalize) { - return function(name, parentName, skipExt) { - var loader = this; - return booleanConditional.call(loader, name, parentName) - .then(function(name) { - return normalize.call(loader, name, parentName, skipExt); - }) - .then(function(normalized) { - return interpolateConditional.call(loader, normalized, parentName); - }); - }; - }); -/* - * Alias Extension - * - * Allows a module to be a plain copy of another module by module name - * - * SystemJS.meta['mybootstrapalias'] = { alias: 'bootstrap' }; - * - */ -(function() { - // aliases - hook('fetch', function(fetch) { - return function(load) { - var alias = load.metadata.alias; - var aliasDeps = load.metadata.deps || []; - if (alias) { - load.metadata.format = 'defined'; - var entry = createEntry(); - this.defined[load.name] = entry; - entry.declarative = true; - entry.deps = aliasDeps.concat([alias]); - entry.declare = function(_export) { - return { - setters: [function(module) { - for (var p in module) - _export(p, module[p]); - if (module.__useDefault) - entry.module.exports.__useDefault = true; - }], - execute: function() {} - }; - }; - return ''; - } - - return fetch.call(this, load); - }; - }); -})();/* - * Meta Extension - * - * Sets default metadata on a load record (load.metadata) from - * loader.metadata via SystemJS.meta function. - * - * - * Also provides an inline meta syntax for module meta in source. - * - * Eg: - * - * loader.meta({ - * 'my/module': { deps: ['jquery'] } - * 'my/*': { format: 'amd' } - * }); - * - * Which in turn populates loader.metadata. - * - * load.metadata.deps and load.metadata.format will then be set - * for 'my/module' - * - * The same meta could be set with a my/module.js file containing: - * - * my/module.js - * "format amd"; - * "deps[] jquery"; - * "globals.some value" - * console.log('this is my/module'); - * - * Configuration meta always takes preference to inline meta. - * - * Multiple matches in wildcards are supported and ammend the meta. - * - * - * The benefits of the function form is that paths are URL-normalized - * supporting say - * - * loader.meta({ './app': { format: 'cjs' } }); - * - * Instead of needing to set against the absolute URL (https://site.com/app.js) - * - */ - -(function() { - - hookConstructor(function(constructor) { - return function() { - this.meta = {}; - constructor.call(this); - }; - }); - - hook('locate', function(locate) { - return function(load) { - var meta = this.meta; - var name = load.name; - - // NB for perf, maybe introduce a fast-path wildcard lookup cache here - // which is checked first - - // apply wildcard metas - var bestDepth = 0; - var wildcardIndex; - for (var module in meta) { - wildcardIndex = module.indexOf('*'); - if (wildcardIndex === -1) - continue; - if (module.substr(0, wildcardIndex) === name.substr(0, wildcardIndex) - && module.substr(wildcardIndex + 1) === name.substr(name.length - module.length + wildcardIndex + 1)) { - var depth = module.split('/').length; - if (depth > bestDepth) - bestDepth = depth; - extendMeta(load.metadata, meta[module], bestDepth != depth); - } - } - - // apply exact meta - if (meta[name]) - extendMeta(load.metadata, meta[name]); - - return locate.call(this, load); - }; - }); - - // detect any meta header syntax - // only set if not already set - var metaRegEx = /^(\s*\/\*[^\*]*(\*(?!\/)[^\*]*)*\*\/|\s*\/\/[^\n]*|\s*"[^"]+"\s*;?|\s*'[^']+'\s*;?)+/; - var metaPartRegEx = /\/\*[^\*]*(\*(?!\/)[^\*]*)*\*\/|\/\/[^\n]*|"[^"]+"\s*;?|'[^']+'\s*;?/g; - - function setMetaProperty(target, p, value) { - var pParts = p.split('.'); - var curPart; - while (pParts.length > 1) { - curPart = pParts.shift(); - target = target[curPart] = target[curPart] || {}; - } - curPart = pParts.shift(); - if (!(curPart in target)) - target[curPart] = value; - } - - hook('translate', function(translate) { - return function(load) { - // shortpath for bundled - if (load.metadata.format == 'defined') { - load.metadata.deps = load.metadata.deps || []; - return Promise.resolve(load.source); - } - - // NB meta will be post-translate pending transpiler conversion to plugins - var meta = load.source.match(metaRegEx); - if (meta) { - var metaParts = meta[0].match(metaPartRegEx); - - for (var i = 0; i < metaParts.length; i++) { - var curPart = metaParts[i]; - var len = curPart.length; - - var firstChar = curPart.substr(0, 1); - if (curPart.substr(len - 1, 1) == ';') - len--; - - if (firstChar != '"' && firstChar != "'") - continue; - - var metaString = curPart.substr(1, curPart.length - 3); - var metaName = metaString.substr(0, metaString.indexOf(' ')); - - if (metaName) { - var metaValue = metaString.substr(metaName.length + 1, metaString.length - metaName.length - 1); - - if (metaName.substr(metaName.length - 2, 2) == '[]') { - metaName = metaName.substr(0, metaName.length - 2); - load.metadata[metaName] = load.metadata[metaName] || []; - load.metadata[metaName].push(metaValue); - } - else if (load.metadata[metaName] instanceof Array) { - // temporary backwards compat for previous "deps" syntax - warn.call(this, 'Module ' + load.name + ' contains deprecated "deps ' + metaValue + '" meta syntax.\nThis should be updated to "deps[] ' + metaValue + '" for pushing to array meta.'); - load.metadata[metaName].push(metaValue); - } - else { - setMetaProperty(load.metadata, metaName, metaValue); - } - } - else { - load.metadata[metaString] = true; - } - } - } - - return translate.apply(this, arguments); - }; - }); -})(); -/* - System bundles - - Allows a bundle module to be specified which will be dynamically - loaded before trying to load a given module. - - For example: - SystemJS.bundles['mybundle'] = ['jquery', 'bootstrap/js/bootstrap'] - - Will result in a load to "mybundle" whenever a load to "jquery" - or "bootstrap/js/bootstrap" is made. - - In this way, the bundle becomes the request that provides the module -*/ - -(function() { - // bundles support (just like RequireJS) - // bundle name is module name of bundle itself - // bundle is array of modules defined by the bundle - // when a module in the bundle is requested, the bundle is loaded instead - // of the form SystemJS.bundles['mybundle'] = ['jquery', 'bootstrap/js/bootstrap'] - hookConstructor(function(constructor) { - return function() { - constructor.call(this); - this.bundles = {}; - this._loader.loadedBundles = {}; - }; - }); - - // assign bundle metadata for bundle loads - hook('locate', function(locate) { - return function(load) { - var loader = this; - var matched = false; - - if (!(load.name in loader.defined)) - for (var b in loader.bundles) { - for (var i = 0; i < loader.bundles[b].length; i++) { - var curModule = loader.bundles[b][i]; - - if (curModule == load.name) { - matched = true; - break; - } - - // wildcard in bundles does not include / boundaries - if (curModule.indexOf('*') != -1) { - var parts = curModule.split('*'); - if (parts.length != 2) { - loader.bundles[b].splice(i--, 1); - continue; - } - - if (load.name.substring(0, parts[0].length) == parts[0] && - load.name.substr(load.name.length - parts[1].length, parts[1].length) == parts[1] && - load.name.substr(parts[0].length, load.name.length - parts[1].length - parts[0].length).indexOf('/') == -1) { - matched = true; - break; - } - } - } - - if (matched) - return loader['import'](b) - .then(function() { - return locate.call(loader, load); - }); - } - - return locate.call(loader, load); - }; - }); -})(); -/* - * Dependency Tree Cache - * - * Allows a build to pre-populate a dependency trace tree on the loader of - * the expected dependency tree, to be loaded upfront when requesting the - * module, avoinding the n round trips latency of module loading, where - * n is the dependency tree depth. - * - * eg: - * SystemJS.depCache = { - * 'app': ['normalized', 'deps'], - * 'normalized': ['another'], - * 'deps': ['tree'] - * }; - * - * SystemJS.import('app') - * // simultaneously starts loading all of: - * // 'normalized', 'deps', 'another', 'tree' - * // before "app" source is even loaded - * - */ - -(function() { - hookConstructor(function(constructor) { - return function() { - constructor.call(this); - this.depCache = {}; - } - }); - - hook('locate', function(locate) { - return function(load) { - var loader = this; - // load direct deps, in turn will pick up their trace trees - var deps = loader.depCache[load.name]; - if (deps) - for (var i = 0; i < deps.length; i++) - loader['import'](deps[i], load.name); - - return locate.call(loader, load); - }; - }); -})(); - -/* - * Script-only addition used for production loader - * - */ -hookConstructor(function(constructor) { - return function() { - constructor.apply(this, arguments); - __global.define = this.amdDefine; - }; -}); - -hook('fetch', function(fetch) { - return function(load) { - load.metadata.scriptLoad = true; - return fetch.call(this, load); - }; -});System = new SystemJSLoader(); - -__global.SystemJS = System; -System.version = '0.19.39 CSP'; - if (typeof module == 'object' && module.exports && typeof exports == 'object') - module.exports = System; - - __global.System = System; - -})(typeof self != 'undefined' ? self : global);} - -// auto-load Promise polyfill if needed in the browser -var doPolyfill = typeof Promise === 'undefined'; - -// document.write -if (typeof document !== 'undefined') { - var scripts = document.getElementsByTagName('script'); - $__curScript = scripts[scripts.length - 1]; - if (document.currentScript && ($__curScript.defer || $__curScript.async)) - $__curScript = document.currentScript; - if (doPolyfill) { - var curPath = $__curScript.src; - var basePath = curPath.substr(0, curPath.lastIndexOf('/') + 1); - window.systemJSBootstrap = bootstrap; - document.write( - '<' + 'script type="text/javascript" src="' + basePath + 'system-polyfills.js">' + '<' + '/script>' - ); - } - else { - bootstrap(); - } -} -// importScripts -else if (typeof importScripts !== 'undefined') { - var basePath = ''; - try { - throw new Error('_'); - } catch (e) { - e.stack.replace(/(?:at|@).*(http.+):[\d]+:[\d]+/, function(m, url) { - $__curScript = { src: url }; - basePath = url.replace(/\/[^\/]*$/, '/'); - }); - } - if (doPolyfill) - importScripts(basePath + 'system-polyfills.js'); - bootstrap(); -} -else { - $__curScript = typeof __filename != 'undefined' ? { src: __filename } : null; - bootstrap(); -} - - -})();
\ No newline at end of file diff --git a/src/wallet-test.ts b/src/wallet-test.ts index 144b2054c..e317c3bd9 100644 --- a/src/wallet-test.ts +++ b/src/wallet-test.ts @@ -1,4 +1,4 @@ -import {test, TestLib} from "testlib/talertest"; +import {test, TestLib} from "talertest"; import {mkAmount} from "./types"; import * as wallet from "./wallet"; diff --git a/src/wallet.ts b/src/wallet.ts index 5b76a01ac..a809b94cc 100644 --- a/src/wallet.ts +++ b/src/wallet.ts @@ -66,6 +66,7 @@ import { getTalerStampSec, } from "./helpers"; import {CryptoApi} from "./cryptoApi"; +import URI = require("urijs"); "use strict"; @@ -245,7 +246,13 @@ function setTimeout(f: any, t: number) { function isWithdrawableDenom(d: DenominationRecord) { const now_sec = (new Date).getTime() / 1000; const stamp_withdraw_sec = getTalerStampSec(d.stampExpireWithdraw); + if (stamp_withdraw_sec == null) { + return false; + } const stamp_start_sec = getTalerStampSec(d.stampStart); + if (stamp_start_sec == null) { + return false; + } // Withdraw if still possible to withdraw within a minute if ((stamp_withdraw_sec + 60 > now_sec) && (now_sec >= stamp_start_sec)) { return true; @@ -976,8 +983,8 @@ export class Wallet { wd.reserve_pub = pc.reservePub; wd.reserve_sig = pc.withdrawSig; wd.coin_ev = pc.coinEv; - let reqUrl = URI("reserve/withdraw").absoluteTo(reserve.exchange_base_url); - let resp = await this.http.postJson(reqUrl, wd); + let reqUrl = (new URI("reserve/withdraw")).absoluteTo(reserve.exchange_base_url); + let resp = await this.http.postJson(reqUrl.href(), wd); if (resp.status != 200) { throw new RequestException({ @@ -1068,9 +1075,9 @@ export class Wallet { if (!reserve) { throw Error("reserve not in db"); } - let reqUrl = URI("reserve/status").absoluteTo(exchange.baseUrl); + let reqUrl = new URI("reserve/status").absoluteTo(exchange.baseUrl); reqUrl.query({'reserve_pub': reservePub}); - let resp = await this.http.get(reqUrl); + let resp = await this.http.get(reqUrl.href()); if (resp.status != 200) { throw Error(); } @@ -1105,8 +1112,8 @@ export class Wallet { */ async getWireInfo(exchangeBaseUrl: string): Promise<WireInfo> { exchangeBaseUrl = canonicalizeBaseUrl(exchangeBaseUrl); - let reqUrl = URI("wire").absoluteTo(exchangeBaseUrl); - let resp = await this.http.get(reqUrl); + let reqUrl = new URI("wire").absoluteTo(exchangeBaseUrl); + let resp = await this.http.get(reqUrl.href()); if (resp.status != 200) { throw Error("/wire request failed"); @@ -1216,8 +1223,8 @@ export class Wallet { */ async updateExchangeFromUrl(baseUrl: string): Promise<ExchangeRecord> { baseUrl = canonicalizeBaseUrl(baseUrl); - let reqUrl = URI("keys").absoluteTo(baseUrl); - let resp = await this.http.get(reqUrl); + let reqUrl = new URI("keys").absoluteTo(baseUrl); + let resp = await this.http.get(reqUrl.href()); if (resp.status != 200) { throw Error("/keys request failed"); } @@ -1569,7 +1576,7 @@ export class Wallet { return; } - let reqUrl = URI("refresh/melt").absoluteTo(refreshSession.exchangeBaseUrl); + let reqUrl = new URI("refresh/melt").absoluteTo(refreshSession.exchangeBaseUrl); let meltCoin = { coin_pub: coin.coinPub, denom_pub: coin.denomPub, @@ -1585,7 +1592,7 @@ export class Wallet { "coin_evs": coinEvs, }; console.log("melt request:", req); - let resp = await this.http.postJson(reqUrl, req); + let resp = await this.http.postJson(reqUrl.href(), req); console.log("melt request:", req); console.log("melt response:", resp.responseText); @@ -1626,10 +1633,10 @@ export class Wallet { "transfer_privs": privs, }; - let reqUrl = URI("refresh/reveal") + let reqUrl = new URI("refresh/reveal") .absoluteTo(refreshSession.exchangeBaseUrl); console.log("reveal request:", req); - let resp = await this.http.postJson(reqUrl, req); + let resp = await this.http.postJson(reqUrl.href(), req); console.log("session:", refreshSession); console.log("reveal response:", resp); diff --git a/src/wxApi.ts b/src/wxApi.ts index 327323648..de59914a1 100644 --- a/src/wxApi.ts +++ b/src/wxApi.ts @@ -33,7 +33,7 @@ import { export function getReserveCreationInfo(baseUrl: string, amount: AmountJson): Promise<ReserveCreationInfo> { let m = { type: "reserve-creation-info", detail: { baseUrl, amount } }; - return new Promise((resolve, reject) => { + return new Promise<ReserveCreationInfo>((resolve, reject) => { chrome.runtime.sendMessage(m, (resp) => { if (resp.error) { console.error("error response", resp); diff --git a/src/wxBackend.ts b/src/wxBackend.ts index f31472cca..173870b26 100644 --- a/src/wxBackend.ts +++ b/src/wxBackend.ts @@ -31,6 +31,7 @@ import { Contract } from "./types"; import MessageSender = chrome.runtime.MessageSender; import { ChromeBadge } from "./chromeBadge"; import * as logging from "./logging"; +import URI = require("urijs"); "use strict"; @@ -401,7 +402,7 @@ function handleBankRequest(wallet: Wallet, headerList: chrome.webRequest.HttpHea try { amountParsed = JSON.parse(amount); } catch (e) { - let uri = URI(chrome.extension.getURL("/src/pages/error.html")); + let uri = new URI(chrome.extension.getURL("/src/pages/error.html")); let p = { message: `Can't parse amount ("${amount}"): ${e.message}`, }; @@ -415,13 +416,13 @@ function handleBankRequest(wallet: Wallet, headerList: chrome.webRequest.HttpHea } let params = { amount: amount, - callback_url: URI(callbackUrl) + callback_url: new URI(callbackUrl) .absoluteTo(url), bank_url: url, wt_types: wtTypes, suggested_exchange_url: headers["x-taler-suggested-exchange"], }; - let uri = URI(chrome.extension.getURL("/src/pages/confirm-create-reserve.html")); + let uri = new URI(chrome.extension.getURL("/src/pages/confirm-create-reserve.html")); let redirectUrl = uri.query(params).href(); return {redirectUrl}; } @@ -453,12 +454,10 @@ export async function wxMain() { if (!tab.url || !tab.id) { return; } - let uri = URI(tab.url); + let uri = new URI(tab.url); if (uri.protocol() == "http" || uri.protocol() == "https") { console.log("injecting into existing tab", tab.id); - chrome.tabs.executeScript(tab.id, { file: "/src/vendor/URI.js" }); - chrome.tabs.executeScript(tab.id, { file: "/src/taler-wallet-lib.js" }); - chrome.tabs.executeScript(tab.id, { file: "/src/content_scripts/notify.js" }); + chrome.tabs.executeScript(tab.id, { file: "/dist/contentScript-bundle.js" }); let code = ` if (("taler" in window) || document.documentElement.getAttribute("data-taler-nojs")) { document.dispatchEvent(new Event("taler-probe-result")); @@ -497,7 +496,7 @@ export async function wxMain() { if (!tab.url || !tab.id) { return; } - let uri = URI(tab.url); + let uri = new URI(tab.url); if (!(uri.protocol() == "http" || uri.protocol() == "https")) { return; } @@ -565,7 +564,7 @@ export async function wxMain() { * to the taler wallet db. */ function openTalerDb(): Promise<IDBDatabase> { - return new Promise((resolve, reject) => { + return new Promise<IDBDatabase>((resolve, reject) => { const req = indexedDB.open(DB_NAME, DB_VERSION); req.onerror = (e) => { reject(e); @@ -640,7 +639,7 @@ function exportDb(db: IDBDatabase): Promise<any> { function importDb(db: IDBDatabase, dump: any): Promise<void> { console.log("importing db", dump); - return new Promise((resolve, reject) => { + return new Promise<void>((resolve, reject) => { let tx = db.transaction(Array.from(db.objectStoreNames), "readwrite"); for (let storeName in dump.stores) { let objects = []; |